阿里达摩院开源DAMO-YOLO:超越了一众YOLO系列方法

2012efa42c406de72dea4fd9af97319b.gif

向AI转型的程序员都关注了这个号👇👇👇

8cb39075e79408075890e774b58ac524.jpeg

1.简介

DAMO-YOLO是一个兼顾速度与精度的目标检测框架,其效果超越了目前的一众YOLO系列方法,在实现SOTA的同时,保持了很高的推理速度。DAMO-YOLO是在YOLO框架基础上引入了一系列新技术,对整个检测框架进行了大幅的修改。具体包括:基于NAS搜索的新检测backbone结构,更深的neck结构,精简的head结构,以及引入蒸馏技术实现效果的进一步提升。模型之外,DAMO-YOLO还提供高效的训练策略以及便捷易用的部署工具,能够快速解决工业落地中的实际问题!

使用入口:

https://modelscope.cn/models/damo/cv_tinynas_object-detection_damoyolo/summary

代码地址:GitHub - tinyvision/damo-yolo

9f1e6775e8bb818ec6379ba2dfb6db48.jpeg
图1 DAMO-YOLO和其他YOLO系列方法的性能对比结果

2. 关键技术

2.1. NAS backbone: MAE-NAS

Backbone的网络结构在目标检测中起着重要的作用。DarkNet在早期YOLO系列中一直占据着主导地位。最近,一些工作也开始探索其他对检测有效的网络结构,比如YOLOv6和YOLOv7。然而,这些网络仍然是人工设计的。随着神经网络结构搜索技术(NAS)的发展,出现了许多可以用于检测任务的NAS网络结构,并且相比于传统手动设计的网络,NAS网络结构可以达到能好的检测效果。因此,我们利用NAS技术搜索出合适的网络结构作为我们的DAMO-YOLO的backbone。这里我们采用的是阿里自研的MAE-NAS(开源链接)。MAE-NAS是一种启发式和免训练的NAS搜索方法,可以用于快速大范围搜索各种不同规模的骨干网络结构。

MAE-NAS利用信息论理论从熵的角度去评测初始化网络,评测过程不需要任何训练过程,从而解决了之前NAS搜索方法需要训练再评测的弊端。实现短时间内大范围的网络搜索,降低搜索成本的同时,也提高了可以找到的潜在更优网络结构的可能性。特别值得注意的是,在MAE-NAS搜索中,我们使用K1K3作为基本搜索模块。同时,受YOLOv6启发,我们直接使用GPU推理延迟Latency,而不是 Flops,作为目标预算。搜索后,我们将空间金字塔池化和焦点模块应用到最后的骨干。

下表1中列出了不同的主干的性能对比结果。可以看到MAE-NAS骨干网络的效果要明显优于DarkNet网络结构。

5dde029a7470527e3584949befaac27a.jpeg
表1 MAE-NAS网络结构和DarkNet对比

2.2. Large Neck: RepGFPN

在FPN(Feature Pyramid Network)中,多尺度特征融合旨在对从backbone不同stage输出的特征进行聚合,从而增强输出特征的表达能力,提升模型性能。传统的FPN引入top-to-down的路径来融合多尺度特征。考虑到单向信息流的限制,PAFPN增加了一个额外的自底向上的路径聚合网络,然而增加了计算成本。为了降低计算量,YOLO系列检测网络选择带有CSPNet的PAFPN来融合来自backbone输出的多尺度特征。

我们在ICLR2022的工作GiraffeDet中提出了新颖的Light-Backbone Heavy-Neck结构并达到了SOTA性能,原因在于给出的neck结构GFPN(Generalized FPN)能够充分交换高级语义信息和低级空间信息。在GFPN中,多尺度特征融合发生在前一层和当前层的不同尺度特征中,此外,log_2(n)的跨层连接提供了更有效的信息传输,可以扩展到更深的网络。

