白黒映像の自動カラー化システムの開発

遠藤 伶 河合 吉彦 望月 貴裕

自動カラー化技術は広く研究されており,高精度な白黒画像の自動カラー化技術がこれまでに複数報告されている。しかし,それらの手法の多くは静止画を対象とした技術であり,動画を含む映像を自動でカラー化するには,まだいくつかの課題がある。特に,テレビ番組で利用する場合など,史実考証に基づく適切な色合いで映像をカラー化することは難しい。そこで当所では,ユーザーの指示に基づく色合いで映像をカラー化することが可能な,白黒映像カラー化システムを開発した。従来手法との比較評価実験により,ユーザーの意図に近い色合いでのカラー化と,カラー化した映像におけるフレーム間の色ぶれの低減の2点において改善を確認したので報告する。

1.はじめに

古い時代の白黒フィルム映像は,過去にあった出来事を現在に伝えるための貴重な映像資料である。しかし,白黒映像を見た視聴者は,その映像を遠くの世界の出来事と捉えてしまいがちである。白黒映像のカラー化は,視聴者が過去の世界をより身近に感じ取れるようにするための有用な手段の1つであり,ドキュメンタリー等のテレビ番組制作でしばしば用いられてきた。しかし,これまでのカラー化作業は,白黒映像を1フレームずつ専門家が手作業で着色していたため,非常に多くの時間を必要とした。そのため,カラー化作業の時間を短縮するための,映像の自動カラー化技術が求められている。

自動カラー化技術はこれまでにも数多く研究されており,現在では,CNN(Convolutional Neural Network:畳み込みニューラルネットワーク)1)*1を使うことで非常に高精度に実現できることが分かっている2)3)。しかし,それらの技術の多くは静止画を対象としており,動画を含む映像をカラー化するためには2つの大きな課題があった。第1の課題は色誤りが発生すること,第2の課題はフレーム間の色ぶれが発生することである。第1の課題である色誤りは,洋服のような色のバリエーションが多い物体の場合に,着色すべき色をCNNが特定できないことが原因で発生する。カラー化した映像をテレビ番組で利用する場合,史実に基づく考証を行い,可能な限り正しいと思われる色で着色する必要がある。そのため,CNNが塗り間違えた場合に,それを簡単に修正できる仕組みが不可欠である。第2の課題である色ぶれは,カメラ移動などで画像の映り方が変化した場合に,自動カラー化技術で着色する色合いも変化してしまうことが原因で発生する。特に,古い白黒フィルムはノイズを多く含むため,頻繁に色ぶれが発生する。そのため,映像の正確な自動カラー化を実現するためには,フレーム間の色ぶれを抑える仕組みが必要である。

そこで当所では,フレーム間の色ぶれ発生を抑えつつ,ユーザーの意図どおりに塗り間違いを訂正することが可能な,白黒映像カラー化システムを開発した。このシステムは,色推定,色修正,色伝播という3種のCNNを併用する。色推定CNNは静止画を対象とした全自動のカラー化を行い,色修正CNNは塗り間違いの簡単な訂正手段をユーザーに提供する。また,色伝播CNNはフレーム間の色ぶれを抑制する。これら3種のCNNの併用により,テレビ番組制作などの,史実に基づく適切な着色が求められる状況において,映像カラー化作業の時間短縮が期待できる。

本稿では,開発した白黒映像カラー化システムの詳細と性能評価実験の結果について報告する。

2.従来技術

近年,CNNを用いた高精度なカラー化技術が複数報告されている。Iizukaらは,入力された白黒画像から,その画像の色情報を推定するカラー化CNNを提案した2)。しかし,この技術では,CNNが塗り間違いをした場合に,それを修正する仕組みはない。そのため,史実に基づく色修正が不可欠な,テレビ番組制作などでの利用には適さない。

一方,Zhangらは,カラー化のヒントとなる情報をユーザーが与えることで,ユーザーのイメージどおりにカラー化できる手法を提案した3)。この手法では,カラー化する対象の白黒画像の一部の領域にユーザーが色を指定すると,CNNはユーザーが着色した領域と同じ色合いで画像全体をカラー化する。そのため,ユーザーの意図に合う色合いでの自動カラー化を容易に実現できる。

しかし,どちらの手法も静止画を対象としたカラー化技術であり,映像に直接適用することはできない。もちろん,映像を構成するすべてのフレームを個別にカラー化することはできるが,その場合は,連続するフレーム間に色ぶれが発生することがある。Zhangらの手法では,全フレームに対して人間が大量のヒントを作成することで,色ぶれを抑制することが可能である。しかし,古い白黒フィルム映像の多くには,白飛びや黒つぶれといった,輝度差が非常に小さい領域が多くある。このような領域には物体の境目を見つけるための手がかりが乏しく,Zhangらの手法でユーザーが色を指定したとしても,CNNが色の境界を適切に決定できないことがある。

