一:Faster-R-CNN算法组成:

  1.PRN候选框提取模块;

  2.Fast R-CNN检测模块。

二:Faster-R-CNN框架介绍

  

 三:RPN介绍

  3.1训练步骤:1.将图片输入到VGG或ZF的可共享的卷积层中,得到最后可共享的卷积层的feature map。

            2.用一个小网络来卷积这个feature map

        2.1在滑动窗口的每个像素点对应的原图片上上设置9个矩形窗口(3种长宽比*3种尺度),称作锚点。

        至于这里为什么要在原图上,是因为最后求出来的锚点要跟原图的标定框最小梯度下降。

        2.2将卷积的结果和锚点分别输入到两个小的1*1的网络中reg(回归,求目标框的位置)和cls(分类,确定该框中是不是目标)

       3.训练集标记好了每个框的位置,和reg输出的框的位置比较,用梯度下降来训练网络

  

RPN网络把一个任意尺度的图片作为输入,输出一系列的矩形object proposals,每个object proposals都带一个objectness score。我们用一个全卷积网络来模拟这个过程,这一小节描述它。因为我们的最终目标是与Fast R-CNN目标检测网络来共享计算,所以我们假设两个网有一系列相同的卷积层。我们研究了the Zeiler and Fergus model(ZF),它有5个可共享的卷积层,以及the Simonyan and Zisserman model(VGG-16),它有13个可共享的卷积层。

为了生成region proposals,我们在卷积的feature map上滑动一个小的网络,这个feature map 是最后一个共享卷积层的输出。这个小网络需要输入卷积feature map的一个n*n窗口。每个滑动窗口都映射到一个低维特征(ZF是256维,VGG是512维,后面跟一个ReLU激活函数)。这个特征被输入到两个兄弟全连接层中(一个box-regression层(reg),一个box-classification层(cls))。我们在这篇论文中使用了n=3,使输入图像上有效的接受域很大(ZF 171个像素,VGG 228个像素)。这个迷你网络在图3(左)的位置上进行了说明。注意,由于迷你网络以滑动窗口的方式运行,所以全连接层在所有空间位置共享。这个体系结构是用一个n*n的卷积层来实现的,后面是两个1*1的兄弟卷积层(分别是reg和cls)。

3.2   Anchors(锚点)

  在每个滑动窗口位置,我们同时预测多个region proposals,其中每个位置的最大可能建议的数量表示为k。所以reg层有4 k输出来编码k个box的坐标(可能是一个角的坐    标(x,y)+width+height),cls层输出2 k的分数来估计每个proposal是object的概率或者不是的概率。这k个proposals是k个参考框的参数化,我们把这些proposals叫做Anchors(锚点)。锚点位于问题的滑动窗口中,并与比例和纵横比相关联。默认情况下,我们使用3个尺度和3个纵横比,在每个滑动位置上产生k=9个锚点。对于W *H大小的卷积特性图(通常为2,400),总共有W*H*k个锚点

平移不变性的锚点

  我们的方法的一个重要特性是是平移不变性,锚点本身和计算锚点的函数都是平移不变的。如果在图像中平移一个目标,那么proposal也会跟着平移,这时,同一个函数需要能够在任何位置都预测到这个proposal。我们的方法可以保证这种平移不变性。作为比较,the MultiBox method使用k聚类方法生成800个锚点,这不是平移不变的。因此,MultiBox并不保证当一个对象被平移式,会生成相同的proposal。

  平移不变性也减少了模型的尺寸,当锚点数k=9时MultiBox有一个(4+1)*800维全连接的输出层,而我们的方法有一个(4+2)*9维的卷积输出层。因此,我们输出层的参数比MultiBox少两个数量级(原文有具体的数,感觉用处不大,没有具体翻译)。如果考虑到feature projection层,我们的建议层仍然比MultiBox的参数少了一个数量级。我们希望我们的方法在像PASCAL VOC这样的小数据集上的风险更小

3.3  损失函数

