深度学习目标检测算法如何训练车辆分类检测数据集 识别车辆的类别检测 识别道路中的卡车, 公共汽车, 运动型多用途车, 出租车, 小汽车

数据集描述:

项目 详情
数据集名称 车辆种类识别数据集
图像总数 4,194 张
训练集数量 3,355 张
验证集数量 419 张
测试集数量 420 张
划分比例 train : val : test = 8 : 1 : 1
类别数量 5 类
类别英文名 truck, bus, SUV, taxi, car
类别中文名 卡车, 公共汽车, 运动型多用途车, 出租车, 小汽车
标注格式 YOLO (.txt) 和 Pascal VOC (.xml) 双格式
数据增强 已进行数据增强(如旋转、缩放、色彩抖动等)
适用任务 车辆分类、目标检测、细粒度图像识别
适用模型 YOLOv5/v7/v8、Faster R-CNN、ResNet、EfficientNet 等
使用说明 可直接用于深度学习模型训练,无需额外预处理

在这里插入图片描述
1
在这里插入图片描述
1
在这里插入图片描述
gai数据集 支持目标检测任务(5类车辆识别),数据已划分并包含 YOLO 格式标签,可直接用于训练。


✅ 一、环境安装

# 安装 Ultralytics YOLOv8
pip install ultralytics

官方文档:https://docs.ultralytics.com


✅ 二、数据集目录结构

请确保您的数据集按如下结构组织:

vehicle_classification_dataset/
├── images/
│   ├── train/      # 3355 张
│   ├── val/        # 419 张
│   └── test/       # 420 张
├── labels/
│   ├── train/      # YOLO .txt 标签文件
│   ├── val/
│   └── test/
└── data.yaml       # 数据集配置文件

✅ 三、创建 data.yaml 文件

vehicle_classification_dataset/ 目录下创建 data.yaml

# data.yaml

nc: 5
names: ['truck', 'bus', 'SUV', 'taxi', 'car']

train: ./vehicle_classification_dataset/images/train
val: ./vehicle_classification_dataset/images/val
test: ./vehicle_classification_dataset/images/test

✅ 四、完整训练代码(Python 脚本)

from ultralytics import YOLO

# 1. 加载预训练模型(推荐使用中等尺寸)
model = YOLO('yolov8m.pt')  # 可替换为 yolov8s.pt 或 yolov8l.pt

# 2. 开始训练
print("🚀 开始训练车辆种类识别模型...")

results = model.train(
    data='vehicle_classification_dataset/data.yaml',  # 数据集配置
    epochs=100,                                      # 训练轮数
    imgsz=640,                                       # 输入图像大小
    batch=16,                                        # 批次大小(根据GPU调整)
    device=0,                                        # 使用 GPU 0,CPU 使用 None
    workers=4,                                       # 数据加载线程数
    name='vehicle_cls_yolov8m',                      # 实验名称
    project='runs/train',                            # 结果保存路径
    exist_ok=False,                                  # 禁止覆盖同名实验
    optimizer='AdamW',                               # 优化器
    lr0=0.01,                                        # 初始学习率
    momentum=0.937,
    weight_decay=0.0005,
    patience=20,                                     # 早停耐心值
    amp=True,                                        # 混合精度训练
    close_mosaic=10,                                 # 最后10轮关闭 Mosaic
    
    # 数据增强(已增强,适度调整)
    hsv_h=0.015,
    hsv_s=0.7,
    hsv_v=0.4,
    degrees=10.0,
    translate=0.2,
    scale=0.5,
    flipud=0.0,
    fliplr=0.5,
    mosaic=1.0,
    mixup=0.1,
    copy_paste=0.3,
)

✅ 五、验证与测试

1. 验证模型性能

# 加载最佳模型
model = YOLO('runs/train/vehicle_cls_yolov8m/weights/best.pt')

# 在验证集上评估
metrics = model.val()
print(f"mAP@0.5: {metrics.box.map50:.3f}")
print(f"mAP@0.5:0.95: {metrics.box.map:.3f}")
print(f"Precision: {metrics.box.precision:.3f}")
print(f"Recall: {metrics.box.recall:.3f}")

2. 在测试集上评估

# 使用 test 集评估最终性能
metrics_test = model.val(
    split='test',
    data='vehicle_classification_dataset/data.yaml',
    imgsz=640,
    batch=16,
)
print(f"🧪 测试集 mAP@0.5: {metrics_test.box.map50:.3f}")

✅ 六、推理示例

单图推理

results = model('test_car.jpg', conf=0.4)
results[0].show()
results[0].save(filename='result.jpg')

视频或摄像头检测

# 视频文件
model.predict(
    source='traffic.mp4',
    save=True,
    project='runs/detect',
    name='vehicle_video',
    conf=0.4,
    imgsz=640
)

# 摄像头实时检测
model.predict(source=0, show=True, conf=0.4)

✅ 七、模型导出(用于部署)

# 导出为 ONNX
model.export(format='onnx', dynamic=True, opset=13)

# 导出为 TensorRT(NVIDIA GPU)
model.export(format='engine', half=True)

# 导出为 TFLite(移动端)
model.export(format='tflite')

# 导出为 CoreML(iOS)
model.export(format='coreml')

✅ 八、训练结果输出

文件/目录 说明
runs/train/vehicle_cls_yolov8m/weights/best.pt 最佳模型权重
runs/train/vehicle_cls_yolov8m/weights/last.pt 最终模型权重
results.png 训练曲线(loss, mAP, precision, recall)
confusion_matrix.png 混淆矩阵(分析各类别误检情况)
labels/*.jpg 带标注的预测可视化图

车辆种类识别数据集,支持 5 类车辆(卡车、公共汽车、SUV、出租车、小汽车)的目标检测任务,适用于:

  • 智能交通监控
  • 城市道路车辆统计
  • 自动驾驶感知系统
  • 车辆行为分析
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