学习的过程中发现一个问题,如果不能大概的了解一下一个算法的思想直接去看他的论文,或者去看他算法的讲解就很痛苦,看不懂,学的效率也非常低,类似我之前发的RCNN论文精度的博客。RCNN目标检测算法内容详解(依托论文讲解)_小馨馨的小翟的博客-CSDN博客_rcnn论文下载

我想我们在学习一个算法之前,还是得整体大概的了解一下这个算法的流程,是如何工作的,然后再去完成细节的学习这个算法,这样效果应该会好一点。好了,废话少说,我们讲一个RCNN的大致思想和流程,方便大家去细致的学习RCNN,当然也是为大家细致的学习RCNN做个铺垫。

RCNN——Region-CNN(区域卷积神经网络)

       在讲述RCNN之前,我们要简单讲解一下目标检测的刚开始发展情况。最开始的只有图像分类算法,后来人们发现当一个图片上存在多个目标的时候,我们单纯对图片进行分类已经没有意义,我们更需要先对目标进行定位,即获得目标的位置,然后再进行分类(即识别目标的种类)。由此,人满开始了对目标检测算法的研究。

      刚开始设计的目标检测算法是滑动窗口法如下图:

滑动窗口从最上角到右下角进行移动,然后对每个窗口截取的图像打入到CNN里面进行分类,从而确定目标的位置。(这是最开始的目标检测算法)当然这是非常低效的,因为我们需要把图像经过滑动窗口截取成好多块,然后都打入CNN进行训练,非常浪费时间和算力。

特别是这一块地,上面啥目标都没有,我却还需要把他打入到CNN上进行训练,这显示是低效且无用的。 

     就在这个时候,R-CNN出现了,横空出世,提出了候选区域的思想,解决了无用区域被打入CNN进行训练导致算法太慢,算力浪费等问题。

     那么到底什么是候选区域呢? 简单来说就是我们的算法在进行滑动窗口处理图像之前,先对图像进行图像分割,获取可能出现目标的区域,然后再进行滑动窗口处理,这样可以尽可能的减少滑动窗口对无用的区域进行识别分类,大大的提高了算法的速度。

具体的候选区域选择,图像分割的流程如下:

我们在对象图像进行滑动窗口处理之前,先使用传统的图像处理方法对图像进行图像分割,这样我们就能确定图像中大块的颜色不一样的连通区域即是我们可能存在的目标对象。即,图像存在的蓝色的绿色的等等就是可能存在目标的区域,即所谓的候选区域,然后我们只对这些区域进行滑动窗口处理,这样就大大的提升了算法的效率!

 

 这样看来总结一下RCNN的流程:

                                    首先我们对图像进行传统图像分割,

                                    然后将图像中的连通区域作为我们滑动窗口的候选区域region

                                     对于这些候选区域region进行滑动窗口处理,然后打入CNN进行分类识别

                                     输出目标的坐标和种类,即达到目标检测的目的。

       

后续的对于R-CNN的优化算法,例如Fast R-CNN 或者 Raster R-CNN也大部分集中在对使用更好的图像分割算法而不是传统的图像算法,或者使用的卷积代替滑动窗口等等。但是总体R-CNN系列算法的流程是没有变的。虽然说对于R-CNN的一系列优化大大加快了R-CNN系列算法的速度,但是跟yolo系列比起来,它还是太慢了,太慢了!下期我们将会讲述yolo系列的算法,冲冲冲!下期肝yolo!

好了,我想我已经说的很明白了,有问题的可以在评论里指出来,大家一起学习!真理越辩越明!

