测绘地理信息   2020, Vol. 45 Issue (2): 96-100
0
顾及行人的室内全景影像拼接方法[PDF全文]
董颖青1, 姚剑1, 李礼1, 朱吉1    
1. 武汉大学遥感信息工程学院,湖北 武汉,430079
摘要: 在室内场景的全景影像拼接过程中,易出现行人运动目标引起的“鬼影”现象。针对此问题,提出一种顾及行人的室内全景影像拼接方法,利用深度学习对整幅影像进行逐像素目标级分割,保持行人目标的完整性,并结合重匹配、显著度检测等对运动类型进行判定,生成带权的运动区域掩膜,结合灰度、梯度差及纹理复杂度等特征,融入基于图割算法的拼接线检测能量方程中,对行人区域进行补偿,最终生成背景干净、无“鬼影”的全景影像。
关键词: 全景影像    目标分割    图割能量优化算法    最优拼接线    
An Indoor Panoramic Image Stitching Algorithm with Consider of Pedestrian
DONG Yingqing1, YAO Jian1, LI li1, ZHU Ji1    
1. School of Remote Sensing and Information Engineering, Wuhan University, Wuhan 430079, China
Abstract: In the panoramic image mosaic of indoor scene, the problem of ghosts caused by pedestrian is easy to appear. To solve this problem, an indoor panoramic image stitching algorithm with consider of pedestrian is proposed in the paper. Firstly, deep learning is used to obtain a per-pixel instance segmentation result, which could maintain the integrity of the pedestrian. Further, with the pedestrian re-identification and saliency detection, the pedestrian are divided into diffe-rence moving types, and the weighted moving area mask is then generated. Finally, the weighted moving area masks with the features of gray, gradient difference and texture complexity are extracted, and putting into the optimal seamline detection in the graph cuts energy minimization framework to generate high-quality panorama with relative clean background and no ghost.
Key words: panoramic images    instance segmentation    graph cuts    optimal seamline    

全景影像由于其视角范围大,拥有360°实景立体空间感等特点,在室内外场景中得到了广泛的应用,如街景地图、景区漫游图、医院等公共场所浏览图、室内定位及导航等[1-3]。其中,全景影像拼接作为其中一个热点研究课题,由于同中心多相机的拍摄装备昂贵,待拼接影像通常并非同时采集,场景中难免存在运动目标。因此,在动态场景下,为获取高质量的全景拼接影像,应使拼接线绕开运动目标,避免拼接结果中出现“鬼影”现象。

近年来,已有大量专家学者展开了基于动态场景的拼接线检测方法研究[4-6]。Kim等[4]针对重叠度较大的多幅影像进行拼接,采用马尔科夫随机场对背景中的运动目标进行估计,最终得到背景相对干净的拼接结果。Zeng等[5]通过梯度差异和边缘强化权重灰度差异对运动目标进行检测,使用动态规划策略来检测最优拼接线的位置。Zhi等[6]使用图割能量优化算法,结合深度信息、平稳过渡标准以及运动区域的掩膜对最优拼接线的位置进行检测,将前景、背景分割和一致性运动知觉标准结合起来,扩展合成运动区域的掩膜作为辅助信息协助拼接过程。然而,上述方法均需要参考多幅影像,且分割效果受背景、光照的影响大,在针对于两幅影像进行拼接时效果欠佳。为解决上述问题,Li等[7]采用颜色空间法、差值法、形态学等方法对两幅影像间的运动目标进行提取,并通过边缘检测算子对运动目标进行匹配,判断运动目标来源,并结合图割能量优化算法检测最优拼接线位置,在有限的影像下依然可以取得较好的拼接效果。然而,该方法对光照强度和背景颜色较为敏感,特别在运动目标数量较多时,提取效果难以达到实际应用需求,存在运动目标分割不完整的情况,从而导致拼接线从运动目标穿过,出现“鬼影”现象。

