Sådan installeres OpenCV på Raspberry Pi?

Vi er nødt til at udføre forskellige operationer på et billede for at udtrække nyttige oplysninger fra det. Så kaldes denne proces med at anvende forskellige algoritmer på et billede for at opnå det ønskede output Billedbehandling . Nogle gange er billedet ved indgangen sløret, og vi vil hente data fra det. For eksempel. Når røverne kommer til at snuppe cyklen eller bilen, kommer de for det meste på cyklen, og der er installeret overheadkameraer på vejene, der fanger optagelserne fra hændelsen. Vi har brug for at kende registreringsnummeret på det køretøj, som røverne kommer på, og det kan gøres let ved hjælp af nogle algoritmer til billedbehandling. For at udføre billedbehandling på bestemte billeder skal vi installere nogle biblioteker på den hardware, vi bruger. Blandt disse biblioteker er det vigtigste OpenCV. OpenCV kan også installeres på pc'er og mikroprocessorer. Raspberry Pi er en mikroprocessor, og den bruges i forskellige elektroniske projekter. Efter installation af operativsystemet på Raspberry Pi kan vi udføre forskellige billedbehandlingsopgaver på det. Installation af OpenCV på Raspberry Pi er en lang og hektisk opgave. I denne artikel vil vi lære at installere OpenCV på Raspberry Pi til at udføre forskellige billedbehandlingsoperationer på den.



Ansigtsregistrering med OpenCV installeret på Raspberry Pi

Sådan opsættes Raspberry Pi og konfigurerer OpenCV på det?

Lad os nu bevæge os hen imod opsætning af Pi og udføre operationer nævnt som under trin for trin for at installere OpenCV på det. Installation af OpenCV på Pi er en langvarig proces, og det tager cirka 4 timer at gennemføre, så hvis du har mangel på tid, skal du ikke starte installationen, se denne vejledning, når du er fri. Sammen med denne Pi opvarmes, når den er vendt i lang tid, og der udføres tid på at tage operationer på det, så opbevar det et køligt sted, når du arbejder på det.



Trin 1: Brugte komponenter

  • Raspberry Pi 3B + sæt
  • Tv med HDMI-port
  • HDMI-kabel
  • Kablet computermus

Trin 2: Valg af Raspberry Pi-modellen

Flere modeller af hindbær pi er tilgængelige på markedet. Bortset fra hindbær pi nul kan enhver model foretrækkes. Dette skyldes, at oprettelse af et netværk på Pi er et meget trættende job. De nyeste modeller som 3A +, 3B + eller 4 kan købes. Den nye Raspberry Pi 3 er den hurtigste og mest dominerende gadget, som Raspberry Pi Foundation hidtil har frigivet. Så i dette projekt bruger vi Raspberry Pi 3B +.



Hindbær Pi 3B +



Trin 3: Tilslutning af perifert udstyr

Efter at have valgt Raspberry Pi, forbinder vi tastatur og mus til Raspberry Pi. Efter tilslutning af dem skal du bruge HDMI-kablet til at forbinde Pi med fjernsynet. Efter at have oprettet disse forbindelser er vi klar til at gå videre.

Trin 4: Valg af operativsystem

For det første har vi brug for et SD-kort med et passende operativsystem. Når du vælger operativsystemet, er der i dag forskellige alternativer, fra 'konventionel' Raspbian til hengivne mediarbejdsrammer og endda Windows 10 IoT. Der er ikke behov for mange applikationer, derfor skal vi forlade Central Processing Unit (CPU) og Random Access Memory (RAM) så meget som muligt for mediestreaming-applikationen. Et problem er, at Arch Linux anbefales til folk, der har ret meget Linux-viden. De er meget i frontlinjen, og vi er nødt til at fortsætte med at løbe ind i problemer, når vi introducerer tredjepartsapplikationer og biblioteker. Så hvis dette er din første etablering af en hjemmebiograf, foreslår vi plukning Raspbian Lite . Det er kommandolinjedrevet og kan uden meget af en strækning designet til at fortsætte med at køre i 'headless' -tilstand, dvs. fås fuldstændig fjernadgang over systemet uden krav om konsol eller skærm.

Raspbian Lite



Trin 5: Sørg for, at Raspberry Pi er opdateret

