(57)【要約】【課題】光源情報が示す光源による照明状態に基づいて、入力画像に対応する出力画像を生成する場合に、写実性を向上できる画像処理装置、画像処理方法、及びプログラムを提供することを提供すること。【解決手段】画像処理装置は、入力画像を取得する取得部と、光源からの照明状態を示す情報である光源情報と、入力画像に含まれる被写体の反射率として入力画像に基づいて推定された反射率情報と、入力画像に含まれる被写体からの光の伝達状態として入力画像と光源からの光が被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、入力画像に対応する出力画像を生成する生成部と、生成部が生成した出力画像を出力する出力部とを備える。【選択図】図２
2019219928.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を取得する取得部と、
光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成する生成部と、
前記生成部が生成した出力画像を出力する出力部と
を備える、画像処理装置。
【請求項２】
前記光源情報とは、前記入力画像に基づいて推定されたものである、請求項１に記載の画像処理装置。
【請求項３】
前記出力画像とは、前記光源情報が示す前記照明状態に基づいて、前記入力画像に含まれる前記被写体を再照明した再照明画像である、請求項１に記載の画像処理装置。
【請求項４】
前記反射率情報と前記光伝達情報とは、機械学習モデルによって、前記入力画像に基づいて推定されたものである、請求項１から請求項３のいずれか一項に記載の画像処理装置。
【請求項５】
前記機械学習モデルとは、前記機械学習モデルによって、前記入力画像に基づいて推定される光源情報と、反射率情報と、光伝達情報とのいずれか又はいずれか同士の組み合わせから得られる画像と、所定の正解画像とを比較することによって学習されたものである、請求項４に記載の画像処理装置。
【請求項６】
前記可視情報は、物体表面の複数の点の各々について、光の方向毎に、前記光が複数の前記点の各々に届くか否かに基づいて作成される、請求項１から請求項５のいずれか一項に記載の画像処理装置。
【請求項７】
入力画像を取得するステップと、
光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成するステップと、
前記生成するステップで生成された出力画像を出力するステップと
を有する、コンピュータが実行する画像処理方法。
【請求項８】
コンピュータに、
入力画像を取得するステップと、
光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成するステップと、
前記生成するステップで生成された出力画像を出力するステップと
を実行させる、画像処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【０００２】
再照明（ｒｅｌｉｇｈｔｉｎｇ）とは、被写体が撮影されたときとは異なる照明環境下での被写体の見た目を再現する技術である。人物画像の再照明が実現できれば、ポートレート写真の陰影の修正、背景画像をさしかえる切り貼り合成など、様々な応用が考えられる。
一方で、物理則に基づいて人物画像の再照明を行うには、その画像から反射率、形状および照明を推定する必要がある。これは、逆レンダリング（ｉｎｖｅｒｓｅ  ｒｅｎｄｅｒｉｎｇ）と呼ばれる不良設定問題である。このような逆レンダリングは、主に人物の顔画像に対して、統計的な３Ｄ形状モデルや畳み込みニューラルネットワーク（ｃｏｎｖｏｌｕｔｉｏｎａｌ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ；  ＣＮＮ）を用いて実現されてきた。そして、その際の照明計算の定式化において、周囲から届く光の分布を表現するために球面調和関数（ｓｐｈｅｒｉｃａｌ  ｈａｒｍｏｎｉｃｓ；ＳＨ）がよく用いられてきた。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】S.Sengupta, A.Kanazawa, C.D.Castillo, and D.W.Jacobs, “SfSNet: Learning Shape, Reflectance and Illuminance of Faces ‘in the wild’” , in Conference on Computer Vision and Pattern Recognition 2018.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ＳＨに基づく再照明では、光の遮蔽を無視すれば、照明情報と物体表面の法線ベクトルとから、解析的な式で照明計算を行うことができる。しかし光の遮蔽を無視すると、例えば人物の脇や股など、本来なら遮蔽のために光のあまり当たらない部分が不自然に明るくなってしまう。
光の遮蔽を近似的に扱う方法として、幾何的な遮蔽率をスカラー値として算出し陰影に乗算するアンビエントオクルージョンという技術もあるが、これは光源に依らず凹んだ部分を常に暗くしているため、特に再照明の際に光源を動かした場合に違和感が生じる。
【０００５】
よりよい方法としては、リアルタイムレンダリング向けに開発された前計算放射輝度伝達（ｐｒｅｃｏｍｐｕｔｅｄ  ｒａｄｉａｎｃｅ  ｔｒａｎｓｆｅｒ；ＰＲＴ）で行われたように、光の遮蔽を含めてＳＨの照明計算を定式化することが知られている。
しかし、ＰＲＴの枠組みを逆レンダリングに組み込もうとすると、光の遮蔽を計算するためには、推定しようとしている形状が必要になる上に、物体表面上の各点から多数のレイを飛ばして可視判定を行う必要があり、計算コストが大きい。
本発明は、前述した問題を解決すべくなされたもので、入力画像に対応する出力画像を生成する場合に、写実性を向上できる画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一実施形態は、入力画像を取得する取得部と、光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成する生成部と、前記生成部が生成した出力画像を出力する出力部とを備える、画像処理装置である。
本発明の一実施形態は、前述の画像処理装置において、前記光源情報とは、前記入力画像に基づいて推定されたものである。
本発明の一実施形態は、前述の画像処理装置において、前記出力画像とは、前記光源情報が示す前記照明状態に基づいて、前記入力画像に含まれる前記被写体を再照明した再照明画像である。
本発明の一実施形態は、前述の画像処理装置において、前記反射率情報と前記光伝達情報とは、機械学習モデルによって、前記入力画像に基づいて推定されたものである。
本発明の一実施形態は、前述の画像処理装置において、前記機械学習モデルとは、前記機械学習モデルによって、前記入力画像に基づいて推定される光源情報と、反射率情報と、光伝達情報とのいずれか又はいずれか同士の組み合わせから得られる画像と、所定の正解画像とを比較することによって学習されたものである。
本発明の一実施形態は、前述の画像処理装置において、前記可視情報は、物体表面の複数の点の各々について、光の方向毎に、前記光が複数の前記点の各々に届くか否かに基づいて作成される。
【０００７】
本発明の一実施形態は、入力画像を取得するステップと、光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成するステップと、前記生成するステップで生成された出力画像を出力するステップとを有する、コンピュータが実行する画像処理方法である。
【０００８】
本発明の一実施形態は、コンピュータに、入力画像を取得するステップと、光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成するステップと、前記生成するステップで生成された出力画像を出力するステップとを実行させる、画像処理プログラムである。
【発明の効果】
【０００９】
本発明の実施形態によれば、入力画像に対応する出力画像を生成する場合に、写実性を向上できる画像処理装置、画像処理方法、及び画像処理プログラムを提供できる。
【図面の簡単な説明】
【００１０】
【図１】実施形態の画像処理システムの一例を示す図である。
【図２】実施形態の画像処理装置の一例を示すブロック図である。
【図３】可視関数を導出する処理の一例を示す図である。
【図４】実施形態の画像処理装置で使用される機械学習モデルの一例を示す図である。
【図５】実施形態の画像処理装置の動作の一例を示すフローチャートである。
【図６】実施形態の画像処理装置の動作の一例を示すフローチャートである。
【図７】ＣＧ人物データセットの一例を示す図である。
【図８】実施形態の画像処理装置による推定結果と従来手法との比較例を示す図である。
【図９】実施形態の画像処理装置による推定結果の一例を示す図である。
【図１０】実施形態の画像処理装置による推定結果の一例を示す図である。
【図１１】実施形態の画像処理装置による推定結果の一例を示す図である。
【発明を実施するための形態】
【００１１】
次に、本実施形態の画像処理装置、画像処理方法、及び画像処理プログラムを、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
また、本願でいう「ＸＸに基づく」とは、「少なくともＸＸに基づく」ことを意味し、ＸＸに加えて別の要素に基づく場合も含む。また、「ＸＸに基づく」とは、ＸＸを直接に用いる場合に限定されず、ＸＸに対して演算や加工が行われたものに基づく場合も含む。「ＸＸ」は、任意の要素（例えば、任意の情報）である。
【００１２】
（実施形態）
（画像処理システム）
以下、本発明の実施形態の画像処理システムを、図面を参照して説明する。
図１は、実施形態の画像処理システムの一例を示す図である。本実施形態の画像処理システムでは、端末装置は、サーバー装置へアクセスし、マスク画像付きの人物の全身画像（以下「教師画像」という）を、サーバー装置へ送信する。画像処理装置は、端末装置が送信するマスク画像付きの教師画像を、サーバー装置から取得し、取得した教師画像に基づいて、教師あり学習を行う。
また、端末装置は、ショッピングサイトなどのウェブサイトへアクセスし、画像（再照明を行う被写体が撮像されたマスク付きの全身画像）（以下「入力画像」という）を、サーバー装置へ送信する。画像処理装置１００は、端末装置が送信する入力画像を、サーバー装置から取得する。画像処理装置１００は、取得した入力画像から特徴量を抽出し、抽出した特徴量と、教師あり学習の学習結果とに基づいて、入力画像に対応する出力画像を生成する。
実施形態の画像処理システム１は、端末装置１０−１〜端末装置１０−ｎ（ｎは、ｎ＞０の整数）と、サーバー装置７０と、画像処理装置１００とを含む。これらの装置は、ネットワーク５０を介して互いに接続される。ネットワーク５０は、例えば、無線基地局、Ｗｉ−Ｆｉアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。なお、図１に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークＮＷは、一部にローカルなネットワークを含んでもよい。
以下、端末装置１０−１〜端末装置１０−ｎのうちの任意の端末装置を、端末装置１０と記載する。
【００１３】
端末装置１０は、ユーザによって使用される装置である。端末装置１０は、例えば、スマートフォンなどの携帯電話、タブレット端末、パーソナルコンピュータなどのコンピュータ装置である。例えば、端末装置１０は、ショッピングサイトなどのウェブサイト、メールサービス、ＳＮＳサービス、情報提供サービスなどにおいてユーザＩＤを登録し、登録したユーザＩＤに関連付けて画像を送信するのに利用される。
サーバー装置７０は、各種サービスを提供する。例えば、サーバー装置７０は、端末装置１０において起動されるウェブブラウザを介して、各種サービスを提供するためのウェブサイトを提供するウェブサーバー装置であってよい。また、サーバー装置７０は、所定のアプリケーションプログラムが起動（実行）された端末装置１０と通信を行うことで、各種情報の受け渡しを行うアプリケーションサーバー装置であってもよい。所定のアプリケーションプログラムが起動された端末装置１０には、サーバー装置７０との通信により、各種サービスを提供可能な画面が表示される。以下、説明を簡略化するために、サーバー装置７０がウェブサーバー装置である場合について説明を続ける。
例えば、サーバー装置７０は、サービスの提供前にユーザＩＤの認証を行い、ユーザの確認を行う。サーバー装置７０は、認証の結果、既にユーザＩＤが登録されたユーザであれば各種サービスを提供し、ユーザＩＤが登録されていないユーザであれば、ユーザＩＤが未登録であることを通知したり、ユーザＩＤの登録を促したりする。ユーザＩＤが未登録であることを受けて、ユーザが新規にユーザＩＤの登録した場合、サーバー装置７０は、新たに登録されたユーザＩＤを発行する。これによって、ユーザは新規にユーザＩＤを取得することができる。ユーザは、端末装置１０を操作することによって、登録したユーザＩＤに関連付けて、被写体を含む画像を、サーバー装置７０へ送信する。
【００１４】
画像処理装置１００は、教師あり学習を行う。例えば、画像処理装置１００は、教師画像として、マスク画像付きの人物の全身画像を取得する。例えば、画像処理装置１００は、端末装置１０が送信した教師画像を、サーバー装置７０から取得する。画像処理装置１００は、取得した教師画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを（自動で）推定する。ここで、光伝達ベクトルには、光の遮蔽情報が含まれる。以下、光伝達ベクトルに、光の遮蔽情報が含まれる場合について説明を続ける。
画像処理装置１００は、画素ごとに推定した反射率から反射率マップΛを作成し、画素ごとに推定した光伝達ベクトルから光伝達マップΨを作成する。画像処理装置１００は、作成した反射率マップΛと、作成した光伝達マップΨと、推定した光源情報Πとを特徴量とし、その特徴量が教師画像に対応することを学習する。
【００１５】
画像処理装置１００は、サーバー装置７０と通信を行って、サーバー装置７０が提供するサービスを利用するユーザのユーザＩＤを取得し、このユーザＩＤに関連付けて送信された入力画像（再照明を行う被写体が撮像されたマスク付きの全身画像）を取得する。画像処理装置１００は、取得した入力画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを（自動で）推定する。
画像処理装置１００は、画素ごとに推定した反射率から反射率マップΛを作成し、画素ごとに推定した光伝達ベクトルから光伝達マップΨを作成する。画像処理装置１００は、作成した反射率マップΛと、作成した光伝達マップΨと、推定した光源情報Πとを特徴量とし、その特徴量に基づいて、入力画像に対応する出力画像を生成する。画像処理装置１００は、生成した出力画像を出力する。
【００１６】
（画像処理装置１００）
図２は、実施形態の画像処理装置の一例を示すブロック図である。
画像処理装置１００は、通信部１０５と、記憶部１１０と、操作部１２０と、情報処理部１３０と、表示部１４０と、前記各構成要素を図２に示されているように電気的に接続するためのアドレスバスやデータバスなどのバスライン１５０とを備える。
通信部１０５は、通信モジュールによって実現される。通信部１０５は、ネットワーク５０を介して、サーバー装置７０などの外部の通信装置と通信する。具体的には、通信部１０５は、サーバー装置７０が送信した教師画像を受信し、受信した教師画像を、情報処理部１３０へ出力する。ここで、教師画像の一例は、市販の３Ｄスキャンされた人物のメッシュモデルをレンダリングして作成された画像である。市販の３Ｄ人物モデルの多くは、テクスチャとして光沢成分を含まず拡散反射成分しか持たない。このため、本実施形態では、反射率として、拡散反射成分を対象とした場合について説明する。市販されている３Ｄ人物モデルの数は限られており、実施形態で用いるモデルの数は訓練データとテストデータとを合わせても数百体しかない。衣服のバリエーションが無数にあることを考えると訓練データが足りないようにも思えるが、実際には、本実施形態で用意したデータを用いて学習することで、服の皺、脇や股などの光の遮蔽が生じやすい部位についても、光の遮蔽を考慮した陰影計算ができる。
また、通信部１０５は、サーバー装置７０が送信した入力画像を受信し、受信した入力画像を、情報処理部１３０へ出力する。また、通信部１０５は、情報処理部１３０が出力した出力画像を取得し、取得した出力画像を、サーバー装置７０へ送信する。
【００１７】
記憶部１１０は、例えば、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＨＤＤ（Hard Disk Drive）、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。記憶部１１０には、情報処理部１３０により実行されるプログラム１１１と、アプリ１１２と、反射率マップΛ１１３と、光源情報Π１１４と、光伝達マップΨ１１５とが記憶される。
【００１８】
アプリ１１２は、画像処理装置１００に、サーバー装置７０が送信した教師画像を取得させる。アプリ１１２は、画像処理装置１００に、取得させた教師画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定させる。アプリ１１２は、画像処理装置１００に、画素ごとに推定させた反射率から反射率マップΛを作成させ、画素ごとに推定させた光伝達ベクトルから光伝達マップΨを作成させる。アプリ１１２は、画像処理装置１００に、作成させた反射率マップΛと、作成させた光伝達マップΨと、推定させた光源情報Πとを特徴量とさせ、その特徴量が教師画像に対応することを学習させる。
【００１９】
アプリ１１２は、画像処理装置１００に、サーバー装置７０が送信した入力画像を取得させる。アプリ１１２は、画像処理装置１００に、取得させた入力画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定させる。アプリ１１２は、画像処理装置１００に、画素ごとに推定させた反射率から反射率マップΛを作成させ、画素ごとに推定させた光伝達ベクトルから光伝達マップΨを作成させる。アプリ１１２は、画像処理装置１００に、画素ごとに作成させた反射率マップΛと、画素ごとに作成させた光伝達マップΨと、推定させた光源情報Πとを特徴量とさせ、その特徴量に基づいて、入力画像に対応する出力画像を生成させる。
反射率マップΛ１１３は、教師画像の反射率を、画素ごとに表したマップである。
光源情報Π１１４は、教師画像の照明状態を示す情報である。
光伝達マップΨ１１５は、物体の幾何的な情報が記録された光伝達ベクトルを、画素ごとに表したマップである。光伝達マップΨ１１５と、光伝達ベクトルとは、光源の情報とは分離されており、光源に依存しない。物体の幾何的な情報には、光が遮蔽されるか否かを示す情報である光の遮蔽情報が含まれる。光伝達マップΨ１１５と、光伝達ベクトルとが、光源の情報とは分離されていることによって、照明計算を正しく行うことができる。
【００２０】
操作部１２０は、例えば、タッチパネルなどによって構成され、表示部１４０に表示される画面に対するタッチ操作を検出し、タッチ操作の検出結果を、情報処理部１３０へ出力する。
【００２１】
情報処理部１３０の全部または一部は、例えば、ＣＰＵ（Central Processing Unit）などのプロセッサが記憶部１１０に格納されたプログラム１１１を実行することにより実現される機能部（以下、ソフトウェア機能部と称する）である。なお、情報処理部１３０の全部または一部は、ＬＳＩ（Large Scale Integration）、ＡＳＩＣ（Application Specific Integrated Circuit）、またはＦＰＧＡ（Field-Programmable Gate Array）などのハードウェアにより実現されてもよく、ソフトウェア機能部とハードウェアとの組み合わせによって実現されてもよい。
情報処理部１３０は、例えば、取得部１３１と、分析部１３２と、機械学習部１３３と、生成部１３４と、出力部１３５とを備える。
【００２２】
取得部１３１は、通信部１０５が出力した教師画像を取得し、取得した教師画像を、分析部１３２へ出力する。また、取得部１３１は、通信部１０５が出力した入力画像を取得し、取得した入力画像を、分析部１３２へ出力する。
分析部１３２は、取得部１３１が出力した教師画像を取得し、取得した教師画像を分析することによって、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定する。分析部１３２は、画素ごとに推定した反射率から反射率マップΛを作成し、画素ごとに推定した光伝達ベクトルから光伝達マップΨを作成する。分析部１３２は、作成した反射率マップΛを反射率マップΛ１１３に記憶させ、作成した光伝達マップΨを光伝達マップΨ１１５に記憶させ、推定した光源情報Πを光源情報Π１１４に記憶させる。分析部１３２は、反射率マップΛと光伝達マップΨと光源情報Πとを、機械学習部１３３へ出力する。
ここで、分析部１３２が、光伝達マップΨを作成する処理について説明する。分析部１３２は、球面調和関数（ＳＨ）に基づいて、光の遮蔽を考慮して、照明計算を行う。
まず、光の遮蔽を考慮しないで、照明計算を行う場合について説明する。
（１）光の遮蔽を考慮しない場合
光の遮蔽や相互反射を考慮しない場合、物体表面上の点ｐにおいて、単位法線ベクトルをｎとすると、式(１)に示されるように、放射照度Ｅ（ｎ）は法線ｎが定義する半球Ω（ｎ）のあらゆる方向ωｉから差し込む放射輝度Ｌ（ωｉ）の積分によって計算される。
【００２３】
【数１】
2019219928.tif 000003
【００２４】
なお、位置ｐに関する依存性は単純化のために省略した。入射する放射輝度の分布Ｌ（ωｉ）にコサイン減衰項ｍａｘ（ｎ，ωｉ，０）をかけたものを球面調和関数に射影する。方向ベクトルωと仰角θと方位角φとを用いてω＝（θ，φ）とパラメータ表示すると、式（２）、式（３）が得られる。
【００２５】
【数２】
2019219928.tif 000004
【００２６】
式（２）において、Ｙｌ，ｍは球面調和関数である（ただし、ｌ≧０，−ｌ≦ｍ≦ｌ，かつｍ≦２）。式（２）と式（３）とにおいて、Ｌｌ，ｍとＡｌはそれぞれ、照明とコサイン減衰項の係数である。式（１）の積分を書き換えると、式（４）となる。
【００２７】
【数３】
2019219928.tif 000005
【００２８】
ここで、＾Ａｌは、以下のように表される。
【００２９】
【数４】
2019219928.tif 000006
【００３０】
Ｙｌ，ｍは、法線ベクトルｎ＝（ｘ，ｙ，ｚ）Ｔの各成分ｘ，ｙ，ｚの多項式によって表現できる。係数列｛Ｌｌ，ｍ｝をベクトルＬで、基底関数列｛＾ＡｌＹｌｍ｝をベクトル＾Ｙで表現すると、放射照度Ｅはベクトルの内積で計算できる。
【００３１】
Ｅ＝＾ＹＴＬ      （５）
【００３２】
次に、光の遮蔽を考慮して照明計算を行う場合について説明する。
（２）光の遮蔽を考慮する場合
（１）光の遮蔽を考慮しない場合で述べた通り、本来は光が遮られて暗くなるべきところが不自然に明るくなる。式（１）で光の遮蔽を考慮するために、本実施形態では、可視関数Ｖ（ωｉ）を導入する。
【００３３】
【数５】
2019219928.tif 000007
【００３４】
式（６）において、Ｖ（ωｉ）は、入射方向ωｉの光が遮られれば０であり、遮られなければ１である。
図３は、可視関数Ｖ（ωｉ）を導出する処理の一例を示す図である。図３に示されるように、十分に離れたところ（無限遠）から、物体に光を放射することを考える。この場合、十分に離れたところ（無限遠）から届く光は平行光とみなすことができる。周囲から届く光（環境光源）は無数の平行光からなる。本実施形態では、平行光の入射方向ωｉについて、物体表面のすべての点ｐ（光伝達マップのすべての画素）における、方向ωｉに関する可視関数Ｖ（ωｉ，ｐ）を並列で求める。つまり、光源方向を一つ選ぶたびに、物体表面のすべての点で、その方向に関する可視関数を一度にすべて求める。これを、光源方向を変えながら繰り返す。光源方向は、乱数に基づいて、ランダムに選択されてもよい。図３に示される例では、光源方向ＬＤ−１が選択され、物体表面の複数の点ｐ−１、ｐ−２、ｐ−３、ｐ−４、ｐ−５の各々について、光源方向ＬＤ−１からの光が、複数の点ｐ−１、ｐ−２、ｐ−３、ｐ−４、ｐ−５の各々に届くか否かを示す可視関数が求められる。
グラフィクス用ハードウェア（ＧＰＵ）を用いる従来の方法では、物体表面の各点で、可視関数を計算するために物体形状を描画する必要があった。この方法では物体表面の点の数が膨大になると、物体形状の描画回数が増え、計算に時間がかかる。具体的には、仮に１０２４×１０２４画素（のマスク内の）各画素で計算すると、マスクが画像の半分を覆っているとしても５２４２８８画素あり、その画素数の分だけ物体形状を描画する必要がある。また、物体表面上の各点でランダムな方向に向かってレイトレーシングして可視判定を行う場合には、効率が悪かった。
一方、本実施形態では、可視関数を評価するために物体形状を描画するのは光源方向一つ毎でよい。実際に考慮する光源方向の数を６４２方向と仮定した場合、上記と比べて格段に少なく、計算時間を短縮できる。図２に戻り説明を続ける。
ＰＲＴの枠組みでは、この可視関数Ｖ（ωｉ）とコサイン減衰項とともに前計算し、ＳＨの基底関数に投影して、係数ベクトルの内積による高速な照明条件を実現する。ベクトルＴを、可視関数とコサイン減衰項を基底関数に投影した際の係数からなるベクトルとすると、放射照度Ｅは次のように計算できる。
【００３５】
Ｅ＝ＴＴＬ      （７）
【００３６】
ここで、光伝達ベクトルはベクトルＴであり、光伝達ベクトルを各画素に持つ画像を光伝達マップΨと呼ぶ。
また、分析部１３２は、取得部１３１が出力した入力画像を取得し、取得した入力画像を分析することによって、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定する。分析部１３２は、推定した反射率から反射率マップΛを作成し、推定した光伝達ベクトルから光伝達マップΨを作成する。分析部１３２は、反射率マップΛと光伝達マップΨと光源情報Πとを、生成部１３４へ出力する。
【００３７】
機械学習部１３３は、分析部１３２が出力した反射率マップΛと光伝達マップΨと光源情報Πとを取得し、取得した反射率マップΛと光伝達マップΨと光源情報Πとを特徴量とし、その特徴量が教師画像であることを学習する。本実施形態では、機械学習モデルの一例として、畳み込みニューラルネットワーク(Convolutional neural network: CNN)を使用した場合について説明を続ける。
【００３８】
ここで、機械学習部１３３がＣＮＮによる機械学習を行う際に使用する損失関数について説明する。
人物画像データセットＤＨは、各人物モデルに対し、画像中で人物が写っている部分を表す二値マスク、反射率マップΛ、光伝達マップΨからなる。二値マスクと、反射率マップΛと、光伝達マップΨとは、以下のように表される。
【００３９】
【数６】
2019219928.tif 000008
【００４０】
一方、光源データセットＤＬは、光源ごとに照明情報を持ち、これはＲＧＢのチャンネルごとのＳＨの９係数からなる。照明情報は、以下のように表される。
【００４１】
【数７】
2019219928.tif 000009
【００４２】
なお、二値マスクは正解データおよびＣＮＮの出力に乗算してから損失関数を計算するが（例えばＭ３ｊ*ΛｊやＭ９ｊ*Ψｊで、*は要素ごとの乗算を表す）、以下の説明では単純化のために二値マスクの乗算は省略する。
本実施形態で使用するＣＮＮは、反射率マップΛと、光伝達マップΨと、光源情報Πとを推定する。ＣＮＮへの入力は、マスク乗算済の人物全身画像Ｉｊ，ｋ＝Λｊ*（ΨｊΠｋ）である。本実施形態では、機械学習部１３３は、損失関数として、反射率マップΛと、法線マップと、光源情報Πとのそれぞれについて正解とＬ２損失、そしてそれらの積である人物全身画像の推定値の正解とＬ２損失という４種類の損失関数について、Ｌ１損失を導出し、さらに以下の損失関数を含め、合計で１５種類の損失関数を計算する。
【００４３】
・反射率マップΛおよび光伝達マップΨに関するＬ１  ｔｏｔａｌ  ｖａｒｉａｔｉｏｎ（ＴＶ）損失（２通り）
・陰影マップ（つまりΨｊΠｋ）に関して、光伝達マップΨと光源情報Πを、一方を推定値とし他方を正解とした場合および両方を推定値とした場合のＬ１損失（３通り）
・反射率マップΛ、光伝達マップΨおよび光源情報Πの３つの積（つまりΛｊ*（ΨｊΠｋ））に対し、そのうちの１つまたは２つを推定値にした場合のＬ１損失（６通り）
なお、それぞれの損失関数の重みは全て１とした。
このように、推定値だけでなく正解も含めた積に対してＬ１損失を計算することは、推定値に対する重み付けを行っていることに相当する。損失関数の種類を増やすことによって、より鮮明な推定結果を得ることができる。
【００４４】
本実施形態で使用するＣＮＮは、推定した反射率(アルベド)マップΛと、光伝達マップΨと、光源Πとの３つを掛け合わせなくても、掛け合わせる途中のデータについても、正解と一致しているかどうかを測ることができる。例えば、ＣＮＮでは、光伝達マップΨと光源Πとを掛け合わせることで、服や肌の色や模様のついていない、純粋に形状だけに依存した陰影マップを取得する。
この取得した陰影マップを、正解の光伝達マップΨと正解の光源Πとで作ることによって、正解の陰影マップが得られる。これと推定したデータとを比較するときに、光伝達マップΨと光源Πとのうち、どちらか一方が正解で他方が推定したもの、あるいは両方とも推定したデータに対して、正解との誤差を測ることによって、３通りの損失関数が得られる。このようにして組み合わせを考えると、陰影マップについて３通り、入力画像の復元に関して６通り(３つとも推定した場合を除く)の組み合わせが得られる。
この他に、光伝達マップΨと、反射率マップΛとについてのＬ１  ＴＶ  ｌｏｓｓで、計２つ、反射率マップΛと、光伝達マップΨと、光源および入力画像をすべて推定データで復元する場合を考えると計４つ、合計で１５種類の損失関数を導出する。
【００４５】
生成部１３４は、分析部１３２が出力した反射率マップΛと光伝達マップΨと光源情報Πとを取得し、取得した反射率マップΛと光伝達マップΨと光源情報Πとを特徴量とし、その特徴量に基づいて、出力画像を生成する。生成部１３４は、生成した出力画像を、出力部１３５へ出力する。
出力部１３５は、生成部１３４が出力した出力画像を取得し、取得した出力画像を、通信部１０５へ出力する。
【００４６】
次に、本実施形態の画像処理装置１００で用いる機械学習モデルについて説明する。
図４は、本実施形態の画像処理装置で使用する機械学習モデルの一例を示す図である。
本実施形態の画像処理装置１００で使用する機械学習モデル２００の一例は、前述したように、ＣＮＮである。
機械学習モデル２００は、乗算部２０１と、エンコーダ２０２と、反射率マップデコーダー２０３と、光伝達マップデコーダー２０６と、畳み込み部（Ｃｏｎｖ．）２１０とによって表される。反射率マップデコーダー２０３は、ＲｅｓＮｅｔブロック２０４と、逆畳み込み部（Ｄｅｃｏｎｖ．）２０５とを含む。光伝達マップデコーダー２０６は、ＲｅｓＮｅｔブロック２０７と、逆畳み込み部（Ｄｅｃｏｎｖ．）２０８とを含む。
なお、畳み込み部２１０と、ＲｅｓＮｅｔブロック２０４と、逆畳み込み部２０５と、ＲｅｓＮｅｔブロック２０７と、逆畳み込み部２０８との各々の直後には、データが入出力される最初と最後の層を除きバッチノーマライゼーション（ｂａｔｃｈ  ｎｏｒｍａｌｉｚａｔｉｏｎ）およびＲｅＬＵを適用する。また、逆畳み込み部２０５と、逆畳み込み部２０８との各々の最初の逆畳み込み層各３層の直後には確率０．５のドロップアウトを適用する。
【００４７】
入力画像２１１として、人物全身画像Ｉ２１２と、二値マスクＭ２１３とが乗算部２０１へ出力される。乗算部２０１は、人物全身画像Ｉ２１２と二値マスクＭ２１３とを乗算し、乗算した結果を、エンコーダ２０２へ出力する。エンコーダ２０２と逆畳み込み部２０５との間と、エンコーダ２０２と逆畳み込み部２０８との間とは、スキップコネクション（ｓｋｉｐ−ｃｏｎｎｅｃｔｉｏｎ）によって連結されている。
エンコーダ２０２の一例は、畳み込み層７層で構成される。エンコーダ２０２は、乗算部２０１が出力した人物全身画像Ｉ２１２と二値マスクＭ２１３とを乗算した結果に対して、フィルタを適用する。エンコーダ２０２は、フィルタを適用した結果を、反射率マップデコーダー２０３と、光伝達マップデコーダー２０６と、連結部２０９とへ出力する。
【００４８】
反射率マップデコーダー２０３では、エンコーダ２０２が出力したフィルタを適用した結果は、ＲｅｓＮｅｔブロック２０４へ出力される。ＲｅｓＮｅｔブロック２０４は、２つのＲｅｓＮｅｔブロックを含み、２つのＲｅｓＮｅｔブロックの各々は畳み込み計算を行う。ＲｅｓＮｅｔブロック２０４は、畳み込み計算を行った結果を、連結部２０９と、逆畳み込み部２０５とへ出力する。
逆畳み込み部２０５は、ＲｅｓＮｅｔブロック２０４が出力した畳み込み計算を行った結果を取得し、取得した畳み込み計算を行った結果に対して７層の逆畳み込みを行うことによって、反射率マップ〜Λ２２１を導出する。このように構成することによって、反射率マップデコーダー２０３は、反射率マップΛを推定できる。
【００４９】
光伝達マップデコーダー２０６では、エンコーダ２０２が出力したフィルタを適用した結果は、ＲｅｓＮｅｔブロック２０７へ出力される。ＲｅｓＮｅｔブロック２０７は、２つのＲｅｓＮｅｔブロックを含み、２つのＲｅｓＮｅｔブロックの各々は畳み込み計算を行う。ＲｅｓＮｅｔブロック２０７は、畳み込み計算を行った結果を、連結部２０９と、逆畳み込み部２０８とへ出力する。
逆畳み込み部２０８は、ＲｅｓＮｅｔブロック２０７が出力した畳み込み計算を行った結果を取得し、取得した畳み込み計算を行った結果に対して７層の逆畳み込みを行うことによって、光伝達マップ〜Ψ２２３を導出する。このように構成することによって、光伝達マップデコーダー２０６は、光伝達マップΨを推定できる。
【００５０】
連結部２０９は、エンコーダ２０２が出力したフィルタを適用した結果と、ＲｅｓＮｅｔブロック２０４が出力した畳み込み計算を行った結果と、ＲｅｓＮｅｔブロック２０７が出力した畳み込み計算を行った結果とを取得し、取得したフィルタを適用した結果と、畳み込み計算を行った結果と、畳み込み計算を行った結果とを連結する。連結部２０９は、フィルタを適用した結果と、畳み込み計算を行った結果と、畳み込み計算を行った結果とを連結した結果を、畳み込み部２１０へ出力する。
畳み込み部２１０は、連結部２０９が出力した連結した結果を、畳み込む。具体的には、畳み込み部２１０は、空間解像度が１×１、チャンネル数が２７になるまで畳み込むことによって、光源情報〜Π２２２を導出する。
【００５１】
逆畳み込み部２０５は、導出した反射率マップ〜Λ２２１を、乗算部２２４へ出力する。畳み込み部２１０は、導出した光源情報〜Π２２２を、乗算部２２４へ出力する。逆畳み込み部２０８は、導出した光伝達マップ〜Ψ２２３を、乗算部２２４へ出力する。乗算部２２４は、逆畳み込み部２０５が出力した反射率マップ〜Λと、畳み込み部２１０が出力した光源情報〜Π２２２と、逆畳み込み部２０８が出力した光伝達マップ〜Ψ２２３とを取得し、取得した反射率マップ〜Λ２２１と、光源情報〜Π２２２と、光伝達マップ〜Ψ２２３とを乗算することによって、人物全身画像〜Ｉを導出する。このように構成することによって、画像処理装置１００は、入力画像２１１を再現した画像を導出できる。
【００５２】
（画像処理装置１００の動作）
本実施形態の画像処理装置１００の動作について、教師あり学習を行う場合と、教師あり学習の結果に基づいて、入力画像に対応する出力画像を生成する場合とに分けて説明する。
図５は、本実施形態の画像処理装置の動作の一例を示すフローチャートである。図５に示される例では、教師あり学習を行う処理について示される。
（ステップＳ１）
画像処理装置１００の通信部１０５は、サーバー装置７０が送信した教師画像を受信し、受信した教師画像を、情報処理部１３０へ出力する。情報処理部１３０の取得部１３１は、通信部１０５が出力した教師画像を取得し、取得した教師画像を、分析部１３２へ出力する。
（ステップＳ２）
分析部１３２は、取得部１３１が出力した教師画像を取得し、取得した教師画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定する。
（ステップＳ３）
分析部１３２は、画素ごとに推定した反射率から反射率マップΛを作成し、画素ごとに推定した光伝達ベクトルから光伝達マップΨを作成する。分析部１３２は、作成した反射率マップΛと、光伝達マップΨと、推定した光源情報Πとを、機械学習部１３３へ出力する。
（ステップＳ４）
機械学習部１３３は、分析部１３２が出力した反射率マップΛと、光伝達マップΨと、光源情報Πとを取得し、取得した反射率マップΛと、光伝達マップΨと、光源情報Πとを特徴量とし、その特徴量が教師画像に対応することを学習する。
【００５３】
図６は、本実施形態の画像処理装置の動作の一例を示すフローチャートである。図６に示される例では、教師あり学習の結果に基づいて、入力画像に対応する出力画像を生成する処理について示される。
（ステップＳ１１）
画像処理装置１００の通信部１０５は、サーバー装置７０が送信した入力画像を受信し、受信した入力画像を、情報処理部１３０へ出力する。情報処理部１３０の取得部１３１は、通信部１０５が出力した入力画像を取得し、取得した入力画像を、分析部１３２へ出力する。
（ステップＳ１２）
分析部１３２は、取得部１３１が出力した入力画像を取得し、取得した入力画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定する。
（ステップＳ１３）
分析部１３２は、画素ごとに推定した反射率から反射率マップ〜Λを作成し、画素ごとに推定した光伝達ベクトルから光伝達マップ〜Ψを作成する。分析部１３２は、作成した反射率マップ〜Λと、光伝達マップ〜Ψと、推定した光源情報〜Πとを、生成部１３４へ出力する。
（ステップＳ１４）
生成部１３４は、分析部１３２が出力した反射率マップ〜Λと、光伝達マップ〜Ψと、光源情報〜Πとを取得し、取得した反射率マップ〜Λと、光伝達マップ〜Ψと、光源情報〜Πとに基づいて、入力画像に対応する出力画像を生成する。
【００５４】
（本実施形態の手法と従来の手法との比較）
光伝達ベクトルに、光の遮蔽情報を含めた場合（以下「本手法」という）と、含めない場合（以下「従来手法」という）とについて、比較を行った。
最初に、訓練データ（教師画像）およびテストデータ（入力画像）として用いる、３Ｄ人物モデルを用いたＣＧ人物画像データセットと環境光源データセットとを作成した。
ＣＧ人物画像データセットは、ＧＰＵベースレンダラによって生成した。ＣＧ人物画像データベースは、各３Ｄ人物モデルについて、二値マスク、反射率マップ、法線マップ、光伝達マップからなる。本手法では法線マップは必要ないが、法線マップは、従来手法での訓練データとテストデータとに使用する。
図７は、ＣＧ人物データセットの一例を示す図である。図７の（１）は反射率マップの一例を示し、図７の（２）は二値マスクの一例を示し、図７の（３）は法線マップの一例を示し、図７の（４）は光伝達マップの一例を示す。
データの取得先の一例は、ＢＵＦＦデータセットおよび商用ウェブサイトである。ここでは、３４５体分を用意し、そのうち２７６体分を訓練データ、６９体分をテストデータとした。なお、入手した３Ｄ人物モデルの多くは光沢反射成分のテクスチャが提供されていないため、ここでは、拡散反射を扱った場合について説明を続ける。ただし、３Ｄスキャン時に細かい皺などによる陰影が完全には除去されていないため、正解反射率マップにも遮蔽による陰影が含まれている。
【００５５】
本実施形態では、訓練データのばらつきを抑えて、ＣＮＮの推定精度を高めるため、３Ｄ人物モデルは、立った姿勢とし、座った姿勢のものは除外した。そして、描画位置は画像の中央とし、上下に画像の縦幅５％分の余白を空けて描画した。なお、推定を行う際も、入力画像の二値マスクを利用して、上下に画像の縦幅５％分の余白が空くように整形してからＣＮＮに入力する。
光源データセットは、Ｌａｖａｌ  Ｉｎｄｏｏｒ  ＨＤＲデータセットから取得したパノラマＨＤＲ形式の環境マップを、ＳＨの係数に変換することで作成した。環境マップによっては暗すぎたり明るすぎたりするものがあるため、明るさの調整を行った。まず、視点座標系の法線ベクトル（０，０，１）Ｔから解析的に光伝達ベクトルを計算し、それと各環境マップのＳＨの係数を乗算して、参照用の輝度値を計算する。その参照用の輝度値が閾値０．２よりも暗すぎる環境マップは除外した上で、［０．７，０．９］の範囲に収まるように環境マップの輝度値をスケーリングした。さらに、バリエーションを増やすため、環境マップを、鉛直方向を軸として１０度ずつ３５回回転させた。その上で、冗長度を減らすため、ｋ−ｍｅａｎｓクラスタリングによって数を減らし、不自然な光源を取り除いた。最終的に、合計５０個の光源を用意し、そのうちランダムに選んだ４０個を訓練データ、１０個をテストデータとした。
【００５６】
本手法を、Ｐｙｔｈｏｎおよびｃｈａｉｎｅｒを用いて実装し、教師あり学習を行い、教師あり学習の結果に基づいて、推論することによって、入力画像に対応する出力画像を生成した。最適化には、Ａｄａｍを使用し、学習率は０．０００２に固定し、バッチサイズは１とした。訓練に要した時間は、１つのＧＰＵを使用して、１０２４×１０２４画素のデータを入力した場合、１エポック当たり約３時間であった。本手法として、２０エポックまで学習したものを使用した。推論に要した時間は、１０２４×１０２４画素の入力１つ当たり０．４３秒程度である。
【００５７】
光伝達ベクトルに、光の遮蔽情報が含まれることによる効果を明らかにするために、本手法と、光伝達マップの代わりに、法線マップを推定した従来手法との比較を行った。
従来手法の機械学習モデルは、本手法の機械学習モデルとは異なるが、本手法の機械学習モデルの方が、入力画像の解像度、層数、中間層のチャンネル数のいずれについても従来手法の機械学習モデルよりも規模が大きく、推定の精度が劣らないと想定される。
また、２つ目の比較対象として、本手法で最適化する損失関数を１５種類から４種類に減少させたものも用意した。定量的比較として、全テストデータに対する各手法の推定結果の、マスク内の平均二乗誤差平方根（Ｒｏｏｔ  Ｍｅａｎ  Ｓｑｕａｒｅ  Ｅｒｒｏｒ：  ＲＭＳＥ）を、図８に示す。法線マップについてのＲＭＳＥは、従来手法の結果で計算している。
【００５８】
光源情報を除くと、共通する要素ではいずれも従来手法の結果よりも、本手法（損失関数４種類）がよく、さらに本手法（損失関数１５種類）が最もよい。定性的比較として、テストデータに対する各手法での推定結果を図９に示す。
図９は、実施形態の画像処理装置による推定結果の一例を示す図である。図９に示される例では、ＣＧテストデータを用いた場合の、各手法において、正解と推定結果との比較が示される。
図９の（１）は入力画像の一例であり、図９の（２）は正解反射率マップの一例であり、図９の（３）は従来手法による反射率マップの一例であり、図９の（４）は本手法（損失関数４種類）による反射率マップの一例であり、図９の（５）は本手法（損失関数１５種類）による反射率マップの一例である。図９の（６）は光源であり、上から順に正解、従来手法による光源、本手法（損失関数４種類）による光源、本手法（損失関数１５種類）による光源である。図９の（７）は正解法線マップの一例であり、図９の（８）は従来手法による法線マップの一例であり、図９の（９）は正解陰影マップの一例であり、図９の（１０）は従来手法による陰影マップの一例であり、図９の（１１）は本手法（損失関数４種類）による陰影マップの一例であり、図９の（１２）は本手法（損失関数１５種類）による陰影マップの一例である。
図９によれば、定量的比較と符号するように、反射率マップと陰影マップとにおいて、従来手法、本手法（損失関数４種類）、本手法（損失関数１５種類）の順でよくなっていることが分かる。従来手法の陰影マップでは、首や脇などの部分の遮蔽を法線マップで再現できない分、反射率マップの該当箇所が暗くなってしまっている。本手法（損失関数４種類）と、本手法（損失関数１５種類）とを比較すると、本手法（損失関数１５種類）の方が、陰影マップがより先鋭になっていることが分かる。
【００５９】
また、同様に、実写の人物画像を入力として、前述した３つの手法を用いて推定した結果を、図１０に示す。
図１０は、実施形態の画像処理装置による推定結果の一例を示す図である。図１０に示される例では、実写画像を用いた場合の、各手法において、正解と推定結果との比較が示される。図１０の（１）は入力画像であり、図１０の（２）は従来手法による反射率マップの一例であり、図１０の（３）は本手法（損失関数４種類）による反射率マップの一例であり、図１０の（４）は本手法（損失関数１５種類）による反射率マップの一例である。図１０の（５）は光源であり、上から順に、従来手法による光源、本手法（損失関数４種類）による光源、本手法（損失関数１５種類）による光源である。図１０の（６）は従来手法による陰影マップの一例であり、図１０の（７）は本手法（損失関数４種類）による陰影マップの一例であり、図１０の（８）は本手法（損失関数１５種類）による陰影マップの一例である。
図１０の結果については、テストデータを用いた図９の結果と同様に、従来手法で推定した陰影マップでは平坦なレリーフに凹凸がついているように見える一方、本手法（損失関数４種類）と、本手法（損失関数１５種類）とでは、遮蔽による陰影が観察できる。
また、２つの人物画像についてそれぞれ同時推定を行い、光源情報を入れ替えて再照明することで、それぞれ互いの照明環境下での見た目を再現した。
図１１は、実施形態の画像処理装置による推定結果の一例を示す図である。図１０に示される例では、推定した光源情報を互いに入れ替えて再照明を行った結果を示す。図１０によれば、推定した反射率マップ、光伝達マップ、光源情報の精度が従来よりも向上できるため、全て正解データを用いて計算した結果と見比べてもあまり違いが見られない。
【００６０】
前述した実施形態では、端末装置１０からサーバー装置７０と経由して、画像処理装置１００へ、画像が送信される場合について説明したが、この限りでない。例えば、画像が、画像処理装置１００へ直接入力されてもよい。
前述した実施形態において、端末装置１０と画像処理装置１００とが同一の装置であってもよいし、サーバー装置７０と画像処理装置１００とが同一の装置であってもよい。
前述した実施形態では、端末装置１０が送信した入力画像（再照明を行う被写体が撮影されたマスク付きの全身画像）を、画像処理装置１００が取得する場合について説明したが、この限りでない。例えば、端末装置１０は、再照明を行う被写体が撮影された全身画像を送信し、画像処理装置１００は、端末装置１０が送信した再照明を行う被写体が撮影された全身画像を取得し、取得した全身画像に基づいて、マスクを推定してもよい。
前述した実施形態では、反射率として、拡散反射成分を対象とした場合について説明したが、この限りでない。例えば、拡散反射成分だけでなく光沢を含む鏡面反射成分を対象とした場合についても適用できる。この場合、鏡面反射に関する反射率マップについて教師付き学習が行われ、教師付き学習の学習結果に基づいて、入力画像の鏡面反射成分が推定される。
前述した実施形態では、機械学習モデルの一例として、畳み込みニューラルネットワークを使用した場合について説明したが、この例に限られない。例えば、再起型ニューラルネットワークなどの一般的な機械学習モデルを使用してもよい。
前述した実施形態では、光源および光伝達ベクトルの表現方法として、ＳＨの２次の９係数を使用した場合について説明したが、この例に限られない。例えば、ＳＨの１次以下、３次以上でもよく、係数のすべてを使用してもよく、係数の一部のみを使用してもよい。
【００６１】
前述した実施形態では、光源および光伝達ベクトルの表現方法として、ＳＨについて説明したが、この限りでない。例えば、Ｈａａｒウェーブレット、球面ガウス関数などで、光源および光伝達ベクトルを表現してもよい。
前述した実施形態では、可視関数Ｖ（ωｉ）が、物体表面の複数の点ｐ−１、ｐ−２、ｐ−３、ｐ−４、ｐ−５の各々について、光源方向ＬＤ−１からの光が、複数の点ｐ−１、ｐ−２、ｐ−３、ｐ−４、ｐ−５の各々に届くか否かに基づいて導出される場合について、説明したがこの例に限られない。例えば、可視関数Ｖ（ωｉ）が、物体表面の点（画素）毎且つ光源ＬＳが出射する光の方向毎に、光が届くか否かを判定することによって導出されてもよい。
前述した実施形態では、光源情報〜Πが入力画像に含まれる被写体に基づいて、推定される場合について説明したが、この例に限られない。例えば、光源情報〜Πが、背景の情報(建物の陰影など)に基づいて、推定されてもよい。つまり、光源情報〜Πが、背景を含む入力画像に基づいて、推定されてもよい。
前述した実施形態では、機械学習モデルとは、機械学習モデルによって、入力画像に基づいて推定される光源情報Πと、反射率マップΛと、光伝達マップΨとのいずれか又はいずれか同士の組み合わせから得られる画像と、入力画像とを比較することによって学習されたものである場合について説明したが、この例に限られない。例えば、機械学習モデルによって、入力画像に基づいて推定される光源情報Πと、反射率マップΛと、光伝達マップΨとのいずれか又はいずれか同士の組み合わせから得られる画像と、入力画像以外の所定の正解画像とを比較することによって学習されたものであってもよい。具体的には、光源と光伝達マップをかけ合わせると（反射率マップに含まれるような色・模様を含まない)陰影マップが得られ、これをＣＧで生成し、機械学習モデルの出力（同じように推定された光源と光伝達マップを掛け合わせたもの)とを比較してもよい。
前述した実施形態では、画像処理装置１００が、取得した教師画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定する場合について説明したが、この例に限られない。例えば、画像処理装置１００が、取得した教師画像から、複数の画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定するようにしてもよい。
前述した実施形態では、画像処理装置１００が、取得した入力画像から光源情報を推定する場合について説明したが、この例に限られない。例えば、画像処理装置１００は、外部から光源情報を取得し、取得した光源情報に基づいて、出力画像を生成してもよい。このように構成することによって、入力画像に含まれる被写体を再照明した再照明画像を生成できる。
【００６２】
前述した実施形態では、１５種類の損失関数について説明したが、この例に限られない。例えば、前述した１５種類の損失関数に加え、又は前述した１５種類の損失関数の代わりに以下の損失関数を使用してもよい。具体的には、ＴＶ  ｌｏｓｓ  の代わりに、光伝達マップと、反射率マップとについて、推定したものを´をつけて表記した場合に、ｘ方向の勾配演算子、ｙ方向の勾配演算子を、∇ｘ、∇ｙで表すと、式（Ａ）と式（Ｂ）とのように、勾配に関して正解と一致するように、損失関数を使用してもよい。
【００６３】
｜∇ｘΛ−∇ｘΛ´｜＋｜∇ｙΛ−∇ｙΛ´｜      （Ａ）
【００６４】
｜∇ｘψ−∇ｘψ´｜＋｜∇ｙψ−∇ｙψ´｜      （Ｂ）
【００６５】
また、∇ｘや∇ｙを計算する前に、３ｘ３などの平滑化フィルタを掛けた上で、∇ｘや∇ｙを計算してもよい。具体的には、平滑化フィルタをＨとした場合に、式（Ｃ）と式（Ｄ）とを導出する。
【００６６】
｜∇ｘＨΛ−∇ｘＨΛ´｜＋｜∇ｙＨΛ−∇ｙＨΛ´｜      （Ｃ）
【００６７】
｜∇ｘＨψ−∇ｘＨψ´｜＋｜∇ｙＨψ−∇ｙＨψ´｜      （Ｄ）
【００６８】
この場合、実際の計算の順序としては、∇ｘＨなどを掛け合わせたもの、つまり平滑化カーネルのｘ，ｙ方向の微分を計算してから畳み込むことになる。
本実施形態の画像処理装置１００によれば、画像処理装置１００は、単視点で撮影された人物の全身画像の再照明という新しい問題に対し、反射率と光源情報とに加え、再照明可能な形での光の遮蔽情報を推定できる。具体的には、光の遮蔽情報を、球面調和関数（ＳＨ）の係数として表現し、球面調和関数の係数として表現された光の遮蔽情報を推定する。このように構成することによって、光の遮蔽を考慮しない場合と比較して、写実的な再照明を実現できる。
また、画素単位でカラーチャンネルごとに９次元ベクトルの内積計算を行うのみなので高速である。実写の人物画像を入力した場合も含め、尤もらしい再照明を行うことができる。
【００６９】
＜構成例＞
一構成例として、入力画像を取得する取得部と、光源からの照明状態を示す情報である光源情報（実施形態では、光源情報Π）と、入力画像に含まれる被写体の反射率として入力画像に基づいて推定された反射率情報（実施形態では、反射率マップΛ）と、入力画像に含まれる被写体からの光の伝達状態として入力画像と光源からの光が被写体に届くか否かを示す可視情報（実施形態では、可視情報Ｖ（ωｉ））とに基づいて推定された光伝達情報（実施形態では、光伝達マップΨ）とに基づいて、入力画像に対応する出力画像を生成する生成部と、生成部が生成した出力画像を出力する出力部とを備える、画像処理装置。
一構成例として、光源情報とは、入力画像に基づいて推定されたものである。
一構成例として、出力画像とは、光源情報が示す照明状態に基づいて、入力画像に含まれる被写体を再照明した再照明画像である。
一構成例として、反射率情報と光伝達情報とは、機械学習モデル（実施形態では、ＣＮＮ）によって、入力画像に基づいて推定されたものである。
一構成例として、機械学習モデルとは、機械学習モデルによって、入力画像に基づいて推定される光源情報と、反射率情報と、光伝達情報とのいずれか又はいずれか同士の組み合わせから得られる画像と、所定の正解画像とを比較することによって学習されたものである。
一構成例として、可視情報は、物体表面の複数の点の各々について、光の方向毎に、光が複数の前記点の各々に届くか否かに基づいて作成される。
【００７０】
以上、本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組合わせを行うことができる。これら実施形態及びその変形例は、発明の範囲や要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
なお、前述の画像処理装置１００は内部にコンピュータを有している。そして、前述した各装置の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭ、半導体メモリなどをいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル（差分プログラム）であってもよい。
【符号の説明】
【００７１】
１…画像処理システム、  １０、１０−１、１０−２、・・・、１０−ｎ…端末装置、  ５０…ネットワーク、  ７０…サーバー装置、  １００…画像処理装置、  １０５…通信部、  １１０…記憶部、  １１１…プログラム、  １１２…アプリ、  １１３…反射率マップΛ、  １１４…光源情報Π、  １１５…光伝達マップΨ、  １２０…操作部、  １３０…情報処理部、  １３１…取得部、  １３２…分析部、  １３３…機械学習部、  １３４…生成部、  １３５…出力部、  １４０…表示部、  ２０２…エンコーダ、  ２０３・・・反射率マップデコーダー、  ２０４…ＲｅｓＮｅｔブロック、  ２０５…逆畳み込み部、  ２０６…光伝達マップデコーダー、  ２０７…ＲｅｓＮｅｔブロック、  ２０８…逆畳み込み部、  ２０９…連結部、  ２１０…畳み込み部、  ２１１…入力画像、  ２１２…人物全身画像Ｉ、  ２１３…二値マスクＭ、  ２１４…正解データ、  ２１５…反射率マップΛ、  ２１６…光源情報Π、  ２１７…光伝達マップΨ、  ２２０…推定値、  ２２１…反射率マップΛ、  ２２２…光源情報Π、  ２２３…光伝達マップΨ、  ２２４…乗算部、  ２２５…人物全身画像Ｉ
【図１】
2019219928.tif 000010
【図２】
2019219928.tif 000011
【図３】
2019219928.tif 000012
【図４】
2019219928.tif 000013
【図５】
2019219928.tif 000014
【図６】
2019219928.tif 000015
【図７】
2019219928.tif 000016
【図８】
2019219928.tif 000017
【図９】
2019219928.tif 000018
【図１０】
2019219928.tif 000019
【図１１】
2019219928.tif 000020