(57)【要約】【課題】カメラにより撮像された画像に基づいて、簡単かつ確実にコマンドを入力できるようにする。【解決手段】ディスプレイ１２上にカメラ１１を搭載するパーソナルコンピュータ１において、ユーザが手２でディスプレイ１２をタップすると、カメラ１１も振動する。カメラ１１により撮像された画像が取得され、取得された画像から振動情報が算出され、算出された振動情報に基づいて振動コマンドが判定される。振動コマンドが入力された場合、そのコマンドに対応付けられた所定の処理が制御される。対応する処理として、例えば、音楽プレイヤの再生と停止が制御される。本発明は、例えば、カメラ付きのパーソナルコンピュータに適用できる。【選択図】図１
2011186636.tif 000002
【特許請求の範囲】
【請求項１】
対象物を撮像する撮像手段と、
前記撮像手段により撮像された画像を取得する取得手段と、
前記取得手段により取得された画像に基づいて、振動情報を算出する算出手段と、
前記算出手段により算出された前記振動情報に基づいて、振動コマンドを判定する判定手段と、
前記判定手段により判定された前記振動コマンドに基づいて、所定の処理を実行する制御手段と
を備える情報処理装置。
【請求項２】
前記判定手段により前記振動コマンドが、前記情報処理装置の移動終了後、所定時間内に発生した場合、前記制御手段は、前記所定の処理の実行を禁止する
請求項１に記載の情報処理装置。
【請求項３】
前記算出手段は、前記取得手段により取得された画像の特徴点の位置および速度ベクトルに基づいて前記振動情報を算出する
請求項２に記載の情報処理装置。
【請求項４】
前記算出手段は、前記振動の周波数を算出し、
前記判定手段は、前記周波数が閾値以上のとき、前記振動を振動コマンドの振動と判定する
請求項３に記載の情報処理装置。
【請求項５】
前記取得手段は、ユーザのジェスチャをさらに取得し、
前記制御手段は、前記判定手段により前記振動コマンドの振動が発生していないと判定された場合、前記所定の処理を実行せずに、前記ジェスチャに対応する処理を実行し、前記判定手段により前記振動コマンドの振動が発生したと判定された場合、前記ジェスチャを無効化する
請求項４に記載の情報処理装置。
【請求項６】
前記判定手段は、前記速度ベクトルが同じ方向である前記特徴点の数の割合が閾値以上であるとき、前記振動コマンドの振動が発生したと判定する
請求項５に記載の情報処理装置。
【請求項７】
対象物を撮像する撮像ステップと、
前記撮像ステップの処理により撮像された画像を取得する取得ステップと、
前記取得ステップの処理により取得された画像に基づいて、振動情報を算出する算出ステップと、
前記算出ステップの処理により算出された前記振動情報に基づいて、振動コマンドを判定する判定ステップと、
前記判定ステップの処理により判定された前記振動コマンドに基づいて、所定の処理を実行する制御ステップと
を含む情報処理方法。
【請求項８】
撮像手段により撮像された画像を取得する取得ステップと、
前記取得ステップの処理により取得された画像に基づいて、振動情報を算出する算出ステップと、
前記算出ステップの処理により算出された前記振動情報に基づいて、振動コマンドを判定する判定ステップと、
前記判定ステップの処理により判定された前記振動コマンドに基づいて、所定の処理を実行する制御ステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置および方法、並びにプログラムに関し、特に、簡単かつ確実にコマンドを入力できるようにした情報処理装置および方法、並びにプログラムに関する。
【背景技術】
【０００２】
パーソナルコンピュータにおける入力は、キーボードやマウスにより行われることが多い。すなわち、ユーザは、所定のコマンドを入力する場合、キーボードで所定の文字を入力したり、マウスで所定のアイコンをクリックするなどの操作を行う。
【０００３】
キーボードやマウスは、それらを載置する机、テーブルなどを必要とする。そこでパーソナルコンピュータにカメラを搭載し、カメラでユーザの手を撮像し、ユーザのジェスチャを認識してそのジェスチャに応じた処理を行うことが提案されている（例えば特許文献１）。
【特許文献１】特開２００９−７５６８５号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、カメラにより撮像された画像からジェスチャを認識する場合、ジェスチャが誤認識されることがある。その結果、入力に時間がかかったり、簡単かつ確実にコマンドを入力することができないことがあった。
【０００５】
本発明は、このような状況に鑑みてなされたものであり、簡単かつ確実にコマンドを入力することができるようにするものである。
【課題を解決するための手段】
【０００６】
本発明の一側面の情報処理装置は、対象物を撮像する撮像手段と、前記撮像手段により撮像された画像を取得する取得手段と、前記取得手段により取得された画像に基づいて、振動情報を算出する算出手段と、前記算出手段により算出された前記振動情報に基づいて、振動コマンドを判定する判定手段と、前記判定手段により判定された前記振動コマンドに基づいて、所定の処理を実行する制御手段とを備える。
【０００７】
前記判定手段により前記振動コマンドが、前記情報処理装置の移動終了後、所定時間内に発生した場合、前記制御手段は、前記所定の処理の実行を禁止することができる。
【０００８】
前記算出手段は、前記取得手段により取得された画像の特徴点の位置および速度ベクトルに基づいて前記振動情報を算出することができる。
【０００９】
前記算出手段は、前記振動の周波数を算出し、前記判定手段は、前記周波数が閾値以上のとき、前記振動を振動コマンドの振動と判定することができる。
【００１０】
前記取得手段は、ユーザのジェスチャをさらに取得し、前記制御手段は、前記判定手段により前記振動コマンドの振動が発生していないと判定された場合、前記所定の処理を実行せずに、前記ジェスチャに対応する処理を実行し、前記判定手段により前記振動コマンドの振動が発生したと判定された場合、前記ジェスチャを無効化することができる。
【００１１】
前記判定手段は、前記速度ベクトルが同じ方向である前記特徴点の数の割合が閾値以上であるとき、前記振動コマンドの振動が発生したと判定することができる。
【００１２】
本発明の一側面の情報処理方法は、対象物を撮像する撮像ステップと、前記撮像ステップの処理により撮像された画像を取得する取得ステップと、前記取得ステップの処理により取得された画像に基づいて、振動情報を算出する算出ステップと、前記算出ステップの処理により算出された前記振動情報に基づいて、振動コマンドを判定する判定ステップと、前記判定ステップの処理により判定された前記振動コマンドに基づいて、所定の処理を実行する制御ステップとを含む。
【００１３】
本発明の一側面のプログラムは、撮像手段により撮像された画像を取得する取得ステップと、前記取得ステップの処理により取得された画像に基づいて、振動情報を算出する算出ステップと、前記算出ステップの処理により算出された前記振動情報に基づいて、振動コマンドを判定する判定ステップと、前記判定ステップの処理により判定された前記振動コマンドに基づいて、所定の処理を実行する制御ステップとをコンピュータに実行させる。
【００１４】
本発明の一側面においては、対象物が撮像され、撮像された画像が取得され、取得された画像に基づいて、振動情報が算出され、算出された振動情報に基づいて、振動コマンドが判定され、判定された振動コマンドに基づいて、所定の処理が実行される。
【発明の効果】
【００１５】
本発明によれば、簡単かつ確実にコマンドを入力することが可能になる。
【図面の簡単な説明】
【００１６】
【図１】パーソナルコンピュータの外観の構成を示す図である。
【図２】本発明を適用したパーソナルコンピュータのハードウェアの構成例を示すブロック図である。
【図３】CPUの機能的構成例を示すブロック図である。
【図４】振動コマンド認識処理を説明するフローチャートである。
【図５】パーソナルコンピュータがタップされた場合の画像の表示例を示す図である。
【図６】特徴点と軌跡の関係を示す図である。
【図７】特徴点と軌跡の表示例を示す図である。
【図８】パーソナルコンピュータが移動された場合の画像の表示例を示す図である。
【図９】ジェスチャ認識処理を説明するフローチャートである。
【発明を実施するための最良の形態】
【００１７】
図１は、本発明が適用されるパーソナルコンピュータ１の一実施形態としての構成例を示す図である。
【００１８】
図１のノート型のパーソナルコンピュータ１は、本体１３と、カメラ１１が搭載されているディスプレイ１２から構成されている。ディスプレイ１２は、本体１３に対して開閉自在とされている。
【００１９】
対象物を撮像する撮像手段としてのカメラ１１は、単眼カメラ、ステレオカメラ、赤外線カメラ、ビデオカメラ等で構成され、被写体としてのユーザの静止画または動画を撮像する。
【００２０】
パーソナルコンピュータ１は、カメラ１１により撮像された画像を取得し、ユーザが手２でカメラ１１を搭載するパーソナルコンピュータ１がタップされた振動を振動情報として算出する。
【００２１】
そして、算出された振動情報に基づいて、パーソナルコンピュータ１をタップすることで入力される振動コマンドが認識され、認識された振動コマンドに対応する所定の処理が実行される。
【００２２】
これにより、ユーザは、カメラ１１を搭載するパーソナルコンピュータ１を任意の個所をタップすることでパーソナルコンピュータ１の動作を制御することができる。
【００２３】
［パーソナルコンピュータの構成］
【００２４】
図２は、パーソナルコンピュータ１のハードウェアの構成例を示すブロック図である。
【００２５】
コンピュータ１において、CPU２２，ROM(Read Only Memory)２３，RAM(Random Access Memory)２４は、バス２５により相互に接続されている。バス２５には、さらに、入出力インタフェース２６が接続されている。入出力インタフェース２６には、カメラ１１、キーボード、タッチパネル、タッチパッド、ペンデバイス、マウス、マイクロフォンなどよりなる入力部２７、ディスプレイ１２、スピーカ（図示せず）などよりなる出力部２１、ハードディスクや不揮発性のメモリなどよりなる記憶部２８が接続されている。さらに、入出力インタフェース２６には、ネットワークインタフェースなどよりなる通信部２９、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア３１を駆動するドライブ３０が接続されている。
【００２６】
以上のように構成されるパーソナルコンピュータ１では、CPU２２が、例えば、記憶部２８に記憶されているプログラムを、入出力インタフェース２６及びバス２５を介して、RAM２４にロードして実行することにより、上述した一連の処理が行われる。CPU２２が実行するプログラムは、パッケージメディアであるリムーバブルメディア３１に記録して提供される。なお、パッケージメディアとしては、磁気ディスク（フレキシブルディスクを含む）、光ディスク(CD-ROM(Compact Disc-Read Only Memory)，DVD(Digital Versatile Disc)等)、光磁気ディスク、もしくは半導体メモリなどが用いられる。あるいは、プログラムは、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の伝送媒体を介して提供される。そして、プログラムは、リムーバブルメディア３１をドライブ３０に装着することにより、入出力インタフェース２６を介して、記憶部２８にインストールすることができる。また、プログラムは、有線または無線の伝送媒体を介して、通信部２９で受信し、記憶部２８にインストールすることができる。その他、プログラムは、ROM２３や記憶部２８に、あらかじめインストールしておくことができる。
【００２７】
なお、パーソナルコンピュータ１が実行するプログラムは、本明細書で説明する順序に沿って時系列に処理が行われるプログラムであっても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで処理が行われるプログラムであっても良い。
【００２８】
図３は、CPU２２の機能的構成例を示すブロック図である。
【００２９】
CPU２２は、取得部４１、検出部４２、制御部４３、判定部４４、算出部４５、振動コマンド認識部４６、記憶部４７、およびジェスチャ認識部４８から構成されている。なお、CPU２２の各ブロックは、必要に応じて相互に信号を授受することが可能とされている。
【００３０】
CPU２２において、取得手段としての取得部４１は、各種情報を取得する。検出部４２は、カメラ１１により撮像された画像から振動を検出するための情報を検出する。制御手段としての制御部４３は、各種処理を制御する。判定手段としての判定部４４は、処理が所定の条件を満たしているかを判定する。算出手段としての算出部４５は、振動情報等を算出する。振動コマンド認識部４６は、パーソナルコンピュータ１に与えられた振動によるコマンドを認識する。記憶部４７は、所定の情報をRAM２４または記憶部２８に記憶する。ジェスチャ認識部４８は、ジェスチャを認識する。ジェスチャとは、ユーザが手２を3次元空間で移動させたり、所定の形状にして行われる操作である。
【００３１】
［振動コマンド認識処理］
【００３２】
図４は、ユーザのタップの操作を振動コマンドとして認識する振動コマンド認識処理を説明するフローチャートである。振動コマンド認識処理は、ユーザにより、カメラ１１と振動コマンドを認識するアプリケーションの起動が指示されたときに実行される。
【００３３】
ステップＳ１において、取得部４１は、カメラ１１により撮像された画像を取得する。カメラ１１から取得される画像は、例えば、撮像した画像そのものでもよいし、編集された画像、例えば濃淡画像などでもよい。
【００３４】
ステップＳ２において、検出部４２は、取得された画像から複数の特徴点を検出する。特徴点とは、画像中における縦方向と横方向の色（または輝度値）の変化がともに大きい点である。すなわち画素値の変化が大きい画素のうち、画面内に全体的に平均的に分散して位置するように、所定の複数の画素が特徴点としてランダムに選択される。
【００３５】
ステップＳ３において、制御部４３は、検出された特徴点を追跡する。すなわち、特徴点の追跡は、特徴点が検出された２枚の画像（例えば、現在のフレームの画像と１フレーム前の画像）に対して、マッチングの処理や差分を算出する処理を実行することで、同様の値となる画素が同一の特徴点として追跡される。
【００３６】
パーソナルコンピュータ１がタップされた場合の画像中の特徴点を表示する例を図５に示す。図５は、カメラ１１を搭載するパーソナルコンピュータ１がタップされた場合に、カメラ１１により撮像される画像の表示例を示す図である。
【００３７】
表示窓６１には、カメラ１１により撮像された画像であって、左右が反転されたミラー画像８１−１、認識結果８２、特徴点１０１−1乃至１０１−９、および特徴点１０１−1乃至１０１−９の軌跡１０２−1乃至１０２−９が表示されている。
【００３８】
なお、便宜上、符号は、代表的な特徴点と軌跡にのみ付されている。また、以下、特徴点１０１−1乃至１０１−９、および軌跡１０２−1乃至１０２−９を個々に区別する必要がない場合、単に特徴点１０１または軌跡１０２と記載する。
【００３９】
図５の例の表示窓６１には、画像８１−１として、ユーザと背景画像が表示されている。ここでステップＳ２の特徴点を検出する処理およびステップＳ３の特徴点を追跡する処理が実行されると、画像８１−１上に特徴点１０１および対応する軌跡１０２が表示される。
【００４０】
図５の例では、簡単のため特徴点１０１−１乃至１０１−９と対応する軌跡１０２−１乃至１０２−９について説明する。
【００４１】
図５の例では、背景画像内の境界上、例えば、天井と蛍光灯の境界上の特徴点１０１−１乃至１０１−５や、ユーザと背景画像の境界上、例えば、特徴点１０１−６乃至１０１−８などが、特徴点とされている。そして、特徴点１０１−１乃至１０１−８のそれぞれに対応する軌跡１０２−１乃至１０２−８が表示される。
【００４２】
例えば、ユーザが移動した場合、ユーザと背景画像の境界上の特徴点１０１−６乃至１０１−８が移動し、対応する軌跡１０２−６乃至１０２−８が表示される。
【００４３】
これに対して、パーソナルコンピュータ１のディスプレイ１２がユーザによりタップされると、ディスプレイ１２は、本体１３に対して開閉自在とされているので、本体１３との接合部を中心として、図１において矢印１４で示されるように、前後方向に振動する。これによりディスプレイ１１の上部に装着されているカメラ１１の撮像位置が上下方向に振動する。
【００４４】
なお、追跡は、画像内にまんべんなく配置された特徴点１０１に対して行われることが望ましい。したがって、例えば特徴点１０１−３乃至１０１−５などのように、相互の距離が近い特徴点１０１はいずれかを削除し、例えば、特徴点１０１−９のように、それらから充分離れて位置する特徴点１０１を追跡するのが好ましい。
【００４５】
次に、ディスプレイ１１がタップされた場合における特徴点と軌跡の関係について図６と図７を用いて説明する。
【００４６】
図６は、特徴点１０１の位置の変化を２次元のグラフに示す図である。図６において、横軸は時刻ｔを表し、縦軸は画面内の縦方向のｙ座標を表している。ｙ座標においては、特徴点が静止している位置が０とされている。
【００４７】
ディスプレイ１１がタップされると、カメラ１１が上下に振動し、次第に収束して、ついには静止する。したがって特徴点１０１の位置は、ｙ座標の０を基準として上下に変化するので、その運動を時間軸に展開して得られる軌跡１０２に対応する信号１０３は、図６に示されるように、正弦波状の信号となる。その振幅は次第に小さくなり、ついには０に収束する。
【００４８】
図７は、ディスプレイ１１がタップされた場合において、図５の表示窓６１上に表示される１つの特徴点１０１と軌跡１０２のモデル的表示例を示す図である。
【００４９】
特徴点１０１のｙ座標が図６に示されるように周期的に変化するので、特徴点１０１が、図６の特徴点１０１−３１−1の位置（すなわち、ｙ座標の正のピーク値）にあるとき、特徴点１０１は、図７Aに示されるように、軌跡１０２の上端部に位置する。
【００５０】
特徴点１０１が、図６の特徴点１０１−３１−２の位置（すなわち、ｙ座標の負のピーク値）にあるとき、特徴点１０１は、図７Bに示されるように、軌跡１０２の下端部に位置する。
【００５１】
特徴点１０１が、図６の特徴点１０１−３１−３の位置（すなわち、ｙ座標が０の位置）にあるとき、特徴点１０１は、図７Cに示されるように、軌跡１０２の中央部に位置する。
【００５２】
特徴点１０１と軌跡１０２が、図７Ａ乃至図７Ｃのように表示されることで、ユーザは、表示窓６１に表示された特徴点１０１がどちらの方向に移動しているかを判断することができる。
【００５３】
図４に戻り、ステップＳ３の特徴点追跡処理の後、ステップＳ４において、判定部４４は、特徴点の数が閾値以上であるかを判定する。すなわち、振動情報を算出するために必要な特徴点の数が十分であるかが判定される。振動情報とは、例えば振動の周波数などである。
【００５４】
ステップＳ４において、特徴点の数が所定の閾値より少ないと判定された場合、すなわち、振動情報を算出するために十分な数の特徴点が存在しないと判定された場合、処理はステップＳ２に戻り、同様の処理が繰り返される。すなわち新たな特徴点が検出される。
【００５５】
ステップＳ４において、特徴点の数が所定の閾値以上であると判定された場合、すなわち、振動情報を算出するために十分な数の特徴点が存在すると判定された場合、ステップＳ５において、算出部４５は、特徴点の位置を算出する。
【００５６】
すなわち図５の例では、画像８１−１上の特徴点１０１のｘ，ｙ座標がそれぞれ算出される。
【００５７】
ステップＳ６において、算出部４５は、複数の特徴点の速度ベクトルを算出する。速度ベクトルは、例えば、ある特徴点１０１−５１の現在のフレームの位置と、１フレーム前の位置との差分を、１フレームの時間で除算することで算出される。
【００５８】
ステップＳ７において、制御部４３は、算出された速度ベクトルに基づいて特徴点をクラスタリングする。クラスタリングとは、データの集合をクラスタという部分集合に切り分ける処理である。
【００５９】
算出された速度ベクトルが同じ方向を向いている特徴点同士を同じクラスタに分類することで、似た動きをする特徴点が１つのグループに分類される。なおクラスタリングには、角度の一次元のヒストグラムを算出する手法、またはk-meansのような既存のクラスタリングの手法を用いることができる。
【００６０】
例えば図５の表示例で、ユーザが移動した場合、ユーザの顔の上に位置する特徴点１０１−６，１０１−８，１０１−９がほぼ同じ方向に移動する。その結果、クラスタリングの処理により、この特徴点１０１−６，１０１−８，１０１−９が１つの部分集合として分類される。これに対して背景画像の上の特徴点１０１−１乃至１０１−５，１０１−７は、移動しない。
【００６１】
一方、ディスプレイ１２がタップされた場合、ユーザの顔や背景画像を含む画面の全体が振動するので、特徴点１０１−１乃至１０１−９を含むほとんどすべての特徴点が同じ方向に（すなわち上または下方向に）移動する。したがって特徴点１０１−１乃至１０１−９を含む多くの特徴点が１つの部分集合として分類される。
【００６２】
そこでステップＳ８において、判定部４４は、同じ方向に動く特徴点の全特徴点に対する割合が閾値以上であるかを判定する。すなわちこれにより、カメラ１１を搭載するパーソナルコンピュータ１が振動したかが判定される。
【００６３】
なお本体１３に対するディスプレイ１２の支持の方法によっては、タップされた場合、ディスプレイ１２が回転する場合がある。ステップＳ８の処理において、同じ方向に動く特徴点の割合が所定の閾値以上かを判定する手法では、カメラ１１の中心軸周りの回転の動きは検出できない。
【００６４】
そこでこのような場合、カメラ１１から取得した画像の中心を原点とした各特徴点の軌跡の外積を算出することで、ディスプレイ１２の回転を検出することができる。
【００６５】
ステップＳ８において、同じ方向に動く特徴点の割合が所定の閾値より小さいと判定された場合、すなわち、カメラ１１を搭載するディスプレイ１２が振動していないと判定された場合、ユーザによるタップの操作は実行されていないので、処理はステップＳ１に戻り、それ以降の処理が繰り返される。
【００６６】
ステップＳ８において、同じ方向に動く特徴点の割合が所定の閾値以上であると判定された場合、すなわち、カメラ１１を搭載するディスプレイ１２が振動したと判定された場合、ステップＳ９において、算出部４５は、振動情報として、縦方向の振動の周波数を算出する。
【００６７】
振動の周波数は、特徴点の位置に基づいて算出される単位時間あたりの振動回数により算出される。具体的には図６の信号の周波数が算出される。
【００６８】
縦方向の振動の周波数を算出するのは、図１に示されるノート型のパーソナルコンピュータ１の場合、ディスプレイ１２が本体１３に対して回動自在に支持されているため、振動方向が縦方向になるためである。
【００６９】
したがって、振動させるデバイスの種類に応じて算出する振動方向を変えてもよい。
【００７０】
ステップＳ１０において、判定部４４は、算出された周波数が閾値以上かを判定する。例えばユーザがパーソナルコンピュータ１全体を保持して移動させたような場合、多くの特徴点が同じ方向に移動する。
【００７１】
しかし、この場合の特徴点の移動は、ディスプレイ１２がタップされた場合に比べて遅いので、周波数は低い。そこで、周波数を所定の閾値と比較することで、振動の種類がタップの振動であるかが判定される。
【００７２】
ステップＳ１０において算出された周波数が所定の閾値より小さいと判定された場合、すなわち、振動の種類がタップ以外の振動であると判定された場合、ステップＳ１１において、振動コマンド認識部４６は、振動の種類をパーソナルコンピュータ１の移動として認識する。
【００７３】
振動の種類が移動として認識された場合の画像中の特徴点とその軌跡を表示した例を図８に示す。
【００７４】
図８は、カメラ１１を搭載するパーソナルコンピュータ１の振動の種類が移動として認識された場合に表示される画像の表示例を示す図である。
【００７５】
図８の例の表示窓６１には、カメラ１１から取得された画像８１−２、特徴点１０１、特徴点の軌跡１０２が表示されている。図８の例では、特徴点１０１−５１乃至１０１−５４と、それらに対応する軌跡１０２−５１乃至１０２−５４を含む全ての特徴点とそれらに対応する軌跡の形状は同様の形状となっている。
【００７６】
すなわち図７Ｂに示したように、特徴点１０１の上側に軌跡１０２が表示されている。したがってカメラ１１を搭載するパーソナルコンピュータ１は、上方向に向かって移動されたことになる。
【００７７】
図４に戻り、ステップＳ１２において、記憶部４７は、移動情報を記憶する。移動情報とは、例えば、振動の種類が移動として認識されたときの時刻の情報である。
【００７８】
すなわち移動情報としては、ステップＳ１乃至ステップＳ１２の処理が繰り返し行われることにより最終的に、カメラ１１を搭載するパーソナルコンピュータ１の移動が終了したときの時刻が記憶される。
【００７９】
ステップＳ１０において、算出された周波数が所定の閾値以上であると判定された場合、その振動はユーザによりディスプレイ１２がタップされた場合の振動と考えられる。すなわち、ユーザにより振動コマンドが入力された可能性がある。
【００８０】
この場合、ステップＳ１３において、判定部４４は、移動終了後、所定時間が経過したかを判定する。すなわち、移動情報に記憶されている時刻から所定時間が経過したかが判定される。
【００８１】
ステップＳ１３において、移動終了後、所定時間が経過していないと判定された場合、すなわち、移動情報に記憶されている時刻からまだ所定時間が経過していない場合、処理はステップＳ１に戻る。
【００８２】
これによりステップＳ１４，Ｓ１５のタップを認識し、それに対応する処理の実行が禁止される。
【００８３】
つまり、例えば、ディスプレイ１２にカメラ１１を搭載するノート型のパーソナルコンピュータ１をテーブルに置いた直後、ディスプレイ１２はしばらくの時間振動する。
【００８４】
また、ノート型のパーソナルコンピュータ１のディスプレイ１２を閉じた状態から開いた直後、しばらくの時間、ディスプレイ１２が振動する。
【００８５】
これらの振動はユーザによりディスプレイ１２がタップされた場合の振動と同様の振動であるから、振動コマンドの候補の振動であるが、実際にユーザにより振動コマンドが入力された訳ではない。
【００８６】
そこで、これらの振動が、タップによる振動、つまり振動コマンドの振動と誤認識されるのが防止される。
【００８７】
ステップＳ１３において、移動終了後、所定時間が経過していると判定された場合、すなわち、移動情報に記憶されている時刻から所定時間が経過していると判定された場合、ステップＳ１４において、振動コマンド認識部４６は、振動コマンドの種類をタップとして認識する。
【００８８】
つまり、ユーザがディスプレイ１２に積極的に振動を与えることで入力した振動コマンドであると認識される。
【００８９】
換言すれば、例えばカメラ１１で撮影を行うとき、画像がぶれてしまうので、カメラ１１は振動させないようにすることが望まれる。すなわち、その場合の振動はノイズである。
【００９０】
それに対して、タップによる振動はノイズとしての振動ではなく、ユーザが望んで所定の入力を行うために与えるものであり、信号としての振動である。
【００９１】
ステップＳ１５において、制御部４３は、タップに対応する処理を実行する。タップに対応する処理とは、タップによる振動コマンドに応じて行われる処理である。
【００９２】
例えば、音楽プレイヤのアプリケーションを操作する場合、制御部４３は、タップによる振動コマンドが認識されるごとに音楽プレイヤによる曲の再生と停止が切換えられる。
【００９３】
もちろん、この他、パーソナルコンピュータ１の電源のオンとオフを振動コマンドに対応づけることもできる。
【００９４】
また制御部４３は、図５に示されるように、表示窓６１内に「SHAKE」と認識結果８２を表示する。これはタップによる振動コマンドが認識されたことを意味する。表示窓６１がディスプレイ１２に表示されていない場合、認識結果８２はディスプレイ１２内の任意の領域内に表示されてもよい。
【００９５】
ステップＳ１５の処理の後、処理はステップＳ１に戻り、同様の処理が繰り返される。
【００９６】
このようにカメラ１１を搭載するパーソナルコンピュータ１は、カメラ１１だけを用いてユーザがディスプレイ１２をタップして入力する振動コマンドを認識することができる。
【００９７】
もちろんユーザがタップする箇所は任意であり、ディスプレイ１２に限られない。
【００９８】
なお、図４の例では、パーソナルコンピュータ１の振動情報を、特徴点に基づいて算出したが、振動情報を算出する方法はこれに限られない。振動情報は、例えば、ブロックマッチングの手法を使用し、取得された画像全体のオプティカルフローに基づいて算出するようにしてもよい。
【００９９】
［ジェスチャ認識処理］
【０１００】
図４の振動コマンド認識処理は、ジェスチャでコマンドを入力する場合にも適用することができる。図９は、この場合のジェスチャ認識処理を説明するフローチャートである。
【０１０１】
図９において、ステップＳ３３乃至Ｓ３９，Ｓ４３乃至Ｓ４９の処理は、図４のステップＳ１乃至Ｓ１５の処理と同様の処理である。したがって、その詳細な処理は繰り返しになるので適宜省略する。
【０１０２】
ステップＳ３１において、ジェスチャ認識部４８は、ジェスチャを認識する。ジェスチャとは、ユーザが所定のコマンドを入力するために、３次元空間で行う手振り、手の形状などの操作である。
【０１０３】
ジェスチャの認識は、例えば次のように行われる。すなわち、時間的に前後する２フレームの画像の差分を演算して、移動する手の領域が検出される。そして手の面積の重心が求められ、重心の軌跡を予め用意されているジェスチャの基本パターンと比較することで、最も近い基本パターンのジェスチャが入力されたものとして識される。
【０１０４】
ステップＳ３２において、取得部４１は、認識されたジェスチャおよびカメラ１１により撮像された画像を取得する。
【０１０５】
ステップＳ３３において、検出部４２は、特徴点を検出する。ステップＳ３４において、制御部４３は、特徴点を追跡する。
【０１０６】
ステップＳ３５において、判定部４４は、特徴点の数が閾値以上かを判定する。特徴点の数が閾値より少ないと判定された場合、処理はステップＳ３３に戻り、それ以降の処理が繰り返される。特徴点の数が閾値以上であると判定された場合、ステップＳ３６において、算出部４５は、特徴点の位置を算出する。
【０１０７】
ステップＳ３７において、算出部４５は、特徴点の速度ベクトルを算出する。ステップＳ３８において、制御部４３は、特徴点をクラスタリングする。
【０１０８】
ステップＳ３９において、判定部４４は、同じ方向に動く特徴点の割合が閾値以上であるかを判定する。同じ方向に動く特徴点の割合が閾値より少ないと判定された場合、ステップＳ４０において、振動コマンド認識部４６は、振動なしとして認識する。すなわち、振動コマンドの振動が発生していないと認識する。
【０１０９】
ステップＳ４１において、制御部４３は、ジェスチャに対応する処理を実行する。これにより、例えば音楽プレイヤにおいて、ユーザがカメラ１１の前で行った手の動かし方に応じて、曲を早送りしたり、巻き戻したり、一時停止したりする処理が行われる。
【０１１０】
一方、ステップＳ３９において、同じ方向に動く特徴点の割合が閾値以上であると判定された場合、ステップＳ４２において、制御部４３は、ジェスチャを無効化する。すなわち制御部４３は、ステップＳ３１で認識されたジェスチャに対応する処理の実行を禁止する。
【０１１１】
ステップＳ４３において、算出部４５は、振動の周波数を算出する。ステップＳ４４において、判定部４４は、周波数が閾値以上かを判定する。ステップＳ４４において、周波数が閾値より小さいと判定された場合、ステップＳ４５において、振動コマンド認識部４６は、振動を移動として認識する。ステップＳ４６において、記憶部４７は、移動情報を記憶する。
【０１１２】
ステップＳ４４において、周波数が閾値以上であると判定された場合、ステップＳ４７において、判定部４４は、移動終了後、所定時間が経過したかを判定する。
【０１１３】
ステップＳ４７において、移動終了後、所定時間が経過したと判定された場合、ステップＳ４８において、振動コマンド認識部４６は、振動をタップとして認識する。ステップＳ４９において、制御部４３は、タップに対応する処理を実行する。
【０１１４】
ステップＳ４１，Ｓ４６，Ｓ４９の処理の後、またはステップＳ４７において移動終了後、所定時間が経過していないと判定された場合、処理はステップＳ１に戻り、同様の処理が繰り返される。
【０１１５】
このように、カメラ１１を搭載するディスプレイ１２が振動している場合、制御部４３はジェスチャに対応する処理の実行を禁止する。これにより、ユーザが意図しないジェスチャが誤って認識されることを防止することができる。
【０１１６】
なお本明細書では、カメラ１１を搭載するノート型のパーソナルコンピュータ１を使用して、タップによる振動コマンドを認識する例を示したが、タップする装置はパーソナルコンピュータ１に限られない。
【０１１７】
例えば、カメラ付きのテレビジョン受像機やモニタをタップすることで、電源のオンとオフの操作をするようにしてもよい。
【０１１８】
またテレビジョン受像機やモニタのような据え置きデバイスの場合、移動を認識する処理は行わないようにしてもよい。
【符号の説明】
【０１１９】
１  パーソナルコンピュータ，  １１  カメラ，  １２  ディスプレイ，  ２２  CPU，  ４１  取得部，  ４３  制御部，  ４４  判定部，  ４５  算出部
【図１】
2011186636.tif 000003
【図２】
2011186636.tif 000004
【図３】
2011186636.tif 000005
【図４】
2011186636.tif 000006
【図５】
2011186636.tif 000007
【図６】
2011186636.tif 000008
【図７】
2011186636.tif 000009
【図８】
2011186636.tif 000010
【図９】
2011186636.tif 000011