从2D图像进行3D建模对象的识别的制作方法

文档序号:11584619阅读:377来源:国知局
从2D图像进行3D建模对象的识别的制造方法与工艺

本发明涉及计算机程序和系统领域,并且更具体地涉及用于从表示对象的图像或照片中检索3d对象的数据库中的三维(3d)对象的方法、系统和程序。



背景技术:

现有的三维(3d)对象检索方法可被归类为:(i)直接在3d内容上操作的方法,以及(ii)提取“2.5d”或2d内容(立体对、图像的多个视图、人工渲染的3d对象、轮廓等)的方法。

现在集中于基于2d图像的“2d到3d”检索框架作为用于执行检索的输入,包括边界分析的一些基于形状的方法已经适于从(一个或多个)2d图像检索3d对象。

例如,t.napoleon在eurasipjournalonimageandvideoprocessing,2010中的“from2dsilhouettesto3dobjectretrieval:contributionsandbenchmarking”用多个轮廓图像进行3d对象搜索。查询不仅包括2d轮廓,还包括手绘草图。值得注意的是,本文档介绍包括以用于搜索效率的粗略到精细的方式使用动态程序的轮廓(silhouette)/外形(contour)对准的想法。然而,该方法的重要缺点是性能对由自动迂回造成的外形的质量敏感,这仍然是巨大的挑战。

作为从2d图像进行3d检索的另一个示例,aono等人在signal&informationprocessingassociationannualsummitandconference(apsipaasc),2012中的“3dshaperetrievalfroma2dimageasquery”使用复合特征向量作为用于从单个2d图像进行3d对象检索的zernike矩和hog特征的组合。hog特征是从阴影深度缓冲图像计算的,而zernike矩是从轮廓图像计算的。这些特征可能不足以区分具有相同整体形状的相似对象。此外,它们经常在部分遮挡的对象的情况下失败。

“2d到3d”匹配的其它方法利用用于有效的对象检测和/或精细姿势估计的3d模型。为此,它们依赖于它们从大量的视点渲染的3d示范模型的集合。渲染的图像然后用于学习部分模板以定位给定图像中的对象并估计其精细姿势。这样的方法的主要缺点是它们需要繁重的注释和计算。因而不可扩展。为了学习有意义的模型,它们需要将每个可用的cad模型关联到包含相同的cad模型并且用对象姿势注释的一组图像。

用2d图像查询3d对象的数据库还用于在q.huang等人在cvpr2015中的“single-viewreconstructionviajointanalysisofimageandshapecollections”中的web图像中描绘的对象的自动3d重建。该方法从单个视图重建对象。关键思想是与现有3d模型的较小集合一起联合地分析不同对象的图像集合。在自然图像和渲染的图像之间建立密集像素级别对应。这些对应用于联合地分割图像和3d模型。计算的分割和对应然后用于构造新模型。然而,这样的方法对分割的质量敏感,并且因此会在具有复杂背景和部分遮挡的对象的图像的情况下失败。

因此,这些方法经受几个缺点。首先,它们可能需要对作为输入提供的图像的约束;例如图像的分割、图像的自动迂回。另外,它们不总是允许检索部分遮挡的对象。此外,这些方法的可扩展性可能受到限制,因为它们依赖于快速达到其学习能力限制的学习机。此外,用于检索对象的签名的辨别力不总是允许相关的3d对象;例如这些方法不能由自己确定什么造成3d模型中的两个对象之间的差异。

在该上下文中,仍然存在对用于从二维图像识别三维建模对象的改进方法的必要。



技术实现要素:

因此,提供一种用于从二维图像识别三维建模对象的计算机实现的方法。该方法包括:提供从三维建模对象渲染的二维图像的第一集合,第一集合的每个二维图像被关联到标签;提供非从三维对象渲染的二维图像的第二集合,第二集合的每个二维图像被关联到标签;在第一和第二集合两者上训练模型;提供相似度度量;提交描绘至少一个对象的二维图像;以及检索与通过使用训练模型和相似度度量提交的二维图像的所述至少一个对象相似的三维对象。

该方法可进一步包括下列中的一个或多个:

-第一集合中的每个二维图像是根据三维对象上的视点计算的,该视点是在三维对象上的多个视点之中选择的;

-三维对象上的多个视点是根据thomson球获得的;

-在训练模型之后:通过为第一集合的每个二维图像提取(s500)特征向量来建立第一集合的二维图像的索引,其中特征向量是使用训练模型提取;

-提取的特征向量包括训练模型的参数到二维图像的连续应用;

-提取提交的二维图像的特征向量。

-通过使用相似度度量,将提交的二维图像的提取的特征向量与索引的特征向量进行比较;

-用于比较的相似度度量是确定性的;

