为旋转图像构建正样本以在 OpenCV 中进行级联训练
Posted
技术标签:
【中文标题】为旋转图像构建正样本以在 OpenCV 中进行级联训练【英文标题】:building positive samples for rotated images for cascaded training in OpenCV 【发布时间】:2014-02-19 12:42:06 【问题描述】:我需要训练一个级联分类器来检测车辆和不同的视角。我正在使用 OpenCV。
我需要捕捉的一些角度导致图像中车辆的放置是对角线,如下所示:
现在的问题是,由于车辆是斜着放置在图像上的,所以有很多不必要的背景,我无法仅仅因为图像必须是矩形而裁剪掉这些背景。是否有另一种方法可以为对象的对角放置的角度/视角构建正样本?我确实需要分类器能够识别对象的这个特定视图。在上面的汽车中并没有那么糟糕,因为汽车的长度和宽度之间没有太大的差异。但是,如果我对一辆卡车做同样的事情,它的长度是宽度的几倍,那么图像最终的背景比它们感兴趣的对象要多,如下所示。我担心这对分类是好是坏,以及是否有任何解决方案。
无论车辆在背景上以何种方式旋转,分类器是否会识别车辆的特定角度?在这种情况下,最好旋转整个卡车图像,使卡车水平/垂直,然后剪辑图像的其余部分?
【问题讨论】:
【参考方案1】:问:无论车辆在背景上以何种方式旋转,分类器都会识别出车辆的特定角度吗?
答:没有。无论车辆以何种方式旋转,分类器都无法识别车辆的特定角度。 (在这里谈论类似 Haar 的特征)。有一个概念是为了引入倾斜的 45° Haar 类似特征来提高“维度”,这在我过去读过的研究论文中非常成功。
也曾尝试引入通用的旋转 haar 特征,但从我的记忆来看几乎没有成功。但是,如果您要使用超高分辨率图像,它很可能会起作用。但我不会赌钱。
问:你的整个问题
A:正图像样本中的背景不一定会严重影响检测。根据具体情况,它实际上可能有助于您的检测。
我的解决方案(如果你真的必须使用分类器),至少对于基于图像的检测,是利用 OpenCV rotate() 函数。您将图像从 1° 旋转到 360°(每次可能 10°)并每次都继续应用分类器。检测时间可能会稍微长一些,但我认为不会超过几秒钟。
在视频方面,如果我没记错的话,它会超级滞后。如果时间允许,一定要试一试。
我想提出的另一件事是,您的车辆(如卡车和汽车)具有非常不同的功能。如果我是你,我会将它们分成不同的分类器并同时运行它们以进行车辆检测(之前使用 3 个不同的分类器完成它,眼睛、手和面部的实时结果)。
如果您打算将它们训练成一个分类器,它可能会起作用,也可能不会起作用,因此请务必考虑我的建议以确保安全。
您可能还想查看以下链接:http://docs.opencv.org/modules/objdetect/doc/latent_svm.html(分类器更常用于对象检测。我一直使用 haar,所以对这个分类器没有经验。抱歉)
http://www.araa.asn.au/acra/acra2006/papers/paper_5_63.pdf(基于旋转,与我的回答有点矛盾。但我的观点是,如果图像的分辨率不够高,可能会有很多舍入错误。)
希望我的回答对你有所帮助。祝你好运(:如果您需要更多帮助或有任何不清楚的地方,请发表评论。
【讨论】:
非常感谢。那肯定有帮助。是的,我使用不同的分类器,每种不同类型的车辆都有 3 个不同的分类器。关于 haar 特征,我正在考虑改用 HoG,因为我了解到对于 Haar 特征,所有正样本都需要排列,以便例如。轮胎总是出现在同一个相对位置,等等。这是真的吗?鉴于我有大约 1000 个样本,这似乎很困难且非常乏味。 @user961627,是的。对于理想的 Haar 分类器来说,这是正确的。最好是阳性样本总是在同一个相对位置。您是否使用对象标记来标记车辆?如果是这样,那么你的问题解决了吗?如果您正在谈论车辆被随机放置在图像的不同部分的对角线上。但这仍然会很乏味。标记一张图像可能需要大约 2 到 5 秒。 HoG 也应该可以。虽然我不太确定 HoG 的准确性,但我知道 Haar 分类器在检测时间方面比 HoG 快。 负样本呢? ***.com/questions/22419545/…以上是关于为旋转图像构建正样本以在 OpenCV 中进行级联训练的主要内容,如果未能解决你的问题,请参考以下文章
Opencv createsamples 实用程序:紧密边界框会用未裁剪的图像代替正样本吗?