在树莓派上部署安装OAK

OAK设备可以与微型主机(例如树莓派)进行连接,在树莓派上安装DepthAI, 需要安装相关依赖Dependencies并且可以通过pip安装Depthai Library.

DepthAI Library 在PyPi上对树莓派有预构建的 wheels

使用预配置的树莓派OS 镜像

我们提供预安装了DepthAI及其所有依赖项的镜像文件,预配置的RPi镜像文件可以在这里获取。  

  • *  OAK_CM4_POE - 使用 RPi OS(默认),已预装 DepthAI。 所需硬件:8 GB uSD 卡或更高。 该映像闪存在随 OAK-D CM4 和 OAK-D CM4 PoE 一起发送的 uSD 卡上。 要启用第二张 uSD 卡,请参阅此处的解决方法。 我们建议用户将此图像用于所有 OAK相机设备。
  • *  KS_Rpi_OS_Full - 使用 RPi Full OS,已预装 DepthAI 和 CEP。 所需硬件:32 GB uSD 卡或更大容量,配备 4 GB 内存的 RPi 4。 此图像已在发送给 KickStarter 支持者的 uSD 卡上闪存。 仅在需要 CEP 平台时使用此镜像!

创建这些图像的步骤和更新日志可在此处找到。

刷写uSD card

1. 从 Google Drive 等渠道下载 RPi 映像(链接如下)。 下载Balena Etcher 程序。 您也可以使用 RPi Imager,但我们注意到有时会出现问题。

2. 打开 Balena Etcher。 如果您下载了 .AppImage,可能需要右键单击它并点击运行来启动程序。

3. 点击 "Flash from file",选择之前下载的 .zip 映像。

4. 选择目标 USD 卡。

5. 单击 "Flash!",等待完成。

6. 闪存完成后,安全取出 uSD 卡,将其插入 RPi,并为 RPi 供电。

从RPi给OAK设备供电

在RPi 文档里,有声明提到树莓派2或更新的版本产品里可以通过USB口提供1.2A的供电。通过简单的管道(Pipeline),OAK相机运行的电流小于1A,这意味着可以通过RPi的USB-C线组为OAK设备直接供电,除非:

  1. 项目管道非常复杂:尤其是视频编解码与边缘AI推理运算,会产生性能峰值,从而导致供电不足或断电;
  2. 你有额外的USB设备连接在RPi USB口上并且占用了较多电流。树莓派总计可以提供1.2A的电流供电,如果所有的USB设备所需电流超过1.2A,OAK设备则可能发生供电不足导致的断电情况;
  3. 如果你的设备是Pro系列产品:这意味着你的设备支持IR激光点阵投影与IR照明LED,这会产生额外约0.25A的电流;

我们仍然建议使用桶形插孔(用于旧版的OAK设备)或OAK-Y型转接头(用于新款的OAK设备),因为OAK会产生峰值电流从而使得在某一时间段供电不足而导致断开连接。

SSH into the RPi

如果你正使用预构建的RPi OS镜像,SSH服务器已经被允许,否则你需要在启动卷内创建SSH文件,这样SSH服务器才会在startup时被启动。(教程在这里)

如果你的树莓派由WiFi连接,你可以通过创建(和编辑)启动卷内置wpa_supplicant.conf设置WiFi SSID/密码。(教程在这里)

通过以太网/WiFi 将 RPi 与电脑连接到同一局域网后,就可以用下面的命令 SSH 登录 RPi。 如果 RPi 和电脑不在同一局域网内,则必须指定 RPi 的 IP,而不是 luxonis.local(这是预配置 RPi 映像中 RPi 的默认名称)。

Command line:ssh pi@luxonis.local -X

-X 参数可在Linux上启用X11转发,因此OpenCV的imshow图像将通过SSH转发到你的电脑上。 在 MacOS 上,X11 默认未安装,因此必须下载,更多信息请点击此处。 首次 SSH 登录 RPi 时,系统会就真实性发出警告,就像下面的日志一样。

Command line:The authenticity of host 'raspberrypi.local (192.168.1.222)' can't be established.ECDSA key fingerprint is SHA256:stb5mbRQeX6veOq8Wzg81rz9IHonxJR2++Q8bDYryTo.Are you sure you want to continue connecting (yes/no/[fingerprint])?

输入" yes "以继续

