@Author:Runsen

使用 R-CNN 进行对象检测存在一些缺点。

  • R-CNN 消耗了大量的时间、存储和计算能力。
  • R-CNN 有一个复杂的多阶段训练管道(3 阶段——对数损失、SVM 和 BBox 回归器的 L2 损失)

上一篇论文的同一作者(R-CNN)解决了 R-CNN 的一些缺点,构建了一个更快的对象检测算法,被称为 Fast R-CNN。

Fast R-CNN模型不是将区域候选框提供给 CNN,而是将输入图像提供给 CNN 以生成 特征向量。

将它们聚合到整个图像的一个 CNN 前向传递中,并且区域提议共享此特征矩阵。然后将相同的特征矩阵用于学习对象分类器和边界框回归器。总之,计算共享加速了 R-CNN。

在 Fast R-CNN 中,图像只被送入底层 CNN 一次,而选择性搜索则像往常一样运行。这些由选择性搜索生成的区域提议然后被投影到由 CNN 生成的特征图上。这个过程称为ROI Projection(感兴趣区域)。

RoI Pooling

RoI Pooling一种最大池化,将任意大小的图像投影区域h x w中的特征转换为一个小的H x W固定窗口。

让我们考虑一个小例子来看看RoI Pooling
是如何工作的。我们将在单个 8×8 特征图、一个感兴趣区域和 2×2 的输出大小上执行感兴趣区域池化。输入特征图如下所示:


假设我们还有一个区域候选框(左上角,右下角坐标):(0, 3), (7, 8)。在图片中它看起来像这样:

通常情况下,每个图片都会有多个特征图和多个候选框,在示例中认为输出大小为 2×2,因此将其分成 (2×2) 个部分。

请注意,感兴趣区域的大小不必完全被池化部分的数量整除(在这种情况下,RoI 是 7×5,有 2×2 个池化部分)。
每个部分的最大值是:

这就是区域候选框RoI Pooling的输出。

上面实例代码:https://github.com/deepsense-ai/roi-pooling

工作原理

Fast R-CNN 的工作原理总结如下:许多步骤与 R-CNN 相同:

  • 首先,在图像分类任务上预训练卷积神经网络。
  • 通过选择性搜索提出区域(每张图像约 2k 个候选)。
  • 改变预训练的 CNN:
    • 用 RoI 池化层替换预训练 CNN 的最后一个最大池化层。RoI 池化层输出区域提议的固定长度特征向量。共享 CNN 计算很有意义,因为相同图像的许多区域提议高度重叠。
    • 用全连接层和 K+1 类上的 softmax 替换最后一个全连接层和最后一个 softmax 层(K 个类别)。
  • 最后,模型分支为两个输出层:
    • K + 1 个类别的 softmax 估计器,输出每个 RoI 的离散概率分布。
    • 一个边界框回归模型,它预测相对于 K 个类别中每个类别的原始 RoI 的偏移量。

“Fast R-CNN”之所以比 R-CNN 快,是因为不必每次都向卷积神经网络输入 2000 个区域候选框。相反,每个图像只进行一次卷积操作,并从中生成一个特征图。

附上Fast-RCNN 相关Github代码:

  • https://github.com/rbgirshick/fast-rcnn

