手动安装 DepthAI
Ubuntu/Debian
Command Line
1sudo wget -qO- https://docs.luxonis.com/install_dependencies.sh | bash- 执行 apt update 和 apt upgrade
- 安装 python3、pip3、cmake、git、udev(如果尚未安装)
- 安装其他依赖项,如 libusb、libudev 等
如果从 PyPi 安装后 OpenCV 因非法指令而失败,请添加以下内容:
Command Line
1echo "export OPENBLAS_CORETYPE=ARMV8" >> ~/.bashrc
2source ~/.bashrcMacOS
Command Line
1curl -fL https://docs.luxonis.com/install_dependencies.sh | bash- 安装 brew 和 git(如果尚未安装)
Windows 10/11
通过 Chocolatey 安装
- 右键单击“开始”
- 选择“Windows PowerShell (管理员)”并运行以下命令:
Powershell
1Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))- 关闭 PowerShell,然后通过重复前两个步骤重新打开另一个 PowerShell(管理员)。
- 安装 Python 和 PyCharm
Powershell
1choco install cmake git python pycharm-community -yWindows 7
Docker
rgb_preview.py 示例:Command Line
1docker pull luxonis/depthai-library
2docker run --rm \
3 --privileged \
4 -v /dev/bus/usb:/dev/bus/usb \
5 --device-cgroup-rule='c 189:* rmw' \
6 -e DISPLAY=$DISPLAY \
7 -v /tmp/.X11-unix:/tmp/.X11-unix \
8 luxonis/depthai-library:latest \
9 python3 /depthai-python/examples/ColorCamera/rgb_preview.pyxhost local:root。如果您在 Linux 主机上使用 OAK POE 设备,您应该将
--network=host 参数添加到您的 docker 命令中,以便 docker 内的 depthai 能够与 OAK POE 通信。WSL 2
Python
1import time
2import os
3while True:
4 output = os.popen('usbipd wsl list').read() # 列出所有 USB 设备
5 rows = output.split('\n')
6 for row in rows:
7 if ('Movidius MyriadX' in row or 'Luxonis Device' in row) and 'Not attached' in row: # 检查未附加的 OAK 相机
8 busid = row.split(' ')[0]
9 out = os.popen(f'usbipd wsl attach --busid {busid}').read() # 附加 OAK 相机
10 print(out)
11 print(f'Usbipd attached Myriad X on bus {busid}') # 日志
12 time.sleep(.5)lsusb 命令,应该能够看到 Movidius MyriadX。如果您想使用 usbipd-win >= 4.0,则 usbipd wsl 命令不再可用,因此您需要使用另一个脚本,该脚本最初由 kazuya 编写在此处。Python
1import time
2import subprocess
3
4while True:
5 output = subprocess.run('usbipd list', capture_output=True, encoding="UTF-8")
6 rows = output.stdout.split('\n')
7 for row in rows:
8 if ('Movidius MyriadX' in row or 'Luxonis Device' in row) and 'Not shared' in row:
9 busid = row.split(' ')[0]
10 out = subprocess.run(f'usbipd bind -b {busid}', capture_output=True, encoding="UTF-8")
11 print(out.stdout)
12 print(f'Usbipd bind Myriad X')
13 if ('Movidius MyriadX' in row or 'Luxonis Device' in row) and 'Shared' in row:
14 busid = row.split(' ')[0]
15 out = subprocess.run(f'usbipd attach -w -b {busid}', capture_output=True, encoding="UTF-8")
16 print(out.stdout)
17 print(f'Usbipd attached Myriad X on bus {busid}')
18 time.sleep(0.5)不显示任何帧的示例(例如 IMU 示例)应该可以工作。我们没有花足够的时间在 WSL 2 中获取 OpenCV 显示帧,但您可以自己尝试一下,一些想法在这里。
OpenSUSE
内核虚拟机 (KVM)
Text
1SUBSYSTEM=="usb", ACTION=="bind", ENV{ID_VENDOR_ID}=="03e7", MODE="0666", RUN+="/usr/local/bin/movidius_usb_hotplug.sh depthai-vm"
2SUBSYSTEM=="usb", ACTION=="remove", ENV{PRODUCT}=="3e7/2485/1", ENV{DEVTYPE}=="usb_device", MODE="0666", RUN+="/usr/local/bin/movidius_usb_hotplug.sh depthai-vm"
3SUBSYSTEM=="usb", ACTION=="remove", ENV{PRODUCT}=="3e7/f63b/100", ENV{DEVTYPE}=="usb_device", MODE="0666", RUN+="/usr/local/bin/movidius_usb_hotplug.sh depthai-vm"Text
1#!/bin/bash
2# 发生错误时中止脚本执行
3set -e
4if [ "${ACTION}" == 'bind' ]; then
5 COMMAND='attach-device'
6elif [ "${ACTION}" == 'remove' ]; then
7 COMMAND='detach-device'
8 if [ "${PRODUCT}" == '3e7/2485/1' ]; then
9 ID_VENDOR_ID=03e7
10 ID_MODEL_ID=2485
11 fi
12 if [ "${PRODUCT}" == '3e7/f63b/100' ]; then
13 ID_VENDOR_ID=03e7
14 ID_MODEL_ID=f63b
15 fi
16else
17 echo "无效的 udev ACTION: ${ACTION}" >&2
18 exit 1
19fi
20echo "正在对 ${DOMAIN} 执行 virsh ${COMMAND},设备为 ${ID_VENDOR}。" >&2
21virsh "${COMMAND}" "${DOMAIN}" /dev/stdin <<END
22<hostdev mode='subsystem' type='usb'>
23 <source>
24 <vendor id='0x${ID_VENDOR_ID}'/>
25 <product id='0x${ID_MODEL_ID}'/>
26 </source>
27</hostdev>
28END
29exit 0ID_VENDOR_ID 或 ID_MODEL_ID),因此您需要使用 PRODUCT 环境变量来识别哪个设备已断开。运行 DepthAI API 应用的虚拟机应定义一条识别 OAK-D 摄像头的 udev 规则。该 udev 规则在此处描述。VMware
虚拟机设置 -> USB 控制器 -> USB 兼容性,将其更改为 USB 3.1(或根据可用选项,旧版 VMware 选择 USB 3.0)。根据设备状态,可能会显示两个设备,这两个设备都需要路由到虚拟机。它们可以在 播放器 -> 可移动设备 中看到:- Intel Movidius MyriadX
- Intel VSC 环回设备 或 Intel Luxonis 设备
Command Line
1echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="03e7", MODE="0666"' | sudo tee /etc/udev/rules.d/80-movidius.rules
2sudo udevadm control --reload-rules && sudo udevadm triggerVirtualBox
- 当插入时显示。我们使用此端点将固件加载到设备上,这是一种 USB 启动技术。此设备为 USB2。
- 用于运行实际代码。在 USB 启 动后显示,为 USB3。

python3 depthai_demo.py)。可能需要尝试几次才能让该环回设备显示并添加,因为您需要在深度设备在管道构建后尝试连接时执行此操作(此时它已通过 USB2 启动了内部固件)。如果只想启用一次,您可以在以下位置看到环回设备(在管道启动后):在您告诉深度设备启动管道后立即找到环回设备,并选择它。 

安装 depthai 依赖项后,您可以参考 depthai-core 进行 C++ 开发,或通过 PyPi 下载 depthai Python 库:我们有一套示例,可以帮助您验证设置是否正确。首先,克隆 depthai-python 仓库并进入该目录:接下来,安装此仓库的依赖项。 请注意,我们建议在虚拟环境中安装这些依赖项,以免它们干扰系统上的其他 Python 工具/环境。现在,从 如果一切顺利,会显示一个小窗口视频。下方是一个示例:运行完此示例后,你可以运行其他示例来了解 DepthAI 的各种可能性。你也可以继续:你也可以继续往下学习如何将自己的神经网络转换为在 DepthAI 上运行。我们还提供了下 面的在线模型训练内容,演示如何训练和转换适用于 DepthAI 的模型:
Command Line
1python3 -m pip install depthai测试安装
Command Line
1git clone https://github.com/luxonis/depthai-python.git
2cd depthai-python- 对于开发机器(如 Mac/Windows/Ubuntu 等),我们推荐使用 PyCharm IDE,因为它能自动创建/管理虚拟环境,并带来许多其他好处。或者,也可以直接使用
conda、pipenv或virtualenv(以及你偏好的 IDE)。 - 对于资源受限的系统(如 Raspberry Pi 或其他小型 Linux 系统),我们推荐使用
conda、pipenv或virtualenv。如果要使用virtualenv设置虚拟环境,请运行virtualenv venv && source venv/bin/activate。
Command Line
1cd examples
2python3 install_requirements.pyexamples 目录中运行 rgb_preview.py 脚本,以确保一切正常:Command Line
1python3 ColorCamera/rgb_preview.py运行其他示例
