无人飞行器的飞行参数的测量方法及装置制造方法

文档序号:6223604阅读:135来源:国知局
无人飞行器的飞行参数的测量方法及装置制造方法
【专利摘要】本发明公开了一种无人飞行器的飞行参数的测量方法及装置,该方法包括:获取图像以及采集无人飞行器的角速度;从当前帧图像中提取角点;根据当前无人飞行器的角速度预估当前帧图像中各角点在前一帧图像中的预定区域;根据当前帧图像的角点位置从前一帧图像中的预定区域内搜索对应的角点;根据当前帧图像的角点和前一帧图像对应的角点获取角点速度;根据角点速度获取像素速度;根据像素速度和无人飞行器的飞行高度获取无人飞行器的实际速度。通过上述方式,本发明能够实现准确度高、精度高的飞行参数的测量。
【专利说明】无人飞行器的飞行参数的测量方法及装置
【技术领域】
[0001]本发明涉及无人飞行器领域,特别是涉及一种无人飞行器的飞行参数的测量方法
及装置。
【背景技术】
[0002]无人飞行器是一种以无线电遥控或自身程序控制为主的不载人飞行器。当无人飞行器在无GPS的情况下需要控制自身的飞行状态,例如悬停时,需要获取无人飞行器的飞行参数(例如飞行速度)以控制无人飞行器的飞行状态。
[0003]在无GPS的情况下,一种现有的无人飞行器的飞行参数的测量方法包括如下步骤:提取摄像头传感器获取的图像中简单的特征点后,利用块匹配的方法测量像素速度;最后根据超声波传感器获取的高度和像素速度即可计算得到无人飞行器的飞行速度。
[0004]在现有技术中,由于从图像中提取的特征点并不是角点,在计算像素速度时容易出现误差较大甚至完全错误的问题;其次,采用块匹配的方法最小只能测量一个像素的速度,精度较低,会出现当无人飞行器以较低的速度移动时计算得到的飞行速度为零的情况;再次,现有技术在计算出像素速度后才对由于无人飞行器转动引起的像素速度的变化进行修正,其不能完全消除由于无人飞行器转动带来的对像素速度的影响;最后,现有技术的速度的测量范围很小,不能满足实际应用的需求。

【发明内容】

[0005]本发明主要解决的技术问题是提供一种无人飞行器的飞行参数的测量方法及装置,能够实现准确度高、精度高的飞行参数的测量。
[0006]为解决上述技术问题,本发明采用的一个技术方案是:提供一种无人飞行器的飞行参数的测量方法,该方法包括:获取图像以及采集无人飞行器的角速度;从当前帧图像中提取角点;根据当前无人飞行器的角速度预估当前帧图像中各角点在前一帧图像中的预定区域;根据当前帧图像的角点位置从所述前一帧图像中的预定区域内搜索对应的角点;根据当前帧图像的角点和前一帧图像对应的角点获取角点速度;根据角点速度获取像素速度;根据像素速度和无人飞行器的飞行高度获取无人飞行器的实际速度。
[0007]其中,从当前帧图像中提取角点的步骤包括:对当前帧图像进行金字塔分层;求取金字塔分层后位于金字塔塔顶的当前帧图像的顶层图像层中各像素点沿水平方向和垂直方向的灰阶梯度;根据沿水平方向和垂直方向的灰阶梯度获取当前帧图像的顶层图像层对应的积分图;根据积分图获取当前帧图像的顶层图像层中各像素点的Harris得分并根据Harris得分的大小提取当前巾贞图像的角点,其中,角点为Harris得分大于预定阈值的像素点。
[0008]其中,根据当前无人飞行器的角速度预估当前帧图像中各角点在前一帧图像中的预定区域的步骤包括:对前一帧图像进行金字塔分层;在当前帧图像和前一帧图像的时间间隔内积分采集到的角速度,以获取无人飞行器在时间间隔内的转动角度;根据转动角度计算当前帧图像中各角点在前一帧图像的顶层图像层上相对应的像素移动距离;根据像素移动距离估计当前帧图像中各角点在前一帧图像的顶层图像层中的预定区域。
[0009]其中,根据当前帧图像的角点位置从前一帧图像中的预定区域内搜索对应的角点的步骤包括:从前一帧图像中提取角点;在前一帧图像中判断与当前帧图像中各角点对应的预定区域内是否存在角点;在前一帧的预定区域搜索与当前帧角点对应的角点。
[0010]其中,根据当前帧图像的角点和前一帧图像的角点获取角点速度的步骤包括:根据当前帧图像中的各角点和前一帧图像的各角点依据金字塔光流法获取各角点在顶层图像层中的速度;根据各角点在顶层图像层的速度依据金字塔光流法依次获取各角点在分层后其它各图像层中的速度,其中,角点在分层后位于金字塔塔底的图像层中的速度即为角点速度。
[0011]其中,根据角点速度获取像素速度的步骤包括:获取各角点的角点速度的均值作为第一均值;判断各角点的角点速度与第一均值的相关性;获取与第一均值正相关的各角点的角点速度的均值作为第二均值,其中,第二均值即为像素速度。
[0012]其中,根据角点速度获取像素速度的步骤包括:获取各角点的角点速度的直方图并对直方图进行低通滤波,其中,滤波后直方图得到的众数即为像素速度。
[0013]其中,根据像素速度和无人飞行器的飞行高度获取无人飞行器的实际速度的步骤包括:根据角速度获取由于转动导致的转动像素速度;通过角点速度获取的像素速度减去转动导致的转动像素速度获取无人飞行器由于平动引起的平动像素速度;根据平动像素速度和无人飞行器的飞行高度获取无人飞行器的实际速度。
[0014]其中,在从当前帧图像中提取角点的步骤、根据当前帧图像的角点位置从前一帧图像中的预定区域内搜索对应的角点的步骤以及根据当前帧图像的角点和前一帧图像对应的角点获取角点速度的步骤中:利用处理器的单指令多数据指令集对多个像素点进行同步计算。
[0015]为解决上述技术问题,本发明采用的另一个技术方案是:提供一种无人飞行器的飞行参数的测量装置,该装置包括:图像传感器,用于获取图像;陀螺仪,用于采集无人飞行器的角速度;高度测量器,用于获取无人飞行器的飞行高度;处理器,与所述图像传感器、所述陀螺仪和所述高度测量器均电性连接,用于从图像传感器获取的当前帧图像中提取角点,根据陀螺仪采集的当前无人飞行器的角速度预估当前帧图像中各角点在前一帧图像中的预定区域,根据当前帧图像的角点位置从前一帧图像中的预定区域内搜索对应的角点,根据当前帧图像的角点和前一帧图像对应的角点获取角点速度,根据角点速度获取像素速度,根据像素速度和高度测量器获取的无人飞行器的飞行高度获取无人飞行器的实际速度。
[0016]其中,处理器对当前帧图像进行金字塔分层,求取金字塔分层后位于金字塔塔顶的当前帧图像的顶层图像层中各像素点沿水平方向和垂直方向的灰阶梯度,根据沿水平方向和垂直方向的灰阶梯度获取当前帧图像的顶层图像层对应的积分图,根据积分图获取当前帧图像的顶层图像层中各像素点的Harris得分并根据Harris得分的大小提取当前帧图像的角点,其中,角点为Harris得分大于预定阈值的像素点。
[0017]其中,处理器对前一帧图像进行金字塔分层,在当前帧图像和前一帧图像的时间间隔内积分采集到的角速度,以获取无人飞行器在时间间隔内的转动角度,根据转动角度计算当前帧图像中各角点在前一帧图像的顶层图像层上相对应的像素移动距离,根据像素移动距离估计当前帧图像中各角点在前一帧图像的顶层图像层中的预定区域。
[0018]其中,处理器从前一帧图像中提取角点;再在前一帧图像中判断与当前帧图像中各角点对应的预定区域内是否存在角点,在前一帧的预定区域搜索与当前帧角点对应的角点。
[0019]其中,处理器根据当前帧图像中的各角点和前一帧图像的各角点依据金字塔光流法获取各角点在顶层图像层中的速度,根据各角点在顶层图像层的速度依据金字塔光流法依次获取各角点在分层后其它各图像层中的速度,其中,角点在分层后位于金字塔塔底的图像层中的速度即为角点速度。
[0020]其中,处理器获取各角点的角点速度的均值作为第一均值;判断各角点的角点速度与第一均值的相关性;获取与第一均值正相关的各角点的角点速度的均值作为第二均值,其中,第二均值即为像素速度。
[0021 ] 其中,处理器获取各角点的角点速度的直方图并对直方图进行低通滤波,其中,滤波后直方图得到的众数即为像素速度。
[0022]其中,处理器根据角速度获取由于转动导致的转动像素速度,通过角点速度获取的像素速度减去转动导致的转动像素速度获取无人飞行器由于平动引起的平动像素速度,根据平动像素速度和无人飞行器的飞行高度获取无人飞行器的实际速度。
[0023]其中,处理器利用单指令多数据指令集对多个像素点进行同步计算以执行从当前帧图像中提取角点、根据当前帧图像的角点位置从前一帧图像中的预定区域内搜索对应的角点以及根据当前帧图像的角点和前一帧图像的角点获取角点速度的操作。
[0024]本发明的有益效果是:区别于现有技术的情况,本发明通过从当前帧图像中提取角点,接着根据角速度和当前帧图像中的角点估计前一帧图像中的角点,随后对当前帧图像的角点和前一帧图像的角点进行适当的处理来计算像素速度,最后根据像素速度和无人飞行器的飞行高度获取无人飞行器的实际速度。与现有技术相比,本发明根据角点计算飞行器的飞行参数,以及将角速度后补偿改为预补偿,提高了飞行参数测量的准确度和测量精度。
【专利附图】

