概要
现在目标检测网络有采用全卷积结构进行预测的趋势,采用该结构能够1)大幅降低参数数量(全连接参数数量巨大),2)适配任意尺度输入,3)精度上也没有显著降低 等优点。这两天在研究SSH: Single Stage Headless Face Detector, 分析了预测模块中的结构,为什么要将(n,c,w,h)reshape成(n,2,c/2w,h)这一细节,话不多说,进入正题。
简析

以ssh模型架构M1结构为例,检测部分进行了如上图所示的流程。现简要分析如下:
-
假设全卷积网络特征图尺寸是(1,256,3,4)即n,c,h,w.
想在每个cell 两个anchor,总数为3x4=12的尺度上做人脸检测,输出特征图如下所示:
用下面这种方式更清楚:
-
ssh_cls_score卷积输出后feat是(1,4,3,4) 4是2个anchor,按照以下顺序
排序排列数据:两个anchor为负样本(label=0),两个anchor为人脸
的分值,例如第一个cell的anchor数据位置如下:
- 计算softmax是要用数位1和25, 13和37进行,出来的softmax 值sum=1,reshape 之后变成了(1, 2, 6, 4), 然后将softmax axis=1就可以进行以上操作, caffe中默认的axis是1,pytorch中也有相应的维度设计。reshape之后如下:
- 计算softmax之后再reshape回来,后面就可以按照分支进行propsal操作了。
其他
loc偏移由于不用做softmax操作,所以可以直接输出。