-用于比较的相似度度量时利用学习过程学习的;

-学习过程包括:在第一和第二集合两者上训练相似度模型,第一集合的每个二维图像与第二集合的二维图像配对,并且与第一和第二集合的二维图像相关联的标签至少包括相似度信息标签;

-特征向量的提取和相似度度量的学习过程是通过使用siamese网络来同时实施的;

-训练模型是利用深度神经网络获得的。

进一步提供一种用于从二维图像识别三维建模对象的计算机程序,包括使处理电路执行以上方法的指令。

进一步提供一种具有在记录于其上的计算机程序的计算机可读存储介质。

进一步提供一种包括耦合到存储器的处理电路的系统,该存储器具有记录于其上的计算机程序。

附图说明

现在将通过非限制性示例的方式并参考附图来描述该发明的实施例,其中:

-图1示出训练模型的示例的流程图;

-图2示出用于相机位置的thomson球的示例;

-图3示出基于用于相机位置的thomson球生成的一个3d对象的视图的示例;

-图4示出深度神经网络架构的示例;

-图5示出索引2d图像的示例的流程图;

-图6示出离线学习和索引的示例;

-图7示出检索对象的示例的流程图;

-图8示出对象的在线检索的示例;

-图9示出深度siamese架构的示例;以及

-图10示出计算机系统的示例。

具体实施方式

参照图1、5和7的流程图,提出一种用于从二维(2d)图像识别三维(3d)建模对象的计算机实现的方法。该方法包括提供2d图像的第一和第二集合。从3d建模对象渲染第一集合的图像,并且不从3d建模对象渲染第二集合的图像。第一和第二集合的每个2d图像被关联到标签。该方法还包括:在第一和第二集合上训练模型;该模型典型地是神经网络模型。该方法进一步包括提供相似度度量。然后,该方法包括提交描绘至少一个对象的2d图像。接下来,该方法包括检索与由先前提交的3d图像描绘的一个或多个对象相似的至少一个3d对象。检索是通过使用训练模型和相似度度量来执行的。这样的方法改进从2d图像对3d建模对象的识别。

值得注意的是,本发明不需要在用于检索3d建模对象的输入数据(2d图像)上应用任何具体约束。实际上,模型的训练避免为图像内容分析执行分割,并且它还避免利用使用分割的方法遇到的遮挡问题。该方法是鲁棒的,因为模型的识别依赖于基于原始数据而从端到端学习获得的训练模型:所搜索的是系统所已知的。可扩展性也得到改善:实际上,用于训练模型的深度神经网络不具有关于其学习能力的任何限制(除了当系统达到识别100%成功时)。此外,该方法提供高效的方式来使用具有3d对象的深度学习。训练模型的方式允许获得适于被存储的3d对象的类型的签名。签名的辨别力因此用于改善识别的对象的相关性。

该方法是计算机实现的。这意味着该方法的步骤(或者基本上所有步骤)由至少一个计算机或相似的任何系统执行。因此,该方法的步骤可能完全自动地或半自动地由计算机执行。在示例中,可通过用户-计算机交互来执行该方法的步骤中的至少一些的触发。所需的用户-计算机交互的级别可取决于预见的自动化的水平,并且与实现用户的愿望的需要平衡。在示例中,该级别可以是用户定义的和/或预定义的。

该方法的计算机实现方式的典型示例是用适于该目的的系统来执行该方法。该系统包括耦合到存储器的处理器。其可进一步包括图形用户接口(gui)。典型地,存储器具有记录于其上的计算机程序,该计算机程序包括用于执行该方法的指令。存储器还可存储数据库。存储器是适于这样的存储的任何硬件,可能包括若干物理不同的部件(例如,一个用于程序,并且可能一个用于数据库)。

第一和第二集合的2d图像被典型地存储在“数据库”上。数据库意味着为搜索和检索组织的数据(即信息)的任何集合(例如,关系数据库,例如,基于预定的结构化语言,例如sql)。当存储在存储器上时,数据库允许由计算机快速搜索和检索。数据库实际上被结构化以便于与各种数据处理操作结合的数据的存储、检索、修改和删除。数据库可由可以被分解成记录的一个文件或一组文件组成,记录中的每一个由一个或多个字段组成。字段是数据存储的基本单位。用户可主要通过查询检索数据。使用关键字和排序命令,用户可以快速搜索、重新排列、分组和选择许多记录中的字段,以根据正在使用的数据库管理系统的规则来检索或创建关于特定数据聚合的报告。

该方法一般操纵自然图像和从建模对象获得的合成图像。建模对象是由例如存储在数据库中的数据定义的任何对象。通过扩展,表达“建模对象”指定数据本身。建模对象可由不同种类的数据定义,这取决于已经用其建模对象的系统。系统可实际上是cad系统、cae系统、cam系统、pdm系统和/或plm系统中的任何一个(或组合中的任何一个)。在那些不同的系统中,建模对象由对应的数据定义。人们可相应地说cad对象、plm对象、pdm对象、cae对象、cam对象、cad数据、plm数据、pdm数据、cam数据、cae数据。然而,这些系统不是彼此独占的,因为建模对象可由对应于这些系统的任何组合的数据定义。系统因此可以很好地是cad和plm系统两者,如将从下面提供的这样的系统的定义中显而易见的。

cad系统另外意味着至少适于在建模对象的图形表示(诸如catia)的基础上设计建模对象的任何系统。在这种情况下,定义建模对象的数据包括允许建模对象的表示的数据。在具有面或表面的特定情况下,cad系统例如可使用边缘或线来提供cad建模对象的表示。线、边缘或表面可以各种方式表示,例如,非均匀有理b样条(nurbs)。具体地,cad文件包含规范,从该规范中可生成几何形状,这反过来允许生成表示。建模对象的规范可被存储在单个cad文件或多个cad文件中。在cad系统中表示建模对象的文件的典型大小在每个部件一兆字节的范围内。并且建模对象典型地可以是成千个部件构成的组装件。

在cad的上下文中,建模对象典型地可以是3d建模对象,例如,表示诸如部件或部件的组装件的产品,或者可能产品的组装件。“3d建模对象”意味着由允许其3d表示的数据建模的任何对象。3d表示允许从所有角度查看部件。例如,3d建模对象当3d表示时可被处理和围绕其任何轴或围绕在其上显示该表示的屏幕中的任何轴旋转。这显著地排除不是3d建模的2d图标。3d表示的显示便于设计(即,增加设计者在统计上完成他们的任务的速度)。这加速工业中的制造过程,因为产品的设计是制造过程的部分。

3d建模对象可表示将在真实世界中制造的产品的几何形状,该制造在利用例如cad软件解决方案或cad系统完成其虚拟设计之后,诸如(例如机械)部件或部件的组装件(或者等同地部件的组装件,因为从该方法的视点来看,部件的组装件可被视为部件本身,或者该方法可被独立地应用到该组装件的每个部件),或者更一般地任何刚性体组装件(例如移动机构)。cad软件解决方案允许各种和无限的工业领域中的产品设计,包括:航空航天、建筑、建造、消费品、高科技设备、工业装置、运输、海洋和/或海上油/气生产或运输。由该方法使用的3d建模对象因此可表示工业产品,该工业产品可以是任何机械部件,例如陆地交通工具(例如包括:汽车和轻型卡车装置、赛车、摩托车、卡车和汽车的装置、卡车和公共汽车、火车)的一部分,空中交通工具(例如包括:机身装置、航空航天装置、推进装置、国防产品、航空装置、空间装置)的一部分,海洋交通工具(例如包括:海军装置、商业船只、海上装置、游艇和工作船、船舶装置)的一部分,一般机械部件(例如包括:工业制造机械、重型移动机械或装置、安装装置、工业装置产品、金属制品、轮胎制造产品),机电或电子部件(例如包括:消费电子产品、安全和/或控制和/或仪器产品、计算和通信装置、半导体、医疗设备和装置),消费品(例如包括:家具、家用和花园产品、休闲用品、时尚产品、硬质商品零售商产品、软质商品零售商产品),包装(例如包括:食品和饮料及烟草、美容和个人护理、家务产品包装)。

plm系统另外意味着适于表示物理制造产品(或待制造的产品)的建模对象的管理的任何系统。在plm系统中,建模对象因此由适合于物理对象的制造的数据来定义。这些典型地可以是尺寸值和/或公差值。为了正确地制造对象,确实最好具有这样的值。

cam解决方案另外意味着适于管理产品的制造数据的任何解决方案、硬件的软件。制造数据一般包括与要制造的产品相关的数据、制造过程和所需的资源。cam解决方案用于计划和优化产品的整个制造过程。例如,其可以给cam用户提供制造过程的可行性、持续时间或诸如具体机器人的资源的数量的信息,其可在制造过程的具体步骤中被使用;并且因此允许关于管理或所需投资的决策。cam是在cad过程和潜在cae过程之后的后续过程。这样的cam解决方案由商标为的dassaultsystèmes提供。

cae解决方案另外意味着适于建模对象的物理行为的分析的任何解决方案、硬件的软件。公知且广泛使用的cae技术是有限元方法(fem),其典型地涉及将建模对象划分成可通过方程式计算和模拟其物理行为的元素。这样的cae解决方案由商标为的dassaultsystèmes提供。另一个成长的cae技术涉及由来自不同物理场的多个组件组成的复杂系统的建模和分析,而没有cad几何数据。cae解决方案允许仿真,并且因此优化、改进和验证要制造的产品。这样的cae解决方案由商标为的dassaultsystèmes提供。