因此,我们尝试将GFPN引入到DAMO-YOLO中,相比于PANet,我们取得了更高的精度,这是在预期之中的。然而与之同时,GFPN带来了模型推理时延的增加,使得精度/时延的权衡并未取得较大的优势。通过对原始GFPN结构的分析,我们将原因归结为以下几个方面:(1)不同尺度特征共享相同通道数,导致难以给出一个最优通道数来保证高层低分辨率特征和低层高分辨率特征具有同样丰富的表达能力;(2)GFPN采用Queen-Fusion强化特征之间的融合,而Queen-Fusion包含大量的上采样和下采样操作来实现不同尺度特征的融合,极大影响推理速度;(3)GFPN中使用的3x3卷积进行跨尺度特征融合的效率不高,不能满足轻量级计算量的需求,需要进一步优化。

eabb8f32a6056b194c322adb04a56d02.jpeg
图2 DAMO-YOLO整体框架图

经过上述分析后,我们在GFPN的基础上提出了新的Efficient-RepGFPN来满足实时目标检测中neck的设计,主要包括以下改进:(1)不同尺度特征使用不同的通道数,从而在轻量级计算量约束下,灵活控制高层特征和低层特征的表达能力;(2)删除了Queen-Fusion中的额外的上采样操作,在精度下降较少的情况下,较大降低模型推理时延;(3)将原始基于卷积的特征融合改进为CSPNet连接,同时引入重参数化思想和ELAN连接,在不增加更多计算量的同时,提升模型的精度。最终的Efficient-RepGFPN网络结构如上图2所示。

Efficient-RepNGFPN的消融实验见下表2。

从表2-(1)可以看到,灵活控制不同尺度特征图的通道数,我们能够取得相比于所有尺度特征图共享相同通道数更高的精度,表明灵活控制高层特征和低层特征的表达能力能够带来更多收益。同时,通过控制模型在同一计算量级别,我们也做了Efficient-RepGFPN中depth/width的权衡对比,当depth=3,width=(96,192,384)时,模型取得了最高精度。表2-(2)对Queen-Fusion连接进行了消融实验对比,当不增加额外的上采样及下采样算子时,neck结构为PANet连接。我们尝试了只增加上采样算子和只增加下采样算子以及完整的Queen-Fusion结构,模型精度均取得了提升。然而,只增加上采样算子带来了0.6ms的推理时间增加,精度仅提升0.3,远远低于只增加额外下采样算子的精度/时延收益,因此在最终设计上我们摒弃了额外的上采样算子。

表2-(3)中,我们对多尺度特征融合方式进行了实验对比,从表中可以看到,在低计算量约束下,CSPNet的特征融合方式要远优于基于卷积的融合方式,同时,引入重参数化思想及ELAN的连接能够在Latency少量增加的情况下,带来大的精度提升。

78b0bf785275aa330b39544763636a4f.jpeg
表2 (1)不同“尺度-通道数”组合结果;(2)Queen-Fusion中上下采样的影响;(3)CSP中重采样和ELAN的影响

2.3. Small Head: ZeroHead

在这个小节,我们主要介绍DAMO-YOLO中的检测头(ZeroHead)。目前目标检测方法中,比较常见的是采用Decouple Head来作为检测头。Decouple Head可以实现了更高的 AP,但会一定程度上增加模型的计算时间。为了平衡模型速度和性能,我们进行了下表3的实验来选择合适的neck和head比重。

2ea607a9d9394e5739eb4f45f729a399.jpeg
表3 Neck和Head不同比重对训练结果的影响

从表2中我们可以发现“大neck,小head”的结构会获得更好的性能。因此,我们丢弃了之前方法中常使用的Decouple Head,只保留了用于分类和回归任务的一层线性投影层,我们称其为ZeroHead。ZeroHead可以最大限度地压缩检测头的计算量,从而省出更大的空间给更复杂的Neck,比如我们的RepGFPN neck。值得注意的是ZeroHead 本质上可以被认为是一种Couple Head,这也是和之前方法所采样的Decouple Head的一个明显不同。

2.4. Label Assignment: AlignOTA

