相似图像识别检 —基于图像签名(LSH)
???? ? ? 原文鏈接:http://grunt1223.iteye.com/blog/828192
??????? 參考:人工智能,一種現(xiàn)代方法 第 617頁,且原始論文給出了完整的證明過程。在ANN方法中,LSH算一種可靠的緊鄰算法。少量檢索使用KNN、大量檢索使用K-Dtree、海量檢索使用LSH,超海量檢索使用......
一、引言
多媒體識別是信息檢索中難度較高且需求日益旺盛的一個問題。以圖像為例,按照圖像檢索中使用的信息區(qū)分,圖像可以分為兩類:基于文本的圖像檢索和基于內容識別的圖像檢索(CBIR:Content Based Image Retrieval)。基于文本的圖像檢索完全不分析和利用圖像本身的內容,其檢索質量完全依賴于與圖像關聯(lián)的文字信息與圖像內容的相關性,因此有必要引入基于內容的圖像檢索。本為主要討論后者。
在計算機視覺中,圖像內容通常用圖像特征進行描述。事實上,基于計算機視覺的圖像檢索也可以分為類似文本搜索引擎的三個步驟:提取特征、建索引build以及查詢。本文也按照這三步來分別闡述。
二、圖像特征的提取
目前互聯(lián)網上的圖像識別可以歸結為兩類問題,其一是“近重復檢索”,主要是針對同一源圖經過不同形變(包括光照、水印、縮放、局部缺失替換等)的檢索,或是針對大體類似的物件進行識別,主要應用在版權保護、違禁識別、圖片去重以及基本的相似檢索等等;其二是“局部檢索”,指的是兩張圖片中只要有部分物件重復,即可匹配到,比如我們可以想象,不同offer的模特不一樣,但只要她們都跨了同一款LV包,就可以認為是相似圖像,即實現(xiàn)真正意義上的圖像檢索。
與此相對應的,圖像特征也可以分成兩類:全局特征與局部特征。大部分圖像簽名算法都是利用圖像的全局特征來描述一幅圖像的內容,例如,顏色直方圖、色彩分布、形狀或者邊緣信息等等,用一個字符串或是數(shù)組來作為一幅圖像的hash值。
總的來說,全局特征是對圖像內容高度抽象的概括,只回答了“圖像是什么”,而大多數(shù)場合以用戶的視角來看,更希望回答“圖像有什么”。例如,用戶在檢索圖像時,經常更加關心的是圖像中的場景、物體或者特定的任務,單單一個全局特征無法區(qū)分些信息,因此引入了局部特征。其中最為著名的就是“基于尺度不變特征變換的圖像檢索”,Scale Invariant Feature Transform,也就是大名鼎鼎的SIFT。其基本思想是將圖像打散為許多高維特征點,因此將互聯(lián)網上的圖片已視覺詞庫的形式加以保存。由于SIFT特征在描述向量時不受尺度變換和旋轉的影響,對圖像噪音、仿射變形、光照變化以及三維視角皆不敏感,因此具有極強的區(qū)分度,被廣泛應用于物體識別、視頻追蹤、場景識別、圖像檢索等問題。
為簡單起見,本文主要討論基于全局特征的圖像相似檢索技術,而局部特征可以在此基礎上自行加以擴展。
MPEG(即Moving Picture Experts Group運動圖像專家小組)是個國際標準,即所謂ISO11172。準確說來, MPEG-7 并不是一種壓縮編碼方法,而是一個多媒體內容描述接口。繼 MPEG-4 之后,要解決的矛盾就是對日漸龐大的圖像、聲音信息的管理和迅速搜索。MPEG7就是針對這個矛盾的解決方案。MPEG-7 力求能夠快速且有效地搜索出用戶所需的不同類型的多媒體影像資料,比如在影像資料中搜索有長江三峽鏡頭的片段。預計這個方案于2001年初最終完成并公布。雖然沒有實現(xiàn)代碼,MPEG-7公布了一些圖像描述接口,制定了一些諸如顏色分布、紋理、邊緣、主體顏色的標準。這里主要介紹一下后邊使用到的邊緣直方圖描述算法的原理。計算邊緣直方圖的主要步驟如下:
- 首先將一個原始圖像平均分割為4×4 共16 個子圖像,之后的處理都是對每一個子圖像局部邊緣的直方圖進行計算。每個局部的邊緣直方圖使用五個5邊緣算子進行處理。最終得到80維向量,用于唯一標識這張圖片。
- 把每個子圖像分割成為一系列圖像塊, 這些圖像塊的,面積隨著圖像面積的變化而變化。其中每個子圖像的圖像數(shù)目是固定的,可參考圖一。
- 計算并統(tǒng)計每個圖像塊的五種邊緣類型( 水平、垂直、45°、135°和無方向) ,此為MPEG-7推薦的五種邊緣檢測算子,最終得到五個邊緣方向的最大值。
- 對得到的邊緣直方圖的值進行歸一化和量化。考慮到人眼視覺的非均勻性,將歸一化以后的80 個直方條的值進行非線性量化, 每個直方條使用固定長度的3位進行編碼(即量化范圍為0~8),總共用240個bit來表示邊緣直方圖。
- 考慮兩個邊緣直方圖描述符, 通過計算直方圖間的歐幾里德距離得到兩個紋理圖像的相似度,十分直觀的,距離為0說明兩幅圖片的邊緣紋理完全相同,距離越大說明相似度越小。
三、圖像特征索引的build與基于圖像的query
在海量(百萬以上)的圖像特征中,尋找亞線性時間復雜度的匹配算法是十分有挑戰(zhàn)的,特別的,由于是近似檢索,我們需要的是數(shù)字上的非精確匹配,讓我們看一下能想到的方法:
- 線性掃描:即對整個樣本向量集合進行窮舉式的順序掃描,分別計算其與query圖像的歐式距離,然后排序輸出。準確度100%但過高的時間復雜度導致其實用性極差
- 基于樹結構的索引:比如sift作者推薦的KD-tree,SR-tree等。但由于“維度災難(curse of dimensionality)”的存在,當向量維度大于10到20之后,基于樹結構的索引需要掃描整個向量集合的絕大部分,加上算法本身的開銷,其效果甚至要差于上述的蠻力查找。
- 聚類:摒棄了樹型結構建立索引之后,許多研究人員繼而使用基于Kmeans聚類(層級聚類)的向量量化方法,其本質是將向量映射為標量,取得了一定的成功。但是,該方法的時間復雜度與圖像的數(shù)量息息相關,當規(guī)模擴大時,biuld與query的時間開銷仍然無法達到線上使用的地步。
- 基于散列表的索引:與上類似,其本質也是將向量轉化為標量進行匹配。散列表的主要好處有兩點,一是query時間與數(shù)據(jù)結構的大小無關,基本上是O(1)的時間復雜度;二是增量build較其它方法更為方便。當然,直接將圖像特征存放在散列表中,或者放在數(shù)據(jù)庫的某一個字段中,只能進行精確匹配,只能返回一模一樣的圖片,對于圖像檢索來說,其價值點幾乎為零;因此單純的散列表技術還是無法滿足我們的需求。
- 常用的hash函數(shù)(crc、md5等),本質上都是基于密碼學的脆弱哈希函數(shù),其特點是輸入只要有略微不同,產生的結果應該盡可能大的變化。本文采用的局部敏感哈希(Locality Sensitive Hashing, LSH)方法,在向量匹配方面與索引方面都要比傳統(tǒng)的樹結構和聚類算法快上好幾個數(shù)量級,支持非精確查找,在我看來,是目前所知最適用于多媒體檢索的算法。
LSH主要是用來解決多維向量的K近鄰(K Nearst Neighgor)問題,即查找某一多維向量間的K個最相似的向量。這是一種概率算法,其原理類似于bloom filter,存在一定的false positive,但換來的是檢索效率的飛躍提升。
LSH的主要原理是:建立L個散列表來存放索引,每一個散列表Ti包含M個存放數(shù)據(jù)的桶,另外提供兩套函數(shù)族Gi與Hi與之相關聯(lián)。局部敏感哈希算法在概率意義上將相近的向量映射到相同的桶當中去,利用該特質可以對圖像特征進行非精確匹配。為了最大限度的避免概率上的失誤,采用多個hash函數(shù)映射到不同的hash表中去,分散誤差,如圖二所示。
利用LSH為圖像特征建立索引的具體流程如下:
- 將向量p標識轉化為Hamming空間中的二進制向量(每一維僅為1或0),設某一維的向量值為x,最大值為c,則表示為連續(xù)的x個1緊跟c-x個0的c維二進制向量。因此該向量在原始空間的距離與其Hamming距離一致。
- 將散列函數(shù)G作用在前面所產生的結果上,G的定義為,選取目標向量的K維二進制向量進行拼接。可以看出,目標向量之間相似度越大,其產生的hash值相等的概率越大。這是達到非精確檢索的關鍵一環(huán)。
- 基于2產生的結果,再用常規(guī)的哈希函數(shù)(md5)進行二次哈希將二次哈希得到的結果存放到一張哈希表的一個桶里,再使用下一個函數(shù)進行計算,周而復始。正如我們前面所說的那樣,采用了多個hash函數(shù)來減少相似檢索的誤差。這樣,相似的圖像就被放到同一個桶里,而不同的圖像則被放到另外的桶里了,如圖三所示。
- query圖像時,計算其特征值,并從前面建立的多個表中查詢出結果,拼接在一起,如圖四所示。
- 針對上一步返回的近似圖像,分別計算其歐式距離,排序,進一步去除極小概率上的false positive。
局部敏感哈希將多維近似檢索的時間復雜度進一步降低到亞線性級別,同時,合理選擇哈希函數(shù)的個數(shù)與種類又可以使檢索的準確率和召回率達到平衡。
四、實驗結果
為驗證MPEG-7邊緣直方圖配合局部敏感哈希算法的結果,本文使用了隱網項目中的違禁數(shù)據(jù)庫進行測試。測試環(huán)境為公司的Dell PC,測試條件如下所示:
樣本庫數(shù)量:14085
樣本類別:國家安全類、文化傳媒類、限售、藥物器械
持久化index文件容量:3.07MB
從圖片build時間:406ms
從索引文件build時間:15min
query時間:0ms
測試效果范例:
輸入的待檢索圖片:
Query得到相似圖片結果:
五、后續(xù)工作
1、sift特征的引入,局部圖像檢索的實現(xiàn)
2、lsh算法,參數(shù)的自動優(yōu)化
3、百萬級數(shù)據(jù)測試
4、不同場景、類別下策略的分析
總結
以上是生活随笔為你收集整理的相似图像识别检 —基于图像签名(LSH)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 烟雨江湖当归哪里买 带烟雨的诗句大全
- 下一篇: 爱聊怎么收费(你真的会爱吗)