opencv训练xml过程中的问题及解决方法

---环境准备---

系统:win10

python版本:python2.7

opencv版本:opencv2.3.1

其他:pip,numpy

1. 先通过pip下载numpy

2. opencv的安装是双击exe无脑安装,选择存放的路径(E:\software\opencv)

3. 关联opencv和python,将(E:\software\opencv\build\python\2.7)下的文件拷贝到(C:\Python27\lib\site-packages)下

4. 管理员权限打开命令行,输入python  >>>import cv2,不报错即为安装成功

---数据准备---

本人是为了通过opencv训练属于自己的xml,所以采样也是自己用手机拍的,拍出来的图片是3062*2062的,所以图片很大,一张都得要1M多,所以需要对数据进行预处理,结果如下:

正样本(预检测物体):500张

负样本(不包含检测物体的背景图):1500张

正负样本:均为 500px * 500px;均为灰度图

新建一个xpider_xml文件夹作为项目根目录,正样本存放在pos/中,负样本存放在neg/中

---准备exe文件---

1. 首先我们需要两个exe文件,分别为:opencv_createsamples.exe 和 opencv_traincascade.exe,这两个文件在我们安装的(E:\software\opencv\build\common\x86)目录下可以找到,复制过来就行

---创建正负样本txt文件---

1. 命令行进入pos/目录,输入以下命令,在pos/下就会生成一个pos.txt文件,将他剪切到根目录

dir /b >pos.txt

2. 然后修改pos.txt中的字符串,达到以下格式

【1 :该样本数目为1;0 0 :表示样本起始坐标;500 500 : 表示样本宽高】

修改方法:将txt文件在sublime中打开,按住鼠标滚轮,往下拖,即可选中当前列;按一下键盘的“END”键,光标即可跳转到字符串尾部

3. neg.txt文件同上,格式稍有不同,最后pos.txt 和 neg.txt如下:

---创建vec文件---

管理员权限命令行进入xpider_xml根目录,输入以下命令(只需对pos正样本进行这步操作,负样本不做处理)

opencv_createsamples.exe -vec pos.vec -info pos.txt -num 500 -w 500 -h 500

-vec : 输出生成的文件路径

-info : 正样本的路径txt文件

-num : 正样本的数量

-w -h : 样本宽高

---报错及解决---

1. 运行以上代码时,报(无法启动此程序,因为计算机丢失opencv_imgpro231.dll)等一系列dll丢失的错误

解决:将包含dll文件的目录(E:\software\opencv\build\x86\vc10\bin),添加到系统环境变量PATH中即可

添加完环境变量后,记得重启命令行

2. 再次运行时,报(无法启动此程序,因为计算机丢失tbb.dll)的错误

解决:找到opencv安装目录(E:\software\opencv\build\common\tbb\ia32\vc10)下的tbb.dll文件,复制到(C:\Windows\SysWOW64)即可

重启命令行

3. 再次运行,成功生成vec文件

---训练生成xml---

管理员权限命令行进入xpider_xml根目录,输入以下命令:

opencv_traincascade.exe -data xml -vec pos.vec -bg neg.txt -numPos 500 -numNeg 1500 -numStages 20 -w 500 -h 500 -minHitRate 0.9999 -maxFalseAlarmRate 0.5 -mode ALL

-data : 存放xml文件的目录

-vec : 正样本vec文件源

-bg : 负样本路径txt文件

-numPos : 正样本数量

-numNeg : 负样本数量

numStages:训练分类器的级数

-w -h : 样本宽高

-minHitRate :分类器的每一级希望得到最小检测率(即正样本被判断有效的比例)

-maxFalseAlarmRate:分类器的每一级希望的最大误检率(负样本判定为正样本的概率)

-mode: 选择训练中使用的Haar特征类型。BASIC只使用右上特征,ALL使用所有右上特征及45度旋转特征

---报错及解决---

运行以上代码时,报(opencv_traincascade.exe已停止工作)(OpenCV Error: Insufficient memory (Failed to allocate 65408 bytes) in unknown function)的错误

这种错误导致的原因是样本太大,机器分配训练的内存不够导致的。

所以我们最初把样本压缩成500px * 500px还是太大了,所以重新再把样本压缩为50px * 50px

---继续训练---

照着上面的步骤,重新生成neg.txt pos.txt pos.vec,再次运行训练的代码,效果如下,顺利进行训练

---报错及解决---

当训练完毕以后,出现以下错误(Parameters can not be written, because file xml\params.xml can not be opened.):

这种错误是根目录下没有xml目录造成的,所以要预先创建一个xml/空目录

后来在另一台机器上训练时,报了( Opencv Error: Unspecified Error(empty Filename) in Unknown Function )的错误,google之后找到了这个答案

说是windows系统出现了错误,导致这种问题的原因有很多,需要对系统进行修复,在链接里有软件的下载地址,不过这个软件要6刀,果断放弃在windows系统训练,回到Linux进行训练,传送门在此。

参考文章:

https://blog.csdn.net/txiaomiao/article/details/64132273

https://blog.csdn.net/wiseclown/article/details/37662897

https://blog.csdn.net/xiaqunfeng123/article/details/32327549

https://blog.csdn.net/beizhengren/article/details/78211799

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,509评论 6 504
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,806评论 3 394
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,875评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,441评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,488评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,365评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,190评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,062评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,500评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,706评论 3 335
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,834评论 1 347
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,559评论 5 345
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,167评论 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,779评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,912评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,958评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,779评论 2 354

推荐阅读更多精彩内容