用于无人机实时位置跟踪的系统和方法与流程

文档序号:18744069发布日期:2019-09-21 02:07阅读:636来源:国知局
用于无人机实时位置跟踪的系统和方法与流程

本公开总体上涉及物理位置跟踪,更具体地,涉及基于图像数据对可移动物体的实时物理位置跟踪的系统和方法。



背景技术:

有时被称为“无人机”的无人飞行器(“UAV”)包括可由用户远程操作或编程以便自动飞行的各种尺寸和配置的无人驾驶飞行器。UAV可以用于许多目的,并且经常用于各种个人应用、商业应用和战术应用。例如,UAV可以配备有诸如相机、摄像机等成像设备,以用于监测、国防以及娱乐活动。此外,UAV还可以用作运输设备,以运输物体(例如,邮件、商品等)。

UAV的实时位置跟踪允许对UAV更高效的飞行控制,并且还可以促进多个UAV之间的协调操作。作为说明性示例,可以控制多个UAV从不同角度获得移动物体的图像,或者在不同位置之间运输物品。如果已知这些UAV的实时位置,则可以更精确地控制这些UAV的飞行路径。此外,可以控制UAV在空中飞行时在每个UAV之间保持一定距离,以降低空中碰撞的可能性。

一种实时位置跟踪方法使用卫星导航系统,例如全球定位系统(GPS)、北斗、伽利略等。然而,跟踪的准确度可能受到卫星信号强度的影响,该卫星信号强度又受到操作UAV的地理环境的影响。例如,某个城区的卫星信号很差或不存在,使用卫星信号进行实时位置跟踪是不可行的。

另一种实时位置跟踪方法依赖于多相机运动捕捉系统,其中地面上的固定相机捕捉UAV的图像,并基于该图像和固定相机的位置推导出UAV的位置。然而,多相机运动捕捉系统并未解决上述弱卫星信号的问题,这是因为UAV也可能移出相机的视野。此外,多相机运动捕捉系统需要设置多个相机和用于发送相机图像以进行分析的网络,这使得系统体积庞大且不易携带。

因此,需要一种更鲁棒的并且可以跨不同地理环境操作的可移动物体(例如,UAV)的实时物理位置跟踪。



技术实现要素:

所公开的实施例包括被配置为操作飞行器的方法、系统、制造物。所公开的实施例也可以是飞行器的一部分。在所公开的实施例中描述的技术可以用于基于由与飞行器一起安装的相机捕捉的图像数据来确定飞行器的位置和取向中的至少一个。所公开的实施例可以基于与这些特征相关联的一个或多个不变特性从图像数据中识别预定特征集合。这些特征还与预定物理位置相关联。基于图像数据内这些特征的图像位置以及这些特征的预定物理位置,系统可以确定飞行器的位置和取向中的至少一个。所公开的实施例提供在各种操作条件下跟踪飞行器的位置和取向的能力方面有所增强的准确性、可用性以及鲁棒性。

在所公开的实施例中,系统可以从一个或多个相机获取表面的一个或多个图像。系统还可以在所述一个或多个图像中识别具有一个或多个不变特性的一个或多个特征;以及基于所述一个或多个不变特性将识别的一个或多个特征与预定特征集合相匹配,其中,每个预定特征与位置相关联。系统还可以获得识别的一个或多个特征的位置信息;以及基于获得的所识别的一个或多个特征的位置信息来确定所述飞行器的位置和取向中的至少一个。

在一个方面,根据所公开的实施例的不变特性包括:基于所述一个或多个图像中所述预定特征集合的位置确定的仿射不变比率或透视不变比率。

在另一方面,所公开的实施例可以从所述一个或多个图像中提取查询特征,获取所述一个或多个图像中邻近所述查询特征的相邻特征集合的图像位置,以及基于所述相邻特征集合的几何特性来确定比率。所公开的实施例可以基于所确定的比率和与所述预定特征集合相关联的所述仿射不变比率或所述透视不变比率之间的关系来确定所述飞行器的位置和取向。

所公开的实施例还包括被配置为生成用于确定飞行器的物理位置和取向的参考数据的方法、系统、制造物。在一个方面,系统可以接收表面上的参考特征集合的信息,以及基于所述信息来确定所述参考特征集合的物理位置。系统还可以基于所述物理位置来确定所述参考特征集合中的每个参考特征的相邻特征。系统还可以确定与所述相邻特征的几何特性相关联的一个或多个不变比率,以及将所述一个或多个不变比率与所述参考特征集合相关联并与所述物理位置相关联。系统可以提供所述参考特征集合、相关联的不变比率和所述物理位置作为用于确定飞行器的位置和取向的参考数据。

在另一方面,所公开的实施例可以确定所述表面是否不平坦。响应于确定所述表面是不平坦的,所公开的实施例可以基于所述信息来生成用于所述预定特征集合的三维参考点云。所公开的实施例还可以将所述物理位置与所述三维参考点云中包括的每个点相关联,以及提供所述三维参考点云和相关联的物理位置作为所述参考数据。

在另一方面,所公开的实施例还可以响应于确定所述表面不是不平坦的,确定所述参考特征集合是否与所述表面上的标记集合相关联。所公开的实施例还可以响应于确定所述参考特征集合不与所述表面上的标记集合相关联,执行图像变换以生成第二参考特征集合,以及基于所述第二参考特征集合来确定所述一个或多个不变比率。

所公开的实施例中描述的技术可以由任何装置、系统或制造物来执行,包括诸如UAV之类的可移动物体、或控制器、或被配置为接收图像数据(包括视频数据)以及跟踪所接收图像中所示的目标物体的任何其他系统。与现有的跟踪系统不同,本文描述的技术可以在各种操作条件下更准确地跟踪飞行器的位置和取向。

应理解的是,前面的一般描述和后面的详细描述两者均仅是示例性的和解释性的,并且不限于权利要求中所限定的公开的实施例。

附图说明

附图并入并构成本说明书的一部分,其示出了若干个实施例,并且连同说明书一起用于说明所公开的原理。附图中:

图1示出了本公开的示例性实施例的用例。

图2A-2E示出了根据本公开的实施例的从图像中识别具有仿射不变特性的特征的示例性方法。

