こんにちは, 株式会社Ridge-iエンジニアの辻埜です. 本記事では, グレースケール画像のカラー化と低解像度画像の超解像化を同時に行う手法を提案した以下の論文をご紹介します.
はじめに
先日社内のslackで, 画像のカラー化の最新手法に関する話が話題に上りました. 画像のカラー化については私自身興味がありつつもプロジェクトで使用したことはなく情報も追いかけていなかったため, せっかくなのでこれを機に最新手法について調べてみました. 今回ご紹介する論文は, AAAI-2022で採択された新しい論文です. カラー化と超解像化を同時に実現するタスク ”Simultaneously Image Colorization and Super-resolution(SCS)”を新たに定義し, それを解決するモデルを提案しています. SCSのようなタスクは意外にもこれまで研究されておらず, 新しい分野を開拓したという点でとても面白いと感じたので, 今回こちらでご紹介させて頂くことにしました. この記事が画像のカラー化・超解像化の最新手法に興味がある方々にとって情報収集の一助となれば幸いです.
それではまずはじめに,画像のカラー化と超解像化という2つの技術についてご説明します.
カラー化
画像のカラー化は, 白黒の画像に対して色付けを行う技術です. 昔のモノクロ写真や色塗り前のアニメーション画像に対してカラー化の技術を適用することで, 人手による着色作業の時間と手間を大幅に節約することができます. カラー化の手法の中には, ヒントとして別画像から与えられた大まかな色情報を元に色付けする手法や, 完全自動で色付けをする手法などがあります. これらは論文内ではそれぞれreference mode, automatic modeと呼ばれており, 今回ご紹介する論文はどちらのmodeでも対応できる手法となっています. また, 近年では物体検出の技術と組み合わせることで画像の中のインスタンス(物体)ごとに着色をおこなって精度を向上させる手法[1]なども登場しています.
なお, Ridge-iにおいても過去の開発事例でこの技術が使われています.
超解像化
次に, 超解像化とは解像度の低い画像から情報を復元し, 高解像の画像に変換する技術です. 2014年に深層学習を用いた手法であるSRCNN[2]が提案されて以来, 深層学習を利用した超解像化の研究が盛んに進められています. 超解像化の技術は, 衛星画像や顕微鏡画像などにおいて活用されています.
従来の手法では, これらのカラー化・超解像化の技術は別個の技術として研究されてきました. そのため, 解像度の低い白黒画像を高解像度のカラー画像に変換するには, 画像のカラー化と超解像化を別々のプロセスとして実施する必要がありました. これらのオペレーションは効率が悪く, さらに一部の特徴量を両タスク間で共有すればより良い精度が出るのではないかという仮説を背景として, 今回の論文の手法が提案されました.
本論文で提案された手法では, 画像のカラー化と超解像化を1つの深層学習モデルで一気通貫で学習・推論を行います. それにより, 従来手法に比べて処理速度は約8倍から手法によっては約130倍速くなり, 精度においても既存手法と同等以上のスコアを記録しました. 加えて, 超解像における出力画像の倍率を任意の倍率に設定できる手法についても提案しています.
アプローチ
SCSNetは, 画像のカラー情報を復元するためのPVCAttn-Based colorization branch, 高解像度画像を生成するためのCPM-based super-resolution branchと呼ばれる2つのブランチで構成されています.
まず, 低解像度グレースケール画像を入力として受け取り, 256×(H/4)×(W/4)の特徴量マップを作成します. reference用画像についても同じ構造のネットワークを通して同サイズの特徴量マップを作成します. そして, それら2つの特徴量マップがPVCAttesntionモジュールへ渡されます.
PVCAttesntion
PVCAttentionモジュールの説明の前に, その土台となるVCAttentionモジュールについてご説明します. VCAttentionモジュールは, source画像の情報復元に有用な情報をreference画像から抽出することを目的としており, Self-Attention[3]に似た構造になっています.
source画像からの特徴量マップ($F_{s}$)をQuery, reference画像からの特徴量マップ($F_{r}$)をKey, Valueとして, QueryとKeyから2つの画像の相関行列を算出し, それをさらにValueと掛け合わせることで$F_{r→s}$を取得します. 取得した$F_{r→s}$と$F_s$をconcatし, 1×1conv, softmax関数を挟んで1チャンネルの0~1を値にもつ特徴量マップ($V1$, $V2$)を取得します. 最後に$F_{r→s}$, $F_s$, $V1$, $V2$を使ってVCAttentionモジュールの最終的な出力を生成します.
PVCAttentionモジュールは, 上記のVCAttentionモジュールをピラミッド上に構成し, 様々なスケールの特徴マップにVCAttentionモジュールを適用し, 最終的に情報を集約する構造となっています.
具体的には下記のような処理が行われることになります.
- 前段から渡された特徴量マップ($F_{s}$, $F_{r}$)を各種サイズ(1/1, 1/2, 1/4)へリサイズ
- それぞれpre-convolutionを適用したのちVCAttentionモジュールに渡す
- VCAttentionモジュールからの出力をそれぞれ元のサイズへリサイズ
- 全ての特徴量マップをconcatしてpost-convolutionを適用
VCAttentionモジュールにとどまらずPVCAttentionモジュールを構成することで, より質の良い表現を獲得することができるようになっています.
なお, 上記の処理はreference modeの際のフローであり, automatic modeにおいてはPVCAttnを通さずインプット画像から生成された特徴量マップをそのまま後続の処理に渡すことになります.
Continuous Pixel Mapping
Continuous Pixel Mappingは, 超解像の出力の倍率を調整する機能を果たします.
まず, CPMに渡すための特徴量マップを準備します. これは, 最初の特徴量マップ($F_{init}$)に対してBasic blocks(2つのconv層とskip connectionで構成)と名付けられた処理を何度か繰り返し, その最後の出力をskip connectionにより最初の特徴量マップと足し合わせます. これにより生成された特徴量マップをPVCAttn-Based colorization branchからの出力($F_{color}$)とconcatし, 3×3の畳み込みを行うことで256×H×Wの特徴量マップを生成します. これがCPMへと渡されることになります.
CPMではbilinear interpolationにより得られるmain feature($\bar{F}^{x,y}_{cs}$)と, 局所相対座標を利用して得られるlocal coordinate feature($Z^{x,y}_{rel}$)を結合することで, 新たな特徴量マップ上の値($F^{x,y}$)を算出します.
局所相対座標については以下の式で計算されます.
$$ Z^{x}_{rel} = mod(x, x_{uint}) / x_{uint} * 2 - 1 $$
$$ Z^{y}_{rel} = mod(y, y_{uint}) / x_{uint} * 2 - 1 $$
ここで, $x_{uint} = 1 / W_s$, $y_{uint} = 1 / H_s$ と定義されており, $mod()$は剰余演算を表しています. 最後に, 上記の処理で得られた特徴量マップを4つの線形層を含むmapping functionに通すことで最終的な出力が得られます.
精度検証
データセット
学習および検証のためのデータセットとしては, ImageNetから解像度が80K以上かつ色のバリエーションが豊富な画像を抽出して作成したデータセット”ImageNet-C”が使われています. また評価用データセットとして, 各種データセットからImageNet-Cと同様の基準でデータを選定したデータセットを使用しています.
評価指標
評価指標としては, 生成画像のピクセルレベルでの評価には画像の劣化度合いと類似性を表すPeak Signal-to-Noise Ratio (PSNR)とStructural Similarity (SSIM), 画像レベルの分布と彩度の評価にはFrechet Inception Distance (FID)[4]とImage ColorfulNess (CN)[5]を採用しています.
論文内では128×128の画像を入力し, 512×512の画像を復元した際の精度を検証しています. また, 従来の手法は画像のカラー化と超解像化を別々で行う手法に限られているため, それぞれSOTAの手法を組み合わせて提案手法の結果と比較しています.
実験結果
提案手法であるSCSNetは定性的, 定量的な観点のどちらにおいても従来手法と比べ同等以上の精度を記録しています.
まずは定性的な比較として, 上図の左側がautomaticモードによる結果, 右側がreferenceモードによる結果です. どちらも提案手法が従来手法と比較して同等以上のクオリティの画像を生成していることがわかります. また, 画像の左上の数字は推論処理速度(FPS)を表しており, 従来手法に比べ処理速度が数倍速くなっていることもわかります.
また, 定量的な指標についてもSCSNetは優れた結果を残しています.
上記は手法ごとの定量的スコアの比較です. 上記の結果から, 以下のことがわかります.
- データセットにより結果に違いはあるものの, 提案手法がCNにおいては最も高いスコアを記録している. したがって, 提案手法が色情報をより適切に捉え, 視覚的に美しいカラフルな画像を生成できていることがわかる.
- 提案手法は自動モード, 参照モードに関わらずほぼ全てのデータセットで最良のFIDスコアを記録している. したがって, 本手法により生成された画像が, より実画像に近い分布をしていることがわかる.
- パラメータ数も1/4~1/6になり, 実行速度も8~130倍になっている.
また, ピクセルレベルの評価(PSNR, SSIM)においても以下の通り提案手法が既存手法に比べて高いスコアを記録しており, より実画像に近い予測画像が生成できていることがわかります.
その他, 論文内では人間による画像評価の比較も行っており, その評価スコアにおいても提案手法が既存手法に比べより高い評価を得たと述べられています.
まとめ
本記事では, AAAI-2022で採択されたカラー化, 超解像化を同時に行うSCSNetをご紹介しました. 過去の画像を復元する際にはカラー化, 超解像化の両方が必要になるケースが多く, 両方の変換を一括で行うタスクは今後新たな研究分野として様々な手法が提案されていくことになるかもしれません. また, 著者は今後提案手法と一般的な物体検出・セグメンテーション手法を組み合わせてより高い精度を目指すと述べており, 今後の発展が楽しみです. 論文では提案手法をより詳細に解説しているので, ご興味のある方は是非ご一読ください.
さいごに
Ridge-iでは様々なポジションで積極採用中です. カジュアル面談も可能ですので, ご興味がある方は是非ご連絡ください.
参考文献
[1] Jheng-Wei Su, Hung-Kuo Chu, Jia-Bin Huang. Instance-aware Image Colorization, 2020
[2] Chao Dong, Chen Change Loy, Kaiming He, Xiaoou Tang. Image Super-Resolution Using Deep Convolutional Networks, 2014.
[3] Han Zhang, Ian Goodfellow, Dimitris Metaxas, Augustus Odena. Self-Attention Generative Adversarial Networks, 2018.
[4] Martin Heusel, Hubert Ramsauer, Thomas Unterthiner, Bernhard Nessler, Sepp Hochreiter. GANs Trained by a Two Time-Scale Update Rule Converge to a Local Nash Equilibrium, 2017.
[5] Emin Zerman, Aakanksha Rana, Aljosa Smolic. ColorNet - Estimating Colorfulness in Natural Images, 2019.
[6] Richard Zhang, Phillip Isola, Alexei A. Efros. Colorful Image Colorization, 2016.
[7] M. U. Müller, N. Ekhtiari, R. M. Almeida, C. Rieke. Super-resolution of multispectral satellite images using convolutional neural networks, 2020.