精细化立体深度
Isaac提供了从粗到细的立体深度估计,该算法使用GPU加速来基于立体图像对实时计算视差。
立体视差是指由于两个摄像机之间的水平距离(视差)而导致的两个立体图像中相似特征的坐标差异。通过比较这两个立体图像,可以以视差图的形式获得相对深度信息,该视差图对相应图像点的水平坐标中的差异进行编码。该视差图中的值与相应像素位置处的景深成反比。
粗到精细的立体深度可以在80只合成立体图像的数据集(每只眼睛的分辨率为512 x 256)上进行测试时,准确推断出5 m以内的90%像素的深度,总D1得分为8.3%。在Jetson Xavier上,它可以以每秒27帧(FPS)的速度处理来自Zed相机的VGA分辨率(每个672 x 376)的立体图像。
下图是从立体ZED摄像机捕获的素材对深度/视差进行粗略到精细的立体深度估计的结果。
源代码
Isaac使用静态库形式的立体声深度检测代码。
粗到细的立体声深度被包装为Isaac小码,并且在Isaac存储库中可用。
以撒法典
艾萨克(Isaac)小码包裹了从粗到细的立体深度检测,获取一对校正后的立体图像,并发布密集的深度图(以米为单位),其中该图中的每个像素对应于输入图像中该像素的深度值。左镜头。小码使用摄像机的固有特性和外部特性来计算立体声深度。输出深度的最小值和最大值可以通过配置文件作为输入参数提供。
运行示例应用程序
从粗到细的立体声深度示例应用程序使用ZED立体相机。首先将ZED相机连接到您正在使用的主机系统或Jetson平台。然后,使用以下过程之一运行随附的示例应用程序。
在主机系统上运行示例应用程序
- 使用以下命令构建示例应用程序:
bob@desktop:~/isaac$ bazel build //apps/samples/stereo_matching_depth
- 使用以下命令运行示例应用程序:
bob@desktop:~/isaac$ bazel run //apps/samples/stereo_matching_depth/stereo_matching_depth
在Jetson上运行应用程序
- 使用以下命令构建示例应用程序:
bob@desktop:~/isaac$ bazel build //apps/samples/stereo_matching_depth
-
如在Jetson上部署和运行所述,将// apps / samples / stereo_matching_depth:stereo_matching_depth-pkg 部署到机器人。
-
登录到Jetson系统并使用以下命令运行该应用程序:
bob@jetson:~/$ cd deploy/bob/stereo_matching_depth-pkg
bob@jetson:~/deploy/bob/stereo_matching_depth-pkg$ ./apps/samples/stereo_matching_depth/stereo_matching_depth
其中“ bob”是您在主机系统上的用户名。
在Websight中查看应用程序的输出
在应用程序运行时,通过导航到来在浏览器中打开Isaac Sight http://localhost:3000
。如果在Jetson平台上运行该应用程序,请确保使用Jetson系统的IP地址而不是localhost。
在Websight中,一个名为LeftCamera的窗口显示左输入图像,一个名为Depth的窗口显示该算法估计的深度。深度值在提供给深度可视化器小码的最小和最大深度深度值之间进行归一化。深度图中的每个像素对应于左输入图像中该像素的深度(以米为单位)。
../../../_images/c2f4.png
网友评论