廣告視頻信息庫的創(chuàng)建方法、廣告視頻識別方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明實施例屬于廣告識別領(lǐng)域,尤其涉及一種廣告視頻信息庫的創(chuàng)建方法、廣告視頻識別方法及裝置。
【背景技術(shù)】
[0002]用戶行為數(shù)據(jù)是各個商業(yè)領(lǐng)域進行客戶拓展的有用數(shù)據(jù)。
[0003]目前,獲取電視用戶行為數(shù)據(jù)的方法通常為:對原始廣告視頻進行處理,根據(jù)處理結(jié)果創(chuàng)建視頻圖像信息庫,而對原始廣告視頻進行的處理是基于Hadoop的分布式結(jié)構(gòu)。由于在Hadoop分布式文件系統(tǒng)(HDFS)中,視頻數(shù)據(jù)將根據(jù)字節(jié)被邏輯分割成多個分片(split),這使得連續(xù)的幀被分割到不同的split,因此每個split對應(yīng)的Map任務(wù)無法單獨對其對應(yīng)的split中的視頻數(shù)據(jù)進行處理,從而導致視頻數(shù)據(jù)處理速度過慢,進而導致電視用戶行為數(shù)據(jù)獲取過慢。
【發(fā)明內(nèi)容】
[0004]本發(fā)明實施例提供了一種廣告視頻信息庫的創(chuàng)建方法、廣告視頻識別方法及裝置,旨在解決現(xiàn)有方法處理視頻數(shù)據(jù)的速度過慢的問題。
[0005]本發(fā)明實施例是這樣實現(xiàn)的,一種廣告視頻信息庫的創(chuàng)建方法,所述方法包括:
[0006]從Hadoop分布式文件系統(tǒng)中獲取視頻文件分片;
[0007]獲取視頻文件分片所在的視頻文件名以及視頻頭數(shù)據(jù);
[0008]讀取并保留視頻文件分片的關(guān)鍵幀對應(yīng)的視頻數(shù)據(jù),以及讀取所述視頻文件分片的結(jié)束位置后的第一個關(guān)鍵幀;
[0009]根據(jù)所述視頻頭數(shù)據(jù)、及所述第一個關(guān)鍵幀分別解碼每個視頻文件分片,以及分別提取每個視頻文件分片的特征值;
[0010]根據(jù)所述至少一個特征值確定至少一個Key值,每個Key值對應(yīng)一個value值,所述value值由所述特征值和視頻文件名確定;
[0011 ] 存儲由所述Key值和value值組成的鍵值對。
[0012]本發(fā)明實施例的另一目的在于提供一種廣告視頻識別方法,所述方法包括:
[0013]監(jiān)控正在播放的電視頻道,截取所述電視頻道的一幀視頻圖像;
[0014]獲取所述視頻圖像的特征值;
[0015]根據(jù)所述特征值確定一個Key值,所述Key值對應(yīng)一個value值,所述value值由所述特征值和視頻圖像所屬的視頻文件名確定;
[0016]將確定的Key值與預先創(chuàng)建的廣告視頻信息庫的Key值比較,查找與所述確定的Key值相同的Key值對應(yīng)的value值;
[0017]根據(jù)所述確定的Key值對應(yīng)的value值以及所述與所述確定的Key值相同的Key值對應(yīng)的value值識別所述視頻圖像是否為廣告視頻。
[0018]本發(fā)明實施例的另一目的在于提供一種廣告視頻信息庫的創(chuàng)建裝置,所述裝置包括:
[0019]視頻文件分片獲取單元,用于從Hadoop分布式文件系統(tǒng)中獲取視頻文件分片;
[0020]視頻頭數(shù)據(jù)獲取單元,用于獲取視頻文件分片所在的視頻文件名以及視頻頭數(shù)據(jù);
[0021]第一個關(guān)鍵幀讀取單元,用于讀取并保留視頻文件分片的關(guān)鍵幀對應(yīng)的視頻數(shù)據(jù),以及讀取所述視頻文件分片的結(jié)束位置后的第一個關(guān)鍵幀;
[0022]特征值提取單元,用于根據(jù)所述視頻頭數(shù)據(jù)、及所述第一個關(guān)鍵幀分別解碼每個視頻文件分片,以及分別提取每個視頻文件分片的特征值;
[0023]Key值確定單元,用于根據(jù)所述特征值確定Key值,每個Key值對應(yīng)一個value值,所述value值由所述特征值和視頻文件名確定;
[0024]鍵值對存儲單元,用于存儲由所述Key值和value值組成的鍵值對。
[0025]本發(fā)明實施例的另一目的在于提供一種廣告視頻識別裝置,所述裝置包括:
[0026]視頻圖像截取單元,用于監(jiān)控正在播放的電視頻道,截取所述電視頻道的一幀視頻圖像;
[0027]特征值獲取單元,用于獲取所述視頻圖像的特征值;
[0028]鍵值對確定單元,用于根據(jù)所述特征值確定一個Key值,所述Key值對應(yīng)一個value值,所述value值由所述特征值和視頻圖像所屬的視頻文件名確定;
[0029]value值查找單元,用于將確定的Key值與預先創(chuàng)建的廣告視頻信息庫的Key值比較,查找與所述確定的Key值相同的Key值對應(yīng)的value值;
[0030]廣告視頻識別單元,用于根據(jù)所述確定的Key值對應(yīng)的value值以及所述與所述確定的Key值相同的Key值對應(yīng)的value值識別所述視頻圖像是否為廣告視頻。
[0031]在本發(fā)明實施例中,由于讀取了視頻文件分片的結(jié)束位置后的第一個關(guān)鍵幀,使得各個視頻文件分片互相關(guān)聯(lián),因此,能夠分別對每個視頻文件分片進行處理,從而提高了視頻數(shù)據(jù)的處理速度。
【附圖說明】
[0032]圖1是本發(fā)明第一實施例提供的一種廣告視頻信息庫的創(chuàng)建方法的流程圖;
[0033]圖2是本發(fā)明第一實施例提供的視頻頭數(shù)據(jù)傳輸示意圖;
[0034]圖3是本發(fā)明第二實施例提供的一種廣告視頻識別方法的流程圖;
[0035]圖4是本發(fā)明第三實施例提供的一種廣告視頻識別裝置的結(jié)構(gòu)圖;
[0036]圖5是本發(fā)明第四實施例提供的一種廣告視頻信息庫的創(chuàng)建裝置的結(jié)構(gòu)圖。
【具體實施方式】
[0037]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應(yīng)當理解,此處所描述的具體實施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0038]本發(fā)明實施例中,從Hadoop分布式文件系統(tǒng)中獲取視頻文件分片,根據(jù)獲取的視頻文件分片的視頻頭數(shù)據(jù)、讀取并保留視頻文件分片的關(guān)鍵幀對應(yīng)的視頻數(shù)據(jù),以及讀取所述視頻文件分片的結(jié)束位置后的第一個關(guān)鍵幀,根據(jù)所述視頻頭數(shù)據(jù)、及所述第一個關(guān)鍵幀分別解碼每個視頻文件分片,以及分別提取每個視頻文件分片的特征值,再根據(jù)所述特征值確定Key值,每個Key值對應(yīng)一個value值,所述value值由所述特征值和視頻文件名確定,存儲由所述Key值和value值組成的鍵值對。
[0039]為了說明本發(fā)明所述的技術(shù)方案,下面通過具體實施例來進行說明。
[0040]實施例一:
[0041]圖1示出了本發(fā)明第一實施例提供的一種廣告視頻信息庫的創(chuàng)建方法流程圖,詳述如下:
[0042]步驟Sll,從Hadoop分布式文件系統(tǒng)中獲取視頻文件分片。
[0043]該步驟中,利用Fuse-dfs工具,將Hadoop分布式文件系統(tǒng)(HDFS)中的視頻文件分片(split)映射到本地文件系統(tǒng)(如圖2的LocalFS)。這里的視頻文件分片為原始廣告視頻文件對應(yīng)的視頻文件分片。
[0044]步驟S12,獲取視頻文件分片所在的視頻文件名以及視頻頭數(shù)據(jù)。
[0045]利用Fuse-dfs工具,為每一個split初始化解碼器(Map),并以split所在的視頻文件名作為輸入,每個解碼器對應(yīng)的函數(shù)從視頻文件的第一個split(視頻頭數(shù)據(jù)所在地)中讀入視頻頭數(shù)據(jù),即視頻頭數(shù)據(jù)向每一個解碼Map任務(wù)節(jié)點傳送一份,如圖2所示。
[0046]步驟S13,讀取并保留視頻文件分片的關(guān)鍵幀對應(yīng)的視頻數(shù)據(jù),以及讀取所述視頻文件分片的結(jié)束位置后的第一個關(guān)鍵幀。
[0047]其中,關(guān)鍵幀相當于二維動畫中的原畫,指角色或者物體運動或變化中的關(guān)鍵動作所處的那一幀,視頻文件的關(guān)鍵幀通常為I幀。
[0048]該步驟中,split塊的大小與預定的BlocK大小相同,spl it的邏輯分割位置按照BlocK起止字節(jié)位置定義,解碼讀取split的視頻數(shù)據(jù)時,將在spl it起始位置讀取到的非關(guān)鍵幀數(shù)據(jù)丟棄,直到讀到第一個關(guān)鍵幀才開始保留讀取的視頻數(shù)據(jù);當讀到spI i t的結(jié)束位置時,繼續(xù)讀取,直到讀取到split結(jié)束位置后的第一個關(guān)鍵幀為止。
[0049]可選地,所述讀取并保留視頻文件分片的關(guān)鍵幀對應(yīng)的視頻數(shù)據(jù),以及讀取所述視頻文件分片的結(jié)束位置后的第一個關(guān)鍵幀,具體包括:
[0050]Al、讀取視頻文件分片起始位置的幀,判斷所述視頻文件分片起始位置的幀是否為關(guān)鍵幀。
[0051]A2、在所述視頻文件分片起始位置的幀為關(guān)鍵幀時,保留所述關(guān)鍵幀對應(yīng)的視頻數(shù)據(jù),在所述視頻文件分片起始位置的幀不為關(guān)鍵幀時,忽略所述關(guān)鍵幀對應(yīng)的視頻數(shù)據(jù)。
[0052]A3、繼續(xù)讀取視頻文件分片的下一幀,并判斷讀取的視頻文件分片的下一幀是否為關(guān)鍵幀,直到讀取到視頻文件分片的結(jié)束位置后的第一個關(guān)鍵幀才結(jié)束讀取。
[0053]上述Al?A3中,由于讀取了視頻文件分片的結(jié)束位置后的第一個關(guān)鍵幀,保留了后繼幀的信息,因此,便于后續(xù)單獨對每個split中的視頻數(shù)據(jù)進行處理,提高處理速度。
[0054]需要指出的是,由于視頻文件分片(split)的起始位置的幀通常為非關(guān)鍵幀,為了加快讀取速度,可采用以下讀取方法:
[0055]a.忽略spl it起始位置的非關(guān)鍵幀;
[0056]b.讀取spl it的下一個幀;
[0057]c.判斷是否為I幀(關(guān)鍵幀),若不是,則轉(zhuǎn)到步驟b,若是I幀,則進入步驟d;
[0058]d.將該幀映射到一個Map節(jié)點(一個畫面組映射到一個Map節(jié)點);
[0059]e.繼續(xù)讀取下一幀;
[0060]f.判斷是否是split結(jié)束位置后的第一個I幀,若是則結(jié)束讀取,否則轉(zhuǎn)至步驟d。
[0061]步驟S14,根據(jù)所述視頻