opencv createsamples 没有错误,但是没有找到样本

use*_*627 2 opencv image-processing computer-vision training-data sample-data

我正在使用教程,并且正在从我的正面图像创建大量样本。我正在使用 Windows。

这是命令:

perl bin/createsamples.pl positives.txt negatives.txt samples 1500\  "C:\opencv_built\bin\Release\opencv_createsamples.exe -bgcolor 0 -bgthresh 0 -maxxangle 1.1\   -maxyangle 1.1 maxzangle 0.5 -maxidev 40 -w 80 -h 40"
Run Code Online (Sandbox Code Playgroud)

对于每个正面图像,这就是我得到的输出:

C:\opencv_built\bin\Release\opencv_createsamples.exe -bgcolor 0 -bgthresh 0 -max
xangle 1.1\   -maxyangle 1.1 maxzangle 0.5 -maxidev 40 -w 80 -h 40 -img 60inclin
ation_315azimuth.jpg -bg tmp -vec samples0inclination_315azimuth.jpg.vec -num 62

Info file name: (NULL)
Img file name: 60inclination_315azimuth.jpg
Vec file name: samples0inclination_315azimuth.jpg.vec
BG  file name: tmp
Num: 62
BG color: 0
BG threshold: 0
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: 80
Height: 40
Create training samples from single image applying distortions...
Done
Run Code Online (Sandbox Code Playgroud)

消息似乎成功,所以我进入示例文件夹,希望看到 1500 个示例,但那里什么也没有!我注意到信息文件是<NULL>,这与此有关吗?似乎没有任何错误,出了什么问题?

编辑

我已更改命令以包含所有内容的绝对路径,例如

perl bin/createsamples.pl C:\my_work\code\opencv-haar-classifier-training-master\positive_images\ C:\my_work\code\opencv-haar-classifier-training-master\positive_images\ samples 1500\  "C:\opencv_built\bin\Release\opencv_createsamples.exe -bgcolor 0 -bgthresh 0 -maxxangle 1.1\   -maxyangle 1.1 maxzangle 0.5 -maxidev 40 -w 80 -h 40"
Run Code Online (Sandbox Code Playgroud)

但仍然没有运气!

小智 5

我遇到了类似的问题,我会尝试解释我所做的,希望它能解决您的问题。

首先 -info 之后的 NULL 是正常的。正如 OpenCV 的 opencv_createcamples 官方文档中所述,您需要输入图像(-img)或图像集合(-info),我会让您阅读文档以进一步了解,但对于此示例,您不需要需要它。

其次,您不需要在此命令中放置绝对路径;这是我的命令:

perl bin/createsamples.pl  positives.txt negatives.txt samples 1500 "opencv_createsamples -bgcolor 0 -bgthresh 0 -maxxangle 1.1 -maxyangle 1.1 -maxzangle 0.5 -maxidev 40 -w 42 -h 40"
Run Code Online (Sandbox Code Playgroud)

要做到这一点,请确保位于您下载的 gitHub 目录的根目录(bin 的父目录),确保您的 positives.txt 和 negatives。txt 就在这个目录下。还要将 OpenCV 目录中的 opencv_createsamples.exe 复制粘贴到该目录中。

完成后,我现在将解释主要问题:该项目一开始是为 Ubuntu 开发的,因此它很容易在 mac 上运行,但我认为您必须在 Windows 下。如果您还没有,请下载 Cygwin,因为它主要使用 Linux 命令。

正如我所说,我遇到了类似的问题,所以我尝试直接使用 opencv_createsample 而不是 perl 脚本来查看问题是否来自那里,我注意到问题来自于我的 positives.txt 和 negatives .txt 使用的是 Windows 格式而不是 Unix,因此 Perl 脚本无法正确读取它们

windows 和 linux 之间的差异很大,而 Cygwin 并没有弥合差距,因此可能存在其他编码问题。所以我所做的肯定不是解决问题的最快方法,但它是一个简单的方法。

我刚刚在我的 PC 上安装了一个 Ubuntu 虚拟机

使用 TBB 安装 Opencv(互联网上有很多教程,最好的是来自OpenCV 站点的教程)。

我下载了 gitHub分类器培训,然后按照给出的命令进行操作,效果很好。