1464 words
7 minutes
YOLOv11 行人与车辆检测模型训练全记录
2026-04-20

zhen

YOLOv11 行人与车辆检测模型训练全记录#

摘要:目标检测是计算机视觉的核心任务之一,在自动驾驶、智能交通等领域具有重要应用。本文以YOLOv11为基础模型,详细记录了从环境配置、数据集构建、模型训练到视频部署的完整流程。实验结果表明,在515张交通场景图片(含412张训练、103张验证)上训练80轮后,模型整体mAP50达到0.905,其中汽车检测mAP50为0.939,行人检测mAP50为0.871,推理速度达145 FPS。本文重点分析了数据规模对模型性能的决定性作用,并总结了训练过程中遇到的典型问题及解决方案。

关键词:YOLOv11;目标检测;行人检测;车辆检测;数据扩充;WSL2

1. 引言#

近年来,基于深度学习的目标检测算法发展迅速,YOLO系列凭借其端到端、实时性高的特点成为工业界和学术界的常用工具。YOLOv11在YOLOv8的基础上引入了C3K2模块、C2PSA注意力机制和SPPF多尺度融合,进一步提升了检测精度与速度。

本文旨在通过一次完整的行人与车辆检测模型训练实践,探讨小规模数据集下模型性能的瓶颈,以及数据扩充带来的显著提升。本文记录的所有实验均在个人笔记本(WSL2 + Ubuntu 24.04)上完成。

2. 实验环境与配置#

2.1 硬件与操作系统#

项目配置
操作系统Windows 11 + WSL2 (Ubuntu 24.04)
CPUAMD Ryzen 9 7940HS
GPUNVIDIA GeForce RTX 5070 Laptop (8GB)
内存32GB DDR5

2.2 软件环境#

  • Python 3.11
  • PyTorch 2.11.0+cu128 (CUDA 12.8)
  • Ultralytics 8.4.33
  • OpenCV, Matplotlib

2.3 环境配置步骤#

Terminal window
# 创建conda虚拟环境
conda create -n yolo_train python=3.11 -y
conda activate yolo_train
# 安装PyTorch GPU版
pip install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
# 安装Ultralytics
pip install ultralytics

验证GPU可用:

import torch
print(torch.cuda.is_available()) # 应输出 True
print(torch.cuda.get_device_name(0)) # NVIDIA GeForce RTX 5070 Laptop GPU

3. 数据集准备#

3.1 初始数据集(小规模)#

从RoboFlow下载person-car数据集,共141张图片,包含car和person两个类别。标注格式为YOLO格式(每张图片对应一个.txt文件)。数据集划分如下:

训练集:113张

测试集:28张(未提供独立验证集,临时将测试集用作验证)

3.2 数据扩充#

初始数据集训练后,行人检测mAP50仅0.330,表明数据量不足。为此,从RoboFlow搜索并下载另一个交通场景数据集,共515张图片,类别同样为car和person。下载后的数据只有train文件夹,需手动划分验证集:

Terminal window
cd /mnt/e/作业提交_深度学习实验/car-person.yolov11
mkdir -p valid/images valid/labels
cd train/images
ls *.jpg | shuf -n 103 | while read f; do
mv "$f" ../../valid/images/
base="${f%.jpg}"
mv "../labels/${base}.txt" ../../valid/labels/
done

4. 训练#

训练命令

Terminal window
yolo train data=data.yaml model=yolo11n.pt epochs=80 batch=16 imgsz=640 device=0

结果:mAP50稳步提升.

训练过程中遇到AMP(自动混合精度训练,同时使用FP16和FP32加速并节省显存)检查卡在网络下载,通过手动下载yolo26n.pt或添加amp=False参数解决。

5. 实验结果#

5.1 验证集性能#

在103张验证集上的评估结果如表1所示。这里解释几个关键指标:

  • 精确率(Precision):预测为正样本中真正为正的比例,高精确率意味着误检少。
  • 召回率(Recall):真正为正样本中被预测出来的比例,高召回率意味着漏检少。
  • mAP50:当IoU(预测框与真实框的交集面积除以并集面积,衡量框的重叠程度)阈值取0.5时的平均精度均值。
  • mAP50-95:IoU从0.5到0.95步长0.05的多个阈值下的平均精度均值,要求更严格。

表1 模型在验证集上的性能指标

类别图片数实例数精确率(P)召回率(R)mAP50mAP50-95
全部1033550.9260.8070.9050.668
汽车 (car)701920.9080.8710.9390.760
行人 (person)761630.9440.7420.8710.577
  • 整体mAP50达到0.905,说明模型能够准确检测绝大多数目标。
  • 汽车检测效果最佳(mAP50=0.939),召回率0.871,仅有少量漏检。
  • 行人检测mAP50=0.871,相比小数据集训练的0.330有了质的飞跃,证明了数据扩充的有效性。
  • 精确率普遍较高(>0.90),表明模型误检较少。

5.2 与初始模型的对比#

表2 数据集规模对性能的影响

数据集图片数行人mAP50汽车mAP50
初始数据集1410.3300.657
扩充数据集5150.8710.939

扩充数据集后,行人检测mAP50提升164%,汽车检测mAP50提升43%。这充分说明数据量是决定模型性能的核心因素

5.3 视频检测性能#

使用训练好的模型对一段30秒、1280×720分辨率的路况视频进行检测:

Terminal window
yolo predict model=best.pt source=test.mp4 save=True

性能数据:

  • 平均推理速度:145 FPS(帧/秒),远超实时要求(30 FPS)
  • 单帧处理时间:约6.9 ms(预处理0.1ms + 推理1.1ms + 后处理2.5ms等)
  • 检测效果:在白天、阴天、夜间场景下均能稳定检测出行人和车辆,仅极少数远距离小目标出现漏检。

7. 结论#

本文完整记录了一次基于YOLOv11的行人与车辆检测模型训练实践。通过对比小数据集与扩充数据集的实验结果,证明了数据规模对深度学习模型性能具有决定性影响。最终模型在515张图片上训练80轮后,整体mAP50达到0.905,推理速度145 FPS。本文总结的训练技巧和问题解决方案可为类似项目提供参考。

后面还会对该项目进行进一步修理改进。

详细内容放下文PDF。

致谢:感谢深圳大学戴林蕙老师的课程指导,以及RoboFlow平台提供的开源数据集。

YOLOv11 行人与车辆检测模型训练全记录
https://dxfaker.top/posts/yolo11/
Author
dxfaker
Published at
2026-04-20
License
CC BY-NC-SA 4.0

Some information may be outdated