这是一个完整的YOLO迁移学习项目,专门用于在保留预训练权重中重要类别(人、车等)的同时添加交通灯检测功能。 核心特点:
- 智能类别保留
保留COCO数据集中的7个重要类别:person, bicycle, car, motorcycle, bus, truck, traffic light 新增3个细分交通灯类别:red_light, green_light, yellow_light 通过类别映射确保不影响原有检测质量
- 迁移学习策略
基于YOLOv8预训练模型 只修改检测头部分,保留特征提取能力 使用加权损失函数,给新增类别更高权重
- 完整的训练管道 bash# 1. 安装依赖 pip install ultralytics opencv-python numpy matplotlib pyyaml tqdm
wget https://github.com/ultralytics/assets/releases/download/v0.0.0/yolov8n.pt -P models/
python scripts/prepare_data.py
python scripts/train.py
python scripts/inference.py --source test_image.jpg --model runs/train/traffic_light_detection/weights/best.pt
python scripts/evaluate.py 4. 数据要求 将你的交通灯数据按以下格式组织: data/ ├── images/ │ ├── train/ # 训练图片 │ ├── val/ # 验证图片 │ └── test/ # 测试图片 └── labels/ ├── train/ # YOLO格式标注文件 ├── val/ └── test/ 标注格式(每行):class_id x_center y_center width height 5. 关键配置 在config/config.py中可以调整:
保留的原始类别 训练超参数 新增类别的权重 数据增强策略
这个方案的优势是既保持了对原有重要目标(人、车)的检测能力,又新增了细分的交通灯检测功能,通过迁移学习可以用较少的数据达到好的效果。