针对以上问题,本文基于室内场景常见的行人运动目标,采用深度学习对行人进行目标级实例分割,以解决运动目标提取不完整、多运动目标难以完全分割等问题,保持提取到行人目标的完整性。此外,结合影像重匹配、显著度检测等策略对运动目标的类型进行判定,生成带权的运动区域掩膜,将其融入图割能量优化的拼接线检测方程,对运动目标区域进行补偿,最终生成背景相对干净、无“鬼影”的全景影像。

1 本文算法流程

本文算法流程为输入待拼接鱼眼影像,校正于同一坐标下,对基于深度学习的行人目标实例分割,对行人重匹配及运动类型判定,检测显著度及生成运动目标区域,基于图割能量优化算法进行拼接线检测,输出全景影像。首先,基于深度学习对行人进行目标级实例分割;然后,基于分割出的行人目标重匹配,对不同运动类型进行区分;之后,基于不同运动类型,针对性的对目标区域进行显著度检测,生成带权的运动区域掩膜;最后,将运动区域的带权掩膜信息作为软约束,结合影像的亮度、梯度差、纹理复杂度等特征,融入图割能量优化算法,获取最优拼接线位置,最终生成背景尽可能干净的全景影像。

1.1 基于深度学习的行人目标实例分割

由于本文需利用独立分开的目标以便后期重匹配及权重赋予,在对行人目标进行分割时采用实例分割网络,通过多任务学习方法将目标实例分割分为实例区分、掩膜估计、目标分类3个子任务,每个子任务之间形成级联结构,共享卷积特征,最终输出每个目标独立的分割结果。由于待拼接影像已校正到同一坐标系且小运动目标较多,本文在实例分割部分采用如下两种策略方式进行:①剔除不存在目标的房顶和地面区域,将中间部分划分为若干重叠度较大的影像输入至实例分割网络,达到更利于运动目标准确分割的目的,如图 1所示。②当重叠区域内同一目标重复分割时,将其合并成一个目标,如图 2所示。最终同一目标只生成分割结果,依据提取的每个行人目标,输出其坐标位置信息。

图 1 全景实例分割策略示意图 Fig.1 Schematic of Panoramic Instance Segmentation Strategy

图 2 全景实例分割合并示意图 Fig.2 Schematic of Panoramic Instance Segmentation and Merging

1.2 行人重匹配及运动类型判定

考虑到全景影像图幅较大,而大部分行人目标较小。为减轻视角变化对匹配结果的影响,本文基于身体对称性的特征提取方法对行人目标进行重匹配。首先,对人体的头、躯干、腿部根据左右对称中轴进行划分,提取各区域累积颜色、统计纹理等多种特征;然后,基于对称中轴对特征进行加权,越靠近中轴的特征其权值越高,远离中轴的特征权值越低。主要步骤如下:①根据待拼接影像的行人实例分割结果及其基于原图的位置,对互有重叠区域的两幅待拼接影像间进行判定,进而对行人目标进行重匹配,如图 3(a)图 3(b)所示;②对匹配成功的运动目标进行运动类型判定,依据重叠比例判定为消失、大范围运动、小范围运动、不动4种运动模式,如图 3(c)所示。判定标准的公式为:

$ m(i, j)=p(i) \times \exp (r(i, j)) $ (1)
图 3 行人匹配及分类示意图 Fig.3 Schematic of Pedestrian Matching and Classification

式中,m(i, j)代表行人目标的运动状态。当m(i, j)=0,即找不到匹配的目标j,目标i判定为消失目标;当m(i, j)=1,目标ij判定为大范围运动目标;当m(i, j)∈(1, e),目标ij判定为小范围运动目标;否则,目标ij判定为原地不动。p(i)代表目标i是否存在匹配成功的目标:若存在,则赋值为1;否则赋值为0。r(i, j)代表匹配成功的目标ij的最小包围盒重叠度,其定义为:

$ r(i, j)=o(i, j) /(a(i)+a(i)-o(i, j)) $ (2)

式中,o(i, j)代表目标ij之间的重叠面积;a(i)和a(i)分别代表目标ij的最小包围盒面积。

1.3 显著度检测及运动目标区域生成

针对含重叠区域的待拼接影像对,在行人目标位置出现重叠时,由于无背景填充,无论拼接线如何绕,重叠区域都会出现至少一个目标在最终的全景影像上。本文基于HC(histogram-based contrast)显著性检测方法[8]计算行人目标相较背景的显著度,如图 4所示,对各个目标赋予相应的权值,从而使显著度较小的目标保留在最终全景影像上。

图 4 HC显著性检测结果 Fig.4 Result of HC Saliency Detection

根据显著性检测的结果,对不同运动类型的行人目标设置权重,对互有重叠度的两幅影像生成相应的权重图W1W2。以第一张影像作为参考,权重设置方式如下所示。

1) 若第一张影像判定为消失或大范围运动目标Ok,根据重叠度判断第二张影像的对应区域是否存在行人目标:若不存在,则基于运动目标Ok的权重为W1(Ok)=θ;若存在,则对两个行人目标OkOg的显著度H(Oi)进行比较,H(Oi)代表目标Oi的显著性最终度量,计算方法为:

$ H\left(O_{i}\right)=\sum\limits_{x \in O_{i}} \mathrm{HC}(x) / \operatorname{cnt}\left(O_{i}\right) $ (3)

式中,Oi指行人目标i的分割像素范围;HC(x)指位于Oi内的像素x基于HC算法得到的单个显著值;cnt(Oi)指Oi的像素个数统计,i取为kg

H(Ok)和H(Og)进行归一化,得到归一化值T(Ok)和T(Og),最终权重W1(Ok)和W2(Og)的赋值方式为:

$ \left\{\begin{array}{l} W_{1}\left(O_{k}\right)=T\left(O_{k}\right) \times \theta \\ W_{2}\left(O_{g}\right)=T\left(O_{g}\right) \times \theta \end{array}\right. $ (4)

式中,θ为选定的权重值,设置为255。

2) 对匹配为同一目标的OkOg的判定为小范围运动的情况,将OkOg合并生成带权掩膜W1(OkOg)=θW2(OkOg)=θ

3) 对不动的行人目标OkOg,权重W1(Ok)=0,W2(Og)=0;

4) 权重图W1W2的其余区域权重赋予0。

1.4 基于图割能量优化的拼接线检测

图割能量优化算法是一种高效的能量优化算法,在计算机视觉领域中前背景分割、立体视觉、影像拼接等方向得到了广泛的应用[9-11]。其中,Gong等[9]、Ouyang等[10]采用图割能量优化算法进行影像拼接,均获得了无缝衔接的拼接结果。因此,本文将拼接线检测问题看做图割能量优化问题,如图 5所示,针对待拼接具有重叠区域的影像I1和影像I2,通过在构建的拼接影像上下多加2个顶点分别代表合成后来自影像I1I2,拼接影像中所有的点与邻域点之间均通过边进行连接,并分别和两个顶点相连形成边、图,其中每条边都代表一个能量消耗值,最后找到能量最小割的位置——即得到优化的拼接线[7]

图 5 图割优化拼接线示意图 Fig.5 Schematic of Graph Cuts Optimization in Finding Seamline

针对待拼接影像(I1, I2),最终全景影像I的能量项E(I)由数据能量项Edata(I)和平滑能量项Esmooth(I)组成,如式(5)所示,数据能量项代表当前像素在影像内的所有能量消耗,平滑能量项代表当前像素邻域内的所有能量消耗。E(I)为:

$ E(I)=E_{\mathrm{data}}(I)+E_{\mathrm{smooth}}(I) $ (5)

式中,数据能量项Edata(I)定义为:

$ E_{\mathrm{data}}(I)=\sum\limits_{x \in I}\left(D_{l}^{1}(x)+D_{l}^{2}(x)\right) $ (6)

