亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

基于計算機系統(tǒng)的圖片相似度計算方法及其系統(tǒng)與流程

文檔序號:11829993閱讀:480來源:國知局
基于計算機系統(tǒng)的圖片相似度計算方法及其系統(tǒng)與流程

本發(fā)明涉及數(shù)據(jù)處理,特別涉及基于計算機系統(tǒng)的圖片相似度計算方法及其系統(tǒng)。



背景技術:

基于內容的圖像間相似性計算在許多場景下都有應用,常見的比如圖像聚類、圖像檢索以及基于圖像的個性化推薦等。上述場景都涉及到在離線處理階段,對圖庫中的每一張圖片,計算它與其它圖片之間的相似性(一般采用提取局部特征并通過L2距離來衡量)。但是,本發(fā)明的發(fā)明人發(fā)現(xiàn),該問題的解決存在幾個難點與挑戰(zhàn):

1)時間復雜度的問題:對于包含N張圖片的圖庫來說,時間復雜度為O(N2);隨著圖庫中圖片數(shù)量的增長,時間復雜度的增長非常快,這對于實際工業(yè)應用中是非常不適合的。

2)空間復雜度的問題:上述O(N2)的時間復雜度僅存在于數(shù)據(jù)量較小的情況(即所有圖片的特征都能加載到計算機的內存中)。對于海量圖片相似性計算,所有提取到的特征無法一次性全部加載進內存中,因此會涉及到大量的數(shù)據(jù)交換以及磁盤IO(輸入輸出)的問題,實際的時間復雜度會遠大于O(N2)。

3)數(shù)據(jù)結構的問題:因為要求是海量數(shù)據(jù)集合下,每張圖片與其它的圖像都計算一次相似度,所以這個問題很難直接使用現(xiàn)有的分布式系統(tǒng)來做并行化處理。



技術實現(xiàn)要素:

本發(fā)明的目的在于提供一種基于計算機系統(tǒng)的圖片相似度計算方法及其系統(tǒng),提高了大規(guī)模圖片間相似度的計算效率并且適用于分布式系統(tǒng)。

為解決上述技術問題,本發(fā)明的實施方式公開了一種基于計算機系統(tǒng)的圖片相似度計算方法,方法包括以下步驟:

提取圖片的至少一個特征,并將特征量化為視覺詞;

為每一視覺詞建立倒排索引記錄,倒排索引記錄包含圖片標識;

獲取每一倒排索引記錄中的圖片標識列表,并將圖片標識列表中的圖片標識兩兩配對;

在所有圖片標識對中合并相同的圖片標識對;

對于經合并的各圖片標識對計算相應的兩個圖片之間的相似度。

本發(fā)明的實施方式還公開了一種基于計算機系統(tǒng)的圖片相似度計算系統(tǒng),系統(tǒng)包括:

量化單元,用于提取圖片的至少一個特征,并將特征量化為視覺詞;

倒排索引單元,用于為每一視覺詞建立倒排索引記錄,倒排索引記錄包含圖片標識;

配對單元,用于獲取每一倒排索引記錄中的圖片標識列表,并將圖片標識列表中的圖片標識兩兩配對;

合并單元,用于在所有圖片標識對中合并相同的圖片標識對;以及

計算單元,用于對于經合并的各圖片標識對計算相應的兩個圖片之間的相似度。

本發(fā)明實施方式與現(xiàn)有技術相比,主要區(qū)別及其效果在于:

在本發(fā)明中,通過將相應于各視覺詞的圖片標識列表中的圖片標識兩兩 配對來獲取至少具有一個相似特征的圖片對,并對這些圖片對進行相似度計算,可以提高大規(guī)模圖片間相似度的計算效率,并且該方法適用于分布式計算系統(tǒng),使得海量圖片間相似度的計算成為可能。

進一步地,在獲取和合并圖片標識對的同時,對相應于各圖片標識對的兩個圖片進行相似度計算,可以進一步提高計算效率。

