用于行李检测的 OpenCV 和 SVM 训练

Posted

技术标签:

【中文标题】用于行李检测的 OpenCV 和 SVM 训练【英文标题】:OpenCV and SVM training for luggages detection 【发布时间】:2017-06-27 16:46:33 【问题描述】:

在我的项目中,我试图将行李与其他任何东西(通常是人类)区分开来。

目前,我使用 OpenCV 和 SVM 训练方法,分为 2 个班级,一个带行李箱,另一个带人类。在注入帧之前,我将它们转换为灰度,但我没有应用额外的过滤器。预测的结果不是很准确。

我想知道在训练之前对帧应用额外的过滤器是否会产生更好的结果。例如轮廓检测。如果轮廓接近“矩形”,那么它是一个行李箱,否则它是“其他东西”。我也在考虑切换到 ONE_CLASS 方法。

你怎么看?还是您有更好的想法?

问候,

朱利安。

【问题讨论】:

您关于“近似矩形是行李”的建议是一个很好的起点。然后您可以执行异常检测 用暗网训练你自己的物体检测器怎么样?看看这个:pjreddie.com/darknet/yolo 轮廓在这种情况下可能不是一个可行的想法。您是否尝试过微调SVM parameters?如果在大范围内更改它们并没有太大改变结果,请选择更好/更强大的功能。 谢谢大家的回答!关于 SVM 参数。我想知道培训是否考虑了颜色。我需要将各种颜色注入 SVM 吗?关于暗网,我还没有尝试过,我会尝试一下!现在我正在研究以下解决方案:去除背景(不确定),膨胀和腐蚀以去除“噪音”,找到轮廓,并应用凸包算法。然后我正在考虑做轮廓区域和船体区域之间的差异。如果它很近,我认为它是一个行李,否则是一个人。 【参考方案1】:

在考虑了这个问题之后,我认为异常检测是最好的方法。既然你提到了ONE_CLASS method,我就有了这个想法。

假设图像中的行李箱是矩形的,那么“任何接近矩形的东西都是行李箱”的建议也是一种可行的方法。因此,您只有一类“行李”。

顾名思义,“异常检测”用于检测不符合特定模式的对象。换句话说,它用于检测异常值(数据集中存在的对象以外的对象)。

由于您只强调行李,我认为这种方法是最好的。

您也可以尝试其他方法,以防万一。

【讨论】:

【参考方案2】:

所以矩形近似方法似乎符合我的要求。我还没有用很多图像进行测试,所以我不能 100% 确定我会去做。与往常一样,也有例外:当行李箱的颜色接近背景颜色时,结果并不准确。有没有办法放大两种接近颜色之间的差异?

问候,

朱利安。

【讨论】:

以上是关于用于行李检测的 OpenCV 和 SVM 训练的主要内容,如果未能解决你的问题,请参考以下文章

OpenCV和SVM分类器在自动驾驶中的车辆检测

使用opencv SVM训练火灾检测[关闭]

Hu矩SVM训练及检测-----OpenCV

如何使用具有面部特征的 openCV 训练支持向量机(svm)分类器?

使用 OpenCV SVM 进行对象检测

opencv进阶-HOG+SVM行人检测(已训练好的分类器)