Top > Search of Japanese Patents > IMAGE PROCESSING DEVICE, IMAGE PROCESSING METHOD, AND IMAGE PROCESSING PROGRAM > Specification

Specification :(In Japanese)画像処理装置、画像処理方法、及び画像処理プログラム

Country (In Japanese)日本国特許庁(JP)
Gazette (In Japanese)公開特許公報(A)
Publication number P2019-219928A
Date of publication of application Dec 26, 2019
Title of the invention, or title of the device (In Japanese)画像処理装置、画像処理方法、及び画像処理プログラム
IPC (International Patent Classification) G06T  15/50        (2011.01)
G06T   7/00        (2017.01)
FI (File Index) G06T 15/50
G06T 7/00 350C
Number of claims or invention 8
Filing form OL
Total pages 22
Application Number P2018-117026
Date of filing Jun 20, 2018
Inventor, or creator of device (In Japanese)【氏名】金森 由博
【氏名】遠藤 結城
Applicant (In Japanese)【識別番号】504171134
【氏名又は名称】国立大学法人 筑波大学
Representative (In Japanese)【識別番号】100106909、【弁理士】、【氏名又は名称】棚井 澄雄
【識別番号】100188558、【弁理士】、【氏名又は名称】飯田 雅人
【識別番号】100169764、【弁理士】、【氏名又は名称】清水 雄一郎
Request for examination (In Japanese)未請求
Theme code 5B080
5L096
F-term 5B080AA19
5B080CA00
5B080DA07
5B080DA08
5B080GA13
5L096DA01
5L096GA49
5L096HA11
5L096MA03
Abstract (In Japanese)【課題】光源情報が示す光源による照明状態に基づいて、入力画像に対応する出力画像を生成する場合に、写実性を向上できる画像処理装置、画像処理方法、及びプログラムを提供することを提供すること。
【解決手段】画像処理装置は、入力画像を取得する取得部と、光源からの照明状態を示す情報である光源情報と、入力画像に含まれる被写体の反射率として入力画像に基づいて推定された反射率情報と、入力画像に含まれる被写体からの光の伝達状態として入力画像と光源からの光が被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、入力画像に対応する出力画像を生成する生成部と、生成部が生成した出力画像を出力する出力部とを備える。
【選択図】図2
Scope of claims (In Japanese)【請求項1】
入力画像を取得する取得部と、
光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成する生成部と、
前記生成部が生成した出力画像を出力する出力部と
を備える、画像処理装置。
【請求項2】
前記光源情報とは、前記入力画像に基づいて推定されたものである、請求項1に記載の画像処理装置。
【請求項3】
前記出力画像とは、前記光源情報が示す前記照明状態に基づいて、前記入力画像に含まれる前記被写体を再照明した再照明画像である、請求項1に記載の画像処理装置。
【請求項4】
前記反射率情報と前記光伝達情報とは、機械学習モデルによって、前記入力画像に基づいて推定されたものである、請求項1から請求項3のいずれか一項に記載の画像処理装置。
【請求項5】
前記機械学習モデルとは、前記機械学習モデルによって、前記入力画像に基づいて推定される光源情報と、反射率情報と、光伝達情報とのいずれか又はいずれか同士の組み合わせから得られる画像と、所定の正解画像とを比較することによって学習されたものである、請求項4に記載の画像処理装置。
【請求項6】
前記可視情報は、物体表面の複数の点の各々について、光の方向毎に、前記光が複数の前記点の各々に届くか否かに基づいて作成される、請求項1から請求項5のいずれか一項に記載の画像処理装置。
【請求項7】
入力画像を取得するステップと、
光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成するステップと、
前記生成するステップで生成された出力画像を出力するステップと
を有する、コンピュータが実行する画像処理方法。
【請求項8】
コンピュータに、
入力画像を取得するステップと、
光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成するステップと、
前記生成するステップで生成された出力画像を出力するステップと
を実行させる、画像処理プログラム。
Detailed description of the invention (In Japanese)【技術分野】
【0001】
本発明の実施形態は、画像処理装置、画像処理方法、及び画像処理プログラムに関する。
【背景技術】
【0002】
再照明(relighting)とは、被写体が撮影されたときとは異なる照明環境下での被写体の見た目を再現する技術である。人物画像の再照明が実現できれば、ポートレート写真の陰影の修正、背景画像をさしかえる切り貼り合成など、様々な応用が考えられる。
一方で、物理則に基づいて人物画像の再照明を行うには、その画像から反射率、形状および照明を推定する必要がある。これは、逆レンダリング(inverse rendering)と呼ばれる不良設定問題である。このような逆レンダリングは、主に人物の顔画像に対して、統計的な3D形状モデルや畳み込みニューラルネットワーク(convolutional neural network; CNN)を用いて実現されてきた。そして、その際の照明計算の定式化において、周囲から届く光の分布を表現するために球面調和関数(spherical harmonics;SH)がよく用いられてきた。
【先行技術文献】
【0003】

