阿里研究員華先勝:圖像搜索的前世今生

摘要:讓你買買買停不下來的淘寶是如何做到所拍即所得的?

以下內容為由4月27日由將門主辦的“計算機視覺”主題技術專家微信群分享嘉賓實錄。

自我介紹

我在2001年北大數學系十年寒窗博士畢業以后加入了微軟亞洲研究院在之后9年半的時間在研究院一直從事圖像和視頻的分析工作。2010年底我突然變得有點迷盲雖然一直也在做產品但實際上還沒有真正地上過“戰場”所以當時就做了一個大家都不太看好的決定——我覺得應該真正地到“戰場上打仗”看看我們實際當中的圖像搜索的困難到底在哪里用戶的需求和痛點到底在哪里因此之后我去了微軟美國總部必應產品組做了兩年的圖像搜索也發現很多東西需要深入研究。當時微軟的圖像搜索在這兩年之內也發生了很大的變化從比Google差到很多地方都勝過了Google。

兩年后我轉到微軟雷德蒙研究院做圖像識別方面的研究。又做了兩年多后漸漸發覺需要更多的資源來實現自己的想法于是我又選擇回到了國內并加入了阿里巴巴的搜索事業部開始做電商的圖像搜索研究。

在我加入阿里的一年后電商圖像搜索取得了很大的進展。當時在阿里云上有很多圖像視頻分析方面的需求但阿里云沒有一個這樣的組能夠去處理這些大量地需求。所以我當時又做了一個很艱難的決定離開了搜索來到了阿里云——也就是說我現在是在云上做視頻圖像的分析、識別和搜索。

今天我主要會為大家介紹圖像的搜索過去、現在和未來以電商為背景包括其中的一些困難和機會在哪里最后怎么樣才能把電商的圖像搜索做到比較好的效果。

一、熱鬧非凡的視覺識別和搜索

這些年計算機視覺識別和搜索這個領域非常熱鬧出現了很多的創業公司大公司在這方面也花了很多力氣在做。大家可以從下面的這張圖里看到的一些例子。

亞馬遜出品的Firefly當時引起了很大的轟動雖然這個產品也很難說是不是成功但是當時確實是很大膽的一個舉動。百度也有圖像搜索和圖像識別微軟也有。Google很早也有了Google Goggles這個產品雖然技術跟現在有很大的差別。Pinterest在去年也有這樣的功能問世就是在它自己的分享照片上可以去搜相似的照片或者是相似的產品。當然這個搜索是用網上的圖片去搜網上的圖片和我們今天要分享的還是有一點區別。阿里巴巴的一個圖片搜索——拍立淘強調的是用自己手機去拍照片去搜索網上相同或者相似的商品。這兩者聽起來差不多但是實際上在難度上是有很大的差別。

計算機視覺涉及到的領域有安防、廣告、娛樂方面等各行各業這些年尤其是在深度學習出現后在技術上也有了很大的發展。那么是不是計算機視覺這個問題已經解決了是不是幾十年的圖像搜索研究真的在我們的日常生活中可以用起來了下面我們會來探討這些問題。

二、圖像搜索的定義和分類

圖像搜索的方法從Query角度可分為三類

以文本搜索作為搜索的入口。

以圖像樣例作為搜索的入口。

文本、圖像的組合搜索。

文本搜索又可以細分為三種

第一種用人來對文本做標記

最早期上個世紀七八十年代時是很小的圖片集 是通過人來添加圖像的文本標簽然后通過文本來搜索就夠了。之后就發展到了2004年前后的社交媒體時代那個時候像Flicker上圖片的Tag雖然也是人加的但是通過草根人群加的量就變得非常地大。通過這個也能做比較不錯的圖片搜索。再往后的標注就不是人給自己的圖片加標簽了而是通過設計一些標注的平臺——比較有名的是Google收購的Image Labeler——以游戲的方式對圖片進行標注。這些標注當然可以用來做圖像的搜索這就是通過人工加文本標注的方式進行圖像的搜索。

第二種通過網頁的文本對圖片進行索引

