本文转载自AI公园。

前段时间推送了文章:难以置信的目标检测小妙招:多训练几个epochs,平均一下就能获得更好的模型 ,不少朋友对模型集成感兴趣,本文是个小总结。

作者:Vikas S Shetty

编译:ronghuaiyang

导读

模型集成是一种提升模型能力的常用方法,但通常也会带来推理时间的增加,在物体检测上效果如何,可以看看。

介绍

集成机器学习模型是一种常见的提升模型能力的方式,并已在多个场景中使用,因为它们结合了多个模型的决策,以提高整体性能,但当涉及到基于DNN(深度神经网络)的目标检测模型时,它并不仅仅是合并结果那么简单。

集成的需求

为了在任何模型中获得良好的结果,都需要满足某些标准(数据、超参数)。但在真实场景中,你可能会得到糟糕的训练数据,或者很难找到合适的超参数。在这些情况下,综合多个性能较差的模型可以帮助你获得所需的结果。在某种意义上,集成学习可以被认为是一种通过执行大量额外计算来弥补学习算法不足的方法。另一方面,另一种选择是在一个非集成系统上做更多的学习。对于计算、存储或通信资源的相同增加,集成系统使用两种或两种以上的方法可能会比使用单一方法增加资源的方法更有效地提高整体精度。

看起来挺好,有没有缺点呢?

  • 更难调试或理解预测,因为预测框是根据多个模型绘制的。

  • 推理时间根据模型和使用的模型数量而增加。

  • 尝试不同的模型以获得合适的模型集合是一件耗时的事情。

不同的模型集成

  1. OR方法:如果一个框是由至少一个模型生成的,就会考虑它。

  2. AND方法:如果所有模型产生相同的框,则认为是一个框(如果IOU >0.5)。

  3. 一致性方法:如果大多数模型产生相同的框,则认为是一个框,即如果有m个模型,(m/2 +1)个模型产生相同的框,则认为这个框有效。

  4. 加权融合:这是一种替代NMS的新方法,并指出了其不足之处。

不同的集成方法

在上面的例子中,OR方法的预测得到了所有需要的对象框,但也得到了一个假阳性结果,一致性的方法漏掉了马,AND方法同时漏掉了马和狗。

验证

为了计算不同的集成方法,我们将跟踪以下参数:

  1. True positive:预测框与gt匹配

  2. False Positives:预测框是错误的

  3. False Negatives:没有预测,但是存在gt。

  4. Precision:度量你的预测有多准确。也就是说,你的预测正确的百分比[TP/ (TP + FP)]

  5. Recall:度量gt被预测的百分比[TP/ (TP + FN)]

  6. Average Precision:precision-recall图的曲线下面积

使用的模型

为了理解集成是如何起作用的,我们提供了用于实验的独立模型的结果。

1. YoloV3:

2. Faster R-CNN — ResNeXt 101 [X101-FPN]:

集成实验

1. OR — [YoloV3, X101-FPN]

如果你仔细观察,FPs的数量增加了,这反过来降低了精度。与此同时,TPs数量的增加反过来又增加了召回。这是使用OR方法时可以观察到的一般趋势。

2. AND — [YoloV3, X101-FPN]

与我们使用OR方法观察到的情况相反,在AND方法中,我们最终获得了较高的精度和较低的召回率,因为几乎所有的假阳性都被删除了,因为YoloV3和X101的大多数FPs是不同的。

检测框加权融合

在NMS方法中,如果框的IoU大于某个阈值,则认为框属于单个物体。因此,框的过滤过程取决于这个单一IoU阈值的选择,这影响了模型的性能。然而,设置这个阈值很棘手:如果有多个物体并排存在,那么其中一个就会被删除。NMS丢弃了冗余框,因此不能有效地从不同的模型中产生平均的局部预测。

NMS和WBF之间的主要区别是,WBF利用所有的框,而不是丢弃它们。在上面的例子中,红框是ground truth,蓝框是多个模型做出的预测。请注意,NMS是如何删除冗余框的,但WBF通过考虑所有预测框创建了一个全新的框(融合框)。

3. Weighted Boxes Fusion — [Yolov3, X101-FPN]

YoloV3和X101-FPN的权重比分别为2:1。我们也试着增加有利于X101-FPN的比重(因为它的性能更好),但在性能上没有看到任何显著的差异。从我们读过的加权融合论文中,作者注意到了AP的增加,但如你所见,WBF YoloV3和X101-FPN并不比OR方法好很多。我们注意到的是,大部分的实验涉及至少3个或更多模型。

4. Weighted Boxes Fusion — [Yolov3, X101, R101, R50]

在最后的实验中,我们使用了YoloV3以及我们在Detectron2中训练的3个模型[ResNeXt101-FPN, ResNet101-FPN, ResNet50-FPN]。显然,召回率有一个跳跃(约为传统方法的0.3),但AP的跳跃并不大。另外,需要注意的是,当你向WF方法添加更多模型时,误报的数量会激增。

总结

当使用相互补充的模型时,集成是提高性能的一种很好的方法,但它也会以速度为代价来完成推理。根据需求,可以决定有多少个模型,采用哪种方法,等等。但从我们进行的实验来看,性能提升的数量似乎与一起运行这些模型所需的资源和推断时间不成比例。

英文原文:https://medium.com/inspiredbrilliance/object-detection-through-ensemble-of-models-fed015bc1ee0

END

备注:目标检测

