1. 程式人生 > >CVPR2018 精彩論文合集

CVPR2018 精彩論文合集

  640?wxfrom=5&wx_lazy=1     640?wxfrom=5&wx_lazy=1   Unsupervised Person Image Synthesis in Arbitrary Poses #Image Synthesis CVPR 2018 Spotlight 論文,ReID + GAN 換 pose。 本文用了較多的篇幅講 loss function,pose 的提取用的是 OpenPose 這個庫。  其 loss 分為三部分:  1. Image Adversarial Loss:即傳統 GAN 的 loss; 2. Pose Loss:pose 差異,生成後的圖片再用 OpenPose 提取 pose 資訊做差值; 3. Identity Loss:此為關鍵,又分為兩部分,分別是 content 和 style loss,其中 content 用於保證生成圖和原圖在某 pretrain model 生成的 feature map 一致, style 則是利用 Gram matrix 生成某種 feature map,然後作比對。 論文連結 https://www.paperweekly.site/papers/1864 筆記連結 https://zhuanlan.zhihu.com/p/35626886 640?
Person Transfer GAN to Bridge Domain Gap for Person Re-Identification #Person ReID CVPR 2018 RE-ID Spotlight 一篇,這篇文章主要 contribution 有以下兩點:  1. 提出了一個新的更大的資料集,更為細緻:考慮到了視角,光照等更為細緻的因素,具體引數可以直接看文章; 2. 多個數據集間的差異,即 domain-gap,通過 GAN 來生成和模仿,類似文章:Camera Style Adaptation for Person Re-identification,個人認為創意是有的,可以作為 data augmentation 的一個方法,但實現難度上並沒有很大。 論文連結 https://www.paperweekly.site/papers/1557   程式碼連結 https://github.com/JoinWei-PKU/PTGAN   資料集連結 http://www.pkuvmc.com/publications/msmt17.html   筆記連結 https://zhuanlan.zhihu.com/p/35626478   640?
Disentangled Person Image Generation #Image Generation 在 NIPS 2017 上,該團隊已經為我們貢獻了 Pose Guided Person Image Generation 這篇非常棒的文章,在 CVPR 2018 中,他們推出的更新的這篇文章不僅僅解決了換 pose 問題,還實現了”隨心所欲“的換裝換 pose,入選今年的 Spotlight。  在這裡提到的前一篇文章可復現度很高,可以嘗試。 640   該模型分為三個分支:   1. 運用 OpenPose 這個庫,生成 pose 的 18 個 dots,並將這 concat 進 decoder 之前的 feature map 中;   2. 在經過卷積運算後的 feature map 上,運用 mask 將前後景分離,背景的 feature map 也是直接 concat 進最後的 feature map 中;   3. 核心是前景的處理上,用 7 個 ROI 進一步將前景解開,然後用公用的 encoder 生成前景的 feature map。   論文連結 https://www.paperweekly.site/papers/1865   筆記連結 https://zhuanlan.zhihu.com/p/35626735     640?
Practical Block-wise Neural Network Architecture Generation #Network Generation CVPR 2018 Oral 一篇,本文主要提出了通過封裝模組(block-wise)的方法,運用增強學習設計生成網路架構的方法。  封裝模組思路: 640 作者本人對增強學習和動態規劃理解有限,模組生成的總體思路是 Q-Learning 及動態規劃,其中提到了運用 reward shaping 優化設計過程,當是本文亮點之一。 設計完網路後,生成對應任務的準確率,作為 q-value(即 reward),然後再次重新生成網路。  此外,文章還提到了部分 trick: 
  • 在 reward 中將複雜度和計算複雜度納入;
  • early-stopping
