Hoe installeer ik OpenCV op Raspberry Pi?

We moeten verschillende bewerkingen op een afbeelding uitvoeren om er nuttige informatie uit te halen. Dit proces van het toepassen van verschillende algoritmen op een afbeelding om de gewenste uitvoer te verkrijgen, wordt dus aangeroepen 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 pakken, 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 het installeren 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.

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 AANer worden lange tijd bewerkingen op uitgevoerd, dus bewaar het op een koele plaats wanneer u eraan werkt.

Stap 1: gebruikte componenten

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.

Stap 3: De randapparatuur aansluiten

Nadat we Raspberry Pi hebben gekozen, zullen we toetsenbord en muis op de Raspberry Pi aansluiten. Gebruik na het aansluiten de HDMI-kabel om 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 met een geschikt besturingssysteem nodig. 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 u aan om te kiezenRaspbian 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.

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

Dan,

sudo apt-get upgrade

Er worden tal van pakketten geïnstalleerd en indien gevraagd, drukt u op Y en dan 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 bij uw eerste login gebruikt u deze gegevens om in te loggen op pi. U kunt deze gegevens ook wijzigen wanneer u maar wilt.

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:

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

We zullen op de Enterknop en druk vervolgens op de Af hebbenknop. 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 controleren of 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).

sudo apt-get purge wolfram-engine sudo apt-get purge libreoffice * sudo apt-get clean sudo apt-get 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

Dan,

sudo apt-get upgrade

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

sudo apt-get install build-essential cmake pkg-config

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

sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev

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

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt-get install libxvidcore-dev libx264-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:

sudo apt-get install libgtk2.0-dev libgtk-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:

sudo apt-get install libatlas-base-dev gfortran

Sommige mensen zullen aan Python 2.7 werken en sommigen 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:

sudo apt-get install python2.7-dev python3-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.htijdens 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 -O opencv.zip https://github.com/Itseez/opencv/archive/3.3.0.zip unzip opencv.zip

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

wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.3.0.zip unzip opencv_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 Pipop 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 ze te verifiëren door de volgende opdrachten te gebruiken.

wget https://bootstrap.pypa.io/get-pip.py sudo python get-pip.py sudo python3 get-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 ervan afzonderlijke Python-omgevingen te creëren.

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

Na het installeren van deze pakketten moeten we onze ~ / .profile 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 ~ / .profile

Wanneer het telefoonboek is geopend, scrolt u naar beneden en bevat het de volgende regels:

# virtualenv en virtualenvwrapper export WORKON_HOME = $ HOME / .virtualenvs export VIRTUALENVWRAPPER_PYTHON = / usr / bin / python3 bron /usr/local/bin/virtualenvwrapper.sh

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

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 ~ / .profileom de inhoud van het bestand te laden.

Een virtuele Python-omgeving maken: We moeten een virtuele omgeving maken met python 2.7 en python 3.

mkvirtualenv cv -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:

mkvirtualenv cv -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.

source ~ / .profile workon cv

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

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:

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:

pip installeer numpy

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.3en 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.

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

sudo ldconfig

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-directory omdat we OpenCV- en python-bindingen voor python 3 hebben gecompileerd.

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

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 aanopdracht. 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.

source ~ / .profile workon cv python >> import cv2

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

cv2 .__ versie__

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

Facebook Twitter Google Plus Pinterest