0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Keras實現(xiàn):用部分卷積補(bǔ)全圖像不規(guī)則缺損

zhKF_jqr_AI ? 來源:未知 ? 作者:李倩 ? 2018-10-26 08:54 ? 次閱讀

編者按:圖像補(bǔ)全是一個熱門研究領(lǐng)域,今年4月,NVIDIA發(fā)表了一篇精彩的論文:Image Inpainting for Irregular Holes Using Partial Convolutions。文章指出,以往圖像補(bǔ)全技術(shù)都是用殘缺位置周邊的有效像素統(tǒng)計信息填充目標(biāo)區(qū)域,這種做法雖然結(jié)果平滑,但存在效果不逼真、有偽像,且后期處理代價昂貴的缺點。因此他們用大量不規(guī)則掩膜圖像訓(xùn)練了一個深度神經(jīng)網(wǎng)絡(luò),它能為圖像生成合理掩膜,再結(jié)合僅以有效像素為條件的部分卷積(Partial Convolutions),最終模型的圖像補(bǔ)全效果遠(yuǎn)超前人的成果。

而近日,有網(wǎng)友復(fù)現(xiàn)了這篇論文,并在GitHub上公開了他的Keras實現(xiàn),感興趣的讀者前去一看:github.com/MathiasGruber/PConv-Keras

NVIDIA論文

環(huán)境

Python 3.6

Keras 2.2.0

Tensorflow 1.8

如何使用這個repo

repo中包含的PConv2Dkeras實現(xiàn)可以在libs/pconv_layer.py和libs/pconv_model.py中找到。除此之外,作者還提供了四個jupyter NoteBook,詳細(xì)介紹了實現(xiàn)網(wǎng)絡(luò)時經(jīng)歷的幾個步驟,即:

step 1:創(chuàng)建隨機(jī)不規(guī)則掩膜

step 2:實現(xiàn)和測試PConv2D層

step 3:實現(xiàn)和測試采用UNet架構(gòu)的PConv2D層

step 4:在ImageNet上訓(xùn)練和測試最終模型

實現(xiàn)細(xì)節(jié)

在設(shè)計圖像補(bǔ)全算法時,研究人員首先要考慮兩個因素:從哪里找到可利用的信息;怎么評判整體補(bǔ)全效果。無論是天然破損的圖像,還是被人為打上馬賽克的圖像,這之中都涉及圖像語義上的預(yù)測。

這篇論文發(fā)表之前,學(xué)界在圖像補(bǔ)全上的最先進(jìn)方法之一是利用剩余圖像的像素統(tǒng)計信息來填充殘缺部分,這利用了同一幅圖像素間的連接性,但缺點是只反映了統(tǒng)計上的聯(lián)系,無法真正實現(xiàn)語義上的估計。后來也有人引入深度學(xué)習(xí)的方法,訓(xùn)練了一個深度神經(jīng)網(wǎng)絡(luò),以端到端的方式學(xué)習(xí)語義先驗和有意義的隱藏表示,但它仍局限于初始值,而且使用的是固定的替換值,效果依然不佳。

NVIDIA在論文中提出了一種新技巧:添加部分卷積層(Partial Convolutional Layer),并在這一層之后加上一個掩膜更新步驟。部分卷積層包含生成掩膜和重新歸一化,它類似圖像語義分割任務(wù)中的segmentation-aware convolutional(分段感知卷積),能在不改變輸入掩膜的情況下分割圖像信息。

簡而言之,給定給定一個二元掩膜,部分卷積層的卷積結(jié)果只取決于每一層的非殘缺區(qū)域。相比segmentation-aware convolutional,NVIDIA的創(chuàng)新之處是自動掩膜更新步驟,它可以消除部分卷積能夠在非掩膜值上操作的任何掩膜。

具體設(shè)計過程可以閱讀論文查看,下面我們只總結(jié)一些細(xì)節(jié)。

生成掩膜

為了訓(xùn)練能生成不規(guī)則掩模的深度神經(jīng)網(wǎng)絡(luò),論文研究人員截取視頻中的兩個連續(xù)幀,用遮擋/解除遮擋創(chuàng)建了大量不規(guī)則掩膜,雖然他們在論文中稱將公開這個數(shù)據(jù)集,但現(xiàn)在我們還找不到相關(guān)資源。

在這個Keras實現(xiàn)中,作者簡單創(chuàng)建了一個遮擋生成函數(shù),用OpenCV繪制一些隨機(jī)的不規(guī)則形狀,以此作為掩膜數(shù)據(jù),效果目前看來還不錯。

部分卷積層

這個實現(xiàn)中最關(guān)鍵的部分就是論文的重點“部分卷積層”?;旧?,給定卷積filter W和相應(yīng)的偏差b,部分卷積的形式是:

其中⊙表示點乘,即每個矩陣元素對應(yīng)相乘,M是由0和1構(gòu)成的二進(jìn)制掩碼。在每次完成部分卷積操作后,掩膜要進(jìn)行一輪更新。這意味著如果卷積能夠在至少一個有效輸入上調(diào)節(jié)其輸出,則在該位置移除掩碼:

這樣做的結(jié)果是,在網(wǎng)絡(luò)夠深的情況下,最終掩碼將全部為0(消失)。

UNet架構(gòu)

下圖是論文中提供的PConv整體架構(gòu),它類似UNet,只不過其中所有正常的卷積層都被部分卷積層代替,使圖像+掩膜無論何時都能一起通過網(wǎng)絡(luò)

PConv整體架構(gòu)

PConv彩色圖解

損失函數(shù)

論文涉及的損失非常多樣,簡而言之,它包括:

掩膜區(qū)(Lhole)和非掩膜區(qū)(Lvalid)的每個像素?fù)p失

基于ImageNet預(yù)訓(xùn)練的VGG-16(pool1, pool2 and pool3 layers)的感知損失(Lperceptual)

VGG-16在預(yù)測圖像(Lstyleout)和計算圖像(Lstylecomp)上的風(fēng)格損失(以非殘缺區(qū)像素為真實值)

殘缺區(qū)域每個像素擴(kuò)張的總變差損失(Ltv),也就是1像素擴(kuò)張區(qū)域的平滑懲罰

以上損失的權(quán)重如下:

論文補(bǔ)全效果

下圖是論文中呈現(xiàn)的圖像補(bǔ)全效果,其中第一列是輸入圖像,第二列是GntIpt算法的輸出,第三列是NVIDIA論文的結(jié)果,第四列是真實完整圖像。可以發(fā)現(xiàn),無論圖像缺失區(qū)域有多不規(guī)則,PConv的補(bǔ)全效果在顏色、紋理、形狀上都更逼真,也更平滑流暢。

小結(jié)

最后一點,也是最重要的一點,如果是在單個1080Ti上訓(xùn)練模型,batch size為4,模型訓(xùn)練總用時大約在10天左右,這是個符合論文所述的數(shù)據(jù)。所以如果有讀者想上手實踐,記得提前做好硬件和時間上的準(zhǔn)備。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 神經(jīng)網(wǎng)絡(luò)

    關(guān)注

    42

    文章

    4777

    瀏覽量

    100974
  • 圖像
    +關(guān)注

    關(guān)注

    2

    文章

    1088

    瀏覽量

    40516
  • 深度學(xué)習(xí)
    +關(guān)注

    關(guān)注

    73

    文章

    5511

    瀏覽量

    121356

原文標(biāo)題:Keras實現(xiàn):用部分卷積補(bǔ)全圖像不規(guī)則缺損

文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    教你設(shè)計不規(guī)則形狀的PCB

    我們預(yù)想中的完整 PCB 通常都是規(guī)整的矩形形狀。雖然大多數(shù)設(shè)計確實是矩形的,但是很多設(shè)計都需要不規(guī)則形狀的電路板,而這類形狀往往不太容易設(shè)計。本文介紹了如何設(shè)計不規(guī)則形狀的 PCB。
    發(fā)表于 02-16 11:10 ?6170次閱讀
    教你設(shè)計<b class='flag-5'>不規(guī)則</b>形狀的PCB

    創(chuàng)建不規(guī)則窗體和控件

    具有的功能所需的代碼。 具體步驟下面我就具體向大家介紹如何創(chuàng)建不規(guī)則窗體。 創(chuàng)建一個具有不規(guī)則形狀的位圖文件 1.任何畫圖程序就可以創(chuàng)建不規(guī)則形狀的位圖,你可以使用最容易也是最方便的
    發(fā)表于 03-04 17:02

    示波器去測量不規(guī)則波形

    想要用示波器去測量一個不規(guī)則波形在某點突然停止的波形,求助怎么辦
    發(fā)表于 11-27 14:22

    labview前面板部分透明,不規(guī)則界面

    本帖最后由 a156789156782 于 2015-8-12 14:33 編輯 labview前面板部分透明,任意形狀界面項目:不規(guī)則窗口平臺:labview8.5 技術(shù):引用、調(diào)用、控件
    發(fā)表于 08-12 12:00

    labview中怎么實現(xiàn)控件按指定的不規(guī)則的路線移動?

    labview中怎么實現(xiàn)控件按指定的不規(guī)則的路線移動?
    發(fā)表于 10-05 16:45

    利用Keras實現(xiàn)四種卷積神經(jīng)網(wǎng)絡(luò)(CNN)可視化

    Keras實現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)(CNN)可視化
    發(fā)表于 07-12 11:01

    不規(guī)則PCB封裝編輯

    不規(guī)則PCB封裝編輯
    發(fā)表于 09-05 11:17 ?0次下載

    不規(guī)則變換循環(huán)LED閃爍電路

    電子設(shè)計研發(fā)部分的研發(fā)人員常用資料,不規(guī)則變換循環(huán)LED閃爍電路
    發(fā)表于 11-02 18:31 ?0次下載

    一種基于距離變換的不規(guī)則區(qū)域匹配算法

    部紋理確定不規(guī)則區(qū)域的支撐區(qū)域;然后給出了一種基于距離變換的子區(qū)域劃分方法,與傳統(tǒng)方法相比,能夠減少圖像亮度變化帶來的匹配錯誤;最后針對區(qū)域存在形狀、尺寸大小不一且具有不同像素點數(shù)的問題,采用均值標(biāo)準(zhǔn)差MS構(gòu)造描述
    發(fā)表于 11-28 17:32 ?0次下載
    一種基于距離變換的<b class='flag-5'>不規(guī)則</b>區(qū)域匹配算法

    一種新的對不規(guī)則珠寶圖像的自動檢測方法

    針對不規(guī)則物體形狀特征難以估計的問題,以實現(xiàn)對珠寶的自動測量技術(shù)為前提,通過引入主成分分析的概念,提出一種新的對不規(guī)則珠寶圖像的自動檢測方法。該算法首先利用主分量分析提取出目標(biāo)珠寶
    發(fā)表于 12-11 11:56 ?0次下載
    一種新的對<b class='flag-5'>不規(guī)則</b>珠寶<b class='flag-5'>圖像</b>的自動檢測方法

    線積分卷積技術(shù)的詳細(xì)資料說明

    LIC,即線積分卷積是一種基于紋理的方法。LIC使用卷積的結(jié)果來表示矢量的方向。它通過將矢量場某一時刻及該時刻前后的幾個時刻的圖像相互疊加,最終的結(jié)果便可以表示矢量場的方向信息。LIC算法可以有效地表征二維矢量場,即能清楚直觀地
    發(fā)表于 07-03 08:00 ?1次下載
    線積<b class='flag-5'>分卷積</b>技術(shù)的詳細(xì)資料說明

    基于密集卷積生成對抗網(wǎng)絡(luò)的圖像修復(fù)方法

    圖像修復(fù)是一項利用缺損圖像中已知信息對缺損區(qū)域信息進(jìn)行估計修復(fù)的技術(shù)。針對大面積語義信息缺失的圖像進(jìn)行修復(fù)時,若訓(xùn)練數(shù)據(jù)集較小且
    發(fā)表于 05-13 14:39 ?15次下載

    基于生成式對抗網(wǎng)絡(luò)的圖像補(bǔ)全方法

    圖像補(bǔ)全是數(shù)字圖像處理領(lǐng)域的重要研究方向,具有廣闊的應(yīng)用前景。提出了一種基于生成式對抗網(wǎng)絡(luò)(GAN)的圖像補(bǔ)全方法。生成式對抗網(wǎng)絡(luò)模型由生成
    發(fā)表于 05-19 14:38 ?14次下載

    OpenCV初學(xué)者如何提取這些不規(guī)則的ROI區(qū)域

    ,而且這些ROI區(qū)域往往不是矩形區(qū)域,一般都是不規(guī)則的多邊形區(qū)域,很多OpenCV初學(xué)者都不知道如何提取這些不規(guī)則的ROI區(qū)域。
    的頭像 發(fā)表于 10-31 14:51 ?891次閱讀

    基于差分卷積神經(jīng)網(wǎng)絡(luò)的低照度車牌圖像增強(qiáng)網(wǎng)絡(luò)

    車牌識別作為現(xiàn)代化智能交通系統(tǒng)中重要的環(huán)節(jié),對提升路網(wǎng)效率以及緩解城市交通壓力等問題具有重要的社會意義,然而弱光照車牌圖像識別仍然具有重大的挑戰(zhàn)。構(gòu)建了一個基于差分卷積神經(jīng)網(wǎng)絡(luò)的弱光照車牌圖像增強(qiáng)
    的頭像 發(fā)表于 11-11 10:29 ?239次閱讀
    基于差<b class='flag-5'>分卷積</b>神經(jīng)網(wǎng)絡(luò)的低照度車牌<b class='flag-5'>圖像</b>增強(qiáng)網(wǎng)絡(luò)