(57)【要約】【課題】三次元モデルを生成する際の計算負荷を軽減する。【解決手段】複数のカメラを用いて取得された複数のカメラ画像に基づいて三次元モデルを生成する情報処理装置は、三次元モデルの生成の対象となる対象三次元空間を分割して得られた複数の処理単位ボクセルのうちの一つの処理単位ボクセルから特定される複数の代表座標を、カメラ画像における二次元の座標に変換し、複数の代表座標の、対象三次元空間における位置関係とカメラ画像における位置関係とに基づいて、一つの処理単位ボクセルの内部の座標に対応するカメラ画像における座標を決定し、決定された一つの処理単位ボクセルの座標に対応するカメラ画像における座標に基づいて、三次元モデルを生成する。【選択図】  図１Ａ
2018133059.tif 000002
【特許請求の範囲】
【請求項１】
複数のカメラを用いて取得された複数のカメラ画像に基づいて三次元モデルを生成する情報処理装置であって、
三次元モデルの生成の対象となる対象三次元空間を分割して得られた複数の処理単位ボクセルのうちの一つの処理単位ボクセルから特定される複数の代表座標を、カメラ画像における二次元の座標に変換する変換手段と、
前記複数の代表座標の、前記対象三次元空間における位置関係と前記カメラ画像における位置関係とに基づいて、前記一つの処理単位ボクセルの内部の座標に対応する前記カメラ画像における座標を決定する決定手段と、
前記決定手段により決定された前記一つの処理単位ボクセルの座標に対応する前記カメラ画像における座標に基づいて、三次元モデルを生成する生成手段とを備えることを特徴とする情報処理装置。
【請求項２】
三次元モデルを構成する物体領域とそれ以外の領域を識別するシルエット画像を入力する入力手段と、
前記一つの処理単位ボクセルを分割して得られたモデルボクセルに関わる位置の、前記決定手段により決定された前記カメラ画像における座標と、前記シルエット画像に基づいて、前記モデルボクセルが前記物体領域の三次元モデルを構成するボクセルか否かを判定する判定手段とを備え、
前記生成手段は、前記判定手段の判定結果に基づいて、前記三次元モデルを生成することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記変換手段は、前記複数の代表座標の前記対象三次元空間における座標を、行列変換と透視投影変換によって前記カメラ画像の座標へ変換することを特徴とする請求項１または２に記載の情報処理装置。
【請求項４】
前記決定手段は、前記対象三次元空間の座標を行列変換と透視投影変換によって前記カメラ画像の座標に変換する行列計算を実行する機能を有し、
前記一つの処理単位ボクセルと前記一つの処理単位ボクセルを分割して得られたモデルボクセルのサイズの関係に基づいて、近似計算と行列計算の一方を選択する選択手段を備えることを特徴とする請求項１乃至３のいずれか１項に記載の情報処理装置。
【請求項５】
前記選択手段は、
前記一つの処理単位ボクセルのサイズに対する前記モデルボクセルのサイズの比率が上限閾値を超える場合、および、前記比率が前記上限閾値よりも小さい下限閾値を下回る場合に前記行列計算を選択し、
他の場合に前記近似計算を選択することを特徴とする請求項４に記載の情報処理装置。
【請求項６】
前記決定手段は、前記複数の代表座標の変換結果から、前記対象三次元空間におけるｘ座標、ｙ座標、ｚ座標の移動量のそれぞれについて、前記カメラ画像におけるｕ座標とｖ座標の移動量への変換係数を算出し、前記変換係数を用いて、前記対象三次元空間における任意座標の前記カメラ画像における座標を算出することを特徴とする請求項１乃至５のいずれか１項に記載の情報処理装置。
【請求項７】
前記複数の代表座標は、ｘ座標のみが異なる座標のペア、ｙ座標のみが異なる座標のペア、ｚ座標のみが異なる座標のペアを含むことを特徴とする請求項６に記載の情報処理装置。
【請求項８】
前記複数の代表座標は、４つの座標からなること、を特徴とする請求項７に記載の情報処理装置。
【請求項９】
前記決定手段は、前記対象三次元空間において代表座標の間で所定の長さの線分を平行移動した場合の前記カメラ画像における前記線分の長さの変化を前記変換係数に加味することを特徴とする請求項６に記載の情報処理装置。
【請求項１０】
前記複数の代表座標は、ｘ座標が同一の４つの座標グループ、ｙ座標が同一の４つの座標グループ、ｚ座標が同一の４つの座標グループを含むことを特徴とする請求項９に記載の情報処理装置。
【請求項１１】
前記複数の代表座標は、６つの座標からなることを特徴とする請求項１０に記載の情報処理装置。
【請求項１２】
前記代表座標は、前記一つの処理単位ボクセルの複数の頂点の座標で構成されることを特徴とする請求項１乃至１１のいずれか１項に記載の情報処理装置。
【請求項１３】
複数のカメラを用いて取得された複数のカメラ画像に基づいて三次元モデルを生成するための生成方法であって、
三次元モデルの生成の対象となる対象三次元空間を分割して得られた複数の処理単位ボクセルのうちの一つの処理単位ボクセルから特定される複数の代表座標を、カメラ画像における二次元の座標に変換する変換工程と、
前記複数の代表座標の前記対象三次元空間における位置関係と前記カメラ画像における位置関係とに基づいて、前記一つの処理単位ボクセルの内部の座標に対応する前記カメラ画像における座標を決定する決定工程と、
前記決定工程により決定された前記一つの処理単位ボクセルの座標に対応する前記カメラ画像における座標に基づいて、三次元モデルを生成する生成工程とを備えることを特徴とする三次元モデルの生成方法。
【請求項１４】
コンピュータを、請求項１乃至１２のいずれか１項に記載された情報処理装置の各手段として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、被写体を複数の方向から撮影する複数のカメラから得られた画像に基づいて三次元モデルを生成する情報処理装置及び三次元モデルの生成方法に関する。
【背景技術】
【０００２】
三次元モデルの生成方法の一つとして視体積交差法が知られている。非特許文献１では、複数のカメラで撮影された測定対象空間を小さな立方体ないし直方体（以降ボクセルと表現する）で分割する。さらに各ボクセルを幾何学的に変換し、カメラの画像に投影し、カメラ画像においてモデル化対象物体のシルエット内か否かを判定する。ボクセルがすべてのカメラ画像でシルエット内と判定された場合、そのボクセルは対象物体を構成するボクセルとして登録する。各ボクセルについて判定を終えると、対象物体を構成するボクセルとして登録されたボクセルを三次元モデルとして出力する。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】「Virtual View generation for 3D Digital Video」（IEEE MULTIMEDIA Vol. 4 No. 1 pp. 18-26, 1997年）
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、非特許文献１のようにボクセルを幾何学的に変換し、カメラ画像に投影する場合、以下に説明するように非常に大きな計算負荷がかかる。そのため、モデルを生成するためには非常に多くの時間を要することになる。また、高速にモデルを生成しようとすると、装置のコストが大きくなってしまう。
【０００５】
測定対象空間の三次元空間を世界座標系とし、カメラ座標系をカメラの光軸方向をｚ軸、カメラの垂直上方向をｙ軸、カメラの右方向をｘ軸とする。世界座標系の座標値を、カメラ画像の座標に変換するためには、一般に下記（１）、（２）式による計算が必要となる。まず、（１）式により世界座標系の座標値（Ｘｗ，Ｙｗ，Ｚｗ）がカメラ座標系の座標値（Ｘｃ，Ｙｃ，Ｚｃ）に変換される。回転行列Ｒは世界座標系におけるカメラの姿勢によって定まり、並進ベクトルｔは世界座標系におけるカメラの位置によって定まる。なお、回転行列Ｒは、３×３の行列である。
【数１】
2018133059.tif 000003
【０００６】
次に、（２）式の透視投影変換により、カメラ座標系の三次元座標（Ｘｃ，Ｙｃ，Ｚｃ）をカメラ画像の二次元座標（ｕ，ｖ）に変換する。
【数２】
2018133059.tif 000004
【０００７】
以上のように、世界座標系の座標からカメラ座標系の座標を求めるのに、（１）式で９回の乗算が必要であり、（２）式で２回の除算が必要である。このように、三次元座標からカメラ画像の座標への変換には、ｘ、ｙ、ｚの座標毎に乗算と除算が必要となり、コストが大きくなる。
【０００８】
本発明は、上記の課題に鑑みてなされたものであり、その目的は、三次元モデルを生成する際の計算負荷を軽減することである。
【課題を解決するための手段】
【０００９】
上記の目的を達成するための本発明の一態様による情報処理装置は以下の構成を備える。すなわち、複数のカメラを用いて取得された複数のカメラ画像に基づいて三次元モデルを生成する情報処理装置であって、三次元モデルの生成の対象となる対象三次元空間を分割して得られた複数の処理単位ボクセルのうちの一つの処理単位ボクセルから特定される複数の代表座標を、カメラ画像における二次元の座標に変換する変換手段と、前記複数の代表座標の、前記対象三次元空間における位置関係と前記カメラ画像における位置関係とに基づいて、前記一つの処理単位ボクセルの内部の座標に対応する前記カメラ画像における座標を決定する決定手段と、前記決定手段により決定された前記一つの処理単位ボクセルの座標に対応する前記カメラ画像における座標に基づいて、三次元モデルを生成する生成手段とを備える。
【発明の効果】
【００１０】
本発明によれば、三次元モデルを生成する際の計算負荷が軽減される。
【図面の簡単な説明】
【００１１】
【図１Ａ】第一実施形態の三次元モデル生成装置の機能構成例を示すブロック図。
【図１Ｂ】三次元モデル生成装置のハードウエア構成例を示すブロック図
【図２】入力データを取得するためのシステム例を示した図。
【図３】シルエット画像の例を示した図。
【図４】対象三次元空間、処理単位ボクセル、モデルボクセルを表現した模式図。
【図５】処理単位ボクセルの代表座標のカメラ画像への変換結果を例示した図。
【図６】シルエット画像へのボクセルの頂点の変換と探索領域を表す図。
【図７】ボクセルの判定処理を表すフローチャート。
【図８】三次元モデル生成処理を表すフローチャート。
【図９】第二実施形態の三次元モデル生成装置の機能構成例を示すブロック図。
【図１０】処理単位ボクセルの代表座標のカメラ画像への変換結果を例示した図。
【図１１】近似計算に用いるカメラ画像における座標とその座標間の距離を示した図。
【発明を実施するための形態】
【００１２】
以下、添付の図面を参照して本発明の実施形態のいくつかを説明する。
【００１３】
＜第一実施形態＞
第一実施形態の三次元モデル生成装置は、カメラごとのモデル化される対象物体のシルエット画像に基づいて、視体積交差法を用いて三次元モデルを生成する。第一実施形態では、ボクセル毎の三次元座標を各カメラのシルエット画像上のピクセル座標に変換する際、代表座標を射影変換し、残りの任意の座標は近似計算によって求めることにより、計算負荷を軽減する。なお、本実施形態においてボクセルとは、複数のカメラで撮影される対象三次元空間の分割単位である。各ボクセルは、立方体であっても良いし、直方体であっても良いし、その他の形状であっても良い。
【００１４】
図１Ａは、第一実施形態における三次元モデル生成装置１０の機能構成例を示すブロック図である。また、図１Ｂは、三次元モデル生成装置１０としての情報処理装置のハードウエア構成例を示すブロック図である。図２は第一実施形態における三次元モデル生成装置１０の入力データを取得するための撮影システムを説明する図である。
【００１５】
図２に示されるように、複数のカメラ１１〜１８が、三次元モデル生成の対象空間を含む空間を撮像する。撮像により取得された各カメラ画像を加工した画像データと、各カメラの情報が三次元モデル生成装置１０の入力データとして使用される。なお、図２では、複数のカメラとして８台のカメラが示されているが、カメラの台数がこれに限られるものではないことはいうまでもない。入力データの詳細については後述する。
【００１６】
図１Ｂに示されるように、本実施形態の三次元モデル生成装置１０は、情報処理装置により構成される。情報処理装置としては一般的な汎用コンピュータを用いることができる。ＣＰＵ２１は、ＲＯＭ２２またはＲＡＭ２３に格納されたプログラムを実行することにより情報処理装置の全体を制御する。たとえば、ＣＰＵ２１は、記憶装置２５に格納されている所定のプログラムをＲＡＭ２３にロードし、ＲＡＭ２３にロードされたプログラムを実行することにより後述する三次元モデル生成装置１０としての各機能を実現する。ＲＯＭ２２は読み取り専用の不揮発性メモリである。ＲＡＭ２３は、随時読み書きが可能なメモリである。表示装置２４は、ＣＰＵ２１の制御下で種々の表示を行う。
【００１７】
記憶装置２５はたとえばハードディスクなどで構成される大容量の記憶装置である。記憶装置２５は、カメラ１１〜１８により得られたカメラ画像を記憶することができる。入力装置２６は、情報処理装置への種々のユーザ入力を受け付ける。インターフェース２７は、外部装置と接続するためのインターフェースであり、本実施形態では、複数のカメラが接続される。なお、カメラ１１〜１８の接続は、ＬＡＮなどのネットワークを介して接続されてもよい。その場合、インターフェース２７は、ネットワークインターフェースとして機能する。バス２８は上述の各構成を相互に通信可能に接続する。なお、本実施形態では、ＣＰＵ２１が所定のプログラムを実行することにより以下に説明する三次元モデル生成装置１０の各機能を実現するものとするがこれに限られるものではない。たとえば、三次元モデル生成装置１０の各機能は、ソフトウエアと専用ＩＣなどのハードウエアとの協働で実現されてもよいし、一部またはすべての機能がハードウエアのみで実現されてもよい。
【００１８】
図１Ａは、複数のカメラを用いて取得された複数のカメラ画像に基づいて三次元モデルを生成する三次元モデル生成装置１０の機能構成例を示している。図１Ａにおいて、対象空間設定部１００は、三次元モデルを生成する対象となる三次元の空間（対象三次元空間）を設定する。例えば、図２では、ｘ軸の−２０００ｍｍ〜２０００ｍｍ、ｙ軸の−２０００ｍｍ〜２０００ｍｍ、ｚ軸の０ｍｍ〜３０００ｍｍの範囲を含む直方体が対象三次元空間として設定されている。ただし、対象三次元空間はこのサイズに限定されない。また、このとき設定された三次元空間の座標を表現する座標系を世界座標系と呼称する。設定された三次元空間の座標範囲情報は処理単位ボクセル分割部１０３に出力される。なお、対象三次元空間は、入力データを取得するためのシステムにおいて、複数のカメラで撮像可能な範囲をユーザが指定するものとする。
【００１９】
カメラパラメータ入力部１０１は、対象三次元空間を撮影したカメラ１１〜１８の各々からパラメータを入力し、カメラパラメータを代表座標変換部１０５に出力する。ここでカメラパラメータとは、世界座標系におけるカメラの三次元位置、光軸方向ベクトル、カメラ画面下方向ベクトル、焦点距離、画像中心を含んで構成されるパラメータ群である。
【００２０】
シルエット画像入力部１０２は、各カメラ画像のシルエット画像を入力する。シルエット画像とは、モデル生成の対象となる物体領域を白、それ以外の背景領域を黒画素で表現することにより、物体領域とそれ以外の領域を識別したものである。ただし、物体領域と背景領域の白・黒はこれに限定されず、逆でも構わない。図３で例示するシルエット画像は、人物が３人映っている画像をシルエット画像に加工したものである。カメラ画像からシルエット画像を生成する方式としては、例えば物体がないときに撮影した画像と、物体があるときに撮影した画像を比較することにより物体領域と背景領域を識別する背景差分法がある。もちろんシルエット画像を生成する方法はこれに限られるものではなく、時間差異のある複数の画像を用いて相関を取って物体領域を検出する方法、エッジを抽出する方法など、いかなる方法が用いられてもよい。
【００２１】
処理単位ボクセル分割部１０３は、対象空間設定部１００が設定した空間を、複数の処理単位ボクセルに分割する。処理単位ボクセルの情報は代表座標決定部１０４とモデルボクセル分割部１０６に出力される。ここで、処理単位ボクセルの情報は、ｘ、ｙ、ｚが最小の頂点座標と各辺の長さである。ただし、各辺の長さは全ての処理単位ボクセルで同じ値とし、各処理単位ボクセルの辺は、ｘ、ｙ、ｚ軸いずれかに平行となるように配置されるものとする。処理単位ボクセルのサイズは、あらかじめ設定されたサイズでも良いし、対象三次元空間の大きさや最終的に出力される三次元モデルを構成するボクセルのボクセルサイズなどに応じて決定されても良い。この最終的に出力される三次元モデルを構成するボクセルをモデルボクセルと呼ぶ。本実施形態では、出力されるモデルボクセルのサイズに応じて処理単位ボクセルが決定されるものとする。
【００２２】
図４は前記設定された対象三次元空間と、処理単位ボクセル、モデルボクセルを表現した模式図である。図４においては、処理単位ボクセル２０１などに分割される。処理単位ボクセルは、ここでは、各辺の長さが１０００ｍｍのボクセルであり、設定された対象三次元空間は、ｘ、ｙ軸方向に四分割、ｚ軸方向に三分割されている。ただし、処理単位ボクセルの分割数はこれに限定されない。
【００２３】
代表座標決定部１０４は、それぞれの処理単位ボクセルにおいて、対象空間の三次元座標をカメラの画像上の座標に変換するために用いる複数の代表座標を特定する。以下に説明するように近似計算部１０７は、対象三次元空間における各軸方向への移動量をカメラ画像における移動量に変換するための変換係数を算出する。したがって、ｘ座標のみが異なる座標のペア、ｙ座標のみが異なる座標のペア、ｚ座標のみが異なる座標のペアを含むように代表座標が取得される。本実施形態では、代表座標は処理単位ボクセルにおける下記４点を選択する。
（１）ｘ、ｙ、ｚが最小の点
（２）ｙ、ｚは最小、ｘは最大の点
（３）ｘ、ｚは最小、ｙは最大の点
（４）ｘ、ｙは最小、ｚは最大の点
本実施形態においては、処理単位ボクセルの頂点のうち４点を選択する例を記載したが、他の点を選択することも可能である。例えば、処理単位ボクセルの頂点ではなく、処理単位ボクセルの重心を用いて、４点を選択するようにしても構わないし、これに限定されない。決定された代表座標は、代表座標変換部１０５に出力される。
【００２４】
代表座標変換部１０５は、入力された処理単位ボクセルの代表座標（対象三次元空間における座標）を、カメラパラメータに基づいて、各カメラで撮影されたカメラ画像の座標（二次元の座標）に変換する。以後、対象三次元空間を表現する座標系を世界座標系と表現する。図２では、対象三次元空間の世界座標系における座標は（−２０００、−２０００、０）から（２０００、２０００、３０００）で表される。前述のカメラパラメータは世界座標系におけるカメラの位置や姿勢を示しているものとする。代表座標変換部１０５は、複数の代表座標の対象三次元空間における座標を行列計算と透視投影変換により計算する。
【００２５】
まず、代表座標変換部１０５は、カメラパラメータから導出された回転行列Ｒと並進ベクトルｔを用いることにより、世界座標系の座標値（Ｘｗ，Ｙｗ，Ｚｗ）をカメラ座標系の座標値（Ｘｃ，Ｙｃ，Ｚｃ）へ変換する。変換には、たとえば、前述した（１）式を用いることができる。次に、代表座標変換部１０５は、カメラ座標系の三次元座標（Ｘｃ，Ｙｃ，Ｚｃ）を透視投影変換によりカメラ画像の二次元座標（ｕ，ｖ）に変換する。変換には、たとえば、前述した（２）式を用いることができる。代表座標変換部１０５は、代表座標と、変換後のカメラ画像における座標の情報を近似計算部１０７に出力する。
【００２６】
モデルボクセル分割部１０６は、処理単位ボクセルを、あらかじめ設定された三次元モデルのモデルボクセルに分割する。モデルボクセルも処理単位ボクセルと同様、ｘ、ｙ、ｚ軸に平行となるように配置される。また、処理単位ボクセルはモデルボクセルで隙間なく埋められている。すなわち、処理単位ボクセルは、隙間なくモデルボクセルに分割される。モデルボクセル分割部１０６は、分割後のボクセル群情報を、近似計算部１０７に出力する。ボクセル群情報は、処理単位ボクセルのｘ、ｙ、ｚが最小の頂点座標と各辺の長さおよび、モデルボクセルの各辺のサイズである。
【００２７】
図４では、１０００ｍｍの立方体である処理単位ボクセル２０１を、１００ｍｍの立方体であるモデルボクセルに分割する様子が示されている。そのため、一つの処理単位ボクセルは、合計１０００個のモデルボクセルに分割される。なお、図４では簡単のため、すべてのモデルボクセルが記載されていないが、実際には、処理単位ボクセルのすべての領域がモデルボクセルによって分割される。
【００２８】
近似計算部１０７は、複数の代表座標の、対象三次元空間における位置関係からカメラ画像における位置関係への変化に基づいて、一つの処理単位ボクセルの内部の座標に対応するカメラ画像における座標を決定する近似計算を行う。以下、本実施形態による近似計算について説明する。
【００２９】
近似計算部１０７は、代表座標変換部１０５から受信した代表座標とカメラ画像における座標の情報に基づいて、世界座標系における三次元座標の移動量と、カメラ画像におけるピクセル移動量との間の変換係数を算出する。この変換係数は、対象空間を撮影するすべてのカメラを対象に算出される。図５は処理単位ボクセルの代表座標のカメラ画像への変換結果を例示した図である。以下、図５を用いて、三次元座標の移動量とカメラ画像におけるピクセル移動量との間の変換係数の算出方法を説明する。本実施形態では、近似計算部１０７は、複数の代表座標の変換結果から、対象三次元空間におけるｘ座標、ｙ座標、ｚ座標の移動量のそれぞれについて、カメラ画像におけるｕ座標とｖ座標の移動量への変換係数を算出する。そして、近似計算部１０７は、算出した変換係数を用いて、対象三次元空間における任意座標のカメラ画像における座標を算出（近似）する。以下、具体的に説明する。
【００３０】
図５において、処理単位ボクセルの代表座標３００を変換した結果が、カメラ画像上の変換後座標４００であるとする。以下、代表座標３０１と変換後座標４０１、代表座標３０２と変換後座標４０２、代表座標３０３と変換後座標４０３がそれぞれ対応するとする。代表座標３００（Ｘ１，Ｙ１，Ｚ１）と、代表座標３０１の座標値（Ｘ２，Ｙ１，Ｚ１）は、ｘ軸の値のみ異なり、ｙ軸、ｚ軸の値は同じである。変換後座標４０１（ｕｘ，ｖｘ）と変換後座標４００（ｕｂ，ｖｂ）の座標の差は、三次元空間においてｘ軸方向に移動することによって生じた差である。そこで三次元空間におけるｘ軸方向の移動量とカメラ画像上の座標の関係を算出できる。三次元空間におけるｘ軸の移動量１ｍｍあたりの、カメラ画像上のピクセル移動量ｄｕｘ、ｄｖｘは、下記（３）、（４）式で算出される。
【数３】
2018133059.tif 000005
【数４】
2018133059.tif 000006
【００３１】
同様の考え方により、三次元空間におけるｙ軸の移動量１ｍｍあたりの、カメラ画像上のピクセル移動量ｄｕｙ、ｄｖｙは、代表座標３００と代表座標３０２の座標値、及び変換後座標４００と変換後座標４０２の座標値から下記（５）、（６）式で算出される。
【数５】
2018133059.tif 000007
【数６】
2018133059.tif 000008
【００３２】
同様の考え方により、三次元空間におけるｙ軸の移動量１ｍｍあたりの、カメラ画像上のピクセル移動量ｄｕｚ、ｄｖｚは、代表座標３００と代表座標３０３の座標値、及び変換後座標４００と変換後座標４０３の座標値から下記（７）、（８）式で算出される。
【数７】
2018133059.tif 000009
【数８】
2018133059.tif 000010
【００３３】
これらの算出結果を用いて、対象三次元空間の任意座標３０４（Ｘ，Ｙ，Ｚ）を（９）、（１０）式により、カメラ画像上の座標である変換後座標４０４（ｕ，ｖ）に変換できる。なお、（Ｘ，Ｙ，Ｚ）は、（Ｘ１≦Ｘ≦Ｘ２），（Ｙ１≦Ｙ≦Ｙ２），（Ｚ１≦Ｚ≦Ｚ２）を満たす座標とする。
【数９】
2018133059.tif 000011
【数１０】
2018133059.tif 000012
【００３４】
これによると、従来例と比較し、ピクセル移動量の算出の計算コストが増加するが、それぞれ乗算３回で変換をすることできる。処理単位ボクセルの代表座標を用いて計算した結果を、その内部に存在する多数のモデルボクセルの座標変換に利用することで、各座標の計算時には乗算６回、除算２回分のコストを低減することができ、全体で大きなコストの削減になる。近似計算部１０７は、上述した計算を行い、モデルボクセルに関わる位置としてのモデルボクセルの８頂点の座標を各カメラ画像の座標に変換する。そして各カメラ画像の座標値を内外判定部１０８に出力する。なお、ボクセル内の座標の変換方法は上述の近似計算に限らず、種々の変形例が適用可能である。すなわち、対象三次元空間におけるボクセルの代表座標の位置関係と、カメラ画像における当該ボクセルの代表座標の位置関係とに基づいて、対象三次元空間におけるボクセル内の座標からカメラ画像における座標が導出されるようにすれば良い。
【００３５】
内外判定部１０８は、各カメラ画像においてモデルボクセルがモデル生成の対象物体のシルエット内にあるか否かを判定する。図６はシルエット画像に、モデルボクセルの８頂点を変換した結果を例示した図である。内外判定部１０８は、変換後の座標を比較し、最大ｕ、ｖ座標および最小ｕ、ｖ座標を抽出する。そして最大ｕ、ｖ座標および最小ｕ、ｖ座標を含む矩形領域をシルエット画像の探索領域に設定する。図６（ａ）において、内外判定部１０８は、モデルボクセルに関わる座標から探索領域５００を設定する。そして、内外判定部１０８は、この探索領域５００内に、白画素（シルエットの画素）があるかを探索し、白画素があればそのモデルボクセルはシルエット内にあると判定し、白画素がなければシルエット外と判定する。
【００３６】
なお、図６（ｂ）のように、変換後の座標の一部がシルエット画像外にある場合は、内外判定部１０８は、シルエット画像の最大座標値を用いて探索領域５０１を決定する。また、図６（ｃ）のように、変換後の座標すべてがシルエット画像外にある場合は、そのカメラの撮像範囲外なので、内外判定部１０８は、その探索領域を判定対象外とする。その後、内外判定部１０８は、そのモデルボクセルについて、シルエット内と判定されたカメラ台数と、シルエット外と判定されたカメラ台数を計数する。それぞれのカメラ台数が判定結果として三次元モデル判定部１０９に出力される。
【００３７】
なお、近似計算部１０７および内外判定部１０８において、モデルボクセルの８頂点を用いてシルエット内外判定をする方法について述べたがこれに限られるものではない。例えば、モデルボクセルの座標を１点だけ用いて、その１点の座標をカメラ画像に変換し、そのカメラ画像の座標が白画素か否かによってシルエット内外判定を行ってもよい。その場合、たとえば、モデルボクセルの頂点のうちの定められた１点の座標が用いられても良いし、モデルボクセルの重心が１点の座標として用いられても良い。
【００３８】
三次元モデル判定部１０９は、内外判定部１０８によるシルエット内外判定の結果に基づき、対象のモデルボクセルがモデルを構成するボクセルか否かを判定する。そしてモデルを構成するボクセルであると判定されたモデルボクセルの座標値を、三次元モデル生成部１１０に出力する。
【００３９】
以下、図７のフローチャートに従って、第一実施形態の三次元モデル判定部１０９によるモデルボクセル判定処理について説明する。
【００４０】
まず、三次元モデル判定部１０９は、シルエット外と判定されているカメラの総数が第１の閾値以上か否か判定する（Ｓ７００）。第１の閾値以上の台数のカメラでシルエット外と判定されていた場合（Ｓ７００でＹＥＳ）、三次元モデル判定部１０９は、当該モデルボクセルが三次元モデルを構成するボクセルではないと判定する（Ｓ７０１）。他方、第１の閾値以上の台数のカメラでシルエット外と判定されていない場合（Ｓ７００でＮＯ）、三次元モデル判定部１０９は、シルエット内と判定されているカメラの台数が閾値以上か否か判定する（Ｓ７０２）。シルエット内と判定されているカメラの台数が閾値より少ない場合（Ｓ７０２でＮＯ）、三次元モデル判定部１０９は、該モデルボクセルが三次元モデルを構成するボクセルではないと判定する（Ｓ７０１）。シルエット内と判定されているカメラの台数が閾値以上の場合（Ｓ７０１でＹＥＳ）、三次元モデル判定部１０９は、当該モデルボクセルが三次元モデルを構成するボクセルであると判定する（Ｓ７０３）。
【００４１】
本実施形態においては、Ｓ７００におけるシルエット外と判定されるカメラ台数の第１の閾値を１台、Ｓ７０２におけるシルエット内と判定されるカメラ台数の第２の閾値を２台と設定する。ただし、第１の閾値および第２の閾値は上記に限られるものではなく、例えば撮影環境やカメラ台数に応じて設定されても良い。また、三次元モデルを構成するボクセルか否かの判定においても、シルエット内と判定されたカメラ台数のみを用いて判定するようにしてもよいし、シルエット外と判定されたカメラ台数のみを用いて判定するようにしてもよい。
【００４２】
三次元モデル生成部１１０は、三次元モデル判定部１０９によりモデルを構成するモデルボクセルであると判定されたボクセルの座標値を出力する。本実施形態においては、出力形式は、点の集合体とし、点の座標値はモデルボクセルの重心座標とする。また、座標表現は、ｘ、ｙ、ｚ座標の数値をｍｍで表したものとする。なお、出力されるモデルボクセルの座標値としてモデルボクセルの重心を用いたがこれに限られるものではない。たとえば、モデルボクセルの頂点のうちの一つが用いられても良い。また、座標表現の単位もｍｍに限定されない。また、ここでは点の集合体としたが、メッシュモデルやポリゴンのような形式でも良い。
【００４３】
以下、図８のフローチャートに従って、三次元モデル生成装置１０による三次元モデル生成処理について説明する。
【００４４】
まず、対象空間設定部１００は、モデル生成の対象三次元空間を設定する（Ｓ８００）。処理単位ボクセル分割部１０３は、設定された対象三次元空間を処理単位ボクセルに分割し、処理単位ボクセルを代表座標決定部１０４、モデルボクセル分割部１０６に入力する（Ｓ８０１）。以降、Ｓ８０２〜Ｓ８０８の処理は、処理単位ボクセル毎に実行される。
【００４５】
代表座標決定部１０４は、処理単位ボクセルの代表座標を決定して、代表座標変換部１０５に出力する（Ｓ８０２）。代表座標変換部１０５は、（１）、（２）式の計算により、代表座標を各カメラ画像の座標に変換し、代表座標とカメラ画像内の変換後座標の情報を近似計算部１０７に出力する（Ｓ８０３）。近似計算部１０７は、（３）〜（８）式の計算により、代表座標とカメラ画像内の変換後座標の情報から、世界座標系における三次元座標の移動量とカメラ画像におけるピクセル移動量との間の変換係数を算出する（Ｓ８０４）。モデルボクセル分割部１０６は、処理単位ボクセルをモデルボクセルに分割し、近似計算部１０７に出力する（Ｓ８０５）。
【００４６】
Ｓ８０６〜Ｓ８０８の処理は、すべてのモデルボクセルについてモデルボクセル毎に実行される。また、これらのうちＳ８０６〜Ｓ８０７の処理は、すべてのカメラについてカメラ毎に実行される。近似計算部１０７は、（９）、（１０）式の近似計算により、モデルボクセルにおける座標のカメラ画像における変換後の座標を算出する（Ｓ８０６）。内外判定部１０８は、各カメラについて、変換後のカメラ画像の座標から定まる探索領域を探索することにより、シルエット内外判定を行う。さらにシルエット内と判定されたカメラ台数と、シルエット外と判定されたカメラ台数を三次元モデル判定部１０９に出力する（Ｓ８０７）。三次元モデル判定部１０９は、モデルボクセルのシルエット内外判定結果に基づいて、モデルボクセルが三次元モデルを構成するモデルか否か判定する（Ｓ８０８）。三次元モデル生成部１１０は、モデルを構成すると判定されたモデルボクセルを、点の集合体として、三次元モデルとして出力する（Ｓ８０９）。
【００４７】
以上、第一実施形態では、モデルボクセル毎の三次元座標を各カメラのシルエット画像上のピクセル座標に変換する際、処理単位ボクセルの代表座標のみを射影変換し、他の座標を近似計算によって求めるようにした。これにより、計算負荷を大きく軽減することができる。第一実施形態によれば、たとえば、視体積交差法において三次元座標をカメラ画像上の座標位置に変換する際に、代表座標のみが射影変換され、残りの三次元座標については近似計算によってカメラ画像上の座標位置が求められる。このため、視体積交差法によって三次元モデルを構築する際の計算負荷を軽減することができる。
【００４８】
＜第二実施形態＞
第一実施形態で述べた近似計算手法を用いた場合、（１）、（２）式で示されるような行列計算に比べ、計算誤差が大きくなる。処理単位ボクセルのサイズおよびモデルボクセルのサイズによっては、この計算誤差が生成される三次元モデルの精度に与える影響が大きくなってしまう。モデルボクセルに対して、処理単位ボクセルのサイズが大きいほど計算誤差が大きくなり、三次元モデルの精度に与える影響が大きくなる。一方で、モデルボクセルに対して処理単位ボクセルが小さいほど、代表座標の変換結果から算出した変換係数を適応できる近似計算の回数が減るため、高速化の効果が小さくなってしまう。場合によっては、変換係数の算出負荷の方が高くなり、通常の行列計算を行う場合に比べ、処理が遅くなってしまう。
【００４９】
第二実施形態では、処理単位ボクセルのサイズおよび最終的に出力されるモデルボクセルのサイズに応じて、計算誤差の影響や、高速化の効果を鑑みて、座標変換を近似計算と行列計算のいずれを用いて実行するかを決定する。すなわち、第二実施形態によれば、処理するボクセルのサイズに応じて、座標変換を近似計算で行うか行列計算が適応的に切り替わる。
【００５０】
図９は、第二実施形態における三次元モデル生成装置１０の機能構成例を示すブロック図である。第一の実施形態（図１Ａ）と同様の機能を有するブロックについては、同一の参照番号を付与している。
【００５１】
図９において、方式選択部１１１は、処理単位ボクセル分割部１０３から処理単位ボクセルの情報を取得し、モデルボクセル分割部１０６からモデルボクセルの情報を取得する。方式選択部１１１は、処理単位ボクセルのサイズと、モデルボクセルのサイズの比率に応じて、座標変換を近似計算で実行するか、正確な変換結果が得られる行列計算で実行するかを選択する。選択方法の詳細は後述する。
【００５２】
方式選択部１１１は、近似計算で実行することを選択した場合、代表座標決定部１０４に処理単位ボクセルの情報を出力し、近似計算部１０７にモデルボクセルの情報を出力する。他方、行列計算で実行することを選択した場合、方式選択部１１１は、行列計算部１１２にモデルボクセルの情報を出力する。
【００５３】
行列計算部１１２は、カメラパラメータ入力部１０１から各カメラのカメラパラメータを取得し、方式選択部１１１からモデルボクセルの情報を取得し、モデルボクセルの８頂点の座標を（１）、（２）式の計算により各カメラ画像の座標に変換する。すなわち、行列計算部１１２は、対象三次元空間の座標を行列変換と透視投影変換によりカメラ画像の座標へ変換する行列計算を実行する。そして、行列計算部１１２は、変換された座標値を内外判定部１０８に出力する。座標変換の後は、第一実施形態と同様、内外判定部１０８によるシルエット内外判定と、三次元モデル判定部１０９によるモデルボクセル判定が実行され、三次元モデル生成部１１０により三次元モデルが生成される。
【００５４】
次に、方式選択部１１１における、座標変換方式（近似計算か行列計算か）の選択について説明する。本実施形態の方式選択部１１１は、処理単位ボクセルとモデルボクセルのサイズの関係に基づいて近似計算と行列計算のいずれかを選択する。より具体的には、処理単位ボクセルのサイズとモデルボクセルのサイズの比率が、あらかじめ設定された上限閾値から下限閾値の間におさまっている場合は、近似計算を選択する。処理単位ボクセルのサイズとモデルボクセルのサイズの比率が、上限閾値より大きい、または下限閾値より小さい場合は、方式選択部１１１は、行列計算を選択する。
【００５５】
前述の通りボクセルのサイズの差が大きい場合は、計算誤差が大きくなってしまう。そのため、上記比率が上限閾値を超える場合は、計算誤差が大きくなるため、行列計算を選択する。また、ボクセルサイズの差が小さい場合は、近似計算による高速化の効果が小さくなり、場合によってはより負荷が逆に大きくなってしまう。そのため、上記比率が下限閾値を下回る場合も、行列計算を選択する。
【００５６】
なお、第二実施形態では、上限閾値と下限閾値を用いる方法を示したが、上限閾値と下限閾値の一方の閾値だけを設け、その閾値を超えるか否かにより計算方法を選択するようにしてもよい。また、処理単位ボクセルのサイズまたはモデルボクセルのサイズが所定の大きさか否かで計算方法を選択するようにしてもよい。例えば、対象となる三次元モデルを構成する物体の大きさに対して、処理単位ボクセルが物体の大きさに対して所定の大きさ、例えば、物体の大きさの１／４以下では近似計算を用い、それ以外の場合は行列計算を用いるようにしても良い。ただし、この場合の比は上記に限定されない。
【００５７】
以上、第二実施形態によれば、近似計算による計算誤差が小さくまた高速化の効果が大きい場合に座標変換を近似計算により行うことができる。すなわち、近似計算と行列計算を適切に使い分けることができ、高精度かつ高速に三次元モデルを生成することが可能となる。
【００５８】
＜第三実施形態＞
第一実施形態では、世界座標系における各軸方向の移動量がカメラ画像における各軸方向への移動量に均等に反映されるものとして変換係数を決定した。第三実施形態では、対象三次元空間をカメラ画像に投影した際の物体領域の変形を考慮することにより、より精度の高い近似計算を実施する。具体的には、対象三次元空間において代表座標の間で所定の長さの線分を平行移動した場合のカメラ画像における線分の長さの変化を第１実施形態の変換係数に加味する。なお、第三実施形態による三次元モデル生成装置１０の構成は、第一実施形態（図１Ａ）と同様である。ただし、代表座標決定部１０４、近似計算部１０７の動作が第一実施形態とは異なる。
【００５９】
図１０は、第三実施形態の処理単位ボクセルの代表座標のカメラ画像への変換結果を例示した図である。代表座標決定部１０４は第一実施形態において、処理単位ボクセルの頂点のうち、４点を代表座標と決定した。第三実施形態においては、代表座標決定部１０４は、処理単位ボクセルの頂点のうち、下記の６点を代表座標として決定する。
（１）ｘ、ｙ、ｚが最小の点（図１０の代表座標６００、変換後座標７００）
（２）ｙ、ｚは最小、ｘは最大の点（図１０の代表座標６０１、変換後座標７０１）
（３）ｘ、ｚは最小、ｙは最大の点（図１０の代表座標６０２、変換後座標７０２）
（４）ｘ、ｙは最小、ｚは最大の点（図１０の代表座標６０３、変換後座標７０３）
（５）ｙは最小、ｘ、ｚは最大の点（図１０の代表座標６０４、変換後座標７０４）
（６）ｚは最小、ｘ、ｙは最大の点（図１０の代表座標６０５、変換後座標７０５）
ここでは、処理単位ボクセルの頂点から６点を選択したが、これに限られるものではない。ｘ座標が同一の４つの座標グループ、ｙ座標が同一の４つの座標グループ、ｚ座標が同一の４つの座標グループを含むように代表座標が決定されればよい。また、代表座標は、処理単位ボクセルの頂点の座標に限られるものではない。
【００６０】
図１１（ａ）、（ｂ）は、近似計算に用いるカメラ画像における座標と、その座標間の距離を示した図である。近似計算部１０７は、代表座標の変換結果から、図１１（ａ）、（ｂ）で示される座標間の距離Ｌｘ１、Ｌｘ２、Ｌｙ１、Ｌｙ２，Ｌｚ１，Ｌｚ２を算出する。そして、近似計算部１０７は、下記計算を用いて、三次元座標の任意の座標を、カメラ画像の座標に変換する。
【００６１】
図１１（ａ）において、変換後座標７００と変換後座標７０２の距離をＬｘ１、変換後座標７０１と変換後座標７０５の距離をＬｘ２とする。これらの座標間の距離を用いて、処理単位ボクセルの代表座標６００から、三次元空間をｘ軸にｄｘ移動したときの、カメラ画像上での移動量ｄｕｘ、ｄｖｘは、下記（１１）、（１２）式で算出される。
【数１１】
2018133059.tif 000013
【数１２】
2018133059.tif 000014
【００６２】
また、図１１（ａ）において、変換後座標７００と変換後座標７０１の距離をＬｙ１、変換後座標７０２と変換後座標７０５の距離をＬｙ２とする。処理単位ボクセルの代表座標６００から、三次元空間をｙ軸にｄｙ移動したときの、カメラ画像上での移動量ｄｕｙ、ｄｖｙは、下記（１３）、（１４）式で算出される。
【数１３】
2018133059.tif 000015
【数１４】
2018133059.tif 000016
【００６３】
さらに、図１１（ｂ）において、変換後座標７００と変換後座標７０１の距離をＬｚ１、変換後座標７０３と変換後座標７０４の距離をＬｚ２とする。処理単位ボクセルの代表座標６００から、三次元空間をｚ軸にｄｚ移動したときの、カメラ画像上での移動量ｄｕｚ、ｄｖｚは、下記（１３）、（１４）式で算出される。
【数１５】
2018133059.tif 000017
【数１６】
2018133059.tif 000018
【００６４】
これらの算出結果を用いて、対象三次元空間の任意座標３０４（Ｘ，Ｙ，Ｚ）を以下の（１７）、（１８）式によりカメラ画像における座標（ｕ，ｖ）に変換することができる。なお、Ｘ＝Ｘ１＋ｄｘ、Ｙ＝Ｙ１＋ｄｙ、Ｚ＝Ｚ１＋ｄｚとする。
【数１７】
2018133059.tif 000019
【数１８】
2018133059.tif 000020
【００６５】
以上により、第三実施形態によれば、第一実施形態と比較して、三次元座標の変換後の変形度合を加味して座標変換の近似計算が行われるため、より精度の高い座標変換を行うことができる。すなわち、第一の実施形態と比較し、生成される三次元モデルの品質が向上する。
【００６６】
なお、第二実施形態を適用して、第三実施形態の近似計算と行列計算のいずれを用いるかを処理単位ボクセルとモデルボクセルのサイズに基づいて選択するようにしてもよい。また、上記各実施形態において、モデルボクセルでの処理が終わったのちに、モデルボクセルを処理単位ボクセルとし、その中をさらにモデルボクセルで分割して処理を繰り返すことを行っても良い。
【００６７】
以上、本発明の実施形態について詳述したが、本発明は上述の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内にあって、種々の変形及び変更が可能である。
【００６８】
＜他の実施形態＞
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【００６９】
１０：三次元モデル生成装置、１１〜１８：カメラ、１００：対象空間設定部、１０１：カメラパラメータ入力部、１０２：シルエット画像入力部、１０３：処理単位ボクセル分割部、１０４：代表座標決定部、１０５：代表座標変換部、１０６：モデルボクセル分割部、１０７：近似計算部、１０８：内外判定部、１０９：三次元モデル判定部、１１０：三次元モデル生成部、１１１：方式選択部、１１２：行列計算部
【図１Ａ】
2018133059.tif 000021
【図１Ｂ】
2018133059.tif 000022
【図２】
2018133059.tif 000023
【図３】
2018133059.tif 000024
【図４】
2018133059.tif 000025
【図５】
2018133059.tif 000026
【図６】
2018133059.tif 000027
【図７】
2018133059.tif 000028
【図８】
2018133059.tif 000029
【図９】
2018133059.tif 000030
【図１０】
2018133059.tif 000031
【図１１】
2018133059.tif 000032