前面笔者爬了许多坑终于给树莓派4b安装完了opencv4.1.1(链接https://blog.csdn.net/Hankerchen/article/details/103510024),
本次主要想实现目标检测,并将其识别出来,接下来笔者将讲述如何部署tensorflow1.14.0+ssd_mobilenet_v1_coco
笔记本(笔者没买专用的显示屏)、网线(SSH连接)
树莓派4b(4G内存版本)、32G的tf卡(安装系统)、树莓派的电源适配器(5V、3A)、树莓派摄像头(笔者的为500万像素)
因为已经安装好了opencv4.1.1,因此直接安装TensorFlow。
首先,安装matplotlib库
sudo pip install matplotlib
接着,安装一下编译环境
sudo apt-get install python3-pip python3-dev
sudo apt install libatlas-base-dev
最后,直接安装TensorFlow
sudo pip3 install TensorFlow
这样安装的TensorFlow1.14.0就是当前树莓派能用的最新版本
晚上下载速度有点慢,感觉早上的下载速度能快一点,如果中途掉线就得重复一次命令。
在安装TensorFlow之后,还会自动安装几个相关的依赖包
这里我参考了一篇博客:https://blog.csdn.net/weixin_36259888/article/details/83786113
然后我直接进行git.
git clone https://github.com/tensorflow/models.git
当然,该博客也给了github的API链接https://github.com/tensorflow/models/tree/master/research/object_detection/models
但是我觉得还是还是直接git比较好,以免出现什么幺蛾子。
模型链接https://github.com/tensorflow/models/blob/master/research/object_detection/g3doc/detection_model_zoo.md
首先进入目录
cd models/research/object_detection/models
然后将ssd_mobilenet_v1_coco模型下载下来
wget download.tensorflow.org/models/object_detection/ssd_mobilenet_v1_coco_2018_01_28.tar.gz
接着进行解压
tar -xzvf ssd_mobilenet_v1_coco_2018_01_28.tar.gz
这里参考另一篇文章:https://www.jianshu.com/p/ea5abe01aaf1
(1)下载
protobuf下载地址:https://github.com/google/protobuf/releases
我直接下载的最新版本:protobuf-all-3.11.2.tar.gz
cd
wget https://github.com/protocolbuffers/protobuf/releases/download/v3.11.2/protobuf-all-3.11.2.tar.gz
tar -xf protobuf-all-3.11.2.tar.gz ->解压
cd protobuf-3.11.2 ->进入该文件夹
./configure ->执行
make ->时间有点长
make check ->这一步是检查编译是否正确,耗时非常长
如果出现如下结果,可以看到所有的测试用例都PASS了,说明编译正确:
sudo make install
sudo ldconfig ->更新库搜索路径,否则可能找不到库文件
(3)配置
配置的目的是将proto格式的数据转换为python格式,从而可以在python脚本中调用,进入目录models-master/research,运行:
cd
cd models/research
protoc object_detection/protos/*.proto --python_out=.
测试代码文件链接:https://pan.baidu.com/s/1jGnOF1s1UAvMTV4w6JW_YQ
提取码:9p2m
将测试代码放入models/research/object_detection/models目录中
打开VNC Viewer,进入终端,输入下列命令
cd models/research/object_detection/models
sudo chmod 666 /dev/video0 ->要保证摄像头插紧了,不然会报错
python3 test.py
等一会,接着会出现检测对话框,效果如图
总结:继安装opencv4.1.1之后,本文接着讲述了怎么安装了基于python3.7的TensorFlow1.14.0,同时将API和ssd_mobilenet_v1_coco模型下载下来,然后讲述了怎么配置protobuf,最后成功实现目标检测识别。当然,还得感谢大佬们的帮助,遇到问题多思考,多查阅资料,最后肯定能成功的。