0

ビデオで歩行者を検出するために、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 を使用しています。

4

1 に答える 1

0
HOGCascade = cv2.HOGDescriptor()

これを使いたいのなら.xml、やるべきことはたくさんあります。

最終的に利用可能な記述子を取得したら、cv2.HOGDescriptor_getDefaultPeopleDetector()in を置き換える必要がありますsetSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())

于 2016-09-08T09:21:29.780 に答える