本文来源公众号“CVHub”,仅用于学术分享,侵权删,干货满满。
原文链接:YOLOv10 正式发布!原理、部署、应用一站式齐全
标题:YOLOv10: Real-Time End-to-End Object Detection
论文:https://arxiv.org/pdf/2405.14458
源码:https://github.com/THU-MIG/yolov10
1 导读
YOLO(You Only Look Once)系列是当前最主流的端侧目标检测算法,由Joseph Redmon
等人首次提出,并随着时间发展,已经推出了多个版本,每个版本“似乎”都在性能和速度上有所提升。
今天为大家介绍的是 YOLOv10,这是由清华大学研究团队最新提出的,同样遵循 YOLO 系列设计原则,致力于打造实时端到端的高性能目标检测器。值得一提的是,YOLOv10 也已经被合并到 Ultralytics 官方项目。
从图中可以看出,性能是持续提升的,欢迎各位小伙伴阅读完本篇文章后在评论区留言,谈谈你对本文的看法。
2 方法
2.1 创新
2.1.1 双标签分配策略
众所周知,标签分配策略对于目标检测器来说是至关重要的。经过这几年的发展,前前后后也提出了许多的不同的方案,但归根结底还是围绕着正负样本去定义。通常,我们会认为与 GT 框的 IoU 大于给定阈值的便是正样本。
首先,回顾下经典的 YOLO 架构,其通过网格化的方式预定义数千个锚框(anchor),然后基于这些锚框进一步执行回归和分类任务。然而,实际场景中,我们所面临的目标其大小、长宽比、数量、位姿均各有所异,因此很难通过这种方式来提供一个完美的先验信息,尽管可以借助一些方法如 kmeans 聚类来获得一个次优的结果。
于是乎,基于 anchor-free 的目标检测器被提出来了。其标签分配策略被简化成了从网格点到目标框中心或者角点的距离。遗憾的是,无论是 anchor-based 的“框分配”策略还是 anchor-free 的“点分配”策略,其始终会面临一个 many-to-one 的窘境,即对于一个 GT 框来说,会存在多个正样本与之对应。
这便意味着 NMS 成为了一种必不可少的手段,以避免产生冗余检测框。然而,引入 NMS 一方面会增加耗时,同时也会引入一些问题,譬如当 IoU 设置不恰当时会导致一些高置信度的正确目标框被过滤掉(密集场景下)。
当然,针对这个问题,后面也提出了不少解决方案。如最容易想到的就是 two-stage 模型的 one-to-one 即一对一分配策略,我们强制只将一个 GT 框分配给一个正样本,这样就可以避免引入 NMS,可惜效率方面是