CN113284083A - 执行自动相机校准的方法和系统 - Google Patents

执行自动相机校准的方法和系统 Download PDF

Info

Publication number
CN113284083A
CN113284083A CN202010602655.1A CN202010602655A CN113284083A CN 113284083 A CN113284083 A CN 113284083A CN 202010602655 A CN202010602655 A CN 202010602655A CN 113284083 A CN113284083 A CN 113284083A
Authority
CN
China
Prior art keywords
lens distortion
camera
estimate
distortion parameter
calibration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010602655.1A
Other languages
English (en)
Inventor
罗素·伊斯兰
叶旭涛
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.)
Mujin Technology
Original Assignee
Mujin Technology
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 Mujin Technology filed Critical Mujin Technology
Priority to CN202010710294.2A priority Critical patent/CN111862051B/zh
Publication of CN113284083A publication Critical patent/CN113284083A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • G06T7/0004Industrial image inspection
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/30Determination of transform parameters for the alignment of images, i.e. image registration
    • G06T7/33Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • G06T7/85Stereo camera calibration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37009Calibration of vision system, camera, adapt light level
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39008Fixed camera detects reference pattern held by end effector
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • G06T2207/30208Marker matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Quality & Reliability (AREA)
  • Studio Devices (AREA)

Abstract

提供了一种用于执行相机自动校准的系统和方法。该系统接收校准图像,并确定用于表示校准图案的多个图案元素在校准图像中出现的相应位置的多个图像坐标。该系统基于多个图像坐标和既定图案元素坐标,确定对一组镜头失真参数中的第一镜头失真参数的估计,其中,对第一镜头失真参数的估计在将该组镜头失真参数中的第二镜头失真参数估计为零时被确定,或者在不估计第二镜头失真参数的情况下被确定。在对第一镜头失真参数的估计被确定之后,该系统基于对第一镜头失真参数的估计确定对第二镜头失真参数的估计。

Description

