OpenCV knihovna pro rozpoznávání objektů v obrazech a fotoaparátech

openCV

OpenCV je bezplatná knihovna strojového vidění napříč platformami (stávající verze pro GNU / Linux, Mac OS X, Windows a Android), který byl původně vyvinutý společností Intel a používaný v nesčetných aplikacíchod bezpečnostních systémů s detekcí pohybu až po aplikace pro řízení procesů, kde je vyžadováno rozpoznání objektu. Je to proto, že jeho zveřejnění je vydáno na základě licence BSD, která umožňuje jeho volné použití pro komerční a výzkumné účely za podmínek v něm uvedených.

Otevřete životopis obsahuje více než 500 funkcí pokrývajících širokou škálu oblastí v procesu vidění, jako je rozpoznávání objektů (rozpoznávání obličeje), kalibrace kamery, stereofonní vidění, robotické vidění, klasifikace akcí ve videu, převádění obrazů, extrahování 3D modelů, vytváření 3D prostoru ze obrazu stereokamery a vytváření vysoce kvalitních obrazů kombinací obrazů nízké kvality.

Také nabízí možnost vyhledávat obrázky podobných objektů na sadu prvků prezentovaných použitím metod strojového učení, uspořádáním značek, identifikací společných prvků v různých obrazech, automatickým odstraněním vad, jako jsou červené oči.

OpenCV poskytuje více než 2500 XNUMX algoritmů, klasické i reflektující nejnovější úspěchy v oblasti systémů počítačového vidění a strojového učení. Kód knihovny je napsán v C ++ a distribuován pod licencí BSD.

O nové verzi OpenCV 4.2

Nyní knihovna je ve verzi OpenCV 4.2, ve kterém v modulu DNN (Deep neuron network) s implementací algoritmů strojového učení založených na neuronových sítích, přidán backend pro použití CUDA a byla implementována experimentální podpora pro nGraph OpenVINO API.

Kromě použití pokynů SIMD optimalizujeme výkon kódu pro stereofonní výstup (StereoBM / StereoSGBM), měníme velikost, maskujeme, rotujeme, počítáme chybějící barevné komponenty a mnoho dalších operací.

V modulu G-API (opencv_gapi), který funguje jako motor pro zpracování efektivní zobrazování pomocí grafických algoritmů, podporuje složitější hybridní algoritmy pro počítačové vidění a hluboké strojové učení. Poskytuje podporu pro Intel Inference Engine. Přidána podpora pro zpracování video streamu do modelu provedení.

Byly také opraveny chyby zabezpečení (CVE-2019-5063, CVE-2019-5064), které by mohly vést ke spuštění útočného kódu zpracováním neověřených dat ve formátech XML, YAML a JSON. Pokud je při analýze JSON nalezen znak se značkou null, celá hodnota se zkopíruje do vyrovnávací paměti, ale bez řádného ověření limitů oblasti přidělené paměti.

Z dalších změn představeno v této nové verzi:

  • Přidána implementace funkce pyrDown s více vlákny.
  • Přidána možnost extrahovat video streamy z mediálních kontejnerů (demuxing) pomocí video backendu založeného na FFmpeg.
  • Přidán algoritmus pro rychlou frekvenční selektivní rekonstrukci poškozených obrazů FSR (Frequency Selective Reconstruction).
  • Přidána metoda RIC pro interpolaci typických prázdných oblastí.
  • Přidána metoda normalizace odchylky LOGOS.

Jak nainstalovat OpenCV 4.2?

Pro ty, kteří mají zájem o instalaci této knihovny, můžete získat novou verzi stejně jako konzultovat informace týkající se používání a dokonce najít návody z jeho oficiálních webových stránek.

Odkaz je tento.

V tomto článku Poskytneme kroky, abychom mohli implementovat knihovnu na Raspberry pi.

Instalace OpenCV na Raspberry PMusím mít váš systém, který je Raspbian.

Z vOtevřeme terminál a v něm budeme psát následující příkazy pro instalaci závislostí, nástroje pro vývojáře, balíčky obrázků a další knihovny:

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

Konečně, Nainstalujeme si hlavičkové soubory Pythonu 3 abychom mohli sestavit OpenCV:

sudo apt-get install python3-dev

Nyní vytvořme prostředí Pythonu s následujícími příkazy, aby to mělo izolovaný web:

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

Budeme instalovat virtualenv a 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]"

Hotovo budeme kompilovat openCV s:

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

Nyní zvýšíme swap v našem systému, protože pokud ho necháme ve výchozím nastavení, systém může přestat reagovat:

sudo nano /etc/dphys-swapfile

A budeme upravovat proměnnou CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Ukládáme a zavíráme pomocí ctrl + o a ctrl + x. Potom zadáme:

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

Nyní budeme pokračovat v kompilaci:

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

A to je vše


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.