CN112734783B - 用于处理候选边缘的方法和计算系统 - Google Patents
用于处理候选边缘的方法和计算系统 Download PDFInfo
- Publication number
- CN112734783B CN112734783B CN202110114859.5A CN202110114859A CN112734783B CN 112734783 B CN112734783 B CN 112734783B CN 202110114859 A CN202110114859 A CN 202110114859A CN 112734783 B CN112734783 B CN 112734783B
- Authority
- CN
- China
- Prior art keywords
- edges
- spatial structure
- vector
- image information
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30204—Marker
Abstract
提出了一种用于处理候选边缘的方法和计算系统。当空间结构信息和2D图像信息被存储时,可以执行该方法。该方法可以包括:基于空间结构信息,标识表示物体结构的角的3D位置;基于空间结构信息,标识从3D位置延伸并与边缘平行的3D矢量;确定2D图像信息内的对应于3D位置的2D位置;确定2D图像信息内的对应于3D矢量的2D矢量;确定边缘检测区域;标识边缘检测区域内的不表示任何物体边缘的候选边缘的簇;将不是所标识的簇的一部分的候选边缘标识为2D物体边缘;以及基于2D物体边缘执行分段。
Description
本申请是申请日为2020年4月13日、题为“用于处理候选边缘的方法和计算系统”的发明专利申请202010283353.2的分案申请。
技术领域
本公开涉及用于处理候选边缘和/或空间结构信息的计算系统和方法。例如,本文的实施例涉及纹理过滤和边缘检测。
背景技术
随着自动化变得越来越普遍,机器人在更多的环境中使用,例如在仓库和制造环境中。例如,机器人可用于在仓库中将物品装载到托盘上或从托盘上卸下,或在工厂中从传送带上拾取物品。机器人的运动可以是固定的,或者可以基于输入,例如由仓库或工厂中的一个或多个传感器获得的空间结构信息。可以通过根据空间结构数据执行的物体识别来辅助机器人引导。因此,改善物体识别的方法和技术是有价值的。
发明内容
本公开的一个方面涉及一种计算系统、方法和/或具有用于处理候选边缘的指令的非暂时性计算机可读介质。在某些情况下,计算系统可以包括用于执行该方法的处理电路,诸如通过执行指令。在实施例中,当描述一个或多个物体的相应的一个或多个物体结构的空间结构信息存储在非暂时性计算机可读介质上时,并且当描述一个或多个物体的2D图像信息存储在非暂时性计算机可读介质上时,可以执行该方法。在实施例中,该方法可以包括:基于空间结构信息,标识表示一个或多个物体结构中的物体结构的角的3D位置;基于空间结构信息,标识从该3D位置延伸并与物体结构的边缘平行的3D矢量;确定2D图像信息内的对应于该3D位置的2D位置;确定2D图像信息内的对应于该3D矢量的2D矢量;基于该2D位置确定2D图像信息内的边缘检测区域;根据候选边缘与该2D矢量之间的比较,标识边缘检测区域内的不表示一个或多个物体结构的任何物体边缘的候选边缘的簇;将不是所标识的候选边缘的簇的一部分的候选边缘标识为2D物体边缘;以及基于该2D物体边缘对空间结构信息执行分段(segmentation)。
附图说明
图1A至图1F示出了与本文的实施例一致的被配置用于访问和处理空间结构信息和2D图像信息的空间结构感测设备和计算系统。
图2A-2C提供了框图,这些框图示出了与本文的实施例一致的被配置为处理空间结构信息和2D图像信息的计算系统。
图3A和3B提供了流程图,这些流程图示出了根据本发明的实施例的处理2D图像信息中的候选边缘和空间结构信息的方法。
图4A示出了与本文的实施例一致的用于处理空间结构信息和2D图像信息的系统的示例。
图4B-4C示出了与本文的实施例一致的2D图像信息的示例。
图4D-4G示出了与本文的实施例一致的空间结构信息的示例。
图5A-5E示出了与本文的实施例一致的空间结构信息的示例。
图5F-5G示出了与本文的实施例一致的2D图像信息的示例。
图5H-5J示出了与本文的实施例一致的边缘检测区域的示例。
图6A-6F示出了与本文的实施例一致的候选边缘的簇的示例。
图6G示出了与本文的实施例一致的经更新的2D图像信息的示例。
图7A-7D示出了与本文的实施例一致的对空间结构信息的分段的示例。
具体实施方式
本公开提供用于处理空间结构信息(例如,由空间结构感测设备生成的点云)和/或2D图像信息(例如,由2D图像感测设备生成的2D图像)的系统和方法。本文的实施例的一个方面涉及对空间结构信息进行分段。例如,空间结构信息可以表示一组物体(例如,一组盒子),并且可以被分段成表示各个物体(例如,各个盒子)的单独部分。在某些情况下,2D图像信息可以被用于辅助对空间结构信息进行分段。例如,2D图像信息可以包括视觉纹理,该视觉纹理可以是指视觉图案、视觉标记或其他视觉细节。在某些情况下,视觉标记可以形成候选边缘,该候选边缘可以捕获物体之一的物理特征,诸如物理边缘或物理角(其也可以简单地被称为物体之一的边缘或角)。在某些情况下,可能很难仅从空间结构信息中检测出物理特征(例如,内边缘)。因此,在一些示例中,2D图像信息的候选边缘可以被用于提供关于物理特征的信息,这可以有助于对空间结构信息的分段。
本文的实施例的一方面涉及标识可能是伪边缘的候选边缘。伪边缘可以是例如实际上不表示物理边缘或其他物理特征的候选边缘。例如,伪边缘可能与物理边缘在2D图像信息中应如何出现有相似之处,但实际上可能表示某些其他特征(例如,放置在物体上的文本或图形),或者实际上可能是由图像噪声引起的伪像。因此,本文的实施例可以涉及标识伪边缘,以及从2D图像信息中过滤伪边缘,或者在搜索表示物理边缘的候选边缘时从考虑中移除伪边缘。
在某些情况下,可以通过将伪边缘的朝向与角朝向(诸如2D角朝向或3D角朝向)进行比较来标识伪边缘,这将在下面更详细地讨论。3D角朝向可以由例如一个或多个3D矢量定义。在某些情况下,一个或多个3D矢量可以表示从物体的特定物理角延伸的一个或多个物理边缘。该一个或多个3D矢量在某些情况下可以指示一个或多个边缘朝向。在实施例中,可以通过将3D角朝向从空间结构信息的参考框架(其可以被称为3D空间)投影到2D图像信息的参考框架(其可以被称为2D空间)来确定2D角朝向。在这样的实施例中,可以基于伪边缘的朝向是否充分匹配2D角朝向和/或3D角朝向来标识伪边缘。
本文的实施例的一个方面涉及对候选边缘进行聚类(clustering),这可以是指标识2D图像信息的哪些候选边缘应当属于公共簇(cluster)。对候选边缘进行聚类可以例如导致对候选边缘的更高效的处理。例如,聚类可以允许在逐簇(cluster-by-cluster)的基础上而不是在单个候选边缘的基础上从2D图像信息中过滤掉候选边缘。可以基于例如候选边缘的相应朝向之间的相似度,基于哪些候选边缘是共线的,候选边缘之间的接近度,基于任何其他标准,或其任何组合来执行聚类。
图1A示出了用于对空间结构信息进行分段或以其他方式处理的系统100(下面将更详细地讨论空间结构信息)。在图1A的实施例中,系统100可以包括计算系统101、空间结构感测设备151和2D图像感测设备152。在实施例中,空间结构感测设备151可以被配置为生成空间结构信息(也称为空间结构数据),并且可以被配置为使空间结构信息对于计算系统101可用,该计算系统可以被配置为处理空间结构信息。在某些情况下,2D图像感测设备152可以被配置为生成2D图像信息(例如,一个或多个2D图像),这也将在下面更详细地讨论。在某些情况下,计算系统101、空间结构感测设备151和2D图像感测设备152可以位于相同的场所,诸如仓库或工厂。在某些情况下,计算系统101、2D图像感测设备152和/或空间结构感测设备151可以彼此远离。
在实施例中,空间结构感测设备151和/或2D图像感测设备152可以被配置为经由通信接口和/或数据存储设备(其也可以被称为存储设备)使空间结构信息和2D图像信息可用。例如,图1B描绘了系统100A,其是图1A的系统100的实施例。系统100A包括计算系统101、空间结构感测设备151、并且还包括数据存储设备198(或任何其他类型的非暂时性计算机可读介质)。数据存储设备198可以是空间结构感测设备151/2D图像感测设备152的一部分,或者可以与空间结构感测设备151/2D图像感测设备152分离。例如,存储设备198可以位于远离空间结构感测设备151和远离2D图像感测设备152的数据中心中,并且可以接收并存储由空间结构感测设备151生成的空间结构信息和/或由2D图像感测设备152生成的2D图像信息。在该实施例中,计算系统101可以被配置为通过从数据存储设备198检索(或更一般地,接收)空间结构信息和/或2D图像信息来访问空间结构信息和/或2D图像信息。
在图1B中,存储设备198可以包括任何类型的非暂时性计算机可读介质(或多个介质),其也可以被称为非暂时性计算机可读存储设备。这样的非暂时性计算机可读介质或存储设备可以被配置为存储信息并提供对存储的信息(也被称为存储的数据)的访问。非暂时性计算机可读介质或存储设备的示例可以包括但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合,例如诸如计算机软盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、固态驱动器、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)和/或记忆棒。
在实施例中,计算系统101和空间结构感测设备151可以被配置为经由网络传送空间结构信息。类似地,计算系统101和2D图像感测设备152可以被配置为经由网络传送2D图像信息。例如,图1C描绘了系统100B,其是图1A的系统100和/或图1B中的系统100A的实施例。在系统100B中,计算系统101可以被配置为经由网络199从空间结构感测设备151接收空间结构信息,并且经由网络199从2D图像感测设备152接收2D图像信息。网络199可以提供单独的网络连接或一系列网络连接,以允许计算系统101接收与本文的实施例一致的空间结构信息和/或2D图像信息。
在图1C中,网络199可以经由有线或无线链路进行连接。有线链路可能包括数字用户线(DSL)、同轴线缆线或光纤线。无线链路可以包括Bluetooth LowEnergy(BLE)、ANT/ANT+、ZigBee、Z-Wave、Thread、全球微波访问互操作性移动NFC、SigFox、LoRa、随机相位多址(RPMA)、失重N/P/W、红外信道或卫星频段。无线链路还可以包括在移动设备之间通信的任何蜂窝网络标准,包括符合2G、3G、4G或5G的标准。无线标准可以使用各种信道访问方法,例如,FDMA、TDMA、CDMA、OFDM或SDMA。在一些实施例中,可以经由不同的链路和标准来发送不同类型的信息。在其他实施例中,可以通过不同的链路和标准来发送相同类型的信息。网络通信可以通过任何合适的协议来进行,包括例如http、tcp/ip、udp、以太网、ATM等。
网络199可以是任何类型和/或形式的网络。网络的地理范围可以广泛地变化,并且网络199可以是身体局域网(BAN)、个人局域网(PAN)、局域网(LAN)(例如,内部网、城域网(MAN))、广域网(WAN)或互联网。网络199的拓扑可以是任何形式,并且可以包括例如以下任何一种:点对点、总线、星形、环形、网状或树形。网络199可以是本领域普通技术人员已知的能够支持本文描述的操作的任何这样的网络拓扑。网络199可以利用不同的技术和协议层或协议栈,包括例如以太网协议、互联网协议套件(TCP/IP)、ATM(异步传输模式)技术、SONET(同步光联网)协议,或SDH(同步数字体系)协议。TCP/IP互联网协议套件可以包括应用层、传输层、互联网层(包括例如IPv4和IPv4)或链路层。网络199可以是广播网络、电信网络、数据通信网络或计算机网络中的一种类型。
在实施例中,计算系统101、2D图像感测设备152和空间结构感测设备151可以能够经由直接连接而不是网络连接进行通信。例如,在这样的实施例中,计算系统101可以被配置为经由专用通信接口(诸如RS-232接口、通用串行总线(USB)接口)和/或通过本地计算机总线(诸如外围组件互连(PCI)总线)来接收空间结构信息和/或2D图像信息。
图1D示出了系统100C,其可以是系统100的实施例,用于生成和处理空间结构信息和2D图像信息。系统100C包括计算系统101A、空间结构感测设备151A、2D图像感测设备152A、存储设备198和网络199。空间结构感测设备151A被配置为捕获或以其他方式生成空间结构信息,该空间结构信息描述一个或多个物体的结构,诸如物体190A的结构和物体190B的结构(也被称为物体190A的物体结构和物体190B的物体结构)。在实施例中,由空间结构感测设备151/151A生成的空间结构信息可以被用于在三个维度上描述一个或多个物体190A、190B的结构(即,描述一个或多个物体190A、190B的3D结构)。因此,空间结构感测设备151/151A也可以被称为3D感测设备(例如,3D相机)。2D图像感测设备152A被配置为捕获或以其他方式生成2D图像信息,该2D图像信息描述或以其他方式表示一个或多个物体190A、190B的外观,或更具体地表示出现在一个或多个物体190A、190B上的一个或多个视觉特征(例如,视觉纹理)。如果2D图像感测设备152/152A被特别配置为生成一个或多个2D图像,则其也可以被称为2D相机。计算系统101A被配置为访问和处理空间结构信息和2D图像信息。在图1D的实施例中,计算系统101A可以是台式计算机,其是图1A的计算系统101的实施例。
在实施例中,空间结构感测设备151A可以是深度感测相机(例如,飞行时间相机或结构化光相机),其是图1A的空间结构感测设备151的实施例,并且所生成的空间结构信息可以包括深度信息。在实施例中,2D图像感测设备152A可以是彩色相机、灰度相机或其他2D相机。进一步地,在该示例中,计算系统101A可以经由任何合适的手段访问空间结构信息和2D图像信息。例如,计算系统101A可以经由存储设备198、通过网络199、和/或经由与空间结构感测设备151A的直接连接来从空间结构感测设备151A检索(或更一般地,接收)空间结构信息。类似地,可以经由存储设备198、经由网络199、和/或经由与2D图像感测设备152A的直接连接来从2D图像感测设备152A访问2D图像信息。
在实施例中,如上所述,可以生成空间结构信息以促进对机器人的控制。例如,图1E示出了能够生成和处理空间结构信息和/或2D图像信息并基于该处理来控制机器人161的机器人操作系统100D(其是系统100的实施例)。例如,空间结构感测设备151可以是深度感测相机,其被配置为生成空间结构信息(例如,点云),该空间结构信息描述深度感测相机的视场中的一个或多个物体的结构。此外,2D图像感测设备152可以是2D相机,其被配置为生成2D图像信息,该2D图像信息描述2D相机的视场中的一个或多个物体的外观。计算系统101可以被配置为例如接收空间结构信息和/或2D图像信息,并使用这些信息来确定该一个或多个物体的尺寸、形状、位置、朝向,角和/或边缘。在这些情况下,机器人161的运动可以被控制以基于一个或多个物体的所确定的尺寸、形状、位置、朝向,角和/或边缘与该一个或多个物体进行交互。
在实施例中,计算系统101可以被配置为基于通过对空间结构信息和/或2D图像信息的处理确定的信息来直接控制机器人161的运动。例如,计算系统101可以被配置为基于所确定的信息来生成一个或多个运动命令(例如,电动机命令),并且将该一个或多个运动命令传送至机器人161。在这样的示例中,计算系统101可以充当机器人控制系统(也被称为机器人控制器)。
在另一实施例中,计算系统101可以被配置为将所确定的信息传送给与计算系统101分离的机器人控制系统,并且机器人控制系统可以被配置为基于所确定的信息控制机器人161的运动(例如,通过生成一个或多个运动命令)。例如,图1F描绘了包括机器人控制系统162的机器人操作系统100E(其是图1A的系统100和图1E的系统100D的实施例)。更具体地,图1F中的计算系统101、空间结构感测设备151和2D图像感测设备152可以形成视觉系统150,该视觉系统被配置为向机器人控制系统162提供关于机器人161的环境的信息,并且更具体地,关于该环境中的机器人161将要操纵或以某种其他方式与之交互的物体的信息。计算系统101可以用作视觉控制器,其被配置为处理空间结构信息和/或2D图像信息以确定该信息,该信息可以包括例如指示物体的类型、物体的形状或尺寸和/或物体相对于机器人161(例如,相对于机器人161的机器人臂)的位置的分类。计算系统101可以被配置为将所确定的信息传送给机器人控制系统162,该机器人控制系统可以被配置为基于从计算系统101接收到的信息来生成一个或多个运动命令。
如上所述,图1A至图1F的空间结构感测设备151可以被配置为生成空间结构信息,该空间结构信息描述空间结构感测设备151的环境中的一个或多个物体的相应结构。如本文所使用的,空间结构信息是指描述物理物体的物理结构(也被称为物体的结构)的任何类型的信息,并且更具体地,可以包括关于物理物体的形状、朝向、排列、尺寸、角和/或边缘的信息。在实施例中,空间结构信息可以包括位置数据,该位置数据描述该结构相对于空间结构感测设备151、相对于机器人161或相对于某个其他元件的位置。如上所述,空间结构信息可以被用于描述物体的3D结构。因此,空间结构信息也可以被称为3D信息。
在实施例中,空间结构信息可以包括图像数据,并且本文中关于空间结构信息所描述的任何和所有系统、方法和技术,除非另有明确说明,都可以等同地应用于该图像数据,这是空间结构信息的一种形式。例如,空间结构信息可以包括是深度图或包括深度图的图像。深度图可以是具有多个像素并且还包括深度信息的图像。深度信息可以包括例如分配给一些或所有像素或与一些或所有像素包括在一起的相应深度值。特定像素的深度值可以指示由该像素表示或以其他方式对应于该像素的位置的深度。
更具体地,深度信息表示指示沿着与空间结构感测设备151所位于的假想平面正交的轴的距离的信息。在某些情况下,如果空间结构感测设备151是具有图像传感器的相机,则假想平面可以是由图像传感器定义的图像平面。在实施例中,如本文中所使用的深度信息可以指示距空间结构感测设备151的距离。在实施例中,深度信息可以被操纵以表示与平行于空间结构感测设备151所位于的假想平面的任何合适平面的相对距离。例如,合适的平面可以由房间的天花板、地板或墙壁或一个或多个物体位于其上的平台来定义。在一个示例中,如果空间结构感测设备151位于一个或多个物体上方,则深度信息可以表示一个或多个物体的各个点和表面相对于一个或多个物体所位于的表面的高度。在另一示例中,如果一个或多个物体从空间结构感测设备151水平移位或以其他方式水平偏移,则深度信息可以指示一个或多个物体从空间结构感测设备151水平延伸多远。
在实施例中,空间结构信息可以是点云。如本文所使用的,点云可以标识描述物体结构(即,描述物体的结构)的多个点。该多个点可以是例如物体结构的一个或多个表面上的相应位置。在某些情况下,点云可以包括标识或以其他方式描述该多个点的多个坐标。例如,点云可以包括指定物体结构的相应位置或其他特征的一系列笛卡尔坐标或极坐标(或其他数据值)。可以相对于空间结构感测设备151的参考框架(例如,坐标系)或相对于某个其他参考框架来表达相应坐标。在某些情况下,相应坐标是离散的并且彼此间隔开,但是可以理解为表示物体结构的连续表面。在实施例中,可以从深度图或其他信息(例如,由计算系统101)生成点云。
在一些实施例中,空间结构信息还可以根据任何适当的格式存储,诸如多边形或三角形网格模型、非均匀有理基础样条模型、CAD模型、基元的参数化(例如,可以根据中心和在x、y和z方向的延伸来定义矩形,可以通过中心、高度、上半径和下半径等来定义圆柱体等)。
如上所述,空间结构信息是经由空间结构感测设备151捕获或以其他方式生成的。在实施例中,空间结构感测设备可以是3D相机或包括3D相机或任何其他3D图像感测设备。3D相机可以是深度感测相机,诸如飞行时间(TOF)相机或结构化光相机,或任何其他类型的3D相机。在某些情况下,3D相机可以包括图像传感器,诸如电荷耦合器件(CCD)传感器和/或互补金属氧化物半导体(CMOS)传感器。在实施例中,空间结构感测设备151可以包括激光器、LIDAR设备、红外设备、明/暗传感器、运动传感器、微波检测器、超声检测器、RADAR检测器或被配置为捕获空间结构信息的任何其他设备。
在实施例中,如上所述,2D图像感测设备可以是2D相机,诸如彩色相机或灰度相机。2D相机还可包括例如包括图像传感器,诸如电荷耦合器件(CCD)传感器和/或互补金属氧化物半导体(CMOS)传感器。在某些情况下,2D图像信息可以包括形成2D图像的多个像素。2D图像信息的每个像素可以表示例如从对应于该像素的位置反射的光的强度或其他性质。在实施例中,空间结构感测设备151和2D图像感测设备152可以被集成到单个设备中。例如,它们可以被单个壳体包围,并且可以具有固定的相对位置和相对朝向。在某些情况下,它们可以共享单个通信接口和/或单个电源。在实施例中,空间结构感测设备151和2D图像感测设备152可以是两个分离的设备,其可以具有彼此独立的位置和/或朝向。
如上所述,由空间结构感测设备151生成的空间结构信息和/或2D图像信息可以由计算系统101处理。在实施例中,计算系统101可以包括或被配置为服务器(例如,具有一个或多个服务器刀片、处理器等)、个人计算机(例如,台式计算机、膝上型计算机等)、智能电话、平板计算设备和/或任何其他计算系统。在实施例中,计算系统101的任何或所有功能都可以作为云计算平台的一部分来执行。计算系统101可以是单个计算设备(例如,台式计算机),或者可以包括多个计算设备。
图2A提供了示出计算系统101的实施例的框图。计算系统101包括处理电路110和非暂时性计算机可读介质(或多个介质)120。在实施例中,处理电路110包括一个或多个处理器、一个或多个处理核,可编程逻辑控制器(“PLC”)、专用集成电路(“ASCI”)、可编程门阵列(“PGA”),现场可编程门阵列(“FPGA”),其任意组合或任何其他处理电路。在实施例中,非暂时性计算机可读介质120可以是存储设备,诸如电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或其任何合适的组合,例如诸如计算机软盘、硬盘、固态驱动器(SSD)、随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能磁盘(DVD)、记忆棒,其任意组合或任何其他存储设备。在某些情况下,非暂时性计算机可读介质可以包括多个存储设备。在某些情况下,非暂时性计算机可读介质120被配置为存储从空间结构感测设备151接收的空间结构信息和/或从2D图像感测设备152接收的2D图像信息。在某些情况下,非暂时性计算机可读介质120还存储计算机可读程序指令,该计算机可读程序指令在由处理电路110执行时使处理电路110执行在此描述的一种或多种方法,诸如关于图3A和3B所描述的操作。
图2B描绘了计算系统101A,其是计算系统101的实施例并且包括通信接口130。通信接口130可以被配置为例如诸如经由图1B的存储设备198、图1C的网络199、或经由更直接的连接从空间结构感测设备151接收空间结构信息和/或从2D图像传感设备152接收2D图像信息。在实施例中,通信接口130可以被配置为与图1E的机器人161或图1F的机器人控制系统162通信。通信接口130可以包括例如被配置为通过有线或无线协议执行通信的通信电路。例如,通信电路可以包括RS-232端口控制器、USB控制器、以太网控制器、控制器、PCI总线控制器、任何其他通信电路或其组合。
在实施例中,处理电路110可以由存储在存储设备120上的一个或多个计算机可读程序指令来编程。例如,图2C示出了计算系统101B,其是计算系统101的实施例,在计算系统101B中,处理电路110由数据管理器202、分段管理器204和物体识别管理器208编程。将理解的是,本文讨论的各种管理器的功能是表示性的而非限制性的。
在各种实施例中,术语“软件协议”、“软件指令”、“计算机指令”、“计算机可读指令”和“计算机可读程序指令”被用于描述被配置为执行各种任务和操作的软件指令或计算机代码。如本文所使用的,术语“管理器”广义上是指被配置为使处理电路110执行一个或多个功能任务的软件指令或代码的集合。为了方便起见,实际上,当管理器、计算机指令和软件协议对硬件处理器进行编程以执行操作和任务时,各种管理器、计算机指令和软件协议将被描述为执行各种操作或任务。尽管在不同地方被描述为“软件”,但是应当理解,由“管理器”、“软件协议”和“计算机指令”执行的功能可以更一般地实现为固件、软件、硬件或其任何组合。此外,从方法步骤、功能步骤和其他类型的发生的角度来描述本文的实施例。在实施例中,这些动作根据由处理电路110执行的计算机指令或软件协议发生。
在实施例中,数据管理器202是在计算系统101B上运行的软件协议。数据管理器202被配置为访问(例如,接收、检索、存储)空间结构信息和/或2D图像信息,并且执行与计算系统101B正在接收或处理(例如,分析)的空间结构信息和/或2D图像信息有关的任何其他合适的操作。例如,数据管理器202可以被配置为访问存储在非暂时性计算机可读介质120或198中的空间结构信息和/或2D图像信息,或者经由图1的网络199和/或图2B的通信接口130来访问。数据管理器202还可以被配置为通过网络199与其他设备、与数据存储单元198、与非暂时性计算机可读介质120、与空间结构感测设备151和/或与2D图像感测设备152进行交互,以请求、检索、访问、发送、存储或以其他方式对空间结构信息和/或2D图像信息执行操作。
在各实施例中,数据管理器202还被配置为向用户提供访问工具以管理和操纵空间结构信息和/或2D图像信息。例如,数据管理器202可以被配置为生成和/或提供对数据库、表、文件存储库和其他数据存储结构的访问。在各实施例中,数据管理器202可以提供数据保留能力。数据管理器202被配置为访问存储设备120、数据存储单元198和其他存储器单元以存档、存储和/或以其他方式保留空间结构信息以及在计算机系统101B的处理期间生成的任何其他信息。
在实施例中,分段管理器204可以被配置为将空间结构信息划分为多个分段。例如,如果空间结构信息表示用于一组单个物体的结构,诸如彼此相邻放置的一组单个盒子,则分段管理器204可以被配置为标识空间结构信息的对应于各个物体的相应部分。在另一个示例中,分段管理器204可以被配置为标识空间结构信息的对应于单个物体之一的相应一部分,并从空间结构信息中提取该部分。在实施例中,分段管理器204可以是在控制系统101B上操作的软件协议。
在实施例中,物体识别管理器208可以被配置为基于空间结构信息来执行物体识别。例如,如果分段管理器204提取了空间结构信息的对应于一组物体中的单个物体的相应一部分,则物体识别管理器208可以被配置为基于空间结构信息的所提取的一部分来执行物体识别。在实施例中,物体识别管理器208可以是在计算系统101上操作的软件协议。在实施例中,物体识别管理器208可以被配置为基于空间结构信息生成检测假设(detectionhypothesis),如下面更详细地讨论的。
图3A和3B提供了流程图,这些流程图示出了用于处理空间结构信息的方法300的示例操作。在一个示例中,方法300可以是机器人与多个物体(例如,一组盒子或其他包裹)交互的过程的一部分。例如,图4A示出了实施例,其中空间结构信息是针对放置在平台490(例如,仓库的地板)的表面491上的一系列物理物体410、420、430、440(也被称为一系列物体410-440)生成的。物体410-440可以是例如将由机器人161A(其可以是图1E和1D的机器人161的实施例)拾取或以其他方式移动的一组盒子或其他包裹。
在实施例中,空间结构信息是物体410-440的结构(其也可以被称为物体410-440的相应物体结构)的信息化表示。空间结构信息可以由空间结构感测设备151A(例如3D相机)感测、捕获或以其他方式生成。在某些情况下,空间结构信息可以描述物体410-440的一个或多个表面(例如,面对相机或以其他方式在空间结构感测设备151A和/或2D图像信息感测设备152A的视场内的顶表面)上的多个位置的(例如,相对于空间结构感测设备151A的)相应深度值,该一个或多个表面诸如是物体410的表面411(也被称为物体410的物体结构的表面411)、物体420的表面421、物体430的表面431和物体440的表面441(也被称为表面411-441)。关于图4D-4G进一步详细地解释了空间结构信息。
在实施例中,2D图像信息感测设备152A(其可以是图1A的2D图像感测设备152的实施例)可以被配置为感测、捕获或以其他方式生成描述例如物体410-440的相应表面411-441的外观的2D图像信息。如上所述,2D图像感测设备152A可以是例如2D相机。关于图4B和4C进一步详细地解释了2D图像信息。
图4B示出了描述或以其他方式表示图4A的物理物体410-440的物理表面411-441(也被称为物体410-440的表面411-441)的2D图像信息500。更具体地,图4B示出了形成2D图像信息500或由2D图像信息500描述的2D图像,其中2D图像表示物体410-440的外观。如图4B中所示,2D图像信息500包括关于物体410-440的表面(诸如表面411-441)上的视觉特征的信息,或更一般地,关于由2D图像感测设备152A感测的视觉特征的信息。视觉特征可以包括例如视觉纹理,其可以是指视觉图案、视觉标记或其他视觉细节。视觉纹理也可以被称为2D纹理。因此,在某些情况下,2D图像信息500可以被称为是2D纹理信息或包括2D纹理信息(也被称为2D纹理数据)。在各实施例中,2D图像信息500不包含深度信息。
在实施例中,视觉纹理可以包括被印刷或以其他方式位于物体410-440的一个或多个表面411-441上的一个或多个视觉标记(诸如在表面411-441之一上形成徽标的视觉标记、在表面411-441之一上形成文本的视觉标记或任何其他视觉标记)或由其形成。在实施例中,视觉纹理可以包括作为2D图像信息500中的由图像噪声引起的伪像的一个或多个视觉标记或由该一个或多个视觉标记形成。在实施例中,2D图像信息中的视觉纹理可以表示一个或多个表面411-441上的3D纹理,诸如在表面411-441中之一各自均具有波纹结构的示例中,
如图4B和4C所示,2D图像信息500可以捕获或以其他方式表示物体410-440的物理特征。例如,物理特征可以包括一个或多个物理角和/或物理边缘(也被称为一个或多个角和一个或多个边缘)。更具体地,2D图像信息500包括捕获或以其他方式表示物体410的角415A(也被称为物体410的物体结构的角)、物体420的角425A、物体430的角435A和物体440的角445A的各部分(例如,像素)。2D图像信息500还包括捕获或以其他方式表示物体410的边缘416A-416D、物体420的边缘426A-426D、物体430的边缘436A-436D和物体440的边缘446A-446D的各部分(例如,像素)。如图4C中所示,这些边缘中的一些边缘可以是外边缘,而其他边缘可以是内边缘。例如,边缘416A和边缘416B可以是物体410的外边缘,而边缘416C和416D可以是物体410的内边缘。
在实施例中,2D图像信息500还可以捕获或以其他方式包括候选边缘,诸如图4B中的候选边缘561A、561B、561C、561D、563A和563B。在某些情况下,候选边缘可以是这样的视觉标记,该视觉标记与由2D图像信息500描述的物体的物理边缘应如何出现是一致的。即,候选边缘可能这样的属性,即,该属性具有使该候选边缘成为候选的或以其他方式有资格被识别为表示物体物理边缘。例如,如果已知物体410-440具有直边缘,则在2D图像信息500中形成直线的视觉标记可以是候选边缘。例如,图4B描绘了候选边缘561A、561B和561C,其分别表示物体410的图4C的物理边缘416A、416B和416C。在某些情况下,2D图像信息500可能包括作为伪边缘的候选边缘。伪边缘可以是实际上不表示由2D图像信息描述的任何物体的物理边缘的候选边缘。例如,图4B将候选边缘563A和564A描绘为出现在2D图像信息500中的伪边缘的示例。在某些情况下,2D图像信息500中的候选边缘可以形成其视觉纹理的至少一部分。如下面更详细地讨论的,本文的实施例的一个方面涉及单个地或成簇地标识可能是伪边缘的候选边缘,并过滤掉这些伪边缘,或者从考虑中移除可能的伪边缘,以便提高从其余候选边缘中正确标识实际上表示物体的物理边缘的候选边缘的机会。后面的这种候选边缘可以被用于执行以下讨论的对空间结构信息400/400A的分段,并且可以被称为分段边缘。
图4D示出了空间结构信息400的示例,其描述了图4A的物理物体410-440的相应结构(也被称为物体410-440的相应物体结构)。更具体地,该图示出了由空间结构信息400表示的物体410-440的图4A的表面411-441中的一个或多个表面上的多个物理点(也被称为点)。点云是与本文的实施例一致的空间结构信息400的一个示例。在实施例中,该多个点可以是物体410-440的一个或多个表面(例如,411、421、431和441)上的位置(也被称为物理位置)。例如,空间结构信息400可以是点云,该点云包括或以其他方式指示图4D中的多个点中的每个点的相应坐标(例如,[X Y Z]T坐标)。在某些情况下,特定点的坐标的一个分量(例如,Z分量)可以表示该点相对于空间结构感测设备151/151A的深度值。例如,特定点的深度值可以是在该点与空间结构感测设备151A之间沿图4A中的轴480测量的距离。轴480可以是例如与空间结构感测设备151A的图像平面470正交的光轴。由空间结构信息400表示的物理点的密度可以大于或小于图4D所示的密度,这取决于空间结构感测设备151/151A的分辨率。出于说明的目的,图4D和图4E示出了空间结构信息400,其被示出为具有多个点,该多个点在表面411-441以及空间结构信息400的与物体410-440的垂直于表面411-441的侧面(也被称为垂直表面)对应的各部分上。然而应理解,空间结构信息400可以不包括与垂直表面上的深度测量值对应的点,这诸如是由于空间结构感测设备151/151A的视线或视场。
如图4E所示,图4D的空间结构信息400可以包括表示属于第一物体410(或更具体地,属于第一物体的物体结构的表面)的物理点的第一部分410A、表示属于第二物体420的物理点的第二部分420A、表示属于第三物体430的物理点的第三部分430A、和表示属于第四物体440的物理点的第四部分440A。图4E还将空间结构信息400描绘为表示物体410的物理角415A、415B(也称为角415A,415B),物体420的角425A,物体430的角435A、435B以及物体440的角445A、445B。更具体地,空间结构信息400可以包括精确地等于角(例如,415A、415B、425A、435A、435B、445A、445B)的相应位置的坐标,或者近似于角的相应位置的坐标。在某些情况下,空间结构信息400可以不包括关于物体410、420、430、440中的所有角的完整信息。例如,角415B、435B和445B可能由于被空间结构感测设备151A遮挡而不能被准确地捕获。例如,如图4D和图4E所示,空间结构信息400可以包括表示角415A的坐标[X1 Y1 Z1]T。该坐标可以是空间结构信息400的所有坐标中与角415A的位置最接近的坐标。该坐标[X1 Y1 Z1]T可以精确地等于角415A的位置,或者可以基本上等于角415A的位置。
图4E还将空间结构信息400描绘为表示物体410的物理边缘416A、416B、416E(也被称为边缘416A、416B、416E),物体420的边缘426A和426B,物体430的边缘436A、436B,和物体440的边缘446A、446B。在某些情况下,空间结构信息400可以不包括关于物体410、420、430、440中所有物理边缘的完整信息。更具体地,空间结构信息400可以包括精确落在边缘(例如,416A、416B、426A、426B、436A、436B、446A、446B)上的坐标,或者大致落在边缘上的坐标。例如,如图4D和图4E所示,空间结构信息可以包括表示物体410的边缘416A的坐标[X1 Y1Z1]T、[X2 Y1 Z1]T和[X3 Y1 Z1]T。这些坐标可以是空间结构信息400中与边缘416A最接近的坐标。
图4F提供了空间结构信息400A的示例,其可以具体地表示具有相同深度值的点。更具体地,空间结构信息400A可以表示在图4A的物体410-440的表面411-441(例如,顶表面)上的多个点,其中,由空间结构信息400A表示的该多个点可以都具有深度值Z1。如图4F所示,空间结构信息400A可包括表示物体410的表面411上的点的第一部分411A、表示物体420的表面421上的点的第二部分421A、表示物体430的表面431上的点的第三部分431A、以及表示物体440的表面441上的点的第四部分441A。类似于图4D和4E的空间结构信息400,图4F的空间结构信息400A还可以表示例如物体410-440的角415A、425A、435A、445A以及边缘416A、416B、426A、426B、436A、436B、446A和446B。在某些情况下,图4F的空间结构信息400A可以是图4D和4E的空间结构信息400的一部分,并且可以从空间结构信息400中提取。在某些情况下,空间结构信息400A可以是图4G中描绘的空间结构信息400B的一部分,并且可以从空间结构信息400B中提取。更具体地,图4G的空间结构信息400B可以表示物体410-440的表面411-441上的点以及图4A的平台490的表面491上的点。在图4G的示例中,空间结构信息400B可以指示物体410-440的表面411-441上的物理点的深度值Z=Z1,并且指示平台490的表面491上的物理点的深度值Z=Z2。
在实施例中,空间结构信息400/400A可以包括深度图,其可以具有多个像素[u,v],并且该多个像素中的一些或全部可以具有深度值。深度图中的每个像素可以对应于由该像素捕获或以其他方式表示的相应物理点(也被称为物理位置),并且深度值可以指示空间结构感测设备(例如,图4A的151A)与该特定物理点的距离。物理点可以在例如物体410-440的一个或多个表面411-441上。在某些情况下,距离可以是沿着轴480测量的。在某些情况下,分配给像素[u,v]的深度值可以表示对应物理点的坐标的Z分量。例如,空间结构感测设备151A可以是深度感测相机。在这种情况下,深度图中的特定像素[u,v]可以对应于物体410-440的表面411-440上的或平台490的表面491上的物理点,其中该物理点具有坐标[X,Y,Z]T。坐标的X分量和Y分量可以基于深度感测相机的逆投影矩阵,并且坐标的Z分量可以等于或以其他方式基于分配给像素[u v]的深度值(坐标[X Y Z]T可以在深度感测相机的参考框架(例如,坐标系)中)。
在实施例中,空间结构信息400可以包括点云。如上所述,点云可以包括多个坐标,这些坐标标识物体结构上,或更具体地,物体结构的表面(诸如,物体410的物体结构上的表面411)上的多个点。在实施例中,如果空间结构信息400包括点云,则该点云在某些情况下可以是基于上述深度图(例如,由空间结构感测设备151或图1A-2C的计算系统101)生成的。
返回图3A和3B,当描述一个或多个物体的相应物体结构的空间结构信息(例如400)被存储在计算系统101的非暂时性计算机可读介质120上时,并且当描述一个或多个物体的2D图像信息(例如500)被存储在计算系统101的非暂时性计算机可读介质(例如,120)中时,该方法可以由图2A至2C的计算系统101执行,更具体地由处理电路110执行。该一个或多个物体的相应物体结构也可以被称为该一个或多个物体的相应结构。在实施例中,图2A至2C的非暂时性计算机可读介质120还可以存储多个指令(例如,计算机程序指令),当由处理电路110执行时,这些指令使处理电路110执行方法300。
在实施例中,图3A和3B的方法300包括操作302,在操作302中,(图2A-2C的)计算系统101的处理电路110访问描述物体的结构(也被称为物体结构)的空间结构信息(例如,图4D-4F的400/400A)。在某些情况下,操作302可以由图2C的数据管理器202执行。在实施例中,访问空间结构信息(例如,400/400A)可以涉及从非暂时性计算机可读介质120或从任何其他设备检索(或更一般地,接收)空间结构信息(例如,400/400A)。在某些情况下,空间结构信息(例如,400/400A)可能已经由空间结构感测设备151/151A生成并由计算系统101从空间结构感测设备151/151A接收(诸如经由图2B的通信接口130),并且可能已经被存储在非暂时性计算机可读介质120中,非暂时性计算机可读介质120可以为空间结构信息提供临时缓冲区或长期存储。例如,空间结构信息(例如,400/400A)可以包括从空间结构感测设备151接收并存储在非暂时性计算机可读介质120中的点云。该点云然后在操作302中可以被处理电路110访问。
在某些情况下,被访问的空间结构信息(例如,400/400A)可以被存储在非暂时性计算机可读介质120中,并且可能已经由处理电路110本身基于从空间结构感测设备151/151A接收到的信息而预先生成。例如,处理电路110可以被配置为基于从空间结构感测设备151/151A接收到的原始传感器数据来生成点云,并且可以被配置为将所生成的点云存储在非暂时性计算机可读介质120中。该点云然后在操作302中可以被处理电路110访问(例如,通过从非暂时性计算机可读介质120中检索数据)。
返回参考图3A和3B,方法300还可以包括操作304,在操作304中,计算系统101的处理电路110基于空间结构信息(例如,400/400A)标识表示物体结构的角的3D位置,该物体结构可以是由空间结构信息表示的物体(例如,410/420/430/440)的结构。表示角的该3D位置也可以被称为3D角位置或3D物体角。例如,现在参考图5A和5B,在操作304中,处理电路110可以基于空间结构信息400/400A来标识表示物体410的角415A的第一3D位置405A、表示物体420的角425A的第二3D位置405B、表示物体430的角435A的第三3D位置405C、以及表示物体440的角445A的第四3D位置405D(也可以被统称为3D位置405A-405D)。
在图5A和5B的示例中,3D位置405A-405D中的每一个可以由3D坐标(诸如[X Y Z]T坐标)描述。例如,如图4D所示,图5A和5B中的3D位置405A可以具有3D坐标[X1 Y1 Z1]T。在某些情况下,3D位置(例如405A)的3D坐标可以是相对于空间结构信息400/400A的参考框架(例如,坐标系)来表达的,该参考框架也可以是空间结构感测设备152/152A的参考框架。在实施例中,从空间结构信息400/400A确定的并且表示物体的对应物理角(例如,物理角415A)的3D位置(例如405A)可以精确地标识该物理角所在的位置,或可以近似于该物理角所在的位置。例如,3D位置405A的3D坐标[X1 Y1 Z1]T可以表示物体410的物体结构的物理角415A的精确位置,或者可以近似于物理角415A所在的位置。在某些情况下,3D位置(例如405A)可以是在空间结构信息400/400A中描述的其他位置中与对应的物理角(例如415A)最靠近的位置。可以通过任何合适的方式从空间结构信息(例如,400/400A)中标识3D位置,其也可以被称为3D物体角(例如405A-405D)。例如,在实施例中,可以根据对从空间结构信息中的各个层中标识出的多个顶点的分析来标识表示物体结构的角的3D位置,如2019年9月23日提交的第16/578,900号美国专利申请中所述,该美国专利申请的全文以引用的方式并入本文中。例如,在操作304中确定的3D位置可以是凸角的位置,如第16/578,900号美国专利申请中所讨论的。在实施例中,3D位置(例如405A)可以是由空间结构信息(例如,400/400A)描述的点(例如,位置)的轮廓的角。
返回参考图3A和3B,方法300还可包括操作306,在操作306中,计算系统101的处理电路110基于空间结构信息(例如,400/400A)标识3D矢量,该3D矢量从3D位置开始延伸,并与物体结构的物理边缘(也被称为物体结构的边缘)平行。更具体地,3D位置可以表示物体的结构的角,并且该3D矢量可以与物体的边缘平行。3D矢量可以表示边缘,并且因此可以被称为3D边缘或3D物体边缘。例如,图5C和5D描绘了一个示例,其中处理电路110标识从3D位置405A延伸并且与物体410的边缘416A平行的3D矢量406A-1。在某些情况下,该3D矢量可以由至少两个3D坐标(例如,正好两个3D坐标)定义。例如,3D矢量406A-1可以由[X1 Y1 Z1]T和[X2Y2 Z2]T定义。3D矢量(例如406A-1)可以指示例如朝向。在某些情况下,3D矢量还可以指示(例如,从[X1 Y1 Z1]T到[X2 Y2 Z2]T的)方向性和/或大小(例如,由[X1 Y1 Z1]T到[X2 Y2 Z2]T之间的距离定义的大小)。在某些情况下,3D矢量406A-1可以被用于定义具有特定朝向和/或位置的线,并且可不具有方向性指示,和/或不具有大小指示。
在实施例中,3D矢量406A-1可以包括在由空间结构信息400/400A描述的点的最外围上的点(例如,位置)。例如,形成3D矢量406A-1的坐标[X1 Y1 Z1]T和[X2 Y2 Z2]T可以属于形成由空间结构信息400/400A描述的所有点中的最外围的点,并且因此表示由空间结构信息400/400A描述的点的边缘。在某些情况下,3D矢量(例如406A-1)可以精确地落在它所表示的边缘(例如416A)上并且因此精确地指示了边缘所在的位置,或者可以近似于边缘所在的位置。此外,3D矢量(例如406A-1)可以指示边缘(例如416A)的朝向,该朝向也可以被称为3D边缘朝向。
在实施例中,确定3D矢量(例如406A-1)可以是确定3D角朝向的一部分。3D角朝向可以是指由3D位置表示的物理角的朝向(例如,方向)的和/或形成该角的物体的形状。在某些情况下,可以由多个矢量来定义3D角朝向。更具体地,物理角可以是两个或更多个物理边缘的相交。例如,图5E将物体410的角415A描绘为边缘416A和416B的相交或边缘416A、416B和416E的相交。在该示例中,表示物理角415A的3D位置405A可以由多个3D矢量(诸如矢量406A-1和406A-2)表示,或者由图5E中的矢量406A-1、406A-2和406A-3表示。如上所述,矢量406A-1可以与边缘416A平行,而矢量406A-2可以与边缘416B平行,并且矢量406A-3可以与边缘416E平行。此外,矢量406A-1、406A-2和406A-3可以在与对应的边缘416A、416B、416E相对应的相应方向上背离表示角415A的3D位置405A。在实施例中,矢量406A-1、406A-2和406A-3可以向内指向由空间结构信息400表示的其他点。在该示例中,由3D位置405A表示的角415A的3D角朝向可以由3D矢量406A-1、406A-2、406A-3中的至少两个来定义。例如,可以由这三个矢量中的全部矢量来定义3D角朝向。如果三个矢量406A-1、406A-2、406A-3正交,则所得的3D位置可以表示一个方角。
在实施例中,控制电路110可以多次执行操作304和306以标识表示一个或多个物体的相应角(或更具体地,一个或多个物体结构的相应角)的多个3D位置。例如,如图5E和4E所示,控制电路110可以标识表示物体420的角425A的3D位置405B、表示物体430的角435的3D位置405C、和/或表示物体440的角445A的3D位置405D。在某些情况下,控制电路110还可以标识这些角中的每个角的3D角朝向。例如,控制电路110可以标识3D矢量406B-1至406B-3,其定义了由3D位置405B表示的角425A的3D角朝向。控制电路110还可以标识3D矢量406C-1至406C-3,其可以定义由3D位置405C表示的角435A的3D角朝向。控制电路110还可以标识3D矢量406D-1至406D-3,其可以定义由3D位置405D表示的角445A的3D角朝向。
在实施例中,以上讨论的3D矢量(例如,406A-1至406A-3)可以表示对应的物理边缘(例如,416A、416B、416E),并且可以被称为3D边缘或3D物体边缘。如上所述,3D矢量可以指示3D矢量对应的物理边缘的精确位置,或者可以近似于3D矢量对应的物理边缘的位置。
返回参考图3A和3B,方法300还可包括操作308,在操作308中,计算系统101的处理电路110获得、访问或以其他方式接收2D图像信息(例如2D图像信息500)。如上所述,2D图像信息500可以包括从物体表面(例如,物体410-440的表面411-441)上的视觉特征检测到的信息。视觉特征可以包括视觉纹理,其可以由视觉图案、视觉标记或其他视觉细节形成。在实施例中,如上所述,2D图像信息可以包括或以其他方式描述候选边缘,这些候选边缘可以由例如视觉标记中的一些或全部形成。在某些情况下,操作308可以由图2C的数据管理器202执行。在实施例中,获得或访问2D图像信息500可以涉及从图2A-2C的非暂时性计算机可读介质120或从任何其他设备检索(或更一般地,接收)2D图像信息500。在某些情况下,2D图像信息500可能已经由计算系统101从图1A-1F的2D图像感测设备152/152B接收(诸如经由图2B的通信接口130),并且可能已经存储在非暂时性计算机可读介质120中,非暂时性计算机可读介质120可以为2D图像信息提供临时缓冲区或长期存储。例如,2D图像信息500可以包括从2D图像感测设备152接收并存储在非暂时性计算机可读介质120中的图像存储图案、纹理和其他视觉信息。2D图像信息然后可以被处理电路110在操作308中访问。
在某些情况下,被访问的2D图像信息可以被存储在非暂时性计算机可读介质120中,并且可能已经由处理电路110本身基于从2D图像感测设备152接收到的信息预先生成。例如,处理电路110可以被配置为基于从2D图像感测设备152接收的原始传感器数据来生成2D图像,并且可以被配置为将所生成的2D图像存储在非暂时性计算机可读介质120中。然后,在随后的操作中,处理电路110可以访问2D图像(例如,通过从非暂时性计算机可读介质120检索数据)。
返回参考图3A和3B,方法300还可以包括操作310,在操作310中,计算系统101的处理电路110确定2D图像信息(例如,500)内对应于步骤304的物体的3D位置的2D位置。在某些情况下,该2D位置可以是步骤304的3D位置的投影,如下面更详细地讨论的,并且可以被称为经投影的2D角。在某些情况下,该2D位置可以包括2D坐标或可以由2D坐标定义,诸如由2D图像信息内的像素坐标[u v]T。在这样的情况下,2D图像信息可以是形成2D图像的多个像素,或者可以包括形成2D图像的多个像素。例如,现在参考图5F,处理电路110可以标识对应于图5A至5D的3D位置405A的2D位置505A。2D位置505A也可以表示物体410的角415A。更具体地,2D位置505A可以精确地指示角415A所在的位置或者可以近似于角415A所在的位置。
在实施例中,可以通过将3D位置405A从空间结构信息400/400A的参考框架(其可以被称为3D空间)投影到2D图像信息500的参考框架(其可以被称为2D空间)来确定2D位置505A。在某些情况下,空间结构信息400/400A的参考框架可以是例如相对于空间结构感测设备151/151A定义的3D物理坐标系,而2D图像信息500的参考框架可以是例如相对于2D图像感测设备152/152A定义的像素坐标系。作为示例,投影操作可以基于空间结构感测设备151/151A和2D图像感测设备152/152A之间的空间关系(例如,相对位置和/或相对朝向),并且基于2D图像感测设备152/152A的投影矩阵。该空间关系可以由被配置为将表示空间结构感测设备151/151A的3D坐标系中的3D位置405A的3D坐标(例如,[X Y Z]T)转换成表示2D图像感测设备152/152A的3D坐标系中同一3D位置405A的另一个3D坐标(例如,[X’ Y’ Z’]T)的变换函数(例如矩阵)来表示。更具体地说,该转换可以表示为:
在该示例中,可以是变换函数,并且更具体地可以是描述空间结构感测设备151/151A和2D图像感测设备152/152A之间的空间关系(例如,相对位置和/或相对朝向)的矩阵。在某些情况下,该变换函数可以被存储在非暂时性计算机可读介质120中,并且可以已经被手动确定,或者可以已经经由例如立体校准操作来确定。
在以上示例中,处理电路110可以被配置为基于2D图像感测设备152/152A的投影矩阵来确定定义2D位置505A的像素坐标[u v]T。该确定可以被表示为:
在以上示例中,K可以是2D图像感测设备152/152A的投影矩阵。该投影矩阵可以例如被存储在非暂时性计算机可读介质120中,并且可以已经从相机校准操作确定。在某些情况下,确定像素坐标还可以考虑由2D图像感测设备152/152A引入的任何镜头失真。在实施例中,控制电路110可以多次执行操作310,以便标识对应于多个3D位置的多个2D位置。例如,如图5F所示,控制电路110可以标识2D位置505B,其对应于表示物体420的角425A的3D位置405B。控制电路110还可以标识2D位置505C/505D,其对应于表示物体430/440的角435A/445A的3D位置405C/405D。
返回参考图3A和3B,方法300还可以包括操作312,在操作312中,计算系统101的处理电路110确定与操作306的3D矢量对应的2D矢量。在实施例中,该2D矢量可以是该3D矢量的投影,如下面更详细地讨论的,并且因此可以被称为经投影的2D边缘或经投影的2D物体边缘。例如,参考图5F,处理电路110可以标识与对应于图5C-5E的3D矢量406A-1的2D矢量506A-1。在实施例中,2D矢量506A-1可以由至少两个2D坐标(例如,正好两个2D坐标)定义,诸如至少由两个像素坐标[u1 v1]T和[u2 v2]T定义。2D矢量506A-1可以指示例如朝向。在某些情况下,2D矢量506A-1还可以指示方向性(例如,从[u1 v1]T到[u2 v2]T)和/或大小(例如,由[u1 v1]T到[u2 v2]T之间的距离定义的大小)。在某些情况下,2D矢量506A-1可以被用于定义具有特定朝向和/或位置的线,并且可不具有方向性指示,和/或不具有大小指示。
在实施例中,处理电路110可以通过将3D矢量406A-1从空间结构信息400/400A的参考框架投影到2D图像信息500的参考框架来标识2D矢量506A-1,如上面所讨论的。例如,投影操作可以涉及投影部分或完全定义3D矢量406A-1的3D坐标[X1 Y1 Z1]T和[X2 Y2 Z2]T,以分别获得2D像素坐标[u1 v1]T和[u2 v2]T。投影操作可以与上面关于在步骤310中确定2D位置所描述的类似或相同。在实施例中,2D矢量506A-1可以至少部分地由两个2D像素坐标定义。在某些情况下,2D矢量506A-1可以表示3D矢量406A-1的经投影的朝向,其也可以被称为经投影的边缘朝向或经投影的2D边缘朝向。
在实施例中,确定2D矢量506A-1可以是确定由步骤310的2D位置和/或步骤304的3D位置表示的角的2D角朝向的一部分。在某些情况下,2D角朝向可以是3D角朝向从空间结构信息400/400A的参考框架到2D图像信息500的参考框架的投影。如上所述,由3D位置(例如405A)表示的角的3D角朝向可以是指例如物体结构的相对于该角的朝向,并且可以由多个矢量(例如406A-1、406A-2、406A-3)定义。在实施例中,由2D位置(例如505A)表示的角(例如415A)的2D角朝向可以是指物体的表面(例如,物体410的表面411)相对于该角如何被定向。在某些情况下,可以由两个或多个2D矢量定义2D角朝向。例如,如图4C和5G所示,可以由矢量506A-1和506A(如图5G所示)定义由2D位置505A表示的物体410的角415A(如图4C所示)的2D角朝向。此外,在该示例中,可以由矢量506B-1和506B-2来定义由2D位置505B表示的物体420的角425A的2D角朝向。可以由矢量506C-1和506C-2来定义由2D位置505C表示的物体430的角435A的2D角朝向。可以由矢量506D-1和506D-2来定义由2D位置505D表示的物体440的角445A的2D角朝向。为了简便起见,物体410-440的物体结构可以被称为从角415A-445A向内延伸,并且2D矢量(例如,506A-1、506A-2至506D-1、506D-2)也可以被称为向内延伸。
在实施例中,处理电路110可以被配置为通过对定义3D角朝向的一个或多3D矢量进行投影以确定将定义2D角朝向的一个或多个相应的2D矢量,来对上述的3D角朝向进行投影以获得2D角朝向。例如,如图5E和5G所示,处理电路可以通过对定义角415A的3D角朝向的至少两个3D矢量(例如,406A-1和406A-2)进行投影来确定由2D位置505A表示的角415A的2D朝向。投影操作可以产生两个相应的2D矢量(例如506A-1和506A-2),其定义由2D位置505A表示的角415A的2D角朝向。在某些情况下,如果这两个2D矢量正交,则它们可能表示方角。在实施例中,处理电路110可以被配置为对其他角的3D角朝向(例如,图4C的425A、435A、445A)进行投影以确定对应的2D角朝向。例如,处理电路110可以被配置为通过将两个对应的3D矢量(诸如图5E的406B-1和406B-2)从3D空间投影到2D空间来确定2D矢量506B-1和506B-2,2D矢量506B-1和506B-2可以定义由2D位置505B表示的角的2D角朝向。处理电路110还可以以类似的方式确定2D矢量506C-1和506C-2和/或2D矢量506D-1和506D-2。这些矢量可以分别定义由2D位置505C和505D表示的角的相应2D角朝向。
返回参考图3A和3B,方法300还可以包括操作314,在操作314中,计算系统101的处理电路110确定边缘检测区域,诸如图5H中的边缘检测区域520或图5I中的边缘检测区域521。在实施例中,边缘检测区域(例如520/521)可以是2D图像信息500的区域,在该区域中,处理电路110可以尝试标识物体的物体边缘,诸如物体边缘416C/436C。即,处理电路110可以在边缘检测区域520/521中搜索由2D图像信息表示的各个物理物体的一个或多个边缘。在实施例中,处理电路可以尝试从出现在边缘检测区域520/521中或以其他方式被包括在边缘检测区域520/521中的候选边缘中标识物体边缘。
在实施例中,基于在步骤310中标识的2D位置、在步骤312中标识的2D矢量和/或以上讨论的2D角朝向,来确定2D图像信息500内的边缘检测区域520/521。例如,参考图5H,边缘检测区域520可以是2D图像信息500的具有位于在步骤310中确定的2D位置(例如505A)处的角的区域。在某些情况下,该区域可以具有与2D角朝向匹配的朝向。例如,区域520的边界(也被称为区域520的边缘)可以具有与定义2D角朝向的2D矢量506A-1相同的朝向。
在实施例中,处理电路可以基于定义的最大物体尺寸来确定边缘检测区域520的尺寸和/或位置。边缘检测区域520的尺寸可以是指例如边缘检测区域520的一个或多个维度,诸如其长度和宽度(例如,以像素为单位)。所定义的最大物体尺寸(其也可以称为最大候选尺寸)可以是指例如一个或多个维度,诸如预期被放置在空间结构感测设备151/151A和/或2D图像感测设备152/152A的视场中的最大物体的长度和宽度(例如,以厘米为单位)。在某些情况下,所定义的最大物体尺寸可以具有预定义的并被存储在非暂时性计算机可读介质120中的(一个或多个)值。在一个示例中,处理电路110可基于2D图像感测设备152/152A的投影矩阵或基于由该投影矩阵指示的焦距和图像传感器尺寸,来确定指示多少个像素对应于所定义的最大物体尺寸的长度的第一计数,以及指示多少个像素对应于所定义的最大物体尺寸的宽度的第二计数。在该示例中,边缘检测区域520可以具有等于第一计数的长度和等于第二计数的宽度。在该实施例中,具有等于或小于所定义的最大物体尺寸的尺寸的任何物理物体应当投影到2D图像信息500的适合于边缘检测区域520内的区域。因此,处理电路110可以在边缘检测区域520内搜索物体边缘,并且不在边缘检测区域520外搜索物体边缘。在实施例中,边缘检测区域520可以是矩形区域,该矩形区域具有在2D位置505A处重合并且沿由2D角朝向指示的方向延伸的角。更具体地,如果2D矢量指示方向性,则边缘检测区域520/521可以在与2D矢量506A-1的方向和/或2D矢量506A-2的方向相匹配的方向(例如,向内方向)上延伸。
在实施例中,处理电路可以基于定义的最小物体尺寸和/或所定义的最大物体尺寸来确定图5I的边缘检测区域521的尺寸和/或位置。所定义的最小物体尺寸(也可以被称为最小候选尺寸)可以是指例如一个或多个维度,诸如预期被放置在空间结构感测设备151/151A和/或2D图像感测设备152/152A的视场中的最小物体的长度和宽度(例如,以厘米为单位)。在某些情况下,所定义的最大物体尺寸和/或所定义的最小物体尺寸可以在被存储在非暂时性计算机可读介质120上的模板(例如,物体识别模板)中定义。在某些情况下,所定义的最小物体尺寸可以具有被预定义并存储在非暂时性计算机可读介质120中的(一个或多个)值。在一个示例中,如图5J所示,所定义的最小物体尺寸可以对应于2D图像信息500中的第一区域522。例如,第一区域522可以是所定义的最小物体尺寸的投影(例如,基于焦距和/或图像传感器尺寸)。第一区域522可以具有在位置505A处的角,并且可以具有与矢量506A-1和/或506A-2相匹配的朝向。在此示例中,具有等于或大于所定义的最小物体尺寸的尺寸的任何物理物体都应投影到延伸出第一区域522的位置。如在图5J中进一步描绘的,所定义的最大物体尺寸可以对应于第二区域520,其可以与图5H的边缘检测区域520相同。在某些情况下,处理电路110可以在第一区域522之外但是在第二区域520内搜索物体边缘。在这种情况下,处理电路110可以使用边缘检测区域521,该边缘检测区域521是在第一区域522外并且在第二区域520内的区域。
返回参考图3A和3B,方法300还可包括操作316,在操作316中,计算系统101的处理电路110标识边缘检测区域(例如520/521)内的一个或多个候选边缘的簇,其不表示2D图像信息(例如500)所表示的物体结构的任何物体边缘。例如,图6A描绘了边缘检测区域520中的候选边缘的簇603、605、607的示例,这些候选边缘不表示在2D图像信息500中表示的物体410的物体结构的任何物体边缘。下面更详细地讨论确定哪些候选边缘属于簇603、605、607。在实施例中,处理电路110可以基于候选边缘和在操作314中确定的2D矢量(例如506A-1)之间的比较来确定属于簇603、605、607的候选边缘不表示物体结构的任何物体边缘。例如,处理电路110可以配置为将簇603的候选边缘的相应朝向与该2D矢量的朝向(也可以被称为经投影的边缘朝向)进行比较。如上所述,2D矢量(例如506A-1)可以定义2D矢量从其延伸的2D位置(例如505A)所表示的角的2D角朝向的至少一部分。因此,上述的朝向比较可以是候选边缘的相应朝向与由2D位置(例如505A)所表示的角的2D角朝向的比较的一部分。如果该比较表明簇603、605、607的候选边缘没有充分匹配2D矢量(例如506A-1)的朝向,则处理电路110可以确定簇603、605、607中的候选边缘可能不表示物体边缘。例如,如果簇603、605、607中的候选边缘没有充分平行于矢量506A-1或矢量506A-2(其也可以定义2D角朝向的一部分),则这些候选边缘可能很有可能是伪边缘。因此,处理电路110可以从2D图像信息500中过滤掉这些候选边缘,或者更一般地,在搜索物体410的物体边缘时忽略这些候选边缘,从而降低将伪边缘标识为物体边缘的可能性。
在实施例中,将候选边缘分组为一个或多个簇可以提供对2D图像信息(例如500)中的候选边缘的更高效的处理,诸如通过允许计算系统101将对候选边缘的处理整合为更少的步骤。例如,该聚类操作可以允许在逐簇的基础上而不是在单个候选边缘的基础上处理(例如,过滤掉)候选边缘。
在某些情况下,操作316可能涉及标识应将哪些候选边缘分组为一个簇或多个簇,然后确定这些簇中的哪个或哪些不表示在2D图像信息中(例如500)所表示的物体(例如410-440)的任何物体边缘。可以从2D图像信息500中标识一个或多个簇。计算系统101可以通过若干聚类技术中的任何一个或任何组合来标识候选边缘的簇。
在实施例中,计算系统101可以通过朝向聚类技术来标识候选边缘的簇,朝向聚类技术基于候选边缘的相应朝向之间的相似性将候选边缘分组在一起。例如,在该实施例中,计算系统101可以确定由候选边缘共享的并行度,并且可以将彼此平行或几乎平行的候选边缘标识为属于同一个簇。例如,图6A描绘了一种情况,其中计算系统101将平行或基本平行于簇603中的候选边缘之一的候选边缘(诸如图6B的候选边缘563A)标识为属于簇603。在实施例中,标识朝向相似的候选边缘可以涉及将在与簇的目标矢量相比时其朝向处于定义的角度阈值(例如,选定的度数)内的候选边缘分组在一起。簇目标矢量可以是例如在步骤312中确定的2D矢量(例如506A-1)。每个候选边缘可以在朝向上与簇目标矢量进行比较以确定该候选边缘的角度。在角度小于角度阈值的情况下,该候选边缘可以被包括在簇中。在某些情况下,基于与簇目标矢量的朝向相似性来标识簇可以导致绝对聚类,在该绝对聚类中,在预定义区域内并且其与2D矢量的角度(例如506A-1)在簇目标矢量的定义阈值之内的所有候选边缘被分组到一个簇中。在这些情况下,具有在簇目标矢量的定义阈值内的朝向的候选边缘可以被认为具有与簇目标矢量基本相同的朝向。定义的阈值(也被称为角度阈值)可以例如在5°、4°、3°、2°或1°之内。对于导致角度低于角度阈值的那些比较,可以将相应候选边缘聚类在一起。如果可以调节角度阈值或以其他方式动态定义角度阈值,则所得的聚类可能具有流动的簇边界。可以基于角度阈值的尺寸来控制簇的尺寸。较大的角度阈值可能会导致较大的簇,而较小的角度阈值可能会导致较小的簇。选择合适的角度阈值对于控制每个簇中角度的总范围可能是重要的。具有在角度阈值内的角度差异的候选边缘可以被认为具有基本相同的朝向。适当的角度阈值可以包括在5°、4°、3°、2°或1°之内。
在实施例中,确定两个候选边缘的相应朝向之间的相似度可以基于两个候选边缘的点积或叉积。例如,为了确定图6B中的候选边缘563A和563B的相应朝向之间的相似度,可以确定与两个候选边缘563A和563B平行的两个相应矢量(诸如,图6B中的矢量v1和v2)之间的叉积。叉积的大小可以指示两个候选边缘的相应朝向之间的相似度。例如,彼此精确平行的两个候选边缘的叉积可以为零。在某些情况下,如果叉积的大小低于上面所讨论的定义的角度阈值,则两个候选边缘可以被认为彼此充分平行以致于属于同一个簇。
在实施例中,计算系统101可以基于对齐聚类技术来标识候选边缘的簇,对齐聚类技术将彼此共线的候选边缘分组在一起。基于共线性将候选边缘分组在一起可以是指将彼此对齐或基本对齐的候选边缘分组在一起。例如,图6A和6C描绘了簇605,簇605包括共线的候选边缘565A-565D。换句话说,候选边缘505A-505D可以彼此对齐或(在指定阈值内)基本对齐(候选边缘565A-565D也可以基于具有相似的朝向而被分组在一起)。在实施例中,如图6C所示,可以基于从候选边缘565A-565D中的至少一个确定外推矢量(例如,线)605A来执行对齐聚类技术。外推矢量605A可通过例如将该至少一个候选边缘向外外推至例如图6A的边缘检测区域520的边界而与该至少一个候选边缘(例如565A)共线。在该实施例中,对齐聚类技术可以基于确定哪些其他候选边缘(例如565B-565D)落在外推矢量605A上。在实施例中,对齐聚类技术可以涉及确定候选边缘503A-503D的相应外推矢量,以及确定这些外推矢量是否重叠。例如,如果两个候选边缘在长度上外推时重叠,则计算系统101可以认为它们是对齐的。
在实施例中,可以根据预定的角度阈值和/或预定的偏移阈值来定义基本的共线性(也被称为基本相似的对齐)。用于两个候选边缘的角度阈值可能要求(例如)这两个候选边缘之间的角度在角度阈值(例如,一定的度数,例如5°、4°、3°、2°或1°)之内,或者两个候选边缘中的每一个与步骤312的2D矢量所形成的相应角度在角度阈值内。用于两个候选边缘的偏移阈值可能要求例如候选边缘具有比偏移阈值小的偏移。在实施例中,两个候选边缘之间的偏移可以由从候选边缘延伸或以其他方式被从候选边缘外推的相应线之间的距离来定义。在实施例中,可以将偏移量测量为外推的线的相应中心点之间的距离。
在实施例中,计算系统101可以基于邻近聚类技术来标识候选边缘的簇,邻近聚类技术将满足邻近条件的候选边缘分组在一起。邻近条件可以是指例如彼此邻近的候选边缘。例如,图6A和6D描绘了簇607,簇607包括彼此邻近的候选边缘567A-567D。在实施例中,计算系统101可以基于确定候选边缘的位置之间或从候选边缘外推的线之间的距离是否满足定义的距离阈值来确定是否满足邻近条件。在实施例中,候选边缘的位置(也被称为候选边缘位置)之间的距离可以是候选边缘的相应中心点(诸如图6D中所示的中心点568A-568D)之间的距离。在实施例中,两个候选边缘的候选边缘位置之间的距离可以是候选边缘之间的最大距离,该最大距离可以是两个候选边缘上彼此最远的相应位置之间的距离。
如上所述,可以组合多种聚类技术以标识哪些候选边缘属于特定簇。例如,可以基于朝向聚类技术和邻近聚类技术的组合将图6B的簇603分组为一个簇。更具体地,簇603可以包括候选边缘,其具有彼此足够相似的相应朝向,并且其彼此之间的距离在定义的距离阈值内。在某些情况下,计算系统101可以将候选边缘标识为属于多于一个簇。
图6E描绘了示例,其中计算系统101基于例如以上讨论的朝向聚类技术来标识簇611、613和609。在某些情况下,可以将簇609、611和613排除在被标识为操作316的簇之外,因为操作316的簇可以包括具有高可能性为伪边缘的候选边缘,而簇609、611和613的候选边缘可以具有较低(例如,零)可能性为伪边缘。例如,簇611可以包括候选边缘561B和561C,而簇613可以包括候选边缘561A和561D。这些候选边缘561A-561D实际上表示物体410的物理边缘。在某些实施方案中,可以从簇609、611、613中标识步骤318(在下面讨论)的2D物体边缘。
在实施例中,计算系统101可以从簇(例如,603、607、605、609、611、613)中排除具有低于定义的最小长度阈值的长度的候选边缘。因此,该实施例中的簇可以各自包括超过定义的最小长度阈值的候选边缘。
尽管操作316涉及标识不表示任何物体边缘的候选边缘的簇,但是在某些实施例中,它可以附加地或替代地标识不表示任何物体边缘的一个或多个单个候选边缘。这样的确定可以基于单个候选边缘的朝向与操作314的2D矢量(例如506A-1)的朝向之间的比较,或更一般地,基于单个候选边缘的朝向与2D角的朝向之间的比较,如上所述。
返回参考图3A和3B,方法300还可以包括操作318,在操作318中,计算系统101的处理电路110将不属于在操作316标识的候选边缘的簇的一部分的候选边缘标识为2D物体边缘。被标识的该2D物体边缘也可以被称为分段边缘,因为其可以被用来执行分段操作,如下所述。此外,由于计算系统101在标识2D物体边缘时忽略了操作316的边缘的簇(其中操作316的边缘的簇可能具有高可能性是伪边缘),因此在操作318中标识的2D物体边缘可能具有更高的可能性被验证为正确标识的2D物体边缘。因此,2D物体边缘也可以被称为可验证边缘。作为示例,操作318可以涉及将候选边缘561D标识为2D图像信息(例如500)中的2D物体边缘。该2D物体边缘可以表示例如物体410的物理边缘416D(如图4C所示)。在实施例中,操作306的矢量(例如406A-1)与之平行的边缘(例如416A)可以是对应的物体结构(例如,物体410的物体结构)的第一边缘,而该2D物体边缘可以表示该物体结构的另一边缘,诸如边缘416D或边缘416C。
在实施例中,操作318可以涉及对2D图像信息进行过滤以生成经更新的2D图像信息,该经更新的2D图像信息移除在操作316中标识出的簇。在该实施例中,可以从保留在经更新的2D图像信息中的(例如,仍然出现在经更新的2D图像信息中的)候选边缘中标识2D物体边缘。例如,图6F描绘了在操作316中识别出的簇的示例。这些簇包括簇603、605、607以及其他簇(其被用虚线边界描绘),这些簇可以完全或部分位于边缘检测区域520内。图6G示出了经更新的2D图像信息500A,在经更新的2D图像信息500A中已移除了图6F中标识的簇。在该示例中,操作318可以涉及从经更新的2D图像信息500A中将候选边缘561D标识为2D物体边缘。在实施例中,可以通过标记或标注图6F的簇的候选边缘以指示对于操作318应该忽略它们,从而更新图6F的2D图像信息500。在实施例中,操作318可以涉及标识(或可以被多次执行以标识)多个2D物体边缘。例如,操作318可以涉及将候选边缘561D标识为由2D图像信息500表示的物体的物体结构的第一2D物体边缘,并且将候选边缘561C识别为该物体结构的第二物体边缘。
在实施例中,作为操作318的一部分或作为某些其他操作的一部分,计算系统101可以从2D图像信息中过滤掉候选边缘的簇或过滤掉单个候选边缘。在某些情况下,可以根据候选边缘的相应朝向来执行将候选边缘从作为2D物体边缘(也被称为分段边缘)的考虑中过滤或以其他方式消除。例如,可以被从作为分段边缘的考虑中消除边缘检测区域(例如520)或2D图像信息中如下的任何簇,该簇的候选边缘具有不充分匹配(在指定阈值内)操作312中确定的2D矢量的朝向的相应朝向,或者更一般地,具有不充分匹配与该2D矢量相关联的2D角朝向的相应朝向。在该示例中,2D矢量的朝向可以是经投影的2D边缘朝向。
在实施例中,过滤可以根据在步骤306中确定的3D矢量的朝向。3D矢量的朝向可以是3D边缘朝向。在该实施例中,可以被从作为分段边缘的考虑中消除边缘检测区域(例如520)中或2D图像信息中的如下的任何簇,该簇具有如下的候选边缘,该候选边缘的相应朝向不充分匹配3D边缘朝向,或者不充分匹配与该3D边缘朝向相关联的3D角朝向。如上所述,被过滤掉的候选边缘可能具有高可能性是伪边缘,因此可能具有低可能性实际上表示2D图像信息中所表示的物体的物理边缘。
在实施例中,可以根据候选边缘的位置来执行过滤。例如,可以过滤掉距离操作310中确定的2D位置(其表示物体结构的角)太远或距离步骤312中确定的2D矢量(其是经投影的2D物体边缘)太远的候选边缘。在某些情况下,如果候选边缘落在边缘检测区域之外(例如520),则可以认为它是太远的。在某些情况下,如果候选边缘的位置与该2D位置或该2D矢量之间的距离超过上述定义的最大物体尺寸的值,则可以认为候选边缘是太远的。如上所述,候选边缘的位置可以是例如候选边缘或外推线的中心点。在实施例中,计算系统101可以采用以上讨论的过滤技术的任何组合。例如,可以仅根据朝向或者根据朝向和位置的组合来过滤候选边缘簇。
返回参考图3A和3B,方法300还可以包括操作320,在操作320中,计算系统101的处理电路110基于在操作318中标识的2D物体边缘(其可以被称为分段边缘)来执行对空间结构信息(例如400/400A)的分段。在实施例中,操作320可以由图2C的分段管理器204执行。
在实施例中,操作320可以涉及确定对应于2D物体边缘的3D矢量。在该实施例中,在操作306中标识的3D矢量可以是表示物体结构的第一边缘的第一3D矢量,而在操作320中标识的3D矢量可以表示物体结构的第二边缘。在这样的实施例中的分段可以涉及提取空间结构信息(例如400/400A)的一部分,该部分表示第一3D矢量和第二3D矢量之间的相应各点。例如,图7A描绘了示例,在该示例中,(在操作306中确定的)矢量406A-1是第一3D矢量,在操作318中被标识为2D物体边缘的候选边缘561D可以被用于确定第二3D矢量406E-1。操作320可以涉及提取空间结构信息400A的、表示第一矢量406A-1和第二矢量406A-1之间的各点(包括落在这两个矢量上的点)的一部分。如上所述,矢量406A-1可以表示物体410的物体结构的第一边缘,而矢量406E-1可以表示该物体结构的另一边缘(例如第二边缘)。
在实施例中,可以通过将被标识为2D物体边缘的候选边缘561D从2D图像信息500/500A的参考框架(其可以被称为2D空间)中投影到空间结构信息400/400A的参考框架(其可以被称为3D空间)来确定3D矢量406E-1。在某些情况下,投影操作可以涉及将候选边缘561D上的至少两个2D像素坐标([u v]T坐标)转换为相应的3D坐标[X’ Y’ Z’]T,其中这些3D坐标是相对于2D图像感测设备152/152A表达的。该转换可以基于例如2D图像感测设备152/152A的逆投影矩阵:
在某些情况下,可以修改以上表达式以考虑由2D图像感测设备152/152A引入的任何镜头失真。可以将3D坐标[X’ Y’ Z’]T从在2D图像感测设备152/152A的坐标系中表达转换为在空间结构感测设备151/151A的坐标系中表达,诸如基于以下公式:
如上所述,在实施例中,操作318可以涉及将多个候选边缘(诸如候选边缘561C和561D)标识为相应的2D物体边缘。在实施例中,操作320可以涉及确定对应于这些2D物体边缘的多个3D矢量。例如,图7B示出了计算系统101,其标识与对应于候选边缘561D的3D矢量406E-1,并且标识对应于候选边缘561C的附加3D矢量406F-1。在该示例中,计算系统101可以提取空间结构信息400/400A的一部分,该部分表示在操作306中确定的(一个或多个)3D矢量(例如406A-1)和在操作320中确定的3D矢量(例如,406E-1和406F-1)之间的各点。在某些情况下,在操作306中确定的并用于分段的(一个或多个)3D矢量可以包括矢量406A-1和矢量406A-2两者(这两个矢量可能已作为确定3D角朝向的一部分而被确定)。
图7C描绘了示例,在该示例中,计算系统101从空间结构信息400/400A中提取部分410A,其中部分410A表示图4A的物体410的物体结构。在实施例中,操作320可以被重复多次以从空间结构信息400/400A中提取附加部分。该提取可以将空间结构信息400/400A划分或以其他方式分段成对应于例如由空间结构信息400/400A表示的相应物体或物体结构的各部分。例如,图7D示出了空间结构信息400/400A被分段成部分410A-440A,部分410A-440A分别表示物体410-440的物体结构。
在实施例中,在操作320中提取的一部分可以被用于(诸如由图2C的物体识别管理器208)执行物体识别。在某些情况下,物体识别管理器208可以被配置为基于在操作320中提取的空间结构信息400/400A的该一部分来生成检测假设、修改检测假设和/或过滤检测假设。在2019年9月23日提交的第16/578,900号美国专利申请中更详细地讨论了检测假设,并且该美国专利申请的全文以引用的方式并入本文中。
与本公开一致的其他实施例至少包括以下内容。
本公开的一方面涉及实施例1,其包括计算系统,该计算系统包括非暂时性计算机可读介质和处理电路。当描述一个或多个物体的相应的一个或多个物体结构的空间结构信息被存储在非暂时性计算机可读介质上时,以及当描述一个或多个物体的2D图像信息被存储在非暂时性计算机可读介质上时,处理电路可以被配置为以执行以下操作:基于空间结构信息,标识表示一个或多个物体结构中的物体结构的角的3D位置;基于空间结构信息,标识从3D位置延伸并与物体结构的边缘平行的3D矢量;确定2D图像信息内的对应于3D位置的2D位置;确定2D图像信息内的对应于3D矢量的2D矢量;基于2D位置确定2D图像信息内的边缘检测区域;根据候选边缘与2D矢量之间的比较,标识边缘检测区域内的不表示一个或多个物体结构的任何物体边缘的候选边缘的簇;将不是所标识的候选边缘的簇的一部分的候选边缘标识为2D物体边缘;以及基于2D物体边缘对空间结构信息执行分段。
实施例2包括如实施例1的计算系统。在实施例2中,3D矢量与之平行的物体结构的边缘是物体结构的第一边缘,并且其中,从2D图像信息标识出的2D物体边缘表示物体结构的第二边缘。
实施例3包括如实施例1或2的计算系统。在实施例3中,空间结构信息包括点云,点云描述物体结构上的多个位置的深度信息,并且其中,2D图像信息是没有深度信息的2D图像。
实施例4包括如实施例1-3中任一项的计算系统。在实施例4中,处理电路还被配置为从2D图像信息中过滤掉候选边缘的簇以生成经更新的2D图像信息,其中,2D物体边缘是从经更新的2D图像信息中描述的候选边缘中被标识的。
实施例5包括如实施例1-4中任一项的计算系统。在实施例5中,处理电路被配置为将候选边缘的簇标识为相应的朝向与2D矢量的朝向不匹配的候选边缘。
实施例6包括如实施例1-5中任一项的计算系统。在实施例6中,处理电路被配置为将候选边缘的簇标识为边缘检测区域中的相应的朝向基本相同的一组候选边缘。
实施例7包括如实施例1-6中任一项的计算系统。在实施例7中,处理电路被配置为将候选边缘的簇标识为边缘检测区域中的具有满足定义的邻近条件的相应位置的一组候选边缘。
实施例8包括如实施例1-7中任一项的计算系统。在实施例8中,处理电路被配置为将候选边缘的簇标识为边缘检测区域中的基本上共线的一组候选边缘。
实施例9包括如实施例1-8中任一项的计算系统。在实施例9中,处理电路还被配置为在边缘检测区域中标识具有小于定义的长度阈值的相应长度的一组候选边缘,并从2D图像信息中过滤掉一组候选边缘。
实施例10包括如实施例1-9中任一项的计算系统。在实施例10中,处理电路被配置为通过以下方式来标识边缘检测区域:标识2D图像信息的从2D位置延伸并且表示定义的最小物体尺寸的第一区域;标识2D图像信息的从2D位置延伸并且表示定义的最大物体尺寸的第二区域;以及将边缘检测区域确定为在第一区域外并且在第二区域内的区域。
实施例11包括如实施例1-10中任一项的计算系统。在实施例11中,3D矢量是第一3D矢量并且表示物体结构的第一边缘,其中,处理电路被配置为通过以下方式来执行对空间结构信息的分段:标识对应于2D矢量并且表示物体结构的第二边缘的第二3D矢量;以及提取空间结构信息的一部分,一部分与物体结构上的位于第一3D矢量和第二3D矢量之间的位置相对应。
实施例12包括如实施例1-11中任一项的计算系统。在实施例12中,空间结构信息是从空间结构感测设备接收的或者基于由空间结构感测设备生成的信息,并且2D图像信息是从2D图像感测设备第二相机接收的或者基于由2D图像感测设备生成的信息。
实施例13包括如实施例1-12中任一项的计算系统。在实施例13中,簇的候选边缘与2D矢量之间的比较包括候选边缘的相应朝向与2D矢量的朝向之间的比较。
对于相关领域的普通技术人员将清楚的是,在不脱离任何实施例的范围的情况下,可以对本文所述的方法和应用进行其他适当的修改和改编。上述实施例是说明性示例,并且不应解释为将本发明限于这些特定实施例。应当理解,本文所公开的各种实施例可以以与说明书和附图中具体呈现的组合不同的组合来进行组合。还应当理解,取决于示例,本文描述的任何过程或方法的某些动作或事件可以以不同的顺序执行,可以被添加、合并或完全省略(例如,所有描述的动作或事件对于执行方法或过程可能不是必需的)。此外,尽管为了清楚起见,本文实施例的某些特征被描述为由单个部件、模块或单元来执行,但是应当理解,本文描述的特征和功能可以由部件、单元或模块的任意组合来执行。因此,在不脱离所附权利要求书所限定的本发明的精神或范围的情况下,本领域技术人员可以进行各种改变和修改。
Claims (20)
1.一种计算系统,包括
非暂时性计算机可读介质;
处理电路,当描述一个或多个物体的相应的一个或多个物体结构的空间结构信息被存储在所述非暂时性计算机可读介质上时,以及当描述所述一个或多个物体的2D图像信息被存储在所述非暂时性计算机可读介质上时,所述处理电路被配置为:
基于所述空间结构信息,标识表示所述一个或多个物体结构中的物体结构的角的3D位置;
基于所述空间结构信息,标识从所述3D位置延伸并与所述物体结构的边缘平行的3D矢量;
确定所述2D图像信息内的对应于所述3D位置的2D位置;
确定所述2D图像信息内的对应于所述3D矢量的2D矢量;
基于所述2D位置确定所述2D图像信息内的边缘检测区域;
根据候选边缘与所述2D矢量之间的比较,标识所述边缘检测区域内的不表示所述一个或多个物体结构的任何物体边缘的候选边缘的簇,
将不属于所标识的候选边缘的簇的一部分的候选边缘标识为2D物体边缘,
基于所述2D物体边缘执行对所述空间结构信息的分段。
2.如权利要求1所述的计算系统,其中,所述物体结构的与所述3D矢量平行的所述边缘是所述物体结构的第一边缘,并且其中,从所述2D图像信息标识出的所述2D物体边缘表示所述物体结构的第二边缘。
3.如权利要求1所述的计算系统,其中,所述空间结构信息包括点云,所述点云描述所述物体结构上的多个位置的深度信息,并且其中,所述2D图像信息是没有深度信息的2D图像。
4.如权利要求1所述的计算系统,其中,所述处理电路还被配置为从所述2D图像信息中过滤掉所述候选边缘的簇以生成经更新的2D图像信息,其中,所述2D物体边缘是从所述经更新的2D图像信息中描述的候选边缘中标识的。
5.如权利要求1所述的计算系统,其中,所述处理电路被配置为将所述候选边缘的簇标识为相应的朝向与所述2D矢量的朝向不匹配的候选边缘。
6.如权利要求1所述的计算系统,其中,所述处理电路被配置为将所述候选边缘的簇标识为所述边缘检测区域中的相应的朝向基本相同的一组候选边缘。
7.如权利要求1所述的计算系统,其中,所述处理电路被配置为将所述候选边缘的簇标识为所述边缘检测区域中的具有满足定义的邻近条件的相应位置的一组候选边缘。
8.如权利要求1所述的计算系统,其中所述处理电路被配置为将所述候选边缘的簇标识为所述边缘检测区域中的基本上共线的一组候选边缘。
9.根据权利要求1所述的计算系统,其中,所述处理电路还被配置为在所述边缘检测区域中标识具有小于定义的长度阈值的相应长度的一组候选边缘,并从所述2D图像信息中过滤掉所述一组候选边缘。
10.如权利要求1所述的计算系统,其中,所述处理电路被配置为通过以下方式来标识所述边缘检测区域:
标识所述2D图像信息的从所述2D位置延伸并且表示定义的最小物体尺寸的第一区域;
标识所述2D图像信息的从所述2D位置延伸并且表示定义的最大物体尺寸的第二区域;以及
将所述边缘检测区域确定为在所述第一区域外并且在所述第二区域内的区域。
11.如权利要求1所述的计算系统,
其中所述3D矢量是第一3D矢量并且表示所述物体结构的第一边缘,其中,所述处理电路被配置为通过以下方式来执行对所述空间结构信息的分段:
标识对应于所述2D矢量并且表示所述物体结构的第二边缘的第二3D矢量;以及
提取所述空间结构信息的一部分,所述一部分与所述物体结构上的位于所述第一3D矢量和所述第二3D矢量之间的位置相对应。
12.如权利要求1所述的计算系统,其中,所述空间结构信息是从空间结构感测设备接收的或者基于由所述空间结构感测设备生成的信息,并且所述2D图像信息是从2D图像感测设备第二相机接收的或者基于由所述2D图像感测设备生成的信息。
13.如权利要求1所述的计算系统,其中,所述簇的候选边缘与所述2D矢量之间的比较包括所述候选边缘的相应朝向与所述2D矢量的朝向之间的比较。
14.一种其上存储有指令的非暂时性计算机可读介质,所述指令当由处理电路执行时以及当所述非暂时性计算机可读介质正存储描述一个或多个物体的相应的一个或多个物体结构的空间结构信息以及所述物体结构的2D图像信息时,使所述处理电路执行以下操作:
基于所述空间结构信息,标识表示所述一个或多个物体结构中的物体结构的角的3D位置;
基于所述空间结构信息,标识从所述3D位置延伸并与所述物体结构的边缘平行的3D矢量;
确定所述2D图像信息内的对应于所述3D位置的2D位置;
确定所述2D图像信息内的对应于所述3D矢量的2D矢量;
基于所述2D位置确定所述2D图像信息内的边缘检测区域;
根据候选边缘与所述2D矢量之间的比较,标识所述边缘检测区域内的不表示所述一个或多个物体结构的任何物体边缘的候选边缘的簇;
将不属于所标识的候选边缘的簇的一部分的候选边缘标识为2D物体边缘;以及
基于所述2D物体边缘执行对所述空间结构信息的分段。
15.如权利要求14所述的非暂时性计算机可读介质,其中,所述空间结构信息包括点云,所述点云描述所述物体结构上的多个位置的深度信息,并且其中,所述2D图像信息是没有深度信息的2D图像。
16.如权利要求14所述的非暂时性计算机可读介质还包括以下指令,该指令使所述处理电路从所述2D图像信息中过滤掉所述候选边缘的簇以生成经更新的2D图像信息,其中,所述2D物体边缘是从所述经更新的2D图像信息中描述的候选边缘中标识的。
17.如权利要求14所述的非暂时性计算机可读介质还包括以下指令,该指令使所述处理电路将将所述候选边缘的簇标识为相应的朝向与所述2D矢量的朝向不匹配的候选边缘。
18.如权利要求14所述的非暂时性计算机可读介质还包括以下指令,该指令使所述处理电路将所述候选边缘的簇标识为所述边缘检测区域中的相应的朝向基本相同的一组候选边缘。
19.如权利要求14所述的非暂时性计算机可读介质还包括以下指令,该指令使所述处理电路通过以下方式来标识所述边缘检测区域:
标识所述2D图像信息的从所述2D位置延伸并且表示定义的最小物体尺寸的第一区域;
标识所述2D图像信息的从所述2D位置延伸并且表示定义的最大物体尺寸的第二区域;以及
将所述边缘检测区域确定为在所述第一区域外并且在所述第二区域内的区域。
20.一种由计算系统执行的方法,所述方法包括:
基于空间结构信息,标识表示一个或多个物体结构中的物体结构的角的3D位置,其中所述计算系统包括非暂时性计算机可读介质,所述非暂时性计算机可读介质被配置为存储所述空间结构信息并且被配置为存储表示一个或多个物体的2D图像信息,所述空间结构信息描述所述一个或多个物体的所述一个或多个物体结构;
基于所述空间结构信息,标识从所述3D位置延伸并与所述物体结构的边缘平行的3D矢量;
确定所述2D图像信息内的对应于所述3D位置的2D位置;
确定所述2D图像信息内的对应于所述3D矢量的2D矢量;
基于所述2D位置确定所述2D图像信息内的边缘检测区域;
根据候选边缘与所述2D矢量之间的比较,标识所述边缘检测区域内的不表示所述一个或多个物体结构的任何物体边缘的候选边缘的簇,
将不属于所标识的候选边缘的簇的一部分的候选边缘标识为2D物体边缘,以及
基于所述2D物体边缘执行对所述空间结构信息的分段。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/791,024 US11403764B2 (en) | 2020-02-14 | 2020-02-14 | Method and computing system for processing candidate edges |
US16/791,024 | 2020-02-14 | ||
CN202010283353.2A CN113269801A (zh) | 2020-02-14 | 2020-04-13 | 用于处理候选边缘的方法和计算系统 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010283353.2A Division CN113269801A (zh) | 2020-02-14 | 2020-04-13 | 用于处理候选边缘的方法和计算系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112734783A CN112734783A (zh) | 2021-04-30 |
CN112734783B true CN112734783B (zh) | 2022-02-25 |
Family
ID=72513559
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110114859.5A Active CN112734783B (zh) | 2020-02-14 | 2020-04-13 | 用于处理候选边缘的方法和计算系统 |
CN202010534927.9A Pending CN111696124A (zh) | 2020-02-14 | 2020-04-13 | 用于处理候选边缘的方法和计算系统 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010534927.9A Pending CN111696124A (zh) | 2020-02-14 | 2020-04-13 | 用于处理候选边缘的方法和计算系统 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN112734783B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112734783B (zh) * | 2020-02-14 | 2022-02-25 | 牧今科技 | 用于处理候选边缘的方法和计算系统 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8265425B2 (en) * | 2008-05-20 | 2012-09-11 | Honda Motor Co., Ltd. | Rectangular table detection using hybrid RGB and depth camera sensors |
JP6052103B2 (ja) * | 2013-08-26 | 2016-12-27 | 株式会社ダイフク | 物品認識装置及び物品認識設備 |
CN104504684B (zh) * | 2014-12-03 | 2017-05-24 | 小米科技有限责任公司 | 边缘提取方法和装置 |
CN109214256A (zh) * | 2017-07-07 | 2019-01-15 | 深圳市保千里电子有限公司 | 一种交通图标的检测方法、装置及车辆 |
US10957072B2 (en) * | 2018-02-21 | 2021-03-23 | Cognex Corporation | System and method for simultaneous consideration of edges and normals in image features by a vision system |
CN110322457B (zh) * | 2019-07-09 | 2021-05-14 | 中国大恒(集团)有限公司北京图像视觉技术分公司 | 一种2d与3d视觉结合的拆垛方法 |
CN112734783B (zh) * | 2020-02-14 | 2022-02-25 | 牧今科技 | 用于处理候选边缘的方法和计算系统 |
US11403764B2 (en) * | 2020-02-14 | 2022-08-02 | Mujin, Inc. | Method and computing system for processing candidate edges |
-
2020
- 2020-04-13 CN CN202110114859.5A patent/CN112734783B/zh active Active
- 2020-04-13 CN CN202010534927.9A patent/CN111696124A/zh active Pending
Non-Patent Citations (2)
Title |
---|
Triangular mesh construction based on point cloud matrix and edge feature extraction;Jinyun Sun et al;《2016 IEEE Information Technology, Networking, Electronic and Automation Control Conference》;20131231;1-10 * |
图像纹理分类方法研究进展和展望;刘丽 等;《自动化学报》;20171231;第44卷(第4期);584-607 * |
Also Published As
Publication number | Publication date |
---|---|
CN111696124A (zh) | 2020-09-22 |
CN112734783A (zh) | 2021-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7433609B2 (ja) | 物体識別のための方法および計算システム | |
JP6730762B1 (ja) | 候補エッジを処理するための方法及び計算システム | |
US20210216767A1 (en) | Method and computing system for object recognition or object registration based on image classification | |
CN112734783B (zh) | 用于处理候选边缘的方法和计算系统 | |
CN113111899A (zh) | 基于图像分类的物体识别或物体注册的方法及计算系统 | |
US11900652B2 (en) | Method and computing system for generating a safety volume list for object detection | |
CN111191083B (zh) | 用于对象标识的方法和计算系统 | |
CN112288038B (zh) | 基于图像分类的物体识别或物体注册的方法及计算系统 | |
JP7191352B2 (ja) | 物体検出を実施するための方法および計算システム | |
CN113361651B (zh) | 生成用于物体检测的安全空间列表的方法和计算系统 | |
JP6843458B1 (ja) | 物体認識のために画像分類を行う方法およびシステム | |
CN112288040B (zh) | 执行用于物体识别的图像分类的方法和系统 | |
WO2022137509A1 (ja) | 物体認識装置、物体認識方法、非一時的なコンピュータ可読媒体及び物体認識システム | |
CN117765511A (zh) | 障碍物检测方法、装置、机器人及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |