(57)【要約】【課題】簡易なシステム構成で、作業者に事前作業の負担を強いることなく、投光装置から被写体上の所望の位置に高精度で投光させることを可能にする。【解決手段】補正値演算部１１は、被写体２０に投光された投光点２１〜２３の撮像画像における位置と、撮像画像における投光点２１の目標投光位置と、投光装置３１による投光方向の中心軸に垂直な投光平面における投光点２１〜２３の位置とに基づいて、撮像画像における投光点２１の位置が目標投光位置に近づくように投光平面における投光点２１の位置を補正する補正値を演算する。投光位置補正部１２は、投光装置３１による投光点２１の投光方向を制御して、投光平面における投光点２１の位置を補正値に基づいて変化させる。【選択図】図１
2011118713.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
投光装置から被写体に投光された第１の投光点および複数の第２の投光点のそれぞれについての、前記被写体を撮像した撮像画像における位置と、前記撮像画像における前記第１の投光点の目標投光位置と、前記投光装置による投光方向の中心軸に垂直な投光平面における前記第１の投光点および前記第２の投光点のそれぞれの位置とに基づいて、前記撮像画像における前記第１の投光点の位置が前記目標投光位置に近づくように前記投光平面における前記第１の投光点の位置を補正する補正値を演算し、
前記投光装置による前記第１の投光点の投光方向を制御して、前記投光平面における前記第１の投光点の位置を前記補正値に基づいて変化させる、
処理を実行させることを特徴とする投光制御プログラム。
【請求項２】
前記補正値は、前記投光平面における前記第１の投光点の補正方向を示す補正ベクトルとして出力され、
前記補正ベクトルは、前記撮像画像における前記第１の投光点の位置と前記第２の投光点のそれぞれの位置との接続線に沿った複数のベクトルと、前記撮像画像における前記第１の投光点の位置と前記目標投光位置との接続線に沿ったベクトルと、前記投光平面における前記第１の投光点の位置と前記第２の投光点のそれぞれの位置との接続線に沿った複数のベクトルとを基に演算される、
ことを特徴とする請求項１記載の投光制御プログラム。
【請求項３】
前記撮像画像における前記第１の投光点の位置と前記第２の投光点のうち一の投光点の位置との接続線に沿った単位ベクトルをＡとし、前記撮像画像における前記第１の投光点の位置と前記第２の投光点のうち前記一の投光点以外の他の投光点の位置との接続線に沿った単位ベクトルをＢとし、前記撮像画像における前記第１の投光点の位置と前記目標投光位置とを接続して生成されるベクトルをｃとし、前記投光平面における前記第１の投光点の位置と前記投光平面における前記一の投光点の位置との接続線に沿った単位ベクトルをＡ’とし、前記投光平面における前記第１の投光点の位置と前記他の投光点の位置との接続線に沿った単位ベクトルをＢ’とし、前記補正ベクトルをｃ’とすると、前記補正ベクトルｃ’は式（１）によって演算されることを特徴とする請求項２記載の投光制御プログラム。
ｃ’＝（ｃ・Ａ）・Ａ’＋（ｃ・Ｂ）・Ｂ’                            ・・・（１）
【請求項４】
前記投光装置を制御して、前記投光平面における前記第１の投光点の位置を、演算された前記補正ベクトルに従って変化させた後、位置変化後の前記第１の投光点の前記撮像画像における位置と前記目標投光位置との距離が、位置変化前の前記第１の投光点の前記撮像画像における位置と前記目標投光位置との距離より大きい場合には、前記投光装置を制御して、前記投光平面における前記第１の投光点の位置を、位置変化前の前記第１の投光点の位置を前記補正ベクトルの大きさを減少させたベクトルに従って移動した位置に変化させることを特徴とする請求項２または３記載の投光制御プログラム。
【請求項５】
前記投光装置を制御して、前記投光平面における前記第１の投光点の位置を前記補正値に基づいて変化させるとともに、前記投光平面における前記第２の投光点の位置を前記補正値に基づいて変化させ、
位置変化後の前記第２の投光点が、前記被写体を撮像した前記撮像画像に映っていない場合には、前記投光装置を制御して、前記投光平面における前記第２の投光点の位置を、前記第１の投光点の位置を中心として回転させることを特徴とする請求項１記載の投光制御プログラム。
【請求項６】
投光装置から被写体に投光された第１の投光点および複数の第２の投光点のそれぞれについての、前記被写体を撮像した撮像画像における位置と、前記撮像画像における前記第１の投光点の目標投光位置と、前記投光装置による投光方向の中心軸に垂直な投光平面における前記第１の投光点および前記第２の投光点のそれぞれの位置とに基づいて、前記撮像画像における前記第１の投光点の位置が前記目標投光位置に近づくように前記投光平面における前記第１の投光点の位置を補正する補正値を演算する補正値演算部と、
前記投光装置による前記第１の投光点の投光方向を制御して、前記投光平面における前記第１の投光点の位置を前記補正値に基づいて変化させる投光位置補正部と、
を有することを特徴とする投光制御装置。
【請求項７】
投光制御装置が、
投光装置から被写体に投光された第１の投光点および複数の第２の投光点のそれぞれについての、前記被写体を撮像した撮像画像における位置と、前記撮像画像における前記第１の投光点の目標投光位置と、前記投光装置による投光方向の中心軸に垂直な投光平面における前記第１の投光点および前記第２の投光点のそれぞれの位置とに基づいて、前記撮像画像における前記第１の投光点の位置が前記目標投光位置に近づくように前記投光平面における前記第１の投光点の位置を補正する補正値を演算し、
前記投光装置による前記第１の投光点の投光方向を制御して、前記投光平面における前記第１の投光点の位置を前記補正値に基づいて変化させる、
ことを特徴とする投光制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、投光制御プログラム、投光制御装置および投光制御方法に関する。
【背景技術】
【０００２】
近年、ネットワーク技術や画像符号化技術などの発達に伴い、遠隔地において撮像された画像の信号をネットワークを通じて受信することで、その画像をリアルタイムに閲覧することが可能になっている。このような技術は、例えば、電子会議システムなどに利用されている。
【０００３】
また、遠隔地にある被写体の画像を会議室などの指令センタで表示するとともに、指令センタからポインティング位置を指定することで、被写体の所望の位置をポインティングデバイスによってポインティングすることを可能にしたシステムも考えられている。このシステムは“遠隔ポインティングシステム”などと呼ばれ、例えば、遠隔地にいる作業者に対して指令センタから作業の指示を与える場合などに利用可能である。
【０００４】
遠隔ポインティングシステムでは、被写体が存在する遠隔地に、被写体を撮像するカメラと、被写体に対して所定の画像を投写する投写装置とが設置される。投写装置としては、例えばプロジェクタが使用される。カメラで撮像された画像は、ネットワークを通じて指令センタ側の処理装置に送信され、撮像された画像がモニタに表示される。また、指令センタの指令者が、表示された画像上の任意の位置をマウスなどを用いてポインティングすると、ポインティング位置を示す位置情報が遠隔地側の処理装置に送信される。遠隔地側の処理装置は、プロジェクタを制御して、受信した位置情報に対応する被写体上の位置に所定のポインティング画像を投写させる。
【０００５】
このような遠隔ポインティングシステムでは、指令センタ側から被写体上に指定される目標ポインティング位置と、実際に被写体にポインティング画像が投写される位置とをどのように一致させるかが課題となる。この課題を解決する方法としては、例えば、次の図９または図１０に示す２つの方法が考えられる。
【０００６】
図９は、目標ポインティング位置と実際のポインティング位置とを一致させる第１の方法を説明する図である。
図９に示すように、被写体８１０を撮像するカメラ８２０と、被写体８１０に画像を投写するプロジェクタ８３０とは、それぞれの位置が同じにはならない。このため、カメラ８２０で撮像された画像を基に指令センタ側から指定された目標ポインティング位置と、その位置情報を基にプロジェクタ８３０が被写体にポインティング画像を投写した投写点８１１の位置との間に、ズレが生じる。
【０００７】
これに対して、プロジェクタ８３０の投写方向を制御する処理装置が、カメラ８２０とプロジェクタ８３０との相対座標、カメラ８２０から目標ポインティング位置までの距離などを取得する方法が考えられる。この場合には、処理装置は、三角法などを用いた演算により、実際の投写点８１１の位置が指令センタ側から指定された目標ポインティング位置に一致するように、プロジェクタ８３０の投写方向を調整できるようになる。
【０００８】
しかし、この方法では、カメラ８２０から目標ポインティング位置までの正確な距離を計測する構成が必要になるため、システム構成が複雑になるという問題がある。なお、カメラ８２０から目標ポインティング位置までの距離を計測する方法としては、例えば、カメラの自動焦点機構から得られる距離情報や、カメラのズーム機能から得られる焦点距離などを利用する方法が考えられる。
【０００９】
また、カメラ８２０から目標ポインティング位置までの距離が得られたとしても、この距離と相対座標とを基にプロジェクタ８３０の投写方向をあらかじめ調整する“キャリブレーション”と呼ばれる作業が必要となり、作業が面倒であるという問題もある。
【００１０】
図１０は、目標ポインティング位置と実際のポインティング位置とを一致させる第２の方法を説明する図である。
図１０では、カメラ８２０およびプロジェクタ８３０と、被写体８１０との間に、ハーフミラー８４０を配置したシステムを示している。このシステムでは、カメラ８２０はハーフミラー８４０を介して被写体８１０を撮像する。一方、プロジェクタ８３０からの投写画像は、ハーフミラー８４０で反射されて被写体８１０に投写される。このようなシステムでは、カメラ８２０から被写体８１０への光軸と、プロジェクタ８３０からの投写画像がハーフミラー８４０に反射された反射光の光軸とを一致させることで、目標ポインティング位置と実際の投写点８１１の位置とが一致する。
【００１１】
しかし、このシステムでは、ハーフミラー８４０を配置する必要があるとともに、ハーフミラー８４０とカメラ８２０およびプロジェクタ８３０との相対位置を高精度に設定する必要があり、システム構成が複雑になるという問題がある。また、カメラ８２０がハーフミラー８４０を介して撮像するため、撮像された画像の画質が低下するという問題もある。
【先行技術文献】
【特許文献】
【００１２】
【特許文献１】特開平９−４６７７６号公報
【特許文献２】特開２００３−３７８４０号公報
【非特許文献】
【００１３】
【非特許文献１】伊與田哲男、外５名、“テクニカルレポートＮｏ．１６／２００６、実物ベース遠隔コラボレーション支援システムＬｉｇｈｔＣｏｌｌａｂｏ”、［ｏｎｌｉｎｅ］、富士ゼロックス、［平成２１年１１月２日検索］、インターネット＜http://www.fujixerox.co.jp/company/technical/tr/16/download/pdf/t＿1.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【００１４】
前述のように、遠隔ポインティングシステムでは、指令センタ側から被写体上に指定する目標ポインティング位置と、実際に被写体にポインティング画像が投写される位置とのズレが生じるという問題があった。そして、この位置ズレを解消する技術には、システム構成が複雑になる、面倒なキャリブレーション作業が必要になる、撮像した画像の画質が劣化するなどといった問題があった。
【００１５】
本発明はこのような点に鑑みてなされたものであり、簡易なシステム構成で、作業者に事前作業の負担を強いることなく、被写体上の所望の位置に高精度で投光することが可能な投光制御プログラム、装置および方法を提供することを目的とする。
【課題を解決するための手段】
【００１６】
上記目的を達成するために、投光制御プログラムが提供される。投光制御プログラムを実行したコンピュータは、投光装置から被写体に投光された第１の投光点および複数の第２の投光点のそれぞれについての、前記被写体を撮像した撮像画像における位置と、前記撮像画像における前記第１の投光点の目標投光位置と、前記投光装置による投光方向の中心軸に垂直な投光平面における前記第１の投光点および前記第２の投光点のそれぞれの位置とに基づいて、前記撮像画像における前記第１の投光点の位置が前記目標投光位置に近づくように前記投光平面における前記第１の投光点の位置を補正する補正値を演算し、前記投光装置による前記第１の投光点の投光方向を制御して、前記投光平面における前記第１の投光点の位置を前記補正値に基づいて変化させる。
【００１７】
また、上記目的を達成するために、上記の投光制御プログラムを実行したコンピュータと同様の処理を行う投光制御装置および投光制御方法が提供される。
【発明の効果】
【００１８】
上記の投光制御プログラム、投光制御装置および投光制御方法によれば、簡易なシステム構成で、作業者に事前作業の負担を強いることなく、投光装置から被写体上の所望の位置に高精度で投光させることが可能になる。
【図面の簡単な説明】
【００１９】
【図１】第１の実施の形態に係る投光制御装置の構成を示す図である。
【図２】補正ベクトルの演算に使用されるベクトルの例を示す図である。
【図３】第２の実施の形態に係る遠隔ポインティングシステムのシステム構成を示す図である。
【図４】制御装置のハードウェア構成例を示す図である。
【図５】各制御装置が備える機能を示すブロック図である。
【図６】ポインティング画像の位置および目標ポインティング位置のそれぞれの座標の例を示す図である。
【図７】補正ベクトルを基にポインティング画像の投写位置を補正する処理手順を示すフローチャートである。
【図８】ポインティング画像の投写位置補正の処理手順の変形例を示すフローチャートである。
【図９】目標ポインティング位置と実際のポインティング位置とを一致させる第１の方法を説明する図である。
【図１０】目標ポインティング位置と実際のポインティング位置とを一致させる第２の方法を説明する図である。
【発明を実施するための形態】
【００２０】
以下、実施の形態を図面を参照して詳細に説明する。
〔第１の実施の形態〕
図１は、第１の実施の形態に係る投光制御装置の構成を示す図である。
【００２１】
投光制御装置１０は、被写体２０に対して光を投光する投光装置３１を制御する機能を備える。また、投光制御装置１０には、被写体２０を撮像する撮像装置３２と、撮像装置３２によって撮像された画像を表示する表示装置４１と、オペレータからの入力操作を受け付ける入力装置４２とが接続されている。
【００２２】
投光装置３１は、例えば、被写体２０に対して画像を投写するプロジェクタである。この場合、被写体２０上の投光点には、例えば点状や矢印状などの所定の形状を有する指示画像が表示される。また、投光装置３１は、例えば、投光制御装置１０からの制御の下で投光方向が可変とされた１つまたは複数のレーザポインタであってもよい。
【００２３】
後述するように、本実施の形態では、被写体２０に対して３つ以上の投光点が投光されるが、投光装置３１が、プロジェクタまたは３つ以上のレーザポインタである場合、これらの３つの投光点を被写体２０に対して同時に投光することが可能である。一方、投光装置３１が１つのレーザポインタである場合には、例えば、３つ以上の投光点が順次投光されればよい。
【００２４】
表示装置４１および入力装置４２は、例えば、被写体２０が配置された場所から離れた場所に配置される。表示装置４１および入力装置４２と被写体２０とが離れている場合、投光制御装置１０は、例えば、被写体２０に近い場所に配置されてもよいし、表示装置４１および入力装置４２に近い場所に配置されてもよい。前者の場合、投光装置３１または撮像装置３２の少なくとも一方は、投光制御装置１０と一体化されていてもよく、また、表示装置４１および入力装置４２は、コンピュータなどを介して投光制御装置１０に接続されていてもよい。一方、後者の場合、表示装置４１または入力装置４２の少なくとも一方は、投光制御装置１０と一体化されていてもよい。
【００２５】
入力装置４２を操作するオペレータは、被写体２０や、被写体２０に対して投光装置３１から投光された投光点を、表示装置４１を介して視認する。オペレータは、表示装置４１を介して被写体２０を視認した状態で、投光装置３１から被写体２０に投光させる１つの投光点の位置を、入力装置４２を操作することで指定できる。このとき、オペレータによって指定された投光点の位置が、例えば指示画像などとして表示装置４１に表示される。ここで、オペレータにより指定される、撮像画像上の投光点の位置を、“目標投光位置”と呼ぶ。目標投光位置は、表示装置４１に表示された画像を視認したオペレータの操作により決定されるので、撮像装置３２による撮像画像の座標系における位置情報を有する。
【００２６】
投光制御装置１０は、入力装置４２から目標投光位置の指定を受けると、投光装置３１を制御して、被写体２０における目標投光位置に対応する位置に、光を照射させる。しかしながら、投光装置３１と撮像装置３２は異なる位置に配置されていることから、表示装置４１に表示される画像においては、オペレータが指定した目標投光位置と、実際に被写体２０に投光された投光点の位置との間にズレが生じる場合がある。
【００２７】
投光制御装置１０は、このような位置ズレを補正する処理機能として、補正値演算部１１および投光位置補正部１２を有している。なお、これらの処理機能は、例えば、投光制御装置１０が備えるＣＰＵ（Central Processing Unit）によって所定のプログラムが実行されることで実現される。また、これらの処理機能の少なくとも一部が、個別のハードウェアによって実現されてもよい。
【００２８】
投光位置補正部１２は、投光装置３１を制御して、被写体２０上の３カ所以上の位置に光を照射させ、これらの投光点のうち１つの投光点を、位置ズレの補正対象とする。ここでは、補正対象とした投光点を“主投光点”と呼び、その他の投光点を“副投光点”と呼ぶ。なお、副投光点は、副投光点同士を接続した直線上に主投光点が存在しないような位置に設定される。
【００２９】
補正値演算部１１は、撮像装置３２による撮像画像の信号を基に、これらの３つ以上の投光点を認識し、各投光点の撮像画像における位置を検出する。ここで、補正値演算部１１は、被写体２０に投光された３つ以上の投光点を、それぞれ区別して認識する。これらの投光点の識別を可能とするために、例えば、各投光点にはそれぞれ異なる色の光が照射される。あるいは、各投光点がそれぞれ異なる周波数で点滅されてもよい。あるいは、各投光点において、それぞれ異なる形状の光が照射されてもよい。また、各投光点に光が同時に投光されず、１つずつ順次光が投光される場合には、補正値演算部１１は、例えば、光が投光されたタイミングを基に各投光点を識別できる。
【００３０】
また、補正値演算部１１は、各投光点の投光平面における位置を、例えば投光位置補正部１２から取得する。ここで、投光平面は、投光装置３１による投光方向の中心軸に垂直な、仮想的な平面であり、例えば、投光装置３１による投光方向を制御する際の基準座標として利用されるものである。投光装置３１がプロジェクタである場合、投光平面は、プロジェクタから出力される投写画像に相当する。
【００３１】
補正値演算部１１は、撮像画像における各投光点と主投光点の目標投光位置との相対的な位置関係を基に、投光平面における各投光点と、投光平面での目標投光位置に対応する投光位置との相対的な位置関係を推定する。具体的には、補正値演算部１１は、３つ以上の投光点の撮像画像上の位置と、指定された目標投光位置と、３つ以上の投光点の投光平面上の位置とを基に、投光平面における主投光点の位置を補正する補正値を演算する。この補正値は、主投光点の撮像画像における位置が目標投光位置に近づくように、主投光点の投光平面における位置、すなわち、主投光点の投光装置３１からの投光方向を、補正するものである。
【００３２】
投光位置補正部１２は、演算された補正値に基づいて投光装置３１を制御し、補正対象の投光点の位置を補正する。これにより、オペレータが表示装置４１において視認する撮像画像において、主投光点が目標投光位置に近づけられる。
【００３３】
このような投光制御装置１０によれば、被写体２０に実際に投光された投光点の撮像画像における位置と目標投光位置とのズレ量を、簡易な構成で低減することができる。例えば、撮像装置３２から被写体２０までの距離を計測するための構成が必要とならない。また、投光装置３１の投光方向の中心軸と撮像装置３２の光軸とを一致させるための構成も必要とならない。また、撮像装置３２と被写体２０との間に光軸合わせのためのハーフミラーが必要とならないので、撮像画像の画質を良好に保つことができる。さらに、位置ズレを事前に補正するキャリブレーション作業も必要とならないため、オペレータなどの作業効率が向上する。
【００３４】
ところで、補正値演算部１１で算出される補正値は、例えば、投光平面における主投光点の補正方向を示す補正ベクトルとして出力されてもよい。この場合、補正値演算部１１は、例えば、次の３種類のベクトルを基に補正ベクトルを演算する。第１のベクトルは、撮像画像における主投光点の位置と複数の副投光点の位置との接続線にそれぞれ沿った複数のベクトルである。第２のベクトルは、撮像画像における主投光点の位置と目標投光位置との接続線に沿ったベクトルである。第３のベクトルは、投光平面における主投光点の位置と上記の複数の副投光点の位置との接続線にそれぞれ沿った複数のベクトルである。
【００３５】
このような補正ベクトルを算出することで、少なくとも、主投光点の位置を補正する方向を決定することができる。また、例えば、補正ベクトルの大きさを調整することで、主投光点の位置を本来投光すべき位置に移動させる際の１回の移動量を調整することができる。この場合、例えば、被写体２０の投光面の形状に応じて、主投光点の位置の移動量を調整することができる。
【００３６】
以下、補正ベクトルの具体的な演算手順の例について説明する。ここでは例として、図１に示したように、被写体２０に３つの投光点２１〜２３を投光し、このうち投光点２１を主投光点、投光点２２，２３を副投光点とした場合を想定する。
【００３７】
図２は、補正ベクトルの演算に使用されるベクトルの例を示す図である。図２（Ａ）は、撮像画像の座標系を示し、図２（Ｂ）は、投光平面の座標系を示す。
図２（Ａ）において、投光点２１ａ〜２３ａは、それぞれ、撮像画像上に映し出された投光点２１〜２３である。また、目標投光位置２４ａは、オペレータにより入力装置４２を通じて指定されたポインティング位置である。
【００３８】
一方、図２（Ｂ）において、投光点２１ｂ〜２３ｂは、それぞれ、投光平面の座標における投光点２１〜２３の位置を示す。また、目標投光位置２４ｂは、投光点２１ｂの位置補正後の目標位置である。この目標投光位置２４ｂは、撮像画像において、補正後の投光点２１の位置が目標投光位置２４ａと一致するような、投光平面上の位置を示している。そして、ここでは、投光点２１ｂから目標投光位置２４ｂへのベクトルを補正ベクトルｃ’とする。
【００３９】
図２（Ａ）に示すように、撮像画像の座標において、投光点２１ａから投光点２２ａへのベクトルをａ、投光点２１ａから投光点２３ａへのベクトルをｂ、投光点２１ａから目標投光位置２４ａへのベクトルをｃとする。このとき、ベクトルｃは、ベクトルａ，ｂを用いて次の式（１）のように表される。
ｃ＝ｓ（ａ／｜ａ｜）＋ｔ（ｂ／｜ｂ｜）                              ・・・（１）
式（１）において、ｓ，ｔはともにスカラ量であり、それぞれ次の式（２），式（３）によって表される。
ｓ＝（ａ／｜ａ｜）・ｃ                                              ・・・（２）
ｔ＝（ｂ／｜ｂ｜）・ｃ                                              ・・・（３）
一方、図２（Ｂ）に示すように、投光平面の座標において、投光点２１ｂから投光点２２ｂへのベクトルをａ’、投光点２１ｂから投光点２３ｂへのベクトルをｂ’とする。このとき、投光点２１ａから目標投光位置２４ｂへの補正ベクトルをｃ’は、上記のｓ，ｔおよびベクトルｂ’，ｃ’を用いて、次の式（４）によって求められる。
ｃ’＝ｓ（ａ’／｜ａ’｜）＋ｔ（ｂ’／｜ｂ’｜）                    ・・・（４）
投光位置補正部１２は、投光点２１の位置が、投光平面上で補正ベクトルｃ’の方向および大きさの分だけ移動するように、投光装置３１による投光点２１の投光方向を制御する。これにより、撮像画像において、投光点２１ａが目標投光位置２４ａの位置まで移動される。特に、被写体２０の投光面が１つの平面である場合には、補正ベクトルｃ’の方向および大きさを投光方向の制御にそのまま用いることで、主投光点の位置を高精度に補正できる。また、被写体２０の投光面が１つの平面のみで構成されない場合には、例えば、補正ベクトルｃ’に所定の定数を乗じて大きさを調整したベクトルを基に、主投光点の位置を補正してもよい。
【００４０】
なお、上記の式（１）や式（４）では、ベクトルａ，ｂ，ａ’，ｂ’の方向をそれぞれ逆方向としてもよい。
また、上記の例では副投光点を２つとしたが、３つ以上の副投光点を利用して演算を行ってもよい。例えば、副投光点を３点とした場合、撮像画像における主投光点と３つの副投光点のそれぞれとの間のベクトルを用いて、撮像画像における主投光点と目標投光位置とのベクトルを表す。具体的には、例えば、撮像画像における主投光点と３つの副投光点のそれぞれとの間をａ，ｂ，ｄとすると、撮像画像における主投光点と目標投光点とのベクトルｃは、ｓ（ａ／｜ａ｜）＋ｔ（ｂ／｜ｂ｜）＋ｕ（ｄ／｜ｄ｜）と表すことができる。補正値演算部１１は、投光平面における主投光点から目標投光点への補正ベクトルを、投光平面における主投光点と３つの副投光点との間のベクトルと、上記の係数ｓ，ｔ，ｕとを基に演算する。
【００４１】
〔第２の実施の形態〕
次に、投光装置として、画像を投写するプロジェクタを用いた場合の実施の形態について説明する。
【００４２】
図３は、第２の実施の形態に係る遠隔ポインティングシステムのシステム構成を示す図である。
本実施の形態では、撮像およびポインティングの対象となる被写体１００が配置された場所を“遠隔作業地２００”と称し、被写体１００に対するポインティング位置を操作する指令者が存在する場所を“指令センタ３００”と称する。
【００４３】
遠隔作業地２００には、制御装置２０１と、被写体１００に画像を投写するプロジェクタ部２０２と、被写体１００を撮像するカメラ部２０３とが配置されている。プロジェクタ部２０２およびカメラ部２０３は、ともに制御装置２０１に接続されている。制御装置２０１は、カメラ部２０３からの撮像画像信号と、指令センタ３００に配置された制御装置３０１からの信号とを基に、プロジェクタ部２０２による画像の投写動作を制御する。なお、例えば、プロジェクタ部２０２またはカメラ部２０３の少なくとも一方は、制御装置２０１と一体に設けられてもよい。
【００４４】
指令センタ３００には、制御装置３０１が配置され、この制御装置３０１には、モニタ３０２とマウス３０３とが接続されている。なお、モニタ３０２は、例えば、制御装置３０１と一体に設けられていてもよい。また、制御装置３０１には、マウス３０３以外のポインティングデバイスが接続されていてもよい。
【００４５】
制御装置２０１と制御装置３０１とは、ネットワーク４００を介して互いに接続されている。制御装置２０１は、カメラ部２０３からの撮像画像信号を、ネットワーク４００を介して制御装置３０１に送信する。制御装置３０１は、受信した撮像画像信号に基づく画像をモニタ３０２に表示させる。指令センタ３００に存在する指令者は、被写体１００をモニタ３０２を介して視認する。
【００４６】
また、指令者は、モニタ３０２に表示された被写体１００を視認しながら、マウス３０３を用いて、表示された被写体１００の任意の位置に対するポインティング動作を要求する入力操作を行う。制御装置３０１は、指令者の入力操作によって指定されたポインティング位置を示す位置情報を、ネットワーク４００を介して制御装置２０１に送信する。制御装置２０１は、受信した位置情報に基づいて、プロジェクタ部２０２に投写させるポインティング画像の位置を制御する。
【００４７】
制御装置２０１は、モニタ３０２に表示された画像において、実際にプロジェクタ部２０２から投写されたポインティング画像の位置が、指令者が意図するポインティング位置と一致するように、プロジェクタ部２０２による画像の投写動作を制御する。この制御の際に、制御装置２０１は、被写体１００の３カ所以上の位置にポインティング画像を投写するように、プロジェクタ部２０２を制御する。
【００４８】
本実施の形態では、制御装置２０１は、被写体１００の３カ所にポインティング画像１０１〜１０３を投写するようにプロジェクタ部２０２を制御する。そして、ポインティング画像１０１の投写位置を、指令者が意図するポインティング位置に近づけるように補正する。なお、ポインティング画像１０１〜１０３のそれぞれは、異なる色で表示されるものとする。
【００４９】
図４は、制御装置のハードウェア構成例を示す図である。
制御装置２０１は、例えば、図４に示すようなコンピュータとして実現される。このコンピュータは、ＣＰＵ２１１、ＲＡＭ（Random Access Memory）２１２、ＨＤＤ（Hard Disk Drive）２１３、グラフィック処理部２１４、入力インタフェース（Ｉ／Ｆ）２１５、書き込み／読み取り部２１６、ネットワークインタフェース（Ｉ／Ｆ）２１７および外部機器インタフェース（Ｉ／Ｆ）２１８を備えており、これらの各部はバス２１９によって相互に接続されている。
【００５０】
ＣＰＵ２１１は、ＨＤＤ２１３などの記憶媒体に記憶された各種プログラムを実行することにより、このコンピュータ全体を統括的に制御する。ＲＡＭ２１２は、ＣＰＵ２１１に実行させるプログラムの少なくとも一部や、このプログラムによる処理に必要な各種データを一時的に記憶する。ＨＤＤ２１３は、ＣＰＵ２１１により実行されるプログラムやその実行に必要な各種のデータなどを記憶する。
【００５１】
グラフィック処理部２１４には、例えば、モニタ２１４ａが接続されている。このグラフィック処理部２１４は、ＣＰＵ２１１からの命令に従って、モニタ２１４ａの画面上に画像を表示させる。入力インタフェース２１５には、例えば、キーボード２１５ａやマウス２１５ｂが接続されている。入力インタフェース２１５は、キーボード２１５ａやマウス２１５ｂからの信号を、バス２１９を介してＣＰＵ２１１に送信する。
【００５２】
書き込み／読み取り部２１６は、ＣＰＵ２１１からバス２１９を介して受け取ったデータを、可搬型記憶媒体２１６ａに書き込む。また、可搬型記憶媒体２１６ａからデータを読み取り、バス２１９を介してＣＰＵ２１１に送信する。なお、可搬型記憶媒体２１６ａとしては、例えば、光ディスク、フレキシブルディスク、ＵＳＢ（Universal Serial Bus）インタフェースなどを介して接続される半導体メモリなどを適用可能である。
【００５３】
ネットワークインタフェース２１７は、ネットワーク４００を介して、制御装置３０１などの外部装置との間でデータの送受信を行う。外部機器インタフェース２１８は、プロジェクタ部２０２やカメラ部２０３などの外部機器との間でデータの送受信を行う。
【００５４】
なお、制御装置３０１についても、図４に示した制御装置２０１と同様のハードウェア構成によって実現可能である。この場合、図３に示したモニタ３０２、マウス３０３は、図４に示したモニタ２１４ａ、マウス２１５ｂにそれぞれ対応する。
【００５５】
図５は、各制御装置が備える機能を示すブロック図である。
指令センタ３００に配置された制御装置３０１は、表示処理部３２１および目標ポインティング位置演算部３２２を備えている。なお、これらの各機能は、例えば、制御装置３０１が備えるＣＰＵが、所定のプログラムを実行することで実現される。また、これらの機能のうちの少なくとも一部が、専用のハードウェア回路によって実現されてもよい。
【００５６】
表示処理部３２１は、制御装置２０１から撮像画像信号を受信し、受信した撮像画像信号を基に表示画像信号を生成して、モニタ３０２に出力する。また、例えば、制御装置２０１からの撮像画像信号が圧縮符号化されていた場合、表示処理部３２１は、受信した撮像画像信号を伸張復号化する。
【００５７】
目標ポインティング位置演算部３２２は、マウス３０３からの入力情報を基に、指令者から指定された、撮像画像の座標における目標ポインティング位置を演算し、制御装置２０１に送信する。
【００５８】
一方、遠隔作業地２００に配置された制御装置２０１は、画像送信処理部２２１、投写位置認識部２２２、補正ベクトル演算部２２３、投写位置演算部２２４および投写制御部２２５を備えている。なお、これらの各機能は、例えば、制御装置２０１が備えるＣＰＵ２１１が、所定のプログラムを実行することで実現される。また、これらの機能のうちの少なくとも一部が、専用のハードウェア回路によって実現されてもよい。さらに、これらの機能のうちの少なくとも一部が、プロジェクタ部２０２またはカメラ部２０３に設けられてもよい。
【００５９】
画像送信処理部２２１は、カメラ部２０３からの撮像画像信号を所定のデータ形式に変換して、制御装置３０１に送信する。例えば、画像送信処理部２２１は、撮像画像信号に対する圧縮符号化処理などを行う。
【００６０】
投写位置認識部２２２は、撮像画像信号を基に画像処理を行い、被写体１００に投写されたポインティング画像１０１〜１０３の、撮像画像の座標における位置を検出する。このとき、投写位置認識部２２２は、ポインティング画像１０１〜１０３のそれぞれを、色の違いを基に識別する。
【００６１】
補正ベクトル演算部２２３は、ポインティング画像１０１の投写位置を、指令者が意図するポインティング位置に近づくように補正するための補正ベクトルを演算する。補正ベクトル演算部２２３は、例えば、制御装置３０１の目標ポインティング位置演算部３２２からの目標ポインティング位置が更新されると、補正ベクトルの演算を実行する。このとき、補正ベクトル演算部２２３は、目標ポインティング位置と、投写位置認識部２２２から取得した位置と、投写位置演算部２２４から出力される、投写画像におけるポインティング画像１０１〜１０３の位置とを基に、補正ベクトルを演算する。
【００６２】
投写位置演算部２２４は、補正ベクトル演算部２２３により演算された補正ベクトルを基に、補正後のポインティング画像１０１の投写画像における位置を演算し、その位置を投写制御部２２５および補正ベクトル演算部２２３に出力する。また、投写位置演算部２２４は、補正ベクトルを基に、補正後のポインティング画像１０２，１０３の投写画像における位置も演算し、その位置を投写制御部２２５および補正ベクトル演算部２２３に出力する。
【００６３】
投写制御部２２５は、投写位置演算部２２４により演算された位置にポインティング画像１０１〜１０３をそれぞれ表示した投写画像の信号を生成し、プロジェクタ部２０２に出力して投写画像を投写させる。
【００６４】
図６は、ポインティング画像の位置および目標ポインティング位置のそれぞれの座標の例を示す図である。図６（Ａ）は、撮像画像の座標系を示し、この座標系はモニタ３０２に表示される画像の座標系と同じである。一方、図６（Ｂ）は、投写画像の座標系を示す。
【００６５】
図６（Ａ）において、ｐ１は、ポインティング画像１０１の撮像画像における位置を示し、その座標は（ｘ１，ｙ１）である。ｐ２は、ポインティング画像１０２の撮像画像における位置を示し、その座標は（ｘ２，ｙ２）である。ｐ３は、ポインティング画像１０３の撮像画像における位置を示し、その座標は（ｘ３，ｙ３）である。ｐｔは、制御装置３０１から制御装置２０１に送信される目標ポインティング位置を示し、その座標は（ｘｔ，ｙｔ）である。
【００６６】
一方、図６（Ｂ）において、ｐ１’は、ポインティング画像１０１の投写画像における位置を示し、その座標は（ｘ１’，ｙ１’）である。ｐ２’は、ポインティング画像１０２の投写画像における位置を示し、その座標は（ｘ２’，ｙ２’）である。ｐ３’は、ポインティング画像１０３の投写画像における位置を示し、その座標は（ｘ３’，ｙ３’）である。ｐｔ’は、撮像画像において、補正後のｐ１’が目標ポインティング位置ｐｔと一致するような、投写画像における位置を示す。
【００６７】
ここで、ｐ１からｐ２，ｐ３，ｐｔにそれぞれ向かうベクトルをａ，ｂ，ｃとし、ｐ１’からｐ２’，ｐ３’にそれぞれ向かうベクトルをａ’，ｂ’とする。この場合、補正ベクトル演算部２２３は、ｐ１’からｐｔ’に向かう補正ベクトルｃ’を、上記の式（４）に従って演算する。
【００６８】
ただし、本実施の形態では、補正ベクトル演算部２２３は、補正ベクトルｃ’にゲイン定数λを乗じたベクトルを、最終的な補正ベクトルとして出力する。ゲイン定数λは、０より大きく１以下の数とされる。これにより、被写体１００の投写面が、例えば曲面など、１つの平面のみで構成される面ではない場合に、ポインティング画像１０１の補正後の位置が、目的とする位置の近傍を通り過ぎて大きく逸れてしまう可能性を低減できる。
【００６９】
図７は、補正ベクトルを基にポインティング画像の投写位置を補正する処理手順を示すフローチャートである。
［ステップＳ１１］補正ベクトル演算部２２３は、制御装置３０１から出力される目標ポインティング位置ｐｔの値を監視し、その値が更新されたか否かを判定する。目標ポインティング位置ｐｔが更新された場合には、ステップＳ１２の処理が実行される。
【００７０】
［ステップＳ１２］補正ベクトル演算部２２３は、ゲイン定数λに初期値を設定する。この初期値としては、例えば、１が設定される。あるいは、０．５以上１未満といった１に近い値が設定されてもよい。
【００７１】
なお、ゲイン定数λの初期値は、例えば、指令者の入力操作に応じて制御装置３０１から設定可能であってもよい。この場合、ゲイン定数λの初期値を１より大きくしてもよい。例えば、指令者が被写体の形状を認識していて、ポインティング画像１０１の位置補正量を大きくした方がよいと判断した場合に、指令者の入力操作によりゲイン定数λが１より大きい値に設定される。
【００７２】
［ステップＳ１３］補正ベクトル演算部２２３は、投写位置演算部２２４に対して、３つのポインティング画像１０１〜１０３を投写するように要求する。
この処理では、例えば、補正ベクトル演算部２２３は、制御装置３０１から指定された目標ポインティング位置ｐｔの座標を、投写位置演算部２２４に通知する。投写位置演算部２２４は、通知された目標ポインティング位置ｐｔの座標を、ポインティング画像１０１に対応する位置ｐ１’の座標として設定する。これとともに、位置ｐ１’の座標に所定の値を加算することで、ポインティング画像１０２，１０３のそれぞれの位置ｐ２’，ｐ３’の座標として設定する。ここで、ポインティング画像１０２，１０３のそれぞれの位置ｐ２’，ｐ３’は、それぞれを接続した直線上にポインティング画像１０１の位置ｐ１’が存在しないように設定される。
【００７３】
なお、ポインティング画像１０１，１０２，１０３の位置ｐ１’、ｐ２’、ｐ３’は、例えば、目標ポインティング位置ｐｔの座標に関係なく、あらかじめ決められた位置とされてもよい。また、さらに別の方法として、目標ポインティング位置ｐｔの撮像画像上の領域と、ポインティング画像１０１，１０２，１０３の位置ｐ１’、ｐ２’、ｐ３’の初期設定座標とが、テーブルにあらかじめ対応づけられ、そのテーブルがＨＤＤ２１３などに記憶されていてもよい。この場合、入力された目標ポインティング位置ｐｔの座標に応じて、ポインティング画像１０１，１０２，１０３の位置ｐ１’、ｐ２’、ｐ３’の座標が決定される。
【００７４】
投写位置演算部２２４は、上記の手順で設定したポインティング画像１０１，１０２，１０３の位置ｐ１’、ｐ２’、ｐ３’の各座標を、投写制御部２２５および補正ベクトル演算部２２３に通知する。そして、投写制御部２２５に対して、ポインティング画像１０１〜１０３を投写するように要求する。これにより、被写体１００に対してポインティング画像１０１〜１０３が投写される。
【００７５】
なお、上記のステップＳ１１〜Ｓ１３が実行された段階ですでにポインティング画像１０１〜１０３が投写されている場合には、ステップＳ１３では、ポインティング画像１０１〜１０３の位置があらためて設定されなくてもよい。ただし、例えば、現在投写されているポインティング画像１０１の撮像画像における位置ｐ１と、新たに入力された目標ポインティング位置ｐｔとが、所定の距離以上離れている場合には、ポインティング画像１０１〜１０３の位置があらためて設定されてもよい。この場合、ｐ１−ｐｔ間の距離は補正ベクトル演算部２２３によって判定されればよい。
【００７６】
［ステップＳ１４］投写位置認識部２２２は、撮像画像信号を基に、ポインティング画像１０１，１０２，１０３の撮像画像における位置ｐ１，ｐ２，ｐ３の座標を検出する。補正ベクトル演算部２２３は、ポインティング画像１０１，１０２，１０３の位置ｐ１，ｐ２，ｐ３の座標を、投写位置認識部２２２から取得する。
【００７７】
［ステップＳ１５］補正ベクトル演算部２２３は、目標ポインティング位置ｐｔの座標と、ステップＳ１４で取得した位置ｐ１の座標とを基に、ベクトルｃを次の式（５）に従って演算する。
ｃ＝ｐｔ−ｐ１＝（ｘｔ−ｘ１，ｙｔ−ｙ１）                          ・・・（５）
［ステップＳ１６］補正ベクトル演算部２２３は、ベクトルｃの大きさが所定のしきい値ｔｈより小さいか否かを判定する。ベクトルｃの大きさがしきい値ｔｈ以上である場合には、ステップＳ１７の処理が実行される。一方、ベクトルｃの大きさがしきい値ｔｈより小さい場合には、ポインティング画像１０１の位置が目標とする位置とほぼ一致すると判断され、処理が終了される。
【００７８】
なお、ステップＳ１５の次にステップＳ１６が実行された場合には、ステップＳ１６で適用されるベクトルｃの値は、ステップＳ１５で演算された値となる。一方、ステップＳ２２の次にステップＳ１６が実行された場合には、ステップＳ１６で適用されるベクトルｃの値は、ステップＳ２１で演算された値となる。
【００７９】
［ステップＳ１７］補正ベクトル演算部２２３は、演算されたベクトルｃを一時記憶値ｃ＿ｔｍｐに設定する。また、位置ｐ１，ｐ２，ｐ３，ｐ１’，ｐ２’，ｐ３’の各座標を、ＲＡＭ２１２などに一時的に記憶する。
【００８０】
なお、ステップＳ１５の次にステップＳ１６が実行された場合には、ステップＳ１７で適用される位置ｐ１，ｐ２，ｐ３の座標は、ステップＳ１４で検出された値となる。また、ステップＳ１７で適用される位置ｐ１’，ｐ２’，ｐ３’の座標は、ステップＳ１３で設定された値となる。
【００８１】
一方、ステップＳ２２の次にステップＳ１６が実行された場合には、ステップＳ１７で適用される位置ｐ１，ｐ２，ｐ３の座標は、ステップＳ２０で検出された値となる。また、ステップＳ１７で適用される位置ｐ１’，ｐ２’，ｐ３’の座標は、ステップＳ１９またはステップＳ２５で設定された値となる。
【００８２】
［ステップＳ１８］補正ベクトル演算部２２３は、位置ｐ１，ｐ２，ｐ３，ｐ１’，ｐ２’，ｐ３’の各座標を基に、次の式（６）に従ってλ・ｃ’を演算し、投写位置演算部２２４に通知する。
λ・ｃ’＝λ・｛ｓ（ａ’／｜ａ’｜）＋ｔ（ｂ’／｜ｂ’｜）｝        ・・・（６）
ただし、係数ｓはｃ・（ａ／｜ａ｜）、係数ｔはｃ・（ｂ／｜ｂ｜）と計算され、ベクトルａ，ｂ，ａ’，ｂ’は、それぞれ次の式（７），式（８），式（９），式（１０）に従って演算される。
ａ＝ｐ２−ｐ１＝（ｘ２−ｘ１，ｙ２−ｙ１）                          ・・・（７）
ｂ＝ｐ３−ｐ１＝（ｘ３−ｘ１，ｙ３−ｙ１）                          ・・・（８）
ａ’＝ｐ２’−ｐ１’＝（ｘ２’−ｘ１’，ｙ２’−ｙ１’）            ・・・（９）
ｂ’＝ｐ３’−ｐ１’＝（ｘ３’−ｘ１’，ｙ３’−ｙ１’）          ・・・（１０）
［ステップＳ１９］投写位置演算部２２４は、現在設定されている位置ｐ１’、ｐ２’、ｐ３’の座標のｘ成分，ｙ成分に、補正ベクトル演算部２２３から通知されたλ・ｃ’のｘ成分、ｙ成分をそれぞれ加算する。そして、加算後の位置ｐ１’，ｐ２’，ｐ３’の座標を投写制御部２２５および補正ベクトル演算部２２３に通知する。
【００８３】
投写制御部２２５は、投写位置演算部２２４から通知された新たな位置ｐ１’，ｐ２’，ｐ３’の座標に基づいて、プロジェクタ部２０２によるポインティング画像１０１，１０２，１０３のそれぞれの投写位置を更新する。これにより、被写体１００におけるポインティング画像１０１〜１０３の位置が変更される。
【００８４】
［ステップＳ２０］投写位置認識部２２２は、撮像画像信号を基に、ポインティング画像１０１，１０２，１０３の撮像画像における位置ｐ１，ｐ２，ｐ３の座標を検出する。補正ベクトル演算部２２３は、ポインティング画像１０１，１０２，１０３の位置ｐ１，ｐ２，ｐ３の座標を、投写位置認識部２２２から取得する。
【００８５】
［ステップＳ２１］補正ベクトル演算部２２３は、目標ポインティング位置ｐｔの座標と、ステップＳ２０で取得した位置ｐ１の座標とを基に、ベクトルｃを前述した式（５）に従って演算する。
【００８６】
［ステップＳ２２］補正ベクトル演算部２２３は、ステップＳ２１で演算したベクトルｃの大きさと、ステップＳ１７で設定された、ベクトルｃの一時記憶値ｃ＿ｔｍｐの大きさとを比較する。
【００８７】
ベクトルｃの大きさが一時記憶値ｃ＿ｔｍｐの大きさより小さい場合には、ポインティング画像１０１の位置が目標とする位置に近づいたと考えられ、ステップＳ１６の処理が実行される。この場合、ステップＳ１６において、補正後のポインティング画像１０１の位置が目標とする位置とほぼ一致すると判定された場合には、処理が終了される。一方、ステップＳ１６において、ポインティング画像１０１のさらなる位置補正が必要と判定された場合には、ステップＳ１８において、あらためて位置補正の方向および大きさが決定される。
【００８８】
また、ステップＳ２２において、ベクトルｃの大きさが一時記憶値ｃ＿ｔｍｐの大きさ以上の場合には、ポインティング画像１０１の位置が、元の位置から、目標とする位置の近傍を大きく通り越した位置に移ったと推定される。この場合、ステップＳ２３の処理が実行される。
【００８９】
［ステップＳ２３］補正ベクトル演算部２２３は、ゲイン定数λに０．５を乗算する。なお、このステップＳ２３での乗算値は、０より大きく１より小さい任意の値とされてもよい。
【００９０】
［ステップＳ２４］補正ベクトル演算部２２３は、ステップＳ１７で一時記憶された位置ｐ１，ｐ２，ｐ３，ｐ１’，ｐ２’，ｐ３’の各座標を上記の式（５）〜式（１０）に適用することにより、λ・ｃ’を演算し、投写位置演算部２２４に通知する。ただし、補正ベクトルｃ’の値はステップＳ１８で算出されたものと同じであるので、ステップＳ２４では、ステップＳ１８で算出された補正ベクトルｃ’に、ステップＳ２３で更新されたゲイン定数λが乗算されればよい。
【００９１】
［ステップＳ２５］投写位置演算部２２４は、ステップＳ１７で一時記憶された位置ｐ１’、ｐ２’、ｐ３’の座標のｘ成分，ｙ成分に、ステップＳ２４で補正ベクトル演算部２２３から通知されたλ・ｃ’のｘ成分，ｙ成分をそれぞれ加算する。そして、加算後の位置ｐ１’，ｐ２’，ｐ３’の座標を投写制御部２２５および補正ベクトル演算部２２３に通知する。
【００９２】
投写制御部２２５は、投写位置演算部２２４から通知された新たな位置ｐ１’，ｐ２’，ｐ３’の座標に基づいて、プロジェクタ部２０２によるポインティング画像１０１，１０２，１０３のそれぞれの投写位置を更新する。この後、ステップＳ２０の処理が実行される。
【００９３】
上記のステップＳ２３〜Ｓ２５の処理では、ステップＳ１９において位置補正される前のポインティング画像１０１〜１０３の投写画像における位置が、ステップＳ１８で算出されたλ・ｃ’と方向が同じで大きさが縮小されたベクトルの分だけ補正される。すなわち、ポインティング画像１０１は、補正前の位置から、同じ方向に対してより小さい補正量分だけ移動される。また、ステップＳ２３〜Ｓ２５の処理が繰り返される度に、補正量がさらに小さくされる。
【００９４】
このような補正処理によれば、ポインティング画像１０１の補正後の位置が、目標とする位置の近傍を通り過ぎて大きく逸れてしまった場合に、補正後のポインティング画像１０１の位置を目標とする位置に近づくように戻すことができる。従って、例えば、被写体１００の投写面が、曲面など、１つの平面のみで構成される面ではない場合でも、ポインティング画像１０１の位置を目標とする位置に効率よく近づけることができる。
【００９５】
以上説明した第２の実施の形態では、被写体１００に実際に投写されたポインティング画像１０１の撮像画像における位置と、指令者から指定された目標ポインティング位置とのズレを、簡易な構成で低減することができる。特に、補正ベクトルｃ’にゲイン定数λを乗じた値を用いて位置補正を行うとともに、ステップＳ２２〜Ｓ２５の処理を加えたことで、被写体１００の投写面の形状に関係なく、より高精度にポインティング位置のズレを補正できるようになる。そして、このような位置ズレの補正を、指令者や遠隔作業地２００における作業者などによる事前作業を行うことなく、実行することが可能になる。
【００９６】
ところで、上記の図７の処理では、ポインティング画像１０１の位置を補正したとき、ポインティング画像１０２，１０３の位置についても、ポインティング画像１０１と同じ方向および大きさの分だけ補正していた。しかし、この場合には、位置補正後のポインティング画像１０２，１０３の少なくとも一方が、撮像画像内に写り込む領域の外に移動してしまう場合がある。そこで、例えば、図７の処理を、次の図８のように変形してもよい。
【００９７】
図８は、ポインティング画像の投写位置補正の処理手順の変形例を示すフローチャートである。
まず、図７に示したステップＳ２２において、ベクトルｃの大きさが一時記憶値ｃ＿ｔｍｐの大きさより小さい場合に、次のステップＳ３１が実行される。
【００９８】
［ステップＳ３１］補正ベクトル演算部２２３は、ステップＳ１６の処理と同様に、ベクトルｃの大きさが所定のしきい値ｔｈより小さいか否かを判定する。ベクトルｃの大きさがしきい値ｔｈ以上である場合には、ステップＳ３２の処理が実行され、ベクトルｃの大きさがしきい値ｔｈより小さい場合には、処理が終了される。
【００９９】
［ステップＳ３２］補正ベクトル演算部２２３は、ステップＳ２０の処理で、ポインティング画像１０２，１０３の位置ｐ２，ｐ３の両方を検出できたか否かを判定する。位置ｐ２，ｐ３を両方とも検出できた場合には、ステップＳ１７の処理が実行される。一方、位置ｐ２，ｐ３の少なくとも一方が検出できなかった場合には、ステップＳ３３の処理が実行される。
【０１００】
［ステップＳ３３］補正ベクトル演算部２２３は、ポインティング画像１０２，１０３の投写画像における位置ｐ２’，ｐ３’を再度演算し、投写制御部２２５および補正ベクトル演算部２２３に通知する。
【０１０１】
この処理では、補正ベクトル演算部２２３は、例えば、ポインティング画像１０２，１０３の位置ｐ２’，ｐ３’を、ポインティング画像１０１の位置ｐ１’を中心として所定の角度だけ回転させる。回転角度は、例えば、９０度とされる。
【０１０２】
位置ｐ２’，ｐ３’の位置回転処理は、例えば次の手順で実行される。まず、補正ベクトル演算部２２３は、直前に演算されたλ・ｃ’の方向を９０度回転させた新たな補正ベクトルを演算する。次に、補正ベクトル演算部２２３は、ステップＳ１７で一時記憶された位置ｐ２’，ｐ３’の座標のｘ成分，ｙ成分に、新たな補正ベクトルのｘ成分，ｙ成分をそれぞれ加算する。加算後の位置ｐ２’，ｐ３’の座標は、投写制御部２２５および補正ベクトル演算部２２３に通知される。
【０１０３】
投写制御部２２５は、投写位置演算部２２４から通知された新たな位置ｐ２’，ｐ３’の座標に基づいて、プロジェクタ部２０２によるポインティング画像１０２，１０３のそれぞれの投写位置を更新する。この後、ステップＳ３４の処理が実行される。
【０１０４】
［ステップＳ３４］投写位置認識部２２２は、撮像画像信号に基づいて、被写体１００に投写されたポインティング画像１０２，１０３の位置ｐ２，ｐ３を検出する。補正ベクトル演算部２２３は、検出された位置ｐ２，ｐ３を取得する。この後、ステップＳ３２の処理が再度実行され、位置ｐ２，ｐ３の両方が検出できたか否かが判定される。
【０１０５】
以上の図８の処理によれば、ポインティング画像１０１の位置を補正したとき、ポインティング画像１０２，１０３の投写位置を、撮像画像に写り込む領域内に確実に移動させることができる。従って、ポインティング画像１０１の位置補正処理を続行することができる。
【０１０６】
なお、上記の各実施の形態で示した装置（例えば、投光制御装置１０、制御装置２０１，３０１）が有する機能は、コンピュータによって実現することができる。その場合には、上記機能の処理内容を記述したプログラムが提供される。そして、そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリなどがある。
【０１０７】
プログラムを流通させる場合には、例えば、そのプログラムが記録された光ディスクなどの可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、そのプログラムを、サーバコンピュータからネットワークを介して他のコンピュータに転送することもできる。
【０１０８】
プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムまたはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、そのプログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送されるごとに、逐次、受け取ったプログラムに従った処理を実行することもできる。
【０１０９】
以上の各実施の形態に関し、さらに以下の付記を開示する。
（付記１）  コンピュータに、
投光装置から被写体に投光された第１の投光点および複数の第２の投光点のそれぞれについての、前記被写体を撮像した撮像画像における位置と、前記撮像画像における前記第１の投光点の目標投光位置と、前記投光装置による投光方向の中心軸に垂直な投光平面における前記第１の投光点および前記第２の投光点のそれぞれの位置とに基づいて、前記撮像画像における前記第１の投光点の位置が前記目標投光位置に近づくように前記投光平面における前記第１の投光点の位置を補正する補正値を演算し、
前記投光装置による前記第１の投光点の投光方向を制御して、前記投光平面における前記第１の投光点の位置を前記補正値に基づいて変化させる、
処理を実行させることを特徴とする投光制御プログラム。
【０１１０】
（付記２）  前記補正値は、前記投光平面における前記第１の投光点の補正方向を示す補正ベクトルとして出力され、
前記補正ベクトルは、前記撮像画像における前記第１の投光点の位置と前記第２の投光点のそれぞれの位置との接続線に沿った複数のベクトルと、前記撮像画像における前記第１の投光点の位置と前記目標投光位置との接続線に沿ったベクトルと、前記投光平面における前記第１の投光点の位置と前記第２の投光点のそれぞれの位置との接続線に沿った複数のベクトルとを基に演算される、
ことを特徴とする付記１記載の投光制御プログラム。
【０１１１】
（付記３）  前記撮像画像における前記第１の投光点の位置と前記第２の投光点のうち一の投光点の位置との接続線に沿った単位ベクトルをＡとし、前記撮像画像における前記第１の投光点の位置と前記第２の投光点のうち前記一の投光点以外の他の投光点の位置との接続線に沿った単位ベクトルをＢとし、前記撮像画像における前記第１の投光点の位置と前記目標投光位置とを接続して生成されるベクトルをｃとし、前記投光平面における前記第１の投光点の位置と前記投光平面における前記一の投光点の位置との接続線に沿った単位ベクトルをＡ’とし、前記投光平面における前記第１の投光点の位置と前記他の投光点の位置との接続線に沿った単位ベクトルをＢ’とし、前記補正ベクトルをｃ’とすると、前記補正ベクトルｃ’は式（１）によって演算されることを特徴とする付記２記載の投光制御プログラム。
ｃ’＝（ｃ・Ａ）・Ａ’＋（ｃ・Ｂ）・Ｂ’                            ・・・（１）
（付記４）  前記投光装置を制御して、前記投光平面における前記第１の投光点の位置を、演算された前記補正ベクトルに従って変化させた後、位置変化後の前記第１の投光点の前記撮像画像における位置と前記目標投光位置との距離が、位置変化前の前記第１の投光点の前記撮像画像における位置と前記目標投光位置との距離より大きい場合には、前記投光装置を制御して、前記投光平面における前記第１の投光点の位置を、位置変化前の前記第１の投光点の位置を前記補正ベクトルの大きさを減少させたベクトルに従って移動した位置に変化させることを特徴とする付記２または３記載の投光制御プログラム。
【０１１２】
（付記５）  前記補正値は、前記補正ベクトルに所定の定数を乗算したベクトルとして出力されることを特徴とする付記２または３記載の投光制御プログラム。
（付記６）  前記定数は、０より大きく１以下の値に設定されることを特徴とする付記４記載の投光制御プログラム。
【０１１３】
（付記７）  前記投光装置を制御して、前記投光平面における前記第１の投光点の位置を前記補正値に基づいて変化させるとともに、前記投光平面における前記第２の投光点の位置を前記補正値に基づいて変化させ、
位置変化後の前記第２の投光点が、前記被写体を撮像した前記撮像画像に映っていない場合には、前記投光装置を制御して、前記投光平面における前記第２の投光点の位置を、前記第１の投光点の位置を中心として回転させることを特徴とする付記１記載の投光制御プログラム。
【０１１４】
（付記８）  投光装置から被写体に投光された第１の投光点および複数の第２の投光点のそれぞれについての、前記被写体を撮像した撮像画像における位置と、前記撮像画像における前記第１の投光点の目標投光位置と、前記投光装置による投光方向の中心軸に垂直な投光平面における前記第１の投光点および前記第２の投光点のそれぞれの位置とに基づいて、前記撮像画像における前記第１の投光点の位置が前記目標投光位置に近づくように前記投光平面における前記第１の投光点の位置を補正する補正値を演算する補正値演算部と、
前記投光装置による前記第１の投光点の投光方向を制御して、前記投光平面における前記第１の投光点の位置を前記補正値に基づいて変化させる投光位置補正部と、
を有することを特徴とする投光制御装置。
【０１１５】
（付記９）  投光制御装置が、
投光装置から被写体に投光された第１の投光点および複数の第２の投光点のそれぞれについての、前記被写体を撮像した撮像画像における位置と、前記撮像画像における前記第１の投光点の目標投光位置と、前記投光装置による投光方向の中心軸に垂直な投光平面における前記第１の投光点および前記第２の投光点のそれぞれの位置とに基づいて、前記撮像画像における前記第１の投光点の位置が前記目標投光位置に近づくように前記投光平面における前記第１の投光点の位置を補正する補正値を演算し、
前記投光装置による前記第１の投光点の投光方向を制御して、前記投光平面における前記第１の投光点の位置を前記補正値に基づいて変化させる、
ことを特徴とする投光制御方法。
【符号の説明】
【０１１６】
１０  投光制御装置
１１  補正値演算部
１２  投光位置補正部
２０  被写体
２１〜２３  投光点
３１  投光装置
３２  撮像装置
４１  表示装置
４２  入力装置
【図１】
2011118713.tif 000003
【図２】
2011118713.tif 000004
【図３】
2011118713.tif 000005
【図４】
2011118713.tif 000006
【図５】
2011118713.tif 000007
【図６】
2011118713.tif 000008
【図７】
2011118713.tif 000009
【図８】
2011118713.tif 000010
【図９】
2011118713.tif 000011
【図１０】
2011118713.tif 000012