專利名稱:一種提取視頻指紋的方法及裝置的制作方法
技術領域:
本發明涉及計算機及圖像領域,特別是涉及提取視頻指紋的方法及裝置。
背景技術:
隨著網絡技術和多媒體業務的發展,視頻業務已深入到人們的生活。在視頻上傳或視頻下載過程中,對于服務商來說都離不開視頻的查詢和檢索。然而,一個視頻文件的大小通常都比較大,基本以數兆(M)或G為單位。因此,如何快速檢索如此大型的文件成為業內關注的焦點。目前提出了內容標識(CID)碼技術。CID碼是能夠唯一標識視頻文件的由若干個字節組成的字符串。可根據設置的算法對視頻文件中的視頻數據進行計算后獲得CID碼。 設置的算法可以是對不同的數據處理得到不同的處理結果的任一算法,例如哈希(hash) 算法。具體的,哈希算法可以采用信息-摘要算法(Message-Digest Algorithm 5,MD5), MD4,安全散列算法(Secure Hash Algorithm, SHA)等。由此可見,CID碼是一種標識完整視頻文件的技術。如果兩個視頻文件完全相同, 則其CID碼相同,也就是說可以通過CID碼進行比較或檢索。然而現實生活中更多視頻文件之間并不完全相同。例如,一個是完整的視頻文件,另一個是沒有片頭曲的視頻文件,對于用戶來說這兩個視頻文件的內容相同,都是搜索的目標,而通過CID碼的比較結果是不同的,也不能同時搜索到這兩個視頻文件。因此,亟待獲得一種新的指紋提取技術,以便通過該指紋來進行視頻的相似度比較等。
發明內容
本發明實施例提供一種提取視頻指紋的方法及裝置,用于實現對視頻指紋的提取,以較準確的標識視頻,并有利于通過該指紋進行視頻的相似度比較和入庫管理等。一種提取視頻指紋的方法,包括以下步驟對視頻文件中的一幀灰度圖像進行分塊;獲得一幀灰度圖像中各分塊的平均灰度值;根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋;將多幀灰度圖像的指紋合并,并將合并后的指紋作為視頻文件的指紋。一種視頻相似度比較的方法,包括以下步驟分別獲得兩個視頻文件的各m幀指紋,每幀指紋是對一幀灰度圖像進行分塊;獲得一幀灰度圖像中各分塊的平均灰度值;根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋;根據兩個視頻文件的m幀指紋,獲得兩個視頻文件關于該m幀的相似度值;判斷獲得的相似度值是否大于預設的相似度閾值,若大于,則確定兩個視頻文件關于該m幀不相似,否則確定兩個視頻文件關于該m幀相似。一種用于提取視頻指紋的裝置,包括
分塊模塊,用于對視頻文件中的一幀灰度圖像進行分塊;計算模塊,用于獲得一幀灰度圖像中各分塊的平均灰度值;指紋模塊,用于根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋,以及將多幀灰度圖像的指紋合并,并將合并后的指紋作為視頻文件的指紋。一種用于視頻相似度比較的裝置,包括獲取模塊,用于分別獲得兩個視頻文件的各m幀指紋,每幀指紋是對一幀灰度圖像進行分塊;獲得一幀灰度圖像中各分塊的平均灰度值;根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋;相似度計算模塊,用于根據兩個視頻文件的m幀指紋,獲得兩個視頻文件關于該m 幀的相似度值;比較模塊,用于判斷獲得的相似度值是否大于預設的相似度閾值,若大于,則確定兩個視頻文件關于該m幀不相似,否則確定兩個視頻文件關于該m幀相似。本發明實施例通過一幀圖像內的灰度值獲得該幀圖像的指紋,實現對一幀圖像內容的標識,有利于進行逐幀圖像內容的比較,進而實現視頻文件之間的相似度比較。
圖1為本發明實施例中提取視頻指紋的方法流程圖;圖2為本發明實施例中分塊灰度值所對應的序號的示意圖;圖3為本發明實施例中干擾區的示意圖;圖4為本發明實施例中視頻相似度比較的方法流程圖;圖5A為本發明實施例中更新基礎指紋庫的方法流程圖;圖5B為本發明實施例中最短媒體片段、待查詢片段及切片之間的長度關系的示意圖;圖6為本發明實施例中裝置600的主要結構圖;圖7為本發明實施例中裝置600的詳細結構圖;圖8為本發明實施例中裝置800的主要結構圖;圖9為本發明實施例中裝置800的詳細結構圖。
具體實施例方式本發明實施例通過一幀圖像內的灰度值獲得該幀圖像的指紋,實現對一幀圖像內容的標識,有利于進行逐幀圖像內容的比較,進而實現視頻文件之間的相似度比較。參見圖1,本實施例中提取視頻指紋的方法流程如下步驟101 對視頻文件中的一幀灰度圖像進行分塊。得到的分塊又稱宏塊,每個分塊的大小可以是4X4或8X8等。步驟102 獲得一幀灰度圖像中各分塊的平均灰度值。步驟103 根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋。步驟104 將多幀灰度圖像的指紋合并,并將合并后的指紋作為視頻文件的指紋。步驟103中有多種具體實現方式,如第一種方式,對一幀灰度圖像中各分塊的平均灰度值進行排序,并獲得各分塊對應的序號,按照分塊在灰度圖像中的順序將各分塊對應的序號順序組合,將組合后的一串符號作為該幀灰度圖像的指紋。如第二種方式,對一幀灰度圖像中各分塊的平均灰度值進行兩兩比較,將由0或1表示的比較結果按照比較的順序組合,將組合后的一串符號作為該幀灰度圖像的指紋。如第三種方式,根據已獲得的平均灰度值,獲得各分塊的總體梯度方向值,按照分塊在灰度圖像中的順序將各分塊對應的總體梯度方向值順序組合,將組合后的一串符號作為該幀灰度圖像的指紋。具體的,針對第一種方式,以每幀包括12個宏塊為例,各分塊的平均灰度值為80, 50,110,30,60,90,180,160,70,120,20,40,然后對一幀灰度圖像中各分塊的平均灰度值進行排序,并獲得各分塊對應的序號。參見圖2所示的幀,其給出了每個宏塊的亮度值所對應的序號,這些序號順序地組成了幀指紋,可以以數組形式存儲幀指紋,則幀指紋形如 seq[12] = {7,4,9, 2,5,8,12,11,6,10,1,3},例如第一個宏塊的灰度值在所有宏塊的灰度值排第7,則數組gray [12]中的第一元素的值為7。針對第二種方式,以每幀包括12個宏塊為例,對一幀灰度圖像中各分塊的平均灰度值進行兩兩比較,也可以是將平均灰度值排序后的序號進行兩兩比較,若gray[i] < gray[j],則結果為1,否則為0 ;或者,若gray[i] < gray[j],則結果為0,否則為1 ; gray []表示數組,i表示第i個分塊,j表示第j個分塊,i = 0,. . .,P,j = 0,. . .,P,P為一幀灰度圖像中參與合成指紋的分塊的總數。數組內每個元素的值為分塊的平均灰度值或排序的序號等,總之任何可以體現出灰度大小關系的值均可。針對第三種方式,將每個幀量化為8個方向,還是以12個宏塊為例,每個幀就有12 個梯度方向值,該梯度方向值為與灰度值有關的數據,也就是說這12個梯度方向值順序組成了該幀的幀指紋。步驟104中將多幀灰度圖像的指紋合并,可有多種方法,例如,將視頻的全部幀的灰度圖像的指紋連接起來,或取視頻的前中后三個片段的幀的灰度圖像的指紋連接起來等。另外,每幀中不一定整個畫面都是影像,通常一幀中的上下各有幾行是黑邊,中間的畫面部分會有字幕,畫面的左上角會有圖標等,這些部分將影響幀內容相似性的判斷,進而影響指紋的準確度和相似性比較的效果。因此,本實施例在獲得指紋之前,對視頻文件進行過濾。過濾操作至少包括下列操作之一去黑邊和去干擾區。去黑邊,顧名思義,就是去除每幀中的黑邊。具體的,從圖像的一側向中間位置逐行統計每行的像素均值(也可以是平均灰度值),確定第一個像素均值大于像素閾值的一行,從該行開始到所述一側的區域為黑邊,其中不包括該行。但是,有時候畫面內容比較暗, 容易將畫面部分內容確定為黑邊,因此還需要檢測。具體的,確定一幀灰度圖像中的黑邊區域;判斷一幀灰度圖像中除黑邊以外的區域的尺寸是否不小于預設的尺寸閾值,若是,則去除所述黑邊區域,否則不對該幀去除黑邊,或者依據滿足判斷條件的其它幀的黑邊區域對該幀進行去黑邊操作。檢測方式有多種,本實施例只是提供一種可行的方式以供參考,其它檢測方式均適用于本實施例。為了提高檢測的準確度,還可以判斷一幀灰度圖像中除黑邊以外的區域的灰度均值是否大于預設的灰度閾值;在一幀灰度圖像中除黑邊以外的區域的灰度均值大于預設的灰度閾值時,去除所述黑邊區域,否則不對該幀去除黑邊,或者依據滿足判斷條件的其它幀的黑邊區域對該幀進行去黑邊操作。去干擾區,就是將預設的干擾區的數據刪除,不需獲得這部分區域 的與灰度值有關的數據,也就不參與幀指紋的獲得。本實施例中干擾區如圖3所示的陰影區域,包括下方的兩個宏塊,通常為字幕區,以及包括左上角和右上角的宏塊,通常為圖標區,例如電視臺的臺標或廣告等。還可以根據實際情況設置其它宏塊為干擾區,干擾區的特點是不同幀的畫面發生變化時干擾區的內容基本不便,尤其是干擾區的亮度基本不便。獲得了幀指紋后,便可以依據幀指紋對兩個視頻文件進行逐幀比較,以判斷兩個視頻文件之間是否有相似(包括相同)內容的幀,進而確定兩個視頻文件之間的相似度。下面針對視頻相似度比較過程進行介紹。參見圖4,本實施例中視頻相似度比較的方法流程如下步驟401 分別獲得兩個視頻文件的各m幀指紋。每幀指紋是對一幀灰度圖像進行分塊;獲得一幀灰度圖像中各分塊的平均灰度值;根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋。步驟402 根據兩個視頻文件的m幀指紋,獲得兩個視頻文件關于該m幀的相似度值。步驟403 判斷獲得的相似度值是否大于預設的相似度閾值,若大于,則繼續步驟 404,否則繼續步驟405。步驟404 確定兩個視頻文件關于該m幀不相似。步驟405 確定兩個視頻文件關于該m幀相似。步驟402中具體的實現方式如計算兩個視頻文件的m幀指紋之間的曼哈頓 (Manhattan)距離值。例如,一個視頻文件的m幀指紋為3 5 6 7 8 9. .. 11 10,另一個視頻文件的m幀指紋為4 5 6 7 8 9... 11 10,則兩組m幀的距離為| 3_4 | +1 5_5 | +1 6_6 | +1 7-7 ι +18-8 I +1 9-9 +...+111-111 +110-10 I。該距離值即為相似度值,距離越小相似度越大,距離為0,則兩組m幀指紋相同,可以確定兩組m幀視頻內容相同。本實施例中是通過灰度值來作為視頻幀的指紋,在極特殊的情況下,可能兩個視頻文件的某些幀內容不同但灰度相同,因此在進行相似度比較前,較佳的方式是,選取的每個視頻文件中的m幀為去除劇烈變化的連續多幀后的m幀,即去除視頻文件中劇烈變化的連續多幀。具體實現方式如,獲得視頻文件中每相鄰兩幀之間的漢明距離;確定連續多幀中是否有超過預設比例數量的幀之間的漢明距離大于預設的距離閾值,若是,則確定該連續多幀為劇烈變化的連續多幀并去除,否則保留。對于劇烈變化的連續多幀,會影響識別效果,需要去除,判斷是否為劇烈變化的方式有多種,本實施例通過相鄰兩幀的漢明距離(hamming distance)來判斷。例如f(i)幀指紋為 0 1 2 5 6 3 4 8 9 7 10 11,f (i+Ι)幀指紋為 0315624 89 7 10 11,則該相鄰幀的漢明距離為 H(i+1) = 0-01 + 11-31 + 12-11+·· .+110-10 I+ Ill-Il =4。確定連續多幀中是否有超過預設比例數量(如2/3)的幀之間的漢明距離大于預設的距離閾值(如 72),若是,則確定該連續多幀為劇烈變化的連續多幀并去除。例如,一段連續多幀中超過 2/3的幀與其相鄰幀的漢明距離大于72,則確定該段連續多幀劇烈變化,需要去除。比較過兩個視頻文件的相似度后,便可以根據比較結果更新關于視頻文件的基礎指紋庫,具體實現過程參見下面的流程。所述兩個視頻文件中的一個視頻文件為基礎指紋庫中的基礎視頻文件,另一個視頻文件為待查詢視頻文件;
參見圖5A,本實施例中更新基礎指紋庫的方法流程如下步驟501 將待查詢視頻文件的多組m幀指紋分別與基礎視頻文件的多組m幀指紋進行相似性比較。步驟502 根據比較結果確定待查詢視頻文件與基礎視頻文件之間的內容包含關系。步驟503 根據獲得的內容包含關系更新基礎指紋庫。本實施例中,待查詢視頻文件的多組m幀為待查詢視頻文件中等長的切片的一部分,且該多組m幀(即待查詢片段)與切片的長度和不超過基礎視頻文件中多組m幀所構成的最短媒體片段的長度。最短媒體片段、待查詢片段及切片之間的長度關系參見圖5B所示。該長度關系可以保證最短媒體片段至少在長度上包含一個完整的待查詢片段,以便對片段的相似性進行比較。內容包含關系包括完全無重疊、不完全重疊、基礎視頻文件被包含于待查詢視頻文件、和基礎視頻文件包含待查詢視頻文件。若待查詢視頻文件中的多組m幀指紋均在基礎視頻文件中對應有比較結果相同的m幀指紋,則確定基礎視頻文件包含待查詢視頻文件。若基礎視頻文件中的多組m幀指紋均在待查詢視頻文件中對應有比較結果相同的m幀指紋,則確定基礎視頻文件被包含于待查詢視頻文件。若待查詢視頻文件的多組m幀指紋中部分幀指紋比較結果相同,則確定待查詢視頻文件與基礎視頻文件之間不完全重疊。若待查詢視頻文件中的多組m幀指紋均未在基礎視頻文件中對應有比較結果相同的m幀指紋,則確定待查詢視頻文件與基礎視頻文件之間完全無重疊。內容包含關系為完全無重疊時,在基礎指紋庫中增加待查詢視頻文件的索引,以及將待查詢視頻文件歸入基礎指紋庫。內容包含關系為不完全重疊時,在基礎指紋庫中增加待查詢視頻文件的索引,將待查詢視頻文件歸入基礎指紋庫,以及在基礎指紋庫中記錄待查詢視頻文件與基礎視頻文件之間的重疊位置。內容包含關系為基礎視頻文件被包含于待查詢視頻文件時,在基礎指紋庫中用待查詢視頻文件的索引替換基礎視頻文件的索引,以及在基礎指紋庫中用待查詢視頻文件替換基礎視頻文件。內容包含關系為基礎視頻文件包含待查詢視頻文件時,在基礎指紋庫中增加待查詢視頻文件的索引。對于服務商來說,基礎指紋庫通常是批量更新的。為了提高更新效率,需要根據多個待查詢多媒體文件更新基礎指紋庫時,確定每個待查詢視頻文件在基礎指紋庫中的存儲位置,根據該存儲位置對待查詢視頻文件進行排序,按照排序后的順序將待查詢視頻文件更新到基礎指紋庫。當數據庫中索引了大量的視頻文件間的相似及相對位置關系時,就可以實現視頻的快速檢索。這里每個視頻的唯一標識為視頻文件的二進制文件的hash值。提取其客戶端的相關信息,如客戶端分辨率,支持的視頻格式等信息,例如使用手機查詢視頻時,因手機硬件限制,能播放的視頻格式、碼率等參數較為局限,所以需要根據手機的相關信息進行查詢。然后根據指定的查詢信息(文件hash、分辨率、格式等)從數據庫中檢索與需查詢視頻具有相同內容的視頻,且獲取的待推薦視頻在內容上包含該文件, 并滿足該手機的分辨率及格式等信息。根據選擇的結果將得到的滿足上述條件的視頻文件的鏈接地址提交給客戶端。客戶端然后根據該鏈接請求與該鏈接具有相同二進制文件的其他鏈接,實現視頻的快速下載及播放。以上描述了指紋提取、相似度比較和更新基礎指紋庫的過程,下面對實現上述過程的裝置的內部結構和功能進行介紹。參見圖6,本實施例中用于提取視頻指紋的裝置600包括分塊模塊601、計算模塊 602和指紋模塊603。分塊模塊601用于對視頻文件中的一幀灰度圖像進行分塊。計算模塊602用于獲得一幀灰度圖像中各分塊的平均灰度值。指紋模塊603用于根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋, 以及將多幀灰度圖像的指紋合并,并將合并后的指紋作為視頻文件的指紋。具體的,指紋模塊603對一幀灰度圖像中各分塊的平均灰度值進行排序,并獲得各分塊對應的序號,按照分塊在灰度圖像中的順序將各分塊對應的序號順序組合,將組合后的一串符號作為該幀灰度圖像的指紋;或者,對一幀灰度圖像中各分塊的平均灰度值進行兩兩比較,將由0或1 表示的比較結果按照比較的順序組合,將組合后的一串符號作為該幀灰度圖像的指紋;或者,根據已獲得的平均灰度值,獲得各分塊的總體梯度方向值,按照分塊在灰度圖像中的順序將各分塊對應的總體梯度方向值順序組合,將組合后的一串符號作為該幀灰度圖像的指紋。對一幀灰度圖像中各分塊的平均灰度值進行兩兩比較時,指紋模塊602將 gray[i]與 gray [j]比較,若 gray [i] < gray [j],則結果為 1,否則為 0 ;或者,若 gray [i] < gray [j],則結果為0,否則為1 ;gray[]表示數組,i表示第i個分塊,j表示第j個分塊, i = 0,. . .,P,j = 0,. . .,P,P為一幀灰度圖像中參與合成指紋的分塊的總數。裝置600還包括過濾模塊604,參見圖7所示,過濾模塊604用于對一幀灰度圖像進行去黑邊操作。具體的,過濾模塊604確定一幀灰度圖像中的黑邊區域,判斷一幀灰度圖像中除黑邊以外的區域的尺寸是否不小于預設的尺寸閾值,若是,則去除所述黑邊區域。裝置600還包括檢測模塊605用于判斷一幀灰度圖像中除黑邊以外的區域的灰度均值是否大于預設的灰度閾值。過濾模塊604在一幀灰度圖像中除黑邊以外的區域的灰度均值大于預設的灰度閾值時,去除所述黑邊區域。參見圖8,本實施例中用于視頻相似度比較的裝置800包括獲取模塊801、相似度計算模塊802和比較模塊803。獲取模塊801用于分別獲得兩個視頻文件的各m幀指紋。每幀指紋是對一幀灰度圖像進行分塊;獲得一幀灰度圖像中各分塊的平均灰度值;根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋。即,獲取模塊801可以從裝置600處獲得指紋。裝置600 可以作為裝置800中的一個模塊存在。相似度計算模塊802用于根據兩個視頻文件的m幀指紋,獲得兩個視頻文件關于該m幀的相似度值。相似度計算模塊802計算兩個視頻文件的m幀指紋之間的曼哈頓 Manhattan 距離值。
比較模塊803用于判斷獲得的相似度值是否大于預設的相似度閾值,若大于,則確定兩個視頻文件關于該m幀不相似,否則確定兩個視頻文件關于該m幀相似。每個視頻文件中的m幀為去除劇烈變化的連續多幀后的m幀。裝置800還包括過濾模塊804,參見圖9所示,過濾模塊804用于獲得視頻文件中每相鄰兩幀之間的漢明距離;確定連續多幀中是否有超過預設比例數量的幀之間的漢明距離大于預設的距離閾值,若是,則確定該連續多幀為劇烈變化的連續多幀并去除。如果裝置600位于裝置800中,則過濾模塊604與過濾模塊804可以是同一模塊。裝置800還可以用于更新基礎指紋庫,則所述兩個視頻文件中的一個視頻文件為基礎指紋庫中的基礎視頻文件,另一個視頻文件為待查詢視頻文件。比較模塊803還用于將待查詢視頻文件的多組m幀指紋分別與基礎視頻文件的多組m幀指紋進行相似性比較;所述裝置800還包括關系模塊805和更新模塊806。關系模塊805,用于根據比較結果確定待查詢視頻文件與基礎視頻文件之間的內容包含關系。更新模塊806,用于根據獲得的內容包含關系更新基礎指紋庫。本實施例中,待查詢視頻文件的多組m幀為待查詢視頻文件中等長的切片的一部分,且該多組m幀與切片的長度和不超過基礎視頻文件中多組m幀所構成的最短媒體片段的長度。內容包含關系包括完全無重疊、不完全重疊、基礎視頻文件被包含于待查詢視頻文件、和基礎視頻文件包含待查詢視頻文件。關系模塊805若待查詢視頻文件中的多組m幀指紋均在基礎視頻文件中對應有比較結果相同的m幀指紋,則關系模塊805確定基礎視頻文件包含待查詢視頻文件;若基礎視頻文件中的多組m幀指紋均在待查詢視頻文件中對應有比較結果相同的m幀指紋,則關系模塊805確定基礎視頻文件被包含于待查詢視頻文件;若待查詢視頻文件的多組m幀指紋中部分幀指紋比較結果相同,則關系模塊805確定待查詢視頻文件與基礎視頻文件之間不完全重疊;若待查詢視頻文件中的多組m幀指紋均未在基礎視頻文件中對應有比較結果相同的m幀指紋,則關系模塊805確定待查詢視頻文件與基礎視頻文件之間完全無重疊。內容包含關系為完全無重疊時,更新模塊806在基礎指紋庫中增加待查詢視頻文件的索引,以及將待查詢視頻文件歸入基礎指紋庫;內容包含關系為不完全重疊時,更新模塊806在基礎指紋庫中增加待查詢視頻文件的索引,將待查詢視頻文件歸入基礎指紋庫,以及在基礎指紋庫中記錄待查詢視頻文件與基礎視頻文件之間的重疊位置;內容包含關系為基礎視頻文件被包含于待查詢視頻文件時,更新模塊806在基礎指紋庫中用待查詢視頻文件的索引替換基礎視頻文件的索引,以及在基礎指紋庫中用待查詢視頻文件替換基礎視頻文件;內容包含關系為基礎視頻文件包含待查詢視頻文件時,更新模塊806在基礎指紋庫中增加待查詢視頻文件的索引。較佳的,更新模塊806需要根據多個待查詢視頻文件更新基礎指紋庫時,確定每個待查詢視頻文件在基礎指紋庫中的存儲位置,根據該存儲位置對待查詢視頻文件進行排序,按照排序后的順序將待查詢視頻文件更新到基礎指紋庫。本發明實施例通過一幀圖像內的灰度值獲得該幀圖像的指紋,實現對一幀圖像內容的標識,有利于進行逐幀圖像內容的比較,進而實現視頻文件之間的相似度比較。本發明實施例在獲得幀圖像的指紋的基礎上,通過該指紋實現了視頻文件之間的內容相似度比較,該比較結果可用于視頻檢索、下載和上傳,及關于視頻的基礎指紋庫和存儲視頻的數據庫建立和更新等。本領域內的技術人員應明白,本發明的實施例可提供為方法、系統、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器和光學存儲器等)上實施的計算機程序產品的形式。本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。
權利要求
1.一種提取視頻指紋的方法,其特征在于,包括以下步驟對視頻文件中的一幀灰度圖像進行分塊;獲得一幀灰度圖像中各分塊的平均灰度值;根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋;將多幀灰度圖像的指紋合并,并將合并后的指紋作為視頻文件的指紋。
2.如權利要求1所述的方法,其特征在于,根據各分塊的灰度值的相關值獲得該幀灰度圖像的指紋的步驟包括對一幀灰度圖像中各分塊的平均灰度值進行排序,并獲得各分塊對應的序號,按照分塊在灰度圖像中的順序將各分塊對應的序號順序組合,將組合后的一串符號作為該幀灰度圖像的指紋;或者對一幀灰度圖像中各分塊的平均灰度值進行兩兩比較,將由0或1表示的比較結果按照比較的順序組合,將組合后的一串符號作為該幀灰度圖像的指紋;或者根據已獲得的平均灰度值,獲得各分塊的總體梯度方向值,按照分塊在灰度圖像中的順序將各分塊對應的總體梯度方向值順序組合,將組合后的一串符號作為該幀灰度圖像的指紋。
3.如權利要求2所述的方法,其特征在于,對一幀灰度圖像中各分塊的平均灰度值進行兩兩比較的步驟包括若gray [i] < gray [j],則結果為1,否則為0 ;或者,若gray [i] < gray [ j],則結果為 0,否則為1 ;gray[]表示數組,i表示第i個分塊,j表示第j個分塊,i = 0,. . .,P,j = 0,. . .,P,P為一幀灰度圖像中參與合成指紋的分塊的總數。
4.如權利要求1所述的方法,其特征在于,對一幀灰度圖像進行分塊之前,還包括步驟對一幀灰度圖像進行去黑邊操作。
5.如權利要求4所述的方法,其特征在于,對一幀灰度圖像進行去黑邊操作的步驟包括確定一幀灰度圖像中的黑邊區域;判斷一幀灰度圖像中除黑邊以外的區域的尺寸是否不小于預設的尺寸閾值,若是,則去除所述黑邊區域。
6.如權利要求5所述的方法,其特征在于,去除所述黑邊區域之前,還包括步驟判斷一幀灰度圖像中除黑邊以外的區域的灰度均值是否大于預設的灰度閾值;去除所述黑邊區域的步驟包括在一幀灰度圖像中除黑邊以外的區域的灰度均值大于預設的灰度閾值時,去除所述黑邊區域。
7.一種視頻相似度比較的方法,其特征在于,包括以下步驟分別獲得兩個視頻文件的各m幀指紋,每幀指紋是對一幀灰度圖像進行分塊;獲得一幀灰度圖像中各分塊的平均灰度值;根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋;根據兩個視頻文件的m幀指紋,獲得兩個視頻文件關于該m幀的相似度值;判斷獲得的相似度值是否大于預設的相似度閾值,若大于,則確定兩個視頻文件關于該m幀不相似,否則確定兩個視頻文件關于該m幀相似。
8.如權利要求7所述的方法,其特征在于,根據兩個視頻文件的m幀指紋,獲得兩個視頻文件關于該m幀的相似度值的步驟包括計算兩個視頻文件的m幀指紋之間的曼哈頓 Manhattan 距離值。
9.如權利要求7所述的方法,其特征在于,每個視頻文件中的m幀為去除劇烈變化的連續多幀后的m幀。
10.如權利要求9所述的方法,其特征在于,去除劇烈變化的連續多幀的步驟包括 獲得視頻文件中每相鄰兩幀之間的漢明距離;確定連續多幀中是否有超過預設比例數量的幀之間的漢明距離大于預設的距離閾值, 若是,則確定該連續多幀為劇烈變化的連續多幀并去除。
11.如權利要求7所述的方法,其特征在于,所述兩個視頻文件中的一個視頻文件為基礎指紋庫中的基礎視頻文件,另一個視頻文件為待查詢視頻文件;所述方法還包括步驟將待查詢視頻文件的多組m幀指紋分別與基礎視頻文件的多組m幀指紋進行相似性比較;根據比較結果確定待查詢視頻文件與基礎視頻文件之間的內容包含關系; 根據獲得的內容包含關系更新基礎指紋庫。
12.如權利要求11所述的方法,其特征在于,待查詢視頻文件的多組m幀為待查詢視頻文件中等長的切片的一部分,且該多組m幀與切片的長度和不超過基礎視頻文件中多組 m幀所構成的最短媒體片段的長度。
13.如權利要求11所述的方法,其特征在于,內容包含關系包括完全無重疊、不完全重疊、基礎視頻文件被包含于待查詢視頻文件、和基礎視頻文件包含待查詢視頻文件。
14.如權利要求13所述的方法,其特征在于,根據比較結果確定待查詢視頻文件與基礎視頻文件之間的內容包含關系的步驟包括若待查詢視頻文件中的多組m幀指紋均在基礎視頻文件中對應有比較結果相同的m幀指紋,則確定基礎視頻文件包含待查詢視頻文件;若基礎視頻文件中的多組m幀指紋均在待查詢視頻文件中對應有比較結果相同的m幀指紋,則確定基礎視頻文件被包含于待查詢視頻文件;若待查詢視頻文件的多組m幀指紋中部分幀指紋比較結果相同,則確定待查詢視頻文件與基礎視頻文件之間不完全重疊;若待查詢視頻文件中的多組m幀指紋均未在基礎視頻文件中對應有比較結果相同的m 幀指紋,則確定待查詢視頻文件與基礎視頻文件之間完全無重疊。
15.如權利要求13所述的方法,其特征在于,根據獲得的內容包含關系更新基礎指紋庫的步驟包括內容包含關系為完全無重疊時,將待查詢視頻文件歸入基礎指紋庫; 內容包含關系為不完全重疊時,將待查詢視頻文件歸入基礎指紋庫; 內容包含關系為基礎視頻文件被包含于待查詢視頻文件時,在基礎指紋庫中用待查詢視頻文件替換基礎視頻文件。
16.如權利要求11所述的方法,其特征在于,需要根據多個待查詢視頻文件更新基礎指紋庫時,確定每個待查詢視頻文件在基礎指紋庫中的存儲位置,根據該存儲位置對待查詢視頻文件進行排序,按照排序后的順序將待查詢視頻文件更新到基礎指紋庫。
17.一種用于提取視頻指紋的裝置,其特征在于,包括分塊模塊,用于對視頻文件中的一幀灰度圖像進行分塊;計算模塊,用于獲得一幀灰度圖像中各分塊的平均灰度值;指紋模塊,用于根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋,以及將多幀灰度圖像的指紋合并,并將合并后的指紋作為視頻文件的指紋。
18.如權利要求17所述的裝置,其特征在于,指紋模塊對一幀灰度圖像中各分塊的平均灰度值進行排序,并獲得各分塊對應的序號,按照分塊在灰度圖像中的順序將各分塊對應的序號順序組合,將組合后的一串符號作為該幀灰度圖像的指紋;或者,對一幀灰度圖像中各分塊的平均灰度值進行兩兩比較,將由0或1表示的比較結果按照比較的順序組合,將組合后的一串符號作為該幀灰度圖像的指紋;或者,根據已獲得的平均灰度值,獲得各分塊的總體梯度方向值,按照分塊在灰度圖像中的順序將各分塊對應的總體梯度方向值順序組合,將組合后的一串符號作為該幀灰度圖像的指紋。
19.如權利要求18所述的裝置,其特征在于,指紋模塊將gray[i]與gray[j]比較,若 gray[i] < gray [j],則結果為1,否則為0 ;或者,若gray [i] < gray [j],則結果為0,否則為1 ;gray[]表示數組,i表示第i個分塊,j表示第j個分塊,i = 0,. . .,P,j = 0,..., P,P為一幀灰度圖像中參與合成指紋的分塊的總數。
20.如權利要求17所述的裝置,其特征在于,還包括過濾模塊,用于對一幀灰度圖像進行去黑邊操作。
21.如權利要求20所述的裝置,其特征在于,過濾模塊確定一幀灰度圖像中的黑邊區域,判斷一幀灰度圖像中除黑邊以外的區域的尺寸是否不小于預設的尺寸閾值,若是,則去除所述黑邊區域。
22.如權利要求21所述的裝置,其特征在于,還包括檢測模塊,用于判斷一幀灰度圖像中除黑邊以外的區域的灰度均值是否大于預設的灰度閾值;過濾模塊在一幀灰度圖像中除黑邊以外的區域的灰度均值大于預設的灰度閾值時,去除所述黑邊區域。
23.一種用于視頻相似度比較的裝置,其特征在于,包括獲取模塊,用于分別獲得兩個視頻文件的各m幀指紋,每幀指紋是對一幀灰度圖像進行分塊;獲得一幀灰度圖像中各分塊的平均灰度值;根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋;相似度計算模塊,用于根據兩個視頻文件的m幀指紋,獲得兩個視頻文件關于該m幀的相似度值;比較模塊,用于判斷獲得的相似度值是否大于預設的相似度閾值,若大于,則確定兩個視頻文件關于該m幀不相似,否則確定兩個視頻文件關于該m幀相似。
24.如權利要求23所述的裝置,其特征在于,相似度計算模塊計算兩個視頻文件的m幀指紋之間的曼哈頓Manhattan距離值。
25.如權利要求23所述的裝置,其特征在于,每個視頻文件中的m幀為去除劇烈變化的連續多幀后的m幀。
26.如權利要求25所述的裝置,其特征在于,還包括過濾模塊,用于獲得視頻文件中每相鄰兩幀之間的漢明距離;確定連續多幀中是否有超過預設比例數量的幀之間的漢明距離大于預設的距離閾值,若是,則確定該連續多幀為劇烈變化的連續多幀并去除。
27.如權利要求23所述的裝置,其特征在于,所述兩個視頻文件中的一個視頻文件為基礎指紋庫中的基礎視頻文件,另一個視頻文件為待查詢視頻文件;比較模塊還用于將待查詢視頻文件的多組m幀指紋分別與基礎視頻文件的多組m幀指紋進行相似性比較;所述裝置還包括關系模塊,用于根據比較結果確定待查詢視頻文件與基礎視頻文件之間的內容包含關系;所述裝置還包括更新模塊,用于根據獲得的內容包含關系更新基礎指紋庫。
28.如權利要求27所述的裝置,其特征在于,待查詢視頻文件的多組m幀為待查詢視頻文件中等長的切片的一部分,且該多組m幀與切片的長度和不超過基礎視頻文件中多組 m幀所構成的最短媒體片段的長度。
29.如權利要求27所述的裝置,其特征在于,內容包含關系包括完全無重疊、不完全重疊、基礎視頻文件被包含于待查詢視頻文件、和基礎視頻文件包含待查詢視頻文件。
30.如權利要求四所述的裝置,其特征在于,關系模塊若待查詢視頻文件中的多組m幀指紋均在基礎視頻文件中對應有比較結果相同的m幀指紋,則確定基礎視頻文件包含待查詢視頻文件;若基礎視頻文件中的多組m幀指紋均在待查詢視頻文件中對應有比較結果相同的m幀指紋,則確定基礎視頻文件被包含于待查詢視頻文件;若待查詢視頻文件的多組m 幀指紋中部分幀指紋比較結果相同,則確定待查詢視頻文件與基礎視頻文件之間不完全重疊;若待查詢視頻文件中的多組m幀指紋均未在基礎視頻文件中對應有比較結果相同的m 幀指紋,則確定待查詢視頻文件與基礎視頻文件之間完全無重疊。
31.如權利要求四所述的裝置,其特征在于,內容包含關系為完全無重疊時,更新模塊將待查詢視頻文件歸入基礎指紋庫;內容包含關系為不完全重疊時,更新模塊將待查詢視頻文件歸入基礎指紋庫;內容包含關系為基礎視頻文件被包含于待查詢視頻文件時,更新模塊在基礎指紋庫中用待查詢視頻文件替換基礎視頻文件。
32.如權利要求27所述的裝置,其特征在于,更新模塊需要根據多個待查詢視頻文件更新基礎指紋庫時,確定每個待查詢視頻文件在基礎指紋庫中的存儲位置,根據該存儲位置對待查詢視頻文件進行排序,按照排序后的順序將待查詢視頻文件更新到基礎指紋庫。
全文摘要
本發明公開了一種提取視頻指紋的方法,用于實現對視頻指紋的提取,以較準確的標識視頻,并有利于通過該指紋進行視頻的相似度比較和入庫管理等。所述方法包括對視頻文件中的一幀灰度圖像進行分塊;獲得一幀灰度圖像中各分塊的平均灰度值;根據各分塊的平均灰度值的相關值獲得該幀灰度圖像的指紋;將多幀灰度圖像的指紋合并,并將合并后的指紋作為視頻文件的指紋。本發明還公開了用于實現所述方法的裝置。
文檔編號H04N7/26GK102156751SQ20111010511
公開日2011年8月17日 申請日期2011年4月26日 優先權日2011年4月26日
發明者劉漢洲 申請人:深圳市迅雷網絡技術有限公司