3.開発システム

当所で開発した白黒映像カラー化システムは,色推定,色修正,色伝播という3種のCNNを併用するシステムである。色推定CNNは,静止画を対象とした全自動のカラー化を行うもので,従来手法と同等の機能を持つCNNである。色修正CNNは,Zhangらの手法3)を改良したもので,着色する色に関するヒントだけでなく,色の境界に関するヒントも与えられるようになっている。そのため,CNNが色の境界を自動で決定するのが難しい,白飛びや黒つぶれを多く含む白黒フィルム映像であっても,適切な位置に色の境界を持つカラー化が可能である。色伝播CNNは,今回新規に開発したもので,白黒フレームをカラー化する際に,カラー化済みの近隣フレームの色を参照し,その色と同じ色合いでカラー化するCNNである。これらの3種のCNNの併用により,ユーザーが簡単に塗り間違いを訂正することを可能にしつつ,フレーム間の色ぶれの少ない映像カラー化を実現した。

3.1 システム構成

システム構成,および,カラー化処理の流れを1図に示す。はじめに色推定CNNが,白黒映像から切り出した各フレームを自動でカラー化し,中間出力画像群を作成することで,映像全体を全自動でカラー化する。この中間出力画像群は,色誤りや,フレーム間での色ぶれを含んでいることがある。

次に,人間が史実に基づく検証等を行い,カラー化結果に色誤りがないか確認する。誤りがあった場合は,色修正CNNを用いて色誤り訂正を行う。ここで,色誤り訂正は,誤りがある全フレームに対して行うのではなく,比較的誤りが少ない少数のフレームを選び,そのフレームに対してのみ行う。

続いて,色伝播CNNが,色誤り訂正を行ったフレームの色を参照し,その色と同じ色合いで,近隣の他のフレームを再度自動カラー化する。そして,人間がカラー化結果に色誤りがないかを再び確認し,誤りがあれば色修正CNNによる色訂正と色伝播CNNによる再カラー化を繰り返す。色誤りが無くなった時点で,カラー化作業は終了となる。

このシステムの特徴は,人間とCNNが,それぞれ得意な作業を分担して行うことにある。CNNが処理するのは,人間が行うと非常に時間がかかる,映像やフレーム全体を同じ色合いで着色する作業である。そして,人間が行う作業は,現在のCNNではまだ難しい,史実などの事実に基づいてカラー化の色合いを決定する作業である。この,人間とCNNの得意な部分を組み合わせる仕組みにより,カラー化映像の品質を維持しつつ,作業時間の短縮を実現している。

1図 システム構成

3.2 CNNの構造

3種のCNNの基本的なネットワーク構造として,複数の空間的解像度*2の特徴計算経路を持つMulti-Scale Residual Network(MSRN)4)を用いる。MSRNは画像生成を目的としたEncoder-Decoderモデルの一種である。Encoder部は,入力された画像に対し,空間的解像度を削減しながら畳み込み演算を行うことで,入力画像の特徴を表す画像特徴量を計算する。そしてDecoder部は,Encoder部が出力した画像特徴量に対し,空間的解像度を拡張しながら畳み込み演算を行うことで,新しい画像を生成する。MSRNは,空間的解像度を2分の1に削減して特徴を計算する経路,4分の1に削減して特徴を計算する経路,8分の1に削減して特徴を計算する経路といった複数の空間的解像度での特徴計算経路を並列的に用いることで,画像に映っているさまざまな大きさの物体の特徴を効率的に計算できるネットワークである。

(1)色推定/色修正CNN

