Robust image stitching with multiple registrations

文章来源:ECCV2018
文章作者:Charles Herrmann

Image stitching and parallax errors

The traditional step in image stitching
1、将输入图片进行一次配准到一个公共平面;
2、寻找最佳缝合线;
3、图像融合(消除伪影或局部误匹配,不同曝光程度或因相机特性导致的色彩及明亮度差异)

Current problems
1、单次配准通常产生严重的误差,特别是在一些有着明显深度变化和存在物体移动的场景。
2、当拼接缝通过内容丰富的区域寻找一个好的拼接缝特别困难。
3、不能同时捕获一幅图像的前景和背景……

The proposed method

一次配准通常产生严重的误差,特别是在一些有着明显深度变化和物体存在移动的场景。因此,本文提出了一种使用多次配准的方法,即对 I-candidate运用ransac算法生成多个不同的变换图像,然后与参考图像 I-reference进行配准以寻找最优拼接缝,这里的缝的寻找不是传统意义上的seam finding,而是image selection,在上述获得 I-can的多个变换中,为每个 pixel location 选择一个最佳的warp。
如下图b,对I-can运用了两个warp,即红色和绿色所代表的。红色的warp用来配准数字,绿色的warp用来配准字母。


方法特点:传统上,有两种方式消除伪影。一是允许更多的自由度来提升配准;二是选取更好的拼接缝来隐藏误匹配。我们的算法可视为两者的综合,多配准的使用让我们更好的裁剪每个配准到全景图的某一特定区域,与此同时我们提出的新的能量项提升了缝合线的质量。

Generating multiple registrations

获取I-can对应的多个warp的步骤可概述为三步:单应性变换矩阵的计算、过滤、优化。
1、在这里获取图像的单应性变换矩阵应用的是传统的ransac算法,即对提取的特征点对每次随机取四对点迭代估计一个最优的3×3单应性变换矩阵,通过改变ransac参数运行多次得到多个warp。
2、过滤步骤包括筛选和去重复。筛选过程去除了两类配准变换。一是不太可能产生有实际意义的结果的变换;二是过于相似的变换。
第一类判断依据:从一组相同种子点获得的相似变换之间的差异是否超过一个阈值,变换图像的尺度参数是否超过固定阈值。
具体考量:1)原始图像与变换图像覆盖区域的重叠是否超过95%; 2)图像对角线长度是否小于原始图像对角线长度的一半。
第二类相似性度量:对重复度比较高的图像只保留一个。
3、优化,基于观察到部分像素存在重投影误差,构造了一个目标函数 ,通过对一个初始变换使用ceressolver库来最小化目标函数,来得到一个优化的H。
4、Content preserve warp
对经过上述过滤及优化后的单应性变换H,进行一个更加精细化的局部非刚体变换即内容保持变换可以实现更好的配准,最后得到一个用于我们多重配准方案中的一次候选配准。
通常,一个全局2D变换,即单应性变换可以保护图像的全局结构,但会产生严重的视差。而内容保持变换可以有效的处理视差。

Improved MRF energy for seam finding

为了解决多次配准情况下的seam finding,文章提出了一个基于马尔科夫随机场构造的多标签的能量函数,并通过图割中的a-expansion方法进行能量函数的最小化。
a-expansion基本思路:当处理每一个label时(假设其为a),将其他所有的label看成一个label package(假如称之为b),这时问题就变成了binary-labeling。此时在进行cut时,如果一个原来是a的pixel被cut给b,将无法确定到底给该pixel具体哪一个label(由于b是个大杂烩)。所以在进行cut时,只允许原来是b的pixel被cut给a,也就是标记为a的pixel在expanding,这就是算法名字的来源。

需要注意的是,为了使得这样的一次alpha expansion可以被max-flow算法计算出来,graph的构造比之前的binary-labeling要稍微复杂一些 (比如仅仅允许alpha expansion的话,有些跟b相连的edge weight要设成无穷大)。使用alpha expansion算法的步骤很简单,如下:
// alpha expansion algorithm pseudo-code
initialize labeling;

while not converged
{
for each label a in L
{
construct a graph;
do max-flow cut;
if energy is smaller than before, accept it;
else decline it;
}
}

