CN117813626A - 从多视图立体(mvs)图像重建深度信息 - Google Patents
从多视图立体(mvs)图像重建深度信息 Download PDFInfo
- Publication number
- CN117813626A CN117813626A CN202280046591.9A CN202280046591A CN117813626A CN 117813626 A CN117813626 A CN 117813626A CN 202280046591 A CN202280046591 A CN 202280046591A CN 117813626 A CN117813626 A CN 117813626A
- Authority
- CN
- China
- Prior art keywords
- pixel
- plane
- planar
- parameters
- target image
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 239000013598 vector Substances 0.000 claims abstract description 20
- 238000000034 method Methods 0.000 claims description 96
- 230000015654 memory Effects 0.000 claims description 21
- 238000011176 pooling Methods 0.000 claims description 17
- 239000011159 matrix material Substances 0.000 claims description 9
- 238000003672 processing method Methods 0.000 claims description 7
- 238000007670 refining Methods 0.000 claims description 3
- 238000013507 mapping Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 87
- 238000012549 training Methods 0.000 description 64
- 239000010410 layer Substances 0.000 description 51
- 230000008569 process Effects 0.000 description 48
- 238000013527 convolutional neural network Methods 0.000 description 36
- 238000013528 artificial neural network Methods 0.000 description 32
- 238000001514 detection method Methods 0.000 description 28
- 230000003190 augmentative effect Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 16
- 238000009877 rendering Methods 0.000 description 13
- 238000007781 pre-processing Methods 0.000 description 11
- 238000013135 deep learning Methods 0.000 description 6
- 230000033001 locomotion Effects 0.000 description 6
- 230000000007 visual effect Effects 0.000 description 6
- 230000004913 activation Effects 0.000 description 5
- 239000002131 composite material Substances 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000003384 imaging method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 239000000047 product Substances 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 4
- 239000007787 solid Substances 0.000 description 4
- 238000009826 distribution Methods 0.000 description 3
- 239000011521 glass Substances 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 230000000306 recurrent effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- YBJHBAHKTGYVGT-ZKWXMUAHSA-N (+)-Biotin Chemical compound N1C(=O)N[C@@H]2[C@H](CCCCC(=O)O)SC[C@@H]21 YBJHBAHKTGYVGT-ZKWXMUAHSA-N 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000012805 post-processing Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000001953 sensory effect Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- FEPMHVLSLDOMQC-UHFFFAOYSA-N virginiamycin-S1 Natural products CC1OC(=O)C(C=2C=CC=CC=2)NC(=O)C2CC(=O)CCN2C(=O)C(CC=2C=CC=CC=2)N(C)C(=O)C2CCCN2C(=O)C(CC)NC(=O)C1NC(=O)C1=NC=CC=C1O FEPMHVLSLDOMQC-UHFFFAOYSA-N 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000000969 carrier Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000004886 head movement Effects 0.000 description 1
- 208000013057 hereditary mucoepithelial dysplasia Diseases 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 239000002356 single layer Substances 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Image Analysis (AREA)
Abstract
本申请涉及使用多个图像的深度映射。电子设备获得由第一相机在第一相机姿态捕获的源图像和由第二相机在第二相机姿态捕获的目标图像。电子设备使用平面掩模模型根据目标图像生成平面掩模。使用平面多视图立体模型从源图像和目标图像生成多个基于像素的平面参数。在示例中,每个基于像素的平面参数包括目标图像的相应像素的相应3D平面参数矢量。电子设备基于平面掩模对多个基于像素的平面参数进行池化以生成实例平面参数,以及基于实例平面参数生成与目标图像对应的实例级平面深度图。
Description
相关申请
本申请要求于2021年8月18日提交的题为“PlaneMVS:A Method for 3D SemanticPlane Detection Using MultiViewStereo Images”的美国临时专利申请申请No.63/234,618以及于2021年12月3日提交的题为“PlaneMVS:3D Plane Reconstruction from Multi-View Stereo”的美国临时专利申请No.63/285,927的优先权,上述申请均通过引用整体并入本文。
技术领域
本申请大体上涉及图像处理技术,包括但不限于应用深度学习技术来识别图像中的平面并确定平面参数和深度信息的方法、系统和非暂时性计算机可读介质。
背景技术
在计算机视觉中,从彩色图像检测和重建三维(three dimensional,3D)平面结构是一个重要但仍具挑战性的问题。其旨在从彩色图像检测分段平面区域并预测对应的3D平面参数。预测的3D平面参数可以用于各种应用,诸如机器人、增强现实(augmentedreality,AR)和室内场景感知。一些3D平面检测或重建方案高度依赖于目标场景的一些假设(例如,曼哈顿世界假设),并且在复杂的现实世界情况下并不总是稳健的。当前的惯常做法是将卷积神经网络(convolutional neural network,CNN)应用于单个图像以直接估计平面参数。假定仅应用单个图像,不仅深度尺度的信息是模糊的,平面参数也无法准确地表示对应平面的几何信息。开发使用深度学习技术来准确地检测和重建3D平面的系统和方法将是有益的。
发明内容
本申请的各实施例涉及用于从多个视图检测3D语义平面的方法、系统、设备、非暂时性计算机可读介质。这些3D平面检测方法应用于扩展现实产品,例如增强现实(AR)眼镜、由移动电话执行的AR应用。这些产品生成3D语义平面,以使放置在场景中的虚拟对象合并到场景中并且看起来是逼真的。在3D平面检测中应用的多个视图由相对于彼此具有已知的相对位置的两个单独的相机捕获,或由单个相机在两个不同的相机姿态捕获。特别地,多视图图像被应用为输入,并且通过使用多视图图像构建特征代价体(cost volume,匹配代价、代价容量、代价矩阵)来建模多视图几何。基于3D平面检测的多视图以3D平面假设为基础,并且通过连接多视图图像的特征来保持输入的多视图图像的信息。通过这些方式,本申请的各实施例利用多视图几何和约束以一致的方式在几何上识别准确的3D语义平面和深度信息。
一方面,在电子设备处实施图像处理方法。该方法包括:获得由第一相机在第一相机姿态捕获的源图像;以及获得由第二相机在第二相机姿态捕获的目标图像。该方法还包括:获得多个倾斜平面的信息,参考多个倾斜平面生成目标图像的特征代价体;以及根据特征代价体生成平面概率体(probability volume,概率量、概率矩阵)。平面概率体具有多个元素,每个元素表示源图像中的每个像素位于多个倾斜平面中一个相应倾斜平面上的概率。该方法还包括:从平面概率体生成多个基于像素的平面参数,以及对多个基于像素的平面参数进行池化以生成实例平面参数。在示例中,每个基于像素的平面参数包括目标图像的相应像素的相应3D平面参数矢量。
在一些实施例中,第一相机和第二相机是同一相机,并且源图像和目标图像是由同一相机捕获的图像帧序列中的两个不同的图像帧,以及其中第一相机姿态和第二相机姿态彼此不同且对应于两个不同的时刻。可替代地,在一些实施例中,第一相机和第二相机彼此不同,并且第一相机姿态和第二相机姿态彼此不同,且对应于相同的时刻或两个不同的时刻。
又一方面,在电子设备处实施图像处理方法。该方法包括:获得由第一相机在第一相机姿态捕获的源图像;获得由第二相机在第二相机姿态捕获的目标图像;以及使用平面掩模(mask,蒙版)模型从目标图像生成平面掩模。该方法还包括:使用平面多视图立体模型从源图像和目标图像生成多个基于像素的平面参数。在示例中,每个基于像素的平面参数包括目标图像的相应像素的相应3D平面参数矢量。该方法还包括:基于平面掩模对多个基于像素的平面参数进行池化以生成实例平面参数,以及基于实例平面参数生成与目标图像对应的实例级平面深度图。在一些实施例中,平面掩模模型包括基于平面区域的卷积神经网络(plane region-based convolutional neural network,PlaneRCNN),其用于从包括目标图像的单个输入图像检测和重建多个分段平面表面。
另一方面,一些实施方式包括电子设备,该电子设备包括一个或多个处理器和其上存储有指令的存储器,上述指令在由一个或多个处理器执行时使处理器执行上述任一种方法。
又一方面,一些实施方式包括存储有指令的非暂时性计算机可读介质,上述指令在由一或多个处理器执行时使处理器执行上述任一种方法。
所提及的这些说明性实施例和实现方式并不限制或限定本公开,而是提供示例以帮助理解本公开。在具体实施方式中讨论了另外的实施例,并且在其处提供了进一步描述。。
附图说明
为了更好地理解各种所描述的实施方式,应当结合以下附图参考以下具体实施方式,贯穿附图用相同的附图标记指代对应的部分。
图1是根据一些实施例的示例性数据处理环境,该数据处理环境具有在通信上耦合到一个或多个客户端设备的一个或多个服务器。
图2是示出根据一些实施例的用于处理内容数据(例如,图像数据)的电子设备的框图。
图3是根据一些实施例的示例性数据处理环境,该数据处理环境用于训练和应用基于神经网络的数据处理模型以处理视觉和/或音频数据。
图4A是根据一些实施例的用于在基于NN的数据处理模型中处理内容数据的示例性神经网络,以及图4B是根据一些实施例的在神经网络中的示例性节点。
图5是根据一些实施例的使用SLAM模块处理电子系统的惯性传感器数据和图像数据的过程的流程图。
图6A示出了根据一些实施例的平面多视图立体(multi-view stereo,MVS,多视角立体、多视点立体)系统的输入和输出界面。
图6B是根据一些实施例的用于在场景中渲染虚拟对象的过程的流程图。
图7A是根据一些实施例的单视图平面重建框架700的框图。
图7B是根据一些实施例的基于深度的MVS框架的框图。
图7C是根据一些实施例的平面MVS系统的框图。
图8A是根据一些实施例的平面MVS系统的另一示例性平面MVS分支的框图。
图8B是根据一些实施例的用于对包括多个基于像素的平面参数的像素级平面图(plane map,平面地图、平面映射)进行细化的示例过程的流程图。
图9是根据一些实施例的示例性平面MVS系统的框图。
图10是根据一些实施例的由客户端设备实施以从多个输入图像生成平面参数的示例性过程的流程图。
图11是根据一些实施例的由客户端设备104实施以形成拼接深度图的示例性过程的流程图。
图12是根据一些实施例的示例性图像处理方法的流程图。
图13是根据一些实施例的示例性图像处理方法的流程图。
贯穿附图的若干视图,相同的附图标记表示对应的部件。
具体实施方式
现在将详细参考具体实施例,其示例在附图中示出。在以下详细描述中,阐述了许多非限制性具体细节以帮助理解本文提出的主题。但是,对于本领域普通技术人员明显的是,在不脱离权利要求的范围的情况下可以使用各种替代方案,并且可以在没有这些具体细节的情况下实践本主题。例如,对于本领域普通技术人员明显的是,可以在具有数字视频能力的许多类型的电子设备上实施本文提出的主题。
本申请的各实施例涉及使用多视图立体(PlaneMVS)成像的平面检测,其中使用包括目标图像的多个图像在目标图像中检测平面。多个图像可选地由不同相机从不同相机姿态(即,对应于不同的相机位置或取向)捕获,或由在不同相机姿态之间移动的单个相机捕获。在示例中,PlaneMVS系统采用一对图像(例如,目标图像和源图像)作为输入,并且预测目标图像的二维(two-dimensional,2D)平面掩模和三维(3D)平面几何。输入图像可选地是由两个相机捕获的立体图像对,或为来自由一相机捕获的单目序列的两个相邻帧。假设与源图像和目标图像对应的相对姿态是已知的。对于立体图像对,经由校准过程来估计相机的相对姿态。对于来自由同一相机捕获的图像序列的两个相邻帧,例如通过同步定位和地图构建(simultaneous localization and mapping,SLAM)来估计相机的相对姿态。PlaneMVS利用多视图几何用于3D语义平面预测,从而使3D平面的预测在几何上比基于单图像的方法(例如,PlaneRCNN)准确。另外,PlaneMVS利用神经网络中的几何约束,并且可以跨不同的数据集一般化。
目标图像的平面与多个平面参数(例如,平面法线和平面偏移)相关联。目标图像对应于平面掩模和指示不同像素处的深度值的深度图。在一些实施例中,目标图像是对其预测平面参数、深度图和/或平面掩模的RGB彩色图像。源图像是在图像帧序列中在目标图像之前或之后的图像,并且用于确定目标图像的平面参数、深度图和/或平面掩模。在一些实施例中,PlaneRCNN还用在平面掩模模型中以预测目标图像的平面参数、深度图和/或平面掩模。进一步,在一些实施例中,从作为对象检测模型的MaskRCNN得出PlaneRCNN的基本模型架构。PlaneRCNN和MaskRCNN中的每一个包括卷积神经网络(CNN),其可选地是深度神经网络(deep neural network,DNN)。在一些实施例中,基于相机的内部参数和外部参数来确定目标图像的平面参数、深度图和/或平面掩模。内部参数包括相机的内部参数矩阵,并且对于由相机捕获的给定数据集或数据是恒定的。外部参数包括相机对于给定RGB图像的相对姿态矩阵。
在一些实施例中,PlaneMVS由通过电子设备(例如,用于显示扩展现实内容的头戴式显示器)执行的扩展现实应用程序实施。扩展现实包括将虚拟对象叠加在现实物理世界的视图上的增强现实(AR),包括仅虚拟内容的虚拟现实(virtual reality,VR),以及将AR和VR两者结合且允许用户与现实世界和虚拟对象进行交互的混合现实(mixed reality,MR)。更具体地,AR是真实世界环境的互动式体验,其中存在于真实世界中的对象通过计算机生成的例如跨多种感官形式——包括视觉、听觉、触觉、体感和嗅觉的多种感官形态——的感知信息得以增强。
图1是根据一些实施例的示例性数据处理环境100,该数据处理环境100具有在通信上耦合到一个或多个客户端设备104的一个或多个服务器102。一个或多个客户端设备104例如可以是台式计算机104A、平板计算机104B、移动电话104C、头戴式显示器(HMD)(也称为增强现实(AR)眼镜)104D、或智能多感测联网家庭设备(例如,监视相机104E、智能电视设备、无人机)。每个客户端设备104可以收集数据或用户输入,执行用户应用程序,以及在其用户界面上呈现输出。所收集的数据或用户输入可以在客户端设备104本地处理和/或由服务器102远程处理。一个或多个服务器102向客户端设备104提供系统数据(例如,引导文件、操作系统映像和用户应用程序),并且在一些实施例中,当在客户端设备104上执行用户应用程序时处理从(一个或多个)客户端设备104接收的数据和用户输入。在一些实施例中,数据处理环境100还包括存储设备106,该存储设备106用于存储与服务器102、客户端设备104以及在客户端设备104上执行的应用程序有关的数据。
一个或多个服务器102能与彼此远离的客户端设备104或远离一个或多个服务器102的客户端设备104进行实时数据通信。此外,在一些实施例中,一个或多个服务器102可以执行无法由或不会优先由客户端设备104在本地完成的数据处理任务。例如,客户端设备104包括执行交互式在线游戏应用程序的游戏控制台(例如,HMD 104D)。游戏控制台接收用户指令并将其与用户数据一起发送到游戏服务器102。游戏服务器102基于用户指令和用户数据生成视频数据流,并且提供视频数据流以供在游戏控制台和与游戏控制台的参与同一游戏会话的其他客户端设备上显示。在另一示例中,客户端设备104包括联网的监视相机104E和移动电话104C。联网的监视相机104E采集视频数据并实时地将视频数据流式传送到监视相机服务器102。尽管视频数据可选地在监视相机104E上进行预处理,但监视相机服务器102处理视频数据以识别视频数据中的运动或音频事件,并将这些事件的信息共享给移动电话104C,从而允许移动电话104的用户实时且远程地监视在联网监视相机104E附近发生的事件。
一个或多个服务器102、一个或多个客户端设备104和存储设备106彼此之间通过一个或多个通信网络108在通信上耦合,通信网络108是用于为数据处理环境100内的这些设备与连接在一起的计算机之间提供通信链路的介质。一个或多个通信网络108可以包括诸如有线连接、无线通信链路或光纤光缆等连接。一个或多个通信网络108的示例包括局域网(LAN)、诸如因特网的广域网(WAN)、或其组合。一个或多个通信网络108可选地使用任何已知的网络协议来实现,包括各种有线或无线协议,诸如以太网、通用串行总线(USB)、火线、长期演进(LTE)、全球移动通信系统(GSM)、增强型数据GSM环境(EDGE)、码分多址(CDMA)、时分多址(TDMA)、蓝牙、Wi-Fi、互联网协议语音(VoIP)、Wi-MAX或任何其他合适的通信协议。到一个或多个通信网络108的连接可以直接建立(例如,使用到无线载波的3G/4G连接),或者通过网络接口110(例如,路由器、交换机、网关、集线器或智能专用全家控制节点)建立或通过其任何组合来建立。这样,一个或多个通信网络108可以表示使用传输控制协议/互联网协议(TCP/IP)组彼此通信的网络和网关的全球集合的因特网。因特网的核心在于主节点或主机计算机之间的高速数据通信线路的主干网,包括路由数据和消息的数千个商业、政府、教育和其它计算机系统。
在一些实施例中,深度学习技术应用于数据处理环境100中,以处理由在客户端设备104处执行的应用程序获得的内容数据(例如,视频数据、视觉数据、音频数据或文本数据),进而识别包含在内容数据中的信息,将内容数据与其它数据匹配,对内容数据进行分类,或合成相关的内容数据。在这些深度学习技术中,基于一个或多个神经网络来创建数据处理模型以处理内容数据。这些数据处理模型在它们用于处理内容数据之前被用训练数据进行训练。在模型训练之后,客户端设备104获得内容数据(例如,经由内部相机捕获的视频数据)并且在本地使用数据处理模型来处理内容数据。
在一些实施例中,模型训练和数据处理两者在每个个体客户端设备104处本地实施。客户端设备104从一个或多个服务器102或存储设备106获得训练数据,并且用训练数据训练数据处理模型。可替代地,在一些实施例中,在与客户端设备104相关联的服务器102(例如,服务器102A)处远程实施模型训练和数据处理两者。服务器102A从自身、另一服务器102或存储设备106获得训练数据,并用训练数据来训练数据处理模型。客户端设备104获得内容数据,并将内容数据(例如在应用程序中)发送到服务器102A以使用经训练的数据处理模型进行数据处理,从服务器102A接收数据处理结果,以及将结果呈现在(例如,与应用程序相关联的)用户界面上。客户端设备104本身在将内容数据发送到服务器102A之前不对内容数据进行处理或进行很少的数据处理。另外,在一些实施例中,在客户端设备104处本地实施数据处理,而在与客户端设备104相关联的服务器102(例如,服务器102B)处远程实施模型训练。服务器102B从自身、另一服务器102或存储设备106获得训练数据,并应用训练数据来训练数据处理模型。经训练的数据处理模型可选地存储在服务器102B或存储设备106中。客户端设备104从服务器102B或存储设备106导入经训练的数据处理模型,使用数据处理模型来处理内容数据,并且本地生成待在用户界面上呈现或用于在本地发起一些功能(例如,基于设备姿态来渲染虚拟对象)的数据处理结果。
在一些实施例中,一副AR眼镜104D(也称为HMD)在通信上耦合在数据处理环境100中。HMD 104D包括相机、麦克风、扬声器、一个或多个惯性传感器(例如,陀螺仪、加速度计)和显示器。相机和麦克风用于从HMD 104D的场景捕获视频和音频数据,而一个或多个惯性传感器用于捕获惯性传感器数据。在一些情况下,相机捕获佩戴HMD 104D的用户的手势,并且使用两级手势识别模型在本地实时地识别手势。在一些情况下,麦克风记录环境声音,包括用户的语音命令。在一些情况下,由相机捕获的视频或静态视觉数据和由一个或多个惯性传感器测量的惯性传感器数据这两者用于确定和预测设备姿态。HMD 104D、(一个或多个)服务器102或其两者处理由HMD 104D捕获的视频、静态图像、音频或惯性传感器数据,以识别设备姿态。可选地,(一个或多个)服务器102和HMD 104D联合应用深度学习技术以识别和预测设备姿态。设备姿态用于控制HMD 104D本身或与由HMD 104D执行的应用程序(例如,游戏应用程序)交互。在一些实施例中,HMD 104D的显示器显示用户界面,并且所识别或预测的设备姿态用于在用户界面上渲染用户可选择的显示项(例如,虚拟形象)或与其交互。
图2是示出根据一些实施例的用于处理内容数据(例如,图像数据)的电子系统200的框图。电子系统200包括服务器102、客户端设备104(例如,图1中的HMD 104D)、存储设备106或其组合。电子系统200通常包括一个或多个中央处理器(CPU)202、一个或多个网络接口204、存储器206以及用于互连这些组件(有时称为芯片组)的一个或多个通信总线208。电子系统200包括便于用户输入的一个或多个输入设备210,诸如键盘、鼠标、语音命令输入单元或麦克风、触摸屏显示器、触敏输入垫、手势捕获相机或其他输入按钮或控件。此外,在一些实施例中,电子系统200的客户端设备104使用用于语音识别的麦克风或用于手势识别的相机来补充或替代键盘。在一些实施例中,客户端设备104包括用于捕获例如打印在电子设备上的图形序列码的图像的一个或多个光学相机260(例如,RGB相机)、扫描仪或光敏传感器单元。电子系统200还包括一个或多个能够呈现用户界面和显示内容的输出设备212,包括一个或多个扬声器和/或一个或多个视觉显示器。可选地,客户端设备104包括位置检测设备,诸如GPS(全球定位系统)或其他地理定位接收器,以用于确定客户端设备104的位置。
可选地,客户端设备104包括惯性测量单元(IMU)280,该惯性测量单元集成由多轴惯性传感器捕获的传感器数据以提供客户端设备104在空间中的位置和取向的估计。IMU280的一个或多个惯性传感器的示例包括但不限于陀螺仪、加速度计、磁力计和测斜仪。
存储器206包括高速随机存取存储器,诸如DRAM、SRAM、DDR RAM或其他随机存取固态存储器设备,以及可选地包括非易失性存储器,诸如一个或多个磁盘存储设备、一个或多个光盘存储设备、一个或多个闪存设备、或一个或多个其他非易失性固态存储设备。存储器206可选地包括远离一个或多个处理单元202的一个或多个存储设备。存储器206或可替代地存储器206内的非易失性存储器包括非暂时性计算机可读存储介质。在一些实施例中,存储器206或存储器206的非暂时性计算机可读存储介质存储以下程序、模块和数据结构或其子集或超集:
·操作系统214,包括用于处理各种基本系统服务并用于执行硬件相关任务的过程;
·网络通信模块216,用于经由一个或多个(有线或无线)网络接口204和一个或多个通信网络108(诸如互联网、其他广域网、局域网、城域网等)将每个服务器102或客户端设备104连接到其他设备(例如,服务器102、客户端设备104或存储设备106);
·用户界面模块218,用于使得能够经由一个或多个输出设备212(例如,显示器、扬声器等)在每个客户端设备104处呈现信息(例如,(一个或多个)应用程序224的图形用户界面、窗口小部件、网站和其网页、和/或游戏、音频和/或视频内容、文本等);
·输入处理模块220,用于检测来自一个或多个输入设备210中之一的一个或多个用户输入或交互,并解读检测到的输入或交互;
·网络浏览器模块222,用于导航、请求(例如,经由HTTP)并显示网站及其网页,包括用于登录到与客户端设备104或另一电子设备相关联的用户账户中的web界面,用于在与用户账户相关联时,控制客户端或电子设备,以及用于编辑和查看与用户账户相关联的设置和数据;
·由电子系统200执行的一个或多个用户应用程序224(例如,游戏、社交网络应用程序、智能家居应用程序和/或用于控制另一电子设备并查看由此类设备捕获的数据的其他基于web或非web的应用程序),其中在一些实施例中,(一个或多个)用户应用程序224包括用于与用户交互并提供扩展现实内容的扩展现实应用程序225;
·模型训练模块226,用于接收训练数据并建立用于处理由客户端设备104采集或获得的内容数据(例如,视频、图像、音频或文本数据)的数据处理模型;
·数据处理模块228,用于利用数据处理模型250处理内容数据,从而识别包含在内容数据中的信息,将内容数据与其他数据进行匹配,对内容数据进行分类,或合成相关内容数据,其中在一些实施例中,数据处理模块228与用户应用程序224中的一个相关联,以响应于从用户应用程序224接收的用户指令来处理内容数据;
·姿态确定和预测模块230,用于确定和预测客户端设备104(例如,HMD 104D)的姿态,其中在一些实施例中,姿态由姿态确定和预测模块230以及数据处理模块228共同地确定和预测,并且模块230还包括SLAM模块232和平面MVS系统234,SLAM模块232用于使用图像和IMU传感器数据来映射客户端设备104所位于的场景并且识别客户端设备104在场景内的姿态,平面MVS系统234用于应用多个图像以确定基于像素的平面参数和实例平面参数、一个或多个平面的平面掩模、或深度图;
·基于姿态的渲染模块238,用于基于由数据处理模块230提供的相机姿态和平面的信息,在客户端设备104的相机260的视场之上渲染虚拟对象或使用由相机260捕获的图像来创建扩展现实内容;以及
·一个或多个数据库240,用于至少存储包括以下中的一个或多个的数据:
ο设备设置242,包括一个或多个服务器102或客户端设备104的公共设备设置(例如,服务层、设备模型、存储容量、处理能力、通信能力等);
ο一个或多个用户应用程序224的用户账户信息244,例如用户名、安全问题、账户历史数据、用户偏好和预定账户设置;
ο一个或多个通信网络108的网络参数246,例如IP地址、子网掩码、默认网关、DNS服务器和主机名;
ο用于训练一个或多个数据处理模型250的训练数据248;
ο用于使用深度学习技术来处理内容数据(例如,视频、图像、音频或文本数据)的数据处理模型250,其中数据处理模型250包括用于实施图像检索过程600的图像检索模型和用于实施相机定位过程800的相机定位模型;
ο姿态数据数据库252,用于存储姿态数据;以及
ο分别由电子系统200的客户端设备104获得并输出到客户端设备104的内容数据和结果254,其中内容数据由数据处理模型250在客户端设备104本地处理或在服务器102处远程处理,以提供要在客户端设备104上呈现的相关联的结果,并且包括候选图像。
可选地,一个或多个数据库240存储在电子系统200的服务器102、客户端设备104和存储设备106的其中之一。可选地,一个或多个数据库240分布在电子系统200的服务器102、客户端设备104和存储设备106中的不止一个中。在一些实施例中,以上数据的多于一个副本被存储在不同的设备处,例如,数据处理模型250的两个副本分别被存储在服务器102和存储设备106处。
上述所识别的元素中的每一者可存储于先前提及的存储器装置中的一个或多个中,且对应于用于执行上述功能的一组指令。以上所识别的模块或程序(即,指令集)不需要被实施为单独的软件程序、过程、模块或数据结构,并且因此这些模块的各子集可以在不同实施例中组合或以其他方式重新布置。在一些实施例中,存储器206可选地存储上述识别的模块和数据结构的子集。此外,存储器206可选地存储以上未描述的附加模块和数据结构。
图3是根据一些实施例的另一示例性数据处理系统300,其用于训练和应用基于神经网络(基于NN)的数据处理模型250,以用于处理内容数据(例如,视频、图像、音频或文本数据)。数据处理系统300包括:用于建立数据处理模型250的模型训练模块226;和用于使用数据处理模型250处理内容数据的数据处理模块228。在一些实施例中,模型训练模块226和数据处理模块228两者都位于数据处理系统300的客户端设备104上,而与客户端设备104不同的训练数据源304向客户端设备104提供训练数据306。训练数据源304可选地是服务器102或存储设备106。可替代地,在一些实施例中,模型训练模块226和数据处理模块228两者都位于数据处理系统300的服务器102上。提供训练数据306的训练数据源304可选地为服务器102本身、另一服务器102或存储设备106。另外,在一些实施例中,模型训练模块226和数据处理模块228分别位于服务器102和客户端设备104上,并且服务器102将经训练的数据处理模型250提供给客户端设备104。
模型训练模块226包括一个或多个数据预处理模块308、模型训练引擎310和损失控制模块312。数据处理模型250根据待处理的内容数据的类型进行训练。训练数据306与内容数据的类型一致,因此用数据预处理模块308来处理与内容数据的类型一致的训练数据306。例如,图像预处理模块308A用于将图像训练数据306处理为预定图像格式,例如,提取每个训练图像中的感兴趣区域(ROI),并且将每个训练图像裁剪为预定图像大小。可替代地,音频预处理模块308B用于将音频训练数据306处理为预定音频格式,例如,使用傅里叶变换将每个训练序列转换到频域。模型训练引擎310接收由数据预处理模块308提供的经预处理的训练数据,进一步使用现有的数据处理模型250处理经预处理的训练数据,并且从每个训练数据项生成输出。在该过程期间,损失控制模块312可以监测损失函数,该损失函数将与相应训练数据项相关联的输出与相应训练数据项的真值进行比较。模型训练引擎310修改数据处理模型250以减少损失函数,直到损失函数满足损失标准(例如,损失函数的比较结果被最小化或降低到低于损失阈值)。经修改的数据处理模型250被提供给数据处理模块228以处理内容数据。
在一些实施例中,模型训练模块226提供监督学习,其中训练数据被完全标记并且包括每个训练数据项的期望输出(在一些情况下也称为真值)。相反地,在一些实施例中,模型训练模块226提供无监督学习,其中训练数据未被标记。模型训练模块226用于在预先不存在标记并且没有或仅有少量人类监督的情况下识别训练数据中的先前未检测到的模式。另外,在一些实施例中,模型训练模块226提供部分监督学习,其中训练数据被部分地标记。
数据处理模块228包括数据预处理模块314、基于模型的处理模块316和数据后处理模块318。数据预处理模块314基于内容数据的类型对内容数据进行预处理。数据预处理模块314的功能与预处理模块308的功能一致,并且将内容数据转换为可由基于模型的处理模块316的输入接受的预定内容格式。内容数据的示例包括以下中的一个或多个:视频、图像、音频、文本和其他类型的数据。例如,预处理每个图像以提取ROI或将其裁剪为预定图像大小,以及使用傅里叶变换对音频片段进行预处理以将其转换到频域。在一些情况下,内容数据包括两种或更多种类型,例如视频数据和文本数据。基于模型的处理模块316应用由模型训练模块226提供的经训练的数据处理模型250来处理经预处理的内容数据。基于模型的处理模块316还可以监视错误指示符,以确定内容数据是否已经在数据处理模型228中被正确地处理。在一些实施例中,经处理的内容数据由数据后处理模块318进一步处理,进而以优选格式呈现经处理的内容数据或提供可从经处理的内容数据获得的其它相关信息。
图4A是根据一些实施例示意的用于在基于NN的数据处理模型250中处理内容数据的示例性神经网络(NN)400,以及图4B是根据一些实施例的在神经网络(NN)400中的示例性节点420。基于神经网络400建立数据处理模型250。对应的基于模型的处理模块316应用包括神经网络400的数据处理模型250来处理已经被转换为预定内容格式的内容数据。神经网络400包括通过链路412连接的节点420的集合。每个节点420接收一个或多个节点输入,并应用传递函数以从(一个或多个)节点输入生成节点输出。因为节点输出经由一个或多个链路412被提供给一个或多个其他节点420,对节点输出应用与每个链路412相关联的权重w。类似地,根据传递函数,基于对应的权重w1、w2、w3和w4将一个或多个节点输入相组合。在示例中,传递函数是(一个或多个)节点输入的线性加权组合与非线性激活函数的乘积。
节点420的集合被组织成神经网络400中的一个或多个层。可选地,(一个或多个)层包括既充当输入层又充当输出层的单个层。可选地,(一个或多个)层可以包括用于接收输入的输入层402、用于提供输出的输出层406、以及在输入层402和输出层406之间的零个或多个隐藏层404(例如,404A和404B)。深度神经网络在输入层402和输出层406之间具有多于一个的隐藏层404。在神经网络400中,每个层只与其紧前面和/或紧后面的层连接。在一些实施例中,层402或404B是全连接层,因为层402或404B中的每个节点420连接到其紧后面的层中每个节点420。在一些实施例中,隐藏层404中的一个隐藏层包括的两个或更多个节点连接到该层紧后面的层中的相同节点,以用于对这两个层之间的节点420进行下采样或池化。特别地,最大池化使用层404B中的两个或更多个节点的最大值来生成紧后面的层406中与这两个或更多个节点连接的节点。
在一些实施例中,在数据处理模型250中应用卷积神经网络(CNN)来处理内容数据(特别是视频和图像数据)。CNN采用卷积运算并且属于一类深度神经网络400,即,仅将数据从输入层402通过隐藏层向前移动到输出层406的前馈神经网络。CNN的(一个或多个)隐藏层可以是用乘法或点积进行卷积的卷积层。卷积层中的每个节点从与前一层(例如,五个节点)相关联的感受野接收输入,感受野小于整个前一层并且可以基于卷积神经网络中的卷积层的位置而变化。将视频或图像数据预处理为与CNN的输入对应的预定视频/图像格式。经预处理的视频或图像数据由CNN的每一层抽象为相应的特征图。通过这些手段,视频和图像数据可以由CNN处理,以用于视频和图像识别、分类、分析、压印或合成。
可替代地或另外地,在一些实施例中,在数据处理模型250中应用递归神经网络(recurrent neural network,RNN)以处理内容数据(特别是文本和音频数据)。RNN的连续层中的节点遵循时间序列,使得RNN表现出时间动态行为。在示例中,RNN的每个节点420具有时变实值激活。RNN的示例包括但不限于长短期记忆(long short-term memory,LSTM)网络、完全递归网络、Elman网络、Jordan网络、霍普菲尔德(Hopfield)网络、双向联想记忆(bidirectional associative memory,BAM网络)、回声状态网络、独立RNN(Ind RNN)、递归神经网络和神经历史压缩器。在一些实施例中,RNN可以用于手写或语音识别。注意,在一些实施例中,数据处理模块228处理两种或更多种类型的内容数据,并且应用两种或更多种类型的神经网络(例如,CNN和RNN两者)来联合地处理内容数据。
训练过程是用于使用输入层402中提供的训练数据集来校准学习模型的每一层的所有权重wi的过程。训练过程通常包括两个步骤,前向传播和后向传播,其重复多次直到满足预定收敛条件。在前向传播中,不同层的权重集被应用于输入数据和来自前一层的中间结果。在后向传播中,测量输出的误差容限(例如,损失函数),并且相应地调整权重以减小误差。激活函数可选地是线性的、修正线性单元、S形、双曲正切或其他类型。在一些实施例中,在应用激活函数之前,将网络偏置项b添加到来自前一层的加权输出之和。网络偏置b提供扰动,该扰动帮助NN 400避免过度拟合训练数据。训练的结果包括每层的网络偏置参数b。
图5是根据一些实施例的使用SLAM模块232来处理电子系统(例如,服务器102、客户端设备104或两者的组合)的惯性传感器数据和图像数据的过程500的流程图。过程500包括测量预处理502、初始化504、带重定位的局部视觉惯性测距(visual-inertialodometry,VIO)506和全局姿态图优化508。在测量预处理502,RGB相机260以图像帧速率(例如,30FPS)捕获场景的图像数据,并且从图像数据检测和跟踪(510)特征。IMU 280在RGB相机260捕获图像数据的同时以采样频率(例如,1000Hz)测量惯性传感器数据,并且惯性传感器数据被预整合(512)以提供设备姿态540的变化的数据。在初始化504,将由RGB相机260捕获的图像数据和由IMU 280测量的惯性传感器数据在时间上对准(514)。应用(516)仅视觉的运动恢复结构(structure from motion,SfM)技术514以将图像数据和惯性传感器数据耦合,估计三维结构,以及映射RGB相机260的场景。
在初始化504之后并且在重定位506期间,使用滑动窗口518和来自闭环的相关联状态520来优化(522)VIO。当VIO对应于(524)平滑视频转换的关键帧以及检测到(526)对应环时,提取(528)特征并使用其来生成来自闭环的相关联状态520。在全局姿态图优化508中,基于来自闭环的状态520来优化(530)多自由度(multi-DOF)姿态图,并且利用与VIO相关联的关键帧来更新关键帧数据库532。
另外,检测和跟踪(510)的特征用于监测(534)图像数据中对象的运动,并且例如根据图像帧速率来估计基于图像的姿态536。在一些实施例中,预整合(512)的惯性传感器数据可以基于对象的运动进行传播(538),并且可以用于例如根据IMU 280的采样频率来估计基于惯性的姿态540。基于图像的姿态536和基于惯性的姿态540被存储在姿态数据数据库252中,并且供模块230使用以估计和预测由基于姿态的渲染模块238使用的姿态。可替代地,在一些实施例中,SLAM模块232接收由IMU 280测量的惯性传感器数据,并且获得基于图像的姿态536,以估计和预测由基于姿态的渲染模块238进一步使用的更多姿态540。
在SLAM中,通过传感器融合能够实现高频姿态估计,其依赖于成像传感器与IMU280之间的数据同步。成像传感器(例如,RGB相机260、LiDAR扫描仪)提供对于姿态估计所期望的图像数据,并且通常以与IMU 280相比较低的频率(例如,每秒30帧)和较大的延迟(例如,30毫秒)操作。相反,IMU 280可以测量惯性传感器数据,并且以非常高的频率(例如,每秒1000个样本)和可忽略的延迟(例如,<0.1毫秒)操作。在AR系统中通常应用异步时间扭曲(asynchronous time warping,ATW),以在图像被发送到显示器之前扭曲图像,进而校正在图像被渲染之后发生的头部移动和姿态变化。ATW算法减少图像的延迟,增加或维持帧率,或减少由于图像帧丢失引起的抖动。在SLAM和ATW两者中,相关图像数据和惯性传感器数据存储在本地,使得它们可以被同步并用于姿态估计/预测。在一些实施例中,图像数据和惯性传感器数据存储在多个STL容器之一中,例如std::vector,std::queue,std::list等,或其他自定义容器。这些容器通常便于使用。图像数据和惯性传感器数据以它们的时间戳存储在STL容器中,并且时间戳用于数据搜索、数据插入和数据组织。
图6A示出根据一些实施例的示例性平面多视图立体(MVS)系统234的输入和输出界面600。平面MVS系统234接收包括源图像604和目标图像606的输入图像对,并且预测目标图像606的一个或多个平面掩模608和平面几何610(例如,深度图)。源图像604由第一相机在第一相机姿态捕获,目标图像606由第二相机在第二相机姿态捕获。在一些实施例中,源图像604和目标图像606是立体对。第一相机和第二相机彼此不同,并且第一相机姿态和第二相机姿态彼此不同。源图像604和目标图像606在相同的时刻或两个不同的时刻被捕获。可替代地,在一些实施例中,第一相机和第二相机是同一相机260,并且源图像604和目标图像606是由同一相机捕获的图像帧序列中的两个不同的图像帧。第一和第二相机姿态彼此不同并且对应于两个不同的时刻。在示例中,源图像604和目标图像606是由同一相机260捕获的图像序列中的两个紧邻的帧。在示例中,源图像604和目标图像606在由相机260捕获的图像序列中被一个或多个帧分开。
对应于源图像604的第一相机姿态和对应于目标图像606的第二相机姿态存在相对姿态差异。对于给定的源图像604和目标图像606,相对姿态是已知的。对于立体相机对(即,第一相机和第二相机),可选地经由校准过程、基于相机的内部参数和外部参数来估计相对姿态。如果源图像604和目标图像606由同一相机260捕获,也例如通过SLAM来估计相对姿态。
图6B是根据一些实施例的用于在场景中渲染虚拟对象的过程650的流程图。过程650由客户端设备104(例如,HMD 104D)的姿态确定和预测模块230、基于姿态的渲染模块238和扩展现实应用程序225共同实施。姿态确定和预测模块230包括SLAM模块232和平面MVS系统234。姿态确定和预测模块230接收包括源图像604和跟随源图像604的目标图像606的图像帧序列612。SLAM模块232使用图像数据(例如,图像帧序列612)和IMU传感器数据来映射客户端设备104所位于的场景以及识别客户端设备104在场景内的姿态。平面MVS系统234基于图像帧序列612识别场景中的一个或多个平面,并且确定一个或多个平面的平面参数和深度信息。基于姿态的渲染模块238在客户端设备104的视场之上渲染虚拟对象,或者使用由相机260捕获的图像帧612来创建扩展现实内容。具体地,虚拟对象被叠加在由平面MVS系统234识别的一个或多个平面上,以创建扩展现实内容。
在一些实施例中,扩展现实应用程序225包括用于向用户呈现AR内容的AR应用程序。AR应用程序与SLAM模块232、平面MVS系统234和基于姿态的渲染模块238共同实施。在示例中,虚拟对象被叠加在物理世界中由平面MVS系统234识别的一个或多个平面上以创建AR内容。神经网络被训练并部署在客户端设备104上或服务器102上。客户端设备104的示例包括手持式设备(例如,移动电话104C)和可穿戴设备(例如,HMD 104D)。当从客户端设备194流式传输图像帧序列612时,平面MVS系统234识别一组3D平面和相关联的语义标签,并且SLAM模块232跟踪客户端设备104的姿态。虚拟对象无缝地放置在3D平面之上。在一些情况下,虚拟对象四处移动。在一些情况下,虚拟对象被锚定在某个位置处。基于姿态的渲染模块238经由3D平面重建每个虚拟对象,并且其管理AR应用程序的真实对象和虚拟对象之间的遮挡和去遮挡。
在一些实施例中,基于对应的语义类别将虚拟对象放置在平面上。例如,在AR购物应用程序中,落地灯被自动放置在地板平面上(即,不在桌子平面上)。换句话说,根据第一平面的语义类别是与第一虚拟对象相关联的预定义第一类别的确定,基于姿态的渲染模块238在AR应用程序中在第一平面上渲染第一虚拟对象,并且使第一虚拟对象叠加在第一平面上。相反,根据第二平面的语义类别不是与第一虚拟对象相关联的预定义第一类别的确定,基于姿态的渲染模块238在AR应用程序中不会在第二平面上渲染第一虚拟对象,并且不会将第一虚拟对象叠加在第二平面上。
图7A是根据一些实施例的单视图平面重建框架700的框图。单视图平面重建框架700包括平面几何分支702和平面检测分支704,且用于接收单个输入图像706并生成一个或多个平面参数708和一个或多个平面掩模710。平面检测分支704从单个输入图像706检测一个或多个平面,平面几何分支702针对每个检测到的平面确定包括平面法线和平面偏移的一个或多个平面参数708。在一些实施例中,每个平面由二元平面掩模710标识。对于每个平面,二元平面掩模710包括多个元素,每个元素具有两个预定义值(例如,0、1)中的一个,并且指示一个或多个相邻像素是否属于相应平面。可替代地,在一些实施例中,从单个输入图像706识别第一数量的平面。单平面掩模710包括多个元素,每个元素具有从第一数量的预定义值中选择的值。每个预定义值对应于不同的平面。对于每个预定义值,对应的元素与一组像素相对应,该组像素属于在单个输入图像中识别的第一数量的平面中的相同平面。
图7B是根据一些实施例的基于深度的MVS框架740的框图。基于深度的MVS框架740包括多视图立体模型742,该模型用于处理立体图像对744(例如,源图像604及目标图像606)以直接生成立体图像中之一的深度图746。在一些实施例中,多视图立体模型742包括CNN。
图7C是根据一些实施例的平面多视图立体(MVS)系统234的框图。平面MVS系统234采用用于平面扫描的倾斜平面假设752来构建平面MVS分支754,平面MVS分支754与平面检测分支704交互。平面检测分支704从单个输入图像706检测一个或多个平面,并且生成标识一个或多个检测到的平面的一个或多个掩模710。平面MVS系统234接收至少两个立体图像756(例如,目标图像606、源图像604),并且处理立体图像756以对目标图像606的一个或多个检测到的平面中的每一个生成一个或多个平面参数708。经由从每个倾斜平面752计算的可微分单应性(differentiable homography,可微分单应矩阵)将源图像604的源特征相对于在参考图像中识别的多个倾斜平面752扭曲到目标图像606(例如,目标图像806的姿态)。在一些实施例中,平面参数708与一个或多个检测到的平面的一个或多个平面掩模710组合,以生成实例级深度图756。
在一些实施例中,平面检测分支704预测具有目标图像606的对应语义标签的一组2D平面掩模710,平面MVS分支754接收目标图像606和源图像604作为输入,并且应用倾斜平面扫描策略无歧义地学习平面参数708。具体地,利用一组倾斜平面假设752来执行平面扫描,以构建特征代价体(例如,图8A中的808)和回归每像素平面参数(例如,图8A中的814)。进一步应用软池化以在考虑丢失对象的情况下获得分段平面参数,从而将平面MVS分支754和平面检测分支704彼此关联。学习的不确定性应用于不同的损失项,进而以平衡的方式训练这样的多任务学习系统。平面MVS系统234在具有不同数据分布的新环境中一般化。平面掩模710和平面参数708的结果在没有真值(ground truth,地面实况)平面标注的情况下利用微调策略进一步改进。在一些实施例中,平面MVS系统234以端对端方式进行训练。重建的深度图756应用多视图几何来减小尺度不确定性(scale ambiguity,尺度歧义),并且与基于深度的MVS系统740通过解析平面结构所生成的深度图746相比在几何上较平滑。跨不同室内数据集的实验结果证明平面MVS系统234优于单视图平面重建框架700和基于学习的MVS模型742。
图8A是根据一些实施例的平面MVS系统234(图7C)的另一示例性平面MVS分支754的框图。平面MVS分支754从多个输入图像(例如,源图像604和目标图像606)生成平面参数708的像素级平面图802。平面MVS系统234获得由第一相机在第一相机姿态捕获的源图像604和由第二相机在第二相机姿态捕获的目标图像606。第一和第二相机姿态中的每一个可选地包括相机位置和相机取向,并且第一相机姿态和第二相机姿态彼此明显不同。平面MVS系统234获得多个倾斜平面752(即,倾斜平面假设)的信息,并且参考多个倾斜平面752生成目标图像606的特征代价体808。目标图像606的特征代价体808由正则化和回归网络812处理以生成平面参数708的像素级平面图802。在一些实施例中,特征代价体808被应用以生成多个平面参数708,并且每个平面参数708对应于包括多个基于像素的平面参数814的相应像素级平面图802。对于每个像素级平面图802,将多个基于像素的平面参数814进行池化以生成实例平面参数816。实例平面参数816的示例包括但不限于法线方向、平面位置和平面形状。
在一些实施例中,平面MVS系统234根据特征代价体808生成平面概率体820。平面概率体820具有多个元素,每个元素指示目标图像606中的每个像素位于多个倾斜平面752中的一个相应倾斜平面上的概率。例如,使用正则化和回归网络812,从平面概率体820生成每个像素级平面图802的多个基于像素的平面参数814。在示例中,每个基于像素的平面参数814包括目标图像606的相应像素的相应3D平面参数矢量。为了确定特征代价体808,平面MVS系统234具有预定义倾斜平面752,并且使用倾斜平面752和第一相机与第二相机之间的相对姿态来执行将源特征图804单应性扭曲到目标图像606(例如,目标图像806的姿态)。在一些实施例中,将经扭曲的源特征804沿着通道维度与目标特征806进行级联以形成特征代价体808。在一些实施例中,应用一系列3D卷积层以将特征代价体808转换为平面概率体820。此外,在一些情况下,执行soft-argmin操作以将平面概率体820转换为像素级平面图802。
在一些实施例中,平面MVS系统234包括主干网络810,该网络用于从源图像604生成源特征804以及从目标图像606生成目标特征806。在示例中,使用CNN从源图像604生成源特征804。在将源图像604转换为源特征804之前,根据缩放因子S将源图像604的第一分辨率(H×W)减小到源特征804的第二分辨率(H/S×W/S)。在另一示例中,主干网络810包括具有五个等级(L=5)的特征金字塔网络(feature pyramid network,FPN),并且源特征804和目标特征806中的每一个包括从FPN的最细等级(L=5)提取的多尺度2D特征图,即在一些实施例中,平面MVS系统234还将与源特征804和目标特征806中的每一个对应的f0传递到维度降低层和平均池化层中,以获得减少的特征表示,即/> 从而平衡存储器消耗和准确度。减少的特征表示f′0用作平面MVS系统234中的特征804或806。另外,在一些实施例中,源特征804和目标特征806中的每一个包括相应的两个或更多个级别的特征。
图8B是根据一些实施例的用于对包括多个基于像素的平面参数814的像素级平面图802进行细化的示例性过程850的流程图。图8A中的平面MVS分支754从源图像604和目标图像606生成平面参数708的像素级平面图802。在一些实施例中,平面MVS分支754还包括具有细化网络852的细化模块(例如,图9中的904)。像素级平面图802与目标图像606级联(854)以生成级联图。由细化网络852对级联图进行处理以生成残差参数860(δP’)。每个像素级细化参数814’(Pr)是基于像素的平面参数814和对应的残差参数的组合,即Pr=P’+δP’。多个基于像素的细化参数814’形成像素级细化平面图802’。在一些实施例中,细化网络852包括残差神经网络(ResNet)。
图9是根据一些实施例的示例性平面MVS系统234的框图。平面MVS系统234包括平面立体模块902、平面细化模块904和平面检测分支704。平面立体模块902和平面细化模块904形成平面MVS分支754。平面立体模块902通过特征代价体808(图8A)预测包括多个基于像素的平面参数814的像素级平面图802。平面细化模块904例如通过残差细化网络852(图8B)细化像素级平面图802。平面检测分支704预测一个或多个平面边界框和一个或多个对应的平面掩模710。每个平面边界框识别目标图像606中的相应平面。执行软池化操作908以将像素级平面图802(其可选地细化)池化为与对应平面掩模710相对应的实例级平面参数816。
在一些实施例中,每个平面由二元平面掩模710标识。对于每个平面,二元平面掩模710包括多个元素,每个元素具有两个预定义值(例如,0、1)中的一个,并且指示一个或多个相邻像素是否属于相应平面。可替代地,在一些实施例中,从单个输入图像706识别第一数量的平面。单平面掩模710包括多个元素,每个元素具有从第一数量的预定义值中选择的值。每个预定义值对应于不同的平面。对于每个预定义值,对应的元素与一组像素相对应,该组像素属于在单个输入图像中识别的第一数量的平面中的相同平面。
在一些实施例中,平面检测分支704包括PlaneRCNN 906,其识别单个输入图像(例如,目标图像606)的平面。PlaneRCNN 906基于Mask-RCNN、深度神经网络(DNN)形成,其检测目标图像606中的对象并且为每个对象生成分割掩模。PlaneRCNN 906被应用于估计2D平面掩模710(M)。具体地,在一些实施例中,PlaneRCNN 906应用FPN以从目标图像606提取中间特征图,并且采用两级检测框架来预测2D平面掩模710。在先前技术中,PlaneRCNN 906包括也估计3D平面参数708的多个单独的分支。PlaneRCNN 906还包括编码器-解码器架构,该架构处理目标图像606的中间特征图以得到每像素深度图Di。来自ROI-Align的实例级平面特征被传递到平面法线分支中以预测平面法线N。细化网络852还被应用于细化平面掩模802和相邻视图之间的重投影损失,以在训练期间实施多视图几何一致性。利用预测的2D平面掩模710(M)、每像素深度图Di和平面法线N,重建出分段平面深度图Dp。
相反,在本申请的一些实施例中,平面检测分支704不估计平面参数708(例如,平面法线N、深度Di和DP),而平面MVS分支754用于确定描述3D平面几何(例如,N,Di,Dp)的平面参数708。在一些实施例中,平面检测分支704不执行平面细化或不确定在平面RCNN中使用的任何多视图重投影损失,以节省存储器。此外,在一些实施例中,平面检测分支704对每个平面实例执行语义标签预测以确定对应的语义类别。每个平面与语义平面标注相关联。如此,平面检测分支704对于分辨率为H×W的目标图像确定一组边界框B={b1,b2,...,bk},置信度得分S={s1,s2,...,sk},其中si∈(0,1),以及语义标签C={c1,c2,...,ck}。
在一些实施例中,应用于平面立体模块902、平面细化模块904和平面检测分支704中的神经网络以端对端方式共同训练。例如,共同训练特征主干810(图8A)、正则化和回归网络812(图8A)、细化网络852(图8B)和PlaneRCNN网络906(图9)。在示例中,在训练期间,使用如下表示的损失函数L来训练平面MVS系统234:
其中wi是可学习权重,用以自动平衡每个损失项的贡献。这种自适应加权策略也被称为损失不确定性学习。具体地,Ldet和其他损失项表示如下:
其中pi是用于框i的前景类别输出(也称为基于像素的平面参数814,其包括用于所预测平面的3D矢量),ti是应用于实证(positive,明确、正)框i的预测回归中的四维(four-dimensional,4D)矢量,vi是目标回归,pu是处于真实类别u的实证框i的输出,是应用于处于真实类别u的实证框i的预测回归中的4维矢量,/>是处于真实类别u的前景像素i的输出,/>是像素i处的目标平面的3D矢量,/>是像素i处的预测细化平面的3D矢量,di是像素i处的预测深度,/>是像素i处的目标深度,以及/>是像素i处的预测细化深度。
图10是根据一些实施例的由客户端设备104实施的用以从多个输入图像(例如,源图像604和目标图像606)生成平面参数的示例性过程的流程图。源图像604由第一相机在第一相机姿态捕获,并且目标图像606由第二相机在不同于第一相机姿态的第二相机姿态捕获。客户端设备104执行平面MVS系统234,该系统获得多个倾斜平面752的信息并且参考多个倾斜平面752生成目标图像606的特征代价体808。平面概率体820从特征代价体808生成,并且具有多个元素,每个元素指示目标图像606中的每个像素位于多个倾斜平面中的一个相应倾斜平面上的概率。平面MVS系统234根据平面概率体820和多个倾斜平面752的信息生成多个基于像素的平面参数814(例如,形成平面图802)。在示例中,每个基于像素的平面参数814包括目标图像606的相应像素的相应3D平面参数矢量。多个基于像素的平面参数814被池化以生成实例平面参数816。
客户端设备104的平面MVS系统234应用倾斜平面假设752来执行平面扫描,并确定基于像素的平面参数814。在一些实施例中,平面MVS系统234获得包括多个参考图像的数据集,并且从多个参考图像中识别多个倾斜平面752。多个倾斜平面752的信息包括相应的平面法线和每个倾斜平面752的相应位置。可微分单应性的表示使用倾斜平面假设752。在平面(ni)Tx+ei=0的两个视图之间的单应性如下所表示的,其中ni是平面法线并且ei是目标图像606的像素i处的偏移
其中符号~表示“尺度意义下相等”,K是内参矩阵。R和t分别是两个视图之间的相对相机旋转和平移矩阵。因此,可以得出结论,在不考虑遮挡和对象运动的情况下,两个视图之间的像素i处的单应性仅由具有已知相机姿态的平面pi=ni T/ei确定。这与利用MVS学习3D平面参数的目标完美对准。通过在平面MVS系统234中采用倾斜平面扫描,像素级平面参数pi=ni T/ei是平面的明确表示。
平面MVS系统234包括一组三维倾斜平面假设nT/e。穿过3D点的候选平面的数量是无限的。针对nT/e的每个维度确定适当的假设范围。在一些实施例中,客户端设备104随机地采样多个(例如,10000个)训练图像,并且针对真值平面nT/e的每个轴绘制分布,这反映了各种场景中的平面参数816的一般分布。客户端设备104通过确保真值的预定义部分(例如,90%)位于由所选择边界定义的范围内来为每个轴选择上限和下限。客户端设备104沿着每个轴在边界之间均匀地采样倾斜平面假设756。
在确定倾斜平面假设752之后,平面MVS系统234通过式(12)将源特征图804扭曲到目标图像806(例如,目标图像806的姿态)。对于每个倾斜平面假设752,平面MVS系统234将经扭曲的源特征805和目标特征806级联。特征沿着假设维度堆叠以构建特征代价体808。换句话说,平面MVS系统234经由从每个倾斜平面752计算的可微分单应性,参考多个倾斜平面将源特征804扭曲到目标图像806(例如,目标图像806的姿态)。对于每个倾斜平面752,经扭曲的源特征和目标特征相组合以生成相应的综合特征。在一些实施例中,综合特征被组合以生成源特征804和目标特征806的特征代价体808。
正则化和回归网络812被应用于对特征代价体808进行正则化以生成平面概率体820。在示例中,正则化和回归网络812包括具有3D CNN层的编码器-解码器架构。平面MVS系统234应用soft-argmax运算以获得初始的基于像素的平面参数814。对于平面假设集P={p0,p1,...,pN-1},像素i处的3D平面参数pi被推断为:
其中U(pi)是假设pi在像素i处的概率。Soft-argmax提供了初始的像素级平面参数张量 其被上采样到原始图像分辨率。在一些实施例中,双线性上采样的直接应用导致过度平滑问题。对于P的每个像素,通过预测8×8×3×3网格并在其3×3粗邻域的学习权重上应用加权组合来应用凸组合,以得到上采样的平面参数P′∈RH×W×3。该上采样在重建的平面深度图756中保留了平面的边界和其他细节。
平面细化模块904被应用于学习初始的基于像素的平面参数814相对于真值的残差。上采样的初始平面参数814(P’)与目标图像606级联以保留图像细节,并被传递到可选地包括多个2D CNN层的细化网络852中,以预测残差参数860(δP')(在图8B中示出)。每个像素级细化参数814’(Pr)是基于像素的平面参数814和对应的残差参数的组合,即,Pr=P’+δP’。
具体地,在一些实施例中,在对多个基于像素的平面参数814进行池化之前,基于目标图像606例如使用细化网络852对多个基于像素的平面参数814进行细化,以生成形成细化平面图802’的多个基于像素的细化参数814’。每个基于像素的细化参数814’包括目标图像606的相应像素的平面细化参数矢量。在一些实施例中,基于目标图像606对多个基于像素的平面参数814进行细化,以生成多个基于像素的残差参数860(δP’),其与基于像素的平面参数814组合以生成包括多个基于像素的细化参数814’的细化平面图802’。多个基于像素的细化参数814’被池化以生成实例细化参数816’,其进一步用于生成细化的实例级平面深度图756’。细化网络852的示例包括2D CNN。
要注意的是,实例平面参数816或细化平面参数816’准确地识别对应平面。在一些实施例中,客户端设备104执行扩展现实应用程序225(例如,AR应用程序)并且在3D平面上渲染虚拟对象。
在一些实施例中,客户端设备104的平面检测分支704使用平面掩模模型906从目标图像606生成平面掩模710(ms)。使用平面MVS模型1010从源图像604和目标图像606生成像素级平面图802的多个基于像素的平面参数814。在示例中,每个基于像素的平面参数802包括目标图像606的相应像素的相应3D平面参数矢量。在一些实施例中,平面MVS模型1010是主干网络810与正则化和回归网络812的组合。基于平面掩模710对多个基于像素的平面参数802(pi)进行池化以生成实例平面参数816(pt),该实例平面参数被转换为对应于目标图像606的实例级平面深度图756(Di)。对于检测到的平面,平面掩模710(ms)包括多个元素,并且像素i处的每个元素σi指示属于检测到的平面的前景概率。实例平面参数816(Pt)基于加权平均表示如下:
实例级平面深度图756(Di)如下重构:
其中Fi是标识对应平面的前景像素的指示符变量。在一些实施例中,对平面掩模710(ms)的每个元素σi应用前景阈值(例如,等于0.5)以确定对应像素i是否被识别为前景,即,检测到的平面的像素。K-1是逆内参矩阵,并且xi是像素i的齐次坐标。
参考图10,在一些实施例中,使用3D CNN 812从特征代价体808生成平面图802的多个基于像素的平面参数814。使用2D CNN 852对多个基于像素的平面参数814进行细化。使用第一池化网络对多个基于像素的平面参数814进行池化。使用第二池化网络对多个基于像素的细化参数814’进行池化。使用PlaneRCNN 906(图9)从目标图像660生成平面掩模710。在一些实施例中,端到端训练3D CNN 812、2D CNN 852、第一池化网络、第二池化网络和PaneRCNN。在一些实施例中,端对端训练主干网络810、3D CNN 812、2D CNN 852、第一池化网络、第二池化网络和PaneRCNN。
图11是根据一些实施例的由客户端设备104实施以形成拼接深度图756S的示例性过程1100的流程图。客户端设备通过用从实例平面参数816(Pt)确定的实例平面深度图756(Di)填充平面像素,形成用于目标图像606的拼接深度图756S。换句话说,在一些实施例中,客户端设备104生成平面图802A的多个基于像素的平面参数814A,其与目标图像606的第一部分的第一平面相关联并且被池化以生成第一实例平面参数816A。客户端设备104生成平面图802B的多个基于像素的平面参数814B,其与目标图像606的第二部分的第二平面相关联并且被池化以生成第二实例平面参数816B。第一实例平面参数816A和第二实例平面参数816B分别被转换为第一实例级平面深度图756A和第二实例级平面深度图756B。用第一实例级平面深度图756A和第二实例级平面深度图756B填充目标图像606的拼接实例级平面深度图756S的第一平面像素子集。拼接实例级平面深度图756S的平面像素子集对应于目标图像606的第一平面和第二平面。
另外,在像素级平面参数802(Pi)捕获局部平面性时,客户端设备104用重建的像素级平面深度图填充非平面像素子集。在一些实施例中,客户端设备104例如使用深度学习模型来重建与目标图像606的不对应于任何平面的区域相对应的第三像素级平面深度图756C。用第三像素级平面深度图756C填充拼接的实例级平面深度图756S的第二非平面像素子集。
图12是根据一些实施例的示例性图像处理方法1200的流程图。为了方便起见,方法1200被描述为由电子设备(例如,移动电话104C)实施。方法1200可选地由存储在非暂时性计算机可读存储介质中并且由计算机系统的一个或多个处理器执行的指令支配。图12中所示的每个操作可以对应于存储在计算机存储器或非暂时性计算机可读存储介质(例如,图2中的存储器206)中的指令。计算机可读存储介质可以包括磁盘或光盘存储设备、固态存储设备(诸如闪存)或其他的一个或多个非易失性存储器设备。存储在计算机可读存储介质上的指令可以包括以下中的一个或多个:源代码、汇编语言代码、目标代码或由一个或多个处理器解读的其他指令格式。方法1200中的一些操作可以相组合和/或一些操作的顺序可以被改变。
电子设备获得(1202)由第一相机在第一相机姿态捕获的源图像604,获得(1204)由第二相机在第二相机姿态捕获的目标图像606,以及获得(1206)多个倾斜平面752的信息。参考多个倾斜平面752生成(1208)目标图像606的特征代价体808,并且从特征代价体808生成(1210)平面概率体820。平面概率体820具有多个元素,每个元素指示源图像604中的每个像素位于多个倾斜平面752中的一个相应倾斜平面上的概率。电子设备根据平面概率体820生成(1212)多个基于像素的平面参数814。在示例中,每个基于像素的平面参数包括(1214)目标图像606的相应像素的相应3D平面参数矢量。在一些实施例中,基于多个倾斜平面752的信息生成基于像素的平面参数814。电子设备对多个基于像素的平面参数814进行池化(1216)以生成实例平面参数816。
在一些实施例中,电子设备分别从源图像604和目标图像606生成源特征804和目标特征806。经由从每个倾斜平面计算的可微分单应性,将源特征804相对于多个倾斜平面752扭曲到目标图像606(例如,目标图像806的姿态)。电子设备将经扭曲的源特征804和目标特征806组合以生成综合特征。具体地,在一些实施例中,例如使用单应性将源特征804根据多个倾斜平面752中的每一个倾斜平面进行扭曲,并且每个经扭曲的源特征804与目标特征806相级联以形成综合特征。对应于多个倾斜平面752的综合特征被组织以形成特征代价体802。此外,在一些实施例中,使用卷积神经网络(CNN)从源图像604生成源特征804。通过根据缩放因子S将源图像604的第一分辨率降低到源特征804的第二分辨率,从源图像604生成源特征804。例如,第一分辨率为H×W,第二分辨率为:H/S×W/S。另外,在一些实施例中,基于综合特征,电子设备参考多个倾斜平面752生成目标特征806的特征代价体808。电子设备使用3D CNN层将特征代价体808转换为平面概率体820。在一些实施例中,电子设备应用具有3D CNN层的编码器-解码器架构来调整特征代价体808。在一些实施例中,电子设备使用具有softmax激活的单个3D CNN层将特征代价体808转换为平面概率体820。
在一些实施例中,电子设备基于目标图像606对多个基于像素的平面参数814进行细化以生成多个残差参数860。多个基于像素的平面参数814和多个基于像素的残差参数860相组合以生成多个基于像素的细化参数814’。每个基于像素的细化参数814’包括目标图像606的相应像素的平面细化参数矢量。此外,在一些实施例中,对多个基于像素的细化参数814’进行池化以生成实例细化参数816’。另外,在一些实施例中,电子设备基于实例细化参数816’生成细化平面深度图756’。在一些实施例中,使用3D CNN从特征代价体808生成多个基于像素的平面参数814。使用2D CNN对多个基于像素的平面参数814进行细化。使用第一池化网络对多个基于像素的平面参数814进行池化。使用第二池化网络对多个基于像素的细化参数进行池化。使用PlaneRCNN从目标图像606生成平面掩模710。在服务器102或电子设备中端到端训练3D CNN、2D CNN、第一池化网络、第二池化网络和PlaneRCNN。
在一些实施例中,电子设备获得(1218)包括多个参考图像的数据集,从多个参考图像中识别(1220)多个倾斜平面752,以及确定(1222)多个倾斜平面752的信息。该信息包括每个倾斜平面752的相应平面法线和相应位置。
在一些实施例中,电子设备从源图像604和目标图像606中的一个生成平面掩模710。基于平面掩模710对多个基于像素的平面参数814进行池化以生成实例平面参数816。
在一些实施例中,电子设备基于实例平面参数816识别3D平面。在电子设备上执行增强现实应用程序,并且在增强现实应用程序中在3D平面上渲染虚拟对象。
在一些实施例中,第一相机和第二相机是(1224)同一相机,并且源图像604和目标图像606是由同一相机捕获的图像帧序列中的两个不同的图像帧。第一和第二相机姿态彼此不同且对应于两个不同的时刻。可替代地,在一些实施例中,第一相机和第二相机彼此不同(1226),并且第一相机姿态和第二相机姿态彼此不同且对应于相同的时刻或两个不同的时刻。
应当理解,已经描述的图12中的操作的特定顺序仅仅是示例性的,并不旨在表明所描述的顺序是操作可以执行的唯一顺序。本领域普通技术人员会意识到处理图像的各种方式。另外,应注意,上文关于图5-11及图13所描述的其它过程的细节也以类似方式适用于上文关于图12所描述的方法1200。为简洁起见,此处不再重复这些细节。
图13是根据一些实施例的示例性图像处理方法1300的流程图。为了方便起见,方法1300被描述为由电子设备(例如,移动电话104C)实施。方法1300可选地由存储在非暂时性计算机可读存储介质中并且由计算机系统的一个或多个处理器执行的指令支配。图13中所示的每个操作可以对应于存储在计算机存储器或非暂时性计算机可读存储介质(例如,图2中的存储器206)中的指令。计算机可读存储介质可以包括磁盘或光盘存储设备、固态存储设备(诸如闪存)或其他的一个或多个非易失性存储器设备。存储在计算机可读存储介质上的指令可以包括以下中的一个或多个:源代码、汇编语言代码、目标代码或由一个或多个处理器解读的其他指令格式。方法1000中的一些操作可以被组合和/或一些操作的顺序可以被改变。
电子设备获得(1302)由第一相机在第一相机姿态捕获的源图像604,以及获得(1304)由第二相机在第二相机姿态捕获的目标图像606。使用平面掩模模型从目标图像606生成(1306)平面掩模710。使用平面多视图立体模型1010(例如,在图10中)从源图像604和目标图像606生成(1308)多个基于像素的平面参数814。在示例中,每个基于像素的平面参数包括(1310)目标图像606的相应像素的相应3D平面参数矢量。基于平面掩模710对多个基于像素的平面参数814进行池化(1312)以生成实例平面参数816。电子设备基于实例平面参数816生成(1314)对应于目标图像606的实例级平面深度图756。在一些实施例中,平面掩模模型包括(1316)PlaneRCNN,该PlaneRCNN用于从包括目标图像606的单个输入图像检测和重建多个分段平面表面。PlaneRCNN采用Mask R-CNN的变型来检测具有平面参数和分割掩模的平面。然后,PlaneRCNN在训练期间以与附近视图具有损失强制一致性的方式共同细化所有分割掩模。
在一些实施例中,平面掩模710包括(1318)多个元素,每个元素对应于相应像素的预测前景概率。通过向多个基于像素的平面参数814中的每一个分配(1320)对应的预测前景概率作为相应权重,并且通过使用相应权重对多个基于像素的平面参数814应用(1322)加权平均操作,对多个基于像素的平面参数814进行池化,以生成实例平面参数816,例如基于式(14)。
在一些实施例中,通过确定对多个前景像素进行标识的基于像素的前景指示符变量F,以及通过基于像素i的逆内参矩阵K-1确定实例级平面深度图756,如下生成实例级平面深度图756:
其中Di为像素i的深度值,pt为实例平面参数816,xi为像素i的齐次坐标,前景指示符变量Fi指示像素i是否为前景像素。此外,在一些实施例中,平面掩模710包括多个元素,每个元素对应于相应像素的预测前景概率。对于每个像素,将平面掩模710的相应元素与预定义的前景阈值进行比较,以确定像素i是否为前景像素并确定对应的前景指示符变量Fi。
在一些实施例中,实例平面参数816包括与目标图像606的第一部分的第一平面相关联的第一实例平面参数816A。实例级平面深度图756包括与目标图像606的第一部分的第一平面相关联的第一实例级平面深度图756A。对于与目标图像606的第二部分相关联的第二平面,电子设备基于第二实例平面参数816B生成(1324)与目标图像606的第二部分对应的第二实例级平面深度图756B,并且电子设备用第一实例级平面深度图756A和第二实例级平面深度图756B填充(1326)目标图像606的拼接实例级平面深度图756S的第一平面像素子集。拼接实例级平面深度图756S的平面像素子集对应于目标图像606的第一平面和第二平面。此外,在一些实施例中,电子设备重建与目标图像606的不对应于任何平面的区域相对应的第三像素级平面深度图756C(例如,使用深度学习模型),并且使用第三像素级平面深度图756C填充拼接实例级平面深度图756S的第二非平面像素子集。
在一些实施例中,在对多个基于像素的平面参数814进行池化之前,电子设备基于目标图像606对多个基于像素的平面参数814进行细化以生成多个基于像素的残差参数860。多个基于像素的平面参数814和多个基于像素的残差参数860相组合以生成多个基于像素的细化参数814’。每个基于像素的细化参数814’包括目标图像606的相应像素的平面细化参数矢量。对多个基于像素的细化参数814’进行池化以生成细化的实例平面参数816,并且基于细化的实例平面参数816生成对应于目标图像606的实例级平面深度图756’。
在一些实施例中,使用平面多视图立体模型、通过获得多个倾斜平面752的信息以及参考多个倾斜平面752生成目标图像606的特征代价体808,生成多个基于像素的平面参数814。此外,在一些实施例中,从特征代价体808生成平面概率体820。平面概率体820具有多个元素,每个元素指示源图像604中的每个像素位于多个倾斜平面752中的一个相应倾斜平面上的概率。另外,在一些实施例中,从平面概率体820生成多个基于像素的平面参数814。可选地,多个倾斜平面752的信息与平面概率体820共同应用以生成多个基于像素的平面参数814。在示例中,每个基于像素的平面参数814包括目标图像606的相应像素的相应3D平面参数矢量。
在一些实施例中,第一相机和第二相机是同一相机,并且源图像604和目标图像606是由同一相机捕获的图像帧序列中的两个不同的图像帧,并且其中第一相机姿态和第二相机姿态彼此不同且对应于两个不同的时刻。
在一些实施例中,第一相机和第二相机彼此不同,并且第一相机姿态和第二相机姿态彼此不同且对应于相同的时刻或两个不同的时刻。
应当理解,已经描述的图13中的操作的特定顺序仅仅是示例性的,并不旨在表明所描述的顺序是操作可以执行的唯一顺序。本领域普通技术人员会意识到处理图像的各种方式。另外,应注意,上文关于图5-12描述的其它过程的细节也以类似方式适用于上文关于图13描述的方法1300。为简洁起见,此处不再重复这些细节。
本文所描述实施方式的各种描述中使用的术语仅出于描述特定实施方式的目的且不意在限制性的。如在各种所描述实施方式和所附权利要求的描述中使用的,单数形式“一个”、“一”和“该”旨在也包括复数形式,除非上下文另有明确指示。还应当理解,如本文所使用的术语“和/或”是指并涵盖相关联列出项中的一个或多个的任何和所有可能组合。还应当理解,当在本说明书中使用时,术语“包括”和/或“包含”表明所陈述特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其群组的存在或添加。另外,应当理解,尽管术语“第一”、“第二”等在本文中可以被使用以描述各种元件,但是这些元件不应受到这些术语的限制。这些术语仅用于将一个元件与另一元件区分开。
如本文所使用的,术语“如果”可选地取决于上下文被解释为意指“当…时”或“在…时”或“响应于确定”或“响应于检测到”或“根据…的确定”。类似地,措辞“如果确定”或“如果检测到[陈述的条件或事件]”可选择地取决于上下文被解释为意指“在确定…时”或“响应于确定”或“在检测到[陈述的条件或事件]时”或“响应于检测到[陈述的条件或事件]”或“根据检测到[陈述的条件或事件]的确定”。
出于说明的目的,已经参考具体实施例描述了前述描述。然而,以上说明性讨论并不旨在穷举或将权利要求限制为所公开的确切形式。鉴于以上教导,许多修改和变型是可能的。实施例被选择并描述,是为了最好地解释操作原理和实际应用,从而使本领域技术人员能够实践。
尽管各个附图以特定顺序示出了多个逻辑阶段,但是不依赖于顺序的阶段可以被重新排序,并且可以组合或取出其他阶段。虽然具体提及了一些重新排序或其他分组,但是它们对于本领域的普通技术人员而言将是明显的,因此本文呈现的排序和分组不是替代方案的穷尽列表。此外,应当认识到,这些阶段可以用硬件、固件、软件或其任何组合来实施。
Claims (16)
1.一种图像处理方法,由电子设备实施,所述方法包括:
获得由第一相机在第一相机姿态捕获的源图像;
获得由第二相机在第二相机姿态捕获的目标图像;
使用平面掩模模型从所述目标图像生成平面掩模;
使用平面多视图立体模型,从所述源图像和所述目标图像生成多个基于像素的平面参数;
基于所述平面掩模对所述多个基于像素的平面参数进行池化,以生成实例平面参数;
基于所述实例平面参数生成与所述目标图像对应的实例级平面深度图。
2.根据权利要求1所述的方法,其中,所述平面掩模模型包括PlaneRCNN,所述PlaneRCNN用于从包括所述目标图像的单个输入图像检测和重建多个分段平面表面。
3.根据权利要求1或2所述的方法,其中,所述平面掩模包括多个元素,每个元素对应于相应像素的预测前景概率,基于所述平面掩模对所述多个基于像素的平面参数进行池化还包括:
对于所述多个基于像素的平面参数中的每一个,分配对应的预测前景概率作为相应权重;
使用相应权重对所述多个基于像素的平面参数应用加权平均运算,以生成所述实例平面参数。
4.根据权利要求1-3中任一项所述的方法,其中,生成所述实例级平面深度图还包括:
确定对多个前景像素进行标识的基于像素的前景指示符变量F;
利用下式基于像素i的逆内参矩阵K-1确定所述实例级平面深度图:
其中,Di为像素i的深度值,pt为实例平面参数,xi为像素i的齐次坐标,前景指示符变量Fi指示像素i是否为前景像素。
5.根据权利要求4所述的方法,其中,所述平面掩模包括多个元素,每个元素对应于相应像素的预测前景概率,所述方法还包括:
对于每个像素,将所述平面掩模的相应元素与预定义的前景阈值进行比较,以确定像素i是否为前景像素以及确定对应的前景指示符变量Fi。
6.根据权利要求1-5中任一项所述的方法,其中,所述实例平面参数包括与所述目标图像的第一部分的第一平面相关联的第一实例平面参数,所述实例级平面深度图包括与所述目标图像的第一部分的第一平面相关联的第一实例级平面深度图,所述方法还包括:
对于与所述目标图像的第二部分相关联的第二平面,基于第二实例平面参数生成与所述目标图像的第二部分对应的第二实例级平面深度图;以及
用所述第一实例级平面深度图和所述第二实例级平面深度图填充所述目标图像的拼接实例级平面深度图的第一平面像素子集,所述拼接实例级平面深度图的平面像素子集对应于所述目标图像的所述第一平面和所述第二平面。
7.根据权利要求6所述的方法,还包括:
重建与所述目标图像中不对应于任何平面的区域相对应的第三像素级平面深度图;
使用所述第三像素级平面深度图填充所述拼接实例级平面深度图的第二非平面像素子集。
8.根据权利要求1-7中任一项所述的方法,在对所述多个基于像素的平面参数进行池化之前,还包括:
基于所述目标图像对所述多个基于像素的平面参数进行细化,以生成多个基于像素的残差参数;
将所述多个基于像素的平面参数和所述多个基于像素的残差参数组合,以生成多个基于像素的细化参数,每个基于像素的细化参数包括所述目标图像的相应像素的平面细化参数矢量;
其中,对所述多个基于像素的细化参数进行池化以生成细化的实例平面参数,以及基于所述细化的实例平面参数生成对应于所述目标图像的实例级平面深度图。
9.根据权利要求1-8中任一项所述的方法,使用所述平面多视图立体模型从所述源图像和所述目标图像生成所述多个基于像素的平面参数还包括:
获取多个倾斜平面的信息;
参考所述多个倾斜平面生成所述目标图像的特征代价体。
10.根据权利要求9所述的方法,使用所述平面多视图立体模型从所述源图像和所述目标图像生成所述多个基于像素的平面参数还包括:
根据所述特征代价体生成平面概率体,所述平面概率体具有多个元素,所述平面概率体的每个元素指示所述目标图像中的每个像素位于所述多个倾斜平面中的一个相应倾斜平面上的概率。
11.根据权利要求10所述的方法,其中,从所述平面概率体生成所述多个基于像素的平面参数。
12.根据权利要求1-11中任一项所述的方法,其中,所述第一相机和所述第二相机是同一相机,以及所述源图像和所述目标图像是由所述同一相机捕获的图像帧序列中的两个不同的图像帧,并且其中,所述第一相机姿态和所述第二相机姿态彼此不同且对应于两个不同的时刻。
13.根据权利要求1-11中任一项所述的方法,其中,所述第一相机和所述第二相机彼此不同,并且所述第一相机姿态和所述第二相机姿态彼此不同,且对应于相同的时刻或两个不同的时刻。
14.根据权利要求1-13中任一项所述的方法,其中,每个基于像素的平面参数包括所述目标图像的相应像素的相应3D平面参数矢量。
15.一种电子设备,包括:
一个或多个处理器;以及
其上存储有指令的存储器,所述指令在由所述一个或多个处理器执行时使所述处理器执行根据权利要求1-14中任一项所述的方法。
16.一种非暂时性计算机可读介质,所述非暂时性计算机可读介质上存储有指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行根据权利要求1-14中任一项所述的方法。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US63/234,618 | 2021-08-18 | ||
US202163285927P | 2021-12-03 | 2021-12-03 | |
US63/285,927 | 2021-12-03 | ||
PCT/US2022/040608 WO2023023160A1 (en) | 2021-08-18 | 2022-08-17 | Depth information reconstruction from multi-view stereo (mvs) images |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117813626A true CN117813626A (zh) | 2024-04-02 |
Family
ID=90434999
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280046591.9A Pending CN117813626A (zh) | 2021-08-18 | 2022-08-17 | 从多视图立体(mvs)图像重建深度信息 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117813626A (zh) |
-
2022
- 2022-08-17 CN CN202280046591.9A patent/CN117813626A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11288857B2 (en) | Neural rerendering from 3D models | |
JP7556161B2 (ja) | エクステンデッドリアリティ環境における画像キャプチャ | |
US12008464B2 (en) | Neural network based face detection and landmark localization | |
CN116391209A (zh) | 现实的音频驱动的3d化身生成 | |
WO2022052782A1 (zh) | 图像的处理方法及相关设备 | |
US20240135559A1 (en) | Depth estimation using image and sparse depth inputs | |
WO2021092600A2 (en) | Pose-over-parts network for multi-person pose estimation | |
CN117218246A (zh) | 图像生成模型的训练方法、装置、电子设备及存储介质 | |
CN116721139A (zh) | 生成图像数据的深度图像 | |
CN117916773A (zh) | 用于在移动设备中同时重建姿态和参数化3d人体模型的方法和系统 | |
US20230093827A1 (en) | Image processing framework for performing object depth estimation | |
WO2023086398A1 (en) | 3d rendering networks based on refractive neural radiance fields | |
WO2023133285A1 (en) | Anti-aliasing of object borders with alpha blending of multiple segmented 3d surfaces | |
CN118648019A (zh) | 具有全局和局部运动补偿的高级时域低光滤波 | |
WO2023277877A1 (en) | 3d semantic plane detection and reconstruction | |
WO2023003642A1 (en) | Adaptive bounding for three-dimensional morphable models | |
CN117581278A (zh) | 移动平台上实时手持式无标记人体动作记录和虚拟形象渲染 | |
WO2023091131A1 (en) | Methods and systems for retrieving images based on semantic plane features | |
WO2023069086A1 (en) | System and method for dynamic portrait relighting | |
CN117813626A (zh) | 从多视图立体(mvs)图像重建深度信息 | |
WO2023069085A1 (en) | Systems and methods for hand image synthesis | |
WO2023023160A1 (en) | Depth information reconstruction from multi-view stereo (mvs) images | |
US20240029354A1 (en) | Facial texture synthesis for three-dimensional morphable models | |
WO2023063937A1 (en) | Methods and systems for detecting planar regions using predicted depth | |
WO2023056149A1 (en) | Image processing framework for performing object depth estimation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |