获得训练集和XML通过opencv自带程序opencv_createsamples.exe&opencv_traincascade.exe的问题

        情况是这样的,我想使用opencv的级联分类器创建自己的训练文件*.XML,用于检测图像中的细胞。

        看过opencv介绍的ml学习的大伙们也一定了解最终获得xml文件是关键,这是官方ml,还不了解的可以看看:http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/tutorials/ml/table_of_content_ml/table_of_content_ml.html#table-of-content-ml

       下面这篇文章并不是教程而是一些在制作过程中我自己遇到的一些问题,如果想获得详细教程关于“通过《opencv_createsamples.exe&opencv_traincascade.exe获得训练xml文件》,可以参见这位博主的文章,感觉不错,通俗易懂。地址:http://blog.csdn.net/wuxiaoyao12/article/details/39227189

       我的系统:Win10

       我的opencv版本:3.2.0 地址:http://opencv.org/releases.html版本:3.2.0 下的Win pack

       我的VS版本:vs2015


       问题一:我原先是想在Eclipse环境中,通过使用APP编程来实现获得训练xml文件的,但是实际这有难度。在SVM.save("classify.xml")方法时报错:Fatal signal 11 (SIGSEGV) at 0xdead000 (code=1),这个在我查看源码之后发现,原来在Algorithm下的save方法在C++的源代码中是虚函数,然而在SVM(包括Statmodel类)中并没有实现这一方法,导致这个方法不可用。只有在FaceRecognizer类中才实现了save这个方法,然而我用不到。其实我是这样理解的,本身Android平台系统资源本身就有限,而想如这种训练并保存的操作很容易有内存泄漏的危险,所以他去实现这个功能想来也是有原因的。

       随即我就开始另外一种尝试,使用opencv自带程序opencv_createsamples.exe&opencv_traincascade.exe来获得训练集和训练xml文件。

       一开始我的电脑是没有VS和Opencv的,所以问题就来了

       问题二:从哪里找到opencv_createsamples.exe

我曾经百度过,也有人在CSDN发过免费链接下载,在此先谢过。实际是不用找的,下载opencv的任意一个版本的win pack包并安装,电脑:\你的opencv安装路径\opencv\build\x64\vc14\bin中,你就能看到该版本的opencv_createsamples.exe等程序了。ps:路径不是绝对的因版本而异,自己可以搜索嘛。


       问题三:你所找到的bin下所有的文件都是可以单独拷贝出来到别的任何地方,不用担心路径问题,但是复制那些文件一定要一起,最好别丢下什么文件(特别是*.dll的文件)比如你天真的以为只要opencv_createsamples.exe&opencv_traincascade.exe这两个文件就OK,那你就大错特错了。然后你就会遇到像如这样的问题(抱歉我忘记截图)

--------->无法启动程序,因为计算机中丢失opencv_core249d.dll,巴拉巴拉的(当然这个*.dll文件会提示好多,几乎都是关于opencv的dll文件)

所以说哪个版本的Opencv的bin里要移动就一起移动,包括*.dll文件

       问题四:当你准备用上述这些东西开始创建样本时(即使用opencv_createsamples.exe程序制作样本),你就会遇到这样的问题

--------->无法启动程序,因为计算机中丢失MSVCP140.dll巴拉巴拉的

那是因为你没有这些文件,你应该安装对应版本的VS。因为我的路径中是vc14对应vs2015.所以就去下了一个。

关于版本的问题大家可以看这里http://blog.csdn.net/hellokandy/article/details/53379724找对应的版本Vs下载。这里就不贴下载地址了。这里我觉得没必要贪图省事,就去费半天劲去找齐这些*.dll文件,谁知道还会不会提示你缺少别的*.dll文件呢(反正我没这么干)

       问题五:当然如果你是通过vs进行开发opencv的同志,完全可以忽略上一条和这一条因为你已经安装了,我说的情况是针对不是用vs开发opencv,只是想用这个制作训练xml文件的同志

vs安装过程有些长,要有心理准备。

在安装选项中,我选择自定义安装,也只是安装了“编程语言”下的vc++选项,其他都没有安装。亲测可用。

待你安装vs完毕,不需要打开,也不需要进行vs环境下opencv的配置,然后恭喜你可以开始用opencv_createsamples.exe&opencv_traincascade.exe来制作训练集和训练xml文件了。

       问题六:我就说说在使用这两个程序时我自己遇到的问题

-------->OpenCV Error: Unknown error code -9 () in cvSetImageROI /opencv/src/cxcore/cxarray.cpp,

这是我在生成正样本时出现的,原因是他没有找到文件(我原来图片是.jpg格式,但实际人家需要的是bmp)。解决办法:当然是把文件通过画图程序然后另存为为bmp喽。我也在想能不能写一个程序根据文件索引将图片转换成bmp格式。等我写好传上来。感谢:http://blog.csdn.net/tracyliang223/article/details/17026101

--------->Train dataset for temp stage can not be filled. Branch training terminated. Cascade classifier can't be trained. Check the used training parameters.

这是因为在命令行中   -bg 这里的参数不能带有路径。解决办法:将负样本图片和负样本数据.dat移动到opencv_createsamples.exe&opencv_traincascade.exe所在的文件夹中,并在参数 -bg 后去掉路径 ex: -bg neg.dat感谢:http://blog.csdn.net/ada_1215/article/details/55259458?locationNum=15&fps=1

--------->如果出现“Parameters can not be written, because file data/params.xml can not be opened” 错误,则自己需要手动创建一个文件夹 data(这个文件夹名字根据你-data后面参数而定)

        Good Luck To You All.

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值