执行此命令后,您需要提供密码。 RPi OS 的默认密码是 raspberry。 您应该修改它。 SSH 成功后,让我们尝试运行一个示例应用程序:

Command line:python depthai-python/examples/MobileNet/rgb_mobilenet.py

已知镜像限制

在 OAK_CM4_PoE 上,自 V8 图像开始,第二张 uSD 卡支持被禁用。 这是因为如果启用了 uSD 卡支持(用于存储目的),WiFi 连接就会被禁用。 要启用第二张 uSD 卡支持(并禁用 WiFi 连接),可以编辑 /boot/config.txt,取消文件末尾的 dtoverlay=sdhost,poll_once=off 行,然后重启系统。

刷写一个镜像到eMMC

OAK-D CM4和OAK-D CM4 PoE板载有Raspberry Pi计算模块4(CM4)。 大多数 OAK-D-CM4 批次的 CM4 都带有 eMMC 内存,而大多数 OAK-D CM4 PoE 板都带有 CM4 Lite,它没有 eMMC 内存,而是从 uSD 卡启动。 如何将映像闪存到uSD卡上很简单,下面我们将介绍将映像闪存到CM4上的eMMC的过程。

这是一台 OAK-D-CM4 ,红色箭头所示的是带有 eMMC 存储器的 CM4。 CM4 Lite 版本不会在该位置安装该芯片。

要将映像闪存到 CM4 eMMC(RPi 官方指南),首先需要启用 USB_BOOT 针脚。 默认情况下,连接器位于标为 DIS(禁用)的 2 个针脚上,因此我们必须将连接器移到 EN 针脚上(启用)。

将针脚连接器切换为 EN 后,我们就可以将电脑上的 micro-USB 线组连接到上面红色矩形所示的 micro-USB 连接器上。 连接微型 USB 后,应通过 5V 桶状插孔供电。

连接微型 USB 和电源后,我们需要启用 RPi USB 启动。 我们按照此处的教程进行操作。 构建程序并运行后,你应该会看到类似的内容:

/Documents/usbboot$ sudo ./rpiboot
RPIBOOT: build-date Apr 21 2022 version 20220315~121405 445356e1
Waiting for BCM2835/6/7/2711...
Loading embedded: bootcode4.bin
Sending bootcode.bin
Successful read 4 bytes
Waiting for BCM2835/6/7/2711...
Loading embedded: bootcode4.bin
Second stage boot server
Loading embedded: start4.elf
File read: start4.elf
Second stage boot server done

启动完成后,你应该能在Raspberry Pi Imager 或 Balena Etcher(我们使用的是 Raspberry Pi Imager 或 Balena Etcher,截图如下)中看到 eMMC 内存,这样你就能轻松地将所需镜像闪入 eMMC。 闪存完成后,确保禁用 USB 启动(再次切换连接器)并重启设备。 它将从新闪存的映像启动!

树莓派Zero

Raspberry Pi Zero 是一款性价比极高的单板计算机 (SBC),价格也非常实惠,它有 512MB RAM、1GHz 单核 CPU 和可选的板载蓝牙和 WiFi 连接,它的功耗约为 0.5 瓦。

RPi Zero 足以满足元数据流(NN 结果)、低分辨率编码视频或轻型计算的需求。 如果您打算流式传输高分辨率视频、执行重型计算(如使用 OpenCV)或后期处理,RPi Zero 将不是主机的最佳选择。

将OAK 设备连接到RPi Zero

RPI Zero 有一个微型 USB 接口,用于连接外设。 您可以使用标准的 USB-C(转 USB-A)线组,但需要 OTG 连接器/电缆将 OAK 摄像头连接到 RPI Zero。

上述所有方案均可使用,这并不是OAK自身的产品,但其实在很多电商平台或3C门店均能获得此类产品。

根据我们的测试,RPi Zero 能够在不使用外部电源(电源插孔或 Y 型适配器)的情况下为 OAK-D 提供足够的电力。

树莓派RPi的故障诊断

RPi Locking Up/OAK在树莓派上运行中断

树莓派的USB口最高支持1.2A的电流供电,而OAK相机会占用到1A(最高功耗,通常在500mA左右)。

因此,如果出现锁定现象,可能是由于 USB 设备从 Pi 上消耗的总功率超过了 1.2A 的限制。 使用供电集线器可以避免这种情况,或者减少通过 USB 从 Pi 为其他设备供电。

