(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-01-11
(45)【発行日】2024-01-19
(54)【発明の名称】形状推定装置、形状推定方法及びプログラム
(51)【国際特許分類】
H04N 23/90 20230101AFI20240112BHJP
G01B 11/245 20060101ALI20240112BHJP
G06T 17/10 20060101ALI20240112BHJP
H04N 23/60 20230101ALI20240112BHJP
【FI】
H04N23/90
G01B11/245 H
G06T17/10
H04N23/60
(21)【出願番号】P 2019172189
(22)【出願日】2019-09-20
【審査請求日】2022-09-16
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】100126240
【氏名又は名称】阿部 琢磨
(74)【代理人】
【識別番号】100223941
【氏名又は名称】高橋 佳子
(74)【代理人】
【識別番号】100159695
【氏名又は名称】中辻 七朗
(74)【代理人】
【識別番号】100172476
【氏名又は名称】冨田 一史
(74)【代理人】
【識別番号】100126974
【氏名又は名称】大朋 靖尚
(72)【発明者】
【氏名】▲高▼間 康文
【審査官】淀川 滉也
(56)【参考文献】
【文献】特開2019-016161(JP,A)
【文献】米国特許出願公開第2007/0136034(US,A1)
【文献】特開2019-057248(JP,A)
【文献】特開2018-056971(JP,A)
【文献】特開2018-032938(JP,A)
【文献】末永 諒,Visual hullとMicrofacet billboardingを用いた自由視点サッカー視聴システムの検討,情報処理学会 研究報告 オーディオビジュアル複合情報処理(AVM) 2016-AVM-092 [online] ,日本,情報処理学会,2016年02月
(58)【調査した分野】(Int.Cl.,DB名)
H04N 23/90
G01B 11/245
G06T 17/10
H04N 23/60
(57)【特許請求の範囲】
【請求項1】
複数の要素で構成される3次元空間の一部の領域である第1の領域に含まれる要素に対して、複数の撮像装置のうち当該要素に対応する領域を撮像する撮像装置を示す第1の情報を生成する生成手段と、
前記3次元空間の一部の領域であって前記第1の領域とは異なる第2の領域に含まれる要素で共通の第2の情報であって、前記第2の領域に対応する領域を撮像する撮像装置を示す第2の情報を設定する設定手段と、
前記生成手段によって前記第1の情報が生成され、前記設定手段によって前記第2の情報が設定された後に、前記複数の撮像装置による撮像に基づく複数の画像を取得し、前記複数の画像と、前記第1の情報と、前記第2の情報とに基づいて、被写体の3次元形状の推定を行う推定手段と、を有することを特徴とする形状推定装置。
【請求項2】
前記第1の情報は、前記複数の撮像装置により撮像される撮像領域において前記第1の領域に含まれる前記要素に対応する領域を、前記複数の撮像装置のそれぞれの撮像装置の画角内に含むかどうかを示す情報であることを特徴とする請求項1に記載の形状推定装置。
【請求項3】
前記複数の撮像装置により撮像される撮像領域において前記第2の領域に対応する領域を撮像する撮像装置の台数は、前記複数の撮像装置により撮像される撮像領域において前記第1の領域に対応する領域を撮像する撮像装置の台数より少ないことを特徴とする請求項1又は2に記載の形状推定装置。
【請求項4】
前記複数の撮像装置により撮像される撮像領域において前記第2の領域に対応する領域の被写体の数は、前記複数の撮像装置により撮像される撮像領域において前記第1の領域に対応する領域の被写体の数より少ないことを特徴とする請求項1乃至3のいずれか1項に記載の形状推定装置。
【請求項5】
前記複数の撮像装置により撮像される撮像領域において前記第2の領域に対応する領域の被写体は、ボールを含むことを特徴とする請求項1乃至4のいずれか1項に記載の形状推定装置。
【請求項6】
前記複数の撮像装置により撮像される撮像領域において前記第1の領域に対応する領域の被写体は、人物とボールのうち少なくとも一方を含むことを特徴とする請求項1乃至5のいずれか1項に記載の形状推定装置。
【請求項7】
前記推定手段は、前記複数の画像と、前記第1の情報と、前記第2の情報とに基づいて、前記3次元空間を構成する特定の要素を削除することで前記被写体の3次元形状を推定することを特徴とする請求項1乃至6のいずれか1項に記載の形状推定装置。
【請求項8】
前記推定手段は、前記第1の領域を構成する複数の要素の少なくとも一部を、前記複数の画像と前記第1の情報とに基づいて削除し、かつ、前記第2の領域を構成する複数の要素の少なくとも一部を、前記複数の画像と前記第2の情報に基づいて削除することにより前記3次元形状を推定することを特徴とする請求項7に記載の形状推定装置。
【請求項9】
前記複数の画像は、前記被写体の領域を示すシルエット画像であり、
前記推定手段は、前記第1の領域を構成する要素を、当該要素に対応する第1の情報と、複数のシルエット画像とに基づいて削除するかを判定し、削除すると判定された要素を削除することを特徴とする請求項8に記載の形状推定装置。
【請求項10】
前記推定手段は、
前記第1の領域を構成する要素に対応する前記第1の情報に基づいて、前記複数の撮像装置により撮像される撮像領域における当該要素に対応する領域を画角内に含む撮像装置を特定し、
前記特定された撮像装置によって撮像された画像に基づくシルエット画像の被写体の領域に、当該要素の位置を当該シルエット画像の座標系に変換した位置が含まれるか否かに基づいて前記第1の領域を構成する要素を削除するか否かを判定することを特徴とする請求項9に記載の形状推定装置。
【請求項11】
前記複数の画像は、前記被写体の領域を示すシルエット画像であり、
前記推定手段は、前記第2の領域を構成する要素を、当該要素に対応する前記第2の情報と、複数のシルエット画像とに基づいて削除することを特徴とする請求項8乃至10のいずれか1項に記載の形状推定装置。
【請求項12】
前記推定手段は、
前記第2の領域を構成する要素に対応する前記第2の情報に基づいて、前記複数の撮像装置により撮像される撮像領域における当該要素に対応する領域を画角内に含む撮像装置を特定し、
特定された撮像装置に対応するシルエット画像の被写体の領域に、当該要素を当該シルエット画像の座標系に変換した位置が含まれるか否かに基づいて前記第2の領域を構成する要素を削除するか否かを判定することを特徴とする請求項11に記載の形状推定装置。
【請求項13】
前記生成手段は、前記第1の領域に含まれる要素に対して、前記複数の撮像装置の状態に基づいて前記第1の情報を生成することを特徴とする請求項1乃至12のいずれか1項に記載の形状推定装置。
【請求項14】
前記撮像装置の状態とは、前記撮像装置の位置、姿勢、および焦点距離のうち少なくとも一つであることを特徴とする請求項13に記載の形状推定装置。
【請求項15】
前記設定手段は、記憶手段に記憶されている、前記第2の領域に含まれる前記被写体の3次元形状の推定に用いられる撮像装置を示す情報を、前記第2の情報として設定することを特徴とする請求項1乃至14のいずれか1項に記載の形状推定装置。
【請求項16】
前記設定手段は、前記複数の撮像装置の画角に応じた第3の情報であって、前記第1の領域及び前記第2の領域に対して、前記複数の撮像装置のうち前記要素を削除するか否かを判定するために用いられる撮像装置を示す第3の情報を設定し、
前記推定手段は、前記複数の画像と、前記第1の情報と、前記第2の情報と、前記第3の情報とに基づいて、前記3次元空間を構成する特定の要素を削除することを特徴とする請求項1乃至15のいずれか1項に記載の形状推定装置。
【請求項17】
前記第3の情報は、所定の画角以上の画角を有する撮像装置を示す情報と、前記所定の画角より小さい画角を有する撮像装置を示す情報とを有し、
前記推定手段は、
前記第1の領域を構成する要素を、前記第3の情報のうち前記所定の画角以上の画角を有する撮像装置を示す情報と、前記複数の画像と、前記第1の情報とに基づいて削除するか否かを判定し、
前記第2の領域を構成する要素を、前記第3の情報のうち前記所定の画角より小さい画角を有する撮像装置を示す情報と、前記複数の画像と、前記第2の情報とに基づいて削除するか否かを判定することを特徴とする請求項16に記載の形状推定装置。
【請求項18】
複数の要素で構成される3次元空間の一部の領域である第1の領域に含まれる要素に対して、複数の撮像装置のうち当該要素に対応する領域を撮像する撮像装置を示す第1の情報を生成する生成工程と、
前記3次元空間の一部の領域であって前記第1の領域とは異なる第2の領域に含まれる要素で共通の第2の情報であって、前記第2の領域に対応する領域を撮像する撮像装置を示す第2の情報を設定する設定工程と、
前記生成工程によって前記第1の情報が生成され、前記設定工程によって前記第2の情報が設定された後に、前記複数の撮像装置による撮像に基づく複数の画像を取得し、前記複数の画像と、前記第1の情報と、前記第2の情報とに基づいて、被写体の3次元形状の推定を行う推定工程と、を有することを特徴とする形状推定方法。
【請求項19】
コンピュータを、請求項1乃至17のいずれか1項に記載の形状推定装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、被写体の3次元形状の推定を行う装置に関するものである。
【背景技術】
【0002】
複数の撮像装置の撮像により得られた複数の画像を用いて、指定された仮想視点からの仮想視点画像を生成する技術が注目されている。特許文献1には、複数の撮像装置を異なる位置に設置して被写体を撮像し、撮像により得られた撮像画像から推定される被写体の3次元形状を用いて、仮想視点画像を生成する方法について記載されている。
【0003】
また、特許文献2には、3次元形状の推定領域である3次元空間を構成する部分領域(要素)ごとに、その要素を観測できる撮像装置を示すリストを生成することについて記載されている。そして、そのリストに基づいて特定される撮像装置のみを用いて、形状推定処理を行うことについて記載されている。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2015-45920号公報
【文献】特開2008-191072号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
上述したような形状推定に用いる撮像装置を示す情報(以下、形状推定用情報という)を用いれば、複数の撮像装置のうち特定の撮像装置にのみ基づいて形状推定の処理を行うことができるので処理の負荷が軽減される。しかし、このような形状推定用情報は、推定領域を構成する全要素に対して、要素ごとに全撮像装置のうちどの撮像装置が要素を観測できるかを判定することで生成されるため、以下のような問題が生じる。すなわち、3次元形状の推定領域を構成する要素の数や撮像装置の台数が増えると、形状推定用情報の生成処理の負荷が大きくなる恐れが生じる。よって、形状推定に係る処理として、処理負荷が軽減されない可能性が生じる。
【0006】
本発明は、上記の課題に鑑みてなされたものであり、形状推定に係る処理の負荷を軽減することを目的とする。
【課題を解決するための手段】
【0007】
本発明の一つの態様は、以下のとおりである。すなわち、形状推定装置は、複数の要素で構成される3次元空間の一部の領域である第1の領域に含まれる要素に対して、前記複数の撮像装置のうち当該要素に対応する領域を撮像する撮像装置を示す第1の情報を生成する生成手段と、前記3次元空間の一部の領域であって前記第1の領域とは異なる第2の領域に含まれる要素で共通の第2の情報であって、前記第2の領域に対応する領域を撮像する撮像装置を示す第2の情報を設定する設定手段と、前記生成手段によって前記第1の情報が生成され、前記設定手段によって前記第2の情報が設定された後に、前記複数の撮像装置による撮像に基づく複数の画像を取得し、前記複数の画像と、前記第1の情報と、前記第2の情報とに基づいて、被写体の3次元形状の推定を行う推定手段と、を有する。
【発明の効果】
【0008】
本発明によれば、形状推定に係る処理の負荷を軽減することができる。
【図面の簡単な説明】
【0009】
【
図1】実施形態1に係る画像処理システムの装置構成の一例を示す図である。
【
図2】実施形態1における第1の領域と第2の領域を示す模式図である。
【
図3】カメラとボクセルの位置関係に基づいて生成される形状推定用情報を説明する図である。
【
図4】実施形態1に係る形状推定装置のハードウェア構成を示す図である。
【
図5】実施形態1に係る形状推定装置が行う処理の一例を示すフローチャートである。
【
図6】実施形態2に係る画像処理システムの装置構成の一例を示す図である。
【
図7】実施形態2における第1の領域と第2の領域と第3の領域を示す模式図である。
【
図9】実施形態2に係る形状推定装置が行う処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0010】
以下、図面を参照しながら、本発明を実施するための形態について説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【0011】
(実施形態1)
本実施形態では、被写体の3次元形状を推定する3次元空間の領域を第1の領域と第2の領域に分割して、それぞれの領域で形状の推定に用いられる複数のカメラ(撮像装置)を限定することで、3次元形状の推定の処理負荷を軽減させる。そのために、第1の領域では、第1の領域を構成する要素ごとに、形状の推定に用いられる画像に対応するカメラを示す情報である形状推定用情報が、カメラの状態に基づいて生成される。一方、第2の領域では、形状推定用情報として、第2の領域を構成する要素で共通の情報が設定される。このように第1の領域と第2の領域それぞれにおいて、形状推定用情報に基づいて、推定に用いられるカメラが限定される。なお、形状推定用情報についての詳細は後述する。
【0012】
また、3次元空間の領域を構成する全要素に対して、要素ごとに形状推定用情報を生成する構成に対して、本実施形態では、3次元空間の一部の領域である第1の領域に対してのみ、要素ごとに形状推定用情報を生成する。この構成により、形状推定用情報の生成処理の負荷を軽減することができる。このため、本実施形態によれば、3次元形状の推定の処理負荷を軽減し、さらに形状推定用情報の生成処理の負荷も軽減することができる。
【0013】
なお、第1の領域に含まれる全要素に対して、要素ごとに形状推定用情報が生成されなくてもよく、第1の領域に含まれるいくつかの要素で、一つの形状推定用情報が生成されていてもよい。また、第1の領域において、いくつかの要素では、要素ごとに形状推定用情報が生成され、他のいくつかの要素では、そのまとまりで一つの形状推定用情報が生成されていてもよい。この場合であっても、3次元空間の領域を構成する全要素に対して、要素ごとに形状推定用情報を生成する構成に対して、形状推定用情報の生成処理の負荷を軽減することができる。本実施形態では、第1の領域に含まれる要素ごとに形状推定用情報が生成される例について説明を行う。
【0014】
また、3次元空間の領域は複数の要素で構成されている。そして、第1の領域と第2の領域は、それぞれ複数の要素で構成されている。要素としては、ボクセルを挙げることができるが、点群を表現するものであればこれに限定されない。
【0015】
また、3次元空間は、3つ以上の領域に分割されてもよい。例えば、上述した第1の領域と第2の領域の他に第3の領域が設定されたとして、その第3の領域にも形状推定用情報が設定されていなくても、第1の領域と第2の領域に形状推定用情報を設定することで、形状推定に係る処理の負荷が軽減する。さらに、第3の領域を構成する要素ごとに形状推定用情報が生成されてもよいし、要素で共通の形状推定用情報が設定されてもよい。この場合には、より形状推定に係る処理に負荷が軽減される。
【0016】
本実施形態の画像処理システムは、撮像装置により異なる方向から撮像する複数のカメラの撮像画像と撮像装置の状態、指定された仮想視点に基づいて、仮想視点からの見えを表す仮想視点画像を生成する。
【0017】
複数のカメラは、複数の方向から撮像領域を撮像する。撮像領域は、例えば、ラグビーが行われる競技場の平面と任意の高さで囲まれた領域である。撮像領域は、上述した被写体の3次元形状を推定する3次元空間と対応していてもよいし、していなくてもよい。つまり、3次元空間は、撮像領域の全部であってもよいし、一部であってもよい。複数のカメラは、撮像領域を取り囲むようにそれぞれ異なる位置・異なる方向に設置され、同期して撮像を行う。なお、複数のカメラは撮像領域の全周にわたって設置されなくてもよく、設置場所の制限等によっては撮像領域の一部の方向にのみ設置されていてもよい。カメラの数は限定されず、例えば撮像領域をラグビーの競技場とする場合、競技場の周囲に数十~数百台程度のカメラが設置されてもよい。
【0018】
また、複数のカメラは、望遠カメラと広角カメラなど画角が異なるカメラが含まれていれもよい。例えば、望遠カメラを用いて選手を高解像度に撮像することで、生成される仮想視点画像の解像度も向上する。また、ボールは移動範囲が広いので、広角カメラを用いて撮像することで、カメラ台数を減らすことができる。また、広角カメラと望遠カメラの撮像領域を撮像するのであれば、その設置位置は限定されない。また、撮像領域のうち、3次元形状を推定する3次元空間における第1の領域に対応する領域を撮像するように望遠カメラが設置され、第2の領域に対応する領域を撮像するように広角カメラが設置されていてもよい。また、第1の領域に対応する領域を撮像するように広角カメラが設置されていてもよい。
【0019】
カメラは現実世界の1つの時刻情報で同期され、撮像した画像には毎フレームの画像に撮像時刻情報が付与される。
【0020】
カメラの状態とは、カメラの位置、姿勢(向き、撮像方向)、焦点距離(画角)、光学中心、歪みなどの状態のことをいう。カメラの位置、姿勢(向き、撮像方向)は、カメラそのもので制御されてもよいし、カメラの位置や姿勢を制御する雲台により制御されてもよい。以下では、カメラの状態をカメラパラメータとして説明を行うが、カメラパラメータには、雲台等の別の装置により制御されるパラメータが含まれていてもよい。また、カメラの位置、姿勢(向き、撮像方向)に関するカメラパラメータは、いわゆる外部パラメータであり、カメラの焦点距離、光学中心、歪みに関するパラメータは、いわゆる内部パラメータである。カメラの位置や姿勢は1つの原点と直交する3軸を持つ座標系で表現される(世界座標系と呼ぶ)。
【0021】
仮想視点画像は、自由視点画像とも呼ばれるものであるが、ユーザが自由に(任意に)指定した視点に対応する画像に限定されず、例えば、複数の候補からユーザが選択した視点に対応する画像なども仮想視点画像に含まれる。また、仮想視点の指定は、ユーザ操作により行われてもよいし、画像解析の結果等に基づいて自動で行われてもよい。また、本実施形態では仮想視点画像が静止画である場合を中心に説明するが、仮想視点画像は動画であってもよい。
【0022】
仮想視点画像の生成に用いられる仮想視点情報は、仮想視点の位置及び向きを示す情報である。具体的には、仮想視点情報は、仮想視点の3次元位置を表すパラメータと、パン、チルト、及びロール方向における仮想視点の向きを表すパラメータとを含む。なお、仮想視点情報の内容は上記に限定されない。例えば、仮想視点情報のパラメータには、仮想視点の視野の大きさ(画角)を表すパラメータが含まれてもよい。また、仮想視点情報は複数フレームのパラメータを有していてもよい。つまり、仮想視点情報が、仮想視点画像の動画を構成する複数のフレームにそれぞれ対応するパラメータを有し、連続する複数の時点それぞれにおける仮想視点の位置及び向きを示す情報であってもよい。
【0023】
仮想視点画像は、例えば、以下のような方法で生成される。まず、カメラにより異なる方向から撮像することで複数カメラの画像が取得される。次に、複数カメラ画像から、人物やボールなどの被写体に対応する前景領域を抽出した前景画像と、前景領域以外の背景領域を抽出した背景画像が取得される。前景画像、背景画像は、テクスチャ情報(色情報など)を有している。そして、被写体の3次元形状を表す前景モデルと前景モデルに色付けするためのテクスチャデータとが前景画像に基づいて生成される。また、競技場などの背景の3次元形状を表す背景モデルに色づけするためのテクスチャデータが背景画像に基づいて生成される。そして、前景モデルと背景モデルに対してテクスチャデータをマッピングし、仮想視点情報が示す仮想視点に応じてレンダリングを行うことにより、仮想視点画像が生成される。ただし、仮想視点画像の生成方法はこれに限定されず、前景や背景モデルを用いずに撮像画像の射影変換により仮想視点画像を生成する方法など、種々の方法を用いることができる。
【0024】
前景画像とは、カメラにより撮像されて取得された撮像画像から、被写体の領域(前景領域)を抽出した画像である。前景領域として抽出される被写体とは、時系列で同じ方向から撮像を行った場合において動きのある(その絶対位置や形が変化し得る)動的被写体(動体)を指す。被写体は、例えば、競技において、それが行われるフィールド内にいる選手や審判などの人物、球技であれば人物に加えボールなども含む。また、コンサートやエンタテイメントにおいては、歌手、演奏者、パフォーマー、司会者などが被写体である。
【0025】
背景画像とは、少なくとも前景となる被写体とは異なる領域(背景領域)の画像である。具体的には、背景画像は、撮像画像から前景となる被写体を取り除いた状態の画像である。また、背景は、時系列で同じ方向から撮像を行った場合において静止している、又は静止に近い状態が継続している撮像対象物を指す。このような撮像対象物は、例えば、コンサート等のステージ、競技などのイベントを行うスタジアム、球技で使用するゴールなどの構造物、フィールド、などである。ただし、背景は少なくとも前景となる被写体とは異なる領域であり、撮像対象としては、被写体と背景の他に、別の物体等が含まれていてもよい。
【0026】
[構成]
本実施形態で画像処理システムに用いられる形状推定装置について図面を参照しながら説明する。
【0027】
図1は、本実施形態の画像処理システムを示す図である。画像処理システムは、形状推定装置1と、複数のカメラ2と、画像生成装置3と、を有する。また、画像処理システムは、表示装置4をさらに有する。形状推定装置1は、複数のカメラ2と、画像生成装置3と、表示装置4に接続される。形状推定装置1は、複数のカメラ2の撮像により取得された画像を取得する。そして、形状推定装置1は、複数のカメラ2から取得した画像に基づいて、被写体の3次元形状を推定する。なお、
図1では、カメラ2が1台しか示されていないが、本実施形態における画像処理システムは、複数のカメラ2を有している。
【0028】
複数のカメラ2のそれぞれは、カメラを識別するための識別番号(カメラ番号)を持つ。カメラ2は、撮像した画像から前景画像を抽出する機能など、他の機能やその機能を実現するハードウェア(回路や装置など)も含んでもよい。カメラ番号は、カメラ2の設置位置に基づいて設定されていてもよいし、それ以外の基準で設定されてもよい。
【0029】
画像生成装置3は、形状推定装置1から被写体の3次元形状を示す情報を取得し、仮想視点画像を生成する。画像生成装置3は、仮想視点画像を生成するために、仮想視点情報の指定を受け付け、その仮想視点情報に基づいて仮想視点画像を生成する。仮想視点情報は、例えば、ジョイスティック、ジョグダイヤル、タッチパネル、キーボード、及びマウスなどの入力部により、ユーザ(操作者)から指定される。なお、仮想視点情報の指定に関してはこれに限定されず、被写体を認識するなどして、自動的に指定しても構わない。生成した仮想視点画像は表示装置4へ出力される。表示装置4は、画像生成装置3から仮想視点画像を取得し、それらをディスプレイなどの表示デバイスを用いて出力する。
【0030】
形状推定装置1の構成について説明する。形状推定装置1は、領域設定部100と、形状推定用情報生成部110、カメラ情報取得部120、形状推定部130を有する。
【0031】
領域設定部100は、形状推定領域である3次元空間に対して、その構成要素ごとに形状推定用情報を生成する第1の領域と、構成要素で共通の形状推定用情報を設定する第2の領域とを設定する。領域設定部100は、これらの領域を設定するために、その2つの領域の境界を示す境界情報を取得する。設定する領域について、
図2を例に具体的に説明する。
図2の破線で示す形状推定領域200は、後述するカメラの外部・内部パラメータを取得する際に設定する世界座標系で表現する。世界座標系の軸は、ラグビーグランドなどの地面201をx軸とy軸で定義されるxy面とし、地面と垂直な方向202をz軸とする。地面はz=0とする。境界210を示す境界情報として高さ情報(z軸方向の情報)のみで示される場合、形状推定領域200は、
図2(a)に示すように領域が分割される。そして、高さ情報が示すz軸の値以上の値のz座標を有する領域が第2の領域220として設定され、z=0から高さ情報が示すz軸の値未満の値のz座標を有する領域が第1の領域230として設定される。
【0032】
この高さ情報に基づいて分割される複数の領域のうち、どの領域を第2の領域、第1の領域とするかは適宜設定すればよい。例えば、第1の領域と第2の領域は、対応する領域を撮像するカメラ2の台数によって設定されてもよい。複数のカメラ2が撮像する撮像領域に含まれる複数の部分領域それぞれを撮像するカメラ2の台数が異なる場合が考えられる。その例としては、以下の場合が考えられる。サッカーやラグビーなどの場合、地面に近い領域では複数の選手や審判などがいて、それらの3次元形状の推定精度を高めるために、多くのカメラ2を用いて様々な位置及び方向からその地面に近い領域を撮像する。一方、地面から離れた、例えば地上10mくらいでは、ボールが撮像されるだけであり、さらに、そのボールが他の被写体からほとんど遮られる可能性が低いため、カメラ2の台数が少なくても形状推定の精度がある程度得られる。このような場合、少ない台数のカメラ2により撮像される領域に対応する形状推定領域における領域を、第2の領域と設定すれば、その逆の領域に第2の領域が設定される場合よりも、設定された形状推定用情報により特定されるカメラ2の台数が少なくなる。その結果、形状推定処理の負荷がより軽減される効果を得ることができる。
【0033】
あるいは、第1の領域と第2の領域は、領域を撮像するカメラ2のカメラパラメータによって設定されてもよい。複数のカメラ2が撮像する撮像領域に含まれる複数の部分領域それぞれを撮像するカメラ2のカメラパラメータが異なる場合も考えられる。上述したサッカーやラグビーの例では、地面に近い領域に対しては、選手や審判を高解像に撮像するため、望遠カメラを用いて撮像することが考えられる。その一方で、地上10mくらいでは、被写体であるボールの移動を少ない台数で撮像するため、広角カメラを用いて撮像することが考えられる。そのため、広角カメラにより撮像される領域に対応する形状推定領域における領域を、第2の領域と設定してもよい。広角カメラであることを判別するために、境界情報は、カメラ2の内部パラメータに基づいて設定されてもよい。
【0034】
あるいは、第1の領域と第2の領域は、領域に含まれる被写体の数に基づいて設定されてもよい。例えば、複数のカメラ2が撮像する撮像領域に含まれる複数の部分領域において、被写体の数が異なる場合が考えられる。上述したサッカーやラグビーの例では、地面に近い領域においては、選手や審判、ボールなど被写体が多いが、一方で、地上10mくらいでは、被写体はボールである。そのため、地面に近い領域に対しては、多くのカメラ2により撮像を行い、地上10mくらいの領域に対しては、それよりも少ない台数のカメラ2により撮像することが考えられる。そのため、被写体の数が少ない領域に対応する形状推定領域における領域を、第2の領域と設定してもよい。そして、被写体の数が多い領域に対応する形状推定領域における領域を、第1の領域と設定するようにしてもよい。このために、境界情報は、被写体の数の情報に基づいて設定されてもよい。なお、領域に含まれる被写体の数は、イベントの種別などにより推定される。
【0035】
境界211が直方体情報(8つの位置の座標で示される情報)で示される場合、形状推定領域200は、
図2(a)に示すように領域が分割される。そして、境界211を示す座標で規定される直方体の内部の領域が第2の領域221として設定され、その直方体の外部の領域が第1の領域231として設定される。この例においても、分割される複数の領域のうち、どの領域を第2の領域、第1の領域とするかは適宜設定すればよい。例えば、第1の領域と第2の領域は、領域を撮像するカメラ2の台数によって設定されてもよい。例えば、サッカーなどのゴールシーンなどのように、重要なシーンが発生しそうな領域が分かっている場合は、その領域を多くのカメラ2で撮像し、それ以外の領域は、全カメラ台数の削減のため、少ない台数のカメラで撮像することが考えられる。このため、境界情報は、イベントの情報(例えばサッカーやラグビーなどのイベントの種類の情報)に基づいて設定されてもよい。
【0036】
この領域を設定するために用いられる境界情報は、形状推定装置1の内部のメモリに記憶されている。ただし、境界情報は、外部の装置から取得されてもよい。
【0037】
形状推定用情報生成部110は、第1の領域を構成する要素ごとに形状推定用情報を生成する。以下では、3次元形状を表現する要素としてボクセルを例に説明するが、これに限られない。形状推定用情報は、被写体の3次元形状を推定する処理に用いられるカメラを示す情報である。言い換えると、形状推定用情報は、3次元空間を構成する要素であるボクセルがどのカメラの画角内に収まっているのかを示す情報である。例えば、
図3に示すように、世界座標系の空間において、ボクセル300、カメラ310~340(各カメラの破線は画角を示す)が配置された場合、形状推定用情報は以下のように決定することができる。ボクセル300の中心座標もしくは8頂点の座標をカメラ310のカメラパラメータを用いて、カメラ310のカメラ画像座標系に変換する。変換後のカメラ画像座標系におけるx座標が0以上かつ、カメラ画像の横幅に対応するx座標より小さく、y座標も0以上かつカメラ画像の縦幅に対応するy座標より小さければ、ボクセル300は画角内であると判定する。他のカメラについても同様に計算することでボクセル300ごとに形状推定用情報が算出される。なお、ボクセル300がカメラの画角に含まれることを以下では、可視といい、カメラの画角に含まれないことを不可視という。また、言い換えると、ボクセル300がカメラの画角に含まれるとは、複数のカメラにより撮像される撮像領域におけるボクセル300に対応する領域が、カメラの画角内に含まれる、つまりそのカメラにより撮像されることを意味する。
【0038】
形状推定用情報は、カメラ台数以上のビット数をもった変数で表現し、例えば、ビット値0を不可視、1を可視とする。
図3の場合、カメラ4台であるので4ビット以上の変数で表現し、最小位ビットが1台目のカメラ310の可視性を示す。
図3の例では、カメラ310が可視、カメラ320が可視、カメラ330が不可視、カメラ340が可視となり、ボクセル300の形状推定用情報は1011として表現する。
【0039】
また、形状推定用情報生成部110は、第2の領域に、予め決められた形状推定用情報を設定する。第2の領域に設定される形状推定用情報としては、第1の領域に設定される形状推定用情報とは異なり、第2の領域を構成する要素ごとに別の情報が生成されるものではなく、第2の領域を構成する全要素に対して同じ情報である。具体的には、この形状推定用情報は、複数のカメラ2のうち、第2の領域の形状推定に用いると決定された一部のカメラ2のカメラ番号に該当するビットを1に設定した情報である。どのカメラ2を形状推定に用いるかは適宜設定できる。例えば、第2の領域に含まれる被写体の撮像に特化したカメラ2が、第2の領域の形状推定に用いると設定されてもよい。また、複数のカメラ2のうち広角カメラのみが、第2の領域の形状推定に用いると設定されてもよい。また、
図2(a)で示す第2の領域220の場合には、撮像領域のうち第2の領域220に対応する領域を撮像するカメラ2のみが、第2の領域220の形状推定に用いられると設定されてもよい。つまり、形状推定用情報生成部110は、撮像領域のうち第2の領域220に対応する領域を撮像するカメラ2を示す情報を、形状推定用情報として、第2の領域に設定する。以下では、第2の領域に含まれる被写体の撮像に特化したカメラが、第2の領域の形状推定に用いると設定されるものとして説明を行う。特化したカメラとは、画角が特定の被写体を撮像するように調整されたカメラであったり、カメラ内部での撮像画像に対する処理が特定の被写体に向けて調整されたカメラをいう。なお、第2の領域に設定される形状推定用情報は、第1の領域のボクセルごとに生成する形状推定用情報と、そのデータ形式が同じである。ただし、データ形式が異なっていてもよい。
【0040】
また、形状推定用情報生成部110は、第2の領域に対する形状推定用情報を生成してもよい。その形状推定用情報は要素ごとに生成されるものではなく、要素によらない第2の領域に共通の形状推定用情報であればよい。この構成であっても、第2の領域に対しても要素ごとに、形状推定用情報が生成される場合に比べて、形状推定用情報を生成する処理の負荷が軽減される。なお、形状推定用情報生成部110は、第2の領域に対する形状推定用情報を、カメラ2のカメラパラメータに基づいて生成してもよい。
【0041】
カメラ情報取得部120は、複数のカメラ2により撮像されて取得された複数の撮像画像を取得する。また、カメラ情報取得部120は、複数の撮像画像から複数の前景画像を取得してもよいし、複数のカメラ2から前景画像を取得してもよい。さらに、カメラ情報取得部120は、カメラ2のカメラパラメータを取得する。また、カメラ情報取得部120が、カメラ2のカメラパラメータを算出するようにしてもよい。例えば、カメラ情報取得部120は、複数の撮像画像から対応点を算出し、対応点を各カメラに投影した時の誤差が最小になるように最適化し、各カメラを校正することでカメラパラメータを算出する。なお、校正方法は既存のいかなる方法であってもよい。なお、カメラパラメータは、撮像画像に同期して取得されてもよいし、事前準備の段階で取得されてもよいし、また必要に応じて撮像画像に非同期で取得されてもよい。
【0042】
形状推定部130は、カメラ情報取得部120が取得したカメラ2の撮像画像とカメラパラメータ、領域設定部100が設定した形状推定領域の第1の領域と第2の領域、各領域に対応付けられた形状推定用情報に基づいて被写体の3次元形状を推定する。なお、カメラ情報取得部120により前景画像を取得する場合は、撮像画像に代えて前景画像を用いて3次元形状を推定すればよい。
【0043】
形状推定装置1のハードウェア構成について、
図4を用いて説明する。形状推定装置1は、CPU411、ROM412、RAM413、補助記憶装置414、表示部415、操作部416、通信I/F417、及びバス418を有する。CPU411は、ROM412やRAM413に格納されているコンピュータプログラムやデータを用いて形状推定装置1の全体を制御することで、
図1に示す形状推定装置1の各機能を実現する。なお、形状推定装置1がCPU411とは異なる1又は複数の専用のハードウェアを有し、CPU411による処理の少なくとも一部を専用のハードウェアが実行してもよい。専用のハードウェアの例としては、ASIC(特定用途向け集積回路)、FPGA(フィールドプログラマブルゲートアレイ)、およびDSP(デジタルシグナルプロセッサ)などがある。ROM412は、変更を必要としないプログラムなどを格納する。RAM413は、補助記憶装置414から供給されるプログラムやデータ、及び通信I/F417を介して外部から供給されるデータなどを一時記憶する。補助記憶装置414は、例えばハードディスクドライブ等で構成され、画像データや音声データなどの種々のデータを記憶する。
【0044】
表示部415は、例えば液晶ディスプレイやLED等で構成され、ユーザが形状推定装置1を操作するためのGUI(Graphical User Interface)などを表示する。操作部416は、例えばキーボードやマウス、ジョイスティック、タッチパネル等で構成され、ユーザによる操作を受けて各種の指示をCPU411に入力する。CPU411は、表示部415を制御する表示制御部、及び操作部416を制御する操作制御部として動作する。
【0045】
通信I/F417は、形状推定装置1の外部の装置(例えば、カメラ2、画像生成装置3)との通信に用いられる。例えば、形状推定装置1が外部の装置と有線で接続される場合には、通信用のケーブルが通信I/F417に接続される。形状推定装置1が外部の装置と無線通信する機能を有する場合には、通信I/F417はアンテナを備える。バス418は、形状推定装置1の各部をつないで情報を伝達する。
【0046】
本実施形態では表示部415と操作部416が形状推定装置1の内部に存在するものとするが、表示部415と操作部416との少なくとも一方が形状推定装置1の外部に別の装置として存在していてもよい。
【0047】
[動作フロー]
図5に示すフローチャートを用いて、形状推定装置1が行う処理について説明する。以降の説明においては、各処理ステップを単にSと表記する。CPU411がROM412等に記憶されたプログラムを読み出して実行することにより、以下の処理が実行される。
【0048】
S500において、カメラ情報取得部120は、カメラ2からカメラパラメータを取得する。なお、カメラ情報取得部120が、カメラパラメータを算出するようにしてもよい。また、カメラパラメータは撮像画像を取得する度に算出される必要はなく、形状推定する前に少なくとも1度算出されればよい。取得したカメラパラメータは、形状推定用情報生成部110と形状推定部130、画像生成装置3に出力される。
【0049】
S510において、領域設定部100は、補助記憶装置414に記憶された境界情報を取得する。そして、領域設定部100は、その境界情報に基づいて、例えば
図2(a)、(b)で示すように形状推定領域200を分割し、第1の領域230と第2の領域220を設定する。ここでは、境界情報として、上空のボールと地上の被写体形状を推定するために用いるカメラを制限するため、高さ情報のみであるz=2mが設定されていたとする。なお、領域設定部100は、補助記憶装置414から境界情報を取得したが、GUIを用いて境界情報をユーザに入力させて、その入力された値などから取得してもよい。なお、領域設定部100は、境界情報を取得できなかった場合には、形状推定領域200を第1の領域230として設定する。以降の処理は、第1の領域230に対する処理と同じ処理を行い、第2の領域220に対する処理は行われない。
【0050】
S520において、形状推定用情報生成部110は、第2の領域220に対し、形状推定に用いるカメラを特定するために、補助記憶装置414に記憶された形状推定用情報を設定する。形状推定用情報は、S510で境界情報を取得する際に、同時に取得されてもよい。その場合、例えば、形状推定用情報は、境界情報と同じファイル上に記述されていてもよい。また、形状推定用情報生成部110は、GUIを用いてユーザに入力させた値に基づいて、形状推定用情報を設定してもよい。また、40台のカメラで構成され、形状推定用情報として32~40ビット目が1、それ以外のビットが0の値が設定されている場合、形状推定用情報は、第2の領域220の形状推定の際に32番目から40番目のカメラだけを用いることを示す。つまり、形状推定用情報は、第2の領域220の形状推定の際に40台のうち8台を用いることを示す。この8台のカメラは、第2の領域220の被写体を撮像するために特化されたカメラである。
【0051】
S530において、形状推定用情報生成部110は、第1の領域230を構成するボクセルごとに形状推定用情報を生成する。まず、予め設定されたボクセルサイズで第1の領域230をボクセルの集合に分割する。各ボクセルはx、y、z方向に整数の座標値を持ち、形状推定用情報生成部110は、この座標値を指定することで一意にボクセルを指定する。そして、形状推定用情報生成部110は、指定されたボクセルに対して、形状推定用情報を決定する。まず、最初に全ボクセルに対応する形状推定用情報は、すべてのビット値が0に初期化される。次に、各ボクセルの代表座標を、全カメラのカメラ画像座標に変換し、n番目のカメラの画角内であると算出された場合、可視と判定し、該ボクセルの形状推定用情報のn番目のビット値を1にする。可視かどうかの判定は、
図3を用いて説明した通りである。なお、形状推定用情報生成部110は、全カメラを用いて形状推定用情報を生成しなくてもよい。例えば、形状推定用情報生成部110は、第2の領域220の形状推定に用いられるカメラを除いた残りのカメラだけを用いて形状推定用情報を生成してもよい。そして、その場合、第2の領域220の形状推定に用いられるカメラの官ら番号に対応するビット位のビット値は0とすればよい。
【0052】
全ボクセルについて処理を行うことで、第1の領域230を構成する全ボクセルのそれぞれに対応する形状推定用情報が生成される。また、8分木のような空間の多重解像度表現を用いて形状推定を階層的に行う場合、例えば、各階層におけるボクセルサイズで、階層ごと、かつボクセルごとに形状推定用情報を生成してもよい。また、このような階層的に形状推定を行う場合であっても、ある特定の階層だけ、形状推定用情報を生成してもよい。
【0053】
S540において、カメラ情報取得部120は、複数のカメラ2から、複数の撮像画像を取得し、シルエット画像を抽出する。取得されたシルエット画像は、形状推定部130に出力される。
【0054】
シルエット画像は、被写体のシルエットを示す画像である。具体的には、シルエット画像は、被写体が存在する領域の画素値が255、それ以外の領域の画素値が0で表される画像である。ただし、被写体の存在する領域が他の領域と区別されるものであれば、これに限定されない。画素値が255と0以外の2値で表されたものでもよいし、3値以上で表された画像でもよい。
【0055】
また、シルエット画像は、被写体を含む撮像画像から、試合開始前などに被写体が存在しない時に予め撮像した背景画像との差分を算出する背景差分法などの一般的な手法を用いて生成されてもよい。ただし、シルエット画像を生成する方法は、これに限定されない。例えば、被写体(人体)を認識するなどの方法を用いて、被写体の領域を抽出するようにしてもよい。
【0056】
また、カメラ情報取得部120は、カメラ2により抽出された前景画像を取得し、前景画像から被写体のシルエット画像を生成するようにしてもよい。この場合、カメラ情報取得部120は、前景画像からテクスチャ情報を消すことによりシルエット画像を生成すればよい。また、カメラ情報取得部120は、カメラ2により抽出されたシルエット画像そのものを取得してもよい。
【0057】
次に、形状推定部130は、S550からS590までを形状推定領域200内の全ボクセルを処理するまで繰り返すことで被写体の3次元形状を推定する。3次元形状の推定には、例えば、視体積交差法(shape-from-silhouette法)を用いる。ただし、推定方法はこれ以外の一般的な方法を用いることもできる。形状推定用のボクセルサイズは予めユーザによりGUIを用いて設定されてもよいし、テキストファイルなどを用いて設定されていてもよい。
【0058】
S550において、形状推定部130は、注目ボクセルの座標を基にボクセルが、算定領域に含まれるかを判定する。着目ボクセルが第1の領域に含まれる場合(S550でYes)、処理がS560に進む。一方、着目ボクセルが第1の領域に含まない場合、つまり、第2の領域に含まれる場合(S550でNo)、処理がS570に進む。
【0059】
なお、この処理は、着目ボクセルに対応けられた形状推定用情報があるかを判定する処理に置き換えてもよい。Yesの場合は、処理がS560に進み、Noの場合は、処理がS570に進む。
【0060】
S560において、形状推定部130は、着目ボクセルに対応するS530で算出したボクセルの形状推定用情報を取得する。
【0061】
S570において、形状推定部130は、着目ボクセルが第2の領域に含まれているため、S520で設定された形状推定用情報を取得する。
【0062】
S580において、形状推定部130は、S560又はS570で取得した情報に基づいて、着目ボクセルが被写体形状を構成する一部か否かを判定する(ボクセルの削除判定)。まず、形状推定部130は、S560又はS570で取得した情報の各ビットを走査し、1の値を示す位に対応するカメラをボクセルの削除判定に用いるカメラとして特定する。そして、形状推定部130は、S540で取得した複数のシルエット画像のうち、特定したカメラに対応するシルエット画像を取得する。また、形状推定部130は、S500で取得した複数のカメラのカメラパラメータのうち、特定したカメラに対応するカメラパラメータを取得する。このため、形状推定用情報は、要素を削除するかを判定するために用いられる撮像装置を示す情報ともいえる。
【0063】
次に、形状推定部130は、特定したカメラに対応するシルエット画像とカメラパラメータとに基づいて、着目ボクセルを削除するかの判定を行う。具体的には、形状推定部130は、注目ボクセルの代表点(例えば中心)の3次元座標を各カメラのシルエット画像の座標にカメラパラメータを用いて座標変換し、変換された座標におけるシルエット画像の画素値を取得する。その画素値が255であれば、そのシルエット画像の被写体を示す領域内に着目ボクセルに対応する座標があることがわかる。形状推定部130は、特定したカメラに対応する全シルエット画像において、着目ボクセルの座標が変換された座標の画素値が255であれば、着目ボクセルが被写体を構成する一部であると判定し、そのボクセルを削除しない。一方、変換された座標の画素値が0であるシルエット画像が1つでもある場合、形状推定部130は、着目ボクセルが被写体を構成する一部ではないと判定する。
【0064】
ただし、変換された座標の画素値が0であるシルエット画像の数が閾値以上の場合に、形状推定部130は、着目ボクセルが被写体を構成する一部ではないと判定するようにしてもよい。この閾値は、例えば、2や3などの任意の値でもよい。例えば、閾値が2の場合、変換された座標の画素値が0であるシルエット画像の数が1つであれば、その着目ボクセルは、被写体の一部と判定されることになり、削除されないことになる。このため、カメラパラメータの経時的な変化により、ボクセルが誤って削除されることを低減することができる。
【0065】
S590において、形状推定部130は、全ボクセルが処理されたかどうかを確認する。全ボクセルが処理されていない場合(S590でNo)、S550に戻り、形状推定部130は、残りのボクセルに対してS550~S580の処理を行う。全ボクセルが処理された場合(S590でYes)、形状推定部130は、被写体の一部であると判定されたボクセルを3次元形状データとして、画像生成装置3に出力する(S595)。
【0066】
画像生成装置3は、入力された3次元形状データと、複数のカメラ2の前景画像(又は撮像画像)と、カメラ2のカメラパラメータと、仮想視点情報に基づいて、仮想視点画像を生成する。生成された仮想視点画像は、表示装置4に出力される。仮想視点画像を生成する方法について説明する。画像生成装置3は、前景仮想視点画像(被写体領域の仮想視点画像)を生成する処理と、背景仮想視点画像(被写体領域以外の仮想視点画像)を生成する処理を実行する。そして、生成した背景仮想視点画像に前景仮想視点画像を重ねることで仮想視点画像を生成する。生成した仮想視点画像は表示装置4に送信され、不図示のディスプレイなどの表示装置に出力される。
【0067】
仮想視点画像の前景仮想視点画像を生成する方法について説明する。前景仮想視点画像は、ボクセルを3次元点と仮定し、3次元点の色を算出し、色が付いたボクセルを既存のCGレンダリング手法によりレンダリングすることで生成できる。色を算出する前に、まず、カメラ2のカメラから被写体の3次元形状の表面までの距離を画素値とする距離画像を生成する。次に、ボクセルに色を割り当てるために、座標Xwを画角内に含むカメラにおいて、Xwをカメラ座標系、カメラ画像座標系に変換し、該ボクセルからカメラまでの距離dとカメラ画像上の座標Xiを算出する。dと距離画像の座標Xiの画素値(=表面までの距離)との差を算出し、予め設定した閾値以下であれば、該ボクセルは該カメラから可視であると判定される。可視と判定された場合、カメラ2の撮像画像における座標Xiの画素値を該ボクセルの色とする。該ボクセルが複数のカメラにおいて可視と判定された場合、カメラ2の各撮像画像から画素値が取得され、例えば、それらの平均値を該ボクセルの色とする。ただし、色を算出する方法はこれに限定されない。例えば、平均値ではなく、仮想視点から最も近いカメラ2から取得された撮像画像の画素値を用いるなどの方法を用いても構わない。全ボクセルについて同じ処理を繰り返すことで3次元形状データを構成する全ボクセルに色を割り当てることができる。ここで、形状を構成する各ボクセルの可視判定対象のカメラはカメラ2を構成する全てのカメラでもよいが、S560やS570で取得した形状推定用情報に限定してもよい。このようにすることで、仮想視点画像を生成する処理時間を短縮できる。
【0068】
次に、仮想視点画像の背景仮想視点画像を生成する方法について説明する。背景仮想視点画像を生成するために、競技場などの背景の3次元形状データが取得される。背景の3次元形状データは、競技場などのCGモデルを予め作成し、システム内に保存しておいたCGモデルが用いられる。CGモデルを構成する各面の法線ベクトルとカメラ2を構成する各カメラの方向ベクトルを比較し、各面を画角内に収め、最も正対するカメラ2が算出される。そして、このカメラ2に面の頂点座標を投影し、面に貼るテクスチャ画像が生成され、既存のテクスチャマッピング手法でレンダリングすることで、背景仮想視点画像が生成される。このようにして得られた仮想視点画像の背景仮想視点画像上に前景仮想視点画像を重ねることで、仮想視点画像が生成される。
【0069】
本実施形態により、広大な形状推定領域に対して、形状推定用情報を要素ごとに生成する領域と、要素で共通の形状推定用情報を設定する領域にすることで、形状推定用情報の生成の負荷を軽減することができる。さらに、形状推定用情報を用いて、カメラを限定しながら形状推定することで、広大な空間の形状推定処理の処理負荷を軽減することもできる。
【0070】
なお、
図5の形状推定装置1が行う動作フローのS550について、8分木のような空間の多重解像度表現を用いて形状推定を階層的に行う場合においては条件がある。その条件は、着目ボクセルのサイズが形状推定用情報を生成する際に用いたボクセルのサイズ以下である。この条件を満たせば、S550は有効である。つまり、着目ボクセルのサイズが形状推定用情報を生成する際に用いたボクセルのサイズより小さい場合、S550でYesと判定されたら、S560において、一つ上の階層の形状推定用情報を取得すればよい。
【0071】
一方、上記条件を有さない場合、着目ボクセルに対応する形状推定用情報を生成する際に用いたボクセルが複数あり、S560においてどの形状推定用情報を取得すればよいか一意に決められない。さらに、複数の候補のボクセルのうち、第2の領域に含まれるボクセルもある。そのため、多重解像度表現を用いて形状推定を階層的に行う場合は、上記の条件を満たす場合にS550~S580の処理を行い、満たさない場合は、通常の全カメラを用いてボクセルの削除判定を行うようにすればよい。
【0072】
(実施形態2)
本実施形態では、第1の領域と第2の領域にカメラの優先度情報を紐付け、形状推定用情報と、優先度情報を用いて被写体の形状を推定する実施形態について述べる。
【0073】
[構成]
本実施形態における画像処理システムに用いられる形状推定装置6について、図面を参照しながら説明する。
図6は、形状推定装置6を有する画像処理システムを示す図である。
図6に示すように、形状推定装置6は、カメラ2、画像生成装置3、表示装置4に接続される。カメラ2、画像生成装置3、表示装置4の構成は、実施形態1と同じである。以下、実施形態1と同じ構成については説明を省略する。また、形状推定装置6のハードウェア構成は、
図4と同様である。
【0074】
形状推定装置6は、領域設定部100と、形状推定用情報生成部110、カメラ情報取得部620、優先度情報生成部630、形状推定部640を有する。実施形態1に優先度情報生成部630が追加され点と、形状推定部640の機能と動作が実施形態1と異なる。
【0075】
領域設定部100は、実施形態1と同様である。ただし、本実施形態において、境界情報が複数ある場合を例にして説明する。領域設定部100は、境界情報に基づいて、
図7に示すように、形状推定領域を3つに分割する。そして、境界情報は、高さ情報のみからなる情報と、直方体を示す情報を含む。高さ情報のみからなる境界情報により境界711が設定され、直方体を示す境界情報から境界712が設定される。そして、領域設定部100は、分割された3つの領域に対して、第1の領域720と第2の領域722と第3の領域721とを設定する。なお、どの領域を第1の領域又は第2の領域とするかは任意に設定されてもよい。
【0076】
形状推定用情報生成部110は、実施形態1と同様の計算方法で、第1の領域720と第3の領域721の形状推定用情報を生成する。また、第2の領域722には予め決めた形状推定用情報を設定する。
【0077】
優先度情報生成部630は、カメラ2を構成するカメラごとに優先度を示す情報を生成する。優先度情報は、カメラの焦点距離によって決定される。例えば、焦点距離が70mm以上に設定された望遠カメラは、被写体を大きく写せることから優先度を高く設定される。焦点距離が35mm以上70未満の標準カメラは、優先度を中程度に設定される。焦点距離が35mm未満の広角カメラは、優先度を低く設定される。なお、焦点距離の変更は、レンズ構成を変更することで行われてもよい。また、優先度の決定は、他の方法で行われてもよい。なお、焦点距離は、画角としてもよい。つまり、所定の画角以上の画角を有するカメラに対して優先度を高く設定し、所定の画角より小さい画角を有するカメラに対して優先度を低く設定してもよい。
【0078】
優先度情報は、複数のカメラ2の台数以上のビット列を、優先度の段階分だけ持つことで表現する。例えば、カメラ台数が32台である場合、32ビットの情報として表現し、段数が3段階(高中低)である場合、3つの32ビット値で表現する。
図8は、優先度情報の一例を示す。この例では、カメラ番号が0~7と16~23のカメラが優先度高、カメラ番号24~31のカメラが優先度中、カメラ番号8~15のカメラが優先度低である場合の例である。なお、ビットの位が小さいほどカメラ番号が小さい。つまり、右から順にカメラ番号が0から31までのカメラに関する情報が示されている。
【0079】
カメラ情報取得部620は、実施形態1のカメラ情報取得部120と同様に、複数のカメラ2の撮像により取得された撮像画像と、複数のカメラ2のカメラパラメータとを取得する。
【0080】
形状推定部640は、複数の撮像画像と、複数のカメラパラメータと、形状推定用情報と、優先度情報とに基づいて、被写体の3次元形状を推定する。なお、形状推定部640は、カメラ情報取得部620により前景画像やシルエット画像を取得する場合は、撮像画像に代えて前景画像又はシルエット画像を用いて被写体の3次元形状を推定すればよい。
【0081】
[動作フロー]
図9に示すフローチャートを用いて、形状推定装置6の処理を説明する。なお、
図5のフローチャートと同じ番号が付与されたステップは実施形態1のステップと同じであるので説明を省略する。
【0082】
S910において、領域設定部100は、境界情報を基に、形状推定領域を複数の領域に分割し、第1の領域又は第2の領域を設定する。境界情報には、上空のボールと、地上の被写体の形状推定に用いるカメラを変更するため、z=2mとして高さ情報のみを示す境界情報が含まれる。さらに、境界情報には、サッカーのゴールシーンなど重要なシーンが発生すると予想されるゴール前などの特定の領域を、特に高精度に形状推定するため、特定の領域を、例えば、直方体を示す境界情報が含まれる。この直方体を示す境界情報は、8頂点の座標で示される。これらの境界情報は補助記憶装置に記憶され、領域設定部100は、補助記憶装置から境界情報を読み込んでもよいし、GUIを用いてユーザにより入力された情報に基づいて設定するようにしてもよい。
【0083】
S930において、形状推定用情報生成部110は、第1の領域720と第3の領域721それぞれを構成するボクセルごとに、形状推定用情報を生成する。算出方法は、S530と同じであるため説明は省略する。
【0084】
S935において、優先度情報生成部630は、カメラの焦点距離に基づいて優先度情報を生成する。カメラの焦点距離に関する情報は、カメラ情報取得部620で取得されたカメラパラメータに含まれている。そして、優先度情報生成部630は、第1の領域720、第2の領域722、第3の領域721に優先度情報を割り当る。具体的には、優先度情報生成部630は、第1の領域720と第3の領域721には、優先度が高い優先度情報と優先度が中程度の優先度情報の両方を割り当てる。さらに、優先度情報生成部630は、第2の領域722には、優先度が低い優先度情報を割り当てる。このように割り当てることで、選手などがプレイする地上に近い領域で、解像度が低い広角カメラを使用した形状推定がなされないように制限することができる。
【0085】
S540は実施形態1と同様の処理なので説明を省略する。次に、形状推定部640は、S950からS990までを形状推定領域200内の全ボクセルを処理するまで繰り返すことで被写体の3次元形状を推定する。形状推定方法は、実施形態1と同様であるが、形状推定に用いるカメラがさらに限定されている点が異なる。カメラの限定のために、S935で生成した優先度情報が用いられる。
【0086】
S950において、形状推定部640は、注目ボクセルの座標を基にボクセルが、算定領域に含まれるかを判定する。着目ボクセルが第1の領域720又は第3の領域721に含まれる場合(S950でYes)、処理がS960に進む。一方、着目ボクセルが第1の領域720にも第3の領域721にも含まれない場合、つまり、第2の領域に含まれる場合(S950でNo)、処理がS970に進む。
【0087】
注目ボクセルが第1の領域720又は第3の領域721に含まれる場合のフローについて述べる(S960~S963)。このフローはボクセルの削除判定のフローであるが、その削除判定に用いるカメラを、形状推定用情報だけでなく、優先度情報に基づいて限定している。
【0088】
S960において、形状推定部640は、着目ボクセルに対応するS930で算出したボクセルの形状推定用情報を取得する。
【0089】
S961において、形状推定部640は、着目ボクセルが含まれる第1の領域720、721にS935で割り当てられた優先度情報を取得する。第1の領域720、第3の領域721には優先度情報として、優先度が高いカメラの情報と優先度が中程度のカメラの情報が割り当てられている。
【0090】
S962において、形状推定部640は、まず、優先度が高いカメラの情報と、優先度が中程度のカメラの情報とを用い、それらの情報のビットごとに論理和を算出する。さらに、形状推定部640は、その論理和を算出して生成した情報と、形状推定用情報とのビットごとの論理積を算出する。そして、形状推定部640は、論理積を算出した情報のうちビット値が1であるカメラを、ボクセルの削除判定に用いるカメラとして特定する。特定されたカメラを用いて行うボクセルの削除判定は、S580と同様である。なお、ここでは、S580の処理で用いた、閾値を2とする。
【0091】
S963は、S962で削除されなかった着目ボクセルが第1の領域720に含まれる場合に行われる処理である。つまり、S962で着目ボクセルが削除された場合や、着目ボクセルが第3の領域721に含まれる場合、S963はスキップされる。S963において、形状推定部640は、S962で残すと判定された着目ボクセルを、優先度情報として優先度が高いカメラを示す情報だけを用いて、さらにボクセルの削除判定を行う。このようにすることで、S962で削りきれなかったボクセルを、解像度が高い望遠カメラだけを用いて、さらに高精度に削除判定することができる。つまり、形状推定部640は、まず、優先度が高いカメラの情報と、形状推定用情報とのビットごとの論理積を算出する。そして、形状推定部640は、論理積を算出した情報のうちビット値が1であるカメラを特定する。この特定されたカメラを用いてボクセルの削除判定を行う。ここでは、S580の処理で用いた、閾値を1とするなど、S963で用いた閾値より小さい値にすることで、より精度の高い判定を行うことができる。
【0092】
一方、注目ボクセルが第1の領域720又は第3の領域721に含まれない場合のフローについて述べる(S970~S972)。ここで、S960~S962の処理と同様、ボクセルの削除判定に用いるカメラを、形状推定用情報だけでなく、優先度情報に基づいて限定している。
【0093】
S970において、着目ボクセルが第2の領域に含まれているため、形状推定部640は、S520で設定された形状推定用情報を取得する。
【0094】
S971において、形状推定部640は、着目ボクセルが含まれる第2の領域722にS935で割り当てられた優先度情報を取得する。第2の領域722には優先度情報として、優先度が低いカメラの情報が割り当てられている。
【0095】
S972において、形状推定部640は、まず、優先度が低いカメラの情報と、形状推定用情報とのビットごとの論理積を算出する。そして、形状推定部640は、論理積を算出した情報のうちビット値が1であるカメラを特定する。特定されたカメラを用いて行うボクセルの削除判定は、S580と同様である。なお、ここでは、S580の処理で用いた、閾値を2とする。これにより、上空の被写体を画角内に含む広角カメラに限定してボクセルの削除判定を実施でき、形状推定を高速化することできる。
【0096】
以降の処理は、実施形態1と同様である。
【0097】
本実施形態により、形状推定用情報および形状推定用情報に、焦点距離などに応じた優先度情報を加え、両方の情報を参照しながら被写体を形状推定できる。これにより、特に高解像度レンズを用いて高精度に形状を推定したい領域を設定することができる。
【符号の説明】
【0098】
1 形状推定装置
2 カメラ
110 形状推定用情報生成部
120 カメラ情報取得部
130 形状推定部