PaddleX 2.0动态图体验:安全帽检测模型开发与部署
项目简介
安全帽佩戴检测是计算机视觉在工业安全领域应用的典型场景,本文使用PaddleX动态图进行yolov3_mobilenet迁移学习训练。PaddleX升级到2.0.0-rc,基于动态图的训练和预测依然非常便捷。
准备模型库
数据集准备
本项目使用的安全帽检测数据集已经按VOC格式进行标注,目录情况如下:
dataset/
├── annotations/
├── images/
而使用PaddleX的API,一键进行数据切分时,数据文件夹切分前后的状态如下:
dataset/ dataset/
├── Annotations/ <-- ├── Annotations/
├── JPEGImages/ ├── JPEGImages/
├── labels.txt
├── test_list.txt
├── train_list.txt
├── val_list.txt
使用稍加整理,就可以使用一键切分快速划分数据集。
In [ ]
# 解压数据集,并做好数据切分准备
In [ ]
!unzip /home/aistudio/data/data50329/HelmetDetection.zip -d ./MyDataset
In [ ]
!mv MyDataset/images MyDataset/JPEGImages
In [ ]
!mv MyDataset/annotations MyDataset/Annotations
将训练集、验证集和测试集按照7:2:1的比例划分。 PaddleX中提供了简单易用的API,方便用户直接使用进行数据划分。下面这行代码正确执行的前提是,PaddleX的版本和Paddle匹配,要么都是2.0+,要么都是1.8.X。
In [ ]
!paddlex --split_dataset --format VOC --dataset_dir MyDataset --val_value 0.2 --test_value 0.1
到这里,基于PaddleX强大的API功能,安全帽检测数据集也完成了整理、划分。
模型训练
PaddleX最核心的特点就是模型训练极其简单,比如下面几行代码演示的,只要配置了数据集目录,选择好模型即可。
模型预测 模型裁剪
PaddleX 2.0动态图检测模型部署实现
1 PaddleX模型C++部署
PaddleX动态图目前支持以下飞桨官方套件基于PaddleInference的部署
1.1 模型套件支持1.2 硬件支持
2 基于PaddleInference的推理-Linux环境编译
2.1 部署代码准备2.2 下载PaddlePaddle C++ 预测库2.3 修改编译参数2.4 修改yaml依赖包路径并编译
3 模型导出和部署
3.1 模型导出3.2 模型测试3.3 加载导出的模型并使用GPU预测3.4 模型验证
4 小结
本文介绍了PaddleX动态图模型基于PaddleInference的部署实现,一般来说,部署有大三关:环境、编译和预测,相对来说,部署往往要多次debug,而且不一定能马上找到解决方案,因此,有耐心是特别重要的。
EasyEdge:PaddleX 2.0动态图检测模型的部署