fasterRCNN理论笔记

RCNN:

生成候选框、 ss 算法得到两千个候选框,就要进行两千次正向传播

使用深度网络提取特征

把提取出来的特征放入分类器,进行分类

使用回归器精细修正候选框位置

什么是IoU (Intersection over Union)全称交并比

表示(A交B) /(A并B)

分类的过程中:非极大值抑制剔除重叠建议框:

寻找得分最高的目标--然后计算其他目标与该目标的iou 值,如果他们的iou值大于给定值,就把该目标删除,到最后只留下这个得分最高的目标

在分类的步骤,用该方法(非极大值抑制剔除重叠建议框:)就可以把每一列进行非极大值抑制处理,就能剔除很多重叠的建议框,从而一些保留高质量的建议框#分类。如果没有重叠的,就有多个分数比较高的就可以检测多个目标了

回归的过程中:

上一步通过Ss算法得到的建议框,与实际框Groud Truth (提前标注好的)通过回归分类器,会得到四个参数,分别对应着目标建议框中心点的x偏移量、y偏移量、边界框高度的缩放因子、边界框宽度的缩放因子。通过这四个值,对我们的建议框进行调整,就得到红色边界框。(精细修正过的候选框位置)

fastrcnn:

为什么要设定正负样本?

因为如果没有负样本,可能会让模型认为,因为我没见过错的,所以什么都是对的这种看法

正样本:只要候选框与我们真实目标边界框的iou 大于0.5 就认定他为正样本

softmax:

softmax直白来说就是将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标!(最终预测到边界框)

边界框回归器:

输出对应N+1个类别的候选边界框回归参数(dx dy dw da dh 共(N+1)x4个参数,分别对应着目标建议框中心点的x偏移量、y偏移量、边界框高度的缩放因子、边界框宽度的缩放因子。通过这四个值,对我们的建议框进行调整,就得到红色边界框。(精细修正过的候选框位置)

Faster Rcnn 框架

和rcnn 比 就是他最后三个部分放到一起执行了。(放到一个CNN网络中)

rcnn是对ss生成的2k个候选框均进行卷积,也就是要卷积2k次;但是fast-rcnn,是对整体做卷积,再映射,仅卷积一次。

上面图中的output中的softmax是类别概率,bbox regressor是边界框回归参数

fasterRcnn:

fasterRcnn和fastrcnn的很相近,其实就是将fastrcnn中的ss算法在fasterrcnn中被替换成了RPN算法

这几步是一个整体,实现了端对端的一个训练过程。之前的fastrcnn是分为两个部分,先是单独使用ss算法去生成region proposal,特征提取部分,分类部分和边界框回归部分这三个部分是在一共cnn网络中进行实现的,相比起来,框架越来越简介且速度越来越快,模块多融合

RPN

滑动窗口的作用

滑动窗口其实就是个3x3的卷积层,你可以简单理解为进一步抽象特征的作用。每个grid cell确实在原图上对应9个anchor,但滑动窗口每滑动到一个位置上只是针对滑动窗口中心(即3x3中间的一个cell)所应对的9个anchor去预测,另外8个cell(3x3窗口中心一圈8个)只是提供了更多的周边信息。

如图,在经过backbone后得到特征图,通过滑动窗口(slidinig Windows)得到k个anchor box,每滑动到一个窗口就生成一个一维向量(具体的值和前面的backbone最后的通道数相关,这个用的是ZF,所以是256,如果是VGG的话,那就是512),这个一维向量分别通过两个全连接层得到2k(一个是前景的概率,一个是背景的概率)个目标概率,和4k个边界框回归参数。(前面说了是因为每个目标建议框又四个参数)

anchor是什么,怎么来的?:

首先 anchor(候选框)就是在图像上预设好的不同大小,不同长宽比的参照框。

anchor可以理解成预设框,bounding box(bbox)需要结合上下文语境,可能是指gt bbox,也可能是网络预测的目标bbox,proposal一般指的是rpn预测的目标bbox

通过在特征图上的滑动窗口中心点,计算出滑动窗口他对应的原始图像的中心点。怎么对应?:

首先算出原始图像和特征图的长宽的倍数,up主把他称为stride,然后通过在特征图上的 坐标。例如(3,3),在原始图像上他的坐标就等于(3*stridex,3*stridey)。然后又通过规定的长宽比,以及面积大小,就可以得到anchor了,如下图

然后通过边界框回归参数对anchor进行调整

根据给定的比例和面积(经验所得)可以得到3*3=9个anchor

有些感受野虽然没有给定的anchor大,但是确实可以预测相应的边界框,在原论文中给了解释(比如通过经验,我们看到一个物体的一部分,也能够大概的猜出物体完整的区域)

感受野计算:

正负样本的定义:

正样本:与ground-truth(提前标注好的)的IOU大于0.7的anchor,如果这种情况不满足的情况下(个别情况) 就取与ground-truth的iou最大的那个anchor

负样本: 与所有的ground-truth的iou都小于0.3的anchor就是负样本

其他的:既不是正样本也不是负样本的就全部都舍弃掉

RPN的损失计算

为了简化计算,损失函数中λ/Nreg可以换成1/Ncls,λ/Nreg是1/240,1/Ncls是1/256

边界回归框参数:

“anchor的边界框回归参数”是指预测的候选框相对于anchor的修正因子;“anchor对应的GTbox的回归参数”是指真实的边界框(GTbox)相对于anchor的修正因子。gt=f(anchor)+b

前者可以直接由模型回归得到,后者需要根据GTbox的值和anchor的值计算得到。

anchor位置的个数与anchor的区别是什么:

feature map(特征图)上的每一个小方框就代表着anchor位置,进行筛选后,还剩2400个左右的anchor

对于下图的理解:1000*600的图像通过特征层后,比如说用VGG时下采样了16倍左右,差不多就是60*40的,然后每个位置有对应9个anchor所以是60*40*9

anchor就有很多,60*40*9这么多。

训练过程:

然后那些公式不是很看得懂(先摆这,后面等实践更多了再进行补充)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值