◆劉曉麗 程曉榮
基于卷積神經網絡的智能著色技術的研究
◆劉曉麗 程曉榮
(華北電力大學(保定)控制與計算機工程學院 河北 071003)
通過深度卷積神經網絡及語義分割任務的學習,研究了一種基于有監督學習的著色技術。在用戶給定的圖像中將其變成灰度圖,然后通過卷積和GPU進行特征提取,并在特征空間上構建分類器,使用softmax對像素的顏色進行分類。實驗結果表明,該著色可以達到以假亂真的視覺效果,對于黑白灰圖像的著色具有相應的應用價值。
CNN;特征提?。恢悄苤环诸?;卷積
有照片才有意義,照片給人一種時光倒流的回憶感,尤其是收藏的黑白老照片。而隨著年齡漸長、時光飛逝,留在腦海里的當時的色彩顏色越發模糊。因此,急需一種方法恢復人們的內存記憶。人們曾用類似于小學生繪圖的方式,即用戶輔助的涂鴉著色。這種方式用戶交互性很強,需要手動地指定特定的某一區域所需顏色,不適用復雜的圖形處理。另有學者提出參考圖例的色彩著色,時空中具有相似強度的相鄰像素具有相似的顏色,但難點在于找到一張匹配的參考圖[1]。而本文在使用CNN將輸入圖像轉化為灰度圖像基礎之上使用模型訓練形成著色,達到圖像“幻覺化”的效果。
人類的大腦中擁有1000多億個神經元,每個神經元都可能與多個方向互相連接著構成一個超級大型的網絡,從而形成人腦意識。在1943年許多神經元模型和學習規則被研究學者所提出,繼MP模型、BP算法、DNN算法之后,普遍由輸入層、卷積運算、池化和若干全連接層組成的CNNs被提及[2]。但ConvNets絕大部分的計算量都集中在卷積層。
卷積操作可看做“滑動窗口法”,類似于計算機網絡中的滑動窗口協議,在輸入的矩陣與濾波器矩陣點乘后相加將結果傳送給輸出層,與局部連接本質上是一致的。

圖1 卷積可視圖
對圖像和濾波器做內積的操作就是卷積操作,如圖1所示,從左至右依次是輸入層、濾波器層和輸出層。該圖片選用3*3的卷積核,卷積核內共有9個數值,所以圖1右列中一共有9個數值。

在每個位置上計算出兩個矩陣間(輸入層矩陣和濾波器層矩陣)的相應元素乘積,并把點乘結果之和,存儲在輸出矩陣(3*3顏色矩陣所示)的每個單元格中。如圖1,棕黃顏色圈出的矩陣對應元素與濾波器層的各個元素乘積之和得到的值,寫入相應的棕黃色的位置。步長為1,滑動窗口按照先行后列的原則向后滑動1個窗口,依像素相乘再相加得到特征圖譜矩陣。
顏色空間可以以兩大類概括:一類是面向硬件的RGB、YCrCb、CMY;另一類是面向視覺感知的HSI、HSV、HSB、CIE Lab。
RGB最常見的用途是顯示系統,直觀且易理解,但由于它沒有明確區分三個顏色分量,因此精確度不夠。CIE Lab,是一種以數字化方式描述的更接近人眼觀測的顏色空間,也是本項目使用的色彩模式,衡量顏色之間的差異性靠歐幾里得距離;區間為綠-紅色的a和藍-黃色的b兩個通道包含了所有色彩信息,而L僅對亮度和強度進行編碼[3]。如表1所示。

表1 CIE Lab感知范圍

(1)RGB轉XYZ

通過觀察可以發現,各行系數之和非常接近于1,因此X、Y、Z的取值范圍也必然與R、G、B類似。
(2)XYZ轉LAB



本文運用的平臺是Pycharm,特征提取使用到了Python和Opencv,且使用了很多第三方包,包括將目錄下的文件進行讀取操作的glob、代碼進度可視化的tqdm、結果可視化的matplotlib、數據自動生成器的Keras、高維數組運算的Numpy及易在GPU上訓練的Tensorflow。
由于人們感知到的顏色與顏色的空間分布密切相關,提出根據圖像集自動挑選適合當前可視化任務的參考圖形以保證結果的多樣性,使用圖結構對不同類別之間的空間排列以及圖像中的主要顏色分布進行建模,并通過圖匹配算法來檢索具有高度空間分布相似性的圖像,利用的核心算法是K近鄰算法;在scikit-learn 中,sklearn.neighbors涵蓋了與近鄰法相關的類庫,此處K取到5[5]。
在訓練集中每一個樣本都有一個標簽,即我們知道樣本集中每一個數據所屬于的分類。輸入一個沒有標簽的新數據后,將新數據的每個特征和樣本集中的數據的特征進行對比,然后算法提取出樣本集中與輸入數據特征相似的5個數據的分類標簽,將所屬最多的標簽作為該樣本的結果標簽。
給定一張圖像,可以是彩色圖像,也可以是灰色圖像,先對其顏色采樣,通過卷積神經網絡學習圖片特征并預測它的著色,重復模型訓練,輸出類別的分布概率利用到了softmax函數,并對每個像素點顏色進行分類并上色,最后加上亮度形成彩色圖。
(1)特征提取模塊

圖2 VGG模型的建立
本項目的基礎網絡是基于VGG網絡版本構建的,如圖2所示,通過8個卷積塊提取灰度圖圖片特征,在每一層的最后加上批量規范化(BN)層,進行歸一化操作,這樣增強類內緊致性,加速了學習收斂速度[5-6]。使用ReLu激活第二至第七層,為防止數據結構丟失使用空洞卷積獲取更大感受野,特征提取完畢后使用 softmax 對像素點的顏色進行分類,按照顏色分類結果對圖像像素上色[6]。
為保證規范化,將輸入的圖像尺寸重新定義成256*256大小,8層卷積之后的參數如表2所示。

表2 VGG特征提取輸出結果
(2)訓練模塊
訓練集是從ImageNet中抽取1000個類的130萬張風景子集圖像[7]。從訓練結果中獲得總共313個常用值對。這時,模型訓練已從回歸問題變為分類問題。模型訓練的實質是對參數進行不斷的調整,該算法使用隨機梯度下降法更新權重,與原始圖像比較以進行誤差計算,重復訓練過程以訓練模型。為了防止過度擬合,此處的損失函數使用的是分類多項交叉熵損失[8-9]。
(3)測試及結果評價
將需要測試的彩色圖或者灰度圖統一轉為灰度圖像后上色,利用上述闡述的算法不斷更新最符合該圖像的色彩。本文選取校園及學校周邊的手機素材作為風景類圖像,選取網絡照片為動物類圖像,選取明星及周圍師生為人物類圖像,選取校園周圍大型超市構圖為復雜場景圖像,其中前三類上色效果理想,而對于復雜場景的超市貨物來說,上色效果不夠,原因是分類精度不夠高。如圖4所示,從各個類別中隨機選取了一張,從上至下依次為校園風景圖、動物圖、人物圖和超市圖。

圖4 部分結果圖
圖像著色是像素預測難題的一個實例,在影集修復和醫學應用中具有相當的價值空間。本項目應用深度CNN和精心抉擇的目標函數使著色更接近于切實的彩色照片,并迸發與真實彩色照片難以區分的結果。對于訓練結果,雖然本項目提高了著色的飽和度,對大部分場景都有較好的結果,但對人造場景(如超市復雜景觀等)仍表現力不足。接下來可進一步去設計損失函數并提高分類精度,目的是使網絡著色結果足以欺騙人們的“直覺”。
[1]張政,姚楠,方利.基于積神經網絡的圖像著色方法研究[J].電腦知識與技術,2019(15):204-206.
[2]姜新猛. 基于TensorFlow的卷積神經網絡的應用研究[D].湖北省:華中師范大學,2017.
[3]郭晶晶,李慶武,程海粟,仇春春.基于Lab顏色距離和GMM的樹木圖像分割算法[J].信息技術,2016(02):1-4+9.
[4]呂維帥.基于深度神經網絡的黑白圖像著色算法研究[D].江西省:江西理工大學,2019.
[5]Zhang,R,Isola,P,Efros,AA:Colorful Image Colorization[C].14th European Conference on Computer Vision (ECCV). Amsterdam,NETHERLANDS,2016:649-666.
[6]Olga Russakovsky,Jia Deng,Hao Su,et al. ImageNet Large Scale Visual Recognition Challenge[J]. INTERNATIONAL JOURNAL OF COMPUTER VISION,2015,115(3):211-252.
[7]郭蘭英,韓睿之,程鑫.基于可變形卷積神經網絡的數字儀表識別方法[J].計算機科學,2020,47(10):195-201.
[8]劉桂玉,劉佩林,錢久超.基于3D骨架和RGB圖片的時空動作識別[J].信息技術,2020,44(05):121-124+130.
[9]王功鵬,段萌,牛常勇.基于卷積神經網絡的隨機梯度下降算法[J].計算機工程與設計,2018,39(02):441-445+462.