CN116664412A - 用于从由3d成像提供的3d虚拟物体的点集合中移除错误点的方法和装置 - Google Patents

用于从由3d成像提供的3d虚拟物体的点集合中移除错误点的方法和装置 Download PDF

Info

Publication number
CN116664412A
CN116664412A CN202310108914.9A CN202310108914A CN116664412A CN 116664412 A CN116664412 A CN 116664412A CN 202310108914 A CN202310108914 A CN 202310108914A CN 116664412 A CN116664412 A CN 116664412A
Authority
CN
China
Prior art keywords
point
points
camera
conflict
light
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.)
Pending
Application number
CN202310108914.9A
Other languages
English (en)
Inventor
J·艾德哈码
M·约翰尼森
A·兰格斯乔
A·奥伯格
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.)
Sick IVP AB
Original Assignee
Sick IVP AB
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 Sick IVP AB filed Critical Sick IVP AB
Publication of CN116664412A publication Critical patent/CN116664412A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/507Depth or shape recovery from shading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/70Denoising; Smoothing
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B11/00Measuring arrangements characterised by the use of optical techniques
    • G01B11/24Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures
    • G01B11/25Measuring arrangements characterised by the use of optical techniques for measuring contours or curvatures by projecting a pattern, e.g. one or more lines, moiré fringes on the object
    • G01B11/2518Projection by scanning of the object
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01BMEASURING LENGTH, THICKNESS OR SIMILAR LINEAR DIMENSIONS; MEASURING ANGLES; MEASURING AREAS; MEASURING IRREGULARITIES OF SURFACES OR CONTOURS
    • G01B21/00Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant
    • G01B21/02Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness
    • G01B21/04Measuring arrangements or details thereof, where the measuring technique is not covered by the other groups of this subclass, unspecified or not relevant for measuring length, width, or thickness by measuring coordinates of points
    • G01B21/045Correction of measurements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/521Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
    • 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
    • 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/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • G06V10/765Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects using rules for classification or partitioning the feature space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • 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
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/21Collision detection, intersection

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Evolutionary Computation (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Computer Graphics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Optics & Photonics (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Image Analysis (AREA)

Abstract

本公开至少涉及用于从由3D成像提供的3D虚拟物体的点集合中移除错误点的方法和装置。公开了用于从借助于具有图像传感器(331)的相机(330)对对应现实世界物体(320)的三维3D成像所提供的3D虚拟物体的点集合(355‑1...355‑15)中移除错误点的方法和装置。获得(401)点集合(355‑1...355‑15)。针对相应点(355)识别(403)集合中的冲突点,如果有的话。冲突点是集合中根据预定义的一个或多个准则不能与相应点(355)有效共存的点。基于识别,从集合中移除(404)与集合中涉及冲突的其它点相比涉及冲突次数更多的集合中的一个或多个点。每次针对相应点在集合中识别出冲突点和/或每次相应点本身(355)被识别为集合中的另一个点的冲突点时,集合中的相应点(355)被认为涉及冲突。

Description

用于从由3D成像提供的3D虚拟物体的点集合中移除错误点的 方法和装置
技术领域
本文的实施例涉及用于从借助于具有图像传感器的相机对对应的现实世界物体的三维(3D)成像所提供的3D虚拟物体的点集合中移除错误点的方法和装置。
背景技术
用于工厂和物流自动化的工业视觉相机和系统可以基于三维(3D)机器视觉,其中捕获场景和/或物体的3D图像。3D图像是指还包含“高度”或“深度”信息而不只包含或至少不只包含关于如常规图像中的仅二维(2D)的像素的信息(例如,强度和/或颜色)的图像。即,图像的每个像素可以包括与像素的位置相关联的信息,并且该信息映射到已经被成像的对象(例如,物体)的位置。然后可以应用处理以从3D图像提取关于物体的特性(即物体的3D特性)的信息,并且例如将其转换成各种3D图像格式。这种关于高度的信息可以被称为范围数据,其中范围数据因此可以对应于来自被成像物体的高度测量的数据,或者换句话说来自物体的范围或距离测量的数据。替代地或附加地,像素可以包括关于例如材料属性的信息,诸如与在成像区域中的光的散射或特定波长的光的反射相关的信息。
因此,像素值可以例如与像素的强度和/或范围数据和/或材料属性相关。
当图像的图像数据例如由具有被配置为一次一行像素地感测并提供图像数据的传感器的相机一次一行地扫描或提供时,产生行扫描图像数据。行扫描图像的一种特殊情况是由所谓的“光片(sheet of light)”(例如,激光线)3D三角测量提供的图像数据。激光通常是首选,但也可以使用其它能够提供“光片”的光源,例如,能够提供保持聚焦且不会散开太多的光,或者换句话说,“结构化光”(例如由激光或发光二极管(LED)提供的光)的光源。
3D机器视觉系统通常基于这种光片三角测量。在这样的系统中,存在以特定光图案(诸如作为特定光图案的光片)照亮物体的光源,所述光源例如在物体上产生光或激光线,并且沿着该线可以捕获与物体的轮廓对应的物体的3D特性。通过使用这样的线扫描物体,即,执行线扫描,涉及线和/或物体的移动,可以捕获与多个轮廓对应的整个物体的3D特性。
使用光片进行三角测量的3D机器视觉系统或设备可以称为用于基于光、或者光片、三角测量或简单地在使用激光时的激光三角测量的3D成像的系统或设备。
通常,为了基于光三角测量产生3D图像,来自要成像的物体的反射光被相机的图像传感器捕获,并且在图像数据中检测到强度峰。峰出现在与被成像物体上的具有从物体反射的入射光(例如与激光线对应)的位置对应的位置处。检测到的峰在图像中的位置将映射到物体上的反射产生峰的光的位置。
激光三角测量相机系统,即,基于光三角测量的成像系统,将激光线投射到物体上,以从目标物体的表面产生高度曲线。通过相对于所涉及的相机和光源移动物体,可以通过图像捕获关于来自物体的不同部分的高度曲线的信息,然后将其组合并与系统的相关几何结构的知识一起用于产生物体的三维表示,即,提供3D图像数据。这种技术可以被描述为当光线(通常是激光线)投射到物体上并被物体反射时,其图像的抓取,然后在图像中提取反射的激光线的位置。这通常通过例如使用常规的峰寻找算法识别图像帧中的强度峰的位置来完成。通常但不是必须设置成像系统以便可以搜索传感器的每列的强度峰并将列内的位置映射到高度或深度。
任何测量系统,包括诸如上面提到的3D机器视觉系统之类的3D成像系统,都可能产生离群值。离群值一般基于所使用的测量技术并因此取决于所使用的3D成像系统而有所不同,并且对于同一系统内的离群值可以有几个不同的源。根据定义,离群值是不需要的,并且在工业测量应用中会使检查任务变得更加困难并且有时甚至是不可能的。
离群值可以与未正确表示被成像的现实世界物体的实际点和/或未与被成像的现实世界物体的实际点对应的图像数据对应。
当3D成像系统被用于产生被成像的现实世界物体的3D虚拟物体时,通常提供点云,即,与3D虚拟物体的表面点对应的点集合。如果现实世界物体在现实世界坐标系x,y,z中,那么3D虚拟物体可以在对应的虚拟坐标系x',y',z'中。离群值可以在点云中表现为与现实世界物体表面上的实际真实点不对应的点,即,离群值与错误点对应,并且如果虚拟物体是基于点云绘制的,那么其可以例如被视为虚拟物体上的“尖峰”。
在3D成像期间的不同步骤中,可以生成离群值,也可能会移除和/或减少离群值。在如上所述的激光三角测量的情况下,一些离群值可以例如在强度峰发现期间被减少。未被早期步骤移除的离群值最终将作为错误点出现在“点云”中。
U2020340800A1公开了一种特别是用于光三角测量的解决方案,其基于无法在其中测量高度的盲点区域中是否存在轮廓来确定错误检测值。在那种情况下,删除被确定为错误检测值的轮廓的部分。
发明内容
鉴于以上所述,目的是对现有技术提供一个或多个改进或替代,诸如提供关于减少来自与点云(即,是由对应现实世界物体的3D成像提供的3D虚拟物体的点集合)中的离群值对应的错误点的负面影响的改进。
根据本文实施例的第一方面,该目的是通过一种方法来实现的,该方法用于从借助于具有图像传感器的相机对对应的现实世界物体的三维(3D)成像所提供的3D虚拟物体的点集合中移除错误点。获得所述点集合。然后针对相应点识别集合中的冲突点(如果有的话)。冲突点是集合中根据预定义的一个或多个准则不能与相应点有效共存的点。此后,基于对集合的相应点的所述识别,从集合中移除与集合中涉及冲突的其它点相比涉及冲突次数更多的集合中的一个或多个点。每次针对相应点在集合中识别出冲突点和/或每次相应点本身被识别为集合中的另一个点的冲突点时,集合中的相应点被认为涉及冲突。
根据本文实施例的第二方面,该目的通过一种计算机程序来实现,该计算机程序包括当由一个或多个处理器执行时使一个或多个设备执行根据第一方面的方法的指令。
根据本文实施例的第三方面,该目的通过包括根据第二方面的计算机程序的载体来实现。
根据本文实施例的第四方面,该目的通过一个或多个设备来实现,该一个或多个设备用于从借助于具有图像传感器的相机对对应的现实世界物体的3D成像所提供的三维(3D)虚拟物体的点集合中移除错误点。所述(一个或多个)设备被配置为获得所述点集合。所述设备还被配置为针对相应点识别集合中的冲突点(如果有的话)。冲突点是集合中根据预定义的一个或多个准则不能与相应点有效共存的点。而且,(一个或多个)设备被配置为基于对集合的相应点的所述识别,从集合中移除与集合中涉及冲突的其它点相比涉及冲突次数更多的集合中的一个或多个点。每次针对相应点在集合中识别出冲突点和/或每次相应点本身被识别为集合中的另一个点的冲突点时,集合中的相应点被认为涉及冲突。
与每次识别出冲突点时的删除或移除在许多情况下导致在冲突的情况下也移除正确点相比,本文的实施例提供了改进。对于本文的实施例,可以保留更多正确点,同时仍然可以移除真正不正确的点,即,与离群值对应的、不在与现实世界物体上被成像的实际位置对应的位置的点。本文的实施例可以基于统计方法和/或“共识投票”来考虑,并且可以与背景中提到的解决方案进行比较,其中移除的决定是基于识别出冲突,而不是考虑点的总数并且不是基于相应点涉及了多少冲突。
附图说明
本文参考所附示意图更详细地描述了实施例的示例,在下文中对附图进行简要描述。
图1示意性地图示了基于光三角测量的现有技术3D成像系统的示例,并且本文的实施例也可以使用和/或基于光三角测量。
图2示意性地图示了如何借助于图1中的3D成像系统生成现有技术中的点云的简化示例。
图3A示意性地图示了可以被配置为执行本文的实施例的成像系统以及测量物体的示例。
图3B示意性地图示了图3A中所示的成像系统和测量物体的一部分的3D视图。
图3C示意性地图示了图3A-B中所示的成像系统和测量物体的一部分的侧视图。
图3D-F示意性地图示了点云的点并且与图3C中所示的测量物体侧视图的虚拟视图对应。
图4是用于示意性地图示根据本文的实施例的方法的实施例的流程图。
图5A-B分别示出了没有应用和应用了本文实施例的测量物体的虚拟3D物体图像。
图6是用于图示一个或多个设备可以如何被配置为执行关于图4所讨论的方法和动作的实施例的示意性框图。
图7是图示与计算机程序及其载体相关的一些实施例的示意图,以使(一个或多个)设备执行关于图4所讨论的方法和动作。
具体实施方式
本文的实施例是示例性实施例。应当注意的是,这些实施例不必相互排斥。可以默认地假定来自一个实施例的组件存在于另一个实施例中,并且对于本领域技术人员而言,那些组件可以如何用于其它示例性实施例中是显而易见的。
图1示意性地图示了在背景技术中提到的这种类型的成像系统的示例,即用于3D机器视觉的基于用于捕获关于测量物体的3D特性的信息的光三角测量的成像系统105。该系统可以被用于提供下文进一步描述的本文实施例可以对其进行操作的表面点集合(即,点云)形式的3D图像。图中所示的系统105处于正常操作情况,即通常在已经执行校准并因此对系统进行校准之后。系统105被配置为执行光三角测量,这里是以背景技术中提到的光片三角测量的形式。系统105还包括光源110,例如激光器,用于以特定光图案111(在该图中例示并图示为光片)照亮要成像的测量物体。该光可以但不必是激光。在所示的示例中,目标物体以汽车形式的第一测量物体120和齿轮构造形式的第二测量物体121例示。当特定光图案111入射在物体上时,这与特定光图案111在物体上的投影对应,这在特定光图案111与物体相交时可以被观察到。例如,在所示的示例中,例示为光片的特定光图案111在第一测量物体120上产生光线112。特定光图案111被物体反射,更具体而言,在相交处即在所示示例中的光线112处被物体的部分反射。系统105还包括相机130,相机130包括图像传感器(图1中未示出)。相机和图像传感器相对于光源110和要成像的物体布置,使得特定的光图案在被物体反射时变成图像传感器上的入射光。图像传感器是通常实现为芯片的装置,用于将入射光转换成图像数据。通过反射在图像传感器上引起所述入射光的物体的所述部分可以由此被相机130和图像传感器捕获,并且可以产生并提供对应的图像数据以供进一步使用。例如,在所示的示例中,特定光图案111将在第一测量物体120的车顶的一部分上的光线112处朝相机130和图像传感器反射,从而可以产生并提供图像数据,该图像数据具有关于车顶的所述部分的信息。借助系统105的设置(包括几何结构)知识,例如,图像传感器坐标如何与现实世界坐标(诸如与要成像的物体及其上下文相关的坐标系统123(例如,笛卡尔)的坐标相关,图像数据可以被转换成关于以适当格式被成像的物体的3D特性(例如3D形状或轮廓)的信息。关于所述3D特性的信息,例如,所述(一个或多个)3D形状或(一个或多个)轮廓,可以包括以任何适当格式描述3D特性的数据。
通过移动例如光源110和/或要成像的物体,诸如第一测量物体120或第二物体121,使得物体的多个部分被照亮并且在图像传感器上引起反射光,实际上,通常通过扫描物体,可以产生描述物体的更完整3D形状的图像数据,例如,与物体的多个连续的轮廓对应,诸如所示的第一测量物体120的轮廓图像141-1-141-N,其中每个轮廓图像示出当相机单元130的图像传感器感测到产生轮廓图像的光时反射特定光图案111处的第一物体120的外形。如图所示,可以使用传送带122或类似物来使物体移动通过特定光图案112,其中光源110和相机单元130通常是固定的,或者可以使特定光图案111和/或相机130在物体上移动,使得物体的所有部分,或者至少面对光源110的所有部分被照亮,并且相机可以接收从期望成像的物体的不同部分反射的光。
由上可知,例如第一测量物体120的相机130及其图像传感器所提供的图像帧可以与轮廓图像141-1-141-N中的任何一个对应。如背景技术中所提到的,在轮廓图像141-1-141-N中的任何一个中所示的第一物体的轮廓的每个位置通常基于识别由图像传感器捕获的图像数据中的强度峰和找到这些强度峰的位置来确定。系统105和常规峰寻找算法通常被配置为在每个图像帧中搜索每个像素列的强度峰。如果传感器坐标是u,v,并且例如,如图中所指示的,u与图像传感器中沿着行的像素位置对应,v与沿着列的像素位置对应,那么对于图像帧的每个位置u搜索沿着v的峰位置,并且图像帧中识别出的峰可以产生如图所示的轮廓图像141-1-141-N。轮廓图像由基于传感器的坐标系143中的图像点u,v,t形成。图像帧和轮廓图像的总和可以被用于创建第一物体120的3D图像。
图2示意性地图示了如何借助于图1中的3D成像系统生成现有技术中的点云,即,3D虚拟物体的表面点集合,以促进理解本文将在下面进一步讨论的实施例。
在示例中使用楔形测量物体220。除了测量物体之外,图像系统105可以如图1中所示。当如图所示定位在测量物体220上的光线212处的相机130的图像传感器捕获图像并且识别出强度峰时,结果可以是图像传感器坐标u,v处的点,如图所示。在示例中,点与测量物体220的表面的样本对应,即,点与表面点对应。注意的是,此处绘制的是点而不是连接点的线,如图1中的轮廓图像141-1..141-N的情况。每个点处于强度峰位置。使用系统105的几何结构的所述知识和所使用的设置,u,v中的图像传感器坐标以及图像被传感器捕获的时间t(与现实世界坐标x,y,z点相关),或者更确切地说,诸如在基于传感器的坐标系143中的坐标u,v,t中的点的位置如何可以被转换成3D虚拟坐标系x',y',z'中的相应位置。当完整的测量物体220已经被光线212扫描后,结果因此可以是如图所示的这样的点集合,即,点云260。在所示示例中,点集合260与测量物体220的表面的样本对应,因此可以被用于例如绘制对应的虚拟物体。虚拟物体的轮廓在图中用点线261指示,以促进理解点集合260与测量物体220对应。
图3A示意性地图示了成像系统305的简化的第一示例,其可以被配置为执行本文的实施例,即,用于实现本文的实施例。成像系统305基于用于捕获关于一个或多个测量物体的2D和3D特点的信息的光三角测量。
所示系统与基本配置对应并且包括:光源310,用于用光311(通常是激光)照亮测量物体320,作为测量物体220的3D成像的光三角测量的一部分。具有图像传感器331的相机330被布置用于感测来自测量物体320的反射光,作为用于3D成像的所述光三角测量的一部分。
相机330、图像传感器331和光源310相对于彼此配置和定位以用于光三角测量。出于光三角测量的目的,系统305可以与图1中的系统105对应,但是可以附加地被配置为根据如下文进一步描述的本文的实施例来执行。
因此:测量物体320可以与第一测量物体120或测量物体220对应,并且被示为至少部分地位于相机330的视场332内。光源310被配置为用光311照亮测量物体320,通常以结构光的形式,诸如特定的光图案,例如光片和/或光(诸如激光)线,其被测量物体320反射并且反射的第一光由相机330和图像传感器331捕获。可以用作第一光的结构光的另一个示例是光边缘,即,具有照明的区域或部分的边缘。照明在该示例中处于垂直方向,即,基本上平行于z轴。但是,如将从下文中认识到的,其它一个或多个照明方向当然可以与本文的实施例一起使用,包括例如所谓的“镜面”配置,其中光源(例如,激光器)基本上指向具有“镜面”入射角的测量物体,与相机的视角对应但来自相反的一侧。
测量物体320因此可以被照亮并且图像可以如在常规光三角测量中那样被捕获。因此这样的所述光三角测量可以如现有技术中那样并且涉及光源310和/或测量物体320相对于彼此的移动,使得在不同的连续时刻,测量物体320的不同连续部分被光源310和光211照亮。从测量物体320反射之后的光311被图像传感器331感测。在光三角测量中,通常但不是必需,相机330和第一光源310被彼此相关地固定并且测量物体320相对于这些移动。通过图像传感器331的所述感测,相应的图像帧与图像帧被感测(即,捕获)的相应时刻相关联,并且与图像传感器331在相应时刻从其感测到反射的第一光311的测量物体320的相应部分相关联。
由相机330和图像传感器331提供的图像帧和/或从图像帧导出的信息(例如,强度峰位置)可以被传送到例如计算设备333(诸如计算机或类似设备),以供在相机330外部的进一步处理。这样的进一步处理可以附加地或可替代地由单独的计算单元或设备(未示出)执行,单独的计算单元或设备例如为与图像传感器331分开,但仍然包括在相机330中(例如与相机330或包括相机330的单元集成)。计算设备333(例如,计算机)或另一个设备(未示出)可以被配置为控制涉及光三角测量的设备,以便执行光三角测量和相关动作。而且,所述计算设备333(例如,计算机)或另一个设备(未示出)可以被配置为如上文结合图2所描述的那样执行,例如,基于由相机330和图像传感器331提供的所述图像帧和/或从图像帧导出的信息。所述计算设备333(例如,计算机)或所述另一个设备(未示出)由此可以提供与测量物体320对应的3D虚拟物体的点集合,即,点云。在一些实施例中,所述计算设备333(例如,计算机)或另一个设备(未示出)还被配置为执行与如下文进一步描述的本文的实施例相关的动作。
考虑合理且实际的假设,即,测量物体(例如,测量物体320)具有连续表面,没有表面部分或“漂浮在空中”的点,没有通过表面连接到物体的至少一些其它部分和点,即,假设所有表面点都连接到一个或多个相邻的表面点。这是正确的假设并且原则上与所有点的实际情况对应。如果存在特殊情况,例如,由于特殊设置和/或物体,在完全或部分不是这种情况的情况下使用成像系统和/或测量物体,通常可以提前识别这种情况并将其作为特例处理。因此,该假设没有负面实际后果或者其负面实际后果可忽略。这同样应当适用于基于这种测量物体的3D成像的点云的表面点。即,点云的所有表面点都通过连贯表面与最近的邻域表面点相连,并且表面点之间也存在连贯表面。当曲面细分被用于可视化基于点云的3D虚拟物体时,这通常也是正常假设,并且与所有表面点都通过(一条或多条)直线连接到它们最近邻域表面点对应,假设除了这样的表面点本身之外,线和线之间的表面与实际测量物体的连贯且不透明表面对应,即,相机可以看穿的表面点之间的表面中没有孔或透明区域。
图3B示意性地图示了3D视图中并且在现实世界坐标系323中以坐标x、y、z示出的测量物体320。相机330在这里由其相机光学中心C 330b和与视场对应的虚拟平截头体330a表示。因此,相机330和图像传感器331所成像的是入射到虚拟平截头体330a中的光线。图中仅绘制了三条这样的光线332作为示例,与相对于相机330从测量物体320的顶部和最远边缘的正上方发出的光线对应。而且,仅作为示例,两个虚设物体321a-b如图所示。可以认识到的是,在相机如示例中那样定位的情况下,与虚设物体321a对应的物理物体不能被相机330成像,因为它被测量物体320遮挡或“遮蔽”。这与虚设物体321a位于光线332下方对应。另一方面,虚设物体321b可以被成像,因为从相机330看,它没有被测量物体320遮挡,并且被定位成使得来自虚设物体321b的光线可以到达相机330并被相机330成像。
点云(诸如点云260)的表面点可以相对于相机(例如,相机130)或在拍摄这个表面点所基于的图像时使用的视角、方向进行评估。当拍摄图像时,基于上述合理假设,可以存在被测量物体(例如,测量物体220或320)的其它部分遮挡的部分。同样的原理可以用于点云的表面点的评估。但是,在那种情况下,对应的相机方向应当在点云的3D虚拟坐标系x',y',z'中,例如,在点云260的情况下,在3D虚拟坐标系253中。即,在现实世界坐标系x,y,z(例如,现实世界坐标系223或323)中对(例如,测量物体220或320的)现实世界物体表面点的点进行成像时的相机方向可以在3D虚拟坐标系x',y',z'(例如,3D虚拟坐标系253)中被转换成对应的(即,虚拟)相机方向。作为替代,基于所涉及的坐标系之间的已知关系(例如,如由用于所使用的3D成像系统和设置的设置和关系给出的,例如,如当使用那种3D成像系统时用于光三角测量的),将被用于点云的点的对应相机方向可以直接在3D虚拟坐标系中(即,在x',y',z'中)确定。
利用上述内容的一种方式是,对于点云的每个表面点(例如,点云260的表面点),识别点云的一个或多个冲突点。即,对于每个点,识别和/或调查是否存在任何其它一个或多个点不能与调查点同时有效存在,例如,由于它们中的至少一个被另一个遮挡。如果其中一个点“挡住”另一个点或彼此“挡住”,那么两个表面点可以被认为是冲突的,因此相机不可能同时看到它们。换句话说,如果是这种情况,那么冲突点中的一个或至少一个必然是错误的或不正确的。在那种情况下,可以从点云中移除这两个点,以确保没有使用错误点。但是,可以认识到的是,许多正确点也将被移除,这在一些情况下是不期望的甚至是关键的。利用在一些情形下可以是合理的进一步假设,即,在发生冲突的情况下始终是最接近相机的点是正确的,因此可以实现一些改进使得不移除或至少移除更少的正确点。但是,存在这种方法也导致正确点被移除的情况,即,当距离相机最近的点不是正确点时。例如,如果错误点是由于噪声或反射引起的,那么会发生这种情况,这会导致错误点相对于正确点更靠近和/或更远离相机。在那种情况下,总是移除最靠近相机的点甚至会产生更糟糕的效果,因为会移除正确点并保留错误点。
本文的实施例提供了关于上述内容的改进。简而言之,它们可以被描述为基于统计方法和/或共识投票。可以检查点云的所有点或大量点是否与组中的其它点冲突,而不是仅考虑彼此冲突的点,然后移除冲突的所有或一些点,每次当每个点被识别为涉及与另一个点的冲突时,该每个点可以被归因于分数。即,当点云的点涉及冲突时,它的分数增加,并且对点云的所有点都这样做。因此,每个点的总分就会指示该点总共涉及的冲突次数,甚至与其成正比。因此,有可能通过点的总分(即,它们所涉及的冲突的总数),而不仅仅是他们是否涉及冲突,来对点进行比较和评估。然后,可以移除与阈值对应的某个分数以上的涉及冲突的所有点。换句话说,用这种方法移除了涉及最多冲突的点,而不是仅基于冲突本身的识别来做出任何移除决定。真正不正确的点(即,那些不在与现实世界测量物体(例如,测量物体220或320)上的被成像实际表面位置对应的位置的那些点)通常比其它点涉及更多的冲突,至少平均来说是这样,并且因此将在更大程度上通过根据本文的实施例的方法被移除。
可以以灵活的方式预先确定所述阈值。例如,可以实现改变阈值的滑动条并且结果可以直接在基于点云的剩余表面点绘制的虚拟3D物体中可视化。这使得用户有可能针对给定的设置找到合适的阈值级别,该阈值级别移除否则在基于点云的剩余表面点绘制3D物体时会导致伪影的点。典型的伪影是绘制3D虚拟物体时出现在3D虚拟物体中的尖峰。同时,用户可以确保没有使用太低的阈值,即,导致移除期望保留的实际物体细节的阈值。
图3C是如图3B中所示的测量物体320的侧视图。在这个图中还示出了在图3B中被排除的例示表面325,其支撑测量物体320并且测量物体320驻留在其上。表面325例如可以是传送带或类似物的一部分,例如,如可以在如上面所提到的光三角测量期间使用的那样,或者可以是固定的表面,例如,桌子或类似物的一部分。在后一种情况和光三角测量中,相机和光源可以移动以完成测量物体320的扫描。注意的是,表面325不需要被成像,并且可以例如在视场之外,或者被排除在点云之外。在一些实施例中,可以存在不位于测量物体320下方但例如位于测量物体320的侧面或上方的表面或其它结构,并且测量物体连接到该表面或其它结构,例如以在3D成像期间确保测量物体保持在特定位置、朝向和/或以期望的方式移动。
图3D是与图3C中现实世界视图对应的虚拟视图。图3D示意性地示出了与现实世界坐标系323(在x,y,z中)的虚拟版本对应的3D虚拟坐标系353中(在x',y',z'中)点云的一些表面点P1-P15(只有一些表面点被明确标出)。因此,此处的点云包括与测量物体320对应的虚拟物体的表面点。测量物体及其侧视图在被完美建模时的外观由图3D中的细点线轮廓线361指示,它是仅供参考而显示的。
例如,将图3C-3D与如上文解释的图2中例示的情况进行比较,关于3D虚拟坐标系253中(即,x',y',z'中)的点云260可以如何通过3D成像形成,在示例中是通过对在现实世界坐标系323中(即,在x,y,z中)的测量物体320进行光三角测量和线扫描的。因此,图3D中的表面点P1-P15可以是从测量物体320的3D成像得到的点云的点,例如从使用成像系统305的光三角测量和线扫描得到的。
表面点P1-P15被示为彼此连接以说明上面提到的情况,假设表面点连接到它们最近的邻域表面点。这在图中被可视化以促进对接下来描述的冲突点的理解。所连接的点一般可以是那些如果如上面所提到的将应用曲面细分或类似物以便从这些点生成3D虚拟物体则将被连接的点。
图3D以及下文进一步描述的图3E-F示意性地图示并将在下文中用于解释和例示本文的实施例背后的原理,诸如关于识别哪些表面点彼此冲突,哪些不彼此冲突。因此,这些图用于例示已使用如图3A中的设置的情况。
图3D用于图示当被调查的点(即,识别与Pi相关的冲突的点)是点P4时的如下示例,即,在示例中Pi=P4。图3E关于对应的情况,但Pi=P12,并且图3F是当Pi=P13时。如上面所提到的,检查点的冲突是关于识别哪些其它点(如果有的话)与所述点冲突,或者换句话说,哪些其它点(如果有的话)不能与正被调查的点(即,正在识别冲突的点)同时有效存在。
在图3D-F中,点C'(i)与针对点Pi的相机在3D虚拟坐标系353中(即,在与点云的点(此处为P1-P15)相同的坐标系中)的位置对应。C'的位置可以被称为虚拟相机位置。相机的位置可以适当地与相机中心C对应和/或由其表示。给定相机的类型和所使用的设置,技术人员能够确定相机中心位置,或者是否相机位置的其它表示更合适,例如,如下面进一步讨论的。
注意的是,取决于用于测量物体320的3D成像(即,产生点云的表面点所基于的图像的成像)的3D成像系统和设置,3D虚拟坐标系x',y',z'中的相机位置C'对于不同的表面点可以不同。在用线扫描进行光三角测量的情况下,相机位置C'关于照亮测量物体的光线是相同的,因此例如关于每个轮廓图像是相同的,例如,关于每个轮廓图像141-1…141-N是相同的。但是,由于时间维度,即,捕获相应图像帧的时间,被用于为3D虚拟坐标系提供关于第三维度(更具体地关于本文所示的示例中的y')的信息,认识到相机位置C'对于y'中的不同位置是不同的。在示例中,i表示沿着y'的位置,这意味着相机位置C'取决于i,即,C'(i)。换句话说,对于相同的y'和i,相机在x',y',z'中的位置C'是相同的。但是,如果点P的z'发生改变,例如,与P3-P12相比,P13就是这种情况,C'(i)仍然是相同的位置,就好像P13将位于与P3-P12相同的z'处,这意味着相机方向对于P13将是不同的。在示例中,这可以在图3F中看到。相机方向(即,从表面点Pi到用于那个表面点Pi的相机位置C'的x',y',z'中的方向)在示例中可以由虚拟光线352d表示,这取决于C'和Pi,因此可以表述为d(C',Pi)。由于d和相机方向在3D虚拟坐标系中,在此是3D虚拟坐标系353(即,在x',y',z',353)中,因此这种相机方向可以被称为虚拟相机方向。
注意的是,C'取决于P的位置并不是对于所有相关的3D成像系统(即,可以用于提供点云可以基于并然后通过本文的实施例进行改进的图像数据的3D成像系统)都需要这样。而且,除了本文的示例中以外的其它依赖性当然是可能的。
本文的实施例一般可以应用于点云的表面点,而与图像(即,点云所基于的图像)的提供方式无关,但应当存在经由相机和图像传感器从实际测量物体到点云的点并且从而也到基于点云的虚拟3D物体的预定义映射。
在一些情况下,对于点云的所有表面点P或应用本文的实施例的点云的部分,相机位置C'可以是或近似为相同。但是,一般而言,为了覆盖所有可能的情况,用于表面点P的相机位置C'可以被认为取决于表面点P在点云中的位置,即,C'(x',y',z'),但是相机位置C'预计至少对于基于相机捕获的一个且相同图像帧的点云的表面点是相同的。当本文的实施例应用于点云的表面点时,3D虚拟坐标系中的相机位置C'可以被认为是预定义的,或者甚至是预先确定的。相机位置C'可以被认为是由3D成像系统和在捕获点云的表面点所源自的(一个或多个)图像时使用的设置给出的或预先确定的。
注意的是,图3D-F仅示出对于某个x'沿着y'的一个侧视图,即,“切片”或平面,即,z'-y'平面,但C'当然不需要位于同一平面中,尽管为了简单起见,在下面的示例中可以假设这一点,这些示例关于例示如何为每个表面点P计算分数背后的一般原则。在实践中,从点P到相机位置C'的虚拟光线d通常是3D空间(即,在所有维度x',y',z'中,而不仅仅是在y',z'中)中的一条线。
类似的情况当然也适用于集合中的点,它们不仅像示例中的点P1-P15一样位于单个z'-y'平面中,因为这些点属于3D虚拟物体,因此包括在3D虚拟坐标系353的所有三个坐标(例如,所有的x',y',z')不同的位置处的点。
即使当本文的实施例在几个不同的此类平面的每个z'-y'平面上操作表面点P时,例如,近似地认为相机位置C'位于实际相机位置在该平面中投影的位置,对于表面点的移除,与保留点云的所有表面点相比,已经观察到基于本文的实施例的改进。但是,使用实际或更准确的相机位置C'能够实现进一步的改进。
如上面已经指示的,除了相机中心之外,相机位置C'的其它表示也是可能的。例如,如果使用正交相机,例如,相机330是正交的,诸如具有远心镜头的相机,或者如果所使用的相机近似于正交相机,即,具有平行光线而不是来自相机中心的光线的相机,图3D-F的示例中的结果将是所有相机方向都相同,即,来自每个点P的平行虚拟光线,与x'和z'无关。因此,在那种情况下,来自P13的虚拟光线与来自P12和来自P4的角度相同。即使当还没有使用真正的正交相机,但是相机方向被近似为好像是这种情况时,已经从本文的实施例的应用中观察到改进。
如果相机和相机位置C'放置得更远,那么对虚拟坐标系x,y,z中相机方向的影响(即,对从表面点P朝着相机的虚拟光线d的影响)变得类似于正交相机,即,用于所有表面点P的相机方向趋近于同一个方向。
在实践中,如果考虑关于相机位置C'和/或相机方向的近似值,例如,为了促进和/或简化实际实施、例行测试和实验(例如,涉及模拟)可以提供关于近似是否足够的信息,例如考虑到要满足的要求。例如,本领域技术人员可以在测试和实验中应用本文的实施例,使用真实相机位置C'和使用期望的近似值两者,然后比较结果,例如,比较当使用实际相机位置C'时基于表面点的3D虚拟物体与当代替地使用近似的相机位置C'时基于表面点的另一个3D虚拟物体。
下面的示例将参考图3D-F解释如何为每个表面点Pi计算分数背后的一般原则。
在图3D-F中,可以看到,除了P13之外的表面点P1-P15很好地遵循等高线361,至少与利用示例中的表面点密度所能够期望的一样好。点P13因此应当被理解为不正确表面点的示例,即,它不与现实世界测量物体320上的实际表面点对应。
如上面已经提到的,图3D的示例特别用于解释与表面点P4冲突的表面点的识别或调查。该图示出了针对点Pi=P4的两个“阴影”或遮挡区域A和B。应当认识到的是,利用图中所示的相机位置C'和上面提到的假设,测量物体320没有“悬在空中”的部分并且因此没有这样的表面点,可以得出如下结论。如果在区域A中有任何其它表面点P,那么P4将被遮挡,即,隐藏起来不被相机看到。因此,区域A中的任何点都是与P4的冲突点,即,不能有效地与P4共存,但可以看出,这个示例中并没有。具有“遮蔽”,即,被遮挡的点的情况可以与上面关于图3C讨论的“现实世界”中的类似情况进行比较,其中示例虚设物体321a被测量物体320“遮蔽”并且通过相机不可见,但示例虚设物体321b不是。
在图3D的区域B中出现针对区域A的对应情况。P4将遮挡区域B中的任何点,并且因此区域B中的每个点也将成为与P4的冲突点。如从示例中可以看出的,只有P13在区域B中,因此是P4的冲突点。因此,P4和P13可以暂时获得相应的分数1,或者这些点的任何现有分数可以增加1。例如,如果P4和P13以0开始并且这是第一个识别的冲突,那么它们可以由于对P4的冲突点的调查而都具有分数1。基于这个原理,可以认识到所示示例中P1-P3不涉及冲突。
注意的是,如本领域技术人员所认识到的,区域A和B也可以受到所使用的照明的方向的影响,并且在本文的示例中用图3A中的照明示出。图3D中示出了虚拟照明方向354,并且认识到,与相机类似,可以存在取决于x',y',z'中的位置的虚拟光源位置。但是,在所示示例中,来自相应点P的虚拟照明方向始终是垂直的,即,沿着z'。区域A和B,如果在其它情况下应用这样的或对应的区域,那么可以因此取决于已经用于这些情况的成像系统和设置而不同。一般而言,对于点P,它的区域A是在朝着相机的方向上的区域并且它的区域B是远离相机的区域。这两个区域使得,如果集合中的任何其它点位于那个区域中,那么这些点是冲突点,即,不能与点P有效共存的点。不能有效共存的点所在的位置取决于用于3D成像的成像系统和设置。该区域以及应用什么对应的区域A和/或B可由本领域技术人员基于在特定情况下使用的成像系统和设置来确定。
图3E示出了与图3D中对应的示例情况,但区域A和B为Pi=P12(即,i=12)示出。而且在此,只有P13是B中针对P12的冲突点。换句话说,P12和P13的分数可以增加1,因为它们都涉及与另一个点的冲突。另外,可以认识到的是,如果对P1-P12的所有点都进行了对应的调查,那么在识别出冲突点并增加分数之后,直到并包括P12,结果将是:
表面点 分数
P1-P3中的每一个 0
P4-P12中的每一个 1
P13 9
图3F示出了另一个示例情况,其中区域A和B针对Pi=13,即,i=13。在此,点P9-P12在区域A中,因此是P13的冲突点。从图中还可以认识到,P14-P15彼此之间或者与示例的任何其它点P1-P13不涉及任何冲突,因此,在所示示例中,在调查和识别所有示出的点P1-P15的冲突点之后得到的分数:
换句话说,使用3-13范围内的阈值并移除分数等于或大于这个阈值的所有点将导致从点云P1-P15中移除点P13。因此,不正确的点13将被移除。还认识到的是,没有P13的新结果点云将更好地拟合等高线361,因此与P13仍然是点云的一部分相比更好地表示现实世界物体。
在示例中,通常不需要在区域A和B中(即,朝向和远离相机)都寻找冲突点。出于实施原因,可能更喜欢只在一个方向上看,例如,朝向或远离相机位置C',即,对于相应点P在或者区域A或者B中。如果仅在区域B中检查,那么所示示例中的结果将是:
表面点 分数
P1-P3中的每一个 0
P4-P8中的每一个 1
P9-P12中的每一个 1
P13 9
P14-15中的每一个 0
认识到在这种情况下,P13也涉及大多数冲突。因此,如果在区域A或B中为相应的表面点寻找冲突点,那么该原理有效。但是,如果两个区域都被使用,那么实际不正确的点通常会获得更高的分数,因此在一些情况下,可以通过阈值移除更多不正确的点。
对于每个表面点,可能没有必要使用延伸到点云末端的区域A和/或区域B。代替地,仅检查沿着相机方向的特定距离可能就足够了,即,沿着每个表面点的虚拟光线d,朝向和/或远离相机。例如,参考图3D-F中所示的示例,假设仅检查区域B中最接近的5个连续y'位置。即,对于i=4的P4,检查点P5-P9是否存在冲突,即,使用沿着y'从P4延伸到P9的区域A。将此应用于所有点P1-P15,否则应用与上述相同的原则,结果是:
表面点 分数
P1-P7中的每一个 0
P8-P12中的每一个 1
P13 5
P14-15中的每一个 0
因此,在这种情况和示例中,也有可能通过例如使用合适的阈值将P13识别为要移除的点。
图4是用于示意性地图示根据本文的实施例的方法的实施例的流程图。可以构成该方法的以下动作用于从点集合(例如,由点P355-1…355-15例示的集合)(即,从点云)中移除错误的或可能错误的点,这些点与背景技术中提到的离群值对应。在实践中,应用本文的实施例的所关注的点云当然比上面简化示例中的仅15个点大得多。集合的点数可以在数百万点的数量级,仅举一些示例。所述点是3D虚拟物体的点,其通过借助于图像传感器的相机(例如,相机330和图像传感器331)对对应现实世界物体(例如,测量物体320)进行3D成像来提供。
另外,集合中的所述点通常是3D虚拟物体的表面点。它通常是现实世界物体的被成像的表面,但是例如,对于部分透明的物体,可以是通过实际最外表面的图像,因此虚拟物体和所述点集合在一些情况下可以与现实世界物体的内表面对应。
在一些实施例中,所述3D成像基于光三角测量,包括通过光源(例如,光源310)对现实世界物体(例如,测量物体320)的照明,其中所述光发射是来自由所述照明产生的现实世界物体的表面的反射光。
下面和图4中指示的方法和/或动作可以由(一个或多个)设备(即,一个或多个设备,诸如相机330和/或计算设备333)或由成像系统305和/或其合适的设备或连接到它的合适的设备执行。下面进一步描述用于执行该方法及其动作的(一个或多个)设备。
注意的是,以下动作可以以任何合适的次序进行和/或在可能且合适的情况下在时间上完全或部分重叠地执行。
动作401
获得所述点集合。例如,它可以从3D成像系统的测量和计算中获得,全部或部分由执行本方法所涉及的一个或多个相同设备获得,和/或通过从可以是3D成像系统的一部分的另一个设备或单元接收来获得,但可以可替代地从另一个已存储点集合的(例如,外部)设备或单元接收。另外,点集合可以与点云对应并且可以是与完整的现实世界物体或部分对应(即,覆盖其)的点,即,点可以是与仅现实世界物体的部分3D视图对应的3D虚拟物体的点。
动作402
对于相应点,例如,对于点355-1…355-15中的相应点,可以获得相应相机方向,例如,与相机方向352对应。相应相机方向与从现实世界物体的对应点朝着相机的光发射方向对应,该光发射在所述3D成像期间被图像传感器感测到。上面的虚拟光线352是这种相机方向的示例。如上面所提到的,所获得的相机方向可以被称为虚拟相机方向,因为它们是集合中的点的方向并且因此与用于该集合的3D虚拟坐标系的坐标有关。冲突点可以是集合中至少基于其相机方向不能与相应点有效共存的点。
相机方向可以通过基于3D成像系统的知识和当感测点所基于的图像时使用的设置如上所指示的那样被确定来获得,诸如计算和/或估计。点集合通常与现实世界坐标系(例如,3D成像系统和现实世界物体(例如,成像系统305和测量物体305)位于其中的x,y,z)中的位置如何与虚拟物体和所述点集合所在的对应3D虚拟坐标系(x',y',z')的坐标相关的预定义映射相关联。通常通过对用于3D成像的每个3D成像系统和设置执行的校准来提供映射,因此映射通常在执行本文的实施例时预先确定,并且至少映射可以被认为是预定义的或由在感测所述图像时使用的3D成像系统和设置给出。因此,通过了解相机在x,y,z中的位置,可以确定x',y',z'中的对应位置,并且还可以由此确定用于点的相机方向。
相机方向可以针对所使用的成像系统和设置已经预先确定,例如,针对x',y',z'中的各种位置,然后可以使用预先确定的相机方向来确定用于所述点集合中的点的相机位置。
在一些实施例中,可以通过从另一个设备或单元(例如,具有确定(诸如计算)的相机方向的设备或单元)完全或部分接收来获得预定相机方向,或者甚至用于所述点集合的相机方向。
如上面所指示,确定点是否是冲突点(即,它是否可以有效地与相应点共存)也可以考虑用于该点的虚拟光方向(即,与例如来自光源310的光在现实世界物体上的入射方向对应的入射光的虚拟方向),并且该入射光将是被现实世界物体反射并被相机和图像传感器感测到的光,诸如在光三角测量的情况下。上面讨论的示例性虚拟照明方向354与这种虚拟光方向对应。
因此,在一些实施例中,本动作附加地包括为相应点获得与例如来自光源的光在现实世界物体上的对应点上的入射方向对应的相应虚拟光方向。在这些实施例中,冲突点可以是集合中进一步基于其虚拟光方向不能与相应点有效共存的点。
动作403
对于相应点,例如,对于点355-1…355-15中的相应点,识别集合中的冲突点(如果有的话)。冲突点是集合中根据预定义的一个或多个准则不能与相应点有效共存的点。一个这样的准则可以基于为点获得的相机方向,如上文在动作402下提到的。认识到原则上所述一个或多个准则还可以基于对于所使用的3D成像系统和设置可以用于确定什么可以被同时看到和成像而什么不能的任何东西。例如,当涉及光方向时,例如,在光三角测量的情况下并如上面例示的,一个或多个准则还可以基于虚拟光方向,例如,以确定区域A和/或B或类似区域,如上面的示例中所示。如果光无法到达某个点,这可以是该点无法被相机看到的另一个原因,因此虚拟光方向可以与虚拟相机方向一起使用,以识别不能与另一个点有效存在的点,例如,以实现改进的预定义标准以进行应用。但是,由于暗示一些光必须通过现实世界物体的正确成像而到达相机,因此基于相机方向的准则和照明已到达所有点的假设可能就足够了。
在一些实施例中,冲突点是基于集合中的点(例如,点355-1…355-15)由连贯表面连接到其(或其至少一些)最近的邻域表面点并且该连贯表面将阻挡光(例如,在动作402下提到的这种光发射)的假设而不能与相应点有效共存的点。相应点通过连贯表面连接到的点可以与相应点将连接到的点对应,以便从点生成3D虚拟物体,例如,通过曲面细分和/或根据用于从点云生成3D虚拟物体的任何现有技术方法。
另外,在一些实施例中,对相应点的冲突点的识别限于集合中存在于距相应点一定距离内的点。这已在上面结合图3D-F进行了一些详细的示例和讨论,并且可以对应用于复杂的现实世界物体和/或广泛的点集合特别感兴趣,其中对于相应点来说,搜索整个点云以识别冲突点是不期望的和/或不切实际的。例如,识别冲突点(如果有的话)可能就足够了,这些冲突点在涉及具有可能的冲突点的最近的邻域点位置(例如,像素或更确切地说体素位置,因为它是3D的)的距离内。所述特定距离可以是预定义的或预先确定的,并且对于特定应用可以基于例行实验和测试来为所讨论的应用找到合适的和/或可接受的距离。
限制在一定距离内进行识别可以减少处理并使得可以更快执行的实施方式成为可能。
另外,位于远处的冲突点可能不太可能发生,并且将资源花费在识别非常远的冲突点(如果有的话)上可能效率不高。而且,如果存在远处的冲突点,那么当为更靠近该点的点识别出冲突时,无论如何都可以将其识别为具有许多冲突的点。
通过例如拆分更大的点集合,或将本文的实施例应用于完整的虚拟物体集的部分集,例如,在线扫描和光三角测量期间输出的部分集,可以实现与限制到一定距离相似的效果。
为相应点识别出的冲突的数量(例如,对于应用本文的实施例的点云的每个点)可以例如通过如上面所提到的那样增加用于每个点的分数来保持计数。
可以存储针对相应点的已识别出的冲突的信息(诸如计数)。当用于集合的点(例如,对于集合的每个点)的冲突点已经被识别出时,这些点已经涉及不同数量的冲突并且可以为每个点存储识别或指示该点已涉及的识别出的冲突的总数的值和/或标识符。
动作404
基于对相应点的所述识别,即,基于动作403,比集合中涉及冲突的其它点涉及冲突的次数更多的集合中的一个或多个点从集合中被移除。该集合的相应点(例如,点355是点355-1…355-15中的任何一个)每次(即,当)在集合中识别出针对该相应点的冲突点时和/或每次该相应点本身被识别为该集合的另一个点的冲突点时都被认为涉及冲突。上面结合图3D-F对此进行了一些详细的例示和解释。
在一些实施例中,涉及冲突的次数超过预定义阈值的点从集合中被移除。预定义阈值,通常是值或数字的阈值,可以如上文所讨论的并且可以在一些实施例中被预先确定。
在一些实施例中,所述一个或多个预定义准则基于相机(例如,相机330)虚拟地(即,理论上)可以从其在所述点集合的坐标系(即,用于集合的点的位置的坐标系,例如,虚拟坐标系353)中的对应位置看到什么。用于相机的对应位置可以从测量物体的现实世界坐标系(例如,x,y,z)与虚拟物体和点集合的虚拟坐标系(例如,x',y',z')之间的预定义或预先确定的映射中找到,如上面所提到的。相机位置可以由相机中心表示,或者由也如上面所提到的其它表示表示。
因此,相机虚拟地(即,理论上)可以看到的内容可以基于点集合和相机在与所述点集合相同的坐标系中(例如,在x',y',z'中)的位置。注意的是,这可以与相机在现实世界中实际看到的不同。利用相机在理论上(即,虚拟地)可以或可能看到的东西的一个优点是,所有计算都可以使用通常已经可用的信息和数据(包括点集合)在x',y',z'中完成,而无需任何附加且常常复杂的现实世界测量以及进一步到x',y',z'的映射(如果必须确定相机实际可以看到什么)。
如上面已经提到的,与每次识别冲突点时删除或移除(其在许多情况下导致在冲突的情况下也移除正确点)相比,本文的实施例提供了改进。对于本文的实施例,可以保留更多正确点,同时仍然可以移除真正不正确的点,即,不在与现实世界物体(例如,测量物体220或320)上的成像真实位置对应的位置中的点。
如上所述,本文的实施例可以与背景技术中提到的现有技术中的解决方案进行比较,其中基于轮廓的盲点区域的存在(即,基于存在冲突的事实)来决定删除(即,移除)轮廓的一部分,因此对所有已识别出的冲突进行删除。换句话说,在现有技术中,移除是基于识别出冲突,而不是基于点涉及了多少冲突。
另外,本文的实施例对于移除由噪声或反射造成的错误点可以是高效的。在基于光三角测量的3D成像的情况下,反射可以作为强度峰发现的一部分被减少或移除,但是对于本文的实施例,由于反射而引起的错误点可以附加地或可替代地从点云中移除。
图5A-B分别示出了没有应用和应用本文的实施例的测量物体的虚拟3D物体图像。
图5A示出了基于要应用本文的实施例的所获得的点集合(即,点云)的3D虚拟物体的图像。点云是按照惯例提供的,这里是来自现有技术的光三角测量。点云可以与在动作401中获得并且要对其运用本文的实施例的点云对应。如可以看出的,点云包括离群值,即,不正确的点,其造成失真,在图像中示出的物体上可见为“尖峰”。
图5B示出了基于相同获得的点集合但在应用本文的实施例之后(即,在移除涉及的冲突超过特定阈值的点之后)对应3D虚拟物体的另一个图像。在所示示例中,本文的实施例被应用于大约30000个点的集合,并且对于相应点,在25个像素的距离内的冲突点(如果有的话)被识别出。用于相应点的分数在开始时为0,并且每个识别出的冲突都会导致分数增加1。使用总分阈值3,并且将总分高于这个阈值的所有点从集合中移除。结果是移除了1804个点。可以清楚地看到改进,其中所示出的图像上不再出现所述“尖峰”。
图6是用于图示可以与上文已经提到的用于执行本文实施例(诸如用于执行以上关于图4描述的方法和/或动作)的(一个或多个)设备对应的一个或多个设备600(即,(一个或多个)设备600)的实施例的示意性框图。因此,(一个或多个)设备600用于从借助于具有图像传感器的相机对对应的现实世界物体的3D成像所提供的(例如,如借助于具有图像传感器331的相机330对测量物体320的3D成像所提供的)3D虚拟物体的点集合中移除错误点。(一个或多个)设备600可以例如与计算设备333和/或相机330对应,或包括在包括相机和图像传感器的3D成像系统中和/或形成其的合适设备(例如,成像系统305),或者可以是提供点集合的3D成像系统外部的设备(例如,计算机)。
示意性框图用于说明关于(一个或多个)设备600如何可以被配置为执行上面关于图4所讨论的方法和动作的实施例。
(一个或多个)设备600可以包括处理模块601,诸如处理部件、一个或多个硬件模块,包括例如一个或多个处理电路、电路系统(诸如处理器),和/或用于执行所述方法和/或动作的一个或多个软件模块。
(一个或多个)设备600还可以包括存储器602,其可以包括诸如包含或存储计算机程序603。计算机程序603包括由(一个或多个)设备600直接或间接可执行的“指令”或“代码”以执行所述方法和/或动作。存储器602可以包括一个或多个存储器单元并且还可以被布置为存储数据(诸如配置、数据和/或值),这些数据涉及或用于执行本文的实施例的功能和动作。
而且,(一个或多个)设备600可以包括参与处理和例如编码数据的处理电路系统604,作为(一个或多个)示例性硬件模块,并且可以包括一个或多个处理器或处理电路或与其对应。(一个或多个)处理模块601可以包括例如“以处理电路系统604的形式实施”或“由处理电路系统604实现”。在这些实施例中,存储器602可以包括可由处理电路系统604执行的计算机程序603,由此(一个或多个)设备600可操作或被配置为执行所述方法和/或其动作。
通常,(一个或多个)设备600(例如,(一个或多个)处理模块601)包括(一个或多个)输入/输出(I/O)模块605,其被配置为涉及(例如通过执行)与其它单元和/或设备的通信(诸如向其它设备发送和/或从其接收信息)。(一个或多个)I/O模块605可以通过在适用时获得(例如,接收)(一个或多个)模块和/或提供(例如,发送)(一个或多个)模块来例示。
另外,在一些实施例中,(一个或多个)设备600(例如,(一个或多个)处理模块601)包括(一个或多个)获得模块、(一个或多个)识别模块、(一个或多个)移除模块中的一个或多个,作为用于执行本文实施例的动作的(一个或多个)示例性硬件和/或软件模块。这些模块可以完全或部分地由处理电路系统604实现。
因此:
(一个或多个)设备600和/或(一个或多个)处理模块601和/或处理电路系统604和/或(一个或多个)I/O模块605和/或(一个或多个)获得模块可操作或被配置为获得所述点集合。
(一个或多个)设备600和/或(一个或多个)处理模块601和/或处理电路系统604和/或(一个或多个)I/O模块605和/或(一个或多个)获得模块可以可操作或被配置为针对所述相应点获得所述相应相机方向。
(一个或多个)设备600和/或(一个或多个)处理模块601和/或处理电路系统604和/或(一个或多个)识别模块可操作或被配置为针对所述相应点识别冲突点。
(一个或多个)设备600和/或(一个或多个)处理模块601和/或处理电路系统604和/或(一个或多个)移除模块可操作或被配置为基于对集合中的所述相应点的所述识别从所述集合中移除涉及冲突的次数比集合中的其它涉及冲突的点更多的所述集合中的一个或多个点。
图7是图示与计算机程序及其载体相关的一些实施例的示意图,以使(一个或多个)上述设备600执行所述方法和动作。
计算机程序可以是计算机程序603并且包括当由处理电路系统604和/或(一个或多个)处理模块601执行时使(一个或多个)设备600如上所述执行的指令。在一些实施例中,提供了一种载体,或者更具体而言,数据载体,例如,包括计算机程序的计算机程序产品。载体可以是电子信号、光信号、无线电信号和计算机可读存储介质中的一种,例如,如图中示意性示出的计算机可读存储介质701。计算机程序603因此可以存储在计算机可读存储介质701上。载体可以不包括暂态的、传播的信号,并且数据载体可以对应地被命名为非暂态数据载体。作为计算机可读存储介质的数据载体的非限制性示例是存储卡或记忆棒、诸如CD或DVD之类的盘存储介质、或通常基于(一个或多个)硬盘驱动器或(一个或多个)固态驱动器(SSD)的大容量存储设备。计算机可读存储介质701可以被用于存储可通过计算机网络702(例如,互联网或局域网(LAN))访问的数据。计算机程序603还可以作为(一个或多个)纯计算机程序提供或包含在一个或多个文件中。一个或多个文件可以存储在计算机可读存储介质701上,并且例如可通过例如通过如图所示的计算机网络702例如经由服务器下载而获得。该服务器例如可以是web或文件传输协议(FTP)服务器。例如,一个或多个文件可以是可执行文件,用于直接或间接下载到(一个或多个)所述设备并在其上执行以使其如上文描述的那样执行,例如通过被处理电路系统604执行。一个或多个文件也可以或者可替代地用于涉及相同或另一个(一些)处理器的中间下载和编译,以使它们在进一步下载和执行之前可执行,从而使得所述(一个或多个)设备600如上所述执行。
注意的是,前面提到的任何(一个或多个)处理模块和(一个或多个)电路可以被实现为软件和/或硬件模块,例如,在现有硬件中和/或作为专用集成电路(ASIC)、现场可编程门阵列(FPGA)等。还要注意的是,前面提到的任何(一个或多个)硬件模块和/或(一个或多个)电路可以例如包括在单个ASIC或FPGA中,或者分布在几个分离的硬件组件中,无论是单独包装还是组装到片上系统(SoC)中。
本领域技术人员还将认识到的是,本文讨论的模块和电路系统可以指硬件模块、软件模块、模拟和数字电路的组合,和/或配置有软件和/或固件的一个或多个处理器,例如,存储在存储器中,当由一个或多个处理器执行时,可以使(一个或多个)设备、(一个或多个)传感器等被配置为和/或执行上述方法和动作。
本文通过任何标识符进行的标识可以是隐含的或显式的。标识在特定上下文中可以是唯一的,例如对于特定计算机程序或程序提供者。
如本文所使用的,术语“存储器”可以指用于存储数字信息的数据存储器,通常是硬盘、磁存储装置、介质、便携式计算机软盘或盘、闪存、随机存取存储器(RAM)等。此外,存储器可以是处理器的内部寄存器存储器。
还要注意的是,任何列举的术语(诸如第一设备、第二设备、第一表面、第二表面等)都应当被认为是非限制性的,并且这样的术语并不暗示某种层次关系。相反,在没有任何明确信息的情况下,列举命名应当被认为仅仅是一种完成不同名称的方式。
如本文所使用的,表述“被配置为”可以意味着处理电路被配置为或适于借助于软件或硬件配置来执行本文描述的动作中的一个或多个。
如本文中所使用的,术语“数值”或“值”可以指任何种类的数字,诸如二进制、实数、虚数或有理数等。此外,“数值”或“值”可以是一个或多个字符,诸如字母或字母串。另外,“数值”或“值”可以由位串表示。
如本文中所使用的,表述“可以”和“在一些实施例中”通常已用于指示所描述的特征可以与本文公开的任何其它实施例组合。
在附图中,可以仅存在于一些实施例中的特征通常使用点线或虚线来绘制。
当使用单词“包括(comprise)”或“包含(comprising)”时,应将其解释为非限制性的,即,意味着“至少由……组成”。
本文的实施例不限于上述实施例。可以使用各种替代、修改和等同形式。因此,以上实施例不应被视为限制由所附权利要求限定的本公开的范围。

Claims (10)

1.一种用于从借助于具有图像传感器(331)的相机(330)对对应现实世界物体(320)的三维3D成像所提供的3D虚拟物体的点集合(355-1..355-15)中移除错误点的方法,其中所述方法包括:
-获得(401)所述点集合(355-1..355-15);
-针对相应点(355)识别(403)集合中的冲突点,如果有的话,其中冲突点是集合中根据预定义的一个或多个准则不能与相应点(355)有效共存的点;以及
-基于针对集合中的相应点(355)的所述识别,从集合中移除(404)与集合中涉及冲突的其它点相比涉及冲突次数更多的集合中的一个或多个点,其中每次针对相应点在集合中识别出冲突点和/或每次相应点本身(355)被识别为集合中的另一个点的冲突点时,集合中的所述相应点(355)被认为涉及冲突。
2.如权利要求1所述的方法,其中从集合中移除涉及冲突次数超过预定阈值的点。
3.如权利要求1-2中的任一项所述的方法,其中所述预定义的一个或多个准则至少基于相机(330)从其在所述点集合(355-1..355-15)的坐标系(353)中的对应位置虚拟可见的内容。
4.如权利要求1-3中的任一项所述的方法,其中所述方法还包括:
-针对相应点(355)获得(402)与从现实世界物体(320)的对应点朝着相机(330)的光发射的方向对应的相应相机方向(352),所述光发射在所述3D成像期间被图像传感器(331)感测;
其中冲突点是集合中至少基于其相机方向(352)不能与相应点(355)有效共存的点。
5.如权利要求1-4中的任一项所述的方法,其中,基于集合中的点(355-1..355-15)通过连贯表面与最近的邻域表面点连接并且该连贯表面会阻挡光的假设,冲突点是集合中不能与所述相应点(355)有效共存的点。
6.如权利要求1-5中的任一项所述的方法,其中针对相应点的冲突点的识别限于集合中存在于距所述相应点一定距离内的点。
7.如权利要求7所述的方法,其中3D成像基于光三角测量,其包括光源(310)对所述现实世界物体(320)的照明,其中所述光发射是由所述照明引起的来自所述现实世界物体(320)的表面的反射光。
8.一种计算机程序(603),包括当由一个或多个处理器(604)执行时使一个或多个设备(600)执行根据权利要求1-7中的任一项所述的方法的指令。
9.一种载体,包括根据权利要求8所述的计算机程序(603),其中所述载体是电信号、光信号、无线电信号或计算机可读存储介质(701)中的一种。
10.一个或多个设备(600),用于从借助于具有图像传感器(331)的相机(330)对对应现实世界物体(320)的三维3D成像所提供的3D虚拟物体的点集合(355-1..355-15)中移除错误点,其中所述一个或多个设备被配置为:
获得(401)所述点集合(355-1..355-15);
针对相应点(355)识别(403)集合中的冲突点,如果有的话,其中冲突点是集合中根据预定义的一个或多个准则不能与所述相应点(355)有效共存的点;以及
基于对集合的相应点(355)的所述识别,从集合中移除(404)与集合中涉及冲突的其它点相比涉及冲突次数更多的集合中的一个或多个点,其中每次针对相应点在集合中识别出冲突点和/或每次相应点本身(355)被识别为集合中的另一个点的冲突点时,集合中的所述相应点(355)被认为涉及冲突。
CN202310108914.9A 2022-02-25 2023-02-13 用于从由3d成像提供的3d虚拟物体的点集合中移除错误点的方法和装置 Pending CN116664412A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP22158997.1 2022-02-25
EP22158997.1A EP4235563B1 (en) 2022-02-25 2022-02-25 Method and arrangements for removing erroneous points from a set of points of a 3d virtual object provided by 3d imaging

Publications (1)

Publication Number Publication Date
CN116664412A true CN116664412A (zh) 2023-08-29

Family

ID=80624006

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310108914.9A Pending CN116664412A (zh) 2022-02-25 2023-02-13 用于从由3d成像提供的3d虚拟物体的点集合中移除错误点的方法和装置

Country Status (4)

Country Link
US (1) US20230274452A1 (zh)
EP (1) EP4235563B1 (zh)
JP (1) JP2023124840A (zh)
CN (1) CN116664412A (zh)

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7306867B2 (ja) * 2019-04-26 2023-07-11 株式会社キーエンス 光学式変位計

Also Published As

Publication number Publication date
JP2023124840A (ja) 2023-09-06
US20230274452A1 (en) 2023-08-31
EP4235563A1 (en) 2023-08-30
EP4235563B1 (en) 2024-04-03

Similar Documents

Publication Publication Date Title
JP2835274B2 (ja) 画像認識装置
US8422759B2 (en) Image processing method and image processing device
JP6736257B2 (ja) 情報処理装置、情報処理方法、プログラム
CN106469448B (zh) 利用3d视觉进行自动化工业检查
JP2011163766A (ja) 画像処理方法および画像処理システム
CA2554781A1 (en) Method and system for image processing for profiling with uncoded structured light
KR102460791B1 (ko) 3차원 이미징 시스템에서 광 삼각 측량으로부터의 이미지 데이터에 강도 피크 위치를 제공하기 위한 방법 및 장치
JP2014203311A (ja) 画像処理装置、画像処理方法、およびプログラム
CN117571721A (zh) 一种电路板焊盘表面缺陷检测方法、装置及存储介质
CN116664412A (zh) 用于从由3d成像提供的3d虚拟物体的点集合中移除错误点的方法和装置
CN116908185A (zh) 物品的外观缺陷检测方法、装置、电子设备及存储介质
EP3062516B1 (en) Parallax image generation system, picking system, parallax image generation method, and computer-readable recording medium
CN115203815A (zh) 生产速度部件检查系统和方法
JPH1038542A (ja) 物体認識方法及び装置並びに記録媒体
US20230375709A1 (en) Detection device, determination method, and non-transitory computer-readable medium
Qiao et al. Valid depth data extraction and correction for time-of-flight camera
CN110291557B (zh) 监视装置
CN116046791B (zh) 点胶缺陷检测方法及检测装置
JP2002277409A (ja) プリント基板パターンの検査装置
JP2004037134A (ja) メタルマスク検査方法及びメタルマスク検査装置
US20230186510A1 (en) Method and arrangements for determining information regarding an intensity peak position in a space-time volume of image frames
JP2000230815A (ja) 光学式3次元計測装置、及び光学式3次元計測方法
CN111833286A (zh) 点云处理方法及其系统、检测方法及其系统、可读介质
KR102351152B1 (ko) ToF 센서를 이용한 삼차원 카메라의 다중 반사 경로로 인한 깊이 정보 오차 보정 방법 및 장치
Fernandes et al. A fast and accurate approach for computing the dimensions of boxes from single perspective images

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