(57)【要約】【課題】仮想視点映像において存在すべきオブジェクトが消失することを低減する。【解決手段】画像処理装置が、複数の視点での撮影に基づく画像から、動体のオブジェクトの３次元形状データを生成し、仮想視点映像を生成する装置にそれを出力する。そして、撮影の一部の期間において、前記動体として振る舞うオブジェクトの３次元形状データを生成できない場合、過去に生成された当該オブジェクトの3次元形状データを、仮想視点映像を生成する装置に出力する。【選択図】図１
2020173629.tif 000002
【特許請求の範囲】
【請求項１】
仮想視点映像を生成する装置に、オブジェクトの形状を表す３次元形状データを出力する画像処理装置であって、
複数の視点での撮影に基づく画像から、動体のオブジェクトの３次元形状データを生成する第1の生成手段と、
前記第１の生成手段により生成された３次元形状データを、前記仮想視点映像を生成する装置に出力する出力手段と、
を有し、
前記第１の生成手段は、前記撮影の一部の期間で動体として振る舞うオブジェクトの３次元形状データを生成し、
前記第１の生成手段において前記撮影の一部の期間で動体として振る舞うオブジェクトの３次元形状データを生成できないことに基づいて、前記出力手段は、過去に生成された当該オブジェクトの３次元形状データを、前記仮想視点映像を生成する装置に出力する、
ことを特徴とする画像処理装置。
【請求項２】
前記画像のフレームから、前記複数の視点に対応するシルエット画像を生成する第２の生成手段をさらに有し、
前記第１の生成手段は、前記第２の生成手段から出力された前記複数の視点に対応するシルエット画像から、前記動体のオブジェクトの３次元形状を導出して、前記３次元形状データを生成する、
ことを特徴とする請求項１に記載の画像処理装置。
【請求項３】
前記撮影の一部の期間で動体として振る舞うオブジェクトの、前記第１の生成手段で生成された３次元形状データを保存する保存手段をさらに有する、ことを特徴とする請求項２に記載の画像処理装置。
【請求項４】
前記第１の生成手段によって導出された３次元形状を表す要素群の３次元空間上の座標を求める演算手段をさらに有し、
前記保存手段は、前記演算手段で求めた座標が一定時間同一座標にある場合、当該求めた座標に対応する３次元形状データを保存する、
ことを特徴とする請求項３に記載の画像処理装置。
【請求項５】
前記第１の生成手段は、前記保存手段によって３次元形状データが保存されている場合に、導出した３次元形状から生成した３次元形状データに代えて、当該保存されている３次元形状データを前記装置に出力する、ことを特徴とする請求項３又は４に記載の画像処理装置。
【請求項６】
前記第１の生成手段は、前記シルエット画像から前記動体のオブジェクトの３次元形状を導出できない場合に、前記保存手段によって保存されている３次元形状データを前記装置に出力する、ことを特徴とする請求項３又は４に記載の画像処理装置。
【請求項７】
前記第２の生成手段は、フレーム間差分法、又は、前記画像を構成するフレームと背景との差分が同じ内容で一定時間継続する場合に背景を更新する背景差分法を用いて、前記シルエット画像を生成することを特徴とする請求項２に記載の画像処理装置。
【請求項８】
前記過去に生成された３次元形状データの出力を停止させるユーザ指示を入力するためのユーザインタフェースを備えたことを特徴とする請求項３乃至７のいずれか１項に記載の画像処理装置。
【請求項９】
前記撮影の一部の期間で動体として振る舞うオブジェクトは、陸上競技で使用される器具であることを特徴とする請求項１乃至８のいずれか１項に記載の画像処理装置。
【請求項１０】
前記撮影の一部の期間で動体として振る舞うオブジェクトの、前記第２の生成手段で生成されたシルエット画像を保存する保存手段をさらに有し、
前記第２の生成手段は、所定の場合に、前記保存されたシルエット画像を前記第１の生成手段に出力し、
前記第１の生成手段は、前記保存されたシルエット画像を用いて、前記動体のオブジェクトの３次元形状を導出して、前記３次元形状データを生成する、
ことを特徴とする請求項２に記載の画像処理装置。
【請求項１１】
前記保存手段は、前記第２の生成手段で生成されたシルエット画像におけるシルエット領域の位置が一定時間変化しない場合、当該シルエット画像を保存することを特徴とする請求項１０に記載の画像処理装置。
【請求項１２】
前記第２の生成手段は、生成したシルエット画像に、前記撮影の一部の期間で動体として振る舞うオブジェクトのシルエット領域が含まれていない場合、前記保存されたシルエット画像を前記第１の生成手段に出力する、ことを特徴とする請求項１０又は１１に記載の画像処理装置。
【請求項１３】
仮想視点映像を生成するシステムであって、
複数の視点での撮影に基づく画像から、動体のオブジェクトの３次元形状データを生成する第１の生成手段と、
前記第１の生成手段により生成された３次元形状データに基づいて、前記仮想視点映像を生成する第２の生成手段と、
を有し、
前記第１の生成手段は、前記撮影の一部の期間で動体として振る舞うオブジェクトの３次元形状データを生成し、
前記第２の生成手段は、前記第１の生成手段により前記撮影の一部の期間で動体として振る舞うオブジェクトの３次元形状データを生成できないことに基づいて、過去に生成された当該オブジェクトの３次元形状データに基づいて、前記仮想視点映像を生成する、
ことを特徴とするシステム。
【請求項１４】
仮想視点映像を生成する画像処理装置であって、
複数の視点での撮影に基づく画像に基づいて生成された、動体のオブジェクトの３次元形状データを取得する取得手段と、
前記取得手段により取得された３次元形状データに基づいて、前記仮想視点映像を生成する生成手段と、
を有し、
前記取得手段は、前記撮影の一部の期間で動体として振る舞うオブジェクトが静止したことに基づいて、過去に生成された前記撮影の一部の期間で動体として振る舞うオブジェクトの３次元形状データを取得する
ことを特徴とする画像処理装置。
【請求項１５】
前記撮影の一部の期間で動体として振る舞うオブジェクトが静止した場合に、当該オブジェクトの３次元形状データを保存する保存手段と、
前記保存されている３次元形状データを用いて、仮想視点映像を生成する生成手段と、
を備えたことを特徴とする請求項１４に記載の画像処理装置。
【請求項１６】
前記オブジェクトの３次元形状を表す要素群の３次元空間上の座標を求める演算手段をさらに備え、
前記保存手段は、前記演算手段で求めた座標が一定時間同一座標にある場合、当該求めた座標に対応する３次元形状データを保存する、
ことを特徴とする請求項１５に記載の画像処理装置。
【請求項１７】
仮想視点映像を生成する装置に、オブジェクトの形状を表す３次元形状データを出力する 画像処理装置の制御方法であって、
複数の視点での撮影に基づく画像から、動体のオブジェクトの３次元形状データを生成する生成ステップと、
前記生成ステップにて生成された３次元形状データを、前記仮想視点映像を生成する装置に出力する出力ステップと、
を含み、
前記生成ステップでは、前記撮影の一部の期間で動体として振る舞うオブジェクトの３次元形状データを生成し、
前記出力ステップでは、前記生成ステップにて前記撮影の一部の期間で動体として振る舞うオブジェクトの３次元形状データを生成できないことに基づいて、過去に生成された当該オブジェクトの３次元形状データを、前記仮想視点映像を生成する装置に出力する、
ことを特徴とする制御方法。
【請求項１８】
複数の視点で撮影された動画像のフレーム間で移動していたオブジェクトが静止した場合に、当該オブジェクトの３次元形状データを保存する保存ステップと、
前記保存されている３次元形状データを用いて、仮想視点映像を生成する生成ステップと、
を含むことを特徴とする映像生成方法。
【請求項１９】
コンピュータを、請求項１乃至１２、請求項１４乃至１６のいずれか１項に記載の画像処理装置として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像処理技術に関する。
【背景技術】
【０００２】
昨今、オブジェクト（被写体）をさまざまな視点や角度から捉えた映像として視聴できる仮想視点映像という技術が注目されている。この仮想視点映像によれば、例えば、サッカーやバスケットボールのハイライトシーンを様々な角度から視聴することが出来るため、通常の映像と比較してユーザに高臨場感を与えることが出来る。このような仮想視点映像は、オブジェクトを取り囲むように設置した複数のカメラを用い、同一のタイミングで多方向から撮影した映像から生成される。
【０００３】
特許文献１に開示されるように、通常、仮想視点映像の生成の際には、まず、撮影シーンに存在するオブジェクトの３次元形状を表す３次元形状データが生成される。具体的には、まず、複数のカメラで撮影された映像の各フレーム（静止画像）を対象に、前景となるオブジェクトとそれ以外の背景に分離する前景背景分離処理を行って、オブジェクトのシルエットを抽出したシルエット画像を生成する。そして、得られたシルエット画像から、オブジェクトの３次元形状を表す３次元形状データを生成する。そして、ユーザが指示した仮想視点の情報と、３次元形状データに基づき、仮想視点からの見えを表した映像が得られる。
【０００４】
ここで、シルエット画像の生成においては、背景差分法やフレーム間差分法等が用いられる。そして、背景差分法では、新たに撮影した映像に基づき背景を更新することで、照明条件等の変化による背景変化にも対応できるようにする技術が知られている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１８−６７１０６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述のような背景の更新を行う背景差分法を用いてシルエット画像を生成する場合、一定時間動きのないオブジェクトは背景として識別され、以降は背景の一部として扱われることになり、シルエット画像が生成されなくなってしまう。こうしてシルエット画像が得られなくなると、動きの止まったオブジェクトの３次元形状データを生成できなくなる。そして、その３次元形状データに基づいて仮想視点映像が生成されず、結果的に、それまで仮想視点映像の中に存在していたオブジェクトが突然消失してしまうことになる。
【０００７】
そこで、本発明では、仮想視点映像において存在すべきオブジェクトが突然消失することを低減することを目的とする。
【課題を解決するための手段】
【０００８】
本開示に係る画像処理装置は、仮想視点映像を生成する装置に、オブジェクトの形状を表す３次元形状データを出力する画像処理装置であって、複数の視点での撮影に基づく画像から、動体のオブジェクトの３次元形状データを生成する第1の生成手段と、前記生成手段により生成された３次元形状データを、前記仮想視点映像を生成する装置に出力する出力手段と、を有し、前記生成手段は、前記撮影の一部の期間で動体として振る舞うオブジェクトの３次元形状データを生成し、前記生成手段において前記撮影の一部の期間で動体として振る舞うオブジェクトの３次元形状データを生成できないことに基づいて、前記出力手段は、過去に生成された当該オブジェクトの３次元形状データを、前記仮想視点映像を生成する装置に出力する、ことを特徴とする。
【発明の効果】
【０００９】
本発明によれば、仮想視点映像において存在すべきオブジェクトが突然消失することを低減することができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態１に係る、仮想視点映像システムの構成の一例を示す図
【図２】画像処理装置のハードウェア構成の一例を示す図
【図３】やり投げの様子を俯瞰で見た模式図
【図４】シルエット画像が生成される様子を説明する図
【図５】（ａ）〜（ｄ）は、静止しているオブジェクトの３次元モデルが生成できなくなってしまう理由を説明する図
【図６】実施形態１に係る、画像処理装置における処理の流れを示すフローチャート
【図７】（ａ）及び（ｂ）は、やりの三次元形状を示す図
【図８】（ａ）及び（ｂ）は、ボクセル群の３次元座標の算出を説明する図
【図９】三次元形状データを保存する際の管理テーブルの一例を示す図
【図１０】オブジェクトの動きが再開した場合を説明する図
【図１１】実施形態２に係る、仮想視点映像システムの構成の一例を示す図
【図１２】実施形態２に係る、画像処理装置における処理の流れを示すフローチャート
【図１３】オブジェクト追跡処理の様子を説明する図
【発明を実施するための形態】
【００１１】
以下、本発明の実施形態について、図面を参照して説明する。なお、以下の実施形態は本発明を限定するものではなく、また、本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。なお、同一の構成については、同じ符号を付して説明する。
【００１２】
［実施形態１］
図１は、本実施形態における、仮想視点映像システムの構成の一例を示す図である。なお、仮想視点映像とは、エンドユーザ及び／又は選任のオペレータ等が自由に仮想視点（現実には存在しない仮想カメラ）の位置及び姿勢を操作することによって生成される映像であり、自由視点映像や任意視点映像などとも呼ばれる。図１に示す仮想視点映像システムは、画像処理装置１００、カメラ群１１０、仮想視点映像生成装置１２０を有する。
【００１３】
画像処理装置１００は、カメラ群１１０から映像データを受信する。この映像データは、複数の異なる視点で撮影された映像（以下、「複数視点映像」と呼ぶ）データである。そして、受信した複数視点映像データから、オブジェクトの３次元形状を表すデータ（３次元形状データ、以下、「３次元モデル」とも表記）や、オブジェクトの色や質感を表す情報（以下、「テクスチャ情報」と呼ぶ）を生成する。生成された３次元モデルとテクスチャ情報は、仮想視点映像生成装置１２０に送られる。送信されるテクスチャ情報は、オブジェクトの表面の色情報と輝度情報と彩度情報のうち少なくとも１つの情報を有している。テクスチャ情報としては、撮像画像や前景画像の形式で送信されてもよいし、３次元モデルに対応して、３次元モデルを構成する要素ごとにテクスチャ情報を対応付けたテクスチャ画像の形式で送信されてもよい。
【００１４】
カメラ群１１０は、複数のデジタルビデオカメラ（以下、単に「カメラ」と表記）で構成される。各カメラは、シリアルデジタルインタフェース（ＳＤＩ）に代表される映像信号インタフェースを備えており、映像信号インタフェースを介して、各カメラで撮影した映像データを画像処理装置１００に出力する。
【００１５】
仮想視点映像生成装置１２０は、画像処理装置１００から受け取った３次元モデル及びテクスチャ情報を用いてレンダリング処理を行って、ユーザが指定した仮想視点からの見えを表す仮想視点映像を生成する。本実施形態の３次元モデルは、仮想視点映像空間としての３次元空間上に、オブジェクトの３次元形状を表す要素群としてのボクセル群が配置された状態で、仮想視点映像生成装置１２０に入力されるものとする。そして、レンダリング処理では、別途入力された仮想視点情報に従って、３次元モデルが表すオブジェクトの３次元形状の表面にテクスチャを貼り付ける処理を行うことで、仮想視点映像を得るものとする。生成された仮想視点映像データは、液晶ディスプレイ等に代表される不図示の表示装置に出力・表示され、ユーザの視聴に供される。
【００１６】
なお、仮想視点情報には、少なくとも仮想視点の位置及び方向に関する情報が含まれる。また、仮想視点の指定には、少なくとも仮想視点の位置及び方向に関する指定が含まれる。また、仮想視点の指定は、ユーザによる指定でなくてもよい。例えば、装置が、自動で指定するような構成であってもよい。
【００１７】
（画像処理装置のハードウェア構成）
図２は、画像処理装置１００のハードウェア構成の一例を示す図である。画像処理装置１００は、ＣＰＵ２０１、メインメモリ２０２、ＨＤＤ２０３、入力部２０４、表示部２０５、外部Ｉ／Ｆ２０６を備え、各部がバス２０７を介して接続されている。まず、ＣＰＵ２０１は、画像処理装置１００を統括的に制御する演算処理装置であり、ＨＤＤ２０３等に格納された各種プログラムを実行して、後述する様々な画像処理を行う。メインメモリ２０２は、各種処理で用いるデータやパラメータなどを一時的に格納するほか、ＣＰＵ２０１に作業領域を提供する。ＨＤＤ２０３は、各種プログラムや入力された映像データなどを記憶する不揮発性の大容量記憶装置であり、例えばＳＳＤ等でもよい。入力部２０４は、キーボードやマウス、電子ペン、タッチパネル等の装置であり、様々なユーザ指示を受け付ける。表示部２０５は、液晶パネルなどで構成され、ＵＩ（ユーザインタフェース）画面の表示などを行う。外部Ｉ／Ｆ部２０６は、カメラ群１１０を構成する各カメラ及び仮想視点映像装置１３０とネットワーク（ここではＬＡＮ２０８）を介して、複数視点映像データや３次元モデルといった各種データの送受信を行う通信インタフェースである。バス２０７は上述の各部を接続し、データ転送を行う。
【００１８】
なお、仮想視点映像装置１２０も、画像処理装置１００と同様の構成を備え、ＣＰＵやメインメモリを用いて上述のレンダリング処理などを行う。 
【００１９】
（画像処理装置のソフトウェア構成）
次に、前述の図１を参照して、画像処理装置１００のソフトウェア構成について説明する。図１において、画像処理装置１００を示す枠内には、４つの機能部、すなわち、シルエット画像生成部１０１、３次元形状導出部１０２、座標演算部１０３及び３次元形状データ記憶部１０４が示されている。以下、各部について説明する。
【００２０】
シルエット画像生成部１０１は、カメラ群１１０から入力された複数視点映像データを対象として、前景となるオブジェクトのシルエット画像を生成する。シルエット画像とは、オブジェクトの輪郭内側を塗り潰し、各画素２値で表すことで当該オブジェクトの２次元形状を表した単色の画像である。本実施形態のシルエット画像生成部１０１は、背景差分法を用いて、すなわち、時系列に入力される各フレーム（静止画像）と予め用意した背景画像との差分を求めて２値化することでシルエット画像を得る。なお、２値化に限らず、前景領域が他の領域と区別される画像であれば、どのようなものでもよい。また、シルエット画像生成部１０１は、照明条件の変化があった場合など、背景との差分が同じ内容で一定時間継続する場合に、背景画像を更新する。これにより、照明条件の変化等の影響を受けずに、シルエット画像を生成することができる。さらに、シルエット画像生成部１０１は、生成した各シルエット画像が表す２次元形状の色や質感を表現する画像データを、テクスチャ情報として生成する。生成されたシルエット画像データとテクスチャ情報は、３次元形状導出部１０２に入力される。
【００２１】
３次元形状導出部１０２は、シルエット画像生成部１０１で生成されたシルエット画像からオブジェクトの３次元形状を導出して３次元形状データを生成し、仮想視点映像装置１２０に出力する。３次元形状が導出される対象となるオブジェクトは、前景であり、少なくとも複数のフレームを通して、動体として振る舞うオブジェクトである。そして、３次元形状導出部１０２は、複数視点画像の撮影の一部の期間で動体として振る舞うオブジェクトの３次元形状データを生成できない場合、過去に生成された当該オブジェクトの３次元形状データを、仮想視点映像を生成する装置に出力する。本実施形態においては、３次元形状のデータ形式として、本実施形態ではボクセル形式を例に説明を行うが、オブジェクトの３次元形状を特定可能な形式であればどのようなデータ形式でもよく、点群形式やメッシュ形式など他のデータ形式でもよい。３次元形状の導出には、一般的に使用されている視体積交差法を用いる。視体積交差法は、複数のカメラで撮像された視点の異なる映像から得られた複数のシルエット画像を、３次元空間に逆投影し、それぞれの視体積の交差部分を求めることにより、オブジェクトの３次元形状を得る手法である。なお、ここでは、説明を簡単にするためにカメラ台数を４台としたが、カメラ台数を増やしシルエット画像を増やすことによって、より高精度の３次元形状を導出することができる。また、３次元形状を導出する手法は視体積交差法に限定されず、ステレオマッチング法などの他の手法を用いてもよい。なお、本実施形態における、オブジェクトの３次元形状の導出処理の詳細については後述する。
【００２２】
座標演算部１０３は、３次元形状導出部１０２によって導出されたオブジェクトの３次元形状を表すボクセル群を３次元空間座標にマッピングをして、ボクセル群の存在する３次元座標を算出する。本実施形態では、ボクセル群の外接する直方体（以後、「３Ｄバウンディングボックス」と呼ぶ）の８つの頂点座標を、ボクセル群の３次元座標として求める。
【００２３】
３次元形状データ記憶部１０４は、３次元形状導出部１０２の指示に従い、３次元形状データをＨＤＤ２０３に格納したり、ＨＤＤ２０３から特定の３次元形状データを読み出す処理を行う。
【００２４】
（課題）
本実施形態においては、フレーム間で動きのあった動体のオブジェクトがその動きを止めて静止した場合であっても、その３次元形状データを途切れることなく、仮想視点映像生成装置１２０に供給できるようにする。それを実現するための具体的な処理内容の説明に入る前に、問題の所在について確認しておく。
【００２５】
ここでは、陸上競技の一種であるやり投げ競技を撮影シーンとした場合を例として、図３〜図５を参照しつつ説明する。図３は、フィールド３００上で選手３０２がやり３０３を投てきした様子を俯瞰で見た模式図であり、フィールド３００の周囲には、仮想視点映像の元となる複数視点映像を得るための４台のカメラ３０１ａ〜３０１ｄが配置されている。４台のカメラ３０１ａ〜３０１ｄそれぞれが異なる方向から同期して撮影を行うことで複数視点映像が得られる。なお、各カメラ３０１ａ〜３０１ｄが６０ｆｐｓで撮影を行う場合、１秒分の複数視点映像には、６０×４＝２４０枚のフレーム（静止画像）が含まれることになる。図３ではカメラ台数は４台であるが、実際に陸上競技が行われるスタジアムのような実環境ではより多くのカメラが配置される。また、図４には、カメラ３０１ｃが撮像した動画像のあるフレームから、やり３０３のシルエット画像が生成される様子が示されている。いま、入力画像４０１には、選手３０２が放ったやり３０３が写っている。シルエット画像生成部１０１は、入力画像４０１と予め用意した背景画像４０２との差分から、シルエット画像４０３を得る。ここで、前述のとおり、背景差分法においては、照明条件の変化などに対応するため、一定時間背景との差分が継続すると、背景画像の更新を行う。この背景画像の更新によって、動きを止めて静止したオブジェクトについての３次元モデルが生成できなくなってしまう。その理由を、図５（ａ）〜（ｄ）を参照して詳しく説明する。なお、以下の説明において、「フレームデータ」を、同一時刻に撮影された、視点の異なる複数の静止画のまとまりを指すものとして用いるものとする。
【００２６】
図５（ａ）〜（ｄ）には、入力された複数視点映像の対象フレームデータにおける、やり３０３の状態が各図の上段に示され、それぞれの状態におけるシルエット画像が各図の下段に示されている。まず、時刻０：００：１０：００のフレームデータに対応する図５（ａ）の上段においては、選手３０２が放ったやり３０３は飛んでいる状態である。次に、その１秒後の時刻０：００：１１：００のフレームデータに対応する図５（ｂ）では、やり３０３はフィールド３００に刺さった状態である。そして、時刻０：００：１６：００のフレームデータに対応する図５（ｃ）及び、時刻０：００：２１：００のフレームデータに対応する図５（ｄ）では、やり３０３はフィールド３００に刺さったままその動きを止めて静止している状態である。
【００２７】
そして、各図の下段のシルエット画像についてみると、まず時刻０：００：１０：００では、やり３０３は飛んでいる状態であるので背景画像４０２に対して差分がある。そのため、やり３０３のシルエットの導出が可能で、各カメラ３０１ａ〜３０１ｄの撮影画像に対応したシルエット画像５０１〜５０４を得ることができる。次に、時刻０：００：１１：００及び時刻０：００：１６：００では、やり３０３はフィールド３００に刺さり動きが止まった状態である。ここで、シルエット画像の生成処理において、入力フレームデータにおいて１０秒間動きが無い領域を新たな背景とする、背景更新処理を行うこととする。この場合、やり３０３は時刻０：００：１１：００の時点でフィールド３００に刺さって静止したので、０：００：２１：００までは背景画像４０２は更新されない。したがって、各カメラ３０１ａ〜３０１ｄの撮影画像に対応した、刺さって静止した状態のやり３０３のシルエット画像５１１〜５１４が時刻０：００：１１：００について、同様のシルエット画像５２１〜５２５が時刻０：００：１６：００について生成される。そして、時刻０：００：２１：００では、やり３０３が静止した時刻０：００：１１：００から１０秒が経過している。この場合、背景画像が、やり３０３がフィールド３００に刺さった状態の画像へと更新されているので、各カメラ３０１ａ〜３０１ｄの撮影画像との差分がなくなり、やり３０３のシルエットが抽出できなくなってしまう。そして、時刻０：００：２１：００については、やり３０３のシルエットが存在しないシルエット画像５３１〜５３４が生成されてしまうことになる。その結果、時刻０：００：１０：００ではシルエット画像５０１〜５０４に基づき、飛んでいる状態のやり３０３の形状を表す３次元モデルが生成される。そして、時刻０：００：１１：００及び時刻０：００：１６：００では、シルエット画像５２１〜５２４に基づき、フィールド３００に刺さった状態のやり３０３の形状を表す３次元モデルがそれぞれ生成される。しかしながら、時刻０：００：２１：００では、シルエット画像５３１〜５３４にはやり３０３のシルエットが存在しないことから、やり３０３の形状を表す３次元モデルが生成されない。その結果、仮想視点映像からやり３０３が突然消失するという問題が生じることになる。これが本発明の課題である。
【００２８】
なお、上記課題は、背景差分法に限ったものではない。一定時間動きのないオブジェクトが前景ではなく背景として扱われてしまい、所望のシルエット画像が得られないという問題は、例えばフレーム間差分法においても起こり得るものである。また、本実施形態では、撮影の一部の期間で動体として振る舞うオブジェクトの例として、やり投げにおける「やり」を例に説明を行うが、陸上競技で用いられる様々な器具に適用可能である。例えば、やり投げ以外の投てき競技に用いられる器具、例えば砲丸やハンマーにも同様に適用可能である。さらには、走り高跳びや棒高跳びといった跳躍競技で用いるバー（横木）など、静止していた状態から動き出す器具などにも適用可能である。
【００２９】
続いて、本実施形態に係る、画像処理装置１００における処理について、前述の図５（ａ）〜（ｄ）に示す各時刻のフレームデータを処理する場合を例に、図６のフローチャートを参照しつつ説明する。この場合において、図５（ｂ）〜（ｄ）のフレーム間、すなわち、時刻０：００：１１：００から時刻０：００：２１：００の１０秒間、オブジェクトであるやり３０３は、フィールド３００に刺さった状態のまま動かずにいるものとする。図６のフローチャートに示す各処理は、ＨＤＤ２０３に格納された制御プログラムがメインメモリ２０２に読み出され、ＣＰＵ２０１がこれを実行することによって実現される。なお、以下の説明において「Ｓ」はステップを意味する。
【００３０】
＜時刻０：００：１０：００＞
まず、Ｓ６０１では、シルエット画像生成部１０１が、処理対象のフレームデータからシルエット画像を生成する。ここでは、飛んでいる状態のやり３０３のシルエットを含むシルエット画像５０１〜５０４が生成されることになる。生成されたシルエット画像５０１〜５０４のデータは、３次元形状導出部１０２に入力される。
【００３１】
続くＳ６０２では、３次元形状導出部１０２が、入力されたシルエット画像に基づき、オブジェクトの３次元形状を導出する。図７（ａ）は、ここで導出される、やり３０３の３次元形状データを示している。仮想視点映像空間となる３次元空間７００内に、飛んでいる状態のやり３０３の形状を表すボクセル群７０１が存在する３次元形状データが得られることになる。こうして得られた３次元形状データは、座標演算部１０３に入力される。
【００３２】
続くＳ６０３では、座標演算部１０３が、入力された３次元形状データに含まれるすべてのボクセル群のうち、注目するボクセル群の３次元座標を算出する。ここでは、やり３０３の形状を表すボクセル群７０１を注目ボクセル群として、その３次元座標が算出されることになる。図８（ａ）は、図７（ａ）に示すボクセル群７０１について算出された３次元座標を示している。この３次元座標は、３次元空間７００において、（ｘ,ｙ,ｚ）＝（0,0,0）を原点としたときのボクセル群７０１の位置を、ｘ座標、ｙ座標、ｚ座標で特定した情報である。ここでは、ボクセル群７０１に外接する３Ｄバウンディングボックスの８つの頂点Ａ〜Ｈの座標が求められることになる。３Ｄバウンディングボックスの各頂点Ａ〜Ｈの座標は、以下のようにして求められる。
【００３３】
まず、複数のボクセルで構成されているボクセル群７０１の各軸の最小座標値と最大座標値（x_max）を求める。いま、ボクセル群７０１のｘ軸の最小座標値（x_min）＝80、最大座標値（x_max）＝85とする。同様に、ｙ軸の最小座標値（y_min）＝120、最大座標値（y_max）＝160、ｚ軸の最小座標値（z_min）＝100、最大座標値（z_max）＝140とする。そして、これら各軸の最大座標値と最小座標値とを組み合わせることで、各頂点の座標とする。例えば、頂点Ａは、各軸の最小座標値を組み合わせた座標、すなわち、（x_min，y_min，z_min）＝（80,120,100）となる。同様に、他の頂点Ｂ〜Ｈについても求めることができ、まとめると以下のようになる。
頂点Ａ：（x_min，y_min，z_min）＝（80,120,100）
頂点Ｂ：（x_max，y_min，z_min）＝（85,120,100）
頂点Ｃ：（x_max，y_max，z_min）＝（85,160,100）
頂点Ｄ：（x_min，y_max，z_min）＝（80,160,100）
頂点Ｅ：（x_min，y_min，z_max）＝（80,120,140）
頂点Ｆ：（x_max，y_min，z_max）＝（85,120,140）
頂点Ｇ：（x_max，y_max，z_max）＝（85,160,140）
頂点Ｈ：（x_min，y_max，z_max）＝（80,160,140）
【００３４】
このようにして得られた注目ボクセル群の３次元座標の情報は、３次元形状導出部１０２に入力される。
【００３５】
次に、Ｓ６０４では、３次元形状導出部１０２が、Ｓ６０３で算出された注目ボクセル群の３次元座標が、一定時間同一座標のまま変化がないかを判定する。一定時間は任意の時間でよいが、本実施形態では５秒間とする。この判定処理の意味は、注目ボクセル群に対応するオブジェクトが、所定フレーム数の間、同じ位置に留まって動きがないかどうかを確認することにある。この判定は、Ｓ６０３で算出された３Ｄバウンディングボックスの３次元座標が、現フレームよりも前の所定フレーム数を通じて、同一座標と評価される範囲内に収まっているかどうかをチェックすることによって行う。いま、時刻０：００：１０：００の時点では、それ以前のフレームデータが存在せず、比較対象となる３Ｄバウンディングボックスがそもそも無い。したがって、Ｓ６０３で算出されたボクセル群７０１の３次元座標が、一定時間同一座標のままということはない。この場合、Ｓ６０５をスキップして、Ｓ６０６に進む。
【００３６】
次に、Ｓ６０６では、すべてのボクセル群が処理されたかどうかが判定される。すべてのボクセル群の処理が完了していれば、Ｓ６０７に進む。一方、未処理のボクセル群が存在する場合は、Ｓ６０３に戻って、次のボクセル群を対象として同様の処理を繰り返す。本実施形態においては、説明の簡単化のため、存在するボクセル群が１つの場合を例としているので、未処理のボクセル群はないと判定され、Ｓ６０７に進むことになる。
【００３７】
Ｓ６０７では、保存されているボクセル群のデータがあるかどうかが判定される。いま、Ｓ６０５はスキップされており、それ以前に保存されたボクセル群のデータもないので、さらにＳ６０８をスキップしてＳ６０９に進む。
【００３８】
Ｓ６０９では、３次元形状導出部１０２が、オブジェクトの形状を表すボクセル群が仮想視点映像空間となる３次元空間内に配置された３次元形状データを、仮想視点映像装置１２０に出力する。時刻０：００：１０：００では、Ｓ６０２で導出された、飛んでいる状態のやり３０３の形状を表すボクセル群７０１が３次元空間７００内に存在する３次元形状データが出力されることになる。
【００３９】
そして、Ｓ６１０では、すべてのフレームデータについて処理が完了したかどうかが判定される。未処理のフレームがあればＳ６０１に戻って、次のフレームデータを対象とした処理が続行される。ここでは、時刻０：００：１１：００のフレームデータを処理するべく、Ｓ６０１に戻る。
【００４０】
＜時刻０：００：１１：００＞
Ｓ６０１では、シルエット画像生成部１０１が、入力された対象フレームデータからシルエット画像を生成する。ここでは、フィールド３００に刺さった状態のやり３０３のシルエットを含むシルエット画像５１１〜５１４が生成されることになる。生成されたシルエット画像５１１〜５１４のデータは、３次元形状導出部１０２に入力される。
【００４１】
Ｓ６０２では、３次元形状導出部１０２が、入力されたシルエット画像に基づき、オブジェクトの３次元形状を導出する。図７（ｂ）は、ここで導出される、やり３０３についての３次元形状データを示している。仮想視点映像空間となる３次元空間７００内に、フィールド３００に刺さった状態のやり３０３の形状を表すボクセル群７０２が存在する３次元形状データが得られることになる。こうして得られた３次元形状データは、座標演算部１０３に入力される。
【００４２】
Ｓ６０３では、座標演算部１０３が、入力された３次元形状データに含まれるボクセル群のうち注目するボクセル群の３次元座標を算出する。ここでは、フィールド３００に刺さった状態のやり３０３の形状を表すボクセル群７０２を注目ボクセル群として、その３次元座標が算出されることになる。図８（ｂ）は、図７（ｂ）に示すボクセル群７０２について算出された３次元座標を示している。この３次元座標は、３次元空間７００において、（ｘ,ｙ,ｚ）＝（0,0,0）を原点としたときのボクセル群７０２の位置を、ｘ座標、ｙ座標、ｚ座標で特定した情報である。図８（ａ）と同様、ボクセル群７０２に外接する３Ｄバウンディングボックスの８つの頂点Ａ´〜Ｈ´の座標が求められることになる。いま、３Ｄバウンディングボックスの各頂点Ａ´〜Ｈ´の座標は、以下のようになる。
頂点Ａ´：（x_min，y_min，z_min）＝（80,20,0）
頂点Ｂ´：（x_max，y_min，z_min）＝（85,20,0）
頂点Ｃ´：（x_max，y_max，z_min）＝（85,60,0）
頂点Ｄ´：（x_min，y_max，z_min）＝（80,60,0）
頂点Ｅ´：（x_min，y_min，z_max）＝（80,20,40）
頂点Ｆ´：（x_max，y_min，z_max）＝（85,20,40）
頂点Ｇ´：（x_max，y_max，z_max）＝（85,60,40）
頂点Ｈ´：（x_min，y_max，z_max）＝（80,60,40）
【００４３】
Ｓ６０４では、３次元形状導出部１０２が、Ｓ６０３で算出された注目ボクセル群の３次元座標が、一定時間同一座標のまま変化がないかを判定する。ここでは、フィールド３００に刺さった状態のやり３０３の３次元形状を表すボクセル群７０２に外接する３Ｄバウンディングボックスの座標が、一定時間同一座標のまま変化がないか判定することになる。具体的には、まず、現時点（時刻０：００：１１：００の時点）における３Ｄバウンディングボックスの座標と、その１秒前の時点（時刻０：００：１０：００の時点）における３Ｄバウンディングボックスの座標とを比較する。そして、双方の座標が一致するかどうかを判定する。例えば、実際のやり３０３の長さが260cmであって、それに対応するボクセル長が56ボクセルであったとする。この場合、１ボクセル長＝260cm /56ボクセル＝5.2 cm/ボクセルとなり、x，y，zの座標が１座標動くことで5.2cm動いたことになる。いま、やり３０３の動く範囲が5.2cm以下であれば、やり３０３は静止していると判断するものとする。この場合、座標の変化がなければ、同一座標と判断することになる。仮に、動く範囲が10.4cm以下であれば静止していると判断する場合は、座標の変化が１以内のときに同一座標と判断することになる。このように座標間の差が、許容される動きに対応する範囲内に収まっていれば、同一座標のまま変化がないとして扱う。前述のとおり、1秒前の頂点Ａの座標は（85,120,100）であるのに対し、現時点の頂点Ａ´の座標は（80,20,0）であり、双方の座標は一致していない。同様に、1秒前の頂点Ｂ〜Ｈの各座標と、現時点の頂点Ｂ´〜Ｈ´の各座標はいずれも大きく異なっている。したがって、ボクセル群７０２の座標は、一定時間同一座標のまま変化がない、とは判断されない。この場合、Ｓ６０５をスキップして、Ｓ６０６に進む。
【００４４】
Ｓ６０６では、すべてのボクセル群が処理されたかどうかが判定される。いま、存在するボクセル群は１つなので、未処理のボクセル群はないと判定され、Ｓ６０７に進むことになる。
【００４５】
Ｓ６０７では、保存されているボクセル群のデータがあるかどうかが判定される。いま、Ｓ６０５はスキップされており、それ以前に保存されたボクセル群のデータもないので、さらにＳ６０８をスキップしてＳ６０９に進む。
【００４６】
Ｓ６０９では、３次元形状導出部１０２が、オブジェクトの形状を表すボクセル群が仮想視点映像空間となる３次元空間内に配置された３次元形状データを、仮想視点映像装置１２０に出力する。時刻０：００：１１：００では、Ｓ６０２で導出された、フィールド３００に刺さった状態のやり３０３の形状を表すボクセル群７０２が３次元空間７００内に存在する３次元形状データが出力されることになる。
【００４７】
そして、Ｓ６１０では、すべてのフレームデータについて処理が完了したかどうかが判定される。未処理のフレームがあればＳ６０１に戻って、次のフレームデータを対象とした処理が続行される。ここでは、時刻０：００：１６：００のフレームデータを処理するべく、Ｓ６０１に戻る。
【００４８】
＜時刻０：００：１６：００＞
Ｓ６０１では、シルエット画像生成部１０１が、入力された対象フレームデータからシルエット画像を生成する。ここでは、フィールド３００に刺さったままの状態のやり３０３のシルエットを含むシルエット画像５２１〜５２４が生成されることになる。生成されたシルエット画像５２１〜５２４のデータは、３次元形状導出部１０２に入力される。
【００４９】
Ｓ６０２では、３次元形状導出部１０２が、入力されたシルエット画像に基づき、オブジェクトの３次元形状を導出する。いま、やり３０３はフィールド３００に刺さった状態であり、前述の図７（ｂ）に示した３次元形状データが得られることになる。得られた３次元形状データは、座標演算部１０３に入力される。
【００５０】
Ｓ６０３では、座標演算部１０３が、入力された３次元形状データに含まれるボクセル群のうち注目するボクセル群の３次元座標を算出する。ここでは、時刻０：００：１１：００のときと同様、やり３０３の形状を表すボクセル群７０２に外接する３Ｄバウンディングボックスの８つの頂点Ａ´〜Ｈ´の座標が求められることになる。
【００５１】
Ｓ６０４では、３次元形状導出部１０２が、Ｓ６０３で算出された注目ボクセル群の３次元座標が一定時間同一座標のまま変化がないかを判定する。ここでは、フィールド３００に刺さった状態のやり３０３の３次元形状を表すボクセル群７０２に外接する３Ｄバウンディングボックスの座標が、一定時間同一座標のまま変化がないか判定することになる。いま、３Ｄバウンディングボックスの座標は、５秒前の時刻０：００：１１：００のときと同じである。したがって、ボクセル群７０２の座標は、一定時間同一座標のまま変化がないと判定されることになる。この場合、Ｓ６０５に進む。
【００５２】
Ｓ６０５では、３次元形状データ記憶部１０４が、一定時間同一座標にある注目ボクセル群のデータをＨＤＤ２０３に保存する。ここでは、５秒間同一の座標のまま変化のない３Ｄバウンディングボックス内のボクセル群７０２のデータが保存されることになる。図９に、３次元形状データ記憶部１０４における保存データの管理テーブルの一例を示す。本実施形態では、保存対象のボクセル群のデータ毎にＩＤを付与し、３次元空間上の３Ｄバウンディングボックスの座標と当該３Ｄバウンディングボックス内のボクセル群のデータを保持する。いま、図９の管理テーブルにおける時刻０：００：１６：００の行に示すように、３Ｄバウンディングボックスの頂点Ａ´〜頂点Ｈ´の座標情報と当該３Ｄバウンディングボックス内のボクセル群７０２のデータが、ＩＤ「００１」と紐付けて保存される。図９のテーブルにおいて、時刻０：００：１０：００及び時刻０：００：１１：００の行がブランクなのは、前述のとおり、ボクセル群のデータが保存されていないためである。
【００５３】
Ｓ６０６では、すべてのボクセル群が処理されたかどうかが判定される。いま、存在するボクセル群は１つなので、未処理のボクセル群はないと判定され、Ｓ６０７に進むことになる。
【００５４】
Ｓ６０７では、保存されているボクセル群のデータがあるかどうかが判定される。いま、Ｓ６０５でボクセル群７０２のデータが保存されているので、Ｓ６０８に進む。
Ｓ６０８では、３次元形状導出部１０２が、Ｓ６０５で保存されたボクセル群のデータを、仮想視点映像空間となる３次元空間上に配置して、仮想視点映像装置１２０に出力するための３次元形状データを生成する。いま、ボクセル群７０２のデータが保存されており、３次元形状導出部１０２は、それと紐付けて保存されている３Ｄバウンディングボックスの座標情報に基づき、ボクセル群７０２のデータが３次元空間７００上に配置されることになる。
【００５５】
Ｓ６０９では、３次元形状導出部１０２が、オブジェクトの形状を表すボクセル群が仮想視点映像空間となる３次元空間内に配置された３次元形状データを、仮想視点映像装置１２０に出力する。時刻０：００：１６：００では、Ｓ６０８で生成された３次元形状データが出力されることになる。なお、Ｓ６０２でも、シルエット画像から生成したボクセル群７０２を含む３次元形状データが得られている。しかし、本実施形態ではこれを使用せずに、３次元形状データ記憶部１０４が管理する保存済みのデータを読み出して３次元空間上に配置した３次元形状データを出力することとしている。ただし、Ｓ６０２で得られた３次元形状データを出力するように構成してもよい。この場合は、３次元形状データ記憶部１０４が管理するボクセル群の保存データの読み出しと３次元空間への配置を停止すればよい。この保存データの読み出し停止については後述する。
【００５６】
そして、Ｓ６１０では、すべてのフレームデータについて処理が完了したかどうかが判定される。未処理のフレームがあればＳ６０１に戻って、次のフレームデータを対象とした処理が続行される。ここでは、時刻０：００：２１：００のフレームデータを処理するべく、Ｓ６０１に戻る。
【００５７】
＜時刻０：００：２１：００＞
Ｓ６０１では、シルエット画像生成部１０１が、入力された対象フレームデータからシルエット画像を生成する。前述のとおり、本実施形態のシルエット画像の生成処理においては、入力フレームデータにおいて１０秒間動きが無い場合、背景画像の更新処理がなされる。すなわち、時刻０：００：２１：００の時点では、フィールド３００にやり３０３が刺さった状態の画像が、新たな背景画像となっている。そのため、ここでは、やり３０３のシルエットを含まないシルエット画像５３１〜５３４が生成されることになる。こうして、やり３０３のシルエットのないシルエット画像５３１〜５３４のデータが、３次元形状導出部１０２に入力される。
【００５８】
Ｓ６０２では、３次元形状導出部１０２が、入力されたシルエット画像に基づき、オブジェクトの３次元形状を導出する。いま、入力されたシルエット画像には、やり３０３のシルエットは存在しない。よって、３次元空間７００上にやり３０３の形状を表すボクセル群が存在しない（すなわち、中身のない）３次元形状データが生成されることになる。
【００５９】
Ｓ６０３では、座標演算部１０３が、入力された３次元形状データに含まれるボクセル群のうち注目するボクセル群の３次元座標を算出する。いま、入力された３次元形状データにはオブジェクト形状を表すボクセル群が存在しない。そのため、座標演算部１０３では座標演算がなされずにエラー信号が３次元形状導出部１０２に出力される。
【００６０】
Ｓ６０４は、Ｓ６０３で算出された注目ボクセル群の３次元座標が一定時間同一座標のまま変化がないかを判定する処理であるが、いま、比較対象の座標がそもそも存在しない。この場合、一定時間同一座標のまま変化がないとはならないので、Ｓ６０５をスキップして、Ｓ６０６に進む。
【００６１】
Ｓ６０６では、すべてのボクセル群が処理されたかどうかが判定される。いま、他のボクセル群は存在しないので、未処理のボクセル群はないと判定され、Ｓ６０７に進むことになる。
【００６２】
Ｓ６０７では、保存されているボクセル群のデータがあるか判定される。時刻０：００：２１：００の時点では、時刻０：００：１６：００のフレームデータの処理にて保存されたボクセル群のデータが存在している。よって、Ｓ６０８に進むことになる。
【００６３】
Ｓ６０８では、３次元形状導出部１０２が、保存されているボクセル群のデータを、仮想視点映像空間となる３次元空間上に配置して、仮想視点映像装置１２０に出力するための３次元形状データを生成する。つまり、時刻０：００：１６：００のときと同様、ボクセル群７０２のデータが３次元空間７００上に配置された３次元形状データが生成されることになる。
【００６４】
Ｓ６０９では、３次元形状導出部１０２が、オブジェクトの形状を表すボクセル群が仮想視点映像空間となる３次元空間内に配置された３次元形状データを、仮想視点映像装置１２０に出力する。つまり、Ｓ６０８で生成された３次元形状データが出力されることになる。
【００６５】
Ｓ６１０では、未処理のフレームデータがあるかどうか判定される。未処理のフレームデータが入力されていればＳ６１０に戻って処理を続行する。一方、入力されるフレームデータがなく、すべての処理が完了していれば、本処理を終える。
【００６６】
以上が、本実施形態に係る、画像処理装置１００における処理の内容である。
【００６７】
（保存データの読み出し停止）
続いて、保存されたボクセル群のデータの読み出しを停止する場合について説明する。例えば、所定のＵＩ画面（不図示）を表示部２０５に表示し、特定のデータＩＤもしくは３Ｄバウンディングボックスの座標情報を指定することによって、保存されたボクセル群データの読み出しを停止させることができる。前述の例では、例えばＩＤ「００１」を指定することで、やり３０３のボクセル群のデータ読み出しを停止できる。この場合、やり３０３のボクセル群が存在しない３次元形状データが出力されて、仮想視点映像上からやり３０３が消失することになる。さらには、上記ＵＩ画面にて３次元座標の入力を可能とし、ユーザが指定した３次元座標で特定される空間内に包含／接触する３Ｄバウンディングボックスがある場合、当該３Ｄバウンディングボックスに対応するボクセル群のデータの読み出しを停止してもよい。
【００６８】
本実施形態で述べた、やり投げを撮影シーンとする場合において、競技の進行に合わせて次に投げる選手が変わる際に、上述した読み出しの停止を、ＵＩ画面を介してユーザが指示することで、前の選手が投げたやりを仮想視点映像上から削除することができる。
【００６９】
さらには、上記のようなＵＩ画面を介したユーザ指示に代えて、例えば、シルエット画像から導出した３次元形状に基づき、保存データの読み出し停止を行うようにしてもよい。例えば、保存されている３Ｄバウンディングボックスの座標Ａ´〜Ｈ´で表される空間内に、シルエット画像から導出したやり３０３の形状を表すボクセル群１０００が出現した場合は、保存しているボクセル群のデータ読み出しを停止してもよい。この場合、後続のフレームデータにおいて、それまで静止していたやり３０３が再び動いたとき、そのシルエットを含むシルエット画像が生成されるので、当該シルエット画像に基づき３次元形状データが生成されることになる。つまり、フィールド３００に刺さっていたやり３０３が倒れるなどして再び動き始めた場合には、図１０に示すように、やり３０３の形状を表すボクセル群１０００が存在する３次元形状データを確実に生成することができる。
【００７０】
以上のとおり、本実施形態によれば、動いていたオブジェクトが静止してそのシルエットを含むシルエット画像が生成できなくなっても、当該オブジェクトの形状を表すボクセル群を含んだ３次元形状データを、仮想視点映像生成装置１２０に供給することができる。その結果、仮想視点映像生成装置１２０では、静止したオブジェクトが存在する仮想視点映像を生成することができる。
【００７１】
なお、本実施形態では、動いていたオブジェクトが静止した場合に、画像処理装置１００の側で、当該オブジェクトの３次元形状データを保持しておき、必要に応じて仮想視点映像生成装置１２０に出力していた。しかし、これに限定されない。例えば、オブジェクトの動静に関する情報を仮想視点映像生成装置１２０に入力し、オブジェクトが静止した時点で当該オブジェクトの３次元形状データを保持するようにし、当該保持した３次元形状データを用いて仮想視点映像を生成するようにしてもよい。なお、静止したオブジェクトに対応する３次元形状データは、仮想視点映像装置１２０に保存されていてもよいし、画像処理装置１００に保存されていてもよい。あるいは、その３次元形状データは、データベースなどの外部の装置に保存されていてもよい。また、画像処理装置１００と仮想視点映像生成装置１２０の機能を併せ持った１つの装置が、複数視点映像データから仮想視点映像を生成する場合にも適用可能である。
【００７２】
また、生成した３次元形状データを常に、画像処理装置１００又は外部の装置（データベース）で保存し、オブジェクトの動静に関する情報を取得して、オブジェクトが静止したことに基づいて、静止したオブジェクトに対応する３次元形状データを、仮想視点映像生成装置１２０に送信するようにしてもよい。
【００７３】
［実施形態２］
実施形態１では、一定時間動きのない静止したオブジェクトの３次元モデルを保持しておくことで、当該オブジェクトのシルエット画像が生成されなくなっても、その３次元モデルの供給を継続できるようにしていた。次に、一定時間動きのない静止したオブジェクトのシルエット画像を保持しておき、静止後もそのオブジェクトの３次元形状の導出を可能にする態様を、実施形態２として説明する。なお、画像処理装置のハードウェア構成など実施形態１と共通の内容については説明を省略ないしは簡略化し、以下では差異点を中心に説明を行うものとする。
【００７４】
図１１は、本実施形態における、仮想視点映像システムの構成の一例を示す図である。その基本的な構成は実施形態１と同じである。図１１において、本実施形態の画像処理装置１００’を示す枠内には、４つの機能部、すなわち、シルエット画像生成部１１０１、オブジェクト追跡部１１０２、シルエット画像記憶部１１０３、３次元形状導出部１１０４が示されている。以下、各部について説明する。
【００７５】
シルエット画像生成部１１０１は、カメラ群１１０から入力された複数視点映像データに基づき、前景となるオブジェクトのシルエット画像とそのテクスチャ情報を生成する。また、照明条件の変化があった場合など、背景との差分が同じ内容で一定時間継続する場合に背景画像を更新する。これらの点は、実施形態１のシルエット画像生成部１０１と同じである。本実施形態では、さらに、動いていたオブジェクトが一定時間同一座標で静止した場合に、予め保存しておいたシルエット画像を取得して３次元形状導出部１１０４に供給する。
【００７６】
オブジェクト追跡部１１０２は、入力されるシルエット画像に対し、テンプレートマッチングに代表されるオブジェクト追跡処理を行って、シルエットに対応するオブジェクトが、移動していたオブジェクト（以下、「移動オブジェクト」と呼ぶ）であるか判定する。具体的には、まず、シルエット画像生成部１１０１が生成したシルエット画像に対しオブジェクトのシルエット検出を行い、検出したシルエットを表す領域（シルエット領域）が外接する長方形（以下、「２Ｄバウンディングボックス」と呼ぶ）を設定する。次に、設定した２Ｄバウンディングボックスの４つの頂点座標をシルエット領域の２次元座標として求め、その位置がフレーム間で変化している場合に移動オブジェクトであると判定する。
【００７７】
シルエット画像記憶部１１０３は、シルエット画像生成部１１０１の指示に従い、シルエット画像のデータをＨＤＤ２０３に保存したり、保存しておいたシルエット画像のデータをＨＤＤ２０３から読み出す処理を行う。
【００７８】
３次元形状導出部１１０４は、シルエット画像生成部１１０１から受け取ったシルエット画像からオブジェクトの３次元形状を導出して３次元形状データを生成し、仮想視点映像装置１２０に出力する。
【００７９】
続いて、本実施形態に係る、画像処理装置１００’における処理について、前述の図５（ａ）〜（ｄ）に示す各時刻のフレームデータを処理する場合を例に、図１２のフローチャートを参照しつつ説明する。図１２のフローチャートに示す各処理は、ＨＤＤ２０３に格納された制御プログラムがメインメモリ２０２に読み出され、ＣＰＵ２０１がこれを実行することによって実現される。なお、以下の説明において「Ｓ」はステップを意味する。
【００８０】
＜時刻０：００：１０：００＞
まず、Ｓ１２０１では、シルエット画像生成部１１０１が、処理対象のフレームデータからシルエット画像を生成する。時刻０：００：１０：００では、やり３０３は飛んでいる状態で背景画像に対して差分がある状態である。そのため、飛んでいる状態のやり３０３のシルエットを含むシルエット画像５０１〜５０４が生成されることになる。生成されたシルエット画像５０１〜５０４のデータは、オブジェクト追跡部１１０２に入力される。
【００８１】
次に、Ｓ１２０２では、オブジェクト追跡部１１０２が、Ｓ１２０１で生成されたシルエット画像に対して、オブジェクト追跡処理を実行する。オブジェクト追跡処理の結果（シルエット領域の有無、シルエット領域の座標情報、シルエット領域に対応するオブジェクトが移動オブジェクトであるか否か）は、シルエット画像生成部１１０１に入力される。図１３（ａ）は、シルエット画像５０３に対するオブジェクト追跡処理の様子を説明する図である。図１３（ａ）において、白画素で表される領域がやり３０３の２次元形状を表すシルエット領域であり、それに外接する矩形の枠１３０１が、設定された２Ｄバウンディングボックスを示している。いま、２Ｄバウンディングボックス１３０１の左上の頂点Ａの座標が（２００，１００）であり、右下の頂点Ｂの座標が（４００，８０）である。いま、時刻０：００：１０：００の時点では、それ以前のフレームデータが存在せず、比較対象となる２Ｄバウンディングボックスがそもそも無い。これは、他のシルエット画像５０１、５０２、５０４についても同様である。したがって、シルエット画像５０１〜５０４におけるシルエット領域に対応するオブジェクトは、過去フレームが存在しない現段階では移動オブジェクトではないと判定されることになる。
【００８２】
続くＳ１２０３〜１２０５では、シルエット画像生成部１１０１が、オブジェクト追跡処理の結果に基づき、処理の切り替えを行う。まず、Ｓ１２０３では、オブジェクトのシルエット領域が存在したかどうかにより次の処理が決定される。シルエット画像内にシルエット領域が存在していればＳ１２０４に進み、存在していなければＳ１２０７に進む。次に、Ｓ１２０４では、シルエット領域に対応するオブジェクトが移動オブジェクトかどうかにより次の処理が決定される。移動オブジェクトであればＳ１２０５に進み、移動オブジェクトでなければＳ１２０７に進む。そして、Ｓ１２０５では、移動オブジェクトの座標（すなわち、２Ｄバウンディングボックスの座標）が、一定時間同一座標のまま変化がないかどうかにより次の処理が決定される。一定時間同一座標のまま変化がない場合はＳ１２０６に進み、そうでなければＳ１２０７に進む。いま、飛んでいる状態のやり３０３の２次元形状を表すシルエット領域が存在しているのでＳ１２０４に進み（Ｓ１２０３でＹｅｓ）、移動オブジェクトではないと判定されているのでＳ１２０７に進むことになる（Ｓ１２０４でＮｏ）。
【００８３】
Ｓ１２０７では、シルエット画像生成部１１０１が、保存されているシルエット画像があるかどうかを判定する。シルエット画像が保存されていればＳ１２０８に進み、保存されていなければＳ１２０９に進む。いま、保存されているシルエット画像は存在しないので、Ｓ１２０９に進むことになる。
【００８４】
Ｓ１２０８において、シルエット画像生成部１１０１は、保存されているシルエット画像のデータを、シルエット画像記憶部１１０３を介してＨＤＤ２０３から読み出して取得して、３次元形状導出部１１０４に出力する。一方、Ｓ１２０９において、シルエット画像生成部１１０１は、Ｓ１２０１で生成したシルエット画像のデータを、３次元形状導出部１１０４に出力する。ここでは、Ｓ１２０１で生成したシルエット画像のデータが出力されることになる。
【００８５】
Ｓ１２１０では、未処理のフレームデータがあるかどうか判定される。未処理のフレームデータが入力されていればＳ１２０１に戻って処理を続行する。一方、入力されるフレームデータがなく、すべての処理が完了していれば、本処理を終える。ここでは、次の時刻０：００：１１：００のフレームデータを処理するべくＳ１２０１に戻ることになる。
【００８６】
＜時刻０：００：１１：００＞
Ｓ１２０１では、シルエット画像生成部１０１が、入力された対象フレームデータからシルエット画像を生成する。時刻０：００：１１：００では、やり３０３はフィールド３００に刺さって静止している状態であるが、この段階では背景画像の更新はなされておらず、背景画像に対して差分がある状態である。よって、フィールド３００に刺さった状態のやり３０３のシルエットを含むシルエット画像５１１〜５１４が生成されることになる。生成されたシルエット画像５１１〜５１４のデータは、オブジェクト追跡部１１０２に入力される。
【００８７】
Ｓ１２０２では、オブジェクト追跡部１１０２が、Ｓ１２０１で生成されたシルエット画像に対して、オブジェクト追跡処理を実行する。ここでも、前述の時刻０：００：１０：００のときと同様、シルエット画像５１１〜５１４それぞれを対象として、フィールド３００に刺さった状態のやり３０３の２次元形状を表すシルエット領域に外接する２Ｄバウンディングボックスが設定され、その頂点座標が求められる。図１３（ｂ）は、シルエット画像５１３に対するオブジェクト追跡処理の様子を説明する図である。図１３（ｂ）において、白画素で表される領域がやり３０３の２次元形状を表すシルエット領域であり、それに外接する矩形の枠１３０２が、設定された２Ｄバウンディングボックスを示している。いま、２Ｄバウンディングボックス１３０２の左上の頂点Ａの座標が（１００，２００）であり、右下の頂点Ｂの座標が（２５０，４００）である。ここでは説明を省いているが、オブジェクト追跡部１１０２は、時刻０：００：１０：００〜時刻０：００：１１：００の間の各フレームデータに対する処理で得られたシルエット画像に対しても、同様のオブジェクト追跡処理を行っている。そこでは、各フレームデータについて生成されたシルエット画像のシルエット領域を囲む２Ｄバウンディングボックスの座標について、毎フレーム比較が行われる。すなわち、オブジェクト追跡部１１０２は、パターンマッチングによって同一オブジェクトに係るものであると認識された２Ｄバウンディングボックス同士を比較することで、オブジェクトが動いているか静止しているかの判定を行っている。時刻０：００：１０：００〜時刻０：００：１１：００の間においては、上述の図１３（ａ）及び（ｂ）から理解できるように、２Ｄバウンディングボックスの位置座標は時々刻々と変化するので、フレーム間で動きのある移動オブジェクトであると判定されることになる。こうして、得られたオブジェクト追跡処理の結果がシルエット画像生成部１１０１に入力される。
【００８８】
続くＳ１２０３〜１２０５では、前述のとおり、シルエット画像生成部１１０１が、オブジェクト追跡処理の結果に基づき、処理の切り替えを行う。いま、フィールド３００に刺さっている状態のやり３０３の２次元形状を表すシルエット領域が存在しているのでＳ１２０４に進み（Ｓ１２０３でＹｅｓ）、移動オブジェクトであると判定されているのでＳ１２０５に進むことになる（Ｓ１２０４でＹｅｓ）。
【００８９】
Ｓ１２０５では、シルエット画像生成部１１０１が、オブジェクト追跡処理の結果に基づき、移動オブジェクトのシルエット領域を囲む２Ｄバウンディングボックスの座標が、一定時間変化がないかを判定する。この判定処理の意味は、移動オブジェクトが、所定フレーム数の間、同じ位置に留まって動きがないかどうかを確認することにある。一定時間は任意の時間でよいが、ここでは実施形態１のＳ６０４と同様に５秒間とする。いま、２Ｄバウンディングボックス１３０２の座標は、その１秒前の時刻０：００：１０：００のときの２Ｄバウンディングボックス１３０１の座標とは異なるので、一定時間変化がない、とはならない（Ｓ１２０５でＮｏ）。そのため、Ｓ１２０７に進むことになる。
【００９０】
Ｓ１２０７では、シルエット画像生成部１１０１が、保存されているシルエット画像があるかどうかを判定する。いま、保存されているシルエット画像は存在しないので、Ｓ１２０９に進むことになる。そして、Ｓ１２０９において、シルエット画像生成部１１０１は、Ｓ１２０１で生成したシルエット画像のデータを、３次元形状導出部１１０４に出力する。そして、Ｓ１２１０の判定処理において、次の時刻０：００：１６：００のフレームデータを処理するべくＳ１２０１に戻ることになる。
【００９１】
＜時刻０：００：１６：００＞
Ｓ１２０１では、シルエット画像生成部１０１が、入力された対象フレームデータからシルエット画像を生成する。時刻０：００：１６：００では、やり３０３はフィールド３００に刺さって静止したままの状態であるが、この段階では背景画像の更新は未だなされておらず、背景画像に対して差分がある状態である。よって、フィールド３００に刺さった状態のやり３０３のシルエットを含むシルエット画像５２１〜５２４が生成されることになる。生成されたシルエット画像５２１〜５２４のデータは、オブジェクト追跡部１１０２に入力される。
【００９２】
Ｓ１２０２では、オブジェクト追跡部１１０２が、Ｓ１２０１で生成されたシルエット画像に対して、オブジェクト追跡処理を実行する。ここでも、前述の時刻０：００：１１：００のときと同様、シルエット画像５２１〜５２４それぞれを対象として、フィールド３００に刺さった状態のやり３０３の２次元形状を表すシルエット領域に外接する２Ｄバウンディングボックスが設定され、その頂点座標が求められる（前述の図１３（ｂ）を参照）。また、この段階では５秒間静止状態が継続しているが、追跡によって過去フレームでは移動していたことが把握できるので、移動オブジェクトであると判定される。こうして、得られたオブジェクト追跡処理の結果がシルエット画像生成部１１０１に入力される。
【００９３】
続くＳ１２０３〜１２０５では、前述のとおり、シルエット画像生成部１１０１が、オブジェクト追跡処理の結果に基づき、処理の切り替えを行う。いま、フィールド３００に刺さっている状態のやり３０３の２次元形状を表すシルエット領域が存在しているのでＳ１２０４に進み（Ｓ１２０３でＹｅｓ）、移動オブジェクトであると判定されているのでＳ１２０５に進むことになる（Ｓ１２０４でＹｅｓ）。
【００９４】
Ｓ１２０５では、シルエット画像生成部１１０１が、オブジェクト追跡処理の結果に基づき、移動オブジェクトのシルエット領域を囲む２Ｄバウンディングボックスの座標が一定時間同一座標のまま変化がないかを判定する。いま、２Ｄバウンディングボックスの座標は、その５秒前の時刻０：００：１１：００のときの２Ｄバウンディングボックスの座標と一致し、一定時間変化がない、と判定されることになる（Ｓ１２０５でＹｅｓ）。そのため、Ｓ１２０６に進むことになる。
【００９５】
Ｓ１２０６では、シルエット画像記憶部１１０３が、２Ｄバウンディングボックスが一定時間同一座標にあり変化がないと判定された、Ｓ１２０１で生成されたシルエット画像のデータをＨＤＤ２０３に保存する。
【００９６】
Ｓ１２０７では、シルエット画像生成部１１０１が、保存されているシルエット画像があるかどうかを判定する。いま、保存されているシルエット画像は存在するので、Ｓ１２０８に進むことになる。そして、Ｓ１２０８において、シルエット画像生成部１１０１は、Ｓ１２０６で保存されたシルエット画像のデータを、シルエット画像記憶部１１０３を介して取得し、３次元形状導出部１１０４に出力する。そして、Ｓ１２１０の判定処理において、次の時刻０：００：２１：００のフレームデータを処理するべくＳ１２０１に戻ることになる。
【００９７】
＜時刻０：００：２１：００＞
Ｓ１２０１では、シルエット画像生成部１０１が、入力された対象フレームデータからシルエット画像を生成する。時刻０：００：２１：００では、やり３０３はフィールド３００に刺さって静止したまま１０秒経過した状態であり、この段階では背景画像の更新がなされている。つまり、背景画像に対して差分がない状態である。よって、フィールド３００に刺さった状態のやり３０３のシルエットを含まないシルエット画像５３１〜５３４が生成されることになる。生成されたシルエット画像５３１〜５３４のデータは、オブジェクト追跡部１１０２に入力される。
【００９８】
Ｓ１２０２では、オブジェクト追跡部１１０２が、Ｓ１２０１で生成されたシルエット画像に対して、オブジェクト追跡処理を実行する。いま、シルエット画像５３１〜５３４にはシルエット領域が存在しないので、２Ｄバウンディングボックスの設定ができず、その頂点座標の算出もなされない。そして、このオブジェクト追跡処理の結果がシルエット画像生成部１１０１に入力される。
【００９９】
続くＳ１２０３〜１２０５では、前述のとおり、シルエット画像生成部１１０１が、オブジェクト追跡処理の結果に基づき、処理の切り替えを行う。ここでは、やり３０３の２次元形状を表すシルエット領域が存在しないので（Ｓ１２０３でＮｏ）、Ｓ１２０７に進むことになる。
【０１００】
Ｓ１２０７では、シルエット画像生成部１１０１が、保存されているシルエット画像があるかどうかを判定する。ここでは、時刻０：００：１６：００のフレームデータに対する処理で保存されたシルエット画像が存在するので、Ｓ１２０８に進むことになる。そして、Ｓ１２０８において、シルエット画像生成部１１０１は、保存されたシルエット画像のデータを、シルエット画像記憶部１１０３を介して取得し、３次元形状導出部１１０４に出力する。そして、Ｓ１２１０の判定処理においては、未処理のフレームデータはないので処理を終えることになる。
【０１０１】
このように、生成したシルエット画像内のシルエット領域を追跡し、その位置が一定時間変化しない（同一座標にある）場合にはその時点のシルエット画像を保持しておく。そして、動きを止めて静止したオブジェクトが再び動き出すまでは保持しておいたシルエット画像を読み出して出力する。これにより、背景画像が更新されても、当該オブジェクトのシルエット画像を供給し続けることが可能となる。なお、本実施形態は、移動オブジェクトの数が少ない撮影シーンにおいてより適応的である。移動オブジェクトの数が多くなると、それだけオブジェクト同士の重なりも生じやすくなってオクルージョン領域が発生しやすくなり、得られる３次元モデルの形状精度が悪化するためである。
【０１０２】
以上のとおり、本実施形態によれば、移動オブジェクトが一定時間静止した場合において、背景画像の更新によって当該オブジェクトのシルエットを含むシルエット画像が生成できなくても、静止した状態のシルエット画像を供給し続けることができる。そして、３次元形状導出部１１０４は、供給されたシルエット画像のデータを用いて、静止した状態の移動オブジェクトの形状を表すボクセル群を含んだ３次元形状データを生成し、仮想視点映像生成装置１２０に供給することができる。その結果、実施形態１と同様、仮想視点映像生成装置１２０では、静止したオブジェクトが存在する仮想視点映像を生成することができる。
【０１０３】
（その他の実施例）
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【符号の説明】
【０１０４】
１００  画像処理装置
１０１  シルエット画像生成部
１０２  ３次元形状導出部
１０４  ３次元形状データ記憶部
【図１】
2020173629.tif 000003
【図２】
2020173629.tif 000004
【図３】
2020173629.tif 000005
【図４】
2020173629.tif 000006
【図５】
2020173629.tif 000007
【図６】
2020173629.tif 000008
【図７】
2020173629.tif 000009
【図８】
2020173629.tif 000010
【図９】
2020173629.tif 000011
【図１０】
2020173629.tif 000012
【図１１】
2020173629.tif 000013
【図１２】
2020173629.tif 000014
【図１３】
2020173629.tif 000015