Hur installerar jag OpenCV på Raspberry Pi?

Vi måste utföra olika operationer på en bild för att extrahera användbar information från den. Så kallas denna process för att tillämpa olika algoritmer på en bild för att få önskad utdata Bildbehandling . Ibland är bilden vid ingången suddig och vi vill skaffa data från den. Till exempel. När rånarna kommer för att fånga cykeln eller bilen kommer de oftast på cykeln och överliggande kameror är installerade på vägarna som tar bilderna av händelsen. Vi måste veta registreringsnumret för det fordonet där rånarna kommer och det kan enkelt göras med hjälp av några algoritmer för bildbehandling. För att kunna utföra bildbehandling på vissa bilder måste vi installera några bibliotek på den hårdvara som vi använder. Bland de biblioteken är det viktigaste OpenCV. OpenCV kan också installeras på datorer och mikroprocessorer. Raspberry Pi är en mikroprocessor och används i olika elektroniska projekt. Efter att ha installerat operativsystemet på Raspberry Pi kan vi utföra olika bildbehandlingsuppgifter på det. Installera OpenCV på Raspberry Pi är en lång och hektisk uppgift. I den här artikeln lär vi oss hur man installerar OpenCV på Raspberry Pi för att utföra olika bildbehandlingsåtgärder på den.



Ansiktsavkänning med OpenCV installerat på Raspberry Pi

Hur ställer jag in Raspberry Pi och konfigurerar OpenCV på den?

Låt oss nu gå mot att ställa in Pi och göra åtgärder som nämns under steg för steg för att installera OpenCV på den. Installera OpenCV på Pi är en lång process och det tar cirka 4 timmar att slutföra, så om du har brist på tid börja inte installationen, se den här guiden när du är ledig. Tillsammans med denna Pi värms upp när den har vridits under lång tid och det tar tid att ta operationer på den, så håll den på en sval plats när du arbetar med den.



Steg 1: Använda komponenter

  • Raspberry Pi 3B + Kit
  • TV med HDMI-port
  • HDMI-kabel
  • Trådbunden datormus

Steg 2: Välja Raspberry Pi-modellen

Flera modeller av hallon pi finns på marknaden. Förutom hallon pi zero kan vilken modell som helst föredras. Detta beror på att nollställning av ett nätverk på Pi är ett mycket tröttsamt jobb. De senaste modellerna som 3A +, 3B + eller 4 kan köpas. Den nya Raspberry Pi 3 är den snabbaste och mest dominerande gadgeten som Raspberry Pi Foundation har släppt hittills. Så i det här projektet kommer vi att använda Raspberry Pi 3B +.



Raspberry Pi 3B +



Steg 3: Ansluta kringutrustning

Efter att ha valt Raspberry Pi kommer vi att ansluta tangentbord och mus till Raspberry Pi. När du har anslutit dem använder du HDMI-kabeln för att ansluta Pi till TV: n. Efter att ha gjort dessa anslutningar är vi redo att gå vidare.

Steg 4: Välja operativsystem

För det första behöver vi ett SD-kort med ett lämpligt operativsystem. När du väljer operativsystem finns det idag olika alternativ, från 'konventionell' Raspbian till hängivna ramar för mediearbete, och till och med Windows 10 IoT. Det finns inget behov av många applikationer, därför bör vi lämna Central Processing Unit (CPU) och Random Access Memory (RAM) så mycket vi kan för mediastreaming-applikationen. Ett problem är att Arch Linux rekommenderas för personer som har ganska mycket Linux-kunskap. De är väldigt frontlinjen och vi kommer säkert att fortsätta stöta på problem när vi introducerar applikationer och bibliotek från tredje part. Således, om detta är din första etablering av en hemmabio, föreslår vi att du väljer Raspbian Lite . Det är kommandoradsdrivet och kan utan mycket av en sträcka som är utformat för att fortsätta köra i 'headless' -läge, dvs åtkomst helt fjärröver systemet utan krav på en konsol eller skärm.

Raspbian Lite



Steg 5: Se till att Raspberry Pi är uppdaterad

Håll källorna till din Pi uppdaterad annars kommer den föråldrade programvaran att orsaka några problem. Aktivera Virtual Network Computing (VNC) -visaren på din Pi och anslut sedan din Raspberry Pi med VNC-visaren. Länken finns nedan för nedladdning av VNC och sedan anslutning till Pi.

VNC Viewer

Öppna nu terminalen och kör följande kommando:

sudo apt-get uppdatering

Sedan,

sudo apt-get uppgradering

Många paket kommer att installeras och tryck på förfrågan OCH och då Stiga på för att installera dem ordentligt.

Steg 6: Logga in på Raspberry Pi

Standardanvändarnamnet för Raspberry Pi är pi, och standardlösenordet är hallon. Dessa är standardinloggningsuppgifterna och vid din första inloggning använder du dessa uppgifter för att logga in på pi. Du kan ändra dessa detaljer också när du vill.

Logga in på Raspberry Pi

Steg 7: Skapa tillräckligt med utrymme på Raspbian för OpenCV

OpenCV förvärvar stort minne så vi måste utvidga filsystemet och allokera allt utrymme till minneskortet. Vi går till kommandotolken för hallon och skriver följande kommando:

sudo raspi-config

Ett fönster visas och det ser ut så här:

Konfigurationsverktyg

Nu klickar vi på Avancerade alternativ och där hittar vi ett alternativ ”Expand Filesystem”. Välj det alternativet.

Expandera filsystem

Vi kommer att trycka på Stiga på och tryck sedan på Avsluta knapp. I detta skede måste vår Raspberry Pi startas om för att ändringarna ska träda i kraft. Skriv följande kommando för att starta om det:

omstart av sudo

Efter omstart kommer vi att kontrollera om vårt filsystem har expanderat och att allt utrymme ingår i SD-kortet eller inte. Genom att köra df -h kommando kan vi verifiera att vår disk har expanderat:

Den som använder ett 8 GB micro SD-kort kan använda 50% av det tillgängliga utrymmet, så att det raderas Wolfram Engine och LibreOffice kan frigöra cirka 1 GB utrymme. (Kom ihåg att detta steg är valfritt).

sudobenägen-skaffa sig renavolfram-motor sudobenägen-skaffa sig renalibreoffice* sudobenägen-skaffa sig rena sudobenägen-skaffa sig automatiskt ta bort

Steg 8: Installera beroenden

Innan vi går till och beroenden måste vi uppdatera och uppgradera befintliga paket som är installerade på Pi:

sudo apt-get uppdatering

Sedan,

sudo apt-get uppgradering

Nu kommer vi att installera några utvecklingsverktyg som hjälper oss att konfigurera OpenCV build:

sudobenägen-skaffa sig Installerabygga-grundläggandecmakepkg-config

För att utföra olika operationer på bilder måste vi ladda flera bildformat från hårddisken. Dessa format inkluderar JPEG, PNG, etc. För att ladda dessa bildformat installerar vi några I / O-paket:

sudobenägen-skaffa sigInstalleralibjpeg-devlibtiff5-devlibjasper-devlibpng12-dev

Tillsammans med dessa I / O-paket för bilder kommer vi också att installera video-I / O-paket. Efter att ha installerat dessa videopaket kommer vi att kunna ladda olika videofilformat.

sudobenägen-skaffa sig Installeralibavcodec-devlibavformat-devlibswscale-devlibv4l-dev sudobenägen-skaffa sig Installeralibxvidcore-devlibx264-dev

OpenCV-biblioteket åtföljer en namngiven undermodul highgui som används för att visa bilder på vår skärm och tillverka viktiga GUI. Innan vi kompilerar den undermodulen måste vi installera GTK-utvecklingsbiblioteket:

sudobenägen-skaffa sig Installeralibgtk2.0-devlibgtk-3-dev

Flera matrisoperationer kan utföras på en bild genom att kontrollera storleken på bilden och sedan läsa pixelvärden. Vi kan också konvertera dessa pixelvärden till binär form och sedan ändra de binära siffrorna för att återskapa en bild. I hallon pi har vi några begränsningar när vi tillhandahåller input, därför är dessa bibliotek viktiga och måste installeras. Därför kan dessa resultat förbättras genom att installera några extra beroenden:

sudobenägen-skaffa sig Installeralibatlas-bas-devgfortran

Vissa människor kommer att arbeta med Python 2.7 och andra kommer att arbeta med Python 3. Rubrikfilerna i Python 2.7 och Python 3 måste installeras för att kompilera OpenCV tillsammans med Python-bindningar:

sudobenägen-skaffa sig Installerapython2.7-devpython3-dev

I den nya versionen av Raspbian Python 3 är redan installerad och en msg kan visas i Lx Terminal där det anges “Python 3 är redan den senaste versionen” . Det här steget är viktigt eftersom vi kan möta fel angående rubrikfilen som heter Python.h medan du kör kommandot göra att kompilera OpenCV.

Steg 9: Ladda ner OpenCV-källkoden

När vi är färdiga med installationen av beroenden kommer vi att leta efter arkivmappen för OpenCV version 3.3.0 från den officiella katalogen för OpenCV.

CD ~ wget -ELLER opencv.blixtlås https://github.med/Itseez/opencv/arkiv/3.3.0.zip packa uppopencv.blixtlås

Vi installerar hela paketet med OpenCV så vi måste inkludera opencv_contrib också. Ladda ner den från den officiella webbplatsen och packa sedan upp den.

wget -ELLER opencv_contrib.blixtlås https://github.med/Itseez/opencv_contrib/arkiv/3.3.0.zip packa uppopencv_contrib.blixtlås

Håll en sak i åtanke när du laddar ner dessa kataloger att versionen av OpenCV och opencv_contrib ska vara samma, dvs de ska vara 3.3.0 annars kommer det att bli kompileringsfel under installationen.

Steg 10: Python 2.7 eller Python 3?

Prestationsmässigt python 2.7 är bättre än python 3 men i OpenCV är det inte mycket skillnad. Vi måste installera pip på Hallon innan du kompilerar OpenCV. Det är ett pakethanteringssystem som används för att installera de programvarupaket som används i Python. Dessa paket kan finnas i den senaste raspbianen som standard men det är bättre att verifiera det med hjälp av följande kommandon.

wgethttps://bootstrap.pypa.Jag/skaffa sig-pip.py sudopytonormskaffa sig-pip.py sudopython3skaffa sig-pip.py

Efter installationen av pip rekommenderas starkt två paket och måste installeras när du arbetar på OpenCV. Den första är virtualenv och den andra virtualenvwrapper. Vi kan inte importera OpenCV direkt i Python så vi skapar en virtuell miljö och arbetar sedan i den miljön. En virtuell miljö är ett exceptionellt verktyg som används för att hålla de villkor som krävs av olika projekt på diskreta platser genom att skapa separata Python-miljöer för var och en av dem.

sudopipInstalleravirtualenvvirtualenvwrapper sudorm -rf ~/.cache/pip

Efter att ha installerat dessa paket måste vi uppdatera våra ~/.profil fil som är den dolda filen i vår hemkatalog för att inkludera följande rader i slutet av den. Skriv följande kommando för att komma in i katalogen:

nano~/.profil

När katalogen öppnas bläddrar du ner och innehåller följande rader:

# virtualenv och virtualenvwrapper exporteraWORKON_HOME=$ HEM/.virtualenvs exporteraVIRTUALENVWRAPPER_PYTHON=/usr/är/python3 källa /usr/lokal/är/virtualenvwrapper.sh

Efter att ha inkluderat dessa rader trycker du på ctrl + x, sparar den genom att trycka på OCH och avsluta.

Hemkatalog

När som helst vi startar terminalen och vi loggar in på vår Pi laddas den här punktfilen automatiskt åt oss. Eftersom vi redan är inloggade skulle vi skriva manuellt källa ~ / .profile för att ladda innehållet i filen.

Skapa Pythons virtuella miljö: Vi måste skapa en virtuell miljö med python 2.7 och python 3.

mkvirtualenvCV -sid python2

Det kommer att skapa en miljö som heter CV på Python 2.7. Den som vill skapa en miljö på Python 3 bör skriva kommandot nedan:

mkvirtualenvCV -sid python3

Verifiera att vi befinner oss i den virtuella miljön som heter 'cv': När vi startar om pi kommer vi inte att förbli i en virtuell miljö och vi måste skriva in två kommandon som nämns nedan för att gå in i virtuellt miljöläge.

