Add*_*dee 2 image-processing histogram feature-extraction computer-vision
我正在工作草杂草检测。我已经开始从 HoG 描述符中提取特征。正如从 HoG 文献中研究的那样,HoG 不是旋转不变的。我有每类杂草的总共 18 张图像,并且有两个类。在我的训练和测试数据库中,我将每个图像旋转 [5 10 15 20 ... 355] 度。
训练和测试是使用 LibSVM 包完成的。我得到了大约 80% 的准确率。
我的问题是,如果 HoG 不是旋转不变的,那么我怎样才能获得如此高的准确度?
首先,对于旋转不变的描述符 D,您有:
D(image) ~= D(image_5) ~= D(image_X)
X:旋转角度
运算符 ~= 我们的意思是比较特征之间的距离很小。
因此,对于旋转不变描述符 D,您不必将图像的旋转版本添加到训练集中。因为 D(image) ~= D(image_30) ~= D(image_X),将旋转图像添加到训练集在某种程度上是多余的(在特征空间中,您在非常相似的位置添加样本)。
相反,在您的配置中,旋转的鲁棒性不是由 HOG 处理,而是由:
1/ 数据增强(将旋转图像添加到训练集)
2/ 机器学习算法 SVM。
在特征空间中,对于 HOG:D(image) 和 D(image_X) 位于特征空间中的不同位置,SVM 学会将它们“放在”同一类中。
如果你真的想测试 HOG 对旋转的不变性,不要将旋转后的图像添加到训练集中,而是将它们保留在测试集中。准确率应该会急剧下降。