本项目的所有代码均上传至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步骤大致如下:

  1. 启动树莓派首先要换源,否则下载可能会失败数次且相当龟速,详见tuna源:树莓派换源(另,我是nano党)
  2. 安装依赖项(由于我也不知道要用到些啥依赖,就瞎装了几个)sudo apt-get install libhdf5-dev libhdf5-serial-dev libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5 libatlas-base-dev libjasper-dev
  3. 安装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 https://vaala.cat/wp-content/uploads/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检查是否可以成功引用。

以上步骤顺利执行完,就可以开始我们的开发了,详见下一篇文章。


2 条评论

Basecat · 2020年1月6日 下午10:52

背时vaala,还嘲讽我用tuna,结果自己用上了

发表评论

电子邮件地址不会被公开。 必填项已用*标注