Kako namestiti OpenCV na Raspberry Pi?

Izvajati moramo različne operacije na sliki, da iz nje izluščimo koristne informacije. Tako se imenuje ta postopek uporabe različnih algoritmov na sliki za pridobitev želenega izhoda Obdelava slik . Včasih je slika na vhodu zamegljena in na njej želimo pridobiti podatke. Na primer. Ko roparji pridejo ugrabiti kolo ali avto, večinoma pridejo na kolo, na cestah pa so nameščene nadzemne kamere, ki posnamejo posnetke incidenta. Vedeti moramo registrsko številko tistega vozila, na katerem prihajajo roparji, in to je mogoče enostavno narediti z uporabo nekaterih algoritmov obdelave slik. Za izvedbo obdelave slik na določenih slikah moramo na strojno opremo, ki jo uporabljamo, namestiti nekaj knjižnic. Med temi knjižnicami je najpomembnejša OpenCV. OpenCV lahko namestite tudi na osebne računalnike in mikroprocesorje. Raspberry Pi je mikroprocesor in se uporablja v različnih elektronskih projektih. Po namestitvi operacijskega sistema na Raspberry Pi lahko na njem izvajamo različne naloge obdelave slik. Namestitev OpenCV na Raspberry Pi je dolgotrajna in mučna naloga. V tem članku bomo izvedeli, kako namestiti OpenCV na Raspberry Pi za izvajanje različnih operacij obdelave slik na njem.



Zaznavanje obrazov z OpenCV, nameščenim na Raspberry Pi

Kako nastaviti Raspberry Pi in na njem konfigurirati OpenCV?

Zdaj pa pojdimo k nastavitvi Pi in izvajanju operacij, omenjenih pod korakom, da namestimo OpenCV nanjo. Namestitev OpenCV na Pi je dolgotrajen postopek, ki traja približno 4 ure, tako da, če imate pomanjkanje časa, ne začnite namestitve, glejte to vadnico, ko boste prosti. Skupaj s tem se Pi segreje, ko je obrnjen VKLOPLJENO na njem se izvajajo dolgotrajni in časovni posegi, zato ga med delom hranite na hladnem.



1. korak: Uporabljene komponente

  • Komplet Raspberry Pi 3B +
  • Televizija z vrati HDMI
  • Kabel HDMI
  • Žična računalniška miška

2. korak: Izbira modela Raspberry Pi

Na trgu je na voljo več modelov maline pi. Razen maline pi zero je lahko prednost kateri koli model. To je zato, ker je na Pi nič nastavitev omrežja zelo naporno delo. Kupite lahko najnovejše modele, kot so 3A +, 3B + ali 4. Novi Raspberry Pi 3 je najhitrejši in najbolj prevladujoč pripomoček, ki ga je Fundacija Raspberry Pi doslej izdala. Torej bomo v tem projektu uporabili Raspberry Pi 3B +.



Raspberry Pi 3B +



3. korak: Povezovanje zunanjih naprav

Po izbiri Raspberry Pi bomo na Raspberry Pi povezali tipkovnico in miško. Ko jih povežete, s kablom HDMI povežite Pi s televizijo. Po vzpostavitvi teh povezav smo pripravljeni nadaljevati.

4. korak: Izbira operacijskega sistema

Najprej bomo potrebovali kartico SD z ustreznim operacijskim sistemom. Danes pri izbiri operacijskega sistema obstajajo različne možnosti, od 'običajnega' Raspbiana do namenskih delovnih okvirov medijev in celo Windows 10 IoT. Veliko aplikacij torej ni treba, centralni procesorski enoti (CPU) in pomnilniku z naključnim dostopom (RAM) bi morali zapustiti čim več za aplikacijo za pretakanje medijev. Ena težava je, da je Arch Linux priporočljiv za ljudi, ki imajo precej znanja o Linuxu. So zelo v ospredju in pri uvajanju programov in knjižnic drugih proizvajalcev bomo morali še naprej naleteti na težave. Če je to vaša prva postavitev domačega gledališča, predlagamo, da izberete Raspbian Lite . Upravlja se z ukazno vrstico in je lahko brez večjega raztezanja namenjen za nadaljnje delovanje v načinu 'brez glave', tj. Dostopen v celoti na daljavo po sistemu brez potrebe po konzoli ali zaslonu.

Raspbian Lite



5. korak: Prepričajte se, da je Raspberry Pi posodobljen

