树莓派4B安装|树莓派4B安装 百度飞桨paddlelite 做视频检测 (一、环境安装)

前言:
当前准备重新在树莓派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
【树莓派4B安装|树莓派4B安装 百度飞桨paddlelite 做视频检测 (一、环境安装)】升级安装
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/ |-- cxxC++ 预测库和头文件 ||-- includeC++ 头文件 |||-- 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 |`-- libC++预测库 ||-- libpaddle_api_light_bundled.aC++静态库 |`-- libpaddle_light_api_shared.soC++动态库 | |-- demo |`-- pythonpython预测库demo | |-- pythonPython预测库(需要打开with_python选项) ||-- install ||`-- dist ||`-- paddlelite-*.whlpython whl包 ||-- lib |`-- lite.so


先进入paddlelite-*.whl文件目录里:
cdPaddle-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!


    推荐阅读