图3示出了根据本公开的实施例的用于确定相机的取向和物理位置的示例性方法。

图4是示出了根据本公开的实施例的用于生成参考数据的示例性方法的流程图,该参考数据用于确定可移动物体的物理位置和取向。

图5是示出了根据本公开的实施例的用于基于图像数据来确定可移动物体的位置和取向的示例性方法的流程图。

图6和图7示出了根据本公开的实施例的用于基于图像数据和目标位置来确定目标的三维坐标的示例性方法。

图8是根据本公开的实施例的用于生成参考数据的示例性系统的示意图,该参考数据用于确定可移动物体的物理位置和取向。

图9是根据本公开的实施例的用于基于图像数据来确定可移动物体的位置和取向的示例性系统的示意图。

具体实施方式

所公开的实施例提供了用于实时跟踪可移动物体的改进技术,更具体地,提供了基于由可移动物体捕捉的图像数据来跟踪可移动物体在三维空间中的物理位置的系统和方法。所得到的系统和方法提供了在跟踪可移动物体的物理位置的能力方面有所增强的准确性、可用性和鲁棒性。

现将详细参考所公开的示例性实施例,其示例在附图中示出并在本文中公开。方便的是,贯穿附图,相同的附图标记将用于表示相同或类似的部件。

图1是本公开的示例性实施例的用例的图。可移动物体100在表面120上方由x轴、y轴和z轴定义的三维空间内移动。x轴、y轴和z轴可以定义例如可移动物体100操作的环境的世界坐标。

可移动物体100可以是被配置为在适当的介质(例如,表面、空气、水、轨道、空间、地下等)上或介质内行进的任何适当的物体、设备、机构、系统或机器。例如,可移动物体100可以是无人驾驶飞行器(UAV)。尽管为了描述的示例性目的,可移动物体100在本文中被示出并描述为UAV,但将理解的是,其他类型的可移动物体(例如,轮式物体、航海物体、机车物体、其他空中物体等)也可以或可选地被用于根据本公开的实施例中。如本文中使用的,术语UAV可以指代被配置为自主地(即经由电子控制系统)和/或由机外人员手动操作和控制的空中设备。

可移动物体100包括相机150,该相机150捕捉表面120的一个或多个图像154。在一些实施例中,相机150可以被配置为相对于x-y平面移动并形成可变的俯仰角153。在一些实施例中(图1中未示出),相机150可以相对于可移动物体100形成固定的俯仰角,并且可移动物体和相机两者可以一起相对于x-y平面移动以形成俯仰角。尽管图1示出了可移动物体100包括单个相机150,但是应当理解,可移动物体100可以包括多个相机以生成例如表面120的立体图像。

在一些实施例中,在可移动物体100开始飞行之前,可以预先确定特征集合,并已知它们的物理位置。这些特征可以包括例如表面120上的预设标记集合、与表面120上的物体集合相关联的特征集合等。这些特征可以包括任何形状的斑点、点或物体的集合。这些特征可以对应于物体表面上的物理标记。这些特征还可以指通过对物体的图像进行变换而获得的描述符集合。一旦可移动物体100在空中飞行,可移动物体100可以捕捉图像154并从图像154中识别与该预定特征集合中的至少一些预定特征相匹配的特征。然后可以基于所识别的特征的已知物理位置并基于这些特征在图像154中的位置来确定可移动物体100的物理位置和取向,其中用相对于x轴、y轴和z轴的三维坐标(x0,y0,z0)表示该物理位置和取向。此外,还可以基于所识别的特征的物理位置和这些特征在图像154中的位置来确定可移动物体的取向R。该取向可以包括例如可移动物体100的预定轴相对于x轴、y轴和z轴之一的横滚角、航向角和俯仰角中的至少一个的测量结果。

在一些实施例中,可以基于预定特征与图像154中的特征之间共同的不变特性集合来实现对预定特征的识别。不变特性可以包括无论观察器或相机的视角如何都保持不变的几何特性。例如,即使当相机视点由于例如相机的旋转或平移移动、图像的亮度和/或缩放比例的变化等而改变时,不变特性也保持恒定。这种不变特性可以包括例如尺度不变特性、透视不变特性、仿射不变特性等。一旦针对预定特征确定这些不变特性,这些不变特性允许稍后在来自可移动物体的捕捉图像或视图中对特征的识别。

图2A有助于说明示例性仿射不变特性。在图2A中,图像202和204在不同的时间点并以不同的视角(例如,相对于表面的不同角度和/或距离)捕捉表面(例如,图1的表面120)的相同区域206。

区域206包括特征集合,该特征集合包括某个点或圆点x周围的共面点或圆点a、b、c、d、e和f。仅出于说明的目的,图2A中的每个点或圆点可以对应于一个特征。点a、b、c、d、e和f可以是区域206内最靠近点x的点,并且围绕点x以预定方向(例如,以顺时针方向)标记。每个圆点可以对应于一个特征。在这六个共面点中,可以选择四个点(例如,点a、b、c和d)的子集以形成两个三角形207和208。基于仿射几何,三角形207和208的面积之间的比率是仿射不变量,其可以反映出在仿射变换中保持线的平行性。仿射变换可以包括例如平移、缩放、反射、旋转等。换言之,对应三角形207和208之间的比率在图像202和图像204之间保持相同,即使这两个图像是从不同的视角拍摄的,这可以引入仿射变换。可以基于例如由三角形限定的像素数量的计数、或者基于形成三角形顶点的点a、b、c和d的物理位置来确定三角形207和208的面积。类似地,共面点的另一子集(例如,点a、c、d和f)也可以形成两个三角形,并且与不随仿射变换而变化的另一比率相关联。因此,可以针对在点x周围并用于表示或描述点x的点的多个子集来确定多个不变比率。如下面将更详细地描述的,这些不变比率可以存储在数据库中或地图中,并且可以用于确定查询图像中的查询点是否对应于点x。

区域206中包括的特征也可以与预期的不变特性相关联。预期的不变特性可以指在透视变换下保持不变的几何关系。例如,参照图2B,点a、b、c、d和e可以形成四个三角形。除了三角形207(由点a、b和c形成)之外,点的子集还可以形成三角形217(具有点a、d和e)、三角形218(具有点a、b和d)和三角形219(具有点a、c和e)。三角形207和217的面积的乘积与三角形218和219的面积的乘积之间的比率可以是预期的不变量,这可以反映即使点a、b、c、d和e在不同图像中的坐标通过透视变换改变,这些比率也保持不变。

