在树莓派上部署安装OAK

news2024/10/10 16:43:40

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.coloradmin.cn/o/2202521.html

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

相关文章

MIBench:首个模型反演攻击与防御基准测试工具。不仅集成了16种最先进的攻击和防御方法,还提供了9种常用评估协议,为标准化和公平的评估分析提供了便利。

2024-10-08,由哈尔滨工业大学(深圳)和清华大学深圳国际研究生院的研究人员联合创建的MIBench,作为首个模型反演攻击和防御的实用基准测试,不仅集成了16种最先进的攻击和防御方法,还提供了9种常用评估协议&a…

SRAM,DRAM,DTCM RAM,ITCM RAM

一:SRAM,DRAM,DTCM RAM,ITCM RAM 1.SRAM:(Static Random Access Memory)一种静态随机存取存储器计算机系统和嵌入式系统中作为高速数据存储容器,SRAM 使用触发器电路来存储每个位的数据&#x…

IDEA使用Maven创建父与子多模块项目

在 IntelliJ IDEA 中使用 Maven 创建父与子多模块项目是一个常见的开发实践,有助于更好地组织和管理代码。在多模块项目中,可以将公共的代码、资源或配置抽离到独立的模块中,然后在其他模块中直接引用。这样可以避免代码重复,提高…

【01】手把手教你0基础部署SpringCloud微服务商城教学-Mybatis篇(上)

序言: 微服务是一种软件架构风格,它是以专注于单一职责的很多小型项目为基础,组合出复杂的大型应用。 想学习SpringCloud搭建项目,首先我们需要学习的就是Mybatis和Docker。 大家在日常开发中应该能发现,单表的CRUD…

IEC104规约的秘密之九----链路层和应用层

104规约从TCP往上,分成链路层和应用层。 如图,APCI就是链路层,ASDU的就是应用层 我们看到报文都是68打头的,因为应用层报文也要交给链路层发送,链路层增加了开头的6个字节再进行发送。 完全用于链路层的报文每帧都只有…

基于卷积神经网络的脊柱骨折识别系统,resnet50,mobilenet模型【pytorch框架+python】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示: 基于卷积神经网络的脊柱骨折识别系统,resnet50,mobilenet【pytorch框架,python,tkinter】_哔哩哔哩_bilibili (一)简介 基于卷…

C++ | Leetcode C++题解之第467题环绕字符串中唯一的子字符串

题目&#xff1a; 题解&#xff1a; class Solution { public:int findSubstringInWraproundString(string p) {vector<int> dp(26);int k 0;for (int i 0; i < p.length(); i) {if (i && (p[i] - p[i - 1] 26) % 26 1) { // 字符之差为 1 或 -25k;} els…

京东统一存储实践

​作者&#xff1a;王腾蛟&#xff0c;2021年8月加入京东&#xff0c;目前主要负责京东离线存储(HDFS)相关工作。 导读 随着大数据时代的到来&#xff0c;海量数据的存储与处理成为了众多企业面临的重要挑战。HDFS 作为一个高可靠性、高扩展性的分布式文件系统&#xff0c;在…

1招!统一管理多个微信,工作效率真的太高了!

你是否经常在使用多个微信号时感到疲惫不堪&#xff1f;每当你需要切换账号时&#xff0c;是不是得不停地登陆、登出&#xff0c;甚至要带着几台手机外出&#xff1f;这种繁琐的操作不仅浪费时间&#xff0c;还严重影响了工作效率。 今天&#xff0c;我将为你分享一款强大的多…

【优选算法】(第三十二篇)

目录 ⼆进制求和&#xff08;easy&#xff09; 题目解析 讲解算法原理 编写代码 字符串相乘&#xff08;medium&#xff09; 题目解析 讲解算法原理 编写代码 ⼆进制求和&#xff08;easy&#xff09; 题目解析 1.题目链接&#xff1a;. - 力扣&#xff08;LeetCode&a…

C语言-常见文件操作函数详解(fgetc,fputc,fgets,fputs,fscanf,fprintf,fread,fwrite)

