拍摄方法、装置和无人机与流程

文档序号:19942748发布日期:2020-02-14 23:23阅读:327来源:国知局
拍摄方法、装置和无人机与流程

本发明涉及拍摄领域,尤其涉及一种拍摄方法、装置和无人机。



背景技术:

环绕拍摄是航拍构图手法中常用的一种拍摄方案,拍摄过程中,无人机会围绕“兴趣点”做圆周运动,并可以在此过程中随意拍摄目标。如果需要实现环绕拍摄,不仅需要控制无人机在目标附近周旋,还要调整无人机航向和云台的俯仰角度以实现更好的构图。单个操作者在完成这种拍摄时,需要较高的操作技巧。

为了方便单个操作者完成环绕拍摄,基于gps打点的自主“兴趣点环绕”功能应运而生,简称为poi(英文全称:pointofinterest)。poi需要操作者有着较为娴熟的操作技巧,在完成无人机环绕的轨迹变换同时,还要操作无人机上的拍摄模块的朝向,从而保证拍摄平滑稳定。而现有自动poi一般采用gps信息,由于gps信息有偏差,所以拍摄的镜头并不能保证构图(比如,把目标放置在构图的中央),且在gps信号比较差的地方(比如,楼宇之间),基于gps的poi就无法使用。另外一种方案是基于视觉自动跟踪环绕目标,一般针对于容易看到全貌的小目标,但对于较为庞大的目标,效果比较差,这是由于无人机在环绕较为庞大的目标的时候只能看到目标的一部分,而无法在任何时刻都观测到目标的全貌,无人机环绕目标拍摄局限性较强。



技术实现要素:

本发明提供一种拍摄方法、装置和无人机。

具体地,本发明是通过如下技术方案实现的:

根据本发明的第一方面,提供一种拍摄方法,应用于无人机,所述方法包括:

基于视觉技术建立目标的三维模型,其中,所述三维模型包括所述目标在不同角度的二维信息以及各二维信息对应的三维信息;

控制所述无人机绕所述目标运动;

获取所述无人机上的拍摄模块拍摄的实时图像;

根据所述实时图像、所述目标在不同角度的二维信息和各二维信息对应的三维信息,调整所述无人机的飞行轨迹和/或所述拍摄模块的拍摄方向。

根据本发明的第二方面,提供一种拍摄装置,应用于无人机,所述装置包括:

拍摄模块、存储装置和处理器,所述拍摄模块和所述处理器电连接;

所述存储装置,用于存储程序指令;

所述处理器,调用所述程序指令,当所述程序指令被执行时,用于:

基于视觉技术建立目标的三维模型,其中,所述三维模型包括所述目标在不同角度的二维信息以及各二维信息对应的三维信息;

获取所述无人机上的拍摄模块跟随所述无人机移动而拍摄的实时图像;

根据所述实时图像、所述目标在不同角度的二维信息和各二维信息对应的三维信息,使所述无人机调整飞行轨迹和/或调整所述拍摄模块的拍摄方向。

根据本发明的第三方面,提供一种无人机,所述无人机包括:

机身,所述机身搭载有拍摄模块;

动力组件,用于驱动所述机身移动;以及

处理器,设于所述机身内,并且所述处理器与所述动力组件电连接;其中,所述处理器用于:

基于视觉技术建立目标的三维模型,其中,所述三维模型包括所述目标在不同角度的二维信息以及各二维信息对应的三维信息;

控制所述无人机绕所述目标运动;

获取所述无人机上的拍摄模块拍摄的实时图像;

根据所述实时图像、所述目标在不同角度的二维信息和各二维信息对应的三维信息,调整所述无人机的飞行轨迹和/或所述拍摄模块的拍摄方向。

由以上本发明实施例提供的技术方案可见,本发明通过视觉技术获得目标的三维模型,在无人机环绕目标运动(尤其是近距离环绕目标运动)的过程中,即使拍摄到的仅仅为目标的局部信息,也可根据三维模型确定出无人机当前与目标之间的位姿关系,从而根据确定出的无人机当前与目标之间的位姿关系,自动调整无人机的飞行轨迹和/或拍摄模块的拍摄方向,使得无人机的构图更加专业,本发明的拍摄方法和装置尤其适用于针对大型目标的近距离环绕拍摄。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中的拍摄方法的流程示意图;

图2是本发明一实施例中的拍摄方法的应用场景图;

图3是本发明一实施例中的拍摄方法的一种具体实现方式的流程示意图;

图4是本发明一实施例中的终端设备的界面示意图;

图5是本发明一实施例中的拍摄方法的另一种具体实现方式的流程示意图;

图6是本发明一实施例中的拍摄方法的又一种具体实现方式的流程示意图;

图7是本发明一实施例中的特征点跟踪算法获取特征点的示意图;

图8是本发明一实施例中的拍摄方法的还一种具体实现方式的流程示意图;

图9是本发明一实施例中的拍摄装置的结构框图;

图10是本发明一实施例中的无人机的结构框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面结合附图,对本发明的拍摄方法、装置和无人机进行详细说明。在不冲突的情况下,下述的实施例及实施方式中的特征可以相互组合。

图1为本发明实施例提供的一种拍摄方法的流程示意图。本实施例的拍摄方法应用于无人飞行器,例如无人机。以所述拍摄方法应用于无人机为例进一步说明。参见图2,无人机包括飞行控制器100、云台200和拍摄模块300,其中,拍摄模块300通过云台200搭载在无人机的机身上。

云台200可以为单轴云台或两轴云台,也可以为三轴云台或四轴云台。本实施例的拍摄模块300不限于传统意义上的相机,具体而言,拍摄模块300可以为影像捕获设备或者摄像设备(如相机、摄录机、红外线摄像设备、紫外线摄像设备或者类似的设备),音频捕获装置(例如,抛物面反射传声器),红外线摄像设备等,拍摄模块300可以提供静态感应数据(如图片)或者动态感应数据(如视频)。

云台200与飞行控制器100通信连接,例如,基于can总线(controllerareanetwork,控制器局域网络)或者其他方式通信连接。可通过飞行控制器100控制云台200的转动,从而控制挂载在云台200上的拍摄模块300的转动。此外,在某些实施例中,拍摄模块300与飞行控制器100通信连接,例如,拍摄模块300与飞行控制器100直接通信连接,或者,拍摄模块300通过云台200与飞行控制器100通信连接。可通过飞行控制器100控制拍摄模块300的工作、从拍摄模块300获取拍摄画面等。

本实施例中,无人机可以包括动力组件400。其中,动力组件400可以包括一个或者多个旋转体、螺旋桨、桨叶、电机、电子调速器等。例如,动力组件400的旋转体可以是自紧固(self-tightening)旋转体、旋转体组件、或者其它的旋转体动力单元。无人机可以有一个或多个动力组件400。所有的动力组件400可以是相同的类型。可选的,一个或者多个动力组件400可以是不同的类型。动力组件400可以通过合适的手段安装在无人机上,如通过支撑元件(如驱动轴)。动力组件400可以安装在无人机任何合适的位置,如顶端、下端、前端、后端、侧面或者其中的任意结合。通过控制一个或多个动力组件400,以控制无人机的飞行。

在某些实施例中,无人机可与终端500通信连接(例如,飞行控制器100与终端500通信连接),终端500可以向无人机、云台200及拍摄模块300中的一个或者多个提供控制数据,并且从无人机、云台200及负载拍摄模块300中的一个或者多个中接收信息(如无人机、云台200或者拍摄模块300的位置及/或运动信息,拍摄模块300捕获的影像数据)。

以下实施例将对拍摄方法进行详细描述。如图1所示,所述拍摄方法可以包括如下步骤:

步骤s101:基于视觉技术建立目标的三维模型。

本实施例的目标是指体积较大的物体,例如,楼宇、山峦、河流、大海等。进一步的,本实施例的三维模型可以包括完整的二维信息和完整的三维信息,也可以包括部分二维信息和部分三维信息。在本实施例中,为了加快对目标进行三维建模的速度,三维模型包括部分二维信息和部分三维信息,从而获得目标的粗略三维模型。具体地,三维模型包括目标在不同角度的二维信息以及各二维信息对应的三维信息。

参见图3,建立目标的三维模型的过程可包括但不限于以下步骤:

步骤s301:控制无人机以大于特定距离的半径绕目标运动。

本实施例的特定距离是指无人机至目标的距离,例如,无人机中心至目标中心的距离。其中,特定距离需要满足无人机上的拍摄模块300能够拍摄到目标的全景图,但特定距离不宜过大,这是由于特定距离过大,拍摄模块300拍摄到的全景图中的目标太小,提取到目标的信息量有限,不利于快速建模。可选的,特定距离可以为400米、500米、600米、700米、800米等。而在无人机飞行过程中,特定距离的大小可不变,也可以变化,具体可根据需要选择。例如,在其中一实施例中,在无人机飞行过程中,特定距离的大小为恒定值,这种情况下,无人机是绕目标做圆周运动的。在另一实施例中,在无人机飞行过程中,特定距离的大小是变化的,例如,无人机绕目标做椭圆形的环绕运动。

步骤s302:获取拍摄模块300针对目标采集的不同角度的全景图。

其中,步骤s302是在步骤s301之后执行的。

本实施例中,不同的角度可以为无人机以大于特定距离的半径绕目标飞行过程中,同一飞行平面上的多个角度,也可以为无人机以大于特定距离的半径绕目标飞行过程中,不同飞行平面上的角度。

本实施例中,获取拍摄模块300针对同一目标在不同时刻采集的全景图,从而获得不同角度的全景图。具体而言,在确定无人机的飞行路径、运行速度和拍摄间隔后,无人机会根据所确定的飞行路径和运行速度飞行,比如,绕行一栋建筑,接着,无人机控制其上的拍摄模块300按照指定的拍摄间隔采集目标的全景图。本实施例中,飞行路径和运行速度可由用户预先设定,也可以为默认的飞行路径和运行速度。本实施例中,拍摄间隔可根据需要设定,例如,拍摄间隔为2s,拍摄模块300每隔2s拍摄拍摄一幅目标的全景图。进一步的,本实施例中,无人机会记录每一幅全景图的拍摄时刻t1、t2、t3….,其中,t1、t2、t3….是按照每一幅全景图的拍摄时刻的先后顺序排列的。需要说明的是,本实施例中,步骤s302可以与拍摄模块300针对同一目标在不同角度采集全景图的同时进行,也可以在拍摄模块300针对同一目标在不同角度采集全景图执行完毕后进行。

步骤s303:根据所获取的不同角度的全景图,获得目标在不同角度的二维信息和各二维信息对应的三维信息。

二维信息包括全景图上每个特征点(featuresextraction)的二维坐标(像素坐标),三维信息包括全景图上每个特征点的二维坐标和深度信息。其中,特征点的像素坐标可以以特征描述子的形式来表征,也可以为能够表征各幅全景图之间的缩放、方向变化、光照变化和畸变等变化关系的其他描述形式。在本实施例中,由于特征描述子对于缩放、方向变化、光照变化和畸变等有较好的适应性,故使用特征描述子来表征特征点的像素坐标,具体的,特征点经过特征描述得到特征描述子。进一步的,特征描述子可采用特征向量来表征。

步骤s303可包括但不限于以下步骤:

(1)从每一幅全景图中提取对应的特征点的特征描述子。

具体可采用sift(尺度不变特征变换,scale-invariantfeaturetransform)、surf(加速稳健特征,speededuprobustfeatures)或gloh(梯度位置方向直方图,gradientlocation-orientationhistogram)从每一幅全景图中获取各全景图的特征点的特征描述子。在本实施例中,由于sift特征描述子对于缩放、方向变化、光照变化,以及略微的仿射畸变都有很好的适应性,故采用sift从每一幅全景图中获取各全景图的特征点的特征描述子。

本实施例中,为降低处理的复杂度,需要对全景图进行预处理,具体地,从每一幅全景图中提取对应的特征点的特征描述子之前,首先,接收终端设备发送的待跟踪目标,再根据所接收到的目标,确定出每一幅全景图中目标对应的目标框(bandingbox)。具体地,拍摄模块300拍摄的全景图可实时显示在终端设备(如智能手机、平板电脑或智能眼镜等设备),参见图4,用户在终端设备点选待跟踪的目标,用户可采用画框的方式对待跟踪目标进行框选,终端设备将待跟踪目标发送至无人机。接着,无人机根据接收到的待跟踪目标,对步骤s302获取的每一幅全景图中的目标对应的目标框,从而获得目标在每一幅全景图中的大概位置。

为进一步加快处理速度,在根据所接收到的目标,确定出每一幅全景图中目标对应的目标框之后,从每一幅全景图中提取对应的特征点的特征描述子之前,还需对所确定出的每一幅全景图中目标对应的目标框进行超像素分割处理,获得对应的像素块。可采用slic(简单的线性迭代聚类,simplelineariterativeclustering)、graph-based(基于图的图像分割,graph-basedimagesegmentation)、ncut(聚类算法,normalizedcutsandimagesegmentation)、turbopixel、quick-shift、graph-cuta和graph-cutb中的至少一种对所确定出的每一幅全景图中目标对应的目标框进行超像素分割处理。本实施例中,获取到对应的像素块后,采用sift、surf或gloh从每一幅全景图对应的像素块获取各全景图对应的特征点的特征描述子。

用户框选出的待跟踪目标的步骤并不是很精准的操作,需要对各像素块进行细微的调整,以提高目标框的精确度。具体的,对所确定出的每一幅全景图中目标对应的目标框进行超像素分割处理,获得对应的像素块之后,对各全景图对应的像素块的边界像素点进行调整。在一可行的实现方式中,当边界像素点位于对应的目标框的像素区域的占比大于或等于预设阈值时,确定该边界像素点为像素块的一部分。而当边界像素点位于对应的目标框的像素区域的占比小于预设阈值时,确定该边界像素点非像素块的一部分。预设阈值可以选择为50%、55%、60%、65%、70%等等,具体可根据需要调整该预设阈值。

(2)根据各幅全景图的特征点的特征描述子,确定每个特征点的三维坐标,及不同角度的全景图之间的位姿关系。

具体的,参见图5,根据各幅全景图的特征点的特征描述子,确定每个特征点的三维坐标,及不同角度的全景图之间的位姿关系包括但不限于以下步骤:

步骤s501:根据各幅全景图对应的特征点的特征描述子,确定采集时刻相邻的两幅全景图之间的变换矩阵。

步骤s502:根据变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,确定当前全景图对应的特征点的三维坐标,及当前全景图与下一采集时刻的全景图之间的位姿关系。在本实施例中,下一采集时刻的全景图是指采集时刻在当前全景图的采集时刻之后,并且与当前全景图的采集时刻相邻的全景图。

参见图6,步骤s501的过程可包括但不限于如下步骤:

步骤s601:针对每一特征点,基于特征点跟踪算法从获取的所有全景图中确定该特征点相关联的目标全景图;

步骤s601通过特征点跟踪算法跟踪不同时刻的全景图之间的特征点,以便计算各特征点的图像特征光流(移动情况)。

在本实施例中,特征点跟踪算法可以为klt(kanade–lucas–tomasifeaturetracker),但不限于此。参见图7,为步骤s302中获取的目标框,例如,全景图a中包括1、2、3、4共4个特征点(实际中远远大于4个),在无人机环绕目标飞行的过程中获得全景图b,全景图a中的特征点4已经不在全景图b的视野中,但是全景图a中的特征点1、2和3还在。继续在无人机环绕目标飞行的过程中获得全景图c,全景图b中的特征点1已经不再全景图c的视野中,但全景图b中的特征点2和3还在。本实施例中,对于特征点1,目标全景图包括全景图a和全景图b,对于特征点2,目标全景图包括全景图a、全景图b和全景图c,对于特征点3,目标全景图包括全景图a、全景图b和全景图c,对于特征点4,目标全景图包括全景图a。当然,全景图a中的特征点1、2和3的在全景图b中的位置、以及全景图b中的特征点2和4在全景图c中的位置均通过klt算法计算获得的。

另外,在步骤s601之后,建立目标的三维模型的过程进一步包括:针对确定出的该特征点的目标全景图,根据特征点跟踪算法,确定该特征点在当前目标全景图中的位置与该特征点在与当前目标全景图相邻的上一时刻的目标全景图中的位置之间的偏移量(displacementbetweentwoimages);根据偏移量,确定当前目标全景图相关联的特征点在当前目标全景图中的位置信息(特征点的位置信息根据该特征点的特征描述子确定)是否准确,即可确定每一特征点的运动轨迹是否准确。具体的,根据偏移量,确定当前目标全景图相关联的特征点在当前标全景图中的位置信息是否准确包括:针对确定出的目标全景图,根据征点跟踪算法,确定该特征点从上一时刻的目标全景图中的位置移动至当前目标全景图中的位置之间的第一偏移量;针对确定出的该特征点的目标全景图,根据征点跟踪算法,确定该特征点从当前目标全景图中的位置移动至上一时刻的目标全景图中的位置的第二偏移量;根据第一偏移量和第二偏移量,确定该特征点在当前目标全景图中的位置信息是否准确。

在一具体实施例中,设定h作为前后两幅目标全景图的偏移量,两幅目标全景图分别为f(x)和g(x)=f(x+h),其中,f(x)为当前幅目标全景图,g(x)为前一幅目标全景图,f(x)和g(x)的采集时刻相邻并且f(x)的采集时刻在g(x)的采集时刻之后。针对f(x)所包含的每个特征点,通过下述公式(1)迭代可以得到每一特征点在前后两幅目标全景图的偏移量h:

公式(1)中,h0为每一特征点首次出现的全景图的偏移量,hk+1为第k幅目标全景图所包含的特征点在第k幅目标全景图和第k-1幅目标全景图的偏移量,w(x)为窗函数,x为特征点。

本实施例中,先令后一幅目标全景图为f(x),前一幅目标全景图为g(x),算出某一个特征点在后一幅目标全景图中的位置相对于前一幅目标全景图中的位置的第一偏移量h,再反过来,计算该特征点在前一幅目标全景图的位置相对于后一幅目标全景图中的位置的第二偏移h’,理论上h=-h’,满足此条件,则说明该特征点在当前目标全景图(即f(x))中的位置信息正确。实际上,本实施例中,|h-h’|在允许的误差范围内时,均认为该特征点在当前目标全景图中的位置信息准确;若|h-h’|在允许的误差范围外时,则认为该特征点在当前目标全景图中的位置信息不准确,需要重新追踪以确定该特征点在当前目标全景图中的准确位置信息。

