CN107705328A - 用于3d对准算法的平衡探针位置选择 - Google Patents

用于3d对准算法的平衡探针位置选择 Download PDF

Info

Publication number
CN107705328A
CN107705328A CN201710675263.6A CN201710675263A CN107705328A CN 107705328 A CN107705328 A CN 107705328A CN 201710675263 A CN201710675263 A CN 201710675263A CN 107705328 A CN107705328 A CN 107705328A
Authority
CN
China
Prior art keywords
interest
point
probe
individual
distribution
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
Application number
CN201710675263.6A
Other languages
English (en)
Other versions
CN107705328B (zh
Inventor
S·巴克
D·赫尔舍
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cognex Corp
Original Assignee
Cognex Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Cognex Corp filed Critical Cognex Corp
Publication of CN107705328A publication Critical patent/CN107705328A/zh
Application granted granted Critical
Publication of CN107705328B publication Critical patent/CN107705328B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75Determining position or orientation of objects or cameras using feature-based methods involving models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/18Complex mathematical operations for evaluating statistical data, e.g. average values, frequency distributions, probability functions, regression analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/13Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/66Analysis of geometric attributes of image moments or centre of gravity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/77Determining position or orientation of objects or cameras using statistical methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/24Aligning, centring, orientation detection or correction of the image
    • G06V10/245Aligning, centring, orientation detection or correction of the image by locating a pattern; Special marks for positioning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • G06V10/469Contour-based spatial representations, e.g. vector-coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/758Involving statistics of pixels or of feature values, e.g. histogram matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20076Probabilistic image processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Probability & Statistics with Applications (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Geometry (AREA)
  • Medical Informatics (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Algebra (AREA)
  • Operations Research (AREA)
  • Computer Graphics (AREA)
  • Image Analysis (AREA)

Abstract

技术包括用于选择三维(3D)探针的放置的***,计算机化方法和计算机可读介质,三维(3D)探针用于评估3D对准***内的运行时3D图像的3D对准姿态,以估计3D运行时映像中经过训练的3D模型图像的姿态。与3D图像中第一多个兴趣点相关联的多个特征被生成,其中每个特征包括指示来自多个兴趣点的相关联点的3D特性的数据。至少部分地基于与第一多个兴趣点相关联的多个特征,从第一多个兴趣点中选择第二多个兴趣点。至少部分地基于第二多个兴趣点确定多个3D探针的放置。

Description

用于3D对准算法的平衡探针位置选择
技术领域
公开一种涉及将探针放置在用于图像处理应用的图案的图像上的装置、***和方法。
背景技术
数字图像由许多装置形成并且用于许多实际目的。设备包括具有在可见光或红外光上操作的图像传感器的相机,例如,电荷耦合元件(CCD)图像传感器或互补金属氧化物半导体(CMOS)图像传感器、线扫描传感器、飞点扫描仪、电子显微镜、包括计算机断层(CT)扫描仪的X射线装置、磁共振成像仪以及本领域技术人员已知的其它装置。实际应用在工业自动化、医疗诊断、各种军事民用和科学用途的卫星成像、摄影处理、监视和交通监控、文件处理以及很多其他的领域。
为了满足这些应用,由各种设备形成的图像通过机器视觉***分析以提取适当的信息。在对应于成像装置视场中目标的图像中,确定图案在图像中的位置、方向和尺寸的形式分析具有相当实用的重要性。图案检测方法在工业自动化中尤为重要,其中在半导体制造、电子组装、药品食品加工、消费品制造等领域中,它们被用来引导机器人和其他自动化设备。
在某些情况下,图案检测方法可以使用一个或多个探针对图案进行建模。探针可以指图像中的位置,在该位置处,图案检测方法检查图像的梯度矢量。因此,每个探针可以与位置矢量和方向矢量相关联。由于探针可以有效地指示图像中图案的位置和方向,因此机器视觉***可以使用探针对齐图案的位置和方向。
发明内容
一些实施例包括用于选择三维(3D)探针的放置的***,三维(3D)探针用于评估3D对准***内的运行时3D图像的3D对准姿态,3D对准***用于估计该3D运行时图像中经过训练的3D模型图像的姿态。该***包括与存储器通信的处理器,其中处理器被配置为运行存储在存储器中的计算机程序,计算机程序被配置为:生成与来自3D图像的第一多个兴趣点相关联的多个特征,其中每个特征包括指示来自所述多个兴趣点的相关联点的3D特性的数据;至少部分地基于与所述第一多个兴趣点相关联的多个特征,从所述第一多个兴趣点中选择第二组多个兴趣点;以及至少部分地基于所述第二多个兴趣点来确定多个3D探针的放置。
在一些实施例中,多个特征中的每一个包含在所述第一多个点中的关联点的有用性的至少一个量度,以用于在至少一个平移自由度中对准。在一些实施例中,多个特征中的每一个包含在所述第一多个点中的关联点的有用性的至少一个量度,以用于在至少一个旋转自由度中对准。在一些实施例中,比起通过放置在所述第一多个兴趣点的每一个上所提供的,多个3D探针的放置提供了在三个平移自由度中更大的整体对准能力。在一些实施例中,比起通过放置在所述第一多个兴趣点中的每一个上所提供的,多个3D探针的放置提供了在三个平移自由度中更大的整体对准能力,其中更大的整体对准能力包括在第一多个点的最小代表的旋转自由度中增加整体对准能力。在一些实施例中,比起通过放置在所述第一多个兴趣点的每一个上所提供的,多个3D探针的放置提供了在三个旋转自由度中更大的整体对准能力。在一些实施例中,多个3D探针的放置提供了第一多个点的最小代表旋转自由度中的整体对准能力的增加。
在一些实施例中,确定拟合第一多个点的子集的旋转中心和旋转轴,使得旋转中心和旋转轴与图案的旋转对称特征相关联。在一些实施例中,从第一多个点的子集中找到旋转中心和旋转轴包括使用RANSAC技术。在一些实施例中,多个特征包括多个表面法向量。在一些实施例中,多个特征包括多个边缘邻近向量。在一些实施例中,多个特征包括多个边缘方向向量。在一些实施例中,多个特征包括多个表面曲率向量。
在一些实施例中,至少部分地基于与第一多个兴趣点相关联的多个特征从第一多个兴趣点中选择第二多个兴趣点包括:将概率分布拟合到所述第一多个点;确定目标分布,其中目标分布指示探针在一个或多个兴趣点上的期望放置;至少部分地通过利用所提出的探针位置处的拟合分布和目标分布的相对概率来确定探针的放置。在一些实施例中,确定兴趣点分布包括将多个兴趣点拟合到包括混合模型的概率分布,其中概率分布指示在多个兴趣点处测量的至少一取向分布。在一些实施例中,处理器进一步被配置为通过将多个兴趣点聚类成至少一个群集来确定兴趣点分布的混合模型的多个组分的数量。在一些实施例中,处理器还被配置为:从第一多个兴趣点识别一个或多个水平点;以及基于考虑移除所述一个或多个水平点,使得第二多个兴趣点不包括一个或多个水平点。在一些实施例中,选择第二多个兴趣点包括使用蒙特卡罗技术。
一些实施例包括用于选择三维(3D)探针的放置的方法,三维(3D)探针用于评估3D对准***内的运行时3D图像的3D对准姿态,3D对准***用于估计该3D运行时图像中经过训练的3D模型图像的姿态。该方法包括:生成与来自3D图像的第一多个兴趣点相关联的多个特征,其中每个特征包括指示来自所述多个兴趣点的相关联点的3D特性的数据;至少部分地基于与所述第一多个兴趣点相关联的多个特征,从所述第一多个兴趣点中选择第二组多个兴趣点;以及至少部分地基于所述第二多个兴趣点来确定多个3D探针的放置。
在一些实施例中,多个特征中的每一个包含在所述第一多个点中的关联点的有用性的至少一个量度,以用于在至少一个平移自由度中对准。在一些实施例中,多个特征中的每一个包含在所述第一多个点中的关联点的有用性的至少一个量度,以用于在至少一个旋转自由度中对准。在一些实施例中,比起通过放置在所述第一多个兴趣点的每一个上所提供的,多个3D探针的放置提供了在三个平移自由度中更大的整体对准能力。在一些实施例中,比起通过放置在所述第一多个兴趣点的每一个上所提供的,多个3D探针的放置提供了在三个平移自由度中更大的整体对准能力,其中更大的整体对准能力包括在第一多个点的最小代表的旋转自由度中增加整体对准能力。
在一些实施例中,比起通过放置在所述第一多个兴趣点的每一个上所提供的,多个3D探针的放置提供了在三个旋转自由度中更大的整体对准能力。在一些实施例中,多个3D探针的放置提供了第一多个点的最小代表旋转自由度中的整体对准能力的增加。在一些实施例中,确定拟合第一多个点的子集的旋转中心和旋转轴,使得旋转中心和旋转轴与图案的旋转对称特征相关联。在一些实施例中,从第一多个点的子集中找到旋转中心和旋转轴包括使用RANSAC技术。在一些实施例中,多个特征包括多个表面法向量。在一些实施例中,多个特征包括多个边缘邻近向量。在一些实施例中,多个特征包括多个边缘方向向量。在一些实施例中,多个特征包括多个表面曲率向量。
在一些实施例中,至少部分地基于与第一多个兴趣点相关联的多个特征从第一多个兴趣点中选择第二多个兴趣点包括:将概率分布拟合到所述第一多个点;确定目标分布,其中目标分布指示探针在一个或多个兴趣点上的期望放置;至少部分地通过利用所提出的探针位置处的拟合分布和目标分布的相对概率来确定探针的放置。在一些实施例中,确定兴趣点分布包括将多个兴趣点拟合到包括混合模型的概率分布,其中概率分布指示在多个兴趣点处测量的至少一取向分布。在一些实施例中,该方法进一步包括通过将多个兴趣点聚类成至少一个群集来确定兴趣点分布的混合模型的多个组分的数量。在一些实施例中,该方法进一步包括:从第一多个兴趣点识别一个或多个水平点;以及基于考虑移除所述一个或多个水平点,使得第二多个兴趣点不包括一个或多个水平点。在一些实施例中,选择第二多个兴趣点包括使用蒙特卡罗技术。
一些实施例包括具有与用于选择三维(3D)探针的放置的***相关联的可执行指令的非暂时计算机可读介质,三维(3D)探针用于评估3D对准***内的运行时3D图像的3D对准姿态,3D对准***用于估计该3D运行时图像中经过训练的3D模型图像的姿态。可执行指令可操作以使所述***:生成与来自3D图像的第一多个兴趣点相关联的多个特征,其中每个特征包括指示来自多个兴趣点的相关联点的3D特性的数据;至少部分地基于与第一多个兴趣点相关联的多个特征,从第一多个兴趣点中选择第二组多个兴趣点;以及至少部分地基于所述第二多个兴趣点来确定多个3D探针的放置。
因此,相当广泛地概述了所公开的主题的特征,以便可以更好地理解下面的详细描述,并且为了更好地理解本领域对本领域的贡献。当然,还将公开的主题的附加特征将在下文中描述并且将形成所附权利要求的主题。并且,应该理解,本文采用的词组和术语都是为了描述目的,不该为视为限制。
附图说明
参考以下结合以下附图考虑的所公开主题的详细描述,可以更全面地理解所公开主题的各种目的、特征和优点,其中相同的附图标记表示相同的元件。
图1示出了具有细长矩形形状和均匀地放置在图案上的探针的2D图案;
图2示出了根据一些实施例的用于将探针放置在2D图像的兴趣点上的高水平过程;
图3示出了根据一些实施例的通过将垂直取向的直方图匹配成均匀分布来放置探针的结果;
图4示出了根据一些实施例的包括探针放置模块的计算装置;
图5示出了根据一些实施例的用于确定图像的兴趣点的垂直取向的直方图的过程;
图6A-6H示出了根据一些实施例的用于生成垂直取向的直方图的过程;
图7示出了根据一些实施例的用于确定探针放置的过程;
图8示出了根据一些实施例的与2D图像的兴趣点相关联的动作长度的缩放;
图9示出了根据一些实施例的在缩放的兴趣点上的探针的均匀放置;
图10示出了根据一些实施例的与兴趣点相关联的缩放弧长的反向缩放;
图11A-11B示出了根据一些实施例的通过从目标分布采样探针的探针平衡;
图12A示出了根据一些实施例的参考矢量和单位法向矢量之间的关系;
图12B示出了根据一些实施例的位置矢量vi和单位旋转矢量之间的关系;
图13总结了根据一些实施例的采样探针的过程;
图14A示出了根据一些实施例的使用如图13所示的过程将探针放置在矩形上;
图14B示出了根据一些实施例的使用如图13所示的过程将探针放置在具有杠杆臂的圆形对象上;
图15A示出了根据一些实施例的使用图13所示的过程将探针放置在矩形上;
图15B示出了根据一些实施例的使用图13所示的过程将探针放置在具有杠杆臂的圆形对象上;
图16A-16B示出了根据一些实施例的使用图13所示的过程将探针放置在具有孔的图案上;
图17A-17C示出了根据一些实施例的旋转变量θ的表示如何改变探针位置;
图18A-18B示出了根据一些实施例的使用图13所示的过程将探针放置在具有细长臂的图案上;
图19示出了根据一些实施例的具有细长且不规则管形状和均匀地放置在3D图案上的3D探针的3D图案;
图20示出了根据一些实施例的用于将3D探针放置在3D图像中的兴趣点上的高水平过程;
图21示出了根据一些实施例的特征生成过程;
图22示出了根据一些实施例的像素网格正则化的深度图;
图23A示出了根据一些实施例的从单位正方形到最近的四个周围点(任意间隔)的双线性映射以及该映射的反向,其中像素网格中心点被放置在单位正方形内;
图23B示出了根据一些实施例的主轴的角度;
图24示出了根据一些实施例的沿着长轴和短轴的规则间隔采样;
图25示出了根据一些实施例的特征生成过程的结果;
图26示出了根据一些实施例使得点云中的所有表面法向矢量的旋转力矩最小化的点ni
图27示出了根据一些实施例的使用RANSAC算法来找到旋转轴的对象的示例;
图28A示出了未移除水平点的探针放置;
图28B示出了根据一些实施例的移除水平点的探针放置;
图29示出了根据一些实施例的用于计算θp i的相关矢量,θp i可以视为是在旋转单位矢量上的投影的总和的大小;
图30A示出了根据一些实施例的没有施加偏压的探针的示例;
图30B示出了根据一些实施例的施加空间偏差的探针的示例;
图30C示出了根据一些实施例的施加旋转偏置的探针的示例;
图31A示出了点及其分辨能力的示例;
图31B示出了使用Clim=2的探针选择结果的示例;
图31C示出了使用Clim=4的探针选择结果的示例;
图31D示出了使用Clim=8的探针选择结果的示例。
具体实施方式
在下面的描述中,关于所公开的主题的***和方法以及这些***和方法可操作的环境等,阐述了许多具体细节,以便提供对所公开主题的透彻理解。然而,对于本领域技术人员显而易见的是,可以在没有这样的具体细节的情况下实践所公开的主题,并且未详细描述本领域中公知的某些特征,以避免所公开主题的复杂性。此外,应当理解,以下提供的示例是示例性的,并且想到存在着属于所公开主题范围内的其它***和方法。
该说明书通常以以下方式组织。该说明书开始于描述通常涉及二维图像的示例性实施例。例如,在于2015年1月23日提交的题为“Probe Placement for Image Processing”的美国专利申请No.14/603,969中解释了一些示例性的二维技术,其内容通过引用以全文并入此处。然后,该说明书描述通常涉及三维图像的示例性实施例。虽然第一部分通常涉及包括二维图像的示例性实施例,第二部分通常涉及包括三维图像的示例性实施例,但是本领域的技术人员将理解,一个部分中的公开内容可以应用于另一个部分中的公开内容,反之亦然。此外,本领域技术人员将理解,一些示例性实施例依赖于两部分的教导。例如,在一些示例性实施例中,***和方法使用二维图像和三维图像。此外,本领域技术人员将理解,也适用于3D情况的第一部分的教导没有必要在第二部分全部重复,以避免不必要的重复,反之亦然。换句话说,为组织目的和便于理解,虽然说明书通常分二维案例和三维案例,但该组织并不旨在限制公开的范围。
根据一个或多个实施例,以下介绍术语的示例性说明。这些说明并不限制于此。
对象-具有可由图像形成装置测量或由数据处理装置模拟的特性的任何物理或模拟对象或其部分。
图像-2D图像是二维函数,其值对应于对象的物理特性,例如亮度(辐射能、反射或其他)、颜色、温度、高于参考平面(例如,深度图)等的物理特性,并且由任何图像形成装置测量,或其值对应于对象的模拟特性,并由任何数据处理装置生成。例如,3D图像可以被表示为深度图或点云。点云是空间中3D点的集合,其中每个点可以表示为(xi,yi,zi)。
边界-假想轮廓,其是开放的或闭合的、直线的或弯曲的、平滑的或尖锐的,沿着该假想轮廓以特定粒度发生图像亮度的不连续性,所述不连续性的方向在每个点的边界正交。
梯度-在图像中给定点的向量,其给出所述点处的特定粒度的亮度的最大变化的方向和幅度。
图案-位于轮廓平面的有界子集中的轮廓的特定几何布置,所述轮廓表示待定位和/或待检查的对象的理想化图像的边界。例如,3D图案可以被表示为在深度图中的排列或表示为点云。
模型-通过图案查找方法来寻找以使用的图案的一组数据编码特征。
训练-从示例对象的图像或对象或图案的几何描述来创建模型的过程。
机器视觉***可以被配置为确定图像中的预定图案的一个或多个实例的不存在或存在,并且确定每个找到的实例的位置。在多维空间内发生的2D图像的定位图案的过程,该多维空间不限于x-y位置(也称平移)、方位和大小。就3D图像来说,例如,位置可以包括x-y位置(也称平移)、倾斜和旋转(也称翻滚(roll)、俯仰(pitch)、偏航(yaw))。
为了确定图像中的一个或多个预定图案的存在或不存在,机器视觉***可以使用模型来表示要寻找的图案。机器视觉***可以从包含待定位的和/或待检查的图案的实例的几何描述来生成一个或多个训练图像或一个或多个合成图像的图案的模型。一旦模型可用,机器视觉***可以将模型与在一组合适的姿态中的每一个的测试图像相比较,计算在每一个姿态的匹配度,并且确定相应于匹配度的局部最大值的候选的姿态。机器视觉***可以考虑匹配度高于合适的阈值的候选的姿态,以作为图像中的图案的实例。
模型可以包括一组称为探针的数据元素。每个探针表示在给定姿态下在图像中进行某些测量和测试的相对位置,每个这样的测试提供图案存在于相关姿态的证据。探针可以以基本上垂直于底层图案的结构(例如边界)的方式放置。
在训练阶段,现有的机器视觉***以均匀的方式将探针放置在2D图案的边界上。例如,机器视觉***将探针放置在图案边界上,使得相邻探针之间的距离对于所有相邻探针对大致相同。这种在这里被称为“均匀放置策略”的策略可以有效地对具有平衡取向轮廓的图案进行建模(例如,具有指向大量取向的边界的2D图案和指向各种取向的边界的比例是相似的)。例如,均匀放置策略在对方形图案进行建模中是有用的,因为在2D图像中的图案的每个边缘上,指向不同方向(例如上、下、左和右)的探针数量大致相同,这可以形成关于2D图案的位置和取向的准确信息。
不幸的是,在对具有不平衡取向轮廓(例如,具有不同侧面长度的图案)的图案建模中,均匀布局策略通常是无效的。例如,均匀放置策略通常不如在将2D图案与细长矩形形状对齐时有效。图1示出了具有细长矩形形状的2D图案和均匀地放置在图案上的探针。因为边界102具有细长的矩形形状,所以在均匀放置策略下,大多数探针104将被放置在边界的长边缘106上,并且只有少量的探针104将被放置在边界的短边缘108上。由于沿着边界的短边缘108的探针的数量小,所以难以基于探针确定短边缘108是否存在。此外,即使可以确定短边缘108存在,由于编码短边缘108的位置的探针104的数量少,难以精准定位短边缘108的位置。例如,将边界102与其他2D图案水平对准可能是个问题。
已经努力改变相邻探针之间的距离,以解决与均匀放置策略相关的问题。然而,这种努力仅限于手动调整探针位置,这可能是劳动密集型且昂贵的。
本文描述的技术提供用于将探针放置在图案(2D和3D图案)上的自动探针放置模块。探针放置模块被配置为将探针放置在图像的兴趣点上,使得探针可以精确地表示图像中描绘的图案。探针放置模块可以配置为放置探针,以便探针可以提取与图案运动相关的所有自由度的平衡信息,这提高了从探针产生的模型的准确性。例如,当已知与图案相关联的对象在两维中移动(例如,平移运动)时,探针放置模块可以放置探针,使得探针可以在二维中(假设2D图案和图片)提取平衡信息。探针放置模块也可以考虑图案的形状,使得探针都可以提取平衡信息而不用考虑图案的形状。这与提取不平衡信息的技术形成对比,例如,如图1所示,沿着与短边缘相比的长边缘放置更多探针时,与水平信息相比,提取更多的垂直信息。
图2示出了根据一些实施例的用于将探针放置在2D图像中的兴趣点上的高水平过程。兴趣点可以指示探针的候选位置。例如,探针放置模块可以被配置为选择图像中的兴趣点的子集,并将探针放置在所选择的兴趣点子集上。
在步骤202中,探针放置模块可以被配置为接收关于2D图像中的兴趣点的位置的信息。例如,探针放置模块可以从兴趣点检测模块接收2D图像中2D图案的边界。
在步骤204中,探针放置模块可以确定兴趣点的分布。例如,探针放置模块可以使用特征(例如,在兴趣点处测量的垂直取向)来表示每个兴趣点,并且确定与兴趣点相关联的特征的分布。
在步骤206中,探针放置模块可以确定探针的目标分布。在一些情况下,可以基于与步骤204中确定的兴趣点和/或兴趣点的分布相关联的特征来确定探针的目标分布。例如,探针放置模块可以确定探针的目标分布是在步骤204中确定的兴趣点的分布的倒数。在步骤208中,探针放置模块可以确定探针的位置,使得探针的实际分布与探针的目标分布相匹配。
图2所示的一般框架可以使用例如至少两个机制(例如,单独地和/或彼此组合)来实现。在第一机制中,公开的探针放置模块可以被配置成放置探针,使得在探针位置处测量的垂直取向的分布是平衡的(例如,在探针位置处的垂直取向的直方图近似均匀)。第一机制对具有两个自由度(例如平移运动)的图案建立模型特别有用。
例如,在步骤204中,探针放置模块可以确定在2D图像中的多个兴趣点处测量的垂直取向的直方图。在步骤206中,探针放置模块可以确定在探测位置处测量的垂直取向的目标分布是均匀分布。在步骤208中,探针放置模块可以将探针置于一个或多个兴趣点处,使得由放置的探针测量的垂直取向的直方图接近于均匀分布。
图3示出了根据一些实施例的通过将垂直取向的直方图匹配成均匀分布来放置探针的结果。在该示例中,兴趣点可以共同形成2D图案的边界102。当边界102具有细长的矩形形状时,探针放置模块可以减少长边缘106上的探针104的数量并增加短边缘108上的探针的数量,使得长边缘106上的探针的数量与短边缘108上的探针的数量相比大致相同。这样,放置的探针104的取向分布可以平衡。在整个说明书中,特别在图5-10,讨论了实现第一机制的探针放置模块。
在第二机制下,探针放置模块可以确定探针的位置,使得探针的分布基本上类似于目标分布。在步骤204中,探针放置模块可以使用与图案的自由度相对应的变量来表示兴趣点。例如,当已知的与2D图案相关联的对象以二维移动时,探针放置模块可以使用兴趣点处的二维梯度向量来表示兴趣点。然后,探针放置模块可以通过对与兴趣点相关联的垂直取向的分布进行建模来确定兴趣点的分布。
在步骤206中,探针放置模块可以基于与兴趣点相关联的特征来确定期望的目标分布。例如,探针放置模块可以基于在多个兴趣点处测量的垂直取向来确定期望的目标分布。更具体地,探针放置模块可以将期望的目标分布确定为在兴趣点处测量的垂直取向的分布的倒数。类似地,探针放置模块可以考虑在兴趣点处测量的旋转矢量和缩放信息以确定目标分布。随后,在步骤208中,探针放置模块可以通过从目标分布进行采样将探针放置在一个或多个兴趣点上。在整个说明书中,特别是在图11-18中,讨论了第二机制。
图4示出了根据一些实施例的包括探针放置模块的计算装置。计算装置400可以包括处理器402、存储器404、兴趣点检测(IPD)模块406、探针放置模块408和接口410。
在一些实施例中,处理器402可以执行指令和执行用于存储指令和/或数据的一个或多个存储装置404。存储器装置404可以是非暂时性的计算机可读介质,诸如动态随机存取存储器(DRAM)、静态随机存取存储器(SRAM)、闪存、磁盘驱动器、光驱动器、可编程只读存储器(PROM)、只读存储器(ROM)或任何其他存储器或存储器的组合。存储器装置404可用于临时性地存储数据。存储器装置404也可用于长期存储数据。处理器402和存储器装置404可以通过专用逻辑电路来增补和/或被并入其中。
在一些实施例中,IPD模块406可被配置为从输入图像来检测兴趣点。例如,IPD模块406可以经由接口410从另一装置(诸如相机模块)或与IPD模块406通信的另一计算装置接收图像。随后,IPD模块406可以执行图像处理操作以检测兴趣点。
在一些实施例中,兴趣点可以包括2D图案的边缘、2D图案的边界(例如,一连串边缘)、纹理边界、具有大梯度幅度的像素、具有与相邻像素相比大的强度的像素、具有与相邻像素相比多的颜色的像素、尺度不变特征变换(SIFT)特征点、与相邻像素不同的任何像素,或其任何组合。因此,IPD模块406可以被配置为执行边缘检测操作以确定形成2D图案的边界的一组边缘,检测具有大梯度幅度的像素的微分运算,检测SIFT特征点的SIFT运算符或其任何组合。
在一些实施例中,IPD模块406可以被配置为确定垂直于兴趣点下方的结构(以下称为垂直取向)的取向。在一些情况下,可以通过确定底层结构的梯度取向来确定垂直取向。例如,可以将底层图案的梯度矢量确定在兴趣点处,并且可以确定与梯度矢量相关联的取向。在其他情况下,垂直取向可以通过简单的计算来确定。例如,可以取得结构边界上的两个点,并且可以确定连接两个点的线。垂直于线的方向可以被确定为垂直取向。在其他情况下,可以基于从其他计算模块接收的信息来确定结构的垂直取向,例如,计算机辅助设计(CAD)建模模块。
在一些实施例中,探针放置模块408可以被配置为基于图像中的兴趣点来确定探针的位置。探针放置模块408可以包括目标分布计算(TDC)模块412、特征分布计算(FDC)模块414和探针分布匹配(PDM)模块416。TDC模块412可以确定将放置在一个或多个兴趣点上的探针的目标分布;FDC模块414可以确定图像中的兴趣点的分布;并且PDM模块416可以确定探针的位置,使得探针的分布和探针的目标分布基本匹配。如下所述,当TDC模块412仅处理垂直取向的直方图时,目标分布可以是均匀分布。在其他实施例中,探针放置模块408可以包括不同的模块集合,以执行基本相似的操作。
在一些实施例中,接口410可以以硬件来实现,以在诸如光、铜和无线的各种介质中和许多不同的协议中发送和接收信号,其中一些可以是非瞬态的。
在一些实施例中,模块406、408、412、414、416中的一个或多个可以使用存储器404以软件来实现。该软件可以在能够执行计算机指令或计算机代码的处理器402上运行。处理器402使用专用集成电路(ASIC)、可编程逻辑阵列(PLA)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)或任何其它集成电路以硬件来实现。例如,适于执行计算机程序的处理器402包括通用和专用微处理器、数字信号处理器以及任何种类的数字计算机的任何中的一个或多个处理器。通常,处理器402从只读存储器或随机存取存储器或两者中接收指令和数据。
在一些实施例中,公开的方法步骤可以由执行计算机程序的一个或多个处理器402执行,以通过对输入数据和/或生成的输出数据进行操作来执行本发明的功能。一个或多个模块(例如,模块406、408、412、414、416)可以使用ASIC(专用集成电路)、PLA(可编程逻辑阵列)、DSP(数字信号处理器)、FPGA(现场可编程门阵列)或其他集成电路以硬件来实现。在一些实施例中,两个或多个模块406、408、412、414、416可以在同一集成电路上实现,例如ASIC、PLA、DSP或FPGA,由此形成芯片上***。子程序可以指的是实现一个或多个功能的计算机程序和/或处理器/特殊电路的部分。
模块406、408、412、414、416可以以数字电子电路或计算机硬件、固件、软件或它们的组合来实现。该实现可以是计算机程序产品,例如,有形地体现在机器可读存储装置中的计算机程序,用于由数据处理设备执行或控制数据处理设备的操作,例如可编程处理器、计算机和/或多台计算机。计算机程序可以以任何形式的计算机或编程语言编写,包括源代码、编译代码、解释代码和/或机器代码,并且计算机程序可以以任何形式部署,包括作为独立程序或子程序、组件或适用于计算环境的其他单元。可以将计算机程序部署为在一个计算机上或在一个或多个站点上的多个计算机上执行。
计算装置400可以可操作地耦合到外部设备,例如工厂自动化或物流设备,或者连接到通信网络,例如工厂自动化或物流网络,以便从设备或网络接收指令和/或数据,和/或将指令和/或数据传送到设备或网络。适用于使计算机程序指令和数据具体化的计算机可读存储装置包括所有形式的易失性和非易失性存储器,例如包括比如DRAM、SRAM、EPROM、EEPROM和闪速存储器件的半导体存储器装置;磁盘,例如内部硬盘或可移动盘;磁光盘;以及光盘,例如CD、DVD、HD-DVD和蓝光盘。
在一些实施例中,计算装置400可以包括用户设备。用户设备可以与一个或多个无线电接入网络和有线通信网络进行通信。用户设备可以是蜂窝电话。用户设备也可以是提供诸如文字处理、网页浏览、游戏、电子书功能、操作***和全键盘服务的智能手机。用户设备也可以是提供网络接入和大多数由智能手机提供的服务的平板计算机。用户设备使用诸如塞班操作***(SymbianOS)、苹果操作***(iPhone OS)、RIM的黑莓(Blackberry)、视窗操作***(Windows Mobile)、Linux、HP WebOS和安卓(Android)等操作***进行操作。屏幕可以是用于向移动设备输入数据的触摸屏,在这种情况下可以使用屏幕来代替完整的键盘。用户设备也可以保持全球定位坐标,配置信息或其他位置信息。
在一些实施例中,计算装置400可以包括服务器。服务器可以使用操作***(OS)软件进行操作。在一些实施例中,OS软件基于Linux软件内核并在服务器中运行特定应用程序,例如监视任务和提供协议栈。OS软件允许为控制和数据路径单独分配服务器资源。例如,某些分组加速卡和分组业务卡专用于执行路由或安全控制功能,而其他分组加速卡/分组业务卡专用于处理用户会话流。随着网络需求的变化,在一些实施例中可以动态部署硬件资源以满足要求。
第一探针放置机制-探针的平衡垂直取向
在一些实施例中,探针放置模块408可被配置为放置探针以平衡在探测位置处测量的垂直取向。更具体地,探针放置模块408可以被配置为将探针放置在2D图像中的一个或多个兴趣点上,使得在探针的位置处测量的垂直取向的直方图大致均匀。这种操作模式可以允许探针放置模块408提高具有两个自由度的对象的模型的精度。
在一些实施例中,垂直取向的直方图可以包括多个方向角度。每个方向角度可以对应于预定的取向范围。例如,垂直取向的直方图可以包括180份(bin),其中每份可以覆盖2度的角度范围。因此,垂直取向的直方图可以指示在兴趣点处测量的垂直取向的轮廓。在一些实施例中,垂直取向的直方图可以表示为连续分布。
在一些实施例中,探针放置模块408可以被配置为确定与兴趣点相关联的垂直取向的直方图。为此,探针放置模块408可以确定与每个兴趣点相关联的垂直取向。例如,探针放置模块408可以从IPD模块406模块接收代表在每个兴趣点处的垂直取向的信息。作为另一示例,探针放置模块408可以计算与每个兴趣点相关联的垂直取向。随后,探针放置模块408可以确定在多个兴趣点处测量的垂直取向的直方图。
图5示出了根据一些实施例的用于确定兴趣点的垂直取向的直方图的过程。
在步骤502中,IPD模块406可以确定图像中的兴趣点。在一些实施例中,兴趣点可以包括在图像中描绘的2D图案的边界。在一些情况下,IPD模块406可以使用边缘检测技术来识别2D图案的边界。例如,IPD模块406可以执行边缘检测操作以识别被认为对应于边缘的一组边缘点。每个点可以与位置矢量和垂直于底层结构的垂直矢量相关联。随后,IPD模块406可以链接边缘点以形成2D图案的相干边界。边缘检测技术可以包括例如canny边缘检测技术或Hough变换技术。边缘检测技术可以使用一个或多个边缘检测算子,包括例如Sobel算子、Kirsch算子、Prewitt算子、Gabor滤波器、Haar小波滤波器、可检测图像中的像素的值变化的任何其它滤波器(例如,图像的高频分量)和/或其任何组合。
在其他实施例中,兴趣点可以包括SIFT特征点。在这种情况下,IPD模块406可以执行SIFT操作以识别SIFT特征点。
在一些实施例中,兴趣点可以均匀地放置在图案的边界上。例如,任何两个相邻兴趣点之间的距离可以是基本相同的。在这种情况下,可以认为每个兴趣点与边界的相同弧长相关联。
一旦至少一个兴趣点可用,FDC模块414可以从IPD模块406接收至少一个兴趣点的位置。然后,FDC模块414可以迭代步骤504-508以生成在至少一个兴趣点处测量的垂直取向的直方图。
在步骤504中,FDC模块414可以选择至少一个兴趣点中的一个并且确定在所选择的兴趣点处的垂直取向。在一些实施例中,FDC模块414可以从IPD模块406接收垂直取向信息。在其他实施例中,FDC模块414本身可以确定在所选择的兴趣点处的垂直取向。例如,FDC模块414将具有兴趣点的梯度算子卷积以确定垂直取向。梯度算子可以包括Gabor滤波器、Haar小波滤波器、可导向滤波器、x方向梯度滤波器[-1,0,1],y方向梯度滤波器[-1,0,1]T和/或其任何组合。作为另一示例,FDC模块414通过例如确定在兴趣点下方的结构的梯度向量或确定连接结构的边界上的两个附近点的线的方向来计算与每个兴趣点相关联的垂直取向。
在步骤506中,FDC模块414可以将在所选择的兴趣点处的垂直取向的贡献添加至垂直取向的直方图。为此,FDC模块414可以在直方图中确定对应于在步骤504中确定的垂直取向的方向角度。例如,当垂直取向相对于x轴为3度时,FDC模块414可以确定垂直取向与相对于x轴覆盖2度和4度之间的取向的方向角度范围#1(bin#1)相关联的垂直取向。随后,FDC模块414可以向与垂直取向相关联的方向角度添加表决。例如,FDC模块414可以将方向角度的值增加1。作为另一示例,FDC模块414可以通过权重增加方向角度的值。权重可以取决于与兴趣点相关联的梯度向量。例如,权重可以取决于梯度向量的大小。
在步骤508中,FDC模块414可以确定是否存在FDC模块414对于垂直取向的直方图尚未考虑的任何兴趣点。如果是这样,则FDC模块414可以返回到步骤504并迭代步骤504-508,直到FDC模块414考虑所有兴趣点。如果FDC模块414已经考虑了所有兴趣点,则FDC模块414可以输出垂直取向的直方图。
图6A-6H示出了根据一些实施例的用于生成垂直取向的直方图的过程。在该图示中,可以将每个箭头602的中心视为对应于兴趣点,并且所有兴趣点的集合可以被认为包括边界102。如图6A所示,FDC模块414可以确定第一兴趣点602A与覆盖0和π/6的范围的方向角度相关联。因此,FDC模块414可以将与方向角度相关联的值增加1。如图6B-6H所示,FDC模块414可以对边界102上的每个兴趣点602执行该操作,并且生成垂直取向604的相应直方图。
在一些实施例中,TDC模块412可以被配置为生成探针的目标分布。探针的目标分布可以指示探针在一个或多个兴趣点上的期望放置。在一些实施例中,目标分布可以包括多个方向角度范围,其中每个方向角度范围与一个值相关联。在某些情况下,目标分布可以是均匀分布。实质上,均匀的目标分布表明指向特定取向的兴趣点上的探针数量应该与指向另一取向的兴趣点上的探针数量相同。这样,探针放置模块408可以平衡指向不同取向的探针的数量。
在某些情况下,目标分布可以是部分均匀的分布。例如,目标分布中的一些方向角度范围可以具有零值,并且剩余的方向角度范围可以具有相同的值。在这种情况下,当垂直取向604的直方图中的对应定方向角度范围具有零值时,目标分布的方向角度范围可以具有零值。
一旦FDC模块414确定垂直取向的直方图,并且TDC模块412确定目标分布,则PDM模块416可以确定探针的位置,使得探针在一个或多个兴趣点上的分布与目标分布匹配。
图7示出了根据一些实施例的用于确定探针的放置的过程。在步骤702中,PDM模块416可以使用垂直取向的直方图来确定兴趣点的哪一部分在指向特定取向的结构上。例如,当直方图具有180个方向角度范围时,PDM模块416可以使用直方图来确定指向具有2度分辨率的特定取向的兴趣点的比例。随后,PDM模块416可以基于对应于兴趣点的直方图区块的值来缩放兴趣点的弧长。更具体地,PDM模块416可以以与各个兴趣点相关联的直方图单元的值成反比的方式来调整单个兴趣点的弧长。
例如,参考图3所示的示例,与沿着长边缘106的兴趣点的数量相比,沿着短边缘104的兴趣点的数量可以是小的。因此,对应于短边缘104的直方图中的份的值可以小于对应于长边缘106的份的值。基于此,PDM模块416可以沿着短边缘104增加兴趣点(例如,边界部分)的弧长,并沿着长边缘106减小(或不改变)兴趣点的弧长。
图8示出了根据一些实施例的对边界的兴趣点的弧长的缩放。由于直方图表示垂直边缘上的兴趣点的数量小于水平边缘上的兴趣点的数量,所以PDM模块416可以增加在垂直边缘上的兴趣点的弧长。如箭头802所示,可以认为的是,增加沿着垂直边缘的边界的长度增加了兴趣点的弧长。
在步骤704中,PDM模块416可以以均匀的方式将探针放置在缩放的边界上。图9示出了根据一些实施例的在缩放边界上的探针的均匀放置。由于边界的垂直边缘已缩放,因此探针104在缩放的垂直边缘上的均匀放置可导致在垂直边缘和水平边缘上大致相同数量的探针104。
在一些实施例中,PDM模块416可以将探针均匀地放置在缩放的边界上。例如,PDM模块416从初始兴趣点开始(可以任意选择),并将第一探针置于初始兴趣点。随后,PDM模块416可以将第二探针放置在与第一探针隔开预定距离的兴趣点处。可以重复该过程,直到PDM模块416已经考虑了所有多个兴趣点。
在步骤706中,PDM模块416可以反转步骤702的缩放操作,从而也调整均匀地放置的探针之间的距离。图10示出了根据一些实施例的缩放边界的反向缩放。随着边界的反向缩放,两个相邻探针104之间的距离也相应地缩放。因此,与沿水平边缘的探针的密度相比,沿着垂直边缘的探针的密度变得更高。这样,如分布1002所示,PDM模块416可以平衡在探针位置处测量的垂直取向的直方图。垂直取向1002的平衡直方图通常表示从探针104导出的方向信息也是平衡的。
在一些实施例中,PDM模块416可以被配置为执行弧长缩放和反向缩放,而不考虑图形地且实际地拉伸兴趣点的弧长(例如,边界部分)。例如,PDM模块416可以被配置为增加或减少围绕兴趣点的底层坐标系的分辨率,以便有效地缩放兴趣点的弧长。
在一些实施例中,PDM模块416可以通过依次放置探针来合并步骤704和706。例如,PDM模块416可以确定应该分离两个探针的均匀距离。然后,PDM模块416在初始兴趣点(可以任意选择)开始,并将第一探针置于初始兴趣点。随后,PDM模块416可以基于垂直取向的直方图来确定与初始兴趣点相关联的弧长度。然后,PDM模块416可以按弧长的函数来缩放均匀距离,以确定第一探针与要与第一探针相邻放置的第二探针之间的缩放距离。随后,PDM模块416可以将第二探针放置在与第一探针的缩放距离分开的兴趣点处。可以重复该过程,直到PDM模块416已经考虑了所有多个兴趣点。这样,PDM模块416可以执行步骤704和706,而不考虑图形地缩放图案的边界。
在一些实施例中,FDC模块414可以在缩放在步骤702中兴趣点的弧长之前对垂直取向的直方图进行低通滤波操作。在缩放兴趣点的弧长之前执行低通滤波操作可能有多个益处。首先,低通滤波操作可以允许探针放置模块以从垂直取向的直方图中去除噪声。
第二,低通滤波可以解决除零问题。执行弧长缩放的PDM模块416通常将垂直取向的直方图中的方向角度范围的值用作分母。但是,可能会有一些方向角度范围的值为0,这可能会导致除零的问题。低通滤波操作可以通过有效地消除具有零值的方向角度范围来解决这个问题。
第三,低通滤波操作可以允许探针放置模块折叠一个特定的方向角度,当相邻方向角度被很好地表示时,该方向角度非常缺乏代表性。例如,垂直取向的直方图可以指示的是,图案具有有着垂直取向为89度的结构上的100个兴趣点,具有有着垂直取向为91度的结构上的100个兴趣点,但是在具有垂直取向为90度的结构上仅有1个兴趣点。在没有低通滤波的情况下,PDM模块416可能以垂直取向为90度的方式增加兴趣点周围的探针的数量,同时以垂直取向为89或91度的方式限制兴趣点周围的探针的数量。平衡垂直取向的直方图的这种激烈措施可能无法有效地从探针处捕获平衡信息,因为类似的方向可以捕获相似的信息。换句话说,指向垂直取向为89或91度的探针可以捕获与指向垂直取向为90度的探针基本上类似的信息。因此,增加指向度垂直取向为90度的探针的数量可能无法有效地在整个角度范围内捕获平衡信息,特别是当探针的总数受到限制时。
低通滤波可以解决这个问题,因为通过对垂直取向的直方图进行低通滤波,利用89度和91度的方向角度的值可以使90度的方向角度的值可以平滑(例如,平均)。因此,低通滤波操作可以使90度的方向角度的值大体上增加。这样,PDM模块416可以识别围绕90度的垂直取向的信息通过指向89度和91度的探针很好地被捕获。因此,PDM模块416不会大幅增加指向90度的探针的数量。
在一些实施例中,FDC模块414可以通过将直方图与内核进行卷积来执行低通滤波操作。在一些情况下,FDC模块414可被配置为执行循环卷积。例如,在循环卷积下,FDC模块414可以在直方图的取向域(例如0-2π)的限制处包裹内核。用于低通滤波操作的内核可以包括升余弦内核,余弦平方内核或可以平滑直方图的任何其他循环函数。FDC模块414可以控制内核的宽度来控制要在直方图上执行的平滑量。例如,内核的宽度可以覆盖2π/N,其中N可以是任何整数。
在一些实施例中,代替如图10所示沿着较短边缘增加探针的密度,PDM模块416可被配置为在兴趣点上初始化探针,并且确定与初始化探针相关联的权重。例如,当探针与短边缘相关联(例如,探针被放置在对应于具有小值的方向角度的边缘上时),PDM模块416可以增加与探针相关联的权重;当探针与长边缘相关联(例如,探针放置在对应于具有大值的方向角度的边缘上)时,PDM模块416可以减小与探针相关联的权重。随后,可以使用权重来改变对各种应用的探针的贡献,例如边界的对准。使用该技术,PDM模块416可以减少所需的计算能力以(1)增加沿着短边缘增加探针的密度,和以(2)匹配在对准期间增加的探针数量。然而,与使用图7中的过程相比,PDM模块416可以降低探针的分辨率。
第二探针放置机制–从分布采样探针
在某些实施例中,探针放置模块408可被配置为通过从探针的目标分布采样探针将探针放置在一个或多个兴趣点上。探针的目标分布可包括对应于与图案相关联的自由度的随机变量。例如,当与图案相关联的对象被允许进行二维移动(例如,平移运动)时,目标分布可以具有两个随机变量:x坐标和y坐标(或其他等效表示)。又例如,当与图案相关联的对象被允许进行平移运动和旋转运动时,目标分布可以具有三个随机变量:x坐标、y坐标和旋转向量(例如,方向)。又例如,当与图案相关联的对象被允许进行平移运动、旋转运动和缩放运动(例如,远离成像装置或朝向成像装置运动)时,目标分布可包括四个随机变量:x坐标、y坐标、旋转和缩放。
在某些实施例中,探针放置模块408可将目标分布表示为非参数分布。例如,探针放置模块408可将每个随机变量的域量化为多个仓,并且简单计算落入对应仓中的兴趣点的数量。在其它实施例中,探针放置模块408可将目标分布表示为参数分布。
在某些实施例中,探针放置模块408可使用TDC模块412来确定目标分布。TDC模块412可被配置为基于与兴趣点相关联的特征来确定探针的目标分布。例如,TDC模块412可基于例如兴趣点的坐标、与兴趣点相关联的垂直方向、兴趣点的旋转或兴趣点的缩放中的一个或多个来确定目标分布。
在某些实施例中,TDC模块412被配置为确定目标分布,使得从目标分布采样的垂直方向的分布基本平衡。例如,假设感兴趣的图案为水平矩形,如图1所示。这样的图案可以与如图11A所示的具有梯度向量分布的模型相关联。如图11A所示,与具有大的x方向分量的边缘相比,有相当多的边缘具有大的y方向分量。因此,图1中图案的目标分布应该使得从目标分布提取的探针将具有平衡的梯度分布,如图11B所示。
在某些实施例中,TDC模块412被配置为确定目标分布,使得目标分布具有与兴趣点分布类似的支持。这是重要的,因为在这些实施例中,探针放置模块408被配置为通过从现有的兴趣点进行重采样(例如,重要性采样)来采样探针。为此,TDC模块412被配置为对兴趣点分布和目标分布使用混合模型,如下所述。
在某些实施例中,TDC模块412将目标分布提供给PDM模块414,并且PDM模块414被配置为从目标分布提取样本以确定探针的位置。
在某些实施例中,PDM模块414可使用重要性采样技术从目标分布中提取样本。在其它实施例中,PDM模块414可被配置为确定图案的边界,并且沿图案的边界生成探针样本。当从目标分布中仅提取少量探针时,此技术将非常有用。该技术的优点在于,采样产生的探针组不受重采样过程中的随机波动的影响,并且可以保证探针分散在图案边界的整个几何范围内。
目标分布的计算
当图案具有两个自由度(例如,平移运动)时,TDC模块412可以确定满足以下关系的加权函数f(x,y):
并且
其中i表示第i个兴趣点。该优化程序的目的是得出函数f(x,y),其等价于(1)在兴趣点测量的梯度向量的x分量的加权求和与(2)在兴趣点测量的梯度向量的y分量的加权求和。在某些情况下,TDC模块412只能平衡梯度向量的大小。因此,xi可以表示在第i个兴趣点测量的梯度向量的x分量的绝对值;而yi可以表示在第i个兴趣点测量的梯度向量的y分量的绝对值。
一旦TDC模块412确定加权函数f(x,y),TDC模块412可以向PDM模块416提供加权函数f(x,y)。在某些实施例中,加权函数可以采用概率分布的形式,其中PDM模块416可以用于将探针置于一个或多个兴趣点上。由于在这种情况下PDM模块416使用加权函数f(x,y)作为从中进行采样探针的概率分布,所以必须将其限制为非负数,并且至少对于某些梯度分量(x,y)可以为正数。对于这样的实施例,术语“目标分布”将用于指代这里表示为f(x,y)的概率分布。
在某些实施例中,加权函数用于加权通过某种其它方式选择的一组现有探针,以便以最小化方式影响其相对重要性:
并且
当图案具有三个自由度(例如,平移运动和旋转运动)时,TDC模块412可将与旋转运动对应的旋转变量θ并入到目标分布中。TDC模块412可相对于原点定义旋转变量θ。
在某些实施例中,原点可以为多个兴趣点的质心。在某些实施例中,原点可以为旋转中心。旋转中心可以为旋转力矩最小的点。旋转中心对应于唯一的全局最小值,并且独立于基向量(例如,坐标系)的选择。因此,旋转中心为多个兴趣点固有的几何量。旋转中心可通过如下公式计算:
Cr=[∮uuT ds]-1X-1∮upTXuds
其中p为相对于参考点(可以是任意的)的参考向量,u为特定兴趣点处的单位法向量,X为交叉乘积矩阵。图11示出了根据某些实施例的参考矢量p和单位法线向量u之间的关系。在标准正交基中为了计算的目的,具有标准正交基的坐标系中的旋转中心可通过如下公式计算:
其中下标x和y表示对应向量的x和y分量。
一旦确定了原点,TDC模块412可使用第i个兴趣点的位置向量vi来确定旋转变量θ,该第i个兴趣点的位置向量vi是从第i个兴趣点的原点到中心的向量,以及在第i个兴趣点的中心的旋转单元向量图12示出了根据某些实施例的位置向量vi和单位旋转向量之间的关系。
在某些实施例中,旋转变量θi可以与位置向量vi的范数无关。旋转变量θi与位置向量vi的范数无关,可提供不会基于位置向量vi的范数来区分探针位置的目标分布。
旋转变量θi的这种表征可用于粗略校准具有大角度步长尺寸ω的形状。
在某些实施例中,旋转变量θi可以考虑位置向量vi的范数。由于TDC模块412可以强调远离原点的兴趣点的贡献,以增加角度精度。例如,TDC模块412可以如下定义第i个兴趣点的旋转变量θi
或,
旋转变量θi取决于位置向量vi的范数,可提供有利于将探针放置在远离原点的位置的目标分布。这样,目标分布可以使更多的探针在更远离原点的兴趣点进行采样。
在某些实施例中,TDC模块412可基于图案的形状来确定旋转变量θi的表征。例如,TDC模块412可以确定图案包括杠杆臂。在这种情况下,TDC模块412在确定用于旋转变量θ的表征中考虑到杠杆臂。又例如,TDC模块412可以确定图案包括同心圆或另一螺母内的螺母。在这种情况下,TDC模块412可以在确定用于旋转变量θ的表征中考虑到同心圆或另一螺母内的螺母。
一旦TDC模块412确定旋转变量的表征,TDC模块412可以使用所确定表征来表示每个兴趣点。继而,TDC模块412可被配置为基于兴趣点的表征通过找到满足以下关系的加权函数f(x,y,θ)来来确定目标分布:
其约束条件为:
其中i表示第i个兴趣点。
一旦TDC模块412确定目标分布f(x,y,θ),TDC模块412可向PDM模块416提供目标分布f(x,y,θ)。继而,PDM模块416可使用目标分布f(x,y,θ)作为概率分布来在图案上采样探针。
为了促进上述优化过程,探针放置模块408可以假设目标分布f(x,y,θ)的函数形式。
在某些实施例中,探针放置模块408可以假设目标分布f(x,y,θ)具有线性形式。虽然线性函数可能变为负值,但约束条件可以在所有兴趣点强制目标分布为正数。当目标分布f(x,y,θ)具有线性形式时,用于找到目标分布的优化程序可能是简单的。然而,由于线性函数的空间有限,可能难以找到满足所有约束条件的线性函数。
在某些实施例中,探针放置模块408可以假设目标分布f(x,y,θ)具有非线性形式。当目标分布f(x,y,θ)具有非线性形式时,用于找到目标分布的优化程序可能是复杂的。然而,由于非线性函数的空间很宽,可能更容易找到满足所有约束条件的非线性函数。
在某些实施例中,TDC模块412可将目标分布f(x,y,θ)设置为兴趣点分布pp(x,y,θ|参数)的倒数。在这种情况下,TDC模块412可从FDC模块414接收兴趣点分布pp(x,y,θ),并且通过计算倒数:来间接确定目标分布f(x,y,θ)。当目标分布f(x,y,θ)定义为兴趣点分布pp(x,y,θ)的倒数时,目标分布f(x,y,θ)将使更多的探针在与该兴趣点的其余部分相比不相似的兴趣点的位置处被采样。
FDC模块414可将兴趣点分布pp(x,y,θ)建模为混合模型。在某些实施例中,混合模型可包括高斯混合模型(GMM):
GMM具有四个参数:高斯分布数N,第k个高斯分布的权重αk,第k个高斯分布的平均向量以及第k个高斯分布的协方差矩阵在其它实施例中,混合模型可以包括三角分布的混合。三角分布的混合可以更快地计算,并且可以提供供给兴趣点的软分组的类似的期望特性。
在某些实施例中,FDC模块414可通过聚类兴趣点并确定最适合兴趣点的聚类数来估计GMM的高斯分布数N。例如,FDC模块414可对兴趣点执行k-均值聚类运算以估计高斯分布数N。
可通过给出兴趣点参数的极大似然来确定剩余的参数集在某些实施例中,FDC模块414可使用期望最大化技术来极大似然给出兴趣点的参数。为了执行期望最大化,FDC模块414可使用聚类步骤的结果来初始化参数集
如上所述,TDC模块412可通过简单倒置兴趣点分布pp(x,y,θ)来确定目标分布f(x,y,θ)。例如,当图案能够仅进行2D平移运动并且图案具有带圆角的矩形边界时,该目标分布f(x,y)可能导致PDM模块416主要围绕拐角位置进行采样。
为了解决这样的问题,在某些实施例中,TDC模块412可以变换兴趣点分布pp(x,y,θ)并且倒置变换的兴趣点分布以确定目标分布f(x,y,θ)。在前面描述的“第一探针放置机制”中,该变换采用将平滑核应用于pp(x,y,θ)的形式。
在某些情况下,TDC模块412可通过以不同于执行倒置的方式变换兴趣点分布来确定目标分布。一个这样的实施例,是通过找到满足某些条件的新权重αk来变换兴趣点分布在估计参数集时,TDC模块412有效执行兴趣点的软分组(例如,软分组成高斯分布)。现在,TDC模块412具有这些分组,TDC模块412可被配置为找到新的权重以分别重新加权每个组(例如,每个高斯分布)。
例如,TDC模块412可表示为在该表示中,TDC模块412可被配置为找到权重αk以最小化以下关系:
其约束条件为:
利用拉格朗日乘数,TDC模块412可将此问题简化为一组线性方程组:
其中k=1,..,N,并且,
TDC模块412可求解该组关于的线性方程,但是TDC模块412受到附加约束。上述线性方程组并不能阻止变换权重变为负值,也不能阻止将大的权重分配给从兴趣点的小的组估计的高斯函数(例如,其在兴趣点分布pp(x,y,θ)中的原始权重αk是很小的)。TDC模块412可通过编程方式应用这些约束条件。
此外,TDC模块412被配置为通过要求转换的权重大于预定义值来施加相邻探针之间的最小探针距离:
其中,为兴趣点分布pp(x,y,θ)中第k个高斯分布的权重;Nedges为用于估计兴趣点分布pp(x,y,θ)中的权重的兴趣点的数量;Nprobes为目标探针数(例如,64);以及dmax为兴趣点单位或任何预定单位中的探针之间的最大允许距离。上述方程可重新表示如下:
这种新的关系说明,混合分量k的边缘数与探针数的比值受dmax单位和1单位约束。因此,聚类k中相邻探针可以被放置得不比dmax单位远,但不近于1单位。
当线性方程组产生的结果至少一个权重αk违反约束时,TDC模块412可以遍历边界情况的所有可能组合,计算最优剩余权重并选择约束最小值。
例如,TDC模块412可以确定线性方程的所有可能的边界条件集(例如,每组边界条件可包括变换权重子集的边界条件。接着,对于每组边界条件,TDC模块412可以将权重子集的值固定为相应边界条件的值,并求解没有边界条件的剩余自由权重的线性方程组。这样,TDC模块412可通过在所有可能的边界条件集下的解中选择具有最小分数的解来确定给定约束条件的线性方程组的全局解。
在某些情况下,当GMM中的高斯分布数大于兴趣点所在的维数时,GMM中的某些参数可以是线性相关的。例如,当高斯分布数大于兴趣点所在的维数时,高斯分布的平均向量可能会变得线性相关。
为了解决这个问题,TDC模块412可以配置为规范GMM的参数,例如,使用吉洪诺夫(Tikhonov)正则化。最后,TDC模块412可以重新排列优化问题以最小化以下关系:
新的拉格朗日公式力图量化兴趣点分布pp(x,y,θ)和目标分布之间的转化权重的变化,受制于约束条件,平均向量的(x,y,θ)分量是平衡的且转化权重的总和为1。
TDC模块412可以直接找到满足上述拉格朗日关系的权重。然而,和之前一样,这种关系并不能防止权重变成负数,或者防止大的权重分配到从兴趣点的小组估算的高斯(例如,在兴趣点分布pp(x,y,θ)中其原权重αk是小的)。TDC模块412可以以编程方式应用这些约束条件,如上所述。这从数学关系上来说是可行的因为上述拉格朗日关系在中是二次的,因此,如果其中一个权重是负的,那么最佳值应该在边界条件的一个(或多个)中。
总之,为了基于兴趣点分布pp(x,y,θ)的参数来识别目标分布的参数,TDC模块412可以使用如下过程:
1.定义
2.如果N<=NDim,其中NDim是源数据的维度,使用以下等式求解αk,{k=1…N}:
如果该***是单数,则TDC模块412可以使用正则化求解该***。例如,如果TDC模块412尝试求解矩阵方程:但是是单数,那么TDC模块412可以反过来求解 这样的话,TDC模块412可以最小化解向量L2的范数之和,其反过来可以防止具有大的正的和负的αk(求和)的解。
3.如果N>NDim,使用以下公式求解αk,{k=1…N}:
4.检查步骤2或步骤3的解是否符合以下约束条件:
5.如果该解落在权重的有效范围之外,那么对于所有可能的边界条件的集合(例如约束条件),使用步骤2或3的修改的版本来找到非约束的解向量在整个搜索过程中,TDC模块412可以保持跟踪最小值,
以及如果以前的关系大约0,那么TDC模块412可以使用以前的关系来选择解向量如果以前的关系不是大于0,那么TDC模块412可以使用之后的关系来选择解向量
从目标分布中采样探针
一旦TDC模块412确定转化的兴趣点分布那么TDC模块412可以将转化的兴趣点分布(或者兴趣点分布的逆转化)提供至PDM模块416。随后,PDM模块416可以从兴趣点分布的逆转化中采样以确定探针在图像中的一个或多个兴趣点的位置。
直观地说,TDC模块412配置为选择转化的兴趣点分布从而使得x、y、和θ相对于转化的兴趣点分布的值尽可能相似:
重要性采样允许PDM模块416通过对来自另一不同分布的样本进行加权,条件是该样本具有相似的支持,从目标分布中抽取样本。换言之:
其中Sprobes是探针的集合,SIP是兴趣点的集合。因此,PDM模块416可以使用该关系对从兴趣点分布抽取的样本进行加权,通过:
因而,当PDM模块416通过沿着图案边界的每个兴趣点放置探针来抽取探针时,那么PDM模块416可以按上述比例对探针加权。
在一些实施例中,PDM模块416可以通过(1)沿着图案边界将相邻的探针按照上述比例的倒数的距离间隔开来(2)补偿所需数量的探针和初始边界的数量。
因此,在一些实施例中,从兴趣点分布的逆转化中采样等同于要求相邻的探针以如下量来间隔开:
其中Nedges表示用于确定兴趣点分布的参数的兴趣点的数量,以及Nprobes表示探针的数量。这样的话,沿着低于限额的兴趣点的探针的厚度会增加。
为了要求相邻的探针间隔开来,PDM模块416可以将探针循序地放置在一个或多个兴趣点上。例如,PDM模块416在初始兴趣点(其可以随意选择)开始并在初始兴趣点放置第一个探针。然后PDM模块416可以使用上述关系确定第一个探针和邻近第一个探针放置的第二个探针之间的距离。随后,PDM模块416可以在以确定的距离与第一个探针分开的兴趣点放置第二个探针。可以重复该过程直到PDM模块416已经考虑了所有用于确定兴趣点分布的兴趣点。
要求以一定量将邻近的探针间隔开来可以解释为修改(例如延伸)邻近的兴趣点的弧长。如前所述,兴趣点可以被认为是放置在该兴趣点的中心的初始化的探针的表示。因此,要求以一定量将邻近的探针间隔开来可以解释为修改邻近的兴趣点中心之间的弧长。因而,用于放置探针的第一机制(图5-10示出)和用于放置探针的第二机制(图11-12示出)具有相似的结果。
虽然这里的大部分讨论集中在这样的情况下,即,由混合模型跨越的概率空间包括x方向分量、y方向分量和旋转向量,可以扩展本公开的技术以增加由混合模型跨越的概率空间的维度。例如,探针放置模块408可以配置为平衡四维空间中的信息:
其中φ表示范围。虽然优化步骤可能会更复杂一点,探针放置模块408可以使用如三维空间场景相同的技术。例如,探针放置模块408可以配置为最小化:
约束条件:
使用拉格朗日乘子减少到一组线性方程(如前所述)。探针放置模块408可以配置为确保权重不会变成负数或使得探针高度集中在几个边缘位置。最后,正如在三维空间的场景中,探针放置模块408可以配置为以编程方式应用边界约束条件。
正如在三维空间的场景中,探针放置模块408可以应用Tikhonov正则化,当平均向量集不是线性独立的并且当混合模型(N)中分量的数量超过维度的数量(现在4):
图13根据一些实施例概述了在一个或多个图案的兴趣点上对探针进行采样的过程。在图13中,探针放置模块408将目标分布表示为参数分布。然而,本领域技术人员可以修改图13的过程以适应探针放置模块408将目标分布表示为非参数分布的情况。
在步骤1302,IPD模块406可以确定图像中的兴趣点。在一些情况下,IPD模块406可以使用边缘检测技术以验证兴趣点。边缘检测技术包括,例如canny边缘检测技术或者Hough变换技术。边缘检测技术可以使用一个或多个边缘检测算子,包括,例如,Sobel算子、Kirsch算子、Prewitt算子、加博滤波器、Haar小滤波器、或者任何其他可以检测图像中的像素值变化(例如,图像的高频分量)的滤波器、和/或上述组合。
在一些实施例中,IPD模块406可以将兴趣点的位置信息提供至FDC模块414。FDC模块414可以使用表示与兴趣点相关联的自由度的变量来表示每个兴趣点。例如,当已知兴趣点在两个维度上移动时,可以将兴趣点表示为对应于兴趣点的(x,y)梯度分量的二维向量。作为另一个示例,当已知兴趣点在三个维度上移动时,可以将兴趣点表示为对应于兴趣点的(x,y)梯度分量和兴趣点的旋转方向(或其函数)的三维向量。
在步骤1304,FDC模块414可以配置为聚类兴趣点。例如,FDC模块414可以通过聚类在它们的表示中在欧式(Euclidian)距离中彼此接近的兴趣点来聚类兴趣点。在一些实施例中,FDC模块414可以使用K均值聚类技术、均值漂移聚类技术、“利用层次方法的平衡迭代归约和聚类”(BIRCH)聚类技术、或者任何其他合适的能够对具有相似特征的兴趣点分组的聚类技术。
在步骤1306,FDC模块414可以从步骤1304基于聚类确定兴趣点的分布。例如,FDC模块414可以配置为使用高斯混合模型表示兴趣点的分布。在这种情况下,FDC模块414可以配置为从聚类步骤使用聚类的数量确定用于高斯混合模型的高斯分布数。而且,FDC模块414可以配置为执行期望最大化操作以确定用于高斯混合模型的参数集的最大似然估计。这样的话,FDC模块414可以确定兴趣点分布FDC模块414可以将兴趣点分布提供至TDC模块412。
在步骤1308,TDC模块412可以从兴趣点分布来确定转化的兴趣点分布最后,TDC模块412可以进行约束优化,正如上文所讨论的,以重新计算用于转化的兴趣点分布的转化的权重在一些情况下,TDC模块412可以通过反相转化的兴趣点分布来计算目标探针分布。随后,TDC模块412可以将转化的兴趣点分布(或者兴趣点分布的逆转化)提供至PDM模块416。
在步骤1310,PDM模块416配置为采样目标分布(例如,兴趣点分布的逆转化)以确定一个或多个兴趣点上探针的位置。在一些情况下,PDM模块416可以使用如下关系来确定两个邻近的探针之间的间隔:
PDM模块416可以使用上述关系来确定或者修改所有邻近的兴趣点的中心之间的距离(或者邻近的兴趣点的子集的中心之间)。
图14A根据一些实施例示出了使用图13中所示的过程将探针放置在矩形上。假设该矩形具有两个自由度(例如,假设矩形只进行平移运动)。在这种情况下,与矩形的长边相比,PDM模块416可以沿着矩形的短边增加探针的密度。该结果类似于平衡垂直取向的直方图的结果,正如图5-10所讨论的。
图14B根据一些实施例示出了使用图13所示的过程将探针放置在圆形上。假设该图案具有两个自由度(例如,假设该图案只进行平移运动)。在这种情况下,PDM模块416通过在圆形上稍微增加更多的y方向的探针来补偿杠杆臂上额外的x方向的探针。
图15A根据一些实施例示出了使用图13所示的过程将探针放置在矩形上。假设该矩形具有三个自由度(例如,假设该矩形进行平移运动和旋转运动)并且由给定旋转向量。在这种情况下,与矩形的长边相比,PDM模块416可以沿着矩形的短边增加探针的密度,如图14A所示。然而,PDM模块416还可以沿着长边修改探针的距离,增加进一步远离矩形原点的探针的数量(例如,矩形的质心)。这是因为旋转变量θ取决于矩形的原点和探针之间的距离。
图15B根据一些实施例示出了使用图13中所示的过程将探针放置在圆形上。假设该图案具有三个自由度(例如,假设该图案进行平移运动和旋转运动)。在这种情况下,PDM模块416可以沿着杠杆增加探针的密度,因为旋转变量θ取决于矩形的原点和探针之间的距离。然而,PDM模块416围绕圆形边界减少探针的数量。特别是,PDM模块416沿着靠近水平轴的边界减少探针的数量。在这种情况下,杠杆臂边缘包括所有旋转的自由度对准信息从而被给予更多的探针。这些探针也可以用于在x方向对准但是完全缺乏y方向信息。因此,PDM模块416向圆形的顶部和底部,而不是左边和右边,添加更多的探针以向模型引入y方向的信息。
图16A-16B根据一些实施例示出了使用图13示出的过程将探针放置在带孔的图案上。当边界完全在另一边界内时(例如,同心圆或者一螺母形在另一螺母形内),探针放置模块408可以控制是否应当给予其中一个边界更多放置探针的优先选择,且如果是,应当给予哪一个边界更多的优先选择。在一些实施例中,探针放置模块408可以在旋转变量θ中对这样的优先选择进行编码。
图17A-17C根据一些实施例示出了旋转变量θ的表示如何改变探针的放置。图17A对应于,当旋转变量θ独立于位置向量的规范时探针的放置;图17B对应于,当旋转变量θ依赖于位置向量||vi||的规范,如下:时探针的放置,其以线性方式合并半径以对被认为是角动量的量进行建模;以及图17C对应于,当旋转变量θ依赖于位置向量||vi||的规范,如下:时探针的放置,其使用正方形来形成类似于角惯性矩的量。根据不同的应用,这些公式中的其中一个可以是更优选的。按半径项的顺序的增加趋向于将角度分量最高的探针推到图案的最外部区域。当在图像中搜索图案时选择应用探针的间距时,会产生影响。还会影响角对准精度。
图18A-18B根据一些实施例示出了使用图13所示的过程将探针放置在细长图案上。在图18A中,探针放置模块408假设图案具有三个自由度(例如,假设图案进行平移运动和旋转运动);在图18B中,探针放置模块408假设图案具有四个自由度(例如,假设图案进行平移运动、旋转运动、和朝向/远离成像装置的运动)。
这些附图示出了一个有趣的情况,因为兴趣点分布中的四个高斯分布具有相依的平均向量:在这种情况下,不规则的优化可以提供其中权重可以具有大的值的解(例如,)但最多可添加一个。为了解决这一奇点,TDC模块412可以规范优化问题。
探针放置模块408可以用于各种应用。例如,探针放置模块408可以用于对准和检查图案,例如电子装置。而且,探针放置模块408可以用于机器人引导。例如,当机器人配置为拾取一长的、瘦的电池时,探针放置模块408可以配置为放置探针以提高表示瘦的电池的模型的精确度。
机器视觉***还可以配置为确定3D图像中存在或不存在一个或多个预定图案的示例,以及确定每个找到的示例的位置。这些信息可以用于后续检查(或其他)操作中以搜索缺陷和/或执行其他操作,例如部分拒绝。
可以使用基于各种技术的3D相机来获取3D图像-例如,激光位移传感器(分析器)、立体照相机、声呐定位仪、激光或激光雷达测距相机、以及各种其他有源或无源距离传感技术。这样的相机可以产生深度图像,其中可以产生图像像素阵列(通常表征为沿着正交的x轴和y轴的位置),其也包含用于每个像素的第三(高度)尺寸(通常以垂直于x-y平面的z轴表征)。或者,例如,这样的相机可以生成成像目标的点云表示。点云是空间中3D点的集合,其中每个点i可以,例如,表示为(xi,yi,zi)。点云可以表示完整的3D对象,其包括对象的背面和边、顶部和底部。3D点(xi,yi,zi)可以表示空间位置,其中该对象是相机可见的。在该表示中,空位可以由缺点表示。
通过比较,在一些实施例中,3D深度图像表示Z(x,y)与2D图像表示I(x,y)类似,其中深度或高度Z取代了亮度/强度I在图像中的位置(x,y)。在一些实施例中,由于只有一个深度与任意点位置(x,y)相关联,所以深度图像可以唯一地表示直接面向照相机的对象的正面。尽管在一些实施例中能够表示对象的背面、侧面、顶面或底面,但深度图像通常不表示对象的背面、侧面、顶面或底面。深度图像通常在每个位置(x,y)具有数据,即使相机在这些位置处没有信息,但是也可以在任何点位置(x,y)处表示数据不存在。可以以本领域技术人员清楚的方式将深度图像转换成3D点云。
为了确定在3D图像上的预定3D图案的一个或多个实例是否存在,机器视觉***可以使用模型表示发现的3D图案。机器视觉***可以由一个或多个3D训练图像或者一个或多个由包含要定位和/或检查的3D图案的示例的几何描述而合成的3D图像,而生成用于3D图案的模型。一旦模型可用,机器视觉***可以将模型与适当姿态集合中的每一个3D图像进行比较,计算每个姿态的匹配分数,并且确定与匹配分数中的局部最大值对应的候选姿态。机器视觉***可以将匹配分数高于合适阈值的候选姿态作为3D图像中的3D图案的实例。
定位3D图案的过程发生在多维空间内,该多维空间可以包括但不限于x-y-z坐标(也称为平移)、位置、方向、尺寸和/或旋转自由度(例如,俯仰、滚动和/或偏航)。
模型可以包括被称为3D探针的数据元素的组。每个3D探针表示一相对位置,在该相对位置下以给定姿态在3D图像中进行某些测量和测试,每个这样的测试提供3D图案以相关姿态存在的证据。3D探针可以以基本垂直于下方3D图案的结构(例如表面)的方式被放置。
在训练阶段期间,机器视觉***可以以均匀的方式在3D图案的表面上放置3D探针例如,在一些实施例中,机器视觉***可以被配置为在3D图案的表面放置3D探针,以使得对于所有成对的相邻3D探针,相邻的3D探针之间的距离大致相等。该策略,以下称为“均匀放置策略”,可以有效地建模具有均衡的取向分布的3D图案(例如,具有正交面的3D图案和指向各种取向的表面的比例相似)。例如,均匀放置策略可以用于建模立体3D图案,因为指向不同方向(例如上、下、左、右)的3D探针的数量在3D图像的3D图案的每个边缘上大致相同,这可以得到关于3D图案的位置和方向的准确信息。
遗憾的是,在使用不平衡取向分布(例如,表面法线在所有考虑的自由度中不提供对准信息的图案)的3D图案的建模中,均匀放置策略可能会无效。例如,在对准具有细长和不规则的管形状的3D图案时,均匀放置策略通常无效。图19显示具有细长和不规则的管形状的3D图案和均匀地放置在3D图案上的3D探针。由于边界1902具有细长和不规则的管形状,根据该均匀放置策略,大部分的3D探针1904将被放置在长管1906的表面上。只有少量的3D探针1904将放置在短管1910上。并且几乎没有探针将被放置在靠近长管的端部。由于靠近长管1908的端部的三维细长和不规则的管形状的数量非常少,难以基于3D探针以测定长管沿其中心轴的位置。进一步地,由于在相交的短管1910上的探针的数量相对较少,难以测定关于该轴的旋转角度。而且,如果3D探针被均匀地放置在对象的表面,则在所有自由度上对准对象的能力将不平等。例如,在图19中3D探针1904在管上的平均分布,在纵向和在相对于圆柱体中心轴的旋转方向上提供了较少的信息。这可能使当提供对准一个特定自由度的信息量相对较少时,对准算法更容易出错。
本文描述的技术可以提供自动化的探针放置模块,该模块为在三维空间中的3D图案上放置3D探针。在一些实施例中,探针放置可以是分布式的,以平衡器在x、y和z上的分辨能力。在一些实施例中,三个平移自由度和三个旋转自由度联合平衡。另外,在一些实施例中,在一些实施例中,在最大化最小旋转分量的同时x、y和z是平衡的。探针放置模块被配置为在3D图像的兴趣点上放置3D探针,从而使得3D探针可以准确地表示在3D图像中描述的3D图案。探针放置模块可以被配置为防止3D探针,以使得3D探针可以提取在与3D图案移动相关的所有自由度上的平衡信息,这将提高从3D探针生成的模型的精度。例如,当已知与3D图案相关的对象在三维空间中移动,探针放置模块可以放置3D探针,以便3D探针可以提取在三维空间中的平衡信息。探针放置模块还可以考虑3D图案的形状,以使得3D探针可以提取平衡信息,而不考虑3D图案的形状。这与可能提取不平衡信息的技术相反,例如当3D探针被均匀地放置在图19所示的3D图案的表面上时,相比沿长轴,在正交于长轴的自由度上提取更多信息。结合下面的描述使用各种示例性附图和示例(例如,基于图19所示的3D图案)。本领域技术人员将理解这是为了示例性目的,并且可以使用本文所述的技术来处理任何3D图像。
图20表示了根据一些实施例,用于在3D图像上的兴趣点处放置3D探针的高水平过程。兴趣点可以表示3D探针的候选位置。例如,探针放置模块408可以被配置为选择在一图像中的兴趣点的子集,并在选定的兴趣点的子集上放置3D探针。
在步骤2001中,探针放置模块408可以被配置为生成多个与来自3D图像的第一多个兴趣点相关的特征。例如,探针放置模块408可以从兴趣点检测模块406接收由第一多个兴趣点所代表的在3D图像上的3D图案的表面。探针放置模块408可以被配置为从3D图像生成多个与来自3D图像的第一多个兴趣点相关的特征。
在步骤2002中,探针放置模块408可以至少部分地基于该多个特征,从第一多个兴趣点中选择第二个多个兴趣点。在一些实施例中,选择流程的目标是针对第二多个兴趣点展示关于3D对准***的一些期望的整体性质。在一些实施例中,探针放置模块408可以使用本文进一步描述的统计模型拟合和蒙特卡洛取样技术来选择第二多个点。但是,也可以使用其他选择技术,例如将第一多个点分类成与其特征相关的仓(bin),然后以均匀方式从这些仓中选择点。
在步骤2003中,探针放置模块408可以至少部分地基于第二多个兴趣点来确定多个3D探针的放置。例如,探针放置模块408可以在第二多个兴趣点中的每一个上放置探针。或者,在改进实施例中,例如探针放置模块可以通过在来自第二多个兴趣点的相邻兴趣点之间***的方式放置探针。
在一些实施例中,为了允许在步骤2002中的点选择流程选择实现期望的整体性质的第二多个兴趣点,可以使用在步骤2001中生成的特征。在一些实施例中,对于每个兴趣点,其特征应当是其对期望的整体性质贡献的描述。例如,如果算法尝试平衡在三个平移自由度中的每一个中对准3D图案的能力,则对于每个点的特征向量可能具有三个分量,其中每个分量将表示点对对准算法在三个平移自由度中的每一个中分辨3D图案的能力的贡献。在另一个示例中,期望的整体性质可以是在保持在每个平移自由度中对准的能力的同时,最大化在单个特定旋转自由度中的分辨能力。在这种情况下,特征将包括描述每个点对在特定旋转自由度中的分辨能力的贡献的信息。
在一些实施例中,可以根据包括图21a所示步骤的方法来执行图20的特征生成步骤2001。在一些实施例中,根据期望的整体性质的选择,在步骤2001中计算的所选特征将改变。此外,这些特征可以以多种不同的方式来量化,并且可以使用多种不同的方法来计算。
例如,在一些实施例中,特征生成过程可以使用兴趣点的位置和/或表面法线方向来量化其对整体性质的贡献。在特定实施例中,整体性质可能是确保三个平移自由度中的对准能力相同。为了实现这一点,在一些实施例中,步骤2004将包括计算每个点的表面法线,步骤2005将采用这些特征向量并计算欧几里德坐标系的旋转(可能使用主成分分析法),并且步骤2006将投影多个表面法线到定义新坐标系的单位矢量上,以产生多个特征向量的值。
在另一个实施例中,可以选择整体性质以确保三个旋转坐标系中的每个之间的对准能力差异的最小化。为了实现这一点,特征向量可以包括三个分量,其中的每个分量将被设置为等于兴趣点的表面法线在由3D图案的旋转坐标系定义的旋转单元向量之一上的投影。因此,在该示例中,步骤2005将包括计算3D图案的旋转中心和旋转轴。
在改进实施例中,量化点在与表面法线方向正交的方向上的贡献可能会有用。当对准平行于待量化的平面时,这可以允许探针位置靠***面边缘(与其中心相反)的比较有用性。相比之下,在一些实施例中,简单地使用表面法向矢量不提供用于在平行于平面表面的自由度上对准的信息。在改进示例中,探针在图19所示的管的端部的放置将允许在沿长轴的方向上对准,但放置在中心的探针可能在该方向上不提供信息,因此在这种情况下,特征生成过程可能需要量化一个点与管道末端的距离和指向最近的边缘或端的方向。为此,在一些实施例中,可以根据图21b所示的步骤执行特征生成步骤2001。
在步骤2101中,探针放置模块408在每个兴趣点处将所有相邻点放置在以该点为中心的N×N×N区域内。例如,点pcenter可以在以点pcenter为中心的N×N×N区域内具有四个点p1、p2、p3和p4。
在步骤2102中,探针放置模块408将这些相邻点投影在与该点的表面法线正交的表面平面上。例如,以点pcenter为中心的N×N×N区域内的点p1、p2、p3和p4可以投影到与该点的表面法线正交的表面平面上。
在步骤2103中,探针放置模块408使表面平面正则化为像素网格,使得每个像素的值等于来自像素中心的平面的表面深度。为了做到这一点,探针放置模块408查找从单位正方形到最近的四个周围投影点(任意间隔)的二维双线性映射,然后如图23A所示,使用该映射的逆来将像素网格中心点放置在单位正方形中。在这一点上,使用该逆映射的中心点的双线性插值可以用于查找像素网格位置的深度值。如图23A所示,通过双线性***点pcenter t、p1t、p2t、p3t和p4t的映射中心点得到点pcenter、p1、p2、p3和p4。特别地,如果pi=(xi,yi),则可以根据8个系数参数化映射,a1、a2、a3、a4、b1、b2、b3、b4
xi=a1+a2ui+a3vi+a4uivi
yi=b1+b2ui+b3vi+b4uivi
其中u和v是pi t=(ui,vi)的组成部分。以矩阵的形式:
有两组线性方程可以解映射参数。一旦获得从单位正方形到点集合的映射,则计算反映射以查找映射到单位正方形的像素网格中心的位置。逆映射是非线性的,首先定义:
α=a4b3-a3b4
β=a4b1-a1b4+a2b3-a3b2+xcenterb4-ycentera4
γ=a2b1-a1b2+xcenterb2-ycentera2
接着,
继续步骤2103,获得了pcenter t的位置,现在可以使用该位置在四个位置p1、p2、p3和p4中的每一个处的深度值之间进行双线性插值,以获得用于网格中心的像素的深度值。
在步骤2103中,如果周围点不可用(例如,因为该点可能在表面的边缘),则可以使用等于N的深度值。
由此,步骤2103可以产生像素网格正则化的深度图。例如,可以使用本文所述的技术来生成图22所示的深度图2201,用于在圆柱体2203的可见地平线附近的区域2202。
在步骤2104中,探针放置模块408从深度图中提取方向信息。探针放置模块408可以通过使用以下给出的第二时刻查找主轴2301的角度(例如,如图23B所示)来执行该步骤:
δi,j=N-di,j
θ=atan2(2IXY,IYY-IXX)
在步骤2105中,如图24所示,在得到主轴(例如,图23B所示的主轴2301)的情况下,探针放置模块408沿着每个轴执行规则间隔采样。图24用线2401表示沿主轴的的***深度,并且用线2402表示沿短轴的***深度。然后利用ad-hoc公式对采样进行评分,以给出用来量化沿着轴的分辨率(其中分辨率可以指向该方向上的对准信息量,例如,位于平面的中心处的点在切线平面所包含的任何方向上都没有有用的对准信息,而位于表面边缘的点在与边缘正交的方向上产生很多信息)的数值。例如,继续前面(在步骤2103中)描述的示例,主轴将从左到导向右。沿该轴的采样值将显示从切线平面向左手侧的大的偏离,其中该左手侧指示边缘位置。为了在该示例中评分分辨率,探针放置模块408可以被配置为将选择到中心点的左侧的绝对深度值的平均值和到在中心点的右侧的深度值的平均值的最大值。因此,如果我们考虑沿其中一个轴***的绝对深度,即di,则我们在所考虑的轴的方向上定义分辨率,
在步骤2106中,探针放置模块408将2-d单位向量(在主轴方向上)映射回3-d域。探针放置模块408可以被配置为通过按照前一步骤2016中计算出的分辨率来第一次测量这些矢量(例如,由它们各自的分辨率乘以2-d单位矢量)来执行该步骤。该实施例的最终结果示于图25,其中在每个点2501处具有表面法线矢量的线2502以及切线平面中的两个正交线2503,该两个正交线2503的长度表示分辨率的主要分量和次要分量。
继续上述过程,对于每个点,现在存在三个向量u0、u1和u2,其大小表示该点对在空间中分辨对象能力的贡献。该示例中的过程的总体目标是选择这些点的一个子集,这将允许配准过程在平移度自由度和/或旋转自由度的每个中以相同的确定和鲁棒性来分辨3D对象。为此,探针放置模块408可被配置为构建两个概率分布。第一个是对该点集的拟合,并表示它们在数据集中的相对频率。第二个“目标”分布以以下方式构造:模拟具有期望属性的点集的相对频率。例如,该属性可以是组合的一点集在三个平移自由度中给出相等的分辨率。在另一个实施例中,属性可能是改善在旋转自由度上分辨的能力,同时最大限度地减少平移自由度的分辨率之间的差异。
从分布采样探针
在一些实施例中,探针放置模块408可被配置为通过从探针的目标分布中采样探针将探针放置在一个或多个兴趣点上。探针的目标分布可以包括对应于与图案相关联的自由度的随机变量。例如,当与图案相关联的对象被允许在三个维度上移动(例如,平移运动)时,目标分布可以具有三个随机变量:x坐标、y坐标和z坐标(或其他等效表示)。作为另一示例,当与图案相关联的3D对象被允许进行平移运动和旋转运动时,目标分布将具有六个随机变量:x坐标、y坐标、z坐标和三个用于旋转(例如,俯仰θp、滚动θr和偏航θy)。
在一些实施例中,探针放置模块408可以使用TDC模块412来确定目标分布。TDC模块412可以被配置为基于与兴趣点相关联的特征来确定探针的目标分布。例如,TDC模块412可以基于例如兴趣点的坐标、与兴趣点相关联的垂直取向和/或兴趣点的旋转中的一个或多个来确定目标分布。
在一些实施例中,TDC模块412被配置为确定目标分布,使得从目标分布采样的垂直取向的分布基本平衡。例如,假设兴趣对象是细管。与这样的对象的表面均匀分布的一点集在其横截面的平面中,相对于纵向(例如,沿其中心轴线)包含更多的分辨信息。因此,对象的目标分布应该为从目标分布绘制的探针组合将在纵向方向上相比在横截面方向上具有更平等的分辨信息。这样的组中的大部分探针位置将被定位为朝向管的两端。
在一些实施例中,TDC模块412被配置为确定目标分布,以使得目标分布具有与兴趣点分布相似的支持。这可能是重要的,因为例如在这些实施例中,探针放置模块408可以被配置为通过从现有的兴趣点再采样(例如,重要性采样)来对探针进行采样。为此,TDC模块412可以被配置为使用如下所述的用于兴趣点分布和目标分布两者的混合模型。
在一些实施例中,TDC模块412将向PDM模块416提供目标分配,而PDM模块416被配置为从目标分布中抽样,以确定探针的位置。
在一些实施例中,FDC 414模块被配置为将x、y、z随机变量变换到新的坐标空间。为此,在一些实施例中,FDC 414使用PCA查找主要的3D空间轴,而无需用平均中心化。这决定了用于本例中该过程的剩余部分的3D空间坐标系。该示例中的坐标系被表示为(x,y,z),它是表示为(x,y,z)的原始笛卡尔坐标系的旋转,从而使得在笛卡尔坐标中的新坐标系的单位矢量为在本示例中,FDC 414可能不被配置为使用平均中心化,因为可能不需要在分辨力的最大方差的方向上选择轴。相反,在一些实施例中,可能需要在最大和最小分辨能力的方向上对准轴(例如,之后选择平衡的探针组)。换句话说,该示例中的FDC 414可以被配置为查找坐标系的旋转,该坐标系的第一轴沿对象的最大分辨力方向(主方向)定向。根据定义,其他两个轴之一将沿着最小分辨力的方向,因此探针放置模块408稍后将能够选择倾向于在该方向上增加总分辨率的探针位置(例如,以在主要方向上分解为代价)。在一些其它实施例中,该过程也可以以平均数中间值的处理的方式进行。
在一些实施例中,一旦探针放置模块408确定将定义概率分布的轴,探针放置模块408在拟合到分布之前将点投射到该空间上。例如,对于单个点,其特征向量将是:
为了与上述2D示例的一致性,xi可以被认为是对x方向上分辨对象能力的贡献的度量,yi是y方向上的度量,zi是z方向上的度量。
目标分布计算
在一些实施例中,当使用三个自由度(例如,在三个维度上的平移运动)对准对象时,TDC模块412可能需要确定满足以下的加权函数f(x,y,z):
以及:
其中i索引第i个兴趣点。这个优化过程的目标是识别一个函数f(x,y,z),该函数等于(1)在兴趣点处测量的特征向量x分量的加权和,(2)在兴趣点处测量的特征向量y分量的加权和,以及(3)在兴趣点处测量的特征向量z分量的加权和。
在一些实施例中,一旦TDC模块412确定加权函数f(x,y,z),TDC模块412可以向PDM模块416提供加权函数f(x,y,z)。
在一些实施例中,加权函数可以采用PDM模块416可以用于将探针置于一个或多个兴趣点上的概率分布的形式。
由于PDM模块416在这种情况下使用加权函数f(x,y,z)作为对采样探针的概率分布,所以必须将其限制为非负,且至少在一些支持的域为正。
目标分布可以是此处表示为f(x,y,z)的概率分布。
在一些实施例中,加权函数用于加权通过一些其他方式选择的一组现有探针,以便以最小化方式影响其相对重要性:
以及:
在一些实施例中,当图案具有六个自由度(例如,在三个维上的平移运动和旋转运动)时,TDC模块412可以将与旋转运动对应的三个旋转变量θp、θr、和θy并入到目标分布中。TDC模块412可以相对于原点和轴组来定义旋转变量θp、θr和θy
在一些实施例中,为了将平衡技术应用于三个旋转自由度,查找中心和各旋转轴。例如,探针放置模块408可以被配置为通过查找使法线矢量的旋转力矩的总和最小化的点,然后使用相同的标准来找到各个轴来找到旋转中心。
例如,如图26所示,在一些实施例中,为了找到旋转中心c,探针放置模块408找到使点云ni中的所有表面法向量的旋转力矩最小化的点。用于单个法向量ni的关于点c的转动矩由下式给出:
[ni×(pi-c)]
由此,为了查找旋转中心,这些技术可以最小化:
设置:
可以重写上一个方程:
在关于c进行微分和设置为零后,其产生旋转中心的以下解:
现在,利用旋转中心c,由a=bt+c给出的关于旋转轴的法向量ni的力矩由下式给出:
b.[ni×(pi-c)]
因此,可以通过找到由下式给出的对称矩阵的零空间来找到旋转轴:
但是,可能存在大体旋转对称的对象(例如,图19中的图像)。在这种情况下,探针选择过程为破坏该对称性的点分配探针。因此,在一些实施例中,因此在第一示例中期望主旋转轴线被布置为穿过管的中心并且不被偏向交叉单元的外部特征。在一些实施例中,如本领域技术人员已知,可以使用RANSAC算法来查找旋转轴(但是基于与前述相同的标准)。
在其他实施例中,例如可以将蒙特卡罗技术用于旋转中心和被构造为贝叶斯参数估计问题的轴估计。
图27示出了使用RANSAC算法来找到旋转轴2703的对象的示例。图27示出了探针2701和点2702。RANSAC算法的每次迭代随机选择4个点的子集。这些点用于计算旋转轴和旋转轴组的提议中心。如果发现旋转中心在点的边界框之外,则扩展1x,则该提议被拒绝。通过对归一化点积进行阈值处理可以检测出内点:
其中ai位于所提议的主旋转轴上(如图26所示)。一旦获得了内点集合,就可以生成新的旋转中心和旋转轴并用来测量模型的拟合。模型的拟合可以通过将上述归一化点积加上所有候选和非线性点来计算。
在从单个视野记录的图像中训练对准模型的应用中,曲面可以具有对成像装置显而易见的水平点。例如,只有圆柱体的一小部分可能对于相机是可见的。将探针放置在靠近这些水平边缘的地方并不是很理想。例如,如果圆柱体围绕其中心轴旋转,则沿着一个底部边缘的所有探针将从视野消失。由于对准算法可能会在旋转和平移自由度上进行搜索,所以在一些实施例中,可能希望尽可能多地在整个搜索范围内可见多个探针位置。
在一些实施例中,当选择探针位置时,水平点可以从考虑中去除。在一些实施例中,可以使用两个条件中的一个或两个来确定点是否实际上是水平点。例如,参考图26,点pi为水平点的第一条件是其具有旋转单位矢量中的一个的表面法线的点积必须小于预定阈值,例如,COS(85.0)。换句话说,在该示例中,将仅考虑其表面法线大致平行于图19中的[pi-ai]的点。继续该示例,第二个条件是该点必须靠近旋转方向上的表面的边缘,例如,urot。为了确定这一点,对于每个潜在的水平点(例如,满足第一条件的那些),可以应用步骤2001-2003以获得在点pi处的切线平面的表面深度值的正则化网格(a regularizedgrid)。双线性映射可用于沿着方向urot进行规则间隔采样。这与步骤2005中完成的采样类似,差异在于方向。通过对1-d信号应用阈值,可以确定pi是否接近可见表面的边缘。阈值将取决于用于缺失像素值的值,但是如果我们使用N(如步骤2003中提议的),那么在此示例中0.9N将是合理的。在另外的实施例中,可以使用其他值。例如,阈值可以在0.7N和N之间,更优选地在0.85N和0.95N之间。在另外的实施例中,可以使用其他阈值。
图28A和28B示出了根据一些实施例的具有和不具有水平点移除的探针放置的示例。具体地,图28A示出了没有水平点移除的探针放置,图28B示出了根据一些实施例的具有水平点去除的探针放置。图28A和28B示出了探针2801和点2802。注意,图28B不包括例如图28A中的水平点2803。
在一些实施例中,一旦确定旋转中心c和旋转轴(通过它们各自的单位矢量)参数化),则TDC模块412可以使用第i个兴趣点的位置矢量pi来确定旋转变量θp、θr和θy,其是从第i个兴趣点的起点到中心的向量,以及先前计算的分辨力向量,
图29示出了用于计算的相关向量,其可以被认为是在旋转单元矢量上的投影之和的大小。
在一些实施例中,旋转变量可以考虑点和旋转轴之间的距离的范数(norm),即向量因为,
TDC模块412可以强调进一步远离原点的兴趣点的贡献,以增加角度精度。例如,TDC模块412可以如下定义第i个兴趣点的旋转变量θp i
或者,
取决于位置矢量vi的范数的旋转变量θp i可以提供有利于将探针放置在更远离旋转轴的位置处的目标分布。这样,目标分布可以使得更多的探针在进一步远离旋转中心的兴趣点中被采样。
在一些实施例中,一旦TDC模块412确定旋转变量的代表,则TDC模块412可以使用所确定的代表来表示每个兴趣点。随后,TDC模块412可以被配置为通过找到满足以下关系的加权函数f(x,y,z,θpry)来基于兴趣点的代表来确定目标分布:
具有以下约束(constraint):
其中i索引第i个兴趣点。这可以有效地共同平衡在平移和旋转自由度解决部分的能力。
在一些实施例中,TDC模块412可以被配置为基于兴趣点的代表来确定目标分布,通过找到共同平衡了分辨能力的加权函数f(x,y,z,θpry)平移自由度,同时最大化旋转自由度的分辨能力,旋转自由度具有使用全集的兴趣点的最小解析信息,即,如果 则进行俯仰(pitch),如果则进行偏航(yaw),否则滚动(roll)。这在例如一个旋转变量小的条件下可能是有利的,导致先前描述的优化通过最小化其他两个的贡献来减少三个旋转变量之间的差异。这可能会具有使大部分探针靠近旋转中心的不良影响。
在一些实施例中,TDC模块412可以被配置为通过执行以下优化,在最大化旋转自由度的分辨能力时确定平衡在平移自由度中的分辨能力的加权函数f(x,y,z,θpry):
具有以下约束:
并且其中参数wS和wR在平移分量之间的差异的最小化和最小旋转分量的最大化之间的优化中规定了相对偏差。
在一些实施例中,一旦TDC模块412确定目标分布f(x,y,z,θpry),TDC模块412可以提供目标分布f(x,y,z,θpry)到PDM模块416。随后,PDM模块416可以使用目标分布f(x,y,z,θpry)作为概率分布来对图案上的探针进行采样。
在一些实施例中,为了促进上述优化过程,探针放置模块408可以为目标分布f(x,y,z,θpry)假设一功能形式。
在一些实施例中,探针放置模块408可以假设目标分布f(x,y,z,θpry)具有线性形式。虽然线性函数可能变为负,但约束可以迫使目标分布在所有兴趣点的为正。当目标分布f(x,y,z,θpry)具有线性形式时,可以将用于找到目标分布的优化程序(optimization routine)配置为使用线性形式。然而,由于线性函数的空间有限,可能难以找到满足所有约束的线性函数。
在一些实施例中,探针放置模块408可以假设目标分布f(x,y,z,θpry)具有非线性形式。当目标分布f(x,y,z,θpry)具有非线性形式时,可以不同地配置用于找到目标分布的优化程序以使用非线性形式。然而,由于非线性函数的空间很宽,可能更容易找到满足所有约束的非线性函数。
在一些实施例中,TDC模块412可以将目标分布f(x,y,z,θpry)设置为兴趣点分布pp(x,y,θ|参数)的倒数。在这种情况下,TDC模块412可以从FDC模块414接收兴趣点分布pp(x,y,z,θpry),并通过计算倒数间接地确定目标分布f(x,y,z,θpry)。当,例如目标分布f(x,y,z,θpry)定义为兴趣点分布pp(x,y,z,θpry)的倒数时,目标分布f(x,y,z,θpry)将导致更多的探针在与兴趣点的其余部分相对不相似的兴趣点的位置处被采样。
在一些实施例中,FDC模块414可以将兴趣点分布pp(x,y,z,θpry)建模为混合模型。在一些实施例中,混合模型可以包括高斯混合模型(GMM):
GMM具有四个参数:高斯分布数N,第k个高斯分布的权重αk,第k个高斯分布的平均向量以及第k个高斯分布的协方差矩阵在其他实施例中,混合模型可以包括三角分布的混合。在一些实施例中,三角分布的混合可以更快地计算并且可以提供类似的期望特性,该类似的期望特性提供兴趣点的软分组(soft grouping)。
在一些实施例中,FDC模块414可以通过聚集兴趣点并确定最适合兴趣点的群集(cluster)的数量来估计GMM的高斯分布N的数量。例如,FDC模块414可以在兴趣点执行k均值聚类(clustering)操作以估计高斯分布数N。
可以通过最大化给出兴趣点的参数的可能性来确定剩余的参数集合在一些实施例中,FDC模块414可以使用期望最大化技术来最大化给出兴趣点的参数的可能性。为了执行期望最大化,FDC模块414可以使用来自聚类步骤的结果来初始化参数集合
如上所述,TDC模块412可以通过简单地反转兴趣点分布pp(x,y,z,θpry)来确定目标分布f(x,y,z,θpry)。然而,该目标分布f(x,y,z,θpry)可能导致大多数探针被放置在具有最小公共值x,y,z,θpry的边缘上。例如,当对象能够仅进行3D平移运动并且对象是具有圆角的盒形形状时,该目标分布f(x,y,z)可以导致PDM模块416主要围绕拐角位置(corner location)进行采样。在这种情况下,只有位于拐角位置的探针的对准模型将容易受到遮挡和噪音的影响。
为了解决这些问题,在一些实施例中,TDC模块412可以变换兴趣点分布pp(x,y,z,θpry)并且反转变换的兴趣点分布以确定目标分布f(x,y,z,θpry)。该变换可以采用将平滑核(smoothing kernel)应用于pp(x,y,z,θpry)的形式。
在一些实施例中,TDC模块412可以通过以不同于执行反转的方式变换兴趣点分布来确定目标分布。一个这样的实施例通过找到满足一定条件的新权重来变换兴趣点分布在估计参数集合时,TDC模块412可以执行兴趣点的软分组(例如,软分组成高斯分布)。一旦TDC模块412执行了这些分组,TDC模块412可被配置为找到新权重以分别重新加权每个组(例如,每个高斯分布)。
例如,TDC模块412可以指示:在该表达式中,TDC模块412可以被配置为找到使以下关系最小化的权重
具有约束:
通过使用拉格朗日乘数φ形成拉格朗日量(Lagrangian),该最小化可以减少到线性规划问题:
在一些实施例中,优化的平移和旋转分量之间的相对加权可以使用单个参数RBIAS设置,并且使用用于权重的以下公式:
在图30A至30C所示的示例中示出了改变RBIAS对探针放置的影响。图30A示出了不施加偏置(bias)的示例,图30B示出了施加平移偏置的示例,图30C示出了在点3002上放置探针3001时应用旋转偏置的示例。与图30A相比,图30B包括更多靠近端部3003和区域3004的探针,其在平行于管的中心轴的方向上增加了模型的分辨能力。与图30A相比,图30C在小交叉管3010的顶部包括更多的探针。这些探针位置增加了模型在主管中心轴周围的旋转自由度中分辨的能力。
在一些实施例中,TDC模块412可以使用额外的约束来解决关于的最小化。例如,上述技术不能防止变换权重变为负数,或者防止将大的权重分配给从小组的兴趣点估计的高斯(Gaussians)(例如,其原始权重αk在兴趣点分布中pp(x,y,z,θpry)小)。TDC模块412可以以编程方式应用这些和/或其他约束。
而且,在一些实施例中,TDC模块412被配置为限制单独群集在最后一组探针中可能超过或低于代表的量。这可以通过添加一组约束来实现:
其中Clim是提供限制因素的常数。
改变限制因素的效果的例子如图31A至31D所示。图31A示出了具有分辨能力的点3103的示例。细节区域3104示出了随着点接近可见水平线,围绕管中心轴的分辨旋转分辨能力增加;选择探针位置时,基于考虑移除这些“水平点”。第二细节区域3105示出了当兴趣点接近管的端部时,平行于管中心轴的分辨能力的增加。图31B示出了Clim=1.2的探针选择结果的示例;该探针组仅比随机选择的探针组稍微更平衡。图31C示出了Clim=4的探针选择结果的示例;我们可以看到探针位置朝向管的端部和侧面更加重。图31D示出了探针3101和点3102上的Clim=10的探针选择结果的示例;这里的绝大多数探针位置位于管的末端。从图中可以看出。如图31A-31D所示,增加限制因素导致探针位置更加集中在管的端部。虽然增加限制因素产生一组更平衡的探针,但是模型的鲁棒性可能变得越来越容易受到闭塞区域的影响(例如管端部中的一个在运行时可能会被遮挡)。
在一些实施例中,当线性方程组(例如,通过拉格朗日的微分形成并且等于零)产生具有违反约束的至少一个权重αk的结果时,TDC模块412可被配置为迭代所有可能的边界情况组合,计算最优剩余权重,并选择约束最小值。
例如,TDC模块412可以为线性方程确定所有可能的边界条件集合(例如,每组边界条件可以包括变换权重子集的边界条件。随后,对于每组边界条件,TDC模块412可以将权重子集的值固定为相应边界条件的值,并为没有边界条件的剩余自由权重求解线性方程组。这样,TDC模块412可以通过在所有可能的边界条件集合中的解中选择具有最小分数的解来确定给定约束的线性方程组的全局解。
在一些情况下,当GMM中的高斯分布的数量大于兴趣点所在的维度数量时,GMM中的一些参数可以是线性相关的。例如,当高斯分布的数量大于兴趣点所在的维度数量时,高斯分布的平均向量可能会变得线性相关。
为了解决这个问题,TDC模块412可被配置使GMM的参数正则化,例如使用Tikhonov正则化。如果这种方法失败,则TDC模块412可以重新配置优化问题以最小化以下函数
这种新的拉格朗日公式旨在以最小的拟合分辨能力最大化旋转自由度的分辨能力,同时将解限制在平移自由度和变换权重之和中的完美平衡为1。
在一些实施例中,TDC模块412可以直接找到满足上述拉格朗日关系的权重。然而,这种关系可能不会阻止权重变为负数,或者阻止将大的权重分配给从小组兴趣点点估计的高斯(例如,其在兴趣点中的原始权重αk分布pp(x,y,z,θpry)是小的)。如上所述,TDC模块412可以以编程方式应用这些约束。这在数学上是有效的,因为上述拉格朗日关系在中是二次(quadratic)的,所以如果一个权重是负的,那么最优值应该在一个(或多个)边界条件上。
总之,在一些示例性实施例中,为了基于兴趣点分布pp(x,y,z,θpry)的参数来为目标分布识别参数,TDC模块412可以使用以下步骤:
1.求解通过将拉格朗日微分并等于零形成的方程的线性***:
2.如果该***是单数的,则TDC模块412可以使用正则化来解决该***。例如,如果TDC模块412试图求解矩阵方程:是单数的,则TDC模块412可以代替地求解这样,TDC模块412可以最小化解向量的L2-范数的总和,这又可以防止具有大的正和负αk(求和)的解。
3.如果步骤2失败,求解通过将替代拉格朗日微分为零而形成的方程的线性***:
4.检查步骤2或步骤3的解是否符合以下约束:
5.如果解超出权重的有效范围,则对于所有可能的边界条件集合(例如约束),使用步骤2或3的修改版本来找到用于非约束的的解向量。在整个搜索过程中,TDC模块412可以跟踪以下的最小值,
以及如果前一关系大于零,则TDC模块412可以使用前一关系来为选择解向量。如果前一关系不大于零,则TDC模块412可以使用后一关系来为选择解向量。
从目标分布采样探针
一旦TDC模块412确定变换的兴趣点分布则TDC模块412可以提供变换的兴趣点分布(或变换的兴趣点分布的倒数)给PDM模块416。随后,PDM模块416可以从变换的兴趣点分布的倒数中采样以确定探针在图像中的一个或多个兴趣点上的位置。
TDC模块412可以被配置为选择变换的兴趣点分布使得相对于变换的兴趣点分布的x、y和z的期望值尽可能相似:
重要性采样可用于允许PDM模块416从样本具有相似支持的条件通过对从另一不同分布抽取的样本进行加权来从目标分布中抽取样本。换句话说:
其中Sprobes是一组探针,SIP是一组兴趣点。因此,PDM模块416可以使用这种关系来通过以下方式来对从兴趣点分布来权衡样本:
应当理解,所公开的主题在其应用上不限于结构的细节以及在以下描述中阐述或在附图中示出的部件的布置。所公开的主题能够具有其他实施例并且以各种方式被实践和执行。此外,应当理解,本文中使用的词组和术语是为了描述的目的,而不应被认为是限制性的。
因此,本领域技术人员将理解,本公开所基于的概念可以容易地用作设计用于实现所公开主题的若干目的的其他结构、方法和装置的基础。因此,重要的是,声称被视为包括这些等同的结构,只要它们不脱离所公开的主题的精神和范围。例如,一些所公开的实施例涉及一个或多个变量。这种关系可以用数学方程表示。然而,本领域普通技术人员也可以通过变换所公开的数学方程式,使用不同的数学方程来表达一个或多个变量之间的相同关系。重要的是,将权利要求视为在一个或多个变量之间包括这样的等效关系。
虽然已经在前述示例性实施例中描述和示出了所公开的主题,但是应当理解,本公开仅作为示例进行,并且在不脱离所公开的主题的精神和范围的情况下,可以对所公开的主题的实现的细节进行许多改变。

Claims (37)

1.一种用于选择三维(3D)探针的放置的***,三维(3D)探针用于评估3D对准***内的运行时3D图像的3D对准姿态,3D对准***用于估计该3D运行时图像中经过训练的3D模型图像的姿态,所述***包括:
与存储器通信的处理器,其中所述处理器被配置为运行存储在所述存储器中的计算机程序,计算机程序被配置为:
生成与来自3D图像的第一多个兴趣点相关联的多个特征,其中每个特征包括指示来自所述多个兴趣点的相关联点的3D特性的数据;
至少部分地基于与所述第一多个兴趣点相关联的多个特征,从所述第一多个兴趣点中选择第二多个兴趣点;以及
至少部分地基于所述第二多个兴趣点来确定多个3D探针的放置。
2.根据权利要求1所述的***,其中所述多个特征中的每一个包含在所述第一多个点中的关联点的有用性的至少一个量度,以用于在至少一个平移自由度中对准。
3.根据权利要求1所述的***,其中所述多个特征中的每一个包含在所述第一多个点中的关联点的有用性的至少一个量度,以用于在至少一个旋转自由度中对准。
4.根据权利要求1所述的***,其中比起通过放置在所述第一多个兴趣点的每一个上所提供的,所述多个3D探针的放置提供了在三个平移自由度中更大的整体对准能力。
5.根据权利要求1所述的***,其中比起通过放置在所述第一多个兴趣点中的每一个上所提供的,所述多个3D探针的放置提供了在三个平移自由度中更大的整体对准能力,其中所述更大的整体对准能力包括在第一多个点的最小代表旋转自由度中提高整体对准能力。
6.根据权利要求1所述的***,其中所述多个3D探针的放置提供了比通过所述第一多个兴趣点的每一个上的放置提供的三个旋转自由度更大的整体对准能力。
7.根据权利要求1所述的***,其中所述多个3D探针的放置提供了所述第一多个点的最小代表的旋转自由度中的整体对准能力的提高。
8.根据权利要求1所述的***,其中确定拟合所述第一多个点的子集的旋转中心和旋转轴,使得旋转中心和旋转轴与图案的旋转对称特征相关联。
9.根据权利要求8所述的***,其中从所述第一多个点的子集中找到所述旋转中心和旋转轴包括使用RANSAC技术。
10.根据权利要求1所述的***,其中所述多个特征包括多个表面法向量。
11.根据权利要求1所述的***,其中所述多个特征包括多个边缘邻近向量。
12.根据权利要求1所述的***,其中所述多个特征包括多个边缘方向向量。
13.根据权利要求1所述的***,其中所述多个特征包括多个表面曲率向量。
14.根据权利要求1所述的***,其中至少部分地基于与所述第一多个兴趣点相关联的所述多个特征从所述第一多个兴趣点中选择第二多个兴趣点包括:
将概率分布拟合到所述第一多个点;
确定目标分布,其中所述目标分布指示探针在一个或多个兴趣点上的期望放置;
至少部分地通过利用所提议的探针位置处的拟合分布和目标分布的相对概率来确定探针的放置。
15.根据权利要求14所述的***,其中确定所述兴趣点分布包括将所述多个兴趣点拟合到包括混合模型的概率分布,其中所述概率分布指示在所述多个兴趣点处测量的至少一取向分布。
16.根据权利要求14所述的***,其中所述处理器进一步被配置为通过将所述多个兴趣点聚类成至少一个群集来确定所述兴趣点分布的混合模型的多个组分的数量。
17.根据权利要求1所述的***,其中所述处理器进一步被配置为:
从所述第一多个兴趣点识别一个或多个水平点;以及
基于考虑移除一个或多个水平点,使得第二多个兴趣点不包括所述一个或多个水平点。
18.根据权利要求1所述的***,其中选择所述第二多个兴趣点包括使用蒙特卡罗技术。
19.一种用于选择三维(3D)探针的放置的方法,三维(3D)探针用于评估3D对准***内的运行时3D图像的3D对准姿态,3D对准***用于估计该3D运行时图像中经过训练的3D模型图像的姿态,所述方法包括:
生成与来自3D图像的第一多个兴趣点相关联的多个特征,其中每个特征包括指示来自所述多个兴趣点的相关联点的3D特性的数据;
至少部分地基于与所述第一多个兴趣点相关联的多个特征,从所述第一多个兴趣点中选择第二多个兴趣点;以及
至少部分地基于所述第二多个兴趣点来确定多个3D探针的放置。
20.根据权利要求19所述的方法,其中所述多个特征中的每一个包含在所述第一多个点中的关联点的有用性的至少一个量度,以用于在至少一个平移自由度中对准。
21.根据权利要求19所述的方法,其中所述多个特征中的每一个包含在所述第一多个点中的关联点的有用性的至少一个量度,以用于在至少一个旋转自由度中对准。
22.根据权利要求19所述的方法,其中比起通过放置在所述第一多个兴趣点的每一个上所提供的,所述多个3D探针的放置提供了在三个平移自由度中更大的整体对准能力。
23.根据权利要求19所述的方法,其中比起通过放置在所述第一多个兴趣点的每一个上所提供的,所述多个3D探针的放置提供了在三个平移自由度中更大的整体对准能力,其中所述更大的整体对准能力包括在第一多个点的最小代表的旋转自由度中提高整体对准能力。
24.根据权利要求19所述的方法,其中比起通过放置在所述第一多个兴趣点的每一个上所提供的,所述多个3D探针的放置提供了在三个旋转自由度中更大的整体对准能力。
25.根据权利要求19所述的方法,其中所述多个3D探针的放置提供了所述第一多个点的最小代表旋转自由度中的整体对准能力的提高。
26.根据权利要求19所述的方法,其中确定拟合所述第一多个点的子集的旋转中心和旋转轴,使得旋转中心和旋转轴与图案的旋转对称特征相关联。
27.根据权利要求26所述的方法,其中从所述第一多个点的子集中找到所述旋转中心和旋转轴包括使用RANSAC技术。
28.根据权利要求19所述的方法,其中所述多个特征包括多个表面法向量。
29.根据权利要求19所述的***,其中所述多个特征包括多个边缘邻近向量。
30.根据权利要求19所述的方法,其中所述多个特征包括多个边缘方向向量。
31.根据权利要求19所述的方法,其中所述多个特征包括多个表面曲率向量。
32.根据权利要求19所述的方法,其中至少部分地基于与所述第一多个兴趣点相关联的所述多个特征从所述第一多个兴趣点中选择第二多个兴趣点包括:
将概率分布拟合到所述第一多个点;
确定目标分布,其中所述目标分布指示探针在一个或多个兴趣点上的期望放置;
至少部分地通过利用所提议的探针位置处的拟合分布和目标分布的相对概率来确定探针的放置。
33.根据权利要求32所述的方法,其中确定所述兴趣点分布包括将所述多个兴趣点拟合到包括混合模型的概率分布,其中所述概率分布指示在所述多个兴趣点处测量的至少一取向分布。
34.根据权利要求32所述的方法,进一步包括通过将所述多个兴趣点聚类成至少一个群集来确定所述兴趣点分布的混合模型的多个组分的数量。
35.根据权利要求19所述的方法,进一步包括:
从所述第一多个兴趣点识别一个或多个水平点;以及
基于考虑移除一个或多个水平点,使得第二多个兴趣点不包括所述一个或多个水平点。
36.根据权利要求19所述的方法,其中选择所述第二多个兴趣点包括使用蒙特卡罗技术。
37.一种具有与用于选择三维(3D)探针的放置的***相关联的可执行指令的非暂时计算机可读介质,三维(3D)探针用于评估3D对准***内的运行时3D图像的3D对准姿态,3D对准***用于估计该3D运行时图像中经过训练的3D模型图像的姿态,可执行指令可操作以使所述***:
生成与来自3D图像的第一多个兴趣点相关联的多个特征,其中每个特征包括指示来自所述多个兴趣点的相关联点的3D特性的数据;
至少部分地基于与所述第一多个兴趣点相关联的多个特征,从所述第一多个兴趣点中选择第二多个兴趣点;以及
至少部分地基于所述第二多个兴趣点来确定多个3D探针的放置。
CN201710675263.6A 2016-08-09 2017-08-09 用于3d对准算法的平衡探针位置选择 Active CN107705328B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/232,766 US10417533B2 (en) 2016-08-09 2016-08-09 Selection of balanced-probe sites for 3-D alignment algorithms
US15/232,766 2016-08-09

Publications (2)

Publication Number Publication Date
CN107705328A true CN107705328A (zh) 2018-02-16
CN107705328B CN107705328B (zh) 2021-11-02

Family

ID=61018555

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710675263.6A Active CN107705328B (zh) 2016-08-09 2017-08-09 用于3d对准算法的平衡探针位置选择

Country Status (5)

Country Link
US (1) US10417533B2 (zh)
JP (1) JP6744847B2 (zh)
KR (1) KR102204818B1 (zh)
CN (1) CN107705328B (zh)
DE (1) DE102017213752A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110070182A (zh) * 2019-04-01 2019-07-30 京微齐力(北京)科技有限公司 适合人工智能的平台芯片及其制造和设计方法
CN110991229A (zh) * 2019-10-24 2020-04-10 中山大学 基于dsp芯片与量化模型的三维物体识别方法
CN111487581A (zh) * 2020-04-20 2020-08-04 中国人民解放军军事科学院国防科技创新研究院 基于舵矢量模式匹配的宽带闪电vhf辐射源测向方法
CN112329339A (zh) * 2020-10-27 2021-02-05 河北工业大学 一种风电场短期风速预测方法

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10482196B2 (en) * 2016-02-26 2019-11-19 Nvidia Corporation Modeling point cloud data using hierarchies of Gaussian mixture models
US10417533B2 (en) * 2016-08-09 2019-09-17 Cognex Corporation Selection of balanced-probe sites for 3-D alignment algorithms
EP3297018B1 (en) * 2016-09-19 2019-03-27 FEI Company Tomographic imaging method
US10860841B2 (en) * 2016-12-29 2020-12-08 Samsung Electronics Co., Ltd. Facial expression image processing method and apparatus
EP3399757A1 (en) * 2017-05-04 2018-11-07 Thomson Licensing Method and apparatus to encode and decode two-dimension point clouds
US10382662B1 (en) * 2017-09-06 2019-08-13 The United States Of America, As Represented By The Secretary Of The Navy Apparatus and method for locating camera towers and scheduling surveillance
JP6598898B2 (ja) * 2018-02-27 2019-10-30 株式会社Screenホールディングス 芯ズレ検出装置および芯ズレ検出方法
US11062180B2 (en) * 2018-07-18 2021-07-13 Shenzhen Malong Technologies Co., Ltd. Complexity-based progressive training for machine vision models
CN110956603B (zh) 2018-09-25 2023-04-21 Oppo广东移动通信有限公司 深度图像边缘飞点的检测方法、装置及电子设备
US11315310B2 (en) * 2020-03-12 2022-04-26 Nvidia Corporation Reservoir-based spatiotemporal importance resampling utilizing a global illumination data structure
JP2021189822A (ja) * 2020-06-01 2021-12-13 オリンパス株式会社 画像処理システム、及び、画像処理方法、並びに、画像処理プログラム
US11625843B2 (en) * 2020-06-24 2023-04-11 Bluebeam, Inc. Systems and methods for automatic alignment of drawings
CN112075957B (zh) * 2020-07-27 2022-05-17 深圳瀚维智能医疗科技有限公司 乳腺环扫轨迹规划方法、装置及计算机可读存储介质
CN113052110B (zh) * 2021-04-02 2022-07-29 浙大宁波理工学院 一种基于多视图投影和深度学习的三维兴趣点提取方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1461458A (zh) * 2000-10-30 2003-12-10 迈吉尔厄思有限公司 用于分析和成像三维体数据集合的***和方法
US20050168461A1 (en) * 2000-10-30 2005-08-04 Magic Earth, Inc. System and method for analyzing and imaging three-dimensional volume data sets
WO2015187668A1 (en) * 2014-06-06 2015-12-10 Matterport, Inc. Semantic understanding of 3d data
CN105825497A (zh) * 2015-01-23 2016-08-03 康耐视公司 用于图像处理的探针放置

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7016539B1 (en) * 1998-07-13 2006-03-21 Cognex Corporation Method for fast, robust, multi-dimensional pattern recognition
US6765570B1 (en) * 1998-07-21 2004-07-20 Magic Earth, Inc. System and method for analyzing and imaging three-dimensional volume data sets using a three-dimensional sampling probe
ATE292307T1 (de) 2000-09-27 2005-04-15 Mvtec Software Gmbh System und verfahren zur objekterkennung
US20030063781A1 (en) * 2001-09-28 2003-04-03 Koninklijke Philips Electronics N.V. Face recognition from a temporal sequence of face images
JP2007141222A (ja) * 2005-10-19 2007-06-07 Keyence Corp 画像処理装置および画像処理方法
DE102008001800A1 (de) * 2007-05-25 2008-11-27 Carl Zeiss Smt Ag Projektionsobjektiv für die Mikrolithographie, Mikrolithographie-Projektionsbelichtungsanlage mit einem derartigen Projektionsobjektiv, mikrolithographisches Herstellungsverfahren für Bauelemente sowie mit diesem Verfahren hergestelltes Bauelement
US8090160B2 (en) * 2007-10-12 2012-01-03 The University Of Houston System Automated method for human face modeling and relighting with application to face recognition
US20100259537A1 (en) * 2007-10-12 2010-10-14 Mvtec Software Gmbh Computer vision cad models
KR100930994B1 (ko) * 2007-12-18 2009-12-10 주식회사 케이티 3차원 영상 모델 생성 방법 및 장치, 이를 이용한 영상인식 방법 및 장치 그리고 상기 방법들을 수행하는프로그램이 기록된 기록 매체
US8259998B2 (en) * 2008-09-30 2012-09-04 Mazda Motor Corporation Image processing device for vehicle
US8556815B2 (en) * 2009-05-20 2013-10-15 Laurent Pelissier Freehand ultrasound imaging systems and methods for guiding fine elongate instruments
CN102713498B (zh) * 2010-01-20 2014-07-16 法罗技术股份有限公司 用于坐标测量机的安装装置
US9607239B2 (en) * 2010-01-20 2017-03-28 Faro Technologies, Inc. Articulated arm coordinate measurement machine having a 2D camera and method of obtaining 3D representations
KR20110097140A (ko) * 2010-02-24 2011-08-31 삼성전자주식회사 이동 로봇의 위치 추정 장치 및 방법
JP5872818B2 (ja) * 2010-08-20 2016-03-01 パナソニック株式会社 測位処理装置、測位処理方法、および画像処理装置
JP5593177B2 (ja) * 2010-09-14 2014-09-17 株式会社トプコン 点群位置データ処理装置、点群位置データ処理方法、点群位置データ処理システム、および点群位置データ処理プログラム
CN103430218A (zh) * 2011-03-21 2013-12-04 英特尔公司 用3d脸部建模和地标对齐扩增造型的方法
US9235928B2 (en) * 2012-01-24 2016-01-12 University Of Southern California 3D body modeling, from a single or multiple 3D cameras, in the presence of motion
US9299160B2 (en) * 2012-06-25 2016-03-29 Adobe Systems Incorporated Camera tracker target user interface for plane detection and object creation
EP2720171B1 (en) * 2012-10-12 2015-04-08 MVTec Software GmbH Recognition and pose determination of 3D objects in multimodal scenes
US9041914B2 (en) * 2013-03-15 2015-05-26 Faro Technologies, Inc. Three-dimensional coordinate scanner and method of operation
US9443297B2 (en) * 2013-07-10 2016-09-13 Cognex Corporation System and method for selective determination of point clouds
KR102016551B1 (ko) * 2014-01-24 2019-09-02 한화디펜스 주식회사 위치 추정 장치 및 방법
EP3309751B1 (en) * 2015-06-12 2022-04-20 Sony Group Corporation Image processing device, method, and program
US11206989B2 (en) * 2015-12-10 2021-12-28 Fitbit, Inc. Light field management in an optical biological parameter sensor
US10373380B2 (en) * 2016-02-18 2019-08-06 Intel Corporation 3-dimensional scene analysis for augmented reality operations
US10417533B2 (en) * 2016-08-09 2019-09-17 Cognex Corporation Selection of balanced-probe sites for 3-D alignment algorithms

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1461458A (zh) * 2000-10-30 2003-12-10 迈吉尔厄思有限公司 用于分析和成像三维体数据集合的***和方法
US20050168461A1 (en) * 2000-10-30 2005-08-04 Magic Earth, Inc. System and method for analyzing and imaging three-dimensional volume data sets
WO2015187668A1 (en) * 2014-06-06 2015-12-10 Matterport, Inc. Semantic understanding of 3d data
CN105825497A (zh) * 2015-01-23 2016-08-03 康耐视公司 用于图像处理的探针放置

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110070182A (zh) * 2019-04-01 2019-07-30 京微齐力(北京)科技有限公司 适合人工智能的平台芯片及其制造和设计方法
CN110070182B (zh) * 2019-04-01 2021-08-24 京微齐力(北京)科技有限公司 适合人工智能的平台芯片及其制造和设计方法
CN110991229A (zh) * 2019-10-24 2020-04-10 中山大学 基于dsp芯片与量化模型的三维物体识别方法
CN110991229B (zh) * 2019-10-24 2023-04-28 中山大学 基于dsp芯片与量化模型的三维物体识别方法
CN111487581A (zh) * 2020-04-20 2020-08-04 中国人民解放军军事科学院国防科技创新研究院 基于舵矢量模式匹配的宽带闪电vhf辐射源测向方法
CN111487581B (zh) * 2020-04-20 2022-02-11 中国人民解放军军事科学院国防科技创新研究院 基于舵矢量模式匹配的宽带闪电vhf辐射源测向方法
CN112329339A (zh) * 2020-10-27 2021-02-05 河北工业大学 一种风电场短期风速预测方法

Also Published As

Publication number Publication date
CN107705328B (zh) 2021-11-02
US20180046885A1 (en) 2018-02-15
DE102017213752A1 (de) 2018-02-15
JP2018055679A (ja) 2018-04-05
US10417533B2 (en) 2019-09-17
KR102204818B1 (ko) 2021-01-19
JP6744847B2 (ja) 2020-08-19
KR20180103660A (ko) 2018-09-19

Similar Documents

Publication Publication Date Title
CN107705328A (zh) 用于3d对准算法的平衡探针位置选择
CN106651942B (zh) 基于特征点的三维旋转运动检测与旋转轴定位方法
CN110574071B (zh) 用于对齐3d数据集的设备,方法和***
JP6681729B2 (ja) オブジェクトの3d姿勢およびオブジェクトのランドマーク点の3dロケーションを求める方法、およびオブジェクトの3d姿勢およびオブジェクトのランドマークの3dロケーションを求めるシステム
Rusu et al. Towards 3D point cloud based object maps for household environments
CN110533722A (zh) 一种基于视觉词典的机器人快速重定位方法及***
CN104867126A (zh) 基于点对约束和三角形网的有变化区域的合成孔径雷达图像配准方法
CN101814192A (zh) 真实感3d人脸重建的方法
CN107368790B (zh) 行人检测方法、***、计算机可读存储介质及电子设备
CN110232387A (zh) 一种基于kaze-hog算法的异源图像匹配方法
CN105488541A (zh) 增强现实***中基于机器学习的自然特征点识别方法
Bekkers et al. Nilpotent approximations of sub-Riemannian distances for fast perceptual grouping of blood vessels in 2D and 3D
Sveier et al. Object detection in point clouds using conformal geometric algebra
CN105825497B (zh) 用于图像处理的探针放置
Chen et al. Deep learning feature representation for image matching under large viewpoint and viewing direction change
Kim et al. Automated extraction of geometric primitives with solid lines from unstructured point clouds for creating digital buildings models
Dai et al. Least-squares-based fitting of paraboloids
Gonzalez-Aguilera et al. From point cloud to CAD models: Laser and optics geotechnology for the design of electrical substations
Danckaers et al. Building 3D statistical shape models of horticultural products
Zhong et al. Triple screening point cloud registration method based on image and geometric features
Wan et al. A performance comparison of feature detectors for planetary rover mapping and localization
Pribanić et al. An efficient surface registration using smartphone
Pohudina et al. Possibilities of position determination
Canelhas Truncated signed distance fields applied to robotics
Ekholm 3-D scene reconstruction from aerial imagery

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