進一步地,預先存儲相應于各圖片標識的模,從而在進行相似度計算時使用,以提高計算效率。

附圖說明

圖1是本發(fā)明第一實施方式中一種基于計算機系統(tǒng)的圖片相似度計算方法的流程示意圖;

圖2是本發(fā)明第一實施方式中MapReduce框架的結構示意圖;

圖3是本發(fā)明第一實施方式中在MapReduce框架下統(tǒng)計詞頻的流程圖;

圖4是本發(fā)明第二實施方式中一種基于MapReduce建立倒排索引的示意圖;

圖5是本發(fā)明第二實施方式中一種基于MapReduce計算圖片相似度的示意圖;

圖6是本發(fā)明第三實施方式中一種基于計算機系統(tǒng)的圖片相似度計算系統(tǒng)的結構示意圖。

具體實施方式

在以下的敘述中,為了使讀者更好地理解本申請而提出了許多技術細節(jié)。但是,本領域的普通技術人員可以理解,即使沒有這些技術細節(jié)和基于 以下各實施方式的種種變化和修改,也可以實現(xiàn)本申請各權利要求所要求保護的技術方案。

為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā)明的實施方式作進一步地詳細描述。

本發(fā)明第一實施方式涉及一種基于計算機系統(tǒng)的圖片相似度計算方法。圖1是該基于計算機系統(tǒng)的圖片相似度計算方法的流程示意圖。如圖1所示,該方法包括以下步驟:

在步驟101中,提取圖片的至少一個特征,并將特征量化為視覺詞。

可以理解,可以采用BoW模型(Bag-of-words model,中文一般稱為“文檔向量模型”)對圖片特征進行量化。視覺詞可以由部分圖片來表示,該部分圖片攜帶有顏色、形狀、紋理、或是像素變化等特征信息。

BoW模型最早出現(xiàn)在NLP(自然語言處理)和IR(信息檢索)領域。該模型忽略掉文本的語法和語序,用一組無序的單詞(words)來表達一段文字或一個文檔。近年來,BoW模型被廣泛應用于計算機視覺中。與應用于文本的BoW類比,圖像的特征(feature)被當作視覺詞(Visual Word)。最早是Fei-fei Li提出了用BoW模型表達圖像的方法。他們認為,圖像可以類比為文檔(document),圖像中的單詞(words)可以定義為一個圖像塊(image patch)的特征向量。那么圖像的BoW模型即是“圖像中所有圖像塊的特征向量得到的直方圖”。一般來說,建立BoW模型主要分為如下幾個步驟:

1.特征提取

假設有N張圖像,第i張圖像可由n(i)個image patch組成,也即可以由n(i)個特征向量表達。則總共能得到sum(n(i))個特征向量(即單詞)。特征向量可以根據(jù)特征問題自行設計,常用特征有Color histogram(顏色直方圖),SIFT(Scale-invariant feature transform,簡稱“尺度不變特征轉換”),LBP(Local Binary Patterns,簡稱“局部二值模式”)等。

2.生成字典/碼本(codebook)

在特征向量數(shù)量較多時,對上一步得到的特征向量進行聚類(可以使用K-means、x-means、層次聚類等聚類方法),得到K個聚類中心,用聚類中心構建碼本??梢岳斫猓谀承┨囟ㄇ闆r下,也可以不對特征向量進行聚類。

3.根據(jù)碼本生成直方圖

對每張圖片,通過最近鄰計算該圖片的每個“單詞”應該屬于codebook中的“哪一類”單詞,從而得到該圖片對應于該碼本的BoW表示。

由上可以看到,在使用BoW模型對圖片特征進行量化時,在步驟101前還包括以下步驟:

提取訓練樣本中的圖片的至少一個特征;

將從上述訓練樣本中的圖片提取的特征進行聚類,以形成多個聚類中心,并為每個聚類中心設置唯一的視覺詞。這些視覺詞的集合為視覺詞典。

當然,可以理解,在本發(fā)明的其他實施方式中,也可以采用其他圖片量化模型對圖片特征進行量化。

此后進入步驟102,為每一視覺詞建立倒排索引記錄,倒排索引記錄包含圖片標識。

此后進入步驟103,獲取每一倒排索引記錄中的圖片標識列表,并將圖片標識列表中的圖片標識兩兩配對。

此后進入步驟104,在所有圖片標識對中合并相同的圖片標識對。

此后進入步驟105,對于經合并的各圖片標識對計算相應的兩個圖片之間的相似度??梢岳斫?,在本發(fā)明的各個實施方式中,可以使用余弦相似度、結構相似度或其他相似度算法來計算圖片相似度。

此后結束本流程。

在本實施方式的方法中,通過將相應于各視覺詞的圖片標識列表中的圖片標識兩兩配對來獲取至少具有一個相似特征的圖片對,并對這些圖片對進行相似度計算,可以提高大規(guī)模圖片間相似度的計算效率,并且該方法適用于分布式計算系統(tǒng),使得海量圖片間相似度的計算成為可能。

優(yōu)選地,上述方法在MapReduce框架下實現(xiàn),其中在Map階段實施步驟103,在Reduce階段實施步驟105。

可以理解,MapReduce是一種編程模型,用于大規(guī)模數(shù)據(jù)集(大于1TB)的并行運算。概念"Map(映射)"和"Reduce(歸約)",和他們的主要思想,都是從函數(shù)式編程語言里借來的,還有從矢量編程語言里借來的特性。他極大地方便了編程人員在不會分布式并行編程的情況下,將自己的程序運行在分布式系統(tǒng)上。當前的軟件實現(xiàn)是指定一個Map(映射)函數(shù),用來把一組鍵值對映射成一組新的鍵值對,指定并發(fā)的Reduce(歸約)函數(shù),用來保證所有映射的鍵值對中的每一個共享相同的鍵組。

在MapReduce中,基本的數(shù)據(jù)結構是“Key-Value對”,類似于哈希表中的鍵值對。如圖2所示,MapReduce算法的基本思想是:

map:(k1,v1)→[(k2,v2)]

reduce:(k2,[v2])→[(k3,v3)]

總結來說,Map階段對輸入的每一對Key/Value對,按照一定的邏輯分別生成一個或多個Key/Value中間對;然后Reduce階段對相同Key的一組Value進行計算并輸出最終結果。圖3給出了一個使用MapReduce統(tǒng)計詞頻的流程圖,分別通過輸入、拆分、映射、重排、歸約等步驟得到最終結果。

此外,可以理解,在本發(fā)明的其他實施方式中,上述方法也可以采用其他分布式系統(tǒng)來實現(xiàn)。

本發(fā)明第二實施方式涉及一種基于計算機系統(tǒng)的圖片相似度計算方法。第二實施方式在第一實施方式的基礎上進行了改進,進一步提高了圖片相似 度的計算效率。具體地說:

在獲取和合并圖片標識對的同時,對相應于各圖片標識對的兩個圖片進行相似度計算,可以進一步提高計算效率。

在信息檢索中,每個詞條擁有不同的度,一個文檔是由一個由有權值的特征向量表示的,權值的計算取決于詞條在該文檔中出現(xiàn)的頻率。余弦相似度因此可以給出兩篇文檔其主題方面的相似度(similarity)。參考如下公式:

<mrow> <mi>similarity</mi> <mo>=</mo> <mi>cos</mi> <mrow> <mo>(</mo> <mi>&theta;</mi> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <mi>A</mi> <mo>&CenterDot;</mo> <mi>B</mi> </mrow> <mrow> <mo>|</mo> <mo>|</mo> <mi>A</mi> <mo>|</mo> <mo>|</mo> <mo>|</mo> <mo>|</mo> <mi>B</mi> <mo>|</mo> <mo>|</mo> </mrow> </mfrac> <mo>=</mo> <mfrac> <mrow> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msub> <mi>A</mi> <mi>i</mi> </msub> <mo>&times;</mo> <msub> <mi>B</mi> <mi>i</mi> </msub> </mrow> <mrow> <msqrt> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>A</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </msqrt> <mo>&times;</mo> <msqrt> <munderover> <mi>&Sigma;</mi> <mrow> <mi>i</mi> <mo>=</mo> <mn>1</mn> </mrow> <mi>n</mi> </munderover> <msup> <mrow> <mo>(</mo> <msub> <mi>B</mi> <mi>i</mi> </msub> <mo>)</mo> </mrow> <mn>2</mn> </msup> </msqrt> </mrow> </mfrac> </mrow>

在信息檢索的情況下,由于一個詞的頻率(TF-IDF權重)不能為負數(shù),所以這兩個文檔的余弦相似性范圍從0到1。并且,兩個詞的頻率向量之間的角度不能大于90°。

以上述的余弦相似度為例,每一視覺詞的倒排索引記錄還包含圖片標識相應于該視覺詞的權重值。該權重值表示圖片中量化為該視覺詞的特征個數(shù)。

在步驟103中,將各圖片標識對中的兩個圖片標識的權重值相乘,作為各圖片標識對相應于各視覺詞的權重值。

在步驟104中,在合并相同的圖片標識對時,將相同的圖片標識對相應于各視覺詞的各權重值相加。

在步驟105中,對于經合并的各圖片標識對,將相加后的各權重值進行歸一化處理,以得到相應的兩個圖片之間的相似度。

此外,可以理解,在本發(fā)明的其他實施方式中,也可以采用其他相似度算法,則倒排索引記錄中可以相應地包含所需要的圖片信息,并在各步驟中進行計算。

作為可選實施方式,在步驟105中,使用預先存儲的相應于各圖片標識的模進行歸一化處理??梢岳斫猓鄳诟鲌D片標識的??梢栽趫D片量化為 視覺詞后,進行歸一化處理前的任一時候進行計算并存儲。優(yōu)選地,在步驟102中,對各圖片標識的模進行計算。

預先存儲相應于各圖片標識的模,從而在進行相似度計算時使用,以提高計算效率。

以下將以BoW模型和余弦相似度為例進一步對上述方法的實現(xiàn)進行詳細描述。

上述方法可以通過以下三個模塊來實現(xiàn):【詞典訓練】、【倒排索引建立】以及【圖片間相似性計算】。其中【詞典訓練模塊】可以在單機上完成,而【倒排索引建立】與【圖片間相似性計算】兩個模塊是在Hadoop系統(tǒng)上運行。Hadoop實現(xiàn)了一個分布式文件系統(tǒng)(Hadoop Distributed File System),簡稱HDFS。HDFS有高容錯性的特點,并且設計用來部署在低廉的(low-cost)硬件上;而且它提供高吞吐量(high throughput)來訪問應用程序的數(shù)據(jù),適合那些有著超大數(shù)據(jù)集(large data set)的應用程序。HDFS放寬了(relax)POSIX(可移植操作系統(tǒng)接口)的要求,可以以流的形式訪問(streaming access)文件系統(tǒng)中的數(shù)據(jù)。Hadoop的框架最為核心的設計就是:HDFS和Map-Reduce。HDFS為海量的數(shù)據(jù)提供了存儲,而MapReduce為海量的數(shù)據(jù)提供了計算。

可以理解,在本發(fā)明的其實施例中,【倒排索引建立】與【圖片間相似性計算】兩個模塊也可以在其他分布式系統(tǒng)中運行。上述模塊具體闡述如下:1.詞典訓練:

1)訓練樣本選擇:一般訓練過程不需要選用圖庫中所有的圖片,只需要隨機抽取一定比例(保證特征可以順利加載進內存)即可。

