三维物体的实时检测方法及系统与流程

文档序号:15387212发布日期:2018-09-08 00:42阅读:293来源:国知局

本发明实施例涉及一种计算机视觉检测方法,具体涉及一种三维物体的实时检测方法。本发明实施例还涉及一种三维物体的实时检测系统。



背景技术:

日常生活中,人们对场景中看到的一些三维物体往往充满兴趣。要使人与这些三维物体产生某种互动或某种联系,首先需要对其进行检测,了解它是什么,它在哪,它的姿态是什么样。并且希望这个检测过程是快速而精确的,能够在日常使用最多的移动设备上达到实时。

目前业界已有的技术对场景中的平面物体的检测及识别方案已经比较成熟,但是对三维物体的检测及识别方案则拥有各自不同的局限性。如无法把实景图像作为输入进行检测识别;或者数据库构建方式不友好,受物体物理尺寸限制,建库困难,不方便做大规模扩展;或者检测识别计算量过高,检测速度慢;或者检测的结果不能提供三维物体的空间位置和姿态,没有三维信息等等。

美国专利文献us8686992b1公开了一种三维形状匹配和检索的方法及系统(methodsandsystemsfor3dshapematchingandretrieval),其利用三维物体的形状特征进行特征匹配和检索,主要流程是对输入的三维模型进行二维模板图像生成,然后利用生成的二维图像进行形状特征的提取,并对这些形状特征进行数学描述来表达原始的三维模型。特征匹配与检索都是在该数学描述的基础上进行。该方案的缺点在于:不涉及数据库的构建,对输入数据有限制(只能是三维模型,无法使用实景图像);另外形状特征提取和描述计算量比较大,且匹配结果不够精确。

美国专利文献us9659217b2公开了一种基于处理器体系结构的尺度不变三维目标检测的系统及方法(systemsandmethodsforscaleinvariant3dobjectdetectionleveragingprocessorarchitecture),其实现了一种在真实环境中的三维物体检测方法,输入为实景图像。该方案利用外部机械结构(机器人手臂)获得场景中物体的深度信息,然后根据深度信息得到合适的图像尺度,在合适的尺度上对输入的实景图像中的物体进行特征提取,特征提取使用网格化采点的方式。该方案的计算量相对较小,但局限在于其需要借助外部其他特殊输入来构成完整的数据信息,这在一般的生活环境中是无法满足的。

美国专利文献us20090138468a1公开了一种三维模型的检索方法及系统(3dmodelretrievalmethodandsystem),其系统包含数据库的构建和检索方法两个方面。其核心是对于输入的三维模型进行多视角渲染,生成多个二维模板图像,然后对二维模板图像进行特征提取,所有模板图像的特征共同构成该三维模型的特征。其检索过程即是对这些图像特征进行相似性度量,找出最相似的匹配结果。该方案的局限在于只能检索三维模型本身,而不能应对真实环境中三维物体的实景图像。而实景图像中的三维物体相比三维模型,具有光照、旋转、尺度缩放等变化。

美国专利文献us20170161590a1公开了一种从二维图像进行三维物体检测识别的系统(recognitionofa3dmodeledobjectfroma2dimage),该方案也需要首先对三维模型生成多个二维模板图像,然后利用深度学习网络对这些二维模板图像进行训练,得到训练好的模型特征数据。在检索识别的时候,对输入的二维图像进行相应的特征提取,然后与训练好的模型特征数据进行相似性度量,找出最相似的结果。该方案使用深度学习网络,其缺点在于训练过程计算量巨大、非常消耗计算资源及耗时,训练好的模型特征数据往往体积很大,不利于在移动设备上进行部署。

上述四个方案的检测结果均不涉及对三维物体在环境中的空间位置和姿态进行解算或输出。

美国专利文献us8855366b2公开了一种现实场景中三维物体的跟踪方法(trackingthree-dimensionalobjects),该方案首先对兴趣目标三维物体进行多视角拍摄,采集其多视角下的二维图像序列,将二维图像序列作为该三维物体的数据放入数据库中。在拍摄时需要将三维物体摆放在预先定义好的平面pattern上,后续对三维物体的检测和跟踪则是根据实景图像的输入,与数据库中的二维图像序列进行图像的近邻匹配和对齐,从而间接获得三维物体在空间中的位置和姿态。该方案有一个明显的缺点在于对三维物体的多视角二维图像的采集方式非常不友好,受物体的物理尺寸或现实情况所限制,导致很多时候不具有可操作性。如果三维物体很大(雕像、汽车等),则根本无法将其摆放在平面pattern上进行拍摄;如果三维物体很小,则拍摄时相机需要离的非常近才能保证物体本身在画面中的比例足够进行图像匹配。该方案为了能够提高三维物体检测的成功率和速度,需要在前期拍摄时覆盖尽可能多的角度,这就造成进入数据库中的数据大小非常大,不利于在移动设备上部署。另外,该采集方式不利于对兴趣目标三维物体做大规模扩展。

综上所述,目前三维物体检测的技术方案并不成熟,在数据库构建及检测方法上拥有诸多局限性,不能很好地满足需求。



技术实现要素:

本发明所要解决的技术问题是提供一种三维物体的实时检测方法,它可以对真实环境中的特定三维物体进行检测。

为解决上述技术问题,本发明实施例三维物体的实时检测方法的技术解决方案为,包括以下步骤:

步骤100,构建三维物体数据库:获取三维模型;根据三维模型计算多个视角下的投影参数,进行纹理投影,得到二维模板图像;对二维模板图像生成二维图像特征,对三维模型生成三维几何特征,进行编号后一起插入特征数据库,完成三维物体数据库的构建;

具体包括以下过程:

步骤101,三维物体模型获取:对兴趣目标三维物体进行三维模型的获取;

进一步地,所述步骤101中获取三维模型的方法可以为:利用3d扫描仪对物体进行直接建模;或者对物体进行多视角的拍摄,然后利用图像建模软件进行建模;或者利用cad软件对物体进行精细建模;或者直接获得物体模型。

步骤102,二维模板图像生成:在步骤101所获取的三维模型的基础上,计算出多个视角下的投影参数,然后将该模型进行纹理投影,得到一系列的二维模板图像;

进一步地,所述步骤102包括以下过程:

步骤302,模型坐标校正:对三维模型进行坐标校正,将三维模型的坐标原点移动到物体的几何中心位置;

再进一步地,所述步骤302包括以下过程:

步骤3.1.1,将原始三维模型mori定义为:

mori={fi(vi1,vi2,vi3),vj(x,y,z)|i∈[1,nf],j∈[1,nv]}

其中,fi代表模型的面片,由vi1,vi2,vi3三个顶点构成;

vj代表模型的顶点,由(x,y,z)坐标表示;

nf代表模型中面片的数量;

nv代表模型中顶点的数量;

步骤3.1.2,计算三维模型的几何中心oori(xori,yori,zori):

其中,代表所有顶点的x坐标中的最大值;

代表所有顶点的x坐标中的最小值;

代表所有顶点的y坐标中的最大值;

代表所有顶点的y坐标中的最小值;

代表所有顶点的z坐标中的最大值;

代表所有顶点的z坐标中的最小值;

步骤3.1.3,计算三维模型的坐标原点的偏移量为:

xoff=-xori,yoff=-yori,zoff=-zori

步骤3.1.4,将三维模型的坐标原点的偏移量应用到原始模型上,则校正过的模型mcal为:

mcal={fi(vi1,vi2,vi3),vj(x+xoff,y+yoff,z+zoff)|i∈[1,nf],j∈[1,nv]}。

步骤303,模板视角生成:以校正后的三维模型mcal的原点为中心,生成至少六组旋转矩阵及其相对应的平移向量;

进一步地,所述步骤303包括以下过程:

定义六组正交基矩阵为:{ri|i∈[1,6]},分别代表从顶部、底部、前面、后面、左边、右边垂直看向模型中心的视角的旋转矩阵;

计算正交基矩阵r相应的平移向量t=(tx,ty,tz),使得在该视角(r,t)下模型的投影在画面中的大小适中;

再进一步地,在所述六组正交基矩阵的基础上增加多个任意角度的旋转矩阵,得到n个模板视角{(ri,ti)|i∈[1,n]};其中,n≥6。