标签分配(label assignment)是物体检测中的一个关键组件,以往的静态分配方法往往只考虑anchor与ground truth的IoU,这类分配方法容易导致分类任务的失焦,如图3左图所示,手的检测框要用玩偶熊身上的点去做预测,这对模型来说是不合理的为难,理想中的标签如图3右图所示。另外,此类方法依赖anchor先验,在工业应用中,被检物体尺度变化多端,要找到一个最合适的anchor先验十分繁琐。

d1ca1f4e7146cdd5dc7665f8069138a4.jpeg
图3 静态和动态分配差异

为了克服以上的问题,学术界涌现了一批利用模型的分类和回归预测值进行动态分配的标签分配方法,该类方法消除了标签分配对anchor的依赖,并且在分配时同时考虑分类和回归的影响,一定程度上消除失焦问题。OTA 是其中的一个经典工作,其根据模型的分类和回归预测值计算分配cost,并且使用Sinkhorn-Knopp算法求解全局最优匹配,在复杂分配场景下性能优异,因此这里我们采用OTA作为我们的匹配策略。

但是OTA本身也存在一定的问题,在计算匹配时,并不能保证同时兼顾到分类和回归对匹配的影响。换句话说,存在分类回归不对齐的问题。针对这个问题,我们对匹配分数的计算方式进行了修改,如下面公式所示。

803dcf5852f52be5cde030cb6ed99afc.jpeg

其中, |IoU−clspred| 用来调节分类和回归的匹配程度, CE(clspred,IoU) 用来将分类的硬标签转化为基于IOU的软数值。

表4给出了改进后的AlignOTA和原OTA的比较,可以看到AlignOTA在效果上有着明显的提升。

ffd1d6a3df97ecee1787f0ca370432e4.jpeg
表4 AlignOTA和原OTA效果比较

2.5. Distillation Enhancement

模型蒸馏是提升模型效果的一种有效手段。YOLOv6尝试在其large模型中使用自蒸馏技术提升模型效果。但整体来说目前在YOLO系列的工作中,蒸馏的应用还不是很普遍,特别是小模型上的蒸馏。我们针对DAMO-YOLO做了专门的研究,最终实用蒸馏技术在DAMO-YOLO的各尺度模型上实现了效果的提升。

DAMO-YOLO的训练过程分为两阶段,第一阶段是基于强马赛克增强的训练,共284ep,第二阶段是关闭马赛克增强的训练,共16ep。我们发现在第一阶段使用蒸馏技术,可以实现更快速的收敛,达到更高的效果;但是第二阶段继续使用蒸馏却无法进一步提升效果。我们认为,第二阶段数据分布和第一阶段相比已经出现了比较大的偏差,第二阶段的知识蒸馏会一定程度上破坏第一阶段已经学到的知识分布。而第二阶段过短的训练时间,使得模型无法从第一阶段知识分布充分过度到第二阶段知识分布。但如果强行拉长训练周期或者提高学习率,一方面增加了训练成本和时间,另一方面也会弱化第一阶段蒸馏所带来的效果。因此,这里我们在第二阶段关闭蒸馏操作,只进行第一阶段蒸馏。

04c0d57a2884395bc192ad36cf2d8c21.jpeg
图4 不同蒸馏权重下分类loss和准确率的变化关系

其次,我们在蒸馏中引入了两个技术,一个是对齐模块,用于把teacher和student的特征图大小进行对齐。另一个是归一化操作,用于弱化teacher和student之间数值尺度波动所造成影响,起作用可以看成是一种用于KL loss的动态温度系数。

除此之外,我们还发现蒸馏的loss权重和head大小对蒸馏效果也有着很大影响。如上图4所示,当蒸馏loss权重变大时,分类loss收敛变慢,且出现很大波动。我们知道,分类loss对检测影响非常大。其过晚的收敛会导致模型优化不够充分,从而影响最终的检测效果。因此不同于之前蒸馏的经验,在DAMO-YOLO中,我们采用很小的蒸馏权重来控制蒸馏loss(weight=0.5),弱化了蒸馏loss和分类loss之间的冲突。而且,针对蒸馏loss收敛速度快于分类loss的特点,我们用cosine weight代替constant weight,来提升蒸馏loss在训练初期的主导作用。

