用于执行扫描系统的自动相机校准的方法和系统与流程

文档序号:19378506发布日期:2019-12-11 00:07阅读:229来源:国知局
用于执行扫描系统的自动相机校准的方法和系统与流程

本发明涉及用于执行扫描系统的自动相机校准的方法和系统。



背景技术:

物体扫描已被用于确定物体的特征,诸如其形状。物体扫描的一些实现方案依赖于由相机获取的物体的图像。在一些情况下,物体扫描的结果已被用于生成物体的三维(3d)模型。3d模型可以用在自动化情境中,诸如机器人与物体交互的情境中。



技术实现要素:

本文实施例的一个方面涉及一种方法、计算系统和具有用于执行自动相机校准的指令的非瞬态计算机可读介质。该计算系统包括通信接口和控制电路。通信接口被配置为与以下各项通信:(i)第一相机,(ii)第二相机,以及(iii)用于旋转透明并且设置在第一相机和第二相机之间的平台的致动器,其中第一相机指向平台的第一表面,并且第二相机指向平台的相对的第二表面。控制电路被配置为当三维(3d)校准图案设置在平台的第一表面上时执行相机校准。3d校准图案包括具有多个面的多面体,所述多个面包括第一组面和不是第一组面的一部分的附加面,并且3d校准图案包括设置在第一组面中的相应面上的第一组2d校准图案。相机校准通过以下方式来执行:经由通信接口从第一相机接收第一组校准图像,其中第一组校准图像捕获多面体的第一组面并且捕获分别设置在第一组面上的第一组2d校准图案,而不捕获多面体的附加面;以及经由通信接口从第二相机接收第二组一个或多个校准图像,其中第二组一个或多个校准图像捕获多面体的附加面。相机校准进一步通过以下方式来执行:基于第一组2d校准图案确定用于表示多面体的附加面的一组相应角的第一组坐标,其中第一组坐标是相对于第一相机的位置和朝向的;以及基于第二组一个或多个校准图像确定用于表示多面体的附加面的所述一组相应角的第二组坐标,其中第二组坐标是相对于第二相机的位置和朝向的。相机校准进一步通过以下来执行:基于第一组坐标和第二组坐标确定用于描述第一相机和第二相机之间的空间关系的变换函数。控制电路还被配置为在已执行相机校准之后并且当除3d校准图案以外的物体被设置在平台的第一表面上时,生成用于表示该物体的3d模型,其中3d模型是基于变换函数、基于经由通信接口从第一相机接收到的物体的图像,以及基于经由通信接口从第二相机接收到的物体的图像而生成的。

附图说明

本发明的前述和其它特征、目的和优点将从如附图所示的本发明的实施例的以下描述中变得清楚。并入本文并形成说明书的一部分的附图进一步用于解释本发明的原理并使相关领域的技术人员能够制造和使用本发明。附图不按比例绘制。

图1a描绘了根据本文的实施例的与机器人操作系统通信的扫描系统的框图。

图1b描绘了根据本文的实施例的扫描系统的部件的框图。

图1c描绘了根据本文的实施例的被配置为执行相机校准的计算系统的框图。

图1d和图1e描绘了根据本文的实施例的扫描系统的框图。

图2描绘了图示根据本文的实施例的用于确定第一相机和第二相机之间的空间关系的方法的流程图。

图3a描绘了根据本文的实施例的扫描系统的示例部件。

图3b和图3c图示了根据本文的实施例的3d校准图案的多面体的面。

图3d-3f图示了根据本文的实施例的作为3d校准图案的一部分的2d校准图案。

图3g和图3h描绘了根据本文的实施例的扫描系统中的各种坐标系。

图4a-4c描绘了根据本文的实施例的由第一相机生成的各种校准图像的示例。

图5a-5d描绘了根据本文的实施例的由第二相机生成的各种校准图像的示例。

具体实施方式

以下详细描述本质上仅仅是示例性的,并不意图限制本发明或本发明的应用和用途。此外,无意受前述技术领域、背景技术、发明内容或以下具体实施方式中提出的任何明示或暗示的理论的约束。

本文描述的实施例涉及确定第一相机和第二相机之间的空间关系,作为扫描系统的校准操作的一部分。在实施例中,扫描系统可以包括多个相机,这些相机可以从不同的角度获取物体的图像。图像可以用于生成物体的3d模型。在一些情况下,3d模型可以用于促进机器人与物体或物体所属的一类物体之间的交互。例如,物体可以是仓库中的包裹,并且机器人控制系统可以使用物体的3d模型来确定机器人臂如何可以拾取包裹。在实施例中,扫描系统的第一相机和第二相机可以查看物体的通常不重叠的相应区域。例如,扫描系统可以包括物体被放置在其上的透明平台。第一相机可以例如设置在透明平台的顶表面上方,并且可以指向为第一相机提供物体的透视图的方向。在这个示例中,第二相机可以例如设置在透明平台的底表面下方,并且可以指向为第二相机提供物体的底视图的方向。在以上示例中,第一相机可以被称为顶部相机,并且第二相机可以被称为底部相机。本文的实施例的一个方面涉及一种校准操作,该校准操作确定这种第一相机和这种第二相机之间的空间关系。稍后可以使用该空间关系来例如确定如何将由第一相机获取的图像与由第二相机获取的图像组合。

在实施例中,可以利用设置在透明平台上的3d校准图案来执行校准操作。3d校准图案可以例如包括多面体和设置在该多面体的相应面上的多个2d校准图案。在一些情况下,校准操作可以涉及确定3d校准图案上的相应位置的第一组坐标(也称为用于表示3d校准图案上的相应位置的第一组坐标),其中第一组坐标是相对于第一相机的位置和朝向的。校准操作还可以涉及确定相同的相应位置的第二组坐标(也称为用于表示相同的相应位置的第二组坐标),其中第二组坐标是相对于第二相机的位置和朝向的。例如,相应位置可以是3d校准图案的多面体的底角的位置。可以基于底角的第一组坐标和相同底角的第二组坐标来确定第一相机和第二相机之间的空间关系。在一些情况下,第一相机的位置和朝向可以由第一相机的坐标系表示,并且第二相机的位置和朝向可以由第二相机的坐标系表示。在这些情况下,第一组坐标可以在第一相机的坐标系中,并且第二组坐标可以在第二相机的坐标系中。

在实施例中,校准操作可以涉及通过确定3d校准图案的其它位置(例如,顶角)的坐标并且然后使用已知的关于3d校准图案的维度的信息确定第一组坐标来确定3d校准图案上的位置(例如,底角)的第一组坐标。例如,如果第一组坐标属于3d校准图案的多面体的底角,则这样的实施例可以涉及最初确定多面体的顶角的一组坐标,然后将多面体的底角的第一组坐标确定为与多面体的顶角分隔开多面体的已知维度(诸如多面体的每条边的已知尺寸)的坐标。

在实施例中,校准操作可以涉及确定3d校准图案的3d模型。在一些情况下,3d模型可以包括描述虚构平面的信息,该虚构平面由3d校准图案的多面体的面定义,或者更一般地表示3d校准图案的多面体的面。即,虚构平面可以形成多面体的3d模型的至少一部分。在这样的实施例中,校准操作可以基于多面体的3d模型确定多面体的特定角(例如,顶面的角)的坐标。例如,该角的坐标可以被确定为多面体的至少三个虚构平面的交点。

在实施例中,利用第二相机生成3d校准图案的图像(其可以被称为校准图像)可以涉及生成校准图像对,其中每对包括捕获多面体的特定面(例如,底面)的轮廓的第一校准图像和捕获设置在该面上的2d校准图案的第二校准图像。在这样的实施例中,第二相机可以通过诸如玻璃之类的透明材料查看3d校准图案。玻璃可以诸如由于将光折射或光散射的效果引入到校准图像中而引入成像误差源。成像误差可能增加从校准图像准确地识别多面体的面的角或3d校准图案的一些其它特征的难度。但是,使用第一校准图像和第二校准图像两者来识别角可以补偿成像误差的影响,并且因此可以增加可以从校准图像识别3d校准图案的角或其它特征的鲁棒性,并且增加校准操作的整体鲁棒性。

在实施例中,可以利用第一照明条件生成捕获3d校准图案的多面体的特定面的轮廓的第一校准图像。可以通过激活从第二相机的视点看来位于多面体的那个面后面的第一光源(例如,顶部光源)并且停用指向多面体的那个面的第二光源(例如,底部光源)来创建第一照明条件。然后,第二相机可以在已创建第一照明条件之后获取第一校准图像。在实施例中,可以利用第二照明条件生成捕获设置在多面体的那个面上的2d校准图案的第二校准图像。可以通过停用第一光源并激活第二光源来创建第二照明条件。然后,第二相机可以在已创建第二照明条件之后获取第二校准图像。

如上所述,校准操作可以促进扫描系统生成物体的图像和/或3d模型的能力,并且3d模型可以促进机器人与物体的交互的能力。图1a图示了扫描系统100的框图,扫描系统100被配置为与机器人操作系统101通信。扫描系统100(也称为配准系统100或产品配准系统100)可以用于扫描物体,更具体而言,用于获取物体的图像,其中图像可以用于生成物体的3d模型(例如,点云)。物体的图像可以用于促进机器人操作系统101与该物体,或与具有与该物体基本相同的形状和/或尺寸的其它物体的交互的能力。在实施例中,扫描系统100可以被配置为基于由扫描系统100获取的图像生成物体的3d模型,并且可以被配置为将物体的3d模型传送到机器人操作系统101。在实施例中,扫描系统100可以被配置为将所获取的物体的图像传送给机器人操作系统101,并且机器人操作系统101可以基于所获取的图像生成物体的3d模型。

在实施例中,扫描系统100和/或机器人操作系统101可以部署在仓库、制造工厂或其它场所内。在这样的实施例中,被扫描的物体可以是例如仓库中的产品(例如,一件商品)、用于在制造工厂中制造最终产品的部件,或一些其它物体。扫描系统100可以扫描物体以便确定物体的属性、物体的3d模型(例如,描述物体的形状和尺寸的信息),或关于物体的一些其它信息。机器人操作系统101可以使用3d模型或关于物体的其它信息来与物体交互。例如,机器人操作系统101可以包括具有机器人臂的机器人,并且交互可以涉及机器人臂拾取物体,诸如在箱子拾取操作中用于拾取仓库中的包裹。在题为“methodandsystemforperformingautomaticcameracalibrationforrobotcontrol”的美国专利申请no.16/295,940中更详细地描述了机器人操作系统101的示例,该申请的全部内容通过引用整体并入本文。在实施例中,机器人操作系统101可以包括用于控制机器人的机器人控制系统(也称为机器人控制器)。在一些情况下,扫描系统100可以被配置为将物体的3d模型、获取的物体图像或其它信息传送到机器人控制系统。在实施例中,机器人操作系统101可以包括视觉系统,该视觉系统包括一个或多个相机。在题为“methodandcontrolsystemforupdatingafirstimagegeneratedbyafirstcamerabasedonasecondimagegeneratedbyasecondcamera”的美国专利申请no.16/438,084(mj0020-us/0077-0005us1)中更详细地描述了视觉系统的示例,该申请的全部内容通过引用整体并入本文。在一些情况下,扫描系统100可以被配置为将3d模型、获取的物体图像或其它信息传送到该视觉系统。

图1b描绘了扫描系统100的实施例的框图。在图1b中所绘出的实施例中,扫描系统100包括计算系统110(也称为扫描控制系统或扫描控制器)、致动器140、平台150、第一相机170(标记为“相机1”)和第二相机180(标记为“相机2”)。在一些情况下,扫描系统100还可以包括一个或多个光源,诸如在图1b中所绘出的第一光源120(标记为“光源1”)和第二光源130(标记为“光源2”)。在实施例中,扫描系统100可以包括封闭的壳体,诸如盒子,该壳体提供扫描系统100的一些或所有部件位于其内的封闭空间。

在实施例中,平台150可以提供可以放置待扫描的物体的表面。在一些情况下,平台150能够进行运动,以便利用平台150的运动来移动物体。例如,平台150可以是圆形玻璃板,其可以通过致动器140(例如,马达)绕板的中心旋转。平台150的旋转可以允许物体的不同部分被带入到例如第一相机170的视场中。在实施例中,可以放置物体的表面可以是平台的第一表面(例如,顶表面),但平台还可以具有第二相对的表面(例如,底表面)。

在实施例中,平台150可以设置在第一相机170和第二相机180之间。例如,图1b图示了平台150的第一表面152(例如,顶表面)和平台150的第二表面154(例如,底表面),其中第一表面152和第二表面154是平台150的相对表面。在这个示例中,第一相机170可以邻近平台150的第一表面152设置,其中第一表面152设置在第一相机170和平台150的第二表面154之间。例如,第一相机170可以设置在第一表面152上方(也称为设置在第一表面152之上)。此外,第一相机170可以指向平台150的第一表面152(例如,平台150的顶表面)。此外,在这个示例中,第二相机180可以邻近平台150的第二表面154设置,其中第二表面154设置在第二相机180和平台的第一表面152之间。例如,第二相机180可以设置在第二表面154下方(也称为设置在第二表面154之下)。此外,第二相机180可以指向平台150的第二表面154(例如,平台150的底表面)。在一些情况下,第一表面152和第二表面154可以都是平坦表面,并且可以彼此平行。

在实施例中,平台150可以是透明平台,诸如玻璃板。当物体放置在该透明平台上时,物体上的各个区域对于第一相机170或第二相机180中的至少一个可以是可见的。例如,物体上的第一区域(例如,顶部区域)可能对第二相机180不可见,但是可能对第一相机170是可见的。类似地,物体的第二区域(例如,底部区域)可能对第一相机170不可见,但是可能对第二相机180是可见的。另外,如果一些区域最初被阻挡在相对于例如第一相机170的视野外,则平台150的移动可以随后允许这些区域被带入到视野中,如以上所讨论的。

在实施例中,第一相机170和/或第二相机180可以是彩色相机、黑白相机、深度感测相机、视频相机,其任何组合或任何其它类型的相机。在实施例中,第一相机170可以相对于平台150偏离中心设置。在这样的实施例中,第一相机170不直接设置在平台150的中心之上。平台150的中心可以指例如平台150的第一表面152的中心、平台150的第二表面154的中心,或这两个位置的平均值。作为更具体的示例,第一相机170可以通过不与图1b的平台150的中心轴156相交而偏离中心,其中,中心轴156可以是垂直于平台150的第一表面152或第二表面154并且通过平台150的中心延伸的轴。在一些情况下,第一相机170可以具有第一相机170相对于平台150的第一表面152倾斜的朝向,并且指向朝平台150的第一表面152的方向。这样的朝向可以允许第一相机170具有设置在平台150的第一表面152上的物体的透视图,而不是仅具有例如物体的顶视图。例如,当物体放置在平台150的第一表面152上时,第一相机170的倾斜可以允许多个区域(诸如顶部区域和侧部区域)同时对第一相机170可见。作为更具体的示例,第一相机170可以通过具有第一相机170的光轴不与平台150的中心轴156平行(或者更一般地,不对准)的朝向而相对于平台150的第一表面152倾斜。

在实施例中,第二相机180可以相对于平台150居中。例如,第二相机180可以与平台150的中心轴156相交。作为更具体的示例,当第二相机180的镜头或图像传感器与中心轴156相交时,第二相机180可以相对于平台150居中。在另一个实施例中,第二相机180可以相对于平台150偏离中心。在实施例中,第二相机180可以相对于平台150的第二表面154没有倾斜,使得第二相机180具有其中第二相机180的光轴与中心轴156平行的朝向,或者,其中第二相机180的光轴垂直于由第二表面154限定或形成的虚构平面的朝向。在这样的实施例中,当物体放置在平台150的第一表面上时,第二相机180的朝向可以使第二相机180通过平台150的透明材料迎面地观看物体。例如,如果平台150的第二表面154是底表面,则第二相机180可以例如仅具有物体的通过平台150的玻璃或其它材料的底视图。第二相机180没有倾斜可以使光折射、光散射或由穿过平台150的透明材料的光引起的其它失真源的量最小化。这样的结果可以减少由第二相机180获取的图像中的成像误差的量。

在实施例中,第一光源120可以邻近平台150的第一表面152设置(例如,设置在其上方),其中第一表面152设置在第一光源120和平台150的表面154之间。第一光源120可以指向平台150的第一表面152。另外,第二光源130可以邻近平台150的第二表面154设置(例如,设置在其下方),其中第二表面154设置在第二光源130和平台150的第一表面152之间。第二光源130可以指向平台150的第二表面154。第一光源120和第二光源130中的每一个可以是例如发光二极管(led)、卤素灯或任何其它光源。另外,第一光源120和第二光源130可以被配置为分别朝向平台150的第一表面152和第二表面154发射可见光、红外辐射或任何其它形式的光。在一些实现方案中,计算系统110可以控制第一光源120以控制平台150的第一表面152的照明条件,并且可以控制第二光源130以控制平台150的第二表面154的照明条件。

在实施例中,计算系统110(也称为扫描控制系统或扫描控制器)可以与第一相机170、第二相机180、第一光源120、第二光源130和/或致动器140中的一个或多个通信和/或被配置为控制第一相机170、第二相机180、第一光源120、第二光源130和/或致动器140中的一个或多个。在一些情况下,通信可以经由例如rs-232接口、通用串行总线(usb)接口、以太网接口、接口、ieee802.11接口或其任何组合来进行。在一些情况下,通信可以经由本地计算机总线进行,诸如外围部件互连(pci)总线。

图1c描绘了计算系统110的框图。计算系统110可以是计算机、控制芯片、电路板或任何其它计算系统。如图1c的框图所示,计算系统110可以包括控制电路111、通信接口113和非瞬态计算机可读介质115(例如,存储器)。

在实施例中,通信接口113可以包括一个或多个部件,该一个或多个部件被配置为与图1b的致动器140、第一相机170、第二相机180、第一光源120和/或第二光源130,和/或与图1a的机器人操作系统101通信。在一些情况下,通信接口113可以包括被配置为通过有线或无线协议进行通信的通信电路。作为示例,通信电路可以包括rs-232端口控制器、usb控制器、以太网控制器、控制器、pci总线控制器、任何其它通信电路或其组合。

在实施例中,控制电路111可以包括一个或多个处理器、可编程逻辑电路(plc)或可编程逻辑阵列(pla)、现场可编程门阵列(fpga)、专用集成电路(asic)或任何其它控制电路。在实施例中,非瞬态计算机可读介质115可以包括计算机存储器。计算机存储器可以包括例如动态随机存取存储器(dram)、固态集成存储器和/或硬盘驱动器(hdd)。在一些情况下,非瞬态计算机可读介质115可以存储控制电路111被配置为执行的指令(例如,计算机代码),诸如执行相机校准的指令,如下面更详细地讨论的。在这种情况下,控制电路111可以包括一个或多个处理器,该一个或多个处理器被配置为执行计算机可执行指令以执行相机校准。

在实施例中,计算系统110可以是专用控制系统(也称为专用控制器),其仅控制扫描系统100的操作,包括图1b的致动器140、图1b的第一相机170、图1b的第二相机180、图1b的第一光源120和/或图1b的第二光源130的操作。在其它情况下,计算系统110可以被配置为控制附加操作,诸如机器人操作系统(例如,图1a的机器人操作系统101)的操作。在实施例中,计算系统110可以在扫描系统100的其它部件的本地,诸如在平台150、致动器140、第一相机170、第二相机180、第一光源120和/或第二光源130的本地。在实施例中,计算系统110可以远离扫描系统100的一个或多个其它部件。例如,如果平台150、致动器140、第一相机170、第二相机180、第一光源120和第二光源130位于仓库或其它处所中,则计算系统110可以设置在远离仓库的数据中心或其它位置,并且可以被配置为经由网络连接与扫描系统100的这些其它部件通信。

在实施例中,计算系统110可以被配置为检索或以其它方式接收由第一相机170获取的图像和由第二相机获取的图像。在一些情况下,这些图像可以属于校准图案,如下面更详细地讨论的(此类图像可以被称为校准图像)。在实施例中,计算系统110可以被配置为控制第一相机170和/或第二相机180以获取这样的校准图像。例如,计算系统110可以被配置为生成相机命令,该相机命令使第一相机170和/或第二相机180分别获取或以其它方式生成第一相机170或第二相机180的视场中的场景的图像(相机的视场也可以被称为相机视场)。相同的相机命令或不同的相机命令还可以使第一相机170和/或第二相机180将所获取的图像经由图1c的通信接口113传送到计算系统110,或者更一般地传送到可由计算系统110访问的存储设备(例如,图1c的非瞬态计算机可读介质115)。在实施例中,第一相机170和/或第二相机180可以或者周期性地或者响应于定义的触发条件自动获取或以其它方式生成其各自相机视场中的场景的图像,而无需来自计算系统110的相机命令。在这样的实施例中,第一相机170和/或第二相机180还可以被配置为在没有来自计算系统110的相机命令的情况下自动地将所获取的图像传送到计算系统110,或者更一般地,传送到可由计算系统110访问的存储设备。

在实施例中,控制电路111或计算系统110的其它部件可以被配置为生成移动命令,当该移动命令被致动器140接收到时,使致动器140致动(例如,旋转)平台150。移动命令可以经由通信接口113从控制电路111传送到致动器140。在一个示例中,致动器140可以是马达,并且移动命令可以是马达命令或任何其它类型的移动命令。

在实施例中,控制电路111或计算系统110的其它部件可以被配置为生成用于第一光源120和/或第二光源130的照明命令,并且经由通信接口113将照明命令从控制电路111传送到第一光源120和/或第二光源130。照明命令可以例如控制特定光源是被激活还是停用,或者控制光源被激活的方式,诸如光源被激活的强度或持续时间。

在实施例中,图1b的扫描系统100中的仅有相机是第一相机160和第二相机170。在实施例中,扫描系统100可以包括附加的相机,诸如三个相机或更多个相机。例如,图1d描绘了作为扫描系统100的实施例的扫描系统100a,其包括第三相机190(标记为“相机3”)以及第一相机170和第二相机180。在这个实施例中,第一相机170和第三相机190都可以邻近平台150的第一表面152设置(例如,设置在第一表面152之上),而平台150设置在第三相机190和第二相机之间180,并且位于第一相机170和第二相机180之间。更具体而言,第一表面152可以设置在第三相机190和平台150的第二表面154之间,并且可以设置在第一相机170和平台150的第二表面154之间。第三相机190可以相对于平台150偏离中心,或者可以相对于平台150居中。另外,第三相机190可以相对于平台150的第一表面152倾斜,或者可以相对于平台150的第一表面152没有倾斜。第一相机170和第三相机190可以覆盖放置在平台150上的物体的不同视角或视点。在一些情况下,第一相机170和第三相机190两者的存在可以向计算系统110提供对第一相机170和第三相机190都可见的物体上的区域的立体视图。

如上所述,本公开的一个方面涉及基于校准图案的图像执行相机校准。图1e描绘了其中3d校准图案160用于执行相机校准的实施例。更具体而言,3d校准图案160设置在扫描系统100的平台150的第一表面152上,并且其计算系统110被配置为基于3d校准图案160的校准图像执行相机校准。如下面更详细讨论的,3d校准图案160的一个示例包括多面体,该多面体具有设置在该多面体的相应面上的多个2d图案。多面体可以具有设置在其每个面上或仅设置在其面的子集上的相应2d图案。

如上所述,在实施例中,第一相机170可以具有第一相机170相对于平台150的第一表面152倾斜的朝向。这样的朝向可以向第一相机170提供3d校准图案160的透视图,这可以允许3d校准图案160的多个面对第一相机170可见,或者更一般地在第一相机170的相机视场内。在实施例中,也如上所述,第二相机180可以具有第二相机180相对于平台150的第二表面154没有倾斜的朝向。这样的朝向可以使3d校准图案160的多面体的仅一个面或仅面的子集对第二相机180可见。例如,在这样的实施例中的第二相机180可以能够仅查看多面体的底面。换句话说,在这样的示例中的第二相机170可以仅具有3d校准图案160的底视图。

在实施例中,计算系统110可以被配置为控制致动器140以致动平台150,诸如以使平台150围绕其中心旋转。这样的移动可以使3d校准图案160相对于第一相机170和/或第二相机180放置在不同的位置和/或不同的朝向。此外,如果3d校准图案160的特定面最初相对于例如第一相机170被隐藏,则平台150可以随后相对于例如第一相机170将该面移动到视野中。在实施例中,计算系统110可以被配置为控制第一光源120和/或第二光源130在第一相机170和/或第二相机180正在获取3d校准图案160的图像时被激活,以便照亮3d校准图案160的多面体的一个或多个面。

图2描绘了图示用于基于校准图案(诸如图1e的3d校准图案160)的校准图像为扫描系统(诸如图1a-1e的扫描系统100)执行相机校准的方法200的流程图。在实施例中,方法200可以根据步骤201-209执行相机校准,然后可以使用从相机校准确定的信息在步骤211中生成物体的3d模型。在实施例中,方法200可以由计算系统110执行,更具体而言,由图1c的控制电路111执行。在一些情况下,控制电路111可以基于存储在图1c的非瞬态计算机可读介质115上或者在任何其它存储设备上的指令来执行方法200。

在实施例中,方法200可以从步骤201开始,其中控制电路111经由通信接口113从图1b、图1d和/或图1e的第一相机170,或者更具体而言,从将在下面讨论的图3a的第一相机370接收第一组校准图像。第一组校准图像可以是3d校准图案160的图像,其中3d校准图案160可以包括具有多个面的多面体,并且包括设置在该多个面上的多个2d校准图案。该多个面可以包括第一组面和附加面。另外,第一组校准图像可以具体而言捕获多面体的第一组面,并且捕获分别设置在多面体的第一组面上的第一组2d校准图案,而不捕获多面体的该附加面。

例如,图3a描绘了用于执行图2的方法200的示例环境,并且更具体而言描绘了作为图1a-1e的扫描系统100的实施例的扫描系统300。在这个实施例中,扫描系统300包括图1b-1e的计算系统110。扫描系统300还包括平台350、被配置为致动平台350的致动器340,包括第一相机370、第一光源320、第二相机380和第二光源330,它们分别可以是图1b和图1d-1e的平台150、致动器140、第一相机170、第一光源120、第二相机180和第二光源130的相应实施例。在实施例中,平台350具有第一表面352和与第一表面352相对的第二表面354,并且设置在第一相机370和第二相机380之间。如图3a所示,第一相机370和第一光源370可以邻近平台350的第一表面352设置,其中第一表面352设置在第一相机370和平台350的第二表面354(例如,底表面)之间,并且设置在第一光源320和第二表面354之间。第一相机370和第一光源320可以面向(例如,指向)平台350的第一表面352。在一个示例中,第一表面352可以是平台350的顶表面,并且第一光源和第一相机370可以设置在第一表面352之上。

如图3a中进一步所示,第二相机380和第二光源330可以邻近平台350的第二表面354(例如,底表面)设置,其中第二表面354设置在第二相机380和平台350的第一表面352之间,并且设置在第二光源330和第一表面352之间。第二相机380和第二光源330可以面向(例如,指向)平台350的第二表面354。在一个示例中,第二表面354可以是平台350的底表面354,并且第二光源330和第二相机380可以设置在第二表面354下方。在实施例中,第一相机370和第二相机380可以各自具有相应的图像传感器(例如,电荷耦合二极管或ccd传感器)。在这样的实施例中,当第一相机370/第二相机380的相应图像传感器面向特定表面时,可以认为第一相机370/第二相机380指向该表面。作为更具体的示例,如果第一相机370设置在平台350的第一表面352之上并且指向平台350的第一表面352,则从第一表面352反射或从设置在第一表面352上的物体反射的光可以直接到达第一相机370的图像传感器。在这个示例中,平台350可以是透明的,并且光可以在从物体的底表面反射之后穿过平台350。如果第二相机380设置在第二表面352下方并指向第二表面352,则从物体的底表面反射的光可以直接到达第二相机380的图像传感器。

在图3a的实施例中,平台350可以是圆形玻璃板或其它类型的透明平台,并且致动器340可以被配置为使平台350围绕中心轴356旋转。中心轴356可以是穿过平台350的中心355并且垂直于平台150的第一表面352或第二表面354的轴。在图3a的示例中,平台350的中心355可以指平台350的第一表面352的中心。如图3a中进一步描绘的,致动器340可以是马达,其包括转子342、马达轴344和附接到马达轴344的旋转传递部分346。转子342可以被配置为使马达轴344旋转,马达轴344可以被配置为使旋转传递部分346旋转。旋转传递部分346可以被配置为将扭矩施加到平台350以使平台350围绕平台350的中心轴线356旋转。在一个示例中,旋转传递部分346可以是齿轮或齿轮箱,其被配置为将旋转从转子342和马达轴344传递到平台350。在另一个示例中,旋转传递部分346可以以足够的摩擦力接触平台350的边缘,以在旋转传递部分346旋转时使平台350旋转。在实施例中,转子342可以由计算系统110控制,计算系统110可以被配置为将驱动信号或其它形式的移动命令传送到转子342。如图3a中进一步所示,第一相机370可以相对于平台350的第一表面352倾斜。例如,第一相机370可以具有其光轴371不与平台350的中心轴356平行的朝向。在这个示例中,第二相机380可以相对于平台350的第二表面354没有倾斜。例如,第二相机380可以具有其光轴381与平台的中心轴356平行的朝向。

如上所述,图2的步骤201可以涉及接收图1e的3d校准图案160的第一组校准图像。图3a描绘了作为3d校准图案160的实施例的3d校准图案360,其中3d校准图案360设置在平台350的第一表面352上。在实施例中,3d校准图案360包括具有多个面的多面体362。在图3a的示例中,多面体362是立方体,或者更一般地是矩形棱柱,具有总共六个面。在另一个示例中,3d校准图案360可以包括不同的多面体,诸如四面体或十二面体。图3b和图3c指示图3a的多面体362的多个面。更具体而言,图3b识别3d校准图案360的多面体362的三个面,即,面362a、362b和362c。图3c呈现了多面体362的在图3b中不可见的三个剩余面,即,面362d、362e和362f。

在实施例中,多面体362可以具有定义的维度(也称为预定义的维度),其可以是例如多面体362的形状和/或尺寸的定义值。例如,图3a中的多面体362可以是立方体,该立方体被制造成具有严格的公差以基本上匹配立方体的每条边的定义维度“d”(例如,50mm)。制造过程可能具有高精度,其限制了与定义维度的偏差量不超过例如+/-0.5mm。在一些情况下,图3a的计算系统110可以存储定义的维度的值,或者可以能够检索定义的维度的值(例如,从远程数据库中),并且可以使用该值来执行相机校准,如下面更详细讨论的。

在实施例中,图3b和图3c中的多面体362的面可以被划分为第一组面362a-362e和附加面362f,其中附加面362f不是第一组面362a-362e的一部分。附加面362f也可以被认为是多面体362的第二组一个或多个面的一部分,其中第二组一个或多个面(例如,362f)没有与第一组面362a-362e共同的面。

在实施例中,第一组面362a-362e可以是多面体362的对(图3a的)第一相机370可见的或者可以通过平台350被旋转到对第一相机370可见的位置处的面。例如,第一组面362a-362e可以包括多面体362的顶面和四个侧面。在实施例中,第一组面362a-362e可以是多面体362的对(图3a的)第二相机380不可见的面。在一些情况下,即使当多面体362被平台350移动时,第一组面362a-362e也可能永远不会对第二相机380可见。当例如第二相机380具有阻止其截取或以其它方式收集从第一组面362a-362e反射的任何光的位置和/或朝向时,可能发生这种情况。例如,当第二相机380非常靠近平台350的第二表面354并且相对于平台350的第二表面354没有倾斜时,可能发生这些情况。

在实施例中,附加面362f可以是多面体362的对第一相机370永远不可见的并且对第二相机380可见的面。例如,附加面362f可以是多面体362的直接接触图3a的平台350(例如,平台350的第一表面352)的底面,而第一组面362a-362e可以是多面体362的不直接接触平台350的面。在其中多面体362是立方体的图3b和图3c的实施例中,第一组面362a-362e可以具有恰好五个面,并且附加面362f可以是对第二相机380可见并且对第一相机370不可见的仅单个附加面362f。在多面体362不是立方体(例如,多面体362是十二面体)的另一个实施例中,多面体362的面可以被划分为对第一相机370可见的第一组面,以及对第二相机380可见并且对第一相机370不可见的多个附加面(也称为第二组面)。

返回参考图2的步骤201,该步骤中的3d校准图案160/360还可以包括分别设置在3d校准图案160/360的多面体(例如,362)的多个面上的多个2d校准图案。图3d-3f图示了3d校准图案360的2d校准图案。更具体而言,图3d描绘了分别设置在多面体362的面362a、362b和362c上的2d校准图案366a、366b和366c。图3e描绘了沿着图3d中的箭头a观察的多面体362。更具体而言,图3e描绘了分别设置在多面体362的面362b、362e和362f上的2d校准图案366b、366e和366f。图3f描绘了沿着图3d中的箭头b观察的多面体362。更具体而言,图3f图示了分别设置在多面体362的面362a、362d和362e上的2d校准图案366a、366d和366e。

在实施例中,图3d-3f的2d校准图案366a-366f可以被划分为第一组2d校准图案366a-366e和附加2d校准图案366f,其中第一组2d校准图案366a-366e分别设置在多面体362的第一组面362a-362e上,并且其中附加2d校准图案366f设置在多面体362的附加面362f上。附加2d校准图案366f也可以被认为是第二组一个或多个2d校准图案的一部分,其中在第一组2d校准图案366a-366e和第二组一个或多个2d校准图案(例如,366f)之间不存在共同的2d校准图案。在实施例中,第二组一个或多个2d校准图案可以包括对第一相机370不可见的(一个或多个)校准图案。在上述实施例中,或者在另一个实施例中,第二组一个或多个2d校准图案可以包括对第二相机380可见的(一个或多个)校准图案。在实施例中,第二组一个或多个2d校准图案仅包括2d校准图案366f。例如,当第二相机380和3d校准图案360都相对于平台380居中时,可能发生这种情况。在另一个实施例中,第二组一个或多个2d校准图案包括多于一个的2d校准图案。

在实施例中,3d校准图案360的2d校准图案366a-366f可以以固定方式设置在多面体362的相应面362a-366f上。例如,2d校准图案366a-366f中的每一个可以是平板纸(例如,贴纸)或粘附在多面体362的相应面上或以其它方式附接到多面体362的相应面的平板。在实施例中,2d校准图案366a-366f中的一个或多个可以被涂覆到多面体362的相应面362a-362f上。在实施例中,2d校准图案366a-366f中的任何一个可以相对于多面体362的相应面362a-362f居中和/或对准(如图3d和图3e中的2d校准图案366b所示),或者可以相对于多面体362的相应面362a-362f偏离中心和/或未对准(如图3f中的2d校准图案366d所示)。

