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

article/2025/8/24 13:20:12

序言

不知道大家有没有发现,近两年目标检测算法发展非常的快,恍惚一看,单阶段算法几乎统一了目标检测,各种高性能的目标检测算法层出不穷,印象中是在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,各个模型精度指标如下所示:
在这里插入图片描述

二、yolox

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

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

yolox的原理网上也很多,篇幅原因我就不详细讲解了,来看下yolox的精度指标,与yolov5对比,似乎每个版本的精度都有很大提升,实际项目情况我也没有对比过,不过在发布后的大半年时间里业内认可度非常不错,两者都是非常优秀的算法,只能说萝卜青菜,各有所爱了,小孩子才做选择,我全都要!!
在这里插入图片描述
因为本文主要介绍的是轻量型模型,所以重点关注轻量的模型Nano和tiny版本,nano版本在0.91M参数量的情况下,416尺度推理精度达到了25.8,还是非常不错的;再看tiny版本,tiny版本一直是yolo系列中的一个特色,所以yolox也继续发扬了这一项工作,在参数量减少的情况下,大幅提高了tiny版本的精度,达到了32.8,要知道18年yolov3刚出来的时候,最高的精度也才33,现在tiny版本的精度已经赶上v3正版了,不得不感叹这两年的目标检测技术发展的迅猛,隐约有种被卷死的不详预感,所以各种同学一定要坚持学习啊,千万不要懈怠了。在这里插入图片描述

三、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:
在这里插入图片描述

四、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%。如下图所示,本文模型远远优于轻量级目标检测的最新结果。
在这里插入图片描述
这项工作是百度开源的项目,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版本,精度指标如下:

在这里插入图片描述
在这里插入图片描述

六、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,与各个轻量型算法的精度对比如下:
在这里插入图片描述
这个项目用起来比较友好,开箱方式与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。
    在这里插入图片描述

八、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)等不同平台的部署,极大地简化工程部署时的适配工作。

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

在这里插入图片描述
在这里插入图片描述

九、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,在低功耗的条件下运行算法。
在这里插入图片描述

十、YOLOv8

Ultralytics YOLOv8 是由 Ultralytics开发的一个前沿 SOTA 模型,可以说是对yolov5进行了全面的升级。它在以前 YOLO 版本的成功基础上,引入了新的功能和改进,进一步提升了性能和灵活性。YOLOv8 基于快速、准确和易于使用的理念设计,使其成为广泛的物体检测、图像分割和图像分类任务的绝佳选择。
YOLOv8的模型图如下

github:https://github.com/ultralytics/ultralytics
在这里插入图片描述
集大成者,同时还支持分割、分类任务,开箱简单即用,非常方便。

十一、MMYOLO

MMYOLO 是一个基于 PyTorch 和 MMDetection 的 YOLO 系列算法开源工具箱,包含了诸多高性能的目标检测算法。它是 OpenMMLab 项目的一部分。

github:https://github.com/open-mmlab/mmyolo/tree/dev

主要特性有:

统一便捷的算法评测

MMYOLO 统一了各类 YOLO 算法模块的实现, 并提供了统一的评测流程,用户可以公平便捷地进行对比分析。

丰富的入门和进阶文档

MMYOLO 提供了从入门到部署到进阶和算法解析等一系列文档,方便不同用户快速上手和扩展。

模块化设计

MMYOLO 将框架解耦成不同的模块组件,通过组合不同的模块和训练测试策略,用户可以便捷地构建自定义模型。

性能如下,下图涉及的检测算法在MMYOLO均支持:

在这里插入图片描述

未完待续


http://chatgpt.dhexx.cn/article/fveCfHog.shtml

相关文章

万字长文概述单目3D目标检测算法

一,理论基础-相机与图像 相机将三维世界中的坐标点(单位为米)映射到二维图像平面(单位为像素)的过程能够用一个几何模型进行描述,这个模型有很多种,其中最简单的称为针孔相机模型。相机的成像过…

yolov5 目标检测算法

简介: 目标检测在生活中应用领域非常广泛,列如:道路违规抓拍、未戴口罩识别、工地未佩戴安全帽抓拍、厨房出现老鼠检测。 还可以用在游戏辅助外挂。以枪战为例,在游戏过程中时刻检测有没有人头出现。当检测到目标人头,…

【快速入门】YOLOv5目标检测算法

文章目录 一、YOLOv5简介二、网络结构1、Input2、Backbone3、Neck4、Head 三、改进方法1、自适应锚框计算2、自适应灰度填充 四、性能表现五、YOLOv5入门实战 一、YOLOv5简介 YOLOv5是一个在COCO数据集上预训练的物体检测架构和模型系列,它代表了Ultralytics对未来…

目标检测算法汇集介绍

目标检测算法 目标检测概念 目标检测这里阐述两个应用场景,1 为物体位置检测,2 为物体关键点检测。 1 物体位置检测 相比与图片分类,目标检测算法结果要求不仅识别出图片中的物理类别并且输出物体的位置参数。 物体的位置通过bounding bo…

YOLOv3目标检测算法——通俗易懂的解析

目录 YOLOv3目标检测算法前沿一.YOLOv3二.损失函数 YOLOv3目标检测算法 前沿 前两篇文章我们讲了下关于YOLOv1和YOLOv2的原理,有不懂的小伙伴可以回到前面再看看: YOLOv1目标检测算法——通俗易懂的解析YOLOv2目标检测算法——通俗易懂的解析 作者出于…

