CN116206040A - 一种获取ao贴图的方法及装置 - Google Patents
一种获取ao贴图的方法及装置 Download PDFInfo
- Publication number
- CN116206040A CN116206040A CN202111430926.0A CN202111430926A CN116206040A CN 116206040 A CN116206040 A CN 116206040A CN 202111430926 A CN202111430926 A CN 202111430926A CN 116206040 A CN116206040 A CN 116206040A
- Authority
- CN
- China
- Prior art keywords
- view
- layer
- map
- neural network
- parameters
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/06—Ray-tracing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Graphics (AREA)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Artificial Intelligence (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Health & Medical Sciences (AREA)
- Geometry (AREA)
- Image Analysis (AREA)
Abstract
本申请公开一种获取AO贴图的方法及装置,涉及图像处理领域,以提高获取高质量的AO贴图的效率。该方案包括:根据3D物体N个视角的二维图像,及N个视角的相机参数,获取3D物体在N个视角中每个视角的几何信息图层,几何信息图层包括法线图;N大于或等于2;将每个视角的几何信息图层,输入已训练的神经网络,得到每个视角的单视角AO图层;根据3D物体N个视角的二维图像,进行UV参数化,获取3D物体的网格模型的UV参数;按照获取的UV参数,融合每个视角的单视角AO图层,得到3D物体的AO贴图。
Description
技术领域
本申请涉及图像处理领域,尤其涉及一种获取环境光遮蔽(ambient occlusion,AO)贴图的方法及装置。
背景技术
随着计算机图形技术的发展,用户对图形画面的逼真度要求越来越高,而图形画面逼真的最关键环节就是光照/光影效果,如果能非常近似的模拟与现实生活一样的光照效果,那么向用户呈现的画面将非比寻常。图像画面的应用场景众多,潜在的应用场景比如三维(three dimensions,3D)3D虚拟化商品展示、博物馆文物展示等。3D虚拟化商品展示技术在各行业展现出巨大潜力,如鞋,包,服饰等的3D虚拟化展示,可有效提高用户的购买概率。
由于渲染技术及相关硬件的高速发展,用户对3D数字化内容渲染质量要求不断提高,对于真实度层次感等,都提出了更高的要求。其中,3D感知增强技术(3D perceptionenhancement)是有效提高渲染质量的方法之一,AO技术利用对比度以及阴影等知觉源,来有效提高对渲染内容光照方面的3D感知质量,使得渲染的结果更加富有层次感。高质量的AO已经广泛应用于3D数字化内容渲染,可以极大增强用户3D感知体验,图1a、图1b、图1c及图1d示意了同一图像无AO渲染结果与有AO渲染结果的对比。
当然,业界通常采用光线追踪技术获取高质量的单视角AO图层,但该技术性能开销极大且对硬件要求很高。虽然近年来图形处理器(graphics processing unit,GPU)算力持续不断的快速增长,但在获取高质量AO图的过程中计算仍然十分低效。
发明内容
本申请提供一种获取AO贴图的方法及装置,以提高获取高质量的AO贴图的效率。
为达到上述目的,本申请采用如下技术方案:
第一方面,提供一种获取AO贴图的方法,该方法可以包括:根据3D物体N个视角的二维图像,及N个视角的相机参数,获取3D物体在N个视角中每个视角的几何信息图层,几何信息图层包括法线图;N大于或等于2;将每个视角的几何信息图层,输入已训练的神经网络,得到每个视角的单视角AO图层;根据3D物体N个视角的二维图像,进行UV参数化,获取3D物体的网格模型的UV参数;按照获取的UV参数,融合每个视角的单视角AO图层,得到3D物体的AO贴图。
通过本申请提供的获取AO贴图的方法,预先训练用于获取单视角AO图层的神经网络,将3D物体不同视角的几何信息图层输入已训练的神经网络,由神经网络高效的预测输出单视角的AO图层,再根据3D物体网格模型的UV参数将多个单视角AO图层融合得到AO贴图。通过高质量的训练数据训练神经网络,可以保证神经网络的输出接近真实光照;另外,由于神经网络可以高效预测,即使场景复杂度提高,获取AO贴图的效率和会很大,因此,本申请的方案可以提高获取高质量的AO贴图的效率。再者,本申请得到单视角AO图层的过程无需依赖UV参数,即使设计师对于模型的UV进行重新展开设计,本申请的方案可以按照更新后的UV参数,对已经获取的单视角AO图层进行融合即可,可复用性高,进一步提高了获取高质量的AO贴图的效率。
一种可能的实现方式中,上述几何信息图层还可以包括深度图,可以更进一步提高获取的AO图层的质量。
另一种可能的实现方式中,本申请提供的获取AO贴图的方法还可以包括:获取3D物体更新后的UV参数;按照3D物体更新后的UV参数,融合每个视角的单视角AO图层,得到3D物体更新后的AO贴图。按照更新后的UV参数,对已经获取的单视角AO图层进行融合即可,无需重新获取AO贴图,可复用性高,大大节省了计算时间以及计算开销,进一步提高了获取高质量的AO贴图的效率。
另一种可能的实现方式中,不同视角的单视角AO图层间对应相同位置的AO值的差小于或等于第一预设值。
另一种可能的实现方式中,单视角AO图层与光线追踪渲染方程计算的相同位置的AO值的差值小于或等于第二预设值。
另一种可能的实现方式中,按照UV参数,融合每个视角的单视角AO图层,得到3D物体的AO贴图,包括:遍历N个视角中每个视角对应的UV图层中的每个像素,将相同视角的相同像素位置的AO图层中的AO值赋值于对应的UV坐标,得到AO贴图。
另一种可能的实现方式中,3D网格模型在不同视角下重叠的区域的一个UV坐标对应多个AO值,对于重叠区域的像素,将相同视角的相同像素位置的AO图层中的AO值赋值给对应的UV坐标,包括:将一个UV坐标对应多个AO值的计算值,赋值于对应的UV坐标。
另一种可能的实现方式中,上述神经网络包括深度卷积神经网络,该深度卷积神经网络由光线追踪渲染方程获取的训练数据训练,以使得该已训练的神经网络的输出可以达到光线追踪的质量效果。
另一种可能的实现方式中,上述根据3D物体N个视角的二维图像,进行UV参数化,获取3D物体的网格模型的UV参数,包括:根据3D物体N个视角的二维图像,进行3D建模获取3D物体的3D网格模型;将3D网格模型进行UV展开到UV参数平面,得到UV展开图;UV展开图中包括3D网格模型中每个顶点的UV坐标;将单视角UV图层作为UV参数;一个单视角UV图层包括该视角中每个像素的UV坐标。通过二维图像得到三维网络模型,进而得到UV参数,可以按照该UV参数对获取的单视角AO图层进行融合,进而高效的获取高质量的AO贴图。
另一种可能的实现方式中,相机参数可以包括下述参数中一个或多个:相机位姿、相机焦距,相机参数用于确定具体的视角。
另一种可能的实现方式中,根据N个视角的二维图像,获取3D物体在N个视角中每个视角的几何信息图层,包括:根据N个视角的二维图像,建模获取3D物体的3D网格模型;按照3D网格模型及所述N个视角,获取3D物体在所述N个视角中每个视角的几何信息图层。
另一种可能的实现方式中,上述获取3D物体在N个视角中每个视角的几何信息图层,包括:采用光栅化或者光线投射,获取3D物体在N个视角中每个视角的几何信息图层
另一种可能的实现方式中,上述N个视角的二维图像可以覆盖3D物体的表面,已提高渲染的准确度以及完整度。
另一种可能的实现方式中,本申请提供的获取AO贴图的方法还可以包括:将AO贴图叠加至3D物体的三维模型上显示,以提高向用户呈现的3D物体的逼真度以及层次感。
第二方面,提供.一种获取AO贴图的装置,该装置可以包括:获取单元、预测单元、UV参数化单元以及融合单元。其中:
获取单元,用于根据3D物体N个视角的二维图像,及N个视角的相机参数,获取3D物体在N个视角中每个视角的几何信息图层。几何信息图层包括法线图。N大于或等于2。
预测单元,用于将每个视角的几何信息图层,输入已训练的神经网络,得到每个视角的单视角AO图层。
UV参数化单元,用于根据3D物体N个视角的二维图像,进行UV参数化,获取3D物体的网格模型的UV参数。
融合单元,用于按照UV参数化单元获取的UV参数,融合每个视角的单视角AO图层,得到3D物体的AO贴图。
通过本申请提供的获取AO贴图的装置,预先训练用于获取单视角AO图层的神经网络,将3D物体不同视角的几何信息图层输入已训练的神经网络,由神经网络高效的预测输出单视角的AO图层,再根据3D物体网格模型的UV参数将多个单视角AO图层融合得到AO贴图。通过高质量的训练数据训练神经网络,可以保证神经网络的输出接近真实光照;另外,由于神经网络可以高效预测,即使场景复杂度提高,获取AO贴图的效率和会很大,因此,本申请的方案可以提高获取高质量的AO贴图的效率。再者,本申请得到单视角AO图层的过程无需依赖UV参数,即使设计师对于模型的UV进行重新展开设计,本申请的方案可以按照更新后的UV参数,对已经获取的单视角AO图层进行融合即可,可复用性高,进一步提高了获取高质量的AO贴图的效率。
一种可能的实现方式中,上述几何信息图层还可以包括深度图,可以更进一步提高获取的AO图层的质量。
另一种可能的实现方式中,UV参数化单元还用于,获取3D物体更新后的UV参数。融合单元还用于,按照UV参数化单元获取的3D物体更新后的UV参数,融合每个视角的单视角AO图层,得到3D物体更新后的AO贴图。按照更新后的UV参数,对已经获取的单视角AO图层进行融合即可,无需重新获取AO贴图,可复用性高,大大节省了计算时间以及计算开销,进一步提高了获取高质量的AO贴图的效率。
另一种可能的实现方式中,不同视角的单视角AO图层间对应相同位置的AO值的差小于或等于第一预设值。
另一种可能的实现方式中,单视角AO图层与光线追踪渲染方程计算的相同位置的AO值的差值小于或等于第二预设值。
另一种可能的实现方式中,上述神经网络包括深度卷积神经网络,该深度卷积神经网络由光线追踪渲染方程获取的训练数据训练,以使得该已训练的神经网络的输出可以达到光线追踪的质量效果。
另一种可能的实现方式中,UV参数化单元具体用于:根据3D物体N个视角的二维图像,进行3D建模获取3D物体的3D网格模型;将3D网格模型进行UV展开到UV参数平面,得到UV展开图;UV展开图中包括3D网格模型中每个顶点的UV坐标;将单视角UV图层作为UV参数;一个单视角UV图层包括该视角中每个像素的UV坐标。通过二维图像得到三维网络模型,进而得到UV参数,可以按照该UV参数对获取的单视角AO图层进行融合,进而高效的获取高质量的AO贴图。
另一种可能的实现方式中,相机参数可以包括下述参数中一个或多个:相机位姿、相机焦距,相机参数用于确定具体的视角。
另一种可能的实现方式中,上述N个视角的二维图像可以覆盖3D物体的表面,已提高渲染的准确度以及完整度。
另一种可能的实现方式中,该装置还可以包括显示单元,用于将融合单元获取的AO贴图叠加至3D物体的三维模型上显示。
需要说明的是,第二方面提供的获取AO贴图的装置,用于实现上述第一方面提供的获取AO贴图的方法,其具体实现可以参照前述第一方面的具体实现,此处不再赘述。
第三方面,本申请提供了一种渲染设备,该渲染设备可以实现上述第一方面描述的方法示例中的功能,所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个上述功能相应的模块。该渲染设备可以以芯片的产品形态存在。
在一种可能的实现方式中,该渲染设备可以包括处理器和传输接口。其中,传输接口用于接收和发送数据。处理器被配置为调用存储在存储器中的程序指令,以使得该渲染设备执行上述第一方面描述的方法示例中的功能。
第四方面,提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行上述任一方面或任意一种可能的实现方式所述的获取AO贴图的方法。
第五方面,提供一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一方面或任意一种可能的实现方式所述的获取AO贴图的方法。
第六方面,提供一种芯片***,该芯片***包括处理器,还可以包括存储器,用于实现上述方法中的功能。该芯片***可以由芯片构成,也可以包含芯片和其他分立器件。
上述第四方面至第六方面提供的方案,用于实现上述第一方面提供的方法,因此可以与第一方面达到相同的有益效果,此处不再进行赘述。
需要说明的是,上述各个方面中的任意一个方面的各种可能的实现方式,在方案不矛盾的前提下,均可以进行组合。
附图说明
图1a示意了一种同一图像无AO渲染结果与有AO渲染结果的对比;
图1b示意了另一种同一图像无AO渲染结果与有AO渲染结果的对比;
图1c示意了另一种同一图像无AO渲染结果与有AO渲染结果的对比;
图1d示意了再一种同一图像无AO渲染结果与有AO渲染结果的对比;
图2a示意了光线追踪技术的原理示意图;
图2b示意了一种AO渲染结果;
图3示意了屏幕空间环境光遮蔽技术的原理示意图;
图4示意了采用AO烘焙的方式来呈现AO效果的方案流程图;
图5为本申请提供的一种图像处理***的架构示意图;
图6为本申请提供的一种终端设备的结构示意图;
图7为本申请提供的一种终端设备的软件结构示意图;
图8为本申请提供的一种***架构示意图;
图9为本申请提供的一种卷积神经网络(CNN)的架构示意图;
图10为本申请提供的一种芯片硬件结构示意图;
图11为本申请提供的一种获取AO贴图的装置的结构示意图;
图12为本申请提供的一种获取AO贴图的方法的流程示意图;
图13为本申请提供的一种神经网络的预测流程示意图;
图14为本申请提供的一种融合获取AO贴图的流程示意图;
图15为本申请提供的一种获取AO贴图的方法的***架构图;
图16为本申请提供的另一种获取AO贴图的方法的流程示意图;
图17为本申请提供的另一种获取AO贴图的装置的结构示意图;
图18为本申请提供的再一种获取AO贴图的装置的结构示意图;
图19为本申请提供的一种渲染设备的结构示意图。
具体实施方式
在本申请实施例中,为了便于清楚描述本申请实施例的技术方案,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。该“第一”、第二”描述的技术特征间无先后顺序或者大小顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念,便于理解。
在本申请实施例中,至少一个还可以描述为一个或多个,多个可以是两个、三个、四个或者更多个,本申请不做限制。
此外,本申请实施例描述的网络架构以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在描述本申请的实施例之前,此处先对本申请涉及的名词统一进行解释说明,后续不再一一进行说明。
环境光遮蔽(AO),是来描绘物体和物体相交或靠近的时候遮挡周围漫反射光线的效果。
图层,是指3D物体在一个视角的属性参数。
几何信息图层,是指3D物体在一个视角的几何信息参数的值。例如,几何信息图层可以为法线图,或者,深度图。
AO图层,是指3D物体在一个视角的图像中各个位置的光照强度值。
AO贴图,是指3D物体展开至平面区域的展开图中,各个位置的光照强度值。
UV参数,是指3D物体表面的点,在参数曲面的参数域变量中的坐标,一般用UV字母来表达,比如参数曲面F(u,v),也可以称之为UV坐标,或者,也可以称之为纹理坐标。
为了下述各实施例的描述清楚简洁,首先给出相关技术的简要介绍:
近年来,电子设备的显示能力越来越强大,给用户带来了更好的使用体验,而用户对图形画面的逼真度要求越来越高,理想化的效果是模拟与现实生活一样的光照效果,向用户呈现的画面将非比寻常,实现光照的最逼真效果就是达成全局光照。
业界通常采用光线追踪技术以达到全局光照的效果。光线追踪技术是一种模拟光线在场景中传播从而渲染出高品质画面的技术,利用光线追踪技术可以高质量的求解环境光遮蔽问题。光线追踪技术的原理如图2a所示,在场景中所有需要着色的点p随机投射出一些光线,使他们穿过以顶点p为中心的半球,并检测这些光线与周围网格的相交情况,如果总共投射了X条光线,而其中的x条与网格相交(相交点记录为q),则顶点p所对应的环境光遮蔽率为:AO=x/X,AO∈[0,1]。当p到q的距离足够小时,才判定此光线受到遮蔽,并且X越大,遮蔽率越精确,AO效果越细腻,同时计算量也越大,性能消耗越高。图2b中的(a)是利用光线追踪技术计算得到的AO图,可以看到AO效果非常细腻。
另一种模拟全局光照的技术为屏幕空间环境光遮蔽技术,其可以实时计算物体的AO效果,其中以基于屏幕空间的环境遮挡(screen space-based ambient occlusion,SSAO)为典型代表。屏幕空间环境光遮蔽技术基于光栅引擎,使用屏幕空间的深度信息来计算每个屏幕像素的环境光遮蔽率。屏幕空间环境光遮蔽技术的原理如图3所示,在以p点为中心、R为半径的球体空间内,随机地产生Y个三维采样点(图3中方框示意的点),根据深度信息计算三维采样点被场景遮蔽的数量y(图3中实心方框示意的点),计算AO=y/Y,AO∈[0,1]。由于屏幕空间环境光遮蔽技术用采样点代替光线追踪方案中的发射光线,效率有很大的提升,但由于仅仅采用屏幕局部空间的信息,计算的AO结果准确度通常较差,与光线追踪计算的AO效果有一定的差距,难以满足用户的对视觉质量的高需求。图2b中的(b)是利用屏幕空间环境光遮蔽技术计算得到的AO图,可以看到与图2b中的(a)相比差异很大。
另一种模拟全局光照的技术为采用AO烘焙的方式来呈现AO效果,其方案流程如图4所示,该方案通过光线追踪预计算得到AO数据,按照3D网格模型的UV参数直接烘焙成AO贴图,在着色计算中将AO贴图覆盖在每个像素上显示。该技术需采用光线追踪预计算,同样需要极大的性能开销且对硬件的要求较高。同时,AO烘焙的时间也会随着场景模型复杂度的提高而增加,针对3D文物重建一类应用得到的高面片数模型,离线烘焙时间会很慢,极大影响用户体验。且AO烘焙依赖UV参数,当设计师对于模型的UV进行重新展开设计之后,则需要重新进行耗时的AO烘焙计算,可复用性低。
基于此,本申请提供一种获取AO贴图的方案,预先训练用于获取单视角AO图层的神经网络,将3D物体不同视角的几何信息图层输入已训练的神经网络,由神经网络高效的预测输出单视角的AO图层,再根据3D物体网格模型的UV参数将多个单视角AO图层融合得到AO贴图。通过高质量的训练数据训练神经网络,可以保证神经网络的输出接近真实光照;另外,由于神经网络可以高效预测,即使场景复杂度提高,获取AO贴图的效率和会很大,因此,本申请的方案可以提高获取高质量的AO贴图的效率。再者,本申请得到单视角AO图层的过程无需依赖UV参数,即使设计师对于模型的UV进行重新展开设计,本申请的方案可以按照更新后的UV参数,对已经获取的单视角AO图层进行融合即可,可复用性高,进一步提高了获取高质量的AO贴图的效率。
本申请提供的获取AO贴图的方法,可以应用于图5所示的图像处理***中。如图5所示,该图像处理***包括渲染设备501、显示设备502。
其中,渲染设备501用于执行本申请提供的方案,高效的获取高质量的AO贴图,由显示设备502显示叠加了渲染设备501获取的AO贴图后的3D物体。
需要说明的是,渲染设备501可以直接与显示设备502通信,或者,渲染设备501也可以通过其他设备的转发与显示设备502通信,本申请实施例对此不予限定。
示例性的,渲染设备501可以部署于云端,由显示设备502请求云端的渲染设备501,执行本申请提供的方案以高效的获取高质量的AO贴图,然后渲染设备501将3D物体的三维模型及AO贴图提供给显示设备501,由显示设备502显示叠加了渲染设备501获取的AO贴图后的3D物体。当然,渲染设备501可以部署于网络中的其他位置,本申请实施例对此不予限定。
示例性的,本申请提供的渲染方法可以有如下应用场景:
应用场景1:3D虚拟化商品展示。用户在手机增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)等终端设备的电商平台上浏览虚拟商品时,商家为了提供真实感的商品预览体验,需要在虚拟商品的模型上叠加AO贴图,以提高视觉上的立体感。当商品数量较多时,AO贴图的生成则有较大的工作量。通过本申请提供的方案,可以高效、高质量地生成AO贴图,能够有效缩短虚拟商品上架的时间,提高顾客的购买欲望。同时,当商家需要改变商品的外观,在商品3D模型上重新贴纹理时,若改变了原来的UV映射关系,本方案相比传统方法无需重新计算AO,只需要按照更新后的UV参数,对已经获取的单视角AO图层进行重新融合即可得到新的AO贴图,减少了不必要的返工流程,提高了效率。
应用场景2:3D文物展示。在文物保护领域,博物馆会将文物进行高清图像采集,并重建出文物的高精度三维模型。为了还原文物的原貌,往往要求最终展示的数字化文物模型具有高度的真实感,从而达到宣传和展示的目的,于是需要高分辨率高质量的AO贴图提高视觉效果。本申请提供的方案,可以高效率地生成高质量的AO贴图,从而极大提高观众对于文物的浏览体验。
需要说明的是,上述应用场景仅为举例说明,并不是对本申请方案应用场景的限定。
示例性的,上述显示设备502可以为终端设备。例如,该终端设备具体可以是大屏显示设备、手机、笔记本电脑、平板电脑、车载设备、可穿戴设备(如智能手表)、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本、个人数字助理(personaldigital assistant,PDA)、人工智能(artificial intelligence)设备等具有显示功能的终端设备,本申请实施例对终端设备的具体类型不作任何限制。
在本申请中,终端设备的结构可以如图6所示。如图6所示,终端设备100可以包括
处理器110,外部存储器接口120,内部存储器121,通用串行总线(universalserial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本实施例示意的结构并不构成对终端设备100的具体限定。在另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。例如,在本申请中,处理器110可以确定第一图像满足异常条件的情况下,控制开启其他摄像头。
其中,控制器可以是终端设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了***的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等***器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现终端设备100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端设备100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与***设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端设备,例如AR设备等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
终端设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oled,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或Q个显示屏194,Q为大于1的正整数。
终端设备100的显示屏194上可以显示一系列图形用户界面(graphical userinterface,GUI),这些GUI都是该终端设备100的主屏幕。一般来说,终端设备100的显示屏194的尺寸是固定的,只能在该终端设备100的显示屏194中显示有限的控件。控件是一种GUI元素,它是一种软件组件,包含在应用程序中,控制着该应用程序处理的所有数据以及关于这些数据的交互操作,用户可以通过直接操作(direct manipulation)来与控件交互,从而对应用程序的有关信息进行读取或者编辑。一般而言,控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、Widget等可视的界面元素。
终端设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端设备100可以包括1个或W个摄像头193,W为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端设备100可以支持一种或多种视频编解码器。这样,终端设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端设备100的各种功能应用以及数据处理。例如,在本实施例中,处理器110可以通过执行存储在内部存储器121中的指令,获取终端设备100的位姿。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作***,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flashstorage,UFS)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备100的各种功能应用以及数据处理。
终端设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端设备100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。终端设备100可以设置至少一个麦克风170C。在另一些实施例中,终端设备100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端设备100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。终端设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,终端设备100根据压力传感器180A检测所述触摸操作强度。终端设备100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定终端设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定终端设备100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测终端设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端设备100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,终端设备100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。终端设备100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当终端设备100是翻盖机时,终端设备100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。终端设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端设备100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备100通过发光二极管向外发射红外光。终端设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端设备100附近有物体。当检测到不充分的反射光时,终端设备100可以确定终端设备100附近没有物体。终端设备100可以利用接近光传感器180G检测用户手持终端设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。终端设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测终端设备100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。终端设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,终端设备100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,终端设备100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端设备100对电池142加热,以避免低温导致终端设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,终端设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控器件”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端设备100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
另外,在上述部件之上,运行有操作***。例如苹果公司所开发的iOS操作***,谷歌公司所开发的Android开源操作***,微软公司所开发的Windows操作***等。在该操作***上可以安装运行应用程序。
终端设备100的操作***可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的Android***为例,示例性说明终端设备100的软件结构。
图7是本申请实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android***分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和***库,以及内核层。
应用程序层可以包括一系列应用程序包。如图7所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序。例如,在拍照时,相机应用可以访问应用程序框架层提供的相机接口管理服务。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。如图7所示,应用程序框架层可以包括窗口管理器,内容提供器,视图***,电话管理器,资源管理器,通知管理器等。例如,在本申请实施例中,在浏览购物网页时,应用程序框架层可以为应用程序层提供浏览网页功能相关的API,并为应用程序层提供接口管理服务,以实现浏览网页功能。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图***包括可视控件,例如显示文字的控件,显示图片的控件等。视图***可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在***顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓***的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
***库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子***进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:动态图像专家组(moving picture experts group,MPEG)4,H.264,MP3,高级音频编码(advanced audio coding,AAC),自适应多速率(adaptive multi rate,AMR),联合摄影制图专家组(joint photo graphic expertsgroup,JPEG),可移植网络图形格式(portable network graphic format,PNG)等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
二维(2dimensions,2D)图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。
本申请实施例提供的获取AO贴图的方法能够应用在呈现3D物体的场景。例如,本申请实施例的获取AO贴图的方法能够应用在在线显示3D物体的场景(在线购物或在线显示文物等),下面结合图1和在线显示3D物体的场景,示例性说明终端设备100软件以及硬件的工作流程。
示例性的,触摸传感器180K接收到触摸操作,上报给处理器110,使得处理器响应于上述触摸操作,在显示屏194上显示该触摸操作对应的3D物体。例如,触摸传感器180K当接收到对在线购物界面中某一物体的图标的触摸操作后,向处理器110上报对该3D物体的触摸操作,使得处理器110响应于上述触摸操作,获取该物体的AO贴图,并在显示屏194上显示该物体叠加了AO贴图的3D模型。
示例性的,在在线购物、博物馆在线显示文物等显示3D物体的过程中,服务器(部署了渲染设备)在捕获3D物体多视角的二维图像后,3D建模得到其3D网格模型,并叠加AO贴图后,通过终端设备100向用户呈现,使得用户看到高逼真度的3D物体在线呈现。
下面从模型训练侧和模型应用侧对本申请提供的方法进行描述:
本申请实施例提供的获取AO贴图的方法,所采用的用于获取单视角AO图层的神经网络,涉及计算机视觉的处理,具体可以应用于数据训练、机器学习、深度学习等数据处理方法,对训练数据(如本申请中的单视角几何信息图层及其对应的单视角AO图层)进行符号化和形式化的智能信息建模、抽取、预处理、训练等,最终得到训练好的用于获取单视角AO图层的神经网络;并且,本申请实施例提供的获取AO贴图的方法可以运用上述训练好的用于获取单视角AO图层的神经网络,将输入数据(如本申请中的单视角几何信息图层)输入到该训练好的用于获取单视角AO图层的神经网络中,得到输出数据(如本申请中的单视角AO图层)。需要说明的是,本申请实施例提供的用于获取单视角AO图层的神经网络的训练方法和获取AO贴图的方法是基于同一个构思产生的发明,也可以理解为一个***中的两个部分,或一个整体流程的两个阶段:如模型训练阶段和模型应用阶段。
由于本申请实施例涉及大量神经网络的应用,为了便于理解,下面先对本申请实施例涉及的相关术语及神经网络等相关概念进行介绍。
(1)神经网络(neural network,NN)
神经网络是机器学习模型,是一种模拟人脑的神经网络以能够实现类人工智能的机器学习技术。可以根据实际需求配置神经网络的输入及输出,并通过样本数据对神经网络训练,以使得其输出与样本数据对应的真实输出的误差最小。神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单元,该运算单元的输出可以为:
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入。激活函数可以是sigmoid函数。神经网络是将许多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有很多层隐含层的神经网络,这里的“很多”并没有特别的度量标准。从DNN按不同层的位置划分,DNN内部的神经网络可以分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定与第i+1层的任意一个神经元相连。虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:其中,/>是输入向量,/>是输出向量,b是偏移向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量/>经过如此简单的操作得到输出向量/>由于DNN层数多,则系数W和偏移向量b的数量也就很多了。这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二层的第4个神经元到第三层的第2个神经元的线性系数定义为/>上标3代表系数W所在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。总结就是:第L-1层的第k个神经元到第L层的第j个神经元的系数定义为/>需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器。该特征抽取器可以看作是滤波器,卷积过程可以看作是使用一个可训练的滤波器与一个输入的图像或者卷积特征平面(feature map)做卷积。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的方式与位置无关。这其中隐含的原理是:图像的某一部分的统计信息与其他部分是一样的。即意味着在某一部分学习的图像信息也能用在另一部分上。所以对于图像上的所有位置,都能使用同样的学习得到的图像信息。在同一卷积层中,可以使用多个卷积核来提取不同的图像信息,一般地,卷积核数量越多,卷积操作反映的图像信息越丰富。
卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神经网络各层之间的连接,同时又降低了过拟合的风险。
(4)循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍然对很多问题却无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。同样使用误差反向传播算法,不过有一点区别:即,如果将RNN进行网络展开,那么其中的参数,如W,是共享的;而如上举例上述的传统神经网络却不是这样。并且在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,还依赖前面若干步网络的状态。该学习算法称为基于时间的反向传播算法Back propagation Through Time(BPTT)。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了:我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖当前的输入信息和历史的记忆信息。
(6)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调整权重向量让它预测低一些,不断的调整,直到深度神经网络能够预测出真正想要的目标值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的过程。
下面介绍本申请实施例提供的***架构。
参见图8,本发明实施例提供了一种***架构800。如所述***架构800所示,数据采集设备860用于采集训练数据,本申请实施例中训练数据包括:单视角几何信息图层以及其对应的单视角AO图层;并将训练数据存入数据库830,训练设备820基于数据库830中维护的训练数据训练得到目标模型/规则801。该目标模型/规则801可以为本申请实施例中描述的用于获取单视角AO图层的神经网络,即将3D物体的单视角几何信息图层输入该目标模型/规则801,即可得到该3D物体该视角的单视角AO图层。其中,其中,训练数据中的单视角AO图层可以采用光线追踪技术的渲染方程计算得到,使得目标模型/规则801输出的单视角AO图层可以达到光线追踪渲染方程得到的AO图层的接近的视觉效果。
需要说明的是,在实际的应用中,所述数据库830中维护的训练数据不一定都来自于数据采集设备860的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备820也不一定完全基于数据库830维护的训练数据进行目标模型/规则801的训练,也有可能从云端或其他地方获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
还需要说明的是,可以根据需求选取训练设备820训练得到目标模型/规则801的具体方案,本申请实施例对于该训练过程不进行赘述。
根据训练设备820训练得到的目标模型/规则801可以应用于不同的***或设备中,如应用于图8所示的执行设备810,所述执行设备810可以是服务器或者云端,或者也可以是终端设备,如手机终端,平板电脑,笔记本电脑,AR/VR,车载终端等。在图8中,执行设备810配置有I/O接口812,用于与外部设备进行数据交互,用户可以通过客户设备840向I/O接口812输入数据,所述输入数据在本申请实施例中可以包括:单视角的几何信息图层,或者单视角的二维图像。
在执行设备810的计算模块811执行计算等相关的处理过程中,执行设备810可以调用数据存储***850中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储***850中。
最后,I/O接口812将处理结果,如得到的单视角的AO图层或者AO贴图返回给客户设备840,从而提供给用户按照单视角的AO图层融合得到AO贴图后使用,或者,提供给用户使用AO贴图,实现高效的获取AO贴图。
例如,执行设备810可以将3D物体的N个视角的单视角几何信息图层,输入目标模型/规则801,得到该3D物体N个视角的单视角AO图层图,并按照该3D物体的UV参数对N个视角的单视角AO图层融合,得到该3D物体的AO贴图,将得到的AO贴图存入数据存储***850中,最后,I/O接口812将该3D物体的AO贴图,返回给客户设备840,实现高效的获取AO贴图。其中,该客户设备840可以为与终端设备交互的服务器,或者,该客户设备840可以为用于显示的终端设备。
其中,3D物体的N个视角的单视角几何信息图层可以由其他设备(例如客户设备840)通过I/O接口812输入,或者,可以由其他设备(例如客户设备840)通过I/O接口812输入的3D物体的N个视角的二维图像,执行设备810将其处理为N个视角的几何信息图层,或者其他方式获取,本申请实施例对于执行设备810获取3D物体的N个视角的单视角几何信息图层的具体实现,不予具体限定。
值得说明的是,训练设备820可以针对不同的目标或称不同的任务,基于不同的训练数据生成相应的目标模型/规则801,该相应的目标模型/规则801即可以用于实现上述目标或完成上述任务,从而为用户提供所需的结果。
在图8中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口812提供的界面进行操作。另一种情况下,客户设备840可以自动地向I/O接口812发送输入数据,如果要求客户设备840自动发送输入数据需要获得用户的授权,则用户可以在客户设备840中设置相应权限。用户可以在客户设备840查看执行设备810输出的结果。客户设备840也可以作为数据采集端,采集如图8所示输入I/O接口812的输入数据及输出I/O接口812的输出结果作为新的样本数据,并存入数据库830。当然,也可以不经过客户设备840进行采集,而是由I/O接口812直接将如图8所示输入I/O接口812的输入数据及输出I/O接口812的输出结果,作为新的样本数据存入数据库830。
值得注意的是,图8仅是本申请实施例提供的一种***架构的示意图,图中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图8中,数据存储***850相对执行设备810是外部存储器,在其它情况下,也可以将数据存储***850置于执行设备810中。
本申请实施例提供的方法和装置还可以用于扩充训练数据库,如图8所示执行设备810的I/O接口812可以将经执行设备处理过的数据(如3D物体单视角AO图层)和该3D物体经过光线追踪计算的AO图层,一起作为训练数据对发送给数据库830,以使得数据库830维护的训练数据更加丰富,从而为训练设备820的训练工作提供更丰富的训练数据。
如图8所示,根据训练设备820训练得到目标模型/规则801,该目标模型/规则801在本申请实施例中可以是用于获取单视角AO图层的神经网络。在本申请实施例提供的用于获取单视角AO图层的神经网络可以是卷积神经网络或者其他。
如前文的基础概念介绍所述,卷积神经网络是一种带有卷积结构的深度神经网络,是一种深度学习(deep learning)架构,深度学习架构是指通过机器学习的算法,在不同的抽象层级上进行多个层次的学习。作为一种深度学习架构,CNN是一种前馈(feed-forward)人工神经网络,该前馈人工神经网络中的各个神经元可以对输入其中的图像作出响应。
如图9所示,卷积神经网络(CNN)900可以包括输入层910,卷积层/池化层920(其中池化层为可选的),以及神经网络层930。
卷积层/池化层920:
卷积层:
如图9所示卷积层/池化层920可以包括如示例921-926层,举例来说:在一种实现中,921层为卷积层,922层为池化层,923层为卷积层,924层为池化层,925为卷积层,926为池化层;在另一种实现方式中,921、922为卷积层,923为池化层,924、925为卷积层,926为池化层。即卷积层的输出可以作为随后的池化层的输入,也可以作为另一个卷积层的输入以继续进行卷积操作。
下面将以卷积层921为例,介绍一层卷积层的内部工作原理。
卷积层921可以包括很多个卷积算子,卷积算子也称为核,其在图像处理中的作用相当于一个从输入图像矩阵中提取特定信息的过滤器,卷积算子本质上可以是一个权重矩阵,这个权重矩阵通常被预先定义,在对图像进行卷积操作的过程中,权重矩阵通常在输入图像上沿着水平方向一个像素接着一个像素(或两个像素接着两个像素……这取决于步长stride的取值)的进行处理,从而完成从图像中提取特定特征的工作。该权重矩阵的大小应该与图像的大小相关,需要注意的是,权重矩阵的纵深维度(depth dimension)和输入图像的纵深维度是相同的,在进行卷积运算的过程中,权重矩阵会延伸到输入图像的整个深度。因此,和一个单一的权重矩阵进行卷积会产生一个单一纵深维度的卷积化输出,但是大多数情况下不使用单一权重矩阵,而是应用多个尺寸(行×列)相同的权重矩阵,即多个同型矩阵。每个权重矩阵的输出被堆叠起来形成卷积图像的纵深维度,这里的维度可以理解为由上面所述的“多个”来决定。不同的权重矩阵可以用来提取图像中不同的特征,例如一个权重矩阵用来提取图像边缘信息,另一个权重矩阵用来提取图像的特定颜色,又一个权重矩阵用来对图像中不需要的噪点进行模糊化等。该多个权重矩阵尺寸(行×列)相同,经过该多个尺寸相同的权重矩阵提取后的特征图的尺寸也相同,再将提取到的多个尺寸相同的特征图合并形成卷积运算的输出。
这些权重矩阵中的权重值在实际应用中需要经过大量的训练得到,通过训练得到的权重值形成的各个权重矩阵可以用来从输入图像中提取信息,从而使得卷积神经网络600进行正确的预测。
当卷积神经网络900有多个卷积层的时候,初始的卷积层(例如921)往往提取较多的一般特征,该一般特征也可以称之为低级别的特征;随着卷积神经网络900深度的加深,越往后的卷积层(例如926)提取到的特征越来越复杂,比如高级别的语义之类的特征,语义越高的特征越适用于待解决的问题。
池化层:
由于常常需要减少训练参数的数量,因此卷积层之后常常需要周期性的引入池化层,在如图9中920所示例的921-926各层,可以是一层卷积层后面跟一层池化层,也可以是多层卷积层后面接一层或多层池化层。在图像处理过程中,池化层的唯一目的就是减少图像的空间大小。池化层可以包括平均池化算子和/或最大池化算子,以用于对输入图像进行采样得到较小尺寸的图像。平均池化算子可以在特定范围内对图像中的像素值进行计算产生平均值作为平均池化的结果。最大池化算子可以在特定范围内取该范围内值最大的像素作为最大池化的结果。另外,就像卷积层中用权重矩阵的大小应该与图像尺寸相关一样,池化层中的运算符也应该与图像的大小相关。通过池化层处理后输出的图像尺寸可以小于输入池化层的图像的尺寸,池化层输出的图像中每个像素点表示输入池化层的图像的对应子区域的平均值或最大值。
神经网络层930:
在经过卷积层/池化层920的处理后,卷积神经网络900还不足以输出所需要的输出信息。因为如前所述,卷积层/池化层920只会提取特征,并减少输入图像带来的参数。然而为了生成最终的输出信息(所需要的类信息或其他相关信息),卷积神经网络900需要利用神经网络层930来生成一个或者一组所需要的类的数量的输出。因此,在神经网络层930中可以包括多层隐含层(如图9所示的931、932至93n)以及输出层940,该多层隐含层中所包含的参数可以根据具体的任务类型的相关训练数据进行预先训练得到,例如该任务类型可以包括图像识别,图像分类,图像超分辨率重建等等……
在神经网络层930中的多层隐含层之后,也就是整个卷积神经网络900的最后层为输出层940,该输出层940具有类似分类交叉熵的损失函数,具体用于计算预测误差,一旦整个卷积神经网络900的前向传播(如图9由910至940方向的传播为前向传播)完成,反向传播(如图9由940至910方向的传播为反向传播)就会开始更新前面提到的各层的权重值以及偏差,以减少卷积神经网络900的损失,及卷积神经网络900通过输出层输出的结果和理想结果之间的误差。
需要说明的是,如图9所示的卷积神经网络900仅作为一种卷积神经网络的示例,在具体的应用中,卷积神经网络还可以以其他网络模型的形式存在。
下面介绍本申请实施例提供的一种芯片硬件结构。
图10为本发明实施例提供的一种芯片硬件结构,该芯片包括神经网络处理器(NPU)1000。该芯片可以被设置在如图8所示的执行设备810中,用以完成计算模块811的计算工作。该芯片也可以被设置在如图8所示的训练设备820中,用以完成训练设备820的训练工作并输出目标模型/规则801。如图9所示的卷积神经网络中各层的算法均可在如图10所示的芯片中得以实现。
如图10所示,NPU 70作为协处理器挂载到主中央处理器(central processingunit,CPU)(Host CPU)上,由Host CPU分配任务。NPU的核心部分为运算电路1003,控制器1004控制运算电路1003提取存储器(权重存储器或输入存储器)中的数据并进行运算。
在一些实现中,运算电路1003内部包括多个处理单元(process engine,PE)。在一些实现中,运算电路1003是二维脉动阵列。运算电路1003还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路1003是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路1003从权重存储器1002中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路1003从输入存储器1001中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累加器1008(accumulator)中。
向量计算单元1007可以对运算电路1003的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元1007可以用于神经网络中非卷积/非全连接层(fully connected layers,FC)层的网络计算,如池化(Pooling),批归一化(Batch Normalization),局部响应归一化(Local Response Normalization)等。
在一些实现种,向量计算单元能1007将经处理的输出的向量存储到统一缓存器1006。例如,向量计算单元1007可以将非线性函数应用到运算电路1003的输出,例如累加值的向量,用以生成激活值。在一些实现中,向量计算单元1007生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路1003的激活输入,例如用于在神经网络中的后续层中的使用。
例如,如图9所示的卷积神经网络中各层的算法均可以由1003或1007执行。图8中计算模块811、训练设备820的算法均可以由1003或1007执行。
统一存储器1006用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)1005将外部存储器中的输入数据搬运到输入存储器1001和/或统一存储器1006、将外部存储器中的权重数据存入权重存储器1002,以及将统一存储器1006中的数据存入外部存储器。
总线接口单元(bus interface unit,BIU)1010,用于通过总线实现主CPU、DMAC和取指存储器1009之间进行交互。
与控制器1004连接的取指存储器(instruction fetch buffer)1009,用于存储控制器1004使用的指令。
控制器1004,用于调用指存储器1009中缓存的指令,实现控制该运算加速器的工作过程。
示例性的,这里的数据可以为是说明数据,可以是图9所示的卷积神经网络中各层的输入或输出数据,或者,可以是图8中计算模块811、训练设备820的输入或输出数据。
一般地,统一存储器1006,输入存储器1001,权重存储器1002以及取指存储器1009均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读可写的存储器。
可选的,图8和图9中的程序算法是由主CPU和NPU共同配合完成的。
下面将结合附图,对本申请中的技术方案进行描述。
一方面,本申请实施例提供一种获取AO贴图的装置,用于执行本申请提供的获取AO贴图的方法。
图11示意了本申请实施例提供的获取AO贴图的装置的结构图。如图11所示,获取AO贴图的装置110可以包括处理器1101、存储器1102、收发器1103。
下面结合图11对获取AO贴图的装置110的各个构成部件进行具体的介绍:
存储器1102可以是易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);或者非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM),快闪存储器(flash memory),硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);或者上述种类的存储器的组合,用于存储可实现本申请方法的应用程序代码、配置文件、数据信息或者其他内容。在其他可能的情形中,该存储器1102也可以部署在独立于获取AO贴图的装置110的其他设备中。
收发器1103用于获取AO贴图的装置110与其他设备的信息交互。
处理器1101可以是获取AO贴图的装置110的控制中心。例如,处理器1101可以是一个中央处理器(central processing unit,CPU),也可以是特定集成电路(applicationspecific integrated circuit,ASIC),或者是被配置成实施本申请实施例的一个或多个集成电路,例如:一个或多个微处理器(digital signal processor,DSP),或,一个或者多个现场可编程门阵列(field programmable gate array,FPGA)。
处理器1101通过运行或执行存储在存储器1102内的软件程序和/或模块,执行如下功能:
根据3D物体N个视角的二维图像,及N个视角的相机参数,获取该3D物体在N个视角中每个视角的几何信息图层,几何信息图层包括法线图;N大于或等于2;将每个视角的几何信息图层,输入已训练的神经网络,得到每个视角的单视角AO图层;根据3D物体N个视角的二维图像,进行UV参数化,获取3D物体的网格模型的UV参数;按照UV参数,融合每个视角的单视角AO图层,得到3D物体的AO贴图。
另一方面,本申请实施例提供一种获取AO贴图的方法,该方法由渲染设备执行,该渲染设备可以为如图8所示的执行设备810或其他。
可选的,本申请实施例提供的获取AO贴图的方法,可以由CPU处理,也可以由CPU和GPU共同处理,也可以不用GPU,而使用其他适合用于神经网络计算的处理器,本申请不做限制。
如图12所示,本申请实施例提供的获取AO贴图的方法可以包括:
S1201、渲染设备根据3D物体N个视角的二维图像,及N个视角的相机参数,获取3D物体在该N个视角中每个视角的几何信息图层。
其中,N大于或等于2,该N个视角的二维图像可以覆盖该3D物体的表面。本申请实施例对于N的取值不予限定,N个视角的二维图像可以覆盖该3D物体的表面的即可。
具体的,几何信息图层可以包括法线图。
一种可能的实现方式中,几何信息图层为法线图。其中,法线图为单视角图像中每个像素点的法线属性的数值按照像素位置排列的灰度图像。
可选的,几何信息图层还可以包括法线图和深度图。其中,深度图为单视角图像中每个像素点的深度属性的数值按照像素位置排列的灰度图像。
另一种可能的实现方式中,几何信息图层为法线图和深度图。
相比而言,将法线图和深度图作为几何信息图层,比将法线图作为几何信息图层,最终得到的AO贴图的质量更高。
其中,相机参数可以用于确定拍摄上述二维图像的视角。示例性的,相机参数可以包括下述参数中一个或多个:相机位姿、相机焦距。当然,可以根据实际需求配置相机参数的内容,本申请实施例对于相机参数的具体内容不予限定。
具体的,S1201可以实现为:渲染设备根据N个视角的二维图像,建模获取3D物体的3D网格模型;按照3D网格模型及N个视角的相机参数,获取该3D物体在该N个视角中每个视角的几何信息图层。
其中,建模获取3D物体的3D网格模型可以采用3D重建管线的方式。渲染设备可以采用光栅化或者光线投射等轻量级的方式,快速获取3D物体在N个视角中每个视角的几何信息图层。
S1202、渲染设备将每个视角的几何信息图层,输入已训练的神经网络,得到每个视角的单视角AO图层。
其中,该已训练的神经网络用于,输入单视角的几何信息图层,输出单视角AO图层。对于该神经网络的训练已经在前述内容中进行了详细说明,此处不再赘述。
示例性的,图13示意了神经网络的预测流程图。
一种可能的实现方式中,该已训练的神经网络可以包括深度卷积神经网络,该深度卷积神经网络由光线追踪渲染方程获取的训练数据训练。
其中,光线追踪渲染方程的表达式可以为:
Lo(p,ωo)=Le(p,ωo)+∫Ω+Li(p,ωi)fr(p,ωi,ωo)(n·ωi)dωi
另一种可能的实现方式中,该已训练的神经网络可以通过海量的实际采样数据训练得到。例如,可以根据采样得到的二维图像,建模得到三维网格模型,进而得到单视角几何信息图层,同时采样获取对应视角的AO贴图,将获取的单视角几何信息图层以及对应视角的AO贴图,作为训练数据,训练上述神经网络。
示例性的,上述已训练的神经网络的输出,可以达到与光线追踪渲染方程计算得到的AO贴图相近的质量。
一种可能的实现方式中,上述已训练的神经网络的输出的不同视角的单视角AO图层间对应相同位置的AO值的差小于或等于第一预设值。
其中,不同视角的单视角AO图层间对应相同位置,是指3D物体表面同一个点在不同视角的单视角AO图层中的位置。
示例性的,第一预设值可以为考虑了计算误差后,认为AO值相同的门限值。
另一种可能的实现方式中,上述已训练的神经网络的输出的单视角AO图层,与光线追踪渲染方程计算的相同位置的AO值的差值小于或等于第二预设值。
其中,单视角AO图层与光线追踪渲染方程计算的相同位置,是指3D物体表面同一个点在单视角AO图层中、以及光线追踪渲染方程计算的AO图层中的位置。
示例性的,第二预设值可以为考虑了计算误差后,认为AO值相同的门限值。
一种可能的实现方式中,S1202中渲染设备可以将N个视角的几何信息图层依次输入该已训练的神经网络,由该已训练的神经网络依次输出该N个视角的单视角AO图层。
另一种可能的实现方式中,S1202中渲染设备可以将N个视角的几何信息图层同时输入该已训练的神经网络,由该已训练的神经网络同时输出该N个视角的单视角AO图层。
S1203、渲染设备根据3D物体N个视角的二维图像,进行UV参数化,获取该3D物体的网格模型的UV参数。
具体的,S1203具体可以实现为:渲染设备根据3D物体N个视角的二维图像,进行3D建模获取3D物体的3D网格模型;将3D网格模型进行UV展开到UV参数平面,得到UV展开图;该UV展开图中包括3D网格模型中每个顶点的UV坐标;最后,将单视角UV图层作为UV参数;一个单视角UV图层包括该视角中每个像素的UV坐标。
其中,3D网格模型的UV参数包括N个视角的单视角UV图层。
其中,UV展开是指将3d网格模型(mesh)顶点,映射到一张uv贴图上,每个顶点对应一个UV坐标,也可以称为展UV。
示例性的,对于简单的3D mesh,可以通过3D编辑器工具按照流程进行展UV。当然,本申请实施例对于UV展开的实现方式不进行具体限定。
示例性的,对于比较复杂的3D mesh模型,可以按照下述流程进行展UV:对给定的3D mesh进行模型裁切,让模型可以像纸盒一样铺平到平面上;将裁剪之后模型的每一个连通区域平铺在平面上;将连通区域无重叠,紧密排列;将UV映射保存为mesh顶点数据,输出新的3d mesh。这样,3D mesh每个顶点就有一个UV坐标,可以作为该3D mesh的UV参数。
需要说明的是,上述展UV的实现均为示例描述,本申请实施例对于展UV的过程不进行具体限定。一个3D mesh可以有很多种UV展开的方式,当物体外观改变,就需要重新展UV。
S1204、渲染设备按照获取的UV参数,融合每个视角的单视角AO图层,得到3D物体的AO贴图。
其中,UV参数中包括了N个视角中每个视角的单视角UV图层,一个UV图层中包括该视角下3D物体表面的每个像素的UV坐标;单视角AO图层中包括该视角下3D物体表面的每个像素的AO值以及位置坐标,因此,可以按照UV坐标以及位置坐标确定同一像素,然后对单视角UV图层及单视角AO贴图进行融合,最终得到AO贴图。
示例性的,S1204可以实现为:渲染设备遍历N个视角中每个视角的UV图层中的每个像素,将相同视角的相同像素位置的AO图层中的AO值,赋值于对应的UV坐标,得到AO贴图。
进一步可选的,对于3D网格模型在不同视角下重叠的区域,可能存在一个UV坐标对应多个AO值,对于重叠区域的像素,将相同视角的相同像素位置的AO图层中的AO值赋值给对应的UV坐标具体可以实现为:将一个UV坐标对应多个AO值的计算值,赋值于对应的UV坐标。
其中,该计算值可以为平均值、最大值、最小值,或者加权平均值。本申请实施例对于计算值的具体内容不予限定。
示例性的,图14示意了融合获取AO贴图的流程。如图14所示,相同视角的UV图层与AO图层进行UV-AO映射,进而融合得到AO贴图。
示例性的,图15示意了本申请提供的获取AO贴图的方法的***架构图。如图15所示,先通过相机采集N个视角的二维图像,然后进行3D重建,得到3D网格模型。根据3D网格模型,以及N个视角的相机参数,得到各个视角的几何信息图层。将几何信息图层输入神经网络,神经网络输出各个视角的AO图层。按照3D网格模型UV参数化得到的UV参数,对各个视角的AO图层进行融合,得到AO贴图。
本申请提供一种获取AO贴图的方法,预先训练用于获取单视角AO图层的神经网络,将3D物体不同视角的几何信息图层输入已训练的神经网络,由神经网络高效的预测输出单视角的AO图层,再根据3D物体网格模型的UV参数将多个单视角AO图层融合得到AO贴图。通过高质量的训练数据训练神经网络,可以保证神经网络的输出接近真实光照;另外,由于神经网络可以高效预测,即使场景复杂度提高,获取AO贴图的效率和会很大,因此,本申请的方案可以提高获取高质量的AO贴图的效率。再者,本申请得到单视角AO图层的过程无需依赖UV参数,即使设计师对于模型的UV进行重新展开设计,本申请的方案可以按照更新后的UV参数,对已经获取的单视角AO图层进行融合即可,可复用性高,进一步提高了获取高质量的AO贴图的效率。
进一步的,当物体外观改变,就需要重新展UV,UV参数会发生变化,在UV参数发生变化后,如图16所示,本申请实施例提供的获取AO贴图的方法还可以包括S1205。
S1205、渲染设备获取3D物体更新后的UV参数。
需要说明的是,S1205可以参照S1203的具体实现,此处不再赘述。
在S1205之后,渲染设备可以按照3D物体更新后的UV参数,执行S1204,融合每个视角的单视角AO图层,得到3D物体更新后的AO贴图。
在S1205的过程中,按照更新后的UV参数,对已经获取的单视角AO图层进行融合即可,无需重新获取AO贴图,可复用性高,大大节省了计算时间以及计算开销,进一步提高了获取高质量的AO贴图的效率。
进一步的,如图16所示,本申请实施例提供的获取AO贴图的方法还可以包括S1206。
S1206、渲染设备将AO贴图叠加至3D物体的三维模型上显示。
一种可能的实现方式中,S1206中渲染设备可以将AO贴图叠加至3D物体的三维模型上后,由显示设备显示。
另一种可能的实现方式中,S1206中渲染设备可以将AO贴图以及3D物体的三维模型提供给显示设备,由显示设备进行轻量级操作,将AO贴图叠加至3D物体的三维模型上显示。
进一步的,S1206中使用的3D物体的三维模型,可以为前述3D网格模型,或者,也可以为前述3D网格模型细化后的模型,本申请实施例对此不予限定。
根据实验验证,本申请提供的方案与光线追踪渲染方程计算相比,性能对比如下表1和表2所示。从表1和表2的数据可以看出,生成相同质量的AO贴图,本申请方案大大缩短了用时,提高了获取高质量AO贴图的效率。
表1
表2
上述主要从设备的工作原理的角度对本发明实施例提供的方案进行了介绍。可以理解的是,设备等为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本发明能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
本申请实施例可以根据上述方法示例对本申请提供的获取AO贴图的装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在采用对应各个功能划分各个功能模块的情况下,图17示出了上述实施例中所涉及的渲染设备中部署的获取AO贴图的装置的一种可能的结构示意图。该获取AO贴图的装置170可以为功能模块或者芯片。如图17所示,获取AO贴图的装置170可以包括:获取单元1701、预测单元1702、UV参数化单元1703、融合单元1704。其中,获取单元1701用于执行图12或图16中的过程S1201;预测单元1702用于执行图12或图16中的过程S1202;UV参数化单元1703用于执行图12或图16中的过程S1203,或者执行图16中的过程S1205;融合单元1704用于执行图12或图16中的过程S1204。其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
进一步的,如图18所示,获取AO贴图的装置170还可以包括显示单元1206,用于执行图16中的过程S1206。
在采用集成的单元的情况下,图19示出了上述实施例中所涉及的渲染设备的一种可能的结构示意图。渲染设备190可以包括:处理模块1901、通信模块1902。处理模块1901用于对渲染设备的动作进行控制管理,通信模块1902用于与其他设备通信。例如,处理模块1901用于执行图12或图16中的过程S1201至S1204中任一项。渲染设备190还可以包括存储模块1903,用于存储渲染设备190的程序代码和数据。
其中,处理模块1901可以为图11所示的获取AO贴图的装置110的实体结构中的处理器1101,可以是处理器或控制器。例如可以是CPU,通用处理器,DSP,ASIC,FPGA或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理模块1901也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。通信模块1902可以为图11所示的获取AO贴图的装置110的实体结构中的收发器1103,通信模块1902可以是通信端口,或者可以是收发器、收发电路或通信接口等。或者,上述通信接口可以通过上述具有收发功能的元件,实现与其他设备的通信。上述具有收发功能的元件可以由天线和/或射频装置实现。存储模块1903可以是图11所示的获取AO贴图的装置110的实体结构中的存储器1102。
如前述,本申请实施例提供的获取AO贴图的装置170或渲染设备190可以用于实施上述本申请各实施例实现的方法中相应的功能,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请各实施例。
作为本实施例的另一种形式,提供一种计算机可读存储介质,其上存储有指令,该指令被执行时执行上述方法实施例中的获取AO贴图的方法。
作为本实施例的另一种形式,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行时执行上述方法实施例中的获取AO贴图的方法。
本申请实施例再提供一种芯片***,该芯片***包括处理器,用于实现本发明实施例的技术方法。在一种可能的设计中,该芯片***还包括存储器,用于保存本发明实施例必要的程序指令和/或数据。在一种可能的设计中,该芯片***还包括存储器,用于处理器调用存储器中存储的应用程序代码。该芯片***,可以由一个或多个芯片构成,也可以包含芯片和其他分立器件,本申请实施例对此不作具体限定。
结合本申请公开内容所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM、闪存、ROM、可擦除可编程只读存储器(erasable programmable ROM,EPROM)、电可擦可编程只读存储器(electrically EPROM,EEPROM)、寄存器、硬盘、移动硬盘、只读光盘(CD-ROM)或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于核心网接口设备中。当然,处理器和存储介质也可以作为分立组件存在于核心网接口设备中。或者,存储器可以与处理器耦合,例如存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。存储器可以用于存储执行本申请实施例提供的技术方案的应用程序代码,并由处理器来控制执行。处理器用于执行存储器中存储的应用程序代码,从而实现本申请实施例提供的技术方案。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (21)
1.一种获取环境光遮蔽AO贴图的方法,其特征在于,所述方法包括:
根据三维3D物体N个视角的二维图像,及所述N个视角的相机参数,获取所述3D物体在所述N个视角中每个视角的几何信息图层,所述几何信息图层包括法线图;所述N大于或等于2;
将所述每个视角的所述几何信息图层,输入已训练的神经网络,得到所述每个视角的单视角AO图层;
根据所述3D物体N个视角的二维图像,进行UV参数化,获取所述3D物体的网格模型的UV参数;
按照所述UV参数,融合所述每个视角的单视角AO图层,得到所述3D物体的AO贴图。
2.根据权利要求1所述的方法,其特征在于,所述几何信息图层还包括深度图。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
获取所述3D物体更新后的UV参数;
按照所述3D物体更新后的UV参数,融合所述每个视角的单视角AO图层,得到所述3D物体更新后的AO贴图。
4.根据权利要求1-3任一项所述的方法,其特征在于,
不同视角的所述单视角AO图层间对应相同位置的AO值的差小于或等于第一预设值;
或者,
所述单视角AO图层与光线追踪渲染方程计算的相同位置的AO值的差值小于或等于第二预设值。
5.根据权利要求1-4任一项所述的方法,其特征在于,所述神经网络包括深度卷积神经网络,所述深度卷积神经网络由光线追踪渲染方程获取的训练数据训练。
6.根据权利要求1-5任一项所述的方法,其特征在于,所述根据所述3D物体N个视角的二维图像,进行UV参数化,获取所述3D物体的网格模型的UV参数,包括:
根据所述3D物体N个视角的二维图像,进行3D建模获取所述3D物体的3D网格模型;将所述3D网格模型进行UV展开到UV参数平面,得到UV展开图;所述UV展开图中包括所述3D网格模型中每个顶点的UV坐标;
将单视角UV图层作为所述UV参数;一个单视角UV图层包括该视角中每个像素的UV坐标。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述相机参数包括下述参数中一个或多个:相机位姿、相机焦距。
8.根据权利要求1-7任一项所述的方法,其特征在于,所述N个视角的二维图像覆盖所述3D物体的表面。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
将所述AO贴图叠加至所述3D物体的三维模型上显示。
10.一种获取环境光遮蔽AO贴图的装置,其特征在于,所述装置包括:
获取单元,用于根据三维3D物体N个视角的二维图像,及所述N个视角的相机参数,获取所述3D物体在所述N个视角中每个视角的几何信息图层,所述几何信息图层包括法线图;所述N大于或等于2;
预测单元,用于将所述每个视角的所述几何信息图层,输入已训练的神经网络,得到所述每个视角的单视角AO图层;
UV参数化单元,用于根据所述3D物体N个视角的二维图像,进行UV参数化,获取所述3D物体的网格模型的UV参数;
融合单元,用于按照所述UV参数化单元获取的所述UV参数,融合所述每个视角的单视角AO图层,得到所述3D物体的AO贴图。
11.根据权利要求10所述的装置,其特征在于,所述几何信息图层还包括深度图。
12.根据权利要求10或11所述的装置,其特征在于,
所述UV参数化单元还用于,获取所述3D物体更新后的UV参数;
所述融合单元还用于,按照所述UV参数化单元获取的所述3D物体更新后的UV参数,融合所述每个视角的单视角AO图层,得到所述3D物体更新后的AO贴图。
13.根据权利要求10-12任一项所述的装置,其特征在于,
不同视角的所述单视角AO图层间对应相同位置的AO值的差小于或等于第一预设值;
或者,
所述单视角AO图层与光线追踪渲染方程计算的相同位置的AO值的差值小于或等于第二预设值。
14.根据权利要求10-13任一项所述的装置,其特征在于,所述神经网络包括深度卷积神经网络,所述深度卷积神经网络由光线追踪渲染方程获取的训练数据训练。
15.根据权利要求10-14任一项所述的装置,其特征在于,所述UV参数化单元具体用于:
根据所述3D物体N个视角的二维图像,进行3D建模获取所述3D物体的3D网格模型;将所述3D网格模型进行UV展开到UV参数平面,得到UV展开图;所述UV展开图中包括所述3D网格模型中每个顶点的UV坐标;
将单视角UV图层作为所述UV参数;一个单视角UV图层包括该视角中每个像素的UV坐标。
16.根据权利要求10-15任一项所述的装置,其特征在于,所述相机参数包括下述参数中一个或多个:相机位姿、相机焦距。
17.根据权利要求10-16任一项所述的装置,其特征在于,所述N个视角的二维图像覆盖所述3D物体的表面。
18.根据权利要求10-17任一项所述的装置,其特征在于,所述装置还包括:
显示单元,用于将所述融合单元获取的所述AO贴图叠加至所述3D物体的三维模型上显示。
19.一种渲染设备,其特征在于,所述渲染设备包括:处理器和存储器;
所述存储器与所述处理器连接;所述存储器用于存储计算机指令,当所述处理器执行所述计算机指令时,使得所述渲染设备执行如权利要求1-9中任一项所述的获取环境光遮蔽AO贴图的方法。
20.一种计算机可读存储介质,其特征在于,包括指令,当其在计算机上运行时,使得计算机执行权利要求1-9中任一项所述的获取环境光遮蔽AO贴图的方法。
21.一种计算机程序产品,其特征在于,当其在计算机上运行时,使得计算机执行权利要求1-9中任一项所述的获取环境光遮蔽AO贴图的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111430926.0A CN116206040A (zh) | 2021-11-29 | 2021-11-29 | 一种获取ao贴图的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111430926.0A CN116206040A (zh) | 2021-11-29 | 2021-11-29 | 一种获取ao贴图的方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116206040A true CN116206040A (zh) | 2023-06-02 |
Family
ID=86511610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111430926.0A Pending CN116206040A (zh) | 2021-11-29 | 2021-11-29 | 一种获取ao贴图的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116206040A (zh) |
-
2021
- 2021-11-29 CN CN202111430926.0A patent/CN116206040A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11244170B2 (en) | Scene segmentation method and device, and storage medium | |
CN110070056B (zh) | 图像处理方法、装置、存储介质及设备 | |
CN113538273B (zh) | 图像处理方法及图像处理装置 | |
KR20210111833A (ko) | 타겟의 위치들을 취득하기 위한 방법 및 장치와, 컴퓨터 디바이스 및 저장 매체 | |
CN111931877B (zh) | 目标检测方法、装置、设备及存储介质 | |
CN111325699B (zh) | 图像修复方法和图像修复模型的训练方法 | |
CN111932664A (zh) | 图像渲染方法、装置、电子设备及存储介质 | |
CN111930964B (zh) | 内容处理方法、装置、设备及存储介质 | |
CN112991494A (zh) | 图像生成方法、装置、计算机设备及计算机可读存储介质 | |
CN111243668A (zh) | 分子结合位点检测方法、装置、电子设备及存储介质 | |
WO2024021742A1 (zh) | 一种注视点估计方法及相关设备 | |
CN115661912B (zh) | 图像处理方法、模型训练方法、电子设备及可读存储介质 | |
WO2024061269A1 (zh) | 一种三维重建方法及相关装置 | |
CN111753498A (zh) | 文本处理方法、装置、设备及存储介质 | |
CN112115900A (zh) | 图像处理方法、装置、设备及存储介质 | |
CN112037305B (zh) | 对图像中的树状组织进行重建的方法、设备及存储介质 | |
CN113642359B (zh) | 人脸图像生成方法、装置、电子设备及存储介质 | |
WO2023216957A1 (zh) | 一种目标定位方法、***和电子设备 | |
CN112527104A (zh) | 确定参数确定方法、装置、设备及存储介质 | |
CN113516665A (zh) | 图像分割模型的训练方法、图像分割方法、装置、设备 | |
WO2022143314A1 (zh) | 一种对象注册方法及装置 | |
CN115775395A (zh) | 图像处理方法及相关装置 | |
WO2023048983A1 (en) | Methods and apparatus to synthesize six degree-of-freedom views from sparse rgb-depth inputs | |
CN116863042A (zh) | 虚拟对象的动作生成方法及动作生成模型的训练方法 | |
CN116206040A (zh) | 一种获取ao贴图的方法及装置 |
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 |