IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 游戏开发 -> Smoothly Varying Affine Stitching全文翻译 -> 正文阅读

[游戏开发]Smoothly Varying Affine Stitching全文翻译

一、摘要

使用参数化变换(如单应)的传统图像拼接,只能为平面场景或源帧之间的无视差相机运动生成感知正确的合成。这将拼接限制为从同一物理位置拍摄的源图像。在本文中,我们引入了一个平滑变化的仿射缝合场,它足够灵活地处理视差,同时保留了参数变换良好的外推和遮挡处理特性。我们的算法联合估计拼接场和对应,允许在场景不包含突然突出的情况下对一般运动源图像进行拼接。

二、介绍

图像拼接长期以来一直受到图形和视觉领域的关注。它的主要目标是将多个图像整合成一个无缝拼接的图像。这有许多用途,例如增加有效视野、运动摘要和干净的平板摄影。通常,拼接依赖于将像素从一个坐标系扭曲到另一个坐标系的底层变换。由于转换必须确保大(通常为四分之一图像宽度或更大)非重叠图像区域的感知准确对齐,因此它必须对大的视点变化具有鲁棒性,并且能够概括(内插和外推)显着遮挡的运动。为了处理不受控制的室外环境,变换还必须适应光照变化和独立运动。对于鲁棒变形,镶嵌算法传统上试图使用一组稀疏的全局变换参数来参数化变形场,例如 3×3 仿射或单应矩阵。这种稀疏参数化以牺牲灵活性为代价确保了鲁棒性,并且仅对有限的场景和运动集是准确的。例如,常用的单向变换仅对平面场景或无视差相机在源帧之间的运动是精确的。摄影师的物理位置必须是固定的,只允许旋转运动。
Dornaika等人[8]强调,理想情况下,图像拼接算法将同时考虑一般运动和场景结构。由于仿射和单应缝合可被视为三维世界再投影的一种特殊情况,许多著作[8,21,16]提出将图像缝合与三维重建相结合,以处理一般运动源图像中的视差。然而,使用预先计算的三维点有许多缺点。首先,三维重建只定义在源图像的重叠部分上,使得非重叠区域难以整合,这是图像拼接的主要目标。其次,正如Liu等人[16]所指出的,三维重建管道是脆弱的,其主要组成部分,精确的相机姿态恢复和无离群点匹配,仍然是活跃的研究问题。第三,如果运动包含太强的旋转元素,或者如果重叠图像区域大小不足,则相机姿态计算会恶化,这两种情况在图像拼接中经常发生。
为了实现灵活性,我们将二维非刚性翘曲方法(如薄板样条[4,23])视为可能的翘曲[13]和运动一致性[19]。他们避免了参数扭曲的稀疏性,而将扭曲视为具有平滑度约束的一般匹配问题。这提供了处理大多数运动类型所需的灵活性,但以遮挡区域上的运动泛化为代价。因此,虽然翘曲算法可以用作插值的一种形式,但它们很少直接用于解决传统的两视图拼接问题。在本文中,我们试图调整扭曲框架,以利用这样一个事实,即许多场景可以建模为具有平滑变化的深度。这允许使用不需要显式三维重建的通用缝合算法。
我们的公式是基于仿射变换的。全局仿射变换定义了一组剪切、旋转、缩放和平移参数,这些参数保持共线性和沿直线的距离比。仿射变换的一般形状保持特性意味着,即使图像对不是由全局仿射矩阵严格关联的,它仍然可以捕获相机运动引起的变形的要点,例如场景是向上平移还是侧向平移。因此,如果运动不连续性不太极端,则全局仿射变换可被视为近似运动场的参数扭曲[12],并在许多应用中用作第一近似[26,11]。这表明我们可以放松仿射约束,同时保留其大部分强运动泛化特性。
在本文中,我们将全局仿射变换替换为在整个坐标系上定义的平滑变化的仿射拼接场。每个点都有一个相关的仿射参数,该仿射参数偏向于预先计算的全局仿射变换,并且平滑度取决于每个仿射参数与全局仿射变换的偏差。这种模式有两个主要优点。首先,它足够灵活,可以处理大多数类型的运动,前提是场景不包含主要的突出物;其次,仿射参数可以概括图像区域的运动。因此,如果使用仿射缝合场进行描述,则相当不平滑的2D运动流(例如强剪切或前向平移)的区域可以变得平滑,因为该区域中的所有像素都可以被分配一个单一的、恒定的仿射参数。这使得仿射缝合场非常平滑,因此很容易在非重叠区域上进行外推。
为了在大位移、光照变化和遮挡噪声下稳健地计算所需的仿射拼接场,我们使用了像SIFT[17]这样的局部视图不变特征描述子。不幸的是,密集特征描述符(如SIFT flow[15]中使用的那些)会引入大量的定位错误,因为相邻像素可能共享相似的特征描述符,从而使得基于密集描述符的精确匹配变得困难。相反,我们依靠稀疏的角点特征集(与SIFT描述子相关联)来计算拼接场,这在计算时间方面有额外的优势。虽然可以从预计算的点匹配中推断出拼接字段,但这非常容易受到离群值匹配的影响,而且变化的拼接字段不允许基于RANSAC的离群值拒绝。相反,我们观察到一个好的拼接字段可以帮助验证现有的通信并确定额外的通信。这些对应可以依次细化拼接域。我们利用这些问题的内在联系,联合估计匹配和拼接场。这可以防止离群值匹配,提供更多的匹配并产生更好的拼接字段。
总结一下我们的贡献:
1) 我们介绍了一种灵活的图像拼接算法,该算法保留了与全局参数变换(如仿射/单应)相关的许多运动泛化特性。这允许处理一般场景和运动,前提是没有突然突出。虽然我们的结果并不总是符合基本事实,但它提供了一个很好的近似值,可以创建感知正确的合成。
2) 我们探讨了这种灵活性所带来的一系列应用。这些包括图1所示的新场景生成、点对应计算和平移运动全景拼接。

1.1 相关工作

我们的缝合场与Tal等人的仿射过参数化光流算法有关[20]。然而,尚不清楚[20]的框架如何适应稀疏高维特征的利用和对预定义仿射的偏向。相反,我们利用Yuille等人[27]和Myronenko等人[19]的运动一致性框架来拟合仿射缝合场。
我们的工作还涉及到导言中提到的基于三维重建的图像拼接方法。这些技术很难整合非重叠的图像区域。虽然这对于Liu等人[16]在3D视频稳定方面的工作并不重要,但却是形成大型全景图的核心问题。一个简单的解决方案是利用一个额外的图像[8],以便至少两个图像查看的区域增加。然而,这种方法也增加了不能镶嵌的非重叠区域。Qi等人[21]提供了一种替代方案,其中三维重建用于生成虚拟摄像机,从中切割条带,以确保非重叠区域之间的平滑过渡。这将平均马赛克上的错误,而不是尝试对齐图像,这是不令人满意的,因为错误发生在受约束的重叠区域,而不是无约束的非重叠区域。缺乏基本的扭曲场也使得遮挡和照明变化的处理变得困难,并限制了算法对其他图像编辑任务的适用性。
也有一些作品试图通过传统的静态图像以外的输入来获得感知准确的大视场图像。一项有趣的工作是Kopf等人[14]的工作,他们利用一系列“泡泡”(360°全景)生成虚拟摄像机,从而创造出一幅长长的街景。Carrol等人[6]介绍了一种翘曲,如果用户定义了多条直线,则可以使非常宽角度的图像不失真。对于视频序列,Rav Acha等人[22]表明,可以利用密集视频帧中存在的可跟踪性和冗余性,从一般运动中逐步缝合大型马赛克。然而,它并没有扩展到本文所考虑的大位移双视图拼接。
还有大量的工作试图改进传统的参数化图像拼接。感兴趣的读者可以参考Szeliski[24]的综合教程,了解此类图像拼接和混合技术的概述。
最后,图像拼接领域还与各种大位移匹配工作有关,如Bhat等人[3]和Fraundorfer等人[10]和Brox等人[25]的工作。然而,这些工作的重点是匹配,而不是插值和外推,因此,不直接适用于图像拼接领域。

