本页目录

  • 什么是 OAK 应用?
  • 创建您的 OAK 应用
  • 使用 oakctl 部署
  • 操作系统兼容性表
  • 构建和运行应用
  • 应用管理
  • 设备管理
  • oakapp.toml 配置

OAK 应用概述

OAK 应用 让您能够开发、容器化、部署和管理容器化视觉应用,覆盖从单台设备到设备集群的 Luxonis OAK 设备。它们运行在 OAK4 设备上预装的 oak-agent 服务中(属于 Luxonis OS 的一部分),因此您可以立即开始部署。

什么是 OAK 应用?

OAK 应用是构建在 DepthAI 框架之上的容器化计算机视觉应用,直接运行在 OAK 设备上。它们提供:
  • 一致的开发环境 - 构建一次,随处部署
  • 简化的部署流程 - 打包应用所需的一切
  • 设备集群管理 - 同时部署到多台设备
  • 与 Luxonis Hub 集成 - 远程监控和管理设备
需要特别说明的是,应用一旦构建完成(即生成了 .oakapp 文件),您就可以将其迁移并安装到其他设备上,无需重新构建或依赖网络连接。

默认应用演示

查看预构建的默认应用,预览一个完整的 OAK 应用可能会是什么样子。
在 GitHub 上查看
默认应用演示

创建您的 OAK 应用

Project Structure

一个基本的 OAK 应用项目结构:
Text
1my-oak-app/
2├── .oakappignore      # (可选)在设备上构建应用时要忽略的文件
3├── main.py            # 您的主要应用代码
4├── requirements.txt   # Python 依赖项
5└── oakapp.toml        # 应用配置
oakapp.toml 文件是必需的,包含应用元数据和构建指令。

App Development

创建 OAK 应用始于 DepthAI API,这是驱动所有 OAK 设备能力的核心框架:
Command Line
1# 安装 DepthAI SDK
2pip install depthai --force-reinstall
3
4# 使用 DepthAI 的 Python API 创建您的应用
5# - 访问摄像头流
6# - 运行神经网络推理
7# - 处理深度数据
8# - 利用边缘处理能力

使用 oakctl 部署

oakctl 是一个命令行工具,允许您与 OAK4 摄像头进行交互。它可用于在运行 oak-agent 服务的设备上创建、部署和管理应用。

Linux/MacOS

在 64 位系统上,运行:
Command Line
1bash -c "$(curl -fsSL https://oakctl-releases.luxonis.com/oakctl-installer.sh)"

Windows

下载并使用 Windows 安装程序 进行安装。

操作系统兼容性表

RVC4 OS 版本 oakctl 版本 命令
OS 1.14.1+ 0.11.0+ oakctl self-update(当前稳定版)
OS 1.110.9.0 oakctl self-update -v 0.9.0
OS 1.80.4.2oakctl self-update -v 0.4.2
OS 1.60.2.11oakctl self-update -v 0.2.11

构建和运行应用

使用 oakctl 构建和运行 OAK 应用非常简单:
Command Line
1# 直接从源代码运行应用
2oakctl app run ./my-oak-app
3
4# 将应用构建为可分发的包
5oakctl app build ./my-oak-app
6
7# 安装已构建的应用
8oakctl app install my-oak-app.oakapp

应用管理

您可以使用以下命令管理应用:
Command Line
1# 列出已安装的应用
2oakctl app list
3
4# 启动应用
5oakctl app start <container-id>
6
7# 查看应用日志
8oakctl app logs <container-id>
9
10# 停止应用
11oakctl app stop <container-id>
12
13# 启用自动启动
14oakctl app enable <container-id>

设备管理

Command Line
1# 列出连接的设备
2oakctl list
3
4# 连接到特定设备
5oakctl connect <device-ip>

oakapp.toml 配置

oakapp.toml 文件定义了您应用的构建和运行时配置:
Toml
1# (必需) 应用标识符
2identifier = "com.luxonis.python_demo"
3# (必需) 应用入口点
4entrypoint = ["bash", "-c", "python3 /app/main.py"]
5
6# (可选) 准备容器命令
7# 这里是您可以在运行时安装所有依赖的地方
8prepare_container = [
9    { type = "COPY", source = "requirements.txt", target = "requirements.txt" },
10    { type = "RUN", command = "apt-get update" },
11    { type = "RUN", command = "apt-get install -y python3-pip" },
12    { type = "RUN", command = "pip3 install -r /app/requirements.txt --break-system-packages" },
13]
14
15# (可选) 准备构建依赖
16# 这里是您可以在构建时安装所有依赖的地方
17prepare_build_container = [
18    # 示例: npm, gcc, ...
19]
20
21# (可选) 所有应用程序文件复制到容器后的附加命令
22build_steps = []
查看 完整参考 以了解所有可用的配置选项。