尝试使用opencv_createsamples

问题描述

我正在尝试训练级联以检测面部。我有31张带有面孔的图片,并且使用了opencv_annotation工具生成-info文件。该文件如下所示:

1 positiveImages/0.jpg 1 546 289 70 96
2 positiveImages/1.jpg 1 542 325 105 106
3 positiveImages/10.jpg 1 98 289 138 119
4 positiveImages/11.jpg 1 284 303 204 189
5 positiveImages/12.jpg 3 415 279 70 97 484 320 75 87 624 374 76 132
...

此后,我尝试使用opencv_createsamples工具生成.vec-文件,用于训练级联。这是我使用的命令:

opencv_createsamples -info file.txt -bg negatives.txt -vec cropped.vec -num 1920 -w 48 -h 48

这给我以下输出错误

Info file name: file.txt
Img file name: (NULL)
Vec file name: cropped.vec
BG  file name: negatives.txt
Num: 1920
BG color: 0
BG threshold: 80
Invert: FALSE
Max intensity deviation: 40
Max x angle: 1.1
Max y angle: 1.1
Max z angle: 0.5
Show samples: FALSE
Width: 48
Height: 48
Create training samples from images collection...
OpenCV Error: Assertion Failed (ssize.area() > 0) in resize,file /home/travis/miniconda/conda-bld/conda_1486587069159/work/opencv-3.1.0/modules/imgproc/src/imgwarp.cpp,line 3229
terminate called after throwing an instance of 'cv::Exception'
  what():  /home/travis/miniconda/conda-bld/conda_1486587069159/work/opencv-3.1.0/modules/imgproc/src/imgwarp.cpp:3229: error: (-215) ssize.area() > 0 in function resize

Aborted (core dumped)

据我所知,此错误想告诉我没有图像,对吗?我不知道为什么会这样。 file.txt似乎还可以,它具有用于图像等的正确路径。我们将不胜感激任何建议。

编辑。想知道是否有更好的方法来训练级联,例如使用几千张人脸图片和几千张没有人脸且不使用注释工具的图片?如果正像被裁剪为仅包含脸部,我可以以某种方式使用这两个文件夹进行训练吗?

编辑。我的文件夹结构是这样的:

/negativeImages
/positiveImages
file.txt
negatives.txt

我正在从根目录运行opencv_createsamples

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...