OpenCV o bibliotecă pentru recunoașterea obiectelor în imagini și camere

openCV

OpenCV este o bibliotecă gratuită de viziune automată pe mai multe platforme (versiuni existente pentru GNU / Linux, Mac OS X, Windows și Android) care a fost inițial Dezvoltat de Intel și utilizat în nenumărate aplicațiide la sisteme de securitate cu detectare a mișcării, până la procesarea aplicațiilor de control unde este necesară recunoașterea obiectelor Acest lucru se datorează faptului că publicarea sa este dată sub licența BSD, care permite utilizarea sa liber în scopuri comerciale și de cercetare, cu condițiile exprimate în aceasta.

Deschide CV conține mai mult de 500 de funcții care acoperă o gamă largă de domenii în procesul de viziune, precum recunoașterea obiectelor (recunoașterea feței), calibrarea camerei, viziunea stereo, viziunea robotică, clasificați acțiunile în video, convertiți imagini, extrageți modele 3D, creați spațiu 3D dintr-o imagine a camerei stereo creând imagini de înaltă calitate prin combinarea imaginilor de calitate scăzută.

también oferă posibilitatea de a căuta imagini cu obiecte similare la setul de elemente prezentate prin aplicarea metodelor de învățare automată, organizarea markerilor, identificarea elementelor comune în diferite imagini, eliminarea automată a defectelor precum ochii roșii.

OpenCV oferă mai mult de 2500 de algoritmi, atât clasic, cât și reflectând cele mai recente realizări în domeniul viziunii computerizate și al sistemelor de învățare automată. Codul bibliotecii este scris în C ++ și distribuit sub licența BSD.

Despre noua versiune OpenCV 4.2

Acum biblioteca este în versiunea sa OpenCV 4.2, in care în modulul DNN (Rețea neuronală profundă) cu implementarea algoritmilor de învățare automată bazată pe rețele neuronale, a adăugat un backend pentru a utiliza CUDA și a fost implementat suport experimental pentru nGraph OpenVINO API.

Pe lângă utilizarea instrucțiunilor SIMD, optimizăm performanța codului pentru ieșirea stereo (StereoBM / StereoSGBM), redimensionăm, mascăm, rotim, calculăm componentele de culoare lipsă și multe alte operații.

În modulul G-API (opencv_gapi), care acționează ca un motor pentru prelucrare imagistică eficientă utilizând algoritmi grafici, acceptă algoritmi hibrizi mai complecși pentru viziune pe computer și învățare profundă a mașinilor Oferă suport pentru Intel Inference Engine. S-a adăugat suport pentru procesarea fluxului video la modelul de execuție.

Vulnerabilitățile (CVE-2019-5063, CVE-2019-5064) care ar putea duce la executarea codului de atac prin procesarea datelor neconfirmate în formatele XML, YAML și JSON au fost, de asemenea, remediate. Dacă un caracter cu un cod nul este găsit în timpul analizei JSON, întreaga valoare este copiată în buffer, dar fără verificarea corespunzătoare a limitelor zonei de memorie alocate.

Dintre celelalte schimbări prezentate în această nouă versiune:

  • S-a adăugat implementarea multithread a funcției pyrDown.
  • S-a adăugat capacitatea de a extrage fluxuri video din containerele media (demuxing) folosind backend-ul video bazat pe FFmpeg.
  • S-a adăugat un algoritm pentru reconstrucția selectivă cu frecvență rapidă a imaginilor deteriorate FSR (Frequency Selective Reconstruction).
  • S-a adăugat metoda RIC pentru interpolare a zonelor necompletate tipice.
  • S-a adăugat metoda de normalizare a deviației LOGOS.

Cum se instalează OpenCV 4.2?

Pentru cei interesați să poată instala această bibliotecă, poate obține noua versiune precum și să consultați informațiile legate de utilizare și chiar să găsiți tutoriale de pe site-ul său oficial.

Legătura este aceasta.

În acest articol Vom oferi pașii pentru implementarea bibliotecii pe un Raspberry pi.

Pentru a instala OpenCV pe un Raspberry PTrebuie să am sistemul dvs., care este Raspbian.

Din vVom deschide un terminal și în el vom tasta următoarele comenzi pentru a instala dependențe, instrumente pentru dezvoltatori, pachete de imagini printre alte biblioteci suplimentare:

sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libfontconfig1-dev libcairo2-dev libgdk-pixbuf2.0-dev libpango1.0-dev libgtk2.0-dev libgtk-3-dev libatlas-base-dev gfortran libhdf5-dev libhdf5-serial-dev libhdf5-103 libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5

În cele din urmă, Să instalăm fișierele antet Python 3 astfel încât să putem compila OpenCV:

sudo apt-get install python3-dev

Acum să creăm un mediu Python cu următoarele comenzi, aceasta pentru a avea un site izolat:

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo python3 get-pip.py
sudo rm -rf ~/.cache/pip

Vom instala virtualenv și virtualenvwrapper:

sudo pip install virtualenv virtualenvwrapper
nano ~/.bashrc

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

source /usr/local/bin/virtualenvwrapper.sh
source ~/.bashrc
mkvirtualenv cv -p python3
pip install "picamera[array]"

Am făcut asta acum vom compila openCV cu:

cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.2.0 opencv
mv opencv_contrib-4.2.0 opencv_contrib

Acum vom crește schimbul în sistemul nostru, deoarece dacă îl lăsăm așa cum este în mod implicit, sistemul se poate bloca:

sudo nano /etc/dphys-swapfile

Și vom edita variabila CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Salvăm și închidem cu ctrl + o și ctrl + x. Apoi tastăm:

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

Acum vom continua să compilăm:

workon cv
pip install numpy
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D CMAKE_SHARED_LINKER_FLAGS=-latomic \
-D BUILD_EXAMPLES=OFF ..
make -j4
sudo make install
sudo ldconfig
cd /usr/local/lib/python3.7/site-packages/cv2/python-3.7
sudo mv cv2.cpython-37m-arm-linux-gnueabihf.so cv2.so
cd ~/.virtualenvs/cv/lib/python3.7/site-packages/
ln -s /usr/local/lib/python3.7/site-packages/cv2/python-3.7/cv2.so cv2.so

Și gata.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.