CN110889884B - 对物体三维重建初始对应分配有效数据处理的方法和设备 - Google Patents

对物体三维重建初始对应分配有效数据处理的方法和设备 Download PDF

Info

Publication number
CN110889884B
CN110889884B CN201910840302.2A CN201910840302A CN110889884B CN 110889884 B CN110889884 B CN 110889884B CN 201910840302 A CN201910840302 A CN 201910840302A CN 110889884 B CN110889884 B CN 110889884B
Authority
CN
China
Prior art keywords
pixel
fingerprint
images
binary
pixel fingerprint
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.)
Active
Application number
CN201910840302.2A
Other languages
English (en)
Other versions
CN110889884A (zh
Inventor
M·格罗斯
M·谢弗
S·威勒克
B·哈伦特
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 CN110889884A publication Critical patent/CN110889884A/zh
Application granted granted Critical
Publication of CN110889884B publication Critical patent/CN110889884B/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
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • 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
    • G06T1/00General purpose image data processing
    • G06T1/0007Image acquisition
    • 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/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/10Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
    • G06V40/12Fingerprints or palmprints
    • G06V40/1347Preprocessing; Feature extraction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/239Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N13/20Image signal generators
    • H04N13/204Image signal generators using stereoscopic image cameras
    • H04N13/243Image signal generators using stereoscopic image cameras using three or more 2D image sensors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/08Indexing scheme for image data processing or generation, in general involving all processing steps from image acquisition to 3D model generation
    • 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/10004Still image; Photographic image
    • G06T2207/10012Stereo images
    • 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/10016Video; Image sequence
    • G06T2207/10021Stereoscopic video; Stereoscopic image sequence
    • 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/10141Special mode during image acquisition
    • G06T2207/10152Varying illumination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2211/00Image generation
    • G06T2211/40Computed tomography
    • G06T2211/416Exact reconstruction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N13/00Stereoscopic video systems; Multi-view video systems; Details thereof
    • H04N2013/0074Stereoscopic image analysis
    • H04N2013/0081Depth or disparity estimation from stereoscopic image signals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Geometry (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Optics & Photonics (AREA)
  • Human Computer Interaction (AREA)
  • Collating Specific Patterns (AREA)
  • Image Analysis (AREA)
  • Image Input (AREA)
  • Image Processing (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

本申请描述的技术涉及对例如物体的三维重建的初始对应分配的数据进行有效处理的方法、装置和计算机可读介质。在一些方面,该系统包括处理器,该处理器被配置为执行以下动作:接收场景的第一组图像和第二组图像;基于第一组图像确定第一像素指纹和基于第二组图像确定第二像素指纹;基于第一像素指纹生成第一二进制像素指纹,基于第二像素指纹生成第二二进制像素指纹;以及至少部分地基于第一二进制像素指纹和第二二进制像素指纹的比较,确定第一像素指纹与第二像素指纹之间是否存在立体对应关系。

Description

对物体三维重建初始对应分配有效数据处理的方法和设备
技术领域
本文描述的技术一般涉及对物体或场景的二维图像进行三维(3D)重建,尤其涉及对二维图像对之间的初始对应分配数据进行有效处理的技术。
背景技术
越来越多的先进机器视觉系统及其底层软件被用于各种制造和质量控制过程。机器视觉允许在批量生产和定制产品的生产中获得更快、更准确以及可重复的结果。典型的机器视觉系统包括一个或多个相机,其指向感兴趣区域;照明源,其用于引导感兴趣区域上的适当照明;帧抓取器/图像处理元件,其用于捕获和发送图像;计算机或机载处理设备,其用于运行机器视觉软件应用程序和操纵所捕获的图像;以及用于交互的用户界面。
一种3D视觉系统,其基于立体相机,该立体相机采用至少两个以并排关系布置的相机,且两个相机之间的基线为一英寸至数英寸。基于立体视觉的系统通常基于对极几何和图像校正。他们可以使用基于相关的方法或与放松技术(relaxation technique)结合来找到来自两个或更多个相机的校正图像中的对应关系。然而,由于所需的计算工作,传统的立体视觉系统在对物体和/或场景的准确且快速的三维数据重建的创建能力方面受到限制。
发明内容
根据所公开的主题,提供了用于有效地处理(例如,从二维图像对中对物体或场景进行三维重建的)二维图像对之间的初始对应分配数据的装置、系统和方法。发明人已经认识到,虽然传统系统可以将某种归一化(normalized)的互相关应用于二维图像对以确定立体对应关系,但是这些系统通常必须花费大量的计算工作来执行必要的计算(例如,由于需要处理的像素值的数量、那些像素值的大小等)。发明人已经开发了如本文将进一步讨论的技术,其通过有效地处理二维图像对(特别是对于立体时间图像序列对)的初始对应分配来改进三维数据重建技术。立体时间图像序列包括随时间自不同视角捕获的物体或场景的图像集合。发明人注意到所描述的系统和方法在为立体时间图像序列中的每个像素指纹导出二进制像素指纹时特别新颖。
在一些方面,所描述的系统和方法提供用于在两个图像之间建立立体对应关系的系统。该系统可以包括两个或更多个相机(或传感器),其布置成以一致的方式捕获场景的图像,例如,通过将两个或更多个相机设置为以不同的视角捕获场景,以产生立体图像对应关系。可选地,该系统可以包括一个或多个相机(或传感器),其具有一个或多个逆相机(inverse camera)(或投射器(projector)),其布置成以一致的方式捕获场景的图像以产生成对的立体图像对应关系。可以使用一个或多个投射器在场景上投射一系列光图案,并且可以从每个相机捕获一组图像。从每个相机捕获的图像集可以被称为时间图像。该组图像中的每个图像可以对应于一系列投射光图案中的其中一个。
随后,可以为每个相机确定时间图像和二进制时间图像。时间图像中位置(i,j)处的像素指纹可包括在位置(i,j)处和/或从每个相机捕获的图像集合相对于位置(i,j)在空间和/或时间中的不同位置处收集的有序像素值集合。在一些实施例中,时间图像中位置(i,j)处的像素指纹可包括在位置(i,j)处收集的有序像素值集合。附加地或可选地,在一些实施例中,时间图像中位置(i,j)处的像素指纹可包括从每个相机捕获的图像集合相对于位置(i,j)在空间中的不同位置处收集的有序像素值集合。附加地或可选地,在一些实施例中,时间图像中位置(i,j)处的像素指纹可包括从每个相机捕获的图像集合相对于位置(i,j)在时间中的不同时间处收集的有序像素值集合。附加地或可选地,在一些实施例中,时间图像中位置(i,j)处的像素指纹可包括从每个相机捕获的图像集合相对于位置(i,j)在空间和时间中的不同位置处收集的有序像素值集合。
通过基于一个或多个阈值,将位置(i,j)处的像素指纹中的每个设置值与一个或多个阈值进行比较并且将设置值替换为0或者1来确定二进制时间图像中位置(i,j)处的二进制像素指纹。可选地,可以在与一个或多个阈值进行比较之前对像素指纹中的设置值进行归一化,以生成相应的二进制像素指纹。(例如,沿着核线的)搜索可以用于确定来自每个相机的二进制像素指纹之间的对应关系。可以从每个相机的二进制时间图像执行对(例如,在核线上或其附近的)像素之间的一个或多个二进制的比较,并且可以基于那些比较的结果来确定像素对应关系。
在一些方面,可以提供用于确定第一组图像的第一像素指纹与第二组图像的第二像素指纹之间的立体对应关系的系统、方法和/或计算机可读存储介质。
该系统可以包括处理器,该处理器配置成执行以下动作:从一个或多个图像传感器接收场景的第一组图像和场景的第二组图像,其中第二组图像的捕获视角可以不同于第一组图像。
处理器可以配置成执行基于第一组图像确定第一像素指纹的动作。第一像素指纹可以包括随时间的第一组图像中的每个图像在第一像素位置处的第一组像素值。处理器可以配置成执行基于第二组图像确定第二像素指纹的动作。第二像素指纹可以包括随时间的第二组图像中的每个图像在第二像素位置处的第二组像素值。
处理器可以配置成执行基于第一像素指纹生成第一二进制像素指纹的动作。第一二进制像素指纹可以包括通过将第一组像素值中的每一个像素值与阈值进行比较而生成的第一组二进制值。处理器可以配置成执行基于第二像素指纹生成第二二进制像素指纹的动作。第二二进制像素指纹可以包括通过将第二组像素值中的每一个像素值与阈值进行比较而生成的第二组二进制值。
处理器可以配置成至少部分地基于第一二进制像素指纹和第二二进制像素指纹的比较,来执行确定第一组图像的第一像素指纹与第二组图像的第二像素指纹之间是否存在立体对应关系的动作。
在一些实施例中,从逆相机/投射器接收场景的第一组图像和/或第二组图像投射器。
在一些实施例中,该系统可以包括投射器,该投射器配置成在场景上投射光图案组。第一组图像中的每个图像可以使用来自该光图案组中的不同光图案来捕获。
在一些实施例中,该组光图案可包括固定图案,该固定图案被平移、旋转和/或变形以在场景上投射不同的光图案。
在一些实施例中,第一像素指纹可以包括第一组像素值,其作为对应于第一组图像的时间顺序的有序集合,并且第二像素指纹可以包括第二组像素值,其作为对应于第二组图像的时间顺序的有序集合。
在一些实施例中,生成第一组二进制值可以包括:对于第一组像素值中的每个像素值,如果像素值高于阈值则分配0,或者是如果像素值不高于阈值则分配1。
在一些实施例中,比较第一二进制像素指纹和第二二进制像素指纹可以包括比较第一和第二二进制像素指纹中的对应二进制值。
在一些实施例中,处理器可以配置成执行归一化第一像素指纹的动作。归一化第一像素指纹可以包括在第一组图像中的每个图像中的第一像素位置处归一化第一组像素值,以创建包括第一组归一化像素值的第一归一化像素指纹。处理器可以配置成执行归一化第二像素指纹的动作。归一化第二像素指纹可以包括在第二组图像中的每个图像中的第二像素位置处归一化第二组像素值,以创建包括第二组归一化像素值的第二归一化像素指纹。生成第一二进制像素指纹可以包括基于第一归一化像素指纹生成第一二进制像素指纹。生成第二二进制像素指纹可以包括基于第二归一化像素指纹生成第二二进制像素指纹。
在一些实施例中,处理器可以配置成执行基于第一归一化像素指纹生成第三二进制像素指纹的动作。第三二进制像素指纹可以包括通过将第一组归一化像素值中的每一个像素值的绝对值与置信度阈值进行比较而生成的第三组二进制值。处理器可以配置成执行基于第二归一化像素指纹生成第四二进制像素指纹的动作。第四二进制像素指纹可以包括通过将第二组归一化像素值中的每一个像素值的绝对值与置信度阈值进行比较而生成的第四组二进制值。
在一些实施例中,比较第一二进制像素指纹和第二二进制像素指纹可以包括比较第一、第三和第四二进制像素指纹中的对应二进制值的OR值以及比较第二、第三和第四二进制像素指纹中的对应二进制值的OR值。
在一些实施例中,比较第一二进制像素指纹和第二二进制像素指纹可以包括确定第一和第二二进制像素指纹中的对应二进制值是否在阈值汉明(hamming)距离内。
在一些实施例中,在确定第一组图像中的第一像素指纹之前,处理器可以配置成将图像滤波器应用于第一组图像中的每个图像。
在一些实施例中,确定第一组图像的第一像素指纹与第二组图像的第二像素指纹之间是否存在立体对应关系,可包括执行连续时间相关以产生第一像素指纹和第二像素指纹之间的相关值,并基于超过相关阈值的相关值和先前像素指纹对的先前相关值,确定第一像素指纹与第二像素指纹之间存在潜在对应关系。
在一些实施例中,确定第一组图像的第一像素指纹与第二组图像的第二像素指纹之间是否存在立体对应关系,可包括执行孔填充操作,为尚未确定与另一像素指纹具有潜在对应关系的像素指纹插入初始对应关系。
在一些实施例中,可以基于跳跃参数(skipping parameter)来选择第一像素位置和/或第二像素位置。
在一些实施例中,可以基于跳跃参数S来选择第一像素位置(i1,j1),使得i1模运算S=0并且j1模运算S=0。
在一些方面,可以提供用于确定第一组图像的第一像素指纹与第二组图像的第二像素指纹之间的立体对应关系的系统、方法和/或计算机可读存储介质。
该系统可以包括处理器,该处理器配置成执行以下动作:从一个或多个图像传感器接收场景的第一组图像和场景的第二组图像。其中的第二组图像的捕获视角可以与第一组图像的不同。
处理器可以配置成执行基于第一组图像确定第一像素指纹的动作。第一像素指纹可以包括在第一组图像中的每个图像相对于第一像素位置在空间和/或时间中不同位置处的第一组像素值。处理器可以配置成执行基于第二组图像确定第二像素指纹的动作。第二像素指纹可以包括在第二组图像中的每个图像相对于第二像素位置在空间和/或时间中不同位置处的第二组像素值。
处理器可以配置成执行基于第一像素指纹生成第一二进制像素指纹的动作。第一二进制像素指纹可以包括通过将第一组像素值中的每一个像素值与阈值进行比较而生成的第一组二进制值。处理器可以配置成执行基于第二像素指纹生成第二二进制像素指纹的动作。第二二进制像素指纹可以包括通过将第二组像素值中的每一个像素值与阈值进行比较而生成的第二组二进制值。
处理器可以配置成至少部分地基于对第一二进制像素指纹和第二二进制像素指纹的比较,来执行确定第一组图像的第一像素指纹与第二组图像的第二像素指纹之间是否存在立体对应关系的动作。
因此,本文已经相当广泛地概述了所公开的主题的特征,以便可以更好地理解随后的详细描述,并且可以更好地理解对本领域的贡献。当然,所公开的主题的附加特征将在下文中描述,并且将形成所附权利要求的主题。应理解,本文采用的措辞和术语是出于描述的目的,不应视为限制。
附图说明
附图中的各个图所示出的每个相同或几乎相同的组件由相同的附图标记表示。为清楚起见,并非每个组件在每个图中都有所标记。附图不一定按比例绘制,而是将重点放在说明本文描述的技术和装置的各个方面。
图1示出了根据一些实施例的说明性实施例,其中投射器和两个相机布置成以一致的方式捕获场景的图像以产生立体图像对应关系;
图2示出了根据一些实施例的相对应于一系列投射光图案之一的示例性立体图像对;
图3示出了根据一些实施例的场景的示例性立体时间图像序列对;
图4示出了根据一些实施例的示例性立体图像对和对应的归一化图像;
图5示出了根据一些实施例的场景的示例性立体图像对;
图6示出了根据一些实施例的对应于投影在场景上的一系列光图案的示例性立体图像序列对;
图7示出了根据一些实施例的用于从一对图像的像素指纹生成二进制像素指纹的说明性过程;
图8示出了根据一些实施例的针对来自一对图像的生成的用于示例性像素指纹的二进制像素指纹的示例;
图9示出了根据一些实施例的用于有效处理立体时间图像序列的初始对应分配的数据的说明性计算机化方法。
具体实施方式
本文讨论的技术可以用于有效地处理二维图像对之间的初始对应分配的数据。发明人已经认识到,虽然已知传统系统将归一化互相关应用于二维图像对以确定立体对应关系,但是这些系统必须花费大量的计算量来执行必要的计算。如本文进一步讨论的,发明人已经开发了通过有效地处理二维图像对(特别是立体时间图像序列对)的初始对应分配的数据来改进三维数据重建的技术。发明人注意到,所描述的系统和方法在为立体时间图像序列中的每个像素指纹导出二进制像素指纹时特别新颖。
在以下描述中,阐述了关于所公开的主题的系统和方法以及这些系统和方法可以操作的环境等的许多具体细节,以便提供对所公开的主题的透彻理解。另外,应当理解,下面提供的示例是示例性的,并且可预期存在有在所公开的主题的范围内的其他系统和方法。
图1示出了说明性实施例100,其中投射器104和两个相机106布置成以一致的方式捕获物体或场景102的图像以产生立体图像对应关系。在一些实施例中,采用统计模式投射器以便对使用多个相机捕获的物体的图像序列进行时间编码。例如,投射器可以在物体上投射平移图案,并且每个相机可以捕获包括有物体的12-16个图像(或一些其他数量的图像)的图像序列。每个图像包括构成图像的一组像素。在一些实施例中,光图案可以在水平和/或垂直方向上移位,使得图案在物体或场景上旋转(例如,图案本身并未顺时针或逆时针旋转)。每个相机106可包括电荷耦合器件(CCD)图像传感器、互补金属氧化物半导体(CMOS)图像传感器或其他合适的图像传感器。在一些实施例中,每个相机106可具有滚动快门、全局快门或其他合适的快门类型。在一些实施例中,每个相机106可以具有GigE Vision接口、通用串行总线(USB)接口、同轴接口、FIREWIRE接口或其他合适的接口。在一些实施例中,每个相机106可以具有一个或多个智能功能。在一些实施例中,每个相机106可具有C接口镜头、F接口镜头、S接口镜头或其他合适的镜头类型。在一些实施例中,每个相机106可以具有适合于投射器(例如投射器104)的光谱滤波器,以阻挡投射器的光谱范围之外的环境光。
图2示出了对应于一系列投射光图案之一的示例性立体图像对200和250。例如,投射器104可以在物体上投射光图案,并且相机106可以捕获立体图像200和250。在一些实施例中,为了利用来自两个相机的立体图像序列重建三维数据,需要在每个相机的图像之间找到对应的像素对,例如像素202和252。
图3示出了场景的示例性立体时间图像序列对。例如,投射器104可以在场景上连续投射不同的光图案,并且相机106中的一个可以捕获图像300、302和304,而相机106中的另一个可以捕获图像350、352和354。在一些实施例中,可以对捕获的图像进行归一化,以便应用所描述的系统和方法的技术。图4示出了一对示例性立体图像400和450以及对应的归一化图像450和452。如图所示,立体图像400和450可以被处理为包括立体图像400和450的光图案,同时减少图像400和450的实际场景和/或物体。在一些实施例中,所投射的用于减少图像400和450的实际场景和/或物体的光图案的类型可能是不需要知道的。
图5示出了具有像素502和552的示例性立体图像对500和550(以及相关联的像素),像素502和552是相对应的,其表示在两个图像500和550中投影的图案的相同部分。例如,如上所述,投射器104可以在场景上投射光图案,并且相机106可以捕获立体图像500和550。捕获的立体图像500和550可用于识别两个像素间的对应关系。在一些实施例中,随时间捕获的立体图像序列用于识别对应关系。从图5中所示的单对立体图像开始,图6示出了,当投射器104随着时间在场景上连续投射不同的光图案时,相机106可以利用对应的像素指纹602和652捕获立体图像序列600和650。随着时间,每个相机106可以捕获到图像序列1、2、3、4……N。像素指纹602和652分别是基于立体时间图像序列600和650上的像素(i,j)和(i',j')。随着时间的推移,每个像素指纹包括灰度值的有序列表:G_i_j_t其中的t表示离散时间实例1、2、3、4……N。
在一些实施例中,可以将使用时间图像或仅时间图像的子集的归一化互相关算法应用于两个图像序列,以便确定来自每个(例如,具有相似时间灰度值的)图像的对应像素对。然而,这样的过程可能需要大量的计算工作来执行必要的计算。该处理可以通过有效地处理初始对应分配的数据来改进,并且具体地,导出立体时间图像序列中的每个像素指纹的二进制像素指纹,如下面进一步描述的。
在一些实施例中,对于第一相机的每个像素,通过执行与沿着第二相机中的核线的所有可行候选的归一化互相关来检索潜在对应像素,其具有阈值以补偿由于相机校准引起的偏差,例如,+/-一个像素或另一个合适的值。在一个示例中,这近似于为3000个潜在对计算归一化互相关性,该3000个潜在对的总数近似等于尺寸xres乘以yres的N个图像用xres×yres×N×3000的乘法计算得出的结果(例如,当N=24时,总数为大约94×109)。
在一些方面,所描述的系统和方法涉及现有技术的技术改进,其利用算法方法将初始对应分配的计算工作量减少到例如200或另一(例如,与上述方法相比)合适的因子。可以通过仅对潜在对应关系的子集执行计算上较重(heavy)的互相关,和/或通过减少处理以计算对应关系的数据量来减少计算工作量。
图9示出了根据一些实施例的用于有效地处理立体时间图像序列的初始对应分配的数据的说明性计算机化方法900。方法900可以在任何合适的计算系统(例如,通用计算设备(CPU)、图形处理单元(GPU)、现场可编程门阵列设备(FPGA)、专用集成电路设备(ASIC)、基于ARM的设备或其他合适的计算系统上执行,因为本文描述的技术的各方面在这层面并不受到限制。在一些实施例中,一个或多个相机可以在捕获的图像中的每个像素生成二进制像素指纹。在这种情况下,从相机向系统发送数据所需的带宽可以减少。
在动作902,系统可以从一个或多个图像传感器接收场景的第一组图像和场景的第二组图像。第二组图像的捕获视角与第一组图像的不同。例如,系统可以从图1描述的两个相机接收场景的12-16个图像或另一合适数量的图像的时间序列。在一些实施例中,投射器配置成往场景上投射一组光图案。可以使用来自该光图案组的不同光图案来捕获第一组图像和/或第二组图像中的每个图像。例如,如图2所示,可以在场景上投射光图案,并且两个相机可以捕获相应的图像。在另一示例中,如图3所示,该光图案组可以连续地投影在场景上,并且两个相机可以捕获相应的立体图像序列。在一些实施例中,该组光图案可包括平移、旋转和/或变形的固定图案,以改变投射在场景上的光图案。在一些实施例中,该光图案组可包括移动光学图案。在一些实施例中,移动光学图案可包括沿圆形路径平移的光学图案。在一些实施例中,光图案可以在水平和/或垂直方向上移位,使得图案在物体上旋转(例如,图案本身没有顺时针或逆时针旋转)。
在动作904,系统可以基于第一组图像确定第一像素指纹。在一些实施例中,第一像素指纹包括随时间的第一组图像中的每个图像中的第一像素位置的第一组像素值。在一些实施例中,第一像素指纹可包括在第一组图像中的每个图像相对于第一像素位置在空间和/或时间上不同位置处的第一组像素值。图8示出了这种像素指纹的示例。在一些实施例中,第一像素指纹包括第一组像素值,作为与第一组图像的时间顺序对应的有序集合。图5-6示出了这种像素位置随时间的示例以及有序图像集合中的对应像素值。在一些实施例中,在确定第一组图像中的第一像素指纹之前,系统将弱高斯滤波器应用于第一组图像中的每个图像。在一些实施例中,系统基于跳跃参数选择第一像素位置。例如,系统可以基于跳跃参数S选择第一像素位置(i1,j1),使得i1模运算S=0并且j1模运算S=0。
在动作906,系统可以基于第二组图像确定第二像素指纹。在一些实施例中,第二像素指纹包括在随时间的第二组图像中的每个图像的第二像素位置处的第二组像素值。在一些实施例中,第二像素指纹包括在第二组图像中的每个图像相对于第二像素位置在空间和/或时间中不同位置处的第二组像素值。图8示出了这种像素指纹的示例。在一些实施例中,第二像素指纹包括第二组像素值,作为对应于第二组图像的时间顺序的有序集合。在一些实施例中,在确定第二组图像中的第二像素指纹之前,系统将弱高斯滤波器应用于第二组图像中的每个图像。图5-图6示出了这种像素位置随时间的示例以及有序图像集合中的对应像素值。在一些实施例中,系统基于跳跃参数选择第二像素位置。例如,系统可以基于跳跃参数S选择第二像素位置(i2,j2),使得i2模运算S=0并且j2模运算S=0。
在动作908,系统可以基于第一像素指纹生成第一二进制像素指纹。第一二进制像素指纹包括通过将第一组像素值中的每一个像素值与阈值进行比较而生成的第一组二进制值。在一些实施例中,生成第一组二进制值包括:对于第一组像素值中的每个像素值,如果像素值高于阈值则分配0,或者是如果像素值不高于阈值则分配1。图8示出了这种像素指纹的示例。
在一些实施例中,系统可以通过在第一组图像中的每个图像的第一像素位置处对第一组像素值归一化,从而归一化第一像素指纹,以创建包括第一组归一化像素值的第一归一化像素指纹。图4示出了示例性立体图像和对应的归一化图像。在这样的实施例中,系统可以以关于第一像素指纹描述的方式基于第一归一化像素指纹生成第一二进制像素指纹。图7和相关描述示出了对应于该技术的说明性过程,图8和相关描述示出了根据该技术生成的这种二进制像素指纹的示例。
在动作910,系统可以基于第二像素指纹生成第二二进制像素指纹。第二二进制像素指纹包括通过将第二组像素值中的每一个像素值与阈值进行比较而生成的第二组二进制值。在一些实施例中,生成第二组二进制值包括:对于第二组像素值中的每个像素值,如果像素值高于阈值则指定为0,或者如果像素值不高于阈值则指定为1。图8示出了这种像素指纹的示例。
在一些实施例中,系统可以通过在第二组图像中的每个图像的第二像素位置处对第二组像素值归一化,从而归一化第二像素指纹,以创建包括第二组归一化像素值的第二归一化像素指纹。图4示出了示例性立体图像和对应的归一化图像。在这样的实施例中,系统可以以关于第二像素指纹描述的方式基于第二归一化化像素指纹生成第二二进制像素指纹。图7和相关描述示出了对应于该技术的说明性过程,并且图8和相关描述示出了根据该技术生成的这种二进制像素指纹的示例。
在动作912,系统可以至少部分地基于对第一二进制像素指纹和第二二进制像素指纹的比较,来确定第一组图像的第一像素指纹与第二组图像的第二像素指纹之间是否存在立体对应关系。在一些实施例中,比较第一二进制像素指纹和第二二进制像素指纹包括比较第一和第二二进制像素指纹中的对应二进制值。在一些实施例中,比较第一二进制像素指纹和第二二进制像素指纹包括确定第一和第二二进制像素指纹中的对应二进制值是否在阈值汉明距离内。
在一些实施例中,系统可以通过将第一组归一化像素值中的每一个像素值的绝对值与置信度阈值进行比较,基于第一归一化像素指纹生成第三二进制像素指纹。在一些实施例中,系统可以通过将第二组归一化像素值中的每一个像素值的绝对值与置信度阈值进行比较,基于第二归一化像素指纹生成第四二进制像素指纹。在一些实施例中,比较第一二进制像素指纹和第二二进制像素指纹包括比较:(i)第一、第三和第四二进制像素指纹中的对应二进制值的OR值,以及(ii)第二、第三和第四二进制像素指纹中的对应二进制值的OR值。
在一些实施例中,系统可以通过执行连续时间相关以产生第一像素指纹和第二像素指纹之间的相关值,并基于超过相关阈值的相关值和先前像素指纹对的先前相关值,确定第一像素指纹与第二像素指纹之间存在潜在对应关系,确定第一组图像的第一像素指纹与第二组图像的第二像素指纹之间是否存在立体对应关系。在一些实施例中,系统可以执行孔填充操作,为尚未确定与另一像素指纹具有潜在对应关系的像素指纹插入(interpolate)初始对应关系。
在一些实施例中,所描述的系统和方法提供适合于在计算系统上实现的过程。在一些实施例中,计算系统(图1未示出)从图像传感器或相机接收一对立体时间图像序列(例如,如动作902所描述的)。如本文将进一步讨论的,例如,该计算系统可以是通用计算设备(CPU)、图形处理单元(GPU)、现场可编程门阵列设备(FPGA)、专用集成电路设备(ASIC)、基于ARM的设备、或其他合适的计算系统。在一些实施例中,一个或多个相机可以在捕获的图像中的每个像素生成二进制像素指纹。在这种情况下,从相机向系统发送数据所需的带宽可以减少。
系统可以确定每个图像序列的像素指纹(例如,如动作904和/或906所描述的)。在一些实施例中,系统可以例如通过对每个图像使用弱高斯滤波器来平滑图像序列。在一些实施例中,系统可以可选地按照每像素指纹对图像序列进行归一化。基于归一化图像序列或归一化像素指纹,为每个相机的每个像素创建二进制序列或二进制像素指纹,例如,用于第一相机,相机1的BINARY1_i_j(例如,如动作908所描述的)、以及用于第二相机,相机2的BINARY1_i'_j'(例如,如动作910所描述的)。对于给定像素,确定该像素的代表性二进制值。例如,系统可以基于时间归一化像素值为像素值分配0或1。例如,系统可以通过确定归一化值是>=0还是<0(或另一个合适的阈值)来分配0或1。例如,系统可以为>=0(例如,指示比平均值更亮)的值分配1,而对于<0(例如,指示比平均值更暗)的值分配0。
系统可以使用(归一化的或非归一化的)二进制像素指纹来发起对潜在对应关系的搜索(例如,如动作912所描述的)。对于相机1的给定像素,相机2中的搜索空间可以最初限于具有定义阈值的核线,例如SAFETY_THRESHOLD。例如,对于潜在的对应关系,系统可以检查该对二进制序列对于潜在的对应关系是否一致(或相等),例如是否BINARY1_i_j=BINARY1_i'_j'。
可选地或另外地,对于潜在的对应关系,系统可以检查该对二进制序列是否在特定距离阈值内。例如,系统可以检查该对二进制序列是否在汉明距离阈值HD_THRESHOLD内。例如,系统可以确定是否HAMMING_DISTANCE(BINARY1_i_j,BINARY1_i'_j')<HD_THRESHOLD。在一些实施例中,相等长度的两个二进制序列之间的汉明距离是对应值不同的位置的数量。例如,1011101和1001001之间的汉明距离为2。
可选地或另外地,基于归一化图像序列,系统可以为每个相机的每个像素生成另一对二进制序列BINARY2_i_j和BINARY2_i'_j'。这对二进制序列可以表示初始二进制序列对的置信标志。对于给定像素,确定该像素的代表性二进制值。例如,系统可以基于时间归一化像素值,根据绝对归一化值是否低于置信度阈值CONFIDENCE_THRESHOLD来分配0或1。对于潜在的对应关系,系统可以检查是否BINARY1_i_j|BINARY2_i_j|BINARY2_i’_j’==BINARY1_i’_j’|BINARY2_i’_j’|BINARY2_i_j。
根据上面讨论的一个或多个度量,如果该对二进制序列是相似的(例如,是一致的),则系统可以进行连续的时间相关。例如,如果该相关(correlation)产生高于初始相关阈值INITIAL_CORRELATION_THRESHOLD的值,并且相关性大于(i,j)、像素对(i,j)和(i’,j’)的任何先前潜在对应关系,则可以标记为潜在对应关系。在一些实施例中,对于相机1中的特定像素(i,j),系统可以识别相机2中的相似或匹配的像素(i’,j’)(例如,沿着核线,在相机2的整个图像中,或其他合适的部分),使用它们各自的二进制序列或指纹作为度量。如果满足度量,则系统可以将得到的对,即(i,j)和(i’,j’)存储在列表中,并在稍后执行时间相关。例如,系统可以关联列表中的每个对,并选择具有最高相关得分的那一对作为潜在对应关系。可选地或另外地,系统可以进行时间相关并且确定当前对(i,j)和(i’,j’)的相关是否超过初始阈值以及是否比包括(i,j)的先前相关对具有更高的相关。如果当前对的相关超过初始阈值并且具有比先前相关对更高的相关,则当前对可以替换先前的潜在对应关系。在一些实施例中,可以通过使用基于时间灰度值或待相关的像素对的归一化值的归一化互相关来进行时间相关。
在一些实施例中,在初始搜索完成之后,可以进行孔填充处理,为未通过本文描述的处理分配的像素插入初始对应关系。例如,由于搜索空间的大量限制,最初可以找到大约85%到95%的所有对应关系。孔填充处理(在对应级别上)可用于产生100%的对应关系(例如,利用最初识别的对应关系)。在一些实施例中,可以进行孔填充处理以识别不具有对应关系的某些点和/或像素(例如,过饱和图像点),并通过在所识别的点的邻域插入相关对应关系来生成近似对应关系。在一些实施例中,系统可以在初始对应分配之前将滤波器(例如,弱平滑滤波器)应用于图像序列,其可以提供100%的对应关系(例如,不需要孔填充处理)。滤波器可以降低噪声,并且某种程度上,在每个时间图像聚集一个小的空间邻域。这可以减少由于不同相机或图像传感器的透视效果和采样效果引起的像素精确对应强度偏差的数量。
在一些实施例中,所描述的系统和方法提供适合于在GPU上实现的过程。GPU从图像传感器或相机接收一对立体时间图像序列(例如,如动作902所描述的)。GPU可以在对应搜索期间使用比较阈值。例如,GPU可以使用汉明距离阈值HD_THRESHOLD,其为0(例如,不允许差异)或更大(例如,允许一些差异)。GPU可以存储、确定和/或接收HD_THRESHOLD参数。在一些实施例中,GPU可以平滑图像序列(例如,对每个图像使用弱高斯滤波器)。附加地或可选地,GPU可以校正图像序列。例如,GPU可以将图像序列校正为规范情况,使得通过校正,核线呈水平线。
在一些实施例中,可选地,GPU可以对每像素指纹的图像序列进行归一化。基于归一化图像序列或归一化像素指纹,GPU可以为第一相机,相机1的像素子集创建二进制序列或二进制像素指纹BINARY1(例如,如动作908所描述的)、以及为第二相机,相机2的每个像素创建另一个二进制像素指纹BINARY1(例如,如动作910所描述的)。GPU可以使用各种技术为相机1选择像素子集。例如,在一些实施例中,GPU可以使用模运算来选择像素。例如,GPU可以使用跳跃网格,使得所选像素(i,j)满足(i modulo SKIPPING=0,j modulo SKIPPING=0)。对于给定像素,确定该像素的代表性二进制值。例如,GPU可以基于时间归一化像素值为像素分配0或1。例如,GPU可以通过确定归一化值是>=0还是<0(或另一个合适的阈值)来分配0或1。例如,GPU可以为>=0(例如,指示比平均值更亮)的值分配1,而对于<0(例如,指示比平均值更暗)的值分配0。
随后,GPU可以针对来自每个相机的每个图像序列生成每像素的二进制序列。例如,在相机1和相机2中的每一个捕获16个图像的图像序列的情况下,GPU可以针对相机2生成每像素16位二进制序列,并且针对相机1在跳跃网格上生成每像素16位二进制序列。系统可以使用(归一化的或非归一化的)二进制序列或二进制像素指纹来启动对潜在对应的搜索(例如,如动作912所描述的)。例如,对于相机1中的跳跃网格上的每个像素,GPU可以比较相机2中的每个像素,该相机2中的每个像素相对于它们的二进制序列或二进制像素指纹位于相机2中相应的核线附近。对于潜在的对应关系,GPU可以通过检查该对二进制序列是否在特定距离阈值内来检查该对二进制序列是否对于潜在的对应关系是一致的。例如,系统可以检查该对二进制序列是否在汉明距离阈值内。例如,系统可以确定是否HAMMING_DISTANCE(BINARY1_i_j,BINARY1_i’_j’)<=HD_THRESHOLD。如果该对二进制序列满足条件,则GPU可以将该对存储在潜在对应关系列表中。在对相机1中的跳跃网格上的每个像素执行潜在对应步骤之后,GPU可以生成潜在对应关系的列表。对于相机1中的跳跃网格上的每个像素,GPU可以与潜在候选者列表进行连续的时间相关。例如,如果该相关产生高于初始相关阈值INITIAL_CORRELATION_THRESHOLD的值,和/或该相关大于列表的任何先前潜在对应关系,则可以将该对二进制序列标记为当前初始对应关系。
图7示出了根据一些实施例的用于从一对时间图像的像素指纹生成二进制像素指纹的说明性过程700。在该说明性过程中,如本文所述,从一个或多个相机或图像传感器接收场景的第一组图像和第二组图像。第二组图像的捕获视角可以从与第一组图像的不同,以产生成对的立体图像对应关系。例如,可以从图1描述的两个相机接收场景的多个图像(例如,12-16个图像)或另一合适数量的图像的时间序列。从第一组图像确定用于像素(i,j)的第一像素指纹702,并且以上述方式从第二组图像确定用于像素(i’,j’)的第二像素指纹752。第一像素指纹702包括值v1到vN,其表示第一组图像中的每个图像中的每个像素的实际灰度和/或颜色值。第二像素指纹752包括值v1’到vN’,其表示第二组图像中的每个图像中的每个像素的实际灰度和/或颜色值。可选地,第一像素指纹702和第二像素指纹752被归一化以产生第一归一化像素指纹704,包括值到/>以及第二归一化像素指纹754,包括值/>到/>如上所述并参考图9,对应于第一和第二像素指纹的二进制像素指纹以包括值b1到bN的第一二进制像素指纹706的形式生成,以及以包括值b1’到bN’的第二二进制像素指纹756的形式生成。图8提供了过程700的说明性示例。
图8示出了根据一些实施例的针对来自一对图像的像素指纹生成二进制像素指纹的示例800。在该示例中,从第一相机,相机1接收第一组19个图像,并且从第二相机,相机2接收第二组19个图像(例如,其中来自相机1和相机2的每组图像代表立体对)。对于第一组图像中的给定像素位置(i,j)和第二组图像中的对应像素位置(i’,j’),分别生成第一像素指纹802和第二像素指纹852。每个像素指纹包括该组图像上的给定像素位置的灰度像素值。例如,第一像素指纹802包括第一图像上的像素位置(i,j)的灰度值(例如,像素802包括灰度值63、158等),第二像素指纹852包括第二图像上的像素位置(i’,j’)的灰度值(例如,像素852包括灰度值81、186等)。下面的表1示出了第一像素指纹802和第二像素指纹852的灰度值。可选地,通过分别归一化第一像素指纹802和第二像素指纹852,生成第一归一化像素指纹804和第二归一化像素指纹854。本例中的像素通过使用公式 进行归一化,其中矢量v,vt的分量tth和矢量v,vavg的分量的平均值均被减去,并将得到的值除以矢量v-vavg的长度,该矢量v-vavg的值是由矢量v的每个分量中减去vavg得到的。下面的表1示出了第一归一化像素指纹804和第二归一化像素指纹854的归一化值。最后,通过将每个归一化值与阈值(例如,0)进行比较,分别从第一归一化像素指纹804和第二归一化像素指纹854生成第一二进制像素指纹806和第二二进制像素指纹856,并且如果归一化值高于阈值,则分配二进制值,例如0;如果归一化值低于阈值,则分配另一个二进制值,例如1。下面的表1示出了第一二进制像素指纹806和第二二进制像素指纹856的二进制值。/>
表1:示例性二进制像素指纹生成表
可选地,通过将每个值与阈值进行比较并分配二进制值,可以分别从第一像素指纹802和第二像素指纹852生成第一二进制像素指纹806和第二二进制像素指纹856(不执行归一化),并且,如果例如该值高于阈值则分配为0,而如果该值低于阈值,则另一个二进制值分配为1。对于给定来自相机的像素和来自另一相机的任意像素,虽然表1示出了两个相机的相应像素对的值导致相同的二进制序列或指纹值,但是如果所选择的像素是非对应的,则相应的归一化值和所得到的二进制像素指纹值可以不同。
根据本文描述的原理操作的技术可以以任何合适的方式实现。上面的流程图的处理和决策块表示可以包括在执行这些各种处理的算法中的步骤和动作。从这些处理过程导出的算法可以实现为与一个或多个单用途或多用途处理器的操作集成并指导其操作的软件;可以实现为功能等效电路,例如数字信号处理(DSP)电路或应用-特定集成电路(ASIC);或者可以以任何其他合适的方式实现。应当理解,这里包括的流程图不描绘任何特定电路或任何特定编程语言或编程语言类型的语法或操作。相反,流程图示出了本领域技术人员可以用来制造电路或实现计算机软件算法以执行用以执行本文所述技术类型的特定装置的处理过程。还应当理解,除非本文另有指示,否则每个流程图中描述的特定步骤和/或动作序列仅仅是对可以实现的算法的说明,并且可以在本文描述的原理的实现和实施例中变化。
因此,在一些实施例中,本文描述的技术可以体现为以实现为软件的计算机可执行指令,这些计算机可执行指令包括作为应用软件、系统软件、固件、中间件、嵌入代码或任何其他合适类型的计算机代码。这样的计算机可执行指令可以使用许多合适的编程语言和/或编程或脚本工具中的任何一种来编写,并且还可以被编译为在框架或虚拟机上执行的可执行机器语言代码或中间代码。
当本文描述的技术体现为计算机可执行指令时,这些计算机可执行指令可以以任何合适的方式实现,合适的方式包括作为多个功能设施,每个功能设施提供一个或多个操作以完成根据这些技术操作的算法的执行。然而,实例化的“功能设备”是计算机系统的结构组件,当与一个或多个计算机集成并由一个或多个计算机执行时,使得一个或多个计算机执行特定的操作角色。功能设施可以是软件元件的一部分或整个软件元件。例如,功能设施可以根据过程、或作为离散过程、或作为任何其他合适的处理单元来实现。如果这里描述的技术被实现为多功能设施,则每个功能设施可以以其自己的方式实现;所有这些功能设施均不需要以同样的方式实现。另外,这些功能设施可以适当地并行和/或串行地执行,并且可以使用它们正在执行的计算机上的共享存储器,使用消息传递协议或以任何其他合适的方式在彼此之间传递信息。
通常,功能设施包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。通常,功能设施的功能可以根据需要在它们运行的系统中组合或分布。在一些实现中,执行本文技术的一个或多个功能设施可以一起形成完整的软件包。在备选实施例中,这些功能设施可以适于与其他不相关的功能设施和/或过程交互,以实现软件程序应用。
本文已经描述了用于执行一个或多个任务的一些示例性功能设施。然而,应当理解,所描述的功能设施和任务划分仅仅是可以实现本文描述的示例性技术的功能设施的类型的说明,并且实施例不限于以任何特定数量、划分、或功能设施的类型。在一些实现中,所有功能可以在单个功能设施中实现。还应当理解,在一些实施方式中,本文描述的一些功能设施可以与其他功能设施一起实施或与其他功能设施分开实施(即,作为单一单元或分散单元),或者这些功能设施中的一些可以不被实现。
在一些实施例中,实现本文描述的技术的计算机可执行指令(当实现为一个或多个功能设施或以任何其他方式实施时)可以在一个或多个计算机可读介质上编码以向媒体提供功能。计算机可读介质包括诸如硬盘驱动器之类的磁介质,诸如光盘(CD)或数字通用盘(DVD)之类的光学介质、持久或非持久固态存储器(例如,闪存,磁性RAM等)或任何其他合适的存储介质。这种计算机可读介质可以以任何合适的方式实现。如本文所使用的“计算机可读介质”(也称为“计算机可读存储介质”)指的是有形存储介质。有形存储介质是非暂时性的并且具有至少一个物理结构组件。在如本文所使用的“计算机可读介质”中,至少一个物理结构组件具有至少一个物理特性,该特性可在创建具有嵌入信息的介质的处理过程中以某种方式改变,在其上记录信息的过程,或者用信息对介质进行编码的任何其他过程。例如,可以在记录过程期间改变计算机可读介质的一部分物理结构的磁化状态。
此外,上述一些技术包括以某些方式存储信息(例如,数据和/或指令)以供这些技术使用的动作。在这些技术的一些实现中-诸如将技术实现为计算机可执行指令的实现-该信息可以在计算机可读存储介质上编码。在本文中将特定结构描述为存储该信息的有利格式的情况下,当在存储介质上编码时,这些结构可用于赋予信息的物理组织。然后,这些有利结构可以通过影响与信息交互的一个或多个处理器的操作来向存储介质提供功能;例如,通过提高处理器执行的计算机操作的效率。
在其中技术可以体现为计算机可执行指令的一些但非全部实现中,这些指令可以在任何合适的计算机系统或一个或多个计算设备中操作的一个或多个合适的计算设备上执行,(或者一个或多个计算设备的一个或多个处理器)可以被编程为执行计算机可执行指令。计算设备或处理器可以被编程为当指令以计算设备或处理器可访问的方式存储时执行指令,例如指令存储在在数据存储器中(例如,片上高速缓存或指令寄存器、可通过总线访问的计算机可读存储介质、可通过一个或多个网络访问,并可由设备/处理器等访问的计算机可读存储器)。包括这些计算机可执行指令的功能设施可以与以下设备的操作集成并指导其操作,分别为单个多用途可编程数字计算设备、共享处理能力并且联合执行本文描述的技术的两个或更多个多用途计算设备的协调系统、专用于执行本文所述技术的单个计算设备或计算设备的协调系统(共址或地理分布)、用于执行本文所述技术的一个或多个现场可编程门阵列(FPGA)、或任何其他合适的系统。
计算设备可以包括至少一个处理器、网络适配器和计算机可读存储介质。计算设备可以是例如台式个人计算机或笔记本电脑、个人数字助理(PDA)、智能移动手机、服务器或任何其他合适的计算设备。网络适配器可以是任何合适的硬件和/或软件,以使计算设备能够通过任何合适的计算网络与任何其他合适的计算设备进行有线和/或无线通信。计算网络可以包括无线接入点、交换机、路由器、网关和/或其他网络设备以及用于在两个或更多个计算机(包括因特网)之间交换数据的任何合适的有线和/或无线通信介质或介质。计算机可读介质可以适于存储要处理的数据和/或要由处理器执行的指令。处理器能够处理数据和执行指令。数据和指令可以存储在计算机可读存储介质上。
另外地,计算设备可以具有一个或多个组件和外围设备,包括输入和输出设备。除其他之外,这些设备可用于呈现用户界面。可提供用户界面的输出设备的示例包括用于输出视觉呈现的打印机和显示屏,以及用于输出音频的扬声器或其他声音生成设备。用于用户界面的输入设备的示例包括键盘、诸如鼠标、触摸板的指示设备、以及数字化平板电脑。作为另一示例,计算设备可以通过语音识别或其他可听格式接收输入信息。
本文已经描述了以电路和/或计算机可执行指令实现这些技术的实施例。应当理解,一些实施例可以是方法的形式,其中已经提供了至少一个示例。作为方法的一部分执行的动作可以以任何合适的方式排序。因此,可以构造这样的实施例,其中以不同于所示的顺序执行动作,其可以包括同时执行一些动作,即使在示例性实施例中示出为顺序动作。
上述实施例的各个方面可以单独使用、组合使用、或者以前面描述的实施例中没有具体讨论的各种布置使用,因此,其应用不限于在前面的描述中阐述的或在附图中示出的部件的细节和布置。例如,一个实施例中描述的方面可以以任何方式与其他实施例中描述的方面组合。
在权利要求中使用诸如“第一”、“第二”、“第三”等的序数术语来修改权利要求元素本身并不意味着一个权利要求元素优先于、或顺序先于另一个权利要求元素,或执行方法的动作的顺序先后,而是仅用作标签以将具有特定名称的一个权利要求元素与具有相同名称的另一个元素(使用序数术语的)区分开来,以区分权利要求元素。
此外,这里使用的措辞和术语是出于描述的目的,而不应被视为限制。本文中的“包括”、“包含”、“具有”、“含有”、“涉及”及其变化形式的使用旨在涵盖其后列出的项目及其等同物和附加项目。
本文使用的“示例性”一词意味着用作示例、实例或说明。因此,在此描述为示例性的任何实施例、实现、过程、特征等应当被理解为说明性示例,并且除非另有指示,否则不应被理解为优选或有利示例。
本文已经如此描述了至少一个实施例的若干方面,应当理解,本领域技术人员将容易想到各种变型、修改和改进。这些变型、修改和改进旨在成为本公开的一部分,并且旨在落入本文描述的原理的精神和范围内。相应地,前面的描述和附图仅是示例性的。

Claims (19)

1.一种用于确定第一组图像的第一像素指纹与第二组图像的第二像素指纹之间的立体对应关系的系统,所述系统包括:
处理器,配置为执行以下动作:
从一个或多个图像传感器接收场景的第一组图像和场景的第二组图像,其中捕获所述第二组图像的视角与所述第一组图像的不同;
基于所述第一组图像确定第一像素指纹,其中所述第一像素指纹包括随时间的所述第一组图像中的每个图像中第一像素位置处的第一组像素值;
基于所述第二组图像确定第二像素指纹,其中所述第二像素指纹包括随时间的所述第二组图像中的每个图像中第二像素位置处的第二组像素值;
基于所述第一像素指纹生成第一二进制像素指纹,其中所述第一二进制像素指纹包括通过将所述第一组像素值中的每一个像素值与阈值进行比较而生成的第一组二进制值;
基于所述第二像素指纹生成第二二进制像素指纹,其中所述第二二进制像素指纹包括通过将所述第二组像素值中的每一个像素值与阈值进行比较而生成的第二组二进制值;以及
至少部分地基于比较所述第一二进制像素指纹和所述第二二进制像素指纹,确定所述第一组图像的第一像素指纹与所述第二组图像的第二像素指纹之间是否存在立体对应关系,并基于所述第一像素指纹和所述第二像素指纹执行连续时间相关以确定所述第一像素指纹与所述第二像素指纹之间存在潜在对应关系。
2.根据权利要求1所述的系统,其中,从逆相机/投射器接收所述场景的第一组图像和/或第二组图像投射器。
3.根据权利要求1所述的系统,还包括:投射器,所述投射器配置成在场景上投射光图案组,并且其中,使用来自所述光图案组中的不同光图案来捕获所述第一组图像中的每个图像。
4.根据权利要求3所述的系统,其中所述光图案组包括固定图案,所述固定图案被平移、旋转和/或变形以在所述场景上投射不同的光图案。
5. 根据权利要求1所述的系统,其中:
所述第一像素指纹包括所述第一组像素值,所述第一组像素值作为与所述第一组图像的时间顺序对应的有序集合;以及
所述第二像素指纹包括所述第二组像素值,所述第二组像素值作为与所述第二组图像的时间顺序对应的有序集合。
6.根据权利要求1所述的系统,其中生成第一组二进制值包括:
对于所述第一组像素值中的每个像素值,如果像素值高于阈值分配0,或者如果像素值不高于阈值分配1。
7.根据权利要求1所述的系统,其中,比较所述第一二进制像素指纹和所述第二二进制像素指纹包括比较所述第一二进制像素指纹和所述第二二进制像素指纹中的对应二进制值。
8.根据权利要求1所述的系统,其中,所述处理器配置为执行以下动作:
归一化所述第一像素指纹,其中归一化所述第一像素指纹包括在所述第一组图像中的每个图像的第一像素位置处归一化所述第一组像素值,以创建包括第一组归一化像素值的第一归一化像素指纹;
归一化所述第二像素指纹,其中归一化所述第二像素指纹包括在所述第二组图像中的每个图像中的第二像素位置处归一化所述第二组像素值,以创建包括第二组归一化像素值的第二归一化像素指纹;以及
其中:
生成所述第一二进制像素指纹包括基于所述第一归一化像素指纹生成所述第一二进制像素指纹;以及
生成所述第二二进制像素指纹包括基于所述第二归一化像素指纹生成所述第二二进制像素指纹。
9. 根据权利要求8所述的系统,其中,所述处理器配置为执行以下动作:
基于所述第一归一化像素指纹,生成第三二进制像素指纹,其中,所述第三二进制像素指纹包括通过将第一组归一化像素值中的每一个像素值的绝对值与置信度阈值进行比较而生成的第三组二进制值;以及
基于所述第二归一化像素指纹,生成第四二进制像素指纹,其中,所述第四二进制像素指纹包括通过将第二组归一化像素值中的每一个像素值的绝对值与置信度阈值进行比较而生成的第四组二进制值。
10. 根据权利要求9所述的系统,其中,比较所述第一二进制像素指纹和所述第二二进制像素指纹包括比较:
第一、第三和第四二进制像素指纹中对应的二进制值的OR值;以及
第二、第三和第四二进制像素指纹中对应的二进制值的OR值。
11.根据权利要求1所述的系统,其中,比较所述第一二进制像素指纹和所述第二二进制像素指纹包括确定所述第一二进制像素指纹和所述第二二进制像素指纹中对应的二进制值是否在阈值汉明距离内。
12.根据权利要求1所述的系统,其中,在确定所述第一组图像中的第一像素指纹之前,处理器配置为将图像滤波器应用于第一组图像中的每个图像。
13. 根据权利要求1所述的系统,其中,基于所述第一像素指纹和所述第二像素指纹执行连续时间相关以确定所述第一像素指纹与所述第二像素指纹之间存在潜在对应关系包括:
执行所述连续时间相关以产生第所述一像素指纹和所述第二像素指纹之间的相关值;以及
基于超过相关阈值的相关值和先前像素指纹对的先前相关值,确定所述第一像素指纹与所述第二像素指纹之间存在潜在对应关系。
14.根据权利要求13所述的系统,其中,确定所述第一组图像的第一像素指纹与所述第二组图像的第二像素指纹之间是否存在立体对应关系包括:
执行孔填充操作,为尚未确定与另一像素指纹具有潜在对应关系的像素指纹插入初始对应关系。
15.根据权利要求1所述的系统,其中,基于跳跃参数选择所述第一像素位置和/或所述第二像素位置。
16.根据权利要求15所述的系统,其中基于跳跃参数S选择第一像素位置(i1,j1),使得i1模运算S=0且j1模运算S=0。
17.一种用于确定第一组图像的第一像素指纹与第二组图像的第二像素指纹之间的立体对应关系的方法,所述方法包括:
使用处理器执行以下动作:
从一个或多个图像传感器接收场景的第一组图像和场景的第二组图像,其中捕获所述第二组图像的视角与所述第一组图像的不同;
基于所述第一组图像确定第一像素指纹,其中所述第一像素指纹包括随时间的所述第一组图像中的每个图像中第一像素位置处的第一组像素值;
基于所述第二组图像确定第二像素指纹,其中所述第二像素指纹包括随时间的所述第二组图像中的每个图像中第二像素位置处的第二组像素值;
基于所述第一像素指纹生成第一二进制像素指纹,其中所述第一二进制像素指纹包括通过将所述第一组像素值中的每一个像素值与阈值进行比较而生成的第一组二进制值;
基于所述第二像素指纹生成第二二进制像素指纹,其中所述第二二进制像素指纹包括通过将所述第二组像素值中的每一个像素值与阈值进行比较而生成的第二组二进制值;以及
至少部分地基于比较所述第一二进制像素指纹和所述第二二进制像素指纹,确定所述第一组图像的第一像素指纹与所述第二组图像的第二像素指纹之间是否存在立体对应关系,并基于所述第一像素指纹和所述第二像素指纹执行连续时间相关以确定所述第一像素指纹与所述第二像素指纹之间存在潜在对应关系。
18.至少一种非暂时性计算机可读存储介质,其存储处理器可执行的指令,当处理器可执行的指令由至少一个计算机硬件处理器执行时,使得所述至少一个计算机硬件处理器执行以下动作:
从一个或多个图像传感器接收场景的第一组图像和场景的第二组图像,其中捕获所述第二组图像的视角与所述第一组图像的不同;
基于所述第一组图像确定第一像素指纹,其中所述第一像素指纹包括随时间的所述第一组图像中的每个图像中第一像素位置处的第一组像素值;
基于所述第二组图像确定第二像素指纹,其中所述第二像素指纹包括随时间的所述第二组图像中的每个图像中第二像素位的第二组像素值;
基于所述第一像素指纹生成第一二进制像素指纹,其中所述第一二进制像素指纹包括通过将第一组像素值中的每一个像素值与阈值进行比较而生成的第一组二进制值;
基于所述第二像素指纹生成第二二进制像素指纹,其中所述第二二进制像素指纹包括通过将第二组像素值中的每一个像素值与阈值进行比较而生成的第二组二进制值;以及
至少部分地基于比较所述第一二进制像素指纹和所述第二二进制像素指纹,确定所述第一组图像的第一像素指纹与所述第二组图像的第二像素指纹之间是否存在立体对应关系,并基于所述第一像素指纹和所述第二像素指纹执行连续时间相关以确定所述第一像素指纹与所述第二像素指纹之间存在潜在对应关系。
19.一种用于确定第一组图像的第一像素指纹与第二组图像的第二像素指纹之间的立体对应关系的系统,所述系统包括:
处理器,配置为执行以下动作:
从一个或多个图像传感器接收场景的第一组图像和场景的第二组图像,其中捕获所述第二组图像的视角与第一组图像的不同;
基于所述第一组图像确定第一像素指纹,其中所述第一像素指纹包括第一组像素值,所述第一组像素值位于相对于所述第一组图像中的每个图像中的第一像素位置在空间和/或时间上的不同位置处;
基于所述第二组图像确定第二像素指纹,其中所述第二像素指纹包括第二组像素值,所述第二组像素值位于相对于所述第二组图像中的每个图像中的第二像素位置在空间和/或时间上的不同位置处;
基于所述第一像素指纹生成第一二进制像素指纹,其中所述第一二进制像素指纹包括通过将所述第一组像素值中的每一个像素值与阈值进行比较而生成的第一组二进制值;
基于所述第二像素指纹生成第二二进制像素指纹,其中所述第二二进制像素指纹包括通过将所述第二组像素值中的每一个像素值与阈值进行比较而生成的第二组二进制值;以及
至少部分地基于比较所述第一二进制像素指纹和所述第二二进制像素指纹,确定所述第一组图像的第一像素指纹与所述第二组图像的第二像素指纹之间是否存在立体对应关系,并基于所述第一像素指纹和所述第二像素指纹执行连续时间相关以确定所述第一像素指纹与所述第二像素指纹之间存在潜在对应关系。
CN201910840302.2A 2018-09-07 2019-09-06 对物体三维重建初始对应分配有效数据处理的方法和设备 Active CN110889884B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201862728505P 2018-09-07 2018-09-07
US62/728,505 2018-09-07

Publications (2)

Publication Number Publication Date
CN110889884A CN110889884A (zh) 2020-03-17
CN110889884B true CN110889884B (zh) 2023-11-28

Family

ID=67875356

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910840302.2A Active CN110889884B (zh) 2018-09-07 2019-09-06 对物体三维重建初始对应分配有效数据处理的方法和设备

Country Status (5)

Country Link
US (1) US11107268B2 (zh)
EP (1) EP3621033B1 (zh)
JP (3) JP2020053037A (zh)
KR (1) KR102286903B1 (zh)
CN (1) CN110889884B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11430142B2 (en) * 2020-04-28 2022-08-30 Snap Inc. Photometric-based 3D object modeling
KR102654614B1 (ko) * 2020-12-11 2024-04-05 재단법인대구경북과학기술원 깊이 이미지 생성 장치 및 그 동작 방법

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1926576A (zh) * 2004-02-27 2007-03-07 Td视觉有限公司 用于数字编码3d立体视频图像的方法和系统
JP2008093287A (ja) * 2006-10-13 2008-04-24 Olympus Medical Systems Corp 医療用画像処理装置及び医療用画像処理方法
CN101908230A (zh) * 2010-07-23 2010-12-08 东南大学 一种基于区域深度边缘检测和双目立体匹配的三维重建方法
CN103198490A (zh) * 2011-09-16 2013-07-10 索尼公司 图像处理装置、图像处理方法以及程序
CN103780832A (zh) * 2012-10-19 2014-05-07 康耐视公司 使用多增益图像确定和调整相机参数的系统和方法
CN107635129A (zh) * 2017-09-29 2018-01-26 周艇 三维三目摄像装置及深度融合方法
CN108432244A (zh) * 2015-12-21 2018-08-21 皇家飞利浦有限公司 处理图像的深度图

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3576534A (en) 1969-08-11 1971-04-27 Compuscan Inc Image cross correlator
JP3819662B2 (ja) 1999-12-24 2006-09-13 三洋電機株式会社 三次元モデリング装置、方法及び媒体並びに三次形状データ記録装置、方法及び媒体
JP2002131031A (ja) 2000-10-27 2002-05-09 Ricoh Co Ltd 三次元形状計測方法および三次元形状計測装置
JP2003294416A (ja) * 2002-04-03 2003-10-15 Eng Kk ステレオ画像処理装置
JP2004178281A (ja) 2002-11-27 2004-06-24 Nippon Telegr & Teleph Corp <Ntt> 形状復元方法及び形状復元装置、ならびに形状復元プログラム及び記録媒体
DE10351778A1 (de) * 2003-11-06 2005-06-09 Daimlerchrysler Ag Verfahren zur Korrespondenzanalyse in Bilddatensätzen
WO2005088970A1 (ja) * 2004-03-11 2005-09-22 Olympus Corporation 画像生成装置、画像生成方法、および画像生成プログラム
JP5123522B2 (ja) 2006-12-25 2013-01-23 パナソニック株式会社 3次元計測方法及びそれを用いた3次元形状計測装置
JP5500996B2 (ja) * 2010-01-06 2014-05-21 キヤノン株式会社 画像処理装置及び画像処理方法
JP2011216937A (ja) 2010-03-31 2011-10-27 Hitachi Consumer Electronics Co Ltd 立体画像表示装置
KR101165359B1 (ko) 2011-02-21 2012-07-12 (주)엔써즈 이미지와 이미지 또는 이미지와 동영상 사이의 상호 관계 분석 장치 및 방법
US8824787B2 (en) 2011-12-07 2014-09-02 Dunlop Sports Co., Ltd. Silhouette correction method and system and silhouette extraction method and system
CN105075257A (zh) * 2013-04-11 2015-11-18 日本电信电话株式会社 图像编码方法、图像解码方法、图像编码装置、图像解码装置、图像编码程序、以及图像解码程序
US10089739B2 (en) * 2013-06-28 2018-10-02 Texas Instruments Incorporated Structured light depth imaging under various lighting conditions
US9400939B2 (en) * 2014-04-13 2016-07-26 International Business Machines Corporation System and method for relating corresponding points in images with different viewing angles
JP6444233B2 (ja) 2015-03-24 2018-12-26 キヤノン株式会社 距離計測装置、距離計測方法、およびプログラム
JP6598673B2 (ja) 2015-12-24 2019-10-30 キヤノン株式会社 データ処理装置およびその方法
EP3273681B1 (en) 2016-06-08 2020-06-17 Panasonic Intellectual Property Management Co., Ltd. Projection system
US10462445B2 (en) * 2016-07-19 2019-10-29 Fotonation Limited Systems and methods for estimating and refining depth maps
US10192311B2 (en) * 2016-08-05 2019-01-29 Qualcomm Incorporated Methods and apparatus for codeword boundary detection for generating depth maps
CN108616726A (zh) * 2016-12-21 2018-10-02 光宝电子(广州)有限公司 基于结构光的曝光控制方法及曝光控制装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1926576A (zh) * 2004-02-27 2007-03-07 Td视觉有限公司 用于数字编码3d立体视频图像的方法和系统
JP2008093287A (ja) * 2006-10-13 2008-04-24 Olympus Medical Systems Corp 医療用画像処理装置及び医療用画像処理方法
CN101908230A (zh) * 2010-07-23 2010-12-08 东南大学 一种基于区域深度边缘检测和双目立体匹配的三维重建方法
CN103198490A (zh) * 2011-09-16 2013-07-10 索尼公司 图像处理装置、图像处理方法以及程序
CN103780832A (zh) * 2012-10-19 2014-05-07 康耐视公司 使用多增益图像确定和调整相机参数的系统和方法
CN108432244A (zh) * 2015-12-21 2018-08-21 皇家飞利浦有限公司 处理图像的深度图
CN107635129A (zh) * 2017-09-29 2018-01-26 周艇 三维三目摄像装置及深度融合方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
Daniel Scharstein等.High-Accuracy Stereo Depth Maps Using Structured Light.《Proceedings of the 2003 IEEE Computer Society Conference on Computer Vision and Pattern Recognition》.2003,第1-8页. *
G. Sansoni,等.Three-dimensional imaging based on Gray-code light projection: characterization of the measuring algorithm and development of a measuring system for industrial applications.《APPLIED OPTICS》.1997,第4463-4472页. *
Jens Gühring 等.Dense 3-D surface acquisition by structured light using off-the-shelf components.《proceedings of SPIE – The International Society For Optical Engineering》.2000,第1-12页. *
王宁宁.基于线结构光3D纹理测量的研究.《中国优秀硕士学位论文全文数据库 (信息科技辑)》.I138-7373. *

Also Published As

Publication number Publication date
JP2023169357A (ja) 2023-11-29
JP2022068316A (ja) 2022-05-09
EP3621033B1 (en) 2023-03-15
CN110889884A (zh) 2020-03-17
KR20200028858A (ko) 2020-03-17
JP2020053037A (ja) 2020-04-02
EP3621033A1 (en) 2020-03-11
KR102286903B1 (ko) 2021-08-09
US20200082605A1 (en) 2020-03-12
US11107268B2 (en) 2021-08-31

Similar Documents

Publication Publication Date Title
JP7161150B2 (ja) ジオメトリ情報の動き補償
US11954767B2 (en) Methods and apparatus for generating a three-dimensional reconstruction of an object with reduced distortion
US11593954B2 (en) Systems and methods for improved 3-D data reconstruction from stereo-temporal image sequences
JP2023169357A (ja) 物体の3次元再構成のための初期対応割り当ての効率的なデータ処理のための方法及び装置
US11776137B2 (en) Systems and methods for detecting motion during 3D data reconstruction
CN112119432A (zh) 用于处理3d场景的方法和装置
KR20150101343A (ko) 영상 투사 시스템
Yamao et al. A sequential online 3d reconstruction system using dense stereo matching
CN114758072A (zh) 深度重建方法、装置及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant