opencv+rpi

Danas računalni vid (Computer Vision) ima široku primjenu, a napretkom tehnologija i informatizacijom postao je neizostavan dio u raznim područjima. Open Source Computer Vision (OpenCV) biblioteka je široki skup znanja o računalnom vidu kroz implementirane algoritame. U ovome članku detaljno smo opisali postupak samog instaliranja OpenCV na najpopularnije mini-računalo današnjice.
Od nule do OpenCV na Raspberry Pi. Pa krenimo redom.



1) Instaliranje OS

https://www.raspberrypi.org/downloads/raspbian/

Prvi korak je preuzimanje Raspbian Stretch with desktop (uzimamo zip verziju) s gornje web adrese.
Nakon preuzimanja možemo otkomprimirati .img datoteku koja je unutra.

Raspbian-download



2) Snimanje OS na karticu

Zatim trebamo preuzeti i instalirati aplikaciju balenaEtcher:

https://www.balena.io/etcher/

Pokrenimo balenaEtcher. Snimanje je vrlo jednostavno – na prvom koraku biramo .img datoteku (onu koju smo “izvadili” iz zip-a), zatim biramo fizičku lokaciju (drive) gdje se nalazi čitač kartica (pazite da ste postavili karticu, preporučamo kapacitet 16GB kao minimum za rad s OpenCV) i stisnemo Flash!

Etcher



3) Omogućavanje SSH pristupa

Otvorite blok za pisanje (notepad) i s njime načinite „praznu” datoteku pod nazivom ssh (bez ekstenzije) u boot particiji na kartici
Ukoliko idete na spajanje preko WiFi na isto mjesto dodajte i datoteku wpa_supplicant.conf sljedećeg sadržaja:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
      ssid="nesto"
      psk="nesto"
      key_mgmt=WPA-PSK
} 

ssid je naziv pristupne točke za vaš WiFi, a psk zaporka (lozinka)

boot



4) Prvo pokretanje

Stavite karticu u vaš Raspberry Pi i uključite ga. Ubrzo bi trebao biti vidjiv na popisu spojenih uređaja pa pronađite njegovu IP adresu. Ukoliko ne možete koristiti kontrolno sučelje očitajte IP pomoću smartphone aplikacije (recimo Network IP scanner). Spojite se preko ssh protokola pomoću Putty-ja ili druge aplikacije sa sljedećim pristupnim podatcima:

username: pi
password: raspberry

Zatim upišite sljedeću naredbu kako bi pokrenuli konfiguriranje:

sudo raspi-config

Tamo izaberite 1. Advanced Options (Enter) i zatim A1 Expand Filesystem (Enter)

raspi-config

Završite konfiguriranje sa <Finish> i na pitanje “Would you like to reboot now?” odgovorite s Yes



5) Update & Upgrade

Reboot će vas izbaciti iz ssh sesije i morate se ponovo spojiti (username: pi / password: raspberry)
Prije daljnjih koraka poželjno je da imamo ažurirane verzije operativnog sustava i instaliranih aplikacija i to ćemo postići sa nardebama:

sudo apt-get update
sudo apt-get upgrade

Na eventualne upite tijekom procedure odgovorite potvrdno sa: y
Ovisno o količini podataka ažuriranje može potrajati, a nakon njegovog završetka spremni smo za instaliranje OpenCV



6) Instaliranje nužnih dodataka i biblioteka

Instaliramo redom cMake, I/O pakete za rad s različitim grafičkim datotekama kao što su JPEG, PNG, TIFF, kao i I/O pakete za rad s različitim video datotekama. Ako kopirate, prenosite naredbu po naredbu.

sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install libxvidcore-dev libx264-dev

Napomena: na svaki upit tijekom instalacije odgovorite y (enter)

Dalje instaliramo GTK development library, dodatke za optimizaciju raznih operacija i Python

sudo apt-get install libgtk2.0-dev libgtk-3-dev
sudo apt-get install libatlas-base-dev gfortran
sudo apt-get install python2.7-dev python3-dev

Napomena: kod novijih instalacija Raspbiana moguće da Python već imate pa će sistem uz obavijest preskočiti taj dio



7) Preuzimanje OpenCV source-a i instaliranje pip-a

Preuzmimo i “raspakirajmo” OpenCV 3.3.0 i OpenCV-contrib, a nakon toga instaliramo Python Package Installer (pip)

cd ~
wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip
unzip opencv.zip
wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip
unzip opencv_contrib.zip
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo python3 get-pip.py



8) Python Virtual Environments: virtualenv i virtualenvwrapper

Dobar članak zašto koristiti virtualna okruženja možete pročitati ovdje:

https://realpython.com/python-virtual-environments-a-primer/

Zatim krenimo s instaliranjem

sudo pip install virtualenv virtualenvwrapper
sudo rm -rf ~/.cache/pip

Zatim otvorimo datoteku .profile

sudo nano .profile

I na samom kraju te datotetke iskopiramo i umetnemo sljedeće retke:

export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
source /usr/local/bin/virtualenvwrapper.sh 

Datoteku snimimo s CTRL+O (enter) i zatim izađemo iz nano editora s CTRL+X



9) Aktiviranje profila i kreiranje virtualnog okruženja

Profil aktiviramo sa:

source ~/.profile

I zatim pokrećemo virtualno okruženje (virtual environment):

mkvirtualenv cv -p python3

Nakon pokretanja svakako provjerite imate li (cv) u promptu kao na slici:

Napomena: preporuka je koristiti Python 3 ali ukoliko iz određenih razloga imate potrebu raditi s Python 2 u prethodnom koraku naredba bi bila drugačija: mkvirtualenv cv -p python2

Još uvijek radimo u virtual environmentu cv i ondje instaliramo Numpy

pip install numpy

Prelazimo u opencv direktorij i tamo kreiramo poddirektorij build gdje radimo pripremu za kompiliranje:

cd ~/opencv-3.3.0/
mkdir build
cd build

Izvršimo cmake (najlakše vam je iskopirati u naredbeni redak cijeli donji blok koda):

cmake -D CMAKE_BUILD_TYPE=RELEASE \
      -D CMAKE_INSTALL_PREFIX=/usr/local \
      -D INSTALL_PYTHON_EXAMPLES=ON \
      -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules \
      -D BUILD_EXAMPLES=ON .. 

10) Kako olakšati, odnosno ubrzati kompiliranje

Isključivo za potrebe kompiliranja ćemo povećati SWAPSIZE kako bismo ubrzali cijeli proces, a nakon završetka ćemo vratiti postavke na stare vrijednosti. Otvorimo datoteku dphys-swapfile u nano editoru:

sudo nano /etc/dphys-swapfile

Nađite redak gdje pišeCONF_SWAPSIZE=100 i izmijenite ga da izgleda ovako CONF_SWAPSIZE=1024

Da ne radimo reboot kako bismo promjenu aktivirali zaustavite i ponovno pokrenite dphys-swapfile servis manualno s naredbama:

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start



10) Kompiliranje OpenCV

Konačno možemo pokrenuti kompiliranje sa:

make -j4

Što će potrajati, a nakon toga ostaje nam samo dovršiti proces sa:

sudo make install
sudo ldconfig



11) Mala korekcija naziva datoteke

Da bismo ispravno povezali rezultat kompiliranja potrebno je provjeriti naziv datoteke:

ls -l /usr/local/lib/python3.5/site-packages/

Nije nam poznato zašto se ovo događa i ostaje nam preimenovati datoteku pa se prebacujemo u navedeni direktorij i učinimo to sa mv komandom:

cd /usr/local/lib/python3.5/site-packages/
sudo mv cv2.cpython-35m-arm-linux-gnueabihf.so cv2.so

Tek nakon ovoga možemo datoteku cv2.so povezati (sym-link) s našim virtualnim okruženjem (cv):

cd ~/.virtualenvs/cv/lib/python3.5/site-packages/
ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so



12) Provjera instalacije

sudo reboot

Zatim ponovo pokrenite vaš Raspberry Pi i prijavite se preko ssh veze:

Aktivirajte profil i prebacite se u virtualno okruženje gdje startajte Python:

source ~/.profile
workon cv
python

U Python shell-u (vidjeti ćete >>> prompt) unosite jednu po jednu sljedeće naredbe (iza svake naredbe ide Enter):

import cv2
cv2.__version__        

I ako nako zadnjeg Entera dobijete ‘3.3.0’ instalacija je bila uspješna!

success



13) Vraćanje SWAPSIZE parametra i brisanje nepotrebnih direktorija

 sudo nano /etc/dphys-swapfile 

Ponovo kao i u jednom od prethodnih koraka nađite redak gdje pišeCONF_SWAPSIZE=1024 i vratite ga na staru vrijednost CONF_SWAPSIZE=100

CTRL+O (enter) i CTRL+X za izlaz

Dodatno možemo iskorištene direktorije obrisati da oslobodimo dodatni prostor na kartici:

rm -rf opencv-3.3.0 opencv_contrib-3.3.0


Nadam se da ste uspješno instalirali OpenCV na vaše Raspberry Pi-jeve.

Kod izrade ovog tutorijala poslužio sam se materijalima sa stranice:
https://www.pyimagesearch.com/2017/09/04/raspbian-stretch-install-opencv-3-python-on-your-raspberry-pi/

Podijeli:
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •