Linux下用OpenCV制作自己的人脸识别xml文件

(个人认为在Linux上比在Windows上方便)

工具   1. opencv_traincascade

          2. opencv_createsamples

          3. 一台安装Linux系统的电脑

首先你的电脑上要安装OpenCV,如果没有安装终端使用命令sudo apt-get opencv -python安装(我是用Python调用opencv)

安装好了在/usr/bin/下就能找到opencv_traincascade和opencv_createsamples  如何没有可以在https://download.csdn.net/download/crazy696/10846394下载

下面将这两个文件复制到一个新建的文件夹下在这两个文件夹下新建neg,pos,data文件夹

Linux下用OpenCV制作自己的人脸识别xml文件_第1张图片

pos用来存正片(你的脸部图片我这里用的尺寸是20*20)

neg用来存负片(无关的图片尺寸比正片要大尺寸要一样)

data保存生成的XML文件

正负片最好多一点,比例1:4 到1:5比较好

准备好了素材就可以开始了输入命令  

ls ./neg/*.*>neg.txt

ls ./pos/*.*>pos.dat

   

Linux下用OpenCV制作自己的人脸识别xml文件_第2张图片

打开pos.dat用替换加上尺寸等参数 .png  1 0 0 20 20

Linux下用OpenCV制作自己的人脸识别xml文件_第3张图片

然后保存,接下来输入命令 

opencv_createsamples -vec pos.vec -info pos.dat -bg neg.txt -w 20 -h 20

其中-w 20 -h 20是正片的尺寸。

Linux下用OpenCV制作自己的人脸识别xml文件_第4张图片

Linux下用OpenCV制作自己的人脸识别xml文件_第5张图片

生成pos.vec文件,然后输入命令 

opencv_traincascade -data data -vec pos.vec -bg neg.txt -numPos 1000 -numNeg 4500 -numStages 20 -w 20 -h 20 -minHitRate 0.9999 -maxFalseAlarmRate 0.5 -mode ALL

开始训练

-numPos 1000 -numNeg 4500 是正负片的张数

numStages 20是训练的级数,级数越多时间越长但是精度越高,级数尽量多一点不然使用时屏幕上会出现很多框

Linux下用OpenCV制作自己的人脸识别xml文件_第6张图片

接下来就是等待了.......

好了之后就会生成cascade.xml文件和一些中间文件

Linux下用OpenCV制作自己的人脸识别xml文件_第7张图片

接下来就可以去使用自己训练的文件了。

 

你可能感兴趣的:(Python)