同时,为了进一步提升分类loss和蒸馏loss优化时的一致性,我们采用更小的Head来训练检测,这里使用的是ZeroHead。ZeroHead只包含了一个用于任务投影的线性层。因此,相当于是蒸馏loss和分类loss同时在优化同一个特征空间。随着训练的进行,学习到的空间可以同时满足蒸馏和分类两者的优化。最终我们还是实验了不同蒸馏方法,结果如下表5。发现CWD蒸馏可以达到更好的效果,Bravo CWD。

4e769e580ac1315de1995a44c5ba53a7.jpeg
表5 不同蒸馏方法的结果对比

3. 性能对比

Damo-YOLO团队在MSCOCO val集上验证了DAMO-YOLO的性能。可以看到,结合上述的改进点,DAMO-YOLO在严格限制Latency的情况下精度取得了显著的提升,创造了新SOTA。

e26aa080c0485b878fe08cf3408c512f.jpeg

免费送书】

👇👇👇

在分享本文到朋友圈,点赞越多中奖的概率越大,选Top3名同学,包邮送出《PyTorch深度学习之目标检测》。

活动截止日期:2022年12月23日


3a66230a484c5ae10b3dcf8510fc0736.jpeg

【内容简介】

《PyTorch深度学习之目标检测》首先从人工智能产业的发展史和机器“眼中”的图像世界开始讲述,逐步引导读者进入机器学习的图像处理当中;然后讲解深度学习中实现目标检测的主要算法,和以PyTorch框架为基础构建的神经网络;最后的实战部分详细讲解了如何使用目标检测算法实现具体项目。

全书共10章,涵盖内容包括:人工智能的历史和发展前景、深度学习的基础知识、卷积神经网络基础知识、PyTorch基础、目标检测算法、单阶段目标检测算法、双阶段目标检测算法、神经网络示例、污损遮挡号牌识别实战和地形目标识别实战。




机器学习算法AI大数据技术搜索公众号添加: datanlp长按图片,识别二维码
阅读过本文的人还看了以下文章:
TensorFlow 2.0深度学习案例实战基于40万表格数据集TableBank,用MaskRCNN做表格检测《基于深度学习的自然语言处理》中/英PDFDeep Learning 中文版初版-周志华团队【全套视频课】最全的目标检测算法系列讲解,通俗易懂!《美团机器学习实践》_美团算法团队.pdf《深度学习入门:基于Python的理论与实现》高清中文PDF+源码《深度学习:基于Keras的Python实践》PDF和代码特征提取与图像处理(第二版).pdfpython就业班学习视频,从入门到实战项目2019最新《PyTorch自然语言处理》英、中文版PDF+源码
《21个项目玩转深度学习:基于TensorFlow的实践详解》完整版PDF+附书代码《深度学习之pytorch》pdf+附书源码PyTorch深度学习快速实战入门《pytorch-handbook》【下载】豆瓣评分8.1,《机器学习实战:基于Scikit-Learn和TensorFlow》《Python数据分析与挖掘实战》PDF+完整源码汽车行业完整知识图谱项目实战视频(全23课)李沐大神开源《动手学深度学习》,加州伯克利深度学习(2019春)教材笔记、代码清晰易懂!李航《统计学习方法》最新资源全套!
《神经网络与深度学习》最新2018版中英PDF+源码将机器学习模型部署为REST API
FashionAI服装属性标签图像识别Top1-5方案分享重要开源!CNN-RNN-CTC 实现手写汉字识别yolo3 检测出图像中的不规则汉字
同样是机器学习算法工程师,你的面试为什么过不了?前海征信大数据算法:风险概率预测【Keras】完整实现‘交通标志’分类、‘票据’分类两个项目,让你掌握深度学习图像分类VGG16迁移学习,实现医学图像识别分类工程项目
特征工程(一)特征工程(二) :文本数据的展开、过滤和分块特征工程(三):特征缩放,从词袋到 TF-IDF特征工程(四): 类别特征特征工程(五): PCA 降维特征工程(六): 非线性特征提取和模型堆叠特征工程(七):图像特征提取和深度学习如何利用全新的决策树集成级联结构gcForest做特征工程并打分?Machine Learning Yearning 中文翻译稿
蚂蚁金服2018秋招-算法工程师(共四面)通过全球AI挑战-场景分类的比赛源码(多模型融合)斯坦福CS230官方指南:CNN、RNN及使用技巧速查(打印收藏)python+flask搭建CNN在线识别手写中文网站
中科院Kaggle全球文本匹配竞赛华人第1名团队-深度学习与特征工程
不断更新资源
深度学习、机器学习、数据分析、python搜索公众号添加: datayx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/59200.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

