轻量型目标检测算法一次看个够

技术

picture.image

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

近两年目标检测算法发展非常的快,恍惚一看,单阶段算法几乎统一了目标检测,各种高性能的目标检测算法层出不穷,印象中是在YOLOv4出来后,基于YOLO的改进变得一发不可收拾,各种改进版本精度越来越高、速度越来越快,同时模型体积也越来越小,越来越多的轻量型模型涌现,更适合移动端部署。这篇文章花点时间来盘点一下一些在github上比较火的轻量型目标检测算法,收藏也方便以后工程中实践。

一、yolov5

github:https://github.com/ultralytics/yolov5

说到目前最火的目标检测算法,yolov5绝对当仁不让,如果说yolov4是导火线,那yolov5就是引爆目标检测界的那个火石,记得当初刚出来的时候,还被大家扣上一个“名不正,言不顺”的帽子,因为没有论文产出,甚者很多工作和yolov4高度重合,很多业内人事都不愿意承认它作为yolo系列的“正统”,但是随着时间的演进,yolov5逐渐为自己证明,其高精度、低耗时、易训练、易部署、好上手等特点,让yolov5的热度一举超过yolov4,成为当前目标检测界的主流,并且作者也一直在维护,新版本精度越来越高、速度越来越快、模型越来越小,截至目前为止,yolov5已经迭代到了第六个版本。

关于yolov5的原理我就不多介绍了,hub中提供了五个基线版本,x、l、m、s、n,前四个模型是一直都有的,虽然说它们模型体积相对于其他算法而言已经很小了,但是对于移动端而言还是太大了一些,所以作者推出了了n版本,专门为了移动端设计,参数量仅为1.9M,map精度也达到了28.4,各个模型精度指标如下所示:

picture.image

二、yolox

github:https://github.com/Megvii-BaseDetection/YOLOX

yolox是作为今年的yolo系列的后起之秀,一出来各种夸张的标题就把我吓到了(不得不说有些公众号的标题党太恶心了),还好自身实力过硬,也收割了一波粉丝,最关键的是把部署的代码都帮你写好了,可谓业界良心,这也为了后面的目标检测算法竖立了标杆。

yolox的原理网上也很多,篇幅原因我就不详细讲解了,来看下yolox的精度指标,与yolov5对比,似乎每个版本的精度都有很大提升,实际项目情况我也没有对比过,不过在发布后的大半年时间里业内认可度非常不错,两者都是非常优秀的算法,只能说萝卜青菜,各有所爱了,小孩子才做选择,我全都要!!

picture.image

picture.image

因为本文主要介绍的是轻量型模型,所以重点关注轻量的模型Nano和tiny版本,nano版本在0.91M参数量的情况下,416尺度推理精度达到了25.8,还是非常不错的;再看tiny版本,tiny版本一直是yolo系列中的一个特色,所以yolox也继续发扬了这一项工作,在参数量减少的情况下,大幅提高了tiny版本的精度,达到了32.8,要知道18年yolov3刚出来的时候,最高的精度也才33,现在tiny版本的精度已经赶上v3正版了,不得不感叹这两年的目标检测技术发展的迅猛,隐约有种被卷死的不详预感,所以各种同学一定要坚持学习啊,千万不要懈

picture.image

三、nanodet

github:https://github.com/RangiLyu/nanodet

YOLO之外的另一选择,手机端97FPS的Anchor-Free目标检测模型NanoDet现已开源

超简单辅助模块加速训练收敛,精度大幅提升!移动端实时的NanoDet升级版NanoDet-Plus来了!

nanodet去年刚出来的时候非常的火,基于FCOS改进的anchor-free算法,在速度和精度上都有很好的权衡,并且部署比较友好,当时我也试过这个模型,但是训练出来的效果并不是特别好,所以就一直没怎么用,就当我快忘了它的时候,NanoDet-Plus版本出来了!!

超简单辅助模块加速训练收敛,精度大幅提升!与上一代的NanoDet相比,在仅增加1毫秒多的延时的情况下,精度提升了30%。与YOLOv5-n, YOLOX-Nano等其他轻量级模型相比,在精度和速度上也都高了不少!同时NanoDet-Plus改进了代码和架构,提出了一种非常简单的训练辅助模块,使模型变得更易训练!同时新版本也更易部署,同时提供ncnn、OpenVINO、MNN以及安卓APP的Demo!!

nanodet-plus精度指标看下图,以1.17M的参数量,在416大小的推理下,map达到了30.4,1.5x的版本甚至达到了34.1,且参数量仅为2.44M:

picture.image

四、PicoDet

github:https://github.com/PaddlePaddle/PaddleDetection

ARM-CPU150FPS | PicoDet助力移动端达到超实时检测(强烈建议工程人员学习)

算法是好算法,但是百度的宣传标题一如既往的夸张,以至于刚出来就被很多人吐槽,不过无伤大雅,算法本身实力够硬,宣传夸张点也不影响我们学习。

作者研究了anchor-free 策略在轻量级目标检测模型中的适用性,增强了Backbone结构,设计了Neck的轻量化结构,提高了网络的特征提取能力。改进了标签分配策略和损失函数,使训练更加稳定和高效。

通过这些优化,创建了一个新的实时物体检测系列架构,名为PP-PicoDet,它在移动设备上实现了优越的物体检测性能。与其他流行的模型相比,该模型架构在准确性和延迟之间实现了更好的权衡。PicoDet-S只有0.99M参数,mAP值为30.6%,与YOLOX-Nano相比,mAP提高了4.8%,同时移动CPU延迟降低了55%,与NanoDet相比,mAP提高了7.1%。当输入尺寸为320时,在移动ARM CPU上达到123 FPS(使用Paddle Lite时达到150 FPS)。PicoDet-L仅3.3M参数的mAP值为40.9%,mAP值提高了3.7%,比YOLOv5s快44%。如下图所示,本文模型远远优于轻量级目标检测的最新结果。

picture.image

这项工作是百度开源的项目,pp-picoDet也加入了PaddleDetetion的大家庭,如果想用的话需要先熟悉一下paddlepaddle框架,不过说句题外话,paddlepaddle最近的开源工作都做的非常多,基本上覆盖了各个领域,并且效果也停不错的,奈何框架生态一直不太行。

五、yolo-fastest

github:https://github.com/dog-qiuqiu/Yolo-Fastest

github:https://github.com/dog-qiuqiu/Yolo-FastestV2

Yolo-Fastest:超超超快的开源ARM实时目标检测算法

Yolo-FastestV2:更快,更轻,移动端可达300FPS,参数量仅250k

yolo-fastest应该是第一个把yolo系列参数量逼到1M以内的目标检测算法,由记得刚出来的时候非常的震惊,模型大小仅为1.3M,让我第一次直观的感受到原来目标检测算法也可以设计得这么小。感兴趣的可以看上面两篇文章介绍,目前已经更新到V2版本,精度指标如下:

picture.image

picture.image

六、yolov5-lite

github:https://github.com/ppogg/YOLOv5-Lite

YOLOv5-Lite:更轻更快易于部署的YOLOv5

一个非常优秀的轻量型yolov5改进版本,整体算法与yolov5基本一致,通过修改了yolov5的backbone达到了模型压缩的目的。

根据不同的backbone分别提供了s、c、g版本,s版本的backbone为shufflenet,c版本的backbone为LCNet,g版本的backbone为Repvgg,与各个轻量型算法的精度对比如下:

picture.image

这个项目用起来比较友好,开箱方式与yolov5一样,上手起来比较简单,精度也不错,非常值得学习。

七、MutualGuide

github:https://github.com/ZHANGHeng19931123/MutualGuide

【BMVC2021】新一代紧凑型目标检测器MutualGuide

这个项目是偶然间看到了,其实也不算是轻量型吧,因为提供的各个模型参数量其实还是挺大的,但是因为使用的backbone都是偏轻量的,所以还是决定把它算进来。

项目特点:

相较于众多已经存在的general目标检测框架,MutualGuide专门针对嵌入式设备设计,在检测速度上有很大优势。

