opencv - OpenCV 中训练有素的级联

标签 opencv object-detection object-recognition haar-classifier cascade-classifier

我无法正确训练分类器。当我使用生成的 cascade.xml 时,无法识别对象。相反,对象的某些部分是。

训练的命令行是这样的:

opencv_traincascade -data data -vec samples.vec -bg negatives.txt -numPos 200 -numNeg 100 -numStages 13 -w 80 -h 80 -featureType LBP -minHitRate 0.999 -maxFalseAlarmRate 0.5

虽然训练输出看起来像这样:

===== TRAINING 10-stage =====
<BEGIN
POS count : consumed   200 : 200
NEG count : acceptanceRatio    100 : 0.00586029
Precalculation time: 2
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|     0.09|
+----+---------+---------+
END>
Training until now has taken 0 days 0 hours 6 minutes 9 seconds.

===== TRAINING 11-stage =====
<BEGIN
POS count : consumed   200 : 200
NEG count : acceptanceRatio    100 : 0.00724585
Precalculation time: 3
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|     0.09|
+----+---------+---------+
END>
Training until now has taken 0 days 0 hours 6 minutes 49 seconds.

===== TRAINING 12-stage =====
<BEGIN

当我用它来检测我的物体时(在我的例子中,物体是方向盘),结果是: enter image description here enter image description here

最佳答案

对于尺寸为 80x80 的图像,您使用的图像太少作为样本。 我会最小化图像的尺寸,同时添加更多样本。 另一件事是负面形象的集合。你用什么作为负样本?尝试通过添加错误检测 block 来扩大负片图像集。

关于opencv - OpenCV 中训练有素的级联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27196407/

相关文章:

python - conda 安装失败,即使我通过 conda 信息包找到了包

python - 移除边界框轮廓

tensorflow - 如何在 tensorflow 对象检测中仅获取特定类别的框

android - AR Android应用程序的3D对象识别

opencv - 如何从 haar 分类器检测到的图像中识别数字

python - 使用 Python 导入 o​​pencv

python - 使用 python 对图像执行 CLAHE 时出错 (-215)

python - 如何减少 Tensorflow 的 Object Detection API 中的训练步骤?

python-3.x - 解决:AttributeError: module 'tensorflow' has no attribute 'app'

opencv - 用旋转的 Gabor 核过滤的图像差异很大