呂李娜 劉 鎮(zhèn) 夏 炎
(江蘇科技大學計算機學院 鎮(zhèn)江 212003)
近些年來,隨著深度學習在圖像識別和圖像分類領域的成功,一股深度學習的熱潮產生[1]。使用深度學習的方法將圖像自動上色也成為研究方向之一[2]。傳統(tǒng)的黑白圖像自動上色方法有結合領域相關性的HIST 算法[3],金子塔算法[4]和基于隔行掃描的快速算法[5]。即將源彩色圖像的色彩轉移到目標黑白色圖像中去,從而形成具有目標圖像的外觀,但是色彩感覺為原圖像的輸出圖像。但是此類方法需要設計色彩特征提取工具,并且上色效果和速度也不是很好。一般把依賴于灰度區(qū)域的連續(xù)性來找到灰度相同的區(qū)域,用于輔助圖像的分割,再進行彩色化稱之為傳統(tǒng)的自動上色技術[6~8]。利用卷積來提取圖像特征已經成為圖像任務領域比較成熟的技術。利用卷積神經網絡分別提取圖像的顏色和內容。將去除來的顏色特征和原圖像結 合起來 形成一 種全新 的 圖像[9~11]。在2014 年Goodfellow 等[12]開 創(chuàng) 性 的 使 用 生 成 對 抗 網 絡(GAN)[13~15],該模型由生成器模型和判別其模型兩個部分組成。其中生成器模型主要用于捕獲圖像的特征分布,從而生成圖像。而判別器模型擔任的是二分類器,用于判別生成器產生的是真或者假。模型優(yōu)化的思路是來源于博弈論,生成器生成一張圖片來欺騙判別器模型,判別器去判別這張圖片的真假,如果成功判別出來為假,則生成器優(yōu)化訓練。直到判別器判別圖片真假的概率為0.5 為止,此時判別器已經無法判別出生成器的圖像是真是假。整個網絡根據(jù)這個原則進行迭代優(yōu)化,兩個模型的能力越來越強最終達到穩(wěn)態(tài),借助機器自動學習優(yōu)化調參,生成對抗網絡能夠生成高質量的圖像。
本文根據(jù)生成對抗網絡的特點重新設計網絡結構,將彩色圖片轉換成灰度圖片,然后和原來的圖像一起生成灰度彩色圖像數(shù)據(jù)對,進行模型的訓練學習到顏色特征,將訓練好的模型用于老舊的黑白照片進行上色。
生成對抗網絡是由Ian Googfellow 于2013年提出,它是一種兩個神經網絡相互競爭的特殊對抗過程,網絡結構原理如圖1。生成網絡用于生成數(shù)據(jù),判別器網絡[16~17]試圖區(qū)分真是數(shù)據(jù)與一個網絡創(chuàng)造出來的假數(shù)據(jù)。判別器網絡會生成在[0,1]范圍內的標量,輸出代表數(shù)據(jù)是真實數(shù)據(jù)的概率。
圖1 生成對抗網絡原理圖
式(1)是GAN 的優(yōu)化函數(shù),在一些情況下這兩個網絡可以達到平衡點,但是在另外一些情況下卻不能。這是由于判別器網絡一開始的時候過于強大,這樣導致生成器無法學習到更多的圖像特征。其中最常見的問題是模型坍塌,其中的基本原理是生成器可能會在某種情況下重復完成一致的圖像,這其中的原因和博弈論中的啟動相關。先從判別器的角度試圖最大化,所有工作還可以正常運行。然而如果通過另一種方式首先嘗試最小化生成器,接下來嘗試最大化判別器,那么工作就無法正常運行。原因在于保持判別器不變,它會將空間中的某些點標記為最有可能是真的而不是假的,這樣生成器就會選擇將所有的噪聲輸入映射到那些最可能為真的點。
為了克服訓練GAN 模型中不穩(wěn)定的問題,需要對原生的網絡進行訓練條件的限制。對于圖像的任務而言G 的輸入和輸出之間其實共享了很多信息,例如圖像的邊信息,因而為了保證輸入圖像和輸出圖像之間的相似度,加入了L1 正則Loss,設(x,y)是真實圖像對,G 生成的圖像是G(x),G(x)那么應該接近真實圖像,如式(2):
式(3)是加入L1 正則項后的匯總損失函數(shù),代表正則項的權重,調節(jié)可以影響模型的泛化能力。
本文使用一個編碼-解碼器來代替原始GAN網絡中的生成器[18~19]。編碼環(huán)節(jié)輸入圖像需要通過卷積操作縮減圖像尺寸,然后通過批正則BATCH NORM 進行批量圖片的處理,通過IN?STANCE NORM 操作,正則化單張圖片,最后加入ReLU非線性激活層,由于ReLU函數(shù)在負半區(qū)的導數(shù)為0,所以一旦激活神經元進入負半區(qū),那么梯度就會為0,也就是說這個神經元不會經歷訓練,即所謂的模型出現(xiàn)梯度稀疏。處理辦法可以在負半區(qū)加上一個很小的斜率用來抑制這種情況的出現(xiàn),解碼過程和編碼相反。最后一層需要用到反卷積上采樣還原出圖像原來的尺寸。如圖2所示。
圖2 編碼模塊
判別器網絡[20]的任務就是判斷輸入圖片和未知圖片,然后對比判斷給出結論,未知圖片是不是由生成器生成的假圖片。圖3 中的判別器首先將兩張圖片在特征維度拼接,然后進入層層卷積。
網絡中的最后一層沒有使用原始GAN 的soft?max 函數(shù)直接判斷真1 或者假0。而是生成30*30的尺寸的特征值。然后取網格輸出的平均值作為判別標準。
圖3 生成器網絡結構
使用峰值信噪比(PSNR)和結構相似度(SSIM)作為衡量圖像上色的客觀指標。原彩色圖像Y 和重建的圖像?,PSNR和SSIM為
式(4)中M 和N 為圖像的尺寸,式(5)中μY和δY分別為原始彩色圖像的平均灰度值和方差,μY?和δY?分別為生成上色后的圖像的灰度平均值和方差,為原始彩色圖像和生成上色圖像的協(xié)方差,C1、C2 為常數(shù)。
實驗圖片數(shù)據(jù)使用的是在互聯(lián)網上獲取9300張256*256像素的彩色照片部分圖像如圖4所示。
圖4 部分彩色圖像
使用OpenCV 的圖像色彩轉換工具箱,將彩色圖轉換成灰度圖,然后和原來的圖像形成數(shù)據(jù)對。其中7500張用于訓練,1800張用于測試。
實驗平臺使用處理器是Intel(R)Core(TM)i7-4770 CPU @ 3.40GHz,內存容量16G,顯卡為NVIDIA GeForce GTX 960,256G 的固態(tài)硬盤。編程語言為Python3.5,Tensorflow1.18-GPU 版本,Cu?da9.0,CUDNN7.1。操作系統(tǒng)選擇的是Ubuntu16.04桌面版。
本實驗中的學習率初始化設置為0.02,衰減權重系數(shù)為0.0001,更新權重為0.1,更新權重的衰減系統(tǒng)為0.0002,每次最大迭代次數(shù)是10000 次,ep?och 為600 次。選擇的是隨機梯度下降法。Batch批訓練的選擇為50。
圖5 為訓練好以后的自動上色的效果圖,右邊為原來彩色的圖片,左邊為黑白色的圖片。中間為本文的自動上色方法。圖6 為訓練模型的精度曲線。圖7為訓練模型的損失Loss曲線圖。
圖5 訓練后生成圖像數(shù)據(jù)
圖6 訓練的精度曲線
圖7 訓練的Loss曲線
由生成對抗網絡訓練的上色圖像和原圖像的峰值信噪比和結構相似度的值如表1 所示。和傳統(tǒng)的方法相比,基于深度學習的方法有明顯的優(yōu)勢。主要是在設計特征結構的時候由網絡自動的提取,而且每張圖片的自動上色速度在訓練階段為3.1s,在測試階段為10ms。
表1 峰值信噪比(PSNR)和結構相似度(SSIM)
本文提出了一種基于生成對抗網絡的無監(jiān)督機器學習的灰度圖像自動上色方法。通過對目標函數(shù)添加L1 正則化約束條件提高圖像上色的效果。在訓練好的網絡模型后,能夠對黑白和灰度老舊照片自動上色。同時對比了四種傳統(tǒng)的圖像自動上色方法,在算法的負載度上,無需手工提取圖像色彩特征的機器學習的方法有明顯的優(yōu)勢,上色效果也明顯優(yōu)于傳統(tǒng)的方式。峰值信噪比本文的方法比較好,但是在結構相似度,因為傳統(tǒng)的方式是基于結構設計的,而生成對抗網絡是重新生成的,所以稍微劣于傳統(tǒng)方法。但是在人眼的主觀感受上,本文的方法細節(jié)較好。