【非特許文献1】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.
【発明の概要】
【発明が解決しようとする課題】
【0004】
SHに基づく再照明では、光の遮蔽を無視すれば、照明情報と物体表面の法線ベクトルとから、解析的な式で照明計算を行うことができる。しかし光の遮蔽を無視すると、例えば人物の脇や股など、本来なら遮蔽のために光のあまり当たらない部分が不自然に明るくなってしまう。
光の遮蔽を近似的に扱う方法として、幾何的な遮蔽率をスカラー値として算出し陰影に乗算するアンビエントオクルージョンという技術もあるが、これは光源に依らず凹んだ部分を常に暗くしているため、特に再照明の際に光源を動かした場合に違和感が生じる。
【0005】
よりよい方法としては、リアルタイムレンダリング向けに開発された前計算放射輝度伝達(precomputed radiance transfer;PRT)で行われたように、光の遮蔽を含めてSHの照明計算を定式化することが知られている。
しかし、PRTの枠組みを逆レンダリングに組み込もうとすると、光の遮蔽を計算するためには、推定しようとしている形状が必要になる上に、物体表面上の各点から多数のレイを飛ばして可視判定を行う必要があり、計算コストが大きい。
本発明は、前述した問題を解決すべくなされたもので、入力画像に対応する出力画像を生成する場合に、写実性を向上できる画像処理装置、画像処理方法、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一実施形態は、入力画像を取得する取得部と、光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成する生成部と、前記生成部が生成した出力画像を出力する出力部とを備える、画像処理装置である。
本発明の一実施形態は、前述の画像処理装置において、前記光源情報とは、前記入力画像に基づいて推定されたものである。
本発明の一実施形態は、前述の画像処理装置において、前記出力画像とは、前記光源情報が示す前記照明状態に基づいて、前記入力画像に含まれる前記被写体を再照明した再照明画像である。
本発明の一実施形態は、前述の画像処理装置において、前記反射率情報と前記光伝達情報とは、機械学習モデルによって、前記入力画像に基づいて推定されたものである。
本発明の一実施形態は、前述の画像処理装置において、前記機械学習モデルとは、前記機械学習モデルによって、前記入力画像に基づいて推定される光源情報と、反射率情報と、光伝達情報とのいずれか又はいずれか同士の組み合わせから得られる画像と、所定の正解画像とを比較することによって学習されたものである。
本発明の一実施形態は、前述の画像処理装置において、前記可視情報は、物体表面の複数の点の各々について、光の方向毎に、前記光が複数の前記点の各々に届くか否かに基づいて作成される。
【0007】
本発明の一実施形態は、入力画像を取得するステップと、光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成するステップと、前記生成するステップで生成された出力画像を出力するステップとを有する、コンピュータが実行する画像処理方法である。
【0008】
本発明の一実施形態は、コンピュータに、入力画像を取得するステップと、光源からの照明状態を示す情報である光源情報と、前記入力画像に含まれる被写体の反射率として前記入力画像に基づいて推定された反射率情報と、前記入力画像に含まれる前記被写体からの光の伝達状態として前記入力画像と前記光源からの光が前記被写体に届くか否かを示す可視情報とに基づいて推定された光伝達情報とに基づいて、前記入力画像に対応する出力画像を生成するステップと、前記生成するステップで生成された出力画像を出力するステップとを実行させる、画像処理プログラムである。
【発明の効果】
【0009】
本発明の実施形態によれば、入力画像に対応する出力画像を生成する場合に、写実性を向上できる画像処理装置、画像処理方法、及び画像処理プログラムを提供できる。
【図面の簡単な説明】
【0010】
【図1】実施形態の画像処理システムの一例を示す図である。
【図2】実施形態の画像処理装置の一例を示すブロック図である。
【図3】可視関数を導出する処理の一例を示す図である。
【図4】実施形態の画像処理装置で使用される機械学習モデルの一例を示す図である。
【図5】実施形態の画像処理装置の動作の一例を示すフローチャートである。
【図6】実施形態の画像処理装置の動作の一例を示すフローチャートである。
【図7】CG人物データセットの一例を示す図である。
【図8】実施形態の画像処理装置による推定結果と従来手法との比較例を示す図である。
【図9】実施形態の画像処理装置による推定結果の一例を示す図である。
【図10】実施形態の画像処理装置による推定結果の一例を示す図である。
【図11】実施形態の画像処理装置による推定結果の一例を示す図である。
【発明を実施するための形態】
【0011】
次に、本実施形態の画像処理装置、画像処理方法、及び画像処理プログラムを、図面を参照しつつ説明する。以下で説明する実施形態は一例に過ぎず、本発明が適用される実施形態は、以下の実施形態に限られない。
なお、実施形態を説明するための全図において、同一の機能を有するものは同一符号を用い、繰り返しの説明は省略する。
また、本願でいう「XXに基づく」とは、「少なくともXXに基づく」ことを意味し、XXに加えて別の要素に基づく場合も含む。また、「XXに基づく」とは、XXを直接に用いる場合に限定されず、XXに対して演算や加工が行われたものに基づく場合も含む。「XX」は、任意の要素(例えば、任意の情報)である。

【0012】
(実施形態)
(画像処理システム)
以下、本発明の実施形態の画像処理システムを、図面を参照して説明する。
図1は、実施形態の画像処理システムの一例を示す図である。本実施形態の画像処理システムでは、端末装置は、サーバー装置へアクセスし、マスク画像付きの人物の全身画像(以下「教師画像」という)を、サーバー装置へ送信する。画像処理装置は、端末装置が送信するマスク画像付きの教師画像を、サーバー装置から取得し、取得した教師画像に基づいて、教師あり学習を行う。
また、端末装置は、ショッピングサイトなどのウェブサイトへアクセスし、画像(再照明を行う被写体が撮像されたマスク付きの全身画像)(以下「入力画像」という)を、サーバー装置へ送信する。画像処理装置100は、端末装置が送信する入力画像を、サーバー装置から取得する。画像処理装置100は、取得した入力画像から特徴量を抽出し、抽出した特徴量と、教師あり学習の学習結果とに基づいて、入力画像に対応する出力画像を生成する。
実施形態の画像処理システム1は、端末装置10-1~端末装置10-n(nは、n>0の整数)と、サーバー装置70と、画像処理装置100とを含む。これらの装置は、ネットワーク50を介して互いに接続される。ネットワーク50は、例えば、無線基地局、Wi-Fiアクセスポイント、通信回線、プロバイダ、インターネットなどを含む。なお、図1に示す各装置の全ての組み合わせが相互に通信可能である必要はなく、ネットワークNWは、一部にローカルなネットワークを含んでもよい。
以下、端末装置10-1~端末装置10-nのうちの任意の端末装置を、端末装置10と記載する。

【0013】
端末装置10は、ユーザによって使用される装置である。端末装置10は、例えば、スマートフォンなどの携帯電話、タブレット端末、パーソナルコンピュータなどのコンピュータ装置である。例えば、端末装置10は、ショッピングサイトなどのウェブサイト、メールサービス、SNSサービス、情報提供サービスなどにおいてユーザIDを登録し、登録したユーザIDに関連付けて画像を送信するのに利用される。
サーバー装置70は、各種サービスを提供する。例えば、サーバー装置70は、端末装置10において起動されるウェブブラウザを介して、各種サービスを提供するためのウェブサイトを提供するウェブサーバー装置であってよい。また、サーバー装置70は、所定のアプリケーションプログラムが起動(実行)された端末装置10と通信を行うことで、各種情報の受け渡しを行うアプリケーションサーバー装置であってもよい。所定のアプリケーションプログラムが起動された端末装置10には、サーバー装置70との通信により、各種サービスを提供可能な画面が表示される。以下、説明を簡略化するために、サーバー装置70がウェブサーバー装置である場合について説明を続ける。
例えば、サーバー装置70は、サービスの提供前にユーザIDの認証を行い、ユーザの確認を行う。サーバー装置70は、認証の結果、既にユーザIDが登録されたユーザであれば各種サービスを提供し、ユーザIDが登録されていないユーザであれば、ユーザIDが未登録であることを通知したり、ユーザIDの登録を促したりする。ユーザIDが未登録であることを受けて、ユーザが新規にユーザIDの登録した場合、サーバー装置70は、新たに登録されたユーザIDを発行する。これによって、ユーザは新規にユーザIDを取得することができる。ユーザは、端末装置10を操作することによって、登録したユーザIDに関連付けて、被写体を含む画像を、サーバー装置70へ送信する。