步骤s602:根据该特征点在采集时刻相邻的两幅目标全景图中的特征描述子,确定该特征点在采集时刻相邻的两幅目标全景图中的位置的映射关系;

步骤s602具体包括:根据该特征点在采集时刻相邻的两幅目标全景图中的位置信息,确定该特征点在采集时刻相邻的两幅目标全景图中的位置的线性映射关系。本实施例中,采用homographymatrix(单应性矩阵,即射影线性变换)来表征该特征点在采集时刻相邻的两幅目标全景图中的位置的线性映射关系。

步骤s603:根据多个特征点在相邻两幅目标全景图中的位置的映射关系,确定采集时刻相邻的两幅全景图之间的变换矩阵。

在上述步骤中,参见图7,根据klt的结果,能够得到全景图b中特征点1、2和3的准确位置,然后根据征描述子1、2和3在全景图a和全景图b的位置,计算出全景图b与全景图a之间的变换矩阵hab。

例如,在全景图a中,特征点1的位置为pa,在全景图b中,特征点1的位置为pb,其中,则:

pb′=habpa;

其中,

在本实施例中,可以将hab归一化,整体除以h33,所以hab就是8个未知数,需要至少4个特征点来解算。

此外,在步骤s603之后,步骤s502之前,根据当前全景图与上一采集时刻的全景图之间的变换矩阵,更新当前全景图中目标对应的目标框,例如,根据图7中的全景图b与全景图a之间的变换矩阵hab,以及全景图a中的特征点,更新全景图b中的目标框,获得新的目标框。

进一步的,根据当前全景图与上一全景图之间的变换矩阵,更新当前全景图中目标对应的目标框之后,步骤s502之前,采用sift、surf或gloh从当前全景图的更新目标框中提取新的特征点的特征描述子,比如,全景图b中的特征点5,就是更新目标框中新加入的特征点(上一幅全景图的目标框中不存在该新加入的特征点),再采用sift、surf或gloh图区特征点5的特征描述子。而全景图a中的特征点4在全景图b中观测不到,就去除。全景图c,重复全景图a至全景图b的步骤,去掉观测不到的特征点1,新加入特征点6。

当然,在实际使用过程中,计算相邻两幅全景图之间的变换矩阵至少需要4个点,上述实施例只是举例说明更新过程,实际过程中也每幅全景图不会只提取3个特征点,一般对每幅全景图提取几十、上百个特征点。本实施例中,可根据需要调整全景图数量、特征点的数量等。

步骤s502具体包括:根据变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,采用bundleadjustment算法(集束调整算法)估算当前全景图对应的特征点的三维坐标,及当前全景图与下一采集时刻的全景图之间的位姿关系。

一般拍摄模块300的模型:

其中:

[u,v,1]t表示homogeneousimagecoordinates(相机坐标系)中的2d点;

[xw,yw,zw,1]t表示worldcoordinates(世界坐标系,包括x轴、y轴和z轴)中的3d点;

矩阵k称为cameracalibrationmatrix,即每个拍摄模块300的内参intrinsicparameters;

对于finiteprojectivecamera来说intrinsicmatrixk包含了5个内参

其中,αx=fmx,αy=fmy,f为拍摄模块300的焦距,mx、my分别为x轴和y轴方向上单位距离的像素数,γ为x轴和y轴之间的畸变参数(例如,当拍摄模块300为ccd相机时,像素非正方形),μ0、v0为光心位置;r为拍摄模块300在两个相邻时刻所采集的两幅图像之间的旋转变换关系r(rotation,即旋转变换矩阵);t(translation)为两个相邻时刻所采集的两幅图像之间的位移变换关系;r和t为拍摄模块300的外参(extrinsicmatrix),表达的是三维空间中,世界坐标系到相机坐标系的旋转与位移变换(transform)。

本实施例中,位姿关系包括相邻两幅全景图之间的旋转变换关系r以及平移变换关系t。其中,bundleadjustment算法的公式如下:

在公式(3)中,n个3d点在m个view(m幅连拍全景图上,能够连续track的n个3d点);

vij:如果特征点i在第j幅全景图(imagej)上有映射,则vij=1,否则vij=0;

aj为每个imagej的参数,包括r和t,以及拍摄模块内参k(这里是同一个拍摄模块300连拍的多幅全景图,故k不变);

每个3d点用bi表示,第i个点bi在第j幅全景图上的投影即为xij;

q(aj,bi):点i在imagej上,通过aj计算的预计投影(predictedprojection);

向量xij:第j幅全景图(imagej)上的第i个特征点的真实投影(projection);

d(x,y):向量x和向量y之间的欧式距离。

针对上述步骤中,klt追踪的特征点使用bundleadjustment算法,计算出每个3d点的相对位置(无scale),即bi,以及每幅全景图的位姿关系,即aj。

为了减少迭代次数,加快bundleadjustment算法收敛时间,同时减少出错的概率,进一步的,在根据变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,采用bundleadjustment算法估算当前全景图对应的特征点的三维坐标,及当前全景图与下一采集时刻的全景图之间的位姿关系之前,通过无人机上的视觉模块(如vo,visualodometry,或者,vio,visualinertialodometry)和惯性测量单元(imu、inertialmeasurementunit)、或者无人机上的导航系统(例如,gps或北斗等)和惯性测量单元、或者无人机上的视觉模块、导航系统和惯性测量单元,获得相邻全景图之间的位姿关系。根据变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,采用bundleadjustment算法估算当前全景图对应的特征点的三维坐标,及当前全景图与下一采集时刻的全景图之间的位姿关系,具体包括:将位姿关系作为bundleadjustment的初始值;根据变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,估算当前全景图对应的特征点的三维坐标,及当前全景图与下一采集时刻的全景图之间的位姿关系。本实施例首先通过无人机上的视觉模块和惯性测量单元、或者无人机上的导航系统和惯性测量单元、或者无人机上的视觉模块、导航系统和惯性测量单元给出两幅全景图之间的粗略位姿关系,把这个粗略位姿关系作为bundleadjustment算法的初始值,代入计算,减少迭代次数,加快算法收敛时间,同时减少出错的概率。

