OpenCV

OpenCV is een enorme open-sourcebibliotheek voor computervisie, machinelearning en beeldverwerking en speelt een belangrijke rol in realtime werking, wat erg belangrijk is in de systemen van vandaag. Door het te gebruiken, kan men afbeeldingen en video's verwerken om objecten, gezichten of zelfs het handschrift van een mens te identificeren. 

Toen OpenCV werd ontworpen, lag de nadruk vooral op realtime toepassingen voor rekenefficiëntie. Python is op zichzelf niet erg snel, C/C++ daarentegen wel. Alle onderdelen in OpenCV zijn geschreven in geoptimaliseerde C/C++ om te profiteren van multi-core verwerking. Het in Python geschreven programma behoudt zijn C/C++ snelheid.

Om beeldpatronen en de verschillende kenmerken ervan te identificeren, gebruiken we vectorruimte en voeren we wiskundige bewerkingen uit op specifieke kenmerken. Er zijn veel toepassingen die worden opgelost met behulp van OpenCV. Hieronder vermeld ik er een aantal. 

  • Gezichtsherkenning
  • Geautomatiseerde inspectie en bewaking
  • Aantal mensen – aantal (voetverkeer in een winkelcentrum, enz.)
  • Voertuig tellen op snelwegen samen met hun snelheden
  • Interactieve kunstinstallaties
  • Detectie van afwijkingen (defecten) in het fabricageproces (de oneven defecte producten)
  • Stiksel van Street View-afbeeldingen
  • Zoeken en ophalen van video/afbeeldingen
  • Robot- en bestuurderloze autonavigatie en besturing
  • Object herkenning
  • Medische beeldanalyse
  • Films – 3D-structuur vanuit beweging
  • Advertentieherkenning van tv-kanalen

OpenCV-functionaliteit

Een paar functionaliteiten van OpenCV.

  • Beeld/video I/O, verwerking, weergave (core, imgproc, highgui)
  • Detectie van objecten/kenmerken (objdetect, features2d, nonfree)
  • Geometrie-gebaseerde monoculaire of stereo computervisie (calib3d, stitching, videostab)
  • Computationele fotografie (foto, video, superres)
  • Machine learning & clustering (ml, flann)
  • CUDA-versnelling (gpu)

In deze tutorial installeren we de stabiele versie van OpenCV versie 4.0.0. Wellicht is er al een hogere versie als je dit leest, die kun je wellicht dan installeren.

Voor het beste resultaat kun je het beste een Raspberry Pi 4 gebruiken. Je kunt, zoals ik voor deze tutorial ook een 3B+ of 3B gebruiken als je wilt, maar voor OpenCV is best wel wat rekenkracht nodig.

OpenCV installeren op Raspberry Pi met behulp van CMake

Voordat je met de installatie begint, moet je enkele dingen configureren om een juiste installatie van OpenCV te garanderen.

Stap 1: bestandssysteem uitbreiden

• Het uitbreiden van het bestandssysteem is nodig zodat de OpenCV-bibliotheek correct kan worden gecompileerd. Om het bestandssysteem uit te breiden, ga je naar de terminal en typ je de volgende opdracht.

sudo raspi-config

• Nadat je de bovenstaande opdracht hebt getypt, zie je een menu zoals de onderstaande afbeelding. Ga naar Advanced Options en selecteer Expand Filesystem.

• Daarna zal de Pi aangeven dat hij opnieuw moet worden opgestart om de grootte van de partitie te wijzigen.

Stap 2: Systeem bijwerken

• Zorg ervoor dat alle pakketten zijn bijgewerkt voordat je verder gaat.

sudo apt-get update && sudo apt-get upgrade

Stap 3: CMake installeren

CMake is een open-source, platform onafhankelijke reeks tools die zijn ontworpen om software te bouwen, testen en verpakken. CMake wordt gebruikt om het software compilatieproces te besturen met behulp van eenvoudige platform- en compiler onafhankelijke configuratiebestanden, en om zgn. native makefiles en werkruimten te genereren die gebruikt kunnen worden in de compileromgeving van jouw keuze.

  • CMake is nodig om de OpenCV-bibliotheek te compileren. Met het volgende commando installeren we snapd voor het installeren van het CMake-pakket:

sudo apt install snapd

  • We kunnen nu het CMake-pakket downloaden en installeren met behulp van de opdracht:

sudo snap install cmake --classic

Het scherm na voltooiing van de installatie van CMake

Stap 4: Python installeren

• Installeer de nieuwste ontwikkelingsheaders van Python 3, voor zover je ze nog niet hebt.

sudo apt-get install python3-dev

Stap 5: OpenCV-pakketten ophalen

• Eerst downloaden we het broncode pakket van OpenCV van GitHub en compileren het op onze Raspberry Pi met behulp van CMake. Gebruik de volgende opdracht om hetzelfde te doen.

wget -O opencv.zip https://github.com/opencv/opencv/archive/4.0.0.zip

• Zoals u kunt zien, downloaden we Open CV versie 4.0.0
• OpenCV heeft een aantal vooraf gebouwde pakketten voor python die ons zullen helpen bij het ontwikkelen van dingen die eenvoudiger zijn, de eigenlijke OpenCV-bijdrage. Dus laten we deze ook downloaden met een vergelijkbare opdracht die hieronder wordt weergegeven. Het betreft één opdrachtregel.

wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.0.0.zip

• Op dit moment zou je twee zip-bestanden met de naam “Opencv-4.0.0” en “opencv-contrib-4.0.0” in de home-directorie moeten hebben gedownload. Controleer dit voordat je verder gaat met

ls -l

Twee gezipte bestanden in de home-directorie

Stap 6: OpenCV-pakketten installeren

• Laten we het opencv-4.0.0 zip-bestand uitpakken met de volgende opdracht.

unzip opencv.zip

• Pak op dezelfde manier ook opencv_contrib-4.0.0 uit met behulp van de opdrachtregel

unzip opencv_contrib.zip

Stap 7: NumPy installeren

• OpenCV vereist NumPy om te kunnen werken. Installeer het met de volgende opdracht:

pip install numpy

Hier is Numpy al geïnstalleerd

• Reboot de Raspberry Pi voordat je verder gaat met:

sudo reboot

Stap 8: Bouwmap

• Nu zouden we twee directories met de naam “opencv-4.0.0” en “opencv_contrib-4.0.0” in onze home-directorie moeten hebben.
• De volgende stap is om de Open CV-bibliotheek te compileren. Om dat te doen moeten we een nieuwe directorie maken met de naam “build” in de opencv-4.0.0-directorie. Volg de onderstaande opdrachten om hetzelfde te doen

cd ~/opencv-4.0.0
mkdir build
cd build

Stap 9: Instructies voor het compileren

  • CMake moet voor OpenCV uitgevoerd worden. Dit is de plaats waar we kunnen configureren hoe Open CV moet worden samengesteld. Zorg ervoor dat je je in het pad ~/opencv-4.0.0/buildbevindtKopieer vervolgens de alle onderstaande regels in één keer en plak ze als opdracht in het terminalvenster.

cmake -D CMAKE_BUILD_TYPE=RELEASE \
    -D CMAKE_INSTALL_PREFIX=/usr/local \
    -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-4.0.0/modules \
    -D ENABLE_NEON=ON \
    -D ENABLE_VFPV3=ON \
    -D BUILD_TESTS=OFF \
    -D WITH_TBB=OFF \
    -D INSTALL_PYTHON_EXAMPLES=OFF \
    -D BUILD_EXAMPLES=OFF ..

• Op en Python 2.x melding na, zou het zonder fouten moeten worden geconfigureerd en je zou de tekst “Configuring done ” en “Generating done” moeten zien , zoals hieronder weergegeven.

• Als je een fout krijgt in dit proces, zorg er dan voor dat je het juiste pad hebt ingevoerd en dat je twee mappen hebt met de naam ” opencv-4.0.0 ” en ” opencv_contrib-4.0.0 ” in het pad naar de home-directorie.

Stap 10: OpenCV compileren

• Dit zou de meest tijdrovende stap zijn. Zorg er opnieuw voor dat je je in het pad “~/opencv-4.0.0/build” bevindt en gebruik de volgende opdracht om OpenCV te compileren.

make -j4

(Let op! Voer deze opdracht handmatig in. Bij het kopiëren en plakken kan het -teken door de terminal niet goed begrepen worden)

• Het start met het bouwen van OpenCV, je kunt de voortgang in procenten op het scherm zien. Het proces zou ongeveer 30-40 minuten duren en als het volledig opgebouwd is, zou je een scherm als dit hierboven moeten zien.
• Het commando “make -j4” maakt gebruik van alle vier de cores om OpenCV te compileren. Met een percentage van 99% vinden sommige mensen het misschien te lang voordat het proces is voltooid, wacht geduldig en het zou voltooid moeten zijn.
Voor mij werkte het niet, zelfs niet na 25 minuten wachten en er kwam een fout zoals in de bovenstaande afbeelding, dus ik bouwde het opnieuw met ” make -j1″ en het werkte.
• Het gebruik van make –j1 gebruikt slechts een enkele kern van pi en het zou langer duren dan make j4, maar het is stabiel, dus het wordt aanbevolen om make j4 te gebruiken en vervolgens make j1 te gebruiken, aangezien het grootste deel van de compilatie zou worden gedaan door make j4.

• Als uw code niet voor 100% wordt gecompileerd en een fout krijgt zoals hierboven, probeer dan “make -j1” te gebruiken . Ook als het vastloopt op 63% of ergens in het midden, verwijder dan alle bestanden uit de build-map en bouw opnieuw op met de juiste stappen.

Stap 11: libopencv installeren

  • Als je deze stap hebt bereikt, heb je het proces doorlopen. De laatste stap zou zijn om libopecv te installeren met behulp van de volgende opdracht.

sudo apt-get install libopencv-devpython-opencv

Stap 12: OpenCV testen

  • Ten slotte kunt u controleren of de bibliotheek met succes is toegevoegd door een eenvoudige python-opdracht uit te voeren.

python

import cv2

Er zou geen foutmelding zichtbaar moeten zijn als je dit doet.

Als je dit scherm krijgt, kun je doorgaan met welk OpenCV-project je in gedachten hebt.

Gevolgtrekking

In deze zelfstudie hebben we OpenCV op Raspberry Pi geïnstalleerd met behulp van CMake, wat een zeer complex proces is. Ik hoop dat mijn eenvoudige uitleg je helpt om het correct en foutloos te installeren. Als je problemen hebt, post ze dan in het commentaargedeelte en ik zal proberen je te helpen ze op te lossen.

Tot de volgende keer! Vrede uit!


Wat gebeurt er met oudere tutorials?
De komende tutorials zullen, daar waar het kan, gebruik maken van OpenCV. Dit betekent dat een aantal oudere tutorials End-Off-Life zijn en herschreven moeten worden.

Op GitHub vindt je de laatste versie van OpenCV.

Have A Nice Day!

Geef als eerste een reactie

Laat een reactie achter

Het e-mailadres wordt niet gepubliceerd.


*