(57)【要約】【課題】画像から肌色を持つ被写体が写った領域を正確に検出できる肌色検出条件を決定できる肌色検出条件決定装置を提供する。【解決手段】肌色検出条件決定装置（６）は、肌色を持つ被写体が写った画像から、肌色に相当する色の範囲に含まれる色を持つ画素の集合を肌色領域として検出する肌色領域検出部（２２）と、肌色領域の大きさを表す評価値を算出する評価値算出部（２３）と、画像上の被写体の大きさを表す基準値に対する評価値の差が所定の許容範囲に含まれなくなるまで、色の範囲を狭くする条件変更部（２５）と、基準値に対する評価値の差が所定の許容範囲に含まれる色の範囲のうち、最も狭い色の範囲を肌色検出条件に設定する設定部（２６）とを有する。【選択図】図３
2015184906.tif 000002
【特許請求の範囲】
【請求項１】
肌色を持つ被写体が写った画像から、肌色に相当する色の範囲に含まれる色を持つ画素の集合を肌色領域として検出する肌色領域検出部と、
前記肌色領域の大きさを表す評価値を算出する評価値算出部と、
前記画像上の前記被写体の大きさを表す基準値に対する前記評価値の差が所定の許容範囲に含まれなくなるまで、前記色の範囲を狭くする条件変更部と、
前記差が前記所定の許容範囲に含まれる前記色の範囲のうち、最も狭い色の範囲を肌色検出条件に設定する設定部と、
を有する肌色検出条件決定装置。
【請求項２】
前記被写体は、人の指を含み、
前記評価値算出部は、前記評価値として、前記画像上の前記指の先端位置及び前記肌色領域の面積のうちの少なくとも一方を算出する、
請求項１に記載の肌色検出条件決定装置。
【請求項３】
前記画像の各画素の色は、色相と、明度と、彩度の組み合わせで表され、
前記色の範囲は、肌色に相当する色相、明度及び彩度のそれぞれの範囲の上限の閾値と下限の閾値で表され、
前記条件変更部は、色相、明度及び彩度のそれぞれの上限の閾値と下限の閾値の中から、前記肌色領域に含まれる画素の分布が疎となる方から順に選択し、選択した閾値を、前記差が前記所定の許容範囲に含まれなくなるまで、前記色の範囲が狭くなるように変更する、請求項１または２に記載の肌色検出条件決定装置。
【請求項４】
前記条件変更部は、前記肌色領域に含まれる画素の分布に対して主成分分析を適用することで、当該画素の分布が疎となる順序を求める、請求項３に記載の肌色検出条件決定装置。
【請求項５】
肌色を持つ被写体が写った画像から、肌色に相当する色の範囲に含まれる色を持つ画素の集合を肌色領域として検出し、
前記肌色領域の大きさを表す評価値を算出しと、
前記画像上の前記被写体の大きさを表す基準値に対する前記評価値の差が所定の許容範囲に含まれなくなるまで、前記色の範囲を狭くし、
前記差が前記所定の許容範囲に含まれる前記色の範囲のうち、最も狭い色の範囲を肌色検出条件に設定する、
ことを含む肌色検出条件決定方法。
【請求項６】
肌色を持つ被写体が写った画像から、肌色に相当する色の範囲に含まれる色を持つ画素の集合を肌色領域として検出し、
前記肌色領域の大きさを表す評価値を算出しと、
前記画像上の前記被写体の大きさを表す基準値に対する前記評価値の差が所定の許容範囲に含まれなくなるまで、前記色の範囲を狭くし、
前記差が前記所定の許容範囲に含まれる前記色の範囲のうち、最も狭い色の範囲を肌色検出条件に設定する、
ことをコンピュータに実行させるための肌色検出条件決定用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、画像上の肌色の領域を検出するために使用される肌色検出条件を決定するための肌色検出条件決定装置、肌色検出条件決定方法及び肌色検出条件決定用コンピュータプログラムに関する。
【背景技術】
【０００２】
従来より、画像に写った人物または人物の特定の部位を検出するために、画像上の肌色の領域を検出する技術が利用されている。しかし、肌色の領域を検出するための条件（以下、肌色検出条件と呼ぶ）が適切でなければ、人体以外の肌色に近い色を持つ物体が写った領域が誤って検出されたり、逆に、本来であれば検出すべき人体の一部が検出されないおそれがある。そこで、肌色の領域を検出するために利用される肌色モデルを、顔が検出される都度に更新し、様々な照明・カメラ条件下でその色環境に適応した肌色モデルを自動的に決定する技術が提案されている（例えば、特許文献１を参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００５−２４２５８２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
肌色検出条件が適切でなく、本来検出されるべき肌色を持つ被写体が写った領域が正確に検出されない場合、検出された被写体領域に基づく処理に悪影響を及ぼすことがある。そのため、画像から肌色を持つ被写体が写った領域をより正確に検出できる肌色検出条件が求められることが好ましい。
【０００５】
そこで本明細書は、画像から肌色を持つ被写体が写った領域を正確に検出できる肌色検出条件を決定できる肌色検出条件決定装置を提供することを目的とする。
【課題を解決するための手段】
【０００６】
一つの実施形態によれば、肌色検出条件決定装置が提供される。この肌色検出条件決定装置は、肌色を持つ被写体が写った画像から、肌色に相当する色の範囲に含まれる色を持つ画素の集合を肌色領域として検出する肌色領域検出部と、肌色領域の大きさを表す評価値を算出する評価値算出部と、画像上の被写体の大きさを表す基準値に対する評価値の差が所定の許容範囲に含まれなくなるまで、色の範囲を狭くする条件変更部と、基準値に対する評価値の差が所定の許容範囲に含まれる色の範囲のうち、最も狭い色の範囲を肌色検出条件に設定する設定部とを有する。
【０００７】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【０００８】
本明細書に開示された肌色検出条件決定装置は、画像から肌色を持つ被写体が写った領域を正確に検出できる肌色検出条件を決定できる。
【図面の簡単な説明】
【０００９】
【図１】（ａ）は、肌色検出条件で規定される色の範囲が広過ぎる場合に、画像から検出された肌色領域を示す図である。（ｂ）は、肌色検出条件で規定される色の範囲が狭過ぎる場合に、画像から検出された肌色領域を示す図である。
【図２】肌色検出条件決定装置を実装したジェスチャ識別装置のハードウェア構成図である。
【図３】制御部の機能ブロック図である。
【図４】（ａ）は、サンプル画像から初期設定された肌色検出範囲に従って検出された肌色領域を示す２値画像である。（ｂ）は、（ａ）に示された２値画像に対して膨張収縮演算を行って得られた２値画像である。
【図５】肌色画素の分布の一例を示す図である。
【図６】肌色検出条件決定処理の動作フローチャートである。
【図７】ジェスチャ操作対応テーブルの一例を示す図である。
【発明を実施するための形態】
【００１０】
以下、図を参照しつつ、肌色検出条件決定装置について説明する。最初に、肌色検出条件が不適切な場合に、画像から検出される肌色領域について説明する。図１（ａ）は、肌色検出条件で規定される色の範囲が広過ぎる場合に、ユーザの手を写した画像から検出された肌色領域を示す図である。図１（ｂ）は、肌色検出条件で規定される色の範囲が狭過ぎる場合に、ユーザの手を写した画像から検出された肌色領域を示す図である。図１（ａ）に示される画像１００において、白い領域が検出された肌色領域である。この例では、肌色検出条件が緩過ぎるため、すなわち、肌色と判定する色の範囲が広過ぎるため、手以外の肌色に近い色を持つ物体が写った領域１０１も、肌色領域として検出されている。
【００１１】
一方、図１（ｂ）に示される例では、画像１１０において、肌色検出条件が厳し過ぎるため、すなわち、肌色と判定する色の範囲が狭過ぎるため、爪に相当する部分１１１が肌色領域から外れてしまっている。
【００１２】
このように、肌色検出条件が不適切だと、画像から検出された肌色領域は、本来検出すべき被写体の大きさ、形状及び位置などを正確に表さなくなる。そこでこの肌色検出条件決定装置は、肌色を持つ被写体が写ったサンプル画像から、仮に定めた肌色検出条件で規定される色の範囲に含まれる色を持つ画素の集合を肌色領域として検出し、肌色領域の大きさを表す評価値を算出する。そしてこの肌色検出条件決定装置は、サンプル画像上での肌色を持つ被写体の大きさを表す基準値に対する評価値の差が所定の許容範囲に含まれなくなるまで、仮の肌色検出条件で規定する色の範囲を狭くする。そしてこの肌色検出条件決定装置は、その差が所定の許容範囲に含まれる色の範囲のうち、最も狭い色の範囲を肌色検出条件に設定することで、肌色を持つ被写体が写った領域を、その他の領域と正確に区別できる肌色検出条件を求める。
【００１３】
以下、肌色検出条件決定装置を利用して、画像から、肌色を持つ被写体としてユーザの手を検出し、検出されたユーザの手に基づいてジェスチャを識別するジェスチャ識別装置を例として、本実施形態による肌色検出条件決定装置について説明する。
【００１４】
図２は、肌色検出条件決定装置を実装した、ジェスチャ識別装置のハードウェア構成図である。ジェスチャ識別装置１は、表示部２と、撮像部３と、記憶媒体アクセス装置４と、記憶部５と、制御部６とを有する。表示部２、撮像部３、記憶媒体アクセス装置４、記憶部５、及び制御部６は、筐体７内に配置される。なお、ジェスチャ識別装置１は、例えば、携帯電話機、携帯情報端末またはタブレット型コンピュータといった携帯端末、あるいは、据え置き型のコンピュータとすることができる。さらにジェスチャ識別装置１は、ジェスチャ識別装置１を他の機器に接続するための通信インターフェース回路（図示せず）を有していてもよい。なお、図２は、ジェスチャ識別装置１が有する構成要素を説明するための図であり、ジェスチャ識別装置１の各構成要素の実際の配置を表した図ではないことに留意されたい。
【００１５】
ジェスチャ識別装置１は、ユーザの手を、撮像部３が周期的に撮影したユーザの手の画像のそれぞれから、肌色領域を検出することによって特定し、その手の位置、形状または動きを追跡することによってユーザが行ったジェスチャを識別する。そしてジェスチャ識別装置１は、ユーザが行ったジェスチャに対応する操作に応じた処理を実行する。これにより、ジェスチャ識別装置１は、例えば、ユーザの手が濡れているといった理由によりユーザがジェスチャ識別装置１に直接触れることができない場合であっても、ユーザがジェスチャ識別装置１について所望の操作を行うことを可能にする。
【００１６】
表示部２は、例えば、液晶ディスプレイ、あるいは有機エレクトロルミネッセンスディスプレイを有し、表示部２の表示画面が、筐体７の正面に対向するユーザを向くように配置される。そして表示部２は、ユーザに様々な情報を表示する。また表示部２は、タッチパネルディスプレイを有してもよい。この場合、表示部２は、例えば、様々なアイコンまたは操作ボタンを、制御部６からの制御信号に応じて表示する。そして表示部２は、表示されたアイコンまたは操作ボタンの位置にユーザが触れた場合に、その位置に応じた操作信号を生成し、その操作信号を制御部６へ出力する。
【００１７】
撮像部３は、例えば、２次元アレイ状に配置された固体撮像素子を有するイメージセンサと、そのイメージセンサ上に被写体の像を結像する撮像光学系とを有する。
【００１８】
撮像部３は、所定の周期ごとにユーザの手を撮影することで、その周期ごとにユーザの手が写った画像を生成する。また本実施形態では、生成される画像は、RGB表色系により各画素の値が表されるカラー画像である。そして撮像部３は、画像を生成する度に、生成した画像を制御部６へ出力する。なお、周期は、例えば、33msecである。
【００１９】
記憶媒体アクセス装置４は、例えば、磁気ディスクまたは半導体メモリカードといった記憶媒体８にアクセスする装置である。記憶媒体アクセス装置４は、例えば、記憶媒体８に記憶された制御部６上で実行されるコンピュータプログラムを読み込み、制御部６に渡す。また、後述するように、制御部６が肌色検出条件決定装置としての機能を実現するコンピュータプログラムを実行する場合には、記憶媒体アクセス装置４は、記憶媒体８から肌色検出条件決定用コンピュータプログラムを読み込んで、制御部６に渡してもよい。
【００２０】
記憶部５は、例えば、読み書き可能な不揮発性の半導体メモリと、読み書き可能な揮発性の半導体メモリとを有する。そして記憶部５は、制御部６上で実行される各種のアプリケーションプログラム及び各種のデータを記憶する。また記憶部５は、肌色検出条件決定処理に利用される各種のデータ、及び、肌色検出条件決定処理によって決定された、肌色検出条件を記憶してもよい。さらに記憶部５は、手の動きにより表されるジェスチャと、そのジェスチャに対応する操作を表す識別コードとを関連付けたジェスチャ操作対応テーブルを記憶してもよい。
【００２１】
なお、本実施形態において、肌色検出条件が規定する色の範囲は、HSV表色系における、色相、彩度及び明度のそれぞれについての肌色に相当する値の範囲の上限の閾値と下限の閾値で表される。
【００２２】
制御部６は、一つまたは複数のプロセッサ及びその周辺回路を有する。そして制御部６は、ジェスチャ識別装置１の各部と信号線を介して接続されており、ジェスチャ識別装置１全体を制御する。
また制御部６は、肌色検出条件決定装置の一例であり、例えば、ジェスチャ識別処理を開始する前に、撮像部３から受け取ったサンプル画像を利用して、肌色検出条件を決定する。さらに、制御部６は、ジェスチャ識別処理を開始すると、撮像部３から画像を受け取る度に、決定された肌色検出条件を利用してその画像から肌色領域を検出することで、被写体であるユーザの手を検出する。そして制御部６は、その検出結果に基づいて、ユーザが実行したジェスチャを判別し、ジェスチャに対応する操作に応じた処理を実行する。
【００２３】
図３は、制御部６の機能ブロック図である。制御部６は、肌色検出条件決定部１１と、変換部１２と、肌色領域検出部１３と、ジェスチャ判別部１４と、操作信号生成部１５とを有する。
制御部６が有するこれらの各部は、例えば、制御部６が有するプロセッサ上で実行されるコンピュータプログラムによって実現される機能モジュールとして実装される。なお、これらの各部は、それぞれ、別個の回路として、制御部６とは別個にジェスチャ識別装置１に実装されてもよく、あるいはこれらの各部の機能を実現する一つの集積回路として、制御部６とは別個にジェスチャ識別装置１に実装されてもよい。
【００２４】
制御部６が有するこれらの各部のうち、肌色検出条件決定部１１は、肌色検出条件を決定する際に動作する。また、変換部１２、肌色領域検出部１３、ジェスチャ判別部１４及び操作信号生成部１５は、肌色検出条件決定部１１により決定された肌色検出条件を用いて画像から肌色領域を検出し、その検出結果に基づいてユーザのジェスチャを識別する際に動作する。
【００２５】
（肌色検出条件決定処理）
まず、肌色検出条件決定部１１により実行される、肌色検出条件決定処理について説明する。
図３に示されるように、肌色検出条件決定部１１は、変換部２１と、肌色領域検出部２２と、評価値算出部２３と、判定部２４と、条件変更部２５と、設定部２６とを有する。
【００２６】
変換部２１は、撮像部３から取得したサンプル画像の各画素の値を、RGB表色系で表される値からHSV表色系で表される値に変換する。本実施形態では、サンプル画像は、人の手（指を含む）が写り、かつ、手以外の背景は肌色と容易に区別される色を持つ画像である。サンプル画像は、例えば、白、黒、または青などの色を持つ台の上に置かれた手を撮像部３で撮影することにより生成される。
【００２７】
変換部２１は、サンプル画像の各画素の値を、例えば次式に従って変換する。
【数１】
2015184906.tif 000003
ここで、R、G、Bは、それぞれ、変換前の画素の赤色成分、緑色成分、青色成分を表す。またMAX、MINは、それぞれ、変換前の画素の赤色成分、緑色成分、青色成分のうちの最大値及び最小値を表す。そしてH、V、Ｓは、それぞれ、変換後の画素の色相、明度、彩度を表す。ただし、Hの値に関しては、（１）式により得られた値が負の場合、その値に360を加えた値が色相の値となる。
この例では、明度V及び彩度Sは、それぞれ、0〜255の範囲内の値を取る。また、色相Hは、0〜359の値を取る。
【００２８】
変換部２１は、変換後のサンプル画像を記憶部５に記憶する。
なお、撮像部３が、HSV表色系で表されるカラー画像を生成する場合には、変換部２１は省略されてもよい。
【００２９】
肌色領域検出部２２は、肌色検出条件の探索中、条件変更部２５により設定された仮の肌色検出条件を用いて、サンプル画像から肌色領域を検出する。ただし、初回の肌色領域検出については、肌色領域検出部２２は、初期設定の肌色検出条件を用いる。
【００３０】
初期設定の肌色検出条件は、肌色を持つ被写体を確実に検出できるほど広い、色の範囲を規定する。ただし、初期設定の肌色検出条件は、肌色に近い色を持つ物体が写った領域を肌色領域として検出してしまうほど広くてもよい。サンプル画像には、肌色に近い色を持つ物体が写っていないことが前提とされるためである。初期設定の肌色検出条件が規定する色の範囲は、例えば、次式で表される。
【数２】
2015184906.tif 000004
ここで、H、V、Ｓは、それぞれ、着目する画素の色相、明度及び彩度を表す。
【００３１】
肌色領域検出部２２は、サンプル画像上の各画素のうち、色相H、明度V及び彩度Sの値が仮の肌色検出条件で規定される色相、明度及び彩度の範囲内に含まれる画素を、肌色を持つ肌色画素として抽出する。そして肌色領域検出部２２は、抽出した肌色画素とその他の画素である背景画素とが異なる値を持つ２値画像を生成する。２値画像において、肌色画素の値は、例えば、255で表され、背景画素の値は、例えば、0で表される。
肌色領域検出部２２は、その２値画像において、肌色画素の集合を肌色領域とする。
【００３２】
また肌色領域検出部２２は、肌色領域に対してモルフォロジーの膨張収縮演算を行って、肌色画素に周囲を囲まれた背景画素を肌色領域に含めてもよい。これにより、例えば、手の皺などの影響で生じた影などにより、手の一部が写っている画素であるにもかかわらず、肌色検出条件から外れた色を持つ画素を、肌色領域に含めることができる。
【００３３】
図４（ａ）は、サンプル画像から初期設定された肌色検出条件に従って検出された肌色領域を示す２値画像である。図４（ｂ）は、図４（ａ）に示された２値画像の肌色領域に対して膨張収縮演算を行って得られた２値画像である。なお、図４（ａ）及び図４（ｂ）において、白い画素が肌色画素であり、黒い画素が背景画素である。図４（ａ）に示されるように、２値画像４００では、手が写っている部分にも、肌色領域４０１に囲まれて背景画素が存在する。一方、図４（ｂ）に示されるように、肌色領域４０１に対して膨張収縮演算が行われることにより、２値画像４１０において、手が写っている部分のほとんどが肌色領域４１１に含まれるようになることが分かる。
【００３４】
肌色領域検出部２２は、２値画像を評価値算出部２３に渡す。
【００３５】
評価値算出部２３は、肌色領域の大きさを表す評価値を算出する。本実施形態では、サンプル画像は、手の周囲には、肌色と間違う可能性がある物体が無い状態で手を撮影することで生成されている。そのため、サンプル画像に対して初期設定の肌色検出条件を適用して得られた肌色領域は、正確に手が写っている領域を表している可能性が高い。
【００３６】
そこで、評価値算出部２３は、サンプル画像に対して初期設定の肌色検出条件を適用して検出された肌色領域に基づいて算出した評価値を、サンプル画像上での被写体（本実施形態では、指を含む手）の大きさを表す基準値とする。
【００３７】
また、画像上に写っている手に基づいてユーザのジェスチャを識別する場合、制御部６は、指の位置を正確に検出できないと、ジェスチャを正確に識別できない可能性がある。そこで本実施形態では、評価値算出部２３は、基準値及び評価値として、肌色領域の面積と、サンプル画像上での各指の先端の位置の平均値を算出する。
【００３８】
評価値算出部２３は、肌色領域検出部２２から受け取った２値画像上の肌色領域に含まれる画素の数をカウントし、その合計を肌色領域の面積とする。
また、評価値算出部２３は、２値画像と、各指の形状を表すテンプレートとの間でテンプレートマッチング処理を行って、２値画像上でテンプレートと最も一致する位置を検出する。そして評価値算出部２３は、その検出された位置に位置合わせされたテンプレートの各指の先端に相当する２値画像上の位置を、それぞれ、各指の先端の位置とする。なお、評価値算出部２３は、画像から指の先端の位置を特定する他の方法、例えば、特開２００３−３４６１６２号公報に開示された方法に従って、各指の先端の位置を特定してもよい。
各指の先端の位置が特定されると、評価値算出部２３は、各指の先端の位置の平均値を算出する。例えば、手の長手方向が、サンプル画像の垂直方向に沿っている場合、評価値算出部２３は、各指の先端の画素の垂直方向の座標値の平均値を算出する。
【００３９】
評価値算出部２３は、初期設定の肌色検出条件を用いて算出された肌色領域の面積と、各指の先端の位置の平均値を、基準値として記憶部５に記憶する。また評価値算出部２３は、仮の肌色検出条件を用いて算出された肌色領域の面積と、各指の先端の位置の平均値を、評価値として判定部２４に渡す。
【００４０】
判定部２４は、基準値と、２回目以降の肌色領域検出によって得られた肌色領域から算出された評価値との差が所定の許容範囲に含まれるか否かを判定する。本実施形態では、判定部２４は、評価値である、肌色領域の面積と各指の先端の位置の平均値を、次式に従って基準値と比較する。
【数３】
2015184906.tif 000005
ここで、Aは、基準値として算出された肌色領域の面積であり、A'は、最新の仮の肌色検出条件により求められた肌色領域の面積である。αは、面積の差についての許容範囲を表す閾値であり、例えば、3(%)〜5(%)に設定される。また、Bは、基準値として算出された各指の先端の位置の平均値であり、B'は、最新の仮の肌色検出条件を用いて検出された肌色領域から求められた各指の先端の位置の平均値である。そしてβは、指の先端の位置の差についての許容範囲を表す閾値であり、例えば、0に設定される。
【００４１】
判定部２４は、例えば、全ての閾値について、（３）式及び（４）式のうち、何れか一方でも満たされると、基準値と評価値との差が許容範囲を超えたと判定する。そして基準値と評価値との差が許容範囲を超えたと判定した場合、判定部２４は、設定部２６にその旨を通知する。
一方、判定部２４は、（３）式及び（４）式の何れもが満たされない場合、すなわち、基準値と評価値との差が許容範囲内である場合、条件変更部２５に、その旨を通知する。また、判定部２４は、条件変更部２５により変更されていない閾値、すなわち、着目されていない閾値が残っている場合、（３）式及び（４）式のうち、何れか一方でも満たされると、条件変更部２５に、その旨を通知する。
【００４２】
条件変更部２５は、基準値と評価値との差が許容範囲内である場合、直前の肌色領域検出に利用した、最新の仮の肌色検出条件よりも、肌色として検出する色の範囲を狭くする。すなわち、条件変更部２５は、直前の肌色領域検出に利用した仮の肌色検出条件で規定された色相、明度及び彩度の範囲のそれぞれの上限を表す閾値及び下限を表す閾値のうち、少なくとも一つを、肌色として検出する色の範囲を狭くするように修正する。
【００４３】
条件変更部２５は、例えば、上記の閾値のうちの何れか一つを予め定められた順序に従って、着目する閾値として選択する。そして条件変更部２５は、着目する閾値に関して、（３）式または（４）式の何れかが満たされるまで、その閾値を変更し、その後に、他の閾値を選択して同様の処理を繰り返してもよい。
【００４４】
なお、条件変更部２５は、肌色領域に含まれる、サンプル画像上の肌色画素の色相、明度及び彩度の分布が疎となる順に、対応する閾値を選択してもよい。例えば、条件変更部２５は、明度の下限閾値→彩度の上限閾値→明度の上限閾値→彩度の下限閾値→色相の下限閾値→色相の上限閾値の順に、閾値を選択してもよい。
また、条件変更部２５は、肌色領域に含まれる、サンプル画像上の画素の色相、明度及び彩度の分布に対して主成分分析を行って、色相、明度及び彩度のそれぞれの上限及び下限について、その分布が疎となる順序を特定してもよい。
【００４５】
肌色画素の分布が疎な部分では、閾値変更による肌色画素の分布への影響は小さい。そのため、閾値変更による肌色領域の面積の変化、及び、指の先端の位置変化への影響も小さい。したがって、条件変更部２５は、肌色画素の分布が疎な部分に対応する閾値から順に変更することで、閾値選択の順序を様々に変えて肌色として検出する色の範囲を求めなくても、色相などの範囲を適切に絞り込むことができる。
【００４６】
図５は、肌色領域に含まれる肌色画素の分布の一例を示す図である。図５において、Hで示された軸は色相を表し、Vで表された軸は明度を表し、Sで表された軸は彩度を表す。そして分布５００に含まれる個々の点が、それぞれ、一つの肌色画素の色相、明度及び彩度を表す。また、Vmax、Vminは、それぞれ、肌色画素として検出するための明度の範囲の上限閾値及び下限閾値を表す。同様に、Smax、Sminは、それぞれ、肌色画素として検出するための彩度の範囲の上限閾値及び下限閾値を表す。
【００４７】
この例では、明度及び彩度の何れに関しても、上限より下限側の方が肌色画素の分布が疎である。そこで、条件変更部２５は、明度の上限の閾値Vmaxを下げるよりも、明度の下限の閾値Vminを高くする方が好ましい。同様に、条件変更部２５は、彩度の上限の閾値Smaxを下げるよりも、彩度の下限の閾値Sminを高くする方が好ましい。さらに、彩度の下限近傍よりも、明度の下限近傍の方が、肌色画素の分布は疎なので、条件変更部２５は、彩度の下限の閾値Sminを高くするよりも、明度の下限の閾値Vminを高くする方が好ましい。
【００４８】
なお、条件変更部２５は、上記の閾値のうちの何れか一つをランダムに選択してもよい。そして、条件変更部２５は、全ての閾値について（３）式または（４）式の何れかが満たされるまで、閾値の選択及び変更を繰り返してもよい。
【００４９】
条件変更部２５は、選択された閾値を、肌色画素として検出する色相、明度及び彩度の範囲を狭めるように、所定量だけ修正する。なお、所定量は、例えば、色相、明度及び彩度の範囲のうち、その閾値に対応する範囲の所定割合（例えば、1%〜3%）に相当する値、あるいは、予め定められた値（例えば、1〜5）とすることができる。
【００５０】
条件変更部２５は、変更後の仮の肌色検出条件を記憶部５に記憶するとともに、変更後の仮の肌色検出条件を肌色領域検出部２２に通知する。
【００５１】
設定部２６は、基準と評価値の差が許容範囲を超えると、それまでに求められた仮の肌色検出条件のうち、肌色として検出する色の範囲が最小となる仮の肌色検出条件を、ジェスチャ識別処理に利用する肌色検出条件とする。
【００５２】
上記のように、条件変更部２５が、色相、明度及び彩度の上限または下限の閾値を一つずつ所定の順序で選択し、選択した閾値に関して、（３）式または（４）式が満たされるまで、その閾値を変更し、その後に、他の閾値を選択して同様の処理を繰り返すとする。この場合、設定部２６は、閾値ごとに、（３）式または（４）式が満たされる直前の値を、その閾値とする。これにより、全ての閾値が得られたとき、得られた各閾値で規定される色の範囲が、それまでに求められた仮の肌色検出条件のうちで肌色として検出する、色の最小範囲となる。したがって、設定部２６は、それらの閾値で規定される色の範囲を、肌色検出条件とする。
【００５３】
図６は、肌色検出条件決定部１１により実行される、肌色検出条件決定処理の動作フローチャートである。
変換部２１は、サンプル画像の各画素の値をRGB表色系の値からHSV表色系の値に変換する（ステップＳ１０１）。そして変換部２１は、変換後のサンプル画像を記憶部５に記憶する。
【００５４】
肌色領域検出部２２は、現在設定されている仮の肌色検出条件を用いて、各画素の値がHSV表色系で表されたサンプル画像から肌色領域を検出する（ステップＳ１０２）。なお、１回目の肌色領域検出では、肌色領域検出部２２は、初期設定の肌色検出条件を利用する。そして肌色領域検出部２２は、検出された肌色領域に対して膨張収縮演算を実行して肌色領域を補正する（ステップＳ１０３）。
【００５５】
肌色検出条件決定部１１は、ステップＳ１０２で実行された肌色領域検出が、初期設定の肌色検出条件を利用する初回の肌色領域検出か否か判定する（ステップＳ１０４）。初回の肌色領域検出であれば（ステップＳ１０４−Ｙｅｓ）、評価値算出部２３は、基準値として肌色領域の面積A及び指の先端の位置の平均値Bを算出する（ステップＳ１０５）。
【００５６】
一方、ステップＳ１０４にて、初回の肌色領域検出でなければ（ステップＳ１０４−Ｎｏ）、評価値算出部２３は、評価値として、肌色領域の面積A'及び指の先端の位置の平均値B'を算出する（ステップＳ１０６）。そして判定部２４は、面積A'と面積の基準値Aと比較し、かつ、指の先端の位置の平均値B'を、指の先端の位置の平均値の基準値Bと比較することで、基準値と評価値の差が許容範囲内となるか否か判定する（ステップＳ１０７）。
【００５７】
ステップＳ１０５の後、あるいは、ステップＳ１０７にて基準値と評価値の差が許容範囲内となる場合（ステップＳ１０７−Ｙｅｓ）、肌色として検出する色の範囲を狭くできる可能性がある。そこで条件変更部２５は、仮の肌色検出条件により規定される、色相、明度及び彩度の範囲の上限または下限を表す閾値のうちの着目する閾値を、その範囲を狭くするように修正する（ステップＳ１０８）。そして肌色検出条件決定部１１は、ステップＳ１０２以降の処理を繰り返す。
【００５８】
一方、ステップＳ１０７にて、基準値と評価値の差が許容範囲を超える場合（ステップＳ１０７−Ｎｏ）、条件変更部２５は、全ての閾値についてステップＳ１０２〜Ｓ１０８の処理が終了したか否か判定する（ステップＳ１０９）。まだ着目されていない閾値がある場合（ステップＳ１０９−Ｎｏ）、条件変更部２５は、着目する閾値を変更する（ステップＳ１１０）。そして肌色検出条件決定部１１は、ステップＳ１０２以降の処理を繰り返す。
【００５９】
一方、全ての閾値についてステップＳ１０２〜Ｓ１０８の処理が終了している場合（ステップＳ１０９−Ｙｅｓ）、未着目の閾値は残っていない。そこで設定部２６は、基準値と評価値の差が許容範囲となる、それまでに設定された仮の肌色検出条件のうちで、肌色として検出する色の範囲が最小となる仮の肌色検出条件を特定する。そして設定部２６は、特定された仮の肌色検出条件を、ジェスチャ識別処理に利用する肌色検出条件とする（ステップＳ１１１）。そして肌色検出条件決定部１１は、肌色検出条件決定処理を終了する。
【００６０】
（ジェスチャ識別処理）
次に、肌色検出条件決定部１１により決定された肌色検出条件を利用したジェスチャ識別処理について説明する。
【００６１】
変換部１２は、撮像部３から画像を取得する度に、その画像の各画素の値を、RGB表色系の値からHSV表色系の値に変換する。そのために、変換部１２は、（１）式に従って、各画素の値を変換すればよい。そして変換部１２は、各画素の値がHSV表色系の値に変換された画像を肌色領域検出部１３に渡す。
なお、撮像部３が、各画素の値がHSV表色系で表されるカラー画像を生成する場合には、変換部１２は省略されてもよい。
【００６２】
肌色領域検出部１３は、変換部１２から、各画素の値がHSV表色系で表された画像を受け取る度に、その画像に対して肌色検出条件決定部１１により決定された肌色検出条件を適用して、肌色領域を検出する。
【００６３】
そのために、肌色領域検出部１３は、肌色検出条件決定部１１の肌色領域検出部２２と同様の処理を実行すればよい。すなわち、肌色領域検出部１３は、画像上の各画素のうち、色相H、明度V及び彩度Sの値が肌色検出条件で指定される色相、明度及び彩度の範囲内に含まれる値を持つ画素を、肌色画素として抽出すればよい。そして肌色領域検出部１３は、肌色画素と背景画素とがそれぞれ異なる画素値を持ち、肌色画素の集合が肌色領域を表す２値画像を生成し、その２値画像をジェスチャ判別部１４へ渡す。
【００６４】
ジェスチャ判別部１４は、肌色領域を表す２値画像が得られる度に、その２値画像に基づいて、ユーザのジェスチャを識別する。例えば、ジェスチャ判別部１４は、肌色領域からユーザの指の先端の位置を特定する。その際、ジェスチャ判別部１４は、例えば、肌色検出条件決定部１１の評価値算出部２３における指の先端の位置を検出する処理と同様の処理を行って、指の先端の位置を特定すればよい。そしてジェスチャ判別部１４は、複数の画像にわたって指の先端の位置を追跡することで、指の移動方向を表す移動方向ベクトルを求める。
【００６５】
ジェスチャ判別部１４は、移動方向ベクトルの水平成分が、垂直成分よりも大きく、かつ、移動方向ベクトルが左向きである場合、ユーザは手を左方向へ移動させるジェスチャを実行したと判定する。同様に、ジェスチャ判別部１４は、移動方向ベクトルの水平成分が、垂直成分よりも大きく、かつ、移動方向ベクトルが右向きである場合、ユーザは手を右方向へ移動させるジェスチャを実行したと判定する。
【００６６】
また、ジェスチャ判別部１４は、移動方向ベクトルの垂直成分が、水平成分よりも大きく、かつ、移動方向ベクトルが上向きである場合、ユーザは手を上方向へ移動させるジェスチャを実行したと判定する。同様に、ジェスチャ判別部１４は、移動方向ベクトルの垂直成分が、水平成分よりも大きく、かつ、移動方向ベクトルが下向きである場合、ユーザは手を下方向へ移動させるジェスチャを実行したと判定する。
ジェスチャ判別部１４は、手の移動方向をジェスチャとして操作信号生成部１５へ通知する。
【００６７】
変形例によれば、ジェスチャ判別部１４は、ユーザの手の移動方向と、撮像部３の撮影周期当たりのユーザの手の移動量との組み合わせを、ユーザが実行したジェスチャとして判別してもよい。
【００６８】
操作信号生成部１５は、ジェスチャ判別部１４により特定された、ユーザが実行したジェスチャに応じた操作信号を生成する。例えば、操作信号生成部１５は、記憶部５に記憶されている、ジェスチャと実行される操作との対応を表すジェスチャ操作対応テーブルを参照することにより、ジェスチャに応じた操作信号を生成する。
【００６９】
図７は、ジェスチャ識別装置１において起動中のアプリケーションにおいてウインドウのスクロールが可能な場合における、ジェスチャ操作対応テーブルの一例を示す図である。ジェスチャ操作対応テーブル７００において、左側の列の各欄には、ジェスチャが示されており、右側の列の各欄には、その欄の左側に隣接する欄に示されたジェスチャに応じた操作が示されている。例えば、ジェスチャが手の右方向への移動である場合、操作信号生成部１５は、ジェスチャ操作対応テーブル７００を参照して、表示中のウインドウを右方向へスクロールさせる操作信号を生成する。また、ジェスチャが手の上方向への移動である場合、操作信号生成部１５は、ジェスチャ操作対応テーブル７００を参照して、表示中のウインドウを上方向へスクロールさせる操作信号を生成する。
【００７０】
なお、ジェスチャに対応する操作は、ウインドウのスクロールに限定されない。例えば、表示部２の表示画面上に複数のアイコンが２次元状に並べて表示されている場合、手の各方向への移動は、選択されるアイコンをその方向に沿ってシフトさせる操作に対応してもよい。
【００７１】
また、ジェスチャが移動方向と移動量に基づいて判別される場合には、操作信号生成部１５は、移動方向と移動量の組み合わせに応じて操作を特定してもよい。例えば、手が下方向へ移動し、かつ、移動量が所定の閾値未満である場合には、操作信号生成部１５は、上記の実施形態と同様に、ウィンドウを下方向にスクロールさせる操作信号を生成する。一方、手が下方向へ移動し、かつ、移動量がその閾値以上である場合には、操作信号生成部１５は、起動中のアプリケーションを終了させる操作信号を生成してもよい。
【００７２】
操作信号生成部１５は、生成した操作信号を制御部６に渡す。そして制御部６は、操作信号に応じた処理を実行する。
【００７３】
以上に説明してきたように、本実施形態による肌色検出条件決定装置は、画像上での肌色を持つ被写体の大きさを表す基準値と肌色領域の大きさを表す評価値の差が許容範囲内に含まれる色の範囲のうちで、最小の色の範囲を肌色検出条件とする。そのため、この肌色検出条件決定装置は、画像から肌色を持つ被写体が写った領域を正確に検出できる、適切な肌色検出条件を設定することができる。そしてこの肌色検出条件決定装置を実装したジェスチャ識別装置は、適切な肌色検出条件を用いて画像からユーザの手を検出するので、ユーザの手の位置または動きなどを正確に特定できる。その結果として、このジェスチャ識別装置は、ユーザが実行したジェスチャを正確に識別できる。
【００７４】
なお、変形例によれば、肌色検出条件は、HSV表色系の代わりに、他の表色系、例えば、HLS表色系で表されたカラー画像に基づいて決定されてもよい。この場合には、肌色検出条件は、肌色として検出される、色相、彩度及び輝度の範囲を規定すればよい。そして肌色検出条件決定部１１は、上記の実施形態と同様に、初期設定された肌色検出条件にて検出された肌色領域の面積の変化量及び指の先端位置の変化量が許容範囲に収まる範囲内で、色相、彩度及び輝度の範囲を絞り込めばよい。
【００７５】
また、他の変形例によれば、肌色検出条件の絞り込みの際の終了条件が満たされるか否かの判定において、判定部２４は、（３）または（４）式のうちの何れか一方のみを利用してもよい。この場合には、肌色検出条件決定部１１は、上記の実施形態よりも、肌色検出条件の決定に要する演算量を削減できる。
【００７６】
さらに他の変形例によれば、肌色検出条件決定部１１は、条件変更部２５による閾値選択の順序を変更し、その順序ごとに上記の処理を行って、肌色検出条件を求めてよい。そして肌色検出条件決定部１１の設定部２６は、閾値選択の順序ごとに決定した肌色検出条件のうち、肌色として検出する色の範囲が最小となる肌色検出条件を、ジェスチャ識別に利用する肌色検出条件としてもよい。この場合には、演算量は増加するものの、肌色検出条件決定部１１は、閾値選択の順序によらずに、肌色として検出する色の範囲が最小となる肌色検出条件を決定できる。
【００７７】
また、肌色検出条件決定部１１の機能を実現するコンピュータは、ジェスチャ識別装置と独立していてもよい。この場合には、ジェスチャ識別装置には、肌色検出条件決定部１１の機能を実現するコンピュータにより決定された肌色検出条件が予め記憶されていればよい。さらにまた、上記の各実施形態またはその変形例による肌色検出条件決定処理は、ジェスチャ識別以外の用途に利用されてもよい。また、肌色を持つ被写体は、指を含む手に限らず、人の顔であってもよい。また、評価値及び基準値は肌色領域の面積、あるいは、肌色領域の縦または横の長さであってもよい。
【００７８】
上記の各実施形態またはその変形例による肌色検出条件決定処理に関する各機能をコンピュータに実現させるコンピュータプログラムは、磁気記録媒体あるいは光記録媒体といった、コンピュータによって読み取り可能な媒体に記録された形で提供されてもよい。ただし、このコンピュータによって読み取り可能な媒体には、搬送波は含まれない。
【００７９】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【００８０】
１    ジェスチャ識別装置
２    表示部
３    撮像部
４    記憶媒体アクセス装置
５    記憶部
６    制御部（肌色検出条件決定装置）
７    筐体
８    記憶媒体
１１    肌色検出条件決定部
１２    変換部
１３    肌色領域検出部
１４    ジェスチャ判別部
１５    操作信号生成部
２１    変換部
２２    肌色領域検出部
２３    評価値算出部
２４    判定部
２５    条件変更部
２６    設定部
【図２】
2015184906.tif 000006
【図３】
2015184906.tif 000007
【図５】
2015184906.tif 000008
【図６】
2015184906.tif 000009
【図７】
2015184906.tif 000010
【図１】
2015184906.tif 000011
【図４】
2015184906.tif 000012