三、我们的方法

计算仿射缝合场的一种简单方法是从滑动窗口内的SIFT对应计算局部仿射参数。然后将这些仿射参数进行平均,得到一个平滑、密集的仿射缝合场,其中包含通过外推获得的非重叠区域的参数。这种方法在点对应相当丰富的区域产生良好、平滑的缝合区域。然而,对于点对应关系很少/没有点对应关系且外推通常较差的区域,绩效显著下降。原因如下。对于任何点(或小面片),有许多可能的仿射可以近似其运动。根据对应关系预先计算仿射,迫使我们选择其中一种可能性。虽然这个选择可能是局部最优的,但它可能无法很好地推断场景的其余部分。结果是仿射缝合场非常适合密集对应的区域,但没有对边缘区域的稀疏对应给予适当的权重。这个问题如图2所示,尽管我们使用了一个相当大的窗口(这有助于避免局部过拟合),其长度为图像宽度的四分之一,但计算的仿射缝合场仍然难以在几乎没有对应的区域上进行外推。
相比之下,我们的问题是找到最平滑的拼接场,可以对齐两幅图像的特征点。这避免了对仿射参数的硬预分配,而缝合字段的选择包含了隐式外推。图3给出了我们系统的概述。
在这里插入图片描述
我们的公式的主要约束由两组不匹配的SIFT特征点组成。我们将第一幅基本图像中的M个特征表示为b0i,而第二幅目标图像中的N个特征表示为t0j。b0i、t0j向量的前两个条目表示图像坐标,其余条目包含SIFT特征描述符(为了简化符号,进行了这种连接,必要的相关规范化在第3节中讨论)。b0i到t0j的拼接使用一个连续的仿射拼接字段v(z2×1):R2→R6来定义,它表示从一个全局仿射全局的偏差。数学上,这表示为
在这里插入图片描述
其中,?ai为featurei的仿射ai项与全局仿射的偏差,ai=aglobal +?ai。

我们使用bi来表示缝合的特征点。bi值仅取决于与缝合字段v(.)及其原始位置b0i关联的仿射ai项。这种关系可以用仿射变换来表示
在这里插入图片描述
为了方便参考这些仿射参数,我们还定义了矩阵
在这里插入图片描述
我们使用基于鲁棒高斯混合的条件概率将基点集的对齐与目标点集相关联
在这里插入图片描述
其中g(z, σ)是一个高斯函数,并且κ控制一个均匀函数的强度,该函数使高斯混合物的尾部变厚。κ通常设置为0.5。
除了SIFT特性外,我们还希望加入一些软约束。如前所述,我们假设缝合场是单个全局仿射的松弛。因此,我们对每个点的仿射参数与全局仿射参数的偏差施加平滑约束。我们将这些软约束合并到平滑正则化项中
在这里插入图片描述
其中v’(ω)表示连续拼接场v(.)的傅里叶变换,g’(ω)表示具有空间分布γ的高斯的傅里叶变换。正则化项将仿射缝合场偏向全局仿射,并确保重叠区域中的约束缝合场和遮挡区域中的外推缝合场之间的平滑过渡。当A是离散量且缝合场v(.)是连续的时,通过选择满足等式(1)的最平滑缝合场,正则化项可以用A来重新表示。这就产生了
在这里插入图片描述
我们将eqn(3)的负对数与eqn(5)的正则项和λ加权项结合起来,形成一个单一的代价函数,
在这里插入图片描述
然后可以将A中的变量最小化。我们的最小化采用了EM风格的公式,在[19]中成功使用。

3.1 最小化

我们遵循一个极小化过程,使用等式(eqn(8))中Ak定义的M×6线性方程计算Ak+1。与等式(6)中定义的Ak相比,Ak+1降低了总成本。这个过程不断迭代直到收敛。我们定义
在这里插入图片描述
请注意,第二个函数的参数作为A给出,因为从等式(2)可以看出,bi是被A扭曲后的基本特征,并且完全依赖于A。
利用Jensen不等式,我们可以
在这里插入图片描述由上可知,?E(Ak,Ak) = 0。因此,Ak +1使?E(Ak+1,Ak)最小,将确保E(Ak+1)≤E(Ak)。
将?E(Ak+1,Ak)中与Ak+1无关的各项剔除,得到一个简化的代价函数
在这里插入图片描述
使用类似于Myronenko等人[19]的证明,我们在附录中显示正则化项Ψ(a)具有Ψ(a) =tr(?ATG?1?a)的简化形式,其中G是M×M矩阵,其元素由G(i, j) = G(b0i(1:2)?b0j(1:2), γ)给出。将Ψ(A)的定义代入Q,求Q对Ak+1的偏微分然后乘以G,我们得到
在这里插入图片描述D(.)、V(.)是同时截断和平铺运算符。它们仅重新排列输入向量z的前两个条目(其中z的长度必须大于或等于2),以形成各自的输出矩阵
在这里插入图片描述
根据(2)中A的定义,我们知道bk+ 1i可以表示为Ak+1项的线性组合。因此,eqn(8)得到M×6线性方程,可用于估计Ak+1。用Ak+1估计Ak+2,并重复这个过程直到收敛。
收敛后,可使用以下公式给出的高斯加权和从A中获得任意点z2×1处的连续拼接场v(.):
在这里插入图片描述
其中G+是G的伪逆,6×1,wi向量可以被认为是高斯的权值。详细的证明在附录中。

四、实施

我们现在讨论我们的系统实现。流程概述如图3所示,缝合场计算算法如图4所示。在公式部分,我们有一个全局仿射,全局作为正则化项。使用RANSAC[9]从SIFT对应关系计算aglobal,以去除异常值。由于aglobal的正则化作用在于确保缝合场更平滑,因此其精确值并不重要。A中的所有ai向量最初设置为aglobal。仿射拼接字段的计算是通过重复最小化eqn(6)中的开销,使σt值越来越小。这个退火过程中的每一步都使用先前计算的拼接字段作为初始化。我们从σt= 1开始,将其减小0.97倍,直到σt= 0.1。逐渐减小的σt值增加了目标和基点集之间偏差的惩罚,迫使拼接场不断演化,直到基点坐标配准到目标点上,从而产生“匹配”。使用运行matlab的i7计算机,该算法通常可以在8分钟内计算1200个SIFT特征的配准。
在这里插入图片描述为简化符号,SIFT描述符和点坐标被压缩成单个向量。这意味着需要规范化。目标的点坐标和基点被归一化为零均值、零单位方差,从而使其余参数设置对图像大小不变。我们将SIFT描述子归一化,使其具有10σt的量级,得到了较好的实证结果。平滑权λ和离群值处理项κ分别赋值为10,0.5。惩罚非平滑流动的γ项设为1。最后,利用泊松混合和[7]最优寻缝算法将图像融合为单个拼接。

五、分析

计算得到的平滑仿射拼接场是真实翘曲函数的“稀疏”表示,通过对深度边界的平滑和小集合特征点的泛化,会产生误差。在图5中,我们使用了两个模拟场景。第一个是一个简单的“V”场景,而第二个包含了明显的深度不连续。场景被投影到500×500像素图像上。我们计算的翘曲平均误差为1.92,4.57像素。考虑到我们使用625个特征点(比例为1:400)来概括0.25万像素的运动,这是很小的。
在这里插入图片描述

在图6中,我们提供了定性误差分析。缝合的图像被覆盖。在重叠区域中,绿色通道来自基础图像,而红色和蓝色通道来自目标图像。这样可以可视化对齐错误。虽然我们的算法在深度边界上会产生一些错误,但可以通过混合来消除这些错误。
在这里插入图片描述

六、应用

我们的算法的灵活性意味着它可以缝合图像,即使摄影师没有保持固定的位置。这开启了一系列不同的可能性。

6.1 Re-shoot

Bae等人[2]指出,如果摄影师离开了原始位置,则很难恢复准确的视点。我们的算法具有良好的运动泛化能力和灵活的拼接能力,这意味着我们可以“重新拍摄”场景,以合并来自不同时间实例的信息。请注意,使用“重新拍摄”进行图像编辑不同于将对象叠加到背景图像上的“剪切粘贴”方法。在“剪切和粘贴”中,叠加必须是一个离散对象,如人或汽车,没有附加背景。由于我们的拼接算法自动扭曲附加区域,使其与目标图像平滑匹配,“重新拍摄”允许覆盖整个区域,包括复杂背景和对象与它的交互。
在图7的前两个场景中,我们将一个人插入到他/她最初不在场的图像中,反之,从图像中删除一个人。这允许有趣的构图,比如一个女孩在咖啡馆里和自己下棋,并允许两个人轮流作为摄影师来获得一张合影。图7的以下两个场景通过使用互联网图像来测试我们算法的局限性。这些更具挑战性,因为光度变化会影响我们的算法所依赖的SIFT特征不变性。然而,它允许更多的戏剧性效果,如在日本清水寺将夏季景色与壮观的秋叶相结合,以及一对年轻夫妇从布拉格的现在走向过去的画面。我们相信,我们的算法可以进行调整,以允许在SIFT特征的变化,这将大大提高其在互联网图像上的性能。
技术讨论:“重新拍摄”比全景图的形成更具挑战性,因为可用的混合区域很窄,遮挡的数量通常非常大。为了保证图像的一致性,我们对图像颜色进行归一化处理。泊松混合与最优切割使用[7]和随后的一个额外的阿尔法混合来合并颜色。它沿着用户定义的传输区域在25像素宽的边界上进行。对于使用互联网图像的镜头,混合边界被设置为50像素宽,以适应光度变化和颜色归一化被丢弃。在布拉格场景中,全局仿射不是预先计算的(由于缺乏可靠的匹配),而是设置为一个单位矩阵。从[1]可以获得更复杂的“重拍”混合。

6.2 全局拼接

我们的算法可以用于全景图的创建。它处理一般运动的能力允许从非传统序列进行图像拼接,例如从高层公寓的不同窗口拍摄的一系列图像。由于大多数窗户都是从正面向后设置的,这在同形拼接[5]中是不可能的,因为同形拼接需要从单个窗户获得一个大的未包含旋转视野。结果如图8所示。请注意,许多视图只有有限的重叠,这使得相机姿势恢复,因此难以通过三维重建进行镶嵌。

6.3 匹配

作为一个集合而不是单独匹配,因此减少了对特征描述符唯一性的依赖。在图9中,我们展示了将我们的算法应用于传统的SIFT描述符[17],我们可以获得40%以上的匹配。这不仅仅是使用最近邻匹配器和更复杂的A-SIFT[18]描述符。

七、总结

提出了一种基于平滑变化仿射场的图像拼接算法。与传统的同形缝合相比,它对视差的容忍度显著提高,但保留了许多同形缝合在遮挡上概括运动的能力。它的灵活性允许集成从不同物理位置拍摄的视图,允许许多有趣的应用程序,如从平移相机创建全景或集成在不同时间拍摄的图像。它还可以适应其他启发式方法,例如要求直线扭曲为直线,这可能会在将来的工作中考虑。我们的算法的主要限制是在深度边界违反仿射一致性。虽然我们的结果表明这些错误通常很小,可以混合在一起,但显式检测和处理会更好。在这方面,我们的结果为进一步细化提供了一个极好的起点。

完!

  游戏开发 最新文章
6、英飞凌-AURIX-TC3XX: PWM实验之使用 GT
泛型自动装箱
CubeMax添加Rtthread操作系统 组件STM32F10
python多线程编程:如何优雅地关闭线程
数据类型隐式转换导致的阻塞
WebAPi实现多文件上传,并附带参数
from origin ‘null‘ has been blocked by
UE4 蓝图调用C++函数(附带项目工程)
Unity学习笔记(一)结构体的简单理解与应用
【Memory As a Programming Concept in C a
上一篇文章      下一篇文章      查看所有文章
加:2021-09-13 09:34:32  更:2021-09-13 09:35:44 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 16:43:45-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码