Hold kilderne til din Pi ajour, ellers vil den forældede software medføre nogle problemer. Aktivér VNC-seeren (Virtual Network Computing) på din Pi, og tilslut derefter din Raspberry Pi med VNC-fremviseren. Linket findes nedenfor til download af VNC og derefter tilslutning til Pi.

VNC Viewer

Åbn nu terminalen og kør følgende kommando:

sudo apt-get opdatering

Derefter,

sudo apt-get opgradering

Talrige pakker installeres, og tryk på, hvis du bliver bedt om det OG og så Gå ind for at installere dem korrekt.

Trin 6: Log ind på Raspberry Pi

Standardbrugernavnet på Raspberry Pi er pi, og standardadgangskoden er hindbær. Disse er standard loginoplysninger, og brug disse oplysninger til dit første login til at logge ind på pi. Du kan også ændre disse detaljer, når du vil.

Log ind på Raspberry Pi

Trin 7: Oprettelse af tilstrækkelig plads på Raspbian til OpenCV

OpenCV erhverver stor hukommelse, så vi skal udvide filsystemet og allokere al plads til hukommelseskortet. Vi går til kommandoprompten for hindbær og skriver følgende kommando:

sudo raspi-config

Et vindue vises, og det vil se sådan ud:

Konfigurationsværktøj

Nu vil vi klikke på Avancerede indstillinger, og der vil vi finde en indstilling 'Udvid filsystem'. Vælg den mulighed.

Udvid filsystem

Vi vil trykke på Gå ind og tryk derefter på Afslut knap. På dette tidspunkt skal vores Raspberry Pi genstartes for at ændringerne kan træde i kraft. Skriv følgende kommando for at genstarte den:

sudo genstart

Efter genstart vil vi kontrollere, om vores filsystem er udvidet, og al plads er inkluderet i SD-kortet eller ej. Ved at udføre df -h kommando, vi kan kontrollere, at vores disk er udvidet:

Den, der bruger et 8 GB micro SD-kort, bruger muligvis 50% af den ledige plads, så det slettes Wolfram motor og LibreOffice kan frigøre omkring 1 GB plads. (Husk at dette trin er valgfrit).

sudoapt- udrensningwolfram-motor sudoapt- udrensninglibreoffice* sudoapt- ren sudoapt- fjern automatisk

Trin 8: Installation af afhængigheder

Før vi går til og afhængigheder, skal vi opdatere og opgradere de eksisterende pakker, der er installeret på Pi:

sudo apt-get opdatering

Derefter,

sudo apt-get opgradering

Nu installerer vi nogle udviklingsværktøjer, der hjælper os med at konfigurere OpenCV build:

sudoapt- installerebygge-vigtigcmakepkg-config

For at udføre de forskellige handlinger på billeder skal vi indlæse de forskellige billedformater fra harddisken. Disse formater inkluderer JPEG, PNG osv. For at indlæse disse billedformater installerer vi nogle I / O-pakker:

sudoapt-installerelibjpeg-devlibtiff5-devlibjasper-devlibpng12-dev

Sammen med disse billed-I / O-pakker installerer vi også video-I / O-pakker. Efter installation af disse videopakker kan vi indlæse forskellige videofilformater.

sudoapt- installerelibavcodec-devlibavformat-devlibswscale-devlibv4l-dev sudoapt- installerelibxvidcore-devlibx264-dev

OpenCV-biblioteket ledsager et undermodul med navnet highgui som bruges til at vise billeder på vores skærm og fremstille vigtige GUI'er. Før vi kompilerer dette undermodul, skal vi installere GTK-udviklingsbiblioteket:

sudoapt- installerelibgtk2.0-devlibgtk-3-dev

Flere matrixoperationer kan udføres på et billede ved at kontrollere billedets størrelse og derefter læse pixelværdier. Vi kan også konvertere disse pixelværdier til binær form og derefter ændre de binære cifre for at regenerere et billede. I hindbær pi har vi nogle begrænsninger, når vi leverer input, derfor er disse biblioteker vigtige og skal installeres. Derfor kan disse resultater forbedres ved at installere nogle ekstra afhængigheder:

sudoapt- installerelibatlas-grundlag-devgfortran

Nogle mennesker arbejder på Python 2.7, og andre arbejder på Python 3. Overskriftsfilerne i Python 2.7 og Python 3 skal installeres til kompilering af OpenCV sammen med Python-bindinger:

sudoapt- installerepython2.7-devpython3-dev

I den nye version af Raspbian Python 3 er allerede installeret, og der kan vises en meddelelse i Lx Terminal, der angiver det “Python 3 er allerede den nyeste version” . Dette trin er vigtigt, fordi vi kan stå over for fejl med hensyn til headerfilen navngivet som Python.h mens du kører kommandoen lave at kompilere OpenCV.

Trin 9: Download af OpenCV-kildekode

Da vi er færdige med at installere afhængighederne, kigger vi efter arkivmappen i OpenCV version 3.3.0 fra den officielle OpenCV-bibliotek.

CD ~ wget -ELLER opencv.zip https://github.med/Itseez/opencv/arkiv/3.3.0.zip pakke udopencv.zip

Vi installerer hele OpenCV-pakken, så vi skal medtage opencv_contrib såvel. Download det fra det officielle websted, og pakk det derefter ud.

wget -ELLER opencv_contrib.zip https://github.med/Itseez/opencv_contrib/arkiv/3.3.0.zip pakke udopencv_contrib.zip

Mens du downloader disse mapper, skal du huske en ting, at versionen af ​​OpenCV og opencv_contrib skal være de samme, dvs. de skal være 3.3.0 ellers vil der være kompileringsfejl under installationen.

Trin 10: Python 2.7 eller Python 3?

Præstationsmæssigt python 2.7 er bedre end python 3, men i OpenCV er der ikke meget forskel. Vi skal installere pip på Raspberry inden du kompilerer OpenCV. Det er et pakkehåndteringssystem, der bruges til at installere de softwarepakker, der bruges i Python. Disse pakker er muligvis til stede i den seneste raspbian som standard, men det er bedre at kontrollere det ved hjælp af følgende kommandoer.

wgethttps://bootstrap.pypa.JEG/-pip.py sudopython-pip.py sudopython3-pip.py

Efter installation af pip anbefales to pakker stærkt og skal installeres, mens du arbejder på OpenCV. Den første er virtualenv og den anden virtualenvwrapper. Vi kan ikke importere OpenCV direkte i Python, så vi opretter et virtuelt miljø og arbejder derefter i det miljø. Et virtuelt miljø er et ekstraordinært værktøj, der bruges til at holde de betingelser, der kræves af forskellige projekter, på diskrete steder ved at oprette separate Python-miljøer til hver enkelt af dem.

sudopipinstallerevirtualenvvirtualenvwrapper sudorm -rf ~/.cache/pip

Efter installation af disse pakker skal vi opdatere vores ~/.profil fil, der er den skjulte fil i vores hjemmekatalog for at inkludere følgende linjer i slutningen af ​​den. Skriv følgende kommando for at komme ind i biblioteket:

nano~/.profil

Når biblioteket åbnes, skal du rulle ned og omfatte følgende linjer:

# virtualenv og virtualenvwrapper eksportWORKON_HOME=$ HJEM/.virtualenvs eksportVIRTUALENVWRAPPER_PYTHON=/usr/er/python3 kilde /usr/lokal/er/virtualenvwrapper.sh

Efter at have inkluderet disse linjer skal du trykke på ctrl + x, gemme det ved at trykke på OG og afslut.

Hjemmappe

Hver gang vi starter terminalen, og vi logger ind på vores Pi, indlæses denne dot-fil automatisk for os. Da vi allerede er logget ind, skriver vi manuelt kilde ~ / .profil for at indlæse indholdet af filen.

Oprettelse af Python Virtual Environment: Vi er nødt til at oprette et virtuelt miljø ved hjælp af python 2.7 og python 3.

mkvirtualenvcv -s python2

Det vil skabe et miljø, der hedder cv på Python 2.7. Enhver, der ønsker at skabe et miljø på Python 3, skal skrive kommandoen nævnt nedenfor:

mkvirtualenvcv -s python3

Bekræftelse af, at vi er i det virtuelle miljø navngivet som 'cv': Når vi genstarter pi'en, forbliver vi ikke i et virtuelt miljø, og vi skal indtaste to kommandoer, der er nævnt nedenfor, for at gå i virtuel miljøtilstand.

