中文 英语
18lickc新利
的意见

结合SLAM和CNN实现高性能增强现实

实现真实和虚拟对象之间的真实交互。

受欢迎程度

机器人和耳机或护目镜是最常见的需要AR/VR/混合现实的硬件设备,AR也将进入手机、平板电脑和汽车领域。为了让硬件设备看到周围的世界,并通过插入图形或图像添加到现实中,它们需要确定自己在空间中的位置,并映射周围的环境。

同时定位和映射(SLAM)算法为增强现实系统提供了一个几何位置。SLAM算法可以建立一个环境的3D地图,同时跟踪摄像机在该环境中的位置和位置。算法估计传感器的位置(内置在相机、手机、护目镜等中),同时对环境建模以创建地图(图1)。了解传感器的位置和姿态,结合生成的环境3D地图,可以让设备(以及通过设备查看的用户)在现实环境中移动。


图1:SLAM算法通过识别物体的点和边缘并从数据中进行平面提取来构建周围环境的3D地图

SLAM可以以多种方式实现。Visual SLAM是一款只有摄像头的版本,不依赖于花哨的惯性测量单元(imu)或昂贵的激光传感器。单目视觉SLAM已经变得非常流行,它依赖于一个像手机一样的摄像头。单目视觉SLAM的典型实现包括以下几个关键任务:

  • 特征提取或不同地标的识别(如形成桌子边缘的线条)。特征提取通常采用ORB、SIFT、FAST、SURF等算法。
  • 帧之间的特征匹配,以确定相机的运动是如何变化的。
  • 摄像机运动估计,包括环路检测和环路闭合(解决识别以前访问过的位置的挑战)。

这些任务使用许多计算,并将对为AR系统选择最佳硬件产生影响。

添加深度学习/ cnn用于感知
虽然SLAM提供了确定摄像机在环境中的位置和环境的3D模型的能力,但感知和识别环境中的物品需要像cnn这样的深度学习算法。cnn是目前实现视觉深度神经网络的最先进技术,它通过增强用户的AR体验或为AR系统添加新功能来补充AR系统中的SLAM算法。

cnn可以非常准确地完成物体识别任务,包括基于神经网络系数的预训练的定位(识别图像中物体的位置)和分类(识别图像类别,即狗vs猫,拉布拉多犬vs德国牧羊犬)。SLAM可以帮助摄像机在一个环境中移动而不会碰到物体,而cnn可以识别物体是沙发、冰箱或桌子,并突出显示它在视野中的位置。用于实时目标检测(包括分类和定位)的流行CNN图是YOLO v2、Faster R-CNN和单镜头多盒检测器(SSD)。

CNN对象检测图可以专门用于检测人脸或手。通过基于cnn的面部检测和识别,AR系统可以在AR环境中在人的面部上方添加姓名和社交媒体信息。使用CNN来检测用户的手,允许游戏开发者在游戏玩家的虚拟手中放置所需的设备或仪器。检测手的存在比确定手的位置更容易。一些基于CNN的解决方案需要深度摄像机输出以及R-G-B传感器输出来训练和执行CNN图。

cnn也可以成功地应用于语义分割。与对象检测不同,对象检测只关心图像中可能是感兴趣的对象的像素,语义分割关心的是每个像素。例如,在汽车场景中,语义分割CNN会将天空、道路、建筑物、单个汽车的所有像素标记为一个组,这对自动驾驶汽车导航至关重要。应用于AR,语义分割可以找到天花板、墙壁、地板以及空间中的家具或其他物体。场景的语义知识使真实对象和虚拟对象之间的真实交互成为可能。

高性能系统的硬件实现
SLAM和CNN算法都需要大量的计算每个相机捕获的图像(帧)。为AR用户创造一个无缝的环境——在没有显著延迟的情况下将现实世界与虚拟世界融合——需要20-30帧每秒(fps)的视频帧率。这意味着AR系统有大约33到40毫秒的时间来捕捉、处理、渲染和向用户显示结果。它完成这些任务的速度越快,帧速率就越快,AR的感觉就越自然。

考虑到SoC的单目(单摄像头)SLAM系统,计算效率和内存优化都是关键的设计关注点。如果相机以30帧/秒的速度拍摄4k图像,则意味着需要存储和处理每帧8294400像素或每秒248,832,000像素。大多数嵌入式视觉系统将每个帧存储在外部DDR中,然后尽可能高效地将图像的部分传输给视觉处理(图2)。


图2:视觉数据存储在片外存储器中,通过AXI总线传输到处理器

在CPU上处理高级AR系统所需的算法——比如手机的应用程序进程——效率很低。与CPU相比,卸载到AR系统中用于绘制图形的GPU将加快SLAM和CNN计算速度。然而,虽然GPU提供的性能提升帮助迎来了人工智能和深度学习计算时代,但在GPU上实现深度学习算法可能需要100W或更多的功率。最优化的方法是将嵌入式视觉处理分配给专用的核心。

性能和电源效率可以通过灵活的配对来实现带有矢量DSP的CNN引擎.矢量DSP设计用于处理SLAM等应用程序,而专用的CNN引擎可以支持所有常见的CNN操作(卷积、池化、elementwise),并将提供最小的面积和功耗,因为它是为这些参数定制设计的。

对于AR系统的SoC设计人员来说,嵌入式视觉处理器IP提供了一个优化的解决方案来解决性能/功耗问题。DesignWare EV61、EV62和EV64嵌入式视觉处理器集成了高性能32位标量核心和512位矢量DSP,以及优化的CNN引擎,可快速准确地进行目标检测、分类和场景分割。矢量dsp是实现SLAM算法的理想选择,并且独立于CNN引擎运行。处理器完全可编程和可配置,并将软件解决方案的灵活性与专用硬件的高性能和低功耗相结合。

结论
SLAM和CNN等深度学习算法的结合将使新的和改进的AR系统成为可能,在游戏、教育、自动驾驶汽车等领域开辟新的体验。通过使用嵌入式视觉处理器作为主机CPU的伙伴,可以简化构建具有严格性能、功耗和面积要求的复杂AR系统。EV处理器为AR系统开发人员提供了结合深度学习和不断发展的SLAM技术的能力。

本文的一个版本首次发表于Synopsys DesignWare技术公告



留下回复


(注:此名称将公开显示)

Baidu