Hoe OpenCV op Raspberry Pi te installeren?

We moeten verschillende bewerkingen op een afbeelding uitvoeren om er nuttige informatie uit te halen. Dit proces waarbij verschillende algoritmen op een afbeelding worden toegepast om de gewenste uitvoer te verkrijgen, wordt dus genoemd Afbeelding verwerken . Soms is het beeld bij de ingang wazig en willen we er gegevens uit halen. Bijvoorbeeld. Wanneer de overvallers de fiets of auto komen afpakken, komen ze meestal op de fiets en worden er overheadcamera's op de wegen geïnstalleerd die de beelden van het incident vastleggen. We moeten het kenteken weten van dat voertuig waarop de overvallers komen en het kan gemakkelijk worden gedaan met behulp van enkele algoritmen voor beeldverwerking. Om beeldverwerking uit te voeren op bepaalde afbeeldingen, moeten we enkele bibliotheken installeren op de hardware die we gebruiken. Van die bibliotheken is de belangrijkste OpenCV. OpenCV kan ook op pc's en microprocessors worden geïnstalleerd. Raspberry Pi is een microprocessor en wordt gebruikt in verschillende elektronische projecten. Na installatie van het besturingssysteem op de Raspberry Pi kunnen we er verschillende beeldverwerkingstaken op uitvoeren. Het installeren van de OpenCV op Raspberry Pi is een langdurige en hectische taak. In dit artikel zullen we leren hoe u OpenCV op Raspberry Pi installeert om er verschillende beeldbewerkingen op uit te voeren.



Gezichtsdetectie met OpenCV geïnstalleerd op Raspberry Pi

Hoe Raspberry Pi in te stellen en OpenCV erop te configureren?

Laten we nu verder gaan met het opzetten van Pi en het uitvoeren van bewerkingen die worden genoemd zoals onder stap voor stap om OpenCV erop te installeren. Het installeren van OpenCV op Pi is een langdurig proces en het duurt ongeveer 4 uur om te voltooien, dus als je een tekort aan tijd hebt, begin dan niet met de installatie. Raadpleeg deze tutorial als je vrij bent. Samen met deze Pi wordt opgewarmd wanneer deze is gedraaid AAN er worden lange tijd bewerkingen op uitgevoerd, dus bewaar het op een koele plaats wanneer u eraan werkt.



Stap 1: gebruikte componenten

  • Raspberry Pi 3B + Kit
  • Televisie met HDMI-poort
  • HDMI kabel
  • Bedrade computermuis

Stap 2: het Raspberry Pi-model selecteren

Er zijn verschillende modellen frambozen pi op de markt. Behalve framboos pi zero, kan elk model de voorkeur hebben. Dit komt omdat op Pi zero het opzetten van een netwerk een zeer vermoeiende klus is. De nieuwste modellen zoals 3A +, 3B + of 4 kunnen worden gekocht. De nieuwe Raspberry Pi 3 is de snelste en meest dominante gadget die de Raspberry Pi Foundation tot nu toe heeft uitgebracht. Dus in dit project zullen we de Raspberry Pi 3B + gebruiken.



Raspberry Pi 3B +



Stap 3: De randapparatuur aansluiten

Na het kiezen van Raspberry Pi zullen we toetsenbord en muis op de Raspberry Pi aansluiten. Gebruik na het aansluiten de HDMI-kabel om de Pi met de televisie te verbinden. Nadat we deze verbindingen hebben gemaakt, zijn we klaar om verder te gaan.

Stap 4: het besturingssysteem kiezen

Ten eerste hebben we een SD-kaart nodig met een geschikt besturingssysteem. Bij het kiezen van het besturingssysteem zijn er tegenwoordig verschillende alternatieven, van 'conventionele' Raspbian tot toegewijde media-werkraamwerken, en zelfs Windows 10 IoT. Er zijn niet veel applicaties nodig, daarom moeten we de Central Processing Unit (CPU) en Random Access Memory (RAM) zoveel mogelijk laten voor de mediastreaming-applicatie. Een probleem is dat Arch Linux wordt aanbevolen voor mensen die behoorlijk veel Linux-kennis hebben. Ze zijn erg frontlinie en we zullen ongetwijfeld problemen blijven tegenkomen bij de introductie van applicaties en bibliotheken van derden. Dus als dit uw eerste vestiging van een thuistheater is, raden we aan om te kiezen Raspbian Lite . Het wordt aangestuurd door de opdrachtregel en kan zonder veel moeite worden ontworpen om in de 'headless' -modus te blijven werken, d.w.z. volledig op afstand toegankelijk via het systeem zonder dat een console of scherm nodig is.

Raspbian Lite