pdm代表产品数据管理。pdm解决方案意味着适于管理与特定产品相关的所有类型的数据的任何解决方案、硬件的软件。pdm解决方案可由参与产品生命周期的所有行动者使用:主要是工程师,但也包括项目经理、财务人员、销售人员和购买者。pdm解决方案一般基于面向产品的数据库。它允许行动者共享关于其产品的一致数据,并且因此防止行动者使用发散数据。这样的pdm解决方案由商标为的dassaultsystèmes提供。

图10示出系统的示例,其中该系统是客户端计算机系统,例如用户的工作站。

该示例的客户端计算机包括连接到内部通信总线1000的中央处理单元(cpu)1010、也连接到该总线的随机存取存储器(ram)1070。客户端计算机进一步提供有与连接到总线的视频随机存取存储器1100相关联的图形处理单元(gpu)1110。视频ram1100在本领域中也被称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储器设备(诸如硬盘驱动器1030)的访问。适合于有形地体现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,例如包括:半导体存储器设备,诸如eprom、eeprom和闪存设备;磁盘,诸如内部硬盘和可移动盘;磁光盘;以及cd-rom盘1040。任何前述内容可由专门设计的asic(专用集成电路)补充或并入其中。网络适配器1050管理对网络1060的访问。客户端计算机还可包括触觉设备1090,诸如光标控制设备、键盘等等。在客户端计算机中使用光标控制设备允许用户将光标选择性地定位在显示器1080上的任何期望位置。另外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括用于向系统输入控制信号的许多信号生成设备。典型地,光标控制设备可以是鼠标、正用于生成信号的鼠标的按钮。替代地或另外,客户端计算机系统可包括敏感垫和/或敏感屏幕。

计算机程序可包括可由计算机执行的指令,该指令包括用于使以上系统执行方法的装置。程序可以是在任何数据存储介质上可记录的,包括系统的存储器。程序例如可在数字电子电路中、或者在计算机硬件、固件、软件中或者在它们的组合中来实现。程序可被实现为装置,例如在用于由可编程处理器执行的机器可读存储器设备中有形地体现的产品。方法步骤可由可编程处理器执行,该可编程处理器执行指令的程序以通过在输入数据上操作并生成输出来执行方法的功能。处理器因此可以是可编程的并且被耦合以从数据存储系统、至少一个输入设备和至少一个输出设备接收数据和指令,并且向其发送数据和指令。应用程序可以用高级过程或面向对象的编程语言,或者如果期望的话以汇编或机器语言来实现。在任何情况下,语言可以是编译或解释语言。程序可以是完全安装程序或更新程序。程序在系统上的应用在任何情况下导致用于执行该方法的指令。

“从二维图像识别三维建模对象”指定可以是精心制作3d建模对象的过程的至少一部分的动作,例如设计3d建模对象。该方法可包括在制造过程中,该制造过程可包括:在执行该方法之后,生产对应于检索的3d建模对象的物理产品。在任何情况下,由该方法识别的建模对象可表示制造对象,例如,在3d打印机上的。3d建模对象因此可以是建模固体(即,表示固体的建模对象)。制造对象可以是产品,诸如部件或者部件的组装件。因为该方法改进3d建模对象的识别,所以该方法还改进产品的制造,并且从而提高制造过程的生产率。

现在参考图1,讨论训练模型的创建(s180)。训练模型是作为在提供的两组2d图像(s150和s160)上实施的训练(s170)的结果获得的。训练模型的创建是本发明的所谓的离线阶段的一部分,与图7和8上图示的在线阶段相反。表达离线指代当用户查询系统以识别在图片中表示的3d建模对象时不需要实施的预处理操作;当实施在线阶段时,由在线阶段使用的离线阶段的结果已经对于在线步骤可用。将理解的是:离线阶段可以在在线阶段被执行的同时运行;在这种情况下,由在线阶段使用的离线阶段的结果不是当前结果,而是先前执行的离线阶段的结果。在在线阶段期间,用户的查询使用包括将在3d建模对象之中识别的对象的2d图像。离线阶段典型地一次并且全部完成,并且对用户是透明的。替代地,离线阶段可以被运行若干次,例如为了丰富训练模型的目的而再次运行它。

优选地,本发明中的离线阶段严重依赖于深度神经网络,并且对应于其中学习和索引所有特征的阶段。离线阶段可以被认为是使用媒体的集合的两个分层的过程。媒体的集合优选地在几万个单位范围内,并且集合中的媒体的数量越大,训练模型越尖锐。首先,为集合的每一个和每个媒体提取签名。提取过程被典型地重复几万次;重复的数量至少取决于媒体的集合中的媒体的数量。其次,创建构造的列表。此列表通常被称为包含所有签名和到集合中实际媒体的链接的索引。该索引是允许最接近查询的签名的快速检索的数据结构。术语特征可以用于指定签名,即,该特征是提供的媒体的集合的导出值,并且旨在是信息性的、非冗余的,便于随后的学习。

离线阶段提供有效方式来杠杆2d对象归类(也被称为分类)方法(即深度神经网络(dnn))的效率。dnn是用于在神经网络中学习的一组技术,神经网络是使得计算机能够从观察数据学习的生物启发的编程范例。在rumelhart等人的“learninginternalrepresentationbyerrorbackpropagation”,1986中讨论dnn。dnn集中于基于原始数据的端到端学习。换言之,通过完成开始于原始特征且结束于标签的端到端优化,它们远离特征工程移动到最大可能的程度。归类是基于包含其类别从属关系已知的观察(或实例)的一组训练数据来识别新观察属于一组类别中的哪一类别的问题。归类的示例将是:将给定的歌曲分配到其音乐风格中,或者如由观察的患者特性所述的将诊断分配给给定的患者。换言之,给定具有标记的样本的训练集,对未看见的样本分类由学习将精确地恢复其类别(即,标签)的模型的参数组成。

图4示出dnn架构的示例。在dnn的输入上提供数据,并且层1到k-1的级联处理用于特征提取和变换的数据。每层使用来自先前层的输出作为输入,并且可能先前的层可接收下一层的输出。在每层处,较高级特征从较低级特征导出以形成特征的分层表示。可以从特征为每个层提取特征向量。接下来,用连续层k至n获得对dnn的输入处提供的数据的归类。当正确训练dnn的参数时,在输入处提供的数据的标签与归类的结果之间发生匹配。

现在讨论如何在步骤s150和s160处提供用于训练模型的两组2d图像。

步骤s100至s150是用于提供从3d建模对象渲染的2d图像的第一集合的示例,其中每个3d图像被关联到标签。在步骤s100处,提供3d建模对象。提供3d建模对象意味着执行离线阶段的系统可以访问允许对象的3d表示的数据,如上所定义。这例如通过提供对存储至少一个3d建模对象的数据库的访问来执行。

接下来,在步骤s110至s130处,从在步骤s100处提供的3d建模对象计算2d图像。从3d建模对象渲染这些计算的2d图像;换言之在步骤s110至s130处获得的2d图像是合成图像。合成图像(或渲染图像)是由渲染引擎计算的图像。因此合成图像不包括与照片(也被称为自然图像)将包括的噪声相同的噪声,例如衍射、图像传感器的噪声、诸如桶形失真之类的失真、对象和周围对象的照明……。因此,照片的签名取决于拍摄图片的相机而变化,而合成图像的签名在任何计算机上相同。

对于提供的3d建模对象,确定若干视点,因此在3d建模对象上形成多个视点。选择至少一个视点,并且根据选择的视点计算图像。这里,术语视点意味着3d场景(3d建模对象位于并被渲染在3d场景中)中的相机为进行拍照所放置在的具体位置,如本领域中已知的。

如本领域中已知的执行视点的确定。这可以基于用户动作进行,例如,用户通过使用触觉设备选择相机位置。优选地,这可以通过使用空间离散化来执行,空间离散化能够在其中3d建模对象所位于的3d场景中固定用于3d渲染的不同相机位置。

文献中存在几种空间离散化方法。在示例实现方式中,使用thomson球(步骤s110)。thomson球是使用thomson问题离散化的3d建模对象的边界球,如j.j.thomson,philosophicalmagazine7,237,1904所讨论的。图2示出由边界框210包围的3d建模对象200(椅子)。3d建模对象200和边界框210被封闭在边界球220中;它们是完全封闭的,这意味着3d建模对象的任何部分都不在边界球之外。将理解的是:边界框210对于使用thomson球是不强制的。thomson球包含数量m个相机位置。

一旦已经识别视点,就为每个识别的视点渲染2d图像(s120)。如本领域中已知的执行渲染。

从3d建模对象渲染的2d图像的数量n与视点的数量m相同。然而,该数量m个视点可能是巨大的,并且从视点获得的一些2d图像对于训练可能是嘈杂的,即无用的。为了限制视点的数量,相机的位置可以被包括在对象边界框的顶部和底部面之间以生成2d图像。这允许减少要计算的2d图像的数量,同时仅仅为训练提供相关的2d图像。另外,即使已经减少视点的数量并且已经选择提供较少噪声的2d图像的视点,也仍然可能存在对于训练太嘈杂的2d图像。因此可以在渲染的2d图像上执行选择(s130),以便仅仅保持具有较小噪声的2d图像。这可以由用户执行。在另一个示例中,可以完成2d图像的数量的减少而没有用户的动作。实际上,对于对准的3d建模对象的数据集,人们可以直接考虑位置的具体间隔,即被包括在t/2和b/2之间的相机位置,其中t是对象边界框的顶部面,b是对象边界框的底部面。

图3示出图2的3d建模对象200的十个视图的示例。将理解的是:2d图像的数量一般大于十;例如可为每个3d模型生成大约一百个图像。确切的数量取决于每个对象的大小(即,取决于3d建模对象的边界框或任何其它包围体积)。顶部五个视图被认为是相关的,因为椅子200可以被容易地识别,而底部的五个视图不允许容易地识别椅子。因此,仅仅考虑合理的视图。底部的五个视图是不被包括在图2的对象边界框的顶部和底部面之间的那些视图。

接下来,在步骤s140处,每个图像与标签相关联;或者换言之通过使用标签来归类每个图像。标签是有意义的标记、类别或id,其是信息性的或提供期望知道的关于图像的信息。例如,标签可能是但不限于:图像包含椅子还是桌子,或者在视频中正在执行什么类型的动作。因此标签可以提供图像的内容的描述。在实践中,标签由用户添加,用户归类从3d建模对象渲染的所有2d图像。

从而,在步骤s150处,获得从提供的3d建模对象渲染并且标记的2d图像的第一集合。该第一集合被提供给用于获得训练模型的训练系统。

在步骤s160处,2d图像的第二集合被提供给训练系统,例如,dnn。第二集合中的2d图像是照片,即,自然图像。如上所讨论的,自然图像不是从3d建模对象渲染的,并且它们的签名至少取决于拍摄图片的相机而变化(对于相同的对象)。自然图像的噪声取决于拍摄图像所处的条件。典型地,2d图像或照片是具有不同分辨率、背景和上下文的对象的复杂照片。

然后,在步骤s170处,根据第一和第二集合的图像训练模型。典型地在一般在分类框架内使用的深度神经网络上执行该训练。在示例中,使用卷积神经网络(cnn)。在y.lecun等人的“backpropagationappliedtohandwrittenzipcoderecognition”,neuralcomput,1989中讨论cnn。卷积神经网络是使用卷积代替一般矩阵乘法的神经网络并且已经证明它们有效地从具有凌乱背景和多个其它对象的图像中的复杂场景识别对象。在另一个示例中,使用的cnn是被称为alexnet(已经在alexkrizhevsky,“imagenetclassificationwithdeepconvolutionalneuralnetworks”,nips2012中讨论alexnet)的cnn。优选地,通过修改对应于所考虑的类别的数量的最后一层的神经元的数量,例如1000个神经元,alexnetcnn适于本发明。alexnetcnn由五个卷积层(具有池和归一化)和三个完全连接的层组成。

模型的训练显著地包括学习dnn的参数。在dnn的上层中显现的(诸如cnn学习以分类图像的)参数可以用作用于图像检索的良好描述符。在大量的渲染图像(2d图像的第一集合)和未渲染图像(2d图像的第二集合)两者上学习参数。

然后,在步骤s180处,获得训练模型。训练模型是一组学习的dnn参数。dnn参数也被称为神经码,如在babenko等人的“neuralcodesforimageretrieval”中所讨论的。

在图6的顶部上表示步骤s100至s180的离线学习。值得注意的是,dnn(在该图的示例中的cnn)的训练集包括由第一和第二集合提供的2d图像。对于两种类型图像不需要任何约束。在实践中,训练数据集由四分之一(1/4)的渲染图像和四分之三(3/4)的图片组成;这允许改进dnn的分类结果。可能考虑图像的其它组合。已经用包括四分之一的渲染图像和四分之三的图片的训练数据集获得最佳结果。训练集被提供给托管dnn的dnn学习器600,并计算在步骤s180处获得的模型。dnn学习机器600典型地是软件应用,并且如本领域中已知的被实现。

图5示出离线阶段的第二方面:创建从2d图像的第一集合提取的特征向量的索引,即,从3d建模对象渲染的图像。自然图像(第二集合的2d图像)仅仅用于训练模型,而不用于搜索。可以提取每个2d图像的神经码(或特征向量)(s500),并且用作特征向量。使用在步骤s180处的训练模型来提取特征向量。通过使用一组学习的参数来将“前向通过”应用到输入图像而执行特征的提取。即,图像通过用倾斜参数来参数化的不同层。因此,提取的特征向量包括训练模型的参数到给定的二维图像(例如提供的2d渲染图像)的连续应用。神经码可属于dnn的一个或多个隐藏层;考虑dnn的层越多,获得的特征向量越有区别但是越长。对于从2d图像提取的每个特征向量,确定特征向量的大小是否太长。特征向量的大小可以对存储器使用和/或整体系统性能具有影响。特征向量的大小可以高达若干兆字节。在实践中,已经用大小为四千字节的特征向量获得在系统的全局性能和特征向量的有区别的特性之间的最佳折衷。在特征向量的大小被确定为超过给定大小的情况下,可以执行特征向量的减小。如本领域中已知的,可应用不同的维数降低方法来减少特征向量大小;例如可使用如w.svante,k.esbensen和p.geladi的“principalcomponentanalysis”,chemometricsandintelligentlaboratorysystems1987中所述的主成分分析。

一旦已经提取特征向量(步骤s500),通过使用提取的特征向量来索引已经从其渲染对应的2d图像的3d建模对象。将理解的是:对应的2d图像是已经从其提取特征向量的2d渲染图像。索引是允许改进数据的定位速度的数据结构。如本领域中已知的执行数据结构的建立。

在图6的底部表示步骤s500至s510的离线索引。从3d建模对象渲染的2d图像被提供给特征向量提取器610,并且提取的特征向量被发送给建立特征向量的索引的特征向量索引器620。在图6的示例中,提取神经网络的第二到最后一个完全连接层。仍然在该示例中,神经网络是alexnetcnn,并且,第二到最后一层包含4096个神经元。从每个2d渲染图像提取4096维特征向量。

现在参考图7和图8,讨论执行的在线阶段;在线阶段针对从包含对象的2d图像识别至少一个3d建模对象。

在图7的示例中,在线阶段开始于提供(s700)训练模型,例如在步骤s180处获得的训练模型。

然后,提供相似度度量(s710)。相似度度量允许执行在描绘至少一个对象的2d图像与例如在3d建模对象的数据库中存储的3d建模对象之间的相似度度量。数学上,相似度的概念相当于内积的概念,并且因此与赋范向量空间中的向量之间的距离成正比。相似度和距离的概念往往是可互换的,因为简单的变换从一个得到另一个。

可在用户动作时提供相似度度量,或者其可通过默认来提供(例如相似度度量的自动选择),由系统执行,或者其可通过默认来提供,并且在稍后阶段由用户修改。

相似度度量可以是确定性相似度度量。确定性相似度度量是无参数的相似度度量,或者如果存在相似度度量的参数,它们由操作者而不是通过自动过程选择。在确定性相似度度量之中,人们可以提供欧几里德距离、曼哈顿距离、余弦相似度之中的一个。余弦相似度等同于赋范向量之间的欧几里得距离。

相似度可以是学习的相似度。学习的相似度在文献中被广泛讨论,并且该领域也被称为度量学习。例如,可以在bellet等人的“asurveyonmetriclearningforfeaturevectorsandstructureddata”中找到关于度量学习方法的调查。度量学习方法背后的想法是使用注释对(或甚至有时三元组)的数据库来设置度量的参数。数据库被划分成两种类型的对、相似的对和不相似的对。度量学习方法针对调整度量的参数,以便紧密模拟数据库中的相似度关系,即,两个相似对象之间的距离总是小于两个不相似对象之间的距离。

量度学习中的第一方法中的一个是寻找修改mahalanobis距离的参数,如在xing等人的“distancemetriclearningwithapplicationtoclusteringwithside-information”中所讨论的。在这种情况下,距离由等式1表示:

其中d(x,y)是点x和y之间的距离度量,并且其中通过优化过程找到参数∑的矩阵。如果参数∑的矩阵是单位矩阵,则距离d是欧几里得距离。

在度量学习中的另一个方法中,度量学习问题也可以被视为空间嵌入问题,人们执行空间嵌入到其中与关于确定性相似度的不相似元素相比相似元素更接近的空间中。这样的空间嵌入可以在汉明空间中完成——汉明空间是二进制向量的空间,并且它通常是长度n-的所有2n个二进制串组,并且距离然后是汉明距离,汉明距离是在汉明空间估计的曼哈顿距离。空间嵌入则是变换保持数据库中的相似度关系的二进制码向量中的任何特征向量的函数。

在相似度度量的选择之后,2d图像被提供给系统(s720)。2d图像描绘至少一个对象,例如,现实世界的制造对象。2d图像可以是从3d建模对象渲染的自然图像(照片)或2d图像。在用户动作时典型地提供图像;用户选择图像,并且该选择的图像被提供给将执行查询的系统。如本领域中已知的实施图像的选择,例如,用户使用用于选择图像文件的触觉设备。替代地,图像可被自动提供给将执行查询的系统。提供2d图像意味着表示2d图像的数据对查询系统可用。2d图像可以包括光栅图形或向量图形;对于后者,图像的向量图形将被变换成光栅图形。因此,在步骤s720处可以提供所有种类的2d图像。

