距离测量方法以及设备与流程

文档序号:24398960发布日期:2021-03-27 01:05阅读:406来源:国知局
距离测量方法以及设备与流程

1.本公开涉及距离测量技术,更具体地,涉及一种使用无人飞行器的距离测量方法和设备。


背景技术:

2.在许多工业活动中,经常需要测量到特定建筑物或标志的距离。常规的激光测距方法麻烦且需要专用设备。对于难以进入的位置,测量方法甚至更加受限。
3.随着当今技术的发展,诸如无人飞行器(uav)之类的飞行器已被用于各种应用场景。现有的使用uav的距离测量技术包括:利用uav的全球定位系统(gps)位置或在uav上安装专用的激光测距设备,这可能很复杂或效率低下。需要开发用于距离测量的在uav中的自主操作。


技术实现要素:

4.根据本公开,提供了一种使用无人飞行器(uav)测量距离的方法。该方法包括:识别待测量的目标对象;以及接收当uav正在移动且相机正在跟踪目标对象时由uav的相机捕获的多个图像;采集与多个图像的捕获时刻相对应的uav的移动信息;基于移动信息和多个图像来计算目标对象与uav之间的距离。
5.同样根据本公开,提供了一种用于使用无人飞行器(uav)测量距离的系统。该系统包括uav的相机、至少一个存储器以及耦合到该存储器的至少一个处理器。至少一个处理器被配置为识别待测量的目标对象。相机被配置为当uav正在移动且相机正在跟踪所述目标对象时捕获多个图像。至少一个处理器还被配置为:采集与多个图像的捕获时刻相对应的uav的移动信息;并基于移动信息和多个图像来计算目标对象与uav之间的距离。
6.同样根据本公开,提供了一种无人飞行器(uav)。uav包括uav上的相机和处理器。处理器被配置为:识别待测量的目标对象;以及接收当uav正在移动且相机正在跟踪目标对象时由相机捕获的多个图像;采集与多个图像的捕获时刻相对应的uav的移动信息;并基于移动信息和多个图像计算目标对象与uav之间的距离。
7.同样根据本公开,提供了一种存储计算机可读指令的非暂时性存储介质。当由至少一个处理器执行时,计算机可读指令可以使至少一个处理器执行:识别待测量的目标对象;以及接收当uav正在移动且相机正在跟踪目标对象时由uav的相机捕获的多个图像;采集与多个图像的捕获时刻相对应的uav的移动信息;基于移动信息和多个图像来计算目标对象与uav之间的距离。
8.同样根据本公开,提供了一种用于使用无人飞行器(uav)测量距离的方法。该方法包括:识别目标对象;以及接收当uav正在移动且相机正在跟踪目标对象时由uav的相机捕获的多个图像;采集与多个图像的捕获时刻相对应的uav的移动信息;基于移动信息和多个图像来计算多个图像中包含的待测量对象与uav之间的距离。
9.同样根据本公开,提供了一种无人飞行器(uav)。uav包括uav上的相机和处理器。
该处理器被配置为:识别目标对象;以及接收当uav正在移动且相机正在跟踪目标对象时由相机捕获的多个图像;采集与多个图像的捕获时刻相对应的uav的移动信息;并基于移动信息和多个图像计算多个图像中包含的待测量对象与uav之间的距离。
附图说明
10.图1是示出了根据本公开的示例性实施例的操作环境的示意性图;
11.图2是根据本公开的示例性实施例的可移动对象的示意性框图;
12.图3示出了根据本公开的示例性实施例的uav的图像传感器;
13.图4是示出了根据本公开的示例性实施例的计算设备的示意性框图;
14.图5是根据本公开的示例性实施例的距离测量过程的流程图;
15.图6是根据本公开的示例性实施例的与识别目标对象有关的图形用户界面;
16.图7a是根据本公开的示例性实施例的超像素分割结果图像;
17.图7b是图7a所示的图像的放大部分;
18.图8示出了根据本公开的示例性实施例的距离计算过程;以及
19.图9示出了根据本公开的示例性实施例的关键帧提取过程。
具体实施方式
20.在下文中,将参照附图描述根据本公开的实施例,附图仅仅是用于说明性目的的示例,并且不旨在限制本公开的范围。在可能的情况下,贯穿附图,相同的附图标记将用于表示相同或类似的部件。
21.本公开提供了一种用于使用无人飞行器(uav)测量距离的方法。与传统测距方法不同,所公开的方法可以通过实施机器视觉技术并积分来自uav自身惯性测量单元(imu)的惯性导航数据,来实时提供对用户选择的对象的距离测量。所公开的方法直观而方便并且能够以快速的计算速度提供可靠的测量结果。
22.图1是示出了根据本公开的示例性实施例的操作环境的示意性框图。如图1所示,可移动对象102可以与遥控器104无线通信。可移动对象102可以是例如无人飞行器(uav)、无人驾驶汽车、移动机器人、无人驾驶船、潜水艇、航天器、卫星等。遥控器104可以是具有可以控制可移动对象102的应用(app)的遥控器或终端设备。终端设备可以是例如智能电话、平板电脑、游戏设备等。可移动对象102可以承载相机1022。由可移动对象102的相机1022捕获的图像或视频(例如,连续的图像帧)可以被发送给遥控器104,并显示在耦合到遥控器104的屏幕上。如本文所使用的,耦合到遥控器104的屏幕可以指代嵌入遥控器104的屏幕和/或可操作地连接到遥控器的显示设备的屏幕。显示设备可以是例如智能电话或平板电脑。相机1022可以是由可移动对象102的载体1024(例如,云台)支撑的可移动对象102的负载。相机1022可以跟踪目标对象106,并且由相机1022捕获的图像可以包括目标对象106。如本文中所使用的,通过相机跟踪对象可以指代使用相机来捕获包含对象的一个或多个图像。例如,相机1022可以在可移动对象102以某些模式移动时捕获目标对象106的多个图像。由于目标对象106和相机1022之间的相对位置可能由于可移动对象102的移动而改变,因此目标对象106可能出现在多个图像中的不同位置。可以理解的是,所捕获的多个图像还可以包含目标对象以外的一个或多个背景对象,并且背景对象也可以出现在多个图像中的不同
位置。可移动对象102可以以任何合适的模式移动,例如沿着直线、折线、弧、弯曲路径等移动。可以基于来自可移动对象102的传感器的反馈来预先确定或实时调整移动模式。可移动对象102上和/或之外的一个或多个处理器(例如,uav上的处理器和/或遥控器104中的处理器)被配置为,例如通过分析由相机1022捕获的图像和/或由可移动对象102采集的其他传感器数据,来计算可移动对象102(例如,可移动对象的相机1022)和目标对象106之间的距离。
23.图2是根据本公开的示例性实施例的可移动对象的示意性框图。如图2所示,可移动对象200(例如,可移动对象102)(例如,uav)可以包括感测系统202、推进系统204、通信电路206和机载控制器208。
24.推进系统204可以被配置为使得可移动对象200能够执行期望的移动(例如,响应于来自机载控制器208和/或遥控器104的控制信号),例如从表面起飞或着陆在表面上、在特定位置和/或定向悬停、沿特定路径移动、以特定速度朝特定方向移动等。推进系统204可以包括使得可移动对象200能够移动的任何合适的螺旋桨、桨叶、转子、电机、引擎等中的一个或多个。通信电路206可以被配置为与遥控器104建立无线通信并执行数据传输。发送的数据可以包括感测数据和/或控制数据。机载控制器208可以被配置为控制可移动对象200上的一个或多个组件的操作(例如,基于对来自感测系统202的感测数据的分析)或与可移动对象200通信的外部设备的操作。
25.感测系统202可以包括可以感测可移动对象200(例如,可移动对象200相对于高达三个平移度和高达三个旋转度的姿态)的空间布置、速度和/或加速度的一个或多个传感器。传感器的示例可以包括但不限于位置传感器(例如全球定位系统(gps)传感器,实现位置三角测量的移动设备传感器),视觉传感器(例如能够检测可见光,红外光或紫外光的成像设备,例如相机),近距离传感器(例如,超声波传感器,激光雷达,飞行时间相机),惯性传感器(例如加速度计,陀螺仪,惯性测量单元(imu)),高度传感器,压力传感器(例如气压计),音频传感器(例如麦克风)或场传感器(例如磁力计,电磁传感器)。感测系统202中可以包括任何合适数量的传感器和/或传感器的组合。由感测系统202采集和/或分析的感测数据可用于控制可移动对象200的空间布置、速度和/或朝向(例如,使用诸如机载控制器206和/或遥控器104的合适的处理单元)。此外,感测系统202可用于提供关于可移动对象200周围的环境的数据,例如到潜在障碍物的接近度、地理特征的位置、人造结构的位置等。
26.在一些实施例中,可移动对象200还可以包括用于支撑由可移动对象200承载的负载的载体。载体可以包括云台,该云台承载和控制负载的移动和/或朝向(例如,响应于来自机载控制器208的控制信号),使得负载可以相对于可移动对象200的中心/主体在一个、两个或三个自由度上移动。负载可以是相机(例如,相机1022)。在一些实施例中,负载可以固定地耦合到可移动对象200。
27.在一些实施例中,感测系统202至少包括加速度计、陀螺仪、imu和图像传感器。加速度计、陀螺仪和imu可以位于可移动对象200的中心/主体处。图像传感器可以是位于可移动对象200的中心/主体中的相机,或者可以是可移动对象200的负载。当可移动对象200的负载包括由云台承载的相机时,感测系统202还可以包括其他组件以采集和/或测量负载相机的姿态信息,例如光电编码器、霍尔效应传感器和/或第二组加速度计、陀螺仪和/或位于云台处或嵌入其中的imu。
28.在一些实施例中,感测系统202还可以包括多个图像传感器。图3示出了根据本公开的示例性实施例的uav的图像传感器。如图3所示,uav包括作为负载的由云台承载的相机2022、包括两个透镜(它们一起构成立体视觉相机)的前视系统2024以及包括立体视觉相机的下视系统2026。由任何图像传感器采集的图像/视频可以发送给uav的遥控器104并在其上显示。在一些实施例中,相机2022可以被称为主相机。到目标对象106的距离可以通过跟踪在捕获多个图像时主相机的相机姿态并分析包含目标对象106的所捕获的多个图像来测量。在一些实施例中,由云台承载的相机2022可以是捕获彩色图像的单目相机。
29.在一些实施例中,在本文使用的相机模型中,相机矩阵用于描述从三维(3d)世界坐标到二维(2d)像素坐标的投影映射。令[u,v,1]
t
表示齐次/投影坐标中的2d点位置(例如,图像中点的2d坐标),令[x
w
,y
w
,z
w
]
t
表示世界坐标中的3d点位置(例如,真实世界中的3d位置),其中,z
c
表示从相机的光学中心的z轴,k表示相机校准矩阵,r表示旋转矩阵,t表示转换矩阵。从世界坐标到像素坐标的映射关系可以描述为:
[0030][0031]
相机校准矩阵k描述了相机的固有参数。对于有限投影相机,其固有矩阵k包括五个固有参数:
[0032][0033]
其中,f是相机的焦距(以距离为单位)。参数α
x
=fm
x
,α
y
=fm
y
表示以像素为单位的焦距,其中m
x
和m
y
是在x轴和y轴方向上的缩放因子(例如,像素坐标系的x轴和y轴方向),其将像素与单位距离相关联(即,与单位距离(例如,一英寸)相对应的像素的数量)。γ表示x轴和y轴之间的偏斜系数,因为在ccd(耦合电荷器件)相机中像素不是正方形。μ0,v0表示主要点的坐标,在一些实施例中,该主要点位于图像的中心。
[0034]
旋转矩阵r和平移矩阵t是相机的外部参数,其表示从3d世界坐标到3d相机坐标的坐标系变换。
[0035]
前视系统2024和/或下视系统2026可以包括捕获灰度级立体图像对的立体相机。相机2022的感测范围可以大于立体相机的感测范围。uav的视觉测程(vo)电路可以被配置为分析由前视系统2024和/或下视系统2026的立体相机采集的图像数据。uav的vo电路可以实施任何合适的视觉测程算法,以基于所采集的灰度立体图像数据来跟踪uav的位置和移动。视觉测程算法可以包括:跟踪一系列捕获图像中的多个特征点的位置变化(即,特征点的光流),并基于特征点的光流来获得相机运动。在一些实施例中,前视系统2024和/或下视系统2026固定地耦合到uav,因此由vo电路获得的相机运动/姿态可以表示uav的运动/姿态。通过分析特征点从第一捕获时刻的一个图像到第二捕获时刻的另一图像的位置变化,vo电路可以获得两个捕获时刻之间的相机/uav姿态关系。如本文中所使用的,任何两个时
刻(即,时间点)之间的相机姿态关系或uav姿态关系可以通过以下方式来描述:相机或uav从第一时刻到第二时刻的旋转变化,以及相机或uav从第一时刻到第二时刻的空间位移。如本文所使用的,捕获时刻是指由可移动对象机载的相机捕获图像/帧的时间点。vo电路还可以集成惯性导航数据以获得具有增强的准确性的相机/uav的姿态(例如,通过实现视觉惯性测程算法)。
[0036]
图4是示出了根据本公开的示例性实施例的计算设备400的示意性框图。计算设备400可以被实现在可移动对象102和/或遥控器104中,并且可以被配置为执行根据本公开的距离测量方法。如图4所示,计算设备400包括至少一个处理器404、至少一个存储介质402和至少一个收发器406。根据本公开,至少一个处理器404、至少一个存储介质402和至少一个收发器406可以是单独的设备,或者它们中的任何两个或更多个可以集成在一个设备中。在一些实施例中,计算设备400还可以包括显示器408。
[0037]
至少一个存储介质402可以包括非暂时性计算机可读存储介质,诸如随机存取存储器(ram)、只读存储器、闪存、易失性存储器、硬盘存储器或光学介质。耦合到至少一个处理器404的至少一个存储介质402可以被配置为存储指令和/或数据。例如,至少一个存储介质402可以被配置为存储由imu采集的数据、由相机捕获的图像、用于实现距离测量过程的计算机可执行指令等。
[0038]
至少一个处理器404可以包括任何合适的硬件处理器,例如微处理器、微控制器、中央处理单元(cpu)、网络处理器(np)、数字信号处理器(dsp)、专用集成电路(asic)、现场可编程门阵列(fpga)、或其他可编程逻辑器件、分立栅极或晶体管逻辑器件、分立硬件组件。至少一个存储介质402存储计算机程序代码,该计算机程序代码在由至少一个处理器404执行时,控制至少一个处理器404和/或至少一个收发器406以执行根据本公开的距离测量方法,例如下面描述的示例性方法之一。在一些实施例中,计算机程序代码还控制至少一个处理器404以执行如上所述可以由可移动对象和/或遥控器执行的一些或全部功能,其中的每个可以是计算设备400的示例。
[0039]
至少一个收发器406由至少一个处理器404控制,以向另一设备发送数据和/或从另一设备接收数据。至少一个收发器406可以包括适合于有线和/或无线通信的任何数量的发送器和/或接收器。收发器406可以包括一个或多个天线,用于在任何支持的频率信道上进行无线通信。显示器408可以包括一个或多个屏幕,用于显示计算设备400中的内容或从另一设备发送的内容,例如,显示由可移动对象的相机捕获的图像/视频、显示请求用户输入以确定目标对象的图形用户界面、显示指示到目标对象的测量距离的图形用户界面等。在一些实施例中,显示器408可以是被配置为接收用户的触摸输入/手势的触摸屏显示器。在一些实施例中,计算设备400可以包括其他i/o(输入/输出)设备,例如操纵杆、控制面板、扬声器等。在操作中,计算设备400可以实施本文所公开的距离测量方法。
[0040]
本公开提供了一种距离测量方法。图5是根据本公开的示例性实施例的距离测量过程的流程图。所公开的距离测量过程可以由可移动对象102和/或遥控器104执行。所公开的距离测量过程可以通过包括处理器、存储介质和可移动对象机载的相机的系统来实现。存储介质可以存储可由处理器执行的计算机可读指令,并且计算机可读指令可以使处理器执行所公开的距离测量方法。在下文中,在描述所公开的方法时,uav被用作可移动对象102的示例。然而,应当理解,所公开的方法可以由任何合适的可移动对象来实现。
[0041]
如图5所示,所公开的方法可以包括识别目标对象(s502)。基于用户输入从图像识别目标对象。图像可以由相机1022捕获并且可以显示在遥控器104上。
[0042]
在一些实施例中,诸如智能电话、智能平板、智能眼镜之类的人机交互终端(例如,遥控器104)可以接收对待测量的目标对象的用户选择。图6是根据本公开的示例性实施例的与识别目标对象有关的图形用户界面。如图6所示,图形用户界面可以显示初始图像602。初始图像602可以显示在与uav通信的遥控器的屏幕上。初始图像602可以是由uav捕获并从uav发送的实时图像。遥控器可以允许用户识别初始图像602中的目标区域604。可以基于用户选择来识别目标区域604,诸如在目标区域的中心处的单击、在目标区域中的任意位置处的双击、在定义目标区域的边界框的第一角点处的单次/双击以及第二角点处的单击/双击、对包围目标区域的形状的自由绘图或具有定义目标区域的边界框的起点和终点的拖动操作。当用户输入仅将图像中的一个点识别为与目标对象相对应时,可以执行图像分割过程以获得多个分割图像部分,并且可以将目标区域确定为包括识别出的点的分割部分。在一些实施例中,用户输入可以是对象名称或对象类型。可以实施模式识别或图像分类算法以基于名称/类型来识别初始图像中的一个或多个对象,并且将与用户输入的名称或类型相匹配的对象确定为目标对象。
[0043]
在一些实施例中,当uav的相机正在跟踪目标对象(即,捕获包含目标对象的图像)时,用户可以请求测量到另一对象的距离,该另一对象也包含在所捕获的图像中,例如,通过在图形用户界面上所示的图像中选择与待测量对象相对应的区域,或者输入待测量对象的名称或类型。待测量对象可以是目标对象的背景对象。换言之,目标对象和背景对象都包含在由uav的相机捕获的多个图像中。
[0044]
在一些实施例中,识别待测量对象可以包括:获得用户对在图形用户界面上显示的多个图像之一中的区域的选择;以及基于所选择的区域获取待测量对象。例如,如图6所示,用户可以选择区域606作为与待测量对象相对应的区域。在一些其他实施例中,识别待测量对象可以包括:自动识别多个图像之一中包含的除目标对象之外的至少一个对象;接收指定待测量对象的用户指令;基于用户指令,从至少一个识别出的对象中获取待测量对象。可以实施模式识别或图像分类算法,以基于名称、类型或其他对象特性来自动识别捕获图像中的一个或多个对象。例如,识别出的对象可以是:雨伞、橙色汽车、具有平坦屋顶的建筑物。此外,将与用户输入的名称或类型匹配的对象确定为待测量对象。可以在接收到关于特定名称或类型的用户输入之后执行对象识别。备选地,可以在图形用户界面上呈现多个识别出的对象(例如,通过列出对象的名称/特性,或者通过在图像中显示与对象相对应的边界框),并且接收对一个对象的用户选择(例如,关于一个名称或一个边界框的选择)以确定待测量对象。
[0045]
在一些实施例中,识别图像中的对象可以包括识别图像中表示对象的区域。例如,识别目标对象可以包括基于用户输入识别初始图像中表示目标对象的区域。可以理解,所公开的识别初始图像中的目标对象的过程可以应用于识别任何合适的图像中的任何合适的对象。在一些实施例中,目标区域被认为是表示目标对象的区域。在一些实施例中,对目标区域的用户选择可能不是准确的操作,并且最初识别的目标区域可以指示目标对象的近似位置和大小。可以通过根据初始图像细化目标区域来获得表示目标对象的区域,例如通过实施超像素分割方法。
[0046]
超像素可以包括具有相似纹理、颜色和/或亮度级别的一组连接像素。超像素可以是具有一定视觉显著性的不规则形状的像素块。超像素分割包括将图像划分为多个不重叠的超像素。在一个实施例中,可以通过基于像素的图像特征对初始图像的像素进行聚类(cluster)来获得初始图像的超像素。可以使用任何合适的超像素分割算法,例如简单线性迭代聚类(slic)算法、基于图形的分割算法、n切割分割算法、turbo像素分割算法、快速移位分割算法、图形切割a分割算法、图形切割b分割算法等。可以理解,超像素分割算法可以用于彩色图像和灰度图像两者中。
[0047]
此外,可以获得位于目标区域中的一个或多个超像素,并且可以将由一个或多个超像素形成的区域识别为表示目标对象的区域。排除位于目标区域之外的超像素。对于部分位于目标区域中的超像素,可以通过将超像素中位于目标区域内的像素的数量除以超像素中的像素的总数来确定百分比。如果该百分比大于预设阈值(例如,50%),则超像素可以被认为位于目标区域中。预设阈值可以基于实际应用进行调整。
[0048]
图7a示出了根据本公开的示例性实施例的超像素分割结果图像。图7b示出了图7a所示的图像的放大部分。如图7b所示,多个超像素全部或部分位于用户选择的目标区域702内,包括超像素704、706和708。超像素704被完全包围在目标区域702中,并且被认为包括在表示目标对象的区域中。在一些实施例中,预设百分比阈值可以是50%。因此,在这些实施例中,由于不到50%的超像素706位于目标区域702内,所以从表示目标对象的区域中排除了超像素706。另一方面,因为超过50%的超像素708位于目标区域702内,所以超像素708被包括在表示目标对象的区域中。
[0049]
在一些实施例中,所公开的方法可以包括在识别目标对象之后呈现指示受损的测量精度的警告消息。在一些情况下,目标对象可能具有影响测量精度的某些特性,例如,当目标对象可能快速移动时,或者当目标对象没有包括要被跟踪的足够的细节时。如果确定目标对象具有某些特性中的一个或多个,则遥控器可以呈现警告消息和可能损害测量精度的原因。在一些实施例中,警告消息还可以包括放弃或继续进行测量的选项,并且在接收到基于用户输入的确认选择之后可以继续测量步骤。
[0050]
在一些实施例中,所公开的方法可以包括确定目标对象是否是移动对象。在一些实施例中,所公开的方法还可以包括:如果确定目标对象是移动对象,则呈现警告消息,该警告消息指示受损的测量精度。例如,可以在目标对象上实现卷积神经网络(cnn)以识别目标对象的类型。目标对象的类型可以是以下中的一个:例如,高移动性类型,其指示目标对象具有高移动可能性,例如人、动物、汽车、飞机或船;低移动性类型,其指示目标对象移动具有低移动可能性,例如门或椅子;以及非移动性类型,例如建筑物、树木或路标。可以相应地呈现警告消息。在一些实施例中,所公开的方法可以包括确定目标对象的移动速度是否低于预设阈值。即,如果目标对象移动低于某个阈值速度,则所公开的方法可以提供到目标对象的距离的精确测量。在一些实施例中,所公开的方法还可以包括:如果目标对象的移动速度不小于预设阈值,则呈现警告消息,该警告消息指示受损的测量精度。
[0051]
在一些实施例中,所公开的方法可以包括:提取与目标对象相对应的目标特征点(例如,初始图像中表示目标对象的区域);确定目标特征点的数量是否小于预设数量阈值。在一些实施例中,所公开的方法还可以包括:响应于目标特征点的数量小于预设数量阈值,呈现警告消息,该警告消息指示受损的测量精度。可以基于目标对象是否包括足够的纹理
细节或足够数量的特征点来确定是否可以在一系列图像帧中跟踪目标对象。可以通过任何合适的特征提取方法来提取特征点,例如哈里斯角检测器、hog(定向梯度直方图)特征描述符等。
[0052]
在一些实施例中,当确定目标对象的目标区域时,遥控器上的图形用户界面可以显示例如覆盖在初始图像上的目标区域的边界线或边界框、响应于确定可能受损的测量精度的警告消息和/或确认连续距离测量和/或进一步编辑目标区域的选项。
[0053]
再次参考图5,当uav移动时,uav的相机可以跟踪目标对象并捕获一系列图像,并且处理器可以接收所捕获的图像(s504)。换言之,当uav移动时,uav上的相机可以捕获包含目标对象的一系列图像。在一些实施例中,图像捕获可以是uav的常规操作(例如,以固定频率),并且遥控器可以从uav接收所捕获的图像的实时发送并显示在屏幕上。uav的常规操作指代在uav飞行期间通常可以执行的uav的操作。除图像捕获外,常规操作还可以包括:在未收到移动控制时稳定地悬停,自动避开障碍物,响应来自遥控器的控制命令(例如,基于对遥控器的用户输入来调整飞行高度、速度和/或方向,朝向用户在遥控器上选择的位置飞行)和/或向遥控器提供反馈(例如,报告位置和飞行状态,发送实时图像)。确定uav的移动方向和/或速度可以是便于距离测量的操作。在距离测量过程的开始,uav可以以初始速度沿着具有围绕目标对象的初始半径的弧形或弯曲路径移动。目标对象可以位于弧形或弯曲路径的中心或中心附近。初始半径可以是目标对象与uav之间的估计距离。在一些实施例中,可以基于初始半径来确定初始速度。例如,初始速度可以与初始半径具有正相关。
[0054]
在一些实施例中,可以基于从uav的立体相机(例如,前视系统2024)获得的数据来确定目标对象与uav之间的估计距离。例如,在识别出由uav的主相机(例如,相机2022)捕获的初始图像中的目标对象之后,可以分析在基本相同的时刻由立体相机捕获的图像以获得深度图。即,深度图也可以包括与目标对象相对应的对象。对应对象的深度可用作目标对象与uav之间的估计距离。可以理解的是,可以基于从uav上任何合适的深度传感器(例如,激光传感器、红外传感器、雷达等)获得的数据,来确定目标对象与uav之间的估计距离。
[0055]
在一些实施例中,可以基于预设值来确定目标对象与uav之间的估计距离。预设值可以是uav可测量的最远距离(例如,基于uav的主相机的分辨率)。例如,当在深度图中难以识别与目标对象相对应的对象时,可以将初始半径直接确定为预设值。
[0056]
在一些实施例中,当uav移动时,可以将uav的感测数据(例如,由相机捕获的图像)用作反馈数据,并且可以基于反馈数据来调整uav的速度、uav的移动方向、uav的旋转度或承载相机的云台的旋转度中的至少一项。这样,可以实现闭环控制。反馈数据可以包括与捕获图像中的目标对象相对应的像素坐标。在一些实施例中,可以调节承载相机的云台的旋转度以确保目标对象被包括在捕获图像中。换言之,相机跟踪目标对象。在一些情况下,在某些预定位置(例如,图像中心)或以某个预定尺寸(例如,以像素为单位)跟踪目标对象。即,当基于反馈数据确定目标对象的一部分不在捕获图像中时,可以调节云台的旋转度。例如,如果与目标对象相对应的其余像素位于捕获图像的上边缘,则云台可以将相机向上旋转一定程度,以确保下一捕获图像包括整个目标对象。在一些实施例中,可以基于当前图像和先前捕获的图像中的目标对象的位置差(例如,匹配的超像素的2d坐标)来调整uav的速度。当前图像和先前捕获的图像可以是两个连续捕获的帧,或者是以预定间隔捕获的帧。例如,如果位置差小于第一阈值,则可以提高uav的速度;并且如果位置差大于第二阈值,则可
以降低uav的速度。换言之,两个图像中目标对象的位置差小于第一阈值,表明正在采集和分析冗余信息,因此可以提高uav的速度以在帧之间创建足够的位移从而节省计算能力/资源并加快测量过程。另一方面,两个图像中目标对象的较大位置差可能会导致难以在多个捕获图像之间跟踪相同的特征点并导致结果不准确,因此可以降低uav的速度以确保测量精度和稳定性。在一些实施例中,如果用户请求测量到除目标对象之外的背景对象的距离,则可以基于当前图像中和先前捕获的图像中背景对象的位置差来调节uav和/或云台的移动。
[0057]
在一些实施例中,可以基于用户输入来手动控制uav的移动。当基于反馈数据确定应调整uav的速度或云台的旋转度时,遥控器可以提示用户请求自动校正或提供手动操作的建议(例如,显示提示消息或播放音频消息,诸如“放慢速度以测量距离”)。在一些实施例中,当不存在手动输入时,uav可以基于用于距离测量的预没过程进行自动飞行(例如,如上所述,选择初始速度和半径,基于反馈数据调整速度和旋转度)。
[0058]
当uav正在移动并捕获图像时,也采集与图像的捕获时刻相对应的uav的移动信息(s506)。移动信息可以包括由uav记录的各种传感器数据,例如当uav移动时的加速度计和陀螺仪的读数。在一些实施例中,移动信息可以包括承载主相机的云台的姿态信息,例如云台的旋转度。在一些实施例中,移动信息还可以包括针对uav的路由操作定期产生的其他传感器数据,例如当uav移动时从imu和vo电路获得的uav姿态关系、通过积分imu数据、vo数据和gps数据获得的在世界坐标系中的uav的姿态信息(例如,定向和位置)。可以理解,可以在uav移动的同时执行捕获目标对象的图像(s504)和采集uav的移动信息(s506)。此外,在s504和s506中所捕获的图像和所采集的移动信息可以包括针对常规操作有规律地生成的数据,并且可以直接获得并用于距离测量。
[0059]
可以基于多个捕获图像和与多个图像的捕获时刻相对应的移动信息来计算多个捕获图像中包含的对象与uav之间的距离(s508)。待测量对象可以是目标对象或也包含在多个图像中的背景对象。通过分析来自imu和vo电路的数据以及由主相机捕获的图像,可以确定图像点的3d位置和与多个图像的捕获时刻相对应的相机姿态信息。此外,可以基于图像点的3d位置来确定到多个图像中包含的对象的距离。距离计算可以在uav和/或遥控器上执行。
[0060]
图8示出了根据本公开的示例性实施例的距离计算过程。如图8所示,在示例性实施例中,可以从由主相机捕获的连续图像帧中选择多个关键帧(s5081)。所选择的关键帧可以形成关键帧序列。在一些实施例中,以固定的频率捕获原始图像帧序列,并且如果某些原始图像帧不满足特定条件,则可以不选择它们作为关键帧。在一些实施例中,关键帧包括当uav稳定移动(例如,小的旋转变化)时捕获的图像帧。在一些实施例中,如果从最近关键帧到当前图像帧的位置变化大于预设阈值(例如,显著位移),则将当前图像帧选择为新的关键帧。在一些实施例中,第一关键帧可以是初始图像,或者是当uav处于稳定状态时(例如,为了避免运动模糊)在初始图像的特定时间段内捕获的图像。可以基于图像帧的捕获时刻与最近的关键帧之间的姿态关系来确定并选择在第一关键帧之后捕获的图像帧作为关键帧。换言之,通过评估两个捕获时刻的主相机的姿态关系(例如,从捕获最近的关键帧的时刻到捕获当前图像帧的时刻,主相机的旋转变化和位移),可以确定是否可以将当前图像帧选择为关键帧。
[0061]
在一些实施例中,随着uav的移动和相机捕获图像帧,可以确定新的关键帧并将其添加到关键帧序列中。每个关键帧可以具有主相机的对应的估计相机姿态。可以通过积分uav的imu数据、uav的vo数据以及承载主相机的云台的位置/旋转数据来获得估计的相机姿态。当关键帧序列中的关键帧达到特定数量m(例如,10个关键帧)时,它们就可以用于计算到待测量对象的距离。
[0062]
当确定关键帧时,可以针对每个关键帧执行特征提取(s5082)。在一些实施例中,一旦确定/选择了一个关键帧,就可以执行特征提取。即,可以在识别下一关键帧的同时执行关键帧的特征提取。在一些其他实施例中,当确定一定数量的关键帧时,例如当关键帧序列中的所有关键帧被确定时,可以执行特征提取。在此可以实现任何合适的特征提取方法。例如,稀疏特征提取可用于减少计算量。可以执行角点检测算法来获取角点作为特征点,例如fast(加速分割检测特征)、susan(最小同值分割吸收核)角点运算符、哈里斯角点运算符等。以哈里斯角点检测算法为例,给定图像点i,考虑在区域(u,v)上的图像块并将其移位(u,v),结构张量a定义如下:
[0063][0064]
其中,i
x
和i
y
是点i的偏导数。与图像点相对应的x方向和y方向上的梯度信息m
c
可以定义如下:
[0065]
m
c
=λ1λ2‑
κ(λ1+λ2)2=det(a)

κtrace2(a)
[0066]
其中,det(a)是矩阵a的行列式,trace(a)是矩阵a的迹,κ是可调灵敏度参数。可以设置阈值m
th
。当m
c
>m
th
时,图像点被视为特征点。
[0067]
一个关键帧中的特征点可能会出现在一个或多个其他关键帧中。换言之,两个连续的关键帧可以包括描述相同环境/对象的匹配特征点。可以跟踪关键帧中的这些特征点的2d位置以获得特征点的光流(s5083)。在此可以实施任何合适的特征提取/跟踪和/或图像配准方法。以kanade

lucas

tomasi(klt)特征跟踪器为例,假设h表示两个图像f(x)和g(x)之间的位移,并且g(x)=f(x+h),则关键帧中特征点的位移可以基于以下等式的迭代获得:
[0068][0069]
其中,f(x)早于g(x)捕获,w(x)是加权函数,x是表示位置的矢量。此外,在获得当前图像相对于先前图像的位移h之后,可以执行逆计算以获得先前图像相对于当前图像的位移h

。理论上,h=

h

。如果实际计算满足理论条件,即h=

h

,则可以确定特征点被正确跟踪,即,一个图像中的特征点与另一图像中的特征点匹配。在一些实施例中,可以在一些或全部关键帧中识别跟踪的特征点,并且可以在至少两个连续的帧中识别每个跟踪的特征点。
[0070]
基于关键帧中跟踪的特征点的2d位置,可以通过解决关于场景几何的3d结构的优化问题和查看与相机姿态有关的参数来获得特征点的三维(3d)位置和精确的相机姿态信息(s5084)。在示例性实施例中,可以在该步骤中使用用于使观察到的图像点和预测图像点
的图像位置之间的重投影误差最小化的光束平差(ra)算法。给定从不同视点描绘多个3d点(即,来自关键帧的特征点)的图像集合,可以将光束平差定义为根据涉及所有点的对应图像投影的优化标准,同时细化描述场景几何的3d坐标、相对运动参数(例如,捕获关键帧时相机姿态变化)以及用于获取图像的相机的光学特性的问题。ba算法的数学表示为:
[0071][0072]
其中,i表示第i个跟踪的3d点(例如,来自s5083的跟踪特征点),n是跟踪点的数量,而b
i
表示第i个点的3d位置。j表示第j个图像(例如,来自s5081的关键帧),m是图像的数量,并且a
j
表示第j个图像的相机姿态信息,包括旋转信息r、变换信息t和/或固有参数k。v
ij
指示第i点在第j图像中是否有投影;如果第j图像包含第i点,则v
ij
=1,否则v
ij
=0。q(a
j
,b
i
)是基于相机姿态信息a
j
的第i点在第j图像中的预测投影。x
ij
是描述第i点在第j图像中的实际投影的矢量(例如,图像中该点的2d坐标)。ad(x1,x2)表示用矢量x1和x2表示的图像点之间的欧几里得距离。
[0073]
在一些实施例中,光束平差等于联合精化初始相机和结构参数估计的集合,以找到最准确地预测可用图像集合中的观察到的点的位置的参数集合。初始相机和结构参数估计,即a
j
的初始值,是基于来自uav的imu和uav的vo电路的常规操作数据获得的估计相机姿态信息。即,在维持uav的常规操作中,imu和vo电路可以分析传感器数据以识别uav本身的姿态信息。可以通过组合匹配的捕获时刻的uav的姿态信息和匹配的捕获时刻的承载相机的云台的姿态信息,来获取捕获关键帧的相机的估计相机姿态的初始值。在一个实施例中,估计的相机姿态的初始值可以进一步积分uav的gps数据。
[0074]
可以根据与待测量对象相关联的一个或多个特征点的3d位置来获得待测量对象与uav之间的距离(s5085)。在下文中,在描述距离计算和尺寸确定的实施例时,将目标对象用作待测量对象的示例。可以理解,与目标对象相关的所公开的过程可以应用于关键帧中包含的任何合适的待测量对象。在一些实施例中,到目标对象的距离被认为是到目标对象的中心点的距离。目标对象的中心点可以是例如目标对象的几何中心、目标对象的质心或目标对象的边界框的中心。中心点可以包括或可以不包括在从s5082提取的特征点中。当中心点包括在提取的特征点中时,可以基于从光束平差结果获得的中心点的3d位置来直接确定到中心点的距离。
[0075]
在一个实施例中,当从s5082提取的特征点中不包括中心点时,跟踪关键帧中的特征点的2d位置(s5083)还可以包括将中心点添加到特征点,并根据基于目标特征点的光流矢量获得的中心点的光流矢量,跟踪关键帧中的目标对象的中心点的2d位置。在一些实施例中,目标特征点可以是从s5082提取的并且位于目标对象的区域内的特征点。即,通过将中心点添加为用于ba算法计算的跟踪点,可以从ba算法结果直接获得中心点的3d位置。在数学上,假设x
i
表示第i目标特征点的光流矢量,并且在与目标对象相对应的区域内存在n个特征点,则中心点x0的光流矢量可以通过以下获得:
[0076][0077]
其中,w
i
是基于中心点与第i目标特征点之间的距离对应于第i目标特征点的权
重。在一个实施例中,可以基于高斯分布如下获得w
i

[0078][0079]
其中,σ可以基于经验进行调整,d
i
表示图像上的中心点与第i目标特征点之间的距离,即其中,(u
i
,v
i
)是第i个目标特征点的2d图像位置,(u0,v0)是中心点的2d图像位置。在一些实施例中,用于获得中心点的光流矢量的一些目标特征点可能不一定在目标对象的区域内。例如,可以将2d位置在中心点的一定范围内的特征点用作目标特征点。该范围可以大于目标对象的区域,以例如在计算中心点的光流矢量时包括更多特征点。可以理解,获得点的光流矢量并将其添加到ra计算中的类似方法可以用于基于待添加点和提取的特征点之间的2d位置关系获得除中心点之外的点的3d位置。例如,可以跟踪目标对象的角点并将其添加到ba计算中,并且可以基于目标对象的角点的3d位置来获得目标对象的大小。
[0080]
在另一实施例中,当从s5082提取的特征点中不包括中心点时,根据与目标对象相关联的一个或多个特征点的3d位置来计算到目标对象的距离(s5085)还可以包括基于多个目标特征点的3d位置来确定中心点的3d位置。可以识别位于2d图像中的中心点的范围内的特征点,并且可以基于它们的3d位置来获得识别出的特征点的深度信息。在一个示例中,大多数识别出的特征点可以具有相同的深度信息或在预设方差范围内的相似的深度信息,并且可以被认为与目标对象位于相同的图像平面中。即,识别出的特征点的多数深度可以被认为是目标对象的深度,即,目标对象与uav之间的距离。在另一示例中,可以将识别出的特征点的深度的加权平均值确定为目标对象的深度。可以基于中心点与识别出的特征点之间的距离来确定权重。
[0081]
在一些实施例中,可以基于目标对象与uav之间的距离来获得目标对象的尺寸。目标对象的尺寸可以包括例如目标对象的长度、宽度、高度和/或体积。在一个实施例中,假设目标对象是诸如长方体之类的平行六面体,则可以通过评估目标对象的体对角线的两个点/顶点的3d坐标来获得目标对象的尺寸。在一个实施例中,可以以像素为单位来获得2d图像中目标对象的长度或高度(例如,2800个像素),并基于目标对象的深度与相机的焦距之比(例如,9000mm/60mm)和相机传感器清晰度(200像素/mm),则可以获得标准长度单位的目标对象的长度或高度(例如,2.1m)。
[0082]
再次参考图5,所公开的方法还包括向用户呈现所计算的距离(s510)。例如,该距离可以显示在图形用户界面上,和/或在音频消息中广播。在一些实施例中,遥控器可以在图形用户界面上显示捕获的图像,并在当前在图形用户界面上显示的图像上标记距离。此外,当前在图形用户界面上显示的图像可以是具有识别出的待测量对象的初始图像,或者是包含待测量对象的实时馈送图像。
[0083]
在一些实施例中,对象(例如,目标对象或背景对象)与uav之间的距离可以基于相机捕获的附加第二图像和与第二图像的捕获时刻相对应的移动信息来实时更新。在获得与关键帧相对应的对象的3d位置(例如,来自s5084和s5085)之后,当在确定对象的3d位置之后的任意时刻捕获了新图像(例如,第二图像)时,可以通过将与最后一个关键帧相对应的对象的3d位置与最后一个关键帧和第二图像的捕获时刻之间的相机姿态关系进行组合来
获得与第二图像相对应的对象的位置。在一些实施例中,可以以某些时间间隔(例如,每秒)或每当选择新的关键帧时更新距离,而无需重复执行s5082

