OpenCV isang silid-aklatan para sa pagkilala ng bagay sa mga imahe at camera

openCV

OpenCV ay isang libreng library ng cross-platform machine vision (mga mayroon nang bersyon para sa GNU / Linux, Mac OS X, Windows at Android) na orihinal Binuo ng Intel at ginamit sa hindi mabilang na mga application, mula sa mga system ng seguridad na may pagkakita ng paggalaw, upang maproseso ang mga aplikasyon ng kontrol kung saan kinakailangan ang pagkilala ng bagay. Ito ay sapagkat ang paglalathala nito ay ibinibigay sa ilalim ng lisensya ng BSD, na pinapayagan itong magamit nang malaya para sa mga layuning komersyal at pagsasaliksik na may mga kundisyon na nakasaad dito.

Buksan ang CV naglalaman ng higit sa 500 mga pagpapaandar na sumasaklaw sa isang malawak na hanay ng mga lugar sa proseso ng paningin, tulad ng pagkilala sa bagay (pagkilala sa mukha), pagkakalibrate ng kamera, paningin ng stereo, paningin ng robotic, pag-uuri ng mga aksyon sa video, pag-convert ng mga imahe, pagkuha ng mga modelo ng 3D, paglikha ng puwang ng 3D mula sa isang imahe ng stereo camera na lumilikha ng de-kalidad na mga imahe sa pamamagitan ng pagsasama ng mga imahe mababang Kalidad.

Gayundin nag-aalok ng kakayahang maghanap ng mga imahe ng mga katulad na bagay sa hanay ng mga elemento na ipinakita sa pamamagitan ng paglalapat ng mga pamamaraan sa pag-aaral ng makina, pag-aayos ng mga marker, pagkilala sa mga karaniwang elemento sa iba't ibang mga imahe, awtomatikong inaalis ang mga depekto tulad ng mga pulang mata.

Nagbibigay ang OpenCV ng higit sa 2500 mga algorithm, parehong klasiko at sumasalamin sa pinakabagong mga nakamit sa larangan ng computer vision at mga sistema ng pag-aaral ng makina. Ang code ng aklatan ay nakasulat sa C ++ at ipinamamahagi sa ilalim ng lisensya ng BSD.

Tungkol sa bagong bersyon OpenCV 4.2

Ngayon ang library ay nasa bersyon na OpenCV 4.2, kung saan sa modyul na DNN (Deep neural network) na may pagpapatupad ng mga algorithm ng pag-aaral ng makina batay sa mga neural network, nagdagdag ng isang backend upang magamit ang CUDA at pang-eksperimentong suporta para sa nGraph OpenVINO API ay ipinatupad.

Bilang karagdagan sa paggamit ng mga tagubilin sa SIMD, ina-optimize namin ang pagganap ng code para sa output ng stereo (StereoBM / StereoSGBM), baguhin ang laki, mask, paikutin, kalkulahin ang nawawalang mga sangkap ng kulay, at maraming iba pang mga operasyon.

Sa module ng G-API (opencv_gapi), na gumaganap bilang isang engine para sa pagproseso mahusay na imaging gamit ang mga algorithm na nakabatay sa grapiko, sumusuporta sa mas kumplikadong mga hybrid algorithm para sa computer vision at malalim na pag-aaral ng makina. Nagbibigay ng suporta para sa Intel Inferensi Engine. Ang suporta para sa pagpoproseso ng stream ng video ay naidagdag sa modelo ng pagpapatupad.

Ang mga kahinaan (CVE-2019-5063, CVE-2019-5064) na maaaring humantong sa pagpapatupad ng code ng pag-atake sa pamamagitan ng pagproseso ng hindi napatunayan na data sa mga format na XML, YAML at JSON ay naayos din. Kung ang isang character na may null code ay matatagpuan sa panahon ng pag-parse ng JSON, ang buong halaga ay makopya sa buffer, ngunit walang wastong pag-verify ng mga limitasyon ng inilalaan na lugar ng memorya.

Sa iba pang mga pagbabago ipinakita sa bagong bersyon na ito:

  • Nagdagdag ng multithreaded pagpapatupad ng pag-andar ng pyrDown.
  • Nagdagdag ng kakayahang kumuha ng mga stream ng video mula sa mga lalagyan ng media (demuxing) gamit ang backmp ng video na nakabatay sa FFmpeg.
  • Nagdagdag ng isang algorithm para sa mabilis na pumipili ng dalas ng muling pagsasaayos ng mga nasirang imahe ng FSR (Frequency Selective Reconstruction).
  • Nagdagdag ng pamamaraan ng RIC para sa interpolation ng mga tipikal na blangkong lugar.
  • Nagdagdag ng pamamaraang normalisasyon ng paglihis ng LOGOS.

Paano i-install ang OpenCV 4.2?

Para sa mga interesadong ma-install ang library na ito, maaaring makuha ang bagong bersyon pati na rin kumunsulta sa impormasyong nauugnay sa paggamit at kahit na makahanap ng mga tutorial mula sa opisyal na website.

Ang link ay ito.

Sa artikulong ito Magbibigay kami ng mga hakbang upang maipatupad ang library sa isang Raspberry pi.

Upang mai-install ang OpenCV sa isang Raspberry PKailangan kong magkaroon ng iyong system, na kung saan ay Raspbian.

Mula sa vMagbubukas kami ng isang terminal at dito ay magta-type kami ang mga sumusunod na utos na mag-install ng mga dependency, tool ng developer, mga package ng imahe bukod sa iba pang mga labis na aklatan:

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

Sa wakas, i-install natin ang mga file ng header ng python 3 upang maaari naming maiayos ang OpenCV:

sudo apt-get install python3-dev

Ngayon lumikha tayo ng isang kapaligiran sa Python kasama ang mga sumusunod na utos, ito upang magkaroon ng isang nakahiwalay na site:

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

Mag-i-install kami ng virtualenv at 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]"

Tapos na ngayon magsusulat kami ng 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

Ngayon ay madaragdagan natin ang pagpapalit sa aming system dahil kung iniiwan namin ito bilang ito ay sa default ang system ay maaaring mag-hang:

sudo nano /etc/dphys-swapfile

At i-e-edit namin ang variable na CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Nagse-save at nagsasara kami ng ctrl + o at ctrl + x. Pagkatapos ay nagta-type kami:

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

Ngayon ay magpapatuloy kaming mag-ipon:

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

At handa na.


Iwanan ang iyong puna

Ang iyong email address ay hindi nai-publish. Mga kinakailangang patlang ay minarkahan ng *

*

*

  1. Responsable para sa data: Miguel Ángel Gatón
  2. Layunin ng data: Kontrolin ang SPAM, pamamahala ng komento.
  3. Legitimation: Ang iyong pahintulot
  4. Komunikasyon ng data: Ang data ay hindi maiparating sa mga third party maliban sa ligal na obligasyon.
  5. Imbakan ng data: Ang database na naka-host ng Occentus Networks (EU)
  6. Mga Karapatan: Sa anumang oras maaari mong limitahan, mabawi at tanggalin ang iyong impormasyon.