FlowNet:用CNN做光流估計(jì)

作者:嫩芽33

出處:http://www.cnblogs.com/nenya33/p/7122701.html

版權(quán):本文版權(quán)歸作者和博客園共有

轉(zhuǎn)載:歡迎轉(zhuǎn)載幻妓,但未經(jīng)作者同意,必須保留此段聲明;必須在文章中給出原文連接优俘;否則必究法律責(zé)任

學(xué)習(xí)了一篇用CNN做光流的paper: FlowNet: Learning Optical Flow with Convolutional Networks,簡(jiǎn)稱FlowNet。

1. 論文題目 ?FlowNet: Learning Optical Flow with Convolutional Networks

2.背景

為什么想到用CNN做光流:最近提出的CNN架構(gòu)可以做逐像素預(yù)測(cè),比如碑诉,語(yǔ)義分割和從單圖估計(jì)深度。所以本文提出end-to-end訓(xùn)練CNNs用于從圖像對(duì)中預(yù)測(cè)光流場(chǎng)侥锦。

光流和其他任務(wù)的區(qū)別:光流估計(jì)需要精確的逐像素定位进栽,也需要找到兩個(gè)輸入圖像的對(duì)應(yīng)。這不僅涉及到學(xué)習(xí)圖像特征表達(dá)恭垦,也要學(xué)習(xí)在兩個(gè)圖像的不同位置匹配這些特征表達(dá)快毛。所以從這方面來(lái)看,光流估計(jì)和CNNs的以前應(yīng)用基本上不一樣番挺。

3. 本文提出構(gòu)建CNNs唠帝,以有監(jiān)督的學(xué)習(xí)方式解決光流估計(jì)任務(wù)。提出兩種架構(gòu)玄柏,并做了對(duì)比實(shí)驗(yàn):

一種是通用的架構(gòu)

另外一種是包含一個(gè)不同圖像位置的特征向量關(guān)聯(lián)層襟衰。因?yàn)椴淮_定用標(biāo)準(zhǔn)的CNN架構(gòu)能否解決這個(gè)問(wèn)題,就提出了一個(gè)有關(guān)聯(lián)層的架構(gòu)禁荸,用來(lái)顯式地提供匹配功能右蒲。這個(gè)架構(gòu)采用end-to-end訓(xùn)練阀湿。思想是利用卷積網(wǎng)絡(luò)學(xué)習(xí)多級(jí)尺度和抽象化的強(qiáng)大特征的能力赶熟,然后幫助他基于這些特征找到實(shí)際的對(duì)應(yīng)。關(guān)聯(lián)層上面學(xué)習(xí)如何從這些匹配中來(lái)預(yù)測(cè)流陷嘴。令人驚訝的是映砖,用這種方式幫助網(wǎng)絡(luò)并不是 必要的,甚至是原始的網(wǎng)絡(luò)都能學(xué)會(huì)以具有競(jìng)爭(zhēng)力的準(zhǔn)確性來(lái)預(yù)測(cè)光流灾挨。

4. 已有光流數(shù)據(jù)集太小邑退,很多沒(méi)有標(biāo)注真實(shí)值,本文創(chuàng)建了一個(gè)新的光流數(shù)據(jù)集Flying Chairs劳澄,用來(lái)充分訓(xùn)練CNN地技。

5. 網(wǎng)絡(luò)架構(gòu)

給定足夠的有標(biāo)簽數(shù)據(jù),CNN 擅長(zhǎng)學(xué)習(xí)輸入-輸出關(guān)系秒拔。所以我們采用end-to-end的學(xué)習(xí)方法預(yù)測(cè)光流:給定一個(gè)包含圖像對(duì)真實(shí)流的數(shù)據(jù)集莫矗,我們訓(xùn)練一個(gè)網(wǎng)絡(luò)直接從圖像中預(yù)測(cè)x-y流場(chǎng)。但是需要設(shè)計(jì)合適的架構(gòu)來(lái)實(shí)現(xiàn)這個(gè)目的。

一個(gè)簡(jiǎn)單的選擇是把輸入圖像堆疊起來(lái)作谚,把他們通過(guò)一個(gè)相當(dāng)普通網(wǎng)絡(luò)三娩,讓網(wǎng)絡(luò)自己決定怎樣處理圖像對(duì)從而抽取出運(yùn)動(dòng)信息,如圖2(top)所示妹懒,這個(gè)只有卷積組成的架構(gòu)稱為“FlowNetSimple”

原則上雀监,如果這個(gè)網(wǎng)絡(luò)足夠大,就能學(xué)習(xí)預(yù)測(cè)光流眨唬,然而会前,我們無(wú)法保證像SGD那樣的局部梯度優(yōu)化能讓網(wǎng)絡(luò)達(dá)到全局最優(yōu)點(diǎn),因此单绑,手工設(shè)計(jì)一個(gè)不那么通用回官、但能用給定數(shù)據(jù)和優(yōu)化技巧得到好的性能的架構(gòu)是有好處的。

一個(gè)直接的想法就是:針對(duì)兩個(gè)圖像搂橙,創(chuàng)建兩個(gè)獨(dú)立但相同的處理流歉提,然后在后續(xù)進(jìn)程中把他們結(jié)合到一起,如圖2(bottom)区转。在這個(gè)架構(gòu)中苔巨,網(wǎng)絡(luò)需要要先分別產(chǎn)生兩個(gè)圖像的有意義的表達(dá),然后在更高級(jí)別把他們結(jié)合废离,這類似于標(biāo)準(zhǔn)的匹配方法中一個(gè)先從兩個(gè)圖像的patches抽取特征侄泽,然后結(jié)合這些特征向量。然而蜻韭,得到兩個(gè)圖像的特征表達(dá)后悼尾,網(wǎng)絡(luò)怎么找二者的對(duì)應(yīng)呢?

在匹配進(jìn)程,我們?cè)诰W(wǎng)絡(luò)中引入了一個(gè)“correlation layer”(關(guān)聯(lián)層)肖方,在兩個(gè)特征圖中做乘法patch比較闺魏,包含這個(gè)層的網(wǎng)絡(luò)結(jié)構(gòu)在圖2(bottom)中。給定兩個(gè)多通道的特征圖f1俯画、f2析桥,w、h和c是他們的寬度艰垂、高度和通道數(shù)泡仗,我們的關(guān)聯(lián)層就是讓網(wǎng)絡(luò)比較f1中的每個(gè)patch和f2中的每個(gè)patch。

現(xiàn)在我們只考慮兩個(gè)patch的單獨(dú)比較猜憎。第一個(gè)圖的以x1為中心的patch和第二個(gè)圖的以x2位中心的patch之間的關(guān)聯(lián)就定義為:

方形patch的尺寸為K=2k+1 ?(k=0)娩怎。公式1等同于神經(jīng)網(wǎng)絡(luò)中的一個(gè)卷積,但不是用濾波器卷積數(shù)據(jù)胰柑,而是用數(shù)據(jù)卷積數(shù)據(jù)截亦,所以辣辫,沒(méi)有可訓(xùn)練的權(quán)重。

計(jì)算c(x1,x2)涉及到cKK次乘法魁巩,比較所有的patch組合涉及到wwhh次計(jì)算急灭,所以很難處理前向后向過(guò)程。為了計(jì)算谷遂,我們限制最大位移d用于比較葬馋,而且在兩個(gè)特征圖中也引入了步長(zhǎng)stride。這樣通過(guò)限制x2的范圍肾扰,只在D=2d+1 (d=20)的鄰域中計(jì)算關(guān)聯(lián)c(x1,x2)畴嘶。我們用步長(zhǎng)s1(1)和s2(2),來(lái)全局quantize x1集晚,在以x1為中心的鄰域內(nèi)quantize x2窗悯。

理論上,關(guān)聯(lián)的結(jié)果是4D的:對(duì)兩個(gè)2D位置的每個(gè)組合偷拔,我們得到一個(gè)關(guān)聯(lián)值蒋院,即兩個(gè)分別包含截取patches值的向量的內(nèi)積。實(shí)際上莲绰,我們把相對(duì)位置用通道表示欺旧,這就意味著我們得到了w*h*D*D大小的輸出。在反向過(guò)程中蛤签,我們求關(guān)于每個(gè)對(duì)應(yīng)底層blob的導(dǎo)數(shù)辞友。

6. Refinement

Pooling會(huì)導(dǎo)致分辨率減少,為了提供密集的像素預(yù)測(cè)震肮,我們需要一種方法來(lái)refine ?pool后的coarse表達(dá)称龙。我們r(jià)efine的方法如圖3所示戳晌,主要的是upconvolutional上卷積層鲫尊,由unpooling(與pooling相反,擴(kuò)展特征圖)和卷積組成躬厌。為了做refinement马昨,我們?cè)谔卣鲌D上用上卷積竞帽,然后把它和網(wǎng)絡(luò)的收縮部分’contractive’ 得到的對(duì)應(yīng)特征圖扛施、以及一個(gè)上采樣的coarses流預(yù)測(cè)連接起來(lái)。這樣就能既保留coarser特征圖的高層信息屹篓,又能保留低層特征圖的好的局部信息疙渣。每個(gè)步驟兩次增加分辨率,我們重復(fù)這個(gè)過(guò)程4次堆巧,得到預(yù)測(cè)的流妄荔,此時(shí)的特征圖還是原圖的四分之一泼菌。

我們發(fā)現(xiàn),與對(duì)全圖像分辨率做計(jì)算量更少的雙線性上采樣相比啦租,從這個(gè)分辨率上做更多的refinement并不能顯著提升結(jié)果哗伯,這個(gè)雙線性上采樣的結(jié)果就是網(wǎng)絡(luò)的最終流預(yù)測(cè)。

