使用高通的Snapdragon 820启用深度相机

描述

深度相机对机器人世界至关重要,现在有不同的形状和框架。为了在现实世界中寻找物体或路径,机器人需要对周围环境有感知。这些相机中的大多数使用两个具有一定距离的相机并进行大量处理以从这两个 2D 捕获的视频中创建一个 3D 世界。在大多数情况下,原始捕获的视频需要传递给其他模块用于不同的目的——这是大多数现有深度相机模块所缺少的部分之一。在本文中,我们将介绍 Qualcomm 的 Snapdragon 820 作为实时深度摄像头的解决方案,同时不会丢失双摄像头系统的基本功能。

高通的 Snapdragon 820 是其系列中功能更强大的 SoC 之一。该 SoC 有一个八核 ARM CPU 作为应用处理器,可与一些子系统(如 GPU、DSP、RPM 等)配合使用。Hexagon DSP 是一个功能强大的 DSP,具有多个硬件线程、数据包指令、L1 和 L2 缓存,以及对外围设备和双倍数据速率 (DDR) 的访问,例如应用处理器 Qualcomm (APQ) 和超长指令字 (VLIW)。在 820 中,使用了该结构的版本 6。在这个新结构中,提供了一个可以处理 1024 位向量的 Hexagon Vector eXtension (HVX) 协处理器。

您可以利用 HVX 进行高分辨率图像处理。Snapdragon 820 提供的其他功能之一是能够将定制模块添加到图像信号处理 (ISP) 管道(图 1)。

机器人

【图1 | ISP中的HVX模块]

在 ISP 管道中拥有一个自定义模块将让用户在将图像传递给 ISP 中的其他模块之前对其进行处理。该模块的输入是拜耳和非拜耳格式,输出为拜耳格式。该模块可以直接访问DDR,处理结果可以实时提供给高级操作系统(HLOS)。

Snapdragon 820 有两个 ISP,并且两个管道都可以包含定制的图像处理模块。换句话说,如果您将两台相机连接到 820,您可以为每台相机单独定制图像处理。如果用户想为两个自定义图像处理模块使用 HVX 模块,他们可以使用 512 位矢量。使用定制的图像处理模块将使 Hexagon 处于特定模式,该模式将为每个定制的图像处理模块分配两个特定的硬件线程(图 2)。

机器人

【图2 | HVX模块和HT]

加工结构

出于我们的目的,我们使用了两个具有相同分辨率的相机,它们排列在一个固定的夹具中。这意味着我们知道两个相机之间的重叠程度。我们使用如图 3 所示的处理管道。

机器人

【图3 | 处理块]

使用神经网络解决方案(图 1),我们可以使用 HVX 模块同时对两个相机图像进行边缘检测过程。一个相机上的边缘检测图像使用反馈指针传递给另一个相机。然后,使用 SAD 算法对这两个图像进行处理。结果将在 DDR 中用于与 HLOS 共享。如前所述,相机的位置和对齐方式是固定的,可用于找到两个捕获图像的重叠部分。如果不是这种情况,那么我们需要在整个过程中添加重叠检测模块。

实验

将两个摄像机固定在一个静态帧中,我们可以看到帧具有固定的重叠。

机器人

【图4 | 两个具有固定重叠和使用 NN 的相关边缘检测的相机的视图]

在两个相关帧上使用 SAD 算法,并通过插值将数字转换为灰度,我们得到了如图 5 所示的结果。

机器人

【图5 | 差异结果]

使用这种算法,我们可以达到 30 FPS 的全高清视频,同时视频可以无中断地提供给 HLOS。

审核编辑:郭婷

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分