手动安装 DepthAI
手动安装 DepthAI
Ubuntu/Debian
Command Line
1sudo wget -qO- https://docs.luxonis.com/install_dependencies.sh | bash- 执行 apt update 和 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 设备,则应在 docker 命令中添加 --network=host 参数,以便 Docker 中的 depthai 能够与 OAK POE 通信。
WSL 2
Python
1import time
2import os
3while True:
4 output = os.popen('usbipd wsl list').read() # List all USB devices
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: # Check for OAK cameras that aren't attached
8 busid = row.split(' ')[0]
9 out = os.popen(f'usbipd wsl attach --busid {busid}').read() # Attach an OAK camera
10 print(out)
11 print(f'Usbipd attached Myriad X on bus {busid}') # Log
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 帧,但您可以自己尝试一下,这里有一些想法:here。
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"virsh 命令。例如,脚本可以执行以下操作:Text
1#!/bin/bash
2# Abort script execution on errors
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 "Invalid udev ACTION: ${ACTION}" >&2
18 exit 1
19fi
20echo "Running virsh ${COMMAND} ${DOMAIN} for ${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 规则在此处描述:https://docs.luxonis.com/hardware/platform/deploy/usb-deployment-guide/#USB%20deployment%20guide-Initial%20Connection-Debugging-Linux%20udev%20rules。VMware
Virtual Machine Settings -> USB Controller -> USB compatibility 并更改为 USB 3.1(或旧版 VMware 版本为 USB 3.0,如果可用)。根据设备的状态,可能会显示两个设备,并且都需要路由到虚拟机。这些设备可以在 Player -> Removable Devices 中找到:- Intel Movidius MyriadX
- Intel VSC Loopback Device 或 Intel Luxonis Device
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-boot 技术。此设备是 USB2。
- 用于运行实际代码。这在 USB 启动后显示,是 USB3。

python3 depthai_demo.py)。可能需要几次尝试才能显示并添加此环回设备,因为您需要在 depthai 尝试连接后(此时它已通过 USB2 启动其内部固件)进行此操作。要仅启用一次,您可以在启动管道后看到环回设备:在告诉 depthai 启动管道后立即找到环回设备,然后选择它。 

安装 depthai 依赖项后,您可以参考 depthai-core 进行 C++ 开发,或者通过 PyPi 下载 depthai Python 库:我们提供了一组示例,examples,可以帮助您验证设置是否正确。首先,克隆 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,因为它会自动为您创建/管理虚拟环境,并提供许多其他优势。或者,您也可以直接使 用(或与您偏好的 IDE 一起使用)
conda、pipenv或virtualenv。 - 对于资源受限的系统(如 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运行其他示例
