如果我的对象是标准化的,我可以使用带有一个正图像的 .vec 文件进行 OpenCV 对象检测吗?

Can I use a .vec file with one positive image for OpenCV object detection if my object is standardized?

我正在构建一个分类器来检测电源插座。具体一个插座的三个孔,像这样:

除了使用 OpenCV 的 createsamples 实用程序创建具有相当多角度变化的 .vec 文件以生成正值之外,我是否需要做更多的事情?看起来是这样,因为我的对象是标准化的(除了出口孔之间可能是深色的)。

我看到很多人提供了一个info.dat或者类似的文件,里面有很多正片图片的路径,包括正片文件中待检测物体的数量和位置。如果我能避免这些额外的工作,并且仍然获得出色的检测结果,我愿意。

我确实希望能够从所有可检测角度检测不同尺寸的出口(即从不同的距离)。

如果在使用该文件创建样本之前有理想的尺寸,那也会有所帮助。

事实证明,我认为答案是否定的。

直到我用OpenCV的opencv_annotation工具创建了一个annotations.txt文件后,我才得到好的检测结果。我强烈建议使用 annotation 工具,然后在传递 -info 参数的同时创建一个 .vec 文件,如下所示:

opencv_createsamples -info annotations.txt ...

如果其他人发现此 question/answer 并需要更多帮助,我将编写有关如何执行此操作的教程。希望对你有帮助~

http://johnallen.github.io/opencv-object-detection-tutorial/