Fast-Rcnn和YOLO的区别及mAP值的计算

这篇具有很好参考价值的文章主要介绍了Fast-Rcnn和YOLO的区别及mAP值的计算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Fast-Rcnn和YOLO的区别及mAP值的计算

  1. 算法分类:YOLO所属类别为one-stage,Fast-Rcnn所属类别为two-stage
    • two stage:
      • 先进行区域生成,该区域称为region proposal(RP,一个有可能包含物体的预选框);再通过卷积神经网络进行样本分类,精度高,适合做高检测精度的任务
      • 任务流程:特征提取—生成RP—分类/定位回归
      • 常见two stage:R-CNN、SPP-Net、Fast R-CNN、Faster R-CNN、R-FCN
      • two stage多了一步预选框,Fast-Rcnn为典型的two-stage类型,其准确度比无预选框的算法高,但是其速度要慢上不少Fast-Rcnn和YOLO的区别及mAP值的计算
    • one stage:
      • 不用RP,直接在网络中提取特征来预测物体的分类和位置,速度非常快,适合做实时检测任务,但是效果不会太好
      • 任务流程:特征提取—分类/定位回归
      • 常见one stage:OverFeat、YOLOv1、YOLOv2、YOLOv3、SSD、RetinaNet
      • one-stage无预选框,YOLO(You Only Look Once)算法为典型的one-stage算法,其舍弃了一部分准确率来提高其速度
        Fast-Rcnn和YOLO的区别及mAP值的计算
  2. 原理

    目标检测分为两大系列——RCNN系列和YOLO系列:

    • RCNN系列是基于区域检测的代表性算法
    • YOLO是基于区域提取的代表性算法
    • 而SSD是基于前两个系列的改进
  3. 候选区域的产生
    1. 滑动窗口法:滑窗法简单易于理解,但是不同窗口大小进行图像全局搜索导致效率低下,而且设计窗口大小时候还需要考虑物体的长宽比。所以,对于实时性要求较高的分类器,不推荐使用滑窗法。
      • 其主要思想:首先对输入图像进行不同窗口大小的滑窗进行从左往右、从上到下的滑动。每次滑动时候对当前窗口执行分类器(分类器是事先训练好的)。如果当前窗口得到较高的分类概率,则认为检测到了物体。对每个不同窗口大小的滑窗都进行检测后,会得到不同窗口检测到的物体标记,这些窗口大小会存在重复较高的部分,最后采用非极大值抑制(Non-Maximum Suppression, NMS)的方法进行筛选。最终,经过NMS筛选后获得检测到的物体。
    2. 选择性搜索:滑窗法类似穷举进行图像子区域搜索,但是一般情况下图像中大部分子区域是没有物体的。学者们自然而然想到只对图像中最有可能包含物体的区域进行搜索以此来提高计算效率。选择搜索(selective search,简称SS)方法是当下最为熟知的图像bounding boxes提取算法,由Koen E.A于2011年提出。其优点为:计算效率优于滑窗法,由于采用子区域合并策略,所以可以包含各种大小的疑似物体框。合并区域相似的指标多样性,提高了检测物体的概率。
      • 其主要思想:图像中物体可能存在的区域应该是有某些相似性或者连续性区域的。因此,选择搜索基于上面这一想法采用子区域合并的方法进行提取bounding boxes。首先,对输入图像进行分割算法产生许多小的子区域。其次,根据这些子区域之间相似性(相似性标准主要有颜色、纹理、大小等等)进行区域合并,不断的进行区域迭代合并。每次迭代过程中对这些合并的子区域做bounding boxes(外切矩形),这些子区域外切矩形就是通常所说的候选框。
      • 选择搜索流程
        • step0:生成区域集R
        • step1:计算区域集R里每个相邻区域的相似度S = s 1 , s 2 , … S={s1, s2,…}S=s1,s2,…
        • step2:找出相似度最高的两个区域,将其合并为新集,添加进R
        • step3:从S中移除所有与step2中有关的子集
        • step4:计算新集与所有子集的相似度
        • step5:跳至step2,直至S为空
  4. 评估效果:
    1. 使用IoU(Intersection over Union,交并比)来判断模型的好坏。所谓交并比,是指预测边框、实际边框交集和并集的比率,一般约定0.5为一个可以接受的值。
      Fast-Rcnn和YOLO的区别及mAP值的计算

    2. 使用mAP综合衡量检测效果,单看Precision和Recall是不行的,因为Precision和Recall是成反比的关系

      Precision=TP/(TP+FP)

      Recall = TP/(TP+FN)

      具体计算的例子:

      已知条件:班级中总人数100人,其中男生80人,女生20人

      目标:找出所有女生

      结果:从班级中选择了50人,其中20人是女生,还错误的把30名男生挑出来了

      相关(Relevant),正类 不相关(NonRelevant),负类
      被检索到(Retrieved) true position(TP 正类判定为正类,例子中就是把女生正确判定为 “这是个女生”) false position(FP 负类判定为正类,”存伪“,例子中就是把男生误判为 “这是个女生”)
      未被检索到(Not Retrieved) false negative(FN 正类判定为负类,“去真”,例子中就是把女生误判为 “这是个男生“) true negative(TN 负类判定为负类,例子中就是把男生判断为 “这是个男生“)

      TP=20,FP=30.FN=0,TN=0

    3. 指标分析

      基于置信阈值来计算Precision和Recall,例如分别计算0.9,0.8,0.7,必须要给定一个阈值,这样才能将其他框排除掉。当置信阈值选择为0.9时,那么置信度为0.8和0.7的框都会被过滤掉了。当选择框的时候,可以选择置信度最大的一个框作为检测框。

      如何计算mAP呢?此时需要把所有阈值都考虑进来,mAP就是所有类别的平均(就是综合考虑所有P和R的情况,综合得出来的一个指标值)

      P-R图如图所示

    Fast-Rcnn和YOLO的区别及mAP值的计算

    而mAP值即是P-R图的极大值所围成的图形的面积,如下所示:mAP= A1+A2+A3+A4
    Fast-Rcnn和YOLO的区别及mAP值的计算文章来源地址https://www.toymoban.com/news/detail-452993.html

到了这里,关于Fast-Rcnn和YOLO的区别及mAP值的计算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 目标检测前言,RCNN,Fast RCNN,Faster RCNN

    找到概率最高的目标之后,与其他目标进行IOU交并比计算,若高于一定值,则说明这两张图片预测的是同一个目标,则把概率低的目标删掉 因为是直接得到特征图之后进行映射,所以不限制输入图像尺寸 Gx,Gy是调整中心点,Dx(P)是回归参数,exp就是e的多少次方 从提取到的

    2024年02月07日
    浏览(53)
  • YOLO系列训练时出现loss出现nan值或者测试时P\R\map全部为0值的解决办法(GTX16xx系列显卡大坑)

    目录 0 前言(用处不大,可以直接看解决办法) 1 产生问题的原因 2 解决办法 YOLO V5 YOLO V7 2 小结 ☆ 这个问题是GTX16xx用户的大坑,基本上每个GTX16xx用户使用YOLO系列算法,都会遇到这些问题。 这个方法 是不彻底的解决办法 ,牺牲了训练的时间来换取问题的解决,经过本人在

    2024年02月02日
    浏览(53)
  • 经典目标检测神经网络 - RCNN、SSD、YOLO

    目标检测算法主要分两类:One-Stage与Two-Stage。One-Stage与Two-Stage是两种不同的思路,其各有各的优缺点。 One-Stage     主要思路:直接通过卷积神经网络提取特征,预测目标的分类与定位; Two-Stage     主要思路:先进行区域生成,即生成候选区域(Region Proposal),在通

    2024年02月08日
    浏览(43)
  • 【计算机视觉面经四】基于深度学习的目标检测算法面试必备(RCNN~YOLOv5)

    目标检测算法主要包括:【两阶段】目标检测算法、【多阶段】目标检测算法、【单阶段】目标检测算法。 什么是两阶段目标检测算法,与单阶段目标检测有什么区别? 两阶段目标检测算法因需要进行两阶段的处理:1)候选区域的获取,2)候选区域分类和回归,也称为基于

    2024年03月27日
    浏览(61)
  • 目标检测算法(R-CNN,fast R-CNN,faster R-CNN,yolo,SSD,yoloV2,yoloV3,yoloV4,yoloV5,yoloV6,yoloV7)

    深度学习目前已经应用到了各个领域,应用场景大体分为三类:物体识别,目标检测,自然语言处理。 目标检测可以理解为是物体识别和物体定位的综合 ,不仅仅要识别出物体属于哪个分类,更重要的是得到物体在图片中的具体位置。 为了完成这两个任务,目标检测模型分

    2024年02月02日
    浏览(49)
  • Java Map中Value值的排序(利用Map统计次数)

    引起我思考Java中Map排序问题,是来源于 LeetCode 501. 二叉搜索树中的众数。 这道题要求根据一棵给定的二叉搜索树,在树中找出结点中出现次数最多的那个值,且不唯一。换句话说,也就是在树中搜索众数,且不唯一。 看到这道题时,首先就想到要遍历整棵树中的每个结点,

    2024年02月02日
    浏览(55)
  • 目标检测(Object Detection):Fast R-CNN,YOLO v3

    目录 目标检测(Object Detection) R-CNN SPPNet Fast R-CNN YOLO v1 YOLO v2 YOLO v3 任务是计算机视觉中非常重要的基础问题,也是解决图像分割、目标跟踪、图像描述等问题的基础。目标检测是检测输入图像是否存在给定类别的物体,如果存在,输出物体在图像中的位置信息(矩形框的坐标

    2024年02月11日
    浏览(43)
  • java Map集合里面取键和值的四种方式

    使用Map的keySet()方法获取键集合,再使用forEach循环遍历键集合,通过Map的get()方法获取对应的值。例如: 使用Map的values()方法获取值集合,再使用forEach循环遍历值集合。例如: 使用Map的entrySet()方法获取键值对集合,再使用forEach循环遍历键值对集合,通过Entry的getKey()方法获取

    2024年01月15日
    浏览(46)
  • MySQL 中NULL和空值的区别

    简介 NULL也就是在字段中存储NULL值,空值也就是字段中存储空字符(’’)。 区别 1、空值不占空间,NULL值占空间。当字段不为NULL时,也可以插入空值。 2、当使用 IS NOT NULL 或者 IS NULL 时,只能查出字段中没有不为NULL的或者为 NULL 的,不能查出空值。 3、判断NULL 用IS NULL 或者

    2024年02月15日
    浏览(56)
  • 【深度学习】计算机视觉(11)——Faster RCNN(下)

    接上一篇。其实没什么东西了,只是因为参考的文章太多太多太多太多太多太多了没办法附在文末,所以我直接新开了一篇。 参考来源: 一文读懂Faster RCNN Cython 的简要入门、编译及使用 【python基础】easydict的安装与使用 TensorFlow2深度学习实战(十六):目标检测算法Faster

    2024年02月01日
    浏览(70)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包