以下に本発明の実施の形態を説明するが、本発明の構成要件と、発明の詳細な説明に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、発明の詳細な説明に記載されていることを確認するためのものである。従って、発明の詳細な説明中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
すなわち、本発明の一側面の画像処理装置は、画像に含まれる遊技者の手の手形状により、前記遊技者の入力情報を受け付ける画像処理装置であって、前記画像内に含まれる手の指先の座標位置を取得する指先座標取得手段(例えば、図4の指先位置計算部63)と、前記画像を複数のエリアに区分するとき、前記指先座標取得手段により取得された指先座標が属するエリアのパターンをエリアパターンとして認識するエリアパターン認識手段(例えば、図4の指先位置エリア認識部101)と、前記手形状に対応付けて指先座標位置のエリアパターンを記憶する記憶手段(例えば、図4のエリアパターン記憶部102)と、前記記憶手段に記憶されているエリアパターンのうち、前記認識手段により認識されたエリアパターンと一致するエリアパターンに対応付けて記憶されている手形状を、前記画像内における手の手形状であるものとして推定し、推定結果を手形状による入力情報として出力する推定手段(例えば、図4の推定部103)とを含む。
本発明の一側面の画像処理方法は、画像に含まれる遊技者の手の手形状により、前記遊技者の入力情報を受け付ける画像処理装置であって、前記画像内に含まれる手の指先の座標位置を取得する指先座標取得手段と、前記画像を複数のエリアに区分するとき、前記指先座標取得手段により取得された指先座標が属するエリアのパターンをエリアパターンとして認識するエリアパターン認識手段と、前記手形状に対応付けて指先座標位置のエリアパターンを記憶する記憶手段と、前記記憶手段に記憶されているエリアパターンのうち、前記エリアパターン認識手段により認識されたエリアパターンと一致するエリアパターンに対応付けて記憶されている手形状を、前記画像内における手の手形状であるものとして推定し、推定結果を手形状による入力情報として出力する推定手段とを含む画像処理装置の画像処理方法であって、前記指先座標取得手段における、前記画像内に含まれる手の指先の座標位置を取得する指先座標取得ステップ(例えば、図8のステップS72,S75)と、前記エリアパターン認識手段における、前記画像を複数のエリアに区分するとき、前記指先座標取得ステップの処理により取得された指先座標が属するエリアのパターンをエリアパターンとして認識するエリアパターン認識ステップ(例えば、図8のステップS77)と、前記推定手段における、前記記憶手段に記憶されているエリアパターンのうち、前記エリアパターン認識ステップの処理により認識されたエリアパターンと一致するエリアパターンに対応付けて記憶されている手形状を、前記画像内における手の手形状であるものとして推定し、推定結果を手形状による入力情報として出力する推定ステップ(例えば、図8のステップS79)とを含む。
[本発明に係る画像処理装置を用いた遊技台の一実施の形態の構成例]
図1は、本発明に係る画像処理装置を用いた遊技台の一実施の形態の構成例を示す図である。図1における左部は、遊技台の正面図であり、右部は、遊技台の外観斜視図である。
遊技台11は、遊技者の操作に応じて遊技球を発射し、所定の入賞口に遊技球が入賞すると、大当り、または小当りするなどして、対応する球数の遊技球を払い出す。また、遊技台11は、所定の入賞口に遊技球が入賞し、大当りや小当りとなる際、演出効果を高めるため、遊技台11の盤面中央に設けられた表示部22に、特殊な動画像を表示すると共に、所定の音声を出力する。この際、遊技台11は、動画像、または音声により、遊技者に対して手を用いて、手形状を変化させる動作、指先の追跡動作、および指先の回転動作のいずれかの入力動作を促す。このような督促に応じて、遊技者がカメラモジュール21に対して、表示部22に表示された演出画像や音声により促された入力動作を行うと、遊技台11は、カメラモジュール21を用いて入力動作に用いられる手の画像を撮像し、その画像に適当な処理をすることで入力動作を受け付け、受け付けた入力動作に応じて演出画像や音声を変化させる。このような入力動作を受け付けて、演出動作に反映させることにより、遊技者は、あたかも自ら遊技台11の動作を操っているような感覚を覚え、遊技台により表現される演出効果に臨場感を持たせることが可能となる。
[遊技台の構成例]
次に、図2を参照して、遊技台11により実現される機能について説明する。
遊技台11は、CMOS(Complementary Metal Oxide Semiconductor)などからなるカメラモジュール21、LCD(Liquid Crystal Display)などからなる表示部22、および遊技台11の演出の全体を制御する制御部31を備えている。尚、図示しないが、遊技に係る動作を制御する機器も存在するが、説明の便宜上省略するものとする。
カメラモジュール21は、図3の右上部で示される側面断面図で示されるように、下部にCOMSからなる撮像素子41、上部に赤外光を発光するLED42、および制御部43を備えている。尚、図3においては、右上部にカメラモジュール21の側面断面図が示されており、左下部には、断面斜視図が示されている。このように、カメラモジュール21の撮像素子41は、LED42により発生される赤外光が、被写体となる遊技者の手Hに照射され、手Hより反射される赤外光からなる画像を撮像し、撮像した画像を制御部43に供給する。この結果、カメラモジュール21の目の前に存在する手の画像のみを撮像することが可能となっている。そして、制御部43は、撮像素子41より供給されてくる画像、および、演出を制御する制御部31より供給されてくる演出状態の情報に基づいて、遊技者による手を用いた入力動作を認識し、認識結果である入力動作の情報を、演出を制御する制御部31に供給する。
[カメラモジュールの構成例]
次に、図4を参照して、カメラモジュール21により実現される機能について説明する。尚、カメラモジュール21は、図3を参照して説明したように、撮像素子41、LED42、および制御部43より構成されているが、ここで、制御部43により実現される機能について詳細に説明するものとする。
制御部43は、演出状態判定部61、操作条件切替部62、指先位置計算部63、指先追跡部64、手形状推定部65、および回転動作処理部66を備えている。演出状態判定部61は、遊技台11の演出の動作の全体を制御する制御部31より供給されてくる演出状態の情報に基づいて、演出状態を判定する。操作条件切替部62は、演出状態判定部61の判定結果に基づいて、入力情報として受け入れる操作条件を切り替える。受け入れ可能な入力情報は、手形状による入力情報、指先の座標による入力情報、および指先の回転による回転方向および回転速度による入力情報であり、操作条件切替部62は、この三種類の入力情報のいずれを受け入れるかを切り替える。
指先位置計算部63は、撮像素子41より供給されてくる赤外光に基づいた画像より指先の座標の位置を計算する。より具体的には、指先位置計算部63は、2値化処理部81、重心計算部82、指先候補領域検索部83、指先位置特定部84、距離計算部85、LED制御部86、および画像取得部87を備える。LED制御部86は、LED42の発光を制御する。画像取得部87は、LED42が発光することにより被写体である手より反射されることにより撮像素子41より撮像される画像を取得する。2値化処理部81は、画像取得部87により取得された画像を被写体となる手の領域を白色として、それ以外の領域を黒色とする2値からなる画像に処理する。
重心計算部82は、2値化された画像のうち、被写体となる白色の領域の重心位置を計算する。指先候補領域検索部83は、2値化処理された画像の境界となる画素を中心とする矩形範囲内の白色領域と黒色領域との割合に基づいて、黒色領域が白色領域よりも多い境界の画素を指先候補領域として検索する。さらに、指先候補領域検索部83は、指先候補領域を近傍の範囲に存在するもの毎に群に分ける。指先位置特定部84は、距離計算部85を制御して、指先候補領域の各群毎に群を構成する指先候補領域の画素のうち、重心位置からの距離が最も長いもの、すなわち、重心位置から最も遠いものを特定し、群毎に特定した指先位置の座標、および重心位置からの距離を指先位置の情報として出力する。
指先追跡部64は、指先位置計算部63により求められた群毎に特定した指先位置の情報のうち、重心位置からの距離が最も遠いものを人差し指の指先位置とみなし、その座標を順次記憶して追跡し、入力情報として出力する。より詳細には、指先追跡部64は、記憶部121、およびふらつき判定部122を備えている。指先追跡部64は、直前の指先位置の座標を記憶し、その後、記憶した指先の座標より所定の距離to内であって、所定の距離ti(<to)よりも遠い座標位置に新たな指先位置が検出された場合、追跡すべき指先位置の座標であるものとし、新たな座標として記憶部121に記憶させる。また、指先追跡部64は、ふらつき判定部122を制御して、記憶した指先の座標より所定の距離ti内である場合、指先が同一の位置に留まった状態で、ふらついているものとみなし、直前の座標位置をそのままの状態で記憶部121に記憶させたままの状態とする。
手形状推定部65は、指先位置計算部63により求められた群毎に特定した指先位置の情報に基づいて、手の重心位置と指先位置の座標との配置から手形状を推定し、手形状の情報を入力情報として出力する。より具体的には、手形状推定部65は、指先位置エリア認識部101、エリアパターン記憶部102、および推定部103を備えている。指先位置エリア認識部101は、指先位置計算部63により出力される指先位置の情報、および重心位置の情報に基づいて、重心位置を中心として画像を放射状に区分してエリアを設定したとき、各指先位置が含まれるエリアのパターンをエリアパターンとして認識する。エリアパターン記憶部102は、予め手形状に対応付けて、重心位置、および指先位置のエリアとなるエリアパターンを記憶している。尚、このエリアパターンは、一般的な手形状、すなわち、手により自然に取ることのできる手形状に対応する重心位置を基準とした指先位置のエリアパターンであるものとする。推定部103は、エリアパターン記憶部102に記憶されている全てのエリアパターンと、指先位置エリア認識部101により認識されたエリアパターンとを比較し、一致するものがあるとき、対応付けて記憶されている手形状を推定結果とする。
回転動作処理部66は、指先位置計算部63により求められた群毎に特定した指先位置の情報に基づいて、人差し指の回転方向とその回転速度の情報を入力情報として出力する。より具体的には、回転動作処理部66は、仮想ダイヤル回転角度計測部141、非検出エリア設定部142、検出エリア特定部143、検出エリア記憶部144、回転方向特定部145、回転速度計算部146、および回転軸補正部147を備えている。非検出エリア設定部142は、撮像された画像の所定の中心位置を基準として放射線状に区分してエリアを設定し、さらに、その中心位置近傍の矩形範囲を非検出エリアに設定する。すなわち、非検出エリアは、そのエリア内に指先位置の情報が検出されていても、非検出であったものとみなされるエリアである。また、後述する軸補正部164により中心位置を補正する補正量が計算される場合、その計算された補正量に基づいて、直前に設定した検出エリア、および非検出エリアの中心位置を補正して、検出エリア、および非検出エリアを設定する。検出エリア特定部143は、指先位置の情報に基づいて、上述したように画像内における所定の中心位置に対して放射線状に区分されるどのエリアで検出されたかを特定する。
検出エリア記憶部144は、検出エリア特定部143により特定された指先位置の情報、およびエリアの情報を記憶する。仮想ダイヤル回転角度計測部141は、画像内の所定の位置を基準として放射状に区分された各エリアを仮想的なダイヤルであるものとみなし、検出エリア記憶部144に記憶されている直前のエリアと、検出エリア特定部144により特定された最新の検出位置のエリアとが変化したとき、変化したエリア間の違いから仮想的なダイヤルが回転したものとみなし、エリア間の角度の差から回転角度を計測する。回転方向特定部145は、直前の検出エリアと、最新の検出エリアとの位置関係に基づいて、右回り(時計回り)であるか、または、左回り(反時計回り)であるのか回転方向を特定する。回転速度計算部146は、直前の検出エリアと、最新の検出エリアとの変化と、その変化に係る時間とから回転速度(角速度または単位時間当たりの回転数)を計算する。
回転軸補正部147は、指先位置の情報に基づいて、直前の軌跡から中心位置となる軸を補正する。より詳細には、回転軸補正部147は、タイマ161、回転判定部162、重心計算部163、および軸補正部164を備えている。タイマ161は、指先位置の情報が最初に検出されたタイミングからの経過時間を計測する。回転判定部162は、検出エリア記憶部144に記憶されている検出エリアの情報に基づいて、検出されているエリアの情報が一周分記憶されているか否か、すなわち、検出エリアの情報が1周分存在するか否かを判定する。重心計算部163は、回転判定部162によりエリアの情報が1周分記憶されているとみなされた場合、検出エリア記憶部144に記憶されている、1周分の指先位置の座標の情報を用いて、その重心位置を計算する。軸補正部164は、重心計算部163により計算された重心位置にエリアを設定するための中心位置を補正するための補正量を計算する。
[演出画像表示処理]
次に、図5のフローチャートを参照して、演出画像表示処理について説明する。
ステップS11において、演出状態判定部61は、演出用の制御部31より供給されてくる演出状態を示す情報、または、図示せぬ入力操作切替操作部の操作状態に基づいて、演出状態、または入力切替操作の状態を認識する。
ステップS12において、演出状態判定部61は、認識した演出状態、または入力切替操作が指先追跡処理による入力情報を受け付けるものであるか否かを判定する。ステップS12において、例えば、指先追跡処理による入力情報を受け付けるものである場合、処理は、ステップS13に進む。
ステップS13において、操作条件切替部62は、演出状態判定部61により認識された指先追跡処理による入力情報を受け付ける操作条件に切り替えて、指先追跡処理による入力情報を受付させる。
[指先追跡処理]
ここで、図6のフローチャートを参照して、指先追跡処理について説明する。
ステップS41において、演出状態判定部61は、演出用の制御部31に対して指先を撮像素子41に向けて移動させるときの軌跡が入力情報である旨を通知する。これに応じて、制御部31は、表示部22を制御して、指先を撮像素子41に向けて移動させるときの軌跡が入力情報となることを表示する。これにより遊技者は、どのタイミングで指先の移動に伴った軌跡が入力情報となることが認識される。
ステップS42において、LED制御部86は、LED42を発光させて、被写体である遊技者の手が入力情報を入力する位置付近を赤外光により照射する。撮像素子41は、赤外光により照射され、照射された赤外光を反射して映りこむ、被写体である遊技者の手を撮像した、例えば、図7の画像P1で示されるような画像を指先位置計算部63に供給する。図7の画像P1は、照射された赤外光を反射する左手で人差し指を立てた状態の手の画像であり、白色部分が手の領域、すなわち、赤外光を反射している領域であり、黒色部分がそれ以外の領域となっている。尚、画像は、動画像を対象としており、したがって、ここで撮像される画像は、動画像を構成する1フレーム単位、または1フィールド単位の画像である。
ステップS43において、2値化処理部81は、撮像素子41により撮像された画像を2値化する。すなわち、例えば、撮像素子41により撮像された画像が図7の画像P1であるような場合、所定の画素値以上の画素値を白色の画素値とし、それ以外を黒色とすることで、2値化処理部81は、図7の画像P2で示されるような2値化画像を生成する。
ステップS44において、重心計算部82は、下記の式(1)を計算することにより、2値化画像のうち手の領域を示す白色領域の重心位置の座標を計算する。
(Xg,Yg)=(1/n(X0+・・・+X(n-1)),1/n(Y0+・・・+Y(n-1)))
・・・(1)
ここで、(Xg,Yg)は、重心位置の座標を表しており、Xi(i=0,1,2,・・・(n-1))およびYi(i=0,1,2,・・・(n-1))は、それぞれ白色領域の画素のX,Y座標を表している。
すなわち、例えば、図7の画像P2で示されるような2値画像の場合、重心計算部82は、図7の画像P3で示されるような手の領域を示す白色領域の重心位置(Xg,Yg)を計算する。尚、図7の画像P3においては、画像の左下端部を原点(0,0)とし、水平方向をX方向として、垂直方向をY方向として重心座標が求められている例が示されている。
ステップS45において、指先候補領域検索部83は、2値化画像の手の領域である白色領域とそれ以外の領域である黒色領域との境界上に存在する各画素について、各画素を中心とする矩形範囲を設定して、その矩形範囲内の白色領域と黒色領域との割合を求めて、黒色領域の割合が高くなる、指先近傍の画素であるか否かを判定することにより指先候補領域を検索する。すなわち、手の領域を白色領域とし、それ以外を黒色領域とした2値化画像においては、図7の画像P4で示されるように、その境界において、指先端部近傍の画素であれば、その画素を中心とした矩形範囲FL1の黒色と白色との割合は、黒色領域の割合が、指先候補領域ではない矩形範囲FL2と比べて高くなるので、そのような画素が、画像P5の指先部分における黒点で示されるように指先候補領域の画素として探索される。また、ノイズのような矩形範囲FL3は、この処理により除去されることになる。
ステップS46において、指先候補領域検索部83は、探索された指先候補領域を構成する画素について、重心からの距離を以下の式(2)を計算することにより求め、距離に応じて指先候補領域の画素の複数の群に分ける。
Ah=√((Xkn−Xg)2+(Ykn−Yg)2)
・・・(2)
ここで、Ahは、重心座標からの距離を、(Xkn,Ykn)は、指先候補領域の画素の座標をそれぞれ表している。すなわち、このように距離に応じて指先候補領域の画素の座標を群に分けることにより、例えば、図7の画像P5における黒点で示される指先候補領域の画素の座標は、重心座標(Xg,Yg)からの距離に応じて、画素群M1,M2のように距離の近いもの同士からなる群に分類される。
ステップS47において、指先候補領域検索部83は、重心からの距離に応じて分類された画素群毎に、図7の画像P6で示されるように、重心位置から最も遠い画素を画素群の代表座標として設定する。すなわち、画像P6で示されるように、各指先候補領域の画素と重心位置からの距離が求められて、そのうち、最も重心位置から遠い画素を画素群の代表座標とする。
ステップS48において、指先位置特定部84は、各画素群の代表座標のうち、重心からの距離が最も遠い座標を指先座標として認識する。すなわち、図7の画像P6の場合、手の画像における人差し指の先端部に当たる画素の座標(Xans,Yans)が指先座標として認識される。すなわち、指先の軌跡により入力情報を生成する場合、通常人差し指などが立てられて、その人差し指の先端部により入力情報が構成されることが多いので、このような処理により人差し指の先端部の座標が入力情報として確実に取得される。ただし、仮に、その他の指を立てても同様に処理することができるので、いずれかの指を立てれば、その先端部の座標をもって、入力情報とすることも可能である。いずれにしても、通常、遊技者が取るであろう指先での入力動作に対応した入力情報を、連続して移動する指先の座標情報として受け付けることが可能となる。
ステップS49において、指先追跡部64は、ふらつき判定部122を制御して、直前のフレーム、またはフィールドの画像における指先位置の座標との距離fpt求め、所定の範囲内であるか否かを判定する。すなわち、図7の画像P7で示される指先の座標N1から画像P8で示されるように座標N2に移動した場合、ふらつき判定部122は、座標N1とN2との距離fptを求める。そして、ふらつき判定部122は、その距離fptが所定の範囲内、つまり所定の距離tiよりも長く、所定の距離to(>ti)よりも短いとき、追跡している指先の座標が変化したものとみなし、処理は、ステップS50に進む。すなわち、距離fptが、所定の距離tiよりも小さい場合、単にふらついているだけであるものとみなし、所定の距離toよりも大きい場合、連続的に移動しているものとはみなさない。
ステップS49において、距離fptが、所定の距離tiよりも長く、所定の距離toよりも短い場合、指先追跡部64は、最新の指先位置が直前の指先位置から連続的に移動しているものとみなし、処理は、ステップS50に進む。ステップS50において、指先追跡部64は、新たに検出した指先候補となる座標を、新たに追跡すべき指先座標として出力する。
ステップS51において、指先追跡部64は、検出された指先座標を、今現在のフレーム、またはフィールドを識別する情報と共に、記憶部121に記憶させ、処理を終了する。
一方、ステップS49において、距離fptが所定の範囲内ではない、すなわち、所定の距離tiより短く、遊技者は指先の移動を意図しておらず、ふらつきであるものとみなされた場合、または、所定の距離toよりも長く、直前の指先の座標からみて、移動先であるとみなせない場合、処理は、ステップS52に進む。
ステップS52において、指先追跡部64は、指先の座標位置に変化が無く、すなわち、指先が移動せずにいるものとみなし、直前のフレーム、またはフィールドに対応付けて登録されている位置座標を指先の現在の位置座標として出力する。
以上の処理により被写体として撮像される画像内の手のうち、人差し指など、いずれかの指を立てて移動させるような場合、動画像により連続的に撮像されるフレーム単位、またはフィールド単位で指先の座標位置が順次追跡されて、追跡結果となる座標が順次入力情報として出力される。結果として、遊技者は、カメラモジュール21の前で指先で、例えば、○印、△印、または×印といった形状を描くような動作をすると、その指先の座標の追跡結果から、その軌跡の形状として○印、△印、または×印といった形状を認識することが可能となる。また、この他にも、指先の座標の追跡結果から、起点と終点とを認識して上下左右といった方向を入力できるようにしてもよい。
ここで、図5のフローチャートの説明に戻る。
ステップS13において、指先追跡処理がなされ、順次フレーム単位、またはフィールド単位で、遊技者が手の指先を移動させることにより入力される指先の座標が順次入力情報として出力される。
ステップS14において、演出状態判定部61は、生成された指先の座標の情報を入力情報として取得し、演出用の制御部31に供給する。
ステップS15において、制御部31は、供給されてきた入力情報に応じて演出状態を変化させて、変化した演出状態に応じた情報を表示部22に表示する。
一方、ステップS12において、指先追跡処理により指先の座標を入力情報としない場合、処理は、ステップS17に進む。
ステップS17において、演出状態判定部61は、認識した演出状態、または入力切替操作が手形状推定処理により推定された手形状を入力情報として受け付けるか否かを判定する。ステップS17において、例えば、手形状推定処理により推定される手形状を入力情報とする場合、処理は、ステップS18に進む。
ステップS18において、操作条件切替部62は、演出状態判定部61により認識された指先追跡処理による入力情報を受け付ける操作条件に切り替えて、手形状推定処理により推定される手形状を入力情報として受付させる。
[手形状推定処理]
ここで、図8のフローチャートを参照して、手形状推定処理について説明する。
ステップS71において、演出状態判定部61は、演出用の制御部31に対して手形状を撮像素子41に撮像させることが入力情報である旨を通知する。これに応じて、制御部31は、表示部22を制御して、撮像素子41に向けて撮像させる手形状が入力情報となることを表示し、手形状による入力を開始させる意思を示す手形状を撮像させるように促す画像を表示する。これにより遊技者は、今現在において、手形状を変化させる入力動作により入力情報が構成されることを認識することができる。また、入力意思を示す手形状とは、例えば、じゃんけんにおける、いわゆる「グー」の手形状など、所定の手形状であり、所定の手形状を以って、以降から手形状での入力情報の入力開始を示すためのものである。
ステップS72において、指先位置計算部63は、指先座標取得処理を実行して、指先位置となる座標を取得する。この処理は、図6を参照して説明したステップS42乃至S47の処理と同様の処理であるので、説明は省略する。すなわち、指先位置の座標となる指先候補領域となる座標群の代表座標が、各指先の座標として取得される。
ステップS73において、手形状推定部65は、指先位置エリア認識部101を制御して、指先候補領域となる画素の座標が検出されていないか否かを判定する。ステップS73において、例えば、手形状が、じゃんけんのいわゆる「グー」の形状であるような場合、指先位置が検出されないことになるので、指先候補領域となる座標が検出されないとみなされ、手形状での入力情報の入力意思があるものとみなされて、処理は、ステップS74に進む。
ステップS74において、手形状推定部65は、演出用の制御部31に対して手形状での入力意思を示す手形状が示されたことを示す情報を供給する。この情報に基づいて、演出用の制御部31は、手形状での入力意思が確認できたことを示す情報と共に、入力したい手形状を示すように促す画像を生成して、表示部22に表示させる。このような表示により、遊技者は、本来入力情報として入力したい手形状の呈示を開始すべきタイミングを認識することが可能となる。
ステップS75において、ステップS72における場合と同様に、指先位置の座標となる指先候補領域となる座標群の代表座標が、各指先の座標として取得される。
ステップS76において、手形状推定部65は、指先位置エリア認識部101を制御して、指先候補領域となる座標が検出されていないか否かを判定する。例えば、図9の画像P11で示されるように、いわゆる、「チョキ」または「Vサイン」と呼ばれるように、人差し指と中指を立てた状態が手形状として呈示された場合、指先位置の座標は、人差し指、および中指の先端部分となる。このような場合、指先候補領域が検出されたものとみなして、処理は、ステップS77に進む。
ステップS77において、手形状推定部65は、指先位置エリア認識部101を制御して、指先候補領域の各群の代表座標が、予め入力画像内に設定されたエリアのどのエリアに現れているのかを認識する。すなわち、エリアとは、例えば、図9のエリアパターンA1で示されるように、手形状となる画像の重心位置を中心として、画像を放射状に分割したものであり、図9においては、8分割された領域Z0乃至Z7がそれぞれエリアを構成している。さらに、図9の画像P11で示されるように、人差し指と中指が上方向に立てられている場合、図9のエリアパターンA1において灰色で示されるように、指先位置の属するエリアとして領域Z0,Z7が認識される。尚、エリアを設定するための画像の分割数は、8分割以外の分割数でもよい。
また、例えば、図9の画像P12で示されるように、人差し指と親指が立てられていて、人差し指が図中左方向を指している場合、エリアパターンA2において灰色で示されるように、指先位置の属するエリアとして領域Z5,Z7が認識される。同様に、例えば、図9の画像P13で示されるように、人差し指と中指が立てられていて、人差し指と中指がいずれも図中左方向を指している場合、エリアパターンA3において灰色で示されるように、指先位置の属するエリアとして領域Z5,Z6が認識される。
すなわち、図9の画像P11,P13で示されるように、同一の手形状であっても、上述したように放射状に8分割することにより、手形状の方向や向きを変える事でその他ののエリアパターンを構成することが可能となり、単純に手形状を構成するだけでも、その向きを変えるだけで様々なエリアパターンを表現することが可能となる。また、表現されるべきものは、手形状による入力情報であるが、実質的には、指先のエリアパターンの組み合わせであるので、複雑な手形状を作らなくても、エリアパターンさえ表現できれば、様々なパターンを表現することができる。
ステップS78において、推定部103は、エリアパターン記憶部102に予め入力情報毎に登録されているエリアパターンの中に、指先位置エリア認識部101により認識されたエリアパターンと一致するものが登録されているか否かを判定する。ステップS78において、一致するエリアパターンが存在する場合、ステップS79において、推定部103は、一致したエリアパターンに対応付けて登録されている入力情報を推定結果として制御部31に出力する。
ステップS80において、制御部31は、表示部22に推定結果として推定部103より供給されてきた入力情報を表示する。
一方、ステップS76において、指先候補領域が検出されない場合、ステップS81において、手形状推定部65は、手形状での入力意思が確認されてから所定の時間が経過したか否かを判定し、所定時間が経過していない場合、処理は、ステップS74に戻る。すなわち、所定時間が経過するまでは、手形状の入力がないとみなされた場合、ステップS74乃至S76,S81の処理が繰り返されて、手形状での入力の受付を継続し続ける。
ステップS81において、所定時間が経過した場合、または、ステップS73において、指先候補領域が存在しない場合、処理は、ステップS82に進む。
ステップS82において、手形状での入力意思を示すように促してから所定時間が経過したか否かを判定する。ステップS82において、手形状での入力意思を示すように促してから所定時間が経過していない場合、処理は、ステップS71に戻る。すなわち、再び、手形状での入力意思を示すように促す画像が表示されて、最初からの処理となる。一方、ステップS82において、手形状での入力意思を示すように促してから所定時間が経過した場合、または、ステップS78において、エリアパターン記憶部102に予め入力情報毎に登録されているエリアパターンの中に、指先位置エリア認識部101により認識されたエリアパターンと一致するものが登録されていない場合、処理は、ステップS83に進む。
ステップS83において、推定部103は、所定の手形状に対応付けて登録されているエリアパターンの入力情報を推定結果として制御部31に出力する。
ステップS84において、制御部31は、表示部22に推定結果として推定部103より供給されてきた所定の手形状に対応付けて登録されているエリアパターンの入力情報を表示する。
すなわち、手形状による入力が見られない場合であっても、所定の手形状による入力があったものとみなして処理を進める。これは、通常、遊技台の演出においては、何らかの入力情報なければ、次の演出動作を実現できない構成となっていることが多いためであり、遊技者が何らかの理由で手形状による入力動作をしなくても、演出動作が停止することの無い様にするためである。
以上の処理により、簡単な手形状を片手で作り、適当な方向に向け、エリアパターンを構成するだけで様々な入力情報を入力することが可能となる。すなわち、上述の実施例においては、手形状の重心位置を中心として放射線状に8のエリアに区分した場合、片手で5本の指を使うことで、56通り(=8!/(3!×5!))となり、簡単な手形状の構成のみで多くの入力情報を入力することが可能となる。さらに、手形状の推定結果を連続的に複数個組み合わせて入力情報を構成することで、片手による非接触の簡単な手形状による入力動作で、より多くの入力情報を入力することも可能となる。
ここで、図5のフローチャートの説明に戻る。
ステップS18の手形状推定処理により推定された手形状に対応する入力情報が出力されると、ステップS19において、制御部31は、推定された手形状に対応する入力情報を取得する。
一方、ステップS17において、手形状推定処理による入力情報の受付ではないと判定された場合、処理は、ステップS20に進む。
ステップS20において、演出状態判定部61は、認識した演出状態、または入力切替操作が回転検出処理による入力情報を受け付けるものであるか否かを判定する。ステップS20において、例えば、回転検出処理による入力情報を受け付けるものである場合、処理は、ステップS21に進む。
ステップS21において、操作条件切替部62は、演出状態判定部61により認識された回転検出処理による入力情報を受け付ける操作条件に切り替えて、回転検出処理による入力情報を受付させる。
[回転検出処理]
ここで、図10のフローチャートを参照して、回転検出処理について説明する。
ステップS101において、演出状態判定部61は、回転動作による入力情報を受け付けることを制御部31に供給する。制御部31は、この情報に基づいて、回転動作による入力情報を受付ける状態となっており、指先を回転させて撮像素子41に撮像させるような、入力動作を促す画像を生成して表示部22に表示させる。
ステップS102において、回転動作処理部66は、仮想ダイヤル回転角度計測部141を制御して、仮想ダイヤルの回転角度θを0度に初期化する。ここで、仮想ダイヤルとは、図11のエリアパターンA21で示される画像内の所定の中心位置より放射線状に8区分のエリアに分割し、かつ、中心部分に非検出エリアを設定したとき、各エリアをダイヤルに見立てたものである。このエリアパターンA21における領域Z0乃至Z7の設定は、非検出エリアを除き、図9を参照して説明したものと同様である。
ステップS103において、非検出エリア設定部142は、検出エリア、および非検出エリアを設定し初期化する。尚、後述するエリア補正処理により設定される中心位置に基づいて、図11のエリアパターンA21で示されるように、放射状にエリアを区分する。ここでは、各エリアは中心に対して45度ずつ、8区分に分割されて設定されている。また、図11におけるエリアパターンA21で示されるように、非検出エリアは、中心付近の矩形領域(灰色部分)として設定されている。尚、非検出エリアにおいても、上述した図9の場合の手形状を検出する場合と同様に指先の座標は検出されるが、ここでは、検出されていないものとみなして処理する領域として設定される。さらに、非検出エリア設定部142は、後述するエリア補正処理により補正量が求められている場合、直前に設定された検出エリア、および非検出エリアの中心位置をその補正量分だけずらして、非検出エリア、および検出エリアを設定する。
ステップS104において、指先位置計算部63は、指先追跡処理を実行して、手形状のうち、最も長い指先の座標、すなわち、手形状の重心位置から最も遠い座標を検出する。尚、指先追跡処理については、図6のフローチャートを参照して説明した処理と同様であるので、その説明は省略するものとする。
ステップS105において、指先位置計算部63は、指先の座標が検出されたか否かを判定し、指先の座標が検出されない場合、処理は、ステップS104に戻る。すなわち、指先の座標が検出されるまで、ステップS104,S105の処理が繰り返される。そして、ステップS105において、指先の座標が検出された場合、処理は、ステップS106に進む。
ステップS106において、検出エリア特定部143は、指先位置計算部63により検出された指先の座標と、検出エリアAr1を特定し、検出エリア記憶部144に、検出された時刻t1と共に記憶させる。
ステップS107において、指先位置計算部63は、指先追跡処理を実行して、手形状のうち、最も長い指先の座標を検出する。尚、指先追跡処理については、図6のフローチャートを参照して説明した処理と同様であるので、その説明は省略するものとする。
ステップS108において、指先位置計算部63は、指先の座標が検出されたか否かを判定し、指先の座標が検出されない場合、処理は、ステップS107に戻る。すなわち、指先の座標が検出されるまで、ステップS107,S108の処理が繰り返される。そして、ステップS108において、指先の座標が検出された場合、処理は、ステップS109に進む。
ステップS109において、検出エリア特定部143は、指先位置計算部63により検出された指先の座標と、検出エリアAr2とを特定し、検出エリア記憶部144に、検出された時刻t2と共に記憶させる。
ステップS110において、回転方向特定部145は、検出エリア記憶部144に記憶されている時刻t1,t2のそれぞれの検出された指先の座標のエリアが一致するか否かを判定する。すなわち、例えば、図11のエリアパターンA21の場合、時刻t1において、指先の座標位置r2が検出され、時刻t2において、指先の座標位置r3が検出されると、いずれも検出されたエリアは、エリアZ1となるため、検出エリアが一致したものとみなされて、処理は、ステップS116に進むこととなる。
一方、図11のエリアパターンA21の場合、時刻t1において、指先の座標位置r5が検出され、時刻t2において、指先の座標位置r6が検出されると、検出されたエリアAr1,Ar2は、それぞれエリアZ2,Z3となるため、検出エリアが一致しないものとみなされて、処理は、ステップS111に進むこととなる。
ステップS111において、回転方向特定部145は、検出エリアAr2が検出エリアAr1の右回転方向の隣接エリアであるか否かを判定する。すなわち、図11のエリアパターンA21の場合、時刻t1において、指先の座標位置r5が検出され、時刻t2において、指先の座標位置r6が検出されると、検出されたエリアAr1,Ar2は、それぞれエリアZ2,Z3となるため、検出エリアAr2=Z3は、検出エリアAr1=Z2の右回転方向の隣接エリアとなるため、処理は、ステップS112に進む。
ステップS112において、回転方向特定部145は、指先の回転方向は、右回転(時計回り)であるものとみなす。
ステップS113において、回転速度計算部146は、回転角度の角速度を計算する。すなわち、図11の場合、中心位置から放射状に45度ずつ区分されているので、45度の単位の変化を、変化時間(t2−t1)により成された角速度として計算する。尚、回転速度として認識できる情報であれば、角速度に限定されるものではなく、例えば、角速度に代えて単位時間当たりの回転数を求めるようにしてもよい。
ステップS114において、仮想ダイヤル回転角度計測部141は、変化した角度分だけ仮想ダイヤル回転角度θをインクリメントする。すなわち、今の場合、仮想ダイヤルが隣接エリアに移動しているのみであり、回転角度は45度であるので、仮想ダイヤル回転角度θを(θ+45)度とする。
ステップS115において、検出エリア特定部144は、検出エリアAr1を検出エリアAr2に更新すると共に、時刻t1を時刻t2に更新する。
ステップS116において、回転検出処理による入力情報の入力処理が終了されたか否かを判定し、終了していない場合、処理は、ステップS107に戻り、そして、終了とされた場合、処理は終了する。
また、ステップS111において、検出エリアAr2がエリアAr1の右回転方向の隣接エリアではない、すなわち、右回り(時計回り)ではない場合、処理は、ステップS117に進む。
ステップS117において、回転方向特定部145は、検出エリアAr2は、検出エリアAr1の左回転方向の隣接エリアであるか否かを判定する。すなわち、図11のエリアパターンA21の場合、時刻t1において、指先の座標位置r6が検出され、時刻t2において、指先の座標位置r5が検出されると、検出されたエリアAr1,Ar2は、それぞれエリアZ3,Z2となるため、検出エリアAr2=Z2は、検出エリアAr1=Z3の左回転方向の隣接エリアとなるため、処理は、ステップS118に進む。
ステップS118において、回転方向特定部145は、指先の動きは、左回転(反時計回り)であるものとみなし、処理は、ステップS113に進む。
また、ステップS117において、検出エリアAr2は、検出エリアAr1の左回転方向の隣接エリアではない場合、すなわち、右回りでも左回りでもないので、回転していないものとみなし、処理は、ステップS116に進む。
以上の処理により指先の座標の回転に伴って検出エリアを順次切り替えながら、エリアが切り替わる際に回転方向と回転速度が検出され、さらに、回転角度がカウントされる。結果として、例えば、遊技者がカメラモジュール21の前で指先を回転させる動作をすると、その指先の回転動作により検出される回転角度、回転方向および回転速度に基づいて、図12の上部で示される画像22Aのように、フレームa乃至hを回転角度、回転方向と回転速度に基づいて、図中の矢印のように回転させて表示部22に表示させるような演出画像を生成することが可能となる。また、同様に、例えば、回転角度、回転方向、および回転速度に応じて、図12の下部で示される画像22Bのようなハートマークが左右に広がっていくような、または、中央位置に集まってくるような演出画像を、ハートマークが広がる、または集まる方向、位置、および速度を指先の回転に合わせて変化させながら生成することが可能となる。さらに、演出画像としては、これらに限られるものではなく、回転角度、回転方向、および回転速度をパラメータとした、その他の演出画像を構成するようにしてもよい。
[エリア補正処理]
次に、図13のフローチャートを参照して、エリア補正処理について説明する。
ステップS141において、回転軸補正部147は、演出状態判定部61により回転検出処理が実行されているか否かを判定し、回転検出処理が実行されるまで、同様の処理を繰り返す。例えば、上述した図10のフローチャートの処理が実行されると、処理は、ステップS142に進む。
ステップS142において、回転軸補正部147は、タイマ161を制御してタイマのカウンタTmを初期化する。
ステップS143において、回転軸補正部147は、タイマ16のカウンタTmを1インクリメントする。
ステップS144において、指先位置計算部63による指先座標追跡処理により指先の座標位置を検出する。尚、この処理は、図6のフローチャートを参照して説明した処理と同様であるので、その説明は省略する。
ステップS145において、指先の座標が検出エリアが検出されたか否かを判定し、検出エリアで検出されない場合、処理は、ステップS143に戻る。すなわち、指先の座標が検出されるまで、ステップS143乃至S145の処理が繰り返される。
ステップS146において、指先の座標が検出エリアで検出された場合、検出エリア記憶部144は、検出されたエリアを記憶する。
ステップS147において、検出エリア記憶部144は、検出された指先座標を記憶する。
ステップS148において、回転判定部162は、タイマ161のカウンタTmを参照して、カウンタTmが所定値を超えて、回転が開始してから所定の時間が経過しているか否かを判定する。ステップS148において、例えば、所定の時間が経過していない場合、処理は、ステップS149に進む。
ステップS149において、回転判定部162は、検出エリア記憶部144に記憶されている情報に基づいて、指先が1回転し、検出エリアとして全てのエリアが登録されており、1周分の指先の座標が登録されているか否かを判定する。ステップS149において、1回転していないとみなされた場合、処理は、ステップS143に戻る。すなわち、1回転したとみなされるまで、ステップS143乃至S149の処理が繰り返される。
ステップS149において、1回転したものとみなされた場合、処理は、ステップS150に進む。
ステップS150において、重心計算部163は、検出エリア記憶部144に記憶されている指先の座標の1周分の情報を読み出し、それらの重心位置を求める。
ステップS151において、軸補正部164は、今現在のエリアパターンを構成する中心位置と、求められた重心位置とのずれを求め、重心位置にエリアパターンを構成する中心位置が移動するように補正する補正量を求める。
すなわち、図11の上部で示されるように、エリアパターンA21の中心位置と、座標位置r1乃至r13の重心として求められた重心位置Oとは異なる位置となっている。そこで、軸補正部164は、この中心位置と重心位置Oとのずれを求め、図11の下部のエリアパターンA22で示されるように、重心位置として求められた位置が中心となるような補正量を求める。この補正量が用いられて、上述した図10のフローチャートにおけるステップS103の処理において、検出エリア、および非検出エリアが直前に設定されていた場合、中心位置が補正量分だけずれた位置に非検出エリア、および検出エリアが設定される。
このように回転により検出される検出位置の座標に基づいて、エリアパターンを設定する検出エリアおよび非検出エリアの中心と、実際に検出される指先の座標の重心位置との差分が補正量として求められ、補正量分だけ中心位置が補正されることにより、個人差のある指先の回転位置のずれを適切に補正することが可能となり、より正確に回転角度、回転方向、および回転速度を計測することが可能となる。
ここで、図5のフローチャートの説明に戻る。
ステップS21において、回転検出処理がなされ、遊技者が手の指先を回転させることにより入力される回転角度、回転方向および回転速度が順次入力情報として出力される。
ステップS22において、演出状態判定部61は、生成された指先の回転により得られる回転方向および回転速度からなる入力情報を取得し、演出用の制御部31に供給する。
さらに、ステップS20において、例えば、回転検出処理による入力情報を受け付けるものではない場合、ステップS23において、演出状態判定部61は、特定の入力情報を発生し、制御部31に供給する。この処理により、制御部31は、特定の入力情報が入力されたものとして演出画像を構成する。すなわち、上述したように演出画像は何らかの入力情報が入らなければ停止してしまうものもあるため、演出画像などが停止してしまうことのないようにするためにこのような処理が実行される。
以上の処理により撮像される手の画像に基づいて、指先の座標位置を移動させる入力情報、手形状による入力情報、および指先による回転動作による入力情報を切り替えて受け付けることが可能となる。結果として、遊技者は、手先を使うだけで、非接触で、かつ容易に入力情報を入力することが可能となる。
尚、以上においては、指先をカメラモジュールにより撮像させて、指先の移動する軌跡を追跡させる、手形状を推定する、または回転検出させるといった例について説明してきたが、赤外光の照射によりカメラモジュールで撮像できるものであれば、手や指先に限るものではなく、その他のものでもよい。例えば、指先に代えて棒状のものを持って、指先のように使うようにしてもよい。この場合、棒状のものそのものの重心位置から最も遠い棒状の先端部が指先として認識されるため、上述した処理と同様の作用効果を奏することができる。また、手ではないが手と同様の動作ができるようなもの、例えば、グローブやマジックハンドによる指先や手形状でも、赤外光によりカメラモジュールで撮像可能であれば、上述した処理と同様の作用、効果を奏することができる。
ところで、上述した一連の処理は、ハードウェアにより実行させることもできるが、ソフトウェアにより実行させることもできる。一連の処理をソフトウェアにより実行させる場合には、そのソフトウェアを構成するプログラムが、専用のハードウェアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、記録媒体からインストールされる。
図14は、汎用のパーソナルコンピュータの構成例を示している。このパーソナルコンピュータは、CPU(Central Processing Unit)1001を内蔵している。CPU1001にはバス1004を介して、入出力インタフェース1005が接続されている。バス1004には、ROM(Read Only Memory)1002およびRAM(Random Access Memory)1003が接続されている。
入出力インタフェース1005には、遊技者が操作コマンドを入力するキーボード、マウスなどの入力デバイスよりなる入力部1006、処理操作画面や処理結果の画像を表示デバイスに出力する出力部1007、プログラムや各種データを格納するハードディスクドライブなどよりなる記憶部1008、LAN(Local Area Network)アダプタなどよりなり、インターネットに代表されるネットワークを介した通信処理を実行する通信部1009が接続されている。また、磁気ディスク(フレキシブルディスクを含む)、光ディスク(CD-ROM(Compact Disc-Read Only Memory)、DVD(Digital Versatile Disc)を含む)、光磁気ディスク(MD(Mini Disc)を含む)、もしくは半導体メモリなどのリムーバブルメディア1011に対してデータを読み書きするドライブ1010が接続されている。
CPU1001は、ROM1002に記憶されているプログラム、または磁気ディスク、光ディスク、光磁気ディスク、もしくは半導体メモリ等のリムーバブルメディア1011から読み出されて記憶部1008にインストールされ、記憶部1008からRAM1003にロードされたプログラムに従って各種の処理を実行する。RAM1003にはまた、CPU1001が各種の処理を実行する上において必要なデータなども適宜記憶される。
尚、本明細書において、記録媒体に記録されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理は、もちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理を含むものである。