一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于执行或促进物理边缘检测的方法和计算系统与流程

2022-02-25 10:03:07 来源:中国专利 TAG:
用于执行或促进物理边缘检测的方法和计算系统与流程

本申请要求于2021年5月27日提交的题为“用于执行或促进物理边缘检测的方法和计算系统(METHOD AND COMPUTING SYSTEM FOR PERFORMING OR FACILITATING PHYSICAL EDGE DETECTION)”的第17/331,878号美国申请的优先权,该美国申请要求2020年6月4日提交的题为“具有视觉机构的机器人系统(ROBOTIC SYSTEM WITH VISION MECHANISM)”的第63/034,403号美国临时申请的优先权,这些申请的全部内容通过引用并入本文。

技术领域

本公开涉及用于执行或促进物理边缘检测的计算系统和方法。

背景技术

随着自动化变得更加普遍,机器人正在更多环境中(诸如在仓储和零售环境中)被使用。例如,机器人可用于与仓库中的对象进行交互。机器人的移动可以是固定的,或者可以基于输入,诸如由仓库中的传感器生成的信息。



技术实现要素:

本公开的一个方面涉及一种计算系统或一种由该计算系统执行的方法。计算系统可包括通信接口和至少一个处理电路。通信接口可以被配置为与机器人以及与具有相机视场的相机进行通信。至少一个处理电路可以被配置为当一组对象在相机视场中时,执行以下操作:接收表示该组对象的图像信息,其中图像信息由相机生成;从图像信息中识别与该组对象相关联的多个候选边缘,其中多个候选边缘是或包括形成用于表示该组对象的物理边缘的相应候选者的相应图像位置或物理位置集合;当多个候选边缘包括基于第一图像区域和第二图像区域之间的边界形成的第一候选边缘时,确定图像信息在第一候选边缘处是否满足定义的暗度条件,其中第一图像区域比第二图像区域更暗,其中第一图像区域和第二图像区域是由图像信息描述的相应区域;选择多个候选边缘的子集以形成用于表示该组对象的物理边缘的选择的候选边缘子集,其中该选择包括:基于图像信息在第一候选边缘处是否满足定义的暗度条件来确定是否通过将第一候选边缘包括在所选择的候选边缘子集中来保留第一候选边缘作为用于表示该组对象的物理边缘中的至少一个的候选者。

附图说明

图1A-图1D示出了与本文的实施例一致的用于执行或促进物理边缘检测的系统。

图2A-图2D提供了示出与本文的实施例一致的被配置为执行或促进物理边缘检测的计算系统的框图。

图3A-图3C示出了根据本文的实施例的可以在其中执行物理边缘检测的环境。

图4提供了示出根据本文的实施例的处理候选边缘的方法的流程图。

图5A和图5B示出了根据本文的实施例的可以从中识别候选边缘的示例图像信息。

图6A和图6B示出了根据本文的实施例的从图像信息识别的候选边缘。

图7A-图7C示出了根据本文的实施例的从图像信息识别的候选边缘。

图8示出了根据本文的实施例的在可在其中基于漫反射来生成图像的环境,在该漫反射中入射光从相机视场中的对象反射。

图9A-图9C示出了候选边缘周围的图像强度分布(image intensity profile),而图9D示出了根据本文的实施例的在对应于候选边缘的位置周围的区域的深度值。

图10A-图10C示出了根据本文的实施例的候选边缘周围的图像强度分布。

图11A-图11C示出了根据本文的实施例的物理边缘周围的位置的深度值,而图11D示出了根据本文的实施例的表示物理边缘的图像的图像强度分布。

图12A-图12C示出了根据本文的实施例的表示具有比相邻图像区域更暗的图像区域的对象的图像的图像强度分布。

图13A-图13C示出了根据本文的实施例的表示被物理间隙分开的并且其中一个对象比另一个对象更暗的两个对象的图像的图像强度分布。

具体实施方式

本公开的一个方面涉及使用表示一组对象的图像信息来检测或以其他方式识别该组对象的物理边缘。例如,2D图像可以表示一组盒子,并且可以包括潜在地表示该组盒子的物理边缘的候选边缘。计算系统可以使用图像信息中的候选边缘来区分在图像信息中表示的单个对象。在一些情况下,计算系统可以使用识别单个盒子的信息来控制涉及单个盒子的机器人交互。例如,机器人交互可以包括卸垛操作,在该卸垛操作中机器人的末端执行器装置接近对象中的一个,拾取对象,并将对象移动到目的地位置。

在一些情况下,2D图像或其他图像信息可能包括作为伪边缘的候选边缘,该伪边缘可能是与相机视场中对象的任何实际物理边缘不对应的候选边缘。因此,本公开的一个方面涉及评估候选边缘以确定候选边缘对应于实际物理边缘而不是伪边缘的置信水平。在实施例中,这样的确定可以基于关于某些物理边缘将很可能如何出现在图像中的预期或预测。更特别地,这样的确定可以基于一种预期,该预期为如果物理边缘与对象之间的物理间隙相关联(例如,物理边缘形成物理间隙的一侧),则这样的物理间隙在图像中可能看起来非常暗,和/或可以具有一种图像强度分布,该图像强度分布的特征在于对应于物理间隙的图像区域中的图像强度的尖峰(spiked)降低。因此,本公开的方法或计算系统可以基于对象之间的物理间隙(尤其是狭窄的物理间隙)将很可能由具有与物理间隙在图像中看起来可以有多暗有关的某些特性的图像来表示的预期来操作。这样的图像特性或特征可以被称为暗先验(dark prior),并且本公开可以涉及检测暗先验,其中暗先验的存在可以增加关于候选边缘是否对应于实际物理边缘的置信水平。

在实施例中,本公开的方法或系统可以确定图像在候选边缘处是否满足定义的暗度条件,其中定义的暗度条件可以涉及检测暗先验。更特别地,定义的暗度条件可以由暗度阈值标准和/或尖峰强度分布标准来定义,这将在下面更详细地讨论。在此实施例中,如果计算系统或方法确定图像在候选边缘处满足定义的暗度条件,则可能存在候选边缘对应于实际物理边缘(诸如形成两个对象之间的物理间隙的一侧的物理边缘)的更大的置信水平。在某些情况下,如果图像在候选边缘处不满足定义的暗度条件,则候选边缘是伪边缘的可能性更大。

本公开的一方面涉及使用2D图像信息来补偿3D图像信息中的限制,反之亦然。例如,如果多个对象(诸如两个或更多个盒子)彼此紧挨着放置,并且被狭窄的物理间隙分开,则3D图像信息可能没有足够高水平的分辨率来捕获或以其他方式表示物理间隙。因此,3D图像信息在用于区分多个对象中的单个对象的能力方面可能有限制,尤其是如果多个对象相对于生成3D图像信息的相机具有相同的深度。在这样的示例中,多个对象之间的物理间隙可以在2D图像信息中表示。更特别地,物理间隙可以由可以满足定义的暗度条件的图像区域表示。与这样的图像区域相关联的候选边缘因此可以以高置信水平来表示对象的物理边缘。在这样的情况下,2D图像信息中的候选边缘在区分一组对象中的单个对象时可以是有用的。因此,在某些情况下,2D图像信息可以提供区分单个对象的增强的能力。

在某些情况下,3D图像信息可以补偿2D图像信息中的限制。例如,2D图像在2D图像中的某个候选边缘处可能不满足定义的暗度条件。在这样的情况下,候选边缘对于对应于相机视场中的任何实际物理边缘对象可能具有低置信水平。如果2D图像信息中的候选边缘对应于3D图像信息中的候选边缘,则3D图像信息可用于补偿2D图像信息中的此限制。更特别地,2D图像信息中的候选边缘可以映射到3D图像信息中存在深度的急剧改变的一个位置或一组位置。在这样的情况下,3D图像信息可用于增加2D图像信息中的候选边缘与实际物理边缘对应的置信水平。

在实施例中,3D图像信息可以用于识别对象的表面(例如,顶表面),并且候选边缘可以基于两个表面之间存在过渡的位置来识别。例如,可以基于一组位置来识别表面,该组位置在3D图像信息中具有相应的深度值,这些深度值彼此偏离不超过定义的测量方差阈值。定义的测量方差阈值可以描述成像噪声、制造公差或可能在3D图像信息中引入深度测量的随机波动的其他因素的影响。被识别的表面可以与作为相应深度值的平均值的深度值相关联。在某些实现中,可以基于识别在3D图像信息中识别的两个表面之间的大于定义的深度差阈值的深度过渡来在3D图像信息中检测候选边缘。

图1A示出了用于执行或促进物理边缘检测的系统1000,物理边缘检测可以涉及使用表示一个或多个对象的图像信息来检测或以其他方式识别一个或多个对象的物理边缘。更特别地,系统1000可以包括计算系统1100和相机1200。在此示例中,相机1200可以被配置为生成图像信息,该图像信息描述或以其他方式表示相机1200所处的环境,或更具体地表示相机1200的视场(也被称为相机视场)中的环境。环境可以是例如仓库、制造工厂、零售空间或某些其他场所。在这样的情况下,图像信息可以表示位于这样的场所的对象,诸如盒子、柜子、箱子、板条箱或其他容器。系统1000可以被配置为诸如通过使用图像信息区分相机视场中的单个对象来生成、接收和/或处理图像信息以基于图像信息执行对象识别或对象注册,和/或基于图像信息执行机器人运动计划,如下面更详细地讨论的(在本公开中术语“和/或”以及“或”可互换使用)。机器人运动计划可以用于例如控制场所处的机器人以促进机器人与容器或其他对象之间的机器人交互。计算系统1100和相机1200可以位于相同的场所,或者可以彼此远离。例如,计算系统1100可以是托管在远离仓库或零售空间的数据中心中的云计算平台的一部分,并且可以经由网络连接与相机1200通信。

在实施例中,相机1200(也被称为图像感测设备)可以是2D相机和/或3D相机。例如,图1B示出了系统1000A(其可以是系统1000的实施例),该系统1000A包括计算系统1100以及相机1200A和相机1200B,相机1200A和相机1200B两者都可以是相机1200的实施例。在此示例中,相机1200A可以是被配置为生成2D图像信息的2D相机,该2D图像信息包括或形成描述相机的视场中的环境的视觉外观的2D图像。相机1200B可以是被配置为生成3D图像信息的3D相机(也被称为空间结构感测相机或空间结构感测设备),该3D图像信息包括或形成关于相机的视场中的环境的空间结构信息。空间结构信息可以包括深度信息(例如,深度图),该深度信息描述相对于相机1200B的各种位置(诸如相机1200的视场中各种对象的表面上的位置)的相应深度值。相机的视场中或对象的表面上的这些位置也可被称为物理位置。在此示例中,深度信息可以用于估计对象如何被空间地布置在三维(3D)空间中。在一些情况下,空间结构信息可以包括或可以用于生成点云,该点云描述相机1200B的视场中的对象的一个或多个表面上的位置。更具体地,空间结构信息可以描述对象的结构(也被称为对象结构)上的各种位置。

在实施例中,系统1000可以是用于促进机器人与相机1200的环境中的各种对象之间的机器人交互的机器人操作系统。例如,图1C示出了机器人操作系统1000B,其可以是图1A和图1B的系统1000/1000A的实施例。机器人操作系统1000B可以包括计算系统1100、相机1200和机器人1300。如上所述,机器人1300可以用于与相机1200的环境中的一个或多个对象(诸如与盒子、板条箱、柜子或其他容器)交互。例如,机器人1300可以被配置为从一个位置拾取容器并将它们移动到另一位置。在一些情况下,机器人1300可以用于执行在其中一组容器或其他对象被卸载并移动到例如传送带的卸垛操作。在一些实现中,相机1200可以被附接到机器人1300,诸如被附接到机器人1300的机器人臂。在一些实现中,相机1200可以与机器人1300分开。例如,相机1200可以被安装到仓库的天花板或其他结构,并且可以相对于该结构保持固定。

在实施例中,图1A-图1C的计算系统1100可以形成机器人控制系统(也被称为机器人控制器)或是机器人控制系统的一部分,该机器人控制系统是机器人操作系统1000B的一部分。机器人控制系统可以是被配置为例如为机器人1300生成移动命令(诸如用于控制机器人1300与容器或其他对象之间的机器人交互的机器人交互移动命令)的系统。在这样的实施例中,计算系统1100可以被配置为基于例如由相机1200/1200A/1200B生成的图像信息来生成这样的命令。例如,计算系统1100可以被配置为基于图像信息确定运动计划,其中运动计划可以旨在用于抓握或以其他方式拾取对象。计算系统1100可生成一个或多个机器人交互移动命令以执行运动计划。

在实施例中,计算系统1100可以形成视觉系统或是视觉系统的一部分。视觉系统可以是生成例如视觉信息的系统,该视觉信息描述机器人1300所处的环境,或更具体地描述相机1200所处的环境。视觉信息可以包括上面讨论的3D图像信息和/或2D图像信息,或某些其他图像信息。在一些情况下,如果计算系统1100形成视觉系统,则视觉系统可以是上面讨论的机器人控制系统的一部分,或者可以与机器人控制系统分开。如果视觉系统与机器人控制系统是分开的,则视觉系统可以被配置为输出描述机器人1300所处的环境的信息。信息可以被输出到机器人控制系统,该机器人控制系统可以从视觉系统接收这样的信息并且基于该信息来执行运动计划和/或生成机器人交互移动命令。

在实施例中,计算系统1100可以经由直接连接(诸如,经由专用有线通信接口(诸如,RS-232接口、通用串行总线(USB)接口)和/或经由本地计算机总线(诸如外围组件互连(PCI)总线)提供的连接)与相机1200和/或机器人1300进行通信。在实施例中,计算系统1100可以经由网络与相机1200和/或与机器人1300通信。网络可以是任何类型和/或形式的网络,诸如个人区域网(PAN)、局域网(LAN)(例如,内联网)、城域网(MAN)、广域网(WAN)或互联网。网络可以利用不同的技术和协议层或协议栈,包括例如以太网协议、互联网协议套件(TCP/IP)、ATM(异步传输模式)技术、SONET(同步光网络)协议或SDH(同步数字体系)协议。

在实施例中,计算系统1100可以与相机1200和/或与机器人1300直接传送信息,或者可以经由中间存储设备或更一般地经由中间非暂时性计算机可读介质进行通信。例如,图1D示出了可以是系统1000/1000A/1000B的实施例的系统1000C,该系统1000C包括非暂时性计算机可读介质1400,该非暂时性计算机可读介质1400可以在计算系统1100的外部,并且可以充当用于存储例如由相机1200生成的图像信息的存储库或外部缓冲器。在这样的示例中,计算系统1100可以检索或以其他方式接收来自非暂时性计算机可读介质1400的图像信息。非暂时性计算机可读介质1400的示例包括电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合。非暂时性计算机可读介质可以形成例如计算机软盘、硬盘驱动器(HDD)、固态驱动器(SDD)、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)和/或记忆棒。

如上所述,相机1200可以是3D相机和/或2D相机。2D相机可以被配置为生成2D图像,诸如彩色图像或灰度图像。3D相机可以是例如深度感测相机,诸如飞行时间(TOF)相机或结构化光相机,或任何其他类型的3D相机。在一些情况下,2D相机和/或3D相机可以包括图像传感器,诸如电荷耦合器件(CCD)传感器和/或互补金属氧化物半导体(CMOS)传感器。在实施例中,3D相机可以包括激光器、LIDAR设备、红外设备、明/暗传感器、运动传感器、微波检测器、超声检测器、RADAR检测器或被配置为捕获深度信息或其他空间结构信息的任何其他设备。

如上所述,图像信息可以由计算系统1100处理。在实施例中,计算系统1100可以包括或被配置为服务器(例如,具有一个或多个服务器刀片、处理器等)、个人计算机(例如,台式计算机、膝上型计算机等)、智能电话、平板计算设备和/或其他任何其他计算系统。在实施例中,计算系统1100的任何或所有功能可以作为云计算平台的一部分来执行。计算系统1100可以是单个计算设备(例如,台式计算机),或者可以包括多个计算设备。

图2A提供了示出计算系统1100的实施例的框图。计算系统1100包括至少一个处理电路1110和非暂时性计算机可读介质(或多个介质)1120。在实施例中,处理电路1110包括一个或多个处理器、一个或多个处理核、可编程逻辑控制器(“PLC”)、专用集成电路(“ASIC”)、可编程门阵列(“PGA”)、现场可编程门阵列(“FPGA”),其任意组合或任何其他处理电路。

在实施例中,作为计算系统1100的一部分的非暂时性计算机可读介质1120可以是以上讨论的中间非暂时性计算机可读介质1400的替代或附加物。非暂时性计算机可读介质1120可以是存储设备,诸如电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合,例如,诸如计算机软盘、硬盘驱动器(HDD)、固态驱动器(SSD)、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、其任何组合或任何其他存储设备。在一些情况下,非暂时性计算机可读介质1120可以包括多个存储设备。在某些实现中,非暂时性计算机可读介质1120被配置为存储由相机1200生成并且由计算系统1100接收的图像信息。在一些情况下,非暂时性计算机可读介质1120可以存储用于执行对象识别操作的一个或多个对象识别模板。非暂时性计算机可读介质1120可以可替代地或附加地存储计算机可读程序指令,该计算机可读程序指令在由处理电路1110执行时使处理电路1110执行这里描述的一种或多种方法,诸如关于图4描述的操作。

图2B描绘了计算系统1100A,其是计算系统1100的实施例并且包括通信接口1130。通信接口1130可以被配置为例如接收由图1A-图1D的相机1200生成的图像信息。可以经由以上讨论的中间非暂时性计算机可读介质1400或网络,或者经由相机1200与计算系统1100/1100A之间的更直接的连接来接收图像信息。在实施例中,通信接口1130可以被配置为与图1C的机器人1300通信。如果计算系统1100在机器人控制系统外部,则计算系统1100的通信接口1130可以被配置为与机器人控制系统通信。通信接口1130也可以被称为通信组件或通信电路,并且可以包括例如被配置为通过有线或无线协议执行通信的通信电路。作为示例,通信电路可以包括RS-232端口控制器、USB控制器、以太网控制器、控制器、PCI总线控制器、任何其他通信电路或其组合。

在实施例中,如图2C所示,非暂时性计算机可读介质1120可以存储边缘检测信息1126,该边缘检测信息1126可以描述从由相机1200生成的图像信息中识别的多个候选边缘。如下面更详细地讨论的,如果图像信息表示一组对象,则候选边缘中的每一个可以是或可以形成用于表示该组对象的多个物理边缘中的至少一个物理边缘的候选者。在一些情况下,计算系统1100/1100A/1100B可以确定边缘检测信息1126中的特定候选边缘是否应该用于表示该组对象的物理边缘中的至少一个。这样的确定可以涉及评估与候选边缘是否实际表示物理边缘而不是伪边缘相关联的置信水平。在一个示例中,这样的评估可以基于候选边缘是否与由表示物理边缘而产生的图像特性相关联。这样的特性可以与被称为暗先验的图像特征相关联,这将在下面更详细地讨论。在一些情况下,计算系统1100可以从多个候选边缘中选择具有实际表示一组对象的物理边缘的足够高的置信水平的候选边缘子集,而从子集中排除的候选边缘可能没有实际表示一组对象的物理边缘的足够高的置信水平。因此,如果计算系统1100/1100A/1100B确定使用特定候选边缘来表示物理边缘中的至少一个,则计算系统可以将该候选边缘包括在该子集中。如果计算系统1100/1100A/1100B确定不使用特定的候选边缘来表示物理边缘中的至少一个,则计算系统可以确定不将该候选边缘包括在子集中。未被包括在子集中的候选边缘可以从边缘检测信息1126中被过滤掉,或者更一般地从作为用于表示一组对象的物理边缘中的至少一个的候选者的进一步考虑中被排除。

在实施例中,处理电路1110可以由存储在非暂时性计算机可读介质1120上的一个或多个计算机可读程序指令来编程。例如,图2D示出了计算系统1100C,其是计算系统1100/1100A/1100B的实施例,其中处理电路1110由包括物理边缘检测模块1125、对象识别/注册模块1128和/或运动计划模块1129的一个或多个模块编程。

在实施例中,物理边缘检测模块1125可以被配置为从出现在表示一组对象的图像信息中的多个候选边缘中,确定哪个(哪些)候选边缘应当被用来表示该组对象的物理边缘。在一些实现中,物理边缘检测模块1125可以基于定义的暗度条件是否被满足和/或深度不连续条件是否被满足来做出这样的确定,如下面更详细讨论的。在一些情况下,物理边缘检测模块1125还可以被配置为从图像信息中识别出多个候选边缘。在一些情况下,物理边缘检测模块1125可以被配置为执行图像分段(segmentation)(例如,点云分段),这可以涉及区分由图像信息表示的单个对象。例如,模块1125可以提取或以其他方式识别表示一组对象中的一个对象的图像信息的图像分段(也称为图像部分)。在一些实现中,可以基于例如模块1125已经确定应当被用于表示一组对象的物理边缘的候选边缘来执行图像分段。

在实施例中,对象识别/注册模块1128可以被配置为基于来自物理边缘检测模块1125的结果来执行对象识别操作或对象注册模块。例如,如果物理边缘检测模块1125识别表示一组对象中的一个对象的图像分段,则对象识别/注册模块1128可以被配置为例如确定该图像分段是否充分匹配对象识别模板,和/或基于该图像分段生成新的对象识别模板。

在实施例中,运动计划模块1129可以被配置为基于物理边缘检测模块1125的结果和/或基于对象识别/注册模块1128的结果来执行机器人运动计划。如上所述,机器人运动计划可以用于机器人(例如,1300)和一组对象中的至少一个对象之间的机器人交互。在一些情况下,机器人运动计划可以涉及例如确定机器人的组件(例如,末端执行器装置)用于拾取对象的移动,和/或在拾取对象之后组件要遵循的轨迹。

在各种实施例中,术语“计算机可读指令”和“计算机可读程序指令”被用于描述被配置为执行各种任务和操作的软件指令或计算机代码。在各种实施例中,术语“模块”广义上是指被配置为使处理电路1110执行一个或多个功能任务的软件指令或代码的集合。当处理电路或其他硬件组件正在执行模块或计算机可读指令时,模块和计算机可读指令可以被描述为执行各种操作或任务。

