一、准备样本阶段
事先准备好正样本和负样本。这里只是先用于做Haar特征训练步骤的熟悉用,所以用opencv写了个程序,主要是做图片的变形处理。如旋转和亮度调节等。当然最后检测的效果指定很不好,这里先作为步骤熟悉来用的。
我们首先取出一幅图片(以交通标志为例),可在网上下载,然后通过程序,在对这幅图片进行亮度调节和旋转后,得到700多张图片(图片格式设置为bmp或jpg)。我们取出其中的245幅图片作为本次的训练正样本。然后通过这个程序,有设置批量生成负样本的功能,总共从一张大图片中随机抠出700张负样本图片。这里,由于是事先用程序写好的,所以,正样本和负样本的大小均为50*50。
程序如下图所示:
这是正负样本的程序截图,最后得到如下的结果:
说明一下,根据网上查到的资料,这里最好用灰度图进行操作,所以最后生成的都是8位深度的灰度图。大小统一为50*50。
二、正负样本样本描述文件的制定
因为这里我们正样本是用程序自写的,所以不用直接在文档里改大小,而没有进行标定,实际上,我们需要用objectmaker进行标定,具体使用可自行上网查。
这里用到的是opencv自带的一个程序,叫做opencv_createsamples.exe,具体在opencv下的bin里。
把上面的pos和neg文件夹里的正负样本,还有opencv里opencv_createsamples.exe放到