在实施例中,2d校准图案366a-366f中的每个2d校准图案可以具有多个图案元素,诸如点阵列,其中每个图案元素可以在2d校准图案的坐标系和/或3d校准图案360的坐标系中具有定义的位置(也称为预定义位置)。图3g图示了3d校准图案360的坐标系,以及平台350的坐标系、第一相机370的坐标系和第二相机380的坐标系。在实施例中,3d校准图案360的坐标系可以具有与多面体362的边缘对准的坐标轴3d校准图案360的坐标系的原点可以是多面体362内的位置(例如,多面体362的中心)、多面体362的表面上的位置(例如,在面362a的中心处),或任何其它位置。在实施例中,如图3g中所绘出的,平台350的坐标系可以具有与平台350的中心轴356对准的坐标轴(参见图3a),并且具有位于平台350的中心355处的原点。在一些情况下,第一相机370或第二相机380的坐标系可以具有与相机370/380的任何镜头的光轴对准的坐标轴(第一相机370的以及第二相机380的),并且可以具有位于相机370/380的镜头的中心处、相机370/380的图像传感器的中心或角处,或者某个其它位置处的原点。图3g还图示了链接点357的坐标系,其中该坐标系由坐标轴限定。下面更详细地讨论该坐标系。

在实施例中,3d校准图案360的2d校准图案366a-366f中的每一个可以具有其自己的坐标系。例如,图3h图示了校准图案366a的第一坐标系,其中第一坐标系由坐标轴限定。该图还图示了校准图案366b的第二坐标系,以及校准图案366c的第三坐标系。第二坐标系由坐标轴限定,而第三坐标系由坐标轴限定。在题为“methodandsystemforperformingautomaticcameracalibrationforrobotcontrol”的美国专利申请no.16/295,940中更详细地描述了校准图案,该申请的全部内容通过引用并入本文。

返回参考图2的步骤201,该步骤可以涉及控制电路111从图1b或图3a的第一相机170/370接收第一组校准图像。在实施例中,第一组校准图像由第一相机170/370在3d校准图案160/360被移动到相对于第一相机170/370的不同位置和/或朝向时获取或以其它方式生成。在一些情况下,控制电路111可以控制致动器140/340以经由平台150/350产生这样的移动。例如,控制电路111可以经由(图1c的)通信接口113将一个或多个马达命令输出到致动器140/340。该一个或多个马达命令可以使致动器140/340旋转平台150/350,这使3d校准图案160/360移动以具有相对于第一相机170/370的多个朝向。在这个示例中,步骤201的第一组校准图像是当3d校准图案160/360具有相对于第一相机170/370的多个朝向时分别生成的。在实施例中,第一组校准图像中的每个校准图像可以对应于3d校准图案160/360相对于第一相机170/370的不同的相应位置和/或朝向。换句话说,当3d校准图案160/360被移动以具有相对于第一相机170/370的各种位置和/或朝向时,第一相机170/370生成3d校准图案160/360的相应校准图像,同时3d校准图案160/360处于不同的位置和/或朝向。这些校准图像可以形成第一组校准图像,然后该第一组校准图像可以从第一相机370发送到计算系统110的控制电路111。

在实施例中,第一组校准图像中的每个校准图像可以捕获多面体360的至少两个面(例如,第一组面362a-362e)和第一组2d校准图案(例如,图3d-3f的第一组2d校准图案366a-366e)中的至少两个2d校准图案。例如,第一组校准图像中的每一个可以由图3a的第一相机370生成,第一相机370可以具有相对于3d校准图案360的位置和朝向,其允许3d校准图案360的至少两个2d校准图案始终对第一相机370可见。图4a描绘了示例校准图像500,示例校准图像500是图3a的3d校准图案360的第一组校准图像中的一个校准图像。图4a的示例校准图像500可以具有捕获图3a和图3d的多面体362的图3b和图3d的2d校准图案366a和面362a的第一图像部分566a。校准图像500还可以具有捕获图3b和图3d两者的2d校准图案366b和面362b的第二图像部分566b,并且还具有捕获图3b和图3d两者的2d校准图案366c和面362c的第三图像部分566c。在实施例中,第一组校准图像不捕获3d校准图案360的多面体362的附加面362f。

在实施例中,图1c或图3a的控制电路111可以(例如,作为图2的步骤201的一部分或在步骤201之后)从第一组校准图像中的每个校准图像提取捕获相应的2d校准图案的图像部分(例如,566a、566b、566c)。例如,对于第一组校准图像中的每个校准图像,控制电路111可以从校准图像中提取捕获第一2d校准图案的第一图像部分,其中校准图像可以捕获至少两个2d校准图案。在一个示例中,图4a图示了控制电路111从校准图像500提取图像部分566a,图像部分566a捕获(图3d的)2d校准图案366a。控制电路111还可以存储描述第一2d校准图案(例如,2d校准图案366a)的图案元素的信息。例如,如果图案元素是点,则存储的信息可以是点出现在校准图像500中的相应位置的像素坐标[uv]t

在实施例中,控制电路111可以提取表示校准图像中的其它2d校准图案的其它图像部分,诸如图4a的校准图像500中的图像部分566b和566c。图像部分566b可以捕获2d校准图案366b,并且图像部分566c可以捕获2d校准图案366c。在一些情况下,控制电路111可以从校准图像(例如,校准图像500)中移除被提取了的第一图像部分,以便于检测其它图像部分,并且降低第一图像部分的任何部分被错误地识别为其它图像部分的一部分的可能性。例如,控制电路111可以通过从校准图像(例如,校准图像500)中移除第一图像部分(例如,图像部分566a)来生成更新后的校准图像。在一些情况下,可以通过使第一图像部分涂黑来完成移除。作为示例,图4b描绘了更新后的校准图像530,其中第一图像部分566a被涂黑,以便用第一涂黑部分534替换第一图像部分566a,第一涂黑部分534对应于第一图像部分566a。在一些情况下,涂黑第一图像部分566a可以涉及将第一图像部分566a的所有像素设定为具有预定义的强度值(例如,零)。

在实施例中,控制电路111可以从更新后的校准图像(例如,图4b的更新后的校准图像530)中提取捕获第二2d校准图案(例如,图3d的校准图案366c)的第二图像部分(例如,图像部分566c)(其也被称为另一个图像部分),并且可以存储描述该第二2d校准图案的图案元素的信息。所存储的信息可以包括例如第二2d校准图案的图案元素出现在更新后的校准图像(例如,更新后的校准图像530)中的相应位置的像素坐标[uv]t

在实施例中,控制电路111可以移除(例如,涂黑)第二图像部分(例如,566c)和捕获2d校准图案的其它图像部分,直到这样的图像部分中除了一个图像部分之外的所有其它图像部分都从校准图像500中被移除。例如,图4c描绘了控制电路111通过进一步从更新后的校准图像530中移除第二图像部分566c来生成附加的更新后的校准图像560。可以通过用第二涂黑部分535替换更新后的校准图像560中的第二图像部分566c来执行移除,第二涂黑部分535对应于第二图像部分566c。控制电路111可以从附加的更新后的校准图像560中提取第三图像部分566b,第三图像部分566b捕获图4a的校准图像500中表示的三个2d校准图案366a-366c中的第三2d校准图案366b。控制电路111还可以存储描述第三2d校准图案366b的图案元素的信息。

在实施例中,控制电路111可以基于在图2的步骤201中接收到的第一组校准图像来确定对图1b、图1d、图1e和/或图3a的第一相机170/370的校准参数的估计。例如,该确定可以基于描述由第一组校准图像捕获的第一2d校准图案的图案元素和第二2d校准图案的图案元素的存储信息。在一些情况下,校准参数可以是固有校准参数,诸如描述在第一相机170/370的图像传感器上的图像投影的投影矩阵k,或描述由第一相机170/370经历的镜头失真或任何其它形式的失真的失真参数。在这样的示例中,该确定可以是由控制电路111执行的固有相机校准的一部分。在一些情况下,校准参数可以是描述第一相机170/370与3d校准图案160/360的特定2d校准图案之间的空间关系,或者更一般地,第一相机170/370与图1e和/或图3a-3f的3d校准图案160/360之间的空间关系的变换函数。例如,变换函数可以是描述相机n(例如,第一相机370)的坐标系与2d校准图案m(例如,第一组2d校准图案366a-366e中的任何一个)的坐标系之间的线性变换(例如,旋转和平移)的矩阵作为更具体的示例,控制电路111可以确定对第一相机170/370的投影矩阵k相机1的估计、对第一相机170/370的多个失真参数的相应估计,以及矩阵在以上示例中,相机1可以指第一相机370,而2d图案1至5可以分别指2d校准图案366a至366e。在实施例中,控制电路111可以基于所存储的描述3d校准图案160/360的第一组2d校准图案(例如,366a-366e)的图案元素(例如,点)的信息来确定对固有校准参数的估计和/或对变换函数的估计。例如,该确定可以基于描述图案元素在第一组校准图像中出现的位置的像素坐标,并且基于这些图案元素在3d校准图案160/360的坐标系或者2d校准图案366a-366f之一的坐标系中的定义位置。该确定可以使用例如perspective-n-point算法、在“aflexiblenewtechniqueforcameracalibration”,technicalreportmsr-tr-98-71,byzhengyouzhang中描述的算法(也称为zhang的算法)、任何其它算法或其组合。基于校准图像确定对校准参数的估计在题为“methodandsystemforperformingautomaticcameracalibrationforrobotcontrol”的美国专利申请no.16/295,940中更详细地描述,该申请的全部内容通过引用并入本文。

在实施例中,估计的校准参数可以是变换函数,其描述第一相机170/370与图1b、图1d、图1e和/或图3a的平台150/350之间,或者更具体地第一相机170/370与平台150/350的图3a的中心355之间的空间关系。例如,变换函数可以是描述第一相机170/370的坐标系与平台150/350的坐标系之间的线性变换的矩阵在一些情况下,平台150/350的中心355可以被视为世界点,并且可以描述第一相机170/370与世界点之间的关系。在一些情况下,确定对校准参数的估计可以是手眼校准阶段的一部分。例如,手眼校准阶段可以涉及基于以下等式求解

在这个示例中,可以是描述平台150/350的坐标系与链接点(诸如图3g的链接点357)的坐标系之间的空间关系的变换函数。在实施例中,链接点357可以是平台350上除平台350的中心355之外的任何点。在一些情况下,链接点357可以是相对于3d校准图案360静止的点。在实施例中,链接点357可以是平台350上与3d校准图案360接触的任何点。在这个示例中,可以由控制电路111基于(图3a的)致动器340已旋转或以其它方式致动平台350的量来确定。例如,可以包括旋转矩阵,该旋转矩阵描述链接点357相对于定义的初始位置所经历的旋转的量(例如,60°100°的旋转)。

在以上示例中,可以是定义3d校准图案160/360的坐标系与第一相机170/370之间的空间关系的矩阵,并且可以基于上述算法(诸如perspective-n-point算法或zhang的算法)之一来确定。另外,可以是描述3d校准图案160/360的坐标系与链接点357之间的空间关系的矩阵,而可以是描述第一相机170/370的坐标系与平台150/350的坐标系之间的空间关系的矩阵。以上示例可以涉及基于等式1求解的手眼校准操作。在题为“methodandsystemforperformingautomaticcameracalibrationforrobotcontrol”的美国专利申请no.16/295,940中更详细地描述了手眼校准和求解等式1,该申请的全部内容通过引用整体并入本文。

返回图2,方法200还可以包括步骤203,其中控制电路111可以经由(图1c的)通信接口113从第二相机180/380接收第二组一个或多个校准图像。第二组一个或多个校准图像可以捕获多面体的附加面,诸如图3b-3f的多面体362的图3c/3e的面362f(例如,底面)。附加面(例如,面362f)可以是第二相机180/380指向的面,和/或可以是多面体360的与平台150/350(例如,与平台350的第一表面352)直接接触的面。另外,第二组一个或多个校准图像可以捕获设置在附加面上的附加2d校准图案(例如,2d校准图案366f),或者捕获附加面的外形(也称为附加面的廓线或轮廓)。

在实施例中,第二组一个或多个校准图像可以包括由第二相机180/380以不同的相应照明条件获取的至少一对校准图像。该至少一对校准图像可以包括由第二相机180/380以第一照明条件获取的第一校准图像和由第二相机180/380以与第一照明条件不同的第二照明条件获取的第二校准图像,其中第一校准图像和第二校准图像都是针对平台150/350上的3d校准图案160/360的相同位置和/或姿势生成的。更具体而言,3d校准图案160/360可以在获取至少一对校准图像中的第一校准图像和获取至少一对校准图像中的第二校准图像之间的时间相对于第二相机180/380保持静止。在一些情况下,第二组一个或多个校准图像可以包括多对校准图像,其中每对校准图像包括由第二相机180/380以第一照明条件获取的相应第一校准图像,并且包括由第二相机180/380以第二照明条件获取的相应第二校准图像。

在实施例中,第一照明条件是背光条件,其中3d校准图案160/360从第二相机180/380的视角来看是背光照亮(backlit)的。可以通过例如激活第一光源120/320来创建该背光条件。因为3d校准图案160/360设置在第二相机180/380和第一光源120/320之间,因此可以认为3d校准图案160/360从第二相机180/380的视角来看是背光照亮的。在这样的实施例中,至少一对校准图像中的第一校准图像可以被称为该对中的相应背光照亮的校准图像。在一些情况下,第一照明条件还可以涉及第二光源130/330被停用。在一些情况下,如下面更详细地讨论的,背光照亮的校准图像可以捕获3d校准图案160/360的多面体(例如,362)的附加面(例如,362f)的轮廓。

在实施例中,第二照明条件是前光条件,其中3d校准图案160/360从第二相机180/380的视角来看是前光照亮(front-lit)的。可以通过例如激活第二光源130/330来创建前光照亮条件。因为第二光源130/330可以直接照射3d校准图案160/360的多面体的附加面(例如,362f)(或者多面体的对第二相机180/380可见的任何其它面),因此3d校准图案160/360从第二相机180/380的视角来看可以被认为是前光照亮的。在这样的实施例中,至少一对校准图像中的第二校准图像可以被称为该对中的相应前光照亮的校准图像。在一些情况下,第二照明条件还可以包括第一光源120/320被停用。在一些情况下,如下面更详细地讨论的,前光照亮的校准图像可以捕获设置在3d校准图案160/360的多面体的附加面(例如,362f)上的2d校准图案(例如,366f)。在实施例中,第二组一个或多个校准图像可以包括多对图像,其中每对图像包括相应的背光照亮的校准图像和相应的前光照亮的校准图像。作为至少一对校准图像的示例,图5a和图5b图示了一对由第二相机180/380以第一照明条件获取的第一校准图像400(例如,背光照亮的校准图像)和由第二相机180/380以第二照明条件获取的第二校准图像450(例如,前光照亮的校准图像)。

在一些情况下,利用图1b、图1d、图1e和/或图3a的第二相机180/380既获取该对的相应第一校准图像400又获取该对的相应第二校准图像450可以补偿成像误差的来源。例如,图1d-1e/3a的平台150/350的透明材料(例如,玻璃)可能弯曲或以其它方式使穿过材料到第二相机180/380的光失真。该失真可能是成像误差的来源,并且可能降低图1c/3a的控制电路111例如准确地识别图1e/3a的3d校准图案160/360的特征(诸如3d校准图案160/360的多面体(例如,图3a的多面体362)的底角)的位置的能力。在一些情况下,该对中的相应第二校准图像450(例如,前光照亮的校准图像)可以包含可以用于补偿可能存在于该对的相应第一校准图像400(例如,背光照亮的校准图像)中的失真或其它成像误差的信息,反之亦然,这是因为两个校准图像400/450是以不同照明条件获取的。例如,如下面更详细讨论的,控制电路111可以被配置为使用由第二相机180/380获取的一对校准图像中的相应第一校准图像400和相应第二校准图像450两者来确定3d校准图案160/360的多面体的附加面(例如,图3e的面362f)的角位置的坐标。

在实施例中,由第二相机180/380获取的一对校准图像中的相应第一校准图像400可以捕获3d校准图案(例如,360)的多面体(例如,362)的附加面(例如,362f)的轮廓412,并且可以利用背光条件生成,如上所述。在一个示例中,可以通过激活图1b和图3a的第一光源120/320(例如,顶部led),以及停用图1b和图3a的第二光源130/330(例如,底部led)来创建背光条件。例如,控制电路111可以经由图1c的通信接口113将第一组一个或多个光源命令输出到第一光源120/320和第二光源130/330,以使第一光源120/320被激活并且第二光源130/330被停用。第二光源130/330可以指向或朝向多面体(例如,多面体362)的附加面(例如,面362f),而第一光源120/320可以被认为位于附加面后面(例如,相对于第二光源130/330的视点或第二相机180/380的视点)。在这个实施例中,控制电路111还可以经由通信接口113向第二相机180/380输出第一组一个或多个相机命令,以使第二相机180/380在第一光源120/320被激活并且第二光源130/330被停用的同时生成至少一对校准图像中的(图5a的)第一校准图像400,其中该至少一对校准图像是由第二相机180/380获取或以其它方式生成的第二组一个或多个校准图像的一部分。在上述实施例中,因为第二光源130/330被停用,因此没有光提供到图1b或图3a的平台150/350的图1b、图1d-1e/3a的第二表面154/354(例如,底表面),也没有光提供到校准图案160/360的多面体(例如,362)的附加面(例如,面362f)。因此,多面体的附加面可能在该对校准图像中的第一校准图像(例如,400)中表现为暗的。另外,3d校准图案160/360可以遮住或遮蔽第一光源120/320,或者更一般地,部分地或完全地对第二相机180/380阻挡被激活的第一光源120/320。这样的条件还可以突出3d校准图案160/360的多面体的附加面(例如,362f)的轮廓412。

在实施例中,可以在存在前照明条件的同时生成图5b的第二校准图像450,如以上所讨论的。在一个示例中,可以在图1b或图3a的第一光源120/320(例如,顶部led)被停用并且第二光源130/330(例如,底部led)被激活时创建前照明条件。例如,控制电路111可以经由通信接口113向第一光源120/320和第二光源130/330输出第二组一个或多个光源命令,以使第二光源120/320被激活。在一些情况下,第二组一个或多个光源命令还可以使第一光源120/320停用。控制电路111还可以经由通信接口113向第二相机180/320输出第二组一个或多个相机命令,以使第二相机180/380在第二光源130/330被激活并且第一光源120/320被停用时生成至少一对校准图像中的第二校准图像450,其中该至少一对校准图像是由第二相机180/380获取的第二组一个或多个校准图像的一部分。如图5b中所描绘的,第二校准图像450可以具有图像部分466f,其捕获3d校准图案160/360的多个2d校准图案(例如,366a-366f)中的附加2d校准图案(例如,图3e的2d校准图案366f),其中附加2d校准图案设置在3d校准图案160/360的多面体的附加面(例如,面362f)上。

图5a和图5b描绘了其中步骤203中的第二组校准图像可以仅捕获3d校准图案的多面体的附加面(例如,面362f),并且不捕获多面体的第一组面(例如,面366a-366e)中的任何一个面的实施例。附加面可以是直接接触平台150/350的面。在其它实施例中,第二组校准图像也可以捕获3d校准图案的多面体的第一组面中的一个或多个(例如,图3d和图3e中的面366c或366e)。例如,第二相机180/380可以能够以一定角度观看第一组面中的一个或多个面,并且生成捕获第一组面中的该一个或多个面(除捕获附加面362f之外)的校准图像。但是,因为第二相机180/380正在通过平台150/350的透明材料观看第一组面中的一个或多个(例如,面362c),因此透明材料可能对第一组面出现在第二组一个或多个校准图像中的方式引入失真,尤其是在第二相机180/380没有迎面观看第一组面时。因此,在一些实现方案中,控制电路111可以从第二组一个或多个校准图像中移除捕获多面体的第一组面中的任何一个面(例如,面362c、362e)的图像部分。在一些实现方案中,控制电路111可以简单地忽略第二组一个或多个校准图像中捕获第一组面中的任何一个面的图像部分。

在实施例中,控制电路111可以被配置为基于第二组一个或多个校准图像确定对第二相机170/380的校准参数的估计。例如,控制电路111可以被配置为对第二相机180/380执行固有校准,以便确定对第二相机180/380的固有校准参数(诸如投影矩阵k相机2或失真参数)的估计。在一些情况下,校准参数可以包括变换函数其中2d图案6可以表示例如附加3d校准图案366f,并且其中相机2可以表示第二相机380。在实施例中,可以基于出现在校准图像450中或在其中出现图案元素的第二组一个或多个校准图像的任何其它校准图像中的附加2d校准图案(例如,2d校准图案366f)的图案元素(例如,点)来确定对固有校准参数或的估计。可以以与第一相机170/370类似的方式执行估计。

在实施例中,由第一相机170/370针对步骤201生成的第一组校准图像中的每个图像可以各自对应于由第二相机180/380针对步骤203生成的第二组校准图像中的至少一个校准图像,或者反之亦然。在一些情况下,如果在生成第一组校准图像的校准图像和在生成第二组一个或多个校准图像的校准图像之间的时间段中,3d校准图案160/360相对于第一相机170/370和相对于第二相机180/380保持静止,则可以认为第一组校准图像的校准图像与第二组一个或多个校准图像中的校准图像对应。在一些情况下,如果由第一相机170/370获取或以其它方式生成的校准图像和由第二相机180/380获取或以其它方式生成的校准图像是在3d校准图案160/360对于这两个校准图像在平台150/350上处于相同位置和/或姿势时获取的或以其它方式生成的,则可以认为由第一相机170/370获取或以其它方式生成的该校准图像对应于由第二相机180/380获取或以其它方式生成的该校准图像。

返回图2,方法200还可以包括步骤205-209,其中控制电路111可以确定3d校准图案160/360的多面体(例如,多面体362)的一组角的坐标。控制电路111可以确定这些角相对于第一相机170/370的一组坐标(例如,在第一相机170/370的坐标系中),并且确定相同角相对于第二相机180/380的一组坐标(例如,在第二相机180/380的坐标系中)。在一些情况下,控制电路111可以使用这两组坐标来确定第一相机170/370和第二相机180/380之间的空间关系。该空间关系可以描述第一相机170/370相对于第二相机180/380的位置和/或朝向,反之亦然。在一个示例中,该空间关系可以被表达为矩阵其表示第一相机170/370(其被标记为相机1)的坐标系与第二相机180/380(其被标记为相机2)的坐标系之间的线性变换。

更具体而言,在步骤205中,控制电路111可以基于第一组2d校准图案(例如,2d校准图案366a-366e)确定用于表示多面体(例如,多面体362)的附加面(例如,面362f)的一组相应角相对于第一相机170/370的位置和朝向的第一组坐标。例如,该组相应角可以是面362f的一组四个角364a-364d,如图3c中所绘出的。在一些情况下,这组相应的角364a-364d可以是3d校准图案360的多面体362的底角。在一些情况下,第一组坐标可以在第一相机170/370的坐标系中。在实施例中,该组相应的角可以对第二相机180/380始终可见,因为它们是例如3d校准图案160/360的多面体(例如,多面体362)的底面的角,而该组相应角中的一个或多个角有时可能对第一相机170/370不可见。在实施例中,控制电路111可以对步骤201中接收到的第一组校准图像中的每个校准图像执行步骤205,其中步骤205可以基于2d校准图案和校准图像中捕获的图案元素来执行。

在一些情况下,控制电路111可以使用关于3d校准图案160/360的几何形状的定义信息(也称为预定义信息)来确定第一组坐标。例如,步骤205可以包括基于第一组校准图像中的第一组2d校准图案(例如,366a-366e)确定多面体(例如,多面体362)的3d模型。在这样的实施例中,可以基于多面体(例如,多面体362)的3d模型确定多面体的附加面的一组相应角(例如,角364a-364d)的第一组坐标。在实施例中,多面体的3d模型可以描述多面体的三维结构。例如,3d模型可以描述多面体的面之间的空间关系。在一些情况下,多面体的两个或更多个面之间的空间关系可以被表达为变换函数,诸如矩阵。

作为生成和使用3d校准图案的多面体的3d模型的示例,控制电路111可以基于第一组2d校准图案(例如,362a-362e)确定描述由多面体(例如,多面体362)的第一组面(例如,362a-362e)形成的各个虚构平面的信息。在这个示例中,多面体的3d模型可以至少由描述各个虚构平面的信息表示。在一些情况下,控制电路111可以将多面体的角(诸如多面体的顶面(例如,图3b中的面362a)的角)的坐标确定为与多面体的三个相应面(例如,多面体362的面362a、面362b和面362c)对应的三个虚构平面的交点。该交点还可以被称为相应的虚构平面中的至少三个虚构平面相交的位置。在一些情况下,多面体的3d模型还可以包括多面体的维度的定义值。因为校准图案160/360的多面体的维度(例如,尺寸)具有可以由控制电路111存储或以其它方式可访问的定义值,因此控制电路111可以使用该定义的维度来进一步确定多面体的另一个角(诸如多面体的底面的角)的坐标,如下面更详细讨论的。

在实施例中,控制电路111可以基于多面体(例如,多面体362)的第一组面(例如,面366a-366e)之间的关系来确定描述各个虚构平面的信息。作为示例,图3a的3d校准图案360可以由六个虚构平面定义,这六个虚构平面定义3d校准图案360的多面体362的六个面362a-362f的相应朝向。六个虚构平面可以分别与六个面362a-362f共面。在实施例中,控制电路111可以被配置为基于设置在与虚构平面对应的面上的2d校准图案的图案元素来识别该特定的虚构平面。例如,控制电路111可以被配置为基于设置在面362a上的2d校准图案366a的至少三个点的位置来识别由图3d的多面体362的面362a定义的虚构平面,其中,该至少三个点不是共线的。更具体而言,控制电路111可以被配置为确定识别由面362a定义的虚构平面的信息。该信息可以具有例如垂直于虚构平面的向量、表示平面的等式(例如,ax+by+cz=0)的形式或某种其它信息的形式。控制电路111可以被配置为基于2d校准图案366a的至少三个点的相应位置来确定该信息。类似地,控制电路111可以被配置为基于2d校准图案366b-366e的图案元素的位置识别由面362b-362e中的一个或多个面定义的相应虚构平面。

如上所述,控制电路111可以确定多面体的第一组面(例如,面366a-366e)之间的空间关系。在这样的实施例中,描述各个虚构平面的信息可以基于多面体(例如,多面体362)的第一组面(例如,面366a-366e)之间的空间关系。在实施例中,第一组面之间的空间关系可以被表达为变换函数其中2d图案m是第一组2d校准图案中的一个(例如,第一组2d校准图案366a-366e中的一个),并且2d图案n是第一组2d校准图案中的另一个。例如,可以描述由2d校准图案362a形成的虚构平面与由2d校准图案362b形成的虚构平面之间的90度旋转,其中2d图案1是指图3d的2d校准图案366a,并且2d图案2是指图3d的2d校准图案366b。可以使用由变换函数描述的这个空间关系,以便在公共坐标系中表达虚构平面的信息。作为确定的示例,控制电路111可以基于确定上面描述了的确定。在一个示例中,的确定可以涉及求解等式:

在上面的等式中,[u,v]可以指2d校准图案n的图案元素(例如,366a或366b)出现在校准图像中的像素坐标,并且k相机1可以是第一相机170/370的投影矩阵。校准图像可以是在步骤201中接收到的第一组校准图像中的一个。另外,坐标[x,y,z]可以是该图案元素在2d校准图案n的坐标系(也称为2d校准图案n的图案坐标系)中的定义坐标。如上所述,可以确定以便确定2d校准图案366a(标记为2d图案1)和2d校准图案366b(标记为2d图案2)之间的空间关系。在一个示例中,2d校准图案366a和2d校准图案366b之间的空间关系可以基于以下等式确定:

在上面的示例中,变换函数还可以描述图3d的多面体362的面362a与面362b之间的空间关系,因为2d校准图案366a设置在面362a上,并且2d校准图案366b设置在面362b上。在一个示例中,如上所述,可以描述面362a和面362b之间的90度旋转。在实施例中,控制电路111还可以以与上述类似的方式确定中的一个或多个(其中2d图案3、4和5分别指2d校准图案366c-366e)或确定2d校准图案的一些其它组合之间的变换函数。

在实施例中,控制电路111可以使用多面体(例如,多面体362)的第一组面(例如,面366a-366e)之间的空间关系来确定多面体的第一组角(例如,顶角)的一组坐标。这些坐标可以用于确定多面体的其它角(例如,底角)的坐标。例如,空间关系可以通过变换函数,诸如通过来描述,并且第一组角可以是图3d的多面体362的面362a的角。在这个示例中,控制电路111可以确定识别由面362a定义的第一虚构平面的信息、确定识别由面362b定义的第二虚构平面的信息,并确定识别由图3d的面362c定义的第三虚构平面的信息,如上所述。在实施例中,控制电路可以使用以便在公共坐标系(诸如作为2d校准图案366a的图案1的坐标系)中表达上述信息。更具体而言,当控制电路111确定识别第二虚构平面的信息时,该信息可以最初相对于图案2的坐标系表达,图案2是设置在面362b上的2d校准图案366b。类似地,当控制电路111确定识别第三虚构平面的信息时,该信息可以最初相对于图案3的坐标系表达,图案3是设置在面362c上的2d校准图案366c。控制电路111可以将或其逆应用到(例如,乘以)识别第二虚构平面的信息,以便将该信息(例如,法线向量或描述虚构平面的等式)从在2d校准图案366b的坐标系中表达转换为在2d校准图案366a的坐标系中表达。控制电路111还可以将或其逆应用到识别第三虚构平面的信息,以便将该信息从在2d校准图案366c的坐标系中表示转换为在2d校准图案366a的坐标系中表达。

在实施例中,在识别第一虚构平面、第二虚构平面和第三虚构平面的信息相对于公共坐标系(诸如2d校准图案366a的坐标系)表达之后,控制电路111可以被配置为确定第一虚构平面、第二虚构平面和第三虚构平面相交处的坐标。该坐标可以是第一组角中的一个(例如,面362a的直接位于图3c的角364b上方的角)的位置。在实施例中,该相交的确定可以在控制电路111已经确定识别第四虚构平面和第五虚构平面的信息之后进行,如下面更详细讨论的。

更具体而言,在上面的示例中,第一虚构平面、第二虚构平面和第三虚构平面可以由多面体362的第一组面362a-362e中的第一面362a、第二面362b和第三面362c定义,或者更一般地与它们共面。在实施例中,控制电路111可以被配置为确定识别第四虚构平面的信息,该第四虚构平面由多面体(例如,362)的第一组面362a-362e的第四面362d定义,或者更一般地与其共面。该确定可以基于3d校准图案360的多面体362的定义的维度“d”。如上所述,定义的维度“d”可以是多面体362的3d模型的一部分。3d模型可以指示例如多面体362是立方体。控制电路111可以确定,因为多面体362是具有维度“d”的立方体,因此第四面362d与第一面362a平行,并且与第一面362a分开等于定义的维度“d”的距离。然后,控制电路111可以将第四虚构平面确定为平行于第一虚构平面并且与第一虚构平面分开等于维度“d”的距离的虚构平面。

类似地,控制电路111可以被配置为确定识别第五虚构平面的信息,该第五虚构平面由(图3e的)第五面362e定义,或者更一般地与其共面。例如,控制电路可以确定,因为多面体362是具有维度“d”的立方体,因此第五面362e与第三面362c平行,并且与第三面362c分开等于维度“d”的距离。然后,控制电路111可以将第五虚构平面确定为与第三虚构平面平行并且与第三虚构平面分开等于维度“d”的距离的虚构平面。

在实施例中,控制电路111可以确定第一虚构平面至第五虚构平面彼此相交的点的坐标,其中每个点是第一虚构平面至第五虚构平面当中的至少三个虚构平面的交点。在上述示例中,第一虚构平面至第五虚构平面可以具有至少四个相交的点,其中每个相交的点是这些虚构平面中的至少三个虚构平面的交点。这四个相交的点可以与多面体362的面36a的四个角重合。这四个角可以是上述的第一组角。在实施例中,这四个角可以是多面体362的一组顶角。在实施例中,控制电路111最初在例如作为2d校准图案366a的图案1的坐标系中确定上述坐标。控制电路111可以被配置为使用将这些坐标从在图案1的坐标系中转换为在第一相机170/370的坐标系中。这些坐标可以被认为是附加的一组坐标,其可以用于在步骤205中确定多面体的附加面(例如,362f)的角的第一组坐标。

更具体而言,返回参考步骤205,在实施例中,控制电路111可以基于上面针对第一组角确定的坐标来确定3d校准图案160/360的多面体(例如,362)的附加面(例如,面362f)的一组相应角的第一组坐标。例如,步骤205中的附加面的相应角(例如,角364a-364d)可以是多面体(例如,多面体362)的底角,而上述第一组角(例如,面362a的角)可以是多面体的顶角。在一些情况下,第一组角的坐标可以被称为附加的一组坐标或者被称为第三组坐标。在这种情况下,控制电路111可以被配置为基于第一组角(例如,顶角)的附加的一组坐标或第三组坐标并且基于3d校准图案360的多面体(例如,362)的定义的维度来确定附加面的角(例如,底角)的第一组坐标。

例如,控制电路111可以被配置为将针对多面体的附加面的角的第一组坐标确定为如下的一组坐标,该组坐标中的每个坐标与附加的一组坐标的相应坐标分开等于定义的维度“d”的距离。例如,如果附加的一组坐标包括3d校准图案360的校准图案366a的坐标系中的坐标[x1,y1,z1]、[x2,y2,z2]、[x3,y3,z3]、[x4,y4,z4],则控制电路111可以将第一组坐标的对应坐标确定为也在校准图案366a的坐标系中等于[x1,y1,z1-d]、[x2,y2,z2-d]、[x3,y3,z3-d]、[x4,y4,z4-d]。在这样的示例中,控制电路111可以被配置为将[x1,y1,z1-d]、[x2,y2,z2-d]、[x3,y3,z3-d]、[x4,y4,z4-d]中的每一个乘以或其逆,以便将这些坐标从在校准图案366a的坐标系中转换为在第一相机370的坐标系中。