目标检测交流群

2D、3D目标检测等最新资讯,若已为CV君其他账号好友请直接私信。

我爱计算机视觉

微信号:aicvml

QQ群:805388940

微博知乎:@我爱计算机视觉

投稿:amos@52cv.net

网站:www.52cv.net

在看,让更多人看到  

目标检测多模型集成方法总结相关推荐

  1. 收藏 | 目标检测的模型集成与实验

    点上方蓝字计算机视觉联盟获取更多干货 在右上方 ··· 设为星标 ★,与你不见不散 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:作者:Vikas S Shetty  |  编译:rongh ...

  2. 中科院自动化所与华为联合提出!视觉目标检测大模型GAIA

    点上方计算机视觉联盟获取更多干货 仅作学术分享,不代表本公众号立场,侵权联系删除 转载于:机器之心 AI博士笔记系列推荐 周志华<机器学习>手推笔记正式开源!可打印版本附pdf下载链接 中 ...

  3. 常见深度学习模型集成方法

    点击上方"计算机视觉工坊",选择"星标" 干货第一时间送达 历届kaggle竞赛冠军的做法,或简单或复杂,其最后一步必然是集成学习,尽管现有的模型已经很强大了, ...

  4. CVPR 2021 | 视觉目标检测大模型GAIA:面向行业的视觉物体检测一站式解决方案

    作者丨常清 编辑丨机器之心 中国科学院自动化研究所智能感知与计算研究中心联合华为等企业提出面向行业的视觉物体检测一站式解决方案 GAIA. 在深度学习与大数据的浪潮下,视觉目标检测在各个基准数据集上已 ...

  5. 目标检测算法模型YOLOV3原理及其实战 课程简介

    前言 在移植目标检测算法模型到海思AI引擎上运行的过程中,深切感受到理解和掌握算法模型原理的重要性. 基于此,我出了一门专门来讲目标检测算法模型原理及实战的课程.虽然讲的是YOLOV3模型,但是对理解 ...

  6. (一)目标检测-R-CNN模型

    目标检测-R-CNN模型 在CVPR 2014年中Ross Girshick提出R-CNN. 1.1 完整R-CNN结构 不使用暴力方法,而是用候选区域方法(region proposal metho ...

  7. 目标检测 YOLOv5 - 模型的样子

    目标检测 YOLOv5 - 模型的样子 flyfish 文章目录 目标检测 YOLOv5 - 模型的样子 开始加载模型文件 模型的层 模型的属性 模块的名称以及模块本身 模型的权重 模型权重的名字和权 ...

  8. 2021年 遥感图像目标检测SOTA模型及排行榜

    2021年 遥感图像目标检测SOTA模型及排行榜 本文禁止转载!!! Baseline: DOTA1.0 (Task1) DOTA1.0 (Task2) 可视化 不同模型性能(mAP+文章+源码): ...

  9. 《基于海思35xx nnie引擎进行经典目标检测算法模型推理》视频课程介绍

    前言 沉寂两个月,终于将新的视频课程<<基于海思35xx nnie引擎进行经典目标检测算法模型推理>>(其链接为https://edu.csdn.net/course/deta ...

最新文章

  1. Xamarin Essentials教程获取路径文件系统FileSystem
  2. angula简单应用---购物篮
  3. C#使用ping命令
  4. python定时发送邮件
  5. barrier相關知識點整理(还没搞完)
  6. mysql数据库面试总结(一)
  7. getline没有与参数列表匹配的重载函数_C++新增基础功能解析—函数重载功能的使用...
  8. HDU1799 循环多少次?【打表】
  9. 苹果手机各种尺寸详细表以及iPhoneX、iPhoneXS、iPhoneXR、iPhoneXSMax、iPhone 11、iPhone 12、屏幕适配
  10. OSChina 周一乱弹 —— 程序猿到底是多有才?
  11. 百度地图API学习 - 点击地图显示为中心点
  12. android 播放gif方案集合
  13. 如何用HTML和css实现拼图,打造自己的html5拼图小游戏
  14. 凸包(Graham扫描法构建)
  15. unity 多台 显示器 控制_设计专业显示器,哪些参数重要?明基PD2700U显示器给你答案...
  16. 【AI理论学习】对Transformer中Positional Encoding的理解
  17. My Sql报错:1273 - Unknown collation: ‘utf8_chinese_ci‘
  18. 机器人算法工程师入门指南(四)常用技能与如何备战offer
  19. 小成开发日记---利用Qt/C++实现基于Udp协议的网络聊天室(分服务端和客户端的开发【轻聊v1.0.1】)
  20. php第一章:4.Apache加载php模块 且分配工作给php

热门文章

  1. C++/C--istringstream、ostringstream、stringstream 类介绍【转载】
  2. PCL1.8.0+Windows+VS2013配置
  3. 设计模式学习笔记——观察者(Observer)模式
  4. toj 4608 Ball in a Rectangle
  5. [编辑修订01]git 常用命令和Gerrit的联合使用常用命令
  6. oracle 创建clob类型字段的索引,LOB字段相关概念(自动创建LOB索引段和重建索引方法)...
  7. ppt计算机控制系统实例,第部分计算机控制系统的应用实例.ppt
  8. 计算机都要学python吗_大学计算机要不要学python?
  9. python json操作_4个小窍门,让你在Python中高效使用JSON
  10. html判断数组中存在不,js判断数组中是否已存在某个值,indexOf的使用说明