本發(fā)明涉及視頻技術(shù)領(lǐng)域,尤其涉及匹配視頻的方法、應(yīng)用及計算設(shè)備。
背景技術(shù):
在視頻壓縮、視頻搜索等應(yīng)用場景中,視頻匹配技術(shù)被廣泛應(yīng)用。目前,視頻匹配算法通?;趫D像幀的二維空間進行處理。換言之,對于視頻序列中每幀圖像的每個像素點,通常將其鄰域塊作為其對應(yīng)的圖像塊?,F(xiàn)有匹配技術(shù)通過匹配圖像塊的相似度來確定像素點之間的相似度。
然而,現(xiàn)有的圖像塊匹配方式并沒有很好考慮視頻幀序列在時間維度上的關(guān)聯(lián)性。
因此,本發(fā)明提出了一種新的匹配視頻的技術(shù)方案。
技術(shù)實現(xiàn)要素:
為此,本發(fā)明提供一種新的匹配視頻的技術(shù)方案,有效的解決了上面至少一個問題。
根據(jù)本發(fā)明的一個方面,提供一種匹配視頻的方法,適于在移動終端中執(zhí)行。該方法包括下述步驟。獲取待匹配的第一視頻和第二視頻。分別以第一視頻和第二視頻中、每幀圖像的每個像素點為中心,選取本幀上預(yù)定窗口大小的圖像塊,和選取該像素點前后相鄰多幀上相應(yīng)空間位置的圖像塊,并將從本幀和前后相鄰多幀上所選取的圖像塊作為該像素點對應(yīng)的視頻塊。分別對第一視頻的視頻塊和第二視頻的視頻塊,執(zhí)行沃爾什-哈達瑪變換,以便將每個視頻塊中至少一部分視頻特征集中到預(yù)定維度。提取每個經(jīng)變換的視頻塊的預(yù)定維度的信息作為該視頻塊的特征信息。選定第一視頻的視頻塊的特征信息中一個維度,并基于所選定維度建立關(guān)于第一視頻的所有視頻塊的特征信息的K維樹(Kd-tree)。對于第二視頻的每個待匹配視頻塊的特征信息,從所建立的K維樹中搜索與其相似度最高的特征信息作為其對應(yīng)的匹配特征信息。
可選地,在根據(jù)本發(fā)明的匹配視頻的方法中,分別對第一視頻的視頻塊和第二視頻的視頻塊,執(zhí)行沃爾什-哈達瑪變換,以便將每個視頻塊中至少一部分視頻特征集中到預(yù)定維度的步驟包括,對于每個待變換的視頻塊,根據(jù)下述公式進行變換:
其中,Hn為哈達瑪矩陣,V為待變換的視頻塊的矩陣,為經(jīng)過變換的視頻塊的矩陣。
可選地,在根據(jù)本發(fā)明的匹配視頻的方法中,基于所選定維度建立關(guān)于第一視頻的所有視頻塊的特征信息的K維樹(Kd-tree)的操作包括,遞歸執(zhí)行建立樹結(jié)構(gòu)的操作,直到所有最低級的左子樹和最低級的右子樹各自結(jié)點數(shù)量小于閾值。其中,每次所執(zhí)行的建立樹結(jié)構(gòu)的操作包括下述步驟。對于屬于要建立的樹結(jié)構(gòu)的視頻塊的特征信息,將在所選定維度為中值的視頻塊的特征信息作為要建立樹結(jié)構(gòu)的根結(jié)點。將在該維度小于該中值的特征信息分配到該根結(jié)點的左子樹。將在該維度大于該中值的特征信息分配到該根結(jié)點的右子樹。
可選地,在根據(jù)本發(fā)明的匹配視頻的方法中,對于第二視頻的每個待匹配視頻塊的特征信息,從所建立的關(guān)于第一視頻的K維樹中搜索與其相似度最高的特征信息作為其對應(yīng)的匹配特征信息的步驟包括,對待匹配的視頻塊的特征信息、遞歸執(zhí)行選定子樹的操作,直到選定子樹為最低級的左子樹中一個或最低級的右子樹中一個。其中,每次執(zhí)行選定子樹的操作包括下述步驟。判斷當(dāng)前所選定樹的根結(jié)點在所選定維度是否大于該待匹配的特征信息。在大于該待匹配的特征信息時,選定當(dāng)前樹的左子樹。在小于該待匹配的特征信息時,選定當(dāng)前樹的右子樹。計算該待匹配的特征信息與所選定的最低級的子樹中每個結(jié)點的相似度,并將相似度最高的結(jié)點作為所述匹配特征信息。
可選地,在根據(jù)本發(fā)明的匹配視頻的方法中,計算該待匹配的視頻塊的特征信息與所選定的最低級的子樹中每個結(jié)點的相似度的操作包括下述步驟。根據(jù)下述公式計算待匹配的視頻塊的特征信息與所選定的最低級的子樹中任一個結(jié)點的歐式距離:
其中,p表示待匹配的視頻塊的特征信息,q表示所選定的最低級的子樹中一個結(jié)點,p和q均為N維向量。根據(jù)所計算得到的歐式距離,確定p和q的相似度。
可選地,根據(jù)本發(fā)明的匹配視頻的方法還包括下述步驟?;诖ヅ湟曨l塊對應(yīng)像素點的鄰域中至少一部分像素點、對應(yīng)的最低級子樹,依次計算所述待匹配視頻塊的特征信息與該對應(yīng)的最低級子樹中結(jié)點的相似度。在本次計算所得最高相似度大于當(dāng)前的匹配特征信息對應(yīng)的相似度時,更新該匹配特征信息為本次最高相似度對應(yīng)的結(jié)點。
可選地,根據(jù)本發(fā)明的匹配視頻的方法還包括下述步驟。基于所述待匹配視頻塊對應(yīng)像素點的前后相鄰多幀中至少一幀、相應(yīng)空間位置上像素點對應(yīng)的最低級子樹,依次計算該待匹配視頻塊的特征信息與所對應(yīng)的最低級子樹中結(jié)點的相似度。在本次計算所得最高相似度大于當(dāng)前的匹配特征信息對應(yīng)的相似度時,更新該匹配特征信息為本次最高相似度對應(yīng)的結(jié)點。
根據(jù)本發(fā)明又一個方面,提供一種匹配視頻的應(yīng)用,適于駐留在計算設(shè)備中。該應(yīng)用包括獲取單元、分塊單元、特征提取單元、K維樹構(gòu)建單元和匹配單元。獲取單元適于獲取待匹配的第一視頻和第二視頻。分塊單元適于分別以第一視頻和第二視頻中、每幀圖像的每個像素點為中心,選取本幀上預(yù)定窗口大小的圖像塊,和選取該像素點前后相鄰多幀上相應(yīng)空間位置的圖像塊。分塊單元將從本幀和前后相鄰多幀上所選取的圖像塊作為該像素點對應(yīng)的視頻塊。特征提取單元適于分別對第一視頻的視頻塊和第二視頻的視頻塊,執(zhí)行沃爾什-哈達瑪變換,以便將每個視頻塊中至少一部分視頻特征集中到預(yù)定維度。特征提取單元提取每個經(jīng)變換的視頻塊的預(yù)定維度的信息作為該視頻塊的特征信息。K維樹構(gòu)建單元適于選定第一視頻的視頻塊的特征信息中一個維度,并基于所選定維度建立關(guān)于第一視頻的所有視頻塊的特征信息的K維樹(Kd-tree)。對于第二視頻的每個待匹配的視頻塊的特征信息,匹配單元適于從所建立的K維樹中搜索與其相似度最高的特征信息作為其對應(yīng)的匹配特征信息。
根據(jù)本發(fā)明的又一個方面,提供一種計算設(shè)備,包括:根據(jù)本發(fā)明的匹配視頻的應(yīng)用。
綜上,根據(jù)本發(fā)明的匹配視頻的技術(shù)方案可以建立三維視頻塊(即視頻塊包含一個像素點在領(lǐng)域以及時間維度上的相關(guān)信息),并且通過沃爾什-哈達瑪變換將每個視頻塊的多個維度上分散的特征信息進行集中化。在此基礎(chǔ)上,本發(fā)明的技術(shù)方案可以對視頻塊進行降維操作,并通過低維度的特征信息來表征原來高維度的視頻塊。進一步,本發(fā)明的技術(shù)方案可以將待搜索的視頻(即本發(fā)明中第一視頻)的特征信息的集合,構(gòu)建為K維樹結(jié)構(gòu)。這樣,本發(fā)明的匹配視頻的技術(shù)方案可以快速地對K維樹進行搜索,并確定與待匹配的視頻塊(即本發(fā)明中第二視頻的視頻塊)相似度較高的一個集合范圍(即本發(fā)明中所選定的最低級子樹)。進一步,本發(fā)明的匹配視頻的技術(shù)方案可以從該集合范圍中快速選定與待匹配的視頻塊的特征信息相似度最高的一個結(jié)點,并將該結(jié)點作為匹配特征信息。另外,本發(fā)明的匹配視頻的技術(shù)方案通過在前后相鄰幀上相應(yīng)位置或者鄰域像素點對應(yīng)的最低級子樹中搜索與待匹配特征信息相似度最高的節(jié)點,可以進一步提高匹配準(zhǔn)確度。
附圖說明
為了實現(xiàn)上述以及相關(guān)目的,本文結(jié)合下面的描述和附圖來描述某些說明性方面,這些方面指示了可以實踐本文所公開的原理的各種方式,并且所有方面及其等效方面旨在落入所要求保護的主題的范圍內(nèi)。通過結(jié)合附圖閱讀下面的詳細描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯。遍及本公開,相同的附圖標(biāo)記通常指代相同的部件或元素。
圖1示出了根據(jù)本發(fā)明一些實施例的計算設(shè)備100的示意圖;
圖2示出了根據(jù)本發(fā)明一些實施例的匹配視頻的方法200的流程圖;
圖3示出了根據(jù)本發(fā)明一個實施例的圖像幀序列的示意圖;
圖4A-4B分別示出了根據(jù)本發(fā)明一個實施例中建立K維樹過程的示意圖;
圖5示出了根據(jù)本發(fā)明又一些實施例的匹配視頻的方法500的流程圖;以及
圖6示出了根據(jù)本發(fā)明一些實施例的匹配視頻的應(yīng)用600的示意圖。
具體實施方式
下面將參照附圖更詳細地描述本公開的示例性實施例。雖然附圖中顯示了本公開的示例性實施例,然而應(yīng)當(dāng)理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施例所限制。相反,提供這些實施例是為了能夠更透徹地理解本公開,并且能夠?qū)⒈竟_的范圍完整的傳達給本領(lǐng)域的技術(shù)人員。
圖1示出了根據(jù)本發(fā)明一些實施例的計算設(shè)備100的框圖。在基本的配置102中,計算設(shè)備100典型地包括系統(tǒng)存儲器106和一個或者多個處理器104。存儲器總線108可以用于在處理器104和系統(tǒng)存儲器106之間的通信。
取決于期望的配置,處理器104可以是任何類型的處理,包括但不限于:微處理器((μP)、微控制器(μC)、數(shù)字信息處理器(DSP)或者它們的任何組合。處理器104可以包括諸如一級高速緩存110和二級高速緩存112之類的一個或者多個級別的高速緩存、處理器核心114和寄存器116。示例的處理器核心114可以包括運算邏輯單元(ALU)、浮點數(shù)單元(FPU)、數(shù)字信號處理核心(DSP核心)或者它們的任何組合。示例的存儲器控制器118可以與處理器104一起使用,或者在一些實現(xiàn)中,存儲器控制器118可以是處理器104的一個內(nèi)部部分。
取決于期望的配置,系統(tǒng)存儲器106可以是任意類型的存儲器,包括但不限于:易失性存儲器(諸如RAM)、非易失性存儲器(諸如ROM、閃存等)或者它們的任何組合。系統(tǒng)存儲器106可以包括操作系統(tǒng)120、一個或者多個應(yīng)用122以及程序數(shù)據(jù)124。
計算設(shè)備100還可以包括有助于從各種接口設(shè)備(例如,輸出設(shè)備142、外設(shè)接口144和通信設(shè)備146)到基本配置102經(jīng)由總線/接口控制器130的通信的接口總線140。示例的輸出設(shè)備142包括圖形處理單元148和音頻處理單元150。它們可以被配置為有助于經(jīng)由一個或者多個A/V端口152與諸如顯示器或者揚聲器之類的各種外部設(shè)備進行通信。示例外設(shè)接口144可以包括串行接口控制器154和并行接口控制器156,它們可以被配置為有助于經(jīng)由一個或者多個I/O端口158和諸如輸入設(shè)備(例如,鍵盤、鼠標(biāo)、筆、語音輸入設(shè)備、觸摸輸入設(shè)備)或者其他外設(shè)(例如打印機、掃描儀等)之類的外部設(shè)備進行通信。示例的通信設(shè)備146可以包括網(wǎng)絡(luò)控制器160,其可以被布置為便于經(jīng)由一個或者多個通信端口164與一個或者多個其他計算設(shè)備162通過網(wǎng)絡(luò)通信鏈路的通信。
網(wǎng)絡(luò)通信鏈路可以是通信介質(zhì)的一個示例。通信介質(zhì)通??梢泽w現(xiàn)為在諸如載波或者其他傳輸機制之類的調(diào)制數(shù)據(jù)信號中的計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊,并且可以包括任何信息遞送介質(zhì)?!罢{(diào)制數(shù)據(jù)信號”可以這樣的信號,它的數(shù)據(jù)集中的一個或者多個或者它的改變可以在信號中編碼信息的方式進行。作為非限制性的示例,通信介質(zhì)可以包括諸如有線網(wǎng)絡(luò)或者專線網(wǎng)絡(luò)之類的有線介質(zhì),以及諸如聲音、射頻(RF)、微波、紅外(IR)或者其它無線介質(zhì)在內(nèi)的各種無線介質(zhì)。這里使用的術(shù)語計算機可讀介質(zhì)可以包括存儲介質(zhì)和通信介質(zhì)二者。
計算設(shè)備100可以實現(xiàn)為小尺寸便攜(或者移動)電子設(shè)備的一部分,這些電子設(shè)備可以包括桌面計算機和筆記本計算機配置的個人計算機。計算設(shè)備還可以被實現(xiàn)為服務(wù)器。服務(wù)器例如可以被配置為處理大量數(shù)據(jù)的集群系統(tǒng)中一個節(jié)點。
在一個典型的應(yīng)用場景中,計算設(shè)備100需要對大量視頻數(shù)據(jù)進行匹配操作。相應(yīng)地,計算設(shè)備100可以執(zhí)行匹配視頻的方法(例如,下文中方法200或500)。應(yīng)用122可以包括匹配視頻的應(yīng)用(例如下文中應(yīng)用600)。
圖2示出了根據(jù)本發(fā)明一些實施例的匹配視頻的方法200的流程圖。方法200適于在各種計算設(shè)備(100)中執(zhí)行。
如圖2所示,方法200始于步驟S210。在步驟S210中,獲取待匹配的第一視頻和第二視頻。這里,第一視頻和第二視頻均為圖像幀序列。第一視頻和第二視頻可以是RGB或YUV等各種像素格式。為了進行匹配操作,第一視頻和第二視頻的視頻幀序列的時間長度可以相同(或者大致相同),但不限于此。需要說明的是,步驟S210中所獲取的第一和第二視頻可以是計算設(shè)備中所存儲的視頻數(shù)據(jù),也可以是實時接收的網(wǎng)絡(luò)視頻包,本發(fā)明對此不做過多限制。
對于步驟S210中得到的第一和第二視頻,方法200執(zhí)行步驟S220。
在步驟S220中,分別以第一視頻和第二視頻中每幀圖像的每個像素點為中心,選取這個像素點所在圖像幀(即本幀)上預(yù)定窗口大小的圖像塊。另外,步驟S220還選取該像素點前后相鄰多幀上相應(yīng)空間位置的圖像塊。這里,相應(yīng)空間位置的圖像塊通常與本幀上圖像塊大小相同。這樣,步驟S220可以將在本幀和前后相鄰多幀上所選取的圖像塊作為這個像素點對應(yīng)的視頻塊。顯然,本步驟中獲取的視頻塊是一個三維圖像塊(不同于現(xiàn)有技術(shù)中二維圖像塊)。下面將結(jié)合圖3對步驟S220中視頻塊進行更形象的說明。
圖3示出了根據(jù)本發(fā)明一個實施例的圖像幀序列的示意圖。圖3示出了連續(xù)的T-1、T0和T1三幀圖像幀。以T0上像素點a0為例,像素點a0對應(yīng)的視頻塊包括圖像塊B0、B-1和B1。其中,B0是以像素點a1為中心的鄰域塊。應(yīng)注意,本發(fā)明對鄰域塊的窗口尺寸不做過多限制。另外,B-1和B1為圖像幀T0(即像素點a0所在的本幀)的相鄰前后幀上相應(yīng)的圖像塊。這里,B-1和B1可以與B0尺寸相同。B-1(B1)的中心像素點a-1(a1)相對于T-1(T1)的空間位置與像素點a0相對于T0的空間位置一致。盡管圖3中僅示出了T-1和T1,但不限于此,在本發(fā)明的實施例中,視頻塊也可以包括更多前后相鄰幀(即,更長時間范圍內(nèi)的圖像幀)上相應(yīng)空間位置的圖像塊。另外,對于圖像幀邊緣的像素點,步驟S220可以采用填充方式補全圖像塊,這里不再贅述。
對于步驟S220中所獲取的關(guān)于第一視頻和第二視頻的視頻塊,方法200通過步驟S230進行數(shù)據(jù)變換處理。在步驟S230中,分別對第一視頻的視頻塊和第二視頻的視頻塊,執(zhí)行沃爾什-哈達瑪變換(Walsh Hadamard transform),以便將每個視頻塊中至少一部分視頻特征集中到預(yù)定維度。
如上所述,每個視頻塊包括多個圖像塊。每個圖像塊包括多個像素點。因此,每個視頻塊是一個多維數(shù)據(jù)。每個維度的值例如是一個像素點的亮度或色度,但不限于此。經(jīng)過沃爾什-哈達瑪變換的視頻塊,其分散的視頻特征信息被集中化。通常而言,大部分視頻特征集中在變換后數(shù)據(jù)預(yù)定維度范圍中。根據(jù)本發(fā)明一個實施例,步驟S230可以通過下述公式進行數(shù)據(jù)變換:
其中,Hn為哈達瑪矩陣,V為待變換的視頻塊的矩陣,為經(jīng)過變換的視頻塊的矩陣。中特征值大部分集中在一個小范圍區(qū)域(即預(yù)定維度)中。
隨后,方法200可以執(zhí)行步驟S240,提取每個變換后視頻塊的預(yù)定維度的數(shù)據(jù),并將所提取數(shù)據(jù)作為這個視頻塊對應(yīng)的特征信息。綜上,方法200通過步驟S230和步驟S240,將每個視頻塊進行了降低維度的操作,并且降低維度后的特征信息包含了變換之前的視頻塊的大部分特征信息。這樣,表示視頻塊特征的數(shù)據(jù)量可以極大降低。
為了在第一視頻的特征信息中搜索與第二視頻中每個視頻塊相似度高的數(shù)據(jù),方法200還執(zhí)行步驟S250。在步驟S250中,選定第一視頻的視頻塊的特征信息中一個維度,并基于所選定維度建立關(guān)于第一視頻的所有視頻塊的特征信息的K維樹(Kd-tree)。根據(jù)本發(fā)明一個實施例,在步驟S250中遞歸執(zhí)行建立樹結(jié)構(gòu)的操作,直到最低級的左子樹和最低級右子樹各自結(jié)點數(shù)量小于閾值。
其中,每次執(zhí)行的建立樹結(jié)構(gòu)的操作包括下述過程。對于屬于要建立的樹結(jié)構(gòu)的視頻塊的特征信息,首先將在所選定維度為中值的視頻塊的特征信息作為要建立樹結(jié)構(gòu)的根結(jié)點。然后,將在該維度小于該中值的特征信息分配到該根結(jié)點的左子樹。另外,將在該維度大于該中值的特征信息分配到該根結(jié)點的右子樹。需要說明的是,這里所說的子樹是包含至少一個特征信息的集合。為了更形象說明本發(fā)明中K維樹的建立過程,下面結(jié)合圖4A-4B進行示例性說明。
圖4A-4B示出了根據(jù)本發(fā)明一個實施例中建立K維樹過程的示意圖。如圖4A和4B所示,第一視頻所對應(yīng)的特征信息包括Q1、Q2、Q3、Q4、Q5、Q6、Q7、Q8和Q9。這里,Q1至Q9中每個特征信息包括多個維度。Q1至Q9在選定維度的值分別是1、2、3、4、5、6、7、8和9。圖4A示出了步驟S250第一次執(zhí)行建立樹結(jié)構(gòu)操作的結(jié)果。在圖4A中,中值5所對應(yīng)的特征信息Q5被選定為根結(jié)點。Q1至Q4被分配到Q5的左子樹,Q6至Q9被分配到Q5的右子樹。本實施例中閾值例如為3,但不限于此。Q5的左右子樹中各自結(jié)點數(shù)量為4(即4個特征信息)。因此,步驟S250還要繼續(xù)執(zhí)行遞歸操作。圖4B示出了步驟S250第二次執(zhí)行建立樹結(jié)構(gòu)操作的結(jié)果。在本次操作中,對Q1至Q4建立樹結(jié)構(gòu)和對Q6至Q9建立樹結(jié)構(gòu)。Q3為根結(jié)點。Q1和Q2為Q3左子樹。Q4為Q3右子樹。類似地,Q8為根結(jié)點。Q6和Q7為Q8左子樹。Q9為Q8右子樹。顯然,Q3和Q8各自的子樹的節(jié)點數(shù)量均小于3。因此,步驟S250不需要繼續(xù)執(zhí)行遞歸操作。需要說明的是,根結(jié)點Q5的左右子樹均為第1級子樹。根結(jié)點Q3和Q8各自的子樹為第2級子樹。在圖4B示出的實施例中,第2級子樹為最低級子樹(也可以稱為葉子)。
在步驟S250所建立的K維樹的基礎(chǔ)上,方法200執(zhí)行步驟S260。對于第二視頻的每個待匹配視頻塊的特征信息,步驟S260從所建立的K維樹中搜索與其相似度最高的特征信息作為其對應(yīng)的匹配特征信息。在根據(jù)本發(fā)明一個實施例中,基于待匹配的視頻塊的特征信息,步驟S260遞歸執(zhí)行選定子樹的操作,直到選定子樹為最低級的左子樹中一個或最低級的右子樹中一個。其中,每次執(zhí)行選定子樹的操作包括下述過程。首先,判斷當(dāng)前所選定樹的根結(jié)點在所選定維度是否大于該待匹配的特征信息。在大于該待匹配的特征信息時,選定當(dāng)前樹的左子樹。在小于該待匹配的特征信息時,選定當(dāng)前樹的右子樹。
在選定最低級的子樹(葉子)時,步驟S260計算該待匹配的視頻塊的特征信息與所選定的最低級的子樹中每個結(jié)點的相似度,并將相似度最高的結(jié)點作為這個待匹配視頻塊的匹配特征信息。為了更形象說明步驟S260的執(zhí)行過程,下面以第二視頻中一個視頻塊的特征信息M1為例進行示例性說明。例如,M1在選定維度的值為2.5。步驟S260在執(zhí)行第一次選定子樹的操作時,比較M1與Q5在選定維度的大小。M1在選定維度上小于Q5,因此本次操作選定Q5的左子樹。即,以Q3為根結(jié)點的樹。隨后,步驟S260繼續(xù)執(zhí)行選定子樹的操作。在第二次選定子樹的操作中,M1在選定維度上小于Q3。因此,本次操作選定Q3的左子樹。這里,Q3的左子樹(Q1和Q2)為K維樹的最低級子樹。因此,步驟S260在第二次操作后不再執(zhí)行子樹選定操作。
在選定最低級子樹后,步驟S260繼續(xù)判斷待匹配的視頻塊的特征信息M1與所選定最低級子樹中每個結(jié)點(即,Q1和Q2)的相似度。這里,步驟S260可以選擇多種公式方式計算兩個特征信息之間的相似度。例如,步驟S260可以通過計算兩個特征信息之間的距離來確定相似度。距離越近代表相似度越高。兩個特征信息之間的距離例如可以是歐氏距離、馬氏距離或閔可夫斯基距離等,但不限于此。以歐式距離為例,步驟S260可以根據(jù)下述方式進行距離計算操作。
其中,p表示待匹配的視頻塊的特征信息,q表示所選定的最低級的子樹中一個結(jié)點,p和q均為N維向量。
綜上,根據(jù)本發(fā)明的匹配視頻的方法200可以建立三維視頻塊(即視頻塊包含一個像素點在領(lǐng)域以及時間維度上的相關(guān)信息),并且通過沃爾什-哈達瑪變換將每個視頻塊的多個維度上特征信息進行集中化。在此基礎(chǔ)上,方法200可以對視頻塊進行降維操作,并通過低維度的特征信息來表征原來高維度的視頻塊。進一步,本發(fā)明的匹配視頻的方法200可以將待搜索的一個視頻(即上文中第一視頻)的特征信息的集合,構(gòu)建為K維樹。這樣,方法200可以快速地對K維樹進行搜索,并確定與待匹配的視頻塊(即第二視頻的視頻塊)相似度較高的一個集合范圍(即上文中所選定的最低級子樹)。進一步,方法200可以從該集合范圍中快速選定與待匹配的視頻塊的特征信息相似度最高的一個結(jié)點,并將該結(jié)點作為匹配特征信息。
圖5示出了根據(jù)本發(fā)明又一些實施例的匹配視頻的方法500的流程圖。如圖5所示,方法500包括步驟S510、S520、S530、S540、S550和S560。這里,步驟S510至S560的實施方式分別對應(yīng)上文中步驟S210至S260,這里不再贅述。
可選地,方法500還可以包括步驟S570,基于待匹配視頻塊對應(yīng)像素點的鄰域中至少一部分像素點、對應(yīng)的最低級子樹,依次計算所述待匹配視頻塊的特征信息與該對應(yīng)的最低級子樹中結(jié)點的相似度。在本次計算所得最高相似度大于當(dāng)前的匹配特征信息對應(yīng)的相似度時,在步驟S270中更新匹配特征信息(即,在步驟S560中確定的最相似的特征信息)為本次最高相似度對應(yīng)的結(jié)點。
另外,方法500還可以在步驟S560或者步驟S570的基礎(chǔ)上,繼續(xù)執(zhí)行步驟S580。對于在步驟S560或者S570中確定匹配特征信息的視頻塊,步驟S580可以基于待匹配視頻塊(該視頻塊已在步驟S560或者S570中被確定匹配特征信息)對應(yīng)像素點的前后相鄰幀中至少一幀的相應(yīng)位置的像素點對應(yīng)的最低級子樹,依次計算該視頻塊的特征信息與該最低級子樹中結(jié)點的相似度。在本次計算的最高相似度大于當(dāng)前的匹配特征信息(即在步驟S560或者S570中所確定匹配特征信息)對應(yīng)的相似度時,在步驟S580中更新匹配特征信息為本次計算所得最高相似度對應(yīng)的結(jié)點。
綜上,方法500通過在前后相鄰幀上相應(yīng)位置或者鄰域像素點對應(yīng)的最低級子樹中搜索與待匹配特征信息相似度最高的結(jié)點,可以進一步提高匹配準(zhǔn)確度。
圖6示出了根據(jù)本發(fā)明一些實施例的匹配視頻的應(yīng)用600的示意圖。應(yīng)用600適于駐留在計算設(shè)備(100)中。
如圖6所示,應(yīng)用600包括獲取單元610、分塊單元620、特征提取單元630、K維樹構(gòu)建單元640和匹配單元650。
獲取單元610適于獲取待匹配的第一視頻和第二視頻。獲取單元610更具體的實施方式與上文中步驟S510一致,這里不再贅述。
分塊單元620分別以第一視頻中和第二視頻中、每幀圖像的每個像素點為中心,選取本幀上預(yù)定窗口大小的圖像塊,和選取該像素點前后相鄰多幀上相應(yīng)空間位置的圖像塊。另外,分塊單元620將從本幀和前后相鄰多幀上所選取的圖像塊作為該像素點對應(yīng)的視頻塊。分塊單元620更具體的實施方式與上文中步驟S520一致,這里不再贅述。
特征提取單元630適于分別對第一視頻的視頻塊和第二視頻的視頻塊,執(zhí)行沃爾什-哈達瑪變換,以便將每個視頻塊中至少一部分視頻特征集中到預(yù)定維度。在此基礎(chǔ)上,特征提取單元630提取每個經(jīng)變換的視頻塊的預(yù)定維度的信息作為該視頻塊的特征信息。在根據(jù)本發(fā)明一個實施例中,特征提取單元630可以根據(jù)下述公式進行沃爾什-哈達瑪變換變換。
其中,Hn為哈達瑪矩陣,V為待變換的視頻塊的矩陣,為經(jīng)過變換的視頻塊的矩陣。特征提取單元630更具體的實施方式與上文中步驟S530和S540一致,這里不再贅述。
K維樹構(gòu)建單元640適于選定第一視頻的視頻塊的特征信息中一個維度,并基于所選定維度建立關(guān)于第一視頻的所有視頻塊的特征信息的K維樹(Kd-tree)。
在根據(jù)本發(fā)明一個實施例中,K維樹構(gòu)建單元640遞歸執(zhí)行建立樹結(jié)構(gòu)的操作,直到最低級的左子樹和最低級右子樹各自結(jié)點數(shù)量均小于閾值。其中,每次所執(zhí)行的建立樹結(jié)構(gòu)操作過程如下。
首先,對于屬于要建立的樹結(jié)構(gòu)的視頻塊的特征信息,K維樹構(gòu)建單元640將在所選定維度為中值的視頻塊的特征信息作為要建立樹結(jié)構(gòu)的根結(jié)點。然后,K維樹構(gòu)建單元640將在該維度小于該中值的特征信息分配到該根結(jié)點的左子樹和將在該維度大于該中值的特征信息分配到該根結(jié)點的右子樹。K維樹構(gòu)建單元640更具體的實施方式與上文中步驟S550一致,這里不再贅述。
對于第二視頻的每個待匹配視頻塊的特征信息,匹配單元650適于從所建立的K維樹中搜索與其相似度最高的特征信息作為其對應(yīng)的匹配特征信息。在根據(jù)本發(fā)明一個實施例中,匹配單元650對待匹配的視頻塊的特征信息、遞歸執(zhí)行選定子樹的操作,直到選定子樹為最低級的左子樹中一個或最低級的右子樹中一個。
其中,每次執(zhí)行選定子樹的操作包括下述過程。匹配單元650判斷當(dāng)前所選定樹的根結(jié)點在所選定維度是否大于該待匹配的特征信息。在大于該待匹配的特征信息時,匹配單元650選定當(dāng)前樹的左子樹(即更新當(dāng)前選定樹為左子樹)。在小于該待匹配的特征信息時,匹配單元650選定當(dāng)前樹的右子樹(即更新當(dāng)前選定樹為右子樹)。
在確定最低級的子樹后,匹配單元650計算該待匹配的視頻塊的特征信息與所選定的最低級的子樹中每個結(jié)點的相似度,并將相似度最高的結(jié)點作為所述匹配特征信息。這里,匹配單元650例如可以通過計算兩個特征信息的距離來確定二者的相似度。具體地,匹配單元650例如根據(jù)下述公式計算待匹配的視頻塊的特征信息與所選定的最低級的子樹中任一個結(jié)點的歐式距離:
其中,p表示待匹配的視頻塊的特征信息,q表示所選定的最低級的子樹中一個結(jié)點,p和q均為N維向量。在此基礎(chǔ)上,匹配單元650根據(jù)所計算得到的歐式距離,確定p和q的相似度。另外,匹配單元650也可以采用馬氏距離或閔可夫斯基距離等各種公知的距離計算方式,這里不再贅述。
可選地,基于待匹配視頻塊對應(yīng)像素點的鄰域中至少一部分像素點、對應(yīng)的最低級子樹,匹配單元650還可以依次計算待匹配視頻塊的特征信息與該對應(yīng)的最低級子樹中結(jié)點的相似度。在本次計算所得最高相似度大于當(dāng)前的匹配特征信息對應(yīng)的相似度時,匹配單元650更新該匹配特征信息為本次最高相似度對應(yīng)的結(jié)點。
另外,基于待匹配視頻塊對應(yīng)像素點的前后相鄰多幀中至少一幀、相應(yīng)空間位置上像素點對應(yīng)的最低級子樹,匹配單元650還可以依次計算該視頻塊的特征信息與所對應(yīng)的最低級子樹中結(jié)點的相似度。在本次計算所得最高相似度大于當(dāng)前的匹配特征信息對應(yīng)的相似度時,匹配單元650更新該匹配特征信息為本次最高相似度對應(yīng)的結(jié)點。匹配單元650更具體的實施方式與上文中步驟S560、S570和S580一致,這里不再贅述。
A10、如A8或A9所述的應(yīng)用,其中,所述K維樹構(gòu)建單元適于根據(jù)下述方式執(zhí)行基于所選定維度建立關(guān)于第一視頻的所有視頻塊的特征信息的K維樹(Kd-tree)的操作:遞歸執(zhí)行建立樹結(jié)構(gòu)的操作,直到所有最低級的左子樹和最低級右子樹各自結(jié)點數(shù)量均小于閾值,其中,每次所執(zhí)行的建立樹結(jié)構(gòu)的操作包括:對于屬于要建立的樹結(jié)構(gòu)的視頻塊的特征信息,將在所選定維度為中值的視頻塊的特征信息作為要建立樹結(jié)構(gòu)的根結(jié)點,并將在該維度小于該中值的特征信息分配到該根結(jié)點的左子樹和將在該維度大于該中值的特征信息分配到該根結(jié)點的右子樹。A11、如A10所述的應(yīng)用,其中,對于所述第二視頻的每個待匹配的視頻塊的特征信息,所述匹配單元適于根據(jù)下述方式從所建立的關(guān)于第一視頻的K維樹中搜索與其相似度最高的特征信息作為其對應(yīng)的匹配特征信息:對待匹配的視頻塊的特征信息、遞歸執(zhí)行選定子樹的操作,直到選定子樹為所述最低級的左子樹中一個或所述最低級的右子樹中一個,其中,每次執(zhí)行選定子樹的操作包括:判斷當(dāng)前所選定樹的根結(jié)點在所選定維度是否大于該待匹配的特征信息,在大于該待匹配的特征信息時,選定當(dāng)前樹的左子樹,在小于該待匹配的特征信息時,選定當(dāng)前樹的右子樹;以及計算該待匹配的視頻塊的特征信息與所選定的最低級的子樹中每個結(jié)點的相似度,并將相似度最高的結(jié)點作為所述匹配特征信息。A12、如A11所述的應(yīng)用,其中,所述匹配單元適于根據(jù)下述方式計算該待匹配的視頻塊的特征信息與所選定的最低級的子樹中每個結(jié)點的相似度的操作:根據(jù)下述公式計算待匹配的視頻塊的特征信息與所選定的最低級的子樹中任一個結(jié)點的歐式距離:
其中,p表示待匹配的視頻塊的特征信息,q表示所選定的最低級的子樹中一個結(jié)點,p和q均為N維向量;根據(jù)所計算得到的歐式距離,確定p和q的相似度。A13、如A11或12所述的應(yīng)用,所述匹配單元還適于:基于所述待匹配視頻塊對應(yīng)像素點的鄰域中至少一部分像素點、對應(yīng)的最低級子樹,依次計算所述待匹配視頻塊的特征信息與該對應(yīng)的最低級子樹中結(jié)點的相似度,在本次計算所得最高相似度大于當(dāng)前的匹配特征信息對應(yīng)的相似度時,更新該匹配特征信息為本次最高相似度對應(yīng)的結(jié)點。A14、如A11-13中任一項所述的應(yīng)用,所述匹配單元還適于:基于所述待匹配視頻塊對應(yīng)像素點的前后相鄰多幀中至少一幀、相應(yīng)空間位置上像素點對應(yīng)的最低級子樹,依次計算該視頻塊的特征信息與所對應(yīng)的最低級子樹中結(jié)點的相似度,在本次計算所得最高相似度大于當(dāng)前的匹配特征信息對應(yīng)的相似度時,更新該匹配特征信息為本次最高相似度對應(yīng)的結(jié)點。
在此處所提供的說明書中,說明了大量具體細節(jié)。然而,能夠理解,本發(fā)明的實施例可以在沒有這些具體細節(jié)的情況下被實踐。在一些實例中,并未詳細示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對本說明書的理解。
類似地,應(yīng)當(dāng)理解,為了精簡本公開并幫助理解各個發(fā)明方面中的一個或多個,在上面對本發(fā)明的示例性實施例的描述中,本發(fā)明的各個特征有時被一起分組到單個實施例、圖、或者對其的描述中。然而,并不應(yīng)將該公開的方法解釋成反映如下意圖:即所要求保護的本發(fā)明要求比在每個權(quán)利要求中所明確記載的特征更多特征。更確切地說,如下面的權(quán)利要求書所反映的那樣,發(fā)明方面在于少于前面公開的單個實施例的所有特征。因此,遵循具體實施方式的權(quán)利要求書由此明確地并入該具體實施方式,其中每個權(quán)利要求本身都作為本發(fā)明的單獨實施例。
本領(lǐng)域那些技術(shù)人員應(yīng)當(dāng)理解在本文所公開的示例中的設(shè)備的模塊或單元或組件可以布置在如該實施例中所描述的設(shè)備中,或者可替換地可以定位在與該示例中的設(shè)備不同的一個或多個設(shè)備中。前述示例中的模塊可以組合為一個模塊或者此外可以分成多個子模塊。
本領(lǐng)域那些技術(shù)人員可以理解,可以對實施例中的設(shè)備中的模塊進行自適應(yīng)性地改變并且把它們設(shè)置在與該實施例不同的一個或多個設(shè)備中??梢园褜嵤├械哪K或單元或組件組合成一個模塊或單元或組件,以及此外可以把它們分成多個子模塊或子單元或子組件。除了這樣的特征和/或過程或者單元中的至少一些是相互排斥之外,可以采用任何組合對本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的所有特征以及如此公開的任何方法或者設(shè)備的所有過程或單元進行組合。除非另外明確陳述,本說明書(包括伴隨的權(quán)利要求、摘要和附圖)中公開的每個特征可以由提供相同、等同或相似目的的替代特征來代替。
此外,本領(lǐng)域的技術(shù)人員能夠理解,盡管在此所述的一些實施例包括其它實施例中所包括的某些特征而不是其它特征,但是不同實施例的特征的組合意味著處于本發(fā)明的范圍之內(nèi)并且形成不同的實施例。例如,在下面的權(quán)利要求書中,所要求保護的實施例的任意之一都可以以任意的組合方式來使用。
此外,所述實施例中的一些在此被描述成可以由計算機系統(tǒng)的處理器或者由執(zhí)行所述功能的其它裝置實施的方法或方法元素的組合。因此,具有用于實施所述方法或方法元素的必要指令的處理器形成用于實施該方法或方法元素的裝置。此外,裝置實施例的在此所述的元素是如下裝置的例子:該裝置用于實施由為了實施該發(fā)明的目的的元素所執(zhí)行的功能。
如在此所使用的那樣,除非另行規(guī)定,使用序數(shù)詞“第一”、“第二”、“第三”等等來描述普通對象僅僅表示涉及類似對象的不同實例,并且并不意圖暗示這樣被描述的對象必須具有時間上、空間上、排序方面或者以任意其它方式的給定順序。
盡管根據(jù)有限數(shù)量的實施例描述了本發(fā)明,但是受益于上面的描述,本技術(shù)領(lǐng)域內(nèi)的技術(shù)人員明白,在由此描述的本發(fā)明的范圍內(nèi),可以設(shè)想其它實施例。此外,應(yīng)當(dāng)注意,本說明書中使用的語言主要是為了可讀性和教導(dǎo)的目的而選擇的,而不是為了解釋或者限定本發(fā)明的主題而選擇的。因此,在不偏離所附權(quán)利要求書的范圍和精神的情況下,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。對于本發(fā)明的范圍,對本發(fā)明所做的公開是說明性的,而非限制性的,本發(fā)明的范圍由所附權(quán)利要求書限定。