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

单程对象扫描

文献发布时间:2023-06-19 12:21:13


单程对象扫描

本申请要求2020年2月26日提交的美国临时申请序列号62/981,607和2021年2月9日提交的美国非临时申请序列号17/171,434的权益,这些申请的全文以引用方式并入本文。

技术领域

本公开整体涉及生成物理环境的三维几何表示,并且具体地涉及基于在物理环境中检测到的深度信息生成几何表示的系统、方法和设备。

背景技术

物理环境和其中的对象已通过生成三维(3D)网格、利用3D点云以及通过其他方式来建模(例如,重建)。这些重建的网格表示物理环境的地板、墙壁和其他对象的3D表面点和其他表面特征。此类重建可基于物理环境的图像和深度测量(例如,使用RGB相机和深度传感器)来生成。

使用移动设备用于基于物理环境的图像和在物理环境中检测到的深度信息来生成3D模型的现有技术可能是不准确且低效的,例如,基于用户在房间内走动时捕获照片或视频或其他传感器数据。此外,现有技术可能无法在实时环境中提供足够准确且高效的对象检测。

发明内容

本文所公开的各种具体实施包括使用所选择的图像数据的子集和深度数据生成三维(3D)模型的设备、系统和方法。该3D模型基于物理环境的图像、在物理环境中检测到的深度信息以及用于跟踪设备/深度相机的特定位置和取向的其他信息来生成。出于各种原因,可能期望排除包括基于运动的缺陷和/或仅包括所选择的一组特定图像(例如,关键帧)的图像。这样做可提供对象的更有用、更现实或物理上更有意义的模型。

本公开的一些具体实施涉及基于所选择的图像的子集和与所选择的子集的每个图像对应的深度数据来生成对象的3D模型的示例性方法。该示例性方法最初涉及:在设备于包括对象的物理环境中移动期间采集传感器数据,该传感器数据包括经由该设备上的相机捕获的物理环境的图像。例如,用户在物理环境中围绕对象(例如,桌子上方的鞋)移动设备(例如,移动设备)以从不同侧面捕获该对象的图像。在一些具体实施中,该传感器数据可包括深度数据和运动传感器数据。在一些具体实施中,在该设备的移动期间,用户界面可显示所捕获的包括对象的环境并提供反馈机制。例如,手电筒型高光可显示已针对特定对象捕获的区域(例如,针对所捕获的像素显示较浅阴影区域,以及针对尚未充分捕获以用于重建的区域显示较深阴影区域)。在一些具体实施中,该用户界面可显示该对象的初步3D模型。例如,当用户正在捕获实时视频并且当实时视频正在主观看屏幕上流式传输时,另一个窗口的画中画显示可以在实时预览屏幕中向用户显示3D模型重建。

该示例性方法还涉及:基于基于设备运动和深度数据相对于基于运动的缺陷评估图像来选择图像的子集(例如,选择要用作“关键帧”的图像)。在一些具体实施中,评估基于运动的缺陷涉及估计特定像素的投影速度。例如,可分析与所识别的对象、3D边界框、相机视图的中心等对应的像素以得出每帧处的基于运动的缺陷。在一些具体实施中,在给定相机的当前运动和像素距相机的距离的情况下,可通过确定像素速度来确定投影速度。除此之外或另选地,在一些具体实施中,可另外基于已从期望距离范围内和/或角度范围内捕获图像来选择图像。除此之外或另选地,在一些具体实施中,可选择图像以确保图像包括对象或特定对象特征(例如,对象的边缘、对象与相机的最接近点、公认的标记诸如品牌名称和/或符号等)。在一些具体实施中,可基于所选择的图像子集在设备的移动期间显示画中画预览。

该示例性方法还涉及:基于所选择的图像子集和与所选择的子集的每个图像对应的深度数据来生成对象的3D模型。例如,3D模型可为3D网格表示或3D点云。在一些具体实施中,3D模型数据可以是使用具有相关联语义标签的3D点云来表示3D环境中的表面的3D表示。在一些具体实施中,3D模型数据是使用基于在所生成环境中检测到的深度信息的网格化算法的3D重建网格,该深度信息被整合(例如,融合)以重建物理环境。网格化算法(例如,双行进立方体网格化算法、泊松网格化算法、四面体网格化算法等)可用于生成表示房间和/或房间内的对象(例如,家具、桌子上的键盘、椅子等)的网格。

在一些具体实施中,该示例性方法还涉及:显示所捕获的物理环境,并且提供反馈机制,该反馈机制包括在显示的所捕获的物理环境中突出显示所述对象上已被捕获的区域。例如,手电筒型高光可用于在用户设备的显示器上向用户显示对象的已被准确扫描的一个或多个部分,并且在较暗阴影区域中显示需要通过采集附加图像来进一步扫描的对象。

在一些具体实施中,该示例性方法还涉及评估对象的像素的投影速度,该投影速度取决于设备运动和对应对象像素的距离两者。在一些具体实施中,基于基于设备运动和深度数据相对于基于运动的缺陷评估图像来选择该图像的子集(例如,“关键帧”)包括确定与该对象相关联的特定像素的投影速度。在一些具体实施中,该特定像素可对应于所识别的对象、所生成的与对象相关联的3D边界框、相机视图的中心等。在一些具体实施中,确定与对象相关联的像素的投影速度包括基于相机的当前运动和像素距该相机的距离来确定该像素的速度。

在一些具体实施中,该示例性方法还涉及基于距离范围、角度范围或它们是否包括对象或对象的特定特征来选择关键帧(例如,图像的子集)。例如,在一些具体实施中,选择该图像的子集还包括确定由该相机捕获的图像中的哪些图像在距离范围内,以及更新该图像的子集以不包括由该相机捕获的在该距离范围之外的图像。除此之外或另选地,在一些具体实施中,选择该图像的子集还包括确定由该相机捕获的图像中的哪些图像在角度范围内,以及更新该图像的子集以不包括由该相机捕获的在该角度范围之外的图像。除此之外或另选地,在一些具体实施中,基于基于设备运动和深度数据相对于基于运动的缺陷评估所述图像来选择该图像的子集包括:选择包括该对象或该对象的特定特征的该图像的子集。

在一些具体实施中,示例性方法还涉及基于用于检测相关性的相关性标准来选择关键帧(例如,图像的子集),以确保深度测量值在图像的中心(例如,对应于目标标线)并且在距对象或对应的初步对象模型(例如,3D网格、3D点云、3D边界框等)的最小距离内。例如,在一些具体实施中,基于基于设备运动和深度数据相对于基于运动的缺陷评估图像来选择图像的子集包括确定与对象对应的初步对象模型,确定该初步对象模型的边缘,确定由相机捕获的图像中的哪些图像包括该相机的视图中心到初步对象模型的边缘的、在对象模型距离阈值内的距离,并且更新图像的子集以不包括由相机捕获的在该对象模型距离阈值之外的图像。选择在图像中心范围内的关键帧的相关性标准维持(例如,保持)彼此靠近的图像(例如,连续性标准)。对感兴趣区域(ROI)的捕获的突然移动或突然移位立即使得前述标准不成立,从而避免拍摄不相关的图片。

