本发明涉及图像处理领域,具体而言,涉及一种基于无人机影像的飞行状态检测方法及装置。
背景技术:
无人机航摄系统具有灵活、成本低、效率高的特点,已被广泛应用在测绘、农业、应急等各个领域。无人机得益于其轻巧便携特点的同时,也存在着抗风性能、姿态稳定性差等缺点,其直接导致影像航向、旁向重叠度不规则及旋角不稳定,也直接影响着航测内业成图质量,因此在无人机航摄阶段,需要对影像进行严格的飞行质量检查与评估,以保证其满足成果数据处理需求。
现阶段对于飞行质量的检查主要有两种方式,一是人工目视,此种检查模式完全手工操作,耗时耗力,不适用于大数据量的无人机飞行质量检查;二是基于原始影像,将原始影像航带划分后进行同名点匹配,根据匹配结果计算反映无人机飞行质量的影像参数。
但是,现有的对航带的划分通常仅仅基于图像获取时间的先后顺序,航带划分不准确,导致最后获取到的反映无人机飞行质量的影像参数不准确。
技术实现要素:
有鉴于此,本发明实施例提供了一种基于无人机影像的飞行状态检测方法及装置,通过每幅图像对应的无人机位置信息进行航带划分,使航带划分更准确,从而根据同一航带内相邻图像以及不同航带间相邻图像之间的同名点获得的反映无人机飞行状态的影像参数更准确。
为了实现上述目的,本发明采用的技术方案如下:
一种基于无人机影像的飞行状态检测方法,所述方法包括:根据无人机获得的多幅图像中每幅图像对应的无人机位置信息,获取无人机飞行的多个航带中每个航带包括的多幅图像;获取每相邻的两幅图像间相互匹配的同名点,所述每相邻的两幅图像包括每个航带内每相邻的两幅图像以及不同航带间每相邻的两幅图像;根据获得的相互匹配的同名点,获取反映所述无人机飞行状态的多个影像参数。
一种基于无人机影像的飞行状态检测装置,所述装置包括:航带划分模块,用于根据无人机获得的多幅图像中每幅图像对应的无人机位置信息,获取无人机飞行的多个航带中每个航带包括的多幅图像;同名点获取模块,用于获取每相邻的两幅图像间相互匹配的同名点,所述每相邻的两幅图像包括每个航带内每相邻的两幅图像以及不同航带间每相邻的两幅图像;参数获取模块,用于根据获得的相互匹配的同名点,获取反映所述无人机飞行状态的多个影像参数。
本发明实施例提供的基于无人机影像的飞行状态检测方法及装置,根据无人机获得的多幅图像中每幅图像对应的无人机位置信息对多幅图像进行航带划分,使航带划分结果更加准确。再对每个航带内的图像以及航带间的图像进行同名点匹配,根据匹配的同名点计算反映无人机飞行状态的影像参数,计算结果更加准确。
为使本发明的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1示出了本发明较佳实施例提供的计算机的方框示意图;
图2示出了本发明第一实施例提供的基于无人机影像的飞行状态检测方法的流程图;
图3示出了图2中步骤S110的流程图;
图4示出了图2中步骤S120的一种具体实施方式的流程图;
图5示出了图2中步骤S120的另一种具体实施方式的流程图;
图6示出了本发明第二实施例提供的基于无人机影像的飞行状态检测装置的功能模块图。
具体实施方式
下面将结合本发明实施例中附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本发明的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
如图1所示,是本发明较佳实施例提供的计算机100的方框示意图。所述计算机100包括基于无人机影像的飞行状态检测装置200、存储器101、存储控制器102、处理器103、外设接口104、输入输出单元105、显示单元106及其他。
所述存储器101、存储控制器102、处理器103、外设接口104、输入输出单元105、显示单元106各元件相互之间直接或间接地电性连接,以实现坐标数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。所述基于无人机影像的飞行状态检测装置200包括至少一个可以软件或固件(firmware)的形式存储于所述存储器101中的软件功能模块。所述处理器103用于执行存储器101中存储的可执行模块,例如所述基于无人机影像的飞行状态检测装置200包括的软件功能模块或计算机程序。
其中,存储器101可以是,但不限于,随机存取存储器101(Random Access Memory,RAM),只读存储器101(Read Only Memory,ROM),可编程只读存储器101(Programmable Read-Only Memory,PROM),可擦除只读存储器101(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器101(Electric Erasable Programmable Read-Only Memory,EEPROM)等。其中,存储器101用于存储程序,所述处理器103在接收到执行指令后,执行所述程序,本发明实施例任一实施例揭示的流过程定义的服务器/计算机所执行的方法可以应用于处理器103中,或者由处理器103实现。
处理器103可能是一种集成电路芯片,具有信号的处理能力。上述的处理器103可以是通用处理器103,包括中央处理器103(Central Processing Unit,简称CPU)、网络处理器103(Network Processor,简称NP)等;还可以是数字信号处理器103(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器103可以是微处理器103或者该处理器103也可以是任何常规的处理器103等。
所述外设接口104将各种输入/输出装置耦合至处理器103以及存储器101。在一些实施例中,外设接口104,处理器103以及存储控制器102可以在单个芯片中实现。在其他一些实例中,他们可以分别由独立的芯片实现。
输入输出单元105提供给用户输入数据实现用户与计算机的交互,如用于输入多帧图像,以使对该多帧图像进行处理,并输出处理结果。所述输入输出单元可以是,但不限于,鼠标和键盘等。
显示单元106在所述计算机与用户之间提供一个交互界面(例如用户操作界面)或用于显示图像数据给用户参考。在本实施例中,所述显示单元可以是液晶显示器或触控显示器。若为触控显示器,其可为支持单点和多点触控操作的电容式触控屏或电阻式触控屏等。支持单点和多点触控操作是指触控显示器能感应到来自该触控显示器上一个或多个位置处同时产生的触控操作,并将该感应到的触控操作交由处理器进行计算和处理。
第一实施例
图2示出了本发明实施例提供的基于无人机影像的飞行状态检测方法的流程图。请参见图2,该方法包括:
步骤S110:根据无人机获得的多幅图像中每幅图像对应的无人机位置信息,获取无人机飞行的多个航带中每个航带包括的多幅图像。
对于无人机航测拍摄的多幅图像,存储有图像的拍摄顺序以及每幅图像对应的无人机位置信息。图像对应的无人机位置信息指拍摄图像时无人机所处的位置的信息,该位置信息可以是POS信息。根据多幅图像的拍摄顺序以及每幅图像对应的无人机位置信息,可以对该多幅图像进行航带划分,确定无人机飞行的多个航带以及每个航带包括的图像。
具体的,如图3所示,本步骤可以包括:
步骤S111:根据无人机获取所述多幅图像的先后顺序确定所述多幅图像的排列顺序。
无人机飞行到不同位置拍摄图像,拍摄到的多幅图像的拍摄顺序与无人机的飞行顺序一致,故以多幅图像的拍摄顺序作为其排列顺序。
具体执行时,可以是搜索存储有无人机拍摄的多幅图像的文件位置,获取所有按照飞行顺序依次编号的图像名称(N1,N2,…,Nn),n为获得的图像总数。
利用正则表达式,提取出影像名称中的数字,并将其从小到大进行排序,获得影像集{Ii|i=1,2,…,n},Ii表示排列顺序为i的第i幅图像。
当然,可以理解的,对于多幅图像的拍摄顺序的标记方法在本实施例中并不作为限定,除了以拍摄顺序编号作为图像名称外,也可以是其他,如在图像名称的后缀加编号,例如:图像_1,1表示该图像为无人机拍摄的第一幅图像。
步骤S112:在每连续三幅图像中,以第一图像对应的无人机位置为起点,第二图像对应的无人机位置为终点建立第一向量,以第二图像对应的无人机位置为起点,第三图像对应的无人机位置为终点建立第二向量,所述第一图像、第二图像以及第三图像为顺次排列的三幅图像。
获取存储的每幅图像对应的无人机位置信息。以第一图像对应的无人机位置为起点,第二图像对应的无人机位置为终点建立的第一向量可以是:i表示第i幅图像,也表示连续的三幅图像中的第一图像,i+1表示第i+1幅图像,也表示连续的三幅图像中的第二图像,表示第i+1幅图像对应的无人机位置坐标,表示第i幅图像对应的无人机位置坐标。
同样的,以第二图像对应的无人机位置为起点,第三图像对应的无人机位置为终点建立的第二向量可以是:i+2表示第i+2幅图像,也表示连续的三幅图像中的第三图像,表示第i+2幅图像对应的无人机位置坐标。
可以理解的,在本实施例中,连续的三幅图像是指拍摄顺序连续的三幅图像。在第一向量以及第二向量中,i不同,连续的三幅图像不同。
步骤S113:计算每连续三幅图像对应的第一向量与第二向量的夹角值,获得顺序排列的多个夹角值,所述多个夹角值的排列顺序与每个夹角值对应的第二图像的排列顺序相同。
在本实施例中,第一向量与第二向量的夹角值的计算公式可以是:
的取值范围为0至180度。
对于i等于不同的值,获得的第一向量与第二向量的夹角值不同,例如,i=1时,夹角值为当i=2时,夹角值为每个夹角值对应一个第i+1幅图像,对应不同的i,将夹角值进行排序,其排列顺序与i等于不同值时i+1的排列顺序相同。
当然,在本实例中,夹角值的计算方式并不作为限定,也可以通过其他方法进行计算。
步骤S114:从第一个夹角值开始通过以下公式依次对所述多个夹角值进行累加:
其中,i=1,2,…n,表示顺次排列的第i幅图像、第i+1幅图像以及第i+2幅图像分别对应的无人机位置形成的向量的夹角值,Tp为预设累加阈值,SumAngle为累加值。
累加值SumAngle的初始值设为0,从第一个夹角值开始累加,若与SumAngle相加的夹角值大于预设累加阈值Tp,则将SumAngle加上该夹角值作为新的SumAngle值。若与SumAngle相加的夹角值小于或等于预设累加阈值Tp,则将SumAngle置为0并作为新的SumAngle值。
例如,SumAngle的初始值设为0,若第一个夹角值小于或等于Tp,SumAngle仍然为0,并与第二个夹角值相加。若第一个夹角值大于Tp,SumAngle加上等于作为新的SumAngle,再以SumAngle与相加。
在本实施例中,该累加阈值可以由用户根据无人机的实际飞行情况确定,在本实施例中,可以为10度。
步骤S115:实时判断当前累加值是否大于航带划分阈值,若是,将当前累加值置零,并执行步骤S116或者步骤S117。
每累加一次,将SumAngle与航带划分阈值Ts进行一次比较,判断当前得到的SumAngle是否大于航带划分阈值Ts。若当前得到的累加值SumAngle小于或等于航带划分阈值,得到该累加值SumAngle的最后一个夹角值对应的第i+1幅图像与顺序排列的前一幅图像属于同一个航带,按照步骤S114所述的方式继续累加。
步骤S116:当获得当前累加值的最后一个夹角值对应的第二向量与第一向量满足预设条件,将当前累加值的最后一个夹角值对应的第二图像划分为一个新的航带。
若当前得到的累加值SumAngle大于航带划分阈值,再判断获得当前累加值的最后一个夹角值对应的第二向量与第一向量是否满足预设条件。该预设条件可以由无人机的实际飞行情况确定,在本实施例中,该预设条件为第二向量的模小于第一向量的模。
具体判断相应的第二向量与第一向量是否满足预设条件的方式可以是,若累加到时,SumAngle大于航带划分阈值,此时,计算该对应的第一向量的模与第二向量的模的差值:若该差值大于零,则判定获得当前累加值SumAngle的最后一个夹角值对应的第二向量与第一向量满足预设条件。
此时,将得到该SumAngle的最后一个夹角值对应的第i+1幅图像划分为一个新的航带,即第i+1幅图像以前的图像与第i+1幅图像及其以后的图像所属航带不同。
步骤S117:当获得当前累加值的最后一个夹角值对应的第二向量与第一向量不满足预设条件,将当前累加值的最后一个夹角值对应的第三图像划分为一个新的航带。
在当前累加值SumAngle大于航带划分阈值,且获得当前累加值SumAngle的最后一个夹角值对应的第二向量与第一向量不满足预设条件的情况下,则将得到该SumAngle的最后一个夹角值对应的第i+2幅图像划分为一个新的航带,即第i+2幅图像以前的图像与第i+2幅图像及其以后的图像所属航带不同。
航带划分阈值Ts的大小并不做限定,可以根据无人机的实际飞行情况确定。在本实施例中,航带划分阈值Ts选取的值为不小于90度的角度值。
对于顺序排列的多幅图像中的最后一幅图像,将其划分到最后一个航带中。当将获得的所有无人机拍摄的所有图像进行航带划分以后,得到该无人机飞行的多个航带以及每个航带所包括的图像。
步骤S120:获取每相邻的两幅图像间相互匹配的同名点,所述每相邻的两幅图像包括每个航带内每相邻的两幅图像以及不同航带间每相邻的两幅图像。
可以理解的,本步骤所指的每相邻两幅图像为对应的无人机位置相邻的两幅图像,包括航带内相邻以及航带间相邻。例如,在同一个航带内,在无人机的飞行前进方向上,拍摄时间相邻的两幅图像对应的无人机位置相邻,为相邻的两幅图像。
在不同航带间,相邻两个航带存在彼此相邻的图像。在相邻两个航带中,第一航带内的图像对应的无人机位置,在第二航带中对应无人机位置最近的图像为相邻图像。
在相邻两个航带中,确定第一航带内的每一幅图像在第二航带中的相邻图像的方法可以是,对第一航带内的每一幅图像,计算该幅图像对应的无人机位置与第二航带内的所有图像对应的无人机位置之间的距离,得到的第二航带中与之距离最近的图像为与第一航带内该幅图像相邻的图像。
例如,确定第一航带内第一图像在第二航带内的相邻图像的方式可以为,首先确定第一图像对应的第一无人机位置,计算该第一无人机位置与第二航带内所有图像对应的无人机位置之间的距离,获得多个距离值。在多个距离值中,若第二航带中的第二图像对应的第二无人机位置与第一图像对应的第一无人机位置的距离值最小,则该第二航带内的第二图像与第一航带内的第一图像相邻。
当然,在本实施例中,若无人机拍摄的图像为彩色图像,则首先将彩色图像转换为灰度图,再对换为灰度图的图像获取同名点。
以每相邻的两幅图像作为待匹配的两幅图像,获取相互匹配的同名点。并且,定义每相邻两幅图像分别为第四图像以及第五图像。可以理解的,该第四图像以及第五图像与前述的第一图像、第二图像以及第三图像并不一定不同,I1、I2以及I3为相邻的三幅图像中的第一图像、第二图像以及第三图像,若I1、I2以及I3属于同一个航带,则将I1以及I2定义为待匹配的第四图像以及第五图像。在一种具体的实施方式中,如图4所示,本步骤包括:
步骤S121A:获取第四图像与第五图像中相互匹配的多对匹配特征点。
首先,对待匹配的两幅图像进行特征点匹配,以获得多对相互匹配的匹配特征点。在本实施例中,可以通过sift算法获取第四图像与第五图像中相互匹配的多对匹配特征点。
具体的,首先,对第四图像以及第五图像构建DOG尺度空间,可以通过如下公式进行构建:
L(x,y,σ)=G(x,y,σ)*I(x,y),
D(x,y,σ)=(G(x,y,kσ)-G(x,y,σ))*I(x,y)=L(x,y,kσ)-L(x,y,σ)
G(x,y,σ)是尺度可变的高斯函数。其中,σ为尺度因子,其取值大小表示图像被平滑程度的高低,可以由用户根据实际需要确定。(x,y)表示像素在图像中的坐标。
对每幅图像,在建立的尺度空间中进行极值检测,初步确定图像中特征点所在位置及尺度,获得的特征点为离散空间极值点。
再将获得的特征点拟合三维二次函数来精确确定特征点的位置和尺度,去除低对比度的特征点和不稳定的边缘响应点。
根据获得的特征点邻域梯度的主方向可以确定特征点方向,再根据获得的特征点的位置、尺度以及主方向,建立特征点描述符。可以得到128维特征向量的描述符。再通过两幅图像中的特征点的特征点描述符进行欧式距离的计算,得到待匹配的两幅图像中相互匹配的多对匹配特征点。
当然,在本实施例中,获取第四图像以及第五图像中的匹配特征点的方式并不作为限定,也可以通过其他算法得到,如SURF算法等。
进一步的,在步骤S121A之前,还可以包括对第四图像以及第五图像进行噪声滤除以及特征增强,可以通过wallis滤波算法或者双边滤波算法实现。当然,也可以通过其他算法实现,在本实施例中并不作为限制。
步骤S122A:计算第四图像中每个匹配特征点到其他所有匹配特征点对应的多个第一距离,计算第五图像中每个匹配特征点到其他所有匹配特征点对应的多个第二距离。
步骤S121A中,获得多对匹配特征点{(Pi,Pi′)|i=1,2,…,n},其中,Pi属于第四图像,Pi’属于第五图像,n为第四图像与第五图像的匹配特征点的对数。
于是,可以理解的,第四图像中包括多个匹配特征点Pi(i=1,2…n),第五图像中包括多个匹配特征点Pi’(i=1,2…n),第四图像中的多个匹配特征点与第五图像中的多个匹配特征点分别对应匹配。
计算第四图像的多个匹配特征点中的每个匹配特征点到其他所有匹配特征点对应的多个第一距离,第一距离计算公式如下:
当i=1时,j分别为1,2,3…n,得到n个第一距离当i=2时,j分别为1,2,…n,得到n个第一距离以此类推,对应第四图像中的每个匹配特征点,得到n个第一距离
同样的,计算第五图像的多个匹配特征点中每个匹配特征点到其他所有匹配特征点对应的多个第二距离,第二距离计算公式如下:
当i=1时,j分别为1,2,3…n,得到n个第二距离当i=2时,j分别为1,2,3,4…n,得到n个第二距离以此类推,对应第五图像中的每个匹配特征点,得到n个第二距离
于是,每对匹配特征点对应的距离为n个第一距离以及n个第二距离
步骤S123A:获取每对匹配特征点对应的距离中,每个第一距离与目标第二距离之间的距离差,获得对应每对匹配特征点的多个距离差,其中,形成所述目标第二距离的两个匹配特征点与形成相应的第一距离的两个匹配特征点分别对应匹配。
对于每对特征点,可以计算获得n个距离差例如,当i=1时,对于第i对匹配特征点,计算距离差j分别为1,2,3…n,获得n个距离差dj。同样的,当i=2时,对于第i对匹配特征点,计算距离差j分别为1,2,3…n,获得n个距离差dj。对于n对匹配特征点,可以得到n个距离差dj(j=1,2,3…n)。
在每个特征点的n个距离差中,与第一距离中i以及j相等的第二距离为该第一距离的目标第二距离,例如,为的目标第二距离,为的目标第二距离,为的目标第二距离等。
步骤S124A:计算所述每对匹配特征点对应的多个距离差的平均值,获得所述每对匹配特征点对应的距离差平均值。
对于第i对匹配特征点,可以获得该第i对匹配特征点对应的多个n个距离差的平均值,计算公式可以是:
于是可以获得每对匹配特征点对应的距离差平均值AverDisi,对于{(Pi,P′i)|i=1,2,…,n}n对匹配特征点,共获得n个距离差平均值AverDisi(i=1,2,3…n)。
步骤S125A:将满足预设距离删除条件的距离差平均值对应的相互匹配的匹配特征点删除,获得的多对匹配特征点作为待匹配的两幅图像的多对匹配同名点。
在本实施例中,该预设距离删除条件可以是获得的所有距离差平均值中,预定比例Rd的最大的距离差平均值。该预定比例Rd可以由用户根据实际情况确定,优选的,在本实施例中,可以为0.15。
具体的,计算n个距离差平均值中,需要删除的匹配特征点的对数为n*Rd。再将n个距离差平均值中,最大的n*Rd个距离差平均值对应的匹配点删除。距离差平均值对应的匹配点为获得该距离差平均值AverDisi的一对匹配特征点,例如,第i对匹配特征点的平均值为n*Rd个最大的距离差平均值中的一个,则删除该第i对匹配特征点。
可以通过对n个距离差平均值按照大小顺序进行排序,删除排在较大一边的n*Rd个最大的距离差平均值。最后可以获得待匹配的两幅图像的多对匹配同名点{(Pi,Pi′)|i=1,2,…,l},Pi为第一图像中的匹配同名点,Pi’为第二图像中与Pi相互匹配的匹配同名点,可以理解的,l小于n。
本实施例还提供了另一种实施方式,如图5所示,该实施方式包括:
步骤S121B:获取第四图像与第五图像中相互匹配的多对匹配特征点。
本步骤请参照步骤S121A,在此不再赘述。
步骤S122B:以第四图像中的每个特征点作为起点,其他特征点作为终点形成对应每个特征点的多个第一向量,以第五图像中的每个特征点作为起点,其他特征点作为终点形成对应每个特征点的多个第二向量。
步骤S121B中,获得多对匹配特征点{(Pi,Pi′)|i=1,2,…,n},其中,Pi属于第四图像,Pi’属于第五图像,n为第四图像与第五图像的匹配特征点的对数。
于是,可以理解的,第四图像中包括多个匹配特征点Pi(i=1,2…n),第五图像中包括多个匹配特征点Pi’(i=1,2…n),第四图像中的多个匹配特征点与第五图像中的多个匹配特征点分别对应匹配。
获取第四图像中的每个特征点作为起点,其他特征点作为终点形成的对应相应特征点的多个第一向量:
即以i为起点,其他特征点j=1,2,3…n为终点,形成n个第一向量例如,当i=1时,j分别为1,2,3…n,得到n个第一向量当i=2时,j分别为1,2,…n,得到n个第一向量以此类推,对应第四图像中的每个匹配特征点,得到n个第一向量
同样的,获取第五图像中的每个特征点作为起点,其他特征点作为终点形成的对应相应特征点的多个第二向量
即以i为起点,其他特征点j=1,2,3…n为终点,形成第二向量例如,当i=1时,j分别为1,2,3…n,得到n个第二向量当i=2时,j分别为1,2,…n,得到n个第二向量以此类推,对应第五图像中的每个匹配特征点,得到n个第二向量
于是,每对匹配特征点对应的向量为n个第一向量以及n个第二向量
步骤S123B:获取每对匹配特征点对应的向量中,每个第一向量与所述多个第二向量中的目标第二向量之间的夹角的角度值,所述目标第二向量为终点与相应的第一向量的终点为一对匹配特征点的第二向量,获得对应每对匹配特征点的多个角度值。
对于每对匹配特征点,其对应的n个第一向量以及n个第二向量之间具有n个向量夹角,形成每个夹角的第一向量的i等于第二向量的i,第一向量的j等于第二向量的j。与第一向量的i以及j相等的第二向量为该第一向量的目标第二向量,如为的目标第二向量,为的目标第二向量,为的目标第二向量。
计算每对匹配特征点对应的n个向量夹角的角度值。例如,当i=1时,对于第i对匹配特征点,计算第一向量与目标第二向量形成的夹角的角度值,j分别为1,2,3…n,获得n个角度值。当i=2时,对于第i对匹配特征点,计算第一向量与目标第二向量形成的夹角的角度值,j分别为1,2,3…n,获得n个角度值。对于每对匹配特征点,可以得到n个角度值。
步骤S124B:计算所述每对匹配特征点对应的多个角度值的平均值,获得所述每对匹配特征点对应的角度平均值。
计算每对匹配特征点对应的n个角度值的角度平均值,计算公式可以是:其中,反余弦函数的取值范围为0至180度。
于是可以获得每对匹配特征点对应的角度平均值AverAnglei,对于{(Pi,Pi′)|i=1,2,…,n}n对匹配特征点,共获得n个角度平均值AverAnglei(i=1,2,3…n)。
步骤S125B:将满足预设夹角删除条件的角度平均值对应的至少一对匹配特征点删除,获得的多对匹配特征点作为待匹配的两幅图像的多对匹配同名点。
在本实施例中,满足预设夹角删除条件的角度平均值可以为:获得的所有角度平均值中,预定比例Ra的最大与最小的角度平均值,即满足预设夹角删除条件的最大与最小的角度平均值个数之和等于所有角度平均值中预定比例Ra的角度平均值。其中,优选为,满足删除条件的最大与最小的角度平均值个数相等。在本实施例中,角度平均值对应的预定比例Ra并不作为限定,优选的,可以为0.15。
具体的,计算n个角度平均值中,需要删除的匹配特征点的对数为n*Ra。再将n个角度平均值中,最大与最小的共n*Ra个角度平均值对应的匹配点删除。优选为,删除个最大的角度平均值对应的匹配点,删除个最小的角度平均值对应的匹配点,本实施例主要以此进行说明。
可以理解的,角度平均值对应的匹配点为获得该角度平均值AverAnglei的一对匹配特征点,例如,第i对匹配特征点的角度平均值为个最大的角度平均值中的一个,则删除该第i对匹配特征点。
可以通过对n个角度平均值按照大小顺序进行排序,删除排在较大一边的个最大的角度平均值对应的匹配特征点,删除排在较小一边的个最小的角度平均值对应的匹配特征点。最后可以获得待匹配的两幅图像的多对匹配同名点{(Pi,Pi′)|i=1,2,…,l},Pi为第四图像中的匹配同名点,Pi’为第五图像中与Pi相互匹配的匹同名点,可以理解的,l小于n。
在本步骤中,两种实施方式可以同时用于获取每相邻的两幅图像间相互匹配的同名点,即可以是在通过前一种实施方式提供的方法将满足删除调节的匹配特征点删除后,再对删除后得到的相互匹配的匹配特征点再一次通过后一种实施方式提供的方法进行删除。也可以是在通过后一种实施方式提供的方法获得匹配特征点并将满足删除条件的删除后,再对删除后得到的相互匹配的匹配特征点再一次通过前一种实施方式提供的方法进行删除。
步骤S130:根据获得的相互匹配的同名点,获取反映所述无人机飞行状态的多个影像参数。
步骤S120中获得了无人机获得的所有图像中每相邻两幅图像的相互匹配的同名点。根据相邻两幅图像相互匹配的同名点,可以获得的反映无人机飞行状态的影像参数包括:相邻两幅图像之间的旋角、同一航带内相邻两幅图像之间的航向重叠度以及不同航带间相邻两幅图像的旁向重叠度。
具体的,获取同一航带内每相邻两幅图像的航向重叠度的方式可以是:
对于每相邻两幅图像,计算多对匹配同名点对应的多个航向重叠度,相邻两幅图像的一对匹配同名点即为相邻两幅图像的一对相互匹配的同名点。具体计算方式可以是,对于每一对匹配同名点Pi(x,y)、P′i(x′y′),计算:其中,Dx为图像平行于飞行方向的宽度,在本实施例中,无人机获得的所有图像大小一致。x及x’分别表示相邻两幅图像中一对相互匹配的同名点在无人机飞行方向上的坐标值,表示相邻两幅图像中第i对匹配点的航向重叠度。
对于同一航带内相邻的两幅图像,获取多对匹配同名点对应的多个航向重叠度,获得相邻两幅图像的航向重叠度集l为相邻两幅图像的匹配同名点的对数。再计算相邻的两幅图像获得的多个航向重叠度中,第一预设个数的最小航向重叠度中,第二预设个数的较大航向重叠度的平均值,获得相应的相邻两幅图像的航向重叠度。
具体的,可以将从小到大进行排列,取最小的第一预设个数再从该第一预设个中,取第二预设个数的较大航向重叠度的平均值。例如,该第一预设个数为6,第二预设个数为3,则从航向重叠度集中取最小的6个分别记为a、b、c、d、e、f,其中a≤b≤c≤d≤e≤f,剔除前三个较小值a、b、c,取d、e、f的平均值作为相应的相邻两幅图像的航向重叠度。
同样的,对于不同航带间相邻的两幅图像,计算每相邻两幅图像内多对匹配同名点对应的多个旁向重叠度,匹配同名点的旁向重叠度的计算方式与航向重叠度类似,公式可以为:y及y’分别表示相邻两幅图像中一对相互匹配的同名点在垂直于无人机飞行方向上的坐标值,表示相邻两幅图像中第i对匹配点的旁向重叠度。
对于不同航带间相邻的两幅图像,计算获得的多个旁向重叠度中,第一预设个数的最小旁向重叠度中,第二预设个数的较大旁向重叠度的平均值,获得相应的相邻两幅图像的旁向重叠度。
可以理解的,第一预设个数以及第二预设个数在本实施例中并不作为限制,可以根据实际情况确定。另外,计算航向重叠度时的第一预设个数与计算旁向重叠度时的第一预设个数不一定一致,计算航向重叠度时的第二预设个数与计算旁向重叠度时的第二预设个数不一定一致。
另外,计算相邻两幅图像之间的旋角的方式可以是:
步骤S131:每相邻的两幅图像中,以第四图像中的每个同名点作为起点,其他同名点作为终点形成对应每个同名点的多个第一向量,以第五图像中的每个同名点作为起点,其他同名点作为终点形成对应每个同名点的多个第二向量。
与步骤S122B相比,该步骤以最后获得的同名点形成第一向量以及第二向量,其实质处理方式可以参照步骤S122B,在此不再赘述。
步骤S132:获取每对匹配同名点对应的向量中,每个第一向量与所述多个第二向量中的目标第二向量之间的夹角的角度值,所述目标第二向量为终点与相应的第一向量的终点为一对匹配特征点的第二向量,获得对应每对匹配同名点的多个角度值。
该步骤可以参照步骤S123B,在此不再赘述。
步骤S133:计算所述每对匹配同名点对应的多个角度值的平均值,获得所述每对匹配同名点对应的角度平均值。
该步骤可以参照步骤S124B,在此不再赘述。
步骤S134:计算相邻两幅图像中多对匹配同名点对应的多个角度平均值中,满足预设条件的预设个数的角度平均值的平均值,获得相应的相邻两幅图像的旋角。
步骤S133中获得多个角度平均值AverAnglei(i=1,2,3…l),则每相邻两幅图像的旋角集为{Ri|i=1,2,…,l},Ri等于AverAnglei。
对于每相邻两幅图像,将旋角集内的旋角按照大小排序,以最中间的预设个数的旋角作为满足预设条件的预设个数的旋角。求该预设个数的旋角的平均值,得到的结果作为相应的相邻两幅图像之间的旋角。
在本实施例中,该预设个数的大小并不作为限制,优选的,可以取值为3。
可以理解的,在步骤S110中,i表示图像的编号顺序,并且,步骤S110中的坐标X以及坐标Y为无人机飞行的位置坐标。在其他步骤中,i表示第i个特征点或者第i对特征点,(x,y)表示像素在图像中的坐标。
第二实施例
本实施例提供了一种基于无人机影像的飞行状态检测装置200,请参见图6,所述装置200包括:
航带划分模块210,用于根据无人机获得的多幅图像中每幅图像对应的无人机位置信息,获取无人机飞行的多个航带中每个航带包括的多幅图像;同名点获取模块220,用于获取每相邻的两幅图像间相互匹配的同名点,所述每相邻的两幅图像包括每个航带内每相邻的两幅图像以及不同航带间每相邻的两幅图像;参数获取模块230,用于根据获得的相互匹配的同名点,获取反映所述无人机飞行状态的多个影像参数。
其中,航带划分模块210包括:顺序确定单元,用于根据无人机获取所述多幅图像的先后顺序确定所述多幅图像的排列顺序;向量建立单元,用于在每连续三幅图像中,以第一图像对应的无人机位置为起点,第二图像对应的无人机位置为终点建立第一向量,以第二图像对应的无人机位置为起点,第三图像对应的无人机位置为终点建立第二向量,所述第一图像、第二图像以及第三图像为顺次排列的三幅图像;夹角计算单元,用于计算每连续三幅图像对应的第一向量与第二向量的夹角值,获得顺序排列的多个夹角值,所述多个夹角值的排列顺序与每个夹角值对应的第二图像的排列顺序相同;累加单元,用于从第一个夹角值开始通过以下公式依次对所述多个夹角值进行累加:
其中,i=1,2,…n,表示顺次排列的第i幅图像、第i+1幅图像以及第i+2幅图像分别对应的无人机位置形成的向量的夹角值,Tp为预设累加阈值,SumAngle为累加值。
航带划分单元,用于实时判断当前累加值是否大于航带划分阈值,若是,将当前累加值置零,并且,当获得当前累加值的最后一个夹角值对应的第二向量与第一向量满足预设条件,将当前累加值的最后一个夹角值对应的第二图像划分为一个新的航带;当获得当前累加值的最后一个夹角值对应的第二向量与第一向量不满足预设条件,将当前累加值的最后一个夹角值对应的第三图像划分为一个新的航带。
航带划分模块210以第二向量的模小于第一向量的模作为预设条件。
每相邻的两幅图像包括第四图像以及第五图像,在一种具体的实施方式中,同名点获取模块220包括:匹配特征点获取单元,用于获取第四图像与第五图像中相互匹配的多对匹配特征点;距离计算单元,用于计算第四图像中每个匹配特征点到其他所有匹配特征点对应的多个第一距离,计算第五图像中每个匹配特征点到其他所有匹配特征点对应的多个第二距离;距离差获取单元,用于获取每对匹配特征点对应的距离中,每个第一距离与目标第二距离之间的距离差,获得对应每对匹配特征点的多个距离差,其中,形成所述目标第二距离的两个匹配特征点与形成相应的第一距离的两个匹配特征点分别对应匹配;距离差平均值计算单元,用于计算所述每对匹配特征点对应的多个距离差的平均值,获得所述每对匹配特征点对应的距离差平均值;第一删除单元,用于将满足预设距离删除条件的距离差平均值对应的相互匹配的匹配特征点删除,获得的多对匹配特征点作为待匹配的两幅图像的多对匹配同名点。
其中,所述满足预设距离删除条件的距离差平均值为:获得的所有距离差平均值中,预定比例的最大的距离差平均值。
在另一种实施方式中,同名点获取模块220包括:匹配特征点获取单元,获取第四图像与第五图像中相互匹配的多对匹配特征点;向量确定单元:用于以第四图像中的每个特征点作为起点,其他特征点作为终点形成对应每个特征点的多个第一向量,以第五图像中的每个特征点作为起点,其他特征点作为终点形成对应每个特征点的多个第二向量;角度值获取单元:获取每对匹配特征点对应的向量中,每个第一向量与所述多个第二向量中的目标第二向量之间的夹角的角度值,所述目标第二向量为终点与相应的第一向量的终点为一对匹配特征点的第二向量,获得对应每对匹配特征点的多个角度值;角度平均值计算单元,用于计算所述每对匹配特征点对应的多个角度值的平均值,获得所述每对匹配特征点对应的角度平均值;删除单元,用于将满足预设夹角删除条件的角度平均值对应的至少一对匹配特征点删除,获得的多对匹配特征点作为待匹配的两幅图像的多对匹配同名点。
其中,所述满足预设夹角删除条件的角度平均值为:获得的所有角度平均值中,预定比例的最大与最小的角度平均值。
进一步的,参数获取模块230包括:匹配点重叠度计算单元,用于对于同一航带内的相邻两幅图像,计算每相邻两幅图像内多对匹配同名点对应的多个航向重叠度,对于不同航带间相邻的两幅图像,计算每相邻两幅图像内多对匹配同名点对应的多个旁向重叠度;图像重叠度获取单元,用于对于同一航带内的每相邻两幅图像,计算获得的多个航向重叠度中,第一预设个数的最小航向重叠度中,第二预设个数的较大航向重叠度的平均值,获得相应的相邻两幅图像的航向重叠度;对于不同航带间相邻的两幅图像,计算获得的多个旁向重叠度中,第一预设个数的最小旁向重叠度中,第二预设个数的较大旁向重叠度的平均值,获得相应的相邻两幅图像的旁向重叠度。
另外,参数获取模块230还可以包括:向量确定单元,用于在每相邻的两幅图像中,以第四图像中的每个同名点作为起点,其他同名点作为终点形成对应每个同名点的多个第一向量,以第五图像中的每个同名点作为起点,其他同名点作为终点形成对应每个同名点的多个第二向量;角度获取单元,用于获取每对匹配同名点对应的向量中,每个第一向量与所述多个第二向量中的目标第二向量之间的夹角的角度值,所述目标第二向量为终点与相应的第一向量的终点为一对匹配特征点的第二向量,获得对应每对匹配同名点的多个角度值;角度平均值计算单元,用于计算所述每对匹配同名点对应的多个角度值的平均值,获得所述每对匹配同名点对应的角度平均值;旋角确定单元,用于计算相邻两幅图像中多对匹配同名点对应的多个角度平均值中,满足预设条件的预设个数的角度平均值的平均值,获得相应的相邻两幅图像的旋角。
获得无人机拍摄的多幅图像的每两幅相邻图像间的航向重叠度或者旁向重叠度、每两幅相邻图像间的旋角,可以获知无人机的飞行质量是否满足预设要求,使无人机飞行中拍摄获得的图像满足成果数据处理需求。
综上所述,本发明实施例提供的基于无人机影像的飞行状态检测方法及装置,根据无人机拍摄的多幅图像中,每幅图像对应的无人机位置将多幅图像进行航带划分,再将划分航带后的同一航带内相邻的两幅图像以及不同航带间相邻的两幅图像进行同名点匹配,最后根据获得的同名点计算可以反映无人机飞行状态的影像参数。本实施例提供的方法及装置,根据图像对应的无人机位置进行航带划分,划分结果更加准确,使匹配的同名点更加准确,从而使最后获得的影像参数更加准确。
需要说明的是,本说明书中的各个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对于装置类实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。