坐拥270亿参数!阿里达摩院发布超大规模语言模型PLUG,上能写诗词歌赋、下能对答如流...

作者 | 马超 出品 | CSDN(ID:CSDNnews) 日前,阿里达摩院发布了最新中文预训练语言模型 PLUG,在 PLUG 生成的各种诗歌与小说中,不时灵光闪现式的金句、妙语令人啧啧称奇。 但是以笔者从业多年的经验看&#…

如何在html中插入背景音乐

注:本方法是通过外链的方式插入背景音乐 1.搜索网易云音乐 2.选择一首音乐,也可以登录后查看自己喜欢的音乐 3.点击生成外链播放器 4.有的歌曲会有权限保护,无法生成外链,这是缺点,我们选择另一首歌 5.可以看到如下代码,不建议使用flash插件,毕竟谷歌浏览器禁用了,影响体验,默…

虚幻4为场景添加背景音乐的三种方法

根据官方文档介绍,虚幻在场景当中添加音乐有三种方法,我这里也不知道它到底支持哪些音频,反正导入mp3文件不好用,改成wav文件就没问题了,所以大家在导入文件的时候尽量使用wav文件,就不要使用其他的音频文件…

关于如何在html网页中插入可以自动播放的背景音乐

昨天想做一个带有自动播放背景音乐的html网页,频繁碰壁,最后终于找到问题所在: 一般大家会考虑到audio标签,然后在标签里使用autoplay。理论上是可以的,但是一定要注意浏览器的设置,浏览器一般会自动阻断背…

H5背景音乐解决方案

前言背景音乐播放 1 自动播放 1 微信问题2 Safari问题3 解决方案代码 2 点击播放 离开页面关闭音乐缓存状态 1 客户端存储数据方法2 示例 完整解决方案代码 1. 前言 很多H5的项目会用到背景音乐,虽然是很小的一个模块,但是有不少的坑。本文总结了背景音…

【向生活低头】如何在Gold Wave软件中为声音添加背景音乐

很奇怪,百度了很久,找到的方法都不可以用(都用的混响),但大家又都很统一,我感觉很奇怪。 最后,我找到了这个视频,(用的混音)这次终于可以了。 记录&#xff0…

告别枯燥,ppt背景音乐怎么设置?

大家用过ppt吗?在办公软件中,ppt最常用到的就是在于广告宣传这方面,因为ppt里面的各种元素都能让你的宣传更加灵动。ppt背景音乐怎么设置?在制作ppt的时候,当表面因素勾勒得差不多时,如果设置一个背景音乐可…

chatgpt赋能python:Python如何减慢输出速度

Python如何减慢输出速度 Python是一种高级编程语言,被广泛应用于数据分析、人工智能和Web开发中。在这里,我们将探讨一种方法,即如何减慢Python的输出速度,从而进行更有效的调试和优化。 什么是Python的输出速度? 在…

【观察】数据分析还能这样玩?《事业告急——月老KPI下降分析》的“制胜秘籍”...

谈起去年参加2022帆软数据分析大赛时,新希望集团BI项目经理林家喜仍然“记忆犹新”,凭借参赛作品《事业告急——月老KPI下降分析》,他带领的团队在193份参赛作品中“脱颖而出”,斩获了大赛的“最佳展现创意奖”。 事实上&#xff…

