以下、本発明の実施の形態による制御装置の一例について図面を参照して説明する。なお、以下に説明する実施の形態は、本発明を実現するための一例であり、本発明が適用される装置の構成や各種条件によって適宜修正又は変更されるべきものであり、本発明は以下の実施形態に限定されるものではない。
[第1の実施形態]
図1は、本発明の第1の実施形態による制御装置100の一例についてその構成を示すブロック図である。
図示の制御装置100は、例えば、テレビ、パーソナルコンピュータ(以下PCという)、ビデオカメラ、DVDレコーダー、BDレコーダー、オーディオプレイヤー、メディアプレイヤー、エアコン、照明機器、洗濯機、又はゲーム機などの電気機器に搭載される。なお、以下の説明では、制御装置100はテレビに搭載されているものとして説明する。
制御装置100はCPU101、ハードディスクドライブ(HDD)102、メモリ103(例えば、ROMおよびRAM)、表示制御部104、キー操作などを行うための操作部105、ドライブ装置106、通信部107、および撮像部110を有している。そして、これらCPU101、ハードディスクドライブ(HDD)102、メモリ103、表示制御部104、操作部105、ドライブ装置106、通信部107、および撮像部110はバス109で相互に接続されている。また、表示制御部104にはディスプレイ108が接続されている。
HDD102には、例えば、映像音声データ、その他のデータ、およびCPU101で動作する各種プログラムなどが格納されている。
CPU101は、HDD102に格納されたプログラムに応じて、メモリ103をワークメモリとして用い、制御装置100の制御を行う。なお、CPU101で動作するプログラムは、HDD102の他に、例えば、ROMに予め格納するようにしてもよい。
操作部105は、ユーザの操作を受け付けて、当該操作に応じた指示信号をCPU101に与える。例えば、操作部105は、ユーザの操作を受け付ける入力デバイスとして、キーボードなどの文字情報入力デバイス、マウスおよびタッチパネルなどのポインティングデバイスを有している。タッチパネルは、操作部105の接触位置に応じた座標情報を出力する入力デバイスである。
なお、CPU101はユーザ操作に応じた指示信号に基づいて制御装置100を制御する。これによって、ユーザはユーザ操作に応じた動作を撮像装置100に行わせることができる。
表示制御部104は、CPU101の制御下でディスプレイ108に画像を表示する。例えば、CPU101が表示制御部104に対して表示制御信号を与えると、表示制御部104は表示制御信号に応じた画像表示信号を生成してディスプレイ108に出力する。そして、ディスプレイ108には、GUI(Graphical User Interface)を構成するGUI画面が表示される。
なお、操作部105としてタッチパネルを用いる場合には、操作部105とディスプレイ108とを一体的に構成することができる。この際には、タッチパネルによってディスプレイ108の表示が妨げられないようにして、ディスプレイ108の表示面上にタッチパネルが配置される。そして、タッチパネルにおける入力座標とディスプレイ108上の表示座標とが対応付けられる。
これによって、ユーザはディスプレイ108に表示された画面を直接的に操作可能なGUIを構成することができる。
操作部105がタッチパネルである場合には、CPU101はタッチパネルに対する次の操作を検出する。
タッチパネルを指又はペンで触れたこと(以下タッチダウンと呼ぶ)。タッチパネルを指又はペンで触れている状態であること(以下タッチオンと呼ぶ)。タッチパネルを指又はペンで触れたまま移動していること(以下ムーブと呼ぶ)。タッチパネルに触れていた指又はペンを離したこと(以下タッチアップと呼ぶ)。タッチパネルに何も触れていない状態(以下タッチオフと呼ぶ)。
上記の操作およびタッチパネルに触れた位置座標はタッチ情報として内部バス109を介してCPU101に送られる。そして、CPU101はタッチ情報に基づいてタッチパネルに対してどのような操作が行なわれたかを判定する。
ムーブについては、CPU101はタッチパネルで移動する指又はペンの移動方向を、位置座標の変化に基づいてその垂直成分および水平成分毎に判定する。タッチパネルをタッチダウンしてから一定のムーブを経てタッチアップをしたとき、これはストロークを描いたとされる。素早くストロークを描く操作をフリックと呼ぶ。フリックは、タッチパネルに指を触れたままある程度の距離だけ素早く動かして、そのまま離すといった操作である。言い換えると、フリックはタッチパネル上を指ではじくように素早くなぞる操作である。
CPU101は所定の距離以上かつ所定の速度以上でムーブしたことを検出して、そのままタッチアップを検出するとフリックが行なわれたと判定する。また、CPU101は所定の距離以上かつ所定の速度未満でムーブしたことを検出すると、ドラッグが行なわれたと判定する。
ドライブ装置106には、CDおよびDVDなどの外部記憶媒体(図示せず)が装着とされる。そして、ドライブ装置06はCPU101の制御下で、外部記憶媒体からデータを読み出すとともに、外部記憶媒体に対するデータの書き込みを行う。
なお、ドライブ装置106が装着可能な外部記憶媒体は、CD又DVDなどのディスク記録媒体に限られず、例えば、メモリカードなどの不揮発性半導体メモリをドライブ装置106に装着するようにしてもよい。
通信部107は、ネットワークなどを介して外部と通信を行う。例えば、通信部107は外部から操作信号を受信して、当該操作信号に応じた指示信号を生成して、CPU101に送る。なお、通信部107はネットワークに限らず、例えば、赤外線通信又は電波による無線通信で外部と通信を行うようにしてもよい。
撮像部110はレンズユニットおよび絞り部などの光学部を有しており、光学部を通過した光学像が撮像素子(図示せず)に結像する。そして、撮像部110においては撮像素子からの出力である画像信号がA/D変換されて画像データとされる。そして、CPU101は必要に応じて当該画像データを画像処理した後メモリ103に書き込む。
つまり、CPU101はメモリ103又はハードディスクドライブ(HDD)102に格納された画像データ、撮像部110による撮像の結果得られた映像信号(画像データ)、そして、通信部107を介して取得した画像データなどに対して各種の画像処理を施す。当該画像処理には、例えば、A/D変換処理、D/A変換処理、画像データの符号化処理、圧縮処理、デコード処理、拡大/縮小処理(リサイズ)、ノイズ低減処理、および色変換処理が含まれる。
撮像部110は、CPU101の制御に下で所定の範囲の色温度および輝度となるように、色バランス、絞り値、シャッター速度、および焦点距離などを制御する。この結果、撮像部110による撮影の結果得られた画像は時系列的に連続性が保たれる。
メモリ103に格納された画像データはCPU101によって圧縮処理されてドライブ装置106で記録媒体に記録される。この圧縮、記録処理と並行して、CPU101はメモリ103に格納された画像データを最適なサイズにリサイズ処理して、操作アイコンおよび顔枠等を重畳した表示制御信号を表示制御部104に送る。これによってリアルタイムで撮影の結果得られた画像がディスプレイ108に表示される。
また、CPU101は撮像部110から出力された映像信号(を受信して、当該映像信号が示す画像から人間などの被写体が撮影された領域である被写体領域を検出する。そして、CPU101は当該被写体領域から動きベクトルなどの動作特徴量を抽出する。
例えば、動作特徴量の抽出の際、CPU101は顔および腕などの人体を構成する各パーツの領域を推定するため、被写体領域に形状モデルを当てはめる。形状モデルとは、予め単純化された3次元パーツモデル(円筒、楕円体、超2次曲面(superquadrics)など)により近似された人体各部の形状モデルである。例えば、CPU101は顔部(頭部)の位置および姿勢を基準として、腕、手、足、および胴体などの存在範囲を推定する。
CPU101は対象となる人物を構成するパーツごとの特徴量(局所的かつ幾何学的な特徴、動きベクトル、色成分特徴など)をパーツの代表点付近における平均的特徴量として、所定の記憶手段であるHDD102又はメモリ103に格納する。そして、CPU101はパーツ単位で代表点位置を動作特徴量として抽出する。
続いて、CPU101は抽出された動作特徴量とHDD102又はメモリ103に記憶された動作モデルとの照合を行う。CPU101はこの動作モデルを通信部107を介して外部から取得することが可能である。
CPU101は照合の結果として、抽出された動作特徴量と各動作モデルとの類似度を算出する。算出した類似度に基づいて、CPU101は抽出した動作特徴量と動作モデルが同一の動作を示すか否かを判定する。ここで、動作モデルとは、1つ以上のパーツによる時系列的な特徴量である。
なお、人物動作の抽出技術については、例えば、星野、「人物動作における個性の抽出と再構成」画像電子学会誌第30巻、pp.631−640,2001などに記載されている。
また、動作モデルとのマッチング処理の基本的な方法として、例えば、入力画像の遷移系列とモデルとの対応付けをDynamic time warpingという手法で行う方法(T.J.Darell and A.P.Pentland, 1993 “Space−Time Gestures,”)、動作の状態遷移を確率モデルで行う隠れマルコフモデルを用いた手法(J.Yamato, J.Ohya, and K.Ishii, 1992 “Recognizing Human Action in Time−Sequential Images Using Hidden Markov Model,” Proc. CVPR, pp. 379−385)、および時空間エッジ画像ベクトル列の連続動的計画法(Continuous Dynamic Programming)による方法(西村、岡「ジェスチャ動画像の逆時間動作や静止動作をスポッティング認識するためのNon−monotonic連続DP」、信学技報、PRMU96−32、pp.49−56,1996)などがある。
この動作モデルは制御命令と対応づけてHDD102又はメモリ103に記憶される。そして、抽出された動作特徴量と動作モデルとの照合結果である類似度が所定の閾値以上である場合には、CPU101は当該動作モデルと対応した制御命令を実行する。そして、類似度が所定の閾値未満である場合には、CPU101は特に処理を実行しない。
図2は、図1に示す制御装置100が搭載されたテレビの一例を示す図である。そして、図2(a)は制御装置100と被写体との関係の一例を示す図であり、図2(b)は図2(a)に示す状態において被写体を撮像した結果得られる画像の一例を示す図である。
制御装置100は、前述のように表示部であるディスプレイ108および撮像部110を有しており、図2(a)に示すように、人間である被写体201および202はディスプレイ108と対面している。そして、図示の例では、撮像部110はディスプレイ108の左上隅に配置され、被写体201および202は撮像部110の画角内に入る。図2(a)に示す状態で、撮像部110によって撮影を行うと、図2(b)に示す画像が得られる。
なお、図2(b)においては、画像中の被写体像を図2(a)に示す被写体と同一の参照番号で示している。
図3は、図1に示す制御装置100で行われる制御動作の一例を説明するための図である。なお、ここでは、被写体が行ったジェスチャに対応して予め制御命令が規定されているものとする。
まず、CPU101は撮像部110を制御して、撮像部110によって撮影された時系列画像データを取得する。そして、CPU101は当該画像データが示す画像から被写体領域を抽出して、ジェスチャ認識を行う(ステップS301)。
続いて、CPU101は認識したジェスチャ動作があったか否か、つまり、ジェスチャ動作の認識を完了したか否かを判定する(ステップS302)。ジェスチャ動作の認識が完了していないと(ステップS302において、NO)、CPU101はステップS301の処理に戻って、ジェスチャ動作の認識処理を行う。一方、ジェスチャ動作の認識が完了すると(ステップS302において、YES)、CPU101は認識完了ジェスチャが登録ジェスチャとしてメモリ103に記憶(登録)されているか否かを判定する(ステップS303)。
認識完了ジェスチャが登録ジェスチャとしてメモリ103に登録されていると(ステップS303において、YES)、CPU101は認識完了ジェスチャと登録ジェスチャとに対応する制御命令を比較する(ステップS304)。そして、CPU101は制御命令が同一であるか否かを判定する(ステップS305)。
制御命令が同一でないと(ステップS305において、NO)、CPU101は認識完了ジェスチャに対応する制御命令を実行する(ステップS306)。なお、認識完了ジェスチャが登録ジェスチャとしてメモリ103に登録されていないと(ステップS303において、NO)、CPU101はステップS306の処理に進んで、認識完了ジェスチャに対応する制御命令を実行する。
次に、CPU101は他にジェスチャ認識処理中の被写体が存在するか否かを判定する(ステップS307)。なお、制御命令が同一であれば(ステップS305において、YES)、CPU101はステップS307の処理に進む。
他にジェスチャ認識処理中の被写体が存在すると(ステップS307において、YES)、CPU101はステップS302で認識した認識完了ジェスチャをメモリ103に登録して、制御処理を終了する。一方、他にジェスチャ認識処理中の被写体が存在しないと(ステップS307において、NO)、CPU101は当該認識完了ジェスチャが既にメモリ103に登録されているか否かを判定する(ステップS310)。
認識完了ジェスチャが既にメモリ103に登録されていると(ステップS310において、YES)、CPU101はメモリ103に登録された認識完了ジェスチャを削除して(ステップS311)、制御処理を終了する。認識完了ジェスチャがメモリ103に登録されていないと(ステップS310において、NO)、CPU101は制御処理を終了する。
このように、CPU101は、既にメモリ103に認識ジェスチャが記憶されているか否かを判定し、その判定結果に応じて認識ジェスチャに対応付けられた制御命令を選択的に実行することになる。
図4は、図1に示す撮像部110による撮影の結果得られた時系列画像におけるジェスチャを説明するための図である。そして、図4(a)はジェスチャの一例を示す図であり、図4(b)はジェスチャの他の例を示す図である。
図4(a)に示す例では、時系列画像において被写体401のみが制御装置100に対する制御命令を実行するためのジェスチャ動作を行っている。一方、図4(b)に示す例では、被写体401が制御装置100に対する制御命令を実行するためのジェスチャ動作を行っている際、被写体402が制御装置100に対する制御命令を実行するためのジェスチャ動作を開始している。
CPU101は、前述したように、抽出した被写体領域の動きを時系列にメモリ103に記憶するとともに、抽出された被写体領域の動きを、メモリ103に登録された登録ジェスチャと照合する。
図5は、図1に示すメモリ103に登録された特定のジェスチャ動作を説明するための図である。そして、図5(a)は登録ジェスチャ動作の一例を示す図であり、図5(b)は登録ジェスチャ動作の他の例を示す図である。
図5(a)に示す例では、被写体501が特定のジェスチャ動作として、「左手を肩付近で左右に移動する」動作を行うジェスチャ動作が登録ジェスチャとして登録されている。図5(b)に例では、被写体501が特定のジェスチャ動作として、「左手を肩付近で上下に移動する」動作を行うジェスチャ動作が登録ジェスチャとして登録されている。
図5(a)および図5(b)に示すジェスチャ動作は制御装置100に対する制御命令と関係付けられてメモリ103に登録される。例えば、図5(a)に示すジェスチャ動作に対しては「チャンネル操作」を「+1」とする制御命令が対応付けられている。また、図5(b)に示すジェスチャ動作に対しては「音量操作」を「+1」とする制御命令が対応付けられている。
この他にも、制御装置100がテレビである場合には、「チャンネル操作」の「−1」、「音量操作」の「−1」、「電源操作」の「消す」、「メニュー操作」の「開く」、「メニュー操作」の「閉じる」、「カーソル操作」の「上に移動」、「下に移動」、「左に移動」、および「右に移動」などの制御命令がジェスチャ動作に対してメモリ103に登録されている。
なお、ジェスチャ動作の認識完了とは、例えば、図5(a)又は図5(b)において左図、中央図、および右図の一連のジェスチャ動作の流れを最後まで認識できた場合をいう。図4(a)および図4(b)に示す例では、CPU101は被写体401についてはその中央図においてジェスチャの認識を完了したと判定する。一方、被写体402については、CPU101は図4(b)においてその右図でジェスチャの認識を完了したと判定することになる。
以下、図4(a)に示す例の場合における制御装置101の制御動作について説明する。なお、制御装置100を起動した際には、メモリ103には認識完了ジェスチャは未だ登録されていない。
前述のステップS303において、CPU101は認識完了ジェスチャがメモリ103に登録されているか否かを判定するが、図4(a)に示す例では、CPU101が被写体401のジェスチャを認識した時点では、メモリ103には登録認識ジェスチャは未だメモリ103に登録されていない。従って、CPU101は認識完了ジェスチャがメモリ103に登録認識ジェスチャとして登録されていないとし(ステップS303において、NO)、ステップS306において当該認識完了ジェスチャに対して予め対応付けられた制御命令を実行する。
図4(a)に示す例では、被写体401のジェスチャは、図5(b)に示すジェスチャと同様であるので、ここでは、CPU101は制御命令として「音量操作」の「+1」を実行することになる。
続いて、CPU101は、ステップS307において被写体401と異なる被写体に対してジェスチャ認識処理を行っているか否かを判定することになる。ここでは、被写体401のジェスチャを認識した時点における図4(a)の中央図では、被写体401以外の被写体はジェスチャ動作を行っていない。よって、CPU101は被写体401と異なる被写体に対するジェスチャ認識処理を行っていないと判定し、ステップS310においてメモリ103に認識完了ジェスチャが登録されているか否かを判定することになる。
図4(a)に示す例では、被写体401に対するジェスチャ認識完了の際には、認識完了ジェスチャはメモリ103に未だ登録されていないので、CPU101は、ステップS310においてメモリ103に認識完了ジェスチャが登録されていないと判定して、制御処理を終了する。
これによって、図4(a)に示すように、複数の被写体が撮影されてそのうちの一人がジェスチャ動作を行った場合には、当該一人が行ったジェスチャ動作に応じた制御命令が実行される。従って、制御装置100は一人(図4(a)においては、被写体401)が期待した制御命令を実行することになる。
次に、図4(b)に示す例の場合における制御装置101の制御動作について説明する。
図4(b)に示す例の場合には、まず被写体401のジェスチャ動作がCPU101によって認識される。この場合、未だメモリ103には認識完了ジェスチャが登録ジェスチャとして登録されていないので、ステップS303の処理では、CPU101はメモリ103に認識完了ジェスチャが登録されていないと判定することになる。そして、ステップS306において、CPU101は被写体401に係る認識完了ジェスチャに対応する制御命令を実行する。
ステップS307において、被写体401のジェスチャを認識した時点における図4(b)の中央図では、被写体401以外に被写体402がジェスチャ動作を開始しているので、ステップS307において、CPU101はジェスチャ認識処理中の被写体が存在すると判定することになる(ステップS307において、YES)。これによって、CPU101は、ステップS308において被写体401に係る認識完了ジェスチャをメモリ103に登録して、制御処理を終了する。
なお、メモリ103に認識完了ジェスチャを登録する際には、CPU101は、例えば、抽出したジェスチャ動作の特徴量およびID、そして、当該ジェスチャに対応する制御命令がメモリ103に記憶される。
その後、ステップS301およびS302で被写体402に対するジェスチャ認識が完了すると(図4(b)の右図参照)、CPU101はステップS303においてメモリ103に認識完了ジェスチャが登録されていると判定することになる。ここでは、前述のように、被写体401に係る認識完了ジェスチャがメモリ103に登録されている。
ステップS304において、CPU101は被写体402に係る認識完了ジェスチャとメモリ103に登録された被写体401に係る認識完了ジェスチャをと比較する。ここでは、CPU101は被写体402の認識完了ジェスチャに対応する制御命令と被写体401の認識完了ジェスチャに対応する制御命令とを比較する。そして、CPU101は、ステップS305において制御命令が同一であるか否かを判定することになる。
図4(b)に示す例では、被写体402の認識完了ジェスチャに対応する制御命令は「チャンネル操作」の「+1」であるのに対し、被写体401の認識完了ジェスチャに対応する制御命令は「音量操作」の「+1」である。従って、図4(b)に示す例においては、CPU101は制御命令が異なると判定することになる。
制御命令が互いに異なっているので、CPU101は、ステップS307において認識完了が最も新しい被写体402に係る認識完了ジェスチャに対応する制御命令を実行する。ここでは、図4(b)における被写体501のジェスチャ動作は、図5(a)と同様のジェスチャ動作であるので、CPU101は制御命令として「チャンネル操作」の「+1」を実行する。
上述のように、図4(b)に示す被写体402は、被写体401とは異なる制御命令を実行するためのジェスチャ動作を行っていたので、ステップS306において、COU101は被写体402のジェスチャ動作に対応した制御命令を実行する。一方、被写体402が被写体401のジェスチャ動作と同様の制御命令に対応するジェスチャ動作を行った場合には、CPU101はステップS306をスキップする。この結果、被写体402のジェスチャ動作に対応する制御命令は実行されない。
これによって、複数の被写体が同一のジェスチャ動作を行った場合に、重複して制御命令が実行されて、先のジェスチャ動作に対応する制御命令が行われた後、後のジェスチャ動作に対応する制御命令が再度実行されることを防止することができる。
例えば、先のジェスチャ動作によって制御命令として「チャンネル操作」の「+3」が実行された後、後のジェスチャ動作によって制御命令として再度「チャンネル操作」の「+3」が実行されると、先のジェスチャ動作前のチャンネルから「+6」のチャンネル操作が行われることになる。一方、上述のようにして、複数の被写体が同一のジェスチャ動作を行った場合に、重複して制御命令を実行しないようにすれば、ジェスチャ動作をした2人のユーザのいずれもが意図しないチャンネルに変更されてしまうという事態を防止することができる。
また、上述したように、複数の被写体が互いに異なるジェスチャ動作を行った場合には、CPU101はこれらジェスチャ動作に対応する制御命令を実行することになる。例えば、先のジェスチャ動作によって制御命令として「チャンネル操作」の「+3」を実行した後、後のジェスチャ動作によって制御命令として「音量操作」の「+3」を実行すれば、チャンネルおよび音量の両方の変更が行われて、複数のユーザの要望を満たすことができる。
続いて、CPU101は、ステップS307において、被写体402とは異なる被写体に対するジェスチャ認識処理を実行しているかを判定することになるが、図4(b)に示す例では、被写体401および402以外に被写体は存在しないので、CPU101はステップS310の処理に進む。
ステップS310においては、メモリ103に被写体401に係る認識完了ジェスチャが登録されているので、CPU101はステップS311の処理に進んで、被写体401に係る認識完了ジェスチャをメモリ103から削除して、制御処理を終了する。
なお、認識完了ジェスチャを削除するタイミングは、ステップS310の判定処理直後であってもよく、判定処理後から所定の時間が経過した後でもよい。
このように、本発明の第1の実施形態では、第1の被写体のジェスチャ動作に応じた制御命令を実行した後、第2の被写体がジェスチャ動作を行っていると、第1の被写体のジェスチャ動作をメモリに記憶する。そして、第2の被写体のジェスチャ動作を認識した後、当該第2の被写体のジェスチャ動作がメモリに記憶した第1の被写体のジェスチャ動作と同一の制御命令に対応するジェスチャ動作であるか否かを判定する。そして、その比較結果に応じて制御命令を実行するか否かを決定するようにしたので、複数の被写体によるジェスチャ動作が連続的に行われた場合であっても、複数のユーザの意図した制御命令を的確に行うことができる。
なお、第1の実施形態では制御装置100がテレビに搭載されている場合について説明したが、例えば、制御装置100はDVD又はBDレコーダーに搭載するようにしてもよい。この場合には、予め登録されているジェスチャ動作に対応する制御命令として、「再生」および「停止」、「早送り」、「巻き戻し」、「一時停止」などの制御命令がジェスチャ動作に対応付けて登録される。
制御装置100が照明機器に搭載されている場合には、調色・調光のレベルが制御される。この際には、制御命令として、「明るく+1」、「暗く+1」、「寒色+1」、「暖色+1」および直接明るさを指定する「明るさMAX」、「省エネライト」、「消灯」などがジェスチャ動作に対応付けて登録される。
[第2の実施形態]
次に、本発明の第2の実施形態による制御装置の一例について説明する。なお、第2の実施形態による制御装置の構成は図1に示す制御装置と同様である。また、ここでは、制御装置100はテレビに搭載されているものとして説明する。
図6は、本発明の第2の実施形態による制御装置100の制御動作を説明するためのフローチャートである。なお、図6において、図3に示すステップと同一のステップについては同一の参照部号を付して説明を省略する。
ステップS305において、制御命令が同一でないと判定すると(ステップS305において、NO)、CPU101は今回の認識完了ジェスチャとメモリ103に登録された認識完了ジェスチャとに対応する制御項目を比較する(ステップS620)。そして、CPU101は制御項目が同一であるか否かを判定する(ステップS621)。
図7は、図1に示す制御装置100に設定された制御項目と制御命令との対応を示す制御テーブルの一例を示す図である。なお、図7に示す制御テーブルは、例えば、HDD102に記憶されている。
図7において、制御テーブルは制御項目および制御命令を備えており、制御項目とは、例えば、電気機器における制御操作を示している。テレビにおいては、制御項目として「音量操作」および「チャンネル操作」などがあり、これら制御項目に対応付けて制御命令が設定される。例えば、「音量操作」については制御命令として音量「+1」および「−1」があり、「チャンネル操作」については制御命令としてチャンネル「+1」およびチャンネル「−1」がある。
また、再生プレーヤーでは、制御項目として「再生操作」があり、「再生操作」について制御命令として「開始」、「停止」、「早送り」、および「巻き戻し」がある。
なお、図7に示す例では、制御テーブルには、制御項目として「カーソル移動(上下)」および「カーソル移動(左右)」があり、「カーソル移動(上下)」については制御命令として「カーソルを上に移動」および「カーソルを下に移動」がある。また、「カーソル移動(左右)」については制御命令として「カーソルを左に移動」および「カーソルを右に移動」がある。
ステップS620およびS6211においては、ステップS305で制御命令が異なると判定した際に、CPU101は図7に示す制御テーブルを参照して、これら制御命令が同一の制御項目に属するか否かを判定することになる。そして、同一の制御項目に属しないと判定すると(ステップS621において、NO)、CPU101はステップS306に進んで、認識完了ジェスチャに対応する制御命令を実行する。
一方、制御項目が同一であると判定すると(ステップS621において、YES)、CPU101は表示制御部104を制御して認識完了ジェスチャに対応する制御命令を実行するか否かを示すメッセージをディスプレイ108に表示して、ユーザに通知する(ステップS622)。なお、CPU101は図示しないスピーカなどによって音声で通知を行うようにしてもよい。
続いて、CPU101は上記の通知に応答してユーザが、例えば、操作部105から了解の旨を入力したか否かを確認して、制御命令を実行するか否かを判定する(ステップS623)。制御命令を実行しないと判定すると(ステップS623において、NO)、CPU101は制御処理を終了する。一方、制御命令を実行すると判定すると(ステップS623において、YES)、CPU101はステップS306の処理に進んで、認識完了ジェスチャに対応する制御命令を実行する。
ここで、前述の図4(b)に示す被写体402のジェスチャ動作の認識が完了した場合について説明する。この際、被写体401のジェスチャ動作の認識は図4(b)の中央図の時に完了しており、メモリ103には被写体401に係る認識完了ジェスチャが記憶されているものとする。
図4(b)に示す例では、被写体402の認識完了ジェスチャに対応する制御命令は「チャンネル操作」の「+1」、つまり、チャンネルを+1回すであり、被写体401の認識完了ジェスチャに対応する制御命令は「音量操作」の「+1」、つまり、音量を+1とするであるので、制御命令が異なっている。従って、CPU101はステップS620およびS621において制御項目が同一であるか否かを判定することになる。
図7に示す制御テーブルにおいては、「チャンネルを+1回す」の制御項目は「チャンネル操作」であり、「音量を+1とする」の制御項目は音量操作であるので、CPU101はステップS621において制御項目が異なると判定する。この結果、CPU101はステップS306において被写体401の認定完了ジェスチャに対応する制御命令を実行する。
上述のように、図4(b)に示す被写体402は、被写体401と異なる制御項目に対応する制御命令を実行するためのジェスチャ動作を行っていたので、CPU101はステップS306において被写体402のジェスチャ動作に対応する制御命令を実行することになる。一方、被写体402のジェスチャ動作が被写体401のジェスチャ動作とその制御項目が同一の場合には、CPU101はステップS622の処理に移行して、ユーザに制御命令を実行するか否かを通知することになる。
このように、本発明の第2の実施形態では、CPU101は第1の被写体のジェスチャ動作に対応する制御命令が実行された後、第2の被写体のジェスチャ動作を認識する。そして、CPU101は第1の被写体のジェスチャ動作に対応する制御命令が属する制御項目と第2の被写体のジェスチャ動作に対応する制御命令が属する制御項目が同一であるか否かを判定する。制御項目が同一であると、第2の被写体のジェスチャ動作に対応する制御命令における制御量が異なっていても、CPU101は第2の被写体のジェスチャ動作に対応する制御命令を実行しない。
つまり、第1および第2の被写体にジェスチャ動作に対応する制御命令が互いに相反する場合には、CPU101は第1の被写体のジェスチャ動作に対応する制御命令のみを実行する。そして、CPU101は第2の被写体のジェスチャ動作に対応する制御命令については実行するか否かをユーザに確認するので、全てのユーザについてその意図した制御命令を適切に行うことができる。
なお、第2の実施形態では制御装置100がテレビに搭載されている場合について説明したが、例えば、制御装置100はDVD又はBDレコーダーに搭載するようにしてもよい。この場合には、「再生」および「停止」をグループ化した「再生制御」、そして、「早送り」および「巻き戻し」をグループ化した「スキップ制御」などの制御項目が制御命令に対応付けて制御テーブルに登録される。
また、制御装置100が照明機器に搭載されている場合には、調色・調光のレベルが制御される。この際には、調色・調光のレベルを変更する「明るく+1」および「暗く+1」をグループ化した「調光制御」、そして、「寒色+1」および「暖色+1」をグループ化した「調色制御」などの制御項目が制御命令に対応付けて制御テーブルに登録される。
[第3の実施形態]
続いて、本発明の第3の実施形態による制御装置について説明する。なお、第3の実施形態による制御装置の構成は図1に示す制御装置と同様であるので説明を省略する。また、ここでは、制御装置100は撮像装置に搭載されているものとして説明する。
第3の実施形態による制御装置100においては、HDD102には、ジェスチャ認識用辞書データが格納される。ジェスチャ認識用辞書データとは、ジェスチャ認識用の動きベクトル変化を示すデータである。CPU101は、メモリ103に格納された画像データから動きベクトルなどの動作特徴量を検出して、その検出結果をメモリ103に記録する。なお、ここでは、動きベクトルの検出の際には、勾配法又はブロックマッチングなどの動きベクトル検出手法が用いられる。
CPU101は、動きベクトルとジェスチャ認識用辞書データと照合して類似するものがあるか否かを判定する。この照合の際には、数学的な相似計算が行われるか又はパターンマッチングなどの照合手法が用いられる。
図8は本発明の第3の実施形態による制御装置100においてCPU101で行われる動きベクトル変化の解析処理を説明するためのフローチャートである。
動きベクトル変化解析処理が開始されると、CPU101はメモリ103に格納された画像データにおいて前回のフレームから今回のフレームの間に動きベクトルが検出されたか否かを判定する(ステップS801)。動きベクトルが検出されないと(ステップS801において、NO)、CPU101は処理を終了する。
一方、動きベクトルが検出されると(ステップS801において、YES)、CPU101は検出された動きベクトルから判定対象の動きベクトルを選択する(ステップS802)。そして、CPU101は所定のフレーム数以内で過去に遡って判定対象の動きベクトルの始点が終点となる動きベクトルが存在するか否かを判定する(ステップS803)。
判定対象の動きベクトルの始点が終点となる動きベクトルが存在すると(ステップS803において、YES)、CPU101は今回検出した動きベクトルは過去に検出した動きベクトルの継続動作であると判定する(ステップS804)。そして、CPU101は今回検出した動きベクトルに関する動きベクトル情報を継続動作とした過去の動きベクトルの動きベクトル変化履歴に追加してメモリ103に保存する(ステップS805)。
続いて、CPU101は、検出した動きベクトルの全てについて継続動作又は新規動作であるかの解析が終了したか否かを判定する(ステップS806)。全ての動きベクトルについて解析が終了すると(ステップS806において、YES)、CPU101は解析処理を終了する。一方、全ての動きベクトルについて解析が終了していなと(ステップS806において、NO)、CPU101は検出した動きベクトルから判定対象とする次の動きベクトルを選択して(ステップS807)、ステップS803の処理に戻る。
判定対象の動きベクトルの始点が終点となる動きベクトルが存在しないと(ステップS803において、NO)、CPU101は今回検出した動きベクトルは過去との継続性がなく、検出した動きベクトルは新規動作であると判定する(ステップS808)。そして、CPU101は今回検出した動きベクトルに係る動きベクトル情報について、新規の動きベクトル変化履歴を作成してメモリ103保存する(ステップS809)。その後、CPU101はステップS806の処理に進む。
このようにして、CPU101は所定フレーム数以内の過去に遡ることによって、ジェスチャ動作の可能性がある動きベクトル変化履歴をメモリ103に保存する。
図9は本発明の第3の実施形態による制御装置100においてCPU101で行われるジェスチャ認識処理を説明するためのフローチャートである。
ジェスチャ認識処理を開始すると、CPU101は、メモリ103に保存された動きベクトル変化履歴から認識対象とする動きベクトル変化履歴を選択する(ステップS901)。続いて、CPU101は、選択した動きベクトル変化履歴について、後述の第1特徴動作まで動きベクトル変化履歴が類似するジェスチャ動作がジェスチャ認識用辞書データに存在するか否かを判定する(ステップS902)。
図10は、本発明の第3の実施形態による制御装置100で行われるジェスチャ認識を説明するための図である。そして、図10(a)はジェスチャ認識に用いられる連続画像を示す図であり、図10(b)は検出した動きベクトルを示す図である。また、図10(c)は図8で説明した変化解析処理後の動きベクトルを示す図であり、図10(d)は図1に示すHDD102記録されたジェスチャ認識用辞書に登録される動きベクトルを示す図である。また、図10(e)は特徴動作として登録される動きベクトルが検出されるジェスチャ動作の一例を示す図である。
図10(a)において、(1)の画像は時刻Tにおける画像を示し、(2)の画像は時刻TからX経過後の時刻T2に画像を示す。(3)の画像は時刻T2からX経過後の時刻T3における画像を示し、(4)の画像は時刻T3からX経過後の時刻T4における画像を示す。また、参照番号1001は撮像範囲を示し、画像には被写体1002および1003が存在する。
図10(b)において、(1)は時刻Tと時刻T2間の動きベクトル1004および1005を示し、(2)は時刻T2と時刻T3間の動きベクトル1006を示す。また、(3)は時刻T3と時刻T4間の動きベクトル1007および1008を示す。
図10(b)に示す動きベクトル1004〜1008について、図8で説明した変化解析処理を行うと、図10(c)に示すように、(1)において時刻T2までの動きベクトル1004および1005、(2)において時刻T3までの動きベクトル1006、そして、(3)において時刻T4までの動きベクトル1007が得られる。
つまり、図10(b)に示すような動きベクトルの変化があると、図10(c)の(1)では動きベクトル1004および1005が新規動作としてメモリ103に保存される。また、図10(c)の(1)では動きベクトル1004の継続動作として動きベクトル1006が追加でメモリ103に保存される。そして、図10(c)の(3)ででは動きベクトル1004の継続動作である動きベクトル1006の継続動作として動きベクトル1007が追加でメモリ103保存される。なお、図10(c)において、動きベクトル1004、1006、および1007は一連の動作として扱われる。
図10(d)に示すように、ハードディスク102記録されたジェスチャ認識辞書に動きベクトルが辞書データとして登録される。図10(d)の(1)に示す動きベクトル1009は図中上から下へ向かう動きベクトルであり、第1特徴動作とされる。図10(d)の(2)に示す動きベクトル1010は下から上に向かう動きベクトルで、で、第2特徴動作とされる。そして、図10(d)の(3)に示す動きベクトル1011は中心から周囲に向かう動きベクトルであり、第3特徴動作とされる。
図10(e)の(1)では、腕を上から下に下ろすジェスチャ動作が示され、図10(e)の(2)では腕を下から上に上げるジェスチャ動作が示されている。また、図10(e)の(3)では、手の平を広げるジェスチャ動作が示されている。
図10(a)の(1)から(2)においては、図10(e)の(1)に示すジェスチャ動作が含まれており、このジェスチャ動作は図10(d)の(1)に示す第1特徴動作と類似している。そこで、例えば、図10(c)の(1)に示す動きベクトル1004又は1005が存在すれば、類似するジェスチャ動作がジェスチャ認識用辞書にあると判定されることになる。
選択した動きベクトル変化履歴において、第1特徴動作まで類似するジェスチャ動作がジェスチャ認識用辞書データに存在すると(ステップS902において、YES)、CPU101は、選択した動きベクトル変化履歴について第2特徴動作まで類似するジェスチャ動作がジェスチャ認識用辞書に存在するか否かを判定する(ステップS903)。
図10(a)の(2)から(3)に示す例では、図10(e)の(2)に示すジェスチャ動作が含まれているので、図10(d)の(2)に示す第2特徴動作と類似している。そこで、図10(c)の(2)に示す動きベクトル1004に続く動きベクトル1006が存在すると、CPU101は類似するジェスチャ動作がジェスチャ認識用辞書にあると判定することになる。
一方、図10(c)の(2)で示すように、図10(c)の(1)に示す動きベクトル1005に続くジェスチャ動作が検出されないと、CPU101は動きベクトル1005に続く第2特徴動作が出現していないと判定する。
選択した動きベクトル変化履歴について第2特徴動作まで類似するジェスチャ動作がジェスチャ認識用辞書に存在すると(ステップS903において、YES)、CPU101は選択した動きベクトル変化履歴がジェスチャ認識用辞書の第2特徴動作まで類似し第3特徴動作まで類似する可能性があるとする。そして、CPU101はジェスチャ認識途中フラグをオンとする(ステップS904)。
続いて、CPU101は選択した動きベクトル変化履歴について第3特徴動作まで類似するジェスチャ動作がジェスチャ認識用辞書に存在するか否かを判定する(ステップS905)。選択した動きベクトル変化履歴について第3特徴動作まで類似するジェスチャ動作がジェスチャ認識用辞書に存在すると(ステップS905において、YES)、CPU101は選択した動きベクトル変化履歴についてジェスチャ認識に成功とする。そして、CPU101はジェスチャ認識途中フラグをオフにする(ステップS906)。
次に、CPU101はジェスチャ動作の認識に成功したとし、現在保存中の他の動きベクトル変化履歴を全て削除する(ステップS907)。そして、CPU101はジェスチャ認識処理を終了する。
選択した動きベクトル変化履歴について第3特徴動作まで類似するジェスチャ動作がジェスチャ認識用辞書に存在しないと(ステップS905において、NO)、CPU101は選択した動きベクトル変化履歴に未だ第3特徴動作が出現していないか否かを判定する(ステップS908)。選択した動きベクトル変化履歴に未だ第3特徴動作が出現していないと(ステップS908において、YES)、CPU101は第1特徴動作を継続中か又は第2特徴動作に移る前の一時停止中である可能性があるする。そして、CPU101は次回に再判定を行うため、選択した動きベクトル変化履歴を再保存する(ステップS909)。
続いて、CPU101は保存中の動きベクトル変化履歴の全てについてジェスチャ認識が終了したか否かを判定する(ステップS910)。保存中の動きベクトル変化履歴の全てについてジェスチャ認識が終了すると(ステップS910において、YES)、CPU101はジェスチャ認識処理を終了する。
一方、保存中の動きベクトル変化履歴の全てについてジェスチャ認識が終了していないと(ステップS910において、NO)、CPU101は保存された動きベクトル変化履歴から認識対象とする次の動きベクトルを選択して(ステップS911)、ステップS902の処理に戻る。
選択した動きベクトル変化履歴に第3特徴動作が出現していると(ステップS908において、NO)、CPU101は選択した動きベクトル変化履歴に類似するジェスチャ動作がジェスチャ認識用辞書に登録されていないとする。そして、CPU101は選択した動きベクトル変化履歴を削除して(ステップS912)、ステップS910の処理に進む。
選択した動きベクトル変化履歴について第2特徴動作まで類似するジェスチャ動作がジェスチャ認識用辞書に存在しないと(ステップS903において、NO)、CPU101は選択した動きベクトル変化履歴に未だ第2特徴動作が出現していないか否かを判定する(ステップS913)。選択した動きベクトル変化履歴に未だ第2特徴動作が出現していないと(ステップS913において、YES)、CPU101は次回に再判定を行うため、選択した動きベクトル変化履歴を再保存する(ステップS914)。そして、CPU101はステップS910の処理に進む。
一方、選択した動きベクトル変化履歴に第2特徴動作が出現していると(ステップS913において、NO)、CPU101は選択した動きベクトル変化履歴に類似するジェスチャ動作がジェスチャ認識用辞書に登録されていないとする。そして、CPU101は選択した動きベクトル変化履歴を削除して(ステップS915)、ステップS910の処理に進む。
上述のように、制御装置100はジェスチャ認識用辞書に記録されたジェスチャ動作と最後まで類似するジェスチャ動作を認識するジェスチャ認識成功を判定する。さらに、制御装置100は途中までのジェスチャ動作の類似を認識するジェスチャ認識途中状態を判定する。
続いて、上述した制御装置100が搭載されたビデオカメラを例に挙げて説明する。そして、ここでは、ジェスチャ認識途中に赤外線リモートコントローラ(図示せず)から操作信号を受信した際に当該操作信号によるビデオカメラの制御を制限する例について説明する。
図1に示す制御装置100において、操作部105を操作してユーザが電源を入れると、電源部(図示せず)から制御装置100に電源が供給される。電源が投入された後、ビデオカメラによって撮影を開始する前に、ジェスチャ認識途中で操作部105又は通信部107から操作信号がCPU101に送られたとする。なお、制御装置100には予め制御制限レベルが選択設定される。
図11は本発明の第3の実施形態による制御装置100においてCPU101の制御制限レベル選択を説明するためのフローチャートである。
ユーザが、例えば、操作部105を用いて制御制限レベル選択指示を入力すると、CPU101は制御制限レベル選択処理を開始する。
まず、CPU101はジェスチャ認識途中において制御制限レベル選択操作を促す画面を、表示制御部104を介してディスプレイ108に表示する(ステップS1101)。続いて、CPU101は操作部105において制御制限レベルを確定する操作が行われたか否かを判定する(ステップS1102)。制御制限レベルを確定する操作が行われないと(ステップS1102において、NO)、CPU101は待機する。
一方、制御制限レベルを確定する操作が行われると(ステップS1102において、YES)、CPU101はユーザが選択した制御制限レベルをHDD102に保存して(ステップS1103)、制御制限レベル選択処理を終了する。
図12は、図11で説明した制御制限レベルで設定される制御制限内容を規定する制御制限テーブルの一例を示す図である。なお、この制御制限テーブルは、例えば、HDD102に格納されている。
図12において、制御制限レベルとして、「無制限」、「推奨制限」、および「全制限」がある。「無制限」の場合には、CPU101は操作部105又は通信部107から送られる操作信号に応じた制御を制限しない。「推奨制限」の場合には、CPU101は操作部105又は通信部107から送られた操作信号に応じた制御のうち所定の制御のみ制限する。
ここで、所定の制御は後述するように予め指定されており、例えば、撮影画質変化によって撮影画像が時系列情報として使用できなくなるような変化を惹起する制御をいう。
「全制限」の場合には、CPU101は操作部105又は通信部107から送られた操作信号に応じた制御を全て制限する。この場合には、ジェスチャ認識による操作以外は全て制限されることになる。
図13は、図12で説明した所定の制御に該当する制御および該当しない制御の一覧である特定制御テーブルの一例を示す図である。なお、この特定制御テーブルは、例えば、HDD102に格納されている。
図13において、所定の制御に該当する制御には、ズーム操作、ホワイトバランス(つまり、色相)変更、スローシャッター(つまり、フレームレートの変更)、絞り手動変更、およびフォーカス手動変更がある。手動ズーム操作においては画角の変化が生じ、ジェスチャを行っている被写体においてその手および指が画角外に外れる恐れがある。このため、ズーム操作は所定の制御に該当するとされる。
手動操作によるホワイトバランス変更においては、ジェスチャ認識に用いる色情報における時系列方向の連続性が断ち切られる恐れがある。このため、ホワイトバランス変更は所定の制御に該当するとされる。動画撮影中におけるスローシャッターへの変更では、撮像素子における蓄積時間が変わるので、ジェスチャ認識に用いる画像情報において時系列方向の連続性が断ち切られる恐れがある。このため、スローシャッターは所定の制御に該当するとされる。
手動操作による絞り変更においては、ジェスチャ認識に用いる輝度情報においてその時系列方向の連続性が断ち切られる恐れがある。このため、絞り手動変更は所定の制御に該当するとされる。手動操作によるフォーカス変更においては、焦点位置が変わるのでジェスチャ認識に用いる画像情報においてその時系列方向の連続性が断ち切られる恐れがある。このため、フォーカス手動変更は所定の制御に該当するとされる。
一方、所定の制御に該当しない制御には、動画撮影中の静止画記録、動画撮影開始トリガ、および動画撮影終了トリガがある。動画撮影中の静止画記録とは、撮影中の動画の1フレームを静止画ファイルとして動画ファイルとは別にドライブ装置106に記録することをいう。静止画記録はジェスチャ認識に用いる画像に影響を与えないので、所定の制御に該当しない。
動画撮影開始トリガは、動画を動画ファイルとしてドライブ装置106に記録することを開始するものであり、ジェスチャ認識に用いる画像に影響を与えないので、特定制御に該当しない。動画撮影終了トリガは、動画ファイルのドライブ装置106への記録を終了するものであり、ジェスチャ認識に用いる画像に影響を与えないので、特定制御に該当しない。
図14は、本発明の第3の実施形態による制御装置100においてCPU101で行われる主制御処理を説明するためのフローチャートである。
主制御処理を開始すると、CPU101は、通信部107から操作信号(つまり、操作入力)が送られてきたか否かを判定する(ステップS1401)。通信部107から操作信号が送られてくると(ステップS1401において、YES)、CPU101は前述のジェスチャ認識途中フラグがオンであるか否かを判定する(ステップS1402)。
ジェスチャ認識途中フラグがオンであると(ステップS1402において、YES)、CPU101は操作信号に関して後述の制限処理を行う(ステップS1403)。そして、CPU101は主制御処理を終了する。
図15は、図14に示すステップS1403の制限処理を説明するためのフローチャートである。
制限処理を開始すると、CPU101は、図11で説明した制御制限レベル選択で選択された制御制限レベルが無制限であるか否かを判定する(ステップS1501)。制御制限レベルが無制限であると(ステップS1501において、YES)、CPU101は操作信号に応じた制御を実行して(ステップS1502)、制限処理を終了する。
一方、制御制限レベルが無制限でないと(ステップS1501において、NO)、CPU101は制御制限レベル選択で選択された制御制限レベルが推奨制限であるか否かを判定する(ステップS1503)。制御制限レベルが推奨制限でないと(ステップS1503において、NO)、CPU101は当該操作信号に係る制御が全制限されているとして、この制御信号を削除する(ステップS1504)。そして、CPU101は、表示制御部104を介して、受信した操作信号に係る操作(つまり、制御)が制限中の操作であることをディスプレイ108に表示して(ステップS1505)、主制御処理を終了する。
制御制限レベルが推奨制限であると(ステップS1503において、YES)、CPU101は、図13に示す特定制御テーブルを参照して、操作信号に応じて行われる制御が所定の制御に該当するか否かを判定する(ステップS1506)。操作信号に応じて行われる制御が所定の制御に該当しないと(ステップS1506において、NO)、CPU101は当該操作信号に応じた制御を実行する(ステップS1507)。そして、CPU101は主制御処理を終了する。
操作信号に応じて行われる制御が所定の制御に該当すると(ステップS1506において、YES)、CPU101は操作信号に係る制御がホワイトバランス変更であるか否かを判定する(ステップS1508)。操作信号に係る制御がホワイトバランス変更でないと(ステップS1508において、NO)、CPU101は操作信号に係る制御がスローシャッター変更であるか否かを判定する(ステップS1509)。
操作信号に係る制御がスローシャッター変更でないと(ステップS1509において、NO)、CPU101は操作信号に係る制御が絞り変更であるか否かを判定する(ステップS1510)。操作信号に係る制御が絞り変更でないと(ステップS1510において、NO)、CPU101は操作信号に係る制御がフォーカス変更であるとして、当該操作信号を削除する(ステップS1511)。そして、CPU101は、表示制御部104を介して、受信した操作信号に係る操作が制限中の操作であることをディスプレイ108に表示して(ステップS1512)、主制御処理を終了する。
操作信号に係る制御が絞り変更であると(ステップS1510において、YES)、CPU101は当該操作信号に係る制御についてその制御量を所定の制御量に制限して実行する(ステップS1513)。そして、CPU101はステップS1512の処理に移行する。
操作信号に係る制御がスローシャッター変更であると(ステップS1509において、YES)、CPU101は当該操作信号をジェスチャ認識の完了まで待機させる操作信号であるとして、この操作信号を一旦メモリ104に保存する(ステップS1514)。そして、CPU101は表示制御部104を介して、受信した操作信号に係る操作が制限中の操作であることをディスプレイ108に表示して(ステップS1515)、主制御処理を終了する。
操作信号に係る制御がホワイトバランス変更であると(ステップS1508において、YES)、CPU101はステップS1514の処理に進む。
このように制御制限レベルが推奨制限であると、CPU101は操作信号に係る制御が所定の制御であると、当該所定の制御の一部についてはジェスチャ認識の完了まで待機させるか又は時系列的な映像変化を所定の制御量によって制限することになる。
再び、図14を参照して、ジェスチャ認識途中フラグがオフであると(ステップS1402において、NO)、CPU101はジェスチャ認識完了まで待機中の操作信号があるか否かを判定する(ステップS1404)。ジェスチャ認識完了まで待機中の操作信号があると(ステップS1404において、YES)、CPU101は待機中の操作信号に係る処理を実行して(ステップS1405)、主制御処理を終了する。
一方、ジェスチャ認識完了まで待機中の操作信号がないと(ステップS1404において、NO)、CPU101は通信部107又は操作部105から入力される操作信号を優先して、当該操作信号に応じた制御を実行する(ステップS1406)。そして、CPU101は主制御処理を終了する。
通信部107から操作信号が送られてこないと(ステップS1401において、NO)、CPU101は操作部105から操作信号があるか否かを判定する(ステップS1407)。操作部105から操作信号があると(ステップS1407において、YES)、CPU101はステップS1402の処理に進む。
一方、操作部105から操作信号がないと(ステップS1407において、NO)、CPU101はジェスチャ認識途中フラグがオンであるか否かを判定する(ステップS1408)。ジェスチャ認識途中フラグがオンであると(ステップS1408において、YES)、CPU101は主制御処理を終了する。
ジェスチャ認識途中フラグがオフであると(ステップS1408において、NO)、CPU101はジェスチャ認識完了まで待機中の操作信号があるか否かを判定する(ステップS1409)。ジェスチャ認識完了まで待機中の操作信号があると(ステップS1409において、YES)、CPU101は待機中の操作信号に係る処理を実行して(ステップS1410)、主制御処理を終了する。
ジェスチャ認識完了まで待機中の操作信号がないと(ステップS1409において、NO)、CPU101は主制御処理を終了する。
上記のように、本発明の第3の実施形態では、被写体のジェスチャ動作開始から予め設定された段階まで被写体のジェスチャ動作が登録ジェスチャと一致すると、通信部107又は操作部105から操作信号を受けたとしても当該操作信号に応じた制御命令の実行を制限することになる。例えば、CPU101は通信部107又は操作部105から操作信号に応じた制御命令の実行を制限する際、当該制御命令を実行するタイミングを所定のタイミングだけ遅延させる。
このように、本発明の第3の実施形態では、制御装置100がジェスチャ認識途中であると、通信部107又は操作部105から入力される操作信号に係る制御命令において時系列情報として用いることができなくなる撮影画質変化を生じる制御を制限する。従って、制御装置100におけるジェスチャ認識の失敗を低減することができる。その結果、ユーザはジェスチャ動作による制御が行い易くなる。
[第4の実施形態]
次に、本発明の第4の実施形態による制御装置の一例について説明する。なお、第4の実施形態における制御装置100の構成は図1に示す制御装置の構成と同様である。また、ここでは、制御装置100は撮像装置に搭載されているものとして説明する。
第4の実施形態による制御装置100では、CPU101は撮像部110による撮影の結果得られた画像データに応じて、被写体検出処理を行うが、ここでは、例えば、被写体検出処理として画像データが示す画像における人物顔検出、人物顔の位置、その大きさ、性別、年齢、および顔特徴などの算出が行われる。なお、図示はしないが、制御装置100にはマイクなどの音声検出部が備えられており、マイクから入力された音声は、CPU101で処理されて画像データに対応付けてHDD102に音声情報として記録される。
CPU101は後述するようにして、画像データに応じて被写体によるジェスチャ動作の検出を行うが、CPU101が検出すべきジェスチャ動作は、予めメモリ103に格納され、これらジェスチャ動作に対してCPU101が行うべき制御が割り当てられている。
図16は、本発明の第4の実施形態による制御装置100の制御動作を説明するためフローチャートである。
制御装置100の電源が投入されると、CPU101はまず制御装置100の初期化処理を行って、撮影動作を行う。この際、メモリ103のROMに格納されたプログラムがメモリ103のRAMに展開されて、CPU101は当該プログラムを実行する。そして、撮像部110はCPU101の制御下で撮影動作を開始する。
撮像部110による撮影の結果得られた画像データが示す画像において、CPU101は被写体(人物)の検出を行う。被写体が検出されると、CPU101は当該被写体がメモリ102のROMに予め格納されたジェスチャ動作に対応するジェスチャ動作を行っているか否かを検出する検出処理を行う(ステップS1601)。なお、当該検出処理の際には、例えば、被写体の手が特定の状態で静止していることを検出するようにしてもよく、又は被写体が所定の動作を行うことによって完結するジェスチャを検出するようにしてもよい。
図17は、本発明の第4の実施形態による制御装置100によるジェスチャ検出および制御命令の第1の例を説明するための図である。そして、図17(a)はディスプレイ108に表示されたジェスチャ動作を示す図であり、図17(b)はジェスチャ動作に対応する制御命令が規定された制御命令テーブルの一例を示す図である。なお、図17(b)に示す制御テーブルは、例えば、メモリ102のROMに格納されている。
ここでは、CPU101は表示制御部104を介してディスプレイ108に画像データに応じた画像を表示する。図示の例では、被写体1701はジェスチャ動作として「左手振り」を行っており、被写体1702はジェスチャ動作として「右手振り」を行っている。ジェスチャ動作が「右手振り」であると、CPU101は制御命令が「ズームイン(Zoom IN)」1704であるとする。また、ジェスチャ動作が「左手振り」であると、CPU101は制御命令が「ズームアウト(Zoom OUT)」1703であるとする。
なお、ステップS1601の処理では、CPU101は画像において被写体1701および1702を検出して、それぞれ左手振りおよび右手振りのジェスチャ動作を検出したものとする。
続いて、CPU101はジェスチャ動作が検出されたか否かを判定する(ステップS1602)。ジェスチャ動作が検出されないと判定すると(ステップS1602において、NO)、CPU101はステップS1601の処理に戻って、続く画像においてジェスチャ動作の検出を行う。
ジェスチャ動作が検出されたと判定すると(ステップS1602において、YES)、CPU101は検出した制御命令テーブルを参照してジェスチャ動作に対応する制御命令を特定する。そして、複数のジェスチャ動作が検出されている場合には、CPU101はこれらジェスチャ動作に対応する制御命令相互の優先度判定処理を行うとともに、制御命令が重複しているかを判定する重複判定処理を行う(ステップS1603:優先度・重複判定処理)。次に、CPU101は優先度・重複判定処理の結果に応じてディスプレイ108の表示を切り替えるリフレッシュ処理を行う(ステップS1604)。
図17に示す例では、被写体1701および被写体1702は互いに異なるジェスチャ動作を行っており、これらジェスチャ動作に対応する制御命令に優先度(優先順位ともいう)の相違がない。ここでは、CPU101は表示制御部104を制御して被写体1701に関連付けてズームアウト1703の要求を示す要求命令表示をディスプレイ108に表示する。また、CPU101は表示制御部104を制御して被写体1702に関連付けてズームイン1704の要求を示す要求命令表示をディスプレイ108に表示する。
ここで、図16に示すステップS1603において複数のジェスチャ動作に対応する制御命令で優先度の相違又は制御命令の重複があった場合の処理について説明する。
図18は、本発明の第4の実施形態による制御装置100によるジェスチャ検出および制御命令の第2の例を説明するための図である。そして、図18(a)はディスプレイに表示されたジェスチャ動作を示す図であり、図18(b)はジェスチャ動作に対応する制御命令が規定された制御命令テーブルの一例を示す図である。
ここでは、図18(a)に示すように、被写体1801および1802は双方ともに「右手振り」のジェスチャ動作を行っている。そして、図18(b)に示すように、ジェスチャ動作が「右手振り」であると、制御命令は「録画開始」となる。なお、図18(a)に示す例では、被写体1802の方が被写体1801よりも早くジェスチャ動作を開始したものとする。
ここでは、被写体1801および1802ともにジェスチャ動作によって録画開始要求を行っていることになるが、この要求は互いに重複する要求であって、2回連続して実行する必要のない要求である。このため、CPU101は画面を見易くするため、優先度・重複判定処理において被写体1802が優先するとして、被写体1801に関連付けた要求命令表示を行わずに、被写体人物1802に関連付けて「録画(REC)」1803を要求命令表示として、表示制御部104を介してディスプレイ108に表示する。
図19は本発明の第4の実施形態による制御装置100によるジェスチャ検出および制御命令の第3の例を説明するための図である。そして、図19(a)はディスプレイに表示されたジェスチャ動作を示す図であり、図19(b)はジェスチャ動作に対応する制御命令が規定された制御命令テーブルの一例を示す図である。
ここでは、図19(a)に示すように、被写体1901および1902はそれぞれ「左手振り」および「右手振り」のジェスチャ動作を行っている。そして、図19(b)に示すように、ジェスチャ動作が「右手振り」であると、制御命令は「ズームイン」となり、ジェスチャ動作が「左手振り」であると、制御命令は「ズームアウト」となる。なお、ここでは、ステップS1603の優先度・重複判定処理において、CPU101は被写体1902のジェスチャ動作の方が被写体1901のジェスチャ動作よりも優先度が高いと判定したものとする。
この場合には、CPU101は表示制御部104を制御して被写体1901に関連付けてズームアウト1903の要求を示す要求命令表示をディスプレイ108に表示する。また、CPU101は表示制御部104を制御して被写体1902に関連付けてズームイン1904の要求を示す要求命令表示をディスプレイ108に表示する。この際、CPU101は優先度の高いズームイン1904の要求を示す要求命令表示を点滅させて強調表示する(つまり、表示形態を変更することになる)。
続いて、図16に示すステップS1603で行われる優先度判定について説明する。
CPU101は被写体1901および1902について個人認証を行っており、被写体1901および1902が今までに行ったジェスチャ動作に要求の回数をカウントする。そして、CPU101はカウントされたジェスチャ動作による要求の回数が多い被写体についてその要求の優先度を高く設定する。
図19に示す例では、被写体1902の方が被写体1901よりもジェスチャ動作による要求を多く行っていることになる。このようにして優先度を設定すると、偶然撮像部110の画角(つまり、撮影範囲)に入ってきた被写体の偶発的なジェスチャ動作による要求を実行することを防止することができる。
前述のように、ステップS1604において、CPU101は表示のリフレッシュ処理を行った後、要求命令表示に対応する制御命令が選択されたか否かを判定する(ステップS1605)。ここでは、例えば、図17(a)に示すように、ユーザは指1705によってディスプレイ108に表示されているズームアウト1703又はズームイン1704をタッチ操作することによって要求命令表示に対応する制御命令を選択する。
要求命令表示に対応する制御命令が選択されないと、つまり、タッチ操作がないと(ステップS1605において、NO)、CPU101はステップS1601の処理に戻ってジェスチャ動作の検出処理を行う。
要求命令表示に対応する制御命令が選択されると、つまり、タッチ操作があると(ステップS1605において、YES)、当該タッチ操作によって、CPU101はそのタッチ位置を検出して、タッチ位置、つまり、要求命令表示に対応する制御命令を実行する(ステップS1606)。
この際、制御命令が、例えば、ズームイン、ズームアウト、又は露出変更要求などの撮影の結果得られる動画像に影響を与える命令である場合には、これらの制御命令を実行すると、動画像に係る画角又は露出が頻繁に変更されて鑑賞性の悪いものになることがある。このような不都合を防止するため、CPU101は次のようにして制御命令の実行タイミング変更処理を行う。
図20は、本発明の第4の実施形態による制御装置100で行われる制御命令の実行タイミング変更処理の一例を説明するための図である。
CPU101は前回のジェスチャ動作に対応する制御命令の実行が終了した終了時刻をメモリ103に保持する。そして、次にジェスチャ動作に対応する制御命令を実行する際、上記の終了時刻から予め設定された所定の時間が経過していないと、CPU101は次の制御命令を実行しない。
図20に示す例では、前回の実行命令が終了してから所定の時間Tが経過する前に、ユーザが図17(a)に示すズームイン1704を示す命令要求表示をタッチ操作したものとする。この場合、前回の制御命令の実行期間が終了してから所定の時間Tが経過した後、CPU101はタッチ操作されたズームイン1704に対応する制御命令(つまり、ズームイン命令)を実行する。図示の例においては、ズームインは所謂電子ズームによって行われる。
図21は、図17に示す状態においてズームインがタッチ操作された際にディスプレイに表示される画像を説明するための図である。そして、図21(a)はズームイン前の画像を示す図であり、図21(b)はズームイン後の画像を示す図である。
図21(a)に示すズームイン1704がタッチ操作されると、CPU101は当該タッチ操作に応じた制御命令であるズームイン命令を実行する。これによって、ディスプレイ108には被写体1701が電子ズームでズームインされた画角で表示される。
図16を参照して、続いて、CPU101はジェスチャ動作に対応する制御命令の実行によって要求命令表示のリフレッシュ処理を行う(ステップS1607)。ここでは、ズームイン1704に対応する制御命令が実行されたので、CPU101は表示制御部104を制御してズームイン1704を示す要求命令表示をディスプレイ108の画面から消去する。この後、CPU101はステップS1601の処理に戻ってジェスチャ検出処理を行う。
このように、本発明の第4の実施形態では、図16で説明した処理を行うので、ジェスチャ動作によって撮影操作などを行う意図のない被写体の動きをジェスチャ動作として誤認識してしまう可能性を低減することができる。そして、複数の被写体が頻繁にジェスチャ動作を行った場合でも、動画像の画角が頻繁に変化して鑑賞に堪えない動画像となる可能性を低減することができる。
なお、第4の実施形態では、優先度の高いジェスチャ動作について、図19(a)に示すように要求命令表示を点滅させるようにしたが、別の形態で要求命令表示を表示するようにしてもよい。
図22は、本発明の第4の実施形態による制御装置100によるジェスチャ検出および制御命令の第4の例を説明するための図である。そして、図22(a)はディスプレイに表示されたジェスチャ動作を示す図であり、図22(b)はジェスチャ動作に対応する制御命令が規定された制御命令テーブルの一例を示す図である。
ここでは、図22(a)に示すように、被写体2201および2202はそれぞれ「左手振り」および「右手振り」のジェスチャ動作を行っている。そして、図22(b)に示すように、ジェスチャ動作が「右手振り」であると、制御命令は「ズームイン」となり、ジェスチャ動作が「左手振り」であると、制御命令は「ズームアウト」となる。そして、ステップS1603の優先度・重複判定処理において、CPU101は被写体2202のジェスチャ動作の方が被写体2201のジェスチャ動作よりも優先度が高いと判定したものとする。
この場合には、CPU101は表示制御部104を制御して被写体2201に関連付けて(破線矢印で示すように)ズームアウト2203の要求を示す要求命令表示をディスプレイ108に表示する。また、CPU101は表示制御部104を制御して被写体2202に関連付けてズームイン2204の要求を示す要求命令表示をディスプレイ108に表示する。この際、CPU101はズームアウト2203およびズームイン2204を画面の左上隅に纏めて表示し、優先度の高いズームイン2204を示す要求命令表示を、ズームアウト2203を示す要求命令表示の上側に表示する。
さらに、多数の被写体を撮影するシチュエーションにおいては、多数の被写体の要求に応じた方がよいこともある。この場合には、過去にジェスチャ動作による命令要求を行った頻度の少ない被写体の要求命令についてその優先度を高く設定するように制御装置100を設定変更することができるようにしてもよい。
また、過去に命令要求を行った頻度ではなく、過去に被写体検出された頻度の少ない被写体の要求命令について優先度を高く設定するようにしてもよい。
加えて、CPU101は検出したジェスチャ動作の検出信頼度(つまり、認識精度)を算出して、検出信頼度の高いジェスチャ動作に係る要求命令の優先度を高くしてディスプレイ108に表示するようにしてもよい。このようにすれば、被写体が意図しない要求命令に対してCPU101が制御命令を実行する可能性を低減することができる。
本発明の第4の実施形態では、上述のように、ユーザ(例えば、撮影者)がタッチ操作などの選択操作をすると、CPU101は当該選択操作に対応する制御命令を実行する。一方、同時刻に予め設定された人数以上(閾値数以上)の被写体が同一のジェスチャ動作を行った際に、CPU101は当該ジェスチャ動作に対応する制御命令を実行するようにしてもよい。
図23は、本発明の第4の実施形態による制御装置によるジェスチャ検出および制御命令の第5の例を説明するための図である。そして、図23(a)はディスプレイに表示されたジェスチャ動作を示す図であり、図23(b)はジェスチャ動作に対応する制御命令が規定された制御命令テーブルの一例を示す図である。
ここでは、図23(a)に示すように、被写体2301〜2304はともに「右手振り」のジェスチャ動作を行っている。そして、図23(b)に示すように、ジェスチャ動作が「右手振り」であると、制御命令は「録画開始」となる。なお、図23(a)に示す例では、被写体2301〜2304は同時刻にジェスチャ動作を開始したものとする。
いま、閾値数(人数閾値)が”3”であるとすると、図23(a)に示す例では、被写体2301〜2304の4人が同一のジェスチャ動作を行っているので、CPU101はユーザの選択操作を待つことなく、当該ジェスチャに対応する制御命令である録画開始を実行する。この際には、CPU101は表示制御部104を制御して、ディスプレイ108の画面上に録画開始を示す「REC開始」を点滅表示する。
上述のように、ユーザによって要求命令が選択操作された回数の多い被写体によるジェスチャ動作についてその優先度を高くしている。一方、選択操作された回数(選択回数)ではなく、被写体の検出頻度による検出時間が多い被写体が行うジェスチャ動作についてその優先度を高くするようにしてもよい。なお、優先度(優先順位)の設定を行う際には、選択操作された回数(選択回数)の少ない被写体について優先度を高くするようにしてもよく、被写体の検出頻度による検出時間が少ない被写体について優先度を高くするようにしてもよい。
[第5の実施形態]
続いて、本発明の第5の実施形態による制御装置100の一例について説明する。なお、第5の実施形態による制御装置100の構成は図1に示す制御装置と同様である。また、ここでは、制御装置100は撮像装置に搭載されているものとして説明する。
図24は、本発明の第5の実施形態による制御装置の制御動作を説明するためのフローチャートである。なお、図24に示すフローチャートにおいて、図16と同一のステップについては同一の参照符号を付して説明を省略する。
ステップS1605において、要求命令表示に対応する制御命令が選択されると、つまり、タッチ操作があると、CPU101は当該制御命令による制御が撮像部110による撮影の際に光軸方向の変化を必要とするか否かを判定する(ステップS2401)。
図25は、本発明の第5の実施形態による制御装置100によるジェスチャ検出および制御命令の一例を説明するための図である。そして、図25(a)はズームイン前のディスプレイに表示されたジェスチャ動作を示す図であり、図25(b)はズームイン後の画面を示す図である。また、図25(c)はジェスチャ動作に対応する制御命令が規定された制御命令テーブルの一例を示す図である。
図25(a)では、被写体2501はジェスチャ動作として「左手振り」を行っており、被写体2502はジェスチャ動作として「右手振り」を行っている。ジェスチャ動作が「右手振り」であると、CPU101は制御命令が「ズームイン」2504であるとする。また、ジェスチャ動作が「左手振り」であると、CPU101は制御命令が「ズームアウト」2503であるとする(図25(c)参照)。
なお、ここでは、ユーザ(撮影者)が被写体2502に対応するズームイン2504を示す要求命令表示を選択操作したとする。この場合、CPU101は制御命令に応じて撮像部110を制御してズームイン動作を行い、被写体2502を中心として、図25(b)に示す画角で撮影する。この際、電子ズームを用いないと、つまり、光学ズームを用いると、制御装置100自体を動かしてレンズの光軸方向を変更する必要がある。
制御命令による制御が光軸方向の変化を必要とすると(ステップS2401において、YES)、CPU101は、表示制御部104を制御して、制御装置100を動かすこと、つまり、光軸方向を変化させることをユーザに促すUI(ユーザインタフェース)表示をディスプレイ108の画面上に表示する。図25(a)に示す例では、CPU101は矢印2505で示すUI表示をディスプレイ108に表示して、光軸方向を変化させる方向を報知する。
ユーザは矢印2505を目視して矢印2505で示す方向に制御装置100、つまり、撮像部110をパン動作させて、被写体2502が画角の中央に位置するようにする。そして、CPU101は光軸が所定の方向となった否かを判定する(ステップ2403)。光軸が所定の方向とならないと(ステップS2403において、NO)、CPU101はステップS2402の処理に戻って、再度UI表示を行う。図25(a)および(b)に示す例では、CPU101は被写体2502が画角の中央に位置するか否かを判定して、光軸が所定の方向となったか否かを判定することになる。
一方、光軸が所定の方向となると(ステップS2403において、YES)、CPU101は、ステップS1606の処理に移行して制御命令に応じてズームイン動作を行う。
このように、本発明の第5の実施形態では、撮影の際にレンズの光軸方向の変化を伴う制御命令を実行する際、ユーザに光軸方向の変更を促すようにする。これによって、例えば、複数の被写体のジェスチャ動作によってズーム要求などの光軸の変化を伴う要求を受けた際においても、ユーザは光軸方向を適切に変更することができ、かつに光学ズームによってズームを行うことができる。
以上、本発明について実施の形態に基づいて説明したが、本発明は、これらの実施の形態に限定されるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。
例えば、上記の実施の形態の機能を制御方法として、この制御方法を制御装置に実行させるようにすればよい。また、上述の実施の形態の機能を有するプログラムを制御プログラムとして、当該制御プログラムを制御装置が備えるコンピュータに実行させるようにしてもよい。なお、制御プログラムは、例えば、コンピュータに読み取り可能な記録媒体に記録される。
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記録媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。