这篇按实际操作顺序分成三部分:先用 Orbbec Viewer 确认相机可以显示彩色图和深度图,再准备 Orbbec SDK 开发环境,最后编译并运行官方示例。示例以 Windows 10/11 x64 和 Orbbec SDK v2.9.3 为参考;不同版本的安装包名称可能略有变化。

SDK: Software Development Kit,即软件开发套件。这里用它连接 Orbbec 相机并获取图像。

🎯 完成后应看到什么

完成本文后,应得到四个可以直接检查的结果:

  1. Orbbec Viewer 能识别相机型号;
  1. Viewer 能持续显示 Color 和 Depth 画面;
  1. Visual Studio 能成功生成 ob_quick_start.exe;
  1. 运行示例后,窗口能持续显示相机画面。

🔗 Orbbec SDK v2 Windows Quick Start 🔗 Orbbec SDK v2 官方仓库 🔗 官方 quick_start 示例

1️⃣ 确认相机支持 Orbbec SDK v2

打开 Orbbec SDK v2 官方仓库,在 Supported Devices 表格中查找相机型号,同时查看对应的最低固件版本和推荐固件版本。

如果列表中没有该型号,可再到 Orbbec SDK 下载页查看旧版 SDK 的支持范围。部分较早的 Orbbec 相机使用旧版 SDK 或 OpenNI,所需安装包与本文不同。

成功标志: 支持列表中能找到相机型号,并且当前固件版本符合要求。

🔗 Orbbec SDK v2 支持设备列表 🔗 Orbbec SDK 官方下载与型号支持页 🔗 OpenNI 设备升级至 UVC 协议说明

2️⃣ 安装 Orbbec SDK

请从 https://www.orbbec.com/developers/orbbec-sdk/ 下载安装程序 “OrbbecSDK_vx.x.x_win64.exe”。

双击安装程序,按提示完成安装。

image.png

安装完成后,Orbbec SDK 安装目录下的文件如下:

image.png

🔗 Orbbec SDK v2 Releases 与安装包说明 🔗 Orbbec SDK Windows 安装图文说明 🔗 Orbbec SDK v2 官方仓库:Windows 安装说明

📷 Orbbec Viewer

Orbbec Viewer 是 Orbbec 基于 SDK 提供的相机管理与数据预览工具。连接相机后,可以查看设备型号、序列号和固件版本,选择 Color、Depth、IR 或 IMU 数据流,并直接预览相机画面。熟悉 Viewer 的基本操作后,再继续安装 SDK 并运行官方示例。Orbbec Viewer 是一款基于 Orbbec SDK 开发的工具,旨在帮助开发者更便捷地使用 Orbbec 的 3D 传感器产品。该工具能够实现 Orbbec 3D 传感器产品的各项功能,包括读取序列号、获取设备类型、获取摄像头参数、控制摄像头等。

安装 Orbbec SDK 会一起安装 Orbbec Viewer,其应用程序位于\OrbbecSDK 2.9.3\tools,如下图所示。

image.png

使用配套线缆将相机连接至电脑的 USB 3.x 接口,打开 Orbbec Viewer 选择设备并确认型号、序列号和固件版本,然后选择合适的分辨率与帧率,启动 Color 和 Depth 数据流。然后就可以在Orbbec Viewer看到对应的图像,如下图所示。

image.png

具体操作指南可见🔗 Orbbec Viewer 官方使用指南 🔗 Orbbec Viewer Windows 视频教程

元数据注册

对于 Windows 系统,你需要对与视频帧相关的元数据进行注册处理(这些元数据包括时间戳以及与视频帧相关的其他信息)。

元数据注册请按照以下步骤操作:/shared/obsensor_metadata_win10.md

image.png

注意:如果元数据没有正确注册,设备的时间戳将会出现异常,从而影响 SDK 的内部帧同步功能。

构建Orbbec SDK 包

首先进入SDK安装目录下的 examples 目录,使用 CMake 来编译该项目。

image.png

点击“配置”按钮后,会出现以下对话框:

image.png

点击“完成”按钮,将 OpenCV_DIR 设置为 OpenCV 的安装目录,如果没有安装可以在https://opencv.org/releases/选择合适的版本进行安装。

然后点击“生成”按钮,如下所示:

image.png

💻 在 Visual Studio 2022 运行示例程序

使用 Visual Studio 2022 打开示例项目(sdk_examples.sln)。

在顶部工具栏选择:

Release | x64
image.png
  1. 右键 ob_quick_start;
  1. 选择“设为启动项目”;
  1. 再次确认顶部为 Release | x64;
  1. 右键项目并选择“属性”;
  1. 选择“调试 → 开始执行(不调试)”,或按:
Ctrl + F5

正常情况下会出现标题为 QuickStart 的窗口,并持续显示相机帧。可以把手或纸盒放在相机前方,在不过度靠近镜头的情况下缓慢前后移动:彩色画面应同步变化,深度画面的层次也应随距离变化。

image.png

🧯 常见问题与解决方式

📚 Windows 提示找不到 OrbbecSDK.dll

典型现象:

由于找不到 OrbbecSDK.dll,无法继续执行代码

这表示 ob_quick_start.exe 已经生成,但 Windows 的 DLL 搜索路径中没有 SDK 运行库。把下面的文件复制到 EXE 旁边即可:

<SDK_ROOT>binOrbbecSDK.dll
→ <SDK_ROOT>examplesbuildbinOrbbecSDK.dll

也可以使用通用变量完成复制和复验:

$sdkRoot = "C:pathtoOrbbecSDK"
$runDir = Join-Path $sdkRoot "examplesbuildbin"

Copy-Item `
  (Join-Path $sdkRoot "binOrbbecSDK.dll") `
  (Join-Path $runDir "OrbbecSDK.dll") `
  -Force

Test-Path (Join-Path $runDir "OrbbecSDK.dll")

不需要使用 regsvr32 注册,也不需要因为这一错误重装相机驱动。修复后先用 Test-Path 验证,再启动程序。

🖼️ Windows 提示找不到 opencv_world4100.dll

典型现象:

由于找不到 opencv_world4100.dll,无法继续执行代码

这表示 QuickStart 的 OpenCV 显示依赖没有进入运行目录。先从构建缓存确认 CMake 使用的 OpenCV:

$buildDir = "C:pathtoOrbbecSDKexamplesbuild"

$opencvDirLine = Select-String `
  (Join-Path $buildDir "CMakeCache.txt") `
  -Pattern "^OpenCV_DIR:PATH=" |
Select-Object -First 1 -ExpandProperty Line

if (-not $opencvDirLine) {
  throw "CMakeCache.txt 中没有记录 OpenCV_DIR"
}

$opencvBuildDir = $opencvDirLine -replace "^OpenCV_DIR:PATH=", ""
$opencvBuildDir

正常会返回类似:

C:/path/to/opencv/build

再按报错中的文件名搜索对应的 x64 Release DLL:

$opencvDllName = "opencv_world4100.dll"  # 改为弹窗中的实际文件名

$opencvDll = Get-ChildItem $opencvBuildDir `
  -Recurse `
  -File `
  -Filter $opencvDllName `
  -ErrorAction SilentlyContinue |
Where-Object FullName -Match "[\/]x64[\/]" |
Select-Object -First 1

if (-not $opencvDll) {
  throw "未找到与报错名称一致的 x64 OpenCV DLL"
}

$opencvDll.FullName

找到后,将它复制到示例运行目录并复验:

$runDir = Join-Path $buildDir "bin"

Copy-Item `
  $opencvDll.FullName `
  (Join-Path $runDir $opencvDllName) `
  -Force

Test-Path (Join-Path $runDir $opencvDllName)

不同 OpenCV 版本的文件名不同,其他版本 DLL 不能通过改名代替。pip install opencv-python 安装的是 Python 包,也不能补齐这个 C++ 示例所需的 Windows C++ 运行库。

🔍 Pipeline 报 depth frame processor not found

典型信息:

function:ob_pipeline_start
message:Device Component 'depth frame processor' not found!
status:114
type:13

这个现象说明程序已经成功加载 OrbbecSDK.dll 并进入 SDK,但启动深度流时没有找到 frameprocessor 扩展。将下面整个目录复制到运行目录:

<SDK_ROOT>binextensions
→ <SDK_ROOT>examplesbuildbinextensions

随后确认:

$sdkRoot = "C:pathtoOrbbecSDK"
$runDir = Join-Path $sdkRoot "examplesbuildbin"

Test-Path `
  (Join-Path $runDir "extensionsframeprocessorob_frame_processor.dll")

返回 True 后,从 buildbin 运行示例。如果 PowerShell 能运行、Visual Studio 中仍报同样错误,再检查项目“调试 → 工作目录”是否为 $(TargetDir)。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注