一种三维模型部件的自动检测方法与流程

文档序号:13427368阅读:362来源:国知局

本发明属于计算机图形学技术领域,尤其涉及一种三维模型部件的自动检测方法。



背景技术:

形状结构分析是形状理解和处理的基础,许多高层次的形状处理应用(例如风格发现、实例建模,纹理合成等)都依赖于形状结构分析。这些应用的大多数情况中,采用人工定义方式进行输入三维模型的部件结构与标签。例如,人体网格纹理合成的应用中,需由人工辨别网格中具有“胳膊”纹理的部分、或具有“腿”纹理的部分等等。另外,一些并不直接要求结构分析的应用(例如三维形状匹配或检索)也可从组成部件及标注的信息中获益。

形状结构分析通常是通过模型分割与标注来实现的。传统单模型分割方法依据底层几何特征来提取有意义的分割,如文献1:shamira.asurveyonmeshsegmentationtechniques.computergraphicsforum2008;27(6):1539–56.但这种方法难以建立起一个精确的数学模型来描述什么是有意义的形状部件以及部件所属类别。联合分割方法利用了同类三维模型之间的一致性关系,能够获取有意义的形状部件,如文献2:hur,fanl,liul.co-segmentationof3dshapesviasubspaceclustering.computergraphicsforum2012;31(5):1703–13.但这种方法要求输入是多个同类别的三维模型,无法处理单个的或者跨类别的三维模型。基于学习的标注方法能够同时获取到有意义的形状部件及其标签,如文献3:yil,kimvg,ceyland,etal.ascalableactiveframeworkforregionannotationin3dshapecollections.acmtransactionsongraphics,2016,35(6):210.但这类方法或多或少需要一些用户交互。