此外,还需要说明的是,当前全景图对应的特征点的三维坐标,及当前全景图与下一采集时刻的全景图之间的位姿关系的估算也可采用其他算法,不限于本实施例的bundleadjustment算法。

至此,即可确定目标的中心位置,根据bundleadjustment算法获得的结果是以第一幅全景图的位置作为坐标原点,接着,需要将整体建模得到的特征点的特征描述子全部转换到以目标的中心为起始坐标的坐标系上,从而获得目标的三维模型(以特征描述子、特征向量的形式存储)。

在后续无人机环绕目标飞行过程中,可将当前图像的特征向量与三维模型中的特征向量相比较,从而得出相对的位置,完成拍摄模块300朝向的调整与拍摄,保证朝向目标的特定位置(如中心位置)拍摄,且由位置规划、反馈,可以实时修正无人机的飞行轨迹,从而更加精准、平滑的完成整个飞行过程,具体可参见步骤s102至步骤s103。

步骤s102:控制无人机绕目标运动;

该步骤中,无人机可环绕目标运动,例如,无人机可环绕目标做圆周运动,无人机也可环绕目标做椭圆形或其他形状的环绕运动。

由于无人机远距离环绕目标运动时,无人机能够根据拍摄模块300拍摄到的图像较为快速确定其与目标之间的相对位置,从而控制无人机的飞行轨迹和拍摄模块300的朝向,而无人机近距离环绕目标运动时,无人机根据拍摄模块300拍摄到的图像不能确定其与目标之间的相对位置,故无法随时调整无人机的飞行轨迹和拍摄模块300的朝向,以获得较为合适的构图。故本实施例中,相对步骤s101中的无人机绕目标运动,步骤s102中无人机环绕目标运动的距离较小,拍摄模块300拍摄到的为目标的局部图像。

步骤s103:获取无人机上的拍摄模块300拍摄的实时图像;

步骤s103中,可获取拍摄模块300针对同一目标采集的不同角度的实时图像,也可获取拍摄模块300针对同一目标在不同时刻采集的全景图,具体原理与步骤s302类似,此处不再赘述。

步骤s104:根据实时图像、目标在不同角度的二维信息和各二维信息对应的三维信息,调整无人机的飞行轨迹和/或拍摄模块300的拍摄方向。

其中,步骤s104之前,采用sift、surf或gloh从实时图像中提取实时图像对应的特征点的特征描述子,实时图像对应的特征点的特征描述子的提取过程与步骤s303中的提取全景图中的特征点的特征描述子的过程类似,此处不再赘述。需要说明的是,本步骤中,提取实时图像对应的特征点的特征描述子所采用的算法需要与步骤s303中的提取全景图中的特征点的特征描述子所采用的算法相一致。

参见图8,步骤s104可以包括但不限于如下步骤:

步骤s801:针对实时图像中的每一特征点,查找三维模型中与该特征点相匹配的特征点的二维信息;

该步骤中,二维信息以特征向量形式体现,具体的,将每一特征点的特征向量与三维模型中的所有特征向量进行比较,获得三维模型中与该特征点最相近的特征向量,从而确定出三维模型中与该特征点相匹配的特征点的二维信息。具体的,针对实时图像中的每一特征点,查找三维模型中与该特征点最接近的特征点的二维信息。如果只是找最匹配的特征点的二维信息,那一定会在三维模型中找到一个最接近的特征点,但该特征点与最接近的特征点是否误匹配,需要进一步判定。比如,数据库包括数字1、5、11、17、25,给定一个数字1.2,那么最接近的是1,认为1.2与1匹配没问题,但是如果给定数字1000,那也能在数据库中找到最接近的数字为25,但明显25与1000相差甚多,并不能算作匹配。在本实施例中,为了避免误匹配,需要做个判定,具体过程包括:

(1)针对实时图像中的每一特征点,确定三维模型中与该特征点最接近的特征点的二维信息,及三维模型中与该特征点第二接近的特征点的二维信息;

(2)根据该特征点至该特征点所匹配到的最接近的特征点的的距离d最近、及该特征点至该特征点所匹配到的第二接近的特征点的的距离d次近,判断该特征点所匹配到的最接近的特征点的是否匹配准确。具体的,d最近是根据该特征点的二维信息和该特征点所匹配到的最接近的特征点的二维信息计算获得的,d次近是根据该特征点的二维信息和该特征点所匹配到的第二接近的特征点的二维信息计算获得的。d最近、d次近的计算方式与现有二维坐标系中两个坐标点之间的距离计算方式相类似,此处不再赘述。

在该步骤中,当d最近、及d次近之间的比值大于比值阈值td时(即满足下述实施例中的公式4),确定出该特征点所匹配到的最接近的特征点的匹配准确;否则,匹配错误。

其中,比值阈值td为工程经验值,可根据实际需要调整。

步骤s802:根据查找到的与该特征点相匹配的特征点所对应的三维信息,确定该特征点的相对位置,及实时图像的相对姿态;

具体的,根据查找到的与该特征点相匹配的特征点所对应的三维信息,采用pnp算法确定该特征点的相对位置,及实时图像的相对姿态,即获得了该特征点的三维信息。

pnp算法是通过一系列世界坐标系(worldcoordinates)的3d点以及图像中对应的像素坐标系(pixelcoordinates)2d点,估算拍摄模块300姿态,也就是需要的位置信息。

其中,[xc,yc,zc,1]t表示cameracoordinates(相机坐标系)中的3d点,公式(5)中的其他参数可参见公式(2),此处不再赘述。

步骤s803:根据各特征点的相对位置,调整无人机的飞行轨迹;