我們替換雙線性上采樣篷角,采用沒(méi)有匹配項(xiàng)的變分方法:我們?cè)?次下采樣分辨率后開始焊刹,迭代20次做coarse-to-fine,把流場(chǎng)變?yōu)槿直媛士叶住W詈笈翱椋谌珗D像分辨率上又做了5次迭代。然后把平滑系數(shù)換為

嘉蕾,用文獻(xiàn)【26】的方法計(jì)算圖像邊界和對(duì)應(yīng)的檢測(cè)邊界贺奠,b(x,y)是各自尺度和像素之間的重采樣的thin邊界的strength。這種放大方法比簡(jiǎn)單的雙線性上采樣計(jì)算量大错忱,但是增加了變分方法的優(yōu)點(diǎn)儡率,得到平滑和亞像素準(zhǔn)確的流場(chǎng)。在下文中以清,用變分法refine的結(jié)果加后綴+v喉悴。變分結(jié)果見圖4

7. 訓(xùn)練的參數(shù)設(shè)置

k=0 ?d=20 ?s1=1 ?s2=2

loss:endpoint error (EPE) ,是光流估計(jì)中標(biāo)準(zhǔn)的error measure玖媚,是預(yù)測(cè)光流向量與真實(shí)光流向量的歐氏距離在所有像素上的均值箕肃。

優(yōu)化方法:Adam ,無(wú)需momentum就能比SGD快速收斂今魔。固定了一些參數(shù):

mini-batches :8

learning rate:開始λ= 1e-4勺像,在第300k次迭代后,每100k次迭代除以2错森。在FlowNetCorr中λ= 1e-4 會(huì)出現(xiàn)梯度爆炸吟宦,從較小的學(xué)習(xí)率λ= 1e-6開始, 在10k次迭代后慢慢增加

達(dá)到λ= 1e-4 ,然后再按照剛剛說(shuō)的減少涩维。

發(fā)現(xiàn)測(cè)試過(guò)程中擴(kuò)大輸入圖像能提升性能殃姓,盡管最優(yōu)尺度取決于數(shù)據(jù)集,我們?cè)谒械娜蝿?wù)的每個(gè)網(wǎng)絡(luò)固定了尺度瓦阐,F(xiàn)lowNetS 沒(méi)做擴(kuò)大蜗侈,F(xiàn)lowNetC 選擇1:25的參數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市睡蟋,隨后出現(xiàn)的幾起案子踏幻,更是在濱河造成了極大的恐慌,老刑警劉巖戳杀,帶你破解...
    沈念sama閱讀 211,561評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件该面,死亡現(xiàn)場(chǎng)離奇詭異夭苗,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)隔缀,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門题造,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人猾瘸,你說(shuō)我怎么就攤上這事晌梨。” “怎么了须妻?”我有些...
    開封第一講書人閱讀 157,162評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵仔蝌,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我荒吏,道長(zhǎng)敛惊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,470評(píng)論 1 283
  • 正文 為了忘掉前任绰更,我火速辦了婚禮瞧挤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘儡湾。我一直安慰自己特恬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,550評(píng)論 6 385
  • 文/花漫 我一把揭開白布徐钠。 她就那樣靜靜地躺著癌刽,像睡著了一般。 火紅的嫁衣襯著肌膚如雪尝丐。 梳的紋絲不亂的頭發(fā)上显拜,一...
    開封第一講書人閱讀 49,806評(píng)論 1 290
  • 那天坎藐,我揣著相機(jī)與錄音凶朗,去河邊找鬼。 笑死刑桑,一個(gè)胖子當(dāng)著我的面吹牛失息,可吹牛的內(nèi)容都是我干的譬淳。 我是一名探鬼主播,決...
    沈念sama閱讀 38,951評(píng)論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼盹兢,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼邻梆!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蛤迎,我...
    開封第一講書人閱讀 37,712評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤确虱,失蹤者是張志新(化名)和其女友劉穎含友,沒(méi)想到半個(gè)月后替裆,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體校辩,經(jīng)...
    沈念sama閱讀 44,166評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,510評(píng)論 2 327
  • 正文 我和宋清朗相戀三年辆童,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了宜咒。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,643評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡把鉴,死狀恐怖故黑,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情庭砍,我是刑警寧澤场晶,帶...
    沈念sama閱讀 34,306評(píng)論 4 330
  • 正文 年R本政府宣布,位于F島的核電站怠缸,受9級(jí)特大地震影響诗轻,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜揭北,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,930評(píng)論 3 313
  • 文/蒙蒙 一扳炬、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搔体,春花似錦恨樟、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至呆奕,卻和暖如春夯尽,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背登馒。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工匙握, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人陈轿。 一個(gè)月前我還...
    沈念sama閱讀 46,351評(píng)論 2 360
  • 正文 我出身青樓圈纺,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親麦射。 傳聞我的和親對(duì)象是個(gè)殘疾皇子蛾娶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,509評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容