(57)【要約】【課題】撮影装置から近い被写体と当該撮影装置から遠い被写体とを共に３Ｄで良好に再現することができる撮影装置を提供する。【解決手段】撮影装置２００は、撮影装置の前方を撮影することによって第１の３Ｄ画像を撮影するための第１のステレオカメラ２９１と、撮影装置の前方を撮影することによって第２の３Ｄ画像を撮影するための、第１のステレオカメラよりも輻輳角が大きい第２のステレオカメラ２９２と、第１の３Ｄ画像のうちの撮影装置に近い物体を示す部分を、第２の３Ｄ画像のうちの物体を示す部分に置き換えることによって、第３の３Ｄ画像を作成するためのプロセッサ２１０とを備える。【選択図】図２
2012151800.tif 000002
【特許請求の範囲】
【請求項１】
撮影装置であって、
前記撮影装置の前方を撮影することによって第１の３Ｄ画像を撮影するための第１のステレオカメラと、
前記撮影装置の前方を撮影することによって第２の３Ｄ画像を撮影するための、前記第１のステレオカメラよりも輻輳角が大きい第２のステレオカメラと、
前記第１の３Ｄ画像のうちの前記撮影装置に近い物体を示す部分を、前記第２の３Ｄ画像のうちの前記物体を示す部分に置き換えることによって、第３の３Ｄ画像を作成するためのプロセッサとを備える、撮影装置。
【請求項２】
コントローラと通信するための通信インターフェイスと、
前記コントローラからの指令に基づいて前記撮影装置を移動させるための移動部をさらに備え、
前記プロセッサは、前記通信インターフェイスを介して、前記第３の３Ｄ画像を前記コントローラに送信する、請求項１に記載の撮影装置。
【請求項３】
ディスプレイをさらに備え、
前記プロセッサは、前記第３の３Ｄ画像を前記ディスプレイに表示させる、請求項１または２に記載の撮影装置。
【請求項４】
撮影装置であって、
コントローラと通信するための通信インターフェイスと、
前記コントローラからの指令に基づいて前記撮影装置を移動させるための移動部と、
前記撮影装置の前方を撮影することによって第１の３Ｄ画像を撮影するための第１のステレオカメラと、
前記撮影装置の前方を撮影することによって第２の３Ｄ画像を撮影するための、前記第１のステレオカメラよりも輻輳角が大きい第２のステレオカメラと、
前記通信インターフェイスを介して、前記第１および第２の３Ｄ画像を前記コントローラに送信するためのプロセッサとを備える、撮影装置。
【請求項５】
前記第１のステレオカメラは、第１の焦点距離を有する２つの第１のカメラを含み、
前記第２のステレオカメラは、前記第１の焦点距離よりも短い第２の焦点距離を有する２つの第２のカメラを含む、請求項１から４のいずれか１項に記載の撮影装置。
【請求項６】
前記第１のステレオカメラは、第１の画角を有する２つの第１のカメラを含み、
前記第２のステレオカメラは、前記第１の画角よりも広い第２の画角を有する２つの第２のカメラを含む、請求項１から４のいずれか１項に記載の撮影装置。
【請求項７】
撮影装置とコントローラとを備えるネットワークシステムであって、
前記撮影装置は、
前記撮影装置の前方を撮影することによって第１の３Ｄ画像を撮影するための第１のステレオカメラと、
前記撮影装置の前方を撮影することによって第２の３Ｄ画像を撮影するための、前記第１のステレオカメラよりも輻輳角が大きい第２のステレオカメラと、
前記第１の３Ｄ画像のうちの前記撮影装置に近い物体を示す部分を、前記第２の３Ｄ画像のうちの前記物体を示す部分に置き換えることによって、第３の３Ｄ画像を作成するためのプロセッサと、
前記第３の３Ｄ画像を前記コントローラに送信するための第１の通信インターフェイスとを含み、
前記コントローラは、
前記撮影装置から前記第３の３Ｄ画像を受信するための第２の通信インターフェイスと、
前記撮影装置から受信した前記第３の３Ｄ画像を表示するためのディスプレイとを含む、ネットワークシステム。
【請求項８】
撮影装置とコントローラとを備えるネットワークシステムであって、
前記撮影装置は、
前記撮影装置の前方を撮影することによって第１の３Ｄ画像を撮影するための第１のステレオカメラと、
前記撮影装置の前方を撮影することによって第２の３Ｄ画像を撮影するための、前記第１のステレオカメラよりも輻輳角が大きい第２のステレオカメラと、
前記第１および第２の３Ｄ画像を前記コントローラに送信するための第１の通信インターフェイスとを含み、
前記コントローラは、
ディスプレイと、
前記撮影装置から前記第１および第２の３Ｄ画像を受信するための第２の通信インターフェイスと、
前記第１の３Ｄ画像のうちの前記撮影装置に近い物体を示す部分を、前記第２の３Ｄ画像のうちの前記物体を示す部分に置き換えることによって、第３の３Ｄ画像を作成し、前記第３の３Ｄ画像を前記ディスプレイに表示させるためのプロセッサとを含む、ネットワークシステム。
【請求項９】
前記撮影装置は、前記コントローラからの指令に基づいて前記撮影装置を移動させるための移動部をさらに備え、
前記コントローラは、前記指令を受け付けるための操作部をさらに備え、
前記第２の通信インターフェイスは、前記指令を前記撮影装置へ送信する、請求項７または８に記載のネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、３Ｄ画像を撮影するための撮影装置の技術に関する。
【背景技術】
【０００２】
焦点距離が異なる複数のカメラを有する撮影装置が知られている。たとえば、特開平１１−２６１７９７号公報（特許文献１）には、画像処理方法が開示されている。特開平１１−２６１７９７号公報（特許文献１）によると、同シーンを異なる焦点距離で撮影した複数の画像の画像データと、シーン内の着目すべき被写体の情報とを得る。少なくとも着目すべき被写体については、その被写体が合焦している画像の画像データを用いて、異なる焦点距離で撮影した複数の画像の画像データを合成して、１つの画像の画像データを生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２６１７９７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、右目用画像を取得するための右カメラと左目用画像を取得するための左カメラとを含むステレオカメラに関しては、近くの被写体の画像と遠くの被写体の画像とを良好に表示することが困難である。
【０００５】
本発明は、かかる問題を解決するためになされたものであり、その目的は、撮影装置から近い被写体と当該撮影装置から遠い被写体とを共に３Ｄで良好に再現することができる撮影装置を提供することにある。
【課題を解決するための手段】
【０００６】
この発明のある局面に従うと、撮影装置の前方を撮影することによって第１の３Ｄ画像を撮影するための第１のステレオカメラと、撮影装置の前方を撮影することによって第２の３Ｄ画像を撮影するための、第１のステレオカメラよりも輻輳角が大きい第２のステレオカメラと、第１の３Ｄ画像のうちの撮影装置に近い物体を示す部分を、第２の３Ｄ画像のうちの物体を示す部分に置き換えることによって、第３の３Ｄ画像を作成するためのプロセッサとを備える、撮影装置が提供される。
【０００７】
好ましくは、撮影装置は、コントローラと通信するための通信インターフェイスと、コントローラからの指令に基づいて撮影装置を移動させるための移動部をさらに備える。プロセッサは、通信インターフェイスを介して、第３の３Ｄ画像をコントローラに送信する。
【０００８】
好ましくは、撮影装置は、ディスプレイをさらに備える。プロセッサは、第３の３Ｄ画像をディスプレイに表示させる。
【０００９】
この発明の別の局面に従うと、コントローラと通信するための通信インターフェイスと、コントローラからの指令に基づいて撮影装置を移動させるための移動部と、撮影装置の前方を撮影することによって第１の３Ｄ画像を撮影するための第１のステレオカメラと、撮影装置の前方を撮影することによって第２の３Ｄ画像を撮影するための、第１のステレオカメラよりも輻輳角が大きい第２のステレオカメラと、通信インターフェイスを介して、第１および第２の３Ｄ画像をコントローラに送信するためのプロセッサとを備える撮影装置が提供される。
【００１０】
好ましくは、第１のステレオカメラは、第１の焦点距離を有する２つの第１のカメラを含む。第２のステレオカメラは、第１の焦点距離よりも短い第２の焦点距離を有する２つの第２のカメラを含む。
【００１１】
好ましくは、第１のステレオカメラは、第１の画角を有する２つの第１のカメラを含む。第２のステレオカメラは、第１の画角よりも広い第２の画角を有する２つの第２のカメラを含む。
【００１２】
この発明の別の局面に従うと、撮影装置とコントローラとを備えるネットワークシステムが提供される。撮影装置は、撮影装置の前方を撮影することによって第１の３Ｄ画像を撮影するための第１のステレオカメラと、撮影装置の前方を撮影することによって第２の３Ｄ画像を撮影するための、第１のステレオカメラよりも輻輳角が大きい第２のステレオカメラと、第１の３Ｄ画像のうちの撮影装置に近い物体を示す部分を、第２の３Ｄ画像のうちの物体を示す部分に置き換えることによって、第３の３Ｄ画像を作成するためのプロセッサと、第３の３Ｄ画像をコントローラに送信するための第１の通信インターフェイスとを含む。コントローラは、撮影装置から第３の３Ｄ画像を受信するための第２の通信インターフェイスと、撮影装置から受信した第３の３Ｄ画像を表示するためのディスプレイとを含む。
【００１３】
この発明の別の局面に従うと、撮影装置とコントローラとを備えるネットワークシステムが提供される。撮影装置は、撮影装置の前方を撮影することによって第１の３Ｄ画像を撮影するための第１のステレオカメラと、撮影装置の前方を撮影することによって第２の３Ｄ画像を撮影するための、第１のステレオカメラよりも輻輳角が大きい第２のステレオカメラと、第１および第２の３Ｄ画像をコントローラに送信するための第１の通信インターフェイスとを含む。コントローラは、ディスプレイと、撮影装置から第１および第２の３Ｄ画像を受信するための第２の通信インターフェイスと、第１の３Ｄ画像のうちの撮影装置に近い物体を示す部分を、第２の３Ｄ画像のうちの物体を示す部分に置き換えることによって、第３の３Ｄ画像を作成し、第３の３Ｄ画像をディスプレイに表示させるためのプロセッサとを含む。
【００１４】
好ましくは、撮影装置は、コントローラからの指令に基づいて撮影装置を移動させるための移動部をさらに備える。コントローラは、指令を受け付けるための操作部をさらに備える。第２の通信インターフェイスは、指令を撮影装置へ送信する。
【発明の効果】
【００１５】
以上のように、この発明によれば、撮影装置から近い被写体と当該撮影装置から遠い被写体とを共に３Ｄで良好に再現することができる撮影装置が提供される。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態に係るネットワークシステム１の全体構成を示すイメージ図である。
【図２】本実施の形態に係るコントローラ１００のハードウェア構成を表わすブロック図である。
【図３】本実施の形態に係るユーザがラジコンカー２００のためのコースを作成するための命令を入力する状態を示すイメージ図である。
【図４】本実施の形態に係る通常モードとレースモードとにおけるコントローラ１００を示すイメージ図である。
【図５】本実施の形態に係るレースのスタート直前におけるコントローラ１００を示すイメージ図である。
【図６】本実施の形態に係るラジコンカー２００がレースのゴール地点の直前に位置するときにおけるコントローラ１００を示すイメージ図である。
【図７】本実施の形態に係るラジコンカー２００のハードウェア構成を表わすブロック図である。
【図８】本実施の形態に係るカメラ２９０の正面図である。
【図９】本実施の形態に係る中長距離用の３Ｄカメラ２９１（または近距離用の３Ｄステレオカメラ２９２）の撮影範囲と合成された３Ｄ画像とを示すイメージ図である。
【図１０】本実施の形態に係る中長距離用の３Ｄカメラ２９１と近距離用の３Ｄカメラ２９２の輻輳角を示すイメージ図である。
【図１１】本実施の形態に係る中長距離用の３Ｄカメラ２９１と近距離用の３Ｄカメラ２９２の画角を示すイメージ図である。
【図１２】本実施の形態に係る中長距離用の３Ｄカメラ２９１の画像と近距離用の３Ｄカメラ２９１の画像との合成処理を示すイメージ図である。
【図１３】カメラ２９０Ｂの変形例を示すイメージ図である。
【図１４】実施の形態１に係るコントローラ１００における制御方法を示すフローチャートである。
【図１５】実施の形態２に係るコントローラ１００における制御方法を示すフローチャートである。
【発明を実施するための形態】
【００１７】
以下、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品には同一の符号を付してある。それらの名称および機能も同じである。したがって、それらについての詳細な説明は繰り返さない。
【００１８】
［実施の形態１］
以下では、ラジコンカーを「撮影装置」の代表例として説明を行う。ただし、「撮影装置」は、後述するように近距離用の３Ｄカメラと長距離用の３Ｄカメラとを有していればよい。たとえば、撮像装置は、デジタルカメラであってもよいし、飛行できるヘリコプターや飛行機でもよいし、歩行できるロボットであってもよい。なお、ヘリコプターや飛行機の場合は、撮影装置の高度を取得する高度計を含むことが好ましい。また、「コントローラ」は、ラジコンカーの制御専用のものであってもよいし、他の機能を有する携帯型電話機、パーソナルコンピュータ、電子ノート、ＰＤＡ（Personal  Digital  Assistant）などのディスプレイと通信インターフェイスを有する機器であってもよい。
【００１９】
より詳細には、本実施の形態においては、撮像装置が近距離画像と長距離画像とを合成するものである。撮像装置は、合成画像をコントローラ１００に送信する。コントローラ１００が合成画像を表示する。しかしながら、後述するように、撮像装置自身が、すなわち撮影装置のディスプレイが、合成画像を表示してもよい。
【００２０】
＜ネットワークシステムの動作概要＞
まず、本実施の形態に係るネットワークシステム１の動作概要について説明する。図１は、本実施の形態に係るネットワークシステム１の全体構成を示すイメージ図である。
【００２１】
図１を参照して、ネットワークシステム１は、コントローラ１００Ｘ，１００Ｙとラジコンカー２００Ｘ，２００Ｙとを含む。以下では、説明のために、コントローラ１００Ｘ，１００Ｙを総称して、コントローラ１００という。ラジコンカー２００Ｘ，２００Ｙを総称して、ラジコンカー２００という。
【００２２】
各々のユーザは、ラジコンカー２００を公園や庭の地面に載置する。ユーザは、コントローラ１００を介してラジコンカー２００の動作を制御する。
【００２３】
ラジコンカー２００は、ラジコンカー２００の前方を撮影するための３Ｄステレオカメラを搭載する。より詳細には、ラジコンカー２００は、中長距離用の３Ｄステレオカメラと近距離用の３Ｄステレオカメラとを有する。より詳細には、近距離用の３Ｄステレオカメラの焦点距離は、中長距離用の３Ｄステレオカメラの焦点距離よりも短い。近距離用の３Ｄステレオカメラの輻輳角は、中長距離用の３Ｄステレオカメラの輻輳角よりも大きい。近距離用の３Ｄステレオカメラの画角は、中長距離用の３Ｄステレオカメラの画角よりも大きい。
【００２４】
本実施の形態においては、ラジコンカー２００は、中長距離用の３Ｄステレオカメラで撮影された３Ｄ画像と近距離用の３Ｄステレオカメラで撮影された３Ｄ画像とを合成する。ラジコンカー２００は、合成画像を逐次コントローラ１００に送信する。
【００２５】
ラジコンカー２００は、ラジコンカー２００の現在位置を測定するためのＧＰＳ（Global Positioning System）を搭載する。ラジコンカー２００は、現在の位置を逐次コントローラ１００に送信する。
【００２６】
ラジコンカー２００は、ラジコンカー２００の現在の向き（姿勢）を測定するための電子コンパスを搭載する。ラジコンカー２００は、現在の向きを逐次コントローラ１００に送信する。ラジコンカー２００は、合成画像と現在の位置と現在の向きとを、同時にコントローラ１００に送信してもよいし、別々に送信してもよい。
【００２７】
コントローラ１００は、ラジコンカー２００からの合成画像を表示する。ユーザは、合成画像を見ながら、コントローラ１００にラジコンカー２００を移動させるための命令（前進命令、後進命令、方向転換命令、加減速命令、以下これらの命令を移動命令ともいう。）を入力する。コントローラ１００は、ラジコンカー２００にユーザからの移動命令を送信する。
【００２８】
本実施の形態においては、コントローラ１００は、ラジコンカー２００からの現在位置の時系列データ（コース作成用時系列データ）を蓄積する。コントローラ１００は、時系列データに基づいて、ラジコンカー２００の軌跡を取得する。コントローラ１００は、ラジコンカー２００の軌跡に基づいて、ラジコンカー２００のためのコース（サーキット）を示すデータを作成する。
【００２９】
コースを示すデータ（コースデータとも言う。）は、コースのトラックを示す白線やコースパイロンなどの３Ｄオブジェクトを含む。コースの位置、形状、向きは、現実の地図データに対応付けられる。あるいは、コースの位置、形状、向きは、緯度・経度に対応付けられる。
【００３０】
ただし、コントローラ１００は、タッチパネル１３０などを介して、コースの作成命令を受け付けてもよい。たとえば、コントローラ１００は地図を表示している状態で、ユーザから地図上におけるスライド操作を受け付ける。コントローラ１００は、スライド操作に基づいて、コースの位置と形状と向きとを決定する。
【００３１】
あるいは、コントローラ１００は、予め複数のコースデータを記憶していてもよい。すなわち、ラジコンカー２００が走らなくとも、予め準備された複数のコースからユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、ユーザによってコースの位置と向きとが指定されてもよい。
【００３２】
コースが決定された後、ユーザの命令に基づいて、コントローラ１００はレースを開始する。コントローラ１００は、コースのデータとラジコンカー２００の現在の位置と向きとに基づいて、コースにおけるラジコンカー２００の位置と向きとを取得する。コントローラ１００は、コースにおけるラジコンカー２００の位置と向きとに基づいて、コースのデータからラジコンカー２００から見た３Ｄオブジェクトを示すバーチャル画像を作成する。
【００３３】
たとえば、コントローラ１００は、サーキットの３Ｄモデルデータを作成してから、サーキットにおけるラジコンカー２００の位置と向きとに基づいて、３Ｄモデルデータの視点を決定する。コントローラ１００は、当該視点からの３Ｄモデルデータの表示画像（バーチャル画像）を作成する。
【００３４】
コントローラ１００は、ラジコンカー２００からの合成画像にバーチャル画像を重畳させて表示する。
【００３５】
本実施の形態においては、第１のラジコンカー２００Ｘを制御するための第１のコントローラ１００Ｘは、第２のラジコンカー２００Ｙを制御するための第２のコントローラ１００Ｙと通信することが可能である。第１のコントローラ１００Ｘは、コースデータを第２のコントローラ１００Ｙへと送信したり、第２のラジコンカー２００Ｙからコースデータを受信したりする。
【００３６】
すなわち、第１のコントローラ１００Ｘと第２のコントローラ１００Ｙとは、共通のコースデータに基づいて、ラジコンカー２００Ｘ，２００Ｙの走行を制御することができる。たとえば、第１のコントローラ１００Ｘのユーザは、第１のラジコンカー２００Ｘからの合成画像を見ながら、すなわち、第２のラジコンカー２００Ｙの現実の映像を見ながら、コースに沿ったレースを行うことができる。第２のコントローラ１００Ｙも同様である。
【００３７】
このように、本実施の形態に係るネットワークシステム１においては、ユーザは、仮想的なコースを示す画像（バーチャル画像）を見ながら、ラジコンカー２００の目線でラジコンカー２００の移動を制御することができる。その結果、ユーザは、ラジコンカー２００の移動の制御を臨場感あふれるものにすることができる。
【００３８】
また、本実施の形態に係るネットワークシステム１においては、ラジコンカー２００が、中長距離用の３Ｄステレオカメラで撮影された３Ｄ画像と近距離用の３Ｄステレオカメラで撮影された３Ｄ画像とを合成するため、撮像装置から遠い被写体（遠くに見える建物など）と当該撮像装置からから近い被写体（他のラジコンカーなど）とを共に良好に再現することができる。
【００３９】
以下、このような機能を実現するためのネットワークシステム１の具体的な構成について詳述する。
【００４０】
＜コントローラ１００の構成＞
コントローラ１００の具体的構成の一態様について説明する。図２は、本実施の形態に係るコントローラ１００のハードウェア構成を表わすブロック図である。図２を参照して、コントローラ１００は、主たる構成要素として、ＣＰＵ１１０と、メモリ１２０と、タッチパネル１３０と、スピーカ１４０と、ボタン１５０と、メモリインターフェイス１６０と、通信インターフェイス１７０と、時計１８０とを含む。
【００４１】
メモリ１２０は、各種のＲＡＭ（Random  Access  Memory）や、ＲＯＭ（Read-Only  Memory）や、ハードディスクなどによって実現される。メモリ１２０は、ＣＰＵ１１０によって実行されるプログラム、地図データ、バーチャルコースを示すための各種のモデルデータなどを記憶する。換言すれば、ＣＰＵ１１０は、メモリ１２０に記憶されているプログラムを実行することによって、コントローラ１００の各部を制御する。
【００４２】
タッチパネル１３０は、タブレット１３２とタブレット１３２の表面に敷設されるディスプレイ１３１とを含む。後述するようにラジコンカー２００が３Ｄカメラを有する場合には、ディスプレイ１３１は、３Ｄディスプレイであることが好ましい。
【００４３】
タッチパネル１３０は、抵抗膜方式、表面弾性波方式、赤外線方式、電磁誘導方式、静電容量方式などのいずれのタイプであってもよい。タッチパネル１３０は、光センサ液晶を含んでもよい。タッチパネル１３０（タブレット１３２）は、所定時間毎に外部の物体によるタッチパネル１３０へのタッチ操作を検知して、タッチ座標（タッチ位置）をＣＰＵ１１０に入力する。換言すれば、ＣＰＵ１１０は、タッチパネル１３０から順次タッチ座標を取得する。
【００４４】
スピーカ１４０は、ＣＰＵ１１０からの命令に基づいて、音声を出力する。たとえば、ＣＰＵ１１０は、音声データに基づいて、スピーカ１４０に音声を出力させる。
【００４５】
ボタン１５０は、コントローラ１００の表面に配置される。方向キー、決定キー、テンキーなどの複数のボタンがコントローラ１００に配置されてもよい。ボタン１５０は、ユーザからの命令を受け付ける。ボタン１５０は、ユーザからの命令をＣＰＵ１１０に入力する。
【００４６】
メモリインターフェイス１６０は、外部の記憶媒体１６１からデータを読み出す。換言すれば、ＣＰＵ１１０は、メモリインターフェイス１６０を介して外部の記憶媒体１６１に格納されているデータを読み出して、当該データをメモリ１２０に格納する。逆に、ＣＰＵ１１０は、メモリ１２０からデータを読み出して、メモリインターフェイス１６０を介して当該データを外部の記憶媒体１６１に格納する。
【００４７】
なお、記憶媒体１６１としては、ＣＤ（Compact  Disc）、ＤＶＤ（Digital  Versatile  Disk）、ＢＤ（Blu-ray  Disc）、ＵＳＢ（Universal  Serial  Bus）メモリ、メモリカード、ＦＤ（Flexible  Disk）、ハードディスク、磁気テープ、カセットテープ、ＭＯ（Magnetic  Optical  Disc）、ＭＤ（Mini  Disc）、ＩＣ（Integrated  Circuit）カード（メモリカードを除く）、光カード、ＥＰＲＯＭ、ＥＥＰＲＯＭ（Electronically  Erasable  Programmable  Read-Only  Memory）などの、不揮発的にプログラムを格納する媒体が挙げられる。
【００４８】
通信インターフェイス１７０は、アンテナやコネクタによって実現される。通信インターフェイス１７０は、無線通信によってラジコンカー２００や他のコントローラ１００との間でデータをやり取りする。ＣＰＵ１１０は、通信インターフェイス１７０を介して、他のコンピュータからプログラムや地図データなどを受信する。ＣＰＵ１１０は、通信インターフェイス１７０を介して、他のコントローラ１００にコースデータを送信したり、他のコントローラ１００からコースデータを受信したりする。ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００に移動命令を送信したり、ラジコンカー２００から合成画像や現在の位置や現在の向きを受信したりする。
【００４９】
時計１８０は、ＣＰＵ１１０からの指令に基づいて、時刻あるいは期間を計測する。
ＣＰＵ１１０は、メモリ１２０あるいは記憶媒体１６１に記憶されているプログラムを実行することによって、コントローラ１００の各部を制御する。たとえば、ＣＰＵ１１０は、メモリ１２０あるいは記憶媒体１６１に記憶されているプログラムを実行することによって、ラジコンカー２００のコントロール処理を実行する。
【００５０】
具体的には、ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から合成画像を受信する。ＣＰＵ１１０は、合成画像をタッチパネル１３０に表示させる。ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからラジコンカー２００を移動させるための命令（移動命令）を受け付ける。ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００に移動命令を送信する。
【００５１】
ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から現在の位置と向きとを受信する。ＣＰＵ１１０は、ラジコンカー２００の現在位置の時系列データをメモリ１２０に格納する。
【００５２】
ＣＰＵ１１０は、時系列データに基づいて、ラジコンカー２００の軌跡を取得する。ＣＰＵ１１０は、ラジコンカー２００の軌跡に基づいて、ラジコンカー２００のためのコースを示すデータを作成する。
【００５３】
コースを示すデータ（コースデータとも言う。）は、コースの中心線を示す白線３０１Ｘやコースの端線を示す白線３０２Ｘやコースパイロン３０３Ｘなどの３Ｄオブジェクト（モデルデータ）を含む。ＣＰＵ１１０は、コースの位置、形状、向きを、現実の地図データに対応付ける。あるいは、ＣＰＵ１１０は、コースの位置、形状、向きを、緯度・経度に対応付ける。
【００５４】
あるいは、ＣＰＵ１１０は、ラジコンカー２００を走行させることなく、コースデータを作成してもよい。より詳細には、本実施の形態に係るＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから地図の取得命令を受け付ける。ＣＰＵ１１０は、通信インターフェイス１７０を介して、外部のサーバなどから地図データをダウンロードする。ＣＰＵ１１０は、メモリ１２０や記憶媒体１６１から地図データを読み出してもよい。
【００５５】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから、ラジコンカー２００のためのコースを作成するための命令を受け付ける。図３は、本実施の形態に係るユーザがラジコンカー２００のためのコースを作成するための命令を入力する状態を示すイメージ図である。
【００５６】
図３を参照して、ＣＰＵ１１０は、タッチパネル１３０に地図画像を表示しながら、ユーザによるスライド操作を受け付ける。たとえば、ＣＰＵ１１０は、タッチパネル１３０を介して、指の地図画像に対するタッチ位置を順次取得することによって、地図画像上の指の軌跡を取得する。
【００５７】
あるいは、ＣＰＵ１１０は、タッチパネル１３０に地図画像とポインタとを表示する。ＣＰＵ１１０は、ボタン１５０を介して、ユーザからポインタの移動命令を受け付ける。ＣＰＵ１１０は、ポインタの地図画像に対する位置を順次取得することによって、地図画像上のポインタの軌跡を取得する。たとえば、ユーザは、所定のキーを押しながら、方向キーを操作することによってポインタを移動させる。
【００５８】
ＣＰＵ１１０は、当該指の軌跡に基づいて、ラジコンカー２００のためのコースを示すデータを作成する。ＣＰＵ１１０は、軌跡の両側にコースの端部を示すためのコースパイロンやトラックラインなどを作成する。
【００５９】
あるいは、コントローラ１００は、予め複数のコースデータを記憶していてもよい。すなわち、予め準備された複数のコースから、ユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、コースの位置と向きとが指定されてもよい。
【００６０】
本実施の形態においては、ＣＰＵ１１０は、コースデータを他のコントローラ１００へと送信したり、他のコントローラ１００からコースデータを受信したりする。ＣＰＵ１１０は、他のコントローラ１００から受信したコースデータをメモリ１２０に格納する。ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから当該コースデータの選択を受け付ける。
【００６１】
たとえば、第１および第２のコントローラ１００Ｘ，１００Ｙのユーザが、第１および第２のラジコンカー２００Ｘ，２００Ｙを、同一のコース上で同時に走らせることによって、レースを行うことができる。
【００６２】
コースが決定された後、ユーザの命令に基づいて、ＣＰＵ１１０は、レースを開始する。ＣＰＵ１１０は、コースのデータとラジコンカー２００の現在位置と向きとに基づいて、コースにおけるラジコンカー２００の位置と向きとを取得する。
【００６３】
ＣＰＵ１１０は、コースにおけるラジコンカー２００の位置と向きとに基づいて、コースのデータからラジコンカー２００から見た３Ｄオブジェクトを示すバーチャル画像を作成する。ＣＰＵ１１０は、ラジコンカー２００からの合成画像にバーチャル画像を重畳させて表示する。たとえば、合成画像には、他のコントローラ１００のラジコンカー２００が写っていることもある。
【００６４】
図４は、本実施の形態に係る通常モードとレースモードとにおけるコントローラ１００を示すイメージ図である。より詳細には、図４（ａ）は、レースがスタートする前、あるいは、コースを作成するためにラジコンカー２００が走行しているとき、におけるコントローラ１００のタッチパネル１３０を示すイメージ図である。図４（ｂ）は、レース中におけるコントローラ１００のタッチパネル１３０を示すイメージ図である。
【００６５】
図４（ａ）を参照して、ＣＰＵ１１０は、レースがスタートする前、あるいは、コースを作成するためにラジコンカー２００が走行しているとき、ラジコンカー２００からの合成画像をタッチパネル１３０に表示させる。図４（ｂ）を参照して、ＣＰＵ１１０は、レースがスタートすると、あるいは、レース中においては、ラジコンカー２００からの合成画像に、コースの中心を示す白線３０１Ｘ、コースの端を示す白線３０２Ｘ、コースパイロン３０３Ｘなどのバーチャル画像を重畳させる。
【００６６】
より詳細には、ＣＰＵ１１０は、タッチパネル１３０に、合成画像にレースのスタートに適した２Ｄまたは３Ｄのバーチャル画像を重畳させてもよい。すなわち、メモリ１２０は、スタート用のバーチャル画像を記憶する。図５は、本実施の形態に係るレースのスタート直前におけるコントローラ１００を示すイメージ図である。
【００６７】
図５を参照して、ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースにおけるスタート地点やゴール地点を受け付ける。ＣＰＵ１１０は、コースにおけるラジコンカー２００の現在の位置と向きとに基づいて、レースが開始される際に、メモリ１２０からバーチャル画像を読み出す。ＣＰＵ１１０は、タッチパネル１３０に、合成画像と白線３０１Ｘ，３０２Ｘとコースパイロン３０３Ｘとスタートのタイミングを示す文字と信号機の画像などを表示させる。
【００６８】
また、ＣＰＵ１１０は、タッチパネル１３０は、合成画像にレースのゴールに適した２Ｄまたは３Ｄのバーチャル画像を表示させてもよい。すなわち、メモリ１２０は、ゴール用のバーチャル画像を記憶する。図６は、本実施の形態に係るラジコンカー２００がレースのゴール地点の直前に位置するときにおけるコントローラ１００を示すイメージ図である。
【００６９】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースにおけるスタート地点やゴール地点を受け付ける。ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースを何週するかの指定を受け付ける。
【００７０】
図６を参照して、ＣＰＵ１１０は、コースにおけるラジコンカー２００の現在位置と向きに基づいて、ラジコンカー２００がゴール地点に近づくと、メモリ１２０からバーチャル画像を読み出す。ＣＰＵ１１０は、タッチパネル１３０に、合成画像と白線３０１Ｘ，３０２Ｘとコースパイロン３０３Ｘとゴール地点を示す画像などを表示させる。
【００７１】
＜ラジコンカー２００の構成＞
次に、ラジコンカー２００の具体的構成の一態様について説明する。図７は、本実施の形態に係るラジコンカー２００のハードウェア構成を表わすブロック図である。図７を参照して、ラジコンカー２００は、主たる構成要素として、ＣＰＵ２１０と、メモリ２２０と、移動機構２３０と、ＧＰＳ２４０と、電子コンパス２５０と、メモリインターフェイス２６０と、通信インターフェイス２７０と、時計２８０と、カメラ２９０とを含む。
【００７２】
メモリ２２０は、各種のＲＡＭや、ＲＯＭや、ハードディスクなどによって実現される。メモリ２２０は、ＣＰＵ２１０によって実行されるプログラムなどを記憶する。換言すれば、ＣＰＵ２１０は、メモリ２２０に記憶されているプログラムを実行することによって、ラジコンカー２００の各部を制御する。
【００７３】
移動機構２３０は、ＣＰＵ２１０からの指令に基づいて、ラジコンカー２００を移動させる。たとえば、移動機構２３０は、モータやシャフトやタイヤなどを含む。ただし、移動機構２３０は、プロペラ、翼、脚部などであってもよい。移動機構２３０は、コントローラ１００からの移動命令に応じて、ラジコンカー２００を移動させる。
【００７４】
ＧＰＳ２４０は、ラジコンカー２００の現在位置を取得する。現在位置は、通信インターフェイス２７０を介して、コントローラ１００へと送信される。
【００７５】
電子コンパス２５０は、ラジコンカー２００の向きを取得する。向きは、通信インターフェイス２７０を介して、コントローラ１００へと送信される。
【００７６】
メモリインターフェイス２６０は、外部の記憶媒体２６１からデータを読み出す。換言すれば、ＣＰＵ２１０は、メモリインターフェイス２６０を介して外部の記憶媒体２６１に格納されているデータを読み出して、当該データをメモリ２２０に格納する。逆に、ＣＰＵ２１０は、メモリ２２０からデータを読み出して、メモリインターフェイス２６０を介して当該データを外部の記憶媒体２６１に格納する。
【００７７】
なお、記憶媒体２６１の実現方法としては、コントローラ１００の記憶媒体１６１と同様であるため、ここでは説明を繰り返さない。
【００７８】
通信インターフェイス２７０は、アンテナやコネクタによって実現される。通信インターフェイス２７０は、無線通信によってコントローラ１００との間でデータをやり取りする。換言すれば、ＣＰＵ２１０は、通信インターフェイス２７０を介して、コントローラ１００から移動命令を受信したり、合成画像や現在の位置や現在の向きを送信したりする。
【００７９】
時計２８０は、ＣＰＵ２１０からの指令に基づいて、時刻あるいは期間を計測する。
カメラ２９０は、ラジコンカー２００の前部に配置されている。図８は、本実施の形態に係るカメラ２９０の正面図である。図９は、本実施の形態に係る中長距離用の３Ｄカメラ２９１（または近距離用の３Ｄステレオカメラ２９２）の撮影範囲と合成された３Ｄ画像とを示すイメージ図である。
【００８０】
図７および図８を参照して、カメラ２９０は、ラジコンカー２００の前方の景色を撮影する。カメラ２９０は、中長距離用の３Ｄカメラ２９１と、近距離用の３Ｄカメラ２９２とを含む。本実施の形態においては、中長距離用の３Ｄカメラ２９１と、近距離用の３Ｄカメラ２９２とが、共にラジコンカー２００の前方を向いている。中長距離用の３Ｄカメラ２９１が、近距離用の３Ｄカメラ２９２の上方に重ねて配置されている。
【００８１】
中長距離用の３Ｄカメラ２９１は、第１の焦点距離を有する右カメラ２９１Ｒと第１の焦点距離を有する左カメラ２９１Ｌとを有する。近距離用の３Ｄカメラ２９２は、第１の焦点距離よりも短い第２の焦点距離を有する右カメラ２９２Ｒと第１の焦点距離よりも短い第２の焦点距離を有する左カメラ２９２Ｌとを有する。
【００８２】
図９を参照して、右カメラ２９１Ｒ（２９２Ｒ）と左カメラ２９１Ｌ（２９２Ｌ）とが、ラジコンカー２００の前方に位置する被写体Ａ，Ｂ，Ｃ，Ｄを撮影したとする。そして、被写体Ｃは、右カメラ２９１Ｒ（２９２Ｒ）と左カメラ２９１Ｌ（２９２Ｌ）との輻輳点に位置する物とする。
【００８３】
右カメラ２９１Ｒ（２９２Ｒ）と左カメラ２９１Ｌ（２９２Ｌ）との視差により、ディスプレイ１３１においては、被写体Ａは、ディスプレイ１３１において、右目用の画像ＡＲと、画像ＡＲと異なる位置に表示される左目用の画像ＡＬとして表示される。被写体Ｂは、ディスプレイ１３１において、右目用の画像ＢＲと、画像ＢＲとは異なる位置に表示される左目用の画像ＢＬとして表示される。被写体Ｃは、ディスプレイ１３１において、右目用の画像Ｃと右目用画像Ｃと同じ位置に表示される左目用の画像Ｃとして表示される。同様に、被写体Ｄは、ディスプレイ１３１において、右目用の画像ＤＲと、画像ＤＲとは異なる位置に表示される左目用の画像ＤＬとして表示される。
【００８４】
図１０は、本実施の形態に係る中長距離用の３Ｄカメラ２９１と近距離用の３Ｄカメラ２９２の輻輳角を示すイメージ図である。図１０を参照して、本実施の形態においては、中長距離用の３Ｄカメラ２９１を構成する右カメラ２９１Ｒと左カメラ２９１Ｌの輻輳角θ１は、近距離用の３Ｄカメラ２９２を構成する右カメラ２９２Ｒと左カメラ２９２Ｌの輻輳角θ２よりも小さい。
【００８５】
図１１は、本実施の形態に係る中長距離用の３Ｄカメラ２９１と近距離用の３Ｄカメラ２９２の画角を示すイメージ図である。図１１を参照して、本実施の形態においては、中長距離用の３Ｄカメラ２９１を構成する右カメラ２９１Ｒと左カメラ２９１Ｌの画角は、近距離用の３Ｄカメラ２９２を構成する右カメラ２９２Ｒと左カメラ２９２Ｌの画角よりも小さい。
【００８６】
これによって、撮影装置の前側方に位置する物体が、近距離用の３Ｄカメラ２９２によって撮影される。つまり、合成画像においては、撮影装置の前側方に位置する物体が、より良好に再現されるようになる。換言すれば、撮影装置から前方に中長距離離れた被写体だけでなく、撮影装置の前方および前側方に近距離離れた被写体がより明確に再現されるようになる。たとえば、撮影装置がラジコンカーである場合、他のラジコンカー２００を追い抜くときに、ユーザはより臨場感のある画像を見ることができる。
【００８７】
図１２は、本実施の形態に係る中長距離用の３Ｄカメラ２９１（たとえば、左カメラ２９１Ｌ）の画像と近距離用の３Ｄカメラ２９２（たとえば、左カメラ２９２Ｌ）の画像との合成処理を示すイメージ図である。より詳細には、図１２（ａ）は、中長距離用の３Ｄカメラ２９１で撮影された画像を示す。図１２（ｂ）は、近距離用の３Ｄカメラ２９２で撮影された画像を示す。図１２（ｃ）は、近距離用の３Ｄカメラ２９２で撮影された画像のうちの焦点があっているエリアの画像を示す。図１２（ｄ）は、近距離用の３Ｄカメラ２９２で撮影された画像のうちの焦点があっているエリアの画像を拡大した画像を示す。図１２（ｅ）は、中長距離用の３Ｄカメラ２９１の画像と近距離用の３Ｄカメラ２９２の拡大された画像との合成画像を示す。
【００８８】
図１２（ａ）（ｂ）を参照して、本実施の形態においては、中長距離用の３Ｄカメラ２９１の画角は近距離用の３Ｄカメラ２９２の画角よりも小さいため、中長距離用の３Ｄカメラ２９１が撮影した画像の被写体は、近距離用の３Ｄカメラ２９２が撮影した画像の被写体よりも大きく表わされる。図１２（ｃ）（ｄ）を参照して、ＣＰＵ２１０（ＣＰＵ１１０）は、近距離用の３Ｄカメラ２９２で撮影された３Ｄカメラ２９２から近距離離れた被写体の画像を、中長距離用の３Ｄカメラ２９１で撮影された画像に合わせて拡大する。すなわち、図１２（ｅ）を参照して、ＣＰＵ２１０（ＣＰＵ１１０）は、中長距離用の３Ｄカメラ２９１によって撮影された画像と、近距離用の３Ｄカメラ２９２によって撮影されて拡大された被写体の画像とを合成する（重ねる）。
【００８９】
図１３は、カメラ２９０Ｂの変形例を示すイメージ図である。図１３を参照して、変形例においては、中長距離用の３Ｄカメラ２９１と近距離用の３Ｄカメラ２９２とが垂直に配置される。中長距離用の３Ｄカメラ２９１と近距離用の３Ｄカメラ２９２との間に、ハーフミラー２９３を配置する。これによって、中長距離用の３Ｄカメラ２９１と近距離用の３Ｄカメラ２９２との視差を低減する。中長距離用の３Ｄカメラ２９１と近距離用の３Ｄカメラ２９２の構成は、カメラ２９０のそれらと同様であるため、ここでは説明を繰り返さない。
【００９０】
ＣＰＵ２１０は、メモリ２２０あるいは記憶媒体２６１に記憶されているプログラムを実行することによって、ラジコンカー２００の各部を制御する。たとえば、ＣＰＵ２１０は、メモリ２２０あるいは記憶媒体２６１に記憶されているプログラムを実行する。
【００９１】
より詳細には、本実施の形態に係るＣＰＵ２１０は、中長距離用の３Ｄステレオカメラ２９１で撮影された３Ｄ画像と近距離用の３Ｄステレオカメラ２９２で撮影された３Ｄ画像とを合成する。たとえば、ＣＰＵ２１０は、複数の被写体（オブジェクト）を認識する。ＣＰＵ２１０は、被写体毎に、中長距離用の３Ｄステレオカメラ２９１の右カメラ２９１Ｒから得られた右目用画像における表示位置が左カメラ２９１Ｌから得られた左目用画像における表示位置よりも所定距離以上、左方に位置するか否かを判断する。あるいは、ＣＰＵ２１０は、被写体毎に、中長距離用の３Ｄステレオカメラ２９１の左カメラ２９１Ｌから得られた左目用画像における表示位置が右カメラ２９１Ｒから得られた右目用画像における表示位置よりも所定距離以上、右方に位置するか否かを判断する。
【００９２】
ＣＰＵ２１０は、被写体に関して、中長距離用の３Ｄステレオカメラ２９１の右カメラ２９１Ｒから得られた右目用画像における表示位置が左カメラ２９１Ｌから得られた左目用画像における表示位置よりも所定距離以上、左方に位置する場合、中長距離用の３Ｄステレオカメラ２９１から得られた画像のうちの当該被写体に対応する部分を、近距離用の３Ｄステレオカメラ２９２から得られた画像のうちの当該被写体に対応する部分に置き換えることによって、合成画像を作成する。一方、ＣＰＵ２１０は、被写体に関して、中長距離用の３Ｄステレオカメラ２９１の右カメラ２９１Ｒから得られた右目用画像における表示位置が左カメラ２９１Ｌから得られた左目用画像における表示位置よりも所定距離以上、左方に位置しない場合、中長距離用の３Ｄステレオカメラ２９１から得られた画像のうちの当該被写体に対応する部分を合成画像として利用する。
【００９３】
ＣＰＵ２１０は、通信インターフェイス２７０を介して、逐次、合成画像をコントローラ１００に送信する。ＣＰＵ２１０は、コントローラ１００からの要求に応じて、あるいは定期的に、通信インターフェイス２７０を介して、ラジコンカー２００の現在位置と向きとをコントローラ１００に送信する。ＣＰＵ２１０は、通信インターフェイス２７０を介して、コントローラ１００から移動命令を受け付ける。ＣＰＵ２１０は、移動命令に基づいて、移動機構２３０を駆動させる。
【００９４】
たとえば、ＣＰＵ２１０は、通信インターフェイス２７０を介して、移動命令として、前進命令、後進命令、方向転換命令、加減速命令などを受信する。ＣＰＵ２１０は、当該命令に基づいて移動機構２３０を駆動させることによって、ラジコンカー２００を前進させたり、後進させたり、方向転換させたり、速度を増加させたりする。
【００９５】
本実施の形態においては、撮影装置を代表して、ラジコンカー２００について説明したが、撮影装置は輻輳角が異なる２種類の３Ｄカメラを有していればよい。たとえば、撮影装置は、デジタルカメラのように、ディスプレイやタッチパネルを有していてもよい。その場合、ＣＰＵ２１０は、中長距離用の３Ｄステレオカメラ２９１で撮影された３Ｄ画像と近距離用の３Ｄステレオカメラ２９２で撮影された３Ｄ画像とから作成された合成画像を、撮影装置自身のディスプレイやタッチパネルに表示させてもよい。
【００９６】
＜制御方法＞
以下では、主に、本実施の形態に係るコントローラ１００で実行される処理について説明する。すなわち、本実施の形態に係るコントローラ１００におけるラジコンカー２００の制御方法について説明する。図１４は、実施の形態１に係るコントローラ１００における制御方法を示すフローチャートである。
【００９７】
図１４を参照して、コントローラ１００のＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからレースの開始命令を受け付けると、ステップＳ１０６からの処理を実行する。なお、以下では、ＣＰＵ１１０は、通信インターフェイス１７０を介して、一度は、ラジコンカー２００から現在の位置と向きとを受信しているものとする。
【００９８】
ＣＰＵ１１０は、メモリ１２０からコースデータを読み出すことによって、コースの３Ｄバーチャルデータを作成する（ステップＳ１０６）。ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から合成画像または現在位置および向きを受信したか否かを判断する（ステップＳ１０８）。ＣＰＵ１１０は、ラジコンカー２００から合成画像または現在位置および向きを受信しなかった場合（ステップＳ１０８においてＮＯである場合）、ステップＳ１０８の処理を繰り返す。
【００９９】
ＣＰＵ１１０は、ラジコンカー２００から合成画像および現在位置および向きを受信した場合（ステップＳ１０８においてＹＥＳである場合）、最新のラジコンカー２００の現在位置および向きに基づいて、コースを示す３Ｄバーチャルモデルに対する視点を決定する（ステップＳ１１２）。より詳細には、ＣＰＵ１１０は、コースにおける位置と向きとに基づいて、３Ｄバーチャルモデルに対する視点を決定する。
【０１００】
ＣＰＵ１１０は、決定された視点からの、３Ｄバーチャル画像を作成する（ステップＳ１１４）。ＣＰＵ１１０は、最新の合成画像に、作成された最新の３Ｄバーチャル画像を重畳させる（ステップＳ１１６）。ＣＰＵ１１０は、タッチパネル１３０に、最新の合成画像と最新の３Ｄバーチャル画像との合成画像を表示させる（ステップＳ１１８）。
【０１０１】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからレースを終了するための命令を受け付けたか否かを判断する（ステップＳ１２０）。ＣＰＵ１１０は、レースを終了するための命令を受け付けなかった場合（ステップＳ１２０においてＮＯである場合）、ステップＳ１０８からの処理を繰り返す。ＣＰＵ１１０は、レースを終了するための命令を受け付けた場合（ステップＳ１２０においてＹＥＳである場合）、ラジコンカー２００のコントロール処理を終了する。
【０１０２】
［実施の形態２］
次に、本発明の実施の形態２について説明する。実施の形態１に係るネットワークシステム１においては、ラジコンカー２００が合成画像を生成するものであった。一方、本実施の形態に係るネットワークシステム１においては、ラジコンカー２００が、中長距離用の３Ｄステレオカメラ２９１で撮影された３Ｄ画像と、近距離用の３Ｄステレオカメラ２９２で撮影された３Ｄ画像とをコントローラ１００に送信する。そして、コントローラ１００が、合成画像を生成するものである。
【０１０３】
なお、以下では、実施の形態１に係るネットワークシステム１と同様の構成については、説明を繰り返さない。
【０１０４】
＜ネットワークシステムの動作概要＞
まず、本実施の形態に係るネットワークシステム１の動作概要について説明する。
【０１０５】
図１を参照して、ネットワークシステム１は、コントローラ１００Ｘ，１００Ｙとラジコンカー２００Ｘ，２００Ｙとを含む。ここでも、説明のために、コントローラ１００Ｘ，１００Ｙを総称して、コントローラ１００という。ラジコンカー２００Ｘ，２００Ｙを総称して、ラジコンカー２００という。
【０１０６】
ユーザは、ラジコンカー２００を公園や庭の地面に載置する。ユーザは、コントローラ１００を介してラジコンカー２００の動作を制御する。
【０１０７】
ラジコンカー２００は、ラジコンカー２００の前方を撮影するための３Ｄステレオカメラを搭載する。より詳細には、ラジコンカー２００は、中長距離用の３Ｄステレオカメラと近距離用の３Ｄステレオカメラとを有する。より詳細には、近距離用の３Ｄステレオカメラの焦点距離は、中長距離用の３Ｄステレオカメラの焦点距離よりも短い。近距離用の３Ｄステレオカメラの輻輳角は、中長距離用の３Ｄステレオカメラの輻輳角よりも大きい。近距離用の３Ｄステレオカメラの画角は、中長距離用の３Ｄステレオカメラの画角よりも大きい。
【０１０８】
本実施の形態においては、ラジコンカー２００は、中長距離用の３Ｄステレオカメラで撮影された３Ｄ画像と近距離用の３Ｄステレオカメラで撮影された３Ｄ画像とを、逐次、コントローラ１００に送信する。
【０１０９】
ラジコンカー２００は、ラジコンカー２００の現在位置を測定するためのＧＰＳを搭載する。ラジコンカー２００は、現在の位置を逐次コントローラ１００に送信する。
【０１１０】
ラジコンカー２００は、ラジコンカー２００の現在の向き（姿勢）を測定するための電子コンパスを搭載する。ラジコンカー２００は、現在の向きを逐次コントローラ１００に送信する。ラジコンカー２００は、中長距離と近距離の３Ｄ画像と現在の位置と現在の向きとを、同時にコントローラ１００に送信してもよいし、別々に送信してもよい。
【０１１１】
本実施の形態においては、コントローラ１００は、ラジコンカー２００から、中長距離用の３Ｄステレオカメラで撮影された３Ｄ画像と近距離用の３Ｄステレオカメラで撮影された３Ｄ画像とを受信する。コントローラ１００は、中長距離用の３Ｄステレオカメラ２９１で撮影された３Ｄ画像と近距離用の３Ｄステレオカメラ２９２で撮影された３Ｄ画像とを合成する。コントローラ１００は、合成画像を表示する。
【０１１２】
ユーザは、合成画像を見ながら、コントローラ１００にラジコンカー２００を移動させるための命令（前進命令、後進命令、方向転換命令、加減速命令、以下これらの命令を移動命令ともいう。）を入力する。コントローラ１００は、ラジコンカー２００にユーザからの移動命令を送信する。
【０１１３】
本実施の形態においては、コントローラ１００は、ラジコンカー２００からの現在位置の時系列データ（コース作成用時系列データ）を蓄積する。コントローラ１００は、時系列データに基づいて、ラジコンカー２００の軌跡を取得する。コントローラ１００は、ラジコンカー２００の軌跡に基づいて、ラジコンカー２００のためのコース（サーキット）を示すデータを作成する。
【０１１４】
コースを示すデータ（コースデータとも言う。）は、コースのトラックを示す白線やコースパイロンなどの３Ｄオブジェクトを含む。コースの位置、形状、向きは、現実の地図データに対応付けられる。あるいは、コースの位置、形状、向きは、緯度・経度に対応付けられる。
【０１１５】
ただし、コントローラ１００は、タッチパネル１３０などを介して、コースの作成命令を受け付けてもよい。たとえば、コントローラ１００は地図を表示している状態で、ユーザから地図上におけるスライド操作を受け付ける。コントローラ１００は、スライド操作に基づいて、コースの位置と形状と向きとを決定する。
【０１１６】
あるいは、コントローラ１００は、予め複数のコースデータを記憶していてもよい。すなわち、ラジコンカー２００が走らなくとも、予め準備された複数のコースからユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、ユーザによってコースの位置と向きとが指定されてもよい。
【０１１７】
コースが決定された後、ユーザの命令に基づいて、コントローラ１００はレースを開始する。コントローラ１００は、コースのデータとラジコンカー２００の現在の位置と向きとに基づいて、コースにおけるラジコンカー２００の位置と向きとを取得する。コントローラ１００は、コースにおけるラジコンカー２００の位置と向きとに基づいて、コースのデータからラジコンカー２００から見た３Ｄオブジェクトを示すバーチャル画像を作成する。
【０１１８】
たとえば、コントローラ１００は、サーキットの３Ｄモデルデータを作成してから、サーキットにおけるラジコンカー２００の位置と向きとに基づいて、３Ｄモデルデータの視点を決定する。コントローラ１００は、当該視点からの３Ｄモデルデータの表示画像（バーチャル画像）を作成する。
【０１１９】
コントローラ１００は、自身が生成した合成画像にバーチャル画像を重畳させて表示する。
【０１２０】
本実施の形態においても、第１のラジコンカー２００Ｘを制御するための第１のコントローラ１００Ｘは、第２のラジコンカー２００Ｙを制御するための第２のコントローラ１００Ｙと通信することが可能である。第１のコントローラ１００Ｘは、コースデータを第２のコントローラ１００Ｙへと送信したり、第２のラジコンカー２００Ｙからコースデータを受信したりする。
【０１２１】
すなわち、第１のコントローラ１００Ｘと第２のコントローラ１００Ｙとは、共通のコースデータに基づいて、ラジコンカー２００Ｘ，２００Ｙの走行を制御することができる。たとえば、第１のコントローラ１００Ｘのユーザは、自身が生成した合成画像を見ながら、すなわち、第２のラジコンカー２００Ｙの現実の映像を見ながら、コースに沿ったレースを行うことができる。第２のコントローラ１００Ｙも同様である。
【０１２２】
このように、本実施の形態に係るネットワークシステム１においては、ユーザは、仮想的なコースを示す画像（バーチャル画像）を見ながら、ラジコンカー２００の目線でラジコンカー２００の移動を制御することができる。その結果、ユーザは、ラジコンカー２００の移動の制御を臨場感あふれるものにすることができる。
【０１２３】
また、本実施の形態に係るネットワークシステム１においては、コントローラ１００が、中長距離用の３Ｄステレオカメラで撮影された３Ｄ画像と近距離用の３Ｄステレオカメラで撮影された３Ｄ画像とを合成するため、撮像装置から遠い被写体（遠くに見える建物など）と当該撮像装置からから近い被写体（他のラジコンカーなど）とを共に良好に再現することができる。
【０１２４】
以下、このような機能を実現するためのネットワークシステム１の具体的な構成について詳述する。
【０１２５】
＜コントローラ１００の構成＞
なお、コントローラ１００のハードウェア構成については、実施の形態１のそれと同様であるため、ここでは説明を繰り返さない。以下では、コントローラ１００のＣＰＵ１１０の動作について説明する。
【０１２６】
ＣＰＵ１１０は、メモリ１２０あるいは記憶媒体１６１に記憶されているプログラムを実行することによって、コントローラ１００の各部を制御する。たとえば、ＣＰＵ１１０は、メモリ１２０あるいは記憶媒体１６１に記憶されているプログラムを実行することによって、ラジコンカー２００のコントロール処理を実行する。
【０１２７】
具体的には、ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から中長距離用の３Ｄステレオカメラで撮影された３Ｄ画像と近距離用の３Ｄステレオカメラで撮影された３Ｄ画像とを受信する。ＣＰＵ１１０は、中長距離用の３Ｄステレオカメラで撮影された３Ｄ画像と近距離用の３Ｄステレオカメラで撮影された３Ｄ画像とを合成する。
【０１２８】
たとえば、ＣＰＵ１１０は、複数の被写体を認識する。ＣＰＵ１１０は、被写体毎に、中長距離用の３Ｄステレオカメラ２９１の右カメラ２９１Ｒから得られた右目用画像における表示位置が左カメラ２９１Ｌから得られた左目用画像における表示位置よりも所定距離以上、左方に位置するか否かを判断する。あるいは、ＣＰＵ１１０は、被写体毎に、中長距離用の３Ｄステレオカメラ２９１の左カメラ２９１Ｌから得られた左目用画像における表示位置が右カメラ２９１Ｒから得られた右目用画像における表示位置よりも所定距離以上、右方に位置するか否かを判断する。
【０１２９】
ＣＰＵ１１０は、被写体に関して、中長距離用の３Ｄステレオカメラ２９１の右カメラ２９１Ｒから得られた右目用画像における表示位置が左カメラ２９１Ｌから得られた左目用画像における表示位置よりも所定距離以上、左方に位置する場合、中長距離用の３Ｄステレオカメラ２９１から得られた画像のうちの当該被写体に対応する部分を、近距離用の３Ｄステレオカメラ２９２から得られた画像のうちの当該被写体に対応する部分に置き換えることによって、合成画像を作成する。一方、ＣＰＵ１１０は、被写体に関して、中長距離用の３Ｄステレオカメラ２９１の右カメラ２９１Ｒから得られた右目用画像における表示位置が左カメラ２９１Ｌから得られた左目用画像における表示位置よりも所定距離以上、左方に位置しない場合、中長距離用の３Ｄステレオカメラ２９１から得られた画像のうちの当該被写体に対応する部分を合成画像として利用する。ＣＰＵ１１０は、合成画像をタッチパネル１３０に表示させる。
【０１３０】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからラジコンカー２００を移動させるための命令（移動命令）を受け付ける。ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００に移動命令を送信する。
【０１３１】
ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から現在の位置と向きとを受信する。ＣＰＵ１１０は、ラジコンカー２００の現在位置と向きの時系列データ（コース作成用時系列データ）をメモリ１２０に格納する。
【０１３２】
ＣＰＵ１１０は、コース作成用時系列データに基づいて、ラジコンカー２００の軌跡を取得する。ＣＰＵ１１０は、ラジコンカー２００の軌跡に基づいて、ラジコンカー２００のためのコースを示すデータを作成する。
【０１３３】
コースを示すデータ（コースデータとも言う。）は、コースのトラックを示す白線やコースパイロンなどの３Ｄオブジェクト（モデルデータ）を含む。ＣＰＵ１１０は、コースの位置、形状、向きを、現実の地図データに対応付ける。あるいは、ＣＰＵ１１０は、コースの位置、形状、向きを、緯度・経度に対応付ける。
【０１３４】
あるいは、ＣＰＵ１１０は、ラジコンカー２００を走行させることなく、コースデータを作成してもよい。より詳細には、本実施の形態に係るＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから地図の取得命令を受け付ける。ＣＰＵ１１０は、通信インターフェイス１７０を介して、外部のサーバなどから地図データをダウンロードする。ＣＰＵ１１０は、メモリ１２０や記憶媒体１６１から地図データを読み出してもよい。
【０１３５】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから、ラジコンカー２００のためのコースを作成するための命令を受け付ける。図３を参照して、ＣＰＵ１１０は、タッチパネル１３０に地図画像を表示しながら、ユーザによるスライド操作を受け付ける。たとえば、ＣＰＵ１１０は、タッチパネル１３０を介して、指の地図画像に対するタッチ位置を順次取得することによって、地図画像上の指の軌跡を取得する。
【０１３６】
あるいは、ＣＰＵ１１０は、タッチパネル１３０に地図画像とポインタとを表示する。ＣＰＵ１１０は、ボタン１５０を介して、ユーザからポインタの移動命令を受け付ける。ＣＰＵ１１０は、ポインタの地図画像に対する位置を順次取得することによって、地図画像上のポインタの軌跡を取得する。たとえば、ユーザは、所定のキーを押しながら、方向キーを操作することによってポインタを移動させる。
【０１３７】
ＣＰＵ１１０は、当該指の軌跡に基づいて、ラジコンカー２００のためのコースを示すデータを作成する。ＣＰＵ１１０は、軌跡の両側にコースの端部を示すためのコースパイロンやトラックラインなどを作成する。
【０１３８】
あるいは、コントローラ１００は、予め複数のコースデータを記憶していてもよい。すなわち、予め準備された複数のコースから、ユーザが所望のコースを選択してもよい。この場合には、たとえば、コースの位置、形状、向きが予め地図データあるいは緯度・経度に対応付けられている。あるいは、コースの形状のみが準備されており、ユーザがコースを選択する際に、コースの位置と向きとが指定されてもよい。
【０１３９】
本実施の形態においては、ＣＰＵ１１０は、コースデータを他のコントローラ１００へと送信したり、他のコントローラ１００からコースデータを受信したりする。ＣＰＵ１１０は、他のコントローラ１００から受信したコースデータをメモリ１２０に格納する。ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザから当該コースデータの選択を受け付ける。
【０１４０】
たとえば、第１および第２のコントローラ１００Ｘ，１００Ｙのユーザが、第１および第２のラジコンカー２００Ｘ，２００Ｙを、同一のコース上で同時に走らせることによって、レースを行うことができる。
【０１４１】
コースが決定された後、ユーザの命令に基づいて、ＣＰＵ１１０は、レースを開始する。ＣＰＵ１１０は、コースのデータとラジコンカー２００の現在位置と向きとに基づいて、コースにおけるラジコンカー２００の位置と向きとを取得する。
【０１４２】
ＣＰＵ１１０は、コースにおけるラジコンカー２００の位置と向きとに基づいて、コースのデータからラジコンカー２００から見た３Ｄオブジェクトを示すバーチャル画像を作成する。ＣＰＵ１１０は、自身が生成した合成画像にバーチャル画像を重畳させて表示する。たとえば、合成画像には、他のコントローラ１００のラジコンカー２００が写っていることもある。
【０１４３】
本実施の形態においても、図４（ａ）を参照して、ＣＰＵ１１０は、レースがスタートする前、あるいは、コースを作成するためにラジコンカー２００が走行しているとき、自身が生成した合成画像をタッチパネル１３０に表示させる。図４（ｂ）を参照して、ＣＰＵ１１０は、レースがスタートすると、あるいは、レース中においては、自身が生成した合成画像に、コースの中心を示す白線３０１Ｘ、コースの端を示す白線３０２Ｘ、コースパイロン３０３Ｘなどのバーチャル画像を重畳させる。
【０１４４】
また、ＣＰＵ１１０は、タッチパネル１３０に、合成画像にレースのスタートに適した２Ｄまたは３Ｄのバーチャル画像を重畳させてもよい。すなわち、メモリ１２０は、スタート用のバーチャル画像を記憶する。
【０１４５】
図５を参照して、ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースにおけるスタート地点やゴール地点を受け付ける。ＣＰＵ１１０は、コースにおけるラジコンカー２００の現在位置と向きに基づいて、レースが開始される際に、メモリ１２０からバーチャル画像を読み出す。ＣＰＵ１１０は、タッチパネル１３０に、合成画像と白線３０１Ｘ，３０２Ｘとコースパイロン３０３Ｘとスタートのタイミングを示す文字と信号機の画像などを表示させる。
【０１４６】
また、ＣＰＵ１１０は、タッチパネル１３０は、合成画像にレースのゴールに適した２Ｄまたは３Ｄのバーチャル画像を表示させてもよい。すなわち、メモリ１２０は、ゴール用のバーチャル画像を記憶する。
【０１４７】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースにおけるスタート地点やゴール地点を受け付ける。ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、コースを何週するかの指定を受け付ける。
【０１４８】
図６を参照して、ＣＰＵ１１０は、コースにおけるラジコンカー２００の現在位置と向きに基づいて、ラジコンカー２００がゴール地点に近づくと、メモリ１２０からバーチャル画像を読み出す。ＣＰＵ１１０は、タッチパネル１３０に、合成画像と白線３０１Ｘ，３０２Ｘとコースパイロン３０３Ｘとゴール地点を示す画像などを表示させる。
【０１４９】
＜ラジコンカー２００の構成＞
なお、ラジコンカー２００のハードウェア構成については、実施の形態１のそれと同様であるため、ここでは説明を繰り返さない。より詳細には、本実施の形態においては、ラジコンカー２００のＣＰＵ２１０が、通信インターフェイス２７０を介して、中長距離用の３Ｄステレオカメラ２９１で撮影された３Ｄ画像と、近距離用の３Ｄステレオカメラ２９２で撮影された３Ｄ画像とをコントローラ１００に送信する。すなわち、ＣＰＵ２１０は、両者の３Ｄ画像を合成する必要がない。
【０１５０】
＜制御方法＞
以下では、主に、本実施の形態に係るコントローラ１００で実行される処理について説明する。すなわち、本実施の形態に係るコントローラ１００におけるラジコンカー２００の制御方法について説明する。図１５は、実施の形態２に係るコントローラ１００における制御方法を示すフローチャートである。
【０１５１】
図１５を参照して、コントローラ１００のＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからレースの開始命令を受け付けると、ステップＳ２０６からの処理を実行する。なお、以下では、ＣＰＵ１１０は、通信インターフェイス１７０を介して、一度は、ラジコンカー２００から現在の位置と向きとを受信しているものとする。
【０１５２】
ＣＰＵ１１０は、メモリ１２０からコースデータを読み出すことによって、コースの３Ｄバーチャルデータを作成する（ステップＳ２０６）。ＣＰＵ１１０は、通信インターフェイス１７０を介して、ラジコンカー２００から中長距離用の３Ｄステレオカメラ２９１で撮影された３Ｄ画像および近距離用の３Ｄステレオカメラ２９２で撮影された３Ｄ画像またはラジコンカー２００の現在位置および向きを受信したか否かを判断する（ステップＳ２０８）。ＣＰＵ１１０は、ラジコンカー２００から３Ｄ画像または現在位置および向きを受信しなかった場合（ステップＳ２０８においてＮＯである場合）、ステップＳ２０８の処理を繰り返す。
【０１５３】
ＣＰＵ１１０は、ラジコンカー２００から３Ｄ画像および現在位置および向きを受信した場合（ステップＳ２０８においてＹＥＳである場合）、最新のラジコンカー２００の現在位置および向きに基づいて、コースを示す３Ｄバーチャルモデルに対する視点を決定する（ステップＳ２１２）。より詳細には、ＣＰＵ１１０は、コースにおける位置と向きとに基づいて、３Ｄバーチャルモデルに対する視点を決定する。
【０１５４】
ＣＰＵ１１０は、決定された視点からの、３Ｄバーチャル画像を作成する（ステップＳ２１４）。ＣＰＵ１１０は、最新の、中長距離用の３Ｄステレオカメラ２９１で撮影された３Ｄ画像と近距離用の３Ｄステレオカメラ２９２で撮影された３Ｄ画像とを合成する（ステップＳ２１５）。ＣＰＵ１１０は、最新の合成画像に、作成された最新の３Ｄバーチャル画像を重畳させる（ステップＳ２１６）。ＣＰＵ１１０は、タッチパネル１３０に、最新の合成画像と最新の３Ｄバーチャル画像との合成画像を表示させる（ステップＳ２１８）。
【０１５５】
ＣＰＵ１１０は、タッチパネル１３０またはボタン１５０を介して、ユーザからレースを終了するための命令を受け付けたか否かを判断する（ステップＳ２２０）。ＣＰＵ１１０は、レースを終了するための命令を受け付けなかった場合（ステップＳ２２０においてＮＯである場合）、ステップＳ２０８からの処理を繰り返す。ＣＰＵ１１０は、レースを終了するための命令を受け付けた場合（ステップＳ２２０においてＹＥＳである場合）、ラジコンカー２００のコントロール処理を終了する。
【０１５６】
＜その他の応用例＞
本発明は、システム或いは装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。そして、本発明を達成するためのソフトウェアによって表されるプログラムを格納した外部の記憶媒体１６１，２６１やメモリ１２０，２２０を、システム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ）が外部の記憶媒体１６１，２６１やメモリ１２０，２２０に格納されたプログラムコードを読出し実行することによっても、本発明の効果を享受することが可能となる。
【０１５７】
この場合、外部の記憶媒体１６１，２６１やメモリ１２０，２２０から読出されたプログラムコード自体が前述した実施の形態の機能を実現することになり、そのプログラムコードを記憶した外部の記憶媒体１６１，２６１やメモリ１２０，２２０は本発明を構成することになる。
【０１５８】
また、コンピュータが読出したプログラムコードを実行することにより、前述した実施の形態の機能が実現されるだけでなく、そのプログラムコードの指示に基づき、コンピュータ上で稼動しているＯＳ（オペレーティングシステム）などが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１５９】
さらに、外部の記憶媒体１６１，２６１やメモリ１２０，２２０から読み出されたプログラムコードが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わる他の記憶媒体に書き込まれた後、そのプログラムコードの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行い、その処理によって前述した実施の形態の機能が実現される場合も含まれることは言うまでもない。
【０１６０】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１６１】
１  ネットワークシステム、１００  コントローラ、１１０  ＣＰＵ、１２０  メモリ、１３０  タッチパネル、１３１  ディスプレイ、１３２  タブレット、１４０  スピーカ、１５０  ボタン、１６０  メモリインターフェイス、１６１  記憶媒体、１７０  通信インターフェイス、１８０  時計、２００  ラジコンカー、２１０  ＣＰＵ、２２０  メモリ、２３０  移動機構、２４０  ＧＰＳ、２５０  電子コンパス、２６０  メモリインターフェイス、２６１  記憶媒体、２７０  通信インターフェイス、２８０  時計、２９０  カメラ、２９１  中長距離ステレオカメラ、２９１Ｌ  左カメラ、２９１Ｒ  右カメラ、２９２  近距離ステレオカメラ、２９２Ｌ  左カメラ、２９２Ｒ  右カメラ、２９３  ハーフミラー、３０１Ｘ  コースの中心を示す白線、３０２Ｘ  コースの端を示す白線、３０３Ｘ  コースパイロン。
【図１】
2012151800.tif 000003
【図２】
2012151800.tif 000004
【図３】
2012151800.tif 000005
【図４】
2012151800.tif 000006
【図５】
2012151800.tif 000007
【図６】
2012151800.tif 000008
【図７】
2012151800.tif 000009
【図８】
2012151800.tif 000010
【図９】
2012151800.tif 000011
【図１０】
2012151800.tif 000012
【図１１】
2012151800.tif 000013
【図１３】
2012151800.tif 000014
【図１４】
2012151800.tif 000015
【図１５】
2012151800.tif 000016
【図１２】
2012151800.tif 000017