(57)【要約】【課題】被写体の３次元形状データに基づいて、仮想的な照明条件下での陰影を再現した画像を生成する際に、不自然な陰影が再現されないようにする。【解決手段】本発明の一実施形態に係る画像処理装置は、撮像画像に対応する３次元形状データに基づいて、仮想照明による陰影効果を撮像画像に付加する画像処理装置であって、３次元形状データから、被写体領域の３次元形状データを抽出する被写体領域の抽出手段と、被写体領域の３次元形状データに欠損が存在する場合に、３次元形状データの欠損に基づいて、仮想照明の可動範囲を設定する可動範囲設定手段とを有することを特徴とする。【選択図】図３
2019101978.tif 000002
【特許請求の範囲】
【請求項１】
撮像画像に対応する３次元形状データに基づいて、仮想照明による陰影効果を前記撮像画像に付加する画像処理装置であって、
前記３次元形状データから、被写体領域の３次元形状データを抽出する前記被写体領域の抽出手段と、
前記被写体領域の３次元形状データに欠損が存在する場合に、前記３次元形状データの前記欠損に基づいて、前記仮想照明の可動範囲を設定する可動範囲設定手段と
を有することを特徴とする画像処理装置。
【請求項２】
前記可動範囲設定手段は、前記３次元形状データにおける前記被写体領域の重心と、前記欠損に対応する前記被写体領域と背景領域との境界に基づいて、前記可動範囲を設定することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記可動範囲設定手段は、前記被写体領域の３次元形状データに加え、背景領域の３次元形状データ及び撮像装置の３次元位置に基づいて、前記可動範囲を設定することを特徴とする請求項１に記載の画像処理装置。
【請求項４】
前記被写体領域の３次元形状データに前記欠損が存在するかどうかを判断する形状判断手段を更に有することを特徴とする請求項１乃至３のいずれか１項に記載の画像処理装置。
【請求項５】
前記形状判断手段は、前記被写体領域の３次元形状データを被写体の全周にわたって取得できていない場合に、前記欠損が存在すると判断することを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記形状判断手段は、前記被写体領域を構成するポリゴンが、閉曲面であるか、または開曲面であるかを判断することで、前記欠損が存在するかどうかを判断することを特徴とする請求項４に記載の画像処理装置。
【請求項７】
前記形状判断手段は、前記被写体領域の３次元形状データと、前記撮像画像に画像認識技術を適用して得られた結果を用いて、前記欠損が存在するかどうかを判断することを特徴とする請求項４に記載の画像処理装置。
【請求項８】
前記仮想照明の照明位置の可動範囲を表示する表示手段を更に有することを特徴とする請求項１乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記表示手段は、前記仮想照明の照明位置と、前記仮想照明の照明位置の可動範囲とを比較し、前記仮想照明の照明位置が前記仮想照明の照明位置の可動範囲の境界近傍、または、前記可動範囲の外に設定された場合に、ユーザに警告を提示することを特徴とする請求項８に記載の画像処理装置。
【請求項１０】
前記表示手段は、前記警告のための文字情報を表示すること、または、前記仮想照明の照明位置を表すアイコンの色を変化させることの少なくとも一方によって、前記ユーザへの警告を提示することを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
コンピュータを、請求項１乃至１０のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【請求項１２】
撮像画像に対応する３次元形状データに基づいて、仮想照明による陰影効果を前記撮像画像に付加する画像処理装置による画像処理方法であって、
前記３次元形状データから、被写体領域の３次元形状データを抽出するステップと、
前記被写体領域の３次元形状データに欠損が存在する場合に、前記３次元形状データの前記欠損に基づいて、前記仮想照明の可動範囲を設定するステップと
を含むことを特徴とする画像処理方法。
【請求項１３】
撮像画像に対応する３次元形状データに基づいて、仮想照明による陰影効果を前記撮像画像に付加する画像処理装置であって、
前記３次元形状データから、被写体領域の３次元形状データを抽出する前記被写体領域の抽出手段と、
前記被写体領域の３次元形状データの取得精度が低い場合に、前記３次元形状データの前記取得精度に基づいて、前記仮想照明の照明サイズの設定可能範囲を設定する照明サイズ範囲設定手段と
を有することを特徴とする画像処理装置。
【請求項１４】
前記３次元形状データの取得精度は、前記被写体領域の３次元形状データにおける法線と、本来の３次元形状データにおける法線とが成す角度に基づいて算出されることを特徴とする請求項１３に記載の画像処理装置。
【請求項１５】
前記撮像画像の解像度より、前記被写体領域の３次元形状データの解像度が高い場合、前記被写体領域の３次元形状データにおける法線は、前記撮像画像の画素に対応する領域の法線であることを特徴とする請求項１３に記載の画像処理装置。
【請求項１６】
前記３次元形状データの取得精度は、前記被写体領域の３次元形状データにおける注目領域の法線と、前記注目領域の周辺領域における平均の法線方向を有する法線とが成す角度に基づいて算出されることを特徴とする請求項１３に記載の画像処理装置。
【請求項１７】
前記３次元形状データの取得精度が所定値より低いかどうかを判断する形状判断手段を更に有することを特徴とする請求項１３乃至１６のいずれか１項に記載の画像処理装置。
【請求項１８】
前記照明サイズ範囲設定手段は、前記被写体領域の重心から前記仮想照明を見込む角度が、前記取得精度を表す角度となる場合の前記照明サイズを表す半径を下限として、前記照明サイズの前記設定可能範囲を設定することを特徴とする請求項１３乃至１７のいずれか１項に記載の画像処理装置。
【請求項１９】
前記仮想照明の照明サイズの設定可能範囲を表示する表示手段を更に有することを特徴とする請求項１３乃至１８のいずれか１項に記載の画像処理装置。
【請求項２０】
前記表示手段は、前記仮想照明の照明サイズと、前記仮想照明の照明サイズの設定可能範囲とを比較し、前記仮想照明の照明サイズが前記仮想照明の照明サイズの設定可能範囲の境界近傍、または、前記設定可能範囲の外に設定された場合に、ユーザに警告を提示することを特徴とする請求項１９に記載の画像処理装置。
【請求項２１】
前記表示手段は、前記警告のための文字情報を表示すること、または、前記仮想照明の照明サイズを表すアイコンの色を変化させることの少なくとも一方によって、前記ユーザへの警告を提示することを特徴とする請求項２０に記載の画像処理装置。
【請求項２２】
コンピュータを、請求項１３乃至２１のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【請求項２３】
撮像画像に対応する３次元形状データに基づいて、仮想照明による陰影効果を前記撮像画像に付加する画像処理装置による画像処理方法であって、
前記３次元形状データから、被写体領域の３次元形状データを抽出するステップと、
前記被写体領域の３次元形状データの取得精度が低い場合に、前記３次元形状データの前記取得精度に基づいて、前記仮想照明の照明サイズの設定可能範囲を設定するステップと
を含むことを特徴とする画像処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、撮像画像に、所望の照明条件下で撮影したかのような陰影効果を付加する画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
撮像装置で被写体を撮影する場合、被写体に対する照明（光）の当たり方によって撮像画像は大きく変わる。例えば、人物である被写体に対して斜めから光が当たっているような照明条件下では、顔の陰影が強調され立体的な印象の撮像画像が得られる。しかしながら、被写体の後方から光が当たっているような強い逆光などの照明条件下では、被写体の一部あるいは全体が陰になり、暗くなった撮像画像になってしまう。そこで、撮像画像に、ユーザが所望する照明条件下で撮影したかのような陰影効果を付加する方法が、特許文献１及び２には開示されている。特許文献１には、被写体の３次元形状データを用いて、仮想的な照明条件下での陰影を再現した画像を生成し、撮像画像と合成する方法が開示されている。また、特許文献２には、被写体のサイズや曲率半径などの形状に応じて、仮想照明の照明位置の可動範囲を設定する方法が開示されている。
【０００３】
尚、以下では、特許文献１及び２のように、撮影後に被写体の３次元形状データに基づいて仮想的な照明条件下での陰影を再現した画像を生成する処理を、ライティング処理と称する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１３−１２５２９２号公報
【特許文献２】特開２０１５−２０１８３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の特許文献１及び２には、被写体の３次元形状データに基づいてライティング処理を行うことが開示されている。しかしながら、被写体の３次元形状データは、必ずしも被写体の正確な３次元形状を表しているとは限らない。例えば、３次元形状データが、被写体の全周の３次元形状を取得できておらず、３次元形状に欠損が存在する場合がある。また、３次元形状データの取得精度が低く、被写体の表面に本来は存在しない凸凹が存在する場合もある。このように、３次元形状データは、被写体の本来の３次元形状を正確に表していないことがあり、このような３次元形状データに基づいてライティング処理を行うと、不自然な陰影が再現されてしまうことがある。
【０００６】
本発明は、このような問題に鑑みてなされたものであり、その目的とするところは、被写体の３次元形状データに基づいて、仮想的な照明条件下での陰影を再現した画像を生成する際に、不自然な陰影が再現されないようにすることにある。
【課題を解決するための手段】
【０００７】
本発明の一実施形態に係る画像処理装置は、撮像画像に対応する３次元形状データに基づいて、仮想照明による陰影効果を前記撮像画像に付加する画像処理装置であって、前記３次元形状データから、被写体領域の３次元形状データを抽出する前記被写体領域の抽出手段と、前記被写体領域の３次元形状データに欠損が存在する場合に、前記３次元形状データの前記欠損に基づいて、前記仮想照明の可動範囲を設定する可動範囲設定手段とを有することを特徴とする。
【０００８】
また、本発明の一実施形態に係る画像処理装置は、撮像画像に対応する３次元形状データに基づいて、仮想照明による陰影効果を前記撮像画像に付加する画像処理装置であって、前記３次元形状データから、被写体領域の３次元形状データを抽出する前記被写体領域の抽出手段と、前記被写体領域の３次元形状データの取得精度が低い場合に、前記３次元形状データの前記取得精度に基づいて、前記仮想照明の照明サイズの設定可能範囲を設定する照明サイズ範囲設定手段とを有することを特徴とする。
【発明の効果】
【０００９】
本発明によると、被写体の３次元形状データに基づいて、仮想的な照明条件下での陰影を再現した画像を生成する際に、不自然な陰影が再現されないようにすることができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態１に係る画像処理装置の外観を示す図である。
【図２】実施形態１に係る撮像装置の内部構成を示す図である。
【図３】実施形態１に係る画像処理部の構成を示す機能ブロック図である。
【図４】実施形態１に係る仮想照明の照明位置を表すパラメータを示す図である。
【図５】実施形態１に係る画像処理の流れを示すフローチャートである。
【図６】実施形態１に係る３次元形状データの欠損を説明する図である。
【図７】実施形態１に係る照明位置の可動範囲の設定方法を示す図である。
【図８】実施形態１に係る照明位置の可動範囲の表示例を示す図である。
【図９】実施形態１に係る照明位置に対する警告の表示例を示す図である。
【図１０】実施形態１に係るライティング処理部の構成を示す機能ブロック図である。
【図１１】実施形態１に係るライティング処理部の処理の流れを示すフローチャートである。
【図１２】実施形態１に係る陰影画像データの例を示す図である。
【図１３】実施形態１に係るライティング画像データの例を示す図である。
【図１４】実施形態１に係る効果を説明する図である。
【図１５】実施形態２に係る画像処理部の構成を示す機能ブロック図である。
【図１６】実施形態２に係る処理の流れを示すフローチャートである。
【図１７】実施形態２に係る照明位置の可動範囲の設定方法を示す図である。
【図１８】実施形態３に係る画像処理部の構成を示す機能ブロック図である。
【図１９】実施形態３に係る照明条件の設定操作とパラメータを説明する図である。
【図２０】実施形態３に係る画像処理の流れを示フローチャートである。
【図２１】実施形態３に係る形状データの法線を説明する模式図である。
【図２２】実施形態３に係る照明サイズの設定可能範囲の設定方法を説明する図である。
【図２３】実施形態３に係る照明サイズの設定可能範囲の表示例を示す図である。
【図２４】実施形態３に係る照明サイズに対する警告の表示例を示す図である。
【図２５】実施形態３に係るライティング処理部の構成を示す機能ブロック図である。
【図２６】実施形態３に係るライティング処理部の処理の流れを示すフローチャートである。
【図２７】実施形態４に係る撮像システムの構成を示す図である。
【図２８】実施形態４に係る撮像装置の内部構成を示す図である。
【図２９】実施形態４に係る画像処理部の構成を示す機能ブロック図である。
【図３０】実施形態４に係る画像処理の流れを示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を参照して詳細に説明する。
【００１２】
［実施形態１］
＜撮像装置の外観＞
図１は、本実施形態に適用可能な画像処理装置の外観を示す図である。本実施形態では、画像処理装置の例として、撮像装置であるデジタルカメラを示すが、画像処理装置はこれに限定されない。例えば、画像処理装置は、携帯電話やタブレットデバイス、パーソナルコンピュータなどの情報処理装置であっても良いし、カメラ付き携帯電話等の撮像装置として構成されても良い。
【００１３】
図１（ａ）は、本実施形態における画像処理装置の正面の外観を示し、図１（ｂ）は、背面の外観を示している。画像処理装置の例として示された撮像装置１０１は、カラー画像撮像部１０２、撮像ボタン１０３、距離画像取得部１０４、表示部１０５、及び操作ボタン１０６を有する。
【００１４】
カラー画像撮像部１０２は、ズームレンズ、フォーカスレンズ、ブレ補正レンズ、絞り、シャッター、及びカラー撮像素子部によって構成され、被写体の光情報を取得する。尚、カラー画像撮像部１０２の構成は、これに限定されるものではない。撮像ボタン１０３は、ユーザが撮像の開始を撮像装置１０１に指示するためのボタンである。距離画像取得部１０４は、ユーザからの撮像指示に応じて被写体までの距離を記録した距離画像データを取得する。尚、本実施形態では、撮像装置１０１の筺体の中にカラー画像撮像部１０２と距離画像取得部１０４が含まれるが、これに限定されるものではなく、カラー画像撮像部１０２と距離画像取得部１０４が独立した構成であってもよい。また、本実施形態における距離画像取得部１０４は、距離画像取得部１０４を基準とした距離画像取得部１０４の光軸方向の距離を取得し、カラー画像撮像部１０２を基準としたカラー画像撮像部１０２の光軸方向の距離へ変換し、保存する。尚、予め距離画像取得部１０４とカラー画像撮像部１０２の両者の位置、光軸方向を取得し、キャリブレーションすることで、距離画像取得部１０４を基準とした距離画像データを、カラー画像撮像部１０２を基準とした距離画像データへ変換することができる。以下では、距離画像取得部１０４が取得する距離画像データＤは、画素Ｄ（ｉ，ｊ）で表現する。また、距離画像データＤの各画素は、カラー画像データＩの各画素と対応付けられているとする。具体的には、カラー画像データＩの画素Ｉ（ｉ，ｊ）は、距離画像データＤの画素Ｄ（ｉ，ｊ）と１対１で対応しているものとする。距離画像取得部１０４における、距離画像取得部１０４を基準とした距離の取得に用いる方式としては、既存のどのような方式を用いてもよい。例えば、発光した光が被写体に反射し戻ってくるまでの時間から距離を算出するタイムオブフライト方式や、２以上の複数の場所から撮影した画像から三角測量によって距離を算出する多視点ステレオ方式などを用いることができる。
【００１５】
表示部１０５は、液晶ディスプレイなどで構成され、撮像装置１０１による撮影時のライブビュー画像の表示や、撮影後に撮像画像の表示を行うことができる。また、本実施形態では、表示部１０５は、撮像画像に対して仮想照明の位置をユーザが指定する際のライティング処理のプレビュー画像の表示や、ライティング処理を実施した後の処理結果画像の表示を行う。また、表示部１０５は、撮像装置１０１の設定メニューの表示を行うことも可能である。
【００１６】
操作ボタン１０６は、撮像装置１０１がユーザ操作を取得するためのボタンである。具体的には、操作ボタン１０６は、表示部１０５が表示する設定メニューに対して、撮像モードの切り換えや、撮像時の各種パラメータの設定などをユーザが撮像装置１０１に指示するためのボタンである。ユーザは、操作ボタン１０６、あるいは撮像ボタン１０３を用いて、照明パラメータの設定や、被写体領域の選択等を、撮像装置１０１に指示することができる。尚、表示部１０５がタッチスクリーン機能を有しても良く、撮像装置１０１は、タッチスクリーンを介したユーザ指示を、操作ボタン１０６の入力として扱うことも可能である。
【００１７】
＜撮像装置の内部構成＞
図２は、本実施形態における撮像装置１０１の内部構成を示すブロック図である。
【００１８】
ＣＰＵ２０２は、ＲＯＭ（Ｒｅａｄ Ｏｎｌｙ Ｍｅｍｏｒｙ）２０３や、ＲＡＭ（Ｒｏｎｄｏｍ Ａｃｃｅｓｓ Ｍｅｍｏｒｙ）２０４に格納された命令を順に読み込み、解釈し、その結果に従って各構成の処理を実行する。すなわち、命令とは、コンピュータプログラムである。システムバス２１２は、データを送受信するためのバスである。
【００１９】
光学系制御部２０５は、カラー画像撮像部１０２に対して、フォーカスを合わせる、シャッターを開く、絞りを調整するなどの、ＣＰＵ２０２から指示された制御を行う。
【００２０】
制御部２０６は、撮像ボタン１０３や操作ボタン１０６からのユーザ指示によって、撮像、被写体領域の選択、仮想照明の照明位置の設定などを制御する。仮想照明の照明位置の設定に際し、制御部２０６は後述の照明位置を表す複数のパラメータのうちどのパラメータを更新するかを表す照明位置更新モードと、照明位置が決定しているかどうかを示す照明位置決定フラグの制御を行う。照明位置更新モードは、照明位置を表す複数のパラメータのうち、照明位置の方位角及び仰角を更新する場合は０、照明位置の半径を更新する場合は１がそれぞれ設定される。照明位置決定フラグは、照明位置が未決定である場合は０、照明位置が決定されている場合は１がそれぞれ設定される。尚、照明位置更新モードと照明位置決定フラグは、共に０が初期値として与えられる。
【００２１】
キャラクタージェネレーション部２０７は、文字やグラフィックなどを生成する。生成された文字やグラフィックは、画像処理部２０９によって生成されたライティング画像に重畳して表示部１０５に表示される。
【００２２】
Ａ／Ｄ変換部２０８は、カラー画像撮像部１０２が検知した被写体の光量をデジタル信号値に変換して、ＲＡＷ画像データを生成する。尚、本実施形態では、同時刻に撮像した距離画像データとＲＡＷ画像データが取得可能であるものとする。
【００２３】
画像処理部２０９は、上記のＲＡＷ画像データに対して現像処理を行って生成したカラー画像データに対して、各種画像処理を実行する。本実施形態において、画像処理部２０９は、カラー画像データ及び距離画像データに基づいてライティング処理を行い、カラー画像データからライティング画像データを生成する。画像処理部２０９の内部構造は、後に詳述する。
【００２４】
エンコーダ部２１０は、画像処理部２０９が処理したカラー画像データやライティング処理によって生成されたライティング画像データを含む各種画像データを、Ｊｐｅｇなどのファイルフォーマットに変換する変換処理を行う。
【００２５】
メディアＩ／Ｆ２１１は、ＰＣ／メディア２１３（例えば、ハードディスク、メモリカード、ＣＦカード、ＳＤカードなど）と画像データを送受信するためのインタフェースである。
【００２６】
＜画像処理部２０９の構成＞
図３は、本実施形態における画像処理部２０９の構成を示す機能ブロック図である。以下では、画像処理部２０９が本実施形態におけるライティング処理を行うための機能の詳細を説明する。
【００２７】
画像処理部２０９は、Ａ／Ｄ変換部２０８よりＲＡＷ画像データ、距離画像取得部１０４より距離画像データ、そして制御部２０６より仮想照明の照明位置がそれぞれ入力される。画像処理部２０９は、距離画像データと照明位置に基づいて、ＲＡＷ画像データに対してライティング処理を行う。そして、画像処理部２０９は、ライティング処理結果である出力画像を、（エンコーダ部２１０からメディアＩ／Ｆ２１１を介して）ＰＣ／メディア２１３へ、または表示部１０５へ出力する。
【００２８】
以下に、画像処理部２０９の各機能ブロックについて説明する。
【００２９】
画像取得部３０１は、Ａ／Ｄ変換部２０８からＲＡＷ画像データを取得する。現像部３０２は、ＲＡＷ画像データに対してデモザイク処理を施し、カラー画像データを生成する。生成したカラー画像データは、表示部１０５へ出力して表示したり、ＲＡＭ２０４やＰＣ／メディア２１３などの記憶装置に記憶したりすることができる。尚、本実施形態において、カラー画像データＩを構成する画素Ｉ（ｉ，ｊ）には、ＲＧＢ値が画素値として格納されているものとする。カラー画像データの各画素に格納されたＲＧＢ値はそれぞれＩｒ（ｉ，ｊ）、Ｉｇ（ｉ，ｊ）、Ｉｂ（ｉ，ｊ）と表す。また、以下ではカラー画像データの水平方向の画素数をＷ、カラー画像データの垂直方向の画素数をＨと表記する。
【００３０】
形状取得部３０３は、被写体を含む撮影シーン（以下、単にシーンとも称する）の３次元形状データを取得する。また、本実施形態では、距離画像取得部１０４が取得する距離画像データを３次元形状データへ変換することで、３次元形状データを得る。本実施形態における３次元形状データは、ポリゴンとも呼ばれ、３次元空間上の多数の頂点と、３または４などの複数の頂点を結んで構成される面から成るデータである。ポリゴン中のｎ番目（ｎ≦Ｎ、Ｎは頂点数）の頂点は、３次元空間上の位置を表す３次元座標Ｖｎ＝（Ｘｎ、Ｙｎ、Ｚｎ）を保持する。尚、３次元形状データの形式は限定されるものではなく、他の形式を用いてもよい。
【００３１】
照明位置設定部３０４は、制御部２０６から入力された照明位置を変更するためのユーザ操作を受け付け、ユーザからの指示に応じて仮想照明の照明位置を設定する。本実施形態では、タッチスクリーン機能を有した表示部１０５にカラー画像データを表示し、表示画面に対するドラッグ操作によって得られるユーザからの指示に応じて、仮想照明の照明位置を受け付ける。図４に示すように、本実施形態における仮想照明の照明位置は、回転の中心位置Ｃ＝（Ｃｘ、Ｃｙ、Ｃｚ）、中心位置Ｃの周りの回転半径ｒ、Ｙ軸周りの回転角θ、Ｚ軸周りの回転角φの４つの変数を用いて表す。以下では、Ｙ軸周りの回転角θを方位角、Ｚ軸周りの回転角φを仰角と表記する。これらの４つの変数Ｃ、ｒ、θ、φを使用して、照明位置の３次元座標Ｌ＝（Ｌｘ、Ｌｙ、Ｌｚ）は、下記式（１）によって求めることができる。
【００３２】
【数１】
2019101978.tif 000003
【００３３】
尚、照明位置の表現方法はこれに限定されるものではなく、他の形式で表してもよい。
【００３４】
撮像装置位置・姿勢算出部３０５は、カラー画像データと３次元形状データから、カラー画像データを撮影した際の撮像装置１０１の位置及び姿勢を算出する。ここで、撮像装置１０１の位置とは、撮像装置１０１の光学中心の三次元位置を表す。また、撮像装置１０１の姿勢とは、撮像装置１０１の光軸の方向を表す。尚、撮像装置１０１の位置及び姿勢は、被写体と撮像装置１０１との相対的な位置関係を算出すればよい。
【００３５】
ライティング処理部３０６は、カラー画像データ、３次元形状データ、撮像装置１０１の位置・姿勢、及び仮想照明の照明位置を用いて、ライティング処理及び色変換処理を行う。ライティング処理部３０６は、ライティング処理によってカラー画像データ（すなわち、撮像画像）に陰影効果を追加し、ライティング画像データを生成する。さらに、ライティング処理部３０６は、生成したライティング画像データに対してホワイトバランス処理、ガンマ処理等の色変換処理を施し、最終的な出力画像データを生成する。
【００３６】
画像出力部３０７は、ライティング処理部３０６から受け取った出力画像データを、表示部１０５や、エンコーダ部２１０を介してＰＣ／メディア２１３へ出力する。
【００３７】
被写体領域抽出部３０８は、カラー画像データ及び３次元形状データから、３次元形状データのうち注目被写体の領域を特定し、被写体領域の３次元形状データを抽出する。以下、３次元形状データのうち注目被写体の領域を、単に被写体領域と称する。また、３次元形状データのうち注目被写体以外の領域を、背景領域と称する。
【００３８】
形状判断部３０９は、被写体領域の３次元形状データに、欠損が存在するか判断を行う。処理の詳細は後述する。
【００３９】
照明位置可動範囲設定部３１０は、被写体領域の３次元形状データに欠損が存在すると判断された場合に、被写体領域の３次元形状データの欠損に基づいて仮想照明の照明位置の可動範囲を設定する。具体的には、仮想照明の照明位置を表す各パラメータに対して可動範囲を設定する。本実施形態では、照明位置を表わすパラメータのうち方位角θ、仰角φに対し、可動範囲を設定する。尚、照明位置を表わすパラメータのうち中心位置Ｃ、半径ｒに対して可動範囲を設定してもよい。
【００４０】
照明位置可動範囲出力部３１１は、照明位置可動範囲設定部３１０によって設定された仮想照明の照明位置の可動範囲を表示部１０５へ出力し、ユーザに提示する。
【００４１】
照明位置評価部３１２は、照明位置設定部３０４によって設定されたユーザ指定の照明位置が、照明位置可動範囲設定部３１０によって設定された照明位置の可動範囲内に含まれるか評価を行う。
【００４２】
警告出力部３１３は、照明位置評価部３１２によって、ユーザ指定の照明位置が可動範囲内に含まれないと評価された場合に、警告を表示部１０５へ出力する。
【００４３】
以上説明したように、本実施形態における画像処理部２０９は、ライティング処理を行うための機能を有する。
【００４４】
＜画像処理部２０９の処理フロー＞
続いて、本実施形態における画像処理部２０９の各部によるライティング処理の処理フローを説明する。図５は、本実施形態におけるライティング処理のフローチャートを示す。フローチャートにおける各ステップの処理は、ＣＰＵ２０２がＲＯＭ２０３やＲＡＭ２０４に格納されたプログラムを読み出して実行することにより実施される。
【００４５】
まず、ステップＳ５０１において、画像取得部３０１は、Ａ／Ｄ変換部２０８から、撮像装置１０１によって撮影されたＲＡＷ画像データを取得する。
【００４６】
次に、ステップＳ５０２において、現像部３０２は、ＲＡＷ画像データを現像し、カラー画像データを生成する。一般に、ＲＡＷ画像データの現像処理には、デモザイキングを始め、ホワイトバランス調整、ガンマ補正、ノイズ除去など各種処理が含まれるが、本実施形態では、デモザイキングとノイズ除去のみが行われる。カラー画像データの各画素のＲＧＢ値Ｉｒ（ｉ，ｊ）、Ｉｇ（ｉ，ｊ）、Ｉｂ（ｉ，ｊ）には、画素が受光した放射輝度に比例した値が格納されていることが望ましい。
【００４７】
次に、ステップＳ５０３において、形状取得部３０３は、被写体を含む撮影シーンの３次元形状データであるポリゴンを取得する。本実施形態では、形状取得部３０３は、距離画像取得部１０４が取得した距離画像データの各画素に対応する３次元点を頂点とし、各頂点を結んで面とすることで、ポリゴンを生成する。以下に、形状取得部３０３による処理の詳細を説明する。
【００４８】
まず、形状取得部３０３は、距離画像データＤの各画素に対応する３次元点Ｖｎの位置を算出する。具体的には、距離画像データＤのうち座標（ｉ，ｊ）の画素から、３次元点の位置Ｖｎ＝（Ｘｎ、Ｙｎ、Ｚｎ）は、下記式（２）によって算出される。
【００４９】
【数２】
2019101978.tif 000004
【００５０】
ここで、ｃｘｄ、ｃｙｄは、距離画像取得部１０４の主点と呼ばれる光学的な中心を、距離画像中の座標で表した値である。ｆｄは、距離画像取得部１０４の焦点距離を距離画像データの画素換算で表した値である。Ｗは、距離画像データの横方向の画素数を表す。上記式（１）で得られる３次元位置は、撮像装置１０１のカラー画像撮像部１０２の光学的な中心を原点として、撮像装置に水平な方向をＸ軸、撮像装置に垂直な方向をＹ軸、撮像装置の光軸方向をＺ軸とする３次元空間における位置を表している。尚、ｎと（ｉ，ｊ）は、１対１で対応していればよく、上式以外の式でｎと（ｉ，ｊ）を関係づけてもよい。また、式（１）は、距離画像データＤの２次元座標（ｉ，ｊ）から３次元点の位置Ｖｎを計算する式であるが、この式を逆に解くことによって、３次元点の位置Ｖｎに対応する距離画像データＤの２次元座標（ｉ，ｊ）を算出することもできる。
【００５１】
続いて、形状取得部３０３は、複数の３次元点を結び、面を構成することで、ポリゴンを生成する。本実施形態では、等間隔の格子状に配置された距離画像データから３次元点を生成するため、この格子上の隣接点を結ぶことで面を構成することができる。また、例えばドロネー三角分割などの既存の手法を用いることで、３次元点を結び、面を構成することも可能である。
【００５２】
次に、ステップＳ５０４において、撮像装置位置・姿勢算出部３０５は、３次元形状データとカラー画像データとから、カラー画像データを撮影した際の撮像装置の相対的な位置・姿勢データを算出する。本実施形態では、撮像装置の光学的な中心の３次元座標、撮像装置の水平方向、撮像装置の垂直方向、及び撮像装置の光軸方向を表す４つの変数を、撮像装置の位置・姿勢データとする。
【００５３】
次に、ステップＳ５０５において、被写体領域抽出部３０８は、カラー画像データ及び３次元形状データから、被写体領域の３次元形状データを抽出する。本実施形態では、被写体領域抽出部３０８は、まずカラー画像データＩにおいて注目被写体を抽出し、その後に３次元形状データからカラー画像データＩの注目被写体に対応する領域を得る。カラー画像データＩにおいて注目被写体を抽出する方法は、公知の手法を用いればよい。例えば、画像認識技術を利用することで、注目被写体を自動的に抽出してもよい。この場合、例えば被写体が人物の場合は、人物認識技術や顔認識技術が利用可能である。また、制御部２０６を通じて、ユーザが注目する領域を手動で選択してもよい。カラー画像データＩのうち被写体領域として抽出された２次元座標の集合をＯＩとする。本実施形態では、前述のようにカラー画像データＩと距離画像データＤは、同じ座標の画素が対応している。そのため、カラー画像データＩのうち被写体領域を表す座標群ＯＩは、距離画像データＤにおいても被写体領域を表している。上記式（１）を用いることで、３次元形状データのうち、２次元座標群ＯＩの各座標に対応する３次元点Ｖｎを算出することができる。以下では、３次元形状データのうち被写体領域に含まれる点をＯとする。また、３次元形状データの被写体領域の重心の３次元位置ＯＣは、下記式（３）で算出することができる。
【００５４】
【数３】
2019101978.tif 000005
【００５５】
ここで、｜Ｏ｜は集合Ｏに含まれる点の数を表している。
【００５６】
次に、ステップＳ５０６において、照明位置可動範囲設定部３１０は、仮想照明の照明位置の可動範囲の初期化を行う。照明位置可動範囲設定部３１０は、照明位置に対し、回転中心位置Ｃを、上述の被写体領域の重心の３次元位置ＯＣとし、照明位置を表すパラメータである中心位置Ｃ、半径ｒ、方位角θ、仰角φのうちの方位角θ、仰角φに対し、可動範囲を設定する。尚、本実施形態では、θ1、θ2、φ1、φ2を用いて、方位角θ、仰角φそれぞれの可動範囲は、下記の式（４）で表されるものとする。
【００５７】
【数４】
2019101978.tif 000006
【００５８】
可動範囲の初期値として、θ1、θ2のそれぞれには、下記式（５）で示す値が設定される。
【００５９】
【数５】
2019101978.tif 000007
【００６０】
同様に、φ1、φ2のそれぞれには、下記式（６）で示すように初期値が設定される。
【００６１】
【数６】
2019101978.tif 000008
【００６２】
次に、ステップＳ５０７において、形状判断部３０９は、被写体領域の３次元形状データに欠損が存在するか判断を行う。本実施形態において３次元形状データの欠損とは、３次元形状データを被写体の全周にわたって取得できていない状態を表す。距離画像取得部１０４のように被写体形状を一方向のみから取得する場合、被写体の前面の３次元形状データは取得できるが、背面の３次元形状データは取得することができない。したがって、被写体の全周の３次元形状データが取得できないため、形状判断部３０９は、被写体の３次元形状データに欠損が存在すると判断する。図６は、本実施形態における３次元形状データの欠損を説明する図である。図６（ａ）に示すように、ここでは、３次元形状データの欠損について、撮像装置１０１を用いて被写体６０１と被写体以外の背景領域６０２とから成るシーンを撮影する場合を例に説明する。尚、被写体６０１として人物を撮影する場合で説明するが、被写体は人物に限定されるものではない。図６（ｂ）は、撮像装置１０１、被写体６０１、及び背景領域６０２を上方から見た図である。距離画像取得部１０４から見え、距離データを取得可能な部分を実線６０３、６０５で表し、距離画像取得部１０４からは見えず、距離データを取得不可能な部分を点線６０４、６０６で表している。このように、点線６０４、６０６で表される距離データが取得できない部分については、被写体の３次元形状データの欠損となってしまう。図６（ｃ）は、この場合のカラー画像データの例６１０を示す。
【００６３】
本ステップＳ５０７では、被写体領域の３次元形状データに欠損が存在する場合はステップＳ５０８に移行する。一方、３次元形状データに欠損が存在しないと判断された場合は、ステップＳ５１０へ移行する。
【００６４】
尚、３次元形状データの欠損の有無は、以下のように判断することが可能である。例えば、形状判断部３０９は、被写体領域を構成するポリゴンが、開曲面であるか、または閉曲面であるかを判断することで、欠損の有無を判断することができる。形状判断部３０９は、ポリゴンが開曲面である場合には、欠損が存在すると判断する。尚、場合によっては、正しい３次元形状データ（すなわち、ポリゴン）が開曲面であることもある。そのため、例えば、カラー画像データへの既存の画像認識技術の適用結果を組み合わせることも可能である。すなわち、画像認識技術によってどのような被写体であるかを判断することにより、本来の３次元形状データが開曲面であるか、それとも開曲面であるかを知ることができる。その上で、本来は３次元形状データが閉曲面であるべきだが、取得した３次元形状データが開曲面であれば、取得した３次元形状データに欠損が存在すると判断する。また、形状データが存在しない部分の３次元形状データの予測結果と、取得できている３次元形状データとを比較し、差がある場合に、開曲面が欠損であるか判断することもできる。形状データが存在しない部分の３次元形状データの予測手法としては、上記の画像認識技術でどのような被写体なのか認識できた場合に、その被写体の平均的な形状データを本来の３次元形状データとして使用する方法がある。その他にも、３次元形状データが取得できている領域の曲率半径を算出し、その曲率によって３次元形状データを補完してもよい。また、その他の欠損の有無を判断する方法として、被写体の３次元形状データの取得に用いるデバイスによって一律に判断してもよい。例えば、距離画像取得部１０４のように、一方向からのみの３次元形状データを取得するデバイスを用いる場合は、３次元形状データに欠損が存在すると判断してもよい。一方、被写体を全周から取り囲んだ多視点カメラを用いる場合は、３次元形状データに欠損は存在しないと判断してもよい。尚、欠損の有無を判断する方法は、限定されるものではなく、その他の方法を用いてもよい。
【００６５】
次に、ステップＳ５０８において、照明位置可動範囲設定部３１０は、被写体の３次元形状データに欠損が存在する場合に、３次元形状データの被写体領域に基づいて照明位置可動範囲の更新を行う。本実施形態では、まず、被写体の３次元形状データのうち形状データを取得できている領域の範囲を求める。本実施形態における被写体形状の範囲の求め方について、図７を参照して説明する。図７は、図６（ｂ）と同様に、撮像装置１０１と被写体７０１を上方から見た模式図である。尚、被写体７０１の３次元形状データには欠損が存在し、図７には、３次元形状データが取得できている領域のみが示されている。図７において、７０２は、ステップＳ５０５において算出した３次元形状データの被写体領域の重心OCを表す。線分７０３は、撮像装置１０１と被写体領域の重心OCを結んだ線分である。点７０４、７０５は、３次元形状データの被写体領域と非被写体領域の境界に当たる３次元点である。これらの点の求め方としては、まず、ステップＳ５０５のカラー画像データＩの被写体領域から、被写体の輪郭を形成する画素を抽出する。そして、式（１）を用いて２次元座標を３次元形状データへ逆投影することで、カラー画像データＩの輪郭画素に対応する３次元点を求めることができる。図７において、線分７０６は、重心７０２と点７０４を結んだ線分である。同様に、線分７０７は、重心７０２と点７０５を結んだ線分である。そして、線分７０３と線分７０６が成す角度θ1と、線分７０３と線分７０７が成す角度θ2との２つの角度を算出する。この２つの角度θ1及びθ2を、本実施形態では被写体形状の範囲として扱う。尚、図７では、２次元での被写体形状の範囲として角度（方位角）θ1及びθ2を示したが、実際には被写体７０１は３次元の形状データを有している。そのため、同様に被写体の側面側から見た場合の被写体形状の範囲として角度（仰角）φ1及びφ2を算出する。
【００６６】
続いて、上述の形状データを取得できている領域の範囲に基づいて、新たな仮想照明の照明位置に対する可動範囲を算出する。上述の角度θ1、θ2と変数αを用いて下記式（７）に示すように、可動範囲（方位角）θ1、θ2を更新する。
【００６７】
【数７】
2019101978.tif 000009
【００６８】
同様に、角度φ1、φ2と変数βを用いて、可動範囲（仰角）φ1、φ2を下記式（８）に示すように更新する。
【００６９】
【数８】
2019101978.tif 000010
【００７０】
ここで、変数α及びβは、０＜α、β≦１の範囲の実数を取る変数であり、これらの値は予め設定しておいてもよいし、撮像装置１０１のユーザが設定してもよい。このようにして、照明位置可動範囲設定部３１０は、被写体の３次元形状データに欠損が存在する場合に、３次元形状データの被写体領域に基づいて照明位置可動範囲の更新を行う。
【００７１】
次に、ステップＳ５０９において、照明位置可動範囲出力部３１１は、照明位置の可動範囲を出力し、表示部１０５に表示する。照明位置の可動範囲の表示は、図や文字を用いて行われる。例えば、撮像部で撮影したカラー画像データＩに対し、照明位置の可動範囲に当たる領域を網掛け表示によって表示することができる。逆に、照明位置の可動範囲外の領域を網掛け表示してもよい。図８は、表示部１０５への照明位置の可動範囲の表示例を示す。まず、図８（ａ）を用いて照明位置の可動範囲の表示位置、サイズについて説明する。図８（ａ）において、照明位置の可動範囲の境界線８０１の内側が、照明位置の可動範囲である。境界線８０１は、点８０２を中心として表示される。点８０２は、先述の被写体領域の３次元形状データの重心位置ＯＣに対応するカラー画像データの座標である。点８０２は、重心位置ＯＣの３次元座標から式（１）を基に算出することができる。点８０３は、３次元形状データの被写体領域の重心位置ＯＣを中心としたθ＝θ1、φ＝０°の照明位置のカラー画像データ上の位置を表している。半径ｒは任意の値を設定することができ、予め設定しておいてもよいし、ユーザが設定してもよい。点８０４は、重心位置ＯＣを中心とした任意の半径ｒにおけるθ＝θ2、φ＝０°で表される３次元位置に対応するカラー画像データ上の位置を表している。点８０３、点８０４は、水平方向の照明位置の可動範囲を表している。同様に、点８０５は、重心位置ＯＣを中心とした任意の半径ｒにおけるθ＝０°、φ＝φ1で表される３次元位置に対応するカラー画像データ上の位置を表している。点８０６は、重心位置ＯＣを中心とした任意の半径ｒにおけるθ＝０°、φ＝φ2で表される３次元位置に対応するカラー画像データ上の位置を表している。点８０５、点８０６は、垂直方向の照明位置の可動範囲を表している。これらの４つの点８０３、８０４、８０５、及び８０６を結んだ曲線が、照明位置の可動範囲の境界線８０１である。図８（ｂ）は、ユーザが、カラー画像データの被写体８０７に対して、ライティング処理の照明位置８０９を設定する際の画面の例を示す。本画面では、上述のようにして位置、サイズを決定した照明位置８０９の可動範囲の境界線８０１が、カラー画像データに重畳表示されている。メッセージ８０８は、ライティング処理を行うための照明位置の設定中であることを示す。ユーザは、照明位置８０９をドラッグ操作等により移動させることで、照明位置８０９の設定を行う。本実施形態では、照明位置８０９の設定中に、照明位置８０９の可動範囲を示す。尚、照明位置の可動範囲の外の領域を網掛け表示することで、その領域には照明位置を設定することができないことを視覚的に分かりやすく表してもよい。また、照明位置の可動範囲は、表示部１０５内に文字８１０として表示してもよい。
【００７２】
次に、ステップＳ５１０において、照明位置設定部３０４は、照明位置の初期値として、照明の回転中心位置Ｃ、半径ｒ、方位角θ、仰角φの４つ変数のそれぞれに対して、初期値を設定する。照明の回転中心位置Ｃとしては、３次元形状データの被写体領域の重心ＯＣを設定する。半径ｒ、方位角θ、仰角φについては、先に定めた照明位置の可動範囲内であれば任意の位置を設定可能である。例えば、被写体を正面から照らす照明の位置を初期値として設定する。そのためには、半径ｒには被写体領域の重心ＯＣのＺ成分の値を設定し、方位角θ、及び仰角φにはそれぞれ０°を設定する。尚、被写体領域の重心ＯＣのＺ成分は、撮像装置１０１から被写体までの距離を表している。
【００７３】
次に、ステップＳ５１１において、ライティング処理部３０６は、カラー画像データ、３次元形状データ、撮像装置位置・姿勢データ、照明位置を使用してライティング処理を行い、さらに色変換処理を行うことで、出力画像データを生成する。ライティング処理の詳細については後述する。
【００７４】
次に、ステップＳ５１２において、画像出力部３０７は、出力画像データを表示部１０５へ出力し、ライティング処理結果のプレビュー表示を行う。ユーザは、プレビュー表示されたライティング処理結果を見て、所望の陰影が再現できていると判断した場合は操作ボタン１０６を押下し、照明位置を決定する。その際、制御部２０６は、照明位置決定フラグを１へ更新する。
【００７５】
次に、ステップＳ５１３において、画像出力部３０７は、照明位置が決定されたか判断する。具体的には、画像出力部３０７は、照明位置決定フラグを参照し、その値が決定を表す１であればステップＳ５１４へ移行し、未決定を表す０であればステップＳ５１５へ移行する。
【００７６】
ステップＳ５１４において、画像出力部３０７は、出力画像データをＰＣ／メディア２１３へ出力し、保存する。
【００７７】
ステップＳ５１５において、照明位置設定部３０４は、ユーザのドラッグ操作に応じて照明位置の更新を行う。照明位置更新モードが０の場合は、照明位置の方位角θ及び仰角φの更新を行う。ユーザによるドラッグ操作のカラー画像データ上の押下開始座標をＰs＝（ｉs、ｊs）、押下終了座標をＰe＝（ｉe、ｊe）として、下記式（９）を用いてθ’及びφ’を算出し、それぞれ方位角θ、仰角φへ代入し更新する。
【００７８】
【数９】
2019101978.tif 000011
【００７９】
ここで、Ａ、Ｂは、撮像装置１０１の水平方向の画角をｕ、垂直方向の画角をｖとして下記式（１０）で表される。尚、前述のようにＷはカラー画像データの水平方向、Ｈはカラー画像データの垂直方向の画素数をそれぞれ表している。
【００８０】
【数１０】
2019101978.tif 000012
【００８１】
一方、照明位置更新モードが１の場合は、照明位置の半径ｒの更新を行う。ここでは、ユーザによるドラッグ操作のうち水平方向の移動量を用いて新たな半径ｒを算出する。具体的にはドラッグ操作の押下開始座標Ｐs、押下終了座標Ｐeから下記式（１１）を使用して半径ｒ’を算出し、これを半径ｒへ代入し更新する。
【００８２】
【数１１】
2019101978.tif 000013
【００８３】
次に、ステップＳ５１６において、照明位置評価部３１２は、ユーザによって指定された照明位置が、前述の照明位置可動範囲内に含まれるかどうか判定を行う。ここでは、照明位置を表す方位角θ、仰角φを照明位置可動範囲と比較し、ユーザによって指定された照明位置が可動範囲内に含まれるか判定する。方位角θについては、照明位置可動範囲を示す角度θ1、θ2と比較を行う。仰角φについては、照明位置可動範囲を表す角度φ1、φ2と比較を行う。方位角θ、仰角φが共に照明位置可動範囲内に含まれる場合は、ステップＳ５１１へ移行する。一方、方位角θ、仰角φの一方でも照明位置可動範囲内に含まれない場合は、ステップＳ５１７へ移行する。
【００８４】
ステップＳ５１７において、警告出力部３１３は、ユーザが指定した照明位置が、照明位置可動範囲に含まれないことを表すメッセージ（すなわち、文字情報）や図から成る警告を表示部１０５へ出力し、表示する。図９は、本実施形態における警告表示の例を示す。図９では、照明位置を表すアイコン９０１が照明位置可動範囲の外に設定されている。このように照明位置が可動範囲の外に設定された場合に、警告出力部３１３は警告メッセージ９０２を表示する。また、警告メッセージ９０２を表示する以外に、照明位置を表すアイコン９０１の色を変えてもよい。アイコン９０１の色を変える場合は、照明位置可動範囲の内・外の２種類で色を切り替えるほか、照明位置可動範囲内であっても、照明位置可動範囲の境界近傍に近づくと徐々にアイコンの色を変化させてもよい。尚、警告の表示方法はこれらに限定されるものではない。
【００８５】
以上説明したように、本実施形態における画像処理部２０９はライティング処理を行なう。本処理によって、撮影済みのカラー画像データに対し仮想的な照明効果を付与したライティング画像が生成される。
【００８６】
＜ライティング処理部３０６の動作＞
以下では、本実施形態におけるライティング処理部３０６の動作について、詳細に説明する。ライティング処理部３０６は、前述のように、カラー画像データ、３次元形状データ、撮像装置位置・姿勢データ、及び照明位置を使用してライティング処理を実施し、さらに色変換処理を実施することで、出力画像データを生成する。
【００８７】
図１０は、本実施形態におけるライティング処理部３０６の構成を示す。ライティング処理部３０６は、法線算出部１００１、陰影画像生成部１００２、画像合成部１００３、及び色変換処理部１００４を有する。法線算出部１００１は、３次元形状データ（すなわち、ポリゴン）から形状の面の向きを表す法線データを算出する。陰影画像生成部１００２は、３次元形状データ、法線データ、照明位置、及び撮像装置位置・姿勢データから、仮想的な照明でシーンを照らした際の陰影を算出し、陰影画像データを生成する。画像合成部１００３は、陰影画像データと、現像部３０２が出力するカラー画像データを合成し、ライティング画像データを生成する。色変換処理部１００４は、ライティング画像データに対しホワイトバランス処理やガンマ変換処理などの各種処理を施し、最終的な出力画像データを生成する。
【００８８】
図１１は、本実施形態におけるライティング処理部３０６による出力画像データの生成処理のフローチャートを示す。
【００８９】
まず、ステップＳ１１０１において、法線算出部１００１は、３次元形状データを基に、シーン中の全点に対する面の向きを表す法線データを算出する。法線データは、３次元形状データであるポリゴンの面を構成する各頂点の３次元座標から算出された面の向きに基づいて、算出することができる。尚、法線データの算出方法は限定されるものではなく、他の方法を用いてもよい。
【００９０】
次に、ステップＳ１１０２において、陰影画像生成部１００２は、ユーザによって設定された照明位置に仮想的な照明が存在する場合にシーンに生じる陰影を、コンピュータグラフィックス（ＣＧ）の技法を用いて画像データとして算出する。この陰影を表す画像データを陰影画像データと称する。陰影画像生成部１００２は、陰影画像データの生成に先立ち、シャドウ画像データとシェード画像データの２種類の画像データを生成する。
【００９１】
図１２（ａ）は、図６と同様のシーンにおいて生成されたシャドウ画像１２１０の例を示す。シャドウ画像１２１０では、図６の被写体６０１によって照明からの光が遮られることで、被写体以外の領域（すなわち、背景領域）６０２にシャドウ１２１１が生じている。シャドウは、注目点と照明との経路の間にある物体によって照明からの光が遮られることで、注目点が暗くなる現象である。シャドウ画像データは、シーンの３次元形状データと照明位置とから生成される。シャドウ画像データの生成には既存の各種ＣＧ技法が適用可能であり、例えばシャドウマッピングと呼ばれる手法を用いることができる。
【００９２】
図１２（ｂ）は、図６と同様のシーンにおいて生成されたシェード画像１２２０の例を示す。シェード画像１２２０では、図６の被写体６０１の領域や被写体以外の領域６０２において、面の向きに応じた明暗（すなわち、シェード）が生じている。シェードは、注目点に照明からの光が当たる場合に、照明からの光の注目点への入射角に応じて生じる明暗のことである。シェード画像データは、シーンの法線データと照明位置とから生成される。シェード画像データの生成にも既存の各種ＣＧ技法が適用可能であり、例えばフォンの反射モデルを用いることができる。
【００９３】
そして、陰影画像生成部１００２は、シャドウ画像データＩshadow（ｉ，ｊ）、及びシェード画像データＩshade（ｉ，ｊ）を用いて、下記式（１２）によって陰影画像データＩS（ｉ，ｊ）を算出する。尚、陰影画像データＩS、シャドウ画像データＩshadow、シェード画像データＩshadeの各画素には、ＲＧＢ値が画素値として格納されている。
【００９４】
【数１２】
2019101978.tif 000014
【００９５】
図１２（ｃ）は、図１２（ａ）のシャドウ画像１２１０と、図１２（ｂ）のシェード画像１２２０から生成された陰影画像１２３０の例を示す。
【００９６】
次に、ステップＳ１１０３において、画像合成部１００３は、カラー画像データと陰影画像データから、ライティング画像データの合成を行う。ライティング画像データＩL（ｉ，ｊ）は、カラー画像データＩ（ｉ，ｊ）と陰影画像データＩS（ｉ，ｊ）を使用して、下記式（１３）に基づいて算出される。
【００９７】
【数１３】
2019101978.tif 000015
【００９８】
図１３は、先述の図６（ｃ）に示したカラー画像と図１２（ｃ）に示した陰影画像１２３０から生成されたライティング画像１３０１の例を示す。本実施形態によると、図１３に示すように、カラー画像に対し、仮想的な照明による陰影効果を付加することができる。
【００９９】
次に、ステップＳ１１０４において、色変換処理部１００４は、ライティング画像データに対し各種色変換処理を実施し、最終的な出力画像データを生成する。本ステップでは、色変換処理としてホワイトバランス調整、エッジ強調、及びガンマ補正などの処理が実施される。各種色変換処理が施された画像データは、出力画像データとして画像出力部３０７へ出力される。
【０１００】
以上説明したように、ライティング処理部３０６によるライティング処理が行われ、カラー画像データに対し仮想照明による陰影効果が付加された出力画像データが生成される。
【０１０１】
＜本実施形態の効果＞
本実施形態によれば、撮影後の画像データに対し仮想的なライティング効果を付加する場合に、被写体形状の範囲に基づいて照明位置の可動範囲を設定することが可能となる。すなわち、被写体の３次元形状データに存在する欠損を考慮して、仮想照明の位置を設定することが可能となる。
【０１０２】
まず、ライティング処理によって、撮影後に照明効果、特にシャドウの効果を付与する場合に被写体領域の欠損によって生じる課題について説明する。シャドウは、前述のように照明から出射した光が物体で遮ぎられることで生じる。被写体の３次元形状が正しく取得できている場合（すなわち、被写体の３次元形状データに欠損領域が存在しない場合）は、仮想照明から出射した光がどこで遮られ、どこにシャドウが生じるかを正しく算出することが可能である。しかし、被写体の３次元形状に欠損領域が存在する場合は、シャドウを正しく算出することができず、本来生じるはずだったシャドウを再現することができない。図１４は、被写体の３次元形状の欠損領域の有無によるシャドウの再現性の違いを示す。図１４（ａ）は、撮像装置１０１、仮想照明１４０１、被写体１４０２、及び背景領域１４０３を上方から見た図を示している。図１４（ａ）では、被写体１４０２の３次元形状は正しく取得できていて、欠損領域が存在しない。この場合、仮想照明１４０１から出射した光が被写体１４０２によって遮られることで、背景領域１４０３上の領域１４０４にシャドウが生じる。図１４（ｂ）は、この場合に生成されるライティング画像の例を示す。図示されるように、欠損領域が存在しない３次元形状を用いることで、シャドウが正しく再現されたライティング画像を生成することが可能である。続いて、図１４（ｃ）、（ｄ）を参照して、被写体の３次元形状に欠損領域が存在する場合の例を説明する。図１４（ｃ）では、被写体の３次元形状１４０５は欠損領域を含む。この場合、仮想照明１４０１から出射した光は、欠損領域では遮られることなく背景領域１４０３に到達する。その結果、背景領域１４０３上には、被写体の３次元形状１４０５が取得できている領域によって光が遮られる領域１４０６のみにシャドウが生じる。図１４（ｄ）は、この場合に生成されるライティング画像の例を示す。この場合、図示されるように、３次元形状１４０５に欠損領域が存在するため、本来生じるはずだったシャドウを正しく再現することができず、不自然なシャドウを含むライティング画像が生成されてしまう。このような不自然なシャドウは、仮想照明が３次元形状の欠損領域を照射することで生じる。一方、被写体の３次元形状に欠損領域が存在していても、仮想照明が、３次元形状を取得できている領域のみを照射し、欠損領域を照射しない場合は、不自然なシャドウは生じない。そこで、本実施形態では、被写体の３次元形状が正しく取得できている領域のみを照射するように、仮想照明の照射位置可動範囲を設定することで、不自然なシャドウを生じにくくさせることが可能である。そして、ユーザが仮想照明の位置を設定する際に、その照明位置可動範囲を提示することで、不自然なシャドウが生じる位置に仮想照明の位置が設定されることを防ぐことが可能となる。
【０１０３】
［実施形態２］
実施形態１では、ライティング処理に利用する３次元形状データのうち被写体形状の範囲に基づいて、仮想照明の照明位置の可動範囲を設定する場合について説明した。しかしながら、実施形態１では、被写体領域によってシャドウが生成される背景領域を考慮していないため、不自然なシャドウの生成を正確に予測することはできなかった。すなわち、仮想照明の照射位置可動範囲を正確に設定することはできなかった。そこで、本実施形態では、被写体形状の範囲に加えて、撮像装置、被写体、及び背景領域のそれぞれの位置に基づいて、仮想照明の照明位置の可動範囲を設定する場合について説明する。本実施形態では、より正確にシャドウの生成位置を予測することができ、より正確に照明位置の可動範囲を設定することができるため、不自然なシャドウの生成をさらに抑えることが可能となる。
【０１０４】
尚、以下では、実施形態１と同様の構成や動作についての説明は省略し、実施形態１と異なる構成や動作について主に説明する。
【０１０５】
＜画像処理装置の外観及び内部構成＞
本実施形態における撮像装置１０１（すなわち、画像処理装置）の外観及び内部構成は、図１及び図２を参照して上述した実施形態１の撮像装置１０１の外観及び内部構成と同様である。よって、説明は省略する。
【０１０６】
＜画像処理部２０９の構成＞
図１５は、本実施形態における画像処理部２０９の構成を示す機能ブロック図である。以下では、図１５に示す機能ブロックのうち、実施形態１と比較して動作が異なる被写体領域抽出部１５０１、及び照明位置可動範囲設定部１５０２について主に説明する。その他の機能ブロックについては実施形態１と同様の動作を行うため、説明は省略する。
【０１０７】
本実施形態における被写体領域抽出部１５０１は、カラー画像データ及びシーンの３次元形状データを、被写体領域と背景領域に分離し、被写体領域と背景領域のそれぞれの３次元形状データを抽出する。また、本実施形態における照明位置可動範囲設定部１５０２は、被写体の３次元形状データに欠損が存在すると判断された場合に、被写体領域と背景領域のそれぞれの３次元形状データに基づいて、仮想照明の照明位置について可動範囲を設定する。
【０１０８】
＜画像処理部２０９の処理フロー＞
続いて、本実施形態における画像処理部２０９の各部によるライティング処理の処理フローを説明する。図１６は、本実施形態におけるライティング処理のフローチャートを示す。尚、処理フローのうち、実施形態１と動作が異なるのは、ステップＳ１６０１における被写体領域の抽出処理と、ステップＳ１６０２における照明位置可動範囲の更新処理の２処理である。その他の処理については実施形態１と同様であるため説明は省略し、上記２処理について以下に説明する。
【０１０９】
ステップＳ１６０１において、被写体領域抽出部１５０１は、カラー画像データ及びシーンの３次元形状データから、シーンの３次元形状データを被写体領域と背景領域とに分離し、被写体領域と背景領域のそれぞれの３次元形状データを抽出する。シーンの３次元形状データから被写体領域を抽出する方法は、実施形態１と同様の処理を適用可能である。
【０１１０】
ステップＳ１６０２では、照明位置可動範囲設定部１５０２は、被写体領域の３次元形状データに欠損領域が存在する場合に、被写体領域と背景領域のそれぞれの３次元形状データに基づいて、照明位置可動範囲の更新を行う。本実施形態では、被写体領域の３次元形状データに加え、背景領域の３次元形状データを用いる点が、実施形態１の照明位置可動範囲の更新処理と異なる。
【０１１１】
以下に、本実施形態における照明位置可動範囲の更新処理について、詳細に説明する。図１７は、撮像装置１０１及びシーンを上方より見た様子を表わす模式図である。図１７（ａ）において、シーンは、被写体領域１７０１と背景領域１７０２とを含む。被写体領域１７０１の３次元形状のうち、点１７０３及び点１７０４は、被写体領域のうちの被写体領域と背景領域との境界に当たる３次元点である。この境界の３次元点の算出方法は、実施形態１と同様の方法を用いることが可能である。直線１７０５は、撮像装置１０１と点１７０３を通る直線である。点１７０６は、背景領域１７０２と直線１７０５との交点に当たる３次元点である。同様に、直線１７０７は、撮像装置１０１と点１７０４を通る直線であり、直線１７０７と背景領域１７０２との交点が、点１７０８である。さらに、直線１７０９は、点１７０３と点１７０８とを結ぶ直線であり、直線１７１０は、点１７０４と点１７０６とを結ぶ直線である。尚、撮像装置１０１の３次元位置、及び点１７０３、点１７０４、点１７０６、点１７０８の３次元位置が与えられれば、直線１７０９、直線１７１０を表す直線の式は算出することができる。
【０１１２】
本実施形態では、被写体領域１７０１、直線１７０９、直線１７１０で囲まれた領域を、仮想照明の照明位置の可動範囲とする。ただし、本実施形態では、仮想照明の３次元座標は、前述のように回転中心位置C、半径ｒ、方位角θ、仰角φの４変数で表し、このうち方位角θ、仰角φの２変数に対して可動範囲を設定している。そこで、被写体領域１７０１、直線１７０９、直線１７１０で囲まれた領域内の座標を、前述の照明位置を表わす回転中心位置Ｃ、半径ｒ、方位角θ、仰角φの４変数で表す。
【０１１３】
続いて、図１７（ｂ）を参照して、仮想照明の照明位置の可動範囲の設定方法について説明する。点１７１１は、照明位置の回転中心位置Ｃを表わしている。本実施形態では回転中心位置Ｃとして、前述のように被写体領域１７０１の重心ＯＣが設定されている。孤１７１２は、点１７１１を中心とした半径ｒの孤である。半径ｒの値は、前述の照明位置設定部３０４によって設定されている。点１７１３は、直線１７０９と孤１７１２との交点を表し、点１７１４は、直線１７１０と孤１７１２との交点を表す。点１７１６は、点１７１１と撮像装置１０１とを結ぶ直線１７１５と、孤１７１２との交点である。角度１７１７は、点１７１３、点１７１１、点１７１６の３点が成す角度であり、角度１７１８は、点１７１４、点１７１１、点１７１６の３点が成す角度である。尚、撮像装置１０１の３次元位置、及び点１７０３、点１７０４、点１７０６、点１７０８の３次元位置が与えられれば、上記の点の３次元位置や直線の式、及び角度を算出することが可能である。
【０１１４】
ここで、孤１７１２上の点１７１３から点１７１４までが、上記の半径ｒの場合の仮想照明の照明位置が取り得る可動範囲位置である。すなわち、角度１７１７及び角度１７１８が、方位角θの可動範囲となる。そのため、方位角θの可動範囲を表わす式（４）のうち角度θ1が角度１７１７となり、角度θ2が角度１７１８となる。
【０１１５】
尚、上記では、被写体や撮像部を上側から見た図１７を用いて、方位角θの可動範囲について説明を行った。しかし、被写体や仮想照明は３次元空間上で表現されるため、仰角φについても方位角θと同様に可動範囲φ1、φ2を算出する。
【０１１６】
以上説明したように、ステップＳ１６０２での照明位置可動範囲の更新処理が行われる。
【０１１７】
上記で説明したように本実施形態においては、３次元形状データのうち被写体領域だけではなく、背景領域まで参照し照明位置の可動範囲を設定する。これによって、より正確にシャドウの生成位置を予測することができるため、不自然なシャドウの生成をさらに抑えることが可能となる。
【０１１８】
［実施形態３］
実施形態１及び２では、被写体の３次元形状データの欠損によって生じる不自然なシャドウの発生を抑制するために、仮想照明の照明位置の可動範囲を設定した。これに対して、本実施形態では、被写体の３次元形状データの取得精度と仮想照明の照明サイズに応じて生じる不自然なシャドウの発生を抑制するために、仮想照明の照明サイズの設定可能範囲を設定する。例えば、照明サイズの小さな点光源と、照明サイズの大きな面光源とでは、被写体に対するライティング効果が異なり、照明サイズによっては、不自然なシャドウが発生してしまうことがある。また、３次元形状データの取得精度が低く、被写体の表面に本来は存在しない凸凹が存在する場合、本来は発生し得ないような不自然なシャドウが再現されてしまうことがある。そこで、本実施形態では、３次元形状データの取得精度に応じて仮想照明の照明サイズの設定可能範囲を設定することで、不自然なシャドウの発生を抑制する。
【０１１９】
尚、以下では、実施形態１と同様の構成や動作についての説明は省略し、実施形態１と異なる構成や動作について主に説明する。
【０１２０】
＜画像処理装置の外観及び内部構成＞
本実施形態における撮像装置１０１（すなわち、画像処理装置）の外観及び内部構成は、図１及び図２を参照して上述した実施形態１の撮像装置１０１の外観及び内部構成と同様である。
【０１２１】
尚、本実施形態における制御部２０６は、仮想照明の照明位置に加えて、仮想照明の照明サイズを含む照明条件の設定を制御する。具体的には、本実施形態における制御部２０６は、照明条件の設定に際し、後述する照明条件を表す複数のパラメータのうち、どのパラメータを更新するかを示す照明条件更新モードと、照明条件が決定しているかどうかを示す照明条件決定フラグの制御を行う。照明条件更新モードは、照明サイズを更新する場合は０、照明位置を更新する場合は１がそれぞれ設定される。照明条件決定フラグは、照明条件が未決定の場合は０、照明条件が決定されている場合は１がそれぞれ設定される。尚、照明条件更新モードと照明条件決定フラグは共に０が初期値として与えられる。
【０１２２】
＜画像処理部２０９の構成＞
図１８は、本実施形態における画像処理部２０９の構成を示す機能ブロック図である。本実施形態における画像処理部２０９は、Ａ／Ｄ変換部２０８よりＲＡＷ画像データ、距離画像取得部１０４より距離画像データ、そして制御部２０６より仮想照明の照明条件がそれぞれ入力される。画像処理部２０９は、距離画像データと照明条件に基づいて、ＲＡＷ画像データに対してライティング処理を行う。そして、画像処理部２０９は、ライティング処理結果である出力画像を、（エンコーダ部２１０からメディアＩ／Ｆ２１１を介して）ＰＣ／メディア２１３へ、または表示部１０５へ出力する。
【０１２３】
以下では、図１８に示す機能ブロックのうち、実施形態１と異なる機能ブロックについて主に説明する。
【０１２４】
照明条件設定部１８０４は、制御部２０６から入力されたユーザ操作に応じて、少なくとも照明サイズを含む仮想照明の照明条件を設定する。尚、本実施形態では、照明条件として、仮想照明の照明サイズと照明位置の２つの情報を設定する。図１９は、本実施形態における照明条件の設定操作とパラメータを説明する図である。図１９（ａ）に示すように、撮像装置１０１の表示部１０５の表示画面には、ライティング処理の対象となる撮像画像１９０１が表示され、撮像画像１９０１に対し仮想照明を表すアイコン１９０２が重畳表示されている。ユーザは、表示部１０５に対するドラッグ操作によって、仮想照明を表すアイコン１９０２の照明サイズ及び照明位置を設定する。また、図１９（ｂ）に示すように、本実施形態では仮想照明１９０３は球で表し、仮想照明１９０３のサイズは球の半径Ｒｓで表す。また、仮想照明１９０３の位置は、仮想照明１９０３の回転中心位置Ｃ＝（Ｃｘ、Ｃｙ、Ｃｚ）、回転中心位置Ｃの周りの仮想照明１９０３の回転半径Ｒp、Ｙ軸周りの回転角θ、Ｚ軸周りの回転角φの４変数を用いて表す。以下では、Ｙ軸周りの回転角θを方位角、Ｚ軸周りの回転角φを仰角と証する。これらの４変数によって、仮想照明の照明位置の３次元座標Ｌ＝（Ｌｘ、Ｌｙ、Ｌｚ）は、下記式（１４）を使用して求めることができる。
【０１２５】
【数１４】
2019101978.tif 000016
【０１２６】
尚、仮想照明の照明サイズ及び照明位置の表現方法は、上記に限られるものではなく、他の方法を用いてもよい。
【０１２７】
撮像装置条件取得部１８０５は、撮像装置１０１の撮影条件を取得する。撮像装置１０１の撮影条件には、レンズの焦点距離、カラー画像データの水平方向の画素数Ｗ及び垂直方向の画素数Ｈ、並びに、カラー画像データの撮影時の撮像装置１０１の位置及び姿勢が含まれる。撮像装置１０１の位置及び姿勢は、実施形態１において上述したように、カラー画像データと３次元形状データから算出される。
【０１２８】
形状判断部１８０９は、被写体領域の３次元形状データの取得精度を取得し、所定の精度以上であるかどうか判断を行う。以下では、取得精度が所定値以上である場合を高精度とし、所定値未満である場合を低精度とする。本ブロックの処理の詳細は後述する。
【０１２９】
照明サイズ範囲設定部１８１０は、被写体領域の３次元形状データが低精度であると判断された場合に、被写体領域の３次元形状データの取得精度に基づいて仮想照明の照明サイズに対し設定可能範囲を設定する。具体的には、照明サイズを表すパラメータである半径Ｒｓに対し、下記式（１５）で表されるように下限値ｒminを設定する。
【０１３０】
【数１５】
2019101978.tif 000017
【０１３１】
本実施形態では、照明サイズの範囲として下限値を設定するが、上限値を併せて設定してもよい。下限値ｒminの設定方法については後述する。
【０１３２】
照明サイズ範囲出力部１８１１は、照明サイズ範囲設定部１８１０で設定された照明サイズの設定可能範囲を表示部１０５へ出力し、ユーザに提示する。
【０１３３】
照明サイズ評価部１８１２は、照明条件設定部１８０４で設定されたユーザ指定の照明サイズが、照明サイズ範囲設定部１８１０で設定された照明サイズの設定可能範囲内に含まれるか評価を行う。
【０１３４】
尚、本実施形態における警告出力部３１３は、照明サイズ評価部１８１２において、ユーザ指定の照明サイズが、照明サイズ範囲設定部１８１０で設定された照明サイズの設定可能範囲内に含まれないと評価された場合に、警告を表示部１０５へ出力する。
【０１３５】
以上説明したように、本実施形態における画像処理部２０９は、少なくとも照明サイズを含む仮想照明の照明条件に基づいて、ライティング処理を行うための機能を有する。
【０１３６】
＜画像処理部２０９の処理フロー＞
続いて、本実施形態における画像処理部２０９の各部によるライティング処理の処理フローを説明する。図２０は、本実施形態におけるライティング処理のフローチャートを示す。フローチャートにおける各ステップの処理は、ＣＰＵ２０２がＲＯＭ２０３やＲＡＭ２０４に格納されたプログラムを読み出して実行することにより実施される。尚、以下では、処理フローのうち、実施形態１と動作が異なるステップの処理について主に説明する。
【０１３７】
まず、ステップＳ２００１において、画像取得部３０１がＲＡＷ画像データを取得し、ステップＳ２００２において、現像部３０２がＲＡＷ画像データを現像して、カラー画像データを生成する。さらに、ステップＳ２００３において、形状取得部３０３が、撮像シーンの３次元形状データ（すなわち、ポリゴン）を取得する。ステップＳ２００１〜Ｓ２００３の処理は、実施形態１と同様である。
【０１３８】
次に、ステップＳ２００４において、撮像装置条件取得部１８０５は、撮像装置１０１の撮影条件を取得する。前述のように、撮像装置１０１の撮影条件は、レンズの焦点距離、カラー画像データの水平方向及び垂直方向のそれぞれの画素数、並びに撮像装置１０１の位置・姿勢を含む。撮像装置条件取得部１８０５は、撮像装置１０１の位置として撮像装置の光学的な中心の３次元座標、撮像装置１０１の姿勢として撮像装置の水平方向、撮像装置の垂直方向、及び撮像装置の光軸方向の各値を算出する。本実施形態では、距離画像取得部１０４で取得した距離値から３次元形状データを算出しているため、撮像装置１０１の位置は原点（０、０、０）、撮像装置の水平方向は（１、０、０）、垂直方向は（０、１、０）、光軸の方向は（０、０、１）である。
【０１３９】
次に、ステップＳ２００５において、被写体領域抽出部３０８が、被写体領域の３次元形状データを抽出し、ステップＳ２００６に進む。
【０１４０】
ステップＳ２００６では、照明サイズ範囲設定部１８１０が、照明条件のうちの照明サイズに対し設定可能範囲の初期化を行う。具体的には、前述の式（１５）の照明サイズの下限値ｒminに対し、下記式（１６）のように初期値を与える。
【０１４１】
【数１６】
2019101978.tif 000018
【０１４２】
ステップＳ２００７において、形状判断部１８０９は、形状取得部３０３で取得した３次元形状データの取得精度を求め、取得精度が所定値未満であるか判定を行う。本実施形態において、３次元形状データの取得精度とは、３次元形状データの各頂点の３次元位置が、どの程度正しく取得できているかを表す指標である。取得精度は、形状が既知の３次元形状データに対し、正解３次元形状データ（すなわち、本来の３次元形状データ）と形状取得部３０３で取得した３次元形状データとを比較することで算出される。本実施形態では、正解の３次元形状データと取得した３次元形状データのそれぞれについて、法線の方向を比較し、その平均誤差を取得精度とする。
【０１４３】
以下に、図２１を参照しながら本実施形態における取得精度の算出方法を説明する。図２１は、形状が既知の正解３次元形状データ２１０１、形状取得部３０３で取得した３次元形状データ２１０２を示す。本実施形態では、各３次元形状データを分割した小領域２１０３、２１０４の構成単位として、前述のポリゴンを用いる。各３次元形状データの各ポリゴンは、法線２１０５、２１０６を含む。法線は、面に垂直な方向を示し、３次元ベクトルとして表現される。法線２１０５、２１０６は、ポリゴンの中心位置を始点とした矢印で方向を表現する。ｎ番目のポリゴンにおいて正解３次元形状データの法線Ｎｒ（ｎ）と、取得した３次元形状データの法線Ｎａ（ｎ）について、２つのベクトルが成す角度ψ（ｎ）は、下記式（１７）によって求められ、これをポリゴンにおける法線方向の誤差とする。
【０１４４】
【数１７】
2019101978.tif 000019
【０１４５】
そして、被写体領域に含まれる各ポリゴンにおいて法線方向の誤差を算出し、その平均誤差ψを下記式（１８）によって求める。
【０１４６】
【数１８】
2019101978.tif 000020
【０１４７】
Ｎは、被写体領域に含まれるポリゴン数を表わす。本実施形態では、各ポリゴンにおける法線方向の平均誤差ψを、取得精度を表す指標として利用し、平均誤差ψが大きい場合は取得精度が低く、平均誤差ψが小さい場合は取得精度が高いものとする。
【０１４８】
取得精度を判定するための所定値は、距離画像取得部１０４に利用されるデバイスや手法などに対応する取得精度の値を予めＲＯＭ２０３に記憶しておき、本ステップの処理時に読み出すことで取得してもよい。距離画像取得部１０４に対応する取得精度は、距離画像取得部１０４の設計値を基に数式を用いて理論的に求める方法も考えられる。また、基準となる取得精度は、製造時や任意のタイミングで、３次元形状が既知の被写体の３次元形状データを距離画像取得部１０４によって測定することによって得ることもできる。
【０１４９】
また、別の方法として、ライティング処理に用いる３次元形状データに対し何らかの処理を行うことによって、取得精度を取得する方法もある。ただし、この場合は各ポリゴンの法線方向の誤差を算出する際に正確な法線の方向がわからないため、注目ポリゴンの周辺のポリゴンにおける平均の法線方向を疑似的に正解法線として扱い、取得精度を算出する。
【０１５０】
そして、上述のようにして取得した３次元形状データの平均誤差を、予めＲＯＭ２０３に記憶しておいた所定の角度と比較し、取得精度が所定値未満であるか判定を行う。すなわち、平均誤差が所定の角度以上である場合の取得精度は、低精度であると判定し、一方、平均誤差が所定の角度未満である場合の取得精度は、高精度であると判断する。そして、取得精度が低精度であると判定された場合は、ステップＳ２００８へ移行する。一方、取得精度が高精度であると判定された場合は、ステップＳ２０１０へ移行する。
【０１５１】
ステップＳ２００８において、照明サイズ範囲設定部１８１０は、３次元形状データの取得精度が低い場合に、被写体領域の３次元形状データから照明サイズの設定可能範囲の更新を行う。
【０１５２】
本実施形態では、照明サイズ範囲設定部１８１０は、法線方向の平均誤差から照明サイズの下限値を算出し、照明サイズの設定可能範囲を更新する。具体的には、図２２に示すように、仮想照明の回転中心位置Ｃから仮想照明を見込む角度が、ステップＳ２００７で求めた法線方向の平均誤差ψとなる照明サイズを、下限値ｒminとする。そのため、法線方向の平均誤差ψから照明サイズの下限値ｒminの更新値は、下記式（１９）を使用して算出することができる。
【０１５３】
【数１９】
2019101978.tif 000021
【０１５４】
次に、ステップＳ２００９において、照明サイズ範囲出力部１８１１は、照明サイズの設定可能範囲を出力し、表示部１０５に表示する。照明サイズの設定可能範囲の表示は、図や文字を用いて行われる。例えば、図２３に示すように、撮像画像１９０１に重畳表示された仮想照明を表すアイコン１９０２について、照明の下限サイズを表わす点線２３０１を表示する。点線２３０１は、現在の設定値での仮想照明を表すアイコン１９０２と中心の位置が同じ同心円として表示できる。また、照明サイズの設定可能範囲は、例えば、表示部１０５内に文字２３０２として表示してもよい。
【０１５５】
次に、ステップＳ２０１０において、照明条件設定部１８０４は、仮想照明の照明条件、すなわち、仮想照明の照明サイズ及び照明位置について初期値を設定する。仮想照明のサイズについては仮想照明の半径Ｒｓに初期値を設定する。仮想照明のサイズの初期値は、３次元形状データの取得精度が低い場合、ステップＳ２００８で設定した仮想照明サイズの設定可能範囲内の値であればよい。仮想照明の位置については、仮想照明の回転中心位置Ｃと、半径ｒ、方位角θ、仰角φの４変数に対しそれぞれ初期値を設定する。仮想照明の回転中心位置Ｃとしては、３次元形状データの被写体領域の重心ＯＣを設定する。半径ｒ、方位角θ、仰角φについては、照明位置の可動範囲内であれば任意の位置を設定可能である。例えば、被写体を正面から照らす照明の位置を、初期置として設定する。そのためには、半径ｒには被写体領域の重心ＯＣのＺ成分の値を設定し、方位角θ、仰角φにはそれぞれ０°を設定する。尚、被写体領域の重心ＯＣのＺ成分は、撮像装置１０１から被写体までの距離を表している。
【０１５６】
次に、ステップＳ２０１１で、ライティング処理部３０６がライティング処理を行い、出力画像データを生成する。本実施形態では、仮想照明の照明条件に基づいてライティング処理が行われる。詳細は後述する。
【０１５７】
次に、ステップＳ２０１２で、画像出力部３０７は、実施形態１と同様に、生成された出力画像データを表示部１０５へ出力し、ライティング処理結果のプレビュー表示を行う。ユーザは、プレビュー表示されたライティング処理結果を見て所望の陰影が再現できていると判断した場合は操作ボタン１０６を押下する。本実施形態では、照明条件が決定される。その際、制御部２０６は、照明条件決定フラグを１へ更新する。
【０１５８】
次いで、ステップＳ２０１３で、画像出力部３０７は、照明条件が決定されたか判断する。具体的には、画像出力部３０７は、照明条件決定フラグを参照し、その値が決定を表す１であればステップＳ２０１４へ移行し、未決定を表す０であればステップＳ２０１５へ移行する。
【０１５９】
ステップＳ２０１４で、画像出力部３０７は、実施形態１と同様に、出力画像データをＰＣ／メディア２１３へ出力し、保存する。
【０１６０】
ステップＳ２０１５では、照明条件設定部１８０４は、照明条件として仮想照明のサイズと照明位置の２つの情報を設定する。照明条件設定部１８０４は、照明条件更新モードが１の場合は、仮想照明のサイズを表わす照明の半径Ｒｓの更新を行う。ここでは、ユーザによるドラッグ操作のうち、水平方向の移動量を用いて新たな半径Ｒｓを算出する。具体的には、ドラッグ操作の押下開始座標Ｐｓ、押下終了座標Ｐｅから下記式（２０）を用いてＲｓ’を算出し、半径Ｒｓへ代入し更新する。
【０１６１】
【数２０】
2019101978.tif 000022
【０１６２】
尚、Ｗはカラー画像データの水平方向の画素数を表す。
【０１６３】
一方、照明条件更新モードが０の場合は、照明条件設定部１８０４は、仮想照明の位置を表わす方位角θ及び仰角φの更新を行う。画像データ上の押下開始座標をＰｓ＝（ｉs、ｊs）、押下終了座標をＰｅ＝（ｉe、ｊe）として、下記式（２１）を用いてθ’及びφ’を算出し、それぞれ方位角θ、仰角φへ代入し更新する。
【０１６４】
【数２１】
2019101978.tif 000023
【０１６５】
ここで、Ａ、Ｂは、撮像装置１０１の水平方向の画角をｕ、垂直方向の画角をｖとして下記式（２２）で表される。尚、前述のようにＷはカラー画像データの水平方向、Ｈはカラー画像データの垂直方向の画素数をそれぞれ表している。
【０１６６】
【数２２】
2019101978.tif 000024
【０１６７】
次に、ステップＳ２０１６において、照明サイズ評価部１８１２は、ユーザによって指定された仮想照明のサイズが、前述の照明サイズの設定可能範囲内に含まれるかどうか判定を行う。ここでは、照明サイズを表す照明の半径Ｒｓを、ステップＳ２００８で設定した半径の下限値ｒminと比較することで、設定可能範囲内に含まれるか判定する。半径Ｒｓが下限値ｒmin以上である場合は、ステップＳ２０１１へ移行する。一方、半径Ｒｓが下限値ｒmin未満である場合は、ステップＳ２０１７へ移行する。
【０１６８】
ステップＳ２０１７において、警告出力部３１３は、ユーザが指定した照明サイズが、下限値未満であることを表すメッセージ（すなわち、文字情報）や図から成る警告を表示部１０５へ出力し、表示する。図２４は、本実施形態における警告表示の例を示す。図２４では、仮想照明を表すアイコン１９０２が照明の下限サイズを表す点線２３０１の内側にあり、下限値未満の照明サイズが設定されている場合を示す。このような場合に、警告メッセージ２４０１が表示される。また、警告メッセージ２４０１を表示する以外に、アイコン１９０２の色を変えてもよい。アイコン１９０２の色を変える場合は、照明の下限サイズの範囲の内・外の２種類で色を切り替えるほか、照明の下限サイズの範囲内であっても境界近傍に近づくに従い徐々にアイコン１９０２の色を変えてもよい。尚、警告の表示方法については、これらに限定されるものではない。
【０１６９】
以上説明したように、本実施形態における画像処理部２０９はライティング処理を行なう。本処理によって、撮影済みのカラー画像データに対し仮想的な照明効果を付与したライティング画像が生成される。
【０１７０】
＜ライティング処理部３０６の動作＞
以下では、本実施形態におけるライティング処理部３０６の動作について、詳細に説明する。ライティング処理部３０６は、前述のように、カラー画像データ、３次元形状データ、撮像装置位置・姿勢データ、及び仮想照明の照明条件を使用してライティング処理を実施し、さらに色変換処理を実施することで、出力画像データを生成する。尚、前述のように照明条件には仮想照明のサイズと照明位置が含まれる。
【０１７１】
図２５は、本実施形態におけるライティング処理部３０６の構成を示す。本実施形態におけるライティング処理部３０６は、陰影画像生成部１００２が、照明条件設定部１８０４及び撮像装置条件取得部１８０５から出力された照明条件及び撮像装置条件を用いて陰影画像データを生成する点で、実施形態１と異なる。詳細は、以下に説明する。
【０１７２】
図２６は、本実施形態におけるライティング処理部３０６による出力画像データの生成処理のフローチャートを示す。全体的な処理フローは、実施形態１において図１１を参照して説明した処理フローと同様であるが、ステップＳ２６０１からステップＳ２６０４のうち、ステップＳ２６０２の陰影画像生成部１００２による処理が異なる。よって、以下では、主にステップＳ２６０２の処理について詳細に説明する。
【０１７３】
まず、ステップＳ２６０１において、法線算出部１００１が、３次元形状データを基にシーン中の全点に対する面の向きを表す法線データを算出した後、ステップＳ２６０２に進む。
【０１７４】
ステップＳ２６０２では、陰影画像生成部１００２は、ユーザによって設定された仮想的な照明（すなわち、仮想照明）によってシーンに生じる陰影を、ＣＧ技法を用いて画像データとして生成する。本実施形態では、この陰影を表わす画像データ（すなわち、陰影画像データ）は、３次元形状データ、撮像装置条件、及び照明条件から生成される。
【０１７５】
ＣＧ技法による陰影は、図１２を参照して上述したように、一般にシェードとシャドウの２種類が存在する。シェードは、注目点に照明からの光が当たる場合に、照明からの光の注目点への入射角に応じて生じる明暗のことである。一方、シャドウは、注目点と照明との経路の間にある物体によって照明からの光が遮られることで注目点が暗くなる現象である。本実施形態では、少なくともシェードによる陰影を生成すればよい。
【０１７６】
まず、図１２（ｂ）に示したような、本実施形態におけるシェード画像について説明する。本実施形態では、シェード画像データは、シーンの法線データと、仮想照明の照明位置と、仮想照明の照明サイズとから算出される。例えば、フォンの反射モデルを用いると、仮想照明が点光源の場合、シェード画像Ｉshade（ｉ、ｊ）は下記式（２３）で算出することができる。
【０１７７】
【数２３】
2019101978.tif 000025
【０１７８】
ここで、Ｌは仮想照明の３次元位置、Ｐ（ｉ，ｊ）は、座標（ｉ，ｊ）に対応する３次元形状データの位置、Ｎ（ｉ、ｊ）は、被写体位置Ｐ（ｉ，ｊ）における面の法線の方向、αは仮想照明の明るさをそれぞれ表す。本実施形態では、仮想照明は点光源ではなく半径Ｒｓのサイズを持つため、照明の様々な場所から発せられる光によるシェードを算出するために上記式（２３）を変更した下記式（２４）を用いて、Ｉshade（ｉ、ｊ）を算出する。
【０１７９】
【数２４】
2019101978.tif 000026
【０１８０】
上記式（２４）によって、半径Ｒｓのサイズを持つ仮想照明の全域から被写体位置Ｐ（ｉ，ｊ）に入射する光によるシェードを算出することができる。
【０１８１】
図１２（ｂ）に示したシェード画像データでは、被写体領域や背景領域において面の向きに応じた明暗が生じている。
【０１８２】
次に、図１２（ａ）に示したような、本実施形態におけるシャドウ画像について説明する。本実施形態では、シャドウ画像データは、シーンの３次元形状データと、仮想照明の照明サイズと、仮想照明の照明位置とから算出される。尚、前述のように本実施形態では、シャドウ画像データは必ずしも生成する必要はない。シャドウ画像データの生成には、例えばシャドウマッピングと呼ばれる手法が適用可能である。図１２（ａ）に示したシャドウ画像データでは、被写体よって光が遮られることで、被写体以外の領域へシャドウが生じている様子を示している。
【０１８３】
そして、陰影画像生成部１００２は、実施形態１と同様に、上記式（１２）を使用して、シェード画像データＩshade（ｉ，ｊ）と、シャドウ画像データＩshadow（ｉ，ｊ）とから、陰影画像データＩS（ｉ，ｊ）を算出する。
【０１８４】
次に、ステップＳ２６０３において、画像合成部１００３は実施形態１と同様に、カラー画像データと陰影画像データからライティング画像データの合成を行う。すなわち、実施形態１の図１３に示したように、カラー画像データに対し、仮想的な照明による陰影効果を付加することができる。
【０１８５】
次に、ステップＳ２６０４において、色変換処理部１００４は実施形態１と同様に、上述のライティング画像データに対し各種色変換処理を実施し、最終的な出力画像データを生成する。各種色変換処理が施された画像データは、出力画像データとして画像出力部３０７へ出力される。
【０１８６】
以上説明したように、ライティング処理部３０６によるライティング処理が行われ、カラー画像データに対し仮想照明による陰影効果が付加された出力画像が生成される。
【０１８７】
＜本実施形態の効果＞
本実施形態によれば、撮影後の画像データに対し仮想的なライティング効果を付加する場合に、被写体形状の取得精度に基づいて照明サイズの設定可能範囲を設定することが可能となる。すなわち、被写体の３次元形状データの取得精度に応じて、仮想照明のサイズを設定することが可能となる。
【０１８８】
従来、低精度な被写体の３次元形状データを用いてライティング処理を行う場合に、本来の被写体にはないが、取得した３次元形状データに含まれる凹凸による不自然な陰影効果が生じてしまうことがあった。ライティング処理による陰影は、図２６のステップＳ２６０２で式（２４）を参照して説明したように、仮想照明のすべての領域から発せられる光による陰影を足し合わせることで算出される。そのため、仮想照明のサイズによって陰影による効果は変化する。例えば、仮想照明のサイズが小さい場合は、加算される陰影が少ないため、シャープではっきりした陰影が生じる。一方、仮想照明のサイズが大きい場合は、様々な位置から発せられた光による陰影が加算されるため、ぼけた陰影が生じる。そのため、３次元形状データに含まれる凹凸による陰影効果も、仮想照明のサイズが小さい場合ははっきりと目立つため、不自然な陰影になってしまう。一方、仮想照明のサイズが大きい場合はぼけて目立たなくなるため、不自然な陰影になりにくい。そこで、本実施形態では、被写体の３次元形状データの取得精度に応じて、仮想照明のサイズに下限を設けることで、不自然な陰影を生じにくくさせることが可能である。そして、ユーザが仮想照明のサイズを設定する際に、設定可能なサイズの範囲を提示することで、不自然な陰影が生じるサイズの仮想照明を設定してしまうことを防ぐことが可能となる。
【０１８９】
［実施形態４］
実施形態３では、撮像装置１０１の筺体の中に画像撮像部１０２と距離画像取得部１０４が含まれる場合について説明したが、本実施形態では、画像撮像部１０２と距離画像取得部１０４が互いに独立した構成である場合について説明する。本実施形態では、カラー画像データと３次元形状データをそれぞれ独立した構成で取得するため、ライティング画像の解像度と被写体のポリゴンの解像度が対応していないことがある。そのため、例えば高い解像度で３次元形状データが取得されている場合、ライティング画像の１画素に多数のポリゴンが対応することとなる。その場合、実施形態３のように、３次元形状データのポリゴン単位で法線の誤差を算出すると、ライティング画像の１画素より細かい解像度での凹凸による法線の誤差によって、取得精度が必要以上に低く見積もられてしまうことがあった。そこで、本実施形態では、画像撮像部１０２と距離画像取得部１０４が互いに独立した構成であり、３次元形状データの解像度とカラー画像データの解像度が対応していない場合の仮想照明の照明サイズの設定可能範囲を設定する方法について説明する。
【０１９０】
以下では、実施形態３と同様の構成や動作についての説明は省略し、実施形態３と異なる構成や動作について説明する。
【０１９１】
＜撮像システムの構成＞
図２７は、本実施形態における撮像システムの構成を示す。本実施形態における撮像システムは、カラー画像撮像部（すなわち、カラー画像撮像装置）２７０１と、形状測定部（すなわち、形状測定装置）２７０２が互いに独立して構成され、被写体２７０３をそれぞれが撮影する。形状測定部２７０２は、タイムオブフライト方式や多視点カメラ方式、光切断方式などの方式を用いて、被写体２７０３の３次元形状データを測定するものとする。３次元形状データは、３次元空間中の点と、複数の３次元点を結んだ面から構成されるポリゴンとする。また、形状測定部２７０２は、被写体２７０３の周囲を動きながら測定した３次元形状データをスティッチすることで、広範囲の３次元形状データを取得してもよい。
【０１９２】
＜カラー画像撮像部の内部構成＞
図２８は、本実施形態におけるカラー画像撮像部２７０１の内部構成を示すブロック図である。カラー画像撮像部２７０１は、図２に示した撮像装置１０１と比較して、距離画像取得部１０４が形状測定部２７０２として外部に存在することを除き、撮像装置１０１と同様の構成を有する。形状測定部２７０２は、有線または無線のネットワークを介して、３次元形状データをカラー画像撮像部２７０１に送信する。或いは、取り外し可能な記憶媒体を介して、３次元形状データを渡してもよい。本実施形態における画像処理部２０９は、形状測定部２７０２が取得した３次元形状データを利用して、画像処理を行う。画像処理の詳細は後述する。
【０１９３】
＜画像処理部２０９の構成＞
図２９は、本実施形態における画像処理部２０９の構成を示す機能ブロック図である。以下では、図２９に示す機能ブロックのうち、実施形態３と異なる機能ブロックについて主に説明する。
【０１９４】
本実施形態における形状取得部２９０３は、形状測定部２７０２によって測定された被写体２７０３の３次元形状データを取得する。撮像装置条件取得部２９０５は、カラー画像撮像部２７０１の撮影条件を取得する。本実施形態における撮影条件とは、カラー画像撮像部２７０１のレンズの焦点距離、カラー画像データの水平方向、垂直方向それぞれの画素数、及び、カラー画像撮像部２７０１の被写体２７０３に対する３次元位置・姿勢である。形状判断部２９０９は、被写体領域の３次元形状データと撮像装置条件から、解像度の違いを考慮して３次元形状データの取得精度を算出し、所定の取得精度以上かどうか判断を行う。
【０１９５】
＜画像処理部２０９の処理フロー＞
続いて、本実施形態における画像処理部２０９の各部によるライティング処理の処理フローを説明する。図３０は、本実施形態におけるライティング処理のフローチャートを示す。フローチャートにおける各ステップの処理は、ＣＰＵ２０２がＲＯＭ２０３やＲＡＭ２０４に格納されたプログラムを読み出して実行することにより実施される。尚、以下では、処理フローのうち、実施形態３と動作が異なるステップの処理について主に説明する。
【０１９６】
まず、実施形態３と同様に、ステップＳ２００１において、画像取得部３０１がＲＡＷ画像データを取得し、ステップＳ２００２において、現像部３０２がＲＡＷ画像データを現像して、カラー画像データを生成する。
【０１９７】
次に、ステップＳ３００３において、形状取得部２９０３は、形状測定部２７０２から被写体の３次元形状データを取得する。前述のように、ここでは、被写体の３次元形状データは、被写体表面のポリゴンデータとする。
【０１９８】
次に、ステップＳ３００４において、撮像装置条件取得部２９０５は、カラー画像撮像部２７０１の撮影条件を取得する。前述のように、撮像装置であるカラー画像撮像部２７０１の撮影条件は、レンズの焦点距離、カラー画像データの水平方向、垂直方向それぞれの画素数、及びカラー画像撮像部２７０１の位置・姿勢を含む。撮像装置条件取得部２９０５は、カラー画像撮像部２７０１の位置・姿勢を表わす情報として、カメラの回転行列Ｒ、並進ベクトルＴを取得する。ここで、被写体２７０３に対する３次元位置・姿勢は、ＳｆＭ（Ｓｔｒｕｃｔｕｒｅ ｆｒｏｍ Ｍｏｔｉｏｎ）と呼ばれる異なる視点位置から撮影された複数の画像データからカメラの位置・姿勢を算出する技術によって得ることができる。これは、カラー画像データと３次元形状データから探索した複数の対応する点から、カメラでの撮影による射影変換行列を求める技術である。そして、求めた射影変換行列からカメラの回転行列Ｒ、並進ベクトルＴ、すなわち、カラー画像撮像部２７０１の位置・姿勢を算出することができる。ＳｆＭについては公知の技術であり、本発明の主眼でないため説明は省略する。
【０１９９】
次に、実施形態３と同様に、ステップＳ２００５において、被写体領域抽出部３０８が被写体領域の３次元形状データを抽出し、ステップＳ２００６において、照明サイズ範囲設定部１８１０が照明条件のうちの照明サイズに対し設定可能範囲の初期化を行う。
【０２００】
次に、ステップＳ３００７において、形状判断部２９０９は、３次元形状データと撮像装置条件から３次元形状データの取得精度を算出し、取得精度が所定値未満であるか判定を行う。本実施形態においては、カラー画像データと３次元形状データをそれぞれ独立した構成で取得するため、ライティング画像と被写体のポリゴンの解像度が対応していないことがある。そのため、例えば、より高い解像度で３次元形状データが取得されている場合、ライティング画像の１画素に多数のポリゴンが対応することとなる。その場合、実施形態３のように形状データのポリゴン単位で法線の誤差の算出を行うと、ライティング画像の１画素より細かい解像度での凹凸による法線の誤差によって、取得精度が必要以上に低く見積もられてしまう。そこで、本実施形態における形状判断部２９０９は、ライティング画像の各画素に対応する領域を３次元形状データから抽出し、その領域の法線と正解３次元形状データが持つ法線が成す角度から３次元形状データの取得精度の算出を行う。
【０２０１】
そのために、まず、形状判断部２９０９は、ライティング画像の各画素と対応する３次元形状データの領域の検出を行う。ライティング画像の画素（ｉ、ｊ）と対応する３次元形状データの領域を検出するには、以下の式（２５）〜（２８）のそれぞれによって表される４つの直線ｌ1〜ｌ4と、３次元形状データとの交点を求めればよい。式（２５）〜（２８）は、カラー画像撮像部２７０１のレンズの焦点距離ｆx、ｆy、カラー画像データの水平方向及び垂直方向の画素数Ｗ、Ｈ、カラー画像撮像部２７０１の位置・姿勢を表す回転行列Ｒ、並進ベクトルＴを用いて表される。
【０２０２】
【数２５】
2019101978.tif 000027
【０２０３】
【数２６】
2019101978.tif 000028
【０２０４】
【数２７】
2019101978.tif 000029
【０２０５】
【数２８】
2019101978.tif 000030
【０２０６】
ここで、ｆx、ｆyはカラー画像撮像部２７０１の画素の単位で表された焦点距離である。ｌ1〜ｌ4は、媒介変数ｓを用いた直線を表わしている。直線ｌ1〜ｌ4と３次元形状データとの交点は、ＣＧ技法におけるレイ・トレーシング（光線追跡法）で利用されるポリゴンと直線との衝突判定を用いて求めることができる。この場合、３次元形状データに含まれるポリゴンの中から、直線ｌ1〜ｌ4と交点を持つポリゴンが探索される。これら４つの交点が作る面を、カラー画像データの画素に対応する領域とする。
【０２０７】
次に、形状判断部２９０９は、カラー画像データの画素に対応する領域の面の法線を算出する。尚、４点の交点が必ずしも１つの平面上に存在するわけではないため、最適化によって求めた４点に最も近い平面の法線を算出してもよい。或いは、４点から成る四角形を、対角線で切った２つの三角形に分割し、各三角形の平面に対する法線の平均値を４点が作る平面の法線として扱ってもよい。尚、カラー画像データの被写体領域の全ての画素について、３次元形状データから対応する領域を検出し、その法線を算出する。
【０２０８】
次に、形状判断部２９０９は、上記のカラー画像データの各画素に対応する領域の面の法線と正解３次元形状データ中の同一場所の法線が成す角度を算出する。２つの法線の成す角度は、実施形態３の上記式（１８）を用いて算出することができる。この角度を、カラー画像データの画素に対応する領域における法線方向の誤差とする。尚、正解３次元形状データを持たない場合、注目領域の周辺領域の平均の法線方向を疑似的に正解法線として扱い、取得精度を算出する。そして、カラー画像データの被写体領域に含まれる画素に対応する領域において算出した法線方向の誤差の平均値ψを、取得精度を表す指標として利用する。実施形態３と同様に、平均誤差が大きい場合は取得精度が低く、平均誤差が小さい場合は取得精度が高いものとする。
【０２０９】
そして、形状判断部２９０９は、上述のようにして取得した３次元形状データの取得精度を、予めＲＯＭ２０３に記憶しておいた所定の角度と比較し、取得精度が所定値未満であるか判断を行う。すなわち、平均誤差が所定の角度以上である場合、取得精度は低精度であると判断し、ステップＳ２００８へ移行する。一方、平均誤差が所定の角度未満である場合、取得精度は高精度であると判断し、ステップＳ２０１０へ移行する。
【０２１０】
その他のステップは、実施形態３と同様である。
【０２１１】
以上説明したように、本実施形態にライティング処理では、実施形態３と比較して、ステップＳ３００３、ステップＳ３００４、及び、ステップＳ３００７における処理が異なる。
【０２１２】
上記で説明したように本実施形態においては、画像撮像部１０２と距離画像取得部１０４とが独立した構成の場合における仮想照明のサイズの設定可能範囲を設定する方法を説明した。本実施形態では、３次元形状データの解像度とカラー画像データの解像度が対応していない場合であっても、仮想照明のサイズに対して適切な設定可能範囲を設定することが可能となる。
【０２１３】
［その他の実施形態］
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１以上のプロセッサがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０２１４】
１０１  画像処理装置
１０５  表示部
２０９  画像処理部
３０１  画像取得部
３０２  現像部
３０３  形状取得部
３０４  照明位置設定部
３０５  撮像装置位置・姿勢算出部
３０６  ライティング処理部
３０７  画像出力部
３０８  被写体領域抽出部
３０９  形状判断部
３１０  照明位置可動範囲設定部
３１１  照明位置可動範囲出力部
３１２  照明位置評価部
３１３  警告出力部
【図１】
2019101978.tif 000031
【図２】
2019101978.tif 000032
【図３】
2019101978.tif 000033
【図４】
2019101978.tif 000034
【図５】
2019101978.tif 000035
【図６】
2019101978.tif 000036
【図７】
2019101978.tif 000037
【図８】
2019101978.tif 000038
【図９】
2019101978.tif 000039
【図１０】
2019101978.tif 000040
【図１１】
2019101978.tif 000041
【図１２】
2019101978.tif 000042
【図１３】
2019101978.tif 000043
【図１４】
2019101978.tif 000044
【図１５】
2019101978.tif 000045
【図１６】
2019101978.tif 000046
【図１７】
2019101978.tif 000047
【図１８】
2019101978.tif 000048
【図１９】
2019101978.tif 000049
【図２０】
2019101978.tif 000050
【図２１】
2019101978.tif 000051
【図２２】
2019101978.tif 000052
【図２３】
2019101978.tif 000053
【図２４】
2019101978.tif 000054
【図２５】
2019101978.tif 000055
【図２６】
2019101978.tif 000056
【図２７】
2019101978.tif 000057
【図２８】
2019101978.tif 000058
【図２９】
2019101978.tif 000059
【図３０】
2019101978.tif 000060