步骤s803中的相对位置可以包括高度、水平距离等,从而获得无人机当前相对目标的位置。例如,在一实施例中,步骤s802能够获得实时图像中每一特征点相对目标的中心位置的高度,根据实时图像中每一特征点相对目标的中心位置的高度,来调整无人机的飞行轨迹。具体的,需要控制无人机从目标的底部环绕运动至目标的顶部,环绕的圈数为10圈,则无人机每圈需要飞行目标高度的1/10,本实施例根据确定的出实时图像中每一特征点相对目标的中心位置的高度,判断出无人机当前至目标底部的高度,再根据判断出的无人机当前至目标底部的高度,调整无人机的飞行轨迹,确保无人机飞行的准确性。

步骤s804:根据实时图像的相对姿态,调整拍摄模块300的拍摄方向,使得拍摄模块300的拍摄方向朝向目标的特定位置。

在该步骤中,相对姿态能够反映出无人机上的拍摄模块300相对目标特定位置的方向。其中,特定位置可以为目标的中心位置,也可以为目标的顶点位置。在本实施例中,特定位置为目标的中心位置,无人机飞行过程中,根据实时图像的相对姿态,控制云台200的姿态(以三轴云台200为例,可控制三轴云台200的偏航角、俯仰角和横滚角,实现对云台200姿态的控制),从而调整拍摄模块300朝向,确保拍摄模块300的镜头始终朝向目标的中心位置,确保拍摄模块300所拍摄到的图像是变化平缓的。

本实施例的拍摄方法的执行主体为无人机,其中,步骤s101可以由无人机上的图像处理单元和飞行控制器100配合执行,具体的,飞行控制器100执行步骤s301,图像处理单元执行步骤s302和步骤s303。步骤s102和步骤s103可由飞行控制器100、和/或云台控制器执行。步骤s104可由图像处理单元和飞行控制器100,具体的,步骤s801和步骤s802可由图像处理单元执行,步骤s803和步骤s804可由飞行控制器100执行。当然,步骤s101、步骤s102、步骤s103和步骤s104也可由设于无人机上的同一独立控制器执行。

本发明实施例的拍摄方法,通过视觉技术获得目标的三维模型,在无人机环绕目标运动(尤其是近距离环绕目标运动)的过程中,即使拍摄到的仅仅为目标的局部信息,也可根据三维模型确定出无人机当前与目标之间的位姿关系,从而根据确定出的无人机当前与目标之间的位姿关系,自动调整无人机的飞行轨迹和/或拍摄模块300的拍摄方向,使得无人机的构图更加专业,本发明的拍摄方法尤其适用于针对大型目标的近距离环绕拍摄。

与上述实施例的拍摄方法相对应,本发明实施例还提供一种拍摄装置。图9是本发明实施例的一种拍摄装置的结构框图。参见图9,该拍摄装置包括:拍摄模块300、处理器110以及存储装置120,其中所述拍摄模块300与处理器110电连接。

所述存储装置120可以包括易失性存储器(volatilememory),例如随机存取存储器(random-accessmemory,ram);存储装置120也可以包括非易失性存储器(non-volatilememory),例如快闪存储器(flashmemory),硬盘(harddiskdrive,hdd)或固态硬盘(solid-statedrive,ssd);存储装置120还可以包括上述种类的存储器的组合。

所述处理器110可以是中央处理器(centralprocessingunit,cpu)。所述处理器110还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。在本实施例中,处理器110可包括一个或多个。可选的,处理器110可以包括图像处理单元、飞行控制器100和/或云台控制器。

所述处理器110,调用所述存储装置120中存储的程序指令,当所述程序指令被执行时,用于:

基于视觉技术建立目标的三维模型,其中,所述三维模型包括所述目标在不同角度的二维信息以及各二维信息对应的三维信息;

获取所述无人机上的拍摄模块300跟随无人机绕所述目标移动而拍摄的实时图像;

根据所述实时图像、所述目标在不同角度的二维信息和各二维信息对应的三维信息,使所述无人机调整飞行轨迹和/或调整所述拍摄模块300的拍摄方向。

在一实施例中,所述处理器110用于:获取所述拍摄模块300跟随所述无人机以特定具有的半径绕所述目标运动并针对所述目标采集的不同角度的全景图;根据所获取的不同角度的全景图,获得所述目标在不同角度的二维信息和各二维信息对应的三维信息。

在一实施例中,所述二维信息为特征点的特征描述子,所述三维信息包括每个特征点的三维坐标,及所述不同角度的全景图之间的位姿关系;所述处理器110用于:从每一幅全景图中提取对应的特征点的特征描述子;根据各幅全景图的特征描述子,确定每个特征点的三维坐标,及所述不同角度的全景图之间的位姿关系。

在一实施例中,所述处理器110从每一幅全景图中提取对应的特征点的特征描述子之前,还用于:接收终端设备发送的待跟踪目标;根据所接收到的目标,确定出每一幅全景图中所述目标对应的目标框。

在一实施例中,所述处理器110根据所接收到的目标,确定出每一幅全景图中所述目标对应的目标框之后,从每一幅全景图中提取对应的特征点的特征描述子之前,还用于:对所确定出的每一幅全景图中所述目标对应的目标框进行超像素分割处理,获得对应的像素块。

在一实施例中,所述处理器110对所确定出的每一幅全景图中所述目标对应的目标框进行超像素分割处理,获得对应的像素块之后,还用于:对各全景图对应的像素块的边界像素点进行调整。

在一实施例中,所述处理器110用于:当所述边界像素点位于对应的目标框的像素区域的占比大于或等于预设阈值时,确定所述边界像素点为所述像素块的一部分。

在一实施例中,所述处理器110用于:采用slic、graph-based、ncut、turbopixel、quick-shift、graph-cuta和graph-cutb中的至少一种对所确定出的每一幅全景图中所述目标对应的目标框进行超像素分割处理。

在一实施例中,所述处理器110用于:采用sift、surf或gloh从每一幅全景图对应的像素块获取各全景图对应的特征点的特征描述子。

在一实施例中,所述处理器110用于:根据各幅全景图对应的特征点的特征描述子,确定采集时刻相邻的两幅全景图之间的变换矩阵;根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,确定所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系。