步骤304,模型纹理投影:进行模型的纹理投影,得到最终n个二维模板图像305,其中n≥6;二维图像上的像素点与三维模型上的空间点的关系式如下:

p(u,v)~k·[r·p(x,y,z)+t]

其中,k代表3×3的相机内参矩阵;

r代表3×3的旋转矩阵;

t代表3×1的平移向量;

p代表图像上的像素点,u、v分别代表其坐标;

p代表空间上的三维点,x、y、z分别代表其坐标;

·代表矩阵的乘法;

~代表齐次坐标意义下的相等。

步骤103,特征生成:分别生成二维图像特征和三维模型几何特征;

进一步地,所述步骤103包括二维图像特征生成步骤400和三维模型几何特征生成步骤410:

所述二维图像特征生成步骤400的具体步骤如下:

步骤401,二维图像特征点位置提取:在输入的二维模板图像上进行二维图像的特征点定位,提取特征点在二维模板图像上的位置;记二维图像为i,提取到的所有特征点构成该图像的特征点集{pi(u,v)|pi∈i,i=[1,np]},其中np为特征点的数目;

步骤402,二维图像特征点数学描述:特征点的位置获得后,对特征点邻域信息进行数学描述,生成一个特征描述向量来表示这个特征点;定义特征点pi的特征描述向量为vi;其中vi是一个多维向量;

所述三维模型几何特征生成步骤410的具体步骤如下:

根据输入的三维模型数据,进行三维模型几何信息计算;三维模型的几何信息包括每个三角面片的相邻面、相接顶点,每个顶点的相邻顶点、相接三角面片,每个三角面片的法向量,每个顶点的法向量;三维模型的几何信息构成三维模型几何特征。

再进一步地,所述步骤401之前执行以下步骤:对原始图像创建l层图像金字塔,在每层图像金字塔上进行特征点的提取,其中l≥1。

再进一步地,所述步骤402之后执行以下步骤:

步骤403,二维图像特征点信息编码;

对特征描述向量进行信息编码,将高维的向量变成低维的二进制编码;

定义向量vi的二进制编码为bi;对于二维图像i,得到一个编码好的特征点集{pi(u,v),bi|pi∈i,i=[1,np]};这个特征点集作为二维图像特征。

步骤104,特征数据库的数据插入:将步骤103所生成的二维图像特征和三维模型几何特征进行编号,一起插入到特征数据库中,从而完成三维物体数据库a的构建;

步骤200,三维物体的检测:根据实景图像进行特征生成,得到二维图像特征;然后将实景图像的二维图像特征在所构建的三维物体数据库中进行二维图像特征的匹配搜索,得到图像匹配结果,由图像匹配结果反推出对应的三维物体;最后对匹配结果进行几何校验,得到三维物体的检测结果;

具体包括以下过程:

步骤200.1,图像采集:首先由图像采集设备进行图像的采集,得到实景图像;

步骤200.2,实景图像输入:将图像采集设备所采集的实景图像输入特征生成器,得到二维图像特征;

步骤200.3,将特征生成器所生成的实景图像的二维图像特征以及三维物体数据库a一起输入特征检索器;在特征检索器中进行二维图像特征的匹配搜索,得到初始的图像匹配结果,由这个图像匹配结果反推出对应的三维物体;最后利用三维物体的几何信息对匹配结果进行几何校验,得到最终的三维物体检测结果;在进行几何校验的同时,解算出三维物体在环境中的空间位置姿态。

进一步地,所述步骤200.3的具体操作步骤如下:

步骤500.1,将实景图像的二维图像特征与三维物体数据库a中的所有二维模板图像特征进行匹配查找,找出最相似的二维模板图像的候选;根据找出的相似模板图像的编号,反推出其对应的三维物体的候选;记三维物体候选结果为:c为候选的总数;

再进一步地,所述步骤500.1中找出最相似的二维模板图像的候选的方法为:对相似性度量结果设定一个阈值th,凡满足阈值条件的匹配结果都作为检测结果的候选。

步骤500.2,根据三维几何特征对候选结果进行校验;

记候选k的最小投影误差为

其中,pi代表二维图像特征点的坐标,

代表候选模型上对应的三维点,

代表候选模型上的对应三维点的投影函数;

所有候选中最小投影误差最小的候选即为最终的三维物体检测结果:

三维模型所对应的即为检测结果的(r,t);而即表征了三维物体在空间中的位置和姿态。

本发明实施例还提供一种三维物体的实时检测系统,其技术解决方案为,包括

三维物体模型获取模块,用于获取三维模型;

二维模板图像生成器,根据三维物体模型获取模块所获取的三维模型,计算多个视角下的投影参数,进行纹理投影,得到二维模板图像;

进一步地,所述二维模板图像生成器包括模型坐标校正模块、模板视角生成模块、模型纹理投影模块;

模型坐标校正模块用于对三维模型进行坐标校正,将三维模型的坐标原点移动到物体的几何中心位置;

模板视角生成模块以校正后的三维模型的原点为中心,生成至少六组旋转矩阵及其相对应的平移向量;

模型纹理投影模块根据旋转矩阵及其相对应的平移向量进行模型的纹理投影,得到最终n个二维模板图像。

特征生成器,用于对来自于图像采集设备的实景图像进行处理,得到二维图像特征;以及对输入的二维模板图像进行二维图像特征的生成,对输入的三维模型数据进行三维模型几何特征的生成;

进一步地,所述特征生成器包括两个子系统,其中第一子系统包括二维图像特征点位置提取模块、二维图像特征点数学描述模块、二维图像特征点信息编码模块;第二子系统包括三维模型几何信息计算模块;

二维图像特征点位置提取模块在二维模板图像上进行二维图像的特征点定位,提取特征点在二维模板图像上的位置;

二维图像特征点数学描述模块根据二维图像特征点位置提取模块所获得的特征点的位置,对特征点邻域信息进行数学描述,生成一个相应的特征描述向量来表示这个特征点;

二维图像特征点信息编码模块对二维图像特征点数学描述模块所生成的特征描述向量进行信息编码,将高维的向量变成低维的二进制编码,得到一个编码好的特征点集;该特征点集作为二维图像特征;

三维模型几何信息计算模块根据输入的三维模型数据,进行三维模型几何信息计算,得到三维模型几何特征。

特征数据库,用于接收特征生成器根据二维模板图像所生成的二维图像特征和三维模型几何特征,完成三维物体数据库的构建;

图像采集设备,用于实景图像的采集;

特征检索器,用于将来自于特征生成器的实景图像的二维图像特征在所构建的三维物体数据库中进行二维图像特征的匹配搜索,得到图像匹配结果,由图像匹配结果反推出对应的三维物体;对匹配结果进行几何校验,得到三维物体的检测结果。

进一步地,所述特征检索器包含两个模块:二维图像特征匹配模块和三维几何特征校验模块;

二维图像特征匹配模块将实景图像的二维图像特征与三维物体数据库a中的所有二维模板图像特征进行匹配查找,找出最相似的二维模板图像的候选,根据二维模板图像的编号反推出三维模型的候选;

三维几何特征校验模块根据三维几何特征对候选结果进行校验,得到最终的三维物体检测结果。

本发明实施例还提供一种三维物体的实时检测系统,其技术解决方案为,包括存储器和处理器,其中:

所述存储器,用于存储代码和相关数据;

所述处理器,用于调用所述存储器中的数据,执行所述存储器中的代码;执行所述存储器中的代码能实施前述任一所述的方法步骤。

本发明可以达到的技术效果是:

本发明实施例能够解决数据库构建中的困难,并可以实现在移动设备上对三维物体进行快速实时的检测。

本发明实施例包含一套完整的数据库构建方法,该数据库的构建基于三维物体的模型进行多视角二维图像生成,从而不受三维物体真实的物理尺寸的影响。该数据库中不仅包含了二维图像特征,还包含了三维几何特征,两个特征共同作用可以帮助在检测过程中对场景中的三维物体进行空间定位。且相比拍摄图像序列的方式,数据库的体积可以大大缩小,不到视频的百分之一,可以很方便地进行大规模扩展。

