OpenCV-kirjasto esineiden tunnistamiseksi kuvissa ja kameroissa

avoin CV

OpenCV on ilmainen kirjasto monialustoista konenäköä (nykyiset versiot GNU / Linuxille, Mac OS X: lle, Windowsille ja Androidille), joka oli alun perin Intelin kehittämä ja lukemattomissa sovelluksissa käytettyliiketunnistuksella varustetuista turvajärjestelmistä prosessinohjaussovelluksiin, joissa vaaditaan kohteen tunnistusta. Tämä johtuu siitä, että julkaisu tapahtuu BSD-lisenssillä, mikä sallii sen vapaan käytön kaupallisiin ja tutkimustarkoituksiin siinä esitetyin ehdoin.

Avoin CV sisältää yli 500 toimintoa, jotka kattavat laajan valikoiman näköprosessin alueita, kuten kohteen tunnistaminen (kasvojentunnistus), kameran kalibrointi, stereonäkymä, robottinäkö, toimintojen luokittelu videoihin, kuvien muuntaminen, 3D-mallien poimiminen, 3D-tilan luominen stereokamerakuvasta luomalla korkealaatuisia kuvia yhdistämällä heikkolaatuisia kuvia.

myös tarjoaa mahdollisuuden etsiä kuvia samankaltaisista kohteista elementtiryhmään, joka esitetään soveltamalla koneoppimismenetelmiä, järjestämällä markkereita, tunnistamalla yleisiä elementtejä eri kuvissa ja poistamalla automaattisesti viat, kuten punaiset silmät.

OpenCV tarjoaa yli 2500 algoritmia, sekä klassinen että heijastava uusimpia saavutuksia tietokonenäön ja koneoppimisjärjestelmien alalla. Kirjastokoodi kirjoitetaan C ++: lla ja jaetaan BSD-lisenssillä.

Tietoja uudesta versiosta OpenCV 4.2

Nyt kirjasto on sen OpenCV 4.2 -versiossa, jossa DNN-moduulissa (Syvä hermoverkko) toteuttamalla hermoverkkoihin perustuvat koneoppimisalgoritmit, lisäsi backendin käyttämään CUDA: ta ja kokeellinen tuki nGraph OpenVINO -sovellusliittymälle toteutettiin.

SIMD-ohjeiden lisäksi optimoimme koodin suorituskyvyn stereolähtöä varten (StereoBM / StereoSGBM), koon muuttamista, peittämistä, kiertämistä, laskettavien puuttuvien väriosien laskemista ja monia muita toimintoja.

G-API-moduulissa (opencv_gapi), joka toimii prosessin moottorina tehokas kuvankäsittely grafiikkaan perustuvilla algoritmeilla, tukee monimutkaisempia hybridialgoritmeja tietokoneen näkemiseen ja syvään koneoppimiseen. Tarjoaa tukea Intelin päättelymoottorille. Lisätty tuki videovirran käsittelyyn suoritusmalliin.

Korjattiin myös heikkoudet (CVE-2019-5063, CVE-2019-5064), jotka voivat johtaa hyökkäyskoodin suorittamiseen käsittelemällä vahvistamattomia tietoja XML-, YAML- ja JSON-muodoissa. Jos JSON-jäsentämisen aikana löydetään merkki, jolla on nolla tagia, koko arvo kopioidaan puskuriin, mutta ilman varmentamista varatun muistialueen rajoista.

Muista muutoksista tässä uudessa versiossa:

  • Lisätty pyrDown-toiminnon monisäikeinen toteutus.
  • Lisätty kyky purkaa videovirrat mediasäiliöistä (demuxing) käyttämällä FFmpeg-pohjaista videotaustaa.
  • Lisätty algoritmi vaurioituneiden FSR-kuvien (Frequency Selective Reconstruction) taajuuksien selektiiviseen nopeaan rekonstruointiin.
  • Lisätty RIC-menetelmä tyypillisten tyhjien alueiden interpolointiin.
  • Lisätty LOGOS-poikkeaman normalisointimenetelmä.

Kuinka asentaa OpenCV 4.2?

Niille, jotka ovat kiinnostuneita asentamaan tämän kirjaston, voi saada uuden version sekä tutustua käyttöön liittyviin tietoihin ja jopa löytää oppaita sen virallisilta verkkosivuilta.

Linkki on tämä.

Tässä artikkelissa Tarjoamme vaiheet kirjaston toteuttamiseksi Vadelma-piillä.

Asenna OpenCV Raspberry P: lleMinulla on oltava järjestelmäsi, joka on Raspbian.

Alkaen vAiomme avata terminaalin ja kirjoittaa sen seuraavat komennot riippuvuuksien, kehittäjätyökalujen ja kuvapakettien asentamiseksi muiden ylimääräisten kirjastojen joukkoon:

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

Lopuksi, Asennetaan Python 3 -otsikkotiedostot jotta voimme koota OpenCV: n:

sudo apt-get install python3-dev

Nyt luodaan Python-ympäristö seuraavilla komennoilla, jotta saat erillisen sivuston:

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

Aiomme asentaa virtualenv: n ja virtualenvwrapperin:

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]"

Tehty tämä nyt aiomme koota openCV:

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

Nyt aiomme lisätä järjestelmämme vaihtoa, koska jos jätämme sen oletuksena, järjestelmä voi roikkua:

sudo nano /etc/dphys-swapfile

Ja aiomme muokata CONF_SWAPSIZE-muuttujaa:

CONF_SWAPSIZE=1024

Tallennetaan ja suljetaan näppäimillä ctrl + o ja ctrl + x. Sitten kirjoitamme:

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

Nyt aiomme kääntää:

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ätä kommentti

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *

*

*

  1. Vastuussa tiedoista: Miguel Ángel Gatón
  2. Tietojen tarkoitus: Roskapostin hallinta, kommenttien hallinta.
  3. Laillistaminen: Suostumuksesi
  4. Tietojen välittäminen: Tietoja ei luovuteta kolmansille osapuolille muutoin kuin lain nojalla.
  5. Tietojen varastointi: Occentus Networks (EU) isännöi tietokantaa
  6. Oikeudet: Voit milloin tahansa rajoittaa, palauttaa ja poistaa tietojasi.