最近树莓派4b发布了8gb的版本,这么大的内存用在嵌入式设备上,简直是为了深度计算而生,果断入手了一块,遂开启了一轮踩坑之旅。为了避免重复网上已有的树莓派教程,后续系列文章,我尽量以2020年为基准,先打造一个最新最稳定的软硬件开发环境,再在其上构建AI应用。比如选择构建OpenCV 4.4,pyTorch 1.6和1.7,Tensorflow 2.1,然后在上面跑yolo v5应用,用intel NCS2加速等等…
这篇我们先来选用一些必要的硬件设备,其中标明必备的,则是运行系统所要求的,型号规格尽量保持一致,可选的部分可根据实际AI应用选择即可。
如果是开发折腾用推荐8gb版本,无论是tensorflow还是pytorch,甚至想在树莓派上开个chrome查下文档,都占相当大的内存。不过由实际使用来看,4gb的版本足已满足当前需求,性价比很高,预算有限的优先选择。而2gb的版本不推荐,在编译大型应用或跑推理模型的时候容易OOM,需要设置很大交换内存,会显著的拖慢编译速度,极度缩减tf卡的寿命。
烧写镜像或是读写配置文件都需要用到,SD卡套或usb读卡器都行,笔记本的话用卡套方便些。读卡器可以考虑usb 3.0,不过大多数情况2.0的480Mbps匹配MircoSDXC的速度也够用了。
跑CV类的AI应用必备,推荐采用CSI的视频接口,树莓派的USB口太紧凑了,USB的摄像头不一定有位置可以插。必要的时候还需要扩展一个USB HUB解决多外设的问题。如果要跑工业CV应用,可以选用 IMX477R 高清摄像头配相应的长焦和微距镜头。
官方电源和国产配套电源(带开关方便重启)都能满足需要,普通手机充电器一般才2A,有太多外设的话,电源的压力就很大。连接太多外设的跑应用时候,会看到屏幕右上方的闪电亏电标志。
如果想直接把树莓派当PC用,配一个Nano的无线键鼠,有物理输入设备,会方便调试代码。没有的话,也可以用VNC来远程桌面访问,所以根据需要可选。
AI应用往往是会进行大量浮点数计算,一般会采用GPU进行运算,通过GPU强大的浮点数运算能力,可以有效提升神经网络运算的效能,但若是要将神经网络运算放到如树莓派的单板计算机进行运算,却往往受限于单板计算机的GPU运算效能,使得神经网络运算的速度不足。
虽然树莓派4b的运行速度是3b的3倍以上,但跑AI推理还是无法达到实时(实测跑yolo v4s,0.3fps),但是透过单板计算机进行AIoT的应用促进了边缘运算技术的发展,若单板计算机要在神经网络运算上获得较佳的运算效能,可以考虑透过USB即插即用的外接神经运算装置解决神经网络运算的效能需求。
Google Coral Edge TPU USB加速棒 或者 intel Neural Compute Stick 2 都是可以使用的,就性价比来说,NCS2会更高些。
树莓派的USB口都集中在一起,直插设备的话(比如NCS2)会把其他的口都挡住,所以多外设的话,最好再配一些usb延长线或是usb hub扩展接口数量。
如果想外出采集数据或是实验AI应用的话,还需要配备一个足够大的充电宝。前文提到普通充电宝接口电流最大2A,如要更大电流,就需要采用两节18650那种提供稳定的电源支持。
在户外的车载项目或AIoT应用中,4G模块可以提供无线的远程连接。可以提供云端推理或是传感器数据云端存储,实现4G高速上网,无线通信,打电话,发短信,全球定位等功能。
# | 硬件清单 | 规格 |
---|---|---|
1 | 树莓派4b | 4gb,8gb |
2 | microSD卡 | 64gb |
3 | 读卡器 | 卡套 或 usb |
4 | 摄像头 | CSI 接口 |
5 | 散热外壳 | 乌金铠甲 |
6 | 充电器 | 5v 3A |
7 | 无线键盘鼠标 | (可选) |
8 | HDMI 转接线 | (可选) |
9 | intel神经棒NCS2 | (可选) |
10 | Usb延长线或usb hub | (可选) |
11 | 树莓派UPS或充电宝 | (可选) |
12 | 树莓派 4G模块 | (可选) |
上述器件入手后,一顿操作将他们组合到一起就搞定硬件平台了。
整体上来看,相对于 NVIDIA的 Jetson 和Google的 Coral 而言,树莓派是一个比较低廉的边缘计算设备,对于大规模对成本敏感的传感器网络来说,是一个很好的可选方案。
PID控制算法是结合比例、积分和微分三种环节于一体的控制算法,它是连续系统中技术最为成熟、应用最为广泛的一种控制算法。
本文整理了一篇博客文章的内容,读者可根据这些图理解看似高深的机器学习算法。
在本文中,我将在 Wio 终端上制作一个带有内置麦克风的声控机器人车,以通过 TinyML 识别行驶、停止和背景噪音。
本文介绍了如何在树莓派上,使用 OpenCV 和 Python 完成人脸检测项目。该项目不仅描述了识别人脸所需要的具体步骤,同时还提供了很多扩展知识。此外,该项目并不需要读者了解详细的人脸识别理论知识,因此初学者也能轻松跟着步骤实现。
这篇介绍树莓派上VPN以外的外网访问方式。
这一篇我们介绍一下在树莓派上部署 OpenVINO 神经棒,进一步提升AI的推理速度。
Maixduino开发板是SiPEED公司MAIX产品线的一员,基于嘉楠堪智科技的边缘智能计算芯片K210(RISC-V架构 64位双核)设计的一款AIOT开发板。