改善Haar Vision培训数据结果的一般提示[openCV]

Tab*_*ock 3 opencv computer-vision

使用trainCascade训练类似HAAR的功能.寻求社区的建议,以获得更好的结果.一般来说,什么被认为是一个良好的接受率?

我从一个较小的培训开始,按照此链接作为指南:http://coding-robin.de/2013/07/22/train-your-own-opencv-haar-classifier.html

这是我的数据:

PARAMETERS:
cascadeDirName: classifier
vecFileName: samples.vec
bgFileName: negatives.txt
numPos: 68
numNeg: 436
numStages: 20
precalcValBufSize[Mb] : 3072
precalcIdxBufSize[Mb] : 3072
stageType: BOOST
featureType: HAAR
sampleWidth: 80
sampleHeight: 80
boostType: GAB
minHitRate: 0.999
maxFalseAlarmRate: 0.5
weightTrimRate: 0.95
maxDepth: 1
maxWeakCount: 100
mode: ALL

===== TRAINING 0-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 1
Precalculation time: 296
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|0.0206422|
+----+---------+---------+
END>

===== TRAINING 1-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 0.0810108
Precalculation time: 228
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        1|
+----+---------+---------+
|   3|        1| 0.259174|
+----+---------+---------+
END>

===== TRAINING 2-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 0.0399304
Precalculation time: 279
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        1|
+----+---------+---------+
|   3|        1| 0.155963|
+----+---------+---------+
END>

===== TRAINING 3-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 0.0106487
Precalculation time: 255
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        1|
+----+---------+---------+
|   3|        1| 0.275229|
+----+---------+---------+
END>

===== TRAINING 4-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 0.0031086
Precalculation time: 295
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        1|
+----+---------+---------+
|   3|        1| 0.399083|
+----+---------+---------+
END>

===== TRAINING 5-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 0.00127805
Precalculation time: 282
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        1|
+----+---------+---------+
|   3|        1| 0.389908|
+----+---------+---------+
END>

===== TRAINING 6-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 0.000522627
Precalculation time: 299
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        1|
+----+---------+---------+
|   3|        1| 0.502294|
+----+---------+---------+
|   4|        1| 0.247706|
+----+---------+---------+
END>

===== TRAINING 7-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 0.000149988
Precalculation time: 283
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        1|
+----+---------+---------+
|   3|        1| 0.511468|
+----+---------+---------+
|   4|        1|     0.25|
+----+---------+---------+
END>
===== TRAINING 8-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 4.31894e-05
Precalculation time: 226
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        1|
+----+---------+---------+
|   3|        1| 0.440367|
+----+---------+---------+
END>

===== TRAINING 9-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 2.12363e-05
Precalculation time: 208
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        1|
+----+---------+---------+
|   3|        1| 0.541284|
+----+---------+---------+
|   4|        1| 0.291284|
+----+---------+---------+
END>

===== TRAINING 10-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 7.5647e-06
Precalculation time: 294
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1| 0.451835|
+----+---------+---------+
END>

===== TRAINING 11-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 3.79627e-06
Precalculation time: 226
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1| 0.463303|
+----+---------+---------+
END>

===== TRAINING 12-stage =====
<BEGIN
NEG count : acceptanceRatio    436 : 2.03777e-06
Precalculation time: 184
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1|        1|
+----+---------+---------+
|   3|        1| 0.396789|
+----+---------+---------+
END>

===== TRAINING 13-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 1.06732e-06
Precalculation time: 262
+----+---------+---------+
|  N |    HR   |    FA   |
+----+---------+---------+
|   1|        1|        1|
+----+---------+---------+
|   2|        1| 0.415138|
+----+---------+---------+
END>

===== TRAINING 14-stage =====
<BEGIN
POS count : consumed   68 : 68
NEG count : acceptanceRatio    436 : 6.80241e-07
Required leaf false alarm rate achieved. Branch training terminated.
Run Code Online (Sandbox Code Playgroud)

我发现第7阶段和第8阶段的分类器效果最好,但并不完美.

您发现什么能产生良好的阳性样品?较小的图像?更大的图像?旋转?(我确实旋转了我的阳性样本(90,180和270度).对于负片图像?

有没有人尝试过各种不同等级的图像?例如那些从带有良好图像传感器的相机(如佳能反叛者)拍摄的照片与使用手机照相机拍摄的照相机相比.这会对您的教练产生重大影响吗?

我也相信我犯了一个错误,在训练我的教练找到一个铬物体.我认为它的反射尽管很小,但对它的训练效果有很大的影响.

mar*_*rol 7

根据我基于haar功能的基于训练手掌(探测器)的经验,首先要问自己的是我想要检测的物体是否容易受到haar特征检测的影响.在我解释之前,让我提醒一下haar功能实际上是什么 - 它们只是(或者至少)能够检测到梯度变化特征 - 我的意思是例如任何类型的垂直和水平线组合(单线,两个线之间的线等等) .)是的,基本上就是这样.渐变.如果你考虑一下,一些对象具有这样的特征,即它们中存在某种子结构,这使得它们易于学习对象中存在哪些"存在"特征.例如,人类的脸是最着名的.它有几个关键点可能并且被认为是haar featurtes的存在.这就是我所谓的易受哈尔特征影响的描述.在开始训练分类器之前,你必须回答这个问题.如果答案是否定的,那就不要试图找到另一种解决方案.

例如,我考虑了检测开放手掌姿势.我以为haar方法可以检测到什么样的手势.我认为一种解决方案是用手指张开手掌,笔直,拥挤.由于在彼此接触的手指之间存在额外的"边缘",因此这种简单的技巧导致更好的哈尔检测和学习.所以除了这些边缘.即使背景与肤色相似,边缘也是可见的.我训练了分类器,主要基于手指之间的边缘(因为你不能依赖手的边缘,因为它取决于背景 - 在某些情况下,这些边缘甚至可以消失).我使用了这个命令:

opencv_traincascade -data HAAR -vec samples.vec -bg negative.dat -numStages 20 -minHitRate 0.999 -numPos 700 -numNeg 2500 -w 20 -h 11 -mode ALL -featureType HAAR

如您所见,我使用了700个正样本和2500个负样本.请注意-w和-h参数.这是探测器窗口的大小.来自阳性样本的所有裁剪区域都缩放到此大小,因此请记住,裁剪的区域必须具有相同的宽高比.最后,我成功地创建了一个能够检测特定手势的haar分类器 - 手掌是开放的,笔直的,并且彼此相邻包装.

编辑:您可以在这里查看培训日志.