2)特征提取:對訓練樣本中的圖片提取特征,主要采用局部特征(一般是SIFT(Scale-invariant feature transform)或者SURF(Speeded Up Robust Features)),并映射到同一特征空間中去??梢岳斫?,局部特征一般包含圖 像中的部分空間范圍。

3)聚類:對上述步驟中生成的特征空間采用聚類算法(比如K均值聚類等),生成K個聚類;其中的K個聚類中心形成的集合稱為視覺詞典V。可以理解,在某些特定情況下,也可以不對特征進行聚類。

4)量化:采用BoW的思想,將每張圖片的每一個特征都量化為V中的一個視覺詞(采用最近鄰的原則)。對于任意一張圖像d,都可以用一個向量Wd來表示,該向量包含了一系列權重值wt,d。這里的Wd是一個稀疏的向量,其中僅有一小部分權重為非零值。根據(jù)余弦相似度的計算公式,兩張圖片的相似性可以用下式來表示:

<mrow> <mi>sim</mi> <mrow> <mo>(</mo> <msub> <mi>d</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>d</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <munder> <mi>&Sigma;</mi> <mrow> <mi>t</mi> <mo>&Element;</mo> <mi>V</mi> </mrow> </munder> <msub> <mi>w</mi> <mrow> <mi>t</mi> <mo>,</mo> <msub> <mi>d</mi> <mi>i</mi> </msub> </mrow> </msub> <mo>&CenterDot;</mo> <msub> <mi>w</mi> <mrow> <mi>t</mi> <mo>,</mo> <msub> <mi>d</mi> <mi>j</mi> </msub> </mrow> </msub> </mrow> <mrow> <mo>|</mo> <msub> <mi>W</mi> <msub> <mi>d</mi> <mi>i</mi> </msub> </msub> <mo>|</mo> <mo>&CenterDot;</mo> <mo>|</mo> <msub> <mi>W</mi> <msub> <mi>d</mi> <mi>j</mi> </msub> </msub> <mo>|</mo> </mrow> </mfrac> </mrow>

上述公式中,僅當每一個視覺詞在兩個文檔中都出現(xiàn)時,才會對兩者的相似度計算產生貢獻,因此上式又可以改寫為:

<mrow> <mi>sim</mi> <mrow> <mo>(</mo> <msub> <mi>d</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>d</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>=</mo> <mfrac> <mrow> <munder> <mi>&Sigma;</mi> <mrow> <mi>t</mi> <mo>&Element;</mo> <msub> <mi>d</mi> <mi>i</mi> </msub> <mo>&cap;</mo> <msub> <mi>d</mi> <mi>j</mi> </msub> </mrow> </munder> <msub> <mi>w</mi> <mrow> <mi>t</mi> <mo>,</mo> <msub> <mi>d</mi> <mi>i</mi> </msub> </mrow> </msub> <mo>&CenterDot;</mo> <msub> <mi>w</mi> <mrow> <mi>t</mi> <mo>,</mo> <msub> <mi>d</mi> <mi>j</mi> </msub> </mrow> </msub> </mrow> <mrow> <mo>|</mo> <msub> <mi>W</mi> <msub> <mi>d</mi> <mi>i</mi> </msub> </msub> <mo>|</mo> <mo>&CenterDot;</mo> <mo>|</mo> <msub> <mi>W</mi> <msub> <mi>d</mi> <mi>j</mi> </msub> </msub> <mo>|</mo> </mrow> </mfrac> </mrow>

可以理解,在本發(fā)明的其他實施例中,也可以采用其他圖片量化模型和相似度算法,不限于上述的BoW模型和余弦相似度。

2.倒排索引建立:

1)數(shù)據(jù)準備:將待處理的每一張圖片都量化為前述步驟中的向量的表達形式(圖4中示出了另一種向量表達形式,該向量包含了一系列的視覺詞ID),并且都上傳至HDFS。另外,參考前面的余弦相似度的計算公式,為了求得任意兩個向量的余弦相似度,需要分別計算每個向量的模,使用以下公式: <mrow> <mo>|</mo> <msub> <mi>W</mi> <mi>d</mi> </msub> <mo>|</mo> <mo>=</mo> <msqrt> <munder> <mi>&Sigma;</mi> <mrow> <mi>t</mi> <mo>&Element;</mo> <mi>V</mi> </mrow> </munder> <msubsup> <mi>w</mi> <mrow> <mi>t</mi> <mo>,</mo> <mi>d</mi> </mrow> <mn>2</mn> </msubsup> </msqrt> </mrow>

這一部分可以事先在這一步驟計算完成(也可以在其他步驟中計算完成);將上式計算得到的歸一化文件(即每張圖片向量的模)也保存到HDFS中;在后續(xù)計算圖片相關性的步驟中需要使用到的時候,再加載進內存即可。

2)Map階段:輸入為上一步驟存儲在HDFS中的圖片特征向量Wd,輸出是以視覺詞ID(標識)為Key(關鍵詞),以圖片ID和其在該視覺詞上的權重為Value(值)的結構??梢岳斫?,在本發(fā)明的其他實施例中,也可以根據(jù)需要,選擇其他信息作為值。

