OpenCV biblioteku za prepoznavanje objekata na slikama i kamerama

openCV

OpenCV je besplatna biblioteka strojnog vida na više platformi (postojeće verzije za GNU / Linux, Mac OS X, Windows i Android) koja je prvobitno bila razvio Intel i koristi se u bezbroj aplikacijaod sigurnosnih sistema s detekcijom pokreta, do obrade kontrolnih aplikacija tamo gdje je potrebno prepoznavanje objekata. To je zato što je njegovo objavljivanje dato pod BSD licencom, što omogućava da se slobodno koristi u komercijalne i istraživačke svrhe, uz uslove izražene u njemu.

Otvori CV sadrži više od 500 funkcija koje pokrivaju širok spektar područja u procesu vida, kao što su prepoznavanje predmeta (prepoznavanje lica), kalibracija kamere, stereo vid, robotski vid, klasificiranje radnji u video zapisu, pretvaranje slika, izdvajanje 3D modela, stvaranje 3D prostora od slike stereo kamere stvarajući slike visokog kvaliteta kombinirajući slike niskog kvaliteta.

Tambien 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čunarskog vida i sistema za mašinsko učenje. Kôd biblioteke napisan je na jeziku C ++ i distribuira se pod BSD licencom.

O novoj verziji OpenCV 4.2

Trenutno biblioteka je u svojoj verziji OpenCV 4.2, u kojem u DNN modulu (Duboka neuronska mreža) sa implementacijom algoritama mašinskog učenja zasnovanih 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 performanse koda za stereo izlaz (StereoBM / StereoSGBM), mijenjamo veličinu, maskiramo, rotiramo, izračunavamo nedostajuće komponente boje i mnoge druge operacije.

U G-API modulu (opencv_gapi), koji deluje kao motor za obradu efikasno slikanje pomoću algoritama zasnovanih na grafici, podržava složenije hibridne algoritme za računarski vid i duboko mašinsko učenje. Pruža podršku za Intel Inference Engine. Dodata je podrška za obradu video tokova izvedbenom modelu.

Ispravljene su i 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 vrijednost se kopira u međuspremnik, ali bez odgovarajuće provjere ograničenja dodijeljenog područja memorije.

Od ostalih promjena predstavljen u ovoj novoj verziji:

  • Dodata je višenitna implementacija funkcije pyrDown.
  • Dodana je mogućnost izdvajanja video tokova 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).
  • Dodata je RIC metoda za interpolaciju tipičnih praznih područja.
  • Dodata LOGOS metoda normalizacije odstupanja.

Kako instalirati OpenCV 4.2?

Za one koje zanima mogućnost instaliranja ove biblioteke, možete dobiti novu verziju kao i da se informirate o informacijama vezanim za upotrebu, pa čak i da pronađete vodiče sa njegove službene web stranice.

Link je ovaj.

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

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

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

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

Na kraju, Instalirajmo datoteke zaglavlja Python 3 tako da možemo kompajlirati 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]"

Gotovo 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 po defaultu, sistem može objesiti:

sudo nano /etc/dphys-swapfile

A mi ćemo urediti varijablu CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Spremimo i zatvorimo pomoću ctrl + o i ctrl + x. Zatim kucamo:

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

Sada ćemo nastaviti sa kompajliranjem:

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


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.