中國在被接受論文數量方面優勢明顯,位列世界第一。

10月27日至11月2日,ICCV2019在韓國首爾舉辦。作為計算機視覺領域的頂會之一,本屆ICCV熱度空前。據官網數據顯示,本屆ICCV註冊參會人數再創新高,超過7000人,是2017年ICCV的2倍。

在論文收稿和入圍數量方面,ICCV 19 共收到論文投稿4303篇,最終入圍1075篇(官方數據),入選率為25%,較上屆的29%有所下降。

在投稿論文的關鍵詞上,佔據前列的分別為圖像、目標、檢測、3D、視頻、分割等。其中圖像(155篇)、目標(104篇)、檢測(101篇)位列關鍵詞熱度前三位。上圖提取了投稿論文中排名前75位的關鍵詞的出現次數。


本次ICCV的關鍵片語成了一張圖像(如下圖),裡面看起來出現頻率比較高的詞,除了network、learning、image、deep、object、model等相對通用的辭彙外,最醒目的要數3D和Video,其他還有object detection、pose、unsupervised、adversarial、reconstruction、attention等關鍵詞。

best paper授予了sinGAN,而Best student paper和Best Paper Honorable Mentions則授予了和成像相關的兩篇文章。這體現了一個趨勢,deep learning基礎模型以及detection等high level vision層面的任務今年並沒有特別突出的工作,而圖像生成以及視覺底層成像受到了更多的關注。

整體上,個人的感覺有下面幾點,拋磚引玉:

1,在多年來深度學習粗暴的刷新視覺各個任務之後,cv界終於開始重視3D等視覺本身的domain knowledge和表示結構,無論是由2d image輸出3d信息表示(比如mesh rcnn,當然也有少量工作由雙目或3d信息輸出更好的3d信息),還是在表示模型中加入3d model,無論是普通物體,還是人臉,都有很多工作涉及;個人覺得這是後面非常重要的方向,在簡單粗暴之後,我們需要在視覺表示框架中加入3d等信息,這無疑更為合理;

2,GAN相關的工作依然很多,但基礎方法沒有看到突破性進展,反而是Adversarial的思維方式或方法在很多任務中都被使用,比如best paper就是如何通過一副圖像訓練模型來生成各種新的圖像,還有很多衣服搭配、視頻動作生成等應用工作,期待未來有更多應用工作可以用GAN的思路來解決;

3,今年reid的文章非常多,有關於domain transfer的,關於樣本生成的,有考慮姿態的,有處理遮擋的,有考慮局部更好對齊的,有考慮low shot learning問題的,有基於檢索來設計loss function或通過rerank來獲得更好的metric的,能想到的思路都有了;人體已經儼然代替人臉開始成為各種任務的研究目標了,可能真的是人臉不好做了吧;

4,前面說到3d和person reid,其實用2d camera獲得human的3d信息在今年也非常搶眼,特別是很多工作的效果讓人眼前一亮,應該有機會推動一波應用;

5,還有很多關於video understanding相關的工作,個人關注比較少,但整體上看起來都還比較簡單粗暴,類似於rcnn做detection的階段,只是先把deep learning用來做表示,缺少對於video understanding框架的細緻設計,未來應該還有很長路要走,也說明機會很多;

6,今年有很多工作關於low shot learning、transfer learning、meta learning、metric learning等相關工作,最後一天的workshop:Visual learning with limited labeled data應該是最受歡迎的一個,人多到擠不進去,這也說明這個方向慢慢成為一個熱點,不過從工業界視角看,目前還不能實用,但作為學術界的研究課題應該是值得關注;

7,傳統的detection、segmentation、pose estimation缺少突破性的工作,不過,如同我一直堅信的,用大一統的框架來同時表示detection、pose estimation、Semantic segmentation、instance segmentation、3d/2d mesh是正確的方向,也許不是最快的,但一定是最優雅的;這粗看起來是個multi-task learning的問題,但更進一步如何讓各個任務之間相互促進(特別是高層任務對底層任務的幫助),一直是一個沒有被非常好證明但看起來挺有道理的方向;

8,還有一些關於模型結構、gcn等基礎表示方向,我沒有看到特別突破性的工作;

9,關於tutorial,ross做的detection的tutorial講得非常清楚(強烈推薦,用統一的視角看待檢測框架,主要覆蓋了幾乎所有two stage的方法,後續需要把one stage的思路也一起統一,會對detection的未來非常有啟發),amazon組織的everything you need to know to reproduce sota deep learning models講了很多很實用的技巧,當然也大大推廣了一把mxnet,某種意義上非常羨慕今天的小朋友,遙想當年的convnet,再想想今天的mxnet、pytorch,一種想哭的感覺;

10,韓國召開的iccv當然不能不提韓國,招待晚宴,韓國果然謎之自信,把自己和中國、印度、兩河文明並列,一個歷史悠久的現代國家;在統計論文所屬國家時把taiwan單列,讓人難免遐想;還有就是首爾真的沒啥可玩的;

關於未來,我看了十幾年的視覺論文,真正經歷時間的考驗被後人記住的論文是比較少的(大部分論文的價值是啟發了相關工作,推動了領域前進),那麼未來哪些方向是可能出現被人銘記的工作的呢?我拋一下磚。

1,在視覺表示模型中加入3d模型的約束也許會成為以後的一些問題的標配,畢竟我們要理解的是一個3d世界的2d投影,同時,由2d image得到3d信息(特別是人臉、人體3d模型確定的物體)也是重要趨勢;

2,檢測、定位、語義分割、3d信息理解,這些任務未來將在一個優雅的框架下被完美解決,而且各個任務互相促進;進一步,遮擋、屬性、身份等未必需要和detection在一個框架下解決,但對於單個目標,遮擋、屬性、身份、定位、語義分割、3d信息等也會通過一個框架解決;當然,上述是一個理想模型,考慮到速度,也許是一個層次性或attention相關的模型,這更符合人的理解方式;

3,在視覺領域,一直非常關注representation,最近幾年,gan的出現使得大家非常關注生成,表示和生成其實應該是一個可逆的過程,以人臉為例,我們希望將一個人臉表示為屬性、id、姿態,再考慮到背後的人臉模型、光照、context信息,那麼表示模型就是希望將一張圖像(或多張)表示為id(鑒別特徵+3d model)、屬性(男、女、表情等等)、姿態、光照、context等信息,同樣,如果這個表示非常好,那麼這些信息反過來一定可以生成這個臉,更重要的是,上述信息在這個過程中被解耦,那麼我們可以去編輯這些控制信息來生成各種不同的圖像,比如不同姿態的圖像,比如不同身份的圖像;這樣,也許可以把表示和生成打通,當前,利用表示來幫助改善生成已經被證明有效,反之,還需要得到驗證;

4,基礎模型層面,肯定是需要更多好的工作,這樣的工作也許會結合特定硬體架構出現,或者說,基礎模型、硬體架構、軟體inference框架會融合出現突破性進展;

5,Cv領域對於成像關注是比較少的,未來,也許視覺理解會和成像結合非常緊密(出現真正意義上的智慧感測器),我覺得這也許是視覺領域最fundamental的工作,而且,會和attention、video結合,這是人的理解機制;

最後的這些看法是非常粗淺的,一方面期待大家的指正,另外一方面,talk is cheap,希望未來真的有相關工作在這些問題上取得一個個進展;


最近幾天在開會,看到仍然有很多研究者仍然在關注我們這個領域最基礎的檢測和分割,覺得很欣慰。

不可否認,這些方向已經基本成型,已經由前幾年的火熱慢慢的冷卻,給旁人的感覺似乎是,「物理學的大廈已經建成,只需要後人修修補補」。

事實上,我們還是很清楚他們的發展,遠遠沒有達到能work的境地,遠遠沒有。拿檢測而言,實話說,業界早就發現堆數據比換模型有用的多;再者一些方法,用一些非業內人士看不出來的手法把準確率給堆上去,速度卻又比 faster rcnn 還低,你好意思說自己是 one-stage 么?

這些基礎方向的天空里還沒有發展到只像20世紀初的物理學只存在兩朵烏雲,而是烏雲密布。因為他們實在是太基礎,而且十分重要。真誠的希望,能有一批務實、有天賦的研究者與工程師推進這些方向,使得一些多模態、理解等這類通向智能的任務不再是飄浮的空中樓閣。


