use*_*627 6 opencv classification image-processing computer-vision training-data
所以我遇到了很多关于OpenCV的haartraining和级联培训工具的教程.特别是我有兴趣使用createsamples工具训练汽车分类器,但是关于-w和-h参数的地方似乎存在冲突的声明,所以我很困惑.我指的是这个命令:
$ createsamples -info samples.dat -vec samples.vec -w 20 -h 20
Run Code Online (Sandbox Code Playgroud)
我有以下三个问题:
我知道正样本的宽高比应该与从上面的-w和-h参数得到的宽高比相同.但是,所有正样本的-w和-h参数也必须是相同的大小吗?例如.我有接近1000张图片.裁剪后所有尺寸都必须相同吗?
如果不是大小而是纵横比,那么与OpenCV工具中提到的-w和-h参数相比,正面样本的纵横比必须精确匹配吗?我的意思是,分类器是非常敏感的,所以即使是这里和那里的几个像素也会影响它的性能?或者你会说使用图像是安全的,只要它们的眼睛比例大致相同.
我已经裁剪了几张相同尺寸的图像.但是在尝试使它们具有相同的大小时,它们中的一些在边界框中包含的背景比其他的更多,并且一些具有略微不同的边缘.(例如,请看下面的两张图片.较大的汽车占据了更多的图像,但较小的汽车周围有更宽的余量).我只是想知道是否有这样的图像集合是好的,或者它是否会降低分类器的准确性,因此我应该确保所有感兴趣的对象(在这种情况下,汽车)周围更紧的边界框?
第一个问题:是的,所有用于训练的图像必须具有相同的大小。(至少我上次做人脸检测样本训练,这里应该是一样的。如果我没记错的话,如果图像大小不一样的话,就会出现错误。但是你可以尝试一下,看看时间是否正确)允许。)
第二个问题:不太确定你在这里问什么。但分类器并不像你想象的那么敏感。距离感兴趣的对象有几个像素,例如手,如果小指缺少几个像素(由于裁剪)并且其他图像缺少拇指的几个像素,等等......分类器仍然会能够检测到手。因此,各处缺少一些像素或添加一些背景像素,最终不会对分类器产生太大影响。
第三个问题:您应该将图像裁剪为仅包含汽车以获得最佳效果。尝试消除尽可能多的背景。我基于噪声背景、黑色背景和最小背景的裁剪样本进行了一项研究。据我所知,具有最小背景的裁剪样本在假阳性和假阴性方面显示了最佳结果。
您可以使用对象标记来做到这一点:http://achuwilson.wordpress.com/2011/02/13/object-detection-using-opencv-using-haartraining/
乏味的方法是在裁剪后使用 Paint 将所有图像的大小调整为相同的像素值。
此链接还应该回答您的问题:http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html
我也同意 GilLevi 的观点,即与 Haar、HoG、LBP 级联相比,有更好的检测方法。图像的训练可能需要几天的时间(取决于训练的图像数量)。如果您确实必须使用级联方法并且希望最大限度地减少训练时间,那么使用 Haar 类特征进行训练比使用 HoG 或 LBP 需要更长的时间。但就结果而言,我不太确定哪种方法可以确保更好的性能和稳健性。
希望我的回答对你有帮助。如果还有更多问题,请评论。
归档时间: |
|
查看次数: |
3350 次 |
最近记录: |