opencv中xml文件的制作

来源:互联网 发布:直播点歌软件 编辑:程序博客网 时间:2024/05/22 07:44

1、创建pos_image、 neg_image文件夹于RedGreenLamp下。

2、将opencv_createsamples.exe和opencv_haartraining拷贝到RedGreenLamp下。

3、在cmd中进入RedGreenLamp目录:C:\Users\wyz\Desktop\c++\1\RedGreenLamp>cd C:\Users\wyz\Desktop\c++\1\RedGreenLamp,然后C:\Users\wyz\Desktop\c++\1\RedGreenLamp>opencv_createsamples.exe -vec pos.vec -info pos_image.txt -bg neg_image.txt -w 24 -h 24 -num 999

C:\Users\wyz\Desktop\c++\1\RedGreenLamp>opencv_haartraining.exe -data xml -vec pos.vec -bg neg_image.txt -nstage 5 -nsplits 1 -npos 600 -nneg1500 -w 24 -h 24 -mem 1024 -mode all

(以下转自http://www.cnblogs.com/qqhfeng/p/3634892.html)

openv有两个训练exe,一个是opencv_haartraining.exe,一个是opencv_traincascade.exe,后者是前者的新版本,一般我们都使用后者,或者有三个特征:HAAR、HOG、LBP,cascade训练,如果你的opencv么有opencv_traincascade.exe,你可以自重新编译一遍,就会生成opencv_traincascade.exe,(cmake是从新编译opencv的神器哦,还有记得把对应的opencv lib和opencv_traincascade.exe放在一起哦)。不得不提的是opencv_createsamples.exe.这个是用来生成正样本vec的。

 这两个exe的 的bat如下:

opencv_createsamples.exe -info name763.dat -vec zhengmian_763.vec -num 763 -w 50 -h 55

opencv_traincascade.exe -data DATAHOG -vec 763.vec -bg negname.dat -numPos 700 -numNeg 2100 -featureType HOG -w 50 -h 55 -numStages 20

好吧,具体命令什么的有很多人都讲过了。这里不啰嗦了。讲一下我实战出来的注意事项吧:

1 关于正样本,首先正样本不是有些人说的,你实际有300个正样本,在traincascade的时候可以写成3000的,这种思路是没有用的。在采集正样本的时候你一定要注意保持所有样本宽高比大致相同,如果你自己截图,推荐使用光影魔术手。或者牛逼的你自己写个gui截图工具。为了避免出现opencv error,在用opencv_traincascade.exe的时候,-numPos要稍微低于实际的正样本数目,比如你有2100个你就可以将numpos设为1900-2000,

2  无论正样本负样本,图片命名时不要用特殊字符,你就规规矩矩的命名pos1.jpg 。。。。。等等,特殊字符包括(),会出现opencv error,或者无法识别。

3 正负样本比例1:2.5~1:3,曾经有篇文章中说,为了减小false positive ,可以加大负样本数目。

4 当出现内存不够的情况时,有几种方法:1 你可以在64为pc上跑,2 减小正负样本的数目。3 减小正样本的宽高。

       经验之谈,不善之处,多提意见。


原创粉丝点击