上述方法都遵循一个自底向上的过程,要先提取底层几何特征,再从中获取高层语义信息。这使得它们对特征敏感,并且泛用性差。这些方法还有一个共同点,就是它们的目标都是要提取精确的部件边界。但是有些应用只是需要对三维模型进行结构分析,而并不需要精确的部件边界。例如在语义检索中,需要提取三维模型的结构知识,如文献4:attenem,biasottis,mortaram,patane`g,spagnuolom,falcidienob.computationalmethodsforunderstanding3dshapes.computers&graphics2006;30(3):323–33.它关注模型部件之间的关系,而不关心部件本身。还有在模型集组织管理中,文献5:fishn,averkioum,vankaicko,sorkine-hornungo,cohen-ord,mitranj.meta-representationofshapefamilies.acmtransactionsongraphics2014;33(4):1–11.甚至直接用部件包围盒来表示部件。



技术实现要素:

发明目的:本发明所要解决的技术问题是针对现有技术的不足,提供一种基于多视角的三维模型部件的自动检测方法,用于支持对三维模型部件的自动检测。

为了解决上述技术问题,本发明公开了一种基于多视角的三维模型部件的自动检测方法,包括以下步骤:

步骤1,离线训练部件检测模型:由带有部件类别标签的三维模型数据集生成各个三维模型在不同视角下的渲染图像集,并对于渲染图像集中每一张图像依据其三维模型的部件类别标签生成对应的部件标注集,图像集和标注集用于训练部件检测模型;

步骤2,在线检测三维模型的部件构成:对于待检测的无标注三维模型,使用步骤1中训练的部件检测模型检测其在多个视角下渲染图像中的部件,依据视角信息以及图像部件检测结果计算出待检测的三维模型的部件检测结果。

步骤1包括以下步骤:

步骤1-1,视角采样:对带有部件类别标签的三维模型数据集中的每个三维模型,在空间中均匀地生成多个指向其中心的视角方向。此处的三维模型数据集来源于shapenet三维模型集的一个带有部件标注的子集,共有16类超过30000个带部件标签的三维模型,参见文献6:yil,kimvg,ceyland,etal.ascalableactiveframeworkforregionannotationin3dshapecollections.acmtransactionsongraphics(tog),2016,35(6):210;

步骤1-2,生成多视角渲染图像:分别在每一个视角方向下对三维模型使用phong光照模型进行渲染得到图像,由渲染图像组成渲染图像集;

步骤1-3,计算部件显著性:依据三维模型的部件标注计算出各个部件在每个视角下的显著性,这里部件标注是针对三维模型每个网格顶点的标注,标示出每个网格顶点属于哪个部件类别,将属于同一类别的网格顶点及其之间的面片独立出来就构成了单独的部件;

步骤1-4,生成显著部件标注:在每张渲染图像对应的视角下,筛选出显著性较高的部件,作为显著部件标注,标注他们在渲染图像中的位置;

步骤1-5,训练部件检测模型:按照步骤1-1至步骤1-4所述过程,为数据集中的每一个三维模型生成两个以上视角下的渲染图像以及与图像对应的显著部件标注,将其作为训练集训练fasterr-cnn模型,该模型能够检测输入图像中潜在对象的位置与标签。

步骤1-1包括:将视角定义为旋转矩阵,多视角即是旋转矩阵集合r={rψ,θ|ψ∈ψ,θ∈θ},其中rψ,θ代表先绕y轴旋转大小为ψ的yaw角,再绕x轴旋转大小为θ的pitch角,所得到的视角,采用以下公式来计算rψ,θ

步骤1-2包括:对于三维模型s分别在步骤1-1采样得到的每一个视角方向rψ,θ下对三维模型进行光照渲染得到图像iψ,θ,构成多视角渲染图像集合i:

i={iψ,θ|ψ∈ψ,θ∈θ}。

步骤1-3中,对于三维模型s的每一个部件pi∈p≡{p1,p2,...,pn},统计其在每个视角方向rψ,θ下渲染图像中的可见区域面积归一化后得到每个部件在各个视角下的显著性

其中,p表示三维模型s的部件集合,pn表示第n个部件,i取值为1~n,ψ和θ分别表示视角的yaw角和pitch角,ψ和θ分别表示yaw角的采样集合和pitch角的采样集合,表示部件pi在视角rψ,θ下的可见投影面积,对于特定的yaw角p和pitch角q,表示部件pi在该视角下可见投影面积,表示部件pi在视角rψ,θ下的可见投影面积,表示部件pi在所有视角下可见投影面积的最大值。

步骤1-4包括:对于三维模型s,在每个视角方向rψ,θ下,记录下每个部件pi在渲染图像iψ,θ中的部件标注是一个5元组,描述了pi在iψ,θ中所处的位置(4元组,上、左、宽、高)及其部件标签,筛选出显著性大于阈值t1的标注,构成s的显著部件标注集合l:

步骤2包括以下步骤:

步骤2-1,视角采样:对于待检测的三维模型,在空间中均匀地生成多个指向其中心的视角方向;

步骤2-2,生成多视角渲染图像:分别在每一个视角方向下对待检测的三维模型使用phong光照模型进行渲染得到图像,同时获取待检测的三维模型网格顶点与渲染图像像素之间的对应关系,即对于任意网格顶点都能够判断它是否在渲染图像中出现以及所在像素位置;

步骤2-3,检测渲染图像中的部件:使用步骤1训练的检测模型检测步骤2-2中得到的每一张渲染图像,获取其中所有部件的位置、标签与置信度,其中部件位置是一个矩形包围框,表示了部件在图像中的位置,部件标签是一个字符串,表示了部件类别,部件置信度是一个0到1范围的小数,是由部件检测模型给出的对于该检测结果的确信程度;

步骤2-4,顶点标签投票:按照检测结果的标签对其包围框中的所有网格顶点进行投票,票数为其置信度,每个部件标签单独计票;

步骤2-5,生成三维检测结果:对于每个部件标签,筛选出得票数大于投票阈值的网格顶点,为其生成一个或两个以上包围盒,包围盒与部件标签共同构成最终的部件检测结果。

步骤2-4中所述对网格顶点投票,计票公式如下:

其中,gc,v表示网格顶点v在类别c下获得的投票数,jψ,θ表示视角rψ,θ下的渲染图像的检测结果集合,分别表示第i个检测结果的标签、置信度、包围框中的三维模型网格顶点集合。

步骤2-5中采用如下公式计算投票阈值tc:

其中,c表示部件类别,为能量方程,其中t为训练三维模型集合,该训练集是由步骤1-1中三维模型集合随机抽取出来的一个大小为100的子集,bgt(c,s)表示三维模型s的真实结果(直接由部件标注生成)中属于类别c的部件包围盒集合,bt(c,s)表示以t为投票阈值对三维模型s进行部件检测的结果中属于类别c的部件包围盒集合,area(b)表示b中所有包围盒所包围的体积。

步骤2-5中,对于每个部件类别c,利用阈值tc筛选出属于该类别的顶点集合vc:

其中,v是由三维模型所有网格顶点构成的集合,gc,i表示顶点i属于类别c的投票得分。利用三维模型网格顶点间的连接关系,将vc中的每个连通分量都作为一个单独的部件,为其生成包围盒,并带上类别标签c,成为最终的三维模型部件检测结果。

本发明利用图像对象检测技术,见文献7:rens,hek,girshickr,etal.fasterr-cnn:towardsreal-timeobjectdetectionwithregionproposalnetworks.advancesinneuralinformationprocessingsystems.2015:91-99.检测三维模型在多个视角下渲染图像中的潜在部件,依据视角信息将图像检测结果映射回三维空间,进而实现三维模型部件的自动检测。

有益效果:本发明具有以下优点:首先,本发明可以直接使用已有的大量带有部件标注的三维模型集作为训练数据,而无需再由用户去标注大量数据。其次,本发明可自动对三维模型进行部件检测,标示出所有部件的位置及其类别标签。最后,本发明对三维模型的要求很低,不要求明确三维模型的类别,不要求三维模型是流形或者水密,网格密度也无特殊要求。

附图说明

下面结合附图和具体实施方式对本发明做更进一步的具体说明,本发明的上述或其他方面的优点将会变得更加清楚。

图1是本发明的处理流程示意图。

图2是实施例的输入三维模型示例示意图。

图3是实施例的多视角采样示意图。

图4是对图3采样的多视角进行光照渲染得到的图像,展示了其中三张渲染图像。

图5是对多视角渲染图像进行检测的结果,展示了图4中三张图像的检测结果,

图6是实施例的顶点投票结果。

图7是实施例依据投票结果生成的带标签的部件包围盒。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

如图1所示,本发明公开了一种基于多视角的三维模型部件的自动检测方法,具体包括以下步骤:

步骤一,离线训练部件检测模型:由带有部件类别标签的三维模型数据集生成各个三维模型在不同视角下的渲染图像集,并对于每一张图像依据其三维模型的部件类别标签生成对应的部件标注集,图像集和标注集用于训练部件检测模型。

步骤二,在线检测三维模型的部件构成:对于一个无任何额外信息的三维模型,使用步骤一中训练的部件检测模型检测其在多个视角下渲染图像中的部件,依据视角信息以及图像部件检测结果计算出三维模型的部件检测结果。

本发明训练阶段(步骤一)的输入为带有部件标注的多类别三维模型集,检测阶段(步骤二)的输入为任意的单个三维模型,两个阶段中所有三维模型的上下朝向都是一致的(y轴正方向指向上方)。

下面具体介绍各个步骤的主要流程:

1.离线训练部件检测模型

由带有部件类别标签的三维模型数据集生成各个三维模型在不同视角下的渲染图像集,并对于每一张图像依据其三维模型的部件类别标签生成对应的部件标注集,图像集和标注集用于训练部件检测模型。包括以下步骤:

步骤11,视角采样:将视角定义为旋转矩阵,多视角即是旋转矩阵集合r={rψ,θ|ψ∈ψ,θ∈θ},其中rψ,θ代表先绕y轴旋转大小为ψ的yaw角,再绕x轴旋转大小为θ的pitch角,所得到的视角。基于该定义,可以用以下公式来计算rψ,θ

本发明中,ψ和θ的取值范围为如此即得到112个采样的视角。

步骤12,生成多视角渲染图像:对于三维模型s分别在步骤11采样得到的每一个视角方向rψ,θ下对三维模型进行光照渲染得到图像iψ,θ,构成多视角渲染图像集合i:

i={iψ,θ|ψ∈ψ,θ∈θ}(2)

本发明使用phong光照模型进行渲染,见文献8:phongbt.illuminationforcomputergeneratedpictures[j].communicationsoftheacm,1975,18(6):311-317.

步骤13,部件显著性计算:本发明采用投影面积来描述显著性,如文献9:plemenosd,benayadam.intelligentdisplayinscenemodeling.newtechniquestoautomaticallycomputegoodviews[c]//internationalconferencegraphicon.1996,96:1-5.对于三维模型s的每一个部件pi∈p≡{p1,p2,...,pn},统计其在每个视角方向rψ,θ下渲染图像中的可见区域面积归一化后得到每个部件在各个视角下的显著性

步骤14,生成显著部件标注:对于三维模型s,在每个视角方向rψ,θ下,记录下每个部件pi在渲染图像iψ,θ中的部件标注是一个5元组描,述了pi在iψ,θ中所处的位置(4元组,上、左、宽、高)及其部件标签。筛选出显著性大于阈值0.6的标注,构成s的显著部件标注集合l:

步骤15,训练部件检测模型:对于模型集中的每个三维模型s,按照步骤11至步骤14所述过程,计算其渲染图像集i与显著部件标注集l,所有三维模型的图像集与标注集共同构成训练集,训练文献7:rens,hek,girshickr,etal.fasterr-cnn:towardsreal-timeobjectdetectionwithregionproposalnetworks.advancesinneuralinformationprocessingsystems.2015:91-99.所述的fasterr-cnn模型,该模型可检测输入图像中潜在对象的位置与标签。本发明训练模型使用的训练数据规模为19200张图像与对应的19200个标注文件,其中训练集大小4800,测试集大小9600,验证集大小4800。

2.在线检测三维模型的部件构成

对于一个无任何额外信息的三维模型,使用步骤一中训练的部件检测模型检测其在多个视角下渲染图像中的部件,依据视角信息以及图像部件检测结果计算出三维模型的部件检测结果。包括以下步骤:

步骤21,视角采样:将视角定义为旋转矩阵,多视角即是旋转矩阵集合r={rψ,θ|ψ∈ψ,θ∈θ},其中rψ,θ代表先绕y轴旋转大小为ψ的yaw角,再绕x轴旋转大小为θ的pitch角,所得到的视角。基于该定义,可以用以下公式来计算rψ,θ

本发明中,ψ和θ的取值范围为如此即得到112个采样的视角。

步骤22,生成多视角渲染图像:对于三维模型s分别在步骤11采样得到的每一个视角方向rψ,θ下对三维模型进行光照渲染得到图像iψ,θ,构成多视角渲染图像集合i:

i={iψ,θ|ψ∈ψ,θ∈θ}(6)

本发明使用phong光照模型进行渲染,见文献8:phongbt.illuminationforcomputergeneratedpictures[j].communicationsoftheacm,1975,18(6):311-317.

步骤23,检测渲染图像中的部件:使用步骤一训练的检测模型检测每一个视角rψ,θ下的渲染图像iψ,θ,得到检测结果集jψ,θ

其中每个检测结果都是一个6元组,包括了3个信息:部件位置(4元组,上、左、宽、高),部件类别标签以及检测结果的置信度

步骤24,顶点标签投票:对于每个检测结果筛选出在视角rψ,θ下渲染时投影位置在范围内的三维模型顶点集合由每个检测结果对其范围内的顶点进行投票,统计每个三维模型顶点v∈v属于每个部件类别的票数gc,v:

步骤25,生成三维检测结果:对于每个部件类别c,利用一个类别相关的阈值tc筛选出属于该类别的顶点集合vc:

利用三维模型网格顶点间的连接关系,将vc中的每个连通分量都作为一个单独的部件,为其生成包围盒,并带上类别标签c,成为最终的三维模型部件检测结果。

这里类别相关的投票阈值tc的计算过程如下:准备一个小规模的训练集t,包含了80个三维模型以及部件检测结果的groundtruth。对于三维模型s,用bgt(c,s)表示其groundtruth检测结果中属于类别c的部件包围盒集合,用bt(c,s)表示按照步骤21至步骤25所述过程,令tc=t对其进行部件检测的结果中属于类别c的部件包围盒集合。令area(b)表示b中所有包围盒所包围的体积,定义能量函数ec(t):

对于每个部件类别c,都通过最大化能量函数来求解该类别下的类别相关投票阈值注意,类别相关的投票阈值tc的计算过程实际是在训练阶段(步骤一)完成的,这里为了方便理解将其放到最后描述。

实施例

本实施例中,如图2所示为输入的待检测三维模型,通过本发明所述的三维模型部件的自动检测方法,可在图2所示的三维模型中检测出如图7所示的6类共计8个部件,并标示出它们各自的位置与类别标签。具体实施过程如下:

步骤一是离线训练过程,与该实施例的在线检测过程无关,故略去。

步骤二中,对图2所示的三维模型进行多视角采样,图3为多视角方向示意图。在每个采样的视角方向下对三维模型进行光照渲染,图4展示了其中3个视角的渲染图。用步骤一中训练的部件检测模型检测所有渲染图象中的潜在部件,图5展示了图4中三幅渲染图象的检测结果,其中矩形框表示检测出来部件的位置,其中英文字符串gastank(油箱)、seat(座椅)、wheel(轮子)、handle(把手)、light(前灯)、body(车体)是部件类别标签,标签后的数字表示该检测结果的置信度(图5第一幅图中,各部件类别标签的置信度分别为gastank(油箱)0.998、seat(座椅)0.756、wheel(轮子)前轮0.995、后轮0.998、handle(把手)0.858、light(前灯)0.990、body(车体)0.999;图5第二幅图中,各部件类别标签的置信度分别为gastank(油箱)0.989、wheel(轮子)前轮0.989、后轮0.996、handle(把手)0.736、light(前灯)0.960、body(车体)0.989;图5第三幅图中,各部件类别标签的置信度分别为gastank(油箱)0.992、seat(座椅)0.694、wheel(轮子)前轮0.997、后轮0.999、handle(把手)0.819、light(前灯)0.993、body(车体)0.999)。每个检测结果为其包围框中的三维模型顶点投票,每个部件类别分别计票,图6分别展示了gastank(油箱)、seat(座椅)、wheel(轮子)、handle(把手)、light(前灯)、body(车体)六个部件类别的投票结果,颜色的亮暗表示了票数的高低。依据一个部件相关的阈值筛选出属于各个类别的三维模型顶点,并生成包围盒与类别标签,如图7,即gastank(油箱)、seat(座椅)、wheel(轮子)、handle(把手)、light(前灯)、body(车体)6类共8个部件检测结果。

本发明提供了一种三维模型部件的自动检测方法,具体实现该技术方案的方法和途径很多,以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。本实施例中未明确的各组成部分均可用现有技术加以实现。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1