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.