Dl1(x)和Dl2(x)分别代表将像素x分配给I1I2的能量消耗。针对非运动区域和提取的运动区域,处理方式有所不同。针对分割的运动区域,将像素x分配给I1I2的能量消耗分别由其所在运动区域的权值W1(Ok)和W2(Og)决定,其中OkOg分别代表像素x所对应的在I1I2的运动目标区域,Dl1(x)和Dl2(x)为:

$ \left\{\begin{array}{l} D_{l}^{1}(x)=W_{1}\left(O_{k}\right) \times T \\ D_{l}^{2}(x)=W_{2}\left(O_{g}\right) \times T \end{array}\right. $ (7)

式中,T代表平衡数据能量项和平滑能量项的补偿系数,在本文中T的取值设置为100。

针对非运动区域,若在拼接线检测时将像素x分配给I1Dl1(x)的值设为0;若分配给I2,则Dl1(x)的值设为无穷大。针对Dl2(x)的情况同理,定义为:

$ \left\{\begin{array}{l} D_{l}^{1}(x)=\left\{\begin{array}{l} 0, x \in I_{1} \\ \infty, x \in I_{2} \end{array}\right. \\ D_{l}^{2}(x)=\left\{\begin{array}{l} 0, x \in I_{2} \\ \infty, x \in I_{1} \end{array}\right. \end{array}\right. $ (8)

平滑能量项Esmooth(I)代表所有像素在邻域的能量消耗,定义为:

$ E_{\text {smooth }}(I)=\sum\limits_{(x, y) \in N(I)} \sigma(x, y) \times E_{\text {smooth }}(x, y) $ (9)

式中,N(I)代表拼接后的全景影像I中的所有像素对; (x, y)代表相邻像素; 系数σ(x, y)代表像素xy是否相同:若相同则为0,否则设为1;Esmooth(x, y)代表xy之间的平滑能量。平滑能量项的设计综合考虑灰度、梯度差、纹理复杂度等进行设置[7],从而在非运动区域尽可能保证拼接线在灰度均匀、纹理复杂度低的区域穿过。

2 实验结果与分析

本文选用商场和写字楼内采集的室内拍摄鱼眼影像进行实验。鱼眼影像的原始尺寸约为4 800像素×3 200像素,5幅影像为一组,如图 6(a)所示;投影校正于同一坐标系后,待拼接影像尺寸约为9 500像素×4 800像素,如图 6(b)所示。为了证明本文方法的有效性,实验选取的对比方法有PtGUI商业拼接软件、Zeng等[5]和Li等[7]的拼接方法,实验结果如图 7图 8所示。

图 6 实验数据示意图 Fig.6 Schematic of Experimental Data

图 7 拼接效果示意图 Fig.7 Schematic of Stitching Result

图 8 全景拼接效果示意图 Fig.8 Schematic of Panorama Stitching Result

为更好地展示细节,第1组实验选择两张影像图 7(a)图 7(b)进行,选取场景为写字楼内。如图 7(f)所示,利用PtGUI商业软件可顺利完成拼接工作,且在非运动区域无明显接缝。然而,对行人目标进行放大时,出现半个人现象,影响视觉效果。Li等[7]的运动区域提取结果,由于背景的干扰等原因,最终的运动区域提取不完整,如图 7(c)所示。最终,Li等[7]拼接结果如图 7(g),拼接线在非运动区域能尽可能从纹理复杂度小、亮度均匀的区域穿过,实现无缝拼接。但在运动区域(如放大区域)可见明显的拼接线穿过行人目标的现象。经过本算法改进,通过如图 7(d)图 7(e)的左右影像的运动区域分割结果干预,最终生成如图 7(h)的拼接结果,准确绕开运动目标,并保留了尽可能干净背景,从而将行人运动目标个数从PtGUI和Li等[7]的各4个降低到了仅剩2个目标。

针对全景影像,第2组实验影像场景为商场,如图 8(a)。4种拼接算法均能顺利完成拼接过程。然而,在用PtGUI商业软件拼接时,中部出现了半人现象(见红框处),且保留的运动目标过多,如图 8(b);Zeng等[5]的拼接结果无法保留干净背景,所有目标都保留在拼接结果中,如图 8(c)所示;Li等[7]由于运动目标分割效果欠佳,从而无法准确绕开运动目标(见红框处),如图 8(d);本文拼接算法通过对运动区域的准确分割,最终得到拼接结果如图 8(e),且PtGUI、Zeng等[5]、Li等[7]的行人目标保留个数分别为8、6、4,本文最终的保留个数为1,达到了尽可能保留干净背景的目的。

3 结束语

针对室内全景拼接过程中存在行人运动目标的情况,本文提出一种顾及行人的室内全景影像拼接方法,通过对行人运动目标的准确定位和分割,作为软约束加入基于图割的拼接线检测能量方程,最终拼接成无“鬼影”、背景干净的全景影像,在实在无法保留背景区域时,选择显著度低的行人目标保留在最终的全景图中,最大化减少视觉冲突。实验结果表明,本算法与常用影像拼接方法比较能产生较好的拼接结果。

参考文献
[1]
冯建平, 吴丽华. 基于全景图像的三维全景漫游系统的构建[J]. 计算机与数字工程, 2013, 41(1): 115-117. DOI:10.3969/j.issn.1672-9722.2013.01.036
[2]
梅文胜, 徐芳, 陈潇. 室内全景三维控制场设计与建立[J]. 测绘信息与工程, 2011, 36(6): 39-42.
[3]
傅春瑜, 刘琍, 金平, 等. 医院智能化的三维全景导航系统构架与实现[J]. 中国数字医学, 2016, 11(8): 89-91. DOI:10.3969/j.issn.1673-7571.2016.08.029
[4]
Kim D W, Hong K S. Practical Background Estimation for Mosaic Blending with Patch-Based Markov Random Fields[J]. Pattern Recognition, 2008, 41(7): 2 145-2 155. DOI:10.1016/j.patcog.2008.01.015
[5]
Zeng L, Zhang S, Zhang J, et al. DynamicImage Mosaic via SIFT and Dynamic Programming[J]. Machine Vision and Applications, 2014, 25(5): 1 271-1 282. DOI:10.1007/s00138-013-0551-8
[6]
Zhi Q, Cooperstock J R. Toward Dynamic Image Mosaic Generationwith Robustness to Parallax[J]. IEEE Transactions on Image Processing A Publication of the IEEE Signal Processing Society, 2012, 21(1): 366-378.
[7]
Li L, Yao J, Li H, et al. Optimal Seamline Detection in Dynamic Scenes via Graph Cuts for Image Mosaic-king[J]. Machine Vision and Applications, 2017(11): 1-19.
[8]
Cheng M M, Mitra N J, Huang X, et al. Global Contrast Based Salient Region Detection[J]. IEEE Tran-sactions on Pattern Analysis and Machine Intelligence, 2015, 37(3): 569. DOI:10.1109/TPAMI.2014.2345401
[9]
Gong Y, Xie H, Xie W, et al. Research of Image Stitching Method Based on Graph Cuts and Poisson Fusion[J]. International Journal of Multimedia and Ubiquitous Engineering, 2014, 9(10): 101-108. DOI:10.14257/ijmue.2014.9.10.10
[10]
Ouyang N, Zhai Z L, Shou Z Y, et al. Image Stitching of Multi-band Blending Based on Graph Cut[J]. Microelectronics and Computer, 2013, 30(7): 107-110.
[11]
熊罗凯, 陈超, 徐佑军. 基于图割的快速图像贴图技术[J]. 计算机工程与应用, 2016, 52(13): 218-221. DOI:10.3778/j.issn.1002-8331.1407-0621