誰能告訴我ReID今年為什麼這麼火


大家都知道ICCV2019的最佳論文頒給了SinGAN這隻GAN,那麼就來具體說說此GAN與彼GAN有何不同吧。

太長不看版:

1、從生成效果上來說,確實能夠以假亂真;

2、其設計思路之精巧,有很高的借鑒價值;

3、它在各種圖像操作任務上都有著很好的應用,SinGAN會像兩年前的Mask R-CNN一樣,成為這些任務新的baseline。


完整解讀:

從名字上來看,SinGAN只需要單張自然圖像,就可以訓練一個生成式模型,單從這一點就足夠吸引眼球。

事實上,在SinGAN之前已經有很多工作嘗試使用單張圖像訓練生成式模型,但這些工作大多是條件式生成模型,只能完成某種特定的圖像到圖像的轉換任務(如超解析度等),另外一些非條件式生成模型也只局限在紋理這樣簡單結構的圖像生成上。

SinGAN是第一個非條件式的、使用單張自然圖像訓練的生成式模型。也就是說,訓練後的SinGAN可以接受一個隨機雜訊的輸入,生成新的自然圖像。

對於SinGAN的生成效果,論文中有一句話來總結描述:「SinGAN可以生成新的具有真實感的圖像樣本,在保留了原始的圖像塊分布的基礎上,創造了新的物體外形和結構」。聽不懂沒關係,耳聽為虛眼見為實:

每行中最左邊是用來訓練的圖像,右邊四張是隨機生成的圖像。

說人話,就是SinGAN可以生成與訓練圖像相似場景下,物體排布略有不同的真實圖像。

看到這裡,是不是覺得SinGAN也就那回事了,沒什麼厲害的?非也。

一方面從生成效果上來說,(至少作者挑出來展示的這些例子)確實能夠以假亂真;

另外其設計思路之精巧,有很高的借鑒價值;

最後,我們會提到它在各種圖像操作任務上都有著很好的應用,SinGAN會像兩年前的Mask R-CNN一樣,成為這些任務新的baseline。

SinGAN

先來思考這樣一個關鍵的問題:如何只用一張圖像來訓練GAN?大家可以跟著我的思路走下去:

  • GAN估計了真實數據的分布。
  • 一張圖像是從真實數據分布中採樣的一個樣本點。
  • 我們沒法只通過一個樣本點估計出原始分布。就好比現在有一個均值、方差都未知的正態分布,告訴你一個從該分布隨機抽樣的樣本值,我們無法估計出原始分布的均值和方差。
  • 一個直觀的想法是,我們可以把這一張圖像切成塊,這樣我們就有很多張圖像了!
  • 切成多大的塊?
  • 假設我們切成比較小的塊。舉個例子,對於200x200解析度的圖像,切成若干11x11的塊。最多能切出多少個?三萬多個。用這三萬多個11x11的小圖像塊,訓練一個GAN,生成接近真實的11x11解析度的圖像塊。聽著很靠譜?但我們不知道怎麼把這些小塊拼起來組成一張高解析度的圖像……
  • 假設我們切成比較大的塊。舉個例子,對於200x200解析度的圖像,我們切成若干個150x150解析度的塊。最多能切出多少個?大約2500個。樣本空間多大?256^(150x150x3)。樣本空間相比我們擁有的樣本數目來說太大了,換句話說,很難只用2500張圖像訓練就能生成解析度高達150x150的真實圖像(與此對比,MNIST數據集是解析度28x28的二值圖,訓練數據都有55000張)。
  • 11x11的圖像塊容易訓練,但是捕捉的內容太細,對生成整體圖像幫助不大;150x150的圖像塊描繪了圖像的整體信息,但是又太難訓練……
  • 或許,我們可以先將圖像縮小,再切出大圖像塊來訓練。這樣圖像塊解析度低,容易訓練,並且也保留了圖像的整體信息。舉個例子,對於原先200x200解析度的圖像,我們先降採樣到40x40,再切成若干個11x11的塊,能切出約800個,再用這800多個圖像塊訓練GAN,生成的圖像塊應當保留了圖像整體的布局信息。
  • 雖然這樣生成的圖像很模糊,但我們已經有了一個整體的大致結構,只需要給圖像上加上細節就可以了。不難想到,我們之前在原始圖像上切出的11x11小圖像塊訓練的GAN模型就有了意義,裡面包含了我們目前所需要的細節信息。
  • 再多加幾個尺度進來,從最模糊的圖像逐步加入細節。
  • 我們有了SinGAN。

SinGAN使用多個GAN結構分別學習了不同尺度下解析度11x11的圖像塊的分布,並從粗糙到細緻、從低解析度到高解析度逐步生成真實圖像。

如果理順了之前的思路,上面這個架構圖應該很好從整體上理解。SinGAN由N+1個GAN結構組成,從粗糙到精細分別為(GN, DN),…(G0, D0)。對於其中第i層,Gi學到了該尺度下11x11圖像塊的分布,並能夠結合上一尺度的輸出生成該尺度下的真實圖像;Di能夠判別一個11x11圖像塊是否是該尺度下的真實圖像塊。

統一的網路結構與感受野

你的第一反應一定是:說好的11x11圖像塊在哪裡?我看到的網路的輸入分明都是完整的圖像啊?

沒錯,輸入確實都是完整的圖像,這裡有一個非常精巧的結構設計:所有的G和D都擁有相同的網路結構,都由5組3x3的卷積組成,都擁有11x11的感受野。將一張圖像輸入一個擁有11x11感受野的網路,網路輸出的每個位置的值,等價於原圖以該位置為中心,大小為11x11的圖像塊輸入網路後的輸出值。(並不嚴謹,大家意會一下)不難理解,在這樣的設計下,輸入完整的圖像,和把圖像切成11x11的塊分別輸入,是等價的。

這個設計是我覺得SinGAN的所有設計里最精巧的部分。

SinGAN的判別器

要想知道G生成什麼,先看D在判別什麼。

對於第i層判別器Di,輸入降採樣r^i倍的訓練圖像xi(或生成圖像x』i),設其大小為NxMx3。首先輸出大小為NxM的矩陣,其中每個位置的值都表示了輸入圖像以該位置為中心11x11的圖像塊屬於真實圖像塊的概率。

Di最終的輸出是這NxM個值的算術平均值。用這種方式,Di判別了某個11x11圖像塊是否來自該尺度下真實的圖像塊分布。這種判別器叫做Markovian Discriminator,並不是SinGAN的原創工作。

SinGAN的生成過程

終於來到了生成過程。輸入雜訊圖zN,經過生成器GN,得到圖像x』N;將x』N放大r倍後,連同另一個雜訊圖z(N-1)一起輸入生成器G(N-1),生成細節更多的圖像x』(N-1)……以此類推,直至經過生成器G0得到擁有豐富細節的圖像x』0。形式化如下:

對於i&

訓練過程與損失函數

SinGAN採用逐層訓練的方式,從第N層(最粗糙的層)開始,每層訓練結束後參數就固定下來,接著訓練下一層,如下圖所示:

SinGAN的損失函數形式如下:

損失函數由adversarial loss和reconstruction loss兩部分組成。其中adversarial loss使用了WGAN-GP loss,可以認為是文初提到的GAN loss的升級版,可以提升訓練穩定性。reconstruction loss的目的是希望存在一組隨機雜訊輸入,最終輸出的圖像就是原圖。為此,作者選取這組特定的隨機雜訊如下:

其中z*是訓練前隨機選取的一個值,之後不再改變。reconstruction loss形式化如下:

也就是說,希望以該組雜訊作為輸入的情況下,第i層生成器的輸出與該層尺度下的原圖之差的二範數儘可能小。個人認為reconstruction loss的引入很大程度上也是為了訓練穩定性方面的考慮。

尺度的選取

作者設定最粗糙尺度下,圖像的最短邊為25像素,尺度係數r盡量接近4/3,以此計算出尺度的數量N。

更多的結果展示

由於SinGAN中G和D網路是全卷積的,因此可以生成任意尺寸的圖像:

還有一些fancy的高解析度圖像生成的例子:

SinGAN的應用

SinGAN在許多圖像任務上都有著很好的應用。

超解析度 (Super Resolution)

