1. 训练需要的
训练需要人脸图形(要求是灰度图像,大小统一)以及不包含人脸的若干图像(灰度图像,大小可以不统一但是要比人脸的图像要大)。将人脸放在pos文件夹中,其他放在neg文件夹中。所有pos的图像大小必须要相同,neg中的图像的尺寸大小要比pos中的大
训练需要opencv_createsamples.exe来将人脸图像生成pos.vec文件,还需要opencv_traincascade.exe来进行训练。opencv_traincascade.exe封装了训练的方法,直接使用进行训练即可。
在最新的opencv 4.1.0.25中,并没有找到这两个文件。在网上找了好久也没见着。看了博客说是低版本里可以直接找到这两个文件,于是去官网下载了一个低版本的opencv 3.4.6.解压后在E:\vs\opencv3.4\opencv\build\x64\vc15\bin
目录中成功找到需要的opencv_createsamples.exe和opencv_traincascade.exe。
将opencv_createsamples.exe和opencv_traincascade.exe还有opencv_world346.dll拷贝到桌面的data文件夹中。
注意:除了我们需要的opencv_createsamples.exe和opencv_traincascade.exe以外,opencv_world346.dll也需要一同拷贝过去。否则在用opencv_createsamples.exe来将人脸图像生成pos.vec文件的时候会报错。
2. 将人脸pos图片生成pos.vec
win+R打开cmd控制台,cd到桌面的data目录下,然后输入如下: