CN106575438B - 立体和结构光处理的组合 - Google Patents
立体和结构光处理的组合 Download PDFInfo
- Publication number
- CN106575438B CN106575438B CN201580044728.7A CN201580044728A CN106575438B CN 106575438 B CN106575438 B CN 106575438B CN 201580044728 A CN201580044728 A CN 201580044728A CN 106575438 B CN106575438 B CN 106575438B
- Authority
- CN
- China
- Prior art keywords
- image
- depth
- style
- optical sensor
- estimation
- 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.)
- Expired - Fee Related
Links
- 238000012545 processing Methods 0.000 title abstract description 21
- 230000003287 optical effect Effects 0.000 claims abstract description 157
- 238000000034 method Methods 0.000 claims abstract description 99
- 230000006870 function Effects 0.000 claims description 41
- 230000008447 perception Effects 0.000 claims description 8
- 238000003384 imaging method Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 18
- 230000000007 visual effect Effects 0.000 description 14
- 239000000758 substrate Substances 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000011068 loading method Methods 0.000 description 9
- 238000001514 detection method Methods 0.000 description 7
- 238000003860 storage Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000015654 memory Effects 0.000 description 6
- 239000007787 solid Substances 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000009434 installation Methods 0.000 description 4
- 238000004806 packaging method and process Methods 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000011218 segmentation Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000007613 environmental effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 239000012634 fragment Substances 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 229910052751 metal Inorganic materials 0.000 description 2
- 239000002184 metal Substances 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- HBBGRARXTFLTSG-UHFFFAOYSA-N Lithium ion Chemical compound [Li+] HBBGRARXTFLTSG-UHFFFAOYSA-N 0.000 description 1
- 241001417534 Lutjanidae Species 0.000 description 1
- 241000736199 Paeonia Species 0.000 description 1
- 235000006484 Paeonia officinalis Nutrition 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003796 beauty Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000000567 combustion gas Substances 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000004387 environmental modeling Methods 0.000 description 1
- 238000011049 filling Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002045 lasting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 229910001416 lithium ion Inorganic materials 0.000 description 1
- 230000007787 long-term memory Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000006386 neutralization reaction Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000000843 powder Substances 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 241000894007 species Species 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0014—Image feed-back for automatic industrial control, e.g. robot with camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/0002—Inspection of images, e.g. flaw detection
- G06T7/0004—Industrial image inspection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/521—Depth or shape recovery from laser ranging, e.g. using interferometry; from the projection of structured light
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
- G06T7/55—Depth or shape recovery from multiple images
- G06T7/593—Depth or shape recovery from multiple images from stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V20/00—Scenes; Scene-specific elements
- G06V20/60—Type of objects
- G06V20/64—Three-dimensional objects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10004—Still image; Photographic image
- G06T2207/10012—Stereo images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30108—Industrial image inspection
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Optics & Photonics (AREA)
- Quality & Reliability (AREA)
- Robotics (AREA)
- Multimedia (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Manipulator (AREA)
- Image Analysis (AREA)
Abstract
提供了使用立体和结构光处理的组合来确定深度信息的方法和***。示例方法包括接收利用至少两个光学传感器捕获的多个图像,以及基于第一图像和第二图像之间的对应特征确定至少一个表面的第一深度估计。此外,该方法包括使纹理投影仪投射已知的纹理式样,以及基于第一深度估计确定多个图像中的至少一个图像的至少一个区域,在该至少一个区域内搜索已知纹理式样的特定部分。并且所述方法包括确定与所述至少一个区域内的已知纹理式样的特定部分相对应的点,以及基于所确定的与所述已知纹理式样相对应的点来确定所述至少一个表面的第二深度估计。
Description
相关申请的交叉引用
该申请要求于2014年12月29日提交的美国专利申请No.14/584,016的优先权,其内容通过引用整体并入本文。美国专利申请No.14/584,016要求于2014年8月29日提交的美国临时申请No.62/043,463的权益,其内容通过引用整体并入本文。
技术领域
机器人***,例如包括夹持元件的机械臂,可以用于涉及拾起或移动物体的申请。例如,机器人装置可以用于将集装箱填满物体、创建一堆物体或者从车厢中卸下物体。在一些情况中,所有的物体可以是相同类型的。在其他的情况中,集装箱或者垛车(truck)可以包括不同类型物体的混合,例如盒装物品、罐状体(cans)、轮胎状物(tires)或者其他堆叠放置的物体。这种机器人***可以基于环境中物***于哪里的预定知识来指挥机械臂拾起物体。
背景技术
在一些示例中,机械人***可以使用电脑计算机视觉技术来确定三维(3D)场景几何体的表示形式。通过示例,机器人***可以三角化从场景中观察到的信息以确定到场景中的一个或多个表面的深度。一种深度感测的方法是使用立体图像处理。根据该方法,与另一个光学传感器具有已知物理关系的两个光学传感器用于捕获场景的两幅图像。通过找到两幅图像内对应像素值的映射以及计算这些公共区域在像素空间中存在的距离有多远,计算装置可以使用三角测量确定深度图或深度图像。深度图或深度图像可以包括关于场景中物体表面的距离的信息。
深度感测的另一个方法是结构光(structured-light)处理。结构光处理的主旨是将已知的照明式样(pattern)投射到场景中,并捕获包括投射的式样的场景图像。例如,如图1所示,投影仪102可以将已知的纹理式样投射到物体104上,光学传感器106(例如,照相机)可以捕获物体104的图像108。然后计算装置可以确定图像中的区域和投射的式样的特定部分之间的对应性。考虑投影仪102的位置、光学传感器106的位置和图像108中对应式样特定部分的区域的位置,计算装置然后可以使用三角测量来估算到物体104表面的深度。
典型地,沿着基线水平地放置投影仪102和光学传感器106,并且校准投影仪102和光学传感器106。校准过程可以将光学传感器106中的像素映射到投影仪102中的像素的一维曲线上。如果矫正传感器图像和投影仪图像,则该曲线可以表现为水平线的形式。在这种情况中,搜索与投射的纹理式样的匹配可以沿着该线进行,这使得过程更加有效。
在结构光处理过程中,匹配图像区域和投射的部分的与其对应的部分的过程被称作式样解码。在式样解码期间,计算装置水平地搜索图像中包含投射的式样的独特部分的区域。实际上,计算装置在其内进行搜索的图像(即,搜索空间)中的水平区域的尺寸可能需要式样针对图像的每个部分在那段距离上是独特的。例如,投射的式样可以由重复部分组成,以使得式样在诸如128像素的某一水平匹配范围上针对某一尺寸块(例如,19x19像素)是独特的。因此,搜索空间可以是至少为128像素的区域。
发明内容
在结构光处理中,针对与投射的式样的特定部分相对应的区域,如果计算装置不是必须搜索整个图像或者整个线性区域,则可以使式样解码更容易。如本文所述,计算装置可以使用立体成像结果来限制搜索空间用于检测图像中的结构光式样。例如,计算装置可以使用通过一起作为立体成像***起作用的两个光学传感器捕获的图像来确定对场景中的表面的初始深度估算。然后计算装置可以使用初始深度估算将线性搜索限制到围绕深度估算的小部分。此外,计算装置然后可以使用结构光来确定针对表面的另一个深度估算。有利地,在进行式样解码之前,计算装置可以基于初始深度估算来确定投射的式样的图像的区域以在所述区域内搜索纹理式样的特定部分。在一些示例中,使用立体深度估算来限制用于式样解码的搜索空间可以允许计算装置使用在较小的线性区域上是独特的纹理式样,从而增加作为结果的深度估算的空间分辨率。
在一个示例中,提供了一种方法,其可以涉及通过计算装置接收由至少两个光学传感器捕获的多个图像。所述多个图像可以包括从第一光学传感器的第一视角所感知的环境的第一图像,和从第二光学传感器的第二视角所感知的环境的第二图像。该方法可以进一步涉及基于第一图像和第二图像之间的对应特征(features)通过计算装置来确定针对环境中至少一个表面的第一深度估算。此外,该方法可以涉及通过计算装置使得纹理投影仪将已知的纹理式样投射到环境上。此外,该方法可以涉及通过计算装置和基于第一深度估算来确定多个图像中的至少一个图像的至少一个区域,以在其中搜索已知纹理式样的特定部分。该方法还可以涉及通过计算装置来确定在至少一个图像的至少一个区域内与已知纹理式样的特定部分相对应的点。并且该方法可以涉及基于在至少一个图像的至少一个区域内所确定的与已知纹理式样的特定部分相对应的点通过计算装置来确定针对环境中至少一个表面的第二深度估算。
在另一个示例中,公开了一种具有存储在其中的指令的非暂时性(non-transitory)计算机可读介质,当由计算装置的一个或多个处理器执行所述指令时,所述指令使得计算装置执行功能。所述功能可以包括接收由至少两个光学传感器捕获的多个图像。所述多个图像可以包括从第一光学传感器的第一视角所感知的环境的第一图像和从第二光学传感器的第二视角所感知的环境的第二图像。所述功能可以进一步包括基于第一图像和第二图像之间的对应特征来确定针对环境中的至少一个表面的第一深度估算。所述功能还可以包括使得纹理投影仪将已知纹理式样投影到环境上。此外,所述功能可以包括基于第一深度估算来确定多个图像中的至少一个图像的至少一个区域,以在其中搜索已知纹理式样的特定部分。所述功能还可以包括确定在至少一个图像的一个区域内与已知纹理式样的特定部分相对应的点。并且所述功能可以包括基于在至少一个图像的至少一个区域内所确定的与已知纹理式样的特定部分相对应的点来确定针对环境中至少一个表面的第二深度估算。
在另一个示例中,提供了一种包括至少两个光学传感器、纹理投影仪和计算装置的***。纹理投影仪可以被配置为将已知纹理式样投射到环境上。计算装置可以被配置为接收由至少两个光学传感器捕获的多个图像。所述多个图像可以包括从第一光学传感器的第一视角所感知的环境的第一图像和从第二光学传感器的第二视角所感知的环境的第二图像。此外,计算装置可以被配置为基于第一图像和第二图像之间的对应特征来确定针对环境中的至少一个表面的第一深度估算。计算装置还可以被配置为使得纹理投影仪将已知纹理式样投影到环境上。此外,计算装置可以被配置为基于第一深度估算来确定多个图像中的至少一个图像的至少一个区域,以在其中搜索已知纹理式样的特定部分。计算装置可以进一步被配置为确定在至少一个图像的一个区域内与已知纹理式样的特定部分相对应的点。并且计算装置可以被配置为基于在至少一个图像的至少一个区域内所确定的与已知纹理式样的特定部分相对应的点来确定针对环境中至少一个表面的第二深度估算。
在另一个示例中,提供了一种***,其包括用于接收由至少两个光学传感器捕获的多个图像的装置。所述多个图像可以包括从第一光学传感器的第一视角所感知的环境的第一图像和从第二光学传感器的第二视角所感知的环境的第二图像。此外,***还可以包括用于基于第一图像和第二图像之间的对应特征来确定针对环境中的至少一个表面的第一深度估算的装置。***可以进一步包括用于使得纹理投影仪将已知纹理式样投影到环境上的装置。此外,***可以包括用于基于第一深度估算来确定多个图像中的至少一个图像的至少一个区域以在其中搜索已知纹理式样的特定部分的装置。此外,***可以包括用于确定在至少一个图像的一个区域内与已知纹理式样的特定部分相对应的点的装置。并且***可以包括用于基于在至少一个图像的至少一个区域内所确定的与已知纹理式样的特定部分相对应的点来确定针对环境中至少一个表面的第二深度估算的装置。
上述总结仅是说明性的并且没有意图以任何方式进行限制。除了上述的说明性的方面、实施例、和特征,通过参考图形、下面的详细说明和附图,其他的方面、实施例和特征将变得明显。
附图说明
图1是结构光处理的示例方法的概念性图解。
图2A示出了根据示例实施例的安装在移动的车上的机械臂。
图2B是根据示例实施例的说明机器人装置的功能框图。
图3A示出了根据示例实施例的机械臂和一堆盒子。
图3B示出了根据示例实施例的通过安装在机械臂上的传感器扫描来自图3A的一堆盒子。
图3C示出了根据示例实施例的来自图3A的机械臂移动盒子。
图4是根据示例实施例的方法的框图。
图5是示例成像***的概念性图解。
图6是另一个示例成像***的概念性图解。
图7A和7B是确定图像的区域以在其中搜索已知纹理式样的特定部分的概念性图解。
图8是根据示例实施例的另一个方法的框图。
图9是根据示例实施例的可以由计算装置执行的示例功能的框图。
具体实施方式
在本文中描述了示例方法和***。本文中描述的任何示例实施例或特征不一定要被解释为相对于其他实施例或特征是优选的或有利的。本文中描述的示例实施例并不意味着是限制性的。将很容易地理解公开的***和方法的某些方面可以以所有在本文中被考虑的很多不同的配置被设置和结合。
此外,在图中示出的特定设置不应被视为限制性的。应该理解的是其他实施例可能或多或少地包括示出在给出的图中的每个元件。另外,可以结合或省略一些图示的元件。更进一步地,示例实施例可以包括未示出在图中的元件。
在本文中提供了可以帮助改善三维场景几何体的分辨率。根据各种实施例,计算装置可以使用立体成像结果来限制搜索空间,用于检测图像中结构光式样的一部分。在一个示例中,计算装置可以接收由至少两个光学传感器捕获的多个图像。例如,多个图像可以包括从第一光学传感器的第一视角捕获的第一图像以及从第二光学传感器的第二视角捕获的第二图像。计算装置然后可以基于第一图像和第二图像之间的对应特征来确定针对环境中的至少一个表面的第一深度估算。举例来说,计算装置可以确定两个图像内的相应像素值的映射,并且基于两个光学传感器之间的物理关系,计算装置可以利用三角测量来确定深度图。
此外,计算装置然后可以使用第一深度估算作为至结构光处理的输入。例如,计算装置可以使得纹理投影仪将已知纹理式样投射到环境上,并且接收环境和纹理式样的至少一个图像。计算装置还可以基于第一深度估算来确定图像的区域,以在其中搜索已知纹理式样的特定部分。换句话说,计算装置并非在整个图像上执行式样解码,而是可以使用第一深度估算来确定最有可能包括已知纹理式样的特定部分的图像区域。如本文中所述,计算装置可以基于第一深度估算以及纹理投影仪和用于捕获图像的光学传感器之间的物理关系来确定区域。随后,计算装置可以确定区域内的与已知纹理式样的特定部分相对应的点,并且使用所确定的相对应的点来计算第二深度估算。
如下面进一步描述的,考虑示例方法上的多种变化。例如,在一些示例中,可以在用于立体成像的图像被捕获之前投射已知纹理式样。此外,用于结构光处理的至少一个图像可以包括用于立体图像处理的一个或多个图像,或者可以包括使用第三光学传感器捕获的一个或多个图像。另外,在一些示例中,在由两个不同的光学传感器捕获的两个(或多个)图像中搜索结构光式样可以改善使用结构光处理确定的深度估算的精确度和分辨率。更进一步地,在一些示例中,计算装置可以确定结合第一深度估算(立体深度估算)和第二深度估算(结构光估算)的第三深度估算。
在一些示例中,使用立体深度估算来限制针对式样解码的搜索空间可以允许计算装置使用相对于较小区域是独特的纹理式样,从而提高作为结果的深度估算的空间分辨率。举例来说,在一实施中,一个块式样(例如,19x19像素块)可以在传感器的整个水平区域(例如,128个不同的像素位置)上进行匹配以确定是否存在匹配。匹配的位置可以指示所投射的式样块(pattern patch)的相关深度。相应地,需要式样像素块是独特的并且在和匹配的区域一样长的式样的任何水平区域内与其他块完全不同。由于匹配的区域变长,经常增加像素块的尺寸以保证独特性和相异性。因此,减小匹配的区域允许更小的匹配块、更好地拒绝误报(false positives)、和更好的所计算的深度的空间分辨率。因此,所描述的方法和***可以在质量(quality)和空间分辨率两个方面上帮助改善结构光的深度估算。
下面描述了各种附加的示例,因此上面的示例并不意味着是限制性的。下面将针对各种实施例进行参考,在附图中说明所述实施例的示例。在下面的详细描述中,陈述了很多具体细节以便提供对本公开和所述的实施例的深入的理解。然而,本公开可以在没有这些具体细节下进行实践。在其他的实例中,并没有详细描述已知的方法、程序、组件和电路以免不必要地模糊实施例方面。
此外,尽管本公开的部分涉及实现所描述的方法和装置以促进处理(例如,装载和/或卸载)盒子和/或其他物体,但是也可以在其他环境中实现所述方法和装置。例如,通常可以在任何环境下实现所述方法和装置,以确定环境的3D几何体或环境中物体的3D几何体。举例来说,可以实现所述方法和装置以帮助确定屋子里的房间或建筑物里的办公室的3D几何体,又或许是竞技场(arena)、会议中心或购物中心的一部分的3D几何体。类似地,也可以在户外环境中利用所述方法和装置。
根据各种实施例,本文中描述的是用于盒子和/或其他物体的自动化装载(例如至存储集装箱)和/或(例如从车辆)卸载的方法和***。在一些示例实施例中,盒子或物体可以被自动地组织和放置到托盘(托盘化(palletized))或自动地从托盘被移除(解托盘化(depalletized))。在示例中,自动化装载和/或卸载垛车的过程和/或托盘化/解托盘化物体的过程可以提供若干工业的和商业的优势。
根据各种实施例,自动化装载和/或卸载垛车的过程和/或托盘化/非托盘化物体的过程可以包括合并一个或多个机器人装置以移动物体或执行其他功能。在一些示例中,通过在天花板上、墙壁上或地板上将机器人装置与轮式基底(wheeled base)、完整式基底(holonomic base)(例如,可以在任何方向上移动的基底)或导轨(rails)耦合可以使得机器人装置可移动。在一些示例中,基底可以是抬高的基底。
在一些示例中,描述了包括一个或多个传感器、一个或多个计算机和一个或多个机械臂的***。传感器可以扫描包含一个或多个物体的环境以便捕获可视数据和/或3D深度信息。扫描来的数据然后被结合到更大区域的表示(representation)中以便提供数字环境再建。在其他的示例中,再建的环境然后可以用于识别物体以拿起(pick up),确定物体的拾取位置(pick position)和/或规划针对一个或多个机械臂和/或移动基底(mobilebase)的无冲突轨迹。
如本文中所应用的,术语“盒子”将指示可以被放置在托盘上或装载到垛车或集装箱或从垛车或集装箱上卸载的任何物体或物品。例如,除了长方体,“盒子”可以指示罐状体(cans)、鼓状体、轮胎或其他“简单”形状的几何体物品。此外,“装载”和“卸载”每个可以用于意指另一个。例如,如果示例描述了用于装载垛车的方法,要理解的是大体上相同的方法也可以用于同样卸载所述垛车。如本文中所应用的,“托盘化”指的是将盒子装载到托盘上并且在某种程度上堆垛或布置盒子以使得托盘上的盒子可以在托盘上被存储或运输,而“解托盘化”指的是从托盘上移除盒子。此外,术语“托盘化”和“解托盘化”每个可以用于意指另一个。
根据各种实施例,机械臂可以安装在完整式车(holonomic cart)上(例如,允许其在任何方向上移动的带有轮子的车)。图2A描述了包含机械臂的示例完整式车。在一些实施例中,可移动的车212可以包括安装在车212上的机械臂202。机械臂202可以包含用于夹持环境中的物体的夹持元件204。车可以包含一个或多个轮子214,它们可以是以两个自由度运转的完整式轮子。在其他的实施例中,环绕式(wraparound)前传送带210可以包括在完整式车212上。在一些实例中,当从车集装箱或托盘上卸载盒子或将盒子装载至车集装箱或托盘上时,环绕式前传送带210可以允许自动机械不必旋转其夹持元件至左边或右边。
在其他示例中,机械臂可以安装在不同类型的可移动的装置上或者可以完全不安装在可移动的基底上。例如,机械臂可以在出厂设置中安装在固定的位置上。在其他的示例实施例中,一个或多个机械臂可以安装在垛车或集装箱的导轨上。在此类示例中,机械臂可以用于装载或卸载垛车或集装箱。
图2B是示出根据示例实施例的机器人装置200的功能框图。机器人装置200可以包括各种子***诸如机械***220、传感***230、控制***240和电源250。机器人装置200可以包括更过或更少的子***,并且每个子***可能包括多个元件。此外,每个子***和机器人装置200的元件可以相互连接。因此,机器人装置200的上述功能的一个或多个可以被分为附加功能的或物理的组件(components),或者可以组合成较少数的功能的或物理的组件。在一些示例中,附加功能的和/或物理的组件可以被增添至如图2A和2B所示的示例中。
机械***220可以包括关于图2A的上述的组件,其包括机械臂202、夹持元件204、传送带210、(可移动的或完整式)车212和一个或多个轮子214。机械***220可以另外包括发动机222,所述发动机可以是由电源驱动的电动机,或者可以是由许多不同的能源驱动,例如基于燃气的燃料或者太阳能。此外,发动机222可以配置为从电源250接收电力。电源250可以将电力提供给机器人装置200的各种组件,并且可以代表例如可再充电的锂离子或铅酸蓄电池。在示例实施例中,一组或多组此类电池可以配置为供给电能。其他的电力供应材料和类型也是可能的。
传感器230可以使用一个或多个连接到机械臂的传感器202,例如传感器206和传感器208,它们可以是在机械臂202移动时感测关于环境的信息的2D传感器和/或3D深度传感器。传感***可以确定可被控制***240(例如,计算机运行运动规划软件)使用的关于环境的信息来有效地拾起和移动盒子。控制***240可以位于装置上或者可以与装置处于远距离通信。在其他的示例中,可以将来自安装在移动基底的一个或多个2D或3D传感器(例如前导航传感器216和后导航传感器218)和安装在机械臂上的一个或多个传感器(例如传感器206和传感器208)的扫描进行整合,以建立环境的数字模型,包括垛车或其他集装箱的侧面(sides)、地板、天花板、和/或垛车前壁。利用该信息,控制***240可以使得移动基底导航至用于卸载或装载的位置。
在额外的示例中,可以从3D传感器提取平面表面信息来对墙壁、地板/天花板、和/或盒子表面建模。在对地板建模之后,将物体投射到地板表面可以使能障碍物和/或诸如盒子的目标物体的划分。地板-平面投射也可以用于对可能不被准确地建模为平面的集装箱或垛车的波纹边(corrugated)建模。在另外的示例中,侧壁角度、地板平面横摇和纵摇(roll and pitch)、和/或与侧壁的距离可以用于操作(maneuver)移动基底至集装箱内而无碰撞。使用扩充的3D信息而非单线(single line)扫描可以有助于使得对导航信息的提取更鲁棒(robust)。例如,侧壁可以具有被3D传感器捕获的垂向幅度(vertical extent)。使用深度信息的单线的扫描***,如果垂直扫描的话可能更慢,和/或不够鲁棒,因为它们获得了较少的信息。在额外的示例中,前平面建模可以确定到下一组物体的距离以在垛车卸载中拾取。
在另外的示例中,机械臂202可以装配有夹持元件204,例如数字吸入网格夹持元件(digital suction grid gripper)。在此类实施例中,夹持元件可以包括一个或多个吸入阀,所述吸入阀可以或者通过遥感技术或者单点距离测量和/或通过检测是否实现吸入而被开启或关闭。在额外的示例中,数字吸入网格夹持元件可以包括铰接式外延(articulated extension)。在一些实施例中,对流变性液体或粉末的吸入夹持元件的驱动的可能性可以使能对具有高曲率的物体的夹持。
在一些实施例中,夹持元件可以潜在地跨越几个盒子或物体并且对一些或所有被覆盖的物体开启吸入。在一些实施例中,吸入或粘附装置(adhesion devices)可以是“数字”网格,以使得机器人装置随着将适合感测到的用于抓取的盒子可以开启任何数量的吸入装置。在一些实施方式中,***可以注意到盒子中的接缝(相邻盒子之间的间隔),以使得可以在接缝的两侧上激活吸入装置,以同时拾取两个盒子,从而使吞吐量加倍。在一些实施例中,吸入装置可以在一定量的时间之后感测它们是否能够成功地夹紧表面,之后它们可以自动关闭。在另外的实施例中,吸入装置的部分可以折向下以抓握盒子的顶部。例如,夹持元件可以最初以完全延伸开始,然后顺应(conform to)被夹持的表面。
在另外的示例中,机械臂可以实施摆动运动以改善吸入抓握。在另外的实施例中,机械臂可以使箱体侧向摆动以帮助将箱体与其周围环境分开。在其它实施例中,臂可在拾取盒子时摆动,以避免挤压(jostling)其他物体。在这样的实施例中,当试图粘附到物体以便使用吸力拾取物体时,机械臂可以采用摆动运动,以便对物体进行牢固的密封。在另外的示例中,当机械臂拾取物体时,机械臂可以摆动物体,以使得盒子可以更温和地突破摩擦或与其他物品的重叠接触。这可以帮助避免将物体向上拉得太直接或太快导致其他物品被抛到空中的情况。
根据各种实施例,纸板盒可具有凹面、凸面或其它被弄皱的面,这使得吸入装置难以粘附。因此,当装置进行吸力接触时,吸入装置的摆动可以实现对纸板盒和其他非平面物体的更可靠的抓握。在另外的示例中,当首次抓取盒子时,可以开启几个中心吸入装置,并且当开始拉出盒子时,臂可以来回摆动。这可以破坏与其他盒子的表面粘附力,并有助于开始拉出盒子。一旦盒子至少部分地被拉出,盒子就可以更容易地与其它盒子分开。在一些实施例中,在拾取杂物中的物体时摆动可以从拾取的物体移除其它物体,从而防止不必要地拾取周围物体。
根据各种实施例,物品的分割对于成功抓握是必要的。在一些实施例中,光滑表面片(smooth surface patch)可以属于两个单独的物体。在这种情况下,操纵器与物体的交互可用于扰乱场景以更好地将物体彼此分割。对于运动分离,可以通过光流、视差或时间延迟视图跟踪传送机上、滑块上在手提箱中移动和/或在手提箱(tote)内活跃地挤压的(jostled)物体的自然或强制移动,以计算立体深度以便增强对象分割。
在其他示例中,感测***使用的一个或多个传感器可以是注册到深度感测设备的RGBaD(RGB+活动深度)彩色或单色摄像机,其使用主动视觉技术,例如将图案投射到场景以实现一个或多个相机与已知偏移图案投影仪之间的深度三角测量。这种类型的传感器数据可以有助于实现鲁棒分割。根据各种实施例,诸如条形码、纹理相干性、颜色、3D表面性质或表面上的印刷文本之类的提示也可以用于识别物体和/或找到其姿势,以便知道在哪里和/或如何放置物体(例如,将物体装配到夹持元件接收器中)。在一些实施例中,阴影或纹理差异也可以用于分割对象。
机器人装置200的许多或所有功能可以由控制***240控制。控制***240可以包括执行存储在非暂时性计算机机可读介质诸如存储器246中的指令244的至少一个处理器242(其可以包括至少一个微处理器)。控制***240还可以表示可以用于以分布式方式控制机器人装置200的各个组件或子***的多个计算装置。
在一些实施例中,存储器246可以包含可由处理器242执行的指令244(例如,程序逻辑)以执行机器人装置200的各种功能,包括上面结合图2A-2B描述的那些功能。存储器246还可以包含附加指令,包括用于向机械***220、传感器***230和/或控制***240中的一个或多个发送数据、接收数据、与其交互和/或对其进行控制的指令。
根据各种实施例,描述了感知引导机器人。例如,机器人装置可以利用感知连同计划的组合来引导机械臂拾取盒子并将盒子放置在其需要去的地方。图3A示出了根据示例实施例的具有一堆盒子的来自图2A的机器人装置的一部分。如图所示,机器人装置可包括具有夹持元件204、传感器206和208以及如上所述的传送器210的机械臂202。在一些示例中,机器人装置可以安装在如关于图2A所描述的完整式车上,可以安装在不同类型的可移动装置上,可以安装在导轨(rails)或轨道(tracks)上,或者可以是固定的。可以控制机器人装置以从包含盒子的形状和尺寸的多样混合的一堆盒子320中拾取盒子。
在示例中,可以确定包括2D和/或3D中的物体的模型的虚拟环境并且其可被用作开发用于拾取盒子的计划或策略。在一些示例中,机器人可以使用一个或多个传感器来扫描包含物体的环境,如图3B所示。当机械臂202移动时,臂上的传感器206可以捕获关于一堆盒子320的传感器数据,以便确定各个盒子的形状和/或位置。在另外的示例中,可以通过整合来自个体(例如,3D)扫描的信息来建立3D环境的更大的图片。执行这些扫描的传感器可以放置在固定位置、机械臂和/或其他位置。根据各种实施例,可以根据多种不同技术中的任何一种或全部来构造和使用扫描。
在一些示例中,可以通过移动其上安装有一个或多个3D传感器的机械臂来进行扫描。来自臂位置的反馈可以提供关于传感器位于何处的姿势信息,并且可以用于帮助综合处理(integration)。替代地或附加地,可以使用一个或多个2D传感器例如通过利用(leveraging)运动和跟踪环境中的关键点来进行扫描。在另外的示例中,扫描可以来自具有覆盖给定场的视场(FOV)的固定安装的相机。在另外的示例中,扫描可以被视觉地配准(registered)以帮助精细姿态估计,潜在地提供更好的综合结果。
在另外的示例中,可以使用3D立体或表面模型来建立虚拟环境以整合信息(例如,来自不同的传感器)。这可以允许***在更大的环境中操作,诸如在一个传感器可能不足以覆盖大的环境的情况下。这样的技术还可以增加捕获的细节的水平,这可以帮助机器人装置执行各种任务。特别地,整合信息可以比单独的单个扫描(例如,通过降低噪声电平)产生更精细的细节。这可以实现更好的对象检测、表面拾取或其他应用。
在另外的示例中,广角环境重建可以通过感测环境并将该信息提取为简单数学3D几何形状(例如,平面、圆柱、圆锥、半球等)的简化几何模型来执行。在一些情况下,这样的技术可以使运动规划更容易和/或可以更容易检测到模型的破坏(violation)(例如,碰撞)。替代地或另外地,这样的技术可以允许参数描述以扩展环境。例如,地面可以被视为在遮挡其的物体后面延伸的平面。
在另外的示例中,可以以3D提取环境中的平面或其他数学表面。这些已知的“理想”表面检测可以组合成更准确的环境模型。例如,平面可以用于确定墙壁(或其数学描述)和其他障碍物的全部范围,以避免碰撞和检测感兴趣物体的位置。此外,物体的数学表示可以用于查找诸如人进入环境中的异常现象(anomalies)。这种事件可能违反理想模型,这可能使其检测更容易。
在其他示例中,诸如盒子的某些物体可以具有简单的平面形式。例如,金属罐可以具有圆柱体的几何形状,并且轮胎可以具有圆环的几何形状。示例***可以利用某些物体的这个特征,以便对它们建模和/或确定如何进行(motion)针对物体的计划。例如,可以使用某些形状的已知模板来改进环境内的物体的检测到的特征,所述特征看起来与特定形状匹配。
在一些示例中,2D和3D信息可以至少部分地经由一个或多个立面(facades)来表示。立面可以被定义为包含被表示为深度图(例如,具有距离作为第三维度的2D地图)的一组物体的***面(near-planar)构造。立面的示例可以包括垛车中的盒壁、包含盒子或其他物体的托盘堆的顶部、或者混杂物体的箱子(bin)的顶部。
在另外的示例中,例如可以从盒子构建立面,以规划拾取盒子的顺序。例如,如图3C所示,盒子322可以由机器人装置识别为要拾取的下一个盒子。盒子322可以在代表基于由一个或多个传感器(诸如传感器206和208)收集的传感器数据构建的一堆盒子320的前壁的立面内被识别。控制***然后可以确定盒子322是可能基于其形状和尺寸、其在一堆盒子320的顶部上的位置,和/或基于目标集装箱的特性或盒子的位置而要拾取的下一个盒子。然后可以控制机械臂202以使用夹持元件204拾取盒子322并将盒子322放置在传送带210上(例如,将盒子322运输到存储区域中)。
在另外的示例中,立面可以表示为3D表面信息的正投影。该表示可以允许解析立面以确定特定应用的感兴趣区域。例如,在垛车卸载中,可以基于正面表示来确定要拾取的下一个盒子的左上角。在其他示例中,可以确定集成3D环境的正投影以给出用于执行应用相关任务的宽FOV的、容易解析的表示。一个这样的任务可以是找到要拾取的盒子的一个或多个角(例如,左上角)。另一个这样的任务可以涉及找到用于从箱中拾取物体的良好表面(例如,相对平坦和大的)。
在另外的示例中,可以构造一堆盒子的3D模型并将其用作模型以帮助计划和跟踪将盒子装载到堆栈或托盘/从堆栈或托盘卸载盒子的进度。立面的任何一个实际相机视图可能遭受视点遮挡(occlusion)和透视失真。因此,可以将通过机械臂运动的多个RGBD视图和/或来自车基底(cart base)或固定位置的不同视图组合,以创建要拾取的盒子的单个立面。
在其他示例中,3D模型可以用于避免碰撞。在示例中,规划无碰撞轨迹可以包括确定环境中的物体和表面的3D位置。轨迹优化器(trajectory optimizer)可以利用由环境重建提供的3D信息来在存在障碍物的情况下优化路径。在另外的示例中,优化器可以实时工作并且可以接受多种约束。作为这种约束的示例,优化器可以尝试在整个轨迹上保持末端执行器水平。
在另外的示例中,环境可以被捕获为网格或一组3D点。机械臂可以表示为用于快速碰撞检查的平面段的凸包。环境的恒定或频繁更新可允许机器人手臂快速响应于改变。在另外的示例中,优化器可以在其路径上执行频繁的连续碰撞检查。优化器可以以成本(costs)的形式接受任意约束,诸如保持与物体相距一定距离或者从给定角度接近目标位置。此外,优化器可以根据多个逆运动学解决方案通过在关节空间中工作、保持跟踪收敛(windup)并选择目标位置来避免机器人故障状况。运动规划的一个策略可以包括预测几个移动,以查看对于下一个移动所选择的目标关节位置是否可以接受。
在一些实施例中,诸如机器人手臂、照相机、电缆和/或其他元件的碰撞避免的路径约束可以被置于基于约束的规划解算器中并被求解以产生最佳路径以针对感知(perception)移动臂。另外,在一些实施例中,求解器可以确定用于拾取、移动和放置物体的最佳路径。
根据各种实施例,3D和/或视觉传感器可以被校准以确定它们相对于工作空间的姿态。在固定传感器的情况下,校准可以确定它们在工作空间中的固定姿态。在传感器在臂上的情况下,校准可以确定传感器从其所附接的臂连杆的偏移姿态。
在示例中,校准技术可以允许校准工作空间中的任意数量的传感器。校准可以包括确定各种参数和系数中的一些或全部。例如,校准可以求解一个或多个内在参数,例如焦距和图像中心。作为另一示例,校准可以确定一个或多个失真系数,例如径向和切向失真的模型。作为又一示例,校准可以求解一个或多个外部参数,所述一个或多个外部参数定义场景中的物体相对于场景中的式样(pattern)或标识相同式样的其他传感器的位置。
在一些示例中,校准可以至少部分地通过使用校准式样来执行,所述校准式样可以是2D或3D中的已知的特征集合。例如,可以使用已知的点式样,其中每个点和其他点之间的距离是已知的。可以至少部分地通过收集物体的多个不同视图来执行校准。在另外的示例中,捕获不同位置中的校准式样的多个视图可以允许(1)校准相机的一个或多个系数和/或(2)知道相机相对于由校准式样被固定在的地方所建立的坐标系而位于何处。在特定实施例中,场景中的相机可以识别机械臂上的校准式样,而手臂上的相机同时识别场景中的校准式样。
在另外的示例中,校准可以涉及固定在场景中的相机。在这种情况下,校准式样可以被放置在机械臂上。当收集机械臂上的校准式样的多个视图时,机械臂可以被配置为穿过场景。这可以帮助校准相机和/或对于使相机的坐标系与机器人的坐标系相关是有用的。此外,每个装置与另一个装置的关系可以由机械臂移动时的每个装置来确定。
在某些示例中,校准可以涉及位于机械臂上的相机。校准式样可以安装在墙壁或桌子上。然后,可以移动照相机,从不同的机器人或机械臂位置收集校准式样的多个视图。当收集不同的3D或2D视图(例如,2、20或200)时,这些视图可用于求解校准关系。在校准之后,当手臂上的照相机移动时,***可以基于场景中的校准式样的位置确定其相对于坐标系设置的位置。在特定实施例中,校准式样和相机两者都可以是可移动的。例如,校准式样可以位于传送带上,其中机械臂可以被配置为放置盒子。在校准之后,***可以确定相机相对于传送带上的该点的位置。
在另外的示例中,可以在用于3D传感器校准的鲁棒估计(robust estimation)的两阶段处理中执行非线性优化。在一个阶段中,可以从目标和传感器的相对姿态偏移导出初始化。在另一阶段中,给定初始化,批量束调整(a batch bundle adjustment)可以用于找到相机的最佳姿态以及目标点。校准可以扩展到诸如关节长度和关节角度偏移的机器人参数的估计。
在其它示例中,相机在校准式样上的已知的、精确的机器人运动,或相机上的校准式样可以用于改善校准结果。例如,精确地关于照相机如何移动的信息可以用于获得更精确的照相机校准。也就是说,如果照相机向右移动50mm,则可以检测到来自校准物体的相应(透视投影)移动量。该信息可以用于联合地或单独地优化校准和跟踪参数。
在另外的示例中,机器人可以查看其正在进行的校准并且以使得信息最大化以便获得更好的校准的方式移动。例如,它可以检测到一些视图区域没有被看到并且转到那些视图。
在另外的示例中,呈现了用于实际操纵多样化(heterogeneous)、分类的物品的***,通常从混乱的收集区域到确定的箱子。在一些实施例中,包含物品的拾取位置可能不对精确的物体定向敏感,并且物品可能混合在一起。在另外的示例中,物品的地点位置可以对物体定向敏感或可以不对物体定向敏感。在一些示例中,拾取和放置区域可以被定义为对于具有一定公差的拾取或放置物体可接受的3D区域。拾取和放置区域可以与类似和/或不同的物体高度混乱。在其他实施例中,物品可以来自或放入固定装置,例如将分拣物品保持在特定取向的金属或塑料按扣。
在另外的示例中,拾取和放置位置的环境建模可以用于智能抓取位置和运动以及事件报告(例如,当地点区域是满的或者拾取区域是空的时)。在一些示例中,可以计算物体边界体积和/或可以找到物体的区别特征(例如纹理、颜色、条形码或OCR)。在一些实施例中,可以通过与由物体类型或物体ID索引的位置分配的数据库进行匹配来将物体分类到所分配的目标位置。例如,可以从读取条形码、考虑物体的大小和/或通过识别特定种类的物体来导出物体的位置。
在一些示例中,可以确定机器人装置的计划,以便实现在针对物体的目标位置内的物体的某些配置。例如,装载/卸载或码垛/卸垛的目的可以实现:(1)在盒子之间具有最小空气间隙的致密包装,和/或(2)不容易塌陷的稳定的包装。在一些实施例中,稳定性可能需要通常重物体在底部而轻物体在顶部。在其他示例中,可以创建托盘以便避免非交错的列堆栈、列倾斜或劣质堆栈的其他特性。
在另外的示例中,托盘或垛车/集装箱可以被装载,以使得人类操作者在随后的卸载过程中的工作被最小化。例如,在一些实施例中,物品可以以最后进最先出的顺序放置,以使得在拆包时,首先需要的物品在顶部,其次需要的物品在下一层,等等。在其他示例中,托盘的装载可以与物品如何朝向包装单元流动无关。因此,根据一些实施例,***可以以随机顺序或以预先已知的顺序处理包装。另外,在一些实施例中,***可以实时适应物品流的变化。在另外的示例中,可以通过将盒子保持在临时存储区域中来记录和缓冲一个或多个盒子,其中它们的顺序可以沿着该临时存储区的顺序改变。
根据各种实施例,2D模拟器和/或3D模拟器可用于垛车或集装箱装载/卸载或用于托盘装载/卸载。在一些示例中,可以在物理世界中捕获一堆盒子的状态并输入到模拟器中。在一些实施例中,从一个盒子到所有盒子,盒子的可变大小队列可以由模拟器用于找到要挑选的下一个盒子。例如,模拟器可以考虑2个盒子或4个盒子或10个盒子的队列。
在另外的示例中,模拟器可以在队列中的盒子上搜索,以通过启发式算法和/或通过蛮力(brute force)或多分辨率搜索找到最佳盒子布置。在一些实施例中,***可以随着围绕在先前较粗糙级别中发现的最佳站点的盒子的越来越精细的布置而递增。在一些实施例中,一旦已经确定了特定的下一个盒子的布置,则物理规划器可以用于运动规划,以便有效地将盒子移动到确定的位置。在另外的示例中,可以针对堆栈的质量(例如,密度、稳定性和/或顺序布置)连续监视物理堆栈和模拟堆栈。在一些示例中,可以重复该过程,直到所有的盒子已经被放置或者目标容器不再适合另一个盒子。
现在参考图4,图4是用于确定环境的虚拟表示的示例方法400的框图。图4中所示的方法400呈现了可由图2B的机器人装置200,例如,或更一般地由任何计算装置的一个或多个组件使用或实现的方法的实施例。方法400可以包括如块402-412中的一个或多个所示的一个或多个操作、功能或动作。尽管以顺序次序示出了这些块,但是这些块也可以并行地和/或以与本文所描述的顺序不同的顺序来执行。此外,各种块可以被组合成更少的块、被划分为附加的块、和/或基于期望的实现被移除。
另外,对于本文公开的方法400和其他过程和方法,框图示出了本实施例的一个可能实现的功能和操作。为此,每个块可以表示程序代码的模块、段或部分,其包括可由处理器或计算装置执行以用于实现过程中的特定逻辑功能或步骤的一个或多个指令。程序代码可以存储在任何类型的计算机可读介质上,例如,诸如包括磁盘或硬盘驱动器的存储设备。计算机可读介质可以包括非暂时性计算机可读介质,例如诸如短时间存储数据的计算机可读介质,比如寄存器存储器、处理器高速缓存和随机存取存储器(RAM)。计算机可读介质还可以包括例如诸如只读存储器(ROM)、光盘或磁盘、光盘只读存储器(CD-ROM)的次级或持久长期存储器之类的非暂时性介质。计算机可读介质还可以是任何其它易失性或非易失性存储***。计算机可读介质可以被认为是例如计算机可读存储介质或有形存储装置。
另外,对于方法400和本文公开的其它过程和方法,图4中的每个块可以表示为被有线连接以在该过程中执行特定逻辑功能的电路。
在一个实施例中,方法400的功能可以由控制***执行,例如图2B的控制***240。在其他实施例中,方法400的功能可以分布在多个控制***上,这些控制***被配置为使用立体图像处理的输出来限制用于结构光处理的搜索空间。
最初,在块402,方法400涉及接收利用至少两个光学传感器捕获的多个图像。多个图像可以包括从第一光学传感器的第一视点感知的环境的第一图像和从第二光学传感器的第二视点感知的环境的第二图像。可选地,多个图像可以包括多于两个的图像。例如,多个图像可以包括由第三光学传感器捕获的一个或多个图像。作为另一示例,多个图像可以包括由第一光学传感器捕获的多个图像和由第二光学传感器捕获的多个图像。
第一光学传感器、第二光学传感器和第三光学传感器可以包括任何类型的光学传感器,诸如电荷耦合器件(CCD)图像传感器,互补金属氧化物半导体(CMOS)图像传感器或其它类型的配置成将光学图像转换为电子信号的传感器。作为示例,第一光学传感器、第二光学传感器或第三光学传感器可以是红/绿/蓝(RGB)红外(IR)照相机。另外,第一光学传感器,第二光学传感器或第三光学传感器可以是RGB照相机。RGB IR照相机或RGB照相机可以是全局快门照相机,以使得特定照相机的像素同时存储信息。
在一些情况下,第一光学传感器、第二光学传感器和第三光学传感器中的一个或任何组合可以耦合到机械臂,例如图2A的机械臂202。
在块404,方法400涉及基于第一图像和第二图像之间的对应特征来确定环境中的至少一个表面的第一深度估计。在一个示例中,计算装置可以使用块匹配算法来确定第一图像和第二图像之间的对应特征。使用块匹配算法,第一图像的像素段(例如,5×5、11×11或21×21像素窗口)可以与第二图像中的像素段的范围进行匹配,以确定第二图像中最接近的像素匹配段。例如,可以通过最小化匹配函数来确定最接近的像素的匹配段。随后,给定一对对应特征的像素位置,可以使用各种三角测量方法之一来重建所识别的特征的3D位置。根据三角测量的过程,给定两个传感器的相对位置和定向,可以从第一传感器和第二传感器的图像平面上的点P的透视投影重建点P的3D位置(x,y,z)。因此,如果一对对应特征的像素位置是已知的,并且两个传感器的相对位置和定向是已知的,则可以确定特征的3D位置。
在一些示例中,计算装置可以使用空间-时间立体成像来确定第一深度估计。在空间-时间立体成像中,不是将用第一光学传感器捕获的单个图像与用第二光学传感器捕获的单个图像匹配,而是用第一光学传感器捕获的第一组图像(例如,第一视频流)与用第二光学传感器捕获的第二组图像(例如,第二视频流)匹配。利用空间和时间外观(appearance)变化可以帮助减少歧义并且提高准确性。
在块406,方法400涉及使纹理投影仪将已知纹理式样投影到环境上。作为示例,计算装置可以使纹理投影仪将已知的像素式样(例如,网格、点(dot)、条纹、斑点(spot)、水平条、垂直条等)投影到环境上。在一个实例中,纹理投影仪可以是红外光发射器或红外投影仪。例如,纹理投影仪可以包括光源、投影光学器件和液晶显示器(LCD)或以式样中断(interrupting)光的其它方法。在另一种情况下,可以使用一组衍射光栅产生已知式样。
在一些实例中,可在捕获上文参考块402描述的第一图像和第二图像之前将已知纹理式样投影到环境上,以使得用于立体成像的第一图像和第二图像包括已知的纹理式样。在其他示例中,可以在捕获第一图像和第二图像之后将已知纹理式样投影到环境上。例如,可以使用环境的视觉纹理来执行立体成像。或者,在投影已知纹理式样之前,纹理投影仪可以将随机纹理式样投影到环境上以促进立体成像。在这种情况下,在捕获第一图像和第二图像之后,至少一个光学传感器可捕获包括已知纹理式样的至少一个图像。
在一些实施例中,纹理投影仪可以耦合到机械臂,例如图2A的机械臂202。
在块408,方法400涉及基于第一深度估计来确定多个图像中的至少一个图像的至少一个区域,在所述至少一个区域内搜索已知纹理式样的特定部分。如上所述,计算装置可以使用利用立体成像确定的第一深度估计来通知式样解码过程。具体地,对于已知纹理式样的至少一个图像,计算装置可以使用第一深度估计来确定在其内搜索已知纹理式样的特定部分的至少一个图像的区域。
在其中用于捕获已知纹理式样的图像的纹理投影仪和光学传感器水平地对齐在相同高度附近的示例中,计算装置可以使用第一深度估计和纹理投影仪的位置与光学传感器的位置之间的基线距离,以预测已知纹理式样的图像的图像空间内的已知纹理式样的特定部分将位于何处。例如,计算装置可以使用三角测量来确定在其中可能观察到已知纹理式样的特定部分的光学传感器的图像平面内的位置。然后,计算装置可以将图像平面周围的位置的区域确定为用于式样解码的搜索区域。如果纹理投影仪和光学传感器不在相同高度处水平对齐,则计算装置可以确定考虑了未对准的变换。
在一些实施例中,已知纹理式样的图像可以是上面关于块402所描述的第一图像或第二图像。换句话说,计算装置可以使用用于立体匹配的相同图像来随后执行结构光处理。在另一实施例中,计算装置可以使用与第一图像或第二图像不同的图像来执行结构光处理。例如,上面关于块402描述的多个图像可以包括使用第一光学传感器、第二光学传感器或第三光学传感器捕获的已知纹理式样的第三图像。在另一实例中,多个图像可以包括使用两个不同的光学传感器(例如,第一光学传感器和第二光学传感器)捕获的第三图像和第四图像。
在一些实例中,可基于第一深度估计和对应搜索区域的大小来确定所述已知纹理式样的大小。例如,投影纹理式样的大小可以与第一深度估计中的误差水平成比例。换句话说,如果第一深度估计包括高水平的误差,则计算装置可以确定较大的搜索区域并且使纹理投影仪投射在较大区域(例如,15×15像素)上是唯一的纹理式样。但是如果第一深度估计包括低水平的误差,则计算装置可以确定较小的搜索区域并且使纹理投影仪投射在较小区域(例如,5×5像素)上是唯一的纹理式样。因此,在一些情况下,计算装置可以在使纹理投影仪投射已知纹理式样之前确定搜索区域的预期大小,以使得计算装置可以使纹理投影仪投射具有适当尺寸的已知纹理式样。
在块410,方法400涉及确定对应于所述至少一个图像的至少一个区域内的已知纹理式样的特定部分的点。与上述讨论一致,计算装置可以执行式样解码以识别对应于已知纹理式样的特定部分的区域(或多个区域)内的点。在一些情况下,计算装置可使用块匹配算法来确定区域内的具有与已知式样的特定部分最接近的匹配的像素块。
在块412处,方法400包括基于对应于所述至少一个图像的至少一个区域内的已知纹理式样的特定部分确定的点,确定环境中的所述至少一个表面的第二深度估计。作为示例,计算装置可以使用纹理投影仪的位置、用于捕获图像的光学传感器的位置、以及对应点的位置来对到环境中的至少一个表面的距离进行三角测量。
在一些情况下,计算装置可以重复方法400的一个或多个块,以确定环境的多个深度估计。例如,计算装置可以使用方法400来确定指示到环境中的一个或多个表面的深度的深度图。
在方法400的另一实例中,计算装置可确定组合来自在块404处确定的第一深度估计和在框412处确定的第二深度估计的信息的第三深度估计。作为一个示例,第三深度估计可通过以逐像素或逐像素群为基础对第一深度估计和第二深度估计进行平均来被确定。如本领域普通技术人员将理解的,用于组合深度估计的其它方法也是可能的。
现在参考图5,图5是示例成像***500的概念图。如图5所示,成像***500包括纹理投影仪502、第一光学传感器504和第二光学传感器506。第一光学传感器504被示为与纹理投影仪502分开第一距离D1,并且第二光学传感器506被示出为与纹理投影仪502分开大于第一距离D1的第二距离D2。因此,在图5的布置中,第一光学传感器504和第二光学传感器506可以从不同的角度观察环境。在其他示例中,第一光学传感器504和第二光学传感器506可以与纹理投影仪502分开相同的距离(未示出)。
与上述讨论一致,第一光学传感器504和第二光学传感器506可以用于从第一视点和第二视点捕获第一图像。第一图像和第二图像可以是物体508的图像。在一些情况下,第一图像和第二图像可以包括由纹理投影仪502投射到物体508上的式样的图像。然而,在其他情况下,可以在纹理投影仪502投射式样之前捕获第一图像和第二图像。
如上所述,计算装置可以基于第一光学传感器504和第二光学传感器506之间的基线距离,使用第一图像和第二图像来三角测量到物体508的至少一个表面的距离。如图5所示,第一光学传感器504可以与第二光学传感器506分开距离D1+D2。
此外,计算装置可使用利用第一图像和第二图像确定的第一深度估计来促进结构光处理。例如,如果第一图像和第二图像包括由纹理投影仪502投射的已知纹理式样,则计算装置可以基于纹理投影仪502与第一光学传感器504和第二光学传感器506中的一个或两者之间的基线距离,使用第一图像和/或第二图像来三角测量到物体508的表面的距离。作为一个示例,计算装置可以使用图4的方法400来确定例如在由第一光学传感器504捕获的已知纹理式样的第一图像和已知纹理式样的特定部分之间的对应点。并且基于第一光学传感器504和纹理投影仪502之间的距离D1,计算装置可以对到物体508的表面的距离进行三角测量。替代地或另外地,计算装置可以确定在由第二光学传感器506捕获的已知纹理式样的第二图像和已知纹理式样的特定部分之间的对应点。并且基于纹理投影仪502和第二光学传感器506之间的距离D2,计算装置可以对到对象508的表面的距离进行三角测量。
在其中计算装置使用利用第一光学传感器504捕获的图像确定第一结构光深度估计和使用利用第二光学传感器506捕获的图像确定第二结构光深度估计的示例中,第一结构光深度估计和第二结构光深度估计可能是冗余的深度估计。有利地,第一结构光深度估计和第二结构光深度估计可以变化,因为距离D1和D2不同。在一些情况下,由于环境的变化,计算装置可能不能使用利用第一光学传感器504捕获的图像来确定结构光深度估计,但是能够使用第二光学传感器506确定结构光深度估计。因此,在一些情况下,可能需要使用两个图像来执行结构光处理。
如上所述,不是使用用于立体匹配的第一图像和第二图像,计算装置可以替代使用利用第一光学传感器504或第二光学传感器506捕获的已知纹理式样的第三图像来执行结构光处理。
此外,在一些情况下,计算装置可以使用用第三光学传感器捕获的已知纹理式样的图像来执行结构光处理。图6是包括纹理投影仪602、第一光学传感器604、第二光学传感器606和第三光学传感器608的另一示例成像***600的概念图。在图6中,第一光学传感器604被示出为与纹理投影仪602分开距离D1,第二光学传感器606被示出为与纹理投影仪602分开距离D2,并且第三光学传感器608示出为与纹理投影仪602分开距离D3。在一些情况下,图6所示的布置可以使计算装置能够使用分别利用第一光学传感器604、第二光学传感器606和第三光学传感器608捕获的图像来确定三个不同的结构光深度估计,因为纹理投影仪602和三个光学传感器之间的距离变化。例如,光学传感器中的一个或多个可以被配置为确定远离纹理投影仪602的物体的深度估计,并且光学传感器中的一个或多个可以被配置为确定更接近纹理投影仪602的物体的深度估计。
在一个示例中,计算装置可以使用由第一光学传感器604和第二光学传感器606捕获的图像来执行立体匹配,并且使用由第三光学传感器608捕获的图像来执行结构光处理。例如,第一光学传感器604和第二光学传感器606可以是被配置为观察物体610的视觉纹理的RGB相机。同时,第三光学传感器608可以是IR传感器,其被配置为观察由纹理投影仪602投射到物体610上的已知红外式样。
其他配置也是可能的,并且示例***600不意味着限制。在一些情况下,纹理投影仪602、第一光学传感器604、第二光学传感器606和第三光学传感器608相对于彼此的相对布置可以与图6中所示的示例布置不同。例如,第一光学传感器604、第二光学传感器606和第三光学传感器608可以位于纹理投影仪602的公共侧。在另一种情况下,第三光学传感器608可以位于相比于第二光学传感器606离纹理投影仪602更远的位置。在又一实例中,第二光学传感器606和第三光学传感器608中的一个或两个可位于纹理投影仪602的上方或下方。
图7A和7B是确定图像的区域以在其中搜索已知纹理式样的特定部分的概念性图示。图7A和7B示出了成像***中的照明框架700和被捕获的框架702。照明框架700表示将已知的纹理式样投射到环境上的纹理投影仪的图像平面。照明框架700包括具有正交轴、焦点F1和原点O1的轴***。类似地,捕获的帧702表示光学传感器的图像平面。捕获的帧702包括具有正交轴、焦点F2和原点O2的轴***。为了简单起见,仅描绘了单个捕获的帧702。其他示例可以包括对应于多个相应光学传感器的多个捕获帧。
如图7A所示,纹理投影仪从照明框架700内的位置P1发射结构光的示例性光线。示例性光线从物体704A的表面上的点PA反射,并朝向捕获的帧702行进。由于从立体深度估计知道点PA的深度,并且照明框架700和捕获的帧702的焦点之间的距离是已知的,因此计算装置可以使用三角测量来估计其中结构光的射线可能被捕获的区域706A。如图7A所示,区域706A可以是捕获的帧702的子集,并且可以相对于捕获的帧702的正交轴来被定义。区域706A的尺寸相对于捕获的帧702的尺寸并不意味着限制。
图7B描绘了另一个示例,其中纹理投影仪从照明框架700内的位置P1发射结构光的光线。图7B所示的示例与图7A所示的示例不同,因为光线从与照明框架700离得更远的物体704B的点PB反射。因此,计算装置可以确定位于捕获的帧702的与区域706A不同的部分中的区域706B。具体地,区域706B可以比区域706A更靠近捕获的帧702的原点。
图8是根据示例实施例的另一方法800的框图。图8中所示的方法800呈现了可以由图2B的控制***240使用或实现的方法的实施例,例如,或者更一般地由任何计算装置的一个或多个元件来使用或实现。方法800可以包括如块802-816中的一个或多个所示的一个或多个操作、功能或动作。尽管以顺序次序示出了这些块,但是这些块也可以并行地和/或以与本文所描述的顺序不同的顺序来执行。此外,各种块可以被组合成更少的块、被划分为附加的块、和/或基于期望的实现被移除。
另外,对于方法800,每个块可以表示程序代码的模块、段或部分,其包括可由处理器或计算装置执行的一个或多个指令,用于实现过程中的特定逻辑功能或步骤。此外,图8中的每个块可以表示有线的以在该过程中执行特定逻辑功能的电路。
最初,在块802,方法800涉及使纹理投影仪将随机纹理式样投射到环境上。在一些示例中,随机纹理式样可以是有助于立体匹配的式样。例如,随机纹理式样可以是有意投影到场景中的随机式样的光,例如可见光或红外光,以便构造易于识别的特征,然后可以使用这些特征来确定两个或更多图像之间的匹配对应。举例来说,至少一个随机纹理式样可以包括斑点(spot)或点(dot)的2D图案,其中斑点或点在随机式样中不相关。在各种实施例中,随机纹理式样可以在时间上是恒定的或者可以作为时间的函数而变化。
在块804,方法800涉及接收从第一视点和第二视点感知的环境的第一图像和第二图像以及随机纹理式样。在块806,方法800然后涉及基于第一图像和第二图像之间的对应特征来确定环境中的至少一个表面的第一深度估计。与上面的讨论一致,计算装置可以使用块匹配算法来找到第一图像和第二图像之间的对应,并且使用三角测量来估计到环境中的一个或多个点的深度。
在块808处,方法800涉及使纹理投影仪将已知纹理式样投射到环境上。在一些情况下,纹理投影仪可以是用于在较早时间投射随机纹理式样的相同纹理投影仪。然而,在其他示例中,可以使用两个单独的投影仪:在第一时间投射随机纹理式样的第一投影仪和在第二时间投射已知纹理式样的第二纹理投影仪。
在块810,方法800涉及接收环境和已知纹理式样的至少一个图像。例如,计算装置可以从用于捕获第一图像的第一光学传感器接收图像和/或从用于捕获第二图像的第二光学传感器接收图像。或者,计算装置可以从第三光学传感器接收第三图像。
在框812,方法800涉及基于第一深度估计来确定在其内搜索已知纹理式样的特定部分的至少一个图像的至少一个区域。与上述讨论一致,计算装置可以使用第一深度估计和纹理投影仪与用于捕获图像的光学传感器之间的已知关系,来确定图像的一部分,在该部分内搜索已知的纹理式样的特定部分。
在块814,方法800涉及确定对应于所述至少一个图像的至少一个区域内的已知纹理式样的特定部分的点。并且在块816,方法800包括基于对应于在所述至少一个图像的至少一个区域内的已知纹理式样的特定部分的所确定的点,来确定环境中的至少一个表面的第二深度估计。
如上简要提及的,在一些示例中,计算装置可以使用从两个不同的光学传感器接收的已知纹理式样的图像来确定多个结构光估计。图9是根据示例实施例的可由计算装置执行的示例功能的框图。在一些示例中,可以结合图4的示例方法400或图8的示例方法800来执行示例功能。例如,可以代替图的块408-412或图8的块812-816来执行图9的示例功能。
如图9所示,块902处的功能涉及基于第一深度估计来确定第一图像的第一区域,在该第一区域内搜索已知纹理式样的特定部分。例如,基于使用立体成像确定的深度估计,计算装置可以确定第一图像的哪个部分来搜索其内的已知纹理式样的特定部分。在一些情况下,第一图像可以是用于确定第一深度估计的两个图像中的一个。在其他实例中,第一图像可以是与用于确定第一深度估计的图像中的任一个不同的图像。块904和906处的功能于是涉及利用第一图像确定对应于已知纹理式样的特定部分的第一组点,以及涉及基于第一组点确定第一结构光深度估计。
图9还示出了可以关于第二图像执行的功能。具体来说,块908处的函数涉及基于第一深度估计来确定第二图像的第二区域,在该第二区域内搜索已知纹理式样的特定部分。例如,基于使用立体成像确定的深度估计,计算装置可以确定第二图像的哪个部分以搜索其内的已知纹理式样的特定部分。在一些情况下,第二图像可以是用于确定第一深度估计的两个图像中的一个。在其他实例中,第二图像可以是与用于确定第一深度估计的图像中的任一个不同的图像。块910和912处的功能于是涉及利用第二图像确定对应于已知纹理式样的特定部分的第二组点,以及涉及基于第二组点确定第二结构光深度估计。
并且块914处的函数涉及确定组合第一结构光深度估计和第二结构光深度估计的第二深度估计。举例来说,计算装置可以对第一结构光深度估计和第二结构光深度估计进行平均。因此,第一结构光深度估计和第二结构光深度估计可以是冗余的深度估计,其可以被组合以确定精确的深度估计。
应当理解,本文描述的布置仅用于示例的目的。因此,本领域技术人员将理解,可以替代地使用其他布置和其他元件(例如,机器、接口、功能、顺序和功能分组等),并且可以根据期望的结果省略一些元件。此外,所描述的许多元件是可以以任何合适的组合和位置实现为离散或分布式组件或与其他组件结合的功能实体。
虽然本文公开了各种方面和实施例,但是其他方面和实施例对于本领域技术人员将是显而易见的。本文公开的各个方面和实施例是为了说明的目的,并且不旨在限制,真实范围由所附权利要求以及这些权利要求所赋予的等同物的全部范围来指示。还应当理解,本文所使用的术语仅用于描述特定实施例的目的,而不意在限制。
由于可以对所描述的示例进行详细的很多修改、变化和改变,因此意图是前面的描述中和附图中所示的所有事项被解释为说明性的而不是限制性的。此外,应当理解,以下进一步描述本说明书的方面。
Claims (20)
1.一种用于深度感测的方法,包括:
由计算装置接收由至少两个光学传感器捕获的多个图像,其中,所述多个图像包括从第一光学传感器的第一视点感知的环境的第一图像和从第二光学传感器的第二视点感知的所述环境的第二图像;
由所述计算装置基于所述第一图像和所述第二图像之间的对应特征来确定所述环境中的至少一个表面的第一深度估计;
由所述计算装置使得纹理投影仪将已知纹理式样投射到所述环境上;
由所述计算装置并且基于所述第一深度估计来确定所述多个图像中的至少一个图像的至少一个区域,以在所述至少一个区域内搜索所述已知纹理式样的特定部分,其中,所述至少一个图像指示所述环境和投射到所述环境上的所述已知纹理式样;
由所述计算装置确定与所述至少一个图像的至少一个区域内的所述已知纹理式样的所述特定部分相对应的点;以及
基于所确定的与所述至少一个图像的至少一个区域内的所述已知纹理式样的所述特定部分相对应的点,由所述计算装置确定所述环境中的所述至少一个表面的第二深度估计。
2.根据权利要求1所述的方法,其中,基于所述第一深度估计来确定在其中搜索所述已知纹理式样的所述特定部分的所述至少一个图像的至少一个区域包括基于所述第一深度估计并基于所述纹理投影仪相对于用于捕获所述至少一个图像的光学传感器的位置的位置,使用三角测量来确定所述至少一个区域,其中所述光学传感器是第一光学传感器、第二光学传感器或第三光学传感器。
3.根据权利要求1所述的方法:
其中在捕获所述第一图像和所述第二图像之前投射所述已知纹理式样;以及
其中所述至少一个图像包括所述第一图像、所述第二图像或两者。
4.根据权利要求1所述的方法,还包括使所述纹理投影仪将随机纹理式样投射到所述环境上,使得所述第一图像和所述第二图像指示所述环境和投射到所述环境上的所述随机纹理式样。
5.根据权利要求4所述的方法,其中所述至少一个图像包括所述多个图像中的第三图像。
6.根据权利要求1所述的方法,其中所述至少两个光学传感器包括第一光学传感器、第二光学传感器和第三光学传感器,以及其中利用第三光学传感器捕获所述至少一个图像。
7.根据权利要求1所述的方法,还包括基于所述至少一个图像的至少一个区域的尺寸来确定所述已知纹理式样的尺寸。
8.根据权利要求1所述的方法:
其中,所述环境的第一图像和所述环境的第二图像指示所述环境和投射到所述环境上的已知纹理式样;
其中所述至少一个图像包括所述第一图像和所述第二图像;
其中所述至少一个图像的至少一个区域包括所述第一图像的第一区域和所述第二图像的第二区域;以及
其中,确定与所述至少一个图像的至少一个区域内的已知纹理式样的特定部分相对应的点包括:(1)确定与所述第一图像的第一区域内的已知纹理式样的特定部分相对应的第一组点,以及(2)确定与所述第二图像的第二区域内的已知纹理式样的特定部分相对应的第二组点。
9.如权利要求8所述的方法,其中,确定在环境中的至少一个表面上的第二深度估计包括:(1)基于所述第一组点确定第一结构光深度估计,(2)基于所述第二组点确定第二结构光深度估计,以及(3)确定组合所述第一结构光深度估计和所述第二结构光深度估计的第二深度估计。
10.根据权利要求1所述的方法,其中所述第一光学传感器、所述第二光学传感器和所述纹理投影仪被耦合到机械臂。
11.根据权利要求1所述的方法,还包括通过组合所述第一深度估计和所述第二深度估计来确定第三深度估计。
12.一种其中存储有指令的非暂时性计算机可读介质,所述指令当由计算装置的一个或多个处理器执行时使得所述计算装置执行功能,所述功能包括:
接收使用至少两个光学传感器捕获的多个图像,其中所述多个图像包括从第一光学传感器的第一视点感知的环境的第一图像和从第二光学传感器的第二视点感知的所述环境的第二图像;
基于所述第一图像和所述第二图像之间的对应特征,确定所述环境中的至少一个表面的第一深度估计;
使纹理投影仪将已知的纹理式样投射到所述环境上;
基于所述第一深度估计,确定所述多个图像中的至少一个图像的至少一个区域,以在所述至少一个区域内搜索所述已知纹理式样的特定部分,其中,所述至少一个图像指示所述环境和投射到所述环境上的所述已知纹理式样;
确定与所述至少一个图像的至少一个区域内的所述已知纹理式样的所述特定部分相对应的点;以及
基于所确定的与所述至少一个图像的至少一个区域内的所述已知纹理式样的所述特定部分相对应的点,确定所述环境中的所述至少一个表面的第二深度估计。
13.根据权利要求12所述的非暂时性计算机可读介质,其中,基于所述第一深度估计,确定在其中搜索已知纹理式样的特定部分的所述至少一个图像的至少一个区域包括:基于所述第一深度估计并基于所述纹理投影仪相对于用于捕获所述至少一个图像的光学传感器的位置的位置,使用三角测量来确定所述至少一个区域,其中所述光学传感器是第一光学传感器、第二光学传感器或第三光学传感器。
14.根据权利要求12所述的非暂时性计算机可读介质:
其中在捕获所述第一图像和所述第二图像之前投射所述已知纹理式样;以及
其中所述至少一个图像包括所述第一图像、所述第二图像或两者。
15.根据权利要求12所述的非暂时性计算机可读介质,其中,所述功能还包括基于所述至少一个图像的至少一个区域的尺寸来确定所述已知纹理式样的尺寸。
16.一种用于深度感测的***,包括:
至少两个光学传感器;
纹理投影仪,其被配置为将已知纹理式样投射到环境上;以及
计算装置,被配置为:
接收利用所述至少两个光学传感器捕获的多个图像,其中所述多个图像包括从第一光学传感器的第一视点感知的环境的第一图像和从第二光学传感器的第二视点感知的环境的第二图像,
基于所述第一图像和所述第二图像之间的对应特征来确定所述环境中的至少一个表面的第一深度估计,
使所述纹理投影仪将已知纹理式样投射到环境上,
基于所述第一深度估计,确定所述多个图像中的至少一个图像的至少一个区域,以在所述至少一个区域内搜索所述已知纹理式样的特定部分,其中,所述至少一个图像指示所述环境和投射到所述环境上的所述已知纹理式样,
确定与所述至少一个图像的至少一个区域内的所述已知纹理式样的所述特定部分相对应的点,以及
基于所确定的与所述至少一个图像的至少一个区域内的所述已知纹理式样的所述特定部分相对应的点,确定所述环境中的所述至少一个表面的第二深度估计。
17.根据权利要求16所述的***:
其中在捕获所述第一图像和所述第二图像之前投射所述已知纹理式样;以及
其中所述至少一个图像包括所述第一图像、所述第二图像或两者。
18.根据权利要求16所述的***,还包括机械臂,其中所述纹理投影仪被耦合到所述机械臂。
19.根据权利要求18所述的***,其中所述至少两个光学传感器被耦合到所述机械臂。
20.根据权利要求16所述的***,其中所述计算装置进一步经配置以基于所述至少一个图像的至少一个区域的尺寸来确定所述已知纹理式样的尺寸。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201462043463P | 2014-08-29 | 2014-08-29 | |
US62/043,463 | 2014-08-29 | ||
US14/584,016 | 2014-12-29 | ||
US14/584,016 US9507995B2 (en) | 2014-08-29 | 2014-12-29 | Combination of stereo and structured-light processing |
PCT/US2015/036404 WO2016032600A1 (en) | 2014-08-29 | 2015-06-18 | Combination of stereo and structured-light processing |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106575438A CN106575438A (zh) | 2017-04-19 |
CN106575438B true CN106575438B (zh) | 2019-06-25 |
Family
ID=53499104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580044728.7A Expired - Fee Related CN106575438B (zh) | 2014-08-29 | 2015-06-18 | 立体和结构光处理的组合 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9507995B2 (zh) |
EP (1) | EP3186777B1 (zh) |
JP (1) | JP6211734B1 (zh) |
KR (1) | KR101772367B1 (zh) |
CN (1) | CN106575438B (zh) |
AU (1) | AU2015307191B2 (zh) |
WO (1) | WO2016032600A1 (zh) |
Families Citing this family (42)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9393694B2 (en) * | 2010-05-14 | 2016-07-19 | Cognex Corporation | System and method for robust calibration between a machine vision system and a robot |
JP2014069251A (ja) * | 2012-09-28 | 2014-04-21 | Dainippon Screen Mfg Co Ltd | 作業部制御装置、作業ロボット、作業部制御方法、および作業部制御プログラム |
US10455212B1 (en) * | 2014-08-25 | 2019-10-22 | X Development Llc | Projected pattern motion/vibration for depth sensing |
TWD178887S (zh) | 2014-09-01 | 2016-10-11 | 蘋果公司 | 顯示螢幕之圖形使用者介面之部分 |
WO2016054656A1 (en) * | 2014-10-03 | 2016-04-07 | Wynright Corporation | Perception-based robotic manipulation system and method for automated truck unloader that unloads/unpacks product from trailers and containers |
US10068338B2 (en) * | 2015-03-12 | 2018-09-04 | Qualcomm Incorporated | Active sensing spatial resolution improvement through multiple receivers and code reuse |
CN107850782B (zh) * | 2015-05-13 | 2019-10-25 | 脸谱科技有限责任公司 | 用反射率图表示增强深度图表示 |
US9846943B2 (en) | 2015-08-31 | 2017-12-19 | Qualcomm Incorporated | Code domain power control for structured light |
US10257498B2 (en) * | 2015-12-04 | 2019-04-09 | Empire Technology Development Llc | Coordination of multiple structured light-based 3D image detectors |
US10475201B1 (en) * | 2016-02-02 | 2019-11-12 | Hunter Engineering Company | Method and apparatus for determining wheel rim and tire dimensions on a moving vehicle |
US10217225B2 (en) | 2016-06-01 | 2019-02-26 | International Business Machines Corporation | Distributed processing for producing three-dimensional reconstructions |
US10574909B2 (en) | 2016-08-08 | 2020-02-25 | Microsoft Technology Licensing, Llc | Hybrid imaging sensor for structured light object capture |
KR101853127B1 (ko) * | 2017-05-19 | 2018-04-27 | 주식회사 랜도르아키텍쳐 | 구동형 마킹 시스템, 구동형 마킹 장치의 제어방법 및 컴퓨터 판독 가능한 기록매체 |
US10863165B2 (en) * | 2017-06-07 | 2020-12-08 | Sony Semiconductor Solutions Corporation | Image processing apparatus and method |
EP3453646A1 (en) * | 2017-09-11 | 2019-03-13 | Nekos Oy | System for storing storage units |
JP6879168B2 (ja) * | 2017-11-01 | 2021-06-02 | オムロン株式会社 | 3次元測定装置、3次元測定方法及びプログラム |
US10334232B2 (en) * | 2017-11-13 | 2019-06-25 | Himax Technologies Limited | Depth-sensing device and depth-sensing method |
CN109328456B (zh) * | 2017-11-30 | 2020-10-16 | 深圳配天智能技术研究院有限公司 | 一种拍摄装置及拍摄位置寻优的方法 |
US10697757B2 (en) * | 2017-12-22 | 2020-06-30 | Symbol Technologies, Llc | Container auto-dimensioning |
US10908612B2 (en) | 2018-03-29 | 2021-02-02 | Toyota Research Institute, Inc. | Systems and methods for an autonomous cart robot |
WO2019196001A1 (zh) * | 2018-04-10 | 2019-10-17 | 深圳市汇顶科技股份有限公司 | 三维影像测距***及方法 |
US11040452B2 (en) * | 2018-05-29 | 2021-06-22 | Abb Schweiz Ag | Depth sensing robotic hand-eye camera using structured light |
US11548159B1 (en) * | 2018-05-31 | 2023-01-10 | AI Incorporated | Modular robot |
CN109029257B (zh) * | 2018-07-12 | 2020-11-06 | 中国科学院自动化研究所 | 基于立体视觉和结构光视觉的大型工件位姿测量***、方法 |
US11077554B2 (en) | 2019-05-31 | 2021-08-03 | Mujin, Inc. | Controller and control method for robotic system |
US10696493B1 (en) | 2019-05-31 | 2020-06-30 | Mujin, Inc. | Robotic system with packing mechanism |
US10696494B1 (en) | 2019-05-31 | 2020-06-30 | Mujin, Inc. | Robotic system for processing packages arriving out of sequence |
US10647528B1 (en) | 2019-05-31 | 2020-05-12 | Mujin, Inc. | Robotic system for palletizing packages using real-time placement simulation |
US10679379B1 (en) | 2019-05-31 | 2020-06-09 | Mujin, Inc. | Robotic system with dynamic packing mechanism |
US10618172B1 (en) | 2019-05-31 | 2020-04-14 | Mujin, Inc. | Robotic system with error detection and dynamic packing mechanism |
US11688030B2 (en) * | 2019-06-12 | 2023-06-27 | Frito-Lay North America, Inc. | Shading topography imaging for robotic unloading |
CN110297491A (zh) * | 2019-07-02 | 2019-10-01 | 湖南海森格诺信息技术有限公司 | 基于多个结构光双目ir相机的语义导航方法及其*** |
CN113219900B (zh) * | 2019-12-12 | 2022-03-29 | 牧今科技 | 基于相机生成的图像信息执行运动规划的方法和计算*** |
CN113043282B (zh) * | 2019-12-12 | 2022-03-29 | 牧今科技 | 用于物体检测或机器人交互规划的方法和*** |
WO2021118702A1 (en) | 2019-12-12 | 2021-06-17 | Mujin, Inc. | Method and computing system for performing motion planning based on image information generated by a camera |
US20220005217A1 (en) * | 2020-07-06 | 2022-01-06 | Toyota Research Institute, Inc. | Multi-view depth estimation leveraging offline structure-from-motion |
FR3118014B1 (fr) * | 2020-12-17 | 2023-05-05 | Boubiela Moret | Procédé pour désempiler des pneus empilés en rangées inclinées |
CN113307042B (zh) * | 2021-06-11 | 2023-01-03 | 梅卡曼德(北京)机器人科技有限公司 | 基于传送带的物体拆垛方法、装置、计算设备及存储介质 |
US20230025647A1 (en) * | 2021-07-23 | 2023-01-26 | Mujin, Inc. | Robotic system with object update mechanism and methods for operating the same |
CN113763472B (zh) * | 2021-09-08 | 2024-03-29 | 未来科技(襄阳)有限公司 | 一种视点宽度的确定方法、装置及存储介质 |
JP2023181733A (ja) * | 2022-06-13 | 2023-12-25 | 東京ロボティクス株式会社 | ロボット装置、ロボットシステム、並びにロボットの制御方法及び制御プログラム |
US11759826B1 (en) * | 2022-07-12 | 2023-09-19 | Tompkins Robotics, Inc. | Article loading system and method for multilevel sorter |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1998003021A1 (en) * | 1996-06-28 | 1998-01-22 | Sri International | Small vision module for real-time stereo and motion analysis |
DE10042723A1 (de) | 2000-08-31 | 2002-03-28 | Gf Mestechnik Gmbh | Verfahren und Vorrichtung zur Messung eines Volumens, insbesondere des Brennraumvolumens von Zylinderköpfen |
GB2395261A (en) * | 2002-11-11 | 2004-05-19 | Qinetiq Ltd | Ranging apparatus |
CA2435935A1 (en) | 2003-07-24 | 2005-01-24 | Guylain Lemelin | Optical 3d digitizer with enlarged non-ambiguity zone |
US7860301B2 (en) * | 2005-02-11 | 2010-12-28 | Macdonald Dettwiler And Associates Inc. | 3D imaging system |
JP4380663B2 (ja) * | 2006-06-08 | 2009-12-09 | コニカミノルタセンシング株式会社 | 三次元形状測定方法、装置、及びフォーカス調整方法 |
KR101506926B1 (ko) * | 2008-12-04 | 2015-03-30 | 삼성전자주식회사 | 깊이 추정 장치 및 방법, 및 3d 영상 변환 장치 및 방법 |
KR101259835B1 (ko) | 2009-06-15 | 2013-05-02 | 한국전자통신연구원 | 깊이 정보를 생성하기 위한 장치 및 방법 |
DE102010036852C5 (de) | 2010-08-05 | 2018-03-22 | Sick Ag | Stereokamera |
US8447098B1 (en) * | 2010-08-20 | 2013-05-21 | Adobe Systems Incorporated | Model-based stereo matching |
US20120056982A1 (en) | 2010-09-08 | 2012-03-08 | Microsoft Corporation | Depth camera based on structured light and stereo vision |
US8448056B2 (en) * | 2010-12-17 | 2013-05-21 | Microsoft Corporation | Validation analysis of human target |
US9047688B2 (en) * | 2011-10-21 | 2015-06-02 | Here Global B.V. | Depth cursor and depth measurement in images |
US9098908B2 (en) * | 2011-10-21 | 2015-08-04 | Microsoft Technology Licensing, Llc | Generating a depth map |
EP2602588A1 (en) * | 2011-12-06 | 2013-06-12 | Hexagon Technology Center GmbH | Position and Orientation Determination in 6-DOF |
KR101975971B1 (ko) * | 2012-03-19 | 2019-05-08 | 삼성전자주식회사 | 깊이 카메라, 다중 깊이 카메라 시스템, 그리고 그것의 동기 방법 |
CN103322937A (zh) * | 2012-03-19 | 2013-09-25 | 联想(北京)有限公司 | 一种结构光法测量物体深度的方法及装置 |
KR101893771B1 (ko) * | 2012-05-10 | 2018-08-31 | 삼성전자주식회사 | 3d 정보 처리 장치 및 방법 |
DE202012102541U1 (de) | 2012-07-10 | 2013-10-18 | Sick Ag | 3D-Kamera |
US20140092281A1 (en) | 2012-09-28 | 2014-04-03 | Pelican Imaging Corporation | Generating Images from Light Fields Utilizing Virtual Viewpoints |
US11509880B2 (en) | 2012-11-14 | 2022-11-22 | Qualcomm Incorporated | Dynamic adjustment of light source power in structured light active depth sensing systems |
US9214025B2 (en) | 2012-11-30 | 2015-12-15 | Adobe Systems Incorporated | Depth estimation using normalized displacement of image pairs |
TWI503618B (zh) | 2012-12-27 | 2015-10-11 | Ind Tech Res Inst | 深度影像擷取裝置、其校正方法與量測方法 |
US20140307055A1 (en) * | 2013-04-15 | 2014-10-16 | Microsoft Corporation | Intensity-modulated light pattern for active stereo |
US9483829B2 (en) * | 2013-09-04 | 2016-11-01 | International Business Machines Corporation | Efficient visual surface finding |
-
2014
- 2014-12-29 US US14/584,016 patent/US9507995B2/en active Active
-
2015
- 2015-06-18 WO PCT/US2015/036404 patent/WO2016032600A1/en active Application Filing
- 2015-06-18 CN CN201580044728.7A patent/CN106575438B/zh not_active Expired - Fee Related
- 2015-06-18 AU AU2015307191A patent/AU2015307191B2/en not_active Ceased
- 2015-06-18 JP JP2017504391A patent/JP6211734B1/ja not_active Expired - Fee Related
- 2015-06-18 KR KR1020177005619A patent/KR101772367B1/ko active IP Right Grant
- 2015-06-18 EP EP15733599.3A patent/EP3186777B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN106575438A (zh) | 2017-04-19 |
AU2015307191A1 (en) | 2017-01-19 |
EP3186777A1 (en) | 2017-07-05 |
AU2015307191B2 (en) | 2017-09-28 |
WO2016032600A1 (en) | 2016-03-03 |
US9507995B2 (en) | 2016-11-29 |
JP2017534836A (ja) | 2017-11-24 |
KR101772367B1 (ko) | 2017-08-28 |
KR20170031252A (ko) | 2017-03-20 |
JP6211734B1 (ja) | 2017-10-11 |
EP3186777B1 (en) | 2020-04-22 |
US20160063309A1 (en) | 2016-03-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106575438B (zh) | 立体和结构光处理的组合 | |
US20210187736A1 (en) | Determining a Virtual Representation of an Environment By Projecting Texture Patterns | |
US11209265B2 (en) | Imager for detecting visual light and projected patterns | |
US9659217B2 (en) | Systems and methods for scale invariant 3D object detection leveraging processor architecture | |
US9630316B2 (en) | Real-time determination of object metrics for trajectory planning | |
US9205562B1 (en) | Integration of depth points into a height map | |
US10455212B1 (en) | Projected pattern motion/vibration for depth sensing |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20190625 |