CN117256008A - 利用图像数据的实时定位 - Google Patents
利用图像数据的实时定位 Download PDFInfo
- Publication number
- CN117256008A CN117256008A CN202280032099.6A CN202280032099A CN117256008A CN 117256008 A CN117256008 A CN 117256008A CN 202280032099 A CN202280032099 A CN 202280032099A CN 117256008 A CN117256008 A CN 117256008A
- Authority
- CN
- China
- Prior art keywords
- known object
- image
- trained machine
- machine intelligence
- coordinates
- 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
Links
- 230000004807 localization Effects 0.000 title description 7
- 238000000034 method Methods 0.000 claims abstract description 67
- 238000012549 training Methods 0.000 claims description 85
- 238000013528 artificial neural network Methods 0.000 claims description 17
- 238000003032 molecular docking Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 18
- 230000008569 process Effects 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 7
- 230000008901 benefit Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 230000005484 gravity Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 2
- 206010028980 Neoplasm Diseases 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 238000007689 inspection Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 210000000056 organ Anatomy 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 208000031481 Pathologic Constriction Diseases 0.000 description 1
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000428 dust Substances 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 238000011176 pooling Methods 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000000306 recurrent effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
- 238000009333 weeding Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- 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/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- 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/20—Special algorithmic details
- G06T2207/20084—Artificial neural networks [ANN]
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Multimedia (AREA)
- Image Analysis (AREA)
Abstract
本文公开了用于使用图像数据对设备进行实时定位的方法和***。所公开的用于相对于已知对象定位设备的方法包括捕获已知对象的至少一部分的图像。该方法还包括利用经训练的机器智能***和图像来确定图像的已知对象像素集的已知对象坐标集。已知对象坐标集:是经训练的机器智能***的输出;在对象的参考系中;并且使用每个对象坐标具有至少两个值的编码来对已知对象坐标集中的每个对象坐标进行编码。该方法还包括利用来自经训练的机器智能***的已知对象坐标集相对于已知对象定位设备。
Description
相关申请的交叉引用
本申请要求2021年4月30日提交的美国临时专利申请No.63/182714的权益,出于所有目的通过引用将其全部内容并入本文。
背景技术
姿态估计任务可以涉及从对象的图像确定对象的姿态。关于三维空间进行的姿态估计任务的输出是六自由度(6-DOF)输出,其包括对象在x坐标、y坐标和z坐标方面的位置以及对象在俯仰、偏航和翻滚方面的旋转。姿态估计是机器视觉领域中的重要任务并且其一直是研究的热点。从对象的图像确定对象的姿态的最新的方法中,已经利用经训练的机器智能***来实施姿态估计流水线(pipeline)的至少一部分。然而,这些***中的许多地方具有明显的限制,诸如在它们的有限的准确度和大量的计算资源需求。使用经训练的机器智能***的姿态估计仍然是研究的活跃领域,也是未来创新的有前途的领域。
发明内容
本文公开了用于使用图像数据对设备进行实时定位的方法和***。该方法和***可以包括经训练的机器智能***,该经训练的机器智能***已经被训练以从已知对象的至少一部分的图像确定该已知对象的姿态。可以使用附接到设备的传感器从设备的角度捕获图像。因此,经训练的机器智能***可以用作定位流水线的一部分,从而相对于已知对象定位设备。定位流水线可以包括经训练的机器智能***以确定已知对象的姿态,以及透视和点(perspective and point,pnp)求解器以基于图像和图像内的已知对象的所检测到的姿态来定位设备。该对象称为是“已知的”,因为对象的特征对于***是先前可获得的(例如,使用对象的实际或模拟图像来训练经训练的机器智能***)。
在本文公开的本发明的具体实施例中,应用各种技术来使得能够相对于已知对象实时定位设备。因此,设备的定位可以用于控制对象附近的设备的导航。一个应用是用于控制空间中的对接、着陆或会合操纵(例如,该对象可以是月球表面上的着陆部位,并且设备可以是旨在着陆场所的太空飞行器)。此类应用提供显著的益处,因为当前月球和地球同步轨道之外的普通空间不具有诸如全球定位***(GPS)的定位***来辅助引导和导航。另外的应用包括在感兴趣区域内的高精度车辆定位以便为空中飞行器添加燃料(例如设备是飞行器,并且对象是燃料源)、具有增强或虚拟现实的计算机游戏应用、医疗应用(例如已知对象是肿瘤或器官,并且设备是基于图像引导的外科手术机器人***)、机器人操纵器(例如已知对象是存储结构,并且设备是仓库机器人)、工业检查应用(例如已知对象是石油管道,并且设备是水下修理或检查机器人)、农业应用(例如已知对象是田地中的一行作物,并且设备是拖拉机)以及许多其它应用。实际上,在任何应用中,当诸如GPS的可选导航***不可用、不提供足够的精度或者不可行时,机器智能***可以利用已知对象的图像进行训练,当应用本文公开的各种技术时,可以认识到其显著的益处。
在本发明的具体实施例中,经训练的机器智能***设计为输出输入图像中的已知对象像素集的经编码的已知对象像素坐标。给定像素的已知对象像素坐标是在对象的参考系中的坐标,与可以在该给定像素中看到的已知对象的部分的位置相对应。对象坐标的编码可以包括每个对象坐标至少两个值。在本发明的具体实施例中,可以在经训练的机器智能***的训练期间独立地对至少两个值中的值进行回归。在本发明的具体实施例中,至少两个值中的值可以是对用于训练机器智能***的损失函数的单独且独立的输入。经编码的已知对象像素坐标可以用作经训练的机器智能***的中间训练输出,或者经训练的机器智能***的最终输出。发明人已经确定,与使用仅输出并对未编码的单个值的已知对象像素坐标进行回归的经训练的机器智能***的方法相比,以这种方式训练并且包括这种类型的训练输出的经训练的机器智能***在推理的准确度、训练的速度和推理的速度生成方面都表现了优越的性能。
在本发明的具体实施例中,提供了一种用于相对于已知对象对设备进行定位的方法。所述方法包括利用附接到设备的传感器来捕获所述已知对象的至少一部分的图像。所述图像包括像素集。该方法还包括利用图像从所述像素集中确定已知对象像素集。所述已知对象占据所述图像中的所述已知对象像素集。所述方法还包括利用经训练的机器智能***和图像来确定已知对象像素集的已知对象坐标集。所述已知对象坐标集在所述对象的参考系中,并且使用每个对象坐标具有至少两个值的编码来对所述已知对象坐标集中的每个对象坐标进行编码。该方法还包括利用来自所述经训练的机器智能***的所述已知对象坐标集来确定所述设备相对于所述已知对象的位置和方向中的至少一个。
附图说明
图1示出了根据本文公开的本发明的具体实施例的经训练的机器智能***的框图;
图2示出了根据本文公开的本发明的具体实施例的在一维参考系中对已知对象像素集坐标进行编码的示例;
图3示出了根据本文公开的本发明的具体实施例的在三维参考系中对已知对象像素集坐标进行编码的示例;
图4示出了根据本文公开的本发明的具体实施例的一组用于训练机器智能***的方法的流程图;
图5示出了根据本文公开的本发明的具体实施例的一组用于使用经训练的机器智能***相对于已知对象定位设备的方法的流程图;
图6示出了根据本文公开的本发明的具体实施例的一组用于确定设备相对于已知对象的位置和方向中的至少一个的方法的两个流程图。
具体实施方式
本文详细公开了根据上述发明内容的使用图像数据对设备进行实时定位的方法和***。在本文中公开的方法和***是本发明仅用于说明的目的的非限制性实施例,而不应该用于限制本发明的全部范围。如上述发明内容中所述,根据本文公开的本发明的具体实施例的***可以包括定位流水线,该定位流水线获取已知对象的图像并输出设备相对于已知对象的位置和方向中的至少一个。定位流水线可以包括具有各种特征的经训练的机器智能***,这些特征取决于定位流水线所应用到的应用和流水线中的附加***。
经训练的机器智能***可以是人工神经网络(ANN)、支持向量机或任何类型的函数逼近器或等效算法***,其可以使用已知对象的图像数据进行迭代调整。用于训练经训练的机器智能***的图像数据可以包括捕获的已知对象的真实图像或已知对象的模拟图像。训练可以包括使用标记的图像数据的监督学习或无监督学习。在ANN的情况下,可以利用多种形式的ANN,包括卷积神经网络、对抗网络、注意力网络、递归神经网络(RNN)以及各种其他网络。ANN可以包括多个层,诸如卷积层、全连接层、池化层、上采样层、丢弃(dropout)层以及其他层。ANN可以包括一个或多个编码器和一个或多个解码器。ANN可以仅是前馈的,或包括递归路径,例如在RNN的情况下。可以使用线性回归、支持向量回归、随机森林、决策树或k近邻分析算法中的一个或多个来训练经训练的机器智能***。
图1示出了根据本文公开的本发明的具体实施例的经训练机器智能***100的框图。在图1的示例中,经训练的机器智能***是卷积神经网络,其具有包括编码器101的层集合和包括解码器102的层集合。这是CNN领域中用于图像处理的常见结构,其中编码器将来自图像空间的信息转换为特征空间中的信息,并且解码器将特征空间中的信息转换回图像空间中的信息。CNN包括多种层,包括卷积层、上采样层、池化层和丢弃层。CNN可以是诸如U-Net的深度卷积网络。编码器和解码器中的层通过级联操作103来链接。经训练的机器智能***100的中间层包括具有在卷积层中使用的值的滤波器(filter),并且在训练期间对其进行调整以便网络学习已知对象的特征。以这种方式,在训练期间将已知对象的各方面和训练数据中的任何变化结合到经训练的机器智能***中。
经训练的机器智能***可以具有各种输入,其取决于其在定位流水线中的位置以及其作用。一般而言,经训练的机器智能***将与图像一起使用,以生成用于图像中的像素的至少一个子集的已知对象坐标。然而,图像可以在其被递送到经训练的机器智能***之前,可以由其它***预处理。经训练的机器智能***的输入可以是已知对象的至少一部分的图像或已知对象的经处理的图像数据。可以使用附接到相对于对象正被定位的设备的传感器来捕获图像。图像可以包括像素集,每个像素具有一个或多个像素值(例如,灰度整数值或用于对诸如RGB编码之类的颜色方案进行编码的多个值)。如本文所使用的,不管原始图像数据是否被直接输入到经训练的机器智能***,或者如果图像数据作为输入提供给经训练的机器智能***的之前首先由定位流水线的较早阶段处理,经训练的机器智能***仍将被描述为与图像一起使用以确定图像中的像素的对象坐标。
经训练的机器智能***的输入可以包括一个或多个图像。例如,经训练的机器智能***可以设计成从单个图像生成单个推断。然而,经训练的机器智能***还可以接收同时间或在不同时间拍摄的多个图像。因此,输入可以是对象的立体图像,其中任意数量的图像来自设备上的任何数量的传感器拍摄。替代地或组合地,输入可以包括随着设备相对于对象移动而拍摄的对象的图像的时间序列。
对经训练的机器智能***的输入和图像可以具有各种编码。例如,图像可以包括图像中的每个像素具有单值灰度的或色码形式的像素数据集。作为另一示例,图像可以包括图像中的每个像素具有RGB值形式的多个像素数据集。作为另一示例,图像可以以三维体素值集的形式被编码,其中这些值是单个值或多个值。
在不同的实施方式中,输入和图像可以具有各种维度。图像可以是已知对象的1维、2维、2.5维或3维图像,并且到网络的输入可以具有与图像相同或不同的维度。例如,二维图像的像素数据可以以像素值的一个或多个二维矩阵提供给网络,或者三维图像的体素数据可以被预处理并且以一个或多个二维像素值矩阵提供给网络。在二维输入和图像的情况下,经训练的机器智能***的输入可以具有与图像相同的宽度和长度,或者不同的宽度和长度。
经训练的机器智能***的输入可以包括与图像数据组合使用的附加数据。例如,输入可以涉及关于图像的元数据,诸如拍摄图像的时间、拍摄图像时的天气、拍摄图像时的环境光条件或其他元数据。作为另一示例,输入可以涉及通过附加传感器与图像数据一起获取的附加传感器数据,诸如对象的深度数据、雷达数据、对象的立体图像数据、里程计数据、惯性移动单元数据、重量数据、来自多个电磁光谱(例如,SWIR、IR、UV、可见光等)的图像数据等。附加传感器数据可以由设备上的附加传感器收集。
图像可以是已知对象的至少一部分,并且可以替代地或组合地包括已知对象的被遮挡部分。本发明的具体实施例的显著益处之一包括以下事实:在提供给经训练的机器智能***之前,已知对象不需要对图像的中心和/或以特定缩放水平进行处理。相反,来自各种距离并且具有从图像的中心的各种平移和旋转的已知对象的图像可以被输入到经训练的机器智能***。本申请的具体实施例的另一显著益处包括以下事实:仅需要一部分对象在图像中。例如,如果该对象被另一对象遮挡、被阴影覆盖或者在图像框外部,则经训练的机器智能***仍然可以提供已知对象所在的像素的已知对象坐标,或者已知对象如果未被遮挡的情况下将会所在的像素的已知对象坐标。虽然如上所述,预处理(例如,边界框、对象检测、图像处理差异消除等)可以被应用以在图像被提供给经训练的机器智能***之前从图像中去除这些差异,但是如果图像可以在没有经过这样的预处理的情况下被直接提供给网络,则在减少的计算资源消耗和用于推断的时间方面获得益处。该益处可以通过利用添加各种变化的对象的图像并且通过使用本文所描述的坐标编码来训练本申请所公开的具体经训练的机器智能***来实现。
在图1的示例中,图像104是具有512像素的宽度和512像素的长度的小行星形式的已知对象的灰度图像。因此,经训练的机器智能***100的输入是一组512×512像素值,其具有对应于图像中的每个像素的灰度数值的形式。编码器101的第一层将以滤波器的许多卷积的形式对这些灰度数值进行一组数学运算,所述滤波器以图像104的灰度数值限定编码器101的第一层。
经训练的机器智能***取决于其在定位流水线中的位置以及其将起到的作用而可以具有各种输出。一般而言,经训练的机器智能***可以帮助确定对象的图像中的已知对象像素集的已知对象坐标集。如在发明内容中所描述的,针对给定像素的已知对象像素坐标是对象的参考系中的与可以在该给定像素中看到的已知对象的部分的位置相对应的坐标。已知对象像素坐标可以由表示坐标的二进制数、整数或浮点数来表示。经训练的机器智能***可以输出对象的参考系中的已知对象像素集。参考系可以具有各种格式,诸如笛卡尔x-y-z坐标系、球面坐标系或其它坐标系。在不同实施例中,参考系的坐标系还可以具有各种维度,诸如三维x-y-z坐标系或二维x-y坐标系(例如,用于平面对象或绘画)。
在本发明的具体实施例中,经训练的机器智能***可以以编码方式输出已知对象像素集,该编码方式包括每个坐标至少两个值。在本发明的可选实施例中,经训练的机器智能***可以以编码方式输出已知对象像素集,该编码方式包括一个坐标至少两个值以及其它坐标一个值。如本文所使用的,机器智能***的输出是由机器智能***响应于向机器智能***输入的应用而生成的一个或多个值,并且其可以直接由定位流水线的后续阶段使用,经训练的机器智能***是该定位流水线的一部分,或者其可以用作在经训练的机器智能***的训练期间例如通过在用于经训练的机器智能***的训练算法的损失函数中使用而递归的训练输出。在已知对象坐标以编码方式输出的情况下,单独的解码器可以对编码进行解码,如下面参考图6的描述。在本发明的具体实施例中,解码器也可以是经训练的机器智能***。在这些实施例中,可以同时或单独地训练解码器和输出经编码的已知对象坐标的机器智能***两者。在同时训练的情况下,经解码的已知对象坐标和经编码的已知对象坐标两者都可以对用于引导解码器和机器智能***的训练的损失函数做出贡献。
已知对象坐标可以在对象的参考系中。参考系可以对应于对象的规范方向和对象的规范原点。参考系可以是笛卡尔坐标系,其原点在对象的重心或体积中心(例如,工业部件的重心、车辆的重心、地标位置中的中间点、航天飞船上或航天飞船中的特定点、月球中心等)并且与对象的特定旋转对齐。然而,可替代地定位的参考系是可能的。只要对象在参考系中配准,参考系就不需要以对象为中心。例如,参考系可以是以地球为中心的参考系、以地面为中心的参考系或以任何其他对象为中心的参考系。取决于应用,参考系可以而具有各种尺寸。例如,已知对象坐标可以被编码为与设备正在行进的行、道路、走廊、人行道或路径的中心相距的笛卡尔距离,其中参考系是一维参考系。
已知对象坐标的编码可以采取各种形式。通常,编码可以包括每个已知对象坐标至少两个值。该至少两个值可以是标准二进制编码、格雷码编码、多项式编码、正弦编码、傅里叶变换编码和其他编码及其组合的一部分。编码可以是使用已知对象坐标作为输入的任何基函数,诸如傅里叶基函数、拉普拉斯基函数、如正弦基函数的三角基函数,以及各种其他基函数。将x坐标的浮点数形式的已知对象坐标编码为两值定点二进制编码的具体示例提供如下。编码函数可以包括,首先将已知对象坐标从浮点数形式归一化为定点值(2^N-l)*(x-max_z)/(max_x-min_x),其适于我们对其编码的值的数量“N”。该函数可以继续将该固定宽度数的二进制表示作为用于编码的值。因此,如果我们具有在0和1之间的x坐标值“X”(为了简单起见已经归一化),并且在编码中具有N=2个值,则我们相乘(multiply)X*(2^N-l),或者向下取整(floor)(X*3)。因此,X=1的编码值将是(1.0,1.0),X=0将是(0.0,0.0)并且X=0.5将是(0.0,1.0)。
不管用于产生编码的函数如何设置,编码可以包括用于已知对象坐标中的每一个的可单独训练的值。例如,在先前段落中提供的编码示例中,x坐标“1”可以编码为两个可单独训练的值“1”和“1”,使得这两个值之间的差和训练输出可以输入到用于训练经训练的机器智能***的损失函数。作为另一示例,x坐标“3”可以编码为标准二进制编码11,其中该编码中的两个值“1”和“1”中的每一个是机器智能***中的可单独训练的值。作为另一示例,x坐标148可以以多项式方程x2+y编码,其中x是12并且y是4,其中x值和y值都是机器智能***中的可单独训练的值。
编码的大小可以采取各种形式。在本发明的具体实施例中,编码可以包括原始图像中的每个像素值的集。在替代方案中,编码可以包括原始图像的像素子集中的每个像素的值的集。例如,仅对于对象被识别为占据像素的那些像素。在本发明的具体实施例中,编码将包括值的多个集,其中值的集中的每个值表示像素集中的一像素,或像素集中的像素的子集。编码的分辨率可以通过增加值的集的数目来增加。编码相对于原始图像的大小可以通过改变每个这样的集中的值的数目来增加或减少。
编码中的值可以采取各种形式,包括使编码中的每个值是整数、二进制数、浮点数(例如,单精度、双精度或十进制精度)等。还可以在定位流水线中使用不同精度水平表示这些值,诸如8位整数、16位整数、16位浮点数等。用于每个值的数字类型必然取决于所使用的编码类型。在编码是二进制编码的情况下,各个值将是二进制的。在编码是正弦编码的情况下,各个值可以是从0到1的十进制数。
编码也可以由经训练的机器智能***以各种方式表示。例如,经训练的机器智能***可以将编码值存储在一组通道(channel)中。对于由编码表示的所有已知对象坐标,每组通道可用于表示给定坐标的编码(例如,第一组通道用于x坐标,第二组通道用于y坐标)。通道组中的每个通道可以包括一组值,并且具有与来自输入图像的像素集相同的尺寸。或者每个通道中可具有更少的值,这取决于来自图像的多少像素正由编码表示。每个已知对象坐标的至少两个值可来自通道组中的不同通道。如上所述,通过增加表示每个坐标的值的数量,编码可以包括不同程度的分辨率,这将需要增加表示已知对象坐标的每个坐标的通道的数量(例如,对于编码的x坐标,将通道的数量从5增加到8将使每个坐标的分辨率从5位增加到8位)。
在图1的示例中,经训练的机器智能***100的输出包括已知对象坐标的编码105,其中已知对象坐标集中的每个对象坐标以每个对象坐标至少两个值进行编码。编码105包括三组通道106、107和108。每组通道包括八个通道,其每个通道是具有与构成图像104的像素集相同维度的矩阵(例如,它们都是512×512值的矩阵)。这样,每个通道存储输入图像中的每个像素的一个坐标的一个值。每组通道包括每个像素的已知对象坐标值的集。如图所示,值的集109是在构成通道组108的八个通道上存储的图像的右上像素的x坐标的值。所有这些输出可以被提供给解码器,解码器将值解码成每个像素的一组单值x坐标、y坐标和z坐标。然而,各种通道中的每个值也可以单独地用作训练经训练的机器智能***100的训练输出,并且可以单独地进行回归。发明人已经发现,与仅在已知对象坐标的单值坐标上进行训练的方法相比,该方法提供了更快的收敛以及更高的准确度和更好的性能。
经训练的机器智能***可确定输入图像中的哪些像素对应于已知对象,并输出关于除已知对象坐标之外的关于所述确定的信息。在本发明的具体实施例中,定位流水线中的独立***将预处理图像以确定图像的哪些部分对应于已知对象。然后,该独立***可以从图像中分割对象,并且仅将已知的对象像素提供给经训练的机器智能***。然而,在替代实施例中,经训练的机器智能***还可以确定图像的哪些部分是已知对象像素,以及哪些不是已知对象像素(例如,相同的经训练的机器智能***可以输出输入图像中的已知对象像素的已知对象坐标,并且输出图像中与已知对象不相关联的像素的空值或零值)。另外或替代地,相同的经训练的机器智能***或独立***可输出输入图像的可见性概率图。
图1的经训练的机器智能***执行前一段中所述的两种方法的结合。在图1的示例中,编码输出105包括与来自图像104的对象不相关联的图像部分的空值。另外,经训练的机器智能***输出可见性概率图110,该可见性概率图110是二进制掩码,其中“1”值指示与对象的可见部分相关联的像素和“0”值指示不包含对象的可见部分的像素。
其中,在生成可见性概率图的本发明的具体实施例中,该图可以采取多种形式。该***可以生成单独的图以表示单个图中的不同类别的像素,或表示单个图中编码的不同类别的像素。一个或多个图可以区分与已知对象在图像中可见的已知对象的一部分相关联的像素(可见像素)、已知对象在该图像中被遮挡的已知对象的一部分相关联的像素(被遮挡像素)、以及已知对象不存在的像素(在边界像素之外)。取决于应用,一个或多个图可以使被遮挡像素收缩到可见像素内或边界像素之内。一个或多个图可以包括指示像素是属于一个类别还是另一个类别的二进制值(例如“1”指示对象的一部分,而“0”表示不是对象的一部分的像素)。该图可以可替代地或组合地包括0到1之间的归一化值,表示给定像素与给定类别对应或不对应的概率。如果该图包括表示概率的0到1之间的归一化值,为了训练机器学习模型,则这些概率的地面真值(ground truth)将是“0”(像素不是已知对象的部分),或“1”(像素是已知对象的部分)。
在生成可见性概率图的本发明的具体实施例中,该图可以用于各种目的。该图可以由经训练的机器智能***输出,或者由独立***提供,并且然后用于简化定位流水线的训练或后续阶段。例如,可见性概率图可以用于抑制训练,其通过迫使经训练的机器智能***的损失函数忽略不包含对象和/或包含对象的被遮挡部分的图像部分的预测已知对象坐标与地面真值已知对象坐标之间的差异而实现。特别地,可见性概率图可以在经训练的机器智能***的训练期间,通过仅在根据可见性概率图已知对象被认为可见(例如,该已知对象坐标的像素的值高于阈值)的情况下计算与已知对象坐标有关的损失部分来使用。作为另一示例,可见性概率图可以由下游***使用以确定置信度,在尝试求解对象的姿态或设备的定位时,利用该置信度考虑已知对象坐标。
在编码是标准二进制或格雷码编码的本发明的具体实施例中,可以对训练数据的编码进行平滑处理以提高机器智能***的性能。该平滑可以例如通过高斯模糊来进行,但是许多其它方法也是可行的,诸如训练另一经训练的机器智能***来进行平滑代码,同时维持机器智能***的性能。经过训练的机器智能网络通常在平滑输入的情况下学***滑以反映这一点。
在本发明的具体实施例中,已知对象坐标集可以包括用于在图像中被遮挡的对象的部分的坐标。例如,由经训练的机器智能***输出的已知对象坐标集中的至少一个已知对象坐标可以与图像中的已知对象被遮挡部分相对应,但是仍可以针对图像中的对应像素提供已知对象坐标。例如,如果对象是月球表面,则阴影、尘云或其它模糊介质可以覆盖图像中对象的部分,但是经训练的机器智能***将仍为被遮挡的部分生成对象坐标。经训练的机器智能***事实上可以利用图像来训练,其中在这些图像中,对象的部分通过仿真或在对象的实际图像中被故意地遮挡以便使***获取该能力。由此在具体实施例中,由经训练的机器智能***确定的已知对象坐标集中的至少一个已知对象坐标将与图像中的已知对象的被遮挡部分相对应。
在其中经训练的机器智能***或替换***生成可见性概率图的实施例中,可见性概率图可以对对象的被遮挡部分进行编码,与图像的在对象边界之外的部分相同或不同。然后,定位流水线的训练或后续阶段的简化可以基于可见性概率图中的编码来不同地对待被遮挡部分和对象边界之外的部分。例如,被遮挡部分仍然可以被考虑用于训练经训练的机器智能***以准确地预测其中对象被遮挡的图像中的对象坐标,但是被遮挡部分的已知对象坐标的预测可以在运行时被忽略,以避免影响确定对象姿态或确定设备定位的潜在不准确性。在相同的示例中,根据可见性概率图完全在对象边界之外的图像的部分可以被完全忽略,以简化定位流水线的训练和后续阶段。
如前所述,在本发明的具体实施例中,可以使用格雷码对经训练的机器智能***输出的已知对象坐标进行编码,使得编码为格雷码编码。通用二进制数字代码在位之间快速变化。例如,十进制数1是标准二进制码中的01,十进制数2是标准二进制码中的10。注意,对于仅一个十进制数的差异中代码的两位发生改变。作为替代,已知对象坐标可以用格雷码来编码,格雷码在相邻值之间具有较低的变化率。例如,十进制数“1”的格雷码是01,十进制数“2”的格雷码是11。如图所示,一次仅一位改变。使用格雷码编码的已知对象坐标可用于训练经训练的机器智能***。在具体的实施方式中,用于位码映射的格雷码编码可以更好地学习,因为映射上的模式更聚集和连接,因此可能存在更少的被误解为噪声的孤立位。格雷码还允许更容易的纠错,例如如果需要的话,通过使用汉明纠错额外码位。
图2示出了根据本文公开的本发明具体实施例,在一维参考系中对已知对象像素坐标集进行编码的示例。在这一示例中的参考系是一维轴(例如,用于表示沿着走廊的位置),并且已知对象坐标可以是沿着轴距原点的距离值。十进制值在列表200中提供,并且排列在与它们相关联的格雷码的列表201旁边。在这一编码中提供三个值以便于绘制,但是可以由提供更大值的编码(例如,8位、16位等)来代替。在图示的实施例中,经训练的机器智能***使用如列表202中所示的三个通道的组表示来自已知对象坐标的每个坐标。由于这是一维情况,所以已知对象坐标仅包括单个坐标。在这一简单情况下,三个通道包括对距离坐标进行编码的单独的二进制值。在这一示例中,列表202的每一列表示单个已知对象坐标的单个输出值。该示例旨在说明每个单独通道的信号如何进行相对平滑,其中强调最小化转换次数。另外,每个组值具有少量差异,从而使得输出回归的空间相对平滑。这样,这一示例示出了格雷码如何可以产生更准确和更容易训练的机器智能***。
图3示出了根据本文公开的本发明具体实施例,在三维参考系中对已知对象像素坐标集进行编码的示例。在这一具体实施例中,尽管仅示出了第一、第四和第十四位,但是编码使用16位格雷码编码。列300示出了在这一情况下是小行星的对象的原始图像。列301示出了原始图像中每个像素以小行星为中心的三维参考系中x坐标的编码。列302示出了原始图像中每个像素的三维参考系中y坐标的编码。列303示出了原始图像中每个像素的三维参考系中z坐标的编码。根据编码,每个坐标由若干值表示,在所图示的情况下,每个像素和每个维度的编码的第一位在第一行中示出,第四位在第二行中示出,并且在第十四位第三行中示出。如所图示的,每个通道与输入图像的分辨率相同。然而,在具体实施例中,它们可以被二次采样成更低的分辨率。如果所示的通道是网络的唯一训练输出,则将有九个通道要训练。然而,由于这一示例包括具有16位分辨率的编码,所以要训练的通道数目将为16×3(通道数目是每个坐标的值的数目乘以维数)。由于每个通道包括的条目数等于与原始输入图像中的像素数目,所以这可能导致损失函数的大量输出。这样,上文提到的输出可见性图可以有利地将需要考虑的值的数目限制为对象实际存在于其中的像素子集。
根据本发明的具体实施例,图3的示例还呈现了对经训练的机器智能***的训练进行概念化的不同方式。如图所示,每个笛卡尔坐标首先被归一化以进行编码,例如各自以16个二进制值(针对每个像素表示的0至65536个潜在坐标值)进行编码。图像中的像素的每组二进制值然后可以由单个黑白图像表示。因此,代替使用复杂三维数值x-y-z数据来进行学习,经训练的机器智能***可以使用作为上述通道实例的一组黑白图像来进行训练。在该示例中,每个坐标将从参考系的三维和16个二进制值产生48个图像。在具体实施方式中,与三维坐标的数值表示相比,使用黑白表示来训练经训练的机器智能***更有效。
在本发明的具体实施例中,训练可以各种方式进行,并且其取决于经训练的机器智能***的特性。为了避免疑义,如本文所使用的术语“经训练的机器智能***”包括已经被配置但是仍然处于其默认状态(即在应用训练数据之前)的***。训练过程通常涉及收集训练数据,将训练数据输入到经训练的机器智能***,以及基于响应于训练数据输入而产生的输出来调整经训练的机器智能***的特性。调整步骤可以包括使用与输入训练数据相关联的匹配的输出训练数据,以查看由经训练的机器智能***产生的输出是否与预期输出匹配。这种输出训练数据可用的训练输入数据可以称为标记的训练数据。
在本发明的具体实施例中,训练数据将为已知对象的图像,该图像标有关于网络预期响应于图像数据而产生的任何输出的地面真值信息。例如,地面真值信息可以包括图像中的每个像素或像素的子集的未编码的已知对象坐标、图像中的每个像素的可见性图的值、以及图像中的每个像素的编码的已知对象坐标的值。已知对象扫描可以是任何正在提供定位的目标或场景。该对象可以是工业部件、车辆、地标、航天飞船、月球、农田及其周围环境、器官或肿瘤等。图像可以是来自相对于已知对象的不同相机姿态的对象的图像。对象可以在图像中部分地被遮挡或者仅部分地位于图像内。图像可以包括在图像的框内的各种位置和姿态的对象。
一般而言,训练数据将与经训练的机器智能***在其被部署时将作为输入接收的数据格式匹配。例如,如果所部署的***包括除图像数据之外的其他数据(例如上述里程计数据),则训练数据也可以包括该数据。作为另一示例,如果所部署的***包括将捕获对象的RGB图像的可见光相机,则训练数据可以是对象的RGB图像。
训练数据可以被收集(例如,使用捕获已知对象的图像的相机)或者可以被合成(例如,使用已知对象的CAD模型)。合成训练数据可以被称为合成数据。如果训练数据被收集,则地面真值训练输出数据也可以使用附加传感器或在图像被捕获时设备和对象的相对位置的知识来捕获(例如,使用装置将传感器定位在相对于设备的已知位置或方向处)。不论如何捕获数据,输入训练数据都可以变化修改,以改进经训练的机器智能***的性能。另外,设备的原始收集和合成可以以故意引入变化的方式进行。变化可以包括照明、颜色变化、添加天气或天气效应、更改对象的表面材料、灰尘效果、对象相对于相机的姿态的轻微扰动、噪声和其它失真,以确保经训练的机器智能***将操作而不管传感器中的误差或在***操作期间条件的改变。变化还可以包括将对象移离图像中心或修改在图像中感知对象的缩放水平。训练数据也可以使用由传感器的变化的模型产生的变化来生成,该传感器在经训练的机器智能***被部署时获得输入数据。在这些实施例中,经训练的机器智能***将通过其训练而结合已知对象的图像集,其中已知对象呈现有上述变化的采样(例如,其中已知对象在图像中偏离中心)。
在本发明的具体实施例中,可从经训练的机器智能***的有效区域的视角收集或合成训练数据。这些实施例可以包括定义有效区域(例如,在三维参考系的情况下的有效体积)的单独步骤,用于基于当部署经训练的机器智能***时设备相对于对象定位的先验知识来导航设备。在三维对象的情况下,训练图像可以对应于所定义的体积中的6-DOF姿态采样,其中所定义的体积定义了设备相对于对象的可能位置集。这种有效区域可以简化经训练的机器智能***的操作,因为它可以减少由于对称性导致设备相对于对象的真实位置模糊的可能性。在这些实施例中,经过训练的机器智能***将通过其训练结合来自有效体积内的已知对象的图像集。
在前一段中描述的实施例可以有利地应用于其中需要相对于参考系的有限部分定位设备的情形,在该参考系中将生成已知对象坐标。例如,在设备是宇宙飞船并且已知对象包括用于宇宙飞船的着陆或对接表面的情况下,有效体积可以包括用于宇宙飞船的预计着陆或对接路径(approach)。作为另一个例子,在设备是仓库机器人并且已知对象是存储结构的情况下,有效体积可以包括仓库的地板并且延伸到仓库地板上方的机器人的传感器的高度。作为另一个例子,在设备是拖拉机并且已知对象是田地中的一排农作物的情况下,有效区域可以包括田地的表面。
图4示出了根据本文公开的本发明的具体实施例的用于训练机器智能***的一组方法的流程图400。流程图400的组合步骤构成了一组用于使用已知对象的图像来训练经训练的机器智能***的过程。流程图400开始于可选步骤,其限定了用于相对于对象导航设备的有效区域。然后,流程图400继续获得训练数据的步骤402,其可以包括从步骤402延伸的两个分支或任一个分支,因为可以在步骤403中合成训练数据(例如,输入和输出训练数据)和/或可以在步骤404中捕获输入训练数据并且可以在步骤405中获得输出训练数据。步骤404和405可以使用多个传感器同时进行,或者基于对数据捕获传感器正在被使用的环境的先验知识(例如,如果传感器已经先前与对象的参考系配准)来进行。步骤404可以使用与在部署期间使用相同的设备或使用单独的***来进行。步骤405可以包括人类自标注方法以从输入数据产生地面真值。在这些步骤中获得的输入数据可以类似于在部署当经训练的机器智能***时被提供给经训练的机器智能***的数据。输出数据同样可以类似于在部署当经训练的机器智能***时将由其生成的输出数据,并且还可以包括附加数据,诸如机器智能***的间歇训练输出。
流程图400继续进行步骤406:向机器智能***提供训练数据。如图所示,这可以包括将输入训练数据408馈送给机器智能***的数据读取器。输入训练数据可以包括图像数据,并且还可以包括任何附加数据(例如,深度数据、里程计数据等)中的任何一个。如上所述。在图示的情况下,机器智能***包括经训练的神经网络409。经训练的神经网络409输出已知对象坐标集410的编码。已知对象坐标集410的编码可以与输出训练数据411进行比较,并且这些值之间的差值可以在步骤412中用于更新神经网络409的权重。输出训练数据411可以是输入数据408中的图像中的像素的地面真值编码的已知对象坐标。已知对象坐标集410被提供给解码器413,解码器413将已知对象坐标集的编码转换成未编码的已知对象坐标414。未编码的已知对象坐标集414可以与输出训练数据415进行比较,并且这些值之间的差值可以在步骤412中用于更新经训练的神经网络409的权重。输出训练数据415可以是输入数据408中的图像中的像素的地面真值已知对象坐标。在解码器413也是经训练的机器智能***的具体实施例中,步骤412还可以包括更新权重,或者训练解码器413。将未编码的已知对象坐标集414提供给pnp求解器***416以生成设备定位417。定位416可以与输出训练数据417进行比较,并且可以在步骤412中使用这些值之间的差值来更新经训练的神经网络409的权重,并且可以使用差值在解码器413也被训练的实施例中来调整解码器413。输出训练数据417可以包括设备的地面真值姿态。步骤412可以包括使用损失函数,该损失函数使用由图中的块及其变型生成的任何值来计算的,该变型包括被明确示出为提供回步骤412的差值。该过程可以继续循环,直到整个定位流水线达到期望的准确度,在所图示的情况下,该定位流水线包括经训练的神经网络409、解码器413和pnp求解器***416。
图5示出了根据本文公开的本发明的具体实施例,相对于已知对象定位设备的一组方法的流程图500。流程图500开始于步骤501:将指令集加载到设备550上的至少一个计算机可读介质中,当指令集在由设备上的至少一个处理器执行时,使得***执行流程图500中的附加步骤。步骤501还可以包括将经训练的机器智能***(诸如使用流程图400中的方法训练的***)加载到设备550上的计算机可读介质中。在图示的情况下,设备550是航天飞船,其具有以可见光相机的形式的附接的传感器551、至少一个机载计算机可读介质553和处理器554的。至少一个计算机可读介质553可以存储用于本文公开的方法的指令和经训练的机器智能***。在替代方案中,可以使用存储的指令和位于替代位置处的处理器来执行部分方法,其中通过网络与设备交换这些替代指令的产品和其输入。
流程图500继续执行步骤502,使用附接到设备的传感器捕获已知对象的至少一部分的图像,其中所述图像包含像素集。在所说明的情况下,传感器551是可见光相机,已知对象555是着陆地点,且图像556是具有相关灰度像素值的二维像素阵列。传感器可具有已知投影模型(例如针孔模型或焦距模型),其可在稍后步骤中用作***的定位流水线的一部分。该步骤中使用的传感器可以是本文中任一公开的传感器,且其可以连同关于设备550或对象555的额外数据(例如本文中公开的那些数据)一起捕获图像。图像可以呈灰度级、色彩、单声道、立体声或本文其它地方公开的任何变型。图像可连同图像的时间序列和这样的附件数据一起捕获。然后,所收集的数据可呈现给经训练的机器智能***,例如存储于计算机可读介质553中的机器智能***。
流程图500继续执行步骤503和步骤504,该两个步骤一起处理,因为它们可以由经训练的机器智能***同时进行。步骤503涉及利用图像从像素集确定已知对象像素集,其中该已知对象占据图像中的已知对象像素集。该步骤可以作为经训练的机器智能***预处理图像的一部分,由与用于执行步骤504的***不同的单独的经训练的机器智能***来完成,或者使用与用于执行步骤504的***相同的经训练的机器智能***来完成。例如,步骤503可以涉及经训练的机器智能***接收图像556,并且识别作为已知对象555所位于的像素的已知对象像素集557。步骤504涉及使用经训练的机器智能***和图像来确定已知对象像素集的已知对象坐标集。例如,步骤504可以涉及经训练的机器智能***从执行步骤503的独立***接收已知对象像素集557,或者同时确定已知对象坐标集和已知对象像素集。在任一情况下,输出可以是已知对象坐标集558。已知对象坐标集558可以在对象555的参考系中。已知对象坐标集558可以使用每个对象坐标具有至少两个值的编码来对已知对象坐标集中的每个对象坐标进行编码。上面参考图1-3讨论了这种编码的示例。
流程图500继续执行步骤505,使用来自经训练的机器智能***的已知对象坐标集,确定设备相对于已知对象的位置和方向中的至少一个。例如,步骤505可以包括使用已知对象坐标集558来确定设备550相对于已知对象555的位置560。这个步骤可以由pnp求解器***来执行。这些***可以转换图像中对象的坐标点的图像,并将其转换成相对于对象的姿态。例如,可以向pnp***提供已知对象坐标集和可见性概率图,以执行算法(例如,随机样本一致性(RANSAC)评估)来确定设备相对于对象的位置或方向。用于姿态的RANSAC算法可以使用已知对象坐标的随机子集,并且计算许多候选姿态,每个候选姿态都来自已知对象坐标的新的随机子集。然后,它可以找到最佳一致姿态,并且可以可选地对“n”个最佳姿态进行平均计算,以找到更稳定/精确的最终姿态。
步骤505可以各种方式进行以提高定位流水线的性能。已知对象坐标可以用于结合对象的模型或其他先验理解、结合图像的时间序列、结合掩模、或结合附加传感器数据来定位设备。这些提高可以各种方式进行以提高步骤505的准确性或简化步骤505的执行。
借助于对已知对象的先验理解,可以简化步骤505的过程,或增强其准确度。对象的刚体运动模型或广义CAD模型可以用于消除如由捕获的已知对象坐标所表示的对象的大量潜在姿态。这可以通过预处理***来完成,该预处理***将从pnp***的考虑中移除明显的离群值坐标。作为另一个示例,可以使用已知对象的模型来实施对已知对象坐标的正则化,并且通过丢弃离群值确定的已知对象坐标或通过修改坐标来迫使已知对象坐标更靠近对象的模型点。这样的过程可以重复迭代,使得已知对象坐标开始稳定在如模型所预期的已知对象上的位置。
可替代地或组合地,使用过去的传感器数据的时间序列的分析来简化步骤505的过程或提高准确度以简化对象的姿态确定。例如,图像的时间序列可以用于基于姿态的过去估计来改进和稳定预测的姿态。例如,卡尔曼滤波器可以用于对噪声数据进行最佳预测或平滑。在相关示例中,如果对象与传感器捕获速率相比移动缓慢,则姿态预测可以随时间而平均,使得不允许姿态在帧之间大幅变化。
可选地或组合地,使用附加的传感器数据可以简化步骤505的过程被或提高精度。例如,pnp***可以要求姿态与用作对已知对象的可能姿态的约束的其它数据源(诸如IMU数据、车轮里程计数据、来自磁强计、重量传感器或陀螺仪的已知地平面方向等)兼容。
可选地或组合地,掩模可以用于将pnp***的分析聚焦在图像的某些坐标或某些部分上。例如,上文提到的可见性概率图可用于消除pnp求解器***中考虑的坐标。作为另一示例,如果掩模包括概率,则pnp求解器***可以考虑该值(例如,偏向高可见性概率的已知对象坐标的RANSAC评估)。掩模还可以仅选择已知对象的独特区域并且忽略其他像素,或者将与其他像素相关联的坐标视为不太准确而忽略。掩模还可以用于去除虚假坐标、忽略与图像中的对象的被遮挡部分相关联的坐标、忽略与可能不包括或不包括图像中的对象的部分相关联的坐标,或者使pnp***能够知道因为对象不位于图像中所以它不应当处理该坐标集,使得不浪费精力来处理随机输入噪声。
在本发明的具体实施例中,如果没有足够的计算机能力来在每一帧上执行姿态确定算法,则可以减少上述计算的频率,并且姿态估计可以与其他传感器(诸如IMU数据和上述其他数据)融合,并且将姿态限制为以预期速度随时间的变化,以便对象姿态随时间平滑。
在已经定位设备之后,该过程可以循环返回到步骤502以继续捕获另一图像。该过程可以或者与给定应用的期望图像收集速率、传感器的捕获速率(例如,相机的帧速率)同步、或者与设备的某个其他控制***(例如,设备的导航***的可接受输入之间的时段)同步地实时迭代地进行。如果过程不是连续地进行,则可以终止流程,并且定位流水线***可以等待另一输入开始。
上文参照图5所提供的描述没有明确地包括被编码的已知对象坐标的概念。然而,步骤504的执行可以包括确定编码的已知对象坐标,并且步骤505可以包括在将已知对象坐标提供给定位流水线中的后续阶段(例如,上述pnp***)之前对已知对象坐标进行解码。这样,步骤505中确定设备的位置和方向中的至少一个可以包括使用解码器将编码转换成用于已知对象的单值坐标集。解码器可以是分析解码器或机器智能解码器。在具体实施例中,***将包括解码器的两种类型和解码器的输出,并且用作训练期间的机器智能***的中间训练输出,并且可以生成值,该值被认为在部署经训练的机器智能***时达成关于适当的解码达到共识。
图6示出了根据本文公开的本发明的具体实施例,用于确定设备相对于已知对象的位置和方向中的至少一个的一组方法的两个流程图。流程图各自独立地表示实现来自图5的步骤505的方式。流程图600可以在包括分析解码器的定位流水线中执行。流程610可以在包括经训练的机器智能解码器的定位流水线中执行。在任一情况下均需要解码器,因为它正被应用于其中由经训练的机器智能***在步骤504中输出的已知对象坐标被编码的实施例。例如,它们可以使用上文关于图1-3和本公开中的其他地方描述的任何编码方式来编码。
流程图600包括使用分析解码器将编码转换为已知对象坐标的单值坐标集的步骤601,以及将单值坐标集应用于pnp求解器***的步骤602。pnp求解器可以使用上面关于步骤505提到的任何技术。例如,可以将一组通道形式的编码603提供给分析解码器604,分析解码器604将它们翻译成单值坐标集605,则单值坐标605可被应用于pnp求解器606,该求解器606输出设备相对于对象的位置或方向607。
流程图610包括使用经训练的机器智能解码器将编码转换为已知对象坐标的单值坐标集的步骤611,以及将单值坐标集应用于pnp求解器的步骤612。pnp求解器可以使用上面关于步骤505提到的任何技术。例如,一组通道形式的编码613提供给经训练的机器智能解码器614,解码器将它们翻译成单值坐标集615,则单值坐标615可被应用于pnp求解器616,该求解器616输出设备相对于对象的位置或方向617。如图4的例子中,可在生成已知对象坐标的经训练的机器智能***训练的同时,训练经训练的机器智能解码器614,或者可以单独训练经训练的机器智能解码器614。
本文公开的发明的各种实施例有许多应用。例如,一旦相对于对象或场景确定了传感器的姿态,则该姿态可以向下游传递到游戏***、增强现实***、机器人***、用于手推车或无人机的导航***、人***或车辆***、用于航天器的着陆或对接***,或者可以用于“辅助远程操作”,其中车辆或机器人可以大部分(分别)通过其自身来行驶或移动,使得控制车辆或机器人的人类操作员减轻负担,而不需要花费很多时间。这允许一个操作员潜在地指挥许多车辆或机器人。例如,在辅助远程操作中,农民可以指导若干机器人到若干田地中的行的通常起点处。一旦机器人到达那里,它可以通知操作员。然后,操作员可以释放机器人以开始对一行作物进行除草,并且机器人知道如何在不碾过植物的情况下沿着植物行前进。然后,它可以允许操作员远程操作,使机器人转向,或者机器人可以知道如何转向并对另一行进行同样操作。这使得操作员可以更自由地进行高水平的操作,而不是必须详细地驾驶每辆车辆或机器人。例如,在完全自主的情况下,这样的***可以用于自主驾驶。如果我们知道我们在场景/地图中的位置,则我们可以使用场景的已知地图模型从点A转到点B(即,汽车将驾驶的区域变成本文中的“对象”作为参考)。不同的***可以负责识别自行车和其他车辆并沿着路线避开它们,或者自行车和其他车辆可以被视为其他“对象”,从而其相对定位信息也被提供给汽车的导航***。作为另一示例,一旦确定对象的密集对象坐标,则所得到的信息还可以启用其他处理任务,例如将较大对象或场景的图像或三维模型拼接在一起。假定本文公开的一些经训练的机器智能***可以识别对象或场景的三维坐标,它们还可以例如创建场景的鸟瞰图或对象的标准视图。例如,机器人可以看到对象的一部分。可以根据对象的该部分建立对象的姿态,并且机器人然后可以推理如何抓住对象并将其从狭窄区域中取出并将其***到另一固定夹具或容器中。这是因为对象的整个三维模型和方向可以从对象的部分中知道。
尽管已针对本发明的具体实施例对说明书进行了详细描述,但是将理解的是,本领域技术人员在理解前述内容后可以容易地设想对这些实施例的变更、变化和等效物。上面讨论的任何方法步骤可以由与存储用于那些方法步骤的指令的计算机可读非暂时性介质一起操作的处理器执行。计算机可读介质可以是设备内的存储器或网络可访问存储器。在不脱离本发明的范围的情况下,本领域技术人员可以实施对本发明的这些和其它修改和变化,本发明的范围在所附权利要求中更具体地阐述。
Claims (30)
1.一种用于相对于已知对象定位设备的方法,包括:
利用附接到所述设备的传感器捕获所述已知对象的至少一部分的图像,其中所述图像包括像素集;
利用所述图像从所述像素集确定已知对象像素集,其中所述已知对象占据所述图像中的所述已知对象像素集;
利用经训练的机器智能***和所述图像确定所述已知对象像素集的已知对象坐标集,其中所述已知对象坐标集:(i)在所述已知对象的参考系中;以及(ii)利用每个对象坐标具有至少两个值的编码来对所述已知对象坐标集中的每个已知对象坐标进行编码;以及
利用来自所述经训练的机器智能***的所述已知对象坐标集来确定所述设备相对于所述已知对象的位置和方向中的至少一个。
2.根据权利要求1所述的方法,其中:
所述已知对象坐标集是所述经训练的机器智能***的中间训练输出。
3.根据权利要求1所述的方法,其中:
所述编码包括至少一组通道;
所述至少一组通道中的每个通道和所述像素集在尺寸大小上相等;以及
每个已知对象坐标的至少两个值各自来自所述至少一组通道中的不同通道。
4.根据权利要求1所述的方法,其中:
所述对象的参考系是至少一维的;以及
所述已知对象坐标集包括所述已知对象像素集中的每个像素的至少一个对象坐标。
5.根据权利要求1所述的方法,其中:
所述图像是所述经训练的机器智能***的输入;以及
利用所述经训练的机器智能***来确定所述已知对象像素集。
6.根据权利要求1所述的方法,其中确定所述设备的位置和方向中的至少一个包括:
利用分析解码器将所述编码转换成所述已知对象坐标集的单值坐标集;以及
将所述单值坐标集应用于透视和点求解器。
7.根据权利要求1所述的方法,其中确定所述设备的位置和方向中的至少一个包括:
利用经训练的机器智能解码器将所述编码转换成所述已知对象坐标集的单值坐标集;以及
将所述单值坐标集应用于透视和点求解器。
8.根据权利要求1所述的方法,其中:
所述编码中的每个值是二进制的。
9.根据权利要求1所述的方法,其中:
所述编码是格雷码编码。
10.根据权利要求1所述的方法,其中:
所述编码中的每个值是浮点数。
11.根据权利要求1所述的方法,其中:
作为确定所述已知对象像素集的一部分,所述经训练的机器智能***输出所述已知对象像素集的已知对象可见性概率图;
所述已知对象可见性概率为所述图像中的每个像素提供所述已知对象在所述图像的像素中可见的概率;以及
利用所述已知对象可见性概率图简化所述经训练的机器智能***的训练。
12.根据权利要求1所述的方法,其中:
所述经训练的机器智能***是神经网络;
所述神经网络的输入是所述图像;以及
所述神经网络的输出是所述已知对象坐标集的编码。
13.根据权利要求1所述的方法,其中:
所述已知对象坐标集中的至少一个已知对象坐标与所述图像中的所述已知对象的被遮挡部分相对应。
14.根据权利要求1所述的方法,其中:
所述经训练的机器智能***通过其训练结合所述已知对象的图像集,其中所述已知对象偏离中心。
15.根据权利要求1所述的方法,还包括:
限定用于导航所述设备的有效区域;
其中所述经训练的机器智能***通过其训练结合来自所述有效区域内的所述已知对象的图像集。
16.根据权利要求15所述的方法,其中:
所述设备是航天飞船;
所述已知对象包括所述航天飞船的着陆或对接表面;以及
所述有效区域包括所述航天飞船的预计着陆或对接路径。
17.根据权利要求15所述的方法,其中:
所述设备是仓库机器人;
所述已知对象是存储结构;以及
所述有效区域包括仓库的地板。
18.根据权利要求15所述的方法,其中:
所述设备是拖拉机;
所述已知对象是田地的一排农作物;以及
所述有效区域包括所述田地的表面。
19.一种设备,包括:
附接到所述设备的传感器;
至少一个处理器;以及
存储一组指令的至少一种计算机可读介质,所述一组指令在由所述至少一个处理器执行时,通过以下方式辅助相对于已知对象定位所述设备:
利用所述传感器捕获所述已知对象的至少一部分的图像,其中所述图像包括像素集;
利用所述图像从所述像素集中确定已知对象像素集,其中所述已知对象占据所述图像中的所述已知对象像素集;
利用经训练的机器智能***和所述图像确定所述已知对象像素集的已知对象坐标集,其中所述已知对象坐标集:(i)在所述已知对象的参考系中;以及(ii)利用每个对象坐标具有至少两个值的编码来对所述已知对象坐标集中的每个已知对象坐标进行编码;以及
利用来自所述经训练的机器智能***的所述已知对象坐标集来确定所述设备相对于所述已知对象的位置和方向中的至少一个。
20.根据权利要求19所述的设备,其中:
所述已知对象坐标集是所述经训练的机器智能***的中间训练输出。
21.根据权利要求19所述的设备,其中:
所述编码包括至少一组通道;
所述至少一组通道中的每个通道和所述像素集在尺寸大小上相等;以及
每个已知对象坐标的至少两个值各自来自所述至少一组通道中的不同通道。
22.根据权利要求19所述的设备,其中:
所述对象的参考系是至少一维的;以及
所述已知对象坐标集包括所述已知对象像素集中的每个像素的至少一个对象坐标。
23.根据权利要求19所述的设备,其中:
所述图像是所述经训练的机器智能***的输入;以及
利用所述经训练的机器智能***确定所述已知对象像素集。
24.根据权利要求19所述的设备,其中确定所述设备的位置和方向中的至少一个包括:
利用分析解码器将所述编码转换成所述已知对象坐标集的单值坐标集;以及
将所述单值坐标集应用于透视和点求解器。
25.根据权利要求19所述的设备,其中确定所述设备的位置和方向中的至少一个包括:
利用经训练的机器智能解码器将所述编码转换成所述已知对象坐标集的单值坐标集;以及
将所述单值坐标集应用于透视和点求解器。
26.根据权利要求19所述的设备,其中:
所述编码中的每个值是二进制的。
27.根据权利要求19所述的设备,其中:
所述编码是格雷码编码。
28.根据权利要求19所述的设备,其中:
所述编码中的每个值是浮点数。
29.根据权利要求19所述的设备,其中:
作为确定所述已知对象像素集的一部分,所述经训练的机器智能***输出所述已知对象像素集的已知对象可见性概率图;
所述已知对象可见性概率为所述图像中的每个像素提供所述已知对象在所述图像的像素中可见的概率;以及
所述经训练的机器智能***的训练是利用所述已知对象可见性概率图来简化。
30.一种用于在设备上部署设备定位***的方法,包括:
利用已知对象的图像集训练经训练的机器智能***;以及
将指令集加载到所述设备上的至少一种计算机可读介质中,所述指令集在由所述设备上的至少一个处理器执行时通过以下方式辅助相对于已知对象定位所述设备:
利用附接到所述设备的传感器捕获所述已知对象的至少一部分的图像,其中所述图像包括像素集;
利用所述图像从所述像素集确定已知对象像素集,其中所述已知对象占据所述图像中的所述已知对象像素集;
利用经训练的机器智能***和所述图像确定所述已知对象像素集的已知对象坐标集,其中所述已知对象坐标集:(i)在所述已知对象的参考系中;以及(ii)利用每个对象坐标具有至少两个值的编码来对所述已知对象坐标集中的每个已知对象坐标进行编码;以及
利用来自所述经训练的机器智能***的所述已知对象坐标集来确定所述设备相对于所述已知对象的位置和方向中的至少一个。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163182714P | 2021-04-30 | 2021-04-30 | |
US63/182,714 | 2021-04-30 | ||
PCT/US2022/027143 WO2022232654A2 (en) | 2021-04-30 | 2022-04-29 | Real time localization with image data |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117256008A true CN117256008A (zh) | 2023-12-19 |
Family
ID=83149957
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280032099.6A Pending CN117256008A (zh) | 2021-04-30 | 2022-04-29 | 利用图像数据的实时定位 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11436752B1 (zh) |
EP (1) | EP4330919A2 (zh) |
JP (1) | JP2024515890A (zh) |
CN (1) | CN117256008A (zh) |
CA (1) | CA3215196A1 (zh) |
WO (1) | WO2022232654A2 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20230290000A1 (en) * | 2022-03-08 | 2023-09-14 | Nec Corporation Of America | Image analysis for controlling movement of an object |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6990639B2 (en) * | 2002-02-07 | 2006-01-24 | Microsoft Corporation | System and process for controlling electronic components in a ubiquitous computing environment using multimodal integration |
ATE452379T1 (de) | 2007-10-11 | 2010-01-15 | Mvtec Software Gmbh | System und verfahren zur 3d-objekterkennung |
US9940553B2 (en) * | 2013-02-22 | 2018-04-10 | Microsoft Technology Licensing, Llc | Camera/object pose from predicted coordinates |
US10346465B2 (en) * | 2013-12-20 | 2019-07-09 | Qualcomm Incorporated | Systems, methods, and apparatus for digital composition and/or retrieval |
US9875427B2 (en) | 2015-07-28 | 2018-01-23 | GM Global Technology Operations LLC | Method for object localization and pose estimation for an object of interest |
CA3031832A1 (en) | 2018-01-29 | 2019-07-29 | Queen's University At Kingston | Apparatus and method for tracking a volume in a three-dimensional space |
US10929654B2 (en) | 2018-03-12 | 2021-02-23 | Nvidia Corporation | Three-dimensional (3D) pose estimation from a monocular camera |
US20210118166A1 (en) | 2019-10-18 | 2021-04-22 | Nvidia Corporation | Pose determination using one or more neural networks |
US10726264B2 (en) * | 2018-06-25 | 2020-07-28 | Microsoft Technology Licensing, Llc | Object-based localization |
US11277956B2 (en) * | 2018-07-26 | 2022-03-22 | Bear Flag Robotics, Inc. | Vehicle controllers for agricultural and industrial applications |
US11137247B2 (en) | 2018-07-30 | 2021-10-05 | The Boeing Company | Method and system for measuring the orientation of one rigid object relative to another |
US11749126B2 (en) | 2018-08-07 | 2023-09-05 | Reliable Robotics Corporation | Landing site localization for dynamic control of an aircraft toward a landing site |
JP7326720B2 (ja) | 2018-10-26 | 2023-08-16 | 富士通株式会社 | 移動***置推定システムおよび移動***置推定方法 |
US11069081B1 (en) | 2019-01-25 | 2021-07-20 | Google Llc | Location discovery |
US10909715B1 (en) | 2019-01-31 | 2021-02-02 | Rockwell Collins, Inc. | High-integrity optical pose estimation using coded features |
CN109961507B (zh) * | 2019-03-22 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 一种人脸图像生成方法、装置、设备及存储介质 |
US11003956B2 (en) | 2019-05-16 | 2021-05-11 | Naver Corporation | System and method for training a neural network for visual localization based upon learning objects-of-interest dense match regression |
US11527012B2 (en) | 2019-07-03 | 2022-12-13 | Ford Global Technologies, Llc | Vehicle pose determination |
DE102020120873A1 (de) | 2019-08-12 | 2021-02-18 | Motional AD LLC (n.d.Ges.d. Staates Delaware) | Lokalisierung basierend auf vordefinierten merkmalen der umgebung |
DE102019216379A1 (de) | 2019-10-24 | 2021-04-29 | Robert Bosch Gmbh | Verfahren zum Trainieren eines neuronalen Faltungs-Netzwerkes zum Bestimmen einer Lokalisierungs-Pose |
US20210158561A1 (en) | 2019-11-26 | 2021-05-27 | Nvidia Corporation | Image volume for object pose estimation |
CN115210763A (zh) | 2020-02-18 | 2022-10-18 | 谷歌有限责任公司 | 用于包括姿态和大小估计的对象检测的***和方法 |
US20230080133A1 (en) | 2020-02-21 | 2023-03-16 | Toyota Motor Europe | 6d pose and shape estimation method |
EP3882856A1 (de) | 2020-03-17 | 2021-09-22 | Carl Zeiss Industrielle Messtechnik GmbH | Verfahren und vorrichtung zum bestimmen einer pose |
GB2593717B (en) | 2020-03-31 | 2022-08-24 | Imperial College Innovations Ltd | Image processing system and method |
US11554496B2 (en) | 2020-04-03 | 2023-01-17 | Fanuc Corporation | Feature detection by deep learning and vector field estimation |
US11232582B2 (en) | 2020-04-21 | 2022-01-25 | Here Global B.V. | Visual localization using a three-dimensional model and image segmentation |
US20210090328A1 (en) * | 2020-12-07 | 2021-03-25 | Intel Corporation | Tile-based sparsity aware dataflow optimization for sparse data |
-
2022
- 2022-04-29 US US17/733,871 patent/US11436752B1/en active Active
- 2022-04-29 EP EP22796899.7A patent/EP4330919A2/en active Pending
- 2022-04-29 US US18/287,058 patent/US20240221202A1/en active Pending
- 2022-04-29 CA CA3215196A patent/CA3215196A1/en active Pending
- 2022-04-29 JP JP2023567102A patent/JP2024515890A/ja active Pending
- 2022-04-29 CN CN202280032099.6A patent/CN117256008A/zh active Pending
- 2022-04-29 WO PCT/US2022/027143 patent/WO2022232654A2/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP4330919A2 (en) | 2024-03-06 |
US11436752B1 (en) | 2022-09-06 |
JP2024515890A (ja) | 2024-04-10 |
CA3215196A1 (en) | 2022-11-03 |
WO2022232654A3 (en) | 2023-01-19 |
WO2022232654A2 (en) | 2022-11-03 |
US20240221202A1 (en) | 2024-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112258618B (zh) | 基于先验激光点云与深度图融合的语义建图与定位方法 | |
CN113330490B (zh) | 三维(3d)辅助个性化家庭对象检测 | |
US20180161986A1 (en) | System and method for semantic simultaneous localization and mapping of static and dynamic objects | |
US11462023B2 (en) | Systems and methods for 3D object detection | |
Wang et al. | Cooperative USV–UAV marine search and rescue with visual navigation and reinforcement learning-based control | |
JP2023501716A (ja) | セマンティックおよび/または深度認識インスタンスセグメンテーションのためのマルチタスク学習 | |
JP7427614B2 (ja) | センサ較正 | |
CN111902826A (zh) | 定位、建图和网络训练 | |
Schmuck et al. | Hybrid metric-topological 3d occupancy grid maps for large-scale mapping | |
CN110260866A (zh) | 一种基于视觉传感器的机器人定位与避障方法 | |
US11144818B2 (en) | Network architecture for ego-motion estimation | |
Sales et al. | Vision-based autonomous navigation system using ann and fsm control | |
KR20200043005A (ko) | 이미지 인식 모델을 트레이닝시키는 장치 및 방법과 이미지 인식 장치 및 방법 | |
Pham et al. | Pencilnet: Zero-shot sim-to-real transfer learning for robust gate perception in autonomous drone racing | |
US20210397195A1 (en) | Robot navigation using a high-level policy model and a trained low-level policy model | |
Morales et al. | Image generation for efficient neural network training in autonomous drone racing | |
US11436752B1 (en) | Real time localization with image data | |
Pham et al. | Gatenet: An efficient deep neural network architecture for gate perception using fish-eye camera in autonomous drone racing | |
Salaris et al. | Shortest paths for finned, winged, legged, and wheeled vehicles with side-looking sensors | |
Sileo et al. | Vision-enhanced Peg-in-Hole for automotive body parts using semantic image segmentation and object detection | |
Gadipudi et al. | A review on monocular tracking and mapping: from model-based to data-driven methods | |
Kulkarni et al. | Task-driven compression for collision encoding based on depth images | |
US20220377973A1 (en) | Method and apparatus for modeling an environment proximate an autonomous system | |
Mohamed et al. | Autonomous navigation in dynamic environments: Deep learning-based approach | |
Oelsch et al. | Init-loam: Lidar-based localization and mapping with a static self-generated initial map |
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 |