Stap 5: zorg ervoor dat de Raspberry Pi up-to-date is

Houd de bronnen van uw Pi up-to-date, anders zal de verouderde software enkele problemen veroorzaken. Schakel de Virtual Network Computing (VNC) -viewer op uw Pi in en verbind vervolgens uw Raspberry Pi met de VNC-viewer. De link wordt hieronder gegeven om VNC te downloaden en vervolgens te verbinden met Pi.

VNC-kijker

Open nu de terminal en voer de volgende opdracht uit:

sudo apt-get update

Vervolgens,

sudo apt-get upgrade

Er worden tal van pakketten geïnstalleerd en indien gevraagd, druk op EN en toen Enter om ze correct te installeren.

Stap 6: Log in op Raspberry Pi

De standaard gebruikersnaam van de Raspberry Pi is pi, en het standaard wachtwoord is framboos. Dit zijn de standaard inloggegevens en gebruik deze gegevens bij de eerste keer inloggen om in te loggen op pi. U kunt deze gegevens ook wijzigen wanneer u maar wilt.

Log in op Raspberry Pi

Stap 7: genoeg ruimte creëren op Raspbian voor OpenCV

OpenCV verwerft veel geheugen, dus we moeten het bestandssysteem uitbreiden en alle ruimte aan de geheugenkaart toewijzen. We gaan naar de opdrachtprompt van Raspberry en typen de volgende opdracht:

sudo raspi-config

Er verschijnt een venster en het ziet er als volgt uit:

Configuratietool

Nu klikken we op Geavanceerde opties en daar vinden we een optie 'Bestandssysteem uitbreiden'. Selecteer die optie.

Vouw Bestandssysteem uit

We zullen op de Enter knop en druk vervolgens op de Af hebben knop. In dit stadium moet onze Raspberry Pi opnieuw worden opgestart om de wijzigingen door te voeren. Typ de volgende opdracht om het opnieuw op te starten:

sudo opnieuw opstarten

Na het opnieuw opstarten zullen we controleren of ons bestandssysteem is uitgebreid en alle ruimte op de SD-kaart is opgenomen of niet. Door uit te voeren df -h commando kunnen we verifiëren dat onze schijf is uitgebreid:

Degene die een 8GB micro SD-kaart gebruikt, gebruikt mogelijk 50% van de beschikbare ruimte, dus wordt verwijderd Wolfram-motor en LibreOffice kan ongeveer 1 GB aan ruimte vrijmaken. (Onthoud dat deze stap optioneel is).

sudoapt-krijgen zuiveringwolfraam-motor sudoapt-krijgen zuiveringlibreoffice* sudoapt-krijgen schoon sudoapt-krijgen autoremove

Stap 8: afhankelijkheden installeren

Voordat we voor en afhankelijkheden gaan, moeten we de bestaande pakketten die op Pi zijn geïnstalleerd bijwerken en upgraden:

sudo apt-get update

Vervolgens,

sudo apt-get upgrade

Nu zullen we enkele ontwikkeltools installeren die ons zullen helpen bij het configureren van OpenCV build:

sudoapt-krijgen installerenbouwen-essentieelcmakepkg-config

Om de verschillende bewerkingen op afbeeldingen uit te voeren, moeten we de verschillende afbeeldingsindelingen van de harde schijf laden. Deze formaten omvatten JPEG, PNG, enz. Voor het laden van deze beeldformaten zullen we enkele I / O-pakketten installeren:

sudoapt-krijgeninstallerenlibjpeg-devlibtiff5-devlibjasper-devlibpng12-dev

Naast deze I / O-pakketten met afbeeldingen zullen we ook I / O-pakketten voor video installeren. Na installatie van deze videopakketten kunnen we verschillende videobestandsindelingen laden.

sudoapt-krijgen installerenlibavcodec-devlibavformat-devlibswscale-devlibv4l-dev sudoapt-krijgen installerenlibxvidcore-devlibx264-dev

De OpenCV-bibliotheek begeleidt een submodule met de naam highgui die wordt gebruikt om afbeeldingen op ons scherm te laten zien en om essentiële GUI's te maken. Voordat we die submodule compileren, moeten we de GTK-ontwikkelbibliotheek installeren:

sudoapt-krijgen installerenlibgtk2.0-devlibgtk-3-dev

Er kunnen verschillende matrixbewerkingen op een afbeelding worden uitgevoerd door de grootte van de afbeelding te controleren en vervolgens pixelwaarden te lezen. We kunnen die pixelwaarden ook omzetten in binaire vorm en vervolgens die binaire cijfers wijzigen om een ​​afbeelding opnieuw te genereren. In Raspberry Pi hebben we enkele beperkingen bij het leveren van invoer, daarom zijn deze bibliotheken belangrijk en moeten ze worden geïnstalleerd. Daarom kunnen die resultaten worden verbeterd door enkele extra afhankelijkheden te installeren:

sudoapt-krijgen installerenlibatlas-baseren-devgfortran

Sommige mensen zullen aan Python 2.7 werken en anderen zullen aan Python 3 werken. De header-bestanden van Python 2.7 en Python 3 moeten worden geïnstalleerd om OpenCV samen met Python-bindingen te compileren:

sudoapt-krijgen installerenpython2.7-devpython3-dev

In de nieuwe versie van Raspbian is Python 3 al geïnstalleerd en kan er een bericht verschijnen op de Lx Terminal waarin staat dat 'Python 3 is al de nieuwste versie' . Deze stap is belangrijk omdat we fouten kunnen tegenkomen met betrekking tot het headerbestand met de naam Python.h tijdens het uitvoeren van de opdracht maken om OpenCV te compileren.

Stap 9: OpenCV-broncode downloaden

Als we klaar zijn met het installeren van de afhankelijkheden, zullen we de archiefmap van OpenCV versie 3.3.0 zoeken in de officiële map van OpenCV.

CD ~ wget -OF opencv.zip https://github.met/Itseez/opencv/archief/3.3.0.zip uitpakkenopencv.zip

We installeren het hele pakket van OpenCV, dus we moeten opencv_contrib ook. Download het van de officiële site en pak het vervolgens uit.

wget -OF opencv_contrib.zip https://github.met/Itseez/opencv_contrib/archief/3.3.0.zip uitpakkenopencv_contrib.zip

Houd bij het downloaden van deze mappen één ding in gedachten dat de versie van OpenCV en opencv_contrib moeten hetzelfde zijn, d.w.z. ze zouden 3.3.0 moeten zijn, anders zullen er compileerfouten optreden tijdens de installatie.

Stap 10: Python 2.7 of Python 3?

Qua prestaties is python 2.7 beter dan python 3, maar in OpenCV is er niet veel verschil. We moeten installeren Pip op Raspberry voordat OpenCV wordt gecompileerd. Het is een pakketbeheersysteem dat wordt gebruikt om de softwarepakketten te installeren die in Python worden gebruikt. Deze pakketten kunnen standaard aanwezig zijn in de nieuwste Raspbian, maar het is beter om deze te verifiëren met de volgende opdrachten.

wgethttps://bootstrap.pypa.IK/krijgen-Pip.py sudoPythonkrijgen-Pip.py sudopython3krijgen-Pip.py

Na het installeren van pip worden twee pakketten sterk aanbevolen en moeten deze worden geïnstalleerd terwijl u aan OpenCV werkt. De eerste is virtualenv en de tweede virtualenvwrapper. We kunnen OpenCV niet rechtstreeks in Python importeren, dus we zullen een virtuele omgeving maken en vervolgens in die omgeving werken. Een virtuele omgeving is een uitzonderlijke tool die wordt gebruikt om de voorwaarden die vereist zijn voor verschillende projecten op discrete plaatsen te houden door voor elk van hen afzonderlijke Python-omgevingen te creëren.

sudoPipinstallerenvirtualenvvirtualenvwrapper sudorm -rf ~/.cache/Pip

Na het installeren van deze pakketten moeten we onze ~/.profiel bestand dat het verborgen bestand is in onze homedirectory met de volgende regels aan het einde ervan. Typ de volgende opdracht om de directory in te voeren:

nano~/.profiel

Wanneer de directory is geopend, scrollt u naar beneden en bevat de volgende regels:

# virtualenv en virtualenvwrapper exporterenWORKON_HOME=$ THUIS/.virtualenvs exporterenVIRTUALENVWRAPPER_PYTHON=/usr/ben/python3 bron /usr/lokaal/ben/virtualenvwrapper.sh

Nadat u deze regels heeft toegevoegd, drukt u op ctrl + x en slaat u deze op door op te drukken EN en verlaat.

Basismap

Elke keer dat we de terminal starten en we inloggen op onze Pi, wordt dit puntbestand automatisch voor ons geladen. Omdat we al zijn ingelogd, typen we handmatig bron ~ / .profile om de inhoud van het bestand te laden.

Python Virtual Environment maken: We moeten een virtuele omgeving maken met python 2.7 en python 3.

mkvirtualenvCV -p python2

Het zal een omgeving creëren met de naam CV op Python 2.7. Iedereen die een omgeving op Python 3 wil maken, moet de onderstaande opdracht typen:

mkvirtualenvCV -p python3