本发明实施例在检测过程中,除了对二维图像特征进行匹配之外,还利用物体本身的三维几何信息对匹配结果进行校验,从而保证检测结果的精确性。

本发明实施例在特征生成的过程中,利用先进的特征描述算法和编码方法,可以保证匹配过程能够应对现实环境中的光照、旋转、尺度缩放等变化,同时提高匹配的速度,使得整个系统能够在计算资源相对受限的移动设备上达到实时检测的要求。

附图说明

本领域的技术人员应理解,以下说明仅是示意性地说明本发明的原理,所述原理可按多种方式应用,以实现许多不同的可替代实施方式。这些说明仅用于示出本发明的教导内容的一般原理,不意味着限制在此所公开的发明构思。

结合在本说明书中并构成本说明书的一部分的附图示出了本发明的实施方式,并且与上文的总体说明和下列附图的详细说明一起用于解释本发明的原理。

下面结合附图和具体实施方式对本发明实施例作进一步详细的说明:

图1是本发明实施例三维物体的实时检测方法及系统的流程图;

图2是本发明实施例的二维模板图像生成步骤的流程图;

图3是本发明实施例的特征生成步骤的流程图;

图4是本发明实施例的特征检索器的流程图;

图5是本发明实施例三维物体的实时检测系统的框架图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。除非另外定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本文中使用的“包括”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。

如图1所示,本发明实施例三维物体的实时检测方法,包括以下步骤:

步骤100,构建三维物体数据库;

具体包括以下过程:

步骤101,三维物体模型获取:对兴趣目标三维物体进行三维模型的获取;

获取模型的方式可以有很多种,可以利用3d扫描仪对物体进行直接建模;也可以对物体进行多视角的拍摄,然后利用图像建模软件(如photoscan)进行建模;还可以利用cad软件(如maya)对物体进行精细建模。当然,有一些物体如商品、工业制品等,其本身是先有三维模型然后才有实物制造,对于这类物体,其模型的获取就可以直接获得,不需要进行额外的建模。

步骤102,二维模板图像生成:在步骤101所获取的三维模型的基础上,计算出多个视角下的投影参数,然后将该模型进行纹理投影,得到一系列的二维模板图像;

如图2所示,二维模板图像的生成300是以三维物体模型获取步骤101所获取的三维模型数据301作为输入,得到一系列二维模板图像305的过程;其详细步骤如下:

步骤302,模型坐标校正:首先对三维模型进行坐标校正,将三维模型的坐标原点移动到物体的几何中心位置,目的是方便后续的投影计算,使得模型可以投影在画面中央;

步骤3.1.1,将原始三维模型mori定义为:

mori={fi(vi1,vi2,vi3),vj(x,y,z)|i∈[1,nf],j∈[1,nv]}

其中,fi代表模型的面片,由vi1,vi2,vi3三个顶点构成;

vj代表模型的顶点,由(x,y,z)坐标表示;

nf代表模型中面片的数量;

nv代表模型中顶点的数量;

步骤3.1.2,计算三维模型的几何中心oori(xori,yori,zori):

其中,代表所有顶点的x坐标中的最大值;

代表所有顶点的x坐标中的最小值;

代表所有顶点的y坐标中的最大值;

代表所有顶点的y坐标中的最小值;

代表所有顶点的z坐标中的最大值;

代表所有顶点的z坐标中的最小值;

步骤3.1.3,计算三维模型的坐标原点的偏移量为:

xoff=-xori,yoff=-yori,zoff=-zori

步骤3.1.4,将三维模型的坐标原点的偏移量应用到原始模型上,则校正过的模型mcal为:

mcal={fi(vi1,vi2,vi3),vj(x+xoff,y+yoff,z+zoff)|i∈[1,nf],j∈[1,nv]}

步骤303,模板视角生成:以校正后的三维模型mcal的原点为中心,生成至少六组旋转矩阵及其相对应的平移向量;

为了方便阐释,以下统一以右手坐标系为准;

定义六组正交基矩阵为:{ri|i∈[1,6]},分别代表从不同方向(顶部、底部、前面、后面、左边、右边)垂直看向模型中心的视角的旋转矩阵;

生成正交基矩阵的方式有很多种,以顶部视角为例,可以是如下形式:满足r-1=rt

