(57)【要約】【課題】撮像画像から高精度に法線情報を推定することが可能な画像処理方法を提供する。【解決手段】画像処理方法は、異なる光源環境で被写体を撮影して得られた複数の撮影画像に基づく入力データを取得する工程と、法線情報に関する学習データを取得する工程と、入力データと学習データとに基づいて被写体に関する法線情報を推定する工程とを有し、法線情報を推定する工程は、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、入力データに対して、学習データに基づく複数の線型関数のそれぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換とをｎが１からＮになるまで順に実行することで中間データを生成する工程と、中間データに対して、学習データに基づく少なくとも一つの線型関数による第Ｎ＋１線型変換を実行する工程とを含む。【選択図】図１
2019139694.tif 000002
【特許請求の範囲】
【請求項１】
異なる光源環境で被写体を撮影して得られた複数の撮影画像に基づく入力データを取得する工程と、
法線情報に関する学習データを取得する工程と、
前記入力データと前記学習データとに基づいて前記被写体に関する法線情報を推定する工程と、を有し、
前記法線情報を推定する工程は、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、
前記入力データに対して、前記学習データに基づく複数の線型関数のそれぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換とをｎが１からＮになるまで順に実行することで中間データを生成する工程と、
前記中間データに対して、前記学習データに基づく少なくとも一つの線型関数による第Ｎ＋１線型変換を実行する工程と、を含むことを特徴とする画像処理方法。
【請求項２】
前記光源環境に関する光源情報を取得する工程を更に有し、
前記入力データのサイズまたは前記学習データは、前記光源情報に基づいて決定されることを特徴とする請求項１に記載の画像処理方法。
【請求項３】
前記被写体の位置情報を取得する工程を更に有し、
前記入力データの大きさまたは前記学習データは、前記位置情報に基づいて決定されることを特徴とする請求項１または２に記載の画像処理方法。
【請求項４】
前記第ｎ線型変換（ｎ＝１〜Ｎ）のそれぞれは、前記学習データに基づく複数のフィルタの各々とのコンボリューションを含むことを特徴とする請求項１乃至３のいずれか１項に記載の画像処理方法。
【請求項５】
前記法線情報を推定する工程において、前記第Ｎ＋１線型変換は、前記学習データに基づくフィルタとのコンボリューションを含むことを特徴とする請求項４に記載の画像処理方法。
【請求項６】
前記光源環境に関する光源情報を取得する工程を更に有し、
前記第ｎ線型変換（ｎ＝１〜Ｎ）および前記第Ｎ＋１線型変換のそれぞれにおける前記フィルタのサイズは、前記光源情報に基づいて決定されることを特徴とする請求項５に記載の画像処理方法。
【請求項７】
前記被写体の位置情報を取得する工程を更に有し、
前記第ｎ線型変換（ｎ＝１〜Ｎ）および前記第Ｎ＋１線型変換のそれぞれにおける前記フィルタのサイズは、前記位置情報に基づいて決定されることを特徴とする請求項５に記載の画像処理方法。
【請求項８】
前記入力データは、前記被写体の距離マップを含むことを特徴とする請求項１乃至７のいずれか１項に記載の画像処理方法。
【請求項９】
前記法線情報の推定は、前記被写体の距離マップを推定することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理方法。
【請求項１０】
前記入力データは、前記被写体の反射特性マップを含むことを特徴とする請求項１乃至９のいずれか１項に記載の画像処理方法。
【請求項１１】
前記法線情報の推定は、前記被写体の反射特性マップを推定することを特徴とする請求項１乃至９のいずれか１項に記載の画像処理方法。
【請求項１２】
前記入力データは、鏡面反射成分が除去された画像を含むことを特徴とする請求項１乃至１１のいずれか１項に記載の画像処理方法。
【請求項１３】
法線情報に関する学習データを記憶する記憶部と、
異なる光源環境で被写体を撮影して得られた複数の撮影画像に基づく入力データと、前記学習データとに基づいて前記被写体に関する法線情報を推定する画像処理部と、を有し、
前記画像処理部は、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、
前記入力データに対して、前記学習データに基づく複数の線型関数のそれぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換とをｎが１からＮになるまで順に実行することで中間データを生成し、
前記中間データに対して、前記学習データに基づく少なくとも一つの線型関数による第Ｎ＋１線型変換を実行することを特徴とする画像処理装置。
【請求項１４】
被写体空間の像を取得する撮像部と、
請求項１３に記載の画像処理装置と、を有することを特徴とする撮像装置。
【請求項１５】
請求項１乃至１２のいずれか１項に記載の画像処理方法をコンピュータに実行させることを特徴とする画像処理プログラム。
【請求項１６】
請求項１５に記載の画像処理プログラムを記憶していることを特徴とする記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体の法線情報を取得する画像処理方法に関する。
【背景技術】
【０００２】
特許文献１には、４つ以上の光源を使用して得られた複数の法線候補から真の面法線を求める方法が開示されている。非特許文献１には、畳み込みニューラルネットワークを応用して１枚の撮影画像から法線情報を推定する方法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１０−１２２１５８号公報
【非特許文献】
【０００４】
【非特許文献１】Ｄ．  Ｅｉｇｅｎ，  ｅｔ  ａｌ．  “Ｐｒｅｄｉｃｔｉｎｇ  Ｄｅｐｔｈ，  Ｓｕｒｆａｃｅ  Ｎｏｒｍａｌｓ  ａｎｄ  Ｓｅｍａｎｔｉｃ  Ｌａｂｅｌｓ  ｗｉｔｈ  ａ  Ｃｏｍｍｏｎ  Ｍｕｌｔｉ−Ｓｃａｌｅ  Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ”，  ａｒＸｉｖ：１４１１．４７３４（２０１４）．
【非特許文献２】Ｙ．ＬｅＣｕｎ，ｅｔ  ａｌ．，  “Ｇｒａｄｉｅｎｔ−ｂａｓｅｄ  Ｌｅａｒｎｉｎｇ  Ａｐｐｌｉｅｄ  ｔｏ  Ｄｏｃｕｍｅｎｔ  Ｒｅｃｏｇｎｉｔｉｏｎ”，  Ｐｒｏｃ．  ｏｆ  Ｔｈｅ  ＩＥＥＥ，  １９９８．
【非特許文献３】Ｇ．Ｅ．Ｈｉｎｔｏｎ，ｅｔ  ａｌ．，  “Ａ  ｆａｓｔ  ｌｅａｒｎｉｎｇ  ａｌｇｏｒｉｔｈｍ  ｆｏｒ  ｄｅｅｐ  ｂｅｌｉｅｆ  ｎｅｔｓ”，  Ｎｅｕｒａｌ  Ｃｏｍｐｕｔ．  ２００６  Ｊｕｌ；  １８（７）：  １５２７−５４．
【非特許文献４】Ｉ．Ｊ．Ｇｏｏｄｆｅｌｌｏｗ，ｅｔ  ａｌ．，  “Ｍａｘｏｕｔ  ｎｅｔｗｏｒｋｓ”，  ａｒＸｉｖ  ｐｒｅｐｒｉｎｔ  ａｒＸｉｖ：１３０２．４３８９  （２０１３）．
【非特許文献５】Ｇ．Ｅ．Ｈｉｎｔｏｎ  ＆  Ｒ．Ｒ．Ｓａｌａｋｈｕｔｄｉｎｏｖ  （２００６−０７−２８）．  “Ｒｅｄｕｃｉｎｇ  ｔｈｅ  Ｄｉｍｅｎｓｉｏｎａｌｉｔｙ  ｏｆ  Ｄａｔａ  ｗｉｔｈ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋｓ”，  Ｓｃｉｅｎｃｅ  ３１３（５７８６）：  ５０４−５０７．
【非特許文献６】Ｎ．Ｓｒｉｖａｓｔａｖａ，ｅｔ  ａｌ．，  “Ｄｒｏｐｏｕｔ：  Ａ  ｓｉｍｐｌｅ  ｗａｙ  ｔｏ  ｐｒｅｖｅｎｔ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ  ｆｒｏｍ  ｏｖｅｒｆｉｔｔｉｎｇ”，  Ｔｈｅ  Ｊｏｕｒｎａｌ  ｏｆ  Ｍａｃｈｉｎｅ  Ｌｅａｒｎｉｎｇ  Ｒｅｓｅａｒｃｈ，  １５（１）：１９２９-１９５８，  ２０１４．
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかし特許文献１の方法では、鏡面反射成分の影響を受ける撮影画像が複数ある場合、陰影部が生じた場合、ランバートの余弦則からずれた反射特性を持つ被写体の場合、相互反射が生じた場合、または、金属や透明体の場合等に、被写体の法線情報を推定できない。非特許文献１に開示された手法では、ある光源条件下での撮影画像のみから推定するため、被写体の反射率の変化と形状の影響を分離することが難しく、推定精度が十分でない。
【０００６】
そこで本発明は、撮像画像から高精度に法線情報を推定することが可能な画像処理方法、画像処理装置、撮像装置、画像処理プログラム、および、記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一側面としての画像処理方法は、異なる光源環境で被写体を撮影して得られた複数の撮影画像に基づく入力データを取得する工程と、法線情報に関する学習データを取得する工程と、前記入力データと前記学習データとに基づいて前記被写体に関する法線情報を推定する工程とを有し、前記法線情報を推定する工程は、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、前記入力データに対して、前記学習データに基づく複数の線型関数のそれぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換とをｎが１からＮになるまで順に実行することで中間データを生成する工程と、前記中間データに対して、前記学習データに基づく少なくとも一つの線型関数による第Ｎ＋１線型変換を実行する工程とを含む。
【０００８】
本発明の他の側面としての画像処理装置は、法線情報に関する学習データを記憶する記憶部と、異なる光源環境で被写体を撮影して得られた複数の撮影画像に基づく入力データと、前記学習データとに基づいて前記被写体に関する法線情報を推定する画像処理部とを有し、前記画像処理部は、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、Ｎを２以上の整数、ｎを１からＮまでの整数とするとき、前記入力データに対して、前記学習データに基づく複数の線型関数のそれぞれによる第ｎ線型変換と、非線型関数による第ｎ非線型変換とをｎが１からＮになるまで順に実行することで中間データを生成し、前記中間データに対して、前記学習データに基づく少なくとも一つの線型関数による第Ｎ＋１線型変換を実行する。
【０００９】
本発明の他の側面としての撮像装置は、被写体空間の像を取得する撮像部と前記画像処理装置とを有する。
【００１０】
本発明の他の側面としての画像処理プログラムは、前記画像処理方法をコンピュータに実行させる。
【００１１】
本発明の他の側面としての記憶媒体は、前記画像処理プログラムを記憶している。
【００１２】
本発明の他の目的及び特徴は、以下の実施例において説明される。
【発明の効果】
【００１３】
本発明によれば、撮像画像から高精度に法線情報を推定することが可能な画像処理方法、画像処理装置、撮像装置、画像処理プログラム、および、記憶媒体を提供することができる。
【図面の簡単な説明】
【００１４】
【図１】実施例１および実施例２における法線情報を推定するネットワーク構造を示す図である。
【図２】実施例１における撮像装置のブロック図である。
【図３】実施例１における撮像装置の外観図である。
【図４】実施例１における法線情報の推定処理を示すフローチャートである。
【図５】実施例１における学習データの学習を示すフローチャートである。
【図６】実施例２における画像処理システムのブロック図である。
【図７】実施例２における画像処理システムの外観図である。
【図８】実施例２における法線情報の推定処理を示すフローチャートである。
【発明を実施するための形態】
【００１５】
以下、本発明の実施例について、図面を参照しながら詳細に説明する。各図において、同一の部材については同一の参照符号を付し、重複する説明は省略する。
【００１６】
デジタルカメラ等の撮像装置で被写体を撮像して得られた撮影画像から、被写体の形状情報として面法線の情報（以下、法線情報という）を取得する方法が知られている。法線情報を取得する方法としては、Ｓｈａｐｅ  ｆｒｏｍ  Ｓｈａｄｉｎｇや、照度差ステレオ法がある。Ｓｈａｐｅ  ｆｒｏｍ  Ｓｈａｄｉｎｇは、１枚の撮影画像からも法線情報を推定できるが、対象物体の反射率が一様であることや被写体の形状がなめらかに変化すること等の仮定を必要とする。照度差ステレオ法は、被写体の面法線と光源方向とに基づいて反射特性を仮定し、複数の光源位置での被写体の輝度情報と仮定した反射特性とから面法線を決定する方法である。複数の光源位置で撮像した撮影画像を用いることにより、Ｓｈａｐｅ  ｆｒｏｍ  Ｓｈａｄｉｎｇよりも少ない仮定の下で法線情報を推定することができる。仮定される被写体の反射特性として、ランバートの余弦則に従うランバート反射モデルが用いられることが多い。
【００１７】
一般に、物体での反射には、鏡面反射と拡散反射とがある。鏡面反射は、物体表面での正反射であり、物体表面（界面）においてフレネルの式に従うフレネル反射である。拡散反射は、被写体の表面を透過した後に物体内部で散乱されて光が返ってくる反射である。鏡面反射した光は、前述のランバートの余弦則で表すことはできない。このため、撮像装置で観測される被写体からの反射光に鏡面反射光が含まれていると、Ｓｈａｐｅ  ｆｒｏｍ  Ｓｈａｄｉｎｇや照度差ステレオ法では面法線を正確に求めることができない。また、光源からの光が当たらない陰影部においても、仮定した反射モデルからのずれが生じ、被写体の法線情報を正確に取得することができない。また、表面の粗い被写体や半透明体などに関しては、拡散反射成分もランバートの余弦則からずれを生じる。また、相互反射が生じている場合および拡散反射成分が観測されない金属や透明体などにおいても、被写体の法線情報を正確に取得することができない。
【００１８】
本発明の各実施例は、ディープラーニング（深層学習とも呼ばれる）を用いて、撮影画像から被写体の法線情報を推定する。ここで法線情報とは、法線方向ベクトルや、法線を表す各自由度を指す。各実施例によれば、異なる光源環境下で被写体を撮影した複数の撮影画像とその法線情報とを用いて、対応関係をディープラーニングで学習することにより、法線情報を高精度に推定することができる。
【実施例１】
【００１９】
まず、図２および図３を参照して、本発明の実施例１における撮像装置について説明する。図２は、撮像装置１００のブロック図である。図３は、撮像装置１００の外観図である。本実施例において、撮像装置１００は、画像処理方法を実行し、ディープラーニングを用いて撮影画像から被写体の法線情報を推定する。
【００２０】
撮像装置１００は、被写体空間の像を撮影画像（入力画像）として取得する撮像部１０１を有する。撮像部１０１は、被写体空間から入射する光を集光する結像光学系１０１ａと、複数の画素を有する撮像素子１０１ｂとを有する。撮像素子１０１ｂは、例えば、ＣＣＤ（Ｃｈａｒｇｅ  Ｃｏｕｐｌｅｄ  Ｄｅｖｉｃｅ）センサやＣＭＯＳ（Ｃｏｍｐｌｅｍｅｎｔａｒｙ  Ｍｅｔａｌ−Ｏｘｉｄｅ  Ｓｅｍｉｃｏｎｄｕｃｔｏｒ）センサである。
【００２１】
画像処理部１０２は、撮影画像（入力画像、部分画像）に対して、法線情報を推定する。画像処理部１０２は、学習部１０２ａと推定部１０２ｂとを有する。記憶部１０３は、画像処理部１０２による法線情報を推定する際に用いられる学習データ（法線情報に関して予め学習された学習データ）を記憶している。この処理の詳細については後述する。画像処理部１０２により推定された法線情報は、液晶ディスプレイなどの表示部１０４に表示されるか、または、記録媒体１０５に保存される。ただし、法線情報に代えて、法線情報に基づいて生成された画像（例えば、レンダリング画像）を表示部１０４に表示または記録媒体１０５に保存してもよい。また、撮影画像（部分画像）を記録媒体１０５に保存し、画像処理部１０２が任意のタイミングで法線情報を推定するように構成してもよい。光源１１０は、撮像時（撮影画像の取得時）に選択的に点灯する。このため撮像部１０１は、複数の異なる光源環境下で撮影を行うことができる。光源１１０は撮像装置１００と一体的に構成されているが、これに限定されるものではない。光源１１０に代えて、撮像装置１００から分離した外部装置を光源として用いてもよい。以上の一連の制御は、システムコントローラ１０６により行われる。
【００２２】
図３に示されるように、光源１１０は、複数の光源部１１０ａ〜１１０ｈを備えて構成される。本実施例の撮像装置１００は、複数の光源部として８つの光源部１１０ａ〜１１０ｈを有するが、これに限定されるものではなく、複数の画像を取得するために少なくとも２つ以上の光源を備えていればよい。また、撮像光学系の光軸ＯＡから等距離の位置に同心円状に８つの光源部１１０ａ〜１１０ｈを等間隔で配置しているが、これに限定されるものではない。また、複数の光源部１１０ａ〜１１０ｈは、撮像装置１００に内蔵されているが、これに限定されるものではなく、撮像装置１００に対して着脱可能に構成されていてもよい。
【００２３】
次に、図４を参照して、画像処理部１０２による法線情報の推定処理について説明する。画像処理部１０２は、法線情報の推定処理の際に、事前に学習された学習データを用いるが、この学習の詳細については後述する。図４は、法線情報の推定処理を示すフローチャートである。図４の各ステップは、主に、画像処理部１０２の推定部１０２ｂにより実行される。
【００２４】
まずステップＳ１０１において、画像処理部１０２（推定部１０２ｂ）は、異なる光源環境下で被写体を撮影した複数の撮影画像（入力画像）と学習データとを取得する。学習データとは、撮影画像と推定された法線情報とを結び付けるために予め学習された情報（学習情報）である。続いてステップＳ１０２において、推定部１０２ｂは、撮影画像から入力データ（撮影画像の少なくとも一部の部分画像）を取得する。部分画像は、各光源環境下における撮影画像のそれぞれに対して、画像上の同一位置を切り出すことで取得される。なお、各光源環境下における撮影画像のそれぞれに対して、電子的な手振れ補正処理等の位置ずらし処理を行ってもよい。また、撮影した異なる複数の光源環境のうち少なくとも二つ以上の一部の光源環境下における撮影画像のみに関して部分画像を取得してもよい。法線情報の推定は、部分画像（入力データ）を単位として部分画像ごとに行われる。
【００２５】
続いてステップＳ１０３において、推定部１０２ｂは、学習データを用いて入力データから法線情報を推定した部分法線情報を生成する（部分法線情報を推定する）。ここで、図１を参照して、法線情報の推定処理について詳述する。図１は、ディープラーニングの一つであるＣＮＮ（Ｃｏｎｖｏｌｕｔｉｏｎａｌ  Ｎｅｕｒａｌ  Ｎｅｔｗｏｒｋ）のネットワーク構造を示している。ただし、ディープラーニングとして、ＣＮＮ以外の手法、例えばＤＢＮ（Ｄｅｅｐ  Ｂｅｌｉｅｆ  Ｎｅｔｗｏｒｋ）を用いても構わない。ＣＮＮおよびＤＢＮの詳細はそれぞれ、非特許文献２および非特許文献３に説明されている。
【００２６】
ＣＮＮは、複数の層構造になっており、各層で学習データを用いた線型変換と非線型変換とが実行される。ｎを１からＮまでの整数とするとき、ｎ番目の層を第ｎ層、第ｎ層における線型変換と非線型変換とをそれぞれ、第ｎ線型変換と第ｎ非線型変換と呼称する。ただし、Ｎは２以上の整数である。部分画像２０１に関しては、第１層において、複数のフィルタ２０２のそれぞれとのコンボリューション（複数の線型関数による第１線型変換）が実行される。その後、活性化関数（Ａｃｔｉｖａｔｉｏｎ  Ｆｕｎｃｔｉｏｎ）と呼ばれる非線型関数を用いて変換（第１非線型変換）が実行される。図１において、活性化関数をＡＦとして示している。また、部分画像２０１が複数枚描画されているのは、入力画像（撮影画像）が複数のチャンネルを有するためである。本実施例において、部分画像はＲＧＢ（Ｒｅｄ、Ｇｒｅｅｎ、Ｂｌｕｅ）の３チャンネルに対して、さらに異なる光源環境の分だけのチャンネルを有する。ただし、チャンネルの数はこれに限定されるものではない。また、部分画像がＲＧＢのチャンネルを有する場合でも、光源環境についてのチャンネルは有するままで、各色で個別にＣＮＮへ入力しても構わない。
【００２７】
フィルタ２０２は複数存在する。推定部１０２ｂは、複数のフィルタ２０２のそれぞれと部分画像２０１とのコンボリューションを個別に算出する。フィルタ２０２の係数は、学習データに基づいて決定される。学習データは、フィルタ２０２の係数（フィルタ係数）そのもの、または、フィルタ２０２を所定の関数でフィッティングした際の係数でもよい。フィルタ２０２のそれぞれのチャンネル数は、部分画像２０１の数と一致する。部分画像２０１のチャンネル数が２以上の場合、３次元フィルタとなる（３次元目がチャンネル数を表す）。また、コンボリューションの結果に対して、学習データから決定される定数（負もとり得る）を加算してもよい。
【００２８】
活性化関数ｆ（ｘ）の例としては、以下の式（１）〜（３）が挙げられる。
【００２９】
【数１】
2019139694.tif 000003
【００３０】
式（１）はシグモイド関数、式（２）はハイパボリックタンジェント関数、式（３）はＲｅＬＵ（Ｒｅｃｔｉｆｉｅｄ  Ｌｉｎｅａｒ  Ｕｎｉｔ）と呼ばれる。式（３）中のｍａｘは、引数のうち最大値を出力するＭＡＸ関数を表す。式（１）〜（３）に示される活性化関数ｆ（ｘ）は、全て単調増加関数である。また、活性化関数としてＭａｘｏｕｔを使用してもよい。Ｍａｘｏｕｔは、第ｎ線型変換の出力である複数の画像のうち、各画素で最大値である信号値を出力するＭＡＸ関数である。Ｍａｘｏｕｔの詳細は、非特許文献４に説明されている。
【００３１】
図１において、第１線型変換および第１非線型変換が施された部分画像を、第１変換部分画像２０３と呼称する。第１変換部分画像２０３の各チャンネル成分は、部分画像２０１と複数のフィルタ２０２のそれぞれとのコンボリューションから生成される。このため、第１変換部分画像２０３のチャンネル数は、フィルタ２０２の数と同じになる。
【００３２】
第２層では、第１変換部分画像２０３に対して、第１層と同様に学習データから決定される複数のフィルタ２０４とのコンボリューション（第２線型変換）と、活性化関数による非線型変換（第２非線型変換）とを行う。第２層で用いられるフィルタ２０４は、一般的に、第１層で用いられるフィルタ２０２と同一ではない。フィルタ２０４のサイズや数も、フィルタ２０４と一致しなくてもよい。ただし、フィルタ２０４のチャンネル数と第１変換部分画像２０３のチャンネル数とは互いに一致する。推定部１０２ｂは、同様の演算を第Ｎ層まで繰り返す（第ｎ線型変換および第ｎ非線型変換（ｎ＝１〜Ｎ）を実行する）ことにより、中間データ２１０を取得する。
【００３３】
最後に、第Ｎ＋１層において、中間データ２１０と複数のフィルタ２１１のそれぞれとのコンボリューションに定数を加算すること（第Ｎ＋１線型変換）により、部分画像２０１に対する法線情報を推定した部分法線情報２１２が取得される。ここで用いられるフィルタ２１１および定数もそれぞれ、学習データに基づいて決定される。部分法線情報２１２のチャンネル数は、法線情報の表現方法に応じて異なる。法線ベクトルの３次元の成分を各チャンネルに割り当てれば３チャンネルであり、法線ベクトルの方向を２つの角度で表現すれば２チャンネルである。また、例えばＲＧＢごとに個別に法線ベクトルを推定してもよく、法線情報の表現方法は限定されない。したがって、フィルタ２１１の数は部分法線情報２１２の数と同じになる。部分法線情報２１２の各チャンネルの成分は、中間データ２１０とフィルタ２１１のそれぞれとのコンボリューションを含む演算から求められる。なお、部分画像２０１と部分法線情報２１２とのサイズは互いに一致しなくてもよい。コンボリューションの際に、部分画像２０１の外側にはデータが存在しないため、データの存在する領域のみで演算すると、コンボリューション結果はサイズが小さくなる。ただし、周期境界条件などを設定することにより、サイズを保つこともできる。なお本実施例において、第ｍ線型変換（ｍ＝１〜Ｎ＋１）のそれぞれに関する各フィルタの係数は、全て異なっている。
【００３４】
ディープラーニングが高い性能を発揮できる理由は、非線型変換を多層構造によって何度も実行することにより、高い非線型性が得られるためである。仮に、非線型変換を担う活性化関数が存在せず、線型変換のみでネットワークが構成されていた場合、いくら多層にしてもそれと等価な単層の線型変換が存在するため、多層構造にする意味がない。ディープラーニングは、より多層にする方が強い非線型を得られるため、高い性能が出やすいと言われている。一般に、少なくとも３層以上を有する場合がディープラーニングと呼ばれる。
【００３５】
続いて、図４のステップＳ１０４において、推定部１０２ｂは、撮影画像のうち所定の領域の全てに対して法線情報の推定処理が完了したか否かを判定する。所定の領域（部分画像）の全てに対して部分法線情報２１２が生成されている場合、ステップＳ１０５へ進む。一方、法線情報の推定処理が完了していない領域（部分画像）が残っている場合、ステップＳ１０２へ戻り、推定部１０２ｂは、まだ法線情報が推定されていない部分画像を撮影画像から取得する。
【００３６】
ステップＳ１０５において、推定部１０２ｂは、法線情報を出力する。法線情報は、生成された複数の部分法線情報２１２を合成することにより生成される。ただし、部分画像が撮影画像の全体である場合、推定部１０２ｂは、部分法線情報２１２をそのまま法線情報として出力する。以上の処理により、撮影画像から推定した法線情報を取得することができる。
【００３７】
なお本実施例において、視点の異なる複数の撮影画像を入力し、法線情報を取得するように構成してもよい。視点によっても光の反射角が変化することから被写体の反射特性の影響も変化する。同一の被写体に対して異なる光の反射を受けた複数の画像を入力することにより、推定精度を向上することができる。
【００３８】
次に、図５を参照して、本実施例における学習データの学習について説明する。図５は、学習データの学習を示すフローチャートである。図５の各ステップは、主に、画像処理部１０２の学習部１０２ａにより行われる。ただし本実施例はこれに限定されるものではなく、学習データの学習は、法線情報の推定前であれば、撮像装置１００とは別の装置（演算装置）に設けられた学習部で行ってもよい。本実施例では、撮像装置１００の学習部１０２ａが学習データを学習する場合について説明する。
【００３９】
まずステップＳ２０１において、学習部１０２ａは、少なくとも一対の学習データを取得する。一対の学習データとは、異なる光源環境下で被写体を撮影した複数の撮影画像と、同一の被写体の法線情報である。１つの法線情報に対して対応させる複数の撮影画像の組合せは、光源環境の組合せをある１つのものだけ対応させてもよいし、複数の組合せを対応させてもよい。後者は、同じ法線情報を出力するために入力する複数撮影画像として、光源環境の組合せが１通りでなくともよいことに相当する。
【００４０】
学習データとして用いる法線情報には、様々な形状や法線ベクトルを有する被写体、および、様々な反射特性の被写体が含まれていることが好ましい。例えば、学習データに光沢のある被写体がない場合、光沢の変化から法線を推定する学習データが存在しないため、光沢のある被写体に対する法線情報の推定の効果が十分に得られない可能性がある。
【００４１】
学習データを用意する方法として、シミュレーションを利用してもよいし、実測した情報を使用してもよい。シミュレーションを行なう場合は、反射特性を付与した３Ｄモデルに対して、様々な光源条件でのＣＧレンダリングを行うことで異なる光源環境下での撮影画像に相当する画像を生成すればよい。
【００４２】
実測した情報を使用する場合、既知の形状の被写体（法線情報が既知の被写体）を異なる光源環境下で撮影することで、複数の異なる光源環境下で撮影した撮影画像と対応する法線情報を得てもよい。
【００４３】
また、被写体の撮影画像に対してディープラーニング以外の手法を用いて取得された法線情報を用いて、学習データを用意してもよい。その例として、レーザ測距により形状を取得する方法、構造化照明で照明した画像から形状を取得する方法、鏡面反射の反射方向と光源の入射方向から形状を取得する方法、または、接触式の形状計測機器で取得する方法がある。被写体のサイズ、形状、および、反射特性などの条件に応じて適切な取得方法を選択することにより、一般の被写体に対して高精度に法線情報を取得することができる。
【００４４】
続いてステップＳ２０２において、学習部１０２ａは、ステップＳ２０１にて取得した学習データから、複数の学習ペアを取得する。学習ペアは、学習用部分画像と学習用部分法線情報とからなる。学習用部分画像は複数の光源環境下で撮影された撮影画像から取得され、そのサイズはステップＳ１０２にて取得した部分画像と同じである。学習用部分法線情報は、法線情報から、その中心が学習用部分画像と同じ被写体位置になるように取得される。そのサイズは、ステップＳ１０３にて生成された部分法線情報と同じである。前述と同様に、学習用部分画像と学習用部分法線情報のペア（学習ペア）は、一対一に対応している必要はない。一つの学習用部分法線情報と、複数の学習用部分画像とがペア（グループ）になっていてもよい。
【００４５】
続いてステップＳ２０３において、学習部１０２ａは、複数の学習ペア（学習用部分画像と学習用部分法線情報）から、学習データを学習によって取得（生成）する。学習では、法線情報を推定するネットワーク構造と同じネットワーク構造を使用する。本実施例では、図１に示されるネットワーク構造に対して学習用部分法線情報を入力し、その出力結果と学習用部分画像との誤差を算出する。法線情報の誤差は、各成分の差分をとってもよく、または、学習用部分法線情報の法線ベクトルと出力結果の法線ベクトルとの内積を１から引いた値としてもよい。この誤差が最小となるように、例えば誤差逆伝播法（Ｂａｃｋｐｒｏｐａｇａｔｉｏｎ）などを用いて、第１乃至Ｎ＋１層で用いる複数のフィルタのそれぞれの係数や加算する定数（学習データ）を更新して最適化する。各フィルタの係数および定数の初期値は任意に設定することができ、例えば乱数から決定される。または、各層ごとに初期値を事前学習するＡｕｔｏ  Ｅｎｃｏｄｅｒなどのプレトレーニングを行ってもよい。Ａｕｔｏ  Ｅｎｃｏｄｅｒの詳細は、非特許文献５に説明されている。
【００４６】
学習ペアの全てをネットワーク構造へ入力し、それら全ての情報を使って学習データを更新する手法をバッチ学習と呼ぶ。ただし、この学習方法は、学習ペアの数が増えるにつれて計算負荷が膨大になる。逆に、学習データの更新に一つの学習ペアのみを使用し、更新ごとに異なる学習ペアを使用する学習手法をオンライン学習と呼ぶ。この手法は、学習ペアが増えても計算量が増大しないが、一つの学習ペアに存在するノイズの影響を大きく受ける。このため、これら２つの手法の中間に位置するミニバッチ法を用いて学習することが好ましい。ミニバッチ法は、全学習ペアの中から少数を抽出し、それらを用いて学習データの更新を行う。次の更新では、異なる小数の学習ペアを抽出して使用する。これを繰り返すことにより、バッチ学習とオンライン学習の不利な点を小さくすることができ、高い推定効果を得やすくなる。
【００４７】
続いてステップＳ２０４において、学習部１０２ａは、学習された学習データを出力する。本実施例において、学習データは記憶部１０３に記憶される。以上の処理により、反射特性や形状の制約がない一般的な被写体において、撮像画像から高精度に法線情報を推定可能な学習データを学習することができる。
【００４８】
また、以上の処理に加えて、ＣＮＮの性能を向上させる工夫を併用してもよい。例えば、ロバスト性の向上のためネットワークの各層において、ドロップアウト（Ｄｒｏｐｏｕｔ）やダウンサンプリングであるプーリング（ｐｏｏｌｉｎｇ）を行ってもよい。ドロップアウトの詳細は非特許文献６に説明されている。
【００４９】
本実施例では撮影画像から部分画像を取得しているが、撮影画像に任意の画像処理を行った後の画像から部分画像を取得してもよい。例えば、撮影画像から鏡面反射の影響を受けない（鏡面反射成分が除去された）拡散反射画像を公知の方法で生成し、拡散反射画像から部分画像を取得してもよい。これにより、反射特性の異なる被写体においても鏡面反射成分が除去された成分のみに対して学習および推定ができ、推定精度を向上することができる。
【００５０】
また、入力データとして、部分画像に加えて、被写体の距離マップを用いることができる。距離マップは、部分画像と対応する領域のみ用いればよい。この場合、入力データのチャンネル数が１だけ増える。同一の光源環境においても被写体の距離によって被写体に入射する光量や入射方向ベクトルが異なる。この情報を入力データとして用いて学習および推定を行うことにより、法線情報の推定精度を向上することができる。被写体の距離マップは、例えば異なる視点から撮像した互いに視差を有する複数の視差画像に基づいて取得してもよい。撮像画像に基づいて取得した距離マップを用いることで、異なる光源環境下における撮影画像との位置合わせなどを行う必要がなくなるため、好ましい。
【００５１】
また、入力データとして、部分画像に加えて、被写体の反射特性マップを用いることができる。反射特性マップは、部分画像と対応する領域のみ用いればよい。この場合、入力データのチャンネル数が反射特性のチャンネル数だけ増える。例えば、拡散反射成分の反射率（アルベド）と、鏡面反射成分の反射率および反射ピークの広がりを用いる場合、３チャンネル増える。撮影画像における被写体の輝度の違いは、被写体の法線情報と反射特性とに応じて異なる。被写体の反射特性が既知の場合または何らかの手段で取得可能である場合、反射特性の情報を入力データとして用いることにより、輝度の変化要因を法線情報に限定することができる。このため、反射特性マップを入力データとして用いて学習および推定を行うことにより、法線情報の推定精度を向上することができる。
【００５２】
また、入力データとして、部分画像に加えて、光源情報を示すデータを用いることもできる。例えば、光源の空間強度分布を示す光源環境マップを入力すればよいが、これに限定されるものではなく、光源情報を示すデータであればよい。この場合、入力データのチャンネル数が光源情報のチャンネル数だけ増える。部分画像が撮影された光源環境ごとにＲＧＢの光源環境マップを用いる場合、光源環境の数の３倍だけチャンネル数が増える。撮影画像における被写体の輝度の違いは、光源情報と被写体の法線情報と反射特性とに応じて異なる。既知の光源環境下で撮影した撮影画像を用いる場合、光源情報を入力データとして用いることにより、輝度の変化要因から光源情報の違いを除外することが可能である。このため、光源情報を入力データとして用いて学習および推定を行うことにより、法線情報の推定精度を向上することができる。
【００５３】
また、法線情報を推定する際に、さらに被写体の距離マップを推定することもできる。この場合、部分法線情報２１２を１チャンネル増やして部分距離マップを出力すればよい。同一の光源環境においても被写体の距離に応じて被写体に入射する光量や入射方向ベクトルが異なり、撮影画像の輝度も変化する。このため、法線情報と距離マップとは相関する情報であり、同時に推定することが可能である。法線情報に加えて被写体の距離マップを推定する場合、学習用データにも距離マップを加える必要がある。これにより、距離マップを反映したより精度の高い学習が可能であり、推定精度も向上する。
【００５４】
また、法線情報を推定する際に、さらに被写体の反射特性マップを推定することもできる。この場合、部分法線情報２１２を推定させる反射特性のチャンネル数だけ増やして部分反射特性マップを出力すればよい。撮影画像における被写体の輝度の違いは、被写体の法線情報と反射特性とに応じて異なる。このため、法線情報と反射特性とは相関する情報であり、同時に推定することが可能である。法線情報に加えて被写体の反射特性マップを推定する場合、学習用データにも反射特性マップを加える必要がある。これにより、反射特性マップを反映したより精度の高い学習が可能であり、推定精度も向上する。
【００５５】
また、法線情報を推定する際に、さらに光源情報を推定することもできる。例えば、光源の空間強度分布を示す光源環境マップを出力すればよいが、これに限定されるものではなく、光源情報を示すデータであればよい。撮影画像における被写体の輝度の違いは、光源情報と被写体の法線情報と反射特性とに応じて異なる。このため、法線情報と光源情報とは相関する情報であり、同時に推定することが可能である。法線情報に加えて光源情報を推定する場合、学習用データにも光源情報を加える必要がある。これにより、光源情報を反映したより精度の高い学習が可能であり、推定精度も向上する。
【００５６】
本実施例によれば、反射特性や形状の制約がない一般的な被写体において、撮像画像から高精度に法線情報を推定可能な画像処理装置および撮像装置を提供することができる。
【実施例２】
【００５７】
次に、本発明の実施例２における画像処理システムについて説明する。本実施例の画像処理システムにおいて、法線情報を推定する画像処理装置と、複数の異なる光源環境下で複数の撮影画像を取得する撮像装置、および、学習を行うサーバが個別に設けられている。また本実施例では、
光源環境に関する光源情報を取得することにより、使用する学習データを切り替える。各光源情報に対して推定に使用する学習データを個別に学習して使用することで、より高精度な推定が可能となる。
【００５８】
図６および図７を参照して、本実施例における画像処理システムについて説明する。図６は、画像処理システム２００のブロック図である。図７は、画像処理システム２００の外観図である。図６および図７に示されるように、画像処理システム２００は、撮像装置３００、画像処理装置３０１、サーバ３０５、表示装置３０８、記録媒体３０９、および、出力装置３１０を備えて構成される。
【００５９】
撮像装置３００の基本構成は、法線情報の推定と学習データの学習に関する画像処理部を除いて、図２を参照して説明した撮像装置１００と同様である。撮像装置３００を用いて撮影された撮影画像（入力画像）は、画像処理装置３０１に設けられた記憶部３０２に記憶される。画像処理装置３０１は、ネットワーク３０４と有線または無線で接続されており、ネットワーク３０４を介してサーバ３０５にアクセスすることができる。サーバ３０５は、複数の異なる光源環境下で撮影された撮影画像から法線情報を推定するための学習データを学習する学習部３０７と、学習データを記憶する記憶部３０６とを有する。画像処理装置３０１に設けられた推定部３０３（画像処理部）は、サーバ３０５の記憶部３０６からネットワーク３０４を介して学習データを取得し、法線情報を推定する。推定部３０３により推定された法線情報は、表示装置３０８、記録媒体３０９、および、出力装置３１０の少なくとも一つに出力される。なお、法線情報に代えて、法線情報に基づいて生成される画像（例えばレンダリング画像）を出力してもよい。表示装置３０８は、例えば液晶ディスプレイやプロジェクタである。ユーザは、表示装置３０８を介して、処理途中の画像を確認しながら作業を行うことができる。記録媒体３０９は、例えば半導体メモリ、ハードディスク、ネットワーク上のサーバである。出力装置３１０は、例えばプリンタである。画像処理装置３０１は、必要に応じて現像処理やその他の画像処理を行う機能を有してもよい。
【００６０】
次に、図８を参照して、推定部３０３により実行される法線情報の推定処理について説明する。図８は、法線情報の推定処理を示すフローチャートである。図８の各ステップは、主に、画像処理装置３０１の推定部３０３（画像処理部）により実行される。
【００６１】
まずステップＳ３０１において、推定部３０３は、記憶部３０２から、複数の異なる光源環境下で撮影された撮影画像を取得する。続いてステップＳ３０２において、推定部３０３は、記憶部３０２から撮影画像を撮影した光源環境に関する光源情報を取得する。各光源環境における光源情報は、撮像装置３００で撮影画像を撮影する際に、撮影画像と紐付けて記憶しておけばよい。光源情報は、光源の位置、光源の強度、または、波長特性などの被写体が照明される環境を示す情報であればよく、光源の大きさ、配置、強度分布、または、配光分布などを含む光源の空間分布情報として取得してもよい。撮像装置３００のように光源が撮像装置に対して固定される場合、どの光源が点灯したかに関する情報を取得してもよい。また、間接的に光源情報を取得する情報として、光源情報のかわりに、被写体の距離や方向などの被写体の位置情報を取得してもよい。前述の各光源環境に対する情報を、撮影画像を撮影した複数の光源環境に対して総合した情報を光源情報として取得すればよい。なお、撮影した光源環境のうち一部の光源環境下における撮影画像に対してのみ以下の工程を行う場合、用いる光源環境に関する光源情報のみを取得すればよい。被写体の距離情報は、例えば撮像部のフォーカス情報から取得してもよく、異なる視点から撮像した互いに視差を有する複数の視差画像に基づいて取得してもよい。被写体の方向は、画面上の位置から取得することができる。
【００６２】
続いてステップＳ３０３において、推定部３０３は、ステップＳ３０２にて取得された光源情報に基づいて、使用するネットワーク構造と学習データ、および、部分画像のサイズ（大きさ）を決定する。本実施例において、推定部３０３は、図１に示されるＣＮＮを利用して法線情報を推定する。また本実施例では、光源情報に応じて個別に学習させた学習データを用いるため、ネットワーク構造及び部分画像のサイズも学習時に使用したものと同じになる。取得した光源情報に応じた学習データを用いることで、より高精度な法線情報推定が可能となる。異なる光源環境下における部分画像を入力するため、部分画像のサイズが小さくても光源環境による輝度の違いから法線情報を推定することができる。一方、部分画像のサイズをある程度大きくとることにより、例えば遠近法やテクスチャの密度などに基づく大局的な情報も取り入れた推定を行うことができ、一般的な被写体に対して法線情報推定を行う上で精度の向上が可能となる。例えば、撮影画像を取得した複数の異なる光源環境間での差異（光源位置や空間強度分布など）が小さい場合、光源環境による輝度の違いが小さくなり、推定精度が不足する場合がある。これを回避するため、光源環境間の差異が小さい場合には、部分画像のサイズを大きくしてより大局的な情報を用いることが好ましい。
【００６３】
ネットワーク構造は、各層で使用するフィルタのサイズだけでなく、１つの層で使用されるフィルタの数や層数なども含む。学習データは、光源情報ごとに学習されており、対応した学習データを使用する。その結果、より精度の高い推定が可能となる。なお、学習の詳細に関しては後述する。
【００６４】
続いてステップＳ３０４において、推定部３０３は、撮影画像から部分画像を取得する。続いてステップＳ３０５において、推定部３０３は、ステップＳ３０３にて決定された学習データに基づいて、部分法線情報を生成する。続いてステップＳ３０６において、推定部３０３は、撮影画像のうち所定の領域（部分画像）の全てに対して法線情報の推定処理が完了したか否かを判定する。所定の領域の全てに対して法線情報の推定が完了した場合、ステップＳ３０７へ進む。一方、法線情報の推定が完了していない領域（部分画像）が残っている場合、ステップＳ３０４へ戻り、推定部３０３は、まだ法線情報が推定されていない部分画像（新たな部分画像）を撮影画像から取得する。ステップＳ３０７において、推定部３０３は、法線情報を出力する。
【００６５】
なお、光源からの入射光が被写体の一部にしか届かないなど、撮影画像中の位置に応じて被写体に対する光源環境が大きく異なる場合、推定部３０３は、ステップ３０４をステップＳ３０２、Ｓ３０３の前に実行することが好ましい。このとき推定部３０３は、ステップＳ３０２、Ｓ３０３において、撮影画像の局所領域に対して光源情報を取得して、対応する学習データなどを取得する。
【００６６】
次に、サーバ３０５の学習部３０７により行われる学習データの学習に関して説明する。本実施例において、学習部３０７は、光源情報ごとに異なる学習データを学習する。学習方法は、図５を参照して実施例１にて説明した方法と同様である。
【００６７】
まず、異なる光源環境下における複数の撮影画像と法線情報とからなる学習データをシミュレーション（ＣＧレンダリング）によって生成する場合に関して述べる。この場合、光源情報を異なる複数のパターンに設定して法線情報からレンダリング画像を生成し、一対の学習データを取得する。学習部３０７は、取得した学習データに対してステップＳ２０１〜Ｓ２０４を実行し、その後、異なる光源情報に対して同様の手順を繰り返す。
【００６８】
また、形状が既知の実被写体を用いて学習データを生成する場合に関して述べる。この場合、既知の形状を有する被写体に対して推定時に用いる光源環境を用意して撮影画像を取得することで、学習データを取得する。被写体の位置情報に応じて学習データを変更する場合、被写体の距離を変化させながら撮影画像を取得すればよい。そして、同じ光源情報の撮影画像ごとにステップＳ２０１〜Ｓ２０４を実行して学習データを生成する。
【００６９】
本実施例によれば、反射特性や形状の制約がない一般的な被写体において、撮像画像から高精度に法線情報を推定可能な画像処理システムを提供することができる。
【００７０】
（その他の実施例）
本発明は、上述の実施例の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【００７１】
各実施例によれば、反射特性や形状の制約がない一般的な被写体に関して、撮像画像から高精度に法線情報を推定することが可能な画像処理方法、画像処理装置、撮像装置、画像処理プログラム、および、記憶媒体を提供することができる。
【００７２】
以上、本発明の好ましい実施例について説明したが、本発明はこれらの実施例に限定されず、その要旨の範囲内で種々の変形及び変更が可能である。
【符号の説明】
【００７３】
１０２  画像処理部
１０２ｂ、３０３  推定部（画像処理部）
１０３、３０２  記憶部
３０１  画像処理装置
【図１】
2019139694.tif 000004
【図２】
2019139694.tif 000005
【図３】
2019139694.tif 000006
【図４】
2019139694.tif 000007
【図５】
2019139694.tif 000008
【図６】
2019139694.tif 000009
【図７】
2019139694.tif 000010
【図８】
2019139694.tif 000011