图3A-图3C图示了其中可以执行候选边缘的处理或更具体地执行物理边缘检测的示例环境。更特别地,图3A描绘了具有包括计算系统1100、机器人3300和相机3200的系统3000(其可以是图1A-图1D的系统1000/1000A/1000B/1000C的实施例)的环境。相机3200可以是相机1200的实施例,并且可以被配置为生成图像信息,该图像信息表示相机3200的相机视场3210中的场景,或更具体地表示相机视场3210中的对象,诸如对象3510、3520、3530、3540和3550。在一个示例中,对象3510-3540中的每一个可以是例如诸如盒子或板条箱之类的容器,而对象3550可以是例如其上布置有容器的托盘。

对象3510-3540也在图3B中被描绘,图3B更具体地示出了对象的物理边缘。更特别地,该图示出了对象3510的顶表面的物理边缘3510A-3510D、对象3520的顶表面的物理边缘3520A-3520D、对象3530的顶表面的物理边缘3530A-3530D和对象3540的顶表面的物理边缘3540A-3540D。图3B中的物理边缘(例如,3510A-3510D、3520A-3520D、3530A-3530D和3540A-3540D)可以是对象3510-3540的相应的顶表面的外边缘。在一些情况下,对象的表面的物理边缘(例如,3510A-3510D)可以定义表面的轮廓。如果对象形成具有多个不共面的表面(也被称为多个面)的多面体(例如,立方体),则一个表面的物理边缘可以形成在该表面与对象的另一表面相交的边界。

在实施例中,相机视场中的对象可以在对象的外表面上具有视觉细节(也被称为可见细节),诸如视觉标记。例如,如图3A和图3B所示,对象3510、3520、3530、3540可以分别具有视觉标记3512、3522、3532、3542,这些视觉标记被印刷或以其他方式布置在对象3510-3540的相应外表面(例如,顶表面)上。作为示例,视觉标记可以包括可见线(例如,直线或曲线)、可见形状(诸如多边形)、视觉图案或其他视觉标记。在一些情况下,视觉标记(例如,可见线)可以形成或是出现在对象外表面上的符号或图的一部分。符号可以包括例如徽标或书写字符(例如,字母数字字符)。在一些情况下,容器或其他对象的外表面上的视觉细节可以由布置在容器外表面上的材料层(例如,一条包装带或一张邮寄标签)的轮廓形成的。

在实施例中,图3A的系统3000可以包括一个或多个光源,诸如光源3600。光源3600可以是例如发光二极管(LED)、卤素灯或任何其他光源,并且可以被配置为朝着对象3510-3550的表面发射可见光、红外辐射或任何其他形式的光。在一些实现中,计算系统1100可以被配置为与光源3600通信以控制光源3600何时被激活。在其他实现中,光源3600可以独立于计算系统1100操作。

在实施例中,如图3C所示,系统3000可以包括多个相机,包括具有相机视场3210A的相机3200A(其可以是相机1200A的实施例),并且包括具有相机视场3210B的相机3200B(其可以是相机1200B的实施例)。相机3200A可以是例如被配置为生成2D图像或其他2D图像信息的2D相机,而相机3200B可以是例如被配置为生成3D图像信息的3D相机。2D图像(例如,彩色图像或灰度图像)可以描述相机视场3210/3210A中一个或多个对象(诸如,对象3510-3550)的外观。例如,2D图像可以捕获或以其他方式表示视觉细节,诸如布置在对象3510-3540的相应外表面(例如,顶表面)上的视觉标记3512-3542,和/或那些外表面的轮廓。在实施例中,3D图像信息可以描述对象3510-3550中的一个或多个的结构,其中对象的结构也可以被称为对象结构或对象的物理结构。例如,3D图像信息可以包括深度图,或更一般地包括深度信息,深度信息可以描述相机视场3210/3210B中的各种位置相对于相机3200B或相对于某个其他参考点的相应深度值。对应于相应深度值的位置可以是相机视场3210/3210B中各种表面上的位置(也被称为物理位置),诸如对象3510-3550的相应顶表面上的位置。在一些情况下,3D图像信息可以包括点云,该点云可以包括多个3D坐标,该多个3D坐标描述了对象视场3210/3210B中的对象3510-3550或某些其他对象的一个或多个外表面上的各种位置。

在图3A和图3B的示例中,机器人3300(其可以是机器人1300的实施例)可以包括机器人臂3320,该机器人臂3320具有附接到机器人基座3310的一端,并且具有附接到末端执行器装置3330或由末端执行器装置3330形成的另一端,诸如机器人抓手。机器人基座3310可用于安装机器人臂3320,而机器人臂3320,或更具体地而言,末端执行器装置3330,可用于与机器人3300的环境中的一个或多个对象(例如,3510/3520/3530/3540)交互。交互(也被称为机器人交互)可以包括例如抓握或以其他方式拾取对象3510-3540中的至少一个。例如,机器人交互可以是卸垛操作的一部分,在该卸垛操作中机器人3300用于从对象3550(例如,托盘或其他平台)拾取对象3510-3540(例如,箱子)并将对象3510-3540移动到目的地位置。

如上面所讨论的,本公开的一个方面涉及基于表示一个或多个对象的图像信息来执行或促进对一组对象(诸如一组盒子)的一个或多个物理边缘的检测。图4描绘了用于执行或促进物理边缘检测,或更具体地用于确定候选边缘是否应被用来表示一组对象的物理边缘中的至少一个的示例方法4000的流程图。更具体地,方法可以涉及接收具有可能表示物理边缘或可能是伪边缘的候选边缘的图像信息。伪边缘可以是表示例如出现在一组对象中的一个对象的表面上的可见线或其他视觉标记的候选边缘。视觉标记可以具有类似于物理边缘但实际上并不对应于任何物理边缘的外观。因此,在实施例中,方法4000可用于评估候选边缘是否对应于实际物理边缘或候选边缘是否很可能是伪边缘的置信水平或可能性。如果候选边缘很可能是伪边缘,和/或不具有对应于实际物理边缘的足够高的置信水平,则在实施例中方法4000可以从用于表示一组对象的任何物理边缘的进一步考虑中过滤掉或更一般地排除候选边缘。

在实施例中,方法4000可以由例如图2A-图2D或图3A或3C的计算系统1100,或更具体地由计算系统1100的至少一个处理电路1110来执行。在一些情况下,至少一个处理电路1100可以通过执行存储在非暂时性计算机可读介质(例如,1120)上的指令来执行方法4000。例如,指令可以使处理电路1110执行图2D中所示的可以执行方法4000的模块中的一个或多个。作为示例,下面讨论的步骤4002-4008中的一个或多个可以由物理边缘检测模块1125执行。如果方法4000包括执行对象识别和/或对象注册的步骤,则该步骤可以由例如对象识别/注册模块1128执行。如果方法4000涉及计划机器人交互或生成机器人交互移动命令,则这样的步骤可以由例如运动计划模块1129执行。在实施例中,可以在计算系统1100与机器人和相机(诸如图3A和3C中的机器人3300和相机3200/3200A/3200B)或本公开中讨论的任何其他相机或机器人通信的环境中执行方法4000。在一些情况下,诸如图3A和图3C中所示,相机(例如,3200)可以被安装到固定结构(例如,房间的天花板)。在其他情况下,相机可以被安装在机器人臂(例如,3320)上,或更具体地被安装在机器人(例如,3300)的末端执行器装置(例如,3330)上。

在实施例中,当一组对象(例如,3510-3550)当前在相机(例如,3200/3200A/3200B)的相机视场(例如,3210/3210A/3210B)中时,可以执行方法4000的一个或多个步骤。例如,在一组对象在相机视场(例如,3210/3210A/3210B)中之后,或者更一般地,在一组对象在相机视场中时,可以立即执行方法4000的一个或多个步骤。在一些情况下,当一组对象已经在相机视场中时,可以执行方法4000的一个或多个步骤。例如,当一组对象在相机视场(例如,3210/3210A/3210B)中时,相机(例如,3200/3200A/3200B)可以生成表示该组对象的图像信息,并且可以将图像信息传送给计算系统(例如,1100)。当一组对象仍在相机视场中时,或者甚至当一组对象中的一些或全部不再在相机视场中时,计算系统可以基于图像信息执行方法4000的一个或多个步骤。

在实施例中,方法4000可以开始于步骤4002或以其他方式包括步骤4002,其中计算系统1100接收表示相机(例如,3200/3200A/3200B)的相机视场(例如,3210/3210A/3210B)中的一组对象的图像信息。当一组对象在(或已经在)相机视场中时图像信息可以由相机(例如,3200/3200A/3200B)生成,并且可以包括例如2D图像信息和/或3D图像信息。例如,图5A描绘了2D图像信息,或更具体地,2D图像5600,其由相机3200/3200A生成并且表示图3A-图3C的对象3510-3550。更具体地,2D图像5600(例如,灰度或彩色图像)可以从相机3200/3200A的视点来描述对象3510-3550的外观。在实施例中,2D图像5600可以对应于彩色图像的单个颜色通道(例如,红色、绿色或蓝色通道)。如果相机3200/3200A被布置在对象3510-3550上方,则2D图像5600可以表示对象3510-3550的相应顶表面的外观。在图5A的示例中,2D图像5600可以包括表示对象3510-3550的相应表面(例如,顶表面)的相应部分5610、5620、5630、5640和5650(也被称为图像部分)。在图5A中,2D图像5600的图像部分5610-5650的每个图像部分可以是图像区域,或更具体地,可以是像素区域(如果图像由像素形成)。更特别地,图像区域可以是图像的区域,而像素区域可以是像素的区域。图像部分5610-5550中的一个或多个可以捕获或以其他方式表示可见的或出现在对象的表面上的视觉标记或其他视觉细节。例如,图像部分5610可以表示图3B的视觉标记3612,其可以被印刷或以其他方式布置在对象3610的顶表面上。

图5B描绘了其中步骤4002中的图像信息包括3D图像信息5700的示例。更特别地,3D图像信息5700可以包括例如指示对象3510-3550的一个或多个表面(例如,顶表面或其他外表面)上的各种位置的相应深度值的深度图或点云。例如,3D图像信息5700可以包括指示对象3510的表面上的一组位置57101-5710n(也被称为物理位置)的相应深度值的第一部分5710(也被称为图像部分);指示对象3520的表面上的一组位置57201-5720n的相应深度值的第二部分5720;指示对象3530的表面上的一组位置57301-5730n的相应深度值的第三部分5730;指示对象3540的表面上的一组位置57401-5740n的相应深度值的第四部分5740;以及指示对象3550的表面上的一组位置57501-5750n的相应深度值的第五部分5750。相应深度值可以相对于生成3D图像信息的相机(例如,3200/3200B),或者可以相对于某个其他参考点。在某些实现中,3D图像信息可以包括点云,该点云包括相机视场(例如,3210/3210B)中的对象的结构上的各种位置的相应坐标。在图5B的示例中,点云可以包括描述对象3510-3550的相应表面上的位置的相应坐标集合。坐标可以是3D坐标,诸如[X Y Z]坐标,并且可以具有相对于相机坐标系或某个其他坐标系的值。作为示例,相机坐标系可以由图3A、图3C和图5B中所示的X轴、Y轴和Z轴定义。

在实施例中,步骤4002可以涉及接收2D图像信息和3D图像信息两者。在一些情况下,计算系统1100可以使用2D图像信息来补偿3D图像信息的限制,反之亦然。例如,当相机视场中的多个对象彼此靠近放置并且相对于相机(例如,3200B)具有基本相等的深度时,3D图像信息(例如,5700)可以描述具有基本相等的深度值的多个位置,并且可能缺乏用于区分3D图像信息中表示的单个对象的细节,特别是如果对象之间的间距对于3D图像信息的分辨率来说太窄。在一些情况下,由于噪声或其他误差源,3D图像信息可能具有错误的或丢失的信息,这可能进一步增加区分单个对象的难度。在此示例中,2D图像信息可以通过捕获或以其他方式表示单个对象之间的物理边缘来补偿此细节缺乏。然而,在某些情况下,如下面所讨论的,2D图像信息可能包括可能是不对应于任何实际物理边缘的候选边缘的伪边缘。在一些实现中,计算系统1100可以通过确定2D图像信息在候选边缘处是否满足定义的暗度条件来评估候选边缘是伪边缘的可能性,如下面关于步骤4006所讨论的。在一些实现中,诸如当候选边缘对应于3D图像信息描述深度的急剧改变的物理位置时,计算系统1100可以确定该候选边缘是否对应于3D图像信息中的物理边缘。在这样的情况下,3D图像信息可以用于检查候选边缘是否为伪边缘,并且可以补充或代替定义的暗度条件的使用,从而提供确定候选边缘是否是伪边缘或候选边缘是否对应于实际物理边缘的一种更鲁棒的方式。

返回图4,在实施例中,方法4000可以包括步骤4004,其中计算系统1100从步骤4002的图像信息中识别与一组对象(例如,3510-3550)相关联的多个候选边缘。在实施例中,候选边缘可以是或可以包括形成用于表示一个对象或一组对象的物理边缘的候选者的图像位置或物理位置集合。在一个示例中,如果图像信息包括用于表示一个或多个对象的2D图像,则候选边缘可以是指一组图像位置,诸如像素位置(例如,像素位置[u1 v1]到[ukvk])。像素位置集合可以对应于共同类似于物理边缘的一组像素。例如,图6A描绘了其中计算系统1100已从2D图像5600中识别出候选边缘56011、56012、56013、56014、56015、56016、...5601n的示例。候选边缘56011-5601n中的每个候选边缘可以是、可以包括相应一组像素位置或可以由相应一组像素位置形成,该相应一组像素位置例如定义了2D图像具有图像强度的急剧改变的线或线段。图像强度的急剧改变可能发生在例如彼此紧邻的两个图像区域之间,其中一个图像区域比另一个更暗。如下面更详细讨论的,候选边缘可以基于两个图像区域之间的边界形成。在这样的示例中,边界可以由上面讨论的线或线段形成。从2D图像(例如,5600)识别出的候选边缘可以被称为2D候选边缘或2D边缘。

在实施例中,图像信息可以包括对应于实际物理边缘的一些候选边缘,并且可以包括是伪边缘的一些候选边缘。例如,图6A中的候选边缘56011、56012、56015、56016可以对应于一组对象3510-3550的实际物理边缘,或者更具体地对应于物理对象3510,而候选边缘56013和56014可能是伪边缘。候选边缘56013和56014可表示例如出现在对象3510的表面上的可见线或其他视觉标记。这些可见线可类似于物理边缘,但不对应于对象3510-3550的任何实际物理边缘。因此,如下面关于步骤4008所讨论的,在实施例中方法4000可以涉及确定特定的候选边缘是否应该被用于表示一组对象的物理边缘中的至少一个。

在一个示例中,如果图像信息包括3D信息,则候选边缘可以是指一组图像位置或一组物理位置。作为示例,如果图像位置是像素位置,则它们可能对应于看起来像物理边缘的一组像素。在另一示例中,如果3D图像信息包括深度图,则候选边缘可包括定义例如线或线段的一组像素位置,该组像素位置可形成深度图中存在深度的急剧改变的边界。如果3D图像信息(例如,经由点云)描述了对象的表面上的物理位置的3D坐标,则候选边缘可以包括也定义了例如假想的线或线段的物理位置集合,该物理位置集合也可形成点云或其他3D图像信息中存在深度的急剧改变的边界。例如,图6B描绘了计算系统1100已从3D图像信息5700识别出候选边缘57011、57012、57013、5701n的示例。候选边缘57011-5701n的每个候选边缘可以包括例如定义了发生深度的急剧改变的边界的一组物理位置[X1 Y1 Z1]到[Xp YpZ1]。从3D图像信息识别出的候选边缘可以被称为3D候选边缘或3D边缘。

在实施例中,如果计算系统1100识别出2D候选边缘和3D候选边缘两者,则计算系统1100可以被配置为确定2D候选边缘中的任何2D候选边缘(例如,56015)是否与3D候选边缘中的一个(例如,57011)表示共同的物理边缘,反之亦然。换句话说,计算系统1100可以确定2D候选边缘中的任何一个是否映射到3D候选边缘中的一个,反之亦然。映射可以基于例如将2D候选边缘的坐标从以2D图像信息的坐标系表达转换为以3D图像信息的坐标系表达,或者将3D候选边缘的坐标从以3D图像信息的坐标系表达转换为以2D图像信息的坐标系表达。题为“用于处理候选边缘的方法和计算系统(METHOD AND COMPUTING SYSTEM FOR PROCESSING CANDIDATE EDGES)”的第16/791,024号美国专利申请(代理卷号MJ0049-US/0077-0009US1)中更详细地讨论了从2D候选边缘到3D候选边缘的映射,该美国专利申请的全部内容通过引用并入本文中。

如上所述,计算系统1100可以通过识别2D图像信息中存在图像强度(例如,像素强度)的急剧改变的图像位置(例如,像素位置)来从2D图像或其他2D图像信息中识别候选边缘。在一些实现中,急剧改变可能发生在两个图像区域之间的边界处,其中一个图像区域比另一个图像区域更暗。例如,两个图像区域可以包括第一图像区域和第二图像区域。第一图像区域可以是比可以包括第二图像区域的一个或多个紧邻的区域更暗的2D图像的区域。图像区域的暗度可以指示有多少来自对应的物理区域的反射光被生成图像信息(例如,5600)的相机(例如,3200/3200A)检测或以其他方式感测到。更特别地,更暗的图像区域可以指示相机感测到来自对应的物理区域的相对少量的反射光(或没有反射光)。在一些实现中,图像区域的暗度可以指示图像区域中的图像强度与最小可能的图像强度值(例如,零)有多接近。在这些实现中,更暗的图像区域可以指示图像区域的(一个或多个)图像强度值更接近于零,而不太暗的图像区域可以指示图像区域的(一个或多个)图像强度值更接近于最大可能的图像强度值。

在实施例中,第二图像区域可以具有细长形状,例如矩形带或线或线段。作为示例,图7A示出了分别比紧邻的图像区域56051、56052、56053、56054、56055、56056更暗的示例图像区域56031、56032、56033、56034、56035、56036。如果图像5600包括像素,则图7A中的图像区域可以是像素区域。图像区域56031-56034各自可以是或形成像素带,诸如矩形带,并且可以具有多于一个像素的宽度,而图像区域56035和56036各自可以是或形成具有一个像素的宽度的像素行。如上所述,候选边缘可由第一图像区域(例如,图像区域56031-56036中的一个)和第二图像区域(例如,图像区域56051-56056中的一个)之间的边界形成或基于该边界形成,其中第一图像区域可以紧邻第二图像区域,并且可以比第二图像区域更暗,并且其中在两个图像区域之间的边界处可以发生图像强度的急剧改变。例如,图7B示出了由图像区域56031-56036和对应的紧邻图像区域56051-56056之间的相应边界定义或形成的候选边缘56011-56016。作为示例,计算系统1100可以将候选边缘56011识别为定义一个图像区域56051和另一个更暗的图像区域56031之间的边界的一组像素位置。作为附加示例,计算系统1100可以将候选边缘56015识别为定义一个图像区域56055和更暗的图像区域56035之间的边界的一组像素位置。在一些情况下,候选边缘56015的像素位置可以位于更暗的图像区域56035中。更特别地,候选边缘56015可以是图像区域56035或可以与图像区域56035重合,该图像区域56035可以是例如具有单个像素宽度的像素行。

在实施例中,计算系统1100可以基于可以检测例如图像强度的急剧改变的图像边缘检测技术来检测或以其他方式识别候选边缘,诸如候选边缘56011-56016中的一个。例如,计算系统1100可以被配置为通过应用Sobel算子、Prewitt算子或用于确定2D图像中的强度梯度的其他技术,和/或通过应用Canny边缘检测器或其他边缘检测技术来检测2D图像或其他图像信息中的候选边缘。

在实施例中,如果计算系统1100识别2D图像中的作为比一个或多个紧邻的图像区域更暗的像素带的图像区域,则在一些情况下该图像区域可能足够宽以形成更多的候选边缘。例如,图7C示出了计算系统1100基于图像区域56031-56034来识别附加候选边缘56017-560110。更特别地,附加候选边缘56017-560110可以是定义图像区域56031-56034和紧邻图像区域56071-56074之间的相应边界的相应像素位置集合。作为更具体的示例,在此示例中的图像区域56032可以足够宽,使得图像边缘检测技术可以识别由图像区域56032的一侧(例如,右侧)和紧邻的区域56052之间的边界形成的候选边缘56012,如图7B所示,并进一步识别由图像区域56032的相对侧(例如,左侧)和紧邻的区域56072之间的边界形成的另一候选边缘56018,如图7C所示。在实施例中,图像区域可能非常窄,使得图像边缘检测技术可以从图像区域中仅识别单个候选边缘。在这样的实施例中,图像区域可以具有单个像素或几个像素的宽度。例如,如上所述,图像区域56035可以形成像素行,并且可以具有一个像素的宽度。在此示例中,计算系统1100可以基于图像区域56035仅识别单个候选边缘56015,其中候选边缘56015可以例如与图像区域56035重合,使得图像候选边缘56015可以是形成图像区域56035的像素行或可以与形成图像区域56035的像素行重叠。

返回图4,在实施例中,方法4000可以包括步骤4006,该步骤4006可以在步骤4004中的多个候选边缘包括由第一图像区域和第二图像区域之间的边界形成的第一候选边缘时执行,其中第一图像区域的图像强度可以比第二图像区域更暗,并且可以紧邻第二图像区域。在此示例中,第一图像区域和第二图像区域可以是由2D图像(例如,5600)或其他图像信息描述的区域。例如,图7A-图7C提供了多个候选边缘56011-5601n的示例,并且步骤4006的第一候选边缘可以是多个候选边缘56011-5601n中的任何一个。如上所述,第一候选边缘可以由第一图像区域和更亮的第二图像区域之间的边界形成或基于该边界形成。作为示例,如果第一候选边缘是候选边缘56011,则第一图像区域可以是图像区域56031,并且第二图像区域可以是56051。作为另一个示例,如果第一候选边缘是候选边缘56012,则第一图像区域可以是图像区域56032,并且第二图像区域可以是图像区域56052。

在步骤4006中,计算系统1100可以确定图像信息(例如,2D图像5600)在第一候选边缘(例如,56012)处是否满足定义的暗度条件。这样的确定可以更具体地包括例如确定第一图像区域(例如,56032)是否满足定义的暗度条件。在实施例中,定义的暗度条件可以用于确定第一候选边缘(例如,56012)是否很可能对应于相机视场(例如,3210/3210A)中的对象(例如,3510)的实际物理边缘,或者第一候选边缘是否很可能是伪边缘。

在实施例中,定义的暗度条件可用于检测图像先验,或更具体地,检测暗先验。图像先验可以是指在某些情况下具有在图像中出现的某种可能性的图像特征,或者可以预期在图像中的图像特征。更具体地,图像先验可以对应于在这样的情况(诸如图像被生成以表示在相机视场中彼此相邻放置的一组盒子或其他对象的情况)下生成的图像中将存在(一个或多个)什么图像特征的期望、预期或预测。在一些情况下,暗先验可以是指具有高水平暗度和/或具有尖峰形图像强度分布(例如,像素强度分布)的图像特征。尖峰形图像强度分布可以涉及暗度的尖峰增加和/或图像强度的尖峰降低。暗先验可以对应于相机视场中的一组盒子或其他对象被放置得彼此足够接近使得在对象中的一些或所有对象之间仅存在狭窄的物理间隙的情况。更特别地,暗先验可以对应于当在这种情况下图像被生成以表示一组对象时,物理间隙将在图像中看起来非常暗的期望、预期或预测。更具体地,暗先验可以对应于图像中表示物理间隙的图像区域将具有高水平暗度和/或可以具有尖峰形图像强度分布的期望或预测,如下面更详细地讨论的。在一些实现中,暗先验可用于通过评估与候选边缘相关联的图像区域是否对应于两个对象之间的物理间隙来确定候选边缘是否很可能对应于物理边缘。

在实施例中,在一些情况下可以是用于检测暗先验的条件的定义的暗度条件可以基于(尤其是如果物理间隙狭窄(例如,小于5毫米或小于10毫米))两个对象(例如,图3A-图3C的3510和3520)之间的物理间隙应该如何出现在2D图像中或很可能如何出现在2D图像中的模型。例如,定义的暗度条件可以基于漫反射的朗伯模型。这样的反射模型可以估计光如何从一个或多个表面或区域(尤其是引起入射光的漫反射的表面或区域)反射。模型因此可以估计来自表面或表面区域的反射光的强度,并且该强度可以指示由感测反射光的相机(例如,3200/3200A)生成的图像中表面或表面区域将表现得多亮或多暗。

作为朗伯模型如何应用于一组对象(例如,图3A-图3C的3510-3550)的示例,图8描绘了被配置为通过感测来自对象3510、3520的各种表面的反射光来生成至少表示对象3510和3520的图像(例如,5600)的相机3200A。在一些情况下,反射光可以是从光源3600发射的光的反射。更特别地,光源3600可以朝向对象3510、3520至少沿着矢量发射光。在此示例中,对象3510和3520可以被彼此相邻放置,并且可以被狭窄的物理间隙g隔开,该物理间隙可以是对象3510的物理边缘3510B和对象3520的物理边缘3520D之间的空间。在图8的情况下,图像(例如,5600)中物理间隙g的图像强度可以取决于有多少反射光将来自形成物理间隙的各种表面,诸如对象3510的表面3510E(例如,侧表面)。在漫反射的朗伯模型下,来自特定表面的反射光的强度可以与cosα成正比或以其他方式基于cosα,其中α是入射光矢量与表面(例如,3510E)的法线矢量之间的角度。如图8A所示,矢量与表面3510E的法线矢量之间的角度α可以基本上为90度,使得来自表面3510E的反射光的强度可以极低,或者在一些情况下可以为零。因此,表示两个对象之间的物理间隙的图像区域可能具有极高水平的暗度。因此,在一些实现中,步骤4006的定义的暗度条件可以包括定义的暗度阈值标准,该暗度阈值标准可以用于评估图像区域是否足够暗以指示它表示两个对象之间的物理间隙。

在一些情况下,物理间隙在其中间处可能比其外围处看起来更暗。即,如果任何反射光离开物理间隙,则来自物理间隙外围的反射光可能多于来自物理间隙中间的反射光。外围可以是指例如物理间隙中更接近物理边缘3520D或物理边缘3510B的位置。在一些情况下,峰值水平的暗度可能出现在物理间隙的中间处。因此,表示物理间隙的图像区域可以具有尖峰形的图像强度分布(例如,像素强度分布),其中图像强度分布在图像区域内具有暗度的尖峰增加或图像强度的尖峰降低。因此,在一些情况下步骤4006中的定义的暗度条件可以包括定义的尖峰强度分布标准,以评估图像区域是否具有例如尖峰形的图像强度分布(而不是例如阶梯形的图像强度分布)。

在实施例中,定义的暗度条件可以由存储在例如非暂时性计算机可读介质1120或其他地方的一个或多个规则、标准或其他信息来定义。例如,信息可以仅通过满足暗度阈值标准、仅通过满足尖峰强度分布标准、仅通过满足两个标准、或通过满足暗度阈值标准或尖峰强度分布标准中的任一个来定义暗度条件是否被满足。在一些情况下,信息可以手动或以其他方式预定义并存储在非暂时性计算机可读介质1120中,使得定义的暗度条件可以是预定义的暗度条件。在一些情况下,暗度条件的信息可以是动态定义的。

在实施例中,定义的暗度阈值标准和/或定义的尖峰强度分布标准可以由存储在非暂时性计算机可读介质1120上或其他地方的信息定义。该信息可以是预定义的,使得定义的暗度阈值标准和/或定义的尖峰强度分布标准可以是一个预定义的标准或多个预定义的标准。在实施例中,本公开中的各种定义的阈值或其他定义的值可以定义为非暂时性计算机可读介质1120上或其他地方的存储的值。例如,下面讨论的定义的暗度阈值或定义的深度差阈值可以是存储在计算机可读介质1120上的值。它们可以是预定义的值,或者可以是动态定义的。

图9A-图9C示出了用于评估图像信息(例如,5600)在候选边缘56012处是否满足定义的暗度条件,或更具体地,图像区域56032是否满足定义的暗度条件的实施例。图像区域56032可以表示第一对象(诸如图8的对象3510)和第二对象(诸如对象3520)之间的物理间隙。在实施例中,候选边缘56012可以表示对象3510的物理边缘5610B,并且可以由图像区域56032和紧邻的图像区域56052之间的边界或基于该边界形成。在此示例中,图像区域56032可以是第一图像区域,并且图像区域56052可以是第二图像区域。更特别地,图像区域56032可以是形成像素带的第一像素区域,而图像区域56052可以是第二像素区域,使得候选边缘56012可以包括例如定义第一像素区域和第二像素区域之间的边界的像素位置集合或者可以由例如该像素位置集合形成。如上所述,计算系统1100可以通过例如检测图像区域56032、56052之间的图像强度(例如,像素强度)的急剧改变来识别候选边缘56012。

在实施例中,如果候选边缘基于第一图像区域和第二图像区域之间的边界形成,其中第一图像区域比第二图像区域更暗,则如果第一图像区域满足定义的尖峰强度分布标准,计算系统1100可以确定所定义的暗度条件被满足。更特别地,如果第一图像区域对于其图像强度分布(例如,像素强度分布)具有特定形状(诸如其中图像强度在第一图像区域内的暗度朝向第一图像区域内的位置处的暗度的峰值水平增加,然后暗度减少的形状),则计算系统可以确定第一图像区域(例如,56032)满足定义的尖峰强度分布标准。这样的标准可以与尖峰形的强度分布一致,其中图像强度分布在图像区域内的暗度具有尖峰增加,或在图像区域内的强度具有尖峰减少。这样的标准可以与检测暗先验相关联,其中预期出现在图像中的任何物理间隙在间隙的中间相对于间隙的外围看起来更暗。

图9B示出了可以满足定义的尖峰强度分布标准的图像强度分布9001,或更具体地而言示出了像素强度分布。更特别地,图像强度分布可以包括描述图像强度或更具体地像素强度如何作为诸如像素位置之类的图像位置的函数而改变的信息。在一些实现中,图像强度分布可由曲线或图形表示,该曲线或图形将图像强度的值描述为图像中位置的函数。例如,图9B描绘了图像强度分布9001的曲线或图形,该曲线或图形描述了作为沿轴5609的特定方向中的像素位置的函数的图像强度的值,或更具体地描述了像素强度值。轴5609可以是跨图像区域56032的宽度维度并沿着该宽度维度延伸的轴,而沿着轴5609的方向可以是沿着轴5609的特定方向。在图9B的示例中,宽度维度可以与例如图5A的图像5600的坐标轴u对齐,并且沿着轴5609的方向可以是正方向,其中沿着该方向的像素坐标[u,v]具有增加的u值。

在实施例中,计算系统1100可以通过确定图像区域56032是否具有像素强度分布(例如,9001)来确定图像区域56032是否满足定义的尖峰强度分布标准,该像素强度分布包括:(i)第一分布部分(例如,9011),其中作为沿着第一方向(例如,沿着轴5609的正方向)的位置的函数,图像强度(例如,像素强度)在第一图像区域内暗度增加,以达到在第一图像区域内的位置u1处的暗度的峰值水平(例如,9002),然后是(ii)第二分布部分(例如,9012),其中作为沿着相同方向(例如,正方向)的位置的函数,图像强度在第一图像区域内暗度减少,远离暗度的峰值水平。图9B中的图像强度分布9001可以更具体地是尖峰形的强度分布,其在图像区域95032内具有图像强度的尖峰降低。

在一些实现中,暗度增加的图像强度分布可以对应于具有图像强度减少的值的图像强度分布。例如,图像(例如,5600)可以具有在从最小可能像素强度值(例如,零)到最大可能像素强度值(例如,对于用8位编码的像素强度值,为255)范围内的像素强度值。在此示例中,较低的像素强度值可以表示较低水平的亮度,并且因此表示较高水平的暗度,而较高的像素强度值可以表示较高水平的亮度,并且因此表示较低水平的暗度。此外在此示例中,图像强度分布的暗度的峰值水平(例如,9002)可以对应于图像强度分布(例如,9001)的最小图像强度值。

在以上示例中,计算系统1100可以通过确定图像强度分布是否具有如下形状来确定图像区域是否满足定义的尖峰强度分布标准:在该形状中图像强度值(例如,像素强度值)通过图像强度朝着最小图像强度值减少开始,然后切换到图像强度远离最小图像强度值增加。例如,图9B中的图像强度分布9001可以描述跨图像区域56032的宽度维度延伸的一系列像素的相应像素强度值。计算系统1100可以通过确定图像强度分布是否具有如下形状来确定图像区域56032是否满足尖峰强度分布标准:在该形状中相应像素强度值朝着图像区域56032中的最小像素强度值减少然后切换到在图像区域56032中远离最小像素强度值增加。在此示例中,最小像素强度值可以对应于图像强度分布9001中的暗度的峰值水平9002。

在实施例中,如果候选边缘是基于第一图像区域和第二图像区域之间的边界形成的,其中第一图像区域比第二图像区域更暗,则满足定义的暗度阈值标准可以涉及与定义的暗度阈值的比较。这样的标准可以对应于检测其中出现在图像中的任何物理间隙在外观上被期望是极暗的暗先验。图9C示出了图像区域56032和紧邻的图像区域的另一个图像强度分布9003。在此示例中,第一图像区域可以是紧邻更亮的第二图像区域(例如,56052)的图像区域56032,而更暗的图像区域56032可以是第一图像区域。如上所述,图像区域56032可以形成像素带。在图9C中,计算系统1100可以通过确定图像区域56032是否具有图像强度比定义的暗度阈值τdark_prior更暗的至少一个部分来确定图像区域56032是否满足定义的暗度阈值标准。如上所述,在一些情况下,较高水平的暗度可能对应于较低的图像强度值。在这样的情况下,计算系统1100可以确定图像区域56032是否具有具有小于定义的暗度阈值τdark_prior的图像强度值(例如,像素强度值)的图像强度分布。在一些情况下,计算系统1100可以更具体地确定图像强度分布9003的最小强度值是否小于或等于定义的暗度阈值τdark_prior,其中最小强度值可以对应于强度分布9003的暗度的峰值水平9004。在实施例中,如果图像区域56032具有图像强度分布9003,则它可以满足定义的暗度阈值标准和定义的尖峰强度分布标准两者。

在实施例中,如果定义的暗度阈值标准或定义的尖峰强度分布标准中的至少一个被满足,则计算系统1100可以确定对于候选边缘和/或图像区域,定义的暗度条件被满足,使得上述标准中的任何一个可用于满足定义的暗度条件。在实施例中,计算系统1100可以仅响应于确定定义的尖峰强度分布标准被满足(无论定义的暗度阈值标准是否被满足),仅响应于确定定义的暗度阈值标准被满足(无论定义的尖峰强度分布标准是否被满足),或仅响应于确定定义的暗度阈值标准和定义的尖峰强度分布标准两者都被满足,来确定定义的暗度条件被满足。

在实施例中,计算系统1100可以基于2D图像信息(诸如2D图像5600)来识别候选边缘(例如,56012),并确定候选边缘是否满足定义的暗度条件。如上所述,如果计算系统1100接收2D图像信息和3D图像信息两者,则计算系统1100可以使用2D图像信息来补偿3D图像信息中的限制或缺少的3D图像信息,反之亦然。例如,当相机(例如,3200B)生成3D图像信息来表示一组对象时,3D图像信息可能缺乏区分组内单个对象的信息,特别是如果该组对象相对于相机具有相同的深度值。更特别地,3D图像信息可能缺乏用于检测对象之间的狭窄的物理间隙的信息,因此在识别与物理间隙相关联的物理边缘方面可能具有有限的用处。

作为示例,图9D示出了与图5B的3D图像信息5700的一部分5715相关联的深度值。更具体地,该部分5715可以描述对象3520的顶表面上的物理位置5720a到5720a 5和对象3510的顶表面上的位置5710b到5710b 4的相应深度值。这些物理位置可以映射或以其他方式对应于图像区域56032中或周围的图像位置,或者候选边缘56012周围的图像位置。如图8所示,图像区域56032可以表示对象3510、3520之间的物理间隙g。如上所述,计算系统1100可以使用3D图像信息来尝试检测深度存在急剧改变的一个或多个位置。然而,物理间隙(诸如图8的物理间隙)相对于3D图像信息的分辨率而言可能太窄或以其他方式太小而不能被3D图像信息5700捕获。因此,在图9D的示例中,计算系统1100可以确定位置5720a到5720a 5和5710b到5710b 4没有深度的急剧改变,因此确定3D图像信息不指示那些位置中的任何一个处的候选边缘。此外,在一些情况下,3D图像信息可能缺少位置5720a到5720a 5和5710b到5710b 4中的一些位置(或更具体地,对应于候选边缘56011的一个或多个位置)的深度信息。在一些情况下,映射或以其他方式对应于候选边缘56011的3D图像信息的一部分可能受到大于定义的噪声容限阈值的成像噪声水平的影响,该噪声容限阈值可以是在非暂时性计算机可读介质1120中定义的值。在上面的示例中,2D图像信息可以补偿3D图像信息的这些限制,因为2D图像信息可以包括表示对象3510的物理边缘3510B的候选边缘56011,并且包括确实表示对象3510和对象3520之间的物理间隙的图像区域56032。在涉及3D图像信息的限制的以上示例中,计算系统1100还可以使用定义的暗度条件来确定候选边缘56012是否应该被用来表示一组对象的物理边缘中的一个物理边缘(例如,3510B)。

图10A-图10C描绘了用于确定候选边缘56014和/或图像区域56034是否满足定义的暗度条件的示例。图像区域56034可以表示图3B的视觉标记3512的一部分,诸如印刷在对象3510的顶表面上的可见线。在此示例中,图像区域56034可以比紧邻的图像区域(诸如图像区域56054和56074)更暗。候选边缘56014可以基于更暗的图像区域56034和紧邻的区域56054之间的边界形成。

图10B描绘了具有不满足定义的尖峰强度分布标准的图像强度分布10001的图像区域56034,因为图像强度分布10001在图像区域56034内没有以如下方式改变:在该方式中图像强度分布10001作为位置的函数朝着暗度的峰值水平暗度增加,然后远离暗度的峰值水平暗度减少。在此示例中图像强度分布10001可以将像素强度值描述为沿着轴5608的像素位置的函数,轴5608可以与图像区域56034的宽度维度对齐。如上所述,尖峰强度分布标准可以与对象的物理边缘之间的物理间隙在物理间隙的中间相对于物理间隙的外围可能看起来更暗的期望对应。因此,表示物理间隙的图像区域可以具有作为图像区域内的图像位置的函数而改变的图像强度分布,并且更具体地,作为沿着特定方向的图像位置的函数从对应于物理间隙的外围的图像位置到对应于物理间隙的中间的图像位置暗度增加,并且然后作为沿相同方向的位置的函数暗度减少。更特别地,在表示物理间隙的图像区域中,图像强度分布可以具有暗度的尖峰增加或图像强度的尖峰减少。在实施例中,代替地表示可视线或其他视觉标记的图像区域可能缺乏这样的图像强度分布,并且可在图像区域内代替地具有更均匀的暗度水平。因此,如图10B所示,表示视觉标记3512的一部分的图像区域56034在图像区域56034内可具有更均匀的图像强度分布10001,使得分布10001在图像区域56034内基本上不改变。此外,图像强度分布10001可以在图像区域56034的边界处具有图像强度的从与更亮的相邻图像区域(例如,56054)相关联的图像强度到图像区域56034内的均匀图像强度的阶梯形改变。因此,图像强度分布10001不具有通过沿着穿过图像区域56034的特定方向朝着暗度的峰值水平暗度增大开始,然后切换为沿着该方向暗度减少的形状。更特别地,图像强度分布10001没有表现出图像强度的尖峰减少。因此,在此示例中计算系统1100可以确定图像区域56034不满足定义的尖峰强度分布标准,这可以导致确定2D图像5600在候选边缘56014和/或在图像区域56034处不满足定义的暗度条件。

图10C描绘了具有可能不满足定义的暗度阈值标准的图像强度分布10003的图像区域56034,因为图像强度分布10003可能指示图像区域56034不够暗。更具体地,计算系统1100可以确定图像区域56034中的图像强度分布10003中的大部分或全部像素强度值在定义的暗度阈值τdark_prior之上。因此,图10C中的计算系统1100可以确定图像区域56034不满足定义的暗度阈值标准,这可以导致确定图像5600在候选边缘56014处和/或图像区域56034处不满足定义的暗度条件。图像强度分布10003也可能无法满足定义的尖峰强度分布标准,如上面关于图10B所讨论的。

在实施例中,图像区域可能具有对于图像区域是否满足定义的尖峰强度分布标准的可靠评估而言太小的宽度。例如,图像区域可能具有仅单个像素或仅几个像素的宽度。在一些情况下,计算系统1100可以确定这样的图像区域不满足定义的暗度条件。在其他情况下,计算系统1100可以基于图像区域是否满足定义的暗度阈值标准来确定图像区域是否满足定义的暗度条件。在一些情况下,计算系统1100可以决定不针对定义的暗度条件来评估这样的图像区域或相关联的候选边缘。

如上所述,本公开的一方面涉及计算系统1100至少基于2D图像信息(诸如2D图像5600)识别多个候选边缘的情况。在这样的实施例中,多个候选边缘可以至少包括基于2D图像识别的第一候选边缘(例如,56011/56012/56013/56014)。例如,第一候选边缘可以基于2D图像的两个图像区域之间的边界形成。在一些情况下,计算系统1100可以基于2D图像信息和3D图像信息来识别多个候选边缘。在这样的情况下,多个候选边缘可以包括来自2D图像信息的第一候选边缘,如以上所讨论的,并且还包括基于3D图像信息识别的第二候选边缘(例如,图6B的57011)。

作为示例,图11A-图11B示出了计算系统1100基于3D图像信息5700将候选边缘57011识别为多个候选边缘中的第二候选边缘。在此示例中,计算系统1100可以基于在3D图像信息5700的第一部分5710A和第二部分5750A之间的候选边缘57011处检测到深度的急剧改变来识别候选边缘57011。第一部分5710A可以表示例如图3A-图3C的对象3510的顶表面上的位置区域,而第二部分5750A可以表示例如对象3550的顶表面上的位置区域。更特别地,如图11B所描绘的,3D图像信息的第一部分5710A可以包括对象3510的顶表面上的位置5710c到5710c 5的相应深度值,而第二部分5750A可以包括对象3550的顶表面上的位置5750d到5750d 4的相应深度值。在此示例中,位置5710c到5710c 5和5750d到5750d 4可以是沿着图11A的Y-轴对齐的一系列位置。

在实施例中,计算系统1100可以基于检测到由3D图像信息5700描述的一系列位置的两个连续位置或以其他方式相邻的位置之间的深度的急剧改变来识别图11B的候选边缘57011。这样的急剧改变可以被称为深度不连续条件。例如,当两个位置的相应深度值之间的差超过定义的深度差阈值时,急剧改变可以被检测到。例如,计算系统1100可以确定位置5710c 5的深度值和位置5750d的深度值之间的差超过定义的深度差阈值。因此,计算系统1100可以基于这两个位置5710c 5、5750d来识别候选边缘57011。例如,候选边缘57011可以被识别为包括Y-轴上的位置5710c 5、5750d之间的位置。

在实施例中,计算系统1100可以通过基于3D图像信息识别具有超过定义的深度差阈值的深度差的两个表面来识别候选边缘。例如,如图11C所示,计算系统1100可以基于由3D图像信息5700描述的第一组位置来识别一组对象3510-3550的第一表面,其中第一组位置具有彼此偏差不超过定义的测量方差阈值的相应深度值。类似地,计算系统1100可以基于由3D图像信息5700描述的第二组位置来识别一组对象3510-3550的第二表面,其中第二组位置具有彼此偏离不超过定义的测量方差阈值的相应深度值。在图11C的示例中,第一组位置可包括位置5710c到5710c 5,其可表示对象5710的顶表面,而第二组位置可包括位置5750d到5750d 4,其可表示对象5750的顶表面。

在此实施例中,定义的测量方差阈值可以描述成像噪声、制造公差或可能在由相机(例如,3200B)进行的深度测量中引入随机波动的其他因素的影响。这样的随机波动源使得各种位置的深度值具有一些自然的方差(natural variance),即使各种位置是公共表面的一部分并且实际上相对于相机具有相同的深度。在一些情况下,定义的测量方差阈值可以等于或基于用于描述深度测量中的期望的随机波动的标称标准偏差,或更一般地,相机对噪声或其他误差源有多敏感。标称标准偏差可以描述基线标准偏差或对于相机生成的深度值或其他深度信息所期望的其他形式的方差。标称标准偏差,或更一般地而言定义的测量方差阈值,可以是存储在例如非暂时性计算机可读介质1120中的值,并且可以是预定义的值或动态定义的值。在实施例中,如果位置集合具有彼此偏离不超过定义的测量方差阈值的相应深度值,则计算系统1100可以确定该位置集合是公共表面的一部分。在更具体的实施例中,如果位置集合的相应深度值的标准偏差(例如,Std5710或Std5750)小于定义的测量方差阈值,则计算系统1100可以确定该位置集合是公共表面的一部分。

在上面的实施例中,计算系统1100可以基于具有足够深度差的两个表面从3D图像信息中识别候选边缘。例如,描述对象5710的顶表面的图11C中的第一组位置可以具有平均深度值Avg5710或以其他方式与平均深度值Avg5710相关联。类似地,描述对象5750的顶表面的第二组位置可以具有平均深度值Avg5750或以其他方式与平均深度值Avg5750相关联。计算系统1100可以确定Avg5710和Avg5750之间的差是否大于或等于定义的深度差阈值。在一些情况下,定义的深度差阈值可以被确定为定义的测量方差阈值的倍数(例如,定义的测量方差阈值的两倍,或定义的测量方差阈值的五倍)。如果与两个表面相关联的Avg5710和Avg5750之间的差大于或等于定义的深度差阈值,则计算系统1100可以确定深度不连续条件被满足。更特别地,计算系统1100可以确定候选边缘(例如,57011)存在于两个表面之间的位置处,并且更具体地基于两个表面之间存在过渡的位置来识别候选边缘。

如上所述,本公开的一方面涉及使用2D图像信息和3D图像信息来彼此补偿,使得3D图像信息可以补偿2D图像信息中的限制(反之亦然)。在一些情况下,与仅从2D图像信息检测到的物理边缘相比,从3D图像信息检测到的物理边缘可以与更高的置信水平相关联。在一些情况下,如果物理边缘(例如,图3B的3510A)在2D图像信息和3D图像信息两者中被表示,则计算系统1100可以识别表示2D图像信息中的物理边缘的候选边缘(例如,56015),并识别表示3D图像信息中的物理边缘的对应候选边缘(例如,57011)。如上所述,对应的候选边缘可以相互映射。例如,3D图像信息中的候选边缘(例如,57011)可以映射到2D图像信息中的候选边缘(例如,56015)。候选边缘(例如,56015)可以基于两个图像区域(诸如56055和5650)之间的边界形成。然而,在一些情况下,计算系统1100可能无法以高置信水平来确定来自2D图像信息的候选边缘(例如,56015)对应于实际物理边缘。例如,如图11D所示,2D图像5600在候选边缘56015处可以具有图像强度的阶梯形变化。在此示例中,计算系统1100可以确定2D图像5600在候选边缘56015处(或更具体地在两个图像区域56055和5650处)不满足定义的暗度条件。因此,计算系统1100可以确定不存在与表示物理边缘的候选边缘56015相关联的足够高的置信水平。

在这样的情况下,计算系统1100可以使用3D图像信息来提供附加输入。更特别地,计算系统1100可以基于3D图像信息识别候选边缘57011,如上面关于图11A-图11C所讨论的,其中2D图像信息中的候选边缘56015可以映射或以其他方式对应于3D图像信息中的候选边缘57011。在一些情况下,因为候选边缘57011是基于深度信息识别的,所以计算系统1100可以确定存在候选边缘57011表示物理边缘(即图3B的物理边缘3510A)的足够高的可能性。因此,2D图像信息可能不会导致对物理边缘3510A的检测,或者可能导致以低置信水平对物理边缘3510A的检测,而3D图像信息可以被计算系统1100用来以更高的置信水平检测物理边缘3510A。

返回图4,在实施例中,方法4000可以包括步骤4008,其中计算系统1100可以选择多个候选边缘的子集(例如,多个候选边缘56011到5601n的子集)以形成用于表示一组对象(例如,3510-3540)的物理边缘的选择的候选边缘子集。在实施例中,此步骤可以涉及从子集中排除各自很可能是伪边缘的一个或多个候选边缘。很可能是伪边缘的一个或多个候选边缘可以从候选边缘子集中过滤掉,或者更一般地从用于表示一组对象(例如,3510-3540)的物理边缘的进一步考虑中忽略。在一个示例中,计算系统1100可以通过确定从多个候选边缘中过滤出哪个(哪些)候选边缘来选择多个候选边缘的子集,其中多个候选边缘在被过滤之后形成所得到的子集。在一个示例中,如果多个候选边缘由图2C的边缘检测信息1126表示或描述,则过滤候选边缘可以涉及从边缘检测信息1126中删除关于该候选边缘的信息。

如上所述,多个候选边缘(例如,56011至5601n,或56011至5601n和57011至5701n)可至少包括基于第一图像区域和比第一图像区域更暗的第二图像区域之间的边界形成的第一候选边缘(例如,56011或56014)。此外,第一候选边缘可从2D图像信息中被识别出。在实施例中,步骤4008可以涉及确定是否将第一候选边缘包括在子集(也被称为候选边缘的子集)中。将第一候选边缘(例如,56011)包括在子集中可以允许第一候选边缘被用来表示相机视场中的一组对象的至少一个物理边缘(例如,3510B)。更具体地,如果第一候选边缘(例如,56011)被包括在子集中,则这样的包括可以指示第一候选边缘(例如,56011)仍然是仍在考虑用于表示一组对象的物理边缘中的至少一个物理边缘的候选者。换句话说,计算系统1100可以确定是否保留第一候选边缘作为用于表示至少一个物理边缘的候选者。如果计算系统1100确定保留第一候选边缘作为这样的候选者,则它可以将第一候选边缘包括在子集(其也可以被称为选择的候选边缘子集)中。该确定可以是选择多个候选边缘的子集的步骤的一部分,并且可以基于图像在第一候选边缘处是否满足定义的暗度条件来执行。在一些情况下,将第一候选边缘包括在子集中可以是第一候选边缘具有作为伪边缘的足够低的可能性的指示。在一些情况下,将第一候选边缘包括在子集中可以是如下指示:即第一候选边缘(例如,56011)具有对应于一组对象的实际物理边缘的足够高的置信水平,使得计算系统1100将使用第一候选边缘来表示一组对象的至少一个物理边缘,或者将至少继续考虑第一候选边缘用于表示一组对象的至少一个物理边缘。如果计算系统1100确定不将第一候选边缘(例如,56014)包括在子集中,使得第一候选边缘(例如,56014)被过滤或以其他方式从子集中被排除,则这样的排除可以是第一候选边缘(例如,56014)不再是用于表示一组对象的物理边缘中的至少一个物理边缘的候选者的指示。在一些情况下,将第一候选边缘从子集中排除可以指示第一候选边缘(例如,56014)很可能是伪边缘。

在实施例中,确定是否将第一候选边缘包括在所选择的候选边缘子集中可以基于图像信息(例如,5600)在第一候选边缘处是否满足定义的暗度条件,如上所述。在一些实现中,如果图像信息在第一候选边缘处满足定义的暗度条件,则这样的结果可以指示第一候选边缘具有作为伪边缘的足够低的可能性,因为在这样的情况下的第一候选边缘很可能与表示两个对象之间的物理间隙的图像区域相关联。因此,第一候选边缘很可能表示形成物理间隙的一侧的物理边缘。在这样的情况下,计算系统1100可以确定将第一候选边缘包括在所选择的子集中。在一些情况下,如果图像信息在第一候选边缘处不满足定义的暗度条件,则计算系统1100可以确定不将第一候选边缘包括在所选择的子集中。在一些情况下,如果计算系统确定2D图像信息在第一候选边缘处不满足定义的暗度条件,则计算系统1100可以使用3D图像信息来进一步评估第一候选边缘。例如,如果计算系统1100确定2D图像5600在候选边缘56015处不满足定义的暗度条件,则计算系统1100可以确定该候选边缘56015是否映射到由3D图像信息描述的候选边缘57011以及3D图像信息中的候选边缘57011是否指示大于定义的深度差阈值的深度改变,如上面关于图11A-图11D所讨论的。

在实施例中,方法4000可以多次(例如,经由多次迭代)执行步骤4006和/或4008以确定图像信息在多个候选边缘处是否满足定义的暗度条件,并且基于这些确定来选择上面讨论的子集。作为示例,如果多个候选边缘至少包括候选边缘56011至5601n,则计算系统1100可以多次执行步骤4006以确定2D图像5600在例如候选边缘56011至5601n处是否满足定义的暗度条件。计算系统1100还可以多次执行步骤4008以确定这些候选边缘中的哪些将被包括在子集中并且仍然是用于表示物理边缘的候选者,以及这些候选边缘中的哪些将从子集中被排除并且因此不再是用于表示物理边缘的候选者。例如,计算系统1100可以确定子集将包括候选边缘56011和56012,因为2D图像5600在那些候选边缘处满足定义的暗度条件,并且子集将不包括候选边缘56013和56014,因为2D图像在那些候选边缘处不满足定义的暗度条件。在一些情况下,计算系统1100可以确定不将候选边缘56015包括在子集中,因为2D图像5600在候选边缘处不满足定义的暗度条件。在一些情况下,如果候选边缘56015映射到3D图像信息中指示超过深度差阈值的深度改变的候选边缘57011,则计算系统1100可以确定仍然将候选边缘56015包括在子集中。

在实施例中,方法4000可以包括其中计算系统1100输出机器人交互移动命令的步骤。机器人交互移动命令可用于机器人(例如,3300)和一组对象(例如,3510-3550)中的至少一个对象之间的机器人交互。机器人交互可以涉及例如机器人(例如,3300)执行卸垛操作或其中机器人从托盘拾取对象(例如,箱子)并将对象移动到目的地位置的其他操作。

在实施例中,机器人交互移动命令可以基于步骤4008的所选择的候选边缘子集生成。例如,计算系统1100可以使用所选择的候选边缘子集来从由图像信息描述的一组对象中区分单个对象。在一些情况下,计算系统1100可以使用所选择的子集来执行图像信息的分段。例如,如果图像信息包括点云,则计算系统可以使用所选择的候选边缘子集来执行点云分段,这可能涉及识别点云的对应于一组对象中的单个对象的一部分。第16/791,024号美国专利申请(代理卷号MJ0049-US/0077-0009US1)中更详细地讨论了点云分段,该美国专利申请的全部内容通过引用并入本文中。在一个示例中,如果图像信息包括2D图像信息,则计算系统1100可以使用所选择的候选边缘子集来隔离2D图像信息的对应于一组对象中的单个对象的一部分。隔离的部分可以例如用作目标图像或目标图像部分,该目标图像或目标图像部分用于(例如,由模块1128)执行对象识别操作或对象注册操作。第16/991,466号美国专利申请(代理卷号No.MJ0054-US/0077-0012US1)和第17/193,253号美国申请(代理卷号MJ0060-US/0077-0017US1)中更详细地讨论了对象注册和对象识别,这些美国专利申请的全部内容通过引用并入本文中。在这样的示例中,机器人交互移动命令可以基于对象识别操作或对象注册操作的结果来生成。例如,对象识别操作可以产生检测假设,其可以是对图像信息或其一部分表示什么对象或对象类型的估计。在一些情况下,检测假设可以与对象识别模板相关联,对象识别模板可以例如包括描述对象3510-3540中的一个的物理结构的信息。此信息可以被计算系统1100用来计划机器人(例如,3300)的移动以用于(例如,经由模块1129)拾取和移动对象。