目前的互聯網通用圖片搜索引擎基本上都是基于這一套技術。通過網頁的文本來對圖片進行索引當然這里面也涉及到很多的細節包括怎樣從網頁上提取有效的文字以及2008年之后也有很多圖像分析的內容引進到基于網頁的圖片搜索里來。也就是說雖然圖像是網頁中的圖片但是也會對其進行內容分析——不管是打標簽還是特征抽取等——來改進文本搜索存在的一些缺陷提升搜索的精準性。

第三種自動標注

大量的學術論文是這個方向上的一種叫concept detection或者叫tagging。規模上小到幾十個、幾百個大到上千個、上萬個的標簽。這一類嚴格來講又可細分為幾類

Predefined categories。比如預先定好只分一千類然后就去訓練一個分類器把這個圖片標好。

不限定標簽的范圍或者說標簽的范圍非常大然后去學習圖片和標簽的一個共同的描述方式從而可以實現近似于free text的文本標注。

Implicit tagging即隱式的自動標注。搜索引擎在運行的過程中用戶在搜索時會點擊搜索結果這個時候搜索的詞和搜索的結果就通過被點擊這個動作建立起了一個關聯這種方式也可以認為是一種標注。雖然它有一些噪聲但是實際上也是非常有效的并且也可以用一些方法降低其噪聲甚至在相似圖像之間傳遞標簽從而擴大標簽的覆蓋率。這種標注對基于網頁的圖像搜索引擎對搜索質量的提升起到了非常關鍵的作用。

當然文本的搜索不是我們今天介紹的重點我們今天的重點講的是基于圖像的搜索。這個其實也可以分成兩類一類是圖像本身作為查詢輸入example-based這也是我們今天重點要去看的。另外一個是sketch的畫圖方法包括畫形狀、畫線、畫顏色分布等。

三、圖像搜索——從火熱到沒落再到興起

下面我們回到example-based的搜索主題這個方向在圖像搜索歷史上也經歷了不同的階段。

最早在二十世紀九十年代時那個時候叫做CBIR(Content-Based Image Retrieval)即基于內容的圖像檢索。但是那時基本上只能在幾千、幾萬幅圖上進行檢索而且檢索的效果很難保證。當時有一個一直流行到現在的詞叫做“語義鴻溝”這也是當時我們經常用來質疑基于圖像的搜索或CBIR到底靠不靠譜。因為當時的特征難以區分下圖所示的兩種Case。

所以這個方向到了2000年之后我們有時候開玩笑把它叫做Sunset?Project也就是像落日一樣沒有太大的希望了。這種基于樣例的檢索其實在之前也經常被人質疑

樣例從哪里來如果我有了這個樣例為什么還要搜索呢當然這個問題從今天來看已經不是問題了因為在上個世紀九十年代的時候獲取一個圖像的樣本還不是那么容易。在手機相機那么普及的今天獲取一個圖像是易如反掌的所以今天一般沒有人會問這個問題。

只有像落日這樣的顏色分布非常鮮艷且明確的圖搜索結果才會非常好因此在很多時候我們的搜索結果不是很好。

圖像搜索的沒落直到2008年左右才有所起色當時出現了一家叫TinEye的公司提供這樣一種網絡服務你提交一個圖片后它可以幫你找互聯網上跟此圖非常相似的圖片。這在當時引起了非常多的討論也就是說它解決了當時那些技術無法解決的scalability的問題。

那么這個scalability是個什么意思呢做圖像的檢索當圖片的量非常大時是沒有辦法把Query圖像的特征與數據庫里面的圖像進行一一對比的。以現在的計算能力如果圖像只有幾千個甚至上萬個問題都不是很大的。但是當你的圖像再往大到千萬、億級甚至到十億、千億級別的時候就沒有辦法了。

所以此時就要把圖片進行索引。索引在文本搜索里面是通過倒排的方法來做這個是非常容易實現的。但是圖像不一樣圖像的描述是它的特征而這個特征是一個向量。這個向量怎樣能夠有效地組織起來實現快速地檢索這是當時TinEye系統往前走了一步的問題。

上面這張圖是盡我所知把當時和后來的Large Scale Image Indexing的方法分了四類也就是用高維的特征怎樣去建索引的方法。這些方法都是在解決怎樣把高維空間的數據組織起來而方便查找的問題。

Partition tree是用各種各樣tree的方法把數據進行分割、分塊使得查找起來比較方便。

Hashing關于圖像搜索的Paper基本上都是在做Hashing。

Neighborhood Graph用鄰接圖的方法來建索引的方法。

Invert Index把所有的圖像特征轉化成視覺詞然后用倒排的方法來做。

這幾個方法之間基本上都是可以互相轉化的當然轉化時有時是有信息損失的。如果做大規模的、數據量非常大的圖像搜索我個人認為用倒排的方法來做比較合適。

以上是關于索引這一部分。但是索引這件事情解決了之后是不是就解決了基于內容的圖像搜索問題很遺憾實際上是沒有的。因為索引只是解決了scalability的問題而且這些方法在做有效性的評估的時候都是與brute-force的方法來比也就是和一個一個比距離的方法來比來判斷索引的方法和brute-force有多接近。但是圖像的表征問題也就是怎么樣有效描述這個圖像的問題還沒有很好地解決。只有描述得好才能夠比較兩幅圖像——基于內容的圖像搜索問題實際上就是兩個圖像比較的問題。當然一個真正的搜索系統其實比這個要復雜得多但它最核心的問題是兩幅圖像怎么比較。

四、深度學習的威力

如上所說還有一個問題是當時沒有解決的就是什么樣的特征才是有效的即可以讓我們“認為的”相似的圖像在特征上也是相似的特征上相似的也是我們認為相似的這樣一個問題。

這個問題真正取得進展確實是在深度學習出來之后它可以讓我們去按照自己所想要達到的目標去學習一個神經網絡通過這個神經網絡去抽取圖像的特征。

實際上搜索跟識別是密不可分的尤其是在做大規模圖像搜索時識別、檢測必不可少。識別有時也是要通過搜索來完成的例如如果你類別非常多的時候往往要通過搜索的方法來實現而不是通過模型的方法來做識別。所以搜索和識別在大數據時代的界限變得越來越模糊了它們之間互相需要互相利用。

五、圖像搜索系統的四個基本要求

上圖是一個通用的視覺搜索或者圖像搜索的大致流程。一個視覺搜索引擎分成兩塊

在索引建立的過程首先我們要到互聯網上去找到這些圖發現它以后還要選擇它??雌饋砗唵蔚膬蓚€詞——發現和選擇里面包含的文章卻很多。因為互聯網上的圖很多不可能把所有的圖都放在索引里面去這時候就涉及到應該把什么圖放進去才能滿足用戶的搜索需求。這個要求是說選擇出來的圖片應該能滿足當前時間點上大部分人搜索的需求就可以了這實際上會轉換成為一個機器學習的問題來解決。

選擇好后就要進行理解和索引要知道這個圖片里有什么內容。如果基于網頁就要從網頁上抽信息如果是完全基于圖像就要抽取圖像的特征進行理解并建索引。建立索引以后再把這些索引推到搜索服務的機器上去比如一個互聯網圖片搜索引擎這個時候可能要幾千臺機器才能hold住這個圖片庫的索引。

那么這樣的圖像或者視覺搜索系統在宏觀上來看應該有一些什么樣的要求呢我總結為以下四個方面

首先是相關性這是一個最基本的要求。也就是說當給了一幅圖像進去出來的東西要跟給出的圖像要是相關的。如何定義“相關”一般對于圖片搜索而言基本上是認為“跟它一樣”或者是“相像”。例如產品同款產品不管顏色是否一樣但它是相同的東西這就叫做相關性。相關性一般來說是做搜索的人最關心的一個問題在關于圖像搜索的學術論文里面基本上我們大多只關心這個問題。

第二個是覆蓋率這就跟產品非常相關。這里面有好幾個因素最直接的一個就是我希望搜什么都能給我結果。不是我只能搜衣服不能搜其他的商品或者我只能搜商品又不能搜別的東西。否則用戶的體驗就很不好。甚至是在電商的搜索引擎里面如果用戶輸入了一個非商品我們該怎么反饋給用戶這都是涉及到覆蓋率的問題。

伸縮性主要是兩方面的問題1是否能夠高效快速地處理大量的商品和商品的變化即是否能夠非??焖俚貙⒋罅可唐贩诺剿饕锩嫒ザ宜饕軌蚝芊奖愕馗隆R簿褪菍τ谏唐方ㄔ焖饕^程而言的一個伸縮性。2能否響應大量用戶的搜索請求。即當有大量的用戶同時訪問搜索服務時要能夠快速地響應所有的請求。

用戶體驗比較偏交互式用戶界面設計方面因此在此處不做詳述。

六、圖像搜索的主要應用領域

圖片搜索經常被質疑的是到底什么情況下會用到圖像搜索為什么要用圖像搜索這個問題從上個世紀到現在一直不斷的被提及。我總結一下圖像搜索主要可以在以下領域應用

1信息的獲取。例如這個圖片的對象是什么、在哪里這個人是誰或者這個花是什么。2) 拍照購物。當看到一個商品我不知道怎么用文字描述它能不能通過照片來搜索這個會在后面具體講述。3娛樂。例如一些視頻、電影、新聞、體育等也可能涉及一些搜索的問題。4) 監控監控里面可能涉及到的搜索。5其他。我個人認為目前端到端的應用電商拍照購物搜索是最solid的一個應用場景。

電商的圖片搜索跟一般的圖片搜索相比其實有更多的挑戰

用戶對相關性的期望更高。因為它的目的性非常明顯用戶搜索完了是要買東西的所以對相關性的期望也非常地高。

對覆蓋率的期望也非常高。比如用戶在嘗試“衣服”可以搜到之后他可能就會繼續搜“鞋子”鞋子搜完以后可能又會搜花、插座等。

用戶所查詢的圖像質量變化非常大。比如搜索一個玻璃杯它可能是透明的可能有反光、曝光不足、模糊甚至拍的東西是倒的等各種情況。

對系統性能要求很高。用戶會希望馬上就獲得結果你如果在后臺算兩三分鐘才給到結果肯定大家都跑掉了。

有非常具體的衡量標準。如果做算法的話經常會有一些衡量標準但是這些標準是不是真的對之后的業務是合適的一個標準呢

實際上在做真正的產品應用時我經常講一個叫做“照妖鏡”的東西就是衡量這個東西到底做得有沒有道理。比如UV獨立的訪客量是多少、GMV成交的金額是多少、轉化率有多高這些都是照妖鏡。但照妖鏡也不是只跟算法有關也會跟其他的產品設計有關——但最關鍵的還是系統的相關性和覆蓋性以及伸縮性。

當然我們的機會也是很多的因為在電商這個領域除了基礎的技術分布式計算的技術、深度學習的技術外首先商品的量非常多商品的圖片非常多第二個是用戶的量非常大這也讓這個事情有了更多的機會。

七、商品圖像搜索的關鍵技術

現在以電商的圖片搜索作為背景具體闡述其關鍵技術的實現。

1、相關性

首先要知道一個圖片的大致類型。例如如果是一個商品需要知道它到底是上衣——是男士的上衣還是女士的上衣還是鞋子等。這樣來避免搜索出的結果完全不靠譜這個我們一般把它叫做分類或識別。通過這個其實也可以看到識別在搜索里面也是非常的關鍵第一步也是必不可少的。

第二個問題是圖片中我感興趣的商品在哪里如果我們不做商品檢測或者主體檢測通常商品不是很大且背景也比較復雜而電商圖片數據庫里很多都是這種圖。其實復雜的背景對于電商的商品銷售量也是有影響的我們做過研究如果照片拍的背景比較好如街拍等其實是會促進商品的銷售的。

所以我們要做主體的檢測。主體的檢測方法在計算機視覺領域也有很多快速的方法基本上是先要找Proposal Window然后對其進行分類。這個場景通常要求速度非常快一個搜索請求進來后所有的操作——包括上述分類、主體檢測以及后面的一些步驟到最終的返回結果——都是要在幾百毫秒之內返回給用戶的。因此我們的Proposal Window就不能那么多否則計算量就相當的大所以這就會涉及到后續Proposal Window的refinement這樣一個步驟。

當已經知道這個商品在圖片中的位置后更關鍵的一條是到底用什么特征來描述商品呢如何能讓這個特征反映出商品的特性呢這也就是前面講過的怎樣讓這個特征可以去比較兩幅圖像——也就是兩個商品。

基本方法還是是利用深度學習這個工具force神經網絡收斂到一個地方使得特征輸出能夠反映出這個商品的特性例如些種類、風格、圖案、顏色等。

