本页目录

  • 使用预配置的树莓派操作系统镜像
  • 刷写 uSD 卡
  • 从树莓派为 OAK 供电
  • 通过 SSH 连接树莓派
  • 已知镜像限制
  • 将镜像刷写到eMMC
  • Raspberry Pi Zero
  • 将 OAK 相机连接到 RPI Zero
  • RPi 故障排除
  • RPi 死机 / OAK 在 RPi 上崩溃
  • 无 X11 转发的 SSH 连接

在树莓派上部署

我们的设备也可以连接到树莓派(RPi)这类小型单板计算机。要在树莓派上安装 DepthAI,您需要先安装 依赖项,然后使用 pip 安装 DepthAI 库
DepthAI 库在 PyPi 上为树莓派提供了预编译的 wheel 文件

使用预配置的树莓派操作系统镜像

我们提供了已预装 DepthAI 及其所有依赖项的树莓派操作系统镜像。可在此获取预配置的树莓派镜像
  • OAK_CM4_POE - 使用默认的树莓派操作系统,已预装 DepthAI。所需硬件:8 GB 或更大的 uSD 卡。该镜像被刷写到与 OAK-D CM4OAK-D CM4 PoE 一起发货的 uSD 卡上。如需启用第二张 uSD 卡,请参见下方的解决方法 此处。我们建议用户对所有 OAK 相机使用此镜像。
  • KS_Rpi_OS_Full - 使用树莓派完整版操作系统,已预装 DepthAI 和 CEP。所需硬件:32 GB 或更大的 uSD 卡,4 GB RAM 的树莓派 4。该镜像被刷写到用于 KickStarter 支持者的 uSD 卡上。仅当您需要 CEP 平台时才使用此镜像!
创建这些镜像的步骤和更新日志可参考 此处

刷写 uSD 卡

  1. 从 Google Drive(上方链接)下载树莓派镜像。下载 Balena Etcher 程序。您也可以使用树莓派镜像烧录器,但我们注意到有时会出现问题。
  2. 打开 Balena Etcher。如果您下载了 .AppImage 文件,可能需要右键单击并点击运行来启动程序。
  3. 点击从文件刷写,然后选择您之前下载的 .zip 镜像文件。
  4. 选择目标 uSD 卡。
  5. 点击**刷写!**并等待完成。
  6. 刷写完成后,安全移除 uSD 卡,将其插入树莓派,然后为树莓派供电。

从树莓派为 OAK 供电

根据 树莓派文档,树莓派 2 或更新型号可通过 USB 端口提供高达 1.2A 的电流。在简单流水线中,OAK 相机功耗低于 1A,这意味着您可以通过 USB-C 线缆直接从树莓派为 OAK 相机供电,但以下情况除外:
  • 您的流水线较复杂——尤其是视频编码和 AI 推理会产生电流尖峰,可能导致欠压断电。
  • 连接了额外的 USB 设备到树莓派 USB 端口,这些设备消耗过多电流。树莓派总共只能提供 1.2A,因此如果所有 USB 设备总电流超过 1.2A,就会发生欠压断电。
  • 您拥有 Pro 版本的 OAK 相机,其配有 IR 激光点阵投影仪和 IR 照明 LED,额外消耗高达 0.25A 的电流。
我们仍然建议为您的 OAK 相机外部供电,无论是通过DC 接口(在较旧设备上),还是使用 Y 型适配器。原因是 OAK 存在电流尖峰(尤其是在使用视频编码器和运行 AI 推理时),可能导致欠压断电。

通过 SSH 连接树莓派

如果您使用预配置的树莓派操作系统镜像,SSH 服务器已启用;否则,您需要在引导卷中创建文件 ssh,以便 SSH 服务器在启动时启用(教程在此)。
如果您的树莓派具备WiFi 连接功能,您可以通过在引导卷中创建(并编辑)wpa_supplicant.conf 来设置 WiFi 名称/密码(教程在此)。通过以太网/WiFi将RPi与电脑连接到同一局域网后,您可以使用以下命令通过SSH连接到RPi。如果RPi和电脑不在同一局域网内,则需要指定RPi的IP地址而非luxonis.local——这是预配置RPi镜像中RPi的默认名称。
Command Line
1ssh pi@luxonis.local -X
-X参数在Linux上启用X11转发,因此OpenCV的imshow图像会通过SSH转发到您的电脑。在MacOS上,默认未安装X11,因此您需要下载它,更多信息请参考此处首次SSH连接到RPi时,会警告您关于主机真实性,如下所示:
Command Line
1The authenticity of host 'raspberrypi.local (192.168.1.222)' can't be established.
2ECDSA key fingerprint is SHA256:stb5mbRQeX6veOq8Wzg81rz9IHonxJR2++Q8bDYryTo.
3Are you sure you want to continue connecting (yes/no/[fingerprint])?
输入yes继续。此命令后,您需要提供密码。默认的RPi OS密码是raspberry。您应该修改它。SSH成功后,让我们尝试运行一个示例应用:
Command Line
1python depthai-python/examples/MobileNet/rgb_mobilenet.py