一旦已经提交描绘至少一个对象的2d图像,系统提取2d图像的特征向量(s730)。如本领域已知的执行提取;在2d图像上应用专用于特征的提取的算法。

接下来,将在步骤s720处提供的2d图像的计算的特征向量与在步骤s500-s510处建立的索引的特征向量比较(s740)。如本领域中已知的进行比较。比较使用提供的相似度度量,以便确定索引的最接近的特征向量是什么。从而,在步骤s720处提供的2d图像的提取的特征向量与索引的一个或多个特征向量之间获得一个或多个匹配。将理解的是:如果在提供的2d图像和索引的3d建模对象之间的差异太重要,可以确定没有任何匹配。例如,非常低的相似度度量值意味着没有匹配。

然后,对于与在步骤s720处提供的2d图像的提取的特征向量匹配的索引的每个特征向量,可以识别一个或多个3d建模对象:索引是包含所有签名(特征向量)的结构化列表以及到集合中的实际媒体(从其已经渲染与签名相关联的2d图像的3d建模对象)的链接。因此,检索与在步骤s720处提交的图像中描绘的对象相似的一个或多个3d对象(s750)。检索意味着至少提供允许系统访问3d对象的最小信息,例如,到3d对象的数据的链接。3d对象的检索可进一步包括在客户端计算机上下载3d对象的数据,或者显示检索的3d对象的一个或多个2d图像。这里,客户端计算机是必须在其上显示检索的结果的计算机化的系统;在实践中,客户端计算机是在其上提供2d图像以用于触发相似的3d建模对象的搜索的计算机。

图8示出在线阶段的示例。通过提供2d图像而触发图像查询。在离线阶段期间通过使用训练模型而提取2d图像的特征向量。提取由可以与图6的特征向量提取器610相同的特征向量提取器800做出。提取的特征向量然后被发送到匹配模块810,匹配模块810负责根据相似度度量计算特征向量之间的相似度。匹配模块810可以访问用于执行比较的特征向量的索引。匹配模块810在其输出处提供一个或多个特征向量的列表(s740);理解的是:如果没有确定任何匹配,列表可以是空的。

现在讨论度量学习的另一个示例,该示例涉及适于并发执行离线索引和度量学习的特定架构。该架构被描绘在图9上,并且依赖于在chopra等人的“learningasimilaritymetricdiscriminativelywithapplicationtofaceverification”中讨论的siamese网络。siamese网络允许通过神经网络学习相似度。siamese网络具有然后创建非线性嵌入的两个相同的部分,采用在两个表示之间的欧几里得距离或曼哈顿距离,如果距离不像数据库,则通过优化过程相应地修改神经网络中的权重。如在zagoruyko等人的“learningtocompareimagepatchesviaconvolutionalneuralnetworks”中讨论的,在图像的上下文中已经并且可以对siamese网络进行一些添加和修改。

在图9的深度siamese架构中,集成特征提取过程和距离度量的学习。可能学习距离度量,并且两个学习过程可能与两个不同的学习数据库同时发生,例如,包括图像的第一和第二集合的数据库900和910。在本发明中,通过使用siamese网络来集成学习过程,在这种情况下仅仅发生一个学习。学习数据库900和910向它们各自的特征提取网络——层1到k-1的级联提供2d图像。特征提取网络连接到siamese网络分支的每一个的底部,并且反向传播用于同时学习特征向量和距离度量。这允许为手头的比较任务设计更好的特征。用配对的2d图像训练模型,该对的一个2d图像属于第一集合,并且第二个2d图像属于第二集合。标记一对的两个图像,并且标签至少包括相似度信息。相似度信息可以表示标记,诸如“高度相似”、“高度不相似”。属于相同类别(例如,椅子)的两个图像可以被认为是高度相似的。属于不同类别的图像可以被认为是高度不相似的。当在架构的输出处提供的相似度结果与在2d图像的对的标签中的相似度结果相同时,决策层k至n的参数被正确地调整,并且这些调整的参数是学习的度量。

已经描述了本发明的优选实施例。将理解的是:可以进行各种修改而不脱离该发明的精神和范围。因此,其它实现方式在下列权利要求的范围内。例如,3d对象的集合可以被存储在客户端计算机上,或者其可以被存储在客户端计算机例如通过通信网络连接到的专用服务器上。训练模型优选地被存储在托管3d对象以及索引的服务器上。

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