Robomaster校赛智能小车OpenCV视觉与神经网络环境搭建
本项目的所有代码均上传至GitHub,项目地址:https://github.com/VaalaCat/AI_raspberry_car
一、简介
由于作死选择了摄像头来做这个项目,那显而易见的需要用到opencv来处理这个图像。(其实之前是用picamera库,不过现在opencv也不用编译了,还是选opencv吧)
首先要介绍一下我的设备:
- 树莓派4(俺的pi3看样子是中道崩殂了)
- picamera模块
小小的吐槽一下pi4的发热量,简直比810火龙还强,没个强点的散热根本跑不满。
二、环境搭建
1、opencv环境
既然说是要用到opencv,那就不得不提到opencv的安装。早在一年前我就妄图在我的pi3上安装python3的opencv,结果看到网上一大堆的python2直接pip安装的方法,又想到python3编译的龟速,还容易出错,心都凉了半截。不过今年再次翻资料的时候,找到了pip3安装opencv的方法,并且在我的pi3,pi4,pi zero w上,buster系统,无一失败。
安装opencv步骤大致如下:
- 启动树莓派首先要换源,否则下载可能会失败数次且相当龟速,详见tuna源:树莓派换源
- 安装依赖项(由于我也不知道要用到些啥依赖,就瞎装了几个)
sudo apt-get install libhdf5-dev libhdf5-serial-dev libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5 libatlas-base-dev libjasper-dev
- 安装opencv(这里建议大家安装opencv3而不是默认的opencv4,每次我安装opencv4完成后都会遇到不可预料的错误)
sudo pip3 install --no-cache-dir opencv-contrib-python==3.4.3.18
(由于网络原因,下载可能较慢,这里我将whl包上传到了我的服务器以供快速下载安装:opencv3
安装完成后,输入python3
然后import cv2
如果没有出错则说明安装成功。
安装中的问题详见:Opencv的安装
2、tf神经网络环境
在安装完成后,当然要准备识别路线了,然而,路线识别简直是太困难了,所以对于岔路口分类,我选择了用tensorflow搭建一个简单的分类器来解决这个问题,毕竟,能让电脑累的就不能让自己累着了是吧。
这里因为tf2新增了keras,开发和调试效率较高,所以选择逻辑简洁的tf2作为开发环境。
安装tensorflow 2步骤大致如下(我当然是选择上GitHub白嫖,交叉编译简直难顶。仅pi3,4,直接上命令吧):
sudo pip3 install --upgrade setuptools
sudo apt-get install -y libhdf5-dev libc-ares-dev libeigen3-dev
sudo pip3 install keras_applications==1.0.8 --no-deps
sudo pip3 install keras_preprocessing==1.1.0 --no-deps
sudo pip3 install h5py==2.9.0
sudo apt-get install -y openmpi-bin libopenmpi-dev
sudo apt-get install -y libatlas-base-dev
pip3 install -U --user six wheel mock
wget images/upload/2020-01/Tensorflow-bin-master/tensorflow-2.1.0-cp37-cp37m-linux_armv7l.whl
sudo pip3 uninstall tensorflow
sudo -H pip3 install tensorflow-2.1.0-cp37-cp37m-linux_armv7l.whl
tf安装的其他问题详见:Tensorflow-Bin预编译包,TF官网帮助
安装完成后进入python3使用import检查是否可以成功引用。
以上步骤顺利执行完,就可以开始我们的开发了,详见下一篇文章咕咕咕咕咕咕咕。