在一張低解析度圖像上訓練SinGAN,不斷將圖像上採樣並輸入最精細級別的生成器中,可以達到超解析度的效果。下圖是SinGAN和其他超解析度方法的效果對比。

繪畫圖像轉換 (Paint to Image)

在一張圖像上訓練SinGAN(第一列),將一張繪畫風格的圖像(第二列)輸入某較粗糙尺度的生成器中,輸出的結果將該繪畫轉換成了真實圖像。下圖是兩個例子,以及和其他方法的對比。

下圖比較了輸入不同層所產生輸出的區別。

圖像編輯 (Image Editing)

在一張圖像上訓練SinGAN,將經過編輯(下例中為圖像塊的移動)的圖像輸入某中間尺度生成器,輸出的結果恢復了圖像的真實感。下圖是SinGAN和Content Aware Move方法的對比。

下圖比較了輸入不同層所產生輸出的區別。

圖像和諧化 (Image Harmonization)

在一張圖像上訓練SinGAN(如下圖梵高的《星夜》)。在圖像中加入「不和諧」因素(如一個非常「不和諧」的飛船),輸入某中間尺度生成器後,輸出的結果實現了圖像整體風格的和諧化。下圖是兩個例子以及和Deep Paint Harmonization方法的對比。

下圖比較了輸入不同層所產生輸出的區別。

局限性

SinGAN的局限性主要表現在:

第一,當圖像塊的差異較大時,無法學到很好的分布,容易導致不真實的現象出現。下圖中人臉圖像就是很好的例子,直接使用人臉圖像訓練SinGAN,生成的圖像非常不真實(n=N列)。後兩列是將原圖降採樣後輸入N-1層和N-2層產生的輸出結果,雖然不真實感有所降低,但圖像和原圖的差異也變得非常小。

第二,生成圖像的內容高度受限於訓練圖像提供的語義信息,換句話說就是「創造性」較差。

總結

SinGAN雖然有著明顯的局限性,但是其局限性基本可以認為來源於其「單張圖像訓練」的設定。

瑕不掩瑜,SinGAN在設計上有很多值得我們借鑒的精巧之處,個人認為SinGAN被評為最佳論文可以說是實至名歸。

希望這篇文章可以讓大家更好地理解SinGAN的思想,為手頭的研究工作提供新的可借鑒的思路。


雖然best paper給了GAN,但總感覺GAN做不動了,準備找下一個坑了。

順便看到一些可灌的坑,求大家支個招,看哪個好點?

  • vision+language: xxxBERT的文章層出不窮,多模態成為趨勢?
  • visual reasoning: 名字取的挺牛逼
  • scene graph / visual relationship: fei-fei大佬開坑


我是感覺視頻上的任務更加流行了。比如,segmentation-&>VOS,inpainting-&>video inpainting,sr-&> video sr,圖像生成-&>視頻生成、圖像生成gif、圖像生成視頻,image to image-&>video to video, 包括本身就是視頻上的任務,視頻分類,視頻分段檢測,tracking,optical flow等等。


ML的純路人過來說兩句,哈哈。

看方向不要看「目標」「檢測」這些「熱門方向」已經殺成一片紅海的方向,看一看前沿方向啊。傳統的圖像數據可以提供的演算法空間估計也剩的很少了。你看最近的ICCV,CVPR的獎項,要麼就是多模態結合的,就是搞GAN的生成新數據,要麼就是跟光電結合的,什麼「光子」「ToF」。紅海進化太快了,以前那點數據根本不夠大家用的,CV太難了。用下面這個很著名的行業發展圖來說,行業紅利的魚塘都快乾了,大家現在一堆人都站在2號轉折點,看著還剩10%的魚塘,還躍躍欲試,拉也拉不回來,太可怕了(?ó﹏ò?)。

上半年華為出來的RYYB cmos就是個活生生的例子。新的數據空間帶來新的可能性,用我們大boss的話說,搞光電吧,去第一個轉折點。

objects365這種論文是怎麼被接收的?


隨著iccv結束,這兩天KITTI又被屠了一波榜,還讓不讓正常人發論文了呀!


瀉藥

個人不贊成看熱門方向這種說法,所以對關鍵詞也沒啥好說的。

個人比較喜歡「對哪方面有想法就去做」的姿勢、


推薦閱讀:
相关文章