前言
首先声明本人是一个刚接触树莓派的小白,最近在做树莓派结合机器视觉相关的内容,尝试了YOLO v5、YOLOv5 Lite后发现在树莓派上运行有些吃力(也有可能是没调试好),所以在网上搜索相关内容,发现了一个很不错的网站,上面有很多32位/64位树莓派的深度学习案例,并都有详细的教程,我贴在这里供大家学习:Deep learning examples on Raspberry 32/64 OS - Q-engineering
计划这几天多试几个案例,找到最适合项目的深度学习模型。
说明
- 本篇博客主要是记录复现案例:安装TensorFlow Lite 2的过程和遇到的问题,以及最后运行的结果。
- 本文参考案例如下:Install TensorFlow 2 Lite on Raspberry 64 OS - Q-engineering
实验环境
- 开发板选用树莓派4B 8GB,搭载附赠的摄像头,用的是64GB的SD卡:
- 系统选用官方最新的64位系统带桌面款,已经进行了基本的环境配置:
- 根据参考博客的官方说法,他们开源了一个已经预搭载了几乎所有主流深度学习框架和案例的SD镜像,可以直接下载,即烧即用,非常方便,Github地址如下:(当然我没有用这个镜像,这个比较适合有一定基础,需要进行快速开发的人员)GitHub - Qengineering/RPi-Bullseye-DNN-image: Raspberry Pi 4 Bullseye 64-bit OS with deep learning examples
版本检查
首先我们打开命令行,使用以下命令检查树莓派系统的版本:
uname -a
得到结果:
注意黄框内的aarch64说明我们用的是arm64架构的操作系统。
然后我们检查C++编译器的版本,使用以下命令检查gcc版本:
gcc -v
得到结果:
注意,如图所示,gcc一定要是aarch64-linux-gnu版本,如果你的树莓派系统是64位的,但是gcc版本与图中不一致,那么最好重新安装最新版本的系统。
准备工作
为了安装TensorFlow Lite,确保你的树莓派至少有1.5G的可用内存。
安装TensorFlow Lite
值得注意的是,TensorFlow Lite用Python跑,但是为了构建一个能够高速运行的深度学习应用,还是要用C++。这就是我们为什么要构建TensorFlow Lite的C++API库。以安装TensorFlow Lite 2.6.0为例:
首先安装需要的工具:(询问需要输入Y)
sudo apt-get install cmake curl
然后下载TensorFlow Lite:
wget -O tensorflow.zip https://github.com/tensorflow/tensorflow/archive/v2.6.0.zip
我们新建一个文件夹叫tensorflow,用来存放解压文件:
mkdir tensorflow
解压,然后把解压的文件移入tensorflow文件夹:
unzip tensorflow.zip
mv tensorflow-2.6.0 tensorflow
cd tensorflow/tensorflow-2.6.0/
然后,获取依赖项:
./tensorflow/lite/tools/make/download_dependencies.sh
如果遇到这个错误:
挂一下代理就可以解决,具体方法请自行搜索。
说明:以下步骤均在有代理的情况下进行。
安装成功:
运行C++安装程序:
./tensorflow/lite/tools/make/build_aarch64_lib.sh
这个安装过程可能很漫长(我用了15分钟),耐心等待安装完毕。
安装TensorFlow flatbuffers
这个版本的TensorFlow用的是旧版的flatbuffers,为了避免报错,我们需要安装一个较新的版本
首先,删除旧的flatbuffers:
cd tensorflow/lite/tools/make/downloads
rm -rf flatbuffers
然后下载flatbuffers V2.0.0:
git clone -b v2.0.0 --depth=1 --recursive https://github.com/google/flatbuffers.git
安装:
cd flatbuffers
mkdir build
cd build
cmake ..
make -j4
sudo make install
sudo ldconfig
这里安装大概要5~7分钟,好在没出什么错:
清理文件:
cd ~
rm tensorflow.zip
上述步骤都正确执行后,在如图所示的目录下应该由如图的两个库:
至此,TensorFlow Lite 2安装完毕~
TensorFlow Lite 模型
你不能在TensorFlow Lite上运行普通的TensorFlow模型(很好理解),它们(普通的TensorFlow模型)使用前必须先经过转化,这个网页说明了如何进行转化:https://www.tensorflow.org/lite/convert?hl=zh-cn
谷歌已经有了一些可用的转化过的模型,在这个网页中:https://www.tensorflow.org/lite/guide/hosted_models?hl=zh-cn
结语
至此,我们成功在64位的树莓派上安装了TensorFlow Lite v2.6.0,接下来就是在此基础上运行一些模型与案例。