在一些具体实施中,该设备包括用户界面,并且在该设备的移动期间,该用户界面显示所捕获的包括该对象(例如,实时视频流)的物理环境,以及基于该传感器数据的该对象的初步3D模型。在一些具体实施中,该初步3D模型基于所选择的图像的子集在该设备的移动期间生成,并且该初步3D模型与经由该设备上的相机所捕获的该物理环境的图像同时显示(例如,叠加在实时视频流上的画中画)。

在一些具体实施中,所生成的对象的3D模型基于生成该对象的网格、3D点云或体素表示。在一些具体实施中,该传感器数据包括物理环境的深度数据(例如,RGB-D)和光强度图像数据(例如,RGB)。

根据一些具体实施,一种设备包括一个或多个处理器、非暂态存储器以及一个或多个程序;该一个或多个程序被存储在非暂态存储器中并且被配置为由一个或多个处理器执行,并且该一个或多个程序包括用于执行或使得执行本文所述方法中的任一种的指令。根据一些具体实施,一种非暂态计算机可读存储介质中存储有指令,这些指令在由设备的一个或多个处理器执行时使该设备执行或使执行本文所述方法中的任一种。根据一些具体实施,一种设备包括:一个或多个处理器、非暂态存储器以及用于执行或使执行本文所述方法中的任一种的装置。

附图说明

因此,本公开可被本领域的普通技术人员理解,更详细的描述可参考一些例示性具体实施的方面,其中一些具体实施在附图中示出。

图1是根据一些具体实施的示例性操作环境的框图。

图2是根据一些具体实施的示例性服务器的框图。

图3是根据一些具体实施的示例性设备的框图。

图4是根据一些具体实施的基于图像子集和与子集的每个图像对应的深度数据生成对象的三维(3D)模型的示例性方法的流程图表示。

图5是示出根据一些具体实施的相机相对于物理环境中的对象的示例性视场的框图。

图6A至图6D是示出根据一些具体实施的相机相对于物理环境中的对象的示例性距离的框图。

图7是根据一些具体实施的基于图像子集和与子集信息的每个图像对应的深度数据的3D模型的示例性生成的系统流程图。

图8是根据一些具体实施的基于图像子集和与子集信息的每个图像对应的深度数据的3D模型的实时预览的示例性生成的系统流程图。

根据通常的做法,附图中示出的各种特征部可能未按比例绘制。因此,为了清楚起见,可以任意地扩展或减小各种特征部的尺寸。另外,一些附图可能未描绘给定的系统、方法或设备的所有部件。最后,在整个说明书和附图中,类似的附图标号可用于表示类似的特征部。

具体实施方式

描述了许多细节以便提供对附图中所示的示例具体实施的透彻理解。然而,附图仅示出了本公开的一些示例方面,因此不应被视为限制。本领域的普通技术人员将理解,其他有效方面和/或变体不包括本文所述的所有具体细节。此外,没有详尽地描述众所周知的系统、方法、部件、设备和电路,以免模糊本文所述的示例性具体实施的更多相关方面。

图1是根据一些具体实施的示例性操作环境100的框图。在该示例中,示例性操作环境100示出了包括对象130、桌子140、椅子142的示例性物理环境105。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,操作环境100包括服务器110和设备120。在示例性具体实施中,操作环境100不包括服务器110,并且本文所述的方法在设备120上执行。

在一些具体实施中,服务器110被配置为管理和协调用户体验。在一些具体实施中,服务器110包括软件、固件和/或硬件的合适组合。下文参考图2更详细地描述服务器110。在一些具体实施中,服务器110是相对于物理环境105位于本地或远程位置的计算设备。在一个示例中,服务器110是位于物理环境105内的本地服务器。在另一个示例中,服务器110是位于物理环境105之外的远程服务器(例如,云服务器、中央服务器等)。在一些具体实施中,服务器110经由一个或多个有线或无线通信信道(例如,蓝牙、IEEE 802.11x、IEEE802.16x、IEEE 802.3x等)与设备120通信地耦接。

在一些具体实施中,设备120被配置为向用户呈现环境。在一些具体实施中,设备120包括软件、固件和/或硬件的合适组合。下文参考图3更详细地描述设备120。在一些具体实施中,服务器110的功能由设备120提供和/或与该设备结合。

在一些具体实施中,设备120是被配置为向用户呈现内容的手持式电子设备(例如,智能电话或平板电脑)。在一些具体实施中,用户102将设备120穿戴在他/她的头部上。设备120可包括被提供用于显示内容的一个或多个显示器。例如,设备120可包围用户102的视场。在一些具体实施中,用被配置为呈现内容的腔室、围场或房间替代设备120,用户102在其中不穿戴或持有该设备120。

图2是根据一些具体实施的服务器110的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,服务器110包括一个或多个处理单元202(例如,微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、图形处理单元(GPU)、中央处理单元(CPU)、处理内核等)、一个或多个输入/输出(I/O)设备206、一个或多个通信接口208(例如,通用串行总线(USB)、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE 802.11x、IEEE 802.16x、全球移动通信系统(GSM)、码分多址(CDMA)、时分多址(TDMA)、全球定位系统(GPS)、红外(IR)、蓝牙、ZIGBEE和/或类似类型的接口)、一个或多个编程(例如,I/O)接口210、存储器220以及用于互连这些部件和各种其他部件的一条或多条通信总线204。

在一些具体实施中,所述一条或多条通信总线204包括互连系统部件和控制系统部件之间的通信的电路。在一些具体实施中,一个或多个I/O设备206包括键盘、鼠标、触控板、操纵杆、一个或多个麦克风、一个或多个扬声器、一个或多个图像传感器、一个或多个显示器等中的至少一种。

存储器220包括高速随机存取存储器,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、双倍数据速率随机存取存储器(DDR RAM)或者其他随机存取固态存储器设备。在一些具体实施中,存储器220包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器220任选地包括远离所述一个或多个处理单元202定位的一个或多个存储设备。存储器220包括非暂态计算机可读存储介质。在一些具体实施中,存储器220或存储器220的非暂态计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集,包括可选的操作系统230以及一个或多个应用程序240。

操作系统230包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些具体实施中,应用程序240被配置为管理和协调一个或多个用户的一个或多个体验(例如,一个或多个用户的单个体验,或一个或多个用户的相应群组的多个体验)。

应用程序240包括图像评估单元242和3D表示单元244。图像评估单元242和3D表示单元244可被组合成单个应用程序或单元,或者被分成一个或多个附加的应用程序或单元。

图像评估单元242被配置有能够由处理器执行以进行如下操作的指令,这些操作包括:使用本文所公开的一种或多种技术获得传感器数据(例如,图像数据诸如光强度数据、深度数据、相机位置信息等),并基于基于设备运动和深度数据相对于基于运动的缺陷评估图像来确定和选择传感器数据的子集。例如,图像评估单元242分析来自光强度相机的RGB图像以及来自深度相机(例如,飞行时间传感器)的稀疏深度图和其他物理环境信息源(例如,来自相机的SLAM系统、VIO等的相机定位信息),以选择用于3D重建的传感器信息的子集。

3D表示单元244被配置有能够由处理器执行以进行如下操作的指令,该操作包括:使用本文所公开的一种或多种技术获得所选择的信息子集并生成3D模型。例如,3D表示单元244从图像评估单元242获得传感器信息的子集,获得分割数据(例如,RGB-S数据)、其他物理环境信息源(例如,相机定位信息),并且生成3D模型(例如,3D网格表示、具有相关联语义标签的3D点云等)。

尽管这些元件被示出为驻留在单个设备(例如,服务器110)上,但应当理解,在其他具体实施中,元件的任何组合可位于单独的计算设备中。此外,图2更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图2中单独示出的一些功能模块可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。

图3是根据一些具体实施的设备120的示例的框图。尽管示出了一些具体特征,但本领域的技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,在一些具体实施中,设备120包括一个或多个处理单元302(例如,微处理器、ASIC、FPGA、GPU、CPU、处理核心等)、一个或多个输入/输出(I/O)设备和传感器306、一个或多个通信接口308(例如,USB、FIREWIRE、THUNDERBOLT、IEEE 802.3x、IEEE802.11x、IEEE 802.16x、GSM、CDMA、TDMA、GPS、IR、BLUETOOTH、ZIGBEE、SPI、I2C和/或相似类型的接口)、一个或多个编程(例如,I/O)接口310、一个或多个AR/VR显示器312、一个或多个面向内部和/或面向外部的图像传感器314、存储器320以及用于互连这些部件和各种其他部件的一条或多条通信总线304。

在一些具体实施中,一条或多条通信总线304包括互连和控制系统部件之间的通信的电路。在一些具体实施中,该一个或多个I/O设备和传感器306包括以下中的至少一者:惯性测量单元(IMU)、加速度计、磁力计、陀螺仪、温度计、一个或多个生理传感器(例如,血压监测仪、心率监测仪、血氧传感器、血糖传感器等)、一个或多个传声器、一个或多个扬声器、触觉引擎、一个或多个深度传感器(例如,结构光、飞行时间等)等。

在一些具体实施中,一个或多个显示器312被配置为向用户呈现体验。在一些具体实施中,一个或多个显示器312对应于全息、数字光处理(DLP)、液晶显示器(LCD)、硅上液晶(LCoS)、有机发光场效应晶体管(OLET)、有机发光二极管(OLED)、表面传导电子发射器显示器(SED)、场发射显示器(FED)、量子点发光二极管(QD-LED)、微机电系统(MEMS)和/或相似显示器类型。在一些具体实施中,一个或多个显示器312对应于衍射、反射、偏振、全息等波导显示器。例如,设备120包括单个显示器。又如,设备120包括针对用户的每只眼睛的显示器。

在一些具体实施中,该一个或多个图像传感器系统314被配置为获取对应于物理环境105的至少一部分的图像数据。例如,该一个或多个图像传感器系统314包括一个或多个RGB相机(例如,具有互补金属氧化物半导体(CMOS)图像传感器或电荷耦合器件(CCD)图像传感器)、单色相机、红外相机、基于事件的相机等。在各种具体实施中,该一个或多个图像传感器系统314还包括发射光的照明源,诸如闪光灯。在各种具体实施中,该一个或多个图像传感器系统314还包括相机上图像信号处理器(ISP),该相机上图像信号处理器被配置为对图像数据执行多个处理操作,该多个处理操作包括本文所述的过程和技术中的至少一部分。

存储器320包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备。在一些具体实施中,存储器320包括非易失性存储器,诸如一个或多个磁盘存储设备、光盘存储设备、闪存存储器设备或其他非易失性固态存储设备。存储器320任选地包括远离所述一个或多个处理单元302定位的一个或多个存储设备。存储器320包括非暂态计算机可读存储介质。在一些具体实施中,存储器320或存储器320的非暂态计算机可读存储介质存储以下程序、模块和数据结构,或它们的子集,包括可选的操作系统330以及一个或多个应用程序340。

操作系统330包括用于处理各种基础系统服务和用于执行硬件相关任务的过程。在一些具体实施中,应用程序340被配置为管理和协调一个或多个用户的一个或多个体验(例如,一个或多个用户的单个体验,或一个或多个用户的相应群组的多个体验)。

应用程序340包括图像评估单元342和3D表示单元344。图像评估单元342和3D表示单元344可被组合成单个应用程序或单元,或者被分成一个或多个附加的应用程序或单元。

图像评估单元342被配置有能够由处理器执行以进行如下操作的指令,这些操作包括:使用本文所公开的一种或多种技术获得传感器数据(例如,图像数据诸如光强度数据、深度数据、相机位置信息等),并基于基于设备运动和深度数据相对于基于运动的缺陷评估图像来确定和选择传感器数据的子集。例如,图像评估单元342分析来自光强度相机的RGB图像以及来自深度相机(例如,飞行时间传感器)的稀疏深度图和其他物理环境信息源(例如,来自相机的SLAM系统、VIO等的相机定位信息),以选择用于3D重建的传感器信息的子集。

3D表示单元344被配置有能够由处理器执行以进行如下操作的指令,该操作包括使用本文所公开的一种或多种技术获得所选择的信息子集并生成3D模型。例如,3D表示单元344从图像评估单元342获得传感器信息的子集,获得分割数据(例如,RGB-S数据)、其他物理环境信息源(例如,相机定位信息),并且生成3D模型(例如,3D网格表示、具有相关联语义标签的3D点云等)。

尽管这些元件被示出为驻留在单个设备(例如,设备120)上,但应当理解,在其他具体实施中,元件的任何组合可位于单独的计算设备中。此外,图3更多地用作存在于特定具体实施中的各种特征部的功能描述,与本文所述的具体实施的结构示意图不同。如本领域的普通技术人员将认识到的,单独显示的项目可以组合,并且一些项目可以分开。例如,图3中单独示出的一些功能模块(例如,应用程序340)可以在单个模块中实现,并且单个功能块的各种功能可在各种具体实施中通过一个或多个功能块来实现。模块的实际数量和特定功能的划分以及如何在其中分配特征将根据具体实施而变化,并且在一些具体实施中,部分地取决于为特定实施方案选择的硬件、软件和/或固件的特定组合。

图4为根据一些具体实施的使用所选择的图像数据的子集和深度数据生成3D模型的示例性方法400的流程图表示。在一些具体实施中,方法400由设备(例如,图1至图3的服务器110或设备120)执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。方法400可以在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上执行,诸如头戴式显示器(HMD)。在一些具体实施中,方法400由处理逻辑部件(包括硬件、固件、软件或其组合)执行。在一些具体实施中,方法400由执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器执行。参考图5至图6示出了方法400的3D模型创建过程。

在框402处,方法400在设备于包括对象的物理环境中移动期间采集传感器数据,其中该传感器数据包括经由设备上的相机(例如,设备120的图像传感器系统314)捕获的物理环境的图像。例如,用户在房间内走动时捕获视频以从多个视角捕获该对象的不同部分的图像。在设备的移动期间,用户界面可显示所捕获的包括该对象的环境并提供反馈,诸如显示已被捕获的区域的手电筒型高光。在一些具体实施中,用户界面可显示该对象的初步3D模型。

传感器数据可包括深度数据。深度数据可包括来自视点的像素深度值以及传感器位置和取向数据。在一些具体实施中,使用一个或多个深度相机获取深度数据。例如,该一个或多个深度相机可基于结构光(SL)、无源立体(PS)、有源立体(AS)、飞行时间(ToF)等采集深度。可以应用各种技术来采集深度图像数据以分配图像的每个部分(例如,在像素级)。例如,体素数据(例如,3D网格上的光栅图形,具有长度、宽度和深度的值)还可包含多个标量值,诸如不透明度、颜色和密度。在一些具体实施中,从传感器或图像内容的3D模型获取深度数据。图像的一些或所有内容可基于真实环境,例如描绘设备120周围的物理环境105。图像传感器可捕获物理环境105的图像以包括在关于物理环境105的图像和深度信息中。在一些具体实施中,设备120上的深度传感器确定基于由设备120上的图像传感器捕获的图像所确定的体素的深度值。

在框404处,方法400基于基于设备运动和深度数据相对于基于运动的缺陷评估图像来选择图像的子集(例如,选择要用作“关键帧”的图像)。例如,图像评估单元(例如,图2的图像评估单元242和/或图3的图像评估单元342)通过估计特定像素(例如,与所识别对象、3D边界框、相机视图的中心等对应的像素)的投影速度来评估基于运动的缺陷。在一些具体实施中,评估基于运动的缺陷涉及估计特定像素的投影速度。例如,可评估与所识别的对象、3D边界框、相机视图的中心等对应的像素以得出每帧处或帧的子集处的基于运动的缺陷。在一些具体实施中,在给定相机的当前运动和像素距相机的距离的情况下,可通过确定像素速度来确定投影速度,如参考图6A至图6D进一步说明。

除此之外或另选地,在一些具体实施中,可另外基于已从期望距离范围内和/或角度范围内捕获图像来选择图像。例如,对象表面相对于相机的视场中心(例如,如相机的标线所指出的)朝向相机的相对角度。本文所述的用于角度评估的方法评估了相机的中心区域中掠射角(例如,倾斜超过60度的表面)的存在。如果表面角度低于某个角度阈值,则图片可被认为是相关的(例如,被选择为关键帧图像),因为掠射角图片不适用于重建。例如,鉴于相机与对象之间的表面倾斜度为60度或更大的掠射角标准,如果采样点距所捕获的几何体的边界小于10cm(对象边缘距离阈值),则它们被认为是相关的。

除此之外或另选地,在一些具体实施中,可选择图像以确保图像包括对象或特定对象特征(例如,对象的边缘、对象与相机的最接近点、公认的标记诸如品牌名称和/或符号等)。在一些具体实施中,可基于所选择的图像子集在设备的移动期间显示画中画预览。

在一些具体实施中,示例性方法还涉及基于用于检测相关性的相关性标准来选择关键帧(例如,图像的子集),以确保深度测量值在图像的中心(例如,对应于目标标线)并且在距对象或对应的初步对象模型(例如,3D网格、3D点云、3D边界框等)的最小距离内。例如,在一些具体实施中,基于基于设备运动和深度数据相对于基于运动的缺陷评估图像来选择图像的子集包括确定与对象对应的初步对象模型,确定该初步对象模型的边缘,确定由相机捕获的图像中的哪些图像包括该相机的视图中心到初步对象模型的边缘的、在对象模型距离阈值内的距离,并且更新图像的子集以不包括由相机捕获的在该对象模型距离阈值之外的图像。选择在图像中心范围内的关键帧的相关性标准维持(例如,保持)彼此靠近的图像(例如,连续性标准)。对感兴趣区域(ROI)的捕获的突然移动或突然移位立即使得前述标准不成立,从而避免拍摄不相关的图片。

在框406处,方法400基于所选择的图像子集和与所选择的子集的每个图像对应的深度数据来生成对象的3D模型。例如,3D模型可为3D网格表示或3D点云。在一些具体实施中,3D模型数据可以是使用具有相关联语义标签的3D点云来表示3D环境中的表面的3D表示。在一些具体实施中,3D模型数据是使用基于在物理环境中检测到的深度信息的网格化算法的3D重建网格,该深度信息被整合(例如,融合)以重建物理环境。网格化算法(例如,双行进立方体网格化算法、泊松网格化算法、四面体网格化算法等)可用于生成表示房间(例如,物理环境105)和/或房间内的对象(例如,对象130、桌子140、椅子142等)的网格。在一些具体实施中,对于使用网格的3D重建,为了有效地减少在重建过程中使用的存储器的量,使用了体素散列方法,其中3D空间被分成体素块,由散列表使用其3D位置作为键来引用。体素块仅围绕对象表面构造,从而释放原本将用于存储空余空间的存储器。体素散列方法也比当时的竞争方法(诸如基于八叉树的方法)更快。此外,它支持GPU和CPU之间的数据流,在GPU中,存储器通常是有限的,在CPU中,存储器更丰富。

在使用中,对于过程400,用户可使用设备(例如,智能电话诸如设备120)扫描房间中的对象,并且本文所述的过程将捕获传感器数据(例如,图像数据诸如光强度数据、深度数据、相机位置信息等);相对于基于运动的缺陷评估图像;基于评估来选择传感器数据的子集;以及在对象正被用户扫描时提供该对象的3D表示。在一些具体实施中,3D表示可在实时相机馈送期间覆盖的用户设备上自动显示和更新。在一些具体实施中,可在扫描识别出多于一个对象的物理环境之后的某种类型的用户交互之后提供3D表示。例如,可向用户显示所识别的对象的选项,并且用户可选择或点击用户想要包括在3D表示中的特定对象,然后3D表示将与所选择的对象一起显示。因此,如下文参考图5至图6所示和所述,图像评估单元(例如,图2的图像评估单元242,和/或图3的图像评估单元342)识别要由3D表示单元(例如,图2的3D表示单元244,和/或图3的3D表示单元344)利用的图像的子集。

图5是示出根据一些具体实施的相机(例如,设备120的图像传感器系统314)相对于物理环境中的对象(例如,对象130)的示例性视场的示例性操作环境500的框图。在该示例中,示例性操作环境500示出了包括来自图1的物理环境105的设备510、对象130和桌子140的环境。设备510被示出处于四个不同的相机视角:具有视场512a的设备510a、具有视场512b的设备510b、具有视场512c的设备510c和具有视场512d的设备510d。尽管示出了相关特征,但本领域的普通技术人员将从本公开中认识到,为简洁起见并且为了不模糊本文所公开的示例性具体实施的更多相关方面,未示出各种其他特征。为此,作为非限制性示例,操作环境500包括设备510。

在一些具体实施中,设备510可包括一个或多个深度传感器(例如,结构光、飞行时间等)。如图5所示,设备510朝向对象130成角度倾斜。对象130被示出为具有两个参考体素(例如,参考像素)520和522。参考体素520是对象上相对于设备510a的视场512a最近的体素,并且参考体素522是进一步远离设备510a的视场512a的附加体素。对象130另外被示出为具有中心参考体素(例如,参考像素)525,该中心参考体素525可由本文所述的方法用作要用于每个相机视图的对象的中心的估计。参考体素520、522和525仅为了进行示意性的说明。如本文所讨论的,确定不同相机视图之间的体素的投影速度可以与对象130直接相关联,如图所示,或者与跟该对象相关联的3D边界框、被确定为对象的前向表面的中心的特定体素、相机的视场的中心等相关联。如图所示,用户正在以不同的相机视角采集对象130周围的传感器数据。在一些具体实施中,用户不断地采集图像数据作为实时视频,因此,当用户将设备510从视场512a移动到视场512b时,可以捕获来自传感器数据的多个图像(例如,实时视频馈送)。在一些具体实施中,在给定相机的当前运动和像素距相机的距离的情况下,可通过确定图像帧之间的像素速度来确定投影速度。分别参考图6A至图6D进一步示出了视场512a至512d中的每个视场。

图6A至图6D是示出根据一些具体实施的由图5中的设备510(例如,设备510a-510d)捕获的示例性视场(视场512a-512d)的框图。具体地,图6A是图5的设备510a以及分别到参考体素520和522的相关联距离(测量值D1a 612a和测量值D2a 614a)的框图。图6B是图5的设备510b以及分别到参考体素520和522的相关联距离(测量值D1b 612b和测量值D2b614b)的框图。图6C是图5的设备510c以及分别到参考体素520和522的相关联的距离(测量值D1c 612c和测量值D2c 614c)的框图。图6D是图5的设备510d以及分别到参考体素520和522的相关联的距离(测量值D1d 612d和测量值D2d 614d)的框图。

在一些具体实施中,在给定相机的当前运动和像素距相机的距离的情况下,可通过确定图像帧之间的像素速度来确定投影速度。测量数据(例如,测量值D1a 612a)是在第一时间从设备510a的相机中心到参考体素520的示例性距离,并且测量值D1b 612b是在第二时间从设备510a的相机中心到参考体素520的示例性距离测量值。因此,在第一时间的图6A与在第二时间的图6B的两个图像帧之间的相机移动速度可用于确定像素相对于相机移动的估计投影速度,以确定该速度是否将在图像中产生基于运动的缺陷,从而不包括在图像数据的子集中。在一些具体实施中,拍摄图像的期望相机重叠约为设备屏幕(例如,图像尺寸宽度或高度中的最小者)的百分之二十。例如,视图尺寸为3176×4224并且FOV为约67度的设备相机,视角变化为约7.5度。对于捕获可接受的投影速度取决于相机曝光时间和响应。在示例性具体实施中,如果投影速度低于投影速度阈值,则可认为捕获没有模糊。例如,对于30Hz的前述相机(例如,每秒捕获30帧),每秒屏幕的三分之一(例如,投影速度阈值)可被认为是可接受的投影速度。30Hz的前述相机转换为约900像素/秒或30像素/帧。在一些具体实施中,高速相机(例如,60Hz、120Hz等)可具有更高的容限。

在一些具体实施中,测量数据(例如,测量值D1a 612a)是从设备510a的相机中心到参考体素520的示例性距离,并且测量值D2a 614a是从设备510a的相机中心到参考体素522的示例性距离测量值。然后图像评估单元可利用距离测量值来确定要建模的对象是否在图像中的视距范围内(例如,在3米的距离阈值内等),以便将那些特定图像包括在子集数据中。在一些具体实施中,测量数据可包括在两个相应测量值(例如,测量值D1a 612a和测量值D2a 614a)之间创建的角度,并且数据的子集可限于包括高于几度(例如,五度)的角度的数据,以有助于图像评估单元确定该图像包括更高质量的图像。测量数据之间的小角度可意味着该对象不是相机510a的居中视图。测量数据可以基于深度数据和参考体素相对于设备520的3D坐标。如本文所讨论的,测量数据用于确定传感器数据是否包括基于运动的缺陷以及是否将来自每个视场的传感器数据包括在所选择的图像子集中。测量数据可用于确定从一个图像帧到下一个图像帧的像素速度,或者用于确定测量数据在期望的距离范围内,或者相机角度是否在期望的角度范围内。如本文所述,还可以选择图像以确保图像包括对象或特定对象特征。

除此之外或另选地,在一些具体实施中,可另外基于已从期望距离范围内和/或角度范围内捕获图像来选择图像。例如,对象表面相对于相机的视场中心(例如,如相机的标线所指出的)朝向相机的相对角度。本文所述的用于角度评估的方法评估了相机的中心区域中掠射角(例如,倾斜超过60度的表面)的存在。如果表面角度低于某个角度阈值,则图片可被认为是相关的(例如,被选择为关键帧图像),因为掠射角图片不适用于重建。例如,基于相机与对象之间的表面倾斜度为60度或更大的掠射角标准,如果采样点距所捕获的几何体的边界小于10cm(对象边缘距离阈值),则它们被认为是相关的。

图7是示例性环境700的系统流程图,其中系统可以基于所选择的图像子集和与该子集的每个图像对应的深度数据生成3D模型数据。在一些具体实施中,示例性环境700的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。示例性环境700的系统流程可显示在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上,诸如头戴式显示器(HMD)。在一些具体实施中,示例性环境700的系统流程在处理逻辑部件(包括硬件、固件、软件或其组合)上执行。在一些具体实施中,示例性环境700的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。

示例性环境700的系统流程采集光强度图像数据703(例如,来自光强度相机702的实时相机馈送诸如RGB)、深度图像数据705(例如,来自深度相机704的深度图像数据诸如RGB-D)以及物理环境(例如,图1的物理环境105)的其他物理环境信息源(例如,相机定位信息707,诸如来自位置传感器706的位置和取向数据),相对于基于运动的缺陷评估图像并且基于评估选择传感器数据的子集(例如,图像评估单元720),并且根据子集传感器数据生成3D模型数据742(例如,3D表示单元740)。

在一个示例性具体实施中,环境700包括采集或获取物理环境的数据(例如,来自图像源的图像数据)的图像合成流水线。示例性环境700是采集多个图像帧的图像传感器数据(例如,光强度数据、深度数据和位置信息)的示例。图像源可包括采集物理环境的深度数据705的深度相机704、采集光强度图像数据703(例如,RGB图像帧序列)的光强度相机702(例如,RGB相机),以及用于采集定位信息的位置传感器。对于定位信息707,一些具体实施包括视觉惯性测距(VIO)系统,该VIO系统使用顺序相机图像(例如,光强度数据703)来确定等效测距信息以估计行进距离。另选地,本公开的一些具体实施可包括SLAM系统(例如,位置传感器706)。该SLAM系统可包括独立于GPS并且提供实时同时定位与建图的多维(例如,3D)激光扫描和范围测量系统。该SLAM系统可生成并管理由来自环境中对象的激光扫描的反射而产生的非常准确的点云数据。随着时间推移,准确地跟踪点云中的任何点的移动,使得SLAM系统可使用点云中的点作为位置的参考点,在其行进通过环境时保持对其位置和取向的精确理解。

在一个示例性具体实施中,环境700包括图像评估单元720,该图像评估单元被配置有能够由处理器执行的指令以使用本文所公开的一种或多种技术获得传感器数据(例如,图像数据诸如光强度数据、深度数据、相机位置信息等)并选择传感器数据的子集(例如,子集数据722)。在一些具体实施中,图像评估单元720包括缺陷评估单元730,该缺陷评估单元被配置有能够由处理器执行的指令以基于设备运动和深度数据相对于基于运动的缺陷分析图像信息。例如,图像评估单元740的缺陷评估单元730(例如,图2的图像评估单元242和/或图3的图像评估单元342)分析来自光强度相机702的RGB图像以及来自深度相机704(例如,飞行时间传感器)的稀疏深度图和其他物理环境信息源(例如,来自相机的SLAM系统、VIO等诸如位置传感器706的相机定位信息707),以选择用于3D重建的传感器信息的子集。

图像评估单元720基于缺陷评估单元730基于设备运动和深度数据相对于基于运动的缺陷评估图像而从传感器710选择传感器数据的子集(例如,选择要用作“关键帧”的图像)。在一些具体实施中,评估基于运动的缺陷涉及估计特定像素的投影速度,如图6A至图6D所示。例如,可分析与所识别的对象、3D边界框、相机视图的中心等对应的像素以得出每帧处的基于运动的缺陷。在一些具体实施中,在给定相机的当前运动和后续帧中的像素距相机的距离的情况下,可通过确定像素速度来确定投影速度。

除此之外或另选地,在一些具体实施中,可基于已从期望距离范围内和/或期望角度范围内捕获图像来选择用于子集数据的图像。例如,当测量数据(例如,图6A的测量值D1a612a等)在距离阈值内时,子集数据722可被配置为限于包括图像数据。具体地,对于期望的距离范围示例,当测量数据(例如,测量值D1a 612a,从相机510a到对象130的距离)小于或等于三米时,子集数据可被配置为仅包括对象(例如,对象130)的图像。对于期望的角度范围示例,当同一视场中相对于两个参考体素520和522的两个测量值(例如,对象130的测量值D1a 612a和测量值D2a 614a)之间的角度大于或等于五度时,子集数据可仅包括对象(例如,对象130)的图像。换句话讲,当该角度小于五度时,两个参考体素之间没有太大间距,因此系统可以确定帧之间存在足够的重叠。例如,图像之间存在足够的差异,使得可以准确地计算出对象的表面。在小的视角差内捕获的图像被确定为具有良好的重叠但没有足够的信息来提取准确的表面数据。即使存在用于计算表面信息的高度差异,以过大视角差捕获的图像也不具有足够的重叠。例如,由于图像捕获是实时的(例如,实时视频流),差异随着时间的推移逐渐增加,从而允许某个阈值(例如,距离阈值)充当“图片触发器”(例如,用于选择那些特定关键帧的触发器)。

除此之外或另选地,在一些具体实施中,可选择图像以确保图像包括对象或特定对象特征(例如,对象的边缘、对象与相机的最接近点、公认的标记诸如品牌名称和/或符号等)。例如,图像评估单元720可分析图像信息,确定对象的特定特征,并且限制包括那些特征的图像子集,以便确保仅包括发送到3D重建单元740的子集数据722中所包括的子集中的图像。因此,将子集数据722中的数据集限制为仅包括特定对象的图像。在一些具体实施中,可基于所选择的图像子集在设备的移动期间显示画中画预览,如参考图8所示。

在一个示例性具体实施中,环境700还包括3D表示单元740,该3D表示单元被配置有能够由处理器执行以进行以下操作的指令,该操作包括使用一种或多种技术从图像评估单元720获得子集传感器数据并生成3D模型数据742。例如,3D表示单元740(例如,图2的3D表示单元244和/或图3的3D表示单元344)针对每个检测到的对象生成3D模型744a至744c(例如,针对对象130的3D边界框744a、针对桌子140的3D边界框744b和针对椅子142的3D边界框744c)。

3D模型数据可以是使用具有相关联语义标签的3D点云来表示3D环境中的表面的3D表示744a至744c。3D表示744a至744c分别被示出为针对对象130、桌子140和椅子142的3D边界框。在一些具体实施中,3D模型数据742是使用网格化算法基于在物理环境中检测到的深度信息生成的3D重建网格,该深度信息被整合(例如,融合)以重建物理环境。网格化算法(例如,双行进立方体网格化算法、泊松网格化算法、四面体网格化算法等)可用于生成表示房间(例如,物理环境105)和/或房间内的对象(例如,对象130、桌子140、椅子142等)的网格。在一些具体实施中,对于使用网格的3D重建,为了有效地减少在重建过程中使用的存储器的量,使用了体素散列方法,其中3D空间被分成体素块,由散列表使用其3D位置作为键来引用。体素块仅围绕对象表面构造,从而释放原本将用于存储空余空间的存储器。体素散列方法也比当时的竞争方法(诸如基于八叉树的方法)更快。此外,它支持GPU和CPU之间的数据流,在GPU中,存储器通常是有限的,在CPU中,存储器更丰富。

在一些具体实施中,3D表示单元包括整合单元,该整合单元被配置有能够由处理器执行以进行以下操作的指令,该操作包括使用一种或多种已知技术获得图像数据(例如,光强度数据703、深度数据705等)的子集和定位信息(例如,来自位置传感器706的相机姿态信息707)并且对该图像数据的子集进行整合(例如,融合)。例如,图像整合单元从图像源(例如,光强度相机702和深度相机704)接收深度图像数据705(例如,稀疏深度数据)的子集和强度图像数据703(例如,RGB)的子集,并且对该图像数据的子集进行整合并生成3D数据。该3D数据可包括发送到3D表示单元740的密集的3D点云(例如,对象周围的多个图像帧的不完美深度图和相机方位)。3D数据也可被体素化。

在一些具体实施中,3D表示单元包括语义分割单元,该语义分割单元被配置有能够由处理器执行以进行以下操作的指令,该操作包括:使用一种或多种已知技术来获得光强度图像数据(例如,光强度数据703)并且识别和分割墙体结构(墙、门、窗等)以及对象(例如,人、桌子、茶壶、椅子、花瓶等)。例如,该分割单元从图像源(例如,光强度相机702)接收强度图像数据703的子集,并且生成分割数据(例如,语义分割数据诸如RGB-S数据)。在一些具体实施中,分割单元使用机器学习模型,其中语义分割模型可被配置为识别图像数据的像素或体素的语义标记。在一些具体实施中,机器学习模型是神经网络(例如,人工神经网络)、决策树、支持向量机、贝叶斯网络等。

