本发明涉及计算机图形学
技术领域:
,尤其涉及一种无人机飞行路径生成方法、装置、存储介质及设备。
背景技术:
:随着四旋翼无人机(uav)技术的进步和无人机价格的下降,无人机在各种任务中的应用越来越普遍。特别地,四旋翼无人机被专业人士和业余摄影师日益广泛地用于捕获航拍图像和视频。然而,通过控制无人机拍摄高质量的航拍视频是非常具有挑战性的。在拍摄过程中,不仅需要控制无人机的飞行轨迹,还需要同时控制摄像机的自由度。通常需要两个人来拍摄航拍视频,其中一个人驾驶无人机,同时另一个人控制摄像机。此外,有限的电池容量和快速变化的照明条件使得难以通过反复的飞行排练来提高拍摄质量。而且,在每次飞行途中,只要发生一点差错,就必须重新进行拍摄。最近,研究人员设计了平滑的无人机飞行路径。该飞行路径中插入了用户指定的观察视角(关键帧)(p.2015.aninteractivetoolfordesigningquadrotorcamerashots.acmtrans.graphics34,6,238),并且该飞行路径可以确保动态可行性(p.2016.generatingdynamicallyfeasibletrajectoriesforquadrotorcameras.acmtransactionsongraphics(proc.siggraph2016)35,4)。在“aninteractivetoolfordesigningquadrotorcamerashots”中,无人机在真实环境中自动执行飞行任务之前,可先在3d模拟器中设计虚拟路径。该虚拟路径是通过创建手动定位的关键帧的有序集合来设计的,而且,关键帧的顺序需要由用户指定。在不同关键帧之间创建一条特定的c4连续的路径,以确保路径遵循四旋翼无人机运动的物理方程,然后,向用户报告该路径的飞行可行性,以使用户迭代地改变关键帧的顺序。与“aninteractivetoolfordesigningquadrotorcamerashots”相似,另有研究人员提出了另一种路径设计方法(o.2016.airways:optimization-basedplanningofquadrotortrajectoriesaccordingtohigh-levelusergoals.inproc.2016chiconferenceonhumanfactorsincomputingsystems,acm,newyork,ny,usa,chi’16,2508–2519)。在“airways:optimization-basedplanningofquadrotortrajectoriesaccordingtohigh-levelusergoals”中,在虚拟环境中绘制和编辑无人机飞行路径,然后对路径进行优化,以确保飞行可行性[15]。但由于该设计方法需要给定多个约束(例如避免冲突),优化过程不能完全尊重用户输入,而需要在用户输入和约束之间进行权衡。技术实现要素:本发明提供一种无人机飞行路径生成方法、装置、存储介质及设备,以降低无人机飞行的操控难度。本发明实施例提供一种无人机飞行路径生成方法,包括:根据场景中地标的关键视角集合生成至少一个有序关键视角子集;根据有序关键视角子集中顺序排列的关键视角生成地标的局部飞行路径,并定义局部飞行路径的代价函数;基于局部飞行路径构建广义旅行销售员问题,求解广义旅行销售员问题,得到至少一条访问至少一个地标的全局飞行路径,并定义全局飞行路径的代价函数;根据局部飞行路径的代价函数和全局飞行路径的代价函数生成总体代价函数,求解总体代价函数,并根据求解结果选择局部飞行路径和全局飞行路径生成无人机飞行路径。本发明实施例还提供一种无人机飞行路径生成装置,包括:有序关键视角生成单元,用于:根据场景中地标的关键视角集合生成至少一个有序关键视角子集;局部飞行路径生成单元,用于:根据有序关键视角子集中顺序排列的关键视角生成地标的局部飞行路径,并定义局部飞行路径的代价函数;全局飞行路径生成单元,用于:基于局部飞行路径构建广义旅行销售员问题,求解广义旅行销售员问题,得到至少一条访问至少一个地标的全局飞行路径,并定义全局飞行路径的代价函数;无人机飞行路径生成单元,用于:根据局部飞行路径的代价函数和全局飞行路径的代价函数生成总体代价函数,求解总体代价函数,并根据求解结果选择局部飞行路径和全局飞行路径生成无人机飞行路径。本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述实施例所述方法的步骤。本发明实施例还提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述实施例所述方法的步骤。本发明实施例的无人机飞行路径生成方法、装置、存储介质及设备,通过根据关键视角集合生成可能的有序关键视角子集,可使用户不必指定关键视角的顺序。通过构建广义旅行销售员问题,可以确定多条路径最短的全局飞行路径。通过总体代价函数可以兼顾较佳的局部飞行路径和较佳的全局飞行路径,生成最优的无人机飞行路径。因此,用户可以轻松地为每个地标选择一些有趣的关键视角,而得到一条完整的有序的拥有关键视角的序列,可以利用它们得到令人满意的无人机飞行路径。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。在附图中:图1是本发明一实施例的无人机飞行路径生成方法的流程示意图;图2是本发明一实施例中生成地标的局部飞行路径的方法流程示意图;图3是本发明一实施例中建立包围地标的柱面的方法流程示意图;图4是本发明一实施例中生成全局飞行路径的方法流程示意图;图5是本发明另一实施例的无人机飞行路径生成方法的流程示意图;图6是本发明又一实施例的无人机飞行路径生成方法的流程示意图;图7(a)至图7(c)是本发明一实施例中基于地标的形状构建广义柱面的示意图;图8是本发明一实施例中通过在广义柱坐标体系中对有序关键视角进行插值所得到的适应地标外轮廓的相机路径示意图;图9是本发明一实施例中图结构示意图;图10(a)是本发明一实施例中场景中地标的多条局部路径示意图;图10(b)是本发明一实施例中场景中地标的最优局部路径示意图;图11是本发明一实施例中dji无人机相机的控制朝向示意图;图12是本发明一实施例中根据指定关键视角得到的飞行路径示意图;图13至图15是利用本发明实施例的方法生成无人机飞行路径的场景示意图;图16是本发明一实施例中不指定关键视角顺序生成飞行路径的场景示意图;图17是本发明一实施例中指定关键视角顺序生成飞行路径的场景示意图;图18是图17所使用飞行路径生成方法的评估结果;图19是图16所使用飞行路径生成方法的评估结果;图20是本发明一实施例的无人机飞行路径生成装置的结构示意图;图21是本发明一实施例中局部飞行路径生成单元的结构示意图;图22是本发明一实施例中地标柱面生成模块的结构示意图;图23是本发明一实施例中全局飞行路径生成单元的结构示意图;图24是本发明一实施例的计算机可读存储介质的示意图;图25是本发明一实施例的计算机设备的示意图。具体实施方式为使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合附图对本发明实施例做进一步详细说明。在此,本发明的示意性实施例及其说明用于解释本发明,但并不作为对本发明的限定。图1是本发明一实施例的无人机飞行路径生成方法的流程示意图。如图1所示,本实施例的无人机飞行路径生成方法,可包括:步骤s110:根据场景中地标的关键视角集合生成至少一个有序关键视角子集;步骤s120:根据有序关键视角子集中顺序排列的关键视角生成地标的局部飞行路径,并定义局部飞行路径的代价函数;步骤s130:基于局部飞行路径构建广义旅行销售员问题,求解广义旅行销售员问题,得到至少一条访问至少一个地标的全局飞行路径,并定义全局飞行路径的代价函数;步骤s140:根据局部飞行路径的代价函数和全局飞行路径的代价函数生成总体代价函数,求解总体代价函数,并根据求解结果选择局部飞行路径和全局飞行路径生成无人机飞行路径。在上述步骤s110中,场景中可包含至少一个地标。地标的关键视角集合中包含至少一个关键视角。该些关键视角可由用户输入。该些关键视角的顺序不需用户指定。实施例中,可根据关键视角集合生成各种可能的有序关键视角子集。有序关键视角子集可包含至少一个关键视角,其中的关键视角顺序排列。在利用无人机进行拍摄时,该关键视角可包括包含相机位置和方向信息。在上述步骤s120中,该局部飞行路径可表示无人机围绕一个地标飞行的轨迹。对于一个地标,每个有序关键视角子集可对应生成一条局部飞行路径。从而,根据关键视角集合的各种可能的有序关键视角子集可以生成各种可能的局部飞行路径。不同的局部飞行路径可以具有相同的代价函数形式,但可以具有不同的代价函数值。代价函数值可以用来评价局部飞行路径的成本或代价大小。利用局部飞行路径的代价函数可以确定较佳的关键视角顺序。在上述步骤s130中,全局飞行路径可以表示无人机在不同地标之间的迁移轨迹。不同全局飞行路径的代价函数可以具有相同的表示形式。全局飞行路径的代价函数值可以表示该全局飞行路径的成本或代价。利用全局飞行路径的代价函数可以确定较佳的地标访问顺序。通过求解广义旅行销售员问题,可以得到各种地标访问顺序下的最短迁移轨迹。在上述步骤s140中,该总体代价函数例如可以是局部飞行路径的代价函数和全局飞行路径的代价函数之和。通过总体代价函数可以反映无人机飞行路径的总体代价或总体成本,可以兼顾较佳的局部飞行路径和较佳的全局飞行路径。根据总体代价函数的求解结果,可以从各有序关键视角子集对应的局部飞行路径中选择出最佳或较佳的局部飞行路径,从而确定地标的至少一个关键视角的最佳或较佳顺序,可以从多条访问至少一个地标的全局飞行路径中选择出最佳或较佳的全局飞行路径,从而确定多个地标的最佳或较佳访问顺序。可以通过连接选出的局部飞行路径和全局飞行路径得到无人机飞行路径。实施例中,对于只有一个关键视角的情况,可以通过插值计算得到多个关键视角,对于只有一个地标的情况可以采用类似的方式处理。本实施例中,通过根据关键视角集合生成可能的有序关键视角子集,可使用户不必指定关键视角的顺序。通过构建广义旅行销售员问题,可以确定多条路径最短的全局飞行路径。通过将每个局部飞行路径与其代价函数相关联,可以确定较佳的局部飞行路径。通过将每个全局飞行路径与其代价函数相关联,可以确定较佳的全局飞行路径。通过总体代价函数可以兼顾较佳的局部飞行路径和较佳的全局飞行路径,生成最优的无人机飞行路径。因此,用户可以轻松地为每个地标选择一些有趣的关键视角,而得到一条完整的有序的拥有关键视角的序列,可以利用它们得到令人满意的无人机飞行路径。实施例中,局部飞行路径的代价函数和全局飞行路径的代价函数均与曲率、视角方向及路径长度有关。视角方向例如可以用相邻视角的平均变化或平均角度表示。本实施例中,通过与曲率、视角方向及路径长度有关的代价函数评价飞行路径,可以满足使无人机保持低曲率移动,以平滑方式改变无人机的朝向,使飞行路径保持一定单调性,及拍摄更长飞行路径等用户偏好。图2是本发明一实施例中生成地标的局部飞行路径的方法流程示意图。如图2所示,在上述步骤s120中,根据有序关键视角子集中顺序排列的关键视角生成地标的局部飞行路径的方法,可包括:步骤s121:在广义柱坐标系下建立包围地标的柱面;步骤s122:在关键视角的位置在广义柱坐标系中的极径大于柱面的极径的约束条件下,使用b样线条进行插值计算,连接有序关键视角子集中顺序排列的关键视角的位置,生成地标的局部飞行路径。本实施例中,利用关键视角的位置在广义柱坐标系中的极径大于柱面的极径的约束条件可以避免无人机在飞行过程中碰撞地标。使用b样线条进行插值计算,连接单个地标的各个关键视角,可使局部飞行路径尽可能平滑,且可以防止插值计算得到局部飞行路径与地标发生冲突。实施例中,可以利用2.5d模型或3d模型生成无人机飞行路径。实施例中,在上述步骤s120中,定义的局部飞行路径的代价函数可以表示为:其中,tj表示第j条局部飞行路径,q表示代价函数,αj表示第j条局部飞行路径权重系数,κj表示局部飞行路径的平均曲率,vj表示局部飞行路径中连续两个视角方向的平均角度,οk表示0或1,lj表示局部飞行路径的长度。可通过对飞行路径进行密集采样计算平均曲率κj和平均角度vj。实施例中,可以对平均曲率κj、平均角度vj及局部飞行路径的长度lj进行归一化,使得它们对于每个地标的最大值为1。图3是本发明一实施例中建立包围地标的柱面的方法流程示意图。如图3所示,在上述步骤s121中,在广义柱坐标系下建立包围地标的柱面的方法,可包括:步骤s1211:以地标为中心建立广义柱坐标系,在广义柱坐标系的平面极坐标下构建地标的地面投影的边界线;步骤s1212:扩展和平滑边界线,生成地标的地面投影的边界曲线;步骤s1213:在广义柱坐标系下,基于边界曲线构建地标的柱面。本实施例中,地标的地面投影的极径通常是地标的最大极径。构建地标的地面投影的边界线可使柱面很好地包围地标。通过扩展边界线,可使无人机飞行路径与地标保持一定距离,使无人机的飞行更安全。实施例中,地标的地面投影的边界线利用广义柱坐标系的平面极坐标可表示为:其中,φ表示极角,r表示极径,d和φ表示将直角坐标系下的地标顶点p的二维坐标(px,py)转换成相对于广义柱坐标系中心的距离和角度,p表示地标顶点集合,p∈p,ε表示安全空间宽度参数,ε>0。实施例中,可以通过迭代计算平滑边界线,迭代公式可以表示为:其中,上标k和k+1表示迭代次数,k为整数,k≥0,max表示取最大,δφ表示角度变化量。r0(φ)、r0(φ-δφ)、r0(φ+δφ)为初始值,为边界线平滑之前的值。实施例中,给定直角坐标系下的地标顶点集合p={(px,py,pz)},地标的柱面可表示为:φ(p)=φ(px,py)r(p)=d(px,py)/r(φ(p))z(p)=pz/h其中,d(px,py)表示最外侧的顶点极径,r(φ(p))表示各顶点的最大极径,φ(p)表示各顶点的角度,r(p)表示归一化后的顶点p的极径,pz表示各顶点的z轴坐标,h表示地标高度最大值,z(p)表示归一化后的顶点p的z轴坐标。本实施例中,在广义柱坐标系中,地标被包围在单位柱面内,r≤1且0≤z≤1。实施例中,利用r(fi)>1可以表示地标的第i个关键视角fi在柱面之外,从而可以方便地将无人机飞行路径约束在地标柱面之外,避免碰撞。图4是本发明一实施例中生成全局飞行路径的方法流程示意图。如图4所示,在上述步骤s130中,基于局部飞行路径构建广义旅行销售员问题,求解广义旅行销售员问题,得到至少一条访问至少一个地标的全局飞行路径的方法,可包括:步骤s131:生成场景中至少一个地标的各种访问顺序;步骤s132:根据局部飞行路径生成地标对应的方向相反的两个节点,并根据至少一个地标对应的方向相反的两个节点和访问顺序生成位于地标外空间的图结构;步骤s133:基于图结构,求解广义旅行销售员问题,得到访问至少一个地标的最短迁移轨迹;步骤s134:根据最短迁移轨迹,使用b样线条生成全局飞行路径。在上述步骤s131中,对于仅包含一个地标的情况,可以生成出入方向不同的两种访问顺序。在上述步骤s132中,使生成的图结构位于地标外空间可以避免迁移轨迹碰撞地标。图结构中,方向相反的两个节点对应无人机运动方向相反的局部飞行路径。每个地标的所有局部飞行路径对应一个节点簇,每个地标的所有局部飞行路径对应的方向相反的一对节点构成一个节点簇。在上述步骤s133中,对于每个的一种局部飞行路径和一种地标访问顺序,可以得到一个最短迁移路径。在上述步骤s134中,使用b样线可以生成更平滑的全局飞行路径。实施例中,在上述步骤s130中,定义的全局飞行路径的代价函数可以表示为:其中,q'表示全局飞行路径的代价函数,可与局部飞行路径的代价函数q具有相同或相似的形式。地标m的局部飞行路径和地标m'的局部飞行路径之间的迁移路径,表示迁移路径的平均曲率,表示迁移路径的视角方向的平均变化,表示迁移路径的长度。图5是本发明另一实施例的无人机飞行路径生成方法的流程示意图。如图5所示,在步骤s110之前,即,根据场景中地标的关键视角集合生成至少一个有序关键视角子集之前,还可包括:步骤s150:接收场景中地标的至少一个关键视角,用于生成关键视角集合,其中,至少一个关键视角包含必选关键视角和/或可选关键视角。上述步骤s150中,关键视角集合的关键视角为无序状态。本实施例中,用户可以输入感兴趣的关键视角。而且用户可以指定必选的视角和可选的视角。用户不需要指定关键视角的顺序。以此,可以很好地满足用户的多种需求,且对用户的技能或经验要求不高。实施例中,上述步骤s150中,通过手动控制无人机在实际场景中飞行来指定至少一个关键视角。本实施例中,从实际定点飞行中,可以提取每帧的相机姿势和相机姿态,以此,可以更加忠实地预览视觉内容。实施例中,用户可以使用交互式虚拟场景预览工具来指定关键视角。其他实施例中,可以手动控制无人机在实际场景中飞行,并根据实际视角选择视角关键帧。从实际定点飞行中可以提取每帧的相机的姿势和姿态,从而可以更加忠实地预览视觉内容,而无需详细的场景3d模型。图6是本发明又一实施例的无人机飞行路径生成方法的流程示意图。如图6所示,在步骤s130之前,即,基于局部飞行路径构建广义旅行销售员问题,求解广义旅行销售员问题,得到至少一条访问至少一个地标的全局飞行路径之前,还可包括:步骤s160:通过求解地标的各局部飞行路径的代价函数,确定代价最小的设定数量的局部飞行路径,用于构建广义旅行销售员问题。本实施例中,可以通过计算各局部飞行路径的代价函数的值,筛选出代价较小的一些局部飞行路径。并进一步利用筛选出的局部飞行路径生成无人机飞行路径。以此可以减少可能飞行路径的数量,进而减少后续步骤的计算量。为使本领域技术人员更好地理解本发明,下面将以利用无人机航拍为例说明本发明的实施过程及有益效果。需要预先说明的是,因为相机设置在无人机上,所以对于涉及轨迹、路径、运动等概念时,相机可等同于无人机。a.构建局部相机运动轨迹首先需要说明的是,在给定地标的情况下,基于有序关键视角集合fs构建相机运动轨迹,目标是产生平滑轨迹,该轨迹从有序关键视角集合fs中的第一个关键视角开始,并按照有序关键视角集合fs中剩下的关键视角的顺序,大致通过该些剩下的关键视角。同时,该轨迹能够避免进入靠近地标的区域,防止相机碰撞地标。为了使相机沿着地标的外轮廓移动,并确保相机运动路径不与地标发生冲突,以地标为中心建立局部柱坐标系,并使用包围地标的广义圆柱坐标来进行所需的计算。圆柱体的原点可设于地标的几何中心。为了定义封闭的广义圆柱体的轮廓,首先构建包围地标的外部折线,并用极坐标来(φ,r(φ))表示,然后平滑外部折线,得到的边界曲线。图7(a)至图7(c)是本发明一实施例中基于地标的形状构建广义柱面的示意图。图7(a)示意性显示地标的形状,如图7(a)所示,可将地标的几何中心设为圆柱体的原点。图7(b)示意性显示在极坐标系中使用边界曲线定义一个广义柱面,如图7(b)所示,首先围绕地标构建外部折线。图7(c)示意性显示经过平滑操作后产生柱面外轮廓。实施例中,如果地标与给定的2.5d模型(具有高度的2d形状)具有相同的形状,则可以通过定义一个安全空间宽度参数ε>0来膨胀地标外轮廓获得初始的边界曲线。实施例中,如果地标是一个给定的3d网格模型,则可用p={(px,py,pz)}表示3d网格模型所有顶点的集合,然后在极坐标中将边界曲线定义为:其中,d(·)和φ(·)将2d的点(px,py)转换成相对于地标几何中心的距离和角度。值得注意的是,给定某个方向曲线在这个方向上的点与几何中心的距离r被定义为这个方向上的点与几何中心距离的最大值,从而将3d模型投影到2d平面上,得到2d曲线,如图7(b)所示。接下来,可通过迭代地执行以下操作来平滑和扩展初始的边界曲线,例如,设置迭代次数k=5,可以产生围绕地标的广义圆柱体的平滑轮廓(如图7(c)所示):其中,可以默认设置基于由极径r(φ)定义的广义柱面(公式(2)),可以定义顶点集合p={(px,py,pz)}中顶点(px,py,pz)的圆柱坐标为:φ(p)=φ(px,py)(3)r(p)=d(px,py)/r(φ(p))(4)z(p)=pz/h(5)其中,h是地标高度的最大值。根据定义,在圆柱坐标空间中地标被包围在一个单位柱面中,r≤1且0≤z≤1。实施例中,利用约束r(fi)>1,可以保证关键视角集合fs中的所有关键视角fi都在该单位柱面之外。相机的位置坐标被从直角坐标系转换到圆柱坐标系,并且可使用级别例如为5的b样条线插值计算,连接各关键视角,获得近似的r和z坐标,产生c4平滑的轨迹。如图8所示,在用户给定关键视角f1、f2、f3、f4及f5后所得的飞行路径很好地适应了地标的形状。实施例中,可进一步优化b样线条的控制点,一方面使得路径尽可能经过关键视角,另一方面使得每六个连续控制点的凸包位于单位柱面之外,以此能够防止曲线进入封闭的广义柱面内。如果地标由多个塔组成,如图4所示,当它被视为一个地标时,该地标会被一个广义柱面包围。即使在该地标的某个高度上存在安全飞行空间,但由于边界曲线的限制,最后得到的路径不会进入两个塔之间的区域。实施例中,用户可以通过将多个塔分别指定为独立的地标。在这种情况下,每个塔将被单独的柱形包围,通过将关键视角放在两个塔之间可以得到能够经过它们之间空间的路径。b.评价局部相机轨迹由上述构建局部相机运动轨迹的过程可以看出,通过给定的有序的关键视角集合fs可以构建相机飞行路径。然而,提供有序的关键视角集合是一项具有挑战性的任务,特别是对于经验缺乏的用户,因为在给定有序的关键视角集合时,用户需要自己设想最终飞行路径和所产生的航拍视频。此外,在许多情况下,需要选择包含关键视角集合的哪一些子集,以及这些视角要以什么顺序被访问,这致使指定有序关键视角集合比较复杂。而且,要选择哪一个子集也会受哪个地标先被访问以及哪个地标后被访问的影响。因此,实施例中。通过列举所有可能的关键视角的子集和顺序(根据用户的标签),并量化根据每种子集及顺序产生的飞行路径的质量,可以确定在访问每个地标时使用哪个飞行路径最优(后续说明全局优化过程),以及计算出访问地标的最优顺序。用f={fi|(0<i≤n)}表示某个地标的所有关键视角的集合。实施例中,集合f可由两个子集组成,f=fm∪fo,其中,fm表示强制性关键视角集合(结果飞行路径必须经过的关键视角),fo表示可选择性关键视角集合(结果飞行路径可以经过,也可以不经过的关键视角)。可生成包含所有强制性关键视角fm和包含零个或多个可选关键视角fo的所有可能的集合fs,同时可规定集合fs中的总关键视角数量不超过用户指定的最大值。另外,如果用户没有指定关键视角的具体顺序,可在每个集合fs的子集中生成视角的所有可能的排序。即使所有生成的相机飞行路径都是平滑的,但每条平滑的相机飞行路径的质量仍然存在差别。实施例中,对飞行路径进行直观评价的标准可包括:(i)更喜欢飞行路径中相机保持低曲率的移动,并以平滑的方式改变飞机的朝向和相机的倾斜度。(ii)飞行路径保持一定的单调性是比较好的,所以无人机应避免交替增加和减少其高度太多次,或交替增加和减少距离地标的距离。(iii)详细的拍摄地标的更长飞行路径更受人喜爱。基于上面标准,可用代价函数来评价飞行路径的质量,例如,可定义一条飞行路径tj的代价如下:κj衡量的是路径tj的平均曲率,vj计算路径中连续两个相机视角方向的平均角度。实施例中,可先对飞行路径进行密集采样,例如,每10米一个采样点,然后计算κj和vj。权重系数αj取决于飞行路径中飞行高度的局部高度极值数量(局部路径上的点的z坐标值的局部最大值或最小值的数量)和路径上的点离地标几何中心点的距离。公式(6)的最后一项的值随着需要详细拍摄的地标的路径长度的增加而减少,对于一般的地标反之亦然,即:需要详细拍摄的地标该公式(6)倾向于选择长的路径,不需要详细拍摄的地标该公式(6)倾向于选择短的路径。ok=0时路径越长,公式(6)中最后一项的值越小;ok=1时路径越短公式(6)中最后一项的值越小。通过设置ok=0可以实现前一种情况,通过设置ok=1可以实现后一种情况。实施例中,可以对κj,vj和lj的值进行归一化,使得它们对于每个地标的最大值为1。使用上述代价函数(公式(6))可以评估根据不同有序关键视角集合fs计算得到的所有局部相机飞行路径的质量。实施例中,可将代价函数的计算推迟到后续的全局优化阶段,而不是简单地通过计算代价函数从每个地标对应的候选局部路径中选择代价最低的局部轨迹。以此,可以同时计算局部轨迹选择和全局地标排序的最佳组合,从而缩短计算时间。为了减少搜索空间,实施例中,可只为每个地标保留最低成本的设定数量j(例如j≤4)的局部飞行路径,并舍弃其他路径。c.全局相机运动路径规划对于每个地标可构建具有分数最高(代价最低)的候选局部路径集合tm={tjm},其中,候选局部路径的个数||tm||≤j。本方案的目标是确定地标的访问顺序,并为每个地标选择一个局部飞行路径,使得所得相机飞行路径的总体代价最小。上述问题是组合优化问题,所以,实施例中,可通过将该问题构建为广义旅行销售员问题来解决(gtsp或称为settsp(stsp))。给定一个具有几个不相交的子节点(簇)的图,stsp的目标是找到一个最短的路径,在这个回路中销售员每次访问每个簇一次。标准tsp可以被视为stsp的特殊情况。实施例中,每个局部路径可对应stsp中图结构的两个节点,因为每条局部路径包含一个入点和一个出点,所以相机可以在两个方向上移动。与局部路径集合tm中所有局部路径对应的节点在图中形成一个节点簇。图的每条边对应于将拍摄地m的局部路径tjm的末端连接到拍摄地标m'的局部路径tjm'的始端的迁移轨迹tjj'mm'(如图9所示)。每条迁移路径对应于图中的两个有向边。每个节点(局部路径)的代价可由公式(6)得出,而迁移路径的代价可以用类似的方式定义。图9是本发明一实施例中图结构示意图。图9的(a)部分显示包含两条局部飞行路径的图结构。每条局部飞行路径对应两个节点,包括一个入点和一个出点。两条局部飞行路径有4种连接方式,即该两条局部飞行路径之间存在4条可能的迁移路径。图9的(b)部分显示包含四条局部飞行路径的图结构,每个地标对应的候选局部路径集合被定义为图的结点,每个结点是至少一个候选路径形成的簇(集合)。构建好图结构后,将构建平滑无碰撞的迁移路径,并为其定义相关的代价函数。给定两个局部候选路径,地标m的局部飞行路径为tjm,地标m'的局部轨迹为tj'm'。在坐标系中生成一个网格空间,在该网格空间中构建包含几个局部候选路径的簇且不覆盖障碍物的图结构,并利用该图结构计算迁移轨迹tjj'mm'。然后,使用dijkstra算法计算从包含tj的末端的单元到包含tj'的始端的单元的最短路径。最后,使用例如级别为5的b样条线来产生平滑的迁移路径。一对局部飞行路径tjm和tj'm'可以使用四条不同的迁移路径连接起来。每个地标m可能具有很多个候选局部路径,多达j个,并且在每对局部路径之间有四条可能的迁移路径,所以地标m和地标m'之间的迁移路径的数量最大可为4×j2。与局部路径类似,长度较短和曲率较低的迁移路径有利于航拍。因此,迁移路径tjj'mm'的代价函数定义可为:其中,κjj'mm'、vjj'mm'和ljj'mm'分别表示轨迹的平均曲率、相机视角方向的平均变化和路径的长度。实施例中,用户需要指定应该包含在航拍视频中的一组地标,并且指定每个地标对应的关键视角的集合,每个关键视角包含相机位置和方向信息。关键视角可使用交互式虚拟场景预览工具来指定,该工具使用场景的3d模型呈现从各种视角观看的场景预览图,如图10(a)和图10(b)所示。另一实施例中,可手动控制无人机在实际场景中飞行,并根据实际视角选择关键帧。从实际定点飞行中,可以提取每帧的相机姿势和相机姿态,以此,可以更加忠实地预览视觉内容,而无需详细的场景3d模型。图10(a)是本发明一实施例中场景中地标的多条局部路径示意图。如图10(a)所示,为每个地标指定强制性关键视角和可选性关键视角后,每个地标可以有4条局部飞行路径。图10(b)是本发明一实施例中场景中地标的最优局部路径示意图。如图10(b)所示,计算出最优迁移路径,并用最优迁移路径连接多个局部路径可得到最后的全局路径。实施例中,通过连接得到的局部运动路径和迁移轨迹可以得到最终的无人机飞行路径。用户可以将每个关键视角标记为强制性或可选性。每个地标可以被标记为应仔细或随意观察的属性,表明所得到的视频应花费更多时间观察当前指定的地标或者花费较少时间观察指定的地标。在没有这种偏好的情况下,可平等对待所有选定的地标,并将所有关键视角视为强制性的。上述场景可以是一个2.5d模型的场景,其中应包括地标,以及应考虑到的任何其它对象,以避免无人机碰撞场景中的物体。在场景模型中,可以指定地标集合以及对应每个地标的一系列关键视角。运动轨迹的计算主要包括两个阶段。在第一阶段,为每个地标生成候选局部轨迹或局部摄像机移动的集合,如图10(a)所示。每个候选相机移动轨迹大约经过用户指定的关键视角子集中的各个关键视角,并且该候选相机移动轨迹与代价相关联。在第二阶段,目标是为每个地标选择一个局部相机运动轨迹,并确定连接这些局部轨迹的最佳顺序,根据需要生成连接轨迹。这一阶段通过组合优化,并通过构建和解决集旅行推销员问题实现。在优化中,尝试最小化所选局部相机移动轨迹的代价的总和以及连接轨迹的成本,所得轨迹如图10(b)所示。下面将利用本发明实施例方法的应用实例说明本发明。a.无人机系统使用便携式的无人机djimavicpro来拍摄航拍视频。无人机的飞行运动包括:沿着水平轴的向前、向后、向左或向右移动,增加和降低飞行高度,以及顺时针或逆时针改变飞行方向(如图11的(a)部分所示)。朝向控制方位是-180度到180度。俯仰角调整范围是-90度到0度。配备4k/30fps1200万像素的摄像头,由3轴机械平衡环稳定。摄像机倾斜度可以通过程序控制在0度到90度之间,如图11的(b)部分和(c)部分所示。可使用djiwaypointmissionsdk开发一个app(应用程序)来自动控制无人机和相机,让无人机自动地沿着生成的路径飞行和拍摄。使用该sdk,可以指定多达99个路径点(无人机飞行的物理位置)的序列。同时可以为每个路径点指定所需的机身朝向和相机倾斜角。然后,无人机以恒定的预设速度从一个路径点到另一个路径点移动,调整高度、机身朝向和相机倾斜度。因此,给定相机飞行路径,可以在路径上采样得到多达99个采样点,得到了包含机身朝向和相机倾斜角还有飞机三维位置信息的路径点。无人机在实际飞行时会经过每一个采样点,这意味着无人机飞行的路径接近于本方案所生成的平滑轨迹。b.航拍视频现实中,在使用手动控制来驾驶无人机的情况下,即使是一个看似简单的飞行路径也可能难以执行。例如,通过在螺旋轨迹上指定5个关键视角(如图12所示),规划沿螺旋轨迹拍摄建筑物的任务。即使是经验丰富的无人驾驶操作员也无法完全按照所需的飞行路径顺利、准确地驾驶无人驾驶飞机。相比之下,本发明在广义柱坐标中,使用对这5个关键视角进行平滑插值,能够成功产生一条平滑的螺旋状飞行路径,实际飞行中无人机沿着生成的路径飞行和拍摄,结果也得到了令人满意的航拍视频。图13显示利用本发明方法生成的一条无人机飞行路径。给定几个地标和一些关键视角(两侧图像展示了对应的关键视角),为每个地标生成可行的局部飞行路径,决定一个理想的飞行顺序,并使用迁移路径把所有局部飞行路径连接成一条连续的全局飞行路径。图14显示深圳湾的场景中的无人机飞行路径,该飞行路径包含3个地标和11个指定的关键视角。第5号相机被指定为可选择性关键视角,其他相机被指定为强制性关键视角。对应关键视角的画面展示在图14中最上方的11幅图中。图15显示大学校园的场景中的无人机飞行路径,该飞行路径包含4个地标和20个指定的关键视角。第12号和第16号相机被指定为可选择性关键视角,其他相机被指定为强制性关键视角。对应的关键视角展示在图15中最上方的20幅图中。图13、图14和图15分别显示了三个实际场景。图10(b)显示了一个虚拟场景。如该些图所示,测试场景包含不同形状和不同大小的地标。表1给出了这些测试场景的详细统计数据。如表1所示,测试场景的数据指定了:地标数量(#l),每个地标对应的关键视角数量(#kv),采样的路径点数量(#wp),每相邻两个路径点之间的距离(dω),局部飞行路径计算时间(tl),全局飞行路径计算时间(tg)。图号#l#kv#wpdωtltg10(b)46,3,3,69915≈25s≈12m1433,3,59920≈10s≈8m1546,4,4,69935≈35s≈20m1335,5,5--≈15s≈5m表1测试场景的数据关键视角的指定有两种方法:①使用交互式预览工具在虚拟场景中指定关键视角;②在真实场景中通过探索性飞行捕获关键视角。探索性飞行是手动控制的,因此相机轨迹通常相当复杂,高度不平滑。此外,有些场景是通过几次不同的探索性飞行得到的。因此,用户选择的关键视角的集合不一定具有明确的自然排序。关键视角的选择和其顺序的确定可以通过本发明的方法自动生成。关键视角和完整的飞行路径可在图14和15中得到显示。视频经过加速×4倍或×8倍,相机运动也很平滑,地标之间的大部分过渡都是自然的。c.用户学习可以用不同的定性标准来评估根据本发明得到的航拍视频的两个版本。在自动版本下,用户只需指定关键视角,无需指定顺序,使用本发明的方法,将选择的无序的关键视角插值连接起来生成自动相机飞行路径。在手动版本下,用户需要指定关键视角,并确定其顺序,然后以与自动版本相同的方式计算内插路径。因此,这两个版本的不同之处仅在于选择和排序关键视角的方式,跟插值方式无关。在用户研究中,6名学生被分成两个平等的组。第一组的学生设计一条拍摄单一地标的路径,包含10个关键视角,如图16所示,使用自动版本。第二组的学生设计一条拍摄3个地标的路径(逐个访问拍摄),每个地标含有五个关键视角,如图17所示,使用手动版本。然后切换版本和任务。自动和手动用户在同一个任务中共享同一组输入的关键视角。用户研究中,设计了7个等级的李克特量表,每个参与者通过回答四个问题来评估他或她执行的两项任务中每一项的结果:(a)您对生成路径的航拍结果的满意度(satisfaction)如何?(b)您觉得规划一条路径有多困难(difficulty)?(c)您觉得生成的路径质量(quality)怎么样?(d)该工具如何影响您的创造力(creativity)?研究结果如图18和图19所示(图18显示手动版本的评价结果,图19显示自动版本的评价结果),结果显示出在难度方面具有重要差异:自动版本中,第一项和第三项在4(中性)至6(非常容易)范围内,而手动版本第一项和第三项在2(非常困难)到4(中性)范围内。在质量方面也有显著差异:手动版本的分数范围在2(一般)到4(好),而自动版本分数在5(非常好)到6(优)的范围内。在参与研究的用户中,每组中有一人具有驾驶无人机的经验。结果还表明,自动版本在满意度和创造力方面更好。实施例中,给定一个指定地标的所有可能的关键视角的集合,可自动生成一些可能的相机运动路径。每条相机运动路径基本经过大部分关键视角,同时还能避免碰撞。每条相机运动路径都可由对应的代价来衡量其质量。这些代价可通过结合一些相机运动质量标准计算得到。通过为每个地标选择一条质量较高的局部相机运动路径,并使用平滑的迁移路径将它们连接在一起,能够生成一条能访问和拍摄所有地标的全局连续飞行路径。相机移动的最佳顺序是通过构建和解决广义tsp问题获得的,其中,在tsp问题中,一组城市由几个群集组成,而最优的路径必定是推销员在每个群集中访问一个城市而得到的路径。用户可以轻松地为每个地标选择一些有趣的关键视角,而得到一条完整的有序的关键视角的序列。通过对它们插值可得到令人满意的无人机飞行路径。用户指定每个地标的可能关键视角的超集,不需要指定关键视角的顺序,将相机围绕每个地标移动的设计和整个飞行路径的规划留给本方案解决。以此,无人机摄影师能够专注于应该由视频捕获的视觉内容,而不是专注于较底层的相机轨迹的精确设计,或者同时进行驾驶无人机和控制相机拍摄这两种复杂操作。本方案为于航拍摄影和无人机路径规划解决了一个普遍存在问题,使得地标的访问顺序不需要受用户限制。由用户提供的视角被组合以产生典型的相机运动航拍视频序列,从而能够为新手用户创建更好质量的视频序列。简言之,本发明实施例的方法具有如下优点:1)给出了一种新型的高级无人机轨迹设计方法,可以生成一个平滑的飞行路径,用于连续地拍摄指定地标群的航拍视频。2)只需用户简单的输入拍摄地标所想要的关键视角,无需设计整个航拍路径的顺序,就能自动生成平滑的飞行路径,自动化程度高。与手动飞行相比,具有极大的便捷性,减少了新手用户的操作难度,以及提供了相当好的拍摄结果。3)在广义柱坐标下计算地标外型的边界曲线,添加了约束,能够避免局部路径与地标产生冲突。4)用b样条线连接单个地标对应的关键视角,使得局部路径尽可能的平滑。5)将求解迁移路径的问题转化为一个stsp问题,通过构建stsp求解器进行全局组合优化,最终有效得到迁移路径和地标访问顺序。6)交互简单。用户不需要在复杂的三维空间中编辑三维路径,基本不需要设置参数,只需要按照给定的步骤操作就能得到相应的结果。7)路径效果优秀。在几个不同的场景生成全局无人机路径,并进行实地飞行,得到的航拍视频都非常满意。基于与图1所示的无人机飞行路径生成方法相同的发明构思,本申请实施例还提供了一种无人机飞行路径生成装置,如下面实施例所述。由于该无人机飞行路径生成装置解决问题的原理与无人机飞行路径生成方法相似,因此该无人机飞行路径生成装置的实施可以参见无人机飞行路径生成方法的实施,重复之处不再赘述。图20是本发明一实施例的无人机飞行路径生成装置的结构示意图。如图20所示,本实施例的无人机飞行路径生成装置,可包括有序关键视角生成单元210、局部飞行路径生成单元220、全局飞行路径生成单元230及无人机飞行路径生成单元240,上述各单元顺序连接。有序关键视角生成单元210,用于:根据场景中地标的关键视角集合生成至少一个有序关键视角子集;局部飞行路径生成单元220,用于:根据有序关键视角子集中顺序排列的关键视角生成地标的局部飞行路径,并定义局部飞行路径的代价函数;全局飞行路径生成单元230,用于:基于局部飞行路径构建广义旅行销售员问题,求解广义旅行销售员问题,得到至少一条访问至少一个地标的全局飞行路径,并定义全局飞行路径的代价函数;无人机飞行路径生成单元240,用于:根据局部飞行路径的代价函数和全局飞行路径的代价函数生成总体代价函数,求解总体代价函数,并根据求解结果选择局部飞行路径和全局飞行路径生成无人机飞行路径。图21是本发明一实施例中局部飞行路径生成单元的结构示意图。如图21所示,局部飞行路径生成单元220,可包括:地标柱面生成模块221和局部飞行路径生成模块222,二者相互连接。地标柱面生成模块221,用于:在广义柱坐标系下建立包围地标的柱面;局部飞行路径生成模块222,用于:在关键视角的位置在广义柱坐标系中的极径大于柱面的极径的约束条件下,使用b样线条进行插值计算,连接有序关键视角子集中顺序排列的关键视角的位置,生成地标的局部飞行路径。图22是本发明一实施例中地标柱面生成模块的结构示意图。如图22所示,地标柱面生成模块221,可包括:边界线构建模块2211、扩展及平滑模块2212及柱面构建模块2213,上述各模块顺序连接。边界线构建模块2211,用于:以地标为中心建立广义柱坐标系,在广义柱坐标系的平面极坐标下构建地标的地面投影的边界线;扩展及平滑模块2212,用于:扩展和平滑边界线,生成地标的地面投影的边界曲线;柱面构建模块2213,用于:在广义柱坐标系下,基于边界曲线构建地标的柱面。图23是本发明一实施例中全局飞行路径生成单元的结构示意图。如图23所示,全局飞行路径生成单元230,可包括:地标顺序生成模块231、图结构生成模块232、迁移轨迹生成模块233及全局路径生成模块234,上述各模块顺序连接。地标顺序生成模块231,用于:生成场景中至少一个地标的各种访问顺序;图结构生成模块232,用于:根据局部飞行路径生成地标对应的方向相反的两个节点,并根据至少一个地标对应的方向相反的两个节点和访问顺序生成位于地标外空间的图结构;迁移轨迹生成模块233,用于:基于图结构,求解广义旅行销售员问题,得到访问至少一个地标的最短迁移轨迹;全局路径生成模块234,用于:根据最短迁移轨迹,使用b样线条生成全局飞行路径。本发明实施例还提供一种计算机可读存储介质,如图24所示,其上存储有计算机程序,该程序被处理器执行时实现上述各实施例所述方法的步骤。本发明实施例还提供一种计算机设备,如图25所示,计算机设备300包括存储器310、处理器320及存储在存储器310上并可在处理器320上运行的计算机程序,所述处理器320执行所述程序时实现上述各实施例所述方法的步骤。综上所述,本发明实施例的无人机飞行路径生成方法、装置、存储介质及设备,通过根据关键视角集合生成可能的有序关键视角子集,可使用户不必指定关键视角的顺序。通过构建广义旅行销售员问题,可以确定多条路径最短的全局飞行路径。通过将每个局部飞行路径与其代价函数相关联,可以确定较佳的局部飞行路径。通过将每个全局飞行路径与其代价函数相关联,可以确定较佳的全局飞行路径。通过总体代价函数可以兼顾较佳的局部飞行路径和较佳的全局飞行路径,生成最优的无人机飞行路径。因此,用户可以轻松地为每个地标选择一些有趣的关键视角,而得到一条完整的有序的拥有关键视角的序列,可以利用它们得到令人满意的无人机飞行路径。在本说明书的描述中,参考术语“一个实施例”、“一个具体实施例”、“一些实施例”、“例如”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。各实施例中涉及的步骤顺序用于示意性说明本发明的实施,其中的步骤顺序不作限定,可根据需要作适当调整。本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页12