(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5980879
(24)【登録日】2016年8月5日
(45)【発行日】2016年8月31日
(54)【発明の名称】ジェスチャの認識方法、ジェスチャ入力システムおよび電子機器
(51)【国際特許分類】
H04N 5/232 20060101AFI20160818BHJP
G06F 1/32 20060101ALI20160818BHJP
G06F 3/01 20060101ALI20160818BHJP
G06T 7/20 20060101ALI20160818BHJP
【FI】
H04N5/232 Z
G06F1/32 Z
G06F3/01 570
G06T7/20 300A
【請求項の数】17
【全頁数】14
(21)【出願番号】特願2014-218982(P2014-218982)
(22)【出願日】2014年10月28日
(65)【公開番号】特開2016-86334(P2016-86334A)
(43)【公開日】2016年5月19日
【審査請求日】2015年1月23日
(73)【特許権者】
【識別番号】505205731
【氏名又は名称】レノボ・シンガポール・プライベート・リミテッド
(74)【代理人】
【識別番号】100106699
【弁理士】
【氏名又は名称】渡部 弘道
(74)【代理人】
【識別番号】100132595
【弁理士】
【氏名又は名称】袴田 眞志
(72)【発明者】
【氏名】下遠野 享
(72)【発明者】
【氏名】塚本 泰史
【審査官】
藤原 敬利
(56)【参考文献】
【文献】
特開2013−115649(JP,A)
【文献】
特開2011−221672(JP,A)
【文献】
特開2013−200784(JP,A)
【文献】
特開2014−174776(JP,A)
【文献】
特開2012−185833(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04N 5/232
G06F 1/32
G06F 3/01
G06T 7/20
(57)【特許請求の範囲】
【請求項1】
カメラ・モジュールが出力するフレーム・シーケンスから電子機器がジェスチャを認識する方法であって、
人体の部位が前記ジェスチャの前に行われる先行動作を撮影した第1のフレーム・レートの第1のフレーム・シーケンスを受け取るステップと、
前記第1のフレーム・シーケンスから前記先行動作を認識するステップと、
前記先行動作の認識に応じて前記人体の部位の前記先行動作に続く連続した動作として行われる前記ジェスチャを撮影した前記第1のフレーム・レートより高い第2のフレーム・レートで第2のフレーム・シーケンスを受け取るステップと、
前記第2のフレーム・シーケンスから前記ジェスチャを認識するステップと
を有する方法。
【請求項2】
前記先行動作の終了状態が前記ジェスチャの開始状態である請求項1に記載の方法。
【請求項3】
前記第1のフレーム・シーケンスが前記人体の部位が自然状態から前記先行動作の開始状態まで動く状態を撮影したフレームを含む請求項1に記載の方法。
【請求項4】
前記先行動作を認識するステップが、前記自然状態の人体の部位を撮影したフレームと前記先行動作の継続状態の人体の部位を撮影したフレームの差分を計算するステップを含む請求項3に記載の方法。
【請求項5】
前記先行動作を認識するステップが、前記先行動作の継続状態の人体の部位を撮影した2つのフレームの差分を計算するステップを含む請求項3に記載の方法。
【請求項6】
前記第2のフレーム・シーケンスから所定時間前記ジェスチャが行われていないと判断したときに前記ジェスチャの認識を停止して前記第1のフレーム・シーケンスを受け取るステップと、
前記第1のフレーム・シーケンスから前記先行動作を認識するステップと
を有する請求項1に記載の方法。
【請求項7】
前記先行動作を認識するステップが、ユーザに先行動作を認識したことを通知するステップを含む請求項1に記載の方法。
【請求項8】
前記先行動作が、腕が重力に反する方向に移動する動作である請求項1に記載の方法。
【請求項9】
前記人体の部位が腕である請求項1に記載の方法。
【請求項10】
カメラ・モジュールと、
前記カメラ・モジュールを第1の転送周期または該第1の転送周期よりも短い第2の転送周期でフレーム・シーケンスを出力するように制御するカメラ制御部と、
前記第1の転送周期のフレーム・シーケンスから人体の部位がジェスチャの前に行われる先行動作を認識する先行動作認識部と、
前記第2の転送周期のフレーム・シーケンスから前記人体の部位が前記先行動作に続く連続した動作として行われる前記ジェスチャを認識するジェスチャ認識部と
を有するジェスチャ入力システム。
【請求項11】
前記カメラ・モジュールは前記第1の転送周期でフレーム・シーケンスを出力する間に省電力状態に遷移することが可能な請求項10に記載のジェスチャ入力システム。
【請求項12】
前記先行動作認識部は、前記ジェスチャ認識部よりも大きなグリッドごとに画素値を比較する請求項10に記載のジェスチャ入力システム。
【請求項13】
前記第1の転送周期が前記先行動作の開始から終了までの継続時間の1/2以上でかつ前記継続時間以下である請求項10に記載のジェスチャ入力システム。
【請求項14】
前記第1の転送周期が、前記先行動作の開始から終了までの継続時間以上でかつ前記継続時間の2倍以下である請求項10に記載のジェスチャ入力システム。
【請求項15】
前記先行動作認識部は、前記第2の転送周期のフレーム・シーケンスから前記第1の転送周期で抽出したフレームから前記ジェスチャの有無を判断し、所定の時間前記ジェスチャがないと判断したときに前記ジェスチャ認識部を停止させる請求項10に記載のジェスチャ入力システム。
【請求項16】
カメラ・モジュールと、
プロセッサと、
システム・メモリと、
前記カメラ・モジュールを第1の転送周期または該第1の転送周期よりも短い第2の転送周期でフレーム・シーケンスを出力するように制御するデバイス・ドライバと、
前記第1の転送周期のフレーム・シーケンスからジェスチャの前に行われる先行動作を認識するために前記プロセッサが実行する第1のジェスチャ認識エンジンと、
前記第2の転送周期のフレーム・シーケンスから前記先行動作に続く連続した動作として行われる前記ジェスチャを認識するために前記プロセッサが実行する第2のジェスチャ認識エンジンと
を有する電子機器。
【請求項17】
カメラ・モジュールを搭載するコンピュータに、
前記カメラ・モジュールから第1のフレーム・レートまたは該第1のフレーム・レートより高い第2のフレーム・レートで画像を受け取るステップと、
前記第1のフレーム・レートの画像からジェスチャの前に行われる先行動作を認識するステップと、
前記先行動作の認識に応答して前記第2のフレーム・レートの画像から前記先行動作に続く連続した動作として行われる前記ジェスチャを認識するステップと
を有する処理を実行させるためのコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ジェスチャを認識するデバイスの消費電力を低減する技術に関し、さらには、ジェスチャをするユーザにデバイスに対する特別な操作をさせないで消費電力を低減する技術に関する。
【背景技術】
【0002】
ノートブック型パーソナル・コンピュータ(ノートPC)は、キーボード、タッチパッド、タッチスクリーン、ポインティング・デバイス、および操作ボタンなどのさまざまな入力デバイスを備えている。また、ノートPCは撮影した画像をリアルタイムで表示したり、ネットワークに転送したりするカメラ・モジュールを搭載することもある。これまで、カメラ・モジュールは動画像や静止画像を記録したりテレビ会議で使ったりすることが多かったが、ジェスチャを認識して入力デバイスとして使用することも行われている。
【0003】
たとえば、待機状態のノートPCを、キーボードやポインティング・デバイスの操作に変えて、ユーザが手を振る動作のようなモーション・ジェスチャ(以下、単にジェスチャ)を認識して待機状態からウェイクさせることができる。あるいは、プロジェクターを使ったプレゼンテーションのときに、ジェスチャで画面をめくることもできる。さらに、意図的なジェスチャだけでなくユーザの自然な顔の向きを認識してユーザが横を向いているときにはノートPCを省電力状態に移行させ、正面を向いたときに復帰させるようなこともできる。
【0004】
ジェスチャを認識してノートPCに入力をする1つの方法では、指や腕のようなジェスチャを行う対象物を動画像のフレームごとに認識して、その物体の中心の軌跡のベクトルがジェスチャとして定義された軌跡を辿るかどうかを判断する。この場合手を振るジェスチャを認識するには、ジェスチャの毎秒のサイクル数の2倍以上のフレーム・レート(fps)で動画像を取得しないと画像の取りこぼしができて認識できなくなるためそれに応じたフレーム・レートが必要とされる。
【0005】
なお、フレーム・レートは1枚の静止画像を作成する複数の撮像素子の集合体が出力する画素信号で構成された画像データを1フレームとしたときに、単位時間で生成または転送されるフレーム数をいう。1枚の静止画像は1フレームに対応し、動画像は時間的に連続して撮影した複数の静止画像のフレーム・シーケンスで構成する。フレーム・レートを下げると所定の制御をするために必要な複数のジェスチャを認識できなくなるため、通常は30fps程度のフレーム・レートで動画像を転送している。
【0006】
特許文献1は、動画像のフレーム・レートよりも低いフレーム・レートで画像を転送し、カメラ・モジュールをより長い時間サスペンド状態に遷移させてノートPCの消費電力を低減する発明を開示する。同文献は、低いフレーム・レートの画像を受け取る静止画像アプリケーションが、ユーザの顔の向きを判断してノートPCの電力を制御することを記載している。特許文献2は、カメラの省電力を図る発明を開示する。同文献は、カメラの撮影画像で人を検出した人検出器の情報に基づいてカメラのパワーを制御することを記載している。特許文献3は、人間がセンサーで検出されたときにジェスチャの開始点と判断してカメラで撮影したデータでジェスチャを認識する発明を開示する。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2013−58961号公報
【特許文献2】特開2012−155646号公報
【特許文献3】特開2013−196047号公報
【発明の概要】
【発明が解決しようとする課題】
【0008】
カメラ・モジュールは、画像を転送しないときに省電力状態に遷移することができる。しかしジェスチャの待ち受け状態に入ると、ジェスチャ認識エンジンが突然発生するジェスチャを認識するために、カメラ・モジュールは30fpsの動画像を出力し続ける必要がある。したがって、ジェスチャの待ち受け状態でカメラ・モジュールは省電力状態に遷移することができない。さらに動画像を受け取ったジェスチャ認識エンジンは、ジェスチャの有無にかかわらず各フレームを比較してジェスチャを認識する必要があるためCPUの負荷が増加する。
【0009】
特許文献1に記載する方法でフレーム・レートを下げる方法は、単純なジェスチャの認識には適用できるが、複雑なジェスチャまたは複数のジェスチャを認識することはできない。カメラ・モジュールとCPUにバッテリィから電力を供給するノートPCでは、現在の所、ジェスチャ認識エンジンを動作させながら待ち受け状態にすることができないため、キーボードに専用ボタンを設けたりコンビネーション・キーを定義したりして、ジェスチャをする前にユーザの操作でジェスチャ認識エンジンを起動している。
【0010】
しかし、専用ボタンやコンビネーション・キーの操作は、キーボードやリモート・コントローラの操作からユーザを解放する入力手段としてのジェスチャ入力の利点を損なう。したがって、ジェスチャ認識エンジンをジェスチャで起動および停止できれば、消費電力の低減を図りながらユーザにストレスを与えない使いやすいジェスチャ入力システムを実現できる。
【0011】
そこで本発明の目的は、電子機器の消費電力を低減しながらジェスチャを認識する方法を提供することにある。さらに本発明の目的は、ユーザがストレスを感じないで電子機器にジェスチャ入力ができる方法を提供することにある。さらに本発明の目的は、そのような方法を実現するジェスチャ入力システム、電子機器、およびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【0012】
本発明は、カメラ・モジュールが出力するフレーム・シーケンスから電子機器が先行動作に続いて行われるジェスチャを認識する方法を提供する。コンピュータは第1のフレーム・レートで受け取った第1のフレーム・シーケンスから先行動作を認識する。つづいて、先行動作の認識に応じて第1のフレーム・レートより高い第2のフレーム・レートで受け取った第2のフレーム・シーケンスからジェスチャを認識する。
【0013】
ジェスチャ認識エンジンの起動のためにユーザに特別な操作を要求しないとすれば、発生時期を予測できないジェスチャを認識するために、常時ジェスチャ認識エンジンを稼働させておく必要がある。本発明では、電子機器がジェスチャに先だって行われる先行動作を認識したことに応じてジェスチャを認識する。先行動作は第1のフレーム・レートのフレーム・シーケンスから認識できるため、第2のフレーム・レートのフレーム・シーケンスからジェスチャを認識するよりも消費電力を低減することができる。
【0014】
第1のフレーム・シーケンスを出力している間、カメラ・モジュールは省電力状態に遷移することができる。先行動作は、第1のフレーム・シーケンスから抽出した連続する2つのフレームの画像で認識することができる。このとき、最低1つのフレームが認識対象の画像を含んでいればよいため、転送周期が先行動作の継続時間の2倍になるまでフレーム・レートを下げることができる。
【0015】
先行動作は、それぞれに先行動作の認識対象が撮影されている2つのフレームで認識してもよい。この場合、転送周期は、継続時間の1/2以上でかつ継続時間以下とすることができる。先行動作は、一方のフレームに先行動作の認識対象が撮影され他方のフレームに認識対象が撮影されていない2つのフレームで認識することができる。この場合、転送周期は、継続時間以上でかつ継続時間の2倍以下とすることができる。
【0016】
先行動作の認識に、認識対象の移動方向の判断や認識対象の移動量の判断を含めることで精度を向上させることができる。第1のフレーム・シーケンスから抽出したフレームからジェスチャが行われているか否かを判断し、所定時間ジェスチャが行われていないと判断したときにジェスチャの認識を停止して、第1のフレーム・シーケンスからの先行動作の認識状態に移行することができる。したがって誤って先行動作を認識した場合、あるいは先行動作に続いてユーザがジェスチャをしなかったような場合にただちに第1のフレーム・レートの動作状態に移行することができる。
【0017】
先行動作を認識したときに、ユーザに先行動作を認識したことを通知することでユーザはジェスチャを開始するタイミングを明確に認識することができる。先行動作は、腕が重力に反する方向に移動する動作、またはジェスチャの開始位置まで腕が移動する動作とすることができる。先行動作の認識は、ジェスチャの認識よりも大きなグリッドごとに画素値を比較することで行うことができるため、ジェスチャの待ち受け中のプロセッサの負担を一層軽減することができる。
【発明の効果】
【0018】
本発明により、電子機器の消費電力を低減しながらジェスチャを認識する方法を提供することができた。さらに本発明により、ユーザがストレスを感じないで電子機器にジェスチャ入力ができる方法を提供することができた。さらに本発明により、そのような方法を実現するジェスチャ入力システム、電子機器、およびコンピュータ・プログラムを提供することができた。
【図面の簡単な説明】
【0019】
【
図1】ノートPC10のハードウェアを説明するための概略の機能ブロック図である。
【
図2】ジェスチャ入力システム100の構成を説明するための機能ブロック図である。
【
図3】ジェスチャ入力システム100の動作を説明するためのフローチャートである。
【
図4】先行動作とそれに続くジェスチャの一例を説明するための図である。
【
図5】先行モードの継続時間と転送周期の関係を説明するための図である。
【発明を実施するための形態】
【0020】
[ノートPCのハードウェア構成]
図1は、電子機器の一例であるノートPC10のハードウェアを説明するための概略の機能ブロック図である。本発明との関連において、ノートPC10のハードウェアの構成は周知であるため説明は簡略化する。CPU11はグラフィック・コアを内蔵しておりLCD15とシステム・メモリ13が接続されている。チップセット17は、さまざまなインターフェースのコントローラを内蔵している。チップセット17のSATAコントローラにはHDD19が接続され、USBコントローラにはUSBバス102でカメラ・モジュール21が接続され、PCIコントローラには無線モジュール23が接続され、LPCコントローラにはエンベデッド・コントローラ(EC)25が接続されている。
【0021】
EC25は、ノートPC10の筐体内部の温度を制御したり、デバイスの電力を制御したり、さらにキーボードやマウスの動作制御をしたりするマイクロ・コントローラである。EC25にはDC/DCコンバータ29が接続され、さらに、図示しないキーボード、マウス、充電器、および排気ファンなどが接続される。電池パック27は、図示しないAC/DCアダプタが接続されていないときにDC/DCコンバータ29に電力を供給する。DC/DCコンバータ29は、ノートPC10を構成するデバイスに電力を供給する。ノートPC10は、電池パック27で動作するときに特にジェスチャ入力システム100(
図2)の消費電力を低減する必要がある。
【0022】
[ジェスチャ入力システム]
図2は、ノートPC10が実装するハードウェアおよびソフトウェアで実現したジェスチャ入力システム100の構成を説明するための機能ブロック図である。ジェスチャ入力システム100は、カメラ・モジュール21と、HDD19が格納するデバイス・ドライバ、オペレーティング・システム、およびジェスチャ認識エンジンなどのソフトウェアと、それを実行する
図1のハードウェアで構成した、カメラ制御部101、画像転送部103、インターフェース部105、先行動作認識部107、ジェスチャ認識部109および出力部111で構成している。
【0023】
カメラ・モジュール21は、一例においてUSB2.0規格またはUSB3.0規格に適合するUSBデバイスである。カメラ・モジュール21は、ノートPC10の筐体に組み込む組込タイプでもよいし、ノートPC10の筐体に取り付けたUSBコネクタに接続する外付けタイプでもよい。カメラ・モジュール21は、USBバス102でチップセット17に接続しているが、ワイヤレスUSBでノートPC10に接続してもよい。
【0024】
カメラ・モジュール21は、ジェスチャを認識するための高いフレーム・レートで画像を出力するジェスチャ・モードと、ジェスチャの先行動作を認識するための低いフレーム・レートで画像を出力する先行モードの2つの動作モードで動作することができる。一例において、ジェスチャ・モードのフレーム・レートはNTSC方式の30fps、PAL方式およびSECAM方式の25fps、携帯電話・移動体端末向け1セグメント部分受信サービス(ワンセグ)の15fpsの中から選択することができる。先行モードのフレーム・レートはジェスチャ・モードのフレーム・レートよりは大幅に低く、一例において0.5fps〜4fps程度の範囲から選択することができる。先行モードのフレーム・レートは、
図5を参照して説明するように、先行動作の継続時間により決定することができる。
【0025】
ここにジェスチャとは、指、手、腕または顔などの認識対象となる人体の部位(ジェスチャ部位)が定義された動きをすることをいう。先行動作とは、人体の部位がジェスチャに先立つ動きをすることをいう。先行動作をする人体の部位がジェスチャ部位と同じであれば、ユーザがジェスチャの流れのなかで自然に先行動作をすることができるため都合がよい。ただし、本発明はジェスチャ部位と先行動作をする部位が異なる場合にも適用できる。
【0026】
ジェスチャ入力システム100は、先行動作を認識した後にジェスチャを認識する。先行動作は、ジェスチャをする前にユーザが無意識で行う自然な動きであることが好ましい。ジェスチャ部位が手または腕の場合、通常ユーザは、胸や顔の近辺まで腕を持ち上げてからジェスチャを行う。このとき一例において、腕を下げた自然な状態からジェスチャをするために下から上に重力に逆らう方向に腕を持ち上げる動作を先行動作とし、それに続く腕または指の複雑な動きをジェスチャとすることができる。このとき先行動作のフレーム・レートは、このような自然な動作の継続時間を想定してから決めることができる。
【0027】
ただし本発明では、ユーザがジェスチャの前に意図的に行う動作を先行動作にしてもよい。この場合、ゆっくりと腕を動かすような先行動作を定義すれば、フレーム・レートを一層下げながら、かつ、操作ボタンでジェスチャ認識エンジンを起動するよりもユーザのストレスを軽減することができる。カメラ・モジュール21は、CMOSセンサーまたはCCDセンサーなどのイメージ・センサを含み、ジェスチャ・モードおよび先行モードにおいてVGA(640×480)、QVGA(320×240)、WVGA(800×480)およびWQVGA(400×240)などの画素サイズの画像を転送することができる。
【0028】
カメラ・モジュール21は、USB規格に規定するパワー・マネジメントに準拠し、USBバス102が所定の時間以上アイドル状態のときにサスペンド状態に遷移し、USBバス102がレジュームしたときにパワー・オン状態に復帰する。カメラ制御部101は、USBコントローラおよびデバイス・ドライバを含む。カメラ制御部101は、カメラ・モジュール21に撮影パラメータを設定したりデータ転送の制御をしたりする。カメラ制御部101はUSBバス102の動作をアイドル状態またはアクティブ状態のいずれかに制御する。カメラ制御部101は、先行モードおよびジェスチャ・モードで動作するカメラ・モジュール21から受け取ったフレーム・シーケンスを画像転送部103に送る。
【0029】
画像転送部103は、ジェスチャ・モードのときのフレーム・シーケンスを処理するOSのストリーミング・サービスを含み、ジェスチャ入力システム100の動作を制御する。画像転送部103は、カメラ・モジュール21にカメラ制御部101を通じて動作モードの指示をする。画像転送部103は、カメラ制御部101から受け取ったフレーム・シーケンスを、先行モードのときは先行動作認識部107だけに転送し、ジェスチャ・モードのときは先行動作認識部107とジェスチャ認識部109の両方に転送する。インターフェース部105はLCD15を含み、ジェスチャ入力システム100の起動および停止、先行モードのときのフレーム・レートの設定、先行動作の認識をしたときのアラートの通知などのサービスをユーザに提供する。
【0030】
先行動作認識部107は、先行モードのときのフレーム・シーケンスから先行動作を認識するためのジェスチャ認識エンジンを含む。ジェスチャ認識部109は、ジェスチャ・モードのときのフレーム・シーケンスからジェスチャを認識するための周知のジェスチャ認識エンジンを含む。先行動作認識部107は、ジェスチャ認識部109がジェスチャの認識をしている間に、画像転送部103から受け取ったフレーム・シーケンスを先行モードのフレーム・レートまたはそれ近いフレーム・レートで処理してジェスチャの監視をする監視モードで動作することができる。
【0031】
先行動作認識部107とジェスチャ認識部109は同一のジェスチャ認識エンジンの動作モードを変えることで実現してもよいし、異なるジェスチャ認識エンジンで実現してもよい。出力部111は、ジェスチャ認識部109が認識したジェスチャに関連付けられたイベントやコマンドを出力する。出力部111は、プレゼンテーションのときの画面のインクリメントやプロジェクターの操作などのためのイベントやコマンドを出力することができるが特に出力先を限定する必要はない。
【0032】
[ジェスチャ入力システムの動作]
つぎに、
図3を参照してジェスチャ入力システム100の動作を説明する。USBバス102がアイドル状態に遷移し、カメラ・モジュール21が選択サスペンド状態に遷移しているときに、ブロック201でインターフェース部105を通じてジェスチャ入力システム100を起動すると、画像転送部103はカメラ制御部101と先行動作認識部107を動作させる。ブロック203で画像転送部103は、カメラ・モジュール21を先行モードで動作させるように指示するためにカメラ制御部101に転送開始コマンドを送る。転送開始コマンドは画像データのフレーム・レートまたはその逆数の転送周期Tを含む。
【0033】
先行モードでは、ジェスチャ認識部109が動作しないためCPU11の負荷はその分だけ小さくなる。画像転送部103から転送開始コマンドを受け取ったカメラ制御部101は、USBバス102をレジュームさせてカメラ・モジュール21に1個目のフレーム転送コマンドを送る。USBバス102がレジュームしたことを検出したカメラ・モジュール21はウェイクアップして1フレームの画像を生成し出力する。
【0034】
カメラ制御部101は受け取ったフレームを画像転送部103に送りかつUSBバス102をアイドル状態に遷移させる。USBバス102がアイドル状態に遷移したことを検出したカメラ・モジュール21は、最も消費電力の少ない選択サスペンド状態に遷移することができる。1フレームの画像を受け取ったあとにカメラ制御部101は、設定された転送周期TでUSBバス102をレジュームさせてカメラ・モジュール21に2個目のフレーム転送コマンドを送る。
【0035】
以後、カメラ・モジュール21は1フレームの画像を送るたびに選択サスペンド状態に遷移し、USBバス102はアイドル状態に遷移する。なお、カメラ・モジュール21は、カメラ制御部101から転送周期Tを含むフレーム転送コマンドを受け取って、それに応じたタイミングでウェイクアップと選択サスペンド状態を繰り返してフレームを転送することもできる。先行モードのときは、カメラ・モジュール21が選択サスペンド状態に遷移し、USBバス102がアイドル状態に遷移することができるため、ジェスチャ・モードのときよりも消費電力は少ない。
【0036】
ブロック205で画像転送部103は先行モードのフレーム・シーケンスを先行動作認識部107に送る。ここで
図4を参照して、ユーザが左腕で先行動作に続いてジェスチャをするときの様子の一例を説明する。
図4(A)は、先行動作を開始する前のユーザの自然な姿勢としての両腕を下げた自然状態281を示している。
図4(B)は先行動作を開始するためにわずかに左腕を持ち上げた先行動作開始状態283を示している。
【0037】
自然状態281と先行動作開始状態283の間に左腕があるときも自然状態281として扱うことにする。
図4(C)は、左腕を胸の前まで持ち上げた先行動作終了状態285を示している。ここでは、先行動作終了状態285とジェスチャを開始する状態はほぼ同じ状態として説明するが、両者の関係は先行動作が終了してからジェスチャを開始するというだけであるため先行動作終了状態285とジェスチャを開始する状態は必ずしも一致している必要はない。
【0038】
図4(D)は、先行動作終了状態285からジェスチャを開始して左腕を上限まで上に持ち上げたジェスチャ状態287を示し、
図4(E)は先行動作終了状態285からジェスチャを開始して左腕を下限まで下げたジェスチャ状態289を示している。このとき先行動作終了状態285からジェスチャ状態287またはジェスチャ状態289まで左腕を振る動作を異なるジェスチャに対応させることができる。さらに、それぞれの方向へ左腕を振る回数、速度、左腕と右腕の相違などを異なるジェスチャに対応させることもできる。
【0039】
ブロック207で先行動作認識部107は、先行モードのフレーム・シーケンスから第1フレームと第2フレーム、第2フレームと第3フレームというように、連続する2つのフレームを抽出してフレーム間の画素値の差分を計算する。ここで、先行動作認識部107が受け取った2つのフレームの画像は、フレーム・レートと先行動作開始状態283から先行動作終了状態285までの先行動作の継続時間tの関係から、2つの態様になる。1つの態様では、先行動作の継続時間tの間に1つの先行動作の画像を撮影できる程度までフレーム・レートを低くしたときの態様で、一方のフレームは自然状態281の画像で、他方のフレームは先行動作開始状態283から先行動作終了状態285までの間(先行動作状態)の画像となる。
【0040】
このときの様子を、
図5を参照して説明する。
図5(A)は、先行動作について想定した継続時間tに対して、転送周期T1を先行動作の継続時間t以上でかつ継続時間tの2倍以下(t≦T1≦2t)に設定したときに、異なるタイミングで先行動作301〜305を開始したときの様子を示している。先行動作301は、フレーム1の画像を撮影する直前に先行動作を開始しており、フレーム1は先行動作状態の画像を含む。先行動作終了状態285がフレーム2の撮影タイミングまでの時間だけ継続すると想定すると、フレーム2は先行動作終了状態285の画像を含む。
【0041】
先行動作303は、フレーム1の画像を撮影した後に先行動作を開始しており、フレーム1は自然状態281の画像を含み、フレーム2は先行動作状態の画像を含む。先行動作305は、フレーム2の撮影のタイミングが継続時間tの中間に対応する様子を示しており、フレーム1は自然状態281の画像を含み、フレーム2は先行動作状態の画像を含む。
【0042】
また、先行動作終了状態285がフレーム3の撮影タイミングまでの時間だけ継続すると想定すると、フレーム3は先行動作終了状態285の画像を含む。整理すると先行動作に対して転送周期T1(t≦T1≦2t)を設定したときに、先行モードのフレーム・シーケンスから抽出した2つのフレームが、それぞれ相互に左腕の位置が異なる先行動作状態の画像を含む場合と、一方のフレームが自然状態281の画像を含み他方のフレームが先行動作状態の画像を含むことになる。
【0043】
図5(B)は、
図5(A)と同じ継続時間tに対して、転送周期T2を、継続時間tの1/2以上でかつ継続時間t以下(t/2≦T2≦t)に設定したときに、異なるタイミングで先行動作321、323を開始したときの様子を示している。先行動作321に対してはフレーム1、フレーム2がそれぞれ相互に左腕の位置が異なる先行動作状態の画像含み、先行動作323に対してはフレーム2、フレーム3がそれぞれ相互に左腕の位置が異なる先行動作状態の画像を含む。
【0044】
整理すると、先行動作に対して転送周期T2(t/2≦T2≦t)を設定したときは、連続する2つのフレームが常に先行動作状態の画像を含む。先行動作の継続時間tを先に想定することで、先行モードの転送周期TをT1またはT2のいずれかで設定することができる。このとき、先行動作認識部107は、左腕が自然状態281と先行動作状態の2つの画像、または、有意な程度まで左腕の位置が異なる2つの先行動作状態の画像を得たときに先行動作を認識することができる。
【0045】
図3に戻って、ブロック207で先行動作認識部107は、連続する2つのフレームについて、適当な大きさのグリッドに区切った領域ごとに各画素について画素値の平均値や中央値などの代表値を計算し、対応するグリッドごとに代表値を比較して画素値の差分を計算する。グリッドの大きさは、腕が認識できる程度に大きくすることができるため先行動作認識部107は、より小さいグリッドで認識するジェスチャ認識部109よりもCPU11に対する負担が小さい。
【0046】
ブロック209で先行動作認識部107は差分の有意性を判断する。差分の有意性は先行動作に対応する左腕の動きを認め得るか否かで判断する。このときユーザの洋服の腕の部分と胸の部分が同じ色である場合に、洋服とは異なる色である掌の画像が形成する差分を併せて計算することができる。先行動作認識部107は、1つのフレームが自然状態281の画像を含み、他のフレームが先行動作状態の画像を含む差分を検出した場合に差分に有意性があると判断する。さらに、先行動作認識部107は2つのフレームから、相互に左腕の位置が異なる先行動作状態の画像を含む差分を検出した場合に有意性があると判断する。先行動作認識部107は差分を計算するときに、左腕以外の画像の差分を無視することで、いずれの場合も有意な差分が発生したグリッドは、左腕または掌の画像に対応することになる。
【0047】
先行動作認識部107は、差分に有意性があると判断したときはブロック211に移行し差分に有意性がないと判断したときはブロック205に戻ってつぎの連続する2つのフレームの差分を計算する。ブロック211で先行動作認識部107は、差分を検出したグリッドから左腕または掌の位置を記録する。それぞれのフレームが先行動作状態の画像を含むときは、先行動作認識部107はブロック213で腕の移動方向を計算し、ブロック215で腕が先行動作開始状態283から先行動作終了状態285に向かって移動していると判断したときはブロック217に移行し、そうでない場合はブロック205に戻るようにしてもよい。
【0048】
ブロック217で先行動作認識部107は、それぞれのフレームが先行動作状態の画像を含むときは、腕の移動距離から先行動作であるか否かを判断する。腕が先行動作状態にあっても停止しているときは先行動作とはいえない。先行動作認識部107は画素値に差分を生じているグリッドから腕または掌が有意な程度に移動していると判断したときは先行動作であるとみなしてブロック219に移行し、移動していないと判断したときは左腕が停止しているとみなしてブロック205に戻ることができる。
【0049】
ブロック219で先行動作認識部107は先行動作を認識したことを画像転送部103に通知する。このとき画像転送部103はインターフェース部105を通じて、音声、画面の変化、またはインディケータLEDなどでユーザにジェスチャが開始できることを通知することができる。ブロック221で画像転送部103はカメラ制御部101にカメラ・モジュール21をジェスチャ・モードで動作させるように指示する。カメラ制御部101は、ジェスチャ・モードを示す転送開始コマンドをカメラ制御部101に送る。
【0050】
カメラ制御部101はカメラ・モジュール21に転送終了コマンドを送って、一旦先行モードでのフレームの転送を終了させてから、ジェスチャ・モードで動作するように指示する。カメラ制御部101は、ジェスチャ・モードでのフレーム・レートをカメラ・モジュール21に指示してもよいが、あらかじめカメラ・モジュール21がジェスチャ・モードで動作するときのフレーム・レートを保持するようにしてもよい。
【0051】
カメラ・モジュール21は、ジェスチャ・モードのフレーム・レートでフレーム・シーケンスの出力を開始する。ジェスチャ・モードで動作するカメラ・モジュール21は、フレーム・レートが高いため選択サスペンド状態に遷移することはなく、また、USBバス102もアイドル状態に遷移することはない。画像転送部103は、ジェスチャ・モードのフレーム・シーケンスを先行動作認識部107とジェスチャ認識部109に送る。
【0052】
ブロック223で先行動作認識部107は監視モードで動作して、ブロック263まで先行動作に続いてジェスチャが行われているか否かを監視する。このとき先行動作認識部107は、画像転送部103が出力するジェスチャ・モードのフレーム・シーケンスから、所定の複数のフレームをスキップして先行モードの転送周期に合致する転送周期またはそれに近い転送周期でフレーム・シーケンスを受け取る。あるいは、画像転送部103が先行動作認識部107に、ジェスチャ・モードよりも転送周期を長くしたフレーム・シーケンスを送るようにしてもよい。
【0053】
ブロック251で画像転送部103は、ジェスチャ認識エンジンを実行してジェスチャ認識部109を起動する。ブロック253でジェスチャ認識部109は、ジェスチャ・モードのフレーム・シーケンスを受け取って、ブロック255で連続するフレームの画素値の差分を計算する。ジェスチャは、先行動作よりも高い分解能で判断する必要があるため、画素値の差分は、ブロック207で先行動作認識部107が設定したグリッドよりも小さいグリッドについて計算する。
【0054】
ブロック257でジェスチャ認識部109は差分の有意性を判断する。差分の有意性は定義されたいずれかのジェスチャに対応する左腕の動きを示すか否かで判断する。ジェスチャ認識部109は左腕がジェスチャ状態287、289の間の位置に存在し、かつ、2つのフレームの画素値が、ジェスチャが行われていることを示す程度に差があるときに有意性があると判断してブロック259に移行する。差分に有意性がない場合はブロック263に移行する。
【0055】
ジェスチャ認識部109はブロック259で、定義されたジェスチャを認識したときはブロック261で出力部111に認識したジェスチャの識別子を送り認識しないときはブロック253に戻ってさらに後続のフレーム・シーケンスの差分を計算してジェスチャの認識を継続する。ブロック261で出力部111は識別子をあらかじめ関連付けたコマンドまたはイベントとして出力する。ブロック261で1つのジェスチャを認識したときはブロック253に戻ってつぎのジェスチャを判断する。
【0056】
ブロック263で先行動作認識部107は、ジェスチャ状態287、289の間の位置に腕が存在する2つのフレームの画素値に有意な程度の差分がある状態が、たとえば3秒といった所定時間継続するか否かを判断する。有意な差分がない場合は、左腕が自然状態281の場合、またはジェスチャ状態287、289の間の位置で左腕が停止したような場合で、ユーザがジェスチャを止めたことに相当する。
【0057】
有意な差分がある場合はジェスチャを継続する意思があると判断してブロック253に移行し、有意な差分がない場合はブロック265に移行する。ブロック265で先行動作認識部107は、画像転送部103に指示してジェスチャ認識部109を停止してブロック203に戻る。したがって、先行動作認識部107がブロック219で誤って先行動作を認識したとき、または先行動作の後にジェスチャが停止したときでも、短時間のうちに先行モードに移行することができるため、無駄に電力を消費することはない。
【0058】
図3に示した各ブロックおよびその順番はすべてが本発明に必須の要素ではなく、本発明の構成は特許請求の範囲の記載による。たとえば、ブロック213、215を省略したり、ブロック221からブロック251までの順番を入れ替えたりすることも当業者にとって容易に想起できる範囲において本発明に含まれる。ジェスチャ入力システム100は、さまざまな電子機器に搭載することができるが、ノートPC10の他にバッテリィで動作するスマートフォンまたはタブレット端末などに搭載すると効果的である。
【0059】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【0060】
10 ノートブック型パーソナル・コンピュータ
100 ジェスチャ入力システム
281 自然状態
283 先行動作開始状態
285 先行動作終了状態
287、289 ジェスチャ状態