无人机协同摄影方法、装置、计算机设备和存储介质与流程

文档序号:23144533发布日期:2020-12-01 13:24阅读:204来源:国知局
无人机协同摄影方法、装置、计算机设备和存储介质与流程
本申请涉及计算机
技术领域
和无人机
技术领域
,特别是涉及一种无人机协同摄影方法、装置、计算机设备和存储介质。
背景技术
:近年来,无人机技术有了广泛的应用和长足的发展,人们越来越多的使用无人机进行多种场景的拍摄,尤其对于诸如城市街景、山水风景等固定场景。但是,人们对无人机的使用需求并不仅仅局限于固定静态场景的拍摄,往往会想要使用无人机航拍一些复杂的动态场景。譬如,一场多人的球类比赛或者是举办活动的场地等,就属于涉及到运动物体的较复杂的动态场景。然而,传统的无人机自动航拍方法,主要采用固定的、提前生成的航拍路线进行整体固定场景的航拍,场景中的物体不运动或运动物体不是拍摄的重点,就无法对运动物体进行针对性拍摄。对于复杂的动态场景来说,往往无法预定拍摄路线且要求实时地针对性拍摄运动物体。因而,存在传统方法不适用于复杂的动态场景航拍的问题。技术实现要素:基于此,有必要针对上述技术问题,提供一种能够适用于复杂的动态场景航拍的无人机协同摄影方法、装置、计算机设备和存储介质。一种无人机协同摄影方法,包括:将整体动态场景实时分割为多个子场景;整体动态场景,是包括处于运动状态的多个目标运动对象的场景;每个子场景中包括至少一个目标运动对象、且每个子场景的范围在无人机的拍摄范围内;根据每个子场景的中心位置、子场景的范围、以及子场景的中心位置与整体动态场景的中心位置之间的位置关系,确定每个子场景相应的目标拍摄位置;目标拍摄位置,是用于拍摄子场景中目标运动对象的运动细节以及与子场景关联的部分整体动态场景时,无人机所处的位置;基于各无人机的当前位置以及无人机群飞行总距离最小的原则进行实时地任务指派,确定针对每个目标拍摄位置所指派的无人机;针对每个指派的无人机,控制无人机由当前位置飞行至所指派至的目标拍摄位置,并在目标拍摄位置处朝向相应子场景的中心位置进行拍摄,得到一组覆盖整体动态场景、且针对目标运动对象的关联性拍摄画面。一种无人机协同摄影装置,包括:场景分割模块,用于将整体动态场景实时分割为多个子场景;整体动态场景,是包括处于运动状态的多个目标运动对象的场景;每个子场景中包括至少一个目标运动对象、且每个子场景的范围在无人机的拍摄范围内;目标位置确定模块,用于根据每个子场景的中心位置、子场景的范围、以及子场景的中心位置与整体动态场景的中心位置之间的位置关系,确定每个子场景相应的目标拍摄位置;目标拍摄位置,是用于拍摄子场景中目标运动对象的运动细节以及与子场景关联的部分整体动态场景时,无人机所处的位置;任务指派模块,用于基于各无人机的当前位置以及无人机群飞行总距离最小的原则进行实时地任务指派,确定针对每个目标拍摄位置所指派的无人机;协同拍摄模块,用于针对每个指派的无人机,控制无人机由当前位置飞行至所指派至的目标拍摄位置,并在目标拍摄位置处朝向相应子场景的中心位置拍摄,得到一组覆盖整体动态场景、且针对目标运动对象的关联性拍摄画面。一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现本申请各实施例中的无人机协同摄影方法中的步骤。一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现本申请各实施例中的无人机协同摄影方法中的步骤。上述无人机协同摄影方法、装置、计算机设备和存储介质,将整体动态场景实时分割为多个子场景;根据子场景的中心位置与整体动态场景的中心位置之间的位置关系,确定每个子场景相应的目标拍摄位置,并基于无人机群飞行总距离最小的原则,实时指派无人机至所指派至的目标拍摄位置,并朝向相应子场景的中心位置进行拍摄。这样一来,每个无人机在目标拍摄位置处可以拍摄到子场景中目标运动对象的运动细节以及与子场景关联的部分整体动态场景,从而多个无人机的拍摄画面结合起来,就可以得到一组覆盖整体动态场景、且针对目标运动对象的关联性拍摄画面。实现了对复杂的动态场景的有效拍摄。附图说明图1为一个实施例中无人机协同摄影方法的流程示意图。图2为一个实施例中无人机协同摄影方法的简示图。图3为一个实施例中确定无人机水平位置的示意图。图4为一个实施例中固定聚类场景下的示意图。图5为一个实施例中固定聚类场景下的无人机协同摄影的飞行轨迹图。图6为一个实施例中时聚时散场景下的示意图。图7为一个实施例中随机运动场景下的示意图。图8为一个实施例中对照测试的比对效果示意图。图9为一个实施例中无人机协同摄影装置的结构框图。图10为一个实施例中计算机设备的内部结构图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本申请提供的无人机协同摄影方法,可以应用于下述应用环境中。其中,计算机设备通过网络与多个无人机进行通信。其中,计算机设备可以是终端或服务器。终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器可以用独立的服务器或者是多个服务器组成的服务器集群来实现。在一个实施例中,如图1所示,提供了一种无人机协同摄影方法,以该方法应用于计算机设备为例进行说明,可以理解的是,计算机设备可以是服务器或终端,该方法还可以应用于包括终端和服务器的系统,并通过终端和服务器的交互实现。本实施例中,该方法包括以下步骤:步骤102,将整体动态场景实时分割为多个子场景。其中,整体动态场景,是包括处于运动状态的多个目标运动对象的、且需要拍摄的完整场景。目标运动对象,是处于运动状态的需要关注或拍摄的对象。处于运动状态,说明目标运动对象并非静止不动,而是在不断运动。子场景是整体动态场景分割后得到的小场景。全部子场景结合在一起构成整体动态场景。每个子场景中包括至少一个目标运动对象、且每个子场景的范围在无人机的拍摄范围内。子场景的范围,是指子场景的大小。即,划分得到的子场景的范围不能过大,需要在无人机的拍摄范围之内,以避免无法将整个子场景中所有运动对象都拍摄到。在一个实施例中,目标运动对象包括人、动物或者车辆等产生运动的物体。在一个实施例中,计算机设备可以通过对目标运动对象进行聚类的方法,将整体动态场景分割成子场景。使用聚类算法进行子场景分割,能够保证每个子场景中都有至少一个目标运动对象,而不会存在没有目标运动对象的子场景。计算机设备也可以通过非聚类方法,比如,将整体动态场景中的目标运动对象用一个凸包包围,然后分割该凸包,得到多个连续的子场景。在一个实施例中,当计算机设备通过对目标运动对象进行聚类的方法来进行场景分割时,可以采用k-均值聚类算法k-means算法(k-means算法,k-meansclusteringalgorithm)或带有阈值的自适应k-均值聚类算法。在其他实施例中,还可以采用其他的聚类算法,对此不作限定。在一个实施例中,计算机设备可以使用k-均值聚类算法进行场景分割,具体地,计算机设备可以将整体动态场景中的目标运动对象分为预设的k个簇,从每簇中随机选择一个初始的聚类中心,并计算目标运动对象与各个聚类中心之间的距离,将每个目标运动对象重新分配至距离最近的聚类中心所在的簇,并根据每个簇中的目标运动对象的位置均值,重新确定该簇的聚类中心的位置,以此反复迭代,直至聚类稳定。需要说明的是,本申请各实施例中,是对整体动态场景进行实时动态分割,以根据整体动态场景中目标运动对象的实时运动情况,动态地进行场景分割,以确保场景分割的准确性,从而提高动态航拍的准确性,而并非仅做一次分割。步骤104,根据每个子场景的中心位置、子场景的范围、以及子场景的中心位置与整体动态场景的中心位置之间的位置关系,确定每个子场景相应的目标拍摄位置。可以理解,对于一个整体动态场景(即大场景)而言,在完成场景初步分割之后,并不能直接根据分割的结果对子场景进行拍摄,否则拍摄结果会变成分散的独立的子场景。在这个基础上,还需要既能够拍摄子场景中的运动细节,又能够使拍摄画面不失关联性的无人机的目标拍摄位置。其中,目标拍摄位置,是用于拍摄子场景中目标运动对象的运动细节以及与子场景关联的部分整体动态场景时,无人机所处的位置。即,目标拍摄位置是无人机待飞向的拍摄子场景的最佳拍摄位置,无人机在飞行至目标拍摄位置后,既能够拍摄到子场景中目标运动对象的运动细节(即满足每个子场景的运动细节拍摄需求),又能够拍摄到与子场景关联的整体动态场景的一部分,体现一定的关联性,从而避免仅对子场景拍摄造成拍摄画面过于孤立。可以理解,子场景的范围,是根据无人机的拍摄需求以及无人机的相机参数确定。子场景的中心位置,即为子场景的中心点所处的位置。整体动态场景的中心位置,是指整体动态场景的中心点所处的位置。在一个实施例中,整体动态场景的中心位置,可以通过对各个子场景的中心位置求均值得到,也可以通过对整个的整体动态场景求中心点得到。在一个实施例中,当使用对目标运动对象进行聚类的方法分割整体动态场景时,子场景的中心位置,即为聚类中心,子场景的范围为聚类大小。在一个实施例中,子场景的范围,可以是以聚类中心为圆心,根据聚类半径确定的圆形区域范围。具体地,计算机设备可以结合预设的摄影构图规则,根据每个子场景的中心位置、子场景的范围、以及子场景的中心位置与整体动态场景的中心位置之间的位置关系,确定每个子场景相应的目标拍摄位置。步骤106,基于各无人机的当前位置以及无人机群飞行总距离最小的原则进行实时地任务指派,确定针对每个目标拍摄位置所指派的无人机。无人机群飞行总距离最小的原则,是指用于拍摄多个子场景的无人机群飞向子场景所对应的目标拍摄位置时飞行的总距离最小。即,最优指派方案。具体地,计算机设备可以通过与无人机之间的实时通信,获取各无人机实时的当前位置,然后,基于无人机群飞行总距离最小的原则,使用指派算法进行任务指派,确定针对每个子场景的目标拍摄位置所指派的无人机。可以理解,可以针对每个目标拍摄位置指派一架无人机对其进行拍摄,即子场景和指派的无人机是一对一拍摄的关系。在其他实施例中,当无人机的数量小于子场景的数量时,也可以指派一个无人机同时拍摄多个子场景。步骤108,针对每个指派的无人机,控制无人机由当前位置飞行至所指派至的目标拍摄位置,并在目标拍摄位置处朝向相应子场景的中心位置进行拍摄,得到一组覆盖整体动态场景、且针对目标运动对象的关联性拍摄画面。可以理解,多个无人机所拍摄的拍摄画面结合起来,就可以拍摄得到一组覆盖整体动态场景、且针对目标运动对象的关联性拍摄画面,即,得到能够关联结合起来完整覆盖整个整体动态场景,且富有各个目标运动对象的运动细节,相互之间具有一定关联性的一组拍摄画面。参照图2,(a)中先通过聚类,将整体动态场景分割为3个子场景(图中圆形虚线区域即示意出子场景)。计算机设备可以根据子场景的中心位置202以及整体动态场景的中心位置204,确定出每个子场景相应的目标拍摄位置206。从(c)中可知,计算机设备可以为3个子场景分别指派一架无人机,指派的无人机则可以飞行至虚线箭头所指向的目标拍摄位置,对相应的子场景进行拍摄。上述无人机协同摄影方法中,每个无人机在目标拍摄位置处可以拍摄到子场景中目标运动对象的运动细节以及与子场景关联的部分整体动态场景,从而多个无人机的拍摄画面结合起来,就可以得到一组覆盖整体动态场景、且针对目标运动对象的关联性拍摄画面。实现了对人力及技术要求较高的复杂的动态场景的实时拍摄。此外,根据无人机的当前位置,实时对每个无人机进行合理调度,减少了无人机群进行实时拍摄过程中的总飞行路程。在一个实施例中,步骤102(简称场景分割步骤)包括:获取预设距离阈值,并从整体动态场景中选取一个起始的簇中心;针对整体动态场景中的每个目标运动对象,分别确定目标运动对象与各簇中心之间的距离;根据距离,确定距所有簇中心最远的目标运动对象,当确定的目标运动对象与最近的簇中心之间的距离大于预设距离阈值时,将确定的目标运动对象作为新增的簇中心,并返回迭代执行分别确定目标运动对象与各簇中心之间的距离及后续步骤,直至不再产生簇中心时停止迭代;基于停止迭代时得到的簇中心,对整体动态场景中的目标运动对象进行k-均值聚类,得到最终的聚类簇;将每个聚类簇的簇中心作为子场景的中心位置、以及将每个聚类簇的聚类大小作为子场景的范围,以对整体动态场景分割,得到多个子场景。在一个实施例中,预设距离阈值,根据无人机的相机的有效拍摄范围确定。可以理解,本实施例中,相当于采用了带有阈值的自适应k-均值聚类算法。即,计算机设备可以获取预设距离阈值,并从整体动态场景中选取一个起始的簇中心,剩余的簇中心根据距离和阈值一一确定,这样就获得了一组簇中心,然后再进行k-均值聚类算法进行聚类。具体地,计算机设备可以从整体动态场景中随机选取一个位置作为起始的簇中心,也可以将该整体动态场景中目标运动对象的位置的均值,作为起始的簇中心,还可以随机将一个目标运动对象的位置作为起始的簇中心。进一步地,计算机设备可以针对整体动态场景中的每个目标运动对象,分别确定每个目标运动对象与各簇中心之间的距离。计算机设备可以根据距离,确定距所有簇中心最远的目标运动对象。进而,计算机设备可以将该目标运动对象(即,距所有簇中心最远的目标运动对象)与该目标运动对象最近的簇中心之间的距离,同预设距离阈值进行比较,当该距离大于预设距离阈值时,意味着该目标运动对象可作为独立的簇中心,因而可以将该距所有簇中心最远的目标运动对象作为新增的簇中心。计算机设备可以返回迭代执行分别确定目标运动对象与各簇中心之间的距离及后续步骤,直至不再产生簇中心时停止迭代。可以理解,当距离小于预设距离阈值时,则说明任意目标运动对象距离某一个簇中心的距离都小于该预设距离阈值,则都可以归属到某一个现有簇中,不必产生新的簇中心。进一步地,计算机设备可以对停止迭代时得到的簇中心进行k-均值聚类,得到最终的聚类簇。计算机设备可以将每个聚类簇的簇中心作为子场景的中心位置、以及将每个聚类簇的聚类大小作为子场景的范围,以对整体动态场景分割,得到多个子场景。在一个实施例中,根据距离,确定距所有簇中心最远的目标运动对象,当确定的目标运动对象与最近的簇中心之间的距离大于预设距离阈值时,将确定的目标运动对象作为新增的簇中心,包括:针对每个目标运动对象,选择目标运动对象与每个簇中心之间的最小距离,作为目标运动对象的标记值;从各目标运动对象的标记值中选取最大的标记值;当最大的标记值大于预设距离阈值时,则将最大的标记值所对应的目标运动对象作为新增的簇中心。目标运动对象的标记值,即为该目标运动对象与最近的簇中心之间的距离。最大的标记值所对应的目标运动对象为距所有簇中心最远的目标运动对象。为了便于理解,现结合一个详细实施例对带有阈值的自适应k-均值聚类算法进行整体描述。计算机设备可以按照以下步骤来进行聚类:(1):获取预设距离阈值t。该整体动态场景中一共有n个目标运动对象,则可以选择n个目标运动对象的位置的均值,作为起始的簇中心c1。(2):选择距离c1最远的点作为第二个簇中心c2,这样选择的第二个簇中心一般情况下不会属于第一个簇。如果c1和c2距离小于t,即||c1-c2||<t,那么意味着整体动态场景很小,可以用一个聚类包含,那么聚类过程结束。(3):依次计算每个目标运动对象与已知所有的簇中心的距离,并且选择其中的最小距离作为这个目标运动对象的标记值,记为di。(4):在所有目标运动对象的标记值中选取标记值最大的,即maxdi。如果maxdi>t,说明这个目标运动对象是距离现有的所有簇中心中最远的一个点,将该目标运动对象作为新增的簇中心cj,迭代返回步骤3,则可以依次迭代得到新的簇中心c3,c4……。如果maxdi≤t,说明所有目标运动对象都在簇中心所对应的聚类簇的范围内,则停止迭代,结束簇中心的选取。(5):输出得到的k个初始簇中心。以k个初始簇中心为基础,对整体动态场景中的n个目标运动对象进行k-均值聚类。上述实施例中,能够根据距离阈值自适应的选出簇中心,使得选出来的簇中心距离现有簇中心最远,且簇中心之间的距离大于预设距离阈值,提高了聚类结果的稳定性,从而提高了场景分割的准确性和有效性。在一个实施例中,根据每个子场景的中心位置、子场景的范围、以及子场景的中心位置与整体动态场景的中心位置之间的位置关系,确定每个子场景相应的目标拍摄位置,包括:针对每个子场景,根据无人机的相机参数,确定无人机与子场景的中心位置之间的理论距离;根据理论距离和预设的无人机拍摄角度,确定无人机的目标飞行高度;根据目标飞行高度和子场景的中心位置,确定无人机的水平位置;根据目标飞行高度和水平位置,确定子场景相应的目标拍摄位置。其中,无人机与子场景的中心位置之间的理论距离,是无人机与子场景的中心位置之间的最适应距离,即,无人机与子场景的中心位置之间理论上的最佳拍摄距离。目标飞行高度,是拍摄子场景时无人机所应处于的飞行高度。无人机的水平位置,是拍摄子场景时无人机在水平方向上所应处于的位置。在一个实施例中,无人机的相机参数,包括无人机的相机视场角,还可以包括其他能够确定无人机与子场景的中心位置之间的理论距离的相机参数。由于,子场景相应目标拍摄位置是由飞行高度和水平位置共同决定的,所以,计算机设备可以根据目标飞行高度和子场景的中心位置,确定无人机的水平位置,根据目标飞行高度和水平位置,共同确定子场景相应的目标拍摄位置。在一个实施例中,计算机设备可以根据无人机的相机视场角、子场景的范围、以及无人机的拍摄画面的中心区域的占比,确定无人机与子场景的中心位置之间的理论距离。在一个实施例中,根据理论距离和预设的无人机拍摄角度,确定无人机的目标飞行高度包括:根据理论距离和预设的无人机拍摄角度,确定无人机的理论飞行高度;根据理论飞行高度,确定无人机的目标飞行高度;目标飞行高度,是在无人机的安全飞行高度范围内的、且最接近于理论飞行高度的飞行高度。其中,无人机的理论飞行高度,是拍摄子场景时无人机在理论上的最适应飞行高度(即,无人机的最佳拍摄高度)。安全飞行高度范围,是根据无人机安全飞行时的最低高度和最高高度确定的范围,即,无人机的飞行高度在该最低高度(含)和最高高度(含)之间时,属于处于安全高度。可以理解,当理论飞行高度位于安全飞行高度范围内时,那么,最接近于理论飞行高度的飞行高度,即为该理论飞行高度本身,则目标飞行高度为该理论飞行高度。当理论飞行高度低于安全飞行高度范围中的最低高度,则安全飞行高度范围内最接近于理论飞行高度的飞行高度,即为最低高度,则目标飞行高度为该最低高度。当理论飞行高度高于安全飞行高度范围中的最高高度,则安全飞行高度范围内最接近于理论飞行高度的飞行高度,即为最高高度,则目标飞行高度为该最高高度。在一个实施例中,可以通过以下公式,确定无人机与子场景的中心位置之间的理论距离:,(1);在一个实施例中,可以根据以下公式确定无人机的目标飞行高度包括:,(2);,(3);,(4);其中,clurad为聚类的半径,cenrat为拍摄画面的中心区域所占比例,fov为相机视场角,θ为设定的无人机拍摄角度,d"为无人机与子场景的中心位置间的理论距离;h"为理论飞行高度,min_height和max_height分别为无人机安全飞行高度范围内的最低高度和最高高度,h为求出的无人机的目标飞行高度。上述实施例中,根据小场景的位置和范围,结合复杂动态场景的摄影构图设计,确定了无人机的目标拍摄位置,提供了针对各个子场景的整体拍摄效果。在一个实施例中,根据目标飞行高度和子场景的中心位置,确定无人机的水平位置,包括:根据目标飞行高度和无人机拍摄角度,确定无人机与子场景的中心位置的水平距离;对各子场景的中心位置求均值,得到整体动态场景的中心位置;确定从整体动态场景的中心位置指向子场景的中心位置的射线,并将射线上的、且距子场景的中心位置满足水平距离处的位置,作为无人机的水平位置。可以理解,在确定无人机的目标飞行高度后,可以根据目标飞行高度和已知的子场景的中心位置,计算无人机的水平位置。由于希望在拍摄目标运动对象的同时能覆盖整个场景,并且对整个场景有完整立体的观感,无人机会从子场景的外部向子场景的中心进行拍摄。具体地,计算机设备可以从整体动态场景的中心位置与各个子场景的中心位置进行连线,无人机的水平位置就在该射线上。计算机设备可以根据目标飞行高度和无人机拍摄角度,确定无人机与子场景的中心位置的水平距离,在该射线上根据水平距离截取的位置就是无人机的水平位置。即,在射线上取距子场景的中心位置满足水平距离处的位置,从而准确地得到无人机的水平位置。图3为一个实施例中确定无人机水平位置的示意图。参照图3,a,b,c分别为三个子场景的中心位置,o为整体动态场景的中心位置,a',b',c'分别为对应的无人机的水平位置。从图3可知,无人机的水平位置在由整体动态场景的中心位置o指向子场景的中心位置的射线上,aa'、bb'以及cc'所分别表示的长度,为无人机距各自相应子场景的中心位置的水平距离。在一个实施例中,可以通过以下公式确定无人机的水平位置:,(5),(6)其中,xi为需要拍摄的第i个子场景的中心位置,k为分割后的子场景中心个数,为拍摄第i个子场景的无人机的水平位置,o为整体动态场景的中心位置,hi为拍摄第i个子场景的无人机的目标飞行高度,θ为无人机拍摄角度。在一个实施例中,基于各无人机的当前位置以及无人机群飞行总距离最小的原则进行实时地任务指派,确定针对每个目标拍摄位置所指派的无人机,包括:根据每个无人机由所处的当前位置飞向每个目标拍摄位置的距离,生成飞行成本矩阵;针对无人机和目标拍摄位置的组合对定义二值函数;其中,当组合对中的无人机飞向目标拍摄位置时二值函数的值为1,当组合对中的无人机不飞向目标拍摄位置时二值函数的值为0;根据二值函数和飞行成本矩阵,构建最小化飞行成本的数学模型,并根据最小化飞行成本的数学模型,确定最小化成本的指派方案;指派方案中,目标拍摄位置和指派的无人机满足一对一的关系。可以理解,对于多对多的无人机飞行任务分配问题,可以转化为一个任务指派问题。每个无人机到各个目标点的距离可以近似为每个任务的飞行代价或者飞行成本。通过保证调用的无人机和目标场景位置是一对一的,来完成对场景的完整拍摄。在实际匹配过程中,会根据分割的子场景的数量,动态调用无人机,实现无人机针对子场景的一对一拍摄。可以理解,每个无人机飞向每个目标拍摄位置的距离,也代表该段飞行的成本,所以,计算机设备可以根据每个无人机由所处的当前位置飞向每个目标拍摄位置的距离,生成飞行成本矩阵。此外,满足目标拍摄位置和指派的无人机满足一对一的关系的前提,是无人机的数量要大于等于目标拍摄位置的数量。对无人机的任务指派问题的描述方法如下:对于有m个目标拍摄位置,现在可以调用n个无人机去拍摄,调用第i个无人机飞向第j个目标点的距离为dij,也代表了该段飞行的飞行成本。我们希望无人机群的总飞行距离最小(即无人机群的总飞行成本最小),所以,可以根据m和n的不同(无人机的数量与分割的子场景的数量的不同),将任务指派问题分为以下两种情况讨论:1,当m=n时,即为每个无人机都分配一个目标拍摄位置,也称为完全匹配。2,当m<n时,即无人机数量大于目标拍摄位置数量时,应虚设(n-m)个目标拍摄位置,此时目标拍摄位置没有具体位置,但是任意无人机飞往该虚拟目标拍摄位置的距离成本为0,即无人机可以不移动。因此,通过虚设目标拍摄位置,无人机的任务指派问题能转化为完全匹配的平衡指派。为每一个无人机和目标拍摄位置的组合对(即,无人机与目标拍摄位置为一对组合)定义一个二值函数:(7)指派问题要求最小化飞行成本的数学模型为:(8)其中:(9)(10)公式(8)为无人机的飞行成本代价函数z,xij为二值函数x(i,j)的另一种写法,dij表示第i个无人机飞向第j个目标点的距离,m为目标拍摄位置的数量,n为无人机的数量。公式(9)表示任一无人机只能飞往一个目标拍摄位置,公式(10)表示任一目标拍摄位置也只能有一无人机飞往,二者结合即代表无人机与目标拍摄位置的一对一约束。这样,这个问题就转化一个0-1规划问题,可以使用由匈牙利算法发展而来的km算法(是一种计算机算法,功能是求完备匹配下的最大权匹配)求解,得到最小化飞行成本的指派方案。由dij构成的飞行成本矩阵在指派算法中称为效率矩阵,平衡后该矩阵为一个n*n的矩阵。km算法依据的原理为在效率矩阵中任何行或列加上或减去同一常数并不改变分配方案,其基本思路是在保证效率矩阵中元素不能为负前提下,对效率矩阵作适当变换,使矩阵中包含n个处于不同行不同列的零元素,然后选取这些元素形成结果矩阵r来表示指派结果,结果矩阵中对应被选中的零元素位置取为1,其它的为0。之所以选取不同行且不同列的零元素,是因为每个指派是一对一的。在具体实现过程中,首先,将效率矩阵转化为至少每行每列都有零元素的矩阵,然后对其进行试指派,若无法选出n个不同行不同列的零元素,则继续通过增减变换增加矩阵中的零元素,直到矩阵中可以选出n个不同行不同列的零元素。这里结合一个简单的n=3的矩阵作为示范。其具体执行步骤如下:步骤1:对效率矩阵进行行变换和列变换,使每行每列都出现0元素,得到。步骤2:进行试指派。经第1步变换后,系数矩阵中每行每列都已有了0元素,但需找出n个独立的0元素。如果能找出,就得到最优解。步骤如下:①从只有一个0元素的行(列)开始,给这个0元素作选择标记,记作x。表示这行所代表的无人机,只有一个目标位置可以飞。然后将其所在列(行)的其它0元素,作排除标记,记作h。这表示这列所代表的目标位置已被指派,不再考虑其他无人机。②给只有一个0元素列(行)的0元素作选择标记,记作x;然后排除所在行(列)的0元素,记作h。③反复进行①②两步,直到所有0元素都被标记x或者h为止。④若仍有未标记的0元素,且同行(列)的0元素至少有两个(这表示该无人机飞向多个目标位置距离相等),则从剩有0元素最少的行(列)开始,比较这行各个0元素所在列中0元素的数目,选择0元素最少那列(行)的这个0元素标记x(这表示选择性少的优先于选择性多的),然后排除其同行同列的其它0元素,标记h。同②③,将④中的行列对换,直到所有0元素都已标记x或h为止。得到。⑤若x元素的数目a等于矩阵的阶数n,该指派问题的最优解已得到。如果a<n则进入下一步骤3。上述例子中a<n,所以会继续执行步骤3。步骤3:作最少的直线覆盖所有0元素,以确定该系数矩阵中能找到最多的独立元素。按以下步骤进行:①对没有x的行打×号;②对已打×号的行中所有含0元素(包括x和h元素)的列打×号;③再对打有×号的列中含x元素的行打×号;④重复②③直到得不出新的打×号的行、列为止;⑤对没有打×号的行画一横线,有打×号的列画一竖线,这就得到覆盖所有0元素的最少直线数k。若k<n,说明必须再变换当前矩阵,才能找到n个独立的0元素,为此转第4步;若k=n,而a=n,应回到步骤2的④中,从其他的0元素开始试探。步骤4:矩阵变换。对步骤3结尾的矩阵进行变换的目的是增加0元素。为此在没有被直线覆盖的部分中找出最小元素,然后在打×行各元素中都减去该最小元素,而在打×列的各元素中都加上该最小元素,以保证在原有的0元素不变的同时,产生新的0元素。这样得到新系数矩阵,它的最优解和原问题相同。接下来回到步骤2,对这个新的矩阵重新进行试指派,若能得到n个独立的0元素,则已得最优解,否则不断重复执行步骤2、3、4,直到获得n个独立的0元素。最终得到的结果矩阵为,对于效率矩阵的最优指派为下表。表一示例最优指派方案(即最小化成本的指派方案)无人机目标拍摄位置距离成本211432151313总计成本为14+15+13=42。据此,我们可以控制无人机2飞向目标拍摄位置1,无人机3飞向目标拍摄位置2,无人机1飞向目标拍摄位置3。需要说明的是,当无人机的数量少于目标拍摄位置的数量(即少于分割得到的子场景的数量)时,则可以通过增加无人机个数或者更改无人机的视野范围进而更改聚类的预设距离阈值来完成完整拍摄。上述实施例中,根据二值函数和飞行成本矩阵,构建最小化飞行成本的数学模型,并根据最小化飞行成本的数学模型,确定最小化成本的指派方案,从而针对目标拍摄位置一对一地指派无人机,节省了飞行成本。应该理解的是,虽然本申请各流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行,除非本文中有明确的说明,这些步骤可以以其它的顺序执行。而且,各流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者阶段的至少一部分轮流或者交替地执行。可以理解,本申请各实施例中的方法,可以适用于计算机设备中用于控制无人机的通讯程序。该通讯程序的设计目标为,可以使用该程序对任意使用的无人机进行控制,包括手动控制以及调用算法令无人机自动执行运动,该程序能实时的获取到场景内无人机状态的反馈,并及时反映给用户。用于控制无人机的通讯程序的编写过程为:首先确定无人机安全飞行规则,以及无人机的控制机制建立程序的基础控制循环。该循环可以响应操作指令,并且能够通过手动控制进行移动,其运动速度可以设定。同时具备了安全限制系统,在飞向目标拍摄位置过程中,可以在无人机位置过高、距离地面位置过低或者过于靠近某个方向的障碍物时发出警报,并停止无人机进一步执行指令,并等待重新计算飞行指派命令;在无人机运动速度过快时,令无人机只能按照最大限速运动。在该程序中,添加无人机对单目标的跟踪功能。根据上述各实施例中的各流程,添加无人机协同摄影算法,以实现本申请各实施例中的无人机协同摄影方法。本申请采用仿真的方式进行了验证。本仿真系统部署了无人机基础运动规则、单无人机跟踪算法以及复杂动态场景的多无人机协同摄影算法,可以对无人机进行自由的手动控制或者令无人机执行指定的自动飞行任务。我们设计了3种用于测试多无人机协同摄影的场景,每种场景均有多个例子。以下所示例子中,中央上部的窗口固定显示一个对整体区域的综合俯视空中视角,可以称之为全局视角,用于俯瞰全局,观察其他无人机在整个场景中的位置(即图4、图6以及图7中每组图的第一行中间那副图,比如,图4中的404)。其他每个窗口显示对应的无人机拍摄画面,未被调用的无人机对应的窗口则静止不动。为方便观察,示例中所有场景的关注对象均为运动的人体模型。此外,根据实时记录无人机位置和聚类结果等原始数据,绘制无人机轨迹图。无人机轨迹图中,实线代表无人机的飞行轨迹,虚线代表无人机与其对应的聚类中心的连线,也就是理想情况下无人机相机指向的方向。测试场景1——固定聚类场景:目标运动对象分为多个组,每个组按照各自的路线分别运动。这种场景的特点是其聚类相对固定,但聚类间的相对位置变化是随机的。图4为一个实施例中固定聚类场景下的示意图。示例所用场景中目标运动对象的运动轨迹如图4中的(a)所示。该整体动态场景中,能够稳定的聚类为4个子场景。此案例中,一共有5架无人机,实际拍摄中根据需要只调用了4架针对4个人群分别拍摄。图4中的(b)~(c)中同一位置的图为同一个无人机在不同时间下拍摄的画面。以图4中的(b)为例说明固定聚类场景不同无人机的拍摄画面。图4的(b)中的402、406、408以及410分别是调用的4架无人机针对各自分配的人群进行拍摄的拍摄画面。412是5架无人机中多出来的未执行飞行任务的哪一架无人机的画面,所以,它在(b)~(c)中的画面始终未发生变化。而404是未绑定无人机的固定相机拍摄的整体场景画面,所以,(b)~(c)中该固定相机拍摄的背景画面始终未发生变化,比如,图4中的(c)中第一行中间那幅拍摄画面,就是由固定相机拍摄的画面,与(b)中的404的背景画面一致。图5为固定聚类场景下的不同无人机协同摄影的飞行轨迹图。根据拍摄画面以及图5的轨迹图分析,无人机在较长间隔时间后,仍能够持续对聚类中心(即子场景的中心)进行重点拍摄,几个无人机拍摄的画面也都指向场景中心,不再是独立的画面,很有整体感。由此,对于固定聚类的场景,该无人机协同摄影算法可以获得很好的拍摄效果。测试场景2——时聚时散场景:多个目标运动对象朝向或者背离一个中心点运动,能在一个循环内聚到中心,然后会各自走向不同位置,往复运动,其聚类表现为时聚时散。图6为一个实施例中时聚时散场景下的示意图。本示例所用场景的运动轨迹如图6中的(a)所示。该场景为四个人物目标进行2聚到散,再由散到聚的循环往复运动,聚类中心的个数变化为1—>2—>4—>2—>1。本案例中,从5架候选的无人机中,总共启动了4架无人机,在拍摄过程中会动态调用。图6中的(b)~(c)示出了时聚时散场景下不同时间下的拍摄画面。由于场景2同样最多调用了4架无人机。所以,同样地,图6中(b)~(c)各自的最后一幅图即为未执行飞行任务的无人机的拍摄画面,(b)~(c)各自第一行中间的那幅图即为未绑定无人机的固定相机拍摄的整体场景画面。根据拍摄画面分析,对于这种聚类中心数量会剧烈变化的场景,可以动态调用无人机,没有被调用的无人机在原地悬停待命,该算法对这种场景是动态适应的。以上系列拍摄画面中,大部分时候拍摄效果良好。图6中(b)所示的一组图为两个人一组,调用两架无人机在拍摄,所以,只有第一行第一幅图和第三幅图的2架无人机的拍摄画面中有人。图6中(c)所示的一组图中,4个人分开走向了场景4个角落,调用4架无人机对4个人分别进行拍摄。由此,对于时聚时散类的场景,该算法可以获得很好的拍摄效果。测试场景3——随机运动场景:多个目标随机运动,没有运动规则。这种场景的聚类个数难以预测,拍摄难度比较大,需要较长的拍摄时间。图7为一个实施例中随机运动场景下的示意图。本示例所用场景的运动轨迹如图7中的(a)所示。该场景中,计算的聚类结果一般为4或者5个。图7中的(b)~(c)示出了时聚时散场景下不同时间下的拍摄画面。同样地,图7中(b)~(c)各自第一行中间的那幅图即为未绑定无人机的固定相机拍摄的整体场景画面。本测试场景3中共启用了5架无人机。以上系列画面中,大部分时候拍摄效果良好,少部分时候会由于聚类的剧烈变化导致无人机在短时间内会重新确定拍摄目标,出现比较严重画面抖动,随着聚类中心的重新稳定,拍摄也会重新稳定,比如,图7中(b)的最后一幅图中,画面比较抖动,但是后续逐步稳定,如图7中(c)的最后一幅图所示,画面已经稳定。说明,对于随机运动场景,该算法可以在大部分情况下达到拍摄要求,通过动态调用无人机实现动态适应。需要说明的是,对于图4、6和7中各自的(b)~(c)来说,其中同一位置的图为同一个无人机在不同时间下拍摄的画面。此外,我们将本申请无人机协同摄影算法与面均分法和角均分法一同进行了比照测试。图8为一个实施例中对照测试的比对效果示意图。测试所采用的场景为固定聚类场景,示例场景的人物轨迹图以图4中的(a)为例,对比效果参见图8中的(a)~(c)。根据图8所示,面均分法拍摄调用了4个无人机从上自下拍摄,角均分法调用了5个无人机从四周向场景中心拍摄。相比而言,本申请各实施例中的无人机协同摄影算法,有以下几个优点:1.会对集群目标进行针对性的集中拍摄,并且尽量保持合理的拍摄位置,能清楚地观看物体运动的细节。2.稀疏或者空白处不是拍摄的重点,会减少无人机的分配,画面有主次之分。3.避免了重要物体被拍摄画面分割。4.所有无人机会根据物体聚类移动。综上,无人机协同摄影算法比均分摄影法更适合拍摄复杂动态场景。在一个实施例中,如图9所示,提供了一种无人机协同摄影装置,包括:场景分割模块902、目标位置确定模块904、任务指派模块906和协同拍摄模块908,其中:场景分割模块902,用于将整体动态场景实时分割为多个子场景;整体动态场景,是包括处于运动状态的多个目标运动对象的场景;每个子场景中包括至少一个目标运动对象、且每个子场景的范围在无人机的拍摄范围内。目标位置确定模块904,用于根据每个子场景的中心位置、子场景的范围、以及子场景的中心位置与整体动态场景的中心位置之间的位置关系,确定每个子场景相应的目标拍摄位置;目标拍摄位置,是用于拍摄子场景中目标运动对象的运动细节以及与子场景关联的部分整体动态场景时,无人机所处的位置。任务指派模块906,用于基于各无人机的当前位置以及无人机群飞行总距离最小的原则进行实时地任务指派,确定针对每个目标拍摄位置所指派的无人机。协同拍摄模块908,用于针对每个指派的无人机,控制无人机由当前位置飞行至所指派至的目标拍摄位置,并在目标拍摄位置处朝向相应子场景的中心位置进行拍摄,得到一组覆盖整体动态场景、且针对目标运动对象的关联性拍摄画面。在一个实施例中,场景分割模块902还用于获取预设距离阈值,并从整体动态场景中选取一个起始的簇中心;针对整体动态场景中的每个目标运动对象,分别确定目标运动对象与各簇中心之间的距离;根据距离,确定距所有簇中心最远的目标运动对象,当确定的目标运动对象与最近的簇中心之间的距离大于预设距离阈值时,将确定的目标运动对象作为新增的簇中心,并返回迭代执行分别确定目标运动对象与各簇中心之间的距离及后续步骤,直至不再产生簇中心时停止迭代;基于停止迭代时得到的簇中心,对整体动态场景中的目标运动对象进行k-均值聚类,得到最终的聚类簇;将每个聚类簇的簇中心作为子场景的中心位置、以及将每个聚类簇的聚类大小作为子场景的范围,以对整体动态场景分割,得到多个子场景。在一个实施例中,场景分割模块902还用于针对每个目标运动对象,选择目标运动对象与每个簇中心之间的最小距离,作为目标运动对象的标记值;从各目标运动对象的标记值中选取最大的标记值;其中,最大的标记值所对应的目标运动对象为距所有簇中心最远的目标运动对象;当最大的标记值大于预设距离阈值时,则将最大的标记值所对应的目标运动对象作为新增的簇中心。在一个实施例中,目标位置确定模块904还用于针对每个子场景,根据无人机的相机参数,确定无人机与子场景的中心位置之间的理论距离;根据理论距离和预设的无人机拍摄角度,确定无人机的目标飞行高度;根据目标飞行高度和子场景的中心位置,确定无人机的水平位置;根据目标飞行高度和水平位置,确定子场景相应的目标拍摄位置。在一个实施例中,目标位置确定模块904还用于根据目标飞行高度和无人机拍摄角度,确定无人机与子场景的中心位置的水平距离;对各子场景的中心位置求均值,得到整体动态场景的中心位置;确定从整体动态场景的中心位置指向子场景的中心位置的射线,并将射线上的、且距子场景的中心位置满足水平距离处的位置,作为无人机的水平位置。在一个实施例中,目标位置确定模块904还用于根据无人机的相机视场角、子场景的范围、以及无人机的拍摄画面的中心区域的占比,确定无人机与子场景的中心位置之间的理论距离;根据理论距离和预设的无人机拍摄角度,确定无人机的理论飞行高度;根据理论飞行高度,确定无人机的目标飞行高度;目标飞行高度,是在无人机的安全飞行高度范围内的、且最接近于理论飞行高度的飞行高度。在一个实施例中,任务指派模块906还用于根据每个无人机由所处的当前位置飞向每个目标拍摄位置的距离,生成飞行成本矩阵;针对无人机和目标拍摄位置的组合对定义二值函数;其中,当组合对中的无人机飞向目标拍摄位置时二值函数的值为1,当组合对中的无人机不飞向目标拍摄位置时二值函数的值为0;根据二值函数和飞行成本矩阵,构建最小化飞行成本的数学模型,并根据最小化飞行成本的数学模型,确定最小化成本的指派方案;指派方案中,目标拍摄位置和指派的无人机满足一对一的关系。关于无人机协同摄影装置的具体限定可以参见上文中对于无人机协同摄影方法的限定,在此不再赘述。上述无人机协同摄影装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器或服务器,其内部结构图可以如图10所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种无人机协同摄影方法。本领域技术人员可以理解,图10中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,处理器执行计算机程序时实现上述各实施例中的步骤。在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤。本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(read-onlymemory,rom)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(randomaccessmemory,ram)或外部高速缓冲存储器。作为说明而非局限,ram可以是多种形式,比如静态随机存取存储器(staticrandomaccessmemory,sram)或动态随机存取存储器(dynamicrandomaccessmemory,dram)等。以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上实施例仅表达本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1