面向大规模图像检索的层次语义索引
Hierarchical Semantic Indexing for Large Scale Image Retrieval
目錄
摘要
1 介紹 Introduction
2 相關工作 Related Work
3 運用層次結構的檢索 Exploiting Hierarchy for Retrieval
3.1 語義相似度的層次編碼
?3.2 學習語義屬性
?4 高效索引 Efficient Indexing
5 實驗 Experiment?
?5.1 數據集和評估標準
5.2 層次檢索?
5.3 平面檢索
5.4 跨類別泛化
5.5 高效索引
6 結論 Conclusion
摘要
本文討論的是相似圖像檢索的問題,特別是在百萬到十億級別的大規模數據集上。核心新貢獻是一個利用先進的語義層次知識的方法。?當語義標簽和與它們相關的層次結構在訓練中可用時,相似圖像檢索會獲得顯著的改進。一些優勢來源于使用額外的信息的能力,我們的實驗探索一種特殊的情況——在沒有額外提供數據的情況下,新方法的表現也勝過了目前相似度學習領域的最先進方法OASIS。對于規模更大的問題,利用層次關系是最重要的,因為在這些問題中,可擴展性變得至關重要。我們提出的學習方法基本上是可并行的,因此比以前的工作更易于擴展。一個額外的貢獻是一種新的散列方案(a hashing scheme),它可以減少檢索計算上的開銷(對于概率向量上的雙線性相似性,可以選擇考慮層次結構)。
1 介紹 Introduction
本文探討的主要問題:給定一個查詢圖像,在大的圖像集中找到與之相似的圖像,如下圖。
上圖是使用層次結構的檢索與不考慮層次結構的檢索的對比。綠色的條塊表示該圖像再分類層次結構中的定義與查詢用圖像的基本相似度(見5.2節)。條塊越長表示相似度越高。
結果顯示:使用層次關系可以顯著地改善檢索精確度。包含層次關系隨著數據集變大而變得越來越重要。當類別是密集采樣的且必須進行細粒度區分時,潛在的好處最大。為了處理大規模數據,計算上的性能和可擴展性是在檢索中運用層次的關鍵。
我們的方法論證了如何高效地將定義在圖像語義屬性上的層次結構與先驗的人類知識相結合。例如,給定語義屬性像是包含馬、狗,或者風車,一個預定義的層次結構可能會讓我們知道,一張包含馬的圖像比起包含風車的圖像,與包含一只狗的圖像更為相似。根據語義屬性來規定層次結構是可行的,但是用低級特征直接來做是很困難的。
當前最先進的相似圖像檢索技術水平來自大量的,學習用于檢索的基本相似性函數的工作上。這些工作的目標是,學習出一個直接從圖像的低級特征向量中計算相似度的函數,并且不允許可以編碼層次結構的各種方法。改編其中一些策略,使其能夠考慮使用層次結構是可能的,但是需要改變技術,并且改善方法的可擴展性和并行性并不是必需的。
我們的方法走了一條不同的路,學習去識別圖像的語義屬性,然后用一個預定義的比較函數——基于一個已知的層次結構,來生成檢索的相似度分數。學習識別語義屬性很容易并行,因此具有良好的可擴展性。我們指出,在現有的最先進水平上的顯著進步在兩種情況下是可能的:標簽和層次結構已知,或者標簽可以被推斷出,但是層次結構是不可用的。然而,當標簽不可用也不能被推出,我們提出的技術就不再適合。一旦確定了相似度函數,下一個挑戰就是針對層次相似度,查詢最相似的數據庫圖像的高效檢索。
本文提出了一種新的哈希策略,該策略為檢索提供了一個次線性時間解決方案,并形成了一個通用的組件。
2 相關工作 Related Work
主要回顧了層次結構、相似度學習、語義索引,以及哈希檢索方面的相關工作。
本文我們論證了使用層次結構來開展一項不同但是又有關聯的任務——相似圖像檢索——能夠獲得精確度上的顯著進步。
目前的許多改進都源于以語義層次結構的形式利用高級知識。這和目前對高級語義屬性的識別顯式估計的研究相關。尤其是允許檢索查詢使用語言來描述人臉的語義屬性。目前的工作考慮到一種和我們使用的語義表征在內核上相似的表征法,但是它關注的是用這種表征來分類——使用多次訓練的樣例來作為分類的具體查詢,而不是將單個示例作為查詢。在多媒體和信息檢索領域也有相關工作。
在我們的工作中,使用概率向量的雙線性相似度檢索是核心的程序,我們也提出了一種新的哈希模式來完成這一工作。請注意,與目前基于學習視覺哈希函數的方法相反的是,它是一種數據獨立的哈希方法。
3 運用層次結構的檢索 Exploiting Hierarchy for Retrieval
為了在檢索中使用層次結構,我們考慮將估計兩張圖像的相似度作為核心程序。檢索包括從一個大數據集中找到和查詢圖像相似度最高的那些圖像。
左側是從前的工作,與之對比的是右側我們的工作。我們將學習相似度函數劃分為兩個部分,一個是對語義標簽的概率估計,還有一個是層次比較函數。層次比較函數是從先驗知識上確定地建立的,只學習語義模型。
像上圖描述的那樣,我們計算相似度的方法:
- 首先基于低級圖像特征,估計一張圖像語義屬性的概率
- 接下來我們使用語義層次關系的先驗知識,確定地計算一個層次相似度矩陣,,相似度函數是(見3.1和3.2節)。
這種方法不僅允許使用層次知識,而且學習過程只需要建立語義屬性的模型——比之前的學習相似度方法更容易并行。
3.1 語義相似度的層次編碼
?我們方法的核心是使用語義屬性間的層次先驗知識來計算檢索的相似度。
?首先,我們討論一個相似度的非概率版本,并通過一組二元語義屬性來描述圖像。屬性可以是對象分類(“是狗”),部分相關(“有腿”),視覺描述(“是黑色的”),或任何對圖像的表述。我們會主要關注對象的分類,因為它的應用和研究都是最廣泛的。
給定屬性,兩張圖像和之間的相似度可以被它們的屬性匹配程度來衡量。特別地,令作為有個屬性的圖像的標志函數。定義相似度為:
?????????????????????????? ????????????????
是屬性和之間的匹配分數。這是一種非常普遍的形式,包含一大類語義相似性。對于對象類別屬性,占支配地位的關系是“is a”關系,它能夠自然地將它們組織成語義層次結構。在這種情況下,可以通過測算“類別”相對于“層次結構”的鄰近程度來導出。例如,?令,是分類和的最小公共祖先,是某個實函數,它在層次結構中是非遞減的,也即:最小公共祖先的層級越低,類別和就越相似。
?例如:“是驢”比起“是鍵盤”來,與“是馬”更加相似。因為“是驢”和“是馬”的最小公共祖先是“馬科動物”,和“是鍵盤”的最小公共祖先是“物品”。更具體的基于節點的高度。請注意,當僅靠手動建立的層次結構不可用時,這里還有一些獲得屬性相似度的其他可能方法,例如文本自動挖掘。
一個特殊的情況是,當屬性是相互排斥的類別且是單位矩陣時,只能簡單地指示和是否屬于同一類別。我們將其稱為“平面”環境,因為屬性之間不存在層級關系。屬性可以被看作相同的或不同的,針對這種相似性進行優化的檢索系統將無法在給定查詢“驢”的情況下將“馬”的排名高于“鍵盤”。這是發展和評估現有的技術的環境。
遇到的兩個問題:
- 自然語言本身是不明確的,且類別也存在交疊。永遠會存在物體不屬于某一個確切的分類的情況
- 完美的語義屬性分類是不現實的
因此,代替二元標志的使用,我們將圖像看作是一個向量,其中,即含有屬性的圖像的概率。給定圖像和它們的概率向量,我們將相似度重新定義為非概率版本的期望,即
??????????????????????????????????????????????????????
或
??????????????????????????????????????????????????????????????????????????????????????????????????
?這是假定圖像彼此獨立,且對于絕大多數的檢索有效。我們將這種形式的相似度稱作雙線性相似度。
?3.2 學習語義屬性
給定先驗矩陣,計算雙線性相似度,一個最關鍵的步驟是學習語義屬性的模型并獲取概率。
為了獲得屬性表征概率,我們首先為每個語義屬性獨立地學習二元分類器。例如,在類別屬性的情況下,我們為每個類別訓練一個1對多的線性SVM。接下來,我們將分類器的輸出標定為概率。在我們的實驗中,我們為每個SVM分類器擬合一個sigmoid函數,用來將輸出轉換為概率。對那些非重疊的類別,我們進一步規范化概率為和為1的向量。
和現有的相似度學習算法對比,我們的模式可以通過簡單的在檢索時間內重置先驗矩陣,適應新的相似度測量方法,而不需要對屬性模型進行重學習。
?4 高效索引 Efficient Indexing
我們提出了一種新的基于局部敏感哈希的新技術,來達到雙線性相似度的次線性檢索時間。關鍵是要在一系列hash函數上構建或,和相互獨立。對于一個查詢,在數據庫的bin?中檢索并重排序,輸出最終的結果。在實踐中,可以連接多個哈希函數以減少錯誤沖突,并使用多個哈希表來增加召回率。
對于我們的雙線性相似度,其中是概率向量。我們非正式地提供了S的充分條件和相應的構造技術的理論結果:
?和我們最近的一個相關技術是求近似cosine相似度的隨機超平面LSH,。能夠算出和的夾角,這與我們計算L2范式距離不同。我們會在5.5節中對比實驗表現。
5 實驗 Experiment?
?5.1 數據集和評估標準
- Caltech256:我們使用Caltech256來和現有的相似度學習算法比較
- ILSVRC :我們使用ILSVRC來實現大規模實驗
兩個數據集都為每張圖像指派了一個標簽,其中ILSVRC已經按層次結構組織好了。對于每個數據集,我們都進行劃分,分為訓練集和測試集。我們使用訓練集來學習語義模型,用測試集來評估檢索表現。我們通過暴力掃描來獲得最k個近鄰。
我們使用一個基于排序的評估標準。給定一個圖像和之間的相似度函數?,這個函數可用于分配排序r,對于一個查詢圖像,對應個圖像。當時,。令為基本事實或期望值時的相似度函數,我們可以根據精確度來評估一個查詢q下的k個數據的樣本:
?????????????????????????????????????????????????????
5.2 層次檢索?
設是類別和類別的最小公共祖先的高度,一個結點的高度是它到它的一個葉子節點的最長路徑的長度(葉子節點的高度為0)。類別和類別之間的相似度被定義為,是根節點的高度(ILSVRC中根節點的高度是19)。所有類別和自身的相似度都是1。我們可以定義有著基本正確類的圖像a和的圖像b之間的基本正確相似度。精確度計算公式同上,用于“查詢”和前k個返回圖像之間的平均類相似度除以數據集的最大可能相似性(完美值為1)。
我們將這個標準稱為層次精度。
將我們利用層次編碼先驗矩陣的雙線性相似度(B-Hie)與不同的基線進行比較:
- SPM:根據SPM直方圖的交叉核來排序圖像,不使用學習,基于低級特征的方法。
- Hard-Assign:將查詢圖像分類到最相似的類別,然后根據屬于這個最相似的類別的概率來排列其他的類別,等價于通過注釋進行檢索。
- Cosine-NoCal:使用語義分類器原始輸出的余弦相似度,無需進行概率校準
- Cosine-Flat:利用概率的余弦相似性,和Cosine-NoCal一樣不需要進行概率校準。
- Cosine-Hie:與層次編碼S的雙線性相似性相同,但不使用L2歸一化概率向量
- B-Flat:使用雙線性相似性,但不在先驗矩陣中編碼層次結構,即S設置為恒等式
?左圖:我們的方法——使用層次編碼先驗矩陣的雙線性相似度的層次精確度(B-Hie)與其他的比較。中圖:我們的方法的平面精確度(B-Flat)與其他進行比較。右圖:100個分類的子集上的平地精確度。使用100個分類中的訓練數據表現最佳,但是與在900個類上訓練(不包括任何一個100個測試集分類)對比之下,直接使用SPM而不進行任何訓練更為有利。
根據上圖,我們可以得出:
5.3 平面檢索
? 我們的方法是基于層次檢索的。然而,大多數現有工作都針對一種特殊情況進行了優化,即如果兩幅圖像來自同一類別,則它們之間的平面相似度為1,否則為0。頂k處的檢索精度,如上面的等式所定義的那樣,前k個檢索精確度也就是——與用于查詢的圖像來自同一類的圖像的百分比。我們將這個標準稱為平面精度。?
? 為了有效地與現有的工作進行比較,我們將檢索中的先驗矩陣設置為單位矩陣,使雙線性相似度能夠適應這種特殊情況。
我們使用線性SVM作為語義分類器,與參考文獻中使用同樣的特征來訓練,參數通過5折交叉驗證來決定。訓練集和測試集按比例進行5次隨機的劃分(每個類40張訓練圖像和25張測試圖像)。下圖顯示,我們的方法和OASIS幾乎同等水平,而顯著好于其他所有算法。此外,我們的模式更加高效。對于50個類(單個CPU),OASIS需要用96秒的時間完成一次,而我們的方法完成50個線性SVM和sigmoid函數的概率估計(包括確定參數C的5次隨機劃分實驗,每次實驗都有5折交叉驗證)只需要12秒。
?接下來,我們要在更大的數據集ILSVRC上,比較我們的方法和OASIS方法。
這里應該是看這張圖:
?可以看到在更大的數據集和更高的特征維度上,OASIS的表現比SPM還要差。請注意,OASIS是順序執行的,而我們的方法可以輕松實現并行性,獨立地訓練每個語義分類器。
5.4 跨類別泛化
使用語義屬性的一個潛在好處是對新類別的泛化能力。我們想要評估我們的方法在沒見過的類別上的泛化能力,在1000個ILSVRC語義屬性中,只有900個用于構建語義表示,而檢索僅針對在訓練期間沒見過的圖像的類別進行評估。
這里的結果要看這張圖:
雖然性能低于在訓練中看到這些類別的示例圖像時的性能,但對于大部分檢索列表,性能仍優于原始特征比較基線。
5.5 高效索引
暴力線性掃描將獲得1.0的掃描開銷和最大的精確度。可以通過調整哈希表的數目和散列函數的數目來用精確度換取開銷。將我們的散列技術與最廣泛應用的隨機超平面LSH進行檢索上的比較。通過重復選擇超平面,根據向量x在哪一側從而進行投影,隨機超平面LSH近似于余弦相似度。為了公平比較,設置我們的先驗矩陣為單位矩陣,同時使用平面精確度作為評估。同時使用相同的哈希值。
?上圖是掃描開銷和精確度的曲線。我們的雙線性LSH達到了0.15的精確度,非常接近線性掃描的精確度0.17,同時只在0.1%的數據庫點上執行。表現顯著好于隨機超平面LSH。
6 結論 Conclusion
我們提出了一種使用語義層次結構先驗知識的相似圖像檢索方法,它在面對大規模的檢索任務時也有很好的可擴展性。?實驗顯示,增加層次知識可以顯著地提高檢索的表現。我們也展示了一個不完全的版本系統——不含先驗的層次信息——與現有的最先進的相似度函數學習OASIS在使用的訓練信息上一致,我們的方法可以用更少的計算來達到更高的精確度,同時也有更好的并行性。最后,我們的貢獻是一個概率分布上的雙線性相似度散列方案,在我們的實驗環境中,能夠提供高效的(次線性)檢索,可能會對許多應用有廣泛應用價值。
這就完成了一個用于大規模分層檢索的端到端系統,該系統具有固有的并行性、線性時間的訓練、次線性時間的檢索,并且比現有技術具有更好的準確性和可擴展性
總結
以上是生活随笔為你收集整理的面向大规模图像检索的层次语义索引的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spark Stream 流式处理
- 下一篇: 村村通工程(Prim算法)