OpenCV knjižnica za prepoznavanje objekata na slikama i kamerama

openCV

OpenCV je besplatna biblioteka strojnoga vida s više platformi (postojeće verzije za GNU / Linux, Mac OS X, Windows i Android) koja je izvorno bila Razvio ga je Intel i koristi u bezbroj aplikacija, od sigurnosnih sustava s detekcijom pokreta, do obrade kontrolnih aplikacija gdje je potrebno prepoznavanje objekata. To je zato što je njegovo objavljivanje dano pod BSD licencom, što mu omogućava da se slobodno koristi u komercijalne i istraživačke svrhe uz uvjete izražene u njemu.

Otvoreni životopis sadrži više od 500 funkcija koje pokrivaju širok raspon područja u procesu vida, kao što su prepoznavanje predmeta (prepoznavanje lica), kalibracija kamere, stereo vid, robotski vid, klasificiranje radnji u videu, pretvaranje slika, izdvajanje 3D modela, stvaranje 3D prostora od slike stereo kamere stvarajući slike visoke kvalitete kombinirajući slike niska kvaliteta.

también nudi mogućnost pretraživanja slika sličnih predmeta na skup elemenata predstavljenih primjenom metoda strojnog učenja, organiziranjem markera, prepoznavanjem zajedničkih elemenata na različitim slikama, automatskim uklanjanjem nedostataka poput crvenih očiju.

OpenCV nudi više od 2500 algoritama, i klasičan i odraz najnovijih dostignuća na polju računalnog vida i sustava strojnog učenja. Kôd knjižnice napisan je na jeziku C ++ i distribuira se pod BSD licencom.

O novoj verziji OpenCV 4.2

Sada knjižnica je u svojoj verziji OpenCV 4.2, u kojem u DNN modulu (Duboka neuronska mreža) s implementacijom algoritama strojnog učenja temeljenih na neuronskim mrežama, dodao je pozadinu za upotrebu CUDA-e i implementirana je eksperimentalna podrška za nGraph OpenVINO API.

Pored korištenja SIMD uputa, optimiziramo izvedbu koda za stereo izlaz (StereoBM / StereoSGBM), mijenjamo veličinu, maskiramo, rotiramo, izračunavamo nedostajuće komponente boje i mnoge druge operacije.

U modulu G-API (opencv_gapi), koji djeluje kao motor za obradu učinkovito slikanje pomoću algoritama temeljenih na grafikama, podržava složenije hibridne algoritme za računalni vid i duboko strojno učenje. Pruža podršku za Intel Inference Engine. Podrška za obradu video toka dodana je izvedbenom modelu.

Također su otklonjene ranjivosti (CVE-2019-5063, CVE-2019-5064) koje bi mogle dovesti do izvršenja napadačkog koda obrađivanjem neprovjerenih podataka u XML, YAML i JSON formatima. Ako se tijekom raščlanjivanja JSON-a pronađe znak s nulom kodom, cijela se vrijednost kopira u međuspremnik, ali bez odgovarajuće provjere ograničenja dodijeljenog područja memorije.

Od ostalih promjena predstavljena u ovoj novoj verziji:

  • Dodana je višenitna implementacija pyrDown funkcije.
  • Dodana je mogućnost izdvajanja video strujanja iz medijskih spremnika (demuxing) pomoću video pozadine zasnovane na FFmpeg.
  • Dodan je algoritam za brzu selektivnu rekonstrukciju oštećenih slika FSR (Frequency Selective Reconstruction).
  • Dodana je RIC metoda za interpolaciju tipičnih praznih područja.
  • Dodana je LOGOS metoda normalizacije odstupanja.

Kako instalirati OpenCV 4.2?

Za one koje zanima mogućnost instaliranja ove knjižnice, možete dobiti novu verziju kao i konzultirati informacije povezane s upotrebom, pa čak i pronaći vodiče s njegove službene web stranice.

Poveznica je ovo.

U ovom članku Pružit ćemo korake kako bismo mogli implementirati knjižnicu na Raspberry pi.

Da biste instalirali OpenCV na Raspberry Pmoram imati vaš sustav, a to je Raspbian.

Iz vOtvorit ćemo terminal i u njega ćemo tipkati sljedeće naredbe za instaliranje ovisnosti, alata za programere, paketa slika među ostale dodatne knjižnice:

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

konačno, instalirajmo datoteke zaglavlja python 3 kako bismo mogli kompilirati OpenCV:

sudo apt-get install python3-dev

Sada stvorimo Python okruženje sa sljedećim naredbama, ovo da bi se imalo izolirano mjesto:

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

Instalirat ćemo 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]"

Učinio ovo sada kompajlirat ćemo openCV sa:

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

Sada ćemo povećati zamjenu u našem sustavu, jer ako ga ostavimo onakvim kakav je prema zadanim postavkama, sustav može objesiti:

sudo nano /etc/dphys-swapfile

A mi ćemo urediti varijablu CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Spremamo i zatvaramo pomoću ctrl + o i ctrl + x. Zatim tipkamo:

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

Sada ćemo nastaviti sa sastavljanjem:

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


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.