色推定/色修正CNNの基本構造を2図に示す。色推定CNNと色修正CNNは構造とパラメーター(畳み込み演算の重み係数とバイアス項)を共有しており,入力されるデータだけが異なる。色推定/色修正CNNは,白黒フレームX∈R1×H×W,色指定ヒントUcolor∈R3×H×W,色境界ヒントUborder∈R1×H×Wを入力とし,色情報Y∈R2×H×Wと色確率分布D∈R313×H×Wを出力する。ここで,HWはそれぞれ入力画像の高さと幅(単位は画素)を表す。各入出力データの詳細を以下に示す。

  • 白黒フレームXは,一般的な8bitのグレースケール画像である。
  • 色指定ヒントUcolorは,色を訂正したいフレーム上の位置と,訂正後の色を表す行列であり,Zhangらの手法3)でも用いられている入力データである。第1次元の第1チャンネルはバイナリー行列であり,色を訂正したい位置の画素のみが1,それ以外は0となる。第2第3チャンネルには訂正後の色情報が格納される。色情報とは,Lab色空間*3におけるabの2チャンネルの値である。
  • 色境界ヒントUborderは,色の境界を配置したい位置を表す行列であり,色の境界が欲しい位置に1,それ以外は0を格納したバイナリー行列である。この色境界ヒントにより,白黒フレーム上で輝度差が乏しい領域の色も簡単に修正できる。
  • 色情報Yは,Lab色空間におけるabの2チャンネルに相当する情報である。入力する白黒画像Xと色情報Yを連結することで,3チャンネルのRGB画像を生成することができ,それが最終的に出力するカラー化フレームである。
  • 色確率分布Dは,文献3)と同様の方法で作成するもので,各画素がどの色情報を持つかを確率的に表した情報である。すべての色について確率を求めることは難しいため,ここでは実験で用いた画像に含まれる色を313クラス*4に分類し,そのクラスごとに確率を求めた。色確率分布Dは,このシステムを使ったカラー化作業では使用せず,学習時にのみ使用する情報である。色情報Y単独で学習するより,色確率分布Dと同時に学習する方が,より鮮やかなカラー化が可能となる。

この色推定/色修正CNNは,全要素に0を格納した色指定ヒントUcolorと色境界ヒントUborderを入力に用いることで,全自動カラー化を行う色推定CNNとして機能し,ユーザーの意図に従う色指定ヒントUcolorと色境界ヒントUborderを入力に用いることで,色訂正を行う色修正CNNとして機能する。

2図 色推定/色修正CNNの基本構造

(2)色伝播CNN

色伝播CNNの基本構造を3図に示す。色伝播CNNは,白黒フレームX∈R1×H×Wと参照用カラーフレームRi∈R3×H×Wi=1,…,N)を入力とし,色情報Y∈R2×H×Wを出力する。白黒フレームXと色情報Yは,色推定/色修正CNNと同様のデータである。参照用カラーフレームRiの詳細を以下に示す。

  • 参照用カラーフレームRiは,色情報Yを出力する際のヒントとしてCNNが用いるカラー化済みのフレームである。またNは参照用カラーフレームの枚数を表す。色伝播CNNの基本構造はMSRNと同様だが,Encoder部を2つ持ち,その2つのEncoder部が出力した特徴量を連結したものをDecoder部に入力する点で異なる。2つのEncoder部は,それぞれ白黒フレームX用と参照用カラーフレームRi用として用いる。また,参照用カラーフレームRiが複数ある場合は,それぞれの参照用カラーフレームRiをEncoder部に入力して得られた出力をElement-wise max操作*5により合算したものを参照用カラーフレームの特徴量として用いる。

この色伝播CNNにより,フレーム間の色ぶれを抑えることと,一部のフレームに行った色訂正の結果を映像全体に適用することが可能となる。

3図 色伝播CNNの基本構造

3.3 パラメーターの最適化

CNNパラメーターの最適化(CNNの学習)には,ILSVRC20125)とACT6)のデータセットを用いた。ILSVRC2012は静止画のデータセットであり,ACTは短い動画クリップで構成されたデータセットである。これらのデータセットから,学習に用いるデータを生成する方法を以下に示す。

  • 入力白黒フレームXは,データセットのカラー画像,もしくは映像から切り出したカラーフレームをLab色空間に投影し,Lチャンネルのみを抜き出すことで生成する。
  • 正解色情報Y^は,カラー画像もしくはカラーフレームをLab色空間に投影し,abチャンネルのみを抜き出すことで生成する。
  • 正解色確率分布D^は,正解色情報Y^が属するクラスの確率が1,それ以外のクラスの確率が0となる分布を持つものとして生成する。
  • 色指定ヒントUcolorは,正解色情報Y^からランダムなパッチ(切り取られた一部分)をサンプリングすることで自動生成する。サンプリング数は,p=1/8とした場合の幾何分布*6に従って決定する。各パッチのサイズは,1×1から9×9の間で一様分布に従う確率で決定する。各パッチの画像上の位置は,一様分布に従う確率で決定する。
  • 色境界ヒントUborderは,正解色情報Y^からランダムに生成する。Graph-based image segmentation7)*7を用いてカラー画像もしくはカラーフレームを領域分割し,検出した領域の境界を色の境界線として得る。そして,Ucolorと同様の方法でサンプリング数,パッチのサイズと位置を決定し,Uborderを生成する。
  • 参照用カラーフレームRは,入力白黒フレームXの生成に使ったカラーフレームが含まれる映像の中から,ランダムにフレームを選択して生成する。選択する参照用カラーフレームRiの枚数Nは,1枚から5枚の間で一様分布に従う確率で決定する。また,ILSVRC2012は映像ではなく静止画のデータセットであるため,上記の方法では参照用カラーフレームRiを生成できない。そのため,入力白黒フレームXの生成に使ったカラー画像を,拡大縮小パラメーターs∈[0.9, 1.1],回転パラメーターθ∈[-15, 15],平行移動パラメーターdx∈[-0.1, 0.1]×min(H, W)に従ってランダムに変形することで,疑似的に参照用カラーフレームRiを生成する。

