深度學(xué)習(xí)100問:圖像語(yǔ)義分割有哪些經(jīng)典的上采樣方法?
點(diǎn)擊上方“小白學(xué)視覺”,選擇加"星標(biāo)"或“置頂”
重磅干貨,第一時(shí)間送達(dá)
? ? ?
???? 大家都知道目前主流的語(yǔ)義分割模型都是編碼-解碼框架的。通過(guò)編碼器不斷將輸入不斷進(jìn)行下采樣達(dá)到信息濃縮,而解碼器則負(fù)責(zé)上采樣來(lái)恢復(fù)輸入尺寸。

???? 目前已知的大多數(shù)分類網(wǎng)絡(luò),比如說(shuō)VGG、ResNet、MobileNet、Inception和DenseNet等,均可用于分割時(shí)的信息編碼,那么恢復(fù)圖像像素的上采樣方法都有哪些呢?
???? 經(jīng)典的上采樣方法主要包括雙線性插值法(Bilinear interpolation)、轉(zhuǎn)置卷積法和反池化法(Unpooling)。本文筆者就和大家來(lái)看一下這些上采樣方法。
???? 插值法(Interpolation)是一種經(jīng)典的數(shù)值分析方法,一些經(jīng)典插值大家或多或少都有聽到過(guò),比如線性插值、三次樣條插值和拉格朗日插值法等。在說(shuō)雙線性插值前我們先來(lái)了解一下什么是線性插值(Linear interpolation)。
???? 線性插值法是指使用連接兩個(gè)已知量的直線來(lái)確定在這兩個(gè)已知量之間的一個(gè)未知量的值的方法。如下圖所示:

???? 已知直線上兩點(diǎn)坐標(biāo)分別為(x1,y1)和(x2,y2),現(xiàn)在想要通過(guò)線性插值法來(lái)得到某一點(diǎn)x在直線上的值。基本就是一個(gè)初中數(shù)學(xué)題,這里就不做國(guó)多展開,點(diǎn)x在直線上的值y可以表示為:

???? 然后我們?cè)賮?lái)看雙線性插值。線性插值用到兩個(gè)點(diǎn)來(lái)確定插值,雙線性插值則需要四個(gè)點(diǎn)。在圖像上采樣中,雙線性插值利用四個(gè)點(diǎn)的像素值來(lái)確定要插值的一個(gè)像素值,其本質(zhì)上還是分別在x和y方向上分別進(jìn)行兩次線性插值。如下圖所示,我們來(lái)看具體做法。

???? 圖中Q11-Q22四個(gè)黃色的點(diǎn)是已知數(shù)據(jù)點(diǎn),紅色點(diǎn)P是待插值點(diǎn)。假設(shè)Q11為(x1,y1),Q12為(x1,y2),Q21為(x2,y1),Q22為(x2,y2)。我們先在x軸方向上進(jìn)行線性插值,先求得R1和R2的插值。根據(jù)線性插值公式,有:

???? 得到R1和R2點(diǎn)坐標(biāo)之后,便可繼續(xù)在y軸方向進(jìn)行線性插值。可得目標(biāo)點(diǎn)P的插值為:

???? 雙線性插值在眾多經(jīng)典的語(yǔ)義分割網(wǎng)絡(luò)中都有用到,比如說(shuō)奠定語(yǔ)義分割編解碼框架的FCN網(wǎng)絡(luò)。假設(shè)將3x6的圖像通過(guò)雙線性插值變?yōu)?x12的圖像,如下圖所示。

???? 雙線性插值的優(yōu)點(diǎn)是速度非常快,計(jì)算量小,但缺點(diǎn)一般就是效果不是特別理想。
???? 語(yǔ)義分割上采樣另一種經(jīng)典的、也是最主流的方法是轉(zhuǎn)置卷積(Transposed Convolution),也有叫做反卷積或者解卷積。轉(zhuǎn)置卷積本質(zhì)上跟常規(guī)卷積并無(wú)太大差別,具體筆者在系列第6篇深度學(xué)習(xí)100問-6:有哪些經(jīng)典的卷積類型?中已有詳細(xì)闡述,本文就不再贅述。

常規(guī)卷積

轉(zhuǎn)置卷積
???? 轉(zhuǎn)置卷積作為上采樣方法效果要比雙線性插值好一些,但缺點(diǎn)就是計(jì)算量偏大。
???? 反池化(Unpooling)可以理解為池化的逆操作,相較于前兩種上采樣方法,反池化用的并不是特別多。其簡(jiǎn)要原理如下,在池化時(shí)記錄下對(duì)應(yīng)kernel中的坐標(biāo),在反池化時(shí)將一個(gè)元素根據(jù)kernel進(jìn)行放大,根據(jù)之前的坐標(biāo)將元素填寫進(jìn)去,其他位置補(bǔ)位為0即可。
???? 如下圖所示,a為輸入圖像,b為轉(zhuǎn)置卷積的輸出效果,c則是反池化的輸出效果。

???? 以上就是本文內(nèi)容。
交流群
歡迎加入公眾號(hào)讀者群一起和同行交流,目前有SLAM、三維視覺、傳感器、自動(dòng)駕駛、計(jì)算攝影、檢測(cè)、分割、識(shí)別、醫(yī)學(xué)影像、GAN、算法競(jìng)賽等微信群(以后會(huì)逐漸細(xì)分),請(qǐng)掃描下面微信號(hào)加群,備注:”昵稱+學(xué)校/公司+研究方向“,例如:”張三?+?上海交大?+?視覺SLAM“。請(qǐng)按照格式備注,否則不予通過(guò)。添加成功后會(huì)根據(jù)研究方向邀請(qǐng)進(jìn)入相關(guān)微信群。請(qǐng)勿在群內(nèi)發(fā)送廣告,否則會(huì)請(qǐng)出群,謝謝理解~

