【文献】
米辻泰山,2章 漫画・線画の着色技術 2−2 線画自動着色サービス「PaintsChainer」について,映像情報メディア学会誌,日本,一般社団法人映像情報メディア学会 The Institute of Image Information and Television Engineers,2018年 5月 1日,第72巻第3号,p47-51
(58)【調査した分野】(Int.Cl.,DB名)
【発明の概要】
【発明が解決しようとする課題】
【0004】
従来の自動着色技術は、ゲームやアニメ等の既存のキャラクタ等の線画を高精度に着色することはできなかった。本発明の課題は、ゲームやアニメ等の既存のキャラクタ等の線画を高精度に着色することである。
【課題を解決するための手段】
【0005】
本発明によれば、
コンピュータが、
要素ごとに、線画画像及び着色画像をペアとする学習データを記憶し、
前記要素ごとに、各前記要素の前記学習データを用いた機械学習により、前記線画画像から前記着色画像を推定する推定モデルを生成し、
着色対象の前記線画画像である対象線画画像を取得し、
前記対象線画画像に対応する前記要素を特定し、
特定した前記要素に対応する前記推定モデルと、前記対象線画画像とに基づき、前記対象線画画像に組み合わせる前記着色画像である対象着色画像を生成し、
前記対象着色画像を用いて、線画レイヤ及び着色レイヤを含む画像ファイルの前記着色レイヤを生成し、
前記対象線画画像に対応する前記線画レイヤを含む前記画像ファイルである対象画像ファイルに、生成した前記着色レイヤを挿入し、
ユーザ入力に基づき、前記着色レイヤを挿入された前記対象画像ファイルの前記着色レイヤを修正し、
修正した前記着色レイヤと、対応する前記線画レイヤとを、学習用の前記画像ペアとして抽出し、
抽出した前記線画レイヤの前記線画画像及び前記着色レイヤの前記着色画像のペアを、前記対象着色画像を生成する時に用いた前記推定モデルに対応する前記要素に対応付けて、前記学習データとして記憶する画像処理方法が提供される。
【0006】
また、本発明によれば、
コンピュータが、
要素ごとに、線画画像及び着色画像をペアとする学習データを記憶し、
線画レイヤ及び着色レイヤを含む画像ファイルであって、学習用の前記画像ファイルを取得し、
学習用の前記画像ファイルから前記線画レイヤ及び前記着色レイヤを抽出し、
学習用の前記画像ファイルが示す画像に対応する前記要素を特定し、
抽出した前記線画レイヤの前記線画画像及び前記着色レイヤの前記着色画像のペアを、特定した前記要素に対応付けて前記学習データとして記憶し、
前記要素ごとに、各前記要素の前記学習データを用いた機械学習により、前記線画画像から前記着色画像を推定する推定モデルを生成し、
着色対象の前記線画画像である対象線画画像を取得し、
前記対象線画画像に対応する前記要素を特定し、
前記対象線画画像に対応する前記要素に対応する前記推定モデルと、前記対象線画画像とに基づき、前記対象線画画像に組み合わせる前記着色画像である対象着色画像を生成し、
前記対象着色画像を用いて前記画像ファイルの前記着色レイヤを生成し、
前記対象線画画像に対応する前記線画レイヤを含む前記画像ファイルである対象画像ファイルに、生成した前記着色レイヤを挿入し、
ユーザ入力に基づき、前記着色レイヤを挿入された前記対象画像ファイルの前記着色レイヤを修正し、
修正した前記着色レイヤを含む前記対象画像ファイルを、学習用の前記画像ファイルとして取得する画像処理方法が提供される。
【0007】
また、本発明によれば、
要素ごとに、線画画像及び着色画像をペアとする学習データを記憶する手段と、
前記要素ごとに、各前記要素の前記学習データを用いた機械学習により、前記線画画像から前記着色画像を推定する推定モデルを生成する手段と、
着色対象の前記線画画像である対象線画画像を取得する手段と、
前記対象線画画像に対応する前記要素を特定する手段と、
特定した前記要素に対応する前記推定モデルと、前記対象線画画像とに基づき、前記対象線画画像に組み合わせる前記着色画像である対象着色画像を生成する手段と、
前記対象着色画像を用いて、線画レイヤ及び着色レイヤを含む画像ファイルの前記着色レイヤを生成する手段と、
前記対象線画画像に対応する前記線画レイヤを含む前記画像ファイルである対象画像ファイルに、生成した前記着色レイヤを挿入する手段と、
ユーザ入力に基づき、前記着色レイヤを挿入された前記対象画像ファイルの前記着色レイヤを修正する手段と、
修正した前記着色レイヤと、対応する前記線画レイヤとを、学習用の前記画像ペアとして抽出する手段と、
抽出した前記線画レイヤの前記線画画像及び前記着色レイヤの前記着色画像のペアを、前記対象着色画像を生成する時に用いた前記推定モデルに対応する前記要素に対応付けて、前記学習データとして記憶する手段と、
を有する画像処理システムが提供される。
【0008】
また、本発明によれば、
コンピュータを、
要素ごとに、線画画像及び着色画像をペアとする学習データを記憶する手段、
前記要素ごとに、各前記要素の前記学習データを用いた機械学習により、前記線画画像から前記着色画像を推定する推定モデルを生成する手段、
着色対象の前記線画画像である対象線画画像を取得する手段、
前記対象線画画像に対応する前記要素を特定する手段、
特定した前記要素に対応する前記推定モデルと、前記対象線画画像とに基づき、前記対象線画画像に組み合わせる前記着色画像である対象着色画像を生成する手段、
前記対象着色画像を用いて、線画レイヤ及び着色レイヤを含む画像ファイルの前記着色レイヤを生成する手段、
前記対象線画画像に対応する前記線画レイヤを含む前記画像ファイルである対象画像ファイルに、生成した前記着色レイヤを挿入する手段、
ユーザ入力に基づき、前記着色レイヤを挿入された前記対象画像ファイルの前記着色レイヤを修正する手段、
修正した前記着色レイヤと、対応する前記線画レイヤとを、学習用の前記画像ペアとして抽出する手段、
抽出した前記線画レイヤの前記線画画像及び前記着色レイヤの前記着色画像のペアを、前記対象着色画像を生成する時に用いた前記推定モデルに対応する前記要素に対応付けて、前記学習データとして記憶する手段、
として機能させるプログラムが提供される。
【発明の効果】
【0009】
本発明によれば、ゲームやアニメ等の既存のキャラクタ等の線画を高精度に着色することができる。
【発明を実施するための形態】
【0011】
<実施形態>
まず、本実施形態の概要を説明する。本実施形態は、コンピュータが以下の処理を行う。
【0012】
(1)ゲームやアニメ等の既存の要素(例:キャラクタやコスチューム等)毎に、線画画像及び着色画像をペアとする学習データを記憶する。そして、要素毎に機械学習を行い、要素毎に線画画像から着色画像を推定する推定モデルを生成する。
(2)着色対象の線画画像が与えられると、当該線画画像に対応する要素を特定し、特定した要素に対応する推定モデルと当該線画画像とに基づき、当該線画画像に組み合わせる着色画像を生成する。
(3)生成した着色画像に対して人間が修正を加えると、修正後の着色画像とそれに対応する線画画像を、新たな学習データとして記憶する。
【0013】
次に、本実施形態の画像処理システムの構成を説明する。
図1に、画像処理システムの機能ブロック図の一例を示す。図示するように、画像処理システムは、学習用画像ファイル入力部10と、学習データ生成部11と、分類部12と、学習データ記憶部13と、学習部14と、推定モデル記憶部15と、対象画像ファイル入力部16と、対象線画画像生成部17と、特定部18と、推定部19と、挿入部20と、出力部21と、修正部22とを有する。
【0014】
画像処理システムは、物理的及び/又は論理的に分かれた複数の装置により実現されてもよい。この場合、
図1に示す複数の機能部の各々は、複数の装置のいずれかで実現される。その他、画像処理システムは、物理的及び論理的に1つの装置により実現されてもよい。この場合、
図1に示す複数の機能部のすべてが、1つの装置で実現される。
【0015】
ここで、画像処理システムのハードウエア構成の一例について説明する。本実施形態の画像処理システムが備える各機能部は、任意のコンピュータのCPU(Central Processing Unit)、メモリ、メモリにロードされるプログラム、そのプログラムを格納するハードディスク等の記憶ユニット(あらかじめ装置を出荷する段階から格納されているプログラムのほか、CD(Compact Disc)等の記憶媒体やインターネット上のサーバ等からダウンロードされたプログラムをも格納できる)、ネットワーク接続用インターフェイスを中心にハードウエアとソフトウエアの任意の組合せによって実現される。そして、その実現方法、装置にはいろいろな変形例があることは、当業者には理解されるところである。
【0016】
図2は、本実施形態の画像処理システムのハードウエア構成を例示するブロック図である。
図2に示すように、画像処理システムは、プロセッサ1A、メモリ2A、入出力インターフェイス3A、周辺回路4A、バス5Aを有する。周辺回路4Aには、様々なモジュールが含まれる。画像処理システムは周辺回路4Aを有さなくてもよい。なお、画像処理システムが物理的及び/又は論理的に分かれた複数の装置で構成される場合、複数の装置各々が上記ハードウエア構成を備えることができる。
【0017】
バス5Aは、プロセッサ1A、メモリ2A、周辺回路4A及び入出力インターフェイス3Aが相互にデータを送受信するためのデータ伝送路である。プロセッサ1Aは、例えばCPU、GPU(Graphics Processing Unit)などの演算処理装置である。メモリ2Aは、例えばRAM(Random Access Memory)やROM(Read Only Memory)などのメモリである。入出力インターフェイス3Aは、入力装置、外部装置、外部サーバ、外部センサ等から情報を取得するためのインターフェイスや、出力装置、外部装置、外部サーバ等に情報を出力するためのインターフェイスなどを含む。入力装置は、例えばキーボード、マウス、マイク等である。出力装置は、例えばディスプレイ、スピーカ、プリンター、メーラ等である。プロセッサ1Aは、各モジュールに指令を出し、それらの演算結果をもとに演算を行うことができる。
【0018】
次に、
図1に示す複数の機能部各々の機能構成を説明する。
【0019】
学習用画像ファイル入力部10は、学習用の画像ファイル(以下、「学習用画像ファイル」)の入力を受付ける。学習用画像ファイル入力部10が学習用画像ファイルの入力を受付けることで、画像処理システムは学習用画像ファイルを取得できる。
【0020】
ここで、画像ファイルについて説明する。本実施形態の画像ファイルは、ユーザ(例:イラストレータ)が画像を作成する際の標準的なデータ構造であるレイヤ構造である。画像ファイルは、少なくとも下塗りレイヤを含む。下塗りレイヤは、線画レイヤ及び着色レイヤを含む。線画レイヤは、線のみで描いた線画を示す。着色レイヤは、線画を含まず、線画に対してなされた着色の内容を示す。ここで、線画レイヤ、着色レイヤ及び下塗りレイヤ各々の画像の一例を示す。
図3は、線画レイヤの画像の一例を示す。
図4は、着色レイヤの画像の一例を示す。
図5は、下塗りレイヤの画像の一例を示す。
【0021】
次に、
図6に、本実施形態の画像ファイルのレイヤ構造の一例を模式的に示す。図示する例の場合、画像ファイルは、下塗りレイヤと、シャドーを示すシャドーレイヤとを含む。下塗りレイヤは、線画レイヤと着色レイヤとを含む。線画レイヤは、キャラクタの上半身を示す上半身レイヤと、キャラクタの下半身を示す下半身レイヤとを含む。着色レイヤは、色毎の複数のレイヤを含む。なお、図示するレイヤ構造はあくまで一例であり、これに限定されない。
【0022】
本実施形態の画像ファイルは、例えばPSD(Adobe Photoshop(登録商標))ファイル、AI(Adobe Illustrator(登録商標))ファイル等が例示されるが、これらに限定されない。
【0023】
図1に戻り、学習データ生成部11は、学習用画像ファイル入力部10に入力された学習用画像ファイルから学習データを生成する。具体的には、学習データ生成部11は、学習用画像ファイルから線画レイヤ及び着色レイヤを抽出する。そして、学習データ生成部11は、抽出した線画レイヤ及び着色レイヤ各々を機械学習に適した所定のファイル形式に変更することで線画画像及び着色画像を生成する。1つの学習用画像ファイルから生成された線画画像及び着色画像のペアが学習データとなる。
【0024】
学習データに含まれる線画画像は、機械学習に適した所定のファイル形式で示される画像であって、学習用画像ファイルに含まれる線画レイヤと同じ内容を示す画像である。そして、学習データに含まれる着色画像は、本実施形態の機械学習に適した所定のファイル形式で示される画像であって、学習用画像ファイルに含まれる着色レイヤと同じ内容を示す画像である。
【0025】
本実施形態の機械学習に適した所定のファイル形式は、BMP(bitmap)形式等の非圧縮ラスタ画像や、PNG(Portable Network Graphics)ファイル等の可逆圧縮型のラスタ画像等が例示されるが、これらに限定されない。
【0026】
ここで、学習用画像ファイルから線画レイヤ及び着色レイヤを抽出する処理の具体例を説明する。
【0027】
学習データ生成部11は、学習用画像ファイルに含まれる複数のレイヤ各々を識別する情報(メタデータ)に基づき、学習用画像ファイルから線画レイヤ及び着色レイヤを抽出することができる。複数のレイヤ各々を識別する情報は、レイヤ名、レイヤID(identifier)、レイヤ番号、レイヤの上下関係等の構造上の特徴等が例示されるが、これらに限定されない。
【0028】
例えば、予め、線画レイヤ及び着色レイヤ各々のレイヤ名、レイヤID、レイヤ番号等を指定する際のルールを定めておく。当該ルールでは、例えば、線画レイヤ及び着色レイヤ各々のレイヤ名、レイヤID、レイヤ番号等に、線画レイヤ及び着色レイヤ各々を識別する所定の情報を加えることが定められる。画像ファイルを生成するユーザは、当該ルールに従い、各レイヤのレイヤ名、レイヤID、レイヤ番号等を指定する。このようにすることで、学習データ生成部11は、レイヤ名、レイヤID、レイヤ番号等に基づき、学習用画像ファイルから線画レイヤ及び着色レイヤを抽出することができる。
【0029】
その他、例えば、予め、画像ファイルに含まれる複数のレイヤの上下関係のルールを定めておく。当該ルールは、例えば、「グループレイヤが含む複数のレイヤの中で、下塗りレイヤを最も上に位置させる。そして、下塗りレイヤが含む複数のレイヤの中で、線画レイヤを最も上に位置させ、次に着色レイヤを位置させる。」等である。画像ファイルを生成するユーザは、当該ルールに従い、画像ファイルに含まれる複数のレイヤの上下関係を指定する。このようにすることで、学習データ生成部11は、画像ファイルに含まれる複数のレイヤの上下関係に基づき、学習用画像ファイルから線画レイヤ及び着色レイヤを抽出することができる。
【0030】
分類部12は、学習用画像ファイルが示す画像に対応する要素を特定する。「画像に対応する要素」は、画像で描かれている要素である。要素は、ゲームやアニメ等の既存のキャラクタやコスチューム等である。なお、1つの画像ファイルが示す画像には1つの要素が描かれているものとする。
【0031】
そして、分類部12は、学習データ生成部11が生成した学習データを、特定した要素に対応付けて、学習データ記憶部13に記憶させる。
【0032】
ここで、学習用画像ファイルが示す画像に対応する要素を特定する処理の具体例を説明する。
【0033】
分類部12は、例えば、学習用画像ファイルの名称に基づき、上記要素を特定することができる。例えば、予め、画像ファイルの名称を指定する際のルールを定めておく。当該ルールでは、例えば、画像ファイルの名称に、各画像ファイルが示す画像に対応する要素を識別する所定の情報(例:キャラクタ名、コスチューム名等)を加えることが定められる。画像ファイルを生成するユーザは、当該ルールに従い、画像ファイルの名称を指定する。このようにすることで、分類部12は、画像ファイルの名称に基づき、学習用画像ファイルが示す画像に対応する要素を特定することができる。
【0034】
その他、ユーザが、要素を指定する入力を、画像処理システムに対して行ってもよい。そして、分類部12は、ユーザが指定した内容に基づき、要素を特定してもよい。
【0035】
学習データ記憶部13は、要素毎に、線画画像及び着色画像をペアとする学習データを記憶する。例えば、学習データ記憶部13は、図示するように、複数の要素各々に対応したデータバケットを有し、各要素の学習データを各データバケットに蓄積してもよい。
【0036】
学習部14は、要素毎に、学習データ記憶部13に記憶されている各要素の学習データを用いた機械学習を行い、線画画像から着色画像を推定する推定モデルを生成する。機械学習の技法としては、例えばGAN(generative adversarial network)等の生成系ニューラルネットワーク等が例示されるが、これに限定されない。例えば、学習部14はpix2pixで構成されてもよい。
【0037】
推定モデル記憶部15は、学習部14により生成された要素毎の推定モデルを記憶する。推定モデル記憶部15は、各要素に対応付けて、各要素の学習データに基づき生成された推定モデルを記憶する。
【0038】
対象画像ファイル入力部16は、着色対象の画像ファイル(以下、「対象画像ファイル」)の入力を受付ける。対象画像ファイル入力部16が対象画像ファイルの入力を受付けることで、画像処理システムは対象画像ファイルを取得できる。対象画像ファイルは、線画レイヤを含み、着色レイヤを含まない。
【0039】
対象線画画像生成部17は、対象画像ファイルから着色レイヤを抽出し、抽出した着色レイヤを所定のファイル形式に変更することで、着色対象の線画画像(以下、「対象線画画像」)を取得する。所定のファイル形式は、学習データに含まれる線画画像と同じファイル形式である。対象線画画像生成部17は、学習データ生成部11と同様の手法で、対象画像ファイルから着色レイヤを抽出することができる。
【0040】
特定部18は、対象線画画像に対応する要素を特定する。特定部18は、「学習用画像ファイルが示す画像に対応する要素を特定する手段(分類部12)」と同様の手段で、対象線画画像に対応する要素を特定することができる。
【0041】
推定部19は、特定部18により特定された要素に対応する推定モデルと、対象線画画像とに基づき、対象線画画像に組み合わせる着色画像(以下、「対象着色画像」)を生成する。第1の要素に対応する推定モデルは、第1の要素に対応付けて推定モデル記憶部15に記憶されている推定モデルである。
【0042】
挿入部20は、推定部19により生成された対象着色画像を用いて、着色レイヤを生成する。そして、挿入部20は、生成した着色レイヤを、対象画像ファイル入力部16に入力された対象画像ファイルに挿入する。以下、挿入部20により着色レイヤを挿入された対象画像ファイルを「着色済画像ファイル」と呼ぶ。そして、着色済画像ファイルが示す画像を「着色済画像」と呼ぶ。なお、挿入部20は、ノイズ除去や、着色レイヤを複数のレイヤに分割する処理などを行うことができる。
【0043】
出力部21は、着色済画像ファイルを処理して、着色済画像を出力する。出力部21は、ディスプレイ、プリンター、メーラ、投影装置等のあらゆる出力装置を介して、着色済画像の出力を実現する。
【0044】
修正部22は、ユーザ入力に基づき、着色済画像ファイルの着色レイヤを修正する。そして、着色済画像ファイルの着色レイヤを修正した後、所定の第1の条件を満たすと、修正部22は、着色レイヤを修正した後の着色済画像ファイルを、学習用画像ファイルとして学習用画像ファイル入力部10に入力する。
【0045】
所定の第1の条件は、例えば「ユーザによる所定のユーザ入力を受付けた」である。所定のユーザ入力は、着色レイヤを修正した後の着色済画像ファイルを学習用画像ファイルとして登録することを指示する入力であってもよい。
【0046】
その他、所定のユーザ入力は、所定のレイヤにロックを掛け、着色レイヤの編集ができないようにする入力であってもよい。所定のレイヤは、着色レイヤや下塗りレイヤ等である。ユーザは、着色レイヤの修正が完了した時点で、所定のレイヤにロックを掛け、着色レイヤの編集ができないようにすると考えられる。すなわち、所定のレイヤにロックを掛け、着色レイヤの編集ができないようにした場合、着色レイヤの修正は完了し、学習用のデータとして適した状態になっていると考えられる。所定のレイヤにロックを掛け、着色レイヤの編集ができないようにしたことに応じて、着色済画像ファイルを学習用画像ファイルとして出力することで、学習用のデータとして好ましいデータを、ユーザによる不要な操作なしで、学習用画像ファイル入力部10に入力することができる。
【0047】
その他、所定のユーザ入力は、作業対象を、着色レイヤから他のレイヤ(例:着色レイヤの上のレイヤ)に変更する指示入力であってもよい。この場合も、上記ロックの場合と同様の理由で、学習用のデータとして好ましいデータを、ユーザによる不要な操作なしで、学習用画像ファイル入力部10に入力することができる。
【0048】
次に、
図7のフローチャートを用いて、画像処理システムの処理の流れの一例を説明する。
図7は、学習データを登録する処理の流れの一例を示す。
【0049】
まず、画像処理システムは、学習用画像ファイルを取得する(S10)。次いで、画像処理システムは、S10で取得した学習用画像ファイルから、線画レイヤ及び着色レイヤを抽出する(S11)。次いで、画像処理システムは、S11で抽出した線画レイヤ及び着色レイヤ各々のファイル形式を変更することで、機械学習に適した所定のファイル形式で示された線画画像及び着色画像を生成する(S12)。
【0050】
次いで、画像処理システムは、S10で取得した学習用画像ファイルが示す画像に対応する要素を特定する(S13)。そして、画像処理システムは、S12で生成した線画画像及び着色画像のペアを含む学習データを、S13で特定した要素に対応付けて登録する(S14)。
【0051】
なお、S11乃至S13の処理順は、図示するものに限定されない。
【0052】
次に、
図8のフローチャートを用いて、画像処理システムの処理の流れの他の一例を説明する。
図8は、推定モデルを生成する処理の流れの一例を示す。
【0053】
画像処理システムは、学習タイミングの到来を監視する(S20)。学習タイミングは、新たな学習データが追加されたタイミングであってもよいし、新たに所定個数の学習データが追加されたタイミングであってもよいし、学習実行を指示するユーザ入力があったタイミングであってもよいし、予め登録されたタイミング(例:毎日0時、毎週月曜日の0時等)であってもよいし、その他のタイミングであってもよい。
【0054】
学習タイミングになると(S20のYes)、画像処理システムは、要素毎に登録されている学習データを用いて、要素毎に機械学習を行い、要素毎に推定モデルを生成する(S21)。そして、画像処理システムは、要素ごとに、S21で生成した推定モデルを登録する(S22)。なお、S21では、すべての要素に対して機械学習を行ってもよいし、一部の要素に対して機械学習を行ってもよい。例えば、画像処理システムは、新たな学習データが追加された要素に対してのみ、機械学習を行い、推定モデルを更新してもよい。
【0055】
次に、
図9のフローチャートを用いて、画像処理システムの処理の流れの他の一例を説明する。
図9は、対象画像ファイルに自動着色する処理の流れの一例を示す。
【0056】
まず、画像処理システムは、対象画像ファイルを取得する(S30)。次いで、画像処理システムは、S30で取得した対象画像ファイルから、線画レイヤを抽出する(S31)。次いで、画像処理システムは、S31で抽出した線画レイヤのファイル形式を変更することで、所定のファイル形式で示された対象線画画像を生成する(S32)。所定のファイル形式は、学習データに含まれる線画画像のファイル形式と同じである。
【0057】
次いで、画像処理システムは、S30で取得した対象画像ファイルが示す画像に対応する要素を特定する(S33)。そして、画像処理システムは、S33で特定した要素に対応する推定モデルと、S32で生成した対象線画画像とに基づき、対象着色画像を生成する(S34)。
【0058】
次いで、画像処理システムは、S34で生成した対象着色画像を用いて着色レイヤを生成し(S35)、生成した着色レイヤをS30で取得した対象画像ファイルに挿入する(S36)。そして、画像処理システムは、着色レイヤを挿入した対象画像ファイルを出力する(S37)。
【0059】
なお、S31乃至S33の処理順は、図示するものに限定されない。
【0060】
次に、
図10のフローチャートを用いて、画像処理システムの処理の流れの他の一例を説明する。
図10は、
図9の処理で着色レイヤを挿入された対象画像ファイルである着色済画像ファイルを修正し、修正後の着色済画像ファイルを学習用画像ファイルとして出力する処理の流れの一例を示す。
【0061】
画像処理システムは、着色済画像ファイルが示す画像を例えばディスプレイに表示する(S40)。ユーザは、ディスプレイに表示された自動着色後の画像を閲覧し、適宜、所定のレイヤを修正する。ここでは、画像処理システムは、ユーザ入力に基づき、着色済画像ファイルに含まれる着色レイヤを修正したものとする(S41)。
【0062】
その後、修正後の着色済画像ファイルを学習用画像ファイルとする第1の条件を満たすと(S42のYes)、画像処理システムは、修正後の着色済画像ファイルを学習用画像ファイルと出力する(S43)。この後、画像処理システムは、
図7の処理を実行する。なお、第1の条件は上述の通りである。
【0063】
一方、第1の条件を満たさなければ(S42のNo)、画像処理システムは、第1の条件を満たすまで待つ。この場合、画像処理システムは、予め定められた終了条件を満たすと、当該処理を終了してもよい。終了条件は、着色済画像ファイルを修正する処理を終了するユーザ入力の受付けであってもよいし、その他であってもよい。
【0064】
次に、本実施形態の作用効果を説明する。
【0065】
本実施形態は、例えば、ゲームやアニメ等の既存の要素(例:キャラクタやコスチューム等)を対象として、ユーザが作画した線画画像に、自動的に下塗りとしての着色を、高精度に実現するAIの構成方式に関するものである。
【0066】
本実施形態の技術的特徴は、ゲームやアニメに固有の概念である、“キャラクタ”や“コスチューム”といった要素を基本単位として、学習データの分類、推定モデルの生成、推論時の推定モデル選択、フィードバック時の学習データ管理等を行うことにより、ユーザが暗黙的に保有する各要素の特徴を高精度に学習可能にするHuman-In-The-Loop型深層学習(HITL−DL)を実現する点にある。
【0067】
ここで、Human-In-The-Loop型とは、自然な形でユーザに負担をかけずに、ユーザが参加することを前提とした学習を実現することを意味する。従来の深層学習では、チューニングが複雑であったため、このHITLを実現することが比較的難しいとされていた。本実施形態では、例えば次の3点により、プロフェッショナル用途の高精度な自動下塗り着色のためのHITLを確立する。
【0068】
・学習用画像ファイル(例:PSD)が入力されると、レイヤ名等を用いて線画レイヤ及び着色レイヤを抽出する。そして、抽出した線画レイヤ及び着色レイヤを用いて、学習データとする線画画像及び着色画像を生成する。そして、ファイル名等を用いて学習用画像ファイルに対応する要素を特定し、生成した学習データを特定した要素に対応付けて格納する。そして、要素毎に機械学習を行い、線画画像から着色画像を生成する推定モデルを要素毎に生成する。
【0069】
・自動着色のために対象画像ファイルが入力されると、レイヤ名等を用いて線画レイヤを抽出して対象線画画像を生成するとともに、ファイル名等を用いて対象画像ファイルに対応する要素を特定する。次いで、特定した要素に対応する推定モデルと対象線画画像とに基づき、対象線画画像に組み合わせる着色画像を生成する。そして、生成した着色画像に基づき着色レイヤを生成し、対象画像ファイルに挿入する。
【0070】
・上記自動着色で生成された着色レイヤをユーザが修正すると、修正後の着色レイヤを含む対象画像ファイルを、学習用画像ファイルとして出力する。
【0071】
これらにより、人間の下塗り知識を自動的に学習し、既存の要素を高精度に着色することができる。また、新規要素の追加時にも既存の推定モデルに影響を与えずに、スケーラブルに新たな推定モデルを追加することができる。
【0072】
また、本実施形態は、学習のために画像処理システムに入力される画像ファイルと、着色後に画像処理システムから出力される画像ファイルとが同一のファイル形式である。このため、演算体系としての閉包性を有することになり、永続的なHuman-In-The-Loopを実行することが可能になる。
【0073】
また、本実施形態は、特定の要素毎の汎化性能が低い推定モデルを集団的に用いることにより、高精度な推定を実現する。
【0074】
<実施例>
次に、実施例を説明する。まず、本実施例のデータ構造を説明する。本実施例は、画像処理システムに入力される画像ファイルD、要素毎に学習データを格納するデータバケットB、及び、画像処理システムから出力される画像ファイルD´の、3つのデータ構造から構成される。
【0075】
画像ファイルDは、式(1)のように定義できる。なお、画像ファイルDのファイル形式は、例えばPSDファイルである。
【0077】
ここで、L
iは、i番目のレイヤであり、それぞれのレイヤ間には循環しない親子関係が存在する。L
iは、任意の数の子要素を有する。
【0078】
データバケットBは、要素毎の複数のデータバケットを含む。ある要素aに対応するデータバケットB
aは、式(2)のように定義できる。
【0080】
ここで、s
kはk番目の線画画像を示し、c
kはk番目の着色画像を示す。s
kとc
kのペアが1つの学習データとなる。なお、線画画像及び着色画像のファイル形式は、例えばBMPファイルである。
【0081】
画像ファイルD´は、画像ファイルDと同じファイル形式である。すなわち、画像処理システムに入力される画像ファイルDと、画像処理システムから出力される画像ファイルD´は、同じファイル形式である。画像ファイルD´は、式(3)のように定義できる。なお、画像ファイルD´は、例えばPSDファイルである。
【0083】
ここで、L
iは、i番目のレイヤであり、それぞれのレイヤ間には循環しない親子関係が存在する。L
iは、任意の数の子要素を有する。
【0084】
次に、本実施例を実現するための基本関数を説明する。本実施例は、Human-In-The-Loopを構成するための制御関数としてnormalizeとappendの2つの関数を利用し、GANを用いた学習を行う関数としてlearn関数を利用し、そして、自動着色を行うための関数として、infer、denoise、divideの3つの関数を利用する。すなわち、本実施例では、合計6つのプリミティブ関数を利用する。
【0085】
normalize関数は、レイヤ構造を有する画像ファイルDから線画レイヤ及び着色レイヤを抽出し、ファイル形式の変更、画像サイズの調整等を行うことで、線画画像s
tと着色画像c
tを生成する。また、normalize関数は、画像ファイルDが示す画像に対応する要素aを特定する。normalize関数は、式(4)のように定義できる。
【0087】
ここで、Dtは、処理対象となる画像ファイルを示す。wとhは、出力する線画画像s
t及び着色画像c
tのデータサイズ(幅と高さ)を示す。pix2pixに代表される生成系ニューラルネットワークは、学習データとなる画像サイズ(縦ピクセル数、および、横ピクセル数)を一律にそろえる必要がある。本実施例では、normalize関数により、それらを正規化する。
【0088】
append関数は、normalize関数で出力された線画画像s
tと着色画像c
tとの画像対を、normalize関数で出力された要素aに対応するデータバケットB
aに格納する関数である。append関数は、式(5)のように定義できる。
【0090】
ここで、B
aは、要素aに対応するデータバケットである。
【0091】
learn関数は、要素aに対応するデータバケットB
aに格納された学習データに基づき機械学習を行い、要素aに対応する線画画像から着色画像を生成する推定モデルM
aを生成する。learn関数は、式(6)のように定義できる。
【0093】
learn関数は、例えば、pix2pixなどの既存の生成系ニューラルネットワークをそのまま用いて実装することができる。
【0094】
infer関数は、要素aに対応する線画画像s
aを入力すると、要素aに対応する推定モデルM
aを用いて、着色画像c
aを自動生成する関数である。infer関数は、式(7)のように定義できる。
【0096】
denoise関数は、自動着色結果をベタ塗としてノイズ除去する関数である(デノイジング・フィルター)。GANによる自動着色では、図面の端などの特徴が失われやすい箇所や、線画が細かい箇所などでは、ノイズが混入する傾向がある。このため、平準化等の画像処理としてのデノイジング・フィルターを導入することで、下塗り・ベタ塗としての精度を向上させることができる。denoise関数は、式(8)のように定義できる。
【0098】
ここで、cはinfer関数で生成した着色画像であり、c´はノイズ除去実行後の着色画像である。
【0099】
divide関数は、ノイズ除去実行後の着色画像c´に対してファイル形式の変更、色毎のレイヤ分割等の処理を実行し、画像ファイルの着色レイヤを生成する。例えば、denoise関数によりノイズが除去され、ある1つの領域が単一の色で塗られる状態になれば、色ごとにレイヤを分割していくことが可能になる。このように、色別にレイヤを分割することにより、ユーザが容易に編集・修正を行うことが可能になる。そして、divide関数は、infer関数に入力された着色対象の線画画像s
aに対応する線画レイヤを含む画像ファイルに、生成した着色レイヤを挿入する。divide関数は、式(9)のように定義できる。
【0101】
ここで、D´は、divide関数で出力される画像ファイルであり、infer関数に入力された着色対象の線画画像s
aに対応する線画レイヤを含み、divide関数で生成された着色レイヤを挿入された画像ファイルである。
【0102】
本実施例における学習プロセスは次の通りである。
・Step-L1:学習用の画像ファイルDに、normalize関数を適用する。
・Step-L2:Step-L1の結果を、要素ごとに学習バケットBに格納するために、append関数を実行する。
・Step-L3:それぞれの学習バケットB
aに、learn関数を適用し、学習モデルM
aを生成する。
【0103】
本実施例における推論プロセスは次の通りである。
・Step-I1:ユーザが特定の要素aに該当する線画画像sを画像処理システムに入力すると、画像処理システムは、要素aに対応する学習モデルM
aを用いて、線画画像sにinfer関数を適用し、着色画像cを生成する。
・Step-I2:Step-I1で得た着色画像cに、denoise関数を適用し、ノイズを除去した着色画像c´を得る。
・Step-I3:Step-I2で得た着色画像c´に、divide関数を適用し、レイヤ構造を有する画像ファイルD´を得る。
【0104】
本実施例におけるユーザによる修正プロセスは次の通りである。
・Step-H1: Step-I3から出力された画像ファイルD´の着色レイヤを修正し、修正後の画像ファイルD´が学習用の画像ファイルDとして出力されると、上記Step-L1以降の学習プロセスが実行される。
【0105】
このように、人手による修正が行われると、学習プロセスの開始であるStep-L1が起動されることとなり、本発明の永続的な改善が実現される。
【0106】
以下、参考形態の例を付記する。
1. コンピュータが、
要素ごとに、線画画像及び着色画像をペアとする学習データを記憶し、
前記要素ごとに、各前記要素の前記学習データを用いた機械学習により、前記線画画像から前記着色画像を推定する推定モデルを生成し、
着色対象の前記線画画像である対象線画画像を取得し、
前記対象線画画像に対応する前記要素を特定し、
特定した前記要素に対応する前記推定モデルと、前記対象線画画像とに基づき、前記対象線画画像に組み合わせる前記着色画像である対象着色画像を生成し、
前記対象着色画像を用いて、線画レイヤ及び着色レイヤを含む画像ファイルの前記着色レイヤを生成し、
前記対象線画画像に対応する前記線画レイヤを含む前記画像ファイルである対象画像ファイルに、生成した前記着色レイヤを挿入し、
ユーザ入力に基づき、前記着色レイヤを挿入された前記対象画像ファイルの前記着色レイヤを修正し、
修正した前記着色レイヤと、対応する前記線画レイヤとを、学習用の前記画像ペアとして抽出し、
抽出した前記線画レイヤの前記線画画像及び前記着色レイヤの前記着色画像のペアを、前記対象着色画像を生成する時に用いた前記推定モデルに対応する前記要素に対応付けて、前記学習データとして記憶する画像処理方法。
2. コンピュータが、
要素ごとに、線画画像及び着色画像をペアとする学習データを記憶し、
線画レイヤ及び着色レイヤを含む画像ファイルであって、学習用の前記画像ファイルを取得し、
学習用の前記画像ファイルから前記線画レイヤ及び前記着色レイヤを抽出し、
学習用の前記画像ファイルが示す画像に対応する前記要素を特定し、
抽出した前記線画レイヤの前記線画画像及び前記着色レイヤの前記着色画像のペアを、特定した前記要素に対応付けて前記学習データとして記憶し、
前記要素ごとに、各前記要素の前記学習データを用いた機械学習により、前記線画画像から前記着色画像を推定する推定モデルを生成し、
着色対象の前記線画画像である対象線画画像を取得し、
前記対象線画画像に対応する前記要素を特定し、
前記対象線画画像に対応する前記要素に対応する前記推定モデルと、前記対象線画画像とに基づき、前記対象線画画像に組み合わせる前記着色画像である対象着色画像を生成し、
前記対象着色画像を用いて前記画像ファイルの前記着色レイヤを生成し、
前記対象線画画像に対応する前記線画レイヤを含む前記画像ファイルである対象画像ファイルに、生成した前記着色レイヤを挿入し、
ユーザ入力に基づき、前記着色レイヤを挿入された前記対象画像ファイルの前記着色レイヤを修正し、
修正した前記着色レイヤを含む前記対象画像ファイルを、学習用の前記画像ファイルとして取得する画像処理方法。
3. 1又は2に記載の画像処理方法において、
前記コンピュータは、前記画像ファイルに含まれる複数のレイヤ各々を識別する情報に基づき、前記画像ファイルから前記線画レイヤ及び前記着色レイヤを抽出する画像処理方法。
4. 1から3のいずれかに記載の画像処理方法において、
前記コンピュータは、前記画像ファイルの名称に基づき、前記画像ファイルが示す画像に対応する前記要素を特定する画像処理方法。
5. 1から4のいずれかに記載の画像処理方法において、
前記コンピュータは、ユーザ入力に基づき前記対象画像ファイルの前記着色レイヤを修正した後、所定のユーザ入力を受付けると、修正した前記着色レイヤを含む前記対象画像ファイルを学習用の前記画像ファイルとして取得する画像処理方法。
6. 1から5のいずれかに記載の画像処理方法において、
1つの学習用の前記画像ファイルが示す画像には1つの前記要素が描かれている画像処理方法。
7. 要素ごとに、線画画像及び着色画像をペアとする学習データを記憶する手段と、
前記要素ごとに、各前記要素の前記学習データを用いた機械学習により、前記線画画像から前記着色画像を推定する推定モデルを生成する手段と、
着色対象の前記線画画像である対象線画画像を取得する手段と、
前記対象線画画像に対応する前記要素を特定する手段と、
特定した前記要素に対応する前記推定モデルと、前記対象線画画像とに基づき、前記対象線画画像に組み合わせる前記着色画像である対象着色画像を生成する手段と、
前記対象着色画像を用いて、線画レイヤ及び着色レイヤを含む画像ファイルの前記着色レイヤを生成する手段と、
前記対象線画画像に対応する前記線画レイヤを含む前記画像ファイルである対象画像ファイルに、生成した前記着色レイヤを挿入する手段と、
ユーザ入力に基づき、前記着色レイヤを挿入された前記対象画像ファイルの前記着色レイヤを修正する手段と、
修正した前記着色レイヤと、対応する前記線画レイヤとを、学習用の前記画像ペアとして抽出する手段と、
抽出した前記線画レイヤの前記線画画像及び前記着色レイヤの前記着色画像のペアを、前記対象着色画像を生成する時に用いた前記推定モデルに対応する前記要素に対応付けて、前記学習データとして記憶する手段と、
を有する画像処理システム。
8. コンピュータを、
要素ごとに、線画画像及び着色画像をペアとする学習データを記憶する手段、
前記要素ごとに、各前記要素の前記学習データを用いた機械学習により、前記線画画像から前記着色画像を推定する推定モデルを生成する手段、
着色対象の前記線画画像である対象線画画像を取得する手段、
前記対象線画画像に対応する前記要素を特定する手段、
特定した前記要素に対応する前記推定モデルと、前記対象線画画像とに基づき、前記対象線画画像に組み合わせる前記着色画像である対象着色画像を生成する手段、
前記対象着色画像を用いて、線画レイヤ及び着色レイヤを含む画像ファイルの前記着色レイヤを生成する手段、
前記対象線画画像に対応する前記線画レイヤを含む前記画像ファイルである対象画像ファイルに、生成した前記着色レイヤを挿入する手段、
ユーザ入力に基づき、前記着色レイヤを挿入された前記対象画像ファイルの前記着色レイヤを修正する手段、
修正した前記着色レイヤと、対応する前記線画レイヤとを、学習用の前記画像ペアとして抽出する手段、
抽出した前記線画レイヤの前記線画画像及び前記着色レイヤの前記着色画像のペアを、前記対象着色画像を生成する時に用いた前記推定モデルに対応する前記要素に対応付けて、前記学習データとして記憶する手段、
として機能させるプログラム。
【解決手段】画像処理方法は、要素ごとに線画画像及び着色画像をペアとする学習データを記憶し、学習データを用いた機械学習により、線画画像から着色画像を推定するモデルを生成し、着色対象の線画画像を取得し、対象線画画像の特定要素に対応する推定モデルと対象線画画像に基づき対象線画画像に組み合わせる着色画像を生成し、対象着色画像を用いて線画レイヤ及び着色レイヤを含む画像ファイルの着色レイヤを生成し、対象線画画像に対応する線画レイヤを含む画像ファイルに挿入し、ユーザ入力に基づき、着色レイヤを挿入された対象画像ファイルの着色レイヤを修正し、修正した着色レイヤと対応する線画レイヤとを学習用の画像ペアとして抽出し、抽出した線画レイヤの線画画像及び着色レイヤの着色画像のペアを、対象着色画像を生成する時に用いた推定モデルに対応する要素に対応付けて記憶する。