支持RetinaNet、FCOS、YOLOF等多种检测头,ResNet、VGG、RepVGG、ShuffleNet等多种特征提取网络,灵活客制化你自己的模型结构。

融入Mixup、EMA、Cosine lr decay、Context Enhancement Module、GFocal

loss、Balanced L1 loss、GIOU loss等提升检测性能的工程技巧。

支持custom数据集训练与测试、支持混合精度训练和TensorRT推理加速。

项目结构清晰,适合初学者入门并熟悉目标检测的pipeline。

picture.image

八、YOLOv6

github:https://github.com/meituan/YOLOv6

YOLOv6:又快又准的目标检测框架开源啦

YOLOv6 是美团视觉智能部研发的一款目标检测框架,致力于工业应用。本框架同时专注于检测的精度和推理效率,在工业界常用的尺寸模型中:YOLOv6-nano 在 COCO 上精度可达 35.0% AP,在 T4 上推理速度可达 1242 FPS;YOLOv6-s 在 COCO 上精度可达 43.1% AP,在 T4 上推理速度可达 520 FPS。在部署方面,YOLOv6 支持 GPU(TensorRT)、CPU(OPENVINO)、ARM(MNN、TNN、NCNN)等不同平台的部署,极大地简化工程部署时的适配工作。

目前只放出了三个小模型,大模型不知道是性能达不到前面几个的标准还是啥,迟迟没有放出来,不过通过对放出来的小模型精度速度等性能对比,效果还是很不错的,不妨在项目中使用试试。

picture.image

picture.image

九、FastestDet

github:https://github.com/dog-qiuqiu/FastestDet

FastestDet: 比yolo-fastest更快!更强!更简单!全新设计的超实时Anchor-free目标检测算法

这可能是目前最小的目标检测网络,作者还是上面的fastest-yolo原作,参数量极致的压缩,虽然精度差了点,但是考虑到能把模型参数量压缩得这么小,还是很值的学习一下的,对于一些精度要求不是很高的场景,还是值的去试一试。

FastestDet是设计用来接替yolo-fastest系列算法,相比于业界已有的轻量级目标检测算法如yolov5n, yolox-nano, nanoDet, pp-yolo-tiny, FastestDet和这些算法压根儿不是一个量级,FastestDet无论在速度还是参数量上,都是要小好几个数量级的(不要在拿int8的模型和我fp32的模型比体积了,不公平),但是精度自然而然也比不过。FastestDet是针对计算资源紧缺的ARM平台设计的,突出单核效能,因为在实际业务场景中,不会把所有CPU资源都给推理框架做模型推理的,假如说你想在例如树莓派, RK3399, RK3568去跑实时目标检测,那么FastestDet是比较好的选择,或者移动端上不想占用太多cpu资源,也可以去用单核并设置cpu sleep去推理FastestDet,在低功耗的条件下运行算法。

picture.image


机器学习算法AI大数据技术

搜索公众号添加: datanlp

picture.image

长按图片,识别二维码


阅读过本文的人还看了以下文章:

TensorFlow 2.0深度学习案例实战

基于40万表格数据集TableBank,用MaskRCNN做表格检测

《基于深度学习的自然语言处理》中/英PDF

Deep Learning 中文版初版-周志华团队

【全套视频课】最全的目标检测算法系列讲解,通俗易懂!

《美团机器学习实践》_美团算法团队.pdf

《深度学习入门:基于Python的理论与实现》高清中文PDF+源码

《深度学习:基于Keras的Python实践》PDF和代码

特征提取与图像处理(第二版).pdf

python就业班学习视频,从入门到实战项目

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

picture.image

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
云原生环境下的日志采集存储分析实践
云原生场景下,日志数据的规模和种类剧增,日志采集、加工、分析的多样性也大大增加。面对这些挑战,火山引擎基于超大规模下的 Kubernetes 日志实践孵化出了一套完整的日志采集、加工、查询、分析、消费的平台。本次主要分享了火山引擎云原生日志平台的相关实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论