CN115082550A - 从对象的相机图像中定位对象的位置的设备和方法 - Google Patents

从对象的相机图像中定位对象的位置的设备和方法 Download PDF

Info

Publication number
CN115082550A
CN115082550A CN202210250987.7A CN202210250987A CN115082550A CN 115082550 A CN115082550 A CN 115082550A CN 202210250987 A CN202210250987 A CN 202210250987A CN 115082550 A CN115082550 A CN 115082550A
Authority
CN
China
Prior art keywords
descriptor
image
camera
descriptors
camera image
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210250987.7A
Other languages
English (en)
Inventor
A·G·库普奇克
P·C·席林格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Publication of CN115082550A publication Critical patent/CN115082550A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/163Programme controls characterised by the control loop learning, adaptive, model based, rule based expert control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • B25J9/1697Vision controlled systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/0464Convolutional networks [CNN, ConvNet]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/09Supervised learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/74Image or video pattern matching; Proximity measures in feature spaces
    • G06V10/75Organisation of the matching processes, e.g. simultaneous or sequential comparisons of image or video features; Coarse-fine approaches, e.g. multi-scale approaches; using context analysis; Selection of dictionaries
    • G06V10/757Matching configurations of points or features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/40Robotics, robotics mapping to robotics vision
    • G05B2219/40584Camera, non-contact sensor mounted on wrist, indep from gripper
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/60Type of objects
    • G06V20/64Three-dimensional objects
    • G06V20/653Three-dimensional objects by matching three-dimensional models, e.g. conformal mapping of Riemann surfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/06Recognition of objects for industrial automation

Abstract

从对象的相机图像中定位对象的位置的设备和方法。根据各种实施方式,描述了一种用于从对象的相机图像中定位对象的位置的方法,包括:训练用于将相机图像映射为描述符图像的机器学习模型,针对每个相机图像,借助于由经过训练的机器学习模型提供的描述符确定在相应对象上的待定位位置,并在相机图像序列的过程中更新用于确定待定位位置的描述符。

Description

从对象的相机图像中定位对象的位置的设备和方法
技术领域
本公开涉及用于从对象的相机图像中定位对象的位置的设备和方法。
背景技术
为了使机器人能够灵活地制造或加工对象,值得期望的是机器人能够处理对象而不管对象以何种姿态(Stellung)放置到机器人的工作空间中。因此,机器人应当能够识别对象的哪些部分位于哪些位置,从而机器人可以例如抓握到对象的正确位置上,以例如将该对象固定在另一对象上或在当前地点焊接该对象。这意味着机器人应当能够从通过固定在机器人上的相机记录的一个或多个图像中识别对象的姿势(位置和定向)或识别对象的区域(如条形码)。实现此目的的一种方案在于为所述对象的部分(即,所述对象在相机图像平面中代表的像素)确定描述符,即预定义描述符空间中的点(向量),其中机器人被训练为与对象的当前姿势无关地向对象的同一部分分配相同的描述符,并因此识别该对象在图像中的拓扑结构,从而于是例如知道该对象的哪个拐角位于所述图像中的哪里。然后在了解相机的姿势的情况下,又可以推断出所述对象的姿势或所述对象的区域在三维空间中的位置。对拓扑结构的识别可以利用受到对应训练的机器学习模型来实现。然而,在这种措施的情况下也会出现困难,因为例如可能存在以下情况:所述机器学习模型由于不同的光比例(特别是反射)或由于训练不足而在不同的相机图像中不总是将描述符分配给对象的相同位置。然后这可能导致在确定姿势时或在一般确定对象位置时的不准确性。因此,值得期望的是可用于实现例如在确定姿势时更高准确度的方法。
发明内容
根据各种实施方式,提供了一种用于从对象的相机图像中定位对象的位置的方法,包括:为所述对象的对象类型设定待定位位置,确定待定位位置的相对方位(Lage)的参考,针对所述对象类型训练用于将相机图像映射为描述符图像的机器学习模型,其中每个相机图像显示所述对象类型的一个对象,其中相机图像将被映射为的描述符图像针对所述对象的由相机图像在图像位置处显示的位置,在所述图像位置处具有所述对象的所述位置的描述符,将描述符参考集设置为描述符初始集,接收相机图像的时间序列,其中每个相机图像显示所述对象类型的一个对象,以及通过以下方式为每个相机图像定位在相应对象上的待定位位置:
借助于经过训练的机器学习模型将所述相机图像映射为描述符图像,
通过在所述描述符图像中搜索描述符参考集的描述符,针对所述描述符参考集标识所述对象的待定位位置;以及
至少对于所述相机图像序列的一部分相机图像,包括:
针对所述参考集确定已定位位置的相对方位;和
将待定位位置的相对方位的参考与针对所述参考集确定的已定位位置的相对方位进行比较,
通过在所述描述符图像中搜索描述符测试集的描述符,针对所述描述符测试集来标识所述对象的待定位位置,
针对所述测试集确定已定位位置的相对方位;和
将待定位位置的相对方位的参考与针对所述测试集确定的已定位位置的相对方位进行比较,以及
如果对于一个或多个相机图像而言,待定位位置的相对方位的参考与针对所述测试集确定的已定位位置的相对方位之间的一致性比待定位位置的相对方位的参考与针对所述参考集确定的已定位位置的相对方位之间的一致性更好,则将所述参考集描述符更新为所述测试集描述符。
上述方法使得在使用(例如跟踪)多个描述符的情况下,例如为了确定姿势或为了确定(或跟踪)区域,可以更准确地定位对象的位置,因为对相机图像序列使用的描述符从以下角度而言得到了改进,即,所述描述符更好地实现了它们的理论属性,即所述描述符总是以视图不变的方式被分配给相同的位置。特别地,上述方法增加了抵抗相机图像序列中的光比例等变化的稳健性。
通过这种方式,上述方法例如使得能够针对对象的任意方位安全地拾取(例如抓握)对象或准确地确定对象的特定区域,例如条形码的地点。
下面说明各种实施例。
实施例1是用于从对象的相机图像中定位对象的位置的上述方法。
实施例2是根据实施例1的方法,其中所述相对方位具有待定位位置或已定位位置在三维空间中的成对距离。
由此评估了已定位位置在三维空间中正确定位的程度。特别地,通过使用三维空间中的距离(而不仅仅是相机图像平面中的距离)确保了将仅反映在垂直于相机图像平面的偏差中的检测误差考虑在内。
实施例3是根据实施例1或2的方法,其中在所述对象类型的对象的参考相机图像上设定所述对象类型的待定位位置,将所述参考相机图像输送给所述机器学习模型,并且将所述描述符参考集在由所述机器学习模型为所述参考相机图像输出的描述符图像中设置为待定位位置的描述符。
通过这种方式,可以简单地设定待定位位置和描述符参考集的良好初始值,因为至少对于所述参考相机图像而言,该参考集对应于所述待定位位置。然后在相机图像序列的过程中,可以改进用于定位待定位位置的参考集。
实施例4是根据实施例1至3中任一项所述的方法,其中在描述符初始集的有限范围内选择所述测试集。
所述有限范围例如只允许所述测试集的描述符与所述初始集的描述符有一定的相对偏差。由此可以避免与所述初始集偏离太多并且因此以较小概率适用于多个相机图像的描述符被(不必要地)测试或由于一个(或更少)相机图像而甚至被记录到所述参考集中。特别地,可以避免描述符适配过程的不稳定行为。
实施例5是根据实施例1至4中任一项所述的方法,包括借助于协方差矩阵适配进化策略方法确定描述符测试集。
这使得能够有效地优化以非封闭形式存在的函数,在这种情况下是在评估点数量很多的情况下描述符向确定对象位置时达到的准确度的映射,如在相机图像过程中得出的那样。
实施例6是用于控制机器人的方法,包括以下步骤:
根据实施例1至5中任一项定位要由所述机器人处理的对象的位置,
从已定位位置确定所述对象的姿势并根据所确定的姿势控制所述机器人,
和/或
从已定位位置确定所述对象的区域(该区域例如待扫描或以其他方式与处理或控制相关)并根据所确定的区域控制所述机器人。
实施例7是一种软件或硬件代理,特别是机器人,包括以下:
被设置为提供对象的相机图像的相机;
控制装置,其被设置用于执行根据实施例1至6中任一项的方法。
实施例8是根据实施例7的软件或硬件代理,其具有至少一个执行器,其中所述控制装置被设置为使用已定位位置来控制所述至少一个执行器。
实施例9是包括指令的计算机程序,所述指令在由处理器执行时促使所述处理器执行根据实施例1至6中任一项的方法。
实施例10是存储指令的计算机可读介质,所述指令在由处理器执行时促使所述处理器执行根据实施例1至6中任一项的方法。
附图说明
在附图中,通常在不同视图中用相似的附图标记指代相同的部分。附图不一定按比例绘制,而是通常强调说明本发明的原理。在以下描述中,参考以下附图描述了各个方面:
图1示出了机器人。
图2说明了根据实施方式的神经网络的训练。
图3说明了根据实施方式的对象姿势或抓握姿势的确定。
图4说明了在相机图像序列的过程中适配用于定位对象位置的描述符。
图5示出了用于从对象的相机图像中定位对象位置的方法的流程图。
具体实施方式
以下详细描述参考了附图,这些附图以说明的方式示出了本公开的具体细节和方面,在本公开中可以实现本发明。在不脱离本发明的范围的情况下,可以利用其他方面并且可以进行结构、逻辑和电气上的改变。本公开的各个方面不一定是相互排斥的,因为本公开的一些方面可以与本公开的一个或多个其他方面组合以形成新的方面。
下面更详细地描述各种示例。
图1示出了机器人100。
机器人100包括机器人臂101,例如用于操作或安装工件(或一个或多个其他对象)的工业机器人臂。机器人臂101包括机械手102、103、104和用于支撑机械手102、103、104的基座(或支撑件)105。术语“机械手”涉及机器人臂101的可移动部件,其操控使得能够实现与环境的物理交互,以例如执行任务。为了控制,机器人100包括(机器人)控制装置106,该控制装置被设计为根据控制程序实现与环境的交互。机械手102、103、104的最终部件104(离基座105最远)也称为末端效应器104并且可以包括一个或多个工具,例如焊炬、夹持仪器、油漆设备等等。
其他机械手102、103(更靠近基座105)可以形成定位设备,使得与末端效应器104一起,提供机器人臂101以及在其末端的末端效应器104。机器人臂101是可以提供类似于人臂的功能的机器人臂(可能在其末端具有工具)。
机器人臂101可以包括将机械手102、103、104彼此连接并与基座105连接的关节元件107、108、109。关节元件107、108、109可以包括一个或多个关节,每个关节可以为相关联的机械手相对于彼此提供可旋转运动(即旋转运动)和/或可平移运动(即平移)。机械手102、103、104的运动可以借助于由控制装置106控制的执行器来启动。
表达“执行器”可以理解为被构造为响应于其驱动而引起机制或过程的组件。执行器可以将由控制装置106创建的指令(所谓的激活)实现为机械运动。诸如机电转换器的执行器可以被设计为响应于其驱动将电能转换为机械能。
表达“控制装置”可以理解为任意类型的逻辑实现实体,所述实体可以例如包括能够执行存储在存储介质中的软件、固件或其组合以及可以发出指令(例如针对本示例中的执行器)的电路和/或处理器。控制装置可以例如由程序代码(例如,软件)配置以控制系统的运行,该系统在本示例中为机器人。
在本示例中,控制装置106包括一个或多个处理器110和存储器111,存储器111存储代码和数据,处理器110基于所述代码和数据来控制机器人臂101。根据各种实施方式,控制装置106基于存储在存储器111中的机器学习模型112来控制机器人臂101。
根据各种实施方式,机器学习模型112被设计和训练为使得机器人100能够从相机图像中识别对象113的拾取姿势,该对象113例如被放置到机器人臂101的工作空间中,例如针对应当从箱子中拾取对象(英语:Bin-picking,箱中取物)的机器人。这意味着机器人100识别它能够如何拾取对象113,即它必须如何定向其末端效应器104以及它必须将该末端效应器移动到哪里以拾取(例如抓握)对象113。拾取姿势应理解为该拾取姿势包含足够用于拾取的信息,即关于对象的定向和位置113的信息,所述信息足以从中确定如何能够抓握对象113。拾取姿势不一定必须包含关于对象113的完整定向信息,因为例如在对象113具有用于抓握的旋转对称部分的情况下,所述旋转对称部分如何围绕其旋转轴旋转可能无关紧要。
例如,机器人100可以配备有一个或多个相机114,所述相机使得机器人能够记录机器人工作空间的图像。例如,相机114固定在机器人臂101上,使得机器人可以通过四处移动机器人臂101来从不同视角拍摄对象113的图像。
用于识别对象的机器学习模型112的示例是密集对象网络。密集对象网络将图像(例如,由相机114提供的RGB图像)映射为具有所选择的某个维度D的描述符空间图像。然而,也可以使用其他机器学习模型112,特别是那些不一定产生“密集”特征图,而只是将描述符值分配给对象的特定点(例如拐角)的机器学习模型。
根据各种实施方式,在假设对象的3D模型(例如,CAD(计算机辅助设计)模型)是已知的条件下使用用于识别对象及其姿态的方案,典型地在工业安装或加工任务的情况下就是这样。非线性降维技术可以用于计算最佳目标图像,以训练神经网络的输入图像。因此,根据各种实施方式使用神经网络的受监督训练。还可以记录对象的RGBD图像(RGB+深度信息),并且可以从中确定所述对象的3D模型。替代地,可以执行自监督训练,其中机器学习模型自身学习对象位置的描述符。
为了进行受监督训练,根据用于产生训练机器学习模型112的训练数据的实施方式,首先执行数据收集。特别地,例如收集配准的RGB(红-绿-蓝)图像。在此,配准的图像是指具有已知的固有和非固有相机值的RGB图像。在真实世界的场景中,固定在机器人上的相机114(例如,固定在机器人腕关节上的相机)例如用于在机器人(例如,机器人臂101)四处移动时扫描对象。在模拟场景中,使用在使用已知的对象姿态情况下真彩产生的RGB图像。
在收集了RGB图像后,为了神经网络的受监督训练而呈现RGB图像的目标图像。
假设以世界坐标已知每个对象在每个收集到的RGB图像中的姿态。这对于模拟场景并不复杂,但需要针对真实世界进行手动调整,例如将对象放置在预定义的位置上。RGBD(RGB加深度信息)图像也可以用于确定对象的位置。
有了这些信息并且针对每个RGB图像(即训练输入图像)使用例如在下面描述的顶点描述符计算技术,将呈现描述符图像(即训练输出图像,也称为目标图像或地面实况图像)。
如果已经为每个RGB图像产生了目标图像,即形成了RGB图像和目标图像的配对,则训练输入图像和相关联目标图像的配对可以用作训练数据来训练神经网络,如图2中说明的。
图2说明了根据一个实施方式的神经网络200的训练。
神经网络200是将h×w×3张量(输入图像)映射为h×w×D张量(输出图像)的全卷积网络(英语:fully convolutional network)。
该神经网络包括卷积层的多个阶段204,然后是池化层、上采样层205和跳过连接206,以组合不同层的输出。
为了进行训练,神经网络200接收训练输入图像201并输出具有描述符空间中的像素值的输出图像202(例如,根据描述符向量分量的颜色分量)。在输出图像202和与训练输入图像相关联的目标图像203之间计算训练损耗。这可以针对一批训练输入图像进行,并且可以对这些训练输入图像平均化所述训练损耗,以及通过使用训练损耗的随机梯度下降来训练神经网络200的权重。例如,在输出图像202与目标图像203之间计算的训练损耗是L2损耗函数(以使目标图像203与输出图像202之间的逐像素最小二乘误差最小化)。
训练输入图像201显示对象,并且目标图像以及输出图像包含描述符空间中的向量。可以将描述符空间中的向量映射为颜色,从而输出图像202(以及目标图像203)类似于对象的热图。
描述符空间中的向量(也称为(密集)描述符)是分配给相应图像中每个像素(例如,输入图像201的每个像素,假设输入图像201和输出图像202具有相同的维度)的d维向量(例如,d是1、2或3)。密集描述符隐含地对输入图像201中显示的对象的表面拓扑结构进行编码,而与该对象的姿态或相机位置无关。
如果给定对象的3D模型,则可以解析地确定该对象的3D模型的每个顶点的最佳且唯一的描述符。根据各种实施方式,使用这些最佳描述符(或这些描述符的通过优化确定的估计)为配准的RGB图像产生目标图像,这导致神经网络200的完全受监督的训练。附加地,无论选择的描述符维度d如何,描述符空间都变得可解释和最佳。
现在如果机器学习模型112(例如神经网络200)已经被训练为将对象113的相机图像映射为描述符图像,则为了确定对象113在未知方位下的拾取姿势可以如下进行。
首先,在对象113上选择多个参考点pi,i=1,...,N,并确定这些参考点的描述符。这些参考点是针对稍后(“新”)相机图像的对象的待定位位置,并且这些参考点的描述符是描述符的(第一个,即初始)参考集(所述参考集可以如下所述在照片图像序列的过程中得到适配)。所述选择可以通过以下方式进行,即记录对象113的相机图像,选择对象上的参考像素(ui, vi)(以及因此选择对象的对应参考点)并由神经网络200将所述相机图像映射为描述符图像。然后可以将描述符图像中通过所述参考像素的位置给定的位置处的描述符作为参考点的描述符,即参考点的描述符为
Figure DEST_PATH_IMAGE002
,其中
Figure DEST_PATH_IMAGE004
是描述符图像,其中f是由神经网络实现的映射(从相机图像到描述符图像),I是相机图像,并且θ是机器学习模型200的权重。
如果对象113现在处于未知方位,则记录新的相机图像I neu I )并且借助于所述机器学习模型确定关联的描述符图像
Figure DEST_PATH_IMAGE006
。现在在这个新的描述符图像中搜索尽可能接近于参考图像的di个描述符的描述符,例如通过
Figure DEST_PATH_IMAGE008
,对于所有i = 1, …, N
根据参考点在描述符图像
Figure DEST_PATH_IMAGE010
中(并且因此对应地在新相机图像I neu 中)的以此方式确定或估计的位置(ui, vi)*来确定参考点在三维空间中的位置。例如,与相机图像I neu 一起记录深度图像(或者相机图像I neu 具有深度通道,该相机图像例如是RGBD图像),从而可以从(ui, vi)*中确定第i个参考点pi的三维位置(通过将位置(ui, vi)*处的深度值投影到相应的工作区域坐标系中)。
如果多个参考点在空间中的位置是已知的,则可以从中确定拾取姿势,如图3所示。
例如,确定对象300上的两个参考点p1和p2在空间中的位置并且将这两个位置线性组合,例如取它们的平均值,以设定锚点304。为了定义抓握定向,用方向p1和p2设定第一轴301,并且任意设定穿过锚点304的第二轴302,例如在相机114的z轴方向上或在工作区域坐标系的一个轴的方向上。通过第一轴301的方向向量和第二轴302的方向向量的向量积可以计算出穿过锚点304的第三轴303。三个轴301至303和锚点304定义了对象300的拾取姿势。然后可以控制机器人,使得该机器人紧握对象300在第一轴的方向上延伸的传动轴。参考点p1和p2例如被设定为使得它们如图所示沿着所述传动轴延伸,即沿着对象的适合于抓握的细长部分延伸。
类似地,可以在对象的抓握面上布置三个或更多个参考点,从而可以从这些参考点的位置中确定对象的完整6D拾取姿势或抓握面的定向,可以拾取(抓握或吸住)对象的所述抓握面。
在此应当注意的是,夹持器不一定必须具有钳子形式,而是也可以例如具有吸取设备,以吸住对象的合适面并因此拾取该对象。在这种情况下,为了将吸取设备带到正确的姿态,例如可能期望确定说明适合吸住的对象面的定向和位置的拾取姿势。这可以例如通过确定锚点和所述锚点中的平面法线向量来进行。
也可以使用多于三个参考点来确定拾取姿势,以例如通过平均来减少误差。
类似于拾取姿势,控制装置106也可以确定对象300上的区域,例如设置在对象300上的条形码的边界框,以标识所述对象。控制装置106然后可以例如控制机器人臂101,使得机器人臂101以使得相机可以读取所述条形码的方式将对象300保持在相机前面。
如上所述,密集对象网络向对象或其一部分的从任意视角记录的(例如RGB)相机图像分配描述符图像,该描述符图像向输入的相机图像中的每个像素(或每个位置)分配一个多维描述符。这些描述符具有理论属性,即对象表面上的特定点始终与同一个描述符相关联而与视角无关。该属性可用于各种应用,例如用于通过识别例如区域的拐角点或以上参照图3描述的拾取姿势的多个描述符来识别目标对象表面上的区域。利用额外的深度信息,即RGBD输入数据而不仅仅是RGB图像(即RGB图像加深度信息),可以将所确定的点投影到3D空间中以完全定义这样的区域。
然而,在实践中,对象上的点向不随视图变化的描述符的分配通常并不完美,并且由于很多因素导致质量恶化,所述因素例如是视觉特征数量少,描述符空间维数低,一些部分的训练数据不足,由于对称部分或相似对象、显著不同的视角或显著不同的外部条件(如环境照明)、因为反射表面导致的无效深度信息等在显示对象不同视图的相机图像中引起的模糊。
根据各种实施方式,提高对这样的因素的稳健性,其方式是并非静态地跟踪最初选择的描述符,而是在相机图像序列的过程中通过(典型轻微地)修改相机图像来进行优化,从而能够改进地确定对象上的位置(以及因此改进地确定姿势或通过所述位置给定的区域,例如边界框的拐角点)。换句话说,在运行期间(“在线”)改进在时间段内(即在接收到的相机图像时间序列的过程中)对所使用的描述符的选择。
可以借助于黑盒优化方法来执行描述符的选择。对此的示例包括贝叶斯优化(BO)和CMA-ES(协方差矩阵适配进化策略)。根据一个实施方式,由于CMA-ES针对大量采样值的性能更好,使用CMA-ES,因为这在该应用中典型地是相关方面。
为了在相机图像序列的过程中改进描述符,首先将描述符集(例如,用于姿势检测的三个描述符或用于设定四边形区域的四个描述符)设定为第一个参考(即所述描述符集的起始值),例如通过由用户在相机图像中的对象上选择对应数量的位置,然后由机器学习模型将这些位置映射为描述符。该描述符参考集随时间(即在相机图像序列的过程中)受到适配。具体来说,如果描述符测试集提供了更高的准确性,则描述符参考集将被描述符测试集所取代。因此,每个相机图像都有当前的描述符参考集,从选择为第一个参考的描述符集开始。根据一个实施方式,并行地、即在同一个图像上或图像的同一个子序列上评估多个描述符测试集,并且选择提供最高准确度的描述符测试集作为新的参考集。
然后对所述相机图像序列的每个相机图像执行以下操作:
(A)针对该相机图像和(当前)描述符参考集确定确定准确度,所述确定准确度说明对象的待确定位置确定得有多好(例如,目标区域确定得有多好)
(B)提出了新的描述符集(测试集)来提高所述序列的未来相机图像的确定准确度。
对于(A),将描述符集的质量度量用于所述确定准确度。代替(或附加于)单独评估描述符(例如,通过计算所确定的位置是唯一的置信度),基于通过描述符确定的在对象表面上的位置(在三维空间)的相对空间方位来评估描述符集的质量:
(A1)对于每个描述符,选择该相机图像中由机器学习模型映射为描述符的位置(像素)
(A2)相机图像平面中的每个位置都通过使用深度信息(以及例如固有的相机校准参数)映射为相关联的3D位置
(A3)计算检测3D位置的相对位置的度量,例如3D位置之间的成对(例如欧几里得)距离。
(A4)将计算出的度量与参考度量进行比较。该比较的结果(例如,所述3D位置与参考距离之间的配对距离差的平均值)说明了所述确定准确度。比较结果越低,确定准确度越高。例如将确定准确度的值设定为比较结果的倒数。所述参考度量或参考距离可以例如在第一相机图像中得到确定或者也可以在真实对象上测量出。例如,测量真实对象上条形码的拐角点(或其他突出位置)之间的距离。
对于(B),针对(不以封闭形式已知但可通过(A)评估的)目标函数执行优化方法,所述目标函数获得描述符集作为输入并输出相机图像的准确度度量。(准确度度量也可以是多个相机图像的准确度度量的平均值。)可以如下使用黑盒优化方法来改进在相机图像序列过程中的描述符参考集或将所述描述符参考集适配于变化的条件,例如变化的照明。
(B1)选择一个或多个有希望的描述符测试集(按照例如黑盒优化方法所建议的,例如根据采集函数)
(B2)通过确定(一个相机图像或跨多个相机图像的)测试集和参考集的准确度度量来评价测试集和参考集
(B3)如果测试集的准确度度量优于参考集的准确度度量,则将测试集作为新的参考集(即将迄今为止的参考集更新为测试集)。
所述优化从描述符的第一个参考作为参考集开始。可以规定不能完全自由地、而只能在初始参考集周围的有限范围内对描述符进行适配。由此保证描述符不会与初始参考集相距太远。
控制装置106可以在人类用户不参与的情况下(除了可能在开始时设定第一个参考)完全自动地执行用于适配描述符的上述方法。使用来自目标应用的相机图像而不是通用数据集可以实现最佳性能。因此,根据一个实施方式,在所述应用的运行期间在线使用该方法(例如,在使用机器人从箱子中拾取对象期间),以随时间自动改进结果的质量。对于相机图像序列的每个新接收到的相机图像,控制装置106可以自动选择哪个描述符集带来了最好的性能并且应当被考虑用于该具体图像。例如,如果当前参考集优于针对当前相机图像评价的当前测试集,则控制装置106使用当前参考集,反之亦然。
图4说明了上述过程。
首先,将描述符401手动地设定为第一个参考(这里通过描述符401在属于第一相机图像的第一描述符图像402中的位置来表示)。为了根据(A)确定(第一个)参考集的准确度度量,确定它们的成对距离403。
对于第二相机图像,在该示例中,由于探测错误,描述符在相关联的第二描述符图像404中的位置发生了移位。例如,描述符405由于光反射而由机器学习模型分配给错误的位置。
因此,根据(B)为以下描述符集选择新的描述符406,借助于所述描述符集通过描述符给出的位置的3D位置之间的成对距离更好地与所确定的距离403一致,即所确定的区域的形状更好地与原始形状一致。对新的相机图像(例如,对相机图像序列中的每个接收到的相机图像)重复执行该适配(或对可能的适配执行测试)。
总之,根据各种实施方式提供了如图5所说明的方法。
图5示出了用于从对象的相机图像中定位对象位置的方法的流程图500。
在501中,针对对象的对象类型设定待定位位置。
在502中,确定待定位位置的相对位置的参考。
在503中,针对所述对象类型训练用于将相机图像映射为描述符图像的机器学习模型,其中每个相机图像显示所述对象类型的一个对象,其中相机图像要被映射为的描述符图像针对由所述相机图像在图像位置处显示的对象的位置在该图像位置处具有所述对象的位置的描述符。
在504中,将描述符参考集设置为描述符初始集。
在505中,接收相机图像的时间序列,其中每个相机图像显示所述对象类型的一个对象。
在506中,针对每个相机图像通过以下方式来定位在相应对象上的待定位位置,即借助于经过训练的机器学习模型将相机图像映射为描述符图像并且通过在描述符图像中搜索描述符参考集的描述符(例如,用于在描述符值中搜索具有尽可能接近于参考集描述符的描述符的位置,如上面结合图3所描述的)针对描述符参考集标识所述对象的待定位位置。由此在相机图像平面中定位了待定位位置,并且可以例如借助于深度信息或通过在三维空间中求解PnP(Perspective-n-Pont,透视-n点)问题来定位。
在507中,对相机图像序列中的至少一部分相机图像执行以下操作:
针对所述参考集确定已定位位置的相对方位;和
将待定位位置的相对方位的参考与针对所述参考集确定的已定位位置的相对方位进行比较,并且
通过在所述描述符图像中搜索描述符测试集的描述符,针对所述描述符测试集来标识所述对象的待定位位置,
针对所述测试集确定已定位位置的相对方位;和
将待定位位置的相对方位的参考与针对所述测试集确定的已定位位置的相对方位进行比较,以及
如果对于一个或多个相机图像而言,待定位位置的相对方位的参考与针对所述测试集确定的已定位位置的相对方位之间的一致性比待定位位置的相对方位的参考与针对所述参考集确定的已定位位置的相对方位之间的一致性更好,则将所述参考集描述符更新为所述测试集描述符。
应当注意的是,506和507是并行或交替执行的,例如,507是在506的定位过程的进行中对每个相机图像(或者在预给定数量的相机图像之后)执行的。
换言之,根据各种实施方式,训练用于将相机图像映射为描述符图像的机器学习模型,并且针对每个相机图像,借助于由经过训练的机器学习模型提供的描述符来确定在相应对象上的待定位位置。用于确定待定位位置的描述符在相机图像序列的过程中得到更新(即得到适配),以例如跟踪变化的光比例或补偿描述符参考集中的错误或第一描述符参考集的最佳性不足。
对象是对象类型的实例,因此例如所有对象都具有由所述对象类型预给定的相同形状。例如,对象是具有特定形状的对象的部件。然而,只要对象的拓扑结构相同,形状也可能有所不同。例如,对象类型可以是“鞋”,待定位位置可以是鞋舌的边缘点,并且对象可以是各种鞋。
例如,机器学习模型是神经网络。但是,机器学习模型也可以使用受到对应训练的其他机器学习模型。
根据各种实施方式,机器学习模型向对象的像素(在相应相机图像的图像平面中)分配描述符。这可以视为对象的表面拓扑结构的间接编码。描述符与表面拓扑结构之间的这种联系可以通过呈现明确进行,以便将描述符映射为图像平面。应当注意的是,可以借助于插值来确定对象模型的面(即不是顶点的点)处的描述符。例如,如果一个面由对象模型的3个顶点及其相应的描述符y1、y2、y3给出,则在该面的任意点处,可以将描述符y计算为这些值的加权和w1∙y1+w2∙y2+w3∙y3。换句话说,顶点处的描述符是插值得出的。
例如,为了为机器学习模型的训练数据产生图像对,在全局(即世界)坐标系中将包括具有已知3D(例如CAD)模型和已知姿态的对象(或多个对象)的对象的图像(例如RGB图像)映射为(密集)描述符图像,该描述符图像在以下含义下是最佳的,即该描述符图像是通过搜索描述符以最小化所述对象模型与其在描述符空间中的表示(嵌入)之间的几何属性偏差(所述几何属性特别是对象的点的接近度)而产生的。在实际使用中,通常不会找到用于最小化的理论最优解,因为所述搜索限于一定的搜索空间。尽管如此,在实际应用的限制范围内(可用计算精度、最大迭代次数等)确定最小值的估计。
每个训练数据图像对包括对象的训练输入图像和目标图像,其中通过根据对象在所述训练输入图像中具有的姿态将顶点在所述训练输入图像中可见的描述符投影为训练输入图像平面来产生所述目标图像。这些图像与其相关联的目标图像一起用于机器学习模型的受监督训练。
因此,所述机器学习模型被训练为识别一个(或多个)对象的明确特征。借助于实时评价所述机器学习模型,该信息可以用于各种机器人控制应用,例如预测用于安装的对象抓握姿态。应当注意的是,受监督的训练方案实现了对称信息的显式编码。
图5的方法可以由包括一个或多个数据处理单元的一个或多个计算机执行。表达“数据处理单元”可以理解为使得能够处理数据或信号的任意类型的实体。例如,可以根据由数据处理单元执行的至少一个(即,一个或多于一个)具体功能来处理数据或信号。数据处理单元可以包括模拟电路、数字电路、混合信号电路、逻辑电路、微处理器、微控制器、中央处理单元(CPU)、图形处理单元(GPU)、数字信号处理器(DSP)、可编程门阵列(FPGA)、集成电路或其任意组合或由它们形成。将在下文更详细描述的实现相应功能的任何其他方式也可以理解为数据处理单元或逻辑电路装置。应当理解,本文详细描述的方法步骤中的一个或多个可由数据处理单元通过由数据处理单元执行的一个或多个具体功能来执行(例如,实现)。
各种实施方式可以接收来自各种传感器的传感器信号,例如(例如,RGB或RGB-D)相机、视频传感器、雷达传感器、LiDAR(激光雷达)传感器、超声传感器、热成像传感器等,并且用于获得例如显示对象的传感器数据。将用于自主控制机器人、例如机器人机械手的实施方式用于在不同场景下实现不同的操纵任务。特别地,在控制和监视操纵任务的执行方面的实施方式例如可以在安装线上应用。
尽管这里已经说明和描述了具体实施方式,但是本领域的普通技术人员应当认识到,在不脱离本发明的保护范围的情况下,可以用多种替代和/或等效的实现方式代替所示和描述的具体实施方式。本申请应当涵盖本文讨论的具体实施方式的任何适配或变型。因此,仅通过权利要求及其等同物来限制本发明。

Claims (10)

1.用于从对象的相机图像中定位对象的位置的方法,包括:
为所述对象的对象类型设定待定位位置;
确定待定位位置的相对方位的参考;
针对所述对象类型训练用于将相机图像映射为描述符图像的机器学习模型,其中每个相机图像显示所述对象类型的一个对象,其中相机图像要被映射为的描述符图像针对由该相机图像在图像位置处显示的对象的位置,在所述图像位置处具有所述对象的位置的描述符;
将描述符参考集设置为描述符初始集;
接收相机图像的时间序列,其中每个相机图像显示所述对象类型的一个对象,以及通过以下方式为每个相机图像定位在相应对象上的待定位位置:
借助于经过训练的机器学习模型将所述相机图像映射为描述符图像,
通过在所述描述符图像中搜索描述符参考集的描述符,针对所述描述符参考集标识所述对象的待定位位置;以及
至少对于所述相机图像序列的一部分相机图像,包括:
针对所述参考集确定已定位位置的相对方位;和
将待定位位置的相对方位的参考与针对所述参考集确定的已定位位置的相对方位进行比较,
通过在所述描述符图像中搜索描述符测试集的描述符,针对所述描述符测试集来标识所述对象的待定位位置;
针对所述测试集确定已定位位置的相对方位;和
将待定位位置的相对方位的参考与针对所述测试集确定的已定位位置的相对方位进行比较;以及
如果对于一个或多个相机图像而言,待定位位置的相对方位的参考与针对所述测试集确定的已定位位置的相对方位之间的一致性比待定位位置的相对方位的参考与针对所述参考集确定的已定位位置的相对方位之间的一致性更好,则将所述参考集描述符更新为所述测试集描述符。
2.根据权利要求1所述的方法,其中,所述相对方位具有待定位位置或已定位位置在三维空间中的成对距离。
3.根据权利要求1或2所述的方法,其中,在所述对象类型的对象的参考相机图像上设定所述对象类型的待定位位置,将所述参考相机图像输送给所述机器学习模型,并且将所述描述符参考集在由所述机器学习模型为所述参考相机图像输出的描述符图像中设置为待定位位置的描述符。
4.根据权利要求1至3中任一项所述的方法,其中,在所述描述符初始集的有限范围内选择所述测试集。
5.根据权利要求1至4中任一项所述的方法,包括借助于协方差矩阵适配进化策略方法确定描述符测试集。
6.用于控制机器人的方法,包括以下:
根据权利要求1至5中任一项定位要由所述机器人处理的对象的位置,
从已定位位置确定所述对象的姿势并根据所确定的姿势控制所述机器人,和/或
从已定位位置确定所述对象的区域并根据所确定的区域控制所述机器人。
7.软件或硬件代理,特别是机器人,包括以下:
被设置为提供对象的相机图像的相机;
控制装置,其被设置用于执行根据权利要求1至6中任一项所述的方法。
8.根据权利要求7所述的软件或硬件代理,其具有至少一个执行器,其中所述控制装置被设置为使用已定位位置来控制所述至少一个执行器。
9.包括指令的计算机程序,所述指令在由处理器执行时促使所述处理器执行根据权利要求1至6中任一项所述的方法。
10.存储指令的计算机可读介质,所述指令在由处理器执行时促使所述处理器执行根据权利要求1至6中任一项所述的方法。
CN202210250987.7A 2021-03-16 2022-03-15 从对象的相机图像中定位对象的位置的设备和方法 Pending CN115082550A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102021202570.6 2021-03-16
DE102021202570.6A DE102021202570A1 (de) 2021-03-16 2021-03-16 Vorrichtung und verfahren zum lokalisieren von stellen von objekten aus kamerabildern der objekte

