From 33b0bc72035a635e57b4841a5246c62839bb6901 Mon Sep 17 00:00:00 2001 From: Zheng-Bicheng Date: Tue, 21 Feb 2023 12:08:23 +0800 Subject: [PATCH 1/5] Add PPOCRV3 Deploy PFC --- .../20230221_deploy_ppocrv3_for_rknpu2.md | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 rfcs/FastDeploy/20230221_deploy_ppocrv3_for_rknpu2.md diff --git a/rfcs/FastDeploy/20230221_deploy_ppocrv3_for_rknpu2.md b/rfcs/FastDeploy/20230221_deploy_ppocrv3_for_rknpu2.md new file mode 100644 index 000000000..3163a9c53 --- /dev/null +++ b/rfcs/FastDeploy/20230221_deploy_ppocrv3_for_rknpu2.md @@ -0,0 +1,60 @@ +# 完成pp-ocrv3在RK3588上的部署,并验证正确性 + +| 领域 | 飞桨文档体验方案 | +|----------------------------------------------------------|-------------------------------------------| +| 提交作者 | Zheng-Bicheng | +| 提交时间 | 2023-02-21 | +| 版本号 | V0.0 | +| 依赖飞桨版本 | paddlepaddle-gpu==0.0 | +| 文件名 | 20230221_deploy_ppocrv3_for_rknpu2.md
| + + +# 一、概述 + +## 1、相关背景 + +完成PP-OCRv3模型转换,并量化完成在在RK3588上的部署,确定精度和推理速度正确 + +## 2、功能目标 + +* 提交适配代码,及对应的中英文文档 +* 提交PP-OCRv3的部署示例 +* 提交benchmark测试数据及精度对齐数据 + +## 3、意义 + +完善FastDeploy在RKNPU2上的OCR部署。 + +# 二、设计思路与实现方案 + +### Det部分 + +- RKNPU2不支持Normalzie 和 Permute,参考PPYOLOE在FastDeploy中的部署,因此添加了DisableNormalize 和DisablePermute +- RKNPU2 不支持动态shape,因此参考Rec部分新增了固定shape推理。 + +### Cls部分 + +- RKNPU2不支持Normalzie 和 Permute,参考PPYOLOE在FastDeploy中的部署,因此添加了DisableNormalize 和DisablePermute + +### Rec部分 + +- RKNPU2不支持Normalzie 和 Permute,参考PPYOLOE在FastDeploy中的部署,因此添加了DisableNormalize 和DisablePermute + +### OCR Result部分 + +- 在显示result时会出现rec_score为0但是仍然被框出来的情况,这里对VisOcr函数新增了参数score_threshold + + +# 三、测试和验收的考量 + +* RKNPU2对PPOCR-V3 Rec部分量化支持度较差,因此可能只考虑量化Cls和Det两个部分。 + +# 四、可行性分析和排期规划 + +对各主流深度学习框架已经有一定了解,需要进一步做细致的体验测试及分析。 +预计整体的工作量在三周内可完成,不会晚于黑客松设定的验收 DDL。 + + +# 五、影响面 + +都是新增API,对现有的模型架构不造成影响 From 3a63f8376542ce408e7630f4043b6f104437c094 Mon Sep 17 00:00:00 2001 From: Zheng-Bicheng Date: Tue, 21 Feb 2023 12:12:25 +0800 Subject: [PATCH 2/5] Add PPOCRV3 Deploy PFC --- rfcs/FastDeploy/20230221_deploy_ppocrv3_for_rknpu2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rfcs/FastDeploy/20230221_deploy_ppocrv3_for_rknpu2.md b/rfcs/FastDeploy/20230221_deploy_ppocrv3_for_rknpu2.md index 3163a9c53..5f08e1b54 100644 --- a/rfcs/FastDeploy/20230221_deploy_ppocrv3_for_rknpu2.md +++ b/rfcs/FastDeploy/20230221_deploy_ppocrv3_for_rknpu2.md @@ -57,4 +57,4 @@ # 五、影响面 -都是新增API,对现有的模型架构不造成影响 +都是新增API,对现有的FastDeploy架构不造成影响 From 07e69a0b0e7fcf1bee8de3136ad906f2f5050171 Mon Sep 17 00:00:00 2001 From: Zheng-Bicheng Date: Tue, 21 Feb 2023 22:59:06 +0800 Subject: [PATCH 3/5] update 20230221_add_solov2_for_fastdeploy --- .../20230221_add_solov2_for_fastdeploy.md | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 rfcs/FastDeploy/20230221_add_solov2_for_fastdeploy.md diff --git a/rfcs/FastDeploy/20230221_add_solov2_for_fastdeploy.md b/rfcs/FastDeploy/20230221_add_solov2_for_fastdeploy.md new file mode 100644 index 000000000..9a065786f --- /dev/null +++ b/rfcs/FastDeploy/20230221_add_solov2_for_fastdeploy.md @@ -0,0 +1,67 @@ +# 集成SOLOv2模型到FastDpeloy,并在Paddle Infenence、ONNX Runtime、TernsorRT后端测试验证 + +| 领域 | 飞桨文档体验方案 | +|----------------------------------------------------------|-------------------------------------------| +| 提交作者 | Zheng-Bicheng | +| 提交时间 | 2023-02-21 | +| 版本号 | V0.0 | +| 依赖飞桨版本 | paddlepaddle-gpu==0.0 | +| 文件名 | 20230221_add_solov2_for_fastdeploy.md
| + + +# 一、概述 + +## 1、相关背景 + +完成SOLOv2算法前后处理,及精度对齐,开发Python部署示例和C++部署示例 + +## 2、功能目标 + +* Python和C++实现代码 ,在FastDeploy repo 的examples/vision/detection/paddledetection/jetson; +* 中英文文档,在FastDeploy repo 的examples/vision/detection/paddledetection/jetson;包含从零的环境安装文档 +* 提交benchmark测试数据及精度对齐数据 + +## 3、意义 + +补齐FastDeploy在PaddleDetection上无法部署SOLOv2的遗憾。 + +# 二、设计思路与实现方案 + +## 删除ApplyDecodeAndNMS改为ApplyNMS + +不带decode的模型几乎在部署中见不到,后续RK指定特殊节点进行导出的模型可以移动至RKYOLO仓库。 +因此可以考虑删除ppdet_decode,PPDet模型只保留以下三种情况: + +- 仅删除NMS的模型 +- 带所有后处理的模型 +- Solov2 + + + +## 删除ProcessUnDecodeResults并新增三个不同的Process + +删除ProcessUnDecodeResults,新增以下三个api: + +- ProcessGeneral(仅删除NMS的模型,带所有后处理的模型) +- ProcessSolov2(Solov2) + +其中ProcessGeneral需要添加一个参数bool with_nms = false,用于区别删除NMS的模型与其他模型。 + +## PreProcess读取yaml文件的代码移动到PPDet模型下,并赋值给PreProcess和PostProcess + +如果postprocess根据arch来判断后处理执行哪个代码需要读取yaml文件,使用这种方法可以节省一次读取yaml文件的时间 + +# 三、测试和验收的考量 + +* 验收标准:先提交精度与速度报告,待报告通过后,提交pr到FastDeploy仓库。 + +# 四、可行性分析和排期规划 + +对各主流深度学习框架已经有一定了解,需要进一步做细致的体验测试及分析。 +预计整体的工作量在三周内可完成,不会晚于黑客松设定的验收 DDL。 + + +# 五、影响面 + +删除了ppdet_decode,部分代码会收到影响,例如没有decode版本的picodet会无法部署。 +不过考虑到几乎没有用户使用这个版本的decode,删除ppdet_decode能让代码不会非常耦合,是值得的。 From ac5dda6117274571f25fd99259632fcf18b355ea Mon Sep 17 00:00:00 2001 From: Zheng-Bicheng Date: Tue, 28 Feb 2023 20:50:25 +0800 Subject: [PATCH 4/5] update 20230228_pplcnet_deploy_for_arm --- rfcs/AVH/20230228_pplcnet_deploy_for_arm.md | 75 +++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 rfcs/AVH/20230228_pplcnet_deploy_for_arm.md diff --git a/rfcs/AVH/20230228_pplcnet_deploy_for_arm.md b/rfcs/AVH/20230228_pplcnet_deploy_for_arm.md new file mode 100644 index 000000000..64c4b2d93 --- /dev/null +++ b/rfcs/AVH/20230228_pplcnet_deploy_for_arm.md @@ -0,0 +1,75 @@ +# Arm 虚拟硬件上完成 PaddleClas 模型的部署 + +| 任务名称 | Arm 虚拟硬件上完成 PaddleClas 模型的部署 | +|----------------------------------------------------------|----------------------------------------| +| 提交作者 | ZhengBicheng | +| 提交时间 | 2023-02-28 | +| 版本号 | V0.0 | +| 依赖飞桨版本 | develop | +| 文件名 | 20230228_pplcnet_deploy_for_arm.md
| + +# 一、概述 + +## 1、相关背景 + +任务目标为将 PaddleClas 模型库中的模型部署在 Arm Cortex-M55 处理器上并使用 Arm 虚拟硬件 Corstone-300 平台进行验证。 + +## 2、功能目标 + +使用Arm虚拟硬件完成文本检测应用的结果验证。 + +## 3、意义 + +为PaddleClas套件提供TVM部署的实例方案。 + +# 二、飞桨现状 + +PaddleClas暂时没有在TVM上运行的案例。 + +# 三、业内方案调研 + +* [PPOCR部署](https://github.com/ArmDeveloperEcosystem/Paddle-examples-for-AVH/tree/main/OCR-example)中提供了PPOCR模型在TVM上运行的实例代码。 + +# 四、对比分析 + +本方案将采用类似的方案,使PPClas在ARM硬件上部署,并输出具有可读性的运行结果。 + + +# 五、设计思路与实现方案 + +## 1、主体设计思路与折衷 + +参考实例代码跑通环境部署、TVM安装、模型编译、代码编写与测试等部署。 + +### 主体设计具体描述 + +将提供模型转换文档,模型部署代码,以及展示测试结果 + +### 主体设计选型考量 + +按照任务需求使用PP-LCNet部署 + + +## 2、关键技术点/子模块设计与实现方案 + +按PPOCR demo实现类似的方案 + +## 3、主要影响的模块接口变化 + +无影响 + +# 六、测试和验收的考量 + +使用Arm虚拟硬件平台验证文本检测应用运行结果, 检测结果正常并具有可读性。 + +# 七、影响面 + +无影响与风险 + +# 八、排期规划 + +还是存在一定难度的,将会尽快完成代码。 + +* 转换模型(3-15前) +* 部署模型(4-15前) +* 输出demo(5-15前) From 3a4706bc40c72203483e81ddbb0c237a3b30c555 Mon Sep 17 00:00:00 2001 From: Zheng-Bicheng Date: Tue, 28 Feb 2023 20:52:03 +0800 Subject: [PATCH 5/5] update 20230228_pplcnet_deploy_for_arm --- rfcs/AVH/20230228_pplcnet_deploy_for_arm.md | 75 --------------------- 1 file changed, 75 deletions(-) delete mode 100644 rfcs/AVH/20230228_pplcnet_deploy_for_arm.md diff --git a/rfcs/AVH/20230228_pplcnet_deploy_for_arm.md b/rfcs/AVH/20230228_pplcnet_deploy_for_arm.md deleted file mode 100644 index 64c4b2d93..000000000 --- a/rfcs/AVH/20230228_pplcnet_deploy_for_arm.md +++ /dev/null @@ -1,75 +0,0 @@ -# Arm 虚拟硬件上完成 PaddleClas 模型的部署 - -| 任务名称 | Arm 虚拟硬件上完成 PaddleClas 模型的部署 | -|----------------------------------------------------------|----------------------------------------| -| 提交作者 | ZhengBicheng | -| 提交时间 | 2023-02-28 | -| 版本号 | V0.0 | -| 依赖飞桨版本 | develop | -| 文件名 | 20230228_pplcnet_deploy_for_arm.md
| - -# 一、概述 - -## 1、相关背景 - -任务目标为将 PaddleClas 模型库中的模型部署在 Arm Cortex-M55 处理器上并使用 Arm 虚拟硬件 Corstone-300 平台进行验证。 - -## 2、功能目标 - -使用Arm虚拟硬件完成文本检测应用的结果验证。 - -## 3、意义 - -为PaddleClas套件提供TVM部署的实例方案。 - -# 二、飞桨现状 - -PaddleClas暂时没有在TVM上运行的案例。 - -# 三、业内方案调研 - -* [PPOCR部署](https://github.com/ArmDeveloperEcosystem/Paddle-examples-for-AVH/tree/main/OCR-example)中提供了PPOCR模型在TVM上运行的实例代码。 - -# 四、对比分析 - -本方案将采用类似的方案,使PPClas在ARM硬件上部署,并输出具有可读性的运行结果。 - - -# 五、设计思路与实现方案 - -## 1、主体设计思路与折衷 - -参考实例代码跑通环境部署、TVM安装、模型编译、代码编写与测试等部署。 - -### 主体设计具体描述 - -将提供模型转换文档,模型部署代码,以及展示测试结果 - -### 主体设计选型考量 - -按照任务需求使用PP-LCNet部署 - - -## 2、关键技术点/子模块设计与实现方案 - -按PPOCR demo实现类似的方案 - -## 3、主要影响的模块接口变化 - -无影响 - -# 六、测试和验收的考量 - -使用Arm虚拟硬件平台验证文本检测应用运行结果, 检测结果正常并具有可读性。 - -# 七、影响面 - -无影响与风险 - -# 八、排期规划 - -还是存在一定难度的,将会尽快完成代码。 - -* 转换模型(3-15前) -* 部署模型(4-15前) -* 输出demo(5-15前)