(57)【要約】【課題】手の領域に含まれる認識対象部位の検出精度の低下を抑制できる検出装置および検出方法を提供する。【解決手段】特定部４０は、撮影される画像から手の領域を特定する。決定部４１は、特定された領域の移動量に基づいて、移動量が小さい第１の領域と当該第１の領域よりも移動量が大きい第２の領域とを決定する。導出部４３は、決定された第１の領域と第２の領域が結合して撮影された場合、撮影画像から第１の領域を除いた領域を導出する。検出部４４は、導出された領域の画像に対して検出処理を行う。【選択図】図１
2015170206.tif 000002
【特許請求の範囲】
【請求項１】
撮影される画像から手の領域を特定する特定部と、
前記特定部により特定された領域の移動量に基づいて、移動量が小さい第１の領域と当該第１の領域よりも移動量が大きい第２の領域とを決定する決定部と、
前記決定部により決定された第１の領域と第２の領域が結合して撮影された場合、撮影画像から第１の領域を除いた領域を導出する導出部と、
前記導出部により導出された領域の画像に対して検出処理を行う検出部と、
を有することを特徴とする検出装置。
【請求項２】
前記決定部により第１の領域と決定された範囲を記憶する記憶部をさらに有し、
前記導出部は、前記記憶部に記憶された第１の領域の範囲をマスクして、撮影画像から第１の領域を除いた領域を導出する
ことを特徴とする請求項１に記載の検出装置。
【請求項３】
前記決定部は、周期的に撮影される画像毎に画像内の所定の一辺から近い順に、特定された手の領域に対して識別番号を順に付与し、各画像間で同じ識別番号が付与された手の領域の移動量を求める
ことを特徴とする請求項１または２に記載の検出装置。
【請求項４】
コンピュータが、
撮影される画像から手の領域を特定し、
特定された領域の移動量に基づいて、移動量が小さい第１の領域と当該第１の領域よりも移動量が大きい第２の領域とを決定し、
決定された第１の領域と第２の領域が結合して撮影された場合、撮影画像から第１の領域を除いた領域を導出し、
導出された領域の画像に対して検出を行う
処理を実行することを特徴とする検出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検出装置および検出方法に関する。
【背景技術】
【０００２】
従来から、カメラにより撮影された画像からユーザの指し示した位置を検出して情報の入力を行う技術がある。例えば、ユーザの指し示した位置として、ユーザの手の指などの認識対象部位を検出する。このような場合、例えば、カメラにより撮影された画像から肌色領域を特定し、肌色領域に対してテンプレートマッチングを行って手の領域を認識して、手の領域に含まれる認識対象部位を検出する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００４−３４８３０３号公報
【特許文献２】国際公開第２０１１／１４２３１３号
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の技術では、手の領域に含まれる認識対象部位の検出精度が低下する場合がある。例えば、カメラにより撮影された画像に左右の手など２つの手が写っており、手の領域に重なりがある場合、手の領域の形状の変化によりテンプレートマッチングを行っても認識対象部位を検出できない場合がある。
【０００５】
一側面では、検出精度の低下を抑制できる検出装置および検出方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
本発明の一側面によれば、検出装置は、特定部と、決定部と、導出部と、検出部とを有する。特定部は、撮影される画像から手の領域を特定する。決定部は、前記特定部により特定された領域の移動量に基づいて、移動量が小さい第１の領域と当該第１の領域よりも移動量が大きい第２の領域とを決定する。導出部は、前記決定部により決定された第１の領域と第２の領域が結合して撮影された場合、撮影画像から第１の領域を除いた領域を導出する。検出部は、前記導出部により導出された領域の画像に対して検出処理を行う。
【発明の効果】
【０００７】
本発明の一側面によれば、検出精度の低下を抑制できる。
【図面の簡単な説明】
【０００８】
【図１】図１は、検出装置の機能的な構成の一例を示す図である。
【図２】図２は、検出装置の利用形態の一例を示す図である。
【図３】図３は、検出装置の利用形態の他の例を示す図である。
【図４】図４は、操作を検出する際の動作の流れの一例を模式的に示した図である。
【図５】図５は、２つの手領域に重なりがある場合の領域の形状の変化の一例を示す図である。
【図６】図６は、検出処理の手順の一例を示すフローチャートである。
【図７】図７は、対象部位検出処理の手順の一例を示すフローチャートである。
【図８】図８は、抽出された輪郭の一例を示す図である。
【図９】図９は、検出プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【０００９】
以下に、本発明に係る検出装置および検出方法の実施例を図面に基づいて詳細に説明する。なお、この実施例によりこの発明が限定されるものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例１】
【００１０】
［検出装置の構成］
実施例１に係る検出装置１０について説明する。図１は、検出装置の機能的な構成の一例を示す図である。検出装置１０は、ユーザの指し示した位置を検出して操作入力が可能な装置である。検出装置１０は、例えば、デスクトップ型ＰＣ（Personal  Computer）、ノート型ＰＣなどの情報処理装置であってもよい。また、検出装置１０は、例えば、タブレット端末、スマートフォン、ＰＤＡ（Personal  Digital  Assistant）などの携帯端末装置であってもよい。図１に示すように、検出装置１０は、カメラ２０と、表示部２１と、記憶部２２と、制御部２３とを有する。
【００１１】
カメラ２０は、カラー画像を撮影する撮影デバイスである。カメラ２０は、所定のフレームレートで周期的に画像を撮影し、撮影した画像の画像情報を生成する。このフレームレートは、ユーザが操作指示のために複数の地点に手を移動させた場合に、複数の地点で手が写る程度であればよく、例えば、２４ｆｐｓ（frame  per  second）、３０ｆｐｓ、６０ｆｐｓなどが挙げられる。なお、カメラ２０は、複数設けられてもよい。
【００１２】
表示部２１は、各種情報の表示を行うデバイスである。表示部２１としては、ＬＣＤ（Liquid  Crystal  Display）やＣＲＴ（Cathode  Ray  Tube）などの表示デバイスが挙げられる。なお、表示部２１は、投影により画像の表示を行うプロジェクタなどの投影デバイスであってもよい。表示部２１は、各種情報を表示する。例えば、表示部２１は、ジェスチャーによる操作を受け付ける操作画面を表示する。
【００１３】
なお、検出装置１０は、上記の機器以外の他の機器を有してもよい。例えば、検出装置１０は、マウスやキーボードなどのユーザからの操作入力を受付ける入力部を有してもよい。
【００１４】
ここで、検出装置１０の利用形態の一例を説明する。図２は、検出装置の利用形態の一例を示す図である。図２の例は、検出装置１０をタブレット端末とした場合の利用形態の一例が示されている。図２に示すように、検出装置１０は、平板状に形成され、一方の面に表示部２１が設けられている。また、検出装置１０は、表示部２１の周囲の一辺にカメラ２０が設けられている。図２の例では、検出装置１０は、表示部２１が設けられた表示面が見えるようにスタンドなどにより保持されている。ユーザは、検出装置１０の表示部２１に対向する位置から表示部２１を参照し、ジェスチャーなどにより各種の操作指示を行う。検出装置１０では、カメラ２０により所定のフレームレートでユーザを撮影しており、周期的に撮影される画像からユーザの手を検出して操作を検出する。
【００１５】
図３は、検出装置の利用形態の他の例を示す図である。図３の例は、画像を投影し、投影された画像に対する指示を検出するものとした場合の利用形態の一例が示されている。
図３の例では、スタンド２５にカメラ２０および表示部２１が設けられている。表示部２１は、画像を投影する。図３の例は、スタンド２５に設けられた表示部２１がテーブル上に画像を投影する場合を示しており、テーブル上の画像が表示される表示領域２６が示されている。ユーザは、ジェスチャーなどにより表示領域２６に対して各種の操作指示を行う。スタンド２５に設けられたカメラ２０は、表示領域２６を所定のフレームレートで撮影する。検出装置１０は、周期的に撮影される画像からユーザの手を検出して操作を検出する。
【００１６】
図１に戻り、記憶部２２は、フラッシュメモリなどの半導体メモリ素子、ハードディスク、光ディスクなどの記憶装置である。なお、記憶部２２は、ＲＡＭ（Random  Access  Memory）、フラッシュメモリなどのデータを書き換え可能な半導体メモリであってもよい。
【００１７】
記憶部２２は、制御部２３で実行されるＯＳ（Operating  System）や各種プログラムを記憶する。さらに、記憶部２２は、制御部２３で実行されるプログラムで用いられる各種データを記憶する。例えば、記憶部２２は、手領域情報３０を記憶する。
【００１８】
手領域情報３０は、撮影された画像に含まれる手領域に関する情報を記憶したデータである。手領域情報３０は、例えば、後述の格納部４２により格納される。
【００１９】
制御部２３は、検出装置１０を制御するデバイスである。制御部２３としては、ＣＰＵ（Central  Processing  Unit）、ＭＰＵ（Micro  Processing  Unit）等の電子回路や、ＡＳＩＣ（Application  Specific  Integrated  Circuit）、ＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路を採用できる。制御部２３は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部２３は、各種のプログラムが動作しており、各種の処理部として機能する。例えば、制御部２３は、特定部４０と、決定部４１と、格納部４２と、導出部４３と、検出部４４と、操作認識部４５とを有する。
【００２０】
特定部４０は、各種の特定を行う処理部である。例えば、特定部４０は、カメラ２０により周期的に撮影される画像から色情報に基づいて、手と推定される手領域を決定する。例えば、特定部４０は、撮影される画像の肌色に相当する領域を手領域を特定する。一例として、特定部４０は、撮影される画像の色空間をＨＳＶ表色系の色空間に変換する。そして、特定部４０は、色空間を変換した画像の画素ごとにＨ、Ｓ、Ｖの階調値が以下の式（１）、（２）に示す条件を満たすか否かを判定する。この（１）、（２）に示す条件は、色が肌色であるか否を判定する条件である。
【００２１】
０．１１  ＜  Ｈ  ＜  ０．２２        （１）
０．２  ＜  Ｓ  ＜  ０．５        （２）
【００２２】
特定部４０は、（１）、（２）に示す条件を満たす画素の領域を手領域と特定する。なお、特定部４０は、（１）、（２）に示す条件を満たす画素の領域の大きさをさらに判定して、手領域を特定してもよい。例えば、画像は、手が写っている場合、一定のサイズ以上の肌色の領域が存在する。そこで、特定部４０は、（１）、（２）に示す条件を満たし、手に相当する所定サイズ以上の領域を手領域と特定してもよい。これにより、画像にユーザの右手、または、左手など１つの手が含まれる場合、１つの手領域が特定される。一方、画像にユーザの右手と左手など２つの手が含まれる場合、２つの手領域が特定される。
【００２３】
特定部４０は、撮影される画像を、特定した手領域と手領域以外の領域とで二値化する。例えば、特定部４０は、手領域の画素を「１（黒）」とし、手領域以外の領域の画素を「０（白）」として画像を二値化する。なお、特定部４０は、画像の二値化を行わずに階調画像のまま以降の処理を行ってもよい。
【００２４】
決定部４１は、各種の決定を行う処理部である。例えば、決定部４１は、特定部４０により手領域が２つ特定された場合、２つの手領域がそれぞれ操作側の手に対応する手領域と、非操作側の手に対応する手領域の何れかであるかを決定する。例えば、決定部４１は、周期的に撮影される画像内での２つの手領域のそれぞれの移動量に基づいて、移動量が大きい操作側の手に対応する手領域と移動量が小さい非操作側の手に対応する手領域とを決定する。
【００２５】
一例として、決定部４１は、周期的に撮影される画像において手領域が２つ特定された場合、画像内の所定の一辺からの距離により手領域に識別番号を付与する。例えば、図２に示すような状態で利用される場合、決定部４１は、画像毎に、画像内において、操作するユーザの左右方向に対応する左側の端または右側の端からの距離が近い順に手領域に所定の初期値から順に識別番号を付与する。これにより、例えば、画像に右手および左手に対応する手領域が含まれる場合、各画像の右手に対応する手領域と、左手に対応する手領域にそれぞれ同じ識別番号が付与される。なお、決定部４１は、各画像間でそれぞれの手領域の形状を比較して形状が類似する手領域にそれぞれ同じ識別番号が付与してもよい。
【００２６】
また、決定部４１は、画像毎に、画像内での各手領域の位置を示す特徴点を求める。例えば、決定部４１は、特徴点として手領域の重心位置を求める。そして、決定部４１は、各画像で同じ識別番号が付与された手領域の特徴点の変化から移動量を求める。
【００２７】
ここで、移動量の一例を示す。例えば、画像内の位置をＸ、Ｙ軸の２次元座標で示すものとした場合、移動量は、以下の式（３）から算出する。
【００２８】
【数１】
2015170206.tif 000003
【００２９】
ここで、ｈａｎｄは、手に対応して手領域に付与される識別番号を示す。ｎは、撮影される画像のフレーム番号を示す。撮影される画像には、撮影された順にフレーム番号が付与される。ｇ（ｈａｎｄ，ｎ）は、ｎフレーム目の画像の識別番号ｈａｎｄの手領域の重心位置を示す。ｇ（ｈａｎｄ，ｎ）．ｘは、重心位置のＸ座標を示す。ｇ（ｈａｎｄ，ｎ）．ｙは，重心位置のＹ座標を示す。式（３）では、１つ前のフレームの画像と重心位置の距離を求めている。
【００３０】
決定部４１は、２つの手領域のうち、移動量の多い方を操作側の手に対応する手領域と決定し、移動量の少ない方を非操作側の手に対応する手領域と決定する。なお、本実施例では、１つ前のフレームの画像との比較により移動量を求めるものとしたが、例えば、１０フレーム前など所定フレーム前の画像との比較により移動量を求めてもよい。また、決定部４１は、操作側の手に対応する手領域と、非操作側の手に対応する手領域を一旦決定した後、所定の条件の間、２つの手領域を前のフレームと同じ手領域と決定してもよい。例えば、決定部４１は、５秒間など所定期間の間、２つの手領域を識別番号に基づいて前のフレームと同じ手領域と決定してもよい。また、例えば、決定部４１は、操作側の手に対応する手領域および非操作側の手に対応する手領域の移動量が静止していると見なせる所定値以下の間、２つの手領域を識別番号に基づいて前のフレームと同じ手領域と決定してもよい。
【００３１】
ここで、ユーザが指示操作を行う場合、指示操作を行う操作側の手は、非操作側の手よりも大きく移動する。例えば、ユーザが対象物を抑えながら対象物の位置を指定して指示操作を行う場合、対象物を抑えている側の手は、移動量が小さい。一方、指示操作を行う側の手は、移動量が大きい。この場合、対象物を抑えている側の手が非操作側の手と識別され、指示操作を行う側の手が操作側の手と識別される。
【００３２】
格納部４２は、各種の情報の格納を行う処理部である。例えば、格納部４２は、操作側の手領域と非操作側の手領域に関する情報を手領域情報３０に格納する。例えば、格納部４２は、手領域とそれ以外の領域とで二値化した二値化画像と、画像内の手領域が操作側と非操作側の何れかであるかを示すフラグを手領域情報３０として格納する。この操作側の手領域と非操作側の手領域の情報は、次に撮影された画像の操作側の手領域と非操作側の手領域の移動量を求める際に利用される。また、非操作側の手領域の情報は、後述する非操作側の手領域を除外する際に利用される。なお、格納部４２は、手領域の輪郭の情報を手領域情報３０に格納してもよい。本実施例では、格納部４２は、手領域に関する情報を手領域情報３０に上書きで格納する。このため、本実施例では、手領域情報３０に、最新のフレームの手領域に関する情報のみが記憶される。なお、格納部４２は、手領域に関する情報を順に追加で格納して各フレームの手領域に関する情報を手領域情報３０に記憶させてもよい。
【００３３】
導出部４３は、各種の導出を行う処理部である。例えば、導出部４３は、カメラ２０により撮影された各画像から特定部４０により特定された２つの手領域が結合したかを判定する。例えば、導出部４３は、特定部４０により特定された手領域の数が２つから１つに変化した場合、２つの手領域が結合したと判定する。導出部４３は、２つの手領域が結合した場合、手領域の数が１以外となるまで、結合した手領域のうち記憶部２２の手領域情報３０に記憶された範囲を除いた領域を導出する。例えば、導出部４３は、結合した手領域から手領域情報３０に記憶された範囲をマスクして除いた領域を導出する。
【００３４】
検出部４４は、各種の検出処理を行う処理部である。例えば、検出部４４は、画像の手領域から手に含まれる所定の認識対象部位の検出を行う。例えば、検出部４４は、手領域に対してパターンマッチングや輪郭検出などの所定の検出処理を行って、認識対象部位として手の指先を検出する。検出部４４は、特定部４０により特定された手領域の数が２つである場合、決定部４１により操作側と決定された手領域から指先を検出する。また、検出部４４は、特定部４０により特定された手領域の数が２つから１つに変化した場合、手領域の数が１以外となるまで、導出部４３により導出された領域から指先を検出する。また、検出部４４は、撮影された画像で最初から特定された手領域の数が１つの場合、当該手領域から、指先を検出する。
【００３５】
操作認識部４５は、各種の操作の認識を行う処理部である。例えば、操作認識部４５は、検出部４４により検出された指先の位置から操作内容を認識する。例えば、操作認識部４５は、指先の位置が画像内の選択領域に位置している場合、選択領域を選択する操作と認識する。例えば、画面内での指先の位置や、指先の位置の軌跡と操作内容と対応付けた情報を記憶部２２に記憶させ、操作認識部４５は、指先の位置や、指先の位置の軌跡が何れに該当するかによって操作内容を認識する。
【００３６】
また、操作認識部４５は、指先の３次元位置を算出して各種の操作の認識を行ってもよい。例えば、検出装置１０に２台のカメラ２０が所定の間隔で撮影領域を重複させて設けた場合、操作認識部４５は、２台のカメラ２０により撮影される画像内での対象物の視差から３次元位置を算出し、３次元位置の変化から操作を検出してもよい。例えば、操作認識部４５は、指先を認識して指先の３次元位置を算出し、３次元位置から、例えば、表示領域２６に対するタッチ操作を検出してもよい。例えば、２台のカメラ２０を平行に設置すると視差は、２台のカメラ２０で撮影された画像内での横座標のずれのみで求まる。
【００３７】
［装置の動作］
次に、本実施例に係る検出装置１０が操作を検出する際の動作について説明する。図４は、操作を検出する際の動作の流れの一例を模式的に示した図である。
【００３８】
図４（Ａ）の例は、ユーザが紙面を抑えながら、紙面上の位置を指定する操作を行っている状態を示す。図４（Ａ）に示す状態の画像が撮影された場合、検出装置１０では、特定部４０が、２つの手領域５０Ａ、５０Ｂを特定する。ユーザが紙面を抑えながら、紙面上の位置を指定する場合、紙面を抑えている手は、ほとんど移動せず、移動量が少ない。一方、位置を指定する操作を行っている手は、移動量が多い。このため、決定部４１は、手領域５０Ａを操作側と決定し、手領域５０Ｂを非操作側と決定する。格納部４２は、操作側の手領域５０Ａと非操作側の手領域５０Ｂの範囲を示す情報を手領域情報３０に格納する。図４（Ａ）の例では、非操作側の手領域５０Ｂの範囲を示す情報が手領域情報３０に格納されている。
【００３９】
図４（Ｂ）の例は、ユーザの紙面を抑える手と、紙面上の位置を指定する操作を行う手とが重なった状態を示す。図４（Ｂ）に示す状態の画像が撮影された場合、検出装置１０では、特定部４０が、１つの手領域５０Ｃを特定する。導出部４３は、手領域の数が２つから１つに変化した場合、手領域情報３０に記憶された手領域５０Ｂの範囲を手領域５０Ｃからマスクして除いた領域５０Ｄを導出する。検出部４４は、領域５０Ｄから指先を検出する。
【００４０】
ここで、画像に左右の手など２つの手が写っており、手の領域に重なりがある場合、手の領域の形状の変化により指先を検出することは、困難である。図５は、２つの手領域に重なりがある場合の領域の形状の変化の一例を示す図である。図５に示すように、手領域５０Ａ、５０Ｂが重なった手領域５０Ｃは、形状が変化するため、指先などの部位を検出することが困難となる。そこで、手領域５０Ｃから、紙面を抑えている手の手領域５０Ｂを除くことにより、手領域５０Ｂを除かなかった場合と比較して、指先などの部位を精度よく検出可能となる。すなわち、検出精度の低下を抑制できる。
【００４１】
また、ユーザが両手を用いて位置を指定する場合、位置を指定する一方の手が他方の手と一部重なる場合があっても、位置を指定する部分が重複することはない。例えば、図４に示すように、ユーザが紙面を抑えながら位置を指定する場合、位置を指定する一方の手が、他の手と完全に重なると、操作中の指先が紙面から離れてしまうため、位置を指定する部分が重複することはない。よって、手領域が重なった場合、紙面を抑えている手の手領域を除くことにより、紙面を抑えている手の手領域全体を正確に分離できなくても、紙面を抑えている手の手領域を除かなかった場合と比較して、指先などの部位を精度よく検出できる。
【００４２】
［処理の流れ］
最初に、本実施例に係る検出装置１０が、画像から手の領域に含まれる認識対象部位を検出する検出処理の流れについて説明する。図６は、検出処理の手順の一例を示すフローチャートである。この検出処理は、所定のタイミング、例えば、画像が撮影される毎に実行される。
【００４３】
図６に示すように、特定部４０は、撮影される画像の色空間をＨＳＶ表色系の色空間に変換する（Ｓ１０）。そして、特定部４０は、色空間を変換した画像の画素が上述の（１）、（２）に示す条件を満たす肌色領域を特定する（Ｓ１１）。特定部４０は、撮影された画像を肌色領域の画素を「１（黒）」とし、肌色領域以外の領域の画素を「０（白）」として二値化する（Ｓ１２）。特定部４０は、画素が「１（黒）」であり、手に相当する所定サイズ以上の領域を手領域と決定する（Ｓ１３）。これにより、画像に手が２つ写っている場合、手領域が２つ特定される。
【００４４】
導出部４３は、手領域が重複したか否か判定する（Ｓ１４）。例えば、導出部４３は、２つの手領域が結合して手領域の数が１つとなった場合、手領域が重複したと判定する。手領域が重複していない場合（Ｓ１４否定）、決定部４１は、画像内の所定の一辺からの距離により手領域に識別番号を付与し、１つ前に撮影された画像との間で同じ識別番号が付与された手領域の移動量を算出する（Ｓ１５）。決定部４１は、移動量の多い方を操作側の手領域と決定し、移動量の少ない方を非操作側の手領域と決定する（Ｓ１６）。格納部４２は、手領域とそれ以外の領域とで二値化した二値化画像と、画像内の手領域が操作側と非操作側の何れかであるかを示すフラグを手領域情報３０として格納する（Ｓ１７）。
【００４５】
一方、手領域が重複した場合（Ｓ１４肯定）、導出部４３は、結合した手領域から手領域情報３０に記憶された非操作側の手領域の範囲をマスクする（Ｓ１８）。そして、導出部４３は、結合した手領域からマスクされた範囲を除いた領域を導出する（Ｓ１９）。
【００４６】
検出部４４は、上述のＳ１６で決定された操作側の手領域、または、上述のＳ１９で導出された領域を、操作を検出する対象の領域として所定の認識対象部位を検出する対象部位検出処理を行い（Ｓ２０）、処理を終了する。
【００４７】
次に、本実施例に係る対象部位検出処理の流れについて説明する。図７は、対象部位検出処理の手順の一例を示すフローチャートである。この対象部位検出処理は、所定のタイミング、例えば、検出処理のＳ２０から実行される。なお、本実施例では、輪郭を検出して認識対象部位として指先を検出する場合を例に説明する。
【００４８】
検出部４４は、操作を検出する対象の領域から輪郭を抽出する（Ｓ３０）。図８は、抽出された輪郭の一例を示す図である。図８には、画像内の位置を示すためＸ軸、Ｙ軸が示されている。Ｘ軸は、左から右に値が増加するものとする。Ｙ軸は、上から下に値が増加するものとする。また、図８には、複数の輪郭点Ｐが示されている。輪郭点Ｐには、輪郭に沿って０から順に番号ｎが定められている。以下では、ｎ番目の輪郭点Ｐを輪郭点Ｐｎと表記する。また、輪郭点Ｐｎの座標をＰｎ（ｘ，ｙ）と表記する。
【００４９】
検出部４４は、長さを記憶する変数Ｃｔをゼロに初期化する（Ｓ３１）。検出部４４は、輪郭に沿って輪郭点Ｐを選択する（Ｓ３２）。本実施例では、最初の輪郭点Ｐ０から輪郭に沿って輪郭点Ｐを順に選択する。検出部４４は、輪郭に沿って１つ先の輪郭点との傾きを求める（Ｓ３３）。本実施例では、傾きとして、１つ先の輪郭点とのＸの増加量ａｘ、ｙの増加量ａｙを求める。そして、検出部４４は、増加量ａｘ＞０かつ増加量ａｙ＜０であるか判定する（Ｓ３４）。このＳ３４の処理では、例えば、図８の例において、選択された輪郭点Ｐが操作を検出する対象の領域６０の左側の輪郭点Ｐであるか否か判定している。
【００５０】
増加量ａｘ＞０かつ増加量ａｙ＜０である場合（Ｓ３４肯定）、検出部４４は、変数Ｃｔの値に１を加算し（Ｓ３５）、後述のＳ３６へ移行する。一方、増加量ａｘ＞０かつ増加量ａｙ＜０ではない場合（Ｓ３４否定）、後述のＳ３６へ移行する。
【００５１】
検出部４４は、変数Ｃｔの値が、指の長さと見なすことができる所定のしきい値ｔｈより大きいか否かを判定する（Ｓ３６）。変数Ｃｔの値がしきい値ｔｈ以下である場合（Ｓ３６否定）、検出部４４は、増加量ａｘ＞０かつ増加量ａｙ＜０であるか判定する（Ｓ３７）。増加量ａｘ＞０かつ増加量ａｙ＜０である場合（Ｓ３７肯定）、後述のＳ３９へ移行する。一方、増加量ａｘ＞０かつ増加量ａｙ＜０ではない場合（Ｓ３７否定）、変数Ｃｔをゼロに初期化し（Ｓ３８）、後述のＳ３９へ移行する。このＳ３７およびＳ３８の処理では、選択された輪郭点Ｐが、図８の例において、領域６０の左側の輪郭点Ｐである場合、そのまま処理を継続し、領域６０の右側の輪郭点Ｐである場合、変数Ｃｔをゼロに初期化している。
【００５２】
検出部４４は、輪郭に沿って順に全ての輪郭点Ｐの選択が完了したか否か判定する（Ｓ３９）。全ての輪郭点Ｐの選択が完了していない場合（Ｓ３９否定）、上述のＳ３２へ移行する。一方、全ての輪郭点Ｐの選択が完了した場合（Ｓ３９肯定）、処理を終了する。
【００５３】
一方、変数Ｃｔの値がしきい値ｔｈよりも大きい場合（Ｓ３６肯定）、検出部４４は、増加量ａｘ＞０かつ増加量ａｙ＞０であるか判定する（Ｓ４０）。このＳ４０の処理では、選択された輪郭点Ｐが、図８の例において、増加量ａｘ＞０かつ増加量ａｙ＞０に最初になる領域６０の頂点の輪郭点Ｐｎであるか否か判定している。増加量ａｘ＞０かつ増加量ａｙ＞０ではない場合（Ｓ４０否定）、検出部４４は、増加量ａｘ＞０かつ増加量ａｙ＜０であるか判定する（Ｓ４１）。増加量ａｘ＞０かつ増加量ａｙ＜０である場合（Ｓ４１肯定）、上述のＳ３８へ移行する。一方、増加量ａｘ＞０かつ増加量ａｙ＜０ではない場合（Ｓ４１否定）、上述のＳ３９へ移行する。
【００５４】
一方、増加量ａｘ＞０かつ増加量ａｙ＞０である場合（Ｓ４０肯定）、検出部４４は、選択された輪郭点Ｐが領域６０の頂点であるため、選択された輪郭点Ｐを指先の位置として（Ｓ４２）、処理を終了する。この対象部位検出処理により、指先の位置が検出される。
【００５５】
［効果］
上述してきたように、本実施例に係る検出装置１０は、撮影される画像から手領域を特定する。検出装置１０は、特定された領域の移動量に基づいて、移動量が小さい非操作側の手領域と当該非操作側の手領域よりも移動量が大きい操作側の手領域とを決定する。検出装置１０は、決定された非操作側の手領域と操作側の手領域が結合して撮影された場合、撮影画像から非操作側の手領域を除いた領域を導出する。検出装置１０は、導出された領域の画像に対して検出処理を行う。これにより、検出装置１０は、検出精度の低下を抑制できる。
【００５６】
また、本実施例に係る検出装置１０は、非操作側の手領域と決定された範囲を記憶する。検出装置１０は、記憶された非操作側の手領域をマスクして、撮影画像から非操作側の手領域を除いた領域を導出する。これにより、検出装置１０は、非操作側の手領域と操作側の手領域が結合した場合でも、非操作側の手領域を除くことができる。
【００５７】
また、本実施例に係る検出装置１０は、周期的に撮影される画像毎に画像内の所定の一辺から近い順に、特定された手領域に対して識別番号を順に付与し、各画像間で同じ識別番号が付与された手領域の移動量を求める。これにより、検出装置１０は、周期的に撮影される画像から、それぞれの手領域の移動量を求めることができる。
【実施例２】
【００５８】
さて、これまで開示の装置に関する実施例について説明したが、開示の技術は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
【００５９】
例えば、上記の実施例では、撮影された画像をＨＳＶ表色系の色空間に変換して肌色の領域を特定する場合について説明したが、開示の装置はこれに限定されない。手領域の特定に用いる色空間は、画像の肌色に相当する領域を特定できれば何れの色空間を用いてもよい。例えば、特定部４０は、撮影される画像の色空間をＹＣｂＣｒの色空間に変換して画像の肌色に相当する領域を判定してもよい。
【００６０】
また、上記の実施例では、操作を検出する対象の領域から輪郭を抽出して、認識対象部位として指先を検出する場合について説明したが、開示の装置はこれに限定されない。例えば、操作を検出する対象の領域に対して指の形状を示すテンプレートのテンプレートマッチングを行って指先を検出してもよい。
【００６１】
また、上記の実施例では、手領域の位置を示す特徴点として重心位置を求め、手領域の移動量として重心位置の移動量を求める場合について説明したが、開示の装置はこれに限定されない。例えば、手領域の位置を示す特徴点として、手領域を内接する矩形や円形の領域の中心位置を求め、手領域の移動量として中心位置の移動量を求めてもよい。また、例えば、手領域の位置を示す特徴点として、手領域の所定方向の最も端となる端部の位置を求め、手領域の移動量として端部の位置の移動量を求めてもよい。
【００６２】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、検出装置１０の特定部４０、決定部４１、格納部４２、導出部４３、検出部４４および操作認識部４５の各処理部が適宜統合されてもよい。また、各処理部の処理が適宜複数の処理部の処理に分離されてもよい。また、各装置は各処理部の一部または全部を適宜統合してもよい。さらに、各処理部にて行なわれる各処理機能は、その全部または任意の一部が、ＣＰＵおよび当該ＣＰＵにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
【００６３】
［検出プログラム］
また、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータシステムで実行することによって実現することもできる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータシステムの一例を説明する。図９は、検出プログラムを実行するコンピュータを示す図である。
【００６４】
図９に示すように、コンピュータ３００は、ＣＰＵ（Central  Processing  Unit）３１０、ＨＤＤ（Hard  Disk  Drive）３２０、ＲＡＭ（Random  Access  Memory）３４０を有する。これら３００〜３４０の各部は、バス４００を介して接続される。
【００６５】
ＨＤＤ３２０には上記の検出装置１０の各処理部と同様の機能を発揮する検出プログラム３２０ａが予め記憶される。なお、検出プログラム３２０ａについては、適宜分離しても良い。
【００６６】
また、ＨＤＤ３２０は、各種情報を記憶する。例えば、ＨＤＤ３２０は、ＯＳや処理に用いる各種データを記憶する。
【００６７】
そして、ＣＰＵ３１０が、検出プログラム３２０ａをＨＤＤ３２０から読み出して実行することで、実施例の各処理部と同様の動作を実行する。すなわち、検出プログラム３２０ａは、検出装置１０の各処理部と同様の動作を実行する。
【００６８】
なお、上記した検出プログラム３２０ａについては、必ずしも最初からＨＤＤ３２０に記憶させることを要しない。
【００６９】
例えば、コンピュータ３００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」にプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【００７０】
さらには、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ３００に接続される「他のコンピュータ（またはサーバ）」などにプログラムを記憶させておく。そして、コンピュータ３００がこれらからプログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００７１】
１０  検出装置
２０  カメラ
２１  表示部
２２  記憶部
２３  制御部
３０  手領域情報
４０  特定部
４１  決定部
４２  格納部
４３  導出部
４４  検出部
４５  操作認識部
【図１】
2015170206.tif 000004
【図２】
2015170206.tif 000005
【図３】
2015170206.tif 000006
【図４】
2015170206.tif 000007
【図５】
2015170206.tif 000008
【図６】
2015170206.tif 000009
【図７】
2015170206.tif 000010
【図８】
2015170206.tif 000011
【図９】
2015170206.tif 000012