2

我目前正在撰寫一個基於視覺詞語的圖像檢索系統的包,它與文本檢索中的矢量空間模型類似。在這個框架下,每個圖像都由一個矢量表示(有時也稱爲文獻中的直方圖)。基本上,向量中的每個數字都計算每個「視覺詞」在該圖像中出現的次數。如果2幅圖像具有「接近」在一起的矢量,這意味着它們具有許多共同的圖像特徵,因此是相似的。如何爲基於內容的圖像檢索的矢量/直方圖集合創建索引

我基本上試圖爲一組這樣的向量創建倒排文件索引。我想要一些可以從數千個(在試用階段)到數十萬甚至上百萬個圖像的數據擴展,這樣一來,自制的數據結構就無法工作。

我看過Lucene,但顯然它只是索引文本(糾正我,如果我錯了),而在我的情況下,我希望它索引數字(即矢量本身)。我已經看到人們通過以下方式將矢量轉換爲文本文檔的情況:

< 3,6,...,5> - >「w1 w2 ... wn」。基本上,任何非零的組件都被替換爲文本詞「w [n]」,其中n是該數字的索引。然後這個「文檔」被傳遞給Lucene來索引。

使用此方法的問題在於,矢量的文本表示不編碼發生特定「單詞」的頻率,因此檢索到的圖像的排名不會很好。

有誰知道一個成熟的索引API,可以處理矢量或者可能爲我的矢量提出不同的編碼方案,以便我可以繼續使用Lucene?我也查看了Lucene的圖像檢索(LIRE)項目,並試用過它附帶的演示,但運行演示時生成的例外數量使我不確定如何使用它。

至於API的語言,我向C++或Java開放。

在此先感謝您的答覆。

回答

0

您可以試試GRire這是一個Java庫,它實現了Bag of Visual Words模型。這是我的項目,我目前正在實施一個倒排索引。