(57)【要約】【課題】容易な構成で精度良く円運動を検出でき、かつ、操作の切り替えをシームレスに行うことが可能な情報処理装置、プログラム及び情報処理方法を提供する。【解決手段】手が写った入力画像から画像内の手の位置を検出し、複数の過去データについてこれらが回転運動を示していると仮定したときに、手の位置がこの回転運動で予測した角度範囲にあるならば最新の手の位置における回転角度を求めると共に、あらかじめ定めた手の動きに対応する処理を実行する。【選択図】      図６
2009059108.tif 000002
【特許請求の範囲】
【請求項１】
手が写った入力画像から、画像内の手の位置を検出する位置検出手段と、
前記位置検出手段によって検出した前記手の位置のデータを記憶する記憶手段と、
前記記憶手段に記憶された前記手の位置の複数の過去データについてこれらが回転運動を示していると仮定したときに、最近の前記手の位置がこの回転運動で予測した角度範囲にあることを判定する回転判定手段と、
前記回転判定手段により角度範囲にあると判定された場合、最新の前記手の位置における回転角度を求めると共にあらかじめ定めた前記手の動きの回転運動に対応する処理を実行する実行手段と、
を具備することを特徴とする情報処理装置。
【請求項２】
前記実行手段は、最近の前記手の位置が、仮定した回転運動の方向と反転方向の角度範囲にあると前記回転判定手段が判定した場合、あらかじめ定めた反転方向の回転運動に対応する処理を実行することを特徴とする、請求項１に記載の情報処理装置。
【請求項３】
最新の前記手の位置と前記回転判定手段が仮定した回転運動の中心からの距離を示す第１の距離を判定する距離判定手段をさらに備え、
前記回転判定手段が仮定した回転運動の半径を示す第２の距離よりも、前記第１の距離が所定の値よりも大きいと判定された場合、前記処理を終了することを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記距離判定手段は、前記第１の距離が前記第２の距離よりも小さいと判定された場合、前記第１の距離については前記第２の距離と同等の距離にあると判定することを特徴とする、請求項３に記載の情報処理装置。
【請求項５】
最新の前記手の位置と前記回転判定手段が仮定した回転運動の中心からの距離を示す第１の距離を判定する距離判定手段をさらに備え、
前記回転判定手段が仮定した回転運動の半径を示す第２の距離よりも前記第１の距離が小さいと判定された場合、前記実行手段は、前記回転角度を前記第１の距離に比例した小さい回転角度として実行することを特徴とする、請求項１に記載の情報処理装置。
【請求項６】
手が写った入力画像から、画像内の手の位置を検出する手順と、
前記位置を検出する手順によって検出した前記手の位置のデータを記憶する手順と、
前記記憶する手順で記憶した前記手の位置の複数の過去データについてこれらが回転運動を示していると仮定したときに、最近の前記手の位置がこの回転運動で予測した角度範囲にあることを判定する手順と、
前記判定する手順により角度範囲にあると判定された場合、最新の前記手の位置における回転角度を求めると共にあらかじめ定めた前記手の動きの回転運動に対応する処理を実行する手順と、
を計算機に実行させることを特徴とするプログラム。
【請求項７】
前記実行する手順は、最近の前記手の位置が、仮定した前記回転運動の方向と反転方向の角度範囲にあると判定された場合、あらかじめ定めた反転方向の回転運動に対応する処理を実行することを特徴とする、請求項６に記載のプログラム。
【請求項８】
最新の前記手の位置と、仮定した前記回転運動の中心からの距離を示す第１の距離を判定する距離判定手順をさらに有し、
仮定した前記回転運動の半径を示す第２の距離よりも、前記第１の距離が所定の値よりも大きいと判定された場合、前記処理を終了することを特徴とする請求項６に記載のプログラム。
【請求項９】
前記距離判定手順は、前記第１の距離が前記第２の距離よりも小さいと判定された場合、前記第１の距離については前記第２の距離と同等の距離にあると判定することを特徴とする、請求項８に記載のプログラム。
【請求項１０】
最新の前記手の位置と前記回転判定手順で仮定した回転運動の中心からの距離を示す第１の距離を判定する距離判定手順をさらに有し、
前記判定する手段が仮定した前記回転運動の半径を示す第２の距離よりも前記第１の距離が小さいと判定された場合、前記実行する手順は、前記回転角度を前記第１の距離に比例した小さい回転角度として実行することを特徴とする、請求項６に記載のプログラム。
【請求項１１】
手が写った入力画像から、画像内の手の位置を検出し、
前記手の位置の複数の過去データについてこれらが回転運動を示していると仮定したときに、最近の前記手の位置がこの回転運動で予測した角度範囲にあることを判定し、
前記角度範囲にあると判定された場合、最新の前記手の位置における回転角度を求めると共にあらかじめ定めた前記手の動きの回転運動に対応する処理を実行する
ことを特徴とする情報処理方法。
【請求項１２】
前記判定の際、最新の前記手の位置と、仮定した前記回転運動の中心からの距離を示す第１の距離をさらに判定し、
仮定した前記回転運動の半径を示す第２の距離よりも、前記第１の距離が所定の値よりも大きいと判定された場合、前記処理を終了することを特徴とする請求項１１に記載の情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に、情報処理装置、プログラム及び情報処理方法に関し、特に、ユーザのジェスチャを認識し、認識されたジェスチャに基づいた制御を行うことができる情報処理装置、プログラム及び情報処理方法に関する。
【背景技術】
【０００２】
従来から、テレビ又はパーソナルコンピュータ等の情報処理装置をユーザがジェスチャにより指示を与えることで操作する方法が提案されている。このような方法によれば、マウス、キーボード、又はリモートコントローラといった入力装置を使用せずに、情報処理装置を遠隔操作することができる。
【０００３】
ジェスチャなどの動きを捕らえる技術として、例えば、カメラでの撮像画像を解析して、操作者の手の動きから手の円軌道の動きを検出・認識できるアルゴリズム技術を開示している（特許文献１参照）。
【特許文献１】特開２００７−１７２５７７公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、特許文献１に記載された、円運動の真円度を数個の座標点から求める方法では、手の早さによって円運動の検出が出来なくなる恐れがある。また、操作中か否かを意識せずに通常状態と操作状態をシームレスに切り替えるには、手の動きが円運動か否かだけで判定するのは難しい。
【０００５】
そこで、本発明は精度良く円運動を検出でき、かつ、操作の切り替えをシームレスに行うことが可能な情報処理装置、プログラム及び情報処理方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するために、本発明の一態様によれば、手が写った入力画像から、画像内の手の位置を検出する位置検出手段と、前記位置検出手段によって検出した前記手の位置のデータを記憶する記憶手段と、前記記憶手段に記憶された前記手の位置の複数の過去データについてこれらが回転運動を示していると仮定したときに、最近の前記手の位置がこの回転運動で予測した角度範囲にあることを判定する回転判定手段と、前記回転判定手段により角度範囲にあると判定された場合、最新の前記手の位置における回転角度を求めると共にあらかじめ定めた前記手の動きの回転運動に対応する処理を実行する実行手段と、を具備することを特徴とする情報処理装置が提供される。
【０００７】
また、前述の情報処理装置に、最新の前記手の位置と前記回転判定手段が仮定した回転運動の中心からの距離を示す第１の距離を判定する距離判定手段をさらに備えた、前記回転判定手段が仮定した回転運動の半径を示す第２の距離よりも、前記第１の距離が所定の値よりも大きいと判定された場合、前記処理を終了することを特徴とする請求項１に記載の情報処理装置が提供される。
【０００８】
また、前述の情報処理装置を計算機で実現する、この計算機で実行可能なプログラムが提供される。
【０００９】
さらに、手が写った入力画像から、画像内の手の位置を検出し、前記手の位置の複数の過去データについてこれらが回転運動を示していると仮定したときに、最近の前記手の位置がこの回転運動で予測した角度範囲にあることを判定し、前記角度範囲にあると判定された場合、最新の前記手の位置における回転角度を求めると共にあらかじめ定めた前記手の動きの回転運動に対応する処理を実行することを特徴とする情報処理方法が提供される。
【発明を実施するための最良の形態】
【００１０】
以下、本発明の実施形態について図面を参照しながら説明する。
【００１１】
まず、図１を参照しつつ、本発明の第１の実施形態に係る情報処理装置について説明する。
【００１２】
図１は、本発明の第１の実施形態に係る情報処理装置の構成を概略的に示すブロック図である。この情報処理装置は、例えば、ノートブック型のパーソナルコンピュータとして実現されている。
【００１３】
図１に示されるように、パーソナルコンピュータ１００は、ＣＰＵ１１１、主メモリ１１２、ノースブリッジ１１３、グラフィクスコントローラ（画面表示部）１１４、ディスプレイ１１５、サウスブリッジ１１６、ハードディスクドライブ（ＨＤＤ）１１７、副プロセッサ１１８、ＢＩＯＳ−ＲＯＭ１１９、エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）１２０、電源回路１２１、バッテリ１２２、ＡＣアダプタ１２３、タッチパッド１２４、キーボード（ＫＢ）１２５、カメラ１２６、及び電源ボタン２１等を備える。
【００１４】
ＣＰＵ１１１は、パーソナルコンピュータ１００の動作を制御するプロセッサである。ＣＰＵ１１１は、ＨＤＤ１１７から主メモリ１１２にロードされる、オペレーティングシステム（ＯＳ）及び各種のアプリケーションプログラムを実行する。また、ＣＰＵ１１１は、ＢＩＯＳ−ＲＯＭ１１９に格納されたＢＩＯＳ（Basic Input/Output System）も実行する。ＢＩＯＳは、周辺デバイスを制御するためのプログラムである。ＢＩＯＳは、パーソナルコンピュータ１００の電源投入時に最初に実行される。
【００１５】
ノースブリッジ１１３は、ＣＰＵ１１１のローカルバスとサウスブリッジ１１６との間を接続するブリッジデバイスである。ノースブリッジ１１３は、ＡＧＰ（Accelerated Graphics Port）バスなどを介してグラフィクスコントローラ１１４との通信を実行する機能を有している。
【００１６】
グラフィクスコントローラ１１４は、パーソナルコンピュータ１００のディスプレイ１１５を制御する表示コントローラである。グラフィクスコントローラ１１４は、ＯＳ又はアプリケーションプログラムによってＶＲＡＭ（図示せず）に書き込まれた表示データから、ディスプレイ１１５に出力すべき表示信号を生成する。ディスプレイ１１５は、例えば、液晶ディスプレイ（ＬＣＤ）である。
【００１７】
サウスブリッジ１１６には、ＨＤＤ１１７、副プロセッサ１１８、ＢＩＯＳ−ＲＯＭ１１９、カメラ１２６、及びＥＣ／ＫＢＣ１２０が接続されている。また、サウスブリッジ１１６は、ＨＤＤ１１７及び副プロセッサ１１８を制御するためのＩＤＥ（Integrated Drive Electronics）コントローラも備えている。
【００１８】
ＥＣ／ＫＢＣ１２０は、電力管理のためのエンベデッドコントローラ（ＥＣ）と、タッチパッド１２４及びキーボード（ＫＢ）１２５を制御するためのキーボードコントローラ（ＫＢＣ）とが集積された、１チップマイクロコンピュータである。ＥＣ／ＫＢＣ１２０は、例えば、電源ボタン２１が操作されたときに、電源回路１２１と共同してパーソナルコンピュータ１００の電源をオンにする。パーソナルコンピュータ１００は、ＡＣアダプタ１２３を介して外部電源が供給される場合、外部電源によって駆動される。外部電源が供給されない場合、パーソナルコンピュータ１００は、バッテリ１２４によって駆動される。
【００１９】
カメラ１２６は、例えばＵＳＢカメラである。カメラ１２６のＵＳＢコネクタは、パーソナルコンピュータ１００の本体に設けられたＵＳＢポート（図示せず）に接続される。カメラ１２６によって撮影された画像（手の動き等）は、パーソナルコンピュータ１００のディスプレイ１１５に表示することができる。カメラ１２６によって供給される画像のフレームレートは、例えば、１５フレーム／秒である。カメラ１２６は、外付けのカメラであっても、パーソナルコンピュータ１００の内蔵カメラであってもよい。
【００２０】
副プロセッサ１１８は、カメラ２６から取り込まれた動画の処理を行う。
【００２１】
図２は、パーソナルコンピュータ１００の機能構成の一部を、より詳細に示すブロック図である。
【００２２】
図２に示されるように、パーソナルコンピュータ１００は、制御部１１、記憶部１２、検出部１３、および表示部１４を備えている。制御部１１は、カメラ１２６から取り込まれた動画像の処理を行う。記憶部１２は、動画像の判別（手の動きかどうか）や、動画像の動作の判定（どのような手の動作か）に用いる各種の閾値等を記憶する。検出部１３は、カメラ１２６から取り込まれた動画像の動作の検出（回転開始動作、回転動作、回転終了動作等）を行う。表示部１４は、検出部１３で検出された動作に応じた画面のスクロール等の処理を表示する。
【００２３】
次に、図３は、本発明の第１の実施形態に係る情報処理装置を適用した情報処理方法の概要を示したフローチャートである。
【００２４】
まず、パーソナルコンピュータ１００の制御部１１は、カメラ１２５から動画像を取り込んで画像処理を行う。画像処理が行われた動画像に対して、検出部１３は、手の動画像であるかを検証し、手の動画像であると判別されると、手の動画像が回転動作をしているかを判別する（ステップＳ１０１）、手の動画像が回転動作をしていると判別されると（ステップＳ１０１のＹＥＳ：回転開始検出）、制御部１１は、回転角を計算する（ステップＳ１０２）。計算された回転角に応じて、表示部１４は、画面のスクロール等の処理を表示する。例えば、右（左）回転の回転動作が検出された場合は、画面を下（上）方向にスクロールする。
【００２５】
そして、回転の終了動作が検出された場合は（ステップＳ１０３のＹＥＳ）、画面のスクロール等を停止する。
【００２６】
次に、上述した回転開始動作の検出、回転動作の検出、回転終了動作の検出等について図４〜図９を参照して詳細に説明する。
【００２７】
（１）回転開始動作の検出について
入力された動画像を動画像フレームとして考える。入力された動画像は、記憶部１２に蓄積されており、過去の動画像フレームを参照することができる。
【００２８】
まず、回転方向を示すフラグｓを初期化する（ステップＳ２０１：図６）。
【００２９】
次に、n番目のフレームから、過去kフレームの出力２０（図４参照）が、手が回転していたかどうかを以下のように判断する。そして、過去kフレームの手位置の中心座標xc(n,k)、yc(n,k)２２（図４参照）を以下のように求める。
【数１】
2009059108.tif 000003
【００３０】
n番目のフレームからi-k+1(0≦i<k)フレーム前の手の位置の、上述した中心座標からの角度θnk(i)と距離dnk(i)、n-(k-1)番目のフレームの撮影時刻を基準とした撮影時刻tnk(n,k,i)を以下を以下のように求める。
【数２】
2009059108.tif 000004
【００３１】
aは以下の条件を満たす整数値を選択する（ステップＳ２０２：図６）。
【数３】
2009059108.tif 000005
【００３２】
【数４】
2009059108.tif 000006
【００３３】
θnk(i)とtnk(n,k,i)、dnk(i)とtnk(n,k,i)に対してそれぞれ最小２乗法による線形回帰分析を行い、θnk(i)の予測値Θnk(i)とdnk(i)の予測値Dnk(i)を求めるための相関係数Aθnk、Bθnk、Adnk、Bdnkと、相関関係の強さを表す決定係数を求める。
【００３４】
θnk(i)とtnk(n,k,i)との相関の決定係数をCDθnk、dnk(i)とtnk(n,k,i) との相関の決定係数をCDdnkとおく。
【００３５】
Θnk(i)、Dnk(i)は、相関係数Aθnk、Bθnk、Adnk、Bdnkを用いて以下のように表される（図５参照）。
【数５】
2009059108.tif 000007
【００３６】
開始角度θSnk(i)と終了角度θEnk(i)を、実測値θnk(i)と予測値Θnk(i)を比較して開始から終了までの角度範囲が狭くなるように求める。(これは必須ではなく、無くても動作する)
0<Aθnkのとき
【数６】
2009059108.tif 000008
【００３７】
それ以外のとき
【数７】
2009059108.tif 000009
【００３８】
以下の条件を満たすとき、nフレーム目から過去kフレームにおいて、xc(n,k)、yc(n,k)を中心として回転運動が行われていたとみなし、回転操作を開始する。
【数８】
2009059108.tif 000010
【００３９】
Angle_Thresholdは回転角度の閾値で、過去kフレーム間に回転した角度がこの値以上のときに回転操作を行っているとみなす。2π〜4π程度の値を使用する。
【００４０】
CD_θ_Thresholdは角度が時間が線形回帰していることを確認するための閾値。角度と時間は強い相関を持つ必要があるので、1に近い値(0.9など)を使用する。
【００４１】
CD_d_Thresholdは中心からの距離と時間が線形回帰していることを確認するための閾値。距離は角度ほどの相関を持つ必要はないため、CD_θ_Thresholdよりも小さい値を使用する。
【００４２】
一定フレームの検出結果を受信する毎に、複数範囲の過去フレームに対して上述した処理を実行することにより、様々な速度で行われた回転操作を検出することが可能となる。
【００４３】
また、回転操作を開始したときに、中心座標xc(n,k)、yc(n,k)と中心座標からの距離の平均dm(n,k)
【数９】
2009059108.tif 000011
【００４４】
を記憶部１２に記憶する。
【００４５】
（２）回転動作の検出について
回転動作を検出すると、手による回転操作開始後は、回転の中心と現在の手の位置を画面上に表示し、回転の中心と現在の手の位置との角度と距離に応じた回転量変化を算出し、スクロールなどの操作を行う。
【００４６】
回転操作中の回転の中心をxc、yc、回転の中心から手の位置の平均距離をdmとして保持する。回転開始時は、xc、yc はそれぞれxc(n,k)、yc(n,k) 、dmはdm(n,k)となる。
【００４７】
また、回転方向を示す符号sを保持する。回転開始時はsはAθnkの符号に等しい。
【００４８】
n番目のフレームにおける、回転の中心と手の位置との角度をθc(n)、距離をdc(n)とおく。
【数１０】
2009059108.tif 000012
【００４９】
まず、前フレームからの角度変化dθ(n)を以下のように求める。
【数１１】
2009059108.tif 000013
【００５０】
dθ(n)の符号がsと等しい場合、前フレームからの角度変化の大きさを示す値θMを以下ステップで求める。
【００５１】
1)θM= dθ(n)とする。
【００５２】
2)dc(n)< dmのとき、θMをdc(n)/ dm倍する。
【００５３】
回転の中心近くを通るように手を動かすと、少ない手の移動量でも角度変化は大きくなり、誤って大量の操作を行ってしまう可能性があるので、操作量を減らす。(任意オプションとする：ステップＳ２０３のＹＥＳ、ステップＳ２０４：図６、図７参照)
dθ(n)の符号がsと異なる場合（ステップＳ２０５のＹＥＳ：図６）、θMは0とし（ステップＳ２０６：図６）、最後にsと同じ方向に回転させたときのθcよりも一定角度（π/2など）以上sと異なる方向に移動させたとき（ステップＳ２０７のＹＥＳ：図６）、sの符号を反転する（ステップＳ２０８：図６）。
【００５４】
3)dθ_Threshold <abs(dθ(n))のとき（ステップＳ２０９のＹＥＳ：図６）、θMを(π- abs(dθ(n)))/(π-dθ_Threshold)倍する（ステップＳ２１０：図６）。
【００５５】
dθがπに近いときは、どちらの方向に回転させたかの判断が難しいので操作量を減らす。(任意のオプションとする)
上述した方法で求めたθMを操作量とし、（ステップＳ２１１：図６）画面スクロールなどの操作を行う。
【００５６】
たとえば、θMが-π以下だと上に1画面スクロールし、π以上だと下に一画面スクロールする等である。
【００５７】
回転操作開始後も、(1)回転開始と同じように回転開始検出処理を行い、回転を検出したときは、xc、yc、dmを新しく検出した回転の中心・平均距離に近づくように更新する（ステップＳ２１２：図６）。
【００５８】
（３）回転終了動作の検出について
通常の回転動作中（図８参照）は、上述したの処理により回転操作量を求める。また、以下の処理により回転終了の判断を行う（ステップＳ２１４：図６）。
【００５９】
前フレームとの手の位置の差分dx(n)、dy(n)を以下で求める。
【数１２】
2009059108.tif 000014
【００６０】
回転操作の円周方向への移動量をc(n)、円周と直交方向への移動量をr(n)とおく。
【数１３】
2009059108.tif 000015
【００６１】
外周方向への移動量o(n)を以下で求める。
【数１４】
2009059108.tif 000016
【００６２】
o(n)の累積値をoh(n)とおく。
【数１５】
2009059108.tif 000017
【００６３】
以下のいずれかの条件を満たすとき回転操作を終了する（ステップＳ２１３：図６、図９参照)）。
【００６４】
１つ目の条件は外周方向への移動量が大きいことを表し、２つ目の条件は中心から大きく離れていることを表す。
【数１６】
2009059108.tif 000018
【００６５】
回転の開始を手の動きだけで判断することにより、通常はカーソル操作などの他の操作を行いながら、手を回転させたときのみ回転による操作を行うことができる。
【００６６】
回転中に、中心位置と現在の手の位置を画面に表示し、中心と現在の手の位置との角度に応じて操作を行うことにより、ユーザーが回転量の調節や回転方向の反転を行うことが容易になる。
【００６７】
回転の終了を手の動きだけで判断することにより、回転操作を行いながら手の回転を止めたときに、通常のカーソル操作を行うことが可能となる。
【００６８】
以上、本実施形態によれば、容易な構成で精度良く円運動を検出でき、また、検出された円運動に応じてカーソルを移動させたることができる。さらに、容易に円運動の終了も行うことができる。
【００６９】
なお、本発明は、上述した実施形態そのままに限定されるものではない。本発明は、実施段階では、その要旨を逸脱しない範囲で構成要素を変更して具現化できる。
【００７０】
また、上述した実施形態に開示されている複数の構成要素を適宜に組み合わせることで、種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態にわたる構成要素を適宜組み合わせてもよい。
【図面の簡単な説明】
【００７１】
【図１】本発明の一実施形態に係る情報処理装置の構成例を概略的に示すブロック図。
【図２】本発明の一実施形態に係る情報処理装置の機能構成を示すブロック図。
【図３】本発明の一実施形態に係る情報処理方法を説明するためのフローチャート。
【図４】中心座標を算出するための方法を示した概念図。
【図５】線形回帰分析を用いて回転角を算出するための方法を示した概念図。
【図６】本発明の一実施形態に係る情報処理方法を詳細に説明するためのフローチャート。
【図７】ユーザが手で小さい円を描いたときの概念図。
【図８】ユーザが手で通常の円を描いたときの概念図。
【図９】ユーザが手で円よりも外側に手を移動させたときの概念図。
【符号の説明】
【００７２】
１１…制御部、１２…記憶部、１３…検出部、１４…表示部、２１…電源ボタン、１００…ポータブルコンピュータ、１１１…ＣＰＵ，１１２…主メモリ、１１３…ノースブリッジ、１１４…グラフィクスコントローラ、１１５…ディスプレイ、１１６…サウスブリッジ、１１７…ハードディスクドライブ（ＨＤＤ）、１１８…副プロセッサ、１１９…ＢＩＯＳ−ＲＯＭ、１２０…エンベデッドコントローラ／キーボードコントローラＩＣ（ＥＣ／ＫＢＣ）、１２１…電源回路、１２２…バッテリ、１２３…ＡＣアダプタ、１２４…タッチパッド、１２５…キーボード（ＫＢ）、１２６…カメラ
【図１】
2009059108.tif 000019
【図２】
2009059108.tif 000020
【図３】
2009059108.tif 000021
【図４】
2009059108.tif 000022
【図５】
2009059108.tif 000023
【図６】
2009059108.tif 000024
【図７】
2009059108.tif 000025
【図８】
2009059108.tif 000026
【図９】
2009059108.tif 000027