OpenCV una libreria per il riconoscimento di oggetti in immagini e telecamere

openCV

OpenCV è una libreria gratuita di visione artificiale multipiattaforma (versioni esistenti per GNU / Linux, Mac OS X, Windows e Android) originariamente sviluppato da Intel e utilizzato in innumerevoli applicazionidai sistemi di sicurezza con rilevamento del movimento, alle applicazioni di controllo dei processi in cui è richiesto il riconoscimento degli oggetti. Questo perché la sua pubblicazione è data sotto la licenza BSD, che ne consente il libero utilizzo per scopi commerciali e di ricerca con le condizioni in essa espresse.

Apri CV contiene più di 500 funzioni che coprono un'ampia gamma di aree del processo di visione, come riconoscimento di oggetti (riconoscimento facciale), calibrazione della telecamera, visione stereo, visione robotica, classificazione di azioni nel video, conversione di immagini, estrazione di modelli 3D, creazione di spazio 3D da un'immagine di telecamera stereo, creazione di immagini di alta qualità combinando immagini di bassa qualità.

Pure offre la possibilità di cercare immagini di oggetti simili all'insieme di elementi presentati applicando metodi di machine learning, organizzando marker, identificando elementi comuni in immagini differenti, eliminando automaticamente difetti come gli occhi rossi.

OpenCV fornisce più di 2500 algoritmi, sia classici che riflettono gli ultimi risultati nel campo della visione artificiale e dei sistemi di apprendimento automatico. Il codice della libreria è scritto in C ++ e distribuito sotto la licenza BSD.

Informazioni sulla nuova versione OpenCV 4.2

Ora la libreria è nella sua versione OpenCV 4.2, in quale nel modulo DNN (Deep neural network) con l'implementazione di algoritmi di machine learning basati su reti neurali, aggiunto un backend per utilizzare CUDA ed è stato implementato il supporto sperimentale per nGraph OpenVINO API.

Oltre a utilizzare le istruzioni SIMD, ottimizziamo le prestazioni del codice per l'uscita stereo (StereoBM / StereoSGBM), il ridimensionamento, la maschera, la rotazione, il calcolo dei componenti di colore mancanti e molte altre operazioni.

Nel modulo G-API (opencv_gapi), che funge da motore per l'elaborazione imaging efficiente che utilizza algoritmi basati su grafica, supporta algoritmi ibridi più complessi per la visione artificiale e l'apprendimento automatico profondo. Fornisce supporto per Intel Inference Engine. Aggiunto supporto per l'elaborazione del flusso video al modello di esecuzione.

Sono state corrette anche le vulnerabilità (CVE-2019-5063, CVE-2019-5064) che potevano portare all'esecuzione di codice di attacco elaborando dati non verificati nei formati XML, YAML e JSON. Se durante l'analisi JSON viene rilevato un carattere con un tag null, l'intero valore viene copiato nel buffer, ma senza un'adeguata verifica dei limiti dell'area di memoria allocata.

Delle altre modifiche presentato in questa nuova versione:

  • Aggiunta l'implementazione multithread della funzione pyrDown.
  • Aggiunta la possibilità di estrarre flussi video da contenitori multimediali (demuxing) utilizzando il backend video basato su FFmpeg.
  • Aggiunto un algoritmo per la ricostruzione selettiva in frequenza veloce di immagini FSR (Frequency Selective Reconstruction) danneggiate.
  • Aggiunto metodo RIC per l'interpolazione di aree vuote tipiche.
  • Aggiunto metodo di normalizzazione della deviazione LOGOS.

Come installare OpenCV 4.2?

Per chi fosse interessato a poter installare questa libreria, può ottenere la nuova versione oltre a consultare le informazioni relative all'uso e persino a trovare tutorial dal suo sito ufficiale.

Il collegamento è questo.

In questo articolo Forniremo i passaggi per poter implementare la libreria su un Raspberry pi.

Per installare OpenCV su un Raspberry Pdevo avere il tuo sistema, che è Raspbian.

Dalla vStiamo per aprire un terminale e in esso digiteremo i seguenti comandi per installare dipendenze, strumenti per sviluppatori, pacchetti di immagini e altre librerie extra:

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

Infine, Installiamo i file di intestazione di Python 3 in modo da poter compilare OpenCV:

sudo apt-get install python3-dev

Ora creiamo un ambiente Python con i seguenti comandi, questo per avere un sito isolato:

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

Stiamo per installare virtualenv e 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]"

Fatto questo adesso compileremo openCV con:

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

Ora aumenteremo lo scambio nel nostro sistema poiché se lo lasciamo così com'è per impostazione predefinita, il sistema può bloccarsi:

sudo nano /etc/dphys-swapfile

E stiamo per modificare la variabile CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Salviamo e chiudiamo con ctrl + o e ctrl + x. Quindi digitiamo:

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

Ora procederemo alla compilazione:

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

E pronto.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.