执行自动相机校准的方法和系统
对相关申请的交叉引用
本申请要求2020年2月4日提交的题为“A Robotic System with CalibrationMechanism(具有校准机制的机器人系统)”的第62/969,673号美国临时申请的优先权,该美国临时申请的全部内容以引用的方式整体并入本文中。
技术领域
本发明涉及用于执行自动相机校准的方法和系统。
背景技术
随着自动化变得更加普遍,机器人正在更多环境中使用,诸如在仓储和制造环境中。例如,机器人可以用于将物品装载到仓库中的托盘上或从仓库中的托盘上卸下,或者用于从工厂中的传送带拾取对象。机器人的移动可以是固定的,或者可以基于输入(诸如由仓库或工厂中的相机拍摄的图像)。在后一种情况下,可以执行校准以便确定相机的性质,并确定相机与机器人所处的环境之间的关系。该校准可以被称为相机校准,并且可以基于由相机捕获的图像生成用于控制机器人的相机校准信息。在一些实现方案中,相机校准可以涉及人的手动操作,诸如手动确定相机的性质。
发明内容
本文的实施例的一个方面涉及一种计算系统,一种由该计算系统执行的方法,或一种具有用于使该计算系统执行该方法的指令的非瞬态计算机可读介质。该计算系统可以包括被配置为与具有相机视场的相机通信的通信接口,并且包括控制电路。当相机已经生成了相机视场中的校准图案的校准图像时,并且当校准图案包括在图案坐标系中具有相应的既定图案元素坐标的多个图案元素时,控制电路可以执行该方法。更具体而言,控制电路可以通过以下步骤执行相机校准:接收校准图像;确定表示多个图案元素出现在校准图像中的相应位置的多个图像坐标;基于多个图像坐标和既定图案元素坐标,确定对一组镜头失真参数中的第一镜头失真参数的估计,其中,对第一镜头失真参数的估计是在该组镜头失真参数中的第二镜头失真参数被估计为零的时候确定的,或者是在没有估计第二镜头失真参数的情况下被确定的;在对第一镜头失真参数的估计被确定之后,基于对第一镜头失真参数的估计来确定对第二镜头失真参数的估计;以及确定包括对该组镜头失真参数的相应估计的相机校准信息。
本文的实施例的一个方面涉及一种计算系统,一种由该计算系统执行的方法,或一种具有用于使该计算系统执行该方法的指令的非瞬态计算机可读介质。该计算系统可以包括被配置为与具有第一相机视场的第一相机和具有第二相机视场的第二相机通信的通信接口,并且包括控制电路。当具有多个图案元素的校准图案在第一相机视场中并在第二相机视场中或已经在第一相机视场中并已经在第二相机视场中时,并且当第一相机已经生成了校准图案的第一校准图像并且第二相机已经生成了校准图案的第二校准图像时,控制电路可以执行该方法。更具体而言,控制电路可以执行以下操作:接收第一校准图像;接收第二校准图像;确定对用于描述第一相机和第二相机之间的空间关系的变换函数的估计;基于第一校准图像,确定描述多个图案元素相对于第一相机的相应位置的第一多个坐标;基于第二校准图像,确定描述多个图案元素相对于第二相机的相应位置的第二多个坐标;基于对变换函数的估计,将第二多个坐标变换为相对于第一相机的多个经变换的坐标;确定描述第一多个坐标和多个经变换的坐标之间的相应差异的误差参数值。
附图说明
本发明的前述和其它特征、目的和优点将从如附图所示的本发明实施例的以下描述中变得清楚。并入本文并形成说明书的一部分的附图还用于解释本发明的原理并使相关领域的技术人员能够制造和使用本发明。附图不按比例绘制。
图1A-1C描绘了根据本文的实施例的在其中执行相机校准的系统的框图。
图2描绘了根据本文的实施例的用于确定相机校准信息的计算系统。
图3A和图3B描绘了根据本文的实施例的相机校准中涉及的相机的模型。
图4A和图4B描绘了根据本文的实施例的在其中执行相机校准的示例系统。
图4C描绘了根据本文的实施例的校准图案的示例。
图5提供了图示根据本文的实施例的用于估计固有相机校准参数的方法的流程图。
图6A-6E图示了根据本文的实施例的示例校准图像。
图7A至图7B图示了根据本文的实施例的具有用于估计相机校准参数的多个阶级(stages)的示例流水线(pipeline)。
图8图示了根据本文的实施例的具有用于估计相机校准参数的多个阶级的示例流水线。
图9A至图9C图示了根据本文的实施例的具有包括弯曲减小阶级(curvaturereduction stage)的多个阶级的示例流水线。
图10-11图示了根据本文的实施例的具有用于估计相机校准参数的多个阶级的示例流水线。
图12A至图12B图示了根据本文的实施例的具有用于估计相机校准参数的多个阶级的示例流水线。
图13A至图13B描绘了根据本文的实施例的用于执行立体校准(stereocalibration)的示例系统。
图14描绘了图示根据本文的实施例的用于确定立体校准信息的方法的流程图。
图15A和15B描绘了根据本文的实施例的示例校准图像。
图16A和图16B描绘了根据本文的实施例的根据对变换函数的估计来确定的经变换的坐标的示例。
图17A至图17D描绘了根据本文的实施例的确定重投影误差(re-projectionerror)或重构误差(reconstructionerror)的示例。
图18A至图18D描绘了根据本文的实施例的确定重构误差角的示例。
具体实施方式
以下详细描述本质上仅是示例性的,并不意图限制本发明或本发明的应用和用途。另外,无意受前述技术领域、背景技术、发明内容或以下具体实施方式中给出的任何明示或暗示的理论的约束。
本申请的一个方面涉及提高相机校准(诸如固有相机校准)的准确度。在实施例中,固有相机校准可以涉及确定对镜头失真参数和/或投影参数的相应估计。在一些实现方案中,用于相机校准操作的所有镜头失真参数可以在单个阶级中被估计。然而,在单个阶级中确定对镜头失真参数的相应估计可能降低这样的估计的准确度,因为由镜头失真引入的非线性可能是复杂的并且难以准确地近似。因此,本申请的一个方面涉及在多个阶级(也被称为多轮次)中估计镜头失真参数。
在一些情况下,多个阶级可以被布置为一系列阶级,并且由一个阶级输出的估计可以被用作下一阶级的初始估计或其他输入。在一些情况下,多个阶级中的一个或多个阶级可以对相机校准中使用的镜头失真模型(和/或投影模型)应用简化。例如,多个阶级中的第一阶级可以假设一些镜头失真参数具有可忽略的影响,并且在该阶级可以被忽略,诸如通过在该阶级将这样的镜头失真参数设置为零,或者通过使用简化的失真函数。在一些情况下,多个阶级中的较早阶级可能使用较简单的镜头失真模型来聚焦于对例如占镜头失真很大一部分或很大分量的镜头失真参数进行估计,而较后阶级可能增加镜头失真模型的复杂度来估计更多数量的镜头失真参数,这些参数可能占镜头失真的剩余部分。在一些情况下,较后阶级可以将特定的(一个或多个)相机校准参数(例如,镜头失真参数或投影参数)的值固定,以便聚焦于更新对其他相机校准参数(例如,其他镜头失真参数)的相应估计。
本申请的一个方面涉及提高立体相机校准的准确度,并且更具体而言涉及确定表征立体相机校准中的误差量的误差参数值,以及通过减小误差参数值来提高立体相机校准的准确度。在一些情况下,执行立体相机校准可以涉及确定对描述第一相机和第二相机之间的空间关系的变换函数的估计。在这样的情况下,误差参数值可以针对对变换函数的估计而确定。在实施例中,变换函数可以被用于确定多个经变换的坐标,该多个经变换的坐标可与另外多个坐标进行比较以确定误差参数值。如下面更详细地讨论的,误差参数值可以包括重投影误差、重构误差、重构误差角和/或一些其他误差参数值。
图1A图示了用于执行自动相机校准的系统100的框图。系统100包括计算系统110和相机170。在实施例中,系统110还可以包括校准图案160。在此示例中,相机170可以被配置为生成校准图像,该校准图像是表示校准图案160的图像,并且计算系统110可以被配置为基于校准图像执行相机校准。在实施例中,计算系统110和相机170可以位于相同的房屋(例如,相同的仓库)。在实施例中,计算系统110和相机170可以彼此远离地定位。计算系统110可以被配置为(诸如经由有线连接)直接从相机170接收校准图像,或者诸如经由位于相机170与计算系统110之间的存储设备间接从相机170接收校准图像。在实施例中,相机170可以是被配置为生成或以其他方式获取表示相机视场中的场景的图像(或更一般地,图像数据)的任何类型的图像感测设备。相机170可以是例如彩色图像相机、灰度图像相机、深度感测相机(例如飞行时间(TOF)或结构光相机)或任何其他相机(本公开中的术语“或”可以被用于指代“和/或”)。
在实施例中,系统100可以是机器人操作系统100A,其在图1B中被描绘。机器人操作系统100A包括计算系统110、相机170和校准图案160被部署在其上的机器人150。在一些情况下,计算系统110可以被配置为控制机器人150,并且在那些情况下可以被称为机器人控制系统或机器人控制器。在实施例中,机器人操作系统100A可以位于仓库、制造工厂或其它房屋内。如上所述,计算系统110可以被配置为诸如通过确定相机校准信息来执行相机校准。在图1B的示例中,相机校准信息可以稍后被用于控制机器人150。在一些情况下,图1B中的计算系统110被配置为执行相机校准并基于校准信息控制机器人150。在一些情况下,计算系统110可以专用于执行相机校准,并且可以将校准信息传送到专用于控制机器人150的另一计算系统。例如,机器人150可以基于由相机170生成的图像以及相机校准信息被定位。在一些情况下,计算系统110可以是获取相机170所处的环境的图像的视觉系统的一部分。机器人150可以是例如拆箱机器人、卸垛机器人或任何其他机器人。
在实施例中,图1B的计算系统110可以被配置为经由有线或无线通信与机器人150和/或相机170进行通信。例如,机器人控制系统110可以被配置为经由RS-232接口、通用串行总线(USB)接口、以太网接口、
Figure BDA0002559601630000061
接口、近场通信(NFC)接口、IEEE 802.11接口、IEEE1394接口或其任意组合与机器人150和/或相机170通信。在实施例中,计算系统110可以被配置为经由本地计算机总线(诸如外围组件互连(PCI)总线或小型计算机系统接口(SCSI)总线)与机器人150和/或相机170通信。
在实施例中,图1B的计算系统110可以与机器人150分离,并且可以经由上面讨论的无线或有线连接与机器人150通信。例如,计算系统110可以是独立计算机,其被配置为经由有线连接或无线连接与机器人150和相机170通信。在实施例中,计算系统110可以是机器人150的组成部件,并且可以经由上面讨论的本地计算机总线与机器人150的其它部件通信。在一些情况下,计算系统110可以是仅控制机器人150的专用控制系统(也被称为专用控制器)。在其它情况下,计算系统110可以被配置为控制包括机器人150的多个机器人。在实施例中,计算系统110、机器人150和相机170位于相同的房屋(例如,仓库)处。在实施例中,计算系统110可以远离机器人150和相机170,并且可以被配置为经由网络连接(例如,局域网(LAN)连接)与机器人150和相机170通信。
在实施例中,图1B的计算系统110可以被配置为访问和处理作为校准图案160的图像的校准图像。计算系统110可以通过从相机170或从另一源(诸如,从校准图像被存储在其上的存储设备或其他非瞬态计算机可读介质)检索或更一般地接收校准图像来访问校准图像。在一些情况下,计算系统110可以被配置为控制相机170以捕获或以其他方式生成这样的图像。例如,计算系统110可以被配置为生成相机命令,该相机命令使相机170生成捕获相机170的视场(也称为相机视场)中的场景的图像,并且经由有线或无线连接将相机命令传送到相机170。相同的命令可以使相机170还将图像(作为图像数据)传送回计算系统110,或者更一般地传送到计算系统110可访问的存储设备。替代地,计算系统110可以生成另一个相机命令,该相机命令使相机170在接收到相机命令时将其已捕获的(一个或多个)图像传送到计算系统110。在实施例中,相机170可以周期性地或者响应于既定触发条件而自动捕获其相机视场中的场景的图像,而不需要来自计算系统110的相机命令。在这样的实施例中,相机170还可以被配置为在没有来自计算系统110的相机命令的情况下自动地将图像传送到计算系统110,或者更一般地,传送到计算系统110可访问的存储设备。
在实施例中,图1B的计算系统110可以被配置为经由由计算系统110生成并通过有线或无线连接传送到机器人150的移动命令来控制机器人150的移动。移动命令可以使机器人移动校准图案160。校准图案160可以被永久地部署在机器人150上,或者可以是可以被附接到机器人150和从机器人150拆卸的单独部件。
在实施例中,计算系统110可以被配置为从多个相机接收相应的图像。例如,图1C图示了作为机器人操作系统100A的实施例的机器人操作系统100B。系统100B包括多个相机,诸如相机170和相机180。相机170、180可以是相同类型的相机,或者可以是不同类型的相机。在一些情况下,相机170、180可以具有固定的相对位置和/或相对朝向。例如,相机170、180都可以被刚性地附接到公共安装框架,这可以使两个相机170、180相对于彼此保持静止。
在实施例中,图1C的机器人控制系统110可以被配置为既从相机170接收图像又从相机180接收图像。在一些情况下,计算系统110可以被配置为控制机器人150的移动,诸如通过基于来自两个相机170、180的图像生成移动命令。在一些情况下,两个相机170、180的存在可以为计算系统110提供立体视觉。在一些情况下,计算系统110可以被配置为使用由相机170生成的图像和由相机180生成的图像来确定对象结构信息,该对象结构信息可以描述由两个图像捕获的对象的三维结构。在一些情况下,计算系统110可以被配置为对相机170和相机180两者执行相机校准,如下面更详细地讨论的。在实施例中,计算系统110可以控制两个相机170、180来捕获校准图案160的相应图像,以便执行相机校准。在这样的实施例中,计算系统110可以以与它和相机170通信的方式相同或相似的方式与相机180通信。在实施例中,机器人操作系统100B可以具有恰好两个相机,或者可以具有多于两个相机。
图2描绘了图1A-1C的计算系统110的框图。如框图所示,计算系统110可以包括控制电路111、通信接口113和非瞬态计算机可读介质115(例如,存储器)。在实施例中,控制电路111可以包括一个或多个处理器、可编程逻辑电路(PLC)或可编程逻辑阵列(PLA)、现场可编程门阵列(FPGA)、专用集成电路(ASIC)或任何其它控制电路。在一些情况下,如果控制电路111包括多个处理器,则它们可以是单个设备的一部分,或者可以跨多个设备分布。例如,如果计算系统110由单个独立设备形成,则多个处理器可以全部是该单个独立设备(例如,多处理器台式计算机)的一部分。如果计算系统110是包括多个计算设备(例如,多个台式计算机)的分布式系统,则多个处理器可以跨多个计算设备分布。
在实施例中,通信接口113可以包括被配置为与相机170和机器人150通信的一个或多个部件。例如,通信接口113可以包括被配置为通过有线或无线协议执行通信的通信电路。作为示例,通信电路可以包括RS-232端口控制器、USB控制器、以太网控制器、IEEE802.11控制器、IEEE 1394控制器、
Figure BDA0002559601630000081
控制器、NFC控制器、PCI总线或SCSI控制器、任何其它通信电路或其组合。
在实施例中,非瞬态计算机可读介质115可以包括信息存储设备,诸如计算机存储器。计算机存储器可以包括例如动态随机存取存储器(DRAM)、固态集成存储器和/或硬盘驱动器(HDD)。在一些情况下,相机校准可以通过存储在非瞬态计算机可读介质115上的计算机可执行指令(例如,计算机代码)来实现。在这样的情况下,控制电路111可以包括一个或多个处理器,该一个或多个处理器被配置为执行计算机可执行指令以执行相机校准(例如,图9中所示的步骤)。在实施例中,非瞬态计算机可读介质115可以被配置为存储由(图1A-1C的)相机170生成的一个或多个校准图像和/或由相机180生成的一个或多个校准图像。
如上所述,本申请的一个方面涉及确定图1A-1C的相机170/180的相机校准信息。图3A描绘了相机370的框图,该相机370可以是图1A-1C的相机170/180的更具体的实施例。在此实施例中,相机370可以包括一个或多个镜头371、图像传感器373和通信接口375。通信接口375可以被配置为与图1A-1C的计算系统110通信,并且可以类似于计算系统110的图2的通信接口113。
在实施例中,一个或多个镜头371可以将来自相机370外部的光(可见光或红外辐射)聚焦到图像传感器373上。在实施例中,图像传感器373可以包括像素的阵列,该像素的阵列被配置为经由相应的像素强度值来表示图像。图像传感器373可以包括电荷耦合器件(CCD)传感器、互补金属氧化物半导体(CMOS)传感器、量子图像传感器(QIS)或任何其它图像传感器。在实施例中,图像传感器373可以定义图像平面,该图像平面可以是与图像传感器的表面重合的二维(2D)平面。
在实施例中,相机校准信息可以包括一个或多个相机校准参数,或更具体而言,一个或多个相机校准参数的一个或多个相应值。相机校准参数可以包括固有相机校准参数(也被简称为固有校准参数),其可以描述相机170/370的一个或多个固有性质。在一些情况下,一个或多个固有相机参数可各自具有独立于相机170/370的位置和朝向的值。在实施例中,相机校准参数可以包括描述相机170/370与其外部环境之间的关系的参数。例如,这些参数可以包括手眼校准(hand-eye calibration)参数和/或立体校准参数。手眼校准参数可以描述例如相机170/370和机器人150之间的空间关系。在一些情况下,手眼校准参数可以包括描述相机170/370的坐标系与世界坐标系之间的相对位置和相对朝向的变换函数,该世界坐标系可以是基于机器人150定义的坐标系。在实施例中,立体校准参数可以描述例如相机170/370和任何其他相机(诸如相机180)之间的空间关系。在一些情况下,立体校准参数可以包括描述相机170/370的坐标系与另一个相机180的坐标系之间的相对位置和相对朝向的变换函数。在一些情况下,相机校准信息可以包括描述相机170/370和(图1A-1C的)校准图案160之间的空间关系或者描述相机180和校准图案之间的空间关系的变换函数。
在实施例中,固有相机校准参数可以包括投影参数。投影参数可以描述与相机相关联的相机图像投影。相机图像投影可以是指相机视场中的位置如何被投影到相机的图像传感器(例如373)上。例如,图3B图示了在相机370A外部并且在相机370A的视场中的位置
Figure BDA0002559601630000101
(上标T表示转置,并且下标“相机”表示X、Y和Z坐标分量是在相机坐标系中表达的)。更具体而言,相机370A可以是相机370的实施例,并且可以包括一个或多个镜头371A和图像传感器373A。此示例中的相机坐标系可以是关于相机370A的位置和朝向定义的坐标系。更具体地,图3B描绘了要由正交坐标轴
Figure BDA0002559601630000102
定义的相机坐标系,这些正交坐标轴可以与相机370A的各种部件的朝向对准。在实施例中,来自位置
Figure BDA0002559601630000103
的光可以被投影到图像传感器坐标系上的图像坐标
Figure BDA0002559601630000104
(例如,像素坐标)上。如图3B所示,在示例中,图像传感器坐标系可以由可以与图像传感器373A的相应边缘对准的坐标轴
Figure BDA0002559601630000105
来定义。在实施例中,位置
Figure BDA0002559601630000106
被投影到图像坐标
Figure BDA0002559601630000107
上的方式可以通过投影矩阵K来建模。K可能是一个函数,或更具体而言是一个线性变换,其基于关系
Figure BDA0002559601630000108
来将位置
Figure BDA0002559601630000109
转换为图像坐标
Figure BDA00025596016300001010
此关系可以忽略镜头失真的影响(镜头失真将在下面更详细地讨论)。
在一个示例中,投影矩阵可以等于
Figure BDA00025596016300001011
在此示例中,fx可以是基于图3B的焦距f以及图像传感器373A沿着
Figure BDA00025596016300001012
轴的像素尺寸的第一比例因子。类似地,fy可以是基于相机370A的焦距f以及图像传感器373A沿着
Figure BDA00025596016300001013
轴的像素尺寸的第二比例因子。在一些情况下,fx可以被认为是相机370A沿着
Figure BDA00025596016300001014
轴的焦距,而fy可以被认为是相机370A沿着
Figure BDA0002559601630000111
轴的焦距。fx和fy两者都可以具有每毫米像素的单位,并且可以使物理测量结果与图像传感器373A上的像素数量相关。值Cx可以是主点(principal point)偏移的第一部分,并且可以基于图像传感器坐标系的原点与相机坐标系的原点之间沿着
Figure BDA0002559601630000112
轴的距离。值Cy可以是主点偏移的第二部分,并且可以基于图像传感器坐标系的原点与相机坐标系的原点之间沿着
Figure BDA0002559601630000113
轴的距离。在一些情况下,Cx和Cy可以分别描述在由相机371A生成的图像的中心与图像传感器坐标系的原点之间沿着
Figure BDA0002559601630000114
轴和
Figure BDA0002559601630000115
轴的相应偏移。
在以上示例中,投影矩阵K可以被认为是投影参数,并且fx、fy、Cx和Cy中的每一个可以是投影矩阵的分量。此外,分量fx、fy、Cx、Cy和焦距f中的每一个也可以被认为是投影参数。在这样的示例中,对投影矩阵K的估计可以是矩阵,而对fx、fy、Cx或Cy的估计(也被称为估计值)可以是标量值。
在实施例中,固有相机校准参数可以包括镜头失真参数,其可以描述与相机170/370/370A或相机180相关联的镜头失真。例如,一个或多个镜头失真参数可以表征由一个或多个镜头371A引起的镜头失真(诸如径向镜头失真(例如,桶形失真或枕形失真)和/或切向镜头失真)的影响。在实施例中,一个或多个镜头失真参数中的每一个可以是表征或以其他方式描述镜头失真的镜头失真模型的参数。例如,镜头失真模型可以是多项式失真模型、合理失真模型或视场失真模型,这将在下面更详细地讨论。
在实施例中,镜头失真模型可以包括表征镜头失真的一个或多个函数,也被称为一个或多个失真函数。在这样的实施例中,镜头失真参数可以是该一个或多个失真函数的参数。更具体而言,相机的镜头失真可以使用一个或多个失真函数来建模,该一个或多个失真函数描述相机的一个或多个镜头(例如371A)如何使实际上位于相机视场中的
Figure BDA0002559601630000116
处的特征看起来好像该特征反而处于
Figure BDA0002559601630000117
处。镜头失真可能使相机视场中的位置与图像传感器(例如373A)上的像素位置之间的关系变得非线性。作为示例,当预测位置
Figure BDA0002559601630000118
将被投影到的像素[u v]T时,第一失真函数dx和第二失真函数dy可以被用来考虑镜头失真,诸如通过使用以下等式:
Figure BDA0002559601630000121
在以上示例中,
Figure BDA0002559601630000122
可以是指X/Z,并且
Figure BDA0002559601630000123
可以是指Y/Z。第一失真函数dx可以是例如将
Figure BDA0002559601630000124
确定为
Figure BDA0002559601630000125
Figure BDA0002559601630000126
的函数的非线性函数。第二失真函数dy可以是例如将
Figure BDA0002559601630000127
确定为
Figure BDA0002559601630000128
Figure BDA0002559601630000129
的函数的非线性函数。镜头失真在题为“Method and System for Performing AutomaticCamera Calibration for Robot Control(执行自动相机校准以进行机器人控制的方法和系统)”的第16/295,940号美国专利申请中被详细地讨论,该美国专利申请的全部内容以引用的方式整体并入本文中。
如上所述,镜头失真模型的示例包括多项式失真模型、合理失真模型或视场失真模型。在实施例中,多项式失真模型可以单独或与一些其他类型的镜头失真(例如,切向镜头失真)一起用于表征径向镜头失真。在一些情况下,多项式失真模型的失真函数dx和dy可以是:
Figure BDA00025596016300001210
Figure BDA00025596016300001211
在以上示例中,
Figure BDA00025596016300001212
此外,k1、k2、k3、p1、p2可以各自是镜头失真参数。在一些情况下,上述镜头失真参数中的一些或所有镜头失真参数具有标量值。
在实施例中,k1、k2和k3可以是描述径向镜头失真的相应系数,径向镜头失真可以是由一个或多个镜头(例如371A)弯折或折射光引起的一种类型的镜头失真。更具体而言,k1、k2和k3可以分别描述第一多项式分量k1r2、第二多项式分量k2r4和第三多项式分量k3r6。这些多项式分量可以被称为径向多项式分量,因为它们描述了径向镜头失真,并且因为它们基于项r。项r可以指示位置
Figure BDA0002559601630000131
与相机(例如370A)的一个或多个镜头(例如371A)的中心轴之间的距离。例如,中心轴可以是由矢量[0 0 Z]T 相机定义的光轴,并且项r可以等于或基于
Figure BDA0002559601630000132
与[0 0 Z]T 相机之间的距离。r的增加值可能指示从
Figure BDA0002559601630000133
反射的光将沿着更加远离一个或多个镜头(例如371A)的中心的路径传播,这可能导致更多的径向镜头失真。
在实施例中,以上讨论的径向多项式分量可以描述不同阶数(degree)的径向镜头失真,也被称为不同阶次(order)的径向镜头失真。例如,第一径向多项式分量k1r2可以被认为具有阶数2(由于r2项),并且在一些情况下可以被称为二阶径向失真效应。第二径向多项式分量k2r4可以被认为具有阶数4(由于r4项),并且在一些情况下可以被称为四阶径向失真效应。第三径向多项式分量k3r6可以被认为具有阶数6(由于r6项),并且在一些情况下可以被称为六阶径向失真效应。在此示例中,第一径向多项式分量k1r2可以是多个径向多项式分量(k1r2、k2r4、k3r6)中最低阶数的径向多项式分量,并且可以描述最低阶数的径向多项式分量(也被称为描述最低阶次的径向失真效应或径向镜头失真的最低阶次的分量)。例如,第一径向多项式分量可以描述径向镜头失真的第二阶分量,因为它具有r2项。在此示例中,第二径向多项式分量k2r4可以描述径向镜头失真的相对于第一径向多项式分量的更高阶数的分量(例如,四阶分量)。在此示例中,第三径向多项式分量可以是多个径向多项式分量(k1r2、k2r4、k3r6)中的最高阶数的多项式分量,并且可以描述多个径向多项式分量当中的径向镜头失真的最高阶次的分量。
在以上示例中,p1和p2(例如,等式2和等式3)可以是描述切向镜头失真的相应系数,切向镜头失真可以是使得图像中的特征伸展的一种类型的镜头失真。切向镜头失真可能是由例如一个或多个镜头(例如371A)未与相机(例如370A)的图像传感器(例如373A)完全平行而引起的。换句话说,当一个或多个镜头(例如371A)的光轴不完全与图像传感器(例如373A)的平面正交时,可能出现切向镜头失真。更具体而言,镜头失真参数p1可以描述第一失真函数dx中的切向多项式分量
Figure BDA0002559601630000141
和第二失真函数dy中的切向多项式分量
Figure BDA0002559601630000142
镜头失真参数p2可以描述第一失真函数dx中的切向多项式分量
Figure BDA0002559601630000143
并且描述第二失真函数dy中的切向多项式分量
Figure BDA0002559601630000144
在实施例中,合理多项式模型还可以用于表征径向镜头失真或一些其他类型的失真,并且可以包括以下失真函数dx和dy
Figure BDA0002559601630000145
Figure BDA0002559601630000146
与涉及多项式失真模型的示例类似,合理失真模型中
Figure BDA0002559601630000147
Figure BDA0002559601630000148
此外,k1、k2、k3、k4、k5、k6、p1和p2中的每一个可以是合理失真模型的镜头失真参数。镜头失真参数k1、k2、k3、k4、k5、k6可以描述径向失真,而镜头失真参数p1和p2可以描述切向失真。
在实施例中,视场模型可以包括以下失真函数:
Figure BDA0002559601630000149
Figure BDA00025596016300001410
在以上示例中,
Figure BDA00025596016300001411
此外,ω是镜头失真参数,并且可以具有标量值。
如上所述,估计固有相机校准参数(诸如图1A-1C和3A-3B中相机170/370/370A的镜头失真参数和/或投影参数)的值可能涉及使用相机170/370/370A以生成捕获或以其他方式表示校准图案160的一个或多个校准图像。图4A和4B图示了在其中生成校准图像的更具体的环境。更具体而言,图4A和4B描绘了机器人操作系统400,该机器人操作系统400可以是(图1B和1C的)机器人操作系统100A或100B的实施例。机器人操作系统400包括计算系统110、机器人450和相机470。此外,校准图案460可以被部署在机器人450上。机器人450、相机470和校准图案460可以分别为(图1A-1C的)机器人150、相机170和校准图案160的实施例。在实施例中,如果系统400除了相机470之外还包括相机,则相机470可以被称为第一相机470。
在图4A的实施例中,机器人450可以包括基座452和相对于基座452可移动的机器人臂454。机器人臂454可以包括一个或多个连杆,诸如连杆454A至连杆454E。在实施例中,基座452可以用于将机器人450安装到例如安装框架或安装表面(例如仓库的地板)上。在实施例中,机器人450可以包括多个电动机或被配置为通过旋转或以其他方式致动连杆454A-454E来移动机器人臂454的其他致动器。在一些情况下,机械臂454可以包括附接到连杆454A-454E之一的末端执行器,诸如机器人手。校准图案460可以被部署在末端执行器上或者在连杆之一(例如454E)上。在实施例中,连杆454A-454E可以彼此可旋转地附接,并且可以串联连接以例如形成运动链,该运动链(诸如通过多个电动机的旋转)能够将校准图案460移动到相机470的相机视场410中的不同姿态。不同的姿态可以是指校准图案460的相应位置和相应朝向的不同组合。例如,图4A图示了机器人臂454将校准图案460移动到第一姿态,而图4B图示了机器人臂454将校准图案460移动到不同于第一姿态的第二姿态。
在一些情况下,对镜头失真参数和/或投影参数的相应估计可以被用来执行手眼校准,这可能涉及确定其他相机校准信息,诸如描述相机470与机器人450之间关系的变换函数。例如,图4B图示了由
Figure BDA0002559601630000151
定义的相机坐标系和由
Figure BDA0002559601630000152
定义的世界坐标系。世界坐标系可以是相对于机器人450的基座452静止的点。在图4B的示例中,手眼校准可以涉及确定描述相机坐标系和世界坐标系之间的相对位置和相对朝向的变换矩阵。
在实施例中,校准图案460可以被直接印刷在机械臂454上。在实施例中,如图4A和4B所示,校准图案460可以被印刷在平坦的校准板上。校准板可以由耐温度引起的翘曲的材料(诸如碳纤维)形成。图4C描绘了校准图案460的示例,其可以包括沿着矩形网格的假想直线网格线(4631至4635和4651至4655)布置的多个图案元素4611至46125。例如,假想网格线可以包括第一组均匀间隔的直线4631至4635,以及第二组均匀间隔的直线4651至4655,其中第一组假想网格线4631至4635与第二组假想网格线4651至4655正交。在图4C的示例中,图案元素4611至46125中的每一个可以是圆点。在实施例中,图案元素4611至46125的尺寸可以不同。例如,图案元素4618、46113和46114具有第一直径,而所有剩余图案元素具有小于第一直径的第二直径。在实施例中,多个图案元素4611至46125具有既定的(一个或多个)尺寸和它们之间既定间隔。例如,第一直径和第二直径可以是由校准图案460的制造者在其制造之前或制造期间定义的值,并且因此在相机校准期间可以是已知的预定义值。另外,多个图案元素4611至46125沿着网格线4651至4655可以具有既定距离Δd1(其也可以是预定义的距离),并且沿着网格线4631至4635具有既定距离Δd2,其中这些既定距离在相机校准期间可以是已知值。在实施例中,Δd1等于Δd2。在实施例中,图案元素4611至46125可以全部具有相同的尺寸(例如,相同的直径),并且校准图案460还可以包括指示校准图案460的朝向的特征(例如,旋转非对称的形状)。
如上所述,图案坐标系可以关于校准图案(诸如校准图案460)来定义。在实施例中,如图4B和4C所示,在校准图案460的中心处或附近的图案元素(诸如图案元素46113)可以定义校准坐标系的原点。即,图案元素46113可以具有坐标[0 0 0]T 图案。在此实施例中,
Figure BDA0002559601630000161
轴可以与假想网格线4631至4635对准,而
Figure BDA0002559601630000162
轴可以与假想网格线4651至4655对准,并且
Figure BDA0002559601630000163
轴与由校准图案460形成的平面正交。
如上所述,本申请的一个方面涉及在不同阶级(也被称为不同阶级)中估计镜头失真参数,以便提高估计镜头失真参数的准确度。不同阶级可以是例如阶级序列,其中该序列中一个阶级的输出被用作该序列中下一个阶级的输入(例如,作为下一个阶级的初始估计)。阶级中的一个或多个阶级可以聚焦于估计特定的镜头失真参数,同时将其他镜头失真参数视为零或一些其他固定值,和/或忽略其他镜头失真参数。图5描绘了图示用于以与上述特征有关的方式估计镜头失真参数的方法500的流程图。
在实施例中,方法500由图1A至图4的计算系统110的控制电路111执行,并且可以作为执行相机校准的一部分来执行。如图2所示,计算系统110可以包括被配置为与相机(例如470)和/或与机器人(例如450)通信的通信接口113。在实施例中,方法500可以在相机(例如470)已经生成校准图像时执行。校准图像可以捕获或以其他方式表示在相机(例如470)的相机视场(例如410)中的校准图案(例如460)。如以上关于图4C所述,在此示例中,校准图案(例如460)可以包括多个图案元素(例如4611至46125)。在实施例中,该多个图案元素可以具有既定的空间布置。例如,它们可以沿着正交网格布置,并且沿着网格的相邻图案元素可以具有既定间隔。在一些情况下,间隔可以在校准图案(例如460)制造期间或制造之前被定义,在该情况下,间隔可以被称为是预定义的。
在一些情况下,图案元素(例如,4611至46125)可以在图案坐标系(其可以是关于校准图案的位置和朝向定义的坐标系)中具有相应的既定图案元素坐标。既定图案元素坐标也可以被称为既定图案元素位置,并且可以关于校准图案(例如460)的位置和朝向或更具体而言关于图案坐标系来识别图案元素(例如4611至46125)的相应物理位置。例如,既定图案元素位置或图案元素坐标可以是[X Y Z]T坐标,或更具体而言是[X1 Y1 Z1]T 图案至[X25 Y25Z25]T 图案,其定义了图案元素4611至46125在图案坐标系中的的相应物理位置。
在实施例中,图5的方法500可以包括步骤501,其中,计算系统110(或更具体而言其控制电路111)接收由相机(例如,470)生成的校准图像。在一些情况下,步骤501可能涉及计算系统110诸如经由图2的通信接口113直接从相机(例如470)接收校准图像。在一些情况下,校准图像可能已经被存储在非瞬态计算机可读介质115(例如,硬盘驱动器)中或在一些其他设备上,并且步骤501可能涉及直接从非瞬态计算机可读介质115接收校准图像。在一个示例中,在步骤501中接收的校准图像可以是图6A-6E中的校准图像680A-680E之一,校准图像680A-680E描绘了对应于例如相机视场(例如410)中的校准图案(例如460)的五个不同相应姿态的五个校准图像。在一些情况下,在步骤501中接收到的校准图像可以表现出由相机(例如470)的一个或多个镜头引入的镜头失真的影响。例如,镜头失真可以产生将弯曲(curvature)引入图像的弯折或其他翘曲效果。作为示例,图6A、6C和6E描绘了校准图像680A、680C和680E,在这些校准图像中,校准图案(例如图4C的校准图案460)看起来具有弯曲的边缘,即使校准图案(例如460)实际上具有直的边缘。
在实施例中,方法500可以包括步骤503,其中,计算系统110确定多个图像坐标(也被称为图像图案元素位置),该多个图像坐标指示或以其他方式表示多个图案元素在校准图像中出现的相应位置。例如,如图6E所示,多个图像坐标可以是分别指示图案元素4611至46125分别在校准图像中出现的位置的相应像素坐标[u1 v1]T至[u25 v25]T。在一些情况下,每个图像坐标可以是指示相应图案元素461n的中心在校准图像中出现的位置的像素坐标[un vn]T。在此示例中,图案元素4611至46125的像素坐标可以与图案元素4611至46125的对应既定图案元素坐标一起使用,以便确定相机校准信息,如以下关于步骤505至509更详细地讨论的。
更具体地,方法500的步骤505至509可以是用于估计一组投影参数和一组镜头失真参数的相机校准过程的一部分。在步骤505中,计算系统110可以基于多个图像坐标(例如,[u1 v1]T至[u25 v25]T)和既定图案元素坐标(例如,[X1 Y1 Z1]T 图案至[X25 Y25 Z25]T 图案),来确定对该组镜头失真参数中的第一镜头失真参数的估计,同时将该组镜头失真参数中的第二镜头失真参数估计为零,或者不估计第二镜头失真参数。
在实施例中,步骤505可以是第一校准阶级的一部分,在第一校准阶级中,第一镜头失真参数与第二镜头失真参数被分开估计。例如,图7A描绘了相机校准过程,其包括第一阶级(标记为阶级1),随后是第二阶级(标记为阶级2)。在一些情况下,第二阶级可以部分或完全在第一阶级之后。第一校准阶级可以聚焦于确定对第一镜头失真参数的估计,同时将第二镜头失真参数约束为固定值(例如,零),或者忽略第二镜头失真参数。与第二镜头失真参数分开地估计第一镜头失真参数可以提高对第一镜头失真参数的估计的准确度。在一些情况下,来自第一阶级的对第一镜头失真参数的估计可以被输出到第二阶级,如图7A所示,该第二阶级可以使用对第一镜头失真参数的估计来提高估计第二镜头失真参数的准确度。例如,第一阶级(也被称为第一轮次)的输出可以在第二阶级(也被称为第二轮次)中被用作第二阶级中的对第一镜头失真的初始估计(例如初始猜测)。该初始估计可以被用于确定对第二镜头失真参数的估计和/或确定对第一镜头失真参数的经更新的估计。
作为示例,方法500可以涉及估计一组镜头失真参数,该组镜头失真参数可以是指用于方法500的相机校准的镜头失真模型的所有镜头失真参数。例如,如果镜头失真模型是多项式失真模型,则该组镜头失真参数可以是k1、k2、k3、p1和p2。如果镜头失真模型是合理多项式失真模型,则该组镜头失真参数可以是k1、k2、k3、k4、k5、k6、p1和p2。在一些相机校准过程中,该组镜头失真参数可以在单个阶级(也被称为单轮次)中被一起确定。例如,单个阶级可以是弯曲减小阶级(也被称为弯曲减小轮次),其中失真函数dx、dy的逆(即
Figure BDA0002559601630000191
)被应用于图像坐标(例如,[u1 v1]T至[u25 v25]T),或更一般地,被应用于校准图像以生成校准图像的修改版本。在这样的弯曲减小阶级中,优化技术(例如,Levenberg-Marquardt算法,Nelder-Mead算法或Broyden-Fletcher-Goldfarb-Shanno(BFGS)算法)可以调整所有该组镜头失真参数k1、k2、k3、p1和p2和/或所有投影参数fx、fy、cx和/或cy的相应值,以便为所有镜头失真参数和/或投影参数找到一组最优值,该组最优值使得校准图像的修改版本中的弯曲量最小,因为弯曲可以表示由镜头失真引起的翘曲。然而,由于失真函数dx、dy及其逆函数是非线性的,因此很难在单个阶级中为所有镜头失真参数k1、k2、k3、p1和p2找到最优值,并且可能导致所得到的对镜头失真参数的估计是次优的,或者更一般地,失去准确度。因此,如上所述,本申请的一个实施例,并且更具体而言是步骤505的一个实施例,涉及一个阶级,该阶级聚焦于确定对第一镜头失真参数(诸如k1)的估计,同时将一个或多个其他镜头失真参数约束为固定值(例如零),或者不估计一个或多个其他镜头失真参数。
在实施例中,在步骤505中估计的第一镜头失真参数可以描述第一类型的镜头失真,同时步骤505可以涉及忽略描述第二类型的镜头失真的一个或多个其他镜头失真参数(或将第二类型的镜头失真参数视为可忽略的),其中被忽略的一个或多个镜头失真参数可以包括第二镜头失真参数。例如,在步骤505中估计的第一镜头失真参数可以是k1,k1描述了径向镜头失真。在此示例中,在步骤505中计算系统110可以忽略切向镜头失真的影响,或将其视为可忽略的,以便聚焦于估计径向镜头失真的镜头失真参数。因此,计算系统110可以估计k1(其描述径向镜头失真),而p1和/或p2(其描述切向镜头失真)被估计为零或不被估计。在这样的示例中,镜头失真参数k1可以描述比p1或p2所描述的分量具有更大影响的镜头失真的分量。
在实施例中,在步骤505中估计的第一镜头失真参数可以描述第一类型的镜头失真,诸如径向镜头失真,同时此步骤还可以涉及忽略描述相同类型的镜头失真的一个或多个镜头失真参数,其中被忽略的一个或多个镜头失真参数可以包括第二镜头失真参数。例如,步骤505可以涉及确定对k1的估计,k1可以描述来自描述径向镜头失真的一组径向多项式分量(例如,k1r2、k2r4、k3r6)中的、用于描述径向镜头失真的最低阶次的径向多项式分量k1r2(也被称为最低阶数的径向多项式分量或最低阶次的径向失真效应)。如上所述,镜头失真参数k2和k3两者都可以描述相对于镜头失真参数k1的更高阶次的径向多项式分量(k2r4、k3r6)。在实施例中,在步骤505中计算系统110可以假设最低阶次的径向多项式分量k1r2具有比诸如k2r4、k3r6的较高阶次的径向多项式分量大得多的影响。因此,在步骤505中(例如,在阶级1中)计算系统110可以聚焦于估计k1,并且可以忽略较高阶次的径向多项式分量k2r4、k3r6的影响,或者将其影响视为可忽略的。换句话说,在步骤505中计算系统110可以确定对k1的估计,而k2和/或k3被估计为零或不被估计。
在一些情况下,步骤505的以上实施例可以被组合。例如,步骤505可以确定对k1的估计,k1可以是第一镜头失真参数,同时(i)p1和/或p2被估计为零,或者不被估计,以及同时(ii)k2和/或k3被估计为零,或者不被估计。例如,图7B描绘了更具体的示例,其中步骤505可以是被标记为阶级1的第一阶级的一部分,该阶级1确定镜头失真参数k1的估计k1,阶级1_估计,k1可以是第一镜头失真参数。如上所述,对第一镜头失真参数的估计可以是在将对第二镜头失真参数的估计确定为零的同时或者不估计对第二镜头失真参数的估计的情况下被确定的。在图7B的示例中,第二镜头失真参数可以是k2、k3、p1和p2中的一个,使得k2,阶级1_估计、k3,阶级1_估计、p1,阶级1_估计或p2,阶级1_估计被确定为零,或者不被确定。更具体而言,图7B中的示例可以涉及确定k1,阶级1_估计,同时对镜头失真模型的所有剩余镜头失真参数的估计被确定为零,或者同时对所有剩余镜头失真参数的估计不被确定。更具体而言,如果镜头失真模型是多项式模型,则在阶级1中k2,阶级1_估计、k3,阶级1_估计、p1,阶级1_估计和p2,阶级1_估计被确定为零,或者在阶级1中不被确定,如图7B所示。如果镜头失真模型是合理多项式模型,则在阶级1中k2,阶级1_估计;k3,阶级1_估计;k4,阶级1_估计;k5,阶级1_估计;p1,阶级1_估计和p2,阶级1_估计被确定为零,或者不被确定。
在一些实现方案中,图7B中的示例可以涉及在将k2、k3、p1和p2约束为零的同时针对k1求解多项式模型的以下等式。
Figure BDA0002559601630000211
Figure BDA0002559601630000212
Figure BDA0002559601630000213
Figure BDA0002559601630000221
这些等式涉及多项式失真模型的失真函数,并且涉及投影矩阵,如上所述。在此示例中,[u v 1]T的值可以从校准图像(例如,图6E的680E)中确定,而
Figure BDA0002559601630000222
的值可以基于既定图案元素坐标确定。在一些情况下,
Figure BDA0002559601630000223
可以相对于相机坐标系(例如,图3B和4B的相机坐标系)表达,并且可以基于变换函数
Figure BDA0002559601630000224
(诸如描述相机(例如470)和校准图案(例如460)之间的空间关系的矩阵)根据既定图案元素坐标中确定。在这样的情况下,
Figure BDA0002559601630000225
的参数值可以经由透视n点算法(perspective-n-point)或一些其他技术来确定。在实施例中,可以使用任何技术来求解上述等式,诸如“A Flexible New Technique for CameraCalibration”,Technial Report MSR-TR-98-71,Zhengyou Zhang(也被称为Zhang的算法)中讨论的技术,该文献的全部内容通过引用整体并入本文。
在一些实现方案中,图7B的示例中的步骤505可以涉及求解一个或多个等式,这些等式涉及简化的失真函数dx_简化或dy_简化,其可以通过将k2、k3、p1和p2设置为零来获得:
Figure BDA0002559601630000226
Figure BDA0002559601630000227
例如,在步骤505中计算系统110可以从非瞬态计算机可读介质115检索或更一般地接收简化的失真函数dx_简化和dy_简化,并与以上讨论的其他等式(例如,等式9和等式10)一起求解它们。在这样的示例中,步骤505可以确定对k1的估计(即,k1,阶级1_估计),而对该组镜头失真参数中的所有剩余镜头失真参数的相应估计不被确定。
在实施例中,步骤505还可以涉及确定对一个或多个投影参数的相应估计。然而,在一些情况下此确定可能受到一个或多个约束。例如,如图7B所示,对投影参数fx、fy、cx和cy的相应估计也可以被确定,但是可能受到fx,阶级1_估计=fy,阶级1_估计的约束。更具体地,计算系统110可以假设fx和fy具有非常相似的值,并且因此可以在阶级1中将它们约束为具有相同的估计,以便降低该阶级的复杂度。图7B中的示例还可以施加cx,阶级1_估计和cy,阶级1_估计具有相应的固定值的约束。作为示例,cx,阶级1_估计和cy,阶级1_估计可各自被约束为零。在另一个示例中,如图7B所示,cx,阶级1_估计可以沿着图3B的
Figure BDA0002559601630000231
轴被约束到校准图像(例如680E)的中心,并且cy,阶级1_估计可以沿着图3B的
Figure BDA0002559601630000232
轴被约束到校准图像的中心。例如,如果校准图像的尺寸为a个像素乘以b个像素,则cx,阶级1_估计可以被约束为等于a/2,并且cy,阶级1_估计可以被约束为等于b/2。上述约束可以简化阶级1中对参数值的估计。此外,约束对投影参数的估计可以允许阶级1聚焦于优化对镜头失真参数k1的估计,以便提高估计的准确度。
返回图5,在一个实施例中,方法500可以包括步骤507,其中计算系统110在对第一镜头失真参数的估计被确定之后基于对第一镜头失真参数的估计来确定对第二镜头失真参数的估计。例如,图8描绘了一个示例,其中步骤507可以是被标记为阶级2的第二阶级的一部分,在阶级2中,对镜头失真参数k2的估计k2,阶级2_估计、对镜头失真参数p1的估计p1,阶级2_估计以及对镜头失真参数p2的估计p2,阶级2_估计基于阶级1的估计值而被确定,阶级1的估计值包括估计k1,阶级1_估计。在图8的示例中,步骤507的第二镜头失真参数可以是k2、p1和p2。在一些情况下,如图8中进一步描绘的,对第一镜头失真参数k1的另一估计(即,k1,阶级2_估计)可以基于来自阶级1的估计k1,阶级1_估计在阶级2中被确定。
例如,图8中的阶级2还可以涉及求解涉及dx、dy和投影矩阵的上述等式。在实施例中,当在阶级2期间求解上述等式时,估计k1,阶级1_估计可以被用作k1的初始猜测(或更一般地,初始估计)。因为阶级1聚焦于估计k1,所以其估计k1,阶级1_估计可能具有高水平的准确度,这会导致阶级2的准确度更高和/或减少计算时间。阶级2中较高水平的准确度可以应用于k2,阶级2_估计、p1,阶级2_估计、p2,阶级2_估计以及k1,阶级2_估计。在一些情况下,阶级2还可以基于来自阶级1的估计值(例如,基于k1,阶级1_估计、fx,阶级1_估计、cx,阶级1_估计和/或cy,阶级1_估计)确定对一个或多个投影参数的一个或多个相应估计fx,阶级2_估计、fy,阶级2_估计、cx,阶级2_估计和/或cy,阶级2_估计。阶级2还可以通过依赖阶级1的输出作为初始猜测来提高一个或多个投影参数的相应估计的准确度。在实施例中,在阶级2中确定的对镜头失真参数和/或投影参数的相应估计(例如,k2,阶级2_估计、p1,阶级2_估计、p2,阶级2_估计、k1,阶级2_估计、fx,阶级2_估计、fy,阶级2_估计、cx,阶级2_估计和/或cy,阶级2_估计)还可以基于在阶级1中确定的对投影参数的估计(例如,fx,阶级1_估计、fy,阶级1_估计、cx,阶级1_估计和/或cy,阶级1_估计)。
在实施例中,步骤507可以涉及对用于相机校准的镜头失真模型的镜头失真参数的仅子集进行估计,同时将剩余的一个或多个镜头失真参数估计为零,或者不估计剩余的一个或多个镜头失真参数。例如,对第二镜头失真参数的估计可以在步骤507中确定,同时对第三镜头失真参数的估计被确定为零,或者不被确定。例如,图8描绘了一个示例,其中k2,阶级2_估计、p1,阶级2_估计和p2,阶级2_估计(其中之一可以是对第二镜头失真参数的估计)以及k1,阶级2_估计分别针对k2、p1、p2和k2来确定,同时针对镜头失真参数k3的k3,阶级2_估计被估计为零,或者不被确定。在此示例中,k3可以是第三镜头失真参数。在实施例中,用于步骤507的第三镜头失真参数可以是描述镜头失真或特定类型的镜头失真的一组分量之中的最高阶次的分量的系数。例如,k3可以描述多项式模型的一组径向多项式分量k1r2、k2r4、k3r6当中的最高阶次的径向多项式分量k3r6。在实施例中,因为k3r6是相对高阶次的效应,所以径向镜头失真可能对k3的微小变化敏感,这可能导致k3不稳定并且难以准确估计。此外,不准确的k3可能负面地影响对k1、k2、p1和/或p2的估计的准确度。因此,步骤507,或更具体而言,阶级2,可以放弃对第三镜头失真参数k3的估计,或者将其估计为零,以便聚焦于估计其他镜头失真参数(例如,k1、k2、p1和/或p2)。例如,针对步骤505-507估计的镜头失真参数可以是失真模型(例如多项式失真模型)的一组镜头失真参数,并且可以被划分为第三镜头失真参数(例如k3)以及其他镜头失真参数的子集(诸如失真模型的该组镜头失真参数的所有其他镜头失真参数(例如,k1、k2、p1和p2)的子集)。在这样的示例中,阶级2可以确定对镜头失真参数的该子集中的所有镜头失真参数(例如,k1、k2、p1和p2)的相应估计,同时将第三镜头失真参数(例如,k3)估计为零,或者不估计第三镜头失真参数。在一些情况下,对第三镜头失真参数(例如,k3)的估计可能被延迟到后续阶级(例如,阶级3),如下面更详细地讨论的。
在实施例中,步骤507可以涉及求解等式,该等式涉及失真函数dx、dy的另一简化版本。此另一简化版本可以通过将第三镜头失真参数(例如k3)约束为零来获得,以产生dx_简化2和dy_简化2
Figure BDA0002559601630000251
Figure BDA0002559601630000252
在一些实现方案中,在步骤507中计算系统110可以从非瞬态计算机可读介质115接收dx_简化2和dy_简化2,并且求解涉及简化的失真函数并且涉及投影矩阵的等式,以求解k1、k2、p1、p2、fx、fy、cx和cy
返回图5,在实施例中,方法500可以包括步骤509,其中计算系统110确定相机校准信息,该相机校准信息包括对该组镜头失真参数的相应估计。对该组镜头失真参数的相应估计可以包括或基于在步骤505中确定的第一镜头失真参数的估计(例如,k1,阶级1_估计)和/或在步骤507中确定的第二镜头失真参数的估计(例如,k2,阶级1_估计)。
在实施例中,估计固有相机校准参数可以仅涉及阶级1和阶级2,在该情况下,对该组镜头失真参数的相应估计可以至少包括在步骤507中确定的对第二镜头失真参数的估计,或者更具体而言,包括k1,阶级2_估计、k2,阶级2_估计、k2,阶级2_估计、p1,阶级2_估计、p2,阶级2_估计、fx,阶级2_估计、fy,阶级2_估计、cx,阶级2_估计和cy,阶级2_估计。相应估计可以例如被直接用于执行手眼校准、立体校准或用于一些其他目的。在实施例中,在步骤509中估计固有相机校准参数可以涉及附加的阶级,诸如在图9A至图12B中示出的阶级3-5。如上所述,来自一个阶级的估计可以被输入到下一个连续阶级以生成更细化的估计。
图9A描绘了在阶级2之后的阶级3的示例,并且该阶级3基于来自阶级2的对那些参数的估计生成对k1、k2、p1、p2的更细化的估计。更具体而言,阶级3可以基于阶级2的输出生成k2,阶级3_估计、p1,阶级3_估计、p2,阶级3_估计、k1,阶级3_估计。在阶级3中生成的这些估计可以被认为是相对于阶级2的估计的经更新的估计。
在实施例中,阶级3可以是弯曲减小阶级。弯曲减小阶级可以将上面讨论的失真函数的逆函数应用于(即,将
Figure BDA0002559601630000261
Figure BDA0002559601630000262
应用于)校准图像(例如,图6E中的680E)以生成校准图像的修改版本,校准图像的该修改版本试图去除或减少镜头失真影响。例如,逆投影矩阵K-1可以被应用于校准图像以确定
Figure BDA0002559601630000263
坐标,其中
Figure BDA0002559601630000264
Figure BDA0002559601630000265
可表示例如特定图案元素或其他特征位于相机视场中的位置。坐标
Figure BDA0002559601630000266
可以包括镜头失真的影响,并且逆失真函数可以被应用于
Figure BDA0002559601630000267
Figure BDA0002559601630000268
以确定
Figure BDA0002559601630000269
Figure BDA00025596016300002610
或X和Y,它们可以是其中镜头失真的影响被去除或以其他方式被减少的坐标。投影矩阵K可以被应用于
Figure BDA00025596016300002611
Figure BDA00025596016300002612
或X和Y,以生成减少镜头失真影响的校准图像的修改版本。生成校准图像的修改版本在题为“Method andSystem for Performing Automatic Camera Calibration for Robot Control(执行自动相机校准以进行机器人控制的方法和系统)”的第16/295,940号美国专利申请中被详细地讨论,该美国专利申请的全部内容以引用的方式整体并入本文中。如上所述,镜头失真可将弯曲引入到校准图像中的校准图案(例如460)的外观中。阶级3可以试图找到对镜头失真参数的估计,使得所得的逆失真函数可以生成去除或减小弯曲的校准图像的修改版本。
在实施例中,阶级3可以使用一个或多个镜头失真参数的一个或多个相应的初始估计(例如,k1、k2、k3、p1、p2的初始估计)。这些初始估计可以被调整以产生阶级3的经更新的估计。在一些情况下,这些初始猜测可以等于或(直接或间接地)基于来自先前阶级的对镜头失真参数的相应估计。例如,阶级3中的k1的初始估计可以等于或基于k1,阶级2_估计和/或k1,阶级1_估计。在此示例中,k1可以是第一镜头失真参数。类似地,第二镜头失真参数(例如,k2、p1、p2)的初始估计可以等于或基于其来自阶级2和/或阶级1的估计(例如k2,阶级2_估计和/或k2,阶级1_估计)。如图9A所示,弯曲减小阶级还可以确定对k3的估计,在此示例中k3可以是第三镜头失真参数。在一些情况下,阶级3可以将k3的初始估计确定为零。
如上所述,弯曲减小阶级可以基于用于该阶级的对k1、k2、k3、p1和/或p2的初始估计来生成校准图像的修改版本,该校准图像的修改版本补偿与相机(例如470)相关联的镜头失真。例如,图9B描绘了校准图像680E的修改版本的示例。弯曲减小阶级还可以涉及确定校准图像的修改版本中的弯曲量,以及基于校准图像的修改版本中的弯曲量来调整k1、k2、k3、p1和/或p2的相应初始估计,以便生成减少弯曲量的对k1、k2、k3、p1和/或p2 2的相应的经调整的估计。这种调整可以被执行一次,或者可以通过多次迭代被执行多次以产生相应的经调整的估计。相应的经调整的估计可以被设置为由弯曲减小阶级产生的对镜头失真参数的相应的经更新的估计。即,相应的经调整的估计可以被设置为k1,阶级3_估计、k2,阶级3_估计、k3,阶级3_估计、p1,阶级3_估计、p2,阶级3_估计
在实施例中,线拟合技术可以被用于确定校准图像的修改版本中的弯曲量。例如,当校准图案(例如460)中的多个图案元素是多个点(例如,圆点)时,弯曲量可以通过以下方式确定:在校准图像的修改版本中拟合通过该多个点(例如,通过点的相应中心)的多个直线,并基于该多个直线中的每个直线与该多个点中该直线通过其被拟合的相应点(例如,点的相应中心)之间的距离来确定弯曲量。图9C图示了针对仍然表现出一定程度的镜头失真的校准图像的修改版本(也称为经修改的校准图像)执行线拟合。作为结果,直线中的一个或多个直线不经过该直线通过其被拟合的所有图案元素(例如,点)的相应中心。更具体而言,图9C图示了针对图9B的点的一部分的线拟合。在图9C中,通过四个点拟合的线从该四个点中的三个点的相应中心偏离。弯曲量可以基于图9C中的每个点的中心与拟合线之间的相应距离来计算,如由自拟合线出发的相应箭头所示的那样。在实施例中,校准图像的修改版本的弯曲量可以由总弯曲分数表示,该总弯曲分数可以是例如线拟合中涉及的各个线的相应弯曲分数的总和。在实施例中,弯曲减小阶级可以涉及优化多个失真参数的相应估计值,以便使得校准图像的修改版本的总弯曲分数最小化,其中修改版本是基于这些估计值生成的。线拟合技术在题为“Method and System for Performing Automatic CameraCalibration for Robot Control(执行自动相机校准以进行机器人控制的方法和系统)”的第16/295,940号美国专利申请中被详细地讨论,该美国专利申请的全部内容以引用的方式整体并入本文中。
在实施例中,投影参数中的一个或多个(或更具体而言投影矩阵或逆投影矩阵)在阶级3中的值可以被固定。例如,图9A图示了一个示例,其中投影参数fx、fy、cx、cy在阶级3中被固定为其来自阶级2的相应估计处的值。换句话说,fx,阶级3_估计=fx,阶级2_估计;fy,阶级3_估计=fy,阶级2_估计;cx,阶级3_估计=cx,阶级2_估计并且cy,阶级3_估计=cy,阶级2_估计。阶级3中的对镜头失真参数的经更新的估计可以基于来自阶级2的对投影参数的相应估计来确定。在一些情况下,投影参数可以描述相机视场中的位置和像素坐标之间的线性变换。在这样的情况下,投影参数可能对校准图像的修改版本中的弯曲量影响很小甚至没有影响,因为弯曲可能是由于非线性效应引起的。因此,这些投影参数的值在阶级3期间可以被固定,以便聚焦于对校准图像的修改版本中的弯曲量有影响的镜头失真参数或其他参数。
在实施例中,在步骤509中确定相机校准信息可以仅涉及阶级1至阶级3,并且对该组镜头失真参数的相应估计可以等于k1,阶级3_估计、k2,阶级3_估计、k3,阶级3_估计、p1,阶级3_估计、p2,阶级3_估计,其可以被直接用于执行手眼校准、立体校准或用于一些其他目的。在实施例中,如图10所示,在步骤509中确定相机校准信息可以包括在阶级3之后的阶级4。阶级4可以例如,使用来自阶级3的估计作为输入来生成对各个镜头失真参数和/或投影参数的更细化的估计。
在实施例中,阶级4可以将对k3(或者更一般地第三镜头失真参数)的估计固定为阶级3输出的估计处的值,使得k3,阶级4_估计=k3,阶级3_估计。如上所述,相机校准信息可以包括第三镜头失真参数(例如,k3),该第三镜头失真参数描述了镜头失真模型(例如,多项式模型)的一组径向多项式分量中的最高阶次的径向多项式分量。在一些情况下,阶级4可以将这样的第三镜头失真参数的值固定,因为第三镜头失真参数的灵敏度可能影响对其他镜头失真参数的估计的准确度。
在实施例中,阶级4可以更新对投影参数(诸如fx、fy、cx和/或cy)的估计。更具体而言,如上所述,在一些情况下,这些投影参数的值在阶级3中可以被固定,该阶级3生成对第三镜头失真参数的估计(例如k3,阶级3_估计),并生成对其他镜头失真参数的相应的经更新的估计,诸如对第一镜头失真参数的经更新的估计(例如,k1,阶级3_估计)和对第二镜头失真参数的经更新的估计(例如,k2,阶级3_估计、p1,阶级3_估计或p2,阶级3_估计)。在阶级3中,投影参数可以受到fx,阶级3_估计=fx,阶级2_估计;fy,阶级3_估计=fy,阶级2_估计;cx,阶级3_估计=cx,阶级2_估计以及cy,阶级3_估计=cy,阶级2_估计的约束,如图9A所示。在阶级3之后,对投影参数的估计可以在步骤4中被更新,如图10所示。例如,在阶级4中计算系统110可以确定fx,阶级4_估计;fy,阶级4_估计;cx,阶级4_估计;cy,阶级4_估计。由阶级4生成的这些对投影参数的经更新的估计可以基于从阶级3确定的对镜头失真参数的估计(诸如k1,阶级3_估计、k2,阶级3_估计、k3,阶级3_估计、p1,阶级3_估计和/或p2,阶级3_估计)来确定。
在实施例中,在步骤509中确定相机校准信息可以仅涉及阶级1至阶级4,并且对该组镜头失真参数的相应估计可以等于k1,阶级4_估计、k2,阶级4_估计、k3,阶级4_估计、p1,阶级4_估计、p2,阶级4_估计,并且对投影参数的相应估计可以等于fx,阶级4_估计;fy,阶级4_估计;fy,阶级4_估计;cx,阶级4_估计以及cy,阶级4_估计,其可以被直接用于执行手眼校准、立体校准或用于一些其他目的。在实施例中,步骤509可以涉及阶级4之后的阶级5。如图11所示,阶级5可以在阶级4之后,或更一般地在阶级1之后。
在一些情况下,第一镜头失真参数和/或第二镜头失真参数(例如,k1和k2)的值在阶级5中可以被固定,同时对除第一镜头失真参数和第二镜头失真参数之外的附加镜头失真参数(例如,k3,p1,p2)的估计在该阶级中被确定。在这样的情况下,来自阶级4的对k1和k2的估计可能足够准确,使得这些估计在阶级5中无需被进一步细化。此外,将k1和k2的值固定可以提高准确估计k3的稳定性,因此可以允许阶级5聚焦于改进该参数。
如图11所示,第一镜头失真参数和第二镜头失真参数(例如,k1、k2)在阶级5中可以被固定为由阶级4输出的估计处的值,诸如k1,阶级4_估计和k2,阶级4_估计。在一些情况下,如果对第一镜头失真参数和第二镜头失真参数的估计(例如,k1,阶级1_估计和k2,阶级1_估计)在较早的阶级(例如,阶级1)中被确定,则来自阶级4的对第一镜头失真参数和第二镜头失真参数的估计可以分别被称为第一镜头失真参数和第二镜头失真参数的经更新的估计。在这样的情况下,阶级5中的对(一个或多个)附加镜头失真参数的估计可以被称为基于对第一镜头失真参数的经更新的估计和/或对第二镜头失真参数的经更新的估计。
在实施例中,在步骤509中确定的相机校准可以包括来自阶级5的估计,诸如k1,阶级5_估计、k2,阶级5_估计、k3,阶级5_估计、p1,阶级5_估计、p2,阶级5_估计、fx,阶级5_估计、fy,阶级5_估计、cx,阶级5_估计和cy,阶级5_估计。在实施例中,这些估计可以被用于执行手眼校准和/或立体校准,如图12A所示。手眼校准可以确定相机(例如470)与其外部环境之间的关系,诸如相机(例如图4B的470)与机器人的底座(例如机器人450的底座452)之间的空间关系。立体校准可以确定相机(例如170/370/470)和另一相机(例如180)之间的空间关系。手眼校准和立体校准在题为“Methodand System for Performing Automatic Camera Calibration for Robot Control(执行自动相机校准以进行机器人控制的方法和系统)”的第16/295,940号美国专利申请中被详细地讨论,该美国专利申请的全部内容以引用的方式整体并入本文中。
在一些情况下,来自阶级5的估计可以被用于确定对镜头失真参数的进一步估计,或确定对其他镜头失真参数的估计。例如,图12B描绘了其中方法500的相机校准使用合理模型的示例,该合理模型涉及镜头失真参数k1、k2、k3、k4、k5、k6、p1和p2。在这样的示例中,阶级1至阶级5可以专用于估计多项式模型的镜头失真参数(或更具体而言,估计k1、k2、k3、p1和p2),而在那些阶级中的k4、k5、k6被估计为零或不被估计。在这样的示例中,步骤509还可以包括阶级6,该阶级6至少基于来自阶级5的对k1、k2、k3、p1和p2的估计来确定对至少k4、k5或k6的估计。
在实施例中,图7A至图12B的阶级1至阶级6中的一个或多个阶级可以被省略或重新布置。例如,一些实施例可以省略阶级3至6。作为另一个示例,一些实施例可以省略阶级4至6,或者省略阶级2、阶级4或阶级5。
返回图5,方法500可以包括步骤511,其中在相机校准已经被执行了之后,计算系统110接收由相机(例如470)生成的后续图像。例如,该图像可以由相机(例如470)在机器人操作(诸如卸垛操作或箱子拾取操作)期间生成。在一些情况下,图像可能捕获或以其他方式表示要与机器人进行交互的对象。例如,对象可以是要被卸垛的包裹或要被抓握的部件。在实施例中,方法500可以包括步骤513,其中计算系统110生成用于控制机器人移动(诸如图4A-4B的机器人臂454的移动)的移动命令。移动命令可以基于该续图像并且基于相机校准信息(例如,固有相机校准信息和/或手眼校准信息)来生成,并且可以被于执行机器人交互。例如,计算系统110可以被配置为确定机器人臂454和要被抓握的对象之间的空间关系,其中,该空间关系可以是基于该后续图像并基于相机校准信息而确定的,如在题为“Methodand System for Performing Automatic Camera Calibration for Robot Control(执行自动相机校准以进行机器人控制的方法和系统)”的第16/295,940号美国专利申请中详细地讨论的那样,该美国专利申请的全部内容以引用的方式整体并入本文中。在实施例中,图5中的方法500的一个或多个步骤(诸如511和513)可以被省略。
如上所述,本公开的一个方面涉及提高立体相机校准的准确度,并且更具体而言涉及有效地测量立体相机校准所使用的估计(例如,估计的变换函数)中存在多少误差,使得立体相机校准可以通过减少这样的估计中的误差而被改进。立体相机校准可以涉及例如确定两个相机之间的空间关系。例如,图13A-13B描绘了包括第一相机470和第二相机480的系统1300。系统1300可以是图1C的系统100B和/或图4A-4B的系统400的实施例。此外,相机480可以是相机180的实施例。系统1300可以包括安装框架1305,第一相机470和第二相机480被安装到安装框架1305。在一些情况下,安装框架1305可以将两个相机470、480在位置和/或朝向上相对于彼此保持固定。
在图13A至图13B的实施例中,立体相机校准可以被执行以确定第一相机470和第二相机480之间的空间关系,诸如两个相机的相对位置和相对朝向。例如,立体校准可以涉及确定描述该空间关系的变换函数
Figure BDA0002559601630000321
Figure BDA0002559601630000322
变换函数可以是例如描述第一相机470的坐标系与第二相机480的坐标系之间的旋转和/或平移的矩阵,诸如以下等式:
Figure BDA0002559601630000323
在实施例中,针对图13A-13B的系统1300的立体相机校准可以涉及校准图案460的使用,该校准图案460可以被部署在机器人450上或被部署在一些其他结构上。如以上关于图4C所讨论的,校准图案可以具有多个图案元素,诸如图案元素4611。在一些情况下,图案元素可以在相对于第一相机470具有第一组相应坐标并且相对于第二相机480具有第二组相应坐标的相应位置处。更具体而言,图案元素的物理位置可以在第一相机470的坐标系中具有第一组坐标,并且在第二相机的坐标系中具有第二组坐标。例如,如图13B所示,图案元素4611的位置可以在第一相机470的坐标系中具有坐标[x1 y1 z1]T 相机1,并且在第二相机480的坐标系中具有坐标[x’1 y’1 z’1]T 相机2。此外,如关于图4C所讨论的,图案元素的相应位置还可以在图案坐标系中具有既定图案元素坐标。例如,图案元素4611可以在图案坐标系中的坐标[x”1 y”1 z”1]T 图案处,其中x”1、y”1和z”1的值是预定义的。在实施例中,立体校准可以基于第一组坐标、第二组坐标和/或既定图案元素坐标来执行,如下面更详细地讨论的。
图14描绘了用于执行立体校准的方法1400的流程图。在实施例中,方法1400可以由图1A-1C的和图2的计算系统110执行,或更具体而言由计算系统110的控制电路111执行。立体校准可以涉及具有第一相机视场(例如,图13A的410)第一相机(例如,图1C和13A的170/470)和具有第二相机视场(例如,420)的第二相机(例如180/480)。如上所述,计算系统110可以被配置为诸如经由(图2的)通信接口113与第一相机(例如170/470)和第二相机(例如480)通信。在实施例中,当具有多个图案元素的校准图案(例如160/460)在或已经在第一相机视场(例如410)和第二相机视场(例如420)中时,并且还当第一相机(例如470)和第二相机(例如480)已经分别生成第一校准图像和第二校准图像时,可以执行方法1400。第一校准图像和第二校准图像可以各自是表示校准图案(例如460)的图像。例如,图15A和15B描绘了第一校准图像1580A和第二校准图像1580B,两者都是表示图13A和13B的校准图案460的相应图像。第一校准图像1580A可以由第一相机470生成,并且第二校准图像1580B可以由第二相机480生成。此外,在生成校准图像1580A、1580B期间,校准图案460可以相对于第一相机470和第二相机480保持静止。在这样的情况下,第一校准图像1580A可以被称为与第二校准图像1580B相对应,反之亦然。
返回图14,在实施例中,方法1400可以包括步骤1401,其中计算系统110接收由第一相机(例如470)生成的第一校准图像(例如1580A)。该方法可以进一步包括步骤1403,其中计算系统110接收由第二相机(例如480)生成的第二校准图像(例如1580B)。在一些情况下,计算系统110可以直接从第一相机(例如470)和/或第二相机(例如,480)接收第一校准图像(例如,1580A)和/或第二校准图像(例如,1580B)。在一些情况下,第一校准图像(例如1580A)和/或第二校准图像(例如1580B)可能已经存储在图2的非瞬态计算机可读介质115(例如,固态驱动器)中并且计算系统110可以从固态驱动器接收第一和/或第二校准图像。
在实施例中,方法1400可以包括步骤1405,其中计算系统确定对用于描述第一相机和第二相机之间的空间关系的变换函数(诸如上面讨论的矩阵
Figure BDA0002559601630000341
Figure BDA0002559601630000342
)的估计。该矩阵可以例如描述第一相机470的坐标系和第二相机480的坐标系之间的旋转和/或平移。在实施例中,对变换函数的估计可以使用八点算法(eight-point algorithm)或一些其他技术来确定。
如上所述,本公开的一个方面涉及确定从步骤1405中确定的变换函数中的误差量。在一些情况下,该误差可以基于比较从第一校准图像(例如1580A)确定的第一多个坐标和从第二校准图像(例如1580B)确定的多个经变换的坐标来确定。如下面关于步骤1407至1413更详细地讨论的,该比较可以涉及确定第一多个坐标和多个经变换的坐标之间的偏移(例如,坐标之间的相应距离),和/或基于这些坐标确定角度值。如下面进一步讨论的,计算系统可以确定重投影误差、重构误差和/或重构误差角以表征变换函数中的误差量。尽管以下讨论的步骤可用于确定变换函数中的误差,但在一些情况下,它们也可以被用于确定变换函数。例如,在一些情况下,在下面更详细讨论的在步骤1407和1409中确定的坐标可以被用来在步骤1405确定对变换函数的估计。
更具体地,方法1400可以包括步骤1407,其中计算系统110基于第一校准图像(例如,图15A的1580A)确定描述或以其他方式表示多个图案元素(例如,图4C的4611至46125)相对于第一相机(例如470)的相应位置的第一多个坐标。在实施例中,方法1400可以包括步骤1409,其中计算系统110基于第二校准图像(例如,图15B的1580B)确定描述该多个图案元素(例如,图4C的4611至46125)相对于第二相机(例如,图13A和13B的480)的相应位置的第二多个坐标。如下面(关于步骤1411和1413)更详细地讨论的,可以使用对变换函数的估计将第二多个坐标变换为多个经变换的坐标,对变换函数的该估计是对第一相机(例如470)和第二相机(例如480)之间的空间关系的估计。如果对变换函数的估计具有高水平的准确度,则第一多个坐标和该多个经变换的坐标可以基本相同或完全相同。当对变换函数的估计失去准确度时,第一多个坐标和该多个经变换的坐标可能表现出彼此更大的差异。
返回参考步骤1407和1409,在一些情况下,在那些步骤中确定的第一多个坐标和/或第二多个坐标可以是图像坐标,或更具体而言是像素坐标。作为示例,第一多个坐标可以是在图15A中示出的第一多个像素坐标[u1 v1]T...[u25 v25]T。这些像素坐标可以描述(图4C的)校准图案460的多个图案元素4611至46125在图15A的第一校准图像1580A中出现的相应位置。此外,如上所述,第一多个像素坐标[u1 v1]T...[u25 v25]T可以相对于第一相机(例如470)来表达。例如,第一多个坐标可以在第一相机(例如,470)的图像传感器(例如,图3A的373/373A)的坐标系中被表达。在图15B所示的示例中,第二多个坐标可以是描述(图4C的)校准图案460的多个图案元素4611至46125在第二校准图像1580B中出现的相应位置的第二多个像素坐标[u’1v’1]T...[u’25v’25]T。第二多个像素坐标[u’1v’1]T...[u’25v’25]T可以是相对于第二相机(例如480)表达的。例如,第二多个坐标可以在第二相机(例如480)的图像传感器的坐标系中表达。
在一些情况下,在步骤1407中确定的第一多个坐标和/或在步骤1409中确定的第二多个坐标可以是3D坐标。作为示例,第一多个坐标可以是图13B中示出的第一多个3D坐标[X1 Y1 Z1]T 相机1...[X25 Y25 Z25]T 相机1,其可以描述或以其他方式表示校准图案460的多个图案元素4611-46125相对于图13B的第一相机470的相应物理位置。第一多个3D坐标[X1 Y1 Z1]T 相机1...[X25 Y25 Z25]T 相机1可以相对于第一相机470的坐标系(其也可以被称为第一相机坐标系)表达,该坐标系可以是关于第一相机470的位置和朝向定义的坐标系。如图13B进一步所示,第二多个坐标可以是第二多个3D坐标[X’1 Y’1 Z’1]T 相机2...[X’25 Y’25 Z’25]T 相机2,其可以描述校准图案460的多个图案元素4611-46125相对于第二相机480的相应物理位置。更具体而言,第二多个3D坐标[X’1 Y’1 Z’1]T 相机2...[X’25 Y’25 Z’25]T 相机2可以相对于第二相机480的坐标系(其也可以被称为第二相机坐标系)表达,该坐标系可以是关于第二相机480的位置和朝向定义的坐标系。
在实施例中,如果第一多个坐标和/或第二多个坐标是3D坐标,则它们在一些情况下可以基于图像坐标来确定。例如,如果步骤1407的第一多个坐标是3D坐标[X1 Y1 Z1]T 相机1...[X25 Y25 Z25]T 相机1,则这些3D坐标可以基于来自第一校准图像(例如1580A)的像素坐标[u1 v1]T...[u25 v25]T确定。在这样的情况下,3D坐标[X1 Y1 Z1]T 相机1...[X25 Y25 Z25]T 相机1可以指示当校准图案460由第一相机470拍摄时图案元素4611-46125的相应物理位置。3D坐标[X1 Y1 Z1]T 相机1...[X25 Y25 Z25]T 相机1在这样的示例中可以基于透视n点算法、基于(例如,来自方法500的)相机校准信息和/或基于一些其他技术来确定。类似地,如果步骤1409的第二多个坐标是3D坐标[X’1 Y’1 Z’1]T 相机2...[X’25 Y’25 Z’25]T 相机2,则这些3D坐标可以基于来自图15B的第二校准图像1580B的像素坐标[u’1 v’1]T...[u’25 v’25]T确定。
在实施例中,方法1400可以包括步骤1411,其中计算系统110基于对变换函数的估计将第二多个坐标变换为多个经变换的坐标,其中该多个经变换的坐标是相对于第一相机(例如470)的。在一些情况下,步骤1411可以涉及将对变换函数的估计应用于第二多个坐标(其是相对于第二相机(诸如相机480)表达的),以便生成旨在相对于第一相机(例如470)表达的经变换的坐标。如上所述,对变换函数的估计的准确度可以通过经变换的坐标与第一多个坐标(其也是相对于第一相机表达的)的接近程度来衡量。
在实施例中,多个经变换的坐标可以是多个图像坐标。如果第一多个坐标也是多个图像坐标,则多个经变换的坐标可以被称为附加的多个图像坐标。如果经变换的坐标是图像坐标,则它们可以被用于确定重投影误差,这将在下面更详细地讨论。作为示例,图16A描绘了其中多个经变换的坐标是图像坐标或更具体而言是像素坐标[q’1 r’1]T...[q’25r’25]T的示例,该示例可以估计例如如果第二校准图像是由第一相机(例如470)而不是由第二相机生成的则图案元素4611至46125应该出现在第二校准图像中的位置。即,像素坐标[q’1 r’1]T...[q’25 r’25]T可以对图案元素4611至46125的物理位置将被投影到第一相机(例如470)的图像传感器上的位置进行近似。
在实施例中,如果多个经变换的坐标是图像坐标,则它们可以基于3D坐标来生成。例如,3D坐标可以描述图案元素4611至46125的物理位置,并且可以使用投影矩阵(诸如使用来自方法500的投影参数的投影矩阵)被投影到图像坐标中。例如,图16B描绘了使用对变换函数的估计而生成并且相对于或近似相对于第一相机(例如470)而表达的多个3D坐标[a’1b’1 c’1]T 相机1...[a’25 b’25 c’25]T 相机1。在一些情况下,图像坐标[q’1 r’1]T...[q’25 r’25]T可以通过将第一相机(例如470)的镜头失真参数和/或投影矩阵应用于3D坐标[a’1 b’1 c’1]T 相机1...[a’25 b’25 c’25]T 相机1来确定,如上文关于等式1或等式7-10所讨论的。如上所述,投影矩阵可以被用于确定第一相机的视场(例如410)中的位置或更具体而言3D坐标[a’1 b’1c’1]T 相机1...[a’25 b’25 c’25]T 相机1如何被投影到第一相机(例如470)的图像平面。此示例中的3D坐标可以基于以下关系确定(以齐次形式表示):
[a’n b’n c’n 1]T 相机1=T相机2 相机1[X’n Y’n Z’n 1]T 相机2 (等式15)
在以上示例中,
Figure BDA0002559601630000371
可以是作为在步骤1405中确定的对变换函数的估计的矩阵,而[X’n Y’n Z’n]T 相机2可以是描述图案元素4611至46125相对于第二相机(例如,480)的物理位置的3D坐标,如上面关于图3B所讨论的那样。3D坐标[X’1 Y’1 Z’1]T 相机2...[X’25 Y’25Z’25]T 相机2可以基于例如第二校准图像(例如1580B)和既定图案元素坐标(例如[X”1 Y”1 Z”1]T 图案...[X”25 Y”25 Z”25]T 图案)确定。更具体而言说,诸如透视n点算法或Zhang算法的技术可以被用于确定3D坐标[X’1 Y’1 Z’1]T 相机2...[X’25 Y’25 Z’25]T 相机2。因为在一些情况下上述等式(等式15)的结果可以用来确定图像坐标[q’1 r’1]T...[q’25 r’25]T,所以在这些情况下,图像坐标是基于对变换函数的估计的,因此可以被用来确定对变换函数的估计的准确度,这将在下面更详细地讨论。
在实施例中,在步骤1411中确定的多个经变换的坐标可以是多个3D坐标,该多个3D坐标估计图案元素4611至46125相对于第一相机(例如470)(诸如相对于第一相机坐标系)的物理位置。例如,在这样的实施例中,该多个经变换的坐标可以是3D坐标[a’n b’n c’n 1]T 相机1,其是使用对变换函数的估计而确定的,如以上在等式15中所讨论的。如果第一多个坐标也是多个3D坐标,则该多个经变换的坐标可以被称为多个经变换的坐标。
返回图14,在实施例中,方法1400可以包括步骤1413,其中计算系统110确定描述第一多个坐标和该多个经变换的坐标之间的相应差异的误差参数值。
在实施例中,误差参数值可以基于表示第一多个坐标和多个经变换的坐标之间的相应距离(或更一般地,偏移)的值。如果第一多个坐标和多个经变换的坐标是图像坐标(例如,像素坐标),则误差参数值可以是重投影误差,如下所述。如果第一多个坐标和多个经变换的坐标是3D坐标,则误差参数值可以是重构误差或重构误差角,这也将在下面讨论。
例如,图17A描绘了其中第一多个坐标是第一多个像素坐标[u1 v1]T...[u25 v25]T(如图15A所示)并且多个经变换的坐标是附加的多个像素坐标[q’1 r’1]T...[q’25 r’25]T(如图16A所示)的示例。在这样的示例中,误差参数值可以基于第一多个像素坐标与附加的多个像素坐标之间的相应距离d_pixeln(也被称为图像距离或更具体而言为像素距离):
Figure BDA0002559601630000391
在一些情况下,误差参数值可以是相应像素距离(例如,d_pixel1至d_pixel25)的平均,或者是基于相应像素距离的一些其他统计度量。这样的误差参数值可以被称为重投影误差。
作为另一示例,图17B示出了其中第一多个坐标是第一多个3D坐标[X1 Y1 Z1]T 相机1...[X25 Y25 Z25]T 相机1(如图13A所示)并且多个经变换的坐标是多个3D坐标[a’1 b’1c’1]T 相机1...[a’25 b’25 c’25]T 相机1(如图16B所示)的情况。在这样的示例中,误差参数值可以基于第一多个3D坐标与附加的多个3D坐标之间的相应距离d_physicaln(也被称为3D距离或物理距离):
Figure BDA0002559601630000392
在一些情况下,误差参数值可以是相应3D距离(例如,d_physical1至d_physical25)的平均,或者是基于相应3D距离的一些其他统计度量。这样的误差参数值可以被称为重构误差。
在实施例中,重投影误差或重构误差的效用可以取决于第一相机(例如470)或第二相机(例如480)与被捕获(例如,拍摄)的校准图案(例如460)之间的距离。例如,当校准图案(例如460)更靠近第一相机(例如470)和/或第二相机(例如480)时,重投影误差可能具有更多的效用。例如,如果第一相机(例如470)和/或第二相机(例如480)具有有限的分辨率,则随着校准图案(例如,460)距离相机越远被捕获,第一多个像素坐标与附加的多个像素坐标之间的距离可能变得更小和/或失去粒度。例如,图17C图示了由图13A和图13B的第一相机470生成的校准图案460的校准图像的示例,其中,相对于生成图17A的校准图像的情况,校准图案460位于离第一相机470更远的位置。相对于校准图案460在图17A的校准图像中的外观,校准图案460在图17C的校准图像中看起来更小。图17C中的校准图像的较小外观可能导致[un vn]T和[q’n r’n]T看起来更靠近在一起,并且因此可能减小像素距离d_pixeln。在一些情况下,减小的像素距离可能导致对变换函数的估计的误差被评估不足或权重降低。
如上所述,重构误差还可以取决于校准图案(例如460)与第一相机(例如470)和/或第二相机(例如480)之间的距离。例如,图17D图示了相对于图17B中的场景在距相机更远的距离处捕获校准图案460。在此示例中,当校准图案460越移动远离第一相机470和/或第二相机480时,对变换函数的估计可能导致附加的多个3D坐标[a’1 b’1 c’1]T 相机1...[a’25b’25 c’25]T 相机1具有距第一个多个3D坐标[X1Y1 Z1]T 相机1...[X25 Y25 Z25]T 相机1越大的偏移。更大的偏移可能增加距离d_physical,这可能导致对变换函数的估计的误差被过度评估或过度加权。
在一个实施例中,步骤1413可以涉及确定误差参数值,该误差参数值是重构误差角,其可以不依赖于或较少依赖于相机(例如470)和校准图案(例如460)或由相机捕获的其他对象之间的距离。更具体而言,在这样的实施例中,误差参数值可以基于表示相应角度的值,该相应角度是在从与第一相机(例如,470)相关联的位置延伸到第一多个3D坐标和附加的多个3D坐标的相应的假想线对(pairs of imaginary lines)之间形成的。假想线对中的每个对可以包括延伸到第一多个3D坐标中的一个3D坐标的第一假想线,并且包括延伸到多个经变换的坐标(或更具体而言附加的多个3D坐标)中的对应一个坐标的第二假想线。例如,图18A和图18B描绘了在第一对假想线1801A、1801B之间形成的第一角1811。更具体地,第一对假想线可以包括从第一相机470延伸到第一多个3D坐标中的3D坐标[X1 Y1 Z1]T 相机1的第一假想线1801A,并且包括从第一相机470到附加的多个3D坐标中的对应的3D坐标[a’1b’1 c’1]T的第二假想线。在一些情况下,第一对假想线可以从第一相机(例如,470)的焦点延伸。
如上所述,重构误差角较少依赖于校准图案460与第一相机470和/或第二相机480之间的距离。例如,图18C图示了相对于图18B中示出的场景校准图案460被移动至更靠近第一相机470的情况。在这个示例中,对变换函数的估计可能会导致经变换的坐标[a’1 b’1c’1]T 相机1变得更接近于对应的坐标[X1 Y1 Z1]T 相机1,以至于具有较小的偏移。然而,重构误差角1811可以具有不管图18B和图18C中的场景之间的距离的改变而保持相同的值。
作为重构误差角的另一示例,图18D图示了在第二对假想线1802A、1802B之间形成的第二角1812。假想线1802A可以从第一相机470延伸到第一多个3D坐标中的另一个3D坐标[X2 Y2 Z2]T 相机1。假想线1802B可以从第一相机470延伸到多个经变换的坐标中的另一个3D坐标[a’2 b’2 c’2]T。在一些情况下,重构误差角可以是角度值,该角度值是由第一组多个3D坐标和多个经变换的坐标之间的相应的假想线对形成的相应角度(例如,1811、1812等)的平均或其他统计度量。
返回图14,在实施例中,方法1400可以包括步骤1415,其中计算系统110基于误差参数值来更新对变换函数的估计以生成对变换函数的经更新的估计。例如,如果变换函数是描述第一相机(例如470)和第二相机(例如480)之间的相对位置和朝向的矩阵,则步骤1415可以使用上面讨论的优化算法之一来调整矩阵的参数值,以便减小投影误差、重构误差、重构误差角和/或一些其他误差参数值。
在实施例中,方法1400可以包括步骤1417,其中计算系统110确定立体校准信息,该立体校准信息包括或基于对变换函数的经更新的估计。例如,立体校准信息可以等于对变换函数的经更新的估计。
在实施例中,当校准图案(例如460)以外的对象)(诸如仓库中的包裹)在第一相机视场(例如410)和第二相机视场(例如420)中时,计算系统110可以在步骤1417中被配置为接收由第一相机生成的第一后续图像和由第二相机生成的第二后续图像。方法1400还可以包括步骤1419,其中计算系统110可以被配置为基于第一后续图像、第二后续图像和立体校准信息来确定该对象的对象结构信息。
在实施例中,方法1400的一个或多个步骤可以被省略。例如,步骤1417和1419可以被省略。在实施例中,来自方法1400的一个或多个步骤可以与方法500的一个或多个步骤结合。例如,在一些情况下,步骤501-513可以被执行以确定与相机(例如470)相关联的固有相机校准信息,并且该固有相机校准可以被用于在步骤1405中确定对变换函数的估计和/或在步骤1411中将第二多个坐标变换为第二多个经变换的坐标。
各种实施例的简要描述
实施例A1包括一种计算系统或由一种由所述计算系统执行的方法。该实施例中的所述计算系统包括被配置为与具有相机视场的相机通信的通信接口,并且包括控制电路。所述控制电路可以执行所述方法(例如,当执行存储在非瞬态计算机可读介质中的指令时。在该实施例中,当所述相机已经生成了所述相机视场中的校准图案的校准图像时,并且当所述校准图案包括在图案坐标系中具有相应的既定图案元素坐标的多个图案元素时,所述控制电路被配置为通过以下操作来执行相机校准:接收所述校准图像;所述校准图像是表示所述校准图案的图像;确定表示所述多个图案元素在所述校准图像中出现的相应位置的多个图像坐标;基于所述多个图像坐标和所述既定图案元素坐标,确定对描述与所述相机相关联的镜头失真的一组镜头失真参数中的第一镜头失真参数的估计,其中,对所述第一镜头失真参数的所述估计是在将所述一组镜头失真参数中的第二镜头失真参数估计为零的同时被确定的或者是在不估计所述第二镜头失真参数的情况下被确定的;在对所述第一镜头失真参数的所述估计被确定之后,基于对所述第一镜头失真参数的所述估计确定对所述第二镜头失真参数的估计;以及确定包括对所述一组镜头失真参数的相应估计的相机校准信息,其中,对所述一组镜头失真参数的所述相应估计包括或基于对所述第一镜头失真参数的所述估计和对所述第二镜头失真参数的所述估计。在该实施例中,所述控制电路还被配置为当所述通信接口与所述相机和机器人进行通信时,在执行所述相机校准之后,接收由所述相机生成的后续图像,并生成用于控制机器人移动的移动命令,其中所述移动命令基于所述后续图像并基于所述相机校准信息。
实施例A2包括实施例A1的计算系统,其中,所述控制电路被配置为确定对所述第一镜头失真参数的所述估计,同时将所述一组镜头失真参数中的所有其他镜头失真参数估计为零,或者被配置为在不估计所述一组镜头失真参数的任何其他镜头失真参数的情况下确定对所述第一镜头失真参数的所述估计。
实施例A3包括实施例A1或A2的计算系统,其中,所述第一镜头失真参数描述与所述相机相关联的第一类型的镜头失真,并且所述第二镜头失真参数描述与所述相机相关联的第二类型的镜头失真。
实施例A4包括实施例A3的计算系统,其中所述第一类型的镜头失真是径向镜头失真,并且所述第二类型的镜头失真是切向镜头失真。
实施例A5包括实施例A1或A2的计算系统,其中,所述第一镜头失真参数和所述第二镜头失真参数描述与所述相机相关联的同一类型的镜头失真。
实施例A6包括实施例A5的计算系统。在该实施例中,所述一组镜头失真参数包括描述多个相应的径向多项式分量的多个镜头失真参数,所述多个相应的径向多项式分量是与所述相机相关联的径向镜头失真模型的一部分,并且其中所述第一镜头失真参数是所述多个镜头失真参数中的一个,并描述所述多个相应的径向多项式分量中的最低阶数的径向多项式分量。
实施例A7包括实施例A6的计算系统,其中,所述一组镜头失真参数包括第三镜头失真参数,其中所述第三镜头失真参数描述所述多个相应的径向多项式分量中的最高阶次的径向多项式分量。在该实施例中,对所述第二镜头失真参数的所述估计是基于对所述第一镜头失真参数的所述估计来确定的,并且是在将所述第三镜头失真参数估计为零的同时或者在不估计所述第三镜头失真参数的情况下确定的。
实施例A8包括实施例A7的计算系统,其中,对所述第一镜头失真参数的所述估计是其第一估计,并且是在第一相机校准阶级期间被确定的,并且其中,对所述第二镜头失真参数的所述估计在所述第一个相机校准阶级之后的后续相机校准阶级期间被确定。在该实施例中,所述一组镜头失真参数包括所述第三镜头失真参数和具有所述一组中的其他镜头失真参数的子集。此外,所述控制电路被配置为在所述后续相机校准阶级期间,在将所述第三镜头失真参数为零的同时,或者在不估计所述第三镜头失真参数的情况下,对镜头失真参数的所述子集中的镜头失真参数进行估计。另外,对所述子集中的镜头失真参数的估计包括确定对所述第二镜头失真参数的所述估计以及确定对所述第一镜头失真参数的第二估计。
实施例A9包括实施例A1-A8中任一项的计算系统,其中,所述相机校准信息描述一组投影参数,所述一组投影参数描述与所述相机相关联的相机图像投影,其中所述控制电路被配置为:确定对所述一组投影参数的相应估计;在对所述第一镜头失真参数的所述估计和对第二镜头失真参数的所述估计被确定之后,基于对所述一组投影参数的所述相应估计来确定对所述第一镜头失真参数的经更新的估计和对所述第二镜头失真参数的经更新的估计。在该实施例中,在所述一组投影参数被固定为对所述一组投影参数的所述相应估计处的值的同时,确定对所述第一镜头失真参数的所述经更新的估计和对所述第二镜头失真参数的所述经更新的估计。
实施例A10包括实施例A9的计算系统,其中,对所述第一镜头失真参数的所述经更新的估计和对所述第二镜头失真参数的所述经更新的估计是利用弯曲减小阶级确定的,在弯曲减小阶级中,所述控制电路被配置为执行以下操作:(a)针对所述弯曲减小阶级,基于对所述第一镜头失真参数的所述估计和基于对所述第二镜头失真参数的所述估计,确定对所述第一镜头失真参数的初始估计和对所述第二镜头失真参数的初始估计;(b)基于对所述第一镜头失真参数的所述初始估计,基于对所述第二镜头失真参数的所述初始估计并且基于所述校准图像,生成所述校准图像的修改版本,所述修改版本补偿与所述相机相关联的所述镜头失真;(c)确定所述校准图像的所述修改版本中的弯曲量,(d)基于所述校准图像的所述修改版本中的所述弯曲量来调整对所述第一镜头失真参数的所述初始估计和对所述第二镜头失真参数的所述初始估计,以便生成减小所述弯曲量的对所述第一镜头失真参数的经调整的估计和对所述第二镜头失真参数的经调整的估计,其中,对所述第一镜头失真参数的所述经调整的估计是对所述第一镜头失真参数的所述经更新的估计,并且对所述第二镜头失真参数的所述经调整的估计是对所述第二镜头失真参数的所述经更新的估计。在该实施例中,所述控制电路被配置为基于对所述第一镜头失真参数的所述经更新的估计和对所述第二镜头失真参数的所述经更新的估计来确定所述相机校准信息。
实施例A11包括实施例A9或A10的计算系统,其中,所述一组镜头失真参数包括第三镜头失真参数,其中对所述第三镜头失真参数的估计连同对所述第一镜头失真参数的所述经更新的估计和对所述第二镜头失真参数的所述经更新的估计是在所述弯曲减小阶级中确定的。在该实施例中,所述控制电路被配置为在对所述第一镜头失真参数的所述经更新的估计和对所述第二镜头失真参数的所述经更新的估计已经被确定之后,在将对所述第三镜头失真参数的估计固定为对所述第三镜头失真参数的所述估计处的值的同时,基于对所述第一镜头失真参数的所述经更新的估计、对所述第二镜头失真参数的所述经更新的估计以及对所述第三镜头失真参数的所述估计,确定对所述一组投影参数的相应的经更新的估计。
实施例A12包括根据实施例A1-A11中任一项的计算系统,其中所述一组镜头失真参数包括除了所述第一镜头失真参数和所述第二镜头失真参数以外的附加镜头失真参数。在该实施例中,所述控制电路被配置为:(a)基于对所述第一镜头失真参数的所述估计以及基于对所述第二镜头失真参数的所述估计,确定对所述第一镜头失真参数的经更新的估计,以及(b)基于对所述第一镜头失真参数的所述经更新的估计,确定对所述附加镜头失真参数的估计,其中,对所述附加镜头失真参数的所述估计是在所述第一镜头失真参数被固定为对所述第一镜头失真参数的所述经更新的估计处的值的同时被确定的。
实施例A13包括实施例A1-A12中任一项的计算系统,其中,所述通信接口被配置为与之通信的所述相机是第一相机,其中所述校准图像是第一校准图像,并且所述相机视场是第一相机视场,并且其中所述通信接口还被配置为与具有第二相机视场的第二相机通信。在该实施例中,所述控制电路被配置为当所述校准图案处于或已经处于所述第一相机视场和所述第二相机视场中时:接收第二校准图像,其中所述第二校准图像是表示所述校准图案的第二图像并且由所述第二相机生成;确定对用于描述所述第一相机和所述第二相机之间的空间关系的变换函数的估计;基于所述第一校准图像,确定描述所述多个图案元素相对于所述第一相机的相应位置的第一多个坐标;基于所述第二校准图像,确定描述所述多个图案元素相对于所述第二相机的相应位置的第二多个坐标;基于对所述变换函数的所述估计,将所述第二多个坐标变换为相对于所述第一相机的多个经变换的坐标;确定描述所述第一多个坐标和所述多个经变换的坐标之间的相应差异的误差参数值;以及基于所述误差参数值更新对所述变换函数的所述估计,以生成对所述变换函数的经更新的估计。
实施例A14包括实施例A13的计算系统。在该实施例中,所述第一多个坐标是表示所述多个图案元素在所述第一校准图像中出现的相应位置的多个相应的图像坐标。在该实施例中,所述多个经变换的坐标是表示所述多个图案元素的附加的多个相应的图像坐标,并且其中所述控制电路被配置为基于用于描述所述第一相机的校准的所述相机校准信息来确定所述附加的多个相应的图像坐标。
实施例A15包括实施例A13的计算系统。在该实施例中,所述第一多个坐标是所述图案元素在第一相机坐标系中的多个3D坐标,所述第一相机坐标系是所述第一相机的坐标系。在该实施例中,所述多个经变换的坐标是所述图案元素在所述第一相机坐标系中的附加的多个3D坐标。
实施例A16包括实施例A15的计算系统。在该实施例中,所述误差参数值基于表示所述第一多个3D坐标与所述附加的多个3D坐标之间的相应距离的值。
实施例A17包括实施例A15的计算系统。在该实施例中,所述误差参数值基于表示在从与所述第一相机相关联的位置延伸的相应假想线对之间形成的相应角度的值,所述相应的假想线对中的每个对具有延伸到所述第一多个3D坐标中的相应3D坐标的相应第一假想线,并且具有延伸到所述附加的多个3D坐标中的相应3D坐标的相应第二假想线。
实施例B1涉及一种计算系统或一种由该计算系统执行的方法。所述方法可以在例如所述计算系统执行存储在非瞬态计算机可读介质上的指令时执行。在该实施例中,所述计算系统包括被配置为与具有第一相机视场的第一相机和具有第二相机视场的第二相机进行通信的通信接口,并且包括控制电路。当具有多个图案元素的校准图案在所述第一相机视场中并在所述第二相机视场中或已经在所述第一相机视场中并已经在所述第二相机视场中时,并且当所述第一相机已经生成了所述校准图案的第一校准图像并且所述第二相机已经生成了所述校准图案的第二校准图像时,所述控制电路被配置为:接收所述第一校准图像,其中所述第一校准图像是表示所述校准图案的第一图像;接收第二校准图像,其中所述第二校准图像是表示所述校准图案的第二图像;确定对用于描述所述第一相机和所述第二相机之间的空间关系的变换函数的估计;基于所述第一校准图像,确定描述所述多个所述图案元素相对于所述第一相机的相应位置的第一多个坐标;基于所述第二校准图像,确定描述所述多个所述图案元素相对于所述第二相机的相应位置的第二多个坐标;基于对所述变换函数的所述估计,将所述第二多个坐标变换为相对于所述第一相机的多个经变换的坐标;确定描述所述第一多个坐标和所述多个经变换的坐标之间的相应差异的误差参数值;基于所述误差参数值,更新对所述变换函数的所述估计,以生成对所述变换函数的经更新的估计;以及确定立体校准信息,所述立体校准信息包括或基于对所述变换函数的所述经更新的估计。在该实施例中,所述控制电路还被配置为:当所述校准图案以外的对象在所述第一相机视场并且在所述第二相机视场中时,接收由所述第一相机生成的第一后续图像以及由所述第二相机生成的第二后续图像,并基于所述第一后续图像、所述第二后续图像和所述立体校准信息确定表示所述对象的对象结构信息。
实施例B2包括实施例B1的计算系统。在该实施例中,所述第一多个坐标是用于表示所述多个图案元素出现在所述第一校准图像中出现的相应位置的第一多个相应的图像坐标。在该实施例中,当所述通信接口与所述第一相机进行通信或已经与所述第一相机进行通信时,所述控制电路被配置为确定描述所述第一相机视场中的位置如何被投影到所述第一相机的图像平面的固有相机校准信息。此外,在该实施例中,所述多个经变换的坐标是表示所述多个图案元素的附加的多个相应的图像坐标,并且其中所述控制电路被配置为基于所述固有相机校准信息来确定所述附加的多个相应的图像坐标。
实施例B3包括实施例B1的计算系统。在该实施例中,所述第一多个坐标是表示第一相机坐标系中的所述图案元素的多个3D坐标,所述第一相机坐标系是所述第一相机的坐标系。在该实施例中,所述多个经变换的坐标是表示所述第一相机坐标系中的所述图案元素的附加的多个3D坐标。
实施例B4包括实施例B3的计算系统。在该实施例中,所述误差参数值基于表示所述第一多个3D坐标与所述附加的多个3D坐标之间的相应距离的值。
实施例B5包括实施例B3的计算系统。在该实施例中,所述误差参数值是角度值,所述角度值基于表示在从与所述第一相机相关联的位置延伸的相应假想线对之间形成的相应角度的值,所述相应的假想线对中的每个对具有1)延伸到所述第一多个3D坐标中的相应3D坐标的相应第一假想线,以及2)延伸到所述附加的多个3D坐标中的相应3D坐标的相应第二假想线。
实施例B6包括实施例B5的计算系统。在该实施例中,所述相应假想线对从其延伸的所述位置是所述第一相机的焦点。
实施例B7包括实施例B1-B6中任一项的计算系统。在该实施例中,所述变换函数是描述所述第一相机和所述第二相机之间的相对位置和相对朝向的变换矩阵,并且其中更新对所述变换函数的所述估计包括更新所述变换矩阵以减小所述误差参数值。
实施例B8包括实施例B1-B7中任一项的计算系统。在该实施例中,当所述校准图案的所述多个图案元素具有相应的既定图案元素坐标时,所述控制电路被配置为:基于所述第一多个坐标和所述既定的图案元素坐标,确定对描述与所述第一相机相关联的镜头失真的一组镜头失真参数中的第一镜头失真参数的估计,其中,对所述第一镜头失真参数的所述估计是在将所述一组镜头失真参数中的第二镜头失真参数估计为零的同时被确定的,或者是在不估计所述第二镜头失真参数的情况下被确定的;在对所述第一镜头失真参数的所述估计被确定之后,基于对所述第一镜头失真参数的所述估计确定对所述第二镜头失真参数的估计;以及确定相机校准信息,所述相机校准信息描述对所述第一相机的校准的并且包括对所述一组镜头失真参数的相应估计。在该实施例中,对所述一组镜头失真参数的所述相应估计包括或基于对所述第一镜头失真参数的所述估计和对所述第二镜头失真参数的所述估计。
尽管上面已经描述了各种实施例,但是应当理解,它们仅作为本发明的说明和示例而呈现,而不是作为限制。对于相关领域的技术人员将清楚的是,在不脱离本发明的精神和范围的情况下,可以在其中在形式和细节上进行各种改变。因此,本发明的广度和范围不应由任何上述示例性实施例限制,而应仅根据所附权利要求及其等同物来限定。还应该理解,本文讨论的每个实施例的每个特征以及本文引用的每个参考文献的每个特征可以与任何其他实施例的特征结合使用。本文讨论的所有专利和出版物均通过引用整体并入本文。

Claims (20)

1.一种计算系统,包括:
通信接口,所述通信接口被配置为与具有相机视场的相机通信;
控制电路,当所述相机已经生成了所述相机视场中的校准图案的校准图像时,并且当所述校准图案包括在图案坐标系中具有相应的既定图案元素坐标的多个图案元素时,所述控制电路被配置为通过以下操作来执行相机校准:
接收所述校准图像,所述校准图像是表示所述校准图案的图像;
确定表示所述多个图案元素在所述校准图像中出现的相应位置的多个图像坐标;
基于所述多个图像坐标和所述既定图案元素坐标,确定对描述与所述相机相关联的镜头失真的一组镜头失真参数中的第一镜头失真参数的估计,其中,对所述第一镜头失真参数的所述估计是在将所述一组镜头失真参数中的第二镜头失真参数估计为零的同时被确定,或者是在不估计所述第二镜头失真参数的情况下被确定;
在对所述第一镜头失真参数的所述估计被确定之后,基于对所述第一镜头失真参数的所述估计确定对所述第二镜头失真参数的估计;以及
确定包括对所述一组镜头失真参数的相应估计的相机校准信息,其中,对所述一组镜头失真参数的所述相应估计包括或基于对所述第一镜头失真参数的所述估计和对所述第二镜头失真参数的所述估计,
其中所述控制电路还被配置为当所述通信接口与所述相机和机器人进行通信时,在执行所述相机校准之后,接收由所述相机生成的后续图像,并生成用于控制机器人移动的移动命令,其中所述移动命令基于所述后续图像并基于所述相机校准信息。
2.如权利要求1所述的计算系统,其中,所述控制电路被配置为在将所述一组镜头失真参数中的所有其他镜头失真参数估计为零的同时确定对所述第一镜头失真参数的所述估计,或者被配置为在不估计所述一组镜头失真参数中的任何其他镜头失真参数的情况下确定对所述第一镜头失真参数的所述估计。
3.如权利要求1所述的计算系统,其中,所述第一镜头失真参数描述与所述相机相关联的第一类型的镜头失真,并且所述第二镜头失真参数描述与所述相机相关联的第二类型的镜头失真。
4.如权利要求3所述的计算系统,其中,所述第一类型的镜头失真是径向镜头失真,并且所述第二类型的镜头失真是切向镜头失真。
5.如权利要求1所述的计算系统,其中,所述第一镜头失真参数和所述第二镜头失真参数描述与所述相机相关联的同一类型的镜头失真。
6.如权利要求5所述的计算系统,其中,所述一组镜头失真参数包括描述多个相应的径向多项式分量的多个镜头失真参数,所述多个相应的径向多项式分量是与所述相机相关联的径向镜头失真模型的一部分,并且其中所述第一镜头失真参数是所述多个镜头失真参数中的一个,并描述所述多个相应的径向多项式分量中的最低阶次的径向多项式分量。
7.如权利要求6所述的计算系统,其中,所述一组镜头失真参数包括第三镜头失真参数,其中所述第三镜头失真参数描述所述多个相应的径向多项式分量中的最高阶次的径向多项式分量,以及
其中对所述第二镜头失真参数的所述估计基于对所述第一镜头失真参数的所述估计来确定,并且是在将所述第三镜头失真参数估计为零的同时或者在不估计所述第三镜头失真参数的情况下确定的。
8.如权利要求7所述的计算系统,其中,对所述第一镜头失真参数的所述估计是所述第一镜头失真参数的第一估计,并且是在第一相机校准阶级期间被确定的,并且其中对所述第二镜头失真参数的所述估计是在所述第一相机校准阶级之后的后续相机校准阶级期间被确定的,
其中,所述一组镜头失真参数包括所述第三镜头失真参数和具有所述一组中的其他镜头失真参数的子集,
其中,所述控制电路被配置为在所述后续相机校准阶级期间,在将所述第三镜头失真参数估计为零的同时,或者在不估计所述第三镜头失真参数的情况下,估计镜头失真参数的所述子集中的镜头失真参数,
其中,对所述子集中的镜头失真参数的估计包括确定对所述第二镜头失真参数的所述估计以及确定对所述第一镜头失真参数的第二估计。
9.如权利要求1所述的计算系统,其中,所述相机校准信息描述一组投影参数,所述一组投影参数描述与所述相机相关联的相机图像投影,其中所述控制电路被配置为:
确定对所述一组投影参数的相应估计;
在对所述第一镜头失真参数的所述估计和对第二镜头失真参数的所述估计被确定之后,基于对所述一组投影参数的所述相应估计来确定对所述第一镜头失真参数的经更新的估计和对所述第二镜头失真参数的经更新的估计,以及
其中,在所述一组投影参数被固定为所述一组投影参数的所述相应估计处的值的同时,确定对所述第一镜头失真参数的所述经更新的估计和对所述第二镜头失真参数的所述经更新的估计。
10.如权利要求9所述的计算系统,其中,对所述第一镜头失真参数的所述经更新的估计和对所述第二镜头失真参数的所述经更新的估计是利用弯曲减小阶级来确定的,在弯曲减小阶级中,所述控制电路被配置为执行以下操作:
(a)针对所述弯曲减小阶级,基于对所述第一镜头失真参数的所述估计和基于对所述第二镜头失真参数的所述估计,确定对所述第一镜头失真参数的初始估计和对所述第二镜头失真参数的初始估计;
(b)基于对所述第一镜头失真参数的所述初始估计,基于对所述第二镜头失真参数的所述初始估计并且基于所述校准图像,生成所述校准图像的修改版本,所述修改版本补偿与所述相机相关联的所述镜头失真;
(c)确定所述校准图像的所述修改版本中的弯曲量,
(d)基于所述校准图像的所述修改版本中的所述弯曲量来调整对所述第一镜头失真参数的所述初始估计和对所述第二镜头失真参数的所述初始估计,以便生成减小所述弯曲量的对所述第一镜头失真参数的经调整的估计和对所述第二镜头失真参数的经调整的估计,其中,对所述第一镜头失真参数的所述经调整的估计是对所述第一镜头失真参数的所述经更新的估计,并且对所述第二镜头失真参数的所述经调整的估计是对所述第二镜头失真参数的所述经更新的估计,以及
其中,所述控制电路被配置为基于对所述第一镜头失真参数的所述经更新的估计和对所述第二镜头失真参数的所述经更新的估计来确定所述相机校准信息。
11.如权利要求9所述的计算系统,其中,所述一组镜头失真参数包括第三镜头失真参数,其中对所述第三镜头失真参数的估计连同对所述第一镜头失真参数的所述经更新的估计和对所述第二镜头失真参数的所述经更新的估计在所述弯曲减小阶级中确定,
其中,所述控制电路被配置为:在对所述第一镜头失真参数的所述经更新的估计和所述第二镜头失真参数的所述经更新的估计已经被确定之后,在将对所述第三镜头失真参数的所述估计固定为对所述第三镜头失真参数的所述估计处的值的同时,基于对所述第一镜头失真参数的所述经更新的估计、对所述第二镜头失真参数的所述经更新的估计以及对所述第三镜头失真参数的所述估计,确定对所述一组投影参数的相应的经更新的估计。
12.如权利要求1所述的计算系统,其中,所述一组镜头失真参数包括除了所述第一镜头失真参数和所述第二镜头失真参数以外的附加镜头失真参数,
其中,所述控制电路被配置为:
(a)基于对所述第一镜头失真参数的所述估计以及基于对所述第二镜头失真参数的所述估计,确定对所述第一镜头失真参数的经更新的估计,以及
(b)基于对所述第一镜头失真参数的所述经更新的估计,确定对所述附加镜头失真参数的估计,其中,对所述附加镜头失真参数的所述估计是在所述第一镜头失真参数被固定为对所述第一镜头失真参数的所述经更新的估计处的值时被确定的。
13.如权利要求1所述的计算系统,其中,所述通信接口被配置为与之通信的所述相机是第一相机,其中所述校准图像是第一校准图像,并且所述相机视场是第一相机视场,并且其中所述通信接口还被配置为与具有第二相机视场的第二相机通信,
其中,所述控制电路被配置为当所述校准图案处于或已经处于所述第一相机视场和所述第二相机视场中时进行以下操作:
接收第二校准图像,其中所述第二校准图像是表示所述校准图案的第二图像并且由所述第二相机生成;
确定对用于描述所述第一相机和所述第二相机之间的空间关系的变换函数的估计;
基于所述第一校准图像,确定描述所述多个图案元素相对于所述第一相机的相应位置的第一多个坐标;
基于所述第二校准图像,确定描述所述多个图案元素相对于所述第二相机的相应位置的第二多个坐标;
基于对所述变换函数的所述估计,将所述第二多个坐标变换为相对于所述第一相机的多个经变换的坐标;
确定描述所述第一多个坐标和所述多个经变换的坐标之间的相应差异的误差参数值;以及
基于所述误差参数值更新对所述变换函数的所述估计,以生成对所述变换函数的经更新的估计。
14.如权利要求13所述的计算系统,其中,所述第一多个坐标是表示所述多个图案元素在所述第一校准图像中出现的相应位置的所述多个相应的图像坐标,并且
其中,所述多个经变换的坐标是表示所述多个图案元素的附加的多个相应的图像坐标,并且其中所述控制电路被配置为基于用于描述所述第一相机的校准的所述相机校准信息来确定所述附加的多个相应的图像坐标。
15.如权利要求13所述的计算系统,其中,所述第一多个坐标是第一相机坐标系中的所述图案元素的多个3D坐标,所述第一相机坐标系是所述第一相机的坐标系,并且
其中,所述多个经变换的坐标是所述第一相机坐标系中的所述图案元素的附加的多个3D坐标。
16.如权利要求15所述的计算系统,其中,所述误差参数值基于表示所述第一多个3D坐标与所述附加的多个3D坐标之间的相应距离的值。
17.如权利要求15所述的计算系统,其中,所述误差参数值基于表示相应角度的值,所述相应角度是在从与所述第一相机相关联的位置延伸的相应假想线对之间形成的,所述相应的假想线对中的每个对具有延伸到所述第一多个3D坐标中的相应3D坐标的相应第一假想线,并且具有延伸到所述附加的多个3D坐标中的相应3D坐标的相应第二假想线。
18.一种其上具有指令的非瞬态计算机可读介质,所述指令当由计算系统的控制电路执行时,使得所述控制电路:
接收校准图像,其中所述校准图像是从非瞬态计算机可读介质或经由所述计算系统的通信接口接收的,所述通信接口被配置为与具有相机视场的相机通信,其中所述校准图像是当校准图案位于所述相机视场中时由所述相机生成的,其中所述校准图像是表示所述校准图案的图像,所述校准图案具有在图案坐标系中具有相应的既定图案元素坐标的多个图案元素;
确定用于表示所述多个图案元素在所述校准图像中出现的相应位置的多个图像坐标;
基于所述多个图像坐标和所述既定图案元素坐标,确定对描述与所述相机相关联的镜头失真的一组镜头失真参数中的第一镜头失真参数的估计,其中,对所述第一镜头失真参数的所述估计在将所述一组镜头失真参数中的第二镜头失真参数估计为零时被确定,或者在不估计所述第二镜头失真参数的情况下被确定;
在对所述第一镜头失真参数的所述估计被确定之后,基于对所述第一镜头失真参数的所述估计确定对所述第二镜头失真参数的估计;以及
确定相机校准信息,所述相机校准信息包括对所述一组镜头失真参数的相应估计,其中,对所述一组镜头失真参数的所述相应估计包括或基于对所述第一镜头失真参数的所述估计和对所述第二镜头失真参数的所述估计,
其中,所述指令当由所述控制电路执行时以及当所述通信接口与所述相机和机器人进行通信时,还使所述控制电路在所述相机校准已经被执行之后接收由所述相机生成的后续图像,并且生成用于控制机器人移动的移动命令,其中所述移动命令基于所述后续图像并基于所述相机校准信息。
19.如权利要求18所述的非瞬态计算机可读介质,其中,所述指令当由所述控制电路执行时,还使所述控制电路在将所述一组镜头失真参数中的所有其他镜头失真参数估计为零的同时确定对所述第一镜头失真参数的所述估计,或者在不估计所述一组镜头失真参数中的任何其他镜头失真参数的情况下确定对所述第一镜头失真参数的所述估计。
20.一种由计算系统执行的用于相机校准的方法,包括:
由所述计算系统接收校准图像,其中,所述计算系统包括通信接口,所述通信接口被配置为与具有相机视场的相机通信,其中所述校准图像是当校准图案位于所述相机视场中时由所述相机生成的,其中所述校准图像是表示所述校准图案的图像,所述校准图案具有在图案坐标系中具有相应的既定图案元素坐标的多个图案元素;
确定用于表示所述多个图案元素在所述校准图像中出现的相应位置的多个图像坐标;
基于所述多个图像坐标和所述既定图案元素坐标,确定对描述与所述相机相关联的镜头失真的一组镜头失真参数中的第一镜头失真参数的估计,其中,对所述第一镜头失真参数的所述估计是在将所述一组镜头失真参数中的第二镜头失真参数估计为零时被确定的,或者是在不估计所述第二镜头失真参数的情况下被确定的;
在对所述第一镜头失真参数的所述估计被确定之后,基于对所述第一镜头失真参数的所述估计确定对所述第二镜头失真参数的估计;
确定相机校准信息,所述相机校准信息包括对所述一组镜头失真参数的相应估计,其中,对所述一组镜头失真参数的所述相应估计包括或基于对所述第一镜头失真参数的所述估计和对所述第二镜头失真参数的所述估计,
在所述相机校准已经被执行之后,接收由所述相机生成的后续图像,以及
生成用于控制机器人移动的移动命令,其中所述移动命令基于所述后续图像并基于所述相机校准信息。
CN202010602655.1A 2020-02-04 2020-06-29 执行自动相机校准的方法和系统 Pending CN113284083A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010710294.2A CN111862051B (zh) 2020-02-04 2020-06-29 执行自动相机校准的方法和系统

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062969673P 2020-02-04 2020-02-04
US62/969,673 2020-02-04
US16/871,361 2020-05-11
US16/871,361 US11508088B2 (en) 2020-02-04 2020-05-11 Method and system for performing automatic camera calibration

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010710294.2A Division CN111862051B (zh) 2020-02-04 2020-06-29 执行自动相机校准的方法和系统

