【文献】
石川 博,”人工知能で白黒写真をカラーに”,画像ラボ,日本,日本工業出版株式会社,2017年10月10日,Vol.28, No.10,pp.14-21
【文献】
品川 淳、長尾 智晴,”エッジ画像を用いた領域成長法によるモノクロ画像のカラー化”,電子情報通信学会2013年総合大会講演論文集 情報・システム2,日本,一般社団法人電子情報通信学会,2013年03月05日,p.35
【文献】
N. Anagnostopoulos et al.,"Two-Staged Image Colorization Based on Salient Contours",2014 IEEE International Conference on Imaging Systems and Techniques (IST) Proceedings,米国,IEEE,2014年10月14日,pp.1-5,https://ieeexplore.ieee.org/document/6958509
【文献】
L. Vincent et al.,"Watersheds in Digital Spaces: An Efficient Algorithm Based on Immersion Simulations",IEEE Transactions on Pattern Analysis and Machine Intelligence,米国,IEEE,1991年06月30日,Vol.13, No.6,pp.583-598
(58)【調査した分野】(Int.Cl.,DB名)
前記情報分離手段は、前記カラー画像のモノクロ情報を色空間の明度成分として分離し、前記カラー画像のカラー情報を前記色空間の第1色成分および第2色成分として分離するものであって、
前記境界学習データ生成手段は、
前記第1色成分および前記第2色成分のそれぞれで色の境界を検出する境界手段と、
前記第1色成分および前記第2色成分の少なくとも一方で境界として検出された画素位置からランダムに選択した画素位置に、境界であることを示す情報を設定することで前記境界情報を生成するランダム境界選択手段と、
を備えることを特徴とする請求項1に記載のカラー情報推定モデル生成装置。
前記情報分離手段で分離したカラー情報において、画素ごとに色指定の指示の有無を示す情報をランダムに設定した指示情報を前記カラー情報に付加し、前記色指定の指示がない前記指示情報の画素に対応する前記カラー情報の画素に、予め定めた固定値を設定した色指定情報を生成する色指定学習データ生成手段を、さらに備え、
前記モデル学習手段は、前記モノクロ情報と前記境界情報と前記色指定情報とを入力し、前記ニューラルネットワークを学習することを特徴とする請求項1または請求項2に記載のカラー情報推定モデル生成装置。
請求項1または請求項2に記載のカラー情報推定モデル生成装置で生成されたカラー情報推定モデルを用いて、モノクロ画像からカラー情報を推定し、カラー画像を生成する画像カラー化装置であって、
前記モノクロ画像における境界の位置を境界指示として入力する境界指示手段と、
前記モノクロ画像の画素位置に対応して、前記境界指示で指示された画素位置に境界であることを示す情報を設定した境界情報を生成する境界情報生成手段と、
前記カラー情報推定モデルを用いて、モノクロ情報である前記モノクロ画像と前記境界情報とからカラー情報を推定するカラー情報推定手段と、
前記カラー情報推定手段で推定されたカラー情報と前記モノクロ画像とを合成することで、前記カラー画像を生成するカラー画像合成手段と、
を備えることを特徴とする画像カラー化装置。
請求項3に記載のカラー情報推定モデル生成装置で生成されたカラー情報推定モデルを用いて、モノクロ画像からカラー情報を推定し、カラー画像を生成する画像カラー化装置であって、
前記モノクロ画像における境界の位置を境界指示として入力する境界指示手段と、
前記モノクロ画像の画素位置に対応して、前記境界指示で指示された画素位置に境界であることを示す情報を設定した境界情報を生成する境界情報生成手段と、
前記モノクロ画像における色指定を行う位置および色を色指定指示として入力する色指定指示入力手段と、
前記モノクロ画像の画素位置に対応して、前記色指定指示の有無を示す指示情報と、色指定された色をカラー情報とを設定した色指定情報を生成する色指定情報生成手段と、
前記カラー情報推定モデルを用いて、モノクロ情報である前記モノクロ画像と前記境界情報と前記色指定情報とからカラー情報を推定するカラー情報推定手段と、
前記カラー情報推定手段で推定されたカラー情報と前記モノクロ画像とを合成することで、前記カラー画像を生成するカラー画像合成手段と、
を備えることを特徴とする画像カラー化装置。
【発明を実施するための形態】
【0019】
以下、本発明の実施形態について図面を参照して説明する。
<本発明の概要>
まず、
図1を参照して、本発明の概要について説明する。
図1は、本発明の概要を説明するための概要図である。
図1に示すように、本発明に係るカラー情報推定モデル生成装置1は、カラー情報推定モデルMを生成するものである。また、本発明に係る画像カラー化装置2は、カラー情報推定モデル生成装置1が生成したカラー情報推定モデルMを用いて、モノクロ画像Pmのカラー情報を推定し、カラー画像Pcを生成するものである。
【0020】
カラー情報推定モデルMは、モノクロ画像Pmと、ユーザからの指示である色指定指示Icおよび境界指示Ibを示す情報とを入力し、モノクロ画像Pmのカラー情報を出力するニューラルネットワークである。
【0021】
モノクロ画像Pmは、白黒写真、フィルム等からスキャンした明度成分の情報を持つデジタル画像である。
色指定指示Icは、画像上のある位置における色の指定を行う指示である。例えば、色指定指示Icは、モノクロ画像Pmに対して、ある物体の正解の色が予め分かっている場合、その物体の位置とその色を指定するものである。
境界指示Ibは、色の境を示す位置の指定を行う指示である。例えば、境界指示Ibは、人物と背景との境界、重なりあった物体の境界等を指定するものである。
このカラー情報推定モデルMは、色指定指示Icで指定された位置を含んだ領域に対して指定された色を付けるように学習し、さらに、境界指示Ibで指定された境界で色を分けるように学習したものである。
【0022】
画像カラー化装置2は、カラー情報推定モデルMによって、色指定指示Icで指示された位置を含んだ領域に対して、指定された色で着色するようにカラー情報を推定する。カラー情報は、カラー画像から色空間の明度成分を除いた色成分(第1色成分、第2色成分)の情報である。
また、画像カラー化装置2は、カラー情報推定モデルMによって、境界指示Ibで指示された境界で、色が区分されるようにカラー情報を推定する。
これによって、本発明は、モノクロ画像Pmに対するカラー情報を推定することで、より正確な色のカラー画像Pcを生成することができる。
以下、本発明に係るカラー情報推定モデル生成装置1および画像カラー化装置2について、より詳細に説明する。
【0023】
<カラー情報推定モデル生成装置:構成>
まず、
図2を参照して、カラー情報推定モデル生成装置1の構成について説明する。
図2は、カラー情報推定モデル生成装置1の構成を示すブロック図である。
図2に示すように、カラー情報推定モデル生成装置1は、情報分離手段10と、色指定学習データ生成手段11と、境界学習データ生成手段12と、モデル学習手段13と、モデル記憶手段14と、を備える。
【0024】
カラー情報推定モデル生成装置1は、複数のカラー画像Poから、カラー情報推定モデルMを生成するものである。
カラー画像Poは、カラー情報推定モデルMを学習するための学習用データであって、予め大量(例えば、200万枚以上)に準備したカラー画像である。
このカラー画像Poは、カラー化の対象となるモノクロ画像Pm(
図1参照)と同じ画像サイズ(垂直H画素×水平W画素)で、予め定めた色空間で表された画像である。ここでは、カラー画像Poは、Lab色空間で表された画像であるとする。
【0025】
情報分離手段10は、入力したカラー画像Poを、モノクロ情報とカラー情報とに分離するものである。
具体的には、情報分離手段10は、Lab色空間の3チャンネルで構成されたカラー画像Poを、モノクロ情報であるLチャンネル(明度成分)と、カラー情報(明度成分以外の色成分)であるa,bチャンネル(第1色成分,第2色成分)とに分離する。
情報分離手段10は、分離したモノクロ情報(Lチャンネル)を、モデル学習手段13に出力する。
また、情報分離手段10は、分離したカラー情報(a,bチャンネル)を、色指定学習データ生成手段11、境界学習データ生成手段12およびモデル学習手段13に出力する。
【0026】
色指定学習データ生成手段11は、ユーザがモノクロ画像上の位置とその位置に対応する色とを指示する色指定指示Ic(
図1参照)の学習データ(色指定学習データ)を生成するものである。色指定学習データ生成手段11は、指示情報付加手段110と、ランダム色指定設定手段111と、を備える。
【0027】
指示情報付加手段110は、カラー情報(a,bチャンネル)のデータの各要素(画素)に対して、色指定の指示の有無を示す情報(指示情報)を付加するものである。
図3に示すように、カラー推定を行う画像のサイズをH(垂直画素数)×W(水平画素数)の大きさとしたとき、指示情報付加手段110は、カラー情報のチャンネルCh1,Ch2に、新たなチャンネルCh3を付加して、H×W×3の3チャンネルのデータ構造を持つ色指定情報DIcを生成する。
【0028】
チャンネルCh1およびチャンネルCh2は、情報分離手段10で分離されたカラー情報(Lab色空間のa,bチャンネル)である。チャンネルCh1はaの値、チャンネルCh2はbの値で構成される。
チャンネルCh3は、画素に対する色指定の指示の有無を示す情報(指示情報)である。例えば、チャンネルCh3の各要素には、対応する要素の位置(画素位置)に色指定の指示がある場合に“1”、色指定の指示がない場合に“0”が設定される。ここでは、指示情報付加手段110は、初期値として、チャンネルCh3(指示情報)のすべての要素に色指定の指示あり(例えば“1”)を設定する。
【0029】
このように初期化された色指定情報DIcは、すべての画素位置に対して色指定を指示した色指定学習データ(完全色指定学習データ)となる。
指示情報付加手段110は、カラー情報(Ch1,Ch2)に指示情報(Ch3)を付加したデータ(色指定情報)を、ランダム色指定設定手段111に出力する。
【0030】
ランダム色指定設定手段111は、指示情報付加手段110で生成された色指定情報において、ランダムに選択した画素位置に色指定を指示する情報を設定するものである。
具体的には、ランダム色指定設定手段111は、“0”から全画素数(垂直H画素×水平W画素)までの範囲でランダムに選択した値を、色指定を指示する画素数(色指定画素数)とする。なお、ランダム色指定設定手段111は、色指定画素数を、例えば、予め定めた確率の幾何分布に従う数として算出すればよい。
そして、ランダム色指定設定手段111は、画像上(H×W)で色指定画素数分の画素位置(色指定画素位置)をランダムに選択する。なお、ランダム色指定設定手段111は、色指定画素位置を、予め定めた平均、分散の二次元正規分布、あるいは、一様分布に従うものとして算出すればよい。
【0031】
ここでは、初期値として、指示情報(Ch3;
図3)のすべての要素(画素)に色指定の指示あり(例えば“1”)を設定しているため、ランダム色指定設定手段111は、色指定画素位置以外の画素位置に対応する指示情報(Ch3)の要素位置に“0”を設定する。また、ランダム色指定設定手段111は、色指定指示情報(Ch3)に“0”が設定された要素位置に対応するカラー情報(a,bチャンネル〔Ch1,Ch2〕)の画素位置のaの値およびbの値を予め定めた固定値(“0”)に設定する。
【0032】
例えば、
図4に示すように、ランダム色指定設定手段111は、チャンネルCh3の二次元データ上の(x,y)座標である座標(3,1),(1,3),(3,3),(2,4)をランダムに選択した色指定画素位置とし、他の座標に“0”を設定したとする。その場合、ランダム色指定設定手段111は、チャンネルCh3で“0”を設定した要素位置に対応するチャンネルCh1,Ch2の要素の値に“0”を設定する。
これによって、色指定学習データ生成手段11は、指示情報(Ch3)のランダムに設定された要素位置に“1”が設定されている画素だけに、有効なカラー情報(a,bチャンネル〔Ch1,Ch2〕)の値を持つ色指定学習データを生成することができる。
色指定学習データ生成手段11は、生成した色指定学習データをモデル学習手段13に出力する。
【0033】
境界学習データ生成手段12は、ユーザがモノクロ画像上の色の境を指示する境界指示Ib(
図1参照)の学習データ(境界学習データ)を生成するものである。境界学習データ生成手段12は、境界検出手段120と、ランダム境界選択手段121と、を備える。
【0034】
境界検出手段120は、カラー情報(a,bチャンネル)から、画素ごとに当該画素が色の境界となる画素であるか否かを検出するものである。
境界検出手段120は、画像サイズをH(垂直画素数)×W(水平画素数)の大きさとしたとき、H×W×1の1チャンネル分の境界情報を生成する。この境界情報は、要素(画素)ごとに、境界として検出されたか否かを示す値(例えば、境界であれば“1”、境界でなければ“0”)で構成される。
【0035】
境界検出手段120は、aチャンネルおよびbチャンネルのそれぞれで色が大きく変化する境界の検出を行い、少なくとも一方のチャンネルで境界として検出された画素位置の要素に“1”、両方のチャンネルで境界として検出されなかった画素位置の要素に“0”を設定することで境界情報を生成する。
なお、境界検出手段120における境界の検出は、一般的なエッジ検出アルゴリズム(例えば、Cannyアルゴリズム)を用いて、周辺画素との値の差が予め定めた閾値よりも大きい画素を境界の画素として検出すればよい。
境界検出手段120は、境界の画素位置を示す境界情報をランダム境界選択手段121に出力する。
【0036】
ランダム境界選択手段121は、境界検出手段120で生成された境界情報において、境界として設定された要素をランダムに選択するものである。
具体的には、ランダム境界選択手段121は、“0”から境界として設定された画素数(境界画素数)までの範囲でランダムに選択した値を、境界として指示する画素数(境界指示画素数)とする。なお、ランダム境界選択手段121は、境界指示画素数を、例えば、予め定めた確率の幾何分布に従う数として算出すればよい。
そして、ランダム境界選択手段121は、境界情報において、境界として設定された画素から、ランダムに境界指示画素数分の画素を選択する。ランダム境界選択手段121は、選択した境界指示画素以外の画素位置に“0”を設定する。
【0037】
例えば、
図5(a)に示すように、境界検出後に境界の画素位置に“1”が設定されている場合、ランダム境界選択手段121は、
図5(b)に示すように、“1”が設定されて画素から、ランダムに選択した画素位置の“1”のみを残して他の画素位置に“0”を設定する。なお、
図5中、点線はカラー画像上の境界を示す。
これによって、境界学習データ生成手段12は、カラー情報から検出した境界の一部の画素位置で境界を指示する境界学習データを生成することができる。
境界学習データ生成手段12は、生成した境界学習データをモデル学習手段13に出力する。
【0038】
モデル学習手段13は、カラー情報を推定するカラー情報推定モデルを学習するものである。このモデル学習手段13は、情報分離手段10で分離された1チャンネルのモノクロ情報(Lチャンネル)と、色指定学習データ生成手段11で生成された3チャンネルの色指定学習データと、境界学習データ生成手段12で生成された1チャンネルの境界学習データとを学習データとして入力する。
そして、モデル学習手段13は、情報分離手段10で分離された2チャンネルのカラー情報(a,bチャンネル)を正解データとして、カラー情報推定モデルMの出力との誤差をなくす方向(誤差が予め定めた値以下になるよう)に、誤差逆伝播法を用いてカラー情報推定モデルM(具体的にはそのモデルパラメータ)を学習する。
モデル学習手段13は、学習したカラー情報推定モデルMをモデル記憶手段14に書き込み記憶する。
【0039】
ここで、
図6を参照して、モデル学習手段13が学習するカラー情報推定モデルMの構成例について説明する。
図6に示すように、カラー情報推定モデルMは、畳み込み層を含んだニューラルネットワークで構成することができる。
【0040】
図6に示すように、カラー情報推定モデルMは、入力層Iとして、1チャンネル(1ch)のモノクロ画像と、3チャンネルの色指定情報と、1チャンネルの境界情報と、を入力する。
【0041】
また、カラー情報推定モデルMは、隠れ層(中間層)Hとして、複数のコンボリューション層(C1〜C6)を有する。
カラー情報推定モデルMは、コンボリューション層C1において、複数のカーネル(畳み込みフィルタ)により、モノクロ画像(1ch)を、モノクロ画像と同じ画像サイズ(垂直H画素×水平W画素)で、予め定めたチャンネル数N(例えば、N=64)のデータに畳み込む。
【0042】
また、カラー情報推定モデルMは、コンボリューション層C2において、複数のカーネルにより、色指定情報(3ch)を、H×W画素のチャンネル数Nのデータに畳み込む。また、カラー情報推定モデルMは、コンボリューション層C3において、複数のカーネルにより、境界情報(1ch)を、H×W画素のチャンネル数Nのデータに畳み込む。
そして、カラー情報推定モデルMは、加算器Sにより、Nchに畳み込まれた情報(モノクロ画像、色指定情報、境界情報)を加算する。なお、加算器Sを用いずに、3×Nチャンネルの連結した情報としてもよい。
【0043】
そして、カラー情報推定モデルMは、コンボリューション層C4,C5により、順次、複数のカーネルにより、畳み込みを行う。
最後に、カラー情報推定モデルMは、コンボリューション層C6により、Nchの情報を2chの情報に畳み込む。
カラー情報推定モデルMは、出力層Oとして、2チャンネルの情報をカラー情報であるa,bチャンネルとして出力する。
モデル学習手段13は、各コンボリューション層のカーネル、重み等をモデルパラメータとして学習する。
【0044】
なお、カラー情報推定モデルMのニューラルネットワークの構造は、この実施形態に限定されるものではない。例えば、コンボリューション層の数とパラメータ数(カーネルサイズ、チャンネル数)を変更してもよいし、コンボリューション層以外の層(例えば、全結合層、ノーマライゼーション層)を追加してもよい。
【0045】
図2に戻って、カラー情報推定モデル生成装置1の構成について説明を続ける。
モデル記憶手段14は、モデル学習手段13で学習するカラー情報推定モデルMを記憶するものである。このモデル記憶手段14は、半導体メモリ等の一般的な記憶媒体で構成することができる。学習後のカラー情報推定モデルMは、画像カラー化装置2(
図1参照)で用いられる。
なお、カラー情報推定モデル生成装置1は、コンピュータを、前記した各手段として機能させるためのカラー情報推定モデル生成プログラムで動作させることができる。
【0046】
以上説明したようにカラー情報推定モデル生成装置1を構成することで、カラー情報推定モデル生成装置1は、モノクロ画像、色指定情報、境界情報を入力として、カラー情報を推定するカラー情報推定モデルMを学習により生成することができる。
また、カラー情報推定モデル生成装置1は、カラー情報推定モデルMを生成する際に、モノクロ画像、色指定情報、境界情報を学習データとして準備することなく、カラー画像Poから学習データを生成することができる。
【0047】
<カラー情報推定モデル生成装置:動作>
次に、
図7を参照(構成については、適宜
図2参照)して、カラー情報推定モデル生成装置1の動作について説明する。
図7は、カラー情報推定モデル生成装置1の動作を示すフローチャートである。
ステップS1において、情報分離手段10は、入力したカラー画像を、カラー情報であるa,bチャンネル(2チャンネル)と、モノクロ情報であるLチャンネル(1チャンネル)とに分離する。なお、カラー画像から分離したモノクロ情報は、モノクロ画像であって、そのまま、カラー情報推定モデルMを学習するための学習データ(モノクロ画像学習データ)となる。
【0048】
ステップS2において、色指定学習データ生成手段11の指示情報付加手段110は、全要素(全画素)に色指定の指示あり(例えば“1”)の指示情報を設定した1チャンネルのデータを生成し、ステップS1で分離したカラー情報(a,bチャンネル)に付加する。これによって、指示情報付加手段110は、3チャンネルの色指定情報を生成する。
【0049】
ステップS3において、色指定学習データ生成手段11のランダム色指定設定手段111は、ステップS2で生成した3チャンネルの色指定情報でランダムに選択した要素(画素)に“0”を設定する。これによって、色指定学習データ生成手段11は、1チャンネルの指示情報において“1”が設定されている要素位置に対応するカラー情報(a,bチャンネル)の画素だけに、有効なa,bの値を持つ色指定学習データを生成する。
【0050】
ステップS4において、境界学習データ生成手段12の境界検出手段120は、ステップS1で分離したカラー情報であるaチャンネルまたはbチャンネルの少なくとも一方で色が大きく変化する色の境界を検出する。
ステップS5において、境界検出手段120は、境界として検出された画素位置の要素に“1”、境界として検出されなかった画素位置の要素に“0”を設定した1チャンネルのデータ(境界情報)を生成する。
【0051】
ステップS6において、境界学習データ生成手段12のランダム境界選択手段121は、ステップS5で生成した境界情報として“1”が設定されている要素のうちで、ランダムに選択した要素に“0”を設定する。これによって、境界学習データ生成手段12は、カラー情報から検出した境界の一部の画素位置で境界を指示する境界学習データを生成する。
【0052】
ステップS7において、モデル学習手段13は、ステップS1で分離したモノクロ画像学習データと、ステップS3で生成した色指定学習データと、ステップS6で生成した境界学習データとを入力し、正解データであるステップS1で分離したカラー情報(a,bチャンネル)を出力するように、カラー情報推定モデルMを学習する。
ステップS8において、モデル学習手段13は、予め定めたカラー画像の入力が終了した、あるいは、学習による推定誤差の変化量が閾値以下となったかにより、学習の終了を判定する。
【0053】
ここで、学習が終了していなければ(ステップS8でNo)、カラー情報推定モデル生成装置1は、ステップS1に戻って、他のカラー画像を入力し、学習を継続する。
一方、学習が終了した場合(ステップS8でYes)、ステップS9において、モデル学習手段13は、学習したカラー情報推定モデルMをモデル記憶手段14に書き込み記憶する。
以上の動作によって、カラー情報推定モデル生成装置1は、カラー画像のみから、モノクロ画像、色指定情報、境界情報を入力として、カラー情報を推定するカラー情報推定モデルを学習により生成することができる。
【0054】
<画像カラー化装置:構成>
次に、
図8を参照して、画像カラー化装置2の構成について説明する。
図8は、画像カラー化装置2の構成を示すブロック図である。
図8に示すように、画像カラー化装置2は、画像入力手段20と、色指定指示手段21と、色指定情報生成手段22と、境界指示手段23と、境界情報生成手段24と、モデル記憶手段25と、カラー情報推定手段26と、カラー情報合成手段27と、を備える。
【0055】
画像入力手段20は、カラー化を行う対象のモノクロ画像Pmを入力するものである。画像入力手段20は、入力したモノクロ画像PmをLab空間のLチャンネル(1チャンネル)のモノクロ情報(モノクロ画像)として、カラー情報推定手段26およびカラー情報合成手段27に出力する。
【0056】
色指定指示手段21は、モノクロ画像Pm上で、ユーザが色指定を行いたい位置および色を色指定指示Icとして入力するものである。この色指定指示手段21は、図示を省略した表示装置にモノクロ画像Pmを表示して、マウス、キーボード等の入力手段を介して、色指定指示を入力するものであってもよい。
【0057】
色指定指示Icの位置は、モノクロ画像Pm上の画素位置である。この画素位置は、複数であっても構わない。
色指定指示Icの色は、色指定指示Icの位置に対応する色であって、Lab空間のa,bチャンネルの値(ab値)である。なお、色指定指示Icの色は、a,bチャンネルの値である必要はなく、例えば、RGB値等、他の色空間の色であっても構わない。その場合、色指定指示手段21は、色空間変換を行い、Lab空間のa,bチャンネルの値を求めればよい。
色指定指示手段21は、指示された位置および色(ab値)を、色指定情報生成手段22に出力する。
【0058】
なお、色指定指示手段21は、すべての位置に対して色指定を行わないことを示す指示を入力してもよい。その場合、色指定指示手段21は、色指定を行わないことを示す指示を色指定情報生成手段22に出力する。
【0059】
色指定情報生成手段22は、色指定指示Icから、カラー情報推定モデルMの入力となる色指定情報を生成するものである。
色指定情報生成手段22は、モノクロ画像Pmの画像のサイズをH(垂直画素数)×W(水平画素数)の大きさとしたとき、H×W×3の3チャンネルのデータ構造を持つ色指定情報を生成する。この色指定情報は、
図3で説明したデータ構造と同じである。
【0060】
色指定情報生成手段22は、
図3に示したデータ構造において、チャンネルCh1の指示された位置の要素に指示されたa値を設定し、チャンネルCh1の他の要素に予め定めた固定値(“0”)を設定する。
また、色指定情報生成手段22は、チャンネルCh2の指示された位置の要素に指示されたb値を設定し、チャンネルCh2の他の要素に予め定めた固定値(“0”)を設定する。
【0061】
また、色指定情報生成手段22は、チャンネルCh3の指示された位置の要素に、色指定の指示があることを示す値(“1”)を設定し、チャンネルCh3の他の要素に、色指定の指示がないことを示す値(“0”)を設定する。
なお、色指定情報生成手段22は、色指定指示手段21から、すべての位置に対して色指定を行わないことを示す指示を入力した場合、3チャンネルのすべての要素に“0”を設定すればよい。
色指定情報生成手段22は、生成した3チャンネルの色指定情報を、カラー情報推定手段26に出力する。
【0062】
境界指示手段23は、モノクロ画像Pm上で、ユーザが境界として指定を行いたい位置を境界指示Ibとして入力するものである。この境界指示手段23は、図示を省略した表示装置にモノクロ画像Pmを表示して、マウス等の入力手段を介して、境界指示を入力するものであってもよい。
【0063】
境界指示Ibは、モノクロ画像Pm上の境界を示す画素位置である。この画素位置は、1点であってもよいし、複数であってもよい。例えば、指示された位置が2点であれば、それらの点を結ぶ直線が境界となる。また、指示された位置が3点以上であれば、それらの点を結ぶ曲線が境界となる。また、境界指示Ibは、これらの組み合わせであっても構わない。
境界指示手段23は、指示された位置を、境界情報生成手段24に出力する。
なお、境界指示手段23は、境界指定を行わないことを示す指示を入力してもよい。その場合、境界指示手段23は、境界指定を行わないことを示す指示を境界情報生成手段24に出力する。
【0064】
境界情報生成手段24は、境界指示Ibから、カラー情報推定モデルMの入力となる境界情報を生成するものである。
境界情報生成手段24は、モノクロ画像Pmの画像のサイズをH(垂直画素数)×W(水平画素数)の大きさとしたとき、H×W×1の1チャンネルのデータ構造を持つ境界情報を生成する。
境界情報生成手段24は、境界指示Ibで特定される画素位置に対応する要素に、当該画素位置が境界であることを示す値(“1”)を設定し、他の要素に境界ではないことを示す値(“0”)を設定する。
【0065】
なお、境界指示Ibで2点が指示された場合、境界情報生成手段24は、指示された2点間を結ぶ直線上の要素に、境界であることを示す値(“1”)を設定する。また、境界指示Ibで3点以上が指示された場合、境界情報生成手段24は、指示された3点以上を結ぶ曲線を、例えば、スプライン曲線で近似し、曲線上の要素に、境界であることを示す値(“1”)を設定する。
なお、境界情報生成手段24は、境界指示手段23から、境界指定を行わないことを示す指示を入力した場合、1チャンネルの境界情報のすべての要素に“0”を設定すればよい。
境界情報生成手段24は、生成した1チャンネルの境界情報を、カラー情報推定手段26に出力する。
【0066】
モデル記憶手段25は、
図2で説明したカラー情報推定モデル生成装置1で生成されたカラー情報推定モデルMを記憶するものである。このモデル記憶手段25は、半導体メモリ等の一般的な記憶媒体で構成することができる。
カラー情報推定モデルMは、カラー情報推定手段26によって参照される。
【0067】
カラー情報推定手段26は、モノクロ画像、色指定情報および境界情報を入力し、カラー情報推定モデルMを用いて、カラー情報(a,bチャンネル)を推定するものである。
カラー情報推定手段26は、画像入力手段20から、1チャンネルのモノクロ画像を入力する。また、カラー情報推定手段26は、色指定情報生成手段22から、3チャンネルの色指定情報を入力する。また、カラー情報推定手段26は、境界情報生成手段24から、1チャンネルの境界情報を入力する。
【0068】
このカラー情報推定手段26は、
図6に示したカラー情報推定モデルMにより、モノクロ画像、色指定情報および境界情報を入力層Iへの入力とし、出力層Oから出力される2チャンネルのカラー情報(a,bチャンネル)を演算により生成する。
カラー情報推定手段26は、推定したカラー情報(a,bチャンネル)を、カラー情報合成手段27に出力する。
【0069】
カラー情報合成手段27は、画像入力手段20から入力したモノクロ画像をLab色空間のLチャンネルとし、カラー情報推定手段26が推定したカラー情報(a,bチャンネル)を合成するものである。
カラー情報合成手段27は、Lチャンネル、aチャンネルおよびbチャンネルの3チャンネルのデータを、3チャンネルのデータ構造を有するLab色空間のカラー画像Pcとして出力する。
なお、画像カラー化装置2は、コンピュータを、前記した各手段として機能させるための画像カラー化プログラムで動作させることができる。
【0070】
以上説明したように画像カラー化装置2を構成することで、画像カラー化装置2は、モノクロ画像に対して、ユーザから色指定および境界を指示されることで、カラー情報を推定し、カラー画像を生成することができる。
【0071】
<画像カラー化装置:動作>
次に、
図9を参照(構成については、適宜
図8参照)して、画像カラー化装置2の動作について説明する。
図9は、画像カラー化装置2の動作を示すフローチャートである。
ステップS10において、画像入力手段20は、カラー化を行う対象のモノクロ画像を入力する。モノクロ画像は、カラー情報推定モデルMへの入力となるとともに、最終的に生成するカラー画像を構成するLab色空間のLチャンネルとなる。
【0072】
ステップS11において、色指定指示手段21は、モノクロ画像上で、ユーザが色指定を行いたい位置および色を色指定指示として入力する。
ステップS12において、色指定情報生成手段22は、ステップS11で入力した色指定指示から、カラー情報推定モデルMの入力となる3チャンネルの色指定情報を生成する。色指定情報生成手段22は、色指定が指示された画素位置において、指定されたカラー情報であるLab色空間のa値、b値、ならびに、当該画素位置に色指定が指示されていることを示す値(“1”)を、3チャンネルの対応する要素(画素)に設定することで、色指定情報を生成する。なお、色指定情報生成手段22は、色指定が指示されていない画素位置に対応する要素には、すべて色指定が指示されていることを示す値(“0”)を設定する。
【0073】
ステップS13において、境界指示手段23は、モノクロ画像上で、ユーザが境界として指定を行いたい位置を境界指示として入力する。
ステップS14において、境界情報生成手段24は、ステップS13で入力した境界指示から、カラー情報推定モデルMの入力となる1チャンネルの境界情報を生成する。境界情報生成手段24は、境界指示Ibで特定される画素位置に対応する要素に、境界であることを示す値(“1”)、他の要素に境界ではないことを示す値(“0”)を設定することで、境界情報を生成する。
【0074】
ステップS15において、カラー情報推定手段26は、ステップS10で入力したモノクロ画像、ステップS12で生成した色指定情報、および、ステップS14で生成した境界情報から、カラー情報推定モデルMを用いて、カラー情報(a,bチャンネル)を推定する。
【0075】
ステップS16において、カラー情報合成手段27は、ステップS10で入力したモノクロ画像をLab色空間のLチャンネルとし、ステップS15で推定したカラー情報(a,bチャンネル)を合成することで、カラー画像を生成する。
以上の動作によって、画像カラー化装置2は、カラー情報推定モデル生成装置1で生成したカラー情報推定モデルを用いて、ユーザから色指定や境界の指示を入力することで、正確なカラー画像を生成することができる。
【0076】
<画像カラー化装置のカラー画像生成例>
次に、
図10を参照して、色指定や境界の指示により、画像カラー化装置2が生成するカラー画像がどのように変化するのかを模式的に説明する。
図10は、色指定指示と境界指示とをそれぞれ行った場合のカラー画像の着色状態を示す。
図10中、矢印の左側の図形(ここでは、茶碗)がモノクロ画像、矢印の右側の図形(茶碗)がモノクロ画像をカラー化したカラー画像Pc(Pc1〜Pc4)を模式的に示している。なお、
図10では、色の違いをハッチングの違いで表している。また、茶碗中央の帯状領域Zは、輝度値の変化が少ない領域とする。
【0077】
図10(a)は、色指定の指示と境界の指示とがともにない場合を示している。
この場合、茶碗中央の帯状領域Zの輝度値の変化が少ないため、カラー画像Pc1のように、帯状領域Zは、ほぼ同じ色で着色されることになる。
図10(b)は、色指定の指示があり、境界の指示がない場合を示している。また、ここでは、帯状領域の左側に色Aを指定し、右側に色Bを指定している。
この場合、カラー画像Pc2のように、帯状領域Zは、指定された色A,Bで着色される。ただし、帯状領域Zの輝度値の変化が少ないため、色Aと色Bとの境界はにじんだ色となる。
【0078】
図10(c)は、色指定の指示と境界の指示とがともにあり、境界Cを左寄りに指示した場合を示している。
この場合、カラー画像Pc3のように、帯状領域Zは、指定された左寄りの境界で、指定された色A,Bが分かれて着色される。
図10(d)は、色指定の指示と境界の指示とがともにあり、境界Dを右寄りに指示した場合を示している。
この場合、カラー画像Pc4のように、帯状領域Zは、指定された右寄りの境界で、指定された色A,Bが分かれて着色される。
【0079】
なお、ここでは、直線で境界を指示した例を示している。この境界は点で指定してもよく、例えば、
図10(c)(d)において、点で境界を指定した場合、生成されるカラー画像は、
図10(b)のカラー画像Pc2のように、色Aと色Bとの境界はにじんだ色となるが、その境界は指定された点に移動する。
【0080】
<変形例>
以上、本発明の実施形態について説明したが、本発明はこの実施形態に限定されるものではない。
(変形例1)
ここでは、
図6に示すように、カラー情報推定モデルMを、モノクロ画像と色指定情報と境界情報との3つの入力でカラー情報(a,bチャンネル)を推定するモデルとした。
しかし、本発明において、色指定情報は必須ではない。
その場合、
図2に示したカラー情報推定モデル生成装置1から、色指定学習データ生成手段11を省き、モデル学習手段13が、カラー情報推定モデルMをモノクロ画像と境界情報との2つの入力で学習すればよい。また、
図8に示した画像カラー化装置2から、色指定指示手段21および色指定情報生成手段22を省き、カラー情報推定手段26が、モノクロ画像と境界情報との2つの入力でカラー情報(a,bチャンネル)を推定すればよい。
【0081】
もちろん、カラー情報推定モデルMは、モノクロ画像、色指定情報、境界情報以外に、他の情報を追加してカラー情報を推定するモデルとしてもよい。例えば、カラー情報推定モデルMの入力として、モノクロ画像のエッジデータ、ジャンル(アニメ、ドラマ、ニュース等)等を用いてもよい。
【0082】
モノクロ画像のエッジデータを入力とすることで、カラー情報推定モデルMは、モノクロ画像のエッジによって、色を精度よく区分することが可能なモデルになる。また、ジャンルを入力とすることで、カラー情報推定モデルMは、ジャンル固有の色合いを推定することが可能なモデルとなる。
【0083】
例えば、モノクロ画像のエッジデータをカラー情報推定モデルMの入力とする場合、
図2に示したカラー情報推定モデル生成装置1において、エッジを検出するエッジ検出手段を備えればよい。そして、エッジ検出手段が、情報分離手段10で分離したモノクロ情報であるLチャンネルからエッジを検出し、エッジデータ(エッジ画像)を1チャンネルの情報として、モデル学習手段13に出力すればよい。
また、
図8に示した画像カラー化装置2においても、エッジ検出手段を備えればよい。そして、エッジ検出手段が、画像入力手段20で入力したモノクロ画像を入力してエッジを検出し、エッジデータ(エッジ画像)を1チャンネルの情報として、カラー情報推定手段26に出力すればよい。
【0084】
また、例えば、モノクロ画像のジャンルをカラー情報推定モデルMの入力とする場合、カラー情報推定モデル生成装置1および画像カラー化装置2において、取り扱うジャンルの種類をNjとしたとき、Njチャンネル分のデータ(ジャンル情報)を生成するジャンル情報生成手段を備え、ジャンル情報を、モデル学習手段13、カラー情報推定手段26に出力することとすればよい。このジャンル情報は、ひとつのチャンネルにひとつのジャンルが対応するものとする。そして、ジャンル情報生成手段は、該当ジャンルに対応するチャンネルのみにジャンルが設定されていることを示す値(例えば、“1”)、それ以外のチャンネルにはジャンルが設定されていないことを示す値(例えば“0”)を設定することで、ジャンル情報を生成する。これによって、モノクロ画像に複数のジャンルが対応する場合でも、カラー情報推定モデルMの入力として使用することができる。
【0085】
(変形例2)
また、ここでは、
図6に示すように、カラー情報推定モデルMを、モノクロ画像(1チャンネル)、色指定情報(3チャンネル)、境界情報(1チャンネル)の3つの入力をそれぞれ個別に畳み込んだ後、加算(または連結)するモデルとした。
しかし、カラー情報推定モデルMは、これら3つの入力を連結し、5チャンネルのデータに対して畳み込みを行ってもよい。もちろん、3つの入力をすべて連結する必要はなく、その中の任意の2つを連結し、畳み込んだ後、それぞれを加算(または連結)することとしてもよい。例えば、モノクロ画像の1チャンネルと、色指定情報および境界情報を連結した4チャンネルとに分けて畳み込みを行う等である。
【0086】
(変形例3)
また、ここでは、カラー画像をLab色空間の画像とした。しかし、カラー画像は、Lab色空間の画像に限定するものではなく、他の色空間(例えば、RGB色空間)の画像であっても構わない。
【0087】
例えば、
図2に示したカラー情報推定モデル生成装置1において、RGB色空間のカラー画像を学習データとして、カラー情報推定モデルMを生成する場合、情報分離手段10の前段に、色空間変換手段を備えればよい。そして、色空間変換手段が、RGB色空間のカラー画像をLab色空間のカラー画像に変換し、情報分離手段10に出力すればよい。
また、
図8に示した画像カラー化装置2において、カラー情報合成手段27の後段に、Lab色空間のカラー画像をRGB色空間のカラー画像に変換する色空間変換手段を備えればよい。