(57)【要約】【課題】  反射特性や形状の制約がない一般的な被写体において、破綻の少ない高精度な法線情報を推定することが可能な画像処理方法を提供すること。【解決手段】  被写体空間を撮影した撮影画像と、該被写体空間の法線分布を表す第１の法線マップと、予め学習された学習情報と、を取得する工程と、前記撮影画像の少なくとも一部である入力画像と前記学習情報に基づいて、第２の法線マップを推定する工程と、前記第１および第２の法線マップを合成して、第３の法線マップを生成する工程と、を有し、前記第２の法線マップは、Ｎを２以上の整数、ｎを１からＮまでの整数とした時、前記入力画像に対して、前記学習情報に基づく複数の線型関数それぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換を、ｎが１からＮになるまで順に実行して中間データを生成する工程と、前記中間データに対して、前記学習情報に基づく少なくとも１つ以上の線型関数による第Ｎ＋１線型変換を実行する工程と、を実行することによって生成されることを特徴とする。【選択図】図１
2020197774.tif 000002
【特許請求の範囲】
【請求項１】
被写体空間を撮影した撮影画像と、該被写体空間の法線分布を表す第１の法線マップと、予め学習された学習情報と、を取得する工程と、
前記撮影画像の少なくとも一部である入力画像と前記学習情報に基づいて、第２の法線マップを推定する工程と、
前記第１および第２の法線マップを合成して、第３の法線マップを生成する工程と、を有し、
前記第２の法線マップは、Ｎを２以上の整数、ｎを１からＮまでの整数とした時、
前記入力画像に対して、前記学習情報に基づく複数の線型関数それぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換を、ｎが１からＮになるまで順に実行して中間データを生成する工程と、
前記中間データに対して、前記学習情報に基づく少なくとも１つ以上の線型関数による第Ｎ＋１線型変換を実行する工程と、を実行することによって生成されることを特徴とする画像処理方法。
【請求項２】
前記合成は、被写体の特性に基づいて前記撮影画像の各領域をラベル付けしたラベルマップ、または前記第１の法線マップにおける法線の信頼度マップに基づいて、行われることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記合成は、前記ラベルマップのうち前記第１の法線マップにおいて精度が低くなる被写体を表すラベルの領域、または前記信頼度マップの信頼度が低い領域に対して、合成における前記第２の法線マップの重みを前記第１の法線マップより大きくすることを特徴とする請求項２に記載の画像処理方法。
【請求項４】
前記入力画像は、被写体の特性に基づいて前記撮影画像の各領域をラベル付けしたラベルマップ、または前記第１の法線マップにおける法線の信頼度マップに基づいて、前記撮影画像から抽出されることを特徴とする請求項１乃至請求項３の何れか一項に記載の画像処理方法。
【請求項５】
前記入力画像は、前記ラベルマップのうち前記第１の法線マップにおいて精度が低くなる被写体を表すラベルの領域、又は前記信頼度マップの信頼度が低い領域を前記撮影画像から抽出した画像であることを特徴とする請求項４に記載の画像処理方法。
【請求項６】
前記学習情報は、複数の参照画像と該参照画像に対応する参照法線マップに基づいて学習された情報であり、
前記参照画像は前記第１の法線マップにおいて精度が低くなる被写体を含むことを特徴とする請求項１乃至請求項５の何れか一項に記載の画像処理方法。
【請求項７】
前記学習情報は、複数の参照画像と該参照画像に対応する参照法線マップに基づいて学習された情報であり、
前記参照画像は前記第１の法線マップにおいて精度が低くなる被写体のみを含むことを特徴とする請求項４又は請求項５に記載の画像処理方法。
【請求項８】
前記撮影画像は、前記被写体空間を異なる複数の光源環境下で撮影した複数の画像であり、
前記入力画像は、前記複数の画像それぞれから同一位置の部分領域を抽出した複数の部分画像であることを特徴とする請求項１乃至請求項７の何れか一項に記載の画像処理方法。
【請求項９】
前記第１の法線マップは、照度差ステレオ法またはシェイプフロムシェーディング法に基づいて算出された法線マップであることを特徴とする請求項１乃至請求項８の何れか一項に記載の画像処理方法。
【請求項１０】
請求項１乃至請求項９の何れか一項に記載の画像処理方法を実行する画像処理部と、
前記学習情報を記憶する記憶部と、を有することを特徴とする画像処理装置。
【請求項１１】
被写体空間の像を撮影画像として取得する撮像部と、
前記撮影画像に対して請求項１乃至９のいずれか１項に記載の画像処理方法を実行する画像処理部と、
前記学習情報を記憶する記憶部と、を有することを特徴とする撮像装置。
【請求項１２】
コンピュータに画像処理を実行させるコンピュータプログラムであって、
請求項１乃至請求項９の何れか一項に記載の画像処理方法を前記画像処理として実行させるプログラム。
【請求項１３】
請求項１２に記載の画像処理プログラムを記憶していることを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体の法線情報を取得する画像処理方法に関する。
【背景技術】
【０００２】
デジタルカメラ等の撮像装置で被写体を撮像して得られた撮影画像から、被写体の形状情報として面法線の情報（以下、法線情報という）を取得する方法が知られている。法線情報を取得する方法としては、シェイプフロムシェーディング法や、照度差ステレオ法がある。
【０００３】
シェイプフロムシェーディング法は１枚の撮影画像からも法線情報を推定できるが、対象物体の反射率が一様であることや被写体の形状がなめらかに変化すること等の仮定を必要とする。
【０００４】
照度差ステレオ法は、被写体の面法線と光源方向に基づいた反射特性を仮定し、複数の光源位置での被写体の輝度情報と仮定した反射特性とから面法線を決定する方法である。複数の光源位置で撮像した撮影画像を用いることでシェイプフロムシェーディング法よりも少ない仮定の下で法線情報を推定できる。仮定される被写体の反射特性としてはランバートの余弦則に従うランバート反射モデルが用いられることが多い。
【０００５】
一般に、物体での反射には、鏡面反射と拡散反射とがある。鏡面反射は、物体表面での正反射であり、物体表面（界面）においてフレネルの式に従うフレネル反射である。拡散反射は、被写体の表面を透過した後に物体内部で散乱されて光が返ってくる反射である。鏡面反射した光は上述のランバートの余弦則では表せず、撮像装置で観測される被写体からの反射光に鏡面反射光が含まれていると、シェイプフロムシェーディング法や照度差ステレオ法では面法線が正確に求まらない。光源からの光が当たらない陰影部においても仮定した反射モデルからのずれが生じ、被写体の法線情報を正確に取得することができない。さらに、表面の粗い被写体や半透明体などでは拡散反射成分もランバートの余弦則からずれを生じる。また相互反射が生じている場合および拡散反射成分が観測されない金属や透明体などにおいても、被写体の法線情報を正確に取得することができない。
【０００６】
特許文献１には、４つ以上の光源を使用して得られた複数の法線候補から、鏡面反射成分の影響を除いて高精度に面法線を求める方法が開示されている。また、非特許文献１には、畳み込みニューラルネットワークを応用して１枚の撮影画像から法線情報を推定する方法が開示されている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２０１０−１２２１５８号公報
【非特許文献】
【０００８】
【非特許文献１】D. Eigen, et al. “Predicting Depth, Surface Normals and Semantic Labels with a Common Multi-Scale Convolutional Architecture”, arXiv:1411.4734(2014).
【発明の概要】
【発明が解決しようとする課題】
【０００９】
しかし、特許文献１に開示された手法では、鏡面反射成分の影響を受ける撮影画像が複数ある場合、陰影部が生じた場合、ランバートの余弦則からずれた反射特性を持つ被写体の場合、相互反射が生じた場合、および金属や透明体の場合等において、被写体の法線情報を推定できずに破綻してしまう。非特許文献１に開示された手法では、推定できないことによる破綻部は生じにくいが、照度差ステレオ法等で高精度に取得された法線マップに対して推定精度が低い。
【００１０】
そこで、本発明の目的は、反射特性や形状の制約がない一般的な被写体において、破綻の少ない高精度な法線情報を推定することが可能な画像処理方法を提供することにある。
【課題を解決するための手段】
【００１１】
上記の目的を達成するために、本発明に係る画像処理方法は、
被写体空間を撮影した撮影画像と、該被写体空間の法線分布を表す第１の法線マップと、予め学習された学習情報と、を取得する工程と、前記撮影画像の少なくとも一部である入力画像と前記学習情報に基づいて、第２の法線マップを推定する工程と、前記第１および第２の法線マップを合成して、第３の法線マップを生成する工程と、を有し、前記第２の法線マップは、Ｎを２以上の整数、ｎを１からＮまでの整数とした時、前記入力画像に対して、前記学習情報に基づく複数の線型関数それぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換を、ｎが１からＮになるまで順に実行して中間データを生成する工程と、前記中間データに対して、前記学習情報に基づく少なくとも１つ以上の線型関数による第Ｎ＋１線型変換を実行する工程と、を実行することによって生成されることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、反射特性や形状の制約がない一般的な被写体において、破綻の少ない高精度な法線情報を推定することが可能な画像処理方法の提供を実現できる。
【図面の簡単な説明】
【００１３】
【図１】実施例１乃至３における第２の法線マップ推定のネットワーク構造を示した図
【図２】実施例１及び３における撮像装置のブロック図
【図３】実施例１及び３における撮像装置の外観図
【図４】実施例１における第３の法線マップ生成に関するフローを示した図
【図５】実施例１乃至３における学習情報の学習に関するフローを示した図
【図６】実施例２における画像処理システムのブロック図
【図７】実施例２における画像処理システムの外観図
【図８】実施例２における撮像部を示した図
【図９】実施例２における第３の法線マップ生成に関するフローを示した図
【図１０】実施例３における第３の法線マップ生成に関するフローを示した図
【発明を実施するための形態】
【００１４】
以下、本発明を実施するための形態について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照番号を付し、重複する説明は省略する。
【００１５】
実施例の具体的な説明へ入る前に、本発明の要旨を述べる。本発明では、シェイプフロムシェーディング法や照度差ステレオ法などで求めた法線マップ（第１の法線マップ）と、ディープラーニング（深層学習）によって撮影画像から推定した法線マップ（第２の法線マップ）を合成することで、高精度な法線マップ（第３の法線マップ）を得る。ディープラーニングによって推定される法線マップは、照度差ステレオ法などによって取得された法線マップに対して精度が低いが、破綻部を生じにくい。そのため、照度差ステレオ法などで高精度に取得された法線マップの破綻部を、ディープラーニングで推定した法線マップに基づいて補正することによって、破綻の少ない高精度な法線マップを得ることができる。ここで法線マップとは被写体空間の法線情報を画像として並べたマップであり、法線情報とは、法線方向ベクトルや、法線を表す各自由度を指す。
【実施例１】
【００１６】
本発明の画像処理方法を撮像装置へ適用した第１の実施例について述べる。本実施例では、照度差ステレオ法によって第１の法線マップを取得する。
【００１７】
実施例１における基本構成は図２で示され、外観は図３に示されたような撮像装置１００の形態を取っている。まず、各部材の概略を説明することとし、その詳細については後述する。
【００１８】
撮像装置１００は図２に示したように、被写体空間の像を撮影画像として取得する撮像部１０１を有している。撮像部１０１は、被写体空間から入射する光を集光する結像光学系１０１ａと、複数の画素を有する撮像素子１０１ｂを有している。撮像素子１０１ｂは、例えばＣＣＤ（Charge Coupled Device）センサや、ＣＭＯＳ（Complementary Metal-Oxide Semiconductor）センサなどである。撮影画像（部分画像）は画像処理部１０２に入力され、画像処理部１０２は法線情報の推定を行う。
【００１９】
画像処理部１０２は、学習部１０２ａ、第１の法線マップ算出部１０２ｂ、法線マップ整形部１０２ｃを有する。第１の法線マップ算出部１０２ｂは、複数光源環境下で撮影した撮影画像から、照度差ステレオ法を用いて被写体空間の法線情報分布を表す第１の法線マップを生成する。複数光源環境下で撮影した撮影画像は、撮像装置１００が有する光源１１０を選択的に点灯しながら撮影することで取得する。光源１１０を全て消灯し、環境光のみで撮影した撮影画像を含んでもよい。ここでは光源１１０は撮像装置１００と一体的に構成されているが、別途外部装置を用いてもよい。第１の法線マップは、鏡面反射などの影響により推定された法線に破綻が生じている可能性がある。
【００２０】
法線マップ整形部１０２ｃは、学習部１０２ａによって予め学習された学習情報を記憶部１０３から読み出し、第１の法線マップを整形する。この処理の詳細は後述する。整形された法線マップ（第３の法線マップ）は撮影画像と合わせて記録媒体１０５に保存される。表示部１０４には、第３の法線マップを用いて生成された画像（例えばレンダリング画像）を表示することができる。
【００２１】
なお、第１及び第３の法線マップを生成せずに撮影画像のみを記録媒体１０５に保存してもよいし、記憶媒体１０５に保存された撮影画像を読み出して第１及び第３の法線マップを任意のタイミングで生成してもよい。また、撮影画像は動画でもよく、この場合、動画中の１フレームに対して法線マップを生成する。以上の一連の制御は、システムコントローラ１０６によって行われる。
【００２２】
次に、法線マップ整形部１０２ｃで行われる法線マップの整形処理に関して説明する。該整形処理では、事前に学習された学習情報を用いるが、この学習に関する詳細は後述する。図４は、法線マップの整形処理に関するフローチャートである。
【００２３】
ステップＳ１０１では、撮影画像の少なくとも一部である入力画像と学習情報と第１の法線マップを取得する。入力画像は、複数光源環境下で撮影した複数画像のうち一光源条件の画像でもよいし、複数画像それぞれから部分領域を抽出した画像でもよい。複数の部分領域を抽出する際は、各光源環境下の画像に対して同一の位置が含まれるように部分領域を抽出する。ただし、各部分領域のサイズは必ずしも同一でなくてよい。なお、各光源環境下における撮影画像のそれぞれに対して、電子的な手振れ補正処理等の位置ずらし処理を行ってもよい。また、入力画像に複数の光源環境下における被写体の輝度情報が存在する場合は、光源環境に依存した輝度変化から法線を見積もることができるため、部分領域のサイズは小さくてもよい。しかし、ある一光源環境下の画像のみを入力画像とする場合は、画像の構図など非局所的な特徴から法線情報を推定するため、ある程度の画像サイズを有していることが望ましい。学習情報とは、入力画像と法線マップを結びつけるために予め学習された情報である。
【００２４】
ステップＳ１０２では、学習情報を用いて入力画像から第２の法線マップを推定する。該推定処理に関して、図１を用いて説明する。図１は、ディープラーニングの一手法であるＣＮＮ（Convolutional Neural Network）のネットワーク構造を示している。ただし、ＣＮＮ以外の手法、例えばＤＢＮ（Deep Belief Network）などを用いても構わない。ＣＮＮとＤＢＮの詳細に関しては、それぞれ以下の参考文献１及び２を参照するとよい。
［参考文献１］
Y. LeCun, et al. “Gradient-based Learning Applied to Document Recognition”, Proc. of The IEEE, 1998.
［参考文献２］
G. E. Hinton, et al. “A fast learning algorithm for deep belief nets”, Neural Comput.  2006 Jul; 18(7): 1527-54.
ＣＮＮは、複数の層構造になっており、各層で学習情報を用いた線型変換と非線型変換が実行される。ここでｎを１からＮまでの整数とした時、ｎ番目の層を第ｎ層、第ｎ層における線型変換と非線型変換をそれぞれ、第ｎ線型変換と第ｎ非線型変換と呼称する。ただし、Ｎは２以上の整数である。
【００２５】
入力画像２０１は、第１層で複数のフィルタ２０２それぞれとのコンボリューションと、定数（図１中のｂｉａｓ）との和を取られる。前記コンボリューションと和を、複数の線型関数による第１線型変換とする。実施例１において入力画像２０１は、３チャンネルの情報を有し、各チャンネルは異なる光源条件下において撮影された画像である。撮像素子１０１ｂで取得された複数光源環境下における撮影画像から、いずれか３つの光源条件を選択して入力画像とする。ただし、光源条件数はこれに限定されない。
【００２６】
また、各光源条件の画像がＲＧＢ（Red,Green,Blue）成分を有する場合は、色と光源条件をチャンネル成分としてもよいし（この場合、９チャンネルになる）、グレースケールに変換してもよい。さらに前述したように、入力画像２０１はある単一の光源条件下で撮影した画像でもよく、光源１１０を点灯せずに環境光下で撮影した画像でもよい。
【００２７】
また、法線マップのチャンネル数は、法線情報の表現方法によって異なる。法線ベクトルの３次元の成分を各チャンネルに割り当てれば３チャンネルであり、法線ベクトルの方向を２つの角度で表現すれば２チャンネルである。なお、第２の法線マップを得る際に、視点の異なる複数の撮影画像（視差画像）を入力してもよい。視点によっても光の反射角が変化することから被写体の反射特性に応じて撮影画像の輝度値も変化する。従って、同一の被写体に対して異なる光の反射を受けた画像を複数入力することで、推定精度を向上することができる。この際、第１の法線マップを取得する際には視差画像を用いていなくともよい。
【００２８】
フィルタ２０２は複数存在し、それぞれと入力画像２０１とのコンボリューションを個別に算出する。フィルタ２０２の係数は、学習情報から決定される。学習情報はフィルタ係数そのものでもよいし、フィルタをなんらかの関数でフィッティングした際の係数でもよい。フィルタ２０２それぞれのチャンネル数は入力画像２０１と一致し、入力画像２０１のチャンネル数が２以上の場合、３次元フィルタとなる（３次元目がチャンネル数を表す）。
【００２９】
入力画像２０１は、第１線型変換を施された後、活性化関数（Activation Function：図１ではＡＦと表記）と呼ばれる非線型関数で変換（第１非線型変換）される。活性化関数ｆ（ｘ）の例としては、以下の式（１）乃至（３）が挙げられる。
【００３０】
【数１】
2020197774.tif 000003
【００３１】
【数２】
2020197774.tif 000004
【００３２】
【数３】
2020197774.tif 000005
【００３３】
式（１）はシグモイド関数、式（２）はハイパボリックタンジェント関数、式（３）はＲｅＬＵ（Rectified Linear Unit）と呼ばれる。式（３）中のｍａｘは、引数のうち最大値を出力するＭＡＸ関数を表す。式（１）乃至（３）は、全て単調増加関数である。また、活性化関数としてＭａｘｏｕｔを使用してもよい。Ｍａｘｏｕｔは、第ｎ線型変換の出力の各画素に対して、チャンネルの中から最大値の信号値を出力するＭＡＸ関数である。Ｍａｘｏｕｔに関しては、以下の参考文献３に詳しい。
［参考文献３］
I. J. Goodfellow, et al., “Maxout networks”, arXiv preprint arXiv:1302.4389 (2013).
第１線型変換、及び第１非線型変換を施された入力画像２０１を、第１変換データ２０３と呼称する。ここで、第１変換データ２０３の各チャンネル成分は、入力画像２０１とフィルタ２０２それぞれのコンボリューションから生成される。そのため、第１変換データ２０３のチャンネル数は、フィルタ２０２の数と同じになる。図１において、第１変換データ２０３のチャンネル数は４であるが、発明はこれに限定されない。
【００３４】
第２層では、第１変換データ２０３に対して、第１層と同様に学習情報から決定される複数のフィルタ２０４とのコンボリューション及び定数の和（第２線型変換）を行い、活性化関数による非線型変換（第２非線型変換）を施す。第２層で使用するフィルタ２０４は、第１層で使用するフィルタ２０２と一般に同一ではない。フィルタのサイズや数も一致しなくて良い。ただし、フィルタ２０４のチャンネル数と第１変換データ２０３のチャンネル数は一致する。同様の演算を第Ｎ層まで繰り返すことで、中間データ２１０を得る。最後に、第Ｎ＋１層で中間データ２１０に対し、第Ｎ＋１線型変換として全結合（Ｆｕｌｌ  Ｃｏｎｎｅｃｔｉｏｎ：図１ではＦＣと表記）２１１を実行する。全結合２１１は、中間データにおける全信号の線型結合と定数の和を行う。この際、各信号にかかる係数と定数は、学習情報によって決定される。また、係数と定数は複数種類が存在し、それぞれの係数と定数に対して線型結合が計算され、複数の結果が出力される。それらの出力を配列したものが、推定法線２１２となる。
【００３５】
入力画像２０１が撮影画像の画角全体を含む場合は、推定法線情報２１２が第２の法線マップとなる。入力画像２０１が撮影画像の画角を部分的にのみ含む場合は、撮影画像の異なる位置から入力画像２０１を複数抽出し、それぞれの入力画像２０１で推定された推定法線２１２を合成することによって、第２の法線マップを得る。なお、入力画像２０１と推定法線２１２のサイズは必ずしも一致しなくてよい。コンボリューション時、入力画像２０１の外側にはデータが存在しないため、データの存在する領域のみで演算すると、コンボリューション結果はサイズが小さくなる。ただし、適当な境界条件をかすことで、サイズを保つこともできる。また、第Ｎ＋１線型変換は全結合でなく、フィルタとのコンボリューションでもよく、逆に第１乃至第Ｎ線型変換で全結合を用いてもよい。さらに、任意の層でダウンサンプリングであるプーリング（Pooling）などを行ってもよい。
【００３６】
ディープラーニングが高い性能を発揮できる理由は、非線型変換を多層構造によって何度も行うことで、高い非線型性が得られるためである。仮に、非線型変換を担う活性化関数が存在せず、線型変換のみでネットワークが構成されていた場合、いくら多層にしてもそれと等価な単層の線型変換が存在するため、多層構造にする意味がない。ディープラーニングは、より多層にする方が強い非線型を得られるため、高い性能が出やすいと言われている。一般に、少なくとも３層以上を有する場合がディープラーニングと呼ばれている。
【００３７】
ステップＳ１０３では、第１の法線マップの信頼度マップと撮影画像のラベルマップを取得する。信頼度マップとは、第１の法線マップの各位置において、法線情報の値がどの程度信頼できるかを示した分布である。信頼度マップは、例えば第１の法線マップがランバートモデルを仮定した照度差ステレオ法から算出されている場合、第１の法線マップおよびランバートモデルから推測される輝度値と実際の輝度値との差分量などから生成することができる。ラベルマップとは、被写体の特性に基づいて撮影画像の各領域をラベル付けした分布である。被写体の特性とは、主に透過・反射特性を指し、例えば以下の参考文献４に挙げた手法などで被写体の材質ごとにラベル付けをすることで、その領域がどのような透過・反射特性を有しているかが分かる。他にも鏡面反射領域、相互反射領域、または影領域など第１の法線マップを取得する際に破綻の原因となる領域を公知の手法により取得してラベル付けしてもよい。
［参考文献４］
S. Bell, et al., “Material recognition in the wild with the materials in context database”, Proceedings of the IEEE conference on CVPR (2015).
ここで照度差ステレオ法などの各法線取得方法において、どのような被写体が法線取得の破綻部になるか説明する。まず、照度差ステレオ法に関して述べる。照度差ステレオ法によって法線を取得する場合、異なる光源環境下で撮影した際の輝度の変化から法線方向を取得する。一般の反射特性に対応した照度差ステレオ法もあるが、撮影枚数や計算負荷が増えるため、多くの場合はランバートモデルに従う拡散反射を仮定している。従って鏡面反射が観測される場合には誤った法線が取得される。入射光が遮蔽される影部や入射光が当たらない陰部、他の物体からの反射光が入射する相互反射による輝度の変化によっても法線が破綻しやすい。表面の粗い被写体や内部散乱の強い半透明体においてはランバートモデルから外れた反射特性を示し、また光沢のある金属やグラスのような透明体では拡散反射が観測されないため、これらの被写体においても法線が破綻しやすい。また、環境光が強い場合には、光源からの入射光による寄与が相対的に小さくなり、取得精度が低下する。シェイプフロムシェーディング法においてもランバートモデルが仮定されることが多く、同様の被写体で破綻が生じやすい。また法線の連続的な変化を仮定した場合に、細かい凹凸形状がなまされる場合がある。
【００３８】
また、予め取得した距離マップから法線情報を取得する方法もある。この場合は遠近の被写体に対する境界部で距離が不連続的に変化すると誤った法線情報が推定される。法線情報は距離情報の微分に相当するため、距離マップのノイズにも強く影響される。また、距離マップの取得方法によって距離マップ自体に破綻がある場合もあり、この場合も法線情報が破綻する。例えば多視点画像から視点間の相関をもとに距離を取得する場合、視点ごとに見えの異なる鏡面反射体や透明体、オクルージョン、テクスチャが少ないために位置ごとの輝度変化も少ない被写体や、周期的な構造を持つ被写体などによって距離が破綻しやすい。Ｔｉｍｅ  ｏｆ  ｆｌｉｇｈｔ法によって距離を取得する場合は、光が返ってこない鏡面反射体や透明体で距離が取得できなかったり、低反射物体や外光の強い環境下でノイズによって取得精度が低下したりする。
【００３９】
以上のような第１の法線マップの精度が低くなる領域を判定するために、ラベルマップや信頼度マップを取得する。
【００４０】
ステップＳ１０４では、信頼度マップとラベルマップに基づいて、第１及び第２の法線マップを合成し、第３の法線マップを生成する。合成に使用するのは、信頼度マップとラベルマップのどちらか一方のみでもよい。前述したような第１の法線マップにおいて精度が低下する領域を、信頼度マップとラベルマップから判定し、該領域において第２の法線マップの重みを大きくして合成を行う。それ以外の領域においては、第１の法線マップの重みを大きくすることが望ましい。これは仮定が成り立つ領域においては、第１の法線マップの方が高精度に法線を取得できている可能性が高いためである。合成は、第１及び第２の法線マップの加重平均によって行ってもよいし、第１の法線マップの精度が低い領域のみを第２の法線マップで置換する（第１の法線マップの重みがゼロの場合に相当）ことによって行ってもよい。これによって、第１の法線マップにおける破綻部、又は低精度な領域が補正された第３の法線マップを生成することができる。
【００４１】
ステップＳ１０５では、第３の法線マップを出力する。
【００４２】
以上の処理によって、破綻の少ない高精度な法線マップを推定することができる。
【００４３】
なお、第１の法線マップを取得する方法は照度差ステレオ法に限定されず、シェイプフロムシェーディング法や視差画像から取得した被写体空間のデプスマップ（距離マップ）に基づいて取得してもよい。
【００４４】
次に、学習情報の学習に関して、図５のフローチャートを用いて説明する。学習は、第２の法線マップの生成前であれば、撮像装置１００の学習部１０２ａで行なってもよいし、撮像装置１００とは別の演算装置で行なってもよい。本実施例では、学習部１０２ａで学習を実行する場合を例に挙げて説明する。
【００４５】
ステップＳ２０１では、複数の学習ペアを取得する。学習ペアとは参照画像と該参照画像に対応する参照法線マップである。参照画像は、第２の法線マップを求める際の入力画像と同じ形式の画像である。例えば、入力画像がある一つの光源環境下の画像であれば、参照画像もある一つの光源環境下の画像であり、入力画像が異なる複数の光源環境下の画像であれば参照画像も同様である。参照画像と参照法線マップは、実際の被写体に対して実写、及び法線を実測したデータを用いてもよいし、ＣＧによるシミュレーションの結果を用いてもよい。学習情報は第１の法線マップの補正に使用するため、参照画像の幾つかには第１の法線マップで法線の精度が低くなる被写体が含まれている。本実施例では照度差ステレオ法により第１の法線マップを生成するため、参照画像には前述したように照度差ステレオ法が破綻しやすい被写体である、金属や透明体、ランバートモデルに従わない反射特性の被写体などが含まれる。
【００４６】
ステップＳ２０２では、複数の学習ペアから学習情報を生成する。学習では、第２の法線マップ生成と同じネットワーク構造を使用する。本実施例では、図１に示したネットワーク構造に対して参照画像を入力し、その出力結果と参照法線マップの誤差を算出する。該誤差が最小化されるように、例えば誤差逆伝播法（Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）などを用いて、第１乃至Ｎ＋１層で用いる係数と和をとる定数（学習情報）を更新、最適化する。フィルタや全結合の係数と定数の初期値はなんでもよく、例えば乱数から決定するとよい。或いは、各層ごとに初期値を事前学習するＡｕｔｏ  Ｅｎｃｏｄｅｒなどのプレトレーニングを行なってもよい。Ａｕｔｏ  Ｅｎｃｏｄｅｒに関しては、以下の参考文献５に詳しい。
［参考文献５］
G. E. Hinton & R .R. Salakhutdinov (2006-07-28). “Reducing the Dimensionality of Data with Neural Networks”, Science 313(5786): 504-507.
学習ペアを全てネットワーク構造へ入力し、それら全ての情報を使って学習情報を更新する手法をバッチ学習と呼ぶ。ただし、この学習方法は学習ペアの数が増えるにつれて、計算負荷が膨大になってしまう。逆に、学習情報の更新に１つの学習ペアのみを使用し、更新ごとに異なる学習ペアを使用する学習手法をオンライン学習と呼ぶ。この手法は、学習ペアが増えても計算量が増大しない利点があるが、その代わりに１つの学習ペアに存在するノイズの影響を大きく受ける問題がある。そのため、これら２つの手法の中間に位置するミニバッチ法を用いて学習することが望ましい。ミニバッチ法は、全学習ペアの中から少数を抽出し、それらを用いて学習情報の更新を行なう。次の更新では、異なる小数の学習ペアを抽出して使用する。これを繰り返すことで、バッチ学習とオンライン学習の問題点を小さくすることができ、法線の推定精度が向上しやすくなる。
【００４７】
ステップＳ２０３では、学習された学習情報を出力する。本実施例では、学習情報は記憶部１０３に記憶される。
【００４８】
以上の処理によって、破綻の少ない高精度な法線マップを推定することが可能な学習情報を学習することができる。
【００４９】
また、以上の処理に加えて、ＣＮＮの性能を向上させる工夫を併用してもよい。例えば、ロバスト性の向上のためネットワークの各層において、ドロップアウト（Ｄｒｏｐｏｕｔ）やダウンサンプリングであるプーリング（ｐｏｏｌｉｎｇ）を行なってもよい。或いは学習精度の向上のため、学習画像の画素の平均値を０、分散を１に正規化してもよい。ドロップアウトに関しては、以下の参考文献６に詳しく記載されている。
［参考文献６］
N. Srivastava, et al., “Dropout: A simple way to prevent neural networks from overfitting”, The Journal of Machine Learning Research, 15(1):1929-1958, 2014.
以上の構成によって、破綻の少ない高精度な法線マップを推定することが可能な撮像装置を提供することができる。
【実施例２】
【００５０】
本発明の画像処理方法を画像処理システムに適用した第２の実施例に関して述べる。実施例２では、法線マップを推定する画像処理装置と、撮影画像を取得する撮像装置、学習を行なうサーバーが個別に存在している。また、多視点画像から取得したデプスマップに基づいて第１の法線マップを算出する。
【００５１】
実施例２における画像処理システムの基本構成は図６で示され、外観は図７に示されたような形態を取っている。撮像装置３００の撮像部３３０は、被写体空間の多視点画像（撮影画像）を取得する。
【００５２】
撮像部３３０は、図８に示すような構成をしており、該構成はＰｌｅｎｏｐｔｉｃ１．０構成と呼ばれる。図８中の一点鎖線は軸上光束を表す。撮像素子３３０ｂは、マイクロレンズアレイ３２２と、複数の画素３２１を有する。マイクロレンズアレイ３２２は、結像光学系３３０ａを介して被写体面３２０と共役になる位置に配置される。マイクロレンズアレイ３２２を構成するマイクロレンズには、それぞれ複数の画素が対応付けられている。これによって結像光学系３０１ａの瞳を分割し、１つのマイクロレンズに対応する各画素が異なる視点（瞳の位置）から被写体空間を観察した情報を取得することで、多視点画像を取得する。本実施例では、１つのマイクロレンズに対して２次元的に４つの画素が配列されており、４視点の画像を取得する。なお、撮像部３３０の構成はこれに限定されず、多視点画像を取得可能な構成（複眼など）であればなんでもよい。また、視点数にも限定はない。取得された多視点画像は、画像処理装置３０１内の記憶部３０２に記憶される。
【００５３】
画像処理装置３０１は、推定部３０３にて多視点画像からブロックマッチングなどの公知の方法によって一度デプスマップを算出し、該デプスマップの差分に基づいて第１の法線マップを推定する。さらに画像処理装置３０１は、ネットワーク３０５と有線、又は無線で接続されており、同様に接続されたサーバー３０６にアクセスする。サーバー３０６は、撮影画像から第２の法線マップを算出するための学習情報を学習する学習部３０８と、該学習情報を記憶する記憶部３０７を有している。画像処理装置３０１は、サーバー３０６の記憶部３０７から学習情報を取得し、整形部３０４で撮影画像から第２の法線マップを算出する。その後、整形部３０４は第１及び第２の法線マップを合成し、第３の法線マップを生成する。第３の法線マップ、或いは第３の法線マップを用いて画像処理（例えば、仮想光源を用いてレンダリングしたリライティング画像など）を施された撮影画像は、表示装置３０９、記録媒体３１０、出力装置３１１の少なくともいずれかに出力される。
【００５４】
表示装置３０９は、例えば液晶ディスプレイやプロジェクタなどである。ユーザーは表示装置３０９を介して、処理途中の画像を確認しながら作業を行うことができる。記録媒体３１０は、例えば半導体メモリ、ハードディスク、ネットワーク上のサーバー等である。出力装置３１１は、プリンタなどである。画像処理装置３０１は、必要に応じて現像処理やその他の画像処理を行う機能を有していてよい。
【００５５】
次に、整形部３０４で行なう第３の法線マップ生成処理を、図９のフローチャートを用いて説明する。実施例２では、撮影画像のラベルマップ、又は第１の法線マップの信頼度マップに基づいて、撮影画像から第１の法線マップの精度が低い領域のみを入力画像として抽出する。これにより、第２の法線マップを算出する領域が小さくなり、計算負荷が低減される。
【００５６】
ステップＳ３０１では、撮影画像と第１の法線マップを取得する。
【００５７】
ステップＳ３０２では、撮影画像の法線マップと第１の法線マップの信頼度マップを取得する。ただし、取得するのはどちらか一方のみでもよい。
【００５８】
ステップＳ３０３では、ラベルマップ、及び信頼度マップ（どちらか一方のみでもよい）に基づいて、撮影画像から入力画像を抽出する。入力画像は、第１の法線マップにおいて法線の精度が低い領域である。実施例１のステップＳ１０３で説明したような被写体の領域を入力画像として抽出する。また、実施例２における入力画像は、撮影画像のうち少なくとも２枚以上の視点が異なる複数の画像それぞれから、同一位置の部分領域を抽出した複数の画像である。つまり、入力画像は単一の画像ではなく、視点が異なる２枚以上の画像を含む。単一の画像からディープラーニングを用いて法線を取得するためには、画像内の被写体の配置に関する非局所的な情報があると有利である。しかし、実施例２における入力画像は、撮影画像の画角の一部のみしか含まれないため、非局所的な被写体の配置に関する情報が不足する可能性がある。そのため、視点の異なる複数の画像から、第２の法線マップを推定する。これは撮像装置３００に複数の光源を有する撮像系を使用した場合も同様であり、この際の入力画像は２枚以上の光源条件が異なる画像を含む。
【００５９】
ステップＳ３０４では、入力画像から第２の法線マップを算出する。算出には、実施例１と同様に図１のネットワーク構造を用いる。
【００６０】
ステップＳ３０５では、第１及び第２の法線マップを合成し、第３の法線マップを生成する。第２の法線マップの法線が算出された領域における第１の法線マップの法線を、第２の法線マップの法線で置換することで、第３の法線マップを生成する。ただし、合成方法はこれに限定されない。
【００６１】
ステップＳ３０６では、第３の法線マップを出力する。
【００６２】
以上の処理によって、破綻の少ない高精度な法線マップを推定することができる。
【００６３】
学習部３０８が行なう学習情報の学習は、実施例１と同様に図５に示したフローチャートに従う。学習情報の学習は複数の参照画像を用いて行う。実施例２では、第１の法線マップにおいて精度が低い領域のみを、第２の法線マップを算出する際の入力画像とするため、参照画像は第１の法線マップにおいて精度が低くなる被写体のみを含むようにしてもよい。
【００６４】
以上のような構成により、破綻の少ない高精度な法線マップを推定することが可能な画像処理システムを提供することができる。
【実施例３】
【００６５】
本発明の画像処理方法を撮像装置に適用した第３の実施例に関して述べる。実施例３では、シェイプフロムシェーディング法によって第１の法線マップを得る。
【００６６】
撮像装置の構成は図２と同様であり、外観は図３と同様である。実施例１では第１の法線マップ算出部１０２ｂは照度差ステレオ法に基づいて法線を算出したのに対し、実施例３ではシェイプフロムシェーディング法に基づいて第１の法線マップを算出する点で異なる。シェイプフロムシェーディング法では複数の光源条件での撮影は必須ではないため、光源１１０は使わなくともよく、通常の補助光として用いてもよい。その他の部材の説明は実施例１と同様のため省略する。
【００６７】
法線マップ整形部１０２ｃは、図１０のフローチャートに従って第３の法線マップを生成する。
【００６８】
ステップＳ４０１では、入力画像と学習情報と第１の法線マップを取得する。本実施例において、入力画像は撮影画像全体である。
【００６９】
ステップＳ４０２では、第２の法線マップを推定する。実施例１と同様に図１のネットワーク構造を用いて推定を行う。
【００７０】
ステップＳ４０３では、第１及び第２の法線マップを合成して、第３の法線マップを生成する。第１の法線マップにおいて局所的に法線のばらつきが大きい領域、或いは第１及び第２の法線マップの間で法線の乖離が大きい領域は、第１の法線マップの精度が低い領域と思われる。そのため、該領域は第２の法線マップの重みを大きくして合成を行う。
【００７１】
ステップＳ４０４では、第３の法線マップを出力する。
【００７２】
学習部４０２ａで行う学習情報の学習は実施例１と同様のため、省略する。
【００７３】
以上の構成により、破綻の少ない高精度な法線マップを推定することが可能な撮像装置を提供することができる。
【００７４】
（他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７５】
各実施例によれば、破綻の少ない高精度な法線マップを推定することが可能な画像処理装置、撮像装置、画像処理方法、画像処理プログラム、および、記憶媒体を提供することができる。
【００７６】
以上、本発明の好ましい実施形態について説明したが、本発明はこれらの実施形態に限定されたものではなく、その要旨の範囲内で様々な変形、及び変更が可能である。
【符号の説明】
【００７７】
１００  撮像装置、１０１ａ  結像光学系、１０１ｂ  撮像素子、
１０２ａ  学習部、１０２ｂ  第１の法線マップ算出部、
１０２ｃ  法線マップ整形部、２０１  入力画像、
２０２及び２０４  フィルタ、２０３  第１変換データ、
２１０  中間データ、２１１  全結合、２１２  推定法線、
３００  撮像装置、３０１  画像処置装置、３０６  サーバー、
３０９  表示装置、３１０  記録媒体、３１１  出力装置、
３３０  撮像部
【図１】
2020197774.tif 000006
【図２】
2020197774.tif 000007
【図３】
2020197774.tif 000008
【図４】
2020197774.tif 000009
【図５】
2020197774.tif 000010
【図６】
2020197774.tif 000011
【図７】
2020197774.tif 000012
【図８】
2020197774.tif 000013
【図９】
2020197774.tif 000014
【図１０】
2020197774.tif 000015