RCNN算法思想简单讲解概述————(究极简单的讲述和理解)相关推荐

  1. yolo系列算法思想流程简单讲解概述————(究极简单的讲述和理解)

           在我想学习算法的时候,我看某些大佬特别喜欢上来就讲论文,给我搞的贼难受,毕竟本人太辣鸡了,上来这么搞看不懂,经过诸多算法的这样折磨.我打算根据自己的亲身经历和学习过程中遇到的问题出一期, ...

  2. 王道操作系统课代表 - 考研计算机 第一章 计算机概述 究极精华总结笔记

    本篇博客是考研期间学习王道课程 传送门 的笔记,以及一整年里对 操作系统 知识点的理解的总结.希望对新一届的计算机考研人提供帮助!!!   关于对 计算机概述 章节知识点总结的十分全面,涵括了< ...

  3. JAVA工程师常用算法_算法工程师必须要知道的8种常用算法思想

    算法思想有很多,业界公认的常用算法思想有8种,分别是枚举.递推.递归.分治.贪心.试探法.动态迭代和模拟.当然8种只是一个大概的划分,是一个"仁者见仁.智者见智"的问题. 1.1 ...

  4. 算法工程师必须要知道的8种常用算法思想

    https://www.toutiao.com/a6653981171921191432/ 算法思想有很多,业界公认的常用算法思想有8种,分别是枚举.递推.递归.分治.贪心.试探法.动态迭代和模拟.当 ...

  5. c语言动态规划回溯的原理,「算法思想」分治、动态规划、回溯、贪心一锅炖...

    观感度:????? 口味:东北一锅出 烹饪时间:10min 本文已收录在Github github.com/Geekhyt,感谢Star. 数据结构与算法系列专栏第四弹来袭,往期专栏链接如下: 初学者 ...

  6. java 奇偶数据排序算法,简单讲解奇偶排序算法及在Java数组中的实现

    简单讲解奇偶排序算法及在Java数组中的实现 奇偶排序是一个比较有个性的排序,基本思路是奇数列排一趟序,偶数列排一趟序,再奇数排,再偶数排,直到全部有序 举例吧, 待排数组 [6 2 4 1 5 9] ...

  7. 采用两阶段Faster RCNN算法,引入light head的思想

    近日,华为云自研的人脸算法FDNet1.0,在业界极具挑战难度的人脸检测平台 WIDER FACE多项测评中斩获业界第一,彰显华为云在人脸识别领域的创新能力.这是华为云首次斩获人脸检测领域的世界纪录, ...

  8. 5.1 python数据结构与算法之算法思想概述

    常见的算法思想概述: 这一章开始介绍算法知识, 为后面的学习奠定基础,除了下一节要介绍的递归外,后面还将详细介绍 动态规划, 贪心等思想, 更重要的是,后续查找,排序等常见算法中,均要涉及到这些基础的 ...

  9. 常见面试之机器学习算法思想简单梳理

    找工作时(IT行业),除了常见的软件开发以外,机器学习岗位也可以当作是一个选择,不少计算机方向的研究生都会接触这个,如果你的研究方向是机器学习/数据挖掘之类,且又对其非常感兴趣的话,可以考虑考虑该岗位 ...

最新文章

  1. leetcode-155 最小栈
  2. Node.js入门(含NVM、NPM、NVM的安装)
  3. 完成这个例子,说出java中针对异常的处理机制。
  4. LeetCode 1019. 链表中的下一个更大节点(单调栈)
  5. pascal和python的区别_Python如何与其他编程语言不同
  6. android tools add native support,使用NDK进行开发android
  7. Vim编辑器显示行号且定义tab键为4个空格
  8. 贪心算法详细讲解(附例题,一看就会)
  9. Java如何实现网页截图?
  10. TcaplusDB君 | 行业新闻汇编(7月1日)
  11. 树莓派RaspBerryPi上使用3g模块
  12. 原来 Elasticsearch 还可以这么理解
  13. 计算单词的长度C++
  14. 幅频特性曲线protues_幅频特性曲线Matlab编程
  15. 高频交易(二)浅谈高频交易中比较成熟的一些交易策略
  16. 基金直销账户体系介绍
  17. 哈希表(散列表)——C++数据结构详解
  18. 织梦将建好网站上传到空间
  19. excel如何将指定内容移动到指定位置
  20. 【演示文稿制作软件】Focusky教程 | 怎样设置图片大小?

热门文章

  1. 14、Kanzi插件——通过Kanzi Engine插件创建自定义属性类型及其元数据+代码解析
  2. 律师向公安部举报称微软黑屏是最大***行为
  3. protools监听_给新手写的万元录音设备选择2020系列(六)监听音箱/耳机
  4. 如何合理的拆分微服务
  5. 苏州Uber优步司机奖励政策(8月31日至9月6日)
  6. os-无法启动服务,原因可能是已被禁用或与其相关联的设备没有启动
  7. 产品经理入门——必备技能之【产品运营】
  8. 联发科:心态决定未来走势
  9. js下载当前页面表格为excel
  10. 【每日面试】2021北京联通Java一面