老司機帶你檢測相似圖片

騰訊雲加社群發表於2017-10-18
歡迎大家前往騰訊雲技術社群,獲取更多騰訊海量技術實踐乾貨哦~

作者:雷經緯 

導語

本文從從圖片的dhash,ahash,phash,顏色分佈向量到基於語義的sift,surf,gist特徵,構建一套分層相似圖片檢測系統。本文致力於零基礎單機快速搭建一個可用的相似圖片識別系統。

1 背景

相似圖片檢測的定義是人眼看起來像,比如下面的倆圖。

相似圖片的檢測廣泛用於圖片去重,仿冒圖示檢測,圖片檢索等。本文也是基於圖示相似檢測的需求去做的,本意是用於打假。然而專家老中醫告訴我,打假不如推薦相似app受市場歡迎,並且不同應用場景下我們做事的思路也會不同。不管了,先把相似圖片識別出來

2 檢測的原理

圖片相似檢測無非是提取圖片某個維度的特徵,根據演算法兩兩計算相似度。(基於機器學習,深度學習的方法則會先構建一個模型,然後將新樣本特徵輸入模型即可。)簡單流程可以描述為:

檢測過程中可能用到的7個基礎特徵如下:

簡單解釋下,dhash,ahash,phash是根據基於分塊等某種演算法得到的基於圖片RGB值的某個雜湊(其詳細描述可參考itindex.net/detail/4272… );RGB向量則是將色彩從256

256
256對映到較小的區間如4
4
4,然後計算圖片在每個區間的分佈形成一個陣列;

SIFT,SURF,GIST則不再是RGB值的某種統計,而是試圖構建人能理解的圖片意義,如SIFT,SURF關注圖片關鍵點(或者理解為重要的點)的資訊,GIST則從自然度,開放度,粗糙度等描述影像。下圖是這種專業的圖片處理,很高大上有沒有。

3 如何搭建一個仿冒圖示檢測系統

相似圖片的檢測可以用於去重,圖片搜尋等。底層技術是基於上文描述的方法,但是在根據目標不同,又有不同的結構。本工程的初衷是檢測圖示仿冒,系統結構如下:

思路:先把已標位正牌的圖示特徵(dhash,ahash,phash等)收集起來形成一個特徵庫,新圖示來了則提取其特徵去特徵庫裡匹配,如果匹配到了相似度極高的則直接認定其為仿冒圖示;如果匹配到了相似度較高的則轉入sift,gist高階特徵匹配。

4 show me the 效果

下面是一些相似圖示示例:

圖示大小縮放,新增元素,新增文字,顏色塊變化等都是可以識別的。仿冒數量不便展示(/ □ )

5 提升效能和效果的關鍵點,坑

本工程最終在單機完成了數百萬官方圖示庫,每天新進數十萬圖示的檢測。在構建過程中遇到了不少坑,這些坑一部分是計算速度(單一圖示匹配從300秒降低到0.2秒,鬼知道我的小心臟經歷了什麼),還有的是識別效果:

1.官方圖示特徵需先聚類,數百萬的特徵儲存和匹配都比較麻煩。對官方庫聚類後可以形成特徵對圖示的一對多關係,而不是維持原有的圖示對特徵的一對一關係;

2.匹配策略分層,如本工程一開始綜合dhash及sift等,引數和策略調整非常複雜。分為兩層後(雜湊策略過濾,sift精確匹配),每一層的準確率和引數,策略調整非常方便;

3.雜湊值的海明碼距離計算耗時較多,在明確海明碼距離範圍的情況下可以採用分段匹配而非計算不同的位數。具體見www.cnblogs.com/gantoday/p/…

4.工程經驗上:opencv-python不直接提供sift,surf演算法了。可以用opencv-contrib-python這個庫。gist可以用pyleargist這個庫,其依賴安裝見blog.csdn.net/sensicall/a…

6 潛在的改進點

海量圖片匹配,第一步必須是生成圖片的特徵雜湊,且改hash必須是區域性敏感hash。區域性敏感hash的特點是:原始資料相似的情況下,生成的hash值也會盡可能的保持相似。從圖片dhash,ahash,phash的演算法過程可以認為它們就是一種區域性敏感雜湊。所以可以用來檢測相似。

但是在gist特徵中,即使圖片相似,生成的960維向量的每一個值幾乎都不同,不直接具備利用它生成區域性敏感雜湊lsh的條件。這個時候需要對向量元素歸一化,使得相似圖片的大部分gist特徵相同。這一點在pyleargist的官方頁面pypi.python.org/pypi/pylear… 下方有說明,但並沒有講怎麼做。有文章說用simhash,但是對於simhash生成過程中的每個維度的權重一筆帶過。個人很懷疑不採用歸一化就生成simhash的做法。這裡待研究

7 總結

當前影像處理髮展多年,已經提出了多種特徵,演算法。在工程應用中需要結合自己的場景選用適當的特徵(怎麼適當?不確定的話就多試試(/ □ )),注重底層資料的質量,優化效能以便快速調整匹配策略。

相關閱讀

把照片唱給你聽 :騰訊 AI Lab 國際領先技術邀你「趣」體驗

基於影像識別的自動化

都是知識點!更簡單的影像匹配特徵融合法,你 Get 到了嗎?

此文已由作者授權騰訊雲技術社群釋出,轉載請註明文章出處
原文連結:https://cloud.tencent.com/community/article/503286


相關文章