你需要几百甚至澳门新萄京赌场手机版几千个正样本

当前位置:澳门新葡新京手机app下载 > 澳门新萄京赌场手机版 > 你需要几百甚至澳门新萄京赌场手机版几千个正样本
作者: 澳门新葡新京手机app下载|来源: http://www.fashioman.com|栏目:澳门新萄京赌场手机版

文章关键词:澳门新葡新京手机app下载,级联

  模块的文档中有介绍,在那文档中给出了一些级联分类器的基本介绍。这个指南是描述如何训练分类器:准备训练数据和运行训练程序。

  opencv_traincascade程序使用TBB来处理多线程。如果希望使用多核并行运算加速,请使用TBB来编译OpenCV。

  训练需要一些列样本。样本分两类:负样本和正样本。负样本是指不包括物体的图像。正样本是待检测的物体的图像。负样本必须手工准备,正样本使用opencv_createsamples创建。

  负样本可以是任意图像,但是这些图像中不能包含待检测的物体。用于抠取负样本的图像文件名被列在一个文件中。这个文件是纯文本文件,每行是一个文件名(包括相对目录和文件名)。负样本和样本图像也叫做背景样本,或者背景样本图像,本文档中对之不予区分。这些图像可以是不同的尺寸,但是图像尺寸应该比训练窗口的尺寸大,因为这些图像将被用于抠取负样本,并将负样本缩小到训练窗口大小。

  正样本由opencv_createsamples生成。正样本可以由包含待检测物体的一张图片生成,也可由一系列标记好的图像生成。

  请注意你需要一个很大的负样本库送给训练程序进行训练。如果是绝对刚性的物体,如OpenCV的标志,你只有一张正样本图像;如果是人脸,你需要几百甚至几千个正样本。在待检测物体是人脸的情况下,你需要考虑所有的人种、年龄、表情甚至胡子的样式。

  如果只有一张包含物体的图像,如一个公司的标志,那么可以通过对物体图像的随机旋转、改变标志亮度以及将标志放在任意的背景上而获得大量的正样本。生成的正样本数目以及随机的程度都可以通过opencv_createsamples的命令行参数控制。

  背景图像的描述文件,文件中包含一系列的图像文件名,这些图像将被随机选作物体的背景。

  背景颜色(目前为灰度图);背景颜色表示透明颜色。因为图像压缩可造成颜色偏差,颜色的容差可以由-bgthresh指定。所有处于bgcolor-bgthresh和bgcolor+bgthresh之间的像素都被设置为透明像素。

  很有用的调试选项。如果指定该选项,每个样本都将被显示。如果按下Esc键,程序将继续创建样本但不再显示。

  创建样本的流程如下: 输入图像沿着三个轴随机旋转。旋转的角度由-max?angle限定。然后像素的亮度值位于 [bg_color-bg_color_threshold;bg_color+bg_color_threshold]范围的像素被设置为透明像素。将白噪声加到前景图像上。如果指定了-inv,那么前景图像的颜色将被翻转。如果指定了-randinv,程序将随机选择是否将颜色进行翻转。任选背景图像,将获得的前景图像放到背景图像上,并将图像调整到-w和-h指定的大小。最后将图像存入vec文件,vec文件名由命令行参数-vec指定。

  正样本也可从一系列事先标记好的图像中创建。标记信息可以存储于一个文本文件,与背景描述文件类似。文件中的每行对应一个图像文件。每行的第一个元素为图像文件名,后面是物体的数目,最后是物体位置和大小的描述 (x, y, width, height)。

  从这样的一系列数据中创建正样本,需要在命令行指定-info而非前面所用的-img参数:

  此部分样本创建过程如下:将物体实例从图像中抠取出,然后将之调整尺寸到目标尺寸,然后保存到输出的vec文件。在此过程中不会对图像进行变形,所以有效的命令行参数仅有-w,-h,-show和-num。

  在训练中,训练程序并不关心包含正样本的vec文件如何生成的,你可以自己写程序来生成vec文件。但是OpenCV提供的工具中,只有opencv_createsamples程序能够创建包含正样本的vec文件。澳门新萄京赌场手机版

  缓存大小,用于存储预先计算的特征值(feature values),单位为MB。

  缓存大小,用于存储预先计算的特征索引(feature indices),单位为MB。内存越大,训练时间越短。

  这个参数仅在使用Haar特征时有效。如果指定这个参数,那么级联分类器将以老的格式存储。

  训练样本的尺寸(单位为像素)。必须跟训练样本创建(使用opencv_createsamples程序创建)时的尺寸保持一致。

  选择训练过程中使用的Haar特征的类型。BASIC只使用右上特征,ALL使用所有右上特征和45度旋转特征。更多细节请参考[Rainer2002]。

  当opencv_traincascade程序训练结束以后,训练好的级联分类器将存储于文件cascade.xml中,这个文件位于-data指定的目录中。这个目录中的其他文件是训练的中间结果,当训练程序被中断后,再重新运行训练程序将读入之前的训练结果,而不需从头重新训练。训练结束后,你可以删除这些中间文件。

网友评论

我的2016年度评论盘点
还没有评论,快来抢沙发吧!