1. 程式人生 > >CVPR 2017部分論文小結

CVPR 2017部分論文小結

語義分割與物體識別

One-Shot Video Object Segmentation

本文處理了視訊物體分割的問題。

本文提出模型OSVOS,利用第一幀標註的圖片來實現整個視訊序列中該物體的分割。所有幀都均為獨立處理,但結果卻很穩定連貫,並達到state-of-the-art。具體方法為:

  1. Foreground Branch (圖1.1):模型利用ImageNet,pre-train一個類似VGG的網路。修改包括:將用於分類的全連線層移除,使用快速的image-to-image inference,加separate skip paths等。輸出為是否為前景,loss為每個畫素點是否的交叉熵。由於ImageNet不帶前後景訓練集,pre-train (圖2.1) 完成後在DAVIS資料進行前後景訓練 (圖2.2) ;最終利用第一幀的前景掩碼進行fine-tune (圖2.3) 。
  2. Contour Branch (圖1.2):由於想要達到精準定位,需要獲取物體的輪廓。模型提取輪廓的網路和Foreground Branch相同,輸出為是否是輪廓。由於輪廓提取對recall的要求很高,網路採用了Pascal-context資料集進行訓練。
  3. Boundary Snapping (圖1.3):結合前景掩碼和輪廓掩碼。對輪廓掩碼,使用較低閾值進行UCM(Ultra metric Contour map)來計算輪廓內的超畫素。然後對這些畫素點進行大多數投票(與前景掩碼的重合度超過50%)來確定最後前景的分割。

Video Propagation Networks

本文提出一個在視訊上傳遞資訊(如語義分割,物體分割)的方法。

本文提出了VPN模型:給定前幾幀的資訊mask V = \{v_1, v_2, ... , v_i\} (可以離散,如語義;或連續,如顏色),根據對應幀的影象 S = \{s_1, s_2, ... , s_i\} ,我們可以得到一個函式 F(v_{t-1}, v_{t-2}, ... ; s_t, s_{t-1}, s_{t-2}, ...) = v_t 來預測下一個幀的資訊。通過每下一幀的推斷,資訊最終可以傳遞到整個視訊序列;並且由於模型一旦開始傳播,給定輸入圖片不需要未來幀的加入,速度上可以完全實現線上級別。模型是一個完整的端到端的網路設計:

  1. 總體:文章先於第3部分介紹了雙邊濾波器(Bilateral Filter),並介紹雙邊濾波可以分為Splat(將圖片向量投射到高維網格)、Convolve(高維濾波)、Slice(將結果投射到低維興趣點)的三步實現。如圖2、3所示,VPN的實現就是分為這三部分考慮。
  2. Bilateral Network (BNN):啟發自joint bilateral upsampling和learnable bilateral filters,BNN有三個重點:
    1. Fast Bilateral Upsampling Across Frames:模型選用特徵向量 F_i = (x, y, r, g, b, t) 來編碼位置顏色和時間,這種表示方法使得各個pixel之間的同圖相關性被降低。同時模型也測試了加入光流資訊的特徵向量。
    2. Learnable Bilateral Filters:對於每個 v_i \in \mathbb{R}^b ,特徵 F_{1, 2, ..., t} 可以被一個 S_{splat} 矩陣替代,可以得到 v_{splatted}^{i} = S_{splat}v_i ,整合得到的 v_{splatted} 分佈在一個permutohedral lattice上。然而實際上 F 上的點之間的距離很接近,所以模型提出需要用一個filter bank B \in \mathbb{R}^{k \times d} 來處理。為了速度考慮,模型使用了 1 \times 1 的filter,並整合Splat、Convolve和Slice為一個Bilateral Convolution Layer (BCL)。
    3. BNN Architecture:如圖3所示,兩層 \text{BCL}_a\text{BCL}_b 使用不同的scale(比例通過學習得到)處理輸入,經過一個 1 \times 1 的卷積層重新輸出到原先的維度。
  3. Spatial Network (CNN):網路只含有三個32通道的卷積層,用來refine第 t 個frame的資訊。最後經過一個 1 \times 1 的卷積層,輸出 v_t

Not All Pixels Are Equal: Difficulty-Aware Semantic Segmentation via Deep Layer Cascade

本文處理了視訊物體分割的問題,並獲得第一屆DAVIS Challenge語義分割比賽冠軍。

本文認為,在語義分割任務中,影象中的畫素不應該被平等對待,而是存在難易區別的。(疑問:其實也類似attention的思路?)經統計,本文將圖片上的畫素分成了簡單,中等,困難三種集合,如對物體內部或者大塊區域分割較為容易,而邊界分割較為困難等。

因此,本文提出模型Deep Layer Cascade來針對性地處理不同難易程度的畫素。如圖所示,其中Layer Cascade (LC) 是在Inception-Resnet-v2的基礎上改進的。模型分為三個階段,每個階段都會分叉出兩層卷積層和softmax loss,進行單獨的畫素語義輸出;同時每個階段引入了一個概率閾值ρ,利用ρ來控制該階段應該處理哪些畫素:大於ρ的在本階段處理,小於ρ的傳至下一階段,從而針對性處理畫素並且提高計算速度。由於ρ的控制,每個階段處理的畫素不相同,最後將三個階段所得輸出直接相加就可以得到最終結果。

 

同時,為了針對性處理畫素,本文提出Region Convolution來只處理每個階段感興趣的區域,並忽視其他區域。Region Convolution本質上是加了一個二值mask,感興趣的區域標註1,其它區域標註0,進行選擇性卷積。

Object Detection in Videos with Tubelet Proposal Networks

本文處理了視訊物體檢測的問題。(以下引用及改編自商湯科技

相較於傳統靜止圖片的物體檢測問題,現有的視訊物體檢測方法通常基於時空「管道」(tubelets),即跨時間連線的檢測框來有效的應用視訊中的時域資訊。但是現有方法中時空管道生成的質量和效率往往差強人意:基於運動資訊的生成方法只能生成較短的時空管道;而基於影象資訊的生成方法需要花費大量的計算量,也不能保證對於物體較高的召回率。

本文將傳統針對靜止影象的FasterRCNN框架進行了擴充套件:將視訊物體檢測框架擴充套件為「候選時空管道生成」和「候選時空管道識別」兩個模組,並提出了一種高效率的候選時空管道生成方法,能夠在保證時空管道較長長度的同時,儘可能的保留不同時空管道的多樣性從而提高物體的召回率。基於這些高質量的候選時空管道應用編碼-解碼LSTM網路進行時空管道的識別能夠有效的提升檢測整體的正確率。作者還對Tubelet Proposal Network初始化和不同設定進行了詳盡分析。基於TPN的物體檢測平均正確率相較於靜止影象檢測框架有>5%的提升。

本文文是商湯科技在2016年ImageNet競賽第一工作上進行擴充套件後提出的全新視訊物體檢測框架,相較於現有演算法對視訊中物體檢測的效率和準確率進一步提升。

Surveillance Video Parsing with Single Frame Supervision

本文處理了視訊物體檢測分割的問題。

Instance-Level Salient Object Segmentation

本文處理了圖片中顯著物體分割識別的問題。

如圖所示,本文的方法分為三步:預測salient map,檢測salient object輪廓,識別salient object實體。同時文章也建立了一個1000個圖片的資料庫,包括它們的salient instance annotations。詳細的設計如下:

  1. Multi-scale Refinement Network:如圖3所示,網路層設計自VGG16改編而來:
    1. 網路利用了U型的multi-scale方法來解決不同圖片尺寸輸入的問題(注:此方法今年很多paper都有用到)。另外,由於物體識別和salient object輪廓都需要同時提取low-level cues和high-level semantic information,網路的U型設計同時考慮了網路中bottom-up和top-down的資訊傳遞。
    2. 網路將輸入的圖片分別scale到 \{1, 0.75, 0.5\} ,分成三個並行的不同scale的模型,並且他們共享引數。
    3. 網路的輸出為一個0到1的probability map,表示saliency的二元檢測。最終輸出如圖4所示,經過一個attention模型,為三個map的per-pixel加權和。
    4. 訓練的時候針對label不平衡做了一些tricks,詳情見原文3.1.3
  2. Salient Instance Proposal:文章使用multiscale combinatorial grouping (MCG) 演算法,從contours生成salient object proposals。詳細的說,對於四個contour maps(三個來自不同的scale,另一個是他們的合成結果),每個分別生成單獨的ultrametric contour map (UCM) 來表示hierarchical image segmentation。這四個hierarchy被對齊,然後結合生成一個hierarchical segmentation和一個ranked object proposals;這些proposals經過處理優化後最終輸出salient object proposals。
  3. Refinement of Salient Instance Segmentation:文章使用CRF去結合salient regions和salient object proposals,詳細方法見引用:
Suppose the number of salient instances is K. We treat the background as the (K+1) st class, and cast salient instance segmentation as a multi-class labeling problem. At the end, every pixel is assigned with one of the (K+1) labels using a CRF model. To achieve this goal, we first define a probability map with (K+1) channels, each of which corresponds to the probability of the spatial location being assigned with one of the (K+1) labels. If a salient pixel is covered by a single detected salient instance, the probability of the pixel having the label associated with that salient instance is 1. If a salient pixel is not covered by any detected salient instance, the probability of the pixel having any label is 1/K. Note that salient object proposals may have overlaps and some object proposals may occupy non-salient pixels. If a salient pixel is covered by k overlapping salient instances, the probability of the pixel having a label associated with one of the k salient instances is 1/k. If a background pixel is covered by k overlapping salient instances, the probability of the pixel having a label associated with one of the k salient instances is 1/(k+1), and the probability of the pixel having the background label is also 1/(k+1).

Temporal Convolutional Networks for Action Segmentation and Detection

本文提出了一個視訊動作分割和檢測的方法。

本文提出了模型TCN,其中Encoder-Decoder風格如圖1所示,Dilated風格如圖2所示,輸入是一組video features,如其他視訊卷積處理網路的輸出;輸出是動作標籤。

風格轉換

Real-Time Neural Style Transfer for Videos

本文實現了實時的視訊風格轉換。

模型架構類似李飛飛的Perceptual Losses for Real-Time Style Transfer and Super-Resolution,先用一個下卷積+資訊提取+上卷積的Resnet去stylize video, 然後進入Vgg-19來算spatial loss,同時加上{輸出後幀}和{輸出前幀+光流}的temporal loss。

文章的一大亮點是在保持了一定的coherency的前提下,達到了real-time級別(0.041s on NVIDIA Tesla K80 GPU)。由於只在training過程中使用光流做loss,而不是像MSRA的Coherent Online Video Style Transfer那樣在inference過程也用到,節省了大量時間。

文章提到,考慮Long-Term Temporal Consistency與不考慮效果差不多;這一點實際基於在他們自己的模型架構上,對此結論仍然可以進行一些探討。

超解析度

Deep Laplacian Pyramid Networks for Fast and Accurate Super-Resolution

本文實現了快速、高精度的超解析度預測。

傳統的超解析度預測有一些共同點:

  1. 採用L2 loss:因為L2 loss函式不能找到由低解析度到高解析度的潛在的多模態分佈,因此會不可避免地產生模糊的預測。例如,一個低解析度的部分可能對應多個高解析度的部分,用L2 loss會導致結果過於平滑,失去了部分資訊,也不符合人類視覺。
  2. (除VDSR外)輸入圖片為固定尺寸:利用線性插值轉為指定尺寸時增加了人為噪聲。
  3. 從輸入直接到超解析度輸出,無法獲得中間的超解析度結果。

本文模型LapSRN,進行了如下改進:

  1. 金字塔結構:網路有兩個分支,分別負責特徵提取和影象重構。藍色箭頭代表上取樣,綠色箭頭表示element-wise疊加,向右的紅色箭頭表示同尺寸取樣,向下的紅色箭頭表示輸出殘差。 通過級聯學習,網路可以輸出不同大小的殘差,得到不同大小的超解析度預測。順帶一提,很多做超解析度的網路都在加深網路結構,但是為了防止深層、高解析度的資訊不好反向傳播,都採用了殘差來優化。這裡的殘差用來更新上取樣重構很有啟發性。
  2. loss將每個尺寸下,真實圖片和預測圖片的差進行求和。簡而言之就是用每個尺寸的直接差取代了總體的L2 loss。

網路設計

PolyNet: A Pursuit of Structural Diversity in Very Deep Networks

本文提出了一個新的網路設計方案。

本文提出一個問題:增加網路的深度和寬度是最好的優化網路表現的方法嗎?文章反對這個看法,並認為時間複雜度和記憶體要求的quadratic growth是最大的侷限性。如對深度進行實驗時,發現ResNet-269比ResNet-50有顯著提升,但是ResNet-500比ResNet-269只有千分之一的提升,卻增加了一倍的消耗。

由此啟發,文章對structural diversity進行討論,提出幾個可能使得網路效能好的關鍵點:(1) 使用ensembles;(2) ResNet的高效能來源於它的multiplicity而不是depth,它實際上是implicit ensemble of shallow networks;(3) Inception-ResNet-v2是目前相比最好的設計之一,效果優於ResNet並且layer更少.

對此,文章設計了PolyInception模組:每個模組是Inception units的組合;由於每個模組只是大網路的building blocks,因此可以被單獨或組合著插入替代原來的模組。各種module設計見圖4,注意其中多個F表示shared parameter,G表示不和F分享引數。

圖5顯示了網路整體結構。測試結果表明,PolyNet的準確率超過了Inception-ResNet-v2,卻增加了一定的計算量。詳細的網路比較見論文,例如增加Stage B的複雜度被認為是最有效的。同時,在stage內部採用mixed poly modules也可以提升一定的準確率,這說明了structural diversity的提高既存在於模組內部,也存在於模組之間的整合。

圖9展示了插入新模組的方法。圖10展示了一個新的方法stochastic paths:每個iteration隨機drop一些path,相當於模組級的dropout,也是一種diverse ensemble implicitly embedded的體現。

Densely Connected Convolutional Networks

本文介紹了新的網路結構—— DenseNet。

傳統直上直下的網路模型只有前後層相互連線,若有 L 層網路,那麼連線數也是 L 。然而DenseNet卻含有 \frac{L(L+1)}{2} 個連結,即每一層都和下面所有的層進行連線。這樣做有幾個好處:緩解梯度消失問題、強化feature傳遞、鼓勵feature再利用、極大減少引數總數量(這一點違反直覺,但實際上DenseNet的設計可以避免重複學習feature map;並且網路每一層的通道數非常少)。

網路設計如圖2所示,每個Desne Block內部是全聯接的卷積單元(卷積層+BN+Relu),Blocks之間用轉移層(幾個卷積層+平均池化)連線和降維。此外,還有一些獨特的設計:

  1. Growth rate:給定每個卷積單元含有相同的通道數量 k ,若輸入的通道為 k_0 ,那麼第 i 個卷積單元的通道數就是 k_0+k(l-1) 。文章定義 k 為growth rate,且由實驗和理論顯示,很小的 k=12 就可以得出state-of-the-art的結果。
  2. Bottleneck layers:文章中提到可以在每個 3 \times 3 的卷積單元前加一個 1 \times 1 的卷積層減少通道數到 4k 左右,以此增加計算速度。
  3. Compression:可以在轉移層減少輸入的通道數量,如減少一半。

多工網路

Fully-adaptive Feature Sharing in Multi-Task Networks with Applications in Person Attribute Classification

本文介紹了一個自適應擴充套件的多工網路學習方法。

如圖所示,文章提出了一個從窄網路(thin network)開始的自下而上的方法,並在訓練過程中使用一個促進類似任務分組的標準,貪婪地動態拓寬網路。但是,貪婪方法可能無法發現全域性最優的模型,而將每個分支正好分配給一個任務不允許模型學習更復雜任務互動。

另外,Sebastian Ruder(機器之心翻譯)也整理了一些流行的多工模型,值得一看。

Multi-Task Clustering of Human Actions by Sharing Information

文章介紹了一個基於多工的人類動作聚類分析的方法。

文章提出,不同視訊集合通常含有很多相似的動作,但是在cross-view的視訊裡,相同的動作通常是從不同視角來拍攝的。文章把每個視角下,捕捉道德動作pattern作為一個訓練任務;但是由於self-occlusions,單一視角無法學習到魯棒的動作識別。並且,雖然目前的單一任務學習的準確度很高,但是仍然存在以下挑戰:(1) 忽略動作之間的shared information,如一些利用LDA來分類動作的方法,而且也無法解決多視角的問題。(2) 制定shared information measurement的困難性。

對此,文章提出了Multi-task Information Bottleneck (MTIB) 方法。如圖所示,方法首先使用基於bag-of-visual-words模型的agglomerative information maximization (AIM) 的方法去建造一個多工之間的high-level common library;然後轉化為information loss minimization,即任意兩類的shared information可以被common library中的distributional correlation based on the co-occurrence words量化。

遷移學習

Borrowing Treasures from the Wealthy: Deep Transfer Learning through Selective Joint Fine-Tuning

本文介紹了一種圖片分類遷移學習的方法。

本文提出了Deep Transfer Learning through Selective Joint Fine-Tuning,分步為:

  1. Source and Target Domain:選用足夠大的圖片識別資料庫,如ImageNet和COCO。
  2. Similar Image Search:·只有和target domain的圖片在low-level特徵相似的source domain圖片會被加入訓練集。具體方法為:
    1. 對於source和target domain的圖片,用一個包含很多過濾器的filter bank處理它們,來獲取histograms。文章採用了Gabor filter和pre-trained AlexNet low-level kernels,後者為Alexnet靠近input的那些提取低階資訊的層。
    2. 針對每個filter map,掃描整個target domain在它上面的histogram,根據掃描的統計結果把每個filter map分成不同的自適應大小的bin,每個bin含有基本相同數量的pixel,從而使histogram較均勻地離散化。這樣通過列舉所有的filter maps,每一個影象就可以得到長度等於filter map數量的離散histogram特徵向量。
    3. 因為每個filter map/kernel本身的權重就不同,文章規定source和target圖片的距離為根據權重加權平均過的、用特徵向量計算的KL散度。每個target圖片根據此距離選取K個鄰居作為對於的source圖片。
    4. 此外,對於target domain那些難以訓練的樣本,可能需要更多的鄰居來訓練它們。因為文章提出了一個資訊熵函式來測量分類不確定性,打分高的被認為是難以訓練的樣本。確定鄰居數量時進行了五次迭代,每次迭代中被認為難以訓練的樣本、以及預測錯誤的樣本的鄰居選取數量增加,其餘保持上一次迭代的鄰居數量不變。這種方式起到了自適應選取合適的feature representation的作用。
  3. CNN:網路選用的是在對應source資料集上pre-train過的ResNet-152。source和target圖片經過相同的卷積網路;因為source和target的標籤空間可能不同,最後分出來兩個linear classifier,分別負責source和target的圖片分類。
  4. Source-Target Joint Fine-tuning:Fine-tune網路時,每個task在joint fine-tuning的cost函式是相互獨立的,而且每一個training圖只貢獻自己對應的那個domain (source 或 target)。

對抗學習

Learning from Simulated and Unsupervised Images through Adversarial Training

本文提出了一種Simulated+Unsupervised Learning (S+U) 方法。

模型的名稱為SimGAN。不同於一般的GAN,SimGAN的輸入為合成的假圖片而非隨機向量,優化目標是一個優化器(refiner)。同時,SimGAN還有幾個重要的改變:增加了正則項、使用local adversarial loss、用已經優化過的影象來更新discriminator。

演算法如上圖演算法1所示,其中對抗loss為

L_D(\phi)=-\sum_i{\log(D_{\phi}(\tilde{x_i}))}-\sum_j{\log(1-D_{\phi}(y_j))} ,優化器loss為 L_R(\theta)=-\sum_i{\log(1-D_\phi(R_\theta(x_i)))}+\lambda\|\psi(R_\theta(x_i))-\psi(x_i)\|_1 ,其中利用的discriminator loss如圖3所示。此外,傳統的利用最近一次計算的圖片來更新網路的方法,會導致對抗訓練有較大的divergence,且優化器會引入discriminator已經忘記的artifacts。因此,演算法維護了一個歷史buffer,每次選用資料的時候,一半來自於最近一次計算,一半來自於buffer;同時buffer的大小是固定的,每次更新一半buffer裡的歷史資料。

Weakly Supervised Actor-Action Segmentation via Robust Multi-Task Ranking

Multi-task Correlation Particle Filter for Robust Object Tracking

Deep Multitask Architecture for Integrated 2D and 3D Human Sensing

Video Frame Interpolation via Adaptive Convolution

Turning an Urban Scene Video into a Cinemagraph

Semantically Coherent Co-segmentation and Reconstruction of Dynamic Scenes

Supervising Neural Attention Models for Video Captioning by Human Gaze Data