老师您好,想问一下关于目标检测的几个问题

来源:6-22 TensorFlow-ssd 模型训练-实操(2)

慕仙9314769

2019-11-14

老师您好,想问一下在您另一套课程的darknet-yolov3学习中遇到的一些问题
现在情况是自己做的数据集,768512的图片下检测3040左右的目标,一个类别,数据量是train55张,test25张,
问题:
1,图片描述
1.1出现大面积Region 82 和 94为-nan,这是什么情况?
1.2这三个代表什么意思,106是对小目标敏感吗?
2,训练的时候前900次迭代obj和no obj一起减小,900次迭代后obj逐渐提高,这是正常情况吗?
3,我在 avg loss下降到0.05的时候停止训练,此时obj和class和iou都接近1,但是测试的时候,没有对测试图片画框,即使测试图片用的是训练数据也没有用,同样检测不出来,把阈值调的很低都没有用,怎么分析是哪个环节出了问题?
4,是不是数据量太少了?

写回答

1回答

会写代码的好厨师

2019-11-18

具体解释下LOG的含义:

Region 82 Avg IOU: 0.759600, Class: 0.809470, Obj: 0.732717, No Obj: 0.002799, .5R: 1.000000, .75R: 0.500000,  count: 4

Region 94 Avg IOU: 0.699416, Class: 0.917663, Obj: 0.226457, No Obj: 0.000643, .5R: 1.000000, .75R: 0.333333,  count: 6

Region 106 Avg IOU: 0.667185, Class: 0.959919, Obj: 0.089371, No Obj: 0.000099, .5R: 1.000000, .75R: 0.000000,  count: 1

以上信息表示三个不同尺度(82, 94, 106)上预测到的不同大小的框的参数.

82 卷积层为最大的预测尺度, 使用较大的 mask, 但是可以预测出较小的物体;

94 卷积层为中间的预测尺度, 使用中等的 mask;

106卷积层为最小的预测尺度, 使用较小的 mask, 可以预测出较大的物体.

上述输出信息的各个参数含义是(主要观察某一个尺度上的参数), 下面就 Region 82 分析:

Region Avg IOU: 0.326577: 表示在当前 subdivision 内的图片的平均 IOU, 代表预测的矩形框和真实目标的交集与并集之比, 这里是 75.96%, 这个模型此时已经达到了很高的训练精度;

Class: 0.809470: 标注物体分类的正确率, 期望该值趋近于1;

Obj: 0.732717: 越接近 1 越好;

No Obj: 0.002799: 期望该值越来越小, 但不为零;

.5R: 1.000000: 是在 recall/count 中定义的, 是当前模型在所有 subdivision 图片中检测出的正样本与实际的正样本的比值。在本例中, 全部的正样本被正确的检测到。 

count: 4: 所有当前 subdivision 图片(本例中一共 8 张)中包含正样本的图片的数量。 在输出 log 中的其他行中, 可以看到其他 subdivision 也有的只含有 6 或 1 个正样本, 说明在 subdivision 中含有不包含在检测对象 classes 中的图片。


再来看你的问题:

1.1 这个直接从LOG中不好观察出来,你可以check一下是否数据标注有问题,配置文件有没有配置正确。在训练你自己的任务之前,最好先跑一个passcal VOC的数据,保证流程是对的。

1.2 看上面这一段话。

1.3 刚开始网络可能会震荡,你这里数据比较少,这个问题可能会比较明显。后面, 

Obj:   越接近 1 越好;

No Obj: 期望该值越来越小, 但不为零;

1.4 如果测试结果不正确,你可以看看你的训练样本预测是不是正确,确保你的网络时收敛的。在收敛的情况下依然预测有问题,就是你的样本太少了。或者测试集训练集差异比较大。这里应该是样本太少了。

1.5 做各种增强来增加样本数量吧,确实太少了,至少得搞个1000张图在测吧。


0
0

Python3+TensorFlow打造人脸识别智能小程序

理论与实战项目双管齐下,让AI技术真正落地应用,适合毕设展示。

1086 学习 · 538 问题

查看课程