OpenCV teek objektide tuvastamiseks piltides ja kaamerates

avatud CV

OpenCV on platvormidevahelise masinnägemise tasuta raamatukogu (olemasolevad versioonid GNU / Linuxile, Mac OS X-ile, Windowsile ja Androidile), mis algselt oli Inteli välja töötatud ja kasutatud lugematutes rakendustes, alates liikumistuvastusega turvasüsteemidest kuni protsesside juhtimise rakendusteni, kus on vajalik objektide tuvastamine. Selle põhjuseks on asjaolu, et see avaldatakse BSD litsentsi alusel, mis võimaldab seda vabalt kasutada kaubanduslikel ja teadusuuringute eesmärkidel selles sätestatud tingimustega.

Avatud CV sisaldab rohkem kui 500 funktsiooni, mis hõlmavad nägemisprotsessi laia valikut valdkondi, näiteks objekti tuvastamine (näotuvastus), kaamera kalibreerimine, stereovisioon, robotnägemus, toimingute klassifitseerimine videos, piltide teisendamine, 3D-mudelite eraldamine, stereokaamera pildilt 3D-ruumi loomine, kvaliteetsete piltide loomine piltide kombineerimise teel madal kvaliteet.

Tambien pakub võimalust otsida sarnaste objektide pilte masinõppemeetodite rakendamise, markerite korrastamise, erinevatel piltidel levinud elementide tuvastamise, defektide, näiteks punaste silmade, automaatse kõrvaldamise abil esitatavate elementide komplektile.

OpenCV pakub üle 2500 algoritmi, nii klassikaline kui ka peegeldab uusimaid saavutusi arvuti nägemise ja masinõppesüsteemide valdkonnas. Raamatukogu kood on kirjutatud C ++ keeles ja levitatakse BSD litsentsi alusel.

Uue versiooni kohta OpenCV 4.2

Nüüd raamatukogu on oma OpenCV 4.2 versioonis, milles DNN moodulis (Sügav närvivõrk) koos närvivõrkudel põhinevate masinõppe algoritmide rakendamisega, lisas CUDA kasutamiseks taustaprogrammi ja rakendati nGraph OpenVINO API eksperimentaalset tuge.

Lisaks SIMD-juhiste kasutamisele optimeerime stereoväljundi (StereoBM / StereoSGBM) jaoks koodide jõudluse, suuruse muutmise, maskeerimise, pööramise, puuduvate värvikomponentide arvutamise ja paljude muude toimingute jaoks.

G-API moodulis (opencv_gapi), mis toimib töötlemise mootorina efektiivne pildistamine graafikapõhiste algoritmide abil, toetab keerukamaid hübriidalgoritme arvutinägemise ja sügava masinõppe jaoks. Pakub Inteli järeldusmootori tuge. Täitemudelile lisati video voo töötlemise tugi.

Samuti parandati turvaaukud (CVE-2019-5063, CVE-2019-5064), mis võivad verifitseerimata andmete töötlemisel XML-, YAML- ja JSON-vormingus viia rünnakukoodi käivitamiseni. Kui JSON-i sõelumisel leitakse nullkoodiga märk, kopeeritakse kogu väärtus puhvrisse, kuid ilma eraldatud mälupiirkonna piiride nõuetekohase kontrollimiseta.

Muudest muudatustest selles uues versioonis:

  • Lisatud funktsiooni pyrDown mitmetoimeline juurutamine.
  • Lisatud võime eraldada videovooge meediumikonteineritest (demuxing), kasutades FFmpeg-põhist videotagendit.
  • Lisatud algoritm kahjustatud FSR (Frequency Selective Reconstruction) piltide kiireks sageduslikuks selektiivseks rekonstrueerimiseks.
  • Lisatud RIC-meetod tüüpiliste tühjade alade interpoleerimiseks.
  • Lisatud LOGOS-hälbe normaliseerimise meetod.

Kuidas installida OpenCV 4.2?

Neile, kes on huvitatud selle teegi installimisest, saate uue versiooni samuti tutvuda kasutamisega seotud teabega ja leida isegi õpetusi oma ametlikust veebisaidilt.

Link on see.

Selles artiklis Pakume samme raamatukogu rakendamiseks Raspberry pi peal.

OpenCV installimiseks Raspberry P-lemul peab olema teie süsteem, milleks on Raspbian.

Alates vMe kavatseme avada terminali ja sinna me kirjutame järgmised käsklused sõltuvuste, arendaja tööriistade, pildipakettide installimiseks teiste lisakogude hulka:

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

Lõpuks installime Python 3 päisefailid et saaksime OpenCV kompileerida:

sudo apt-get install python3-dev

nüüd loome Pythoni keskkonna järgmiste käskudega, et sait oleks eraldatud:

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

Paigaldame virtualenv ja 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]"

See on nüüd tehtud koostame openCV koos:

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

Nüüd suurendame oma süsteemi vahetust, sest kui jätame selle vaikimisi, saab süsteem riputada:

sudo nano /etc/dphys-swapfile

Muudame muutujat CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Salvestame ja sulgeme klahvidega Ctrl + o ja Ctrl + x. Siis kirjutame:

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

Nüüd jätkame koostamist:

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

Ja valmis.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.