ビデオで歩行者を検出するために、OpenCV で HOG 記述子を実装しようとしています。私は現在、 OpenCV によって事前に作成されたデータセットを使用していhogcascade_pedestrians.xml
ます。残念なことに、この部分に関するドキュメントはインターネット上で非常に貧弱ですが、HOG 記述子は人間の検出に非常に効果的です。私は Python で歩行者検出のコードを書いていましたが、次のコードで停止しました。
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()
コード スクリプトは、Haar Cascades 用に記述されたコードのようなものになると思います。しかし、私はそれを試しましたが、エラーが発生しました。Python を使用して OpenCV に HOG 記述子を実装する方法を知っている人はいますか?
次の質問を読みましたが、2 番目の回答からは何も得られません。
私の問題は、この部分に関するドキュメントが非常に貧弱であるため、コードを記述する方法が見つからないことです。
注: Python 2.7.11 で OpenCV 3.1.0-dev を使用しています。