掌桥专利:专业的专利平台
掌桥专利
首页

基于多相机卷积器系统的三维环境建模

文献发布时间:2023-06-19 09:23:00


基于多相机卷积器系统的三维环境建模

相关申请

本申请要求2018年3月13日提交的美国临时申请号62/642,578和2018年6月27日提交的美国临时申请号62/690,509的优先权。

技术领域

本发明涉及用于构造一个或多个相机装置的环境的三维模型的方法。

背景技术

用于推断或生成用于地图构建和分析的相机环境的语义模型的现有系统是有限的,例如,此类系统例如以允许查询环境模型的方式可能是缓慢的,依赖于低分辨率视频,并且可能不能够识别相机环境中存在的移动和静止对象。

因此,需要提供针对这些问题的技术解决方案的系统和方法,并且本申请公开了解决此需求的方面的实施例。

发明内容

描述了用于例如用于构造三维环境模型的系统的实施例。诸如系统可包括:相机装置,所述相机装置包括多个图像传感器;存储装置,所述存储装置被配置来存储卷积神经网络;以及卷积器处理器,所述卷积器处理器可操作地耦接到所述存储装置并被配置来:使用所述卷积神经网络,从由所述多个图像传感器生成的一系列场景帧中采样场景帧;使用所述卷积神经网络确定所述场景帧中每个像素的深度图;使用所述卷积神经网络确定较低维特征空间中的一组特征向量,其中所述特征向量之间的距离表示视觉差异;基于所述特征向量确定所述场景帧与关键帧之间的光流;基于所述光流,确定所述场景帧中一个或多个移动对象的六维变换,其中所述六维变换包括所述一个或多个移动对象的位置改变和取向改变;以及基于所述场景帧中所述一个或多个移动对象的所述深度图和所述六维变换,向存储三维环境模型的装置提供更新。

附图说明

图1描绘根据本发明的一些实施例的图像生成相机装置的示例性部件;

图2描绘根据本发明的一些实施例的用构造三维环境模型的示例性系统的部件;

图3是根据本发明的一些实施例的关于用于构造三维环境模型的系统的示例性过程的流程图;

图4描绘根据本发明的一些实施例的用于实时环境建模的示例性分布式系统的部件;

图5示出根据本发明的一些实施例的示例性计算系统的框图。

具体实施方式

描述了用于部署用于实时构造和更新三维环境模型的系统的设备、计算机系统、计算机可读介质和方法的实施例。例如,此类系统可包括定位在固定或移动支撑件处的多个相机装置,所述多个相机装置用于生成相机装置的环境的高度准确的三维地图。在某些实施例中,同步定位与地图构建(SLAM)算法中涉及的关键处理步骤由集成到边缘装置(例如,相机装置)中的高效率卷积器处理器执行。

在某些实施例中,本文描述的方法用于概略画出一个或多个相机装置中的一个的环境(例如,由相机监测的真实场景或区域)的对象和特征以生成可查询的三维地图。例如,监测区域中的每个对象可标有语义标识和附加的性质,诸如,对象在监测区域内的位置、所述对象是静态的还是移动的,并且如果所述对象正在移动,则可将其与在地图的坐标系内的某个方向上的速度或加速度相关联(并且与对象相关联的像素可类似地各自与沿着向量的移动的表示相关联)。环境中的每个对象可与相对于相机装置的深度、相对于地图的对象取向相关联,并且可具有在不同的粒度层次上识别(例如,个体标识、类别标识、超群成员资格)对象的类型的各种标签。这种地图是可查询的,因为可基于此语义信息对其进行查询,以例如对非红色的汽车进行计数,识别游乐园中正在扔东西的孩子等。在某些实施例中,通过在最近的相机装置处执行的计算来构造或确定环境模型的各部分。在某些实施例中,由单个相机装置的推断或确定在单个相机装置、网关服务器或远程服务器处被组合以构建监测区域的整体三维环境模型。在某些实施例中,三维环境模型可仅包括表示场景的背景的静态对象,并且在其他实施例中,构成对象被分类为背景对象或非背景对象。在某些实施例中,移动对象可被分类为背景对象——例如,旋转的吊扇或喷泉中的落水。在某些实施例中,通过识别和定位背景对象,系统能够从其分析中减去背景对象,然后可能够更好地识别可能是附加的分析或跟踪的对象的非背景对象的特性。

如本文所使用,“三维环境模型”是区域的三维地图,其中所述区域可由与所述系统相关联的一个或多个相机装置成像。所述三维环境模型包括对位于地图中的对象以及它们的绝对位置和/或它们相对于彼此以及相对于相机的位置的语义描述。在某些实施例中,三维环境模型包括对象移动的描述,并结合在特定的时间或时间段处的环境及其内容的状态。“对象”是视觉上可表示的项目类型,诸如人、武器、椅子、树木或建筑物。对象的实例可用合成域图像(例如,使用渲染引擎从图像内容的语义或高级描述生成的图像)或实域图像数据表示。在某些实施例中,实域图像是由图像传感器基于图像传感器的环境中的光信息生成的图像。在某些实施例中,实域图像是图像传感器的视野内的实际对象实例和/或图像传感器的视野内的环境的表示。如本文中所使用,“语义描述”是关于在所述图像数据或涉及所描绘的内容的事件中所描绘的内容的含义的规范。

图1描绘图像生成相机装置100的示例性部件。相机装置100包括用于对装置100的环境进行成像的两个或更多个图像传感器102。例如,图像传感器102可在相应传感器之间以一定间隔布置在装置100中,以便能够推断来自装置100的对象在装置100的环境中的深度。在某些实施例中,可收集来自定位在多个物理装置上的图像传感器102的对应信息,例如,以便有利于深度推断。图像传感器102可检测灰度(单通道)光信息、颜色(例如,生成三个或更多个颜色通道的RGB、HSV/HSB、HSL或YUV)或红外光信息。图像传感器102可能够提供4K分辨率图像(即,生成沿一维具有至少4,000像素的图像)或10K分辨率或更大分辨率图像。在某些实施例中,相机装置300可安装在地面上方固定高度处的固定位置处。与图像传感器102相关联的光学特性可包括,例如,传感器的分辨率、颜色检测配置文件、传感器相对于相机装置的其他传感器的位置、镜头性质(诸如广角镜头与常规镜头)、光信息的类型(红外、可见光等)、焦距、光圈等。

在某些实施例中,相机装置100可安装在移动对象(诸如人、车辆或无人机)上;在某些实施例中,相机装置100被固定在监测区域中的特定高度和x、y位置处的位置。

相机装置100可包括一个或多个相机装置处理器104。在某些实施例中,处理器104中的任何一个可以是用于计算神经网络推断计算的专用处理器,诸如卷积器处理器。在某些实施例中,处理器104是通用处理器。处理器104可与图像传感器102、通信模块106、其他传感器108、存储部件110以及电力系统和/或电池112通信。电力系统/电池112可与一个或多个端口114通信。

相机装置100可包括一个或多个其他传感器108,诸如用于监测热负荷或环境温度的温度传感器、加速计、麦克风等。通信模块106可包括蜂窝无线电、蓝牙无线电、ZigBee无线电、近场通信(NFC)无线电、无线局域网(WLAN)无线电、用户身份模块(SIM)卡、GPS接收器以及由它们各自使用的用于通过各种网络(诸如,远程通信网络或无线局域网)传达数据的天线。存储器110可包括一种或多种类型的计算机可读介质,诸如,RAM、光学存储装置或快闪存储器,并且可存储操作系统、应用程序、通信程序和基于由图像传感器102生成的数据进行推断的机器学习模型(例如,本地机器学习模型)。电力系统/电池112可包括电力管理系统、一个或多个电源,诸如,电池和充电系统、AC、DC、电力状态指示灯等。在某些实施例中,相机装置100的部件可被封闭在单个外壳116中。

图2描绘用于构造环境(例如,监测区域)的三维模型的示例性系统200的部件。系统200包括多个相机装置100,所述多个相机装置100具有传感器,所述传感器具有已知的相机固有特性和外部特性(例如,光学特性和安装特性)。系统200中的相机装置100的传感器102和108生成输入介质202,所述输入介质202可包括视频数据(例如,具有相关联的时间参数或时间维度的一系列图像或视频流)和音频数据。在某些实施例中,输入介质202另外包括例如视频流的先前历史(例如,一些先前的场景帧或部分推断的元数据)的一些描述。场景帧204表示来自输入介质202的单个帧和相关联的元数据,并且在某个时间点处提供来自相机装置100的视野的快照。在某些实施例中,每个场景帧204包括多个图像,每个图像对应于多个图像传感器中的每一个。在某些实施例中,一个或多个相机装置100可被安装在移动致动器或车辆上以对更大的区域进行地图构建。在系统200中,每个相机装置100包括作为卷积器处理器206的处理器104。卷积器处理器206针对卷积操作进行了优化,并且能够对包括场景中的对象的任何实例的可见场景(监测区域)进行实时、准确的距离估计。例如,距离/深度估计和光流可被配置来主要使用3x3卷积来计算,因为卷积处理器206针对3x3卷积进行优化。这允许以其原始分辨率处理图像(例如,高达12兆像素的图像),并改进与在较低分辨率下会丢失的移动相关联的远距离对象的检测。作为使用多个相机装置100的结果,针对对象的计算出的相对距离梯度具有提高的准确度。在系统200中,每个相机装置100的内部卷积处理器206被用于基于输入介质202提取深度图、估计光流并且提取唯一的场景帧签名。深度图表示208是深度图的视觉表示,所述深度图为例如对象距示例性场景帧204中的相机的距离分配颜色。内部深度图表示可以是与场景帧中的每个像素相对应或相对于任何其他参考坐标系(例如,三维点云表示)的距离或地图坐标的阵列。卷积器处理器206可用于估计区域光流,作为帧间运动跟踪(也称为视觉测程法)的基础。当前场景帧204与匹配关键帧212之间的光流是在关键帧与当前场景帧之间的对应像素的移位。作为光流确定的一部分,可使用卷积器处理器206将每个输入场景帧204地图构建到较低维特征空间,其中特征向量之间的距离表示视觉差异。计算的特征向量用于关键帧(KF)匹配和环形闭合。计算的光流能够跟踪和识别环境中的移动对象。光流表示210可以是例如与场景帧中的每个像素的位置改变相对应的向量的阵列。将同步定位与地图构建(SLAM)算法应用于深度图表示208、光流表示210和一个或多个关键帧212,以估计在关键帧212与当前场景帧204之间具有六个自由度(位置(x、y、z)和取向(滚动、俯仰、偏航))的变换。系统200的每个相机100通过系统接口214向分布式系统的其他部件提供每个场景帧的深度、位置和取向估计,例如,用于将来自多个相机100的信息组合到聚合的三维环境模型216中,所述模型包括与识别和移动元数据相关联的对象。在某些实施例中,一个或多个相机100可通过系统接口214(例如,从远程服务器或不同的相机装置100)接收外部跟踪信息,以便减轻长距离上的定位漂移。例如,如果由系统200跟踪如由通过所述系统与车辆相关联的特定视觉签名(例如,哈希)指定的特定车辆,并且所述车辆的牌照在第一相机100的视野中可见,但在第二相机100的视野中被遮挡,则第二相机100可从系统的另一个部件(诸如将牌照与所述视觉签名相关联的车辆对象)接收数据。所述系统可因此在两个相机的视野内(可能在不同的时间点处)将车辆识别为具有相同牌照的同一车辆,即使牌照对于第二相机是不可见的。在另一个实例中,可使用附加的相机装置100或替代的传感器装置(使用例如LIDAR),例如以手动(诸如,手持相机)或半自动(例如,安装在无人机或半自动车辆上的传感器)的方式来记录数据,以增强覆盖场景的数据,其中将附加的/替代的装置引入监测区域中以捕获不同的视点;通过例如更新或校正模型中数据不足或不正确的部分,可将此数据集成到三维环境模型中。

图3是关于用于构造三维环境模型的系统的示例性过程300的流程图。在过程300中,相机装置的卷积器处理器使用卷积神经网络从由相机装置的多个图像传感器生成的一系列场景帧中采样场景帧(302)。卷积器处理器和神经网络可用于确定场景帧中每个对应像素的深度图(304)。每个场景帧包括与相机的每个相应图像传感器相关联的图像,其中每个图像在同一时间点处被捕获。因为每个场景帧的各种图像是从不同的角度捕获的,所以它们包含的信息可推断在整个场景帧的图像中表示对象实例的相同部分的对应像素的深度或距离。在某些实施例中,场景帧可包括由不只一个相机装置100捕获的图像,以便更准确地评估距离。处理器使用卷积神经网络和场景历史来确定场景帧中每个像素的深度图。过程300另外包括以下步骤:使用神经网络确定较低维特征空间中的一组特征向量,其中特征向量之间的距离表示视觉差异(306)。基于计算的特征向量,确定场景帧与关键帧之间的光流(308)。可在每帧边界上计算每个关键帧。使用光流,确定场景帧中移动对象的六维变换。此变换包括三维位置(x、y、z)的改变以及相对于关键帧的对象的取向(滚动、俯仰、偏航)的改变(310)。一旦确定了深度图和变换,相机装置可更新内部存储的三维环境模型,或者可将深度和变换信息提供给系统的另一个部件以更新聚合模型(312)。使用优化的卷积器处理器的结果是,这些确定是快速的,并且可实时(例如,每秒5次、每秒一次、每分钟6次或每分钟)提供更新。