在一实施例中,所述处理器110用于:针对每一特征点,基于特征点跟踪算法从获取的所有全景图中确定该特征点相关联的目标全景图;根据该特征点在采集时刻相邻的两幅目标全景图中的特征描述子,确定该特征点在采集时刻相邻的两幅目标全景图中的位置的映射关系;根据多个特征点在相邻两幅目标全景图中的位置的映射关系,确定采集时刻相邻的两幅全景图之间的变换矩阵。

在一实施例中,所述特征点跟踪算法为klt。

在一实施例中,所述处理器110用于:根据该特征点在采集时刻相邻的两幅目标全景图中的特征描述子,确定该特征点在采集时刻相邻的两幅目标全景图中的位置的线性映射关系。

在一实施例中,所述处理器110根据当前第二目标全景图对应的特征点在当前第二目标全景图的位置、与当前第二目标全景图对应的特征点在上一采集时刻的全景图中的位置之间的映射关系,确定所述当前第二目标全景图与所述上一采集时刻的全景图之间的变换矩阵之后,根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,确定所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系之前,还用于:根据当前全景图与上一采集时刻的全景图之间的变换矩阵,更新当前全景图中所述目标对应的目标框。

在一实施例中,所述处理器110根据当前全景图与上一全景图之间的变换矩阵,更新当前全景图中所述目标对应的目标框之后,根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,确定所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系之前,

还用于:采用sift、surf或gloh从当前全景图的更新目标框中提取新的特征点的特征描述子。

在一实施例中,所述处理器110用于:根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,采用bundleadjustment算法估算所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系。

在一实施例中,所述处理器110根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,采用bundleadjustment算法估算所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系之前,还用于:通过所述无人机上的视觉模块和惯性测量单元、或者所述无人机上的导航系统和惯性测量单元、或者所述无人机上的视觉模块、导航系统和惯性测量单元,获得相邻全景图之间的位姿关系;所述根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,采用bundleadjustment算法估算所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系,包括:将所述位姿关系作为所述bundleadjustment的初始值;根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,估算所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系。

在一实施例中,所述处理器110根据所述实时图像、所述目标在不同角度的二维信息和各二维信息对应的三维信息,使所述无人机调整飞行轨迹和/或调整所述拍摄模块的拍摄方向之前,还用于:采用sift、surf或gloh从所述实时图像中提取所述实时图像对应的特征点的特征描述子。

在一实施例中,所述处理器110用于:针对所述实时图像中的每一特征点,查找所述三维模型中与该特征点相匹配的特征点的二维信息;根据查找到的与该特征点相匹配的特征点的二维信息所对应的三维信息,确定该特征点的相对位置,及所述实时图像的相对姿态;根据各特征点的相对位置,使所述无人机调整飞行轨迹;根据所述实时图像的相对姿态,调整所述拍摄模块的拍摄方向,使得所述拍摄模块的拍摄方向朝向所述目标的特定位置。

在一实施例中,所述处理器110用于:针对所述实时图像中的每一特征点,查找所述三维模型中与该特征点最接近的特征点的二维信息。

在一实施例中,所述处理器110用于:针对所述实时图像中的每一特征点,确定所述三维模型中与该特征点最接近的特征点的二维信息,及所述三维模型中与该特征点第二接近的特征点的二维信息;根据该特征点至该特征点所匹配到的最接近的特征点的距离、及该特征点至该特征点所匹配到的第二接近的特征点的距离,判断该特征点所匹配到的最接近的特征点是否匹配准确。

在一实施例中,所述处理器110用于:当该特征点至该特征点所匹配到的最接近的特征点的距离、及该特征点至该特征点所匹配到的第二接近的特征点的距离之间的比值大于比值阈值时,确定出该特征点所匹配到的最接近的特征点匹配准确。

在一实施例中,所述处理器110用于:根据查找到的与该特征点相匹配的特征点的二维信息所对应的三维信息,采用pnp算法确定该特征点的相对位置,及所述实时图像的相对姿态。

需要说明的是,可参考上述实施例的拍摄方法对本实施例的拍摄装置进一步解释。

本发明实施例的拍摄装置,通过视觉技术获得目标的三维模型,在无人机环绕目标运动(尤其是近距离环绕目标运动)的过程中,即使拍摄到的仅仅为目标的局部信息,也可根据三维模型确定出无人机当前与目标之间的位姿关系,从而根据确定出的无人机当前与目标之间的位姿关系,自动调整无人机的飞行轨迹和/或拍摄装置的拍摄方向,使得无人机的构图更加专业,本发明的拍摄装置尤其适用于针对大型目标的近距离环绕拍摄。

另外,参见图10,本发明实施例还提供一种无人机,包括机身(未显示)、动力组件400以及处理器110,其中,机身搭载有拍摄模块,动力组件400用于驱动所述机身移动。本实施例的处理器110设于所述机身内,并且所述处理器110与所述动力组件400及所述拍摄模块分别电连接。

所述处理器110可以是中央处理器(centralprocessingunit,cpu)。所述处理器110还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specificintegratedcircuit,asic),可编程逻辑器件(programmablelogicdevice,pld)或其组合。上述pld可以是复杂可编程逻辑器件(complexprogrammablelogicdevice,cpld),现场可编程逻辑门阵列(field-programmablegatearray,fpga),通用阵列逻辑(genericarraylogic,gal)或其任意组合。在本实施例中,处理器110可包括一个或多个。可选的,处理器110可以包括图像处理单元、飞行控制器100和/或云台控制器。

所述处理器110可以实现如本发明图1、图3、图5、图6以及图8实施例中所示的相应方法。

具体的,所述处理器110,用于:基于视觉技术建立目标的三维模型,其中,所述三维模型包括所述目标在不同角度的二维信息以及各二维信息对应的三维信息;

控制所述无人机绕所述目标运动;

获取所述无人机上的拍摄模块拍摄的实时图像;

根据所述实时图像、所述目标在不同角度的二维信息和各二维信息对应的三维信息,调整所述无人机的飞行轨迹和/或所述拍摄模块的拍摄方向。

在一实施例中,所述处理器110用于:获取所述拍摄模块针对所述目标采集的不同角度的全景图;根据所获取的不同角度的全景图,获得所述目标在不同角度的二维信息和各二维信息对应的三维信息。

在一实施例中,所述二维信息为特征点的像素坐标,所述三维信息包括每个特征点的三维坐标,及所述不同角度的全景图之间的位姿关系,所述像素坐标采用特征描述子表征;所述处理器110用于:从每一幅全景图中提取对应的特征点的特征描述子;根据各幅全景图的特征描述子,确定每个特征点的三维坐标,及所述不同角度的全景图之间的位姿关系。

在一实施例中,所述处理器110从每一幅全景图中提取对应的特征点的特征描述子之前,还用于:接收终端设备发送的待跟踪目标;根据所接收到的目标,确定出每一幅全景图中所述目标对应的目标框。

在一实施例中,所述处理器110根据所接收到的目标,确定出每一幅全景图中所述目标对应的目标框之后,从每一幅全景图中提取对应的特征点的特征描述子之前,还用于:对所确定出的每一幅全景图中所述目标对应的目标框进行超像素分割处理,获得对应的像素块。

在一实施例中,所述处理器110对所确定出的每一幅全景图中所述目标对应的目标框进行超像素分割处理,获得对应的像素块之后,还用于:对各全景图对应的像素块的边界像素点进行调整。

在一实施例中,所述处理器110用于:当所述边界像素点位于对应的目标框的像素区域的占比大于或等于预设阈值时,确定所述边界像素点为所述像素块的一部分。

在一实施例中,所述处理器110用于:采用slic、graph-based、ncut、turbopixel、quick-shift、graph-cuta和graph-cutb中的至少一种对所确定出的每一幅全景图中所述目标对应的目标框进行超像素分割处理。

在一实施例中,所述处理器110用于:采用sift、surf或gloh从每一幅全景图对应的像素块获取各全景图对应的特征点的特征描述子。

在一实施例中,所述处理器110用于:根据各幅全景图对应的特征点的特征描述子,确定采集时刻相邻的两幅全景图之间的变换矩阵;根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,确定所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系。

在一实施例中,所述处理器110用于:针对每一特征点,基于特征点跟踪算法从获取的所有全景图中确定该特征点相关联的目标全景图;根据该特征点在采集时刻相邻的两幅目标全景图中的特征描述子,确定该特征点在采集时刻相邻的两幅目标全景图中的位置的映射关系;根据多个特征点在相邻两幅目标全景图中的位置的映射关系,确定采集时刻相邻的两幅全景图之间的变换矩阵。

在一实施例中,所述特征点跟踪算法为klt。

在一实施例中,所述处理器110用于:根据该特征点在采集时刻相邻的两幅目标全景图中的特征描述子,确定该特征点在采集时刻相邻的两幅目标全景图中的位置的线性映射关系。

在一实施例中,所述处理器110根据当前第二目标全景图对应的特征点在当前第二目标全景图的位置、与当前第二目标全景图对应的特征点在上一采集时刻的全景图中的位置之间的映射关系,确定所述当前第二目标全景图与所述上一采集时刻的全景图之间的变换矩阵之后,根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,确定所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系之前,还用于:根据当前全景图与上一采集时刻的全景图之间的变换矩阵,更新当前全景图中所述目标对应的目标框。

在一实施例中,所述处理器110根据当前全景图与上一全景图之间的变换矩阵,更新当前全景图中所述目标对应的目标框之后,根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,确定所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系之前,还用于:采用sift、surf或gloh从当前全景图的更新目标框中提取新的特征点的特征描述子。

在一实施例中,所述处理器110用于:根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,采用bundleadjustment算法估算所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系。

在一实施例中,所述处理器110根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,采用bundleadjustment算法估算所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系之前,还用于:通过所述无人机上的视觉模块和惯性测量单元、或者所述无人机上的导航系统和惯性测量单元、或者所述无人机上的视觉模块、导航系统和惯性测量单元,获得相邻全景图之间的位姿关系;所述根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,采用bundleadjustment算法估算所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系,包括:将所述位姿关系作为所述bundleadjustment的初始值;根据所述变换矩阵、当前全景图对应的特征点的特征描述子、及下一采集时刻的全景图对应的特征点的特征描述子,估算所述当前全景图对应的特征点的三维坐标,及所述当前全景图与所述下一采集时刻的全景图之间的位姿关系。

在一实施例中,所述处理器110根据所述实时图像、所述目标在不同角度的二维信息和各二维信息对应的三维信息,调整所述无人机的飞行轨迹和/或所述拍摄模块的拍摄方向之前,还用于:采用sift、surf或gloh从所述实时图像中提取所述实时图像对应的特征点的特征描述子。

在一实施例中,所述处理器110用于:针对所述实时图像中的每一特征点,查找所述三维模型中与该特征点相匹配的特征点的二维信息;根据查找到的与该特征点相匹配的特征点的二维信息所对应的三维信息,确定该特征点的相对位置,及所述实时图像的相对姿态;根据各特征点的相对位置,调整所述无人机的飞行轨迹;根据所述实时图像的相对姿态,调整所述拍摄模块的拍摄方向,使得所述拍摄模块的拍摄方向朝向所述目标的特定位置。

在一实施例中,所述处理器110用于:针对所述实时图像中的每一特征点,查找所述三维模型中与该特征点最接近的特征点的二维信息。

在一实施例中,所述处理器110用于:针对所述实时图像中的每一特征点,确定所述三维模型中与该特征点最接近的特征点的二维信息,及所述三维模型中与该特征点第二接近的特征点的二维信息;根据该特征点至该特征点所匹配到的最接近的特征点的距离、及该特征点至该特征点所匹配到的第二接近的特征点的距离,判断该特征点所匹配到的最接近的特征点是否匹配准确。

在一实施例中,所述处理器110用于:当该特征点至该特征点所匹配到的最接近的特征点的距离、及该特征点至该特征点所匹配到的第二接近的特征点的距离之间的比值大于比值阈值时,确定出该特征点所匹配到的最接近的特征点匹配准确。

在一实施例中,所述处理器110用于:根据查找到的与该特征点相匹配的特征点的二维信息所对应的三维信息,采用pnp算法确定该特征点的相对位置,及所述实时图像的相对姿态。

此外,本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器110执行时实现上述实施例的拍摄方法的步骤。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)或随机存储记忆体(randomaccessmemory,ram)等。

以上所揭露的仅为本发明部分实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1