基于子帧缝合的老电影大面积破损修复

2018-09-06 09:57夏天然丁友东
关键词:子帧老电影大面积

夏天然, 丁友东, 于 冰, 黄 曦

(1.上海大学上海电影学院,上海200072;2.上海大学上海电影特效工程技术研究中心,上海200072)

作为一种早期艺术的表达方式,老电影记录了早年社会的面貌,具有极大的研究价值,是不可或缺的一种史实资料.然而,由于历史和自然原因,老电影胶片存在着不同程度的损坏,其中黑白影片更为严重.胶片的噪声、划痕、斑点、抖动、闪烁、帧丢失、大面积破损和颜色退化等也都随着胶片数字化保留下来,需要修复人员进行逐帧的人工修复.计算机自动化修复技术不断更新,如数字视频去噪、颜色增强矫正、去闪烁、划痕与斑点的检测和修复等[1-4],提高了人工修复的速度.然而,对于影片画面大面积破损、有用信息大量丢失的情况,帧画面的完全复原对人工修复和计算机自动修复仍是不小的挑战.

目前,修复面积破损的方法主要有两类:图像修补和图像补全.图像修补是通过在参数模型中引入平滑先验知识,或使用偏微分方程(partial differential equations,PDEs)将局部的结构特征从破损洞的边缘由外向内进行扩散,由于该方法使用数学模型计算传播特征,只适用于修补直线、曲线等小面积的破损.基于此,Efros等[5]首次将纹理统计特性和相似性先验考虑在内,利用图像纹理具有一定规律的特性,从相似区域拷贝纹理信息并进行相应的缝合.这类方法称为基于样本的图像补全,其中选取的样本可以是像素点或像素块.根据样本拷贝范围的不同,图像补全可分为局部图像补全和全局图像补全,其中局部补全主要从当前图像或帧中选取相似样本.经典的局部图像补全方法有Criminisi等[6]提出的纹理和结构分离的补全方法,该方法优先考虑破损区域的结构信息,从而使得修复结果更为合理.另外,Huang等[7]提出了平面结构指导的图像补全方法,该方法自动提取图像几何透视约束和结构化规律约束,并使用这两种约束指导破损区域像素块的填充,很好地解决了结构化的几何变形图像破损.全局图像补全的方法[8-13]则是将搜索域扩展到邻帧,充分考虑时空的一致性,使得补全后的画面内容更为自然.然而,两种图像补全方法中相似块的错误搜寻和不自然的拼贴都会导致大面积破损区域无法进行较好的过渡修复,这对于追求流畅自然播放效果的老电影来说是无法容忍的.

目前,老电影的修复是使用MTI FILM公司开发的DRSTMNOVA软件来进行的.虽然上述软件还没有成熟的大面积破损修复模块,但在DRS模块中有一项前后帧替代工具,通过框选前后帧相似内容替代破损帧画面可以大致完成破损的修复.通过这种方法能够较好地修复背景不动的画面,但对于前景运动画面,直接的替代会出现拼贴不自然的现象.通过学习该工具的替代思想,并针对上述图像修复方法的不足,本工作不再局限于寻找最相似块,而是通过运动估计来整体还原破损区域的状态,提出了子帧缝合修复算法.子帧缝合修复算法首先将破损区域看成待修复子帧,并通过人工修复或前后帧寻找得到合适的前后参考子帧;然后,在插值过程中使用光流估计得到两参考子帧的运动路径,通过自适应的双向帧插值获得预处理中间子帧,并使用块匹配进行中间子帧重构;最后,在修复过程中将插值得到的中间子帧粘贴于破损处,并使用动态规划法计算帧内重合部分的最优路径完成子帧的图像缝合.由于子帧缝合修复算法使用帧插值对破损区域进行整体估计,破损区域内不会出现模糊或修复痕迹明显等现象.实验结果表明,子帧缝合修复算法不仅比传统方法有更好的修复效果,而且简单方便、易操作,可以协助人工完成更精细的运动破损画面修复.

1 算法

基于子帧缝合的老电影大面积破损修复算法的流程框架如图1所示.预处理步骤包括镜头分割和帧预修复,这是因为影片不同镜头内容相差较大,修复前需通过人工方式进行镜头分割,保证待修复帧的前后参考帧都处于同一镜头内.另外,由于画面的抖动、闪烁、细小的划痕斑点会影响后续的步骤,需要对帧进行预修复.对于画面的抖动和细小的划痕斑点等问题,使用老电影DRSTMNOVA修复软件进行修复.闪烁问题则采用文献[14]中的颜色传递算法确定参考帧,并将参考帧中的颜色传递给镜头中的其他帧,从而保证镜头色调的一致性.在框选子帧前,确保修复镜头中有完好的前后参考帧以供参考,如图1中子帧框选步骤的I1帧和I2帧.框选范围以完整包含所有破损区域并尽可能缩小框选面积为基准,如此既能完全修复破损,又充分保留原始信息.如果镜头中全部帧都已损坏,可通过人工修复得到两张关键参考帧.框选好破损子帧和前后参考子帧后,进入子帧插值步骤和子帧缝合步骤.子帧插值分为3步:运动路径估计、双向帧插值和中间子帧重构.子帧插值步骤中的I1s、I2s和Ir分别表示前向参考子帧、后向参考子帧和待修复子帧.如图1中像素A到像素A′的虚线所示,运动路径可通过计算像素对在时间轴上的运动矢量来获得.确定运动路径后,便可将合适的像素沿该路径移动到待修复子帧中.针对双向帧插值后存在的黑洞现象,使用块匹配对中间子帧进行帧重构.子帧缝合步骤中,将插好的子帧Ir使用图像缝合技术缝合在待修复帧的破损区域.对于边缘缝合痕迹明显的地方,可结合人工修复完成边缘微调,完善总体修复效果.

图1 基于子帧缝合的老电影大面积破损修复算法的流程框架Fig.1 Flow framework of old film restoration quilting based on subframe

1.1 基于运动路径的子帧插值

使用基于运动路径的插值方法对子帧进行插值,其中运动路径表示前后参考帧对应像素在时间维度的运动矢量.假设前向参考帧中的像素点为(x,y,t),后向参考帧中的对应像素点为 (,则两像素差值为

式中,G是一个高斯滤波器.平滑项则假定分段的平滑流场,

使用迭代加权最小二乘法对式(5)进行金字塔式的迭代优化,求出最佳的(u,v)值,进而得到所需的运动路径.

在插值过程中,使用自适应的双向帧插值法对待修复子帧进行插值处理.将待修复子帧看作黑帧,分别从前帧和后帧中选取合适的像素沿运动路径平移到待修复子帧中.对于多帧的修复,前一半的待修复子帧优先考虑前向参考子帧的像素,而后一半的待修复子帧优先考虑后向参考子帧的像素.由于插完后的子帧存在黑洞现象,因而需要对其进行重构修复,保证结果自然.为保证重构的准确率,使用近邻域像素对黑洞进行预填补.

在中间子帧重构的过程中,使用块匹配从前后参考子帧中寻找最相似的块对中间子帧进行重新构建.块匹配的核心是在图像B中寻找与图像A最为相似的块的最近邻域场(nearest neighbor fields,NNFs).Barnes等[16-17]分两步解决了最近邻域场的计算,首先使用随机数或已知的先验信息初始化NNFs,然后对NNFs进行不断的迭代.迭代过程分为传播和随机搜索.假定函数表示NNFs的偏移量,a是图像A的块坐标,b是图像B的块坐标,那么f(a)=b−a.在传播过程中,联合考虑(x−1,y),(x,y−1)和(x,y)的偏移情况,因而有

在随机搜索过程中,搜索半径呈指数规律增长,有

式中,V0=f(x,y),m表示最大搜索半径,ε表示搜索窗口尺寸比例,Ni表示在[−1,1]×[−1,1]的随机数.在搜索域内随机搜索最相似块,直到搜索半径mεi小于单个像素.计算完NNFs后,根据所得匹配块偏移量完成中间子帧的矫正.

1.2 破损区域的子帧缝合

直接将插值后的子帧粘贴在破损区域会出现边缘痕迹明显的现象.图像融合[18-19]致力于将背景和移植的图像块融合,并不适用于对破损区域的修复,而且融合会导致边界模糊.因而,为了减少边界效应,此处使用图像缝合技术对子帧进行缝合处理.缝合的关键是在图像边缘重叠部分找到一条最优的缝,通过这条缝,重叠区域被分成两部分,其中缝左边或上边的重叠区域选取左边或上边图像的像素值,缝右边或下边的重叠区域则选取右边或下边图像的像素值.

重叠区域最优的缝可转换成求解使得边界误差成本最小的像素路径.图像缝合的示意图如图2(a)所示,其中A0,B0分别是图像A和图像B重叠部分的图像,I0是两图像的重叠区域,(i,j)表示重叠区域中的像素坐标.缝s的能量函数为

图2 子帧缝合Fig.2 Subframe quilting

2 实验结果与分析

老电影大面积破损修复的镜头素材选自《神奇的剑塔》《马路天使》和《山间铃响马帮来》.对《神奇的剑塔》中代表性的头部左转镜头人工添加破损,测试本方法相较于其他方法的可行性.选取《马路天使》和《山间铃响马帮来》中真实存在的破损镜头,测试本方法对实际破损帧画面的修复效果.

对人工合成的影片进行修复,并通过计算不同修复情况下的峰值信噪比(peak signal to noise ratio,PSNR)对影片修复结果进行客观评价.图3为《神奇剑塔》中头部左转镜头某一帧采用不同方法修复的实验结果.实验的帧大小为1 920×1 080像素,子帧选取大小为640×676像素,前后参考帧选取当前帧的前一帧和后一帧.为了清晰展现修复效果,截取帧中被修复的部分进行说明.图3(b)是采用文献[7]中算法的修复结果,显然帧内参考的图像补全修复方法并不适用于人物面部缺损的构建,无法实现自然的画面修复.由于全局图像补全算法针对视频画面物体去除的补全,侧重于背景的复原,此处不再探讨.图3(c)是使用DRSTMNOVA软件将前帧的画面替代破损画面的结果,因为人物前后帧存在运动,所以局部放大后能看到明显的拼贴误差(见图3(f)).通过本工作基于运动路径的子帧插值算法进行修复,由图3(d)和(e)可以看出,修复后的画面都有相对自然的人物中间状态,而子帧缝合技术的运用,使得图3(h)比图3(g)拥有更为自然的边缘过渡.表1为头部左转镜头破损帧修复结果在不同算法下的PSNR值.通过图3和表1可知,本工作提出的算法优于以文献[7]为代表的单张图像修复算法和DRS修复软件.

图3 《神奇的剑塔》的修复实验结果Fig.3 Experimental results of “The Magical Sword Tower”

表1 影片修复算法不同时的PSNR值Table 1 PSNR values of different algorithms for film restoration dB

除了修复结果,老电影的修复时间同样重要.由于画面损伤程度不同,人工修复熟练度不同,使用DRSTMNOVA软件修复的时间是无法预估的.表2为文献[7]中的算法与本算法在执行时间上的比较.由表2可知,本算法的计算速度明显高于文献[7]中的算法.通常老电影多帧画面中仅少数几帧出现较为严重的大面积破损,而精细的修复这类画面需要耗费很长时间.使用54.9 s修复640×676像素的破损画面是可以接受的,耗时快于人工逐像素的拷贝修复.

表2 电影修复算法不同时执行时间的比较Table 2 Comparison of different algorithm execution time for film restoration s

实际情况下老电影大面积破损修复更为复杂,修复难度也更高.对于单帧的破损修复,选取《山间铃响马帮来》中的大面积污渍唱歌画面进行修复.待修复镜头中类似图4(a)的破损连续帧有9帧,并且该镜头的第一帧就出现大面积污渍.由于没有完好的前向参考帧,这连续9帧中重叠破损的区域采用本工作中的方法无法修复,因而只对可以从前帧中寻找到完好参考内容的第9帧进行修复.在《山间铃响马帮来》的修复实验中,帧大小为2 048×1 556像素,子帧选取大小为649×1 553像素,前向参考帧选取镜头中的第1帧画面,而后向参考帧选取第10帧.通过本工作子帧插值的方法插出中间8帧,并使用第8帧进行子帧缝合,实验结果如图4所示.对于多帧的破损修复,选取《马路天使》中连续4帧存在大面积亮斑的画面进行修复,结果如图5所示.由于该镜头要修复的破损帧数增加,破损区域还包含人物的运动,若恢复出合理的人物状态较难.在《马路天使》的修复实验中,帧大小为720×576像素,子帧选取大小为300×240像素,前后参考帧选取当前四帧的前一帧和后一帧.根据光流估计,修复算法较好地还原了亮斑处人物的运动,为人工修复时确定人物的运动状态提供了很好的参考.从图4和图5可以看出,本工作提出的算法总体上解决了有完好前后参考帧的实际运动破损画面的修复,并取得了较自然的修复结果.

图4 《山间铃响马帮来》的修复实验结果Fig.4 Experimental results of“Caravans with Ring”

图5 《马路天使》的修复实验结果Fig.5 Experimental results of “Street Angel”

3 结束语

本工作提出了一种子帧缝合的老电影大面积破损修复方法,该方法将帧的破损区域看成子帧,通过前后参考子帧进行子帧插值处理,解决了包含物体运动的老电影大面积破损问题.同时,该方法通过子帧缝合,淡化了直接粘贴的边缘痕迹,使得修复更为自然.虽然子帧缝合的大面积破损修复并不能完全复原破损前的状态,但实验结果较为自然,在实际影片的播放过程中看不出明显的修复痕迹.不管是作为老电影直接修复工具还是协助修复工具,本工作提出的方法都有一定的现实意义和实际可操作性,切实解决了老电影的大面积破损修复问题.

猜你喜欢
子帧老电影大面积
到哪里去看老电影?
重温老电影:怀旧,那抚慰人心的吸引力
中国移动LTE FDD&TDD载波聚合部署建议
LAA系统在非授权频段上的动态子帧配置策略
异构网络中小区间联合干扰协调算法研究
PDCA循环在大面积烧伤患者悬浮床使用中的应用
皮肤扩张预制皮在躯体大面积瘢痕治疗中的应用
扩张器在治疗烧伤后大面积疤痕性秃发的应用
TD—LTE特殊子帧配比的优化设计
中西医结合治疗大面积深度烧伤后残余创面35例