值得注意的是,这种alpha expansion只是multi-labeling问题的近似求解,而之前的max-flow算法是binary-labeling问题的exact求解方法。而且,为了使得这种alpha expansion时的graph可以被构造出来,能量方程需要满足一定的限定条件,具体来说,是能量方程中的pairwise term函数V_pq需要满足某些限定条件。在Kolmogorov TPAMI 2004 paper描述为V_pq必须是一个submodular函数(文中称之为regular,其实后来都称之为submodular)。
常见pairwise term满足submodular情况表:

MRF(马尔科夫随机场)

对于一个我们无法预知下一状态的随机过程中(随机性),下一个状态只与当前的状态有关,与过去的状态无关(马尔科夫性)。我们把具有这两类性质的问题定义为马尔科夫随机场问题。
例如图像就是一个典型的马尔科夫随机场,在图像中每个像素点可能会和周围的像素点有关系,但是和远处的点或者初始点是没有什么关系的。MRF将图像模拟成一个随机变量组成的网格,通过考虑像元与其邻近像元之间的条件分布来描述图像的局部统计特性。这种邻近关系可由邻域系统来定义。
如下图为一阶四邻域系统和二阶八邻域系统,任何两个结点均有边连接的结点子集称为基团。

MRF在图割中的应用
在图像处理中,我们把图像视为一个MRF场,图像分割问题可以看作是标签分类问题,即把具有相同性质的像素点设置为一类标签,从而图像成为一个标签场,而 MRF 则是一个有效解决标签分类问题的数学框架。

our improved MRF energy function

在我们的多重配准方法中,针对马尔科夫随机场能量函数,新引入了掩膜数据项和重复项,具体如下:
E(x)=∑pEm(xp)+∑pEw(xp)+∑p,qεNEs(xp,xq)+Ed(x)E\left( x \right) =\sum\limits_p^{}{E_m\left( x_p \right)}+\sum\limits_p^{}{E_w}\left( x_p \right) +\sum\limits_{p,q\varepsilon N}^{}{E_s}\left( x_p,x_q \right) +E_d\left( x \right) E(x)=p∑​Em​(xp​)+p∑​Ew​(xp​)+p,qεN∑​Es​(xp​,xq​)+Ed​(x)

Mask data term

Em为mask data term,在传统图像拼接中,mask constraint 是一个hard constraint。在对参考图像和变换图像投影到一个新的坐标系下,然而这个新的坐标系存在一些问题,当我们把参考图像放入新的坐标系后,可能存在某些像素位置在参考图像中没有像素值,如上图c右边I-ref出现的黑条。当进行拼接缝的寻找时,mask constraint在MRF中是一个一元项并具有很高的 penalty cost,也就意味着 “ 别选择一个没有具体像素值的像素位置(x,y)”这个问题在multiple registrations就是在某些位置(也就是在所有I-can的warp交集之外的位置)只有一个candidate warp的像素值被呈现,这个warp-1是自动获取的,但是我们并不希望这样,因为这只会使得MRF选择最有可能的warp,因此引入了不确定标签并降低cost,以便为像素位置选择warp时是一个soft constraint。

Duplication avoidance term

由于使用了多次配准,也就导致可能存在物体重复了多次。因此提出了重复避免项,即对不同图像的不同位置出现了相同像素值标签进行惩罚。具体实现可考虑sift特征点或作者的另一篇目标检测文章:http://openaccess.thecvf.com/content_ECCV_2018/papers/Charles_Herrmann_Object-centered_image_stitching_ECCV_2018_paper.pdf

Smoothness term

为了使拼接缝连续,引入了波茨模型的平滑项使局部标签连续;对局部patch使用基于颜色的缝的惩罚使过渡区域更加自然;基于边的缝的惩罚避免缝通过边缘结构,以减少撕裂或伪影。

warp data term

为像素位置p选择一个最佳warp。

实验效果

本文提出的方法分别与AutoStitch,APAP,PhotoShop2018,NIS(NISwGSP)进行了比较

总结

文章展示了一种新颖的使用多个候选配准的图像拼接方法。使用一种加入新约束项的MRF方法来寻找拼接缝以消除常见的伪影现象如物体重复。我们的拼接方法在具有较大视差和物体移动的场景超越了现存算法。并且通过修改相应的变换函数可以推广到其他拼接表面如圆柱或球体。另外多图拼接同样适用。
问题:存在一些稀疏匹配点未能找到而导致图像重复或撕裂。
对某一物体只出现在一个配准图像中不确定是否能在拼接结果中产生有效的结果。

上述文字系个人浅见,欢迎大家补充评论。
联系作者:微信:shucangqingri

