基于 PyTorch + Ultralytics 的目标检测对比项目,用于比较:
| 模型 | 类型 | 说明 |
|---|---|---|
| YOLOv8n | CNN | 实时检测基线 |
| RT-DETR-L | Transformer | Real-Time DETR,Transformer 检测器 |
| DETR-R50(可选) | Transformer | TorchVision COCO 预训练,仅推理测速参考 |
适合作为简历项目:PyTorch 训练、Transformer 检测、精度/延迟对比评估。
cd transformer-det-compare
python -m venv .venv
.venv\Scripts\activate # Windows
pip install -r requirements.txt需要 Python 3.10+,建议 NVIDIA GPU + CUDA 版 PyTorch。
python scripts/check_gpu.py正常应看到 CUDA 可用: True 和你的显卡名称(如 RTX 4060)。
训练日志里 GPU_mem 应 大于 0G,不再是 0G(0G 表示在用 CPU)。
若显示 CPU,请重装 GPU 版 PyTorch:
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu118train:
device: auto # 自动使用 GPU 0
amp: true # 混合精度,显著提速
batch: 16 # 4060 约 16(YOLO) / 8(RTDETR)
cache: disk # 缓存数据集,减少 IO 等待python scripts/run_all.py流程:训练 YOLO + RT-DETR → 验证集 mAP → 推理延迟 → 生成报告
输出:
results/comparison_table.csvresults/comparison_report.mdresults/map_compare.pngresults/latency_compare.png
# 1. 训练(默认 coco128,自动下载)
python scripts/train.py --model all
python scripts/train.py --model yolo
python scripts/train.py --model rtdetr
# 2. 评估 mAP
python scripts/evaluate.py
# 3. 测速
python scripts/benchmark.py
# 4. 生成对比报告
python scripts/compare.py
# 5. 单张推理
python scripts/infer.py --model yolo --weights runs/train/yolov8n/weights/best.pt --source path/to.jpg
# 6.(可选)TorchVision DETR 预训练推理测速
python scripts/detr_tv_baseline.py --image path/to.jpg编辑 config.yaml:
train:
epochs: 30
imgsz: 640
batch: 8
device: "" # 无 GPU 填 cpu
data:
yaml: ultralytics/cfg/datasets/coco128.yaml
# 或: datasets/custom/data.yaml自定义数据集说明见 datasets/README.md。
transformer-det-compare/
├── config.yaml
├── requirements.txt
├── src/
│ ├── train.py # YOLO / RT-DETR 训练
│ ├── evaluate.py # mAP 评估
│ ├── benchmark.py # 延迟/FPS
│ └── compare_report.py # 报告与图表
├── scripts/
│ ├── run_all.py # 一键流水线
│ ├── train.py
│ ├── evaluate.py
│ ├── benchmark.py
│ ├── compare.py
│ ├── infer.py
│ └── detr_tv_baseline.py
├── datasets/
└── results/ # 实验输出(运行后生成)
- 基于 PyTorch(Ultralytics) 在同一数据集上对比 YOLOv8n 与 RT-DETR-L 的 mAP 与推理延迟
- 实现训练、验证、测速与 自动化对比报告(CSV / Markdown / 图表)
- 理解 Transformer 检测器(DETR/RT-DETR) 与 CNN 检测器(YOLO)的精度-速度权衡
- RT-DETR 是 DETR 的实时改进版本,工程上更易与 YOLO 做公平对比(同一 Ultralytics 训练/评估接口)。
- 原版 DETR 完整训练成本高;本项目提供
detr_tv_baseline.py用 COCO 预训练权重做推理参考,不作为主训练链路。
学习与研究用途。