精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

以圖搜圖背后的技術,你了解嗎?

nlfO_thejiangme ? 來源:lq ? 2019-05-14 09:29 ? 次閱讀

當你看到一株未曾見過的植物,你可以打開百度APP,拍照搜索,找到相關信息;當你看到朋友穿了一件你特別喜歡的衣服,你也想買一件,你可以通過淘寶APP的拍立淘功能,找到商品;當你到達一個陌生的地方,你可以通過微信APP對著當地的街區或者建筑物拍一張照片,來定位你的詳細位置。這背后都是強大的以圖搜圖技術。

以圖搜圖技術發展了許多年,從早期以圖搜圖的精度不盡如人意,到后來基于以圖搜圖技術開發出非常多的改變用戶行為和提升效率的應用,經歷了不小于10年的發展,整體的技術方案、數據量級、工程架構都進行了多輪的迭代。當前,各個大廠都在基于以圖搜圖技術來提供更好的產品和服務。我們希望在這篇文章中對以圖搜圖技術做一個全面的總結,主要包含以下幾個方面:

1. 以圖搜圖技術的通用框架;

2. 以圖搜圖技術迭代;

3. 以圖搜圖是工程+算法的結合,架構演進。

Part 1. 以圖搜圖技術的通用框架

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

結合上面的例子,我們來看一個典型的以圖搜圖系統所擁有的基礎框架:

先來看offline部分,包括3個基本的要素:

01. 檢索圖片庫:這就相當于上一個例子中的圖書,我們需要有一個足夠規模的圖片庫,比如淘寶的所有商品的圖片集合,比如百度圖片搜索中收集到的互聯網圖片數據集合。當然,這里我們介紹的是一個靜態的圖片庫,在實際項目中,我們需要有能力來處理動態變化的圖片數據庫。

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

03. 檢索結構:檢索結構的唯一目的就是讓查找更快更準。簡單的,一一對比是最簡單的查詢結構,最準,但是最慢;所以所有檢索結構本質上都是效率和精度的平衡。常見的,我們可以對數據集進行聚類,把數據分成一堆一堆的,比對時先選擇相似的堆,然后在堆內部再進行細致的比對。而分堆的理念又可以通過樹結構、Hash結構、倒排索引、圖結構等等來刻畫。

再來看online部分,其中特征提取和offline的特征提取需要保持高度的一致性,所以實際中我們通常使用一個單獨的特征服務器來提供特征提取服務。這里之所以將檢索結構和檢索引擎分開,主要是基于如下的考慮:檢索引擎需要應對高并發等一些的工程方面的問題,所以本質上檢索引擎更傾向于工程架構的優化,而檢索結構更傾向于檢索結構算法方面的優化;但實際上,二者是沒辦法完全拆分開的。

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

因此在很多時候,以圖搜圖技術需要根據不同的使用場景來選擇合適的技術方案,尤其是特征的選擇。產品層面,也層出不窮,可以參考下面的幾個鏈接:

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. 以圖搜圖的技術迭代

這個部分我先打算介紹一下特征、檢索引擎各自都經歷了哪些迭代,然后在以不同時段典型的工業界的使用方案來介紹以圖搜圖技術代際的迭代。

特征層面:

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

深度學習技術興起之后,基于深度學習的圖像特征開始成為圖像檢索的主流。我們知道CNN網絡具有很多不同程度對圖像進行抽象的layer,較低的層得到的是圖像的簡單特征,而較高層得到的是圖像的語義相關的特征,不同層的特征在檢索層面精度有很大的區別,在Oxford Building數據集上,使用VGGNet進行簡單的測試,得到了如下的統計結果。

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

實際上,深度網絡最后的FC層同樣可以作為圖像的特征表示,當使用FC作為特征時,網絡訓練時使用的label對檢索的效果有較大的影響。理論上,label如果能夠提供更多的細粒度的信息,則學習到的FC特征則更能夠表達圖像的細粒度特征。

特征類型對檢索效果影響很大;但特征的學習方式,尤其是引入度量學習的思路之后,即便是同一個網絡的同一層特征,不同的訓練方式對最后的精度也會有很大的影響。

比如Class weighted conv features

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

分類loss和triplet loss結合:

引入更多監督信息的學習:

以及通過KL散度來優化:

其實通過不同的方式進行網絡學習的優化方式還有很多,這里大致總結幾個優化的大致方向:

1. 引入更多的監督信息;

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

3. Triplet loss及其各種變種;

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

檢索引擎:

檢索引擎方面,早期我們通過層次化的聚類來對數據分組,通過K-D Tree對數據進行劃分,通過Hash對空間進行劃分,通過倒排索引加速檢索的效率,通過PQ量化對更大規模的數據進行二次方的劃分。參考:

?? 圖像檢索:再敘ANN Search

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

?? 圖像檢索:基于內容的圖像檢索技術

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

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

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

層次化的聚類算法可以通過如下的圖片來表示:

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

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

接下來,介紹兩代不同的以圖搜圖技術。

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

這種方案大致在2015年之前算是比較流行的框架,通常針對特殊的使用場景,在檢索基礎上可能還需要進行細粒度的精排序。這個方案在10億以內的數據量級上非常適用,當然如果數量級更大,也是可以的,只是需要引入其他的檢索結構。關于LSH,推薦使用一個開源的工具包FALCONN:

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

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

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

