以下、本発明について実施形態をもって説明するが、本発明は、後述する実施形態に限定されるものではない。
(第1の実施形態)
なお、以下に説明する第1の実施形態では、画像処理装置および映像投影システムの一例として、ステレオ画像方式の測距センサを備えたプロジェクタ100を用いて説明する。
[全体構成]
図1は、第1の実施形態によるプロジェクタ100の概略構成を示す。プロジェクタ100は、本プロジェクタ100の全体制御を行う制御部102と、ステレオ画像方式の測距センサを構成する撮像部104と、ステレオ画像方式による視差演算を行う測距部106と、フォーカス調整部120と、投影部122とを備える。
撮像部104は、複数のカメラを含み構成される。カメラは、それぞれ、CMOS(Complementary Metal Oxide Semiconductor)センサなどの固体撮像素子と、該固体撮像素子上に結像するためレンズなどの結像光学系とを含む。説明する実施形態では、撮像部104は、水平方向または垂直方向に平行等位に並べられた2つのカメラを含む。複数の固体撮像素子間の距離は、基線長を規定し、測距精度を向上するために高度に位置制御されている。
投影部122は、液晶方式、CRT(Cathode Ray Tube)方式、DLP(Digital Light Processing)方式、LCOS(Liquid Crystal On Silicon)方式などの投影装置を含み構成される。投影部122は、本プロジェクタ100に入力された、またはプロジェクタ100がファイルから生成したコンテンツ画像を投影装置から投影対象物へ向けて投影する。フォーカス調整部120は、投影装置から投影対象物までの離間距離の測定結果に基づき、投影装置のフォーカスを調整する。
本実施形態によるプロジェクタ100は、上記測距部106による測距結果に基づき、撮像部104のカメラによって撮像されたシーン中の投影対象物の位置および形状を認識し、その投影対象物の領域へコンテンツ画像を補正して投影する機能を備える。従来技術では、認識可能な投影対象物が、スクリーンといった、画角内に写っている領域中における比較的広い平面に限定されており、人の体、人の手、中央部がくぼんだ壁などの物体を投影対象として認識することが難しかった。これに対し、本実施形態によるプロジェクタ100は、利用者が指定できる任意形状の物体を投影対象物として投影光を制御する、投影光制御機能を実現する。
本実施形態によるプロジェクタ100は、上記投影光制御機能を実現するべく、さらに、上述した任意形状の投影対象物を指定するための対象形状指定部108と、ある時点で撮像されたシーン(場面)から、指定された投影対象物に対応した3次元形状(以下、対象3次元形状という。)を探索する対象形状探索部110とを含む。さらに、プロジェクタ100は、探索された対象3次元形状の近似平面を推定する平面推定部112と、近似平面の変化を判定する位置変化判定部114と、推定された近似平面から補正データを計算する補正計算部116と、計算された補正データを用いてコンテンツ画像に対し画像補正を施す投影画像補正部118とを含む。
以下、図2を参照しながら、上記投影光制御機能に関し、上記各機能部のはたらきについて説明する。図2は、第1の実施形態によるプロジェクタ100における機能ブロックおよびデータフローを説明する図である。
撮像部104は、制御部102からの撮像指令に応答して、投影部122によって投影された投影画像の少なくとも一部が写り込んだシーンを2つのカメラで略同時に撮像し、ステレオ画像の画像データを出力する。ステレオ画像方式においては、一方のカメラを基準カメラと参照し、他方を参照カメラと参照することがあるが、説明する実施形態では、2つのカメラは、水平方向に並べられており、右カメラを基準カメラとし、左カメラを参照カメラとしている。左右のカメラの位置関係は、平行等位であり、実3次元空間における3次元座標を(X,Y,Z)で表すと、基準カメラおよび参照カメラのX軸が同一となり、Y軸が平行となり、(3)Z軸も平行となる。また、説明する実施形態では、左右カメラのセンサ光軸が平行となる平行撮影を行うものとする。
測距部106は、撮像部104からのステレオ画像データの入力を受けて、ステレオ画像内において観測されたステレオ対応点の視差量を測定する。測距部106は、測定された視差量から、三角測量の原理に基づき、画像内の各対応点の距離を計算し、撮像されたシーンを構成する3次元点群を求め、測距データとして出力する。説明する実施形態では、詳細を後述する処理により、各ステレオ画像から特徴点を抽出し、ステレオ画像間で対応付けがなされた特徴点をステレオ対応点として用いる。また、好適な実施形態では、各ステレオ画像の特徴点と、投影しているコンテンツ画像から抽出された特徴点との対応付けを介在させることによって、ステレオ画像間の特徴点の対応付けを高精度かつ高速に行うことができる。ステレオ対応点各々の視差量から実3次元空間におけるステレオ対応点の3次元座標が復元され、これら複数のステレオ対応点に対応した複数の3次元座標点が、シーンの3次元点群を構成する。
対象形状指定部108は、撮像部104により撮像されたシーンにおいて、ユーザによる所望の投影対象物の指定を受け付ける。なお、本実施形態において、投影対象物は、スクリーン、平坦な壁面、ホワイトボードなどの平面に限定されず、人の体、人の手、車、くぼみのある壁面といった任意の3次元形状を有する物体を指定することが可能とされている。対象形状指定部108は、特定の実施形態では、撮像部104からの画像データの入力を受けて、ステレオ画像の一方を表示装置上に表示する。そして、マウスやタッチパネルなどの入力装置に対するユーザからの操作に応答して、投影対象物(掌や、くぼんだ奥の壁面など)に対応した画像領域の指定が行われる。対象形状指定部108は、ユーザからの画像領域の指定を受けると、測距部106から入力される測距データを用いて、指定された画像領域内に含まれる3次元点群を抽出し、対象3次元形状を構成する3次元点群(以下、対象3次元点群という。)として記録し、対象形状データを出力する。
なお、上記表示装置および入力装置は、特に限定されず、それぞれ、プロジェクタ100が備えていてもよく、プロジェクタ100に接続されたものを利用してもよく、プロジェクタ100と通信するパーソナル・コンピュータやタブレット端末などが備えるものを利用してもよい。
対象形状探索部110は、ある時点のシーンに基づいて指定された投影対象物に関し、異なる時点のシーンから、指定の投影対象物の3次元形状にマッチする対象3次元点群を探索し、対象形状3次元データとして出力する。上述したように、ユーザ指定された投影対象物は、ある時点のシーンにおける測距データを用いて、その3次元形状が特定される。一方、投影対象物は、時間の経過とともにその位置を変化させる可能性がある。対象形状探索部110は、このような投影対象物の位置の経時変化に対応する手段である。
平面推定部112は、投影対象物の指定がされ、または探索された3次元形状を構成する対象3次元点群の3次元座標から、実3次元空間における投影対象物を近似する近似面を推定し、近似面データを出力する。近似面は、説明する実施形態では、近似平面とするが、他の実施形態では、円柱のような湾曲したスクリーンに対応するべく近似曲面としてもよい。平面推定部112は、さらに、対象3次元点群の重心を計算し、重心データをフォーカス調整部120に出力する。フォーカス調整部120は、平面推定部112から重心データの入力を受けて、投影装置から近似平面の重心までの離間距離に応じてフォーカスを調整する。
補正計算部116は、測距部106からの測距データ、対象形状探索部110からの対象形状3次元データ、および平面推定部112からの近似平面データの入力を受けて、投影光を制御するための制御データを計算し、投影画像補正部118に出力する。投影装置からコンテンツ画像を投影する場合、投影装置の光軸に垂直な平面を基準とした投影対象物の投影面の水平方向および垂直方向のあおり角によって、投影画像に台形歪みが生じ得る。説明する実施形態において、投影光制御としては、このような台形歪みを相殺する台形歪み補正(投影画像補正)を一例に説明する。したがって、本実施形態における補正計算部116は、近似平面上の投影対象物に対応する範囲に収まるようにコンテンツ画像に対し施す、幾何補正処理を規定する補正データを計算する。
なお、説明する実施形態では、台形歪み補正を一例として説明するが、種々の投影光制御に対して適用することができる。他の実施形態では、円柱のような湾曲したスクリーンに対応して、推定された近似曲面にコンテンツ画像を投影した場合に観察者によって自然に見えるようにするための画像補正としてもよい。
投影画像補正部118は、補正計算部116から入力された補正データに基づき、当該入力または生成されたコンテンツ画像に対し補正処理を施す。投影部122は、投影画像補正部118により補正された投影画像を投影装置から投影する。位置変化判定部114は、従前のシーンに基づく近似平面と、現在のシーンに基づく近似平面とを比較して、近似平面の経時変化を検知し、上記補正計算部116による補正計算の更新の要否を判定する。例えば一定以上の位置関係の変化があったことが検知されると、補正計算部116に対し、上記補正データを再計算させることができる。
以下、図3を参照して、第1の実施形態によるプロジェクタ100が実行する投影画像補正制御の全体的な流れについて説明する。図3は、第1の実施形態によるプロジェクタ100が実行する、投影画像補正制御を示すフローチャートである。図3に示す制御は、例えばプロジェクタ100の起動とともにステップS100から開始される。ステップS101では、プロジェクタ100は、起動後のフォーカス調整を行い、ステップS102では、校正開始の信号に応答して校正処理を開始させる。
ステップS103では、プロジェクタ100は、投影部122によりコンテンツ画像を投影し、ステップS104では、撮像部104により、投影されている投影画像の少なくとも一部を含むシーンを、基準カメラおよび参照カメラで略同時に撮像し、ステレオ画像を得る。ステップS105では、プロジェクタ100は、測距部106により、図4および図5を参照して後述する測距処理を実行し、ステレオ画像内におけるステレオ対応点の距離を計算し、撮像されたシーンを構成する3次元点群を計算する。ステップS106では、プロジェクタ100は、初回校正時のフローであるか、2回目以降の校正時のフローであるかに応じて制御を分岐させる。
ステップS106で、初回校正である場合(YES)は、ステップS107へ制御が分岐される。ステップS107では、プロジェクタ100は、対象形状指定部108により、図6〜図8を参照して後述する対象形状指定処理を実行し、ユーザからの投影対象物の指定を受け、対象3次元形状を取得する。初回校正時は、対象形状指定部108が、本実施形態における対象形状特定手段としてはたらく。ステップS108では、プロジェクタ100は、平面推定部112により、図11および図13を参照して後述する平面推定処理を実行し、対象3次元形状の3次元座標点から投影対象物の近似平面および重心を推定し、後述する位置変化の比較のため記録する。ステップS109では、プロジェクタ100は、フォーカス調整部120により、平面推定処理によって求められた重心にフォーカスを調整する。
ステップS110では、プロジェクタ100は、推定された近似平面に基づき、図12〜図17を参照して後述する補正計算処理を実行し、コンテンツ画像に幾何補正をかけるための補正データを計算する。ステップS111では、プロジェクタ100は、投影画像補正部118により、計算された補正データに基づいて、投影すべきコンテンツ画像に対し台形歪み補正を施す。プロジェクタ100は、ステップS112で、所定のインターバル時間が経過するのを待機し、ステップS113で、本プロジェクタ100の使用が終了されたか否かを判定する。ステップS113で、未だ使用中であると判定された場合(NO)は、ステップS103へループされる。これによって、投影部122により投影された投影画像は、投影対象物の大きさ、位置およびあおり角度に応じて適切に補正されたものとなる。一方、ステップS113で、使用が終了されたと判定された場合(YES)は、プロジェクタ100は、ステップS117へ分岐させて、本制御を終了する。
再びステップS106を参照すると、ステップS106で、2回目以降の校正時のフローであり、初回校正ではない場合(NO)は、ステップS114へ制御が分岐される。ステップS114では、プロジェクタ100は、対象形状探索部110により、図9および10を参照して後述する対象形状探索処理を実行し、2回目以降の校正時点の測距データに基づき、初回校正時において指定された対象3次元形状にマッチする対象3次元点群を探索する。2回目以降の校正時では、対象形状探索部110が、本実施形態における対象形状特定手段としてはたらく。ステップS115では、プロジェクタ100は、平面推定部112により、上記平面推定処理を実行して、投影対象物の近似平面を再度推定する。
ステップS116では、プロジェクタ100は、位置変化判定部114により、従前の近似平面と、新たに推定された近似平面とを比較し、事前設定された閾値以上の変化があるか否かを判定する。変化は、近似平面の重心の移動量および水平方向および垂直方向のあおり角の変化量として検出される。上記閾値は、例えば、本プロジェクタ100のベンダ側で、数値計算や実験結果等に基づいて設定した値としてもよいし、また、ユーザに対し所望の閾値を選択させてもよい。ステップS116で、位置変化が閾値未満であると判定された場合(YES)は、ステップS112へ直接分岐させる。この場合は、補正データが再計算されず、ステップS103で、前回計算された補正データに基づき、コンテンツ画像が投影されることになる。
一方、有意な位置変化があり、変化が閾値を超えると判定された場合(NO)は、ステップS109へ制御が分岐される。このとき、再度計算された近似平面は、次回以降の比較のため記録することができる。この場合、ステップS109では、フォーカス調整が行われ、ステップS110では、補正計算処理が再度行われ、ステップS111では、更新された補正データに基づき投影画像が補正されることになる。これにより、投影対象物の位置変化に追随して適切に補正することが可能となる。
以下、図4〜図18を参照しながら、上述したステップS105の測距処理、ステップS107の対象形状指定処理、ステップS114の対象形状探索処理、ステップS108,S115の平面推定処理、およびステップS110補正計算処理のそれぞれについて詳細を説明する。
[測距処理]
まず、図4および図5を参照しながら、本実施形態における測距処理の詳細を説明する。図4は、第1の実施形態において測距部106が実行する、測距処理を示すフローチャートである。図5は、本実施形態によるステレオ画像間のステレオ対応点の探索処理を説明する図である。
上述したように、本実施形態において測距部106は、各ステレオ画像から特徴点を抽出し、ステレオ画像間で対応付けがなされた特徴点をステレオ対応点として用いる。ステレオ画像間のステレオ対応点の探索手法は種々あるが、好適な実施形態では、投影しているコンテンツ画像から抽出された特徴点と、このコンテンツ画像の少なくとも一部を写して撮像された各ステレオ画像の特徴点との対応付けを経由させることによって行うことができる。図4は、このようなコンテンツ画像および左右ステレオ画像の特徴点の対応付けを行って、ステレオ対応点を求め、その3次元座標を計算する処理を示している。
図4に示す処理は、図3におけるステップS105の呼び出しに応答して、ステップS200から開始される。測距部106は、ステップS201で、撮像部104からステレオ画像データを取得し、ステップS202で、投影するコンテンツ画像データを取得する。以下、ステレオ画像のうち、基準カメラ(右カメラ)で撮像された右ステレオ画像をIRで参照し、参照カメラ(左カメラ)で撮像された左ステレオ画像をILで参照し、コンテンツ画像をICで参照する。
ステップS203では、測距部106は、コンテンツ画像ICおよびステレオ画像IR,IL各々から特徴点を抽出する。特徴点の抽出は、好適な実施形態では、SIFT(Scale-Invariant Feature Transform)と呼ばれるアルゴリズムを適用して行うことができる。SIFTは、画像から特徴点を検出し、検出した特徴点に対して、画像の回転、スケール変化、照明変化などに不変な特徴量を記述するアルゴリズムである。アルゴリズムについて概略を説明すると、アルゴリズムでは、まず、DoG(Difference of Gaussian)処理により、スケールスペースで極値探索を行い、特徴点の候補の位置およびスケールを決定する。検出された特徴点の候補点のうち、コントラストが小さい点やエッジ上の点などノイズ等の影響を受けやすく特徴点として向かない点を除去する。そして、回転に不変な特徴を記述するべく特徴点のオリエンテーションを求め、この求められたオリエンテーションに基づき特徴量を記述する。
ここで、コンテンツ画像ICから抽出されたNC個の特徴点群をVC={vi C|i=1,…,NC}で表し、右ステレオ画像IRから抽出されたNR個の特徴点群をVR={vi R|i=1,…,NR}で表し、左ステレオ画像ILから抽出されたNL個の特徴点群をVL={vi L|i=1,…NL}で表す。各特徴点に対しては、各画像内における位置座標と、所定数の特徴量の要素からなる特徴ベクトルが求められる。標準的なSIFTアルゴリズムでは、特徴量の記述において、特徴点を中心に、決定されたスケールを半径とした円領域を定義し、この周辺領域を4×4ブロックに分割し、ブロックごとに8方向の勾配ヒストグラムが計算される。このため、特徴量ベクトルは、128次元のベクトルとなる。
ステップS204〜ステップS213のループでは、各ステレオ画像IL,IR毎に処理が行われる。ステップS205〜ステップS212のループでは、所定のステレオ画像IRまたはILについて、コンテンツ画像ICの各特徴点vi C(i=1,…,NC)と対応関係を形成する特徴点vj* Rまたはvj* Lが求められる。以下、右ステレオ画像に対する処理を代表して説明する。ステップS206〜ステップS208のループにおいて、測距部106は、ステップS207で、所定のステレオ画像IRから抽出された各特徴点vj R(j=1,…,NR)について、コンテンツ画像ICのi番目の特徴点vi Cとの特徴点間距離d(vi C,vj R)を計算する。ここで、vi,k C、vj,k Rを、それぞれ特徴点vi C、vj Rの特徴量ベクトルにおけるk番目の要素とすると、特徴点間距離dは、下記式(1)により算出することができる。
ステップS209では、測距部106は、ステップS206〜ステップS208で計算されたすべての特徴点間距離d(vi C,vj R)(j=1,…,NR)のうちから、下記式(2)により、最小の距離を有するステレオ画像IRの特徴点vj* Rとの特徴点間距離d(vi C,vj* R)を計算する。「j*」は、下記式(2)で特徴点間距離を最小化する特徴点を識別する。
ステップS210では、測距部106は、計算された特徴点間距離d(vi C,vj* R)が、所定の閾値(T)未満であるか否かを判定する。ステップS210で、所定の閾値未満であると判定された場合(YES)は、ステップS211で、最小かつ閾値T未満の距離を有するステレオ画像IRの特徴点vj* Rを、対応点ペア<vi C,vi R>として登録する。
コンテンツ画像ICの各特徴点と、右および左のステレオ画像IR,ILそれぞれの各特徴点との対応付けが両方完了すると、ポイントAを介して、ステップS214へ処理が進められる。図5は、コンテンツ画像ICの特徴点を経由した、右左ステレオ画像IR,ILの特徴点の対応付けを説明している。図5に示すように、コンテンツ画像の特徴点vi Cに対し対応ペアとして登録された特徴点vj* Rおよび特徴点vj* Lの両方が存在するとき、この特徴点vj* Rおよび特徴点vj* Lは、ステレオ対応点として検出される。ステップS214〜ステップS218のループでは、コンテンツ画像のi番目の特徴点vi Cについて、左右のステレオ画像の両方の対応点ペアの取得を試みて(ステップS215)、両方が見出されるか否かを判定し(ステップS216)、両方の対応点ペアが見出された場合(ステップS216でYES)に、k番目のステレオ対応点<vk R,vk L,>として登録する。
続いてステップS219〜ステップS221のループでは、測距部106は、対応付けがとれたNS個のステレオ対応点<vk R,vk L,>に対し、視差に基づき実3次元空間における座標点pk Sを算出する。
ここで、基準カメラのステレオ画像上にあるステレオ対応点の座標をmR=(xR,yR)とし、参照カメラのステレオ画像上にあるステレオ対応点の座標をmL=(xL,yL)とし、このステレオ対応点に対応する実3次元空間中の3次元点をp=(X,Y,Z)で表す。この場合、3次元点pは、基準カメラを基準として、下記式(3)〜(5)で計算することができる。なお、上述したようにカメラは、平行等位に配置されるため、yR=yLが前提となる。下記式中、xL−xRは、水平方向の視差を表し、Bは、左右カメラ間の距離に相当する基線長を表し、fは、左右のカメラの同一の焦点距離を表す。
ステップS222では、測距部106は、NS個のステレオ対応点<vk R,vk L>について、その画像上の特徴点の座標mk R,mk Lおよび対応する3次元点pk S(k=1,…,NS)をセットで測距データとして記録し、ステップS223で、本処理を終了し、図3に示した元の処理に戻す。
なお、上述では、好適な実施形態として、コンテンツ画像の特徴点およびステレオ画像各々の特徴点との対応付けに基づいて、ステレオ画像間におけるステレオ対応点を探索し、対応点各々の画像間の視差に基づき、その3次元座標を計算するものとして説明した。この好適な実施形態は、演算の高速性および精度の点で優れている。しかしながら、ステレオ対応点の探索方法は、他の実施形態では、少なくとも一部の対応点について、コンテンツ画像の特徴点を経由させず、ステレオ画像の特徴点間の特徴点間距離に基づいて、直接対応付けをおこなってもよい。また、SIFTによる特徴ベクトルを用いずに、ステレオ画像を構成する画素ブロックを直接テンプレート・マッチングなどによって比較して対応付けてステレオ対応点を探索してもよい。
さらに、説明する実施形態では、測距方式として、基線長が定義された2つの異なる視点からの撮像画像を用いる、いわゆるステレオ画像方式を採用している。しかしながら、他の実施形態では、3以上の異なる視点からの撮像画像を用いてもよく、ステレオ画像方式における1つの撮像画像を、プロジェクタ等の投影装置からの投影画像に置き換えたアクティブステレオ方式としてもよい。
[対象形状指定処理]
以下、図6〜図8を参照しながら、本実施形態における対象形状指定処理の詳細について説明する。図6は、第1の実施形態による対象形状指定部108が実行する、対象形状指定処理を示すフローチャートである。図7は、測距部106によって計算されたシーンの3次元点群を模式的に表す図である。図8は、第1の実施形態において、シーンの3次元点群から、所望の投影対象の3次元形状を指定する方法を説明する図である。
図6に示す処理は、図3におけるステップS107で呼び出されて、ステップS300から開始される。ステップS301では、対象形状指定部108は、測距部106が出力する測距データを読み出し、測距データから3次元点群PS{pk S|k=1,…,NS}および、たとえばその右ステレオ画像上の特徴点の座標mk Rを取得する。
図7(A)および(B)は、初回校正時の投影画像を撮像したシーンに基づき復元された3次元点群PSを図示し、図7(A)は、その正面図を示し、図7(B)は、その上面図を示す。図7においては、シーンの3次元点群PSは、その奥行き(Z座標)に応じて「○」、「△」および「×」の記号で便宜上表現されている。「○」は、中間に位置するスクリーンに対応した点群154であり、「×」は、スクリーンの奥の背景に対応した点群150,152であり、「△」は、スクリーンの手前の登壇者に対応した点群156である。
ステップS302では、対象形状指定部108は、ディスプレイなどの表示装置に、投影対象の形状を選択するためのユーザ・インタフェース(UI)を表示させる。UIは、説明する実施形態では、図8(B)に示すようなカメラ画像(例えば右カメラで撮像された画像)を表示し、この画像に対する画像領域162の指定を受け付けるよう構成される。画像領域の指定方法としては、図8(B)に示すようにマウス操作によって選択矩形を画定したり、タッチパネル操作により所望の画像領域を塗りつぶしたりすることによって行われる。また、上記UIにおいては、ユーザが特徴点を識別しやすいように、特徴点を可視化し、カメラ画像に重ねて表示してもよい。
また、投影対象物の指定方法としては、上述した画像領域の指定に限定されない。他の実施形態では、画像領域162の指定に代えて、図8(C)で示すように、表示されたクラスタ172A〜172Dの中から投影対象物の3次元形状に構成するクラスタ172Aの指定を受け付けることとしてもよい。上記クラスタは、シーンの3次元点群PSを座標に基づいてクラスタリングし、構成される。
ステップS303では、ユーザによる指定を受領したか否かを判定し、指定を受け付けるまで、ステップS303をループさせる。ステップS304では、対象領域指定部108は、UI上で選択された画像領域に含まれる3次元点群PO{pk O|k=1,…,NO}を算出する。上述したように、3次元点pk Sに対応して右カメラ画像上の座標点mk Rが取得されている。したがって、図8(A)に示すように、シーン全体の3次元点群PSのうちの、指定画像領域内に座標点mk Rが包含される一部の3次元点群pk Oが特定される。ステップS305では、対象形状指定部108は、取得された3次元点群PO{pk O|k=1,…,NO}を、対象3次元形状を構成する対象3次元点群として記録し、ステップS306で、本処理を終了し、図3に示した元の処理に戻す。
[対象形状探索処理]
以下、図9および図10を参照しながら、本実施形態における対象形状探索処理の詳細について説明する。図9は、第1の実施形態による対象形状探索部110が実行する、対象形状探索処理を示すフローチャートである。図10は、投影対象物の対象3次元形状に対応した対象3次元点群を、シーン中の3次元点群の中から探索する処理を説明する図である。
図10に示すように、対象形状探索部110は、2回目以降の校正時のシーン中において、初回校正時に指定された対象3次元形状にマッチする対象3次元点群の探索を行う。対象3次元点群の探索は、好適な実施形態では、指定された対象3次元形状をテンプレートとした、最小二乗マッチングにより行うことができる。最小二乗マッチングの数値解法としては、ガウス−ニュートン法、最急降下法、レーベンバーグ−マーカート法など挙げることができる。なお、以下説明する実施形態では、非線形最小二乗問題の有効な解法であるレーベンバーグ−マーカート法を一例に説明する。
図9に示す処理は、図3におけるステップS114で呼び出されて、ステップS400から開始される。対象形状探索部110は、ステップS401で、測距部106が出力する測距データを取得し、ステップS402で、測距データからシーンの3次元点群PS{pk S|k=1,…,NS}を取得し、ステップS403で、対象形状の3次元点群PO{pk O|k=1,…,NO}を取得する。
ステップS404では、対象形状探索部110は、取得したシーンの3次元点群PSから、シーンの3次元形状を近似するシーン近似曲面を推定するとともに、取得した投影対象の対象3次元点群POから、該対象形状を近似する対象形状近似曲面を推定する。シーン近似曲面および対象形状近似曲面の推定方法は、特に限定されるものではないが、3次元点群PSおよび3次元点群POの各座標点をそれぞれ標本点とした、最小二乗法による曲面フィッティングなどにより計算することができる。なお、近似曲面の表現方法任意であり、多項式曲面、ペジエ曲面、スプライン曲面など任意の表現形式を採用することができる。ここでは、シーン近似曲面をZ=I(X,Y)で表し、対象形状近似曲面をZ=T(X,Y)で表す。測距処理による3次元座標には誤差が存在するため、このように近似曲面を推定することにより、良好にマッチングを行うことが可能となる。
ステップS405〜ステップS408では、レーベンバーグ−マーカート法に基づく反復計算により、対象形状近似曲面Z=T(X,Y)をシーン近似曲面Z=I(X,Y)における部分領域と照合し、その誤差が小さくなる方向にパラメータの改良を繰り返し、最終的な解を得る。レーベンバーグ−マーカート法は、下記式(6)により表現することができる。
式中、χ={χ1,…,χn}は、求めるべき未知のパラメータのセットを表し、テンプレートである対象近似曲面を、並進、変形および回転などの幾何変形を含めてシーン近似曲面の部分領域に対応付ける関数fのパラメータである。上記式(6)中、行列J(χ)は、ヤコビ行列であり、下記式(7)で表され、上記関数fの所定のパラメータχに関する勾配を表す行ベクトルから構成される。上記式中e(χ)は、所定のパラメータχにおいて、対象近似曲面T(X,Y)と、シーン近似曲面の対応付けられる部分領域f(I(X,Y),χ)との残差二乗和であり、小さい方がマッチングの程度が高く、すなわち最小化すべき評価関数である。λは、減衰パラメータであり、各反復処理毎に変更され得る。Iは、単位行列である。Δχは、反復処理における、パラメータχの補正量を表す。
ステップS405では、対象形状探索部110は、まず、未知パラメータの初期値χ0を設定する。ステップS406では、対象形状探索部110は、所与のパラメータχt(ここで、tは、反復回数を表し、初回は0である。)において、対象近似曲面をテンプレートとして、シーン近似曲面の部分領域と照合し、その誤差が小さくなるようなパラメータの補正量Δχを算出する。上記レーベンバーグ−マーカート法において、上記式(7)のヤコビ行列J(χ)が計算されると、上記式(6)からパラメータの補正量Δχを求めることができる。補正量Δχは、パラメータ空間において、誤差e(χ)を減少させる改良方向を示す。ステップS407では、未知パラメータχtを、Δχだけ改良し、更新された未知パラメータχt+1を得る。ステップS408では、これまでの反復演算により、所定の収束条件が成立したか否かを判定する。収束条件は、例えば、誤差e(χ)が所定閾値以下となったこと、誤差e(χ)の変化量が所定閾値以下となったこと、またはパラメータ補正量Δχが閾値以下となったことを条件とすることができる。
ステップS408で、収束条件が成立していないと判定された場合(NO)は、ステップS406へループさせて、反復改良処理を繰り返す。ステップS408で、収束条件が成立したと判定された場合(YES)は、ステップS409へ処理を進める。図10に示すように、反復演算によってシーン中の部分領域とのマッチングを行い、最終的に得られたパラメータの解χtから、シーン近似曲面中の対象形状近似曲面に対応する部分領域が特定される。ステップS409では、対象形状探索部110は、得られたパラメータχtに基づき、当該シーン中の3次元点群PSの中から、対象形状に対応する対象3次元点群PS’{pk S’|k=1,…,NS’}を抽出し、ステップS410で、本処理を終了し、図3に示した元の処理に戻す。
なお、上述した実施形態では、テンプレートとする投影対象物の対象3次元形状(対象3次元点群)は、初回校正時に指定されたものを固定的に用いるものとして説明した。しかしながら、他の実施形態では、対象形状探索部110は、ある時点においてマッチングによって特定された対象3次元形状を、その後行われる校正時のテンプレートとして用いることもできる。この実施形態は、テンプレートとなる形状が最新のものに逐次更新されるため、例えば、カーテンなど、位置や形状が連続的に変化する投影対象物に対して良好に追従することが可能となる。
[平面推定処理]
以下、図11および図13を参照しながら、本実施形態における平面推定処理の詳細について説明する。図11は、第1の実施形態による平面推定部112が実行する、平面推定処理を示すフローチャートである。図13は、投影対象物の対象3次元形状を近似する近似平面および近似平面の法線方向に位置する法線カメラの関係を説明する図である。
図11に示す処理は、図3におけるステップS108およびステップS115で呼び出されて、ステップS500から開始される。ステップS501では、平面推定部112は、対象形状探索部110が出力する対象形状3次元データから、当該シーンにおける投影対象物に対応する対象3次元点群PS’{pk S’|k=1,…,NS’}を取得する。ステップS502では、平面推定部112は、取得した対象形状の3次元点群PS’から、回帰平面Z=R(X,Y)を算出する。回帰平面は、下記式(8)により表され、3次元点群PS’の座標値の数値組を用いて最小二乗法により、係数a,b,cを求めることができる。なお、下記式(8)のような近似関数を用いた最小二乗法は、正規方程式による解法が周知であるので、ここでは、詳細な説明は割愛する。
ステップS502で算出された回帰平面をそのまま投影対象の近似平面としてもよいが、説明する実施形態では、ステップS503〜ステップS506により、回帰平面から大きくはずれる3次元点pi S’を回帰平面の計算から除外しながら、回帰平面を改良する。ステップS503では、平面推定部112は、3次元点pk S’の回帰平面からの距離を計算し、最も離れた3次元点pi S’を抽出する。ステップS504では、平面推定部112は、上記距離が閾値以下であるか否かを判定し、閾値を超えている場合(NO)は、その最も離れた3次元点を除外し、ステップS502へループさせ、再度回帰平面を計算する。
一方、ステップS504で、距離が閾値以下であると判定された場合(NO)は、ステップS506へ処理を分岐させる。ステップS506では、平面推定部112は、現在の回帰平面が、投影対象に対応する3次元形状を近似する近似平面であるとして、上記式(8)の係数a,b,c、対象3次元形状の重心Gを記録し、ステップS507で、本処理を終了し、図3に示した元の処理に戻す。図13には、対象3次元形状として抽出された対象3次元点群PS’と近似平面Z=R(X,Y)と、重心Gとの関係が表されている。
[補正計算処理]
以下、図12〜図17を参照しながら、本実施形態における補正計算処理の詳細について説明する。図12は、第1の実施形態による補正計算部116が実行する、補正計算処理を示すフローチャートである。図13は、上述したとおりであり、近似平面の法線方向に位置する仮想的な法線カメラを説明する図である。
図12に示す処理は、図3に示したステップS110で呼び出されて、ステップS600から開始される。ステップS601では、補正計算部116は、対象形状探索部110から出力される対象形状3次元データを読み出し、当該シーン中の投影対象物の対象3次元点群PS’{pk S’|k=1,…,NS’}を取得する。ステップS602では、補正計算部116は、平面推定部112から出力される近似平面データを読み出し、近似平面Z=R(X,Y)の係数a,b,cを取得する。
ステップS603では、補正計算部116は、実3次元空間上の3次元点を画像上の2次元点に変換する透視投影変換行列Bを算出する。透視投影変換行列Bは、実3次元空間上の3次元点を、近似平面に対し法線方向に位置させた仮想的な法線カメラ130から視た法線カメラ画像上の点に変換するものである。法線カメラ130は、図13に示すように、推定された近似平面Z=R(X,Y)における対象3次元点群PS’の重心Gの位置から、その近似平面の法線方向に仮想的に配置されたカメラを意味する。そして、法線カメラ画像とは、この法線カメラの位置から仮想的に撮像した場合の仮想的な画像データである。法線カメラ画像は、色情報が無く、点の幾何変換の過程で使用される。以下、法線カメラ画像をIVと参照する。
透視投影変換行列Bは、下記式(9)で与えられる。下記式中、行列Aは、カメラの光軸座標、焦点距離、レンズの歪みを表す内部パラメータ行列(3×3)である。行列Rは、基準カメラ(右カメラ)104から法線カメラ130までの回転を表す回転行列(3×3)である。ベクトルtは、基準カメラ(右カメラ)104から法線カメラ130までの並進移動ベクトル(3×1)である。
ステップS604では、補正計算部116は、上記算出された透視投影変換行列Bを用いて、シーンにおける対象3次元点群PS’を法線カメラ画像IV上の2次元点群QS’{qk S’|k=1,…,NS’}に変換する。図14は、3次元点群を透視投影変換により法線カメラ画像上の2次元点群に変換する処理を説明する図である。図14に示すように、投影対象物180の3次元形状を構成する対象3次元点群PS’は、法線カメラ画像IV上の2次元点群QS’に投影され、2次元点群QS’は、法線カメラ画像上での投影対象物の形状182を表す。
ステップS605では、補正計算部116は、得られた法線カメラ画像IV上の2次元点群QS’を包み込む凸包多角形184を計算する。図15は、法線カメラ画像上の投影対象物の形状を表す2次元点群から補正矩形を得る処理を説明する図である。この凸包多角形184は、法線カメラ画像IV上でスクリーンとみなされる領域を画定する。ステップS606では、補正計算部116は、得られた凸包多角形184に内包され、コンテンツ画像と同一アスペクト比を有する、最大の補正図形を算出する。補正図形は、説明する実施形態では、補正矩形であり、この補正矩形186は、法線カメラ画像IV上で、コンテンツ画像が投影される領域を画定する。
なお、説明する実施形態では、投影対象物から投影画像がはみ出さないことを優先し、補正図形は、凸包多角形184に内包される補正矩形としている。しかしながら、凸包多角形184から任意の関係を有する補正図形を求めることができる。他の実施形態では、補正計算部116は、包含関係を変更し、凸包多角形184を内包し、コンテンツ画像と同一アスペクト比を有する、最小の補正矩形を算出してもよい。
ステップS607では、補正計算部116は、すべての2次元点群QS’のうちから、得られた補正矩形(投影対象物186)内に含まれる2次元点群QS’’{qk S’’|k=1,…,NS’’}を選択する。図16は、法線カメラ画像IV上の2次元点群と、投影するプロジェクタ画像IP上の特徴点群との対応関係を説明する図である。セクション[測距処理]で説明した処理と同様に、プロジェクタ画像から特徴点を抽出することができる。そして、上記2次元点qk S’’(ステレオ対応点に対応付けることができる。)に関連付けられる特徴量ベクトルと、プロジェクタ画像から抽出された特徴点の特徴点ベクトルとを用いて、図16に示すような対応関係を求めることができる。ステップS608では、補正計算部116は、プロジェクタ画像から、2次元点群qk S’’{k=1,…,NS’’}に対応するプロジェクタ画像上の特徴点群qk P(k=1,…,NS’’)を取得する。
ステップS609では、補正計算部116は、補正矩形内に含まれる2次元点群QS’’{qk S’’|k=1,…,NS’’}およびプロジェクタ画像上の対応する特徴点群QP{qk P|k=1,…,NS’’}のペアのうちの、4以上の対応点ペアを用いて、法線カメラ画像上の点からプロジェクタ画像上の点へと変換する射影変換行列HVPを計算する。射影変換行列HVPは、法線カメラ画像上の座標をmV=(xV,yV)、プロジェクタ画像上の座標をmP=(xP,yP)とすると、下記式(10)を用いて表される。なお、下記式中h1〜h8は、未知パラメータである。
そして、スケール係数で割ることにより、下記式(11)が得られ、上記式(10)中の未知パラメータh1〜h8が求められれば、法線カメラ画像上の任意の座標点(xV,yV)について、プロジェクタ画像上の対応する座標点(xP,yP)が求められることになる。
法線カメラ画像IVおよびプロジェクタ画像IPにおける対応点ペア1つにつき、最小二乗法における1つの拘束式が得られるので、4以上の対応点ペアがあれば、最小二乗法を適用することにより、上記8つの未知パラメータh1〜h8が得られる。
図17は、射影変換行列HVPおよび射影変換行列HPPによる幾何変換を説明する図である。ステップS610では、補正計算部116は、得られた射影変換行列HVPを用いて、上記得られた補正矩形186の四隅の座標点を変換することにより、プロジェクタ画像上の該補正矩形186の四隅に対応する補正台形188の四隅を計算する。ステップS611では、補正計算部116は、さらに、プロジェクタ画像IP上の補正台形188の四隅と、コンテンツ画像ICの四隅との4点を用いて、上述した処理と同様に最小二乗法を適用して、コンテンツ画像上の点からプロジェクタ画像上の点へと変換する射影変換行列HPPを計算する。射影変換行列HPPは、平均的な台形歪みを相殺し、コンテンツ画像を投影画像上に変換された補正図形内に収まるように幾何変換を規定する補正データとなる。
[投影補正処理]
図18は、(A)射影変換行列HPPによるコンテンツ画像の台形補正処理と、(B)補正された実際に投影される投影画像を説明する図である。投影画像補正部118は、補正計算部116から入力された補正データ(射影変換行列HPP)に基づき、入力または生成されたコンテンツ画像に対し幾何変換を適用して台形歪み補正処理を施す。これにより、投影装置から実際に投影させるプロジェクタ画像IP’が生成される。射影変換行列HPPにより補正されたプロジェクタ画像IP’は、ユーザが指定した任意形状の投影対象物の形状180に収まるように投影され、適切なコンテンツ投影像190が得られるようになる。
[第1の実施形態の作用効果]
以上説明した第1の実施形態によれば、利用者が指定した任意形状の投影対象物に対して、投影対象物に合わせた投影画像補正制御を行うことが可能となる。また、上記制御は、所定時間毎に繰り返し行われ、投影対象物の位置関係の変化が認識されて補正データが再計算されることになる。したがって、プロジェクタ100を利用中、プロジェクタ100と投影対象物の位置関係に変化が発生した場合でも、プロジェクタ100の利用を中断することなく、略リアルタイムでその位置変化を検出し、任意形状の投影対象物を認識しつづけ、その物体に補正した投影光を投影しつづけることが可能となる。また、利用者がプレゼン等で使用しているコンテンツ画像を用いて、ステレオ対応点の抽出および3次元座標の計測が可能であるので、利用中に再度補正が必要となった場合でも、プロジェクタ100の利用が妨げられない。
図19および図20は、第1の実施形態によるプロジェクタ100の好適な利用態様を例示する。図19は、投影対象物180の回転に追随して投影画像補正をかける利用態様を例示する。図19(A)に示すように、ある時点において、投影画像190OLDは、ユーザが指定した投影対象物180が画定する投影面内に収まるよう投影画像補正がかけられている。ところが、図19(B)に示すように投影対象物が回転すると、投影画像の一部190a,190bが投影対象物からはみ出てしまうことになる。
このとき、そのはみ出た部分の特徴点は、投影対象物の奥行きから大きくはなれてしまう。プロジェクタ100は、投影対象物の対象3次元形状の位置および形状の変化を検知し、補正データの再計算を行う。これにより、図19(C)に示すように、指定の投影対象物の回転により補正矩形が小さく再計算され、新しく計算された補正データにより、傾いた投影対象物に投影画像190NEWが収まるように補正がかけられる。図19に示すように、上記構成によれば、投影対象物の位置変化を略リアルタイムで検出し、任意形状の投影対象物を認識しつづけ、その物体に対し適切に補正した投影光を投影することができる。
図20は、くぼんだ形状を有する壁面を投影対象物として使用する利用態様を例示する図である。従来技術においては、撮像されたシーン中の広い平面を投影対象物と認識してしまうため、図20に示すような特殊な形状の壁面に投影すると、壁面における手前の部分が投影対象物として認識されてしまう。
これに対して、上記第1の実施形態によるプロジェクタ100では、UIにおいて、くぼんだ奥の壁面に対応する画像領域162を、投影対象物として指定することができる。奥の壁面が投影対象物として指定されると、プロジェクタ100は、くぼんだ奥の壁面部分に投影画像190NEWが収まるように補正データを計算する。したがって、上記第1の実施形態によるプロジェクタ100は、人や手などの複雑な形状や、中央部が凹んだ壁などの任意形状の物体に対して好適に適用することができるといえる。
以下、上述した第1の実施形態の変形例の実施形態について説明する。
(第2の実施形態)
上記第1の実施形態では、ユーザがUI画面上を用いて、カメラ画像上の画像領域またはクラスタ指定を行うことによって、投影対象とする対象3次元形状が指定されていた。しかしながら、投影対象物の指定方法は、上述した実施形態に限定されるものではない。第2の実施形態では、テンプレート画像の入力によって、投影対象物の指定を行うことができる。なお、第2の実施形態によるプロジェクタ100の構成は、対象形状指定部108の構成を除き、第1の実施形態の構成と同一であるため、以下、相違点を説明する。
第2の実施形態では、対象形状指定部108は、図21に示すように、入力された画像をテンプレート画像ITとして、例えば右カメラ画像IR上の部分画像とのテンプレート・マッチングを行うことにより、投影対象物に対応する画像領域を特定する。画像領域が特定されると、第1の実施形態と同様に、3次点群PSのうちの、入力テンプレート画像ITにマッチした画像領域に含まれる3次元点群が、投影対象物の3次元形状を構成する対象3次元点群として抽出される。
上記第2の実施形態によれば、ユーザがUI上で投影対象物に対応した画像領域を指定しなくても、投影対象物の画像を入力するだけで、簡便に投影対象物を指定することが可能となる。例えば、人を投影対象としたい場合、別途撮像しておいた同一人物の画像を入力することによって、プロジェクタ100にその人を投影対象として認識させることが可能となる。また、種々の投影対象物を予め登録しておくことにより、所望の投影対象物を選択するだけで、投影対象を指定することが可能となる。また、テンプレート画像の入力方法としては、ファイルとしてプロジェクタ100に与えてもよいし、プロジェクタ100が備える撮像部104を用いて、テンプレート撮像モードを設けて、撮像してもよい。
(第3の実施形態)
上記第1の実施形態では、コンテンツ画像に対し台形歪み補正をかける投影画像補正機能を一例として説明した。しかしながら、投影光制御は、コンテンツ画像に対する幾何補正機能に限定されるものではない。第3の実施形態では、投影対象物の形状に合わせて投影光を投影するよう制御する機能を備える。なお、第3の実施形態によるプロジェクタ100の構成は、補正計算部116および投影画像補正部118を除き、第1の実施形態の構成と同一であるため、以下、相違点を説明する。
第1の実施形態では、補正計算処理において、凸包図形に内包される補正矩形を投影面とし、この投影面全体にコンテンツ画像を投影するものとした。第3の実施形態による補正計算部116は、図22(A)に示すように、例えば登壇者に対応する3次元形状の凸包図形184を計算し、凸包図形184を包含する任意の大きさの補正矩形を計算する。そして、補正計算部116は、法線カメラ画像上の補正矩形にコンテンツ画像の四隅を変換する射影変換行列HPPを計算し、コンテンツ画像を投影画像上に変換された補正矩形内に収まるように幾何変換を規定する補正データを得る。投影画像補正部118は、図22に示すように、法線カメラ画像上の凸包図形に対応する領域192を演算し、例えば白色プレーン画像に対し、演算された領域192以外の部分をマスクして、図22(B)に示すようなコンテンツ画像を生成する。すなわち、凸包図形の外側に対応する領域に光が投影されないようにマスク処理が施された投影画像が生成される。
図22(B)に示すようなマスク画像に対し射影変換行列HPPをかけることにより、ユーザが指定した登壇者の形状に収まるように投影光が投影される。第3の実施形態によれば、指定した投影対象物に投影光を追従させて、投影対象物に追従するスポットライト194として利用することができる。
(第4の実施形態)
上記第1の実施形態では、画像処理装置および映像投影システムの一例として、ステレオ画像方式の測距センサを備えたプロジェクタ100を用いて説明した。しかしながら、図1に示す各機能部が単一の装置内に設けられることは必ずしも要さず、一部の演算処理を外部のコンピュータ・システムで行うよう構成してもよい。
図23は、第4の実施形態におる映像投影システム200の概略構成を示す図である。図23に示す映像投影システム200は、ステレオ画像方式の測距センサを備えたプロジェクタ210と、外部コンピュータ・システム230とを含み構成される。プロジェクタ210は、制御部212、フォーカス調整部216、撮像部214および投影部218に加えて、NIC(ネットワーク・インタフェース・カード)などのネットワーク通信部220を備える。一方、外部コンピュータ・システム230は、プロジェクタ210と通信するためのネットワーク通信部232と、測距部234と、対象形状指定部236と、対象形状探索部238と、平面推定部240と、位置変化判定部242と、補正計算部244と、投影画像補正部246とを含む。この場合、ネットワーク通信部220により、ステレオ画像データを外部コンピュータ・システム230に送信し、外部コンピュータ・システム230から演算結果として、重心データや補正されたプロジェクタ画像データを受信することができる。
図23に示すように外部コンピュータ・システム230側に主要な演算機能を実装することによって、プロジェクタ210に要求される演算性能に対する要件を緩和することができる。なお、外部コンピュータ・システム230は、単一のコンピュータ装置であってもよいし、仮想コンピュータであってもよいし、複数のコンピュータから構成され分散演算を行うコンピュータ・システムであってもよい。また、プロジェクタ210と外部コンピュータ・システム230との間における機能部を分担させる態様は、図23に示す例に限定されず、任意の態様で行うことができる。
(第5の実施形態)
上記第1の実施形態および第4の実施形態では、ステレオ画像方式の測距センサを備えたプロジェクタ100,210を用いて説明した。しかしながら、測距センサは、必ずしもプロジェクタに備えられていなくともよい。
図24は、第5の実施形態におる映像投影システム300の概略構成を示す図である。図24に示す映像投影システム300は、プロジェクタ310と、外部接続されるステレオ測距センサ340とを含み構成される。プロジェクタ310は、制御部312、測距部314、対象形状指定部316、対象形状探索部318、平面推定部320、位置変化判定部322、補正計算部324、投影画像補正部326、フォーカス調整部328、投影部330に加えて、USB(Universal Serial Bus)などのインタフェース部322を備える。一方、ステレオ測距センサ340は、インタフェース部342と、撮像部344とを備える。
図24に示すように投影部330と、撮像部344とを分離した装置310,340に設けることによって、プロジェクタ310の焦点距離と、ステレオ測距センサ340の焦点距離とが大きく解離する場合でも、好適に上述した投影光制御を行うことが可能となる。図25は、短焦点プロジェクタ310と、ステレオ測距センサ340とを分離して構成した撮像システムを例示する。
以上説明したように、本発明の実施形態によれば、利用者が指定した任意形状の投影対象物に対して、投影対象物に合わせた投影光制御を行うことを可能とする画像処理装置、映像投影システムおよびプログラムを提供することができる。
なお、上記機能部は、アセンブラ、C、C++、C#、Java(登録商標)などのレガシープログラミング言語やオブジェクト指向プログラミング言語などで記述されたコンピュータ実行可能なプログラムにより実現でき、ROM、EEPROM、EPROM、フラッシュメモリ、フレキシブルディスク、CD−ROM、CD−RW、DVD−ROM、DVD−RAM、DVD−RW、ブルーレイディスク、SDカード、MOなど装置可読な記録媒体に格納して、あるいは電気通信回線を通じて頒布することができる。また、上記機能部の一部または全部は、例えばフィールド・プログラマブル・ゲート・アレイ(FPGA)などのプログラマブル・デバイス(PD)上に実装することができ、あるいはASIC(特定用途向集積)として実装することができ、上記機能部をPD上に実現するためにPDにダウンロードする回路構成データ(ビットストリームデータ)、回路構成データを生成するためのHDL(Hardware Description Language)、VHDL(VHSIC(Very High Speed Integrated Circuits) Hardware Description Language))、Verilog−HDLなどにより記述されたデータとして記録媒体により配布することができる。
これまで本発明の実施形態について説明してきたが、本発明の実施形態は上述した実施形態に限定されるものではなく、他の実施形態、追加、変更、削除など、当業者が想到することができる範囲内で変更することができ、いずれの態様においても本発明の作用・効果を奏する限り、本発明の範囲に含まれるものである。