仿射变换比透视变换更具限制性,这是因为仿射变换保持线的平行性,而透视变换并不总是会引起仿射变换。另一方面,仿射不变量计算比透视不变量计算更简单,这至少是因为仿射不变量计算涉及的点集(四个点)小于透视不变量计算涉及的点集(五个点)。在区域206小的情况下,区域206的透视变换可以近似为仿射变换。在这种情况下,代替使用透视不变量来识别点x的相邻点,可以使用仿射不变量。

返回参考图1,上述仿射不变特性和透视不变特性可以用于从图像154中检测和识别表面120的预定特征。例如,表面120上的预定特征集合可以与某些几何特性相关联,当这些特征出现在图像154中,并且它们在图像内的位置已经相对于它们在表面120上的物理位置进行了透视变换或仿射变换时,这些几何特性可以保持不变。仿射不变特性和透视不变特性允许从图像154中识别这些预定特征。

上述不变特性可以与具有已知物理位置的参考特征集合相关联。这些信息可以存储在数据库或地图中,并且可以用于将从图像提取的特征与该参考特征集合匹配。例如,可以计算图2A中的点x周围的点的不同子集的不变比率(例如,仿射不变量、透视不变量等),并且与每个点的物理位置或坐标一起存储在数据库或地图中。参考图1中所示的示例,在飞行期间,UAV(例如,可移动物体100)可以捕捉表面120的图像,并且可以分析图像上的点,并且可以计算与点的几何特性相关联的比率集合。可以将计算的比率与数据库中存储的不变比率进行比较,以将图像中的点与数据库中的点相关联。一旦通过该过程识别出多个点,可以采取进一步的步骤以基于它们在图像上的位置以及这些点的物理位置来确定UAV相对于这些点的位置和取向,如下所述。

根据本公开的实施例,要从表面120识别的特征可以是随机分布的,以提高从图像中识别后续特征的准确性。例如,圆点或点可以随机分布在表面120上。此外,如下面更详细地讨论的,在通过图像变换以特征描述符的形式提取特征的情况下,可以将该变换配置为使得特征描述符的空间分布可以随机化。

图2A示出了为便于检测和识别特征在表面120上作为预定特征集合提供的预设圆点的图案。备选地,该预定特征集合可以包括设置在表面120上的感兴趣的特征或多个三维物体(例如,桌子、椅子等)。可以使用各种算法来识别这些具有不变特性的感兴趣的物体或特征。作为示例,可以对捕捉图像的像素数据执行尺度不变特征变换(SIFT),以提取具有尺度不变特性的关键点集合。关键点可以与表面120上的三维物体的视觉外观相关联,或者与被确定为具有尺度不变特性的其他不同特征的视觉外观相关联。可以生成关键点的描述符以描述关键点的相关图像属性,例如像素值的分布、取向等。

图2C示出了用于存储与图2A中所示的示例性点图案有关的这些信息的示例性数据结构250。特别地,关于点x,数据结构250可以存储分别与子集1(点a、b、c和d)、子集2(点a、c、d和f)和子集3(点c、d、e和f)等相关联的不变比率集合(例如,仿射不变比率、透视不变比率等)。表面120上的点x的物理位置也被存储为其坐标。点x可以是预定特征集合中的一个预定特征,并且可以同样地存储其他点的类似信息。同样,如果关键点是使用SIFT识别的,则可以将关键点的尺度不变特性存储为包括完整地图的数据。

在本公开的一个方面中,对图像进行分析以确定具有不变特性的特征集合可以由位于可移动物体上、相机上、计算机或服务器上或具有足够能力来进行该操作的任何其他设备上的处理器来执行。地图的数据可以存储在位于可移动物体、相机或计算机服务器上的存储器中。

根据本公开的实施例,通过对图像的分析,可以针对UAV可以遍历的整个环境来识别具有不变特性的预定特征集合(例如,圆点或关键点)。为了利用具有不变特性的预定特征集合的数据或信息来创建完整地图,可以使用相机来拍摄环境(例如,表面120)的一系列图像。备选地,UAV可以在整个环境中执行勘测飞行以拍摄一系列图像。可以将图像(包括例如图像202和204)拼接在一起以表示表面120的完整地图。可以将用于该完整地图的预定特征集合的信息(例如,比率和物理位置或坐标)存储在数据库中以供后续使用。备选地,如果特征被预先设置在表面120上(例如,随机圆点),则可以已知并存储包括比率和物理位置或坐标的必要信息,使得不需要进行勘测飞行或图像分析来创建完整地图。

然后可以使用具有预定特征集合的数据或信息的完整地图来确定在环境中移动的可移动物体的位置,该预定特征集合具有不变特性。例如,可移动物体100飞过表面120并捕捉区域206的一个或多个图像。分析图像以识别查询点和查询点周围的点的集合。可以基于查询点周围的点的各个子集的几何特性来确定比率集合。然后将这些比率与完整地图中存储的不变比率进行比较。如果这些不变比率与点x周围的点的子集的比率匹配,则可以确定图像上的查询点是点x,并且检索点x的物理位置。在基于通过SIFT识别的关键点来创建完整地图的情况下,可以以类似的方式分析UAV在实际飞行期间拍摄的图像以关联关键点。

例如,参照图2C,在捕捉的图像上识别查询点。查询点可以基于查询点周围的点的子集的几何特性与比率集合相关联。可以访问先前存储的数据库或地图的系统(例如,服务器、UAV上的处理器、计算设备或图像处理设备的网络或独立计算机等)搜索并识别与所识别的点或特征最靠近的点或特征。例如,对应于与图2A的点x相关联的子集1、2、3等的相邻点的子集(例如,四个点的子集)的比率被存储在数据结构250中。然后,系统可以将与查询点相关联的比率与数据结构250中存储的与点x相关联的不变比率进行比较。如果比率匹配,则系统可以确定查询点是点x。基于该确定,系统还可以检索数据结构250中存储的点x的物理位置。

此外,如图2D所示,在数据结构250中,点x也可以与相邻点a、b、c、d、e和f的不同排列的子集的不变比率相关联。利用这些排列,即使图像204中的相邻点被旋转或相对于它们在图像202中的样子(以不同航向角、俯仰角和横滚角取向)(例如,图像204中的相邻点的子集选自b、c、d、e、f和a,而不是a、b、c、d、e和f),系统仍然可以确定与图像204中的相邻点相关联的匹配比率(或匹配比率组合)。可以识别附加点,并且附加点可以与数据库或地图中存储的点相关。因此,可以基于点x和这些其他点的物理位置来确定可移动物体的物理位置。

在一些实施例中,可以基于各种哈希技术来表示或识别预定特征。基于最靠近相邻点的子集的上述排列,可以计算参考哈希索引集合并与点x相关联。例如,在图2D中,从图像中识别出最靠近点x的预定数量(例如,8个)的点。在八个相邻点中,识别出七个点的组(例如,组-1、组-2等)的不同排列。如上所述,组的排列可以被配置为涵盖图像的旋转,该旋转可以导致相邻点的不同排序。

对于每个七个点的组,可以识别四个点的组的不同排列,并且针对每个四个点的组确定比率(例如,比率-1、比率-2等)。针对每个组,可以基于以下示例性公式来确定哈希索引:

这里,mod是指“取模”运算。参数r(i)可以指比率-1、比率-2等。参数k可以是具有例如值4的预定常数。参数Hsize可以指哈希表的大小。M是七个点的组中四个点的组的排列的数量,并且可以由给出。

然后,哈希索引可以与数据结构中的点x相关联。现在参考图2E,其示出了将参考特征集合与哈希索引相关联的示例性数据结构270。如图2E所示,数据结构270包括参考哈希索引的数组,包括哈希索引0、哈希索引1、哈希索引2等,这些哈希索引中的每个都可以基于表达式1来确定。例如,可以基于图2D的组-1的参考比率集合(比率-1、比率-2、比率-3等)来确定哈希索引0,并且哈希索引0可以与点x相关联。还可以基于图2D的组-2的另一参考比率集合来确定哈希索引2。参考比率可以是基于例如图1的表面120上的标记集合的物理位置、来自对图1的图像154的变换的特征描述符集合的位置等确定的不变比率(例如,仿射不变比率、透视不变比率等)。

在从图像中识别查询点之后,系统可以确定最靠近提取点的八个相邻点的集合。从这八个最近相邻点中,系统可以确定七个点的组的不同排列。针对每个七个点的组,系统可以以与图2C中描述的类似方式确定四个点的组的不同排列以及相关联的比率。针对每个七个点的组,系统还可以根据例如表达式1基于四个点的组的比率来确定查询哈希索引。然后,系统可以搜索数据结构270的哈希索引数组,以查找与查询哈希索引匹配的参考哈希索引。

如上所述,七个点的组的不同排列可以涵盖图像的旋转(或取向的改变),该旋转可能导致用于比率确定的相邻点的顺序的改变。因此,如果提取点确实与点x相关联,则可以预期提取点的七个相邻点的组的至少一个排列可以产生匹配的哈希索引,并且与该七个相邻点的组相关联的比率也可以与比率列表匹配,该比率列表与匹配的哈希索引相关联。基于匹配的哈希索引(例如,哈希索引2),系统然后可以确定与提取点相对应的参考特征(例如,点x)以及该参考特征的物理位置。

在一些实施例中,如图2D所示,可以将哈希索引映射到多个特征。例如,哈希索引0还可以不仅与特征X相关联,而且还与特征Y相关联。这可以归因于例如两个特征的相邻点与相同的比率列表相关联。如果一个哈希索引与两个特征相关联,则系统可以基于该哈希索引来确定提取点被映射到两个不同的特征,并且可产生不一致的结果。

为了降低不同特征与相同哈希索引相关联的可能性,可以将特征以基于随机分布确定的距离间隔开。通过将特征之间的间距进行随机化,由相邻点形成的三角形的面积(取决于间距)也可以被随机化。利用这样的布置,可以最小化两个特征与相同比率(和哈希值)相关联的可能性。

在一些实施例中,系统可以执行附加处理以减小针对匹配的哈希索引产生两个特征(或点)的可能性。例如,系统可以确定匹配的哈希索引是否与已经用其他匹配的哈希索引识别的参考特征相关联。作为说明性示例,参考图2E的数据结构270,假设对于来自图像204的第一提取点,发现匹配的哈希索引是哈希索引0,并且假设确定第一提取点对应于点X。对于来自图像204的第二提取点,发现匹配的哈希索引是哈希索引2,其与点x和y相关联。基于确定已经发现第一提取点与哈希索引0相关联并且对应于点X,系统然后可以确定第二提取点对应于点Y。

作为另一示例,在创建数据结构270之后,系统可以搜索与多个哈希索引相关联的特征,并且在提供数据结构270以进行特征搜索之前更新哈希索引数组,使得每个特征与单个哈希索引相关联。

一旦从图像提取的查询点与预定特征相关联,系统就可以基于提取点的图像位置和预定特征的物理位置来确定捕捉图像的相机的取向和物理位置。现在参考图3,其示出了根据本公开的实施例的确定相机的取向和物理位置的示例性方法。如图3所示,相机300包括镜头302和像素阵列304。镜头302具有f mm(毫米)的焦距。像素阵列304具有Sx mm乘以Symm的传感器尺寸,并且提供了具有像素尺寸P宽度(Pwidth)个像素乘以P高度(Pheight)个像素的像素区域。从与由世界坐标系307定义的三维坐标(x1,y1,z1)相关联的特征306投射的光经过镜头302并被像素阵列304接收,并在图像308上由图像平面的二维坐标系309定义的图像位置(x2,y2)处形成点305。

基于这些信息,可以基于以下示例性表达式来确定可分别表示相机300的取向和三维物理位置的3x3旋转矩阵[R]和3x1平移矩阵[T]:

这里,x2和y2是图像308上的点305的二维坐标,而x1、y1和z1是特征306的三维坐标,如上所述。参数αx和αy可以是基于像素阵列尺寸和传感器大小之间的比率进行缩放的焦距。参数u0和v0可以是镜头302的主点的位置,该主点通常位于像素阵列304的中心。γ可以是图像平面的二维坐标系309的x轴和y轴之间的偏斜系数,并且通常为零。参数αx、αy、u0和v0可以用以下示例性表达式基于相机300的上述内部特性来确定:

u0=Pwidth×0.5 (表达式5)

v0=Pheight×0.5 (表达式6)

如上所述,基于不变特性(例如,仿射不变性),系统可以将图像上的特征与预定特征相关联。假设基于不变特性,系统确定图像308上的点305对应于图3的特征306。基于上述表达式和相机300的内部特性以及特征306的物理位置和点305的图像位置,系统然后可以确定旋转矩阵[R]和平移矩阵[T]以表示相机300的取向和三维物理位置。例如,平移矩阵[T]可以包括表示图1的可移动物体100的(x0,y0,和z0)坐标的矩阵值。

尽管可以基于单个特征及其对应图像来确定相机的取向和三维物理位置,但是如果在特征与图像之间的映射中存在错误,则可能会影响确定的准确度。为了提高准确度,系统可以基于多个特征及其对应的图像来确定相机的取向和物理位置,以滤除异常样本。作为说明性示例,系统可以基于表达式2来确定用于多个特征对及其对应图像的旋转矩阵和平移矩阵的集合。然后,系统可以确定该旋转矩阵和平移矩阵的集合中的每个在被应用于特征的物理位置及其在对应图像中的图像位置时的重投影误差。系统可以通过例如应用旋转矩阵和平移矩阵以基于多个特征中的所有特征的物理位置来确定重投影的图像位置(x2,y2)从而确定重投影误差。然后,系统可以将特征的重投影的图像位置与(据称)对应于特征的图像的位置进行比较,以确定误差距离,该误差距离可以表示重投影误差。然后,系统可以确定通过该旋转矩阵和平移矩阵的集合中产生最小重投影误差的旋转矩阵和平移矩阵来表示相机的取向和物理位置。在一些实施例中,系统还可以包括投票算法(例如,随机抽样一致性(RANSAC))。使用RANSAC,系统可以将投票机制应用于随机的特征样本集合,并根据表达式2找到图像位置和这些特征的物理位置之间的最佳拟合结果(例如,最佳旋转矩阵和平移矩阵)。

此外,在一些实施例中,系统还可以基于从在不同时间点获得的相同特征的多个图像计算的重投影误差,迭代地更新所估计的旋转矩阵和平移矩阵以及对相机参数(例如,偏斜参数、主点位置等)的估计。对于每个图像,系统可以使用上述机制(在旋转矩阵和平移矩阵的集合中)确定产生最小的重投影误差的旋转矩阵和平移矩阵,作为起始点。然后,系统可以应用所确定的旋转矩阵和平移矩阵来计算后续图像的重投影误差,然后更新矩阵以及相机参数,以最小化重投影误差。旋转矩阵和/或平移矩阵的更新可以反映相机(以及承载相机的飞行物体)的移动速度和方向。在可移动物体100配备有传感器(例如,速度计、惯性测量单元(IMU)等)以检测其移动速度和方向的情况下,传感器数据也可以与新捕捉的图像数据合并以确定对旋转矩阵和/或平移矩阵的更新。在一些实施例中,可以使用光束平差算法(Bundle Adjustment Algorithm)来执行上述迭代更新。利用这样的布置,可以进一步提高确定可移动物体100的物理位置和移动信息的准确度。

速度和方向信息可以用于协调多个飞行物体的飞行。作为说明性示例,为了控制多个飞行物体以编队飞行,系统可以基于地面上的特征的新捕捉图像以预定频率(例如,10Hz或更高)周期性地更新每个飞行物体的旋转矩阵和平移矩阵。基于矩阵的变化,系统可以确定每个飞行物体的移动速度和方向,并且可以控制每个飞行物体彼此之间保持预定距离以形成飞行编队。

在一些实施例中,前述数据结构250和270以及诸如SIFT检测阈值之类的信息可以存储在被设置在可移动物体100内的存储器设备中。可以将这些信息提供给在可移动物体100上实现的自动导航和驾驶系统。基于这些信息,可移动物体100可以确定其自身相对于表面120的位置和取向,并基于该确定来控制其自身的运动速度和方向。在一些实施例中,前述数据结构250和270以及诸如SIFT检测阈值之类的信息也可以存储在作为可移动物体100的外部控制系统的一部分的存储器设备中。控制系统可以无线地接收由可移动物体100的相机150捕捉的图像数据,基于图像数据来确定可移动物体的位置和取向,然后向可移动物体100发送指令以控制可移动物体的移动速度和方向。

本公开的实施例还可以用于确定可移动物体在不平坦地形上飞行时的取向和物理位置。例如,除了存储与共面特征相关联的仿射不变参数集合(例如,比率)的数据结构250(或270)之外,系统还可以建立单独的数据结构来存储与非共面特征(包括不平坦地形上的特征)有关的信息。这些特征可以由使用例如半全局块匹配(SGBM)算法生成的三维点云来表示,其可以确定像素值转变并产生像素视差图。三维点云中的每个点可以与该单独的数据结构中的三维物理位置相关联。物理位置可以是预先确定的并且是已知的(例如,特征与具有已知物理位置的物体相关联)。备选地,也可以基于地形的立体图像,使用立体视觉测距算法来确定物理位置。在可移动物体100的飞行开始之前,点云可以存储在单独的数据结构中作为参考。

当可移动物体100在不平坦地形上方飞行时,系统可以检测捕捉的不平坦地形的图像是由平坦表面上(或共面)的特征还是不平坦表面上的特征主宰。可以基于例如从立体图像提取的特征的深度信息来进行该确定。在相邻特征具有不同深度的情况下,系统可以确定那些特征在不平坦表面上。

对于不平坦表面上的特征,系统可以生成查询三维点云。然后,系统可以使用例如迭代最近点(ICP)算法来确定可以将三维点云变换为与预先存储的参考点云中的一个相匹配的平移矩阵和旋转矩阵。例如,使用ICP,系统可以将查询三维点云中的点与参考点云中的最近点配对。然后,系统可以估计可以在一定的均方误差内对准这对点的平移矩阵和旋转矩阵。然后,系统可以迭代地改变该配对和对矩阵的估计以达到收敛条件(例如,当聚合均方误差被最小化时)。然后可以使用最终的平移矩阵和旋转矩阵来表示相机的物理位置和取向。

另一方面,对于平坦表面上(或共面)的特征,系统可以基于图像的变换来提取点或确定描述符,然后参考数据结构250或270来搜索匹配特征及其相关联的物理位置,然后基于例如上述表达式2-6来确定平移矩阵和旋转矩阵。

现在参考图4,其示出了根据本公开的实施例的执行示例性过程400的一系列步骤,该过程400用于生成用于确定可移动物体的物理位置和取向的参考数据。图4的过程可以用软件、硬件或其任何组合来实现。出于解释而非限制的目的,将在可移动物体100的情况下描述过程400。

在步骤402中,系统接收表面上的预定特征集合的信息。在一些实施例中,该信息可以包括例如表面上的标记的预定分布及其在表面上的物理位置。该标记可以分布为使得相邻标记之间的间隔遵循随机函数。物理位置可以表示为世界坐标系中的三维坐标,并且可以用预定的参考点(例如,房间的中心)来测量。在一些实施例中,信息可以包括可移动物体(例如,可移动物体100)在表面上方飞行时捕捉的表面的一个或多个立体图像。

在步骤404中,系统确定表面是否不平坦。该确定可以基于例如从步骤402中获得的立体图像中获得的特征的深度信息。

如果系统在步骤404中确定表面不平坦,则系统然后可以进行到步骤406以生成三维点云来表示该预定特征集合。点云的生成可以基于例如半全局块匹配(SGBM)算法,并且可以包括步骤408以生成点云中的每个点的物理位置信息。系统然后进行到步骤410并将所生成的信息存储为参考数据,该参考数据可以用于确定可移动物体的位置和取向。

另一方面,如果系统在步骤404中确定表面不是不平坦的(例如,使得特征是共面的),则系统然后可以进行到步骤412以确定所述特征是否与表面上的标记集合(例如,类似于图2A中所示的标记)相关联。如果在步骤412中确定特征与标记集合相关联,则系统可以进行到步骤414以将该预定特征集合设置为参考特征。如果在步骤412中确定特征不与标记集合相关联,则系统可以进行到步骤416并对立体图像(在步骤402中获得)执行图像变换(例如,SIFT变换)以生成表示参考特征集合的描述符。还可以将SIFT检测阈值配置为使得相邻参考特征之间的间隔遵循随机函数。

然后,系统可以进行到步骤418以确定参考特征的物理位置。在根据标记集合确定参考特征的情况下,可以基于在步骤404中获得的分布信息来确定物理位置。在根据图像变换确定参考特征的情况下,可以基于例如基于立体图像的立体视觉测距算法来确定参考特征的物理位置。

然后,系统可以进行到步骤420,以针对每个参考特征来确定相邻特征集合。在步骤418中,该确定可以基于例如该参考特征集合的物理位置。返回参考图2D,针对每个参考特征,系统可以在顺时针方向上确定最近相邻参考特征的集合(例如,八个最近相邻参考特征)。针对每个集合,系统可以确定由相邻点构成的多个组,并且针对每个组,系统可以确定由相邻点构成的多个子集。

然后,系统可以进行到步骤422,以确定由相邻点构成的该多个子集中的每个子集的不变比率。对不变比率的确定可以包括例如识别由四个相邻点的子集形成的两个三角形,以及确定两个三角形之间的面积比率。该比率可以是仿射不变量。对不变比率的确定还可以包括:例如,识别由五个相邻点的子集形成的四个三角形,以及确定四个三角形之间的面积乘积的比率。在这种情况下,该比率可以是透视不变量。对三角形面积的确定可以基于例如对三角形中包围的像素的数量进行计数,或者基于几何形状。然后,系统可以进行到步骤424,以与图2B和图2D的数据结构250和270类似的方式将比率与参考特征和物理位置相关联。在一些实施例中,系统可以基于特定组的相邻点的比率集合来确定哈希索引,并且将哈希索引与参考特征相关联。然后,系统可以进行到步骤410,以将生成的信息存储为参考数据。

现在参考图5,其示出了根据本公开的实施例的示例性过程500的一系列步骤,该过程500用于基于图像数据来确定可移动物体的位置和取向。图5的过程可以用软件、硬件或其任何组合来实现。出于解释而非限制的目的,将在可移动物体100的情况下描述过程500。

在步骤502中,系统接收表面上的特征集合的图像数据。可移动物体100的相机150在表面上方飞行时可以捕捉该图像数据。该图像数据可以包括立体图像数据。

在步骤504中,系统确定表面是否不平坦。该确定可以基于例如从步骤502中获得的立体图像获得的特征的深度信息。

如果系统在步骤504中确定表面不平坦,则系统然后可以进行到步骤506以生成三维查询点云来表示该特征集合。查询点云的生成可以基于例如半全局块匹配(SGBM)算法,并且可以包括步骤508以生成查询点云中估计的每个点的位置信息。

在生成查询点云之后,系统然后可以进行到步骤510,以估计可以将三维查询点云变换为与预先存储的参考点云中的一个相匹配的平移矩阵和旋转矩阵。在一些实施例中,系统可以执行ICP算法,其中系统将在步骤506中生成的三维查询点云中的点与参考点云中的最近点配对。参考点云可以在可移动物体飞行之前被生成并且已经被预先存储在存储设备中。然后,系统可以估计可以在一定的均方误差内对准这对点的平移矩阵和旋转矩阵。然后,系统可以迭代地改变该配对和矩阵的估计以达到收敛条件(例如,当聚合均方误差被最小化时)。然后,在步骤511,系统可以提供最终的平移矩阵和旋转矩阵以表示相机的物理位置和取向。

另一方面,如果系统在步骤504中确定表面不是不平坦的(例如,使得特征集合是共面的),则系统然后可以进行到步骤512以确定特征是否与表面上的标记集合(例如,类似于图2A中所示的标记)相关联。该确定可以基于预定信息,例如是否已知可移动物体在具有标记集合的表面上方飞行。

如果在步骤512中确定特征与标记集合相关联,则系统可以进行到步骤514以将该预定特征集合设置为查询特征。如果在步骤512中确定特征不与标记集合相关联,则系统可以进行到步骤516并对立体图像(在步骤502中获得)执行图像变换(例如,SIFT变换)以生成表示参考特征集合的描述符。SIFT变换和描述符生成可以基于被存储在存储设备中的SIFT检测阈值。

然后,系统可以进行到步骤518,以与图2D中描绘的类似方式来确定每个查询特征的相邻参考特征以及相关联的查询比率。在步骤520中,系统还可以继续在数据结构中搜索查询比率,该数据结构将参考特征集合与不变比率集合相关联。搜索可以包括例如基于比率生成哈希索引,以及执行上述附加处理以滤除与多个哈希索引相关联的参考特征。在找到具有匹配比率(或哈希索引)的参考特征之后,系统然后可以进行到步骤522,以基于与参考特征相关联的物理位置、查询特征的图像位置以及相机的内部参数根据如上所述的表达式2-6来估计平移矩阵和旋转矩阵。在一些实施例中,系统还可以对所确定的矩阵值执行附加处理,以降低同一图像上和后续图像中特征集合之间的重投影误差,如上所述。然后系统可以进行到步骤511并提供所确定的平移矩阵和旋转矩阵来表示相机的物理位置和取向。

现在参考图6,图6是依据所公开的实施例的用于执行一个或多个操作的示例性系统600的示意图。如图6所示,系统600可以包括壳体602、用来捕捉目标物体的图像的成像设备606(例如,相机)以及一个或多个螺旋桨610。在一些实施例中,成像设备606可以经由铰链与壳体602耦接,并且可以相对于壳体602形成可变的角度。壳体602可以包括机械组件,诸如用来控制成像设备606和螺旋桨610的运动的电机和致动器。壳体602还可以包括传感器612,该传感器612被配置为检测系统600的取向和/或移动速度。传感器612可以包括传感器组件,诸如加速计、陀螺仪、磁力计、速度计等。

壳体602还可以容纳一个或多个通信系统616。通信系统616可以使系统600能够向外部控制系统发送例如由相机606捕捉的图像数据,这允许外部控制系统基于如上所述的图像数据来确定系统600的取向和物理位置。通信系统616还可以使系统600能够接收控制系统600的移动速度和方向的指令。作为说明性示例,在外部控制系统协调多个飞行物体的飞行(例如,以编队飞行)的情况下,每个飞行物体可以向外部控制系统发送图像数据,该外部控制系统然后可以基于该图像数据来确定每个飞行物体的物理位置和取向,并发送指令以控制每个飞行物体以编队飞行。通信系统616使每个飞行物体能够接收指令。

壳体602还可以容纳包括一个或多个处理器、一个或多个输入/输出(I/O)设备以及一个或多个存储器的控制器系统。现在参考图7,图5是可以依据所公开的实施例使用的示例性系统700的原理框图。系统700可以包括一个或多个处理器720、一个或多个I/0设备722,以及一个或多个存储器724,在一些实施例中,其可以在一个或多个控制器710中实现。在一些实施例中,系统700可以采用移动计算设备、通用计算机等的形式,用于执行与所公开的实施例一致的-个或多个操作。

处理器720可以包括一个或多个已知的处理设备。例如,处理器可以来自于由Intel制造的处理器系列、来自于由Advanced Micro Devices制造的处理器系列等。备选地,处理器可以基于ARM架构。在一些实施例中,处理器可以是移动处理器。所公开的实施例不限于配置在控制器710中的任何类型的处理器。

I/O设备722可以是被配置为允许控制器710接收和/或发送数据的一个或多个设备。I/O设备722可以包括一个或多个通信设备和接口,以及任何必要的模数和数模转换器,以与其他机械组件和设备(诸如成像设备606、螺旋桨610、IMU 612和通信系统616)进行通信和/或控制其他机械组件和设备。

存储器724可以包括一个或多个存储设备,该一个或多个存储设备被配置为存储由处理器720使用以执行与所公开的实施例有关的功能的软件指令。例如,存储器724可以被配置为存储诸如程序726之类的软件指令,当指令由处理器520执行时,执行一个或多个操作。例如,存储器724可以包括执行所公开的实施例的功能的单个程序726,诸如用户级应用,或可以包括多个软件程序。另外,处理器720可以执行位于远离控制器710处的一个或多个程序(或其部分)。此外,存储器724还可以被配置为存储例如由软件程序726使用的数据。存储器724可以被配置为存储例如将预定特征集合与比率(或根据比率确定的哈希值)相关联的数据结构250和/或270。存储器724还可以被配置为存储例如SIFT检测阈值,其允许系统600生成SIFT特征描述符并在数据结构250和/或270中确定匹配比率(或哈希值)。存储器724还可以被配置为存储例如表示布置在不平坦地形上的特征的参考点云集合。

在一些实施例中,系统600和700可以被配置为图1的可移动物体100,并且软件程序726可以包括一个或多个软件模块,当控制器710执行该一个或多个软件模块时,执行根据本公开的实施例的基于由可移动物体的相机捕捉的图像数据来确定可移动物体的取向和物理位置的方法。

例如,返回参考图6,软件程序726可以包括一个或多个软件模块,该一个或多个软件模块被配置为处理由成像设备606捕捉的图像数据以提取点(或特征描述符),并确定与提取点的相邻点集合相关联的比率集合。软件程序526还可以包括软件模块,该软件模块被配置为基于该比率集合从存储器724中存储的数据结构250和/或270中搜索匹配特征。软件程序726还可以包括软件模块,该软件模块被配置为基于匹配特征的物理位置、提取点的图像位置和如上所述的表达式2-6来确定表示可移动物体的取向和物理位置的旋转矩阵和平移矩阵。软件程序726还可以包括软件模块,该软件模块被配置为确定表示布置在不平坦地形上的特征的三维点云,然后确定将三维点云与参考点云对准的旋转矩阵和平移矩阵。软件程序726还可以包括软件模块,该软件模块被配置为基于所确定的可移动物体的取向和物理位置(例如,通过经由I/O设备722来配置螺旋桨610的动作)来控制系统600的运动。

现在参考图8,图8是根据本公开的实施例的示例性系统800的示意性框图,该系统800用于生成用于确定可移动物体的物理位置和取向的参考数据。如图8所示,系统800包括特征信息模块802、表面确定模块804、第一参考数据生成模块806和第二参考数据生成模块808。

为了本公开的目的,“模块”可以被实现为软件、硬件、固件、这些中的任何的混合等。例如,如果所公开的“模块”被实现为软件,则它们可以作为程序526的组件存储在系统500的存储器524中,并且包括可由一个或多个处理器执行的代码指令,该代码指令独立存在或与本实施例或其他实施例中公开的其他模块进行各种组合。另一方面,所公开的“模块”还可以被实现为诸如专用集成电路(ASIC)、现场可编程门阵列(FPGA)等的硬件。系统800可以被容纳在例如可移动物体100中。

在一些实施例中,特征信息模块802被配置为接收表面上的预定特征集合的信息。该信息可以是地图的形式,该地图将特征与预定的物理位置相关联。该信息还可以包括可移动物体(例如,可移动物体100)在表面上方飞行时捕捉的表面的一个或多个立体图像。在一些实施例中,特征信息模块802被配置为执行图4的步骤402的至少一部分。

在一些实施例中,表面确定模块804被配置为确定预定特征集合所在的表面是否不平坦。如果表面确定模块804确定表面是平坦的,则它可以触发第一参考数据生成模块806以生成包括第一参考特征集合及其相关联的物理位置的参考数据。如果确定表面是不平坦的,则表面确定模块804可以触发第二参考数据生成模块808以生成包括第二参考特征集合及其相关联的物理位置的参考数据。在一些实施例中,表面确定模块804被配置为执行图4的步骤404的至少一部分。

在一些实施例中,第一参考数据生成模块806被配置为生成包括第一参考特征集合的参考数据,该第一参考特征集合与不变特性(例如,仿射不变性)以及物理位置相关联。例如,第一参考数据生成模块806可以基于由第一特征信息模块806提供的信息来确定预定特征集合的物理位置,基于物理位置来确定不变比率,并且将所述比率与特征及其物理位置相关联。如果这些特征与表面上的标记集合相关联,则第一参考数据生成模块806可以将这些特征指定为参考特征。如果这些特征不与表面上的标记集合相关联,则第一参考数据生成模块806还可以执行图像变换(例如,SIFT)以生成参考特征集合。在一些实施例中,第一特征数据生成模块806被配置为执行图4的步骤412至424的至少一部分。

在一些实施例中,第二参考数据生成模块808被配置为如果预定特征集合在不平坦表面上,则生成第二参考特征集合作为三维点云来表示预定特征集合。第二参考数据生成模块808还可以生成点云中每个点的物理位置信息。在一些实施例中,第二参考数据生成模块808被配置为执行图4的步骤406和408的至少一部分。

现在参考图9,图9是根据本公开的实施例的用于基于图像数据来确定可移动物体的位置和取向的示例性系统900的示意性框图。如图9所示,系统900包括图像数据接收模块902、表面确定模块904、第一位置和取向确定模块906以及第二位置和取向确定模块908。

在一些实施例中,图像数据接收模块902可以接收并存储表面上的特征集合的图像数据。可移动物体100的相机150在表面上方飞行时可以捕捉该图像数据。该图像数据还可以包括立体图像数据。在一些实施例中,图像数据接收模块902被配置为执行图5的步骤502的至少一部分。

在一些实施例中,表面确定模块904被配置为基于图像数据来确定表面是否不平坦。如果表面确定模块904确定表面是平坦的,则它可以向第一位置和取向确定模块906提供图像数据以确定可移动物体的位置和取向。如果表面确定模块904确定表面不平坦,则它可以向第二位置和取向确定模块908提供图像数据以进行位置和取向确定。在一些实施例中,表面确定模块904被配置为执行图5的步骤504的至少一部分。

在一些实施例中,第一位置和取向确定模块906可以基于在图像数据中捕捉的特征的不变特性(例如,仿射不变性)来确定可移动物体的取向和位置。例如,第一位置和取向确定模块906可以针对从图像数据中提取的查询特征来识别相邻点集合及其相关联的不变比率,并且在数据库中搜索具有相同比率的参考特征。在找到参考特征之后,第一位置和取向确定模块906然后可以基于参考特征的物理位置和图像中的提取特征的位置来估计平移矩阵和旋转矩阵。如果由图像数据接收模块902接收的图像数据中的特征集合不与标记集合相关联,则第一位置和取向确定模块906可以执行图像变换(例如,SIFT)以生成查询特征集合及其相关联的比率,然后基于该比率来搜索匹配的参考特征。在一些实施例中,第一位置和取向确定模块906被配置为执行图5的步骤512至522的至少一部分。

在一些实施例中,第二位置和取向确定模块908可以通过生成三维查询点云来表示特征集合从而确定可移动物体的取向和位置,然后估计将查询点云与参考点云匹配的平移矩阵和旋转矩阵。在一些实施例中,第二位置和取向确定模块908被配置为执行图5的步骤508和510的至少一部分。

考虑到所公开的实施例的说明和实践,其他实施例对于本领域技术人员将是显而易见的。说明书和示例应仅被认为是示例性的,所公开的实施例的真实范围和精神由所附权利要求指示。应理解的是,为便于描述,已在本文中对本公开中的示例和描述进行任意地限定。所公开的系统和方法不限于这些简化的示例,并且可以考虑其他的特征和特性,只要适当地执行了指定的功能即可。

虽然为了讨论的目的,已经针对UAV讨论了某些公开的实施例,但本领域技术人员将认识到所公开的用于识别目标物体的方法和系统的有用的应用。此外,尽管所公开的实施例的各方面被描述为与存储在存储器和其他有形的计算机可读存储介质中的数据相关联,但本领域技术人员将认识到,这些方面可以被存储在许多类型的有形的计算机可读介质上并且可以从其执行。此外,所公开的实施例的某些过程和步骤以特定的顺序描述,本领域技术人员将认识到所公开的实施例的实践不限于此,并且可以以许多方式来实现。因此,所公开的实施例不限于上述示例,而是由所附权利要求根据其全部等同物的范围来限定。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1