我正在尝试使用 OpenCV 训练级联分类器,a tutorial & UIUC Image Database for Car Detection .但是,训练在第 0 阶段“挂起”并且从不生成任何文件;在本教程中,几分钟后即可看到结果。
我在运行 Yosemite (10.10.5) 的 2015 MBP 上运行我使用 conda 安装的 OpenCV 2.4.8
步骤:
- 下载数据集并将正图像保存在 pos 文件夹中,将负图像保存在 neg 文件夹中
为正面图像生成一个 txt 文件
find pos -iname "*.pgm" > cars.txt
sed -i '' 's/.pgm/.pgm 1 0 0 100 40/g' cars.txt
为底片图像生成一个 txt 文件
find neg -iname "*.pgm" > bg.txt
从 cars.txt 生成一个 vec 文件
opencv_createsamples -info cars.txt -num 550 -w 48 -h 24 -vec cars.vec
创建一个数据
目录
mkdir data
火车级联
opencv_traincascade -data data -vec cars.vec -bg bg.txt -numPos 500 -numNeg 500 -numStages 2 -w 48 -h 24 -featureType LBP
输出:
PARAMETERS:
cascadeDirName: data
vecFileName: cars.vec
bgFileName: bg.txt
numPos: 500
numNeg: 500
numStages: 2
precalcValBufSize[Mb] : 256
precalcIdxBufSize[Mb] : 256
stageType: BOOST
featureType: LBP
sampleWidth: 48
sampleHeight: 24
boostType: GAB
minHitRate: 0.995
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
===== TRAINING 0-stage =====
<BEGIN
POS count : consumed 500 : 500
NEG count : acceptanceRatio 500 : 1
我已经等了几个小时,但训练一直没有进展,也没有在我的 data
目录中生成任何文件。是什么导致了“悬挂”?
不管怎样,我遇到了同样的症状,这让我发疯。 卸载并重新安装 opencv 修复了它。挂起的确切命令突然工作正常。可能是你有一个旧版本的 opencv 像我一样挥之不去:
$ brew uninstall opencv
Uninstalling /usr/local/Cellar/opencv/2.4.12... (225 files, 36M)
opencv 2.4.11_1 is still installed.
Remove them all with `brew uninstall --force opencv`.
$ brew uninstall --force opencv
Uninstalling opencv... (222 files, 35M)
$ brew install opencv --with-tbb
无论如何,需要考虑一些事情。
我是一名优秀的程序员,十分优秀!