雨果巴拉:行业北极星Vision Pro过度设计不适合市场

Meta AR/VR专利介绍通过灰度立体图像的自动着色来实现全彩透视

查看引用/信息源请点击:映维网Nweon

通过灰度立体图像的自动着色来实现全彩透视

映维网Nweon 2024年03月14日)透视功能的重要性日益重要,尤其是全彩透视的发展。在名为“Automatic colorization of grayscale stereo images”的专利申请,Meta介绍了一种通过灰度立体图像的自动着色来实现全彩透视的方法。

Meta表示,在人工现实设备中实现灰度摄像头可能更具成本效益,并且灰度图像在弱光下可以表现得更好。来自灰度摄像头的图像馈送可用于向用户提供真实世界的透视可视化。为了改善用户体验,以彩色提供的图像可以为用户提供更真实的体验。所以为了给灰度图像着色,可以使用第三个RGB摄像头来提供颜色信息。与RGB摄像头相结合的灰度摄像头可用于对灰度摄像头捕获的图像进行着色。

在具体实施例中,灰度图像的着色过程可以最初从使用已知技术对左灰度图像着色开始。左灰度图像的着色可以从人工现实设备接收来自左灰度摄像头的左灰度图像和同一场景的中心参考彩色图像开始。

图像可以从两个不同视点从两个独立的摄像头捕获,以生成左侧灰度图像和彩色图像。视觉几何组VGG可用于将左灰度图像和彩色图像转换为特征映射。通过确定左灰度图像的特征映射与彩色图像的特征映射之间的空间对应关系,可以生成相关映射。

可以将来自彩色图像的颜色向左侧灰度图像扭曲,以生成左灰度图像的彩色版本。可以生成相似度图,以指示在左灰度图像的彩色版本中每个位置的参考颜色采样的可靠性。着色神经网络可以使用扭曲的彩色图像和类似的映射来生成最终的彩色左灰度图像。

在具体实施例中,在对左灰度图像进行着色后,着色过程可以继续对右灰度图像进行着色。右灰度图像的着色过程可以按照与左灰度图像相同的步骤进行,但可以将着色后的左侧图像作为着色神经网络的额外输入,以确保左侧和右侧彩色图像之间的颜色一致性。

生成对抗网络GAN可用于训练着色神经网络。输出的彩色图像可以提供给鉴别器,

图2示出了利用设备的视频编码器230的优化深度估计技术。视频编码器230设计用于视频压缩以预测连续视频帧中像素的运动,以避免存储相同像素的重复。视频编码器230通过利用通常在连续帧之间存在的时间一致性来实现压缩。例如,在由相对于环境移动的摄像头捕获的视频序列中,逐帧差异可能相当小。在一帧中出现的大多数物体会继续出现在下一帧中,由于摄像头视角的变化,相对于帧只有轻微的偏移。

因此,视频编码器不是存储每帧中所有像素的全彩色值,而是预测一帧中的像素来自前一帧,反之亦然。所编码的帧可以称为运动矢量。运动矢量中的每个网格或单元格对应于运动矢量所表示的帧ft中的一个像素。每个网格或单元格中的值在像素空间中存储一个相对偏移量,其中所述偏移量标识前一帧ft-1中可能对应的像素位置。

在具体实施例中,可以使用设备的视频编码器计算两个立体图像之间的对应关系。图2示出分别同时捕获一对立体图像210A和210B的两个立体摄像头200A和200B。使用为设备的视频编码器提供的API,透视特征可以指示视频编码器230处理两个立体图像210A和210B。然而,由于视频编码器230设计为查找以高帧率捕获的顺序帧之间的对应关系,这意味着顺序帧可能非常相似,因此让视频编码器230查找同时捕获的两个立体图像210A-210B之间的对应关系可能产生次优结果。

所以在特定实施例中,图像210A-210B中的一个或两个可以基于两个摄像头200A和200B之间已知的物理分离进行平移,从而使图像210A和210B更加相似。

视频编码器230的输出可以是使用每像素偏移量描述图像210A和210B之间预测的对应关系的运动矢量240。然而,运动向量240可能有噪点。因此,在具体实施例中,运动矢量240可经过一个或多个验证过滤器250以识别更可靠的对应预测。例如,一个验证滤波器250可以使用摄像头200A和200B的已知几何形状来确定每个像素的极线。

使用与每个像素相关联的极线,计算设备可以确定由运动向量240识别的相应像素是否为合理的候选者。例如,如果相应的像素落在极线的阈值距离上或在阈值距离内,则相应的像素可认为是可信的。否则,对应的像素不可信,对应的结果将被拒绝用于后续的深度计算。

在具体实施例中,验证滤波器250可基于时间观察评估由运动矢量240找到的对应的可靠性。时间滤波过程可应用于原始运动矢量240或仅应用于在极外滤波过程中幸存的运动矢量240的子集。

对于经过时间滤波处理的每个通信,系统可以使用三角剖分法计算深度值。深度值可以表示为三维空间中的点云。时间滤波过程可以检查同一点是否可以随时间一致地观察到。例如,计算系统可以有一个摄像头从特定的当前视角捕获图像,并将其与点云在与当前视角相关的屏幕空间中的投影进行比较。

给定当前视角,设备可以计算在屏幕空间中的位置,用户应该看到点云中的每个点。这可以通过将每个点投射到当前透视图的点表示来实现。当每个点投影时,它通过当前视角的屏幕空间。投影点与屏幕空间相交的位置对应于该点预计出现的像素位置。通过将投影像素位置与捕获图像中的相同像素位置进行比较,系统可以确定两个像素是否可能相互对应。

在验证过滤过程250之后,系统将具有立体声输出或深度测量260的集合。集合260可能非常稀疏(或低分辨率)。例如,如果每个图像的分辨率为640×480像素,这意味着高精度对应可以产生超过307,200个深度测量或点。由于运动矢量240的噪点和不准确性,经过验证滤波过程250后的可靠点数可能在范围内,例如1000-3000点。深度测量集合的密度不均匀意味着在某些区域缺乏几何信息。因此,特定实施例可以执行致密化处理以填充缺失的深度信息。

一旦计算设备基于深度测量生成点云,它就可以生成观察环境轮廓的3D网格表示。对于高性能设备,可以生成环境中物体的精确模型。然而,对于资源有限的设备,生成这种模型和/或用于生成模型的底层深度测量的成本可能令人望而却步。因此,环境的3D网格表示可以是环境中对象的一般轮廓的粗略近似值。在特定实施例中,可以使用单个3D网格来近似观察到的所有对象。

在图3A和3B所示的特定示例中,3D网格300A的半径为2米。由于3D网格300A与观看者310的距离相等,因此它在用户周围形成一个半球。

可以根据所述点320对所述3D网格300A进行变形,以便对所述环境的轮廓进行建模。3D网格300A可以基于310位置和点云中的320点进行变形。为了确定3D网格300A的哪一部分对应于点云320中的每个点,计算设备可以从310位置向该点投射概念射线。每条射线将与3D网格的原始相交。

例如,图3A显示了从310投射到点320A的射线330。射线330在特定位置340与3D网格300A相交。因此,网格位置340根据与点320A相关联的深度值进行变形。例如,如果点320距离310有2.2米,则与网格位置340相关联的深度值可能会从初始值2米更新为2.2米。图3B示出变形过程可能产生的变形3D网格300B。此时,变形网格300B表示观察者310所观察到的物理环境的轮廓。

图4示出可用于表示3D网格的数据结构的示例。在具体实施例中,定义3D网格的形状的深度值可以存储在矩阵400A中。构成网格300A的基元的顶点可能在矩阵400A中都有一个相应的单元。

在特定实施例中,矩阵400A内的每个单元的坐标可以对应于相对于310测量的网格中顶点的径向坐标。最初,可以将矩阵400A的每个单元中存储的深度初始化为相同的距离(例如2米),从而得到如图3A所示的半球网格300A。基于上述光线投射工艺,可以更新存储在矩阵400A中的深度值。

再次参考图3A,向320A点投射的射线330可以在位置340与网格相交。计算设备可以确定网格300A的位置340对应于矩阵400A中的单元460A。存储在460A单元中的当前深度可以更新,以反映320A点的深度值,在给定的具体示例中为2.2米。

因此,更新后的矩阵400B将2.2作为深度值存储在更新后的单元格460B中。如前所述,点云中验证深度测量的数量可能是稀疏的,这反过来会导致网格具有不完整的信息。

所以在特定实施例中,在基于点云中的可用点更新整个矩阵之后,可以使用平滑技术或任何其他合适的技术处理更新的矩阵,以有效地平滑3D网格样条的轮廓并填充矩阵中缺失的深度值。

图5提供了基于3D网格的3D透视渲染示意图。在特定实施例中,呈现系统可以确定用户相对于环境的102当前观看位置。在具体实施例中,系统可以使用SLAM或其他合适的技术计算头显104的位姿。

基于头显104的已知机械结构,系统可以利用头显104的姿态偏移来估计用户眼睛500A和500B的视点。然后,系统可以为用户的每只眼睛500A-B呈现一个透视图像。

例如,为了呈现用户右眼500A的穿透图像,系统可以从右眼500A的估计视点投射光线520,穿过虚拟屏幕空间510A的每个像素,以查看光线将与网格300B的哪一部分相交。一旦找到交点521,渲染系统可以对映射到交点521的纹理图像中的对应点进行采样。在具体实施例中,头显104的摄像头107A-B捕获的图像可用于生成网格300B的纹理。这样做可以使渲染的图像看起来更像实际的物理对象。

以类似的方式,渲染系统可以呈现用于用户左眼500B的透视图像。在所示的示例中,射线530可以从左眼视点500B通过左侧屏幕空间510B的像素532投射。射线530与网格300B相交于位置531。然后,渲染系统可以在与网格300B上的位置531对应的纹理位置对纹理图像进行采样,并计算要由像素532显示的适当颜色。由于图像是从用户的视点500A-B重新渲染,因此图像将看起来很自然,并提供适当的视差效果。

在特定实施例中,头显捕获的图像可以是灰度的,为了提供颜色,特定的实施例可以使用机器学习模型为灰度图像上色。

图6示出用于对灰度图像着色的框图600。所述框图600示出在不同时间、时间to和时间ti捕获的两对立体图像。具体地说,框图600显示了在时间1捕获的左601和右602灰度图像的立体对,以及在时间1捕获的左611和右612灰度图像的另一个立体对。

图像601、602、611、612可以通过着色机器学习模型620进行处理,分别生成相应的着色图像603、604、613、614。可以训练着色机器学习模型620将灰度图像转换为彩色图像。例如,可以在一组训练样本上训练着色模型620。

在训练迭代期间,着色ML模型620可以处理训练样本的灰度图像并生成输出彩色图像。然后可以使用损失函数将输出彩色图像与训练样本的真色图像进行比较。损失函数可以量化输出彩色图像与真地彩色图像之间的误差。然后可以使用量化误差来更新着色ML模型620的参数,以便它在下一次迭代中表现更好。

图7示出用于对灰度图像着色的示例性处理700。在具体实施例中,计算系统可以执行本文所述的过程700。所述过程700可包括语义分析702、特征图生成704、相关映射生成706、相似和翘曲阶段708、最终着色710和判别712。

所述着色过程700的输入可包括一个或多个先前的左侧彩色图像714、一个或多个左侧灰度图像718、一个或多个中心参考彩色图像736和一个或多个右侧灰度图像744。计算系统的一个或多个面向外部的摄像头可以捕获进入过程700的一个或多个输入。

计算系统可以向过程700生成一个或多个输入。计算系统可以使用左灰度摄像头来捕获一个或多个左灰度图像714。计算系统可以使用中央RGB摄像头来捕获一个或多个中央参考彩色图像736。计算系统可以使用右灰度摄像头来捕获一个或多个右灰度图像744。计算系统可以使用所述过程700生成一个或多个先前留下的彩色图像714。

图8示出用于对灰度图像着色的示例性方法800。

所述方法可以从步骤810开始,其中计算系统可以使用位于第一摄像头姿态的第一摄像头捕获第一灰度图像,并使用位于第二摄像头姿态的第二摄像头捕获第二灰度图像。

在步骤820中,计算系统可以在第三摄像头姿态处使用RGB摄像头捕获参考彩色图像。在具体实施例中,计算系统可以使用处于不同摄像头姿势的一个或多个RGB摄像头捕获多个参考彩色图像。第三照摄像头姿势可以不同于第一照摄像头姿势或第二照摄像头姿势。

在步骤830中,计算系统可以基于所述参考彩色图像和所述第一灰度图像生成第一彩色图像。在具体实施例中,计算系统可以使用着色机器学习模型来生成第一彩色图像。第一彩色图像可以与第一摄像头姿势处于相同的摄像头姿势。作为示例,所述第一彩色图像可以包含与所述第一灰度图像具有相同方向的相同对象,并向每个对象添加颜色。

在步骤840中,计算系统可以基于参考彩色图像、第二灰度图像和第一彩色图像生成第二彩色图像。计算系统可以使用着色机器学习模型来生成第二彩色图像。第二彩色图像可以与第二灰度图像具有相同的摄像头姿态。作为示例,第二彩色图像可以包含与第二灰度图像相同方向的相同物体,并向每个对象添加颜色。如果要对附加的灰度图像进行着色,则系统可以进一步基于第三个灰度图像生成第三个彩色图像、基于第四个灰度图像生成第四个彩色图像等等。

在具体实施例中,计算系统可以基于第一彩色图像生成第一视觉输出和基于第二彩色图像生成第二视觉输出。例如,第一和第二视觉输出可以是用户的物理环境的透视可视化,在这种情况下,第一和第二彩色图像可以用作用于呈现透视可视化的纹理。如果第一和第二彩色图像是一对立体图像,则可以通过立体显示器的左右屏同时显示第一和第二视觉输出。另一方面,如果第一和第二彩色图像是一对时间相关的图像,则第一和第二视觉输出可以依次显示在显示器的同一屏幕之上。

在适当的情况下,特定实施例可以重复图8所示方法的一个或多个步骤。

相关专利Meta Patent | Automatic colorization of grayscale stereo images

名为“Automatic colorization of grayscale stereo images”的Meta专利申请最初在2022年8月提交,并在日前由美国专利商标局公布。

本文链接https://news.nweon.com/118912
转载须知:转载摘编需注明来源映维网并保留本文链接
素材版权:除额外说明,文章所用图片、视频均来自文章关联个人、企业实体等提供
QQ交流群苹果Vision  |  Meta Quest  |  微软HoloLens  |  AR/VR开发者  |  映维粉丝读者

您可能还喜欢...

资讯