OpenCV una biblioteca per al reconeixement d'objectes en imatges i càmeres

OpenCV

OpenCV és una biblioteca lliure de visió artificial multiplataforma (Existint versions per a GNU / Linux, Mac OS X, Windows i Android) que va ser originalment desenvolupada per Intel i que s'ha utilitzat en infinitat d'aplicacions, Des de sistemes de seguretat amb detecció de moviment, fins a aplicacions de control de processos on es requereix reconeixement d'objectes. Això es deu al fet que la seva publicació es dóna sota llicència BSD, que permet que sigui usada lliurement per a propòsits comercials i d'investigació amb les condicions en ella expressades.

Open CV conté més de 500 funcions que abasten una gran gamma d'àrees en el procés de visió, com a reconeixement d'objectes (reconeixement facial), calibratge de càmeres, visió estérea, visió robòtica, classificar accions en vídeo, convertir imatges, extreure models 3D, crear espai 3D des d'una imatge de càmeres estèreo creant imatges d'alta qualitat mitjançant la combinació d'imatges de baixa qualitat.

també ofereix la possibilitat de cercar imatges d'objectes similars a el conjunt d'elements presentat aplicant mètodes d'aprenentatge automàtic, organitzant marcadors, identificant elements comuns en diferents imatges, eliminant automàticament defectes com ara ulls vermells.

OpenCV proporciona més de 2500 algoritmes, tant clàssics com que reflecteixen els últims èxits en el camp de la visió per ordinador i els sistemes d'aprenentatge automàtic. El codi de la biblioteca està escrit en C ++ i distribuït sota la llicència BSD.

Sobre la nova versió OpenCV 4.2

Actualment la biblioteca es troba en la seva versió OpenCV 4.2, En la qual en el mòdul DNN (Xarxa neuronal profunda) amb la implementació d'algoritmes d'aprenentatge automàtic basats en xarxes neuronals, es va agregar un back-end per utilitzar CUDA i es va implementar el suport experimental per a l'API nGraph OpenVINO.

A més de que utilitzant les instruccions SIMD, optimitzem el rendiment de el codi per a la sortida estèreo (StereoBM / StereoSGBM), redimensionamos, emmascarem, rotamos, calculem components de color que falten i moltes altres operacions.

En el mòdul G-API (Opencv_gapi), que actua com un motor per al processament eficient d'imatges utilitzant algoritmes basats en gràfics, admet algoritmes híbrids més complexos per a la visió per ordinador i l'aprenentatge automàtic profund. Proporciona suport per al motor Intel Inference cerca. Es va agregar suport per al processament de transmissions de vídeo a el model d'execució.

També es van corregir vulnerabilitats (CVE-2019-5063, CVE-2019-5064) que podrien conduir a l'execució de codi d'atac a l'processar dades no verificats en formats XML, YAML i JSON. Si es troba un caràcter amb un codi nul durant l'anàlisi JSON, el valor complet es copia a la memòria intermèdia, però sense una verificació adequada dels límits de l'àrea de memòria assignada.

Dels altres canvis que es presenten en aquesta nova versió:

  • Es va agregar la implementació multiprocés de la funció pyrDown.
  • Es va agregar la capacitat d'extreure transmissions de vídeo de contenidors de mitjans (demuxing) usant el backend de vídeo basat en FFmpeg.
  • Es va agregar un algoritme per a la reconstrucció ràpida selectiva de freqüència d'imatges danyades FSR (Reconstrucció selectiva de freqüència).
  • Mètode RIC agregat per a la interpolació d'àrees en blanc típiques.
  • Mètode de normalització de desviació de LOGOS agregat.

Com instal·lar OpenCV 4.2?

Per als que estiguin interessats en poder instal·lar aquesta biblioteca, poden obtenir la nova versió així com consultar la informació relacionada amb l'ús i fins i tot trobar tutorials des del seu lloc web oficial.

L'enllaç és aquest.

En aquest article proporcionarem els passos per poder implementar la biblioteca en una Raspberry pi.

Per realitzar la instal·lació d'OpenCV en una Raspberry Pii hem de comptar amb el seu sistema, el qual és Raspbian.

Des del vamos a obrir una terminal i en ella anem a teclejar les ordres següents per instal·lar dependències, eines de desenvolupador, paquets d'imatge entre altres biblioteques extres:

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

Finalment, instal·lem els arxius de capçalera de Python 3 perquè puguem compilar OpenCV:

sudo apt-get install python3-dev

Ara crearem un entorn Python amb les següents comandes, això amb la finalitat de tenir un lloc aïllat:

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

Anem a instal·lar 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]"

Fet això ara realitzarem la compilació de OpenCV amb:

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

Ara anem a augmentar el swap en el nostre sistema ja que si ho deixem com aquesta per defecte el sistema es pot penjar:

sudo nano /etc/dphys-swapfile

I anem a editar la variable CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Guardem i tanquem amb ctrl + oi ctrl + x. Després teclegem:

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

Ara anem a procedeixes a compilar:

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


Deixa el teu comentari

La seva adreça de correu electrònic no es publicarà. Els camps obligatoris estan marcats amb *

*

*

  1. Responsable de les dades: Miguel Ángel Gatón
  2. Finalitat de les dades: Controlar l'SPAM, gestió de comentaris.
  3. Legitimació: El teu consentiment
  4. Comunicació de les dades: No es comunicaran les dades a tercers excepte per obligació legal.
  5. Emmagatzematge de les dades: Base de dades allotjada en Occentus Networks (UE)
  6. Drets: En qualsevol moment pots limitar, recuperar i esborrar la teva informació.