基于边缘和多维拐角的检测后改善的制作方法

文档序号:23801051发布日期:2021-02-02 13:29阅读:123来源:国知局
基于边缘和多维拐角的检测后改善的制作方法
基于边缘和多维拐角的检测后改善
[0001]
相关申请的交叉引用
[0002]
本申请要求于2019年5月24日申请的第62/852,963号美国临时专利申请的权益,所述临时专利申请的内容以引用方式全部并入本文中。本申请还涉及于2019年3月1日申请的第16/290,741号美国专利申请,所述美国专利申请现在是第10,369,701号美国专利并以引用方式全部并入本文。
技术领域
[0003]
本技术总体上涉及机器人系统,并且更具体地涉及用于改善检测结果的系统、过程和技术。


背景技术:

[0004]
在许多情况下,包裹被置于托盘中(或“堆垛”)以便运送到目的地,随后在目的地将包裹卸垛。包裹可以由人类工人卸垛,这可能会占用大量资源并增加对人类工人造成伤害的风险。在工业环境中,卸垛操作可以由工业机器人执行,所述工业机器人诸如将包裹夹持、提升、运输并交付到投放点的机械臂。而且,可以利用成像装置来捕获装载在托盘上的一堆包裹的图像。系统可以处理所述图像以确保诸如通过将所捕获图像与存储在登记数据源中的所登记图像进行比较来由机械臂高效地处置包裹。
[0005]
有时,包裹的所捕获图像可能与所登记图像匹配。结果,成像物体的物理特性(例如,包裹的尺寸、重量和/或质心的测量结果)可能被未知错误地表示,和/或无法匹配预定或模板数据。无法正确识别物理特性可能导致各种不良后果。例如,这种故障可能导致停机,这可能需要手动登记包裹。而且,尤其是在包裹相对较重和/或偏向一边的情况下,这种故障可能导致包裹处置不当。
附图说明
[0006]
通过结合附图对具体实施方式的研究,本技术的各种特征和特性对于本领域技术人员将变得更加显而易见。通过示例而非限制的方式在附图中示出了本技术的实施例,在附图中,相似的附图标记可以指示类似元件。
[0007]
图1是具有检测后改善登记机制的机器人系统可以在其中操作的示例性环境的图示。
[0008]
图2是根据本技术的一个或多个实施例的机器人系统的图示。
[0009]
图3是根据本技术的一些实施例的具有多个可检测物体的场景的图示。
[0010]
图4是根据本技术的一些实施例的描绘物体的场景的一部分的图示。
[0011]
图5是根据本技术的一些实施例的基于边缘的物体检测的图示。
[0012]
图6是根据本技术的一些实施例的具有检测到的边缘和初始物体估计的场景的图示。
[0013]
图7是根据本技术的一些实施例的更新后的物体估计的图示。
[0014]
图8是根据本技术的一些实施例的操作图1的机器人系统的方法的框图。
[0015]
图9是示出可以在其中实施本文描述的至少一些操作的处理系统的示例的框图。
[0016]
附图仅出于说明目的描绘了各种实施例。本领域技术人员将认识到,在不脱离本技术原理的情况下可以采用替代实施例。因此,尽管在附图中示出了特定实施例,但是本技术可以进行各种修改。
具体实施方式
[0017]
本文描述了用于具有检测后改善机制的机器人系统的系统和方法。根据一些实施例配置的机器人系统(例如,执行一个或多个指定任务的装置的集成系统)通过基于在二维(2d)和/或三维(3d)图像数据中捕获的特性(诸如边缘或拐角)改善或调整物体检测结果提供了增强的可用性和灵活性。
[0018]
为了确定是否识别出物体,机器人系统可以获得关于开始位置处的物体的图像数据(例如,物体的暴露表面的一个或多个图像)并将所述图像数据与已知或预期物体的登记数据进行比较。当比较的数据(例如,比较的图像的一部分)与物体中的一者的登记数据(例如,登记的表面图像中的一者)匹配时,机器人系统可以确定物体已被识别。机器人系统可以通过断定在成像区域内的特定位置存在识别出的物体来检测所述物体。因此,机器人系统可以生成表示识别出的物体和/或识别出的物体的位置的检测结果。
[0019]
在许多情况下,确定物体(例如,置于托盘上的盒子)的位置/取向可以包括使用具有表面标记/设计的预定/存储的物体模板(例如,物体表面的视觉图像)。然而,依靠此类预定/存储的物体模板来识别物体可能导致物体在现实世界中的实际位置(position/location)的结果不准确。
[0020]
例如,物体/盒子上的实际表面标记/设计可能相对于预定/存储的物体模板中的表面标记/设计偏移、变形或处于不同取向。换句话说,由于计算机视觉误差,所捕获图像可能具有不准确的表面标记/设计表示,和/或诸如由于制造误差,处理后的物体可能具有与预期或模板图像偏移或不同的实际表面标记/设计。
[0021]
关于捕获的表面外观的不同类型的误差可能导致确定物体处于与其在现实世界中的实际位置/取向(例如,在存放位置/托盘上的实际位置/取向)不同的位置/取向。不准确的物体位置确定可能进一步导致在后续动作中对物体的操纵错误或失败,诸如由于在转移物体时远离质心(com)位置夹持物体引起的操纵错误或失败。
[0022]
因此,本实施例可以实施成对边缘分析以识别初始物体估计与物体的检测到特征之间的偏移/对准误差。基于任何检测到的偏移/对准误差,可以在完成物体检测时更新或验证初始物体估计。验证和/或更新初始物体估计可以提高物体的位置的准确度。
[0023]
在以下描述中,阐述众多具体细节以提供对当前公开技术的彻底理解。在其他实施例中,可以在没有这些具体细节的情况下实践此处介绍的技术。在其他情况下,未详细描述诸如特定功能或例程之类的公知特征以避免不必要地使本公开不清楚。在本说明书中对“一实施例”、“一个实施例”等的引用意味着所描述的特定特征、结构、材料或特性包括在本公开的至少一个实施例中。因此,在本说明书中此类短语的出现不一定全都是指同一实施例。另一方面,此类引用也不一定互相排斥。此外,特定特征、结构、材料或特性可以在一个或多个实施例中以任何合适方式进行组合。应当理解,附图中所示的各种实施例仅仅是说
明性表示,并且不一定按比例绘制。
[0024]
为了清楚起见,在下面的描述中没有阐述描述公知的并且通常与机器人系统和子系统相关联但是可能会不必要地使所公开技术的一些重要方面模糊的结构或过程的几个细节。此外,尽管以下公开内容阐述了本技术的不同方面的几个实施例,但是几个其他实施例可以具有与本节中所描述的配置或部件不同的配置或部件。因此,所公开技术可以具有带附加元件或不带下文描述的几个元件的其他实施例。
[0025]
下文描述的本公开的许多实施例或方面可以采取计算机或处理器可执行指令的形式,包括由可编程计算机或处理器执行的例程。相关领域的技术人员将明白,可以在除了下面示出和描述的计算机或处理器系统之外的计算机或处理器系统上实践所公开技术。本文描述的技术可以体现在专用计算机或数据处理器中,所述专用计算机或数据处理器被具体编程、配置或构造为执行下文描述的一个或多个计算机可执行指令。因此,如本文通常使用的术语“计算机”和“处理器”是指任何数据处理器,并且可以包括因特网器具和手持装置(包括掌上计算机、可穿戴计算机、蜂窝或移动电话、多处理器系统、基于处理器的或可编程的消费性电子产品、网络计算机、小型计算机等)。由这些计算机和处理器处置的信息可以呈现在任何合适的显示介质上,所述显示介质包括液晶显示器(lcd)。用于执行计算机或处理器可执行的任务的指令可以存储在任何合适的计算机可读介质中或其上,所述计算机可读介质包括硬件、固件或硬件与固件的组合。指令可以包含在任何合适的存储器装置中,所述存储器装置包括例如闪存盘和/或其他合适的介质。
[0026]
术语“耦合”和“连接”以及它们的派生词在本文中可以用于描述部件之间的结构关系。应当理解,这些术语并不旨在作为彼此的同义词。而是,在特定实施例中,“连接”可以用于指示两个或更多个元件彼此直接接触。除非在上下文中另外变得明显,否则术语“耦合”可以用于指示两个或更多个元件彼此直接地或间接地(在它们之间有其他中间元件)接触,或者两个或更多个元件协作或彼此交互(例如,以因果关系进行交互,诸如用于信号发射/接收或用于函数调用),或这两者。
[0027]
适用环境
[0028]
图1是具有检测后改善机制的机器人系统100可以在其中操作的示例性环境的图示。机器人系统100可以包括被配置为执行一个或多个任务的一个或多个单元(例如,机器人)和/或与其通信。检测后改善机制的各方面可以由各个单元来实践或实施。
[0029]
对于图1中所示的示例,机器人系统100可以包括仓库或配送/运送中心中的卸载单元102、转移单元104(例如,堆垛机器人和/或拣选机器人)、运输单元106、装载单元108或它们的组合。机器人系统100中的每个单元可以被配置为执行一个或多个任务。可以按顺序组合所述任务以执行实现目标的操作,诸如从卡车或货车上卸载物体并将所述物体存放在仓库中,或者从存放位置卸载物体并准备运送所述物体。对于另一个示例,任务可以包括将物体放置在目标位置上(例如,在托盘的顶部上和/或在筐/笼子/盒子/箱子内部)。如下所述,机器人系统可以推导用于放置和/或堆叠物体的计划(例如,放置位置/取向、用于转移物体的顺序和/或对应的运动计划)。每个单元可以被配置为执行一系列动作(例如,操作其中的一个或多个部件)以执行任务。
[0030]
在一些实施例中,任务可以包括目标物体112(例如,与正在执行的任务相对应的包裹、盒子、箱子、笼子、托盘等中的一者)从开始位置114到任务位置116的操纵(例如,移动
和/或重新取向)。例如,卸载单元102(例如,拆箱机器人)可以被配置为将目标物体112从运载工具(例如,卡车)中的位置转移到传送带上的位置。而且,转移单元104可以被配置为将目标物体112从一个位置(例如,传送带、托盘或筐)转移到另一个位置(例如,托盘、筐等)。对于另一个示例,转移单元104(例如,堆垛机器人)可以被配置为将目标物体112从源位置(例如,托盘、拾取区域和/或传送带)转移到目的地托盘。在完成所述操作时,运输单元106可以将目标物体112从与转移单元104相关联的区域转移到与装载单元108相关联的区域,并且装载单元108可以(例如,通过移动承载目标物体112的托盘)将目标物体112从转移单元104转移到存放位置(例如,架子上的位置)。下面描述关于任务和相关联的数据处理的细节。
[0031]
出于说明目的,在运送中心的情景中描述了机器人系统100;然而,应当理解,机器人系统100可以被配置为在其他环境中/出于其他目的(诸如用于制造、组装、打包、医疗保健和/或其他类型的自动化)执行任务。还应当理解,机器人系统100可以包括图1中未示出的其他单元,诸如操纵器、服务机器人、模块化机器人等。例如,在一些实施例中,机器人系统100可以包括:卸垛单元,所述卸垛单元用于将物体从笼车或托盘转移到传送机或其他托盘上;容器切换单元,所述容器切换单元用于将物体从一个容器转移到另一个容器;打包单元,所述打包单元用于包装物体;分拣单元,所述分拣单元用于根据物体的一个或多个特性将物体进行分组;拣选单元,所述拣选单元用于根据物体的一个或多个特性以不同方式操纵(例如,分拣、分组和/或转移)物体;或它们的组合。
[0032]
机器人系统100可以包括在关节处连接以进行运动(例如,旋转和/或平移位移)的物理或结构构件(例如,操纵器机械臂)。所述结构构件和关节可以形成动力链,所述动力链被配置为根据机器人系统100的使用/操作来操纵末端执行器(例如,夹持器),所述末端执行器被配置为执行一个或多个任务(例如,夹持、自旋、焊接等)。机器人系统100可以包括致动装置(例如,马达、致动器、导线、人造肌肉、电活性聚合物等),所述致动装置被配置为围绕或在对应关节处驱动或操纵(例如,移位和/或重新取向)结构构件。在一些实施例中,机器人系统100可以包括运输马达,所述运输马达被配置为将对应的单元/机箱从一个地方运输到另一个地方。
[0033]
机器人系统100可以包括传感器,所述传感器被配置为获得用于检测物体和/或实施任务的信息,诸如用于操纵结构构件和/或用于运输机器人单元的信息。传感器可以包括被配置为检测或测量机器人系统100的一个或多个物理性质(例如,机器人系统的一个或多个结构构件/关节的状态、状况和/或位置)和/或周围环境的一个或多个物理性质的装置。传感器的一些示例可以包括加速度计、陀螺仪、力传感器、应变仪、触觉传感器、扭矩传感器、位置编码器等。
[0034]
例如,在一些实施例中,传感器可以包括被配置为检测周围环境的一个或多个成像装置(例如,视觉和/或红外相机、2d和/或3d成像相机、距离测量装置,诸如激光雷达或雷达等)。成像装置可以生成检测到的环境的表示,诸如数字图像和/或点云,所述表示可以经由机器/计算机视觉来处理(例如,用于自动检查、机器人导引或其他机器人应用)。如下面进一步详细描述的,机器人系统100可以处理数字图像和/或点云以识别目标物体112、开始位置114、任务位置116、目标物体112的姿势、关于开始位置114和/或姿势的置信测度,或它们的组合。
[0035]
为了操纵目标物体112,机器人系统100可以捕获并分析指定区域(例如,诸如卡车内部或传送带上的拾取位置)的图像,以识别目标物体112和其起始位置114。类似地,机器人系统100可以捕获并分析另一个指定区域(例如,用于将物体放置在传送带上的投放位置、用于将物体放置在容器内部的位置或用于堆叠目的的托盘上的位置)的图像以识别任务位置116。例如,成像装置可以包括被配置为生成拾取区域的图像的一个或多个相机和/或被配置为生成任务区域(例如,投放区域)的图像的一个或多个相机。基于所捕获图像,如下文详细描述的,机器人系统100可以检测开始位置114和/或任务位置116处的物体,并改善检测结果。
[0036]
在一些实施例中,例如,传感器可以包括位置传感器(例如,位置编码器、电位差计等),所述位置传感器被配置为检测结构构件(例如,机械臂和/或末端执行器)和/或机器人系统100的对应关节的位置。机器人系统100可以在任务执行期间使用位置传感器来跟踪结构构件和/或关节的位置和/或取向。
[0037]
用于物体检测和检测后改善的示例性装置配置
[0038]
图2是根据本技术的一个或多个实施例的图1的机器人系统100的图示。机器人系统100可以包括机械臂202(例如,图1的转移单元104的实例),所述机械臂包括末端执行器204(例如,夹持器)。机械臂202可以被配置为在图1的开始位置114与图1的任务位置116之间转移目标物体112。如图2中所示,开始位置114可以具有托盘208,在所述托盘上具有目标堆叠210(例如,物体分组)。机械臂202的任务位置116可以是传送机206(例如,图1的运输单元106的实例)上的放置位置(例如,开始点/出口点)。
[0039]
机器人系统100可以在利用机械臂202执行转移操作时使用一个或多个传感器。在一些实施例中,机器人系统100可以包括第一成像传感器212和/或第二成像传感器214。第一成像传感器212可以包括被配置为对开始位置114进行成像和/或分析的一个或多个2d和/或3d传感器,诸如相机和/或深度传感器。第二成像传感器214可以包括被配置为对任务位置116进行成像和/或分析的一个或多个2d和/或3d传感器,诸如相机和/或深度传感器。例如,第一成像传感器212可以包括一个或多个相机和/或深度传感器,它们位于开始位置114上方的已知位置处并面向开始位置。第一成像传感器212可以生成与开始位置114的一个或多个俯视图(诸如目标堆叠210的俯视图)相对应的成像数据(例如,3d点云和/或视觉或2d图像)。
[0040]
机器人系统100可以使用来自第一成像传感器212的成像数据来识别或检测目标堆叠210中的物体。在检测物体时,机器人系统100可以基于将图像数据(例如,2d图像)或其部分与主数据(例如,预期/所登记物体的预定表面图像)进行匹配来生成初始检测假设。机器人系统100可以进一步处理图像数据(例如,3d图像)以改善初始检测假设。例如,机器人系统100可以识别平行边缘对和对应的交叉点,以推导物体的物理轮廓或周界。可以对推导的轮廓进行处理以调整或验证初始检测假设。下面讨论关于检测和改善的细节。
[0041]
物体边缘检测
[0042]
如上所述,可以将一个物体或一系列物体的初始物体估计与所述物体的另外确定的特征进行比较,以验证和/或更新所述物体的根据初始物体估计的位置。图3示出了根据本技术的一些实施例的具有多个可检测物体302、304的场景300。
[0043]
如图3中所示,场景300可以是来自图2的第一成像传感器212的成像数据(例如,2d
视觉图像)。场景300可以描绘在开始位置114处的多个可检测物体302和304(例如,堆垛盒子)。图1的机器人系统100可以分析成像数据以推导物体302和/或304的初始物体估计。例如,机器人系统100可以将场景300或其部分与主数据中的所登记物体的表面图像进行比较。使用计算机视觉和/或其他图像分析机制,机器人系统100可以确定场景300中与物体302和304相对应的区域与主数据中的一个或多个表面图像匹配。
[0044]
对于每次匹配,机器人系统100可以将初始物体估计推导为对应的所登记物体的标识符、检测到的物体的位置、检测到的物体的大小、检测到的物体的姿势和/或与检测到的物体相关联的其他物理属性。例如,机器人系统100可以确定针对场景300的第一部分和第二部分的分别与物体302和304的所登记图像匹配的足够特征数量(例如,如由置信度值和/或匹配特征的阈值数量/大小所定义)。因此,机器人系统100可以估计物体302和304(例如,候选物体)在开始位置112处。基于匹配,机器人系统100可以识别相对于物体302和304的所登记图像中的特征的预定尺寸和/或边缘位置。机器人系统100可以将尺寸和/或相对边缘位置映射到场景300中的匹配特征,以推导或估计物体302和304的姿势和/或位置。机器人系统100可以基于将图像中的位置(例如,像素位置)转换为基于现实世界位置的预定坐标系和/或映射过程来进一步定位物体。
[0045]
如下面更详细地讨论的,可以在验证/更新初始物体估计时利用成对边缘分析。在一些实例中,诸如当检测到的物体具有类似的视觉特征和/或尺寸时,成对边缘分析可以进一步用于区分物体302、304的身份和/或验证初始物体估计中表示的物体的尺寸。
[0046]
图4是根据本技术的一些实施例的描绘物体402的成像输出(例如,2d/3d成像数据)的一部分的图示。成像装置(例如,第一成像传感器212、第二成像传感器214)可以捕获物体(例如,堆垛盒子)的图像。由成像装置捕获的图像可以示出具有一个或多个可检测物体的环境(或“场景”)。例如,所述图像可以示出位于图1的开始位置114处的多个堆垛盒子的俯视图。在图像中捕获的场景可以提供覆盖目标物体(例如,包括物体402)所处的区域的视野。
[0047]
可以通过检查物体402的所捕获图像来检测物体402的边缘404a和/或404b。例如,图1的机器人系统100可以使用诸如sobel滤波器之类的边缘检测机制和/或其他边缘检测机制来检测所描绘的边缘。如下面更详细地讨论的,图像数据(例如,3d点云)和/或检测到的边缘可以用于确定物体的3d拐角,所述3d拐角可以用于确定物体的所确定特征与初始物体估计之间的偏移。
[0048]
对于每个检测到的边缘,机器人系统100可以推导边缘取向408。边缘取向408可以包括物体的可检测边缘的方向/取向。例如,边缘取向408可以包括边缘相对于由图像表示的场景的参考坐标系(例如,欧几里得空间(euclidian space)中的2d或3d笛卡尔坐标)的对准或倾斜。在一些实施例中,边缘取向408可以由包括检测到的边缘的方向和大小两者的边缘矢量表示。
[0049]
物体402(例如,盒子)可以包括多个平行边缘。例如,所捕获图像可以描绘与边缘404a平行的边缘404a

。类似地,所捕获图像可以描绘与边缘404b平行的边缘404b


[0050]
机器人系统100可以基于计算和比较取向408来确定一组边缘是平行的。作为说明性示例,机器人系统100可以基于推导检测到的边缘的集群来识别平行边缘。机器人系统100可以基于根据v1和v2的点积来比较检测到的边缘来推导边缘集群,其中v1和v2是唯一
边缘的矢量表示。边缘的角度或取向可以对应于矢量的方向分量。当点积的角度小于角度阈值时,机器人系统100可以确定两个矢量是平行的。
[0051]
在一些实施例中,机器人系统100可以基于比较距目标边缘在阈值区域/距离内的检测到的边缘来推导边缘集群。例如,阈值区域/距离可以对应于最大的所登记物体的尺寸。而且,机器人系统100可以基于距初始物体估计的边缘在阈值距离处或在阈值距离内的检测到的边缘来推导边缘集群。例如,机器人系统100可以识别延伸超出初始物体估计的边界的分析区域。换句话说,机器人系统100可以识别各自围绕或包括初始物体估计的实例的分析区域以及与所述分析区域紧邻的区域。机器人系统100可以确定每个初始物体估计内的边缘集群。类似地,机器人系统100还可以基于比较位于与物理特征(例如,3d拐角或3d边缘)、最小/最大物体大小、具有匹配的3d点云值的区域(例如,连续表面)、分析平台(例如,托盘)内的区域或它们的组合相对应的或者(例如,根据预定模板)由以上各项限定的区域中的检测到的边缘来推导边缘集群。
[0052]
机器人系统100可以使用边缘集群来识别图像数据中的区域。例如,机器人系统100可以识别具有不同取向的检测到的边缘的相交点(例如,拐角)。当一组(例如,第一对)集群或平行边缘与另一组(例如,第二对)集群或平行边缘相交以形成预定数量的拐角(例如,四个拐角)时,机器人系统100可以检测到物体退出。机器人系统100可以确定对应的边缘集合和其中的界定区域表示检测到的物体。因此,机器人系统100可以基于边缘并且独立于初始物体估计来检测物体。下面描述关于基于边缘的物体检测的细节。
[0053]
机器人系统100可以推导平行边缘(例如,边缘404b、404b

)之间的可检测边缘距离406。可检测边缘距离406可以包括共面的和/或位于彼此的阈值区域/距离内的平行边缘(例如,边缘404a、404a

或边缘404b、404b

)之间的距离。可检测边缘距离706可以表示物体402的长度或宽度。如下面更详细地描述的,可检测边缘距离406可以用于确定物体的尺寸是否对应于对物体的初始物体估计中所包括的尺寸。
[0054]
物体边缘交叉点检测
[0055]
物体的检测到的平行边缘集合可以用于识别检测到的边缘的一系列交叉点(或“3d拐角”)。所识别的交叉点可以用于根据检测到的边缘来检测物体。图5是根据本技术的一些实施例的基于边缘的物体检测的图示。如图5中所示,场景500(例如,来自图2的第一成像传感器212的2d成像输出)可以示出与第一物体(a)相对应的第一检测到的边缘集合502和与第二物体(b)相对应的第二检测到的边缘集合504。
[0056]
如上所述,机器人系统100可以基于检测到的边缘集合502和504来推导边缘集群。作为说明性示例,机器人系统100可以基于具有第一取向的第一边缘512来推导第一集群。如上所述,机器人系统100可以分析与第一边缘512相对应的区域内的检测到的边缘。基于分析,机器人系统100可以推导包括第一边缘512和被确定为与第一边缘512平行的第一对应边缘522的边缘集群(例如,一组或一对平行边缘)。类似地,机器人系统100可以基于具有第二取向和/或与第一边缘512相交的第二边缘514来推导第二集群。第二集群可以包括第二边缘514和被确定为与第二边缘514平行的第二对应边缘524。
[0057]
机器人系统100可以进一步处理边缘集群以识别检测到的拐角506,具有不同取向的一组边缘在所述拐角处相交。机器人系统100可以从一端到另一端地跟踪检测到的边缘,以确定边缘是否与另一个边缘相交。当来自不同集群的多组或多对边缘彼此相交时,机器
人系统100可以确定所述边缘形成了围封一区域的边界。如图5中所示,机器人系统100可以确定第一对平行边缘512和522与第二对平行边缘514和524相交。因此,机器人系统100可以确定边缘512、514、522和524对应于或限定检测到的物体(例如,物体a)。类似地,机器人系统100可以分析场景中的其他检测到的边缘以确定其他相交点并且随后确定场景中描绘的其他物体。
[0058]
边缘评级
[0059]
可以推导边缘评级,所述边缘评级提供用于量化检测到的边缘、检测到的平行边缘对和/或边缘交叉点的准确度/精度的度量。边缘评级可以用于确定检测到的边缘的准确度,并且可以用于检测后改善和检验(例如,更新/检验初始物体估计)。边缘评级可以包括表示物体的任何检测到的特征的准确度的动态/累积值。在一些情况下,边缘评级可以指示检测到的物体相对于初始物体估计中所包括的候选物体的准确度。
[0060]
可以基于各种因素来推导边缘评级。例如,边缘评级可以基于连续性测度(例如,指示边缘在测量/描绘的值中是否包括不连续性或不规则变化)。作为另一个示例,边缘评级可以基于检测到的边缘的线性水平。机器人系统100可以将边缘形状与预定模板或图案进行比较以确定线性水平。
[0061]
还可以基于检测到的平行边缘对和/或与初始物体估计相对应的候选物体之间的相似性测度来计算或调整边缘评级。例如,可以根据每个集群和/或相交集群内的检测到的边缘的长度、厚度、颜色和/或取向来计算相似性测度。边缘评级还可以基于在2d图像中识别的可检测边缘与3d点云中的边缘点之间的重叠程度。例如,机器人系统100可以根据预定网格/坐标系和/或映射函数(例如,一个或多个方程和/或查找表)将2d图像中的点映射到3d图像和/或现实世界中的点。利用共同位置映射,机器人系统100可以将2d图像中的检测到的边缘与3d图像中的检测到的边缘进行比较。机器人系统100可以基于2d和3d图像中的对应边缘之间的接近度来计算边缘评级。因此,在2d和3d图像中的相同位置处检测到的边缘可以具有更高的边缘评级。当2d和3d图像中的对应边缘离得远时,边缘评级可能会降低。
[0062]
在一些实施例中,边缘评级可以基于检测到的边缘交叉点(例如,拐角)。例如,可以将识别的拐角(例如,2d拐角)的位置与3d拐角的位置进行比较。可以基于重叠或共位程度来计算形成拐角的检测到的边缘的边缘评级,如上文针对边缘比较所述。而且,可以基于拐度角度来计算形成拐角的检测到的边缘的边缘评级。在一些实施例中,当拐角角度最接近90
°
时,边缘评级可以提高。
[0063]
如本文所述,可以在识别/提取可检测边缘或识别边缘集群之后确定边缘评级。在一些实施例中,可以在识别平行边缘对、确定平行边缘集合、将检测到的平行边缘对投影到3d边缘投影和/或识别边缘交叉点中的任一项之后确定边缘评级。
[0064]
在一些实施例中,机器人系统可以基于边缘分数来拒绝检测到的边缘(例如,当边缘分数低于边缘检测阈值时)。作为另一个示例,在改善/验证过程期间或之前,机器人系统100可以决定是否使用检测到的边缘交叉点来改善和/或验证初始物体估计。
[0065]
对初始物体估计的改善/验证
[0066]
图6是根据本技术的一些实施例的场景600的图示,所述场景具有如虚线所描绘的检测到的边缘602a和602b以及如实线所描绘的初始物体估计604a和604b。检测到的边缘602a可以对应于第一物体(例如,图3的物体302),而检测到的边缘602b可以对应于第二物
体(例如,图3的物体304)。类似地,初始物体估计604a可以对应于第一物体,而初始物体估计604b可以对应于第二物体。
[0067]
如图6中所示,检测到的边缘可能未与初始物体估计的边界/边缘对准。所述差异可能是由机器人系统100诸如在初始物体估计的图像处理和推导期间引起的。所述差异也可能是由物体的不一致性引起的。例如,由于制造、印刷和/或打包误差,实际物体可能具有不同于所登记图像或相对于所登记图像位于非预期位置处的视觉特征(例如,徽标、设计和/或其他可见标记)。
[0068]
如下文详细描述的,机器人系统100可以使用检测到的边缘来更新和/或验证初始物体估计。因此,机器人系统100可以减少或消除由不准确的物体检测引起的故障。换句话说,机器人系统100可以使用检测到的边缘来加强基于可见特征的物体检测。
[0069]
如上所述,可以基于检测到的物体特征来更新和/或验证初始物体估计。图7是根据本技术的一些实施例的更新后的物体估计的图示。如上所述,图1的机器人系统100可以将场景708或其一部分与物体模板700(例如,所登记物体的预定表面图像或特征集合)进行比较以推导初始物体估计722。
[0070]
当场景708的一部分与物体模板700匹配时,机器人系统100可以检测到潜在匹配。如图7中所示,物体模板700可以包括特征702、704、706。示例性特征702、704、706可以包括可见特征,诸如表面设计、字母、数字、符号、边缘等。对于匹配情景,场景708的一部分可以包括分别与特征702、704、706匹配的特征710、712、714。因此,机器人系统100可以基于识别特征710、712和714周围的轮廓来推导初始物体估计722。可以根据相对于一个或多个匹配特征的一个或多个参考位置716(例如,按对应的预定距离/方向分开的位置)来识别轮廓。如图7中所示,参考位置716中的一者可以是轮廓的拐角,所述拐角与和特征702匹配的所描绘特征(例如,特征710)分离预定距离。机器人系统100可以将轮廓识别为对应物体的估计边缘。
[0071]
在一些实施例中,改善或更新初始物体估计722可以包括将检测到的边缘和/或检测到的边缘的交叉点(例如,拐角)与检测到的2d/3d拐角进行比较。例如,机器人系统100可以从2d和/或3d图像识别物体边缘集合732。物体边缘集合732可以是来自上述基于边缘的物体检测的结果,并且包括被确定为至少部分地围封一区域的多组相交的平行边缘。在一些实施例中,机器人系统100可以识别围封与初始物体估计722至少部分地重叠的区域的一组检测到的边缘732。机器人系统100可以比较初始物体估计722与2d/3d图像之间的边缘/拐角的对应位置。当比较的边缘/拐角未对准时,机器人系统100可以计算初始物体估计722的边缘/拐角与检测到的边缘732之间的一个或多个移位距离734。机器人系统100可以计算沿着一个或多个预定方向(例如,沿着x轴和y轴)的和/或作为匹配位置之间的矢量的移位距离734。
[0072]
当移位距离734大于预定移位阈值时,机器人系统100可以更新初始物体估计722。例如,机器人系统100可以将初始物体估计722移位所述移位距离734,使得物体估计与包括匹配特征(例如,特征710、712和714)的检测到的边缘732重合。在一些实施例中,机器人系统100可以通过组合(例如,平均化)初始物体估计722、2d物体识别结果和/或3d物体识别结果之间的间隔来将初始物体估计722移位。当来自2d和3d图像的物体识别结果未对准时,机器人系统100可以使3d成像结果优先于2d成像结果(例如,通过选择一个结果并舍弃其他结
果,或者通过对3d成像结果施加更大的处理权重)。类似地,机器人系统100可以使2d边缘检测结果优先于由特征匹配产生的初始物体估计722。
[0073]
在一些实施例中,机器人系统100可以使用2d特征来生成初始物体估计722,并且使用2d边缘处理来首先验证或调整物体估计722。机器人系统100可以进一步使用3d边缘/拐角或其位置来进一步调整或检验物体估计。检验物体估计可以包括确定物体估计的边缘/拐角与3d深度图中的对应边缘/拐角之间是否存在差异。换句话说,机器人系统100可以确定3d深度图在与物体估计相对应的位置处是否包括边缘/拐角(例如,形成或沿着一条或多条线的深度测度的落差或变化)。当机器人系统100检测到所比较数据中的差异时,机器人系统100可以拒绝物体估计和/或如上所述进一步调整物体估计。
[0074]
图8是根据本技术的一些实施例的操作图1的机器人系统100的方法800的框图。方法800可以包括获得表示其中具有一个或多个物体的环境的一个或多个成像结果(例如,2d和/或3d图像数据)(框802)。图像可以由一个或多个成像装置(诸如第一图像传感器212或第二图像传感器214,两者都如图2中所示)捕获。例如,2d和/或3d图像可以是堆垛盒子的俯视图描绘。
[0075]
方法800可以包括基于2d图像来生成初始物体估计(框804)。初始物体估计可以包括位于环境中的物体的所估计标识和/或所估计位置。如上所述,机器人系统100可以基于分析在2d图像中描绘的视觉特征/将所述视觉特征与主数据进行比较来生成初始物体估计。例如,机器人系统100可以将2d图像或其一部分与主数据中表示所登记物体的表面的表面图像进行比较。当2d图像中的一个或多个特征与所登记物体中的一者的表面图像匹配时,机器人系统100可以生成初始物体估计。机器人系统100可以将匹配的所登记物体的标识符(例如,物体名称和/或标识码)确定为所估计标识。机器人系统100可以使用匹配特征来将匹配图像映射或投影到2d图像上。机器人系统100可以进一步将2d图像中的对应位置映射到现实世界位置,由此确定所估计的物体位置。例如,机器人系统100可以估计所估计的物体的外围边缘和/或拐角的位置。
[0076]
方法800可以包括执行基于边缘的物体检测(框806)。基于边缘的物体检测可以包括识别在2d图像中检测到的边缘的多个相交集合/对。因此,机器人系统100可以通过检查2d图像以检测其中所描绘的边缘来开始基于边缘的检测(框808)。如上所述,可以使用适当的边缘检测技术(例如,canny边缘检测和sobel滤波器)来检测目标物体的一系列边缘。
[0077]
基于边缘的物体检测可以包括推导各自包括检测到的边缘分组的边缘集群(框810)。例如,边缘集群可以包括在如上所述的预定义区域内的至少两个检测到的边缘。机器人系统100可以确定指示检测到的边缘的方向的边缘取向。机器人系统100可以根据检测到的边缘的确定的边缘取向来对检测到的边缘进行分组。
[0078]
基于边缘的物体检测可以包括基于边缘集群来检测平行边缘集合/对(框812)。在一些实施例中,平行边缘集合可以各自包括具有被确定为彼此平行的取向的两个检测到的边缘。如上所述,机器人系统100可以基于分析分析区域内的边缘来检测平行边缘集合。在一些实施例中,机器人系统100可以基于确定边缘集群中所包括的可检测边缘子集以阈值角度内的角度相交来检测平行边缘集合。机器人系统100可以基于资格条件(诸如通过将图4的可检测边缘距离406与和初始物体估计相关联的所登记物体的预定尺寸进行比较)来检测平行边缘集合。机器人系统100可以基于在边缘集群中选择具有与所登记尺寸匹配(例
如,在间隔阈值内)的可检测边缘距离406的边缘来检测平行边缘集合。
[0079]
方法800可以包括识别包括多个检测到的相交平行边缘对的物体边缘集合(框814)。物体边缘集合可以包括具有不同取向和/或彼此相交的多个平行边缘对。例如,机器人系统100可以将物体边缘集合识别为具有第一取向的第一平行边缘对和与第一平行边缘对相交的具有第二取向的第二平行边缘对。因此,机器人系统100可以将物体边缘集合识别为彼此连接并围封一区域的四个边缘。
[0080]
方法800可以包括将物体边缘集合投影到表示其中具有一个或多个物体的环境的3d图像(例如,点云)的区域上(框816)。在一些实施例中,机器人系统100可以将2d图像和3d图像中的点映射到彼此和/或对应的现实世界位置。机器人系统100可以使用与成像装置的固定/已知位置和取向相对应的预定过程、坐标系、查找表和/或方程来投影点。因此,机器人系统100可以确定与物体边缘集合中的边缘相对应的3d图像中的部分/位置。
[0081]
方法800可以包括识别3d图像数据内的3d拐角位置(框818)。3d拐角可以(诸如)由机器人系统100用来分析具有预定形状/大小并且包括与物体边缘集合相关联的拐角的位置的区域。3d拐角可以用于搜索分析区域内的3d边缘(例如,深度测度发生变化的相邻位置集合)之间的交点。
[0082]
方法800可以包括计算3d拐角位置与初始物体估计的对应拐角位置之间的偏移(框820)。所述偏移可以(诸如通过距离和/或取向)表示所投影的3d点云的3d拐角位置与初始物体估计的拐角位置之间的位置差异。在一些实施例中,机器人系统100可以比较2d和3d边缘以如上所述计算偏移。
[0083]
方法800可以评估偏移(判定框822)。换句话说,机器人系统100可以根据3d传感器数据来确定初始物体估计(例如,估计物体的位置)是否准确。机器人系统100可以基于将所计算的偏移(例如,初始物体估计的拐角/边缘与2d/3d拐角/边缘位置之间的距离)和/或边缘评级与一个或多个预定阈值进行比较来进行评估。在一些实施例中,可以基于确定偏移距离大于阈值间隔距离来拒绝检测到的边缘交叉点。在一些实施例中,基于确定边缘评级低于阈值水平来拒绝可检测边缘。
[0084]
方法800可以包括基于偏移和初始物体估计来生成物体检测结果(框828)。生成物体检测结果可以包括基于偏移来更新初始物体估计(框824)。例如,当所计算的偏移大于阈值间隔距离时,初始物体估计可以被更新以计及偏移。换句话说,机器人系统100可以使初始物体估计沿着移位方向移位与所计算的偏移的大小相对应的距离。在一些实施例中,机器人系统100可以调整初始物体估计以与2d/3d拐角或边缘对准,由此根据所计算的偏移来将初始物体估计移位。在其他实施例中,机器人系统100可以将初始物体估计移位所计算的偏移的大小的一小部分。
[0085]
生成物体检测结果可以包括基于所计算的偏移来验证初始物体估计(框826)。当偏移不大于阈值并且初始物体估计基本上与2d/3d拐角或边缘对准时,机器人系统100可以验证初始物体估计。在一些实施例中,机器人系统100可以根据2d拐角/边缘并且然后根据3d拐角/边缘来验证/更新初始物体估计。例如,机器人系统100可以首先基于将初始物体估计的一个或多个边缘/拐角与单独从2d图像检测到的边缘/拐角的位置进行比较来验证初始物体估计。机器人系统100可以相应地验证或调整。然后,机器人系统100可以类似地将验证/调整后的结果的边缘/拐角与3d图像中的边缘/拐角的位置进行比较。
[0086]
机器人系统100可以使用生成的物体检测结果来操纵检测到的物体。例如,机器人系统100可以使用物体检测结果来定位检测到的物体。根据所述位置,机器人系统100可以推导并实施运动计划(例如,用于操作机器人单元的一组命令和/或设置)以夹持、提升、水平转移、降低和/或释放物体。
[0087]
在一些实施例中,方法800可以包括生成指示物体边缘集合的准确度的边缘评级。边缘评级可以用于验证或更新初始物体估计。作为一个示例,可以基于以下任一项来生成边缘评级:物体边缘集合中所包括的检测到的边缘的连续性;物体边缘集合中所包括的检测到的边缘的取向;物体边缘集合中所包括的每个检测到的边缘与预定物体尺寸估计信息中的对应边缘之间的相似度;以及图像中的可检测边缘与三维点云之间的重叠。在另一个示例中,可以基于平行边缘集合中的检测到的平行边缘对之间的对准和检测到的边缘交叉相对于初始物体估计中的检测到的三维拐角的对准来生成边缘评级。在一些实施例中,机器人系统100可以生成边缘评级作为检查一个或多个图像以检测边缘的一部分。机器人系统100可以根据边缘评级(诸如通过将每个候选边缘的边缘评级与边缘验证阈值进行比较)来验证检测到的边缘。机器人系统100可以将验证后的候选边缘用作检测到的边缘,并舍弃不满足边缘验证阈值的检测到的边缘。因此,机器人系统100可以进一步提高所得物体检测的准确度。
[0088]
使用检测到的2d/3d边缘或拐角对基于特征的初始物体估计进行检验和/或更新可以提供减少的物体处理故障。检验和更新可以计及计算机视觉或图像处理误差、传感器误差和/或物体表面上的缺陷,由此提高物体检测/定位的准确度。物体检测/定位的准确度提高可以允许机器人系统100针对任务准确地操纵物体。例如,机器人系统100可以提高在com处或附近夹持物体的可能性,这可以减少在物体转移期间由于重量不平衡引起的碰撞和/或夹持故障。
[0089]
此外,分析关于初始物体估计的分析区域内的边缘提供了增大的处理效率。机器人系统100可以通过在分析区域内进行推导和分析来限制分析特征的量。换句话说,机器人系统100可以分析2d/3d图像的部分以检测边缘,推导集群,识别物体边缘集合等,而不是对整个图像进行处理。因此,机器人系统100可以减少验证和/或更新物体估计的处理时间和/或资源。
[0090]
此外,检测边缘、推导边缘集群、检测平行边缘集合以及识别物体边缘集合(例如,基于边缘的物体检测)提供了准确且高效的方式来检测物体。例如,机器人系统100可以消除或减少可能由于仅基于边缘配对进行检测而导致的误报(例如,将由分离的物体的平行边缘界定的空白空间检测为物体)。此外,利用3d验证部件,机器人系统100可以进一步消除或减少误报。而且,推导集群、检测集群中的对、然后识别彼此连接的边缘的集合可以允许机器人系统100高效地执行基于边缘的物体检测,而无需为每个边缘测试多个不同情景。
[0091]
示例性处理系统
[0092]
图9是示出可以在其中实施本文描述的至少一些操作的处理系统900的示例的框图。如图9中所示,处理系统900可以包括与总线916可通信地连接的一个或多个中央处理单元(“处理器”)902、主存储器906、非易失性存储器910、网络适配器912(例如,网络接口)、视频显示器918、输入/输出装置920、控制装置922(例如,键盘和指针装置)、包括存储介质926的驱动单元924,以及信号生成装置930。总线916被示为表示任何一个或多个单独的物理总
线、点对点连接或通过适当的桥接器、适配器或控制器连接的物理总线和点对点连接两者的抽象概念。因此,总线916可以包括例如系统总线、外围部件互连(pci)总线或pci-express总线、hypertransport或工业标准架构(isa)总线、小型计算机系统接口(scsi)总线、通用串行总线(usb)、iic(12c)总线或电气和电子工程师协会(ieee)标准1394总线(也称为“火线”)。
[0093]
在各种实施例中,尽管处理系统900作为用户装置的一部分而操作,但是处理系统900也可以连接(例如,有线或无线地连接)到用户装置。在联网部署中,处理系统900可以在客户端-服务器网络环境中以服务器或客户端机器的能力进行操作,或者在对等(或分布式)网络环境中作为对等机器而操作。
[0094]
处理系统900可以是服务器计算机、客户端计算机、个人计算机、平板计算机、膝上型计算机、个人数字助理(pda)、蜂窝电话、处理器、网络器具、网络路由器、交换机或桥接器、控制台、手持式控制台、游戏装置、音乐播放器、联网(“智能”)电视、电视连接装置,或能够(按顺序或以其他方式)执行指定要由处理系统900采取的动作的指令集的任何便携式装置或机器。
[0095]
尽管主存储器906、非易失性存储器910和存储介质926(也称为“机器可读介质”)被示为单个介质,但是术语“机器可读介质”和“存储介质”也应当被认为包括存储一个或多个指令集928的单个介质或多个介质(例如,集中式或分布式数据库和/或相关联的高速缓存和服务器)。术语“机器可读介质”和“存储介质”也应当被认为包括能够存储指令集、对指令集进行编码或携带指令集以供计算系统执行并且使计算系统执行当前公开的实施例的任何一种或多种方法的任何介质。
[0096]
通常,被执行以实施本公开的实施例的例程可以被实施为操作系统或称为“计算机程序”的特定应用程序、部件、程序、对象、模块或指令序列的一部分。计算机程序通常包括一个或多个指令(例如,指令904、908、928),所述指令在计算机中的各种存储器和存储装置中被设定在不同时间并且在由一个或多个处理单元或处理器902读取和执行时使处理系统900执行操作以执行涉及本公开的各个方面的元件。
[0097]
此外,尽管已经在功能全面的计算机和计算机系统的上下文中描述了实施例,但是本领域技术人员应当明白,各种实施例能够以各种形式作为程序产品来分发,并且本公开同样适用,而不管用于实际进行分发的机器或计算机可读介质的特定类型为何。例如,本文描述的技术可以使用虚拟机或云计算服务来实施。
[0098]
机器可读存储介质、机器可读介质或计算机可读(存储)介质的其他示例包括但不限于:可记录类型的介质,诸如易失性和非易失性存储器装置910、软盘和其他可移动磁盘、硬盘驱动器、光盘(例如,光盘只读存储器(cd rom)、数字多功能磁盘(dvd));和传输类型的介质,诸如数字和模拟通信链路。
[0099]
网络适配器912使得处理系统900能够通过处理系统900和处理系统900外部的实体所支持的任何已知的和/或方便的通信协议来在网络914中利用所述外部实体传导数据。网络适配器912可以包括网络适配器卡、无线网络接口卡、路由器、接入点、无线路由器、交换机、多层交换机、协议转换器、网关、桥接器、桥接路由器、集线器、数字媒体接收器和/或中继器中的一者或多者。
[0100]
网络适配器912可以包括防火墙,所述防火墙在一些实施例中可以管控和/或管理
对计算机网络中的访问/代理数据的权限,并跟踪不同机器和/或应用程序之间的不同的信任水平。防火墙可以是具有能够在一组特定的机器和应用程序、机器与机器和/或应用程序与应用程序之间强制执行一组预定的访问权以例如调节这些不同实体之间共享的流量和资源流的硬件和/或软件部件的任意组合的任意数量的模块。防火墙可以另外管理和/或访问访问控制列表,所述访问控制列表详细描述了包括例如个人、机器和/或应用程序对对象的访问和操作权的权限以及支持所述权限权力的环境。
[0101]
如上文所指示,此处介绍的技术是由例如可编程电路(例如,一个或多个微处理器)实施的,利用软件和/或固件完全在专用硬连线(即,不可编程)电路中编程的,或呈组合形式或类似形式。专用电路可以呈例如一个或多个专用集成电路(asic)、可编程逻辑装置(pld)、现场可编程门阵列(fpga)等形式。
[0102]
根据前文将明白,尽管本文中出于说明目的描述了本发明的特定实施例,但是在不脱离本发明的范围的情况下可以作出各种修改。因此,除受所附权利要求限制之外,本发明不受其他限制。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1