开放能力
开发平台
行业应用
生态合作
开发与教学
资讯 社区 控制台
技术能力
语音技术
文字识别
人脸与人体
图像技术
语言与知识
视频技术
AR与VR
数据智能
场景方案
部署方案
行业应用
智能教育
智能医疗
智能零售
智能工业
企业服务
智能政务
信息服务
智能园区

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模型部署