當前位置:
首頁 > 最新 > 跨域商品圖像檢索技術論文總結兼談對CV的一些淺薄的思考

跨域商品圖像檢索技術論文總結兼談對CV的一些淺薄的思考

這篇更新準備寫兩部分內容,第一部分是最近在研究的一個方向,看了三篇論文,總結一下;第二部分是隨著對這個領域越來越深入的了解,記錄一下自己的目前的理解(好無趣的開場白)。

Part I: Study note of cross-domain image retrieval based on deep learning technology

看了跨域圖像檢索這個方向最近的幾篇論文,分別如下圖所示:

這一篇簡稱WTBI(Where to buy it)[4],啊,北卡Chapel Hill想必有人會知道我在說什麼

這一篇簡稱DARN[2],因為它的主要貢獻是構建了一個雙通道深度神經網路dual attribute-aware ranking network。

這一篇簡稱DeepFashion[3],因為它的主要貢獻是做了一個詳細語義標註的資料庫DeepFashion(此時馬爸爸笑了)。

這三篇論文主要解決的問題都是,我給你一張商品的街拍圖,希望能夠通過圖片識別檢索技術找到電商資料庫中相對應的商品,用街拍圖匹配標準電商圖,是所謂跨域檢索。這算是計算機視覺領域中非常實際的一個應用。而因為街拍圖的不可控因素太多,如光線、背景環境、身材和衣服尺寸、街拍的pose、相機的角度、以及衣服的層疊搭配導致不能看到服裝的全貌(occlusion)等等,所以實際上的識別精度仍然很低,還有很大的改進空間。

這裡具體講DARN的實現方法,其他的就用到了就提一下。

DARN的做法是構建了兩個一樣的NIN網路(Network in network)[1](糾結了一下要不要寫reference,還是寫吧為了自己以後回頭查方便),也稱為兩條通道,每一條通道裡面有5層卷積神經網路。一條通道用來訓練標準電商圖,一條通道用來訓練街拍圖,這樣兩條通道就能分別表達自己這個域內的具體細節信息,並且能夠生成高層的(我理解就是抽象等級更高,比如紋理材質等可視化的特徵就是低級特徵,oriented edges就是高級特徵)可類比特徵作為輸出。最後的在整個網路的輸出之前的全連接層FC2(fully-connected layer)層,又發散成樹狀結構的全連接層FC3,每一個發散的分支又代表具體商品的其中一種特性。

比如當輸入為一件衣服的時候,那麼每一條分支就分別代表衣服的紐扣,衣服的類別,衣服的顏色。。。等等,每一條分支的神經節點數就是這個特徵下的種類數。比如衣服類別這個分支節點數就是20,因為資料庫里記錄的衣服類別有T恤、襯衫、皮衣。。。等等一共20種。

這麼做的目的是,因為每一種特性都有一個確定的值,所以最後在每一條分支上都使用交叉熵損失函數cross-entropy loss。但同時考慮到有些衣服的某些特徵可能採集不到,在這種情況下對應的分支的梯度值就直接設置為0,交叉熵損失函數表達式如下:

其中Xj表示第j件衣服的圖片,aj表示其對應的特徵標籤,w_pos表示訓練集裡面相同數據的比率係數,w_neg表示訓練集裡面不同數據的比率係數。

為了對語義特徵信息進行編碼,以更全面地抓取特徵信息及其內在關聯,這個網路還用了另外一個損失函數,叫作triplet ranking loss,兩個損失函數聯合推動網路收斂。這個triplet ranking loss是作用在全連接層FC1上的。下面把整個網路模型供出來:

Triplet ranking loss的原理是一個三元組裡包含一個商品的電商-街拍對應圖,以及一個不同商品的街拍圖(如:電商裙子+街拍裙子+街拍包),那麼我們使電商裙子和街拍裙子的特徵距離儘可能地近,又使它們和街拍包的特徵距離拉遠,其中它們之間拉開的距離起碼應該是是margin m,表達式如下所示:

d()是一個距離函數。

通過triplet ranking loss,網路能學習到想要的相似度排序,同時因為同一商品的電商圖和街拍圖是通過兩條通道分別訓練的,在FC1層做triplet ranking loss能保證從兩條通道分別提取出的特徵具有可比性,使兩條通道更關聯。

