[Paper Share - 6]Video2Shop: Exact Matching Clothes in Videos to Online Shopping Images
導讀
這是一篇阿里巴巴團隊發表在CVPR2017關於衣物檢索的論文。文章提出從視頻到網店商品的檢索方法。通過LSTM對視頻幀進行處理,提取一系列特徵,將這些特徵和資料庫的特徵一起通過一個學習來的樹形網路計算得到相似度。文章鏈接
1. Introduction
這部分主要講述應用場景,並指出Video2Shop的檢索相比stree2shop的檢索會面對的難題:比如雜亂的背景,視角挑戰,遮擋,不同的光照條件,運動模糊等等。使得Video2Shop更難。於是作者提出一個框架AsymNet來解決這樣的問題。如下圖Figure 1。
從圖中可以看出,AsymNet分成3部分:IFN,VFN,SN。訓練的時候,IFN對shoping image(網店的商品圖)進行處理,提取特徵m,而該商品對應的視頻由VFN處理,VFN先用Faster RCNN進行檢測,然後用KCF演算法進行跟蹤得到一些列的clothing patches,並用IFN提取相應的特徵。這些特徵進入兩層的LSTM後也會輸出對應的隱藏層特徵,當然你可以設置更多的幀數,獲得更多的特徵。LSTM輸出的特徵和上面商品展示圖的特徵一塊傳進SN,SN是一個樹結構網路,參數可以學習得到。經過網路處理後輸出一個相似度。測試時也是同樣操作。
文章貢獻點主要在於提出了這樣的網路結果,並給出一個近似的訓練方法來提高訓練速度。但是他們沒有公開他們的數據和代碼,這比較可惜。(沒有代碼和數據,說個**(手動屏蔽敏感字眼))2. Related Work
這部分沒啥好說的。快進>>>
3. Representation Learning Network
3.1 Image Representation Learning Network
IFN是用來提取圖像特徵的。網路主體是VGG-16,用的是Faster RCNN的框架。由於衣服多種多樣,大小不一,所以為了統一輸出特徵的大小,在卷積層和全連接層之間插入了一個SSP層。下圖Figure 2所示。
3.2 Video Representation Learning Network
如圖1為了學習到時域信息,作者只好上LSTM,對於一個包含n個clothing patch的序列,用IFN提取特徵後,灌進LSTM,得到對應的LSTM輸出的特徵序列。經過作者的實驗,一層的LSTM很難學到時域信息,使用兩層可以獲得較好的效果。
4. Similarity Learning Network
4.1 Motivation
相似度網路的輸入包含LSTM的多個特徵和shop image的特徵,這是個多對一的問題。傳統的做法是對LSTM的特徵序列進行average pooling或者max pooling,又或者直接取最後一層的特徵。但是作者認為這些做法過於簡單粗暴,不能很好地處理視頻數據多變和複雜的數據。
作者認為這是一個混合估計問題(mixture estimate problem),這類型的問題可以通過拆解多個簡單的問題並分別求解,最後結合在一起作為複雜問題的解。於是作者想通過應用專家模型來解決這個問題。多個fusion nodes估計不同視角的相似度,最後加權得到總的相似度。4.2 Network Structure
如圖1中,樹結構有兩種節點,similarity network node(SNN)和fusion node(FN),對應書的葉子和分支。
SNN比如LSTM輸出的某個狀態hi,並且有個圖片的特徵m,SNN計算hi和m的相似度,SNN的結構是兩個全連接層:fc1(輸出大小大小256)和 fc2 (輸出大小1)。fc2的輸出標記為Zi的話,那麼SNN最後的輸出yi由下面式子計算得到。FN
SNN是分段平滑的,類似於廣義的線性模型。一旦SNN計算好後,fusion score將會通過由FN組成的樹結構進行計算。為了簡單起見,這裡只是展示了兩層的樹結構。底層(low-level)的FN和SNN鏈接,而頂層(top-level)的SN指向根節點。對於底層的FN_ij,即第i個底層FN鏈接第j個頂層FN,這裡說的有點抽象,看圖就懂了。定義一個中間變數eij如下:式子中vij是FN的參數,xij是來自SNN的fc1層的輸出。底層FN的輸出gij是一個正則化後的權重。正則化時,是對所有鏈接到同一個頂層FN的底層FN的輸出進行正則化。如下式子:
相似的對於頂層的FN也是類似計算,如FNj,只不過其輸入xj是來自底層FN的xij的average pooling,並且也有中間變數ej,
輸出則是所有的頂層FN進行正則化。
然後底層輸出的權重g和SNN輸出的相似度相乘得到底層的加權權重,傳遞到頂層時,來自不同底層FN的得分相加,再乘以頂層的權重g。最後頂層的得分相加,得到sg。
(看不懂我表述的看下圖就懂了)4.3 Learning Algorithm
接著是訓練策略,分兩個階段進行,先是特徵表示網路(IFN和VFN)和SNN節點學習,然後固定上面兩個網路,學習FN節點。
SNN對於SNN的學習,可以表示為最小化一個對數函數。FN
對於某一個來自fc1的特徵batch,全局相似度sg可以表示為各個SNN相似度的加權值,如下式子:其中p(s)和pi(y)是全局相似度和第i個SNN輸出的相似度。gj和gij分別是頂層和底層FN輸出的權重因子。這個式子的意思是,SNN的相似度通過多層FN傳遞到最後併產生全局相似度。
然後根據貝葉斯準則,頂層FN和底層FN的後驗概率可以表示成下式子:
這樣子的話,對於式子6就可以得到一個梯度下降演算法。其對數似然函數可以表示為:
然後對上式求導可以得到,剃度公式如下:
a是學習率,vj和vij是頂層和底層的FN參數。這樣我們就可以學習這個樹結構網路了。實驗中,作者使用費5層的樹結構。每層的FN節點數分別是32,16,8,4,2。
5 Approximate Training
簡單來說就是對LSTM的hidden state複製2xS份。
6 Experiment
6.2 對比特徵表示網路的
主要和下面四個進行對比
- Average pooling,
- Max pooling,
- Fisher Vector [21]
- VLAD[12].
6.3 SN網路的結構選擇實驗
實驗對比了選擇不同的level數,和多種不同的FN節點來構建實驗。主要考慮兩種結構:
- 相同的分支,所有的FN節點有相同數量的分支。這裡設計了兩個網路,一個只有一層,包含32個FN節點。另一個有5層,包含62個FN節點。
- 不同的分支,設計了6個網路,分支按照增長的3個:4-8,2-4-4,2-2-2-4;分支下降的3個:8-4,4-4-2,4-2-2-2;
表現如圖:
6.4 Similarity Learning Network的表現
這裡作者將本文方法和一些沒有FN節點的方法進行對比。
可以看到AVG的方法比Max Pooling的方法好。Last的方法比AVG和Max的都好,因為Last的方法學到了全部的時間信息。
6.5 和所有State-of-the-art的方法比較
主要比較下面5個方法。
AlexNet (AL)Deep Search (DS)F.T. Similarity (FT)
Contrastive Softmax(CS)Robust contrastive loss (RC)從這個表可以知道,直接使用卷積特徵的AL和DS效果較差,而帶有類別信息的RC要比CS好。對於一些其clothing trajectory沒有明顯區分度的類別,RC要比本文的AsymNet好。不過整體上AsymNet都是很不錯。
另外,作者貼了下AsymNet的一些效果圖。從圖可以看出,有些細節比較難區分,比如圖案不一致,或者顏色不一致。
7. Conclusion
最後作者說,下一步將會引入衣服屬性來提高網路的表現。
好了,今晚的論文分享到這裡。堅持就極大可能獲得勝利。加油!晚安。
------少俠阿朱,2017.12.08 於深圳
轉載請註明出處哦。簡書 知乎
推薦閱讀:
※Hulu機器學習問題與解答系列 | 第七彈:非監督學習演算法與評估
※[貝葉斯三]之決策函數和決策面
※南京大學周志華教授綜述論文:弱監督學習
※2 最簡單的驗證碼生成
TAG:深度學習DeepLearning | 機器學習 |