单阶段目标检测算法之YOLOv1详解

官方网站C语言版本:https://pjreddie.com/darknet/yolov1/ tensorflow版本的代码下载: https://github.com/hizhangp/yolo_tensorflow 论文: http://arxiv.org/abs/1506.02640 目录 一、YOLO介绍 二、YOLOv1的结构 三、YOLOV1原理 (一…

yolo-目标检测算法简介

一 简单概念 机器视觉的四大任务 分类-Classification:解决“是什么?”的问题,即给定一张图片或一段视频判断里面包含什么类别的目标. 检测-Detection:解决“是什么?在哪里?”的问题,即定位出…

目标检测算法发展历程

这里的图片是从b站同济子豪兄的【精读AI论文】 R-CNN深度学习目标检测算法 处截图的, 在这算是个记录吧,同时立个小小的flag,尽量在硕一结束前都搞明白是干啥的吧(希望能坚持住 :) 在这也小推一下子豪兄&a…

YOLOv5目标检测算法——通俗易懂的解析

目录 YOLOv5目标检测算法前沿一.网络结构1.1.Backbone1.2.Neck1.3.Head二.数据增强2.1.Mosaic2.2.Copy paste2.3.Random affine2.4.Mixup2.5.Albumentation2.6.Augment HSV2.7.Random horizontal flip 三.训练策略3.1.Multi-scale training3.2.Auto anchor3.3.Warmup and Cosin…

目标检测算法(YOLOv3)

目标检测算法(YOLOv3) YOLOv3在YOLOv2的基础上,改良了网络的主干,利用多尺度特征图进行检测,改进了多个独立的Logistic regression分类器来取代softmax来预测类别分类. 论文题目:YOLOv3: An Incremental Improvement 主干网络 YOLOv3提出了新的主干网络: Darknet…

最新目标检测算法回顾2022笔记

目标检测算法回顾2022笔记[附PPT] 总目录篇章1:目标检测的应用与需求篇章2:目标检测的定义与挑战篇章3:目标检测损失函数的进展篇章4:目标检测IOU的发展历程篇章5:目标检测评价指标及数据集[篇章6: 目标检测…

目标检测算法——YOLOV7——详解

1、主要贡献 主要是现有的一些trick的集合以及模块重参化和动态标签分配策略,最终在 5 FPS 到 160 FPS 范围内的速度和准确度都超过了所有已知的目标检测器。 当前目标检测主要的优化方向:更快更强的网络架构;更有效的特征集成方法&#xff1…

3D点云目标检测算法综述

一、概述 在3D点云目标检测领域,对于数据输入的处理一般有三种: 多视角。将三维点云投射到多个二维平面形成图像 体素,voxel,将三维点云切割成多个小块,这些小块就叫体素,类似像素。这是最自然的一种想法…

传统目标检测算法

目标分类:给一张图片,分类 目标检测:给一张图片,找到目标,并用矩形框画出 分类是对一幅图整体,检测是更进一步,找出一幅图中一部分。一般检测以分类为基础, 目标检测就是找出图像中…

目标检测算法基础

人脸检测算法综述 0 前言1 人脸检测算法难点2 人脸检测算法流程2.1 选择检测窗口2.2 提取图像特征2.3 设计分类器2.3.1 AdaBoost2.3.2 SVM分类器2.3.3 决策树与随机森林 3 人脸检测算法3.1 传统的人脸检测算法3.2 深度学习3.2.1 基于候选框的二阶段检测算法3.2.2 直接预测结果框…

目标检测算法回顾之传统算法

传统的目标检测算法 总体回顾基于特征基于分割 一般流程经典算法HarrAdaboost流程Harr特征Adaboost算法 HOG SVM概述方法HOG特征的优缺点 DPMDPM特征DPM流程 DPM vs HOG 总结 说明:本文仅供学习 虽然传统的目标检测方法现在比较少用,但我们认为有必要了…

目标检测算法发展综述

目标检测算法 一、目标检测算法二、目标检测算法存在的问题三、目标检测算法的基本流程四、传统的目标检测算法 1.Viola-Jones(VJ人脸检测算法)2.HOG SVM(行人检测,使用Opencv实现)3.DPM(物体检测&#xf…

目标检测算法研究

1、目标检测基本介绍 1.1、项目结构 1.2、目标检测的算法分类 1.2.1两步走的目标检测:先进行区域推荐、而后进行目标分类 代表算法 :R-CNN、 SPP-net、Fast-R-CNN、Faster R-CNN 1.2.2、端到端的目标检测:采用一种网络一步到位 代表&#x…

目标检测算法分类

目标检测算法分类: 1、两步走的目标检测:先找出候选的一些区域,再对区域进行调整分类 代表:R-CNN、SPP-net、Fast R-CNN、Faster R-CNN 2、端到端的目标检测:采用一个网络一步到位,输入图片,输…

目标检测算法

目标检测算法 一、目标检测算法二、目标检测算法存在的问题三、目标检测算法的基本流程四、传统的目标检测算法1.Viola-Jones(VJ人脸检测算法)2.HOG SVM(行人检测,使用Opencv实现)3.DPM(物体检测&#xff…