赞
踩
数据集共包括40000张训练图像和1000张测试图像,每张训练图像对应 xml标注文件:
共包含3类:0:‘head’, 1:‘helmet’, 2:‘person’ 提交格式要求,提交名为pred_result.txt的文件:每一行代表一个目标,每一行内容分别表示 图像名 置信度 xmin ymin xmax ymax 类别
解压项目提供的数据:
!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/
训练数据预处理和增强操作:
mixup_epoch=-1
:应用 Mixup 数据增强,这是一种通过混合两个图像来生成新的训练样本的技术。mixup_epoch=-1
表示在所有训练周期中都应用 Mixup。[123.675, 116.28, 103.53]
进行填充。有助于增加模型对输入图像边界的鲁棒性。[320, 352, 384, 416, 448, 480, 512, 544, 576, 608]
,并使用随机的插值方法。[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,
shuffle=True)
eval_dataset = pdx.datasets.VOCDetection(
data_dir='/home/aistudio/work/dataset',
file_list='/home/aistudio/work/dataset/val_list.txt',
label_list='/home/aistudio/work/dataset/labels.txt',
transforms=eval_transforms,
shuffle=False)
由于PaddleX有大量的有关目标检测的集成模型可供选择,所以本次实验采用PaddleX库进行训练。版本:python=3.7 PaddlePaddle=2.4.0
!pip install paddlex
!pip install --user --upgrade pyarrow==11.0.0
本次实验分别选取了yolov3、yolov7、yolov8、rt-detr四种模型进行训练,并挑选出训练情况相对较好的模型进行进一步的优化,以下是模型的初步训练过程。
V7的模型架构:
V7的改进:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。