OpenCV une bibliothèque pour la reconnaissance d'objets dans les images et les caméras

ouvrirCV

OpenCV est une bibliothèque gratuite de vision industrielle multiplateforme (versions existantes pour GNU / Linux, Mac OS X, Windows et Android) qui était à l'origine développé par Intel et utilisé dans d'innombrables applicationsdes systèmes de sécurité avec détection de mouvement aux applications de contrôle de processus où la reconnaissance d'objets est requise. En effet, sa publication est donnée sous licence BSD, ce qui lui permet d'être utilisé librement à des fins commerciales et de recherche dans les conditions qui y sont exprimées.

CV ouvert contient plus de 500 fonctions couvrant un large éventail de domaines dans le processus de vision, comme la reconnaissance d'objets (reconnaissance faciale), l'étalonnage de la caméra, la vision stéréo, la vision robotique, classer les actions en vidéo, convertir des images, extraire des modèles 3D, créer un espace 3D à partir d'une image de caméra stéréo créant des images de haute qualité en combinant des images basse qualité.

Aussi offre la possibilité de rechercher des images d'objets similaires à l'ensemble des éléments présentés en appliquant des méthodes d'apprentissage automatique, en organisant les marqueurs, en identifiant les éléments communs dans différentes images, en éliminant automatiquement les défauts tels que les yeux rouges.

OpenCV fournit plus de 2500 algorithmes, à la fois classique et reflétant les dernières réalisations dans le domaine de la vision par ordinateur et des systèmes d'apprentissage automatique. Le code de la bibliothèque est écrit en C ++ et distribué sous la licence BSD.

À propos de la nouvelle version OpenCV 4.2

Maintenant la bibliothèque est dans sa version OpenCV 4.2, dans laquelle dans le module DNN (Deep neural network) avec la mise en œuvre d'algorithmes d'apprentissage automatique basés sur des réseaux de neurones, ajouté un backend pour utiliser CUDA et le support expérimental de l'API nGraph OpenVINO a été implémenté.

En plus d'utiliser les instructions SIMD, nous optimisons les performances du code pour la sortie stéréo (StereoBM / StereoSGBM), le redimensionnement, le masquage, la rotation, le calcul des composants de couleur manquants et de nombreuses autres opérations.

Dans le module G-API (opencv_gapi), qui agit comme un moteur de traitement imagerie efficace utilisant des algorithmes basés sur des graphiques, prend en charge des algorithmes hybrides plus complexes pour la vision par ordinateur et l'apprentissage automatique en profondeur. Fournit une prise en charge du moteur d'inférence Intel. Ajout de la prise en charge du traitement du flux vidéo au modèle d'exécution.

Des vulnérabilités (CVE-2019-5063, CVE-2019-5064) qui pourraient conduire à l'exécution de code d'attaque en traitant des données non vérifiées aux formats XML, YAML et JSON ont également été corrigées. Si un caractère avec un code nul est trouvé lors de l'analyse JSON, la valeur entière est copiée dans le tampon, mais sans vérification appropriée des limites de la zone de mémoire allouée.

Des autres changements présenté dans cette nouvelle version:

  • Ajout de l'implémentation multithread de la fonction pyrDown.
  • Ajout de la possibilité d'extraire des flux vidéo à partir de conteneurs multimédias (démultiplexage) à l'aide du backend vidéo basé sur FFmpeg.
  • Ajout d'un algorithme pour la reconstruction sélective en fréquence rapide des images FSR (Frequency Selective Reconstruction) endommagées.
  • Ajout de la méthode RIC pour l'interpolation des zones blanches typiques.
  • Ajout de la méthode de normalisation des écarts LOGOS.

Comment installer OpenCV 4.2?

Pour ceux qui souhaitent pouvoir installer cette bibliothèque, peut obtenir la nouvelle version ainsi que consulter les informations relatives à l'utilisation et même trouver des tutoriels sur son site officiel.

Le lien est le suivant.

Dans cet article Nous allons fournir les étapes pour pouvoir implémenter la bibliothèque sur un Raspberry pi.

Pour installer OpenCV sur un Raspberry Pje dois avoir votre système, qui est Raspbian.

Du vNous allons ouvrir un terminal et y taper les commandes suivantes pour installer les dépendances, les outils de développement, les packages d'images parmi d'autres bibliothèques supplémentaires:

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

Enfin, installons les fichiers d'en-tête python 3 afin que nous puissions compiler OpenCV:

sudo apt-get install python3-dev

maintenant créons un environnement Python avec les commandes suivantes, ceci afin d'avoir un site isolé:

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

Nous allons installer virtualenv et 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]"

Fait ça maintenant nous allons compiler openCV avec:

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

Maintenant, nous allons augmenter le swap dans notre système car si nous le laissons tel quel par défaut, le système peut se bloquer:

sudo nano /etc/dphys-swapfile

Et nous allons éditer la variable CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Nous enregistrons et fermons avec ctrl + o et ctrl + x. Ensuite, nous tapons:

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

Nous allons maintenant procéder à la compilation:

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

Et prêt.


Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont marqués avec *

*

*

  1. Responsable des données: Miguel Ángel Gatón
  2. Finalité des données: Contrôle du SPAM, gestion des commentaires.
  3. Légitimation: votre consentement
  4. Communication des données: Les données ne seront pas communiquées à des tiers sauf obligation légale.
  5. Stockage des données: base de données hébergée par Occentus Networks (EU)
  6. Droits: à tout moment, vous pouvez limiter, récupérer et supprimer vos informations.