OpenCV biblioteko por rekono de objektoj en bildoj kaj fotiloj

openCV

OpenCV estas senpaga biblioteko de multiplataforma maŝinvido (ekzistantaj versioj por GNU / Linukso, Mac OS X, Vindozo kaj Android) kiu estis origine ellaborita de Intel kaj uzata en sennombraj aplikojde sekurecaj sistemoj kun movado-detekto, ĝis procezaj kontrolaj aplikaĵoj, kie necesas rekono de objektoj. Ĉi tio estas ĉar ĝia publikigo estas donita laŭ la BSD-permesilo, kiu permesas ĝin uzi libere por komercaj kaj esploraj celoj kun la kondiĉoj esprimitaj en ĝi.

Malfermu CV enhavas pli ol 500 funkciojn kovrante larĝan gamon de areoj en la vidprocezo, kiel ekzemple rekono de objektoj (vizaĝa rekono), kalibrado de fotiloj, stereofonia vidado, robota vidado, klasifikas agojn en video, konvertas bildojn, ĉerpas 3D-modelojn, kreas 3D-spacon de stereofonia bildo kreante altkvalitajn bildojn kombinante bildojn de malalta kvalito.

Tambien ofertas la kapablon serĉi bildojn de similaj objektoj al la aro de elementoj prezentitaj per apliko de maŝinlernaj metodoj, organizado de markiloj, identigo de komunaj elementoj en malsamaj bildoj, aŭtomate forigo de difektoj kiel ruĝaj okuloj.

OpenCV provizas pli ol 2500 algoritmojn, ambaŭ klasikaj kaj reflektaj pri la plej novaj atingoj en la kampo de komputila vido kaj maŝinlernaj sistemoj. La biblioteka kodo estas skribita en C ++ kaj distribuita sub la BSD-permesilo.

Pri la nova versio OpenCV 4.2

Nuntempe la biblioteko estas en sia versio OpenCV 4.2, en kiu en la modulo DNN (Profunda neŭrala reto) kun la efektivigo de maŝinlernaj algoritmoj bazitaj sur neŭralaj retoj, aldonis fonon por uzi CUDA kaj eksperimenta subteno por la nGraph OpenVINO API estis efektivigita.

Krom uzi SIMD-instrukciojn, ni optimumigas kodan rendimenton por stereofonia eligo (StereoBM / StereoSGBM), regrandigi, maski, turni, kalkuli mankantajn kolorajn erojn kaj multajn aliajn operaciojn.

En la modulo G-API (opencv_gapi), kiu funkcias kiel motoro por prilaborado efika bildigo uzanta grafikajn algoritmojn, subtenas pli kompleksajn hibridajn algoritmojn por komputila vizio kaj profunda maŝina lernado. Provizas subtenon por Intel Inference Engine. Aldonita subteno por prilaborado de filmetoj al la ekzekuta modelo.

Vundeblecoj (CVE-2019-5063, CVE-2019-5064), kiuj povus konduki al la ekzekuto de ataka kodo per prilaborado de nekontrolitaj datumoj en formatoj XML, YAML kaj JSON, ankaŭ estis riparitaj. Se signo kun nula etikedo troviĝas dum analizado de JSON, la tuta valoro estas kopiita al la bufro, sed sen taŭga konfirmo de la limoj de la asignita memora areo.

El la aliaj ŝanĝoj prezentita en ĉi tiu nova versio:

  • Aldonita multfadenigita efektivigo de la funkcio pyrDown.
  • Aldonis la eblon ĉerpi videoriveretojn de amaskomunikiloj (demuxing) per la videofonaĵo bazita en FFmpeg.
  • Aldonis algoritmon por rapida frekvenca selektema rekonstruo de difektitaj bildoj de FSR (Frequency Selective Reconstruction).
  • Aldonita RIC-metodo por interpolado de tipaj malplenaj areoj.
  • Aldonita LOGOS-devia normiga metodo.

Kiel instali OpenCV 4.2?

Por tiuj, kiuj volas instali ĉi tiun bibliotekon, povas akiri la novan version same kiel konsulti la informojn rilate al la uzo kaj eĉ trovi lernilojn de ĝia oficiala retejo.

La ligo estas ĉi tio.

En ĉi tiu artikolo Ni provizos la paŝojn por povi efektivigi la bibliotekon sur Raspberry pi.

Por instali OpenCV sur Raspberry Pmi devas havi vian sistemon, kiu estas Raspbian.

De la vNi malfermos terminalon kaj en ĝi ni tajpos la jenaj komandoj por instali dependecojn, programilojn, bildpakaĵojn inter aliaj ekstraj bibliotekoj:

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

Fine, Ni instalu la Python 3-kapdosierojn por ke ni povu kompili OpenCV:

sudo apt-get install python3-dev

Nun ni kreu Python-medion per la jenaj komandoj, ĉi tio por havi izolitan retejon:

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

Ni instalos virtualenv kaj 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]"

Farite ĉi tion nun ni kompilos openCV kun:

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

Nun ni pliigos la interŝanĝon en nia sistemo, ĉar se ni lasas ĝin kiel ĝi estas defaŭlte, la sistemo povas pendi:

sudo nano /etc/dphys-swapfile

Kaj ni redaktos la variablon CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Ni konservas kaj fermas per ctrl + o kaj ctrl + x. Tiam ni tajpas:

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

Nun ni procedos kompili:

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

Kaj preta.


La enhavo de la artikolo aliĝas al niaj principoj de redakcia etiko. Por raporti eraron alklaku Ĉi tie.

Estu la unua por komenti

Lasu vian komenton

Via retpoŝta adreso ne estos eldonita.

*

*

  1. Respondeculo pri la datumoj: Miguel Ángel Gatón
  2. Celo de la datumoj: Kontrola SPAM, administrado de komentoj.
  3. Legitimado: Via konsento
  4. Komunikado de la datumoj: La datumoj ne estos komunikitaj al triaj krom per laŭleĝa devo.
  5. Stokado de datumoj: Datumbazo gastigita de Occentus Networks (EU)
  6. Rajtoj: Iam ajn vi povas limigi, retrovi kaj forigi viajn informojn.

bool (vera)