资讯 社区 文档
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术

PaddlePaddle模型部署

PaddlePaddle模型部署

说明
模型导出
模型部署
  基于EdgeBoard1.8.0模型部署
    上传模型
    修改模型配置文件
    修改系统配置文件
    执行程序
  基于EdgeBoard1.5.1模型部署

说明

EdgeBoard预置PaddleLite预测框架,支持PaddlePaddle训练的模型,模型训练完成后需要进一步导出适合端部署的inference模型格式,

使用paddlepaddle2.0以下版本训练的模型,inference模型导出后包含__model____params__model.yml三个文件

使用paddlepaddle2.0及以上版本训练,导出的模型为model.pdmodelmodel.pdiparamsmodel.pdiparams.infoinfer_cfg.yml四个文件。

模型导出

基于PaddleDetection训练的模型可使用如下脚本导出:

cd PaddleDetection && python tools/export_model.py -c configs/yolov3_r34_voc.yml \
                                        --output_dir=inference_model \
                                        -o weights=output/yolov3_r34_voc/best_model \
                                           TestReader.inputs_def.image_shape=[3,608,608]   

详情参考Paddledetection Github链接:https://github.com/PaddlePaddle/PaddleDetection

其他模型导出方式可咨询paddle官方群:https://www.paddlepaddle.org.cn/

模型部署

基于EdgeBoard1.8.0示例模型部署

上传模型

模型训练完成后,将模型文件上传到EdgeBoard内,存放于/home/root/workspace/PaddleLiteDemo/res/models选择与模型相对应的文件夹,比如yolov3模型存放在detection目录,模型文件中需要包含于示例对应的文件,包括

model, params:模型文件(paddlepaddle版本不同,训练出的模型名称或有差别,只要在config.json中对应上即可)

label_list.txt:模型标签文件

img:放置预测图片的文件夹

config.json:配置文件,需要基于示例给出的结构,更改为自训练模型的参数

修改模型配置文件

config.json文件内容如下:

{
        "network_type":"YOLOV3",

        "model_file_name":"model",
        "params_file_name":"params",

        "labels_file_name":"label_list.txt",

        "format":"RGB",
        "input_width":608,
        "input_height":608,

        "mean":[123.675, 116.28, 103.53],
        "scale":[0.0171248, 0.017507, 0.0174292],
        "threshold":0.3
}

注意:config.json文件内的mean、scale计算方式与训练模型时的计算方式可能不同,一般有如下两种方式:

例如R为一张图片中一个像素点的R通道的值

①(R / 255 – mean‘) / std’

②(R – mean) * scale(EdgeBoard处理方式)

如果训练模型的mean和std为第一种计算方式,就需要通过如下运算,计算为Edgeboard的处理方式。

   edgeboard中的mean值 = mean‘ * 255

   Edgeboard中的scale值 = 1 / ( 255 * std’ )

修改系统配置文件

系统配置文件存放于/home/root/workspace/PaddleLiteDemo/configs内,根据模型属性修改对应的配置文件,比如yolov3模型,修改image.json文件中模型文件路径以及预测图片路径。

{
    "model_config": "../../res/models/detection/yolov3",
    "input": {
        "type": "image",
        "path": "../../res/models/detection/yolov3/img/screw.jpg"
    },
    "debug": {
        "display_enable": true,
        "predict_log_enable": true,
        "predict_time_log_enable": false
    }
}

具体参数说明请参见1.8.0版本模型预测示例。

执行程序

模型配置文件和系统配置文件修改完成后,运行程序

cd /home/root/workspace/PaddleLiteDemo/C++/build
./detection ../../configs/detection/yolov3/image.json

基于EdgeBoard1.5.1示例版本模型部署

部署步骤:

1、将模型上传至系统自带的sample的不同示例工程中;

EdgeBoard支持图像分类和物体检测两类模型

1)如果是图像分类模型,模型需上传到/home/root/workspace/PaddleLiteSample/classification/models目录,

2)如果是物体检测模型,模型需上传到/home/root/workspace/PaddleLiteSample/detection/models目录。

2、模型结构和参数的名称与sample中的模型名称须对应

EdgeBoards示例工程中modes目录的模型文件名称为model和params,如果训练出的模型不一致,需改下模型名称,可以对模型直接重命名,或者在保存模型的API fluid.io.save_inference_model中指定model_filename和params_filename为model和params。

3、修改config文件

  • 指定model路径
  • 修改数据预处理后的尺寸大小
  • 指定预测图片路径
  • 修改mean和scale值,图像数据归一化方式有:

    举例:R为一张图片中一个像素点的R通道的值

    ①(R / 255 – mean) / std

    ②(R – mean’) * scale(EdgeBoard处理方式)

       mean’= mean * 255
    
       scale = 1 / ( 255 * std )

4、上传预测图片

上传预测图片到config文件指定预测图片路径中,可使用ftp或者samba工具进行文件上传操作

5、运行模型

参考sample运行模型方式,同样运行自己的模型

上一篇
BML模型部署
下一篇
PaddleX模型部署