• 目标检测——Faster RCNN系列算法原理介绍


    一、Faster RCNN介绍

            ➢Ross B. Girshick大神在201 6年提出
            ➢目标检测任务
                    给定图片中精确定位物体位置 ,预测物体的类别
                    尺度变化、 视角变化、姿态变化、场景不确定、多个类别
                    RCNN->SPPNet-> Fast- :RCNN-> Faster- RCNN升级 

    传统目标检测方法流程:

    1.1 RCNN网络:

            ➢RBG 2014年提出
            ➢深度特征

    RCNN步骤:
            ➢步骤一:训练分类网络(AlexNet)
            ➢步骤二:模型做fine-tuning
                    类别1000改为20
                    去掉FC
            ➢步骤三:特征提取
                    提取候选框(选择性搜索)
                    对于每一一个区域: 修正区域为CNN的输入,利用网络对候选框提取到特征
     提取候选框(选择性搜索步骤)
            ➢step0:生成区域集R,具体参见论文《Efficient Graph-Based Image Segmentation》
            ➢step1:计算区域集R里每个相邻区域的相似度S={s1,2...}
            ➢step2:找出相似度最高的两个区域,将其合并为新集,添加进R .
            ➢step3:从S中移除所有与step2中有关的子集
            ➢step4:计算新集与所有子集的相似度
            ➢step5:跳至step2,直至S为空

            ➢步骤四:训练SVM分类器:每个类别对应一一个SVM
            ➢步骤五:回归器精修候选框位置:利用线性回归模型判定框的准确度

     ●RCNN缺点:
            ➢候选框选择算法耗时严重
            ➢重叠区域特征重复计算
            ➢分步骤进行,过程繁琐

    1.2 SPPNet介绍

            ➢Spatial Pyramid Pooling
            ➢空间金字塔池化

                    CNN不同尺度输入
                    仅对原图提取一次卷积特征

    ssp:

     1.3 Fast RNN介绍

            ➢结合SPPNet改进RCNN
                    ROI Pooling:单层SPPNet
            ➢多任务网络同时解决分类和位置回归
                    共享卷积特征
            ➢为Faster RCNN的提出打下基础,提供了可能

     Fast RNN网络结构:

     ROI Pooling:
            ROI Pooling是pooling层的一种,为了将proposal抠出来的过程,然后resize到统一 的大小。
            操作如下:
                    1、根据输入的image,将Roi映射到feature map对应的位置
                    2、将映射后的区域划分为相同大小的sections (sections数量和输出的维度相同)
                    3、对每个section进行max pooling操作

    Fast RNN网络性能提升:

     Fast RNN网络缺点:
            ➢存在瓶颈: 选择性搜索,找出所有的候选框十分耗时
            ➢那我们能不能找出 个更加高效的方法来求出这些候选框呢?
                    Region Proposal Network (RPN)网络

    Region Proposal Network (RPN)
            端到端的检测

     Faster RNN网络结构:
            ➢主干网络: 13con+ 13relu+ 4pooling
            ➢RPN: 3x3+ 背景前景区分+初步定位
            ➢ROIPooling
            ➢分类+位置精确定位

     1.4 RPN网络

            ➢Anchor
            ➢前景背景分类+框位置的回归
                    粗定位.
                    粗分类

     找到候选区候,针对每个候选区来估计每个候选区的类别和坐标:

            ➢Anchor
            ➢三个面积尺寸(128, 256,512)
            ➢在每个面积尺寸下,取三种不同的长宽比例(1:1,1:2,2:1)

     Faster RCNN性能对比

     Faster RCNN算法改进
            ➢更好的网络特征
            ➢更精准的RPN
            ➢更完善的ROI分类
            ➢样本后处理
            ➢更大的mini-Batch

     二、改进算法

    2.1 HyperNet

            ➢HyperNet是201 6年清华提出的优秀的Faster-RCNN变种

     2.2 RFCN

            ➢代季峰,何恺明,孙剑
            ➢Body+Head
            ➢base的VGG1 6换成了ResNet
            ➢通过position sensitive score map把目标的位置信息融合进ROI pooling
            ➢耗时的卷积都尽量移到前面共享的subnetwork上

     RFCN性能对比:

     2.3 Light-Head RCNN

            ➢旷视和清华大学在COCO,2017比赛拿到冠军
            ➢Body+Head
            ➢通过对head部分的修改减少了较多计算量

    Light-Head RCNN VS Faster RCNN:
            ➢在精度上, Faster RCNN为了减少全连接层的计算量,使用了global average pool,这会导致在一定程度上丢失位置信息;
            ➢在速度上, Faster RCNN的每一个ROI都要通过R-CNN subnet做计算,这必将引起计算量过大,导致检测速度慢。
     

    Light-Head RCNN核心结构
            ➢thinner feature map: score map维度变成了10*p*p=490
            ➢借鉴了Inception V3的思想,将k*k的卷积转化为1*k和k*1
            ➢R-CNN subnet部分使用channel为2048的fc层来改变前一-层的feature map的通道数,最后通过两个fc实现分类和回归。

     Light-Head RCNN效果对比:   COCO数据集

    2.4 Mask- RCNN

            主要强调通过多个任务来提高目标检测的效果,  Mask- RCNN不仅包括了目标检测分类和bounding boxe任务之外,还包括了一个分割的任务。总而言之,Mask- RCNN综合考虑了多个任务,通过这种方式去提高深度学习目标检测的整体效果。

    2.5 Cascade RCNN:

            ➢只有proposal自身的阈值和训练器训练用的阈值较为接近的时候,训练器的性能才最好

    2.6 CoupleNet

            ➢中科院nlpr实验室 ICCV2017
            ➢R-FCN可以看成是对一个proposal, 用- -些position-sensitive的weak classifier去做检测,然后把这些classifier的检测结果ensemble起来(position-sensitive Rol pooling) 
            ➢这种方法没有考虑到region proposal的global的信息和context的信息。

    CoupleNet网络结构:

     在Faster RCNN后续的改进算法中经常用到的两种策略:

    OHEM(在线难例挖掘)        
            ➢根据输入样本的损失进行筛选,筛选出hard example,表示对分类和检测影响较大的样本,然后将筛选得到的这些样本应用在随机梯度下降中训练。
            ➢两个: ROI Network完成Soft- NMS
            ➢I0U小于阈值的Bbox, 降低阈值

    Faster RCNN系列算法应用场景
            ●人脸检测与识别任务
            ●ADAS场景目标检测与识别(车、行人、非机动车)
            ●通用物体检测与识别
            ●自然场景下文本检测与识别等等

  • 相关阅读:
    接口自动化和UI自动化的区别
    PPT素材、PPT模板免费下载
    Window10安装docker后双击打不开,命令行 unable to resolve docker endpoint
    软件测试概念集锦
    docker 安装 nginx
    RAR压缩包,去除密码?
    C# Winform编程(7)文件处理技术
    一步步制作下棋机器人之 coppeliasim进行Scara机械臂仿真与python控制
    01-shell编程规范与变量
    ROSIntegration ROSIntegrationVision与虚幻引擎4(Unreal Engine 4)的配置
  • 原文地址:https://blog.csdn.net/qingxiao__123456789/article/details/125460930