如何优化数据集提升Yolov4-tiny车载LED矩阵检测的mAP值
车载LED矩阵检测的Yolov4-tiny数据集优化方案
针对你用Yolov4-tiny检测车载LED矩阵时遇到的过拟合、模型不收敛、无检测结果问题,核心原因是小众物体的数据集规模不够、多样性不足,以下是具体的数据集优化方法:
一、针对性数据扩增
- 场景化模拟:用OpenCV给现有图片加不同光照效果(强光、弱光、逆光)、模拟车载场景的水雾、玻璃反光,不用额外采集真实数据,就能让模型适应不同环境下的LED矩阵特征。
- 几何变换:对标注好的图片做随机水平翻转、±15°以内旋转、0.8-1.2倍缩放、局部裁剪(保留LED主体),记得同步调整标注框坐标,保证标注和图片匹配。
- 合成数据:找公开的LED矩阵素材,合成到不同车载背景图里,调整素材的大小、角度、光照让合成图尽量真实,快速扩充几十上百倍样本。
二、适配小样本的训练策略
- 冻结浅层网络:Yolov4-tiny的预训练权重已经学了通用图像特征,训练时先冻结前20层卷积,只训后面的检测头和分类层,等模型初步收敛后再解冻部分浅层微调,避免预训练特征被小样本冲散。
- 调低学习率:把cfg文件里的
learning_rate从默认0.001改成0.0001,burn_in设为1000,让模型初期缓慢适应新数据集,防止权重波动太大导致不收敛。 - 加正则化抑制过拟合:在cfg的卷积层里加
dropout=0.3,或者开启weight_decay=0.0005,训练时打开augment开关增强扩增随机性。
三、优化标注与数据集筛选
- 统一标注规范:所有LED矩阵的标注框必须精准包围物体,漏框、错框的样本要么修正要么删除,别让错误标注干扰模型学习。
- 筛选高多样性样本:删掉重复度高的样本(比如同一角度同一光照的多张图),补充难例样本:被部分遮挡的、远距离小尺寸的LED矩阵,提升模型泛化能力。
- 合理划分训练验证集:按8:2比例分层划分,保证训练集和验证集的场景、角度、光照分布一致,避免验证集样本和训练集差异太大,导致评估不准。
四、数据集迭代补充
- 阶段性验证调整:每训100轮就用验证集测mAP和检测结果,要是发现模型只记住了训练集,立刻加扩增后的新样本,或者调大正则化参数。
- 伪标注补充数据:找一批未标注的车载场景图,用训练到一半的模型做伪标注,挑置信度高的样本加入训练集,低成本扩充数据量。
附训练代码
from google.colab import drive drive.mount('/content/gdrive') !ln -s /content/gdrive/My\ Drive/ /mydrive %cd /mydrive/yolov4 !git clone https://github.com/AlexeyAB/darknet %cd darknet/ !sed -i 's/OPENCV=0/OPENCV=1/' Makefile !sed -i 's/GPU=0/GPU=1/' Makefile !sed -i 's/CUDNN=0/CUDNN=1/' Makefile !sed -i 's/CUDNN_HALF=0/CUDNN_HALF=1/' Makefile !sed -i 's/LIBSO=0/LIBSO=1/' Makefile !make # run process.py file, used to create train.txt and test.txt from annotated images !python process.py !ls data/ # Here we use transfer learning. Instead of training a model from scratch, we use pre-trained YOLOv4 weights which have been trained up to 137 convolutional layers. Run the following command to download the YOLOv4 pre-trained weights file. #!wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/yolov4.conv.137 !wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.conv.29 !chmod +x ./darknet #!./darknet detector train data/matheus.data cfg/yolov4-custom.cfg yolov4.conv.137 -dont_show -map !./darknet detector train data/matheus.data cfg/yolov4-custom.cfg yolov4-tiny.conv.29 -dont_show -map
内容的提问来源于stack exchange,提问作者Matheus Fortunato Alves
相关产品推荐
相关产品推荐