3)Shuffle(重排)階段:將上述結構自動按照Key(視覺詞ID)進行分組。

4)Reducer階段:直接將Shuffle階段的輸出寫到磁盤上。

圖4示出了一個基于Map-Reduce的倒排索引建立的例子,其中D1、D2、D3為圖片ID,101~105為視覺詞ID。Map階段輸出為“以視覺詞ID為Key,以圖片ID和權重構成的元組為Value”的結構;Shuffle階段遵從Map-Reduce的機制會將前一階段(Mapper)的所有輸出都按照Key(視覺詞ID)分組;Reduce階段將Shuffle階段的輸出直接寫進磁盤(HDFS)中,形成倒排索引文件。

3.圖片間相似性計算:

1)數(shù)據(jù)準備:使用前面步驟所輸出的倒排索引作為Map-Reduce的輸入。

2)Map階段:從輸入的每一條記錄中,獲取其中的圖片ID列表(即輸入的Value);遍歷其中的每一對可能的圖片ID對(作為輸出的Key;假設該條記錄總共包含m個圖片ID,則組合數(shù)為m(m-1)/2),計算其乘積(作為輸出的Value),輸出到下一階段。

3)Shuffle階段:Map-Reduce會自動將相同Key(即圖片ID對)的結果合并在一起,輸出到下一階段。

4)Reduce階段:將前一階段每一個Key(即圖片ID對)中的Value累加。另外,該階段還需要對結果進行歸一化處理,具體方法為:將在【倒排索引建立】階段計算所得到的歸一化文件加載至內存,并將之前累加的結果分別除以Key中圖片ID對所分別對應的兩張圖片的模。整個Reduce階段運行完畢最終輸出所有圖片間相似度的運算結果。

圖5示出了一個基于Map-Reduce的圖像間相似性計算的例子,其中D1、D2、D3為圖片ID,101~105為視覺詞ID;輸入為前一步驟生成的倒排索引文件;Map階段輸出為“以倒排文件中一組圖片ID對為Key,以兩者的權重乘積為Value”的結構;Shuffle階段遵從MapReduce的機制會將前一階段(Mapper)的所有輸出都按照Key(圖片ID對)分組;Reduce階段將Shuffle階段的輸出(一系列權重)累加,然后經過歸一化(圖中未畫出),最后寫進磁盤(HDFS)中

可以看到,上述方法使用Bow模型和Hadoop來計算構建圖像特征的倒排索引,其為一種基于MapReduce的分布式計算方法,使得海量圖像間的相似性計算成為可能。

獲得的海量圖片間的相似度可以應用于各種場景中,例如圖像檢索、圖像推薦等等,以提供更好的服務。