https://github.com/facebookresearch/faiss

當然,卷積特征的學習方式的選擇層面,需要根據實際擁有的數據的標簽信息來決策。有一些基于弱監督學習的方案,也可以嘗試。

Part 3. 以圖搜圖是工程+算法的結合

架構演進

在這里,我們介紹一個理想狀態下的以圖搜圖架構,需要嘗試去解決的幾個問題:

1. 如何解決檢索庫動態增加的問題;

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

3. 特征增強,在檢索結構確定的情況下獲得更好的檢索效果;

4. 高并發低延遲。

以上只是一個簡單的架構示意圖,如果涉及到特征評價,檢索結構評價,甚至其他的策略迭代等一系列的關于AB Test的需要,架構層面需要進行深度的優化。

到這里基本上對以圖搜圖技術從特征、檢索結構、架構等層面進行了一個基本的介紹。其實工業界的以圖搜圖產品或者說引擎遠比我寫到的要復雜,如果有大家有興趣,建議研究以下幾個檢索系統的演進:

阿里的拍立淘

百度的圖片搜索

谷歌的圖片搜索

Pinterest的商品搜索

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 圖像
    +關注

    關注

    2

    文章

    1083

    瀏覽量

    40418
  • 數據集
    +關注

    關注

    4

    文章

    1205

    瀏覽量

    24649
  • cnn
    cnn
    +關注

    關注

    3

    文章

    351

    瀏覽量

    22178

原文標題:一文了解「以圖搜圖」技術背后的原理及架構優化

文章出處:【微信號:thejiangmen,微信公眾號:將門創投】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    ARM技術是什么?國內有哪些ARM廠家呢?一起來了解一下!

    ARM技術概述 ARM技術,全稱為Advanced RISC Machine,是一種精簡指令集(RISC)架構,由ARM公司開發。以下是對ARM技術的詳細概述: 編輯
    發表于 11-18 16:35

    了解電源電路的電路

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

    了解頻率控制技術的演進

    一起來漲姿勢,如題,分享一張頻率控制技術演進的(圖片來源:世強先進),了解下電子產品心臟的技術發展過程。貌似CMEMS可編程振蕩器有替代石英振蕩器的趨勢,作為一個新出現的
    發表于 03-28 18:57

    了解自供電嗎

    了解自供電嗎,或者是否使用自供電技術,一起來評論圍觀自供電吧
    發表于 07-15 10:08

    的DIY背后有什么故事?

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

    了解AI人工智能背后的科學?

    的調整。 您的用戶無需采用新技術即可體驗AI的收益。總之,了解人工智能到底是什么,就會越懂得如何利用它助長的業務!文章來源:怡海軟件
    發表于 09-25 10:03

    GRID Test Drive背后技術是什么?

    大家好,我想知道GRID Test Drive背后技術。它是Citrix / VMware?還要別的嗎?懸念在殺我......差不多;-)問候,約亨。以上來自于谷歌翻譯以下為原文Hi all,I
    發表于 10-09 15:15

    電路設計上貼片電容的應用,想了解都有哪些電路和設計方式?

    有哪位朋友可以分享下的知識嗎?我想了解下在電路設計圖上,像這樣CL05A106MQ5NUNC的貼片電容一般應用于哪些電路圖上?主要用于什么產品,我想找有關的線路來學習,不知道從何入手?大神們,助我一臂之力吧~~~~~~萬分感
    發表于 07-08 14:23

    Facebook后臺背后技術

    今天我們一起來了解Facebook背后的軟件,看看作為當今世界上訪問量最大的網站之一,Facebook是如何保證5億用戶的系統一直穩定可靠的運行。Facebook的擴展性挑戰
    發表于 07-17 06:18

    CCD與CMOS技術,這些是所不了解

    CCD與CMOS技術,這些是所不了解
    發表于 06-01 07:12

    模型和數據庫

    應用。模型與面向對象的模型相比更加能夠描述事物之間的數據脈絡(Data Context)。在互聯網,物聯網,智能制造,工業4.0 等諸多領域,采納了模型和數據庫技術。理解了
    發表于 09-02 07:18

    在電廠工作那么多年,但電廠各類設備原理動態了解過嗎?

    了解電廠各類設備原理動態準備好了嗎?
    的頭像 發表于 07-05 09:25 ?2.3w次閱讀
    <b class='flag-5'>你</b>在電廠工作那么多年,但電廠各類設備原理動態<b class='flag-5'>圖</b><b class='flag-5'>你</b><b class='flag-5'>了解</b>過嗎?

    球機的PCB原理免費下載

    本文檔的主要內容詳細介紹的是球機的PCB原理免費下載。
    發表于 11-16 17:34 ?22次下載

    球機通信電路的PCB原理免費下載

    本文檔的主要內容詳細介紹的是球機通信電路的PCB原理免費下載。
    發表于 11-16 17:34 ?53次下載

    基于AX650N+CLIP的展示

    能否有一種“識別萬物”的圖像識別大模型呢?今天就借此機會,通過實操來重溫下由OpenAI在2021年初發布的Zero-Shot視覺分類模型CLIP,并移植到愛芯派Pro上實現簡單的文示例。
    的頭像 發表于 11-01 16:44 ?1385次閱讀
    基于AX650N+CLIP的<b class='flag-5'>以</b>文<b class='flag-5'>搜</b><b class='flag-5'>圖</b>展示