注意: 由于SOPHGO SE5微服务器的CPU是基于ARM架构,以下步骤将在基于x86架构CPU的开发环境中完成
- 初始化开发环境(基于x86架构CPU的开发环境中完成)
- 模型转换 (基于x86架构CPU的开发环境中完成)
处理后的PP-OCR项目文件将被拷贝至 SE5微服务器 上进行推理测试
开发环境配置
【x86架构CPU的开发环境】
- Linux开发环境
- 一台安装了Ubuntu16.04/18.04/20.04的x86主机,运行内存建议12GB以上
- 下载SophonSDK开发包(v23.03.01)
(1)解压缩SDK包
sudo apt-get install p7zip
sudo apt-get install p7zip-full
7z x Release_<date>-public.zip
cd Release_<date>-public
(2)Docker 安装–TPU-MLIR环境初始化
# 安装docker
sudo apt-get install docker.io
# docker命令免root权限执行
# 创建docker用户组,若已有docker组会报错,没关系可忽略
sudo groupadd docker
# 将当前用户加入docker组
sudo gpasswd -a ${USER} docker
# 重启docker服务
sudo service docker restart
# 切换当前会话到新group或重新登录重启X会话
newgrp docker
提示:需要logout系统然后重新登录,再使用docker就不需要sudo了。
(3)创建docker容器并进入Docker
docker run -v $PWD/:/workspace -p 8001:8001 -it sophgo/tpuc_dev:latest
(4)加载tpu-mlir–激活环境变量
以下操作需要在Docker容器中。关于Docker的使用, 请参考 启动Docker Container 。
$ tar zxf tpu-mlir_xxxx.tar.gz
$ source tpu-mlir_xxxx/envsetup.sh
_xxxx表示的时tpu-mlir的版本号
本文是在SOPHGO PCIE 1684X/1684云平台上实现
**注意:**如果是在SOPHGO提供的1684X/1684 PCIE云平台上,则无需创建和进入docker,直接加载tpu-mlir并激活环境变量即可。如下命令直接source:
cd tpu-mlir_xxxx/ source tpu-mlir_xxxx-xxxx/envsetup.sh
实现PP-OCR的文字识别算法模型的转换和量化
1、模型转换
【x86架构CPU的开发环境】
(1)下载SOPHON示例仓库-PP-OCR算法移植代码:
git clone https://github.com/sophon-ai-algo/examples.git
# PP-OCR示例项目代码位置 /examples/simple/PP-OCRv2
(2)将checkpoints模型 转换为 inference模型
PaddlePaddle 支持导出 inference 模型用于部署推理场景,相比于训练调优场景,inference 模型会将网络权重与网络结构进行持久化存储,并且
PaddlePaddle 支持使用预测引擎加载 inference 模型进行预测推理。
参考:https://gitee.com/paddlepaddle/PaddleClas/blob/release/2.3/docs/zh_CN/inference_deployment/export_model.md
超轻量PP-OCRv2系列包含三个模型:检测(3.1M)+ 方向分类器(1.4M)+ 识别(8.5M)= 13.0M
可以直接通过运行SOPHON示例项目中的脚本下载转换好的inference模型:
通过脚本下载需要的数据和模型:
# 进入项目