【0014】
画像処理装置100は、教師あり学習を行う。例えば、画像処理装置100は、教師画像として、マスク画像付きの人物の全身画像を取得する。例えば、画像処理装置100は、端末装置10が送信した教師画像を、サーバー装置70から取得する。画像処理装置100は、取得した教師画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを(自動で)推定する。ここで、光伝達ベクトルには、光の遮蔽情報が含まれる。以下、光伝達ベクトルに、光の遮蔽情報が含まれる場合について説明を続ける。
画像処理装置100は、画素ごとに推定した反射率から反射率マップΛを作成し、画素ごとに推定した光伝達ベクトルから光伝達マップΨを作成する。画像処理装置100は、作成した反射率マップΛと、作成した光伝達マップΨと、推定した光源情報Πとを特徴量とし、その特徴量が教師画像に対応することを学習する。

【0015】
画像処理装置100は、サーバー装置70と通信を行って、サーバー装置70が提供するサービスを利用するユーザのユーザIDを取得し、このユーザIDに関連付けて送信された入力画像(再照明を行う被写体が撮像されたマスク付きの全身画像)を取得する。画像処理装置100は、取得した入力画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを(自動で)推定する。
画像処理装置100は、画素ごとに推定した反射率から反射率マップΛを作成し、画素ごとに推定した光伝達ベクトルから光伝達マップΨを作成する。画像処理装置100は、作成した反射率マップΛと、作成した光伝達マップΨと、推定した光源情報Πとを特徴量とし、その特徴量に基づいて、入力画像に対応する出力画像を生成する。画像処理装置100は、生成した出力画像を出力する。

【0016】
(画像処理装置100)
図2は、実施形態の画像処理装置の一例を示すブロック図である。
画像処理装置100は、通信部105と、記憶部110と、操作部120と、情報処理部130と、表示部140と、前記各構成要素を図2に示されているように電気的に接続するためのアドレスバスやデータバスなどのバスライン150とを備える。
通信部105は、通信モジュールによって実現される。通信部105は、ネットワーク50を介して、サーバー装置70などの外部の通信装置と通信する。具体的には、通信部105は、サーバー装置70が送信した教師画像を受信し、受信した教師画像を、情報処理部130へ出力する。ここで、教師画像の一例は、市販の3Dスキャンされた人物のメッシュモデルをレンダリングして作成された画像である。市販の3D人物モデルの多くは、テクスチャとして光沢成分を含まず拡散反射成分しか持たない。このため、本実施形態では、反射率として、拡散反射成分を対象とした場合について説明する。市販されている3D人物モデルの数は限られており、実施形態で用いるモデルの数は訓練データとテストデータとを合わせても数百体しかない。衣服のバリエーションが無数にあることを考えると訓練データが足りないようにも思えるが、実際には、本実施形態で用意したデータを用いて学習することで、服の皺、脇や股などの光の遮蔽が生じやすい部位についても、光の遮蔽を考慮した陰影計算ができる。
また、通信部105は、サーバー装置70が送信した入力画像を受信し、受信した入力画像を、情報処理部130へ出力する。また、通信部105は、情報処理部130が出力した出力画像を取得し、取得した出力画像を、サーバー装置70へ送信する。

【0017】
記憶部110は、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、HDD(Hard Disk Drive)、フラッシュメモリ、またはこれらのうち複数が組み合わされたハイブリッド型記憶装置などにより実現される。記憶部110には、情報処理部130により実行されるプログラム111と、アプリ112と、反射率マップΛ113と、光源情報Π114と、光伝達マップΨ115とが記憶される。

【0018】
アプリ112は、画像処理装置100に、サーバー装置70が送信した教師画像を取得させる。アプリ112は、画像処理装置100に、取得させた教師画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定させる。アプリ112は、画像処理装置100に、画素ごとに推定させた反射率から反射率マップΛを作成させ、画素ごとに推定させた光伝達ベクトルから光伝達マップΨを作成させる。アプリ112は、画像処理装置100に、作成させた反射率マップΛと、作成させた光伝達マップΨと、推定させた光源情報Πとを特徴量とさせ、その特徴量が教師画像に対応することを学習させる。

【0019】
アプリ112は、画像処理装置100に、サーバー装置70が送信した入力画像を取得させる。アプリ112は、画像処理装置100に、取得させた入力画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定させる。アプリ112は、画像処理装置100に、画素ごとに推定させた反射率から反射率マップΛを作成させ、画素ごとに推定させた光伝達ベクトルから光伝達マップΨを作成させる。アプリ112は、画像処理装置100に、画素ごとに作成させた反射率マップΛと、画素ごとに作成させた光伝達マップΨと、推定させた光源情報Πとを特徴量とさせ、その特徴量に基づいて、入力画像に対応する出力画像を生成させる。
反射率マップΛ113は、教師画像の反射率を、画素ごとに表したマップである。
光源情報Π114は、教師画像の照明状態を示す情報である。
光伝達マップΨ115は、物体の幾何的な情報が記録された光伝達ベクトルを、画素ごとに表したマップである。光伝達マップΨ115と、光伝達ベクトルとは、光源の情報とは分離されており、光源に依存しない。物体の幾何的な情報には、光が遮蔽されるか否かを示す情報である光の遮蔽情報が含まれる。光伝達マップΨ115と、光伝達ベクトルとが、光源の情報とは分離されていることによって、照明計算を正しく行うことができる。

【0020】
操作部120は、例えば、タッチパネルなどによって構成され、表示部140に表示される画面に対するタッチ操作を検出し、タッチ操作の検出結果を、情報処理部130へ出力する。

【0021】
情報処理部130の全部または一部は、例えば、CPU(Central Processing Unit)などのプロセッサが記憶部110に格納されたプログラム111を実行することにより実現される機能部(以下、ソフトウェア機能部と称する)である。なお、情報処理部130の全部または一部は、LSI(Large Scale Integration)、ASIC(Application Specific Integrated Circuit)、またはFPGA(Field-Programmable Gate Array)などのハードウェアにより実現されてもよく、ソフトウェア機能部とハードウェアとの組み合わせによって実現されてもよい。
情報処理部130は、例えば、取得部131と、分析部132と、機械学習部133と、生成部134と、出力部135とを備える。

【0022】
取得部131は、通信部105が出力した教師画像を取得し、取得した教師画像を、分析部132へ出力する。また、取得部131は、通信部105が出力した入力画像を取得し、取得した入力画像を、分析部132へ出力する。
分析部132は、取得部131が出力した教師画像を取得し、取得した教師画像を分析することによって、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定する。分析部132は、画素ごとに推定した反射率から反射率マップΛを作成し、画素ごとに推定した光伝達ベクトルから光伝達マップΨを作成する。分析部132は、作成した反射率マップΛを反射率マップΛ113に記憶させ、作成した光伝達マップΨを光伝達マップΨ115に記憶させ、推定した光源情報Πを光源情報Π114に記憶させる。分析部132は、反射率マップΛと光伝達マップΨと光源情報Πとを、機械学習部133へ出力する。
ここで、分析部132が、光伝達マップΨを作成する処理について説明する。分析部132は、球面調和関数(SH)に基づいて、光の遮蔽を考慮して、照明計算を行う。
まず、光の遮蔽を考慮しないで、照明計算を行う場合について説明する。
(1)光の遮蔽を考慮しない場合
光の遮蔽や相互反射を考慮しない場合、物体表面上の点pにおいて、単位法線ベクトルをnとすると、式(1)に示されるように、放射照度E(n)は法線nが定義する半球Ω(n)のあらゆる方向ωiから差し込む放射輝度L(ωi)の積分によって計算される。

【0023】
【数1】
JP2019219928A_000003t.gif

【0024】
なお、位置pに関する依存性は単純化のために省略した。入射する放射輝度の分布L(ωi)にコサイン減衰項max(n,ωi,0)をかけたものを球面調和関数に射影する。方向ベクトルωと仰角θと方位角φとを用いてω=(θ,φ)とパラメータ表示すると、式(2)、式(3)が得られる。

【0025】
【数2】
JP2019219928A_000004t.gif

【0026】
式(2)において、Yl,mは球面調和関数である(ただし、l≧0,-l≦m≦l,かつm≦2)。式(2)と式(3)とにおいて、Ll,mとAlはそれぞれ、照明とコサイン減衰項の係数である。式(1)の積分を書き換えると、式(4)となる。

【0027】
【数3】
JP2019219928A_000005t.gif

【0028】
ここで、^Alは、以下のように表される。

【0029】
【数4】
JP2019219928A_000006t.gif

【0030】
Yl,mは、法線ベクトルn=(x,y,z)Tの各成分x,y,zの多項式によって表現できる。係数列{Ll,m}をベクトルLで、基底関数列{^AlYlm}をベクトル^Yで表現すると、放射照度Eはベクトルの内積で計算できる。

【0031】
E=^YTL (5)

【0032】
次に、光の遮蔽を考慮して照明計算を行う場合について説明する。
(2)光の遮蔽を考慮する場合
(1)光の遮蔽を考慮しない場合で述べた通り、本来は光が遮られて暗くなるべきところが不自然に明るくなる。式(1)で光の遮蔽を考慮するために、本実施形態では、可視関数V(ωi)を導入する。

【0033】
【数5】
JP2019219928A_000007t.gif

【0034】
式(6)において、V(ωi)は、入射方向ωiの光が遮られれば0であり、遮られなければ1である。
図3は、可視関数V(ωi)を導出する処理の一例を示す図である。図3に示されるように、十分に離れたところ(無限遠)から、物体に光を放射することを考える。この場合、十分に離れたところ(無限遠)から届く光は平行光とみなすことができる。周囲から届く光(環境光源)は無数の平行光からなる。本実施形態では、平行光の入射方向ωiについて、物体表面のすべての点p(光伝達マップのすべての画素)における、方向ωiに関する可視関数V(ωi,p)を並列で求める。つまり、光源方向を一つ選ぶたびに、物体表面のすべての点で、その方向に関する可視関数を一度にすべて求める。これを、光源方向を変えながら繰り返す。光源方向は、乱数に基づいて、ランダムに選択されてもよい。図3に示される例では、光源方向LD-1が選択され、物体表面の複数の点p-1、p-2、p-3、p-4、p-5の各々について、光源方向LD-1からの光が、複数の点p-1、p-2、p-3、p-4、p-5の各々に届くか否かを示す可視関数が求められる。
グラフィクス用ハードウェア(GPU)を用いる従来の方法では、物体表面の各点で、可視関数を計算するために物体形状を描画する必要があった。この方法では物体表面の点の数が膨大になると、物体形状の描画回数が増え、計算に時間がかかる。具体的には、仮に1024×1024画素(のマスク内の)各画素で計算すると、マスクが画像の半分を覆っているとしても524288画素あり、その画素数の分だけ物体形状を描画する必要がある。また、物体表面上の各点でランダムな方向に向かってレイトレーシングして可視判定を行う場合には、効率が悪かった。
一方、本実施形態では、可視関数を評価するために物体形状を描画するのは光源方向一つ毎でよい。実際に考慮する光源方向の数を642方向と仮定した場合、上記と比べて格段に少なく、計算時間を短縮できる。図2に戻り説明を続ける。
PRTの枠組みでは、この可視関数V(ωi)とコサイン減衰項とともに前計算し、SHの基底関数に投影して、係数ベクトルの内積による高速な照明条件を実現する。ベクトルTを、可視関数とコサイン減衰項を基底関数に投影した際の係数からなるベクトルとすると、放射照度Eは次のように計算できる。

【0035】
E=TTL (7)

【0036】
ここで、光伝達ベクトルはベクトルTであり、光伝達ベクトルを各画素に持つ画像を光伝達マップΨと呼ぶ。
また、分析部132は、取得部131が出力した入力画像を取得し、取得した入力画像を分析することによって、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定する。分析部132は、推定した反射率から反射率マップΛを作成し、推定した光伝達ベクトルから光伝達マップΨを作成する。分析部132は、反射率マップΛと光伝達マップΨと光源情報Πとを、生成部134へ出力する。

【0037】
機械学習部133は、分析部132が出力した反射率マップΛと光伝達マップΨと光源情報Πとを取得し、取得した反射率マップΛと光伝達マップΨと光源情報Πとを特徴量とし、その特徴量が教師画像であることを学習する。本実施形態では、機械学習モデルの一例として、畳み込みニューラルネットワーク(Convolutional neural network: CNN)を使用した場合について説明を続ける。

【0038】
ここで、機械学習部133がCNNによる機械学習を行う際に使用する損失関数について説明する。
人物画像データセットDHは、各人物モデルに対し、画像中で人物が写っている部分を表す二値マスク、反射率マップΛ、光伝達マップΨからなる。二値マスクと、反射率マップΛと、光伝達マップΨとは、以下のように表される。

【0039】
【数6】
JP2019219928A_000008t.gif

【0040】
一方、光源データセットDLは、光源ごとに照明情報を持ち、これはRGBのチャンネルごとのSHの9係数からなる。照明情報は、以下のように表される。

【0041】
【数7】
JP2019219928A_000009t.gif

