王運蘭
(義烏工商職業(yè)技術(shù)學(xué)院 機電信息學(xué)院,浙江 義烏 322000)
隨著視頻內(nèi)容在互聯(lián)網(wǎng)上的廣泛傳播,與其相關(guān)的版權(quán)保護技術(shù)的重要性日益突出。視頻內(nèi)容的數(shù)字水印技術(shù)是近十多年來發(fā)展起來的一項重要技術(shù)。通過數(shù)字水印技術(shù),使用者可以標識視頻內(nèi)容的創(chuàng)作者并證實視頻內(nèi)容的所有權(quán),還可以對視頻內(nèi)容的非法傳播進行快速追蹤。視頻內(nèi)容的數(shù)字水印技術(shù)屬于多學(xué)科交叉, 涉及到數(shù)字多媒體技術(shù)、現(xiàn)代密碼學(xué)與編碼技術(shù)、信號處理等學(xué)科[1-5]。
從Hartung等[6]首次提出視頻水印技術(shù)以來,世界各國的相關(guān)研究人員提出了許多視頻水印添加方法。按照對抗篡改能力的強弱,現(xiàn)有的視頻水印方法可分為魯棒性方法[7-9]、脆弱[10-11]和半脆弱[12-14]方法3種。魯棒性水印方法一般用于版權(quán)保護、侵權(quán)溯源等方面。而脆弱性和半脆弱性水印技術(shù)一般用于視頻內(nèi)容的完整性檢驗。脆弱性水印技術(shù)對于視頻數(shù)據(jù)的改動高度敏感,因此包含脆弱水印的視頻內(nèi)容不允許有任何非法修改。而半脆弱水印一方面允許對視頻的常規(guī)處理,例如壓縮,另一方面又能保留對視頻內(nèi)容惡意篡改的高度敏感性。
由于視頻內(nèi)容包含數(shù)量龐大的圖像幀,為了不影響視頻收發(fā)和播放的速率,水印的嵌入和提取過程必須足夠高效。除此之外,在不損失原始信號的視覺可感知質(zhì)量的前提下,嵌入的水印對常見的信號處理攻擊具有魯棒性也是必需的。但魯棒性和高的執(zhí)行效率往往相互矛盾,現(xiàn)有算法并未很好地解決此矛盾。考慮到極限學(xué)習(xí)機算法的超高訓(xùn)練效率和非線性映射特性,本文設(shè)計了一種基于極限學(xué)習(xí)機算法的離散小波變換域視頻水印添加方法并將其應(yīng)用到未壓縮的AVI視頻序列中,利用極限學(xué)習(xí)機算法的快速收斂特性和對輸入數(shù)據(jù)的高度非線性映射能力,對水印進行調(diào)制后再添加到原始的視頻幀序列中,顯著提升了水印的安全性。首先,在水印嵌入環(huán)節(jié),場景切換檢測算法被用于提取非重疊幀,然后對非重疊幀的亮度分量進行5級離散小波變換,提取第5級低頻子邊帶系數(shù)矩陣LL5,以系數(shù)矩陣的每行作為一個樣本并以行均值作為標簽構(gòu)建訓(xùn)練數(shù)據(jù)集,通過極限學(xué)習(xí)機進行回歸訓(xùn)練,回歸模型的輸出矢量與水印子塊對系數(shù)矩陣通過預(yù)定義公式進行修正,最后通過逆小波變換得到嵌入水印的視頻幀序列。在水印提取環(huán)節(jié),對嵌入水印的視頻幀序列與原始視頻幀序列的亮度分量分別進行5級離散小波變換,通過提取兩個LL5子邊帶系數(shù)矩陣的差異部分來得到水印子塊,所有的子塊重組便可得到完整水印。在實驗中,該方法將作為水印的二進制圖像成功嵌入到了未壓縮的AVI視頻序列中。雖然本方法的水印嵌入和提取幀均時間稍長,但在峰值信噪比(Peak signal to noise ratio, PSNR)、歸一化系數(shù)(Normalized correlation, NC)、位誤差率(Bit error rate, BER)等指標的測試中本方法表現(xiàn)出了優(yōu)良的性能。同時本方法在縮放攻擊、壓縮攻擊、噪聲攻擊、平均攻擊、掉幀攻擊的測試下依然表現(xiàn)良好。
單隱含層前饋神經(jīng)網(wǎng)絡(luò)以其優(yōu)良的學(xué)習(xí)能力而廣泛應(yīng)用于多個領(lǐng)域,但傳統(tǒng)的訓(xùn)練算法存在的諸如訓(xùn)練速度慢、容易陷入局部極小等缺點限制了其進一步的發(fā)展。極限學(xué)習(xí)機算法隨機產(chǎn)生輸入層與隱含層間的連接權(quán)值及隱含層神經(jīng)元的偏置,且在訓(xùn)練過程中無需調(diào)整,只需人為設(shè)置隱含層的神經(jīng)元個數(shù),便可以獲得唯一最優(yōu)解。與BP算法等傳統(tǒng)算法相比,該方法的學(xué)習(xí)速度更快、泛化性能更好。
給定一個單隱含層前饋神經(jīng)網(wǎng)絡(luò),其輸入層神經(jīng)元數(shù)目為n,隱含層神經(jīng)元數(shù)目為L,輸出層神經(jīng)元數(shù)目為m。輸入層和隱含層之間的權(quán)重矩陣為W:
,
(1)
隱含層與輸出層之間的權(quán)重矩陣為β:
(2)
隱含層的閾值向量為b:
,
(3)
給定包含N個樣本的數(shù)據(jù)集D={(xj,tj),j=1,2,…,N},對任意樣本xj=(xj1,xj2,…,xjn)T∈Rn,其對應(yīng)的期望輸出向量為tj=(tj1,tj2,…,tjm)T∈Rm。將所有的期望輸出向量合并為矩陣T:
.
(4)
假設(shè)樣本xj通過單隱含層前饋神經(jīng)網(wǎng)絡(luò)的輸出為oj,j=1,2,…,N。則該前饋神經(jīng)網(wǎng)絡(luò)的標準數(shù)學(xué)模型可以表示為式(5)、(6):
,
(5)
,
(6)
其中:g(·)為激活函數(shù),即核函數(shù)。將式(5)、(6)合并成式(7):
,
(7)
由式(7)知,若求矩陣β則需求解矩陣W和b。將式(7)改寫為如下形式:
Hβ=T
,
(8)
其中:
,
(9)
式(8)等價于如下優(yōu)化問題:
.
(10)
水印嵌入視頻序列的整體流程圖如圖1所示。
圖1 水印嵌入流程
設(shè)原始視頻幀序列為V(i),i=1,2,…,其中每個視頻幀的大小均為M1×N1。作為水印的二進制圖像矩陣為W(m,n),m=1,2,…,M,n=1,2,…,N。水印嵌入的詳細過程如下:
步驟1:使用文獻[15]中方法對原始視頻幀序列V進行場景切換檢測,提取出k幀非重疊視頻幀,將所有提取出來的幀按時間先后構(gòu)成NV(i),i=1,2,…,k;
,
(11)
步驟3:對步驟1中提取出的所有非重疊幀的亮度分量進行5級離散小波變換,提取出第5級低頻子邊帶系數(shù)矩陣,構(gòu)成KLL5i(x,y)∈RM1*N1,i=1,2,…,k;
步驟4:將所有的LL5矩陣的行均值作為標簽,每行作為一個樣本,構(gòu)成訓(xùn)練數(shù)據(jù)集并使用ELM進行回歸模型的構(gòu)建,隱含層節(jié)點數(shù)設(shè)置為20,激活函數(shù)設(shè)置為徑向基函數(shù),輸入層和隱含層之間的權(quán)重矩陣W設(shè)置為LL5矩陣的對角化矩陣X,隱含層與輸出層之間的權(quán)重矩陣β設(shè)置為X-1,隱含層的閾值向量b設(shè)置為LL5矩陣的對角矩陣D的對角線元素。X和D滿足XDX-1=KLL5?;貧w模型的輸出矢量構(gòu)成矩陣Ei(x,y)∈RM1*1,i=1,2,…,k;
步驟5:按照公式(12)對所有的LL5矩陣進行修正:
.
(12)
步驟6:以步驟5生成的新的LL5矩陣替換原LL5矩陣并對所有非重疊幀進行逆離散小波變換,使非重疊幀得到新的亮度分量;
步驟7:以步驟6所得新亮度分量替換對應(yīng)非重疊幀中已有亮度分量,得到添加了水印的視頻序列V′(i),i=1,2,…。
圖2 水印提取流程
從添加了視頻水印的幀中提取出水印的整體步驟如圖2所示。其詳細步驟如下:
步驟1:按照水印添加算法的步驟1~4生成Ei(x,y)∈RM1*1,i=1,2,…,k和KLL5i(x,y)∈RM1*N1,i=1,2,…,k;
步驟2:使用文獻[13]中方法對添加了水印的視頻幀序列V′進行場景切換檢測,提取出k幀非重疊視頻幀,將所有提取出來的幀按時間先后構(gòu)成NV′(i),i=1,2,…,k;
步驟4:按照公式(13)求得所有水印塊:
(13)
步驟5:將步驟4所求得水印塊進行重組得到水印W′。
為衡量水印嵌入的執(zhí)行效率和嵌入水印的視頻序列在肉眼上的不可察覺性,本小節(jié)進行了幀均嵌入耗時、PSNR兩個指標的測試,PSNR的定義如公式(14)所示。
,
(14)
其中KMSE為原始視頻幀和嵌入水印的視頻幀之間的均方誤差。
實驗所用的兩個視頻序列分別為新聞視頻序列和采訪視頻序列,這兩個視頻分別為2 500幀,畫面尺寸為768×768,其第150幀如圖3所示。嵌入實驗所用的水印(大小為50×50的二進制圖像)如圖4所示。
圖3 原始視頻序列的第150幀
圖4 水印圖像
水印圖像在兩個視頻序列中的幀均嵌入用時和嵌入之后的視頻序列與嵌入前的視頻序列間的PSNR均值列于表1。為衡量本算法的優(yōu)越性,幾種被廣泛應(yīng)用的視頻水印添加算法[16-19]也進行了這兩個指標的測試。
表1 5種方案在幀均嵌入用時和PSNR上的比較
Tab.1 Comparison of five schemes in frame embedding time and PSNR
幀均嵌入時間/msPSNR/dB[16]32.4244.17[17]51.7653.08[18]31.0730.69[19]32.1849.46本文方法58.2387.63
通過表1可以看出,本文所提出的視頻水印添加方法雖然在執(zhí)行效率上相比于其他算法稍差,但在PSNR這個指標的測試中表現(xiàn)優(yōu)異。本文方法的高PSNR測試結(jié)果證明,采用本文所提方法加工過的視頻序列的可視質(zhì)量達到了更高的水準,所添加的水印更加不容易被察覺。
為了衡量水印提取的效率和提取的水印的質(zhì)量,水印提取實驗所用的評價指標包括歸一化相關(guān)系數(shù)、位誤差率和幀均提取時間這3個指標。其中歸一化系數(shù)(Normalized correlation, NC)、位誤差率(Bit error rate, BER)的定義分別如式(15)和式(16)所示。
,
(15)
.
(16)
3個指標測試實驗結(jié)果如表2所示。通過表2可以看出,本文所提出的算法在水印提取步驟雖然執(zhí)行效率相比參考算法不占優(yōu)勢,但本文方法在歸一化系數(shù)、位誤差率這兩個指標上的優(yōu)異表現(xiàn)也說明,提取出的水印與原水印相比依然保留了絕大部分信息。
表2 5種方案在幀均提取用時、NC和BER上的比較
Tab.2 Comparison of three schemes in frame extraction time, NC and BER
幀均提取時間/msNCBER/%[16]25.090.710.47[17]42.460.880.39[18]27.760.780.37[19]20.340.910.28本文方法47.170.920.15
為了測試所提出算法的魯棒性,5種常見的攻擊手段被應(yīng)用于對水印視頻的攻擊。
4.3.1 縮放攻擊
利用雙三次插值方法將視頻幀按比例放大到不同的幀大小(20%,25%,30%,35%,40%,45%,50%),并將其還原。表3展示了兩個視頻序列中提取出的水印的NC和BER。
表3 抗縮放攻擊測試結(jié)果
4.3.2 噪聲攻擊
均值為0,方差分別為0.01,0.02,0.03,0.04,0.05的高斯噪聲被添加到水印視頻幀序列中。然后將從這些被噪聲污染的視頻中提取出的水印與原始水印一起求取NC和BER,實驗結(jié)果示于表4。
表4 抗噪聲攻擊測試結(jié)果
續(xù) 表
4.3.3 壓縮攻擊
添加了水印的未壓縮視頻通過JPEG壓縮(壓縮率:10%,20%,30%,40%,50%),然后再解壓縮。從中提取出的水印的NC和BER示于表5。
表5 抗壓縮攻擊測試結(jié)果
4.3.4 掉幀攻擊
對于一個包含大量幀的視頻序列,刪除一部分幀可能破壞掉水印的完整性,一個具有魯棒性的水印算法對掉幀攻擊應(yīng)具有較強的抵抗力。在測試中,掉幀率的范圍設(shè)置為5%~30%,實驗結(jié)果展示于表6。
表6 抗掉幀攻擊測試結(jié)果
4.3.5 平均攻擊
平均攻擊是一種常用的視頻水印攻擊手段。在平均攻擊中,視頻幀被其相鄰的n幀視頻幀平均值取代(n=2,4,6,8,10)。實驗結(jié)果示于表7。
表7 抗平均攻擊測試結(jié)果
續(xù) 表
從表3~7可以看出,在這幾種攻擊下,本文所提出的算法在歸一化系數(shù)、位誤差率上的表現(xiàn)雖然有所降低,但降低程度較小,因此,本文所提出方法具有較強的魯棒性。
為實現(xiàn)侵權(quán)視頻的精準溯源,本文設(shè)計了一種基于極限學(xué)習(xí)機算法的離散小波變換域視頻水印添加方法。在水印嵌入環(huán)節(jié),首先使用場景切換檢測算法實現(xiàn)非重疊幀提取,然后對非重疊幀的亮度分量進行5級離散小波變換,提取第5級低頻子邊帶系數(shù)矩陣,通過系數(shù)矩陣構(gòu)建訓(xùn)練數(shù)據(jù)集,以系數(shù)矩陣的每個行均值作為對應(yīng)行的標簽,通過極限學(xué)習(xí)機算法進行回歸模型的訓(xùn)練,回歸模型的輸出矢量與水印子塊對第5級低頻子邊帶系數(shù)矩陣進行修正,最后通過逆離散小波變換得到嵌入水印的視頻幀序列。在水印提取環(huán)節(jié),對嵌入水印的視頻幀序列與原始視頻幀序列的亮度分量分別進行5級離散小波變換,通過提取兩個低頻子邊帶系數(shù)矩陣的差異部分來得到水印子塊,將所有的子塊重組便可得到完整水印。在水印嵌入和水印提取實驗中,視頻中水印的不可見性和視頻中提取的水印的質(zhì)量得到了驗證。本方法在縮放攻擊、壓縮攻擊、噪聲攻擊、平均攻擊、掉幀攻擊的測試下依然表現(xiàn)良好。因此,本文所提出的方法具有較強魯棒性,有一定市場應(yīng)用前景。