以圖搜圖本質(zhì)是一種模式識別技術(shù),從數(shù)據(jù)庫或網(wǎng)站搜索相似的圖像。將待檢索圖像提取特征,與搜索數(shù)據(jù)集中所有的圖像進行特征匹配,根據(jù)相似度排序,提取最相似的N張圖像。
兩張圖像之間是不能直接進行比較的,因為大小、顏色、格式都不相同,需要將圖像轉(zhuǎn)換成可以進行比較的特征向量,采用的特征要求能夠最大化表征原始圖像信息且維度盡量小。最初的技術(shù),均采用人工設計特征的方式,例如HOG特征,顏色特征等。人工設計的特征一般只適用于某些特定的場合,很難做到通用和很高的檢測精度。隨著深度學習技術(shù)的興起,研究人員開始使用基于CNN解決一些模式識別領域的問題,包括圖像分類、語音識別等復雜問題。我們借鑒了基于CNN的圖像分類技術(shù),采用CNN網(wǎng)絡進行特征提取。然后通過COS距離評價兩個特征向量的相似度。
圖1 以圖搜圖原理
通過在ImageNet 分類任務上訓練CNN分類網(wǎng)絡,這樣訓練出來的網(wǎng)絡權(quán)重能非常好的提取圖像的關(guān)鍵特征信息。訓練CNN的目的并不是要進行圖像分類,而是用這個權(quán)重網(wǎng)絡來提取圖像的特征。我們訓練好的網(wǎng)絡可以提取待檢測圖像的1000維數(shù)據(jù)特征,通過比較兩張圖像的特征向量來得到相似度。計算兩個向量的相似度有很多種方法,例如歐氏距離,COS距離等。通過比較采用了人臉識別中常用的COS距離,當兩張圖像完全相同時,相似度為1。通過相似度可以評價兩張圖像的相似程度。
圖2 搜索實例
手機里找相似照片,就采用了類似技術(shù)。通過比較圖像特征,進行相似照片查找。
如果待搜索的圖像為歷史積累的圖片數(shù)據(jù),則可以通過批量提取特征的方式,對歷史圖像數(shù)據(jù)建好索引數(shù)據(jù)庫,這樣圖像檢索僅提取待檢索圖像特征向量,然后和數(shù)據(jù)庫中歷史數(shù)據(jù)特征進行比較(計算相似度)就可以了,速度會非??臁?/p>
如果用本地的圖像去網(wǎng)絡上爬取相似圖像,則需要同時計算本地圖像特征和網(wǎng)絡獲取的圖像特征進行相似度計算,保留相似度最高的N張圖像即可。當網(wǎng)絡圖片數(shù)據(jù)量很大,速度會變慢。