深度学习目标检测算法如何训练车辆分类检测数据集 识别车辆的类别检测 识别道路中的卡车, 公共汽车, 运动型多用途车, 出租车, 小汽车
深度学习目标检测算法如何训练车辆分类检测数据集 识别车辆的类别检测 识别道路中的卡车, 公共汽车, 运动型多用途车, 出租车, 小汽车。
·
深度学习目标检测算法如何训练车辆分类检测数据集 识别车辆的类别检测 识别道路中的卡车, 公共汽车, 运动型多用途车, 出租车, 小汽车
文章目录
数据集描述:
| 项目 | 详情 |
|---|---|
| 数据集名称 | 车辆种类识别数据集 |
| 图像总数 | 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
✅ 二、数据集目录结构
请确保您的数据集按如下结构组织:
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、出租车、小汽车)的目标检测任务,适用于:
- 智能交通监控
- 城市道路车辆统计
- 自动驾驶感知系统
- 车辆行为分析
。
更多推荐
所有评论(0)