此外,在FC1做triplet ranking loss要考慮到FC1層編碼全局特徵,所以精細的本地特徵可能丟失,但是這部分特徵對識別商品圖像又特別重要,所以在卷積層提取出的本地特徵也需要被加入進去,這個模型將第4層卷基層的池化層和第5層卷基層的池化層加入進去了一起算triplet ranking loss。

最後講一下輸入:在輸入之前,因為圖片不僅僅是商品本身,還有很多背景噪音,所以還需要先做預處理檢測和剪切出商品部分,最後輸入DARN的像素是剪切好的三元組。圖片我自己從某寶上扒的,萬一真的點子背被買家本尊發現了找上門來……那我就刪掉

精度就不分析了,因為這就引出了第二個我想說的問題。

Part I: Study note of cross-domain image retrieval based on deep learning technology

最近真正坐下來做科研的時間不多,於是碎片時間就瀏覽了很多相關信息,發現原來已經有很多人意識到,在這個現有的深度神經網路的基礎上做各種微調提高精度的事情,其實已經漸漸偏離做科研的本質,愈發像做工程了。而更關鍵的是,這個深度神經網路,把表達、演算法、和實現這三個層次混合到了一起,導致了誰也沒法解釋這個模型這麼拼能提高精度2%的原因是什麼,演算法收斂到底是全局收斂還是局部收斂……這些都不用管,只要精度提高了一點點,就算貢獻。不過最近2017年的CVPR大會好像有一篇paper提到了卷積神經網路的可解釋性,還沒來得及仔細研讀[5]

話說回來,包括人工智慧、人的思維這些東西其實都是隨機性過程,人的思維應該是建立在概率推理基礎之上的(最近因為這個感悟,反覆想起之前有個big man跟我說他建議人人都應該學一學概率論)。所以我們現在在機器學習這個領域中信手拈來的這些公式,它們都是概率統計領域嚴密的推導出來的成果,其實機器學習machine learning應該叫做統計學習statistical learning才對【初探計算機視覺的三個源頭、兼談人工智慧|正本清源】。

具體到計算機視覺這個領域,雖然我們一直說靈感是來自於生物神經網路,其實我們自己都知道相似性非常有限,理論的自洽性還是來自於概率統計模型。我們可以參考心理學和神經科學的結論, 但這不是主要的,就像我們要造飛機, 可以參考鳥類的結構, 但關鍵還是建立空氣動力學,才能從根本上解釋這個現象, 並創造各種飛行器, 走得更遠。

最後最近有很火的聲音說人工智慧自己都學會了編程,我們還有必要繼續學編程跟它們玩下去嗎【學界 NEAT學習:教機器自我編程】?在這個過程中,也許我們能發現機器的做法完全跳出了人類的常規操作,給了我們新的靈感,在前進的路途上掌握更多能夠馴化它們的武器。引用周博磊的一句話——人工智慧打破了人類思維和認知的定式,師夷長技以制夷嘛~

Reference

M. Lin, Q. Chen and S. Yan, Network in network. In ICLR, 2014.

J. Huang, R. S. Feris, Q. Chen, and S. Yan, Cross-domain image retrieval with a dual attribute-aware ranking network. In ICCV, 2015.

Z. Liu, P. Luo, S. Qiu, X. Wang and X. Tang, DeepFashion: powering robust clothes recognition and retrieval with rich annotation. In CVPR, 2016.

M. H. Kiapour, X. Han, S. Lazebnik, A. C. Berg, and T. L. Berg, Where to buy it: matching street clothing photos in online shops. In ICCV, 2015.

D. Bau, B. Zhou, A. Khosla, A. Oliva, and A. Torralba, Network Dissection: Quantifying Interpretability of Deep Visual Representations, in CVPR, 2017.

請長按以上二維碼關注夏至又一年

由Gabrielle Tse小姐姐建立

小姐姐主要學習人工智慧

具體地說是用深度學習研究計算機視覺

但是同時又想要做更多跟機器人結合的方向

anyway

在這裡記錄下我的學習筆記

以及插科打諢

謝謝您的閱讀

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 夏至又一年 的精彩文章:

TAG:夏至又一年 |