【论文笔记】无监督图像拼接

论文地址:https://arxiv.org/abs/2106.12859
代码:https://github.com/nie-lang/UnsupervisedDeepImageStitching

摘要

传统的基于特征的图像拼接技术严重依赖于特征检测质量,往往无法拼接特征少或分辨率低的图像。由于缺乏标记数据,基于学习的图像拼接解决方案很少被研究,使得监督方法不可靠。为了解决上述局限性,我们提出了一种无监督深度图像拼接框架,该框架由两个阶段组成:无监督粗图像对齐和无监督图像重建
在第一阶段,我们设计了一个基于消融的损失来约束一个更适合大型基线场景的无监督单应性网络。此外,在拼接域空间中引入一个空间变换层对输入图像进行翘曲处理。在第二阶段,基于像素级的图像错位可以在特征级上得到一定程度的消除,我们设计了一个无监督图像重建网络来消除从特征到像素的伪影。具体来说,重构网络可以由一个低分辨率的变形分支和一个高分辨率的精细分支来实现,学习图像拼接的变形规律,同时提高分辨率。为了建立一个评估基准和训练学习框架,提出并发布了一个全面的用于无监督深度图像拼接的真实图像数据集。大量的实验很好地证明了我们的方法优于其他最先进的解决方案。

一、介绍

传统的图像拼接方法是基于特征的方法,其中特征检测是影响拼接性能的第一步。然后利用匹配的特征建立参数化图像对齐模型,通过该模型对目标图像进行扭曲,使其与参考图像对齐。最后,通过对扭曲图像之间重叠区域的每个像素分配像素值,即可获得拼接图像。然而,在实际场景中,每个图像域可能包含多个不同的深度层次,这与单应性的平面场景假设相矛盾。由于单一的单应性不能解释不同深度级别的所有对齐,因此在缝合结果中经常存在重影效应。

传统的feature-based的解决方案以两种主流方式减少了瑕疵:
第一种方法是通过尽可能将目标图像与参考图像对齐来消除伪影。这些方法将图像划分为不同的区域,并计算每个不同区域的单应性矩阵。通过对这些区域施加空间变化的翘曲,重叠区域可以很好地对齐,并且显着减少了伪影。
第二种方法是通过研究最佳缝线来拼接翘曲的图像来消除瑕疵。通过优化与接缝相关的成本,可以将重叠区域沿接缝方向划分为两个互补区域。然后,根据两个区域形成拼接图像。基于特征的解决方案可以显著减少大多数场景中的伪影。然而,它们严重依赖于特征检测,因此在特征较少或分辨率较低的场景中,拼接性能可能会急剧下降甚至失败。
CNN很牛逼,但是所有的解决方案都是有监督的方法,由于没有实际场景的拼接标签,目前还没有真正的图像深度拼接数据集。因此,这些网络只能在“无视差”的合成数据集上进行训练,导致在真实场景中的应用不令人满意。
我们发现特征级的不一致比像素级的不一致更不明显。与像素相比,feature map更加模糊,这表明在pixel-level上的不对齐可以在feature-level进行一定程度的消除。因此,我们认为在feature-level比在pixel-level更容易消除伪影。
请添加图片描述
我们还提出了一个大型的真实世界图像拼接数据集,该数据集包含不同的重叠率、不同的视差程度和不同的场景,如室内、室外、夜间、黑暗、雪地和变焦。这里,我们将重叠率定义为重叠区域占图像总面积的百分比。
实验结果表明,我们的方法在真实场景中优于其他最先进的解决方案。本文的贡献总结如下:

  1. 提出了一种无监督深度图像拼接框架,该框架由无监督粗图像对齐阶段和无监督图像重建阶段组成。
  2. 我们提出了第一个用于无监督深度图像拼接的大型真实数据集,我们希望它可以作为一个基准数据集,并推动其他相关的研究工作。
  3. 我们的算法优于最先进的技术,包括在真实场景中的单应性估计解决方案和图像拼接解决方案。即使与监督解决方案相比,我们的图像拼接质量仍然受到用户的青睐。

二、相关工作

2.1 基于特征的图像拼接