källa ~/.profil jobba påCV

Bilden nedan visar att vi inte befinner oss i det virtuella miljöläget:

LxTerminal

Så genom att skriva de två kommandona som nämns ovan kommer vi att kunna komma åt vår virtuella miljö. Om vi ​​vill lämna den virtuella miljön kommer vi att inaktivera:

Arbetar i virtuell miljö

Installera NumPy On Raspbian: Det enda beroendet som vi behöver för att installera OpenCV på Raspberry är Numpy. Skriv kommandot som nämns nedan för att installera Numpy på Raspberry Pi. Det tar cirka 10 minuter att installera:

pipInstallerabedövad

Steg 11: Kompilering och installation av OpenCV

Vi kommer att sammanställa och installera OpenCV i den virtuella miljön, så se till att du arbetar i den virtuella CV-miljön. Om vi ​​inte befinner oss i den virtuella miljön kommer OpenCV inte att kompilera. Ändra nu katalogen till hemkatalog, underkatalog öppna cv 3.3 och gör sedan byggkatalogen. Efter att byggkatalogen har klistrats in sista fem raderna i CMake katalog. Det kommer att kontrollera om vissa bibliotek ställer in sökvägar, pythonversioner etc.

CD ~/opencv-3.3.0/ mkdir bygga CD bygga cmake -D CMAKE_BUILD_TYPE=SLÄPP  -D CMAKE_INSTALL_PREFIX=/usr/lokal  -D INSTALL_PYTHON_EXAMPLES=  -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.3.0/moduler  -D BYGGA EXEMPEL= ..

För dem som använder Python 2.7 måste de bläddra till CMake-utdata och leta efter Python 2.7-avsnittet och se om Numpy och sökvägar för paketen är korrekt konfigurerade. För dem som använder Python 3 kommer att kontrollera avsnittet python 3 precis under Python 2-avsnittet:

Kontrollerar Python 2.7 avsnitt

Nu är vi äntligen redo att sammanställa OpenCV. Skriv make-kommando och det startar kompileringsprocessen. Det tar ungefär fyra timmar att kompilera, det är därför att föredra att börja kompilera innan du sover på natten så att OpenCV kompileras när du vaknar på morgonen. Att skriva ett kommando 'make' kommer att kompileras med endast en kärna. Även om det tar lite tid att ta processen men det har mindre sannolikhet för fel. Att använda kommandot make -j4 och make -j2 kan leda till överhettning av Raspberry Pi och det kan också resultera i kompileringsfel:

göra

Sammanställning klar

Vi installerar OpenCV 3 på Raspberry Pi med följande kommando. När du kör det här kommandot kopieras respektive filer till sina platser:

sudo gör installation

Vår installation kommer att slutföras genom att köra det här slutkommandot:

sudoldconfig

Ett par steg är kvar nu när vi använder Python 2.7 eller Python 3.

Steg 12: Avsluta installationen

Gå tillbaka till hemkatalogen genom att skriva cd ~.

Python 3: Vi kommer att symlänka OpenCV-bindningarna till vår cv i python 3-katalogen eftersom vi har sammanställt OpenCV- och pythonbindningar för python 3.

CD ~/.virtualenvs/CV/lib/python3.5/webbplats-paket/ ln -s /usr/lokal/lib/python3.5/webbplats-paket/cv2.så cv2.så

Det är allt!. Nu har vi installerat OpenCV på Raspberry Pi. Vi kommer nu att leta efter det i den virtuella miljön.

Steg 13: Testa OpenCV

Öppna LxTerminal och skriv källa kommando följt av jobba på kommando. När vi har gått in i det virtuella miljöläget importerar vi OpenCV-bindningar genom att skriva python och sedan importera cv2. Om det inte finns något felmeddelande betyder det att det har importerats framgångsrikt.

källa ~/.profil jobba påCV pytonorm >>importeracv2

Därefter kommer vi att kontrollera vår OpenCV-version genom att skriva följande kommando:

cv2.__version__

Testning]

Vi har installerat OpenCV på Raspberry 3B +. Nu kan vi utföra många bildbehandlingsåtgärder i Python som siffra upptäckt, ansiktsigenkänning, etc.