我的输入图像的大小是 68 x 224 x 3 (HxWxC),第一Conv2d
层定义为
conv1 = torch.nn.Conv2d(3, 16, stride=4, kernel_size=(9,9))
。
为什么输出特征体的尺寸是16 x 15 x 54?我知道有16个过滤器,所以前面有16,但是如果我用来[(W\xe2\x88\x92K+2P)/S]+1
计算维度,维度是不可整除的。
有人可以解释一下吗?
\n我正在尝试使用 SVM-HOG 管道在 python 中使用 OpenCV 进行行人检测。
\n我有很多不同尺寸的图像,有些很小(例如21\xc3\x9732),有些较大(例如127\xc3\x97264)。
\n我首先将我的 HOG 描述符定义为hog = cv2.HOGDescriptor()
\n当我通过调用计算 HOG 特征时,h = hog.compute(image)
我发现当图像小于 64*128 时,描述符将无法计算特征,相反,它只是终止程序。
原始论文使用了 64*128 大小的图像,但我认为它还指出可以使用具有相同长宽比(1:2)的图像(如果我错了,请纠正我)。
\n我的问题是 64*128 是 HOG 描述符可以计算特征的最小尺寸吗?因为我尝试在调整为 32*64 的图像上计算 HOG 特征,但它不起作用。
\n\nfor entries in os.listdir(dir_path):\n if entries.endswith(".jpg"):\n img = cv2.imread(os.path.join(test_path, entries))\n rects, scores = hog.detectMultiScale(img, winStride=(4,4), padding=(8,8), scale=1.05)\n sc = [score[0] for score in scores]\n for i in range(len(rects)):\n r = rects[i]\n rects[i][2] = r[0]+r[2]\n rects[i][3] = r[1]+r[3]\n pick …
Run Code Online (Sandbox Code Playgroud)