深度學習論文閱讀(一)Physics Inspired Optimization on Semantic Transfer Features

準備從零開始認真學習深度學習,因爲真的太強了,我會慢慢地寫完這些博客,如果有說的不好的地方,可以指出來,我會改的。


最近看到一篇論文,講的是關於Room layout的識別和優化有關的,這是論文鏈接:https://pan.baidu.com/s/1PYNBTn5WHoiTwYWGYLiqQw


這是關於什麼東西的呢?先放一張圖片給你們看一下。

 

上圖是 room layout(室內佈局)的任務結構,我們只看最左邊的 輸入 input 和最右側的輸出 output ,是不是很容易就明白了 room layout是幹什麼的了? 對,就是把牆壁和地板以及天花板勾勒出來。。

room layout 的涉及的領域非常多,我舉幾個例子,比如構造三維還原場景,又或者是機器人的行走等等,所以這是一個很熱的研究點,接下來,我會用很簡短的篇幅講完這篇論文,這裏先放上論文的代碼,不是我寫的。。

https://github.com/liamw96/pytorch.room.layout.git

這裏面有操作說明的

接下來,我會按照三個模塊講這篇論文

第一部分:是基於深度學習的特徵提取,目的是可以學習到一個模型,能做到將圖片處理成下面這個樣子 

第二部分:就是將上面處理完的這個花花綠綠的圖片處理成下面這個樣子

第三部分:是實驗的結果展示



一 Semantic Transfer

我一直覺得深度學習這個東西可解釋性不高,只要你能搭出一個結果好的模型就可以,沒有人會問你爲什麼,你要有100個卷積層,或者這個池化層爲什麼是max。。。。在這片文章中作者,使用了兩種數據集,進行實驗:

LSUN和Hedau, 在作者的論文中說了下載地址,你們可以自己去找(上面給出的git庫中也給了地址,需要翻牆)

作者通過構造了一個,如下的模型,訓練出了他要的實驗效果。

                                                                                             圖 一

這個圖怎麼看呢。。仔細看,我們可以發現Stage 字樣,按照1到4的階段走,首先是Stage one的網絡要能做到語義識別(把這張圖片裏面的各種物品分出來),然後記錄下這些訓練好的模型參數。然後把Stage one的中間結果(上圖靠左的花花的那張),作爲輸入,訓練一個Stage two的模型出來,這個時候就可以識別出線條了。綜合上面的網絡拓撲結構,整合完以後,就可以做到,輸入一張圖片,得到最後的room layout的結果了,但是這樣子的結果是長這樣的:

有點模糊,對於未來的使用是不好的,所以我們希望從上面的圖中,摳出幾條走勢清晰的線條,這就是接下來的步驟了

二 優化

 優化的方法作者主要說了兩種,公式可能比較多,我會盡力說清楚,如果有發現我理解錯了的同學,也可以留言告訴我,我會改的。

在這片文章中,作者給出了11中基本的room layout 走勢圖,我列舉幾個:

真實的情況就是線條的長短和角度的問題了,所以作者每次都是初始化成這11種佈局(挑一個最好的),然後設計一個評價標準,構建損失函數,並利用優化算法進行最優佈局求解,大體思路是這樣的。

 

我先給出目標函數,下面會講公式的意義,別慌:

 

 

上面的e就是我們的目標函數,我們想求解出圖片上所有的像素點的分佈情況,使得e最小。接下來我會將這個公式的意義。

CO這個公式中的,L指的是節點的類型的個數(wall-wall,wall-floor,wall-background,wall-ceiling),意思就是是牆牆的連線上的點,還是牆和天花板之間的連線上面的點。所以L=4

w,h指的是圖片的長度和寬度,比如300*300的圖片,那麼w=h=300;

而,Fl(m,n)函數的作用是返回m,n這個位置的像素點在 L這種類標籤上的值(由上面說的深度學習得到的結果,看一看上圖一的右側,可以發現有四種結果),同理,Ml(m,n)的意義是返回m,n這個位置的像素點在給定了幾個重要的P點(馬上講)後的理論上的標籤值。所以把這些值×起來(我猜應該是0,1相乘的那種,就是是這個類就是1,不是就是0.。。所以牆壁上或者地板上,天花板上的值都是0,方便計算吧),構造出目標函數CO,我們可以發現CO越大,說明我們選擇的P點越好。那P點是什麼鬼東西。。。看下圖。

圖中的123456就是所謂的P點,即那些很重要的連接點,這6個點確定以後,所有點的分類都出來了,就可以利用上面的公式計算出最有的6個點應該是哪六個。。

(1)Naive Optimization

這是一種簡單的方法,很容易明白,不信你們看下圖

這個就是再算p關於e的梯度,然後藉此修改每一個重要的節點的橫縱座標,其中Pijy代表的是,第i種(剛剛說的11種佈局)室內佈局的,第j個點(就是所有牆角連線上的所有點都要計算)的y座標,這樣是不是就可以理解了呢?

優點:這個方法效果挺好的

缺點:時間代價比較高,O(N2)

(2)Physics Inspired Optimization

寫這篇論文的大佬很厲害,他通過觀察生活中的細節,發現,我們只需要確定了所有的連接點的位置,那些連接線上的點自然就確定了位置,所以想把e的函數,改成只和連接點有關,又因爲連接點的個數是常數,所以時間複雜度就縮減到了O(n).方法是這樣的:

作者,發現,可以把連接線當成一個整體(能旋轉,縮短,平移等等),那麼e的目標函數就變得只和關鍵的連接點有關了,而且,一個連接點的變化會導致連接他的所有的連接線上的點發生變化,所以優化目標變成了這樣,通過這個方法來修改關鍵的連接點的位置:

這是個什麼玩意?只需要能明白Q是什麼東西就可以了,對吧。

CO2是CO的改進目標函數,Fc指的是加了一個壓迫力之後第K條連接線上(假設給定了某種基本的room layout佈局)的兩個連接點的位置的結果,其中Qkax指的是第k條線上的一端a(一條線就兩端a和b)的x座標(這個F和上面的F是一個意思,帶上的小c應該是連接點的意思,通過求解4中類別的綜合結果,而且只需要考慮連接點的類別信息,速度快很多),意思應該是和NO差不多 的,然後再進行求解就有:

這個就是Q的來源了。

 

三 實驗結果

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章