【0042】
なお、二値マスクは正解データおよびCNNの出力に乗算してから損失関数を計算するが(例えばM3jjやM9jjで、*は要素ごとの乗算を表す)、以下の説明では単純化のために二値マスクの乗算は省略する。
本実施形態で使用するCNNは、反射率マップΛと、光伝達マップΨと、光源情報Πとを推定する。CNNへの入力は、マスク乗算済の人物全身画像Ij,k=Λj*(ΨjΠk)である。本実施形態では、機械学習部133は、損失関数として、反射率マップΛと、法線マップと、光源情報Πとのそれぞれについて正解とL2損失、そしてそれらの積である人物全身画像の推定値の正解とL2損失という4種類の損失関数について、L1損失を導出し、さらに以下の損失関数を含め、合計で15種類の損失関数を計算する。

【0043】
・反射率マップΛおよび光伝達マップΨに関するL1 total variation(TV)損失(2通り)
・陰影マップ(つまりΨjΠk)に関して、光伝達マップΨと光源情報Πを、一方を推定値とし他方を正解とした場合および両方を推定値とした場合のL1損失(3通り)
・反射率マップΛ、光伝達マップΨおよび光源情報Πの3つの積(つまりΛj*(ΨjΠk))に対し、そのうちの1つまたは2つを推定値にした場合のL1損失(6通り)
なお、それぞれの損失関数の重みは全て1とした。
このように、推定値だけでなく正解も含めた積に対してL1損失を計算することは、推定値に対する重み付けを行っていることに相当する。損失関数の種類を増やすことによって、より鮮明な推定結果を得ることができる。

【0044】
本実施形態で使用するCNNは、推定した反射率(アルベド)マップΛと、光伝達マップΨと、光源Πとの3つを掛け合わせなくても、掛け合わせる途中のデータについても、正解と一致しているかどうかを測ることができる。例えば、CNNでは、光伝達マップΨと光源Πとを掛け合わせることで、服や肌の色や模様のついていない、純粋に形状だけに依存した陰影マップを取得する。
この取得した陰影マップを、正解の光伝達マップΨと正解の光源Πとで作ることによって、正解の陰影マップが得られる。これと推定したデータとを比較するときに、光伝達マップΨと光源Πとのうち、どちらか一方が正解で他方が推定したもの、あるいは両方とも推定したデータに対して、正解との誤差を測ることによって、3通りの損失関数が得られる。このようにして組み合わせを考えると、陰影マップについて3通り、入力画像の復元に関して6通り(3つとも推定した場合を除く)の組み合わせが得られる。
この他に、光伝達マップΨと、反射率マップΛとについてのL1 TV lossで、計2つ、反射率マップΛと、光伝達マップΨと、光源および入力画像をすべて推定データで復元する場合を考えると計4つ、合計で15種類の損失関数を導出する。

【0045】
生成部134は、分析部132が出力した反射率マップΛと光伝達マップΨと光源情報Πとを取得し、取得した反射率マップΛと光伝達マップΨと光源情報Πとを特徴量とし、その特徴量に基づいて、出力画像を生成する。生成部134は、生成した出力画像を、出力部135へ出力する。
出力部135は、生成部134が出力した出力画像を取得し、取得した出力画像を、通信部105へ出力する。

【0046】
次に、本実施形態の画像処理装置100で用いる機械学習モデルについて説明する。
図4は、本実施形態の画像処理装置で使用する機械学習モデルの一例を示す図である。
本実施形態の画像処理装置100で使用する機械学習モデル200の一例は、前述したように、CNNである。
機械学習モデル200は、乗算部201と、エンコーダ202と、反射率マップデコーダー203と、光伝達マップデコーダー206と、畳み込み部(Conv.)210とによって表される。反射率マップデコーダー203は、ResNetブロック204と、逆畳み込み部(Deconv.)205とを含む。光伝達マップデコーダー206は、ResNetブロック207と、逆畳み込み部(Deconv.)208とを含む。
なお、畳み込み部210と、ResNetブロック204と、逆畳み込み部205と、ResNetブロック207と、逆畳み込み部208との各々の直後には、データが入出力される最初と最後の層を除きバッチノーマライゼーション(batch normalization)およびReLUを適用する。また、逆畳み込み部205と、逆畳み込み部208との各々の最初の逆畳み込み層各3層の直後には確率0.5のドロップアウトを適用する。

【0047】
入力画像211として、人物全身画像I212と、二値マスクM213とが乗算部201へ出力される。乗算部201は、人物全身画像I212と二値マスクM213とを乗算し、乗算した結果を、エンコーダ202へ出力する。エンコーダ202と逆畳み込み部205との間と、エンコーダ202と逆畳み込み部208との間とは、スキップコネクション(skip-connection)によって連結されている。
エンコーダ202の一例は、畳み込み層7層で構成される。エンコーダ202は、乗算部201が出力した人物全身画像I212と二値マスクM213とを乗算した結果に対して、フィルタを適用する。エンコーダ202は、フィルタを適用した結果を、反射率マップデコーダー203と、光伝達マップデコーダー206と、連結部209とへ出力する。

【0048】
反射率マップデコーダー203では、エンコーダ202が出力したフィルタを適用した結果は、ResNetブロック204へ出力される。ResNetブロック204は、2つのResNetブロックを含み、2つのResNetブロックの各々は畳み込み計算を行う。ResNetブロック204は、畳み込み計算を行った結果を、連結部209と、逆畳み込み部205とへ出力する。
逆畳み込み部205は、ResNetブロック204が出力した畳み込み計算を行った結果を取得し、取得した畳み込み計算を行った結果に対して7層の逆畳み込みを行うことによって、反射率マップΛ221を導出する。このように構成することによって、反射率マップデコーダー203は、反射率マップΛを推定できる。

【0049】
光伝達マップデコーダー206では、エンコーダ202が出力したフィルタを適用した結果は、ResNetブロック207へ出力される。ResNetブロック207は、2つのResNetブロックを含み、2つのResNetブロックの各々は畳み込み計算を行う。ResNetブロック207は、畳み込み計算を行った結果を、連結部209と、逆畳み込み部208とへ出力する。
逆畳み込み部208は、ResNetブロック207が出力した畳み込み計算を行った結果を取得し、取得した畳み込み計算を行った結果に対して7層の逆畳み込みを行うことによって、光伝達マップΨ223を導出する。このように構成することによって、光伝達マップデコーダー206は、光伝達マップΨを推定できる。

【0050】
連結部209は、エンコーダ202が出力したフィルタを適用した結果と、ResNetブロック204が出力した畳み込み計算を行った結果と、ResNetブロック207が出力した畳み込み計算を行った結果とを取得し、取得したフィルタを適用した結果と、畳み込み計算を行った結果と、畳み込み計算を行った結果とを連結する。連結部209は、フィルタを適用した結果と、畳み込み計算を行った結果と、畳み込み計算を行った結果とを連結した結果を、畳み込み部210へ出力する。
畳み込み部210は、連結部209が出力した連結した結果を、畳み込む。具体的には、畳み込み部210は、空間解像度が1×1、チャンネル数が27になるまで畳み込むことによって、光源情報Π222を導出する。

【0051】
逆畳み込み部205は、導出した反射率マップΛ221を、乗算部224へ出力する。畳み込み部210は、導出した光源情報Π222を、乗算部224へ出力する。逆畳み込み部208は、導出した光伝達マップΨ223を、乗算部224へ出力する。乗算部224は、逆畳み込み部205が出力した反射率マップΛと、畳み込み部210が出力した光源情報Π222と、逆畳み込み部208が出力した光伝達マップΨ223とを取得し、取得した反射率マップΛ221と、光源情報Π222と、光伝達マップΨ223とを乗算することによって、人物全身画像Iを導出する。このように構成することによって、画像処理装置100は、入力画像211を再現した画像を導出できる。

【0052】
(画像処理装置100の動作)
本実施形態の画像処理装置100の動作について、教師あり学習を行う場合と、教師あり学習の結果に基づいて、入力画像に対応する出力画像を生成する場合とに分けて説明する。
図5は、本実施形態の画像処理装置の動作の一例を示すフローチャートである。図5に示される例では、教師あり学習を行う処理について示される。
(ステップS1)
画像処理装置100の通信部105は、サーバー装置70が送信した教師画像を受信し、受信した教師画像を、情報処理部130へ出力する。情報処理部130の取得部131は、通信部105が出力した教師画像を取得し、取得した教師画像を、分析部132へ出力する。
(ステップS2)
分析部132は、取得部131が出力した教師画像を取得し、取得した教師画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定する。
(ステップS3)
分析部132は、画素ごとに推定した反射率から反射率マップΛを作成し、画素ごとに推定した光伝達ベクトルから光伝達マップΨを作成する。分析部132は、作成した反射率マップΛと、光伝達マップΨと、推定した光源情報Πとを、機械学習部133へ出力する。
(ステップS4)
機械学習部133は、分析部132が出力した反射率マップΛと、光伝達マップΨと、光源情報Πとを取得し、取得した反射率マップΛと、光伝達マップΨと、光源情報Πとを特徴量とし、その特徴量が教師画像に対応することを学習する。

【0053】
図6は、本実施形態の画像処理装置の動作の一例を示すフローチャートである。図6に示される例では、教師あり学習の結果に基づいて、入力画像に対応する出力画像を生成する処理について示される。
(ステップS11)
画像処理装置100の通信部105は、サーバー装置70が送信した入力画像を受信し、受信した入力画像を、情報処理部130へ出力する。情報処理部130の取得部131は、通信部105が出力した入力画像を取得し、取得した入力画像を、分析部132へ出力する。
(ステップS12)
分析部132は、取得部131が出力した入力画像を取得し、取得した入力画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定する。
(ステップS13)
分析部132は、画素ごとに推定した反射率から反射率マップΛを作成し、画素ごとに推定した光伝達ベクトルから光伝達マップΨを作成する。分析部132は、作成した反射率マップΛと、光伝達マップΨと、推定した光源情報Πとを、生成部134へ出力する。
(ステップS14)
生成部134は、分析部132が出力した反射率マップΛと、光伝達マップΨと、光源情報Πとを取得し、取得した反射率マップΛと、光伝達マップΨと、光源情報Πとに基づいて、入力画像に対応する出力画像を生成する。

【0054】
(本実施形態の手法と従来の手法との比較)
光伝達ベクトルに、光の遮蔽情報を含めた場合(以下「本手法」という)と、含めない場合(以下「従来手法」という)とについて、比較を行った。
最初に、訓練データ(教師画像)およびテストデータ(入力画像)として用いる、3D人物モデルを用いたCG人物画像データセットと環境光源データセットとを作成した。
CG人物画像データセットは、GPUベースレンダラによって生成した。CG人物画像データベースは、各3D人物モデルについて、二値マスク、反射率マップ、法線マップ、光伝達マップからなる。本手法では法線マップは必要ないが、法線マップは、従来手法での訓練データとテストデータとに使用する。
図7は、CG人物データセットの一例を示す図である。図7の(1)は反射率マップの一例を示し、図7の(2)は二値マスクの一例を示し、図7の(3)は法線マップの一例を示し、図7の(4)は光伝達マップの一例を示す。
データの取得先の一例は、BUFFデータセットおよび商用ウェブサイトである。ここでは、345体分を用意し、そのうち276体分を訓練データ、69体分をテストデータとした。なお、入手した3D人物モデルの多くは光沢反射成分のテクスチャが提供されていないため、ここでは、拡散反射を扱った場合について説明を続ける。ただし、3Dスキャン時に細かい皺などによる陰影が完全には除去されていないため、正解反射率マップにも遮蔽による陰影が含まれている。

【0055】
本実施形態では、訓練データのばらつきを抑えて、CNNの推定精度を高めるため、3D人物モデルは、立った姿勢とし、座った姿勢のものは除外した。そして、描画位置は画像の中央とし、上下に画像の縦幅5%分の余白を空けて描画した。なお、推定を行う際も、入力画像の二値マスクを利用して、上下に画像の縦幅5%分の余白が空くように整形してからCNNに入力する。
光源データセットは、Laval Indoor HDRデータセットから取得したパノラマHDR形式の環境マップを、SHの係数に変換することで作成した。環境マップによっては暗すぎたり明るすぎたりするものがあるため、明るさの調整を行った。まず、視点座標系の法線ベクトル(0,0,1)Tから解析的に光伝達ベクトルを計算し、それと各環境マップのSHの係数を乗算して、参照用の輝度値を計算する。その参照用の輝度値が閾値0.2よりも暗すぎる環境マップは除外した上で、[0.7,0.9]の範囲に収まるように環境マップの輝度値をスケーリングした。さらに、バリエーションを増やすため、環境マップを、鉛直方向を軸として10度ずつ35回回転させた。その上で、冗長度を減らすため、k-meansクラスタリングによって数を減らし、不自然な光源を取り除いた。最終的に、合計50個の光源を用意し、そのうちランダムに選んだ40個を訓練データ、10個をテストデータとした。

【0056】
本手法を、Pythonおよびchainerを用いて実装し、教師あり学習を行い、教師あり学習の結果に基づいて、推論することによって、入力画像に対応する出力画像を生成した。最適化には、Adamを使用し、学習率は0.0002に固定し、バッチサイズは1とした。訓練に要した時間は、1つのGPUを使用して、1024×1024画素のデータを入力した場合、1エポック当たり約3時間であった。本手法として、20エポックまで学習したものを使用した。推論に要した時間は、1024×1024画素の入力1つ当たり0.43秒程度である。