图8是根据一些具体实施的示例性环境800的系统流程图,其中系统可以基于图像的子集和与子集信息的每个图像对应的深度数据生成并显示3D模型(例如,3D点云、3D网格重建、与对象相关联的3D边界框等)的实时预览。在一些具体实施中,示例性环境800的系统流程在设备(例如,图1至图3的服务器110或设备120)上执行,诸如移动设备、台式计算机、膝上型电脑或服务器设备。示例性环境800的系统流程可显示在具有用于显示图像的屏幕和/或用于查看立体图像的屏幕的设备(例如,图1和图3的设备120)上,诸如头戴式显示器(HMD)。在一些具体实施中,示例性环境800的系统流程在处理逻辑部件(包括硬件、固件、软件或它们的组合)上执行。在一些具体实施中,示例性环境800的系统流程在执行存储在非暂态计算机可读介质(例如,存储器)中的代码的处理器上执行。

示例性环境800的系统流程采集光强度图像数据803(例如,来自光强度相机802的实时相机馈送诸如RGB)、深度图像数据805(例如,来自深度相机804的深度图像数据诸如RGB-D)以及物理环境(例如,图1的物理环境105)的其他物理环境信息源(例如,相机定位信息807,诸如来自位置传感器806的位置和取向数据),相对于基于运动的缺陷评估图像并且基于评估选择传感器数据的子集(例如,图像评估单元820),根据子集传感器数据生成3D模型预览数据,并且在生成3D模型预览数据时将其实时预览显示在设备显示器上的实时相机视图上。在一些具体实施中,示例性环境800的系统流程包括生成并显示反馈用户界面元素以帮助用户获取适当的图像。

在一个示例性具体实施中,环境800包括采集或获取物理环境的数据(例如,来自图像源的图像数据)的图像合成流水线。示例性环境800是采集多个图像帧的图像数据(例如,光强度数据和深度数据)的示例。图像源可包括采集物理环境的深度数据805的深度相机804、采集光强度图像数据803(例如,RGB图像帧序列)的光强度相机802(例如,RGB相机),以及用于采集定位信息的位置传感器。对于定位信息807,一些具体实施包括视觉惯性测距(VIO)系统,该VIO系统使用顺序相机图像(例如,光强度数据803)来确定等效测距信息以估计行进距离。另选地,本公开的一些具体实施可包括SLAM系统(例如,位置传感器806)。该SLAM系统可包括独立于GPS并且提供实时同时定位与建图的多维(例如,3D)激光扫描和范围测量系统。该SLAM系统可生成并管理由来自环境中对象的激光扫描的反射而产生的非常准确的点云数据。随着时间推移,准确地跟踪点云中的任何点的移动,使得SLAM系统可使用点云中的点作为位置的参考点,在其行进通过环境时保持对其位置和取向的精确理解。

在一个示例性具体实施中,环境800包括图像评估单元820,该图像评估单元被配置有能够由处理器执行的指令以使用本文所公开的一种或多种技术获得传感器数据(例如,图像数据诸如光强度数据、深度数据、相机位置信息等)并选择传感器数据的子集(例如,子集数据822)。在一些具体实施中,图像评估单元820包括缺陷评估单元830,该缺陷评估单元被配置有能够由处理器执行的指令以基于设备运动和深度数据相对于基于运动的缺陷分析图像信息。例如,图像评估单元840的缺陷评估单元830(例如,图2的图像评估单元242和/或图3的图像评估单元342)分析来自光强度相机802的RGB图像以及来自深度相机804(例如,飞行时间传感器)的稀疏深度图和其他物理环境信息源(例如,来自相机的SLAM系统、VIO等诸如位置传感器806的相机定位信息807),以选择用于实时预览模型的3D重建的传感器信息的子集。另外,缺陷评估单元830可被配置具有能够由处理器执行以生成实时预览单元的反馈数据的指令。随后可用于创建用户界面元素的反馈数据标记特定数据或图像集用于向用户突出显示对象的哪个(哪些)部分已被充分捕获以用于3D重建,或者标记图像的哪个(哪些)部分需要被进一步捕获。反馈元素874表示手电筒型的用户界面元素,与对象的哪个部分可能需要进一步被成像(例如,在预览显示中以较深色阴影显示)相比,该手电筒型的用户界面元素向用户突出显示对象的哪个部分已被正确捕获(例如,变得更亮)。

图像评估单元820基于缺陷评估单元830基于设备运动和深度数据相对于基于运动的缺陷评估图像而从传感器810选择传感器数据的子集(例如,选择要用作“关键帧”的图像)。在一些具体实施中,评估基于运动的缺陷涉及估计特定像素的投影速度,如图6A至图6D所示。例如,可分析与所识别的对象、3D边界框、相机视图的中心等对应的像素以得出每帧处的基于运动的缺陷。在一些具体实施中,在给定相机的当前运动和后续帧中的像素距相机的距离的情况下,可通过确定像素速度来确定投影速度。

除此之外或另选地,在一些具体实施中,可基于已从期望距离范围内和/或期望角度范围内捕获图像来选择用于子集数据的图像。例如,当测量数据(例如,图6A的测量值D1a612a等)在距离阈值内时,子集数据822可被配置为限于包括图像数据。具体地,对于期望的距离范围示例,当测量数据(例如,测量值D1a 612a,从相机510a到对象130的距离)小于或等于三米时,子集数据可被配置为仅包括对象(例如,对象130)的图像。对于期望的角度范围示例,当同一视场中相对于两个参考体素520和522的两个测量值(例如,对象130的测量值D1a 612a和测量值D2a 614a)之间的角度大于或等于五度时,子集数据可仅包括对象(例如,对象130)的图像。换句话讲,当该角度小于五度时,两个参考体素之间没有太大间距,因此相机视场的角度可能必须使对象处于该视场的外围视图中而不是在视场的中心。

除此之外或另选地,在一些具体实施中,可选择图像以确保图像包括对象或特定对象特征(例如,对象的边缘、对象与相机的最接近点、公认的标记诸如品牌名称和/或符号等)。例如,图像评估单元820可分析图像信息,确定对象的特定特征,并且限制包括那些特征的图像子集,以便确保仅包括发送到3D重建单元840的子集数据822中所包括的子集中的图像。因此,将子集数据822中的数据集限制为仅包括特定对象的图像。在一些具体实施中,可基于所选择的图像子集在设备的移动期间显示画中画预览,如参考图8所示。

在一个示例性具体实施中,环境800还包括3D表示单元840,该3D表示单元被配置有能够由处理器执行以进行以下操作的指令,该操作包括使用一种或多种技术从图像评估单元820获得子集传感器数据并生成3D预览模型数据842。例如,3D表示单元840(例如,图2的3D表示单元244和/或图3的3D表示单元344)针对每个检测到的对象(例如,对象130、桌子140和椅子142)生成3D模型预览。

3D模型预览数据可以是使用具有相关联语义标签的3D点云来表示3D环境中的表面的3D表示。3D表示可类似于图7的3D表示744a至744c,这些3D表示分别示出为针对对象130、桌子140和椅子142的3D边界框。在一些具体实施中,3D模型预览数据是使用网格化算法基于在物理环境中检测到的深度信息生成的3D重建网格,该深度信息被整合(例如,融合)以重建物理环境。网格化算法(例如,双行进立方体网格化算法、泊松网格化算法、四面体网格化算法等)可用于生成表示房间(例如,物理环境105)和/或房间内的对象(例如,对象130、桌子140、椅子142等)的网格。

另外,3D表示单元包括反馈机制单元844,该反馈机制单元从缺陷评估单元830获得反馈数据并生成反馈用户界面元素。例如,反馈元素874表示手电筒型的用户界面元素,与对象的哪个部分可能需要进一步被成像(例如,在预览显示中以较深色阴影显示)相比,该手电筒型的用户界面元素向用户突出显示对象的哪个部分已被正确捕获(例如,变得更亮)。反馈用户界面元素、实时相机馈送和3D模型预览数据从3D表示单元840发送到设备显示器860。

在示例性具体实施中,环境800还包括设备显示器860(例如,图3的显示器312),该设备显示器被配置为从3D表示单元840获得反馈用户界面元素数据、实时相机馈送和3D模型预览数据,并且在使用一种或多种技术生成3D模型时生成该3D模型的实时视图和画中画(PIP)显示。例如,设备显示器860可显示实时视图862(例如,光强度图像数据803),并且PIP显示模块870可生成并显示PIP预览872。在从图像评估单元820采集子集图像数据时,随着3D预览模型单元842不断更新3D预览模型,可迭代地更新PIP预览872。另外,PIP显示模块870可从反馈机制单元844获得反馈用户界面元素数据,并在PIP预览872中显示反馈用户界面元素。例如,PIP预览872示出了反馈用户界面元素874(例如,本文所述的手电筒高光示例)。当用户获得对象的图像时,系统确定该对象的哪些部分被有效地获得并且将它们显示为来自“手电筒”的较浅阴影区域,同时以较深阴影显示该对象的需要进一步成像的部分。反馈用户界面元素帮助用户获得需要采集以生成对象的3D模型的图像。

在一些具体实施中,图像合成流水线可包括针对扩展现实(XR)环境生成的虚拟内容(例如,放置在图1中的桌子135上的虚拟框)。在一些具体实施中,操作系统230、330包括内置XR功能,例如包括XR环境应用程序或被配置为从一个或多个应用程序240、340调用以在用户界面内显示XR环境的查看器。例如,本文所述的系统可包括XR单元,该XR单元被配置有能够由处理器执行以提供XR环境的指令,该XR环境包括对包括真实物理对象和虚拟内容的物理环境的描述。XR单元可生成虚拟深度数据(例如,虚拟内容的深度图像)和虚拟强度数据(例如,虚拟内容的光强度图像(例如,RGB))。例如,用于服务器110的应用程序240或用于设备120的应用程序340中的一者可包括XR单元,该XR单元被配置有能够由处理器执行以提供XR环境的指令,该XR环境包括对包括真实对象或虚拟对象的物理环境的描述。例如,可使用本文所公开的技术中的一种或多种技术基于真实对象和虚拟对象的存储的3D模型,基于3D空间中的对象相对于彼此的检测、跟踪和表示来定位虚拟对象。

本文阐述了许多具体细节以提供对要求保护的主题的全面理解。然而,本领域的技术人员将理解,可以在没有这些具体细节的情况下实践要求保护的主题。在其他实例中,没有详细地介绍普通技术人员已知的方法、设备或系统,以便不使要求保护的主题晦涩难懂。

除非另外特别说明,否则应当理解,在整个说明书中,利用诸如“处理”、“计算”、“计算出”、“确定”和“识别”等术语的论述是指计算设备的动作或过程,诸如一个或多个计算机或类似的电子计算设备,其操纵或转换表示为计算平台的存储器、寄存器或其他信息存储设备、传输设备或显示设备内的物理电子量或磁量的数据。

本文论述的一个或多个系统不限于任何特定的硬件架构或配置。计算设备可以包括部件的提供以一个或多个输入为条件的结果的任何合适的布置。合适的计算设备包括基于多用途微处理器的计算机系统,其访问存储的软件,该软件将计算系统从通用计算设备编程或配置为实现本发明主题的一种或多种具体实施的专用计算设备。可以使用任何合适的编程、脚本或其他类型的语言或语言的组合来在用于编程或配置计算设备的软件中实现本文包含的教导内容。

本文所公开的方法的具体实施可以在这样的计算设备的操作中执行。上述示例中呈现的框的顺序可以变化,例如,可以将框重新排序、组合和/或分成子块。某些框或过程可以并行执行。

本文中“适用于”或“被配置为”的使用意味着开放和包容性的语言,其不排除适用于或被配置为执行额外任务或步骤的设备。另外,“基于”的使用意味着开放和包容性,因为“基于”一个或多个所述条件或值的过程、步骤、计算或其他动作在实践中可以基于额外条件或超出所述的值。本文包括的标题、列表和编号仅是为了便于解释而并非旨在为限制性的。

还将理解的是,虽然术语“第一”、“第二”等可能在本文中用于描述各种元素,但是这些元素不应当被这些术语限定。这些术语只是用于将一个元件与另一元件区分开。例如,第一节点可以被称为第二节点,并且类似地,第二节点可以被称为第一节点,其改变描述的含义,只要所有出现的“第一节点”被一致地重命名并且所有出现的“第二节点”被一致地重命名。第一节点和第二节点都是节点,但它们不是同一个节点。

本文中所使用的术语仅仅是为了描述特定具体实施并非旨在对权利要求进行限制。如在本具体实施的描述和所附权利要求中所使用的那样,单数形式的“一个”和“该”旨在也涵盖复数形式,除非上下文清楚地另有指示。还将理解的是,本文中所使用的术语“和/或”是指并且涵盖相关联的所列出的项目中的一个或多个项目的任何和全部可能的组合。还将理解的是,术语“包括”在本说明书中使用时是指定存在所陈述的特征、整数、步骤、操作、元件和/或部件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、部件,和/或其分组。

如本文所使用的,术语“如果”可以被解释为表示“当所述先决条件为真时”或“在所述先决条件为真时”或“响应于确定”或“根据确定”或“响应于检测到”所述先决条件为真,具体取决于上下文。类似地,短语“如果确定[所述先决条件为真]”或“如果[所述先决条件为真]”或“当[所述先决条件为真]时”被解释为表示“在确定所述先决条件为真时”或“响应于确定”或“根据确定”所述先决条件为真或“当检测到所述先决条件为真时”或“响应于检测到”所述先决条件为真,具体取决于上下文。

本发明的前述描述和概述应被理解为在每个方面都是例示性和示例性的,而非限制性的,并且本文所公开的本发明的范围不仅由例示性具体实施的详细描述来确定,而是根据专利法允许的全部广度。应当理解,本文所示和所述的具体实施仅是对本发明原理的说明,并且本领域的技术人员可以在不脱离本发明的范围和实质的情况下实现各种修改。

相关技术
  • 单程对象扫描
  • 金属部件的T形组件的单程扫描激光焊接方法
技术分类

06120113266723