图4描绘实时环境建模的示例性分布式系统400的示例性数据流和部件。在某些实施例中,相机装置100的集合被放置在监测区域404(例如,目标内容或相机装置100的环境的可能位置)内。相机装置100可通过有线或无线通信信道向网关装置406提供推断的通知或输出(诸如提供到三维环境模型的更新),并且可通过那些信道接收对相机装置的本地机器学习模型的更新。网络408表示远程通信网络、有线或无线局域网或互联网。在某些实施例中,相机装置300可在没有网关装置406的情况下连接到网络408。在某些实施例中,报告系统414在托管服务器416(诸如,HTTP服务器)的云服务或一个或多个计算装置和可基于检测到的事件或基于相机装置100处的推断发起某些动作(例如,将报告发送到客户端装置)的应用程序420上运行。例如,可将限定的动作和/或用户账户信息存储在数据存储422中。应用程序420可支持提供对用于访问数据存储422的方法的外部访问的应用程序编程接口(API)418。在某些实施例中,运行在用户装置412或其他客户端装置上的客户端应用可使用诸如HTTP或FTP的协议通过服务器416访问API 418,以便例如查看训练系统用户界面或报告系统用户界面等。

图5是示出表示本文所讨论的计算机系统或电子装置的任一者的示例性计算系统500的框图。注意,并非所有的各种计算机系统都具有系统500的所有特征。例如,系统可不包括显示器,因为显示功能可由通信地耦接到计算机系统的客户端计算机提供,或者显示功能可能是不必要的。

系统500包括总线2506或用于传达信息的其他通信机制,以及与总线2506耦接的用于处理信息的一个或多个处理器2504。计算机系统500还包括耦接到总线2506的用于存储将由处理器2504执行的信息和指令的主存储器2502,诸如随机存取存储器或其他动态存储装置。主存储器2502还可用于在执行将由处理器2504执行的指令期间,存储临时变量或其他中间信息。

系统500还可包括只读存储器2508或耦接到总线2506的用于为处理器2504存储静态信息和指令的其他静态存储装置。提供了存储装置2510(其可以是硬盘、基于快闪存储器的存储介质、磁带或其他磁存储介质、光盘(CD)-ROM、数字通用光盘(DVD)-ROM,或其他光学存储介质,或处理器2504可从中读取的任何其他存储介质中的一者或多者),并且所述存储装置2510耦接到总线2506,以用于存储信息和指令(例如,操作系统、应用程序等)。

计算机系统500可通过总线2506耦接到显示器2512以将信息显示给计算机用户。诸如键盘2514、鼠标2516或其他输入装置2518的输入装置可耦接到总线2506,以用于将信息和命令选择传达给处理器2504。通信/网络部件2520可包括网络适配器(例如,以太网卡)、蜂窝无线电、蓝牙无线电、NFC无线电、GPS接收器,以及各自用于通过各种网络(诸如,远程通信网络或LAN)传达数据的天线。

本文所提及的过程可由处理器2504执行包含在主存储器2502中的计算机可读指令的适当序列来实现。可从诸如存储装置2510的另一计算机可读介质将此类指令读入主存储器2502中,并且执行包含在主存储器2502中的指令的序列致使处理器2504执行相关联的动作。在替代实施例中,可使用硬连线电路或固件控制的处理单元(例如,现场可编程门阵列)来代替处理器2504及其相关联的计算机软件指令或与之组合以实现本发明。可以任何计算机语言来呈现计算机可读指令,所述计算机语言包括但不限于:Python、Objective C、C#、C/C++、Java、Javascript、汇编语言、标示语言(例如HTML、XML)等。通常,所有上述术语意在涵盖为实现给定目的而按序列执行的任何一系列逻辑步骤,这是任何计算机可执行应用程序的标志。除非另外特别指出,应当了解,在本发明的整个描述中,诸如“处理”、“运算”、“计算”、“确定”、“显示”、“接收”、“传输”等术语的使用是指适当编程的计算机系统(诸如计算机系统500)或类似的电子计算装置的动作和过程,所述系统或装置操纵其寄存器和存储器内的表示为物理(电子)量的数据,并将所述数据转变成其存储器或寄存器或者其他此类信息存储、传输或显示装置内的类似地表示为物理量的其他数据。

尽管已经示出和描述了优选实施例,但是应当理解,并不旨在通过这种公开来限制本发明,而是旨在覆盖落入本发明的精神和范围内的所有修改和替代构造。

相关技术
  • 基于多相机卷积器系统的三维环境建模
  • 基于光场单相机的非合作航天器三维位姿测量系统
技术分类

06120112145775