OpenCV eine Bibliothek zur Objekterkennung in Bildern und Kameras

offener Lebenslauf

OpenCV ist eine kostenlose, quelloffene und plattformübergreifende Bibliothek für Computer Vision (verfügbar für GNU/Linux, macOS, Windows und Android), die ursprünglich von Intel entwickelt wurde. Sie findet in unzähligen Anwendungen Verwendung , von Bewegungserkennungssystemen bis hin zu Prozesssteuerungsanwendungen mit Objekterkennung. Dies liegt daran, dass sie unter der BSD-Lizenz veröffentlicht ist, die ihre freie Nutzung für kommerzielle und Forschungszwecke unter bestimmten Bedingungen erlaubt.

Open CV enthält über 500 Funktionen, die ein breites Spektrum an Bereichen der Bildverarbeitung abdecken, wie z. B. Objekterkennung (Gesichtserkennung), Kamerakalibrierung, Stereosehen, Robotersehen, Klassifizierung von Aktionen in Videos, Konvertierung von Bildern, Extraktion von 3D-Modellen, Erstellung eines 3D-Raums aus einem Stereokamerabild und Erstellung hochwertiger Bilder durch Kombination von Bildern niedriger Qualität.

Darüber hinaus bietet es die Möglichkeit, mithilfe von Methoden des maschinellen Lernens nach Bildern von Objekten zu suchen , die den präsentierten Elementen ähnlich sind, Marker zu organisieren, gemeinsame Elemente in verschiedenen Bildern zu identifizieren und Fehler wie rote Augen automatisch zu entfernen.

OpenCV bietet über 2500 Algorithmen, sowohl klassische als auch solche, die die neuesten Entwicklungen in Computer Vision und maschinellem Lernen widerspiegeln. Der Code der Bibliothek ist in C++ geschrieben und wird unter der BSD-Lizenz vertrieben.

Über die neue Version OpenCV 4.2

Aktuell liegt die Bibliothek in ihrer OpenCV-Version 4.2 vor , in der im DNN- Modul (Deep Neural Network) mit der Implementierung von auf neuronalen Netzen basierenden Algorithmen für maschinelles Lernen ein Backend zur Verwendung von CUDA hinzugefügt und experimentelle Unterstützung für die nGraph OpenVINO API implementiert wurde.

Zusätzlich zur Verwendung von SIMD-Anweisungen optimieren wir die Codeleistung für die Stereoausgabe (StereoBM / StereoSGBM), ändern die Größe, maskieren, drehen, berechnen fehlende Farbkomponenten und viele andere Vorgänge.

Das G-API-Modul (opencv_gapi), das als Engine für effiziente Bildverarbeitung mittels grafikbasierter Algorithmen dient, unterstützt komplexere Hybridalgorithmen für Computer Vision und Deep Learning. Es bietet Unterstützung für die Intel Inference Engine. Die Verarbeitung von Videostreams wurde dem Laufzeitmodell hinzugefügt.

Sicherheitslücken (CVE-2019-5063, CVE-2019-5064), die zur Ausführung von Angriffscode durch Verarbeitung nicht verifizierter Daten in den Formaten XML, YAML und JSON führen konnten, wurden ebenfalls behoben. Wenn während der JSON-Analyse ein Zeichen mit einem Null-Tag gefunden wird, wird der gesamte Wert in den Puffer kopiert, jedoch ohne ordnungsgemäße Überprüfung der Grenzen des zugewiesenen Speicherbereichs.

Weitere Änderungen in dieser neuen Version:

  • Multithread-Implementierung der pyrDown-Funktion hinzugefügt.
  • Es wurde die Möglichkeit hinzugefügt, Videostreams mithilfe des FFmpeg-basierten Video-Backends aus Mediencontainern zu extrahieren (Demuxing).
  • Es wurde ein Algorithmus zur schnellen frequenzselektiven Rekonstruktion beschädigter FSR-Bilder (Frequency Selective Reconstruction) hinzugefügt.
  • RIC-Methode zur Interpolation typischer leerer Bereiche hinzugefügt.
  • LOGOS-Abweichungsnormalisierungsmethode hinzugefügt.

Wie installiere ich OpenCV 4.2?

Wer Interesse an der Installation dieser Bibliothek hat, kann die neue Version herunterladen , Informationen zur Verwendung einsehen und sogar Anleitungen auf der offiziellen Website finden.

Der Link ist dies.

In diesem Artikel beschreiben wir die Schritte zur Implementierung der Bibliothek auf einem Raspberry Pi.

Um OpenCV auf einem Raspberry Pi zu installieren , benötigen wir dessen Betriebssystem, nämlich Raspbian.

Von dort aus öffnen wir ein Terminal und geben die folgenden Befehle ein, um Abhängigkeiten, Entwicklerwerkzeuge, Image-Pakete und weitere zusätzliche Bibliotheken zu installieren:

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

Zum Schluss installieren wir die Python-3-Headerdateien, damit wir OpenCV kompilieren können:

sudo apt-get install python3-dev

Nun erstellen wir mit den folgenden Befehlen eine Python-Umgebung, um eine isolierte Website zu erhalten:

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

Wir werden virtualenv und virtualenvwrapper installieren:

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

Nachdem wir dies getan haben, werden wir OpenCV nun mit folgenden Mitteln kompilieren:

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

Jetzt werden wir den Swap in unserem System erhöhen, da das System hängen bleiben kann, wenn wir es so lassen, wie es standardmäßig ist:

sudo nano /etc/dphys-swapfile

Und wir werden die Variable CONF_SWAPSIZE bearbeiten:

CONF_SWAPSIZE=1024

Wir speichern und schließen mit Strg + o und Strg + x. Dann tippen wir:

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

Jetzt werden wir fortfahren zu kompilieren:

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

Und fertig.


Als bevorzugte Quelle in Google hinzufügen