最適化に用いる損失関数*8としては,CNNが出力した色情報Yについては正解色情報Y^との平均二乗誤差を,色確率分布Dについては正解色確率分布D^との交差エントロピー誤差*9を用いた。また,パラメーターの更新手段にはADADELTA8)*10を用いた。

4.性能評価

NHKが放送した過去のカラーフィルム番組からランダムに抽出した10シーン(合計約3,000フレーム)の映像を用いて色推定/色修正CNNと色伝播CNNの性能を評価した。色指定ヒントUcolorと色境界ヒントUborderは学習用データの生成と同様の手段で生成した。参照用カラーフレームRiも同様の手段で生成したが,Riの枚数Nは0もしくは5に固定して評価を行った。比較手法としては,Iizukaらの手法2),Zhangらの手法3)を用いた。

4.1 色推定/色修正CNN

各手法の色推定誤差の結果を1表に示す。色推定誤差は,推定した色情報Yと正解色情報Y^との平均二乗誤差である。これは,どれだけユーザーの意図に近い色合いでカラー化ができるかを表す指標であり,値が小さいほど好ましい。なお,Zhangらの手法で利用するヒント情報としては,開発した色修正CNNで用いるのと同じUcolorを用いた。色指定ヒントUcolorと色境界ヒントUborderを用いない場合,つまり完全自動カラー化技術としての精度は,開発したCNNの誤差が最も大きい。これは,色指定ヒントUcolorと色境界ヒントUborderの情報量が,白黒フレームXの情報量よりも大きいため,ヒント情報の解釈にCNNのリソースが多く消費され,白黒フレームXのみから色情報Yを推定する際に使えるリソースが減少するためと考える。一方,ヒント情報を用いる場合は,Zhangらの手法と比べ約10.5%改善した。これは,色境界ヒントUborderの利用が有効であることを示唆している。

1表 色推定誤差
ヒント情報なし ヒント情報あり
開発した色推定/色修正CNN 43.2 11.9
Iizukaらの手法2) 37.6
Zhangらの手法3) 32.7 13.3

4.2 色伝播CNN

各手法のフレーム間差分変動量を2表に示す。フレーム間差分変動量は,連続したフレーム間の色情報の差分についての,正解映像からの変動量である。フレーム間の色の差分が正解映像に比べて大きくなるほど,フレーム間差分変動量は大きくなる。つまり,これは色ぶれの強さを表す指標であり,値が小さいほど好ましい。N=0の場合(参照用カラーフレームRiを用いない場合)は,開発した色伝播CNNの誤差が最も大きい。これは,4.1節で述べたのと同様に,情報量が大きい参照用カラーフレームRiを解釈するのにCNNのリソースの多くが消費され,白黒フレームXのみから色情報Yを推定する際に使えるリソースが減少するためと考える。一方,N=5の場合(参照用カラーフレームRiを5枚用いる場合)は,Iizukaらの手法と比べて約50%改善した。これは,参照用カラーフレームRiの利用が有効であることを示唆している。

2表 フレーム間差分変動量
N=0 N=5
開発した色推定/色修正CNN 22.6 0.625
Iizukaらの手法2) 1.24
Zhangらの手法3) 1.93

5.むすび

本稿では,白黒映像のカラー化作業の時間短縮を目的として開発した,白黒映像の自動カラー化システムについて報告した。このシステムでは3種のCNNを組み合わせることで,簡単な操作での色誤り訂正機能の提供と,色ぶれの少ないカラー化映像の作成を実現した。

性能評価実験を実施し,ユーザーの意図どおりの色合いでカラー化できるかを表す色推定誤差に関しては従来手法より約10.5%改善し,フレーム間の色ぶれの強さを表すフレーム間差分変動量に関しては従来手法より約50%改善することを示した。

今後は,実際の番組制作での利用を通じて,カラー化作業の時間がどの程度短縮できるかについて調査を進める予定である。また,作業時間の更なる短縮を目指して,全自動カラー化精度を向上させるための手法改善にも取り組んでいく。

本稿は,映像情報メディア学会年次大会における以下の報告を元に加筆・修正したものである。

遠藤,河合,望月:“色合いの一貫性を考慮した白黒映像カラー化システム,” 映像情報メディア学会年次大会,22B-3 (2018)