第一次写博客,版面布局如有不合适,请指出,我后面还可以再调整。
对文章的理解可能有偏差,如有错误,请不吝赐教,感激不尽!!!不喜轻喷_
文章下载:link.
摘要
全景图像变得越来越受欢迎,很多软件可以自动的生成全景图像。例如pFactor,PTGui等软件,但这些软件会存在一些负作用。本文提出了拼接中常见的两个问题:在动态场景中的运动物体的处理(de-ghost)和图像曝光不一致的问题。运动物体带来的goast问题,使用顶点覆盖算法(vertex cover algorithm)保留一个可用的区域。曝光不一致的问题,通过计算每个块的曝光误差,然后平滑插值实现曝光补偿。鬼影问题
当待拼接图像的重叠区域(overlap region)中存在运动的场景,如果用blending的融合方法,那么拼接后的图片会出现鬼影现象。为了解决鬼影的问题,我们首先需要找到图片中的哪些区域是运动的物体,然后在考虑我们选择其中一张图片使用。运动的场景出现在哪里?
区分待拼接图像中的静止场景和运动场景的方法,是根据拼接图像的重叠区域的差(ROD,region of difference),形成像素差映射mapping。我们还需要用形态学腐蚀膨胀的方法去平滑像素差mapping。然后使用区域提取算法去识别和标识连续的区域。这样计算出来的RODs就能反映一张图像的静止区域和运动区域了。 对于overlap区域存在运动场景的问题,我们的目的就是从ROD确定并使用一张图的区域作为全景图对应的区域。Figure1-a是一张脸轻微的运动,Figure1-b是每张脸对应的ROD。Figure1-c是一张脸更大幅度的运动,Figure1-d是对应Figure1-c的ROD,因为运动幅度较大,所以RODs没有重叠。选择哪一张图像?
选择哪个图像的问题用到了vertex cover问题。这里简单介绍一下这个问题:给定一个N个点,M条边的无向图G(点的编号从1至N),问是否存在一个不超过K个点的集合V’,使得G中的每条边都至少有一个点在集合V'中(网上可以找到更加丰富的解释)。 文章将每张图ROD假设成一个顶点,这些对应的RODs用线连接,相反,不对应的RODs就不存在overlap区域。Figure1-b的情况都可以用Figure2来表示无向量图G。
Figure2是G=(V,E),V表示顶点A,B,C分别是3张图像的RODs,E表示ROD是否存在对应关系。存在集合V’,是得G中每条边至少有一点在集合V’中。如果我们移除集合V’中的顶点,留下的顶点集合就不会有运动的区域了,也就是没有冲突的区域了,在融合的时候也就没有鬼影啦。
对于Figure2,我们可以移除AB,或者BC,或者AC。但是为了避免由于图像边缘存在ROD而带来的物体不连续问题,我们给定ROD的权重=靠近图像中心的程度/size。越靠近图像中心的RODs,权重越大,保留的几率越大。
Figure3 能更好的体现出使用权重比例来取舍ROD的方法的优越性。用顶点覆盖的方法来取舍ROD,那么需要清除的顶点无论是哪个都是合理的。但是用权重比例的方式 ,B1权重大于A,B2权重大于C,所以A和C被清除。
Figure4则是一种更加复杂的情况,清除的集合可能是CB,ABC或者ACD。如果选择清除CB,那么拼接的图像可能会缺失像素信息。实际中我们也很难遇到这种情况。