你或许不会对诸如Snapchat等应用的AR滤镜感到陌生。为了改进AR图形的放置和定位,系统检测图像或视频所描绘的人员,并生成表示骨骼的rig。然后,可以根据rig的移动变化调整AR图形。
在AR滤镜方面富有经验的Snap认为,由于上述方法需要实时生成一个人的rig来调整AR图形放置,这增加了处理复杂性、功耗和内存需求。另外,rig仅表示图像或视频中人的骨骼或骨骼结构运动,不考虑人员的任何外部物理属性,例如重量和皮肤属性等。
针对这个问题,团队在名为“Deforming custom mesh based on body mesh”的专利申请中提出一种通过生成人体网格,根据人体网格变形外部网格的方法,从而提高诸如智能手机这样设备的使用效率。
Snap表示,通过基于对所描绘对象的身体网格的改变来变形外部网格,可以更有效地将一个或多个视觉效果应用于人像,无需生成rig或骨骼结构。特别地,发明可以将一个或多个增强现实元素应用于图像或视频中描绘的人或对象,然后基于由对象身体网格的改变所来修改一个或更多个增强现实元素。
这简化了将AR图形添加到图像或视频的过程,并显著减少了生成这种AR图形的设计约束和成本,并减少了处理复杂性、功率和存储器需求量。这使得能够在小型移动设备实时无缝高效地将AR图形添加到基础图像或视频中。
图1是通过网络交换数据的示例消息系统100框图。消息收发系统100包括客户端设备102的多个实例,每个实例托管多个应用,包括消息收发客户端104和其他外部应用109。每个消息收发客户端104经由网络112通信地耦合到消息收发客户端102的其他实例、消息收发服务器系统108和外部应用服务器110。消息收发客户端104同时可以使用API与本地托管的第三方应用进行通信。
消息收发客户端104可以向用户呈现一个或多个AR体验。作为示例,消息收发客户端104可以检测由客户端设备102捕获的图像或视频中的人员。消息收发客户端104可以为图像或视频中描绘的人员生成身体网格。
身体网格可以是3D网格或多边形网格,包括定义图像或视频中描绘的多面体对象形状的点、边和面的集合。网格可以是多个闭合曲面的集合。
消息收发客户端104可以接收用户对要添加到图像或视频的AR图形的选择。消息收发客户端104可以获得与AR图形相关联的外部网格。
消息收发客户端104可以基于自动建立身体网格和外部网格之间的对应关系来变形外部网格。在致使外部网格变形之后,消息传递客户端104可以将外部网格定位在图像或视频内的3D身体网格之上或相对于3D身体网格定位。
消息收发客户端104然后可以在图像或视频内显示AR图形。在一个示例中,AR图形可以是时尚项目,例如衬衫、裤子、裙子、连衣裙、珠宝、钱包、帽子、眼镜、徽标或任何其他合适的项目或对象。
图5示出了外部网格变形系统224的框图。外部网格变形系统224包括一组对输入数据进行操作的组件510。输入数据在训练阶段期间从一个或多个数据库获得,并且在使用AR/VR应用时,输入数据可以由消息客户端104从客户端设备102的RGB摄像头获得。
外部网格变形系统224包括机器学习技术模块512、骨骼关键点模块511、身体网格模块514、图像修改模块518、AR效果选择模块519、外部网格模块530、3D身体主子哦那个模块513、全身分割模块515和图像显示模块520。
在训练期间,外部网格变形系统224从训练数据501接收给定的训练图像或视频。外部网格变形系统224使用机器学习技术模块512在给定的训练图像或视频应用一种或多种机器学习技术。机器学习技术模块512从给定的训练图像或视频中提取一个或多个特征,以估计图像或视频所描绘的用户的3D身体网格。
机器学习技术模块512检索与给定训练图像或视频相关联的3D身体网格信息。机器学习技术模块512将估计的3D身体网格与作为训练数据502的一部分提供的ground truth服装3D身体网格进行比较。
基于比较的差异阈值或偏差,机器学习技术模块512更新一个或多个系数或参数,并获得一个或更多个附加的训练图像或视频。在已经处理了指定数量的时期或训练图像批之后和/或当差异阈值或偏差达到指定值时,机器学习技术模块512完成训练,并且机器学习技术单元512的参数和系数存储在训练的机器学习技术307中。
在训练期间,机器学习技术模块512从骨骼关键点模块511接收2D骨骼关节信息。骨骼关键点模块511追踪给定训练图像中描绘的用户的骨骼关键点,并提供骨骼关键点的2D或3D坐标。机器学习技术模块512使用所述信息来识别训练图像中描绘的用户的区分属性并生成3D身体网格。
由机器学习技术模块512生成的3D身体网格提供给身体网格模块514。身体网格模块514可以追踪图像或视频中描绘的对象,并更新与对象相关联的3D身体网格。在一个示例中,身体网格模块514可以基于由3D身体追踪模块513提供的3D身体追踪信息来追踪对象。身体网格模块514可以在3D中更新3D身体网格,并且可以调整3D身体网格的位置、身体类型、旋转或任何其他参数。
图6是外部网格变形系统224的输出的图解表示。具体地,图6示出了由身体网格模块514生成和追踪的3D身体网格600。在一个示例中,身体网格模块514可以跨视频帧追踪3D身体网格的变化。身体网格模块514可以向外部网格模块530提供对3D身体网格的改变,以基于对3D身体网络的改变来更新和变形外部网格。
在一个示例中,身体网格模块514可以确定视频第一帧的法线切线空间中的3D身体网格的第一组坐标,并且可以确定第二帧的法线正切空间中的第二组坐标。身体网格模块514可以实时计算法向切线空间中的第一和第二组坐标之间的变化,并且可以将法向切线区域中的第一组坐标与第二组之间的变化传递到外部网格。
具体地,外部网格模块530可以基于法线切线空间中的第一和第二组坐标之间的变化来更新和调整外部网格的3D位置和3D定向。以这种方式,外部网格模块530无需使用真实世界对象的rig或骨骼信息就可以变形与AR图形相关联的外部网格。
外部网格模块530可以从AR效果模块519接收AR图形的指示。外部网格模块530可以访问数据库并在数据库中搜索与给定AR图形相关联的外部网格。外部网格模块530可以获得外部网格的放置信息。
在一个示例中,放置信息可以指定与真实世界图形相对应的身体网格边缘或身体部分。放置信息同时可以指定边缘或身体部分之间的最小距离。作为响应,外部网格模块530可以在多个视频帧中保持外部网格(和相应的AR图形)的位置,使其距离身体网格的边缘或身体部分至少最小距离。
在一个示例中,放置信息可以指定主体网格的相对UV通道坐标。相对UV通道坐标可用于在描绘对象的图像或视频内保持和放置外部网格(和相应的AR图形)。在这种情况下,外部网格模块530可以获得与真实世界对象相对应的身体网格的UV通道坐标。
外部网格模块530同时可以基于UV坐标和放置信息中的相对UV通道坐标来计算外部网格的一组UV通道坐标。例如,放置信息可以指定3D主体网格的特定UV通道坐标的最小或最大距离。作为响应,外部网格模块530可以将外部网格放置在UV坐标的最小或最大距离内的一组UV通道坐标处。结果,与外部网格相关联的对应AR图形添加到图像或视频中对应于UV坐标集的位置。
基于针对3D身体网格检测到的放置信息和变化,外部网格模块530可以根据在3D身体网格中检测到的变化变形外部网格。在一个示例中,如果3D身体网格确定为沿着第一轴移动第一量,则外部网格类似地沿着第一轴运动第一量。作为另一示例,外部网格可以以与3D身体网格相对应的方式旋转或扭曲。具体地,如果3D主体网格确定为沿着旋转轴旋转第二量,则外部网格类似地沿着旋转轴转动第二量。
另一个示例是,外部网格可以根据图像或视频帧中身体形状、身体状态或身体属性的更改而变形。例如,人由于呼吸而周期性地扩张和收缩3D身体网格的胸部(或上身),所以可以根据这一点,外部网格的相应部分(但不包括外部网格的任何其他部分)可以根据呼吸周期的尺寸膨胀和收缩进行变形。
AR效果选择模块519基于与从身体网格模块514接收的对象相关联的身体网格,选择一个或多个AR元素或图形并将其应用于图像或视频中描绘的对象。将与图像或视频中描绘的真实世界对象相结合的AR图形提供给图像修改模块518,以呈现描绘穿着AR对象(例如AR衬衫)的人员的图像或视频。
图像修改模块518可以基于由效果选择模块519选择的AR效果来调整由摄像头捕获的图像。例如根据用户3D身体网格的更改更改AR服装的物理属性(变形),并应用一个或多个AR元素。图像或视频由图像显示模块520提供给客户端设备102,然后可以发送给另一用户或存储以供以后访问和显示。
在一个示例中,图像修改模块518和/或外部网格模块530从3D身体追踪模块513接收表示图像中描绘的用户的3D位置的3D身体追踪信息。3D身体追踪模块513通过使用附加的机器学习技术处理训练数据501来生成3D身体追踪信息。可以从全身分割模块515接收全身分割。全身分割模块515通过使用机器学习技术处理训练数据501来生成全身分割。
如图7所示,AR效果选择模块519可以将一个或多个AR图形730应用于图像或视频700中描绘的对象。其中,所述对象对应于由客户端设备102使用外部网格720捕获的3D身体网格710。例如,外部网格模块530可以接收3D身体网格710,并且可以从存储设备获得与AR图形730相关联的外部网格720。
外部网格模块530可以获得与外部网格720相关联的放置信息740。放置信息740可以指定邻近参数742和/或UV通道坐标744。基于放置信息740,外部网格模块530可以指定在图像或视频中放置和定位外部网格720(以及对应的AR图形730)的位置。
在一个示例中,外部网格模块530可以计算外部网格720和3D身体网格710之间的对应722。如上所述,所述对应关系可用于基于3D身体网格710如何变形来沿着一个或多个轴724在3D中变形外部网格720。当外部网格模块530变形外部网格时,相应的AR图形被类似地变形并基于放置信息740进行渲染,从而在图像或视频内显示。
如图8所示,在外部网格基于变形信息和3D身体网格710的移动而变形之后,渲染相应的AR图形730以显示在图像或视频之中。具体地,图像或视频800包括用户810的描绘和变形AR图形730(AR衬衫)。
评论