- 基于fastai的目标检测算法,主要是2018年course
一、mAP计算过程
daveluo的mAP计算代码:https://nbviewer.org/gist/daveluo/2ab83da32e623864e543d7251e9beef4
- input:bbox区间0~1。anchors区间0~1
- 最后的预测宽度那里:只能是anchor的宽度的0.5~1.5倍。所以,最小的目标为:
主要看类别的置信度高不高!
- 主干网络提取特征;检测头进行高级特征组合。主要看这里的特征组合后能不能解释,这个
- 空间位置对应关系得到了保留。那么就指的是整张图,256*21=得到21个类别阈值,这里就是一个线性分类器,每一列就是一个分类器。化为256个特征来表示这一张整图。
——
这里是锚框的所有尺寸: 可以看出,锚框最小的只有个1个,21*21;16个21*21 的最小的锚框。
实际的预测偏移还可以更小,【0.5~1.5】锚框宽度,所以可预测的最小框为10*10。
- 实际,就是在这些锚框的宽高上面,预测0.5~1.5。这样就可以统计一下,实际的锚框预测精度,看真实框到底是多大的,分在了哪个上面。
- 所以可以将clas和bbox分开来看,看bbox的预测精度好不好,如果bbox预测的OK,但是clas不好,就是网络的高级特征提取能力不够用于表达类别。
二、jav0927 基于fastai 1.0
https://github.com/jav0927/course-v3
https://nbviewer.org/github/jav0927/course-v3/blob/master/SSD_Object_Detection.ipynb
- fastai 1.0中,h,w is 2。所以anchor, bbox-gt 都是不一样的。
三、pascal-multi.ipynb
https://nbviewer.org/github/fastai/fastai1/blob/master/courses/dl2/pascal.ipynb