为OpenCV中的级联训练构建旋转图像的正样本

use*_*627 3 opencv computer-vision training-data sample-data

我需要训练一个级联分类器来检测车辆和不同的视角.我正在使用OpenCV.

我需要捕捉的一些角度导致车辆在图像内的放置是对角的,如下所示:

在此输入图像描述

现在问题在于,因为车辆在图像上对角放置,所以有很多不必要的背景,我不能仅因为图像必须是矩形而裁剪掉.是否有另一种方法可以为物体的对角放置角度/视角构建正样本?我确实需要分类器能够识别对象的这个特定视图.在上面的汽车中并没有那么糟糕,因为汽车的长度和宽度没有太大差异.但是,如果我用卡车做同样的事情,这比它的宽度长几倍,那么图像最终会比它们感兴趣的物体具有更多的背景,如下所示.我担心这对分类是好还是坏,如果有任何解决方案.

分类器是否会识别车辆的特定角度,无论它在背景上旋转的方式如何?在这种情况下,旋转整个卡车图像以使卡车水平/垂直,然后剪切图像的其余部分会更好吗?

在此输入图像描述

roc*_*esh 6

问:分类器是否会识别车辆的特定角度,而不管它在背景上的旋转方式?

答:没有.无论旋转方式如何,分类器都无法识别车辆的特定角度.(在这里谈论类似Haar的特征).有一个概念被创建用于引入倾斜的45°Haar样特征来改善"维度",这在我过去读过的研究论文中非常成功.

还有一种尝试引入通用的旋转类似haar的功能,但它几乎没有成功记忆.但是,如果您打算使用超高分辨率图像,它可能会起作用.但我不会赌钱.

问:对你的整个问题

答:正图像样本中的背景可能不一定严重影响检测.从案例到案例,它实际上可能有助于您的检测.

我的解决方案(如果你真的必须使用分类器),至少对于基于图像的检测,是利用OpenCV rotate()函数.您可以将图像从1°旋转到360°(每次可能10°),并且每次都应用分类器.检测时间可能需要稍长,但我不认为它会超过几秒钟.

对于视频方面,如果我没有错,那将是超级滞后的.如果时间允许,请试一试.

我想提出的另一件事是你的车辆(如卡车和汽车)具有非常不同的功能.如果我是你,我会将它们分成不同的分类器并同时运行它们以进行车辆检测(之前用3种不同的分类器,眼睛,手和脸进行实时结果).

如果您打算将它们训练成一个分类器,它可能会也可能不会起作用,所以请注意我的建议是安全的.

您可能还想查看以下链接:http://docs.opencv.org/modules/objdetect/doc/latent_svm.html(分类器更常用于对象检测.我总是使用haar,所以没有经验这个clasifier.抱歉)

http://www.araa.asn.au/acra/acra2006/papers/paper_5_63.pdf(以旋转为基础,与我的答案相矛盾.但我坚持认为,如果图像的分辨率不够高,可能会很多舍入错误.)

希望我的回答能帮到你.祝你好运(:如果你需要帮助或任何不清楚的地方做评论.