説明

情報処理装置および方法、並びにプログラム

【課題】カメラにより撮像された画像に基づいて、簡単かつ確実にコマンドを入力できるようにする。
【解決手段】ディスプレイ12上にカメラ11を搭載するパーソナルコンピュータ1において、ユーザが手2でディスプレイ12をタップすると、カメラ11も振動する。カメラ11により撮像された画像が取得され、取得された画像から振動情報が算出され、算出された振動情報に基づいて振動コマンドが判定される。振動コマンドが入力された場合、そのコマンドに対応付けられた所定の処理が制御される。対応する処理として、例えば、音楽プレイヤの再生と停止が制御される。本発明は、例えば、カメラ付きのパーソナルコンピュータに適用できる。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、簡単かつ確実にコマンドを入力できるようにした情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【0002】
パーソナルコンピュータにおける入力は、キーボードやマウスにより行われることが多い。すなわち、ユーザは、所定のコマンドを入力する場合、キーボードで所定の文字を入力したり、マウスで所定のアイコンをクリックするなどの操作を行う。
【0003】
キーボードやマウスは、それらを載置する机、テーブルなどを必要とする。そこでパーソナルコンピュータにカメラを搭載し、カメラでユーザの手を撮像し、ユーザのジェスチャを認識してそのジェスチャに応じた処理を行うことが提案されている(例えば特許文献1)。
【特許文献1】特開2009−75685号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、カメラにより撮像された画像からジェスチャを認識する場合、ジェスチャが誤認識されることがある。その結果、入力に時間がかかったり、簡単かつ確実にコマンドを入力することができないことがあった。
【0005】
本発明は、このような状況に鑑みてなされたものであり、簡単かつ確実にコマンドを入力することができるようにするものである。
【課題を解決するための手段】
【0006】
本発明の一側面の情報処理装置は、対象物を撮像する撮像手段と、前記撮像手段により撮像された画像を取得する取得手段と、前記取得手段により取得された画像に基づいて、振動情報を算出する算出手段と、前記算出手段により算出された前記振動情報に基づいて、振動コマンドを判定する判定手段と、前記判定手段により判定された前記振動コマンドに基づいて、所定の処理を実行する制御手段とを備える。
【0007】
前記判定手段により前記振動コマンドが、前記情報処理装置の移動終了後、所定時間内に発生した場合、前記制御手段は、前記所定の処理の実行を禁止することができる。
【0008】
前記算出手段は、前記取得手段により取得された画像の特徴点の位置および速度ベクトルに基づいて前記振動情報を算出することができる。
【0009】
前記算出手段は、前記振動の周波数を算出し、前記判定手段は、前記周波数が閾値以上のとき、前記振動を振動コマンドの振動と判定することができる。
【0010】
前記取得手段は、ユーザのジェスチャをさらに取得し、前記制御手段は、前記判定手段により前記振動コマンドの振動が発生していないと判定された場合、前記所定の処理を実行せずに、前記ジェスチャに対応する処理を実行し、前記判定手段により前記振動コマンドの振動が発生したと判定された場合、前記ジェスチャを無効化することができる。
【0011】
前記判定手段は、前記速度ベクトルが同じ方向である前記特徴点の数の割合が閾値以上であるとき、前記振動コマンドの振動が発生したと判定することができる。
【0012】
本発明の一側面の情報処理方法は、対象物を撮像する撮像ステップと、前記撮像ステップの処理により撮像された画像を取得する取得ステップと、前記取得ステップの処理により取得された画像に基づいて、振動情報を算出する算出ステップと、前記算出ステップの処理により算出された前記振動情報に基づいて、振動コマンドを判定する判定ステップと、前記判定ステップの処理により判定された前記振動コマンドに基づいて、所定の処理を実行する制御ステップとを含む。
【0013】
本発明の一側面のプログラムは、撮像手段により撮像された画像を取得する取得ステップと、前記取得ステップの処理により取得された画像に基づいて、振動情報を算出する算出ステップと、前記算出ステップの処理により算出された前記振動情報に基づいて、振動コマンドを判定する判定ステップと、前記判定ステップの処理により判定された前記振動コマンドに基づいて、所定の処理を実行する制御ステップとをコンピュータに実行させる。
【0014】
本発明の一側面においては、対象物が撮像され、撮像された画像が取得され、取得された画像に基づいて、振動情報が算出され、算出された振動情報に基づいて、振動コマンドが判定され、判定された振動コマンドに基づいて、所定の処理が実行される。
【発明の効果】
【0015】
本発明によれば、簡単かつ確実にコマンドを入力することが可能になる。
【図面の簡単な説明】
【0016】
【図1】パーソナルコンピュータの外観の構成を示す図である。
【図2】本発明を適用したパーソナルコンピュータのハードウェアの構成例を示すブロック図である。
【図3】CPUの機能的構成例を示すブロック図である。
【図4】振動コマンド認識処理を説明するフローチャートである。
【図5】パーソナルコンピュータがタップされた場合の画像の表示例を示す図である。
【図6】特徴点と軌跡の関係を示す図である。
【図7】特徴点と軌跡の表示例を示す図である。
【図8】パーソナルコンピュータが移動された場合の画像の表示例を示す図である。
【図9】ジェスチャ認識処理を説明するフローチャートである。
【発明を実施するための最良の形態】
【0017】
図1は、本発明が適用されるパーソナルコンピュータ1の一実施形態としての構成例を示す図である。
【0018】
図1のノート型のパーソナルコンピュータ1は、本体13と、カメラ11が搭載されているディスプレイ12から構成されている。ディスプレイ12は、本体13に対して開閉自在とされている。
【0019】
対象物を撮像する撮像手段としてのカメラ11は、単眼カメラ、ステレオカメラ、赤外線カメラ、ビデオカメラ等で構成され、被写体としてのユーザの静止画または動画を撮像する。
【0020】
パーソナルコンピュータ1は、カメラ11により撮像された画像を取得し、ユーザが手2でカメラ11を搭載するパーソナルコンピュータ1がタップされた振動を振動情報として算出する。
【0021】
そして、算出された振動情報に基づいて、パーソナルコンピュータ1をタップすることで入力される振動コマンドが認識され、認識された振動コマンドに対応する所定の処理が実行される。
【0022】
これにより、ユーザは、カメラ11を搭載するパーソナルコンピュータ1を任意の個所をタップすることでパーソナルコンピュータ1の動作を制御することができる。
【0023】
[パーソナルコンピュータの構成]
【0024】
図2は、パーソナルコンピュータ1のハードウェアの構成例を示すブロック図である。
【0025】
コンピュータ1において、CPU22,ROM(Read Only Memory)23,RAM(Random Access Memory)24は、バス25により相互に接続されている。バス25には、さらに、入出力インタフェース26が接続されている。入出力インタフェース26には、カメラ11、キーボード、タッチパネル、タッチパッド、ペンデバイス、マウス、マイクロフォンなどよりなる入力部27、ディスプレイ12、スピーカ(図示せず)などよりなる出力部21、ハードディスクや不揮発性のメモリなどよりなる記憶部28が接続されている。さらに、入出力インタフェース26には、ネットワークインタフェースなどよりなる通信部29、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア31を駆動するドライブ30が接続されている。
【0026】
以上のように構成されるパーソナルコンピュータ1では、CPU22が、例えば、記憶部28に記憶されているプログラムを、入出力インタフェース26及びバス25を介して、RAM24にロードして実行することにより、上述した一連の処理が行われる。CPU22が実行するプログラムは、パッケージメディアであるリムーバブルメディア31に記録して提供される。なお、パッケージメディアとしては、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどが用いられる。あるいは、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。そして、プログラムは、リムーバブルメディア31をドライブ30に装着することにより、入出力インタフェース26を介して、記憶部28にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部29で受信し、記憶部28にインストールすることができる。その他、プログラムは、ROM23や記憶部28に、あらかじめインストールしておくことができる。
【0027】
なお、パーソナルコンピュータ1が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【0028】
図3は、CPU22の機能的構成例を示すブロック図である。
【0029】
CPU22は、取得部41、検出部42、制御部43、判定部44、算出部45、振動コマンド認識部46、記憶部47、およびジェスチャ認識部48から構成されている。なお、CPU22の各ブロックは、必要に応じて相互に信号を授受することが可能とされている。
【0030】
CPU22において、取得手段としての取得部41は、各種情報を取得する。検出部42は、カメラ11により撮像された画像から振動を検出するための情報を検出する。制御手段としての制御部43は、各種処理を制御する。判定手段としての判定部44は、処理が所定の条件を満たしているかを判定する。算出手段としての算出部45は、振動情報等を算出する。振動コマンド認識部46は、パーソナルコンピュータ1に与えられた振動によるコマンドを認識する。記憶部47は、所定の情報をRAM24または記憶部28に記憶する。ジェスチャ認識部48は、ジェスチャを認識する。ジェスチャとは、ユーザが手2を3次元空間で移動させたり、所定の形状にして行われる操作である。
【0031】
[振動コマンド認識処理]
【0032】
図4は、ユーザのタップの操作を振動コマンドとして認識する振動コマンド認識処理を説明するフローチャートである。振動コマンド認識処理は、ユーザにより、カメラ11と振動コマンドを認識するアプリケーションの起動が指示されたときに実行される。
【0033】
ステップS1において、取得部41は、カメラ11により撮像された画像を取得する。カメラ11から取得される画像は、例えば、撮像した画像そのものでもよいし、編集された画像、例えば濃淡画像などでもよい。
【0034】
ステップS2において、検出部42は、取得された画像から複数の特徴点を検出する。特徴点とは、画像中における縦方向と横方向の色(または輝度値)の変化がともに大きい点である。すなわち画素値の変化が大きい画素のうち、画面内に全体的に平均的に分散して位置するように、所定の複数の画素が特徴点としてランダムに選択される。
【0035】
ステップS3において、制御部43は、検出された特徴点を追跡する。すなわち、特徴点の追跡は、特徴点が検出された2枚の画像(例えば、現在のフレームの画像と1フレーム前の画像)に対して、マッチングの処理や差分を算出する処理を実行することで、同様の値となる画素が同一の特徴点として追跡される。
【0036】
パーソナルコンピュータ1がタップされた場合の画像中の特徴点を表示する例を図5に示す。図5は、カメラ11を搭載するパーソナルコンピュータ1がタップされた場合に、カメラ11により撮像される画像の表示例を示す図である。
【0037】
表示窓61には、カメラ11により撮像された画像であって、左右が反転されたミラー画像81−1、認識結果82、特徴点101−1乃至101−9、および特徴点101−1乃至101−9の軌跡102−1乃至102−9が表示されている。
【0038】
なお、便宜上、符号は、代表的な特徴点と軌跡にのみ付されている。また、以下、特徴点101−1乃至101−9、および軌跡102−1乃至102−9を個々に区別する必要がない場合、単に特徴点101または軌跡102と記載する。
【0039】
図5の例の表示窓61には、画像81−1として、ユーザと背景画像が表示されている。ここでステップS2の特徴点を検出する処理およびステップS3の特徴点を追跡する処理が実行されると、画像81−1上に特徴点101および対応する軌跡102が表示される。
【0040】
図5の例では、簡単のため特徴点101−1乃至101−9と対応する軌跡102−1乃至102−9について説明する。
【0041】
図5の例では、背景画像内の境界上、例えば、天井と蛍光灯の境界上の特徴点101−1乃至101−5や、ユーザと背景画像の境界上、例えば、特徴点101−6乃至101−8などが、特徴点とされている。そして、特徴点101−1乃至101−8のそれぞれに対応する軌跡102−1乃至102−8が表示される。
【0042】
例えば、ユーザが移動した場合、ユーザと背景画像の境界上の特徴点101−6乃至101−8が移動し、対応する軌跡102−6乃至102−8が表示される。
【0043】
これに対して、パーソナルコンピュータ1のディスプレイ12がユーザによりタップされると、ディスプレイ12は、本体13に対して開閉自在とされているので、本体13との接合部を中心として、図1において矢印14で示されるように、前後方向に振動する。これによりディスプレイ11の上部に装着されているカメラ11の撮像位置が上下方向に振動する。
【0044】
なお、追跡は、画像内にまんべんなく配置された特徴点101に対して行われることが望ましい。したがって、例えば特徴点101−3乃至101−5などのように、相互の距離が近い特徴点101はいずれかを削除し、例えば、特徴点101−9のように、それらから充分離れて位置する特徴点101を追跡するのが好ましい。
【0045】
次に、ディスプレイ11がタップされた場合における特徴点と軌跡の関係について図6と図7を用いて説明する。
【0046】
図6は、特徴点101の位置の変化を2次元のグラフに示す図である。図6において、横軸は時刻tを表し、縦軸は画面内の縦方向のy座標を表している。y座標においては、特徴点が静止している位置が0とされている。
【0047】
ディスプレイ11がタップされると、カメラ11が上下に振動し、次第に収束して、ついには静止する。したがって特徴点101の位置は、y座標の0を基準として上下に変化するので、その運動を時間軸に展開して得られる軌跡102に対応する信号103は、図6に示されるように、正弦波状の信号となる。その振幅は次第に小さくなり、ついには0に収束する。
【0048】
図7は、ディスプレイ11がタップされた場合において、図5の表示窓61上に表示される1つの特徴点101と軌跡102のモデル的表示例を示す図である。
【0049】
特徴点101のy座標が図6に示されるように周期的に変化するので、特徴点101が、図6の特徴点101−31−1の位置(すなわち、y座標の正のピーク値)にあるとき、特徴点101は、図7Aに示されるように、軌跡102の上端部に位置する。
【0050】
特徴点101が、図6の特徴点101−31−2の位置(すなわち、y座標の負のピーク値)にあるとき、特徴点101は、図7Bに示されるように、軌跡102の下端部に位置する。
【0051】
特徴点101が、図6の特徴点101−31−3の位置(すなわち、y座標が0の位置)にあるとき、特徴点101は、図7Cに示されるように、軌跡102の中央部に位置する。
【0052】
特徴点101と軌跡102が、図7A乃至図7Cのように表示されることで、ユーザは、表示窓61に表示された特徴点101がどちらの方向に移動しているかを判断することができる。
【0053】
図4に戻り、ステップS3の特徴点追跡処理の後、ステップS4において、判定部44は、特徴点の数が閾値以上であるかを判定する。すなわち、振動情報を算出するために必要な特徴点の数が十分であるかが判定される。振動情報とは、例えば振動の周波数などである。
【0054】
ステップS4において、特徴点の数が所定の閾値より少ないと判定された場合、すなわち、振動情報を算出するために十分な数の特徴点が存在しないと判定された場合、処理はステップS2に戻り、同様の処理が繰り返される。すなわち新たな特徴点が検出される。
【0055】
ステップS4において、特徴点の数が所定の閾値以上であると判定された場合、すなわち、振動情報を算出するために十分な数の特徴点が存在すると判定された場合、ステップS5において、算出部45は、特徴点の位置を算出する。
【0056】
すなわち図5の例では、画像81−1上の特徴点101のx,y座標がそれぞれ算出される。
【0057】
ステップS6において、算出部45は、複数の特徴点の速度ベクトルを算出する。速度ベクトルは、例えば、ある特徴点101−51の現在のフレームの位置と、1フレーム前の位置との差分を、1フレームの時間で除算することで算出される。
【0058】
ステップS7において、制御部43は、算出された速度ベクトルに基づいて特徴点をクラスタリングする。クラスタリングとは、データの集合をクラスタという部分集合に切り分ける処理である。
【0059】
算出された速度ベクトルが同じ方向を向いている特徴点同士を同じクラスタに分類することで、似た動きをする特徴点が1つのグループに分類される。なおクラスタリングには、角度の一次元のヒストグラムを算出する手法、またはk-meansのような既存のクラスタリングの手法を用いることができる。
【0060】
例えば図5の表示例で、ユーザが移動した場合、ユーザの顔の上に位置する特徴点101−6,101−8,101−9がほぼ同じ方向に移動する。その結果、クラスタリングの処理により、この特徴点101−6,101−8,101−9が1つの部分集合として分類される。これに対して背景画像の上の特徴点101−1乃至101−5,101−7は、移動しない。
【0061】
一方、ディスプレイ12がタップされた場合、ユーザの顔や背景画像を含む画面の全体が振動するので、特徴点101−1乃至101−9を含むほとんどすべての特徴点が同じ方向に(すなわち上または下方向に)移動する。したがって特徴点101−1乃至101−9を含む多くの特徴点が1つの部分集合として分類される。
【0062】
そこでステップS8において、判定部44は、同じ方向に動く特徴点の全特徴点に対する割合が閾値以上であるかを判定する。すなわちこれにより、カメラ11を搭載するパーソナルコンピュータ1が振動したかが判定される。
【0063】
なお本体13に対するディスプレイ12の支持の方法によっては、タップされた場合、ディスプレイ12が回転する場合がある。ステップS8の処理において、同じ方向に動く特徴点の割合が所定の閾値以上かを判定する手法では、カメラ11の中心軸周りの回転の動きは検出できない。
【0064】
そこでこのような場合、カメラ11から取得した画像の中心を原点とした各特徴点の軌跡の外積を算出することで、ディスプレイ12の回転を検出することができる。
【0065】
ステップS8において、同じ方向に動く特徴点の割合が所定の閾値より小さいと判定された場合、すなわち、カメラ11を搭載するディスプレイ12が振動していないと判定された場合、ユーザによるタップの操作は実行されていないので、処理はステップS1に戻り、それ以降の処理が繰り返される。
【0066】
ステップS8において、同じ方向に動く特徴点の割合が所定の閾値以上であると判定された場合、すなわち、カメラ11を搭載するディスプレイ12が振動したと判定された場合、ステップS9において、算出部45は、振動情報として、縦方向の振動の周波数を算出する。
【0067】
振動の周波数は、特徴点の位置に基づいて算出される単位時間あたりの振動回数により算出される。具体的には図6の信号の周波数が算出される。
【0068】
縦方向の振動の周波数を算出するのは、図1に示されるノート型のパーソナルコンピュータ1の場合、ディスプレイ12が本体13に対して回動自在に支持されているため、振動方向が縦方向になるためである。
【0069】
したがって、振動させるデバイスの種類に応じて算出する振動方向を変えてもよい。
【0070】
ステップS10において、判定部44は、算出された周波数が閾値以上かを判定する。例えばユーザがパーソナルコンピュータ1全体を保持して移動させたような場合、多くの特徴点が同じ方向に移動する。
【0071】
しかし、この場合の特徴点の移動は、ディスプレイ12がタップされた場合に比べて遅いので、周波数は低い。そこで、周波数を所定の閾値と比較することで、振動の種類がタップの振動であるかが判定される。
【0072】
ステップS10において算出された周波数が所定の閾値より小さいと判定された場合、すなわち、振動の種類がタップ以外の振動であると判定された場合、ステップS11において、振動コマンド認識部46は、振動の種類をパーソナルコンピュータ1の移動として認識する。
【0073】
振動の種類が移動として認識された場合の画像中の特徴点とその軌跡を表示した例を図8に示す。
【0074】
図8は、カメラ11を搭載するパーソナルコンピュータ1の振動の種類が移動として認識された場合に表示される画像の表示例を示す図である。
【0075】
図8の例の表示窓61には、カメラ11から取得された画像81−2、特徴点101、特徴点の軌跡102が表示されている。図8の例では、特徴点101−51乃至101−54と、それらに対応する軌跡102−51乃至102−54を含む全ての特徴点とそれらに対応する軌跡の形状は同様の形状となっている。
【0076】
すなわち図7Bに示したように、特徴点101の上側に軌跡102が表示されている。したがってカメラ11を搭載するパーソナルコンピュータ1は、上方向に向かって移動されたことになる。
【0077】
図4に戻り、ステップS12において、記憶部47は、移動情報を記憶する。移動情報とは、例えば、振動の種類が移動として認識されたときの時刻の情報である。
【0078】
すなわち移動情報としては、ステップS1乃至ステップS12の処理が繰り返し行われることにより最終的に、カメラ11を搭載するパーソナルコンピュータ1の移動が終了したときの時刻が記憶される。
【0079】
ステップS10において、算出された周波数が所定の閾値以上であると判定された場合、その振動はユーザによりディスプレイ12がタップされた場合の振動と考えられる。すなわち、ユーザにより振動コマンドが入力された可能性がある。
【0080】
この場合、ステップS13において、判定部44は、移動終了後、所定時間が経過したかを判定する。すなわち、移動情報に記憶されている時刻から所定時間が経過したかが判定される。
【0081】
ステップS13において、移動終了後、所定時間が経過していないと判定された場合、すなわち、移動情報に記憶されている時刻からまだ所定時間が経過していない場合、処理はステップS1に戻る。
【0082】
これによりステップS14,S15のタップを認識し、それに対応する処理の実行が禁止される。
【0083】
つまり、例えば、ディスプレイ12にカメラ11を搭載するノート型のパーソナルコンピュータ1をテーブルに置いた直後、ディスプレイ12はしばらくの時間振動する。
【0084】
また、ノート型のパーソナルコンピュータ1のディスプレイ12を閉じた状態から開いた直後、しばらくの時間、ディスプレイ12が振動する。
【0085】
これらの振動はユーザによりディスプレイ12がタップされた場合の振動と同様の振動であるから、振動コマンドの候補の振動であるが、実際にユーザにより振動コマンドが入力された訳ではない。
【0086】
そこで、これらの振動が、タップによる振動、つまり振動コマンドの振動と誤認識されるのが防止される。
【0087】
ステップS13において、移動終了後、所定時間が経過していると判定された場合、すなわち、移動情報に記憶されている時刻から所定時間が経過していると判定された場合、ステップS14において、振動コマンド認識部46は、振動コマンドの種類をタップとして認識する。
【0088】
つまり、ユーザがディスプレイ12に積極的に振動を与えることで入力した振動コマンドであると認識される。
【0089】
換言すれば、例えばカメラ11で撮影を行うとき、画像がぶれてしまうので、カメラ11は振動させないようにすることが望まれる。すなわち、その場合の振動はノイズである。
【0090】
それに対して、タップによる振動はノイズとしての振動ではなく、ユーザが望んで所定の入力を行うために与えるものであり、信号としての振動である。
【0091】
ステップS15において、制御部43は、タップに対応する処理を実行する。タップに対応する処理とは、タップによる振動コマンドに応じて行われる処理である。
【0092】
例えば、音楽プレイヤのアプリケーションを操作する場合、制御部43は、タップによる振動コマンドが認識されるごとに音楽プレイヤによる曲の再生と停止が切換えられる。
【0093】
もちろん、この他、パーソナルコンピュータ1の電源のオンとオフを振動コマンドに対応づけることもできる。
【0094】
また制御部43は、図5に示されるように、表示窓61内に「SHAKE」と認識結果82を表示する。これはタップによる振動コマンドが認識されたことを意味する。表示窓61がディスプレイ12に表示されていない場合、認識結果82はディスプレイ12内の任意の領域内に表示されてもよい。
【0095】
ステップS15の処理の後、処理はステップS1に戻り、同様の処理が繰り返される。
【0096】
このようにカメラ11を搭載するパーソナルコンピュータ1は、カメラ11だけを用いてユーザがディスプレイ12をタップして入力する振動コマンドを認識することができる。
【0097】
もちろんユーザがタップする箇所は任意であり、ディスプレイ12に限られない。
【0098】
なお、図4の例では、パーソナルコンピュータ1の振動情報を、特徴点に基づいて算出したが、振動情報を算出する方法はこれに限られない。振動情報は、例えば、ブロックマッチングの手法を使用し、取得された画像全体のオプティカルフローに基づいて算出するようにしてもよい。
【0099】
[ジェスチャ認識処理]
【0100】
図4の振動コマンド認識処理は、ジェスチャでコマンドを入力する場合にも適用することができる。図9は、この場合のジェスチャ認識処理を説明するフローチャートである。
【0101】
図9において、ステップS33乃至S39,S43乃至S49の処理は、図4のステップS1乃至S15の処理と同様の処理である。したがって、その詳細な処理は繰り返しになるので適宜省略する。
【0102】
ステップS31において、ジェスチャ認識部48は、ジェスチャを認識する。ジェスチャとは、ユーザが所定のコマンドを入力するために、3次元空間で行う手振り、手の形状などの操作である。
【0103】
ジェスチャの認識は、例えば次のように行われる。すなわち、時間的に前後する2フレームの画像の差分を演算して、移動する手の領域が検出される。そして手の面積の重心が求められ、重心の軌跡を予め用意されているジェスチャの基本パターンと比較することで、最も近い基本パターンのジェスチャが入力されたものとして識される。
【0104】
ステップS32において、取得部41は、認識されたジェスチャおよびカメラ11により撮像された画像を取得する。
【0105】
ステップS33において、検出部42は、特徴点を検出する。ステップS34において、制御部43は、特徴点を追跡する。
【0106】
ステップS35において、判定部44は、特徴点の数が閾値以上かを判定する。特徴点の数が閾値より少ないと判定された場合、処理はステップS33に戻り、それ以降の処理が繰り返される。特徴点の数が閾値以上であると判定された場合、ステップS36において、算出部45は、特徴点の位置を算出する。
【0107】
ステップS37において、算出部45は、特徴点の速度ベクトルを算出する。ステップS38において、制御部43は、特徴点をクラスタリングする。
【0108】
ステップS39において、判定部44は、同じ方向に動く特徴点の割合が閾値以上であるかを判定する。同じ方向に動く特徴点の割合が閾値より少ないと判定された場合、ステップS40において、振動コマンド認識部46は、振動なしとして認識する。すなわち、振動コマンドの振動が発生していないと認識する。
【0109】
ステップS41において、制御部43は、ジェスチャに対応する処理を実行する。これにより、例えば音楽プレイヤにおいて、ユーザがカメラ11の前で行った手の動かし方に応じて、曲を早送りしたり、巻き戻したり、一時停止したりする処理が行われる。
【0110】
一方、ステップS39において、同じ方向に動く特徴点の割合が閾値以上であると判定された場合、ステップS42において、制御部43は、ジェスチャを無効化する。すなわち制御部43は、ステップS31で認識されたジェスチャに対応する処理の実行を禁止する。
【0111】
ステップS43において、算出部45は、振動の周波数を算出する。ステップS44において、判定部44は、周波数が閾値以上かを判定する。ステップS44において、周波数が閾値より小さいと判定された場合、ステップS45において、振動コマンド認識部46は、振動を移動として認識する。ステップS46において、記憶部47は、移動情報を記憶する。
【0112】
ステップS44において、周波数が閾値以上であると判定された場合、ステップS47において、判定部44は、移動終了後、所定時間が経過したかを判定する。
【0113】
ステップS47において、移動終了後、所定時間が経過したと判定された場合、ステップS48において、振動コマンド認識部46は、振動をタップとして認識する。ステップS49において、制御部43は、タップに対応する処理を実行する。
【0114】
ステップS41,S46,S49の処理の後、またはステップS47において移動終了後、所定時間が経過していないと判定された場合、処理はステップS1に戻り、同様の処理が繰り返される。
【0115】
このように、カメラ11を搭載するディスプレイ12が振動している場合、制御部43はジェスチャに対応する処理の実行を禁止する。これにより、ユーザが意図しないジェスチャが誤って認識されることを防止することができる。
【0116】
なお本明細書では、カメラ11を搭載するノート型のパーソナルコンピュータ1を使用して、タップによる振動コマンドを認識する例を示したが、タップする装置はパーソナルコンピュータ1に限られない。
【0117】
例えば、カメラ付きのテレビジョン受像機やモニタをタップすることで、電源のオンとオフの操作をするようにしてもよい。
【0118】
またテレビジョン受像機やモニタのような据え置きデバイスの場合、移動を認識する処理は行わないようにしてもよい。
【符号の説明】
【0119】
1 パーソナルコンピュータ, 11 カメラ, 12 ディスプレイ, 22 CPU, 41 取得部, 43 制御部, 44 判定部, 45 算出部

【特許請求の範囲】
【請求項1】
対象物を撮像する撮像手段と、
前記撮像手段により撮像された画像を取得する取得手段と、
前記取得手段により取得された画像に基づいて、振動情報を算出する算出手段と、
前記算出手段により算出された前記振動情報に基づいて、振動コマンドを判定する判定手段と、
前記判定手段により判定された前記振動コマンドに基づいて、所定の処理を実行する制御手段と
を備える情報処理装置。
【請求項2】
前記判定手段により前記振動コマンドが、前記情報処理装置の移動終了後、所定時間内に発生した場合、前記制御手段は、前記所定の処理の実行を禁止する
請求項1に記載の情報処理装置。
【請求項3】
前記算出手段は、前記取得手段により取得された画像の特徴点の位置および速度ベクトルに基づいて前記振動情報を算出する
請求項2に記載の情報処理装置。
【請求項4】
前記算出手段は、前記振動の周波数を算出し、
前記判定手段は、前記周波数が閾値以上のとき、前記振動を振動コマンドの振動と判定する
請求項3に記載の情報処理装置。
【請求項5】
前記取得手段は、ユーザのジェスチャをさらに取得し、
前記制御手段は、前記判定手段により前記振動コマンドの振動が発生していないと判定された場合、前記所定の処理を実行せずに、前記ジェスチャに対応する処理を実行し、前記判定手段により前記振動コマンドの振動が発生したと判定された場合、前記ジェスチャを無効化する
請求項4に記載の情報処理装置。
【請求項6】
前記判定手段は、前記速度ベクトルが同じ方向である前記特徴点の数の割合が閾値以上であるとき、前記振動コマンドの振動が発生したと判定する
請求項5に記載の情報処理装置。
【請求項7】
対象物を撮像する撮像ステップと、
前記撮像ステップの処理により撮像された画像を取得する取得ステップと、
前記取得ステップの処理により取得された画像に基づいて、振動情報を算出する算出ステップと、
前記算出ステップの処理により算出された前記振動情報に基づいて、振動コマンドを判定する判定ステップと、
前記判定ステップの処理により判定された前記振動コマンドに基づいて、所定の処理を実行する制御ステップと
を含む情報処理方法。
【請求項8】
撮像手段により撮像された画像を取得する取得ステップと、
前記取得ステップの処理により取得された画像に基づいて、振動情報を算出する算出ステップと、
前記算出ステップの処理により算出された前記振動情報に基づいて、振動コマンドを判定する判定ステップと、
前記判定ステップの処理により判定された前記振動コマンドに基づいて、所定の処理を実行する制御ステップと
をコンピュータに実行させるプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate