微软 AR/VR专利提出手部交互生成简化网格的优化方法
优化的网格简化技术
(映维网Nweon 2023年10月30日)AR/VR内容可以表示为由摄像头阵列生成的点云构建的网格。网格包括定义对象结构的多面体表示的多个顶点、边和面。通过简化网格以减少顶点、边和面的数量,这减少了网格占用的内存量,减少了处理时间,以满足不同设备的视频编码预算。然而,简化网格会降低网格详细区域的分辨率,并在AR/VR内容中引入视觉伪影。
另外,AR/VR系统使用基于计算机视觉和ML机器学习的工具来检测图像中的手和手指。然而,准确地将图像的检测部分映射到网格具有挑战性。同时,训练模型在运行时输入图像中识别手和手指具有挑战性。
所以在名为“Mesh simplification”的专利申请中,微软提出了一种用于生成简化网格的优化方法。所述简化网格可以保留诸如手等区域的结构细节。
简单地说,基于光滑网格的离散曲率,从初始网格中的多个顶点中识别一个或多个候选手指顶点。一个或多个手指顶点根据每个手指顶点的邻域中一个或多个其他顶点的离散曲率,从一个或多个候选手指顶点中识别一个或多个手指顶点。
在一个或多个手指顶点执行扩展,以从一个或多个手指顶点生长一个或多个patch。其中,所述patch在网格简化中剥夺优先级。通过这种方法,可以在网格简化过程中保留手部对应区域的细节,并准确地识别了所述区域,无论肤色或其他纹理如何。
图1示出用于生成简化网格102的计算系统104。计算系统104包括处理器106和存储器108。所述计算系统104配置为接收包含目标112的3D结构表示的初始网格110。初始网格110包括目标112的手114。如上所述,初始网格110包括多个顶点、边和面。
图2显示了初始网格200的另一个例子。初始网格200使用在多个边204和顶点206处连接的多个三角形面202描绘手的一部分。在图2的示例中,初始网格200包含大约400000个三角形202。
再次参考图1,初始网格110是使用由一个或多个摄像头118输出的图像传感器数据116生成。在一个实施例中,计算系统104配置为接收来自所述一个或多个摄像头118的图像传感器数据116。
在这样的示例中,计算系统104配置为处理图像传感器数据116以生成包括目标112的手114的点云120。点云120用于生成初始网格110。这样,所述计算系统104配置为在本地处理所述图像传感器数据116以生成所述初始网格110。在其他示例中,初始网格110在另一个计算系统生成。以这种方式,从计算系统104中卸载计算十分昂贵的图像传感器数据116的处理。
如上所述,初始网格110是一个高分辨率网格。与简化网格102相比,厨师网格每单位体积具有更多数量的面、边和/或顶点。初始网格110可能包含大约400000个三角形,而简化网格102包含较少的三角形,例如7000-20000个三角形。
因此,简化的网格102满足可在各种设备播放高质量视频流的编码预算。它同时在计算设备的内存中占用更少的空间,并且处理速度比初始网格110更快。
接下来,将计算系统104配置为基于初始网格110生成平滑网格122。指尖可以根据网格的局部曲率与初始网格110的其他区域区分开来。
图3显示了在图2初始网格200计算平均曲率流生成的平滑网格208。如图3所示,平均曲率流平滑网格,同时保留手指的特征,如指尖210。保留所述特征可以减少误报的发生。
再次参考图1,计算系统104进一步配置为,对于多个顶点中的每个顶点,确定光滑网格122的离散曲率124。一个或多个候选手指顶点126是从多个顶点中识别出来,这是基于一个或多个候选顶点126的每个的离散曲率124大于或等于阈值曲率128的确定。
如上所述,指尖周围的区域局部凸出,手指又长又窄。计算系统104过滤平滑网格122以识别与特征对应的顶点。因此,与受训练偏差影响的计算机视觉和其他基于ML的技术相比,可以在不同的肤色和图像纹理中准确地识别一个或多个候选手指顶点。
平滑网格122被映射到初始网格110。例如,图3的平滑网格208与图2的初始网格200具有相同的顶点数。通过这种方式,平滑网格208上的顶点可以索引到初始网格200中相应顶点206的位置。
这样,将图1的计算系统104配置为基于平滑网格122中一个或多个对应位置的离散曲率124来识别初始网格110中的一个或多个候选手指顶点126。这为计算系统104提供了初始网格110内可能对应于指尖的一个或多个候选位置。
如图3所示,平均曲率流网格208的大部分是光滑的。对应于指尖210的细的、窄的区域在平滑网格208中变成尖的。与指尖对应的顶点210的曲率大于阈值曲率。
图1的计算系统104配置为识别高于第一阈值高度130和/或低于第二阈值高度132的一个或多个候选手指顶点126。例如,图4显示了叠加在图2的初始网格200的对应于第一阈值高度的第一虚线214和对应于第二阈值高度的第二虚线216。
识别高于第一阈值高度和/或低于第二阈值高度的一个或多个候选手指顶点排除可能选为假阳性的候选顶点,例如对应于鼻尖218或受试者裤褶220的顶点。识别高于第一个阈值高度和/或低于第二个阈值高度的候选手指顶点同时可以比处理整个网格更快地识别候选手指顶点。
接下来,将计算系统104配置为对所述一个或多个手指顶点136执行扩展,以从所述一个或多个手指顶点136生长一个或多个patch138。
再次参考图1,所述计算系统104配置为优先化一个或多个patch138以进行网格简化。以这种方式,一个或多个patch138指定在简化初始网格110的同时保持分辨率的区域。所以,网格简化可以保留与手相对应的区域中的细节。
在一个实施例中,计算系统104配置为生成简化网格102。在其他示例中,在另一计算系统上生成简化网格102。通过这种方式,网格简化中可能需要大量计算的部分可以从计算系统中解脱出来。
可将纹理146应用于简化网格102以产生有纹理的简化网格148。所述纹理化简化网格148通过诸如头戴式显示器设备的显示设备152输出用于显示。以这种方式,与使用高分辨率非简化网格生成的内容相比,通过简化网格生成的3D内容占用的内存更少,处理的计算成本更低。
图7和8显示了如上所述的生成简化网格示例。参照图7,帧802示出包含手的简化网格的一部分。在帧802中描述的简化网格包括7000个三角形。第804帧显示了应用于第802帧简化网格的纹理。如图804所示,所述纹理网格包括尖锐的指尖806-810和缺失的指尖812形式的视觉伪影。
帧814显示另一简化网格的一部分。在帧814中描述的简化网格包括7000个三角形,并且通过如上所述的初始网格的一部分的识别和取消优先级来产生。帧816显示了应用于帧814简化网格的纹理。如图816所示,根据上述方法生成的简化网格比在帧802-804中描述的网格包含更少的视觉伪影。
图8示出包含简化网格的一部分。帧902描述的简化网格包括使用网格抽取产生的30000个三角形,而不识别与手对应的一个或多个patch。帧904显示了应用于帧902简化网格的纹理。如904所示,所述纹理网格包括以尖状和变形的指尖906的形式呈现的视觉伪影。
帧908显示了另一个简化网格的一部分,所述网格包含与帧902和904相同的场景。在帧908中描述的简化网格包括30000个三角形,并且通过如上所述的初始网格的一部分识别和取消优先级来产生。帧910显示了应用于第908帧简化网格的纹理。
如图908和910所示,根据上述方法产生的简化网格比在902-904中描绘的网格包含更少的视觉伪影。这种视觉质量的提高可以用来减少AR/VR内容和其他3D网格模型的大小。这可以提高处理速度并降低功耗,并使用户能够通过具有精简计算资源的平台与内容进行交互。
图9A-9B示出示出用于生成简化网格的示例方法1000。
在步骤1002,接收包含受试者的手的初始网格,其中所述初始网格包括多个顶点。
在步骤1004,接收来自一个或多个摄像头的图像传感器数据。处理所述图像传感器数据以生成包含手的点云。方法1000同时包括使用点云生成初始网格。
在1006,生成平滑网格。平滑网格可以通过计算网格的曲率来识别手指。在1008,生成平滑网格包括计算初始网格的平均曲率流。
在步骤1010,对于多个顶点中的每个顶点,确定光滑网格的离散曲率。在1012,基于所述一个或多个候选顶点的每个的离散曲率大于或等于阈值曲率的确定,从所述多个顶点中识别一个或多个候选手指顶点。
在1014中,识别高于第一阈值高度和/或低于第二阈值高度的一个或多个候选手指顶点。在1016,将平滑网格映射到初始网格。识别一个或多个候选手指顶点进一步包括基于平滑网格中一个或多个对应位置的离散曲率识别初始网格中的一个或多个候选手指顶点。
在1018,基于确定每个手指顶点的邻域内的一个或多个其他顶点的离散曲率大于或等于阈值曲率,从一个或多个候选手指顶点中识别一个或多个手指顶点。
现在参考图9B,在1020,在一个或多个手指顶点执行扩展,以从一个或多个手指顶点生长一个或多个patch。
在1022中,取消一个或多个patch的优先级以用于网格简化。在1024,取消用于网格简化的一个或多个patch的优先级,包括在网格简化队列的底端将对应于一个或多个patch的初始网格的一部分排队,使得对应于一个或多个patch的简化网格的一部分具有比简化网格的另一部分更高的分辨率。以这种方式,与一个或多个patch对应的简化网格的部分包括比简化网格的另一部分更高的细节级别。
在1026中,将纹理应用于简化的网格。以这种方式,与使用初始高分辨率网格生成的内容相比,通过简化网格生成的3D内容占用的内存更少,处理的计算成本更低。
上述方法可用于生成保留手指和/或手的几何细节的简化网格。根据平滑网格的离散曲率识别一个或多个候选手指顶点。以这种方式识别一个或多个候选手指顶点可以在不同肤色和图像纹理中保持准确性。
一个或多个手指顶点根据每个手指顶点的邻域中一个或多个其他顶点的离散曲率,从一个或多个候选手指顶点中识别一个或多个手指顶点。这可以减少误报的发生。接下来,通过扩展一个或多个手指顶点来生长一个或多个patch。为了网格简化,一个或多个patch取消优先级。因此,简化的网格保留了与手相对应的区域中的细节。
名为“Mesh simplification”的微软专利申请最初在2022年4月提交,并在日前由美国专利商标局公布。