(57)【要約】【課題】ＣＧ等を用いることなく、実写映像で構成されたシミュレーション画像を生成し、操作者に現実感や臨場感，迫力などを与える。【解決手段】映像のフレーム画像毎に位置情報が付与された実写映像を生成する映像データ作成部２０と、車両の速度及び進行方向を示す車両運動情報を入力し、実写映像の位置情報と前記車両運動情報に基づいて、入力される車両運動情報に対応する実写映像を再生する映像再生部３０を備え、映像再生部３０は、実写映像を投影する三次元モデルとなる所定の仮想壁を生成し、車両運動情報に基づいて車両位置を求め、車両位置に基づいて実写映像から最も近いフレーム画像を抽出し、抽出されたフレーム画像を仮想壁に投影し、仮想壁に投影されたフレーム画像に対する視点の位置と方向を決定して再生画像を描画し、再生画像が繰り返し描画されることにより、車両運動情報に対応する実写映像が再生される構成としてある。【選択図】図２
2020008664.tif 000002
【特許請求の範囲】
【請求項１】
映像のフレーム画像毎に位置情報が付与された実写映像を生成する映像データ作成部と、
車両の速度及び進行方向を示す車両運動情報を入力し、前記実写映像の位置情報と前記車両運動情報に基づいて、入力される車両運動情報に対応する実写映像を再生する映像再生部と、
を備え、
前記映像再生部は、
前記位置情報に基づいて、前記実写映像を投影する三次元モデルとなる所定の仮想壁を生成する仮想壁生成部と、
前記車両運動情報に基づいて車両位置を求める車両位置算出部と、
前記車両位置に基づいて、前記実写映像から最も近いフレーム画像を抽出するフレーム画像抽出部と、
抽出されたフレーム画像を、前記仮想壁に投影する仮想壁投影部と、
前記仮想壁に投影されたフレーム画像に対する視点の位置と方向を決定して再生画像を描画する画像描画部と、を備え、
前記再生画像が繰り返し描画されることにより、前記車両運動情報に対応する実写映像が再生される
ことを特徴とするドライビングシミュレーター。
【請求項２】
前記映像再生部は、
前記フレーム画像抽出部で抽出されたフレーム画像を、所定のコの字型スクリーン上に展開したコの字型画像を生成するコの字型画像生成部を備え、
前記仮想壁投影部が、
前記コの字型画像を、前記仮想壁に投影する
ことを特徴とする請求項１記載のドライビングシミュレーター。
【請求項３】
前記映像データ作成部が、
前記実写映像の各フレーム画像から、所定数の特徴点を自動抽出する特徴点抽出部と、
抽出された特徴点について、前記実写映像の各フレーム画像内で自動追跡してフレーム画像間での対応関係を求める特徴点対応処理部と、
対応関係が求められた特徴点の三次元位置座標を求め、当該三次元位置座標から、各フレーム画像に対応したカメラの三次元位置座標及び三次元回転座標からなるカメラベクトルを求めるカメラベクトル演算部と、
を備えるＣＶ演算部を備え、
前記仮想壁生成部が、
前記ＣＶ演算部で生成された前記カメラベクトルの三次元位置座標及び三次元回転座標が示す位置情報に基づいて、前記仮想壁を生成する
ことを特徴とする請求項１又は２記載のドライビングシミュレーター。
【請求項４】
前記車両運動情報が、
車両の速度情報及び進行方向情報を生成可能なシャシダイナモから入力される
ことを特徴とする請求項１乃至３のいずれか一項記載のドライビングシミュレーター。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば自動車などの車両のドライビングシミュレーターに関し、特に、ＣＧやアニメーション，静止画像などを使わないで、実際の道路などを走行して取得した実写映像によってシミュレーション画像を生成・出力させることができるドライビングシミュレーターに関する。
【背景技術】
【０００２】
ドライビングシミュレーターは、例えば自動車（乗用車，トラック・バスなどの大型車等），二輪車，航空機，船舶，電車などの各種の車両の実際の運転操作部を模した疑似操作部を操作者が操作することで、操作者の前方等に表示される外界の風景を模した疑似画像（シミュレーション画像）が移動・変動することにより、車両の運転操作を疑似的に体験することができる装置・機器・プログラム（ソフトウェア）である。
【０００３】
このようなドライビングシミュレーターは、例えば自動車教習所の教習機器，航空機や船舶の訓練装置，運転免許の適性検査機、あるいは、ゲームセンターなどに設置されるゲーム機など、各種の分野で用いられている。
この種のドライビングシミュレーターに関する技術としては、例えば、特許文献１や特許文献２に提案されているものがある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１０−１３４１０１号公報
【特許文献２】特開２０１６−０６４０９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、これまで提案されているドライビングシミュレーターでは、上述した特許文献１，２に開示されているものも含めて、操作者に出力・表示されるシミュレーション画像が、ＣＧ（コンピュータ・グラフィック）やアニメーション，静止画像などによって構成された仮想的な模擬画像となっていた。
このため、シミュレーション画像はあくまでも疑似的・仮想的なものであって、現実の外界風景とは異なるものであり、操作者に対して現実感や臨場感，迫力などを与えることが困難であった。
【０００６】
このような問題に対して、例えば実際の道路を車両で走行しながら外界風景の映像を撮影し、その実写映像をシミュレーション画像として用いることが考えられる。
ところが、そのようにして得られる実写映像は、撮影を行った車両が走行したとおりの映像のみであって、その映像を、どのような運転操作が行われるかが不確定なシミュレーターの運転操作に追随・対応させることは困難であり、また、運転操作に対応する全ての実写映像を用意することも困難であった。
【０００７】
本発明は、以上のような従来の技術が有する問題を解決するために提案されたものであり、実際の現実世界を撮影した実写映像に位置情報を付与して仮想空間に配置し、車両の運動情報と対応・連動させることにより、ＣＧやアニメーション，静止画像等を用いることなく、実写映像で構成されたシミュレーション画像を生成・出力させることができるドライビングシミュレーターの提供を目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明のドライビングシミュレーターは、映像のフレーム画像毎に位置情報が付与された実写映像を生成する映像データ作成部と、車両の速度及び進行方向を示す車両運動情報を入力し、前記実写映像の位置情報と前記車両運動情報に基づいて、入力される車両運動情報に対応する実写映像を再生する映像再生部と、を備え、前記映像再生部は、前記位置情報に基づいて、前記実写映像を投影する三次元モデルとなる所定の仮想壁を生成する仮想壁生成部と、前記車両運動情報に基づいて車両位置を求める車両位置算出部と、前記車両位置に基づいて、前記実写映像から最も近いフレーム画像を抽出するフレーム画像抽出部と、抽出されたフレーム画像を、前記仮想壁に投影する仮想壁投影部と、前記仮想壁に投影されたフレーム画像に対する視点の位置と方向を決定して再生画像を描画する画像描画部と、を備え、前記再生画像が繰り返し描画されることにより、前記映像再生部に入力される車両運動情報に実写映像が再生される構成としてある。
【０００９】
また、本発明は、上記のような本発明に係るドライビングシミュレーターを構成する情報処理装置で実行されるプログラムとして構成することができる。
さらに、本発明は、上記のような本発明に係るドライビングシミュレーター及びプログラムによって実施可能な方法として実施することもできる。
【発明の効果】
【００１０】
本発明のドライビングシミュレーターによれば、実際の現実世界を撮影した実写映像に位置情報を付与して仮想空間に配置することにより、車両の運動情報と対応・連動させて出力・表示させることが可能となる。
これによって、ＣＧやアニメーション，静止画像等を用いることなく、実写映像で構成されたシミュレーション画像を生成・出力して、操作者に対して現実感や臨場感，迫力などを与えることができるドライビングシミュレーターを提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明のドライビングシミュレーターの概念を模式的に示す説明図である。
【図２】ドライビングシミュレーターにより実行されるプロセスフローを示す説明図である。
【図３】ドライビングシミュレーターで用いられるＣＶ映像の基本概念を模式的に示す説明図である。
【図４】ＣＶ映像を生成するためのＣＶ演算を行うＣＶ演算部（映像データ作成部）の構成を示す機能ブロック図である。
【図５】ＣＶ演算部で使用する全周ビデオ映像を撮影する手段を示す概略図であり、屋根部に全周カメラを搭載した車輌の斜視図である。
【図６】ＣＶ演算部で使用する全周ビデオ映像を撮影する手段を示す概略図であり、（ａ）は屋根部に全周カメラを搭載した車輌の正面図、（ｂ）は同じく平面図である。
【図７】全周カメラで撮影される映像から得られる変換画像を示す説明図であり、（ａ）は球面画像が貼り付けられる仮想球面を、（ｂ）は仮想球面に貼り付けられた球面画像の一例を、（ｃ）は（ｂ）に示した球面画像をメルカトール図法に従って平面展開した画像を示している。
【図８】ＣＶ演算部おける具体的なカメラベクトルの検出方法を示す説明図である。
【図９】ＣＶ演算部における具体的なカメラベクトルの検出方法を示す説明図である。
【図１０】ＣＶ演算部における具体的なカメラベクトルの検出方法を示す説明図である。
【図１１】ＣＶ演算部によるカメラベクトルの検出方法における望ましい特徴点の指定態様を示す説明図である。
【図１２】ＣＶ演算部により得られる特徴点の三次元座標とカメラベクトルの例を示すグラフである。
【図１３】ＣＶ演算部により得られる特徴点の三次元座標とカメラベクトルの例を示すグラフである。
【図１４】ＣＶ演算部により得られる特徴点の三次元座標とカメラベクトルの例を示すグラフである。
【図１５】ＣＶ演算部において、カメラから特徴点の距離に応じて複数の特徴点を設定し、それを隣接するフレームに亘って追跡し、複数の演算を繰り返し行う場合を示す説明図である。
【図１６】ＣＶ演算部で求められたカメラベクトルの軌跡をビデオ映像中に表示した場合の図である。
【図１７】ドライビングシミュレーターの映像データ作成部及び映像再生部の構成を示す機能ブロック図である。
【図１８】画像データの作成手順の概要を示す説明図である。
【図１９】画像データのコの字型スクリーンへの投影の概要を示す説明図である。
【図２０】映像再生部での動画プレイヤーの処理全体を示すフローチャートである。
【図２１】映像再生部での再生処理の流れを示すフローチャートである。
【図２２】ステアリング舵角に対する回転半径の算出方法を示す説明図である。
【図２３】映像再生部での最近傍フレーム画像の抽出処理を模式的に示す説明図である。
【図２４】映像再生部でのコの字型スクリーンに展開された画像データの揺れ止め処理の概要を示す説明図である。
【図２５】入力デバイスからのステアリングデータと視点方向・視界の関係を示す説明図である。
【図２６】自由視点移動の考え方を示す説明図である。
【図２７】自由視点移動の考え方を示す説明図である。
【図２８】仮想壁の一例を示すイメージ図である。
【図２９】仮想壁の作成方法を示す説明図である。
【図３０】コの字型スクリーンの実写映像を仮想壁に投影する場合の説明図である。
【図３１】コの字型スクリーンの実写映像を仮想壁に投影する場合の説明図である。
【図３２】コの字型スクリーンの実写映像を仮想壁に投影する場合の説明図である。
【図３３】仮想壁に投影された映像のディスプレイへの出力結果をしめす説明図である。
【図３４】撮影位置と異なる視点位置から見た出力映像の説明図である。
【発明を実施するための形態】
【００１２】
以下、本発明に係るドライビングシミュレーターの好ましい実施形態について、図面を参照しつつ説明する。
ここで、以下に示す本発明のドライビングシミュレーターは、プログラム（ソフトウェア）の命令によりコンピュータで実行される処理，手段，機能によって実現される。プログラムは、コンピュータの各構成要素に指令を送り、以下に示すような所定の処理や機能、例えば、対象映像中の基準となる特徴点（基準点）やその他の特徴点の自動抽出，抽出した基準点の自動追跡，基準点の三次元座標の算出，ＣＶ（カメラベクトル）値の演算，複数のＣＶ映像のコの字型スクリーン・仮想壁への配置・展開，複数のＣＶ映像からの最適な画像フレームの選択，複数の画像フレームの視点方向及び視点移動方向の変換，選択された画像フレームの結合等を行わせる。このように、本発明における各処理や手段は、プログラムとコンピュータとが協働した具体的手段によって実現される。
【００１３】
なお、プログラムの全部又は一部は、例えば、磁気ディスク，光ディスク，半導体メモリ，その他任意のコンピュータで読取り可能な記録媒体により提供され、記録媒体から読み出されたプログラムがコンピュータにインストールされて実行される。
また、プログラムは、記録媒体を介さず、通信回線を通じて直接にコンピュータにロードし実行することもできる。
また、コンピュータは、例えば一台のＰＣ等で構成してもよく、また、複数台のサーバコンピュータ等で構成することもできる。
【００１４】
［ドライビングシミュレーター］
図１は、本発明のドライビングシミュレーターの概念を模式的に示す説明図である。
本発明のドライビングシミュレーター（以下「本システム」ともいう）は、事前にビデオカメラ等の撮影手段（後述する３６０°カメラ参照）で撮影した実際の走行映像を、車両の運動に連動させて再生するものであり、以下のような特徴を有している。
・シミュレーション画像として、ＣＧモデルではなく実写映像を用いることができる。
・ＣＶ技術（図３〜図１６参照）を用いることによって、車両の運動情報と実写映像を正確に連動させることができる。
・操作者の操作、例えばステアリング操作等による車両のふらつきに伴う視点の変化と視線の向きの変化を再現することができる。
【００１５】
本システムにおいて、シミュレーション画像を出力・再生する動画プレイヤーは、図１（ａ）に示すように、運転者（操作者）の操作を、例えばマウス，キーボード，ジョイスティック、あるいはシャシダイナモ上の車両のハンドル・アクセルなどの入力デバイスから車両運動情報として受け取る。この動画プレイヤーが、本発明に係る「映像再生部」を構成する。
具体的には、動画プレイヤーは、入力デバイスから刻々と変化する車速とステアリング舵角を受け取って、その瞬間の車両の位置と姿勢を予測し、最適な実写映像のフレーム選択及び表示する処理をリアルタイムに行う。
【００１６】
ここで、最適な実写映像のフレーム選択を行うためには、映像のフレームひとつひとつに位置情報が必要になる。そこで、本システムでは、ＣＶ技術により求められるＣＶ値を位置情報として利用するようにしている。
ＣＶ技術とは、後述するように（図３〜図１６参照）、事前に３６０°カメラで撮影した走行映像に対して、カメラベクトル（ＣＶ：Camera  Vector）演算を行うことによって、実写映像を構成する各フレームのＣＶ値（撮影時におけるカメラの三次元位置と姿勢）を求めるものである。
このＣＶ値を利用することにより、実写映像のフレーム選択は、予測された三次元位置に最も近いフレームを選択するだけでよく、車両の走行と連動した映像を再生することが可能となる。
【００１７】
また、ＣＶ値を用いることにより、低コストで、車両の運動情報に連動した視点・視線の変化を再現することが可能となる。
ドライビングシミュレーターにおいては、例えばステアリング操作による車両のふらつきに伴う、視点の変化と視線の向きの変化を再現する必要があり、そのためには、どこから見ても矛盾の無い三次元復元を行う必要がある。
ところが、そのような実写映像の三次元復元を実現するのはコストが高く現実的とはいえない。
そこで、本システムでは、ＣＶ値から路面の形状を推定して作成した簡易的なトンネル状の三次元モデルに実写映像を投影するようにしている（後述する仮想壁の生成・投影を参照）。これにより、任意の視点から見た景色を疑似的に作り出すことができるようになる。
【００１８】
また、本システムにおいて車両の運動情報を入力するための手段としては、図１（ａ）に示すような各種の入力デバイスがあるが、入力デバイスの代わりに、図１（ｂ）に示すように、例えば車両運動シミュレーターとシャシダイナモを使用することも可能である。
具体的には、車両運動シミュレーターには車両情報とＣＶ値から求めたおおよその道路形状の情報を与えておく。
シャシダイナモは、車両から取得したトルクとタイヤの切れ角を車両運動シミュレーターに送信し、車両運動シミュレーターは車速、タイヤの切れ角および路面形状、天候による路面摩擦係数の違いから車両の運動を予測し、適切な負荷をシャシダイナモにフィードバックすると同時に、本システムの動画プレイヤーに現在の車両の位置と姿勢を送信する。この場合、車両の位置と姿勢の予測は、車両運動シミュレーターが行うことになる。
このように、車両運動シミュレーターを使用した場合、車両の計算のための自由度が上がるだけでなく、タイヤと路面との摩擦係数を設定し、スリップ状態を考慮して車両運動状態を算出することが可能となる。
【００１９】
［プロセスフロー］
図２は、本システム（ドライビングシミュレーター１）により実行されるプロセスフローを示す説明図である。
同図に示すように、本システムは、実写映像撮影部１０で実行される撮影プロセス、映像データ作成部２０で実行されるデータ作成プロセス、映像再生部３０で実行される再生プロセス、の大きく３つのプロセスが実行されるようになっている。
以下、本システムにおいて動画プレイヤーで実写映像が再生されるまでのプロセスフローを以下に示す。
【００２０】
[撮影プロセス]
実写映像撮影部１０で実行される撮影プロセスでは、実写映像を入手するため、撮影装置を搭載した車両を使って走行しながら撮影が行われる。
撮影装置としては、高精度ＧＮＳＳ，同期用ＧＮＳＳ，３６０°カメラ，カメラ架台，カメラ固定器具などが含まれる。
３６０°カメラとＧＮＳＳのデータは、撮影データとして記録され、撮影データファイルに蓄積される。
【００２１】
［ＧＮＳＳの役割］
ここで、ＧＮＳＳ（Global  Navigation  Satellite  System：全地球測位衛星システム）の技術的な役割としては、ＣＶ演算過程で発生する累積誤差の抑制とスケールの決定を行うことにある。
ＣＶ技術によれば、後述するように、カメラ映像から相対的な移動量を求めることはできるが、累積誤差が発生する。また、カメラ映像だけでは、カメラの位置にスケールを与えることができない。
そこで、本システムでは、ＧＮＳＳから得られた公共座標と映像を紐づけることによって、累積誤差の抑制とスケールを決定することができるようにしている。
【００２２】
［同期用ＧＮＳＳと高精度ＧＮＳＳ］
ＧＮＳＳとしては、高精度ＧＮＳＳと同期用ＧＮＳＳの２つのＧＮＳＳを用いる。
各画像と高精度ＧＮＳＳにより得られた公共座標の対応づけを行うために、同期用ＧＮＳＳを用いる。本システムを構成するコンピュータ（情報処理装置）の内部時計と高精度ＧＮＳＳの時計(ＵＴＣ時間：協定世界時Coordinated  Universal  Time)は共通であるとは限らない。したがって、その対応づけのためには、２つの共通の時計を使わなければならない。
そこで、本システムでは、同期用ＧＮＳＳを使って画像を撮影した瞬間のＵＴＣ時間を取得しておき、共通の時計であるＵＴＣ時間を使って画像と公共座標の対応付けを行うようにしている。
具体的には、対象となる実写映像の撮影時に同期用ＧＮＳＳと高精度ＧＮＳＳを同時に取り付ける。高精度ＧＮＳＳについては、撮影終了後に後処理を行い、その結果をＣＶ処理に利用する。基地局となる電子基準点が国土地理院ＧＥＯＮＥＴ（ＧＮＳＳ連続観測システム：GNSS  Earth  Observation  Network  System）により一般に公開されているため、そのデータを基地局として使用することができる。
【００２３】
なお、高精度な公共座標が必要でなければ、同期用ＧＮＳＳ単独での装備でも撮影は可能である。
しかし、異なるタイミングで撮影したＣＶ映像をシームレスに結合し再生するためには、異なるタイミングで撮影した動画と座標系を統一する作業を行う必要がある。精度が悪い位置情報の場合、後述するＣＶ統合作業に非常に時間がかかり効率が悪いため、本システムでは高精度ＧＮＳＳと合わせて撮影することとしている。
【００２４】
[データ作成プロセス]
映像データ作成部２０で実行されるデータ作成プロセスでは、後続の再生プロセスで必要となるファイルを事前に作成しておくことを目的とするものである。この映像データ作成部２０が、映像のフレーム画像毎に位置情報が付与された実写映像を生成する本発明の映像データ作成部を構成する。
具体的には、後述するＣＶ演算によって得られたＣＶ値と映像が、それぞれＣＶファイル，画像アーカイブファイルとして保存される。
画像アーカイブファイルには、全フレームの全周映像が正距円筒画像として保存される。
【００２５】
ここで、再生処理では、後述するように、正面方向の一部の画像領域しか必要としないため、全周囲をカバーする正距円筒画像をそのまま使うのは動画プレイヤーの処理負荷を増大させ効率的ではない。
そこで、本システムでは、正距円筒画像から正面方向の一部を切り出して画素数を減らすとともに、目的の画像データを取り出しやすくするために、アーカイブされていたファイルをフレームごとに独立した画像ファイルに分解しておく。
このようにして出来上がった、ＣＶファイルとフレームごとに独立した画像ファイルを、再生処理で利用し、所定のシミュレーション画像が生成・出力できるようになる。
【００２６】
[再生プロセス]
映像再生部３０で実行される再生プロセスでは、動画プレイヤーが、入力デバイスから送られてくる車速とステアリング角に連動した映像を、所定のディスプレイに出力・表示することにより行われる（後述する図３３〜図３４参照）。
この映像再生部３０が、車両の速度及び進行方向を示す車両運動情報を入力し、実写映像の位置情報と車両運動情報に基づいて、入力される車両運動情報に対応する実写映像を再生する本発明の映像再生部を構成する。
データ作成プロセス及び再生プロセスの具体的な処理の手順・アルゴリズム等については、図３以下の各図面を参照しつつ更に詳細に説明する。
【００２７】
［ＣＶ映像／ＣＶ技術］
まず、本システムにおいてシミュレーション画像として用いられる実写映像に位置情報が付与されたＣＶ映像を生成するＣＶ技術について、図３〜図１６を参照して説明する。
ＣＶ技術（ＣＶ演算）は、本願の出願人に係る特許第４４４６０４１号公報等で開示している技術であり、３６０°全周映像の中に特徴点を自動抽出し、それを隣接する複数フレームにトラッキングし、カメラ移動のベースとトラッキング点で校正する三角形を構成し、そのトラッキングデータを解析することで、特徴点の三次元座標と、カメラ位置と姿勢を持つ全周ＣＶ（カメラベクトル）映像を取得するものである。
ＣＶ技術の特徴は、全周囲動画映像からカメラ位置を自動的に高精度に求めることにある。全周囲動画映像は、水平方向だけでなく仰角俯角映像をも含む３６０度の映像であり、４πビデオ映像とも呼ばれる。この４πビデオ映像を画像処理し、４πビデオ映像から三次元情報を取得できる三次元化映像がＣＶ映像である。
【００２８】
ＣＶとは、カメラベクトル：Camera  Vectorのことであり、このカメラベクトルを求める演算がＣＶ演算である。また、ＣＶ値とは、撮影カメラの６自由度を持つカメラベクトルを意味し、映像の各フレームの三次元位置と三次元姿勢を意味する。
なお、ＣＶ値と同様の位置情報を、例えばＧＰＳとＩＭＵからでも取得することは可能である。しかしながら、ＣＶ演算による方が、精度が高く、コストがかからず、簡単に生成・取得することができる。このため、本システムでは、４πビデオ映像を用いた、カメラの位置と姿勢を数学的解析による精度の良いＣＶ値を求めるようにしている。
また、４πビデオ映像は、映像の各ピクセル座標がカメラ中心からの方向を示しており、古典的な三角測量の線形代数の範囲で処理可能であり、しかも演算に必要な特徴点を全方向に対して取得できるので、演算精度が向上するという優れた特徴を持っている。
【００２９】
さらに、ＣＶ映像を取得するには、複数カメラは必要なく、例えば単一カメラでも良いという特徴がある。
すなわち、ＣＶ演算は、原理的に単一カメラで処理が可能であるため、システム・装置の構成がきわめて単純化されるという優れた効果を有している。
このようなＣＶ演算により、映像の各フレームに対応するカメラ位置［Ｘ，Ｙ，Ｚ］と姿勢［θｘ，θｙ，θｚ］を示す三次元データが、映像の全フレームについて求められ、それが映像データに付加されることで、ＣＶ値付加全周映像という新たな映像、すなわち、ＣＶ映像が取得できるようになる。
なお、映像の各フレームがＣＶ値を持ったことで、映像はいつでも三次元化が可能な状況になる。このことから、ＣＶ映像は、２．５次元映像と呼ぶこともできる。
【００３０】
全フレームのカメラ位置と姿勢が既知となったことで、カメラ移動近傍の対象物を広範囲の視角からとらえ、対象物の三次元座標や、三次元形状を座標とともに読み取ることが可能となる。そして、これによって、実写映像があたかもＣＧであるかのように、様々な映像の加工が可能になるという優れた特徴を有している。
これによって、本システムでは、実際の走行車両で取得した実写映像を、シミュレーション画像として生成・出力することができるものである。
【００３１】
以下に示す本システムの一実施形態では、例えばビデオカメラで撮影・取得された対象となる実写映像において、映像中の任意の点や対象物を指定・選択することにより、その指定された点・対象物に向かって、複数のフレーム画像にわたる最適な経路を選択して視点を移動させ、ＣＧにおけるようなゆがみのない、自然な視点移動による動画（連続画像）として再生することができるものである。
そして、本システムでは、上記のような自由な視点移動表示を実現するために、対象映像に所定の三次元座標と姿勢の計６変数の情報を付与したＣＶ（カメラベクトル）映像を用いるようにしている。
なお、上記と同等の６変数は、例えばカメラに取り付けた機械センサー（ＩＭＵとジャイロ等）などによっても取得でき、そのように取得された位置情報を用いることも可能である。しかしながら、本システムでは、ＣＶ演算による方が、精度が高く、コストがかからず、簡単に生成・取得することができるため、ＣＶ映像を用いるものである。
【００３２】
以下、本システムで用いられるＣＶ映像の詳細について説明する。
図３は、本システムで用いられるＣＶ映像の基本概念を模式的に示す説明図である。
図３（ａ）に示すように、実写映像によるドライビングシミュレーションを行う前提として、シミュレーション画像を構成する対象映像を取得・撮影する撮影カメラを車両等の移動体に設置し、動画映像、又は連続する静止画を取得する。その上で、取得した対象映像の各フレーム画像の中に特徴点を抽出するなどして、数学的演算により、全フレームのカメラ位置と姿勢を演算で求める。
【００３３】
具体的には、図３（ｂ）に示すように、カメラ位置と姿勢を６変数、具体的には、カメラの位置座標（Ｘ，Ｙ，Ｚ）とそれぞれの座標軸の回転角（θｘ，θｙ，θｚ）の六個の自由度のベクトル（カメラベクトル：ＣＶ）で表し、それを映像の各フレームに一対一に対応させることで、ＣＶ映像を生成することができる（後述する図４〜図１６参照）。
このＣＶ映像を用いることで、既存の画像合成技術のようなＣＧを用いることなく、任意の映像において自由な視点移動を可能とするドライビングシミュレーションが可能となる。
【００３４】
ここで、目的となるカメラの位置と姿勢を示す６変数とは、座標［Ｘ，Ｙ，Ｚ］と姿勢［θｘ，θｙ，θｚ］の計６種類の変数である。
すなわち、本システムにおけるＣＶ演算とは、対象映像に含まれる任意の点・対象物について、その位置と姿勢を示す６変数を取得するものである。この６変数の取得とは、上述のとおり、三次元位置座標を示す［Ｘ，Ｙ，Ｚ］と姿勢を示す［θｘ，θｙ，θｚ］の６個の変数を決定することである。
このような位置と姿勢の６変数を示すＣＶ値が付与された映像が、ＣＶ映像である。ＣＶ値は連続する画像から演算で取得する（日本国特許第４４４６０４１号）こともできるが、例えばＩＭＵ、Ｇｙｒｏなどから直接取得することもできる。
【００３５】
［用語の定義］
次に、本明細書・特許請求の範囲中において使用する用語・語句についての定義を説明する。
・ＣＶ値／ＣＶ映像／ＣＶ画像：
移動する物体、（たとえば車両やロボット等）に積載された機械センサーで得られた６変数、及びカメラから得られた連続する静止画像、又は動画像から、カメラの位置と姿勢を算出した６変数をカメラベクトル（ＣＶ）と呼称し、その値をＣＶ値といい、ＣＶ値を演算で求めることをＣＶ演算といい、そしてそのようなＣＶ値を有する画像をＣＶ映像という。
【００３６】
なお、カメラに一体化された機械センサーから得られた６変数も、本発明に係るＣＶ値とすることができる。
また、連続しない単独の画像についてはＣＶ画像と呼称することがある。あるいは、１フレームについてのみ着目するときには、当該１フレームの画像をＣＶ画像と呼称することがある。つまり、ＣＶ画像はＣＶ映像の特殊な状態（単独画像）である。
【００３７】
・視点移動／視点方向の移動：
本発明において、「視点移動」とは、任意の映像（対象映像・ＣＶ映像・連続画像）中において、視点の場所と視点方向を自由に変化させて表示することをいう。
一方、「視点方向の移動」とは、任意の映像中において、場所は固定として、視点の方向のみを変化させることをいう。
これら視点移動／視点方向の移動については、後述する図２６〜図３４を参照しつつ詳しく説明する。
【００３８】
［ＣＶ演算］
以下、本システムで用いられるＣＶ映像を生成するためのＣＶ演算の詳細について図４〜図１６を参照しつつ説明する。
ＣＶ演算とはＣＶ値を求めることを意味し、求められた結果をＣＶ値，ＣＶデータと呼ぶ。ＣＶという表記は、「カメラベクトル：Camera  Vector」の略記であり、カメラベクトル（ＣＶ）とは計測等のために映像を取得するビデオカメラ等のカメラの三次元位置と３軸回転姿勢を示す値である。
ＣＶ演算は、動画像（ビデオ映像）を取得し、その映像内の特徴点を検出し、それを隣接する複数のフレームに追跡し、カメラ位置と特徴点の追跡軌跡とが作る三角形を画像内に数多く生成し、その三角形を解析することで、カメラの三次元位置とカメラの３軸回転姿勢を求めるものである。
【００３９】
ＣＶ演算では、ＣＶ値を求める過程で、同時に映像内の特徴点（基準点）についても三次元座標が同時に求まることが重要な特性である。
また、動画像から演算で求められるＣＶ値は、動画像の各フレームに対応して、三次元のカメラ位置と三次元のカメラ姿勢とが同時に求まる。しかも、原理的には一台のカメラで、映像と対応してＣＶ値が求められる特性は、ＣＶ演算でしか実現し得ない、優れた特徴である。
例えば、他の方法による計測手段（ＧＰＳやＩＭＵ等）では、動画像の各フレームと、その三次元的カメラ位置と三次元的カメラ姿勢とを同時に取得するためには画像フレームと計測サンプリング時刻を高精度で、しかも完全に同期しなければならないために、巨額の装置となり、実質的には実現が困難である。
【００４０】
動画像から演算で求められるＣＶデータは、加工しない段階では相対値であるが、短区間であれば高精度で三次元位置情報と３軸回転の角度情報を取得できる。
また、ＣＶデータは画像から取得するため、取得されたデータは相対値であるが、画像内の任意の対象物との位置関係を計測することができるという他の方法では実現は可能な優れた特性を備える。
また、画像に対応したＣＶ値が求まるので、画像内計測や測量において、画像から直接にカメラ位置とその３軸回転姿勢を求めることができるＣＶ演算は画像内計測や画像内測量に好適となる。
そして、本発明のドライビングシミュレーター１は、このＣＶ演算により得られたＣＶ値データが付与された映像（ＣＶ映像）に基づくことにより、映像中の任意の点・対象物についての視点移動処理を行うことができるものである。
【００４１】
［ＣＶ演算部］
ＣＶ演算は、上述した本発明のドライビングシミュレーター１の映像データ作成部２０（図２参照）として機能するＣＶ演算部２０で行われる。
ＣＶ演算部（映像データ作成部）２０は、図４に示すように、車載のビデオカメラ等で構成される実写映像撮影部１０から入力されるビデオ映像について所定のＣＶ演算処理を行うようになっており、具体的には、特徴点抽出部２１と、特徴点対応処理部２２と、カメラベクトル演算部２３と、誤差最小化部２４と、三次元情報追跡部２５と、高精度カメラベクトル演算部２６を備えている。
【００４２】
まず、ＣＶ演算に使用する映像としては、どのような映像でもよいが、画角の限られた映像では視点方向を移動した場合に映像がとぎれてしまうので、全周映像（図５〜７参照）とすることが望ましい。なお、動画映像は連続する静止画と同様であり、静止画と同様に扱うことができる。
また、映像は、一般には予め記録した動画映像を使うことになるが、自動車等の移動体の移動に合わせてリアルタイムに取り込んだ映像を使用することも勿論可能である。
【００４３】
そこで、本実施形態では、ＣＶ演算に使用する映像として、車輌等の移動体の３６０度の全周囲を撮影した全周映像（図５〜７参照）か、又は全周映像に近い広角映像を用いて、その全周映像を視点方向に平面展開することにより、任意の視点移動の対象となる対象映像を取得・生成するようになっている（実写映像撮影部１０）。
ここで、全周映像の平面展開とは、全周映像を、通常の画像として遠近法的に表現するものである。ここで、「遠近法」と呼称するのは、全周画像のそのものはメルカトール図法や球面投影図法のように、遠近法とは異なる方法で表示されているので（図７参照）、これを平面展開表示することで、通常の遠近法映像に変換表示できるからである。
【００４４】
実写映像撮影部１０において全周映像を生成するには、まず、図５及び図６に示すように、全周ビデオカメラ１１を使用して、ＣＶ値データを取得する目的で、走行車輌等の移動体１１ａに固定された全周ビデオカメラ（３６０°カメラ）１１で、移動体１１ａの移動とともに移動体周辺を撮影する。
なお、移動体１１ａには、その位置座標を取得する目的で、例えば、絶対座標を取得するＧＰＳ機器単独やＩＭＵ機器を付加したもの等により構成した位置計測機器等を備えることができる。
また、移動体１１ａに搭載される全周ビデオカメラ１１としては、広範囲映像を撮影，取得するカメラであればどのような構成であってもよく、例えば、広角レンズや魚眼レンズ付きカメラ、移動カメラ、固定カメラ、複数のカメラを固定したカメラ、３６０度周囲に回転可能なカメラ等がある。本実施形態では、図５及び図６に示すように、車輌に複数のカメラが一体的に固定され、移動体１１ａの移動に伴って広範囲映像を撮影する全周ビデオカメラ１１を使用している。
【００４５】
そして、以上のような全周ビデオカメラ１１によれば、図６に示すように、移動体１１ａの天井部等に設置されることで、カメラの３６０度全周囲の映像を複数のカメラで同時に撮影することができ、移動体１１ａが移動することで、広範囲映像を動画データとして取得できる。
ここで、全周ビデオカメラ１１は、カメラの全周映像を直接取得できるビデオカメラであるが、カメラの全周囲の半分以上を映像として取得できれば全周映像として使用できる。
また、画角が制限された通常のカメラの場合でも、ＣＶ演算の精度としては低下するが、全周映像の一部分として取り扱うことが可能である。
【００４６】
なお、全周ビデオカメラ１１で撮影された広範囲映像は、一枚の画像として、撮影時の画角に一致する仮想球面に貼り付けることができる。
仮想球面に貼り付けられた球面画像データは、仮想球面に貼り付けた状態の球面画像（３６０度画像）データとして保存・出力される。仮想球面は、広範囲映像を取得するカメラ部を中心点とした任意の球面状に設定することができる。
図７（ａ）は球面画像が貼り付けられる仮想球面の外観イメージであり、同図（ｂ）は仮想球面に貼り付けられた球面画像の一例である。また、同図（ｃ）は、（ｂ）の球面画像をメルカトール図法に従って平面展開した画像例を示す。
【００４７】
そして、以上のように生成・取得された全周ビデオ映像が、本発明に係る対象映像としてＣＶ演算部（映像データ作成部）２０に入力されてＣＶ値データが求められる（図４参照）。
ＣＶ演算部２０では、まず、特徴点抽出部２１が、実写映像撮影部１０の全周ビデオカメラ１１で撮影されて一時記録された動画像データの中から、十分な数の特徴点（基準点）を自動抽出する。
特徴点対応処理部２２は、自動抽出された特徴点を、各フレーム間で各フレーム画像内において自動的に追跡することで、その対応関係を自動的に求める。
カメラベクトル演算部２３は、対応関係が求められた特徴点の三次元位置座標から各フレーム画像に対応したカメラベクトルを演算で自動的に求める。
誤差最小化部２４は、複数のカメラ位置の重複演算により、各カメラベクトルの解の分布が最小になるように統計処理し、誤差の最小化処理を施したカメラ位置方向を自動的に決定する。
【００４８】
三次元情報追跡部２５は、カメラベクトル演算部２３で得られたカメラベクトルを概略のカメラベクトルと位置づけ、その後のプロセスで順次画像の一部として得られる三次元情報に基づいて、複数のフレーム画像に含まれる部分的三次元情報を隣接するフレームの画像に沿って自動追跡を行う。ここで、三次元情報（三次元形状）とは、主に特徴点の三次元分布情報であり、すなわち、三次元の点の集まりであり、この三次元の点の集まりが三次元形状を構成する。
高精度カメラベクトル演算部２６は、三次元情報追跡部２５で得られた追跡データに基づいて、カメラベクトル演算部２３で得られるカメラベクトルより、さらに高精度なカメラベクトルを生成，出力する。
【００４９】
そして、以上のようにして得られたカメラベクトルが、映像再生部３０に入力され、映像中で指定・選択される任意の点や対象物についての視点移動処理に利用されることになる。
複数の画像（動画又は連続静止画）の特徴点からカメラベクトルを検出するには幾つかの方法があるが、図４に示す本実施形態のＣＶ演算部２０では、画像内に十分に多くの数の特徴点を自動抽出し、それを自動追跡することで、エピポーラ幾何学により、カメラの三次元ベクトル及び３軸回転ベクトルを求めるようにしてある。
特徴点を充分に多くとることにより、カメラベクトル情報が重複することになり、重複する情報から誤差を最小化させて、より精度の高いカメラベクトルを求めることができる。
【００５０】
カメラベクトルとは、カメラの持つ自由度のベクトルである。
一般に、静止した三次元物体は、位置座標（Ｘ，Ｙ，Ｚ）と、それぞれの座標軸の回転角（θｘ，θｙ，θｚ）の六個の自由度を持つ。
したがって、カメラベクトルは、カメラの位置座標（Ｘ，Ｙ，Ｚ）とそれぞれの座標軸の回転角（θｘ，θｙ，θｚ）の六個の自由度のベクトル（６変数）をいう。なお、カメラが移動する場合は、自由度に移動方向も入るが、これは上記の六個の自由度（変数）から微分して導き出すことができる。
このように、本実施形態のカメラベクトルの検出とは、カメラは各フレーム毎に六個の自由度の値をとり、各フレーム毎に異なる六個の自由度を決定することである。
【００５１】
以下、ＣＶ演算部２０における具体的なカメラベクトルの検出方法について、図８〜図１６を参照しつつ説明する。
まず、上述した実写映像撮影部１０の全周ビデオカメラ１１で取得された画像データは、間接に又は直接に、ＣＶ演算部２０の特徴点抽出部２１に入力され、特徴点抽出部２１で、適切にサンプリングされたフレーム画像中に、特徴点となるべき点又は小領域画像が自動抽出され、特徴点対応処理部２２で、複数のフレーム画像間で特徴点の対応関係が自動的に求められる。
具体的には、カメラベクトルの検出の基準となる、十分に必要な数以上の特徴点を求める。画像間の特徴点とその対応関係の一例を、図８〜図１０に示す。図中「＋」が自動抽出された特徴点であり、複数のフレーム画像間で対応関係が自動追跡される（図１０に示す対応点１〜４参照）。
ここで、特徴点の抽出は、図１１に示すように、各画像中に充分に多くの特徴点を指定，抽出することが望ましく（図１１の○印参照）、例えば、１００点程度の特徴点を抽出する。
【００５２】
続いて、カメラベクトル演算部２３で、抽出された特徴点の三次元座標が演算により求められ、その三次元座標に基づいてカメラベクトルが演算により求められる。具体的には、カメラベクトル演算部２３は、連続する各フレーム間に存在する、十分な数の特徴の位置と、移動するカメラ間の位置ベクトル、カメラの３軸回転ベクトル、各カメラ位置と特徴点をそれぞれ結んだベクトル等、各種三次元ベクトルの相対値を演算により連続的に算出する。
本実施形態では、例えば、３６０度全周画像のエピポーラ幾何からエピポーラ方程式を解くことによりカメラ運動（カメラ位置とカメラ回転）を計算するようになっている。
【００５３】
図１０に示す画像１，２は、３６０度全周画像をメルカトール展開した画像であり、緯度φ、経度θとすると、画像１上の点は（θ１，φ１）、画像２上の点は（θ２，φ２）となる。そして、それぞれのカメラでの空間座標は、ｚ１＝（ｃｏｓφ１ｃｏｓθ１，ｃｏｓφ１ｓｉｎθ１，ｓｉｎφ１）、ｚ２＝（ｃｏｓφ２ｃｏｓθ２，ｃｏｓφ２ｓｉｎθ２，ｓｉｎφ２）である。カメラの移動ベクトルをｔ、カメラの回転行列をＲ、とすると、ｚ１T［ｔ］×Ｒｚ２＝０がエピポーラ方程式である。
十分な数の特徴点を与えることにより、線形代数演算により最小自乗法による解としてｔ及びＲを計算することができる。この演算を対応する複数フレームに適用し演算する。
【００５４】
ここで、カメラベクトルの演算に利用する画像としては、３６０度全周画像を用いることが好ましい。
カメラベクトル演算に用いる画像としては、原理的にはどのような画像でも良いが、図１０に示す３６０度全周画像のような広角画像の方が特徴点を数多く選択し易くなる。そこで、本実施形態では、ＣＶ演算に３６０度全周画像を用いており、これによって、特徴点の追跡距離を長くでき、特徴点を十分に多く選択することができ、遠距離、中距離、短距離それぞれに都合の良い特徴点を選択することができるようになる。また、回転ベクトルを補正する場合には、極回転変換処理を加えることで、演算処理も容易に行えるようになる。これらのことから、より精度の高い演算結果が得られるようになる。
なお、図１０は、ＣＶ演算部２０における処理を理解し易くするために、１台又は複数台のカメラで撮影した画像を合成した３６０度全周囲の球面画像を地図図法でいうメルカトール図法で展開したものを示しているが、実際のＣＶ演算では、必ずしもメルカトール図法による展開画像である必要はない。
【００５５】
次に、誤差最小化部２４では、各フレームに対応する複数のカメラ位置と複数の特徴点の数により、複数通り生じる演算方程式により、各特徴点に基づくベクトルを複数通り演算して求めて、各特徴点の位置及びカメラ位置の分布が最小になるように統計処理をして、最終的なベクトルを求める。例えば、複数フレームのカメラ位置、カメラ回転及び複数の特徴点について、Levenberg-Marquardt法により最小自乗法の最適解を推定し、誤差を収束してカメラ位置、カメラ回転行列、特徴点の座標を求める。
さらに、誤差の分布が大きい特徴点につては削除し、他の特徴点に基づいて再演算することで、各特徴点及びカメラ位置での演算の精度を上げるようにする。
このようにして、特徴点の位置とカメラベクトルを精度良く求めることができる。
【００５６】
図１２〜図１４に、ＣＶ演算により得られる特徴点の三次元座標とカメラベクトルの例を示す。図１２〜図１４は、本実施形態のＣＶ演算によるベクトル検出方法を示す説明図であり、移動するカメラによって取得された複数のフレーム画像によって得られるカメラ及び対象物の相対的な位置関係を示す図である。
図１２では、図１０の画像１，２に示した特徴点１〜４の三次元座標と、画像１と画像２の間で移動するカメラベクトル（Ｘ，Ｙ，Ｚ）が示されている。
図１３及び図１４は、充分に多くの特徴点とフレーム画像により得られた特徴点の位置と移動するカメラの位置が示されている。同図中、グラフ中央に直線状に連続する○印がカメラ位置であり、その周囲に位置する○印が特徴点の位置と高さを示している。
【００５７】
ここで、ＣＶ演算部２０におけるＣＶ演算は、より高精度な特徴点とカメラ位置の三次元情報を高速に得るために、図１５に示すように、カメラから特徴点の距離に応じて複数の特徴点を設定し、複数の演算を繰り返し行うようにする。
具体的には、ＣＶ演算部２０では、画像内には映像的に特徴がある特徴点を自動検出し、各フレーム画像内に特徴点の対応点を求める際に、カメラベクトル演算に用いるｎ番目とｎ＋ｍ番目の二つのフレーム画像ＦｎとＦｎ＋ｍに着目して単位演算とし、ｎとｍを適切に設定した単位演算を繰り返すことができる。
ｍはフレーム間隔であり、カメラから画像内の特徴点までの距離によって特徴点を複数段に分類し、カメラから特徴点までの距離が遠いほどｍが大きくなるように設定し、カメラから特徴点までの距離が近いほどｍが小さくなるように設定する。このようにするのは、カメラから特徴点までの距離が遠ければ遠いほど、画像間における位置の変化が少ないからである。
【００５８】
そして、特徴点のｍ値による分類を、十分にオーバーラップさせながら、複数段階のｍを設定し、画像の進行とともにｎが連続的に進行するのにともなって、演算を連続的に進行させる。そして、ｎの進行とｍの各段階で、同一特徴点について複数回重複演算を行う。
このようにして、フレーム画像ＦｎとＦｎ＋ｍに着目した単位演算を行うことにより、ｍ枚毎にサンプリングした各フレーム間（フレーム間は駒落ちしている）では、長時間かけて精密カメラベクトルを演算し、フレーム画像ＦｎとＦｎ＋ｍの間のｍ枚のフレーム（最小単位フレーム）では、短時間処理で行える簡易演算とすることができる。
【００５９】
ｍ枚毎の精密カメラベクトル演算に誤差がないとすれば、ｍ枚のフレームのカメラベクトルの両端は、高精度演算をしたＦｎとＦｎ＋ｍのカメラベクトルと重なることになる。したがって、ＦｎとＦｎ＋ｍの中間のｍ枚の最小単位のフレームについては簡易演算で求め、簡易演算で求めたｍ枚の最小単位フレームのカメラベクトルの両端を、高精度演算で求めたＦｎとＦｎ＋ｍのカメラベクトルに一致するように、ｍ枚の連続したカメラベクトルのスケール調整をすることができる。
このようにして、画像の進行とともにｎが連続的に進行することにより、同一特徴点について複数回演算されて得られる各カメラベクトルの誤差が最小になるようにスケール調整して統合し、最終のカメラベクトルを決定することができる。これにより、誤差のない高精度のカメラベクトルを求めつつ、簡易演算を組み合わせることにより、演算処理を高速化することができるようになる。
【００６０】
ここで、簡易演算としては、精度に応じて種々の方法があるが、例えば、(1)高精度演算では１００個以上の多くの特徴点を用いる場合に、簡易演算では最低限の１０個程度の特徴点を用いる方法や、(2)同じ特徴点の数としても、特徴点とカメラ位置を同等に考えれば、そこには無数の三角形が成立し、その数だけの方程式が成立するため、その方程式の数を減らすことで、簡易演算とすることができる。
これによって、各特徴点及びカメラ位置の誤差が最小になるようにスケール調整する形で統合し、距離演算を行い、さらに、誤差の分布が大きい特徴点を削除し、必要に応じて他の特徴点について再演算することで、各特徴点及びカメラ位置での演算の精度を上げることができる。
【００６１】
また、このように高速な簡易演算を行うことにより、カメラベクトルのリアルタイムに近い処理が可能となる。カメラベクトルの高速演算処理は、目的の精度をとれる最低のフレーム数と、自動抽出した最低の特徴点数で演算を行い、カメラベクトルの概略値を高速演算で求め、表示し、次に、画像が蓄積するにつれて、フレーム数を増加させ、特徴点の数を増加させ、より精度の高いカメラベクトル演算を行い、概略値を精度の高いカメラベクトル値に置き換えて表示することができる。
【００６２】
さらに、本実施形態では、より高精度のカメラベクトルを求めるために、三次元情報（三次元形状）の追跡を行うことができる。
具体的には、まず、三次元情報追跡部２５で、カメラベクトル演算部２３，誤差最小化部２４を経て得られたカメラベクトルを概略のカメラベクトルと位置づけ、その後のプロセスで生成される画像の一部として得られる三次元情報（三次元形状）に基づいて、複数のフレーム画像に含まれる部分的三次元情報を隣接するフレーム間で連続的に追跡して三次元形状の自動追跡を行う。
そして、この三次元情報追跡部２５で得られた三次元情報の追跡結果から、高精度カメラベクトル演算部２６においてより高精度なカメラベクトルが求められる。
【００６３】
上述した特徴点抽出部２１及び特徴点対応処理部２２では、特徴点を複数のフレーム間画像内に自動追跡するが、特徴点が消失するなどして特徴点の追跡フレーム数に制限が出てくることがある。また、画像は二次元であり、追跡途中で形状が変化するために追跡精度にも一定の限界がある。
そこで、特徴点追跡で得られるカメラベクトルを概略値と位置づけ、その後のプロセスで得られる三次元情報（三次元形状）を各フレーム画像上に追跡して、その軌跡から高精度カメラベクトルを求めることができる。
三次元形状の追跡は、マッチング及び相関の精度を得やすく、三次元形状はフレーム画像によって、その三次元形状も大きさも変化しないので、多くのフレームに亘って追跡が可能であり、そのことでカメラベクトル演算の精度を向上させることができる。これはカメラベクトル演算部２３により概略のカメラベクトルが既知であり、三次元形状が既に分かっているから可能となるものである。
【００６４】
カメラベクトルが概略値の場合、非常に多くのフレームに亘る三次元座標の誤差は、特徴点追跡による各フレームに関係するフレームが少ないので、誤差が累積して長距離では次第に大きな誤差になるが、画像の一部分を切り取ったときの三次元形状の誤差は相対的に少なく、形状の変化と大きさに及ぼす影響はかなり少ないものとなる。このため、三次元形状での比較や追跡は、二次元形状追跡の時よりも極めて有利となる。追跡において、二次元形状での追跡の場合、複数のフレームにおける形状の変化と大きさの変化を避けられないまま追跡することになるので、誤差が大きかったり、対応点が見つからないなどの問題があったが、三次元形状での追跡においては形状の変化が極めて少なく、しかも原理的に大きさの変化もないので、正確な追跡が可能となる。
【００６５】
ここで、追跡の対象となる三次元形状データとしては、例えば、特徴点の三次元分布形状や、特徴点の三次元分布形状から求められるポリゴン面等がある。
また、得られた三次元形状を、カメラ位置から二次元画像に変換して、二次元画像として追跡することも可能である。カメラベクトルの概略値が既知であることから、カメラ視点からの二次元画像に投影変換が可能であり、カメラ視点の移動による対象の形状変化にも追従することが可能となる。
【００６６】
以上のようにして求められたカメラベクトルは、全周ビデオカメラ１１で撮影されたビデオ映像中に重ねて表示することができる。
例えば、図１６に示すように、車載カメラからの映像を平面展開して、各フレーム画像内の目的平面上の対応点を自動で探索し、対応点を一致させるように結合して目的平面の結合画像を生成し、同一の座標系に統合して表示する。
さらに、その共通座標系の中にカメラ位置とカメラ方向を次々に検出し、その位置や方向、軌跡をプロットしていくことができる。ＣＶデータは、その三次元位置と３軸回転を示しており、ビデオ映像に重ねて表示することで、ビデオ映像の各フレームでＣＶ値を同時に観察できる。ＣＶデータをビデオ映像に重ねた表示した画像例を図１６に示す。
【００６７】
なお、ビデオ映像内にカメラ位置を正しく表示すると、ＣＶ値が示すビデオ映像内の位置は画像の中心となり、カメラ移動が直線に近い場合は、すべてのフレームのＣＶ値が重なって表示されてしまうので、例えば図１６に示すように、敢えてカメラ位置から真下に１メートルの位置を表示することが適切である。あるいは道路面までの距離を基準として、道路面の高さにＣＶ値を表示するのがより適切である。
【００６８】
［ドライビングシミュレーション］
次に、以上のようにして求められるＣＶ値が付与された実写映像（ＣＶ映像）に基づいて実行される、本システムにおけるドライビングシミュレーションの詳細について、図面を参照しつつ具体的に説明する。
図１７は、本システムに係る映像データ作成部２０及び映像再生部３０の基本構成を示すブロック図である。
なお、同図に示す本システムでは、映像データ作成部２０と、映像再生部３０と、実写映像撮影部１０（図２参照）とは、それぞれ別々の機能構成として示しているが、これらは、例えば一部又は全部を一体の構成とすることもできる。また、例えば実写映像撮影部１０及び映像データ作成部２０を、本システムとは切り離して、映像再生部３０のみを本システムとして構成することもできる。その場合には、実写映像撮影部１０及び映像データ作成部２０で撮影・作成される位置情報を備えた実写映像を、映像再生部３０の映像データとして、予め生成し所定の記憶手段等に格納して用意しておくことができる。
【００６９】
図１７に示すように、映像データ作成部２０は、上述したＣＶ演算部を構成する各部２１〜２６を備えている。
ＣＶ演算部２０によるＣＶ演算の具体的な内容については、上述したとおりである（図３〜図１６参照）。
【００７０】
映像再生部３０は、上述したＣＶ値が付与された実写映像（ＣＶ映像）を前提として、車両の速度及び進行方向を示す車両運動情報と、実写映像の位置情報とに基づいて、入力される車両運動情報に対応する実写映像を再生する。
具体的には、映像再生部３０は、図１７に示すように、仮想壁生成部３１，車両位置算出部３２，フレーム画像抽出部３３，コの字型画像生成部３４，仮想壁投影部３５，画像描画部３６の各部を備えている。
【００７１】
仮想壁生成部３１は、上述したＣＶ値などの位置情報に基づいて、実写映像を投影する三次元モデルとなる所定の仮想壁を生成する本発明の仮想壁生成部を構成する。
具体的には、仮想壁生成部３１は、ＣＶ演算部２０の各部２１〜２６で生成されたカメラベクトルの三次元位置座標及び三次元回転座標が示す位置情報に基づいて、所定の仮想壁を生成する（後述する図２８〜図３４参照）。
車両位置算出部３２は、上述した入力デバイス等から入力される車両運動情報に基づいて車両位置を求める。
フレーム画像抽出部３３は、車両位置算出部３２で算出される車両位置に基づいて、実写映像撮影部１０で撮影された実写映像から、最も近いフレーム画像を抽出する。
コの字型画像生成部３４は、フレーム画像抽出部３３で抽出されたフレーム画像を、所定のコの字型スクリーン上に展開したコの字型画像（後述する図１９参照）を生成する。
仮想壁投影部３５は、抽出されたフレーム画像を、仮想壁生成部３１で生成された仮想壁に投影する（図２８〜図３４参照）。
【００７２】
具体的には、仮想壁投影部３５は、コの字型画像生成部３４で生成されるコの字型画像を、所定の仮想壁に投影する。
画像描画部３６は、仮想壁投影部３５によって仮想壁に投影されたフレーム画像に対する視点の位置と方向を決定して、再生画像を描画する。
そして、上記のような映像再生部３０の各部３１〜３６によって再生画像が繰り返し描画されることにより、車両運動情報に対応する実写映像が再生され、所定のディスプレイ（図２参照）などの表示手段にシミュレーション画像として出力・表示され、シミュレーターの操作が視認できるようになる。
【００７３】
以下、映像データ作成部２０による「データ作成プロセス」、及び映像再生部３０による「再生プロセス」の具体的な処理動作の詳細について、図１８〜図３４を参照しつつ説明する。
【００７４】
「データ作成プロセス」
データ作成プロセスは、撮影データファイルから動画プレイヤーに必要なデータを生成する処理である（図２参照）。
［ＣＶ演算］
まず、実写映像撮影部１０で取得された実写映像の撮影データについて、ＣＶ演算処理が行われる（図２参照）。
具体的には、撮影データファイルに対して、上述したＣＶ演算（図４〜図１６）を実行することによって、カメラの位置と姿勢を求めることができる。
ＣＶ演算を行った結果、ＣＶ値と映像が、それぞれＣＶファイルと画像アーカイブファイルとして出力される（図２参照）。
【００７５】
［画像の切り出し］
ＣＶ演算が行われた実写映像は、画像の切り出し処理が行われる（図２参照）。
画像アーカイブファイルには、撮影された実写映像のすべてのフレームの全周映像が、正距円筒図として保存されるようになっている。
但し、本システムの動画プレイヤーでは、ドライビングシミュレーターの特性上、車両の前方方向の一部分の映像だけしか必要としない。
また、シミュレーション画像の再生時の処理負荷を軽減するためにも、不要な動画データは削除することが望ましい。
【００７６】
そこで、本システムでは、画像の切り出し処理を実行し、事前に撮影した映像から必要な領域だけを切り出すとともに、目的の画像データを取り出しやすくするために、アーカイブされていたファイルをフレームごとに独立した画像ファイルに分解しておく。
ここで、画像を切り出す領域は、再生時に表示したい水平画角の大きさに応じて決定することができる。
但し、後述する映像の揺れ止め（図２４）とステアリング連動（図２５）に対応するため、切り出し領域はディスプレイの表示領域よりやや広くとっておくことが望ましい。
【００７７】
図１８に、画像切り出し処理による画像データの作成手順の具体例を示す。
概要を示す説明図である。
同図に示すように、正距円筒画像（同図（ａ））を球面に貼り付け（同図（ｂ））、透視投影することによって、二次元画像に変換することができる（同図（ｃ））。
但し、透視投影することによって得られる二次元画像は、図１８（ｃ）に示すように、水平画角を大きくすればする程、両端で映像が引き延ばされ、結果として画像サイズが大きくなってしまう。
この点を改善・解消するために、本システムでは、以下のようなコの字型スクリーンへの投影処理を行うようにしている。
【００７８】
［コの字型スクリーン投影］
図１９に、画像データのコの字型スクリーンへの投影の概要を示す。
同図に示すように、正距円筒画像を透視投影することによって得られた二次元画像（図１８（ｃ））を、所定のコの字型スクリーンに投影する。
コの字型スクリーンとは、図１９（ａ）に示すように、正距円筒画像を貼り付けた球面を構成する三次元球に外接する立方体で形成される、視線方向の前方及び左右方向の壁面からなり、平面視「コの字型」をなすスクリーンとなっている。
このようなコの字型スクリーンに、正距円筒画像を透視投影することによって得られた二次元画像を投影し（図１９（ｂ））、さらに、画像が投影されたコの字型スクリーンを二次元平面に展開した結果（図１９（ｃ））を、画像データとする（図１９（ｄ））。
【００７９】
このようなコの字型スクリーンへの投影・展開処理を行うことによって、得られる画像は、透視投影することによって得られる二次元画像と比較して、画素数が少なくなる。例えば、図１９（ｄ）に示す画像の例では、水平画角１５０°，垂直画角６０°とした場合、画像データの画素数は４１６８×１６６８ピクセルとなる。
これによって、画像サイズを効果的に圧縮・削減することができ、負荷の少ない滑らかなシミュレーション画像の生成・出力が行えるようになる。
【００８０】
［画像ファイルの保存形式］
以上のようにして生成される画像データは、本システムでは、フレームごとに独立した画像ファイルを圧縮テクスチャの形式で保存するようにしている。
圧縮テクスチャは、ＧＰＵが直接アクセスできる画像フォーマットであるため、デコードを行う必要がなく、再生プロセスにおける処理コストを低減することができ好ましい。
具体的には、圧縮テクスチャのファイルサイズは、画素数によって決定され、例えば、上述した４１６８×１６６８ピクセルでは、１フレームあたり約３．３ＭＢとなる。
【００８１】
「再生プロセス」
以上のデータ作成プロセスに続いて、再生プロセスが実行される。
再生プロセスでは動画プレイヤーが入力デバイスから送られてくる車速とステアリング角に連動した映像をディスプレイに出力する処理である（図２参照）。
【００８２】
［動画プレイヤーの処理フロー］
図２０に、再生プロセスにおける、動画プレイヤー（図２参照）の処理全体のフローを示す。
同図に示すように、動画プレイヤーでは、以下の(1)〜(9)の処理が順次実行される。
(1)設定ファイルの選択
まず、ユーザにより設定ファイルが選択される。この設定ファイルの選択は、動画プレイヤーの入力デバイス等をユーザが操作することによって行われる。
ここで、本システムの設定ファイルには、例えば以下のような情報が記述される。
・ＣＶファイルのパス
・画像データが保存されているディレクトリのパス
・入力デバイスの情報
(2)設定ファイルの読み込み
次いで、ユーザに指定された設定ファイルが読み込まれる。
【００８３】
(3)ＣＶファイルを読み込み
続いて、設定ファイルに記述されているＣＶファイルが読み込まれ、全フレームのＣＶ値が取り出される。
(4)視点の位置と向きの初期化
次に、開始フレームのＣＶ値に基づいて、視点の位置と向きが初期化される。
ここで、視点の位置については、ＣＶ値の位置を視点の位置として設定・初期化する。
また、視線の向きについては、水平方向に回転して車両の進行方向に合わせて設定・初期化する。
(5)入力デバイスへの接続
次に、入力デバイスへの接続が行われる。
入力デバイスへの接続が確立した段階から、車速とステアリング角の受信が始まる。
【００８４】
(6)仮想壁の生成
次に、仮想壁の生成が行われる。
この仮想壁の生成については、後述する（図２８〜図２９参照）。
(7)画像読み込みスレッドの生成
次に、画像読み込みスレッドが生成される。
(8)画像読み込みスレッドの初期化
次いで、画像読み込みスレッドの初期化が行われる。
具体的には、画像読み込みスレッドに、全フレームのＣＶ値が与えられ、各フレームのＣＶ値とそれに対応する画像データの関連付けが行われる。
この画像読み込みスレッドの初期化が完了すると、シミュレーション画像が再生可能な状態となる。
(9)再生処理
したがって、その後再生処理が開始される。
【００８５】
［再生処理］
図２１に、動画プレイヤーにおける再生時の処理の流れを示す。
なお、以下に示す再生の１サイクルは、ディスプレイのリフレッシュレート（例えば最大６０ｆｐｓ）を考慮して所定時間（例えば１/６０秒）に設定される。
(1)入力デバイスからの車速・ステアリング舵角の受け取り
まず、入力デバイスからの運動情報となる車速・ステアリング舵角が受信される。
車速・ステアリング舵角は、例えばマウス，キーボード，ジョイスティック、あるいはシャシダイナモ上に搭載されたセンサー、車両の自己診断機能ＯＢＤ（On-board  diagnostics）、もしくはＣＡＮバスによって取得され、動画プレイヤーで受信・入力する。
【００８６】
(2)現在の車両の位置と姿勢を算出
次に、入力デバイスから受信した運動情報（車速とステアリング舵角）から現在の車両の位置と姿勢が求められる。
車両の位置は、開始時からの車速を積分して算出することができる。
また、車両の姿勢は、ステアリング舵角情報から回転半径を求めることにより算出することができる。
ここで、車両位置・姿勢の算出方法としては、例えば以下のような２つの方法がある。
１つ目は、簡易的な方法で、車両運動シミュレーターを使用せず、ステアリング舵角と車速より、後述するアッカーマン理論（図２２参照）に基づいて軌跡を算出し、車両位置・姿勢を算出する方法である。アッカーマン理論に基づいた場合、後述するように、車両のスリップなどは考慮されない。
もう１つの方法は、ステアリング舵角と車速を、車両運動シミュレーターに入力して車両位置・姿勢を算出する方法である。車両運動シミュレーターを使用した場合、車両のスリップ状態を考慮して車両位置・姿勢が算出されることになる。
【００８７】
［舵角に対する回転半径の算出］
ステアリング舵角に対する回転半径は、以下の方法により求めることができる。
本システムでは、時々刻々と走行位置に相当する画像を抽出している。
車速連動のみの場合、本システムに車速情報を与えて移動距離を算出し、走行位置に相当する画像を抽出すればよい。この場合、画像は常に測定時に走行した時の前景しか表示されない。言い換えると、カーブに差し掛かっても自動的に道路に沿って走行した画像が表示されることなる。
ところが、ドライビングシミュレーターの操作者（ドライバー）は、カーブに差し掛かった場合、カーブの曲率に合わせて操舵を行う。操舵を行わない場合、カーブを曲がらずに直進する。
この動作を再現するために、本システムでは、車両の操舵角情報を動画プレイヤーに与えて、操舵に対応した分だけ画像を横方向に移動させるようにし、移動量を算出するために、時々刻々の車両の回転半径を操舵角から算出するようにしてある。
【００８８】
ここで、動的な車両運動を考慮すると車両の運動方程式を解く必要があるが、それでは処理が複雑になり好ましくない。また、ドライビングシミュレーターの特性上、車両が大幅なスリップ等を発生するような状況は想定しないので、アッカーマン理論に基づいて幾何学的に操舵角と回転半径を算出することができる。
「アッカーマン理論」とは、車が旋回するときの操舵輪（通常は前輪）の切れ角を、外側車輪より内側車輪で大きくすることにより、前後の４車輪の回転中心が同一点となるようにした方式であり、考案者（英国人）の名を取ってアッカーマンステアリング（Ackerman  steering）と呼ばれている。
これによりタイヤの横滑りがないスムースな旋回が可能となり、この方式における内側前輪の切れ角（α）と外側前輪の切れ角（β）の関係を表すものがアッカーマン理論曲線である（図２２（ａ）参照）。
【００８９】
図２２(ａ)に示すように、車両のホイールベース：Ｗと、トレッド：Ｔが決まれば、アッカーマン理論曲線は下記の式１のように表される。
式１：１／ｔａｎβ−１／ｔａｎα＝Ｔ／Ｗ
この式１は、図２２（ａ）から容易に導くことができる。
図２２（ａ）右側のグラフは、比Ｔ/Ｗの値によるアッカーマン理論曲線の変化の様子を示している。図中の点線（α＝β）は、両輪とも同じ切れ角にする方式で、パラレルステアリングと呼ばれるものである。
これより、β及びαは、以下の式２及び式３のようにあらわされる。
式２：β＝ａｓｉｎ（Ｗ／Ｒｏ）
式３：α＝ａｔａｎ（Ｗｔａｎβ／（Ｗ−Ｔｔａｎβ））
【００９０】
本システムでは、車両位置が分かればよいので、操舵角から重心位置の回転半径を算出する。
具体的には、車両中心をステアリング舵角として「θ」とする。
ステアリング舵角は、ギアボックスを介して減速され、実際のタイヤの切れ角となる。アッカーマン理論で説明したように左右で舵角は異なるが、車両重心位置の回転半径のみ分かればよいので、２輪モデルとして考えて車両中心にタイヤがあると考える。この場合のタイヤの舵角を「τ」とする。
これらの関係は次のようになる。
τ：θ＝３３：５００
但し、タイヤ切れ角は外側３１°と内側３６°を考慮し、ハンドル切れ角は実測値とする。
また、重心位置の関係は、以下のようになる（図２２（ｂ）参照）。
Ｗ：ホイールベース
Ｗｒ：重心位置から後軸までの距離
【００９１】
以上より、幾何学的な関係から、後軸中央の回転半径(Ｒｒ)は、以下の式４のように表される。
式４：Ｒｒ＝Ｗ／ｔａｎτ
そして、三平方の定理より、重心位置の回転半径(Ｒ)は、以下の式５のように表される。
式５：Ｒｇ＝√Ｒｒ2＋Ｗｒ2＝√（Ｗ／ｔａｎτ）2＋Ｗｒ
ここで、重心位置から後軸までの距離(Ｗｒ)は、前軸重量(Ａｆ)と後軸重量(Ａｒ)から、以下の式６によって算出することができる。
式６：Ｗｒ＝（Ａｆ／Ａｆ＋Ａｒ）Ｗ
なお、以上の値は、全て例えば車両諸元や車検証から取得することができる。
図２２（ｃ）及び（ｄ）は、上記のようにして得られるステアリング舵角と回転半径の関係を示すグラフである。なお、図２２（ｄ）は、図２２（ｃ）の回転半径が小さい部分を拡大したものである。
【００９２】
(3)車両位置の最近傍フレームの検索
次に、以上のようにして求められた車両位置の最近傍フレームが検索される（図２３参照）。
(4)最近傍フレームの変化判定
次に、最近傍フレームが検索された結果、前回求められた最近傍フレームから変化しているか否かが判定される。
ここで、最近傍フレームに変化がない場合には、(9)のステップに移る。
(5)最近傍フレームの画像データの読み込み
最近傍フレームが変化した場合には、そのフレームに対応する画像データのファイルが読み込まれる。
このとき、ファイルの読み込みに要する時間は、ディスクＩ/Ｏの性能に依存することになる。したがって、ディスクＩ/Ｏの性能が高いほど、動画の再生が滑らかに行われることになる。
【００９３】
(6)ＧＰＵへの画像データの転送
次に、取得された画像データがＧＰＵに転送される。
画像データがＧＰＵに転送されることによって、上述したコの字型スクリーンへの画像の貼り付けが行えるようになる。
(7)コの字型スクリーンへのＣＶ値適用
次に、コの字型スクリーンへのＣＶ値が行われる。
コの字型スクリーンにＣＶ値が適用されることによって、コの字型スクリーンの位置と姿勢を決定することができる。この処理によって、実写映像の撮影時に発生したカメラの揺れがキャンセルされることになる。
映像の揺れ止め処理については、後述する（図２４参照）。
(8)仮想壁への再投影
次いで、コの字型スクリーンに貼り付けられた画像が仮想壁に再投影される。
仮想壁への再投影処理については、後述する（図２６〜図３４参照）。
【００９４】
(9)視点の位置と向きの決定
次に、現在の車両の位置と姿勢から視点の位置と向きが決定される。
(10)画像データの描画スレッドへの送信
最後に、画像読み込みスレッドから最新の車両の位置に従って取得された画像データが描画スレッドに送信される。
ここで描画スレッドに送られた画像データが、次回の描画時に使用されることになる。
その後は、上述した(1)〜(9)のステップが繰り返され、入力デバイスから車速とステアリング角の情報が描画スレッドで随時受信され、ここで受信された車速とステアリング角の情報が次回の描画時に使用されることになる。
【００９５】
［車両位置の最近傍フレーム］
図２３に、最近傍フレーム画像の抽出処理を模式的に示す。
同図に示すように、車両位置の最近傍フレームとは、現在の車両位置からＣＶ値の位置までの三次元距離が最も小さいフレームを指す。
【００９６】
［映像の揺れ止め］
本システムでは、以下の方法により、実写映像の撮影時に発生したカメラの揺れをキャンセルした状態で映像を表示させることができる。
図２４（ａ）に、映像の揺れ止め処理の概要を示す。
同図に示すように、揺れ止め処理は、画像がコの字型スクリーンに展開されてから、コの字型スクリーンにカメラの揺れをキャンセルする回転を加え、その後に透視投影を行うことにより実行される。
【００９７】
本システムでは、撮影した元画像の各フレームにはＣＶ値が紐付けられている。ＣＶ値は、上述のとおり、画像を撮影したカメラの位置を表すベクトルＴ=（ｘ，ｙ，ｚ）と、撮影時のカメラの姿勢を表す角度のベクトルＲ=（θｘ，θｙ，θｚ）からなる値である。
ここで、図２４（ａ）に示すように、θｘはｘ軸を軸とした回転量（ピッチ成分）、θｙはｙ軸を軸とした回転量（ヨー成分）、θｚはｚ軸を軸とした回転量（ロール成分）を示している。これらｘ，ｙ，ｚの各軸に対して３回の回転を行うことで、三次元空間における姿勢を表すことができる。
【００９８】
そこで、コの字型スクリーンにカメラの姿勢のピッチ成分（θｘ）、ロール成分（θｚ）、ヨー成分（θｙ）の回転を適用することによって、カメラの回転運動は打ち消され、並進運動のみが再現された映像となる。
図２４（ｂ）に、揺れ止め処理された映像の一例を示す。
同図に示すように、揺れ止め後の映像をコの字型スクリーンの中心から見ると、ビューポートに対して画像は斜めに傾いているが、景色自体は水平を保つように表示されていることがわかる。
【００９９】
［ステアリング連動］
ステアリング連動処理では、入力デバイスからのステアリングデータに従い、視線方向を変更することができる。
図２５（ａ）に示すように、揺れ止め計算をした上で、更にカメラが向くべき方向を、ステアリング舵角から車両の回転半径を計算し、現在の速度から想車両の定位置と絶対座標内での向きを求める。
計算された車両の絶対座標内での向きを、映像の取得方向（コの字型スクリーンに対する透視射影方向）に反映させることにより、車両が向いている方向の画像をディスプレイに表示させることができる。
【０１００】
図２５（ｂ）に上述したコの字型スクリーン（図２４（ａ））を上から見下ろした図を示す。
同図に示すように、揺れ止めの処理を適用したコの字型スクリーンに対して、更に水平方向にステアリング舵角分の回転を加える。
この図の例では、３つのディスプレイを横に並べた状態を想定しており、３つのカメラは各ディスプレイに表示する領域を示している。
このようにして、入力デバイスからのステアリングデータに基づいて、コの字型スクリーンの映像の視線方向を変更することができるようになる。
【０１０１】
［自由視点移動］
次に、本システムにおける自由視点移動処理について説明する。
ドライビングシミュレーターとして臨場感を持たせるためには、シミュレーション画像の視点を自由に移動させる「自由視点移動」を実現することが重要となる。自由視点移動とは、入力デバイスから受け取った車両の運動情報（車速・ステアリング舵角）に基づいて求めた、「車両の位置から見た映像」を表示することである。
ところが、シミュレーション画像を予め用意しておくドライビングシミュレーターの特性上、事前に撮影した映像の中に、期待する視点の位置から撮影したフレームが存在するとは限らない。
そこで、本システムでは、期待する視点の位置に最も近いフレームの画像を加工することによって、撮影時の位置とは異なる視点から見た映像を動的に生成し、自由視点移動を実現できるようにしている。
【０１０２】
ここで、図２６を参照して、視点の位置に合わせて画像をクロップする領域を移動することによって、自由視点移動を行う場合について説明する。
同図（ａ）に示す画像において、視点が右側に移動して反対車線を走行している状態を再現しようとした場合、同図（ｂ）に示すように、視点が右側に移動したので画像の右側をクロップすることになる。
ところが、この方法では、同図（ｃ）に示す画像の中心付近をクロップした画像と比べて、景色全体が右に移動しただけで、反対車線を走行しているような印象とはならない。
これは、遠近感が加味されていないことに起因する。
【０１０３】
この点を、図２７を参照して更に説明する。
同図（ａ）からも分かるように、視点が移動するとき、近くの対象物ほど二次元平面への投影位置は大きく変化する。
同図の例では、視点Ａから見た結果と、視点Ｂから見た結果を比較すると、手前にある物体ほど二次元平面に投影される位置が大きく動いていることが分かる。
以上のことから、よりリアルに自由視点移動を行うためには、図２６（ｂ）及び（ｃ）に示すような、画像全体を一様にスライドさせるのでなく、対象物までの距離に応じて投影する位置を決定して、図２７（ｂ）及び（ｃ）に示すような結果になることが求められることになる。
【０１０４】
そこで、本システムでは、上記のような課題を解決するために、図２８に示すような、「仮想壁三次元モデル」を用いることによって、臨場感に優れた自由視点移動を実現している。
具体的には、対象物までの距離を与えるために、ＣＶ値から路面の形状を推定して作成した簡易的なトンネル状の三次元モデル（仮想壁）を生成し、その仮想壁に、実写映像を投影するようにしている。
このような仮想壁三次元モデルを用いることにより、任意の視点から見た景色を疑似的に作り出し、ドライビングシミュレーターとして臨場感を持った映像を作り出すことができるようになる。
このように、ＣＶ値から作成したトンネル状の三次元モデルを、本発明に係る「仮想壁」という。図２８の例では、グレー彩色で示した三次元モデルが仮想壁、黒色の点群が撮影時のカメラ位置を示している。
【０１０５】
［仮想壁の作成方法］
次に、以上のような仮想壁の作成方法について説明する。
実写映像の撮影対象となる現実の世界では、車両が走行する道路は、通常は、中央部に路面、両側にガードレールや電柱などが配置されている。
そのような走行画面を仮想壁として再現するためには、特に路面上の移動を考慮すれば良いことになる。
そこで、本システムでは、車両が走行可能な路面幅を推定して、路面部分の形状が反映されている仮想壁を作成する。
【０１０６】
以下、図２９を参照して、仮想壁の作成手順について詳述する。
まず、映像上のある任意のフレームｆｉを想定すると、図２９（ａ）に示すように、そのフレームｆｉの撮影時のカメラの三次元位置を中心として、上下左右方向それぞれに一定の距離だけ広げた矩形の４つの頂点の点集合をＰｉとすることができる。なお、中心（カメラ位置）から下方向の長さは、路面から撮影時のカメラ位置までの距離を実測することで求めることができる。
図２９（ｂ）は、複数の各フレームを真横から見た場合であり、路面の勾配などによって中心及び上下の点Ｐが上下動していることを示している。
そして、これらをすべてのフレームについて想定すれば、各フレームのＰｉの和集合をＰ＝ＵＰｉとすることができる。Ｐは、それぞれのフレームに対応する矩形の４頂点を集めてきた点集合となる。
この点集合Ｐから、「凹包」と呼ばれる三次元メッシュを構成することにより、この三次元メッシュを仮想壁とすることができる。
【０１０７】
［凹包］
凹包とは、点集合をできるだけ凹な形に包み込むようなメッシュのことをいう。例えば、一直線状のコースのような道路であれば、点集合Ｐから機械的にメッシュを張っていけば、一直線のトンネル状の三次元モデルが仮想壁として成立することになる。しかしながら、現実世界の道路は、例えば交差点などのように、複数の道路が交差する箇所が存在するため、上記のようなメッシュの構成では仮想壁の生成は困難乃至不可能となってしまう。
そこで、本システムでは、仮想壁の三次元メッシュとして「凹包」を採用している。
【０１０８】
凹包の構成には、公知の技術としてさまざまなアルゴリズムが存在するが、本システムでは、例えば以下のような作成手順を採用することができる。
まず、上述した点集合Ｐに対して、ドロネー三角形分割と呼ばれるメッシュを構成する。但し、そのままでは、余計な三角形が多く含まれてしまうことになる。
そこで、それぞれの三角形の外接円の半径が、所定の閾値ｒより大きい三角形は、最終的なメッシュに含まないようにする。
この操作を、すべての三角形について行い、残った三角形を集めたメッシュが、仮想壁として使用する凹包となる（図２８参照）。
【０１０９】
［映像の仮想壁への投影］
次に、以上のようにして生成された仮想壁へのコの字型スクリーン映像の投影処理について説明する。
図３０〜図３２は、コの字型スクリーンの実写映像を仮想壁に投影する場合の説明図である。
仮想壁への映像の投影処理は、最初に、図３０に示すように、ＣＶ値によって判明している撮影時のカメラの位置と姿勢を、コの字型スクリーンに適用し、実写映像をコの字型スクリーンに貼り付ける。
次に、図３１に示すように、コの字型スクリーンに貼り付けられている実写映像を、撮影時のカメラの位置から仮想壁に向かって射影する。その結果、同図右側に示すように、仮想壁に実写映像が映り込むことになる。
最後に、図３２（ａ）に示すように、視点の位置と向きを決定する。
【０１１０】
［視錐台／ディスプレイへの出力］
ここで、図３２（ａ）に示す例では、まずは自由視点移動を行わず、撮影位置と同じ場所に視点を置いた状況を想定している。
３ＤＣＧでは、視点の位置，向き，画角を「視錐台」で表現することができる。
図３２（ｂ）に示すように、前方クリップ面と後方クリップ面との間にある立体を視錐台と呼び、この視錐台の内部にある物体が前方クリップ面に投影された結果が、視点から見た映像となる。
【０１１１】
以上のような視錐台は、一つの視錐台が一つのディスプレイに対応する。
ここで、図３３（ａ）に示すように、例えば３つのディスプレイに分割して表示することを想定すると、３つの視錐台が存在することになる。
したがって、最終的には、図３３（ｂ）に示すように、３つの視錐台の映像が３つのディスプレイへ出力されることになる。
そして、３つの視錐台から見た映像をつなげると、図３３（ｃ）に示すような映像となる。同図に示すように、撮影位置と視点が一致しているので、撮影時の映像がそのまま状態で見えるようになる。
【０１１２】
次に、図３３（ｃ）に示す映像において、任意の位置に視点を移動した場合を想定する。
図３４（ａ）に示すように、例えば視点を撮影位置から横方向（右方向に約４メートル）移動させたとする。
この場合には、移動後の視点の位置から映像を見ると、図３４（ｂ）に示すような映像となり、この場合には、道路の一車線分だけ視点が右に移動している映像が生成・表示されるようになる。
このようにして、シミュレーション画像の視点を自由に移動させる「自由視点移動」を実現することが可能となり、車両の運動情報（車速・ステアリング舵角）に基づく「車両の位置から見た映像」を表示することができるようになる。これによって、ドライビングシミュレーターの操作者に臨場感のあるシミュレーション画像を提供することができる。
【０１１３】
以上説明したように、本実施形態のドライビングシミュレーター１によれば、事前に撮影された実際の走行映像に、当該走行映像の正確な位置情報を示すＣＶ値を付与することにより、入力デバイス等から入力される車両の運動情報に連動させて実写映像をシミュレーション画像として出力・再生させることができる。
これによって、シミュレーション画像として、ＣＧではなく実際の外界風景を撮影した実写映像を用いることができ、その実写映像と車両の運動情報とを正確に連動させることができるようになる。
したがって、従来のドライビングシミュレーターのようなＣＧやアニメーション，静止画像等を用いることなく、実写映像で構成されたシミュレーション画像によって、操作者に現実感や臨場感に溢れた迫力のあるドライビングシミュレーションを提供することができる。
【０１１４】
以上、本発明のドライビングシミュレーターについて、好ましい実施形態及び実施例を示して説明したが、本発明に係るドライビングシミュレーターは、上述した実施形態や実施例のみに限定されるものではなく、本発明の範囲で種々の変更実施が可能であることは言うまでもない。
例えば、上述した実施形態では、ドライビングシミュレーターの対象車両として、自動車を例にとって説明しているが、本発明の対象車両としては、自動車以外にも、例えば二輪車，航空機，船舶，電車など、ドライビングシミュレーションが行われる各種の車両を対象とすることができる。
【０１１５】
また、上述した実施形態では、シミュレーション画像となる実写映像に付与する位置情報として、ＣＶ技術によるＣＶ値を用いていたが、これを他の技術や機器などで取得できる位置情報とすることもできる。
すなわち、上述したＣＶ値と同様のカメラの位置と姿勢を示す６種類の変数（位置情報）を実写映像に付与できれば、ＣＶ技術以外の手法で取得される位置情報であっても、本発明のドライビングシミュレーターに適用することができる。
【０１１６】
また、上述した実施形態では、実写映像を投影する三次元モデルである仮想壁として、断面矩形・直方体形状の仮想壁を生成するようにしていたが、仮想壁の断面形状は矩形に限らず、例えば断面円形・円筒形状などの仮想壁を用いることができ、用途に応じた三次元モデル形状を採用することが可能である。
【産業上の利用可能性】
【０１１７】
本発明は、例えば自動車などの車両のドライビングシミュレーターとして好適に利用することができる。
【符号の説明】
【０１１８】
１  ドライビングシミュレーター
１０  実写映像撮影部
２０  映像データ作成部（ＣＶ演算部）
２１  特徴点抽出部
２２  特徴点対応処理部
２３  カメラベクトル演算部
２４  誤差最小化部
２５  三次元情報追跡部
２６  高精度カメラベクトル演算部
３０  映像再生部
３１  仮想壁生成部
３２  車両位置算出部
３３  フレーム画像抽出部
３４  コの字型画像生成部
３５  仮想壁投影部
３６  画像描画部
【図１】
2020008664.tif 000003
【図２】
2020008664.tif 000004
【図３】
2020008664.tif 000005
【図４】
2020008664.tif 000006
【図５】
2020008664.tif 000007
【図６】
2020008664.tif 000008
【図７】
2020008664.tif 000009
【図８】
2020008664.tif 000010
【図９】
2020008664.tif 000011
【図１０】
2020008664.tif 000012
【図１１】
2020008664.tif 000013
【図１２】
2020008664.tif 000014
【図１３】
2020008664.tif 000015
【図１４】
2020008664.tif 000016
【図１５】
2020008664.tif 000017
【図１６】
2020008664.tif 000018
【図１７】
2020008664.tif 000019
【図１８】
2020008664.tif 000020
【図１９】
2020008664.tif 000021
【図２０】
2020008664.tif 000022
【図２１】
2020008664.tif 000023
【図２２】
2020008664.tif 000024
【図２３】
2020008664.tif 000025
【図２４】
2020008664.tif 000026
【図２５】
2020008664.tif 000027
【図２６】
2020008664.tif 000028
【図２７】
2020008664.tif 000029
【図２８】
2020008664.tif 000030
【図２９】
2020008664.tif 000031
【図３０】
2020008664.tif 000032
【図３１】
2020008664.tif 000033
【図３２】
2020008664.tif 000034
【図３３】
2020008664.tif 000035
【図３４】
2020008664.tif 000036