OpenCV yra nemokama įvairių platformų mašinų matymo biblioteka (esamos GNU / Linux, Mac OS X, Windows ir Android versijos), kuri buvo iš pradžių Sukūrė „Intel“ ir naudojama daugybėje programų, nuo apsaugos sistemų su judesio aptikimu, iki procesų valdymo programų, kur reikalingas objektų atpažinimas. Taip yra todėl, kad jis skelbiamas pagal BSD licenciją, leidžiančią jį laisvai naudoti komerciniais ir mokslinių tyrimų tikslais, laikantis jame nurodytų sąlygų.
Atviras CV yra daugiau nei 500 funkcijų, apimančių įvairiausias regėjimo proceso sritis, tokie kaip objektų atpažinimas (veido atpažinimas), fotoaparato kalibravimas, stereofoninis matymas, robotizuotas matymas, veiksmų klasifikavimas vaizdo įraše, vaizdų konvertavimas, 3D modelių išskyrimas, 3D erdvės kūrimas iš stereo kameros vaizdo, aukštos kokybės vaizdų kūrimas derinant žemos kokybės vaizdus.
Tambienas siūlo galimybę ieškoti panašių objektų vaizdų į elementų rinkinį, pateiktą taikant mašininio mokymosi metodus, sutvarkant žymenis, identifikuojant bendrus elementus skirtinguose vaizduose, automatiškai pašalinant tokius defektus kaip raudonos akys.
„OpenCV“ teikia daugiau nei 2500 algoritmų, klasikinis ir atspindintis naujausius pasiekimus kompiuterio regėjimo ir mašininio mokymosi sistemų srityje. Bibliotekos kodas rašomas C ++ ir platinamas pagal BSD licenciją.
Apie naują „OpenCV 4.2“ versiją
Dabar biblioteka yra savo „OpenCV 4.2“ versijoje, kuriame DNN modulyje (Gilus neuroninis tinklas), diegiant mašininio mokymosi algoritmus, pagrįstus neuroniniais tinklais, pridėjo backend naudoti CUDA ir buvo įdiegta eksperimentinė „nGraph OpenVINO“ API parama.
Be SIMD instrukcijų naudojimo, mes optimizuojame kodo veikimą stereofoniniam išėjimui (StereoBM / StereoSGBM), keičiame dydį, užmaskuojame, pasukame, apskaičiuojame trūkstamus spalvų komponentus ir daugelį kitų operacijų.
G-API modulyje (opencv_gapi), kuris veikia kaip variklis perdirbimui Vaizdo efektyvumas naudojant grafikos algoritmus palaiko sudėtingesnius hibridinius algoritmus kompiuterio regėjimui ir giliam mašininiam mokymuisi. Teikia „Intel Inference Engine“ palaikymą. Vykdymo modelyje pridėta vaizdo srautų apdorojimo palaikymas.
Taip pat buvo ištaisytos spragos (CVE-2019-5063, CVE-2019-5064), kurios gali sukelti atakos kodo vykdymą apdorojant nepatvirtintus duomenis XML, YAML ir JSON formatais. Jei JSON analizuojant randamas simbolis su nuliniu kodu, visa vertė nukopijuojama į buferį, tačiau tinkamai nepatvirtinus paskirtos atminties srities ribų.
Iš kitų pokyčių pateikta šioje naujojoje versijoje:
- Pridėtas daugialypis „pyrDown“ funkcijos įgyvendinimas.
- Pridėta galimybė išgauti vaizdo srautus iš laikmenų talpyklų (demuxing) naudojant FFmpeg pagrįstą vaizdo įrašą.
- Pridėtas pažeistų FSR (dažnio selektyvios rekonstrukcijos) vaizdų greito atrankinio dažnio atstatymo algoritmas.
- Pridėtas tipinių tuščių laukų interpoliacijos RIC metodas.
- Pridėtas LOGOS nuokrypių normalizavimo metodas.
Kaip įdiegti „OpenCV 4.2“?
Tiems, kurie nori įdiegti šią biblioteką, galite gauti naują versiją taip pat susipažinkite su informacija, susijusia su naudojimu, ir net raskite pamokymų savo oficialioje svetainėje.
Šiame straipsnyje Mes pateiksime veiksmus, kaip įgyvendinti biblioteką „Aviečių pi“.
Norėdami įdiegti „OpenCV“ į „Raspberry P“Aš turiu turėti jūsų sistemą, kuri yra „Raspbian“.
Iš vKetiname atidaryti terminalą ir jame spausdinti šias komandas, kad įdiegtumėte priklausomybes, kūrėjo įrankius, vaizdų paketus tarp kitų papildomų bibliotekų:
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
Galiausiai, Įdiekime „Python 3“ antraštės failus kad galėtume sudaryti „OpenCV“:
sudo apt-get install python3-dev
Dabar sukurkime „Python“ aplinką naudodami šias komandas, norėdami turėti izoliuotą svetainę:
wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo python3 get-pip.py
sudo rm -rf ~/.cache/pip
Mes ketiname įdiegti virtualenv ir 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]"
Atlikta tai dabar sudarysime „openCV“ su:
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
Dabar mes ketiname padidinti savo sistemos apsikeitimą, nes jei paliksime jį tokį, koks yra pagal nutylėjimą, sistema gali pakabinti:
sudo nano /etc/dphys-swapfile
Redaguosime kintamąjį CONF_SWAPSIZE:
CONF_SWAPSIZE=1024
Mes išsaugome ir uždarome naudodami „Ctrl + o“ ir „Ctrl + x“. Tada mes rašome:
sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start
Dabar mes tęsime rinkimą:
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
Ir pasiruošę.