在计算Loss值之前,作者设置了anchors的标定方法。正样本标定规则: 
  1) 如果Anchor对应的refrence box 与 ground truth 的 IOU值最大,标记为正样本; 
  2)如果Anchor对应的refrence box与ground truth的IoU>0.7,标定为正样本。事实上,采用第2个规则基本上可以找到足够的正样本,但是对于一些极端情况,例如所有的Anchor对应的reference box与groud truth的IoU不大于0.7,可以采用第一种规则生成. 
  3)负样本标定规则:如果Anchor对应的reference box 与 ground truth的IoU<0.3,标记为负样本。 
  4)剩下的既不是正样本也不是负样本,不用于最终训练。 
  5)训练RPN的Loss是有classification loss(即softmax loss)和 regression loss(即L1 loss)按一定比重组成的。

在计算Loss值之前,作者设置了anchors的标定方法。正样本标定规则: 
  1) 如果Anchor对应的refrence box 与 ground truth 的 IOU值最大,标记为正样本; 
  2)如果Anchor对应的refrence box与ground truth的IoU>0.7,标定为正样本。事实上,采用第2个规则基本上可以找到足够的正样本,但是对于一些极端情况,例如所有的Anchor对应的reference box与groud truth的IoU不大于0.7,可以采用第一种规则生成. 
  3)负样本标定规则:如果Anchor对应的reference box 与 ground truth的IoU<0.3,标记为负样本。 
  4)剩下的既不是正样本也不是负样本,不用于最终训练。 
  5)训练RPN的Loss是有classification loss(即softmax loss)和 regression loss(即L1 loss)按一定比重组成的。

3.4  RPN训练设置

(1)在训练RPN时,一个Mini-batch是由一幅图像中任意选取的256个proposal组成的,其中正负样本的比例为1:1.

(2)如果正样本不足128,则多用一些负样本以满足有256个Proposal可以用于训练,反之亦然.

(3)训练RPN时,与VGG共有的层参数可以直接拷贝经ImageNet训练得到的模型中的参数;剩下没有的层参数用标准差=0.01的高斯分布初始化.

四:.Fast R-CNN 的介绍

4.1 模型的流程图如下

  

  1.1 - 训练

    输入是224×224224×224的固定大小图片,经过5个卷积层+2个降采样层(分别跟在第一和第二个卷积层后面),进入ROIPooling层(其输入是conv5层的输出和region proposal,region proposal个数大约为2000个),再经过两个output都为4096维的全连接分别经过output各为21和84维的全连接层(并列的,前者是分类输出,后者是回归输出),最后接上两个损失层(分类是softmax,回归是smoothL1)

4.2  损失函数

  多损失融合(分类损失和回归损失融合),分类采用log loss(即对真实分类的概率取负log,分类输出K+1维),回归的loss和R-CNN基本一样。

  

