·主干网络:VGGNet
·多尺度FeatureMap预测
·Defaul bounding boxes的类别分数、偏移量
主干网络介绍:
- VGG、ResNet、MobileNets等,各种卷积神经网络
- 将VGG最后两个FC改成卷积,并增加4个卷积层:(因为原始的网络是处理分类任务,而目标检测不需要)
多尺度FeatureMap预测:
- 不同层的feature map
- Prior box:类别概率和坐标(x,y,w,h)
PriorBoxLayer:
- m*n个cell(feature map上的每个点都作为一个cell)
- 每个cell上生成固定scale和aspect ratio的box:
- 假设一个feature map有m×n个cell, 每个cell对应k个default box;每个default box预测c个类别score和4个offset
- (c+4) *k*m*n个输出
看一下prior box是如何生成的:
shape数量越多,效果越好
38*38*4+19*19*6+10*10*6+5*5*6+3*3*4 +1*1*4=8732个prior box(具体会在配置文件中进行配置)
- 每一个feature map cell不是k个defaoult box都取
- prior box与GT box做匹配,IOU>阈值为正样本,IOU<负样本阈值为负样本,对于处于中间阈值的样本可以忽略掉
- 训练:确保prior box的分类准确且尽可能回归到GT box
样本构造:
正样本:
从GT box出发给找到最匹配的prior box放入候选正样本集
从prior box集出发,寻找与GT box满足IOU>0.5的最大prior box放入候选正样本集
负样本:
难例挖掘
正负样本比:1:3(IOU<设定的阈值为负样本)
通过下面的过程就能讲loss较高的样本挖掘出来。
数据增强:
- 随机采样多个path,与物体之间最小的jaccard overlap(IOU)为:0.1 ,0.3,0.5,0.7与0.9
- 采样的patch比例是[0.3,1.0],aspect ratio在0.5或2
- GT box 中心在采样patch中且面积大于0
- Resize到固定大小
- 以0.5的概率随机的水平翻转
损失函数:
- 分类loss+回归loss
- 分类loss: Softmax Loss
- 回归损失:Smooth L1 Loss