使用opencv_haartraining.exe做样本训练死循环无法生成.xml文件的解决办法--convert_cascade.exe
2016-09-16 21:20
591 查看
使用opencv_haartraining.exe做样本训练时,会出现陷入死循环无法生成.xml文件这种情况。 如下图所示
训练到第八层之后再也没有反应了。 这是由于FA值已经达到0, 没有负样本能够进入下一层进行训练了。
解决方案之一是增加负样本的数量。
或者用convert_cascade.exe 生成xml文件。因为此时各层的训练信息已经有了,FA值达到0 也说明训练结果可用。 同样适用于FA值已经很低,而下一层的训练时间过长不想等待的情况。
convert_cascade.exe的使用格式如下。
convert_cascade.exe --size="<sample_width>x<sampe_height>" <haartraining_ouput_dir> <ouput_file>
例如:
convert_cascade.exe 位于D:\Training
文件夹下,正样本大小20*20像素, 0-8 层的训练结果(上图)位于D:\Training\cascade下, 输出结果希望在D:\Training\cascade\result 下
cmd中运行下面的命令
cd D:\Training
convert_cascade.exe
--size="20x20" D:\Training\cascade D:\CE-5\Training\cascade\haar_adaboost.xml
haar_adaboost.xml即为最后的训练结果。
convert_cascade.exe 在哪里找?
我在opencv的库里没有找到这个程序,于是在网上找到了源码,自己编译运行得到了exe程序, 源码如下,建一个工程并配置好opencv,把代码粘进工程运行即可。或者下载我编译好的: http://download.csdn.net/download/u010603823/9631703
(没有币可以留言或私信邮箱,我给你发)。
如有错误欢迎批评指正
训练到第八层之后再也没有反应了。 这是由于FA值已经达到0, 没有负样本能够进入下一层进行训练了。
解决方案之一是增加负样本的数量。
或者用convert_cascade.exe 生成xml文件。因为此时各层的训练信息已经有了,FA值达到0 也说明训练结果可用。 同样适用于FA值已经很低,而下一层的训练时间过长不想等待的情况。
convert_cascade.exe的使用格式如下。
convert_cascade.exe --size="<sample_width>x<sampe_height>" <haartraining_ouput_dir> <ouput_file>
例如:
convert_cascade.exe 位于D:\Training
文件夹下,正样本大小20*20像素, 0-8 层的训练结果(上图)位于D:\Training\cascade下, 输出结果希望在D:\Training\cascade\result 下
cmd中运行下面的命令
cd D:\Training
convert_cascade.exe
--size="20x20" D:\Training\cascade D:\CE-5\Training\cascade\haar_adaboost.xml
haar_adaboost.xml即为最后的训练结果。
convert_cascade.exe 在哪里找?
我在opencv的库里没有找到这个程序,于是在网上找到了源码,自己编译运行得到了exe程序, 源码如下,建一个工程并配置好opencv,把代码粘进工程运行即可。或者下载我编译好的: http://download.csdn.net/download/u010603823/9631703
(没有币可以留言或私信邮箱,我给你发)。
如有错误欢迎批评指正
#include "opencv2/objdetect/objdetect.hpp" #include "opencv2/highgui/highgui.hpp" #include <ctype.h> #include <stdio.h> void help() { printf("\n This sample demonstrates cascade's convertation \n" "Usage:\n" "./convert_cascade --size=\"<width>x<height>\"<convertation size> \n" " input_cascade_path \n" " output_cascade_filename\n" "Example: \n" "./convert_cascade --size=640x480 ../../opencv/data/haarcascades/haarcascade_eye.xml ../../opencv/data/haarcascades/test_cascade.xml \n" ); } int main( int argc, char** argv ) { const char* size_opt = "--size="; char comment[1024]; CvHaarClassifierCascade* cascade = 0; CvSize size; help(); if( argc != 4 || strncmp( argv[1], size_opt, strlen(size_opt) ) != 0 ) { help(); return -1; } sscanf( argv[1], "--size=%ux%u", &size.width, &size.height ); cascade = cvLoadHaarClassifierCascade( argv[2], size ); if( !cascade ) { fprintf( stderr, "Input cascade could not be found/opened\n" ); return -1; } sprintf( comment, "Automatically converted from %s, window size = %dx%d", argv[2], size.width, size.height ); cvSave( argv[3], cascade, 0, comment, cvAttrList(0,0) ); return 0; } #ifdef _EiC main(1,"facedetect.c"); #endif
相关文章推荐
- 解决adobe air sdk打包 apk后自动在包名前面加上air. (有个点)前缀的问题
- [CF717E]Paint it really, really dark gray(dfs,构造)
- [Leetcode] Climbing Stairs
- [Leetcode] Contains Duplicate
- 70. Climbing Stairs
- 2013 Multi-University Training Contest 4 Group(离线+BIT)
- reflow和repaint
- 20162017-ct-s03e02-codeforces-trainings-season-3-episode-2-en-A HHPaint
- Born Again
- 文章标题 Gym100791G:repair
- 20162017-ct-s03e02-codeforces-trainings-season-3-episode-2-en-I Painting the natural numbers
- Easy 217题 Contains Duplicate
- hdu4576 Install Air Conditioning(最小生成树+树型dp)
- ssh secure shell连接linux报 algorithm negotiation failed的解决方法
- Leetcode: Find K Pairs with Smallest Sums
- Windows Server 2008 64位如何配置Jmail发送邮件
- Could not generate DH keypair 解决方案
- LeetCode 11. Container With Most Water
- 五子棋基础算法及胜利判定算法(无AI)
- hdu5758 2016 Multi-University Training Contest 3 Explorer Bo 解题报告