一种基于端到端神经网络的多路图片拼接方法
技术领域
本发明涉及图像拼接和图像质量评价技术领域,尤其涉及一种基于端到端神经网络的多路图片拼接方法。
背景技术
由于镜头视角有限以及广角镜头边缘畸变严重等问题,很难拍摄到现实应用所需的单幅大视野图像,利用图像拼接融合技术能大幅扩展镜头的表现能力。将多张来自同一场景的具有一定重叠区域的小视野图像对齐、有序拼接融合成为大视野高分辨率图像的图像拼接技术,在计算机视觉领域有着广泛的研究,已被广泛应用于遥感图像处理、医学图像分析、绘图学、计算机视觉、视频监控、虚拟现实、超分辨率重构和机器人导航等领域。
图像拼接主要包括四个步骤:图像预处理、特征提取与描述、图像对齐和图像融合。
近些年,深度学习逐渐在机器视觉领域展现出非凡的能力,越来越多的传统方法被深度学习所替代。由于卷积神经网络CNN可以隐式地从训练数据中自动进行特征学习,在图像特征提取方面具有突出优势,其简单的参数学习和并行学习能力使其具有广泛的适用性。因此,基于卷积神经网络CNN的图像特征自动提取,可有效克服最优单应性特征对齐的问题。
然而,以上的方法在实施的过程中,有以下几个问题:
1.由于图像可能来自不同时间、不同相机和不同的视角,进而造成图像遮挡和背景混乱等问题,在图像对齐中的会造成特征点错误对齐问题,基于RANSAC的特征筛选方法效率低下,且不能与特征选取融合。
2.针对基于特征的图像对齐方面并没有考虑不同图像特征在图像内容保持方面的贡献,因此在通过RANSAC特征筛选出的特征点并没有考虑与其相关的权重。
3.由于缺乏大量标注数据,无法实现大批量的训练,即便已有了无监督的训练方法,但并没有大规模的应用到自然图片中;
现有方法均只解决了两张图像的对齐问题,而没有考虑如何扩展到多张图像拼接。
在图片拼接的问题中,图片的数量普遍高于两张,同时单个HomographyNet也难以应对多幅图片的对齐。
本发明旨在利用无监督卷积神经网络CNN的图像对齐技术实现多图像优化拼接问题
发明内容
(一)发明目的
为解决背景技术中存在的技术问题,本发明提出一种基于端到端神经网络的多路图片拼接方法,实现对图片以及视屏中的图片进行拼接的过程,得到高精度的且相互对齐的拼接图片。
(二)技术方案
为解决上述问题,本发明提出了一种基于端到端神经网络的多路图片拼接方法,系统包括以下步骤:
S1:通过相邻邻接图估计器预估计多图像间的邻接关系,通过自适应卷积神经网络CNN计算两两图像间的单应性矩阵,并确定二者之间是否邻接,并确定二者之间的邻接权重,通过确定两两图片间的邻接权重,构建多图像间的邻接图G(I,E,δ);
S2:根据多图像间的邻接图G(I,E,δ),确定最优基平面图像Iopt,并基于最优基平面图像Iopt选取所有与其邻接的图像{Ilink};其中,与最优基平面图像I1邻接图像为{Ilink}={I2,I3,I5,I6,I7};将Iopt和{Ilink}输入自适应网格流单应性估计器,计算获得基于网格的多单应性矩阵{Hopt-link};
其中,自适应单应性估计器,为基于卷积神经网络CNN单应性估计器;
S3:通过多单应性矩阵{Hopt-link},将最优基平面图像Iopt邻接的所有图像{Ilink}投影到最优基平面Iopt,实现图像拼接融合;
获得拼接融合后的图像I'=Iopt+{Hmesh}{Ilink};
若,多图像邻接权重图中的所有图像均被处理,则输出I'为最终拼接图;
若,剩余未处理图像,则I'为当前最优基平面图像Iopt,并回到S2处理。
优选的,算法流程包括以下步骤:
S21:过相邻邻接图估计器,拼接两两图像:
通过简洁CNN网络特征抽取器f(x)抽取任意两两图像Ii和Ij的特征Fi=f(Ii)和Fi=f(Ij);
利用CNN网络特征抽取器的子CNN网络,估计每个特征相应的特征权重矩阵Wi=w(Ii)和Wj=w(Ij),表征每个特征向量为该图像关键特征点的概率;
通过图像Ii的特征Fi和权重Wi,计算图像Ii的合成特征FiWi,并输入复杂的单应性估计CNN网络,再同过同过程计算图像Ij的合成特征FjWj;通过CNN网络估计图像Ii和Ij,并以Ii为基平面计算得到的单应性矩阵Hij=h(Ii,Ij);变换单应性矩阵Hij;
将图像Ij投影到Ii基平面的图像,I'j=Warp(Ii,Hij)=HijIj;
合并Ii和I'j,即得拼接图像Ii+Ij;
其中,通过输入FiWi和FjWj自适应训练单应性矩阵Hij=h(Ii,Ij),需要基于局部损失函数Ln(Ii,Ij),收敛以获得最优单应性矩阵Hij;
其中,局部损失函数Ln(Ii,Ij)定义如下:
Ln(Ii,Ij)=|WiFi-WjF'j|-|WiFi-WjFj|=|WiFi-WjHijFj|-|WiFi-WjFj|;
图像Ii与Ij的全局损失函数定义如下:
L(Ii,Ij)=Ln(Ii,Ij)+Ln(Ij,Ii)+|HijHji-1|+Ln(Ii,I'j)+Ln(Ij,I'i)+|H'ijH'ji-1|;
全局损失函数最小化时的单应性矩阵Hij为最优单应性矩阵:
其中,I为相应单位矩阵;
S22:多图像邻接权重图;根据S21计算任意两两图像的最优单应性矩阵和相应的全局损失函数L(Ii,Ij),以此损失函数为权重δ=L(Ii,Ij)构建权重图:
其中,如果不存在,即证明图像Ii和Ij不重叠,设δ为正无穷大;图像Ii整体权重定义为所有与其相邻的图像{Ilink}i的权重之和,即:
S23:定选取基平面图像,计算当前所有图像整体权重,并确定具有最小整体权重的图像为基平面图像,并设定Iopt为:
S24:获取Iopt对应的所有邻接图像集合{Ilink}opt;
S25:判断{Ilink}opt是否为空;
若为空,则说明当前与Iopt重叠的图像已经拼接完成,多图像拼接算法输出最终拼接图像;
若不为空,则将Iopt和{Ilink}opt输入到自适应网格流单应性估计器,进行自适应网格流单应性拼接;
S26:通过自适应网格流单应性器计算获得以Iopt为基平面,获得每个与Iopt相邻的图像Ij的网格流最优单应性矩阵
其中,自适应网格流单应性器是基于网格流的CNN单应性估计器;
S27:获得通过变换器拼接图像Iopt和{Ilink}opt,即:
S28:以I'为新图像合并相邻邻接图,形成新的相邻邻接图;
计算G'(I,E,δ)=G(I,E,δ)-Iopt-{Ilink}opt;
判断G'(I,E,δ)是否为空:
若为空,则图像拼接完成,输出最终拼接图像;
若不为空,基于G'(I,E,δ)UI';
返回至S23,重复S23-S28,直到G'(I,E,δ)为空;
S29:输出最终拼接图像集合{I'},算法完成。
优选的,包括多图像拼接融合算法框架,其算法流程包括以下步骤:
S31:取N张图片:I1,I2,...,Ii,...,IN,N≥3;任何一张照片和其余至少一张照片有共有的场景;
S32:对N张图,每张都经过一个特征提取器f(·),从而得到N张图的特征图Fi;其中,i=1,2,...,N;
S33:选中第i张图作为对齐目标,并获取其特征图Fi;
S34:对其余所有图分别和Ii一一对应组成N组图像对,即:
(I1,Ii),(I2,Ii),……(Ii,Ii)……,(IN,Ii);
将N组图像对送入单应性矩阵估计模块h(·),以计算得到单应性矩阵Hji;其中,j=1,2,...,N;
S35:在求出Hji之后,对每张特征图Fi通过Hji做图像变形,得到类似图片I1′……Ij′……IN′;
S36:融合类似图片I1′……IN′和Ii,得到拼接图片Iout。
优选的,还包括对视频内的图片进行拼接的方法,包括以下步骤:
S41:取N张图片:I1,I2,...,Ii,...,IN,N≥3;任何一张照片和其余至少一张照片有共有的场景;
S42:对N路视频V1,V2,……VN,每路视频的每一帧都经过一个特征提取器f(·),从而得到N路视频的特征图Fi;其中,i=1,2,...,N;
S43:选中第i路视频作为对齐目标,并获取其特征图Fi;
S44:对其余所有视频分别和Vi一一对应组成N组图像对,即:
(V1,Vi),(V2,Vi),……(Vi,Vi)……,(VN,Vi);
将N组图像对送入单应性矩阵估计模块h(·),以计算得到单应性矩阵Hji;其中,j=1,2,...,N;
S45:在求出Hji之后,对每张特征图Fi通过单应性矩阵Hji做图像变形,得到变形后的视频V1′……Vj′……VN′;
S46:融合变形后的视频V1′……Vj′……VN′,得到拼接图片Vout。
优选的,还包括无监督训练,无监督训练过程包括以下步骤:
S51:在求出Hji之后,对每张特征图Fi通过单应性矩阵Hji做图像变形,得到所有类似图片;
S52:用变形后所有类似图片和Fj求差,得到损失,以此为损失训练模块f(·)和h(·),得到训练后的f(·)和h(·),以致收敛;
S53:训练后的f(·)和h(·)再次计算变形后的图片M1′……Mj′……MN′;
其中,特征提取器f(·)由三层卷积神经网络实现;单应性矩阵估计模块h(·)由卷积神经网络实现,层数大于三十层;图像变形使用像素重映射方法。
优选的,变形后所有类似图片和Fj求差,得到损失;
对每一张图定义一个对抗损失函数,对抗损失函数为:
Lji=|Fj′-Fi|-|Fj-Fi|=|Hji·Fj-Fi|-|Fj-Fi|;
对得到的N-1个上述的损失:L1i,……LNi进行求和计算,从而得到总损失:L=ΣLji。
本发明中,实现对图片以及视屏中的图片进行拼接的过程,得到高精度的且相互对齐的拼接图片。
附图说明
图1为本发明提出的基于端到端神经网络的多路图片拼接方法的系统框架结构图。
图2为本发明提出的基于端到端神经网络的多路图片拼接方法中相邻邻接估计器的结构示意图。
图3为本发明提出的基于端到端神经网络的多路图片拼接方法中相邻邻接示意图。
图4为本发明提出的基于端到端神经网络的多路图片拼接方法中多图像拼接融合算法框架流程示意图。
图5本发明提出的基于端到端神经网络的多路图片拼接方法中两两图像拼接网络结构示意图。
图6为本发明提出的基于端到端神经网络的多路图片拼接方法中图像对齐流程示意图。
图7为本发明提出的基于端到端神经网络的多路图片拼接方法中特征提取器f(·)与单应性矩阵估计模块h(·)的关系示意图。
图8为本发明提出的基于端到端神经网络的多路图片拼接方法中一个实施例示意图。
图9为本发明提出的基于端到端神经网络的多路图片拼接方法中图像变形举例示意图。
图10为本发明提出的基于端到端神经网络的多路图片拼接方法中图片拼接举例示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明了,下面结合具体实施方式并参照附图,对本发明进一步详细说明。应该理解,这些描述只是示例性的,而并非要限制本发明的范围。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本发明的概念。
如图1-9所示,本发明提出的一种基于端到端神经网络的多路图片拼接方法,系统包括以下步骤:
S1:通过相邻邻接图估计器预估计多图像间的邻接关系,通过自适应卷积神经网络CNN计算两两图像间的单应性矩阵,并确定二者之间是否邻接,并确定二者之间的邻接权重,通过确定两两图片间的邻接权重,构建多图像间的邻接图G(I,E,δ);
S2:根据多图像间的邻接图G(I,E,δ),确定最优基平面图像Iopt,并基于最优基平面图像Iopt选取所有与其邻接的图像{Ilink};其中,与最优基平面图像I1邻接图像为{Ilink}={I2,I3,I5,I6,I7};将Iopt和{Ilink}输入自适应网格流单应性估计器,计算获得基于网格的多单应性矩阵{Hopt-link};
其中,自适应单应性估计器,为基于卷积神经网络CNN单应性估计器;
S3:通过多单应性矩阵{Hopt-link},将最优基平面图像Iopt邻接的所有图像{Ilink}投影到最优基平面Iopt,实现图像拼接融合;
获得拼接融合后的图像I'=Iopt+{Hmesh}{Ilink};
若,多图像邻接权重图中的所有图像均被处理,则输出I'为最终拼接图;
若,剩余未处理图像,则I'为当前最优基平面图像Iopt,并回到S2处理。
在一个可选的实施例中,算法流程包括以下步骤:
S21:过相邻邻接图估计器,拼接两两图像:
通过简洁CNN网络特征抽取器f(x)抽取任意两两图像Ii和Ij的特征Fi=f(Ii)和Fi=f(Ij);
利用CNN网络特征抽取器的子CNN网络,估计每个特征相应的特征权重矩阵Wi=w(Ii)和Wj=w(Ij),表征每个特征向量为该图像关键特征点的概率;
通过图像Ii的特征Fi和权重Wi,计算图像Ii的合成特征FiWi,并输入复杂的单应性估计CNN网络,再同过同过程计算图像Ij的合成特征FjWj;通过CNN网络估计图像Ii和Ij,并以Ii为基平面计算得到的单应性矩阵Hij=h(Ii,Ij);变换单应性矩阵Hij;
将图像Ij投影到Ii基平面的图像,I'j=Warp(Ii,Hij)=HijIj;
合并Ii和I'j,即得拼接图像Ii+Ij;
其中,通过输入FiWi和FjWj自适应训练单应性矩阵Hij=h(Ii,Ij),需要基于局部损失函数Ln(Ii,Ij),收敛以获得最优单应性矩阵Hij;
其中,局部损失函数Ln(Ii,Ij)定义如下:
Ln(Ii,Ij)=|WiFi-WjF'j|-|WiFi-WjFj|=|WiFi-WjHijFj|-|WiFi-WjFj|;
图像Ii与Ij的全局损失函数定义如下:
L(Ii,Ij)=Ln(Ii,Ij)+Ln(Ij,Ii)+|HijHji-1|+Ln(Ii,I'j)+Ln(Ij,I'i)+|H'ijH'ji-1|;
全局损失函数最小化时的单应性矩阵Hij为最优单应性矩阵:
其中,I为相应单位矩阵;
S22:多图像邻接权重图;根据S21计算任意两两图像的最优单应性矩阵和相应的全局损失函数L(Ii,Ij),以此损失函数为权重δ=L(Ii,Ij)构建权重图:
其中,如果不存在,即证明图像Ii和Ij不重叠,设δ为正无穷大;图像Ii整体权重定义为所有与其相邻的图像{Ilink}i的权重之和,即:
S23:定选取基平面图像,计算当前所有图像整体权重,并确定具有最小整体权重的图像为基平面图像,并设定Iopt为:
S24:获取Iopt对应的所有邻接图像集合{Ilink}opt;
S25:判断{Ilink}opt是否为空;
若为空,则说明当前与Iopt重叠的图像已经拼接完成,多图像拼接算法输出最终拼接图像;
若不为空,则将Iopt和{Ilink}opt输入到自适应网格流单应性估计器,进行自适应网格流单应性拼接;
S26:通过自适应网格流单应性器计算获得以Iopt为基平面,获得每个与Iopt相邻的图像Ij的网格流最优单应性矩阵
其中,自适应网格流单应性器是基于网格流的CNN单应性估计器;
S27:获得通过变换器拼接图像Iopt和{Ilink}opt,即:
S28:以I'为新图像合并相邻邻接图,形成新的相邻邻接图;
计算G'(I,E,δ)=G(I,E,δ)-Iopt-{Ilink}opt;
判断G'(I,E,δ)是否为空:
若为空,则图像拼接完成,输出最终拼接图像;
若不为空,基于G'(I,E,δ)UI';
返回至S23,重复S23-S28,直到G'(I,E,δ)为空;
S29:输出最终拼接图像集合{I'},算法完成。
本发明中,实现对图片以及视屏中的图片进行拼接的过程,得到高精度的且相互对齐的拼接图片。
在一个可选的实施例中,包括多图像拼接融合算法框架,其算法流程包括以下步骤:
S31:取N张图片:I1,I2,...,Ii,...,IN,N≥3;任何一张照片和其余至少一张照片有共有的场景;
S32:对N张图,每张都经过一个特征提取器f(·),从而得到N张图的特征图Fi;其中,i=1,2,...,N;
S33:选中第i张图作为对齐目标,并获取其特征图Fi;
S34:对其余所有图分别和Ii一一对应组成N组图像对,即:
(I1,Ii),(I2,Ii),……(Ii,Ii)……,(IN,Ii);
将N组图像对送入单应性矩阵估计模块h(·),以计算得到单应性矩阵Hji;其中,j=1,2,...,N;
S35:在求出Hji之后,对每张特征图Fi通过Hji做图像变形,得到类似图片I1′……Ij′……IN′;
S36:融合类似图片I1′……IN′和Ii,得到拼接图片Iout。
在一个可选的实施例中,还包括对视频内的图片进行拼接的方法,包括以下步骤:
S41:取N张图片:I1,I2,...,Ii,...,IN,N≥3;任何一张照片和其余至少一张照片有共有的场景;
S42:对N路视频V1,V2,……VN,每路视频的每一帧都经过一个特征提取器f(·),从而得到N路视频的特征图Fi;其中,i=1,2,...,N;
S43:选中第i路视频作为对齐目标,并获取其特征图Fi;
S44:对其余所有视频分别和Vi一一对应组成N组图像对,即:
(V1,Vi),(V2,Vi),……(Vi,Vi)……,(VN,Vi);
将N组图像对送入单应性矩阵估计模块h(·),以计算得到单应性矩阵Hji;其中,j=1,2,...,N;
S45:在求出Hji之后,对每张特征图Fi通过单应性矩阵Hji做图像变形,得到变形后的视频V1′……Vj′……VN′;
S46:融合变形后的视频V1′……Vj′……VN′,得到拼接图片Vout。
在一个可选的实施例中,还包括无监督训练,无监督训练过程包括以下步骤:
S51:在求出Hji之后,对每张特征图Fi通过单应性矩阵Hji做图像变形,得到所有类似图片;
S52:用变形后所有类似图片和Fj求差,得到损失,以此为损失训练模块f(·)和h(·),得到训练后的f(·)和h(·),以致收敛;
S53:训练后的f(·)和h(·)再次计算变形后的图片M1′……Mj′……MN′;
其中,特征提取器f(·)由三层卷积神经网络实现;单应性矩阵估计模块h(·)由卷积神经网络实现,层数大于三十层;图像变形使用像素重映射方法。
在一个可选的实施例中,变形后所有类似图片和Fj求差,得到损失;
对每一张图定义一个对抗损失函数,对抗损失函数为:
Lji=|Fj′-Fi|-|Fj-Fi|=|Hji·Fj-Fi|-|Fj-Fi|;
对得到的N-1个上述的损失:L1i,……LNi进行求和计算,从而得到总损失:L=ΣLji。
本发明,基于图像拼接,以扩展到视频上,实现多路视频的拼接。
本发明,实现无监督的训练以及实施,设计了对抗损失函数,这个对抗损失函数可以应用到多路图片中,从而实现用多路图片训练神经网络。
需要说明的是:
如表1和表2所示:特征提取器f(·)由三层卷积神经网络实现;单应性矩阵估计模块h(·)由卷积神经网络实现,层数大于三十层;图像变形使用像素重映射方法。
表1为特征提取器网络层数设置,如下:
表2为单应性矩阵估计模块的网络层数设置,如下:
层号 |
1 |
2 |
3-8 |
9 |
10-16 |
17 |
类型 |
卷积层 |
池化层 |
卷积层 |
卷积层 |
卷积层 |
卷积层 |
卷积核 |
7 |
3 |
3 |
3 |
3 |
3 |
步长 |
2 |
2 |
1 |
2 |
1 |
2 |
通道数 |
64 |
- |
64 |
128 |
128 |
256 |
层号 |
18-28 |
29 |
30-34 |
35 |
36 |
|
类型 |
卷积层 |
卷积层 |
卷积层 |
池化层 |
全连接层 |
|
卷积核 |
3 |
3 |
3 |
- |
- |
|
步长 |
1 |
2 |
1 |
1 |
- |
|
通道数 |
256 |
512 |
512 |
- |
8 |
|
优选的,用变形后所有类似图片和Fj求差,得到损失;
对每一张图定义一个对抗损失函数,对抗损失函数为:
Lji=|Fj′-Fi|-|Fj-Fi|=|Hji·Fj-Fi|-|Fj-Fi|;
对得到的N-1个上述的损失:L1i,……LNi进行求和计算,从而得到总损失:L=ΣLji。
本发明的上述技术方案具有如下有益的技术效果:实现对图片以及视屏中的图片进行拼接的过程,得到高精度的且相互对齐的拼接图片。
应当理解的是,本发明的上述具体实施方式仅仅用于示例性说明或解释本发明的原理,而不构成对本发明的限制。因此,在不偏离本发明的精神和范围的情况下所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。此外,本发明所附权利要求旨在涵盖落入所附权利要求范围和边界、或者这种范围和边界的等同形式内的全部变化和修改例。