(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024141271
(43)【公開日】2024-10-10
(54)【発明の名称】情報処理装置、及びキャリブレーション方法
(51)【国際特許分類】
G06F 3/01 20060101AFI20241003BHJP
G06F 3/0346 20130101ALI20241003BHJP
【FI】
G06F3/01 570
G06F3/0346 421
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2023052817
(22)【出願日】2023-03-29
(71)【出願人】
【識別番号】322003857
【氏名又は名称】パナソニックオートモーティブシステムズ株式会社
(74)【代理人】
【識別番号】110002147
【氏名又は名称】弁理士法人酒井国際特許事務所
(72)【発明者】
【氏名】秦野 峻
【テーマコード(参考)】
5B087
5E555
【Fターム(参考)】
5B087AA07
5B087AB09
5B087AD01
5B087BC32
5E555AA15
5E555BA02
5E555BB02
5E555BC04
5E555CA41
5E555CA42
5E555CB66
5E555CC05
5E555FA00
(57)【要約】
【課題】動作が行われた位置と、操作対象の位置との位置関係を設定することができる情報処理装置、及びキャリブレーション方法を提供する。
【解決手段】本開示に係る情報処理装置は、操作者による動作に基づいて表示部に対する操作を受け付ける情報処理装置であって、抽出部と、設定部と、を備える。前記抽出部は、センサにより検出された前記操作者の動作に基づいて、前記操作者から前記表示部までの空間から複数の座標を抽出する。前記設定部は、前記抽出部により抽出された複数の座標に基づいて、前記操作に応じた前記表示部上の座標を特定するためのキャリブレーションを実行する。
【選択図】
図4
【特許請求の範囲】
【請求項1】
操作者による動作に基づいて表示部に対する操作を受け付ける情報処理装置であって、
センサにより検出された前記操作者の動作に基づいて、前記操作者から前記表示部までの空間から複数の座標を抽出する抽出部と、
前記抽出部により抽出された複数の座標に基づいて、前記操作に応じた前記表示部上の座標を特定するためのキャリブレーションを実行する設定部と、
を備える情報処理装置。
【請求項2】
前記抽出部は、前記表示部の特徴点を指し示す複数の動作に基づいて、前記特徴点ごとに、前記表示部の表示面に対して略垂直な方向に、距離が異なる複数の前記座標を抽出し、
前記設定部は、前記特徴点と当該特徴点に対応する複数の座標とを通過するベクトルであって、前記特徴点ごとに算出した前記ベクトルが近接する点を、前記操作者の目の位置として設定する、
請求項1に記載の情報処理装置。
【請求項3】
前記抽出部は、前記表示部の特徴点を指し示す複数の動作に基づいて、前記特徴点ごとに、前記表示部の表示面と略平行な方向に、距離が異なる複数の前記座標を抽出し、
前記設定部は、前記座標と、前記操作者の目とを通過するベクトルであって、前記特徴点ごとに算出した前記ベクトルが近接する点により特定される前記表示部の位置を設定する、
請求項1に記載の情報処理装置。
【請求項4】
前記表示部の位置と、前記操作者の目と、前記動作により抽出される座標とに基づいて、前記操作に応じた前記表示部上の座標を特定する特定部を更に備える、
請求項3に記載の情報処理装置。
【請求項5】
前記抽出部は、第1の四角形と、前記第1の四角形よりも操作者側に前記第1の四角形よりも小さい第2の四角形と、のそれぞれの頂点を指定する前記動作に基づいて、複数の前記座標を抽出し、
前記設定部は、前記第1の四角形の頂点と、当該頂点に対応する前記第2の四角形の頂点とを通過するベクトルにより形成される四角錐内に、前記動作に応じた操作を受け付ける入力領域を設定する、
請求項1に記載の情報処理装置。
【請求項6】
前記抽出部は、前記表示部の表示面と略平行な四角形の頂点を指定する前記動作に基づいて、複数の前記座標を抽出し、
前記設定部は、前記表示部の表示面から前記頂点を通過するベクトルにより形成される四角柱内に、前記動作に応じた操作を受け付ける入力領域を設定する、
請求項1に記載の情報処理装置。
【請求項7】
前記センサにより検出された前記操作者の動作に基づいて、前記操作者から前記表示部までの空間から座標を算出する第1算出部と、
前記設定部により設定された情報と、前記第1算出部により算出された座標とに基づいて、前記操作に応じた前記表示部上の座標を算出する第2算出部と、
前記第2算出部により算出された前記表示部上の座標に対して操作を実行する実行部と、
前記実行部により実行された操作内容に応じた画像を前記表示部に表示する表示制御部と、を更に備える、
請求項1から請求項6の何れか一項に記載の情報処理装置。
【請求項8】
操作者による動作に基づいて表示部に対する操作を受け付ける情報処理装置のキャリブレーション方法であって、
センサにより検出された前記操作者の動作に基づいて、前記操作者から前記表示部までの空間から複数の座標を抽出し、
抽出した複数の座標に基づいて、前記操作に応じた前記表示部上の座標を特定するためのキャリブレーションを実行する、
ことを含むキャリブレーション方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、及びキャリブレーション方法に関する。
【背景技術】
【0002】
従来、センサにより操作者の動作を検出することで、操作者が操作対象に手を触れることなく、操作を受け付ける情報処理装置が知られている。情報処理装置は、動作が行われた位置と、操作対象の位置との位置関係に基づいて、操作対象上の何れの座標に対する操作であるのかを特定する。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、動作が行われた位置と、操作対象の位置との位置関係が正確でない場合、情報処理装置は、操作者が意図した位置に対する操作を受け付けることができない。
【0005】
本開示は、動作が行われた位置と、操作対象の位置との位置関係を設定可能な情報処理装置、及びキャリブレーション方法を提供する。
【課題を解決するための手段】
【0006】
本開示に係る情報処理装置は、操作者による動作に基づいて表示部に対する操作を受け付ける情報処理装置であって、抽出部と、設定部と、を備える。前記抽出部は、センサにより検出された前記操作者の動作に基づいて、前記操作者から前記表示部までの空間から複数の座標を抽出する。前記設定部は、前記抽出部により抽出された複数の座標に基づいて、前記操作に応じた前記表示部上の座標を特定するためのキャリブレーションを実行する。
【発明の効果】
【0007】
本開示に係る情報処理装置、及びキャリブレーション方法によれば、動作が行われた位置と、操作対象の位置との位置関係を設定することができる。
【図面の簡単な説明】
【0008】
【
図1】
図1は、第1の実施形態に係る情報処理装置の一例を示す図である。
【
図2】
図2は、従来の情報処理装置の一例を示す図である。
【
図3】
図3は、第1の実施形態に係る情報処理装置のハードウェア構成の一例を示す図である。
【
図4】
図4は、第1の実施形態に係る情報処理装置の機能構成の一例を示す図である。
【
図5】
図5は、操作者の目の位置を特定する特定方法の一例を示す図である。
【
図6】
図6は、第1の実施形態に係る情報処理装置が実行するキャリブレーション処理の一例を示すフローチャートである。
【
図7】
図7は、従来の情報処理装置の一例を示す図である。
【
図8】
図8は、第2の実施形態に係る情報処理装置の機能構成の一例を示す図である。
【
図9】
図9は、表示部の位置を特定する特定方法の一例を示す図である。
【
図10】
図10は、座標を補正する前の状態の一例を示す図である。
【
図11】
図11は、座標を補正した後の状態の一例を示す図である。
【
図12】
図12は、第2の実施形態に係る情報処理装置が実行するキャリブレーション処理の一例を示すフローチャートである。
【
図13】
図13は、第2の実施形態に係る情報処理装置が実行する補正処理の一例を示すフローチャートである。
【
図14】
図14は、第3の実施形態に係る情報処理装置の一例を示す図である。
【
図15】
図15は、従来の情報処理装置の一例を示す図である。
【
図16】
図16は、第3の実施形態に係る情報処理装置の機能構成の一例を示す図である。
【
図17】
図17は、入力領域を特定する特定方法の一例を示す図である。
【
図18】
図18は、第3の実施形態に係る情報処理装置が実行するキャリブレーション処理の一例を示すフローチャートである。
【
図19】
図19は、第3の実施形態に係る情報処理装置が実行する補正処理の一例を示すフローチャートである。
【
図20】
図20は、入力領域を特定する特定方法の一例を示す図である。
【
図21】
図21は、第4の実施形態に係る情報処理装置の一例を示す図である。
【
図22】
図22は、第3の実施形態に係る情報処理装置の機能構成の一例を示す図である。
【発明を実施するための形態】
【0009】
以下、図面を参照しながら、本開示に係る情報処理装置、及びキャリブレーション方法の実施形態について説明する。
【0010】
(第1の実施形態)
図1は、第1の実施形態に係る情報処理装置1の一例を示す図である。情報処理装置1は、操作者による動作に基づいて操作対象に対する操作を受け付ける装置である。情報処理装置1は、制御装置10(
図3参照)、センサ20、及び表示部30を備える。
【0011】
制御装置10は、情報処理装置1を制御する装置である。表示部30は、操作者の操作対象となる操作対象装置である。例えば、表示部30は、液晶ディスプレイや有機EL(Electro Luminescence)などの表示装置である。
【0012】
センサ20は、操作者の動作を検出する装置である。例えば、センサ20は、可視光により撮像するカメラや、赤外光の反射時間により被写体までの距離を示す距離画像を撮像するToF(Time Of Flight)センサなどの撮像装置である。センサ20は、表示部30の前方の領域を撮像するように設置される。センサ20は、表示部30の前方の領域を撮像した画像を制御装置10に出力する。センサ20は、カメラやToFセンサに限らず、他の方法により操作者の動作を検出するものであってもよい。
【0013】
本実施形態では、鉛直方向であって表示部30の高さ方向をY軸方向と定義する。また、Y軸方向と直交する方向であって表示部30の幅方向をX軸方向と定義する。また、Y軸方向及びX軸方向と直行する方向であって表示部30の表示面に対して垂直な方向をZ軸方向と定義する。
【0014】
次に、情報処理装置1が操作を受け付ける手順の概要を説明する。
【0015】
例えば、センサ20は、表示部30の前方の空間で、操作者が行った指差し操作の指先位置Fを検出する。ここで、指先位置Fとは、指差し操作を行った時の操作者の指先の位置である。制御装置10は、センサ20による検出結果に基づいて、表示部30の前方の空間における指差し操作の指先位置Fの3D座標を特定する。また、制御装置10は、指差し操作の指先位置Fの位置と、表示部30の位置との位置関係に基づいて、指先位置Fに対応する表示部30上の操作位置C1を特定する。操作位置C1とは、表示部30上において、タッチ、フリック、ドラッグなどの操作が受け付けられた位置である。そして、制御装置10は、操作位置C1における指差し操作に対応する処理を実行する。
【0016】
ここで、
図2は、従来の情報処理装置1000の一例を示す図である。従来の情報処理装置1000は、センサ2000と表示部3000とを備える。
図2に示すように、センサ2000は、表示部3000の前方の領域を撮像範囲P1に含めるように設置される。センサ2000は、操作者の目と、指差し操作の指先位置Fとを検出する。従来の情報処理装置1000は、操作者の目と、指先位置Fとを繋ぐベクトルを算出する。そして、従来の情報処理装置1000は、ベクトルと表示部3000との交点を操作位置C1に特定する。
【0017】
しかしながら、センサ2000は、操作者の目を検出できない場合がある。例えば、操作者の腕は撮像範囲P1の内側に存在するが、操作者の目は、撮像範囲P1の外側に存在する場合、センサ2000は、指先位置Fを検出することはできるが、操作者の目を検出できない。この場合、従来の情報処理装置1000は、ベクトルを算出することができないため、操作位置C1を特定することができない。
【0018】
第1の実施形態に係る情報処理装置1は、キャリブレーションを実行することで、操作者の目を検出できない場合であっても操作位置C1を特定することができる。以下にて、より詳細に説明する。
【0019】
図3は、第1の実施形態に係る情報処理装置1のハードウェア構成の一例を示す図である。制御装置10は、制御部11、記憶部12、第1接続インタフェース13、及び第2接続インタフェース14を備える。
【0020】
制御部11は、コンピュータ等で構成され、ハードウェアとソフトウェアが協働することにより、各種処理を制御する。例えば、制御部11は、プロセッサ、RAM(Random Access Memory)、及びメモリを備える。
【0021】
プロセッサは、例えば、コンピュータプログラムを実行可能なCPU(Central Processing Unit)である。なお、プロセッサは、CPUに限定されない。例えば、プロセッサは、DSP(Digital Signal Processor)であってもよいし、他のプロセッサであってもよい。
【0022】
RAMは、キャッシュまたはバッファなどとして使用される揮発性メモリである。メモリは、例えば、コンピュータプログラムを含む各種情報を記憶する不揮発性メモリである。プロセッサは、特定のコンピュータプログラムをメモリや記憶部12から読み出してRAMに展開することによって、各種機能を実現する。
【0023】
記憶部12は、フラッシュメモリや、HDD(Hard Disk Drive)や、SSD(Solid State Drive)などの記憶装置である。例えば、記憶部12は、プログラムや、各種設定や、各種情報を記憶する。
【0024】
第1接続インタフェース13は、センサ20と接続するためのインタフェースである。
【0025】
第2接続インタフェース14は、表示部30と接続するためのインタフェースである。
【0026】
次に、情報処理装置1が有している機能について説明する。
【0027】
図4は、第1の実施形態に係る情報処理装置1の機能構成の一例を示す図である。制御装置10の制御部11は、特定のコンピュータプログラムを実行することによって、各種機能を実現する。更に詳しくは、制御部11は、画像取得部110、3D座標演算部111、キャリブレーション補正値設定部112、タッチ判定面設定部113、2D座標変換部114、判定部115、機能実行部116、及び表示出力部117を備える。
【0028】
画像取得部110は、センサ20により検出された情報を取得する。すなわち、画像取得部110は、センサ20により撮像された画像を取得する。
【0029】
3D座標演算部111は、基準座標情報121に基づいて、画像取得部110により取得された画像からランドマークの3D座標を抽出する。ランドマークとは、操作者による動作に基づいた操作における特徴的な物体である。例えば、ランドマークは、目や指先である。また、目は、右目であってもよいし、左目であってもよいし、右目と左目と間であってもよいし、予め設定された利き目であってもよい。すなわち、3D座標演算部111は、センサ20により検出された操作者の動作に基づいて、操作者から表示部30までの空間から複数の3D座標を抽出する。3D座標演算部111は、抽出部及び第1算出部の一例である。
【0030】
さらに詳しくは、3D座標演算部111は、基準座標情報121に基づいて、画像取得部110により取得された画像から操作者の目や指先の3D座標を抽出する。基準座標情報121とは、センサ20が設置された位置を示す3D座標、及びセンサ20の取り付け角度を示す情報などである。
【0031】
例えば、3D座標演算部111は、操作に応じた表示部30上の座標を特定するためのキャリブレーションとして、表示部30の特徴点を指し示す複数の動作に基づいて、特徴点ごとに、表示部30の表示面に対して略垂直な方向に、距離が異なる複数の3D座標を抽出する。ここで、特徴点とは、表示部30の特徴的な点である。例えば、特徴点とは、表示部30の四隅の何れかの隅である。なお、特徴点は、表示部30の隅に限らず、他の点であってもよい。
【0032】
キャリブレーション補正値設定部112は、操作者の操作により指定された表示部30上の座標を特定するためのキャリブレーションを実行する。キャリブレーション補正値設定部112は、設定部の一例である。キャリブレーション補正値設定部112は、キャリブレーションを実行することにより、操作者の操作により指定された表示部30上の座標を特定するための基準を取得する。そして、キャリブレーション補正値設定部112は、キャリブレーションにより取得した基準を設定する。
【0033】
さらに詳しくは、キャリブレーション補正値設定部112は、操作者の操作により指定された表示部30上の2D座標を特定するための基準として、操作者の目の位置を示す3D座標を設定する。このように、キャリブレーション補正値設定部112は、操作者の目の位置を示す3D座標を設定することで、画像取得部110により取得された画像に操作者の目が含まれていなくても、操作位置C1を特定することができる。
【0034】
図5は、操作者の目の位置を特定する特定方法の一例を示す図である。操作者は、表示部30の四隅のうちの一つの隅を指し示す指差し操作を少なくとも2回行う。この時、操作者は、1回目と2回目とでは、表示部30の表示面と垂直なZ軸方向の異なる位置で指差し操作を行う。これにより、情報処理装置1は、表示部30の四隅のうちの一つの隅を指し示す指先位置Fの3D座標を少なくとも2つ取得する。
【0035】
例えば、操作者は、表示部30の左上の隅を指し示す場合に、第1指先位置F1と第2指先位置F2とで指差し操作を行う。また、操作者は、表示部30の左下の隅を指し示す場合に、第3指先位置F3と第4指先位置F4とで指差し操作を行う。また、操作者は、表示部30の右上の隅を指し示す場合に、第5指先位置F5と第6指先位置F6とで指差し操作を行う。また、操作者は、表示部30の右下の隅を指し示す場合に、第7指先位置F7と第8指先位置F8とで指差し操作を行う。
【0036】
キャリブレーション補正値設定部112は、表示部30の隅ごとに、それぞれの指先位置Fの3D座標を関連付ける。すなわち、キャリブレーション補正値設定部112は、第1指先位置F1と第2指先位置F2とを関連付ける。また、キャリブレーション補正値設定部112は、第3指先位置F3と第4指先位置F4とを関連付ける。また、キャリブレーション補正値設定部112は、第5指先位置F5と第6指先位置F6とを関連付ける。また、キャリブレーション補正値設定部112は、第7指先位置F7と第8指先位置F8とを関連付ける。
【0037】
キャリブレーション補正値設定部112は、表示部30の隅ごとに、それぞれの指先位置Fを通過するベクトルを算出する。すなわち、キャリブレーション補正値設定部112は、第1指先位置F1と第2指先位置F2とを通過する第1ベクトルV1を算出する。また、キャリブレーション補正値設定部112は、第3指先位置F3と第4指先位置F4とを通過する第2ベクトルV2を算出する。また、キャリブレーション補正値設定部112は、第5指先位置F5と第6指先位置F6とを通過する第3ベクトルV3を算出する。また、キャリブレーション補正値設定部112は、第7指先位置F7と第8指先位置F8とを通過する第4ベクトルV4を算出する。
【0038】
また、キャリブレーション補正値設定部112は、第1ベクトルV1と、第2ベクトルV2と、第3ベクトルV3と、第4ベクトルV4とが近接する点に操作者の目があると判定する。例えば、キャリブレーション補正値設定部112は、第1ベクトルV1と、第2ベクトルV2と、第3ベクトルV3と、第4ベクトルV4との交点に操作者の目があると判定する。また、キャリブレーション補正値設定部112は、第1ベクトルV1と、第2ベクトルV2と、第3ベクトルV3と、第4ベクトルV4とが交差しない場合には、それぞれのベクトルに最も近くなる点に操作者の目があると判定する。
【0039】
このように、キャリブレーション補正値設定部112は、表示部30の隅とこの隅に対応する複数の3D座標とを通過するベクトルであって、表示部30の隅ごとに算出したベクトルが近接する点を、操作者の目の位置として設定する。そして、キャリブレーション補正値設定部112は、操作者の目があると判定した点の3D座標をキャリブレーション補正値情報120として記憶部12に記憶する。なお、キャリブレーション補正値設定部112は、ベクトルが交差する点を操作者の目の3D座標に設定するため、少なくとも2つベクトルを算出すればよい。
【0040】
タッチ判定面設定部113は、タッチ操作を受け付ける場合に、タッチされたか否かを判定するためのタッチ判定平面を、表示部30の前方の空間上に設定する。タッチ判定面設定部113は、タッチ判定平面の設定された位置を示す3D座標を示すタッチ判定面情報122を記憶部12に記憶する。
【0041】
キャリブレーション後において、2D座標変換部114は、キャリブレーション補正値情報120に基づいて、3D座標演算部111により抽出されたランドマークの3D座標に対応する、表示部30上の2D座標に変換する。言い換えると、2D座標変換部114は、キャリブレーション補正値設定部112により設定されたキャリブレーション補正値情報120と、3D座標演算部111により算出されたランドマークの3D座標とに基づいて、操作に応じた表示部30上の座標を算出する。2D座標変換部114は、第2算出部の一例である。
【0042】
さらに詳しくは、2D座標変換部114は、キャリブレーション補正値設定部112により特定された操作者の目の3D座標と、3D座標演算部111により抽出された操作者の指先位置Fの3D座標とを通過するベクトルを算出する。また、2D座標変換部114は、ベクトルと表示部30の表示面との交点を算出する。すなわち、2D座標変換部114は、ベクトルと表示部30との交点におけるX軸方向及びY軸方向の座標を抽出する。これにより、2D座標変換部114は、表示部30に対して入力された操作の2D座標を取得する。なお、2D座標変換部114は、キャリブレーション補正値設定部112により特定された操作者の目の3D座標と、3D座標演算部111により抽出された操作者の指先位置Fの3D座標とを通過するベクトルが表示部30の外側に通過する場合、表示部30に最も近くなる点を算出してもよい。
【0043】
判定部115は、操作者により入力された操作内容を判定する。例えば、操作内容とは、表示部30に表示された画像に触れるタッチ操作、画像をはじくフリック操作、画像を移動させるドラッグ操作などの操作の内容である。例えば、判定部115は、3D座標演算部111により検出された操作者の指先位置Fの3D座標に経時的変化に基づいて、何れの操作内容が入力されたのかを判定する。
【0044】
機能実行部116は、判定部115により判定された操作内容を実行する。言い換えると、機能実行部116は、2D座標変換部114により算出された表示部30上の2D座標に対して、判定部115により判定された操作内容の操作を実行する。機能実行部116は、実行部の一例である。
【0045】
なお、判定部115及び機能実行部116は、表示部30の外側に対する操作が行われた場合に、如何なる処理を実行してもよい。例えば、表示部30の外側に対する操作とは、表示部30が表示している物体を表示部30の表示領域の外側に移動させる操作や、操作位置C1が表示部30の表示領域の外側となる操作や、表示部30の表示領域の外側の物体を指し示す操作などである。
【0046】
例えば、判定部115及び機能実行部116は、ドラッグされた物体を表示部30の外側に移動させる操作を受け付けた場合に、表示部30の表示領域の枠よりも外側には物体を移動させない。または、判定部115及び機能実行部116は、ドラッグされた物体を表示部30の外側に移動させる操作を受け付けた場合に、表示部30の表示領域の外側に物体を移動させてもよい。
【0047】
例えば、判定部115及び機能実行部116は、表示部30の外側に物体を移動させる操作を受け付けた場合に、表示部30の表示領域の枠においてドラッグしている物体をリリースさせる。
【0048】
例えば、判定部115及び機能実行部116は、表示部30の外側を指し示す操作を受け付けた場合に、表示部30の外側を指し示す操作に対応付けられた処理を実行してもよい。例えば、表示部30の外側を指し示す操作と、メニュー画像を表示させる処理とは対応付けられる。このような状態において、情報処理装置1は、表示部30の外側を指し示す操作を受け付けた場合に、メニュー画像を表示してもよい。
【0049】
表示出力部117は、機能実行部116により実行された操作内容に応じた画像を表示部30に出力する。表示出力部117は、表示制御部の一例である。すなわち、表示出力部117は、画像を表示部30に表示する。
【0050】
次に、情報処理装置1が実行するキャリブレーション処理について説明する。
【0051】
図6は、第1の実施形態に係る情報処理装置1が実行するキャリブレーション処理の一例を示すフローチャートである。
【0052】
制御部11は、キャリブレーションを実行するキャリブレーションモードであるか否かを判定する(ステップS1)。キャリブレーションモードとは、操作に応じた表示部30上の座標を特定するためのキャリブレーションを実行するモードである。
【0053】
3D座標演算部111は、画像取得部110により取得された画像から、表示部30の四隅のうちの一つの隅を指し示す指差し操作における指先位置Fの3D座標を取得したか否かを判定する(ステップS2)。指先位置Fの3D座標を取得しない場合に(ステップS2;No)、3D座標演算部111は、ステップS2で待機する。
【0054】
指先位置Fの3D座標を取得した場合に(ステップS2;Yes)、3D座標演算部111は、指先位置Fの3D座標を登録する(ステップS3)。
【0055】
制御部11は、キャリブレーションが終了したか否かを判定する(ステップS4)。さらに詳しくは、制御部11は、予め定められた3D座標が登録された場合に、キャリブレーションを終了すると判定する。例えば、制御部11は、2箇所の3D座標を通過するベクトルが少なくとも2つ算出された場合に、キャリブレーションを終了すると判定する。
【0056】
キャリブレーションが終了していない場合に(ステップS4;No)、制御部11は、ステップS2に移行する。一方、キャリブレーションが終了した場合に(ステップS4;Yes)、キャリブレーション補正値設定部112は、少なくとも2つのベクトルにより操作者の目の位置を特定する(ステップS5)。すなわち、キャリブレーション補正値設定部112は、操作者の目の位置を示すキャリブレーション補正値情報120を記憶部12に記憶する。
【0057】
以上により、情報処理装置1は、キャリブレーション処理を終了する。
【0058】
以上のように、第1の実施形態に係る情報処理装置1は、表示部30の四隅の何れか一つの隅を指し示す指差し操作により、指先位置Fの3D座標を取得する。表示部30の隅を指し示す指差し操作を、情報処理装置1は、表示部30の表示面に対して略垂直な方向において異なる位置に少なくとも2箇所の3D座標を取得する。情報処理装置1は、1回目の3D座標と、2回目の3D座標とを通過するベクトルを算出する。
【0059】
さらに、情報処理装置1は、ベクトルの算出を少なくとも2つの隅に対して行う。ここで、操作者は、表示部30の隅を指し示している。すなわち、操作者の目は、1つ目のベクトル上であって、且つ2つ目のベクトル上に存在しているものと考えられる。よって、情報処理装置1は、各ベクトルの交点または各ベクトルに最も接近する点に、操作者の目が存在していると特定することができる。
【0060】
したがって、情報処理装置1は、センサ20により取得された画像から操作者の目を検出することができなくても、キャリブレーションにより特定した操作者の目の3D座標と、指先位置Fとに基づいて操作位置C1を特定することができる。すなわち、情報処理装置1は、動作が行われた位置と、操作対象の位置との位置関係を設定することができる。
【0061】
(第2の実施形態)
図7は、従来の情報処理装置1000の一例を示す図である。センサ2000と表示部3000との位置関係が変化し得る場合、情報処理装置1000は、指差し操作の指先位置Fに対する操作位置C1を正確に特定することができない場合がある。
【0062】
ここで、情報処理装置1000には、表示部3000は鉛直に設置されていると設定されているが、実際には傾いている場合を想定する。操作者は、傾いている表示部3000に対して指差し操作などを行う。情報処理装置1000は、操作者の指差し操作に対して、表示部3000が鉛直に設置されていることを前提に、操作位置C1を特定する。このような差異が発生する場合に、情報処理装置1000は、正確な操作位置C1を特定することができない。
【0063】
第2の実施形態に係る情報処理装置1aは、表示部30の位置及び姿勢を特定する。これにより、情報処理装置1aは、センサ20と表示部30との位置関係が変化し得るとしても、正確な操作位置C1を特定することができる。
【0064】
図8は、第2の実施形態に係る情報処理装置1aの機能構成の一例を示す図である。制御部11aは、画像取得部110、3D座標演算部111、キャリブレーション補正値設定部112a、タッチ判定面設定部113、2D座標変換部114a、判定部115、機能実行部116及び、表示出力部117を備える。
【0065】
3D座標演算部111は、表示部30の隅を指し示す複数の動作に基づいて、表示部30の隅ごとに、表示部30の表示面と略平行な方向に、距離が異なる複数の座標を抽出する。
【0066】
キャリブレーション補正値設定部112aは、操作者の操作により指定された表示部30上の2D座標を特定するための基準として、表示部30の四隅のそれぞれの3D座標を設定する。すなわち、キャリブレーション補正値設定部112aは、表示部30の四隅のそれぞれの3D座標を示すキャリブレーション補正値情報120aを記憶部12に記憶する。これにより、キャリブレーション補正値設定部112aは、表示部30の位置及び姿勢を特定する。
【0067】
図9は、表示部30の位置を特定する特定方法の一例を示す図である。操作者は、第1の頭部位置において、表示部30の四隅のうちの一つの隅を指し示す指差し操作を行う。キャリブレーション補正値設定部112aは、指差し操作が行われた第1指先位置F11の3D座標と、指差し操作が行われた時の操作者の目の3D座標とを取得する。そして、キャリブレーション補正値設定部112aは、第1指先位置F11の3D座標と、操作者の目の3D座標とを通過する第1ベクトルV11を算出する。
【0068】
なお、キャリブレーション補正値設定部112aは、第1の実施形態と同様に少なくとも2つの異なる指先位置Fに基づいて、第1ベクトルV11又は第2ベクトルV12を算出してもよい。この場合、キャリブレーション補正値設定部112aは、操作者の目の3D座標を取得することができない場合であっても、第1ベクトルV11や第2ベクトルV12などのベクトルを算出することができる。
【0069】
次に、操作者は、第1の頭部位置から、表示部30の表示面と略平行なX軸方向に離れた第2の頭部位置に頭部を移動する。操作者は、第2の頭部位置において、第1の頭部位置と同じ、表示部30の隅を指し示す指差し操作を行う。キャリブレーション補正値設定部112aは、指差し操作が行われた第2指先位置F12の3D座標と、指差し操作が行われた時の操作者の目の3D座標とを取得する。そして、キャリブレーション補正値設定部112aは、第2指先位置F12の3D座標と、操作者の目の3D座標とを通過する第2ベクトルV12を算出する。
【0070】
キャリブレーション補正値設定部112aは、第1ベクトルV11と、第2ベクトルV12とが最も近接する点に表示部30の隅があると判定する。例えば、キャリブレーション補正値設定部112aは、第1ベクトルV11と、第2ベクトルV12との交点に表示部30の隅があると判定する。なお、キャリブレーション補正値設定部112aは、第1ベクトルV11と、第2ベクトルV12とが交差しない場合、それぞれのベクトルに最も近くなる点に表示部30の隅があると判定する。このように、キャリブレーション補正値設定部112aは、指差し操作が行われた指先位置Fの3D座標と、操作者の目の3D座標とを通過するベクトルであって、表示部30の隅ごとに算出したベクトルが近接する点により特定される表示部30の位置を設定する。
【0071】
キャリブレーション補正値設定部112aは、上述した処理を表示部30の全ての隅に対して実行する。これにより、キャリブレーション補正値設定部112aは、表示部30の4隅の位置を特定することができる。したがって、キャリブレーション補正値設定部112aは、表示部30の位置及び姿勢を特定することができる。そして、キャリブレーション補正値設定部112aは、表示部30の4隅のそれぞれの3D座標を示すキャリブレーション補正値情報120aを記憶部12に記憶する。
【0072】
2D座標変換部114aは、キャリブレーション補正値設定部112aに基づいて、3D座標演算部111により抽出されたランドマークの3D座標に対応する、表示部30上の2D座標を特定する。
【0073】
ここで、キャリブレーション補正値設定部112aは、表示部30の四隅の3D座標を示している。したがって、キャリブレーション補正値設定部112aは、表示部30の四隅を示す3D座標が繋げられた場合、表示部30の同様の四角形になるはずである。
【0074】
しかしながら、キャリブレーション補正値設定部112aは、歪んだ四角形を示してしまう可能性が高い。例えば、センサ20の真正面で指差し操作が行われていない場合、センサ20は、表示部30の隅を指し示す位置から僅かにずれた位置を検出してしまう。また、センサ20から指先の位置までの距離によって、キャリブレーション補正値設定部112aが示す四角形の大きさの比率は異なる。
【0075】
図10は、座標を補正する前の状態の一例を示す図である。
図10に示すように、キャリブレーション補正値設定部112aは、歪んだ四角形を示してしまう。表示部30の四隅を指し示す指先位置Fの3D座標を繋げた四角形が歪んでいる場合、2D座標変換部114aは、操作位置C1を正確に特定することができない。2D座標変換部114aは、表示部30の四隅を指し示す指先位置Fの3D座標を繋げた四角形における操作位置C1が、歪みを正した四角形の何れの位置に相当するのかを特定する。
【0076】
図11は、座標を補正した後の状態の一例を示す図である。
図11に示すように、2D座標変換部114aは、指先位置Fの3D座標を表示部30の2D座標に変換する際に、歪みを正した2D座標となるように補正する。例えば、2D座標変換部114aは、射影変換により操作位置C1を特定する。さらに詳しくは、2D座標変換部114aは、射影変換の下記数式(1)及び数式(2)により操作位置C1を算出する。
【0077】
【0078】
数式(1)及び数式(2)のa0、b0、a1、b1、c1、a2、b2、c2は、パラメータを示す。
【0079】
このように、表示部30の四隅の位置を特定することにより、制御部11aは、自動的にキャリブレーションを実行することができる。さらに詳しくは、2D座標変換部114aは、表示部30の位置と、操作者の目と、指差し操作により抽出される3D座標とに基づいて、操作に応じた表示部30上の座標を特定する。2D座標変換部114aは、特定部の一例である。このように、表示部30の四隅の位置は特定済みのため、制御部11aは、操作者の指差し操作の指先位置F及び操作者の目の位置を通過するベクトルを算出することで、操作位置C1を特定することができる。
【0080】
次に、第2の実施形態に係る情報処理装置1aが実行するキャリブレーション処理について説明する。
【0081】
図12は、第2の実施形態に係る情報処理装置1aが実行するキャリブレーション処理の一例を示すフローチャートである。
【0082】
制御部11aは、キャリブレーションを実行するキャリブレーションモードであるか否かを判定する(ステップS11)。
【0083】
キャリブレーションモードの場合に(ステップS11;Yes)、3D座標演算部111は、画像取得部110により取得された画像から、表示部30の四隅のうちの一つの隅を指し示す指差し操作における指先位置Fの3D座標を取得したか否かを判定する(ステップS12)。指先位置Fの3D座標を取得しない場合に(ステップS12;No)、3D座標演算部111は、ステップS12で待機する。
【0084】
指先位置Fの3D座標を取得した場合に(ステップS12;Yes)、3D座標演算部111は、指先位置Fの3D座標を登録する(ステップS13)。
【0085】
3D座標演算部111は、表示部30の一つの隅のキャリブレーションが終了したか否かを判定する(ステップS14)。言い換えると、3D座標演算部111は、第1の頭部位置と第2の頭部位置とのそれぞれにおいて指先位置Fの3D座標を登録したか否かを判定する。表示部30の一つの隅のキャリブレーションが終了していない場合に(ステップS14;No)、3D座標演算部111は、ステップS12に移行する。
【0086】
表示部30の一つの隅のキャリブレーションが終了した場合に(ステップS14;Yes)、3D座標演算部111は、ステップS12に移行する。キャリブレーションが終了したか否かを判定する(ステップS15)。さらに詳しくは、3D座標演算部111は、表示部30の四隅の位置の登録が終了した場合に、キャリブレーションを終了すると判定する。
【0087】
キャリブレーションが終了していない場合に(ステップS15;No)、制御部11aは、ステップS12に移行する。一方、キャリブレーションが終了した場合に(ステップS15;Yes)、キャリブレーション補正値設定部112aは、表示部30の四隅の位置を特定する(ステップS16)。
【0088】
キャリブレーションモードではない場合に(ステップS11;No)、制御部11aは、操作者の目を追従して自動的にキャリブレーションを実行することができる(ステップS17)。言い換えると、制御部11aは、表示部30の四隅の位置と、操作者の目の位置と、操作者の指先位置Fとに基づいて、操作位置C1を特定することができる(ステップS17)。
【0089】
以上により、情報処理装置1aは、キャリブレーション処理を終了する。
【0090】
次に、第2の実施形態に係る情報処理装置1aが実行する補正処理について説明する。
【0091】
図13は、第2の実施形態に係る情報処理装置1aが実行する補正処理の一例を示すフローチャートである。補正処理は、キャリブレーション処理による検出した表示部30の四隅の3D座標の誤差を射影変換により補正する処理である。
【0092】
制御部11aは、表示部30の四隅の3D座標を特定済みであるか否かを判定する(ステップS21)。表示部30の四隅の3D座標を特定していない場合に(ステップS21;No)、制御部11aは、
図12に示すキャリブレーション処理を実行する(ステップS22)。
【0093】
表示部30の四隅の3D座標が特定済みの場合に(ステップS21;Yes)、3D座標演算部111は、操作者の指先位置Fの3D座標と、操作者の目の3D座標とを取得したか否かを判定する(ステップS23)。
【0094】
操作者の指先位置Fの3D座標と、操作者の目の3D座標とを取得していない場合に(ステップS23;No)、3D座標演算部111は、操作者の指先位置Fの3D座標と、操作者の目の3D座標とを取得するまでステップS23を繰り返す。
【0095】
操作者の指先位置Fの3D座標と、操作者の目の3D座標とを取得した場合に(ステップS23;Yes)、2D座標変換部114aは、操作者の指先位置Fの3D座標と、操作者の目の3D座標とを通過するベクトルを算出する(ステップS24)。
【0096】
2D座標変換部114aは、算出したベクトルと、表示部30の表示面との交点を算出する(ステップS25)。算出したベクトルと、表示部30の表示面とが交差しない場合、2D座標変換部114aは、算出したベクトルと、表示部30の表示面とが最も接近する点を算出する。
【0097】
2D座標変換部114aは、算出したベクトルと、表示部30の表示面との交点を示す2D座標を射影変換により補正する(ステップS26)。
【0098】
以上により、情報処理装置1aは、補正処理を終了する。
【0099】
以上のように、第2の実施形態に係る情報処理装置1aは、表示部30の隅を指し示す指差し操作の指先位置Fを取得する。また、情報処理装置1aは、指先位置Fと、指差し操作を行った時の操作者の目の3D座標とを通過するベクトルを算出する。操作者は、表示部30の隅を指し示す指差し操作を行っている。そのため、表示部30の隅は、指先位置Fと、指差し操作を行った時の操作者の目の3D座標とを通過するベクトル上に存在していると考えられる。
【0100】
また、情報処理装置1aは、先ほどと同一の隅について、表示部30の表示面と略平行なX軸方向に異なる位置で、表示部30の隅を指し示す指差し操作の指先位置Fを取得する。また、情報処理装置1aは、指先位置Fと、指差し操作を行った時の操作者の目の3D座標とを通過するベクトルを算出する。
【0101】
1回目と2回目とでは同一の隅を指し示しているため、操作者が指し示している表示部30の隅は、1つ目のベクトル上であって、且つ2つ目のベクトル上に存在しているものと考えられる。よって、情報処理装置1aは、各ベクトルの交点または各ベクトルに最も接近する点に、表示部30の隅が存在していると特定することができる。
【0102】
情報処理装置1aは、表示部30の四隅ごとに、上述の処理を実行する。これにより、情報処理装置1aは、表示部30の位置及び姿勢を特定することができる。すなわち、情報処理装置1aは、動作が行われた位置と、操作対象の位置との位置関係を設定することができる。
【0103】
(第3の実施形態)
図14は、第3の実施形態に係る情報処理装置1bの一例を示す図である。情報処理装置1bは、表示部30の前方に入力領域O1を形成する。入力領域O1は、表示部30に対して操作を入力する仮想的なタッチパッドである。
【0104】
情報処理装置1bは、入力領域O1がタッチされた場合に、入力領域O1のタッチされた2D座標に対応する表示部30の2D座標に対して、タッチする操作が入力されたものとして処理を実行する。
【0105】
図15は、従来の情報処理装置1000の一例を示す図である。センサ2000と表示部30との位置関係が変化し得る場合、センサ2000は、撮像方向の傾きが変化することがある。この場合、センサ2000が撮像する画像も傾くため、入力領域O1は、傾いてしまったり、形成されている位置が変化してしまったりすることがある。そして、入力領域O1が傾いていたり、形成されている位置が変化していたりすると、操作者は、操作を入力することが困難になる。
【0106】
第3の実施形態に係る情報処理装置1bは、操作者に入力領域O1を形成させる空間を指定させる。この場合、操作者は、入力領域O1が形成されている空間を把握できているため、容易に操作を入力することができる。
【0107】
図16は、第3の実施形態に係る情報処理装置1bの機能構成の一例を示す図である。制御部11bは、画像取得部110、3D座標演算部111、キャリブレーション補正値設定部112b、タッチ判定面設定部113、2D座標変換部114b、判定部115、機能実行部116、及び表示出力部117を備える。
【0108】
3D座標演算部111は、第1の四角形と、第1の四角形よりも操作者側に近く第1の四角形よりも小さい第2の四角形と、のそれぞれの頂点を指定する動作に基づいて、複数の座標を抽出する。
【0109】
キャリブレーション補正値設定部112bは、操作者の操作により指定された表示部30上の2D座標を特定するための基準として、入力領域O1を設定する。
【0110】
図17は、入力領域O1を特定する特定方法の一例を示す図である。
図17に示すように、操作者は、入力領域O1を設定するために、前後の2つの四角形が形成されるように指差し操作を8回行う。この時、操作者は、表示部30側である前方の四角形が、操作者側である後方の四角形よりも大きくなるように指差し操作を行う。
【0111】
キャリブレーション補正値設定部112bは、指差し操作において、それぞれの指先位置Fを検出する。すなわち、キャリブレーション補正値設定部112bは、
図17に示す第1指先位置F21、第2指先位置F22、第3指先位置F23、第4指先位置F24、第5指先位置F25、第6指先位置F26、第7指先位置F27、及び第8指先位置F28を検出する。
【0112】
情報処理装置1bは、前方の四角形の頂点と、この頂点に対応する後方の四角形の頂点と、を通過するベクトルを算出する。すなわち、キャリブレーション補正値設定部112bは、第1指先位置F21と、第2指先位置F22とを通過する第1ベクトルV21を算出する。また、キャリブレーション補正値設定部112bは、第3指先位置F23と、第4指先位置F24とを通過する第2ベクトルV22を算出する。また、キャリブレーション補正値設定部112bは、第5指先位置F25と、第6指先位置F26とを通過する第3ベクトルV23を算出する。また、キャリブレーション補正値設定部112bは、第7指先位置F27と、第8指先位置F28とを通過する第4ベクトルV24を算出する。
【0113】
キャリブレーション補正値設定部112bは、第1ベクトルV21、第2ベクトルV22、第3ベクトルV23、及び第4ベクトルV24の交点を算出する。これにより、キャリブレーション補正値設定部112bは、第1ベクトルV21、第2ベクトルV22、第3ベクトルV23、及び第4ベクトルV24の交点を原点G1にし、表示部30側を底面にした四角錐を形成する。なお、キャリブレーション補正値設定部112bは、第1ベクトルV21、第2ベクトルV22、第3ベクトルV23、及び第4ベクトルV24が交差しない場合には、各ベクトルが最も近接する点を原点G1にする。
【0114】
キャリブレーション補正値設定部112bは、四角錐内に入力領域O1を形成する。例えば、キャリブレーション補正値設定部112bは、第1指先位置F21、第3指先位置F23、第5指先位置F25、及び第7指先位置F27により形成される四角形と、第2指先位置F22、第4指先位置F24、第6指先位置F26、及び第8指先位置F28により形成される四角形と、の間に入力領域O1を形成する。このように、キャリブレーション補正値設定部112bは、第1の四角形の頂点と、この頂点に対応する第2の四角形の頂点とを通過するベクトルにより形成される四角錐内に、操作者の動作に応じた操作を受け付ける入力領域O1を設定する。なお、キャリブレーション補正値設定部112bは、2つの四角形の間に限らず、2つの四角形よりも表示部30側に入力領域O1を設定してもよいし、2つの四角形よりも操作者側に入力領域O1を設定してもよいし、任意の位置に入力領域O1を形成してもよい。
【0115】
2D座標変換部114bは、キャリブレーション補正値情報120bに基づいて、入力領域O1における指先位置Fの3D座標に対応する、表示部30上の2D座標を特定する。
【0116】
ここで、キャリブレーション補正値情報120bが示す入力領域O1は、第2の実施形態と同様の理由により歪んだ四角形を示してしまうことがある。そして、入力領域O1が歪んでいる場合、2D座標変換部114bは、操作位置C1を正確に特定することができない。そこで、2D座標変換部114bは、射影変換により入力領域O1の歪みを補正した上で操作位置C1を特定する。
【0117】
次に、第3の実施形態に係る情報処理装置1bが実行するキャリブレーション処理について説明する。
【0118】
図18は、第3の実施形態に係る情報処理装置1bが実行するキャリブレーション処理の一例を示すフローチャートである。
【0119】
制御部11bは、キャリブレーションを実行するキャリブレーションモードであるか否かを判定する(ステップS31)。
【0120】
キャリブレーションモードの場合に(ステップS31;Yes)、3D座標演算部111は、入力領域O1を設定するための指差し操作における指先位置Fの3D座標を取得したか否かを判定する(ステップS32)。指先位置Fの3D座標を取得しない場合に(ステップS32;No)、3D座標演算部111は、ステップS32で待機する。
【0121】
指先位置Fの3D座標を取得した場合に(ステップS32;Yes)、3D座標演算部111は、指差し操作における指先位置Fの3D座標を登録する(ステップS33)。
【0122】
3D座標演算部111は、キャリブレーションが終了したか否かを判定する(ステップS34)。言い換えると、3D座標演算部111は、8つの指先位置Fの3D座標を登録したか否かを判定する。キャリブレーションが終了していない場合に(ステップS34;No)、3D座標演算部111は、ステップS32に移行する。
【0123】
キャリブレーションが終了した場合に(ステップS34;Yes)、キャリブレーション補正値設定部112bは、8つの指先位置Fにより形成される四角錐内に入力領域O1を特定する(ステップS35)。
【0124】
以上により、情報処理装置1bは、キャリブレーション処理を終了する。
【0125】
次に、第3の実施形態に係る情報処理装置1bが実行する補正処理について説明する。
【0126】
図19は、第3の実施形態に係る情報処理装置1bが実行する補正処理の一例を示すフローチャートである。補正処理は、キャリブレーション処理による検出した表示部30の四隅の3D座標の誤差を射影変換により補正する処理である。
【0127】
制御部11bは、表示部30の四隅の3D座標を特定済みであるか否かを判定する(ステップS41)。表示部30の四隅の3D座標を特定していない場合に(ステップS41;No)、制御部11bは、
図18に示すキャリブレーション処理を実行する(ステップS42)。
【0128】
表示部30の四隅の3D座標が特定済みの場合に(ステップS41;Yes)、3D座標演算部111は、入力領域O1において操作者の指先位置Fの3D座標を取得したか否かを判定する(ステップS43)。操作者の指先位置Fの3D座標を取得していない場合に(ステップS43;No)、3D座標演算部111は、ステップS43において操作者の指先位置Fの3D座標の取得を継続する。
【0129】
操作者の指先位置Fの3D座標を取得した場合に(ステップS43;Yes)、2D座標変換部114bは、操作者の指先位置Fの3D座標に対応する操作位置C1の2D座標であって、射影変換により補正した2D座標を算出する(ステップS44)。
【0130】
以上により、情報処理装置1bは、補正処理を終了する。
【0131】
以上のように、第3の実施形態に係る情報処理装置1bは、表示部30の表示面に向けて、四角形の頂点を示す4箇所の指先位置Fと、この四角形よりも操作者側にこの四角形よりも小さい四角形の頂点を示す4箇所の指先位置Fと、を抽出する。そして、情報処理装置1bは、この2つの四角形の間に入力領域O1を形成する。これにより、情報処理装置1bは、操作者が認識可能な入力領域O1を形成することができる。すなわち、情報処理装置1bは、動作が行われた位置と、操作対象の位置との位置関係を設定することができる。
【0132】
なお、第3の実施形態に係る情報処理装置1bは、入力領域O1を含む四角錐を任意の位置に形成することができる。
図20は、入力領域O1を特定する特定方法の一例を示す図である。例えば、図に示すように、情報処理装置1cは、操作者の目を原点G1にするように、四角錐を形成してもよい。さらに、四角錐は、任意の大きさに形成してもよい。
【0133】
(第4の実施形態)
図21は、第4の実施形態に係る情報処理装置1dの一例を示す図である。
図21に示すように、情報処理装置1dは、4つの指先位置Fにより定められる四角柱内に入力領域O1を形成する。
【0134】
図22は、第3の実施形態に係る情報処理装置1dの機能構成の一例を示す図である。制御部11dは、画像取得部110、3D座標演算部111、キャリブレーション補正値設定部112d、タッチ判定面設定部113、2D座標変換部114d、判定部115、機能実行部116、及び表示出力部117を備える。
【0135】
3D座標演算部111は、表示部30の表示面と略平行な四角形の頂点を指定する動作に基づいて、複数の座標を抽出する。例えば、3D座標演算部111は、
図21の第1指先位置F31、第2指先位置F32、第3指先位置F33、及び第4指先位置F34を抽出する。
【0136】
キャリブレーション補正値設定部112dは、操作者による指差し操作の指先位置Fを4箇所取得する。さらに、キャリブレーション補正値設定部112dは、指先位置Fごとに、指先位置Fから表示部30の表示面と垂直に交差するベクトルを算出する。キャリブレーション補正値設定部112dは、4つのベクトルにより形成される四角柱内に、表示部30の表示面と略平行な入力領域O1を無数に形成する。すなわち、キャリブレーション補正値設定部112dは、表示部30の表示面から四角形の頂点を通過するベクトルにより形成される四角柱内に、動作に応じた操作を受け付ける入力領域O1を設定する。このように、4つのベクトルにより形成される四角柱内に、無数の入力領域O1を形成することで、操作者は、任意の位置で操作を行うことができる。
【0137】
2D座標変換部114dは、キャリブレーション補正値情報120dに基づいて、入力領域O1における指先位置Fの3D座標に対応する、表示部30上の2D座標を特定する。
【0138】
ここで、キャリブレーション補正値情報120dが示す入力領域O1は、第2の実施形態と同様の理由により歪んだ四角形を示してしまうことがある。そして、入力領域O1が歪んでいる場合、2D座標変換部114dは、操作位置C1を正確に特定することができない。そこで、2D座標変換部114dは、射影変換により入力領域O1の歪みを補正した上で操作位置C1を特定する。
【0139】
以上のように、第4の実施形態に係る情報処理装置1dは、表示部30の表示面に向けて、四角形の頂点を示す4箇所の指先位置Fを抽出する。そして、情報処理装置1dは、4箇所の指先位置Fにより形成される四角柱に無数の入力領域O1を形成する。これにより、情報処理装置1dは、操作者が認識可能な入力領域O1を形成することができる。すなわち、情報処理装置1dは、動作が行われた位置と、操作対象の位置との位置関係を設定することができる。
【0140】
(変形例1)
第1の実施形態、第2の実施形態、第3の実施形態、及び第4の実施形態において、操作に応じた表示部30上の座標を特定するための基準を設定する処理を説明した。情報処理装置1、1a、1b、1c、1dは、操作者ごとに基準を記憶してもよい。さらに、情報処理装置1、1a、1b、1c、1dは、操作者を認証した場合に、認証した操作者の基準を設定してもよい。これにより、情報処理装置1、1a、1b、1c、1dは、基準を設定するキャリブレーションを実行することなく、操作者に応じた基準を設定することができる。また、情報処理装置1、1a、1b、1c、1dは、操作者を如何なる方法により認証してもよい。例えば、情報処理装置1、1a、1b、1c、1dは、顔画像などの生体認証により認証してもよいし、パスワードにより認証してもよいし、他の方法により認証してもよい。
【0141】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これらの実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【0142】
(付記)
(項目1)
操作者による動作に基づいて表示部に対する操作を受け付ける情報処理装置であって、
センサにより検出された前記操作者の動作に基づいて、前記操作者から前記表示部までの空間から複数の座標を抽出する抽出部と、
前記抽出部により抽出された複数の座標に基づいて、前記操作に応じた前記表示部上の座標を特定するためのキャリブレーションを実行する設定部と、
を備える情報処理装置。
(項目2)
前記抽出部は、前記表示部の特徴点を指し示す複数の動作に基づいて、前記特徴点ごとに、前記表示部の表示面に対して略垂直な方向に、距離が異なる複数の前記座標を抽出し、
前記設定部は、前記特徴点と当該特徴点に対応する複数の座標とを通過するベクトルであって、前記特徴点ごとに算出した前記ベクトルが近接する点を、前記操作者の目の位置として設定する、
項目1に記載の情報処理装置。
(項目3)
前記抽出部は、前記表示部の特徴点を指し示す複数の動作に基づいて、前記特徴点ごとに、前記表示部の表示面と略平行な方向に、距離が異なる複数の前記座標を抽出し、
前記設定部は、前記座標と、前記操作者の目とを通過するベクトルであって、前記特徴点ごとに算出した前記ベクトルが近接する点により特定される前記表示部の位置を設定する、
項目1又は項目2に記載の情報処理装置。
(項目4)
前記表示部の位置と、前記操作者の目と、前記動作により抽出される座標とに基づいて、前記操作に応じた前記表示部上の座標を特定する特定部を更に備える、
項目2又は項目3に記載の情報処理装置。
(項目5)
前記抽出部は、第1の四角形と、前記第1の四角形よりも操作者側に前記第1の四角形よりも小さい第2の四角形と、のそれぞれの頂点を指定する前記動作に基づいて、複数の前記座標を抽出し、
前記設定部は、前記第1の四角形の頂点と、当該頂点に対応する前記第2の四角形の頂点とを通過するベクトルにより形成される四角錐内に、前記動作に応じた操作を受け付ける入力領域を設定する、
項目1に記載の情報処理装置。
(項目6)
前記抽出部は、前記表示部の表示面と略平行な四角形の頂点を指定する前記動作に基づいて、複数の前記座標を抽出し、
前記設定部は、前記表示部の表示面から前記頂点を通過するベクトルにより形成される四角柱内に、前記動作に応じた操作を受け付ける入力領域を設定する、
項目1又は項目5に記載の情報処理装置。
(項目7)
前記センサにより検出された前記操作者の動作に基づいて、前記操作者から前記表示部までの空間から座標を算出する第1算出部と、
前記設定部により設定された情報と、前記第1算出部により算出された座標とに基づいて、前記操作に応じた前記表示部上の座標を算出する第2算出部と、
前記第2算出部により算出された前記表示部上の座標に対して操作を実行する実行部と、
前記実行部により実行された操作内容に応じた画像を前記表示部に表示する表示制御部と、を更に備える、
項目1から項目6の何れか一項に記載の情報処理装置。
(項目8)
操作者による動作に基づいて表示部に対する操作を受け付ける情報処理装置のキャリブレーション方法であって、
センサにより検出された前記操作者の動作に基づいて、前記操作者から前記表示部までの空間から複数の座標を抽出し、
抽出した複数の座標に基づいて、前記操作に応じた前記表示部上の座標を特定するためのキャリブレーションを実行する、
ことを含むキャリブレーション方法。
【符号の説明】
【0143】
1、1a、1b、1c、1d 情報処理装置
10 制御装置
20 センサ
30 表示部
110 画像取得部
111 3D座標演算部
112、112a、112b、112d キャリブレーション補正値設定部
113 タッチ判定面設定部
114、114a、114b、114d 2D座標変換部
115 判定部
116 機能実行部
117 表示出力部
120、120a、120b、120d キャリブレーション補正値情報
121 基準座標情報
122 タッチ判定面情報