具体实施方式
为使本申请的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本申请作进一步详细说明。
本申请以下实施例提供一种无人机航拍图像拼接方法,无需每次拼接时都利用图像特征匹配算法,而是利用已的图像对当前帧进行位姿估计,再将当前帧按照估计出来的位姿与已图像进行拼接。由于位姿主要是通过已有图像估计得到,已有图像是已经完成拼接的图像,其位姿是已知的,且和当前帧的位姿之间存在关系,可以直接利用已有图像直接估计当前帧的位姿,比现有技术采用基于特征的匹配方法(比如LBP、SIFT算法等)计算要简便得多,因而可以大大减少图像拼接整体的计算量,从而提高拼接工作的整体效率。
实际应用中,无人机通常会搭载云台相机,将云台相机拍摄获取的图像传送给地面系统,由地面系统拼接以获取全景图。这里所述的地面系统就是在地面上接收无人机航拍图像,并对这些航拍图像进行拼接的系统,在实际应用中,地面系统可能是一台或多台计算机构成的系统。本申请以下实施例中的方案就是由地面系统实施,实现图像的拼接工作。另外,实际工作中无人机还可以搭载全球定位系统(GPS),在传送图像时将对应的全球定位系统信息一并传送给地面系统。
图1是本申请方法实施例一实现无人机航拍图像拼接的流程图。如图1所示,该方法包括:
步骤S1:获取无人机航拍的一帧图像,将该帧图像作为当前帧。
为描述方便,在本实施例以及本申请其他实施例中,当前需要拼接处理的图像都称为当前帧,而对于已完成拼接图像在拼接中所利用的图像统称为已有图像。
步骤S2:根据已有图像估计当前帧在拟合平面坐标系下的位姿,所述拟合平面由所述已有图像的定向快速旋转(ORB,Oriented fast and rotated brief)特征点所对应的三维点拟合生成,所述已有图像为已完成拼接图像在拼接中所利用的图像。
无人机在航拍过程中,会不停转移位置或者倾斜角度,使得连续拍摄的图像之间存在旋转和平移的关系,因此拍摄的每一幅图像都有对应的位置和姿态,即本步骤所述的位姿。由于图像是连续拍摄的,因此当前帧和已有图像的位姿之间天然地存在某种关联关系,这种关联关系可以利用帧间跟踪方法确定,本步骤就是在已有图像的基础上利用帧间跟踪方法对当前帧的位姿进行估计的。
另外,为了将无人机独立拍摄的图像合理拼接,需要选择一个标准平面,将拍摄的图像先统一到这个标准平面中,才更方便后续拼接。由于无人机所拍摄图像针对的是同一个实际场景,图像中二维像素点对应了实际场景中的三维点。在二维像素点中,有一些特殊的、图像中比较显著的点,比如轮廓点、较暗区域中的亮点、较亮区域的暗点等,这些特殊的点被称为ORB特征点。当然,这些ORB特征点也对应了三维点,根据这些三维点可以拟合为一个平面,拟合而成的平面可以作为标准平面。具体如何进行平面拟合将在后续实施例中进行详细描述。
步骤S3:根据所述当前帧拟合平面坐标系下的位姿计算当前帧与所述已有图像之间的变换关系,根据所述变换关系实现所述当前帧和已完成拼接图像的拼接。
如前面所述,无人机在拍摄过程中不停转移位置和倾斜角度,当前帧和已有图像之间存在某种关联关系。这种关联关系体现于相互之间存在着旋转和平移的变换关系,利用这种变换关系就可以将当前帧和已完成拼接图像相应部分对准,从而实现拼接。拼接完成之后将形成全景图,如果不断获取从无人机传送来的图像,将接收到的图像继续拼接,该全景图的范围将会越来越大。
利用上述方法实施例一绘制出来的全景图未考虑真实尺度或者比例大小这个因素,拼接出来的全景图无法估计在地理环境下的真实尺度。比如全景图中的两点之间测量有1厘米,但是如果不知道比例尺,则无法获知全景图上的1厘米在现实地理环境下的距离应该是多少。因此,在本方案的另一个优选实施例中,可以添加全球定位系统信息,使得绘制出来的全景图具备真实尺度。具体方法是,无人机将航拍到的图像传送给地面系统时,同时也传送相应的全球定位系统信息,所述全球定位系统信息是相对于全球定位系统坐标系下的信息。因此,地面系统在获得当前帧图像同时,也获得了当前帧的全球定位系统信息。
实际应用中,无人机航拍到的图像的位姿可以采用任意的坐标系表示,比如第一关键帧相机坐标系,即拍摄到作为第一个关键帧时所在的相机坐标系。不管无人机在航拍时采用哪种坐标系记录所拍摄到的当前帧的位姿,本申请实施例一步骤S2得到拟合平面坐标系下的位姿之前,可以先将当前帧的位姿转换到全球定位系统坐标系下,再从全球定位系统坐标系下转换到拟合平面坐标系下。这样既可以统一所拍摄到的图像的坐标系,又使图像具备真实尺度。
为了更好地说明本申请方案,下面用方法实施例二进行详细描述。图2是本方法实施例二的流程图。如图2所示,该方法包括:
步骤L1:获取无人机航拍的一帧图像和对应的全球定位系统信息,将该帧图像作为当前帧,所述全球定位系统信息为无人机航拍时在全球定位系统坐标系下的信息。
步骤L2:对获取的当前帧进行图像预处理。
本步骤所述的预处理主要是对图像进行降采样,以此来减少后续的计算量。比如原始图像分辨率为3840*2160,可以降采样为960*540或者1280*1024即可。当然,如果实际应用中不考虑图像分辨率带来的计算量问题,也可以省略本步骤。
步骤L3:判断是否已初始化,如果已初始化,则执行步骤L5;否则,执行步骤L4。
步骤L4:进行初始化过程,之后执行步骤L12。
上述步骤L3和L4的初始化过程是为了后续计算的需要,比如在利用帧间跟踪来估计当前帧位姿时需要一个估计的基础。但并非处理每一帧图像时都需要初始化,在初始化后,后续图像的处理无需执行步骤L4。
步骤L5:根据已有图像进行帧间跟踪估计出当前帧位姿,所述当前帧位姿是相对于已有图像中第一关键帧相机坐标系下的位姿。
无人机航拍过程是连续拍摄的,相邻图像之间的变化应该不大,存在某种变化趋势。本步骤所述帧间跟踪就是利用了这种变化趋势,以此来估计当前帧的位姿。对变化趋势起关键作用的图像在本申请中则称为关键帧,在处理图像拼接过程中的第一个关键帧在本申请中简称为“第一关键帧”。
另外,无人机在进行航拍时,是通过云台上的相机拍摄到图像的。本领域技术人员知道,如果将拍摄到第一个关键帧时的相机坐标作为参考标准,后续拍摄到的图像都可以表示为相对于拍摄第一个关键帧时的相机坐标系的图像。如前所述,拍摄第一个关键帧时的相机坐标系在本申请中简称为“第一关键帧相机坐标系”。按照这种设置,本步骤的当前帧位姿即是相对于第一关键帧相机坐标系下的位姿。当然,实际应用中,云台拍摄的图像只要有统一的坐标系即可,并不一定是第一关键帧相机坐标系。
步骤L6:判断是否需要进行局部优化,如果是,则执行步骤L7;否则执行步骤L8。
步骤L7:进行局部优化过程。
本申请实施例的步骤L6和步骤L7主要是局部优化过程,进行局部优化的原因在于:帧间跟踪过程是根据已有图像来估计当前帧位姿。已有图像中和当前帧关系最紧密的是距离当前帧较近的关键帧以及关键帧中相关的信息(比如和当前帧同时对应的三维点),这里可以将距离当前帧较近的关键帧称为局部关键帧,将局部关键帧ORB特征点和当前帧ORB特征点同时对应的三维点称为局部三维点。但随着无人机拍摄过程不断转移位置,可能某些局部关键帧已经不再与新的当前帧邻近了,某些局部关键帧ORB特征对应的三维点已经不能与当前帧ORB特征点对应了。也就是说,影响当前帧的局部关键帧和局部三维点会不断地变化。
如果帧间跟踪过程需要利用局部关键帧和局部三维点,那么就需要对局部关键帧和局部三维点进行管理,根据变化情况实时进行更新,更新方法即步骤L6~L7所述的局部优化过程。当然,如果帧间跟踪过程不需要利用局部关键帧和局部三维点,则无需对其进行管理,可以省略步骤L6~L7。
步骤L8:判断是否需要进行平面拟合,如果是,则执行步骤L9;否则执行步骤L10。
步骤L9:进行平面拟合过程,之后转到步骤L12。
如前所述,本申请实施例会将当前帧位姿统一到拟合平面坐标系下,因此事先需要建立拟合平面。实际应用中,当关键帧到达一定数量就可以进行平面拟合。建立拟合平面之后,后续图像可以直接利用该拟合平面,无需再重复拟合,可以省略步骤L8~L9。至于需要有多少关键帧以后才进行平面拟合则可以由应用本申请方案的用户自行确定。
步骤L10:根据第一关键帧相机坐标系和对应的全球定位系统坐标系之间的转换关系,将所述当前帧位姿转换到全球定位系统坐标系下的位姿。
步骤L11:根据全球定位系统坐标系和所述拟合平面坐标系之间的转换关系,将所述当前帧在全球定位系统坐标系下的位姿转换到拟合平面坐标系下的位姿,所述拟合平面由所述已有图像的ORB特征点所对应的三维点拟合生成。
这里的步骤L10和L11是进行位姿转换的过程,其目的是将当前帧位姿转换到统一的拟合平面坐标系下。
步骤L12:判断当前帧是否为关键帧,如果是,则执行步骤L13;否则,返回到步骤L1。
实际应用中,由于无人机无间断地进行拍摄,邻近的图像帧之间的差距很小,如果每一帧都需要进行拼接的话,计算量会非常大,而且也没有必要。由于关键帧是对变化趋势起关键作用的图像,因此,本步骤先判断当前帧是否为关键帧,只有是关键帧的情况下才进行拼接。实际应用中,如果当前帧与其他关键帧相比变化较大,或者说图像重叠部分较少,这种情况可以将当前帧作为关键帧。
当然,如果不考虑非关键帧带来的计算量的问题,也可以省略步骤L12。
步骤L13:根据所述拟合平面坐标系下的位姿计算当前帧与已有图像之间的变换关系,根据所述变换关系实现当前帧和已完成拼接图像的拼接。
也就是说,按照本申请实施例二方式对图像拼接时,首先对接收到的图像进行预处理和初始化,采用帧间跟踪方法进行位姿估计,将其估计出来的位姿转换到统一的平面拟合坐标系下,然后与已完成拼接图像继续进行拼接,以完成全景图的绘制。另外,在需要局部关键帧和局部三维点进行帧间跟踪的情况下,还会进行局部优化,对局部关键帧和局部三维点管理。本实施例二的方案中,由于当前帧的位姿是估计出来的,而且通过全球定位系统的转换,不但减少了计算量,提高了拼接效率,还使绘制出的全景图具备真实尺度。另外,由于进行了图像预处理和局部优化过程,使得进一步减小了计算量,并提高了位姿估计的准确性。
本申请实施例二的方法在获取当前帧后,对当前帧处理过程主要有以下几个部分:1)预处理过程;2)初始化处理过程;3)帧间跟踪过程;4)局部优化过程;5)平面拟合过程;6)位姿转换过程;7)图像拼接过程。其中,预处理过程和局部优化过程是为了进一步减小计算量或减少误差,不属于必要的技术手段,可以省略。在已经完成初始化之后,初始化处理过程不属于必要的技术手段,也可以省略。
为了更好地理解本方法实施例中的初始化处理过程、帧间跟踪过程、局部优化过程、平面拟合过程、位姿转换过程以及图像拼接等过程,下面将分别利用不同的实施例详细描述。
图3是本申请实施例三进行初始化处理过程的方法流程图,即方法实施例二步骤L4的具体实施方式。在本申请实施例三中,至少需要有效的两帧图像才能完成初始化过程。如图3所示,该初始化过程包括:
步骤L41:判断是否已有初始帧,如果没有初始帧,则执行步骤L42;否则,执行步骤L43。
这里所述的初始帧是无人机传送来的第一帧有效图像。
步骤L42:将所述当前帧作为初始帧,结束初始化过程并返回步骤L1,即获取无人机航拍的一帧图像的步骤。
本步骤结束初始化过程时,会继续等待下一帧的到来,即返回实施例二中步骤L1重新获取无人机航拍的一帧图像。
步骤L43:将当前帧的ORB特征点和初始帧的ORB特征点进行匹配,记录特征匹配对数量。
本领域技术人员知道,ORB特征可以通过现有的FAST算法检测从ORB特征点处提取,提取出的ORB特征中的数据包括特征描述符。通过比较两个特征描述符的差异程度就可以衡量两个ORB特征点之间的特征距离,比如汉明距离。如果特征距离小于预先设置的特征距离阈值,则可以认为两个ORB特征点是匹配的,是一对特征匹配对。那么,按照这种方式将初始帧和当前帧两个图像帧中的ORB特征点全面对比,可以获得若干特征匹配对。
步骤L44:如果特征匹配对的数量小于设置的特征匹配数量阈值,则执行步骤L42;否则执行步骤L45。
在正常情况下,无人机邻近帧很相似,特征匹配对应该很多。如果特征匹配对的数量小于设置的特征匹配数量阈值,说明这两帧拍摄不正常,可能之间存在漏帧或其他非正常情况。这种情况下,则说明原有的初始帧和当前帧不是有效的两帧,则可以放弃原有的初始帧,暂时将当前帧作为初始帧,并返回获取无人机航拍的一帧图像的步骤(即步骤L1)重新获取另外一帧新的图像重新进行匹配,直到参与初始化过程的是有效的两帧图像。
步骤L45:根据初始帧和当前帧的特征匹配对计算当前帧位姿和帧间速度,并根据初始帧生成第一关键帧,根据当前帧生成第二关键帧。
找到有效的两帧图像之后,本步骤就可以利用这两帧来计算当前帧位姿和帧间速度,即前后两帧位姿之间的变换关系,作为其初始化的结果,并将这两帧作为关键帧,作为后续计算的参考。步骤L41~步骤L45初始化过程结束之后,可以继续执行方法实施例二中的其他步骤。需要注意的是,再次获取无人机拍摄的图像时,由于之前已经进行了初始化,将不会执行图3所示的初始化过程,直到完成图像拼接。
在上述初始化过程中,步骤L45计算了当前帧位姿和帧间速度,其具体方法如图4所示,包括:
步骤L441:根据初始帧和当前帧的特征匹配对的图像坐标计算单应变换,所述单应变换为初始帧和当前帧的特征匹配对之间的变换关系。
实际应用中,无人机飞行高度较高,可以认为所拍摄的场景处于同一平面,满足单应变换的条件。所述单应变换指两帧图像特征匹配对之间的变换关系,可以用如下公式1表示:
假设初始帧某ORB特征和当前帧某ORB特征为一对特征匹配对。初始帧该ORB特征对应的图像坐标为(x1,y1),当前帧该ORB特征对应的图像坐标为(x2,y2),(x1,y1,1)和(x2,y2,1)表示矩阵计算需要的齐次坐标,H则表示所述的单应变换。
步骤L442:根据事先设置的初始帧位姿和所述单应变换计算当前帧位姿,所述当前帧位姿是相对于初始帧相机坐标系下的位姿。
由于初始帧和当前帧ORB特征匹配对之间存在单应变换关系,因此其位姿之间也应该存在相同的单应变换关系,按照这样的关系就可以确定当前帧的位姿。
初始帧的位姿这里用旋转矩阵R1和平移向量t1来表示,其初始值由应用本申请方案的用户自行确定,比如可以将R1设置为单位矩阵,将t1设置为全零向量,作为基准的位姿。那么,如公式2表示,当前帧位姿和单应变换之间存在如下关系:
H=dR21+t21n′ 公式2
其中,R21表示当前帧相对于初始帧的旋转矩阵,t21表示当前帧相对于初始帧的平移向量,R21和t21在这里可以称为相对位姿,d表示拍摄初始帧时相机坐标系原点到地平面的距离,n为地平面的法向量,n′表示平面法向量的转置。通过对公式2进行矩阵奇异值分解可以计算得到R21和t21的值。
如公式3所示,再根据初始帧位姿(R1、t1)和当前帧相对于初始帧的相对位姿(R21、t21)就可以计算得到当前帧位姿(R2、t2):
R2=R21R1
t2=R21t1+t21 公式3
其中,R2表示当前帧的旋转矩阵,t2表示当前帧的平移向量。
步骤L443:根据初始帧和当前帧的特征匹配对的图像坐标计算对应的三维点。
如果初始帧某ORB特征点和当前帧某ORB特征点是匹配的,说明这两个ORB特征点在拍摄场景中针对的是同一个三维点。那么,针对同一个三维点可以根据匹配对的图像坐标计算其三维坐标。如公式4所示:
其中,公式4中矩阵A表示一个4*4的矩阵,(x1,y1)表示初始帧中特征点相应的图像坐标,(x2,y2)表示当前帧中特征点相应的图像坐标,K表示云台相机内部参数,比如焦距等。通过对矩阵A进行奇异值分解,可以得到初始帧和当前帧特征匹配对对应的三维点坐标Xw。
实际应用中,还可以进一步对步骤L443计算出来的三维点进行投影,以此验证步骤L442计算出来的当前帧位姿是否有效。投影如公式5所示:
其中,Xw表示三维点坐标,R1、t1表示初始帧位姿,R2、t2表示当前帧位姿,K表示云台相机内部参数,(x3,y3)表示三维点在初始帧上投影得到的图像坐标,(x4,y4)表示三维点在当前帧上投影得到的图像坐标。由于三维点是步骤L443根据ORB特征匹配对的图像坐标计算出来的,假设其中初始帧ORB特征点的图像坐标为(x1,y1),当前帧ORB特征点的图像坐标为(x2,y2),因而ORB特征点的图像坐标和投影点的图像坐标之间可以计算出像素距离。也就是说,可以在初始帧上计算ORB特征点图像坐标(x1,y1)和投影点图像坐标(x3,y3)之间的像素距离。同样,也可以在当前帧上计算ORB特征点图像坐标(x2,y2)和投影点图像坐标(x4,y4)之间的像素距离。在一种实现方式中,如果计算出来的像素距离在预设范围内,说明前面步骤L442计算出来的当前帧位姿是合理的,可以作为有效的位姿,继续执行后续的步骤L444。相反,如果计算出来的像素距离大于预设范围,则说明前面步骤L442计算出来的当前帧位姿不合理,误差太大,需要重新计算,比如可以将当前帧作为初始帧,结束初始化过程并返回步骤L1。注意这里所述的像素距离指像素图像上任意两个坐标点之间的距离,与前面所述特征距离的含义是不一样的。
步骤L444:将初始帧作为第一关键帧,所述第一关键帧的帧数据包括第一关键帧ORB特征点、第一关键帧位姿和第一关键帧ORB特征点对应的三维点,所述第一关键帧位姿为所述初始帧位姿。
步骤L445:将当前帧作为第二关键帧,所述第二关键帧的帧数据包括第二关键帧ORB特征点、第二关键帧位姿和第二关键帧ORB特征点对应的三维点,所述第二帧关键帧位姿为所述当前帧位姿。
如果位姿计算有效,这里可以将初始帧和当前帧作为关键帧以供后续计算参考使用。上述步骤L444和步骤L445是生成关键帧的步骤,关键帧的帧数据中保存了ORB特征、位姿以及对应的三维点坐标。与这里步骤L444和步骤L445生成关键帧的方法相同,生成后续的关键帧时也同样在帧数据中保存ORB特征、位姿以及对应的三维点坐标,这些信息可在后续计算中直接利用,无需再次计算。
步骤L446:根据第一关键帧位姿和第二关键帧位姿计算帧间速度,所述帧间速度为第一关键帧位姿和第二关键帧位姿之间的变换关系。
本申请方案是采用帧间跟踪的方式来进行位姿估计的。帧间跟踪需要确定上一帧的位姿以及帧间速度,以此作为基础来估计下一帧的位姿。这里所述的帧间速度就是指前后帧位姿之间的变换关系。比如下述公式6可以体现这样的变换关系:
其中,假设R1、t1表示上一帧的位姿,R2和t2表示下一帧的位姿,V表示帧间速度。本实施例中,由于步骤L444和步骤L445已经确定了第一关键帧和第二关键帧的位姿,利用公式6就可以计算出它们之间的帧间速度。
至此,本实施例三已经确定了第一关键帧和第二关键帧的位姿,还确定了帧间速度的初值,完成了初始化过程。这样,当后续接收到的无人机拍摄到的图像时,就可以直接根据这些信息进行位姿估计。
初始化过程后,新接收到的从无人机传送来的图像将作为新的当前帧,并且采用帧间跟踪方法对新的当前帧进行位姿估计。本申请方案的步骤L5中提到根据已有图像进行帧间跟踪得到当前帧位姿,所述当前帧位姿是相对于已有图像中第一关键帧相机坐标系下的位姿。本申请方案中列举了至少三种具体实现帧间跟踪的方法,包括基于运动模型的跟踪方法、基于参考关键帧的跟踪方法、基于局部三维点的跟踪方法。下面利用实施例四、五和六逐一进行介绍。
图5是实施例四中基于运动模型的跟踪方法流程图,如图5所示,该方法具体包括:
步骤L511:根据当前帧的上一帧图像的位姿和已有的帧间速度,预估当前帧的位姿。
在执行本步骤时,当前应该已经完成了初始化过程,并已经确定了上一帧图像的位姿和帧间速度。那么,利用如下的公式7可以估计出当前帧的位姿。
其中,V表示帧间速度,Rl和tl表示上一帧的位姿,而Tc则是指当前帧的位姿。
估算出当前帧的位姿后,还可以进一步利用如下步骤L512~步骤L515检验该位姿估计是否有效。
步骤L512:将上一帧的ORB特征点对应的三维点投影到当前帧,在当前帧中形成对应的投影点,并将在投影点的投影半径内的当前帧的ORB特征点作为待匹配ORB特征点。
实际应用中,一个ORB特征点会对应一个三维点,每帧图像通常有若干甚至多达上千个ORB特征点。将上一帧ORB特征点对应的三维点全部投影到当前帧上时,在投影点一定的投影半径范围内,可能存在多个当前帧的ORB特征点,也可能不存在任何的ORB特征点。如果有多个ORB特征点,则将投影半径以内的多个ORB特征点都作为待匹配特征点,再利用以下步骤选择出特征距离最小的特征点。
步骤L513:计算所述待匹配ORB特征点和所述投影点对应的上一帧ORB特征点之间的特征距离,选择出特征距离最小的待匹配ORB特征点作为选中的待匹配ORB特征点。
如前所述,特征距离是计算两个特征描述符之间的差异程度。本步骤这里参与计算的一方是待匹配ORB特征点处的ORB特征,另一方是投影点对应的上一帧ORB特征点处的ORB特征,计算双方ORB特征的特征距离。当然,如果投影半径内有多个待匹配ORB特征点,则可以选择出特征距离最小的ORB特征点。
步骤L514:当选中的待匹配ORB特征点的特征距离小于设置的特征距离阈值时,则将选中的待匹配ORB特征点和所述上一帧ORB特征点作为特征匹配对。
实际应用中,由于每帧图像通常有若干甚至多达上千个ORB特征点,那么本步骤形成的特征匹配对也可能存在若干对。
步骤L515:如果特征匹配对的数量超过设置的特征匹配数量阈值,则所述当前帧的位姿有效,否则所述当前帧的位姿无效。
应用本实施例四的方案,其中步骤L511对当前帧的位姿进行了估计,步骤L512~步骤L515对估计位姿进行检验,如果发现特征匹配对的数量达到事先设置的特征匹配数量阈值,则说明当前帧的位姿估计合理的。这是因为上一帧和当前帧在拍摄时变化不大,对应了相同的场景,图像中应该存在很多相同的三维点。如果当前帧的位姿估计合理,或者说接近真实位姿,那么三维点在上一帧和当前帧对应的ORB特征应该是匹配的。那么经过检验,如果发现这样的ORB特征匹配对很多,也就说明了当前帧的位姿估计是合理的。
实际应用中,不但上一帧图像的位姿和帧间速度对当前帧位姿估计的影响比较大,由于邻近图像和当前帧变化都不太大,因此邻近的图像对当前帧位姿估计的影响也比较大。如果最近的关键帧是邻近图像,则可以作为当前帧位姿估计的参考。本实施例五就是参考了最近的关键帧来估计当前帧位姿。为了区别其他关键帧,本实施例将距离当前帧最近的关键帧称为参考关键帧。
在介绍基于参考关键帧的跟踪方法之前,先介绍ORB字典。ORB字典是事先建立的用于保存ORB特征数据的结构,其方法是提取大量图像ORB特征,利用特征描述符将ORB特征进行聚类,表示成深度为d的k叉树。该k叉树的叶子节点称为单词,用于保存ORB特征描述符。所述ORB特征描述符是一个若干位的字符串。
图6是本实施例五中基于参考关键帧的跟踪方法流程图,如图6所示,该方法具体包括:
步骤L611:根据已建立的ORB字典,在已有的参考关键帧中确定ORB特征点,使得参考关键帧ORB特征点与当前帧ORB特征点的特征匹配。
步骤L612:将所述参考关键帧ORB特征点对应的三维点作为当前帧ORB特征点对应的三维点。
本实施例的步骤L611和步骤L612是确定当前帧ORB特征点对应的三维点的方法。先利用当前帧ORB特征点的特征描述符查找ORB字典,从根节点一直逐层查找到叶子节点,将叶子节点中保存的单词作为查找结果。查找到的单词为ORB特征描述符,应该与当前帧ORB特征描述符的特征距离最小。如果参考关键帧中也有相同特征描述符的ORB特征点,那么当前帧ORB特征点和该参考关键帧中的ORB特征点就成为特征匹配对。既然是特征匹配对,那么如果参考关键帧ORB特征点对应有三维点,那么该三维点也应该是当前帧ORB特征点对应的三维点。
步骤L613:根据所述当前帧ORB特征点对应的三维点,利用非线性优化算法对预估的当前帧位姿进行优化,将优化后的结果作为当前帧位姿,所述预估的当前帧位姿为上一帧图像的位姿。
由于无人机拍摄的前后帧变化不大,由于上一帧的位姿是已知,本实施例可以将当前帧位姿预估为上一帧的位姿,再利用参考关键帧的三维点对当前帧位姿进行调整。本步骤之前,已经确定了当前帧ORB特征点对应的三维点,这些三维点在当前帧上就会有相应的投影点。不同的位姿会导致产生不同的投影点。为了使得投影点和当前帧ORB特征点的图像坐标的像素距离最小,可以调整当前帧的位姿来满足需求。当满足了像素距离最小的要求时,也就可以认为调整后的当前帧位姿是目前最优化的位姿,或者说是最接近当前帧真实的位姿。调整当前帧最优位姿的方法可以采用如下公式8所示:
其中,Xi表示三维点坐标,xi表示当前帧ORB特征点对应的图像坐标,wi表示权重,min表示取值最小的函数。当min函数取值最小时,对应的Tc就是当前帧最优的位姿。至此,通过步骤L611~步骤L613实现了基于参考关键帧跟踪的方法实现当前帧位姿的估计。
实际应用中,除了上一帧图像和最近关键帧对当前帧位姿影响比较大以外,和当前帧邻近的更多的其他关键帧对位姿估计的影响也比较大,同样可以作为位姿估计的参考。本实施例六参考了更多的邻近关键帧,利用邻近关键帧对应的三维点来调整和优化当前帧位姿。本实施例中,由于只参考和当前帧邻近的关键帧,这部分关键帧在本实施例中称为局部关键帧,局部关键帧中ORB特征点对应的三维点称为局部三维点,而本实施例六实现帧间跟踪的方法称为基于局部三维点的跟踪方法。
为了介绍下面基于局部三维点跟踪的方法,先介绍局部关键帧集合和局部三维点集合的概念。实际应用中,如果当前帧ORB特征点可以和某个关键帧的ORB特征点对应相同的三维点,而且对应的个数超过设置的阈值,可以认为该关键帧可能位于邻近,对当前帧的影响比较大,可以将该关键帧添加到局部关键帧集合中。凡是满足这样条件的参考关键帧组成局部关键帧集合,这里记为KFsL。将局部关键帧集合中每一个关键帧ORB特征点对应的三维点添加到局部三维点集合MPTsL中,且局部三维点集合中无重复的三维点。
由于局部关键帧对当前帧位姿影响比较大,相应的局部三维点也很可能属于当前帧ORB特征点对应的三维点,可以利用局部三维点实现帧间跟踪。图7是本实施例六中基于局部三维点跟踪的方法流程图。如图7所示,该方法包括:
步骤L711:计算当前帧ORB特征点对应的三维点。
步骤L712:确定与所述当前帧ORB特征点对应相同三维点的关键帧,如果确定的关键帧ORB特征点与所述当前帧ORB特征点对应相同三维点,且相同三维点的个数超过设置的三维点对应数量阈值,则将所述确定的关键帧作为局部关键帧添加到局部关键帧集合中。
通过上述步骤L711~L712,可以建立局部关键帧集合KFsL。
步骤L713:针对每一个局部关键帧,将所述局部关键帧ORB特征点对应的三维点添加到局部三维点集合中,且所述局部三维点集合中无重复的三维点。
通过上述步骤L713可以建立局部三维点集合MPTsL。
步骤L714:将局部三维点集合中的所有三维点投影到当前帧上,将投影半径内的当前帧ORB特征点作为待匹配ORB特征点。
步骤L715:计算所述待匹配ORB特征点和所述投影点对应的局部关键帧ORB特征点之间的特征距离,选择出特征距离最小的待匹配ORB特征点作为选中的待匹配ORB特征点。
与实施例四中的步骤L513相似,本步骤两个ORB特征点之间的特征距离实际上是计算两个特征描述符之间的差异程度。如果投影半径内有多个待匹配ORB特征点,则可以选择出特征距离最小的ORB特征点。
步骤L716:当选中的待匹配ORB特征点的特征距离小于设置的特征距离阈值时,则将选中的待匹配ORB特征点和所述局部关键帧ORB特征点作为特征匹配对。
步骤L717:将匹配的局部关键帧ORB特征点对应的三维点作为所述当前帧选中的待匹配ORB特征点对应的三维点。
步骤L718:根据所述当前帧选中的待匹配ORB特征点对应的三维点,利用非线性优化算法对预估的当前帧位姿进行优化,将优化后的结果作为当前帧位姿,所述预估的当前帧位姿为上一帧图像的位姿。
由于无人机拍摄的前后帧变化不大,由于上一帧的位姿是已知,本实施例可以将当前帧位姿预估为上一帧的位姿,再利用局部三维点对当前帧位姿进行调整。本实施例步骤L717确定了当前帧选中的待匹配ORB特征点对应的三维点,这些三维点在当前帧上就会有相应的投影点。不同的位姿会导致产生不同的投影点。为了使得投影点和选中的待匹配ORB特征点的图像坐标的像素距离最小,可以调整当前帧的位姿来满足需求。当满足了像素距离最小的要求时,也就可以认为调整后的当前帧位姿是目前最优化的位姿。调整当前帧最优位姿的方法仍然可以采用上面公式8实现,此处不再赘述。
本申请实施例四~六分别描述了基于运动模型的跟踪方法、基于参考关键帧的跟踪方法以及基于局部三维点的跟踪方法,这些方法都可以实现帧间跟踪获得当前帧的位姿。实际应用中,还可以将上述方法进行组合,使得当前帧位姿的估计更为可靠。本实施例七是一种组合的帧间跟踪方法,如图8所示,该方法包括:
步骤L811:根据基于运动模型的跟踪方法进行帧间跟踪得到当前帧位姿。
本步骤具体实施采用实施例五的方法实现。
步骤L812:判断跟踪是否成功,如果成功,则执行步骤L814;否则执行步骤L813。
本步骤中,如果经过实施例五中步骤L512~步骤L515的检验,可以判断跟踪是否成功。如果当前帧位姿有效,可以认为跟踪是成功的,否则跟踪是失败的。
步骤L813:根据基于参考关键帧的跟踪方法进行帧间跟踪得到当前帧的位姿。
在正常情况下,无人机前后两帧很相似,利用基于运动模型的跟踪方法通常可以准确估计出当前帧的位姿。但如果前后帧之间不正常,比如存在漏帧的情况,按照基于运动模型来跟踪得到结果不可靠,则采用基于参考关键帧的方法重新进行跟踪。
步骤L814:根据基于局部三维点的跟踪方法优化所述当前帧位姿。
如前所述,基于局部三维点跟踪的方法中,由于局部三维点集合中的三维点包括局部关键帧ORB特征点对应的所有三维点,可参考的三维点比较多,三维点投影后形成的匹配对也可能会更多。由于当前帧ORB特征点与局部三维点集合中的三维点可能形成更多的匹配对,那么利用这种匹配关系估计位姿也就越可靠。当然,本步骤所述当前帧位姿是步骤L811或者步骤L813计算出来的当前帧位姿,是对当前帧位姿的进一步优化。
本申请实施例四~七描述了帧间跟踪实现当前帧位姿估计的方法。实际应用中,为了继续对下一帧图像进行处理,还可以进一步判断当前帧是否可以作为关键帧,以及进一步更新帧间速度V。以实施例六为例,也就是说,在执行步骤L814之后,该方法进一步包括:
步骤L815:如果已有图像的ORB特征点与当前帧ORB特征点对应的三维点的数量小于设置的三维点对应数量阈值,则将所述当前帧作为新增加的关键帧。
前面提到,无人机连续拍摄情况下,前后帧变化不大。因此,不管是采用哪种帧间跟踪方法,已有图像的ORB特征点能与当前帧ORB特征点对应的三维点应该比较多。已有图像是已完成拼接图像在拼接中所利用的图像,有可能是基于运动模型跟踪方法中当前帧的上一帧图像,有可能是基于参考关键帧跟踪方法中的参考关键帧,也有可能是基于局部三维点跟踪方法中的局部关键帧,不同的帧间跟踪方法采用了不同的已有图像。不管是哪种方法,当前帧ORB特征点都需要与相应的已有图像中ORB特征点对应一定数量相同的三维点。但是,由于无人机在不停转移,其拍摄场景逐渐会发生较大的变化。这种情况下,将导致当前帧ORB特征点与已有图像ORB特征点对应的三维点越来越少。如果对应数量小于设置的三维点对应数量阈值,说明无人机拍摄场景变化了,当前帧可以作为关键帧,以供后续图像参考。
步骤L816:根据当前帧位姿和上一帧图像的位姿计算帧间速度,将计算出来的帧间速度作为新的帧间速度。
计算新的帧间速度的方法与上面初始化过程中的步骤L446相似,采用方法如下公式9所示:
其中,Rc、tc表示当前帧位姿,Rl、tl表示上一帧位姿,V表示新计算出来的帧间速度。
至此,本申请方案已经通过实施例三~实施例七详细描述了初始化处理过程以及帧间跟踪过程。在帧间跟踪过程中,如果利用了局部关键帧和局部三维点来进行位姿估计,或者对计算出来的位姿进行优化,就需要事先建立局部关键帧集合和局部三维点集合。随着无人机的连续拍摄,当前帧会不断更新,针对当前帧的局部关键帧和局部三维点也会不断更新,因此需要对局部关键帧集合和局部三维帧集合进行管理。比如,要及时增加新产生的关键帧、创建新的三维点、删除不符合条件的三维点以及三维点融合等一系列操作,以便对后续新的当前帧进行准确的位姿估计。
本申请实施例八提出了一种管理方法,称为局部优化过程,即上述方法实施例二中步骤L7的具体实施方式。在描述局部优化过程之前,下面先介绍几个概念:
共视图:由共视帧组成的集合。所述共视帧表示满足共视条件的关键帧,共视条件则为不同关键帧的ORB特征点对应相同三维点的数量大于设置的数量阈值。也就是说,当两帧关键帧的ORB特征点可以对应相同的三维点,而且对应的数量超过了设置的三维点对应数量阈值,那么这两帧关键帧就满足共视条件,也称为共视帧。所有满足共视条件的参考关键帧组成一个集合,这里称为共视图。
有效三维点集合:由参与计算的全部有效三维点组成的集合,所述有效三维点是关键帧ORB特征点对应的三维点。
邻近关键帧集合:由当前关键帧的邻近关键帧组成的集合,每一个邻近关键帧为当前关键帧的共视帧。
次邻近关键帧集合:由当前关键帧的次邻近关键帧组成的集合,每一个次邻近关键帧都是邻近关键帧的共视帧。
如图9所示,假设经过帧间跟踪过程后,发现当前帧可以作为新的关键帧,将其作为当前关键帧,从而进行局部优化过程。本实施例八中所述局部优化过程包括:
步骤L901:根据新增加的关键帧更新已建立的共视图,所述共视图是由共视帧组成的集合,所述共视帧表示满足共视条件的关键帧,所述共视条件为不同关键帧的ORB特征点对应相同三维点的数量大于设置的数量阈值。
本步骤中,由于通过上述帧间跟踪之后,如果发现当前帧满足作为关键帧的条件,于是需要更新共视图。这里所述的新增加的关键帧就是帧间跟踪处理过程的当前帧。
步骤L902:检测有效三维点集合中的三维点,所述有效三维点集合中的三维点由关键帧ORB特征点对应的三维点组成,根据与当前关键帧ORB特征点匹配情况确定非稳定三维点,并将非稳定三维点从有效三维点集合中删除。
实际应用中,可以设置一定连续帧数,如果在设置的连续帧数内,某个三维点不能被关键帧ORB特征点连续匹配上,则可以认为是不稳定的三维点,可以将其删除,以消除对后续计算的影响。比如:已经有50帧关键帧,有效三维点集合中已经有500个三维点,设置的连续帧数为10帧,那么,在第41帧~第50帧这连续的10帧关键帧中,有效三维点集合中的某个三维点R不能连续被第41帧~第50帧关键帧中的ORB特征点匹配上,可以认为该三维点R是不稳定的,应该从有效三维点集合中删除。
步骤L903:在共视图中,确定当前关键帧的共视帧,将其按照与当前关键帧拥有相同三维点的数量降序排序,取其前N1帧作为邻近帧集合。
步骤L904:在共视图中,确定邻近帧集合中的每一个关键帧的共视帧,将其按照与当前关键帧拥有相同三维点的数量按降序排序,取其前N2帧作为次邻近帧集合。
上述步骤L903和步骤L904分别确定了邻近帧集合和次邻近集合,N1和N2为自然数,由应用本申请方案的用户自行确定。
步骤L905:将当前关键帧ORB特征点分别与邻近帧集合和次邻近帧集合中所有共视帧的ORB特征点进行匹配,获得特征匹配对以及对应的三维点。
本步骤中,可以采用与基于参考关键帧跟踪方法中特征匹配相似的方法,查找当前关键帧ORB特征点的特征描述符在ORB字典中对应的单词,如果邻近帧或次邻近帧集合的共视帧中也存在某个ORB特征点对应相同的单词,那么这两个ORB特征点成为特征匹配对。
步骤L906:将得到的三维点投影到所述当前关键帧,并分别投影到邻近帧集合和次邻近帧集合中的共视帧上,分别形成投影点,若在当前关键帧上的投影点和当前关键帧ORB特征点的像素距离在预设像素距离阈值内,且在所述共视帧上的投影点和共视帧的ORB特征点的像素距离也在所述预设像素距离阈值内,则计算得到的三维点有效,并在有效三维点集合未包含的情况下将计算得到的三维点保存在所述有效三维点集合中。
上述步骤L905~步骤L906将新产生的有效三维点加入到有效三维点集合中。由于新增加的当前关键帧ORB特征点可以和邻近帧集合或次邻近帧集合中共视帧ORB特征点匹配,而且对应的三维点经过投影检测是合理的,那么该三维点就是有效的,可以参与后续的计算,为后续帧的位姿估计或者优化提供参考。
步骤L907:将邻近帧集合和次邻近帧集合中所有共视帧ORB特征点对应的三维点投影到当前关键帧上,在所述当前关键帧上形成投影点,将所述投影点的投影半径内的当前关键帧ORB特征点作为待匹配ORB特征点。
步骤L908:计算待匹配ORB特征点和所述投影点对应的共视帧ORB特征点之间的特征距离,选择出特征距离最小的待匹配ORB特征点作为选中的待匹配ORB特征点。
步骤909:若选中的待匹配ORB特征点的特征距离小于设置的特征距离阈值,则将选中的待匹配ORB特征点和所述共视帧ORB特征点作为特征匹配对。
步骤L910:若选中的待匹配ORB特征点已有对应的三维点,则将投影到当前关键帧上的三维点和所述选中的待匹配ORB特征点已对应的三维点进行融合;否则,将所述投影的三维点作为所述选中的待匹配ORB特征点对应的三维点。
这里的步骤L907~L910主要是三维点融合的过程。如果邻近帧或次邻近帧集合中共视帧的ORB特征点与当前关键帧ORB特征点可以形成特征匹配对,则特征匹配对应该对应相同的三维点。但是,如果当前关键帧ORB特征点自身已经有单独对应的三维点,而且与之匹配的共视帧的ORB特征点对应了不一样的三维点,说明这个三维点可能是误差造成的,应该将两个三维点融合。这里所谓三维点融合就是要将两个不同的三维点合二为一。实际应用中,可以将对应次数比较多的三维点作为标准,而将另一个三维点删除。比如有X1和X2两个不同的三维点,如果X1在以往的计算中被其他关键帧ORB特征点对应的次数比较多,说明这个三维点是相对可靠的,则保留X1而删除X2,并将原本对应三维点X2的ORB特征点修改为对应三维点X1。
步骤L911:建立待优化关键帧集合和待优化三维点集合,所述待优化关键帧集合包括所述当前关键帧和当前关键帧的共视帧,所述待优化三维点集合包括待优化关键帧集合中每一个关键帧ORB特征点对应的三维点,且不重复。
步骤L912:根据非线性优化算法对所述待优化关键帧集合中的每一个关键帧的位姿进行优化,以及对所述待优化三维点集合中每一个三维点的坐标进行优化。
上述的步骤L911和步骤L912实际上是在即将处理下一帧图像之前,对局部关键帧和局部三维点进行优化,为下一帧的位姿估计或者优化提供更为可靠的基础。其中,待优化关键帧集合相当于下一帧的局部关键帧集合,待优化三维点集合相当于下一帧的局部三维点集合。实际应用中,可以采用非线性优化算法进行优化,如公式10所示:
其中,Xi表示待优化三维点集合中的三维点坐标,xj表示待优化关键帧集合中关键帧ORB特征点对应的图像坐标,wij表示权重,Tk表示待优化关键帧集合中关键帧的位姿,min表示取值最小的函数。该公式10表示,当min函数取值最小时,对应的Tk就是关键帧最优的位姿,以及Xi就是三维点最优的坐标。可以利用非线性优化算法对局部关键帧和局部三维点进行优化的原因在于,局部关键帧不同的位姿会影响三维点产生不同的投影点。为了使得局部三维点的投影点和局部关键帧ORB特征点图像坐标的像素距离最小,可以调整局部关键帧的位姿或者局部三维点坐标来满足需求。当满足了像素距离最小的要求时,也就可以认为调整后的局部关键帧的位姿是目前最优的位姿,调整后的局部三维点的坐标是最优化的三维点坐标。
本申请实施例八实现了在帧间跟踪后的局部优化过程。实际应用中,如果不考虑局部关键帧和局部三维点对下一帧的影响,或者不需要利用局部关键帧和局部三维点对下一帧位姿进行估计,也可以不执行实施例八的方法。
至此,本申请实施例已经根据帧间跟踪方法估计出当前帧的位姿,可以将其转化到拟合平面下,并与已有图像进行拼接。为了更清楚说明如何转化到拟合平面中,下面先对平面拟合方法进行详细描述。
由于无人机在拍摄过程中需要不停变化角度或转移,拍摄出来的每一帧图像的位姿都存在变化。为了后续将不同的图像合理拼接,需要事先确定一个标准平面,这个标准平面就是所谓的拟合平面。因为拍摄图像都是针对地平面场景,图像上的ORB特征点对应了地平面场景中共同的三维点,根据这些三维点就可以完成平面拟合。为了使拟合的平面更为可靠,需要足够多的三维点。因此,当三维点足够多或者当关键帧到达一定数量时,就可以启动进行平面拟合。
图10是本申请实施例九进行平面拟合的方法流程图,即实施例二所述步骤L9的具体实施方式。如图10所示,该方法包括:
步骤L1001:根据已有关键帧ORB特征点对应的三维点坐标计算得到平面方程,并根据该平面方程确定拟合平面坐标系的旋转矩阵。
实际应用中,假设有n个三维点,分别用(x1,y1,z1)、(x2,y2,z2)……(xn,yn,zn)表示这n个三维点的坐标。那么公式11可以表示其构成的平面O:
其中,(x1,y1,z1,1)、(x2,y2,z2,1)……(xn,yn,zn,1)表示n个三维点的齐次坐标,A、B、C、D表示平面方程的参数。本领域技术人员知道,利用对方程的奇异值分解就可以得到平面方程的参数。其中,该平面的法向量为Vz=(A,B,C),可以表示为平面坐标系的Z轴。如果设置Vy=(0,-1,0)为平面坐标系y轴,相应的,平面x轴则可以表示为Vx=Vy×Vz。即,通过对公式11的计算,可以得到平面坐标系的x轴、y轴和z轴,该平面坐标系的旋转矩阵可以表示为R=[Vx Vy Vz]。
步骤L1002:根据所述已有关键帧ORB特征点对应的三维点坐标计算其平均值,将计算得到的平均值作为所述拟合平面坐标系的平移向量。
本步骤中,可以分别计算所有三维点x轴坐标的平均值、y轴坐标平均值以及z轴坐标平均值,该平面坐标系的平移向量表示为t=(x轴坐标的平均值,y轴坐标平均值,z轴坐标平均值)。
通过上述步骤L1001和步骤L1002可以得到平面坐标系的旋转矩阵R和平移向量t,从而达到了平面拟合的目的。
实现平面拟合之后,就可以将当前帧位姿转换到拟合平面坐标系下,以便于后续拼接。图11是实施例十中进行位姿转换的方法流程图。本实施例中,先假设经过帧间跟踪得到当前帧位姿其中i表示当前帧,w1表示第一关键帧相机坐标系,即当前帧位姿是第一关键帧相机坐标系下的位姿。如前所述,为了使得绘制出来的全景图具备真实尺度,还会获得图像的全球定位系统信息。那么,当前帧位姿除了可以表示为在第一关键帧相机坐标系下的位姿,还可以表示为在全球定位系统坐标系下的位姿,本实施例中将当前帧在全球定位系统坐标系下的位姿表示为其中i表示当前帧,w表示全球定位系统坐标系。
如图11所示,本实施例十进行位姿转换的方法包括:
步骤L1101:根据第一关键帧相机坐标系和全球定位系统坐标系之间的转换关系,将当前帧位姿转换到所述全球定位系统坐标系下。
实际应用中,可以采用SE3形式记录接收到的当前帧位姿i表示当前帧,w1表示第一关键帧相机坐标系,即当前帧位姿是第一关键帧相机坐标系下的位姿。同时记录在全球定位系统坐标系下的位姿i表示当前帧,w表示全球定位系统坐标系。其中,第一关键帧相机坐标系下的位姿可以通过本申请上述实施例方法计算出来,而全球定位系统坐标系下的位姿则可以直接从无人机传送来的全球定位系统信息中获取。当接收到的关键帧足够时,可以利用下面公式12计算其变换关系。
其中,表示第一关键帧相机坐标系下的位姿,表示全球定位系统坐标系下的位姿,wi表示权重,min表示最小函数,表示全球定位系统坐标系和第一关键帧相机坐标系位姿的转换关系。公式12表示当使得整体误差最小时,该就是全球定位系统坐标系和第一关键帧相机坐标系位姿的转换关系。
假设事先已经确定了全球定位系统坐标系和第一关键帧相机坐标系位姿的转换关系,那么在本步骤中,就可以通过下述公式13将第一关键帧相机坐标系下的当前帧位姿转换到全球定位系统坐标系下。
其中,为已知的全球定位系统坐标系和第一关键帧相机坐标系位姿的转换关系,为通过帧间跟踪已经计算出来的第一关键帧相机坐标系下的当前帧位姿。那么,通过公式13就可以将当前帧位姿转换到所述全球定位系统坐标系下的位姿
步骤L1102:根据全球定位系统坐标系和拟合平面坐标系之间的转换关系,将当前帧位姿从全球定位系统坐标系下转换到拟合平面坐标系下。
如步骤L1101中假设所述,这里事先再假设在计算出拟合平面坐标系的旋转矩阵R和平移向量t后,可以采用SE3形式将该拟合平面坐标系表示为因此,全球定位系统坐标系和拟合平面坐标系位姿之间的转换关系可以事先用公式14表示:
其中,表示全球定位系统坐标系和第一关键帧相机坐标系之间的转换关系,表示拟合平面坐标系,那么则表示全球定位系统坐标系和拟合平面坐标系之间的转换关系。
假设事先已经根据公式14确定了全球定位系统坐标系和拟合平面坐标系之间的转换关系,那么在本步骤中,就可以通过下述公式15将全球定位系统坐标系下的当前帧位姿转换到所述的拟合平面坐标系下。
其中,表示全球定位系统坐标系和拟合平面坐标系之间的转换关系,表示全球定位系统坐标系下的当前帧位姿,表示拟合平面坐标系下的当前帧位姿。根据公式15还可以从中得到当前帧在拟合平面坐标系的旋转矩阵和平移向量
本实施例十已经将帧间跟踪得到的当前帧位姿转换到了拟合平面坐标系下。由于拍摄的图像现都用统一的平面坐标系表示,因此可以很方便地进行拼接。
图12是方式实施例十一实现图像拼接过程的方法流程图,即方法实施例二的步骤L13的具体实施方式。如图12所示,该方法包括:
步骤L1201:计算当前帧与已完成拼接图像之间的单应变换关系。
实际应用中,由于无人机连续拍摄图像之间的差异很小,可以认为所拍摄的场景处于同一平面,满足单应变换的条件。单应变换可以用如下公式16表示:
其中,K表示无人机拍摄使用的相机内部参数,r1和r2分别表示已经计算出的拟合平面坐标系的旋转矩阵的第一列和第二列,表示已经计算出的拟合平面坐标系的平移向量,则H表示当前帧与已完成拼接图像之间的单应变换关系。
步骤L1202:根据所述单应变换关系确定当前帧的四个角点在已完成拼接图像中的坐标。
为了将当前帧拼接到已有图像中,需要先确定4个角点和已有图像坐标的对应关系,其关系可以用如下公式17表示:
其中,(x,y,1)表示角点在当前帧图像中的齐次坐标,(x′,y′,1)表示角点在已有图像中的齐次坐标,H表示当前帧和已有图像之间的单应变换,inv表示求逆函数,s表示尺度。确定4个角点在已有图像中的坐标之后,就可以利用下述步骤进行拼接。
步骤L1203:根据当前帧和已完成拼接图像之间的单应变换关系,从已完成拼接图像中确定拼接后扩展部分的像素值。
由于步骤L1202在已完成拼接图像中确定出4个坐标点,这4个坐标点范围之间就是需要拼接的部分,可以直接填充当前帧相应坐标的像素值,也可以进行插值来填充像素值。比如,针对已有图像扩展部分的某个坐标点,可以先利用如下公式18计算当前帧对应的某个坐标点:
公式18其实是根据公式17计算得到的,同样的,(x,y,1)表示角点在当前帧图像中的齐次坐标,(x′,y′,1)表示角点在已有图像中的齐次坐标,H表示当前帧和已完成拼接图像之间的单应变换,s表示尺度。也就是说,当需要填充已有图像扩展部分某个坐标点的像素值,可以先利用公式18确定其在当前帧对应的坐标点,然后将该坐标点附近4个点的像素值进行加权平均,计算得到应该填充的像素值。
这样,利用本实施例十一的上述步骤L1201~步骤L1203可以完成将当前帧拼接到已完成拼接图像中,成为一幅更大的全景图。实际应用中,由于已完成拼接图像中有一部分可能与当前帧图像是重叠的,还可以针对重叠区域采用像素融合的方法,比如高斯普拉斯金字塔方法对像素进行融合,从而使拼接部位不明显,而得到更为平滑的图像。
本申请还提出一种无人机航拍图像拼接装置,可以部署在地面系统。图13是该装置实施例一的结构示意图。如图13所示,该装置包括:获取单元M1、位姿估计单元M2和拼接单元M3。
其中:
获取单元M1,用于获取无人机航拍的一帧图像,将该帧图像作为当前帧。
位姿估计单元M2,用于根据已有图像估计当前帧在拟合平面坐标系下的位姿,所述拟合平面由所述已有图像的定向快速旋转ORB特征点所对应三维点拟合生成,所述已有图像为用于已完成拼接的图像。
拼接单元M3,用于根据所述拟合平面坐标系下的位姿计算当前帧与所述已有图像之间的变换关系,根据所述变换关系实现所述当前帧和所述已有图像的拼接。
图14是装置实施例二的示意图。如图14所示,该装置除了包括获取单元M1、位姿估计单元M2和拼接单元M3,还可以包括预处理单元M4和初始化单元M5。
其中,
获取单元M1在获取无人机航拍的一帧图像时,还可以进一步获取对应的全球定位系统信息,所述全球定位系统信息为无人机航拍时在全球定位系统坐标系下的信息。
预处理单元M4用于对获取单元M1获取的当前帧进行图像预处理,将预处理后的图像发送给初始化单元M5。预处理单元M4主要是对图像进行降采样,以此来减少后续的计算量。当然,实际应用中如果不考虑图像分辨率带来的计算量问题,也可以省略预处理单元M4。
初始化单元M5接收到来自预处理单元M4的图像时,如果需要进行初始化,利用接收到的当前帧进行初始化处理。初始化过程是为了后续计算的需要,比如在利用帧间跟踪来估计当前帧位姿时需要一个估计的基础。但并非处理每一帧图像时都需要初始化,在初始化后,后续图像无需初始化单元M5处理,直接发送给位姿估计单元M2即可。
位姿估计单元M2仍然是对当前帧进行位姿估计,其内部结构示意图如图15所示,具体可以包括:帧间跟踪单元M21、局部优化单元M22、平面拟合单元M23和位姿转换单元M24。其中:
帧间跟踪单元M21,根据已有图像进行帧间跟踪估计出当前帧位姿,当前帧位姿是相对于已有图像中第一关键帧相机坐标系下的位姿。如前所述,无人机航拍过程是连续拍摄的,相邻图像之间的变化应该不大,存在某种变化趋势。帧间跟踪单元M21利用了这种变化趋势,以此来估计当前帧的位姿。
局部优化单元M22,在需要进行局部优化情况下进行局部优化。进行局部优化的原因在于:帧间跟踪过程是根据已有图像来估计当前帧位姿。已有图像中和当前帧关系最紧密的是距离当前帧较近的关键帧以及关键帧中相关的信息(比如和当前帧同时对应的三维点),这里可以将距离当前帧较近的关键帧称为局部关键帧,将局部关键帧ORB特征点和当前帧ORB特征点同时对应的三维点称为局部三维点。但随着无人机拍摄过程不断转移位置,可能某些局部关键帧已经不再与新的当前帧邻近了,某些局部关键帧ORB特征对应的三维点已经不能与当前帧ORB特征点对应了。也就是说,影响当前帧的局部关键帧和局部三维点会不断地变化。如果帧间跟踪过程需要利用局部关键帧和局部三维点,那么就需要对局部关键帧和局部三维点进行管理,进行局部优化过程。如果帧间跟踪过程不需要利用局部关键帧和局部三维点,则无需对其进行管理,不需要局部优化单元M22,直接将当前帧发送给平面拟合单元M23。
平面拟合单元M23,在需要进行平面拟合的情况下进行平面拟合。由于本申请实施例需要将当前帧位姿统一到拟合平面坐标系下,因此事先需要建立拟合平面。实际应用中,当关键帧到达一定数量就可以进行平面拟合。建立拟合平面之后,后续图像可以直接利用该拟合平面,无需再重复拟合,即无需执行平面拟合单元M23的功能,直接将当前帧发送给位姿转换单元M24。
位姿转换单元M24,根据第一关键帧相机坐标系和对应的全球定位系统坐标系之间的转换关系,将所述当前帧位姿转换到全球定位系统坐标系下的位姿;根据全球定位系统坐标系和所述拟合平面坐标系之间的转换关系,将所述当前帧在全球定位系统坐标系下的位姿转换到拟合平面坐标系下的位姿,所述拟合平面由所述已有图像的ORB特征点所对应的三维点拟合生成。
此时,可以得到当前帧在拟合平面坐标系下的位姿,后续再利用拼接单元M3计算当前帧与所述已有图像之间的变换关系并根据所述变换关系实现所述当前帧和已有图像的拼接。
图15是本申请装置实施例三中初始化单元M5的内部结构示意图,其他部分如装置实施例二所示。如图15所示,该初始化单元M5包括第一判别单元M51、初始帧确定单元M52、第一匹配单元M53、第二判别单元M54、初始计算单元M55。其中:
第一判别单元M51,用于判断是否已有初始帧,如果没有初始帧,则执行初始帧确定单元M52;如果有初始帧则执行第一匹配单元M52。
初始帧确定单元M52,用于将当前帧作为初始帧,结束初始化过程,返回获取单元M1。
第一匹配单元M53,用于将当前帧的ORB特征点和初始帧的ORB特征点进行匹配,记录特征匹配对数量,并继续执行第二判别单元M54。
第二判别单元M54,用于判断特征匹配对的数量,如果小于设置的特征匹配数量阈值,则执行所述初始帧确定单元M52,否则执行所述初始计算单元M55。
初始计算单元M55,根据初始帧和当前帧的特征匹配对计算当前帧位姿和帧间速度,并根据初始帧生成第一关键帧,根据当前帧生成第二关键帧。其中,计算了当前帧位姿和帧间速度可以包括:根据初始帧和当前帧的特征匹配对的图像坐标计算单应变换,所述单应变换为初始帧和当前帧的特征匹配对之间的变换关系;根据事先设置的初始帧位姿和所述单应变换计算当前帧位姿,所述当前帧位姿是相对于初始帧相机坐标系下的位姿;根据初始帧和当前帧的特征匹配对的图像坐标计算对应的三维点;将初始帧作为第一关键帧,所述第一关键帧的帧数据包括第一关键帧ORB特征点、第一关键帧位姿和第一关键帧ORB特征点对应的三维点,所述第一关键帧位姿为所述初始帧位姿;将当前帧作为第二关键帧,所述第二关键帧的帧数据包括第二关键帧ORB特征点、第二关键帧位姿和第二关键帧ORB特征点对应的三维点,所述第二帧关键帧位姿为所述当前帧位姿;根据第一关键帧位姿和第二关键帧位姿计算帧间速度,所述帧间速度为第一关键帧位姿和第二关键帧位姿之间的变换关系。
图16~19是几种实现帧间跟踪单元M21的具体方式。
图16是本申请装置实施例四中帧间跟踪单元M21的第一种内部结构示意图,其他部分如装置实施例二所示,不再重复赘述。
如图16所示,该帧间跟踪单元M21可以根据基于运动模型的跟踪方法实现,包括预估单元H1、投影单元H2、特征距离计算单元H3、位姿判别单元H4。其中:
预估单元H1,用于根据当前帧的上一帧图像的位姿和已有的帧间速度,预估当前帧的位姿。
投影单元H2,用于将上一帧的ORB特征点对应的三维点投影到当前帧,在当前帧中形成对应的投影点,并将在投影点的投影半径内的当前帧的ORB特征点作为待匹配ORB特征点。
特征匹配单元H3,用于计算所述待匹配ORB特征点和所述投影点对应的上一帧ORB特征点之间的特征距离,选择出特征距离最小的待匹配ORB特征点作为选中的待匹配ORB特征点;当选中的待匹配ORB特征点的特征距离小于设置的特征距离阈值时,则将选中的待匹配ORB特征点和所述上一帧ORB特征点作为特征匹配对。
位姿判别单元H4,用于在特征匹配对的数量超过设置的特征匹配数量阈值,确定所述当前帧的位姿有效,否则所述当前帧的位姿无效。
图17是本申请装置实施例五中跟踪单元M21的第二种内部结构示意图,其他部分如装置实施例二所示,不再重复赘述。
如图17所示,该帧间跟踪单元M21可以根据基于参考关键帧的跟踪方法实现,包括:参考关键帧特征匹配单元N1、三维点确定单元N2、位姿优化单元N3。其中:
参考关键帧特征匹配单元N1,用于根据已建立的ORB字典,在已有的参考关键帧中确定ORB特征点,使得参考关键帧ORB特征点与当前帧ORB特征点的特征匹配。
三维点确定单元N2,用于将所述参考关键帧ORB特征点对应的三维点作为当前帧ORB特征点对应的三维点。
位姿优化单元N3,用于根据所述当前帧ORB特征点对应的三维点,利用非线性优化算法对预估的当前帧位姿进行优化,将优化后的结果作为当前帧位姿,所述预估的当前帧位姿为上一帧图像的位姿。
图18是本申请装置实施例六中跟踪单元M21的第三种内部结构示意图,其他部分如装置实施例二所示,不再重复赘述。
如图18所示,该帧间跟踪单元M21可以基于局部三维点跟踪的方法实现,包括:局部关键帧集合建立单元T1、局部三维点集合建立单元T2、局部三维点投影单元T3、特征匹配单元T4、当前帧位姿确定单元T5。其中:
局部关键帧集合建立单元T1,用于计算当前帧ORB特征点对应的三维点,确定与当前帧ORB特征点对应相同三维点的关键帧,如果确定的关键帧ORB特征点与所述当前帧ORB特征点对应相同三维点,且相同三维点的个数超过设置的三维点对应数量阈值,则将所述确定的关键帧作为局部关键帧添加到局部关键帧集合中。
局部三维点集合建立单元T2,用于针对每一个局部关键帧,将所述局部关键帧ORB特征点对应的三维点添加到局部三维点集合中,且所述局部三维点集合中无重复的三维点。
局部三维点投影单元T3,用于将局部三维点集合中的所有三维点投影到当前帧上,将投影半径内的当前帧ORB特征点作为待匹配ORB特征点。
特征匹配单元T4,用于计算所述待匹配ORB特征点和所述投影点对应的局部关键帧ORB特征点之间的特征距离,选择出特征距离最小的待匹配ORB特征点作为选中的待匹配ORB特征点;当选中的待匹配ORB特征点的特征距离小于设置的特征距离阈值时,则将选中的待匹配ORB特征点和所述局部关键帧ORB特征点作为特征匹配对。
当前帧位姿确定单元T5,用于将匹配的局部关键帧ORB特征点对应的三维点作为所述当前帧选中的待匹配ORB特征点对应的三维点;根据所述当前帧选中的待匹配ORB特征点对应的三维点,利用非线性优化算法对预估的当前帧位姿进行优化,将优化后的结果作为当前帧位姿,所述预估的当前帧位姿为上一帧图像的位姿。
图19是本申请装置实施例七中跟踪单元M21的第四种内部结构示意图,其他部分如装置实施例二所示,不再重复赘述。
如图19所示,该帧间跟踪单元M21可以将基于运动模型的跟踪方法、基于参考关键帧的跟踪方法以及基于局部三维点的跟踪方法几种结合起来实现,包括:基于运动模型跟踪单元P1、基于参考关键帧跟踪单元P2、基于局部三维点跟踪单元P3、跟踪判别单元P4。其中:
基于运动模型跟踪单元P1,根据基于运动模型的跟踪方法进行帧间跟踪得到当前帧位姿,即:利用上述图16所述的装置实现。
基于参考关键帧跟踪单元P2,根据基于参考关键帧的跟踪方法进行帧间跟踪得到当前帧的位姿,即:利用上述图17所述的装置实现。
基于局部三维点跟踪单元P3,根据基于局部三维点的跟踪方法优化所述当前帧位姿,即:利用上述图18所述的装置实现。
跟踪判别单元P4,用于判断基于运动模型跟踪单元P1跟踪是否成功,如果成功,则执行基于局部三维点跟踪单元P3功能,否则先执行基于参考关键帧跟踪单元P2功能。
不管利用上述图16~19中哪一种结构,最终都可以实现帧间跟踪,对当前帧的位姿进行估计。
图20是本申请装置实施例八中局部优化单元M22的内部结构示意图,其他部分如装置实施例二所示,不再重复赘述。有关共视图、有效三维点集合、邻近关键帧集合以及次邻近关键帧集合的概念参考前面方法实施例部分,这里也不再重复。
如图20所示,局部优化单元M22包括:共视图更新单元Q1、邻近帧集合建立单元Q2、次邻近帧集合建立单元Q3、三维点集合更新单元Q4、三维点融合单元Q5、局部关键帧和局部三维点优化单元Q6。其中:
共视图更新单元Q1,用于根据新增加的关键帧更新已建立的共视图,所述共视图是由共视帧组成的集合,所述共视帧表示满足共视条件的关键帧,所述共视条件为不同关键帧的ORB特征点对应相同三维点的数量大于设置的数量阈值。
邻近帧集合建立单元Q2,用于在共视图中,确定当前关键帧的共视帧,将其按照与当前关键帧拥有相同三维点的数量降序排序,取其前N1帧作为邻近帧集合。
次邻近帧集合建立单元Q3,用于在共视图中,确定邻近帧集合中的每一个关键帧的共视帧,将其按照与当前关键帧拥有相同三维点的数量按降序排序,取其前N2帧作为次邻近帧集合。
三维点集合更新单元Q4,用于检测有效三维点集合中的三维点,所述有效三维点集合中的三维点由关键帧ORB特征点对应的三维点组成,根据与当前关键帧ORB特征点匹配情况确定非稳定三维点,并将非稳定三维点从有效三维点集合中删除;将当前关键帧ORB特征点分别与邻近帧集合和次邻近帧集合中所有共视帧的ORB特征点进行匹配,获得特征匹配对以及对应的三维点;将得到的三维点投影到所述当前关键帧,并分别投影到邻近帧集合和次邻近帧集合中的共视帧上,分别形成投影点,若在当前关键帧上的投影点和当前关键帧ORB特征点的像素距离在预设像素距离阈值内,且在所述共视帧上的投影点和共视帧的ORB特征点的像素距离也在所述预设像素距离阈值内,则计算得到的三维点有效,并在有效三维点集合未包含的情况下将计算得到的三维点保存在所述有效三维点集合中。
三维点融合单元Q5,将邻近帧集合和次邻近帧集合中所有共视帧ORB特征点对应的三维点投影到当前关键帧上,在所述当前关键帧上形成投影点,将所述投影点的投影半径内的当前关键帧ORB特征点作为待匹配ORB特征点;计算待匹配ORB特征点和所述投影点对应的共视帧ORB特征点之间的特征距离,选择出特征距离最小的待匹配ORB特征点作为选中的待匹配ORB特征点;若选中的待匹配ORB特征点的特征距离小于设置的特征距离阈值,则将选中的待匹配ORB特征点和所述共视帧ORB特征点作为特征匹配对;若选中的待匹配ORB特征点已有对应的三维点,则将投影到当前关键帧上的三维点和所述选中的待匹配ORB特征点已对应的三维点进行融合;否则,将所述投影的三维点作为所述选中的待匹配ORB特征点对应的三维点。
局部关键帧和局部三维点优化单元Q6,建立待优化关键帧集合和待优化三维点集合,所述待优化关键帧集合包括所述当前关键帧和当前关键帧的共视帧,所述待优化三维点集合包括待优化关键帧集合中每一个关键帧ORB特征点对应的三维点,且不重复;根据非线性优化算法对所述待优化关键帧集合中的每一个关键帧的位姿进行优化,以及对所述待优化三维点集合中每一个三维点的坐标进行优化。
利用上述局部优化单元M22可以实现帧间跟踪后的局部优化过程。实际应用中,如果不考虑局部关键帧和局部三维点对下一帧的影响,或者不需要利用局部关键帧和局部三维点对下一帧位姿进行估计,也可以不执行局部优化单元M22。
图21是本申请装置实施例九中平面拟合单元M23的内部结构示意图。如图21所示,平面拟合单元M23包括:旋转矩阵计算单元M231、平移向量计算单元M232。其中:
旋转矩阵计算单元M231,用于根据已有关键帧ORB特征点对应的三维点坐标计算得到平面方程,并根据该平面方程确定拟合平面坐标系的旋转矩阵。
平移向量计算单元M232,用于根据所述已有关键帧ORB特征点对应的三维点坐标计算其平均值,将计算得到的平均值作为所述拟合平面坐标系的平移向量。
利用上述逻辑单元可以得到平面坐标系的旋转矩阵R和平移向量t,从而达到平面拟合的目的。
图22是本申请装置实施例十中位姿转换单元M24的内部结构示意图。如图22所示,位姿转换单元M24包括:第一位姿转换单元M241、第二位姿转换单元M242。其中:
第一位姿转换单元M241,用于根据第一关键帧相机坐标系和全球定位系统坐标系之间的转换关系,将当前帧位姿转换到所述全球定位系统坐标系下。
第二位姿转换单元M242,用于根据全球定位系统坐标系和拟合平面坐标系之间的转换关系,将当前帧位姿从全球定位系统坐标系下转换到拟合平面坐标系下。
利用上述逻辑单元可以将当前帧位姿从第一关键帧相机坐标系下转换到拟合平面坐标系下,以便于后续的拼接工作。本申请装置实施例十的各逻辑单元的实现可以参考上述方法实施例十的详细描述。
图23是本申请装置实施例十一中拼接单元M3的内部结构示意图。此时,已经将帧间跟踪得到的当前帧位姿转换到了拟合平面坐标系下,无人机所拍摄的图像现都用统一的平面坐标系表示,因此可以很方便地进行拼接。如图23所示,拼接单元M3包括单应变换计算单元M31、角点坐标计算单元M32、拼接执行单元M33。
其中:
单应变换计算单元M31,用于计算当前帧与已完成拼接图像之间的单应变换关系。
角点坐标计算单元M32,用于根据所述单应变换关系确定当前帧的四个角点在已完成拼接图像中的坐标。
拼接执行单元M33,用于根据当前帧和已完成拼接图像之间的单应变换关系,从已完成拼接图像中确定拼接后扩展部分的像素值。
由此,将当前帧拼接到已完成拼接的图像上,成为一幅更大的全景图。实际应用中,由于已完成拼接图像中有一部分可能与当前帧图像是重叠的,还可以针对重叠区域采用像素融合的方法,比如高斯普拉斯金字塔方法对像素进行融合,从而使拼接部位不明显,而得到更为平滑的图像。
本申请实施例还提供一种计算机可读介质,所述计算机可读存储介质存储指令,所述指令在由处理器执行时使得所述处理器执行如上所述的无人机航拍图像拼接方法的步骤。实际应用中,所述的计算机可读介质可以为RAM、ROM、EPROM、磁盘、光盘等等,并不用于限制本申请保护的范围。
本申请所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器和嵌微控制器等来实现。因此这种可以实现本申请所述方法的硬件也可以构成本申请。
本申请实施例还提供一种电子设备,可以是计算机或服务器,其中可以集成本申请上述装置实施例的无人机航拍图像拼接装置。如图24所示,其示出了本申请装置实施例十二所涉及的电子设备。
该电子设备可以包括一个或者一个以上处理核心的处理器R1、一个或一个以上计算机可读存储介质R2。该电子设备还可以包括电源R3、输入输出单元R4。本领域技术人员可以理解,图24中并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中:
处理器R1是该电子设备的控制部分,利用各种接口和线路连接各个部分,通过运行或执行存储在计算机可读存储介质R2中的软件程序,执行各种功能和处理数据,完成图像的拼接工作。
计算机可读存储介质R2可用于存储软件程序,即存储上述无人机航拍图像拼接方法中涉及的程序。
处理器R1通过运行存储在计算机可读存储介质R2的软件程序,从而执行各种功能应用以及数据处理。计算机可读存储介质R2可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如图像播放功能等)等;存储数据区可存储根据电子设备需要使用的数据等(比如无人机拍摄图像)。此外,计算机可读存储介质R2可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,计算机可读存储介质R2还可以包括存储器控制器,以提供处理器R1对计算机可读存储介质R2的访问。
电子设备还包括给各个部件供电的电源R3,优选的,电源R3可以通过电源管理系统与处理器R1逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源R1还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入输出单元R4,比如可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入;比如可用于显示由用户输入的信息或提供给用户的信息以及服务器的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。
应用本申请上述各实施例,可以将接收到的当前帧图像通过位姿估计的方式得到当前帧位姿,并将当前帧转换到拟合平面坐标系下,然后再利用当前帧和已有图像之间的单应变换关系完成当前帧和已拼接图像的进一步拼接。由于位姿主要是通过已有图像估计得到,已有图像是已经完成拼接的图像,其位姿是已知的,且和当前帧的位姿之间存在关系,可以直接利用已有图像直接估计当前帧的位姿,比现有技术采用基于特征的匹配方法(比如LBP、SIFT算法等)计算要简便得多,因而可以大大减少图像拼接整体的计算量,从而提高拼接工作的整体效率另外,由于本申请方案还可以先将图像位姿转换到全球定位系统坐标系,再转换到拟合平面坐标系下,既统一了坐标系,有具备真实尺度,进一步使得绘制出来的全景图更加具有实用性。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。