1.論文概要
論文題目:Let there be Color!: Joint End-to-end Learning of Global and Local Image Priors for Automatic Image Colorization with Simultaneous Classification
論文作者:Satoshi Iizuka, Edgar Simo-Serra, and Hiroshi Ishikawa
原文連接:http://hi.cs.waseda.ac.jp/~iizuka/projects/colorization/data/colorization_sig2016.pdf
2.論文內容
2.1摘要
??本文基于CNN提出了一種聯合局部特征和全局先驗信息的灰度圖自動著色技術。基于CNN,本文提出了一種綜合考慮全局先驗信息和局部特征信息的融合特征層來給圖片著色。整個框架以端到端的形式訓練,而且與一般CNN不同,該框架可以處理任意分辨率的圖片。此外,本文使用現有的大規模圖片分類數據集來訓練模型,將分類標簽加入其中,更有效地學習到更具判別性的全局先驗信息。與時下最優的算法相比,無論是用戶研究還是在一百多年以前的老照片上做的實驗,本文算法都取得了顯著的提升。
2.2引入
??對于傳統的上色算法來講,無論是用戶涂色或者圖片分割的形式,都需要進行用戶交互。但這篇論文里,作者提出了一種完全自動的基于數據驅動的灰度圖上色方法,即從整張圖片獲得全局先驗信息和從局部patch中獲得局部圖片特征聯合自動上色。全局先驗信息從整張圖片的角度提供信息,如圖片是室內拍的還是室外拍的,是白天拍的還是晚上拍的等等。局部信息則提供了紋理或者物體信息。綜合這兩種特征,無論是給什么圖片上色,都不需要用戶交互。
??本文訓練網絡時使用了圖片類別信息,不過這個步驟對于著色來講并不是必需的。本文使用的色彩空間為CIE Lab顏色空間,通過網絡模型來預測圖片的色彩信號a和b,最后結合灰度圖本身的L信息,進行最終著色。使用Lab顏色空間,不需要進行L通道的計算,這樣一來既節省計算資源,又能讓預測更準確。整個方法不需要預處理或者后處理。
??本算法網絡模型包含4個主要部分:低階特征網絡,中階特征網絡,全局特征網絡和著色網絡。首先,一組共享的低階特征通過低階特征網絡計算出來。通過使用這些低階特征,中階特征網絡和高階特征網絡分別進行特征提取,然后再通過融合層進行融合。融合后的特征作為著色網絡的輸入,最終輸出圖片的色彩信號。此外,網絡還有一個副產品就是預測圖片的類別信息。整個網絡可以處理任意分辨率的圖片。
??由于圖片的全局先驗信息和局部特征是分開計算的,這使得本方法可以將一張圖片的全局先驗信息和另一張圖片的局部特征進行融合,來改變一張圖片的風格。例如,如果我們將一張黃昏時候拍攝的照片的全局先驗特征和一個晴朗的沙灘風光的局部特征進行融合,我們就會得到一個晴朗的沙灘的黃昏時候的照片風光。除此之外,一張照片也可以被處理成它是在另外一個不同的季節拍攝的效果。這些反映了模型的靈活性。
??驗證算法時,作者請用戶來觀看照片,并判斷照片是不是自然拍攝的。本算法處理的照片有92.6%被用戶認為是“自然的”,而另外一些算法則大概只有70%的概率。對于一些20世紀初期拍攝的黑白照片,本算法也顯示了令人信服的效果。
??總之,本文貢獻有以下幾點:
??無需用戶交互;
??端到端的協同網絡;
??加入圖片標簽增強性能;
??圖片風格轉換技術;
??通過用戶研究和百年以上的老照片驗證算法。
2.3網絡結構
??本文網絡結構如圖所示,除了著色層的輸出層使用Sigmoid激活函數以外,其他層激活函數均使用ReLU激活函數。
2.3.1共享低階特征
??6層的CNN獲得圖片低階特征信息,卷積濾波器組是共享的,輸送特征至全局特征網絡和中階特征網絡。這一點和雙胞胎網絡相似,但是本模型里只有這一個子部分是共享的。本文沒有使用max-pooling來降低feature map的尺度,而是通過增加卷積步長來實現這個效果。不是每個像素連續計算卷積,而是每隔一個像素計算一次卷積。通過padding來使得輸出層尺寸是輸入層的一半。這樣可以替換掉max-pooling層,并且維持很好的性能。本文只使用了33的卷積核,使用11的padding來確保輸出尺寸是輸入尺寸的一半或者和輸入尺寸相等。
2.3.2全局特征
??最終的全局特征是一個256維的向量。由于全局特征網絡中全連接層的存在,全局特征網絡的低階特征網絡部分需要將輸入圖片的尺寸變換為224*224大小。不過這個不影響整個方法。
2.3.3中階特征
??中階特征緊接著低階特征層的輸出。由于低階特征到中階特征是全卷積的,所以輸入是h*w的圖片時,輸出是h/8 * w/8 * 256的特征。
2.3.4
??為了將全局特征的256維向量和和局部特征的h/8 * w/8 * 256進行融合,我們使用以下公式:
其中,
2.3.5著色層
??特征一旦融合完成,它們會繼續被卷積層和上采樣層處理。上采樣使用最近鄰插值法,輸出會變成輸入的2倍。當最終結果是輸入尺寸hw的一半時停止卷積和上采樣操作。這部分的卷積層激活函數為Sigmoid函數,這令最后的輸出為2個0到1之間的數,這2個數分別作為La*b顏色空間的a和b的值。而L即為灰度值,這是已知的。所以,最后將h/2 * w/2 *2的特征上采樣為h * w * 2后與初始灰度圖h * w * 1合并,即為彩色圖像。整個網絡使用MSE(Mean Square Error)準則進行訓練,通過BP算法更新網絡權值。
2.3.6考慮類別進行著色
??只用彩色圖片訓練效果尚可,但是會出現明顯的錯誤,因為模型難以學習到正確的上下文,比如照片是室內還是室外等。由于網絡結構處理不了上下文問題,作者使用圖片的類別信息來協同訓練模型。類別標簽可以用來指導圖片的全局特征模型的訓練。本文引入了一個包含2個全連接層的小型網絡來實現這個功能。包含256個節點的隱含層,和相應數量的類別輸出層,本文為205類。這個小型網絡的輸入是全局特征網絡的倒數第二層輸出。同樣的,使用MSE損失函數來訓練模型:
3實驗效果
3.1照片著色效果
3.2與最優算法的對比實驗
3.3有全局信息(α≠0)和沒全局信息時的對比(α=0),可以看出全局信息很關鍵
3.4風格轉換實驗
3.5對一百年前的老照片的處理
3.6不同顏色空間做出來的最后效果
3.7作者給出了典型的錯誤
3.8自己試驗
??作者在個人主頁給出了在線demo,大家可以去試一下:http://hi.cs.waseda.ac.jp:8082/
??我試了一些老照片,感覺有風景的都著色的比較好,純人物的話效果不是很好。個人猜想,可能是樹、草、云之類的東西紋理比較單一,容易被識別出來,建筑、室內裝飾之類的變化比較大,相對而言訓練數據不夠豐富。下面是一些測試結果: