前言
最近树莓派4b发布了8gb的版本,这么大的内存用在嵌入式设备上,简直是为了深度计算而生,果断入手了一块,遂开启了一轮踩坑之旅。为了避免重复网上已有的树莓派教程,后续系列文章,我尽量以2020年为基准,先打造一个最新最稳定的软硬件开发环境,再在其上构建AI应用。比如选择构建OpenCV 4.4,pyTorch 1.6和1.7,Tensorflow 2.1,然后在上面跑yolo v5应用,用intel NCS2加速等等…
这篇我们先来选用一些必要的硬件设备,其中标明必备的,则是运行系统所要求的,型号规格尽量保持一致,可选的部分可根据实际AI应用选择即可。
树莓派4b(必备,4gb或8gb)
如果是开发折腾用推荐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 高清摄像头配相应的长焦和微距镜头。
充电器5v3A(必备)
官方电源和国产配套电源(带开关方便重启)都能满足需要,普通手机充电器一般才2A,有太多外设的话,电源的压力就很大。连接太多外设的跑应用时候,会看到屏幕右上方的闪电亏电标志。
无线键盘鼠标(可选)
如果想直接把树莓派当PC用,配一个Nano的无线键鼠,有物理输入设备,会方便调试代码。没有的话,也可以用VNC来远程桌面访问,所以根据需要可选。
intel神经棒NCS2(可选)
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延长线或usb hub(可选)
树莓派的USB口都集中在一起,直插设备的话(比如NCS2)会把其他的口都挡住,所以多外设的话,最好再配一些usb延长线或是usb hub扩展接口数量。
树莓派UPS或充电宝(可选)
如果想外出采集数据或是实验AI应用的话,还需要配备一个足够大的充电宝。前文提到普通充电宝接口电流最大2A,如要更大电流,就需要采用两节18650那种提供稳定的电源支持。
树莓派 4G模块(可选)
在户外的车载项目或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 而言,树莓派是一个比较低廉的边缘计算设备,对于大规模对成本敏感的传感器网络来说,是一个很好的可选方案。
下一篇预告
我们将搭建树莓派的软件环境,
介绍一些常用的工具软件,
方便后续的开发工作,
敬请期待…
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。