深度学习和目标检测系列教程 6-300:目标检测Fast-RCNN架构相关推荐

  1. 深度学习和目标检测系列教程 4-300:目标检测入门之目标变量和损失函数

    @Author:Runsen 目标定位 图像分类或图像识别模型只是检测图像中对象的概率.与此相反,对象定位是指识别图像中对象的位置.对象定位算法将输出对象相对于图像的位置坐标.在计算机视觉中,定位图像 ...

  2. 深度学习和目标检测系列教程 8-300:目标检测常见的标注工具LabelImg和将xml文件提取图像信息

    @Author:Runsen 图像标注主要用于创建数据集进行图片的标注.本篇博客将推荐一款非常实用的图片标注工具LabelImg,重点介绍其安装使用过程.如果想简单点,请直接下载打包版(下载地址见结尾 ...

  3. Kaggle深度学习与卷积神经网络项目实战-猫狗分类检测数据集

    Kaggle深度学习与卷积神经网络项目实战-猫狗分类检测数据集 一.相关介绍 二.下载数据集 三.代码示例 1.导入keras库,并显示版本号 2.构建网络 3.数据预处理 4.使用数据增强 四.使用 ...

  4. 基于深度学习的恶意样本行为检测(含源码) ----采用CNN深度学习算法对Cuckoo沙箱的动态行为日志进行检测和分类...

    from:http://www.freebuf.com/articles/system/182566.html 0×01 前言 目前的恶意样本检测方法可以分为两大类:静态检测和动态检测.静态检测是指并 ...

  5. wandb(wb)(weights and biases): 深度学习轻量级可视化工具入门教程

    参考文章:wandb: 深度学习轻量级可视化工具入门教程 这wandb有点蛋疼啊,说登录https://wandb.ai/authorize?signup=true获取API KEY,但貌似要梯子才能 ...

  6. wandb: 深度学习轻量级可视化工具入门教程

    本文,就来给大家介绍一款新型的机器学习可视化工具,能够让人工智能研发过程变得更加简单明了. wandb: 深度学习轻量级可视化工具入门教程 引言 wandb 验证数据可视化 自然语言处理 重要工具 极 ...

  7. 基于深度学习和模糊逻辑的葡萄黑麻疹疾病自动检测与严重程度分析(受控背景)

    研究内容 葡萄黑麻疹可能是所有植物病害中最著名.研究时间最长.破坏性最大的一种,它最终会降低产品的生产率和质量.及时.有效.准确地评价葡萄黑麻疹病是田间管理的重要环节.本文提出了一种基于深度学习和模糊 ...

  8. 视频教程-深度学习与PyTorch入门实战教程-深度学习

    深度学习与PyTorch入门实战教程 新加坡国立大学研究员 龙良曲 ¥399.00 立即订阅 扫码下载「CSDN程序员学院APP」,1000+技术好课免费看 APP订阅课程,领取优惠,最少立减5元 ↓ ...

  9. 『深度学习项目四』基于ResNet101人脸特征点检测

    相关文章: [深度学习项目一]全连接神经网络实现mnist数字识别 [深度学习项目二]卷积神经网络LeNet实现minst数字识别 [深度学习项目三]ResNet50多分类任务[十二生肖分类] 『深度 ...

最新文章

  1. java bootclasspath
  2. uni-app开发微信小程序之获取当前地址
  3. springmvc+mongodb+maven 项目搭建配置
  4. 使用Python解析MNIST数据集
  5. axure7 地址选择_Axure教程:省市县三级联动选择(全国省市区数据)
  6. 常用DOS命令参数的中文详解3
  7. 制作PPT如何快速绘制透视立体图
  8. android序列号怎么修改,修改Android序列号(Serial Number)
  9. Android 接入穿山甲SDK之激励视频广告
  10. 小文一篇,说说:where、:has和:is的特殊性吧
  11. 强化学习入门项目 Spinning up OpenAI (2) 基本使用
  12. com.google.zxing jar下载
  13. OSPF NBMA实验(单播、广播)
  14. scratch3.0键盘无法输入文字或修改指令中的数字的快速解决办法
  15. OSPF之LSA详解
  16. JQuery dad js自定义删除和拖动回调事件
  17. 机器学习笔记十五之图片文字识别
  18. π122M30代替Si8621AB-B-IS 低功耗,高能效、抗干扰能力好的 双通道数字隔离器解决方案
  19. python爬虫实现实时爬取学校最新通知并推送
  20. 计算机低音,如何调整电脑的高音和低音

热门文章

  1. Linux 适用硬件平台/系统架构(i386 / i586 / i686 / x86 / x86_64)名词理解和区别
  2. 百度seo指南_什么是SEO?网站怎么做SEO优化(问答篇)
  3. 数字图像处理基本运算
  4. Python基础(偏函数)
  5. 一篇好文之Android数据库 GreenDao的完全解析
  6. MathExam任务一
  7. 《Learning.Python》pdf
  8. RDA PQ工具使用 (Adi Analysis)
  9. 【行为型模式】《大话设计模式》——读后感 (10)无尽加班何时休?——状态模式...
  10. Codeforces Round #383 _python作死系列