虽然关于图3A-图3C的对象3510-3550说明了方法4000的以上步骤,但图12A关于对象12510说明了以上步骤,而图13A关于对象13510-13520说明了以上步骤。在实施例中,图12A的对象12510可以是具有顶表面的盒子,该顶表面具有比第二、紧邻的物理区域12514更暗的第一物理区域12512。例如,第一物理区域12512相对于第二物理区域12514可以具有印刷在其上的更多的墨水。对象12510可以布置在对象12520上,对象12520可以是其上布置盒子的托盘。图12B示出了可以被生成以表示对象12510的2D图像12600。更特别地,2D图像12600可以包括表示第一物理区域12512的第一图像区域12603,并且包括表示第二物理区域12514的第二图像区域12605。本实施例中的计算系统1100可以基于第一图像区域12603和第二图像区域12605之间的边界来识别第一候选边缘126011。

在实施例中,计算系统1100可以确定2D图像12600在第一候选边缘126011处不满足定义的暗度条件。例如,计算系统1100可以确定2D图像12600具有图像强度分布12001,该图像强度分布12001在第一候选边缘126011处具有图像强度的阶梯形变化。可以沿着沿着图像的u轴延伸的轴12609来测量图像强度分布。在一些实现中,计算系统1100可以确定图像强度分布12001或更具体地确定图像区域12603和12605不满足尖峰强度分布标准。计算系统1100还可以确定在第一候选边缘126011处不满足定义的暗度条件。因此,计算系统1100可以从边缘检测信息1126中过滤掉第一候选边缘126011。

在图13A的实施例中,对象13510和13520各自可以是盒子,并且可以被布置在对象13530上,对象13530可以是托盘或其他平台。在此实施例中,对象13510可以比对象13520更暗(例如,由于由更暗的纸板或其他材料制成)。此外,两个对象可以由狭窄的物理间隙g分开。图13B示出了包括表示第一对象13510的第一图像区域13603和表示第二对象13530的第二图像区域13605的2D图像13600。本实施例中的计算系统1100可以基于两个图像区域13605、13605之间的边界来识别候选边缘136011。

如图12B和图13B所示,图像12600和13600可以具有类似的外观。然而,如图13C所示,图像13600可以具有包括图像强度的尖峰降低的图像强度分布。更特别地,图像13600的图像区域13603可以更具体地包括用于表示对象13510、13520之间的物理间隙g的图像区域136031,并且包括用于表示对象13520的图像区域136032。在此实施例中,图像区域136031可以包括图像强度的尖峰降低,并且可以具有小于定义的暗度阈值的最小像素强度值。因此,计算系统1100可以确定图像区域136031满足定义的尖峰强度分布标准和/或定义的暗度阈值标准。因此,计算系统1100可以确定图像13600在第一候选边缘136031处满足定义的暗度条件。计算系统1100因此可以确定使用第一候选边缘136031来表示对象13510、13520的物理边缘中的一个。

各种实施例的附加讨论:

实施例1包括一种计算系统或一种由该计算系统执行的方法。计算系统可包括通信接口和至少一个处理电路。通信接口可以被配置为与机器人以及与具有相机视场的相机进行通信。至少一个处理电路可以被配置为当一组对象在相机视场中时,执行以下操作:接收表示一组对象的图像信息,其中图像信息由相机生成;从图像信息中识别与该组对象相关联的多个候选边缘,其中多个候选边缘是形成用于表示该组对象的物理边缘的相应候选者的相应图像位置或物理位置集合,或包括该相应图像位置或物理位置集合;当多个候选边缘包括基于第一图像区域和第二图像区域之间的边界形成的第一候选边缘时,确定图像信息在第一候选边缘处是否满足定义的暗度条件,其中第一图像区域比第二图像区域更暗,其中第一图像区域和第二图像区域是由图像信息描述的相应区域;选择多个候选边缘的子集以形成用于表示该组对象的物理边缘的选择的候选边缘子集,其中该选择包括:基于图像信息在第一候选边缘处是否满足定义的暗度条件,确定是否通过将第一候选边缘包括在所选择的候选边缘子集中来保留第一候选边缘作为用于表示该组对象的物理边缘中的至少一个物理边缘的候选者;以及输出机器人交互移动命令,其中机器人交互移动命令用于机器人与该组对象中的至少一个对象之间的机器人交互,并基于所选择的候选边缘子集生成。在此实施例中,至少一个处理电路被配置为响应于确定第一图像区域满足定义的暗度阈值标准或定义的尖峰强度分布标准中的至少一个,确定图像信息在第一候选边缘处满足定义的暗度条件。进一步在此实施例中,至少一个处理电路被配置为通过确定第一图像区域是否具有图像强度比定义的暗度阈值更暗的至少一部分来确定第一图像区域是否满足定义的暗度阈值标准。进一步在此实施例中,至少一个处理电路被配置为通过确定第一图像区域是否具有图像强度分布来确定第一图像区域是否满足尖峰强度分布标准,该图像强度分布包括:(i)第一分布部分,其中图像强度作为位置的函数在第一图像区域内暗度增加,以达到在第一图像区域内的位置处的暗度的峰值水平,然后是(ii)第二分布部分,其中图像强度作为位置的函数在第一图像区域内暗度减少,远离暗度的峰值水平。

实施例2包括实施例1的计算系统,其中第一图像区域是形成表示该组对象中的第一对象和第二对象之间的物理间隙的像素带的第一像素区域,其中第二图像区域是紧邻第一像素区域的第二像素区域,使得形成第一候选边缘的边界位于第一像素区域和第二像素区域之间。

实施例3包括实施例2的计算系统,其中至少一个处理电路被配置为通过确定第一图像区域是否具有小于定义的暗度阈值的像素强度值来确定第一图像区域是否满足定义的暗度阈值标准。

实施例4包括实施例2或3的计算系统,其中第一图像区域的图像强度分布描述跨第一图像区域的宽度维度延伸的一系列像素的相应像素强度值,并且其中至少一个处理电路被配置为通过确定图像强度分布是否具有其中相应像素强度值朝着第一图像区域中的最小像素强度值减少然后切换到远离最小像素强度值而增加的形状来确定第一图像区域是否满足尖峰强度分布标准,其中最小像素强度值与第一图像区域中的暗度的峰值水平相关联。

实施例5包括实施例1至4中任一项的计算系统,其中至少一个处理电路被配置为仅响应于确定第一图像区域满足尖峰强度分布标准来确定第一图像区域满足定义的暗度条件。

实施例6包括实施例1至5中任一项的计算系统,其中至少一个处理电路被配置为仅响应于确定第一图像区域满足定义的暗度阈值标准来确定第一图像区域满足定义的暗度条件。

实施例7包括实施例1的计算系统,其中至少一个处理电路被配置为仅响应于确定第一图像区域满足定义的暗度阈值标准和定义的尖峰强度分布标准两者来确定第一图像区域满足定义的暗度条件。

实施例8包括实施例1-7中任一项的计算系统,其中至少一个处理电路被配置为当图像信息包括2D图像信息和3D图像信息时,基于2D图像信息来识别基于第一图像区域和第二图像区域之间的边界形成的第一候选边缘,其中3D图像信息包括相机视场中的位置的深度信息。

实施例9包括实施例8的计算系统,其中当:(i)3D图像信息缺少对应于第一候选边缘的一个或多个位置的深度信息,或(ii)对应于第一候选图像的3D图像信息的一部分受到大于定义的噪声容限阈值的成像噪声水平的影响时,至少一个处理电路被配置为执行对于是否保留第一候选边缘作为用于表示该组对象的物理边缘中的至少一个物理边缘的候选者的确定。

实施例10包括实施例8或9的计算系统,其中当3D图像信息在对应于第一候选边缘的一个或多个位置处不满足定义的深度不连续条件时,至少一个处理电路被配置为执行对于是否保留第一候选边缘作为用于表示该组对象的物理边缘中的至少一个物理边缘的候选者的确定。

实施例11包括实施例10的计算系统,其中至少一个处理电路被配置为响应于确定3D图像信息不描述一个或多个位置处的超过定义的深度差阈值的深度改变来确定3D图像信息不满足对应于第一候选边缘的一个或多个位置处的定义的深度不连续条件。

实施例12包括实施例8-11中任一项的计算系统,其中至少一个处理电路被配置为基于3D图像信息识别多个候选边缘中的第二候选边缘。

实施例13包括权利要求12的计算系统,其中至少一个处理电路被配置为基于3D图像信息通过以下方式识别第二候选边缘:基于由3D图像信息描述的第一组位置来识别该组对象的第一表面,该第一组位置具有彼此偏差不超过定义的测量方差阈值的相应深度值;基于由3D图像信息描述的第二组位置来识别该组对象的第二表面,该第二组位置具有在定义的测量方差阈值内的相应深度值;确定与第一表面相关联的平均深度值作为第一平均深度值;确定与第二表面相关联的平均深度值作为第二平均深度值;响应于确定第一平均深度值和第二平均深度值之间的差超过定义的深度差阈值,基于第一表面和第二表面之间存在过渡的位置来识别第二候选边缘。

实施例14包括实施例12或13的计算系统,其中至少一个处理电路被配置为:当第二候选边缘映射到2D图像信息中的并且基于不满足定义的暗度条件的两个图像区域之间的边界形成的候选边缘时,基于3D图像信息来识别第二候选边缘。

实施例15包括实施例1-14的计算系统,其中至少一个处理电路被配置为基于所选择的候选边缘子集来执行对象识别操作或对象注册操作,其中机器人交互移动命令是基于对象识别操作或对象注册操作的结果而生成的。

实施例16包括根据实施例1-15中任一项的计算系统,其中至少一个处理电路被配置为通过确定从多个候选边缘中过滤出哪些候选边缘来选择多个候选边缘的子集,其中多个候选边缘在被过滤之后形成候选边缘子集。

对于相关领域的普通技术人员将明显的是,在不脱离任何实施例的范围的情况下,可以对本文所描述的方法和应用进行其他适当的修改和调整。上述实施例是说明性示例,并且不应解释为本发明限于这些特定实施例。应当理解,本文所公开的各种实施例可以以与说明书和附图中具体呈现的组合不同的组合来进行组合。还应当理解,取决于示例,本文描述的任何过程或方法的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,所有描述的动作或事件对于执行方法或过程可能不是必需的)。例如,方法4000可以被修改为省略步骤4002。虽然上面讨论的各种实施例涉及方法4000的步骤4002-4008,但是本公开的另一种方法可以包括基于3D图像信息来识别候选边缘,如上面关于图11B或图11C所讨论的,并且可以省略步骤4002-4008。此外,尽管为了清楚起见,本文实施例的某些特征被描述为由单个部件、模块或单元来执行,但是应当理解,本文描述的特征和功能可以由部件、单元或模块的任意组合来执行。因此,在不脱离所附权利要求书所限定的本发明的精神或范围的情况下,本领域技术人员可以进行各种改变和修改。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献