0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

以圖搜圖背后的技術(shù),你了解嗎?

nlfO_thejiangme ? 來(lái)源:lq ? 2019-05-14 09:29 ? 次閱讀

當(dāng)你看到一株未曾見(jiàn)過(guò)的植物,你可以打開(kāi)百度APP,拍照搜索,找到相關(guān)信息;當(dāng)你看到朋友穿了一件你特別喜歡的衣服,你也想買(mǎi)一件,你可以通過(guò)淘寶APP的拍立淘功能,找到商品;當(dāng)你到達(dá)一個(gè)陌生的地方,你可以通過(guò)微信APP對(duì)著當(dāng)?shù)氐慕謪^(qū)或者建筑物拍一張照片,來(lái)定位你的詳細(xì)位置。這背后都是強(qiáng)大的以圖搜圖技術(shù)。

以圖搜圖技術(shù)發(fā)展了許多年,從早期以圖搜圖的精度不盡如人意,到后來(lái)基于以圖搜圖技術(shù)開(kāi)發(fā)出非常多的改變用戶行為和提升效率的應(yīng)用,經(jīng)歷了不小于10年的發(fā)展,整體的技術(shù)方案、數(shù)據(jù)量級(jí)、工程架構(gòu)都進(jìn)行了多輪的迭代。當(dāng)前,各個(gè)大廠都在基于以圖搜圖技術(shù)來(lái)提供更好的產(chǎn)品和服務(wù)。我們希望在這篇文章中對(duì)以圖搜圖技術(shù)做一個(gè)全面的總結(jié),主要包含以下幾個(gè)方面:

1. 以圖搜圖技術(shù)的通用框架;

2. 以圖搜圖技術(shù)迭代;

3. 以圖搜圖是工程+算法的結(jié)合,架構(gòu)演進(jìn)。

Part 1. 以圖搜圖技術(shù)的通用框架

在這一章,我們來(lái)介紹以圖搜圖技術(shù)的通用框架。在介紹以圖搜圖技術(shù)之前,我們來(lái)看任何一個(gè)搜索技術(shù)所擁有的基本組件。舉個(gè)例子,我們需要到圖書(shū)館查找一本書(shū),需要幾個(gè)基本的要素:1. 圖書(shū)館(海量圖書(shū));2. 圖書(shū)的分類、書(shū)名或者作者(在圖書(shū)館的編碼體系下,這些信息的組合能夠唯一表示這一本書(shū));3. 圖書(shū)館的書(shū)需要按照一定的規(guī)律來(lái)布置(科目、難易程度、首字母、作者、年份等);在有了這些基本的要素之外,只要圖書(shū)館有這本書(shū),我們就能夠快速找到它;或者即便沒(méi)有某一本具體的書(shū),我們也能夠查詢到與這本書(shū)有著相近內(nèi)容的書(shū)。

結(jié)合上面的例子,我們來(lái)看一個(gè)典型的以圖搜圖系統(tǒng)所擁有的基礎(chǔ)框架:

先來(lái)看offline部分,包括3個(gè)基本的要素:

01. 檢索圖片庫(kù):這就相當(dāng)于上一個(gè)例子中的圖書(shū),我們需要有一個(gè)足夠規(guī)模的圖片庫(kù),比如淘寶的所有商品的圖片集合,比如百度圖片搜索中收集到的互聯(lián)網(wǎng)圖片數(shù)據(jù)集合。當(dāng)然,這里我們介紹的是一個(gè)靜態(tài)的圖片庫(kù),在實(shí)際項(xiàng)目中,我們需要有能力來(lái)處理動(dòng)態(tài)變化的圖片數(shù)據(jù)庫(kù)。

02. 特征提?。哼@就相當(dāng)于上一個(gè)例子中圖書(shū)的作者、年份、科目等等,我們稱為圖片的特征。實(shí)際上,圖片的任何統(tǒng)計(jì)量都可以作為圖片的特征,甚至圖像的像素值本身通過(guò)歸一化之后也可以作為圖片的特征。在實(shí)際中,我們使用圖片的顏色分布、梯度變化統(tǒng)計(jì)量、紋理、BOW統(tǒng)計(jì)、底層/中層/高層語(yǔ)義特征等作為圖片的特征,非常豐富。