&#x1f30f;个人博客&#xff1a;尹蓝锐的博客 希望文章能够给到初学的你一些启发&#xff5e; 如果觉得文章对你有帮助的话&#xff0c;点赞 关注 收藏支持一下笔者吧&#xff5e; 顺序读写数据常用函数 函数名调用形式功能返回值fgetcfgetc(fp)从指针变量fp指向的文件中读…

诺贝尔物理学奖向机器学习与神经网络致敬,科学边界的跨越与未来的启示

2024年诺贝尔物理学奖首次颁发给机器学习与神经网络领域的研究者&#xff0c;这一历史性事件打破了人们对诺贝尔物理学奖的传统认知&#xff0c;激起了全球学术界、科技界的广泛讨论。这一变化不仅标志着科学边界的延伸&#xff0c;也体现出人工智能技术对现实世界的深远影响。…

剪切走的照片:高效恢复与预防策略

一、剪切走的照片现象描述 在日常的数字生活中&#xff0c;照片作为记录生活点滴、工作成果的重要载体&#xff0c;其重要性不言而喻。然而&#xff0c;有时我们可能会遇到一种令人头疼的情况&#xff1a;原本打算通过剪切操作将照片移动到另一个位置&#xff0c;却意外地发现…

Java 8 的内存结构

Java8内存结构图 虚拟机内存与本地内存的区别 Java虚拟机在执行的时候会把管理的内存分配成不同的区域&#xff0c;这些区域被称为虚拟机内存&#xff0c;同时&#xff0c;对于虚拟机没有直接管理的物理内存&#xff0c;也有一定的利用&#xff0c;这些被利用却不在虚拟机内存…

Qt5.15.2静态编译 MinGW with static OpenSSL

如果想用VS2017编译,可参考:Qt5.15.2静态编译 VS2017 with static OpenSSL 一.环境 系统:Windows 10 专业版 64位 编译器:MinGW 8.1.0 第三方工具:perl,ruby和python PS:经验证,用MinGW 12.1.0来编译Qt5.15.2会报错 我用Phthon 2.7.18虽然可以编过,但是强烈建议Pyth…

0.0.0.0 127.0.0.1等几个特殊的IP地址

0.0.0.0 127.0.0.1 localhost 255.255.255.0 255.255.255.255 这都是些什么地址&#xff0c;代表了什么意思。 网络为系统服务器&#xff0c;系统需要网络。 这些地址在系统和网络都存在&#xff0c;作用和意思甚至基本相同。 一、0.0.0.0 在路由中&#xff1a;0.0.0.0表…

【面试宝典】深入Python高级:直戳痛点的题目演示(上)

目录 &#x1f354; 你知道深浅拷⻉的区别吗&#xff1f; &#x1f354; 字典反转&#xff0c;列表反转的实现&#xff1f; &#x1f354; 装饰器是什么&#xff0c;什么场景⽤到装饰器&#xff0c;举个例⼦&#xff1f; &#x1f354; 装饰器的实质是什么…

定时关机(python)

内容 为了更简单地实现定时关机&#xff0c;不必去记繁琐的命令行&#xff0c;于是搞了一个gui出来 基于python和Windows命令行实现&#xff0c;核心为&#xff1a; shutdown -s -t 60 代码 # -*- coding: utf-8 -*- # Environment PyCharm # File_name autoShutdown…

【教学类-36-10】20241010职业抽卡(midjounery-niji)(涂色、裁剪、游戏)

背景需求 昨天在户外玩了角色游戏&#xff0c;受道具所限&#xff08;只有烧烤做饭锅子材料&#xff09;&#xff0c;所有的孩子都只玩了烧烤店、娃娃家做饭的内容&#xff0c;扮演的都是爸妈、厨师等工作 今天从以前的纸类学具中找出一套数量相对较多的“职业涂色卡” 学具代…

2024中国新媒体技术展 | 蓝海创意云vLive虚拟直播即将亮相!

​​ 2024中国新媒体大会由中央宣传部指导&#xff0c;中华全国新闻工作者协会、湖南省人民政府联合主办&#xff0c;旨在推动媒体深度融合发展&#xff0c;促进新闻事业高质量发展&#xff0c;为中国式现代化贡献力量。中国新媒体技术展&#xff08;CMTE&#xff09;是中国新…