旧电影胶片划痕检测算法研究
——一种基于空域亮度模型与形态学特征的方法
2011-03-15庄晓宇杨小康
庄晓宇,杨小康,陈 立
(上海交通大学 图像通信与信息处理研究所;上海交通大学 上海数字媒体处理与传输重点实验室,上海 200240)
0 引言
电影是人类宝贵的艺术文化遗产。然而电影胶片是一种容易老化的化学物质,并且由于不恰当的保存、播放和拷贝,使得许多旧影片或损坏或丢失。随着数字技术的发展,数字修复成了旧电影修复的主要方式。该技术的目标是将严重降质的老电影胶片恢复成为可满足观众需求的无损伤的高质量数字视频。研究针对旧电影中的闪烁、斑点、划痕、褪色等损伤的检测修复算法,是该领域的重要工作。
本文主要针对电影胶片中经常出现的划痕损伤进行了分析和研究。划痕的形成原因主要有两个,一是视频在拍摄过程中颗粒对胶片产生了划伤,二是视频在播放过程中胶片与摄像机摩擦产生了损伤。因此,划痕通常呈线状分布在电影胶片中,一般为3~10个像素宽,长短不一,或为白色或为黑色,所覆盖区域图像信息被严重破坏。直线划痕会在同一位置保持若干帧,或轻微移动。
划痕检测算法在很多文章中已有讨论。Kokaram[1]认为划痕是一种加性损伤,不含有原图的任何信息。Kokaram通过霍夫变换提取图像划痕,并向水平轴垂直投影,获得划痕模型,再利用贝叶斯算法限定模型参数,找出划痕位置。Kokaram模型过于简单,对长度较短的短划痕容易造成漏检。Bruni[2]修改了Kokaram划痕模型,提出了一种更为通用的划痕亮度特征模型。Bruni算法改进了Kokaram的不足之处,但此算法不能自动检测白色划痕和黑色划痕,也不能提供划痕的长度信息以及在垂直轴上的位置信息。除此之外,文献[3-5]均利用了划痕空域亮度模型进行检测。
除了以上的主要方法之外,另有一些利用划痕的边缘形态特性进行检测[6-9],但是由于没有利用划痕的亮度余弦衰减特性,容易产生误检和漏检现象。
综上所述,Kokaram和Bruni提出的基于划痕空域亮度模型的检测方法,可以较为精确地检测到垂直划痕在图像水平方向上的位置,但是这种方法没有考虑到划痕的形态特性,因此无法获得垂直划痕在垂直方向上的长度和具体位置等细节信息。另一方面,仅仅利用划痕的边缘特性进行检测方法,虽然可以获得划痕的细节信息,但由于作用于整幅图像并且缺少定量的分析,主观性较大,不可避免地会检出许多同样具有边缘特性的干扰物体。
1 新算法简介
针对以上问题,笔者提出了一种新的检测算法,将检测过程分为两个步骤(如图1所示),先利用垂直划痕的空域亮度特征模型定位划痕在水平方向上的位置,再利用划痕的形态学特征获取这些划痕在垂直方向上的细节信息。不同于传统意义上的利用划痕单一特征进行检测的方法,这种新的检测算法同时考虑了划痕的两方面特征,使得检测过程:
1)精确度高。划痕位置定位和划痕细节获取这两个步骤之间相辅相成,前者对于划痕水平位置的预定位缩小了后者的作用范围从而去除了后者检出的大量干扰噪声,而后者对于前者进行了细化从而提取出了垂直划痕的长度及垂直方向上的位置信息。
2)计算复杂度低。划痕位置定位的算法复杂度只有O(N)(N为待检测图像列数),远小于通过神经网络预筛选划痕的方法[7]。
3)自动化程度高。在第一步中改进了划痕的亮度空间模型,并且在Bruni的检测方法基础上加入了划痕颜色的判断,使得检测过程自动化程度提高。实验证明,此检测方法能自动检测电影胶片中的各种垂直划痕,可投入实际应用中。
2 划痕位置定位
2.1 传统的划痕空域亮度模型
根据Kokaram和Bruni对于垂直划痕亮度特性的研究成果,划痕在图像水平方向上呈衰减的余弦特性,数学表达式为
式中:i为图像x轴,j为图像y轴,bp是划痕最小亮度,mp和cp分别代表余弦曲线的斜率和截距,kp为划痕的衰减系数,ωp为划痕宽度的一半[1]。
Bruni检测算法主要过程是:首先对图像采取零均值的Random投影以加强划痕亮度的余弦特性,并获得图像的亮度截面曲线(如图2所示),接下来,根据划痕的宽度特性(3~10像素宽),亮度特性(超过图像平均亮度阈值),以及人眼特性(人眼对同一物体的辨别力随背景亮度的变化而变化),依次筛除亮度截面曲线中不符合条件的极值点,最终得到垂直划痕在水平方向上的位置。
2.2 改进的划痕空域亮度模型
传统的垂直划痕模型只描述了划痕亮度的余弦衰减特征,缺少长度和宽度信息。因此笔者提出了一个更为详尽的划痕空域亮度模型
式中:i为图像x轴,j为图像y轴。rs(j)是图像第j列划痕的起始位置,re(j)为图像第j列划痕的终端位置,bp为划痕最小亮度,pi代表余弦曲线的极值点位置,kp为划痕的衰减系数,ωp为划痕宽度的一半,sgn为阶跃函数,定义为
基于Bruni检测算法,在划痕位置定位的检测步骤中加入了对划痕颜色的判断,提高了检测过程的自动化程度(检测步骤见图3)
得到的划痕初级掩模如图4所示。
3 划痕细节获取
3.1 算法描述
划痕由外界损伤所致,对于整幅图像不协调,对于其周围像素而言,边缘特性明显。形态学作为图像处理的一种常用手段,可用来提取与图像形状有关的图像分量,而形态学滤波器则常用于去除图像中的噪声。这里,将划痕也看成图像中的一种噪声,用形态学滤波器结合特定的结构元素将其滤出。先用Canny算子对图像进行边缘检测,再用形态学滤波器对图像进行滤波,原图和滤波之后的图像之差即是所需的图像划痕细节。不可避免的是,此划痕细节图带有少量噪声,如图5所示。
3.2 划痕最终掩模确定
从图4中看出,利用划痕空域亮度模型得到的划痕初级掩模指出了垂直划痕在水平方向上的位置,但不包含划痕的长度等细节信息。而如图5所示,利用形态学滤波器虽然可以得到划痕的细节信息,但是有很多干扰噪声。将两者有效结合,对两图进行与操作,这样利用划痕的初级掩模约束带有噪声的划痕图,去除划痕位置周围的干扰噪声,同时利用带噪声的划痕细节图提取初级掩模中的划痕细节信息,得到图6a。为了连接断点并去除划痕位置上的噪声,对此图进行后处理:首先进行垂直方向和水平方向上的膨胀操作,再根据图的大小将图水平分成N段,设每一段起始值为top,终值为bottom,用数组T记录每一段上每一列的像素之和,并设定阈值为threshold
得到划痕的最终掩模见图6b。
4 实验结果
实验选取Kokaram提出的被广泛接受的划痕检测算法测试图Knight和Sitdown测试本文提出的算法,并与Bruni算法以及基于神经网络和形态学滤波结合的方法[7]进行比较。
Knight中只包含一条主要划痕,几乎贯穿整个画面宽度,图像包含少量噪声。经过3种算法,分别得到图7所示结果。
从实验结果看出,3种算法都有效地检测出了垂直划痕在水平方向上的位置。对于贯穿图像始终的划痕来说,Bruni算法和本文提出的算法均能得到很好的检测结果。Bruni算法由于不考虑划痕长度,对于处理这种几乎贯穿始终的划痕基本没有影响,而本文提出的算法检测出的划痕长度与真实划痕长度基本相同。基于神经网络和形态学滤波的检测方法检测出的划痕长度则明显小于真实划痕长度。
Sitdown中包含主要划痕、次要划痕和一些轻微的划痕,且有较大噪声,接下来使用此图像进行测试,得到图8所示结果。
可以看出,对于图像Sitdown,笔者提出的算法得到了效果较好的划痕掩模,相对于Bruni算法,包含了划痕的细节信息,大大有利于下一步划痕的修复。相对于基于神经网络和形态学滤波相结合的检测算法,漏检率小,计算复杂度也小。笔者提出的算法可以很好地应用于实际系统中。但也可看出,此算法在面对极类似划痕特性的自然物体时,会造成误判,这也是需要改进的地方。
5 结论
笔者提出了一种结合了划痕空域亮度模型和形态学滤波的自动划痕检测算法。首先计算图像灰度Random投影的亮度极值点,通过方差比较判断划痕的颜色,再根据划痕的宽度和亮度特征及人眼的特性进行筛选,最后得到垂直划痕的初级掩模,包含其水平位置信息及宽度信息。接下来,对图像先后进行边缘检测和形态学滤波,从而得到划痕在垂直方向上的具体位置信息以及划痕的长度信息,最终得到理想的划痕掩模。本算法精确度高,算法复杂度低,易实现,可应用于实际系统。
[1]KOKARAM A C.Detection and removal of line scratches in degraded motion picture sequences[J].IEEE Trans.Signal Processing:VIII,1996,1:5-8.
[2]BRUNI V,VITULANO D.A generalized model for scratch detection[J].IEEE Trans.Image Processing,2004,13:44-50.
[3]ZHANG Hongying,WU Yadong,KUANG Zhonglin.An efficient scratches detection and inpainting algorithm for old film restoration[C]//Proc.2009 International Conference on Information Technology and Computer Science.Washington,DC:IEEE Press,2009:75-78.
[4]周磊.数字电影修复处理及相关技术的研究[D].上海:上海交通大学,2006.
[5]杜坤,邹炎.基于空间特征的视频划痕修复技术[J].中国科学院研究生院学报,2008,25(4):518-523.
[6]KIM N D,UDPA S.Nonlinear operators for edge detection and line scratch removal[C]//Proc.IEEE International Conference on SMC 1998.[S.l.]:IEEE Press,1998:4401-4404.
[7]KIM K T,KIM E Y.Film line scratch detection using neural network and morphological filter[C]//Proc.IEEE International Conference on CIS 2008.[S.l.]:IEEE Press,2008:1007-1010.
[8]张利文,张红英,吴斌.基于多种边缘检测的视频划痕技术[J].电视技术,2010,34(1):85-87.
[9]ZENG Qingyue,DING Yongdong.Scratch line detection and restoration based on Canny operator[C]//2009 Asia-Pacific Conference on Information Processing:Vol 2.[S.l.]:IEEE Press,2009:148-151.