【0057】
光伝達ベクトルに、光の遮蔽情報が含まれることによる効果を明らかにするために、本手法と、光伝達マップの代わりに、法線マップを推定した従来手法との比較を行った。
従来手法の機械学習モデルは、本手法の機械学習モデルとは異なるが、本手法の機械学習モデルの方が、入力画像の解像度、層数、中間層のチャンネル数のいずれについても従来手法の機械学習モデルよりも規模が大きく、推定の精度が劣らないと想定される。
また、2つ目の比較対象として、本手法で最適化する損失関数を15種類から4種類に減少させたものも用意した。定量的比較として、全テストデータに対する各手法の推定結果の、マスク内の平均二乗誤差平方根(Root Mean Square Error: RMSE)を、図8に示す。法線マップについてのRMSEは、従来手法の結果で計算している。

【0058】
光源情報を除くと、共通する要素ではいずれも従来手法の結果よりも、本手法(損失関数4種類)がよく、さらに本手法(損失関数15種類)が最もよい。定性的比較として、テストデータに対する各手法での推定結果を図9に示す。
図9は、実施形態の画像処理装置による推定結果の一例を示す図である。図9に示される例では、CGテストデータを用いた場合の、各手法において、正解と推定結果との比較が示される。
図9の(1)は入力画像の一例であり、図9の(2)は正解反射率マップの一例であり、図9の(3)は従来手法による反射率マップの一例であり、図9の(4)は本手法(損失関数4種類)による反射率マップの一例であり、図9の(5)は本手法(損失関数15種類)による反射率マップの一例である。図9の(6)は光源であり、上から順に正解、従来手法による光源、本手法(損失関数4種類)による光源、本手法(損失関数15種類)による光源である。図9の(7)は正解法線マップの一例であり、図9の(8)は従来手法による法線マップの一例であり、図9の(9)は正解陰影マップの一例であり、図9の(10)は従来手法による陰影マップの一例であり、図9の(11)は本手法(損失関数4種類)による陰影マップの一例であり、図9の(12)は本手法(損失関数15種類)による陰影マップの一例である。
図9によれば、定量的比較と符号するように、反射率マップと陰影マップとにおいて、従来手法、本手法(損失関数4種類)、本手法(損失関数15種類)の順でよくなっていることが分かる。従来手法の陰影マップでは、首や脇などの部分の遮蔽を法線マップで再現できない分、反射率マップの該当箇所が暗くなってしまっている。本手法(損失関数4種類)と、本手法(損失関数15種類)とを比較すると、本手法(損失関数15種類)の方が、陰影マップがより先鋭になっていることが分かる。

【0059】
また、同様に、実写の人物画像を入力として、前述した3つの手法を用いて推定した結果を、図10に示す。
図10は、実施形態の画像処理装置による推定結果の一例を示す図である。図10に示される例では、実写画像を用いた場合の、各手法において、正解と推定結果との比較が示される。図10の(1)は入力画像であり、図10の(2)は従来手法による反射率マップの一例であり、図10の(3)は本手法(損失関数4種類)による反射率マップの一例であり、図10の(4)は本手法(損失関数15種類)による反射率マップの一例である。図10の(5)は光源であり、上から順に、従来手法による光源、本手法(損失関数4種類)による光源、本手法(損失関数15種類)による光源である。図10の(6)は従来手法による陰影マップの一例であり、図10の(7)は本手法(損失関数4種類)による陰影マップの一例であり、図10の(8)は本手法(損失関数15種類)による陰影マップの一例である。
図10の結果については、テストデータを用いた図9の結果と同様に、従来手法で推定した陰影マップでは平坦なレリーフに凹凸がついているように見える一方、本手法(損失関数4種類)と、本手法(損失関数15種類)とでは、遮蔽による陰影が観察できる。
また、2つの人物画像についてそれぞれ同時推定を行い、光源情報を入れ替えて再照明することで、それぞれ互いの照明環境下での見た目を再現した。
図11は、実施形態の画像処理装置による推定結果の一例を示す図である。図10に示される例では、推定した光源情報を互いに入れ替えて再照明を行った結果を示す。図10によれば、推定した反射率マップ、光伝達マップ、光源情報の精度が従来よりも向上できるため、全て正解データを用いて計算した結果と見比べてもあまり違いが見られない。

【0060】
前述した実施形態では、端末装置10からサーバー装置70と経由して、画像処理装置100へ、画像が送信される場合について説明したが、この限りでない。例えば、画像が、画像処理装置100へ直接入力されてもよい。
前述した実施形態において、端末装置10と画像処理装置100とが同一の装置であってもよいし、サーバー装置70と画像処理装置100とが同一の装置であってもよい。
前述した実施形態では、端末装置10が送信した入力画像(再照明を行う被写体が撮影されたマスク付きの全身画像)を、画像処理装置100が取得する場合について説明したが、この限りでない。例えば、端末装置10は、再照明を行う被写体が撮影された全身画像を送信し、画像処理装置100は、端末装置10が送信した再照明を行う被写体が撮影された全身画像を取得し、取得した全身画像に基づいて、マスクを推定してもよい。
前述した実施形態では、反射率として、拡散反射成分を対象とした場合について説明したが、この限りでない。例えば、拡散反射成分だけでなく光沢を含む鏡面反射成分を対象とした場合についても適用できる。この場合、鏡面反射に関する反射率マップについて教師付き学習が行われ、教師付き学習の学習結果に基づいて、入力画像の鏡面反射成分が推定される。
前述した実施形態では、機械学習モデルの一例として、畳み込みニューラルネットワークを使用した場合について説明したが、この例に限られない。例えば、再起型ニューラルネットワークなどの一般的な機械学習モデルを使用してもよい。
前述した実施形態では、光源および光伝達ベクトルの表現方法として、SHの2次の9係数を使用した場合について説明したが、この例に限られない。例えば、SHの1次以下、3次以上でもよく、係数のすべてを使用してもよく、係数の一部のみを使用してもよい。

