基于PaddlePaddle的工业表计数环境搭建

为了验证百度PaddlePaddle发布的工业表计数工程模型的准确性以及效果,分别在PC端和jetson端搭建了环境,亲测实际效果

工业表计数:工业表计读数 — PaddleX 文档

链接中jetson nano c++部署链接失效,可以参考这个:



Jetson部署 — PaddleX 文档

Nvidia Jetson开发板本地部署 — PaddleX 文档

github链接:https://github.com/PaddlePaddle/PaddleX

一、PC端搭建(比较)

1、下载PaddleX源码:

git clone https://github.com/PaddlePaddle/PaddleX
cd PaddleX
git checkout release/1.3

2、预测执行文件位于PaddleX/examples/meter_reader/,进入该目录:

cd PaddleX/examples/meter_reader/

3、使用anaconda3创建paddlepaddle环境

(1)安装paddlepaddle-gpu

不要使用默认安装版本,不然会因为版本不匹配,出现不必要的错误

工业表计数的要求版本为

Paddle paddle >= 1.8.0
Python >= 3.5
PaddleX >= 1.0.0

(2)安装完成后的版本版本为:

paddlepaddle-gpu == 1.8.1.post97
Python >= 3.6.13
paddlex==1.3.0

(3)安装命令 直接pip install  包的名称,如安装paddlepaddle-gpu,安装命令为:

pip install paddlepaddle-gpu==1.8.1.post97

4、下载模型以及数据文件

可在上面链接中获取模型以及数据文件

5、实际测试检测效果

单张测试

检测过程

基于PaddlePaddle的工业表计数环境搭建_第1张图片

检测原图

 

检测后的图

 

二、jetson nx搭建(jetpack 4.6)

1、python预测库

(1)、在jetson平台上pip 直接install的话会找不到对应的安装包,需要去专门的网站上下载针对硬件和软件编译好的.whl包

网站为下载安装Linux预测库 — Paddle-Inference documentation 

或者这个网站:Paddle Lite

一定要下载自己系统对应的包,不然出错,我下载的版本

基于PaddlePaddle的工业表计数环境搭建_第2张图片

(2)安装 

安装之前安装pip3 sudo apt-get install python-pip3

直接pip install paddlepaddle_gpu-2.3.0-cp36-cp36m-linux_aarch64,安装过程中可能会提示所依赖的包版本过高,而python版本低,这个时候需要设置版本号

如pip install paddlepaddle_gpu-2.3.0-cp36-cp36m-linux_aarch64 potobuf==3.8.0

(3)安装paddlex

直接pip安装,为了避免版本问题,直接安装1.3.0

pip3 install paddlex==1.3.0 protobuf==1.8.0

(4)安装过程中遇到的问题

安装scipy报错,一大堆的错误

解决方式:

安装系统依赖项

sudo apt-get install libblas-dev checkinstall
sudo apt-get install liblapack-dev checkinstall
sudo apt-get install gfortran
pip3 install scipy

问题2:

pip3 install pyarrow

报错原因是pip版本低引起

python3 -m pip install --upgrade pip

(5)预测实例

预测命令

原图

基于PaddlePaddle的工业表计数环境搭建_第3张图片 

预测图

基于PaddlePaddle的工业表计数环境搭建_第4张图片 

 2、C++预测库

(1)下载c++的预测库(在pyhon预测库中下载)

基于PaddlePaddle的工业表计数环境搭建_第5张图片

 我的下载如图所示,解压存在指定位置就ok

(2)工程部署

工业表计数百度已经给了具体的步骤,如图所示,我这主要记录在编译过程中遇到的奇葩错误,同时纠正一些bug

基于PaddlePaddle的工业表计数环境搭建_第6张图片

编译之前需要根据以下链接配置build.sh脚本

Jetson Nano上部署PaddleDection 原生预测方法经验分享 - 知乎 

编译过程中所遇到的问题:

问题1:cc1plus:fatal error: xxx/xx.cpp.d:没有那个文件或目录

基于PaddlePaddle的工业表计数环境搭建_第7张图片

 

这个问题需要修改CmakeList.txt的第148行,将-o2修改为-O3

基于PaddlePaddle的工业表计数环境搭建_第8张图片

 参考了:cc1plus:fatal error: xxx/xx.cpp.d:没有那个文件或目录_驱魔鮔_Roc的博客-CSDN博客

                https://github.com/PaddlePaddle/PaddleOCR/issues/4654

问题2:no matching function for call to "Paddlex::Model::Init()"

基于PaddlePaddle的工业表计数环境搭建_第9张图片

 解决方法:修改meter_reader.cpp里中Init函数的参数,使用在meter_reader.cpp里Init的函数赋值了5个参数,而初始化却有8个参数

修改后的函数如下:

基于PaddlePaddle的工业表计数环境搭建_第10张图片

 至此C++版本的paddlepaddle在jetson nx上部署完成了

测试命令

原图

基于PaddlePaddle的工业表计数环境搭建_第11张图片 

结果

基于PaddlePaddle的工业表计数环境搭建_第12张图片 

 

你可能感兴趣的:(PaddlePaddle,paddlepaddle,paddlex,工业表计数)