OpenCV et bibliotek for gjenkjenning av objekter i bilder og kameraer

åpen CV

OpenCV er et gratis bibliotek med maskinvisjon på tvers av plattformer (eksisterende versjoner for GNU / Linux, Mac OS X, Windows og Android) som opprinnelig var Utviklet av Intel og brukt i utallige applikasjonerfra sikkerhetssystemer med bevegelsesdeteksjon til prosessstyringsapplikasjoner der gjenkjenning av objekter er nødvendig Dette er fordi publiseringen er gitt under BSD-lisensen, som gjør at den kan brukes fritt til kommersielle og forskningsformål med de betingelser som er uttrykt i den.

Åpne CV inneholder mer enn 500 funksjoner som dekker et bredt spekter av områder i synsprosessen, som gjenstandsgjenkjenning (ansiktsgjenkjenning), kamerakalibrering, stereosyn, robotvisjon, klassifisere handlinger i video, konvertere bilder, trekke ut 3D-modeller, lage 3D-plass fra et stereokamerabilde og skape bilder av høy kvalitet ved å kombinere bilder med lav kvalitet.

også gir muligheten til å søke etter bilder av lignende objekter til settet med elementer presentert ved å bruke maskinlæringsmetoder, organisere markører, identifisere vanlige elementer i forskjellige bilder, automatisk eliminere feil som røde øyne.

OpenCV gir mer enn 2500 algoritmer, både klassisk og reflekterer de siste prestasjonene innen datasyn og maskinlæringssystemer. Bibliotekoden er skrevet i C ++ og distribuert under BSD-lisensen.

Om den nye versjonen OpenCV 4.2

biblioteket er i sin OpenCV 4.2-versjon, der i DNN-modulen (Deep Neural Network) med implementering av maskinlæringsalgoritmer basert på nevrale nettverk, la til en backend for å bruke CUDA og eksperimentell støtte for nGraph OpenVINO API ble implementert.

I tillegg til å bruke SIMD-instruksjoner, optimaliserer vi kodeytelsen for stereoutgang (StereoBM / StereoSGBM), endrer størrelse, maskerer, roterer, beregner manglende fargekomponenter og mange andre operasjoner.

I G-API-modulen (opencv_gapi), som fungerer som en motor for prosessering effektiv bildebehandling ved hjelp av grafikkbaserte algoritmer, støtter mer komplekse hybridalgoritmer for datasyn og dyp maskinlæring. Gir støtte for Intel Inference Engine. Lagt til støtte for videostreambehandling til utførelsesmodellen.

Sårbarheter (CVE-2019-5063, CVE-2019-5064) som kan føre til kjøring av angrepskode ved å behandle ubekreftede data i XML-, YAML- og JSON-formater ble også løst. Hvis et tegn med nullkode blir funnet under JSON-parsing, kopieres hele verdien til bufferen, men uten riktig verifisering av grensene for det tildelte minneområdet.

Av de andre endringene presentert i denne nye versjonen:

  • Lagt til flertrådet implementering av pyrDown-funksjonen.
  • Lagt til muligheten til å trekke ut videostrømmer fra mediebeholdere (demuxing) ved hjelp av den FFmpeg-baserte videobakgrunnen.
  • Lagt til en algoritme for rask frekvens selektiv rekonstruksjon av skadede FSR (Frequency Selective Reconstruction) bilder.
  • Lagt til RIC-metode for interpolering av typiske blanke områder.
  • Lagt til LOGOS avvik normaliseringsmetode.

Hvordan installerer jeg OpenCV 4.2?

For de som er interessert i å kunne installere dette biblioteket, kan få den nye versjonen samt konsultere informasjonen knyttet til bruken og til og med finne veiledninger fra det offisielle nettstedet.

Koblingen er denne.

I denne artikkelen Vi vil gi trinnene for å kunne implementere biblioteket på en Raspberry pi.

Slik installerer du OpenCV på en Raspberry PJeg må ha systemet ditt, som er Raspbian.

Fra vVi skal åpne en terminal og i den skal vi skrive følgende kommandoer for å installere avhengigheter, utviklerverktøy, bildepakker blant andre ekstra biblioteker:

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

Endelig, La oss installere Python 3-headerfilene slik at vi kan kompilere OpenCV:

sudo apt-get install python3-dev

la oss lage et Python-miljø med følgende kommandoer, dette for å ha et isolert sted:

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

Vi skal installere virtualenv og 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]"

Gjort dette nå vi skal kompilere openCV med:

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

Nå skal vi øke byttet i systemet vårt, siden hvis vi lar det være som det er, kan systemet henge:

sudo nano /etc/dphys-swapfile

Og vi skal redigere CONF_SWAPSIZE-variabelen:

CONF_SWAPSIZE=1024

Vi lagrer og lukker med ctrl + o og ctrl + x. Så skriver vi:

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

Nå skal vi fortsette å kompilere:

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

Og klar.


Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.