(58)【調査した分野】(Int.Cl.,DB名)
前記検知部は、前記接触を検知した検知位置と前記操作領域に基づいて、前記ユーザの前記表示情報に対する選択動作を検知することを特徴とする請求項4または請求項5記載の画像処理装置。
前記制御部は、前記操作領域の制御として、前記選択動作時間における前記基準位置の最小座標と最大座標で規定される移動範囲に前記表示情報を重畳して表示させることを特徴とする請求項4ないし請求項7の何れか一項に記載の画像処理装置。
前記制御部は、前記操作領域の制御として、前記選択動作時間における前記基準位置の最小座標と最大座標で規定される移動範囲を前記操作領域と見做して制御することを特徴とする請求項4ないし請求項7の何れか一項に記載の画像処理装置。
前記制御部は、前記検知位置が前記表示領域以外の場合において、前記操作領域の制御として、前記終了時刻の次フレームにおける前記表示情報の第2表示位置を、前記開始時刻の前記表示情報の第1表示位置に切り替えて、前記表示情報を表示させることを特徴とする請求項6または請求項7記載の画像処理装置。
前記認識部がマーカを認識しない場合に、前記選択動作時間における前記移動量を所定の近似処理または所定のフィルタ処理を用いて推定する推定部と、を更に備えることを特徴とする請求項4ないし請求項9の何れか一項に記載の画像処理装置。
【発明を実施するための形態】
【0015】
上述の表示情報の表示位置がリアルタイムで変動する拡張現実感を用いる画像処理においては、本発明者らの鋭意検証によって、以下の事項が明らかになった。ユーザがディスプレイ上の表示情報に対して、一方の手指の接触による押下選択動作を行う為に、手指を表示情報に伸ばしている間に、画像処理装置を保持する他方の手指の位置が安定しなくなり、カメラを搭載する画像処理装置の位置や姿勢が急激に動いてしまうという現象が発生する。この場合、マーカに対するカメラ撮影位置や方向が変化する為、表示情報の表示位置が変化する。この結果、ユーザの手指がディスプレイに接触する時刻における表示情報の表示位置は、押下選択動作を開始した時刻の表示位置とズレが生じている為、ユーザが表示情報を正確に押下出来ない現象が発生することが明らかになった。また、この現象は、両手で画像処理装置を保持しつつ、表示情報を押下する場合でも発生することが明らかになった。これは、両手で画像処理装置を保持した状態においても、手指を伸ばす動作や、当該動作に伴う画像処理装置の持ち替えにより、画像処理装置の位置や姿勢が変化することに依る為である。
【0016】
画像処理装置の位置や姿勢の変化に伴う表示情報の表示位置の変化に対して、本発明者らは、比較例として以下の手法を検討した。例えば、表示情報をディスプレイの所定位置に固定して表示し、作業対象の物体と、移動する画像上の矢印で結び付ける方法が考えられる。当該方法に依れば、画像処理装置の位置や姿勢が変化しても、表示情報の表示位置が変化しない為、ユーザは的確に表示情報を押下することができる。しかしながら、当該方法は、表示情報と作業対象の物体が、ディスプレイ上で離れてしまい視認性が劣化する課題が生じる。
【0017】
また、他の比較例として、ディスプレイ上に表示される特定の表示情報への押下によって、リアルタイムの画像表示から一時的に静止画像表示に切り替えた上で、当該静止画像上の表示情報に対して、ユーザに押下させることが考えられる。しかしながら、リアルタイムの画像表示から静止画像表示に切り替えるための押下操作自体が、リアルタイムの表示情報における特定の表示情報へ押下が必要となる為、上述の画像処理装置の位置や姿勢が変化する課題が生じる。換言すると、拡張現実感を用いる画像処理装置においては、表示情報の表示位置がリアルタイムで変動することになる。この為、表示情報の表示位置がリアルタイムで変動しても、ユーザの表示情報に対する押下精度を十分に確保させることが必要になる。
【0018】
上述の本発明者らの鋭意検証によって、新たに見出された事項を考慮しつつ、以下に、一つの実施形態による画像処理装置、画像処理方法及び画像処理プログラムの実施例を図面に基づいて詳細に説明する。なお、この実施例は、開示の技術を限定するものではない。
【0019】
(実施例1)
図1は、第1の実施形態による画像処理装置1の機能ブロック図である。画像処理装置1は、取得部2、認識部3、検知部4、算出部5、制御部6、ならびに、表示部7を有する。なお、画像処理装置1は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路で構成しても良い。
【0020】
取得部2は、例えば、ワイヤードロジックによるハードウェア回路である。また、取得部2は、画像処理装置1で実行されるコンピュータプログラムにより実現される機能モジュールであっても良い。更に、取得部2は、図示しない通信部を有しており、通信回線を介して様々な外部装置と双方向にデータの送受信を行うことが可能である。取得部2は、後述する表示部7が表示する表示情報と、当該表示情報を表示する基準位置を規定するマーカを含む画像を取得する。ここで、表示情報とは、例えば、作業対象となる物体に対応付けられる作業内容等を含む情報である。取得部2は、当該画像を、例えば、外部装置の一例となる図示しない撮像素子(カメラと称しても良い)から取得する。撮像素子は、例えば、CCD(Charge Coupled Device)やCMOS(Complementary Metal Oxide Semiconductor)カメラなどの撮像デバイスである。また、画像処理装置1は、撮像素子を画像処理装置1の構成要素の一部とすることが出来る。取得部2は取得した画像を認識部3に出力する。
【0021】
認識部3は、例えば、ワイヤードロジックによるハードウェア回路である。また、認識部3は、画像処理装置1で実行されるコンピュータプログラムにより実現される機能モジュールであっても良い。認識部3は画像を取得部2から受け取り、当該画像に含まれるマーカに対応する表示情報と基準位置を認識する。認識部3は、認識した表示情報と、基準位置を制御部6に出力する。また、認識部3は図示しない記憶部を内部に備えても良い。当該記憶部には、例えば、マーカに対応する表示情報が記憶される。記憶部は、例えば、フラッシュメモリ(flash memory)などの半導体メモリ素子、または、HDD(Hard Disk Drive)、光ディスクなどの記憶装置である。なお、記憶部は、上記の種類の記憶装置に限定されるものではなく、RAM(Random Access Memory)、ROM(Read Only Memory)であってもよい。認識部3は、認識した基準位置と表示情報を算出部5、制御部6ならびに表示部7に出力する。
【0022】
検知部4は、例えば、ワイヤードロジックによるハードウェア回路である。また、検知部4は、画像処理装置1で実行されるコンピュータプログラムにより実現される機能モジュールであっても良い。検知部4は、後述する表示部7へのユーザの手指の接触を検知し、表示部7における検知位置を検知する。なお、検知部4は、接触を検知した時刻を表示情報に対するユーザの選択動作の終了時刻と規定することが出来る。また、検知部4は、接触を検知した検知位置と表示部7が表示する表示情報に対するユーザの操作領域に基づいて、ユーザの表示情報への選択を検知する。なお、操作領域は、例えば、表示情報の表示領域である。検知部4は、検出した選択動作の終了時刻を算出部5に出力する。
【0023】
算出部5は、例えば、ワイヤードロジックによるハードウェア回路である。また、算出部5は、画像処理装置1で実行されるコンピュータプログラムにより実現される機能モジュールであっても良い。算出部5は、認識部3から基準位置と表示位置を受け取る。また、算出部5は、選択動作の終了時刻を検知部4から受け取る。算出部5は、後述する表示部7が表示する表示情報に対するユーザの選択動作の開始情報を算出する。ここで、開始情報は、基準位置の移動量に基づいた選択動作の開始時刻を含む。換言すると、開始時刻は、表示情報の第1表示位置が第1閾値範囲未満かつ第2閾値時間以上の閾値を満たした後に、当該第1閾値範囲以上の閾値を満たした時刻である。更に、換言すると、開始時刻は、表示情報の第1表示位置の変化量が、第1閾値範囲未満かつ第2閾値時間以上の閾値を満たした後に、当該第1閾値範囲以上の閾値を満たした時刻である。具体的には、ユーザがマーカに合わせて画像処理装置1を静止させている場合は、表示情報の表示位置(第1表示位置に相当)は、一定時間以上(第2閾値時間以上に相当)に渡って、ほぼ静止した状態(第1閾値範囲未満に相当)となる。なお、第1表示位置の詳細について補足的に説明すると、選択動作の開始時刻における表示情報の表示位置を第1表示位置と換言することが出来る。次に、ユーザの手指が表示情報に向かって動作すると、画像処理装置1は、ユーザの保持状態が変化する為、表示情報の表示位置は、ある範囲以上(第1閾値範囲以上に相当)で変動する。この様な処理方法を用いることで、算出部5は、ユーザの選択動作の開始情報を算出することが可能となる。
【0024】
図2(a)は、ユーザによる表示情報の選択動作開始前の概念図である。
図2(b)は、ユーザによる表示情報の選択動作開始後の概念図である。
図2(a)に示す通り、ユーザによる表示情報の選択動作開始前においては、ユーザは表示部7を含む画像処理装置1を両手で保持してマーカに合わせて画像処理装置1を静止させている状態である。この為、表示情報の表示位置(第1表示位置に相当)は、一定時間以上(第2閾値時間以上に相当)に渡って、ほぼ静止した状態(第1閾値範囲未満に相当)となる。なお、画像処理装置1の表示部7には、左端に表示情報、中央に作業対象の物体、右端にマーカが表示されている。
図2(b)に示す通り、表示情報の選択動作開始後においては、片手で画像処理装置1を保持する為、画像処理装置1を保持する手指の位置が安定しなくなり、表示情報の表示位置は、ある範囲以上(第1閾値範囲以上に相当)で変動することなる。換言すると、表示情報の表示位置は、選択動作開始前後で異なる位置となる。
【0025】
図1の算出部5は、開始情報に含まれる開始時刻から選択動作の終了時刻までの選択動作時間を算出する。なお、選択動作時間は、単なる時間長の情報ではなく、例えば、選択動作の開始時刻と終了時刻が含まれても良い。算出部5は、算出した選択動作時間を制御部6へ出力する。
【0026】
制御部6は、例えば、ワイヤードロジックによるハードウェア回路である。また、制御部6は、画像処理装置1で実行されるコンピュータプログラムにより実現される機能モジュールであっても良い。制御部6は、基準位置と表示情報を認識部3から受け取り、選択動作時間を算出部5から受け取る。なお、実施例1における選択動作時間には、選択動作の開始時刻と終了時刻の情報が含まれているものとする。制御部6は、表示情報に対するユーザの操作領域を、表示情報の表示領域よりも広く制御する。また、制御部6は、開始情報に基づいて表示情報の操作領域を制御する。制御部6は、開始情報と基準位置の移動量に基づいて操作領域を制御する。更に、制御部6は、選択動作時間における移動量に基づいて操作領域を制御する。更に、制御部6は、操作領域を、前記開始時刻における表示領域(初期表示領域と称しても良い)よりも広く制御する。具体的には、制御部6は、操作領域の制御として、例えば、選択動作時間における基準位置の最小座標と最大座標で規定される移動範囲に表示情報を重畳して表示させる。以下に制御部6の制御処理の詳細について説明する。
【0027】
制御部6は、表示情報に対するユーザの選択動作の開始時刻tsから終了時刻tpまでの基準位置の移動量(移動量の単位は例えばピクセルである)を格納したテーブルを、例えば、制御部6の図示しないキャッシュまたはメモリに格納する。
図3は、選択動作時間における基準位置の移動量を含む第1テーブルの一例である。
図3に示すテーブル30には、ユーザの選択動作の開始時刻をts、終了時刻をtpとした取得部2が取得する画像のフレーム毎の基準位置が格納される。なお、実施例1においては、マーカは2次元座標で表現出来る矩形形状であり、基準点は4頂点で表現されるものとして説明する。また、基準点は4頂点ではなく、任意の1点としても良い。なお、テーブル30における2次元座標系は、例えば、表示部7の左上端を原点とし、水平方向をx軸、垂直方向をy軸と規定した場合の座標系である。また、時刻tp+1は、検知部4が接触を検知した時刻の次のフレームの時刻を示している。
【0028】
図3のテーブル30において、x軸の最小座標は10であり、y軸の最大座標は340である。当該範囲が上述の選択動作時間における基準位置の最小座標と最大座標で規定される移動範囲に該当する。なお、当該移動範囲を上述の移動軌跡と称しても良い。制御部6は、操作領域の制御として、例えば、選択動作時間における基準位置の最小座標と最大座標で規定される移動範囲に表示情報を重畳して表示させる。これにより、ユーザの表示情報に対する押下精度が向上する。
図4は、選択動作時間の基準位置の移動範囲における表示情報の重畳表示の概念図である。
図4において、ユーザの指先が押下した位置(時刻tpにおける検知位置)は、時刻tsにおける表示位置以外の位置(時刻tp−1)となっているが、当該押下した位置は選択動作時間における基準位置の最小座標と最大座標で規定される操作領域の移動範囲内である為、検知部4がユーザの表示情報への選択を検知することで、ユーザの表示情報に対する押下精度が向上する。
【0029】
なお、制御部6は、必ずしも表示情報を重畳して表示させる必要はない。例えば、検知部4が接触を検知した検知位置が、制御部6が規定した移動範囲内であれば、検知部4が表示情報への選択が成されたと見做して検知することで、ユーザの表示情報に対する押下精度が向上する。換言すると制御部6は、操作領域の制御として、例えば、選択動作時間における基準位置の最小座標と最大座標で規定される移動範囲の領域自体を、操作範囲と見做した上で、検知部4が表示情報への選択を検知することで、実効的な操作範囲が拡大し、ユーザの表示情報に対する押下精度が向上する。なお、説明の便宜上、制御部6が表示情報の表示位置を制御する為の各種情報を制御情報と称することにする。制御部6は制御情報を表示部7へ出力する。
【0030】
また、制御部6は、異なる2つの時刻の基準位置を用いて、各フレームにおける基準位置の時間変化を算出し、算出した計算上の基準位置の移動範囲に基づいて表示情報を制御しても良い。基準位置の時間変化は、例えば、次式を用いて算出することが出来る。但し、次式において、x、yは基準点の座標であり、tは任意のフレームの時刻である。
(数1)
x=5t+35
y=−15t+165
なお、基準位置の時間変化が曲線状の場合には、制御部6は、近似曲線式を用いて移動軌跡を算出しても良い。また、制御部6は、各フレームにおける基準位置の時間変化を、後述の回転ベクトルと並進ベクトルを考慮した座標に基づいて算出しても良い。
【0031】
図1の表示部7は、例えば、液晶ディスプレイまたは有機エレクトロルミネッセンスディスプレイなどの表示デバイスである。表示部7は、表示情報と基準位置を認識部3から受け取り、表示情報の制御情報を制御部6から受け取る。表示部7は、制御部6から制御情報を受け取っている場合は、当該制御情報に基づいて表示情報を表示し、制御部6から制御情報を受け取っていない場合は、基準位置に基づいて表示情報を表示する。
【0032】
図5は、画像処理装置1による画像処理のフローチャートである。取得部2は、表示部7が表示する表示情報と、当該表示情報を表示する基準位置を規定するマーカを含む画像を取得する(ステップS501)。取得部2は取得した画像を認識部3に出力する。認識部3は画像を取得部2から受け取り、当該画像に含まれるマーカに規定される表示情報と基準位置を認識する(ステップS502)。認識部3は、認識した表示情報と、基準位置を制御部6に出力する。
【0033】
検知部4は、表示部7へのユーザの手指の接触を検知し、表示部7における検知位置を検知する(ステップS503)。なお、検知部4は、接触を検知した時刻を表示情報に対するユーザの選択動作の終了時刻と規定することが出来る。また、検知部4は、接触を検知した検知位置と表示部7が表示する表示情報に対するユーザの操作領域に基づいて、ユーザの表示情報への選択を検知する。なお、操作領域は、例えば、表示情報の表示領域である。検知部4は、検出した選択動作の終了時刻を算出部5に出力する。
【0034】
算出部5は、認識部3から基準位置と表示位置を受け取る。また、算出部5は、選択動作の終了時刻を検知部4から受け取る。算出部5は、表示部7が表示する表示情報に対するユーザの選択動作の開始情報を算出する(ステップS504)。ここで、開始情報は、基準位置の移動量に基づいた選択動作の開始時刻を含む。換言すると、開始時刻は、表示情報の第1表示位置が第1閾値範囲未満かつ第2閾値時間以上の閾値を満たした後に、当該第1閾値範囲以上の閾値を満たした時刻である。
【0035】
算出部5は、開始情報に含まれる開始時刻から選択動作の終了時刻までの選択動作時間を算出する(ステップS505)。なお、選択動作時間は、単なる時間長の情報ではなく、例えば、選択動作の開始時刻と終了時刻が含まれても良い。算出部5は、算出した選択動作時間を制御部6へ出力する。算出部5は、算出した選択動作時間を制御部6へ出力する。
【0036】
制御部6は、基準位置と表示情報を認識部3から受け取り、選択動作時間を算出部5から受け取る。なお、選択動作時間には、選択動作の開始時刻と終了時刻の情報が含まれているものとする。制御部6は、表示情報の表示領域を選択時間動作に基づいて制御する(ステップS506)例えば、制御部6は、ステップS506において、表示情報に対するユーザの操作領域を、表示情報の表示領域よりも広く制御する。また、制御部6は、開始情報に基づいて表示情報の操作領域を制御する。また、制御部6は、開始情報と基準位置の移動量に基づいて操作領域を制御する。更に、制御部6は、選択動作時間における移動量に基づいて操作領域を制御する。具体的には、制御部6は、操作領域の制御として、例えば、選択動作時間における基準位置の最小座標と最大座標で規定される移動範囲に表示情報を重畳して表示させる。
【0037】
なお、ステップS506において、制御部6は、必ずしも表示情報を重畳して表示させる必要はない。例えば、検知部4が接触を検知した検知位置が、制御部6が規定した移動範囲内であれば、検知部4が表示情報への選択が成されたと見做して検知することで、ユーザの表示情報に対する押下精度が向上する。換言すると、制御部6は、操作領域の制御として、例えば、選択動作時間における基準位置の最小座標と最大座標で規定される移動範囲の領域自体を、操作範囲と見做した上で、検知部4が表示情報への選択を検知することで、実効的な操作範囲が拡大し、ユーザの表示情報に対する押下精度が向上する。
なお、説明の便宜上、制御部6が表示情報の表示位置を制御する為の各種情報を制御情報と称することにする。制御部6は制御情報を表示部7へ出力する。
【0038】
表示部7は、表示情報と基準位置を認識部3から受け取り、表示情報の制御情報を制御部6から受け取る。表示部7は表示情報を表示する(ステップS507)。例えば、表示部7は、ステップS507において、制御部6から制御情報を受け取っている場合は、当該制御情報に基づいて表示情報を表示し、制御部6から制御情報を受け取っていない場合は、基準位置に基づいて表示情報を表示することで、画像処理装置1は、
図5のフローチャートに示す画像処理を終了する。なお、ステップS507の処理終了時において、取得部2が、画像を受け取っている場合には、画像処理装置はステップS501〜S507の処理を繰り返し実行しても良い。
【0039】
実施例1による画像処理装置1においては、ユーザに対する利用性を向上させることが可能となる。また、実施例1による画像処理装置1においては、ユーザの表示情報に対する押下精度を向上させることが可能になる。例えば、画像処理装置1の移動に伴い表示情報の表示位置が移動してしまう場合でも、ユーザが動作の狙いを定めた時刻の表示位置に対して時間的に近いものが表示または選択されることにより、ユーザの表示情報に対する押下精度を向上させることが可能になる。
【0040】
(実施例2)
実施例2においては、算出部5による回転ベクトルと並進ベクトルを用いた選択動作時間の算出方法について開示する。実施例2における算出部5が含まれる画像処理装置1の機能ブロック図は実施例1と同様である為、詳細な説明は省略する。
【0041】
図6は、回転ベクトルと並進ベクトルの定義図である。
図6に示される通り、任意の位置の原点0から画像処理装置1の表示部7に対して垂直に並進ベクトルTzが規定され、並進ベクトルTzに対応する並進ベクトルTx、Tyがそれぞれ規定される。また、並進ベクトルTx、Ty、Tzの回転方向に対して、回転ベクトルRx、Ry、Rzがそれぞれ規定される。算出部5は、例えば、
図3のテーブル30に示す様な4頂点で表現される基準点から、回転ベクトルR=(Rx、Ry、Rz)と並進ベクトルT=(Tx,Ty,Tz)を公知の手法を用いて算出する。
【0042】
算出部5は、時刻tn(例えば、
図3のテーブル30の時刻ts+2)の並進ベクトルTn=(Txn、Tyn、Tzn)と、1フレーム前の時刻tn−1(例えば、
図3のテーブル30の時刻ts+1)の並進ベクトルTn−1=(Txn−1、Tyn−1、Tzn−1)から、時刻tn−1から時刻tn間における移動量を表す並進ベクトル量ΔTnを、次式を用いて算出する。
(数2)
【0043】
算出部5は、並進ベクトルと同様に、時刻tn−1から時刻tn間における移動量を表す回転ベクトル量ΔRnを、次式を用いて算出する。
(数3)
【0044】
算出部5は、並進ベクトル量ΔTnが所定値ΔTα未満、かつ回転ベクトル量ΔRnが所定値ΔRα未満である場合、画像処理装置1が静止状態と判断する。次に、算出部5は、静止状態の継続時間t1を算出する。継続時間t1が所定時間tβ未満の場合は、算出部5は、継続時間を0にリセットした上で、上述の並進ベクトル量ΔTnと回転ベクトル量ΔRnの算出を繰り返し実行する。継続時間t1が所定時間tβを以上の場合は、算出部5は、以下の処理を実行する。
【0045】
算出部5は、並進ベクトル量ΔTnと所定値ΔTαの比較を行うと共に、回転ベクトル量ΔRnと所定値ΔRαの比較を行う。算出部5は、ΔTn<=ΔTα、かつ、ΔRn<=ΔRαの場合、画像処理装置1は静止状態を継続していると判断する。算出部5は、
ΔTn>ΔTαまたはΔRn>ΔRαと変化した場合は、画像処理装置1の位置が変動したと判断し、上述の条件を満たした時刻を選択動作の開始時刻tsと規定することが出来る。
【0046】
実施例2における画像処理装置1においては、3軸方向の並進ベクトルと3軸方向の回転ベクトルの6個の測定値の変化量と複数の閾値判定を用いることにより、高い精度で選択動作の開始時刻tsと規定することが出来る。この為、実施例2による画像処理装置1においては、ユーザに対する利用性を向上させることが可能となる。また、実施例2による画像処理装置1においては、ユーザの表示情報に対する押下精度を向上させることが可能になる。
【0047】
(実施例3)
ユーザによる画像処理装置1の使用状況においては、ブレ等の発生により認識部3がマーカの認識を出来ない場合がある。認識部3がマーカを認識しない場合は、基準位置の消失により、表示情報が表示部7に表示されない場合がある。この場合は、ユーザは表示情報を手指等により押下出来なくなり、可用性が低下する場合も考えられる。実施例3における画像処理装置1においては、マーカの認識が出来ない場合においても、可用性が低下しないことが可能となる画像処理装置1について説明する。
【0048】
図7は、第2の実施形態による画像処理装置1の機能ブロック図である。画像処理装置1は、取得部2、認識部3、検知部4、算出部5、制御部6、表示部7、ならびに、推定部8を有する。なお、画像処理装置1は、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路で構成しても良い。また、推定部8以外の各機能は、
図1に示す各機能と同様の機能を有する為、詳細な説明は省略する。
【0049】
推定部8は、例えば、ワイヤードロジックによるハードウェア回路である。また、推定部8は、画像処理装置1で実行されるコンピュータプログラムにより実現される機能モジュールであっても良い。推定部8は、算出部5が認識部3から基準位置を受け取っていない場合、以下の推定処理を実行する。
【0050】
図8は、選択動作時間における基準位置の移動量を含む第2テーブルの一例である。テーブル80における座標系等の各種規定は
図3のテーブル30と同様である為、詳細な説明は省略する。
図8に示すテーブル80には、ユーザの選択動作の開始時刻をts、終了時刻をtpとした取得部2が取得する画像のフレーム毎の基準位置が格納される。テーブル80には、マーカ認識結果が格納されている。マーカの認識結果は、例えば、認識部3がマーカを認識出来たか否かに基づいて格納されれば良い。テーブル80においては、時刻ts〜時刻tm−1の時刻ではマーカの認識に成功しており、時刻tm〜時刻tp+1の時刻ではマーカの認識に失敗していることを示している。推定部8は、時刻tsから、マーカ認識失敗時刻前tm−1までの基準位置の変化を用いて、マーカ認識失敗時刻tmから接触が検知される時刻tpまでの基準位置の移動量(移動軌跡と称しても良い)を推定する。
【0051】
推定部8は、マーカ認識失敗時刻tmから接触が検知される時刻tpまでの基準位置の移動量の推定として様々な公知の手法を用いることが出来る。例えば、時刻ts〜時刻tm−1の時刻における基準位置から算出することが可能な時間変化に基づく直線近似方法や、「コンピュータビジョン、 David A. Forsyth、 Jean Ponce (著)、大北剛(訳)、共立出版(2007)」に開示されるカルマンフィルタ、または、「パーティクルフィルタとその実装法(チュートリアル)、情報処理学会研究報告、CVIM、 2007(1)、161−168、2007−01−11」に開示されるパーティクルフィルタ等の様々なフィルタ処理を用いることができる。実施例3においては、時間変化に基づく直線近似を例示として説明する。テーブル80において、例えば、時刻tm−3〜時刻tm−1の基準位置の時間変化は、例えば、次式で表現することが出来る。但し、次式において、x、yは基準点の座標であり、tは任意のフレームの時刻である。
(数4)
x=5t+35
y=−15t+165
【0052】
推定部8は、上述の(数4)を用いて時刻tm〜時刻tpまでの移動量を推定することが出来る。なお、推定された基準位置の座標はテーブル80に示される座標となる。
図7の制御部6は、テーブル80を参照し、実施例1または実施例2に開示した制御処理を適宜実行する。
【0053】
実施例3による画像処理装置1によれば、ユーザの選択動作中に表示情報が正確に表示されなくなった場合においても、表示
情報の位置を推定して表示することが出来る。この為、実施例3による画像処理装置1においては、ユーザに対する利用性を向上させることが可能となる。また、実施例3による画像処理装置1によれば、ユーザの表示情報に対する押下精度を向上させることが可能になる。
【0054】
(実施例4)
実施例1ないし実施例3に開示する画像処理装置1における制御部6は、表示情報の操作領域の制御として、選択動作時間の終了時刻の次フレームにおける表示情報の第2表示位置を、選択動作時間の開始時刻の表示
情報の第1表示位置に切り替えて、表示情報を表示させても良い。なお、第2表示位置を補足的に説明すると、選択動作時間の終了時刻の次フレームにおける表示情報の表示位置を第2表示位置とする。特に、実施例4においては、検知部4が接触を検知した検知位置が表示領域以外だった場合に当該処理を実施することがより好ましい。実施例4における制御部6が含まれる画像処理装置1の機能ブロック図は実施例1ないし実施例3と同様である為、詳細な説明は省略する。
【0055】
図9(a)は、ユーザによる表示情報の選択動作開始時刻tsの概念図である。
図9(b)は、ユーザによる表示情報の選択動作終了時刻tpの概念図である。
図9(c)は、ユーザによる表示情報の選択動作終了時刻の次フレーム時刻tp+1の概念図である。
図9(a)の選択動作開始時刻tsから選択動作終了時刻tpにおいては、画像処理装置1の移動に伴い表示情報の表示位置が移動している。この場合において、制御部6は、選択動作開始時刻tsにおいて、選択動作開始時刻tsの基準位置を記憶する。次に、制御部6は、
図9(c)に示す様に、表示情報の選択動作終了時刻tpの次のフレームとなる時刻tp+1において、記憶した選択動作開始時刻tsの基準位置に基づいて、表示情報を表示する様に制御する。換言すると、時刻tsと時刻tp+1の表示情報の表示位置は同じ位置となる。なお、当該処理は、検知部4が接触を検知した検知位置が表示領域以外かつ操作領域範囲内だった場合に当該処理を実施することがより好ましい。実施例4による画像処理装置1においては、ユーザに対する利用性(視認性)を向上させることが可能となる。
【0056】
また、
図9(a)ないし
図9(c)において、制御部6は、ユーザによる表示情報の選択動作終了時刻tpの検知位置が、選択動作開始時刻tsの基準位置と選択動作終了時刻tpの基準位置のどちらが近いかを判断し、近い位置の基準位置に基づいて表示情報を表示する様に制御しても良い。換言すると、時刻tp+1の表示情報の表示位置は、時刻tsまたは時刻tpの何れかの表示位置となる。当該動作により、ユーザが動作の狙いを定めた時刻の表示位置に対して時間的に近いものが表示または選択されることにより、ユーザに対する利用性(視認性)を向上させることが可能となる。
【0057】
更に、
図9(a)ないし
図9(c)において、制御部6は、ユーザによる表示情報の選択動作終了時刻tpの検知位置が、表示領域以外である場合においても、
図3のテーブル30または
図8のテーブル80に基づいて制御部6が規定した移動範囲内であれば、時刻tp+1の表示情報の表示位置を、選択動作終了時刻tpの検知位置に重畳させても良い。当該動作により、ユーザに対する利用性(視認性)を向上させることが可能となる。
【0058】
(実施例5)
実施例5における制御部6が含まれる画像処理装置1の機能ブロック図は実施例1ないし実施例4と同様である為、詳細な説明は省略する。
図9(a)ないし
図9(c)において、制御部6は、選択動作開始時刻tsを起点として、選択動作終了時刻tpまで表示情報の表示位置を固定することも可能である。当該動作においては、ユーザが動作の狙いを定めた時刻の表示位置そのものが表示し続けられる為、ユーザの表示情報に対する押下精度を向上させることが可能になる。実施例5による画像処理装置1においては、ユーザに対する利用性を向上させることが可能となる。また、実施例5による画像処理装置1によれば、ユーザの表示情報に対する押下精度を向上させることが可能になる。
【0059】
上述した各実施例において、画像処理装置1は、ユーザの音声信号を取得するマイクを更に備えることも可能である。なお、マイクは、例えば、算出部5に接続されれば良い。また、音声信号は、例えば、音声認識が可能な特定の言葉を含む信号を用いることが出来る。算出部5は、音声信号を上述の開始情報として算出しても良い。
【0060】
また、画像処理装置1は、ユーザの動作信号を取得する加速度センサ、角速度センサ、または接触スイッチを更に備えることが可能である。加速度センサ、角速度センサ、または接触スイッチは、例えば、算出部5に接続されれば良い。なお、動作信号は所定の閾値で設定される動作量、または、スイッチによる電気的な接触信号を用いることが出来る。算出部5は、動作信号を上述の開始情報として算出しても良い。
【0061】
また、画像処理装置1は、選択動作を含む選択動作画像を撮像するカメラを更に備えることが可能である。カメラは、例えば、算出部5に接続されれば良い。また、カメラは、例えば、ユーザの手指を撮像する。算出部5は、選択動作画像をテンプレートマッチング等の処理結果に基づいて開始情報を算出することが出来る。
【0062】
また、画像処理装置1の制御部6は、開始情報に基づいて、表示情報の表示領域を単純に拡大して表示させても良い。当該処理によっても、ユーザによる押下精度を向上させることが可能となる。更に、制御部6は、認識部3がマーカを認識した場合に、表示情報の表示領域を拡大して表示させても良い。 具体的には、画像処理装置1の制御部6は、表示部7が表示情報を表示する前に、操作領域を、認識部3が認識する表示情報の表示領域よりも広く制御しても良い。例えば、制御部6は、認識部3がマーカを認識した時点で、当該マーカに対応付けられている表示情報の表示領域を単純に拡大して表示させても良い。当該処理によっても、ユーザによる押下精度を向上させることが可能となる。また、表示情報の一部の領域をユーザに押下させる様な表示形態である場合は、当該一部の領域のみを拡大して表示しても良い。当該処理によっても、ユーザによる押下精度を向上させることが可能となる。また、表示情報は、表示情報に関連付けられる付帯情報を含み、制御部6は、検知部4が表示情報への選択を検知した場合に、付帯情報を表示させることが可能である。
【0063】
(実施例6)
図10は、一つの実施形態による画像処理装置1として機能するコンピュータのハードウェア構成図である。
図10に示す通り、画像処理装置1は、コンピュータ100、およびコンピュータ100に接続する入出力装置(周辺機器)を含んで構成される。
【0064】
コンピュータ100は、プロセッサ101によって装置全体が制御されている。プロセッサ101には、バス109を介してRAM(Random Access Memory)102と複数の周辺機器が接続されている。なお、プロセッサ101は、マルチプロセッサであってもよい。また、プロセッサ101は、例えば、CPU、MPU(Micro Processing Unit)、DSP(Digital Signal Processor)、ASIC(Application Specific Integrated Circuit)、またはPLD(Programmable Logic Device)である。更に、プロセッサ101は、CPU、MPU、DSP、ASIC、PLDのうちの2以上の要素の組み合わせであってもよい。
【0065】
RAM102は、コンピュータ100の主記憶装置として使用される。RAM102には、プロセッサ101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、プロセッサ101による処理に必要な各種データが格納される。
【0066】
バス109に接続されている周辺機器としては、HDD(Hard Disk Drive)103、グラフィック処理装置104、入力インタフェース105、光学ドライブ装置106、機器接続インタフェース107およびネットワークインタフェース108がある。
【0067】
HDD103は、内蔵したディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。HDD103は、例えば、コンピュータ100の補助記憶装置として使用される。HDD103には、OSのプログラム、アプリケーションプログラム、および各種データが格納される。なお、補助記憶装置としては、フラッシュメモリなどの半導体記憶装置を使用することも出来る。
【0068】
グラフィック処理装置104には、モニタ110が接続されている。グラフィック処理装置104は、プロセッサ101からの命令にしたがって、各種画像をモニタ110の画面に表示させる。モニタ110としては、CRT(Cathode Ray Tube)を用いた表示装置や液晶表示装置などがある。
【0069】
入力インタフェース105には、キーボード111とマウス112とが接続されている。入力インタフェース105は、キーボード111やマウス112から送られてくる信号をプロセッサ101に送信する。なお、マウス112は、ポインティングデバイスの一例であり、他のポインティングデバイスを使用することもできる。他のポインティングデバイスとしては、タッチパネル、タブレット、タッチパッド、トラックボールなどがある。
【0070】
光学ドライブ装置106は、レーザ光などを利用して、光ディスク113に記録されたデータの読み取りを行う。光ディスク113は、光の反射によって読み取り可能なようにデータが記録された可搬型の記録媒体である。光ディスク113には、DVD(Digital Versatile Disc)、DVD−RAM、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)などがある。可搬型の記録媒体となる光ディスク113に格納されたプログラムは光学ドライブ装置106を介して画像処理装置1にインストールされる。インストールされた所定のプログラムは、画像処理装置1より実行可能となる。
【0071】
機器接続インタフェース107は、コンピュータ100に周辺機器を接続するための通信インタフェースである。例えば、機器接続インタフェース107には、メモリ装置114やメモリリーダライタ115を接続することが出来る。メモリ装置114は、機器接続インタフェース107との通信機能を搭載した記録媒体である。メモリリーダライタ115は、メモリカード116へのデータの書き込み、またはメモリカード116からのデータの読み出しを行う装置である。メモリカード116は、カード型の記録媒体である。
【0072】
ネットワークインタフェース108は、ネットワーク11に接続されている。ネットワークインタフェース108は、ネットワーク11を介して、他のコンピュータまたは通信機器との間でデータの送受信を行う。
【0073】
コンピュータ100は、たとえば、コンピュータ読み取り可能な記録媒体に記録されたプログラムを実行することにより、上述した画像処理機能を実現する。コンピュータ100に実行させる処理内容を記述したプログラムは、様々な記録媒体に記録しておくことが出来る。上記プログラムは、1つのまたは複数の機能モジュールから構成することが出来る。例えば、
図1または
図8に記載の取得部2、認識部3、検知部4、算出部5、制御部6、推定部8の処理を実現させた機能モジュールからプログラムを構成することが出来る。なお、コンピュータ100に実行させるプログラムをHDD103に格納しておくことができる。プロセッサ101は、HDD103内のプログラムの少なくとも一部をRAM102にロードし、プログラムを実行する。また、コンピュータ100に実行させるプログラムを、光ディスク113、メモリ装置114、メモリカード116などの可搬型記録媒体に記録しておくことも出来る。可搬型記録媒体に格納されたプログラムは、例えば、プロセッサ101からの制御により、HDD103にインストールされた後、実行可能となる。またプロセッサ101が、可搬型記録媒体から直接プログラムを読み出して実行することも出来る。
【0074】
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することが出来る。
【0075】
以上、説明した実施形態に関し、更に以下の付記を開示する。
(付記1)
表示情報を表示する表示部と、
前記表示情報と前記表示情報を表示する基準位置を規定するマーカを含む画像を取得する取得部と、
前記マーカに規定される前記表示情報と前記基準位置を認識する認識部と、
前記表示情報に対するユーザの操作領域を、前記表示情報の表示領域よりも広く制御する制御部と、
を備えることを特徴とする画像処理装置。
(付記2)
前記表示情報に対するユーザの選択動作の開始情報を算出する算出部を更に有し、
前記制御部は、前記開始情報に基づいて前記表示情報の操作領域を制御することを特徴とする付記1記載の画像処理装置。
(付記3)
前記制御部は、前記開始情報と前記画像における前記基準位置の移動量に基づいて前記操作領域を制御することを特徴とする付記2記載の画像処理装置。
(付記4)
前記開始情報は、前記移動量に基づいた前記選択動作の開始時刻を含み、
前記算出部は、前記開始時刻から前記選択動作の終了時刻までの選択動作時間を更に算出し、
前記制御部は、前記選択動作時間における前記移動量に基づいて前記操作領域を制御することを特徴とする付記3記載の画像処理装置。
(付記5)
前記制御部は、前記操作領域を、前記開始時刻における前記表示領域よりも広く制御することを特徴とする付記4記載の画像処理装置。
(付記6)
前記表示部に対する接触を検知する検知部を更に備え、
前記検知部は、前記接触を検知した検知位置と前記操作領域に基づいて、前記ユーザの前記表示情報への選択を検知することを特徴とする付記1ないし付記5の何れか一つに記載の画像処理装置。
(付記7)
前記開始時刻は、前記表示情報の第1表示位置が第1閾値範囲未満かつ第2閾値時間以上継続する閾値を満たした後に、前記第1閾値範囲以上の閾値を満たした時刻であり、
前記終了時刻は、前記検知部が前記接触を検知した時刻であることを特徴とする付記4ないし付記6の何れか一つに記載の画像処理装置。
(付記8)
前記制御部は、前記操作領域の制御として、前記選択動作時間における前記基準位置の最小座標と最大座標で規定される移動範囲に前記表示画像を重畳して表示させることを特徴とする付記4ないし付記7の何れか一つに記載の画像処理装置。
(付記9)
前記制御部は、前記操作領域の制御として、前記選択動作時間における前記基準位置の最小座標と最大座標で規定される移動範囲を前記操作領域と見做して制御することを特徴とする付記4ないし付記7の何れか一つに記載の画像処理装置。
(付記10)
前記制御部は、前記検知位置が前記表示領域以外の場合において、前記操作領域の制御として、前記終了時刻の次フレームにおける前記表示情報の第2表示位置を、前記開始時刻の前記表示画像の第1表示位置に切り替えて、前記表示情報を表示させることを特徴とする付記7ないし付記8の何れか一つに記載の画像処理装置。
(付記11)
前記認識部がマーカを認識しない場合に、前記選択動作時間における前記移動量を所定の近似処理または所定のフィルタ処理を用いて推定する推定部と、を更に備えることを特徴とする付記4ないし付記9の何れか一つに記載の画像処理装置。
(付記12)
前記操作領域は、前記表示情報の表示領域であることを特徴とする付記1ないし付記11の何れか一つに記載の画像処理装置。
(付記13)
前記ユーザの音声信号を取得するマイクを更に備え、
前記算出部は、前記音声信号を前記開始情報として算出することを特徴とする付記2記載の画像処理装置。
(付記14)
前記ユーザの動作信号を取得する加速度センサ、角速度センサ、または接触スイッチを更に備え、
前記算出部は、前記動作信号を前記開始情報として算出することを特徴とする付記2記載の画像処理装置。
(付記15)
前記選択動作を含む選択動作画像を撮像するカメラを更に備え、
前記算出部は、前記選択動作画像の処理結果に基づいて前記開始情報を算出することを特徴とする付記4記載の画像処理装置。
(付記16)
前記制御部は、前記開始情報に基づいて、前記表示情報の表示領域を拡大して表示させることを特徴とする付記2記載の画像処理装置。
(付記17)
前記制御部は、前記操作領域を、前記開始時刻における前記表示領域に固定する制御を行うことを特徴とする付記4記載の画像処理装置。
(付記18)
前記制御部は、前記終了時刻の検知位置が、前記開始時刻の前記基準位置と前記終了時刻の前記基準位置の何れが近い位置かを判断し、当該近い位置の基準位置に基づいて前記表示情報を表示することを特徴とする付記6に記載の画像処理装置。
(付記19)
前記制御部は、前記検知位置が前記表示領域以外かつ前記操作領域内の場合において、前記終了時刻の次フレームにおける前記表示情報の第2表示位置を、前記終了時刻の前記表示画像の表示位置に切り替えて、前記表示情報を表示させることを特徴とする付記6に記載の画像処理装置。
(付記20)
前記表示情報は、前記表示情報に関連付けられる付帯情報を含み、
前記制御部は、前記検知部が前記表示情報への選択を検知した場合に、前記付帯情報を表示させることを特徴とする付記6記載の画像処理装置。
(付記21)
表示情報を表示し、
前記表示情報と前記表示情報を表示する基準位置を規定するマーカを含む画像を取得し、
前記マーカに規定される前記表示情報と前記基準位置を認識し、
前記表示情報に対するユーザの操作領域を、前記表示情報の表示領域よりも広く制御すること、
を含むことを特徴とする画像処理方法。
(付記22)
コンピュータに、
表示情報を表示し、
前記表示情報と前記表示情報を表示する基準位置を規定するマーカを含む画像を取得し、
前記マーカに規定される前記表示情報と前記基準位置を認識し、
前記表示情報に対するユーザの操作領域を、前記表示情報の表示領域よりも広く制御すること、
を実行させることを特徴とする画像処理プログラム。