有了基矩阵r后,还需要计算其相应的平移向量t=(tx,ty,tz);t的计算方式相对比较自由,只需保证在该视角(r,t)下,模型在画面上的投影不会太小也不会太大即可;

六组基矩阵已经可以完整覆盖三维模型的每个表面;为了提高后续匹配的成功率,还可以增加多个视角。增加视角的方法也有很多种,可以在上述基矩阵的基础上进行旋转操作,也可以直接生成旋转矩阵;

通过上述操作后,可以得到n(n≥6)个模板视角{(ri,ti)|i∈[1,n]};

步骤304,模型纹理投影:进行模型的纹理投影,得到最终n个二维模板图像305,其中n≥6;二维图像上的像素点与三维模型上的空间点的关系式如下:

p(u,v)~k·[r·p(x,y,z)+t]

其中,k代表3×3的相机内参矩阵;

r代表3×3的旋转矩阵;

t代表3×1的平移向量;

p代表图像上的像素点,u、v分别代表其坐标;

p代表空间上的三维点,x、y、z分别代表其坐标;

·代表矩阵的乘法;

~代表齐次坐标意义下的相等。

纹理投影的实现方式可以有多种,可以采用3d渲染引擎利用gpu进行计算(如opengl、directx、metal、vulkan等),也可以通过软件的方式由cpu直接进行插值运算。

步骤103,特征生成:包括二维图像特征的生成,以及三维几何特征的计算;

如图3所示,特征生成步骤103包括彼此独立的两个步骤,对输入的二维模板图像305进行二维图像特征的生成(即二维图像特征生成步骤400),以及对输入的三维模型数据301进行三维模型几何特征的生成(即三维模型几何特征生成步骤410);

二维图像特征生成步骤400的具体步骤如下:

步骤401,二维图像特征点位置提取:首先在二维模板图像305上进行二维图像的特征点定位,提取特征点在二维模板图像305上的位置(即像素坐标);

特征点定位的方法有很多种,可以采用图像局部特征,如harris、fast、dog等算法;也可以采用对图像进行区域划分,在每个区域里采点;也可以使用深度学习的方法,得到一些抽象特征。

为了使得图像特征能够应对尺度缩放的问题,还可以在特征点提取之前对原始图像创建l层(l≥1)图像金字塔,在每层图像金字塔上进行特征点提取;记二维图像为i,提取到的所有特征点构成该图像的特征点集{pi(u,v)|pi∈i,i=[1,np]},其中np为特征点的数目;

步骤402,二维图像特征点数学描述:特征点的位置获得后,需要对特征点邻域信息进行数学描述,生成一个相应的特征向量来表示这个特征点;

生成数学描述的方法也有很多种,可以采用sift、surf、brisk等算法;

定义特征点pi的特征向量为vi;其中vi是一个多维向量,其维度根据实现的算法不同而不同;

步骤403,二维图像特征点信息编码;

有了特征描述向量后,可以把这些描述向量作为最终的二维图像特征直接插入到特征数据库中;但是这些特征向量往往维度很高,数据量比较大;且对这些特征向量进行后续的匹配查找时,需要进行大量的浮点数的距离计算;因此在得到特征描述向量后,需要对这些向量进行信息编码,将高维的向量变成低维的二进制编码,这样可以极大地降低数据量的大小,同时在进行后续的距离计算时可以用非常高效的位运算操作;

从高维向量转化为低维二进制编码的方法也有很多种,如hash编码、随机投影等;为了数据存储及计算的高效性,二进制编码的宽度可以设为32位或者64位;定义向量vi的二进制编码为bi;

最终,对于二维图像i,可以得到一个编码好的特征点集{pi(u,v),bi|pi∈i,i=[1,np]};这个特征点集作为二维图像特征404插入到特征数据库中。

三维模型几何特征生成步骤410的具体步骤如下:

根据输入的三维模型数据,进行三维模型几何信息计算411;三维模型的几何信息包括每个三角面片的相邻面、相接顶点,每个顶点的相邻顶点、相接三角面片,每个三角面片的法向量,每个顶点的法向量等等;所有这些几何信息共同构成了三维几何特征412,一起插入到特征数据库中。

