目标检测----Faster R-CNN认识(一)

百度网盘论文链接,提取码:kk89
https://pan.baidu.com/s/12RDu3WLgH5WcV_Mo3q02xg

或者去arxiv下载《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》.

前言

传统的物体识别算法,比较简单暴力的方法就是滑窗,使用不同大小、不同长宽比的候选框在整幅图像上进行穷尽式的滑窗,然后提取窗口内的特征(例如Haar、LBP、Hog等特征),再送入分类器(SVM、Adaboost等)判断该窗口内包含的是否为某一物体。这种方法简单易理解,但受限于手动设计的特征,召回率和准确率通常不高。
在这里插入图片描述
RCNN和Fast RCNN是依赖滑窗来产生候选框,也就是Selective Search算法,该算法优化了候选框的生成策略,但仍旧会产生大量的候选框,导致Fast RCNN算法,在GPU上的速度也只有三、四帧每秒。直到Faster R-CNN的出现,提出了RPN网络,使用RPN直接预测出候选框的位置。RPN网络一个最重要的概念就是anchor,启发了后面的SSD和YOLOv2等算法,虽然SSD算法称之为default box,也有算法叫做prior box,其实都是同一个概念,他们都是anchor的别称。

先验知识

1、什么是Region Proposal

  • 首先,主流的Object Detection框架分为One-stage(速度较快)和Two-stage(精度较高),而Two-stage多出来的这个stage就是Region Proposal过程。
  • Two-stage目标检测过程主要分为两步:第一步是在图片中寻找可能存在物体的位置(regions),第二步判断这个位置里的物体是什么。
  • Region Proposal(候选区域),就是预先找出图中目标可能出现的位置,通过利用图像中的纹理、边缘、颜色等信息,保证在选取较少窗口(几千个甚至几百个)的情况下保持较高的召回率(IoU,Intersection-over-Union),就是寻找“可能存在物体位置”的过程。

2、什么是Anchor,有什么用

  • 就是在图像上预设好的不同大小,不同长宽比的参照框。(其实非常类似于上面的滑窗法所设置的窗口大小)
  • 目标检测是“目标在哪里有什么”,但如果让模型盲目的去寻找目标在哪里,不仅效率低,甚至不能收敛。Anchor技术将问题转换成“这个固定参考框中有没有认识的目标,目标框偏离参考框有多远”,可以在很大程度上降低目标检测的难度。
  • 借助神经网络强大的拟合能力,可以直接输出每个anchor是否包含(或者说与物体有较大重叠,也就是IoU较大)物体,以及被检测物体相对本anchor的中心点偏移以及长宽比例
  • 在训练的时候,需要anchor的大小和长宽比与待检测的物体尺度基本一致,才可能让anchor与物体的IoU为正样本,否则,可能anchor为正样本的数目特别少,就会导致漏检很多。
  • 一定要根据数据集物体的宽高比来设置anchor大小,尽量一致
    在这里插入图片描述

3、Anchor和Bouding box

  • Anchor类似于初始化的bouding box,后面模型在学习的时候,只需要学习二者之间的偏移即可,可以大大降低模型收敛速度。
  • 在训练的时候,给每张图片物体的Bounding Box,相对于anchor进行编码,如果物体的Bounding Box与某个anchor的IoU较大,例如大于0.7就认为是正样本,否则是负样本。

简要介绍

  • 是奠定Two-stage目标检测算法巨作,来自何恺明大神。
    2016年Faster R-CNN问世,其相对于Fast R-CNN来说速度更快,得益于在结构上把特征抽取(feature extraction),proposal提取,bounding box regression(rect refine),classification都整合在了一个网络中,使得综合性能有较大提高,在检测速度方面尤为明显。
  • Fast R-CNN最耗时的就是region proposal部分(秒级别),所以优化这一部分最有效,Faster R-CNN便是从这里入手。整个过程在GPU上跑起来可以达到一秒钟5帧。
    在这里插入图片描述

RPN网络(region proposal network)

  • Fast R-CNN是可以生成边框的,所以Faster R-CNN在网络之前加上一个神经网络,去生成边框。

  • RPN由一个个anchor组成,预设三种尺度、三种长宽比的anchor,一共9种大小的anchor在featuremap上滑动。featuremap大约有2400个点,最后会生成24009个anchor,这个9是可变的(也可以预设四种尺度、五种长宽比的20种anchor)。anchor在扫过每个点的时候都会预测这里是不是一个物体,再回归出bbox,所以一共会输出24009*6个值,这里的6,其中4个是:在这里插入图片描述
    2个是/否的概率(softmax输出概率,要求和为1)。
    在这里插入图片描述

  • 滑动窗anchor在同一个proposal上平移不变,基于k-means的MultiBox(SSD的核心步骤)方法无法保证平移不变。MultiBox是基于全图全连接做法,会输出800维全连接,参数量庞大。类似于卷积操作的anchor方法,每个滑块参数一样,是512维,再乘以维度6和anchor种类9(一共两万八千参数)。

  • 训练的时候选取IOU > 0.7的框作为正样本,IOU < 0.3作为负样本。
    loss函数和Fast R-CNN一样
    在这里插入图片描述
    接上Fast R-CNN的网络, region proposal也是采用神经网络做计算,使得原来需要2秒现在达到毫秒级别,整个流程下来可以做到实时的级别。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值