2.2 基于学习的图像拼接

2.3 深度单应方案

三、无监督粗图像对齐

3.1 无监督单应性

现有的无监督深度单应性方法[37]、[38]以图像块为输入,如图3 (a)中白色方块所示,这些方法的目标函数可表示为:
在这里插入图片描述
P()表示切patch,H()表示通过单应性矩阵扭曲, I A I^A IA, I B I^B IB是两张图片
为了使扭曲后的目标patch接近参考patch,利用目标patch周围多余的内容填充扭曲后的目标patch中的无效像素。我们称之为基于填充的约束策略。该策略在小基线或中基线的单应性估计中效果良好,而在大基线情况下则失败。特别是,当基线太大时(如图3 (a)所示),可能会导致输入patch之间没有重叠区域,从而导致这些patch的单应性估计毫无意义。说人话就是没把重叠部分划进patch里。
在这里插入图片描述
为了解决这个问题,我们设计了一个基于消融的策略来约束大基线无监督单应性估计。
具体来说,我们将完整的图像作为输入,确保所有重叠的区域都包含在我们的输入中。当我们将扭曲的目标图像靠近参考图像时,我们不再填充扭曲图像中的无效像素。相反,我们将参考图像中被扭曲的目标图像中无效像素所在的内容清除,如图3 (b)所示。我们的无监督单应性目标函数:请添加图片描述
⊙ \odot 表示哈达玛积,E是与 I A I^A IA大小相同的全1矩阵
在无监督单应性网络的架构上,我们采用了[36]中提出的多尺度深度模型,将特征金字塔和特征关联统一在一个框架中,实现了从粗到精的单应性预测,处理相对大基线的场景。

3.2 拼接空间变换层

空间变换层利用单应性模型保证图像的梯度反向传播,从而对图像进行空间变换。在图像拼接中,相同分辨率的输入图像可以根据不同的重叠率输出不同分辨率的拼接图像,这给深度图像拼接带来了相当大的挑战。现有的深度图像拼接方法通过扩展空间变换层来解决这一问题。具体来说,这些解决方案定义了拼接图像的最大分辨率,以便所有输入内容都可以包含在输出中。此外,网络每次都会以相同的分辨率输出图像。但是,图4 (a)中白色框外的黑色像素所占的空间大部分被浪费了。为了处理空间浪费,我们提出了一个拼接域变换器层。我们将拼接域定义为拼接图像的最小边界矩形,在保证图像内容完整性的同时节省了最大的空间。
在这里插入图片描述

在这里插入图片描述
计算过程很简单,总之我们在拼接域空间中对输入图像进行变换,有效地减少了feature map在后续重建网络中所占的空间。

四、无监督粗图像重建

考虑到单一单应性只能表示相同深度的空间变换的限制,在第一阶段,输入图像无法在真实数据集中完全对齐。为了打破单一单应性的瓶颈,我们提出了从特征到像素重构拼接图像的方法。所提出的无监督深度图像拼接框架的概述如图5所示。重构网络可以通过低分辨率变形分支(图5上)和高分辨率细化分支(图5下)两个分支来实现,分别学习图像拼接的变形规律和增强分辨率。
在这里插入图片描述

4.1 低分辨率图像重建分支

仅在高分辨率分支中重建图像是不合适的,因为接受野随着分辨率的增加而相对减少。为了保证网络的接受野能够完全感知到不对齐的区域(特别是在高分辨率和大视差的情况下),我们设计了一个低分辨率分支,首先学习图像拼接的变形规律。如图所示。
请添加图片描述
在我们的实现中,扭曲的图像首先被下采样到低分辨率,定义为256×256。然后使用由3个池化层和3个反卷积层组成的编码器-解码器网络对拼接后的图像进行重构。卷积层的过滤器数量分别设置为64、64、128、128、256、256、512、512、256、256、128、128、64、64、3。此外,采用跳跃式连接,将具有相同分辨率的低级特征和高级特征连接起来。
在此过程中,通过内容蒙版和接缝蒙版学习图像拼接的变形规律(图6)。
采用内容蒙版约束重构图像的特征与变形图像的特征接近,采用接缝蒙版约束重叠区域的边缘自然连续。特别是,我们获得了内容蒙版 ( M A C ; M B C ) (M^{AC};M^{BC}) (MAC;MBC),它是用全1矩阵 E H ∗ W E_{H*W} EHW 代替 I A , I B I^A,I^B IA,IB。接缝蒙版由下式计算:
在这里插入图片描述
(i,j)提供坐标位置,∗表示卷积操作,C将所有元素剪辑到0到1之间。
我不懂的是这里为什么要和 E 3 ∗ 3 E_{3*3} E33做三次卷积?
然后我们将低分辨率下的内容损失和接缝损失设计为式(8)和式(9):
在这里插入图片描述
其中 S L R S_{LR} SLR是指低分辨率拼接图像。L1和LP分别为L1损失和感知损失。
为了使重构图像的特征尽可能接近扭曲图像的特征,我们在VGG-19的“conv5_3”层上计算感知损失[27],该层的深度足以缩小扭曲图像之间的特征差异。

然后,低分辨率无监督变形的总损失函数可表示为式(10):
在这里插入图片描述
其中λs和λc表示内容约束和接缝约束的权重

4.2 高分辨率图像重建分支

在这里插入图片描述

在低分辨率分支中初始化变形后,我们开发了高分辨率的精细分支,以提高分辨率并细化拼接图像。高分辨率是指第一级输出的分辨率。实际上,在我们的数据集中,分辨率大于512×512。为了说明高分辨率支路的效果,我们在图7中展示了两个支路的输出。该分支完全由卷积层组成,如图5所示,这意味着它可以处理任意分辨率的图片。具体来说,它由3个独立的卷积层和8个resblocks组成[47],除最后一层的filter number为3外,每一层的filter number都设置为64。为了防止底层信息随着卷积网络的深入而逐渐被遗忘,在第一层的特征中加入了倒数第二层的特征。每个resblock由convolution、relu、convolution、sum、relu组成。

我们将 S L R S_{LR} SLR上采样到扭曲图像的分辨率,并将它们连接在一起作为该分支的输入。
输出是高分辨率拼接图像 L H R \mathcal{L}_{HR} LHR,与 L L R \mathcal{L}_{LR} LLR类似,计算方法如下:
在这里插入图片描述
其中, L C o n t e n t h \mathcal{L}^{h}_{Content} LContenth L S e a m h \mathcal{L}^{h}_{Seam} LSeamh为高分辨率下的内容损失和接缝损失,通过式(8)、(9)将 S L R S_{LR} SLR和低分辨率蒙版替换为 S H R S_{HR} SHR和高分辨率蒙版计算得到。在计算高分辨率 L p \mathcal{L}_{p} Lp时,我们采用VGG-19的“conv3_3”层,因为该层比“conv5_3”层(使用于低分辨率 L p \mathcal{L}_{p} Lp)更浅,使用该层的输出更清晰。

4.3 目标函数

高分辨率分支的设计目的是对拼接图像进行细化,但由于分辨率的提高会相对减少神经网络的接受野,因此高分辨率分支容易在拼接图像中产生伪影(更多细节见5.4节)。为了使我们的网络能够同时提高分辨率和消除视差伪影,我们提出了一个内容一致性损失公式
在这里插入图片描述
其中 S H R 256 × 256 S^{256×256}_{H R} SHR256×256是将 S H R S_{HR} SHR调整为256×256,即低分辨率支路输出的分辨率。
考虑到所有的约束条件,我们将图像重建阶段的目标函数总结为Eq。
在这里插入图片描述
ω \omega ω表示对应部分的权重

4.4 从特征到像素的重构

在这里插入图片描述
为了展示从特征到像素的学习过程,我们将低分辨率变形分支的特征图可视化,如图8所示。在编码器阶段的一开始,网络只关注重叠区域,而非重叠区域的特征全部被抑制。接下来,随着分辨率的降低,提取和重构更深层次的语义特征。在解码器阶段,除了重叠区域之外,网络开始关注非重叠区域。随着分辨率的恢复,可以重建更清晰的特征图。最后,对拼接后的图像进行像素级重构。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值