这也可能表现为 OAK 在 Pi 上出现随机的崩溃、断开连接。 如果OAK被配置为同时做很多事情,这种情况管道就会变得复杂、特别频繁。 随着我们让DepthAI同时做越来越多的事情--从而提高OAK的最大功率--这种情况越来越有可能发生。 来自 OAK 的峰值功率(电流)尖峰似乎可能超过 Pi 的承受能力,导致 OAK 断电并返回错误。 因此,如果您遇到树莓派上的 DepthAI 稳定性问题,请尝试通过电源和/或供电 USB 集线器为 OAK 摄像头供电,看看错误是否会消失。

如果您以 SSH 方式登录 RPi(不带 -x 参数)并尝试显示帧(例如 cv2.imshow()),很可能会出现类似下面的错误:

  1.  - (-2:Unspecified error) Can't initialize GTK backend in function 'cvInitSystem'
  2. qt.qpa.xcb: could not connect to display: Could not load the Qt platform plugin "xcb" –
  1. This application failed to start because no Qt platform plugin could be initialized.

 解决办法是在 SSH 连接到 RPi 时使用 X11 转发,请参阅 SSH 进入 RPi。

OAK设备在RPi 5上运行

在RPi5上安装DepthAI时,安装可能会被中止并出现以下log、报错:

"Reading package lists... Done

Reading package lists... Done

Building dependency tree... Done

Reading state information... Done

Package libtbb2 is not available, but is referred to by another package.

This may mean that the package is missing, has been obsoleted, or

is only available from another source

However the following packages replace it:

libtbbmalloc2:armhf libtbbmalloc2

E: Package 'libtbb2' has no installation candidate

E: Unable to locate package libdc1394-22-dev"

这时我们需要

libtbb2 替换为 libtbbmalloc2(或者libtbbmalloc2:armhf    如果第一个不起作用)

将 libdc1394-22-dev 替换为 libdc1394-dev

问题应该就会被解决

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/55897.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

期权懂|面对期权下跌该如何操作呢?

本期让我懂 你就懂的期权懂带大家来了解,面对期权下跌该如何操作呢?有兴趣的朋友可以看一下。期权小懂每日分享期权知识,帮助期权新手及时有效地掌握即市趋势与新资讯! 面对期权下跌该如何操作呢? 首先我们需要保持冷静…

Zotero插件指南:20个工具让你的学术生活更简单

以下插件排序按照星标量进行排序,常用的插件大概是前20的样子,可以根据自己的需求进行插件的安装。 顺带提一句,插件不是越多越好,装多了可能会出现软件卡顿的情况。 1、Scholaread for Zotero 插件下载:插件下载 …

Linux文件权限与用户管理详解:权限、所属用户组和所有者的变更

💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storm…

HTB:Markup[WriteUP]

目录 连接至HTB服务器并启动靶机 1.What version of Apache is running on the targets port 80? 2.What username:password combination logs in successfully? 使用Yakit并使用TOP1000字典对密码进行爆破 3.What is the word at the top of the page that accepts use…

以光塑形:光固化3D打印机原理图文解析

公众号端: 光固化打印机介绍https://mp.weixin.qq.com/s?__bizMzkwMjc0MTE3Mw&mid2247484073&idx1&sn0d0fd026b373b06cd7c340ec8f56a006&chksmc0a1af73f7d62665a632baebbde4e5e00ffb9c6bd31bf547b4a86855d5524535619a6175a428#rd 光固化打印机…

前端面试:项目细节重难点问题分享(17)

更多详情:爱米的前端小笔记(csdn~xitujuejin~zhiHu~Baidu~小红shu)同步更新,等你来看!都是利用下班时间整理的,整理不易,大家多多👍💛➕🤔哦!你们…

SpringSession;基于Redis的SpringSession实现;实现session共享的三种方式

一,SpringSession简介 是SpringCloud下管理session的框架,在微服务架构中,由于应用了分布式的思想,session无法做到内存中互通,需要一个框架来实现各个微服务中session数据共享,SpringSession解决了这个问题…

C++语言学习(3): type 的概念

type 的概念 C中的变量拥有类型, 这是显然的。 实际上,每个 object, 每个 reference, 每个 function, 每个 expression , 都有对应的 type (类型): Each object, refer…

随机掉落的项目足迹:使用箭头函数时踩到的坑

