Skip to content

Latest commit

 

History

1 Commit

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Transformer 目标检测对比实验(YOLOv8 vs RT-DETR)

基于 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

GPU 检查(训练前建议先跑)

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/cu118

GPU 加速配置(config.yaml

train:
  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.csv
  • results/comparison_report.md
  • results/map_compare.png
  • results/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/               # 实验输出(运行后生成)

简历可写 bullet 示例

  • 基于 PyTorch(Ultralytics) 在同一数据集上对比 YOLOv8nRT-DETR-L 的 mAP 与推理延迟
  • 实现训练、验证、测速与 自动化对比报告(CSV / Markdown / 图表)
  • 理解 Transformer 检测器(DETR/RT-DETR) 与 CNN 检测器(YOLO)的精度-速度权衡

说明

  • RT-DETR 是 DETR 的实时改进版本,工程上更易与 YOLO 做公平对比(同一 Ultralytics 训练/评估接口)。
  • 原版 DETR 完整训练成本高;本项目提供 detr_tv_baseline.py 用 COCO 预训练权重做推理参考,不作为主训练链路。

License

学习与研究用途。

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages