


Feature Maps[bs,1024,38,38]经过3*3卷积,然后分别经过两个1*1的卷积,通道数分别为18,36
18 = 9*2 代表每个位置9个先验框为背景和目标的概率
36 = 9*4 代表每个位置9个先验框的坐标调整参数(Faster Rcnn也是有先验框的)
先验框 + 位置调整参数 = 建议框
建议框的初筛
由于建议框非常多,要对建议框进行初筛,先根据建议框是目标的分数,选出得分最高的前K个建议框,再进行NMS,然后再选出得分最高的前K个建议框。如一张照片有300个建议框。
根据建议框的参数,在Feature Map上裁剪出对应特征,比如[1024,82,79],每个特征的大小是不一样的。
ROI Pooling 该层有两个输入:
输出特征为[bs,k,1024,14,14],其中k为一张图片有k个建议框,14 * 14为pooling后的大小
eg:
如feature maps [1024,8,8],一号建议框坐标[0,3,7,8,1],其中(0,3),(7,8)左下角坐标和右上角坐标,输出为2 * 2



参考视频:[快速学懂]ROI pooling 和ROI align_哔哩哔哩_bilibili
实际得到的建议框往往不是整数,即上图绿色框。(网格的像素值在网格左上角顶点)
将实际顶点对其到离他最近整数节点
如Roi 后的图像大小为K * K(将特征缩放为K * K)
首先将建议框划分为 K * K个区域,每个区域选择4个采样点,利用双线性插值求出采样点的像素,最后对该4个像素平局池化,即得到此区域的像素
RoI pooling后的输出特征[bs,k,1024,14,14] ,经过全局平局池化[bs,k,1024],然后经过两个线性层
nn.Linear(1024, n_class) 进行类别预测, nn.Linear(1024, n_class * 4) 进行坐标回归预测。