前言:

当前准备重新在树莓派4B8G 上面搭载训练模型进行识别检测,训练采用了百度飞桨的PaddleX再也不用为训练部署环境各种报错发愁了,推荐大家使用。

关于在树莓派4B上面paddlelite的文章很多,特别是 诺亚方包 还有 耐心的小黑    的教程给了我很多指导,再此对他们表示感谢。

这次将采用最新的包进行部署,希望能将全过程记录下来跟大家做个分享

linux系统采用了官方最新的Raspberry Pi 64位系统   :Raspberry Pi OS with desktop

https://downloads.raspberrypi.org/raspios_arm64/images/raspios_arm64-2022-01-28/2022-01-28-raspios-bullseye-arm64.zip

  • Raspberry Pi OS with desktop

    • Release date: January 28th 2022
    • System: 64-bit
    • Kernel version: 5.10
    • Debian version: 11 (bullseye)
    • Size: 1,135MB

一、完成Linux 本地编译环境的准备
安装patchelf
sudo apt install patchelf

更新一下目录
sudo apt-get update

升级安装
sudo apt-get install -y

安装gcc g++
sudo apt-get install gcc g++

安装cmake
wget https://github.com/Kitware/CMake/releases/download/v3.23.0-rc2/cmake-3.23.0-rc2.tar.gz
tar -zxvf cmake-3.23.0-rc2.tar.gz

配置
cd cmake-3.23.0-rc2
./configure

开始编译:
make

(漫长的等待...)

安装:

sudo make install

查看cmake版本以验证安装成功:

cmake --version

二、源码编译

1. 下载Paddle-Lite 源码(当前最新版本为V2.10)  注意:如果你的Terminal当前目录还在 cmake目录下请退到根目录再进行下面的命令,最简单的办法就是关掉再重新打开一下,这样可以避免下载完找不到目录的错误!

注意:如果不在GitHub下载,在git checkout release/v2.10 切换分支的时候会报错

git clone https://github.com/PaddlePaddle/Paddle-Lite.git

切换到发布分支

cd Paddle-Lite && git checkout release/v2.10

(可选) 删除 third-party 目录,编译脚本会自动从国内 CDN 下载第三方库文件

rm -rf third-party

执行编译脚本

./lite/tools/build_linux.sh --arch=armv7hf --with_python=ON

(注意:

如果你使用官方教程执行编译脚本

./lite/tools/build_linux.sh

估计你跟我最初一样会报错,耗费了很长时间才搞定,后面必须加参数:

Make Error at CMakeLists.txt:34 (project):
The CMAKE_CXX_COMPILER:

aarch64-linux-gnu-g++

is not a full path and was not found in the PATH.

Tell CMake where to find the compiler by setting either the environment
variable "CXX" or the CMake cache entry CMAKE_CXX_COMPILER to the full path
to the compiler, or to the compiler name if it is in the PATH.

CMake Error at CMakeLists.txt:34 (project):
The CMAKE_C_COMPILER:

aarch64-linux-gnu-gcc

is not a full path and was not found in the PATH.

Tell CMake where to find the compiler by setting either the environment
variable "CC" or the CMake cache entry CMAKE_C_COMPILER to the full path to
the compiler, or to the compiler name if it is in the PATH.

ok,经过上面的经验你已经成功避过了一个坑,但是如果你的网络环境不是国内外通杀的话,执行过程中会报以下错误

RPC failed; curl 56 GnuTLS recv error (-54): Error in the pull function.

经过我不断出坑如坑的血泪经验,再传授一招,来拯救你那脆弱的git速度:

修改下载方式-https改为ssh

git clone git://git.openwrt.org/feed/packages.git

修改feeds.conf.default配置

src-git packages git://git.openwrt.org/feed/packages.git
src-git luci https://git.openwrt.org/project/luci.git
src-git routing https://git.openwrt.org/feed/routing.git
src-git telephony https://git.openwrt.org/feed/telephony.git
#src-git video https://github.com/openwrt/video.git
#src-git targets https://github.com/openwrt/targets.git
#src-git management https://github.com/openwrt-management/packages.git
#src-git oldpackages http://git.openwrt.org/packages.git
#src-link custom /usr/src/openwrt/custom-feed

好了,现在可以重新再执行编译脚本一遍:./lite/tools/build_linux.sh --arch=armv7hf --with_python=ON

配置好以后如果还是连不上,多重新几次,亲测有效,这个方法我觉的比修改dns管用。)

(漫长的编译等待...)

三、安装Paddle-Lite

inference_lite_lib.armlinux.armv7hf/
|-- cxx C++ 预测库和头文件
| |-- include C++ 头文件
| | |-- paddle_api.h
| | |-- paddle_image_preprocess.h
| | |-- paddle_lite_factory_helper.h
| | |-- paddle_place.h
| | |-- paddle_use_kernels.h
| | |-- paddle_use_ops.h
| | `-- paddle_use_passes.h
| `-- lib C++预测库
| |-- libpaddle_api_light_bundled.a C++静态库
| `-- libpaddle_light_api_shared.so C++动态库
|
|-- demo
| `-- python python预测库demo
|
|-- python Python预测库(需要打开with_python选项)
| |-- install
| | `-- dist
| | `-- paddlelite-*.whl python whl包
| |-- lib
| `-- lite.so

先进入paddlelite-*.whl文件目录里:

cd  Paddle-Lite/build.lite.linux.armv7hf.gcc/inference_lite_lib.armlinux.armv7hf/python/install/dist/

直接安装

pip3 install paddlelite-*.whl

安装完成后验证是否成功

import paddlelite

import paddlelite.lite

第一阶段总结:完成以上部署,系统环境部分就算是完成了,希望我们国家能够放开对github的限制,研发人员人生苦短!同时也希望百度的技术人员能够把官方手册写的更完善,不要学msdn!

树莓派4B安装 百度飞桨paddlelite 做视频检测 (一、环境安装)的更多相关文章

  1. Ubuntu 百度飞桨和 CUDA 的安装

    Ubuntu 百度飞桨 和 CUDA 的安装 1.简介 本文主要是 Ubuntu 百度飞桨 和 CUDA 的安装 系统:Ubuntu 20.04 百度飞桨:2.2 为例 2.百度飞桨安装 访问百度飞桨 ...

  2. 提速1000倍,预测延迟少于1ms,百度飞桨发布基于ERNIE的语义理解开发套件

    提速1000倍,预测延迟少于1ms,百度飞桨发布基于ERNIE的语义理解开发套件 11月5日,在『WAVE Summit+』2019 深度学习开发者秋季峰会上,百度对外发布基于 ERNIE 的语义理解 ...

  3. 百度飞桨数据处理 API 数据格式 HWC CHW 和 PIL 图像处理之间的关系

    使用百度飞桨 API 例如:Resize Normalize,处理数据的时候. Resize:如果输入的图像是 PIL 读取的图像这个数据格式是 HWC ,Resize 就需要 HWC 格式的数据. ...

  4. CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档

    ----------------CentOS6.5下安装JDK1.7+MYSQL5.5+TOMCAT7+nginx1.7.5环境安装文档----------------------- [JDK1.7安 ...

  5. 【百度飞桨】手写数字识别模型部署Paddle Inference

    从完成一个简单的『手写数字识别任务』开始,快速了解飞桨框架 API 的使用方法. 模型开发 『手写数字识别』是深度学习里的 Hello World 任务,用于对 0 ~ 9 的十类数字进行分类,即输入 ...

  6. centos8上安装ffmpeg4.2.2并做视频截图

    一,ffmpeg的作用: FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序. 它提供了录制.转换以及流化音视频的完整解决方案.它包含了非常先进的音频/视频编解码库l ...

  7. drupal7 安装百度编辑器Ueditor及后续使用

    参考文章:drupal7安装百度编辑器ueditor 一.下载 1.需要下载安装的模块: 1.1.wysiwyg 1.2.ueditor 1.3Libraries 下载后安装在\sites\all\m ...

  8. ELK-6.5.3学习笔记–elk基础环境安装

    本文预计阅读时间 13 分钟 文章目录[隐藏] 1,准备工作. 2,安装elasticsearch. 3,安装logstash. 4,安装kibana 以往都是纸上谈兵,毕竟事情也都由部门其他小伙伴承 ...

  9. 001_HyperLedger Fabric环境安装

    HyperLedger Fabric的环境,有解决三大问题 第一,是系统环境,这里我们选择的是centos7 第二,是开发环境,这里我们选择的是Go语言 第三,是运行环境,这里我们选择的是Docker ...

随机推荐

  1. Photoshop如何快速扣取图标

    由于图标往往与背景色区别很大,因此首先使用魔棒工具快速选择出图标 有时候选择出来是图标,有时候是背景色 可以通过选择反向来调节(右键即可) ctrl + J 提取出选择的区域 这时进行等分裁剪即可 点 ...

  2. 开发升讯威在线客服系统启示录:怎样编写堪比 MSDN 的用户手册

    本系列文章详细介绍使用 .net core 和 WPF 开发 升讯威在线客服与营销系统 的过程. 免费在线使用 & 免费私有化部署:https://kf.shengxunwei.com 文章目 ...

  3. CNN-卷积神经网络简单入门(2)

    在上篇中,对卷积神经网络的卷积层以及池化层模块进行了简单的介绍,接下来将对卷积神经网络的整个运作流程进行分析,以便对CNN有个总体上的认知和掌握. 如下图,卷积神经网络要完成对图片数字的识别任务.网络 ...

  4. kicad6 封装库的管理

    kicad6 封装库的管理 kicad6 的封装编辑器有很多莫名其妙的地方, 让人在第一次用的时候摸不着头脑. 在下面稍微总结一下封装库的操作 1. 封装库的创建 选择 文件 -> 新建库 有两 ...

  5. wget: unable to resolve host address ‘dl.grafana.com’的解决方法

    [root@Server-qnrsyp system]# wget --no-check-certificate https://dl.grafana.com/oss/release/grafana_ ...

  6. js window.event

    转载请注明来源:https://www.cnblogs.com/hookjc/ 描述event代表事件的状态,例如触发event对象的元素.鼠标的位置及状态.按下的键等等.event对象只在事件发生的 ...

  7. Lua 语言: 语法

    转载请注明来源:https://www.cnblogs.com/hookjc/ -- 两个横线开始单行的注释 --[[  加上两个[和]表示     多行的注释.--]] -------------- ...

  8. autorelease注意事项

    1.autorelease使用注意 并不是放到自动释放池代码中,都会自动加入到自动释放池 @autoreleasepool { // 因为没有调用 autorelease 方法,所以对象没有加入到自动 ...

  9. k8s之Pod基础概念

    1. 资源限制 Pod是kubernetes中最小的资源管理组件,Pod也是最小化运行容器化应用的资源对象.一个Pod代表着集群中运行的一个进程.kubernetes中其他大多数组件都是围绕着Pod来 ...

  10. Haproxy LVS Nginx的优缺点总结

    Haproxy  LVS  Nginx的优缺点总结 1.haproxy优点 2.Nginx优点 3.Nginx缺点 4.LVS优点 5.LVS缺点 haproxy优点: haproxy也是支持虚拟主机 ...