可以理解,以上僅為本發(fā)明的一個優(yōu)選的例子,可以根據(jù)需要添加或減少相應步驟,并進行相應的配置調整。

本發(fā)明的各方法實施方式均可以以軟件、硬件、固件等方式實現(xiàn)。不管本發(fā)明是以軟件、硬件、還是固件方式實現(xiàn),指令代碼都可以存儲在任何類型的計算機可訪問的存儲器中(例如永久的或者可修改的,易失性的或者非易失性的,固態(tài)的或者非固態(tài)的,固定的或者可更換的介質等等)。同樣,存儲器可以例如是可編程陣列邏輯(Programmable Array Logic,簡稱“PAL”)、隨機存取存儲器(Random Access Memory,簡稱“RAM”)、可 編程只讀存儲器(Programmable Read Only Memory,簡稱“PROM”)、只讀存儲器(Read-Only Memory,簡稱“ROM”)、電可擦除可編程只讀存儲器(Electrically Erasable Programmable ROM,簡稱“EEPROM”)、磁盤、光盤、數(shù)字通用光盤(Digital Versatile Disc,簡稱“DVD”)等等。

本發(fā)明第三實施方式涉及一種基于計算機系統(tǒng)的圖片相似度計算系統(tǒng)。圖6是該基于計算機系統(tǒng)的圖片相似度計算系統(tǒng)的結構示意圖。如圖6所示,該系統(tǒng)包括:

量化單元,用于提取圖片的至少一個特征,并將特征量化為視覺詞。

倒排索引單元,用于為每一視覺詞建立倒排索引記錄,倒排索引記錄包含圖片標識。

配對單元,用于獲取每一倒排索引記錄中的圖片標識列表,并將圖片標識列表中的圖片標識兩兩配對。

合并單元,用于在所有圖片標識對中合并相同的圖片標識對。以及

計算單元,用于對于經合并的各圖片標識對計算相應的兩個圖片之間的相似度??梢岳斫猓诒景l(fā)明的各個實施方式中,可以使用余弦相似度、結構相似度或其他相似度算法來計算圖片相似度。

在本實施方式的系統(tǒng)中,通過配對單元將相應于各視覺詞的圖片標識列表中的圖片標識兩兩配對來獲取至少具有一個相似特征的圖片對,并由計算單元對這些圖片對進行相似度計算,可以提高大規(guī)模圖片間相似度的計算效率,并且該方法適用于分布式計算系統(tǒng),使得海量圖片間相似度的計算成為可能。

可以理解,可以采用BoW模型對圖片特征進行量化。常用特征有Color histogram,SIFT,LBP等。視覺詞可以由部分圖片來表示,該部分圖片攜帶有顏色、形狀、紋理、或是像素變化等特征信息。

則上述系統(tǒng)還包括:

提取單元,用于提取訓練樣本中的圖片的至少一個特征。以及

聚類單元,用于將提取單元從上述訓練樣本中的圖片提取的特征進行聚類,以形成多個聚類中心,并為每個聚類中心設置唯一的視覺詞。

當然,可以理解,在本發(fā)明的其他實施方式中,也可以采用其他圖片量化模型對圖片特征進行量化。

優(yōu)選地,上述系統(tǒng)在MapReduce框架下運行,配對單元在Map階段運行,計算單元在Reduce階段運行。

此外,可以理解,在本發(fā)明的其他實施方式中,也可以采用其他分布式系統(tǒng)進行計算。

第一實施方式是與本實施方式相對應的方法實施方式,本實施方式可與第一實施方式互相配合實施。第一實施方式中提到的相關技術細節(jié)在本實施方式中依然有效,為了減少重復,這里不再贅述。相應地,本實施方式中提到的相關技術細節(jié)也可應用在第一實施方式中。

本發(fā)明第四實施方式涉及一種基于計算機系統(tǒng)的圖片相似度計算系統(tǒng)。第四實施方式在第三實施方式的基礎上進行了改進,進一步提高了圖片相似度的計算效率。具體地說:

在獲取和合并圖片標識對的同時,對相應于各圖片標識對的兩個圖片進行相似度計算,可以進一步提高計算效率。

以余弦相似度為例,每一視覺詞的倒排索引記錄還包含圖片標識相應于該視覺詞的權重值。該權重值表示圖片中量化為該視覺詞的特征個數(shù)。

上述配對單元用于將各圖片標識對中的兩個圖片標識的權重值相乘,作為各圖片標識對相應于各視覺詞的權重值。

上述合并單元用于在合并相同的圖片標識對時,將相同的圖片標識對相 應于各視覺詞的各權重值相加。

上述計算單元用于對于經合并的各圖片標識對,將相加后的各權重值進行歸一化處理,以得到相應的兩個圖片之間的相似度。

此外,可以理解,在本發(fā)明的其他實施方式中,也可以采用其他相似度算法,則倒排索引記錄中可以相應地包含所需要的圖片信息,各單元使用其進行計算。

作為可選實施方式,上述計算單元使用預先存儲的相應于各圖片標識的模進行歸一化處理。

預先存儲相應于各圖片標識的模,從而在進行相似度計算時使用,以提高計算效率。

第二實施方式是與本實施方式相對應的方法實施方式,本實施方式可與第二實施方式互相配合實施。第二實施方式中提到的相關技術細節(jié)在本實施方式中依然有效,為了減少重復,這里不再贅述。相應地,本實施方式中提到的相關技術細節(jié)也可應用在第二實施方式中。

綜上,本發(fā)明提出了一種新的方案,首先基于文本處理中常見的BoW模型來對圖像的局部特征進行量化獲取視覺詞;然后根據(jù)視覺詞來建立倒排索引;接著通過遍歷倒排索引所有可能的兩兩組合的方法來分別計算各對圖像在同一視覺詞上的相似度,最后通過累加獲得各圖像間的相似度。在上述方案的幾個主要環(huán)節(jié)中,本發(fā)明都設計了基于Hadoop和Map-Reduce的算法方案,實現(xiàn)了系統(tǒng)容量的水平可擴展和計算的并行化,從而解決了前面提出傳統(tǒng)方案的幾個問題。

通過重新設計圖像特征的索引結構以及使用Hadoop(包括HDFS文件系統(tǒng)和Map-Reduce計算框架),獲得了比傳統(tǒng)方案高幾個數(shù)量級(具體取決于圖像規(guī)模和參數(shù)設置)的計算效率,并且使得十億級別圖像相似性計算成為可能。

需要說明的是,本發(fā)明各設備實施方式中提到的各單元或模塊都是邏輯單元或模塊,在物理上,一個邏輯單元或模塊可以是一個物理單元或模塊,也可以是一個物理單元或模塊的一部分,還可以以多個物理單元或模塊的組合實現(xiàn),這些邏輯單元或模塊本身的物理實現(xiàn)方式并不是最重要的,這些邏輯單元或模塊所實現(xiàn)的功能的組合才是解決本發(fā)明所提出的技術問題的關鍵。此外,為了突出本發(fā)明的創(chuàng)新部分,本發(fā)明上述各設備實施方式并沒有將與解決本發(fā)明所提出的技術問題關系不太密切的單元或模塊引入,這并不表明上述設備實施方式并不存在其它的單元或模塊。

需要說明的是,在本專利的權利要求和說明書中,諸如第一和第二等之類的關系術語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關系或者順序。而且,術語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設備所固有的要素。在沒有更多限制的情況下,由語句“包括一個”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設備中還存在另外的相同要素。

雖然通過參照本發(fā)明的某些優(yōu)選實施方式,已經對本發(fā)明進行了圖示和描述,但本領域的普通技術人員應該明白,可以在形式上和細節(jié)上對其作各種改變,而不偏離本發(fā)明的精神和范圍。

當前第1頁1 2 3 
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1