綜上可以從三個角度在很大程度上解決相關性的問題也就是從分類、主體的檢測以及圖像特征的角度讓相關性得到很大的改善。

2、覆蓋率

覆蓋率對用戶的體驗有相當大的影響——如果只能搜到這個而搜不到那個或者本來應該搜到的商品但是沒有找到這樣用戶體驗都會非常不好。

我把覆蓋率分為三個角度來講——

索引的覆蓋率。這是我們一般提到覆蓋率時所指的含義。簡單說就是索引里多少貨商品當然是越多越好種類越全越好這個比較容易理解。

特征的覆蓋率。特征的覆蓋率是指商品的描述能夠覆蓋各個種類不是只能做鞋子或只能做服裝而不能做別的東西甚至非商品是不是能做。為了描述的精準、描述能力的優化實際上不同的類型一般用不同的特征來描述。

搜索的覆蓋率。這個覆蓋率是電商場景下所獨有的因為電商只有商品圖像的索引沒有別的索引那么用戶如果輸入的不是電商產品的圖片該怎么辦比如用戶在街上看到一條很可愛的狗并拍照后在平臺上搜索該怎么處理呢——淘寶上可能沒有賣狗的吧這個時候我們可以把狗識別出來然后返回給用戶一些狗相關的產品這是一種解決方案。如果是風景、食品的話也可以對風景進行識別對食品里面的熱量進行識別然后把這些信息返回給用戶。

如果一定要返回電商商品的話比如用戶拍了一朵花也可以force搜索引擎還是到fashion這個領域去搜那么搜出來的衣服、飾品就會跟用戶輸入的圖像有一點關系看上去在某個方面很類似如下圖。

下圖的例子很有意思照片上是一個晚上的橋通過它搜出來的東西很有意思是格子樣式很像這個橋的線條的上衣。

3、伸縮性

伸縮性的實現方式主要有兩種

通過系統的方法也就是通過大量的機器來實現。索引技術有了系統的方法來實現因此對索引的要求其實沒有那么高有很多方法都可以完全滿足搜索系統的構建需求。正如講搜索引擎架構時所述索引會分到很多機器上去那么只要做到每一臺機器上的數據搜索效率足夠高的話那么這個系統就可以完成大規模的搜索任務。

對于算法而言就集中在一臺機器上怎么樣做到高效。那么一臺機器上怎么做到高效前面講到的圖像各種方法都可以用。

以上是關于電商圖片搜索的內容最后再給大家分享一些電商搜索產品的例子。下面這個產品叫做“拍立淘”在手機淘寶搜索框的右邊有一個小的攝象頭圖標點這個圖標就能進入“拍立淘”的界面。

以下是“拍立淘”圖片搜索的一些例子。

總結而言對于一個真正的應用產品來講視覺搜索和圖像識別確實仍有很多的挑戰但同時也有很多的機會。尤其是現在這個時代技術方面有深度學習的技術、大數據分析處理的技術包括分布式計算這樣一些平臺。數據的獲取也非常容易人人都有手機每個手機又都有相機就有了大量的圖形數據和大量活躍的用戶使得有機會讓圖像搜索的問題得到本質上的改善。雖然目前這個問題還沒有完全解決但是實際上在拍立淘里你也可以看到很多實際的例子真的邁出了很大一步。

八、圖像搜索的明天

展望圖像搜索和識別技術的未來我個人認為這可能不是某一個算法能解決的也不是僅憑深度學習就可以解決的也不是說一個搜索系統、識別系統就可以解決的。我認為是四個方面結合起來數據、用戶、模型和系統。這四個方面放在一起可能不斷地縮小語義鴻溝使得我們的搜索“所想”就能夠得到“所得”。

如果大家有興趣的話我現在阿里云帶領視覺計算組云上也涉及到一些視頻搜索的任務更多的還是識別、還有很多視頻處理、視頻分析、視頻識別等這些方面的一些需求包括教育、醫療方面、娛樂方面、體育方面可能都會有。

如果有想加入到我的項目組的朋友歡迎發送簡歷到vcidst@list.alibaba-inc.com。

來源:云棲社區

鏈接:https://yq.aliyun.com/articles/47859#

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容