CN107016732A - 使用描述符的3d对象定位 - Google Patents
使用描述符的3d对象定位 Download PDFInfo
- Publication number
- CN107016732A CN107016732A CN201611273101.1A CN201611273101A CN107016732A CN 107016732 A CN107016732 A CN 107016732A CN 201611273101 A CN201611273101 A CN 201611273101A CN 107016732 A CN107016732 A CN 107016732A
- Authority
- CN
- China
- Prior art keywords
- pair
- descriptor
- scenes
- modeling object
- placement
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
- G06V20/653—Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/42—Global feature extraction by analysis of the whole pattern, e.g. using frequency domain transformations or autocorrelation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/04—Indexing scheme for image data processing or generation, in general involving 3D image data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2200/00—Indexing scheme for image data processing or generation, in general
- G06T2200/24—Indexing scheme for image data processing or generation, in general involving graphical user interfaces [GUIs]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2004—Aligning objects, relative positioning of parts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computer Graphics (AREA)
- Architecture (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Processing Or Creating Images (AREA)
Abstract
本发明特别地涉及一种用于在3D场景中定位3D建模对象的计算机实现的方法,所述方法包括在所述3D场景中安置所述3D建模对象,所述安置根据如下算法执行,所述算法对于由所述3D建模对象的两个3D点和它们相应的相关联的法向量组成的第一对中的每一个,奖励与由所述3D场景的两个3D点和它们相应的相关联的法向量组成的第二对的匹配,所述第一对和所述第二对之间的匹配相当于所述第一对的描述符的值和所述第二对的所述描述符的值之间的实质相等,所述描述符在镜像对称下是可变的。这改善了3D建模对象在3D场景中的定位。
Description
技术领域
本发明涉及计算机程序和系统领域,并且更具体地涉及一种用于在3D场景中定位3D建模对象的方法、系统和程序。
背景技术
市场上提供了多个用于对象的设计、工程和制造的系统和程序。CAD是计算机辅助设计的首字母缩略词,例如,它涉及用于设计对象的软件解决方案。CAE是计算机辅助工程的首字母缩略词,例如,它涉及用于仿真未来产品的物理行为的软件解决方案。CAM是计算机辅助制造的首字母缩略词,它涉及用于定义制造过程和操作的软件解决方案。在这些计算机辅助设计系统中,图形用户界面在技术效率方面发挥着重要作用。这些技术可被嵌入在产品生命周期管理(PLM)系统中。PLM指商业战略,其帮助公司共享产品数据、应用通用流程,并在扩展型企业的概念中利用企业知识以进行产品从概念到生命结束的开发。由达索系统(Dassault Systèmes)(根据商标CATIA、ENOVIA和DELMIA)提供的PLM解决方案提供了工程中心(Engineering Hub),其组织产品工程知识,制造中心(Manufacturing Hub),其管理制造工程知识,以及企业中心(Enterprise Hub),其能够使企业集成和连接到工程中心和制造中心。连同以上三个中心,系统交付开放对象模型,其链接产品、流程和资源以实现动态的、基于知识的产品创建和决策支持,其驱动优化产品定义、制造准备、生产和服务。
这些系统可以属于或部分重叠于计算机视觉和/或虚拟现实的领域。在这些领域中,存在不同的提供在3D场景中定位3D建模对象的解决方案,3D建模对象和3D场景各自包括相应的3D点,每一个3D点与相应的法向量相关联。将这样的3D建模对象定位在这样的3D场景中对许多应用来说确实有用,诸如3D重建(例如,从运动结构分析或多视图重建)和虚拟现实(例如,无标记的增强现实)。在这些应用中,在3D场景中定位具体的3D建模对象可以通过几种已知方式改善体验。
在这样的上下文中,一些解决方案公开了一种包括在3D场景中安置3D建模对象的方法,该安置根据以下的算法执行,该算法对于由该3D建模对象的两个3D点和它们相应相关联的法向量组成的第一对中的每一个,奖励与由该3D场景的两个3D点和它们相应的相关联的法向量组成的第二对的匹配,该第一对实质上被安置于该第二对上,该第一对和该第二对之间的匹配相当于该第一对的描述符的值和该第二对的该描述符的值之间的实质相等。这种类型的解决方案的不同实例包括论文“Bertram Drost,Slobodan Ilic,3D ObjectDetection and Localization using Multimodal Point Pair Features,Conference on3D Imaging,Modeling,Processing,Visualization and Transmission(3DIMPVT),2012”,论文“Bertram Drost,Markus Ulrich,Nassir Navab,Slobodan Ilic,Model Globally,Match Locally:Efficient and Robust 3D Object Recognition,Conference onComputer vision and pattern recognition(CVPR),2010”和欧洲专利EP2385483。
然而,当在3D场景中定位3D建模对象时,仍然需要改进结果的精确度或相关性和/或改进计算时间。
发明内容
因此,本发明提供了一种用于在3D场景中定位3D建模对象的计算机实现的方法。3D建模对象和3D场景各自包括相应的3D点。每一个3D点与相应的法向量相关联。该方法包括在3D场景中安置该3D建模对象。该方法包括对3D建模对象在3D场景中的安置。该安置根据如下算法执行。该算法对于第一对中的每一个,奖励与相应的第二对的匹配。第一对由3D建模对象的两个3D点和它们相应的相关联的法向量组成。第二对由3D场景的两个3D点及其相应的相关联的法向量构成。第一对实质上被安置于第二对上。第一对和第二对之间的匹配相当于第一对的描述符的值和第二对的描述符的值之间的实质相等。
其至少一部分可以以多种方式执行,包括以稍后详细描述的方式或者以如下论文中公开的具体方式:“Bertram Drost,Slobodan Ilic,3D Obiect Detection andLocalization using Multimodal Point Pair Features,Conference on 3D Imaging,Modeling,Processing,Visualization and Transmission(3DIMPVT),2012”,或者以如下论文中公开的具体方式:“Bertram Drost,Markus Ulrich,Nassir Navab,Slobodan Ilic,Model Globally,Match Locally:Efficient and Robust 3D Object Recognition,Conference on Computer vision and pattern recognition(CVPR),2010”,或者以欧洲专利EP2385483公开的具体方式,每次都具有已知的优势。这三个公开内容通过引用并入本文。然而,在此提出以下特性。
描述符在镜像对称(即相对于平面对称)下是可变的。由于描述符的这种特定变化性,该方法提供一种导致相对较少的“假阳性”结果的定位。实际上,与现有技术的方法相反,该方法不在3D建模对象(仅)具有对称的场景中定位该3D建模对象。换句话说,该方法执行两个对称对象之间的区分(这是一件好事,因为两个对象可能是数学上的对称,但对应于不同的物理对象,因此优选地在实际应用中进行区分),而现有技术中包括的数学不能执行这种区分。
本发明还提供了一种包括用于执行所述方法的指令的计算机程序。
本发明还提供了一种其上记录有所述计算机程序的计算机可读存储介质。
本发明还提供了一种系统,包括耦合到存储器和图形用户界面的处理器,所述存储器上记录有所述计算机程序。
附图说明
如今将通过非限制性示例并参考附图来描述本发明的实施例,其中:
图1示出了该方法的示例的流程图;
图2示出了该系统的图形用户界面的示例;
图3示出了该系统的示例;
图4-22示出了该方法。
具体实施方式
参考图1的流程图,提出了一种计算机实现的方法,该方法用于在3D场景(例如,表示真实环境,例如,经由传感器获取的)中定位(即,输出与其位置相关的任何信息)3D建模对象(例如,其表示通过传感器或用户设计获得的真实对象,例如,物理产品),该3D建模对象和该3D场景各自包括相应的3D点(表示其几何形状/形状,例如,在方法中预定或确定,例如,基于另一类型的预定数据),每一个3D点与相应的法向量(表示其几何形状/形状的表面法线,例如,在方法中预定或确定,例如,基于另一类型的预定数据,如该3D点)相关联(即,链接到特定链接数据,例如,指针或允许针对每一个3D点取得其相应的相关联的数据的任何其他数据)。该方法包括在3D场景中安置S10(即,确定用于描述提供了一个或多个3D位置的规则/函数的数据的任何计算)该3D建模对象。
正如后续进一步详细描述的,该3D建模对象表示对象(例如,虚拟或真实对象,例如,产品,诸如部件或部件的组合,例如,机械部件或消费品),并且它是允许其3D表示的任何数据集合。该3D场景也是3D建模对象,并且其表示由3D建模对象(通过该方法定位)表示的对象可能被定位其中的环境(即,对象的集合/组合和它们之间的空白空间)。3D场景可以是虚拟场景或真实场景的表示(例如,其可能包含由3D建模对象表示的例如真实的对象的版本),例如包括经由物理传感器获取的几何形状,例如RGB数据和/或深度数据和/或光学数据(例如,通过3D重建获得的任何3D场景,3D重建诸如运动结构分析和/或RGB深度重建或任何其他基于传感器的3D重建)。该方法用于在这样的3D场景中定位3D建模对象(其可以经由任何基于传感器的3D重建获得,例如,先前提到的那些,或者还经由用户例如利用CAD系统设计3D建模对象获得)。
“定位”仅意味着该方法输出关于3D建模对象的位置的信息。这种输出信息源自定位S10的结果,其中“安置”相当于确定(和/或测试和/或提供)至少一个规则/函数以在3D场景中安置(所述规则/函数也被称为“安置”)该3D建模对象(在稍后提供的示例中,“安置”是一种刚性运动-即,平移和/或旋转-指代如下事实:3D建模对象和3D场景各自与相应的-例如正交的-参考帧相关联,相应于3D建模对象的帧根据相应于3D场景的帧进行安置,例如以任何方式,例如,任意地,并且因此该安置可以相当于刚性运动,该刚性运动将相应于3D建模对象的帧进行“重新安置”,使得3D建模对象被正确地安置在3D场景中-这以该方法的具体方式执行)。这种输出信息可以是关于3D建模对象在3D场景中的位置的任何信息(例如,该方法可以仅用于识别在该场景中3D建模对象的二进制存在与否)。该信息可以包括在3D场景中安置3D建模对象的规则,包括例如至少一个刚性运动(例如,参考在该3D场景中该3D建模对象的初始的——例如,任意的和/或在该方法中预定的或确定的——安置)。可以提供3D建模对象的多个可能位置。此外,安置S10可以引起3D建模对象被确定为不位于该3D场景中(因此,不输出安置)。此外,该方法可以确定置信度信息(例如,与每一个可能位置相关联的置信度(confidence)/显著性(significance)水平)或(例如,系统地或当达到置信度阈值时)输出一个或多个最佳安置(例如由S10提供)。进一步注意,该方法可以在单个3D建模对象上执行,或者可以在基本3D建模对象的不同版本上重复执行(例如在不同缩放或进行不同修改时,“3D建模对象”的表述无差别地指定该基本版本或修改版本)。这些考虑因素通过在3D场景中定位3D建模对象的现有技术成为公知。
在示例中,安置S10可相当于针对3D场景中的3D建模对象确定一个或多个最佳安置函数,可选地具有相应的显著性水平,并且定位可以仅相当于输出安置S10的结果,可能在源于决策步骤中的过滤之后(例如,基于预定义的显著性阈值的决策,显著性阈值例如为与每一个显著性水平相比较的阈值)。这样的定位可以具有不同的公知应用(即,该定位在所述应用之前或期间(例如,实时)执行)。
在一个应用中,该方法可以用于增强虚拟现实(例如,以无标记的方式,并且例如实时地)。该3D场景是虚拟环境,并且3D建模对象定位其中(例如,先前或同时地,即实时地,被定位到虚拟现实方法,例如,包括用户沉浸在虚拟现实中的和/或与其交互,例如,在其中移动)。该定位可以用于添加数据(例如,与3D建模对象相关的附加数据,如非几何数据,例如用户定义的数据,如在建模对象的CAD版本上工作并且添加任何类型的信息,诸如约束,精确几何形状和/或不能直接通过表示真实对象的基于传感器的3D重建获得的任何数据)到虚拟环境(即3D场景)中,从而丰富了虚拟现实(例如,该虚拟现实仅包括最小数据——仅几何数据——关于增强之前的建模对象)。由于该方法执行鲁棒的和准确的定位,所以这可以全部无标记执行(即3D建模对象没有嵌入任何标记以帮助后续定位它)。并且由于该方法执行得相对快速,这可以被实时有效地执行。标记相对于无标记增强现实是指标记增强现实,其中在真实世界场景中放置特殊符号,以便于计算机系统识别该符号,使得附加的虚拟对象可被插入至真实世界场景视图中的正确位置。放置预定符号在现实世界场景中并不总是可能的。显然,本方法提供无标记能力。
在另一应用中,该方法可被应用于任何运动结构分析3D重建。在运动结构分析3D重建(即,通过专用传感器获取真实对象的物理数据,以便重建该对象的3D模型)中,如果数据采集包括中断周期,则该方法可以帮助校准被中断分隔的两个采集周期。在一个周期期间获取的数据(即,3D建模对象)的至少一部分实际上可以被定位在仅基于在另一个周期期间获取的数据(即,基于部分数据的“中间”重建)重建的3D场景中,从而实现校准。这允许后续考虑/同步两个数据集合以用于完整的3D重建。RGD-D数据集合可以是当通过使用RGB-D相机捕获3D场景时。这样的设备提供RGB(红色、绿色、蓝色)像素图像以及与每一个像素相关联的深度(D)信息。它通过在捕获过程期间根据平移或圆周运动来移动相机而获得。如果相机运动被中断并且从不同的位置重新开始,则这两个结果数据集合从相机捕获点的角度来看则不相关联。整个扫描必须重新开始。这可以通过该方法避免。类似地,该方法可以应用于同步同时执行的3D重建,从而融合这个两个3D重建,以便联合使用其信息。
例如,该方法可以在能够执行无标记增强现实的任何软件产品中实现。这样的产品可以具有以下特征:软件对于场景中模型的部分遮挡是鲁棒的,计算时间与场景的尺寸成线性关系,并且依赖系数小于1,该软件能够处理镜面对称,和/或涉及点和法向量,而不是三角网格。该方法因此可以处理增强现实。这种技术是将计算机生成的虚拟元素(可能是3D对象)插入现实世界场景的3D视图中。许多应用得益于增强现实:娱乐、旅游和观光,游戏、家具设计、军事。该方法也可以类似地用于RGB-D数据集合管理软件。先前引用的现有技术的解决方案具有不同的问题。它们使用在镜像对称下不变的描述符。它们的软件不会区分形状和它的镜像形状。它们将在场景中定位镜像模型,而不是模型。进一步地,这些解决方案从计算时间的角度来看是有问题的,因为它们经常执行对所有对模型/场景元素的穷尽调查。
无论其输出(如上所述)如何,该安置根据特定算法执行(例如完全或半自动),该算法根据先前引用的现有技术已知的类型(随后提供多个安置S10依据的特定算法和先前引用的现有技术安置算法,参考该方法的示例)。这种类型的算法对于第一对中的每一个,奖励与相应的第二对的匹配。现解释这一点。
“对(couple)”是指点(以及它们关联的法向量)的有序的对。通过该方法处理的这些特定的数据集合在下文中仅仅简称为(第一和/或第二)“对(couple)”或者为了更方便起见称为“双(pair)”(即忽视排序方面)。“第一”对涉及3D建模对象,而“第二”对涉及3D场景。具体地,第一对由3D建模对象的两个3D点和它们相应的关联的法向量构成,而第二对由3D场景的两个3D点和它们相应的关联的法向量构成。
如今,安置S10倾向于以“最佳方式”将3D建模对象与第二对定位(或“对齐(align)”),例如以参考后续详细示例描述的具体方式。现在可以说,安置S10遵循考虑理论位置的算法,该算法也可以被称为“探测(explored)”安置。这在例如优化领域是已知的,其中该算法可相当于在特定约束下求解优化程序。现在,该算法可以是相当于考虑可能的解(即评估理论安置的相关性)的任何方案,并且每当算法考虑一(理论上地)安置时,它奖励该安置的一特定条件(或者等价地惩罚该条件未满足)。这本身在优化和算法的领域是已知的,需要注意的是,该方法可以以任何方式实现这样的奖励,并且特别是隐式地(作为算法的具体步骤),即,算法直接跳转到该奖励被隐含执行的解(即,并非实际地搜索最优值,例如,能量等)。换句话说,奖励可能被“隐藏(hideen)”在由该算法执行的预定选择之后。
具体地,对于由安置S10预期的3D建模对象在3D场景中的任何给定(理论的)安置,算法以下述方式奖励该安置。该算法奖励以下事实:第一对实质上定位于相应的第二对上,以及奖励以下事实:对于这样的第一对,每次描述符的值实质上等于第二对的描述符的值。换句话说,该方法倾向于(即,预期均等性的“实质”特性和全局优化的缺陷特性,其是场景的真实特性所固有的)发送(即几何匹配)第一对(例如最大数目的它们)到第二对上,并且使这样的对呈现相同的描述符值。换句话说,该算法惩罚如下所述的第一对,没有第一对可以被安置于其上的对应的第二对(或与这样的第二对对应性极少)和/或没有(或很少)描述符值与其匹配的第二对。现在众所周知的,这通常可以以许多不同的方式执行,包括以现有技术描述的方式,或者可选地以该方法的示例的特定性执行。
该方法是计算机实现的。这意味着该方法的步骤(或者实质上所有步骤)是由至少一个计算机、或者任何类似系统来执行的。因此,该方法的步骤可能全自动或者半自动地由计算机执行。在示例中,对该方法的至少一些步骤的触发可以通过用户计算机交互来执行。所需要的用户计算机交互的级别可以取决于预见的自动化级别,并与实现用户希望的需要相平衡。在示例中,该级别可以是用户定义的和/或预先定义的。特别地,安置S10可根据该算法全自动地执行,例如由处理器执行。
该方法的计算机实现的典型示例是利用适用于该目的的系统来执行该方法。系统可以包括:处理器,其耦合至存储器和图形用户接口(GUI),所述存储器上记录有包括用于执行该方法的指令的计算机程序。存储器还可以存储数据库。存储器是适用于这样的存储的任何硬件,可能包括若干物理上不同的部分(例如,一个用于程序,而可能一个用于数据库)。
数据库意味着任何针对搜索和检索而组织的数据(即信息)的任何集合(例如,关系数据库,例如,基于预定的结构化语言,如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的上下文中,建模对象可以典型地为3D建模对象,例如,表示产品,诸如部件或部件的组合,或可能产品的组合。“3D建模对象”意味着由允许其3D表示的数据进行建模的任何对象。3D表示允许从所有角度观看该部件。例如,3D建模对象在被3D表示时,可以被操作并围绕其任何轴、或者围绕显示该表示的屏幕上的任何轴旋转。这特别排除了非3D建模的2D图标。对3D表示的显示便利了设计(即统计学上加快了设计师完成其任务的速度)。这加速了工业中的制造过程,因为产品设计是制造过程的一部分。
3D建模对象可以表示产品的几何形状,该产品在利用例如CAD软件解决方案或者CAD系统完成其虚拟设计之后将在真实世界中被制造,诸如(例如,机械的)部件或者部件(或等效部件的组件,由于从该方法的角度来看该部件的组合可被视为部件本身,或该方法可独立适用于该组件的每一部件)的组件,或更广泛地任何刚性体组件(例如,移动机构)。CAD软件解决方案允许在各种并且不受限的工业领域中的产品的设计,包括:航天、建筑、制造、消费品、高科技设备、工业设备、交通运输、航海和/或近海油/气的制造或运输。因此通过该方法设计的3D建模对象可表示工业产品,其可以是任何机械的部件,诸如,陆地车辆(包括例如轿车、和轻型卡车装置、赛车、摩托车、货车和马达装置、卡车和公交车、火车)的部件;飞行器(包括例如航空装置、航天装置、推进装置、防御产品、航线装置、空间装置)的部件;航海器(包括例如海军装置、商用轮船、近海装置、游艇和工作船、航海装置))的部件;一般机械部件(包括例如工业制造机器、重型移动机器或装置、安装装置、工业装置产品、装配式金属产品、轮胎制造产品);机电或者电子部件(包括例如消费电子产品、安全和/或控制和/或仪器产品、计算和通信装置、半导体、医疗设备和装置);消费品(包括例如家具、家庭和花园产品、休闲物品、时尚产品、耐用品零售产品、非耐用品零售产品);包装(包括例如食品和饮料和烟草、化妆品和个人护理、家庭产品包装)。该3D场景也可为这样的建模对象。然而,3D场景典型地表示例如真实场景,并且因此该3D包含多个这样的以特定地方式组装(或布置)的建模对象,以及可能的其他类型的建模对象(如表示景观和/或空间和/或建筑,诸如工厂和/或房间和/或设施)。
PLM系统另外地意味着适用于对表示物理制造的产品(或将被制造的产品)的建模对象进行管理的任何系统。在PLM系统中,建模对象因此由适于制造物理对象的数据来进行定义。这些数据可以典型地是尺寸值和/或容差值。对于对象的正确制造,事实上具有这些值更好。
CAM解决方案另外地意味着适用于对产品的制造数据进行管理的任何解决方案、硬件的软件。制造数据通常包括与要制造的产品、制造过程和所需资源相关的数据。CAM解决方案用于计划和优化产品的整个制造过程。例如,其能够为CAM用户提供关于可行性、制造过程的持续时间或者资源(诸如特定机器人)的数量的信息,该信息可以在制造过程的具体步骤中使用;并因此,允许对管理或者所需的投资进行决策。CAM是CAD过程和潜在的CAE过程之后的后续过程。这样的CAM解决方案由根据商标的Dassault Systèmes提供。
通过CAE解决方案,另外地意味着适于对建模对象的物理行为进行分析的任何解决方案、硬件的软件。公知的并广泛使用的CAE技术是有限元法(FEM),其典型地涉及将建模对象划分为元素,该元素的实际行为能够通过公式来计算和仿真。这样的CAE解决方案由根据商标的Dassault Systèmes提供。另一个发展中的CAE技术包括复杂系统的建模和分析,该复杂系统由来自没有CAD几何形状数据的不同物理领域的多个部件组成。CAE解决方案允许对要制造的产品进行仿真,并且因此进行优化、改善和验证。这样的CAE解决方案由根据商标的Dassault Systèmes提供。
PDM代表产品数据管理。通过PDM解决方案,意味着适用于对与特定产品相关的所有类型的数据进行管理的任何解决方案、硬件的软件。PDM解决方案可以由产品生命周期中涉及的所有参与者使用:主要是工程师,但还包括项目经理、财务人员、销售人员和买家。PDM解决方案通常基于面向产品的数据库。其允许参与者共享在其产品上的一致数据,并因此防止参与者使用互不相同的数据。这样的PDM解决方案由根据商标的Dassault Systèmes提供。
图2示出了系统的GUI的示例,其中该系统是CAD系统,例如用于该3D建模对象的先前设计,并进而通过该方法来进行定位。
GUI 2100可以是典型的CAD类型的接口,具有标准菜单栏2110、2120,以及底部工具栏和侧边工具栏2140、2150。这样的菜单栏和工具栏包含一组用户可选择的图标,每一个图标与本领域已知的一个或多个操作或者功能相关联。这些图标中的一些与软件工具相关联,适用于对在GUI 2100上显示的3D建模对象2000进行编辑和/或操作。软件工具可以被分组为工作台。每一个工作台包括软件工具的子集。特别地,工作台中的一个是编辑工作台,适用于编辑建模的产品2000的几何特征。在操作中,设计师可以通过选择适当的图标来例如预先选择对象2000的一部分,进而发起操作(例如,改变尺寸、颜色等)或者编辑几何约束。例如,典型的CAD操作是对显示在屏幕上的3D建模对象的冲压或者折叠进行建模。GUI可以例如显示与显示的产品2000相关的数据2500。在图2的示例中,显示为“特征树”的数据2500及其3D表示2000属于包括制动钳和制动盘的制动组件。该GUI可以进一步示出各种类型的图形工具2130、2070、2080,例如用于便于对象的3D取向、用于触发对所编辑的产品的操作的仿真或者渲染所显示的产品2000的各种属性。光标2060可以由触感设备控制,以允许用户与图形工具交互。
图3示出了该系统的示例,其中,该系统是客户端计算机系统,例如,用户的工作站。
该示例的客户端计算机包括:连接至内部通信总线(BUS)1000的中央处理单元(CPU)1010,也连接至该总线的随机存取存储器(RAM)1070。客户端计算机进一步提供图形处理单元(GPU)1110,其与连接至该总线的视频随机存取存储器1100相关联。视频RAM 1100在本领域中也被称为帧缓冲器。大容量存储设备控制器1020管理对大容量存储器设备(诸如硬盘驱动器1030)的访问。适于有形地体现计算机程序指令和数据的大容量存储器设备包括所有形式的非易失性存储器,以示例的方式包括半导体存储器设备,诸如EPROM、EEPROM和闪存存储器设备;磁盘,诸如内部硬盘和可移动磁盘;光盘;和CD-ROM盘1040。前述的任一个可以由专门设计的ASIC(专用集成电路)补充或者集成于该专门设计的ASIC中。网络适配器1050管理对网络1060的访问。客户端计算机还可以包括触感设备1090,诸如光标控制设备、键盘等。光标控制设备用于在客户端计算机中允许用户在显示器1080上任何期望的位置选择性地安置光标。此外,光标控制设备允许用户选择各种命令并输入控制信号。光标控制设备包括多个信号产生设备以将控制信号输入至系统。典型地,光标控制设备可以是鼠标,该鼠标的按钮被用于产生信号。可选地或附加地,该客户端计算机系统可以包括触摸平板和/或触摸屏幕。
计算机程序可以包括可由计算机执行的指令,该指令包括用于使上述系统执行该方法的单元。该程序可以记录在包括系统的存储器在内的任何数据存储介质上。该程序可以例如在数字电子电路、或者计算机硬件、固件、软件、或者其组合中实现。该程序可以实现为装置,例如有形地被体现在机器可读存储设备中以用于由可编程处理器执行的产品。方法步骤可以由可编程处理器执行,该可编程处理器通过操作输入数据并产生输出来执行指令的程序以实施该方法的功能。因此处理器可以是可编程的,并且被耦合以从数据存储系统、至少一个输入设备、以及至少一个输出设备接收数据和指令,并向数据存储系统、至少一个输入设备、以及至少一个输出设备发送数据和指令。应用程序可以在高级过程语言或者面向对象编程语言中实现,或者如果需要的话在汇编或者机器语言中实现。在任何情况下,语言可以是编译或解释的语言。程序可以是完全安装程序或者更新程序。系统中程序的应用在任何情况下产生用于执行方法的指令。
“设计3D建模对象”指代指代3D建模对象的加工过程中至少一部分的任何动作或者动作序列。因此,该方法可以包括从零开始创建3D建模对象。可选地,该方法可以包括提供先前创建的3D建模对象,并进而修改该3D建模对象。
现在讨论该方法的示例。该方法的不同选择根据示例实现,并在下文中详细描述。示例可被调整以使并非所有选项均被实现,和/或一些选项被略作修改并以不同的方式实现。
示例中的方法可以定位被称为“模型(model)”的真实3D细节到更宽的被成为“场景(scene)”的真实3D环境中。首先,3D真实场景和模型可以分别被转换为由点和法向量构成的两对有限集合(例如,从这种已经有限的集合开始或通过对相应的无限集合进行采样)。在示例中,从3D场景和模型的表面对点进行采样。法向量是采样点处3D场景和模型表面的法向量。图4示出了这种采样。图5示出了典型模型的采样点,且图6示出了场景的采样点(图示的示例附带地示出了图5中雕像的表示-即3D建模对象-事实上应当被找到并且定位在图6的3D场景中,因为该雕像显然存在于由3D场景表示的环境中)。
该方法的感兴趣的对象是两个(点,法向量)对,这有一点类似((点,法向量),(点,法向量))。在下面描述的示例中,在将模型的双改变为场景的双的所有刚体运动之中,该方法可以通过“3D投票(3D vote)”步骤选择最频繁的一个。在模型中选择被称为“锚定点(anchor points)”的三个点,该选择可以通过将模型的双改变为场景的双的刚体运动以存储所有变换的锚定点来完成。这是稍后描述的“双-双刚性运动(pair-to-pair rigidmotion)”步骤。最频繁变换的锚定点公开了最频繁的刚性运动,从中可以计算“最佳刚性运动(best rigid motion)”。另外,可以计算“显著性水平(significance level)”,例如供用户决定是否可以在后续流程中使用该最佳刚性运动。为了性能目的,不是所有的双-双刚性运动都可以被研究。只有将(模型的)双改变成(场景的)类似双的刚性运动可以被考虑。给定双的类似双可以通过使用数字签名被收集,并被存储在专用数据结构中。这是后续描述的“双签名(pair signatures)”匹配。图7的流程图中示出了以所有这些独立选项为特征的方法的示例。
应用在运动结构分析,该示例的方法允许如下几点。当相机扫描被中断时,它可以从相邻位置重新开始,使得一部分场景由连续数据集共享。该方法可以通过匹配共享部分来计算两个数据集合的正确重安置。这使得扫描过程更加鲁棒,因为它可以容忍中断或运动扰动。无标记增强现实是在真实世界视图中插入附加虚拟对象,而无需借助预定符号。应用于这样的上下文中,该示例的方法可以计算虚拟对象的适当插入位置。与先前引用的现有技术相比,该示例的方法的主要可选益处是需要较少计算同时鲁棒的投票过程。事实上,该示例的方法通过场景的固定数量的双工作,而早先引用的现有技术通过固定数量的“参考点(reference points)”工作,其中所有可能的双均被考虑。该示例的方法能够丢弃“参考点”并同时通过以下方式保持甚至提高鲁棒性(robustness):(1)适当地选择要使用的场景双的集合,(2)具有用于计算两个双之间刚性变换的直接方法,以及(3)具有用于变换(锚定点和哈希表(hash table))的全局投票的方法。另一个区别点是描述符的第四个实数有效地处理对称性。事实上,与早先引用的现有技术相反,在该示例的方法中两个镜像对称的双不共享相同的描述符。
图8-10相应的分别示出三幅图片。左上的图片是3D模型,左下的图片是3D场景,而右侧的图片是定位在场景中的模型(其因此显示可以是根据S10执行的方法的进一步)。所有场景和模型都是3D点的有限集合。图8示出了“汽车”模型。图9示出“椅子”模型。图10示出“维纳斯(Venus)”模型。
现在讨论“双”(或“对”)的概念。
记B={(x,y,z)∈R3,x2+y2+z2=1}为单位球面,令是由3D点和法向量组成的对的集合。根据定义,在该示例的方法中,模型M和场景S是K的有限子集,这意味着M={mi,i=1,…,|M|},其中对于所有的i,并且S=[si,i=1,…,|S|},其中对于所有的i,令PM是M中的元素的所有对的集合:PM={((p1,n1),(p2,n2)),(p1,n1)∈M,(p2,n2)∈M}=M×M。对于PS是同样的:PS={((p1,n1),(p2,n2)),(p1,n1)∈S,(p2,n2)∈S}=S×S。
从数学的角度来看,PM或PS的元素是多个点-法线对中的一个对,但是为了清楚起见,下面将其命名为“双(pair)”,这也与现有技术的措辞一致。显然,从数学角度来看,它不是“双(pair)”,因为元素的顺序不重要,但这不会导致任何误解,因为在下面的讨论中不使用真实的双(pair)的数学概念。图11示出典型的双(pair)。
现在讨论算法的一个示例及其如何执行前述奖励。
安置S10之后的算法可以运行(即迭代)第二对(不同于先前引用的现有技术算法,其运行第一对并且可以非常快速地禁止),访问与正在运行的相应第二对匹配的所有第一对,以及输出该3D建模对象在该3D场景中的安置,其奖励该第一对实质上位于所访问的相应第二对上。换句话说,安置在架构上从3D场景的第二对开始,并且考虑候选第一对(即,可以实质上安置在所考虑的每一个第二对上的3D建模对象的那些对),并且将这些候选转换成候选定位。这种架构减少了计算时间。
值得注意的是,算法所运行的第二对是(例如,由其形成的/对应于)3D场景中包括的相应3D点的代表性子集。换句话说,算法运行在其子集上(即,对应于3D场景中包括的相应3D点的代表性子集),而不是运行在所有第二对上。“代表性(representative)”意味着第二对表示具有(相对于初始采样)减少的信息量的场景的几何形状。具体地,代表性子集是从3D场景中包括的相应3D点的精简(downsizing)(即,选择)中获得的,该精简包括对3D场景中包括的相应3D点进行的空间聚类(例如K均值聚类),以及基于该聚类结果的概率选择。换句话说,3D场景中的3D点被聚类,并且概率被分配给聚类,并且该方法基于所分配的聚类概率执行随机选择(例如,伪随机)。概率可以是使得概率选择奖励大的聚类和/或邻近的聚类(此处该术语“邻近(close)”是指从参考位置进行评估的距离,参考位置可以是在3D场景为虚拟现实环境的情况下相机所在的位置-即从沉浸的用户的视角,并且该方法例如是实时执行的-同时该用户参与虚拟现实沉浸过程并与虚拟环境交互)。
现在讨论以特别有效的方式(从计算的角度)导致特别精确的最终结果的PS的量的该精简的示例。该示例指的是相机位置。在不提供相机位置的情况下,该示例可以通过去除相关项(并且执行一般的空间聚类)来调整。该示例的聚类的目标主要是获得对的同质分布以及将可能属于同一对象的对分组。
S中元素的数量可以非常大并且远大于M中元素的数量,对PS和PM同理。为了性能目的,在该示例中仅考虑PS的随机选择的子集。集合PS被精简至模型的点的数量,即|PS|≈|M|.。典型的精简值是|PS|≈10 000,典型的模型尺寸是|M|≈20 000.。该示例的精简是通过集合S的聚类步骤,以及随后PS的元素的随机选择步骤来执行的。如前所述定义,S的元素是由3D点和法向量组成的对。在示例的精简处理中不使用法向量,因此术语“S的点”仅指3D点。该示例的聚类步骤基于k均值聚类算法,例如在以下论文中所述:“Tapas Kanungo,David M.Mount,Nathan S.Nananyahu,Christine D.Piatko,Ruth Silverman,and AngelaY.Wu,An Efficient k-Means Clustering Algorithm:Analysis and Implementation,IEEE Transactions on Pattern Analysis and Machine Intelligence,Vol.24,No 7,July 2002”。该输入是聚类的数量N(在2和5之间,例如3,是实验性优良值)和点S的集合。输出是N个非空且不相交的子集Ci,i=1,…,N,被称为聚类,以及多个3D点mi=(xi,yi,zi),i=1,…,N,被称为平均点,分别与Ci相关联。输出被按照满足以下性质的方式计算。首先,S=C1∪…∪CN。其次,所有m∈Ci的点都比j≠i的任何其他平均点mj更接近平均点mi。也就是说,对于所有的i=1,…,N和所有的m∈Ci:||m-mi||<min{||m-mj||,j≠i}.。每一个聚类Ci中点的数量记为ni。平均点由k均值聚类算法计算,它们不属于S。用于聚类的参考轴系统以这样的方式定义:z坐标是到相机的距离,并且对于所有i,zi>0。在示例的上下文中,聚类的典型数量是3。
图12示出了2D点的示例性集合。图13示出了其k均值聚类成四个簇C1、C2、C3、C4以及平均点m1、m2、m3、m4和相机位置。该示例的随机选择步骤按照如下执行:整个集合S涉及CN+1=S.。然后,对于i=1,…,N+1,根据以下公式将概率pi∈[0,1]与每一个Ci相关联:首先,然后是归一化系数最后对于所有i∈{1,…,N},概率系数p0被设计为满足p1+…+pN+1=1。概率pi与Ci中的点的数量的平方ni 2成正比,并且与其深度zi.成反比。这样,给定两个具有相同点的数量的聚类,最可能的是更接近相机的聚类。此外,给定两个具有相同深度的聚类,最可能的是具有最大数量的点的聚类。最后,集合CN+1的概率不消失,使得具有不同聚类中点的双被选择。
令Np为在PS中选择的双的数量。选择算法根据在前面段落中定义的概率,利用集合{1,…,N+1}中的整数的随机生成器。被记为RandProb。每次调用RandProb都会产生新的整数值。给定整数a和b,算法还根据均匀概率使用任意集合{a,a+1,…,b}中的整数的随机生成器。被命名为Rand(a,b)。每次调用Rand(a,b)都会产生新的整数值。选择算法可以如下。
为了简单起见,精简的集合PS仍然被记为PS。
在示例中,该方法(还)可以包括双预处理。该预处理可明显地从对((p1,n1),(p2,n2))中清除PM∪PS(即,为后面流程而移除),其中p2相对地接近p1-例如相对于预定阈值-或者n1相对地接近共线于p2-p1-例如相对于预定阈值。
在该示例中,为了效率目的,通过移除无意义的双来清除集合PM和PS。无意义的双((p1,n1),(p2,n2))是使p1和p2之间的距离不适当或使n1,n2和p2-p1几乎共线的双。
第一预处理可以移除具有太大或太小||p2-p1||的PM和PS的双。确切地说,这是通过如下计算完成:
w=max{||p2-p1||,{(p1,n1),(p2,n2)}∈PM}
其中kmin=0.1和kmax=0.6。然后,仅双((p1,n1),(p2,n2))∈PM∪PS使:被保留以用于进一步处理。
根据第二预处理,仅满足以下关系的双((p1,n1),(p2,n2))∈PM∪PS可以被保留:
符号det[u,v,w]是向量的3×3行列式。阈值k的典型值为k=0.2(可以修改±50%)。如下使用的集合PM和PS可以满足由预处理定义的属性。
现在讨论签名的概念。
可以根据以下流程针对双定义数字签名。双可被改变为实数的四元组(four-tuple),命名为“描述符(descriptor)”,该描述符继而可被改变为整数。如下文所阐述,在这种情况下签名可以指二者的组合。
首先讨论该方法的示例的描述符。
在这一示例中,描述符在镜像对称下是可变的,由于特定的术语。这相对于早先引用的现有技术允许假阳性的减少。
给定((p1,n1),(p2,n2))∈PM∪PS,可以根据由q=p2-p1定义的映射来计算描述符,并且:
其中<u|v>是向量u和v的标量积。正如先前引用的现有技术,映射F在刚性运动下是不变的,但是与先前引用的现有技术相反,映射F在镜像对称下不是不变的。事实上,记L为镜像对称线性映射,镜像双描述符的第四坐标可能是:
因为det L=-1。
描述符(上述示例的特定描述符或任何其他这样的描述符)可在示例中被量化,这导致质量评价(如果需要的话)的快速执行。现在讨论这种量化。
通常,第一对的描述符的值和第二对的描述符的值之间的实质相等可以被视为整数的实质相等。具体地,可以是对应于第一对描述符的值的第一整数和对应于第二对描述符的值的第二整数之间的实质相等,并且在这种情况下,第一整数和第二整数可以经由分别应用于第一对描述符的值和第二对描述符的值的量化映射来计算。这大大加速了该流程,因为仅考虑整数的相等性(然而实数比较可能需要时间)。
现在讨论有效且相对高准确性(针对最终结果)执行这种量化的具体方式。
令H=F(PM∪PS)为当((p1,n1),(p2,n2))∈PM∪PS时所有四元组F(p1,n1,p2,n2)的有限集合。本质上通过使用量化映射将H的每一个元素改变为整数。该映射定义如下。存在八个实数和其中i=1,…,4,使得对于i=1,…,4和所有(r1,r2,r3,r4)∈H
事实上,实数r2和r3是归一化向量的标量积,因此-1≤r2≤1且-1≤r3≤1。实数r4是归一化向量的行列式,所以-1≤r4≤1(换句话说,对于i=2,3,4的和-1和+1可以被保留,尽管更精确的最小值和/或更精确的最大值可被确定,例如对于r1)。最后,数r1是这样的其中和可以由之前提到的示例的预处理来定义。
考虑称为“解析度”的四个实数εi,i=1,…,4,。典型值如下:
ε2=0.1
ε3=0.1
ε4=0.08
测试已经表明,解析度数值的有效范围是在这些标称值附近±50%(即,该方法对于上文提到的四个数值中的每一个均考虑在±50%以内变化的值)。另外,注意到在针对和值保留比-1和+1更精确的值的情况下,εi,i=2,3,4的值可以类似于ε1。
记[r]为小于或等于实数r的最大整数,针对i=1,…,4定义整数δi:
现在,给定任意的(r1,r2,r3,r4)∈H,针对i=1,…,4定义整数qi:
然后,四元组(4-tuple)(r1,r2,r3,r4)∈H的量化由下式定义:
Q(r1,r2,r3,r4)=q1δ2δ3δ4+q2δ3δ4+q3δ4+q4
最后,签名是量化的描述符,即根据复合式σ=QοF定义的映射且意味着对于所有的((p1,n1),p2,n2))∈PM∪PS:
σ((p1,n1),(p2,n2))=Q(F(p1,n1,p2,n2))
例如,选择和双(如图14-17所示):
计算得出:
σ(a1)=1054
σ(a2)=5250
σ(a3)=5250
σ(a4)=1054
注意公式σ(a1)=σ(a4),因为双a1接近双a2。此外σ(a2)=σ(a3)因为F(a2)=F(a3)=(1,0,0,-1),由于双a2和a3是等长的,并且由于映射F在刚性运动下是不变的。
现在讨论允许该方法快速执行的方法的示例。在该示例中,算法遵循3D投票原理(即,使用哈希表,并且算法的输出对应于哈希表中最受欢迎的一个或多个槽)。具体地,算法可以对应于所有安置(例如刚性运动)中的最佳投票,该所有安置中的每一个将相应第一对安置在相应匹配的第二对上。然后,最佳投票可以对应于保持最大安置组的哈希表槽,其以基本上相同的方式安置3D建模对象中包括的相应3D点的三个所谓的“锚定点(anchorpoints)”(即,组的安置将锚定点发送到哈希表的相同槽,其因此是3×3D哈希表,例如预定的,因此槽是这样预定的3×3D网格的单元)。换句话说,将第一对安置到匹配的第二对(例如,“匹配”对应于先前提到的形状描述符,并且在示例中更具体的涉及签名)的安置被认为是对相关(couple-wise)的(例如先前参考示例所提到的,具体的为第二对相关(second-couple-wise))。所有这样的候选安置被保留,并且考虑最“受欢迎”的一个或多个。这允许快速确定安置S10。锚定点可以是属于3D建模对象的三个未对准的点。这提供了3D投票的鲁棒性(robustness)。
现在讨论被测试的并且工作尤其好的锚定点的示例。在该示例中,锚定点是模型M的三个点,记为A=(m1,m2,m3),通过使得它们之间的相互距离尽可能大的方式被选择。精确地:max{||m1-m2||2+||m1-m3||2+||m2-m3||2;(m1,n1),(m2,n2),(m3,n3)∈M}.。注意法向量n1、n2和n3分别与点m1、m2和m3相关联,并且不涉及该锚定点的定义。
现在讨论根据上述详述实施例的总体算法的示例。算法的概要如下。第一步是在表T(·)中存储双-双刚性运动d如何改变锚定点A。为了性能目的,该步骤可以调查具有相同签名的多个双,如下面的指令03所述:
整数imax是算法调查的双-双刚性运动的数量。输出表T通过使用所述刚性运动来收集所有变换的锚定点。令Im(T)是T的所有值的集合,即
Im(T)={T(i),i∈{1,…,imax}}
第二步在以下意义上识别最频繁的刚性运动。令ε>0为数值阈值。值ε将在后面讨论。考虑任意t∈Im(T)。记C(t,ε)为在{1,…,imax}中的索引i的集合,以使T(i)接近t。精确地,C(t,ε)={i∈{1,…,imax},||T(i)-t||≤ε]。
通过定义,在Im(T)中选择的值t*具有最大的C(t,ε),也就是说,t*=ArgMaxt∈Im(T)|C(t,ε)|。注意这个“最大参数(argument of maximum)”公式是通用的。稍后描述示例算法。最后一个步骤返回在场景S中安置/定位(positioning/locating)模型M的最佳刚性运动。其为刚性运动d*∈SE(3),使得||t*-d*(A)||尽可能小。稍后详细说明d*的计算示例。
现在讨论针对双签名匹配所保留的数据结构的具体示例(在上述示例算法的步骤03中使用)。在该示例中,应用量化映射于第一对描述符的值的结果被存储在索引表中,以便提高该方法的总体效率。
事实上,检索具有给定签名的PM的所有元素可以集中地应用于该算法中。例如在上述示例的指令03处由“For all x∈PM such thatσ(x)=k do begln”捕获。从编程的角度来看,该操作借助于适当的数据结构执行。该数据结构涉及三个表T1、T2和T3,并且可以按照如下被计算。
第一步是计算该表T1,使得T1(k)是x∈PM的元素的数量,使得σ(x)=k。表T1对于所有i被初始化为T1(i)=0。
在这个步骤之后,整数n是对所有x∈PM使1≤σ(x)≤n。这意味着注意σ(PM)={1,…,n}不是必需的,意味着可能存在不是PM的元素的签名的{1,…,n}中的一些值。换句话说,可以存在整数i,使得T1(i)=0。
第二步是计算表T2,其是(将来)表T3中地址的目录。表T2的大小为n。此步骤后不再使用表T1。
最后一步是向表T3馈送具有相同签名的元素的列表。表T3的大小是n+|PM|,并且对于所有i∈{1,…,n+|PM|},表T3使用T3(i)=0被初始化。
该数据结构可参照如下使用。给定场景的元素y∈PS和其签名k=σ(y),在表T3中的T2(k)位置处读取具有相同签名k的模型元素x∈PM的数量m,即m=T3(T2(k))。对于j=1,2,…,m,所述模型元素位于表T3中的T3(T2(k)+j)位置处。
该计算明显是最优的,因为所得到的数据结构的大小是n+|PM|,并且树步骤的累积复杂度是n+2|PM|。图18的表示例了具有PM={a,b,c,d,e,f}的数据结构,从而|PM|=6,σ(a)=σ(b)=σ(d)=σ(e)=2和σ(c)=σ(f)=4,故而n=4。具有签名值3的PM的元素的数量是T3(T2(3))=T3(7)=0。具有签名值2的PM的元素的数量是T3(T2(2))=T3(2)=4,并且它们是T3(3)=a,T3(4)=b,T3(5)=d和T3(6)=e.。
现在讨论增加全局速度(同时导致相对精确的结果)的算法的示例。在该示例中,算法对应于在所有刚性运动中的最佳投票,该所有刚性运动中的每一个将相应的第一对安置在相应匹配的第二对上,如在先前示例中所提及的。现在,以特定和快速的方式确定每一个刚性运动(即,计算双-双刚性运动,例如上述示例算法的步骤04):仅基于(即,该确定不涉及其他数据)附接到其相应第一对的正交轴系统和附接到其相应第二对的正交轴系统。相应的正交轴系统仅基于两个点中的仅一个点及其相应的关联法向量分别从相应的第一对和相应的第二对确定(换句话说,对于每对所考虑的双,它们之间的刚性运动仅基于两个正交轴系统来确定,每一个相应的对一个,并且每一个系统仅基于定义该对的一半信息/数据来确定,即该对的两个点中的其中一个的位置和相关联的法向量-即其他点的位置和相关联的法向量未被使用),使得该确定是快速的,并且因此该算法也是全局快速的。
现在讨论这样的刚性运动确定的示例,其与前面提到的预处理示例尤其好地协同合作(因为这种预处理留下如下的所输入的对,通过所输入的对这一示例的确定尤其快地被完成)。
在该示例中,在算法的指令04处执行计算刚性运动:给定a、a′两双,计算刚性运动d,使得d(a)在某种意义上接近a′。原理是定义分别附接到双a和对a′的两个直接正交轴系统(O,U,V,W)和(O′,U′,V′,W′),然后计算刚性运动d将(O,U,V,W)变换为(O′,U′,V′,W′)。精确地,刚性运动d对于所有的x∈R3,d(x)=Cx+D具有根据矩阵乘积定义的旋转C:C=[U′ V′W′]T[U V W]。平移D定义为:D=O′-CO。附接到双((p1,n1),(p2,n2))的轴系统(O,U,V,W)定义如下。第一向量U是U=n1。第二向量V是p2-p1在垂直于U的平面上的归一化投影。这在两个步骤V=(I-UUT)(p2-p1)中计算,其中I是单位矩阵,且由于预处理,该计算是有效率的,因为p2≠p1并且n1不与p2-p1共线。第三向量W是叉积W=U×V。最后,原点O是p1。图19示出轴系统定义。尽管轴系统(O,U,V,W)不依赖于n2和长度||p2-p1||,但在实践中给出了良好的结果。对附接到另一双的轴系统(O′,U′,V′,W′)进行相同的计算。图20示出了刚性运动的定义。
现在讨论先前提及的3D投票的示例,3D投票相当于计算对于t*的最大值的参数。
通过构造,Im(T)是3D点的三元组的有限集合,意味着Im(T)的元素可以被看作中的点。假定数值阈值ε>0,实数集可以写为所有间隔的联合[jε,(j+1)ε[:
这样,可以写为框的联合:
即:
示例中的投票是用于计数Im(T)的9元组(9-tuples)落入其中(j1,…,j9)∈z9的每一个框的数目,并选择合计达到9元组的最大数目的框。优选的阈值是ε=0.2max{||p2-p1||,((p1,n1),(p2,n2))∈PM}
为了清楚起见,使用整数Vote(j1,…,j9)的表来更新以下示例伪代码的算法中的投票。类似地,中的点的表b(j1,…,j9)用于更新每一个框的点的质心。为了优化的目的,两者可以被哈希数据结构代替。整数BestVote是当前最佳投票,并在整个过程中进行更新。整数SecondVote是当前最好的第二个投票,并在整个过程中更新。它被显著性水平所需要。
显著性水平可以是用于比较BestVote和SecondVote值的比率原则是,如果BestVote比SecondVote“大得多”则投票过程是有意义的,这意味着“许多”锚定点被转换到同一个框中,典型地,当时。在数学上,最好的刚性运动(在下一段详述)总可以被计算,即使投票没有意义。保持该最佳刚性运动或几个最佳刚性运动,或没有最佳刚性运动的决定仅仅是实现的问题,这取决于该方法的应用。
所选值t*是所选框中的点的质心,即:
为了方便起见,它被写成使得其三个点s1、s2、s3被显式化。
t*=(s1,s2,s3)
图21-22示出了在2维的情况下(与9维情况相反)的投票过程。图21示出了2D点的集合Im(T)。图22为ε×ε个框铺成所选框是因为它包括最大数量的点:最好的第二投票是SecondVote=Vote(4,3)=2,所以显著性水平是
现在提供如何计算最佳刚性运动的示例。
根据先前的讨论,现在,点可以用于找到将模型M的锚定点A=(m1,m2,m3)变换为场景S的所选点的三元组的点t*=(s1,s2,s3)的最佳刚性运动d*。该最佳刚性运动d*由平移T*和旋转R*定义,使得对于所有d*(x)=R*x+T*。旋转R*和平移T*可按照如下计算。
使用m1、m2、m3计算以下向量
U=m2-m1
V=m3-m1
W=U×V
s1、s2、s3同理:
U′=s2-s1
V′=s3-s1
W′=U′×V′
然后,使用U、V、W、U′、V′和W′计算矩阵P。
P=[U′ V′ W′][U V W]-1
应当注意,(U,V,W)和(U′,V′,W′)通常是非正交的轴系统,使得P是一个通常非正交的矩阵。因为这个原因,映射R*是到P的最近的旋转。它是唯一的并且可以使用奇异值分解来计算,例如在论文“Andriy Myronenko,Xubo Song,On the closed-form solution ofthe rotation matrix arising in computer vision problems,9Apr 2009”中所解释的。最后,平移T*被定义为:T*=s1-R*m1。
Claims (15)
1.一种用于在3D场景中定位3D建模对象的计算机实现的方法,所述3D建模对象和所述3D场景的每一个包括相应的3D点,每一个3D点与相应的法向量相关联,所述方法包括:在所述3D场景中对所述3D建模对象的安置,所述安置是遵循如下算法执行的,所述算法对于由所述3D建模对象的两个3D点和它们相应的相关联的法向量组成的第一对中的每一个,奖励与由所述3D场景的两个3D点和它们相应的相关联的法向量组成的相应的第二对的匹配,所述第一对实质上被安置于所述第二对上,所述第一对和所述第二对之间的匹配相当于所述第一对的描述符的值和所述第二对的描述符的值之间的实质相等,其特征在于,所述描述符是在镜像对称下能够变化的。
2.根据权利要求1所述的方法,其中,用于对((p1,n1),(p2,n2))∈PM∪PS的描述符是包括类型的项的向量,其中:
·为单位球面,
·是由3D点和法向量组成的对的集合,
·M是所述3D建模对象,包括K的有限子集,其中,M={mi,i=1,…,|M|},对于所有的i,
·S是所述3D场景,包括K的有限子集,其中,S={si,i=1,…,|S|},对于所有的i,
·PM是M中元素的所有对的集合,其中,
PM={((p1,n1),(p2,n2)),(p1,n1)∈M,(p2,n2)∈M}=M×M,
·PS是S中元素的所有对的集合,其中,
PS={((p1,n1),(p2,n2)),(p1,n1)∈S,(p2,n2)∈S}=S×S,以及
·q=p2-p1。
3.根据权利要求2所述的方法,其中,所述描述符是根据以下类型的映射来计算的:
其中,<u|v>是向量u和向量v的标量积。
4.根据权利要求1、2或3所述的方法,其中,所述第一对的描述符的值和所述第二对的描述符的值之间的所述实质相等,是对应于所述第一对的描述符的值的第一整数和对应于所述第二对的描述符的值的第二整数之间的实质相等,所述第一整数和所述第二整数是经由分别被应用于所述第一对的描述符的值和所述第二对的描述符的值的量化映射来计算的。
5.根据权利要求4所述的方法,其中,所述量化映射具有由复合式σ=QоF定义的类型其中,对于所有的((p1,n1),(p2,n2))∈PM∪PS:
σ((p1,n1),(p2,n2))=Q(F(p1,n1,p2,n2))
并且其中:
·H=F(PM∪PS)是当((p1,n1),(p2,n2))∈PM∪PS时所有4元组F(p1,n1,p2,n2)的有限集合,
·是量化映射,其中,Q(r1,r2,r3,r4)=q1δ2δ3δ4+q2δ3δ4+q3δ4+q4,
·给定任意4元组(r1,r2,r3,r4)∈H,其中,qi整数是针对i=1,…,4定义的,
·对于i=1,…,4,δi是定义为的整数,其中,[r]记为小于或等于给定实数r的最大整数,
·εi,i=1,…,4是表示所述量化的解析度的四个实数,以及
和其中i=1,…,4,是八个实数,使得对于i=1,…,4以及所有的(r1,r2,r3,r4)∈H,
6.根据权利要求5所述的方法,其中,所述量化的解析度等于
ε2=0.1
ε3=0.1
ε4=0.08 的至少±50%。
7.根据权利要求1-6中任一项所述的方法,其中,所述算法对应于所有安置当中的最佳投票,其中,所述所有安置中的每一个安置将相应的第一对安置在相应的匹配的第二对上,所述最佳投票保持安置的最大组,所述安置的最大组以实质上相同的方式来对所述3D建模对象中包括的相应的3D点的三个锚定点进行安置。
8.根据权利要求7所述的方法,其中,所述锚定点是模型M的三个未对准点,优选地记为A=(m1,m2,m3),并且相关的:
arg max{||m1-m2||2+||m1-m3||2+||m2-m3||2;(m1,n1),(m2,n2),(m3,n3)∈M}。
9.根据权利要求7或8所述的方法,其中,所述安置的最大组的中的安置都将所述三个锚定点安置在预定的3×3D网格的相同单元中。
10.根据权利要求1-9中任一项所述的方法,其中,所述实质相等相当于所述第一整数和所述第二整数之间的准确相等。
11.根据权利要求1-10中任一项所述的方法,其中,所述算法运行第二对,访问与正在运行的相应的第二对匹配的所有第一对,以及输出所述3D建模对象在所述3D场景中的安置,所述安置奖励实质上被安置于所访问的相应的第二对上的所述第一对。
12.根据权利要求1-11中任一项所述的方法,其中,所述算法对应于在所有刚性运动中的最佳投票,其中,所有刚性运动中的每一个刚性运动将相应的第一对安置于相应的匹配的第二对上,每一个刚性运动是排他地基于附接到其相应的第一对的相应的正交轴系统和附接到其相应的第二对的相应的正交轴系统来确定的,所述相应的正交轴系统中的每一个是基于所述两个点中的仅一个点及其相应的相关联的法向量而分别根据所述相应的第一对和所述相应的第二对来确定的。
13.一种计算机程序,包括用于执行根据权利要求1-12中任一项所述的方法的指令。
14.一种计算机可读存储介质,其上记录有根据权利要求13所述的计算机程序。
15.一种系统,包括耦合到存储器和图形用户界面的处理器,所述存储器上记录有根据权利要求13所述的计算机程序。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP15307145.1A EP3185171B1 (en) | 2015-12-24 | 2015-12-24 | 3d object localization with descriptor |
EP15307145.1 | 2015-12-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107016732A true CN107016732A (zh) | 2017-08-04 |
CN107016732B CN107016732B (zh) | 2022-01-14 |
Family
ID=55085513
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611273101.1A Active CN107016732B (zh) | 2015-12-24 | 2016-12-23 | 用于使用描述符的3d对象定位的方法、装置、介质和系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10062217B2 (zh) |
EP (1) | EP3185171B1 (zh) |
JP (1) | JP7017852B2 (zh) |
CN (1) | CN107016732B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111111154A (zh) * | 2019-12-04 | 2020-05-08 | 北京代码乾坤科技有限公司 | 虚拟游戏对象的建模方法、装置、处理器及电子装置 |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20180051288A (ko) * | 2016-11-08 | 2018-05-16 | 삼성전자주식회사 | 디스플레이 장치 및 그 제어 방법 |
US11270459B2 (en) * | 2020-04-22 | 2022-03-08 | Dell Products L.P. | Enterprise system augmented reality detection |
TWI768548B (zh) * | 2020-11-19 | 2022-06-21 | 財團法人資訊工業策進會 | 定位用基礎資訊產生系統與方法以及自身定位判斷裝置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236794A (zh) * | 2010-05-07 | 2011-11-09 | Mv科技软件有限责任公司 | 3d场景中3d对象的识别和姿态确定 |
CN104040590A (zh) * | 2011-12-19 | 2014-09-10 | 三菱电机株式会社 | 用于估计物体的姿态的方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20110097140A (ko) * | 2010-02-24 | 2011-08-31 | 삼성전자주식회사 | 이동 로봇의 위치 추정 장치 및 방법 |
US9330466B2 (en) * | 2012-03-19 | 2016-05-03 | Adobe Systems Incorporated | Methods and apparatus for 3D camera positioning using a 2D vanishing point grid |
JP5838355B2 (ja) * | 2012-06-20 | 2016-01-06 | パナソニックIpマネジメント株式会社 | 空間情報検出装置、人位置検出装置 |
EP2720171B1 (en) * | 2012-10-12 | 2015-04-08 | MVTec Software GmbH | Recognition and pose determination of 3D objects in multimodal scenes |
-
2015
- 2015-12-24 EP EP15307145.1A patent/EP3185171B1/en active Active
-
2016
- 2016-12-21 JP JP2016248383A patent/JP7017852B2/ja active Active
- 2016-12-23 US US15/389,572 patent/US10062217B2/en active Active
- 2016-12-23 CN CN201611273101.1A patent/CN107016732B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102236794A (zh) * | 2010-05-07 | 2011-11-09 | Mv科技软件有限责任公司 | 3d场景中3d对象的识别和姿态确定 |
CN104040590A (zh) * | 2011-12-19 | 2014-09-10 | 三菱电机株式会社 | 用于估计物体的姿态的方法 |
Non-Patent Citations (2)
Title |
---|
BERTRAM DROST 等: ""Model Globally, Match Locally: Efficient and Robust 3D Object Recognition"", 《2010 IEEE COMPUTER SOCIETY CONFERENCE ON COMPUTER VISION AND PATTERN RECOGNITION》 * |
SIMON WINKELBACH 等: ""Low-Cost Laser Range Scanner and Fast Surface Registration Approach"", 《LECTURE NOTES IN COMPUTER SCIENCE》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111111154A (zh) * | 2019-12-04 | 2020-05-08 | 北京代码乾坤科技有限公司 | 虚拟游戏对象的建模方法、装置、处理器及电子装置 |
CN111111154B (zh) * | 2019-12-04 | 2023-06-06 | 北京代码乾坤科技有限公司 | 虚拟游戏对象的建模方法、装置、处理器及电子装置 |
Also Published As
Publication number | Publication date |
---|---|
JP7017852B2 (ja) | 2022-02-09 |
EP3185171B1 (en) | 2020-03-04 |
US10062217B2 (en) | 2018-08-28 |
US20170186245A1 (en) | 2017-06-29 |
CN107016732B (zh) | 2022-01-14 |
JP2017168081A (ja) | 2017-09-21 |
EP3185171A1 (en) | 2017-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10176404B2 (en) | Recognition of a 3D modeled object from a 2D image | |
CN108804094A (zh) | 学习自动编码器 | |
CN109145352B (zh) | 用于学习取图像作为输入的函数的数据集 | |
CN106202545A (zh) | 利用相近性准则来查询数据库 | |
CN107545025B (zh) | 利用形态学标准查询数据库 | |
CN108073682A (zh) | 基于参数视图函数查询数据库 | |
JP2019045894A (ja) | 検索プログラム、検索方法、及び、検索プログラムが動作する情報処理装置 | |
CN104952086B (zh) | 用于管理结构数据的设备及方法 | |
CN101446980B (zh) | 一种基于彩色旋转图像的三维部分形状匹配和检索方法 | |
CN107016732A (zh) | 使用描述符的3d对象定位 | |
CN109886297A (zh) | 一种用于从二维图像识别三维模型对象的方法 | |
CN107066926A (zh) | 使用描述符的3d对象定位 | |
Kerbl et al. | Interactive disassembly planning for complex objects | |
Ullrich et al. | Semantic fitting and reconstruction | |
Xiang et al. | Research on Handicraft Design Based on Artificial Intelligence Technology in Complex Environments | |
Wu et al. | External knowledge enhanced 3d scene generation from sketch | |
Ren et al. | Sketch-based modeling and immersive display techniques for indoor crime scene presentation | |
Takashima et al. | Shape descriptor-based similar feature extraction for finite element meshing | |
Tian et al. | An approach to generate spatial Voronoi Treemaps for points, lines, and polygons | |
Ellefi et al. | A Bit on the Right, A Bit on the Left: Towards Logical Bundle Adjustment | |
Brooks et al. | Comparative Analysis of Object Recognition Techniques Using 3D Shape Descriptors | |
Johnson et al. | Ubiquitous Simultaneity: A Design Workflow for an Information Rich Environment | |
Qian et al. | Method for continuous multiscale representation of terrain contours using T‐spline technique | |
Barra et al. | From Fully Supervised to Blind Digital Anastylosis on DAFNE Dataset | |
CN116841914A (zh) | 一种渲染引擎的调用方法、装置、设备及存储介质 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |