2

我即将在 OpenCV 中为车牌识别系统进行培训。我正在运行 Python 2.7 / Ubuntu 12.04 / OpenCV(python 绑定)通过 sudo apt-get install python-opencv 安装

我已将所有图像标记如下:

images/img000.jpg 1 112 132 203 54
images/img000.jpg 1 112 132 217 47

Note : 203 x 54 has aspect ratio 3.73
Note : 217 x 47 has aspect ratio 4.56

或一般意义上:

image_dir/filename [#num of bounding rects] x y width height

当我使用以下参数运行 opencv_createsamples 时,我没有问题并且程序运行良好以创建 samples.vec 文件:(请参阅教程:OpenCV Haar 培训

opencv_createsamples -info samples.dat -vec samples.vec -w 144 -h 50

现在在我给出的示例中,我们注意到两个车牌的大小相似,但纵横比不同。

所以现在如果我的对象的纵横比在 3.5 和 4.5 之间,我该如何选择 -w 和 -h 值来创建样本?

  • 我可以使用最小或最大纵横比吗?
  • 我可以使用平均纵横比吗?

我担心如果我将这些值基于较短的盘子,一些较长的盘子会被切断(水平),如果我将这些值基于较长的盘子,较短的盘子的一些高度可能会被切断(垂直)。也许我的想法甚至是错误的?

注意:我知道 -w 和 -h 应该小于您想要识别的最小板。

4

1 回答 1

1

通常,您不希望对象的纵横比变化很大。如果是这样,则可能根本无法检测到具有“错误”纵横比的对象,您可能需要训练多个检测器而不是一个。但如果方差不是太大,我会使用中间纵横比。事实上,trainCascadeObjectDetectorMatlab 的计算机视觉系统工具箱中的功能将为您完成这项工作。

于 2014-01-17T03:52:48.210 回答