zoukankan      html  css  js  c++  java
  • 目标检测算法之R-CNN算法详解

    R-CNN全称为Region-CNN,它可以说是第一个成功地将深度学习应用到目标检测上的算法。后面提到的Fast R-CNN、Faster R-CNN全部都是建立在R-CNN的基础上的。

    传统目标检测流程:

    (1)区域选择(穷举策略:采用滑动窗口,且设置不同的大小,不同的长宽比对图像进行遍历,时间复杂度高)

    (2)特征提取(SIFT、HOG等;形态多样性、光照变换多样性、背景多样性使得特征鲁棒性差)

    (3)分类器分类(SVM、Adaboost)

    一、RCNN思路(Selective Search + CNN + SVM)

    R-CNN遵循传统目标检测的思路,同样采用,对每个框提取特征、图像分类、非极大值抑制四个步骤进行目标检测,只不过进行了部分的改进。

    • 经典的目标检测算法使用滑动窗法去依次判断所有可能的区域。而这里预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上提取特征,进行判断,大大减少了计算量
    • 将传统的特征(如SIFT,HOG特征等)换成了深度卷积网络提取特征

    &创新点

      1. 采用CNN网络提取图像特征,从经验驱动的人造特征范式HOG、SIFT到数据驱动的表示学习范式,提高特征对样本的表示能力

      2. 采用大样本下有监督预训练+小样本微调的方式解决小样本难以训练甚至过拟合等问题

    二、算法步骤

    数据集采用pascal VOC,这个数据集的object一共有20个类别。首先用selective search方法在每张图像上选取约2000个region proposal,region proposal就是object有可能出现的位置。然后根据这些region proposal构造训练和测试样本,注意这些region proposal的大小不一,另外样本的类别是21个(包括了背景)

    简要步骤如下:

    (1)输入测试图像,利用选择性搜索selective search在图像中从下到上提取2000个左右的可能包含物体的候选区域Region Proposal

    (2)先在每个建议框周围加上16个像素值为建议框像素平均值的边框,在直接变形为227x227的大小(Alexnet的尺寸)

    (3)先将所有建议框像素减去该建议框像素平均值,将每个227x227输入Alexnet CNN网络获取4096维特征。2000个建议框的CNN特征组合成2000x4096维矩阵

    (4)将2000x4096维特征与20个SVM组成权值矩阵4096x2000相乘(20种分类,SVM是二分类器,则有20个SVM),获得2000x20维矩阵表示每个建议框是某个物体类别的得分

    (5)对上述2000x20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框

    (6)分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的得分最高的bounding box

    具体步骤如下:

    步骤一:下载一个分类模型(Alexnet)

    步骤二:对该模型做fine-tuning

      • 将分类数从1000改为21,比如20种物体 + 1个背景

      • 去掉最后一个全连接层

    步骤三:特征提取

       • 提取图像的所有候选框(选择性搜索Selective Search)

      • 对于每一个区域:修正区域大小以适合CNN的输入,做一次前向运算,将第五个池化层的输出(对候选框提取到的特征)存到硬盘

    步骤四:训练一个SVM分类器(二分类)来判断这个候选框里物体的类别

    每个类别对应一个SVM,判断是不是属于这个类别,是就是positive,反之nagative。

    比如下图,就是狗分类的SVM

     步骤五:使用回归器精细修正候选框位置:对每一个类,训练一个线性回归模型去判定这个框是否框的完美

    &缺点

    R-CNN第一步对原始图片通过Selective Search提取的候选框region proposal多大2000个左右,而这2000个候选框每个框度需要进行CNN提取特征 + SVM分类,计算量很大,导致R-CNN检测速度很慢,一张图都要47s

    参考地址:

    https://cloud.tencent.com/developer/news/281788

    https://blog.csdn.net/wopawn/article/details/52133338

    https://www.cnblogs.com/zyly/p/9246221.html

  • 相关阅读:
    Educational Codeforces Round 10 C. Foe Pairs 水题
    Educational Codeforces Round 10 B. z-sort 构造
    CDOJ 1048 Bob's vector 三分
    Educational Codeforces Round 10 A. Gabriel and Caterpillar 模拟
    第14届电子科大初赛民间盗版部分题目题解
    HDU 5654 xiaoxin and his watermelon candy 离线树状数组 区间不同数的个数
    HDU 5653 Bomber Man wants to bomb an Array. dp
    HDU 5652 India and China Origins 二分+并查集
    HDU 5651 xiaoxin juju needs help 数学
    HDU 5650 so easy 数学
  • 原文地址:https://www.cnblogs.com/gezhuangzhuang/p/10456854.html
Copyright © 2011-2022 走看看