树莓派上实现paddlelite-demo项目的部署

参考:https://github.com/PaddlePaddle/Paddle-Lite/wiki

Paddle-Lite-Demo

Paddle-Lite提供IOS、Android和ARMLinux的示例,具体如下:
ARMLinux示例:

基于MobileNetV1的图像分类;
基于MobileNetV1-SSD的目标检测;

关于Paddle-Lite和示例,请参考本文剩余章节和如下文档链接:

文档官网
文档官网中的Android示例
文档官网中的IOS示例
Paddle-Lite Repo
ARMLinux

RK3399(Ubuntu 18.04) 或 树莓派3B(Raspbian Buster with desktop),暂时验证了这两个软、硬件环境,其它平台用户可自行尝试;
支持树莓派3B摄像头采集图像,具体参考树莓派3B摄像头安装与测试
gcc g++ opencv cmake的安装(以下所有命令均在设备上操作)

$ sudo apt-get update
$ sudo apt-get install gcc g++ make wget unzip libopencv-dev pkg-config
$ wget https://www.cmake.org/files/v3.10/cmake-3.10.3.tar.gz
$ tar -zxvf cmake-3.10.3.tar.gz
$ cd cmake-3.10.3
$ ./configure
$ make
$ sudo make install

安装
$ git clone https://github.com/PaddlePaddle/Paddle-Lite-Demo

iOS

在PaddleLite-ios-demo目录下执行download_dependencies.sh脚本,该脚本会离线下载并解压ios demo所需要的依赖,
包括paddle-lite 预测库,demo所需要的模型,opencv framework

$ chmod +x download_dependencies.sh
$ ./download_dependencies.sh

打开xcode,点击“Open another project…”打开Paddle-Lite-Demo/PaddleLite-ios-demo/ios-xxx_demo/目录下的xcode工程;
在选中左上角“project navigator”,选择“classification_demo”,修改“General”信息;
插入ios真机(已验证:iphone8, iphonexr),选择Device为插入的真机;
点击左上角“build and run”按钮;

Android

打开Android Studio,在"Welcome to Android Studio"窗口点击"Open an existing Android Studio project",在弹出的路径选择窗口中进入"image_classification_demo"目录,然后点击右下角的"Open"按钮即可导入工程
通过USB连接Android手机或开发板;
载入工程后,点击菜单栏的Run->Run 'App’按钮,在弹出的"Select Deployment Target"窗口选择已经连接的Android设备,然后点击"OK"按钮;
由于Demo所用到的库和模型均通过app/build.gradle脚本在线下载,因此,第一次编译耗时较长(取决于网络下载速度),请耐心等待;
对于图像分类Demo,如果库和模型下载失败,建议手动下载并拷贝到相应目录下:1) paddle_lite_libs.tar.gz:解压后将java/PaddlePredictor.jar拷贝至Paddle-Lite-Demo/PaddleLite-android-demo/image_classification_demo/app/libs,将java/libs/armeabi-v7a/libpaddle_lite_jni.so拷贝至Paddle-Lite-Demo/PaddleLite-android-demo/image_classification_demo/app/src/main/jniLibs/armeabi-v7a/libpaddle_lite_jni.so,将java/libs/armeabi-v8a/libpaddle_lite_jni.so拷贝至Paddle-Lite-Demo/PaddleLite-android-demo/image_classification_demo/app/src/main/jniLibs/arm64-v8a/libpaddle_lite_jni.so 2)mobilenet_v1_for_cpu.tar.gz:解压至Paddle-Lite-Demo/PaddleLite-android-demo/image_classification_demo/app/src/main/assets/models/mobilenet_v1_for_cpu 3)mobilenet_v1_for_npu.tar.gz:解压至Paddle-Lite-Demo/PaddleLite-android-demo/image_classification_demo/app/src/main/assets/models/mobilenet_v1_for_npu
在图像分类Demo中,默认会载入一张猫的图像,并会在图像下方给出CPU的预测结果,如果你使用的是麒麟810或990芯片的华为手机(如Nova5系列),可以在右上角的上下文菜单选择"Settings…"打开设置窗口切换NPU模型进行预测;
在图像分类Demo中,你还可以通过上方的"Gallery"和"Take Photo"按钮从相册或相机中加载测试图像;

ARMLinux

模型和预测库下载

$ cd Paddle-Lite-Demo/PaddleLite-armlinux-demo
$ ./download_models_and_libs.sh # 下载模型和预测库

图像分类Demo的编译与运行(以下所有命令均在设备上操作)

$ cd Paddle-Lite-Demo/PaddleLite-armlinux-demo/image_classification_demo
$ ./run.sh armv8 # RK3399
$ ./run.sh armv7hf # 树莓派3B

终端打印预测结果和性能数据,同时在build目录中生成result.jpg。

目标检测Demo的编译与运行(以下所有命令均在设备上操作)

$ cd Paddle-Lite-Demo/PaddleLite-armlinux-demo/object_detection_demo
$ ./run.sh armv8 # RK3399
$ ./run.sh armv7hf # 树莓派3B

终端打印预测结果和性能数据,同时在build目录中生成result.jpg。
**

效果展示

**ARMLinux

基于MobileNetV1的图像分类

基于MobileNetV1-SSD的目标检测

你可能感兴趣的:(树莓派4b,深度学习,机器学习,神经网络)