莊曉宇,楊小康,陳 立
(上海交通大學(xué) 圖像通信與信息處理研究所;上海交通大學(xué) 上海數(shù)字媒體處理與傳輸重點(diǎn)實(shí)驗(yàn)室,上海 200240)
電影是人類寶貴的藝術(shù)文化遺產(chǎn)。然而電影膠片是一種容易老化的化學(xué)物質(zhì),并且由于不恰當(dāng)?shù)谋4?、播放和拷貝,使得許多舊影片或損壞或丟失。隨著數(shù)字技術(shù)的發(fā)展,數(shù)字修復(fù)成了舊電影修復(fù)的主要方式。該技術(shù)的目標(biāo)是將嚴(yán)重降質(zhì)的老電影膠片恢復(fù)成為可滿足觀眾需求的無(wú)損傷的高質(zhì)量數(shù)字視頻。研究針對(duì)舊電影中的閃爍、斑點(diǎn)、劃痕、褪色等損傷的檢測(cè)修復(fù)算法,是該領(lǐng)域的重要工作。
本文主要針對(duì)電影膠片中經(jīng)常出現(xiàn)的劃痕損傷進(jìn)行了分析和研究。劃痕的形成原因主要有兩個(gè),一是視頻在拍攝過(guò)程中顆粒對(duì)膠片產(chǎn)生了劃傷,二是視頻在播放過(guò)程中膠片與攝像機(jī)摩擦產(chǎn)生了損傷。因此,劃痕通常呈線狀分布在電影膠片中,一般為3~10個(gè)像素寬,長(zhǎng)短不一,或?yàn)榘咨驗(yàn)楹谏?,所覆蓋區(qū)域圖像信息被嚴(yán)重破壞。直線劃痕會(huì)在同一位置保持若干幀,或輕微移動(dòng)。
劃痕檢測(cè)算法在很多文章中已有討論。Kokaram[1]認(rèn)為劃痕是一種加性損傷,不含有原圖的任何信息。Kokaram通過(guò)霍夫變換提取圖像劃痕,并向水平軸垂直投影,獲得劃痕模型,再利用貝葉斯算法限定模型參數(shù),找出劃痕位置。Kokaram模型過(guò)于簡(jiǎn)單,對(duì)長(zhǎng)度較短的短劃痕容易造成漏檢。Bruni[2]修改了Kokaram劃痕模型,提出了一種更為通用的劃痕亮度特征模型。Bruni算法改進(jìn)了Kokaram的不足之處,但此算法不能自動(dòng)檢測(cè)白色劃痕和黑色劃痕,也不能提供劃痕的長(zhǎng)度信息以及在垂直軸上的位置信息。除此之外,文獻(xiàn)[3-5]均利用了劃痕空域亮度模型進(jìn)行檢測(cè)。
除了以上的主要方法之外,另有一些利用劃痕的邊緣形態(tài)特性進(jìn)行檢測(cè)[6-9],但是由于沒(méi)有利用劃痕的亮度余弦衰減特性,容易產(chǎn)生誤檢和漏檢現(xiàn)象。
綜上所述,Kokaram和Bruni提出的基于劃痕空域亮度模型的檢測(cè)方法,可以較為精確地檢測(cè)到垂直劃痕在圖像水平方向上的位置,但是這種方法沒(méi)有考慮到劃痕的形態(tài)特性,因此無(wú)法獲得垂直劃痕在垂直方向上的長(zhǎng)度和具體位置等細(xì)節(jié)信息。另一方面,僅僅利用劃痕的邊緣特性進(jìn)行檢測(cè)方法,雖然可以獲得劃痕的細(xì)節(jié)信息,但由于作用于整幅圖像并且缺少定量的分析,主觀性較大,不可避免地會(huì)檢出許多同樣具有邊緣特性的干擾物體。
針對(duì)以上問(wèn)題,筆者提出了一種新的檢測(cè)算法,將檢測(cè)過(guò)程分為兩個(gè)步驟(如圖1所示),先利用垂直劃痕的空域亮度特征模型定位劃痕在水平方向上的位置,再利用劃痕的形態(tài)學(xué)特征獲取這些劃痕在垂直方向上的細(xì)節(jié)信息。不同于傳統(tǒng)意義上的利用劃痕單一特征進(jìn)行檢測(cè)的方法,這種新的檢測(cè)算法同時(shí)考慮了劃痕的兩方面特征,使得檢測(cè)過(guò)程:
1)精確度高。劃痕位置定位和劃痕細(xì)節(jié)獲取這兩個(gè)步驟之間相輔相成,前者對(duì)于劃痕水平位置的預(yù)定位縮小了后者的作用范圍從而去除了后者檢出的大量干擾噪聲,而后者對(duì)于前者進(jìn)行了細(xì)化從而提取出了垂直劃痕的長(zhǎng)度及垂直方向上的位置信息。
2)計(jì)算復(fù)雜度低。劃痕位置定位的算法復(fù)雜度只有O(N)(N為待檢測(cè)圖像列數(shù)),遠(yuǎn)小于通過(guò)神經(jīng)網(wǎng)絡(luò)預(yù)篩選劃痕的方法[7]。
3)自動(dòng)化程度高。在第一步中改進(jìn)了劃痕的亮度空間模型,并且在Bruni的檢測(cè)方法基礎(chǔ)上加入了劃痕顏色的判斷,使得檢測(cè)過(guò)程自動(dòng)化程度提高。實(shí)驗(yàn)證明,此檢測(cè)方法能自動(dòng)檢測(cè)電影膠片中的各種垂直劃痕,可投入實(shí)際應(yīng)用中。
根據(jù)Kokaram和Bruni對(duì)于垂直劃痕亮度特性的研究成果,劃痕在圖像水平方向上呈衰減的余弦特性,數(shù)學(xué)表達(dá)式為
式中:i為圖像x軸,j為圖像y軸,bp是劃痕最小亮度,mp和cp分別代表余弦曲線的斜率和截距,kp為劃痕的衰減系數(shù),ωp為劃痕寬度的一半[1]。
Bruni檢測(cè)算法主要過(guò)程是:首先對(duì)圖像采取零均值的Random投影以加強(qiáng)劃痕亮度的余弦特性,并獲得圖像的亮度截面曲線(如圖2所示),接下來(lái),根據(jù)劃痕的寬度特性(3~10像素寬),亮度特性(超過(guò)圖像平均亮度閾值),以及人眼特性(人眼對(duì)同一物體的辨別力隨背景亮度的變化而變化),依次篩除亮度截面曲線中不符合條件的極值點(diǎn),最終得到垂直劃痕在水平方向上的位置。
傳統(tǒng)的垂直劃痕模型只描述了劃痕亮度的余弦衰減特征,缺少長(zhǎng)度和寬度信息。因此筆者提出了一個(gè)更為詳盡的劃痕空域亮度模型
式中:i為圖像x軸,j為圖像y軸。rs(j)是圖像第j列劃痕的起始位置,re(j)為圖像第j列劃痕的終端位置,bp為劃痕最小亮度,pi代表余弦曲線的極值點(diǎn)位置,kp為劃痕的衰減系數(shù),ωp為劃痕寬度的一半,sgn為階躍函數(shù),定義為
基于Bruni檢測(cè)算法,在劃痕位置定位的檢測(cè)步驟中加入了對(duì)劃痕顏色的判斷,提高了檢測(cè)過(guò)程的自動(dòng)化程度(檢測(cè)步驟見(jiàn)圖3)
得到的劃痕初級(jí)掩模如圖4所示。
劃痕由外界損傷所致,對(duì)于整幅圖像不協(xié)調(diào),對(duì)于其周?chē)袼囟裕吘壧匦悦黠@。形態(tài)學(xué)作為圖像處理的一種常用手段,可用來(lái)提取與圖像形狀有關(guān)的圖像分量,而形態(tài)學(xué)濾波器則常用于去除圖像中的噪聲。這里,將劃痕也看成圖像中的一種噪聲,用形態(tài)學(xué)濾波器結(jié)合特定的結(jié)構(gòu)元素將其濾出。先用Canny算子對(duì)圖像進(jìn)行邊緣檢測(cè),再用形態(tài)學(xué)濾波器對(duì)圖像進(jìn)行濾波,原圖和濾波之后的圖像之差即是所需的圖像劃痕細(xì)節(jié)。不可避免的是,此劃痕細(xì)節(jié)圖帶有少量噪聲,如圖5所示。
從圖4中看出,利用劃痕空域亮度模型得到的劃痕初級(jí)掩模指出了垂直劃痕在水平方向上的位置,但不包含劃痕的長(zhǎng)度等細(xì)節(jié)信息。而如圖5所示,利用形態(tài)學(xué)濾波器雖然可以得到劃痕的細(xì)節(jié)信息,但是有很多干擾噪聲。將兩者有效結(jié)合,對(duì)兩圖進(jìn)行與操作,這樣利用劃痕的初級(jí)掩模約束帶有噪聲的劃痕圖,去除劃痕位置周?chē)母蓴_噪聲,同時(shí)利用帶噪聲的劃痕細(xì)節(jié)圖提取初級(jí)掩模中的劃痕細(xì)節(jié)信息,得到圖6a。為了連接斷點(diǎn)并去除劃痕位置上的噪聲,對(duì)此圖進(jìn)行后處理:首先進(jìn)行垂直方向和水平方向上的膨脹操作,再根據(jù)圖的大小將圖水平分成N段,設(shè)每一段起始值為top,終值為bottom,用數(shù)組T記錄每一段上每一列的像素之和,并設(shè)定閾值為threshold
得到劃痕的最終掩模見(jiàn)圖6b。
實(shí)驗(yàn)選取Kokaram提出的被廣泛接受的劃痕檢測(cè)算法測(cè)試圖Knight和Sitdown測(cè)試本文提出的算法,并與Bruni算法以及基于神經(jīng)網(wǎng)絡(luò)和形態(tài)學(xué)濾波結(jié)合的方法[7]進(jìn)行比較。
Knight中只包含一條主要?jiǎng)澓郏瑤缀踟灤┱麄€(gè)畫(huà)面寬度,圖像包含少量噪聲。經(jīng)過(guò)3種算法,分別得到圖7所示結(jié)果。
從實(shí)驗(yàn)結(jié)果看出,3種算法都有效地檢測(cè)出了垂直劃痕在水平方向上的位置。對(duì)于貫穿圖像始終的劃痕來(lái)說(shuō),Bruni算法和本文提出的算法均能得到很好的檢測(cè)結(jié)果。Bruni算法由于不考慮劃痕長(zhǎng)度,對(duì)于處理這種幾乎貫穿始終的劃痕基本沒(méi)有影響,而本文提出的算法檢測(cè)出的劃痕長(zhǎng)度與真實(shí)劃痕長(zhǎng)度基本相同?;谏窠?jīng)網(wǎng)絡(luò)和形態(tài)學(xué)濾波的檢測(cè)方法檢測(cè)出的劃痕長(zhǎng)度則明顯小于真實(shí)劃痕長(zhǎng)度。
Sitdown中包含主要?jiǎng)澓?、次要?jiǎng)澓酆鸵恍┹p微的劃痕,且有較大噪聲,接下來(lái)使用此圖像進(jìn)行測(cè)試,得到圖8所示結(jié)果。
可以看出,對(duì)于圖像Sitdown,筆者提出的算法得到了效果較好的劃痕掩模,相對(duì)于Bruni算法,包含了劃痕的細(xì)節(jié)信息,大大有利于下一步劃痕的修復(fù)。相對(duì)于基于神經(jīng)網(wǎng)絡(luò)和形態(tài)學(xué)濾波相結(jié)合的檢測(cè)算法,漏檢率小,計(jì)算復(fù)雜度也小。筆者提出的算法可以很好地應(yīng)用于實(shí)際系統(tǒng)中。但也可看出,此算法在面對(duì)極類似劃痕特性的自然物體時(shí),會(huì)造成誤判,這也是需要改進(jìn)的地方。
筆者提出了一種結(jié)合了劃痕空域亮度模型和形態(tài)學(xué)濾波的自動(dòng)劃痕檢測(cè)算法。首先計(jì)算圖像灰度Random投影的亮度極值點(diǎn),通過(guò)方差比較判斷劃痕的顏色,再根據(jù)劃痕的寬度和亮度特征及人眼的特性進(jìn)行篩選,最后得到垂直劃痕的初級(jí)掩模,包含其水平位置信息及寬度信息。接下來(lái),對(duì)圖像先后進(jìn)行邊緣檢測(cè)和形態(tài)學(xué)濾波,從而得到劃痕在垂直方向上的具體位置信息以及劃痕的長(zhǎng)度信息,最終得到理想的劃痕掩模。本算法精確度高,算法復(fù)雜度低,易實(shí)現(xiàn),可應(yīng)用于實(shí)際系統(tǒng)。
[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]周磊.數(shù)字電影修復(fù)處理及相關(guān)技術(shù)的研究[D].上海:上海交通大學(xué),2006.
[5]杜坤,鄒炎.基于空間特征的視頻劃痕修復(fù)技術(shù)[J].中國(guó)科學(xué)院研究生院學(xué)報(bào),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]張利文,張紅英,吳斌.基于多種邊緣檢測(cè)的視頻劃痕技術(shù)[J].電視技術(shù),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.