已知镜像限制

  1. OAK_CM4_PoE 上,自 V8 镜像起,第二个uSD卡支持被禁用。这是因为如果启用uSD卡支持(用于存储目的),WiFi连接将被禁用。要启用第二个uSD卡支持(并禁用WiFi连接),您可以编辑/boot/config.txt并取消文件末尾行dtoverlay=sdhost,poll_once=off的注释,然后重启系统。

将镜像刷写到eMMC

OAK-D CM4OAK-D CM4 PoE 板载了树莓派Compute Module 4(CM4)。大多数OAK-D-CM4批次配备了带eMMC存储的CM4,而大多数OAK-D CM4 PoE板则配备了不带eMMC的CM4 Lite,后者从uSD卡启动。将镜像刷写到uSD卡很简单直接,这里我们将介绍将镜像刷写到CM4上eMMC的过程。这是一个OAK-D-CM4,它带有红色箭头指示的eMMC存储的CM4。CM4 Lite版本在该位置不会有此芯片。
要将镜像刷写到CM4的eMMC(官方RPi指南),首先需要通过排针启用USB_BOOT。默认情况下,连接器位于标记为DIS(禁用)的两个排针上,因此我们必须将连接器移到EN(启用)排针上。
将排针连接器切换到EN后,我们可以将计算机上的micro-USB线连接到上图中红色矩形指示的micro-USB连接器。连接micro-USB后,您应通过5V桶形插头供电。同时连接micro-USB和电源后,我们需要启用RPi USB启动。我们按照此教程进行操作。构建程序并运行后,您会看到类似以下内容:
Command Line
1/Documents/usbboot$ sudo ./rpiboot
2RPIBOOT: build-date Apr 21 2022 version 20220315~121405 445356e1
3Waiting for BCM2835/6/7/2711...
4Loading embedded: bootcode4.bin
5Sending bootcode.bin
6Successful read 4 bytes
7Waiting for BCM2835/6/7/2711...
8Loading embedded: bootcode4.bin
9Second stage boot server
10Loading embedded: start4.elf
11File read: start4.elf
12Second stage boot server done
启动完成后,您会在Raspberry Pi ImagerBalena Etcher(我们使用的工具,见下方截图)中看到eMMC存储,因此您可以轻松地将所需镜像刷写到eMMC。刷写完成后,确保禁用USB启动(再次切换连接器)并重启设备。设备应该会从新刷写的镜像启动!

Raspberry Pi Zero

Raspberry Pi Zero 是一款性价比极高的单板计算机(SBC)。大约只需5美元即可获得。它拥有512MB RAM,1GHz单核CPU,并可选择板载蓝牙和WiFi连接(RPI Zero W,约10美元)。功耗约为0.5W。RPi Zero 足以用于传输元数据(NN结果)、低分辨率编码视频或轻量计算。如果您打算传输高分辨率视频、进行繁重计算(例如使用OpenCV)或后期处理,RPi Zero 并不是主机计算机的最佳选择。

将 OAK 相机连接到 RPI Zero

RPI Zero 有一个用于外设的 micro USB 接口。你可以使用标准 USB-C(转 USB-A)数据线,但需要 OTG 适配器/线缆 才能将 OAK 相机连接到 RPI Zero。
以上所有方案均有效。我们与这些公司没有关联或附属关系,以下是左侧连接器(Aliexpress)和右侧连接器(Aliexpress)的购买链接。
根据我们的测试,RPi Zero 能够为 OAK-D 提供足够的电力,无需外部电源(电源插孔或 Y 型适配器)。

RPi 故障排除

RPi 死机 / OAK 在 RPi 上崩溃

Raspberry Pi 所有 USB 端口的总电流上限为 1.2A,而 OAK 相机最高可消耗 1A(最大功率时,通常接近 500mA)。因此,如果你遇到死机问题,可能是因为从 Pi 取电的 USB 设备总功率超过了 1.2A 限制。使用带供电的 USB 集线器可以避免此问题,或者减少通过 USB 从 Pi 取电的其他设备数量。这个问题也可能表现为 OAK 在 Pi 上随机崩溃。当 OAK 配置为同时执行多项任务时,这种情况尤其频繁。随着我们让 DepthAI 能够同时执行越来越多的任务,OAK 可拉取的最大功率也随之增加,这种情况越来越容易发生。OAK 的峰值电流尖峰可能超过 Pi 的承受能力,导致 OAK 电压过低并返回错误。因此,如果你在 Raspberry Pi 上遇到 DepthAI 稳定性问题,请尝试通过电源适配器或带供电的 USB 集线器为 OAK 相机供电,看看错误是否消失。

无 X11 转发的 SSH 连接

如果你没有使用 -x 参数 SSH 到 RPi 并尝试显示图像(例如 cv2.imshow()),很可能会遇到如下错误:
  • (-2:Unspecified error) Can't initialize GTK backend in function 'cvInitSystem'
  • qt.qpa.xcb: could not connect to display. qt.qpa.plugin: Could not load the Qt platform plugin "xcb".
  • This application failed to start because no Qt platform plugin could be initialized.
解决方法是在 SSH 连接到 RPi 时使用 X11 转发,参见 SSH 进入 RPi