以下、発明を実施するための形態(以下、本実施の形態という)について説明する。なお、説明は以下の順序で行う。
1. 本実施の形態(ユーザの手の形状を抽出する例)
2. 変形例
<1.本実施の形態>
[情報処理システム1の構成例]
図1は、本実施の形態である情報処理システム1の構成例を示している。
この情報処理システム1は、ユーザの手を用いたジェスチャ(又はポスチャ)に応じて所定の処理を実行するものであり、情報処理装置21、カメラ22、及び発光装置23により構成される。
情報処理システム1に対して所定の処理を実行させるため、ユーザは、(カメラ22のレンズ面の前で)自身の手の形状を変化させる。
このとき、情報処理システム1では、ユーザの手の形状を認識し、その認識結果に対応して所定の処理を実行する。
なお、本実施の形態では、ユーザは、カメラ22のレンズ面の前で手の形状を変化させるものとし、ユーザは、自身の手を、顔や胸等よりもカメラ22のレンズ面に近い位置に出してジェスチャ(又はポスチャ)を行うものとする。
情報処理装置21は、カメラ22及び発光装置23を制御する。また、情報処理装置21は、カメラ22の撮像により得られる撮像画像に基づいて、ユーザの手の形状を認識し、その認識結果に対応して所定の処理を実行する。
カメラ22は、ユーザ等の被写体の撮像に用いるレンズを有しており、そのレンズの前面は、可視光を遮断する可視光カットフィルタ22aにより覆われている。
このため、日光、或いは蛍光灯の赤外成分を除けば、カメラ22は、発光装置23によって被写体に照射される不可視光の反射光のみを受光し、その結果得られる撮像画像を、情報処理装置21に供給することになる。
すなわち、例えば、カメラ22は、発光装置23によって被写体に照射される不可視光である第1の波長の光(例えば、870[nm]の近赤外線)の反射光のみを受光し、その結果得られる第1の撮像画像を、情報処理装置21に供給する。
また、カメラ22は、発光装置23によって被写体に照射される不可視光であって、第1の波長とは異なる第2の波長の光(例えば、950[nm]の近赤外線)の反射光のみを受光し、その結果得られる第2の撮像画像を、情報処理装置21に供給する。
発光装置23は、第1の波長の光を発光するLED(light emitting diode)23a1及び23a2、並びに、第2の波長の光を発光するLED23b1及び23b2により構成される。
なお、以下において、LED23a1及び23a2を区別する必要がない場合には、LED23a1及び23a2を単にLED23aという。また、LED23b1及び23b2を区別する必要がない場合には、LED23b1及び23b2を単にLED23bという。
LED23aとLED23bとは、情報処理装置21の制御にしたがって交互に発光する。
また、第1の波長の光の反射光、及び第2の波長の光の反射光それぞれにおいて、カメラ22により受光される反射光の強度(光量)が同じになるように、LED23aとLED23bの出力は調整されている。
さらに、LED23aとLED23bとは、図1に示すように、交互に碁盤の目状に配置されており、LED23a及び23bの前面には、LED23a及び23bにより発光される光を均一に拡散させる拡散板23cが設けられている。これにより、被写体には、第1又は第2の波長の光がむらなく照射される。
なお、発光装置23は、LED23aやLED23bから発光される光が、少なくともユーザの手に確実に照射される位置に配置される。本実施の形態では、ユーザは、カメラ22のレンズ面の前で手の形状を変化させることから、発光装置23は、例えば、カメラ22と近接された状態で配置される。
[情報処理装置21の構成例]
図2は、情報処理装置21の構成例を示している。
情報処理装置21は、制御部41、2値化部42、肌抽出部43、閾値決定部44、マスク画像生成部45、及び形状抽出部46により構成される。
制御部41は、発光装置23を制御し、LED23aとLED23bとを交互に発光させる。
2値化部42には、カメラ22から、第1の撮像画像及び第2の撮像画像が供給される。2値化部42は、カメラ22から供給される第1及び第2の撮像画像に基づいて、第1の撮像画像から、ユーザの肌を表す肌領域と、肌領域以外の領域とを抽出(検出)する。
そして、2値化部42は、抽出した肌領域を構成する画素の画素値と、肌領域以外の領域を構成する画素の画素値とがそれぞれ異なる値(例えば、0と1)に2値化された2値化肌画像を生成し、肌抽出部43及び形状抽出部46に供給する。
肌抽出部43及びマスク画像生成部45には、カメラ22から第1の撮像画像が供給される。
肌抽出部43は、2値化部42から供給される2値化肌画像に基づいて、カメラ22からの第1の撮像画像から、2値化肌画像内の肌領域に対応する領域(ユーザの肌部分が表示された領域)を抽出する。
そして、肌抽出部43は、抽出した領域を含む肌画像を生成し、閾値決定部44に供給する。なお、肌抽出部43は、抽出した領域を肌画像として、閾値決定部44に供給するようにしてもよい。
閾値決定部44は、肌抽出部43からの肌画像に基づいて、肌画像(を構成する画素の輝度値)のヒストグラムを作成する。そして、閾値決定部44は、作成した肌画像のヒストグラムに基づいて、後述するマスク画像を生成するために用いられるマスク閾値を決定し、マスク画像生成部45に供給する。
マスク画像生成部45は、閾値決定部44からのマスク閾値に基づいて、カメラ22から供給される第1の撮像画像からマスク画像を生成し、形状抽出部46に供給する。
なお、マスク画像とは、第1の撮像画像内の領域のうち、マスク閾値により特定される輝度値の範囲に含まれる輝度値の画素により構成されるマスク領域と、それ以外の領域である非マスク領域とに2値化された画像をいう。
形状抽出部46は、マスク画像生成部45からのマスク画像に基づいて、2値化部42からの2値化肌画像から、マスク画像内のマスク領域に対応する領域として、例えばユーザの手の形状を表す形状領域を抽出する。
そして、形状抽出部46は、抽出した形状領域に基づいて、手の形状を認識し、その認識結果に応じた処理を行い、その処理結果を後段に出力する。
なお、2値化部42は、第1の撮像画像から、肌領域と、肌領域以外の領域を抽出するようにしたが、第2の撮像画像から、肌領域と、肌領域以外の領域を抽出するようにしてもよい。この場合、肌抽出部43及びマスク画像生成部45には、第1の撮像画像に代えて、カメラ22から、第2の撮像画像が供給される。
そして、肌抽出部43は、第2の撮像画像から肌画像を生成し、マスク画像生成部45は、第2の撮像画像からマスク画像を生成することとなる。
[2値化肌画像の生成]
次に、図3乃至図5を参照して、2値化部42が、2値化肌画像を生成する処理の詳細を説明する。
なお、図3及び図4では、カメラ22の撮像により得られる第1の撮像画像、及び第2の撮像画像について説明する。また、図5では、第1の撮像画像、及び第2の撮像画像に基づいて、2値化部42により生成される2値化肌画像について説明する。
図3は、波長の異なる照射光に対する人間の肌の反射特性を示している。
なお、この反射特性は、人間の肌の色の違い(人種の違い)や状態(日焼け等)等に拘らず、一般性があるものである。
図3において、横軸は、人間の肌に照射する光の波長を示しており、縦軸は、人間の肌に照射された光の反射率を示している。
人間の肌に照射された光の反射率は、800[nm]付近をピークとして、900[nm]付近から急激に減少し、1000[nm]付近を極小値として再び上昇することが知られている。
具体的には、例えば、図3に示されるように、人間の肌に対して、870[nm]の光を照射して得られる反射光の反射率は63[%]であり、950[nm]の光を照射して得られる反射光の反射率は50[%]である。
これは、人間の肌について特有のものであり、人間の肌以外の物体(例えば、頭髪や衣服等)では、800乃至1000[nm]付近において、反射率の変化は緩やかとなっていることが多い。
次に、図4を参照して、カメラ22の撮像により得られる第1及び第2の撮像画像を説明する。
図4は、ユーザに照射される870[nm]の光の反射光を受光して得られる第1の撮像画像、及びユーザに照射される950[nm]の光の反射光を受光して得られる第2の撮像画像それぞれの一例を示している。
図4Aには、ユーザの肌領域として、ユーザの顔61及び手62が表示されており、ユーザの肌領域以外の領域として、ユーザが着用しているシャツ63、及び背景64が表示された第1の撮像画像が示されている。
また、図4Bには、ユーザの肌領域として、ユーザの顔81及び手82が表示されており、ユーザの肌領域以外の領域として、ユーザが着用しているシャツ83、及び背景84が表示された第2の撮像画像が示されている。
ここで、図3において上述したように、ユーザの肌部分における反射特性では、波長が870[nm]の光の反射率は、波長が950[nm]の光の反射率よりも大きくなっている。
したがって、870[nm]の光をユーザに照射する場合、カメラ22のレンズには、ユーザの肌部分に照射された光の反射光として、950[nm]の光を照射する場合の反射光の明るさよりも明るい光が入射される。
このため、第1の撮像画像内の、ユーザの肌領域(顔61及び手62)を構成する画素の輝度値は、それぞれ、第2の撮像画像内の、ユーザの肌領域(顔81及び手82)を構成する画素の輝度値よりも大きな値となる。
したがって、第1の撮像画像内の、ユーザの肌領域を構成する画素の輝度値から、第2の撮像画像内の、対応するユーザの肌領域を構成する画素の輝度値それぞれを差し引いて得られる差分は、正の値となる。
これに対して、ユーザの肌部分以外の部分における反射特性では、波長が870[nm]の光の反射率は、波長が950[nm]の光の反射率と変わらないか、それよりも小さくなっていることが多い。
したがって、870[nm]の光をユーザに照射する場合、カメラ22のレンズには、ユーザの肌部分以外の部分に照射された光の反射光として、950[nm]の光を照射する場合の反射光の明るさと同じ明るさの光か、それよりも暗い光が入射される。
このため、第1の撮像画像内の、ユーザの肌領域以外の領域(シャツ63及び背景64)を構成する画素の輝度値は、それぞれ、第2の撮像画像内の、ユーザの肌領域以外の領域(シャツ83及び背景84)を構成する画素の輝度値と同じ値か、その値よりも小さい値となる。
したがって、第1の撮像画像内の、ユーザの肌部分以外の部分を構成する画素の輝度値から、第2の撮像画像内の、対応するユーザの肌部分の部分を構成する画素の輝度値それぞれを差し引いて得られる差分は、値0以下の値(正でない値)となる。
このため、2値化部42は、第1の撮像画像と第2の撮像画像との、対応する画素の輝度値どうしの差分を算出し、算出した差分に基づいて、ユーザの肌領域と、ユーザの肌領域以外の領域とを抽出する。そして、2値化部42は、抽出したユーザの肌領域を値1とし、抽出したユーザの肌領域以外の領域を値0とした2値化肌画像を生成する。
すなわち、例えば、2値化部42は、算出した差分が正である場合、対応する画素をユーザの肌領域を構成する画素として抽出し、算出した差分が正でない場合、対応する画素をユーザの肌領域以外の領域を構成する画素として抽出する。
そして、2値化部42は、ユーザの肌領域を構成する画素として抽出した画素の値を1に設定し、ユーザの肌領域以外の領域を構成する画素として抽出した画素の値を0に設定することにより、2値化肌画像を生成し、肌抽出部43及び形状抽出部46に供給する。
なお、ユーザの肌部分以外の部分における反射率によっては、肌部分以外の部分において算出された差分が、肌部分において算出された差分よりは小さいものの、正の値となることが生じ得る。したがって、差分が正であっても、所定の閾値未満である場合には、ユーザの肌部分以外の部分であるとして、値0を設定するように構成することが望ましい。
また、2値化部42は、第1の撮像画像と第2の撮像画像との、対応する画素の輝度値どうしの差分絶対値を算出し、算出した差分絶対値が所定の閾値以上であるか否かに基づいて、ユーザの肌部分(肌領域)と、それ以外の部分(肌領域以外の領域)とを抽出して、2値化肌画像を生成するようにしてもよい。
これは、反射特性により、ユーザの肌部分に対応する差分絶対値は比較的大きな値となり、ユーザの肌部分以外の部分に対応する差分絶対値は比較的小さな値となることを利用している。
次に、図5は、2値化部42により生成される2値化肌画像の一例を示している。
図5に示す2値化肌画像において、黒色で示す部分は、値1で表される肌領域を示している。この肌領域は、ユーザの顔の肌部分を示す顔領域101、及びユーザの手の肌部分を示す手領域102により構成されている。
なお、図面の都合上、図5に示す顔領域101には、顔の肌部分の他、眉毛や目、髪の毛等も記載しているが、実際には、顔領域101は、顔の肌部分のみにより構成される。
さらに、図5に示す2値化肌画像において、白色で示す部分は、値0で表される、肌領域以外の領域を示している。
2値化部42は、生成した2値化肌画像を、肌抽出部43及び形状抽出部46に供給する。
肌抽出部43は、2値化部42からの2値化肌画像に基づいて、カメラ22から供給される第1の撮像画像から、2値化肌画像内の顔領域101及び手領域102に対応する領域(顔61と手62とが表示された領域)を抽出する。そして、肌抽出部43は、抽出した領域を含む肌画像を生成する。
[肌画像の生成]
次に、図6を参照して、肌抽出部43が、2値化部42からの2値化肌画像に基づいて、第1の撮像画像から肌画像を生成する処理を説明する。
図6は、肌抽出部43により抽出される肌画像の一例を示している。図6に示す肌画像には、ユーザの顔61及び手62が表示されている。
なお、図面の都合上、図6に示す肌画像には、ユーザの顔61として、顔の肌部分の他、眉毛や目、髪の毛等も記載しているが、実際には、図6に示す顔61は、顔の肌部分のみを表している。
肌抽出部43は、2値化部42からの2値化肌画像と、カメラ22からの第1の撮像画像との対応する画素の輝度値どうしを、それぞれ乗算する。
そして、肌抽出部43は、第1の撮像画像を構成する画素のうち、その乗算結果が0でない画素により構成される領域(顔61と手62とが表示された領域)を抽出し、抽出した領域を含む肌画像を生成する。
これにより、第1の撮像画像内の領域のうち、2値化肌画像の顔領域101に対応する領域に含まれる顔61、及び2値化肌画像の手領域102に対応する領域に含まれる手62については、そのまま抽出され、2値化肌画像の肌領域以外の領域に対応する領域(図6において白色で示す)については、その輝度値が値255とされて、第1の撮像画像から、図6に示すような肌画像が生成される。
肌抽出部43は、生成した肌画像を、閾値決定部44に供給する。
閾値決定部44は、肌抽出部43からの肌画像に基づいて、マスク画像を生成するために用いられるマスク閾値を決定する。
[マスク閾値の決定]
次に、図7を参照して、閾値決定部44がマスク閾値を決定する処理の詳細を説明する。
図7は、肌画像のヒストグラムの一例を示している。
図7において、横軸は、肌画像を構成する画素の輝度値を示している。また、縦軸は、横軸の輝度値に対応する画素の画素数を示している。
なお、図7のヒストグラムにおいて、本来ならば、図6の肌画像において、白色部分で表された領域を構成する画素の輝度値255についての画素数も表示されるが、輝度値255についての画素数は、マスク閾値を決定するために用いられないため、図示を省略している。
閾値決定部44は、肌抽出部43からの肌画像を構成する画素の輝度値について、図7に示されたようなヒストグラムを作成する。
図7のヒストグラムでは、輝度値0から輝度値54までの間と、輝度値55から輝度値110までの間に、多くの画素数が偏って表示されている。
ところで、上述したように、カメラ22から近い位置に手が存在し、カメラ22から遠い位置に顔や胸等が存在することを前提としている。
また、例えば、発光装置23のLED23a及びLED23bは、カメラ22に近接した状態で発光するため、カメラ22(発光装置23)から近い位置に存在するユーザの部位(いまの場合、手)ほど輝度値が大きくなり、カメラ22から遠い位置に存在するユーザの部位(いまの場合、顔等)ほど輝度値が小さくなる。
したがって、カメラ22から近い位置に存在する手の肌部分を構成する画素の輝度値は、カメラ22から遠い位置に存在する顔の肌部分を構成する画素の輝度値よりも大きな値となる。
このため、輝度値0から輝度値54まで輝度値は、顔61(の領域)を構成する画素の輝度値であり、輝度値55から輝度値110まで輝度値は、手62を構成する画素の輝度値である。
閾値決定部44は、画素数が極小となるときの輝度値(この例では輝度値55)を下限閾値Th_Lに決定するとともに、最大の輝度値(この例では輝度値110)を上限閾値Th_Hに決定する。
そして、閾値決定部44は、決定した下限閾値Th_L及び上限閾値Th_Hを、マスク閾値として、マスク画像生成部45に供給する。
マスク画像生成部45は、閾値決定部44からのマスク閾値(下限閾値Th_L及び上限閾値Th_H)に基づいて、カメラ22からの第1の撮像画像から、マスク領域と非マスク領域とを検出し、検出したマスク領域と非マスク領域とが、それぞれ異なる値に2値化されたマスク画像を生成する。
[マスク画像の生成]
次に、図8を参照して、マスク画像生成部45が、閾値決定部44からのマスク閾値に基づいて、マスク画像を生成する処理の詳細を説明する。
図8はマスク画像の一例を示している。図8に示すマスク画像において、黒色で示されるマスク領域121は、対応する第1の撮像画像内の領域において、輝度値が下限閾値Th_L以上であって、上限閾値Th_H以下である領域を示している。
また、図8に示すマスク画像において、白色で示される非マスク領域は、対応する第1の撮像画像内の領域において、下限閾値Th_L未満であるか、又は、上限閾値Th_Hよりも大きいである領域を示している。
マスク画像生成部45は、カメラ22からの第1の撮像画像を構成する画素の輝度値が、下限閾値Th_L以上であって、上限閾値Th_H以下である場合には、その輝度値の画素をマスク領域に含まれる画素として検出し、その輝度値を値1に変換する。
また、マスク画像生成部45は、カメラ22からの第1の撮像画像を構成する画素の輝度値が、下限閾値Th_L未満であるか、又は、上限閾値Th_Hよりも大きいである場合には、その輝度値の画素を非マスク領域に含まれる画素として検出し、その輝度値を値0に変換する。
これにより、マスク画像生成部45は、値1を有する画素により構成されるマスク領域121(黒色で示す)と、値0を有する画素により構成される非マスク領域(白色で示す)とにより構成されるマスク画像を生成し、形状抽出部46に供給する。
形状抽出部46は、マスク画像生成部45からのマスク画像に基づいて、2値化部42からの2値化肌画像内の顔領域101及び手領域102から、マスク画像内のマスク領域121に対応する領域として、例えばユーザの手の形状を表す形状領域を抽出する。
[手の形状の抽出]
次に、図9を参照して、形状抽出部46が、2値化肌画像から、ユーザの手の形状等を抽出する処理の詳細を説明する。
図9は、形状抽出部46により抽出される形状領域を含む抽出画像の表示例を示している。
図9に示す抽出画像において、形状領域141は、ユーザの手の形状を表している。
形状抽出部46は、マスク画像生成部45からのマスク画像を構成する画素の値と、対応する、2値化部42からの2値化肌画像を構成する画素の値とを、それぞれ乗算する。
そして、形状抽出部46は、その乗算結果が0でない2値化肌画像内の領域、すなわち、2値化肌画像内の顔領域101及び手領域102(図5)のうち、マスク画像内のマスク領域121(図8)と重なる部分を、形状領域141として抽出する。
また、形状抽出部46は、抽出した形状領域141に基づいて、ユーザの手の形状を認識し、その認識結果に応じた処理を行う。
なお、図8に示されたマスク画像内のマスク領域121には、ユーザの手の他、ユーザが着用しているシャツが含まれている。
しかしながら、2値化肌画像内の顔領域101及び手領域102には、ユーザが着用しているシャツは含まれないため、形状抽出部46では、シャツの形状を表す領域を抽出することなく、手の形状のみを表す形状領域141を正確に抽出することができる。
[形状抽出処理の動作説明]
次に、情報処理システム1が、ユーザの手の形状等を抽出する形状抽出処理の詳細を説明する。
図10は、形状抽出処理を説明するためのフローチャートである。なお、この形状抽出処理は、情報処理システム1の電源がオンされたときから繰り返し実行される。
以下、ユーザが、カメラ22の前に存在するときに行われた形状抽出処理について説明する。
ステップS1において、制御部41は、発光装置23のLED23aを制御し、第1の波長の光の発光を開始させる。なお、制御部41は、LED23bが発光している場合には、LED23bの発光を停止した上で、LED23aの発光を開始させる。
ステップS2において、カメラ22は、第1の波長の光が照射されているユーザを撮像し、その結果得られる第1の撮像画像を、情報処理装置21に供給する。
ステップS3において、制御部41は、発光装置23のLED23aを制御し、第1の波長の光の発光を停止させ、発光装置23のLED23bを制御し、第2の波長の光の発光を開始させる。
ステップS4において、カメラ22は、第2の波長の光が照射されているユーザを撮像し、その結果得られる第2の撮像画像を、情報処理装置21に供給する。
ステップS5において、2値化部42は、カメラ22から供給される第1の撮像画像と第2の撮像画像との対応する画素の輝度値どうしの差分に基づいて、図5に示したような2値化肌画像を生成し、肌抽出部43及び形状抽出部46に供給する。
ステップS6において、肌抽出部43は、2値化部42から供給される2値化肌画像に基づいて、カメラ22からの第1の撮像画像から、2値化肌画像内の肌領域に対応する領域(ユーザの肌部分が表示された領域)を抽出する。
そして、肌抽出部43は、抽出した領域を含む肌画像を生成し、閾値決定部44に供給する。
ステップS7において、閾値決定部44は、肌抽出部43からの肌画像を構成する画素の輝度値に基づいて、図7に示したような肌画像のヒストグラムを作成する。
ステップS8において、閾値決定部44は、作成した肌画像のヒストグラムに基づいて、画素数が極小となるときの輝度値を下限閾値Th_Lに決定するとともに、最大の輝度値を上限閾値Th_Hに決定する。
そして、閾値決定部44は、決定した下限閾値Th_L及び上限閾値Th_Hを、マスク閾値として、マスク画像生成部45に供給する。
ステップS9において、マスク画像生成部45は、閾値決定部44からのマスク閾値(下限閾値Th_L及び上限閾値Th_H)に基づいて、カメラ22からの第1の撮像画像を2値化して、図8に示したようなマスク画像を生成し、形状抽出部46に供給する。
ステップS10において、形状抽出部46は、マスク画像生成部45からのマスク画像に基づいて、2値化部42からの2値化肌画像から、マスク画像内のマスク領域に対応する領域として、例えばユーザの手の形状を表す抽出領域を抽出する。
そして、形状抽出部46は、抽出した抽出領域により手の形状を認識し、その認識結果に応じた処理を行い、その処理結果を後段に出力する。
以上で形状抽出処理は終了される。
以上説明したように、形状抽出処理では、マスク閾値に基づいて、1台のカメラ22により撮像された第1の撮像画像からマスク画像を生成し、生成したマスク画像に基づいて、2値化肌画像から、ユーザの手の形状を抽出するようにした。
したがって、例えば、複数のカメラにより撮像された複数の撮像画像に基づいて、カメラとユーザの手等との距離を表す距離画像を生成し、その距離画像をマスク画像として用いて、ユーザの手の形状を抽出する場合と比較して、マスク画像を生成するために要する計算量を少なくすることができるとともに、より少ない部品数で、ユーザの手の形状等を抽出することが可能となる。
また、形状抽出処理では、カメラ22からユーザの顔までの距離と、カメラ22から手までの距離の違いに基づいて、肌部分として、顔の肌部分が含まれずに、手の肌部分のみが含まれるマスク領域121と、非マスク領域からなるマスク画像を生成するようにした。
このため、2値化肌画像において、抽出すべき手を含む手領域102と、手以外の肌部分である顔を含む顔領域101が重なっている場合でも、マスク領域121には、肌部分として、顔の肌部分は含まれずに手の肌部分のみが含まれるため、2値化肌画像から、手領域102のみを抽出することができる。
よって、正確に、ユーザの手の形状を抽出することが可能となる。
さらに、形状抽出処理では、LED23a及びLED23bから、人間には見ることができない不可視な近赤外線(の光)を発光させるようにした。
したがって、ユーザは、LED23a及びLED23bから発光される光を視認することができないため、LED23a及びLED23bから発光される光が眩しいことにより、ユーザに不愉快な思いをさせることがない。
また、情報処理システム1の発光装置23において、LED23a及びLED23bの前面に拡散板23cを設けるようにした。
このため、LED23a及び23bにより発光される不可視光が均一に拡散されるため、光量によるむらのない均一な光が被写体に照射される。
これにより、被写体に照射される不可視光の反射光が、光量によるむらのない均一な光としてカメラ22により受光されるため、カメラ22において、光量によるむらのない第1及び第23の撮像画像を得ることができる。
したがって、情報処理システム1では、手の形状等を抽出するために、光量によるむらのない第1及び第2の撮像画像を用いるため、例えば、光量によるむらのある第1及び第2の撮像画像を用いる場合と比較して、より正確に手の形状等を抽出することが可能となる。
なお、情報処理システム1では、ユーザが手の形状を変化させる毎に、変化後の手の形状を認識することができるように、例えば、形状抽出処理を開始したときから80[ms]程度で手の形状を抽出できるように構成することが望ましい。
<2.変形例>
上述した形状抽出処理では、形状抽出処理が行われる毎に、ステップS6乃至ステップS8の処理により、肌画像を抽出し、抽出した肌画像のヒストグラムに基づいて、マスク閾値(下限閾値Th_L及び上限閾値Th_H)を決定するようにしたが、これに限定されない。
すなわち、例えば、形状抽出処理では、形状抽出処理が行われた場合に、以前のステップS6乃至ステップS8において決定したマスク閾値をそのまま用いるようにしてもよい。
この場合、ステップS6乃至ステップS8による処理を省略することができるため、形状抽出処理による手の形状等の抽出を迅速に行うことが可能となる。
また、形状抽出処理を行う前に、ステップS6乃至ステップS8による処理と同様の処理を行うことにより、予めマスク閾値を決定するようにしておいても、形状抽出処理において、ステップS6乃至ステップS8による処理を省略することが可能となる。
なお、形状抽出処理を行う前に、予めマスク閾値を決定する処理として、その他、例えば、ユーザの手領域を構成する画素の輝度値の平均値に基づいて、マスク閾値を決定することが可能である。
[マスク閾値の決定方法]
次に、図11を参照して、閾値決定部44が、ユーザの手領域を構成する画素の輝度値の平均値に基づいて、マスク閾値を決定するFFT(fast fourier transform、高速フーリエ変換)閾値決定処理を説明する。
図11は、870[nm]の光が照射されているユーザを撮像して得られる第1の撮像画像の一例を示している。
なお、FFT閾値決定処理を行う場合、閾値決定部44には、手を振っているユーザをカメラ22により撮像して得られる、複数の第1の撮像画像が、カメラ22から供給される。
閾値決定部44は、複数の第1の撮像画像に対して、FFT処理を行い、一定の周波数で動いている、第1の撮像画像内の手領域を検出する。
そして、閾値決定部44は、検出した手領域の一部である矩形領域161を構成する画素の輝度値の平均値ave_Lを算出する。
また、閾値決定部44は、平均値ave_Lから調整値aを差し引いて得られる値ave_L-aを、下限閾値Th_Lに決定し、平均値ave_Lから調整値bを加算して得られる値ave_L+bを、上限閾値Th_Hに決定する。
なお、調整値a及びbは、平均値ave_Lを調整して、下限閾値Th_L及び上限閾値Th_Hを決定するために用いられる値である。
この調整値a及びbは、LED23aや23bから発光される光の強度(光量)、カメラ22からユーザまでの距離、及びカメラ22に用いられるCCD(charge coupled device image sensor)による光の感度に応じて算出される変数であるが、実際には、実験的に算出されることが多い。
[FFT閾値決定処理による動作説明]
次に、閾値決定部44が、ユーザの手領域を構成する画素の輝度値の平均値に基づいて、マスク閾値を決定するFFT閾値決定処理を説明する。
図12は、FFT閾値決定処理を説明するためのフローチャートである。このFFT閾値決定処理は、例えば、情報処理システムの電源をオンしたときであって、形状抽出処理が行われる前に開始される。
ステップS31において、制御部41は、発光装置23のLED23aを制御し、第1の波長の光の発光を開始させる。
ステップS32において、制御部41は、情報処理装置21に設けられた図示せぬディスプレイやスピーカ等を制御して、ユーザに手を振る動作の開始を指示する。
ステップS33において、カメラ22は、手を振る動作を行っているユーザを撮像し、その結果得られる複数の第1の撮像画像を、情報処理装置21の閾値決定部44に供給する。
ステップS34において、閾値決定部44は、複数の第1の撮像画像に対して、FFT処理を行い、一定の周波数で動いている、第1の撮像画像内の手領域を検出する。
ステップS35において、閾値決定部44は、検出した手領域の一部である矩形領域161を構成する画素の輝度値の平均値ave_Lを算出する。
ステップS36、閾値決定部44は、平均値ave_Lから調整値aを差し引いて得られる値ave_L-aを、下限閾値Th_Lに決定し、平均値ave_Lから調整値bを加算して得られる値ave_L+bを、上限閾値Th_Hに決定する。
以上でFFT閾値決定処理は終了される。FFT閾値決定処理では、上述したように、形状抽出処理が行われる前に、マスク閾値を決定するようにしたので、形状抽出処理において、ステップS6乃至ステップS8の処理を省略でき、より迅速に手の形状等を抽出することが可能となる。
なお、FFT閾値決定処理では、複数の第1の撮像画像に対して、FFT処理を行うことにより、第1の撮像画像内の手領域を検出し、その手領域内の画素を構成する輝度値の平均値に基づいてマスク閾値(下限閾値Th_L及び上限閾値Th_H)を決定するようにしたが、これに限定されない。
すなわち、例えば、FFT閾値決定処理では、手を振っているユーザをカメラ22により撮像して得られる、複数の第2の撮像画像に対して、FFT処理を行うことにより、第2の撮像画像内の手領域を検出し、その手領域内の画素を構成する輝度値の平均値に基づいてマスク閾値を決定するようにしてもよい。
本実施の形態において、2値化部42は、第1の撮像画像から、ユーザの肌領域、及びユーザの肌領域以外の領域を抽出し、抽出した肌領域、及び肌領域以外の領域により構成される2値化肌画像を、肌抽出部43及び形状抽出部46に供給するようにしたが、これに限定されない。
すなわち、例えば、2値化部42は、第1の撮像画像から、ユーザの肌領域を抽出し、少なくとも、抽出した肌領域を含む2値化肌画像を、肌抽出部43及び形状抽出部46に供給するようにしてもよい。
この場合、肌抽出部43は、カメラ22からの第1の撮像画像から、2値化部42からの2値化肌画像に含まれる肌領域に対応する領域を抽出する。また、形状抽出部46は、2値化部42からの2値化肌画像に含まれる肌領域から、形状領域を抽出する。
本実施の形態において、マスク画像生成部45は、例えば第1の撮像画像から、マスク領域及び非マスク領域を検出し、検出したマスク領域及び非マスク領域により構成されるマスク画像を生成するようにしたが、これに限定されない。
すなわち、例えば、マスク画像生成部45は、2値化肌画像から形状領域を抽出するための抽出用領域として、マスク領域のみを検出し、少なくとも、検出したマスク領域を含むマスク画像を生成するようにしてもよい。この場合、形状抽出部46では、2値化部42からの2値化肌画像内の肌領域のうち、マスク画像内のマスク領域に対応する領域が、形状領域として抽出される。
また、例えば、マスク画像生成部45は、抽出用領域として、非マスク領域のみを検出し、少なくとも、検出した非マスク領域を含むマスク画像を生成するようにしてもよい。この場合、形状抽出部46では、2値化部42からの2値化肌画像内の肌領域のうち、マスク画像内の非マスク領域以外の領域に対応する領域が、形状領域として抽出される。
[カメラ22、LED23a、及びLED23bの性能]
次に、図13及び図14を参照して、本出願人が、実際に形状抽出処理及びFFT閾値決定処理を行ったときの、情報処理システム1を構成するカメラ22や発光装置23の性能を説明する。
本出願人は、カメラ22として、ソニー株式会社により製造されたビデオカメラを用いた。そのカメラ22は、型番がXC-EI50であり、撮像素子として、1/2IT方式のCCDを用いている。
また、有効画素数は横×縦が768×494画素であり、レンズマウントとしてCマウント、走査方式として、525本のラインをインタレースにより走査する方式を採用している。
さらに、感度はF11(400[lx])であり、最低被写体深度は0.1[lx]である。また、カメラ22の撮像により得られる撮像画像のS/N(signal to noise)比は60[dB]である。
さらに、カメラ22において、カメラ22に予め設けられたシャッタボタン(ノーマルシャッタ)によるシャッタ速度は、1/100乃至1/10000[sec]であり、カメラ22の外部に接続されたレリーズスイッチ(外部トリガシャッタ)によるシャッタ速度は、1/4乃至1/10000[sec]である。
また、カメラ22の外形寸法は、幅×高さ×奥行きが29×29×32[mm]であり、カメラ22の重量は約50[g]である。さらに、カメラ22の耐振動性は、70[G]である。
また、カメラ22は、400[nm]の可視光領域から、1000[nm]の近赤外領域までの帯域の範囲内の感度を有する。
図13は、カメラ22の相対感度特性の一例を示している。
なお、図13において、横軸は、カメラ22のレンズに入射される波長を示しており、縦軸は、波長に対応する相対感度を示している。
また、本出願人は、発光装置23として、図14に示されるように、8個のLED23a、及び8個のLED23bを、互いに碁盤の目状に配置したものを用いた。
本出願人により実際に用いられたLED23aとしては、870[nm]の光を発光するものを用いるとともに、LED23bとしては、950[nm]の光を発光するものを用いた。
さらに、LED23a及びLED23bとして、直流順電流(絶対最大定格)が100[mA]であって、順電圧が1.6[V]であるものを用いた。
本出願人は、上述した性能のカメラ22や、図14に示されたように配置されたLED23a及びLED23bを用いて、形状抽出処理やFFT閾値決定処理を実際に行い、上述した顕著な作用効果を確認することができた。
本実施の形態では、マスク画像生成部45は、閾値決定部44からのマスク閾値に基づいて、カメラ22からの第1の撮像画像から、マスク画像を生成するようにしたが、マスク画像の生成方法はこれに限定されない。
すなわち、例えば、マスク画像生成部45は、それぞれ異なる方向を撮像する複数のカメラにより得られる撮像画像に基づいて、カメラからユーザまでの距離を表す距離画像を生成するステレオ処理を行い、その結果得られる距離画像をマスク画像として採用することが可能である。
この場合、形状抽出部46は、マスク画像生成部45から供給される距離画像内の、カメラから手までの距離を表す領域と、2値化部42から供給される2値化肌画像内の顔領域101及び手領域102とが重なり合う部分を、ユーザの手の形状を表す形状領域141として抽出する。
また、マスク画像として、距離画像を生成する方法としては、ステレオ処理の他、赤外線等を照射したときから、ユーザに反射して戻ってくるまでの時間に基づいてユーザまでの距離を算出するレーザレンジファインダ等を用いて、ユーザの距離画像を生成することが可能である。
さらに、本実施の形態では、LED23aにより発光される第1の波長を870[nm]とし、LED23bにより発光される第2の波長を950[nm]としたが、波長の組合せはこれに限定されない。
すなわち、波長の組合せとしては、第1の波長における反射率と、第2の波長における反射率との差分絶対値が、ユーザの肌以外のものについて得られる反射率の差分絶対値と比較して、充分に大きくなる組合せであれば、どのような組合せでもよい。具体的には、図3から明らかなように、例えば、870[nm]と950[nm]との組合せの他、800[nm]と950[nm]との組合せ、870[nm]と1000[nm]との組合せ、800[nm]と1000[nm]との組合せ等が可能である。
なお、LED23aから発光される光として、可視光を用いる場合には、可視光カットフィルタ22aに代えて、LED23aから発光される可視光のみを通過させて、カメラ22のレンズに入射させるフィルタが用いられる。これは、LED23bについても同様のことがいえる。
また、本実施の形態において、形状抽出処理では、LED23a及びLED23bを、それぞれ個別に発光させるようにしたが、LED23a及びLED23bを同時に発光させることにより、第1の撮像画像、及び第2の撮像画像を取得するように構成することが可能である。
すなわち、例えば、カメラ22に代えて、カメラ22と同様の機能を有する2台のカメラを近接させた状態で設けるようにし、2台のカメラのうち、一方のカメラの前面には、第1の波長の光のみを通過させるフィルタを設けるとともに、他方のカメラの前面には、第2の波長の光のみを通過させるフィルタを設けるように構成する。
この場合、LED23a及びLED23bを同時に発光させたとしても、一方のカメラには、第1の波長の光のみが入射されることから、一方のカメラにおいて、第1の撮像画像を得ることが可能となる。また、他方のカメラには、第2の波長の光のみが入射されることから、他方のカメラにおいて、第2の撮像画像を得ることが可能となる。
本実施の形態において、LED23aの個数及びLED23bの個数は、それぞれ、2個であるとして説明したが、それらの個数は、これに限定されない。
また、本実施の形態において、情報処理装置21に所定の処理を実行させるために、ユーザの身体の部位を表すオブジェクトとして、手(の形状)を変化させるようにしたが、オブジェクトは手の他、例えばユーザの足等を採用することが可能である。
ところで、上述した一連の処理は、専用のハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、いわゆる組み込み型のコンピュータ、又は、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータ等に、記録媒体からインストールされる。
[コンピュータの構成例]
次に、図15は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成例を示している。
CPU(Central Processing Unit)201は、ROM(Read Only Memory)202、又は記憶部208に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)203には、CPU201が実行するプログラムやデータ等が適宜記憶される。これらのCPU201、ROM202、及びRAM203は、バス204により相互に接続されている。
CPU201にはまた、バス204を介して入出力インタフェース205が接続されている。入出力インタフェース205には、キーボード、マウス、マイクロホン等よりなる入力部206、ディスプレイ、スピーカ等よりなる出力部207が接続されている。CPU201は、入力部206から入力される指令に対応して各種の処理を実行する。そして、CPU201は、処理の結果を出力部207に出力する。
入出力インタフェース205に接続されている記憶部208は、例えばハードディスクからなり、CPU201が実行するプログラムや各種のデータを記憶する。通信部209は、インターネットやローカルエリアネットワーク等のネットワークを介して外部の装置と通信する。
また、通信部209を介してプログラムを取得し、記憶部208に記憶してもよい。
入出力インタフェース205に接続されているドライブ210は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリ等のリムーバブルメディア211が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータ等を取得する。取得されたプログラムやデータは、必要に応じて記憶部208に転送され、記憶される。
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを記録(記憶)する記録媒体は、図15に示すように、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory),DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini-Disc)を含む)、もしくは半導体メモリ等よりなるパッケージメディアであるリムーバブルメディア211、又は、プログラムが一時的もしくは永続的に格納されるROM202や、記憶部208を構成するハードディスク等により構成される。記録媒体へのプログラムの記録は、必要に応じてルータ、モデム等のインタフェースである通信部209を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線又は無線の通信媒体を利用して行われる。
なお、本明細書において、上述した一連の処理を記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
また、本明細書において、システムとは、複数の装置により構成される装置全体を表すものである。
なお、本発明の実施の形態は、上述した本実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。