生成用于物体检测的安全空间列表的方法和计算系统与流程

文档序号:31441757发布日期:2022-09-07 10:50阅读:74来源:国知局
生成用于物体检测的安全空间列表的方法和计算系统与流程

1.本公开涉及用于生成用于物体检测的安全空间列表的计算系统和方法。


背景技术:

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


技术实现要素:

3.本公开的一个方面涉及一种由计算系统执行的方法。计算系统可以包括通信接口和至少一个处理电路。在一些情况下,方法可以在至少一个处理电路执行非暂时性计算机可读介质上的指令时被执行。通信接口可以被配置为与机器人以及与具有相机视野的相机进行通信。至少一个处理电路被配置为当物体在或已经在相机视野中时,通过以下操作来执行方法:接收表示物体的图像信息,其中图像信息由相机生成;标识一组一个或多个匹配的物体识别模板,该组一个或多个匹配的物体识别模板是当与图像信息进行比较时满足预定的模板匹配条件的一个或多个物体识别模板,其中该组一个或多个匹配的物体识别模板与一组一个或多个检测假设相关联,该组一个或多个检测假设是对图像信息表示哪个物体或物体类型的一个或多个相应估计;从该组一个或多个检测假设中选择一个检测假设作为主要检测假设,其中主要检测假设与该组一个或多个匹配的物体识别模板中的一个匹配的物体识别模板相关联,其中被选择作为主要检测假设的检测假设在一组一个或多个相应置信度值中具有最高的置信度值,其中该组一个或多个相应置信度值与该组一个或多个检测假设相关联,并且指示图像信息与关联于该组一个或多个检测假设组的该组一个或多个匹配的物体识别模板相匹配的相应程度;生成候选区域作为主要候选区域,该候选区域估计物体的物体边界位置或估计相机视野中的哪些位置被物体占据,其中主要候选区域是基于与主要检测假设相关联的匹配的物体识别模板而生成的;确定以下至少一项:(i)除了与主要检测假设相关联的匹配的物体识别模板之外,该组一个或多个匹配的物体识别模板是否还具有当与图像信息比较时也满足该预定的模板匹配条件的一个或多个剩余的匹配的物体识别模板的子集;或(ii)图像信息是否具有表示与主要候选区域相邻且不满足预定的模板匹配条件的不匹配的区域的一部分;响应于确定存在一个或多个剩余的匹配的物体识别模板的子集,或者图像信息具有表示不匹配的区域的一部分,生成安全空间列表,该安全空间列表是描述以下至少一项的列表:(i)该不匹配的区域,或(ii)一个或多个附加候选区域,该一个或多个附加候选区域也估计物体的物体边界位置或估计哪些位置被物体占据,其中该一个或多个附加候选区域是基于该一个或多个剩余的匹配的物体识别模板的子集而生成的;以及基于主要候选区域并基于安全空间列表来执行运动规划,其中运动规划用于机器人与物体之间的机器人交互。
附图说明
4.图1a-1d示出了根据本文的实施例的用于执行物体检测的系统。
5.图2a-图2d提供了示出根据本文的实施例的被配置为执行物体检测的计算系统的框图。
6.图3a-图3b示出了根据本文的实施例的可以在其中执行物体检测的环境。
7.图4提供了示出根据本文的实施例的生成安全空间列表的方法的流程图。
8.图5a和5b示出了根据本文的实施例的可以从中生成安全空间列表的示例图像信息。
9.图6a-图6j示出了根据本文的实施例的执行物体检测、生成安全空间列表或基于安全空间列表生成边界区域的各个方面。
10.图7a-图7g示出了根据本文的实施例的执行物体检测、生成安全空间列表或基于安全空间列表生成边界区域的各个方面。
11.图8a-图8g示出了根据本文的实施例的生成安全空间列表的各个方面,其表示将物体识别模板与图像信息对准的不同方式。
12.图9a-图9f示出了根据本文的实施例的生成安全空间列表的各个方面,其表示由物体识别模板描述的物体形状的不同方向。
13.图10a-图10h示出了根据本文的实施例的标识用于执行物体检测的图像区域的各个方面。
14.图11a-图11e示出了根据本文的实施例的当图像信息具有不匹配的图像部分时执行物体检测的各个方面。
15.图12a-图12h示出了根据本文的实施例的当图像信息具有不匹配的图像部分时执行物体识别的各个方面。
16.图13a-图13b示出了根据本文的实施例的基于具有预定的最大物体高度的候选区域来执行物体检测或运动规划。
具体实施方式
17.本公开的一个方面涉及执行物体检测,该物体检测可以涉及处理由相机生成的图像信息以检测由图像信息表示的物体或物体类型。可以执行物体检测以便例如促进与物体进行的机器人交互,诸如其中机器人将物体(例如,盒子)从托盘移动到目的地位置的卸垛操作。本公开的一些实施例不仅涉及标识用于规划机器人交互的主要检测假设(其中主要检测假设可以是对图像信息表示什么物体或物体类型的一种假设、猜测或估计),还标识用于规划机器人交互的一个或多个附加检测假设。尽管主要检测假设可以提供用于规划机器人交互的有用信息,但是该一个或多个附加检测假设可以提供对规划机器人交互也可能有用的附加信息。由该一个或多个附加检测假设提供的附加信息可以例如使得物体检测和机器人交互的规划更为鲁棒并且更不容易受到可能的误差源的影响。
18.在实施例中,一个或多个附加检测假设可以被用于生成安全空间列表。在一些实现方案中,安全空间列表可以是标识该一个或多个附加检测假设的列表。在一些实现方案中,安全空间列表可以是标识与该一个或多个附加检测假设相关联的一个或多个候选区域的列表。候选区域可以是例如对物体所位于的空间区域的估计。在一些情况下,机器人交互
的规划可以基于与主要检测假设相关联的主要候选区域,并且还可以基于安全空间列表中的信息(诸如与一个或多个附加检测假设相关联的一个或多个候选区域)。
19.在一些情况下,主要检测假设和一个或多个附加检测假设可以与各个物体识别模板相关联。在一些情况下,可以在多个物体识别模板与由相机生成的图像信息充分匹配时生成安全空间列表。在这样的情况下,主要检测假设可以与匹配的物体识别模板中的一个物体识别模板(例如,产生最高置信度值的物体识别模板)相关联,而安全空间列表可以基于与剩余的匹配的物体识别模板相关联的检测假设而生成。在实施例中,安全空间列表可以包括在置信度值方面与主要检测假设足够相似和/或具有足够高的置信度值的检测假设。在一些情况下,安全空间可以包括与这样的检测假设相关联的候选区域。在实施例中,安全空间列表还可以排除具有过低的置信度值或与主要检测假设的置信度值相差太大的检测假设。在一些实现方案中,可以确定特定的候选区域是否与关联于主要检测假设的主要候选区域具有足够的重叠。如果有足够的重叠,则该特定的候选区域可以被包括在安全空间列表中。
20.在实施例中,生成安全空间可以涉及标识图像(例如,无纹理的2d图像)内的不同图像区域,以及将这些不同图像区域与物体识别模板进行比较。标识不同区域可以涉及例如检测位于一组图像角或图像边缘之间的第一图像区域,并且搜索图像以确定该图像是否描述了延伸超过第一图像区域并位于另一组图像角或图像边缘之间的第二图像区域。第二图像区域还可以与各个物体识别模板进行比较,以确定第二图像区域是否与模板之一匹配。
21.在实施例中,安全空间列表可以包括不匹配的区域,该不匹配的区域可以是由与现有物体识别模板不匹配的图像部分所表示的区域。在一些情况下,不匹配的区域可以是与主要候选区域相邻的区域,并且可以表示与由主要候选区域表示的物体或结构相邻的空间的物理区域。在一些情况下,新的物体识别模板可以基于不匹配的区域来生成。
22.图1a示出了用于基于图像信息执行物体检测或更具体地物体识别和/或物体注册的系统1000(在本公开中术语“和/或”和“或”可互换使用)。更具体地,系统1000可以包括计算系统1100和相机1200。在此示例中,相机1200可以被配置为生成图像信息,该图像信息描述或以其他方式表示相机1200所处的环境,或更具体地表示相机1200的视野(也被称为相机视野)中的环境。该环境可以是例如仓库、制造工厂、零售空间或一些其他场所。在这样的情况下,图像信息可以表示位于这样的场所的物体,诸如持有存储在场所处的物品的容器(例如,盒子、箱子或板条箱)。系统1100可以被配置为生成、接收和/或处理图像信息,诸如通过基于图像信息执行运动规划,如下面更详细地讨论的。运动规划可以被用于例如控制场所处的机器人以便于机器人与容器或其他物体之间的机器人交互。计算系统1100和相机1200可以位于相同的场所,或者可以彼此远离。例如,计算系统1100可以是托管在远离仓库或零售空间的数据中心中的云计算平台的一部分,并且可以经由网络连接与相机1200通信。
23.在实施例中,相机1200可以是2d相机和/或3d相机。例如,图1b示出了系统1000a(其可以是系统1000的实施例),该系统1000a包括计算系统1100以及相机1200a和相机1200b,相机1200a和相机1200b两者都可以是相机1200的实施例。在此示例中,相机1200a可以是被配置为生成2d图像信息的2d相机,该2d图像信息包括或形成描述相机的视野中的环
境的视觉外观的2d图像。相机1200b可以是被配置为生成3d图像信息的3d相机(也被称为空间结构感测相机或空间结构感测设备),该3d图像信息包括或形成关于相机的视野中的环境的空间结构信息。空间结构信息可以包括深度信息,该深度信息描述了各个位置(诸如相机1200的视野中各个物体的表面上的位置)相对于相机1200的相应深度值。在此示例中,深度信息可以被用于估计物体如何被空间地布置在三维(3d)空间中。在一些情况下,空间结构信息可以包括或可以被用于生成点云,该点云描述了相机1200b的视野中物体的一个或多个表面上的位置。更具体地,空间结构信息可以描述物体的结构(也被称为物体结构)上的各个位置。
24.在实施例中,系统1000可以是用于便于机器人与相机1200的环境中的各个物体之间的交互的机器人操作系统。例如,图1c示出了机器人操作系统1000b,其可以是图1a和图1b的系统1000/1000a的实施例。机器人操作系统1000b可以包括计算系统1100、相机1200和机器人1300。如上所述,机器人1300可以被用于与相机1200的环境中的一个或多个物体(诸如盒子、板条箱、箱子或其他容器)交互。例如,机器人1300可以被配置为从一个位置拾取容器并将它们移动到另一位置。在一些情况下,机器人1300可以被用于执行在其中将一堆容器卸载并移动到例如传送带的卸垛操作,或者执行在其中将容器堆叠到托盘上以准备将它们进行运输的堆垛操作。在一些实现方案中,相机1200可以被附接到机器人1300,诸如被附接到机器人1300的机械臂。这样的实现方案可以允许相机1200经由机械臂被移动到不同的位置和/或方向。在一些实现方案中,相机1200可以与机器人1300分开。例如,相机1200可以被安装到仓库的天花板或其他结构,并且可以相对于该结构保持固定。
25.在实施例中,图1a-1c的计算系统1100可以形成机器人控制系统(也被称为机器人控制器)或是其一部分,该机器人控制系统是机器人操作系统1000b的一部分。机器人控制系统可以是被配置为例如为机器人1300生成移动命令或其他命令的系统。在这样的实施例中,计算系统1100可以被配置为基于例如由相机1200/1200a/1200b生成的图像信息来生成这样的命令。例如,计算系统1100可以被配置为基于图像信息确定运动规划,并生成一个或多个运动命令以执行运动规划。运动规划可以是机器人执行以移动一个或多个物体的规划。例如,运动规划可以涉及机器人1300的末端执行器装置(例如,抓持器)接近物体,然后拾取或以其他方式接合物体,并且将物体移动到目的地位置。
26.在实施例中,计算系统1100可以形成视觉系统或是视觉系统的一部分。视觉系统可以是生成例如视觉信息的系统,该视觉信息描述机器人1300所处的环境,或更具体地描述相机1200所处的环境。视觉信息可以包括上面讨论的3d图像信息或2d图像信息,或一些其他图像信息。在一些情况下,如果计算系统1100形成视觉系统,则视觉系统可以是上面讨论的机器人控制系统的一部分,或者可以与机器人控制系统分开。如果视觉系统与机器人控制系统是分开的,则视觉系统可以被配置为输出描述机器人1300所处的环境的信息。该信息可以被输出到机器人控制系统,该机器人控制系统可以从视觉系统接收这样的信息并且基于该信息来控制机器人1300的移动。
27.在实施例中,计算系统1100可以经由直接连接(诸如,经由专用有线通信接口(诸如,rs-232接口、通用串行总线(usb)接口)和/或经由本地计算机总线(诸如外围组件互连(pci)总线)提供的连接)与相机1200和/或机器人1300进行通信。在实施例中,计算系统1100可以经由网络与相机1200和/或与机器人1300通信。网络可以是任何类型和/或形式的
网络,诸如个人局域网(pan)、局域网(lan)(例如内联网)、城域网(man)、广域网(wan))或互联网。网络可以利用不同的技术和协议层或协议栈,包括例如以太网协议、互联网协议套件(tcp/ip)、atm(异步传输模式)技术、sonet(同步光网络)协议或sdh(同步数字体系)协议。
28.在实施例中,计算系统1100可以与相机1200和/或与机器人1300直接通信信息,或者可以经由中间存储设备或更一般地经由中间非暂时性计算机可读介质进行通信。例如,图1d示出了可以是系统1000/1000a/1000b的实施例的系统1000c,该系统1000c包括非暂时性计算机可读介质1400,该非暂时性计算机可读介质1400可以在计算系统1100的外部,并且可以充当外部缓冲器或存储库(repository),用于存储例如由相机1200生成的图像信息。在这样的示例中,计算系统1100可以检索或以其他方式接收来自非暂时性计算机可读介质1400的图像信息。非暂时性计算机可读介质1400的示例包括电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合。非暂时性计算机可读介质可以形成例如计算机软盘、硬盘驱动器(hdd)、固态驱动器(ssd)、随机存取存储器(ram)、只读存储器(rom)、可擦可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能磁盘(dvd)和/或记忆棒。
29.如上所述,相机1200可以是3d相机和/或2d相机。2d相机可以被配置为生成2d图像,诸如彩色图像或灰度图像。3d相机可以是例如深度感应相机,诸如飞行时间(tof)相机或结构光相机或任何其他类型的3d相机。在一些情况下,2d相机和/或3d相机可以包括图像传感器,诸如电荷耦合器件(ccd)传感器和/或互补金属氧化物半导体(cmos)传感器。在实施例中,3d相机可以包括激光器、激光雷达设备、红外设备、明/暗传感器、运动传感器、微波检测器、超声波检测器、雷达检测器,或被配置为捕获空间结构信息的任何其他设备。
30.如上所述,图像信息可以由计算系统1100处理。在实施例中,计算系统1100可以包括或被配置为服务器(例如,具有一个或多个服务器刀片、处理器等)、个人计算机(例如,台式计算机、膝上型计算机等)、智能手机、平板计算设备和/或其他任何其他计算系统。在实施例中,计算系统1100的任何或所有功能可以被执行为云计算平台的一部分。计算系统1100可以是单个计算设备(例如,台式计算机),或者可以包括多个计算设备。
31.图2a提供了示出计算系统1100的实施例的框图。计算系统1100包括至少一个处理电路1110和(一个或多个)非暂时性计算机可读介质1120。在实施例中,处理电路1110包括一个或多个处理器、一个或多个处理核、可编程逻辑控制器(“plc”)、专用集成电路(“asic”)、可编程门阵列(“pga”)、现场可编程门阵列(“fpga”),其任何组合或任何其他处理电路。
32.在实施例中,作为计算系统1100的一部分的非暂时性计算机可读介质1120可以是以上讨论的中间非暂时性计算机可读介质1400的替代或附加。非暂时性计算机可读介质1120可以是存储设备,诸如电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合,例如,诸如计算机软盘、硬盘驱动器(hdd)、固态驱动器(ssd)、随机存取存储器(ram)、只读存储器(rom)、可擦可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能磁盘(dvd)、记忆棒、其任何组合或任何其他存储设备。在一些情况下,非暂时性计算机可读介质1120可以包括多个存储设备。在某些实现方案中,非暂时性计算机可读介质1120被配置为存储由相机1200生成并且由计算系统1100接收的图像信息。非暂时性计算机可读介质1120可以替代
地或附加地存储计算机可读程序指令,在由处理电路1110执行时,该指令使处理电路1110执行这里描述的一个或多个方法,诸如关于图4描述的操作。
33.图2b描绘了计算系统1100a,其是计算系统1100的实施例并且包括通信接口1130。通信接口1130可以被配置为例如接收由图1a-1d的相机1200生成的图像信息。可以经由以上讨论的中间非暂时性计算机可读介质1400或网络,或者经由相机1200与计算系统1100/1100a之间的更直接的连接来接收图像信息。在实施例中,通信接口1130可以被配置为与图1c的机器人1300通信。如果计算系统1100在机器人控制系统外部,则计算系统1100的通信接口1130可以被配置为与机器人控制系统通信。通信接口1130也可以被成为通信组件或通信电路,并且可以包括例如被配置为通过有线或无线协议执行通信的通信电路。作为示例,通信电路可以包括rs-232端口控制器、usb控制器、以太网控制器、控制器、pci总线控制器、任何其他通信电路或其组合。
34.在实施例中,非暂时性计算机可读介质1120可以存储一个或多个物体识别模板(也被称为物体模板)。该一个或多个物体识别模板可以被用于执行物体识别,其可以涉及确定例如相机(例如,1200)的相机视野中的物体的身份和/或物体的物体类型。因此,一个或多个物体识别模板中的每一个可以表示相应的物体类型或与相应的物体类型相关联。物体类型可以指物体的类型或类别,例如容器的类型或类别。例如,如果相机视野中的物体是容器,则执行物体识别可以涉及确定与该容器相关联的或该容器所属的容器类型。在这样的示例中,物体识别模板可以是容器模板,并且可以包括描述特定容器类型或更一般地特定物体类型的信息(也被称为模板信息)。例如,物体识别模板中的模板信息可以包括描述与物体类型相关联的外观的视觉描述信息,诸如属于与该物体识别模板相关联的物体类型的物体的视觉设计,诸如视觉图案或这样的物体外表面的其他视觉细节。在一些实现方案中,物体识别模板的视觉描述信息(也被称为物体外观描述)可以描述印刷或以其他方式布置在具有与该物体识别模板相关联的类型的物体上的视觉图案或其他视觉细节(例如,徽标或图片)。例如,视觉描述信息可以包括表示或描述视觉细节或视觉设计的一个或多个描述子(例如,特征描述子)。在一些实现方案中,模板信息可以包括结构描述信息,该结构描述信息可以描述与物体类型相关联的物理设计,或更具体地,结构(也被称为物理结构)。
35.在实施例中,以上讨论的一个或多个物体识别模板可以被存储在模板存储空间中,该模板存储空间可以是被分配以存储物体识别模板的非暂时性计算机可读介质上的空间。例如,图2c描绘了其中(一个或多个)模板存储空间1122位于计算机系统1100b(其可以是计算系统1100/1100a的实施例)的非暂时性计算机可读介质1120中的示例。在一些实现方案中,模板存储空间1122或另一个模板存储空间可以位于另一个非暂时性计算机可读介质中,诸如图1d的非暂时性计算机可读介质1400。第16/991,466号美国专利申请(atty dkt.no.mj0054-us/0077-0012us1)中更详细地讨论了模板存储空间和物体注册,该美国专利申请的全部内容通过引用并入本文中。在一些实现方案中,物体识别模板可以包括至少一个有纹理的模板和至少一个无纹理的模板。第16/991,510号美国专利申请(atty dkt.no.mj0051-us/0077-0011us1)中更详细地讨论了有纹理的模板和无纹理的模板,该美国专利申请的全部内容通过引用并入本文中。在一些情况下,计算系统1100b或更一般地系统1000/1000a/1000b/1000c可以包括多个模板存储空间,该多个模板存储空间可以被用于例如存储多种相应类型的物体识别模板。例如,(一个或多个)模板存储空间1122可以包括
用于存储有纹理的模板的第一模板存储空间,并且包括用于存储无纹理的模板的第二模板存储空间。物体识别模板可以已经例如作为物体注册过程的一部分而被生成,和/或可以已经被从诸如服务器的源接收(例如,下载)。
36.在实施例中,非暂时性计算机可读介质1120可以存储物体检测信息1126,该物体检测信息1126可以包括例如关于物体(例如,相机视野中的容器)的信息,其中该信息可以基于对由相机生成的图像信息表示的物体执行物体识别来确定,或被确定为对由相机生成的图像信息表示的物体执行物体识别的结果。物体检测信息1126可以被计算系统1100/1100a/1100b和/或由另一计算系统用来例如规划与由物体检测信息表示的物体进行的机器人交互。规划机器人交互可涉及例如执行运动规划,该运动规划可涉及规划用于与物体交互的机器人(例如,1300)的运动。在一些情况下,物体检测信息1126可以包括或描述一个或多个检测假设。如下面更详细地讨论的,一个或多个检测假设的每个检测假设可以是对由相机(例如,1200)生成的图像信息表示哪个物体或物体类型的假设。更具体地,在一些情况下,检测假设可以是对哪个物体或物体类型在相机的相机视野中的估计。在一个示例中,如果图像信息与一个或多个物体识别模板进行比较,则检测假设可以是对特定物体识别模板与图像信息相对应或图像信息表示与特定物体识别模板相关联的物体或物体类型的假设(或更一般地,估计)。
37.在实施例中,物体检测信息1126可以针对包括在物体检测信息1126中或由物体检测信息1126描述的每个检测假设来指示检测假设和与该检测假设相关联的置信度值。置信度值可以由例如计算系统1100/1100a/1100b计算,并且可以指示将该检测假设与相机视野中的物体相关联的置信度水平,或更具体地,使用该检测假设来表示或标识该物体的置信度水平。如果检测假设是对物体或其图像信息与特定物体识别模板相对应的估计,则与该检测假设相关联的置信度值可以指示物体识别模板与图像信息匹配的程度。例如,如果检测假设与具有视觉描述信息或结构描述信息的物体识别模板相关联,则与检测假设相关联的置信度值可以指示模板中的视觉描述信息与图像信息中所描述的物体的外观匹配的程度,和/或模板中的结构描述信息与图像信息中所描述的物体的结构匹配的程度。如下面更详细地讨论的,在实施例中,物体检测信息可以包括或描述主要检测假设和/或与该主要检测假设相关联的主要候选区域,如下面更详细地讨论的。物体检测信息还可以包括或描述安全空间列表。安全空间列表可以是一个或多个附加检测假设和/或与该一个或多个附加检测假设相关联的一个或多个候选区域的列表。在一些情况下,主要检测假设可以是与一组置信度值中的最高置信度值相关联的检测假设。在一些情况下,安全空间列表中的一个或多个附加检测假设可以与足够类似于最高置信度值的一个或多个相应的置信度值相关联。在一些情况下,安全空间列表中的一个或多个附加检测假设可以具有超过或至少等于预定的模板匹配阈值的一个或多个相应的置信度值。
38.在实施例中,物体检测信息1126可以描述与相机视野中的物体(或更具体地,表示物体的图像信息)相关联的一个或多个候选区域。该一个或多个候选区域各自可以是对物体的物体边界位置的相应估计,或者是对物体所占据的相机视野中的位置的相应估计。如下面更详细地讨论的,物体检测信息1126在一些情况下可以标识主要候选区域,该主要候选区域可以是与主要检测假设相关联的候选区域。如果物体检测信息1126包括安全空间列表,则安全空间列表在一些情况下可以标识一个或多个附加候选区域,这些附加候选区域
也可以估计物体的物体边界位置或估计物体所占据的位置。在一些情况下,物体检测信息1126中的安全空间列表可以直接或间接地标识或描述该一个或多个附加候选区域或该一个或多个附加检测假设。在一些实现方案中,计算系统1100/1100a/1100b可以基于该一个或多个附加检测假设来确定该一个或多个附加候选区域。例如,一个或多个附加检测假设可包括相应一组或多组结构描述信息,诸如物体大小信息。计算系统1100/1100a/1100b可以被配置为基于该相应一组或多组相应结构描述信息来确定一个或多个附加候选区域。
39.在实施例中,物体检测信息1126中的安全空间列表可以标识不匹配的区域,该不匹配的区域可以是图像信息中由与存储空间(诸如(一个或多个)模板存储空间1122)中的任何现有物体识别模板都不匹配的一部分所表示的区域。更具体地,不匹配的区域可以是与主要候选区域相邻并且不满足预定的模板匹配条件的区域,如下面更详细地讨论的。在实施例中,物体检测信息1126可以描述边界区域,该边界区域可以是包围主要候选区域并且包围一个或多个附加候选区域和/或不匹配的区域的区域,如下面更详细地讨论的。
40.在实施例中,处理电路1110可以由存储在非暂时性计算机可读介质1120上的一个或多个计算机可读程序指令来编程。例如,图2d示出了计算系统1100c,其是计算系统1100/1100a/1100b的实施例,其中处理电路1110由包括物体识别模块1127、物体注册模块1128和/或运动规划模块1129的一个或多个模块编程。
41.在实施例中,物体识别模块1127可以被配置为基于由相机(例如,1200)生成的图像信息来执行物体识别操作,以确定图像信息表示什么物体(一个或多个)或物体类型(一个或多个)。在一些实现方案中,物体识别模块可以通过将图像信息与一个或多个物体识别模板(诸如,存储在模板存储空间1122中的物体识别模板)进行比较以确定一个或多个物体识别模板与图像信息的匹配程度(或更具体地,确定图像信息与一个或多个物体识别模板的相应匹配程度)来执行物体识别操作。例如,模块1127可以计算与将图像信息与一个或多个物体识别模板进行比较相关联的一个或多个相应的置信度值。物体识别操作可以被用于生成物体检测信息1126,诸如标识主要检测假设和安全空间列表的信息,这将在下面更详细地讨论。
42.在实施例中,物体注册模块1128可以被配置为生成新的物体识别模板,和/或将新的物体识别模板存储在模板存储空间(例如,1122)中。当例如图像信息或其一部分表示与模板存储空间中的任何现有物体识别模板都不匹配或者更具体地当与现有的物体识别模板相比较时不满足预定的模板匹配条件的空间、物体或物体的一部分的区域时,新物体注册模块1128可以被生成。
43.在实施例中,运动规划模块1129可以被配置为基于表示相机视野中的物体的图像信息来执行运动规划。更具体地,运动规划可以涉及确定要由机器人(例如,1300)或其组件执行的运动,其中运动可以基于物体检测信息1126来确定。例如,运动规划可以涉及确定机器人1300的机械臂的末端执行器装置(例如,抓持器)要如何移动以抓持物体,以及确定末端执行器装置在其已经抓持了物体后要遵循的轨迹,其中该轨迹使末端执行器装置将物体移动到目的地位置,同时在沿着轨迹移动期间与其他物体具有较低的碰撞风险。
44.在各个实施例中,术语“计算机可读指令”和“计算机可读程序指令”用于描述被配置为执行各个任务和操作的软件指令或计算机代码。在各个实施例中,术语“模块”广义上是指被配置为使处理电路1110执行一个或多个功能任务的软件指令或代码的集合。当处理
电路或其他硬件组件正在执行模块或计算机可读指令时,模块和计算机可读指令可以被描述为执行各个操作或任务。
45.图3a和图3b示出了其中可以执行物体检测的示例环境。更具体地,图3a描绘了包括计算系统1100、机器人3300和相机3200的系统3000(其可以是图1a-1d的系统1000/1000a/1000b/1000c的实施例)。相机3200可以是相机1200的实施例,并且可以被配置为生成图像信息,该图像信息表示相机3200的相机视野3210中的场景,或更具体地表示相机视野3210中的物体(诸如物体3510和物体3520)或其结构。在一些情况下,物体3510可以是例如诸如盒子或板条箱的容器,而物体3520可以是其上布置有该容器的托盘。在实施例中,如图3b所示,系统3000可以包括多个相机,包括具有相机视野3210a的相机3200a(其可以是相机1200a的实施例),并且包括具有相机视野3210b的相机3200b(其可以是相机1200b的实施例)。相机3200a可以是例如被配置为生成2d图像或其他2d图像信息的2d相机,而相机3200b可以是例如被配置为生成3d图像信息的3d相机。2d图像(例如,彩色图像或灰度图像)可以描述相机视野3210/3210a中一个或多个物体(诸如,物体3510)的外观。例如,2d图像可以捕获或以其他方式表示布置在物体3510的外表面(例如,顶表面)上的视觉细节,诸如视觉标记3512。在实施例中,3d图像信息可以描述物体3510的结构(也被称为物体3510的物体结构)。例如,3d图像可以包括深度图,或更一般地包括深度信息,其可以描述相机视野3210/3210b中的各个位置相对于相机3200b或相对于某个其他参考点的相应深度值。对应于相应深度值的位置可以是相机视野3210/3210b中各个表面上的位置,诸如物体3510、3520的一个或多个外表面(例如,顶表面)上的位置。在一切情况下,3d图像信息可以包括点云,该点云可以包括多个3d坐标,这些3d坐标描述相机视野3210/3210b中的物体3510、3520或一些其他物体的一个或多个外表面上的各个位置。
46.在图3a和3b的示例中,机器人3300(其可以是机器人1200的实施例)可以包括机械臂3320,该机械臂3320具有附接到机器人基座3310的一端,并且具有附接到末端执行器装置3330(诸如机器人抓持器)或由末端执行器装置3330形成的另一端。机器人基座3310可以被用于安装机械臂3320,而机械臂3320(或更具体地,末端执行器装置3330)可以被用于与机器人3300的环境中的一个或多个物体(例如,3510)交互。交互可以包括例如抓持或以其他方式拾取一个或多个物体,和/或将一个或多个物体从当前位置移动到目的地位置。
47.图4描绘了用于执行物体检测的示例方法4000的流程图。方法4000可以由例如图2a-2d或图3a的计算系统1100执行,或更具体地由计算系统1100的至少一个处理电路1110执行。在一些情况下,至少一个处理电路1100可以通过执行存储在非暂时性计算机可读介质(例如,1120)上的指令来执行方法4000。例如,指令可以使处理电路1110执行图2d所示的一个或多个模块,这可以执行方法4000。作为示例,下面讨论的步骤4002-4012可以由物体识别模块1127执行。如果方法4000涉及生成新的物体识别模板,如下面所讨论的,则这样的操作可以由物体注册模块1128执行。如果方法4000涉及基于安全空间列表执行运动规划,如下面所讨论的,则这样的操作可以由运动规划模块1129执行。在实施例中,可以在计算系统1100与机器人和相机(诸如机器人3300和图3a-3b中的相机3200/3200a/3200b)或本公开中讨论的任何其他相机或机器人通信的环境中执行方法4000。在一些情况下,诸如图3a和3b中所示,相机(例如,3200)可以被安装到固定结构(例如,房间的天花板)。在其他情况下,相机可以被安装在机械臂(例如,3320)上,或更具体地被安装在机器人(例如,3300)的末端
执行器装置(例如,3330)上。
48.在实施例中,当物体(例如,3510)在相机(例如,3200/3200a/3200)的相机视野(例如,3210/3210a/3210b)中时,可以执行方法4000的一个或多个步骤。例如,在物体在相机视野(例如,3210/3210a/3210b)中之后,或者更一般地,在物体在相机视野中时,可以立即执行方法4000的一个或多个步骤。在一些情况下,当物体在或已经在相机视野中时,可以执行方法4000的一个或多个步骤。例如,当物体在相机视野(例如,3210/3210a/3210b)中时,相机(例如,3200/3200a/3200)可以生成表示该物体的图像信息,并且可以将图像信息传达给计算系统(例如,1100)。当物体仍在相机视野中时,或者甚至当物体不再在相机视野中时,计算系统可以基于该图像信息执行方法4000的一个或多个步骤。
49.在实施例中,方法4000可以以步骤4002开始或以其他方式包括步骤4002,其中计算系统1100接收表示相机(例如,3200/3200a/3200)的相机视野(例如,3210/3210a/3210b)中的物体的图像信息。图像信息可以是当物体在(或已经在)相机视野中时由相机生成的,并且可以包括例如3d图像信息和/或2d图像信息。例如,图5a描绘了由相机3200/3200a并表示图3a和3b的物体3510、3520的生成的2d图像信息(或更具体地,2d图像5600)。更具体地,2d图像5600可以从相机3200/3200a的视点描述物体3510、3520的外观。2d图像5600可以包括表示物体3510的一个或多个表面(例如,顶表面)的第一部分5610(例如,第一像素区域,也被称为像素区域),并且包括表示物体3520的一个或多个表面(例如,顶表面)的第二部分5620。在图5a的示例中,第一部分5610可以包括捕获或以其他方式表示布置(或印刷)在物体3510的顶表面面上的视觉标记或其他视觉细节的一组像素5610a。
50.图5b描绘了其中步骤4002中的图像信息包括3d图像信息5700的示例。更具体地,3d图像信息5700可以包括例如指示物体3510/3520的一个或多个表面(例如,顶表面)上的各个位置的相应深度值的深度图或点云。例如,3d图像信息5700可以包括指示物体3510的表面上的一组位置的相应深度值的第一部分5710,并且包括指示物体3520的表面上的一组位置5720的相应深度值的第二部分5720。相应深度值可以是相对于生成3d图像信息的相机(例如,3200/3200b)的,或者可以是相对于某个其他参考点的。在一些实现方案中,3d图像信息可以包括点云,该点云包括相机视野(例如,3210/3210b)中的物体的结构上的各个位置上的相应坐标。在图5b的示例中,点云可以包括描述物体3510上的该一组位置的第一组相应坐标,以及描述物体3520上的该一组位置的第二组相应坐标。坐标可以是3d坐标,诸如[x y z]坐标,并且可以具有相对于相机坐标系或某个其他坐标系的值。
[0051]
返回图4,在实施例中,方法4000可以包括步骤4004,其中计算系统1100可以标识一组一个或多个匹配的物体识别模板。在实施例中,用于物体(例如,3510)或其图像信息的匹配的物体识别模板可以是当与该图像信息比较时满足预定的模板匹配条件的物体识别模板。预定的模板匹配条件可以是指示物体识别模板中的模板信息何时充分匹配(例如,足够类似于)图像信息的条件。计算系统1100可以被配置为将图像信息与模板存储空间中的一个或多个物体识别模板中的每个物体识别模板进行比较,以确定该一个或多个物体识别模板中的哪个物体识别模板(如果有的话)满足预定的模板匹配条件。满足预定的模板匹配条件的(一个或多个)物体识别模板可以被称为(一个或多个)匹配的物体识别模板。
[0052]
例如,计算系统1100在步骤4004中可以将表示相机视野(例如,3210/3210a/3210b)中的物体(例如,3510)的图像信息(例如,5610/5710)与一组物体识别模板(诸如图
6a中所示的一组物体识别模板6122a1至6122a5)进行比较。物体识别模板6122a1至6122a5可以存储在模板存储空间6122中,该模板存储空间6122可以是图2c的模板存储空间1122的实施例。模板存储空间6122可以位于例如非暂时性计算机可读介质1120中,或者可以位于另一设备(例如,1400)中。
[0053]
在某些情况下,该组物体识别模板6122a1至6122a5可以是有纹理的模板,并且模板存储空间6122可以专用于存储有纹理的模板。有纹理的模板可以是描述在其外观中至少具有阈值的视觉细节水平的物体或物体类型的模板。模板描述的视觉细节水平可以通过例如在模板的视觉描述信息(例如,6123a1、6123a2、6123a3、6123a4或6123a5)中标识出多少个特征描述子、从其生成模板的图像中检测到的边缘的量,和/或从其生成模板的图像信息中像素值之间的对比度或方差水平来指示。图像信息可以表示特定的物体或物体类型,并且可以在物体注册操作期间已被用于生成该模板的模板信息(例如,视觉描述信息)。在一些实现方案中,如果例如从其生成模板的图像信息满足涉及特征描述子、边缘的量和/或图像信息中的方差或对比度的一个或多个预定的条件,则该模板可被视为满足或超过了阈值视觉细节水平。第16/991,510号美国申请(atty dkt.no.mj0051-us/0077-0011us1)中更详细地讨论了有纹理的模板,该美国申请的全部内容通过引用并入本文中。在一些情况下,如关于图7a更详细地讨论的,物体识别模板可以是无纹理的模板。
[0054]
在实施例中,物体识别模板6122a1至6122a5可以表示不同的物体或物体的类型(也被称为物体类型),并且可以描述与不同的物体或物体类型相关联的相应物体设计(例如,视觉设计和/或物理设计)。如上所述,物体识别模板6122a1至6122a5可能已作为物体注册过程的一部分而被生成,在该过程中,与不同物体类型相关联的不同物体位于相机视野中(例如,3210/3210a/3210b),并且物体识别模板6122a1至6122a5是基于表示不同物体或物体类型的相应图像信息组被生成的。在一些情况下,物体识别模板6122a1至6122a5可能已经以某种其他方式被生成(例如,手动生成),然后可能已被传达至模板存储空间6122以存储于其中。
[0055]
在实施例中,该组物体识别模板6122a1至6122a5可以与一组相应的检测假设相关联,或更具体地,可以表示相应的检测假设。在此示例中,检测假设可以是关于在步骤4002中接收的图像信息表示什么物体或物体类型的假设,或者更具体地,是关于图像信息表示什么物体或物体类型的估计。例如,物体识别模板6122a1可以表示具有由物体识别模板6122a1中的模板信息描述的特定物体设计(例如,视觉设计和/或物理设计)或与该特定物体设计相关联的物体类型。描述物体设计的模板信息可以包括视觉描述信息6123a1和/或结构描述信息6124a1(也被称为物体结构信息或物体结构描述),其将在下面更详细地讨论。在此示例中,物体识别模板6122a1可以表示相应的检测假设,或以其他方式与相应的检测假设相关联,该相应的检测假设估计由图像信息5600或其部分5610表示的物体(例如,3510)属于或具有由物体识别模板6122a1表示的物体类型。换句话说,与物体识别模板6122a1相关联的检测假设可以是对图像信息表示具有由物体识别模板6122a1表示或与物体识别模板6122a1相关联的物体类型的物体的假设或猜测。类似地,与物体识别模板6122a2/6122a3/6122a4/6122a5相关联的检测假设可以是对图像信息表示具有与物体识别模板6122a2/6122a3/6122a4/6122a5相关联的物体类型的物体的假设或猜测。在一些实现方案中,检测假设可以包括与特定物体识别模板相关联的模板标识符(例如,模板id)或可以由
其表示。例如,在一些实现方案中,与物体识别模板6122a1相关联的检测假设可以包括标识物体识别模板6122a1的模板id。在一些实现方案中,检测假设可以包括可以标识特定物体类型的物体类型标识符或可以由其表示。例如,物体识别模板6122a1可以与具有特定物体类型id的物体类型相关联或可以由其表示,并且与物体识别模板6122a1相关联的检测假设可以包括该物体类型id或可以由表示。
[0056]
如上所述,物体识别模板6122a1至6122a5可以与相应的检测假设相关联,这些相应的检测假设是关于在步骤4002中接收到的图像信息表示哪种物体或物体类型的估计。在实施例中,计算系统1100可以被配置为计算或以其他方式确定与物体识别模板6122a1至6122a5相关联或与相应的检测假设相关联的相应置信度值。更具体地,相应置信度值可以与将图像信息与物体识别模板6122a1至6122a5进行比较相关联,并且可以指示检测假设中的相应置信度水平,或更具体地,指示物体识别模板6122a1至6122a5匹配图像信息或其一部分的相应程度。置信度值可以在执行步骤4004之前、执行步骤4004时或作为步骤4004的一部分或在其他时间被计算。
[0057]
在图6a的示例中,物体识别模板6122a1至6122a5中的每个可以包括相应的视觉描述信息和相应的结构描述信息。如以上所讨论的,物体识别模板的视觉描述信息(例如,6123a1)可以描述或以其他方式表示与该物体识别模板相关联的物体或物体类型的外观,或更具体地,可以描述与物体或物体类型相关联的视觉设计。在一个示例中,物体识别模板中的视觉描述信息可包括一个或多个描述子(例如,特征描述子),这些描述子是基于出现在与物体识别模板相关联的物体或物体类型上的视觉标记或其他视觉细节而生成,或更具体地对该视觉标记或其他视觉细节进行编码。在实施例中,物体识别模板中的结构描述信息(例如,6124a1)可以描述与物体识别模板相关联的物体或物体类型的结构(也被称为物理结构)。例如,物体识别模板中的结构描述信息可以描述与物体类型相关联的物体大小或物体形状,或更具体地,描述属于或具有该物体类型的物体的物体大小或物体形状。在一些实现方案中,结构描述信息可以包括点云(例如,模拟的点云)或描述与物体类型相关联的物体结构的计算机辅助设计(cad)文件。
[0058]
如上所述,计算系统1100可以将在步骤4002中接收到的图像信息与一组物体识别模板进行比较。图6b是图5a中的图像信息的描绘,或更具体地,将2d图像5600(其表示物体3510)的一部分5610与该组物体识别模板6122a1至6122a5进行比较,或更具体地与该组物体识别模板中的相应视觉描述信息组6123a1至6123a5进行比较。例如,如果该组相应视觉描述信息6123a1至6123a5包括描述子,则计算系统1100可以从图像信息(例如,5610)中确定描述子。然后,计算系统1100可以将来自图像信息的描述子与该组相应视觉描述信息6123a1至6123a5中的描述子进行比较。计算系统1100可以基于诸如尺度不变特征变换(sift)算法、加速鲁棒特征(surf)算法、加速分割测试特征(fast)检测算法和/或定向的fast和旋转二进制鲁棒相互依赖基本特征(orb)算法的技术或某个其他技术来生成描述子(例如,特征描述子)。
[0059]
在实施例中,计算系统1100在步骤4002中可以确定图像信息(例如,5610)与一组物体识别模板(6122a1至6122a5)中的每一个的匹配程度。例如,如图6b所示,计算系统1100可以通过将图像信息或其部分5610与物体识别模板6122a1至6122a5进行比较来计算与物体识别模板6122a1至6122a5相关联的相应置信度值。如以上所讨论的,物体识别模板6122a1至
6122a5可以与一组相应的检测假设相关联。因此,所计算的置信度值还可以与该组相应的检测假设相关联。在一些实现方案中,置信度值可以被存储为物体检测信息的一部分。例如,图6c示出了与物体识别模板6122a1至6122a5相关联并且与对应的检测假设a1至a5相关联的一组置信度值。这些置信度值可以被存储为物体检测信息6126(其可以是物体检测信息1126的实施例)的一部分。置信度值可以指示一组相应检测假设中的相应置信度水平。更具体地,置信度值可以指示图像信息(例如,5600)或其一部分(例如,5610)与关联于一组相应的检测假设a1至a5的物体识别模板6122a1至6122a5匹配的相应程度。例如,如果图像信息包括表示相机视野(例如,3210/3210a)中物体(例如,3510)的外观的2d图像信息,则置信度值可以指示该2d图像信息与物体识别模板6122a1至6122a5中的相应视觉描述信息组6123a1至6123a5匹配的相应程度。在一些实现方案中,置信度值可以指示2d图像信息与相应视觉描述信息组6123a1至6123a5之间的相应相似度。
[0060]
在实施例中,如果图像信息包括3d图像信息,则置信度值可以指示3d图像信息与相应组的结构描述信息6124a1至6124a5匹配的相应程度。例如,置信度值可以指示3d图像信息与相应组的结构描述信息6124a1至6124a5之间的相应相似度。
[0061]
如上所述,匹配的物体识别模板可以是当与图像信息(例如,5600)或图像信息的一部分(例如,5610)进行比较时满足预定的模板匹配条件的物体识别模板。因此,以上讨论的该组一个或多个匹配的物体识别模板以及与该组一个或多个匹配的物体识别模板相关联的一组相应的一个或多个检测假设可以各自满足预定的模板匹配条件。在实施例中,预定的模板匹配条件可以涉及具有置信度值或与置信度值相关联的物体识别模板,该置信度值指示物体识别模板与在步骤4002中接收到的图像信息具有足够高的相似性水平,和/或指示物体识别模板和图像信息之间的差异水平足够低。例如,预定的模板匹配条件可以是或可以包括如下条件:分配给物体识别模板或与物体识别模板相关联的置信度值超过预定的模板匹配阈值。此预定的阈值可以是例如手动定义的值,或者由计算系统1100先前计算或以其他方式定义的值,并且可以被存储在例如非暂时性计算机可读介质1120/1400中或被存储在其他地方。
[0062]
在一个示例中,可能的置信度值可以在从最小可能的置信度值0到最大可能的置信度值1.00的范围内,并且示例中的预定的模板匹配阈值可以是例如0.90或0.80。在这样的示例中,预定的模板匹配条件可以涉及等于或超过预定的模板匹配阈值的置信度值。基于此示例模板匹配条件,计算系统1100可以标识一个或多个匹配的物体识别模板,和/或可以标识分别与该一个或多个匹配的物体识别模板相关联的一个或多个检测假设。例如,计算系统1100可以将物体识别模板6122a1至6122a3标识为匹配的物体识别模板,因为它们的相应的置信度值超过0.90或超过0.80,并且可以确定物体识别模板6122a4和6122a5与物体识别模板不匹配,因为它们的相应的置信度值低于0.90或低于0.80。因此,在图6b和6c的示例中,计算系统1100可以从多个物体识别模板(6122a1至6122a5)中标识多个匹配的物体识别模板(6122a1到6122a3)。多个匹配的物体识别模板6122a1至6122a3可以与图6c中的检测假设a1、检测假设a2和检测假设a3相关联。
[0063]
返回图4,在实施例中,方法4000可以包括步骤4006,其中计算系统1100从分别与一个或多个匹配的物体识别模板相关联的一组一个或多个检测假设中选择检测假设作为主要检测假设。如以上所讨论的,一个或多个匹配的物体识别模板可以是例如与步骤4002
的图像信息相比时满足预定的模板匹配条件的物体识别模板。如果图像信息包括2d图像信息,如图5a所示,则一个或多个匹配的物体识别模板(例如,6122a1、6122a2、6122a3)各自可以包括相应一组视觉描述信息(例如,6123a1、6123a2、6123a3),与接收到的2d图像信息进行比较时,该相应一组视觉描述信息被计算系统1100(例如,由处理电路1110)确定为满足预定的模板匹配条件。如果图像信息包括3d图像信息,如图5b所示,则一个或多个匹配的物体识别模板各自可以包括相应一组结构描述信息,与接收到的3d图像信息进行比较时,该相应一组结构描述信息被计算系统1100确定为满足预定的模板匹配条件。
[0064]
在实施例中,计算系统1100可以通过从在步骤4004中标识出的该组一个或多个匹配的物体识别模板中选择匹配的物体识别模板作为主要物体识别模板来执行步骤4006。在步骤4006中标识的主要检测假设可以是与主要物体识别模板相关联的检测假设。在图6b和6c的示例中,一个或多个匹配的物体识别模板可以包括物体识别模板6122a1至6122a3。在这样的示例中,可以从匹配的物体识别模板6122a1至6122a3中选择主要物体识别模板。因此,主要物体识别模板可以是匹配的物体识别模板,其可以包括例如视觉描述信息和/或结构描述信息,当与图像信息(例如,2d图像信息或3d图像信息)比较时,该视觉描述信息和/或结构描述信息被计算系统1100确定为匹配预定的模板匹配条件。在实施例中,计算系统1100可以从与一个或多个匹配的物体识别模板相关联的一个或多个检测假设中选择主要检测假设。例如,如果匹配的物体识别模板是与检测假设a1至a3相关联的模板6122a1至6122a3,则主要检测假设可以是从检测假设a1至a3中选择的检测假设。
[0065]
在实施例中,主要检测假设或主要物体识别模板可以是在一组一个或多个相应的置信度值中具有最高置信度值的检测假设或匹配的物体识别模板。该组一个或多个置信度值可以与该组一个或多个匹配的物体识别模板(例如,6122a1至6122a3)和/或与一个或多个对应的检测假设(例如,检测假设a1至a3)相关联。例如,图6d描绘了其中计算系统1100将检测假设a1标识为主要检测假设,和/或将物体识别模板6122a1标识为主要物体识别模板的示例。可以通过例如物体检测信息6126来描述或标识主要检测假设。在此示例中,物体识别模板6122a1可以被识别为主要物体识别模板,因为它是匹配的物体识别模板(例如,6122a1、6122a2、6122a3)的相应置信度值(例如,0.99、0.93、0.927)中具有最高置信度值(例如,0.99)的匹配的物体识别模板。在一些实现方案中,计算系统1100可以将检测假设a1标识为主要检测假设,因为检测假设a1在上述相应置信度值中具有最高置信度值。
[0066]
在实施例中,计算系统1100可以从该组一个或多个匹配物体识别模中随机选择主要物体识别模板,和/或可以从与该组一个或多个匹配的物体识别模板相关联的一组一个或多个检测假设中随机选择主要检测假设。当例如匹配的物体识别模板或其检测假设具有非常相似或基本相等的相应置信度值时,可以发生这样的随机选择。例如,如果匹配的物体识别模板6122a1至6122a3及其对应的检测假设a1至a3具有相同或非常相似的相应置信度值,则计算系统1100可以被配置为随机地选择匹配的物体识别模板6122a1至6122a3中的一个作为主要物体识别模板,和/或随机选择对应的检测假设a1至a3中的一个作为主要检测假设。在一些实现方案中,如果计算系统1100正在从该组一个或多个匹配的物体识别模板中随机选择主要物体识别模板,而不是使用置信度值来执行这样的选择,则计算系统1100可以省略置信度值的计算。
[0067]
返回图4,在实施例中,方法4000可以包括步骤4008,其中计算系统1100可以生成
主要候选区域,该主要候选区域可以是基于主要检测假设或更具体地基于与主要检测假设相关的匹配的物体识别模板的候
[0068]
选区域。这样的匹配的物体识别模板可以是以上讨论的主要物体识别模板。作为示例,图6e示出了描述可以基于主要物体识别模板而生成的主要候选区域6125a1的物体检测信息6126,在此示例中主要物体识别模板是物体识别模板6122a1。在实施例中,候选区域可以是对物体(例如,3510)的物体边界位置的估计,或者是对相机视野(例如,3210)中的哪些位置被物体占据的估计。物体边界位置或物体占据的位置可以对应于或表示物体占据的空间区域。在此实施例中,估计的物体边界位置可以是指例如定义物体的物理结构的一个或多个边界的估计的位置。例如,由步骤4002的接收到的图像信息表示的物体(例如,3510)的候选区域可以定义相机视野(例如,3210)中由物体占据的估计的物理区域。在一些实现方案中,候选区域可以通过定义或标识围绕物理区域的角或边缘、通过定义或标识物理区域的大小(例如,长度值、宽度值和/或高度值)和/或通过定义或标识物理区域的形状,来定义物理区域。在这样的示例中,可以通过候选区域的一个或多个边缘或拐角来估计物体边界位置。
[0069]
在一些情况下,可以进一步基于步骤4002的图像信息来生成主要候选区域(例如,6125a1)。例如,计算系统1100可以使用图像信息4002来确定由图像信息表示的物体(例如,3510)的特征的位置,诸如物体角或物体边缘的位置。在此示例中,如果主要候选区域(例如,6125a1)具有角或边缘,则计算系统1100可以确定主要候选区域的角或边缘的位置等于或基于该物体角或物体边缘的位置。
[0070]
如上所述,计算系统1100可以基于主要物体识别模板来生成主要候选区域,该主要物体识别模板可以是与主要检测假设相关联的匹配的物体识别模板。更一般地,可以基于与候选区域相关联的物体识别模板来生成候选区域。例如,物体识别模板可以包括标识与物体类型相关联的物体大小和/或物体形状的结构描述信息,并且候选区域可以基于物体识别模板中的结构描述信息来生成。作为示例,计算系统1100可以基于物体识别模板6122a1的结构描述信息6124a1来生成主要检测区域6125a1。在某些情况下,计算系统1100可以将候选区域(例如,6125a1)确定为或生成为具有与由对应的物体识别模板(例如,6122a1)中的结构描述信息(例如,6124a1)描述的物体大小和/或物体形状相同或基本相同的大小和/或形状。
[0071]
返回图4,在实施例中,方法4000可以包括步骤4010,其中计算系统1100确定以下至少一项:(i)除主要匹配的物体识别模板(例如,6122a1,其是与主要检测假设a1相关联的匹配的物体识别模板)外,该组一个或多个匹配的物体识别模板是否还具有一个或多个剩余的匹配的物体识别模板(例如,6122a2、6122a3)的子集,或(ii)图像信息是否具有表示不匹配的区域的一部分。
[0072]
更具体地,本公开的一个方面涉及通过不仅标识对于规划与物体进行的机器人交互可能有用的主要物体识别模板或主要检测假设,而且还标识对于规划机器人交互也可能有用的其他物体识别模板或检测假设,从而提高物体检测的鲁棒性。例如,一些情况可能涉及与表示物体的图像信息匹配的多于一个的物体识别模板(例如,当与图像信息比较时满足预定的模板匹配条件)。换句话说,本公开的一个方面涉及一种情况,其中,除了主要物体识别模板(例如,6122a1,其是关于图像信息5600/5610的匹配的物体识别模板)之外,还存
在一个或多个附加匹配的物体识别模板(例如,6122a2、6122a3),当与图像信息进行比较时,该一个或多个附加匹配的物体识别模板也满足预定的模板匹配条件。例如,该一个或多个附加的物体识别模板可以与全部在预定的模板匹配阈值之上的相应置信度值相关联。在某些情况下,如果成像噪声或其他误差源造成了主要检测假设、主要物体识别模板或主要候选区域在表示物体或用于规划机器人交互时不完全准确的风险,则该一个或多个附加检测假设或一个或多个附加物体识别模板可以用来补偿该风险。例如,它们可以被用于生成安全空间列表,其将在下面更详细讨论,该安全空间列表可以提供在规划机器人交互时可以考虑的附加信息。通过在执行物体检测和/或规划机器人交互时考虑此附加信息,这些过程可能变得更加鲁棒,并且更不容易受到各个误差源的影响。
[0073]
在一个示例中,计算系统1100可以通过确定以上讨论的该组一个或多个匹配的物体识别模板是否包括多个匹配的物体识别模板来执行步骤4010。这样的一组多个匹配的物体识别模板可以包括主要物体识别模板(6122a1),并且还包括一个或多个剩余的匹配的物体识别模板(例如,6122a2、6122a3)的子集。如上所述,一个或多个剩余的匹配的物体识别模板的子集可以是当与图像信息(例如,5600/5610)进行比较时也满足预定的模板匹配条件的一个或多个物体识别模板。例如,如果图像信息包括2d图像信息,则该子集中的至少一个匹配的物体识别模板(例如,6122a2、6122a3)可以包括当与图像信息比较时满足预定的模板匹配条件的相应一组视觉描述信息(例如,6123a2、6123a3),其可以指示视觉描述信息(例如,6123a2、6123a3)与图像信息足够相似。换句话说,一个或多个匹配的物体识别模板的该子集中的至少一个匹配的物体识别模板(例如,6122a2、6122a3)可以通过匹配由图像信息(例如,5600/5610)表示的物体的视觉外观而满足预定的匹配条件。计算系统1100可以被配置为基于该至少一个物体识别模板来生成下面讨论的安全空间列表。还如上所述,在一些情况下,主要物体识别模板(6122a1)也可以通过匹配物体的视觉外观而满足预定的模板匹配条件。
[0074]
在一些情况下,一个或多个匹配的物体识别模板可以通过匹配由图像信息(例如,5700/5710)表示的物体的结构而满足预定的模板匹配条件。这些匹配的物体识别模板可以包括主要物体识别模板,和/或可以包括另一个匹配的物体识别模板。例如,如果在步骤4002中接收的图像信息包括2d图像5600和3d图像信息5700的组合,则物体识别模板6122a1可以具有当与2d图像5600比较时满足预定的模板匹配条件的视觉描述信息6123a1,并且还可以具有当与3d图像信息5700比较时也满足预定的模板匹配条件的结构描述信息6124a1。作为另一个示例,下面更详细讨论的图7a描绘了具有结构描述信息7124b1的物体识别模板7122b1,当与3d图像信息5700(例如,点云)进行比较时,结构描述信息7124b1满足预定的模板匹配条件。计算系统1100可以被配置为基于该物体识别模板来生成下面讨论的安全空间列表。
[0075]
在图6a-6c的示例中,主要物体识别模板6122a1可以是与检测假设a1相关联的匹配的物体识别模板,而剩余的匹配的物体识别模板6122a2和6122a3的子集可以分别与检测假设a2和a3相关联。检测假设a1可以是用于规划与图像信息5600/5610表示的物体3510进行的机器人交互的主要检测假设,而检测假设a2和a3可以是也用于规划该机器人交互的次级(secondary)检测假设。
[0076]
还如上所述,本公开的一个方面涉及其中主要物体识别模板可以匹配或以其他方
式对应于图像信息的第一部分,但是图像信息的第二部分不与来自一个或多个模板存储空间(例如,1122)的可用的任何现有物体识别模板充分匹配的情况。换句话说,由图像信息捕获或以其他方式表示的第一物理区域可以被例如主要物体识别模板来匹配或由其解释,而由图像信息表示的第二物理区域不与一个或多个模板存储空间中的任何现有物体识别模充分匹配。第一物理区域可以对应于例如以上讨论的主要候选区域,而第二物理区域可以被称为不匹配的区域或无法解释的区域。更具体地,不匹配的区域或无法解释的区域可以是由图像信息的、当与现有物体识别模板比较时不满足预定的模板匹配条件的一部分所表示的区域。因此,在一些情况下,在步骤4010中计算系统可以确定图像信息是否具有表示不匹配的区域的一部分(例如,第二部分,也被称为不匹配的图像部分)。在一些实现方案中,计算系统1100可以具体地确定是否存在与主要候选区域相邻的不匹配的区域。下面关于例如图11a-11e和图12a-12h更详细地讨论涉及不匹配的区域的情况。
[0077]
返回图4,在实施例中,方法4000可以包括步骤4012,其中计算系统1100生成安全空间列表。在实施例中,可以响应于确定该组一个或多个匹配的物体识别模板确实具有除主要物体识别模板之外的一个或多个剩余的匹配的物体识别模板的子集,和/或响应于图像信息具有表示不匹配的区域的图像部分,而生成安全空间列表。安全空间列表可以是一个或多个候选区域的列表、一个或多个检测假设的列表和/或一个或多个不匹配的区域的列表。
[0078]
在一些实现方案中,如果安全空间列表是一个或多个检测假设的列表,则该一个或多个检测假设可以与以上讨论的一个或多个剩余的匹配的物体识别模板的子集相关联。例如,图6a-6c描绘了一个示例,其中存在一组多个匹配的物体识别模板,包括主要物体识别模板6122a1和剩余的匹配的物体识别模板6122a2、6122a3的子集。如以上关于图6d所讨论的,计算系统可以将与主要物体识别模板6122a1相关联的主要检测假设a1标识或描述为物体检测信息6126的一部分。在此示例中,计算系统1100还可以在物体检测信息6126中包括安全空间列表,该安全空间列表标识与剩余的匹配的物体识别模板6122a2、6122a3的子集相关联的一个或多个次级检测假设。更具体地,次级检测假设可以包括与匹配的物体识别模板6122a2和匹配的物体识别模板6122a3相关联的检测假设a2和检测假设a3。因此,物体检测信息6126可以标识或描述一组多个检测假设,其可以包括与匹配的物体识别模板中的一个(例如,6122a1)相关联的主要检测假设(例如,a1),并且包括与一个或多个剩余的匹配的物体识别模板(例如,6122a2、6122a3)的子集相关联的一个或多个剩余检测假设(例如,a2和a3)的子集。在一些情况下,剩余检测假设a2和a3的子集可以被视为次级检测假设,因为例如它们与小于与主要检测假设a1相关联的置信度值(例如,0.99)的置信度值(例如,0.93和0.927)相关联。更一般地,未被选择为主要检测假设的检测假设可以被视为次级检测假设。
[0079]
在实施例中,计算系统1100可以被配置为基于与特定检测假设相关联的置信度值是否与关联于主要检测假设的置信度值足够相似来确定安全空间列表是否将包括该检测假设。特定检测假设可以是与以上讨论的一个或多个剩余的匹配的物体识别模板(例如,6122a2、6122a3)的子集相关联的一个或多个剩余检测假设(例如,a2、a3)的子集中的一个。作为示例,对于一个或多个剩余检测假设(例如,a2、a3)的子集中的每个检测假设,计算系统1100可以确定与该检测假设相关联的相应置信度值(例如,0.93、0.927)相对于与主要检测假设相关联的置信度值(例如,0.99)是否在预定的置信度相似性阈值之内。预定的置信度
相似性阈值可以是例如存储在非暂时性计算机可读介质1120中或其他地方的值。作为示例,预定的置信度相似性阈值可以是例如0.1、0.2或某个其他值。如果计算系统1100确定与子集中的特定检测假设(例如,a2、a3)相关联的相应置信度值在预定的置信度相似性阈值之内,则计算系统1100可以将该检测假设添加到安全空间列表中,更一般地,决定将该检测假设包括在安全空间列表中,使得安全空间列表基于该检测假设而生成。在一些情况下,将检测假设(例如,a2,a3)添加到安全空间列表中可以导致安全空间列表还包括与该检测假设相关联的候选区域(例如,图6e中的6125a2、6125a3)。这样的候选区域可以是由物体检测信息6126描述的次级候选区域以及主要候选区域(例如,6125a1),如下面更详细地讨论的。
[0080]
在实施例中,计算系统1100可以被配置为基于与特定检测假设相关联的置信度值是否等于或大于预定的模板匹配阈值来确定安全空间列表是否将包括该特定检测假设。这样的条件可以表示检测假设与匹配的物体识别模板相关联,并且可以导致安全空间列表排除与不满足预定的模板匹配条件的物体识别模板相关联的任何检测假设。在一些实现方案中,安全空间列表中的每个检测假设可以与候选区域相关联,如下面更详细地讨论的。
[0081]
在实施例中,物体检测信息6126可以被计算系统1100或另一计算系统用来规划机器人(例如,3300)和由接收到的图像信息(例如,5600/5700)表示的物体(例如,3510)之间的机器人交互。通过将安全空间列表包括在物体检测信息中,计算系统1100不仅可以访问关于图像信息表示什么物体或物体类型的主要检测假设(例如,a1),还可以访问关于图像信息表示什么物体或物体类型的一个或多个次级检测假设(例如,a2、a3)。安全空间列表因此可以使得附加的信息可被用于规划机器人交互,这可以提高所规划的机器人交互的鲁棒性,如上所讨论的。
[0082]
在实施例中,还如上所述,安全空间列表可以是一个或多个候选区域的列表,或更具体地,是一个或多个次级候选区域的列表。更具体地,计算系统1100可以标识与主要物体识别模板(例如,6122a1)和/或与主要检测假设(例如,a1)相关联的主要候选区域(例如,6125a1),如上面关于步骤4008所讨论的。在步骤4012的实施例中,计算系统1100还可以生成安全空间列表,该安全空间列表包括一个或多个附加候选区域,诸如图6e中的候选区域6125a2和6125a3。因此,在这样的实施例中的物体检测信息6126可以基于多个匹配的物体识别模板来描述多个候选区域。多个候选区域(例如,6125a1至6125a3)可以包括基于主要物体识别模板生成的主要候选区域(例如,6125a1),并且包括与一个或多个剩余的匹配的物体识别模板(例如,6122a2和6122a3)的子集相关联并基于该子集生成的一个或多个附加候选区域(例如,6125a2和6125a3)。在实施例中,作为一个或多个附加候选区域的一部分的每个候选区域可以与检测假设相关联,该检测假设具有相应的置信度值,该置信值相对于主要检测假设的置信度值位于预定的置信度相似性阈值之内,如以上所讨论的。在实施例中,一个或多个附加候选区域中的每个候选区域可以与相应的检测假设相关联,该相应的检测假设具有大于或等于预定的模板匹配阈值的置信度值,也如以上所讨论的。
[0083]
在一些情况下,一个或多个附加候选区域(例如,6125a2和6125a3))可以被视为是一个或多个次级候选区域,因为它们可以分别与一个或多个次级检测假设(例如,a2和a3)相关联。与关于主要候选区域的讨论类似,次级候选区域(例如,6125a2和6125a3)中的每一个也可以估计由接收到的图像信息(例如,5600/5610)表示的物体(例如,3510)的物体边界,和/或估计哪些位置被该物体占据。例如,附加候选区域(例如,6125a2和6125a3)中的每一个
可以定义相机视野(例如,3210)中由物体(例如,3510)占据的相应估计物理区域。在一些实现方案中,计算系统1100可确定一个或多个附加候选区域(例如,6125a2和6125a3)中的每一个具有大小和/或形状,该大小或形状与由相关联的匹配的物体识别模板(例如,6122a2和6122a3)中的相应结构描述信息(例如,6124a2和6124a3)描述的物体大小和/或物体形状是相同或基本相同的。
[0084]
在一些情况下,相对于安全空间列表中的一个或多个次级候选区域(例如,6125a2和6125a3),主要候选区域(例如,6125a1)可以具有不同的大小。这样的情况可能是由于主要候选区域(例如,6125a1)所关联的主要物体识别模板(例如,6122a1)描述了与安全空间列表中的次级候选区域(例如,6125a2和6125a3)所关联的物体识别模板描述的物体大小不同的物体大小。例如,与主要检测假设a1相关联的主要物体识别模板可以具有指示第一物体大小(例如,物体长度和物体宽度的第一组合)的结构描述信息(例如,6124a1),而与次级候选区域中的一个相关联的物体识别模板(例如,6122a2)可以具有指示与第一物体大小不同的第二物体大小的结构描述信息(例如,6124a2)。
[0085]
在实施例中,计算系统1100可以被配置为基于次级候选区域和主要候选区域之间的重叠量来确定安全空间列表是否将包括该次级候选区域。例如,计算系统1100可以确定是否将候选区域6125a2添加到安全空间列表中以及是否将候选区域6125a3添加到安全空间列表中。如上所述,候选区域6125a2、6125a3可以与以上讨论的一个或多个剩余的匹配的物体识别模板6122a2、6122a3的子集相关联。在此示例中,计算系统1100可以被配置为针对候选区域6125a2、6125a3中的每一个来确定该候选区域与主要候选区域6125a1之间的相应重叠量。例如,图6f示出了计算系统1100确定重叠区域6127,该重叠区域6127是候选区域6125a2与主要候选区域6125a1的相交。在此示例中,计算系统可以将候选区域6125a2与主要候选区域6125a1之间的重叠量确定为等于或基于重叠区域6127的体量。计算系统1100可以确定两个区域6125a1、6125a2之间的重叠量是否超过预定的重叠阈值,并且如果该重叠量超过预定的重叠阈值,则将候选区域6125a2包括在安全空间列表中(使得其成为以上讨论的一个或多个附加候选区域的一部分)。
[0086]
在实施例中,计算系统1100可以基于与特定的次级检测假设或次级候选区域相关联的物体识别模板是否类似于与主要检测假设相关联的主要物体识别模板来确定安全空间列表是将包括该特定的次级检测假设或次级候选区域。在一些情况下,相似性可以指两个物体识别模板具有相似的相应置信度值(例如,具有等于或小于预定的置信度相似性阈值的差)。在一些情况下,相似性可以指两个物体识别模板具有相似的模板信息,诸如相似的视觉描述信息或相似的结构描述信息。
[0087]
更具体地,如以上所讨论的,计算系统1100可以被配置为将图像信息与多个物体识别模板进行比较,该多个物体识别模板中的一个可以成为主要物体识别模板(例如,6122a1)。计算系统1100可以被配置为通过将与主要物体识别模板相关联的置信度值与至少一个其他物体识别模板所关联的置信度值进行比较,来确定主要物体识别模板(例如,6122a1)是否与该至少一个其他物体识别模板(例如,6122a2)相似。在一些情况下,作为将物体识别模板(例如,6122a2)与图像信息进行比较的替代或者附加,计算系统1100可被配置为直接将至少一个其他物体识别模板(例如,6122a2)与主要物体识别模板(6122a1)进行比较。在一些情况下,可以执行物体识别模板的这种直接比较,是因为相机(例如,3300)环境
中的光照条件可能影响所生成的图像信息,并可能限制将图像信息与物体识别模板中的一个或多个(例如,6122a2)进行准确比较的能力。例如,在这样的情况下将特定物体识别模板(例如,6122a2)与图像信息进行比较可能产生低置信度值。然而,在这样的情况下,计算系统1100仍可以基于物体识别模板和主要物体识别模板之间的比较,决定将物体识别模板(例如,6122a2)或其所关联的检测假设或候选区域添加到安全空间列表中。
[0088]
作为比较物体识别模板的示例,计算系统1100可以被配置为针对模板存储空间6122中存储的多个物体识别模板6122a1至6122a5,确定该多个物体识别模板6122a1至6122a5是否至少具有当与主要物体识别模板6122a1比较时满足预定的模板相似性条件的至少一个物体识别模板(主要物体识别模板6122a1本身除外)。如上所述,主要物体识别模板可以是与主要检测假设a1相关联的匹配的物体识别模板,并且在该示例中可以被称为第一物体识别模板。换句话说,计算系统1100可以确定除了主要物体识别模板6122a1或第一物体识别模板之外,该多个物体识别模板6122a1至6122a5是否具有当与主要物体识别模板6122a1比较时满足预定的模板相似性条件的至少一个物体识别模板。如果存在至少一个这样的物体识别模板,则计算系统1100可以将该至少一个物体识别模板添加到安全空间列表,使得安全空间列表基于该至少一个物体识别模板而生成。如上所述,预定的模板相似性条件可以涉及具有相似的视觉描述信息(例如,相似的描述子)和/或相似的结构描述信息的两个物体识别模板。
[0089]
在实施例中,图4的方法4000可以包括一个步骤,其中计算系统1100基于以上讨论的物体检测信息(例如,6126)或更具体地基于物体检测信息中的主要候选区域(例如,6125a1)并基于物体检测信息中的安全空间列表来执行运动规划。更具体地,可以基于主要候选区域和安全空间列表中的一个或多个次级候选区域(例如,6125a2、6125a3)(如果有的话)来执行运动规划。运动规划可以被用于机器人(例如,3300)和由接收到的图像信息表示的物体(例如,3510)之间的机器人交互。例如,运动规划可以涉及确定机器人的末端执行器装置(例如,3330)的运动以引起末端执行器装置抓持、拾取或以其他方式接合物体,和/或可以涉及确定末端执行器装置一旦已经与物体接合后要遵循的轨迹,以便将物体移动到目的地位置。
[0090]
在实施例中,计算系统1100可以通过确定包围与主要物体识别模板(例如,6122a1)相关联的主要候选区域(例如,6125a1)并包围一个或多个附加区域的边界区域(例如,边界体量或边界框,诸如abb边界框)来执行运动规划。在一些情况下,一个或多个附加区域可以是与以上讨论的一个或多个次级检测假设相关联的或更具体地与以上讨论的一个或多个剩余的匹配的物体识别模板(例如,6122a2、6122a3)子集相关联的一个或多个次级候选区域(例如,6125a2、6125a3)。例如,如图6h所示,图6d示出了包围主要候选区域6125a1的边界区域6130。如图6i和6j所示,边界区域6130还可以包围在此示例中可以作为次级候选区域的附加候选区域6125a2、6125a3。在一些情况下,边界区域可以包围不匹配的区域,这将在下面更详细地讨论。
[0091]
在实施例中,计算系统1100或另一计算系统可以使用边界区域来确定末端执行器装置(例如,3300)在其已经拾取由接收到的图像信息表示的物体(例如,3510)之后要遵循的轨迹,以便将物体移动到目的地位置。例如,如果末端执行器装置(例如,3330)遵循该轨迹,则计算系统1100可以使用边界区域(例如,6130)来确定碰撞风险。碰撞可能发生在机器
人环境中的物体(例如,3510)和其他物体的结构(例如,电线)或机器人所处的房间或建筑物的结构(例如,墙壁或横梁)之间。更具体地,边界区域可以表示当物体(例如,3510)被末端执行器装置(例如,3330)移动时围绕物体的区域。在一些实现方案中,计算系统1100可以确定在边界区域(例如,6130)遵循或基本遵循末端执行器装置(例如,3330)的轨迹的情况下边界区域(例如,6130)是否将与机器人环境中的物体、房间或建筑物的结构相交。计算系统1100可以调整该轨迹,以避免边界区域与机器人的环境中的这样的结构相交的情况。因为边界区域(例如,6130)不仅基于主要物体识别模板或主要检测假设,而且还可能基于包括例如一个或多个次级检测假设的安全空间列表,所以使用该边界区域来避免碰撞会使得碰撞避免更加鲁棒。例如,边界区域可以考虑物体(例如,3310)的大小和形状,并且还包括物体周围的间隙量,以便增加针对碰撞避免的误差余量。
[0092]
在实施例中,如以上所讨论的,计算系统1100可以通过使用边界区域(例如,6130)来确定末端执行器装置(例如,3330)的轨迹来执行运动规划,以便降低碰撞风险,并且还可以使用主要候选区域(例如,6125a1)来确定机器人抓持运动。机器人抓持运动可包括例如末端执行器装置(例如,3330)的一个或多个组件的运动,以抓持、拾取或以其他方式接合物体(例如,3510)。例如,如果物体(例如,3510)是容器,则主要候选区域(例如,6125a1)可以提供对容器的外部形状的估计。计算系统1100可以被配置为基于容器的外部形状来确定容器上要由末端执行器装置抓持的一个或多个位置,和/或末端执行器装置要如何移动以便拾取容器。
[0093]
如以上所讨论的,匹配的物体识别模板可以具有与2d图像信息匹配的视觉描述信息,和/或可以具有与3d图像信息匹配的结构描述信息。例如,图7a描绘了一个示例,其中物体识别模板7122a1具有一组视觉描述信息7123a1,该视觉描述信息7123a1与图5a的2d图像信息或更具体地与2d图像5600或其一部分5610相匹配,并且其中物体识别模板7122b1具有一组结构描述信息7124b1,该结构描述信息7124b1与图5b的3d图像信息5700(例如,点云)或更具体地与其一部分5710相匹配。在此示例中,物体识别模板7122a1可以是存储在第一模板存储空间7122a中的一组物体识别模板7122a1、7122a2的一部分,而物体识别模板7122b1可以是存储在第二模板存储空间7122b中的一组物体识别模板7122b1、7122b2的一部分。图7a中的物体识别模板可以各自具有相应一组视觉描述信息(例如,7123a1、7123a2、7123b1、7123b2),以及相应一组结构描述信息(例如,7124a1、7124a2、7124b1、7124b2)。在实施例中,模板存储空间7122a可以专用于存储有纹理的模板,而模板存储空间7122b可以专用于存储无纹理的模板。因此,在此示例中,物体识别模板7122a1、7122a2可以是有纹理的模板,并且物体识别模板7122b1、7122b2可以是无纹理的模板。无纹理的模板可以是描述在其外观上不具有阈值视觉细节水平的物体或物体类型的模板。第16/991,510号美国申请(atty dkt.no.mj0051-us/0077-0011us1)中更详细地讨论了无纹理的模板,而第16/991,466号美国申请(atty dkt.no.mj0054-us/0077-0012us1)中更详细地讨论了模板存储空间,这些美国申请的全部内容通过引用并入本文中。
[0094]
如以上所讨论的,图7a描绘了物体识别模板7122a1和物体识别模板7122b1可以形成一组匹配的物体识别模板的情况。更具体地,物体识别模板7122a1可以具有当与2d图像5600/5610比较时满足预定的模板匹配条件的视觉描述信息7123a1。在一个示例中,物体识别模板7122a1可以是主要物体识别模板,并且可以与主要检测假设7a1相关联,这可以标识
在图7b中的物体检测信息7126(其可以是物体检测信息1126的实施例)中。在此示例中,虽然物体识别模板7122a1是一个匹配的物体识别模板,但是物体识别模板7122b1可以形成剩余的匹配的物体识别模板的子集。更具体地,物体识别模板7122b1可以包括当与3d图像信息5700/5710(例如,点云)相比时满足预定的模板匹配条件的结构描述信息7124b1。在此示例中,如图7b所示,物体识别模板7122b1可以被用于生成要被包括在由物体检测信息7126描述的安全空间列表中的次级检测假设7b1。在实施例中,如图7c所示,物体检测信息7126可以包括基于主要物体识别模板7122a1或更具体地基于结构描述信息7124a1生成的主要候选区域7125a1。主要候选区域7125a1还可以与主要检测假设相关联。在此实施例中,物体检测信息7126可以包括安全空间列表,该安全空间列表描述了基于物体识别模板7122b1或更具体地基于结构描述信息7124b1而生成的和/或与次级检测假设相关联的次级候选区域7125b1。
[0095]
在实施例中,计算系统1100可以基于次级候选区域7125b1和主要候选区域7125a1之间的重叠量来确定是否将次级候选区域7125b1包括在安全空间列表中。例如,图7d示出了重叠区域7127,该重叠区域7127包围位于次级候选区域7125b1和主要候选区域7125a1二者中的空间。重叠量可以由例如重叠区域7127的体量表示或者由重叠区域7127的体量与主要候选区域7125a1的体量之间的比率表示。如果重叠量等于或大于预定的重叠阈值,则计算系统1100可以将次级候选区域7125b1添加到安全空间列表,否则可以从安全空间列表中排除次级候选区域7125b1。
[0096]
在实施例中,如图7e-7g所示,计算系统1100可以通过确定边界区域7130来执行用于以上示例的运动规划,该边界区域7130包围主要候选区域7125a1并且包围安全空间列表中的次级候选区域7125b1。如上所述,边界区域7130可以被用于生成用于执行机器人交互的轨迹。
[0097]
在实施例中,计算系统1100可以被配置为生成多个候选区域,该多个候选区域表示将图像信息与物体识别模板对准的不同方式,或更具体地,将物体识别模板中的视觉描述信息与图像信息中的视觉图案对准的不同方式。例如,图8a描绘了其中具有布置在物体8510的表面上的视觉图案8512的物体8510(例如,盒子)处于相机视野3210a/3210b中的情况。在此示例中,计算系统1100可以接收包括在图8b中描绘的2d图像8600的图像信息。2d图像8600可以由相机(例如,3210a)生成,并且可以包括表示物体8510的一部分(例如,像素区域)8610。计算系统1100可以被配置为将2d图像8600/8610与存储在图8c中所示的模板存储空间8122(其可以是模板存储空间1122的实施例)中的物体识别模板8122a1进行比较。物体识别模板8122a1可以是匹配的物体识别模板,因为当与2d图像8600比较时,物体识别模板8122a1的视觉描述信息8123a1可以满足预定的模板匹配条件。
[0098]
在实施例中,在物体识别模板8122a1和2d图像8600/8610之间的比较期间,计算系统1100可以确定将模板的视觉描述信息8123a1与由2d图像8600/8610表示的视觉图案8210对准的多种方式。例如,图8d-8f示出了由计算系统1100确定的用于至少部分地将视觉描述信息8123a1和视觉图案8210对准的三种不同方式。在一个示例中,计算系统1100可以生成主要候选区域8125a1,如图8g所示,其表示将2d图像8600/8610中的视觉图案8210与物体识别模板8122a1中的视觉描述信息8123a1对准的第一方式。例如,此第一对准方式可以是图8e所示的对准,其中由视觉描述信息8123a1描述的角表示相机坐标系或某个其他坐标系中的
[x
2 y2]的坐标。计算系统1100可以基于例如坐标[x
2 y2]和结构描述信息8124a1来生成主要候选区域8125a1。例如,计算系统1100可以确定主要候选区域8125a1在坐标[x
2 y2]处具有一个角,并且具有与结构描述信息8124a1相同或基于结构描述信息8124a1的大小和/或形状。此第一对准方式可以表示主要检测假设或与主要检测假设相关联。
[0099]
在以上示例中,计算系统1100可以生成一个或多个次级候选区域,诸如候选区域8125a2和8125a3,并且将这些候选区域包括在安全空间列表中。第二对准方式可以是图8d所示的对准,其中由模板的视觉描述信息8123a1描述的角表示坐标[x
1 y1],同时第二对准方式可以是图8f所示的对准,其中角表示坐标[x
3 y3]。
[0100]
在实施例中,不同的候选区域可以表示由一组结构描述信息描述的物体形状的不同方向。作为示例,图9a示出了相机视野3210a/3210b中的物体9510a和9510b(例如,盒子)。两个物体9510a和9510b可以由边界8511分开,该边界可以由例如彼此相邻的9510a、9510b的两个相应边缘或表面形成。在此示例中,相机3200a可以生成表示物体9510a和9510b的2d图像9600(如图9b所示),而相机3200b可以生成表示物体9510a和9510b的点云9710或其他3d图像信息(如图9d和9e所示)。计算系统1100可以被配置为将2d图像9600和点云9710分别与图9c中的物体识别模板9122b1(例如,无纹理的模板)(或更具体地与一组视觉描述信息9123b1)以及一组结构描述信息9124b1进行比较。
[0101]
在此示例中,计算系统1100可以确定结构描述信息9124a1定义具有第一方向的候选区域,如图9d所示,并且可以定义具有第二方向的另一候选区域,如图9e所示。第一方向(例如,垂直方向)可以例如垂直于第二方向(例如,水平方向)。两个方向都可以允许结构描述信息9124a1与点云9710的至少一部分匹配。尽管图9e中的方向可能使对应的候选区域延伸越过物体9510a和9510b之间的边界9511,但是图9e的示例可以在计算系统1100不能以高置信度来检测边界9511的情况下发生。例如,边界9511可能在2d图像9600中至少部分地被遮盖(例如,由于照明条件)。例如,图9b描绘了仅部分地表示边界9511的图像像素9611。在此示例中,计算系统1100可能不能以高置信度来确定图像像素9611是否表示两个物体之间的边界,或者图像像素是否是图像伪影。此外,在一些情况下,这样的边界可能在点云5710中没有被表示。因此,计算系统1100可以确定针对候选区域在图9e中示出的方向可能具有足够高的置信度值,使得图9e的候选区域可能有助于规划与相机视野3210a/3210b中的一个或多个物体的交互。因此,如图9f所示,计算系统1100可以生成表示图9d中的方向的主要候选区域9125b1,并且生成表示图9e中的方向的次级候选区域9125b2,其中次级候选区域9125b2可以被包括在安全空间列表中。在此情况下,模板9122b1的结构描述信息9124b1可以描述物体的形状,使得主要候选区域9125b1可以对应于物体形状的一个方向,而次级候选区域9125b2可以对应于物体形状的另一方向。
[0102]
在实施例中,计算系统1100可以被配置为在图像信息内搜索由出现在图像信息中或以其他方式由图像信息表示的一组边缘或拐角所界定的第一区域,其中第一区域可以对应于第一物体识别模板或第一候选区域。计算系统1100还可以扩展其搜索以标识由图像信息表示的其他组边缘或角所界定的附加区域,其中这些附加区域可以对应于其他物体识别模板或候选区域。在一些情况下,计算系统1100可以响应于确定图像信息对应于无纹理的图像而执行这样的搜索。作为搜索图像信息内的区域的示例,图10a描绘了基于相机视野3320a/3320b中的一个或多个物体10510生成图像信息的示例。一个或多个物体10510可以
是例如单个物体(诸如具有布置在盒子的外表面上的多条胶带的单个盒子),或者可以是多个物体(诸如彼此相邻的多个盒子)。在此示例中,相机3200a和/或相机3200b可以被配置为生成用于表示一个或多个物体10510的图像信息。如图10b和图10c所描绘的,图像信息可以包括2d图像信息(诸如2d图像10600,2d图像10600至少具有图像部分10610,图像部分10610用于表示一个或多个物体10510)和/或3d图像信息10700(例如,点云)(3d图像信息10700至少具有一部分10710,部分10710表示一个或多个物体10510)。当计算系统1100接收图像信息时,它可以将图像信息与一组物体识别模板10122b1至10122b4进行比较,如图10d所示。
[0103]
更具体地,为了便于比较,计算系统1100可以标识第一图像区域(诸如图10e中的图像区域10611),并且确定物体识别模板10122b1至10122b4中的任何一个是否与第一图像区域匹配(例如,满足预定的模板匹配条件)。第一图像区域(例如,10611)可以是例如2d图像10600中的第一像素区域,或者是点云或其他3d图像信息中的第一坐标或位置的区域。在一些实现方案中,计算系统1100可以通过基于图像信息标识或检测第一组图像角(诸如10511、10512、10513、10514)和/或第一组图像边缘(诸如10521、10522、10523、10524)来标识第一图像区域。图像角中的每一个可以是例如表示物体角的2d图像10600的像素或像素簇,或者是表示物体角的点云的坐标。在一些情况下,图像角中的至少一个(诸如图像角10511)可以对应于或表示一个或多个物体10510的凸角。在一些实现方案中,如果图像边缘被计算系统标识,则图像边缘中的至少一些可以从该至少一个图像角延伸。计算系统1100可以将第一图像区域10611确定为由第一组图像角10511-10514和/或由第一组图像边缘10521-10524界定的、位于其间或由其以其他方式定义的图像区域。在此示例中,当与第一图像区域10611或者更具体地与对应于第一图像区域10611的图像信息的一部分比较时,计算系统1100可以确定是否有任何物体识别模板(例如,10122b1)满足预定的模板匹配条件。在一些情况下,计算系统可以使用匹配的物体识别模板(例如,10122b1)来生成主要检测假设和/或主要候选区域。
[0104]
如上所述,计算系统1100可以被配置为例如通过确定第一图像区域(例如,10611)的图像边缘是否可以被延伸到第一图像区域外部的图像信息中的其他图像角,来扩展其对图像信息内的图像区域的搜索。例如,图10f-10h描绘了计算系统标识图像信息(例如,10600)中的第二图像区域10612、第三图像区域10613和第四图像区域10614。在图10f的示例中,计算系统1100可以通过标识第二组图像角(10511、10513、10515、10516)和/或第二组图像边缘(10521、10522、10524、10525)来标识第二图像区域10612。第二组图像角可以包括第一组图像角中的至少一个图像角,诸如图像角10511(其可以表示凸角),并且可以包括第一图像区域10611外部的至少一个图像角(例如,10515、10516)。计算系统1100可以将第二图像区域10612确定为位于第二组图像边缘和/或第二组图像角之间或以其他方式由第二组图像边缘和/或第二组图像角定义的区域。在一些情况下,计算系统1100可以通过延伸第一图像区域的图像边缘10522、10524使得它们朝着第二组图像角的一些(诸如10515、10516)延伸越过第一图像区域10611,来定义第二图像区域10612。作为结果,第二图像区域10612可以延伸超过第一图像区域10611。计算系统1100可以被配置为确定是否有任何物体识别模板(例如,10122b2)与第二图像区域匹配,并且可以基于物体识别模板生成次级检测假设和/或次级候选区域。该次级候选区域和/或次级检测假设可以被添加到安全空间列表。
[0105]
如图10g所示,计算系统1100可以在图像信息中标识第三组图像角(10511、10512、10517、10518)和/或第三组图像边缘(10521、10522、10524、10526),并且确定位于第三组图像角和/或第三组图像边缘之间的第三图像区域10613。类似地,如图10h所示,计算系统1100可以标识第四组图像角(10511、10515、10517、10519)和/或第四组图像边缘(10521、10522、10525、10526),并确定位于第四组图像角和/或第四组图像边缘之间的第四图像区域10614。计算系统1100可以被配置为确定第三图像区域10613是否匹配当前存储在模板存储空间中的任何现有的物体识别模板(例如,10122b3),以及第四图像区域10614是否匹配任何现有的物体识别模板(例如,10122b4)。如果存在(一个或多个)匹配的物体识别模板,则计算系统1100可以被配置为基于匹配的物体识别模板来生成(一个或多个)附加候选区域或检测假设。在一些情况下,附加候选区域或检测假设可以被添加到安全空间列表中。
[0106]
如上所述,安全空间在一些情况下可以包括或描述不匹配的区域。作为示例,图11a示出了相机视野中的物体11510,而图11b和11c示出了由相机3200a生成的用于表示物体11510的2d图像11600,以及由相机3200b生成的用于表示物体11510的3d图像信息11700(例如,点云)。在此示例中,物体11510可以部分地位于相机视野3210a/3210b内。2d图像11600可以更具体地包括表示物体11510的一部分11610和表示与物体11510相邻(例如,与物体紧邻)的物理区域(例如,空间的区域)的一部分11640。类似地,3d图像信息11700可以包括表示物体11510的第一部分11710和表示与物体11510相邻的物理区域的一部分11740。在接收2d图像11600和/或3d图像信息11700之后,计算系统1100可以将图像信息与一个或多个物体识别模板(诸如图11d中的物体识别模板11122a1)进行比较。
[0107]
在实施例中,计算系统1100可以确定物体识别模板11122a1匹配所接收的图像信息的一部分,诸如2d图像11600的部分11610(也被称为图像部分)和/或3d图像信息11700的部分11710。更具体地,计算系统1100可以确定例如当与2d图像11600的图像部分11610比较时模板11122a1的视觉描述信息满足预定的模板匹配条件。在这样的实施例中,2d图像11600的和/或3d图像信息11700的另一部分(诸如图像部分11640和/或图像部分11740)可能仍然无法被物体识别模板11122a1解释,或更一般地关于物体识别模板11122a1不匹配。在一些情况下,当与图像部分11640和/或11740比较时,计算系统1100还可以确定在计算系统1100可访问的一个或多个模板存储空间中没有其他物体识别模板满足预定的模板匹配条件。在这样的情况中,2d图像11600的图像部分11640和3d图像信息的图像部分11740可以是不匹配的图像部分,并且可以表示与物体(例如,11510)相邻的不匹配的区域,其中,物体由图像信息的匹配的一部分(例如,11610、11710)表示。
[0108]
在实施例中,计算系统1100可以在安全空间列表中描述或标识不匹配的区域。例如,如图11e所示,计算系统1100可以基于匹配的物体识别模板11122a1生成主要候选区域11125a1,并且还可以生成描述不匹配的区域11125c1的安全空间列表,其中不匹配的区域11125c1基于以上讨论的不匹配的图像部分11640/11740而生成或确定。例如,不匹配的区域11125c1可以具有与3d图像信息11700(例如,点云)的不匹配图像部分11740的大小相同的大小或基于不匹配图像部分11740的大小。如果计算系统1100通过生成边界区域来执行运动规划,则边界区域可以包围主要候选区域(例如,11125a1)和安全空间列表中的不匹配的区域(例如,11125c1)(如果有的话)。
[0109]
图12a至图12g提供了涉及不匹配的区域的另一示例,并且更具体地涉及包括不匹
配的区域的第二候选区域。更具体地,如图12a和12b所示,相机3200a/3200b可以生成图像信息,诸如表示一个或多个物体12510的2d图像12600。一个或多个物体12510可以是单个物体(诸如具有布置在盒子上的一条胶带的盒子)或者彼此相邻布置的多个盒子。当计算系统1100接收图像信息(例如,12600)时,计算系统12600可以将图像信息与一个或多个物体识别模板(诸如图12c中的模板12122a1和12122b1)进行比较。
[0110]
更具体地,计算系统1100可以通过在图12b的图像信息中搜索一个或多个图像区域来便于比较。在一些实现方案中,可以响应于确定图像信息是无纹理的而执行这样的搜索。像在图10e-10h的讨论中一样,计算系统1100可以通过标识图像角和/或图像边缘来标识图像区域。例如,如图12d所示,计算系统1100可以通过标识第一组图像角(12511、12512、12513、12514)和/或第一组图像边缘(12521、12522、12523、12524)来标识第一图像区域12611。计算系统1100可以将第一图像区域12611标识为位于这些图像角和/或图像边缘之间的图像区域。在此示例中,计算系统1100可以确定例如当与物体识别模板12122b1比较时第一图像区域12611满足预定的模板匹配条件。计算系统1100可以被配置为基于匹配的物体识别模板12122b1来生成主要候选区域12125b1,如图12g所示。
[0111]
如图12e所示,计算系统1100还可以标识第二图像区域12612,但是第二图像区域12612可以包括无法与存储在模板存储空间中的任何现有物体识别模板匹配的图像部分。更具体地,计算系统1100可以被配置为标识延伸越过第一图像区域12611或在第一图像区域12611外部的附加图像角12515、12516。通过在第一方向上将第一图像区域12611的图像边缘12522、12524延伸越过第一图像区域12611并朝向第一图像区域12611外部的附加图像角12515、12516,计算系统1100可以尝试标识延伸超过第一图像区域的第二图像区域12612。即,类似于关于图10e-10f讨论的,附加图像角12515、12516可以形成第二组图像角(12511、12514、12515、12516)的一部分,并且延伸的图像边缘可以形成第二组图像边缘(12521、12522、12524、12525)。第二图像区域12612可以是位于第二组图像角之间和/或第二组图像边缘之间的图像区域。
[0112]
在图12e的示例中,第二图像区域12612可以包括不匹配的图像部分。更具体地,如图12f所示,图像信息可以包括与图像区域12611相邻的图像部分12640(例如,另一图像区域)。图像部分12640可能无法关于物体识别模板12122a1和12122b1匹配预定的模板匹配条件。不匹配的图像部分12640可以表示不匹配的区域,其在图12g中被描绘为区域12125c1。在此示例中,计算系统1100可以被配置为响应于确定第二图像区域12612包括不匹配的图像部分12640而生成基于不匹配的图像部分12640的次级候选区域12125d1。更具体地,图12g中描绘的次级候选区域12125d1可以是包围主要候选区域12125b1和不匹配的区域12125c1的区域。在此示例中,不匹配的区域12125c1可以是紧邻主要候选区域12125b1的区域。
[0113]
图12h示出了计算系统1100可以通过在第二方向上延伸第一图像区域12611的图像边缘来搜索第三图像区域的示例。如果计算系统1100标识出这样的第三图像区域,则它可以以类似于以上关于图12e-12g的讨论的方式来生成另一候选区域(例如,另一次级候选区域)。在此示例中,计算系统1100可以尝试将通过将至少一对图像边缘(诸如图12h的图像边缘12521和12523)在图12h所示的第二方向上朝向另一对图像角(更具体地为12517、12518)延伸越过第一图像区域12611而具体形成的区域作为第三图像区域。然而,在此示例
中,计算系统1100可以确定不能形成这样的第三图像区域,因为尽管可以延伸图像边缘12521以到达图像角12517,但是图像边缘12523具有相对于图像角12518的偏移,因此即使当图像边缘1253被延伸时也无法到达图像角12518。更具体地,图像角部12518可能不位于图像边缘12523的轴线上,使得即使当图像边缘12523被延伸时,图像角12518也不与图像边缘12523相交。这样的情况可以指示对应于图像角12517、12518的结构不是与对应于第一图像区域12611的结构相同的物体的一部分,使得关于角12517、12518周围的结构的信息不需要被包括在安全空间列表中。因此,计算系统1100可以确定图像信息(例如,12600)不具有可以被用于生成安全空间列表的另一候选区域的第三图像区域。
[0114]
在实施例中,计算系统1100可以被配置为基于不匹配的图像部分和/或不匹配的区域来生成新的物体识别模板。生成新的物体识别模板可以是自动物体注册过程的一部分,并且可以由例如图2d的物体注册模块1128执行。例如,计算系统1100可以响应于图12e的情况而生成新的物体识别模板,其中第二图像区域12612包括不匹配任何现有物体识别模板的不匹配的图像部分12640。可以基于不匹配的图像部分12640生成新的物体识别模板。在一些情况下,计算系统1100可以确定不匹配的图像部分12640或由不匹配的图像部分表示的不匹配的区域12125c1是否满足或超过预定的大小阈值。预定的大小阈值可以等于或基于例如预定的最小物体大小。如果不匹配的图像部分12640或不匹配的区域12125c1的大小满足或超过预定的大小阈值,则计算系统1100可以基于不匹配的图像部分12640和/或不匹配的区域12125c1来生成新的物体识别模板。如果该大小小于预定的大小阈值,则在一些情况下,计算系统1100可以确定不需要基于不匹配的图像部分12640生成新的物体识别模板。在这样的情况下,计算系统1100可以更新现有物体识别模板,诸如与主要候选区域12125b1相关联的物体识别模板12122b1,其中该更新可以被执行以进一步描述或更一般地基于不匹配的图像部分12640和/或不匹配的区域12125c1。
[0115]
在实施例中,计算系统可以被配置为生成候选区域以包括在安全空间列表中,该候选区域表示或基于预定的最大物体大小或预定的最大物体高度。例如,图13a示出了涉及位于相机3200的相机视野中的物体13510、13511、13512(例如,盒子)的堆叠的情况。在此情况下,相机3200可以生成表示至少物体13510的顶表面的图像信息。这样的图像信息可能不提供物体13510的物体高度的指示或仅提供物体13510的物体高度的有限指示。在此示例中,计算系统1100可以生成包括第一候选区域13125a1的安全空间列表,该第一候选区域13125a1具有等于或基于预定的最大物体高度的高度,和/或具有等于或基于预定的最大物体大小的大小(例如,物体长度、物体宽度和物体高度的组合)。在一些情况下,计算系统1100还可以在安全空间列表包括附加候选区域13125a2,该附加候选区域13125a2具有等于或基于预定的最小物体高度的高度,和/或具有等于或基于预定的最小物体大小的大小。计算系统1100可以被配置为使用第一候选区域13125a1和/或附加候选区域13125a1来执行物体13510的运动规划。
[0116]
图13b示出了物体13510由机器人(例如,图3a的3300)从该堆叠移动到目的地位置。在此示例中,一个或多个线传感器13600可以被布置在目的地位置,其可以被配置为检测物体13510的存在。在一些实现方案中,一个或多个线传感器13600可以检测物体何时已经到达或越过作为距目的地位置的第一距离的第一假想线13601,并且检测物体何时已经到达或越过距目的地位置具有第二距离的第二假想线13602,其中第二距离可以短于第一
距离。计算系统1100或另一计算系统可以与一个或多个线传感器13600通信,并且可以被配置为在物体已经到达或越过第一假想线13601时使机器人减速。在一些实现方案中,计算系统1100可以从一个或多个线传感器13600接收传感器信息,以确定物体13510的实际物体高度。
[0117]
在实施例中,本文所讨论的预定的阈值或其他预定的值可能已经被手动定义,并且被存储在非暂时性计算机可读介质1120上或其他地方。在实施例中,预定的阈值或其他预定的值可能已经由计算系统1100动态地计算或以其他方式定义(基于例如相机(例如,3200)或机器人(例如,3300)的环境),并且被存储在非暂时性计算机可读介质1120上或其他地方。
[0118]
此外,如上所述,在实施例中,计算系统1100可以接收图像信息并从多个物体识别模板中标识多个匹配的物体识别模板。计算系统1100可以分别基于多个匹配的物体识别模板生成多个候选区域,并且基于多个候选区域执行运动规划。
[0119]
各个实施例的附加讨论:
[0120]
实施例1涉及一种计算系统和由该计算系统执行的方法。可以基于存储在非暂时性计算机可读介质上的指令来执行该方法。计算系统可以包括通信接口和至少一个处理电路。通信接口可以被配置为与机器人以及具有相机视野的相机进行通信。至少一个处理电路可以被配置为当物体在或已经在相机视野中时:接收表示物体的图像信息,其中图像信息由相机生成;标识一组一个或多个匹配的物体识别模板,该组一个或多个匹配的物体识别模板是当与图像信息进行比较时满足预定的模板匹配条件的一个或多个物体识别模板,其中该组一个或多个匹配的物体识别模板与一组一个或多个检测假设相关联,该组一个或多个检测假设是对图像信息表示哪个物体或物体类型的一个或多个相应估计;从该组一个或多个检测假设中选择检测假设作为主要检测假设,其中主要检测假设与该组一个或多个匹配的物体识别模板中的匹配的物体识别模板相关联,其中被选择作为主要检测假设的检测假设在一组一个或多个相应置信度值中具有最高的置信度值,其中该组一个或多个相应置信度值与该组一个或多个检测假设相关联,并且指示图像信息与关联于该组一个或多个检测假设组的该组一个或多个匹配的物体识别模板相匹配的相应程度。
[0121]
在此实施例中,至少一个处理电路可以被配置为还生成候选区域作为主要候选区域,候选区域估计物体的物体边界位置或估计相机视野中的哪些位置被物体占据,其中主要候选区域是基于与主要检测假设相关联的匹配的物体识别模板而生成的;确定以下各项中的至少一项:(i)除了与主要检测假设相关联的匹配的物体识别模板之外,该组一个或多个匹配的物体识别模板是否还具有当与图像信息比较时也满足预定的模板匹配条件的一个或多个剩余的匹配的物体识别模板的子集;或(ii)图像信息是否具有表示与主要候选区域相邻且不满足预定的模板匹配条件的不匹配的区域的一部分;响应于确定存在一个或多个剩余的匹配的物体识别模板的子集,或者图像信息具有表示不匹配的区域的一部分,生成安全空间列表,安全空间列表是描述以下各项中的至少一项的列表:(i)不匹配的区域,或(ii)一个或多个附加候选区域,一个或多个附加候选区域也估计物体的物体边界位置或估计哪些位置被物体占据,其中一个或多个附加候选区域是基于一个或多个剩余的匹配的物体识别模板的子集而生成的;以及基于主要候选区域并基于安全空间列表来执行运动规划,其中运动规划用于机器人与物体之间的机器人交互。
[0122]
实施例2包括实施例1的计算系统。在此实施例中,至少一个处理电路被配置为确定边界区域,边界区域包围主要候选区域和以下各项中的至少一项:(i)一个或多个附加候选区域或(ii)不匹配的区域,其中执行运动规划包括基于边界区域确定与机器人末端执行器装置相关联的轨迹。
[0123]
实施例3包括实施例2的计算系统。在此实施例中,执行运动规划包括基于主要候选区域确定机器人抓持运动;以及基于边界区域确定轨迹。
[0124]
实施例4包括实施例1的计算系统。在此实施例中,除了主要检测假设之外,该组一个或多个检测假设还包括与一个或多个剩余的匹配的物体识别模板的子集相关联的一个或多个剩余的检测假设的子集。在此实施例中,对于一个或多个剩余的检测假设的子集中的每个检测假设,至少一个处理电路被配置为:确定与检测假设相关联的相应置信度值相对于与主要检测假设相关联的置信度值是否在预定的置信度相似性阈值之内,其中,至少一个处理电路被配置为:响应于确定与检测假设相关联的相应置信度值相对于与主要检测假设相关联的置信度值在预定的置信度相似性阈值之内,在安全空间列表中包括与检测假设相关联的相应候选区域,使得相应候选区域是安全空间列表的一个或多个附加区域的一部分。
[0125]
实施例5包括实施例4的计算系统。在此实施例中,安全空间列表中的一个或多个附加候选区域中的每个候选区域与相应检测假设相关联,相应检测假设具有相对于与主要检测假设相关联的置信度值在预定的置信度相似性阈值之内的置信度值。
[0126]
实施例6包括实施例4或5的计算系统。在此实施例中,安全空间列表中的一个或多个附加候选区域中的每个候选区域与具有大于或等于预定的模板匹配阈值的置信度值的相应检测假设相关联。
[0127]
实施例7包括实施例1-6中任一项的计算系统。在此实施例中,一个或多个剩余的匹配的物体识别模板的子集包括与多个相应候选区域相关联的多个匹配的物体识别模板。在此实施例中,对于多个候选区域中的每个候选区域,至少一个处理电路被配置为:确定候选区域与主要候选区域之间的相应的重叠量;确定相应的重叠量是否等于或超过预定的重叠阈值,其中,至少一个处理电路被配置为:响应于确定重叠量等于或超过预定的重叠阈值,将候选区域包括在安全空间列表中,使得候选区域是安全空间列表的一个或多个附加候选区域的一部分。
[0128]
实施例8包括实施例1-7中任一项的计算系统。在此实施例中,图像信息包括2d图像信息,并且其中,与主要检测假设相关联的匹配的物体识别模板包括一组视觉描述信息,在与2d图像信息进行比较时,该组视觉描述信息被至少一个处理电路确定为满足预定的模板匹配条件。
[0129]
实施例9包括实施例8的计算系统。在此实施例中,一个或多个剩余的匹配的物体识别模板的子集中的至少一个匹配的物体识别模板具有相应一组视觉描述信息,在与2d图像信息进行比较时,相应一组视觉描述信息也被至少一个处理电路确定为满足预定的模板匹配条件,并且其中,至少一个处理电路被配置为基于至少一个匹配的物体识别模板来生成安全空间列表。
[0130]
实施例10包括实施例9的计算系统。在此实施例中,与主要检测假设相关联的匹配的物体识别模板包括指示第一物体大小的相应一组结构描述信息,并且其中,至少一个匹
配的物体识别模板包括指示与第一物体大小不同的第二物体大小的相应一组结构描述信息。
[0131]
实施例11包括实施例8-10中任一项的计算系统。在此实施例中,图像信息还包括3d图像信息,并且其中,一个或多个剩余的匹配的物体识别模板的子集中的至少一个物体识别模板具有相应一组结构描述信息,在与3d图像信息进行比较时,相应一组结构描述信息被至少一个处理电路确定为满足预定的模板匹配条件,并且其中至少一个处理电路被配置为基于至少一个物体识别模板来生成安全空间列表。
[0132]
实施例12包括实施例8-11中任一项的计算系统。在此实施例中,与主要检测假设相关联的匹配的物体识别模板是该组一个或多个匹配的物体识别模板中的第一匹配的物体识别模板,其中,当该组一个或多个匹配的物体识别模板是存储在模板存储空间中的多个物体识别模板的一部分时,至少一个处理电路被配置为:确定除了第一匹配的物体识别模板之外,多个物体识别模板是否具有当与第一匹配的物体识别模板进行比较时满足预定的模板相似性条件的至少一个物体识别模板;以及响应于确定多个物体识别模板包括当与第一匹配的物体识别模板进行比较时满足预定的模板相似性条件的至少一个物体识别模板,基于至少一个物体识别模板生成安全空间列表。
[0133]
实施例13包括实施例1-12中任一项的计算系统。在此实施例中,主要候选区域表示将图像信息与关联于主要检测假设的匹配的物体识别模板对准的第一方式,并且其中,至少一个处理电路被配置为在安全空间列表中包括另一个候选区域,另一个候选区域表示将图像信息与匹配的物体识别模板对准的第二方式。
[0134]
实施例14包括实施例1-13中任一项的计算系统。在此实施例中,至少一个处理电路被配置为:标识由图像信息表示的第一组图像角或第一组图像边缘;标识第一图像区域,第一图像区域是位于第一组图像角或第一组图像边缘之间的图像区域,其中,当与第一图像区域比较时,与主要检测假设相关联的匹配的物体识别模板被至少一个处理电路确定为满足预定的匹配条件,匹配的物体识别模板是该组一个或多个匹配的物体识别模板中的第一匹配的物体识别模板;基于图像信息,标识第二组图像角或第二组图像边缘,其中第二组图像角包括作为第一组图像角的一部分的至少一个图像角并且包括在第一图像区域外部的至少一个图像角,并且其中第二组图像边缘包括作为第一组图像边缘的一部分的至少一个图像边缘并且包括在第一图像区域外部的至少一个图像边缘;标识第二图像区域,第二图像区域是位于第二组图像角或第二组图像边缘之间的图像区域,其中第二图像区域延伸超过第一图像区域,并且其中该组一个或多个匹配的物体识别模板包括第二匹配的物体识别模板,当与第二图像区域比较时,第二匹配的物体识别模板被至少一个处理电路确定为满足预定的模板匹配条件。在此实施例中,至少一个处理电路被配置为基于第一匹配的物体识别模板生成主要候选区域,并且基于第二匹配的物体识别模板生成安全空间列表中的至少一个候选区域。
[0135]
实施例15包括实施例1-14中任一项的计算系统。在此实施例中,至少一个处理电路被配置为:响应于确定图像信息具有表示不匹配的区域的一部分,基于不匹配的区域生成新的物体识别模。
[0136]
实施例16包括实施例1-15中任一项的计算系统。在此实施例中,主要候选区域是表示由与主要检测假设相关联的匹配的物体识别模板描述的物体形状的第一方向的区域,
并且其中至少一个处理电路被配置为将表示物体形状的第二方向的候选区域添加到安全空间列表,第二方向垂直于第一方向。
[0137]
实施例17包括实施例1-16中任一项的计算系统。在此实施例中,至少一个处理电路被配置为将表示预定的最大物体高度的候选区域添加到安全空间列表。
[0138]
对于相关领域的普通技术人员将显而易见的是,在不脱离任何实施例的范围的情况下,可以对本文所述的方法和应用进行其他适当的修改和调整。上述实施例是说明性示例,并且不应被解释为将本发明限于这些特定实施例。应该理解的是,本文公开的各个实施例可以以与说明书和附图中具体呈现的组合不同的组合来组合。例如,关于图6a-6j讨论的(一个或多个)实施例可以与图7a-7g、图8a-8g、图9a-9f、图10a-10h、图11a-11e、图12a-12h和图13a-13b的实施例(一个或多个)组合。在另一个示例中,图6d、6e、7b、7e、8g和9f的实施例可以以各个方式组合。还应该理解,根据示例,本文描述的任何过程或方法的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,所有描述的动作或事件对于执行方法或过程可能不是必需的)。例如,可以通过省略各个步骤,修改各个步骤或执行附加步骤(例如,省略步骤4006)来修改方法4000。另外,尽管为了清楚起见,本文的实施例的某些特征被描述为由单个组件、模块或单元执行,但是应当理解,本文描述的特征和功能可以由组件、单元、模块的任何组合来执行。因此,在不脱离所附权利要求书所限定的本发明的精神或范围的情况下,本领域技术人员可以进行各个改变和修改。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1