kilde ~/.profil arbejde påcv

Billedet nedenfor viser, at vi ikke er i tilstanden virtuelt miljø:

LxTerminal

Så ved at skrive de to ovennævnte kommandoer vil vi være i stand til at få adgang til vores virtuelle miljø. Hvis vi vil forlade det virtuelle miljø, skriver vi deaktiverer:

Arbejder i virtuelt miljø

Installation af NumPy On Raspbian: Den eneste afhængighed, som vi har brug for for at installere OpenCV på Raspberry, er Numpy. Skriv nedenstående kommando for at installere Numpy på Raspberry Pi. Det tager cirka 10 minutter at installere:

pipinstallerebedøvet

Trin 11: Kompilering og installation af OpenCV

Vi vil kompilere og installere OpenCV i det virtuelle miljø, så sørg for at du arbejder ind i det virtuelle CV-miljø. Hvis vi ikke er i det virtuelle miljø, kan OpenCV ikke kompilere. Skift nu biblioteket til hjemmekatalog, underkatalog åben cv 3.3 og lav derefter buildmappen. Efter at have bygget build-kataloget, indsæt de sidste fem linjer i CMake vejviser. Det kontrollerer for bestemte biblioteker, der er indstillede stier, pythonversioner osv.

CD ~/opencv-3.3.0/ mkdir bygge CD bygge cmake -D CMAKE_BUILD_TYPE=FRIGØRE  -D CMAKE_INSTALL_PREFIX=/usr/lokal  -D INSTALL_PYTHON_EXAMPLES=  -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/moduler  -D BUILD_EKSEMPLER= ..

For dem, der bruger Python 2.7, skal de rulle til CMake-output og se efter Python 2.7-sektionen og se, om Numpy og stier til pakkerne er konfigureret korrekt. For dem, der bruger Python 3, skal du kontrollere python 3-sektionen lige under Python 2-sektionen:

Kontrol af Python 2.7 sektion

Nu er vi endelig klar til at kompilere OpenCV. Skriv make kommando, og det starter kompileringsprocessen. Det vil tage cirka fire timer at kompilere, derfor foretrækkes det at starte kompilering, før du sover om natten, så OpenCV kompileres, når du vågner om morgenen. At skrive en kommando 'make' kompileres ved hjælp af kun en kerne. Selvom det er lidt tid at tage processen, men det har mindre sandsynlighed for fejl. Brug af kommandoen make -j4 og make -j2 kan resultere i overophedning af Raspberry Pi, og det kan også resultere i kompileringsfejl:

lave

Kompilering fuldført

Vi installerer OpenCV 3 på Raspberry Pi ved hjælp af følgende kommando. Ved at køre denne kommando kopieres de respektive filer til deres placeringer:

sudo gør installation

Vores installation afsluttes ved at køre denne endelige kommando:

sudoldconfig

Et par trin er tilbage nu, når vi bruger Python 2.7 eller Python 3.

Trin 12: Afslut installationen

Gå tilbage til hjemmekataloget ved at skrive cd ~.

Python 3: Vi vil sammenkæde OpenCV-bindingerne til vores cv i python 3-biblioteket, fordi vi kompilerede OpenCV- og python-bindinger til python 3.

CD ~/.virtualenvs/cv/lib/python3.5/websted-pakker/ ln -s /usr/lokal/lib/python3.5/websted-pakker/cv2.så cv2.så

Det er det!. Nu har vi installeret OpenCV på Raspberry Pi. Vi vil nu kontrollere det i det virtuelle miljø.

Trin 13: Test af OpenCV

Åbn LxTerminal og skriv kilde kommando efterfulgt af arbejde på kommando. Da vi er gået i den virtuelle miljøtilstand, importerer vi OpenCV-bindinger ved at skrive python og derefter importere cv2. Hvis der ikke er nogen fejlmeddelelse, betyder det, at den er importeret med succes.

kilde ~/.profil arbejde påcv python >>importerecv2

Derefter kontrollerer vi vores OpenCV-version ved at skrive følgende kommando:

cv2.__version__

Test]

Vi har installeret OpenCV på Raspberry 3B +. Nu kan vi udføre adskillige billedbehandlingsoperationer i Python som cifferdetektion, ansigtsgenkendelse osv.