OpenCV et bibliotek til objektgenkendelse i billeder og kameraer

openCV

OpenCV er et gratis bibliotek med maskinvision på tværs af platforme (eksisterende versioner til GNU / Linux, Mac OS X, Windows og Android), som oprindeligt var udviklet af Intel og brugt i utallige applikationerfra sikkerhedssystemer med bevægelsesdetektering til processtyringsapplikationer, hvor objektgenkendelse er påkrævet. Dette skyldes, at offentliggørelsen er givet under BSD-licensen, som gør det muligt at bruge den frit til kommercielle og forskningsformål med de betingelser, der er udtrykt i den.

Åbn CV indeholder mere end 500 funktioner, der dækker en lang række områder i synsprocessen, såsom genkendelse af ansigt (ansigtsgenkendelse), kamerakalibrering, stereosyn, robotvision, klassificere handlinger i video, konvertere billeder, udtrække 3D-modeller, skabe 3D-plads fra et stereokamerabillede, der skaber billeder af høj kvalitet ved at kombinere billeder med lav kvalitet.

også giver mulighed for at søge efter billeder af lignende objekter til det sæt af elementer, der præsenteres ved at anvende maskinlæringsmetoder, organisere markører, identificere almindelige elementer i forskellige billeder og automatisk eliminere defekter såsom røde øjne.

OpenCV leverer mere end 2500 algoritmer, både klassisk og afspejler de nyeste præstationer inden for computersyn og maskinlæringssystemer. Bibliotekskoden er skrevet i C ++ og distribueret under BSD-licensen.

Om den nye version OpenCV 4.2

Nu biblioteket er i sin OpenCV 4.2-version, hvori i DNN-modulet (Deep neuralt netværk) med implementeringen af ​​maskinlæringsalgoritmer baseret på neurale netværk, tilføjede en backend for at bruge CUDA og eksperimentel support til nGraph OpenVINO API blev implementeret.

Ud over at bruge SIMD-instruktioner optimerer vi kodeydelsen til stereoutput (StereoBM / StereoSGBM), ændrer størrelse, maskerer, roterer, beregner manglende farvekomponenter og mange andre operationer.

I G-API-modulet (opencv_gapi), der fungerer som en motor til behandling effektiv billeddannelse ved hjælp af grafikbaserede algoritmer, understøtter mere komplekse hybridalgoritmer til computersyn og dyb maskinlæring. Giver support til Intel Inference Engine. Tilføjet understøttelse af videostream-behandling til eksekveringsmodellen.

Sårbarheder (CVE-2019-5063, CVE-2019-5064), der kunne føre til udførelse af angrebskode ved at behandle ubekræftede data i XML-, YAML- og JSON-formater blev også rettet. Hvis der findes et tegn med et null-tag under JSON-parsing, kopieres hele værdien til bufferen, men uden korrekt verifikation af grænserne for det tildelte hukommelsesområde.

Af de andre ændringer præsenteret i denne nye version:

  • Tilføjet multithreaded implementering af pyrDown-funktionen.
  • Tilføjet muligheden for at udtrække videostreams fra mediebeholdere (demuxing) ved hjælp af den FFmpeg-baserede video-backend.
  • Tilføjet en algoritme til hurtig frekvens selektiv rekonstruktion af beskadigede FSR (Frequency Selective Reconstruction) billeder.
  • Tilføjet RIC-metode til interpolering af typiske blanke områder.
  • Tilføjet LOGOS afvigelsesnormaliseringsmetode.

Sådan installeres OpenCV 4.2?

For dem der er interesserede i at kunne installere dette bibliotek, kan få den nye version samt konsultere oplysningerne om brugen og endda finde vejledninger fra dets officielle hjemmeside.

Linket er dette.

I denne artikel Vi giver trinene for at kunne implementere biblioteket på en Raspberry pi.

Sådan installeres OpenCV på en Raspberry PJeg skal have dit system, som er Raspbian.

Fra vVi skal åbne en terminal, og i den skal vi skrive følgende kommandoer for at installere afhængigheder, udviklerværktøjer, billedpakker blandt 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 Lad os installere Python 3-headerfiler så vi kan kompilere OpenCV:

sudo apt-get install python3-dev

Nu lad os oprette et Python-miljø med følgende kommandoer, dette for at have et isoleret 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 installerer 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]"

Færdiggjort dette nu 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

Nu vil vi øge swap i vores system, da hvis vi lader det være som standard, kan systemet hænge:

sudo nano /etc/dphys-swapfile

Og vi skal redigere variablen CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Vi gemmer 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

Nu skal vi fortsætte med at 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.


Indholdet af artiklen overholder vores principper for redaktionel etik. Klik på for at rapportere en fejl her.

Vær den første til at kommentere

Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.