鄭慧君
基于MapReduce的抗閃光鏡頭邊界檢測(cè)
鄭慧君
(東莞職業(yè)技術(shù)學(xué)院計(jì)算機(jī)工程系,東莞 523808)
利用MapReduce編程模型并行計(jì)算的思想,將視頻數(shù)據(jù)切割成若干個(gè)視頻片段,分配給若干個(gè)任務(wù)節(jié)點(diǎn)主機(jī)進(jìn)行視頻特征值的提取和鏡頭邊界檢測(cè)??紤]到新聞視頻中存在大量的閃光鏡頭,容易造成誤檢,用滑動(dòng)窗口對(duì)幀間差異進(jìn)行分析,修正幀間差值。實(shí)驗(yàn)結(jié)果表明,改進(jìn)的鏡頭算法不僅大大提高鏡頭檢測(cè)的效率,還可以有效地避免閃光鏡頭,取得較好的檢測(cè)精度。
鏡頭邊界檢測(cè);MapReduce;直方圖;抗閃光
隨著多媒體技術(shù)、智能手機(jī)的發(fā)展,視頻信息呈爆炸式增長(zhǎng)。如何對(duì)海量的視頻信息進(jìn)行基于內(nèi)容的語(yǔ)義分析,實(shí)現(xiàn)基于視頻內(nèi)容的查找、分類(lèi)和檢索,提取視頻中有用的信息,成為目前學(xué)者研究的重點(diǎn)問(wèn)題。視頻檢索必須對(duì)視頻內(nèi)容進(jìn)行結(jié)構(gòu)化處理,也就是對(duì)視頻的幀按照不同的語(yǔ)義單元進(jìn)行切塊,分成不同的語(yǔ)義單元,這些語(yǔ)義單元稱(chēng)為鏡頭[1]。隨著數(shù)字視頻的使用越來(lái)越廣泛,自動(dòng)視頻內(nèi)容分析技術(shù)的需求也越來(lái)越大。作為視頻結(jié)構(gòu)化處理的基本步驟——鏡頭檢測(cè),它的工作性能與效果將直接影響后續(xù)的處理[2]。用傳統(tǒng)的手工方法來(lái)切割視頻非常耗時(shí),對(duì)一小時(shí)的視頻有時(shí)需要十個(gè)小時(shí)的工作來(lái)切割,所以需要一種自動(dòng)的方法來(lái)切割視頻鏡頭[3]。
在一些新聞視頻中,由于照相機(jī)的閃光,造成幀間差異曲線(xiàn)中會(huì)出現(xiàn)兩個(gè)相鄰的波峰,鏡頭算法通常會(huì)判斷為兩次突變,容易造成誤檢。針對(duì)這種情況,提出在鏡頭算法中先進(jìn)行閃光過(guò)濾,再進(jìn)一步進(jìn)行檢測(cè),考慮到視頻數(shù)據(jù)量大,算法執(zhí)行時(shí)間過(guò)長(zhǎng),采用MapReduce編程模型進(jìn)行算法設(shè)計(jì),在Hadoop環(huán)境下,選擇合適的節(jié)點(diǎn)數(shù),通過(guò)實(shí)驗(yàn)分析,算法能夠有效避免閃光鏡頭,算法執(zhí)行時(shí)間比單機(jī)算法大大減少,提高了算法的執(zhí)行效率。
目前,國(guó)內(nèi)外研究鏡頭檢測(cè)的學(xué)者很多,由于壓縮域的視頻檢測(cè)算法比較復(fù)雜,大多數(shù)研究的是非壓縮域的鏡頭檢測(cè)算法,但是還沒(méi)有形成穩(wěn)定的、成熟的算法。根據(jù)特征值的不同,比較典型的主要有以下幾類(lèi)檢測(cè)算法:
(1)基于像素的鏡頭檢測(cè)
該方法簡(jiǎn)單,但是容易受到物體運(yùn)動(dòng)、鏡頭運(yùn)動(dòng)、閃光燈因素的干擾。
(2)基于直方圖的鏡頭檢測(cè)
直方圖法通過(guò)統(tǒng)計(jì)幀的直方圖[4],由于直方圖和位置信息無(wú)關(guān),沒(méi)有圖像的局部信息,計(jì)算的是幀間全局的差值,也容易造成誤檢[5]。張晶[6]等使用了加權(quán)的分塊直方圖法,每塊使用不同的權(quán)值,有效避免兩幀具有相同的直方圖造成的誤檢。陳文飛等[7]使用了X2直方圖法,算法復(fù)雜度高。
(3)基于邊緣輪廓的鏡頭檢測(cè)
用Canny或其他算子提取像素輪廓作為特征值,然后計(jì)算相鄰幀間的輪廓差值[8],該算法能夠有效地避免鏡頭內(nèi)運(yùn)動(dòng)物體造成的誤檢,但是計(jì)算復(fù)雜度高。
根據(jù)對(duì)特種值進(jìn)行不同處理方式,大量學(xué)者也提出了一些新的方法。J Yin等[9]提出了一種新的基于分塊顏色直方圖和亮度矩的鏡頭邊界檢測(cè)方法,為了提高鏡頭分割的魯棒性和有效性,提出了一種自適應(yīng)閾值分割算法;Sinnu Susan Thomas等[10]根據(jù)同一鏡頭背景的時(shí)間連續(xù)性,提出了基于能量最小化的鏡頭檢測(cè)方法;
2.1 鏡頭檢測(cè)模型
在鏡頭檢測(cè)算法中引入MapReduce模型,把鏡頭檢測(cè)任務(wù)分成若干個(gè)Map任務(wù),由Master主機(jī)控制若干個(gè)節(jié)點(diǎn)進(jìn)行視頻的解碼和特征的提取,然后進(jìn)行閃光過(guò)濾,由若干個(gè)Reduce任務(wù)進(jìn)行鏡頭邊界檢測(cè),得出最終的突變鏡頭和漸變鏡頭數(shù)據(jù),算法檢測(cè)模型如圖1所示。
(1)Input階段:利用程序把視頻文件分成若干個(gè)文件,生成<編號(hào),文件路徑>的鍵值對(duì),作為Map函數(shù)的參數(shù)。
(2)Map階段:對(duì)分割的視頻片段進(jìn)行解碼,利用分塊的灰度直方圖進(jìn)行特征提取,輸出<編號(hào),特征值文件>鍵值對(duì)。
(3)Shuffle階段:利用時(shí)間序列分析法對(duì)特征值進(jìn)行處理,修正閃光幀的特征值。
(4)Reduce階段:把前一階段的<編號(hào),特征值文件>作為輸入,分別進(jìn)行突變鏡頭的檢測(cè)和漸變鏡頭的檢測(cè),最終得出鏡頭邊界集合。
2.2 特征值的提取
顏色直方圖通過(guò)統(tǒng)計(jì)圖像的顏色值而來(lái),反映圖像的顏色分布,同一鏡頭內(nèi)的幀間的直方圖具有連續(xù)性,若發(fā)生鏡頭切換,幀間顏色直方圖差值曲線(xiàn)就會(huì)形成一個(gè)大的波峰。
(1)圖像灰度化
彩色圖像有RGB三個(gè)分量,每個(gè)分量取值為0-255,顏色值有 1600 多萬(wàn)(255×255×255)種,為了減少直方圖的統(tǒng)計(jì)工作量,利用公式(1)進(jìn)行圖像的灰度化,利用公式(2)進(jìn)行圖像的直方圖統(tǒng)計(jì)。
Gray(x,y)表示圖像中坐標(biāo)為(x,y)點(diǎn)的灰度值,His(i)為顏色為i的顏色值個(gè)數(shù)。
(2)分塊直方圖計(jì)算
灰度直方圖和圖像并不是一一對(duì)應(yīng)的關(guān)系,不同的圖像可能具有相同的直方圖分布,因?yàn)橹环从橙值念伾植?,不反映顏色的空間位置,和鏡頭內(nèi)對(duì)象及其位置無(wú)關(guān),因此容易造成誤檢。采用如圖2所示的帶權(quán)值的分塊直方圖,對(duì)不同的區(qū)域使用不同的權(quán)值(w1<w2<w3),圖像邊緣位置權(quán)值較小,中間位置權(quán)值較大,分塊直方圖既反映了圖像的全局特征,又加入的圖像的局部特征,能夠有效的避免誤檢。
圖1 基于MapReduce的鏡頭邊界檢測(cè)模型
圖2 圖像分塊
利用公式(3)計(jì)算第n幀和第n+1幀第k塊的幀間直方圖差。
利用公式(4)對(duì)各塊進(jìn)行加權(quán)運(yùn)算,計(jì)算帶權(quán)值的直方圖特征值。
2.3 閃光過(guò)濾
在2.2小節(jié)利用分塊直方圖進(jìn)行特征值提取后,對(duì)于新聞視頻閃光鏡頭,閃光通常會(huì)持續(xù)幾秒的時(shí)間,在閃光的起始位置和結(jié)束位置會(huì)出現(xiàn)較大的特征值,在幀間幀間差值曲線(xiàn)上會(huì)出現(xiàn)距離較近的兩個(gè)較大的波峰,如圖3所示。
從圖3可以看出,閃光幀的幀間差值的特點(diǎn)為連續(xù)兩個(gè)距離較近的波峰。利用公式(5)計(jì)算相特征值和其平均特征值的商。
τ為該視頻片段的幀間差的平均值,C為常量,經(jīng)多次試驗(yàn)得出取值為3,若滿(mǎn)足公式(5),則第n到m間的幀認(rèn)為是一次閃光,因?yàn)橥ǔiW光都在很短時(shí)間內(nèi)完成,因此兩個(gè)波峰間的距離經(jīng)常不超過(guò)30幀。利用τ更新第n到第m幀的特征值。
圖3 閃光幀的幀間差值曲線(xiàn)
2.4 突變檢測(cè)
突變鏡頭直接從上一個(gè)鏡頭切換到下一個(gè)鏡頭,中間沒(méi)有添加任何視頻特效,鏡頭切換的位置在幀間差的特征值曲線(xiàn)上會(huì)形成較大的波峰,如圖4所示。
圖4 突變鏡頭特征值曲線(xiàn)
2.3 小節(jié)已經(jīng)進(jìn)行了閃光的過(guò)濾,特征值為加權(quán)的直方圖,也不會(huì)收到鏡頭內(nèi)物體運(yùn)動(dòng)或攝像機(jī)運(yùn)動(dòng)的影響。突變鏡頭檢測(cè)一般設(shè)置一個(gè)固定的閾值,但是視頻直方圖數(shù)據(jù)量大,采用固定的閾值容易造成誤檢,采用滑動(dòng)窗口法計(jì)算窗口內(nèi)的最大幀間差和最小幀間差,為減少計(jì)算復(fù)雜度窗口大小一般選擇10,利用公式(6)進(jìn)行計(jì)算。
其中max1為窗口內(nèi)的最大幀差,max2窗口內(nèi)的第二大幀差,τ為視頻片段的特征值平均值,若是突變鏡頭幀,則特征值和平均值的差會(huì)很大,因此若滿(mǎn)足公式(6),則認(rèn)為是一次突變,加入到突變鏡頭邊界集合中。
2.5 漸變鏡頭檢測(cè)
漸變鏡頭特征值曲線(xiàn)上表現(xiàn)為不太明顯的波峰,如圖5所示,給檢測(cè)帶來(lái)一定的困難,提出基于視頻片段的首尾幀差法進(jìn)行檢測(cè)。
圖5 漸變鏡頭的相鄰幀間差值
(1)把視頻分為大小為40的視頻片段,分別計(jì)算第一幀和最后一幀的幀間差值,經(jīng)過(guò)多次試驗(yàn),視頻大小為30比較合適,一般漸變鏡頭在30幀內(nèi)完成。
(2)若滿(mǎn)足公式(7),則認(rèn)為視頻片段內(nèi)發(fā)生了漸變鏡頭切換,因?yàn)橥荤R頭內(nèi)的幀存在一定的關(guān)聯(lián)性,若發(fā)生了漸變則分別進(jìn)入了兩個(gè)不同的鏡頭,首尾幀差則較大。
D(30n,30(n+1))為第30n個(gè)視頻片段的首位幀間直方圖差,δ為所有視頻片段的首位幀差平均值,3為實(shí)驗(yàn)得出的經(jīng)驗(yàn)值。
(3)對(duì)于滿(mǎn)足公式(7)的視頻片段,計(jì)算視頻片段內(nèi)第一幀和后面幀的幀間差,差值最大的地方即為漸變的中心,加入到漸變鏡頭集合中。因?yàn)殡S著鏡頭的漸變,第一幀和后面幀的差值越來(lái)越大,直到進(jìn)入另外一個(gè)鏡頭,差值趨于穩(wěn)定,漸變鏡頭的首幀幀差曲線(xiàn)如圖6所示。
3.1 實(shí)驗(yàn)環(huán)境
由于實(shí)驗(yàn)所采用的視頻數(shù)據(jù)量不大,采用1個(gè)主機(jī)(Master)加4個(gè)四個(gè)任務(wù)節(jié)點(diǎn)(Salve),四個(gè)節(jié)點(diǎn)均安裝CentOS5.9系統(tǒng),并且有一個(gè)相同的用戶(hù)Hadoop。Master機(jī)器主要配置NameNode和JobTracker的角色,負(fù)責(zé)總管分布式數(shù)據(jù)和分解任務(wù)的執(zhí)行;4個(gè)Salve機(jī)器配置DataNode和TaskTracker的角色,負(fù)責(zé)分布式視頻數(shù)據(jù)存儲(chǔ)、Map及Reduce任務(wù)的執(zhí)行。任務(wù)節(jié)點(diǎn)(Salve)的基本配置如表1所示。
圖6 漸變鏡頭首幀幀曲線(xiàn)
表1 Salve配置
3.2 實(shí)驗(yàn)結(jié)果分析
(1)算法查全率、查準(zhǔn)率分析
在3.1的Hadoop的分布式環(huán)境下,選用4段帶有閃光的新聞視頻,分別用灰度直方圖和加權(quán)的灰度直方圖作為特征值進(jìn)行檢測(cè),通過(guò)實(shí)驗(yàn)檢測(cè)的數(shù)據(jù)和精確的鏡頭切換位置進(jìn)行查全率和查準(zhǔn)率的計(jì)算。
查準(zhǔn)率=正確鏡頭數(shù)/(正確鏡頭數(shù)+誤檢數(shù))
查全率=正確鏡頭數(shù)/實(shí)際鏡頭總數(shù)
利用灰度直方圖作為特征值,實(shí)驗(yàn)結(jié)果如表2所示。
表2 灰度直方圖法檢測(cè)結(jié)果
從表2看出,利用灰度直方圖作為特征,沒(méi)有進(jìn)行閃光過(guò)濾,算法的誤檢鏡頭比較高,所有的閃光幀都會(huì)認(rèn)為是突變,并且算法容易受到鏡頭內(nèi)移動(dòng)物體的影響造成誤檢。
利用帶權(quán)值的灰度直方圖作為特征值,并且進(jìn)行閃光過(guò)濾后,實(shí)驗(yàn)結(jié)果如表3所示。
表3 帶權(quán)值的灰度直方圖法檢測(cè)結(jié)果
從表2和表3的對(duì)比可以看出,利用帶權(quán)值的直方圖作為特征值,并進(jìn)行閃光過(guò)濾,能夠避免閃光和鏡頭內(nèi)物體的移動(dòng)造成的誤檢,大大提高了差全率和查準(zhǔn)率。
該算法采用MapReduce編程模型,利用同一段視頻作為實(shí)驗(yàn)數(shù)據(jù),選擇同一主機(jī),任務(wù)節(jié)點(diǎn)(Salve)從1到 10 進(jìn)行實(shí)驗(yàn),算法執(zhí)行時(shí)間為[95,60,41,25,19,17,15,14,10,8],算法的執(zhí)行時(shí)間如圖 7 所示。
從算法執(zhí)行時(shí)間可以看出,算法執(zhí)行時(shí)間隨著節(jié)點(diǎn)的增加不斷減少,但是不是線(xiàn)性的,因此必須根據(jù)視頻的大小選擇合適的節(jié)點(diǎn)數(shù),避免計(jì)算資源的浪費(fèi)。
隨著移動(dòng)互聯(lián)網(wǎng)的不斷發(fā)展,視頻數(shù)據(jù)增長(zhǎng)速度越來(lái)越快,如何從大量的視頻數(shù)據(jù)中找到有用的數(shù)據(jù)成為研究的一個(gè)熱點(diǎn)。和文本不同,視頻數(shù)據(jù)結(jié)構(gòu)復(fù)雜,不能很好地進(jìn)行檢索,目前互聯(lián)網(wǎng)上的大部分視頻檢索系統(tǒng)還處于視頻文件名稱(chēng)的檢索,還不能進(jìn)行基于視頻內(nèi)容的檢索。鏡頭檢測(cè)是視頻檢索的基礎(chǔ),引起了大量學(xué)者的關(guān)注。針對(duì)新聞視頻中的閃光,在算法的執(zhí)行階段利用滑動(dòng)窗口進(jìn)行閃光過(guò)濾,考慮到鏡頭檢測(cè)算法執(zhí)行時(shí)間長(zhǎng)的問(wèn)題,提出了基于MapReduce的編程模型。最后利用4段帶閃光鏡頭的視頻片段進(jìn)行了實(shí)驗(yàn),通過(guò)和普通算法進(jìn)行對(duì)比分析,改進(jìn)的算法查準(zhǔn)率和查全率大大提高;通過(guò)并行分析,選擇合適的節(jié)點(diǎn),算法的執(zhí)行時(shí)間大大減少。
圖7 算法節(jié)點(diǎn)和執(zhí)行時(shí)間曲線(xiàn)
[1]鄭慧君,陳俞強(qiáng).基于MapReduce的快速鏡頭邊界檢測(cè)算法[J].圖學(xué)學(xué)報(bào).2017,1(38):76-81.
[2]A Sengupta,DM Thounaojam,K Manglem Singh,S Roy.Video Shot Boundary Detection:A Review[C].IEEE International Conference on Electrical,2015:1-6
[3]L Baraldi,C Grana,R Cucchiara.Shot and Scene Detection via Hierarchical Clustering for Re-using Broadcast Video[C].International Conference on Computer Analysis of Images&Patterns 2015,9256:801-811.
[4]P Poirson,P Ammirato.Fast Single Shot Detection and Pose Estimation[C].Fourth International Conference on 3d Vision,2016:676-684.
[5]魏瑋,劉靜,王丹丹.視頻鏡頭分割方法綜述.計(jì)算機(jī)系統(tǒng)應(yīng)用.2013,1(22):5-7.
[6]張晶,王學(xué)軍,蔣恩源.基于顏色加權(quán)的新聞視頻鏡頭邊界檢測(cè)方法.吉林大學(xué)學(xué)報(bào)[J].2015,1(33):39-43.
[7]陳文飛,許雪峰.亮度自適應(yīng)的保熵直方圖均衡化方法.計(jì)算機(jī)工程與應(yīng)用.2012,48(16):157-161.
[8]張思俊.基于Canny算子的圖像邊緣檢測(cè)方法改進(jìn)研究.計(jì)算機(jī)與數(shù)字工程,2016,8(44):1567-1570.
[9]J Yin,SL Wang,JH Li.Video Shot Segmentation by Adaptive Thresholding with Color and Spatial Information[C].Springer Berlin Heidelberg.2012,128:339-344.
[10]Sinnu Susan Thomas,Sumana Gupta,VenkateshK.S.An Energy Minimization Approach for Automatic Video Shot and Scene Boundary Detection[M].Tenth International Conference on Intelligent Information Hiding&Multimedia Signal Processing,2014:297-300.
Anti-Flash Shot Boundary Detection Based on MapReduce
ZHENG Hui-jun
(Department of Computer Engineering,Dongguan Polytechnic College,Dongguan 523808)
Using the distributed computing of MapReduce model,the video is splinted into several video clips,video feature extraction and shot boundary detection are assigned to several task node hosts.Considering the existence of a large number of flashes in the news video,it is easy to cause false detection,sliding window is used to analyze the differences between frames,then correcting the frame difference.Experi?mental results show that the improved shot detection algorithm is effective in accelerating the shot detection process,and it can also effec?tively avoid flash lens,achieve better detection accuracy.
Shot Boundary Detection;MapReduce;Histogram;Anti-Flash
廣東省省級(jí)科技計(jì)劃項(xiàng)目(No.2014A010103002)、2014年?yáng)|莞市高等院校、科研機(jī)構(gòu)科技計(jì)劃一般項(xiàng)目(No.2014106101035)
1007-1423(2017)24-0029-06
10.3969/j.issn.1007-1423.2017.24.007
鄭慧君(1985-),男,湖北孝感人,碩士研究生,講師,研究方向?yàn)橹悄芩惴āD形圖像
2017-05-08
2017-07-20