1 问题描述
数据集共包括40000张训练图像和1000张测试图像,每张训练图像对应 xml标注文件:

共包含3类:0:‘head’, 1:‘helmet’, 2:‘person’ 提交格式要求,提交名为pred_result.txt的文件:每一行代表一个目标,每一行内容分别表示 图像名 置信度 xmin ymin xmax ymax 类别
![![[Pasted image 20240113144435.png]]](https://i-blog.csdnimg.cn/blog_migrate/67c253b71f01ba1ca453a3af4be568f3.png#pic_center)
2 数据准备
2.1 数据加载
解压项目提供的数据:
!unzip /home/aistudio/data/data126280/HelmetDetection.zip -d /home/aistudio
更改文件位置:
%cd /home/aistudio
%mv data/data126280/helmet/train/annotations work/dataset/Annotations
%mv data/data126280/helmet/train/images work/dataset/JPEGImages
文件目录结构如下:
dataset/ dataset/
├── annotations/ --> ├── Annotations/
├── images/ ├── JPEGImages/
2.2 数据预处理
训练数据预处理和增强操作:
- MixupImage:
mixup_epoch=-1:应用 Mixup 数据增强,这是一种通过混合两个图像来生成新的训练样本的技术。mixup_epoch=-1表示在所有训练周期中都应用 Mixup。
- RandomDistort:
- 随机扭曲图像,增加训练数据的多样性。
- RandomExpand:
- 随机扩展图像,通过填充值
[123.675, 116.28, 103.53]进行填充。有助于增加模型对输入图像边界的鲁棒性。
- 随机扩展图像,通过填充值
- RandomCrop:
- 随机裁剪图像,增加训练数据的多样性。
- RandomHorizontalFlip:
- 随机水平翻转图像,增加训练数据的多样性。
- BatchRandomResize:
- 随机调整图像尺寸,可选择多个目标尺寸
[320, 352, 384, 416, 448, 480, 512, 544, 576, 608],并使用随机的插值方法。
- 随机调整图像尺寸,可选择多个目标尺寸
- Normalize:
- 将图像进行标准化,使用均值
[0.485, 0.456, 0.406]和标准差[0.229, 0.224, 0.225]进行归一化。
- 将图像进行标准化,使用均值
train_transforms = T.Compose([
T.MixupImage(mixup_epoch=-1), T.RandomDistort(),
T.RandomExpand(im_padding_value=[123.675, 116.28, 103.53]), T.RandomCrop(),
T.RandomHorizontalFlip(), T.BatchRandomResize(
target_sizes=[320, 352, 384, 416, 448, 480, 512, 544, 576, 608],
interp='RANDOM'), T.Normalize(
mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
eval_transforms = T.Compose([
T.Resize(
target_size=480, interp='CUBIC'), T.Normalize(
mean=[0.485, 0.456, 0.406], std=[0.229, 0.224, 0.225])
])
划分训练集和验证集的比例为:0.85:0.15
!paddlex --split_dataset --format voc --dataset_dir /home/aistudio/work/dataset --val_value 0.15
得到文件:
labels.txt,val_list.txt,train_list.txt
定义训练集和验证集:
train_dataset = pdx.datasets.VOCDetection(
data_dir='/home/aistudio/work/dataset',
file_list='/home/aistudio/work/dataset/train_list.txt',
label_list='/home/aistudio/work/dataset/labels.txt',
transforms=train_transforms

该博客围绕目标检测展开实验,使用PaddleX库对yolov3、yolov7、yolov8、rt - detr四种模型训练。yolov7和yolov8效果不佳放弃,rt - detr表现较好但分数仍不高,yolov3初步训练效果好。后续以yolov3为基础优化,通过骨干网络替换、图像缩放等操作提升了模型精度。
最低0.47元/天 解锁文章
3604

被折叠的 条评论
为什么被折叠?



