首页 飞桨领航团 帖子详情
百度飞桨第7课|项目全流程实践以安全帽检测为例
收藏
快速回复
飞桨领航团 文章AI达人创造营 635 0
百度飞桨第7课|项目全流程实践以安全帽检测为例
收藏
快速回复
飞桨领航团 文章AI达人创造营 635 0

paddlex使用全流程

安装模型库
!pip install paddlex==2.0rc
数据准备
VOC数据集目录如下
dataset/
├── annotations/
├── images/

训练集测试集划分
!paddlex --split_dataset --format VOC --dataset_dir MyDataset --val_value 0.2 --test_value 0.1

模型训练

1.数据集与验证集的转换
2.定义训练和验证所用的数据集

train_dataset = pdx.datasets.VOCDetection(
data_dir='MyDataset',
file_list='MyDataset/train_list.txt',
label_list='MyDataset/labels.txt',
transforms=train_transforms,
shuffle=True)

3.选择训练模型

pdx.models.FasterRCNN
pdx.models.YOLOv3

3.模型初始化、模型训练

model = pdx.models.YOLOv3(num_classes=num_classes, backbone='MobileNetV3_ssld')
# API说明:https://github.com/PaddlePaddle/PaddleX/blob/release/2.0-rc/paddlex/cv/models/detector.py#L155
# 各参数介绍与调整说明:https://paddlex.readthedocs.io/zh_CN/develop/appendix/parameters.html

model.train(
    num_epochs=270,
    train_dataset=train_dataset,
    train_batch_size=2,
    eval_dataset=eval_dataset,
    learning_rate=0.001 / 8,
    warmup_steps=1000,
    warmup_start_lr=0.0,
    save_interval_epochs=1,
    lr_decay_epochs=[216, 243],
    save_dir='output/yolov3_mobilenet')

模型预测

加载模型
model = pdx.load_model('output/yolov3_mobilenet/best_model')
result = model.predict(img)
模型裁剪
模型裁剪可以更好地满足在端侧、移动端上部署场景下的性能需求,可以有效得降低模型的体积,以及计算量,加速预测性能。
1.分析模型各层参数在不同的剪裁比例下的敏感度
2.根据选择的FLOPs减小比例对模型进行剪裁
3.对剪裁后的模型重新训练

paddlex部署

paddlex C++部署

!git clone https://gitee.com/paddlepaddle/PaddleX.git
%cd /home/aistudio/PaddleX/dygraph/deploy/cpp

下载PaddlePaddle C++ 预测库

CPU/GPU版本的预测库
!wget https://paddle-inference-lib.bj.bcebos.com/2.1.0-cpu-avx-mkl/paddle_inference.tgz

修改编译参数
修改PaddleX/dygraph/deploy/cpp/script/build.sh脚本中的参数

WITH_GPU
PADDLE_DIR
CUDA_LIB
CUDNN_LIB

修改yaml依赖包路径并编译

到终端中修改PaddleX/dygraph/deploy/cpp/cmake/yaml-cpp.cmake文件,将URL https://bj.bcebos.com/paddlex/deploy/deps/yaml-cpp.zip中网址替换为下载好的路径

!sh scripts/build.sh

动态模型转静态模型

!paddlex --export_inference --model_dir=./yolov3_mobilenet --save_dir=./

加载导出的模型并使用GPU预测

!PaddleX/dygraph/deploy/cpp/build/demo/model_infer --use_gpu=1 
                       --model_filename=inference_model/model.pdmodel 
                       --params_filename=inference_model/model.pdiparams 
                       --cfg_file=inference_model/model.yml 
                       --image=/home/aistudio/helmet.jpg 
                       --model_type=det

C++预测结果与Python预测结果进行对比

EasyEdge部署

直接上传模型选择部署平台生成部署程序

0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户