s5085。在一个示例中,由于对象的3d位置可用,因此可以通过将uav的当前3d位置与对象的3d位置进行积分(例如,计算3d位置之间的欧几里得距离)来方便地确定对象与uav之间的更新距离。在另一示例中,由于已知在特定时间对象和uav之间的位置关系(例如,可以用第一位移矢量来描述在最后一个关键帧的捕获时刻的位置关系),因此通过将已知位置关系和uav在当前时间和对应于该已知位置关系的时间点之间的位置变化进行积分(例如,计算通过将第一位移矢量与描述自最后一个关键帧以来uav自身的位置变化的第二位移矢量相加获得的矢量绝对值),可以方便地确定对象和uav之间的更新后的距离。在一些其他实施例中,当累积一定数量的新关键帧以形成新关键帧序列时,系统可以再次执行s5082

s5085以计算到对象的更新距离。
[0084]
在一些实施例中,当目标对象静止时捕获关键帧。在一些实施例中,当目标对象正在移动而目标对象的背景对象静止时捕获关键帧。可以使用所公开的方法来获得背景对象的3d位置。此外,基于背景对象和目标对象之间的相对位置,可以基于跟踪的目标对象的运动和背景对象的3d位置来获得到目标对象的距离。例如,背景对象是建筑物,而目标对象是在uav移动并捕获包含建筑物和汽车两者的图像时朝建筑物移动/远离建筑物的汽车。通过实施所公开的过程(例如,s5081

s5085),可以获得建筑物的3d位置以及建筑物与uav之间的位置关系。此外,可以根据由捕获图像启示的建筑物和汽车之间的相对2d位置变化并与由机载深度传感器(例如,立体相机、雷达等)启示的建筑物和汽车之间的相对深度变化相组合,来获得汽车和建筑物之间的3d位置关系。通过对建筑物与uav之间的3d位置关系以及汽车与建筑物之间的3d位置关系进行积分,可以获得汽车与uav之间的3d位置关系以及汽车与uav之间的距离。
[0085]
在一些实施例中,计算待测量对象与uav之间的距离(s508)还可以包括访问在维持uav的常规操作中产生的数据,并将常规操作的数据用于计算待测量对象与uav之间的距离。当uav操作时,各种传感器数据实时地被重新编码并被分析,以维持uav的常规操作。常规操作可以包括:使用机载相机捕获图像并将捕获的图像发送给遥控器以进行显示;在未收到移动控制时稳定地悬停,自动避开障碍物,响应来自遥控器的控制命令(例如,基于对遥控器的用户输入来调整飞行高度、速度和/或方向,朝向用户在遥控器上选择的位置飞行)和/或向遥控器提供反馈(例如,报告位置和飞行状态,发送实时图像)。记录的传感器数据可以包括:陀螺仪数据,加速度计的数据,承载主相机的云台的旋转度,gps数据,由主相机采集的彩色图像数据,立体视觉相机系统采集的灰度图像数据。uav的惯性导航系统可用于获得用于常规操作的uav的当前定位/位置。惯性导航系统可以由uav的惯性测量单元(imu)基于陀螺仪数据和加速度计数据和/或gps数据来实现。uav的当前定位/位置也可以通过vo电路获得,该vo电路基于由uav的立体相机采集的灰度图像数据来实现视觉测程机制。可以对来自imu和vo电路的数据进行积分和分析,以获得精度更高的包括uav在世界坐标系中的位置的uav姿态信息。在一些实施例中,所公开的距离测量系统可以确定从针对uav的常规操作采集的数据中是否容易获得计算距离所需的数据。如果特定类型的数据不可用,则系统可以与对应的传感器或uav的其他组件进行通信以启用数据采集并获取丢失类型的数据。在一些实施例中,除了针对uav的常规操作采集的数据之外,所公开的距离测量过程不需要采集任何其他数据。此外,所公开的距离测量过程可以利用在维持常规操作
中已经处理和产生的数据,例如由imu和vo电路产生的数据。
[0086]
在一些实施例中,由imu和vo电路产生的针对uav的常规操作的数据可以直接用于距离测量过程中。针对常规操作产生的数据可用于在距离测量过程中选择关键帧(例如,在s5081)和/或确定用于光束平差的初始值(例如,在s5084)。
[0087]
在一些实施例中,针对维持uav的常规操作而产生的可用于选择关键帧的数据包括:uav在先前图像帧的捕获时刻的姿态;以及自先前图像帧的捕获时刻以来所采集的imu数据。在一些实施例中,这样的数据可以用于确定与当前图像帧相对应的估计的相机姿态并相应地确定当前图像帧是否是关键帧。例如,常规操作包括(例如,通过应用视觉惯性测程算法)基于imu数据和vo/gps数据连续地计算uav的姿态。因此,准备好使用先前图像帧的捕获时刻时uav的姿态。在确定当前图像帧是否为关键帧的时刻,可能无法立即求解出或准备好与当前图像帧相对应的uav的姿态。因此,可以根据先前图像帧的捕获时刻的uav的姿态以及与当前图像帧的捕获时刻相对应的imu数据(例如,在先前图像帧的捕获时刻与当前图像帧的捕获时刻之间采集的imu数据),来获得与当前图像帧相对应的主相机的估计相机姿态。
[0088]
在一些实施例中,可以实施imu预积分,以基于先前的uav位置和当前imu数据来估计一系列图像帧的捕获时刻之间的uav的移动/位置变化。例如,可以基于当捕获先前图像帧时的uav的位置和来自惯性导航系统的数据的imu预积分来估计当捕获当前图像帧时的uav的位置。imu预积分是一种过程,它使用uav在时间点a的位置以及在时间点a和b之间获得的惯性测量的累积来估计在时间点b的uav的位置。
[0089]
离散形式的imu预积分的数学描述如下:
[0090][0091]
v
k+1
=v
k
+(r
wi
(a
m

b
a
)+g)δt
[0092][0093]
δq=q{(ω

b
ω
)δt}
[0094]
(b
a
)
k+1
=(b
a
)
k
[0095]
(b
ω
)
k+1
=(b
ω
)
k
[0096]
其中,p
k+1
是捕获当前图像帧时uav的估计3d位置,p
k
是基于来自常规操作的数据的(例如,基于imu、vo电路和/或gps传感器计算的)在捕获先前图像帧时uav的3d位置。v
k+1
是捕获当前图像帧时uav的速度,v
k
是捕获先前图像帧时uav的速度。q
k+1
是捕获当前图像帧时uav的四元数,q
k
是捕获先前图像帧时uav的四元数。(b
a
)
k+1
和(b
a
)
k
是捕获当前图像帧和先前图像帧时的相应加速度计偏置。(b
ω
)
k+1
和(b
ω
)
k
是捕获当前图像帧和先前图像帧时的相应陀螺仪偏置。δt是捕获当前图像帧k+1的时刻与捕获先前图像帧k的时刻之间的时间差。a
m
表示加速度计的当前读数,g是重力加速度,ω表示陀螺仪的当前读数。δq是当前图像帧和先前图像帧之间的旋转估计,q{}表示从欧拉角表示到四元数表示的转换。r
wi
表示uav坐标系和世界坐标系之间的旋转关系,可以从四元数q获得。
[0097]
在一些实施例中,当前图像帧和先前图像帧可以是两个连续捕获的成像帧。在imu预积分过程中,直接从传感器获得的参数包括加速度计读数a
m
和陀螺仪读数ω。可以基于以上数学描述或任何其他合适的计算来获得其余参数。因此,可以通过与先前图像帧相对
应的uav的姿态的imu预积分(例如,先前使用视觉惯性测程在uav的常规操作中求解的)和与当前图像帧相对应的imu数据,来估计与当前图像帧相对应的uav的姿态。
[0098]
在一些实施例中,捕获连续图像帧的频率(例如,20

30hz)低于记录加速度计读数和陀螺仪读数的频率(例如,200

400hz)。即,可以在两个连续图像帧的捕获时刻之间获得多个加速度计读数和陀螺仪读数。在一个实施例中,可以基于加速度计和陀螺仪读数的记录频率来执行imu预积分。例如,δt

表示两个连续的加速度计和陀螺仪读数之间的时间差,并且δt=nδt

、n是大于1的整数。根据δt

,可以以与加速度计和陀螺仪读数的记录频率相同的频率执行imu预积分。可以通过在图像捕获与加速度计/陀螺仪数据记录之间的匹配时刻输出每第n个预积分结果,来获取捕获当前图像帧时uav的估计3d位置。在一个实施例中,对在两个连续图像帧的捕获时刻之间获得的多个加速度计/陀螺仪读数进行滤波,以获得降低噪声的结果,用于imu预积分。
[0099]
在一些实施例中,在距离测量过程中(例如,在关键帧选择中)使用针对uav的常规操作产生的数据可以包括:使用陀螺仪的读数来确定uav是否处于稳定移动状态。如果uav未处于稳定移动状态,则捕获的图像可能不适合用于距离测量。例如,当角速度小于预设阈值时,即当||ω

b
ω
||2<ω
th
时,ω
th
是阈值角速度,可以确定uav处于稳定移动状态,并且在稳定的移动状态下捕获的图像可用于距离测量。此外,可能不会选择并非在稳定移动状态下捕获的图像作为关键帧。
[0100]
在一些实施例中,可以根据来自imu预积分的结果来估计两个连续帧(例如,先前图像帧和当前图像帧)的捕获时刻之间的相机姿态关系。在一些实施例中,当将vo算法用于uav的立体图像时,从vo算法获得的立体相机移动可以指示uav的位置和运动。此外,从vo算法获得的立体相机的相机姿态或uav的姿态、imu预积分数据和/或gps数据可以提供主相机的相机姿态的粗略估计。在一些实施例中,通过组合uav的姿态和云台相对于uav的姿态(例如,云台的旋转度和/或uav与云台之间的相对姿势)来获得主相机的估计的相机姿态。例如,与先前图像帧相对应的主相机的估计相机姿态可以是与先前图像帧相对应的uav的姿态(例如,来自常规操作)和对应于先前图像帧的云台的旋转度的组合。与当前图像帧相对应的主相机的估计相机姿态可以是与当前图像帧相对应的uav的估计姿态(例如,来自imu预积分)和对应于当前图像帧的云台的旋转度的组合。
[0101]
在一些实施例中,在距离测量过程中(例如,在关键帧选择中)使用针对uav的常规操作而产生的数据可以包括:使用两个连续帧之间的相机姿态关系来获得关键帧和在关键帧之后捕获的图像帧之间的相机姿态关系。在确定了当前关键帧的情况下,提取下一关键帧可以包括:确定关键帧与在关键帧之后捕获的图像帧之间的相机姿态关系是否满足预设条件;响应于相机姿态关系满足预设条件,选择该图像帧为下一关键帧。
[0102]
图9示出了根据本公开的示例性实施例的关键帧提取过程。如图9所示,原始图像序列包括以固定频率(例如,30hz)捕获的多个图像帧。针对每两个连续帧执行vo计算和/或imu预积分,以获得两个连续图像捕获时刻之间的相机姿态关系。关键帧和在关键帧之后捕获的任何图像帧之间的相机姿态关系可以通过重复地累积两个连续图像捕获时刻之间的相机姿态关系来获得,即,从关键帧和该关键帧最早的下一帧的该对的相机姿态关系开始累积,直到待分析图像帧和其最近的前一帧的该对的相机姿态关系为止。例如,如图9所示,当前关键帧在时刻t0被捕获。可以从vo计算和/或imu预积分中获得时刻t0和t1之间的相机
姿态关系,并被分析以确定是否满足预设条件。当对于时刻t0和t1之间的相机姿态关系不满足预设条件时,关键帧选择过程继续进行,以确定时刻t0和t2之间的相机姿态关系是否满足预设条件。时刻t0和t2之间的相机姿态关系可以通过将时刻t0和t1之间的相机姿态关系与时刻t1和t2之间的相机姿态关系进行组合来获得。当时刻t0和t3之间的相机姿态关系满足预设条件时,关键帧选择过程将在时刻t3捕获的图像帧确定为下一关键帧。
[0103]
在一些实施例中,对应于相机姿态关系的预设条件包括旋转阈值或位移阈值中的至少一个。在一个实施例中,当图像帧与当前关键帧之间的位移足够大和/或图像帧与当前关键帧之间的旋转足够小时,将图像帧确定为下一关键帧。换言之,相机姿态关系包括从捕获关键帧的时刻到捕获图像帧的时刻的旋转变化或者从捕获关键帧的时刻到捕获图像帧的时刻的相机的位置变化中的至少一个。确定相机姿态关系是否满足预设条件包括以下至少之一:响应于旋转变化小于旋转阈值,确定相机姿态关系满足预设条件;以及响应于旋转变化小于旋转阈值并且位置变化大于位移阈值,确定相机姿态关系满足预设条件。在一些实施例中,当位置变化小于或等于位移阈值时(例如,指示位置变化不足够显著以至于不能被处理),图像帧可以被取消资格被选择为关键帧并且过程继续分析下一图像帧。在一些实施例中,当旋转变化大于或等于旋转阈值时(例如,指示图像不是在稳定环境中捕获的,并且可能有损结果的准确性),则可以丢弃图像帧,并且过程继续分析下一图像帧。
[0104]
在数学上,旋转变化r可以用欧拉角描述:预设条件可以包括满足以下不等式:其中α
th
是旋转阈值。位置/平移变化t可以用t=[t
x
,t
y
,t
z
]
t
描述。预设条件可以包括满足以下不等式:其中d
th
是位移阈值。
[0105]
在一些实施例中,将数据用于距离测量过程中uav的常规操作(例如,在为光束平差算法分配初始值中)可以包括:积分来自imu、vo电路和gps传感器的数据以获得与关键帧的捕获时刻相对应的uav的姿态信息。可以通过例如立体相机的相机姿态(即,uav的姿态信息)的线性叠加以及主相机和uav之间的位置关系(即,云台相对于uav的位置/旋转)来获得主相机的估计的相机姿态信息。由于ba算法是一个优化问题,因此分配随机初始值可能会导致局部最优而不是全局最优。在s5084中,将根据imu和vo数据的估计的相机姿态信息用作ba算法的初始值,可以减少迭代次数,可以加快算法的收敛时间,并且可以减少错误概率。此外,在一些实施例中,gps数据也可以在ba算法中用作初始值和约束以获得准确的结果。
[0106]
在一些实施例中,在距离测量过程中使用的uav的常规操作的数据由uav采集和产生(例如,在s504、s506、s5081处,以及当在s5084处获得初始值时),并被发送给遥控器,并且在遥控器上执行对象识别以及距离计算和呈现(例如,在s502、s5082

s5085、s510)。在一些实施例中,仅在遥控器上执行获取用于识别对象的用户输入并呈现计算出的距离,并且其余步骤均由uav执行。
[0107]
可以理解,本文描述的用于计算相机姿态信息的数学过程不是唯一的过程。其他合适的过程/算法可以替代某些公开的步骤。
[0108]
本公开提供了一种使用无人飞行器(uav)来测量距离的方法和系统以及能够测量
距离的uav。与传统测距方法不同,所公开的方法提供了图形用户界面,该图形用户界面允许用户选择由uav的相机捕获的图像中的感兴趣的对象,并几乎实时地(例如,小于500毫秒)提供测量距离。此外,所公开的方法可以直接利用来自uav自身imu的惯性导航数据和针对常规操作产生的来自vo电路的数据进行距离测量,这进一步节省了计算资源和处理时间。所公开的方法直观而方便并且能够以快速的计算速度提供可靠的测量结果。
[0109]
与方法实施例相关联的图中所示的过程可以以任何合适的顺序或次序执行或进行,该任何合适的顺序或次序不限于图中所示和上述的顺序和次序。例如,取决于所涉及的功能,两个连续的过程可以在适当的情况下基本上同时或并行地执行以减少等待时间和处理时间,或者以与图中所示的顺序相反的顺序执行。
[0110]
此外,与设备实施例相关联的附图中的组件可以根据需要以不同于附图中所示的方式耦合。可以省略一些组件并且可以添加附加组件。
[0111]
考虑到本文公开的实施例的说明和实践,本公开的其他实施例对于本领域技术人员将是显而易见的。说明书和示例旨在仅被视为示例性的而不是限制本公开的范围,本发明的真实范围和精神由所附权利要求指示。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1