作者:吴嘉(OpenCV 中国工程师)
使用 OpenCV 的 VideoCapture 类,用户可以轻松访问 奥比中光 的 3D 相机,而无需依赖其 SDK,类似于使用 USB 相机,如下面的代码片段所示。macOS 用户现在也像 Windows 和 Linux 用户一样享受类似的便利,因为相关的 拉取请求 已合并。在我们这里的比较中,使用 OpenCV VideoCapture 类和相应的代码片段来确保客观评估,没有任何更改或过滤器,从而保持这些比较的完整性和真实性。
import cv2 as cv
orbbec_cap = cv.VideoCapture(0, cv.CAP_OBSENSOR)
if orbbec_cap.isOpened() == False:
exit("Fail to open camera.")
while True:
if orbbec_cap.grab():
# RGB data
ret_bgr, bgr_image = orbbec_cap.retrieve(None, cv.CAP_OBSENSOR_BGR_IMAGE)
# depth data
ret_depth, depth_map = orbbec_cap.retrieve(None, cv.CAP_OBSENSOR_DEPTH_MAP)
if ret_depth and ret_bgr:
color_depth_map = cv.applyColorMap(cv.convertScaleAbs(depth_map, alpha=0.0255), cv.COLORMAP_JET)
# show the images
cv.imshow('RBG', bgr_image)
cv.imshow('Depth', color_depth_map)
else:
print("Fail to grab data from the camera.")
if cv.pollKey() >= 0:
break
orbbec_cap.release()
关于相机
奥比中光是 3D 相机设计和制造领域的全球领导者。它提供 各种 3D 相机,专为各种用例而设计。 双子座 2 系列 是一系列立体视觉 3D 相机,提供宽视场 (FOV)、扩展深度感应范围和高质量深度数据。
立体视觉 3D 相机 RealSense D400 系列 专为易于设置和便携性而设计,也具有高深度分辨率。我们在各种环境中使用奥比中光双子座 2 L 和 RealSense D455 相机进行了一些快速测试,结果显示如下。输出深度图像使用 JET 颜色映射 映射到假彩色图像以进行可视化。
JET 颜色映射
深度比较
-
- 比较 A:在办公室
奥比中光双子座 2 L
英特尔® RealSense D455
-
- 比较 B:在走廊
奥比中光双子座 2 L
英特尔® RealSense D455
-
- 比较 C:反射
奥比中光双子座 2 L
英特尔® RealSense D455
-
- 比较 D:强光在视野内
奥比中光双子座 2 L
英特尔® RealSense D455
-
- 比较 E:办公室里有各种物体
奥比中光双子座 2 L
英特尔® RealSense D455
总体而言,双子座 2 L 的彩色深度图像比 RealSense D455 的更稳定、更平滑。这对基于 3D 视觉的应用至关重要。在双子座 2 L 的深度图像中,物体的边缘平滑且连续,没有锯齿或波动,确保了物体轮廓的完整性。例如,场景 E 中各种物体的边缘和场景 B 中人物的轮廓。
此外,双子座 2 L 的深度和 RGB 传感器的 FOV 略宽于 RealSense D455。这验证了相机的技术规格。
FOV(HxV) | 双子座 2 L | D455 |
---|---|---|
深度 | 91° x 66° | 87° x 58° |
RGB | 94° x 68° | 90° x 65° |
在场景 C 的情况下,反射对距离检测有很大影响。由于电视屏幕引起的灯光反射,RealSense D455 的电视表面深度数据不正确,而双子座 2 L 的深度图像几乎保持一致。但是 RealSense 还有另一个型号 D455f,它在 D455 的基础上增加了 IR 通道滤光片,用于覆盖镜头。这是为了减轻由于光反射造成的重复模式和错误物体检测。因此,D455f 的深度图像应该比 D455 的好得多。但是由于我们没有 D455f 模型,我们无法进行测试。在场景 B 的情况下,地板上的光反射也会影响 D455 检测地板的能力。
以上结果还表明,在某些情况下,双子座 2 L 的性能比 RealSense D455 差。在场景 C 中,RealSense D455 更好地检测了眼镜。来自窗户的强光也会给双子座 2 L 带来问题,如场景 D 和 E 的结果所示。这是因为在具有挑战性的光照条件下,RealSense D455 利用被动立体视觉来提高其深度感应能力,而双子座 2 L 没有集成该功能。
比较场景 B 的深度图像,可以观察到双子座 2 L 具有更长的深度范围。RealSense D455 的理想范围是 0.6m 到 6m,而双子座 2 L 的范围是 0.2m 到 10m。深度精度会根据距离而异。可以定义各种指标来评估深度质量,并且经常使用一个平行于相机正面的平坦白墙,如下图所示,以帮助测量这些指标。
-
- 比较 F:平行于相机正面的白墙的深度图像,距离 0.6m
奥比中光双子座 2 L
英特尔® RealSense D455
-
- 比较 G:平行于相机正面的白墙的深度图像,距离 0.3m
奥比中光双子座 2 L
英特尔® RealSense D455
GIF 显示了平行于相机正面的白墙的深度图像,距离分别为 0.6m 和 0.3m。从定性上看,可以看出,在 0.6m 的距离下,RealSense D455 的深度图像并不完全平坦和稳定,而双子座 2 L 的深度图像则平坦和稳定;在 0.3m 的距离下,双子座 2 L 可以输出正确的深度数据,而 RealSense D455 则不能。
在定量上,使用均方根误差 (RMSE) 来评估相机在感兴趣区域 (ROI) 上深度数据的空间噪声,而时间噪声则衡量深度随时间的变化。
在上图中,z 是深度像素(蓝色点)的深度值(以mm为单位),拟合平面 是深度数据的最佳拟合平面,d 是深度像素到拟合平面的距离。RMSE 的定义为 . 对数据的平面拟合有助于降低测量对相机和墙壁之间对准误差的敏感度。
双子座 2 L 和 RealSense D455 设置在距离墙壁 0.6m 到 1.2m 之间,间隔 0.1m,RMSE 如下所示
从图中可以看出,在各种距离和不同的 ROI 下,双子座 2 L 的 RMSE 始终小于 RealSense D455。这表明双子座 2 L 的深度数据比 RealSense D455 的空间稳定性更高。
以下是另一个测试的结果,该测试显示了深度值随时间的空间变化。在连续 600 帧上计算 ROI 上深度值的标准差 (STD)。我们可以看到,随着时间的推移以及跨不同的 ROI 规模,STD 更小且保持一致。但是 RealSense D455 的 STD 波动更大。
时间噪声可以定义为一定数量帧(例如 50 或 100)内深度值的标准差。它通常以每个像素为单位进行测量,然后在 ROI 上取平均值或中位数,以代表该设备和 ROI 的时间噪声。我们在白墙的特定时间范围内拍摄 50 张深度图像,并计算标准差矩阵的平均值。双子座 2 L 和 RealSense D455 的时间噪声分别为 0.1488mm 和 1.4102mm。这表明,与 RealSense D455 相比,双子座 2 L 的时间噪声也更小。
奥比中光发布了双子座 2 XL,这款 3D 相机是双子座 2 L 的增强型模型,适用于室外场景。我们也对双子座 2 XL 进行了类似的测试,并且它确实产生了比双子座 2 L 更好的结果,深度图像更加平滑、更稳定,不易受强光影响,并且能够更好地检测玻璃物体。
价格
最后,我们来看看这些相机的价格。
奥比中光 | 双子座 2 | 双子座 2 L | 双子座 2 XL (POE) |
---|---|---|---|
价格 | $267 | $326 | $447 |
RealSense | D435i | D455/D455f | |
---|---|---|---|
价格 | $334 | $419/$439 |
注意:本文的早期版本错误地指出 RealSense 相机已于 2021 年 8 月停产。这不是真的;英特尔决定仅在 2021 年 8 月将英特尔 RealSense Lidar 和跟踪产品线停产。英特尔 RealSense 今天继续在新开发中推进立体深度相机产品线和面部身份验证解决方案的创新技术。