CN112862674A - 一种基于AutoStitch算法的多图像自动拼接方法和系统 - Google Patents
一种基于AutoStitch算法的多图像自动拼接方法和系统 Download PDFInfo
- Publication number
- CN112862674A CN112862674A CN202011428162.7A CN202011428162A CN112862674A CN 112862674 A CN112862674 A CN 112862674A CN 202011428162 A CN202011428162 A CN 202011428162A CN 112862674 A CN112862674 A CN 112862674A
- Authority
- CN
- China
- Prior art keywords
- image
- spliced
- images
- algorithm
- matching
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 69
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 66
- 239000011159 matrix material Substances 0.000 claims abstract description 80
- 230000004927 fusion Effects 0.000 claims abstract description 15
- 238000000354 decomposition reaction Methods 0.000 claims abstract description 7
- 238000011084 recovery Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 13
- 238000001514 detection method Methods 0.000 claims description 10
- 238000013519 translation Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000002474 experimental method Methods 0.000 description 9
- 238000005457 optimization Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 4
- 238000012216 screening Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 101100460704 Aspergillus sp. (strain MF297-2) notI gene Proteins 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000009795 derivation Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000006052 Horner reaction Methods 0.000 description 1
- 238000012897 Levenberg–Marquardt algorithm Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007526 fusion splicing Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000007500 overflow downdraw method Methods 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4038—Image mosaicing, e.g. composing plane images from plane sub-images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/30—Determination of transform parameters for the alignment of images, i.e. image registration
- G06T7/33—Determination of transform parameters for the alignment of images, i.e. image registration using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/10—Image acquisition modality
- G06T2207/10016—Video; Image sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20212—Image combination
- G06T2207/20221—Image fusion; Image merging
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Processing (AREA)
Abstract
本发明提供一种基于AutoStitch算法的多图像自动拼接方法和系统,拼接方法包括如下步骤:获取待拼接图像;对尺寸大于设定阈值的待拼接图像进行缩放处理;对各待拼接图像的特征点进行提取;对图像的特征点进行匹配;将置信度最高的设定数量个匹配点作为最终匹配点,使用奇异值分解获取单应矩阵;根据单应矩阵计算各待拼接图像的内参矩阵和外参矩阵;将各待拼接图像投影到拼接结果图上;获取各待拼接图像的接缝线,生成接缝线掩膜图像;对经过缩放处理的待拼接图像进行恢复;使用多层融合算法对各待拼接图像进行融合。本发明提供的技术方案能够解决现有技术中图像拼接方法实时性较差的问题。
Description
技术领域
本发明涉及多图像自动拼接技术领域,具体涉及一种基于AutoStitch算法的多图像自动拼接方法和系统。
背景技术
无人机航拍的图像拼接是基于计算机视觉技术和计算机软件技术,将多张待拼接的无人机航拍的图像拼接成一张更高分辨率的图像的过程。无人机航拍图像是一种高分辨率的彩色图像,具有拍摄范围广,图像数量多(可达100张以上)的特点。由于图像数量多,无人机航拍图像拼接耗时长,拼接的实时性较差。
西安电子科技大学在其申请的专利文献“基于缝合线的无人机航拍图像拼接方法”(专利申请号:2017103182626,公开号:CN107146213A)中提出了一种基于缝合线的无人机航拍图像拼接方法。该方法基于8自由度的单应性矩阵模型,在矩阵精细化阶段使用了基于列文伯格马夸尔特的光束法平差优化单应性矩阵;之后通过消除跨重叠区域遮挡,求解缝合线所在的区域;最后在最小连通域内递归回溯搜索最短路径,实现了图像拼接。该方法采用等距线领域搜索方法,进一步缩小了缝合线的最小连通子区域,有效改善了缝合线融合时出现的局部“错位”现象,提高了拼接效率。但是,该方法仍然存在的不足之处在于,该方法基于8 自由度的单应性矩阵模型并使用光束法平差优化,每张图像需要优化8个参变量,且列文伯格马夸尔特算法自身迭代次数过多,导致该方法整体耗时较多,根据该专利所公开的仿真实验的信息,该方法拼接61张图耗时14747s。因此该方法的实时性较差。
周敏在其发表的论文“基于无人机航拍的公路图像拼接方法研究”(计算机与现代化, 2016(10):49-53.)提出一种针对无人机航拍公路图像进行拼接的优化方法。该方法首先通过 SURF特征检测方法提取公路图像关键点,然后利用BBF,在获取单应性矩阵之后重新分割图像,并再次检测特征点进行图像配准,进行特征点匹配以及筛选,得到图像的变换矩阵,实现了针对公路的优化算法,最后利用图像加权融合的方法对公路图像进行融合拼接,得到一条完整的公路图像。该方法存在的不足之处在于,该方法在对特征点匹配以及筛选阶段的优化算法之中,需要多次检测特征点和重复计算单应性矩阵,导致该方法耗时过长。
发明内容
本发明的目的是提供一种基于AutoStitch算法的多图像自动拼接方法和系统,以解决现有技术中图像拼接方法实时性较差的问题。
为实现上述目的,本发明采用如下技术方案:
一种基于AutoStitch算法的多图像自动拼接方法,包括如下步骤:
步骤一:获取待拼接图像序列;所述待拼接图像序列中包括多张待拼接图像;
步骤二:对尺寸大于设定阈值的待拼接图像进行缩放处理,使其尺寸不大于设定阈值;
步骤三:使用特征点检测算法对各待拼接图像的特征点进行提取;使用BBF匹配算法,通过建立优先队列对各待拼接图像的特征点进行排序,并对图像的特征点进行匹配;将置信度最高的设定数量个匹配点作为最终匹配点,使用奇异值分解获取单应矩阵;
步骤四:根据单应矩阵计算各待拼接图像的内参矩阵和外参矩阵;
步骤五:将各待拼接图像投影到拼接结果图上,并计算各待拼接图像在拼接结果图中四个角的坐标;
步骤六:获取各待拼接图像的接缝线,生成接缝线掩膜图像;
步骤七:对经过缩放处理的待拼接图像进行恢复比例恢复相机内参中焦距和平移参数处理,以及恢复在拼接后的左上角点坐标和接缝图像掩膜的尺寸处理;
步骤八:使用多层融合算法对各待拼接图像进行融合。
进一步的,在获取各待拼接图像的内参矩阵后和外参矩阵后,使用光束法平差对其进行精细化处理。
进一步的,使用BBF匹配算法对各待拼接图像进行特征点匹配后,使用Ransac算法去除其中错误的匹配点对。
进一步的,所述步骤一中获取待拼接图像的方法为:采用无人机进行航拍,得到视频;然后对视频进行剪辑,得到多张待拼接图像;将各待拼接图像按照拍摄的顺序进行排列,即可得到待拼接图像序列;所述待拼接图像序列中待拼接图像的数量大于100张。
进一步的,所述投影面为平面、柱形面或者球形面。
一种基于AutoStitch算法的多图像自动拼接系统,包括处理器和存储器,存储器上存储有用于在处理器上执行的计算机程序,所述处理器执行该计算机程序时,实现基于AutoStitch 算法的多图像自动拼接方法,该方法包括如下步骤:
步骤一:获取待拼接图像序列;所述待拼接图像序列中包括多张待拼接图像;
步骤二:对尺寸大于设定阈值的待拼接图像进行缩放处理,使其尺寸不大于设定阈值;
步骤三:使用特征点检测算法对各待拼接图像的特征点进行提取;使用BBF匹配算法,通过建立优先队列对各待拼接图像的特征点进行排序,并对图像的特征点进行匹配;将置信度最高的设定数量个匹配点作为最终匹配点,使用奇异值分解获取单应矩阵;
步骤四:根据单应矩阵计算各待拼接图像的内参矩阵和外参矩阵;
步骤五:将各待拼接图像投影到拼接结果图上,并计算各待拼接图像在拼接结果图中四个角的坐标;
步骤六:获取各待拼接图像的接缝线,生成接缝线掩膜图像;
步骤七:对经过缩放处理的待拼接图像进行恢复比例恢复相机内参中焦距和平移参数处理,以及恢复在拼接后的左上角点坐标和接缝图像掩膜的尺寸处理;
步骤八:使用多层融合算法对各待拼接图像进行融合。
进一步的,在获取各待拼接图像的内参矩阵后和外参矩阵后,使用光束法平差对其进行精细化处理。
进一步的,使用BBF匹配算法对各待拼接图像进行特征点匹配后,使用Ransac算法去除其中错误的匹配点对。
进一步的,所述步骤一中获取待拼接图像的方法为:采用无人机进行航拍,得到视频;然后对视频进行剪辑,得到多张待拼接图像;将各待拼接图像按照拍摄的顺序进行排列,即可得到待拼接图像序列;所述待拼接图像序列中待拼接图像的数量大于100张。
进一步的,所述投影面为平面、柱形面或者球形面。本发明的有益效果:
本发明所提供的技术方案,对尺寸大于设定阈值的待拼接图像进行缩放处理,使其尺寸不大于设定阈值,然后在融合阶段使用原始尺寸的待拼接图像进行融合,从而实现在特征点提取时先对待拼接图像的降采样,减少了待拼接图像特征点检测数目,进而减少了特征点检测阶段的耗时,提高了实时性。因此本发明所提供的技术方案能够解决现有技术中图像拼接方法实时性较差的问题。
附图说明
图1是本发明方法实施例中基于AutoStitch算法的多图像自动拼接方法的流程图。
具体实施方式
方法实施例:
本实施例提供一种基于AutoStitch算法的多图像自动拼接方法,用于对100幅以上的图像进行自动拼接处理,解决现有技术中在对100幅以上图像进行拼接时实时性较差的问题。
本实施例所提供的基于AutoStitch算法的多图像自动拼接方法,其流程如图1所示,包括如下步骤:
步骤一:获取待拼接图像序列;所述待拼接图像序列中包括多张待拼接图像;
步骤二:对尺寸大于设定阈值的待拼接图像进行缩放处理,使其尺寸不大于设定阈值;
步骤三:使用特征点检测算法对各待拼接图像的特征点进行提取;使用BBF匹配算法,通过建立优先队列对各待拼接图像的特征点进行排序,并对图像的特征点进行匹配;将置信度最高的设定数量个匹配点作为最终匹配点,使用奇异值分解获取单应矩阵;
步骤四:根据单应矩阵计算各待拼接图像的内参矩阵和外参矩阵;
步骤五:将各待拼接图像投影到拼接结果图上,并计算各待拼接图像在拼接结果图中四个角的坐标;
步骤六:获取各待拼接图像的接缝线,生成接缝线掩膜图像;
步骤七:对经过缩放处理的待拼接图像进行恢复比例恢复相机内参中焦距和平移参数处理,以及恢复在拼接后的左上角点坐标和接缝图像掩膜的尺寸处理;
步骤八:使用多层融合算法对各待拼接图像进行融合。
在步骤一中,获取待拼接图像序列的方法为:
采用无人机进行航拍,得到视频,然后对获取的视频进行剪辑,得到多张待拼接图像;将各待拼接图像按照拍摄的顺序进行排列,即可得到待拼接图像序列。在待拼接图像序列中,待拼接图像的数量大于100张。
在步骤二中,对待拼接图像序列进行预处理时,如果待拼接图像的尺寸大于设定阈值Size_Threshold,则等比缩放至Size_Threshold;如果小于Size_Threshold则不进行处理,该预处理实现的过程为:
设图像尺寸的设定阈值为Size_Threshold;
判断待拼接图像的尺寸是否大于Size_Threshold;
如果不大于,则不对其进行缩放处理;
如果大于,则计算该待拼接图像的缩放比例work_scale,计算公式为:
然后采用该缩放比例对该待拼接图像进行缩放处理:
将该待拼接图像的宽度设置为width*work_scale,高度设置为height*work_scale。
在步骤七中,对缩放处理过的待拼接图像进行恢复处理的过程为:
获取待拼接图像的缩放比例work_scale;
根据待拼接图像的缩放比例work_scale计算其恢复比例compose_work_aspect,其计算公式为:
compose_work_aspect=1/work_scale;
根据待拼接图像的恢复比例compose_work sapect恢复相机内参中的焦距和平移参数:
假设第i张待拼接图像的相机矩阵为cameras[i],其焦距为cameras[i].focal,在x轴的平移量为cameras[i].ppx,y轴的平移量为cameras[i].ppy;恢复后第i张待拼接图像的相机矩阵为camerasl[i],焦距为camerasl[i].focal,在x轴的平移量为camerasl[i].ppx,y轴的平移量为camerasl[i].ppy,则
camerasl[i].focal=cameras[i].focal*compose_work_aspect
camerasl[i].ppx=cameras[i].ppx*compose_work_aspect
camerasl[i].ppy=cameras[i].ppy*compose_work_aspect;
理论上相机的外参数矩阵并不会受到降采样的影响,因为外参只负责图片的旋转变化,和图像的尺寸变化无关,所以不需要恢复外参矩阵;
根据待拼接图像的恢复比例compose_work sapect,恢复其在拼接后的左上角点坐标 corners[i]和接缝图像掩膜seam mask[i]的尺寸:
设待拼接图像恢复前,其左上角点坐标在x轴的坐标为corners[i].x,在y轴的坐标为corners[i].y;待拼接图像恢复后左上角点坐标在x轴的坐标为cornersl[i].x,在y轴的坐标为cornersl[i].y;待拼接图像恢复前其接缝图像掩膜的宽度为seam_mask[i].widtth,高度为seam_mask[i].heigth,恢复后其接缝图像掩膜的宽度为seam_maskl[i].widtth,高度为 seam_maskl[i].heigth,则
cornersl[i].x=corners[i].x*compose_work_aspect
cornersl[i].y=corners[i].y*compose_work_aspect
seam_maskl[i].widtth=seam_mask[i].widtth*compose_work_aspect
seam_maskl[i].heigth=seam_mask[i].heigth*compose_work_aspect。
本实施例在步骤三中采用的特征点检测算法是Sift算法,其对各待拼接图像的特征点进行提取的方法为:
步骤1.1:生成待拼接图像的高斯金字塔,根据待拼接图像的高斯金字塔获取其高斯差分金字塔,对待拼接图像中的特征点进行定位。
对待拼接图像进行高斯平滑处理和降采样处理,得到一系列大小不一的图像,将这些图像至上而下按照从大到小的顺序进行排列,得到待拼接图像的高斯金字塔模型。
待拼接图像的高斯金字塔模型层数为n,则
n=log2M-t
本实施例中待拼接图像为正方形图像,其宽度为M,t为待拼接图像高斯金字塔模型塔顶图像的最小维数。
对尺度空间差分函数进行曲线拟合
其中X=(x,y,σ)T,σ为待拼接图像上像素点像素值正态分布的标准差。求导并让方程等于零,得到极值点的偏移量
对应极值点方程的值为
根据上述公式计算出待拼接图像中的极值点,并将其作为待拼接图像的特征点。
步骤1.2:采用Harris角点检测算法获取角点,计算高斯差分图像响应值的主曲率,去除待拼接图像中特征点的边缘角点。
主曲率可以通过2×2的Hessian矩阵H间接求得,公式为:
其中Dxx(x,y)、Dxy(x,y)、Dyx(x,y)和Dyy(x,y)表示高斯差分图像的坐标为(x,y)的极值点在x轴和y轴上的二阶偏导数。
Tr(H(x,y))=Dxx+Dyy=α+β
Det(H(x,y))=DxxDyy-DyxDxy=αβ
如果H矩阵的第一个特征值α大于第二个特征值β,则该特征点是边缘角点,因此本实施例中根据如下公式判断是否为边缘角点:
其中λ为参考值,Tr(H(x,y))表示矩阵H的迹,Det(H(x,y))表示矩阵H的行列式,本实施例中其取值为10。
如果满足公式则判断该特征点不为边缘角点,将该特征点保留,否则将该特征点剔除。
步骤1.3:设特征点所在的尺度空间为L(x,y),则其梯度的模值为
梯度的方向如下:
步骤1.4:获取各特征点的主方向。
对于一个特征点,其主方向的获取方法为:以特征点为原点,以r为半径,获取特征点的邻域,并计算特征点邻域内各个像素点的方向,根据关键点邻域内各像素点的方向确定关键点的主方向。
r的值为
r=3×1.5σ
将邻域内各像素点按照方向分为36等分,每份的区间为10°,将像素点最多的区间作为该特征点的主方向。
步骤1.4:为特征点生成特征点描述符。
首先保证特征描述符具有旋转不变性,需要将特征点邻域内的坐标轴旋转角度;然后以特征点为中心,划分16×16的窗口,计算这256个像素点的梯度大小和方向;最后,再将这256 个点划分为16个4×4的小窗口,统计4×4的窗口中每个像素点的梯度幅值和方向,将方向归为8等分的其中一类,并且将具有相同方向的像素点的梯度大小累加;一共有16个小窗口,一共有128个特征值,组成128维的特征向量。将特征点梯度的模值、主方向和特征向量作为其特征描述符。
为了保证处理速度,采用OpenMP技术对各待拼接图像的特征点提取过程进行并行加速,设置并行线程数Thread_number大于等于处理器的CPU核数。
使用BBF匹配算法对特征点进行匹配,匹配方法的流程为:
步骤2.1:获取待匹配的两幅待拼接图像的所有特征点的描述符;
设两幅待拼接图像分别为待拼接图像1待拼接和图像2,待拼接图像1和待拼接图像2的特征点描述符分别为descriptors1和descriptors2;
步骤2.2:使用基于BBF的K-D树在待拼接图像2中搜索与待拼接图像1中特征点a相似度最高的2个特征点,即待拼接图像2中与待拼接图像1中特征点a欧氏距离最小的两个特征点,记为特征点b1和特征点b2,其中特征点b1为相似度最高的特征点,b2为相似度其次的特征点;
步骤2.3:比较特征点a到特征点b1和特征点b2的欧氏距离,分别记为Lab1、Lab2,如果满足公式:
则将特征点b1作为特征点a匹配的特征点,保存匹配对的信息,其中ρ为设定的阈值。
使用Ransac算法去除误匹配点对的方法包括如下步骤:
步骤3.1:首先确定概率q、重映射误差阈值τ以及迭代次数N。
步骤3.2:迭代循环N次,每次循环包括如下步骤:
步骤3.2.1:随机抽取4对匹配点,其中同一幅图像中任意3个点不共线;
步骤3.2.2:通过奇异值分解求得待拼接图像2与待拼接图像1之间的单应性矩阵H;
设点待拼接图像1中点P1的齐次坐标为(u1,v1,1),该点在待拼接图像2中的匹配点P2的齐次坐标为(u2,v2,1),且
则
将其写成齐次形式,则
由于该式不是线性无关的,因此需提出线性相关的相,得到线性无关的表达式
根据上式,采用最小二乘法计算出单应性矩阵H中的该参数。
步骤3.2.3:由重映射误差筛选匹配点,得到内点数量,进而得到内点数目除以总匹配点数目ε;
步骤3.2.4:根据如下公式更新迭代次数N:
其中S为抽取的样本数量。
步骤3.3:筛选置信度最高的前MAX对匹配点作为最终的匹配点对;如果匹配点对的数量小于MAX,则保留所有匹配点对。匹配点对的排序通过计算匹配两个匹配特征点的欧几里得距离获得。
计算待拼接图像的内参数矩阵和外参数矩阵的方法包括如下步骤:
步骤4.1:获取待拼接图像的单应性矩阵H、内参矩阵和外参矩阵,待拼接图片内参矩阵和外参矩阵为相机矩阵和旋转矩阵。待拼接图像的内参矩阵通过相机的焦距得到,外参矩阵通过罗德里格斯公式变化为旋转变量。
其中,K1和R1分别为待拼接图像1的内参矩阵和外参矩阵,K2和R2分别为待拼接图像2 的内参矩阵和外参矩阵,R21表示待拼接图像2到待拼接图像1的相对旋转矩阵。
设待拼接图像1和待拼接图像2对应的相机焦距分别为f1和f2,则其内参矩阵分别为
设
则
因为旋转矩阵的前两行有相同的范数,所以
并且两者是正交,所以
r11r21+r12r22+r13r23=0
当h1h4≠-h3h5时
同理可得
当h7≠h8时
当h7≠0且h8≠0时
设待拼接图像1的旋转矩阵为单位矩阵,即:
根据下式求出R2
R2=R1R21
步骤4.2:使用光束法平差精细化相机矩阵,当光束法平差中的LM算法迭代次数大于K时,统计最近K次的射线误差的方差,如果小于阈值则停止迭代,每次迭代包括如下步骤:
步骤4.2.1:设共有n张待拼接图像,其中第待拼接图像的相机焦距为、相对于在相机坐标系中相对于X轴的旋转量、图像在相机坐标系中相对于Y轴的旋转量、图像在相机坐标系中相对于Z轴的旋转量分别为f,rx,ry,rz,每张待拼接图像的内参矩阵和外参矩阵依次排列,得到一个向量;将各待拼接图像的参数变量组成一个n×4行的列向量cam_params;
步骤4.2.2:遍历待拼接图像序列,并将每个待拼接图像的内参矩阵和外参矩阵信息保存在向量cam_params之中;
步骤4.2.3:根据待拼接图像的配对信息,统计待拼接图像中已匹配的特征点对数量,设该数量为matches;
步骤4.2.4:使用LM算法优化步骤进行迭代,即:
(a)计算雅可比矩阵:建立matches×3行、n×4列的雅可比矩阵jac,设置差分求导步进step为0.001,遍历所有待拼接图像的四个参变量,利用如下公式计算雅可比矩阵jac中误差对于每个参数变量的导数值:
h(f,rx,ry,rz)为对应待拼接图像的单应性矩阵,该到拼接图像对应相机的焦距为f,在该相机的坐标系下关于X轴、Y轴和Z轴的旋转量rx,ry,rz;Δ为步进step。
雅可比矩阵jac中,每行存储的数据分别为对应匹配点的误差相对于焦距为f,以及X 轴、Y轴和Z轴的旋转量rx,ry,rz的倒数值。
(b)计算误差值:建立matches×3行的列向量,利用如下公式进行计算:
建立的matches×3行的列向量中,每行的数据分别为对应匹配点对在X轴、Y轴和Z轴上的误差。
使用投影算法计算最终拼接结果图上,计算每张待拼接图像上特征点在拼接结果图的坐标。本实施例中的投影面采用的是平面,作为其他实施方式,可以采用柱面或者球面作为投影面。本是实施例中计算待拼接图像上特征点在拼接结果图的坐标的方法为:
步骤5.1:基于平面投影公式:
公式为世界坐标系下点P(X,Y,Z)和待拼接图像中点p(x,y,z)对应的关系,R为该待拼接图像的外参矩阵,K为待拼接图像的内参矩阵。设该点在投影面上的坐标为p(u,v),则其计算公式为:
步骤5.2:确定各待拼接图像投影到拼接结果图上时其四个角点的坐标,并确定拼接结果图的大小。
使用接缝线算法寻找待拼接图像的接缝线,生成接缝线掩膜图像。本实施例中使用动态规划算法寻找接缝线,其步骤为:
步骤6.1:在重合区域待拼接图像第一行中的各列像素点组成多条接缝线,计算其准则值作为其强度值,而其列值作为接缝线的当前点;
步骤6.2:对接缝线进行扩展,将各条接缝线与当前位置最近的下一行的三个候选点的准则值与当前位置左右两个候选点的准则值进行比较,取准则值最小的列作为接缝线的扩展方向,并更新此接缝线的强度值;
步骤6.3:若当前接缝线处的点位于重叠待拼接图像的最后一行,则执行步骤6.4,否则返回步骤6.2;
步骤6.4:在所有的候选接缝线之中选择准则值最小的接缝线为最佳缝合线。
使用多层融合算法对图像进行融合,在多层融合步骤的生成高斯金字塔阶段使用OpenMP 技术进行多线程加速:
步骤7.1:对于所有待拼接图像,建立拉普拉斯金字塔。
各待拼接图像的拉普斯金字塔的每一层图像是通过高斯金字塔的每一层减去其上一层图像的扩展得到,公式为:
Ln=Gn-f(Gn+1)
其中Gn和Ln分别表示待拼接图像高斯金字塔和拉普拉斯金字塔第n层,f(Gn+1)表示待拼接图像高斯金字塔第n+1层的扩展运算函数。
使用OpenMP在这一步骤进行并行加速,线程数设置同步骤(3a5);
步骤7.2:对拉普拉斯金字塔中的不同区域的不同层进行合并,得到合并金字塔。
在合并过程,对于拉普拉斯金字塔中每一层的图像,都基于该层的接缝线(每一层的接缝线都根据之前的接缝线进行扩展或降采样),图像只取接缝线一边,接缝线另一边只取另一个匹配的图像,以此类推,将拉普拉斯金字塔的不同区域的不同层进行合并。
步骤7.3:对合并后的金字塔进行逆拉普拉斯变换,得到融合金字塔,公式如下:
Rn=Sn+f(Rn+1)
其中,Sn为合并后的金字塔的第n层,Rn为融合金字塔,f(Rn+1)f表示融合金字塔第n+1 层的扩展函数。
此步骤中,OpenCV将融合工作交给MultiBandBlender类的一个实例blender来完成,需要对blender实例进行加锁操作对象才能对所有图像进行多层融合。步骤7.1的线程建立好高斯金字塔之后需要此步骤进行阻塞等待。本步骤中的融合金字塔是从顶层向底层逐层计算得到的,其底层图像就是最后的融合图像。
下面对本实施例所提供的基于AutoStitch算法的多图像自动拼接方法进行仿真实验,以说明其技术效果。
首先,手动设置无人机的摄像头方向垂直于地面,之后手动控制无人机在固定高度沿单一方向飞行,再之后收集单向飞行过程中的航拍视频;
然后,基于OpenCV的opencv_video库对视频进行采样,获取到了待拼接图像序列。图像序列的分辨率为1920*1080像素,最后获取的待拼接图像数目达到100张以上。
实验1使用本实施例所提供的基于AutoStitch算法的多图像自动拼接方法对采集的第一组待拼接航拍图像序列进行拼接。
实验2,使用本实施例对采集的第二组航拍图像进行拼接。
实验3,使用本实施例对采集的第三组航拍图像进行拼接。
实验4,使用本实施例对采集的第四组航拍图像进行拼接。
最后,仿真实验将本发明的拼接耗时和拼接效果和市面上的两种拼接软件:AutoStitch 2.2和PanoramaStudio进行了对比。
上述实验1,实验2,实验3和实验4的四组实测数据统计结果,如表1所示。
表1
从表1中数据可以看出,在100+数目的无人机航拍图像拼接的应用场景中,本实施例所提供的基于AutoStitch算法的多图像自动拼接方法的拼接效果总体上好于AutoStitch2.2和 Panorama,四组拼接图像序列均能正确拼接,并还原航拍的现实高分辨率场景。在正确拼接的前提下,拼接耗时上,本发明在两种接缝线算法下的拼接速度都优于AutoStitch2.2。四组拼接实验中,本发明的拼接耗时均未超过120s,对于航拍拼接的应用场景具有较好的实时性。
系统实施例:
本实施例提供一种基于AutoStitch算法的多图像自动拼接系统,包括处理器和存储器,存储器上存储有用于在处理器上执行的计算机程序,处理器执行该计算机程序时,实现如上述方法实施例中提供的基于AutoStitch算法的多图像自动拼接方法。
以上公开的本发明的实施例只是用于帮助阐明本发明的技术方案,并没有尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。
本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不会使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种基于AutoStitch算法的多图像自动拼接方法,其特征在于,包括如下步骤:
步骤一:获取待拼接图像序列;所述待拼接图像序列中包括多张待拼接图像;
步骤二:对尺寸大于设定阈值的待拼接图像进行缩放处理,使其尺寸不大于设定阈值;
步骤三:使用特征点检测算法对各待拼接图像的特征点进行提取;使用BBF匹配算法,通过建立优先队列对各待拼接图像的特征点进行排序,并对图像的特征点进行匹配;将置信度最高的设定数量个匹配点作为最终匹配点,使用奇异值分解获取单应矩阵;
步骤四:根据单应矩阵计算各待拼接图像的内参矩阵和外参矩阵;
步骤五:将各待拼接图像投影到拼接结果图上,并计算各待拼接图像在拼接结果图中四个角的坐标;
步骤六:获取各待拼接图像的接缝线,生成接缝线掩膜图像;
步骤七:对经过缩放处理的待拼接图像进行恢复比例恢复相机内参中焦距和平移参数处理,以及恢复在拼接后的左上角点坐标和接缝图像掩膜的尺寸处理;
步骤八:使用多层融合算法对各待拼接图像进行融合。
2.根据权利要求1所述的基于AutoStitch算法的多图像自动拼接方法,其特征在于,在获取各待拼接图像的内参矩阵后和外参矩阵后,使用光束法平差对其进行精细化处理。
3.根据权利要求1所述的基于AutoStitch算法的多图像自动拼接方法,其特征在于,使用BBF匹配算法对各待拼接图像进行特征点匹配后,使用Ransac算法去除其中错误的匹配点对。
4.根据权利要求1所述的基于AutoStitch算法的多图像自动拼接方法,其特征在于,所述步骤一中获取待拼接图像的方法为:采用无人机进行航拍,得到视频;然后对视频进行剪辑,得到多张待拼接图像;将各待拼接图像按照拍摄的顺序进行排列,即可得到待拼接图像序列;所述待拼接图像序列中待拼接图像的数量大于100张。
5.根据权利要求1-4任意一项所述的基于AutoStitch算法的多图像自动拼接方法,其特征在于,所述投影面为平面、柱形面或者球形面。
6.一种基于AutoStitch算法的多图像自动拼接系统,包括处理器和存储器,存储器上存储有用于在处理器上执行的计算机程序,其特征在于,所述处理器执行该计算机程序时,实现基于AutoStitch算法的多图像自动拼接方法,该方法包括如下步骤:
步骤一:获取待拼接图像序列;所述待拼接图像序列中包括多张待拼接图像;
步骤二:对尺寸大于设定阈值的待拼接图像进行缩放处理,使其尺寸不大于设定阈值;
步骤三:使用特征点检测算法对各待拼接图像的特征点进行提取;使用BBF匹配算法,通过建立优先队列对各待拼接图像的特征点进行排序,并对图像的特征点进行匹配;将置信度最高的设定数量个匹配点作为最终匹配点,使用奇异值分解获取单应矩阵;
步骤四:根据单应矩阵计算各待拼接图像的内参矩阵和外参矩阵;
步骤五:将各待拼接图像投影到拼接结果图上,并计算各待拼接图像在拼接结果图中四个角的坐标;
步骤六:获取各待拼接图像的接缝线,生成接缝线掩膜图像;
步骤七:对经过缩放处理的待拼接图像进行恢复比例恢复相机内参中焦距和平移参数处理,以及恢复在拼接后的左上角点坐标和接缝图像掩膜的尺寸处理;
步骤八:使用多层融合算法对各待拼接图像进行融合。
7.根据权利要求6所述的基于AutoStitch算法的多图像自动拼接系统,其特征在于,在获取各待拼接图像的内参矩阵后和外参矩阵后,使用光束法平差对其进行精细化处理。
8.根据权利要求6所述的基于AutoStitch算法的多图像自动拼接系统,其特征在于,使用BBF匹配算法对各待拼接图像进行特征点匹配后,使用Ransac算法去除其中错误的匹配点对。
9.根据权利要求6所述的基于AutoStitch算法的多图像自动拼接系统,其特征在于,所述步骤一中获取待拼接图像的方法为:采用无人机进行航拍,得到视频;然后对视频进行剪辑,得到多张待拼接图像;将各待拼接图像按照拍摄的顺序进行排列,即可得到待拼接图像序列;所述待拼接图像序列中待拼接图像的数量大于100张。
10.根据权利要求6-9任意一项所述的基于AutoStitch算法的多图像自动拼接系统,其特征在于,所述投影面为平面、柱形面或者球形面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011428162.7A CN112862674B (zh) | 2020-12-07 | 2020-12-07 | 一种多图像自动拼接方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011428162.7A CN112862674B (zh) | 2020-12-07 | 2020-12-07 | 一种多图像自动拼接方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112862674A true CN112862674A (zh) | 2021-05-28 |
CN112862674B CN112862674B (zh) | 2024-02-13 |
Family
ID=75997014
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011428162.7A Active CN112862674B (zh) | 2020-12-07 | 2020-12-07 | 一种多图像自动拼接方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112862674B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113327198A (zh) * | 2021-06-04 | 2021-08-31 | 武汉卓目科技有限公司 | 一种远距离双目视频拼接方法及系统 |
CN116092017A (zh) * | 2023-04-06 | 2023-05-09 | 南京信息工程大学 | 一种轻量化边缘端车底危险物识别方法、介质及设备 |
CN117036666A (zh) * | 2023-06-14 | 2023-11-10 | 北京自动化控制设备研究所 | 基于帧间图像拼接的无人机低空定位方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016086754A1 (zh) * | 2014-12-03 | 2016-06-09 | 中国矿业大学 | 一种大场景视频图像拼接方法 |
US20180114293A1 (en) * | 2016-01-26 | 2018-04-26 | Regents Of The University Of Minnesota | Large scale image mosaic construction for agricultural applications |
CN109064404A (zh) * | 2018-08-10 | 2018-12-21 | 西安电子科技大学 | 一种基于多相机标定的全景拼接方法、全景拼接系统 |
CN110782394A (zh) * | 2019-10-21 | 2020-02-11 | 中国人民解放军63861部队 | 全景视频快速拼接方法及系统 |
-
2020
- 2020-12-07 CN CN202011428162.7A patent/CN112862674B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016086754A1 (zh) * | 2014-12-03 | 2016-06-09 | 中国矿业大学 | 一种大场景视频图像拼接方法 |
US20180114293A1 (en) * | 2016-01-26 | 2018-04-26 | Regents Of The University Of Minnesota | Large scale image mosaic construction for agricultural applications |
CN109064404A (zh) * | 2018-08-10 | 2018-12-21 | 西安电子科技大学 | 一种基于多相机标定的全景拼接方法、全景拼接系统 |
CN110782394A (zh) * | 2019-10-21 | 2020-02-11 | 中国人民解放军63861部队 | 全景视频快速拼接方法及系统 |
Non-Patent Citations (1)
Title |
---|
谢从华;张冰;高蕴梅;: "特征点聚类高精度视差图像拼接", 中国图象图形学报, no. 06 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113327198A (zh) * | 2021-06-04 | 2021-08-31 | 武汉卓目科技有限公司 | 一种远距离双目视频拼接方法及系统 |
CN116092017A (zh) * | 2023-04-06 | 2023-05-09 | 南京信息工程大学 | 一种轻量化边缘端车底危险物识别方法、介质及设备 |
CN117036666A (zh) * | 2023-06-14 | 2023-11-10 | 北京自动化控制设备研究所 | 基于帧间图像拼接的无人机低空定位方法 |
CN117036666B (zh) * | 2023-06-14 | 2024-05-07 | 北京自动化控制设备研究所 | 基于帧间图像拼接的无人机低空定位方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112862674B (zh) | 2024-02-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Jiang et al. | Cotr: Correspondence transformer for matching across images | |
CN112862674A (zh) | 一种基于AutoStitch算法的多图像自动拼接方法和系统 | |
CN106534616B (zh) | 一种基于特征匹配与运动补偿的视频稳像方法及系统 | |
CN111126304A (zh) | 一种基于室内自然场景图像深度学习的增强现实导航方法 | |
Zhuang et al. | Learning structure-and-motion-aware rolling shutter correction | |
Huang et al. | Efficient image stitching of continuous image sequence with image and seam selections | |
Bonny et al. | Feature-based image stitching algorithms | |
CN111192194B (zh) | 一种针对幕墙建筑立面的全景图像拼接方法 | |
CN113191954B (zh) | 一种基于双目相机的全景图像拼接方法 | |
CN113689331B (zh) | 一种复杂背景下的全景图像拼接方法 | |
CN112085790A (zh) | 点线结合的多相机视觉slam方法、设备及存储介质 | |
CN111798373A (zh) | 一种基于局部平面假设及六自由度位姿优化的快速无人机图像拼接方法 | |
Koch et al. | A new paradigm for matching UAV-and aerial images | |
Fang et al. | New multi-resolution image stitching with local and global alignment | |
CN110378995B (zh) | 一种利用投射特征进行三维空间建模的方法 | |
CN113506342A (zh) | 一种基于多相机全景视觉的slam全向回环校正方法 | |
Lu et al. | Multiperspective image stitching and regularization via hybrid structure warping | |
Yu et al. | A unified transformer based tracker for anti-uav tracking | |
Abbas | Recovering homography from camera captured documents using convolutional neural networks | |
JP2008252856A (ja) | 画像の補正方法、補正プログラムおよび画像歪み補正装置 | |
CN113096016A (zh) | 一种低空航拍图像拼接方法和系统 | |
CN115456870A (zh) | 基于外参估计的多图像拼接方法 | |
CN114418839A (zh) | 图像拼接方法、电子设备以及计算机可读存储介质 | |
CN114140494A (zh) | 复杂场景下单目标跟踪系统、方法、电子设备及存储介质 | |
Chen et al. | A Dense Optical Flow-Based Feature Matching Approach in Visual Odometry |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |