日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

视觉检索:视频多帧排序

發(fā)布時(shí)間:2025/3/21 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 视觉检索:视频多帧排序 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

背景與問(wèn)題

每一個(gè)視頻抽取n幀,n是變化的,有的視頻長(zhǎng)抽的幀數(shù)多,有的視頻短抽的幀數(shù)相應(yīng)的也少一些。在索引的時(shí)候,將所有視頻的幀都索引在一起。對(duì)于查詢的視頻,同樣抽取視頻幀,假設(shè)抽取到了m幀,那么問(wèn)題來(lái)了,對(duì)這m幀的查詢結(jié)果,其排序邏輯該如何設(shè)計(jì)?

多幀相似性度量

對(duì)于文章開(kāi)頭提出的問(wèn)題,可以先對(duì)其進(jìn)行簡(jiǎn)化,先思考這樣一個(gè)問(wèn)題:兩個(gè)視頻,如何度量?jī)蓚€(gè)視頻的相似性(引申問(wèn)題:如果校驗(yàn)兩個(gè)圖片或兩個(gè)視頻是重復(fù)的)?

如果兩個(gè)視頻,其提取的特征是視頻維度的全局特征,即每個(gè)視頻最終表示成了一個(gè)全局向量表示(比如iDT、C3D等特征),那么度量?jī)蓚€(gè)視頻間的相似性時(shí),可以直接計(jì)算它們之間的余弦相似性或者歐式距離等。這樣固然最省事,但在實(shí)際應(yīng)用中,當(dāng)視頻存量上億,并且還有源源不斷的視頻添加進(jìn)來(lái)時(shí),顯然基于視頻維度提特征的方式因?yàn)楹馁M(fèi)資源太大而無(wú)法得以在具備實(shí)時(shí)性要求的場(chǎng)景中加以應(yīng)用。因而實(shí)際中在對(duì)視頻內(nèi)容做相關(guān)理解與分析的時(shí)候,往往是基于抽幀的方式(如何抽幀以及是否做關(guān)鍵幀檢測(cè)在此不表)。在獲取到視頻的幀后,可以在此基礎(chǔ)上提取視頻維度的特征,或者提取幀級(jí)別的特征。

小白菜簡(jiǎn)單地總結(jié)視頻維度特征與幀級(jí)別特征(類(lèi)似全局特征和局部特征)的優(yōu)劣:

  • 視頻維度特征:考慮了時(shí)空維度信息,有利于表述整個(gè)視頻發(fā)生的事件等全局信息,表達(dá)的特征更緊湊;
  • 幀級(jí)別特征:最大的缺陷在于未考慮視頻時(shí)間維的信息,將幀與幀之間孤立起來(lái)了。當(dāng)然幀級(jí)別的特征,其對(duì)視頻空間信息的特征描述的力度更細(xì)一些,在某些場(chǎng)景中,比如校驗(yàn)兩個(gè)視頻是否是重復(fù)視頻,基于幀級(jí)別的特征反而更適用;

一般而言,抽取視頻維度的特征通常是非常耗時(shí)的。因而,實(shí)際面向視頻的應(yīng)用,除非場(chǎng)景應(yīng)用非常有價(jià)值且規(guī)模不大可能會(huì)使用視頻維度的特征,大部分的視頻內(nèi)容理解往往是基于幀級(jí)別的特征。現(xiàn)在回到本節(jié)開(kāi)頭的問(wèn)題:兩個(gè)視頻,如何度量?jī)蓚€(gè)視頻的相似性?這個(gè)問(wèn)題小白菜曾在機(jī)器視覺(jué):Asymmetry Problem in Computer Vision中介紹累積最小(最大)距離非對(duì)稱(chēng)問(wèn)題時(shí)有涉及過(guò),可以看出,累積最小(最大)距離極其符合該應(yīng)用場(chǎng)景。因而,對(duì)于兩個(gè)視頻,要度量?jī)蓚€(gè)視頻的相似性,可以采用累積最小(最大)距離,即:

?

S(X,Y)=∑i=1i=n∑j=1j=mdmin(xi,yj)S(X,Y)=∑i=1i=n∑j=1j=mdmin(xi,yj)

累積最小(最大)距離在應(yīng)用的時(shí)候,可能會(huì)出現(xiàn)A視頻中的多個(gè)幀匹配到B視頻中的一幀或交叉匹配的情況(視頻序列是時(shí)序的)。對(duì)于這種情況,在算幀匹配的時(shí)候,可以使用動(dòng)態(tài)規(guī)劃(DP)方法避免出現(xiàn)多幀和一幀匹配或交叉匹配,并確保得到的S(X,Y)S(X,Y)又是最小的。當(dāng)然,直接計(jì)算累積最小(最大)距離也依然是很好的。實(shí)際應(yīng)用中,這種基于累積最小(最大)距離的多幀相似度度量經(jīng)受住了應(yīng)用的考驗(yàn),而且計(jì)算效率比采用DP避免交叉匹配方式更高,并且效果很理想。

有了兩個(gè)視頻間多幀相似性的度量,將其拓展到一個(gè)query視頻跟N個(gè)視頻的相似性排序,就相比比較直觀了。下面分別對(duì)暴力搜索多幀排序和OPQ多幀排序予以介紹,OPQ多幀排序是暴力搜索多幀排序的繼承,只不過(guò)在對(duì)每幀查詢的時(shí)候,使用的是OPQ索引,而暴力搜索則是直接query。

暴力搜索多幀排序

在不需要實(shí)時(shí)處理、對(duì)召回要求很高并且不是很頻繁查詢的場(chǎng)景,比如回溯任務(wù)中,暴力搜索仍然是一種值得推薦的搜索方法。原因有二:

  • 一是特征性能發(fā)揮到最大,從而保證最好的召回率;
  • 二是在特征維度不是很高的情況下(幾百維,如果是CNN特征且維度較高,比如上千維,可以降到128d或者512d,損失精度通常很小),通過(guò)SSE加速,距離的計(jì)算也可以算得很快。

對(duì)于多幀排序,其排序邏輯建立在兩個(gè)視頻多幀相似性度量上,即對(duì)于一個(gè)query視頻,庫(kù)中的每個(gè)視頻在與query視頻做相似性度量的時(shí)候,均應(yīng)采用上一節(jié)指出的累積最小(最大)距離分別計(jì)算相似度。在實(shí)際計(jì)算的時(shí)候,這種逐個(gè)視頻計(jì)算的方式可以優(yōu)化為query視頻與N個(gè)視頻進(jìn)行內(nèi)積運(yùn)算(特征在提取的時(shí)候進(jìn)行了L2L2歸一化)的方式,然后對(duì)相似性矩陣做排序處理,假設(shè)query視頻幀數(shù)是mm幀,庫(kù)中共NN個(gè)視頻,每一個(gè)視頻取nn幀,則相似性矩陣大小為m×(N?n)m×(N?n),即每一行對(duì)應(yīng)query視頻某一幀查詢后排序的結(jié)果,如下圖所示:

上圖中,qF1表示查詢視頻的第1幀,AF1表示視頻A的第1幀,后面以此類(lèi)推。對(duì)該排完序后的相似性矩陣,我們需要對(duì)每i(i=0,…,m)i(i=0,…,m)行取出視頻id對(duì)應(yīng)的最大的值(因?yàn)橛?jì)算的是余弦相似度)作為該幀對(duì)應(yīng)各視頻id的結(jié)果,這個(gè)過(guò)程可以用下圖來(lái)直觀的表述出來(lái):

如上圖所示,以qF1幀查詢?yōu)槔?#xff0c;由于已經(jīng)對(duì)該幀查詢的結(jié)果按相似性進(jìn)行的排序,因而qF1幀查詢對(duì)A視頻查詢的結(jié)果為AF1,其余以此類(lèi)推。最后對(duì)這m幀經(jīng)過(guò)最大值篩選后的結(jié)果,按視頻id進(jìn)行相似性分?jǐn)?shù)的歸并,最終得到多幀相似性排序分?jǐn)?shù),即:

A視頻分?jǐn)?shù):AF1+AF2+AF1+...+AF3 B視頻分?jǐn)?shù):BF1+BF1+BF1+...+BF1 C視頻分?jǐn)?shù):CF1+CF3+0.0+...+0.0

上面假設(shè)C視頻對(duì)于查詢視頻的每幀,在設(shè)置得閾值條件下無(wú)返回結(jié)果,因而用分?jǐn)?shù)0.0來(lái)表示(可以視為將所有的結(jié)果在初始化的時(shí)候初始化為0)。實(shí)際query的時(shí)候,對(duì)于每一幀的查詢結(jié)果,不需要將所有的查詢結(jié)果返回回來(lái),可以通過(guò)設(shè)置一個(gè)相似度閾值只返回一定數(shù)目的結(jié)果,相似度太小的返回來(lái)了也沒(méi)什么用,徒增計(jì)算量和浪費(fèi)資源,這樣處理后排序、篩選、合并的計(jì)算量大大降低了。

OPQ多幀排序

在對(duì)實(shí)時(shí)性有要求的場(chǎng)景,比如上傳一個(gè)視頻,需要從海量的視頻庫(kù)中召回相同或者相似的那些視頻,顯然暴力搜索多幀排序無(wú)法滿足要求,需要以某種近似最近鄰搜索方法來(lái)構(gòu)建索引。關(guān)于近似最近鄰搜索方法,在此前的博文如圖像檢索:再敘ANN Search以及其他的博文中有過(guò)很多的介紹,這里僅以O(shè)PQ為例來(lái)介紹ANN多幀排序方法。

OPQ多幀排序方法和暴力搜索多幀排序都是基于多幀相似性度量,不同的是,由于OPQ(或PQ)計(jì)算的非對(duì)稱(chēng)距離,其算出來(lái)的值越小,表示兩者越相似,而暴力搜索采用的是余弦相似度,其值越大表示兩者越相似。因而,對(duì)于OPQ多幀排序邏輯,在設(shè)計(jì)的時(shí)候,似乎只需要為排序初始化的分?jǐn)?shù)初始化一個(gè)比較合理的值,這里只對(duì)返回所有結(jié)果做初始化,下面是詳細(xì)的OPQ多幀排序。

對(duì)于某查詢視頻queryVid,假設(shè)queryVid有m幀(f1,f2,…,fm)(f1,f2,…,fm),對(duì)于第i幀查詢,在距離閾值小于0.1的條件下,返回了k個(gè)結(jié)果(r1,r2,…,rk)(r1,r2,…,rk),然后對(duì)這m幀的結(jié)果按視頻id進(jìn)行最小值選取與合并。舉個(gè)簡(jiǎn)單的例子,假設(shè)某次查詢視頻只有3幀,下面是每幀查詢返回的結(jié)果:

查詢視頻第f1幀返回的結(jié)果: A1, B1, E1, C1, D1, B2, E2 查詢視頻第f2幀返回的結(jié)果: B1, C2, D1, C1, E1 查詢視頻第f3幀返回的結(jié)果: A2, C1, B2, D2, E1, D1

對(duì)于查詢視頻第f1幀返回的結(jié)果,假設(shè)A1?B1?E1?C1?D1?B2?E2?1.0A1?B1?E1?C1?D1?B2?E2?1.0,后面查詢的同理。對(duì)上面每幀查詢的結(jié)果,按視頻id取最小值,得下面結(jié)果:

查詢視頻第f1幀返回的結(jié)果: A1, B1, E1, C1, D1 查詢視頻第f2幀返回的結(jié)果: B1, C2, D1, E1 查詢視頻第f3幀返回的結(jié)果: A2, C1, B2, D2, E1

對(duì)于第f2幀返回的結(jié)果,給A視頻我們置一個(gè)比較大的閾值,比如上面提過(guò)的置為1.0來(lái)代替,表示第f2幀作為查詢時(shí),與A視頻相似度差得比較大。之后,便可按視頻id對(duì)結(jié)果進(jìn)行合并了:

A視頻分?jǐn)?shù):A1+1.0+A2 B視頻分?jǐn)?shù):B1+B1+B2 C視頻分?jǐn)?shù):C1+C2+C1 D視頻分?jǐn)?shù):D1+D1+D2 E視頻分?jǐn)?shù):E1+E1+E1

然后再對(duì)A、B、C、D、E視頻上面求和后的分?jǐn)?shù)從小到大排序,得到的便是最終多幀查詢排序的結(jié)果。整個(gè)過(guò)程在實(shí)現(xiàn)的時(shí)候,可以采用partial_sort方法來(lái)完成,關(guān)于partial_sort的用法,可以參考理解你的排序操作。

無(wú)論是對(duì)于暴力搜索多幀排序、還是OPQ多幀排序,在采用了上述介紹的累積最小(最大)距離的多幀相似度度量后,跟之前采用的基于倒排查詢相比,查詢效果取得了極大的提升。另外對(duì)于OPQ多幀排序的結(jié)果,還可以對(duì)前top@K的結(jié)果做一次重排,能夠?qū)⒗鄯e最小(最大)距離的多幀相似度度量的檢索準(zhǔn)確率發(fā)揮到最大的程度。

總結(jié)

在本篇博文中,小白菜以多幀索引及排序?yàn)橹黝}進(jìn)行了一些討論,包括了

  • 多幀相似性度量
  • 暴力搜索多幀排序
  • OPQ多幀排序

3個(gè)方面的內(nèi)容,這些內(nèi)容在視頻搜索上一般都會(huì)涉及。關(guān)于多幀索引及排序的問(wèn)題,學(xué)術(shù)上能夠查詢的論文比較少,這里小白菜結(jié)合自己的理解以及應(yīng)用實(shí)踐總結(jié)了小部分的經(jīng)驗(yàn),希望對(duì)遇到這方面問(wèn)題的小伙伴有些參考的價(jià)值,也歡迎在一線從事CBIR的小伙伴拍磚交流。

from:?http://yongyuan.name/blog/multi-frames-ranking-problem.html?

總結(jié)

以上是生活随笔為你收集整理的视觉检索:视频多帧排序的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。