(57)【特許請求の範囲】
【請求項１】
被写体を含む画像データを取得する画像取得手段と、
前記画像データを撮像した撮像装置から前記被写体までの距離を、前記画像データの各画素について示す距離情報を取得する距離取得手段と、
前記画像データが示すシーンにおいて、光源の位置を設定する設定手段と、
前記画像データにおいて、前記被写体の所定の特徴パターンを検出し、前記特徴パターンに基づいて、データの位置合わせに用いる複数の基準点の位置を検出する検出手段と、
前記所定の特徴パターンを有する所定の物体の３次元形状を示すモデルデータと、前記モデルデータにおける前記複数の基準点の位置を示す情報とを保持する保持手段と、
前記モデルデータに含まれる前記複数の基準点の位置と、前記検出手段によって検出された前記複数の基準点の位置とに基づいて、前記モデルデータを前記被写体に位置合わせする位置合わせ手段と、
前記位置合わせ手段により位置合わせされた前記モデルデータと前記距離情報と前記光源の位置とに基づいて、前記画像データの画素値を補正するライティング処理を行う処理手段とを有し、
前記位置合わせ手段は、前記位置合わせにおいて、前記複数の基準点のうちの第一の基準点の位置の一致度合いを、前記第一の基準点とは異なる第二の基準点の位置の一致度合いに比べて重視することを特徴とする画像処理装置。
【請求項２】
前記特徴パターンは顔であり、前記検出手段は前記被写体に含まれる顔の鼻を含む複数の器官の位置を前記複数の基準点の位置として検出し、
前記位置合わせ手段は、前記位置合わせにおいて、前記被写体の鼻の位置と前記モデルデータの鼻の位置との一致度合いを、前記被写体と前記モデルデータの、前記検出手段に検出された他の器官の位置の一致度合いに比べて重視することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記保持手段は、所定の顔の３次元形状を示すモデルデータを、前記所定の顔の複数の向きについてそれぞれ保持し、
前記モデルデータにおける前記複数の基準点の位置と、前記検出手段により検出された前記複数の基準点の位置とに基づいて、前記複数の向きのうちの一つに対応するモデルデータを選択する選択手段を更に有し、
前記位置合わせ手段は、前記選択手段により選択されたモデルデータに対して、前記位置合わせ処理を行うことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記保持手段は、前記複数の向きのそれぞれに対応するモデルデータの間で鼻の位置のずれが等間隔になるように前記複数の向きに対応するモデルデータを保持することを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記複数の基準点から前記第一の基準点と前記第二の基準点とを決定する決定手段を更に有し、
前記決定手段は、前記特徴パターンにおいて、前記複数の基準点の周囲の所定の画素数の範囲での凹凸の大きさを導出し、前記凹凸の大きさが所定の基準を満たしている基準点を前記第一の基準点として決定し、前記凹凸の大きさが所定の基準を満たしていない基準点を前記第二の基準点として決定することを特徴とする請求項１に記載の画像処理装置。
【請求項６】
前記決定手段は、前記モデルデータを用いて前記複数の基準点の周囲の所定の画素数の範囲における形状変化の大きさを導出し、前記形状変化の大きさが所定の閾値を超えている基準点を前記第一の基準点として決定し、前記形状変化の大きさが所定の閾値を超えていない基準点を前記第二の基準点として決定することを特徴とする請求項５に記載の画像処理装置。
【請求項７】
前記決定手段は、前記モデルデータを用いて前記複数の基準点の周囲の所定の画素数の範囲における形状変化の大きさを導出し、前記形状変化の大きさが最も大きい基準点を前記第一の基準点として決定し、前記第一の基準点よりも前記形状変化の大きさが小さい基準点を前記第二の基準点として決定することを特徴とする請求項５に記載の画像処理装置。
【請求項８】
前記位置合わせ手段は、前記被写体と前記モデルデータとの間での前記複数の基準点同士の位置のずれの大きさを示す評価値を用いて前記位置合わせを行い、前記位置合わせ手段は、前記特徴パターンのうちの第一の基準点同士のずれに対して、前記第二の基準点同士のずれに比べて、より大きなずれを示す評価値を算出することを特徴とする請求項１乃至７のいずれか一項に記載の画像処理装置。
【請求項９】
前記位置合わせ手段は、前記複数の基準点の位置に基づいて、前記モデルデータを射影変換することで前記位置合わせを行うことを特徴とする請求項１乃至８のいずれか一項に記載の画像処理装置。
【請求項１０】
前記位置合わせ手段は、前記複数の基準点の位置に基づいて、前記モデルデータを平行移動することで前記位置合わせを行うことを特徴とする請求項１乃至９のいずれか一項に記載の画像処理装置。
【請求項１１】
前記距離情報に基づいて、前記被写体の表面における法線方向を前記画像データの各画素について示す法線情報を取得する法線取得手段を更に備え、
前記処理手段は、前記位置合わせ手段により位置合わせされた前記モデルデータと前記法線情報と前記光源の位置とに基づいて前記ライティング処理を行うことを特徴とする請求項１乃至１０のいずれか一項に記載の画像処理装置。
【請求項１２】
前記モデルデータは、前記所定の物体を示す画像の各画素において、前記所定の物体の表面の法線方向を格納した法線画像データであり、
前記法線情報の前記被写体の前記特徴パターンに対応する領域における法線方向は、前記モデルデータが示す法線方向により決定された法線方向であることを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記法線情報の前記特徴パターンに対応する領域に対して、前記画像データの画素値を基準とする平滑化フィルタを作用させることで前記法線情報を補正する補正手段を更に有することを特徴とする請求項１２に記載の画像処理装置。
【請求項１４】
前記補正手段は、前記平滑化フィルタにおいて参照する画素を、前記法線情報において前記モデルデータに対応する画素に限定することを特徴とする請求項１３に記載の画像処理装置。
【請求項１５】
前記補正手段は、前記距離情報に基づいて、前記被写体の一部を遮蔽する遮蔽物を検出し、
前記補正手段は、前記特徴パターンに対応する領域において、前記検出された遮蔽物により遮蔽されている遮蔽領域における前記平滑化フィルタの強度を、前記遮蔽領域ではない領域における前記平滑化フィルタの強度よりも強くすることを特徴とする請求項１３又は１４に記載の画像処理装置。
【請求項１６】
前記平滑化フィルタはクロスバイラテラルフィルタであることを特徴とする請求項１３乃至１５のいずれか一項に記載の画像処理装置。
【請求項１７】
前記ライティング処理は、前記画像データの各画素に対応する被写体の位置と前記設定手段により設定された前記光源の位置との間の距離に応じて前記画像データの画素値を加算する処理であることを特徴とする請求項１乃至１６のいずれか一項に記載の画像処理装置。
【請求項１８】
前記ライティング処理は、前記画像データの各画素に対応する被写体の位置と前記設定手段により設定された前記光源の位置との間の距離に応じて前記画像データの画素値を減算する処理であることを特徴とする請求項１乃至１６のいずれか一項に記載の画像処理装置。
【請求項１９】
前記光源の位置は、実際には存在しない仮想的な光源の位置であることを特徴とする請求項１乃至１８のいずれか一項に記載の画像処理装置。
【請求項２０】
被写体を含む画像データを取得する画像取得工程と、
前記画像データを撮像した撮像装置から前記被写体までの距離を、前記画像データの各画素について示す距離情報を取得する距離取得工程と、
前記画像データが示すシーンにおいて、光源の位置を設定する設定工程と、
前記画像データにおいて、前記被写体の所定の特徴パターンを検出し、前記特徴パターンに基づいて、データの位置合わせに用いる複数の基準点の位置を検出する検出工程と、
前記所定の特徴パターンを有する所定の物体の３次元形状を示すモデルデータと、前記モデルデータにおける前記複数の基準点の位置を示す情報とを読み出す工程と、
前記モデルデータに含まれる前記複数の基準点の位置と、前記検出工程によって検出された前記複数の基準点の位置とに基づいて、前記モデルデータを前記被写体に位置合わせする位置合わせ工程と、
前記位置合わせ工程により位置合わせされた前記モデルデータと前記距離情報と前記光源の位置とに基づいて、前記画像データの画素値を補正するライティング処理を行う処理工程とを有し、
前記位置合わせ工程は、前記位置合わせにおいて、前記複数の基準点のうちの第一の基準点の位置の一致度合いを、前記第一の基準点とは異なる第二の基準点の位置の一致度合いに比べて重視する工程であることを特徴とする画像処理方法。
【請求項２１】
コンピュータを請求項１乃至１９のいずれか一項に記載の画像処理装置として機能させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像データに陰影を付与する技術に関する。
【背景技術】
【０００２】
撮像装置を用いて被写体を撮像する場合、その被写体に対する光量や光の向きといった照明条件が、得られる画像の見え方に大きく影響する。例えば、被写体に対して斜方から光が当たる場合には、被写体の立体的な印象が強調される。また、被写体に対して後方から光が当たる場合には、被写体の前面が陰になり、画像は暗く平面的な印象になってしまう。このような画像の見え方を調整する方法として、３次元形状データを用いて仮想的な照明条件下の画像を生成する方法がある（特許文献１）。特許文献１に記載の技術では、被写体に対応する３次元形状データを用いて仮想的な照明条件下の画像をレンダリングし、これを撮像した画像中の被写体が存在する領域に配置することで、照明条件の異なる画像を生成する。また、別の方法として、撮像した画像から被写体表面の法線方向を推定し、推定した法線方向に基づいて仮想的な照明条件下の画像を生成する方法が知られている（特許文献２）。特許文献２に記載の技術では、撮像画像の明るさ情報から法線方向を推定し、法線方向に基づいてライティングを補正した画像を生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第５０８８２２０号公報
【特許文献２】特許第５１４７２８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載の技術では、３次元形状データからレンダリングされたＣＧ画像を撮像された画像に合成するため、ＣＧ画像と撮像された画像の位置合わせが上手くいかない場合、違和感のある画像になってしまうと言う課題がある。また、特許文献２に記載の技術では、撮像画像の明るさに基づいて法線方向を推定するため、ノイズや影が被写体に含まれる場合、正しい法線方向を推定できないという課題がある。そこで本発明は、３次元形状データを用いて画像のライティング補正を行う場合に、違和感の少ない画像を生成することを目的とする。
【課題を解決するための手段】
【０００５】
上記課題を解決するために、本発明に係る画像処理装置は、被写体を含む画像データを取得する画像取得手段と、前記画像データを撮像した撮像装置から前記被写体までの距離を、前記画像データの各画素について示す距離情報を取得する距離取得手段と、前記画像データが示すシーンにおいて、光源の位置を設定する設定手段と、前記画像データにおいて、前記被写体の所定の特徴パターンを検出し、前記特徴パターンに基づいて、データの位置合わせに用いる複数の基準点の位置を検出する検出手段と、前記所定の特徴パターンを有する所定の物体の３次元形状を示すモデルデータと、前記モデルデータにおける前記複数の基準点の位置を示す情報とを保持する保持手段と、前記モデルデータに含まれる前記複数の基準点の位置と、前記検出手段によって検出された前記複数の基準点の位置とに基づいて、前記モデルデータを前記被写体に位置合わせする位置合わせ手段と、前記位置合わせ手段により位置合わせされた前記モデルデータと前記距離情報と前記光源の位置とに基づいて、前記画像データの画素値を補正するライティング処理を行う処理手段とを有し、前記位置合わせ手段は、前記位置合わせにおいて、前記複数の基準点のうちの第一の基準点の位置の一致度合いを、前記第一の基準点とは異なる第二の基準点の位置の一致度合いに比べて重視することを特徴とする。
【発明の効果】
【０００６】
本発明により、３次元形状データを用いて画像のライティング補正を行う場合の画像の違和感を低減することができる。
【図面の簡単な説明】
【０００７】
【図１】実施例１の撮像装置の筺体を示す図。
【図２】実施例１の撮像装置の内部構成を示すブロック図。
【図３】実施例１の画像処理部の構成を示すブロック図。
【図４】実施例１の画像処理部の動作を示すフローチャート図。
【図５】実施例１における各画像データの一例を示す図。
【図６】実施例１における撮像装置と被写体および照明との位置関係の一例を示す図。
【図７】実施例１におけるライティング補正処理後の画像データの一例を示す図。
【図８】実施例１の法線取得部の構成を示すブロック図。
【図９】実施例１の法線取得部の動作を示すフローチャート図。
【図１０】実施例１における顔モデルデータの一例を示す図。
【図１１】実施例１における撮像画像データの器官位置と顔モデルデータの凹凸領域の一例を示す図。
【図１２】実施例１におけるクロスバイラテラルフィルタによる法線画像データの補正処理の一例を示す図
【図１３】実施例２の画像処理部の構成を示すブロック図。
【図１４】実施例２の画像処理部の動作を示すフローチャート図。
【図１５】実施例２における撮像画像データと射影変換後の顔モデルデータの一例を示す図。
【図１６】実施例２における法線画像データとマスク画像データの一例を示す図。
【図１７】実施例３の画像処理部の構成を示すブロック図。
【図１８】実施例３の画像処理部の動作を示すフローチャート図。
【図１９】実施例３における撮像画像データと距離画像データと法線画像データの一例を示す図。
【発明を実施するための形態】
【０００８】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【０００９】
〔実施例１〕
図１は本実施例の撮像装置の筺体を示す図であり、図１（ａ）は撮像装置の正面、図１（ｂ）は撮像装置の背面を示している。撮像装置１０１の筺体は、２個の撮像部１０２〜１０３、撮像ボタン１０４、発光部１０５、表示部１０６、操作部１０７を備えている。撮像部１０２〜１０３はズームレンズ、フォーカスレンズ、ブレ補正レンズ、絞り、シャッター、光学フィルタ、センサ、Ａ／Ｄ変換部などによって構成される撮像光学系であり、センサにより被写体の光情報を受光する。センサはＣＭＯＳやＣＣＤなどの撮像素子で構成され、センサが受光した光情報はＡ／Ｄ変換部によってデジタルデータに変換される。撮像ボタン１０４はユーザが撮像の開始を撮像装置１０１に指示するためのボタンである。発光部１０５はユーザの指示に従い撮像の開始に合わせて発光させることができる照明である。表示部１０６は撮像装置１０１で処理した画像データや設定メニューなどを表示するディスプレイであり、液晶ディスプレイなどを用いることができる。操作部１０７はユーザが変更可能なパラメータを撮像装置１０１に指示するためのボタンである。なお、表示部１０６はタッチスクリーン機能を有していてもよく、その場合はタッチスクリーンを用いたユーザ指示を操作部１０７の入力として扱うことも可能である。
【００１０】
図２は撮像装置１０１の内部構成を示すブロック図である。中央処理装置（ＣＰＵ）２０１は以下に述べる各部を統括的に制御する処理回路である。ＲＡＭ２０２はＣＰＵ２０１の主メモリ、ワークエリアなどとして機能するメモリである。ＲＯＭ２０３はＣＰＵ２０１で実行される制御プログラムなどを格納しているメモリである。バス２０４は各種データの転送経路である。例えば、撮像部１０２〜１０３によって取得されたデジタルデータは、このバス２０４を介して所定の処理部に送られる。表示制御部２０５は表示部１０６に表示される画像データや文字の表示制御を行う制御回路である。撮像制御部２０６はフォーカスを合わせる、シャッターを開く・閉じる、絞りを調節するなどのＣＰＵ２０１からの指示に基づいた撮像部の制御を行う駆動回路である。デジタル信号処理部２０７はバス２０４を介して受け取ったデジタルデータに対し、ホワイトバランス処理、ガンマ処理、ノイズ低減処理などの各種処理を行う処理回路である。エンコード部２０８はデジタルデータをＪＰＥＧやＭＰＥＧなどのファイルフォーマットに変換する処理を行う処理回路である。外部メモリ制御部２０９は撮像装置１０１をＰＣやその他のメディア（例えば、ハードディスク、メモリカード、ＣＦカード、ＳＤカード、ＵＳＢメモリ）に接続するためのインタフェースである。画像処理部２１０は撮像部１０２〜１０３によって取得されるデジタルデータあるいは、デジタル信号処理部２０７から出力されるデジタルデータを用いて、ライティング補正などの画像処理を行う処理回路である。画像処理部２１０の詳細については後述する。なお、撮像装置の構成要素は上記以外にも存在するが、本実施例の主眼ではないため、説明を省略する。
【００１１】
＜画像処理部＞
図３は画像処理部２１０の機能構成を示すブロック図である。画像処理部２１０は、ＲＯＭ２０３に格納されたプログラムを実行したＣＰＵ２０１に制御されることにより、図３に示す各ブロックとしての機能を果たす。図４は画像処理部２１０の動作を示すフローチャートである。以下、画像処理部２１０により行われる処理について図３および図４を参照して説明する。
【００１２】
ステップＳ４０１では、画像取得部３０１が撮像部１０２で撮像した撮像画像データを取得する。画像取得部３０１は、取得した撮像画像データをライティング部３０５に出力する。
【００１３】
次にステップＳ４０２では、距離取得部３０２が距離画像データを取得する。距離画像データとは、画像データ内の各画素位置における被写体から撮像装置１０１までの距離を示すデータである。本実施例では、距離画像データは２５６階調のモノクロ画像であり、撮像装置までの距離が近い被写体に対応する画素の画素値を大きく、距離が遠い被写体に対応する画素の画素値を小さく表している。なお、距離画像データの形式はこの形式に限られず、各画素位置における被写体の距離情報を格納したテーブルなどであってもよい。
【００１４】
ここで、距離画像データの取得方法について説明する。距離画像データは、視点の異なる複数の画像データから同一物点となる被写体の対応点を検出し、画像データにおける対応点の差分に基づいて三角測量の原理により距離を算出するステレオマッチング法を用いて取得することができる。また、被写体に光を照射して反射して戻るまでの時間に基づいて距離を算出するＴＯＦ（ＴｉｍｅＯｆＦｌｉｇｈｔ）法や、被写体にパターン光を照射してパターンの変位に基づいて距離を算出するパターン投写法を用いることができる。本実施例では、ＴＯＦ法により距離画像データが取得されるものとする。撮像装置１０１は撮像の開始に合わせて発光部１０５を発光させ、被写体に反射した光を撮像部１０３が受光する。そして、発光した光が被写体に反射して受光するまでの時間に基づいて距離画像データを生成する。なお、距離画像データの取得方法は上記以外の公知の手法により取得してもよい。距離取得部３０２は、撮像部１０３から入力されたデータをもとに距離画像データを生成し、ライティング部３０５に出力する。
【００１５】
次にステップＳ４０３では、法線取得部３０３が法線画像データを算出する。法線画像データとは、画像データ内の各画素位置における被写体の面に対する法線ベクトルを示すデータである。本実施例では、法線画像データは２５６階調のカラー画像であり、被写体を含む座標系で定義される方向ベクトルを画素値で表している。なお、法線画像データの形式はこの形式に限られず、各画素における被写体の法線情報を格納したテーブルなどであってもよい。
【００１６】
ここで、法線画像データの算出方法について説明する。法線画像データは、距離画像データの注目画素に対して近傍領域から微分して求める方法や、平面を当てはめる方法により算出することができる。また、一般的な顔形状の法線画像データを予めＲＯＭ２０３に備え、被写体の形状や表情に合わせて法線画像データを変形する方法により算出することができる。本実施例では、ＲＯＭ２０３に一般的な顔形状の法線画像データが記憶されており、一般的な顔形状の法線画像データを被写体に合わせて変形する方法により法線画像データを算出するものとする。なお、法線画像データ生成方法の詳細は後述する。
【００１７】
図５は本実施例における各画像データの一例である。図５（ａ）はステップＳ４０１で取得する撮像画像データ、図５（ｂ）はステップ４０２で取得する距離画像データ、図５（ｃ）はステップＳ４０３で算出する法線画像データである。ここで、撮像画像データをＩ、距離画像データをＰ、法線画像データをＮと定義し、画素（ｉ，ｊ）に対応する値をＩ（ｉ，ｊ）、Ｐ（ｉ，ｊ）、Ｎ（ｉ，ｊ）とする。また、撮像画像データと法線画像データはどちらもカラー画像データなので、Ｉ（ｉ，ｊ）＝（Ｉｒ（ｉ，ｊ）、Ｉｇ（ｉ，ｊ）、Ｉｂ（ｉ，ｊ））、Ｎ（ｉ，ｊ）＝（Ｎｘ（ｉ，ｊ）、Ｎｙ（ｉ，ｊ）、Ｎｚ（ｉ，ｊ））と表わされる。法線取得部３０３は、取得した法線画像データをライティング部３０５に出力する。
【００１８】
次にステップＳ４０４では、照明取得部３０４がライティング処理に用いる仮想照明の照明パラメータを取得する。照明パラメータとは、照明の色、照明の明るさ、照明の位置および姿勢を示す変数である。本実施例では、照明の色は２５６階調のＲＧＢ値であり、照明の明るさは正の実数値であるとする。また、照明の位置および姿勢は３次元の実数値であり、被写体を含む座標系で定義される空間の座標および方向ベクトルで表している。ここで、照明の色をＬ、照明の明るさをα、照明の位置をＱ、照明の姿勢をＵと定義し、Ｌ＝（Ｌｒ、Ｌｇ、Ｌｂ）、Ｑ＝（Ｑｘ、Ｑｙ、Ｑｚ）、Ｕ＝（Ｕｘ、Ｕｙ、Ｕｚ）で表すものとする。
【００１９】
ここで、撮像装置と被写体および照明との位置関係について図６を用いて説明する。図６は、撮像装置６０１、被写体６０２、照明６０３を含む仮想空間であり、右方向がＸ軸、手前方向がＹ軸、上方向がＺ軸である。また、撮像装置６０１は仮想的なセンサ面を表しており、画素（ｉ，ｊ）に対応する値Ｉ（ｉ，ｊ）は図６のように定義される。また同様に、画素（ｉ，ｊ）に対応する法線Ｎ（ｉ，ｊ）、距離Ｐ（ｉ，ｊ）は図６のように定義される。また、照明６０３は実際には存在しない仮想光源であり、照明の位置Ｑおよび姿勢Ｕは図６のように定義される。照明取得部３０４は、取得した照明パラメータをライティング処理に用いる照明パラメータとして設定し、ライティング部３０５に出力する。
【００２０】
最後にステップＳ４０５では、ライティング部３０５が、画像取得部３０１から入力された画像データにライティング補正処理を行う。ライティング補正処理とは、距離画像データや法線画像データを用いて、あたかも照明パラメータに基づくライティングを被写体に施したように撮像画像データの画素値を補正する処理である。本実施例では、式（１）に従い、撮像画像データを補正するものとする。
【００２１】
Ｉｒ’（ｉ，ｊ）＝Ｉｒ（ｉ，ｊ）＋ｋｒ（ｉ，ｊ）×Ｌｒ×Ｉｒ（ｉ，ｊ）
Ｉｇ’（ｉ，ｊ）＝Ｉｇ（ｉ，ｊ）＋ｋｇ（ｉ，ｊ）×Ｌｇ×Ｉｇ（ｉ，ｊ）    （１）
Ｉｂ’（ｉ，ｊ）＝Ｉｂ（ｉ，ｊ）＋ｋｂ（ｉ，ｊ）×Ｌｂ×Ｉｂ（ｉ，ｊ）
ここでは、画像処理後の画像データをＩ’と定義し、画素（ｉ，ｊ）に対応する値をＩ’（ｉ，ｊ）とし、Ｉ’（ｉ，ｊ）＝（Ｉｒ’（ｉ，ｊ）、Ｉｇ’（ｉ，ｊ）、Ｉｂ’（ｉ，ｊ））で表している。また、ｋ（ｉ，ｊ）は照明の明るさ、位置、姿勢および画素（ｉ，ｊ）に対応する距離情報、法線情報に基づいて、例えば式（２）のように算出することができる。
【００２２】
ｋ（ｉ，ｊ）＝ｔ×α×Ｋ（ρ）×（Ｎ（ｉ，ｊ）・Ｖ（ｉ，ｊ））÷（Ｗ（Ｐ（ｉ，ｊ）），Ｑ）    （２）
ここで、ｔは任意の定数であり、ρは画素（ｉ，ｊ）に対応する被写体の位置と照明の位置Ｑとを結ぶ直線と照明の姿勢Ｕとのなす角度であり、Ｋ（ρ）はρが小さいほど大きな値となるような関数である。また、Ｖ（ｉ，ｊ）は画素（ｉ，ｊ）に対応する被写体の位置から照明の位置Ｑへ向かう方向を表す単位ベクトルであり、Ｗ（Ｐ（ｉ，ｊ）），Ｑ）は画素（ｉ，ｊ）に対応する被写体の位置から照明の位置Ｑまでの距離が大きいほど大きな値となる関数である。なお、ライティング処理に用いる式は上記のような、光源に近づくにつれて画素値を加算する式に限られず、例えば光源からの距離が遠ざかるにつれて撮像画像データの画素値を減算するような式を用いてもよい。そのような式を用いた場合には、光量が過剰な状態で撮像された画像データに対して、自然な陰影を付与することができる。
【００２３】
図７は本実施例におけるライティング補正処理後の画像データの一例である。図５（ａ）に示す撮像画像データに対して、所望の位置から照明で照らしたような立体感のある陰影を付与することができる。
【００２４】
以上が、本実施例の撮像装置１０１で行われる処理の概要である。以上の処理により、撮像画像データから撮像者が所望する照明条件下で撮像したかのような画像データを生成することができる。これにより、スポットライト照明や逆光など好適でない照明条件下での撮像であっても、撮像後に好適な照明条件に変更した画像データを生成することができる。以下、法線取得部３０３で行われる処理（ステップＳ４０３）の詳細について説明する。
【００２５】
＜法線取得部＞
ここでは、一般的な顔形状の法線画像データを被写体に合わせて変形することにより法線情報を算出する方法について説明する。図８は法線取得部３０３の機能構成を示すブロック図である。また、図９は法線取得部３０３の動作を示すフローチャートである。以下、法線取得部３０３で行われる処理（ステップＳ４０３）の詳細について、図８に示すブロック図と図９に示すフローチャートを参照して説明する。
【００２６】
まずステップＳ９０１では、画像取得部８０１がステップＳ４０１で取得した撮像画像データを取得する。画像取得部８０１は、取得した撮像画像データをパターン検出部８０２と法線補正部８０６に出力する。
【００２７】
次にステップＳ９０２では、パターン検出部８０２が被写体の特徴パターンを検出する。本実施例では、パターン検出部８０２は、撮像画像データから人間の顔を検出する。なお、本実施例では、顔画像の特徴を学習したデータベースを予めＲＯＭ２０３に備え、パターン検出部８０２は、ＲＯＭ２０３に格納されたデータベースを用いたテンプレートマッチングなどにより顔を検出するものとする。なお、ここで検出する特徴パターンは顔に限られず、被写体に記載された文字など様々なものを用いることが可能である。パターン検出部８０２は、撮像画像データにおいて目や鼻などの器官位置や顔の向きを示す被写体情報を取得し、法線選択部８０３と法線生成部８０５に出力する。なお、被写体情報の取得方法はこの方法に限られず、撮像画像を見ながらユーザが顔の器官位置や向きを入力するなどしてもよい。
【００２８】
次にステップＳ９０３では、法線選択部８０３がＲＯＭ２０３に格納された一般的な顔形状の法線画像データから、ライティング処理に用いる法線画像データを選択する。以下、一般的な顔形状の法線画像データを、顔モデルデータと呼ぶ。本実施例では、複数の異なる顔の向きに応じた顔モデルデータが予めＲＯＭ２０３に記憶されており、法線選択部８０３は、ステップＳ９０２で検出した顔の向きに基づいて、最も近い顔の向きの顔モデルデータを選択する。図１０は顔モデルデータの一例を示す図である。図１０では、鼻の最も高い位置が横方向に均等間隔で配置されるように角度を変化させた顔モデルデータを備えている。一般的な顔形状を鼻に突起を備えるたまご型で喩えると、顔モデルデータは、角度の変化に応じて鼻周辺の鼻領域に最も変化が生じる。そのため、顔モデルデータは鼻の位置を基準として複数備えることが望ましい。ただし、このような顔モデルデータを準備できない場合は、顔の向きの角度が均等間隔で配置されるように顔モデルデータを備えるようにしてもよい。法線選択部８０３は、選択した顔モデルデータを凹凸決定部８０４に出力する。
【００２９】
次にステップＳ９０４では、凹凸決定部８０４が顔モデルデータの凹凸領域と輪郭領域を決定する。顔モデルデータの凹凸領域とは、顔モデルデータの変化が急峻な領域であり、顔領域が対象である場合には、目や鼻などの器官領域に相当する。本実施例では、各顔モデルデータに対応する凹凸領域と輪郭領域を予めＲＯＭ２０３に備えているおり、それを読み出すものとする。例えば、ＲＯＭ２０３に顔モデルデータにおける鼻、目および口の位置が記憶されており、特に鼻の周辺は凹凸が大きいため、鼻の周辺を凹凸領域とするものとする。そして、輪郭領域は、顔モデルデータにおいて顔の最外周に対応する画素位置が記憶されているものとする。なお、凹凸領域と輪郭領域の決定方法はこれに限られない。例えば、ステップ９０２と同様にデータベースを用いての凹凸領域を決定しても構わない。また、顔モデルデータをｘ成分、ｙ成分、ｚ成分それぞれについて微分し、３つの成分のうちの少なくとも一つの成分の変化の度合いが所定の閾値を超える領域を凹凸領域として決定するようにしてもよい。また、位置合わせの基準点として決定された点の周囲の所定の画素数の範囲において顔モデルデータを微分することで、基準点の周囲の形状変化の大きさを導出し、導出された形状変化の大きさに基づいて凹凸の大きな器官位置を決定してもよい。凹凸決定部８０４は、顔モデルデータと、顔モデルデータにおける器官位置と、凹凸領域とを示す情報を法線生成部８０５に出力する。
【００３０】
次にステップＳ９０５では、法線生成部８０５が、ステップＳ９０４で決定された凹凸領域に基づいて法線画像データを生成する。本実施例では、パターン検出部８０２から入力された被写体情報が示す顔の器官位置と、凹凸決定部８０４から入力された顔モデルデータの器官位置および凹凸領域に基づいて、顔モデルデータを射影変換する。図１１は撮像画像データの器官位置と顔モデルデータの器官位置の一例を示す図である。図１１（ａ）は撮像画像データであり、右目１１０１、左目１１０２、鼻１１０３、口１１０４が検出された器官位置である。図１１（ｂ）は顔モデルデータであり、右目１１０５、左目１１０６、鼻１１０７、口１１０８が検出された器官位置であり、この中で鼻１１０７が凹凸領域として決定されている。これらの器官位置の対応関係に基づいて、顔モデルデータを射影変換するための変換行列を算出することができる。
【００３１】
法線生成部８０５は、撮像画像データの器官位置と顔モデルデータの器官位置がそれぞれ近くなるように、各器官位置の差に基づいた最小二乗法を用いて射影変換の変換行列を生成する。すなわち、各器官位置は位置合わせに用いる基準点として決定され、法線生成部８０５は、撮像画像データと顔モデルデータの間で基準点同士のずれが小さくなるように撮像画像データと顔モデルデータの位置合わせを行う。この際、法線生成部は、凹凸領域として決定された鼻の位置が互いに最も近くなるように、鼻の位置の重みを大きく設定した重み付き最小二乗法を用いて変換行列を算出する。すなわち、鼻の位置同士のずれに対して、ずれを示す評価値としてより大きな値が与えられる。これは、法線補正部８０５は、変換行列の生成において、鼻の位置の一致度合いを他の器官位置の一致度合いよりも重視することを意味する。これは、顔領域の中で鼻領域が最も法線の変化が大きく、鼻の位置がずれるとライティング処理後の違和感が大きくなるためである。この処理により、３次元形状データと撮像画像データの位置がずれた場合であってもライティング処理後の画像の違和感を低減することができる。
【００３２】
なお、本実施例では顔モデルデータを撮像画像データに合わせて射影変換したが、顔モデルデータと撮像画像データの位置合わせは射影変換に限られず、平行移動でもよい。その場合には、法線生成部８０５は、各器官位置の距離に基づく重みづけ最小二乗法により、法線モデルデータのずらし量を決定する。この処理によれば、射影変換の変換行列を求める場合よりも処理量を低減することができる。例えば、顔モデルデータをあらゆる角度について細かい角度変化量で格納している場合には、この処理で十分な場合がある。法線生成部８０５は、顔モデルデータを撮像画像データの対応する位置に配置した法線画像データを生成し、法線補正部８０６に出力する。なお、法線画像データの、顔モデルデータに対応しないすべての領域には、Ｎ（ｉ，ｊ）＝（０，１，０）が格納されているものとする。
【００３３】
最後にステップＳ９０６では、法線補正部８０６が撮像画像データと、顔モデルデータの輪郭領域に基づいて法線画像データを補正する。本実施例では、撮像画像データの画素値を基準としたクロスバイラテラルフィルタを法線画像データに作用させることにより法線画像データを補正する。クロスバイラテラルフィルタは、撮像画像データにおいて画素値が近い画素の重みを大きくする平滑化フィルタである。撮像画像データの画素値に基づいてフィルタ処理における各画素の重みを決定するので、法線画像データはより撮像画像データに近い形状に補正される。図１２はクロスバイラテラルフィルタによる処理結果を説明する図である。図１２（ａ）は撮像画像データ、（ｂ）は処理前の法線画像データ、（ｃ）は処理後の法線画像データである。図（ｃ）に示すように、撮像画像データ（ａ）を参照して法線画像データ（ｂ）をフィルタリングすることにより、撮像画像データの輪郭に合わせて法線画像データを変形することができることがわかる。法線補正部８０６は、補正の終了した法線画像データをライティング部３０５に出力して処理を終了する。なお、ここで用いられるフィルタはクロスバイラテラルフィルタである必要はなく、撮像画像データの画素値を基準とした平滑化フィルタであればどのようなものを用いてもよい。以上が、法線取得部３０３で行われる処理の概要である。以上の処理によれば、３次元形状データと撮像画像データの位置がずれた場合であっても、ライティング処理後の画像の違和感を抑えることができる。
【００３４】
なお、本実施例において、画像取得部３０１は被写体を含む画像データを取得する画像取得手段として機能する。また、距離取得部３０２は、前記画像データを撮像した撮像装置から前記被写体までの距離を、前記画像データの各画素について示す距離情報を取得する距離取得手段として機能する。また、照明取得部３０４は、前記画像データが示すシーンにおいて、光源の位置を設定する設定手段として機能する。また、パターン検出部８０２は前記画像データにおいて、前記被写体の所定の特徴パターンを検出し、前記特徴パターンに基づいて、データの位置合わせに用いる複数の基準点の位置を検出する検出手段として機能する。
【００３５】
また、ＲＯＭ２０３は、前記所定の特徴パターンを有する所定の物体の３次元形状を示すモデルデータと、前記モデルデータにおける前記複数の基準点の位置を示す情報とを保持する保持手段として機能する。また、法線生成部８０５は、前記モデルデータに含まれる前記複数の基準点の位置と、前記検出手段によって検出された前記複数の基準点の位置とに基づいて、前記モデルデータを前記被写体に位置合わせする位置合わせ手段として機能する。また、ライティング部３０５は、前記位置合わせ手段により位置合わせされた前記モデルデータと前記距離情報と前記光源の位置とに基づいて、前記画像データの画素値を補正するライティング処理を行う処理手段として機能する。
【００３６】
また、法線選択部８０３は、前記モデルデータにおける前記複数の基準点の位置と、前記検出手段により検出された前記複数の基準点の位置とに基づいて、前記複数の向きのうちの一つに対応するモデルデータを選択する選択手段として機能する。
【００３７】
また、凹凸決定部８０４は、前記複数の基準点から前記第一の基準点と前記第二の基準点とを決定する決定手段として機能する。
【００３８】
〔実施例２〕
実施例１では、顔モデルデータの凹凸の大きい領域を優先的に位置合わせすることで、ライティング処理後の画像データの違和感を抑える方法について説明した。本実施例では、さらにマスク画像データを用いて被写体の輪郭領域の立体感を保持するように法線画像データを補正する例について説明する。
【００３９】
図１３は実施例２における法線取得部３０３の構成を示すブロック図である。また、図１４は実施例２における法線取得部３０３の動作を示すフローチャート図である。なお、ステップＳ９０１からステップＳ９０４までの処理は実施例１と同一であるため説明を省略し、実施例１と異なる点を中心に簡潔に説明する。
【００４０】
ステップＳ１４０１では、法線生成部１３０１が、ステップＳ９０４で決定された凹凸領域に基づいて法線画像データを生成する。実施例１では、パターン検出部８０２から入力された被写体情報が示す顔の器官位置と、凹凸決定部８０４から入力された顔モデルデータの器官位置および凹凸領域とに基づいて、顔モデルデータを射影変換する方法について説明した。本実施例において法線生成部１３０１は、顔モデルデータの顔領域が撮像画像データの顔領域よりも小さくなるように顔モデルデータを射影変換する方法について説明する。
【００４１】
図１５は撮像画像データと射影変換後の顔モデルデータの一例を示す図である。図１５（ａ）は撮像画像データであり、破線の枠で示す右目１５０１、左目１５０２、鼻１５０３、口１５０４の器官位置は、図１１（ａ）で示した本来の器官位置よりも鼻側に移動している。これは例えば、検出された各器官位置を鼻の器官位置の方向へ一定の割合で移動させることにより実施できる。また、図１５（ｂ）は射影変換後の顔モデルデータであり、射影変換後の顔領域１５０６は撮像画像データの顔領域１５０５よりも小さくなっている。これは射影変換先の器官位置を本来の器官位置よりも鼻側に移動させることにより、鼻の器官位置を中心とした縮小変換の効果を得ることができるためである。なお、顔モデルデータの顔領域が撮像画像データの顔領域よりも小さくなるように射影変換する理由については、後述の法線補正部１３０３の処理にて説明する。法線生成部１３０１は、上記の射影変換処理によって生成された法線画像データを、マスク生成部１３０２および法線補正部１３０３に出力する。
【００４２】
次にステップＳ１４０２では、マスク生成部１３０２がマスク画像データを生成する。図１６は法線画像データとマスク画像データの一例を示す図である。図１６（ａ）はステップ１４０１で生成した法線画像データであり、図１６（ｂ）は法線画像データに基づいて算出したマスク画像データである。マスク画像データは各画素が０か１の２値で表現される画像データであり、０を黒、１を白で表示している。本実施例では、マスク画像データにおいて法線画像データの背景領域の値が０、顔領域の値が１となるようにマスク画像を生成する。具体的には、法線画像データにおいて画素値が（０，１，０）である画素の値を、マスク画像データにおいて０とすればよい。なお、マスク画像データの形式はこれに限られず、法線画像データの背景領域と顔領域とが分離できる情報であればよい。マスク生成部１３０２は、生成したマスク画像データを法線補正部１３０３に出力する。
【００４３】
最後にステップＳ１４０３では、法線補正部１３０３が撮像画像データとマスク画像データに基づいて法線画像データを補正する。本実施例では、法線補正部１３０３は、実施例１と同様に撮像画像データの画素値に基づくクロスバイラテラルフィルタを用いて法線画像データを補正する。本実施例の法線補正部１３０３では、このフィルタ処理において、マスク生成部１３０２から入力されたマスク画像データを用いる。具体的には、マスク画像データにおいて画素値が１となっている顔領域に対応する画素のみを用いて、クロスバイラテラルフィルタの処理を行う。これにより、顔領域の輪郭領域において、背景の法線情報がフィルタリングに用いられることが無くなるため、輪郭領域の立体感を実施例１の処理に比べて保持することができる。
【００４４】
さらに、顔モデルデータの顔領域を撮像画像データの顔領域よりも小さくすることにより、顔モデルデータの輪郭を撮像画像データの輪郭に合わせて整形しやすくなる効果があるため、好適に法線画像データを補正することができる。法線補正部１３０３は、処理が終了した法線画像データをライティング部３０５に出力して処理を終了する。
【００４５】
以上が本実施例の法線取得部３０３で行われる処理の概要である。以上の処理によれば、実施例１の処理に比べて輪郭領域の立体感を保持したライティング処理を行うことが可能となる。
【００４６】
〔実施例３〕
実施例２では、撮像画像データとマスク画像データに基づいて法線画像データを補正する方法について説明した。本実施例では、さらに距離画像データを用いて、被写体の前に遮蔽物がある場合でも被写体全体の立体感を保持するように法線画像データを補正する例について説明する。
【００４７】
図１７は実施例３における法線取得部３０３の構成を示すブロック図である。また、図１８は実施例３における法線取得部３０３の動作を示すフローチャート図である。なお、ステップＳ９０１からステップＳ１４０１までの処理は実施例２と同一であるため説明を省略し、実施例２と異なる点を中心に簡潔に説明する。
【００４８】
ステップＳ１８０１では、距離取得部１７０１が、距離取得部３０２から距離画像データを取得する。距離画像データは、実施例１と同一であるため説明を省略する。距離取得部１７０１は、取得した距離画像データを法線補正部１７０２に出力する。
【００４９】
次にステップＳ１８０２では、法線補正部１７０２が撮像画像データと距離画像データおよび被写体情報に基づいて法線画像データを補正する。図１９は、本実施例における撮像画像データ、距離画像データ、法線画像データの一例を示す図である。図１９（ａ）は撮像画像データであり、被写体１９０１と撮像装置１０１との間に遮蔽物１９０２があり、被写体の顔領域の一部が遮蔽物で隠れている。図１９（ｂ）はステップＳ１８０１で取得した距離画像データであり、被写体の距離情報１９０３と遮蔽物の距離情報１９０４はそれぞれ異なっている。図１９（ｃ）はステップＳ１４０１で生成した法線画像データであり、顔モデルデータを射影変換して生成したものである。なお本実施例では、図１９（ａ）に示す遮蔽物１９０２が被写体の顔領域の一部を遮蔽しているが、被写体の顔領域の一部が隠れている場合であれば、上記の例に限らない。例えば、被写体の手や体により顔領域の一部が隠れている場合にも以下と同様の処理を行うことができる。
【００５０】
法線補正部１７０２は、まず被写体の顔領域の一部が遮蔽物で隠れているか否かを判定する。これは被写体情報と距離画像データとを用いて判定することができる。例えば、被写体情報を用いて被写体の顔領域を抽出し、距離画像データの顔領域に対応する領域の距離情報を参照する。そして、顔領域内における距離情報の平均値を算出し、顔領域内において、平均値より所定の閾値以上距離が小さい画素の数が所定の数を超えているかを判定する。顔領域内において、平均の距離よりも閾値以上距離が小さい画素が所定の数を超えている倍には、顔領域の一部が遮蔽物により隠れていると判定することができる。本実施例では、顔領域において被写体の距離情報１９０３と異なる遮蔽物の距離情報１９０４が含まれるため、被写体の顔領域の一部が遮蔽物で隠れていると判定できる。なお、被写体の顔領域の一部が遮蔽物で隠れていない場合は、実施例２の法線補正部１３０３と同様の処理を行えばよいため説明を省略する。
【００５１】
次に、法線補正部１３０３は、被写体の顔領域の一部が遮蔽物で隠れている場合には、顔領域のうち、遮蔽物に対応する遮蔽領域における平滑化処理の強度を、その他の顔領域における平滑化の強度よりも大きくするように、平滑化処理を行う。具体的には、例えば、実施例１の法線補正部８０６と同様のクロスバイラテラルフィルタを用いた処理において、遮蔽領域ではフィルタのタップ数を大きくする。また、実施例２のマスク処理を行う場合には、遮蔽領域ではマスク処理を行わないことにより平滑化を強くすることができる。なお、平滑化の度合いを強くする方法は上記に限られず、その他の方法を用いてもかまわない。例えば、遮蔽領域を抽出し、顔領域中の遮蔽領域とその他の領域とで異なる平滑化処理を適用してもかまわない。なお、本実施例で示した処理によれば、新たな補正処理を追加する必要がないためコストを低く抑えることができる。図１９（ｄ）は補正処理後の法線画像データであり、遮蔽領域１９０６の法線が強く平滑化されている。なお、法線を強く平滑化する対象領域は、本実施例のように遮蔽領域に限定する必要はない。例えば、パターン検出部８０２において、目や鼻などの器官位置に対する検出結果の信頼度が取得できる場合、信頼度が低い場合には、顔領域全体における平滑化処理を強くしてもよい。以上が本実施例の法線補正部１３０３で行われる処理の概要である。以上の処理によれば遮蔽物に対する顔モデルデータの法線の影響を抑えることができ、より自然なライティング処理を行うことができるようになる。
【００５２】
〔その他の実施例〕
上記の実施例ではＲＯＭ２０３に所定の顔の法線画像データを顔モデルデータとして格納しておき、それを撮像画像データで検出された顔に位置合わせする例について説明したが、本発明を適用可能な対象はこれに限られない。例えば、位置合わせ用の識別コードがプリントされたオブジェなどの物体の法線画像データを３次元モデルデータとして格納しておき、撮像画像データにおいて検出された識別コードを用いて３次元モデルデータを位置合わせする例についても適用可能である。この場合においても、識別コード中で検出された複数の基準点の周囲の凹凸の大きさに基づいて位置合わせをすることで、好適なライティング処理を行うことができる。
【００５３】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００５４】
３０１  画像取得部
３０２  距離取得部
３０４  照明取得部
３０５  ライティング部
８０２  パターン検出部
８０５  法線生成部
【図１】
0006552266.tif 000002
【図２】
0006552266.tif 000003
【図３】
0006552266.tif 000004
【図４】
0006552266.tif 000005
【図５】
0006552266.tif 000006
【図６】
0006552266.tif 000007
【図７】
0006552266.tif 000008
【図８】
0006552266.tif 000009
【図９】
0006552266.tif 000010
【図１０】
0006552266.tif 000011
【図１１】
0006552266.tif 000012
【図１２】
0006552266.tif 000013
【図１３】
0006552266.tif 000014
【図１４】
0006552266.tif 000015
【図１５】
0006552266.tif 000016
【図１６】
0006552266.tif 000017
【図１７】
0006552266.tif 000018
【図１８】
0006552266.tif 000019
【図１９】
0006552266.tif 000020