当前位置: 首页 > news >正文

重磅来袭————YOLOv12:Attention-Centric Real-Time Object Detectors

一.总述

中科院和布法罗大学联合提出的最新目标检测算法YOLOv12,长期以来,改进 YOLO 框架的网络架构一直是至关重要的,但尽管注意力机制在建模能力方面已被证明具有优势,但其改进却主要集中在基于 CNN 的改进上。这是因为基于注意力的模型无法与基于 CNN 的模型相媲美。本文提出了一种以注意力为中心的 YOLO 框架,即 YOLOv12,它既能达到以往基于 CNN 的速度,又能利用注意力机制的性能优势。YOLOv12 在准确度上超越了所有流行的实时物体检测器,速度也很有竞争力。例如,YOLOv12-N 在 T4 GPU 上实现了 40.6% 的 mAP,推理延迟为 1.64 ms,比先进的 YOLOv10-N / YOLOv11-N 高出 2.1%/1.2% mAP,速度相当。这一优势还延伸到了其他模型规模。YOLOv12 还超越了改进 DETR 的端到端实时探测器,如 RT-DETR / RTDETRv2: YOLOv12-S击败了RT-DETR-R18 / RT-DETRv2R18,运行速度提高了42%,仅使用了36%的计算量和45%的参数。

主要创新点:

  1. 提出了一个简单而有效的区域注意模块(A2),该模块保持大型接受场,同时以非常简单的方式降低了注意力的计算复杂性,从而提高了速度.
  2. 介绍剩余的效率层聚合网络(R-ELAN),以解决注意力(主要是大规模模型)引入的优化挑战。 R-Elan基于原始Elan 引入了两项改进:(i)具有缩放技术的块级剩余设计以及(ii)重新设计的特征聚合方法。
  3. 为了适应 YOLO 系统,我们在 vanilla 注意力之外做了一些架构上的改进

两大贡献:

1)它建立了一个以注意力为中心,简单而有效的Yolo框架,通过方法论创新和建筑改进,打破了CNN模型在Yolo系列中的优势。

 2)在不依赖其他技术(例如预处理)的情况下,Yolov12以快速的推理速度和更高的检测准确性实现了最先进的结果,这表明了其潜力。

二.代码下载

文章地址:2502.12524

代码地址:GitHub - sunsmarterjie/yolov12: YOLOv12: Attention-Centric Real-Time Object Detectorshttps://github.com/sunsmarterjie/yolov12?tab=readme-ov-file

 点击code,Download ZIP可直接下载。

权重可根据需求下载。

三.部署

在autodl服务器上部署 yolov12,用于验证,训练及预测

租用合适的显卡,开机,上传下载的代码及权重文件。

3.1 创建虚拟环境

conda create -n yolov12 python=3.11

此处输入y 

完成后激活环境

conda activate yolov12

解压压缩包,将权重文件放入yolo文件夹中

3.2安装需求文件

如果网络不好,可使用清华源

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -r requirements.txt

3.3 开发模式安装Python包

pip install -e .

 4.训练、预测、验证、导出

4.1 训练

from ultralytics import YOLO

model = YOLO('yolov12n.pt')

# Train the model
results = model.train(
  data='coco128.yaml',
  epochs=600, 
  batch=256, 
  imgsz=640,
  scale=0.5,  # S:0.9; M:0.9; L:0.9; X:0.9
  mosaic=1.0,
  mixup=0.0,  # S:0.05; M:0.15; L:0.15; X:0.2
  copy_paste=0.1,  # S:0.15; M:0.4; L:0.5; X:0.6
  device="0",
)

创建train.py,运行python train.py

4.2 验证

from ultralytics import YOLO

model = YOLO('yolov12{n/s/m/l/x}.pt')
model.val(data='coco.yaml', save_json=True)

执行python命令

python val.py

 4.3 预测

from ultralytics import YOLO

model = YOLO('yolov12{n/s/m/l/x}.pt')
model.predict()

4.4 导出

from ultralytics import YOLO

model = YOLO('yolov12{n/s/m/l/x}.pt')
model.export(format="engine", half=True)  # or format="onnx"

 4.5Demo

python app.py
# Please visit http://127.0.0.1:7860

相关文章:

  • AIGC视频生成明星——Emu Video模型
  • 5-循环语句
  • 【Linux-网络】初识计算机网络 Socket套接字 TCP/UDP协议(包含Socket编程实战)
  • 推荐系统-排序模型
  • 力扣-回溯-17 电话号码的字母组合
  • C++ 课程设计 汇总(含源码)
  • B+树作为数据库索引结构的优势对比
  • HC32F460_GPIO驱动库
  • 阿里云SLB负载均衡的ALB和NLB有啥区别?一个是7层一个是4层
  • Redis中哈希(Hash)常见命令详解
  • 快速入门Springboot+vue——MybatisPlus多表查询及分页查询
  • 第四章:高级特性与最佳实践 - 第四节 - Tailwind CSS CSS 提取和打包优化
  • [NKU]C++理论课 cours 3 数据抽象(封装->隐藏实现的手段,隐藏->封装的重要目标)
  • 跳格子游戏
  • Sun-Panel:简洁且美观的导航首页开源项目!!
  • LeetCode 2595.奇偶位数:位运算
  • DeepSeek全系列全平台部署(可代部署)
  • 2025鸿蒙开发面试题汇总——通俗易懂
  • DeepSeek-R1本地部署简易教程
  • Python数据结构实战:链表的构建与操作
  • 口腔医院网站做优化/百度刷自己网站的关键词
  • 美空间网站/苏州seo整站优化
  • 帮外贸供应商推广网站/优化设计七年级下册数学答案
  • 招聘网页制作人员/深圳seo公司排名
  • 网站推广排名怎么做/seo高级优化技巧
  • 襄阳做网站 优帮云/站内推广方式有哪些