步骤104,特征数据库的数据插入:特征生成步骤103的二维图像特征生成步骤400所生成的二维图像特征404和三维模型几何特征生成步骤410所生成的三维几何特征412作为最终的特征数据420,一起插入到特征数据库中,从而完成三维物体数据库a的构建;

在二维图像特征404和三维几何特征412插入到特征数据库的过程中,将这些特征进行编号,每个编号对应真实的三维物体。

当然,在对实景图像进行三维物体检测的时候,特征生成步骤103仅仅需要二维图像特征生成步骤400。

步骤200,三维物体的检测;

具体包括以下过程:

步骤200.1,图像采集:首先由图像采集设备201进行图像的采集,得到实景图像202;

图像采集设备201可以是任何带摄像头的计算设备,如外接摄像头的电脑或工控机、内置摄像头的笔记本、智能手机、平板电脑、ar眼镜等;

步骤200.2,实景图像输入:将图像采集设备201所采集的实景图像202输入特征生成器,得到二维图像特征;

步骤200.3,将二维图像特征及三维物体数据库a一起输入特征检索器203;在特征检索器203中,进行二维图像特征的匹配搜索,得到初始的图像匹配结果,由这个图像匹配结果反推出对应的三维物体;最后利用三维物体的几何信息对匹配结果进行几何校验,得到最终的三维物体检测结果204;

在进行几何校验的同时,可以解算出三维物体在环境中的空间位置姿态。

特征检索器203的输入是实景图像的二维图像特征,以及已建立好的三维物体数据库a;具体操作步骤如下:

步骤500.1,首先将实景图像的二维图像特征与三维物体数据库a中的所有二维模板图像特征进行匹配查找,找出最相似的二维模板图像;

匹配查找的方法主要是进行特征之间的相似性度量,实现的方式也有很多种,如欧式距离:等;

根据找出的相似模板图像的编号,反推出其对应的三维物体;为了提高检测的成功率,可以对相似性度量结果设定一个阈值th,满足阈值条件的匹配结果都作为检测结果的候选;假设总共有c个候选,记三维物体候选结果为:

步骤500.2,然后根据三维几何特征对候选结果进行校验,以提高检测结果的精度;

校验的过程是一个优化求解的过程,使得投影的误差最小;对每个候选结果优化投影误差,得到投影误差最小的情况,记候选k的最小投影误差为

其中,pi代表二维图像特征点的坐标,

代表候选模型上对应的三维点,

代表候选模型上的对应三维点的投影函数;

所有候选中最小投影误差最小的候选即为最终的三维物体检测结果:

三维模型所对应的即为检测结果的(r,t);而即表征了三维物体在空间中的位置和姿态。

在进行上述优化求解的过程中,为了提高计算的速度,可以充分利用三维几何信息进行运算量的降低;比如根据三角面片的法向量可以去除一些不可见的三角面片,减少不必要的计算;比如根据顶点和三角面片的邻接关系去除一些明显错误的匹配点对,提高匹配结果的精度。

本发明实施例所提供的三维物体的实时检测系统,包括图像采集设备201、特征生成器、三维物体模型获取模块、二维模板图像生成器、特征数据库、特征检索器203;

图像采集设备201用于图像的采集,得到实景图像;

特征生成器能够对来自于图像采集设备201的实景图像进行处理,得到二维图像特征;还能够对输入的二维模板图像305进行二维图像特征的生成,以及对输入的三维模型数据301进行三维模型几何特征的生成;

特征生成器包括两个子系统,其中第一子系统包括二维图像特征点位置提取模块、二维图像特征点数学描述模块、二维图像特征点信息编码模块

二维图像特征点位置提取模块在二维模板图像305上进行二维图像的特征点定位,提取特征点在二维模板图像305上的位置;

二维图像特征点数学描述模块根据二维图像特征点位置提取模块所获得的特征点的位置,对特征点邻域信息进行数学描述,生成一个相应的特征描述向量来表示这个特征点;

二维图像特征点信息编码模块对二维图像特征点数学描述模块所生成的特征描述向量进行信息编码,将高维的向量变成低维的二进制编码,得到一个编码好的特征点集;将该特征点集作为二维图像特征404插入到特征数据库中;

第二子系统包括三维模型几何信息计算模块,三维模型几何信息计算模块根据输入的三维模型数据,进行三维模型几何信息计算,得到三维几何特征412,插入到特征数据库中。

三维物体模型获取模块用于获取兴趣目标三维物体的三维模型;

二维模板图像生成器根据三维物体模型获取模块所获取的三维模型,计算出多个视角下的投影参数,然后将该模型进行纹理投影,得到一系列的二维模板图像;

二维模板图像生成器包括模型坐标校正模块、模板视角生成模块、模型纹理投影模块;

模型坐标校正模块用于对三维模型进行坐标校正,将三维模型的坐标原点移动到物体的几何中心位置,目的是方便后续的投影计算,使得模型可以投影在画面中央;

模板视角生成模块以校正后的三维模型的原点为中心,生成至少六组旋转矩阵及其相对应的平移向量;

模型纹理投影模块根据旋转矩阵及其相对应的平移向量进行模型的纹理投影,得到最终n个二维模板图像305。

特征数据库用于接收特征生成器所生成的二维图像特征和三维模型几何特征,完成三维物体数据库a的构建;

特征检索器203用于将来自于特征生成器的二维图像特征在三维物体数据库a中进行二维图像特征的匹配搜索,得到初始的图像匹配结果,由这个图像匹配结果反推出对应的三维物体;利用三维物体的几何信息对匹配结果进行几何校验,得到最终的三维物体检测结果;在进行几何校验的同时,解算出三维物体在环境中的空间位置姿态,从而实现三维物体的检测;

如图4所示,特征检索器203包含两个模块:二维图像特征匹配模块501和三维几何特征校验模块502;

二维图像特征匹配模块501将实景图像的二维图像特征与三维物体数据库a中的所有二维模板图像特征进行匹配查找,找出最相似的二维模板图像的候选,根据二维模板图像的编号反推出三维模型的候选;

三维几何特征校验模块502根据三维几何特征对候选结果进行校验,以提高检测结果的精度。

如图5所示,本发明实施例所提供的三维物体的实时检测系统,还包括存储器601和处理器602,其中所述存储器601用于存储代码和相关数据,处理器602用于调用存储器601中的数据,执行存储器601中的代码,执行所述存储器601中的代码可以实施如图1、图2、图3、图4以及与其对应的本发明实施例所提供的三维物体的实时检测方法,具体方法步骤参照前述实施例的描述,在此不再赘述。

本发明实施例所提供的技术方案能够对现实场景中的兴趣目标物体进行检测及识别,可以广泛应用于多个领域,如商品检测、广告营销、工业生产、机器人、增强现实等。尤其是在快速成长的增强现实应用领域,本发明实施例所提供的技术方案对目标物体的检测结果更精确、更快速,并且能够在计算性能相对限制较多的移动设备平台上达到实时;检测结果能够同时输出场景中目标三维物体在空间中的位置和姿态,利用这些空间位置和姿态信息,可以在目标三维物体上叠加、展示虚拟的三维内容或信息,也可以建立用户与目标三维物体之间的联系形成互动,达到增强现实的效果。

应该理解,本发明实施例的各种实施例中,上述各过程中序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

另外,本文中术语“系统”和“网络”在本文中常被可互换使用。本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟是以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明实施例的范围。

所属领域的技术人员可以清楚了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其他的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅是一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或者组件可以结合或者可以继承到一个系统,或者一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或者直接耦合或者通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其他的形式连接。

所述作为分离部件说明的单元可以是或者可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在个单元中。上述集成的单元即可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明实施例可以用硬件实现,或者软件实现,或它们的组合方式来实现。当使用软件实现时,可以见上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何介质。以此为例但不限于:计算机可读介质可以包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外,任何连接可以适当的成为计算机可读介质,例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(sdl)或者诸如红外线、无线电和微波之类的无线技术包括在所属介质的定影中。如本发明实施例所使用的盘(disk)和碟(disc)包括压缩光碟(cd)、激光碟、光碟、数字通用光碟(dvd)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。

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