【乾貨】一文詳解計算機視覺的廣泛應用:網路壓縮、視覺問答、視覺化、風格遷移等
引言
深度學習目前已成為發展最快、最令人興奮的機器學習領域之一,許多卓有建樹的論文已經發表,而且已有很多高質量的開源深度學習框架可供使用。然而,論文通常非常簡明扼要並假設讀者已對深度學習有相當的理解,這使得初學者經常卡在一些概念的理解上,讀論文似懂非懂,十分吃力。另一方面,即使有了簡單易用的深度學習框架,如果對深度學習常見概念和基本思路不瞭解,面對現實任務時不知道如何設計、診斷、及除錯網路,最終仍會束手無策。
本系列文章旨在直觀系統地梳理深度學習各領域常見概念與基本思想,使讀者對深度學習的重要概念與思想有一直觀理解,做到“知其然,又知其所以然”,從而降低後續理解論文及實際應用的難度。本系列文章力圖用簡練的語言加以描述,避免數學公式和繁雜細節。本文是該系列文章中的第三篇,旨在介紹深度學習在計算機視覺的其他任務的應用。
▌網路壓縮(network compression)
儘管深度神經網路取得了優異的效能,但巨大的計算和儲存開銷成為其部署在實際應用中的挑戰。有研究表明,神經網路中的引數存在大量的冗餘。因此,有許多工作致力於在保證準確率的同時降低網路複雜度。
低秩近似 用低秩矩陣近似原有權重矩陣。例如,可以用SVD得到原矩陣的最優低秩近似,或用Toeplitz矩陣配合Krylov分解近似原矩陣。
剪枝(pruning) 在訓練結束後,可以將一些不重要的神經元連線(可用權重數值大小衡量配合損失函式中的稀疏約束)或整個濾波器去除,之後進行若干輪微調。實際執行中,神經元連線級別的剪枝會使結果變得稀疏,不利於快取優化和記憶體訪問,有的需要專門設計配套的執行庫。相比之下,濾波器級別的剪枝可直接執行在現有的執行庫下,而濾波器級別的剪枝的關鍵是如何衡量濾波器的重要程度。例如,可用卷積結果的稀疏程度、該濾波器對損失函式的影響、或卷積結果對下一層結果的影響來衡量。
量化(quantization) 對權重數值進行聚類,用聚類中心數值代替原權重數值,配合Huffman編碼,具體可包括標量量化或乘積量化。但如果只考慮權重自身,容易造成量化誤差很低,但分類誤差很高的情況。因此,Quantized CNN優化目標是重構誤差最小化。此外,可以利用雜湊進行編碼,即被對映到同一個雜湊桶中的權重共享同一個引數值。
降低資料數值範圍 預設情況下資料是單精度浮點數,佔32位。有研究發現,改用半精度浮點數(16位)幾乎不會影響效能。谷歌TPU使用8位整型來表示資料。極端情況是數值範圍為二值或三值(0/1或-1/0/1),這樣僅用位運算即可快速完成所有計算,但如何對二值或三值網路進行訓練是一個關鍵。通常做法是網路前饋過程為二值或三值,梯度更新過程為實數值。
此外,有研究認為,二值運算的表示能力有限,因此其使用一個額外的浮點數縮放二值卷積後的結果,以提升網路表示能力。
精簡結構設計 有研究工作直接設計精簡的網路結構。例如,
-
瓶頸(bottleneck)結構及1×1卷積。這種設計理念已經被廣泛用於Inception和ResNet系列網路設計中。
-
分組卷積。
-
擴張卷積。使用擴張卷積可以保持引數量不變的情況下擴大感受野。
知識蒸餾(knowledge distillation) 訓練小網路以逼近大網路,但應該如何去逼近大網路仍沒有定論。
軟硬體協同設計 常用的硬體包括兩大類:(1). 通用硬體,包括CPU(低延遲,擅長序列、複雜運算)和GPU(高吞吐率,擅長並行、簡單運算)。(2). 專用硬體,包括ASIC(固定邏輯器件,例如谷歌TPU)和FPGA(可程式設計邏輯器件,靈活,但效率不如ASIC)。
▌細粒度影象分類(fine-grained image classification)
相比(通用)影象分類,細粒度影象分類需要判斷的影象類別更加精細。比如,我們需要判斷該目標具體是哪一種鳥、哪一款的車、或哪一個型號的飛機。通常,這些子類之間的差異十分微小。比如,波音737-300和波音737-400的外觀可見的區別只是窗戶的個數不同。因此,細粒度影象分類是比(通用)影象分類更具有挑戰性的任務。
細粒度影象分類的經典做法是先定位出目標的不同部位,例如鳥的頭、腳、翅膀等,之後分別對這些部位提取特徵,最後融合這些特徵進行分類。這類方法的準確率較高,但這需要對資料集人工標註部位資訊。目前細粒度分類的一大研究趨勢是不借助額外監督資訊,只利用影象標記進行學習,其以基於雙線性CNN的方法為代表。
雙線性CNN (bilinear CNN) 其通過計算卷積描述向量(descriptor)的外積來考察不同維度之間的互動關係。由於描述向量的不同維度對應卷積特徵的不同通道,而不同通道提取了不同的語義特徵,因此,通過雙線性操作,可以同時捕獲輸入影象的不同語義特徵之間的關係。
精簡雙線性匯合 雙線性匯合的結果十分高維,這會佔用大量的計算和儲存資源,同時使後續的全連線層的引數量大大增加。許多後續研究工作旨在設計更精簡的雙線性匯合策略,大致包括以下三大類:
(1) PCA降維。在雙線性匯合前,對深度描述向量進行PCA投影降維,但這會使各維不再相關,進而影響效能。一個折中的方案是隻對一支進行PCA降維。
(2) 近似核估計。可以證明,在雙線性匯合結果後使用線性SVM分類等價於在描述向量間使用了多項式核。由於兩個向量外積的對映等於兩個向量分別對映之後再卷積,有研究工作使用隨機矩陣近似向量的對映。此外,通過近似核估計,我們可以捕獲超過二階的資訊(如下圖)。
(3) 低秩近似。對後續用於分類的全連線層的引數矩陣進行低秩近似,進而使我們不用顯式計算雙線性匯合結果。
▌“看圖說話”(image captioning)
“看圖說話”旨在對一張影象產生對其內容一兩句話的文字描述。這是視覺和自然語言處理兩個領域的交叉任務。
編碼-解碼網路(encoder-decoder networks) 看圖說話網路設計的基本思想,其借鑑於自然語言處理中的機器翻譯思路。將機器翻譯中的源語言編碼網路替換為影象的CNN編碼網路以提取影象的特徵,之後用目標語言解碼網路生成文字描述。
Show, attend, and tell 注意力(attention)機制是機器翻譯中用於捕獲長距離依賴的常用技巧,也可以用於看圖說話。在解碼網路中,每個時刻,除了預測下一個詞外,還需要輸出一個二維注意力圖,用於對深度卷積特徵進行加權匯合。使用注意力機制的一個額外的好處是可以對網路進行視覺化,以觀察在生成每個詞的時候網路注意到影象中的哪些部分。
Adaptive attention 之前的注意力機制會對每個待預測詞生成一個二維注意力圖(圖(a)),但對於像the、of這樣的詞實際上並不需要藉助來自影象的線索,並且有的詞可以根據上文推測出也不需要影象資訊。該工作擴充套件了LSTM,以提出“視覺哨兵”機制以判斷預測當前詞時應更關注上文語言資訊還是更關注影象資訊(圖(b))。此外,和之前工作利用上一時刻的隱層狀態計算注意力圖不同,該工作使用當前隱層狀態。
▌視覺問答(visual question answering)
給定一張影象和一個關於該影象內容的文字問題,視覺問答旨在從若干候選文字回答中選出正確的答案。其本質是分類任務,也有工作是用RNN解碼來生成文字回答。視覺問答也是視覺和自然語言處理兩個領域的交叉任務。
基本思路 使用CNN從影象中提取影象特徵,用RNN從文字問題中提取文字特徵,之後設法融合視覺和文字特徵,最後通過全連線層進行分類。該任務的關鍵是如何融合這兩個模態的特徵。直接的融合方案是將視覺和文字特徵拼成一個向量、或者讓視覺和文字特徵向量逐元素相加或相乘。
注意力機制 和“看圖說話”相似,使用注意力機制也會提升視覺問答的效能。注意力機制包括視覺注意力(“看哪裡”)和文字注意力(“關注哪個詞”)兩者。HieCoAtten可同時或交替產生視覺和文字注意力。DAN將視覺和文字的注意力結果對映到一個相同的空間,並據此同時產生下一步的視覺和文字注意力。
雙線性融合 通過視覺特徵向量和文字特徵向量的外積,可以捕獲這兩個模態特徵各維之間的互動關係。為避免顯式計算高維雙線性匯合結果,細粒度識別中的精簡雙線性匯合思想也可用於視覺問答。例如,MFB採用了低秩近似思路,並同時使用了視覺和文字注意力機制。
▌網路視覺化(visualizing)和網路理解(understanding)
這些方法旨在提供一些視覺化的手段以理解深度卷積神經網路。直接視覺化第一層濾波器 由於第一層卷積層的濾波器直接在輸入影象中滑動,我們可以直接對第一層濾波器進行視覺化。可以看出,第一層權重關注於特定朝向的邊緣以及特定色彩組合。這和生物的視覺機制是符合的。但由於高層濾波器並不直接作用於輸入影象,直接視覺化只對第一層濾波器有效。
t-SNE 對影象的fc7或pool5特徵進行低維嵌入,比如降維到2維使得可以在二維平面畫出。具有相近語義資訊的影象應該在t-SNE結果中距離相近。和PCA不同的是,t-SNE是一種非線性降維方法,保留了區域性之間的距離。下圖是直接對MNIST原始影象進行t-SNE的結果。可以看出,MNIST是比較容易的資料集,屬於不同類別的影象聚類十分明顯。
視覺化中間層啟用值 對特定輸入影象,畫出不同特徵圖的響應。觀察發現,即使ImageNet中沒有人臉或文字相關的類別,網路會學習識別這些語義資訊,以輔助後續的分類。
最大響應影象區域 選擇某一特定的中間層神經元,向網路輸入許多不同的影象,找出使該神經元響應最大的影象區域,以觀察該神經元用於響應哪種語義特徵。是“影象區域”而不是“完整影象”的原因是中間層神經元的感受野是有限的,沒有覆蓋到全部影象。
輸入顯著性圖 對給定輸入影象,計算某一特定神經元對輸入影象的偏導數。其表達了輸入影象不同畫素對該神經元響應的影響,即輸入影象的不同畫素的變化會帶來怎樣的神經元響應值的變化。Guided backprop只反向傳播正的梯度值,即只關注對神經元正向的影響,這會產生比標準反向傳播更好的視覺化效果。
梯度上升優化 選擇某一特定的神經元,計算某一特定神經元對輸入影象的偏導數,對輸入影象使用梯度上升進行優化,直到收斂。此外,我們需要一些正則化項使得產生的影象更接近自然影象。此外,除了在輸入影象上進行優化外,我們也可以對fc6特徵進行優化並從其生成需要的影象。
DeepVisToolbox 該工具包同時提供了以上四種視覺化結果。該連結中提供了一個演示視訊:Jason Yosinski
http://yosinski.com/deepvis#toolbox
遮擋實驗(occlusion experiment) 用一個灰色方塊遮擋住影象的不同區域,之後前饋網路,觀察其對輸出的影響。對輸出影響最大的區域即是對判斷該類別最重要的區域。從下圖可以看出,遮擋住狗的臉對結果影響最大。
Deep dream 選擇一張影象和某一特定層,優化目標是通過對影象的梯度上升,最大化該層啟用值的平方。實際上,這是在通過正反饋放大該層神經元捕獲到的語義特徵。可以看出,生成的影象中出現了很多狗的圖案,這是因為ImageNet資料集1000類別中有200類關於狗,因此,神經網路中有很多神經元致力於識別影象中的狗。
對抗樣本(adversarial examples) 選擇一張影象和一個不是它真實標記的類別,計算該類別對輸入影象的偏導數,對影象進行梯度上升優化。實驗發現,在對影象進行難以察覺的微小改變後,就可以使網路以相當大的信心認為該影象屬於那個錯誤的類別。實際應用中,對抗樣本會將會對金融、安防等領域產生威脅。有研究認為,這是由於影象空間非常高維,即使有非常多的訓練資料,也只能覆蓋該空間的很小一部分。只要輸入稍微偏離該流形空間,網路就難以得到正常的判斷。
▌紋理生成(texture synthesis)和風格遷移(style transform)
給定一小張包含特定紋理的影象,紋理合成旨在生成更大的包含相同紋理的影象。給定一張普通影象和一張包含特定繪畫風格的影象,風格遷移旨在保留原圖內容的同時,將給定風格遷移到該圖中。
特徵逆向工程(feature inversion) 這兩類問題的基本思路。給定一箇中間層特徵,我們希望通過迭代優化,產生一個特徵和給定特徵接近的影象。此外,特徵逆向工程也可以告訴我們中間層特徵中蘊含了多少影象中資訊。可以看出,低層的特徵中幾乎沒有損失影象資訊,而高層尤其是全連線特徵會丟失大部分的細節資訊。從另一方面講,高層特徵對影象的顏色和紋理變化更不敏感。
Gram矩陣 給定D×H×W的深度卷積特徵,我們將其轉換為D×(HW)的矩陣X,則該層特徵對應的Gram矩陣定義為。通過外積,Gram矩陣捕獲了不同特徵之間的共現關係。
紋理生成基本思路 對給定紋理圖案的Gram矩陣進行特徵逆向工程。使生成影象的各層特徵的Gram矩陣接近給定紋理影象的各層Gram。低層特徵傾向於捕獲細節資訊,而高層特徵可以捕獲更大面積的特徵。
風格遷移基本思路 優化目標包括兩項,使生成影象的內容接近原始影象內容,及使生成影象風格接近給定風格。風格通過Gram矩陣體現,而內容則直接通過神經元啟用值體現。
直接生成風格遷移的影象 上述方法的缺點是需要多次迭代才能收斂。該工作提出的解決方案是訓練一個神經網路來直接生成風格遷移的影象。一旦訓練結束,進行風格遷移只需前饋網路一次,十分高效。在訓練時,將生成影象、原始影象、風格影象三者前饋一固定網路以提取不同層特徵用於計算損失函式。
示例歸一化(instance normalization) 和批量歸一化(batch normalization)作用於一個批量不同,示例歸一化的均值和方差只由影象自身決定。實驗中發現,在風格遷移網路中使用示例歸一化可以從影象中去除和示例有關的對比度資訊以簡化生成過程。
條件示例歸一化(conditional instance normalization) 上述方法的一個問題是對每種不同的風格,我們需要分別訓練一個模型。由於不同風格之間存在共性,該工作旨在讓對應於不同風格的風格遷移網路共享引數。具體來說,其修改了風格遷移網路中的示例歸一化,使其具有N組縮放和平移引數,每組對應一個不同的風格。這樣,我們可以通過一次前饋過程同時獲得N張風格遷移影象。
▌人臉驗證/識別(face verification/recognition)
人臉驗證/識別可以認為是一種更加精細的細粒度影象識別任務。人臉驗證是給定兩張影象、判斷其是否屬於同一個人,而人臉識別是回答影象中的人是誰。一個人臉驗證/識別系統通常包括三大步:檢測影象中的人臉,特徵點定位、及對人臉進行驗證/識別。人臉驗證/識別的難題在於需要進行小樣本學習。通常情況下,資料集中每人只有對應的一張影象,這稱為一次學習(one-shot learning)。
兩種基本思路 當作分類問題(需要面對非常多的類別數),或者當作度量學習問題。如果兩張影象屬於同一個人,我們希望它們的深度特徵比較接近,否則,我們希望它們不接近。之後,根據深度特徵之間的距離進行驗證(對特徵距離設定閾值以判斷是否屬於同一個人),或識別(k近鄰分類)。
DeepFace 第一個將深度神經網路成功用於人臉驗證/識別的模型。DeepFace使用了非共享引數的區域性連線。這是由於人臉不同區域存在不同的特徵(例如眼睛和嘴巴具有不同的特徵),經典卷積層的“共享引數”性質在人臉識別中不再適用。因此,人臉識別網路中會採用不共享引數的區域性連線。其使用孿生網路(siamese network)進行人臉驗證。當兩張影象的深度特徵小於給定閾值時,認為其來自同一個人。
FaceNet 三元輸入,希望和負樣本之間的距離以一定間隔(如0.2)大於和正樣本之間的距離。此外,輸入三元的選擇不是隨機的,否則由於和負樣本之間的差異很大,網路學不到什麼東西。選擇最困難的三元組(即最遠的正樣本和最近的負樣本)會使網路陷入區域性最優。FaceNet採用半困難策略,選擇比正樣本遠的負樣本。
大間隔交叉熵損失 近幾年的一大研究熱點。由於類內波動大而類間相似度高,有研究工作旨在提升經典的交叉熵損失對深度特徵的判斷能力。例如,L-Softmax加強優化目標,使對應類別的引數向量和深度特徵夾角增大。 A-Softmax進一步約束L-Softmax的引數向量長度為1,使訓練更集中到優化深度特徵和夾角上。實際中,L-Softmax和A-Softmax都很難收斂,訓練時採用了退火方法,從標準softmax逐漸退火至L-Softmax或A-Softmax。
活體檢測(liveness detection) 判斷人臉是來自真人或是來自照片等,這是人臉驗證/識別需要解決的關鍵問題。在產業界目前主流的做法是利用人的表情變化、紋理資訊、眨眼、或讓使用者完成一系列動作等。
▌影象檢索(image retrieval)
給定一個包含特定例項(例如特定目標、場景、建築等)的查詢影象,影象檢索旨在從資料庫影象中找到包含相同例項的影象。但由於不同影象的拍攝視角、光照、或遮擋情況不同,如何設計出能應對這些類內差異的有效且高效的影象檢索演算法仍是一項研究難題。
影象檢索的典型流程 首先,設法從影象中提取一個合適的影象的表示向量。其次,對這些表示向量用歐式距離或餘弦距離進行最近鄰搜尋以找到相似的影象。最後,可以使用一些後處理技術對檢索結果進行微調。可以看出,決定一個影象檢索演算法效能的關鍵在於提取的影象表示的好壞。
(1) 無監督影象檢索
無監督影象檢索旨在不借助其他監督資訊,只利用ImageNet預訓練模型作為固定的特徵提取器來提取影象表示。
直覺思路 由於深度全連線特徵提供了對影象內容高層級的描述,且是“天然”的向量形式,一個直覺的思路是直接提取深度全連線特徵作為影象的表示向量。但是,由於全連線特徵旨在進行影象分類,缺乏對影象細節的描述,該思路的檢索準確率一般。
利用深度卷積特徵 由於深度卷積特徵具有更好的細節資訊,並且可以處理任意大小的影象輸入,目前的主流方法是提取深度卷積特徵,並通過加權全域性求和匯合(sum-pooling)得到影象的表示向量。其中,權重體現了不同位置特徵的重要性,可以有空間方向權重和通道方向權重兩種形式。
CroW 深度卷積特徵是一個分散式的表示。雖然一個神經元的響應值對判斷對應區域是否包含目標用處不大,但如果多個神經元同時有很大的響應值,那麼該區域很有可能包含該目標。因此,CroW把特徵圖沿通道方向相加,得到一張二維聚合圖,並將其歸一化並根號規範化的結果作為空間權重。CroW的通道權重根據特徵圖的稀疏性定義,其類似於自然語言處理中TF-IDF特徵中的IDF特徵,用於提升不常出現但具有判別能力的特徵。
Class weighted features 該方法試圖結合網路的類別預測資訊來使空間權重更具判別能力。具體來說,其利用CAM來獲取預訓練網路中對應各類別的最具代表性區域的語義資訊,進而將歸一化的CAM結果作為空間權重。
PWA PWA發現,深度卷積特徵的不同通道對應於目標不同部位的響應。因此,PWA選取一系列有判別能力的特徵圖,將其歸一化之後的結果作為空間權重進行匯合,並將其結果級聯起來作為最終影象表示。
(2) 有監督影象檢索
有監督影象檢索首先將ImageNet預訓練模型在一個額外的訓練資料集上進行微調,之後再從這個微調過的模型中提取影象表示。為了取得更好的效果,用於微調的訓練資料集通常和要用於檢索的資料集比較相似。此外,可以用候選區域網路提取影象中可能包含目標的前景區域。
孿生網路(siamese network) 和人臉識別的思路類似,使用二元或三元(++-)輸入,訓練模型使相似樣本之間的距離儘可能小,而不相似樣本之間的距離儘可能大。
▌目標跟蹤(object tracking)
目標跟蹤旨在跟蹤一段視訊中的目標的運動情況。通常,視訊第一幀中目標的位置會以包圍盒的形式給出,我們需要預測其他幀中該目標的包圍盒。目標跟蹤類似於目標檢測,但目標跟蹤的難點在於事先不知道要跟蹤的目標具體是什麼,因此無法事先收集足夠的訓練資料以訓練一個專門的檢測器。
孿生網路 類似於人臉驗證的思路,利用孿生網路,一支輸入第一幀包圍盒內影象,另一支輸入其他幀的候選影象區域,輸出兩張圖的相似度。我們不需要遍歷其他幀的所有可能的候選區域,利用全卷積網路,我們只需要前饋整張影象一次。通過互相關操作(卷積),得到二維的響應圖,其中最大響應位置確定了需要預測的包圍盒位置。基於孿生網路的方法速度快,能處理任意大小的影象。
CFNet 相關濾波通過訓練一個線性模板來區分影象區域和它周圍區域,利用傅立葉變換,相關濾波有十分高效的實現。CFNet結合離線訓練的孿生網路和線上更新的相關濾波模組,提升輕量級網路的跟蹤效能。
▌生成式模型(generative models)
這類模型旨在學得資料(影象)的分佈,或從該分佈中取樣得到新的影象。生成式模型可以用於超解析度重建、影象著色、影象轉換、從文字生成影象、學習影象潛在表示、半監督學習等。此外,生成式模型可以和強化學習結合,用於模擬和逆強化學習。
顯式建模 根據條件概率公式,直接進行最大似然估計對影象的分佈進行學習。該方法的弊端是,由於每個畫素依賴於之前的畫素,生成影象時由於需要從一角開始序列地進行,所以會比較慢。例如,WaveNet可以生成類似人類說話的語音,但由於無法並行生成,得到1秒的語音需要2分鐘的計算,無法達到實時。
變分自編碼器(variational auto-encoder, VAE) 為避免顯式建模的弊端,變分自編碼器對資料分佈進行隱式建模。其認為影象的生成受一個隱變數控制,並假設該隱變數服從對角高斯分佈。變分自編碼器通過一個解碼網路從隱變數生成影象。由於無法直接進行最大似然估計,在訓練時,類似於EM演算法,變分自編碼器會構造似然函式的下界函式,並對這個下界函式進行優化。變分自編碼器的好處是,由於各維獨立,我們可以通過控制隱變數來控制輸出影象的變化因素。
生成式對抗網路(generative adversarial networks, GAN) 由於學習資料分佈十分困難,生成式對抗網路繞開這一步驟,直接生成新的影象。生成式對抗網路使用一個生成網路G從隨機噪聲中生成影象,以及一個判別網路D判斷其輸入影象是真實/偽造影象。在訓練時,判別網路D的目標是能判斷真實/偽造影象,而生成網路G的目標是使得判別網路D傾向於判斷其輸出是真實影象。
實際中,直接訓練生成式對抗網路會遇到mode collapse問題,即生成式對抗網路無法學到完整的資料分佈。隨後,出現了LS-GAN和W-GAN的改進。和變分自編碼器相比,生成式對抗網路的細節資訊更好。以下連結整理了許多和生成式對抗網路有關的論文:hindupuravinash/the-gan-zoo。以下連結整理了許多訓練生成式對抗網路的其技巧:soumith/ganhacks。
▌視訊分類(video classification)
前面介紹的大部分任務也可以用於視訊資料,這裡僅以視訊分類任務為例,簡要介紹處理視訊資料的基本方法。
多幀影象特徵匯合 這類方法將視訊看成一系列幀的影象組合。網路同時接收屬於一個視訊片段的若干幀影象(例如15幀),並分別提取其深度特徵,之後融合這些影象特徵得到該視訊片段的特徵,最後進行分類。實驗發現,使用"slow fusion"效果最好。此外,獨立使用單幀影象進行分類即可得到很有競爭力的結果,這說明單幀影象已經包含很多的資訊。
三維卷積 將經典的二維卷積擴充套件到三維卷積,使之在時間維度也區域性連線。例如,可以將VGG的3×3卷積擴充套件為3×3×3卷積,2×2匯合擴充套件為2×2×2匯合。
影象+時序兩分支結構 這類方法用兩個獨立的網路分別捕獲視訊中的影象資訊和隨時間運動資訊。其中,影象資訊從單幀靜止影象中得到,是經典的影象分類問題。運動資訊則通過光流(optical flow)得到,其捕獲了目標在相鄰幀之間的運動情況。
CNN+RNN捕獲遠距離依賴 之前的方法只能捕獲幾幀影象之間的依賴關係,這類方法旨在用CNN提取單幀影象特徵,之後用RNN捕獲幀之間的依賴。
此外,有研究工作試圖將CNN和RNN合二為一,使每個卷積層都能捕獲遠距離依賴。
參考文獻
-
A. Agrawal, et al. VQA: Visual question answering. IJCV, 2017.
-
M. Arjovsky, et al. Wasserstein generative adversarial networks. ICML, 2017.
-
N. Ballas, et al. Delving deeper into convolutional networks for learning video representations. ICLR, 2016.
-
L. Bertinetto, et al. Fully-convolutional siamese networks for object tracking. ECCV Workshop, 2016.
-
W. Chen, et al. Compressing neural networks with the hashing trick. ICML, 2015.
-
Y. Cui, et al. Kernel pooling for convolutional neural networks. CVPR, 2017.
-
M. Danelljan, et al. ECO: Efficient convolution operators for tracking. CVPR, 2017.
-
E. Denton, et al. Exploiting linear structure within convolutional networks for efficient evaluation. NIPS, 2014.
-
C. Doersch. Tutorial on variational autoencoders. arXiv: 1606.05908, 2016.
-
J. Donahue, et al. Long-term recurrent convolutional networks for visual recognition and description. CVPR, 2015.
-
V. Dumoulin, et al. A learned representation for artistic style. ICLR, 2017.
-
Y. Gao, et al. Compact bilinear pooling. CVPR, 2016.
-
L. A. Gatys, et al. Texture synthesis using convolutional neural networks. NIPS, 2015.
-
L. A. Gatys, et al. Image style transfer using convolutional neural networks. CVPR, 2016.
-
I. Goodfellow, et al. Generative adversarial nets. NIPS, 2014.
-
I. Goodfellow. NIPS 2016 tutorial: Generative adversarial networks, arXiv: 1701.00160, 2016.
-
A. Gordo, et al. End-to-end learning of deep visual representations for image retrieval. IJCV, 2017.
-
S. Han, et al. Learning both weights and connections for efficient neural network. NIPS, 2015.
-
A. G. Howard, et al. MobileNets: Efficient convolutional neural networks for mobile vision applications. arXiv: 1704.04861, 2017.
-
H. Hu, et al. Network trimming: A data-driven neuron pruning approach towards efficient deep architectures. arXiv: 1607.03250, 2016.
-
I. Hubara, et al. Binarized neural networks. NIPS, 2016.
-
A. Jiménez, et al. Class-weighted convolutional features for visual instance search. BMVC, 2017.
-
Y. Jing, et al. Neural style transfer: A review. arXiv: 1705.04058, 2017.
-
J. Johnson, et al. Perceptual losses for real-time style transfer and super-resolution. ECCV, 2016.
-
K. Kafle and C. Kanan. Visual question answering: Datasets, algorithms, and future challenges. CVIU, 2017.
-
Y. Kalantidis, et al. Cross-dimensional weighting for aggregated deep convolutional features. ECCV, 2016.
-
A. Karpathy, et al. Large-scale video classification with convolutional neural networks. CVPR, 2014.
-
A. Karpathy and L. Fei-Fei. Deep visual-semantic alignments for generating image descriptions. CVPR, 2015.
-
D. P. Kingma and M. Welling. Auto-encoding variational Bayes. ICLR, 2014.
-
S. Kong and C. Fowlkes. Low-rank bilinear pooling for fine-grained classification. CVPR, 2017.
-
A. Krizhevsky, et al. ImageNet classification with deep convolutional neural networks. NIPS, 2012.
-
T.-Y. Lin, et al. Bilinear convolutional neural networks for fine-grained visual recognition. TPAMI, 2017.
-
T.-Y. Lin and S. Maji. Improved Bilinear Pooling with CNNs. BMVC, 2017.
-
J. Liu, et al. Knowing when to look: Adaptive attention via a visual sentinel for image captioning. CVPR, 2017.
-
W. Lie, et al. Large-margin softmax loss for convolutional neural networks. ICML, 2016.
-
W. Liu, et al. SphereFace: Deep hypersphere embedding for face recognition. CVPR, 2017.
-
J. Lu, et al. Hierarchical question-image co-attention for visual question answering. NIPS, 2016.
-
J.-H. Luo, et al. Image categorization with resource constraints: Introduction, challenges and advances. FCS, 2017.
-
J.-H. Luo, et al. ThiNet: A filter level pruning method for deep neural network compression. ICCV, 2017.
-
L. Maaten and G. Hinton. Visualizing data using t-SNE. JMLR, 2008.
-
A. Mahendran and A. Vedaldi. Understanding deep image representations by inverting them. CVPR, 2015.
-
X. Mao, et al. Least squares generative adversarial networks. ICCV, 2017.
-
P. Molchanov, et al. Pruning convolutional neural networks for resource efficient inference. ICLR, 2017.
-
A. Mordvintsev, et al. Inceptionism: Going deeper into neural networks. Google Research Blog, 2015.
-
H. Nam, et al. Dual attention networks for multimodal reasoning and matching. CVPR, 2017.
-
J. Y. H. Ng, et al. Beyond short snippets: Deep networks for video classification. CVPR, 2015.
-
F. Radenović, et al. Fine-tuning CNN image retrieval with no human annotation. arXiv: 1711.02512, 2017.
-
A. Radford, et al. Unsupervised representation learning with deep convolutional generative adversarial networks. ICLR, 2016.
-
M. Rastegari, et al. XNOR-Net: ImageNet classification using binary convolutional neural networks. ECCV, 2016.
-
F. Schroff, et al. FaceNet: A unified embedding for face recognition and clustering. CVPR, 2015.
-
K. Simonyan, et al. Deep inside convolutional networks: Visualizing image classification models and saliency maps. ICLR Workshop, 2014.
-
K. Simonyan and A. Zisserman. Two-stream convolutional networks for action recognition in videos. NIPS, 2014.
-
V. Sindhwani, et al. Structured transforms for small-footprint deep learning. NIPS, 2015.
-
J. T. Springenberg, et al. Striving for simplicity: The all convolutional net. ICLR Workshop, 2015.
-
Y. Taigman, et al. DeepFace: Closing the gap to human-level performance in face verification. CVPR, 2014.
-
D. Tran, et al. Learning spatiotemporal features with 3D convolutional networks. ICCV, 2015.
-
A. Nguyen, et al. Synthesizing the preferred inputs for neurons in neural networks via deep generator networks. NIPS, 2016.
-
D. Ulyanov and A. Vedaldi. Instance normalization: The missing ingredient for fast stylization. arXiv: 1607.08022, 2016.
-
J. Valmadre, et al. End-to-end representation learning for correlation filter based tracking. CVPR, 2017.
-
O. Vinyals, et al. Show and tell: A neural image caption generator. CVPR, 2015.
-
C. Wu, et al. A compact DNN: Approaching GoogleNet-level accuracy of classification and domain adaptation. CVPR, 2017.
-
J. Wu, et al. Quantized convolutional neural networks for mobile devices. CVPR, 2016.
-
Z. Wu, et al. Deep learning for video classification and captioning. arXiv: 1609.06782, 2016.
-
J. Xu, et al. Unsupervised part-based weighting aggregation of deep convolutional features for image retrieval. AAAI, 2018.
-
K. Xu, et al. Show, attend, and tell: Neural image caption generation with visual attention. ICML, 2015.
-
J. Yosinski, et al. Understanding neural networks through deep visualization. ICML Workshop, 2015.
-
Z. Yu, et al. Multi-modal factorized bilinear pooling with co-attention learning for visual question answering. ICCV, 2017.
-
M. D. Zeiler and R. Fergus. Visualizing and understanding convolutional networks. ECCV, 2014.
-
L. Zhang, et al. SIFT meets CNN: A decade survey of instance retrieval. TPAMI, 2017.
作者 | 張皓(南京大學)
更多內容請關注【計算機視覺聯盟】公眾號!和眾多盟友一起暢享CV世界!