Raspberry Pi的新款AI相机套件减轻了CPU处理神经网络模型的压力;相反,索尼IMX500负责所有的繁重工作。是的,这个70美元的树莓派AI相机套装刚刚发布,我们提前获得了用于评测的设备,但我们想向你们展示如何开始使用这个套件,并且这将是即将推出的一系列教程中的第一篇,涵盖了入门指南以及如何生成自己的神经网络模型以供套件使用的教程。
在这部分,我们将开始设置环境,学习如何从终端和通过Python使用软件。我们将使用Raspberry Pi 5进行演示,但该过程也可以在Raspberry Pi 4或Zero 2 W上重复进行。请注意,其他型号的Pi可能需要做一些调整才能正常工作。
对于这个项目你需要
- 树莓派 5 或 4
- 树莓派AI相机
安装Raspberry Pi AI相机
我们的第一步是安装硬件,幸运的是这真的很容易做到。
- 小心地解锁相机的塑料夹扣,并将较宽的一端的相机电缆插入,使金属“齿”从相机正面可见。
- 将电缆固定到位。
- 关闭电源,卸下Pi4上CAM1(摄像头)连接器上的塑料卡扣。是的,应该使用CAM1接口。我们试过CAM0,即使更新了固件,相机也无法被Pi 5检测到。
- 将相机电缆的另一端插入Pi上的USB/以太网端口一侧带有金属针的连接器中。
- 检查电缆是否水平,并小心地固定到位。
- 启动树莓派到树莓派桌面。
- 打开终端并首先更新软件仓库列表,然后执行完全升级。
sudo apt 更新 && sudo apt 完全升级
- 安装用于Raspberry Pi AI相机的Sony IMX500软件包。这将安装索尼IMX500所需的固件文件。还将把神经网络模型安装到/usr/share/imx500-models/目录,并更新rpicam-apps以与IMX500配合使用。
sudo apt install imx500-all
- 重启 Raspberry Pi
运行示例应用程序
树莓派操作系统具有一系列可以用于快速相机项目的相机应用程序,或者在这种情况下,用于测试相机是否正常工作的应用。第一个是 raspi-hello,这是相机测试中的“Hello World”。我们将使用一个永远不会结束的定时器(-t 0s)和 mobilenet 物体检测模型来运行它。
- 打开终端并输入该命令,然后按下回车键。
rpicam-hello -t 0s --post-process-file /usr/share/rpi-camera-assets/imx500_mobilenet_ssd.json
- 将物体对准相机进行测试。在取景器中你会看到相机识别物体(和人物)。
- 如果焦点不正确,要么将物体移至焦点处,要么调整焦点使用随附的调整工具将镜头逆时针旋转以进行近焦调节,顺时针旋转以进行远焦调节。最小焦距为20厘米。
- 测试完成后,关闭窗口以结束。
如果我们想要使用姿态估计,那么我们需要修改命令以使用posenet模型。
- 打开终端并输入以下命令,然后按回车键。
rpicam-hello -t 0s --post-process-file /usr/share/rpi-camera-assets/imx500_posenet.json
- 站在相机前,注意,在你的手臂、腿和躯干上会出现一个线框图。移动一下!必要时改变焦点。
- 关闭窗口以结束。
要将会话记录为十秒的视频,请使用raspicam-vid输出一个MP4文件。这将保存视频,包括边界框和识别出的对象。
- 打开终端窗口,并使用此命令将视频记录到名为output.mp4的文件中。该命令也可以通过参数设置分辨率和帧率。--宽度 1920 --高度 1080 --帧率 30我们也可以换用posenet模型并记录该模型的输出。
rpicam-vid -t 10s -o 输出.mp4 --post-process-file /usr/share/rpi-camera-assets/imx500_mobilenet_ssd.json
- 按Enter键运行代码片刻之后流式处理将开始。向摄像头展示物体,并观察它们以不同确信程度被识别出来的情况。当预览窗口关闭时,录制将会结束。
- 通过文件管理器导航到文件并使用VLC打开。这应该是默认设置,如果不是,你可以右键点击并选择VLC。
使用Picamera2与树莓派AI相机
Picamera2 是一个可以用来控制各种 Raspberry Pi 相机的 Python 模块,现在它支持新的 AI 相机。但在我们使用它之前,需要安装一些软件依赖项。
- 打开终端并运行此命令。
sudo apt update && sudo apt install python3-opencv python3-munkres
- 将Picamera2的GitHub仓库下载到您的Raspberry Pi的home目录中。你可以克隆仓库或者下载档案文件并附加到您的主页目录。
#克隆
git clone https://github.com/raspberrypi/picamera2.git
- 导航到picamera2/examples/imx500。
- 使用Python打开imx500_object_detection_demo.py文件
运行 python imx500_object_detection_demo.py
- 在预览窗口中,观看AI相机尝试识别呈现在相机前的对象。
- 关闭窗口以退出。
我们还可以使用姿态估计演示来检查Python能否检测人体姿势。
- 导航到picamera2/examples/imx500。
- 使用Python打开imx500_pose_estimation_higherhrnet_demo.py。
运行 python imx500_pose_estimation_higherhrnet_demo.py
- 摆好姿势拍照。
- 关闭窗口以退出。
创建我们自己的神经网络模型呢?
The 文档提及了创建自己的神经网络模型,但索尼的Brain Builder for AITRIOS尚未准备好,并且我们无法将一个在Tensorflow中创建的模型转换为微软Lobe,用于imx500转换器工具套件。我们将密切关注此项目,并且一旦该工具准备就绪,将额外提供一个教程,介绍如何训练自己的神经网络模型以供Raspberry Pi AI相机使用。