2016-09-06 3 views
0

Я пытаюсь реализовать дескриптор HOG с OpenCV для обнаружения пешеходов в video. В настоящее время я использую готовый набор данных по OpenCV hogcascade_pedestrians.xml. Несомненно, документация по этой части очень бедна в Интернете, хотя дескриптор HOG очень эффективен для обнаружения людей. Я пишу код для обнаружения пешеходов с Python, и я остановился на следующий коде:HOG Descriptor using Python + OpenCV

import cv2 
import numpy as np 
import imutils 

VidCap = cv2.VideoCapture('pedestrians.mp4') 

HOGCascade = cv2.HOGDescriptor('hogcascade_pedestrians.xml') 
HOGCascade.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) 

while True: 

    _ , image = VidCap.read() 
    image = imutils.resize(image, width=700) 

    gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) 
    clahe = cv2.createCLAHE(clipLimit=15.0,tileGridSize=(8,8)) 
    gray = clahe.apply(gray) 

    winStride = (8,8) 
    padding = (16,16) 
    scale = 1.05 
    meanshift = -1 

    (rects, weights) = HOGCascade.detectMultiScale(gray, winStride=winStride, 
              padding=padding, 
              scale=scale, 
              useMeanshiftGrouping=meanshift) 

    for (x, y, w, h) in rects: 
     cv2.rectangle(image, (x, y), (x+w, y+h), (0,200,255), 2) 

    cv2.imshow('Image', image) 

    if cv2.waitKey(5) == 27: 
     break 

VidCap.release() 
cv2.destroyAllWindows() 

Я предполагаю, что код сценарий будет что-то вроде кодов, написанных для Хаара каскадов. Но я попробовал это, и у меня появились ошибки. Кто-нибудь знает, как реализовать дескриптор HOG на OpenCV с Python.

Я прочитал следующее question, но я ничего не получил со второго ответа.

Моя проблема в том, что я не могу найти способ написать код, так как документация об этой части очень бедна.

Примечание: Я использую OpenCV 3.1.0-DEV с Python 2.7.11

ответ

0
HOGCascade = cv2.HOGDescriptor() 

Если вы хотите использовать эту .xml, У вас есть много подготовительной работы, чтобы сделать.

Когда у наконец, получить доступный дескриптор, вы должны заменить cv2.HOGDescriptor_getDefaultPeopleDetector() в setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())

+0

Прежде всего, файл XML обеспечивается самим OpenCV при загрузке новой версии 3.1.0. Во-вторых, я не понимаю, что вы имеете в виду: D – Tes3awy

Смежные вопросы