OpenCV ist eine Open-Source-Bibliothek, die auf Computer Vision in Echtzeit ausgerichtet ist. Diese Bibliothek wurde von Intel entwickelt und ist plattformübergreifend. Sie unterstützt Python, C ++, Java usw. Computer Vision ist ein hochmodernes Gebiet der Informatik, das es Computern ermöglichen soll, zu verstehen, was in einem Bild zu sehen ist. OpenCV ist eine der am häufigsten verwendeten Bibliotheken für Computer Vision-Aufgaben wie Gesichtserkennung, Bewegungserkennung, Objekterkennung usw.

In diesem Tutorial erstellen wir einen grundlegenden Fußgängerdetektor für Bilder und Videos mit OpenCV. Die Erkennung von Fußgängern ist ein sehr wichtiges Forschungsgebiet, da sie die Funktionalität eines Fußgängerschutzsystems in selbstfahrenden Autos verbessern kann.

Wir können Merkmale wie Kopf, zwei Arme, zwei Beine usw. aus einem Bild eines menschlichen Körpers extrahieren und sie übergeben, um ein Modell für machine learning zu trainieren. Nach dem Training kann das Modell verwendet werden, um Menschen in Bildern und Videostreams zu erkennen und zu verfolgen. OpenCV verfügt jedoch über eine integrierte Methode zur Erkennung von Fußgängern. Es verfügt über ein vorab trainiertes HOG-Modell (Histogram of Oriented Gradients) + ein lineares SVM-Modell zur Erkennung von Fußgängern in Bildern und Videostreams.

Histogramm orientierter Gradienten

Dieser Algorithmus überprüft direkt umgebende Pixel jedes einzelnen Pixels. Ziel ist es zu überprüfen, wie dunkler das aktuelle Pixel im Vergleich zu den umgebenden Pixeln ist. Der Algorithmus zeichnet und Pfeile zeigen die Richtung des Bildes an, das dunkler wird. Es wiederholt den Vorgang für jedes Pixel im Bild. Schließlich würde jedes Pixel durch einen Pfeil ersetzt, diese Pfeile werden als Farbverläufe bezeichnet . Diese Gradienten zeigen den Lichtfluss von hell nach dunkel. Mit diesen Gradienten führen Algorithmen weitere Analysen durch. Um mehr über HOG zu erfahren, lesen Sie das Forschungspapier von Navneet Dalal und Bill Triggs über HOG for Human Detection. .



Bedarf

opencv-python 3.4.2
Imutils 0.5.3

Um die obigen Module zu installieren, geben Sie den folgenden Befehl in das Terminal ein.

pip install moudle_name

Beispiel 1:

Lassen Sie uns das Programm zum Erkennen von Fußgängern in einem Bild erstellen:

Verwendetes Bild:
python-opncv

import cv2 
import imutils 
   
hog = cv2.HOGDescriptor() 
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) 
   
image = cv2.imread('img.png') 
   
image = imutils.resize(image, 
                       width=min(400, image.shape[1])) 
   
(regions, _) = hog.detectMultiScale(image,  
                                    winStride=(4, 4), 
                                    padding=(4, 4), 
                                    scale=1.05) 
   
for (x, y, w, h) in regions: 
    cv2.rectangle(image, (x, y),  
                  (x + w, y + h),  
                  (0, 0, 255), 2) 
  
cv2.imshow("Image", image) 
cv2.waitKey(0) 
   
cv2.destroyAllWindows() 

Ausgabe: