1、目标检测

检测图片中所有物体的

  • 类别标签
  • 位置(最小外接矩形/Bounding box)

区域卷积神经网络R-CNN

模块进化史

2、区域卷积神经网络R-CNN

  • Region proposals+手工特征+分类器

R-CNN模块划分

  • 模块1:Selective Search(SS)获取区域

    • ~2000个区域Region proposals
    • 跟分类无关,包含物体
  • 区域预处理
    • Bounding box膨胀
    • 尺寸变换成227x227
  • 模块2:AlexNet 网络
    • 对所有区域进行特征提取
    • fine-tune
  • 模块3:线性SVMs分类器
    • 对CNN特征(4096)进行分类
    • 每个分类一个SVM
  • 模块4:Bounding box回归模型
    • 对SS提供的区域进行精化
    • 基于CNN特征
    • 每个分类一个SVM

正样本:所有Ground-truth区域

负样本:跟Ground-truth重合IoU<0.3的SS区域

R-CNN训练流程

  • M<——在ImageNet上对CNN模型进行预训练pre-train
  • M‘<——在SS生成的所有区域上对M进行fine-tune
  • C<——在M’的Fc7特征上训练线性SVMs分类器
  • R<——在M‘的Conv5特征上训练Bounding box回归模型

R-CNN测试阶段

  • Selective Search(fast mode)提取~2000区域/图片
  • 将所有区域膨胀+缩放到227x227
  • 使用fine-tune过的AlexNet计算两套特征
    • 为每个类别执行

      • Fc7特征——>SVM分类器——>类别分值
      • 使用非极大值抑制(IoU>=0.5)获取无冗余的区域子集
        • 所有区域分值从大到小排序
        • 剔除冗余:与最大分值区域IoU>=0.5的所有区域
        • 保留该最大分值区域,剩余区域作为新候选集
      • Conv5特征——>Bounding box回归模型——>Bbox偏差
      • 使用Bbox偏差修正区域子集

R-CNN性能评价

True Positive区域:IoU>=0.5

False Positive区域:IoU<0.5

False Negative区域:遗漏的Ground truth区域

准确率precision:TP/(TP+FP)

号召率recall:TP/(TP+FN)

第C类的平均精度(AP):PR曲线之下的面积,是Precision对于Recall的积分。

mAP:所有类别的平均精度求和初一所有类别,即数据集中所有类的平均精度的平均值。

3、SSP-Net

  • R-CNN速度慢的原因之一:卷积特征重复计算量太大,每张图片的~2000区域都会计算CNN特征
  • 两大改进
    • 直接输入整张图片,所有区域共享卷积计算(一遍):在Conv5层输出上提取所有区域的特征
    • 引入空间金字塔池化(Spatial Pyramid Pooling):为不同尺寸的区域,在Conv5输出上提取特征;映射到尺寸固定的全连接层上。

SSP-空间金字塔池化:

  • 替换Conv5的Pooling层
  • 3个level和21个Bin:1x1,2x2,4x4
  • Bin内使用Max pooling

SPP-Net训练过程

  • M<——在ImageNet上对CNN模型进行pre-train
  • F<——计算所有SS区域的SPP特征
  • M'<——使用F特征fine tune新fc6——>fc7——>fc8层
    • 与R-CNN区别:SPP特征<——Pool5特征;只finetune全连接层
  • F'<——计算M'的fc7特征
  • C<——使用F'特征训练线性SVM分类器
  • R<——适应F特征训练Bounding box回归模型

4、Fast R-CNN网络

改进:

  • 比R-CNN,SPP-Net更快的training/test
  • 更高的mAP
  • 实现end-to-end(端对端)单阶段训练:多任务损失函数(Multi-task loss)
  • 所有层的参数都可以fine-tune
  • 不需要离线存储特征文件

在SPP-Net基础上引入2个新技术

  • 感兴趣区域池化层(RoI pooling layer)
  • 多任务损失函数(Multi-task loss):分类器loss;Bounding box回归L1 loss。

 5、Faster R-CNN=Fast R-CNN+RPN

集成Region Proposal Network(RPN)网络:取代离线Selective Search模块,解决性能瓶颈。

进一步共享卷积层计算;基于Attention注意机制;Region proposals量少质优:高precision,高recall。

训练过程:

Step1---训练RPN网络

  • 卷积层初始化<——ImageNet上pretrained模型参数

Step2---训练Fast R-CNN网络

  • 卷积层初始化<——ImageNet上pretrained模型参数
  • Region proposals由Step1的RPN生成

Step3---调优RPN

  • 卷积层初始化<——Fast R-CNN的卷积层参数
  • 固定卷积层,finetune剩余层

Step4---调优Fast R-CNN

  • 固定卷积层,finetune剩余层
  • Region proposals由Step3的RPN生成

Region Proposal Network(RPN)网络:全卷积网络

  • 3x3,256-d卷积层+ReLU<——输入图片的Conv5特征
  • 1x1,4k-d卷积层——>输出k组proposal的offsets(r,c,w,h)
  • 1x1,2k-d卷积层——>输出k组(object score,non-object score)

第三节,目标检测---R-CNN网络系列的更多相关文章

  1. 深度学习与CV教程(12) | 目标检测 (两阶段,R-CNN系列)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...

  2. 目标检测复习之YOLO系列

    目标检测之YOLO系列 YOLOV1: blogs1: YOLOv1算法理解 blogs2: <机器爱学习>YOLO v1深入理解 网络结构 激活函数(leaky rectified li ...

  3. 使用Caffe完成图像目标检测 和 caffe 全卷积网络

    一.[用Python学习Caffe]2. 使用Caffe完成图像目标检测 标签: pythoncaffe深度学习目标检测ssd 2017-06-22 22:08 207人阅读 评论(0) 收藏 举报 ...

  4. 目标检测复习之Anchor Free系列

    目标检测之Anchor Free系列 CenterNet(Object as point) 见之前的过的博客 CenterNet笔记 YOLOX 见之前目标检测复习之YOLO系列总结 YOLOX笔记 ...

  5. 深度学习与CV教程(13) | 目标检测 (SSD,YOLO系列)

    作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/37 本文地址:http://www.showmeai.tech/article-det ...

  6. AI佳作解读系列(五) - 目标检测二十年技术综述

    计算机视觉中的目标检测,因其在真实世界的大量应用需求,比如自动驾驶.视频监控.机器人视觉等,而被研究学者广泛关注.   上周四,arXiv新出一篇目标检测文献<Object Detection ...

  7. 目标检测复习之Faster RCNN系列

    目标检测之faster rcnn系列 paper blogs1: 一文读懂Faster RCNN Faster RCNN理论合集 code: mmdetection Faster rcnn总结: 网络 ...

  8. 关于目标检测的anchor问题

    关于目标检测其实我一直也在想下面的两个论断: Receptive Field Is Natural Anchor Receptive Field Is All You Need 只是一直没有实验.但是 ...

  9. CNN目标检测系列算法发展脉络——学习笔记(一):AlexNet

    在咨询了老师的建议后,最近开始着手深入的学习一下目标检测算法,结合这两天所查到的资料和个人的理解,准备大致将CNN目标检测的发展脉络理一理(暂时只讲CNN系列部分,YOLO和SSD,后面会抽空整理). ...

随机推荐

  1. 【Windows】+ win10 通过KMS激活

    win10激活到期 通过KMS再次激活(亲测有效):http://www.xitongcheng.com/jiaocheng/win10_article_44435.html

  2. springBoot2.0+redis+fastJson+自定义注解实现方法上添加过期时间

    springBoot2.0集成redis实例 一.首先引入项目依赖的maven jar包,主要包括 spring-boot-starter-data-redis包,这个再springBoot2.0之前 ...

  3. Linux基础(一)

    01-服务器 1.1 服务器型号 1.2 电源---双电源 1.3 CPU---计算,(2个CPU=2路) 1.4 内存 面试题:bufffer和cache的区别? buffer:写入数据到内存里,这 ...

  4. 想要开发自己的PHP框架需要那些知识储备?

    作者:安正超链接:https://www.zhihu.com/question/26635323/answer/33812516来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注明 ...

  5. python中打印中文

    python中打印中文 在python 2.x版本中,默认是ASCII编码方式,在有业务需要输入中文时,就会出现乱码的情况.解决这种问题的一个方式就是设置py文件的编码方式.实现方式如下: 在py文件 ...

  6. HDU 3518 Boring counting

    题目:Boring counting 链接:http://acm.hdu.edu.cn/showproblem.php?pid=3518 题意:给一个字符串,问有多少子串出现过两次以上,重叠不能算两次 ...

  7. 2019阿里P7最新总结Spring Boot面试问题

        Spring Boot一直是Spring生态系统的关键参与者.该项目通过其自动配置功能使我们的生活更加轻松.在本教程中,我们将介绍在求职面试中可能出现的一些与Spring Boot相关的最常见 ...

  8. 函数遍历DOM树

    //获取页面中的根节点--根标签   var root=document.documentElement;//html   //函数遍历DOM树   //根据根节点,调用fn的函数,显示的是根节点的名 ...

  9. [BZOJ 2285] [SDOI 2011] 保密

    Description 传送门 Solution 这道题的最大难点在于读懂题意(雾 分数规划求出 \(n\) 到 \(1\cdots n_1\) 每个点的最小 \(\sum\frac{t_i}{s_i ...

  10. ☆ [ZJOI2006] 书架 「平衡树维护数列」

    题目类型:平衡树 传送门:>Here< 题意:要求维护一个数列,支持:将某个元素置顶或置底,交换某元素与其前驱或后继的位置,查询编号为\(S\)的元素的排名,查询排名第\(k\)的元素编号 ...