【附图说明】
[0025]图1是本发明实施例的无人飞行器的飞行参数的测量装置的结构示意图;
[0026]图2是本发明第一实施例的无人飞行器的飞行参数的测量方法的流程图;
[0027]图3是本发明第二实施例的无人飞行器的飞行参数的测量方法的流程图。
【具体实施方式】
[0028]在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的基准。下面结合附图和实施例对本发明进行详细说明。
[0029]图1是本发明实施例的无人飞行器的飞行参数的测量装置的结构示意图。如图1所示,该装置包括:一图像传感器10、一陀螺仪20、一高度测量器30和一处理器40。[0030]图像传感器10用于根据第一预定频率获取图像。在本实施例中,图像传感器优选为MT9V034,其支持的最大分辨率为752X480,第一预定频率优选为50Hz (赫兹)。
[0031]陀螺仪20用于根据第二预定频率采集无人飞行器的角速度。在本实施例中,第二预定频率为高频频率,优选为IKHz (千赫兹)。
[0032]所述高度测量器30用于获取无人飞行器的飞行高度。具体来说,在本实施例中,所述高度测量器30为超声波传感器,所述超声波传感器的一个探头朝向地面发出频率大约为300-500KHZ (千赫兹)的超声波,当超声波接触到可以反射超声波的地面后发生反射,反射波被同一探头或者超声波传感器的另一个探头接收后,超声波传感器测量发射超声波与接收到反射波之间的时间差,然后根据空气中超声波的传播速度(一般为340米/秒)计算得到超声波传感器与地面之间的距离。可以理解的是,所述高度测量器30也可以为其他测量装置,如红外传感器、激光传感器或微波器等,并不限于本实施例。
[0033]在本实施例中,所述处理器40为嵌入式处理器,所述处理器40与图像传感器10、陀螺仪20和高度测量器30均电性连接。具体来说,所述处理器40为Cortex M4处理器,其通过DCMI接口或LVDS接口与图像传感器10连接、通过I2C接口与陀螺仪20连接、通过UART接口与高度测量器30连接。可以理解的是,所述处理器40也可为其他型号的嵌入式处理器,或者为其他处理器,并不限于本实施例。
[0034]所述处理器40用于从图像传感器10获取的当前帧图像中提取角点,根据陀螺仪20采集的当前无人飞行器的角速度预估当前帧图像中各角点在前一帧图像中的预定区域,根据当前帧图像的角点位置从前一帧图像中的预定区域内搜索对应的角点,根据当前帧图像的角点和前一帧图像对应的角点获取角点速度,根据角点速度获取像素速度,并根据像素速度和高度测量装置30获取的无人飞行器的飞行高度获取无人飞行器的实际速度。应该注意的是,当所述陀螺仪20检测到无人飞行器转动时,所述处理器40根据所述陀螺仪20返回的角速度计算出由于转动导致的转动像素速度,根据角点速度获取的像素速度减去转动导致的转动像素速度后即可得到无人飞行器由于平动引起的平动像素速度;最后根据高度测量器30获取的飞行高度和平动引起的平动像素速度即可计算得到无人飞行器的实际速度。
[0035]优选地,处理器40为支持单指令多数据指令集(Single Instruction MultipleData, SIMD)的处理器。一般来说,SMD指令集为Thumb指令集的子集。在本实施例中,所述处理器40利用SMD指令集对多个像素点进行同步计算,以执行从当前帧图像中提取角点、根据当前帧图像的角点位置从前一帧图像中的预定区域内搜索对应的角点以及根据所述当前帧图像的角点和前一帧图像对应的角点获取角点速度的操作。采用SIMD指令集可以大大提高上述操作执行的效率,从而大大减少上述操作执行的时间,从而提高飞行参数测量的精度。
[0036]在本实施例中,所述处理器40从图像传感器10获取的当前帧图像中提取角点的操作具体为:首先,所述处理器40对从图像传感器10获取的当前帧图像进行金字塔分层。接着,所述处理器40求取金字塔分层后位于金字塔塔顶的当前帧图像的顶层图像层中各像素点沿水平方向和沿垂直方向的灰阶梯度。其中,在计算灰阶梯度的过程中,为了提升计算速度,可以利用SMD指令集对多个像素点进行同步计算,例如,利用数组特性将地址连续的4个字节拼接为一个32位整数以使用SIMD指令集进行计算,计算速度可以提升四倍。随后,所述处理器40根据沿水平方向和沿垂直方向的灰阶梯度获取当前帧图像的顶层图像层对应的积分图。其中,在计算积分图的过程中,可以利用Thumb指令集提高积分图计算的速度,例如,可以利用Thumb指令集中的指令_SMLABB、_SMLABT、_SMLATB、_SMLATB在一个时钟周期内完成16位整数的乘加计算,从而提高积分图计算的速度。最后,处理器40根据积分图获取当前帧图像的顶层图像层中各像素点的Harris得分并根据Harris得分的大小提取当前帧图像的角点,其中,角点为Harris得分大于预定阈值的像素点。
[0037]在本实施例中,所述处理器40还根据陀螺仪20采集的当前无人飞行器的角速度预估当前帧图像中各角点在前一帧图像中的预定区域的操作具体为:首先,所述处理器40对前一帧图像进行金字塔分层。接着,所述处理器40在当前帧图像和前一帧图像的时间间隔内积分陀螺仪20采集的角速度,获取无人飞行器在该时间间隔内的转动角度。随后,所述处理器40根据转动角度计算当前帧图像中的各角点在前一帧图像层的顶层图像层上相对应的像素移动距离。最后,处理器40根据像素移动距离估计当前帧图像中各角点在前一帧图像的顶层图像层中的预定区域。
[0038]在本实施例中,处理器40根据当前帧图像的角点位置从前一帧图像中的预定区域内搜索对应的角点的操作具体为:首先,处理器40从前一帧图像中提取角点;接着,处理器40在前一帧图像中判断与当前帧图像中各角点对应的预定区域内是否存在角点;再通过金字塔光流算法在前一帧的预定区域搜索与当前帧角点对应的角点。
[0039]在本实施例中,处理器40根据当前帧图像的角点和前一帧图像相对应的角点获取角点速度的操作具体为:首先,处理器40根据当前帧图像中的各角点和前一帧图像的相对应的角点依据金字塔光流法获取各角点在顶层图像层中的速度。接着,所述处理器40根据各角点在顶层图像层的速度依据金字塔光流法依次获取各角点在分层后其它各图像层中的速度,其中,角点在分层后位于金字塔塔底的图像层中的速度即为角点速度。
[0040]在本实施例中,处理器40根据角点速度获取像素速度的操作具体为:首先,处理器40获取各角点的角点速度的均值作为第一均值。接着,处理器40判断各角点的角点速度与第一均值的相关性。随后,处理器40获取与第一均值正相关的各角点的角点速度的均值作为第二均值,其中,第二均值即为像素速度。
[0041]在其它实施例中,处理器40根据角点速度获取像素速度的操作也可以具体为:处理器40获取各角点的角点速度的直方图并对直方图进行低通滤波,其中,滤波后直方图得到的众数即为像素速度。
[0042]图2是本发明第一实施例的无人飞行器的飞行参数的测量方法的流程图,图2所示的方法可由图1所示的飞行参数的测量装置执行。需注意的是,若有实质上相同的结果,本发明的方法并不以图2所示的流程顺序为限。如图2所示,该方法包括如下步骤:
[0043]步骤SlOl:获取图像以及采集无人飞行器的角速度。
[0044]在步骤SlOl中,由图像传感器10根据第一预定频率获取图像,由陀螺仪20根据第二预定频率采集无人飞行器的角速度。
[0045]步骤S102:从当前帧图像中提取角点。
[0046]在步骤S102中,可以由处理器40利用Kitchen-Rosenfeld角点检测算法,Harris角点检测算法、KLT角点检测算法或者SUSAN角点检测算法从当前帧图像中提取角点,其中,角点可以理解为与相邻像素点相比灰度发生明显变化的像素点。[0047]步骤S103:根据当前无人飞行器的角速度预估当前帧图像中各角点在前一帧图像中的预定区域。
[0048]在步骤S103中,由处理器40通过对当前帧图像和前一帧图像的时间间隔内采集到的角速度进行积分计算来获取无人飞行器在该时间间隔内的转动的角度,接着根据转动的角度来获取无人飞行器在当前帧图像和前一帧图像的时间间隔内各角点由于无人飞行器的转动所导致的像素移动距离,继而根据像素移动距离即可估计出当前帧图像中各角点在前一帧图像中的预定区域。
[0049]步骤S104:根据当前帧图像的角点位置从前一帧图像中的预定区域内搜索对应的角点。
[0050]在步骤S104中,预定区域可以为方形区域,也可以为其它形式的区域,在此不作限制。预定区域的大小也可按照实际情况进行设置,例如,当需要提高角点提取准确度时可以选择较小的预定区域。
[0051]在步骤S104中,首先,由处理器40利用Kitchen-Rosenfeld角点检测算法、Harris角点检测算法、KLT角点检测算法或SUSAN角点检测算法提取前一帧图像中的角点。接着,由处理器40在前一帧图像中判断与当前帧图像中各角点对应的预定区域内是否存在角点;再通过金字塔光流算法搜索在前一帧的预定区域内是否存在与当前帧角点对应的角点。
[0052]步骤S105:根据当前帧图像的角点和前一帧图像对应的角点获取角点速度。
[0053]在步骤S105中,可以由处理器40采用金字塔光流法或块匹配光流法根据当前帧图像的角点和前一帧图像对应的角点获取角点速度。其中,块匹配光流法中块匹配的方式还可以为绝对差值和(sum of absolute distance, SAD)和差的平方和(sum of squareddistance, SSD)。
[0054]步骤S106:根据角点速度获取像素速度。
[0055]在步骤S106中,可以由处理器40采用如下两种方法根据角点速度获取像素速度:
[0056]第一种方法:首先,获取各角点的角点速度的均值作为第一均值。接着,判断各角点的角点速度与第一均值的相关性。其中,若角点的角点速度与第一均值为正相关,则判断其接近正确的像素速度,否则判断其偏离正确的像素速度。最后,获取与第一均值正相关的各角点的角点速度的均值作为第二均值,其中,第二均值即为正确的像素速度。
[0057]第二种方法:首先,获取各角点的角点速度的直方图,其中,直方图包括沿水平方向和沿垂直方向的一维直方图。接着,对直方图进行低通滤波,其中,滤波后的直方图得到的众数即为像素速度,众数可以理解为直方图中数据集中出现频率最多的角点速度。
[0058]步骤S107:根据像素速度和无人飞行器的飞行高度获取无人飞行器的实际速度。
[0059]在步骤S107中,由处理器40根据角速度获取由于转动导致的转动像素速度,通过角点速度获取的像素速度减去转动导致的转动像素速度获取无人飞行器由于平动引起的平动像素速度,根据平动像素速度和无人飞行器的飞行高度获取无人飞行器的实际速度。
[0060]其中,根据平动像素速度和无人飞行器的飞行高度获取无人飞行器的实际速度的步骤具体为:由高度测量器30获取无人飞行器的飞行高度,并对获取的飞行高度进行中值滤波与低通滤波后,进一步根据滤波后的飞行高度、图像传感器10中镜头的焦距、图像传感器10的内部参数以及算法执行的频率将平动像素速度转化为无人飞行器的实际速度。
[0061]其中,当无人飞行器的实际速度被计算出来后,还可以通过四条标准判断计算出来的实际速度是否合理。其中,四条标准具体为:当前帧图像和前一帧图像之间的时间间隔内高度测量器30获取的飞行高度是否发生跳变,当前帧图像和前一帧图像之间的时间间隔内根据陀螺仪20采集的角速度积分得到的无人飞行器转动的角度是否在预定范围内,从当前帧图像或前一帧图像中提取的角点总数是否达到预定数量,接近正确的像素速度的角点的百分比是否达到预定要求。其中,在计算无人飞行器的实际速度的过程中,当四条标准同时得到满足时,则可以判断计算得到的实际速度为合理的速度。
[0062]另外,在步骤S102、步骤S104以及步骤S105中,可以利用处理器的单指令多数据指令集对多个像素点进行同步计算,以提高上述各步骤的计算效率,减少计算的时间。
[0063]通过上述实施方式,本发明第一实施例的无人飞行器的飞行参数的测量方法通过从当前帧图像中提取角点,接着根据角速度和当前帧图像中的角点估计前一帧图像对应的角点,随后对当前帧图像的角点和前一帧图像对应的角点进行适当的处理来确定像素速度,最后根据像素速度和无人飞行器的飞行高度获取无人飞行器的实际速度。与现有技术相比,本发明根据角点计算飞行器的飞行参数,以及将角速度后补偿改为预补偿,提高了飞行参数测量的准确度和测量精度。
[0064]图3是本发明第二实施例的无人飞行器的飞行参数的测量方法的流程图,图3所示的方法可由图1所示的飞行参数的测量装置执行。需注意的是,若有实质上相同的结果,本发明的方法并不以图3所示的流程顺序为限。如图3所示,该方法包括如下步骤:
[0065]步骤S201:获取图像以及采集无人飞行器的角速度。
[0066]在步骤S201中,由图像传感器10根据第一预定频率获取图像,进一步通过DCMI接口或LVDS接口将获取到的图像发送给处理器40。其中,图像传感器10优选为MT9V034,其支持的最大分辨率为752 X 480,第一预定频率优选为50Hz (赫兹)。
[0067]具体来说,以设置图像的分辨率为480X480为例来说,由图像传感器10根据第一预定频率获取分辨率为480 X 480的图像后,为了满足处理器40的内存的限制,对分辨率为480X480的图像进行硬件下采样以获取分辨率为120X120的图像,进一步通过DCMI接口或LVDS接口将分辨率为120X120的图像发送给处理器40。当然,以上数值仅为举例说明,本发明并不限于上述数值;下文中所列数值也同理。
[0068]由陀螺仪20根据第二预定频率采集无人飞行器的角速度,进一步通过I2C接口将采集到的角速度发送给处理器40。其中,第二预定频率为高频频率,优选为1ΚΗζ(千赫兹)。
[0069]处理器40优选为支持单指令多数据指令集的处理器,例如,Cortex M4处理器。具体来说,Cortex M4处理器支持Thumb指令集,其中,SIMD指令集为Thumb指令集的子集。另外,Cortex M4处理器带有硬件浮点计算单元(Float Point Unit,FPU),可大大提高浮点计算的处理速度。
[0070]步骤S202:对当前帧图像进行金字塔分层。
[0071]在步骤S202中,由处理器40通过高斯下采样或中值下采样对当前帧图像进行金字塔分层,其中,分层的层数可以根据实际情况进行选择。
[0072]承接前述举例,当处理器40获取到分辨率为120X 120的当前帧图像后,通过高斯下采样或中值下采样将当前帧图像分成三层图像层。其分别为:位于金字塔塔顶的图像层,记为顶层图像层,其分辨率为30X30 ;位于金字塔中间的图像层,其分辨率为60X60 ;以及位于金字塔底层的图像层,其分辨率为120X120。
[0073]步骤S203:求取金字塔分层后位于金字塔塔顶的当前帧图像的顶层图像层中各像素点沿水平方向和垂直方向的灰阶梯度。
[0074]在步骤S203中,承接前述举例,由处理器40在当前帧图像的分辨率为30X30的顶层图像层中计算各像素点沿水平方向的灰阶梯度Ix和沿垂直方向的灰阶梯度Iy。
[0075]灰阶梯度可以理解为用二维离散函数描述图像时,对二维离散函数求导得到的值。其中,灰阶梯度的方向位于图像灰度的最大变化率上,其可以反映图像边缘上的灰度变化。
[0076]灰阶梯度可以为相邻像素点的像素值的差值,gp:Ix=P(i+l, j)-P(i,j), Iy=P (i,j+l)-P(i,j)。灰阶梯度也可以为中值差分,即 Ix=[P(i+l,j)-P(i_l,j)]/2,Iy= [P(i,j+l)_P(i,j_l)]/2。其中,P为像素点的像素值,(i,j)为像素点的坐标。灰阶梯度也可以为采用其它计算公式,在此不做限制。
[0077]其中,在计算灰阶梯度、和Iy的过程中,为了提升计算速度,可以利用SIMD指令集对多个像素点进行同步计算,例如,利用数组特性将地址连续的4个字节拼接为一个32位整数以使用SIMD指令集进行计算,计算速度可以提升四倍。
[0078]步骤S204:根据沿水平方向和垂直方向的灰阶梯度获取当前帧图像的顶层图像层对应的积分图。
[0079]在步骤S204中,承接前述举例,由处理器40根据各像素点的灰阶梯度Ix和Iy获取当前帧图像的分辨率为30X30的顶层图像层对应的积分图,进一步根据积分图计算顶层图像层中各像素点的Ix2,I/和IxIy的值。
[0080]其中,在计算积分图的过程中,可以利用Thumb指令集提高积分图计算的速度,例如,可以利用Thumb指令集中的指令_SMLABB、_SMLABT、_SMLATB、_SMLATB,在一个时钟周期内完成16位整数的乘加计算,从而提高积分图的计算速度。
[0081]步骤S205:根据积分图获取当前帧图像的顶层图像层中各像素点的Harris得分并根据Harris得分的大小提取当前帧图像的角点。
[0082]在步骤S205中,承接前述举例,当前帧图像的分辨率为30X30的顶层图像层中各像素点的Harris得分根据如下公式进行计算:
[0083]H=det (M) - λ X tr (M)2 ;
【权利要求】
1.一种无人飞行器的飞行参数的测量方法,其特征在于,所述方法包括: 获取图像以及采集所述无人飞行器的角速度; 从当前帧图像中提取角点; 根据当前无人飞行器的所述角速度预估当前帧图像中各角点在前一帧图像中的预定区域; 根据当前帧图像的角点位置从所述前一帧图像中的预定区域内搜索对应的角点; 根据所述当前帧图像的角点和所述前一帧图像对应的角点获取角点速度; 根据所述角点速度获取像素速度; 根据所述像素速度和所述无人飞行器的飞行高度获取所述无人飞行器的实际速度。
2.根据权利要求1所述的方法,其特征在于,所述从当前帧图像中提取角点的步骤包括: 对当前帧 图像进行金字塔分层; 求取金字塔分层后位于金字塔塔顶的所述当前帧图像的顶层图像层中各像素点沿水平方向和垂直方向的灰阶梯度; 根据沿水平方向和垂直方向的所述灰阶梯度获取所述当前帧图像的顶层图像层对应的积分图; 根据所述积分图获取所述当前帧图像的顶层图像层中各像素点的Harris得分并根据所述Harris得分的大小提取所述当前帧图像的角点,其中,所述角点为Harris得分大于预定阈值的像素点。
3.根据权利要求2所述的方法,其特征在于,所述根据当前无人飞行器的所述角速度预估当前帧图像中各角点在前一帧图像中的预定区域的步骤包括: 对所述前一帧图像进行金字塔分层; 在所述当前帧图像和所述前一帧图像的时间间隔内积分采集到的所述角速度,以获取所述无人飞行器在所述时间间隔内的转动角度; 根据所述转动角度计算所述当前帧图像中各角点在所述前一帧图像的顶层图像层上相对应的像素移动距离; 根据所述像素移动距离估计所述当前帧图像中各角点在所述前一帧图像的顶层图像层中的预定区域。
4.根据权利要求3所述的方法,其特征在于,所述根据当前帧图像的角点位置从所述前一帧图像中的预定区域内搜索对应的角点的步骤包括: 从所述前一帧图像中提取角点; 在前一帧图像中判断与当前帧图像中各角点对应的预定区域内是否存在角点; 在前一帧的预定区域搜索与当前帧角点对应的角点。
5.根据权利要求4所述的方法,其特征在于,所述根据所述当前帧图像的角点和所述前一帧图像对应的角点获取角点速度的步骤包括: 根据所述当前帧图像中的各角点和所述前一帧图像的各角点依据金字塔光流法获取各角点在顶层图像层中的速度; 根据各角点在所述顶层图像层的速度依据所述金字塔光流法依次获取各角点在分层后其它各图像层中的速度,其中,所述角点在分层后位于金字塔塔底的图像层中的速度即为角点速度。
6.根据权利要求4所述的方法,其特征在于,所述根据所述角点速度获取像素速度的步骤包括: 获取各角点的所述角点速度的均值作为第一均值; 判断各角点的所述角点速度与所述第一均值的相关性; 获取与所述第一均值正相关的各角点的所述角点速度的均值作为第二均值,其中,所述第二均值即为像素速度。
7.根据权利要求4所述的方法,其特征在于,所述根据所述角点速度获取像素速度的步骤包括: 获取各角点的所述角点速度的直方图并对所述直方图进行低通滤波,其中,滤波后所述直方图得到的众数即为像素速度。
8.根据权利要求1所述的方法,其特征在于,所述根据所述像素速度和所述无人飞行器的飞行高度获 取所述无人飞行器的实际速度的步骤包括: 根据所述角速度获取由于转动导致的转动像素速度; 通过所述角点速度获取的所述像素速度减去转动导致的所述转动像素速度获取所述无人飞行器由于平动引起的平动像素速度; 根据所述平动像素速度和所述无人飞行器的飞行高度获取所述无人飞行器的实际速度。
9.根据权利要求1所述的方法,其特征在于,在所述从当前帧图像中提取角点的步骤、所述根据当前帧图像的角点位置从所述前一帧图像中的预定区域内搜索对应的角点的步骤以及所述根据所述当前帧图像的角点和所述前一帧图像对应的角点获取角点速度的步骤中:利用处理器的单指令多数据指令集对多个像素点进行同步计算。
10.一种无人飞行器的飞行参数的测量装置,其特征在于,所述装置包括: 图像传感器,用于获取图像; 陀螺仪,用于采集所述无人飞行器的角速度; 高度测量器,用于获取所述无人飞行器的飞行高度; 处理器,与所述图像传感器、所述陀螺仪和所述高度测量器均电性连接,所述处理器用于从所述图像传感器获取的当前帧图像中提取角点,根据所述陀螺仪采集的当前无人飞行器的所述角速度预估当前帧图像中各角点在前一帧图像中的预定区域,根据当前帧图像的角点位置从前一帧图像中的预定区域内搜索对应的角点,根据所述当前帧图像的角点和所述前一帧图像对应的角点获取角点速度,根据所述角点速度获取像素速度,根据所述像素速度和所述高度测量器获取的所述无人飞行器的飞行高度获取所述无人飞行器的实际速度。
11.根据权利要求10所述的装置,其特征在于,所述处理器对当前帧图像进行金字塔分层,求取金字塔分层后位于金字塔塔顶的所述当前帧图像的顶层图像层中各像素点沿水平方向和垂直方向的灰阶梯度,根据沿水平方向和垂直方向的所述灰阶梯度获取所述当前帧图像的顶层图像层对应的积分图,根据所述积分图获取所述当前帧图像的顶层图像层中各像素点的Harris得分并根据所述Harris得分的大小提取所述当前帧图像的角点,其中,所述角点为Harris得分大于预定阈值的像素点。
12.根据权利要求11所述的装置,其特征在于,所述处理器对所述前一帧图像进行金字塔分层,在所述当前帧图像和所述前一帧图像的时间间隔内积分采集到的所述角速度,以获取所述无人飞行器在所述时间间隔内的转动角度,根据所述转动角度计算所述当前帧图像中各角点在所述前一帧图像的顶层图像层上相对应的像素移动距离,根据所述像素移动距离估计所述当前帧图像中各角点在所述前一帧图像的顶层图像层中的预定区域。
13.根据权利要求12所述的装置,其特征在于,所述处理器从所述前一帧图像中提取角点;再在前一帧图像中判断与当前帧图像中各角点对应的预定区域内是否存在角点,在前一帧的预定区域搜索与当前帧角点对应的角点。
14.根据权利要求13所述的装置,其特征在于,所述处理器根据所述当前帧图像中的各角点和所述前一帧图像的各角点依据金字塔光流法获取各角点在顶层图像层中的速度,根据各角点在所述顶层图像层的速度依据所述金字塔光流法依次获取各角点在分层后其它各图像层中的速度,其中,所述角点在分层后位于金字塔塔底的图像层中的速度即为角点速度。
15.根据权利要求13所述的装置,其特征在于,所述处理器获取各角点的所述角点速度或的均值作为第一均值;判断各角点的所述角点速度与所述第一均值的相关性;获取与所述第一均值正相 关的各角点的所述角点速度的均值作为第二均值,其中,所述第二均值即为像素速度。
16.根据权利要求13所述的装置,其特征在于,所述处理器获取各角点的所述角点速度的直方图并对所述直方图进行低通滤波,其中,滤波后所述直方图得到的众数即为像素速度。
17.根据权利要求13所述的装置,其特征在于,所述处理器根据所述角速度获取由于转动导致的转动像素速度,通过所述角点速度获取的所述像素速度减去转动导致的所述转动像素速度获取所述无人飞行器由于平动引起的平动像素速度,根据所述平动像素速度和所述无人飞行器的飞行高度获取所述无人飞行器的实际速度。
18.根据权利要求10所述的装置,其特征在于,所述处理器利用单指令多数据指令集对多个像素点进行同步计算以执行从当前帧图像中提取角点、根据当前帧图像的角点位置从前一帧图像中的预定区域内搜索对应的角点以及根据所述当前帧图像的角点和所述前一帧图像对应的角点获取角点速度的操作。
【文档编号】G01C23/00GK103913588SQ201410142817
【公开日】2014年7月9日 申请日期:2014年4月10日 优先权日:2014年4月10日
【发明者】周万程, 孙科, 于云, 黄黎明 申请人:深圳市大疆创新科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1