(57)【要約】【課題】  反射モデルに適した観測値を用いて物体の反射特性を推定するための画像処理を提供することを目的とする。【解決手段】  物体の表面の形状を表す形状情報を取得する第１取得手段と、複数の幾何条件において前記物体を撮像することによって得られた複数の画像データを取得する第２取得手段と、前記複数の画像データが表す複数の画像において、前記物体において注目する位置の面の向きと面の向きが類似する位置の画素値を、前記注目する位置における前記物体の反射特性を推定するための画素値として決定する決定手段と、前記決定手段によって決定された画素値を用いることによって、前記注目する位置における前記物体の反射特性を推定する推定手段と、を有することを特徴とする画像処理装置。【選択図】  図８
2020021105.tif 000002
【特許請求の範囲】
【請求項１】
物体の表面の形状を表す形状情報を取得する第１取得手段と、
複数の幾何条件において前記物体を撮像することによって得られた複数の画像データを取得する第２取得手段と、
前記複数の画像データが表す複数の画像において、前記物体において注目する位置の面の向きと面の向きが類似する位置の画素値を、前記注目する位置における前記物体の反射特性を推定するための画素値として決定する決定手段と、
前記決定手段によって決定された画素値を用いることによって、前記注目する位置における前記物体の反射特性を推定する推定手段と、
を有することを特徴とする画像処理装置。
【請求項２】
前記推定手段は、前記決定手段によって決定された画素値に反射モデルをフィッティングすることによって、前記物体の反射特性を推定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記形状情報は、前記物体の表面の高さを表す高さデータであることを特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項４】
前記形状情報は、前記物体の表面における法線の方向を表す法線データであることを特徴とする請求項１又は請求項２に記載の画像処理装置。
【請求項５】
前記物体の表面から撮像装置の方向を表す観測ベクトル、前記物体の表面から光源の方向を表す光源ベクトル、前記光源が照射する光の強度を表す照明強度を表す撮像情報を取得する第３取得手段と、
前記推定手段は、前記撮像情報に基づいて、前記物体の反射特性を推定することを特徴とする請求項１乃至請求項４のいずれか一項に記載の画像処理装置。
【請求項６】
前記決定手段は、前記複数の画像データが表す複数の画像において、前記反射モデルをフィッティングするための画素値を取得する範囲を決定することを特徴とする請求項２に記載の画像処理装置。
【請求項７】
前記決定手段は、前記形状情報に基づいて、前記物体の表面における法線の方向の変化を表す値を算出し、前記法線の方向の変化を表す値に基づいて、前記範囲を決定することを特徴とする請求項６に記載の画像処理装置。
【請求項８】
前記決定手段は、前記形状情報に基づいて、前記複数の画像データが表す複数の画像において、前記物体において注目する位置の面の向きと面の向きが類似する位置の画素値を選択し、
前記推定手段は、前記反射モデルを前記決定手段が選択した画素値にフィッティングすることを特徴とする請求項２に記載の画像処理装置。
【請求項９】
前記決定手段は、前記物体において注目する位置の法線の方向と方向が類似する法線を有する位置の画素値を選択することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記決定手段は、前記物体において注目する位置の法線の方向との角度差が所定の閾値以下である方向の法線を有する位置の画素値を選択することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記決定手段は、前記複数の画像データが表す複数の画像において、視覚特性に応じて決定された範囲内の画素値から画素値の選択を行うことを特徴とする請求項８乃至請求項１０のいずれか一項に記載の画像処理装置。
【請求項１２】
前記推定手段は、前記決定手段によって決定された画素値を用いることによって、前記注目する位置における前記物体の反射特性を表すパラメータを算出し、算出した前記パラメータを出力することを特徴とする請求項１乃至請求項１１のいずれか一項に記載の画像処理装置。
【請求項１３】
前記反射モデルは、ガウス関数によって表される反射モデルであることを特徴とする請求項２に記載の画像処理装置。
【請求項１４】
前記反射モデルは、Ｔｏｒｒａｎｃｅ−Ｓｐａｒｒｏｗモデルであることを特徴とする請求項２に記載の画像処理装置。
【請求項１５】
前記反射モデルは、Ｐｈｏｎｇモデルであることを特徴とする請求項２に記載の画像処理装置。
【請求項１６】
物体の表面の形状を表す形状情報を取得する第１取得手段と、
複数の幾何条件において前記物体を撮像することによって得られた複数の画像データを取得する第２取得手段と、
前記形状情報に基づいて、前記複数の画像データが表す複数の画像において、反射モデルをフィッティングする画素値を有する画素位置を決定する決定手段と、
前記画素値に前記反射モデルをフィッティングすることによって、前記物体の反射特性を推定する推定手段と、
を有することを特徴とする画像処理装置。
【請求項１７】
コンピュータを請求項１乃至請求項１６のいずれか一項に記載の画像処理装置の各手段として機能させるためのプログラム。
【請求項１８】
物体の表面の形状を表す形状情報を取得する第１取得ステップと、
複数の幾何条件において前記物体を撮像することによって得られた複数の画像データを取得する第２取得ステップと、
前記複数の画像データが表す複数の画像において、前記物体において注目する位置の面の向きと面の向きが類似する位置の画素値を、前記注目する位置における前記物体の反射特性を推定するための画素値として決定する決定ステップと、
前記決定手段によって決定された画素値を用いることによって、前記注目する位置における前記物体の反射特性を推定する推定ステップと、
を有することを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、物体の反射特性を推定するための画像処理技術に関する。
【背景技術】
【０００２】
物体の質感を再現するため、物体における反射光のふるまいを反射特性として取得する技術が知られている。特許文献１は、物体において同一の素材である領域を同一のグループとして、同一のグループごとに反射モデルを観測値に近似させることによって反射特性を推定する技術を開示している。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−０６７７７２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１のように、反射モデルを領域ごとの観測値に近似させる場合、物体の形状によっては領域内に反射モデルに適していない観測値が含まれている場合がある。その場合、精度の高い反射特性の推定ができないという課題があった。
【０００５】
本発明は上記課題をふまえてなされたものであり、反射モデルに適した観測値を用いて物体の反射特性を推定するための画像処理を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上記課題を解決するために、本発明に係る画像処理装置は、物体の表面の形状を表す形状情報を取得する第１取得手段と、複数の幾何条件において前記物体を撮像することによって得られた複数の画像データを取得する第２取得手段と、前記複数の画像データが表す複数の画像において、前記物体において注目する位置の面の向きと面の向きが類似する位置の画素値を、前記注目する位置における前記物体の反射特性を推定するための画素値として決定する決定手段と、前記決定手段によって決定された画素値を用いることによって、前記注目する位置における前記物体の反射特性を推定する推定手段と、を有することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、反射モデルに適した観測値を用いて物体の反射特性を推定することができる。
【図面の簡単な説明】
【０００８】
【図１】表面に凸部を有する物体の一例を示す図
【図２】物体における各参照範囲についての反射特性の推定を説明するための図
【図３】画像処理装置のハードウェア構成を示すブロック図
【図４】画像処理装置の論理構成を示すブロック図
【図５】画像処理装置が実行する処理を示すフローチャート
【図６】ＧＵＩの一例を示す図
【図７】観測値の参照範囲を算出する処理を示すフローチャート
【図８】推定する反射特性に対して物体の表面形状が与える影響を説明するための図
【図９】反射特性を推定する処理を示すフローチャート
【図１０】画像処理装置の論理構成を示すブロック図
【図１１】画像処理装置が実行する処理を示すフローチャート
【図１２】反射特性を推定する処理を示すフローチャート
【発明を実施するための形態】
【０００９】
以下、本発明の実施の形態を図面を参照して詳細に説明する。尚、以下の実施の形態は本発明の特許請求の範囲を限定するものではなく、また以下の実施の形態で説明されている特徴の組み合わせの全てが本発明を構成する上で必須のものとは限らない。
【００１０】
［第１実施形態］
＜反射モデルを用いた反射特性の推定における課題＞
反射モデルを用いて物体の反射特性を推定する場合、物体を複数の幾何条件において撮像することによって得られた複数の撮像画像の画素値（以下、観測値とも呼ぶ）に反射モデルを近似させる。以下、反射モデルを観測値に近似させることをフィッティングとも呼ぶ。この際に、物体における１点ごとに観測値をフィッティングに用いるよりも、物体における領域ごとに観測値をフィッティングに用いる方が、より多くの観測値を用いたフィッティングを行うことができる。このため、観測値に含まれるノイズの影響を低減することができる。しかし、観測値にフィッティングする反射モデルは、一般的に、光の入射方向に対して正反射の方向において最も高い反射率を有する単峰性（反射率のピークが１つ）の関数で表される。このため、物体の表面形状によっては観測値が反射モデルの形にあてはまらず、推定誤差が生じてしまう。
【００１１】
図１に、表面に凸部を有する物体の一例を示す。図１に示す参照範囲Ａと参照範囲Ｂとにおける観測値を用いて反射特性の推定を行う例を図２に示す。図２（ａ）は、参照範囲Ａに対して垂直方向から光が入射した場合に起こる反射の様子を示す。図２（ｂ）は、参照範囲Ａについて、光の出射角に対して観測強度をプロットした結果を示す。参照範囲Ａにおいて、物体の表面は角度θ１の法線を有する。反射光は正反射方向へ強く反射されるため、参照範囲Ａにおいては、角度２θ１における観測値が観測値のピークとなる。この観測強度に対して反射モデルのフィッティングを行った結果を図２（ｃ）に示す。図２（ｄ）は、参照範囲Ｂに対して垂直方向から光が入射した場合に起こる反射の様子を示す。図２（ｅ）は、参照範囲Ｂについて、光の出射角に対して観測強度をプロットした結果を示す。参照範囲Ｂにおいて、物体の表面は角度θ２の法線及び角度θ３の法線を有する。反射光は正反射方向、つまり角度θ２の法線を有する面においては角度２θ２方向、角度θ３の法線を有する面においては角度２θ３方向へ強く反射されるため、参照範囲Ｂにおいては、角度２θ２及び２θ３の２つの角度における観測値が観測値のピークとなる。この観測強度に対して反射モデルのフィッティングを行った結果を図２（ｆ）に示す。図２（ｆ）に示すフィッティングの結果において、観測値が複数のピークを有するために、単峰性の反射モデルのフィッティングでは推定誤差が発生してしまうことが確認できる。このように、反射モデルのフィッティングのために参照する範囲において観測強度が複数のピークを有する場合に、反射特性の推定精度が低下してしまうという課題がある。
【００１２】
そこで、本実施形態においては、物体の表面形状に基づいて、法線方向（面の向き）が類似する領域を１つの参照範囲として設定し、設定した参照範囲ごとに観測値を用いて反射特性の推定を行う。これにより、参照範囲内の観測値のピークは１つとなるため、単峰性の反射モデルに適した反射特性の推定を行うことができる。
【００１３】
＜画像処理装置１のハードウェア構成＞
図３は、画像処理装置１のハードウェア構成を示すブロック図である。画像処理装置１は、例えばコンピュータであり、ＣＰＵ３０１、ＲＯＭ３０２、ＲＡＭ３０３を備える。また、画像処理装置１は、ＶＣ（ビデオカード）３０４、汎用Ｉ／Ｆ（インターフェース）３０５、ＳＡＴＡ（シリアルＡＴＡ）Ｉ／Ｆ３０６、ＮＩＣ（ネットワークインターフェースカード）３０７を備える。ＣＰＵ３０１は、ＲＡＭ３０３をワークメモリとして、ＲＯＭ３０２、ＨＤＤ（ハードディスクドライブ）３１３などに格納されたＯＳ（オペレーティングシステム）や各種プログラムを実行する。また、ＣＰＵ３０１は、システムバス３０８を介して各構成を制御する。尚、後述するフローチャートによる処理は、ＲＯＭ３０２やＨＤＤ３１３などに格納されたプログラムコードがＲＡＭ３０３に展開され、ＣＰＵ３０１によって実行される。ＶＣ３０４には、ディスプレイ３１５が接続される。汎用Ｉ／Ｆ３０５には、シリアルバス３０９を介して、マウスやキーボードなどの入力デバイス３１０や撮像装置３１１が接続される。ＳＡＴＡＩ／Ｆ３０６には、シリアルバス３１２を介して、ＨＤＤ３１３や各種記録メディアの読み書きを行う汎用ドライブ３１４が接続される。ＮＩＣ３０７は、外部装置との間で情報の入力及び出力を行う。ＣＰＵ３０１は、ＨＤＤ３１３や汎用ドライブ３１４にマウントされた各種記録メディアを各種データの格納場所として使用する。ＣＰＵ３０１は、プログラムによって提供されるＧＵＩ（グラフィカルユーザインターフェース）をディスプレイ３１５に表示し、入力デバイス３１０を介して受け付けるユーザ指示などの入力を受信する。
【００１４】
＜画像処理装置１の論理構成＞
図４は、画像処理装置１の論理構成を示すブロック図である。画像処理装置１は、ＣＰＵ３０１がＲＯＭ３０２に格納されたプログラムをＲＡＭ３０３をワークメモリとして実行することによって、図４に示す論理構成として機能する。尚、以下に示す処理の全てがＣＰＵ３０１によって実行される必要はなく、処理の一部または全てがＣＰＵ３０１以外の一つまたは複数の処理回路によって行われるように画像処理装置１が構成されていてもよい。
【００１５】
画像処理装置１は、入力受付部４００、形状情報取得部４０１、画像情報取得部４０２、撮像情報取得部４０３、反射特性推定部４０４を有する。入力受付部４００は、ディスプレイ３１５にＧＵＩを表示し、ユーザからの指示入力を受け付ける。形状情報取得部４０１は、物体の表面形状を表す形状情報を取得する。本実施形態における形状情報取得部４０１は、物体表面の高さｈ（ｘ，ｙ）の分布を表す高さデータを取得する。高さデータは、画像情報取得部４０２によって取得される画像データと対応付いており、画像データが表す画像の各画素位置における物体表面の高さを保持しているデータである。形状情報取得部４０１は、予め生成された高さデータをＨＤＤ３１３等の記憶装置から取得する。尚、高さデータは、周期的に輝度が変化する投影パターンを用いる位相シフト法や、レーザーレンジファインダを用いた三角測量などを利用することにより予め生成しておく。画像情報取得部４０２は、物体を撮像することによって得られた画像データを取得する。本実施形態における画像情報取得部４０２は、光源及び撮像装置３１１の位置及び向きを変化させながら物体を撮像することによって得られる複数の画像データをＨＤＤ３１３等の記憶装置から取得する。画像データが表す画像の画素値をＩｎ（ｘ，ｙ）とする。ここで、ｎは撮像画像の識別番号であり、ｃ枚の撮像画像に対して１〜ｃの番号が割り当てられる。尚、本実施形態における画像データはグレースケール画像データであり、画素値はＲ値、Ｇ値、Ｂ値から公知の方法によって算出される輝度値である。本実施形態において、画像情報取得部４０２は、８つの画像データを取得するが、反射特性を表すパラメータを算出するために十分な数であれば、数は８つに限定されない。
【００１６】
撮像情報取得部４０３は、物体の表面から撮像装置３１１の方向を表す観測ベクトル、物体の表面から光源の方向を表す光源ベクトル、光源が照射する光の強度を表す照明強度を取得する。本実施形態における撮像情報取得部４０３は、各撮像画像に対応する観測ベクトルｖｎ、照明ベクトルｌｎ、照明強度ｓｎを取得する。反射特性推定部４０４は、反射モデルを観測値にフィッティングすることによって、物体の反射特性を推定する。反射特性推定部４０４は、微分値算出部４０５、参照範囲決定部４０６、パラメータ算出部４０７を有する。微分値算出部４０５は、高さデータが表す高さｈ（ｘ，ｙ）に対する法線の微分値である法線微分値ｈ’’（ｘ，ｙ）を算出する。参照範囲決定部４０６は、法線微分値ｈ’’（ｘ，ｙ）、撮像画像の画素値Ｉｎ（ｘ，ｙ）、観測ベクトルｖｎ、光源ベクトルｌｎ、照明強度ｓｎに基づいて、各画素位置の反射特性の推定において参照する範囲を決定する。パラメータ算出部４０７は、撮像画像の画素値Ｉｎ（ｘ，ｙ）、観測ベクトルｖｎ、照明ベクトルｌｎ、照明強度ｓｎ、参照範囲決定部４０６により決定された参照範囲に基づいて、反射特性パラメータｐ（ｘ，ｙ）を算出する。
【００１７】
＜画像処理装置１が実行する処理＞
図５は、画像処理装置１が実行する処理のフローチャートである。以下、図５を用いて画像処理装置１が実行する処理の詳細を説明する。尚、下記処理は、ユーザからの処理を開始する指示を受け付けることによって開始する。以下、各ステップ（工程）は符号の前にＳをつけて表す。
【００１８】
Ｓ５００において、入力受付部４００は、ディスプレイ３１５にＧＵＩを表示し、ユーザからの指示入力を受け付ける。Ｓ５００において表示するＧＵＩを図６に示す。指定部６０１は、形状情報取得部４０１が取得する形状情報を指定するための領域である。指定部６０２は、画像情報取得部４０２が取得する画像データを指定するための領域である。指定部６０３、指定部６０４、指定部６０５は、撮像情報取得部４０３が取得する観測ベクトル、光源ベクトル、照明強度を指定するための領域である。ユーザによる入力デバイス３１０を用いた入力が各指定部へ行われ、推定処理開始ボタン６０６が押下されるとＳ５１０以降の処理を開始する。
【００１９】
Ｓ５１０において、形状情報取得部４０１は、ユーザによって指定された形状情報を取得する。具体的に、形状情報取得部４０１は、物体表面の高さｈ（ｘ，ｙ）の分布を表す高さデータを取得する。また、画像情報取得部４０２は、ユーザによって指定された画像データを取得する。具体的に、画像情報取得部４０２は、光源及び撮像装置３１１の位置及び向きを変化させながら物体を撮像することによって得られる複数の画像データを取得する。また、撮像情報取得部４０３は、ユーザによって指定された、物体の表面から撮像装置３１１の方向を表す観測ベクトル、物体の表面から光源の方向を表す光源ベクトル、光源が照射する光の強度を表す照明強度を取得する。
【００２０】
Ｓ５２０において、微分値算出部４０５は、Ｓ５１０において取得された高さデータに基づいて、物体表面における法線の変化を表す法線微分値ｈ’’（ｘ，ｙ）を算出する。具体的には、まず、式（１）を用いて高さデータの各画素の高さｈ（ｘ，ｙ）に対する法線ｈ’（ｘ，ｙ）を算出する。
【００２１】
【数１】
2020021105.tif 000003
【００２２】
ここで、│ｎ（ｘ，ｙ）│は、法線ベクトルの大きさを表す。ｈｘ（ｘ，ｙ）、ｈｙ（ｘ，ｙ）は高さｈ（ｘ，ｙ）をｘ方向、ｙ方向それぞれに対して偏微分した値であり、１画素あたりの幅をｄとする場合、式（２）及び式（３）を用いて算出する。
【００２３】
【数２】
2020021105.tif 000004
【００２４】
【数３】
2020021105.tif 000005
【００２５】
次に、算出した法線ｈ’（ｘ，ｙ）に基づいて、式（４）を用いて法線微分値ｈ’’（ｘ，ｙ）を算出する。
ｈ’’（ｘ，ｙ）＝［ｈｘ’（ｘ，ｙ），ｈｙ’（ｘ，ｙ）］Ｔ・・・式（４）
【００２６】
ここでｈｘ’（ｘ，ｙ）、ｈｙ’（ｘ，ｙ）は、法線ｈ’（ｘ，ｙ）と、ｘ方向、ｙ方向に隣接する画素の法線との内積を計算して得られた値であり、式（５）及び式（６）を用いて算出される。
ｈｘ’（ｘ，ｙ）＝ｈ’（ｘ＋１，ｙ）Ｔｈ’（ｘ，ｙ）・・・式（５）
ｈｙ’（ｘ，ｙ）＝ｈ’（ｘ，ｙ＋１）Ｔｈ’（ｘ，ｙ）・・・式（６）
【００２７】
以上により、微分値算出部４０５は、空間的な法線の角度変化を表す法線微分値ｈ’’（ｘ，ｙ）を算出する。尚、式（１）、式（４）〜式（６）におけるＴは転置行列を示すＴである。
【００２８】
Ｓ５３０において、参照範囲決定部４０６は、法線微分値ｈ’’（ｘ，ｙ）、画素値Ｉｎ（ｘ，ｙ）、観測ベクトルｖｎ、照明ベクトルｌｎ、照明強度ｓｎに基づいて、各画素位置の反射特性の推定において参照する範囲を決定する。反射特性の推定に用いる参照範囲を決定する処理の詳細については後述する。
【００２９】
Ｓ５４０において、パラメータ算出部４０７は、画素値Ｉｎ（ｘ，ｙ）、観測ベクトルｖｎ、照明ベクトルｌｎ、照明強度ｓｎ、参照範囲決定部４０６によって決定された参照範囲に基づいて、物体の反射特性を表す反射特性パラメータｐ（ｘ，ｙ）を算出する。反射特性パラメータｐ（ｘ，ｙ）を算出する処理の詳細については後述する。
【００３０】
＜反射特性の推定に用いる参照範囲を決定する処理（Ｓ５３０）＞
Ｓ５３０において、参照範囲決定部４０６は、注目画素の反射特性の推定において参照する範囲を決定する。具体的に、参照範囲決定部４０６は、注目画素の反射特性の推定において参照する範囲の幅を算出し、参照範囲マップにおける注目画素と同じ画素位置に保持させる。ここで、参照範囲マップは、各画素に参照範囲の幅ｒｅ（ｘ，ｙ）を保持するデータである。図７は、参照範囲を決定する処理を示すフローチャートである。以下、図７を用いてＳ５３０における参照範囲を決定する処理について説明する。
【００３１】
Ｓ５３１において、参照範囲決定部４０６は、初期状態（デフォルト）の参照範囲の幅ｒｄを算出する。参照範囲ｒｄ×ｒｄは、図１における参照範囲Ａのように、物体において注目する位置の形状がその周辺の形状と類似する場合に設定される最大の参照範囲である。参照範囲が広いほど反射特性の推定に用いる観測値が増え、ノイズに対してロバストに反射特性パラメータを算出できる。しかし、この場合においては、得られた反射特性の空間解像度が撮像画像に対して低くなってしまうため、適切な参照範囲を設定する必要がある。そこで、人の視覚特性を考慮し、反射特性に対する視認解像度に基づいて最大の参照範囲を設定する。物体の色を３０ｃｍ離れた位置から観察する条件において、色に対する視認解像度は３００ｄｐｉであることが知られている。一方、光沢や反射光に対する視認解像度は色より低いことから、本実施形態においては、１５０ｄｐｉを視認解像度として設定し、初期状態の参照範囲ｒｄを算出する。ここで、撮像画像の１画素の空間的な幅をｄ（単位はｍｍ）とすると、初期状態の参照範囲の幅ｒｄは式（７）を用いて算出する。
【００３２】
【数４】
2020021105.tif 000006
【００３３】
Ｓ５３２において、参照範囲決定部４０６は、Ｓ５２０において算出された法線微分値ｈ’’（ｘ，ｙ）に対する閾値Ｔｈ’’を算出する。法線微分値ｈ’’（ｘ，ｙ）は空間的な法線の角度変化を示している。このため、法線微分値ｈ’’（ｘ，ｙ）に基づいて、注目画素の法線の角度に対して法線の角度が大きく変化する画素を特定することによって、反射特性の推定の際に誤差を生じさせる観測値を保持する画素を特定することができる。ここで、反射特性の推定において表面形状の変化によって生じる誤差について、図８を用いて説明する。図８（ａ）は、参照範囲内に角度θａ、θｂの法線を有し、かつ、正反射光の広がりが大きい物体における表面反射の例を示す。図８（ａ）の物体について、光の出射角に対して観測強度をプロットした結果を図８（ｂ）に示す。図８（ａ）の物体について、観測値は正反射の条件となる角度２θａ及び２θｂにピークを有するが、反射光に広がりがあるため、観測値のピーク角度の違いは反射モデルのフィッティングに大きく影響しない。図８（ｂ）に示す反射モデルのフィッティングにより得られる反射特性の推定値は、観測値の広がりに沿うものとなることがわかる。さらに、図８（ｃ）は角度θａの法線を有する面における観測値のみをプロットした結果であるが、図８（ｂ）の参照範囲内における観測値と同様の広がりを有する分布としてみなすことができる。
【００３４】
図８（ｄ）は、参照範囲内に角度θａ、θｂの法線を有し、かつ、正反射光の広がりが小さい物体における表面反射の例を示す。図８（ｄ）の物体について、光の出射角に対して観測強度をプロットした結果を図８（ｅ）に示す。図８（ｄ）の物体について、観測値は正反射の条件となる角度２θａ及び２θｂにピークを有する。この観測強度に対して反射モデルのフィッティングを行うと、図８（ｅ）に示すように、実際の反射より大きい広がりを有する推定値が得られてしまう。図８（ｆ）は角度θａの法線を有する面における観測値のみをプロットした結果である。図８（ｆ）に示す観測値に対して反射モデルのフィッティングを行うと、実際の反射光の広がりに近似した広がりを有する推定値を得ることができる。
【００３５】
以上の例のように、物体表面における反射光の広がり方により、反射特性の推定において生じる誤差の要因となる法線の角度変化の大きさが決まる。そこで、参照範囲決定部４０６は、物体における反射光の広がりに基づいて、推定誤差を生じさせる観測値を保持する画素を特定するための、法線微分値ｈ’’（ｘ，ｙ）に対する閾値Ｔｈ’’を算出する。反射光の広がりは、参照範囲ｒｄ×ｒｄにおいて法線の角度変化が最も小さい位置の観測値の分散とする。まず、式（８）により、法線微分値ｈ’’（ｘ，ｙ）に基づいて、法線の角度変化が最も小さくなる位置（ｘｍ，ｙｍ）を算出する。
【００３６】
【数５】
2020021105.tif 000007
【００３７】
ここで、ａｒｇｍｉｎｘ，ｙΣｈ’’（ｉ，ｊ）２は、Σｈ’’（ｉ，ｊ）２を最小にするパラメータｘ，ｙを返す関数である。次に、参照範囲決定部４０６は、式（９）により、位置（ｘｍ，ｙｍ）における観測値の分散σｍ２を算出する。
【００３８】
【数６】
2020021105.tif 000008
【００３９】
ここで、Ｇ（σ２，μ，ｓ，ｖｎ，ｌｎ）は、観測ベクトルｖｎ、照明ベクトルｌｎに対する平均μ、分散σ２、スケールｓのガウス関数である。次に、参照範囲決定部４０６は、式（１０）により、算出した観測値の分散σｍ２に基づいて閾値Ｔｈ’’を算出する。
【００４０】
【数７】
2020021105.tif 000009
【００４１】
以下のＳ５３３〜Ｓ５３７の処理は、全ての画素位置（ｘ，ｙ）に対して実行される。
【００４２】
Ｓ５３３において、参照範囲決定部４０６は、注目画素の画素位置（ｘ，ｙ）に対する参照範囲ｒｄ×ｒｄ内の各画素の法線微分値ｈ’’（ｘ，ｙ）を参照し、閾値Ｔｈ’’以上の値を有する画素位置（ｘ’，ｙ’）を全て保持するリストｗを作成する。
【００４３】
Ｓ５３４において、参照範囲決定部４０６は、Ｓ５３３において作成したリストｗを参照し、リストｗが１つ以上画素位置を保持しているか否かを判定する。リストｗが１つ以上画素位置を保持している場合は、処理をＳ５３５に進める。リストｗが１つも画素位置を保持していない場合は、処理をＳ５３７に進める。
【００４４】
Ｓ５３５において、参照範囲決定部４０６は、Ｓ５３３において作成したリストｗが保持する画素位置（ｘ’，ｙ’）のうち、注目画素の画素位置（ｘ，ｙ）から最も近い画素位置までの距離ｋを式（１１）により算出する。
【００４５】
【数８】
2020021105.tif 000010
【００４６】
ここで、（ｘ’ｉ，ｙ’ｉ）は、リストｗのｉ番目に保持されている画素位置である。
【００４７】
Ｓ５３６において、参照範囲決定部４０６は、Ｓ５３５において算出した距離ｋに基づいて、注目画素における反射特性の推定に用いる参照範囲の幅ｒｅ（ｘ，ｙ）を算出する。さらに、算出した参照範囲の幅ｒｅ（ｘ，ｙ）を参照範囲マップにおいて対応する画素に保持させる。参照範囲決定部４０６は、注目画素を中心とした幅２ｋ＋１の矩形を参照範囲とするため、式（１２）のように参照範囲の幅ｒｅ（ｘ，ｙ）を算出する。
ｒｅ（ｘ，ｙ）＝２ｋ＋１・・・式（１２）
【００４８】
Ｓ５３７において、参照範囲決定部４０６は、注目画素における反射特性の推定に用いる参照範囲の幅ｒｅ（ｘ，ｙ）を初期状態の参照範囲ｒｄとし、初期状態の参照範囲ｒｄを参照範囲マップにおいて対応する画素に保持させる。
ｒｅ（ｘ，ｙ）＝ｒｄ・・・式（１３）
【００４９】
＜反射特性パラメータを算出する処理（Ｓ５４０）＞
Ｓ５４０において、パラメータ算出部４０７は、Ｓ５３０において作成された参照範囲マップに基づいて、注目画素の画素位置に応じて観測値の参照範囲を変えながら反射特性の推定を行う。図９は、反射特性パラメータを算出する処理を示すフローチャートである。以下、図９を用いてＳ５４０における反射特性パラメータを算出する処理について説明する。
【００５０】
以下のＳ５４１〜Ｓ５４３の処理は、全ての画素位置（ｘ，ｙ）に対して実行される。
【００５１】
Ｓ５４１において、パラメータ算出部４０７は、参照範囲マップから、注目画素の画素位置（ｘ，ｙ）における参照範囲の幅ｒｅ（ｘ，ｙ）を取得する。Ｓ５４２において、パラメータ算出部４０７は、撮像画像における参照範囲ｒｅ（ｘ，ｙ）×ｒｅ（ｘ，ｙ）内の観測値に対して反射モデルをフィッティングすることにより、反射特性パラメータを算出する。ここで、フィッティングを行う反射モデルをｆ（ｐ，ｖｎ，ｌｎ）とする場合、式（１４）により反射特性パラメータｐ（ｘ，ｙ）を算出する。尚、式（１４）において、ｒｅ（ｘ，ｙ）の値をｒ’とする。
【００５２】
【数９】
2020021105.tif 000011
【００５３】
ここで、ｐは、反射モデルｆ（ｐ，ｖｎ，ｌｎ）が有するパラメータ群を表すベクトルであり、本実施形態において用いる反射モデルは、平均、分散、スケールの３つのパラメータを有するガウス関数によって表される反射モデルである。
【００５４】
Ｓ５４３において、パラメータ算出部４０７は、Ｓ５４２において算出した反射特性パラメータｐ（ｘ，ｙ）を、反射特性データにおける画素位置（ｘ，ｙ）の画素に保持させる。ここで、反射特性データは、各画素に反射特性パラメータを保持するデータである。尚、１つの反射特性データの各画素に複数のパラメータを保持させてもよいし、平均データ、分散データ、スケールデータのように、それぞれのパラメータを各画素に保持するデータを生成してもよい。
【００５５】
以上のＳ５４０における処理により生成された反射特性データは、ＨＤＤ３１３などの記憶装置に出力される。尚、反射特性データの出力先は記憶装置に限らず、反射特性データに対して処理を行う他の装置などであってもよい。
【００５６】
＜第１実施形態の効果＞
以上説明したように、本実施形態における画像処理装置は、物体の表面の形状を表す形状情報を取得する。複数の幾何条件において物体を撮像することによって得られた複数の画像データを取得する。複数の画像データが表す複数の画像において、物体において注目する位置の面の向きと面の向きが類似する位置の画素値を、注目する位置における物体の反射特性を推定するための画素値として決定する。決定された画素値を用いることによって、注目する位置における物体の反射特性を推定する。これにより、反射モデルに適した観測値を用いて物体の反射特性を推定することができる。
【００５７】
［第２実施形態］
第１実施形態においては、物体の表面形状に基づいて、画素位置ごとに反射特性の推定において参照する範囲を変更した。本実施形態においては、画素位置ごとの参照範囲は固定したまま、注目画素の法線方向と類似する法線方向を有する画素を参照範囲に含まれる画素から選択し、選択した画素を用いて反射特性パラメータを算出する。尚、本実施形態における画像処理装置のハードウェア構成は第１実施形態のものと同様であるため、説明を省略する。以下において、本実施形態と第１実施形態とで異なる部分を主に説明する。尚、同一の構成については、同じ符号を付して説明する。
【００５８】
＜画像処理装置１の論理構成＞
図１０は、画像処理装置１の論理構成を示すブロック図である。画像処理装置１は、ＣＰＵ３０１がＲＯＭ３０２に格納されたプログラムをＲＡＭ３０３をワークメモリとして実行することによって、図１０に示す論理構成として機能する。尚、以下に示す処理の全てがＣＰＵ３０１によって実行される必要はなく、処理の一部または全てがＣＰＵ３０１以外の一つまたは複数の処理回路によって行われるように画像処理装置１が構成されていてもよい。
【００５９】
画像処理装置１は、形状情報取得部４０１、画像情報取得部４０２、撮像情報取得部４０３、反射特性推定部１００４を有する。尚、本実施形態における形状情報取得部４０１、画像情報取得部４０２、撮像情報取得部４０３は、第１実施形態における形状情報取得部４０１、画像情報取得部４０２、撮像情報取得部４０３と同様の機能を有するため、説明を省略する。反射特性推定部１００４は、反射モデルを観測値にフィッティングすることによって、物体の反射特性を推定する。反射特性推定部１００４は、法線算出部１００５、閾値算出部１００６、パラメータ算出部１００７を有する。法線算出部１００５は、高さデータが表す高さｈ（ｘ，ｙ）に対する法線ｈ’（ｘ，ｙ）を算出する。閾値算出部１００６は、撮像画像の画素値Ｉｎ（ｘ，ｙ）、観測ベクトルｖｎ、光源ベクトルｌｎ、照明強度ｓｎに基づいて、法線ｈ’（ｘ，ｙ）に対する閾値Ｔｈ’を算出する。パラメータ算出部１００７は、撮像画像の画素値Ｉｎ（ｘ，ｙ）、観測ベクトルｖｎ、光源ベクトルｌｎ、照明強度ｓｎ、法線ｈ’（ｘ，ｙ）、閾値Ｔｈ’に基づいて、反射特性パラメータｐ（ｘ，ｙ）を算出する。
【００６０】
＜画像処理装置１が実行する処理＞
図１１は、画像処理装置１が実行する処理のフローチャートである。以下、図１１を用いて画像処理装置１が実行する処理の詳細を説明する。尚、下記処理は、ユーザからの処理を開始する指示を受け付けることによって開始する。以下、各ステップ（工程）は符号の前にＳをつけて表す。尚、本実施形態のＳ５００及びＳ５１０における処理は、第１実施形態のＳ５００及びＳ５１０における処理と同様であるため説明を省略する。
【００６１】
Ｓ１１２０において、法線算出部１００５は、Ｓ５１０において取得された高さデータに基づいて、物体表面における法線ｈ’（ｘ，ｙ）を算出する。法線ｈ’（ｘ，ｙ）は、第１実施形態において示した式（１）に基づいて算出する。Ｓ１１３０において、閾値算出部１００６は、撮像画像の画素値Ｉｎ（ｘ，ｙ）、観測ベクトルｖｎ、光源ベクトルｌｎ、照明強度ｓｎに基づいて、Ｓ１１２０において算出された法線ｈ’（ｘ，ｙ）に対する閾値Ｔｈ’を算出する。閾値Ｔｈ’を算出する処理の詳細については後述する。Ｓ１１４０において、パラメータ算出部１００７は、撮像画像の画素値Ｉｎ（ｘ，ｙ）、観測ベクトルｖｎ、光源ベクトルｌｎ、照明強度ｓｎ、法線ｈ’（ｘ，ｙ）、閾値Ｔｈ’に基づいて、反射特性パラメータｐ（ｘ，ｙ）を算出する。反射特性パラメータｐ（ｘ，ｙ）を算出する処理の詳細については後述する。
【００６２】
＜閾値Ｔｈ’を算出する処理（Ｓ１１３０）＞
Ｓ１１３０において、閾値算出部１００６は、撮像画像の画素値Ｉｎ（ｘ，ｙ）、観測ベクトルｖｎ、光源ベクトルｌｎ、照明強度ｓｎに基づいて、Ｓ１１２０において算出された法線ｈ’（ｘ，ｙ）に対する閾値Ｔｈ’を算出する。ここでは、第１実施形態と同様に、物体における反射光の広がりに基づいて、推定誤差を生じさせる観測値を保持する画素を特定する。反射光の広がりは、参照範囲ｒｄ×ｒｄにおいて法線の角度変化が最も小さい位置の観測値の分散とする。まず、閾値算出部１００６は、初期状態の参照範囲の幅ｒｄを式（７）に基づいて算出する。次に、閾値算出部１００６は、式（１５）により、法線ｈ’（ｘ，ｙ）に基づいて、法線の角度変化が最も小さくなる位置（ｘｍ，ｙｍ）を算出する。
【００６３】
【数１０】
2020021105.tif 000012
【００６４】
ここで、ｈ’（ｘ，ｙ）Ｔｈ’（ｉ，ｊ）は、位置（ｘ，ｙ）の法線ベクトルと、位置（ｉ，ｊ）の法線ベクトルと、の内積を表す。次に、閾値算出部１００６は、位置（ｘｍ，ｙｍ）における観測値の分散σｍ２を式（９）を用いて算出する。次に、閾値算出部１００６は、式（１６）により、算出した観測値の分散σｍ２に基づいて閾値Ｔｈ’を算出する。
【００６５】
【数１１】
2020021105.tif 000013
【００６６】
＜反射特性パラメータを算出する処理（Ｓ１１４０）＞
Ｓ１１４０において、パラメータ算出部１００７は、Ｓ１１３０において算出された閾値Ｔｈ’に基づいて、参照範囲内の画素から、反射特性の推定に用いる観測値を有する画素を選択し、選択した画素の観測値を用いて反射特性パラメータを算出する。図１２は、反射特性パラメータを算出する処理を示すフローチャートである。以下、図１２を用いてＳ１１４０における反射特性パラメータを算出する処理について説明する。
【００６７】
Ｓ５３１において、パラメータ算出部１００７は、初期状態の参照範囲の幅ｒｄを算出する。処理の内容は第１実施形態と同じであるため、説明を省略する。以下のＳ１１４１〜Ｓ１１４５、Ｓ５４３の処理は、全ての画素位置（ｘ，ｙ）に対して実行される。
【００６８】
以下のＳ１１４１〜Ｓ１１４４の処理は、注目画素に対して、注目画素の画素位置（ｘ，ｙ）を中心とした参照範囲ｒｄ×ｒｄ内の全ての画素位置（ｘｒ，ｙｒ）に対して実行される。これにより、注目画素に対応する参照画素マスクが生成される。ここで、参照画素マスクは、反射特性の推定において参照する画素を特定するための２値データであり、画素値ｍ（ｘｒ，ｙｒ）が１の画素位置は参照され、画素値ｍ（ｘｒ，ｙｒ）が０の画素位置は参照されない。Ｓ１１４１において、パラメータ算出部１００７は、注目画素の画素位置（ｘ，ｙ）の法線ｈ’（ｘ，ｙ）と、参照範囲ｒｄ×ｒｄ内の画素位置（ｘｒ，ｙｒ）の法線ｈ’（ｘｒ，ｙｒ）と、の角度差ｅを算出する。法線同士の角度差は、式（１７）のように法線ベクトルの内積により算出する。
ｅ＝ｈ’（ｘ，ｙ）Ｔｈ’（ｘｒ，ｙｒ）・・・式（１７）
【００６９】
尚、式（１５）、式（１７）におけるＴは転置行列を示すＴである。
【００７０】
Ｓ１１４２において、パラメータ算出部１００７は、Ｓ１１４１において算出した法線の角度差ｅが閾値Ｔｈ’以下であるか否かを判定する。角度差ｅが閾値Ｔｈ’以下である場合は、処理をＳ１１４３に進める。角度差ｅが閾値Ｔｈ’より大きい場合は、処理をＳ１１４４に進める。Ｓ１１４３において、パラメータ算出部１００７は、反射特性の推定において法線の角度差ｅが閾値Ｔｈ’以下となる画素位置を参照するため、参照画素マスクにおける画素位置（ｘｒ，ｙｒ）の画素値ｍ（ｘｒ，ｙｒ）を１とする。Ｓ１１４４において、パラメータ算出部１００７は、反射特性の推定において法線の角度差ｅが閾値Ｔｈ’より大きくなる画素位置を参照しないようにするため、参照画素マスクにおける画素位置（ｘｒ，ｙｒ）の画素値ｍ（ｘｒ，ｙｒ）を０とする。
【００７１】
Ｓ１１４５において、パラメータ算出部１００７は、Ｓ１１４１〜Ｓ１１４４の処理によって生成した参照画素マスクに基づいて参照する観測値を選択し、選択した観測値に反射モデルをフィッティングする。ここで、フィッティングを行う反射モデルをｆ（ｐ，ｖｎ，ｌｎ）とする場合、式（１８）により反射特性パラメータｐ（ｘ，ｙ）を算出する。
【００７２】
【数１２】
2020021105.tif 000014
【００７３】
ここで、ｐは、反射モデルｆ（ｐ，ｖｎ，ｌｎ）が有するパラメータ群を表すベクトルであり、本実施形態において用いる反射モデルは、平均、分散、スケールの３つのパラメータを有するガウス関数によって表される反射モデルである。
【００７４】
Ｓ５４３において、パラメータ算出部４０７は、Ｓ５４２において算出した反射特性パラメータｐ（ｘ，ｙ）を、反射特性データにおける画素位置（ｘ，ｙ）の画素に保持させる。以上のＳ１１４０における処理により生成された反射特性データは、ＨＤＤ３１３などの記憶装置に出力される。
【００７５】
＜第２実施形態の効果＞
以上説明したように、本実施形態における画像処理装置は、注目画素を中心とした所定の参照範囲内の画素から、注目画素の法線方向と類似する法線方向を有する画素を選択する。選択した画素の観測値に反射モデルをフィッティングすることによって、物体の反射特性を表す反射特性パラメータを算出する。これにより、注目画素の法線方向と大きく異なる法線方向を有する画素の観測値を用いずに、注目画素における反射特性パラメータを算出することができる。また、画素位置ごとに参照範囲を変更することなく反射特性の推定を行うため、推定する反射特性の空間解像度を一定に保ったまま反射特性パラメータを算出することができる。
【００７６】
［その他の実施形態］
上述した実施形態においては、画像データをグレースケール画像データとしたが、カラー画像データであってもよい。この場合は、Ｒ値、Ｇ値、Ｂ値それぞれに対して上述した処理を行い、対応する波長帯に応じた反射特性を推定してもよい。尚、色情報は、Ｒ値、Ｇ値、Ｂ値に限られず、Ｌ＊ａ＊ｂ＊値などであってもよい。
【００７７】
上述した実施形態においては、反射特性の推定に用いる参照範囲を縦の長さと横の長さとが同じ範囲としたが、縦の長さと横の長さとが異なってもよい。
【００７８】
上述した実施形態においては、形状情報取得部４０１が形状情報として高さデータを取得したが、形状情報は上記一例に限定されない。例えば、高さデータが表す高さに基づいて予め算出された法線ベクトルを各画素に保持する法線データを形状情報として取得してもよい。この場合、高さデータに基づいた法線の算出を行う必要はない。
【００７９】
上述した実施形態においては、各画素に対して処理を行ったが、所定のサイズの領域ごとに反射特性の推定において用いる観測値を選択する処理を行うか否かを判定してもよい。具体的には、画像における領域ごとに最大の法線方向と最小の法線方向との角度差を算出する。角度差が所定の閾値よりも大きい場合は、上述した処理のように、初期状態の参照範囲内の画素うち反射モデルに適した画素値をフィッティングに用いる。角度差が所定の閾値以下である場合は、初期状態の参照範囲内の全画素の画素値をフィッティングに用いる。
【００８０】
上述した実施形態においては、初期状態の参照範囲を反射特性に対する視認解像度に基づいて算出したが、初期状態の参照範囲を取得する方法は上記一例に限定されない。例えば、本実施形態において生成する反射特性データに基づいた出力を行う出力デバイスに応じた解像度を予め設定し、設定した解像度に基づいて初期状態の参照範囲を算出してもよい。また、ユーザが所望する空間解像度を入力受付部４００などが受け取り、受け取った空間解像度に基づいて初期状態の参照範囲を算出してもよい。
【００８１】
上述した実施形態においては、反射特性の推定における参照画素を決めるための閾値を、参照範囲内の画素における反射特性を用いて算出したが、閾値を取得する方法は上記一例に限定されない。例えば、本実施形態において生成する反射特性データに基づいた出力を行う出力デバイスに応じた反射特性を用いて閾値を算出してもよい。また、ユーザによって入力された値を閾値として設定してもよい。
【００８２】
上述した実施形態においては、反射特性の推定に用いる反射モデルを、ガウス関数によって表される反射モデルとしたが、Ｔｏｒｒａｎｃｅ−ＳｐａｒｒｏｗモデルやＰｈｏｎｇモデルなどの他の反射モデルを用いて反射特性の推定を行ってもよい。
【００８３】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８４】
１  画像処理装置
４０１  形状情報取得部
４０２  画像情報取得部
４０４  反射特性推定部
【図１】
2020021105.tif 000015
【図２】
2020021105.tif 000016
【図３】
2020021105.tif 000017
【図４】
2020021105.tif 000018
【図５】
2020021105.tif 000019
【図６】
2020021105.tif 000020
【図７】
2020021105.tif 000021
【図８】
2020021105.tif 000022
【図９】
2020021105.tif 000023
【図１０】
2020021105.tif 000024
【図１１】
2020021105.tif 000025
【図１２】
2020021105.tif 000026