本项目使用PaddleX搭建目标检测模块,在一个精选的数据集上进行初步训练,并在另一个老年人跌倒检测的数据集上进行参数微调,实现了迁移学习的目标检测项目。
1.项目介绍
迁移学习是非常有用的方法,在实际生活中由于场景多样,环境复杂,一些场景复杂或者人体姿态不一的数据集较少,因此直接训练的难度较大,且效果往往不如迁移学习。
2.项目流程
- 我们使用两个数据集,一个是精选的精选的跌倒检测数据集Fall detection Dataset,一个是老年人跌倒数据集,在界面左侧数据集标签页可看到。
- 检查标签名称,看是否满足我们的需要,如不满足则需要处理数据集将标签统一和格式化,并检查文件夹名称是否符合我们的规范。
- 本项目使用的格式是PascalVOC格式
具体流程如下:首先部署开发环境,安装PaddleX;切割数据集、构建数据读取器;搭建PPYolo模型;使用其他场景数据集训练、验证模型;使用跌倒数据集进行微调并验证;使用微调后的模型进行推理。
3.项目环境
本项目的实验环境如下表所示
名称 | 版本 | 功能说明 |
---|---|---|
AIStudio | BML Codelab | 代码实现的基础平台与环境 |
PaddlePaddle | 2.3.2 | 在新建项目时选择,2.4.0会出现bug |
python | 3.7 | 默认选择 |
PaddleX | 2.1.0 | PaddleX套件用于搭建模型 |
4.预训练阶段
利用跌倒检测数据集Fall detection Dataset得到预训练模型,为后续模型的微调做准备。
4.1 环境安装
PaddleX集成飞桨智能视觉领域图像分类、目标检测、语义分割、实例分割任务能力,将深度学习开发全流程从数据准备、模型训练与优化到多端部署端到端打通,并提供统一任务API接口。无需分别安装不同套件,以低代码的形式即可快速完成飞桨全流程开发。
本项目主要采用PaddleX来实现目标预测项目。
In [ ]
# 安装相关包,在持久化文件夹下安装
!pip install pycocotools -t /home/aistudio/external-libraries
!pip install cython -t /home/aistudio/external-libraries
!pip install pyproject -t /home/aistudio/external-libraries
!pip install --user --upgrade pyarrow==11.0.0
# 此处如果使用持久化路径会找不到paddlex命令
!pip install paddlex -i https://pypi.tuna.tsinghua.edu.cn/simple
4.2 数据集预处理
数据集存放在data文件夹下,解压相关数据集并处理成我们想要的格式。
In [ ]
# 解压数据集文件
!unzip -oq /home/aistudio/data/data182907/Fall_Dataset.zip -d Fall_Dataset/
!unzip -oq /home/aistudio/data/data94809/pp_fall.zip -d pp_fall/
此时数据集已解压到相关目录,但不符合PAscalVOC格式
Annotations
进行detection 任务时的 标签文件,xml文件形式ImageSets
存放数据集的分割文件,比如train,val,testJPEGImages
存放 .jpg格式的图片文件SegmentationClass
存放 按照class 分割的图片SegmentationObject
存放 按照 object 分割的图片
In [ ]
# 对文件结构做处理
%cd /home/aistudio/Fall_Dataset/Fall_Dataset
!mv /home/aistudio/Fall_Dataset/Fall_Dataset/ImageSets/Main/test.txt /home/aistudio/Fall_Dataset/Fall_Dataset/ImageSets
!mv /home/aistudio/Fall_Dataset/Fall_Dataset/ImageSets/Main/train.txt /home/aistudio/Fall_Dataset/Fall_Dataset/ImageSets