論文連結 https://www.paperweekly.site/papers/1866   筆記連結 https://zhuanlan.zhihu.com/p/35639635     640? Deep Layer Aggregation #Convolutional Neural Networks CVPR 2018 Oral,topic:網路設計模組化。 如名所示,提出了 aggregation 的具體思路,並在層融合上提出了具體方式。 論文連結 https://www.paperweekly.site/papers/1867   筆記連結 https://zhuanlan.zhihu.com/p/35641068     640 Learning Face Age Progression: A Pyramid Architecture of GANs #Face Age Progression CVPR 2018 Oral,intro 和 related works 主要講了現有方案大多將年齡資訊優先而 identity 資訊次之,換句話說,就是生成不同年齡的同時,identity 資訊不能很好保留。 640 Generator 部分不做介紹,無亮點,本文亮點在 loss 部分。 文中提出了特徵提取器用於提出特定特徵,原因是作者認為相同年齡段的不同人臉有著相同的的紋理等特定資訊,而這個提取器就是提取出這些特徵。此外,該分類器是經過 age 分類任務預訓練好了的。 640 文中和今年很多思路一樣,考慮到了 low-level 和 high-level 資訊,將第 2、4、7 等層資訊 concat 起來,作為 d 的輸入。 identity 資訊的保留和上一個 extractor 類似,在人臉分類資料集上預訓練,然後拿來直接當 extractor。 論文連結 https://www.paperweekly.site/papers/1868   筆記連結 https://zhuanlan.zhihu.com/p/35661176     640 Convolutional Neural Networks with Alternately Updated Clique #Convolutional Neural Network 北大團隊提出的新的 block 設計,achieves the performance of the state of the art with less parameters.  640 block 內部更新的核心思路可以直接看這個公式,每一層更新時的輸入是比他低的層的更新後的輸出加上比他高的層更新前的輸出。 640 由於 block 內任意兩層互連,故實現了 top-bottom refinement,也就實現了 attention 機制。 640 還提到了部分 technique:  1. channel-wise attention mechanism  2. Bottleneck and compression 論文連結 https://www.paperweekly.site/papers/1713   程式碼連結 https://github.com/iboing/CliqueNet   筆記連結 https://zhuanlan.zhihu.com/p/35661397     640 Unsupervised Discovery of Object Landmarks as Structural Representations #Object Detection CVPR 2018 Oral, 今年 CVPR Landmark 和 Attention 這兩個詞出現的頻率很高。 640 Landmark Detector  本文采用的是名為 hourglass 的網路構架,以圖片作為輸出,該網路輸出 k+1 個 channel,含有 k 個 landmark 和背景。對不同 landmark 用 softmax 生成 confidence。 640 在如圖公式中,Dk(u,v) 意思是第 k channel 中座標為 (u,v) 的值,Dk 是 weight map,與對應座標相乘,再除以總的權重和座標乘積的和,從而生成該 channel 的 landmark 的 normalized 座標。  Soft Constrain  為了保證我們生成的諸 landmark 及其座標是表達的我們想要的 landmark 而非其他 latent repre,文章提出了幾個 soft constrain: 1. Concentration Constrain: 640 計算兩個座標軸上座標的方差,設計如圖示 loss 是為了使方差儘可能小。 640 這裡做了一個近似,使之轉換成了 Gau dis,更低的熵值意味著 peak 處更多的分佈,換句話說,就是使 landmark 儘可能地突出出來。  2. Separation Constrain: 640 由於剛剛開始訓練時候的輸入時純 random distribution,故可能導致提取出的 landmark 聚集在中心,可能會導致 separation 效果不好,因此而落入 local optima,故設計了該 loss。  這個 loss 也不難理解,將不同 channel 間的座標做差值,使得不同 landmark 儘可能不重疊。  3. Equivariance Constrain 這個比較好理解,就是某一個 landmark 在另一個 image 中變換座標時應該仍能夠很好地定位,在這裡,作者介紹了他們實現 landmark 變換座標的幾個trick。  4. Cross-object Correspondence 640 本文模型認為不能保證同一 object 在不同情況檢測時絕對的 correspondence,文章認為這應該主要依賴於該特定 pattern 能夠在網路生成的啟用值展現一定的共性。 Local Latent Descriptors  這個 des 的目的是解決一個 delimma:除了我們定義的 landmark,可能還有一些 latent representation,要復原一個 image,僅僅 landmarks 是絕對不夠的,所以需要一些其他的資訊作為一個補充,但表達他們又有可能影響 landmark 的表達。 640 在這裡,文章又用了另一個 hourglass network,如圖中左下角的 F,就在我們之前提到的 concentration costrain 中,用一個高斯分佈來將該 channel 對應的 landmark 突出出來。 在這裡,文章將他當做 soft mask 來用,用 mask 提取後再用一個 linear operator 來講這些 feature map 對映到一個更低維的空間,至此,local latent descriptor 就被生成了。 Landmark-based Decoder 640 第一步,Raw score map. 640 第二步,normalize. 640 第三步,生成最終影象。 在這裡,wk 是 landmark-specific operator。  簡言之,Dk 是我們提出的 landmark 位置資訊,fk 是對應 landmark 的 descriptor。  這裡又提到了一個 dilemma:在用 mask 的時候,越多的 pixel 被納入是最理想的,但納入太多又使得邊緣的銳利不能體現,因為該文用了多個不同的超引數來嘗試。 論文連結 https://www.paperweekly.site/papers/1869 筆記連結 https://zhuanlan.zhihu.com/p/35693735     640 An Analysis of Scale Invariance in Object Detection - SNIP #Object Detection CVPR 2018 Oral,如下圖,文章主要解決網路處理不同 scale 圖片的網路策略。 640 ▲ 讀圖中配字,理解文章針對的問題 640 ▲ 圖2 640 ▲ 圖3 如上面兩個圖示,三種網路的訓練方式和效果一目瞭然。  結論是:當我們要檢測小的物體時,在輸入是大的 scale 的網路上預訓練、在高解析度作為輸入的網路上預訓練、在upsample後的圖片作為輸入的網路上預訓練,對檢測小物體有益。  第 4 部分講了用了 DeformableRFCN 模型,第 5 部分主要討論了在不同解析度下訓練,在同樣的高解析度 test 的結果及其分析: 640 1. 在中解析度下訓練的模型比在高解析度下訓練的模型效果差,原因很簡單,因為後者訓練測試的解析度相同,但並沒有拉開很大的差距,為什麼呢?因為中高 scale 的 object 被變得太大以致不能被檢測到; 2. 作者隨後在高解析度下訓練了只針對 80pixel 下 Object 檢測的模型,但結果比在中解析度下的效果差了很多,為什麼呢?因為忽視中高 scale 的 Object 對訓練影響非常大; 3. 作者又用多解析度訓練模型(MST),但仍因為過小或過大的 Object 影響,效果仍不理想。  Scale Normalization for Image Pyramids  第 6 部分,作者提出了最終的模型。該模型的輸入解析度最低 480*800,最高 1400*2000,對於訓練中過大或者過小 scale 的 Object,模型選擇直接忽略,訓練只針對在 scale 的一個範圍內的 Object。  後面就是訓練細節和 trick,詳情可以翻看論文。 論文連結 https://www.paperweekly.site/papers/1870   筆記連結 https://zhuanlan.zhihu.com/p/35697040     640? Wasserstein Introspective Neural Networks #Introspective Neural Networks CVPR 2018 Oral,同時也是目前為止個人印象最深刻的一篇文章。  文章主要做的事情就是提出了基於 Wasserstein 的 INN,該組已經在 ICCV,NIPS 等多次提出並改進該模型,該模型主要做的就是將 GAN 中的 G 和 D 結合起來。  文章最開始給了一下最基本的 notation,然後介紹瞭如何將 INN 與 Wasserstein 結合起來並給出了必要的數學證明。 640 ▲ 演算法 640 上圖為分類過程 loss 的設計,圖中兩個公式,前者是目標函式,很容易理解,後者則是正則項,正則項是以隨機的 a 來生成真資料(x+)與生成的假資料(x-)的 mixture。 合成部分 640 合成部分的公式中,簡言之,就是以生成圖與原圖的相似度作為衡量標準。 圖中引用的 21,29 是作者的前面兩篇文章,分別是 NIPS 2017 和 ICCV 2017,作者在這篇文章中並未給出任何證明,後期本人應該會補上這兩篇的筆記。 論文連結 https://www.paperweekly.site/papers/1871 程式碼連結 https://github.com/kjunelee/WINN   筆記連結 https://zhuanlan.zhihu.com/p/35699851     640? Im2Flow: Motion Hallucination from Static Images for Action Recognition #Action Recognition CVPR 2018 Oral,本文思路很清晰且已讀,具體細節可以看文章,這裡僅僅把總體思路講一下。 640 用 u-net 訓練一個模型:輸入是一個靜態的幀,輸出的預測的五幀光流資訊,模型在 YouTube 資料集上訓練。 該模型 loss 分兩部分,一部分是將生成的五幀光流資訊與 YouTube 資料集的 groundtruch 對比,另一部分是將生成的光流資訊與真實的光流資訊送進某網路(在 ucf101 上預訓練過的 resent)計算歐式距離;前者是要求準確,後者是為了更好保留 high-level 的動作資訊。 最終將 rgb 和預測的光流作為標準 two-stream 模型的輸入進行預測。 論文連結 https://www.paperweekly.site/papers/1872   筆記連結 https://zhuanlan.zhihu.com/p/35702085     640 What have we learned from deep representations for action recognition? #Deep Spatiotemporal Representations CVPR 2018 Zisserman 的新論文,這篇文章就是 two-stream 模型中間層的視覺化方法,換句話說,就是探尋 two-stream 模型學到了怎樣的時空資訊。 640 生成總共分為兩個步驟,詳情如上圖:計算出輸入的偏導,將計算出來的梯度用學習率 scale 並加到當前輸入上。 Activation Maximization 640 本文還提到了兩個正則方法: 1. 防止過大的值 640 2. 限制低頻資訊 640   論文連結 https://www.paperweekly.site/papers/1873 筆記連結 https://zhuanlan.zhihu.com/p/35703892     640 Squeeze-and-Excitation Networks #Neural Networks 今年的 Oral,令人印象深刻的一篇文章,網上解讀很多,相當於在 channels 上加了一個 attention 機制,給不同的 channel 不同的權重。 這篇文章行文思路清晰,哪怕學習寫論文也要看一看。 640 Squeeze 簡言之就是全域性平均池化,是因為低層的感受野太小導致效果差。 640 Excitation  這個環節主要是搞清 channels 之間的關係及重要性。這裡作者提出了兩個要求: 1. 靈活,作者解釋:能夠學習 channels 間非線性的關係;  2. 必須學習一個非互斥關係,因為設計的 block 是為了強調多個 channels 而非一個。 640 這裡設計了兩個全連線層,一個降維,一個升回原來的維度。對於降維再升維,作者給出的解釋是為了降低計算複雜度和協助泛化。 論文連結 https://www.paperweekly.site/papers/1725 程式碼連結 https://github.com/hujie-frank/SENet   筆記連結 https://zhuanlan.zhihu.com/p/35704334     640 Actor and Action Video Segmentation from a Sentence #Video Object Segmentation CVPR 2018 Oral,本文定義了一個新的任務:給出一個句子,根據該句子分割視訊中的 actor 及其 action。 640 主要有三大部分:  1. Textual Encoder:使用 word2vec 的預訓練模型,句子中的每個詞被編碼成 1x300 的 vector,一個句子則聲稱 nx300 的 matrix,通過 padding 使句子們 size 統一,網路構造詳情見文章; 2. Video Encoder: encode the actor and its action. 網路構型採用 state of the art 的運用 3d filte r的 I3D model,後面又提到 follow 了 two stream 模型,未做很多解釋,只說同時學習 RGB 和光流資訊; 3. Decoding with dynamic filters:這裡又提到了 dynamic conv filters,這是我第二次見到這個,感覺還是有必要讀一下,若網上解讀不多,會後期發出筆記。 640 為了保持同樣的解析度,使用了 deconv,deconv 的應用上有一些創新和 trick,詳情請翻讀論文。 模型的訓練  訓練時模型的輸入:視訊片段,sentence,segmentation mask。 640   ▲ loss function   640 公式中的 r 表達的是不同的解析度,作者解釋是將多個解析度納入考慮,形成一種類似 skip-connnection 的效果。 論文連結 https://www.paperweekly.site/papers/1875   筆記連結 https://zhuanlan.zhihu.com/p/35718996     640 Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering #Visual Question Answering CVPR 2018 Oral,主題是 attention+VQA,這是筆者作者讀的第一篇關於這個領域的問題,可能難免會有講得不夠透徹的地方,歡迎批評指正和討論。  本文的主要思路是用 faster-rcnn 提取出 proposal,然後用其做 image captioning 或者 VQA,該方法取得了 2017 VQA Challenge 的第一名。 640 Bottom-Up Attention Model  簡言之,該部分就是直接複用了 faster-rcnn,提取出超過特定閾值的區域,並提取出其平均池化特徵。  Captioning Model  在這裡作者提到,該文的 captioning 系統即便在沒有基於 faster rcnn 的前提下,也有著相當好的體現,具體效果可以看 experiment 部分。  該部分作者未能講得非常透徹,主要是對 NLP 理解相當有限,後面會更新這部分的講解,這部分主要做的事情是用兩層 lstm,以 faster rcnn 生成的 feature 和 sentence 做輸入,生成對應 features 的 attention weights。 該部分由兩層 LSTM 組成: 640 ▲ h的右上標的12分別代表attention,language lstm的輸出 1. 第一層 LSTM:top-down attention  在這裡直接將 faster-rcnn 階段生成的 region feature 稱為 V,該層的輸入時將:平均池化後的 v,上一時刻 language LSTM 的輸出,之前生成的 words,concat 起來。  對於某一個時刻 attention lstm 的輸出,生成一個 normalized attention weight,如下圖: 640 2. 第二層 LSTM:language  該層將 faster-rcnn 階段生成的 region feature 與 attention LSTM 的輸出 concat 起來作為這一層的輸入。 640 ▲ 很容易理解,不做解釋 3. Objectives  該部分作者只是引用並複用了已有方法。  VQA Model  先將問題用 GRU encode 成 the hidden state q,這個 q 又當做 top-down 系統的輸入,即上面提到的兩層 lstm,生成 attention weight。 論文連結 https://www.paperweekly.site/papers/754   程式碼連結 https://github.com/peteanderson80/bottom-up-attention   筆記連結 https://zhuanlan.zhihu.com/p/35778768     640 Embodied Question Answering #Visual Question Answering CVPR 2018 Schedule 上的第一篇 Oral,這篇文章主要定義了一個新的 task 並給出了一個數據集。 任務定義:將一個 agent 隨機丟進一個房間,向他提出一個問題,這個 agent 需要自己導航並回答問題。 640   640   ▲ 問題型別,大家可以大致理解下 資料集問題,場景的生成都是用已經存在的 method 生成的,詳情可以翻閱論文。 這個 task 總體來說對於 agent 提出了四個要求:vision,language,navigation,question answering,文章還給出了各個部分的具體結構,很容易理解。 640 ▲ 訓練策略 論文連結 https://www.paperweekly.site/papers/1268   筆記連結 https://zhuanlan.zhihu.com/p/35791145     640 Taskonomy: Disentangling Task Transfer Learning #Transfer Learning CVPR 2018 Oral,本文定義了一個新的任務,針對在視覺內的遷移學習,並提出了一個蠻大的資料庫,然後還有 Malik,Savarese 兩位大牛掛名,感覺很值得關注。  定義的任務是這樣的:vision task 類目很多,只針對某個問題來解決的話,會需要很大的標註的資料集,但我們不難想到的是,一個視覺任務的解決應該能夠一定程度的解決另一個視覺任務,畢竟一個成熟模型的構建意味著對該 image 的一定的理解,而這部分的理解的一部分或許對另一個 task 有助益,例,物體 relation 的理解對深度資訊的學習毫無疑問是有著助益的。 640 首先做一個 notation 說明:source task 是指我們已經有著足夠標註資料集或者資訊,能夠解決的問題,target task 則是指待解決,希望通過前者的遷移學習來解決的問題。  有三個階段: 640 Step I: Task-Specific Modeling  encoder-decoder 結構,不需過多解釋。 Step II: Transfer Modeling 640 這裡的 transfer function 就是一個 decoder,他的輸入時多個 source task encoder 的 encoder 的輸出。  這裡作者提出了設計時應當考慮到的因素:  1. accessibility:首先,應該含有潛在的能夠解決 target task 的資訊,因此文章設計了一個小結構,用其基於小規模資料測試 accessibility; 2. higher-order transfers:多輸入,過濾掉有著更低 contribution 的 representation 的 filter 策略; 3. transitive transfers 640 Step III: Ordinal Normalization using Analytic Hierarchy Process (AHP)  簡言之,就是計算不同的 source 對一個 target task 的貢獻度。  Step IV: Computing the Global Taxonomy  計算全域性的一個 contribution graph。 論文連結 https://www.paperweekly.site/papers/1876   程式碼連結 https://github.com/StanfordVL/taskonomy   筆記連結 https://zhuanlan.zhihu.com/p/35833517     640 Detail-Preserving Pooling in Deep Networks #Convolutional Neural Networks CVPR 2018 Oral,顧名思義,提出了保留 detail 的池化方法。  max/avg pooling 一個只選取最大而忽略與周圍畫素的關聯性,一個重視關聯性卻又直接抹平,並且在實際梯度計算中也有一些 drawback,所以該文提出了這個新方法,一句話概括,就是在池化過程中學了一個動態的 weight。 Notation:在此,我們以 I& 代替文章中出現的 640 ,ID 代指 640 。 Detail-Preserving Image Downscaling 640 ▲ I是原圖,O是output,[]表示取對應座標畫素值 640 ▲ 如圖所示,ID是用近似高斯分佈的filtersmooth後的影象 640 作者總結:DPID 計算的是 weighted average of the input,周圍的畫素中,越近或者 difference 越大的值能夠給最終的 output 更高的 contribution。 以上這一部分是一個鋪墊。  Detail-Preserving Pooling  作者這部分就是將上一部分提出的 downscale 思想轉化成文章的 DPP(如 title) 簡言之,就是將上部分中的 L2 NORM 替換成一個可學習的 generic scalar reward function。 640 首先給出 weight 的表示: 640 ▲ α和λ就是我們要學習的引數 這裡用了 constrain 來保證兩個引數為非負。  這裡給出了兩種 reward function: 640 640 ▲ 這裡為了簡潔,將λ省略掉了 可以看到,相對而言,後者更傾向與給比中心畫素高的畫素更高權重,前者則是給差距大的更高權重。  後面,作者又補充了 I& 的生成: 640   論文連結 https://www.paperweekly.site/papers/1877   程式碼連結 https://github.com/visinf/dpp   筆記連結 https://zhuanlan.zhihu.com/p/35938826     640 High-Resolution Image Synthesis and Semantic Manipulation with Conditional GANs #Image Synthesis CVPR 2018 Oral,本文解決了 GAN 生成高解析度突破的問題,解析度達到了 2048*1024,方法精細,值得深入來看。 先來看 Generator: 640 如圖所示,中間部分的 G1 在低解析度情況下訓練,然後在前後又分別加上 G2,注意左邊部分的 G2 的輸出和 G1 的輸出 concat 之後,作為右邊 G2 的輸入。  再來看 D:這裡的 discriminator 是 multi-scale,有著三個針對不同尺寸的 D,三個尺寸分別是原尺寸,二分之一,四分之一。 放縮尺寸的理由不難理解,receptive field 大小的問題。 640 ▲ objective中,三個D都納入考慮 Improved Adversarial Loss  一句話概括:在 D 的中間多個層抽取 feature map,作為分類和訓練依據。  Using Instance Map 個人認為是本文最 inspiring 的一點,先放對比圖。 640 圖勝千言,boundary map 一方面更加精細,也對邊緣的處理上給出了看起來很理想的解決方案。具體的對比解釋可以去文中尋找。  b map 的提取不難理解,主要是基於 semantic labels。  Learning an Instance-level Feature Embedding  這部分是基於前面提到的 instance level 資訊,做一個精細化的 embedding。在 generator 的輸入中,除了 ori img,boundary map 之外,還有 low-dimensional feature。  為了生成這些 low-dim feature,作者又設計了一個標準的 encoder-decoder 來生成。在這個 encoder 訓練好之後,還用生成的特徵做了一個聚類,從而可以控制生成圖片的 style。 論文連結 https://www.paperweekly.site/papers/1278   程式碼連結 https://github.com/NVIDIA/pix2pixHD   筆記連結 https://zhuanlan.zhihu.com/p/35955531     640 Feature Space Transfer for Data Augmentation #Data Augmentation CVPR 2018 Oral,簡言之,就是用 GAN 生成新資料。 640 結構沒太多新意,也不會很難理解,就是在 appearance 和 pose 上分離。 在網路設計上,作者提到了三點:  1. 為了避免網路只是單純的 match feature pairs,如上圖所示,只是學習 the residual; 640 ▲ 即source和target的feature vector的差 2. appearance 和 pose 分開訓練,pose 的學習便可以全監督訓練學習; 3. appearance 和 pose 分開訓練,能夠使對這兩個屬性的學習上更加 balance。 論文連結