选择/规范化HoG参数用于目标检测?

4

我正在使用HoG特征进行目标检测分类。

我对如何处理不同长度的HoG特征向量感到困惑。

我已经使用大小相同的训练图像训练了分类器。

现在,我从图像中提取区域来运行分类器 - 比如使用滑动窗口方法。 我提取的一些窗口比分类器训练的图像尺寸大得多。(它是在测试图像中可能出现的最小对象的大小上进行训练的)。

问题是,当我需要分类的窗口比训练图像尺寸大时,HoG特征向量也比训练模型的特征向量大得多。

那么我该如何使用模型的特征向量来分类提取的窗口呢?

例如,我们来看一个提取窗口的尺寸为360x240,将其称为extractedwindow。 然后,我们拿一个训练图像,它只有20x30的尺寸,称之为trainingsample

如果我这样获取HoG特征向量:

fd1, hog_image1 = hog(extractedwindow, orientations=8, pixels_per_cell=(16, 16), cells_per_block=(1, 1), visualise=True, normalise=True)

fd2, hog_image2 = hog(trainingsample, orientations=8, pixels_per_cell=(16, 16), cells_per_block=(1, 1), visualise=True, normalise=True)

print len(fd1)
print len(fd2)

这是特征向量之间长度的差异:

2640
616

那么这个问题该如何处理呢?提取的窗口是否应该缩小到分类器训练样本的大小?或者应该根据每个提取的窗口改变/规范化HoG特征的参数?还是有其他方法可以做到这一点?
我个人正在使用Python,使用scikit-image进行工作,但我想这个问题与我使用的平台无关。

这个网站可能会对你有所帮助:http://www.geocities.ws/talh_davidc/ - SomethingSomething
1个回答

3
正如您所说,HOG基本上使用一个参数来确定像素中的单元格大小。因此,如果图像大小发生变化,则单元格的数量不同,然后描述符的大小也不同。
使用HOG的主要方法是在像素大小相同的窗口中使用(在训练期间和测试期间大小相同)。因此,提取的窗口应与训练样本的大小相同。
参考资料中,一位用户表示:
HOG不具有尺度不变性。对于每个图像获取相同长度的特征向量并不能保证尺度不变性。
因此,您应该使用相同的窗口大小...

是的,您应该重新调整窗口大小。但是:您如何提取该窗口?您应该选择窗口的大小,不是吗?为什么您不选择与训练期间相同的大小? - phyrox
1
另一个选项是根据图像大小在每个窗口上更改单元格大小,以获得相同的最终描述符。 - phyrox
是的,我正在选择窗口的大小,但我会在多个窗口大小的比例下查看图像,因为我感兴趣的对象很可能以更大的尺寸出现在图像上。 - user961627
公式:HOG 描述符长度 = #块数 * #每块单元格数 * #每个单元格的方向直方图数量。您可以在此处找到更多信息:http://www.juergenwiki.de/work/wiki/doku.php?id=public:hog_descriptor_computation_and_visualization - phyrox
2
让我们在聊天中继续这个讨论:http://chat.stackoverflow.com/rooms/54264/discussion-between-phyrox-and-user961627。 - phyrox
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接