Publications (1)

Publication Number Publication Date
CN113284083A true CN113284083A (zh) 2021-08-20

Family

ID=77062950

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010602655.1A Pending CN113284083A (zh) 2020-02-04 2020-06-29 执行自动相机校准的方法和系统

Country Status (2)

Country Link
US (1) US11508088B2 (zh)
CN (1) CN113284083A (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6800506B1 (ja) * 2020-02-04 2020-12-16 株式会社Mujin 自動カメラキャリブレーションを実施する方法及びシステム
EP4100874A1 (en) 2020-02-06 2022-12-14 Berkshire Grey Operating Company, Inc. Systems and methods for camera calibration with a fiducial of unknown position on an articulated arm of a programmable motion device
US11999066B2 (en) * 2020-08-04 2024-06-04 Artificial, Inc. Robotics calibration in a lab environment
US11912513B1 (en) * 2021-04-14 2024-02-27 Amazon Technologies, Inc. Robotic system camera calibration and localization using robot-mounted registered patterns
CN113744343B (zh) * 2021-08-09 2023-12-05 佛山智能装备技术研究院 基于结构光传感器的手眼标定方法、系统及存储介质
CN114298923B (zh) * 2021-12-13 2024-09-13 吉林大学 一种用于机器视觉测量系统的镜头评估及图像恢复方法
CN117911541B (zh) * 2024-03-19 2024-07-16 杭州灵西机器人智能科技有限公司 沙姆相机标定方法、装置和系统
CN118544360A (zh) * 2024-07-25 2024-08-27 佛山大学 基于激光补偿的机器人视觉检测方法、系统、终端及介质

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE543093T1 (de) 1998-09-10 2012-02-15 Wallac Oy Analysegerät für ein grossflächiges bild
JP4825980B2 (ja) 2007-03-06 2011-11-30 国立大学法人岩手大学 魚眼カメラの校正方法。
CN101867703B (zh) 2009-04-16 2012-10-03 辉达公司 用于校正图像的系统和方法
US20120056982A1 (en) 2010-09-08 2012-03-08 Microsoft Corporation Depth camera based on structured light and stereo vision
WO2012056982A1 (ja) 2010-10-25 2012-05-03 コニカミノルタオプト株式会社 画像処理方法、画像処理装置及び撮像装置
US9438897B2 (en) 2011-07-25 2016-09-06 Universidade De Coimbra Method and apparatus for automatic camera calibration using one or more images of a checkerboard pattern
JP5832278B2 (ja) * 2011-12-26 2015-12-16 三菱重工業株式会社 カメラ計測システムのキャリブレーション方法
BR112015007050A2 (pt) * 2012-10-05 2017-07-04 Beckman Coulter Inc sistema e método para autoalinhamento baseado em câmera
US9860494B2 (en) 2013-03-15 2018-01-02 Scalable Display Technologies, Inc. System and method for calibrating a display system using a short throw camera
US10176554B2 (en) 2015-10-05 2019-01-08 Google Llc Camera calibration using synthetic images
WO2018179039A1 (ja) * 2017-03-27 2018-10-04 日本電気株式会社 カメラパラメータ推定装置、方法およびプログラム
CN112470188B (zh) * 2018-05-25 2024-07-30 派克赛斯有限责任公司 用于多相机放置的系统和方法
CN110378879B (zh) 2019-06-26 2021-03-02 杭州电子科技大学 一种桥梁裂缝检测方法
US11657535B2 (en) * 2019-10-15 2023-05-23 Nvidia Corporation System and method for optimal camera calibration

Also Published As

Publication number Publication date
US20210241491A1 (en) 2021-08-05
US11508088B2 (en) 2022-11-22

Similar Documents

Publication Publication Date Title
CN113284083A (zh) 执行自动相机校准的方法和系统
CN111015665B (zh) 执行自动相机校准以进行机器人控制的方法和系统
JP5393318B2 (ja) 位置姿勢計測方法及び装置
US11072074B2 (en) Calibration and operation of vision-based manipulation systems
JP6079333B2 (ja) 校正装置、方法及びプログラム
WO2022007886A1 (zh) 一种相机自动标定优化方法及相关系统、设备
CN109993798B (zh) 多摄像头检测运动轨迹的方法、设备及存储介质
WO2022271831A1 (en) Systems and methods for a vision guided end effector
JP6677522B2 (ja) 情報処理装置、情報処理装置の制御方法およびプログラム
JP7052788B2 (ja) カメラパラメータ推定装置、カメラパラメータ推定方法、及びプログラム
WO2016042779A1 (ja) 三角測量装置、三角測量方法およびそのプログラムを記録した記録媒体
JP2015090298A (ja) 情報処理装置、情報処理方法
JP7462769B2 (ja) 物体の姿勢の検出および測定システムを特徴付けるためのシステムおよび方法
CN109887002A (zh) 图像特征点的匹配方法、装置、计算机设备和存储介质
CN114474056A (zh) 一种面向抓取操作的单目视觉高精度目标定位方法
CN109389642A (zh) 视觉系统对机器人的标定方法、系统和具有存储功能装置
US20230025684A1 (en) Method and system for performing automatic camera calibration
CN111862051B (zh) 执行自动相机校准的方法和系统
CN115972192A (zh) 具有可变空间分辨率的3d计算机视觉系统
CN111823222B (zh) 单目相机多视场视觉引导装置及引导方法
WO2024070979A1 (ja) 画像処理装置、画像処理方法、プログラム及び撮像装置
WO2024070925A1 (ja) 画像処理装置、画像処理方法及びプログラム
WO2024069886A1 (ja) 演算装置、演算システム、ロボットシステム、演算方法及びコンピュータプログラム
Tezaur et al. Using images of partially visible chart for multi-camera system calibration
CN116117797A (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