AnalyticDB(ADB)+LLM:构建AIGC时代下企业专属Chatbot

为什么Chatbot需要大语言模型向量数据库? 这个春天,最让人震感的科技产品莫过于ChatGPT的横空出世,通过大语言模型(LLM)让人们看到了生成式AI能实现到和人类语言高度相仿的语言表达能力,AI不再遥不可及而已…

ModaHub魔搭社区:如何基于向量数据库+LLM(大语言模型),打造更懂你的企业专属Chatbot?

目录 1、为什么Chatbot需要大语言模型+向量数据库? 2、什么是向量数据库? 3、LLM大语言模型+ADB-PG:打造企业专属Chatbot 4、ADB-PG:内置向量检索+全文检索的一站式企业知识数据库 5、总结 1、为什么Chatbot需要大语言模型+向量数据库? 这个春天,最让人震感的科技产品…

Photon AI Translator 和做产品的一些思考

近 4 个月内我一直在做 Apple 平台的产品,虽然从使用量来说「简体中文」用户是占多数,但我一直有做多语言的支持:英语、简体中文和繁体中文。习惯上 Google 翻译的我,基本上在使用 Xcode 过程中也会一直在浏览器开着 Google Trans…

大一新生调查报告——新生遇到的问题与需求

小组成员: 信通6班何若溪(人际关系主题),章玉(学习压力主题),袁博秋(思乡主题) 信通7班梁凌(信息整合与报告制作) 信通8班夏姝婷(时间…

基于PHP的大学生问卷调查系统

一 项目介绍 基于PHP的大学生问卷调查系统 数据库mysql ,可搭建在phpstudy下,实现快速部署! 二 主要功能 用户 1 登录 2 填写问卷 管理员 1 登录 2 问卷/问题(增删改查) 3 问卷统计结果(按选择结果百分比显示) 4 问卷回收情况(参与用户和未…

大学生社团管理系统数据需求(二)

目录 前言 一、用户、管理员登录业务数据流图 二、用户、管理员修改信息业务数据流图 三、用户申请社团数据流图 四、用户报名社团活动数据流图 总结 前言 上次我写了大学生社团管理系统的数据字典,列出了主体及他们的内容,今天我想分享一下我画的…

广告行业中那些趣事系列64:低成本训练一个媲美ChatGPT效果的Vicuna模型

导读:本文是“数据拾光者”专栏的第六十四篇文章,这个系列将介绍在广告行业中自然语言处理和推荐系统实践。本篇主要从理论到实践介绍低成本训练一个媲美ChatGPT效果的Vicuna模型,对于希望搭建自己的大语言模型并应用到实际业务场景感兴趣的小…

618,你会入手哪些书?【文末送书】

好书分享 前沿技术人工智能半导体新一代通信与信息技术网络空间安全参与规则 一年一度的618又到啦!今年的618就不要乱买啦,衣服买多了会被淘汰,电子产品买多了会过时,零食买多了会增肥,最后怎么看都不划算。可是如果你…

Bito AI:免费使用 AI 编写代码/修复错误/创建测试用例 Use AI智能聊天 to 10x dev work

目录 Bito AI 简介 关键是:免费的!注册就能使用!!还不赶紧用起来??!https://bito.co/

你真的懂树吗?二叉树、AVL平衡二叉树、伸展树、B-树和B+树原理和实现代码详解...

树(Tree)是一种相当灵活的数据结构(上一节已经详细讲解了基本的数据结构:线性表、栈和队列),你可能接触过二叉树,但是树的使用并不限于此,从简单的使用二叉树进行数据排序,到使用B-树或B+树设计数据库引擎,以及目前热门的人工智能机器学习都使用到树,例如决策树(De…

人工智能预测股票涨停?靠谱吗?好像行哦,那不发财了?

背景 人工智能很火,各种秀。股票让人欢喜让人忧。它们结合能擦出什么样的火花? 我从去年5月学编程,树立目标:数据分析股市,做快乐盈利股民。达成阶段目标:预测股票涨停。特写文章记录和分享,也…