OpenCV knjižnica za prepoznavanje predmetov na slikah in kamerah

openCV

OpenCV je brezplačna knjižnica strojnega vida na več platformah (obstoječe različice za GNU / Linux, Mac OS X, Windows in Android), ki je bila prvotno Razvil ga je Intel in ga uporablja v neštetih aplikacijahod varnostnih sistemov z zaznavanjem gibanja do obdelave nadzornih aplikacij, kjer je potrebno prepoznavanje objektov. To je zato, ker je njegova objava izdana pod licenco BSD, ki omogoča njeno prosto uporabo v komercialne in raziskovalne namene s pogoji, ki so v njej izraženi.

Odpri življenjepis vsebuje več kot 500 funkcij, ki pokrivajo široko paleto področij v procesu vida, kot so prepoznavanje predmetov (prepoznavanje obraza), umerjanje kamere, stereo vid, robotski vid, razvrščanje dejanj v video, pretvorba slik, izvlečenje 3D modelov, ustvarjanje 3D prostora iz slike stereo kamere, ustvarjanje visokokakovostnih slik s kombiniranjem slik nizka kvaliteta.

Tudi ponuja možnost iskanja podob podobnih predmetov naboru elementov, predstavljenih z uporabo metod strojnega učenja, organiziranjem markerjev, prepoznavanjem skupnih elementov na različnih slikah in samodejnim odpravljanjem napak, kot so rdeče oči.

OpenCV ponuja več kot 2500 algoritmov, tako klasičen kot odsev najnovejših dosežkov na področju sistemov računalniškega vida in strojnega učenja. Koda knjižnice je napisana v jeziku C ++ in se distribuira pod licenco BSD.

O novi različici OpenCV 4.2

Zdaj knjižnica je v različici OpenCV 4.2, v katerem v DNN modulu (Globoka nevronska mreža) z izvajanjem algoritmov strojnega učenja na osnovi nevronskih mrež, je dodal zaledje za uporabo CUDA in izvedena je bila eksperimentalna podpora za API nGraph OpenVINO.

Poleg uporabe navodil SIMD optimiziramo delovanje kode za stereo izhod (StereoBM / StereoSGBM), spreminjamo velikost, maskiramo, vrtimo, izračunamo manjkajoče barvne komponente in številne druge operacije.

V modulu G-API (opencv_gapi), ki deluje kot motor za obdelavo učinkovito slikanje z uporabo grafičnih algoritmov, podpira bolj zapletene hibridne algoritme za računalniški vid in globoko strojno učenje. Zagotavlja podporo za sistem Intel Inference Engine. Izvedbenemu modelu je bila dodana podpora za obdelavo video tokov.

Odpravljene so bile tudi ranljivosti (CVE-2019-5063, CVE-2019-5064), ki bi lahko vodile do izvajanja napadalne kode z obdelavo nepreverjenih podatkov v formatih XML, YAML in JSON. Če med razčlenjevanjem JSON najdemo znak z ničelno kodo, se celotna vrednost kopira v medpomnilnik, vendar brez ustreznega preverjanja omejitev dodeljenega pomnilniškega območja.

Od ostalih sprememb predstavljeni v tej novi različici:

  • Dodana je večnitna izvedba funkcije pyrDown.
  • Dodana je možnost izvlečenja video tokov iz medijskih vsebnikov (razmnoževanje) z uporabo video zaledja, ki temelji na FFmpeg.
  • Dodan algoritem za hitro frekvenčno selektivno rekonstrukcijo poškodovanih slik FSR (Frequency Selective Reconstruction).
  • Dodana metoda RIC za interpolacijo tipičnih praznih površin.
  • Dodana metoda normalizacije odstopanja LOGOS.

Kako namestiti OpenCV 4.2?

Za tiste, ki jih zanima namestitev te knjižnice, lahko dobite novo različico prav tako si oglejte informacije, povezane z uporabo, in celo poiščite vadnice na njeni uradni spletni strani.

Povezava je to.

V tem članku Predstavili bomo korake za izvajanje knjižnice na Raspberry pi.

Namestitev OpenCV na Raspberry Pmoram imeti vaš sistem, ki je Raspbian.

Iz vOdprli bomo terminal in vanj vtipkali naslednje ukaze za namestitev odvisnosti, orodij za razvijalce, paketov slik med druge 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

Končno, namestimo datoteke glave python 3 tako da lahko sestavimo OpenCV:

sudo apt-get install python3-dev

Zdaj ustvarimo Pythonovo okolje z naslednjimi ukazi, da bi imeli izolirano mesto:

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

Namestili bomo virtualenv in 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]"

Končano zdaj sestavili bomo openCV z:

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

Zdaj bomo povečali zamenjavo v našem sistemu, saj lahko sistem, če ga pustimo, kot je privzeto, obesi:

sudo nano /etc/dphys-swapfile

In uredili bomo spremenljivko CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Shranimo in zapremo s tipkama ctrl + o in ctrl + x. Nato vtipkamo:

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

Zdaj bomo nadaljevali z zbiranjem:

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

In pripravljen.


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.