Controleren of we ons in de virtuele omgeving bevinden die wordt genoemd als 'cv': Wanneer we de pi opnieuw opstarten, blijven we niet in een virtuele omgeving en moeten we twee onderstaande commando's typen om naar de virtuele omgevingsmodus te gaan.

bron ~/.profiel werken aanCV

De onderstaande afbeelding geeft aan dat we niet in de virtuele omgevingsmodus zijn:

LxTerminal

Dus door de twee hierboven genoemde opdrachten te typen, hebben we toegang tot onze virtuele omgeving. Als we de virtuele omgeving willen verlaten, typen we deactivate:

Werken in een virtuele omgeving

NumPy installeren op Raspbian: De enige afhankelijkheid die we nodig hebben om OpenCV op Raspberry te installeren, is Numpy. Typ de onderstaande opdracht om Numpy op Raspberry Pi te installeren. De installatie duurt ongeveer 10 minuten:

Pipinstallerennumpy

Stap 11: Compileren en installeren van OpenCV

We zullen OpenCV compileren en installeren in de virtuele omgeving, dus zorg ervoor dat u in de virtuele CV-omgeving werkt. Als we ons niet in de virtuele omgeving bevinden, zal de OpenCV niet compileren. Verander nu de directory naar de homedirectory, subdirectory open cv 3.3 en maak vervolgens de build-directory. Plak na het maken van de build-directory de laatste vijf regels in het CMake directory. Het controleert op bepaalde bibliotheken, ingestelde paden, python-versies, enz.

CD ~/opencv-3.3.0/ mkdir bouwen CD bouwen cmake -D CMAKE_BUILD_TYPE=VRIJLATING  -D CMAKE_INSTALL_PREFIX=/usr/lokaal  -D INSTALL_PYTHON_EXAMPLES=AAN  -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/modules  -D BUILD_EXAMPLES=AAN ..

Voor degenen die Python 2.7 gebruiken, zullen ze naar CMake-uitvoer moeten scrollen en naar de Python 2.7-sectie moeten zoeken om te zien of Numpy en paden van de pakketten correct zijn geconfigureerd. Voor degenen die Python 3 gebruiken, zullen de sectie Python 3 direct onder de sectie Python 2 controleren:

Python controleren 2.7 Sectie

Nu zijn we eindelijk klaar om OpenCV te compileren. Typ make command en het zal het compileerproces starten. Het compileren duurt ongeveer vier uur, dus het verdient de voorkeur om te beginnen met compileren voordat u 's nachts slaapt, zodat wanneer u' s ochtends wakker wordt de OpenCV wordt gecompileerd. Als u één commando 'make' typt, wordt er gecompileerd met slechts één kern. Hoewel het een beetje tijdrovend proces is, maar het heeft minder kans op fouten. Het gebruik van de opdracht make -j4 en make -j2 kan leiden tot oververhitting van de Raspberry Pi en kan ook resulteren in compilatiefouten:

maken

Compilatie voltooid

We zullen OpenCV 3 op Raspberry Pi installeren met behulp van de volgende opdracht. Als u deze opdracht uitvoert, worden de respectieve bestanden naar hun locaties gekopieerd:

sudo make install

Onze installatie wordt voltooid door deze laatste opdracht uit te voeren:

sudoldconfig

Er zijn nu een paar stappen over als we Python 2.7 of Python 3 gebruiken.

Stap 12: De installatie voltooien

Keer terug naar de homedirectory door te typen cd ~.

Python 3: We zullen de OpenCV-bindingen sym-linken naar onze cv in de python 3-map omdat we OpenCV- en python-bindingen voor python 3 hebben gecompileerd.

CD ~/.virtualenvs/CV/lib/python3.5/site-pakketjes/ ln -s /usr/lokaal/lib/python3.5/site-pakketjes/cv2.zo cv2.zo

Dat is het!. Nu hebben we OpenCV op Raspberry Pi geïnstalleerd. We zullen het nu controleren in de virtuele omgeving.

Stap 13: OpenCV testen

Open de LxTerminal en schrijf het bron commando gevolgd door het werken aan opdracht. Omdat we de virtuele omgevingsmodus zijn binnengegaan, zullen we OpenCV-bindingen importeren door python te typen en vervolgens cv2 te importeren. Als er geen foutbericht is, betekent dit dat het met succes is geïmporteerd.

bron ~/.profiel werken aanCV Python >>importerencv2

Daarna zullen we onze OpenCV-versie controleren door de volgende opdracht te typen:

cv2.__versie__

Testen]

We hebben OpenCV geïnstalleerd op Raspberry 3B +. Nu kunnen we talloze beeldverwerkingsbewerkingen in Python uitvoeren, zoals cijferdetectie, gezichtsherkenning, enz.