目标检测算法Faster R-CNN的更多相关文章

  1. 深度学习笔记之目标检测算法系列(包括RCNN、Fast RCNN、Faster RCNN和SSD)

    不多说,直接上干货! 本文一系列目标检测算法:RCNN, Fast RCNN, Faster RCNN代表当下目标检测的前沿水平,在github都给出了基于Caffe的源码. •   RCNN RCN ...

  2. 第三十一节,目标检测算法之 Faster R-CNN算法详解

    Ren, Shaoqing, et al. “Faster R-CNN: Towards real-time object detection with region proposal network ...

  3. 基于候选区域的深度学习目标检测算法R-CNN,Fast R-CNN,Faster R-CNN

    参考文献 [1]Rich feature hierarchies for accurate object detection and semantic segmentation [2]Fast R-C ...

  4. 目标检测算法的总结(R-CNN、Fast R-CNN、Faster R-CNN、YOLO、SSD、FNP、ALEXnet、RetianNet、VGG Net-16)

    目标检测解决的是计算机视觉任务的基本问题:即What objects are where?图像中有什么目标,在哪里?这意味着,我们不仅要用算法判断图片中是不是要检测的目标, 还要在图片中标记出它的位置 ...

  5. (五)目标检测算法之Faster R-CNN

    系列博客链接: (一)目标检测概述 https://www.cnblogs.com/kongweisi/p/10894415.html (二)目标检测算法之R-CNN https://www.cnbl ...

  6. Domain Adaptive Faster R-CNN:经典域自适应目标检测算法,解决现实中痛点,代码开源 | CVPR2018

    论文从理论的角度出发,对目标检测的域自适应问题进行了深入的研究,基于H-divergence的对抗训练提出了DA Faster R-CNN,从图片级和实例级两种角度进行域对齐,并且加入一致性正则化来学 ...

  7. 第二十九节,目标检测算法之R-CNN算法详解

    Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmenta ...

  8. 目标检测算法YOLO算法介绍

    YOLO算法(You Only Look Once) 比如你输入图像是100x100,然后在图像上放一个网络,为了方便讲述,此处使用3x3网格,实际实现时会用更精细的网格(如19x19).基本思想是, ...

  9. FAIR开源Detectron:整合全部顶尖目标检测算法

    昨天,Facebook AI 研究院(FAIR)开源了 Detectron,业内最佳水平的目标检测平台. 昨天,Facebook AI 研究院(FAIR)开源了 Detectron,业内最佳水平的目标 ...

随机推荐

  1. js中数组和字符串的方法总结

    一.数组方法简单总结为以下几种 1.原有: 增.删.改.截.拼.复.排.转 2.ES5扩展: 查.遍历 增: 前增 ,,,,]; console.log(arr.unshift(,,[ console ...

  2. 如何调试 Windows 服务

    概要 本文分步介绍了如何使用 WinDbg 调试程序 (windbg.exe) 调试 Windows 服务. 要调试 Windows 服务,可以在服务启动后将 WinDbg 调试程序附加到托管该服务的 ...

  3. WinDbg常用命令系列---检查符号X

    x (Examine Symbols) x命令在所有与指定模式匹配的上下文中显示符号. x [Options] Module!Symbol x [Options] * 参数: Options特定符号搜 ...

  4. 完美兼容IE10以下所有版本

    IE一直是个恶心东西 各种不支持 现在发现了个好东西可以兼容ie10以下所有浏览器 <!--[if lte IE 9]><script>window.location.href ...

  5. tomcat 配置更改 web 目录

    tomcat 虚拟目录:( 编辑  tomcat/conf/server.xml ) <Host name="localhost" appBase="webapps ...

  6. Theano入门笔记1:Theano中的Graph Structure

    译自:http://deeplearning.net/software/theano/extending/graphstructures.html#graphstructures 理解Theano计算 ...

  7. 洛谷P1353 USACO 跑步 Running

    题目 一道入门的dp,首先要先看懂题目要求. 容易得出状态\(dp[i][j]\)定义为i时间疲劳度为j所得到的最大距离 有两个坑点,首先疲劳到0仍然可以继续疲劳. 有第一个方程: \(dp[i][0 ...

  8. USACO 重排干草&&BZOJ1045

    USACO 重排干草&&BZOJ1045 Description 约翰订购了很多干草,他在农场里标记了 N 个位置.这些位置近似地构成一个圆环.他原打算 让送货司机在 i 号位卸下 B ...

  9. Pytest权威教程(官方教程翻译)

    Pytest权威教程01-安装及入门 Pytest权威教程02-Pytest 使用及调用方法 Pytest权威教程03-原有TestSuite的执行方法 Pytest权威教程04-断言的编写和报告 P ...

  10. 【POJ2965】The Pilots Brothers' refrigerator

    题目传送门 本题知识点:深度优先搜索 + 暴力枚举 + 回溯 + 栈 如果对以上知识点还不熟悉的同学建议先做做 POJ1753 (本题是1753的提高版)(附 POJ1753博客) 以下默认您已ACP ...