Poskrbite, da bodo viri naprave Pi posodobljeni, sicer bo zastarela programska oprema povzročala nekaj težav. Omogočite pregledovalnik navideznega računalništva (VNC) na vašem Pi, nato povežite Raspberry Pi z pregledovalnikom VNC. Spodaj je na voljo povezava za prenos VNC in nato povezavo s Pi.

Pregledovalnik VNC

Zdaj odprite terminal in zaženite naslednji ukaz:

posodobitev sudo apt-get

Potem,

sudo apt-get nadgradnja

Nameščeni bodo številni paketi in na vprašanje pritisnite IN in potem Enter da jih pravilno namestite.

6. korak: Prijava v Raspberry Pi

Privzeto uporabniško ime za Raspberry Pi je pi, in privzeto geslo je malina. To so privzeti podatki za prijavo in ob prvi prijavi jih uporabite za prijavo v pi. Tudi te podatke lahko kadar koli spremenite.

Prijava v Raspberry Pi

7. korak: Ustvarjanje dovolj prostora na Raspbian za OpenCV

OpenCV pridobi velik pomnilnik, zato moramo razširiti datotečni sistem in ves prostor dodeliti pomnilniški kartici. Odpravili se bomo v ukazni poziv maline in vnesli naslednji ukaz:

sudo raspi-config

Pojavilo se bo okno, ki bo videti tako:

Orodje za konfiguracijo

Zdaj bomo kliknili na Napredne možnosti in tam bomo našli možnost »Razširi datotečni sistem«. Izberite to možnost.

Razširi datotečni sistem

Pritisnili bomo na Enter in nato pritisnite Končaj . Na tej stopnji je treba našo Raspberry Pi znova zagnati, da spremembe začnejo veljati. Za ponovni zagon vnesite naslednji ukaz:

sudo ponovni zagon

Po ponovnem zagonu bomo preverili, ali se je naš datotečni sistem razširil in ali je ves prostor vključen na kartico SD ali ne. Z izvrševanjem df -h ukaz lahko preverimo, ali se je naš disk razširil:

Tisti, ki uporablja 8 GB micro SD kartice, morda uporablja 50% razpoložljivega prostora, zato ga izbrišete Wolfram Engine in LibreOffice lahko sprosti približno 1 GB prostora. (Ne pozabite, da je ta korak neobvezen).

sudoapt-dobili čiščenjevolfram-motor sudoapt-dobili čiščenjelibreoffice* sudoapt-dobili čisto sudoapt-dobili samodejno odstrani

8. korak: Namestitev odvisnosti

Preden se odločimo za in odvisnosti, moramo posodobiti in nadgraditi obstoječe pakete, ki so nameščeni na Pi:

posodobitev sudo apt-get

Potem,

sudo apt-get nadgradnja

Zdaj bomo namestili nekaj razvojnih orodij, ki nam bodo pomagala pri konfiguriranju gradnje OpenCV:

sudoapt-dobili namestitegraditi-bistvenega pomenacmakepkg-konfig

Za izvajanje različnih operacij na slikah moramo s trdega diska naložiti več slikovnih formatov. Ti formati vključujejo JPEG, PNG itd. Za nalaganje teh slikovnih formatov bomo namestili nekaj V / I paketov:

sudoapt-dobilinamestitelibjpeg-razvlibtiff5-razvlibjasper-razvlibpng12-razv

Skupaj s temi I / O paketi slik bomo namestili tudi video I / O pakete. Po namestitvi teh video paketov bomo lahko naložili različne formate video datotek.

sudoapt-dobili namestitelibavcodec-razvlibavformat-razvlibswscale-razvlibv4l-razv sudoapt-dobili namestitelibxvidcore-razvlibx264-razv

Knjižnica OpenCV spremlja podmodul z imenom Highgui ki se uporablja za prikazovanje slik na našem zaslonu in izdelavo bistvenih GUI-jev. Pred sestavljanjem tega podmodula moramo namestiti razvojno knjižnico GTK:

sudoapt-dobili namestitelibgtk2.0-razvlibgtk-3.-razv

Na sliki je mogoče izvesti več matričnih operacij s preverjanjem velikosti slike in nato branjem vrednosti slikovnih pik. Te vrednosti slikovnih pik lahko pretvorimo tudi v binarno obliko in nato te binarne številke spremenimo, da regeneriramo sliko. V Raspberry Pi imamo nekaj omejitev pri zagotavljanju vnosa, zato so te knjižnice pomembne in jih je treba namestiti. Zato je mogoče te rezultate izboljšati z namestitvijo nekaterih dodatnih odvisnosti:

sudoapt-dobili namestitelibatlas-osnova-razvgfortran

Nekateri bodo delali na Pythonu 2.7, nekateri pa na Pythonu 3. Za sestavljanje OpenCV skupaj z vezmi Pythona je treba namestiti glave datotek Python 2.7 in Python 3:

sudoapt-dobili namestitepython2.7.-razvpython3-razv

V novi različici Raspbian Python 3 je že nameščen in na terminalu Lx se lahko prikaže sporočilo, da 'Python 3 je že najnovejša različica' . Ta korak je pomemben, ker se lahko soočimo z napako v datoteki glave, imenovani kot Python.h med izvajanjem ukaza naredite za prevajanje OpenCV.

9. korak: Prenos izvorne kode OpenCV

Ko smo končali z namestitvijo odvisnosti, bomo poiskali arhivsko mapo OpenCV različice 3.3.0 iz uradnega imenika OpenCV.

CD ~ wget -ALI opencv.zip https://github.s/Itseez/opencv/arhiv/3.3.0.zip razpakirajteopencv.zip

Nameščamo celoten paket OpenCV, zato ga moramo vključiti opencv_contrib prav tako. Prenesite ga z uradne strani in nato razpakirajte.

wget -ALI opencv_contrib.zip https://github.s/Itseez/opencv_contrib/arhiv/3.3.0.zip razpakirajteopencv_contrib.zip

Med nalaganjem teh imenikov ne pozabite, da je različica OpenCV in opencv_contrib bi morale biti enake, tj. morale bi biti 3.3.0, sicer bo med namestitvijo prišlo do napak pri sestavljanju.

10. korak: Python 2.7 ali Python 3?

Z vidika uspešnosti je python 2.7 boljši od pythona 3, vendar v OpenCV ni veliko razlike. Moramo namestiti pip na Raspberry pred sestavljanjem OpenCV. To je sistem za upravljanje paketov, ki se uporablja za namestitev programskih paketov, ki se uporabljajo v Pythonu. Ti paketi so morda privzeto prisotni v najnovejšem programu raspbian, vendar je bolje, da jih preverite z naslednjimi ukazi.

wgethttps://zagonski trak.pypa.JAZ/dobili-pip.py sudopythondobili-pip.py sudopython3dobili-pip.py

Po namestitvi pipa sta dva paketa toplo priporočljiva in ju je treba namestiti med delom na OpenCV. Prvi je virtualenv, drugi pa virtualenvwrapper. OpenCV ne moremo uvoziti neposredno v Python, zato bomo ustvarili navidezno okolje in nato delali v tem okolju. Navidezno okolje je izjemno orodje, ki se uporablja za ohranjanje pogojev, ki jih zahtevajo različni projekti, na ločenih mestih z ustvarjanjem ločenih okolij Python za vsakega od njih.

sudopipnamestitevirtualenvvirtualenvwrapper sudorm -rf ~/.predpomnilnik/pip

Po namestitvi teh paketov moramo posodobiti svoj ~/.profil datoteka, ki je skrita datoteka v našem domačem imeniku in na koncu vsebuje naslednje vrstice. Vnesite naslednji ukaz za vstop v imenik:

nano~/.profil

Ko se imenik odpre, se pomaknite navzdol in vključuje naslednje vrstice:

# virtualenv in virtualenvwrapper izvozWORKON_HOME=$ HOME/.virtualenvs izvozVIRTUALENVWRAPPER_PYTHON=/usr/sem/python3 vir /usr/lokalno/sem/virtualenvwrapper.sh

Po vključitvi teh vrstic pritisnite ctrl + x, shranite s pritiskom na IN in izstopite.

Domači imenik

Kadarkoli zaženemo terminal in se prijavimo v naš Pi, se bo ta pikasta datoteka samodejno naložila za nas. Ker smo že prijavljeni, bi tipkali ročno vir ~ / .profile za nalaganje vsebine datoteke.

Ustvarjanje navideznega okolja Python: Z uporabo python 2.7 in python 3 moramo ustvariti navidezno okolje.

mkvirtualenvcv -str python2

Ustvarilo bo okolje z imenom cv na Pythonu 2.7. Kdor želi ustvariti okolje na Pythonu 3, naj vnese spodnji ukaz:

mkvirtualenvcv -str python3

