opencv - haar人脸特征的训练
2016-01-29 16:11
531 查看
step 1: 把正样品,负样品,opencv_createsamples,opencv_haartraining放到一个文件夹下面,利于后面的运行。
step 2: 生成正负样品的描述文件
正样品描述文件
find positive_boosted -iname "*.bmp" -exec echo \{\} 1 0 0 20 20 \; > face.info
生成
positive_boosted/face00244.bmp 1 0 0 20 20
positive_boosted/face00177.bmp 1 0 0 20 20
positive_boosted/face01533.bmp 1 0 0 20 20
positive_boosted/face01542.bmp 1 0 0 20 20
positive_boosted/face00733.bmp 1 0 0 20 20
positive_boosted/face01708.bmp 1 0 0 20 20
positive_boosted/face01625.bmp 1 0 0 20 20
其中的pos_image/是相对路径名,后面紧接着的是文件名,1代表一个文件,0 0 24 24表示这个文件的2个顶点位置坐标。保存退出即ok。
负样品描述文件
find negative_boosted -iname *.bmp > non_face.txt
生成
negative_boosted/face01542.bmp
negative_boosted/face00733.bmp
negative_boosted/face01708.bmp
negative_boosted/face01625.bmp
step 3: 生成vec文件
opencv_createsamples -vec face.vec -info face.txt -bg non_face.txt -w 20 -h 20 -num 2429
其中的-vec是指定后面输出vec文件的文件名,-info指定正样本描述文件,-bg指定负样本描述文件,-w和-h分别指正样本的宽和高,-num表示正样本的个数。执行完该命令后就会在当前目录下生产一个face.vec文件了。
step 4: 开始训练
首先在当前目录下新建一个xml文件夹用于存放生成的.xml文件。
opencv_haartraining -data xml -vec face.vec -bg non_face.txt -npos 500 -nneg 500 -w 20 -h 20 -nstages 20 -nsplits 2 -minhitrate 0.999 -maxfalsealarm 0.5
opencv_traincascade (新的命令)
其中
-data为输出xml中间文件的位置;
-vec 正样品文件名
-bg 负样本文件名
-nsplits 1表示使用简单的stump classfier分类。
-mode (default|all) all表示使用haar特征集的种类既有垂直的,又有45度角旋转的; default只是垂直的.
-npos 正样本数
-nneg 负样本
-minhitrate 最小命中率,即训练目标准确度。
-maxfalsealarm最大虚警(误检率),每一层训练到这个值小于0.5时训练结束,进入下一层训练
在实际训练时,为了节约时间,调小了npos,nneg
会产生xml.xml文件,可以利用所得到的分类器进行测试了。
step 5: 合并训练所产生的xml文件
生成多个
step 2: 生成正负样品的描述文件
正样品描述文件
find positive_boosted -iname "*.bmp" -exec echo \{\} 1 0 0 20 20 \; > face.info
生成
positive_boosted/face00244.bmp 1 0 0 20 20
positive_boosted/face00177.bmp 1 0 0 20 20
positive_boosted/face01533.bmp 1 0 0 20 20
positive_boosted/face01542.bmp 1 0 0 20 20
positive_boosted/face00733.bmp 1 0 0 20 20
positive_boosted/face01708.bmp 1 0 0 20 20
positive_boosted/face01625.bmp 1 0 0 20 20
其中的pos_image/是相对路径名,后面紧接着的是文件名,1代表一个文件,0 0 24 24表示这个文件的2个顶点位置坐标。保存退出即ok。
负样品描述文件
find negative_boosted -iname *.bmp > non_face.txt
生成
negative_boosted/face01542.bmp
negative_boosted/face00733.bmp
negative_boosted/face01708.bmp
negative_boosted/face01625.bmp
step 3: 生成vec文件
opencv_createsamples -vec face.vec -info face.txt -bg non_face.txt -w 20 -h 20 -num 2429
其中的-vec是指定后面输出vec文件的文件名,-info指定正样本描述文件,-bg指定负样本描述文件,-w和-h分别指正样本的宽和高,-num表示正样本的个数。执行完该命令后就会在当前目录下生产一个face.vec文件了。
step 4: 开始训练
首先在当前目录下新建一个xml文件夹用于存放生成的.xml文件。
opencv_haartraining -data xml -vec face.vec -bg non_face.txt -npos 500 -nneg 500 -w 20 -h 20 -nstages 20 -nsplits 2 -minhitrate 0.999 -maxfalsealarm 0.5
opencv_traincascade (新的命令)
其中
-data为输出xml中间文件的位置;
-vec 正样品文件名
-bg 负样本文件名
-nsplits 1表示使用简单的stump classfier分类。
-mode (default|all) all表示使用haar特征集的种类既有垂直的,又有45度角旋转的; default只是垂直的.
-npos 正样本数
-nneg 负样本
-minhitrate 最小命中率,即训练目标准确度。
-maxfalsealarm最大虚警(误检率),每一层训练到这个值小于0.5时训练结束,进入下一层训练
在实际训练时,为了节约时间,调小了npos,nneg
会产生xml.xml文件,可以利用所得到的分类器进行测试了。
step 5: 合并训练所产生的xml文件
生成多个
相关文章推荐
- linux下搭建vsftp,并使自动作业上传文件到ftp
- 在centos7/ubuntu15.04 上通过bosh-lite 搭建单机环境Cloud Foundry
- 鸟哥私房菜大二暑假
- 在Linux(CentOS)上打包应用程序RPM
- Xcode遇到couldn’t be opened because you don’t have permission to view it.解决方法
- Apache Spark Jobs 性能调优(二)
- tomcat+jenks环境自动部署脚本
- linux命令-mv
- 2016-1-29linux基础学习2
- Maven+Spring+MVC结构中,jetty/tomcat是如何启动项目的
- Linux rpm 命令参数使用详解[介绍和应用]
- linux串口类
- ARM Linux 更新启动画面
- 网站压力测试工具 Webbench
- 1.property之 self.xx与_xx的区别
- opencv 霍夫变换检测直线中pt1、pt2点的确定
- linux命令-rm
- Linux之dd命令详解
- 如何设置Apache中的最大连接数
- LINUX0.11内核阅读笔记