03. 檢索結(jié)構(gòu):檢索結(jié)構(gòu)的唯一目的就是讓查找更快更準(zhǔn)。簡(jiǎn)單的,一一對(duì)比是最簡(jiǎn)單的查詢結(jié)構(gòu),最準(zhǔn),但是最慢;所以所有檢索結(jié)構(gòu)本質(zhì)上都是效率和精度的平衡。常見(jiàn)的,我們可以對(duì)數(shù)據(jù)集進(jìn)行聚類,把數(shù)據(jù)分成一堆一堆的,比對(duì)時(shí)先選擇相似的堆,然后在堆內(nèi)部再進(jìn)行細(xì)致的比對(duì)。而分堆的理念又可以通過(guò)樹(shù)結(jié)構(gòu)、Hash結(jié)構(gòu)、倒排索引、圖結(jié)構(gòu)等等來(lái)刻畫(huà)。

再來(lái)看online部分,其中特征提取和offline的特征提取需要保持高度的一致性,所以實(shí)際中我們通常使用一個(gè)單獨(dú)的特征服務(wù)器來(lái)提供特征提取服務(wù)。這里之所以將檢索結(jié)構(gòu)和檢索引擎分開(kāi),主要是基于如下的考慮:檢索引擎需要應(yīng)對(duì)高并發(fā)等一些的工程方面的問(wèn)題,所以本質(zhì)上檢索引擎更傾向于工程架構(gòu)的優(yōu)化,而檢索結(jié)構(gòu)更傾向于檢索結(jié)構(gòu)算法方面的優(yōu)化;但實(shí)際上,二者是沒(méi)辦法完全拆分開(kāi)的。

以圖搜圖技術(shù)本質(zhì)上是尋找相似圖片,但兩張圖片是否相似有非常多的維度:

因此在很多時(shí)候,以圖搜圖技術(shù)需要根據(jù)不同的使用場(chǎng)景來(lái)選擇合適的技術(shù)方案,尤其是特征的選擇。產(chǎn)品層面,也層出不窮,可以參考下面的幾個(gè)鏈接:

The Best Image Search Engines on the Web

https://www.lifewire.com/where-to-find-images-online-3482427

The 7 Best Search Engines for Finding Free Images

https://www.sitepoint.com/7-best-search-engines-free-images/

Part 2. 以圖搜圖的技術(shù)迭代

這個(gè)部分我先打算介紹一下特征、檢索引擎各自都經(jīng)歷了哪些迭代,然后在以不同時(shí)段典型的工業(yè)界的使用方案來(lái)介紹以圖搜圖技術(shù)代際的迭代。

特征層面:

簡(jiǎn)單的,圖像的單通道、多通道的顏色直方圖可以作為一個(gè)簡(jiǎn)單的特征;進(jìn)一步顏色矩特征,圖像中任何的顏色分布都可以通過(guò)它的矩來(lái)表示。另外需要強(qiáng)調(diào)的局部特征是SIFT特征(參考:https://blog.csdn.net/abcjennifer/article/details/7639681),SURF特征,HOG特征等;當(dāng)有了局部特征之后,我們需要對(duì)局部特征進(jìn)行聚合,作為圖像的全局表示;將多個(gè)局部特征矢量聚合成一個(gè)統(tǒng)一維度的矢量表示的方法有:BOW、VLAD、Fisher Vector等等。

深度學(xué)習(xí)技術(shù)興起之后,基于深度學(xué)習(xí)的圖像特征開(kāi)始成為圖像檢索的主流。我們知道CNN網(wǎng)絡(luò)具有很多不同程度對(duì)圖像進(jìn)行抽象的layer,較低的層得到的是圖像的簡(jiǎn)單特征,而較高層得到的是圖像的語(yǔ)義相關(guān)的特征,不同層的特征在檢索層面精度有很大的區(qū)別,在Oxford Building數(shù)據(jù)集上,使用VGGNet進(jìn)行簡(jiǎn)單的測(cè)試,得到了如下的統(tǒng)計(jì)結(jié)果。

(參考:http://yongyuan.name/blog/layer-selection-and-finetune-for-cbir.html)

實(shí)際上,深度網(wǎng)絡(luò)最后的FC層同樣可以作為圖像的特征表示,當(dāng)使用FC作為特征時(shí),網(wǎng)絡(luò)訓(xùn)練時(shí)使用的label對(duì)檢索的效果有較大的影響。理論上,label如果能夠提供更多的細(xì)粒度的信息,則學(xué)習(xí)到的FC特征則更能夠表達(dá)圖像的細(xì)粒度特征。

特征類型對(duì)檢索效果影響很大;但特征的學(xué)習(xí)方式,尤其是引入度量學(xué)習(xí)的思路之后,即便是同一個(gè)網(wǎng)絡(luò)的同一層特征,不同的訓(xùn)練方式對(duì)最后的精度也會(huì)有很大的影響。

比如Class weighted conv features

(參考:https://github.com/bikong2/retrieval-2017-cam)

分類loss和triplet loss結(jié)合:

引入更多監(jiān)督信息的學(xué)習(xí):

以及通過(guò)KL散度來(lái)優(yōu)化:

其實(shí)通過(guò)不同的方式進(jìn)行網(wǎng)絡(luò)學(xué)習(xí)的優(yōu)化方式還有很多,這里大致總結(jié)幾個(gè)優(yōu)化的大致方向:

1. 引入更多的監(jiān)督信息;

2. 不同程度、維度的attention(包括層、channel、類等等);

3. Triplet loss及其各種變種;

4. 不同的特征聚合方式。

檢索引擎:

檢索引擎方面,早期我們通過(guò)層次化的聚類來(lái)對(duì)數(shù)據(jù)分組,通過(guò)K-D Tree對(duì)數(shù)據(jù)進(jìn)行劃分,通過(guò)Hash對(duì)空間進(jìn)行劃分,通過(guò)倒排索引加速檢索的效率,通過(guò)PQ量化對(duì)更大規(guī)模的數(shù)據(jù)進(jìn)行二次方的劃分。參考:

?? 圖像檢索:再敘ANN Search

https://blog.csdn.net/qq_27245709/article/details/72393613

?? 圖像檢索:基于內(nèi)容的圖像檢索技術(shù)

https://yongyuan.name/blog/cbir-technique-summary.html

?? Product Quantization for Nearest Neighbor Search論文理解

https://blog.csdn.net/CHIERYU/article/details/50347735

層次化的聚類算法可以通過(guò)如下的圖片來(lái)表示:

通過(guò)聚類來(lái)減少檢索時(shí)比對(duì)的檢索時(shí)間。K-D Tree和Hash請(qǐng)參考下面的圖片。K-D Tree相對(duì)層次化聚類基本原理是一致的,不過(guò)聚類算法更多的是數(shù)據(jù)的劃分,但樹(shù)結(jié)構(gòu)的層次化劃分包含特征和數(shù)據(jù)的劃分兩方面。Hash方法,尤其是LSH(局部敏感哈希),則是同時(shí)在尋找特征的mapping和空間的劃分。

PQ量化本質(zhì)上是在特征和數(shù)據(jù)的兩個(gè)層面對(duì)數(shù)據(jù)集進(jìn)行量化,如下圖所示,特征向量本身是16*8=128維,通過(guò)特征層面的劃分,分成y1…y8總共8組特征;劃分之后,對(duì)每一組特征在全數(shù)據(jù)集上進(jìn)行聚類等量化手段,比如量化的長(zhǎng)度是8bits的01向量。最終得到的是8*8bits的01向量,壓縮比超高。

接下來(lái),介紹兩代不同的以圖搜圖技術(shù)。

局部特征(如SIFT特征)+BOW+LSH的方案:

這種方案大致在2015年之前算是比較流行的框架,通常針對(duì)特殊的使用場(chǎng)景,在檢索基礎(chǔ)上可能還需要進(jìn)行細(xì)粒度的精排序。這個(gè)方案在10億以內(nèi)的數(shù)據(jù)量級(jí)上非常適用,當(dāng)然如果數(shù)量級(jí)更大,也是可以的,只是需要引入其他的檢索結(jié)構(gòu)。關(guān)于LSH,推薦使用一個(gè)開(kāi)源的工具包FALCONN:

https://github.com/FALCONN-LIB/FALCONN

CNN卷積特征+VLAD+PQ量化的方案:

這是目前比較主流的方案,卷積特征建議做多層特征的組合,PQ量化建議根據(jù)數(shù)據(jù)規(guī)模做密集的參數(shù)選擇,推薦使用Facebook開(kāi)源的工具包FAISS:

https://github.com/facebookresearch/faiss

當(dāng)然,卷積特征的學(xué)習(xí)方式的選擇層面,需要根據(jù)實(shí)際擁有的數(shù)據(jù)的標(biāo)簽信息來(lái)決策。有一些基于弱監(jiān)督學(xué)習(xí)的方案,也可以嘗試。

Part 3. 以圖搜圖是工程+算法的結(jié)合

架構(gòu)演進(jìn)

在這里,我們介紹一個(gè)理想狀態(tài)下的以圖搜圖架構(gòu),需要嘗試去解決的幾個(gè)問(wèn)題:

1. 如何解決檢索庫(kù)動(dòng)態(tài)增加的問(wèn)題;

2. 如何解決全量的特征迭代的問(wèn)題,也就是說(shuō)query和database的特征需要同步;

3. 特征增強(qiáng),在檢索結(jié)構(gòu)確定的情況下獲得更好的檢索效果;

4. 高并發(fā)低延遲。

以上只是一個(gè)簡(jiǎn)單的架構(gòu)示意圖,如果涉及到特征評(píng)價(jià),檢索結(jié)構(gòu)評(píng)價(jià),甚至其他的策略迭代等一系列的關(guān)于AB Test的需要,架構(gòu)層面需要進(jìn)行深度的優(yōu)化。

到這里基本上對(duì)以圖搜圖技術(shù)從特征、檢索結(jié)構(gòu)、架構(gòu)等層面進(jìn)行了一個(gè)基本的介紹。其實(shí)工業(yè)界的以圖搜圖產(chǎn)品或者說(shuō)引擎遠(yuǎn)比我寫(xiě)到的要復(fù)雜,如果有大家有興趣,建議研究以下幾個(gè)檢索系統(tǒng)的演進(jìn):

阿里的拍立淘

百度的圖片搜索

谷歌的圖片搜索

Pinterest的商品搜索

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1088

    瀏覽量

    40522
  • 數(shù)據(jù)集
    +關(guān)注

    關(guān)注

    4

    文章

    1209

    瀏覽量

    24772
  • cnn
    cnn
    +關(guān)注

    關(guān)注

    3

    文章

    353

    瀏覽量

    22279

原文標(biāo)題:一文了解「以圖搜圖」技術(shù)背后的原理及架構(gòu)優(yōu)化

文章出處:【微信號(hào):thejiangmen,微信公眾號(hào):將門(mén)創(chuàng)投】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    ARM技術(shù)是什么?國(guó)內(nèi)有哪些ARM廠家呢?一起來(lái)了解一下!

    ARM技術(shù)概述 ARM技術(shù),全稱為Advanced RISC Machine,是一種精簡(jiǎn)指令集(RISC)架構(gòu),由ARM公司開(kāi)發(fā)。以下是對(duì)ARM技術(shù)的詳細(xì)概述: 編輯
    發(fā)表于 11-18 16:35

    了解電源電路的電路

    本帖最后由 eehome 于 2013-1-5 09:58 編輯 讓盡快了解電源電路的電路
    發(fā)表于 05-24 19:10

    了解頻率控制技術(shù)的演進(jìn)

    一起來(lái)漲姿勢(shì),如題,分享一張頻率控制技術(shù)演進(jìn)的(圖片來(lái)源:世強(qiáng)先進(jìn)),了解下電子產(chǎn)品心臟的技術(shù)發(fā)展過(guò)程。貌似CMEMS可編程振蕩器有替代石英振蕩器的趨勢(shì),作為一個(gè)新出現(xiàn)的
    發(fā)表于 03-28 18:57

    了解自供電嗎

    了解自供電嗎,或者是否使用自供電技術(shù),一起來(lái)評(píng)論圍觀自供電吧
    發(fā)表于 07-15 10:08

    的DIY背后有什么故事?

    背后的故事,即可參加本次活動(dòng)?;顒?dòng)時(shí)間:4月28日——5月25日要求:1、下載電子發(fā)燒友APP,在APP里選擇發(fā)動(dòng)態(tài)。要求在動(dòng)態(tài)前加上#的DIY背后有什么故事?例:2、有有真相,“
    發(fā)表于 04-28 20:45

    了解AI人工智能背后的科學(xué)?

    的調(diào)整。 您的用戶無(wú)需采用新技術(shù)即可體驗(yàn)AI的收益??傊?b class='flag-5'>你越了解人工智能到底是什么,就會(huì)越懂得如何利用它助長(zhǎng)的業(yè)務(wù)!文章來(lái)源:怡海軟件
    發(fā)表于 09-25 10:03

    GRID Test Drive背后技術(shù)是什么?

    大家好,我想知道GRID Test Drive背后技術(shù)。它是Citrix / VMware?還要?jiǎng)e的嗎?懸念在殺我......差不多;-)問(wèn)候,約亨。以上來(lái)自于谷歌翻譯以下為原文Hi all,I
    發(fā)表于 10-09 15:15

    電路設(shè)計(jì)上貼片電容的應(yīng)用,想了解都有哪些電路和設(shè)計(jì)方式?

    有哪位朋友可以分享下的知識(shí)嗎?我想了解下在電路設(shè)計(jì)圖上,像這樣CL05A106MQ5NUNC的貼片電容一般應(yīng)用于哪些電路圖上?主要用于什么產(chǎn)品,我想找有關(guān)的線路來(lái)學(xué)習(xí),不知道從何入手?大神們,助我一臂之力吧~~~~~~萬(wàn)分感
    發(fā)表于 07-08 14:23

    Facebook后臺(tái)背后技術(shù)

    今天我們一起來(lái)了解Facebook背后的軟件,看看作為當(dāng)今世界上訪問(wèn)量最大的網(wǎng)站之一,F(xiàn)acebook是如何保證5億用戶的系統(tǒng)一直穩(wěn)定可靠的運(yùn)行。Facebook的擴(kuò)展性挑戰(zhàn)
    發(fā)表于 07-17 06:18

    CCD與CMOS技術(shù),這些是所不了解

    CCD與CMOS技術(shù),這些是所不了解
    發(fā)表于 06-01 07:12

    模型和數(shù)據(jù)庫(kù)

    應(yīng)用。模型與面向?qū)ο蟮哪P拖啾雀幽軌蛎枋鍪挛镏g的數(shù)據(jù)脈絡(luò)(Data Context)。在互聯(lián)網(wǎng),物聯(lián)網(wǎng),智能制造,工業(yè)4.0 等諸多領(lǐng)域,采納了模型和數(shù)據(jù)庫(kù)技術(shù)。理解了
    發(fā)表于 09-02 07:18

    在電廠工作那么多年,但電廠各類設(shè)備原理動(dòng)態(tài)了解過(guò)嗎?

    了解電廠各類設(shè)備原理動(dòng)態(tài)準(zhǔn)備好了嗎?
    的頭像 發(fā)表于 07-05 09:25 ?2.3w次閱讀
    <b class='flag-5'>你</b>在電廠工作那么多年,但電廠各類設(shè)備原理動(dòng)態(tài)<b class='flag-5'>圖</b><b class='flag-5'>你</b><b class='flag-5'>了解</b>過(guò)嗎?

    球機(jī)的PCB原理免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是球機(jī)的PCB原理免費(fèi)下載。
    發(fā)表于 11-16 17:34 ?24次下載

    球機(jī)通信電路的PCB原理免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是球機(jī)通信電路的PCB原理免費(fèi)下載。
    發(fā)表于 11-16 17:34 ?53次下載

    基于AX650N+CLIP的展示

    能否有一種“識(shí)別萬(wàn)物”的圖像識(shí)別大模型呢?今天就借此機(jī)會(huì),通過(guò)實(shí)操來(lái)重溫下由OpenAI在2021年初發(fā)布的Zero-Shot視覺(jué)分類模型CLIP,并移植到愛(ài)芯派Pro上實(shí)現(xiàn)簡(jiǎn)單的文示例。
    的頭像 發(fā)表于 11-01 16:44 ?1519次閱讀
    基于AX650N+CLIP的<b class='flag-5'>以</b>文<b class='flag-5'>搜</b><b class='flag-5'>圖</b>展示