(57)【要約】【課題】  ３次元形状データをより高精度化する。【解決手段】  形状生成部３０４により選手１０２の３次元形状データを生成し、形状除去部３０７により、３次元形状データを構成する複数の要素のうち、カメラ１０１の光学中心を通る直線上において、カメラ１０１の撮像に基づく画像データを構成する画素又は領域に対応する要素よりもそのカメラ１０１に近い要素を除去する。【選択図】  図３
2020149163.tif 000002
【特許請求の範囲】
【請求項１】
複数の撮像装置の撮像に基づく画像データに基づいて被写体の３次元形状データを生成する生成手段と、
前記生成手段により生成された３次元形状データを構成する要素の一部を除去する除去手段と、を有し、
前記除去手段は、前記３次元形状データを構成する複数の要素のうち、前記複数の撮像装置のうちの特定の撮像装置の光学中心を通る直線上において、前記特定の撮像装置の撮像に基づく画像データを構成する画素又は領域に対応する要素よりも前記特定の撮像装置に近い要素を除去することができることを特徴とする画像処理装置。
【請求項２】
前記複数の要素のうち特定の要素について、前記特定の撮像装置の撮像に基づく画像データを構成する画素又は領域に対応するか否かを判定する判定手段をさらに有することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記特定の要素は、前記直線と前記３次元形状データの表面との交点に位置する要素であることを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記特定の要素は、前記直線と前記３次元形状データの表面との交点に位置する要素のうち、前記直線上において前記特定の撮像装置に最も近い要素と、前記直線上において前記特定の撮像装置に３番目に近い要素と、含むことを特徴とすることを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記除去手段は、前記判定手段により前記３番目に近い要素が前記特定の撮像装置の撮像に基づく画像データを構成する画素又は領域に対応すると判定されたことに基づいて、前記直線上において前記３番目に近い要素よりも前記特定の撮像装置に近い要素を、除去することができることを特徴とする請求項４に記載の画像処理装置。
【請求項６】
前記判定手段は、前記特定の要素を観察する少なくとも一つの撮像装置の撮像に基づく画像データの画素値と、前記特定の撮像装置の撮像に基づく画像データの画素値と、に基づいて、前記特定の要素が前記特定の撮像装置の撮像に基づく画像データを構成する画素又は領域に対応するか否かを判定することができることを特徴とする請求項２乃至５の何れか１項に記載の画像処理装置。
【請求項７】
前記判定手段は、前記特定の要素を観察する撮像装置を特定することができることを特徴とする請求項２乃至５の何れか１項に記載の画像処理装置。
【請求項８】
判定手段は、前記特定の要素と撮像装置の光学中心を通る直線上において、前記特定の要素よりも前記撮像装置に近い要素がないことに基づいて、前記特定の要素を観察する撮像装置を特定することができることを特徴とする請求項７に記載の画像処理装置。
【請求項９】
複数の撮像装置の撮像に基づく画像データに基づいて被写体の３次元形状データを生成する生成手段と、
前記生成手段により生成された３次元形状データを構成する要素の一部を除去する除去手段と、を有し、
前記除去手段は、前記３次元形状データの大きさに基づいて、前記３次元形状データを構成する要素の一部を除去することができることを特徴とする画像処理装置。
【請求項１０】
前記除去手段は、前記３次元形状データの大きさに応じた処理回数に基づいて、前記３次元形状データを構成する要素の一部を除去することができることを特徴とする請求項９に記載の画像処理装置。
【請求項１１】
前記除去手段は、前記３次元形状データの表面にある要素を除去することができることを特徴とする請求項９又は１０に記載の画像処理装置。
【請求項１２】
前記除去手段は、前記除去手段により表面にある要素が除去された３次元形状データの表面にある要素をさらに除去することができることを特徴とする請求項１１に記載の画像処理装置。
【請求項１３】
前記除去手段は、前記３次元形状データの大きさに応じた処理回数で、処理する対象となる３次元形状データの表面にある要素を除去することができることを特徴とする請求項９乃至１２の何れか１項に記載の画像処理装置。
【請求項１４】
前記画像データは、被写体の領域を示すシルエット画像であることを特徴とする請求項９乃至１３のいずれか１項に記載の画像処理装置。
【請求項１５】
被写体の領域を示す第１のシルエット画像と、前記第１のシルエット画像に対して画像処理が施された第２のシルエット画像と、を取得する取得手段をさらに有し、
前記生成手段は、前記画像データとして、前記第２のシルエット画像に基づいて前記３次元形状データを生成することができ、
前記除去手段は、さらに前記第１のシルエット画像にも基づいて、前記３次元形状データを構成する要素の一部を除去することができることを特徴とする請求項９又は１０に記載の画像処理装置。
【請求項１６】
前記除去手段は、前記３次元形状データを構成する要素に対応する前記第１のシルエット画像を構成する画素又は領域が、前記第１のシルエット画像における被写体の領域に含まれることに基づいて、前記３次元形状データを構成する要素の一部を除去することができることを特徴とする請求項１５に記載の画像処理装置。
【請求項１７】
前記３次元形状データの大きさは、前記３次元形状データを構成する２つの要素の距離に基づくことを特徴とする請求項９乃至１６の何れか１項に記載の画像処理装置。
【請求項１８】
前記３次元形状データの大きさは、前記３次元形状データの体積に基づくことを特徴とする請求項９乃至１６の何れか１項に記載の画像処理装置。
【請求項１９】
前記３次元形状データの大きさは、前記撮像装置の光学中心を通る直線と前記３次元形状データとの交点に基づくことを特徴とする請求項９乃至１６の何れか１項に記載の画像処理装置。
【請求項２０】
前記除去手段により要素の一部が除去された３次元形状データは、仮想視点画像の生成に用いられることを特徴とする請求項１乃至１９のいずれか１項に記載の画像処理装置。
【請求項２１】
複数の撮像装置の撮像に基づく画像データに基づいて被写体の３次元形状データを生成する生成工程と、
前記生成工程において生成された３次元形状データを構成する要素の一部を除去する除去工程と、を有し、
前記除去工程において、前記３次元形状データを構成する複数の要素のうち、前記複数の撮像装置のうちの特定の撮像装置の光学中心を通る直線上において、前記特定の撮像装置により得られた画像データを構成する画素又は領域に対応する要素よりも前記特定の撮像装置に近い要素が除去されることを特徴とする画像処理方法。
【請求項２２】
複数の撮像装置の撮像に基づく画像データに基づいて被写体の３次元形状データを生成する生成工程と、
前記生成工程において生成された３次元形状データを構成する要素の一部を除去する除去工程と、を有し、
前記除去工程において、前記３次元形状データの大きさに基づいて、前記３次元形状データを構成する要素の一部が除去されることを特徴とする画像処理方法。
【請求項２３】
コンピュータを、請求項１乃至２０の何れか１項に記載の画像処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理装置、画像処理方法、及びプログラムに関する。
【背景技術】
【０００２】
複数のカメラで撮像して取得された撮像画像に基づいて、被写体の３次元形状データを生成する手法が知られている。例えば、撮像画像から抽出された被写体のシルエット画像から、視体積交差法を用いて３次元形状データを生成する手法がある。さらに、特許文献１には、予め生成された３次元形状データの表面に対して、撮像画像の画素値情報を用いて３次元形状データを高精度化する手法が開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００８−１５８６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の手法では、予め生成された３次元形状データの表面付近に対してのみ処理を行うため、予め生成された３次元形状データが余分な部分を多く含む場合には、３次元形状データの高精度化が十分ではない可能性がある。
【０００５】
上記課題に対し、本発明は、３次元形状データをより高精度化することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の画像処理装置の一態様は、複数の撮像装置の撮像に基づく画像データに基づいて被写体の３次元形状データを生成する生成手段と、前記生成手段により生成された３次元形状データを構成する要素の一部を除去する除去手段と、を有し、前記除去手段は、前記３次元形状データを構成する複数の要素のうち、前記複数の撮像装置のうちの特定の撮像装置の光学中心を通る直線上において、前記特定の撮像装置の撮像に基づく画像データを構成する画素又は領域に対応する要素よりも前記特定の撮像装置に近い要素を除去することができることを特徴とする。
【発明の効果】
【０００７】
本発明は、３次元形状データをより高精度化することができる。
【図面の簡単な説明】
【０００８】
【図１】実施形態１に係る撮像システムの構成例を示す図。
【図２】実施形態１に係る画像処理装置のハードウェア構成例を示すブロック図。
【図３】実施形態１に係る画像処理装置の機能構成例を示すブロック図。
【図４】実施形態１に係る画像生成装置の処理例を示すフローチャート。
【図５】視体積交差法における課題を説明する図。
【図６】交点を算出する際の概念図。
【図７】実施形態２に係る画像処理装置の機能構成例を示すブロック図。
【図８】実施形態２に係る画像生成装置の処理例を示すフローチャート。
【図９】シルエット画像の概念図。
【図１０】実施形態３に係る画像処理装置の機能構成例を示すブロック図。
【図１１】実施形態３に係る画像生成装置の処理例を示すフローチャート。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態について図面を参照して説明する。なお、以下の実施形態において示す構成は一例に過ぎず、本発明は図示された構成に限定されるものではない。なお、同一の構成については、同じ符号を付して説明する。
【００１０】
また、以下では被写体の形状を示す３次元形状データがボクセルで構成される場合を例として説明するが、３次元形状データは、メッシュやデプスマップなどのデータ形式でも構成されていてもよい。
【００１１】
また、以下では、被写体は時間とともに移動する物体（移動体）のことを指し、例えば選手１０２やボール（不図示）を含む。ただし、被写体は、ゴールなどの、所定の位置に配置されるような静止物体であってもよい。
【００１２】
以下の説明において、被写体が存在する３次元空間はボクセルを用いて離散的に表される。すなわち、対象となる３次元空間は、大きさΔ［ｍｍ］の正規格子であるボクセルで区切られる。各ボクセルの座標は、例えば（ｘ座標，ｙ座標，ｚ座標）＝（０，０，０）、（１，０，０）、（３，０，１）……のように、格子ベクトルを用いて表現される。ボクセルに対応する３次元空間内での実際の物理的な位置は、このような格子ベクトルに正規格子の大きさΔを乗算することで得られる。Δとしては、例えば５ｍｍなどの値を採用することができるが、これに限られない。
【００１３】
また、以下の実施形態の画像処理装置は、指定された視点、いわゆる仮想視点に対応する仮想視点画像の生成システムに用いることができる。つまり、画像処理装置により処理された３次元形状データと、仮想視点に基づいて、仮想視点画像が生成される。ここで、視点の指定は、ユーザやオペレータが指定する方法の他、装置が自動的に指定する方法のどちらでもよい。また、視点の指定には、視点の位置及び方向の指定が少なくとも含まれる。なお、以下の実施形態の画像処理装置は、仮想視点画像の生成システム以外に用いられてもよい。
【００１４】
［実施形態１］
図１は、本実施形態に係る撮像システム１００の構成例を示す。撮像システム１００は、複数のカメラ（撮像装置）１０１と、画像処理装置２００とを備える。複数のカメラ１０１は、フィールド１０３を異なる位置から撮像するように配置されている。複数のカメラ１０１は、同期して撮像する。また画像処理装置２００は、複数のカメラと配線で接続されている。図１では、カメラの台数は、１０台であるが、これに限られない。撮像システム１００は、より多くの台数のカメラを有していてもいいし、より少ない台数のカメラしか有していなくてもよい。
【００１５】
複数のカメラ１０１のそれぞれで撮像されて取得された撮像画像は、画像処理装置２００に集められ、画像処理装置２００によって画像処理される。フィールド１０３は、例えばサッカーやラグビーなどの競技が行われる。また、競技が行われる際に、フィールド１０３上には、選手１０２やボール（不図示）が存在している。図１では、一人の選手１０２しか図示していないが、これに限られない。一般に多くの競技において、選手１０２は一人ではなく複数存在する。なお、画像処理の一部は、画像処理装置２００ではなく、負荷分散のためにカメラ１０１で行ってもよい。
【００１６】
また、図１では、撮像システム１００のスポーツシーンへの適用例を示しており、屋外又は屋内の競技場に配置された複数のカメラ１０１を用いて、フィールド１０３上にいる選手１０２が撮像されているが、これに限られない。撮像システム１００は、任意のシーン、例えばコンサートや演劇などのシーンにも適用することができる。
【００１７】
次に、図２を用いて、本実施形態に係る画像処理装置２００のハードウェアの構成例について説明する。画像処理装置２００は、ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、記憶部２０４、インターフェース２０５及びバス２０６を有する。ＣＰＵ２０１は、ＲＡＭ２０２又はＲＯＭ２０３等のメモリに格納されているコンピュータプログラム及びデータを用いて各種の処理を実行する。これによりＣＰＵ２０１は、画像処理装置２００全体の動作制御を行うとともに、画像処理装置２００が行うものとして後述する各処理を実行又は制御する。なお、画像処理装置２００がＣＰＵ２０１とは異なる１又は複数の専用のハードウェアを有し、ＣＰＵ２０１による処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、ＡＳＩＣ（特定用途向け集積回路）、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）、およびＤＳＰ（デジタルシグナルプロセッサ）などがある。
【００１８】
ＲＡＭ２０２は、ＲＯＭ２０３又は記憶部２０４のようなメモリからロードされたコンピュータプログラム及びデータを格納するためのエリアを有する。さらにＲＡＭ２０２は、ＣＰＵ２０１が各種の処理を実行する際に用いるワークエリアを有する。また、ＲＡＭ２０２は、インターフェース２０５を介して外部から供給されるデータなどを一次記憶することもできる。このようにＲＡＭ２０２は、各種のエリアを提供することができる。ＲＯＭ２０３は、書き換え不要の設定データ及びブートプログラムのようなデータ又はプログラムを格納している。
【００１９】
記憶部２０４は、プログラム及びデータを格納する記憶装置であり、例えばハードディスクドライブ装置のような大容量情報記憶装置である。記憶部２０４は、例えば、ＯＳ（オペレーティングシステム）、並びに画像処理装置２００が行うものとして後述する各処理をＣＰＵ２０１に実行させるためのコンピュータプログラム及びデータを保存することができる。記憶部２０４は、処理対象となる画像又は動画像のデータを格納することができる。記憶部２０４に保存されているプログラム又はデータは、ＣＰＵ２０１による制御に従ってＲＡＭ２０２にロードされることにより、ＣＰＵ２０１による処理対象となることができる。記憶部２０４は、ハードディスクドライブ装置以外に、ＣＤ−ＲＯＭ若しくはＤＶＤ−ＲＯＭ等の記憶媒体から情報を読み取る機器、又はフラッシュメモリ若しくはＵＳＢメモリなどのメモリ装置であってもよい。
【００２０】
インターフェース２０５は、インターフェース２０５に接続された表示装置２０７に表示データを送ることにより、表示装置２０７に表示を行わせることができる。こうして、表示装置２０７は、ＣＰＵ２０１による処理結果を画像又は文字を用いて表示又は投影することができる。表示装置２０７は、例えば、ＣＲＴ、液晶画面、又はプロジェクタ装置でありうる。
【００２１】
ＣＰＵ２０１、ＲＡＭ２０２、ＲＯＭ２０３、記憶部２０４、及びインターフェース２０５は、いずれもバス２０６に接続されており、バス２０６を介して相互に通信することができる。なお、図２に示した構成は、画像処理装置２００に適用可能なコンピュータ装置の構成の一例に過ぎない。
【００２２】
（画像処理装置の処理例）
次に、本実施形態の画像処理装置２００が行う処理例について説明する。図３は、画像処理装置の機能構成例を示すブロック図である。また、図４は、画像処理装置２００が行う処理例を示すフローチャートである。
【００２３】
図３に示すように、画像処理装置２００は、シルエット取得部３０１、カメラパラメータ取得部３０２、画像取得部３０３、形状生成部３０４、交点算出部３０５、評価値算出部３０６、形状除去部３０７を備える。画像処理装置２００は、ＣＰＵ２０１がＲＯＭ２０３内に格納された制御プログラムを読み込み実行することで、上記各部の機能を実現することができる。なお、画像処理装置２００は、図３に示す構成部の１以上に相当する専用の処理回路を備えていてもよい。以下、各構成部により行われる、本実施形態に係る処理の流れを、図４を用いて説明する。
【００２４】
ステップＳ４０１において、シルエット取得部３０１は、複数のシルエット画像を、記憶部２０４又は不図示の記憶装置から取得する。シルエット画像は、２値の画像であり、例えば被写体が存在する領域の画素値２５５、それ以外の領域の画素値を０にしたものである。なお、被写体が存在する領域がその他の領域と区別することが可能であれば、これに限られない。
【００２５】
シルエット画像は、カメラ１０１の撮像により得られた撮像画像に基づいて、他の装置により生成される画像データであり、そして、記憶部２０４又は不図示の記憶装置に記憶されている。また、シルエット取得部３０１は、カメラ１０１から直接シルエット画像を取得してもよい。この場合は、カメラ１０１が撮像画像に基づいてシルエット画像を生成するにしてもよい。また、シルエット取得部３０１は、カメラ１０１、記憶部２０４、不図示の記憶装置、又は他の装置から撮像画像を取得し、取得した撮像画像に基づいてシルエット画像を生成するようにしてもよい。
【００２６】
シルエット取得部３０１は、複数のカメラ１０１により略同時に得られた静止画像群を取得することができる。また、シルエット取得部３０１は、複数の異なる位置から撮像された動画像群を取得することもできる。例えば、画像取得部３０３は、複数のカメラ１０１により得られた動画像のうち、略同時に得られたフレーム画像群を取得することもできる。
【００２７】
ステップＳ４０２において、カメラパラメータ取得部３０２は、複数のカメラ１０１のそれぞれのカメラパラメータを取得する。カメラパラメータは、内部パラメータ、外部パラメータ、及び歪曲パラメータを含む。内部パラメータは、画像中心の座標値、及びカメラのレンズの焦点距離を含んでもよい。外部パラメータは、カメラの位置と方向を表すパラメータである。ここでは、外部パラメータとして、世界座標におけるカメラの位置ベクトル及び回転行列を用いるが、外部パラメータはカメラの位置と方向を他の方法で記述してもよい。歪曲パラメータは、カメラのレンズの歪曲を表す。このようなカメラパラメータからは、画像を撮像したカメラの位置と、カメラから画像の各画素に対応する被写体へと向かう撮像方向を得ることができる。カメラパラメータの取得方法は特に限定されない。例えば、カメラパラメータは記憶部２０４に予め格納されていてもよい。カメラパラメータは、複数の位置からの撮像画像を基にして例えばｓｔｒｕｃｔｕｒｅ  ｆｒｏｍ  ｍｏｔｉｏｎ法を用いて推定を行うことにより得ることができるし、チャートなどを用いたキャリブレーションを行うことにより得ることもできる。
【００２８】
なお、ステップＳ４０１とステップ４０２は、図４とは逆の順番で行われてもよいし、ステップＳ４０１とステップ４０２の処理の一部又は全部が同時に行われてもよい。
【００２９】
ステップＳ４０３において、形状生成部３０４は、例えば視体積交差法により、初期の被写体の３次元形状データ（以下、初期形状という）を生成する。視体積交差法については、特許文献１のような公知文献に記載されており、詳細な説明は省略する。
【００３０】
視体積交差法では、図５で示すような課題が存在する。図５は、シルエット画像に基づいて、視体積交差法を用いて被写体の３次元形状データを生成した場合を表している。図５では、５０１は胴体、５０２及び５０３は腕を表している。また、５１１〜５１３はカメラ１０１、５２１〜５２３は視体積交差法で生成された３次元形状データを表している。画像５３１〜５３３は被写体のシルエット画像を表している。ここで、シルエット画像５３２、５３３では腕が胴体と重なってしまっているため、３次元形状データ５０２、５０３は実際の腕より幅が大きい形状を表している。そこで、本実施形態では、３次元形状データ５０２、５０３のうち白抜きの余分な部分を、後述する処理により除去する。
【００３１】
図４の説明に戻る。ステップＳ４０４において、画像取得部３０３は、複数の異なる位置から撮像された被写体の撮像画像を取得する。画像取得部３０３は、カメラ１０１から直接撮像画像を取得してもよいし、記憶部２０４又は不図示の記憶装置に記憶された撮像画像を取得することができる。
【００３２】
画像取得部３０３は、複数のカメラ１０１により略同時に得られた静止画像群を取得することができる。また、画像取得部３０３は、複数の異なる位置から撮像された動画像群を取得することもできる。例えば、画像取得部３０３は、複数のカメラ１０１により得られた動画像のうち、略同時に得られたフレーム画像群を取得することもできる。
【００３３】
なお、ステップＳ４０４は、ステップＳ４０３より前に行われてもよい。さらに、ステップＳ４０１とステップ４０２より前に行われてもよいし、ステップＳ４０１とステップ４０２の間に行われてもよい。また、ステップＳ４０４は、ステップＳ４０１又は／及びステップ４０２の処理の一部又は全部と同時に行われてもよい。ステップＳ４０３とステップＳ４０４の処理の一部又は全部が同時に行われてもよい。
【００３４】
ステップＳ４０５において、交点算出部３０５は、カメラ１０１からステップＳ４０３で生成した初期形状へ飛ばした光線と初期形状の表面との交点を算出する。光線は、カメラの光学中心を通る直線である。以下では、図５におけるカメラ５１２を例にして説明するが、他のカメラに対しても同様である。交点の算出方法に関して、図６を用いて説明する。
【００３５】
図６は、カメラ５１２の光学中心から飛ばした光線６０１が初期形状５２１、５２２とボクセル６０２〜６０５で交わる場合の概念図である。光線６０１に対し、光線追跡法と同様の手法で、光線６０１上において、初期形状を構成する要素であるボクセルのうち最もカメラ５１２に近いボクセル６０２の３次元座標を算出する。ボクセル６０２の３次元座標を算出したのと同様にして、光線６０１が初期形状５２２を抜ける位置のボクセル６０３の３次元座標を算出する。ボクセル６０４、６０５についても同様である。
【００３６】
図４の説明に戻る。ステップＳ４０６において、交点算出部３０５は、光線６０１と初期形状の交点数をカウントし、交点数が３個以上の場合（Ｓ４０６でＹｅｓ）は、ステップＳ４０７に進む。一方、交点数が２個以下の場合（Ｓ４０６でＮｏ）は、ステップＳ４１０に進む。
【００３７】
ステップＳ４０７において、評価値算出部３０６は、ステップＳ４０５で算出した各交点におけるボクセルの可視判定を行うための評価値を算出する。具体的には、評価値算出部３０６は、画像取得部３０３が取得した撮像画像の画素値情報から、交点であるボクセル６０２と６０４の評価値を算出する。この評価値の算出方法の詳細については後述する。なお、可視性判定は、対象となるカメラにより観察されるか否かの判定、つまり、対象となるカメラによって撮像される点又は領域であるか否かの判定である。
【００３８】
ステップＳ４０８において、形状除去部３０７は、ボクセル６０２と６０４の評価値を比較し、差分が閾値以上であるかを判定する。その判定の結果、閾値以上である場合（Ｓ４０８でＹｅｓ）は、ステップＳ４０９に進む。一方、閾値を下回る場合（Ｓ４０６でＮｏ）は、ステップＳ４１０に進む。このステップＳ４０７、Ｓ４０８の処理は、カメラ５１２から観察される初期形状の表面がボクセル６０２と６０４のどちらの可能性が高いかを判定していることに相当する。
【００３９】
ステップＳ４０９において、ボクセル６０２と６０３を結ぶ線上にあるボクセルをすべて除去する。
【００４０】
ステップ４１０において、カメラ５１２の画角範囲内で光学中心から全光線について、ステップＳ４０５〜Ｓ４０９の処理を完了した場合（Ｓ４１０でＹｅｓ）は、ステップ４１２に進む。一方、カメラ５１２の画角範囲内で光学中心から全光線について、ステップＳ４０５〜Ｓ４０９の処理を完了していない場合（Ｓ４１０でＮｏ）は、ステップＳ４１１に進む。
【００４１】
ステップＳ４１１において処理対象の光線を変更する。その後、ステップＳ４０５〜Ｓ４０９の処理を行う。
【００４２】
ステップＳ４１２において、形状除去部３０７は、すべてのカメラに対して処理したかを判定する。すべてのカメラに対して処理が完了している場合（Ｓ４１２でＹｅｓ）は、画像処理装置２００の処理を終了する。完了していない場合（Ｓ４１２でＮｏ）は、ステップＳ４１３において処理対象のカメラを変更し、ステップＳ４０５に戻る。
【００４３】
（評価値算出方法）
ステップ４０７の評価値の算出方法について、カメラ５１２を処理対象カメラとして説明する。他のカメラについても同様である。本実施形態では、初期形状５２２の余分な部分を除去するため、以下の評価値を利用する。すなわち、カメラ５１２の光線６０１上において、カメラ５１２に近い順に、初期形状の表面との交点に番号をふった場合に、１番目の交点であるボクセル６０２と３番目の交点であるボクセル６０４における画素値情報を用いた評価値を利用する。図６では、交点数が４点の場合を示しているが、交点数が３以上の場合は、交点数に限らずカメラから近い順に１番目と３番目の交点の評価値を利用する。なお、上述したように、交点数が２点以下の場合には、この処理は行われない。
【００４４】
まず、評価値算出部３０６は、ボクセル６０２、６０４に対して全カメラを対象に可視判定を行う。可視判定では、初期形状におけるボクセルＰの３次元座標を（ｘ，ｙ，ｚ）とした場合、ボクセルＰからカメラｊの光学中心に飛ばした直線が、初期形状の別のボクセルと交差しない場合に、ボクセルＰがカメラｊから観察されていると判定する。また、その直線が初期形状の別のボクセルと交差する場合は、ボクセルＰはカメラｊから観察されないと判定する。
【００４５】
なお、ボクセルの可視判定は他の方法を用いて行われてもよい。例えば、ボクセルの可視判定はデプスマップを用いて行われてもよい。デプスマップは、カメラｊから最近傍のボクセルＰまでの距離を画素ごとに格納したデータである。ボクセルＰをカメラｊに射影したときの画像座標を（ｕｊ（Ｐ），ｖｊ（Ｐ））としたとき、ボクセルＰをカメラｊに射影して得られたデプス値ｄとカメラｊにおけるデプスマップのデプス値Ｄ（ｕｊ（Ｐ），ｖｊ（Ｐ））を比較する。ｄがＤ（ｕｊ（Ｐ），ｖｊ（Ｐ））より大きければ、ボクセルＰは、カメラｊから観察されないと判定する。
【００４６】
次に、ボクセルＰに対する評価値は、ボクセルＰを観察していると判定されたカメラのみを用いてＳＳＤ（Ｓｕｍ  ｏｆ  Ｓｑｕａｒｅｄ  Ｄｉｆｆｅｒｅｎｃｅｓ）を用いて算出する。なお、評価値は、ＳＡＤ（Ｓｕｍ  ｏｆ  Ａｂｓｏｌｕｔｅ  Ｄｉｆｆｅｒｅｎｃｅｓ）、ＮＣＣ（正規化相互相関）などを用いて算出を行ってもよいし、そのほかの評価値を用いても構わない。本実施形態では、ＳＳＤを用いるものとし、以下の式で算出する。ボクセルＰをカメラｊに射影した場合の画像座標を（ｕｊ（Ｐ），ｖｊ（Ｐ））で表すものとすると、処理対象カメラｉ（カメラ５１２）に対するボクセルＰのＳＳＤの平均値は以下の式１で定義される。
【００４７】
【数１】
2020149163.tif 000003
【００４８】
ここで、Σｊは、ボクセル６０２を観察していると判定されたカメラｊに関する和を表し、ｎｉはボクセル６０２を観察していると判定されたカメラの台数を表す。また、Ｉ（ｕ，ｖ）は画像座標（ｕ，ｖ）における画素値を表す。
【００４９】
評価値算出部３０６は、ボクセル６０２、６０４のそれぞれに対して、式１に基づいて評価値を算出する。そして、評価値算出部３０６は、指標値（＝（ボクセル６０２のＳＳＤの平均値）−（ボクセル６０４のＳＳＤの平均値））を算出する。
【００５０】
この指標値が、閾値を超えることは、ボクセル６０２とボクセル６０４のうちボクセル６０４が真の３次元形状データの表面の可能性が高いことを意味する。そのため、この指標値が閾値を超えた場合、ステップＳ４０９において、形状除去部３０７は、ボクセル６０２と６０４を結ぶ線分上にあるボクセルを除去する。つまり、形状除去部３０７は、ボクセル６０４とカメラ５１２の光学中心とを通る直線上にある初期形状のボクセルのうち、ボクセル６０４よりカメラ５１２に近いボクセルを除去する。
【００５１】
なお、画素値が８ｂｉｔで表現されている場合、閾値として例えば１００（＝１０２）という値を設定することができる。この閾値は、他の値でも構わない。閾値を大きめに設定しておくことにより、ボクセルを誤って除去することを防止することができる。
【００５２】
また、形状除去部３０７は、（ボクセル６０２のＳＳＤの平均値）と（ボクセル６０４のＳＳＤの平均値）の大小関係を求めて、それに基づいて、ボクセルを除去するかを判定してもよい。具体的には、形状除去部３０７は、（ボクセル６０２のＳＳＤの平均値）が（ボクセル６０４のＳＳＤの平均値）より大きい場合、ボクセル６０４が真の３次元形状データの表面の可能性が高いとして、ボクセルを除去するように判定してもよい。除去するボクセルは、上述したようにボクセル６０２と６０４を結ぶ線分上にあるボクセルである。
【００５３】
本実施形態によれば、初期形状の交点に基づき、削る領域を特定することで、不要な部分を除去することができ、高精度な３次元形状データを取得することができる。また、本実施形態によれば、誤って胴体部分を除去することを抑制することもできる。
【００５４】
［実施形態２］
本実施形態では、被写体の３次元形状データの厚みに応じて、反復的に表面を削る処理について説明する。本実施形態に係る画像処理装置７００の機能構成例を図７に示す。また、図８は、画像処理装置７００が行う処理例のフローチャートである。なお、実施形態１と同一の機能ブロック、および処理に関しては、説明を省略する。また、本実施形態に係る画像処理装置７００のハードウェア構成例は図２と同様のため、説明を省略する。
【００５５】
画像処理装置７００は、シルエット取得部３０１、カメラパラメータ取得部３０２、画像取得部３０３、形状生成部３０４、形状幅算出部７０１、表面特定部７０２、評価値算出部７０３、形状除去部７０４を備える。画像処理装置７００は、ＣＰＵ２０１がＲＯＭ２０３内に格納された制御プログラムを読み込み実行することで、上記各部の機能を実現することができる。なお、画像処理装置７００は、図７に示す構成部の１以上に相当する専用の処理回路を備えていてもよい。以下、各構成部により行われる、本実施形態に係る処理の流れを、図８を用いて説明する。
【００５６】
ステップＳ８０１〜Ｓ８０４については、実施形態１で説明したＳ４０１〜Ｓ４０４と同様の処理である。
【００５７】
ステップＳ８０５において、形状幅算出部７０１は、初期形状の大きさを算出する。初期形状の大きさは、部分形状ごとに算出する。例えば、図５の例では、初期形状５２１〜５２３ごとに形状の大きさを算出するものとする。初期形状の大きさは、例えば初期形状５２１に属する２個のボクセル間の距離の最大値とするが、これに限られない。形状の大きさを記述することができる指標であれば、形状の体積など他の値でもよい。例えば、初期形状の表面ボクセル間の距離の平均値を用いてもよい。また、２個の表面ボクセル間の距離は、所定の断面（フィールドに平行な断面）における２個の表面ボクセル間の距離であってもよいし、特定の条件を満たす２個の表面ボクセルの間の距離であってもよい。表面ボクセルの特定方法については後述する。部分形状の特定の仕方としては、３次元空間上でのラベリングを用いることができる。つまり、図５では、初期形状５２１〜５２３を異なる形状としてそれぞれラベルを付与する。なお、部分形状を特定できる手法であれば、別の手法でも構わない。例えば、所定の断面（フィールドに平行な断面）において、２つ以上の形状に分離されるものを、それぞれ部分形状として特定する手法がある。
【００５８】
ステップＳ８０６において、形状幅算出部７０１が、ステップ８０５で算出された初期形状の大きさに基づき、表面ボクセルを除去する処理の処理回数を設定する。つまり、表面ボクセルを除去する処理を行う処理回数の設定は、３次元形状データの表面を何層削るかを設定することに相当する。また、初期形状の大きさが閾値（例えば５０ｍｍ）未満の場合は、初期形状を削らないようにし、閾値以上の場合のみ、設定した処理回数で処理対象となる３次元形状データの表面を除去する。初期形状の大きさが閾値未満の場合には、これ以降の処理を行わず、処理を終了する。
【００５９】
例えば、除去する厚みの上限を５０ｍｍに設定した場合、ボクセルの一辺を５ｍｍとすると、除去する処理の処理回数を５０÷５＝１０回と算出することができる。これ以外の方法で処理回数を決めてもよい。例えば、初期形状の大きさに比例して処理回数を決めてもよい。
【００６０】
ステップＳ８０７において、表面特定部７０２は、３次元形状データの表面ボクセルを特定する。表面ボクセルの特定方法としては、以下の方法がある。すなわち、３次元形状データを構成するボクセルの隣接格子点に位置するボクセルであって、同じ３次元形状データを構成するボクセルの数をカウントし、隣接ボクセル数が閾値以下であれば、表面ボクセルと特定する方法である。３次元格子点では、斜め方向も含めると隣接格子数は最大２６個であるため、例えば閾値として２０を設定してもよいが、閾値はこれに限られない。
【００６１】
また、表面ボクセルの特定方法としては、３次元形状データを構成するボクセルから各カメラに光線を飛ばして各カメラに対する可視性判定を行い、一台以上のカメラから観察されると判定されたボクセルを表面ボクセルとしてもよい。なお、表面ボクセルを特定できれば、上記の方法以外の方法でもよい。
【００６２】
ステップＳ８０８において、評価値算出部７０３は、表面ボクセルに対して画素値情報を用いた評価値を算出する。実施形態１と同様、評価値としてはＳＳＤ、ＳＡＤ、ＮＣＣ等を用いることが可能である。本実施形態ではＳＳＤを用いる場合について説明する。実施形態１と同様、ボクセルの可視判定を行い、下記式に基づいてＳＳＤの平均値を算出する。
【００６３】
【数２】
2020149163.tif 000004
【００６４】
ここで、ｉ、ｊはボクセルＰを観察していると判定されたカメラの番号を表している。Σは、ｉ＝ｊの場合を除外して和をとるものとする。Ｎは（ｉ，ｊ）の組み合わせの総数である。また、Ｉ（ｕ，ｖ）は画像座標（ｕ，ｖ）における画素値を表すものとする。
【００６５】
ステップＳ８０９において、形状除去部７０４は、評価値の値が閾値以上（例えば１００以上）であるかを判定する。評価値の値が閾値以上である場合（Ｓ８０９でＹｅｓ）は、ステップＳ８１０に進む。一方、評価値の値が閾値を下回る場合（Ｓ８０９でＮｏ）は、ステップＳ８１１に進む。
【００６６】
ステップＳ８１０において、形状除去部７０４は、評価値を算出した表面ボクセルを除去する。
【００６７】
ステップＳ８１１において、形状除去部７０４は、ステップＳ８０７で特定された表面ボクセルすべてに対して処理が完了したかを判定する。処理が完了している場合（Ｓ８１１でＹｅｓ）は、ステップＳ８１２に進む。一方、処理が完了していない場合（Ｓ８１１でＮｏ）は、ステップＳ８０８に戻り、処理が完了していない表面ボクセルに対して、Ｓ８０４〜Ｓ８０６の処理を行う。
【００６８】
ステップＳ８１２において、形状除去部７０４は、ステップＳ８０６で算出した処理回数に達したかを判定する。処理回数に達している場合（Ｓ８１２でＹｅｓ）は、画像処理装置７００の処理を終了する。
【００６９】
一方、処理回数に達していない場合（Ｓ８１２でＮｏ）は、ステップＳ８０７に戻る。ステップＳ８０７に戻ると、表面特定部７０２は、形状除去部７０４により一部が除去された３次元形状データを新たに処理対象の３次元形状データとして、その３次元形状データの表面ボクセルを特定する。そして、評価値算出部７０３によるステップＳ８０８の処理、形状除去部７０４によるステップＳ８０９〜Ｓ８１２の処理を行う。
【００７０】
以上のように、初期形状の大きさに基づいて、表面ボクセルを除去するか否か、また除去する処理回数を設定することにより、厚みが薄い被写体や大きさが小さい被写体を誤って除去することを抑制し、３次元形状データを高精度に補正することができる。
【００７１】
［実施形態３］
本実施形態では、シルエット画像に欠損が存在する場合の例を説明する。図９は、シルエット画像の概念図である。図９（ａ）は、人物を表すシルエット画像に穴（欠損）がある例を示している。視体積交差法により、高精度な３次元形状データを得るためには、シルエット画像における被写体の輪郭精度を高精度に取得する必要がある。一方で、被写体の輪郭情報の高精度な再現と画素値誤差などに対するロバスト性は一般にトレードオフ関係にあるため、シルエット画像に穴あきなどの欠損が生じる可能性が増加する。視体積交差法では、図９（ａ）で示すように、複数の方向におけるシルエット画像のうちの穴９０１が開いたシルエット画像があると、生成される３次元形状データにおいて貫通した穴があいてしまうという問題がある。
【００７２】
図９（ｂ）は、その問題を抑制するために、図９（ａ）のシルエット画像を膨張・収縮処理などを行うことにより、穴９０１を埋めて新たに生成したシルエット画像である。穴を埋める手法は、膨張・収縮処理以外の手法でもよい。また、本実施形態において膨張処理のみを行ってもよい。
【００７３】
一般に、穴を埋めることにより、図９（ｂ）のシルエット画像の被写体輪郭の精度は、図９（ａ）のシルエット画像よりも劣化する。そのため、図９（ｂ）を用いて生成される３次元形状データの輪郭における精度は、図９（ａ）のシルエット画像を用いて生成される３次元形状データの輪郭における精度よりも低い。本実施形態では、図９（ａ）のシルエット画像を用いた場合の３次元形状データの輪郭精度を維持しつつ、シルエット画像における欠損による影響を抑制する手法について説明する。
【００７４】
図１０は、本実施形態に係る画像処理装置１０００の機能構成例を示す図である。また、図１１は、画像処理装置１０００が行う処理例のフローチャートである。なお、実施形態１又は２と同一の機能ブロック、および処理に関しては、説明を省略する。また、本実施形態に係る画像処理装置１０００のハードウェア構成例は図２と同様のため、説明を省略する。
【００７５】
画像処理装置１０００は、第一シルエット取得部１００１、カメラパラメータ取得部３０２、第二シルエット取得部１００２、形状生成部３０４、形状幅算出部７０１、表面特定部７０２、形状除去部１００３を備える。画像処理装置１０００は、ＣＰＵ２０１がＲＯＭ２０３内に格納された制御プログラムを読み込み実行することで、上記各部の機能を実現することができる。なお、画像処理装置１０００は、図１０に示す構成部の１以上に相当する専用の処理回路を備えていてもよい。以下、各構成部により行われる、本実施形態に係る処理の流れを、図１１を用いて説明する。
【００７６】
ステップＳ１１０１において、第一シルエット取得部１００１は、第一シルエット画像を取得する。第一シルエット画像は、図９（ｂ）で示したような欠損を修正したシルエット画像である。
【００７７】
ステップ１１０２、Ｓ１１０３はそれぞれ、実施形態１で説明したステップＳ４０２、Ｓ４０３と同様である。
【００７８】
ステップＳ１１０４において、第二シルエット取得部１００２は、第二シルエット画像を取得する。ここで、第二シルエット画像は、図９（ａ）で示したような穴あきなどの欠損が存在するシルエット画像である。ステップＳ１１０４は、ステップＳ１１０３より前に行われてもよい。
【００７９】
ステップＳ１１０５〜Ｓ１１０７はそれぞれ、実施形態２で説明したステップＳ８０５〜Ｓ８０７と同様である。
【００８０】
ステップＳ１１０８において、形状除去部１００３は、ステップＳ１１０７で特定した処理対象の３次元形状データの表面ボクセルを、各カメラの第二シルエット画像に射影する。
【００８１】
ステップＳ１１０９において、形状除去部１００３は、まず視体積交差法と同様の手法で、表面ボクセルの射影先が、ある一つの第二シルエット画像のおけるシルエット領域の外であるか否かの判定を行う。具体的には、以下のとおりである。表面ボクセルＰをカメラｊに射影し、射影した画素の画像座標を（ｕｊ（Ｐ），ｖｊ（Ｐ））、第二シルエット画像の画素値をＳ（ｕｊ（Ｐ），ｖｊ（Ｐ））とする。そして、Ｓ（ｕｊ（Ｐ），ｖｊ（Ｐ））＝０である場合、形状除去部１００３は、表面ボクセルＰが第二シルエット画像におけるシルエット領域の外に射影されたと判定する。一方、Ｓ（ｕｊ（Ｐ），ｖｊ（Ｐ））＝２５５である場合、形状除去部１００３は、表面ボクセルＰが第二シルエット画像におけるシルエット領域に射影されたと判定する。
【００８２】
形状除去部１００３は、残りのシルエット画像に対しても同様に表面ボクセルの射影を行い、表面ボクセルがシルエット領域の外に射影されたか否かの判定を行う。次に、形状除去部１００３は、表面ボクセルがシルエット領域の外に射影されと判定される第二シルエット画像が一つ以上あるか否かを判定する。なお、この処理は、表面ボクセルＰを、各カメラの第二シルエット画像に対して、順番にシルエット領域の外に射影されたか否かを判定し、シルエット領域の外に射影されたと判定した時点で終了してもよい。表面ボクセルがシルエット領域の外に射影された判定される第二シルエット画像が一つ以上あると判定された場合（Ｓ１１０９でＹｅｓ）には、ステップＳ１１１０に進む。一方、表面ボクセルがシルエット領域の外に射影された判定される第二シルエット画像が一つ以上あると判定されなかった場合（Ｓ１１０９でＮｏ）、ステップＳ１１１１に進む。
【００８３】
ステップＳ１１１０において、形状除去部１００３は、シルエット領域の外に射影された判定される第二シルエット画像が一つ以上あると判定された表面ボクセルを除去する。
【００８４】
ステップＳ１１１１、Ｓ１１１２はそれぞれ、実施形態２で説明したステップＳ８１１、Ｓ８１２と同様である。
【００８５】
通常の視体積交差法では、第二シルエット画像の穴あき領域に射影されるボクセルは全て除去対象となり、３次元形状データに貫通した穴が開いてしまう。それに対して、本実施形態では、穴あきを修正した第一シルエット画像を用いて３次元形状データを生成し、その表面のみを除去している。そのため、３次元形状データに貫通した穴が開くことがなく、高精度な３次元形状データを得ることができる。
【００８６】
（その他の実施形態）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００８７】
２００  画像処理装置
３０４  形状生成部
３０７  形状除去部
【図１】
2020149163.tif 000005
【図２】
2020149163.tif 000006
【図３】
2020149163.tif 000007
【図４】
2020149163.tif 000008
【図５】
2020149163.tif 000009
【図６】
2020149163.tif 000010
【図７】
2020149163.tif 000011
【図８】
2020149163.tif 000012
【図９】
2020149163.tif 000013
【図１０】
2020149163.tif 000014
【図１１】
2020149163.tif 000015