这篇博客没有啥硬核知识,讲的是我遇到问题然后排错的过程,大家可以当故事看看 事情的起因是请求响应的对象打印出来竟然是undefined,但是network里却可以正常看到响应体 于是我把这个问题扔给了我队友,他改了我两处代码&#xff…

通信工程学习:什么是OSPF开放式最短路径优先

OSPF:开放式最短路径优先 OSPF(Open Shortest Path First,开放式最短路径优先)是一种内部网关协议(IGP),被广泛应用于计算机网络中,特别是在构建大型和复杂的网络时。以下是对OSPF的…

Linux-磁盘优化的几个思路

优化前先看看性能指标 I/O 基准测试 fio(Flexible I/O Tester)正是最常用的文件系统和磁盘 I/O 性能基准测试工具。这类工具非常用,了解即可 应用程序优化 应用程序处于整个 I/O 栈的最上端,它可以通过系统调用,来调…

Go基础学习11-测试工具gomock和monkey的使用

文章目录 基础回顾MockMock是什么安装gomockMock使用1. 创建user.go源文件2. 使用mockgen生成对应的Mock文件3. 使用mockgen命令生成后在对应包mock下可以查看生成的mock文件4. 编写测试代码5. 运行代码并查看输出 GomonkeyGomonkey优势安装使用对函数进行monkey对结构体中方法…

UEFI学习笔记(十):系统表与ACPI表的遍历

一、概述 在 UEFI 系统表中,有几个关键的表用于提供系统信息、服务和硬件抽象。这些表可以通过 EFI_SYSTEM_TABLE 访问,常见的 UEFI 系统表如下: 1、EFI_SYSTEM_TABLE (系统表) EFI_SYSTEM_TABLE 是一个指针,包含多个服务和系统…

docker-compose无法切换用户

问题描述 jupyter:image: flink:1.19-pyprivileged: trueuser: rootports:- "9999:8888"volumes:- /data/docker_data/jupyter:/workcommand: sh -c "cd / && jupyter notebook --ip 0.0.0.0 --port 8888 --allow-root --NotebookApp.passwordsha1:658…

『网络游戏』动态界面制作创建角色UI【02】

将上一章的登录界面隐藏 创建空物体重命名为CreateWnd 自适应铺满父物体 创建image重命名为bg并铺满 将以下资源图片放进Art文件夹 设置为精灵模式 填充背景 创建介绍Image面板与角色按钮 制作将3D模型动态防止UI界面上 首先创建RawImage 创建RenderTextures文件夹 创建Render…

数字王国里的虚拟人――技术、商业与法律解读

💂 个人网站:【 摸鱼游戏】【神级代码资源网站】【海拥导航】🤟 找工作,来万码优才:👉 #小程序://万码优才/HDQZJEQiCJb9cFi💅 想寻找共同学习交流,摸鱼划水的小伙伴,请点击【全栈技…

DS1302时钟模块(STM32)

目录 一、介绍 二、模块原理 1.原理图 2.引脚描述 3.工作原理:读/写时序 4.寄存器地址/定义 三、程序设计 main.c文件 ds1302.h文件 ds1302.c文件 四、实验效果 五、资料获取 项目分享 一、介绍 DS1302是一款由达拉斯半导体(Dallas Semic…

第三方软件测评机构简析:软件安全测试报告的内容和作用

随着数字化时代的到来,软件的安全性显得尤为重要。尤其在信息安全事件频发的今天,软件安全测试报告成为企业和开发者关注的焦点。软件安全测试报告是评估软件系统安全性的一种综合性文档,通常在软件开发生命周期中进行安全性测试后生成。 软…

windows C++-创建图像处理的异步消息(二)

创建图像处理网络 此部分介绍如何创建对给定目录中的每个 JPEG (.jpg) 图像执行图像处理的异步消息块网络。 网络执行以下图像处理操作: 对于 Tom 创作的任何图像,转换为灰度。 对于任何以红色作为主色的图像,移除绿色和蓝色分量&#xff0…

嵌入式项目:STM32平衡车详解 (基础知识篇) (基于STM32F103C8T6)

前言: 本文是基于B站草履虫编写的平衡车相关内容,包括模块和基础知识,结合代码进行讲解,将知识进行汇总 (由于本篇内容较长,请结合目录使用) 注:基于开源精神,本文仅供学习参考 目…