返回图2,方法200还可以包括步骤207,其中控制电路111可以基于在步骤203中接收到的第二组一个或多个校准图像确定用于表示多面体(例如,362)的附加面(例如,362f)的一组相应角(例如,364a-364d)相对于第二相机180/380的位置和朝向的第二组坐标。在实施例中,第二组坐标可以在第二相机180/380的坐标系中。如下面关于步骤209更详细地讨论的,控制电路111可以被配置为通过确定将第一组坐标转换为第二组坐标(反之亦然)的变换函数来确定第一相机170/370和第二相机180/380之间的空间关系。可以从第一组校准图像中的至少一个校准图像确定第一组坐标,并且可以从第二组一个或多个校准图像中的一个或多个对应校准图像确定第二组坐标。如以上所讨论的,如果3d校准图案160/360在获取由第一相机170/370获取的校准图像和由第二相机180/380获取的校准图像的时间之间相对于两个相机保持静止,则这两个校准图像可以彼此对应。在这个实施例中,控制电路111可以通过识别在第二组校准图像之一中出现该组相应角(例如,364a-364d)处的像素坐标(例如,四个像素坐标),并且将逆投影矩阵应用于这些像素坐标以确定相应角在第二相机180/380的坐标系中的对应坐标来确定第二组坐标。在实施例中,控制电路111可以对第二组一个或多个校准图像中的每个校准图像执行步骤207。

在实施例中,如果第二组一个或多个校准图像包括由第二相机180/380以第一照明条件获取的第一校准图像(例如,图5a的400)和由第二相机180/380以第二照明条件获取的第二校准图像(例如,图5b的450)的至少一个对,则可以使用该对的第一校准图像和该对的第二校准图像两者来执行步骤207。如果第二组一个或多个校准图像包括多对相应的第一校准图像和相应的第二校准图像,则可以使用每一对的相应第一校准图像和该对的相应第二校准图像对该对执行步骤207。图5c和图5d图示了这种实施例的示例。更具体而言,图5c描绘了由第二相机180/380以第一照明条件获取的第一校准图像400的一部分,并且图5d描绘了由第二相机180/380以第二照明条件获取的第二校准图像450的一部分。在这个示例中,控制电路111可以基于图5b和图5d的第二校准图像450确定其中附加2d校准图案(例如,2d校准图案366f)的相应角出现在由第二相机180/380获取的一对图像中的第二校准图像450中的一组像素区域。例如,图5d描绘了控制电路111已确定其中出现(图3e的)附加校准图案366f的四个相应角的一组像素区域480a-480d的示例。在实施例中,控制电路111可以将该组像素区域480a-480d确定或以其它方式识别为第二校准图像450中靠近出现在第二校准图像450中的相应外围图案元素(例如,外围点)的区域。在一些情况下,外围图案元素可以是这样的图案元素,即,该图案元素在其至少一侧上没有相邻的图案元素,或者在其多个侧上没有相邻的图案元素。例如,图5d描绘了出现在第二校准图像450中的外围图案元素482a-482d,其中外围图案元素482-482d中的每一个在该外围图案元素的至少两侧上没有相邻的图案元素。在一些情况下,如图5d所示,像素区域480a-480d中的每一个可以具有定义的尺寸,和/或可以与相应的外围图案元素482a-482d分开定义的距离。在其它情况下,像素区域480a-480d中的每一个可以包涵相应的外围图案元素482a-482d。

在实施例中,当控制电路111已经识别或以其它方式确定图5d的第二校准图像450中的像素区域480a-480d时,控制电路可以也在该组像素区域480a-480d内搜索图5c的第一校准图像400,以识别附加面(例如,362f)的一组相应角(例如,图3c的364a-364d)出现在由第二相机180/380获取的该一对图像的第一校准图像400处的像素坐标。例如,如果控制电路111从该对图像的第二校准图像450确定像素区域之一是由像素[u1,v1]、[u2,v2]、[u3,v3]、[u4,v4]界定的矩形区域,则控制电路111可以在该对图像的第一校准图像400中搜索相同的矩形区域(即,由像素[u1,v1]、[u2,v2]、[u3,v3]、[u4,v4]界定的区域),以识别多面体的附加面的相应角中的一个角的像素坐标[ua,va]。