Preverjanje, ali se nahajamo v virtualnem okolju, imenovanem 'cv': Ko ponovno zaženemo pi, ne bomo ostali v navideznem okolju in za vstop v način navideznega okolja moramo vnesti dva spodaj omenjena ukaza.

vir ~/.profile delati nacv

Spodnja slika kaže, da nismo v načinu navideznega okolja:

LxTerminal

Z vnosom zgoraj omenjenih ukazov bomo lahko dostopali do našega navideznega okolja. Če želimo zapustiti navidezno okolje, vtipkamo deaktiviraj:

Delo v navideznem okolju

Namestitev NumPy na Raspbian: Edina odvisnost, ki jo moramo namestiti OpenCV na Raspberry, je Numpy. Vnesite spodnji ukaz, da namestite Numpy na Raspberry Pi. Namestitev bo trajala približno 10 minut:

pipnamestitenumpy

11. korak: Prevajanje in namestitev OpenCV

Zbrali in namestili bomo OpenCV v navidezno okolje, zato se prepričajte, da delate v navideznem okolju CV. Če nismo v navideznem okolju, OpenCV ne bo uspel prevesti. Zdaj spremenite imenik v domači podimenik odprta cv 3.3 in nato naredite imenik za gradnjo. Po izdelavi imenika za gradnjo prilepite zadnjih pet vrstic v CMake imenik. Preveril bo, ali so določene poti knjižnic, različice pythona itd.

CD ~/opencv-3.3.0/ mkdir graditi CD graditi cmake -D CMAKE_BUILD_TYPE=SPROSTITEV  -D CMAKE_INSTALL_PREFIX=/usr/lokalno  -D INSTALL_PYTHON_EXAMPLES=VKLOPLJENO  -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/moduli  -D BUILD_PRIMERI=VKLOPLJENO ..

Za tiste, ki uporabljajo Python 2.7, se bodo morali pomakniti do izhoda CMake in poiskati razdelek Python 2.7 ter preveriti, ali so Numpy in poti paketov pravilno konfigurirani. Za tiste, ki uporabljajo Python 3, bodo preverili razdelek python 3 pod razdelkom Python 2:

Preverjanje oddelka Python 2.7

Zdaj smo končno pripravljeni na sestavljanje OpenCV. Vnesite make command in začel bo postopek prevajanja. Prebiranje bo trajalo približno štiri ure, zato je bolje, da začnete z zbiranjem, preden ponoči spite, tako da se zjutraj, ko se zbudite, zbere OpenCV. Če vnesete en ukaz 'make', se bo prevedlo z uporabo samo enega jedra. Čeprav traja nekaj časa, vendar ima manj verjetnosti napak. Uporaba ukaza make -j4 in make -j2 lahko povzroči pregrevanje Raspberry Pi in lahko povzroči tudi napake pri prevajanju:

naredite

Kompilacija končana

OpenCV 3 bomo namestili na Raspberry Pi z naslednjim ukazom. Zagon tega ukaza bo ustrezne datoteke kopiral na njihova mesta:

sudo make install

Naša namestitev bo zaključena z izvajanjem tega zadnjega ukaza:

sudoldconfig

Nekaj ​​korakov je ostalo, ko uporabljamo Python 2.7 ali Python 3.

12. korak: Dokončanje namestitve

Vrnite se v domači imenik s tipkanjem cd ~.

Python 3: Povezave OpenCV bomo sim-povezali v naš cv v imeniku python 3, ker smo za python 3 zbrali povezave OpenCV in python.

CD ~/.virtualenvs/cv/lib/python3.5./spletnem mestu-paketov/ ln -s /usr/lokalno/lib/python3.5./spletnem mestu-paketov/cv2. Torej cv2. Torej

To je to! Zdaj smo OpenCV namestili na Raspberry Pi. Zdaj jo bomo preverili v virtualnem okolju.

13. korak: Testiranje OpenCV

Odprite LxTerminal in napišite vir ukaz, ki mu sledi delati na ukaz. Ko smo vstopili v način navideznega okolja, bomo povezali OpenCV, tako da vtipkamo python in nato uvozimo cv2. Če sporočila o napaki ni, to pomeni, da je bilo uspešno uvoženo.

vir ~/.profile delati nacv python >>uvozcv2

Po tem bomo preverili našo različico OpenCV z vnosom naslednjega ukaza:

cv2.__ različica__

Testiranje]

OpenCV smo namestili na Raspberry 3B +. Zdaj lahko v Pythonu izvajamo številne operacije obdelave slik, kot so zaznavanje številk, prepoznavanje obrazov itd.