Силуети пішоходів можна виявляти каскадним класифікатором Хаара haarcascade_fullbody.xml проте із цим завданнями краще справляються HOG-класифікатори, а саме класифікатор hogcascade_pedestrians.xml який використовується за умовчанням в функції HOGDescriptor_getDefaultPeopleDetector.
HOG-класифікатори використовують алгоритм відмінний від алгоритму Віоли-Джонса.
Приклад використання HOG-класифікатора виявлення силуетів людей.
import cv2
import numpy as np
scaling_factor = 0.5
hog = cv2.HOGDescriptor()
hog.setSVMDetector( cv2.HOGDescriptor_getDefaultPeopleDetector() )
frame = cv2.imread('foto/pep1.jpg')
face_rects= hog.detectMultiScale(frame, winStride=(8,8), padding=(32,32), scale=1.05)
for (x,y,w,h) in face_rects[0]:
cv2.rectangle(frame, (x,y), (x+w,y+h), (0,255,0), 3)
cv2.imshow('Input image', frame)
print ("Знайдено {0} пішоходи(ів)!".format(len(face_rects[0])))
Знайдено 3 пішоходи(ів!
Отримуємо
Інший приклад роботи HOG-детектора
Немає коментарів:
Дописати коментар