Robust image stitching with multiple registrations之浅见相关推荐

  1. 图像拼接--Robust image stitching with multiple registrations

    Robust image stitching with multiple registrations ECCV2018 本文使用多个 registrations 来增强图像拼接的效果 标准的图像拼接流 ...

  2. ECCV 2018 完整论文集 -- List 下载链接

    下文列表为ECCV2018官网得到了今年接收论文列表,共779篇: 下文为ECCV2018的全部接收论文汇总 Oral: Convolutional Networks with Adaptive Co ...

  3. 图像处理与计算机视觉:基础,经典以及最近发展(5)计算机视觉

    这一章是计算机视觉部分,主要侧重在底层特征提取,视频分析,跟踪,目标检测和识别方面等方面.对于自己不太熟悉的领域比如摄像机标定和立体视觉,仅仅列出上google上引用次数比较多的文献.有一些刚刚出版的 ...

  4. CVPR 2015 papers

    CVPR 2015  CVPR 2015的文章可以下载了,如果链接无法下载,可以在Google上通过搜索paper名字下载(友情提示:可以使用filetype:pdf命令). Going Deeper ...

  5. (十三:2020.08.28)CVPR 2015 追踪之论文纲要(译)

    CVPR 2020 追踪之论文纲要(修正于2020.08.27) 讲在前面 论文目录 讲在前面 论坛很多博客都对论文做了总结和分类,但就医学领域而言,对这些论文的筛选信息显然需要更加精细的把控,所以自 ...

  6. 15.4 CVPR 2015 papers

    本贴:http://blog.csdn.net/xuyuhua1985/article/details/46662283 From:  http://www.pamitc.org/cvpr15/pro ...

  7. golang标准库http服务器处理流程

    http标准库 golang本身就提供了http的标志库,在golang中可以轻松的编写http服务,本文主要是因为在编写http服务的过程中,对整个处理流程不是很了解故想了解一下. 示例代码 pac ...

  8. Spark源码阅读02-Spark核心原理之消息通信原理

    Spark消息通信架构 在Spark中定义了通信框架接口,这些接口实现中调用了Netty的具体方法.通信框架使用了工厂设计模式,这种模式实现了对Netty的解耦,能够根据需要引入其他的消息通信工具. ...

  9. 2013cvpr的总结

    显著性 Saliency Aggregation: A Data-driven Approach Long Mai, Yuzhen Niu, Feng Liu 现在还没有搜到相关的资料,应该是多线索的 ...

最新文章

  1. Sumline常用快捷操作
  2. PHP学习笔记4:字符串与正则
  3. iOS中Block的基础用法
  4. kafka的反序列化类KafkaDeserializationSchema的使用(还没整理完)
  5. 面向对象之多态性(基类引用可以指向子类)
  6. html 单选框_HTML
  7. python生成三对角矩阵_块三对角矩阵python
  8. 2015阿里巴巴实习生招聘客户端开发试题
  9. Gather-Excite:Exploiting Feature Context in Convolutional Neural Networks
  10. (2017多校训练第四场)HDU - 6078 Wavel Sequence dp
  11. 麒麟安全IPO过会:拟募资6.6亿 第一季营收下降40%
  12. 微信小程序微商城(九):微信授权并实现个人中心页面页面
  13. SLAM/VIO/VINS AR/VR
  14. MySQL入门学习之——实战XtraBackup
  15. office2010 word发布博客 博客园
  16. Spring Cloud中的Eureka和Zookeeper的区别在哪?
  17. ubuntu如何杀进程_ubuntu查看并杀死进程
  18. 大商创如何重置或修改商家店铺登录密码?
  19. 算法题:一个圆环上有100个灯泡,灯泡有打开关闭两种状态,灯泡状态随机。设计算法,使灯泡都亮。
  20. 峰度和偏度的计算方法偏度的处理

热门文章

  1. ASP无限级分类代码
  2. idea中注释报红解决
  3. 台积电欲在2018年进军7nm工艺 挑战英特尔
  4. 从环境工具到海量存储基础(微博新兵训练营课程)
  5. 人工电销时代,你来不来 ,ai智能电话机器人
  6. 自定义TAG标签页面聚合
  7. 【常用代码06】CSS自定义滚动条样式 overflow-y开启滚动条
  8. ThinkPad R61i 安装windows xp驱动
  9. 我用飞桨做了一个AI智能小车
  10. SAP进阶-BCS(合并报表)