网络介绍
Faster R-CNN详解
在这里插入图片描述
-
卷积层:提取特征
-
RPN(region proposal network):生成候选区域,替换了之前的search selective.
-
ROI Pooling:输入特征提取的map和PRN的proposals
-
分类和回归
-
超详细解读Faster R-CNN-FPN
添加链接描述
捋一捋pytorch官方FasterRCNN代码
目标检测——Faster R-CNN 详解、Pytorch搭建、训练自己的数据集
-
List item
链接汇总
【目标检测算法】Faster RCNN学习笔记
可参考该博主的其他博客
一文整理Faster R-CNN容易混淆的三次anchor筛选机制(creator)
- List item
fasterrcnn中ROI Pooling 与 SPP 理解
bilibili
哔哩哔哩
睿智的目标检测27——Pytorch搭建Faster R-CNN目标检测平台
-
首先将短边resize到600,长款比不变,图像不会失真 M*N
-
共享特征层38381024,相当于把输入的图片划分为38*38个网格,每个网格有9个先验框
-
两个1*1的卷积的预测结果 判断先验框内是否包含物体
-
对先验框进行调整,为建议框
-
9*2(判断先验框是否包含物体,2是背景和物体概率)
-
9*4(4,先验框的调整参数,4个参数确定一个框,获得建议框)
-
两次卷积之后获得建议框
-
建议框和共享特征层结合,传入ROIpooling,根据建议框对共享特征层进行截取
-
建议框获得的大小不是一样的,截取的局部特征层大小不一样,ROIpooling对所有的局部特征层进行分区域的池化,获得的局部特征层大小一样
-
对所有局部特征层进行分类预测和回归预测,回归预测的结果直接对我们的建议框进行调整,获得预测框
-
分类预测的结果判断建议框内部是否包含物体,和种类,获得预测框和种类
-
分类预测的结果建议框是否包含物体,回归预测的结果对建议框进行调整,获得预测框
在特征提取后,获得建议框的过程
1.获得建议框网络预测结果
RegionProposalNetwork()
2.anchor 先验框
generate_anchor_base():
anchor
获得网格中心,并和9个基础先验框进行组合,获得每个网格的9个先验框
feat_stride
原始图片上,每16个像素点会有一个网格
判断先验框是否有物体,并对先验框进行调整,得到建议框
建议框网络的是3838
每个点上的预测结果对应每一个网格,通道数是18(92)和36(9*4)
3.根据建议框网络的预测结果对先验框进行调整
建议框网络的结果:
建议框是物体进行一个初步的筛选
后面的分类对建议框判断是否有物体,并对建议框进行调整
建议框的结果包括两个:先验框的调整参数和得分(判断是否有物体)
ProposalCreator()
4.ROIpooling
将获取到的局部共享特征层分区域,对每个区域进行最大池化,得到2*2的特征图
ROIPool()
得到Faster rcnn14*14区域特征图
共享特征层(1,1024,38,38)–batch,channel,height,weight
rois建议框,300个
roi_indices-建议框序号,300个
将建议框对应到共享特征层上,再传入到ROIpooling,包括共享特征层
传入后的shape
1414–ROIpooling将获取到的局部区域划分为1414的网格,对每个网格进行最大池化
即300个调整大小后的局部共享特征层
– ROIpooling的输出:300个同等大小的局部特征层
进一步对它们进行处理,判断是否包含物体,并进行调整
5.利用ROIpooling的输出进行分类预测和回归预测
–第五次的特征提取,进行分类预测和回归预测–都是针对Proposal建议框的
resnet101 分割为主干部分和classifier部分(对应原始resnet部分第五次压缩的部分-)
进行第五次压缩的处理–分类和回归
(fc7维度30020481*1,因为classider包含最大池化)
预测过程predict.py
归一化并调整维度
放入网络得到三个参数
对三个三个参数进程解码得到预测框
解码过程如下:
利用建议框的调整参数对建议框进行调整得到预测框
判断建议框内的物体和种类
调整过程:loc2bbox
种类选择