在实施例中,步骤207中的一组相应角的第二组坐标是基于在由第二相机180/380获取的一对校准图像的第一校准图像(例如,400)中出现该组相应角处的像素坐标来确定的。例如,如上所述,控制电路111可以识别多面体的附加面的相应角之一的像素坐标[ua,va]。在这个示例中,控制电路111然后可以基于计算的结果确定第二组坐标中的一个[x'y'z']。

涉及使用利用不同的相应照明条件获取的一对校准图像的上述实施例可以提高确定附加面的相应角的像素坐标的鲁棒性。例如,参考图5a-5d,该对中的第一校准图像400可以包括由于由平台150/350的透明材料或者由一些其它成像误差来源引起的失真导致的成像误差。在一些情况下,成像误差可能导致第一校准图像400的一些部分错误地出现为3d校准图案160/360的多面体的面的角。但是,控制电路111可以通过将其搜索限制为仅从该对的第二校准图像450识别出的那些像素区域来避免错误地将这些部分识别为多面体的面的角。第二校准图像450可以通过依赖于在第二校准图像450中可见的点或其它图案元素并且仅搜索这些图案元素中的一些图案元素旁边或周围的区域来允许以足够的准确度识别像素区域,以检测多面体的面的角。因此,使用以第一照明条件获取的第一校准图像400和以第二照明条件获取的第二校准图像450的组合可以提高确定3d校准图案160/360的附加面的相应角的像素坐标的鲁棒性。

在实施例中,步骤207可以包括基于来自图5b和图5d的第二校准图像450的信息调整第二组坐标。例如,控制电路111可以基于在图5a和图5c的第一校准图像400中捕获的附加面(例如,面362f)的轮廓412确定对多面体(例如,多面体362)的附加面(例如,面362f)的一组相应角(例如,364a-364d)的第二组坐标的第一估计。作为示例,控制电路111可以将对角364-364d的坐标的第一估计确定为[a1',b1',c1']、[a2',b2',c2']、[a3',b3',c3']和[a4',b4',c4']。控制电路111可以基于对角364-364d的坐标的第一估计是否落在虚构平面上来调整该第一估计,其中该虚构平面是基于出现在第二校准图像450中的图案元素来确定的。更具体而言,控制电路111还可以基于在第二校准图像450中捕获的附加2d校准图案(例如,2d校准图案366f)来确定描述由多面体的附加面(例如,362f)形成的虚构平面的信息。例如,该虚构平面可以是由附加2d校准图案366f的至少三个点或其它图案元素定义的平面,其中该至少三个点不是共线的。然后,控制电路111可以确定对第二组坐标的第一估计(例如,[a1',b1',c1']、[a2',b2',c2']、[a3',b3',c3']和[a4',b4',c4'])和虚构平面之间的相应偏差量。特定估计坐标的偏差量可以是例如估计坐标和虚构平面之间的最小距离或最短距离。在这个实施例中,控制电路111可以基于对第二组坐标的第一估计和虚构平面之间的相应偏差量来确定对第二组坐标的第二估计(例如,[x1',y1',z1']、[x2',y2',z2']、[x3',y3',z3']和[x4',y4',z4'])。例如,控制电路111可以通过以减小经调整的对第二组坐标的估计和虚构平面之间的相应偏差量的方式来调整对第二组坐标的第一估计(例如,[a1',b1',c1']、[a2',b2',c2']、[a3',b3',c3']和[a4',b4',c4'])从而确定对第二组坐标的第二估计(例如,[x1',y1',z1']、[x2',y2',z2']、[x3',y3',z3']和[x4',y4',z4'])。在这个实施例中,可以在步骤209中使用对第二组坐标的第二估计,这将在下面更详细地讨论。

返回图2,方法200还可以包括步骤209,其中控制电路111可以基于第一组坐标和第二组坐标确定描述第一相机170/370和第二相机180/380之间的空间关系的变换函数。该空间关系可以描述例如第一相机170/370相对于第二相机180/380的位置和朝向,或反之亦然。在实施例中,变换函数可以是矩阵其描述作为第一相机170/370的相机1的坐标系与作为第二相机180/380的相机2的坐标系之间的线性变换。在实施例中,步骤209可以包括基于以下等式(以同构形式)确定矩阵

等式4

在以上示例中,[xyz]t可以是在步骤205中确定的第一组坐标之一,并且可以是相对于第一相机170/370的位置和朝向的(例如,在第一相机170/370的坐标系中)。例如,坐标[xyz]t可以是例如图3c的底角364a的坐标,并且可以从作为在步骤201中接收到的第一组校准图像之一(诸如图4a的校准图像500)的校准图像m确定。在这个示例中,[x'y'z']t可以是在步骤207中确定的第二组坐标之一,并且可以是相对于第二相机170/370的位置和朝向的(例如,在第二相机180/380的坐标系中)。另外,坐标[x'y'z']t可以是与由[xyz]t表示的角相同的角(例如,底角364a)的坐标,并且可以从步骤203的第二组校准图像中的与校准图像m对应的一个或多个校准图像来确定。例如,该一个或多个校准图像可以是图4a和图4b的校准图像400和450。如上所述,如果3d校准图案160/360在获取校准图像400/450和获取校准图像500的时间之间相对于第一相机170/370和第二相机180/380保持静止,则校准图像400/450可以对应于校准图像500。在实施例中,步骤209可以包括确定针对角n和校准图像m的每个组合最佳地满足上述等式的矩阵

在实施例中,变换函数(例如,)可以被称为第一变换函数。在这样的实施例中,控制电路111可以通过确定描述第一相机170/370和平台150/350之间的关系(例如,平台350的中心355)的第二变换函数(例如,)来执行相机校准。如以上所讨论的,该确定可以是用于第一相机170/370的手眼校准的一部分。

在实施例中,控制电路111可以基于第一变换函数并基于针对第一相机170/370执行了的手眼校准来执行第二相机180/380的手眼校准。例如,控制电路111可以基于第一变换函数(例如,)和第二变换函数(例如,)来确定描述第二相机180/380与平台150/350之间的关系(例如,平台350的中心355)的第三变换函数。例如,可以基于以下关系确定第三变换函数:

在实施例中,可以为具有第三相机190的系统(例如,图1d的系统100a)执行方法200。在一些情况下,第三相机190可以邻近平台150/350的第一表面152/352设置(例如,设置在其之上),并且可以指向平台150/350的第一表面152/352,其中第一表面152/352设置在第三相机190和平台150/350的第二表面354之间。在这样的实施例中,通信接口113可以与第三相机190通信,并且控制电路111还可以通过以下方式执行相机校准:经由通信接口113从第三相机190接收第三组校准图像,其中第三组校准图像也捕获多面体(例如,多面体362)的第一组面(例如,面362a-362e)和设置在第一组面上的第一组相应的2d校准图案(例如,2d校准图案366a-366e)。控制电路111可以确定附加变换函数(例如,),其中该附加变换函数描述第一相机170/370和第三相机190之间的空间关系。在一些情况下,可以基于立体校准技术来执行附加变换函数。

返回图2,方法200还可以包括步骤211,其中控制电路111可以在已执行相机校准之后并且当除3d校准图案160/360之外的物体设置在平台150/350的第一表面152/352上时生成用于表示该物体的物体3d模型(例如,点云),其中基于步骤209中的变换函数(例如,)、基于经由通信接口113从第一相机170/370接收到的物体的图像,以及基于经由通信接口113从第二相机180/380接收到的物体的图像来生成该3d模型。物体可以是例如仓库中的包裹或一件商品,或者要组装到制造工厂中的产品上的部件。在一些实现方案中,可以基于描述第一相机170/370和平台150/350之间的关系的变换函数(例如,)以及描述第二相机180/380和平台150/350之间的关系的另一个变换函数(例如,)来确定3d模型。在实施例中,控制电路111可以被配置为经由通信接口113将3d模型传送到机器人操作系统101,以便于机器人操作系统101的机器人与物体(或具有与该物体相同的形状和/或尺寸的其它3d物体)之间的交互。

各种实施例的简要描述

实施例1涉及包括通信接口和控制电路的计算系统。通信接口被配置为与以下各项通信:(i)第一相机,(ii)第二相机,以及(iii)用于旋转透明的并且设置在第一相机和第二相机之间的平台的致动器,其中第一相机指向平台的第一表面,并且第二相机指向平台的相对的第二表面。控制电路被配置为当三维(3d)校准图案设置在平台的第一表面上时执行相机校准,其中3d校准图案包括具有多个面的多面体,所述多个面包括第一组面和不是第一组面的一部分的附加面,并且3d校准图案包括设置在第一组面的相应面上的第一组2d校准图案。相机校准通过以下方式来执行:经由通信接口从第一相机接收第一组校准图像,其中第一组校准图像捕获多面体的第一组面并且捕获分别设置在第一组面上的第一组2d校准图案,而不捕获多面体的附加面;经由通信接口从第二相机接收第二组一个或多个校准图像,其中第二组一个或多个校准图像捕获多面体的附加面;基于第一组2d校准图案确定用于表示多面体的附加面的一组相应角的第一组坐标,其中第一组坐标是相对于第一相机的位置和朝向的;基于第二组一个或多个校准图像确定用于表示多面体的附加面的所述一组相应角的第二组坐标,其中第二组坐标是相对于第二相机的位置和朝向的;基于第一组坐标和第二组坐标确定用于描述第一相机和第二相机之间的空间关系的变换函数。控制电路还被配置为在已执行相机校准之后并且当除3d校准图案以外的物体设置在平台的第一表面上时,生成用于表示该物体的3d模型,其中3d模型是基于变换函数、基于经由通信接口从第一相机接收到的物体的图像,以及基于经由通信接口从第二相机接收到的物体的图像而生成的。

实施例2包括实施例1的计算系统,其中通信接口还被配置为与以下各项通信:(i)指向平台的第一表面的第一光源,以及(ii)指向平台的第二表面的第二光源,其中平台设置在第一光源和第二光源之间。另外,第二组一个或多个校准图像包括至少一对校准图像,所述一对校准图像包括第一校准图像和第二校准图像。控制电路被配置为,当执行相机校准时:经由通信接口向第一光源和第二光源输出第一组一个或多个光源命令以使第一光源被激活并且第二光源被停用,经由通信接口向第二相机输出第一组一个或多个相机命令,以使第二相机在第一光源被激活并且第二光源被停用时生成所述至少一对校准图像中的第一校准图像,其中第一校准图像至少捕获多面体的附加面的轮廓;经由通信接口向第一光源和第二光源输出第二组一个或多个光源命令,以使第二光源被激活并且第一光源被停用,经由通信接口向第二相机输出第二组一个或多个相机命令,以使第二相机在第二光源被激活并且第一光源被停用时生成所述至少一对校准图像中的第二校准图像,其中第二校准图像捕获设置在附加面上并且是3d校准图案的一部分的附加2d校准图案。控制电路被配置为基于所述至少一对校准图像中的第一校准图像和第二校准图像来确定第二组坐标。

实施例3包括实施例2的计算系统,其中控制电路被配置为当第一相机和第一光源设置在平台的第一表面上方、第二相机和第二光源设置在平台的第二表面下方,并且3d校准图案的附加面与平台的第一表面接触时执行相机校准。

实施例4包括实施例2或实施例3的计算系统,其中控制电路被配置为,当执行相机校准时:基于所述至少一对校准图像中的第二校准图像,确定附加校准图案的相应角出现在第二校准图像中的一组像素区域;也在所述一组像素区域内搜索所述至少一对校准图像中的第一校准图像,以识别附加面的所述一组相应角在第一校准图像中出现处的像素坐标。基于所述一组相应角在第一校准图像中出现处的像素坐标来确定所述一组相应角的第二组坐标。

实施例5包括实施例2-4中任一个的计算系统,其中控制电路被配置为,当执行相机校准时:基于在所述至少一对校准图像中的第一校准图像中捕获的附加面的轮廓来确定对多面体的附加面的所述一组相应角的第二组坐标的第一估计、基于在第二校准图像中捕获的附加校准图案来确定描述由附加面形成的虚构平面的信息、确定虚构平面与对第二组坐标的第一估计之间的相应偏差量,以及基于相应偏差量确定对第二组坐标的第二估计。基于对第二组坐标的第二估计并基于第一组坐标来确定变换函数。

实施例6包括实施例1-5中任一个的计算系统,其中第一组校准图像中的每个校准图像捕获第一组2d校准图案中的至少两个2d校准图案。控制电路被配置为对于第一组校准图像中的每个校准图像:从该校准图像中提取捕获所述至少两个2d校准图案中的第一2d校准图案的第一图像部分、存储描述第一2d校准图案的图案元素的信息、通过从该校准图像移除第一图像部分来生成更新后的校准图像、从更新后的校准图像中提取捕获所述至少两个2d校准图案中的第二2d校准图案的另一个图像部分,并且存储描述第二2d校准图案的图案元素的信息,其中控制电路被配置为基于描述所述至少两个2d校准图案中的第一2d校准图案的图案元素的存储信息和描述所述至少两个2d校准图案中的第二2d校准图案的图案元素的存储信息来确定对第一相机的校准参数的估计。

实施例7包括实施例1-6中任一个的计算系统,其中控制电路被配置为,当执行相机校准时,基于第一组校准图像中的第一组2d校准图案确定用于表示多面体的3d模型。基于多面体的3d模型确定多面体的附加面的所述一组相应角的第一组坐标。

实施例8包括实施例7的计算系统,其中控制电路被配置为,当执行相机校准时,基于第一组2d校准图案确定描述由多面体的第一组面形成的各个虚构平面的信息,其中3d模型至少由描述各个虚构平面的信息来表示。

实施例9包括实施例8的计算系统,其中控制电路被配置为,当执行相机校准时,确定多面体的第一组面之间的空间关系。基于多面体的第一组面之间的空间关系确定描述各个虚构平面的信息。

实施例10包括实施例8或9的计算系统,其中多面体的附加面的所述一组角是多面体的第二组角。控制电路被配置为,当执行相机校准时,通过确定各个虚构平面中的至少三个虚构平面相交的位置来将多面体的第一组角的相应位置确定为附加的一组坐标。基于所述附加的一组坐标和多面体的定义的尺寸来确定第一组坐标。

实施例11包括实施例1-10中任一个的计算系统,其中变换函数是第一变换函数,并且其中控制电路被配置为还通过以下来执行相机校准:确定用于描述第一相机和平台的中心之间的空间关系的第二变换函数、基于第一变换函数和第二变换函数确定用于描述第二相机和平台的中心之间的空间关系的第三变换函数。

实施例12包括根据实施例1-11中任一个所述的计算系统,其中控制电路被配置为经由通信接口向平台输出一个或多个马达命令,以使平台旋转3d校准图案以相对于第一相机具有多个朝向,并且其中当3d校准图案相对于第一相机具有多个朝向时分别生成第一组校准图像。

实施例13包括实施例1-12中任一个所述的计算系统,其中通信接口被配置为与指向平台的第一表面的第三相机通信。控制电路被配置为还通过以下执行相机校准:经由通信接口从第三相机接收第三组校准图像,其中第三组校准图像也捕获多面体的第一组面和第一组相应的2d校准图案,基于第一组校准图像和第三组校准图像确定附加变换函数,其中附加变换函数描述第一相机和第三相机之间的空间关系。

实施例14涉及一种其上具有指令的非瞬态计算机可读介质,所述指令在由计算系统的控制电路执行时,使控制电路经由计算系统的通信接口接收第一组校准图像,其中通信接口被配置为与以下各项通信:(i)第一相机,(ii)第二相机,以及(iii)被配置为旋转透明的并且设置在第一相机和第二相机之间的平台的致动器,其中第一相机指向平台的第一表面,并且第二相机指向平台的相对的第二表面。第一组校准图像从第一相机接收并且当三维(3d)校准图案设置在平台的第一表面上时生成,其中3d校准图案包括具有多个面的多面体,所述多个面包括第一组面和不是第一组面的一部分的附加面,并且3d校准图案包括设置在多面体的第一组面中的相应面上的第一组2d校准图案。第一组校准图像捕获第一组面和分别设置在第一组面上的第一组2d校准图案,而不捕获多面体的附加面。指令在由控制电路执行时还使控制电路经由通信接口从第二相机接收第二组一个或多个校准图像,其中第二组一个或多个校准图像捕获多面体的附加面;基于第一组2d校准图案确定用于表示多面体的附加面的一组相应角的第一组坐标,其中第一组坐标相对于位置和朝向;基于第二组一个或多个校准图像确定用于表示多面体的附加面的所述一组相应角的第二组坐标,其中第二组坐标是相对于第二相机的位置和朝向的;基于第一组坐标和第二组坐标确定用于描述第一相机和第二相机之间的空间关系的变换函数;当除3d校准图案以外的物体设置在平台的第一表面上时生成用于表示该物体的3d模型,其中该3d模型是基于变换函数、基于经由通信接口从第一相机接收到的物体的图像,并且基于经由通信接口从第二相机接收到的物体的图像而生成的。

实施例15涉及一种用于物体扫描的方法,包括:由计算系统经由计算系统的通信接口接收第一组校准图像,其中通信接口被配置为与以下各项通信:(i)第一相机,(ii)第二相机,以及(iii)被配置为旋转透明平台的致动器,第一相机面向设置在第一相机和第二相机之间的平台的第一表面,其中第一相机指向平台的第一表面,并且第二相机指向平台的相对的第二表面。第一组校准图像从第一相机接收并且当三维(3d)校准图案设置在平台的第一表面上时生成,其中3d校准图案包括具有多个面的多面体,所述多个面包括第一组面和不是第一组面的一部分的附加面,并且3d校准图案包括设置在多面体的第一组面的相应面上的第一组2d校准图案。第一组校准图像捕获第一组面并捕获分别设置在第一组面上的第一组2d校准图案,而不捕获多面体的附加面。该方法还包括:经由通信接口从第二相机接收第二组一个或多个校准图像,其中第二组一个或多个校准图像捕获多面体的附加面;基于第一组2d校准图案确定用于表示多面体的附加面的一组相应角的第一组坐标,其中第一组坐标相对于位置和朝向;基于第二组一个或多个校准图像确定用于表示多面体的附加面的所述一组相应角的第二组坐标,其中第二组坐标是相对于第二相机的位置和朝向的;基于第一组坐标和第二组坐标确定用于描述第一相机和第二相机之间的空间关系的变换函数;当除3d校准图案以外的物体设置在平台的第一表面上时,生成用于表示该3d物体的3d模型,其中该3d模型是基于变换函数、基于经由通信接口从第一相机接收到的物体的图像,并且基于经由通信接口从第二相机接收到的物体的图像而生成的。

虽然上面已经描述了各种实施例,但是应该理解的是,它们仅作为本发明的说明和示例而给出,而不是作为限制。对于相关领域的技术人员将清楚的是,在不脱离本发明的精神和范围的情况下,可以在形式和细节上进行各种改变。因此,本发明的广度和范围不应受任何上述示例性实施例的限制,而应仅根据所附权利要求及其等同物来定义。还应该理解的是,本文所讨论的每个实施例的每个特征以及本文引用的每个参考文献的每个特征可以与任何其它实施例的特征组合使用。本文讨论的所有专利和出版物均通过引用整体并入本文。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1