張雷鳴 靳國榮 四川長(zhǎng)虹網(wǎng)絡(luò)科技有限責(zé)任公司
在傳統(tǒng)機(jī)頂盒中,TUNER性能測(cè)試的主要判斷標(biāo)準(zhǔn)是視頻是否出現(xiàn)馬賽克,在OTT和IPTV機(jī)頂盒中,視頻播放馬賽克是檢驗(yàn)機(jī)頂盒內(nèi)存性能、軟件可靠性的重要測(cè)試依據(jù)。由于馬賽克出現(xiàn)時(shí)機(jī)隨機(jī)、圖形不規(guī)則,特別是帶圖像后處理的機(jī)頂盒,進(jìn)行圖像優(yōu)化后馬賽克的形狀更加復(fù)雜。導(dǎo)致了馬賽克自動(dòng)化檢測(cè)一直是行業(yè)的一個(gè)痛點(diǎn)和難點(diǎn)。有人利用邊緣檢測(cè)直線和矩形的方法,但邊緣檢測(cè)本身有其局限性,視頻內(nèi)容中直線和棋盤、窗戶等規(guī)則物體很容易被誤判。同時(shí)部分復(fù)雜的圖像內(nèi)容中的馬賽克容易漏檢。也有采用特征分析和深度學(xué)習(xí)的方法對(duì)馬賽克特征值進(jìn)行分類和學(xué)習(xí),但視頻圖像和馬賽克疊加后的最終圖像的復(fù)雜性,導(dǎo)致先行學(xué)習(xí)的特征完全對(duì)不上。目前行業(yè)內(nèi)基本上都是采用人工判斷的方式進(jìn)行測(cè)試,效率低,成本高,漏檢和誤檢率高居不下。
本文采用對(duì)視頻預(yù)處理,提取視頻中各幀圖像的SIFT特征值,機(jī)頂盒播放視頻的過程中抓取機(jī)頂盒輸出的圖像,計(jì)算當(dāng)前圖像的特征值,并跟預(yù)先存儲(chǔ)的特征值進(jìn)行比對(duì),來判斷視頻是否出現(xiàn)馬賽克缺陷。采用這種方式進(jìn)行馬賽克檢測(cè),檢測(cè)效率高,漏檢和誤檢率非常低,完全滿足行業(yè)檢測(cè)需求。同時(shí)可作為自動(dòng)化檢測(cè)工具,進(jìn)行長(zhǎng)時(shí)間、大規(guī)??緳C(jī),對(duì)機(jī)頂軟硬件質(zhì)量檢測(cè)非常有效。
尺度不變特征轉(zhuǎn)換(Scale-invariant feature transform或SIFT)是一種圖像視覺的算法。用來偵測(cè)與描述影像中的局部性特征,它在空間尺度中尋找極值點(diǎn),并提取出其位置、尺度、旋轉(zhuǎn)不變量,此算法由 David Lowe在1999年所發(fā)表,2004年完善總結(jié)。
SIFT特征由于其尺度不變性,大量用于圖像中物體的識(shí)別、定位和大小位置的判斷。該算法對(duì)于光線、噪聲、視角改變的容忍度也相當(dāng)高。而相同的視頻文件,經(jīng)不同機(jī)頂盒的解碼和圖像采集設(shè)備的抓取,可能會(huì)產(chǎn)生圖像明暗的差異和整體的顏色值變化,但極值和邊角的變化極少。而圖像馬賽克出現(xiàn),則對(duì)圖像中的極值點(diǎn)會(huì)產(chǎn)生數(shù)量和位置的變化。通過對(duì)極值點(diǎn)的數(shù)量、位置的變化對(duì)比,來檢測(cè)圖像跟原始圖像的差異,來判斷圖像的異常是本文介紹方法的核心。
將原始視頻的每一幀圖像進(jìn)行高斯模糊(去除噪聲干擾)、空間極值檢測(cè)(由于播放本身不會(huì)進(jìn)行縮放,所以只需要一個(gè)空間尺度的檢測(cè))、關(guān)鍵點(diǎn)定位、關(guān)鍵點(diǎn)方向分配等步驟,提取圖像中的各種關(guān)鍵特征點(diǎn),并建立位置、方向等信息的描述符,用一組向量將這些關(guān)鍵點(diǎn)描述出來。這個(gè)描述子不僅包含關(guān)鍵點(diǎn),也包含關(guān)鍵點(diǎn)周圍對(duì)其有貢獻(xiàn)點(diǎn)的像素點(diǎn)。
將原始視頻的各幀圖像的特征值描述子的集合按幀的先后順序存儲(chǔ)到數(shù)據(jù)庫中,供檢測(cè)時(shí)使用。
測(cè)試時(shí),分傳統(tǒng)機(jī)頂盒和IPTV、OTT機(jī)頂盒。傳統(tǒng)機(jī)頂盒通過高頻頭接收碼流播放器調(diào)制的DVB信號(hào),通過解調(diào)和解復(fù)用獲取視頻數(shù)據(jù)后進(jìn)行解碼播出。IPTV和OTT機(jī)頂盒可將視頻以文件方式存儲(chǔ)在機(jī)頂盒內(nèi)部存儲(chǔ)器或者外部存儲(chǔ)器中,通過機(jī)頂盒內(nèi)置的播放器進(jìn)行播放輸出。
機(jī)頂盒解碼后的圖像通過HDMI或者CVBS接口輸出,計(jì)算機(jī)通過采集卡完成圖像采集。
采集到圖像用相同的算法提取SIFT特征值。將該特征值跟數(shù)據(jù)庫中對(duì)應(yīng)幀的特征值進(jìn)行對(duì)比,對(duì)比特征包括的位置和方向等信息。如果不能匹配的特征值超過一定閾值(比如5個(gè)),則認(rèn)為圖像出現(xiàn)馬賽克等異常。
第1幀不確定原序列中對(duì)應(yīng)幀的序號(hào),需在整個(gè)序列中尋找到最接近的幀。如果都沒有完全匹配的則先丟棄。如果找到完全匹配的幀,則記錄當(dāng)前幀的序號(hào)。連續(xù)出現(xiàn)10個(gè)以上的幀無匹配,則認(rèn)為當(dāng)前播放有異常。
在已經(jīng)確認(rèn)前一幀的序號(hào)后,可按視頻的幀率和采集圖像的時(shí)間間隔計(jì)算可能的幀序號(hào),在前后3個(gè)幀的范圍內(nèi)進(jìn)行匹配和比較。
采用如下的檢測(cè)系統(tǒng):
將碼流原始圖像通過計(jì)算機(jī)軟件離線取出,并采用openCV軟件庫開發(fā)軟件提取出SIFT特征值存儲(chǔ)在數(shù)據(jù)庫中。
測(cè)試時(shí),碼流播放器循環(huán)播放視頻流,計(jì)算機(jī)通過圖像采集盒采集機(jī)頂盒的輸出,并計(jì)算當(dāng)前圖像的SIFT特征值,然后跟原始圖像特征值進(jìn)行匹配。匹配結(jié)果如下:
原始圖與正常采樣匹配(100%匹配)配結(jié)果(2130個(gè)完全匹配)
原始圖和帶馬賽克圖片匹
通過上圖可以看出來,采樣圖片有亮度變化和顏色變化對(duì)特征點(diǎn)無明顯變化,而有馬賽克的圖片,會(huì)導(dǎo)致特征點(diǎn)明顯變化。通過這些不能配對(duì)的特征值,可準(zhǔn)確判斷出馬賽克以及出現(xiàn)馬賽克的位置。
由于圖像的不同,該算法可能會(huì)出現(xiàn)一些孤立的特征點(diǎn),通過對(duì)原始視頻的特征值進(jìn)行篩選和對(duì)不能配對(duì)的特征點(diǎn)個(gè)數(shù)判斷閾值進(jìn)行調(diào)整,可以降低誤判和漏判率,達(dá)到應(yīng)用要求。
本文所介紹的機(jī)頂盒馬賽克檢測(cè)方法,利用SIFT特征算法提取的關(guān)鍵點(diǎn)對(duì)噪聲和圖像明暗以及顏色大范圍變化不敏感的特性,同時(shí)利用馬賽克產(chǎn)生后出現(xiàn)大量焦點(diǎn)和極值的特性,通過對(duì)比特征值的方式實(shí)現(xiàn)。經(jīng)過實(shí)際實(shí)驗(yàn)和使用驗(yàn)證,漏檢率和誤檢率低于5%,滿足行業(yè)一般測(cè)試需求,大大提高檢測(cè)速度和成本。