【0061】
前述した実施形態では、光源および光伝達ベクトルの表現方法として、SHについて説明したが、この限りでない。例えば、Haarウェーブレット、球面ガウス関数などで、光源および光伝達ベクトルを表現してもよい。
前述した実施形態では、可視関数V(ωi)が、物体表面の複数の点p-1、p-2、p-3、p-4、p-5の各々について、光源方向LD-1からの光が、複数の点p-1、p-2、p-3、p-4、p-5の各々に届くか否かに基づいて導出される場合について、説明したがこの例に限られない。例えば、可視関数V(ωi)が、物体表面の点(画素)毎且つ光源LSが出射する光の方向毎に、光が届くか否かを判定することによって導出されてもよい。
前述した実施形態では、光源情報Πが入力画像に含まれる被写体に基づいて、推定される場合について説明したが、この例に限られない。例えば、光源情報Πが、背景の情報(建物の陰影など)に基づいて、推定されてもよい。つまり、光源情報Πが、背景を含む入力画像に基づいて、推定されてもよい。
前述した実施形態では、機械学習モデルとは、機械学習モデルによって、入力画像に基づいて推定される光源情報Πと、反射率マップΛと、光伝達マップΨとのいずれか又はいずれか同士の組み合わせから得られる画像と、入力画像とを比較することによって学習されたものである場合について説明したが、この例に限られない。例えば、機械学習モデルによって、入力画像に基づいて推定される光源情報Πと、反射率マップΛと、光伝達マップΨとのいずれか又はいずれか同士の組み合わせから得られる画像と、入力画像以外の所定の正解画像とを比較することによって学習されたものであってもよい。具体的には、光源と光伝達マップをかけ合わせると(反射率マップに含まれるような色・模様を含まない)陰影マップが得られ、これをCGで生成し、機械学習モデルの出力(同じように推定された光源と光伝達マップを掛け合わせたもの)とを比較してもよい。
前述した実施形態では、画像処理装置100が、取得した教師画像から、画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定する場合について説明したが、この例に限られない。例えば、画像処理装置100が、取得した教師画像から、複数の画素ごとに反射率と、光伝達ベクトルと、光源情報とを推定するようにしてもよい。
前述した実施形態では、画像処理装置100が、取得した入力画像から光源情報を推定する場合について説明したが、この例に限られない。例えば、画像処理装置100は、外部から光源情報を取得し、取得した光源情報に基づいて、出力画像を生成してもよい。このように構成することによって、入力画像に含まれる被写体を再照明した再照明画像を生成できる。

【0062】
前述した実施形態では、15種類の損失関数について説明したが、この例に限られない。例えば、前述した15種類の損失関数に加え、又は前述した15種類の損失関数の代わりに以下の損失関数を使用してもよい。具体的には、TV loss の代わりに、光伝達マップと、反射率マップとについて、推定したものを´をつけて表記した場合に、x方向の勾配演算子、y方向の勾配演算子を、∇x、∇yで表すと、式(A)と式(B)とのように、勾配に関して正解と一致するように、損失関数を使用してもよい。

【0063】
|∇xΛ-∇xΛ´|+|∇yΛ-∇yΛ´| (A)

【0064】
|∇xψ-∇xψ´|+|∇yψ-∇yψ´| (B)

【0065】
また、∇xや∇yを計算する前に、3x3などの平滑化フィルタを掛けた上で、∇xや∇yを計算してもよい。具体的には、平滑化フィルタをHとした場合に、式(C)と式(D)とを導出する。

【0066】
|∇xHΛ-∇xHΛ´|+|∇yHΛ-∇yHΛ´| (C)

【0067】
|∇xHψ-∇xHψ´|+|∇yHψ-∇yHψ´| (D)

【0068】
この場合、実際の計算の順序としては、∇xHなどを掛け合わせたもの、つまり平滑化カーネルのx,y方向の微分を計算してから畳み込むことになる。
本実施形態の画像処理装置100によれば、画像処理装置100は、単視点で撮影された人物の全身画像の再照明という新しい問題に対し、反射率と光源情報とに加え、再照明可能な形での光の遮蔽情報を推定できる。具体的には、光の遮蔽情報を、球面調和関数(SH)の係数として表現し、球面調和関数の係数として表現された光の遮蔽情報を推定する。このように構成することによって、光の遮蔽を考慮しない場合と比較して、写実的な再照明を実現できる。
また、画素単位でカラーチャンネルごとに9次元ベクトルの内積計算を行うのみなので高速である。実写の人物画像を入力した場合も含め、尤もらしい再照明を行うことができる。

【0069】
<構成例>
一構成例として、入力画像を取得する取得部と、光源からの照明状態を示す情報である光源情報(実施形態では、光源情報Π)と、入力画像に含まれる被写体の反射率として入力画像に基づいて推定された反射率情報(実施形態では、反射率マップΛ)と、入力画像に含まれる被写体からの光の伝達状態として入力画像と光源からの光が被写体に届くか否かを示す可視情報(実施形態では、可視情報V(ωi))とに基づいて推定された光伝達情報(実施形態では、光伝達マップΨ)とに基づいて、入力画像に対応する出力画像を生成する生成部と、生成部が生成した出力画像を出力する出力部とを備える、画像処理装置。
一構成例として、光源情報とは、入力画像に基づいて推定されたものである。
一構成例として、出力画像とは、光源情報が示す照明状態に基づいて、入力画像に含まれる被写体を再照明した再照明画像である。
一構成例として、反射率情報と光伝達情報とは、機械学習モデル(実施形態では、CNN)によって、入力画像に基づいて推定されたものである。
一構成例として、機械学習モデルとは、機械学習モデルによって、入力画像に基づいて推定される光源情報と、反射率情報と、光伝達情報とのいずれか又はいずれか同士の組み合わせから得られる画像と、所定の正解画像とを比較することによって学習されたものである。
一構成例として、可視情報は、物体表面の複数の点の各々について、光の方向毎に、光が複数の前記点の各々に届くか否かに基づいて作成される。

【0070】
以上、本発明の実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組合わせを行うことができる。これら実施形態及びその変形例は、発明の範囲や要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
なお、前述の画像処理装置100は内部にコンピュータを有している。そして、前述した各装置の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD-ROM、DVD-ROM、半導体メモリなどをいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
【符号の説明】
【0071】
1…画像処理システム、 10、10-1、10-2、・・・、10-n…端末装置、 50…ネットワーク、 70…サーバー装置、 100…画像処理装置、 105…通信部、 110…記憶部、 111…プログラム、 112…アプリ、 113…反射率マップΛ、 114…光源情報Π、 115…光伝達マップΨ、 120…操作部、 130…情報処理部、 131…取得部、 132…分析部、 133…機械学習部、 134…生成部、 135…出力部、 140…表示部、 202…エンコーダ、 203・・・反射率マップデコーダー、 204…ResNetブロック、 205…逆畳み込み部、 206…光伝達マップデコーダー、 207…ResNetブロック、 208…逆畳み込み部、 209…連結部、 210…畳み込み部、 211…入力画像、 212…人物全身画像I、 213…二値マスクM、 214…正解データ、 215…反射率マップΛ、 216…光源情報Π、 217…光伝達マップΨ、 220…推定値、 221…反射率マップΛ、 222…光源情報Π、 223…光伝達マップΨ、 224…乗算部、 225…人物全身画像I
Drawing
(In Japanese)【図1】
0
(In Japanese)【図2】
1
(In Japanese)【図3】
2
(In Japanese)【図4】
3
(In Japanese)【図5】
4
(In Japanese)【図6】
5
(In Japanese)【図7】
6
(In Japanese)【図8】
7
(In Japanese)【図9】
8
(In Japanese)【図10】
9
(In Japanese)【図11】
10