Publications (1)

Publication Number Publication Date
CN115082550A true CN115082550A (zh) 2022-09-20

Family

ID=83114948

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210250987.7A Pending CN115082550A (zh) 2021-03-16 2022-03-15 从对象的相机图像中定位对象的位置的设备和方法

Country Status (3)

Country Link
JP (1) JP2022142773A (zh)
CN (1) CN115082550A (zh)
DE (1) DE102021202570A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102022206274A1 (de) 2022-06-22 2023-12-28 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Steuern eines Roboters zum Manipulieren, insbesondere Aufnehmen, eines Objekts

Also Published As

Publication number Publication date
DE102021202570A1 (de) 2022-09-22
JP2022142773A (ja) 2022-09-30

Similar Documents

Publication Publication Date Title
JP5839971B2 (ja) 情報処理装置、情報処理方法及びプログラム
JP5612916B2 (ja) 位置姿勢計測装置、その処理方法、プログラム、ロボットシステム
JP5746477B2 (ja) モデル生成装置、3次元計測装置、それらの制御方法及びプログラム
JP6004809B2 (ja) 位置姿勢推定装置、情報処理装置、情報処理方法
JP6594129B2 (ja) 情報処理装置、情報処理方法、プログラム
CN112109082A (zh) 具有增强的扫描机制的机器人系统
JP5627325B2 (ja) 位置姿勢計測装置、位置姿勢計測方法、およびプログラム
JP6324025B2 (ja) 情報処理装置、情報処理方法
US20140018957A1 (en) Robot system, robot, robot control device, robot control method, and robot control program
JP2016170050A (ja) 位置姿勢計測装置、位置姿勢計測方法及びコンピュータプログラム
Lambrecht Robust few-shot pose estimation of articulated robots using monocular cameras and deep-learning-based keypoint detection
CN114494312A (zh) 训练从对象图像中识别对象的对象拓扑的机器学习模型的设备和方法
CN115082550A (zh) 从对象的相机图像中定位对象的位置的设备和方法
CN116018599A (zh) 用于训练机器学习模型以从对象的图像中识别对象的对象拓扑的设备和方法
US20220168902A1 (en) Method And Control Arrangement For Determining A Relation Between A Robot Coordinate System And A Movable Apparatus Coordinate System
US11964400B2 (en) Device and method for controlling a robot to pick up an object in various positions
JP2011174891A (ja) 位置姿勢計測装置、位置姿勢計測方法、及びプログラム
Fröhlig et al. Three-dimensional pose estimation of deformable linear object tips based on a low-cost, two-dimensional sensor setup and AI-based evaluation
JP2015132523A (ja) 位置姿勢計測装置、位置姿勢計測方法及びプログラム
JP7249221B2 (ja) センサ位置姿勢キャリブレーション装置及びセンサ位置姿勢キャリブレーション方法
CN115205371A (zh) 用于根据对象的摄像机图像定位对象的部位的设备和方法
US20230154162A1 (en) Method For Generating Training Data Used To Learn Machine Learning Model, System, And Non-Transitory Computer-Readable Storage Medium Storing Computer Program
US20220274257A1 (en) Device and method for controlling a robot for picking up an object
US20230098284A1 (en) Method for generating training data for supervised learning for training a neural network
JP6766229B2 (ja) 位置姿勢計測装置及び方法

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