4

我正在使用 SVM-HOG 管道在 python 中使用 OpenCV 进行行人检测。

我有很多不同尺寸的图像,有些很小(例如 21×32),有些较大(例如 127×264)。

我首先将我的 HOG 描述符定义为hog = cv2.HOGDescriptor() 当我通过调用计算 HOG 特征时,h = hog.compute(image)我发现当图像小于 64*128 时,描述符将无法计算特征,而是终止程序。

原始论文使用 64*128 大小的图像,但我认为它也表示可以使用具有相同纵横比 1:2 的图像(如果我错了,请纠正我)。

我的问题是 64*128 是 HOG 描述符可以计算特征的最小尺寸吗?因为我试图在调整为 32*64 的图像上计算 HOG 特征,但它不起作用。

谢谢。 在此处输入图像描述

for entries in os.listdir(dir_path):
    if entries.endswith(".jpg"):
        img = cv2.imread(os.path.join(test_path, entries))
        rects, scores = hog.detectMultiScale(img, winStride=(4,4), padding=(8,8), scale=1.05)
        sc = [score[0] for score in scores]
        for i in range(len(rects)):
            r = rects[i]
            rects[i][2] = r[0]+r[2]
            rects[i][3] = r[1]+r[3]
        pick =[]
        pick = non_max_suppression(rects, probs = sc, overlapThresh = 0.3)
        for (x,y,w,h) in pick:
            cv2.rectangle(img, (x, y), (w, h), (0, 255, 0), 1)    
        cv2.imshow("A",img)

在此处输入图像描述

4

0 回答 0