(58)【調査した分野】(Int.Cl.,DB名)
第1のカメラ座標を備える第1の単体カメラと第2のカメラ座標を備える第2の単体カメラを含む独立型のステレオ・カメラで撮影した画像を利用して3次元空間に存在するデバイスを制御するためにコンピュータに、
前記ステレオ・カメラの外部パラメータを構成する平行移動ベクトルを未知数にして回転行列を計算するステップと、
前記平行移動ベクトルが未知の状態の前記第1の単体カメラの画像座標および前記第2の単体カメラの画像座標から前記デバイスに対する所定のジェスチャを構成する共通特徴点のグローバル座標を計算するステップと、
前記平行移動ベクトルが未知の状態の前記第1の単体カメラの画像座標および前記第2の単体カメラの画像座標から前記デバイスの共通特徴点の前記グローバル座標を計算するステップと、
前記ジェスチャの共通特徴点が形成する認識空間に対する前記デバイスの共通特徴点の帰属性を判別するステップと
前記帰属性の判別に応じて前記デバイスに制御信号を送るステップと
を有する処理をさせるためのコンピュータ・プログラム。
前記ジェスチャが人物による指差しジェスチャで、前記認識空間を前記指差しジェスチャの共通特徴点を含む直線で構成した請求項1に記載のコンピュータ・プログラム。
前記第1の単体カメラと前記第2の単体カメラがネットワークで接続されており、前記第1の単体カメラおよび前記第2の単体カメラが撮影した複数のフレームのなかで撮影時刻が接近したフレームを選択して前記ジェスチャと前記デバイスの共通特徴点の前記グローバル座標を計算するステップを有する請求項1に記載のコンピュータ・プログラム。
【発明の概要】
【発明が解決しようとする課題】
【0007】
一般的なステレオ・カメラは、工場で複数の単体カメラを同一の筐体に組み込んでキャリブレーションをしてから出荷する。このときグローバル座標はステレオ・カメラを構成するいずれかの単体カメラのカメラ座標や2つのカメラ座標の中間位置などに設定することができる。このようなステレオ・カメラを組み込み型のステレオ・カメラということにする。組み込み型のステレオ・カメラは、撮影場所でさらにキャリブレーションをしないでも3次元座標の計測ができる。
【0008】
人物のジェスチャをステレオ・カメラで撮影してデバイスを制御する場合は、ジェスチャの際に人物の顔の方向、姿勢および移動範囲などがどのように変化しても、最適な共通特徴点を撮影する必要がある。しかし、組み込み型のステレオ・カメラは、設置時にキャリブレーションする負担がないという利点はあるが、カメラの設置場所、撮影の方向およびカメラ台数などが制約を受ける。
【0009】
ネットワークで接続した複数の単体カメラを撮影現場でキャリブレーションしてステレオ・カメラとして構成することが考えられる。このようなステレオ・カメラを独立型のステレオ・カメラということにする。独立型のステレオ・カメラは、単体カメラの撮影方向に対する設置の自由度が高く台数の追加も容易に行うことができるので、良好な共通特徴点を撮影する点では都合がよい。ただし独立型のステレオ・カメラの利点を生かすためには、撮影現場で迅速かつ容易にキャリブレーションができることが前提になる。
【0010】
キャリブレーションには先行技術としての特許文献に示したようにさまざまな方法があるが、いずれも精度を欠いたり、時間がかかったり、または複雑であったりするため独立型のステレオ・カメラには採用しにくい。特に単体カメラは筐体に収納されておりカメラ座標の原点の位置や画像面の方向を特定することは難しいため、単体カメラの筐体間の距離を測定しても正確な平行移動ベクトルを求めることは容易ではない。本発明は、このような事情のなかで、独立型のステレオ・カメラの利便性を高めるものである。
【0011】
そこで本発明の目的は、独立型のステレオ・カメラを利用して被写体の存在を判別する方法を提供することにある。さらに本発明の目的は、平行移動ベクトルが未知のステレオ・カメラで被写体の存在を判別する方法を提供することにある。さらに本発明の目的は、そのようなステレオ・カメラで空間に存在するデバイスを制御する方法を提供することにある。さらに本発明の目的は、そのような方法を実現するデバイス制御システム、およびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【0012】
本発明の第1の態様では、第1のカメラ座標を備える第1の単体カメラと第2のカメラ座標を備える第2の単体カメラを含む独立型のステレオ・カメラで撮影した画像を利用して3次元空間に存在するデバイスを制御するコンピュータ・プログラムを提供する。第1の単体カメラの画像座標および第2の単体カメラの画像座標からデバイスに対する所定のジェスチャを構成する共通特徴点のグローバル座標を計算する。第1の単体カメラの画像座標および第2の単体カメラの画像座標からデバイスの共通特徴点のグローバル座標を計算する。ジェスチャの共通特徴点が形成する認識空間に対するデバイスの共通特徴点の帰属性を判別する。帰属性の判別に応じてデバイスに制御信号を送る。
【0013】
上記構成によれば、独立型のステレオ・カメラであってもデバイスの共通特徴点のジェスチャの共通特徴点が形成する認識空間に対する帰属性を判別することで、デバイスの制御をすることができる。帰属性の判別でデバイスが認識空間の内外のいずれにあるかを判断できるため、本発明では、認識空間およびデバイスがグローバル座標における絶対座標を特定する必要がない。
【0014】
したがって、ジェスチャを構成する共通特徴点のグローバル座標とデバイスの共通特徴点のグローバル座標を計算するために、第1のカメラ座標と第2のカメラ座標の位置関係を未知数にして、相互のカメラ座標の回転量を計算するキャリブレーションを実行することができる。このようなキャリブレーションはフルキャリブレーションよりも簡単に行うことができる。
【0015】
ジェスチャは人物による指差しジェスチャとし、認識空間は指差しジェスチャの共通特徴点を含む直線で構成することができる。また認識空間は、指差しジェスチャの共通特徴点を含み直線に垂直な平面で仕切った空間を含むことができる。帰属性の判別は、直線に対するデバイスの共通特徴点の接近の度合いで判断することができる。接近には一致も含む。
【0016】
帰属性の判別は、直線とデバイスの複数の共通特徴点が形成する平面の交差で判断することができる。第1の単体カメラと第2の単体カメラがネットワークで接続されており、第1の単体カメラおよび第2の単体カメラが撮影した複数のフレームのなかで撮影時刻が接近したフレームを選択してジェスチャとデバイスの共通特徴点のグローバル座標を計算することができる。
【0017】
本発明の第2の態様では、第1の単体カメラと第2の単体カメラで構成した独立型のステレオ・カメラからフレーム・シーケンスを受け取ることが可能な装置が物体の存在を判別する方法を提供する。物体を構成するターゲット空間の共通特徴点とユーザが存在を認識している認識空間の共通特徴点を登録する。さらに第1の単体カメラと第2の単体カメラがそれぞれ撮影した画像の共通特徴点からグローバル座標における認識空間の範囲を画定する。さらに第1の単体カメラと第2の単体カメラがそれぞれ撮影した画像の共通特徴点からグローバル座標におけるターゲット空間の共通特徴点を画定する。つづいて認識空間に対するターゲット空間の帰属性を判別する。
【0018】
本発明の第3の態様は、独立型のステレオ・カメラを含むデバイス制御システムを提供する。デバイス制御システムは、それぞれフレーム・シーケンスを出力する複数の単体カメラと、複数の共通特徴点のテンプレートを格納した登録部と、複数の単体カメラが撮影した画像から登録部を参照してジェスチャを構成する共通特徴点の画像座標を計算するジェスチャ認識部とを有する。さらに、複数の単体カメラが撮影した画像から登録部を参照してデバイスを構成する共通特徴点の画像座標を計算するデバイス認識部と、ジェスチャを構成する共通特徴点が形成した空間に対するデバイスを構成する共通特徴点が形成した空間の帰属性を3次元空間で判断する帰属性判別部とを有する。
【発明の効果】
【0019】
本発明により、独立型のステレオ・カメラを利用して被写体の存在を判別する方法を提供することができた。さらに本発明により、平行移動ベクトルが未知のステレオ・カメラで被写体の存在を判別する方法を提供することができた。さらに本発明により、そのようなステレオ・カメラで空間に存在するデバイスを制御する方法を提供することができた。さらに本発明により、そのような方法を実現するデバイス制御システム、およびコンピュータ・プログラムを提供することができた。
【発明を実施するための形態】
【0021】
[帰属性の概念]
図1は、本実施の形態にかかる独立型のステレオ・カメラによる被写体の存在を判別する概念を説明するための図である。
図1では、原点をOとするグローバル座標(Xw,Yw,Zw)を定義している。グローバル座標には、あらかじめユーザが認識している被写体の共通特徴点が構築する空間(認識空間100)と、ユーザが存在を判別したい被写体の共通特徴点が構築する空間(ターゲット空間200)が存在する。
【0022】
認識空間100とターゲット空間200は双方または一方が運動するため、相対的な位置関係が時間的に変化する。本発明では、独立型のステレオ・カメラに対する従来のようなキャリブレーションをしない。したがって、認識空間100とターゲット空間200についてグローバル座標の原点からの距離(絶対値)は計算しない。本発明では、被写体を継続的に監視して、ターゲット空間200の存在を認識空間100に対するターゲット空間200の相対的な位置関係または帰属性を通じて判別する。
【0023】
独立型のステレオ・カメラ300を構成する単体カメラ301、303は、グローバル座標に対して姿勢および位置を拘束しないで設置する。単体カメラ301、303が、それぞれ同一または異なる所定のフレーム・レートで撮影画像のフレームを出力すると、ステレオ・カメラ300は同一時刻または接近した時刻に撮影した2つのフレームから共通特徴点のグローバル座標を、固定値である未知数を含む値として計算する。
【0024】
ステレオ・カメラ300は、固定値である未知数を含むグローバル座標を計算する場合であっても事前にキャリブレーションをする必要がある。このとき単体カメラ301、303の内部パラメータは既知として扱ってもよいし、設置場所で取得するようにしてもよいが、本発明では外部パラメータのなかで平行移動ベクトルを未知数として扱う。すなわち、外部パラメータの回転行列は、単体カメラ301、303を設置するたびに、あるいはさらに別の単体カメラを追加するたびに推定するが、平行移動ベクトルは推定しない。
【0025】
本明細書においては、回転行列と平行移動ベクトルを推定する従来のキャリブレーションをフルキャリブレーションといい、回転行列だけを推定し平行移動ベクトルを推定しないキャリブレーションを簡易キャリブレーションということにする。簡易キャリブレーションの方法については、一例として非特許文献1に記載するが、本発明は周知の簡易キャリブレーションの手法を利用することができる。簡易キャリブレーションはフルキャリブレーションに比べて遙かに負担が軽いが、これまではその後フルキャリブレーションを行ってから物体の存在を判別している。これまで独立型のステレオ・カメラに簡易キャリブレーションをして間接的に物体の存在を判別する研究は行われていない。
【0026】
図1の例示では、認識空間100は共通特徴点P1〜P4を含み、ターゲット空間200は共通特徴点Q1〜Q4を含む。ステレオ・カメラ300は、共通特徴点P1〜P4から認識空間100の領域を特定し、共通特徴点Q1〜Q4からターゲット空間200の領域を特定する。ただし、ステレオ・カメラ300はフルキャリブレーションではなく簡易キャリブレーションをしているため、グローバル座標の絶対値を計算することはできない。
【0027】
認識空間100はユーザがグローバル座標の絶対値を知らないでもその存在を認識できる空間である。認識空間100がターゲット空間200を含む状態をターゲット空間200が認識空間100に帰属するといい、帰属する状態を帰属性があるという。ステレオ・カメラ300は、ターゲット空間200の存在を、認識空間100に対する帰属性から判別する。後に適用例として説明するように、認識空間100は、一例としてユーザのジェスチャを構成する共通特徴点が構築する空間に相当し、ターゲット空間200は被制御デバイスを構成する共通特徴点が構築する空間に相当する。なお、ターゲット空間200が認識空間100に完全に含まれない場合でも、所定の閾値の範囲で接近している状態も帰属する範疇に含める。
【0028】
認識空間100およびターゲット空間200は、それぞれ0次元空間(点)、1次元空間(線)、2次元空間(平面)または3次元空間(立体)のいずれかとすることができる。認識空間100は一例において、共通特徴点P1、P2を含む直線100a、直線100aに平行な法線を備え共通特徴点P2を含む平面100b、共通特徴点P3〜P5を含む平面100cのような無限の領域とすることができる。認識空間100は、また、共通特徴点P1、P2で領域が画定した線分、共通特徴点P3〜P5で領域が画定した三角形100d、共通特徴点P6〜P9で領域が画定した立体100eのような有限の領域でもよい。さらに認識空間100は、平面100bを境界にした2つの空間の一方とすることができる。
【0029】
これに対して認識空間100に帰属性があるターゲット空間200は、一例として、直線100a上の共通特徴点Q1、共通特徴点P1、P2で領域が画定した線分上の共通特徴点Q2、平面100c上の共通特徴点Q3、三角形100dに存在する共通特徴点Q4、Q5の線分、または、立体100eの中に存在する共通特徴点Q6〜Q9で領域が画定した点、三角形、または立体とすることができる。
【0030】
[基線長Lが未知のステレオ・カメラによる空間の特定]
図2は、簡易キャリブレーションをした単体カメラ301、303の基線長Lを未知数にしたままで、認識空間100の共通特徴点Pとターゲット空間200の共通特徴点Qのグローバル座標(X1,Z1)、(X2、Z2)を計算して、帰属性を判別する原理を説明する図である。説明を容易にするために、共通特徴点P、Qは、グローバル座標のXw−Zw平面に存在することを前提に説明する。
【0031】
単体カメラ301のカメラ座標をグローバル座標(Xw,Yw,Zw)に一致させ単体カメラ301、303を平行等位に配置している。平行等位の単体カメラ301、303は、各カメラ座標がグローバル座標と平行で、かつ、各画像面が同一平面に存在する。単体カメラ301のカメラ座標の原点(レンズ中心)と共通特徴点P、Qを結ぶ線(視線)と基線が形成する角度をα1、α2とし、単体カメラ303のカメラ座標の原点(レンズ中心)から共通特徴点P、Qに対する視線と基線が形成する角度をβ1、β2とする。
【0032】
このとき、共通特徴点P、Qの座標は式(1)、(2)で計算することができる。式(1)、(2)は、共通特徴点P,Qの座標が、基線長Lと、視線と基線長がつくる角度α、βから計算することができることを示している。このことは、基線長Lが未知であるために共通特徴点P、Qのグローバル座標の絶対値が計算できなくても、基線長L、角度α、βが不変であれば、共通特徴点P、Qの相互関係は不変であることを意味している。
【0034】
[簡易キャリブレーションとグローバル座標の計算]
図3、
図4は、簡易キャリブレーションをして、共通特徴点Pのグローバル座標(Xp,Yp,Zp)を計算する方法を説明する図である。一例において基準カメラに設定した単体カメラ301のカメラ座標をグローバル座標(Xw,Yw,Zw)に一致させ、原点をOとするカメラ座標(X,Y、Z)を備えている単体カメラ303を参照カメラとする。ただし、グローバル座標の原点は、いずれのカメラ座標からも独立して定義することもできる。
【0035】
単体カメラ303のカメラ座標は、グローバル座標に対して回転および平行移動をしている。単体カメラ301は、2次元の画像座標(Ul,Vl)を定義した仮想画像面305aを有し、単体カメラ303は2次元の画像座標(U'r,V'r)を定義した仮想画像面305bを備えている。単体カメラ301、303は、内部パラメータのキャリブレーションが終了しており、仮想撮像面305a、305bの画像から、2次元の正規化した画像座標を提供することができる。単体カメラ301、303の光軸307a、307bは、それぞれZw軸、Z軸に一致しかつ仮想撮像面305a、305bに対して垂直である。
【0036】
単体カメラ303は、単体カメラ301に対して光軸307bの方向を拘束しないで設置するため、グローバル座標(Xw,Yw,Zw)とカメラ座標(X,Y,Z)の対応する座標軸間には自由度が3の不特定の回転が生じている。単体カメラ301が撮影した共通特徴点Pのグローバル座標(Xp,Yp,Zp)と仮想撮像面305aの画像座標(ul,vl)の関係は式(3)のとおりである。Aは内部パラメータに相当する。単体カメラ303が撮影したグローバル座標における共通特徴点Pのグローバル座標(Xp,Yp,Zp)と仮想撮像面305bの画像座標(u'2,v'2)の関係は式(4)のとおりである。(R|t)は外部パラメータで、Rは回転行列に相当し、tは平行移動ベクトル(tx,ty,tz)に相当する。
【0038】
簡易キャリブレーションをした時点では、平行移動ベクトルtは未知であるが、回転行列Rの推定は終了している。回転行列Rが既知であれば、式(4)から平行移動ベクトルtを未知数としてグローバル座標(Xp,Yp,Zp)、画像座標(u'2,v'2)に対応する単体カメラ303の画像座標(u2,v2)を計算することができる。画像座標(u2,v2)は、画像座標(u'2,v'2)を回転がない状態に換算した値である。
【0039】
図4は、簡易キャリブレーションが終了したステレオ・カメラ300の状態を示している。簡易キャリブレーションが終了しているため、単体カメラ303のカメラ座標は、グローバル座標の原点OwからX軸、Y軸、Z軸方向に平行移動ベクトル(a、b、c)だけシフトしているが、座標軸は相互に平行として扱うことができる。単体カメラ301の画像座標を(ul,vl)とし、単体カメラ303の画像座標を(u2,v2)としたときにピンホールカメラのモデルを利用して共通特徴点Pのグローバル座標(Xp、Yp、Xp)は、式(5)として求めることができる。
【0041】
式(5)は、3次元座標(Xp,Yp,Zp)が、単体カメラ301の画像座標(u1,v1)および単体カメラ303の回転行列で変換された画像座標(u2,v2)と、平行移動ベクトル(a、b、c)から求まることを示している。平行移動ベクトルが未知数のときは、絶対座標を計算することはできないが、単体カメラ301、303を設置した後に位置および姿勢を固定しておくことを条件にすれば、平行移動ベクトルが未知数のままでも、ターゲット空間200の帰属性を判別することはできる。
【0042】
[認識空間に対するターゲット空間の帰属性の判別]
つぎに、式(5)を利用してターゲット空間の帰属性を判別する方法の一例を説明する。式(6)は、グローバル座標が(Xa,Ya,Za)、(Xb,Yb,Zb)の
図1に示した共通特徴点P1、P2を通過する直線100aの式を示している。共通特徴点P1、P2のグローバル座標は式(5)で計算する。
【0044】
直線100aに対するターゲット空間Q1の帰属性は、式(6)のX、Y、Zに式(5)で計算した共通特徴点Q1の座標を代入して等式が成立するかどうか、あるいは、左辺と右辺の値の差が所定の閾値未満であるか否かで判断することができる。式(7)は、グローバル座標が(X2,Y2,Z2)の
図1に示す共通特徴点P2を含み、直線100aに平行な線を法線ベクトル(p,q,r)とする平面100bの式を示している。
【0045】
p(X−X2)+q(Y−Y2)+r(Z−Z2)=0 (7)
式(7)を利用すると、認識空間100またはターゲット空間200の存在を平面100bで区切った空間に制限することができる。たとえば、認識空間100を平面100bより共通特徴点P1に近い領域に設定して、その空間でだけ認識空間100の成立を認めるようにすることができる。このとき、
図1に示す任意の共通特徴点Qnのグローバル座標を(Xn,Yn,Zn)とすれば、共通特徴点Qnと平面100bの符号付きの距離mは式(8)で計算することができる。
【0047】
式(8)から共通特徴点Qnは、mが正の値の場合は法線ベクトルが存在する空間、mが0の場合は平面100b上、mが負の値の場合は法線ベクトルが存在する空間と反対側の空間に存在する。このように、式(5)で計算したグローバル座標で直線や平面の式を特定して、識別空間100に対するターゲット空間の帰属正を判別することができる。平面100bを利用して無限の大きさをもつ認識空間100またはターゲット空間200の範囲を画定すると、後に説明するようにコンピュータ資源および消費電力の節約をもたらすことができる。
【0048】
[デバイス制御システム]
図5は、被制御デバイス480a〜480dを制御するデバイス制御システム400の概要を説明するための図である。有線または無線接続のネットワーク420で接続された制御装置430と4台の単体カメラ401〜407は独立型のステレオ・カメラを構成する。なお、単体カメラの台数は2台以上であればとくに制限はない。複数の単体カメラ401〜407は、被写体の共通特徴点を良好な角度から撮影できるように、3次元空間のそれぞれ異なる位置に光軸を自由な方向に向けて配置することができる。
【0049】
設置時に単体カメラ401〜407の姿勢および相互の位置関係を拘束する必要がないことは良質な共通特徴点の撮影を可能にするため、独立型のステレオ・カメラの大きな利点である。制御装置430は簡易キャリブレーションをして、グローバル座標をいずれかの共通特徴点に設定したり4台の単体カメラ401〜407のなかから選択したいずれかのカメラ座標に一致させたりして設定することができる。制御装置430は、すべての単体カメラ401〜407から独立した筐体に設けてもよいし、いずれかの単体カメラに組み込むようにしてもよい。
【0050】
単体カメラ401〜407は、撮影を開始すると30fpsといった所定のフレーム・レートで制御装置430にタイムスタンプの付いた画像データのフレーム・シーケンスを出力する。制御装置430は、被制御デバイス480a〜480dのいずれかの操作を意図するユーザのジェスチャ(認識空間100に対応)を撮影した画像データから、ジェスチャに対する被制御デバイスの帰属性を判別して、帰属したと判断したときは被制御デバイス480に制御信号を送る。ここに被制御デバイス480a〜480dはターゲット空間200を構築し、ジェスチャは認識空間100を構築する。被制御デバイス480a〜480dは、ネットワーク420または異なる経路を通じて制御装置430から制御信号を受け取ることができる。
【0051】
図6は、ユーザが意図する被制御デバイス480aに向けて指差しをするジェスチャ(指差しジェスチャ)をして制御する様子を示している。一例において被制御デバイス480a〜480dは、室内に存在する空調装置、テレビ、音響装置または照明器具などとすることができる。他の例において、被制御デバイス480a〜480dは、会議室に存在するプロジェクター、照明器具、マイクロフォン、電動式スクリーンまたはモニター・テレビなどとすることができる。
【0052】
被制御デバイス480a〜480dはそれぞれ、被制御デバイス480aに例示したようにターゲット空間200を構築する1つ以上の共通特徴点Q1s〜Q5sを備えている。一例において、共通特徴点Q1s〜Q4sは、平面を形成できるように被制御デバイス480aの4隅に対応している。他の例において共通特徴点Q5sは、被制御デバイス480aのいずれかのスイッチが存在する部位に対応している。
【0053】
単体カメラ401〜407は、人物および被制御デバイス401〜407をさまざまな角度から撮影できるように配置している。
図6ではユーザが、被制御デバイス480aを操作するために共通特徴点Q5sに対して指差しジェスチャをしている。このとき指差しジェスチャは、ユーザの額の両目の中央に対応する位置に設定した共通特徴点P1sと指先に設定した共通特徴点P2sを通過する指差し直線490が、1次元の認識空間100を形成する。
【0054】
被制御デバイス480aのQ1s〜Q4sが形成する平面または共通特徴点Q5sは、ターゲット空間200を形成する。指差し直線490が形成する認識空間100は、ユーザが何らかの意図をもって形成したものであり、指差し直線490はユーザがその存在および領域を認識している空間といえる。ターゲット空間200が認識空間100に帰属することは、ユーザが意図する空間にターゲット空間200が存在することを意味している。制御装置430は指差しジェスチャが形成する認識空間100を通じて被制御デバイス480aに対するユーザの意思を認識することができる。
【0055】
このような認識空間100を通じたターゲット空間200の間接的な認識方法は、共通特徴点P1s、P2s、Q1s〜Q5sのグローバル座標における絶対座標の取得を不要にする。さらに、共通特徴点P2sを含み指差し直線490に垂直な平面491を補助的に構築することができる。平面490は
図1に示した平面100bに対応しており、制御装置430が人物またはジェスチャをトラッキングして有効な指差しジェスチャを認識するためのトラッキング空間を画定する。
【0056】
図7は、制御装置430の構成を示す機能ブロック図である。制御装置430は、入力部431、ジェスチャ認識部433、デバイス認識部435、帰属性判別部437、出力部439、キャリブレーション実行部441および特徴点登録部443を含んでいる。制御装置430の各要素は、コンピュータを構成するCPU、システム・メモリ、不揮発性メモリ、および入出力デバイスなどのハードウェア資源およびCPUが実行するソフトウェア資源で実現することができる。なお、ソフトウェア資源は、制御装置430の図示しない記憶装置に格納しておくか、ネットワーク430を通じてサーバからダウンロードすることができる。
【0057】
入力部431は、単体カメラ401〜407から、カメラの識別子と撮影時刻を示すタイムスタンプの付いたフレーム・シーケンスを受け取ってジェスチャ認識部433またはキャリブレーション実行部441に送る。特徴点登録部443は、人物、指差しジェスチャ、指差しジェスチャの共通特徴点および被制御デバイス480a〜480dの共通特徴点のテンプレート、および被制御デバイス480a〜480dの識別子を格納している。
【0058】
制御装置430は、ユーザの指示によりキャリブレーション・モードと制御モードのいずれかで動作する。ジェスチャ認識部433、デバイス認識部435、および帰属性判別部437は制御モードで動作し、キャリブレーション実行部441はキャリブレーション・モードで動作する。入力部431はキャリブレーション・モードのときにフレームをキャリブレーション実行部441に送り、制御モードのときにジェスチャ認識部433に送る。
【0059】
キャリブレーション実行部441は、非特許文献1に記載する方法またはその他の周知の方法で簡易キャリブレーションを実行して、各単体カメラ401〜407のカメラ座標のグローバル座標に対する回転行列を計算する。キャリブレーション実行部441は回転行列をジェスチャ認識部433およびデバイス認識部435に送る。ユーザは、単体カメラ401〜407の位置および姿勢を変更するたびにおよび単体カメラの台数を増やすたびに簡易キャリブレーションを実行させる。
【0060】
ジェスチャ認識部433は、単体カメラ401〜407の複数のフレームのなかから最も認識の確率が高いフレームを選択して、人物および指差しジェスチャを認識する。ジェスチャ認識部433は、平面491で仕切られたトラッキング空間を画定する。ジェスチャ認識部433はトラッキング空間で行われた指差しジェスチャを認識したときに、式(3)、(4)で説明したように共通特徴点P1s、P2sの画像座標(Ul,Vl)、(Ur,Vr)を計算する。ジェスチャ認識部433は画像座標を計算したときに、単体カメラ401〜407の識別子、共通特徴点P1s、P2sの識別子および画像座標、およびタイムスタンプを帰属性判別部437に送り、さらにデバイス認識部435に各単体カメラ401〜407のフレームを送る。
【0061】
デバイス認識部435は、単体カメラ401〜407のフレームのなかから最も認識の確率が高いフレームを選択して被制御デバイス480a〜480dを認識し、共通特徴点Q1s〜Q5sの画像座標(Ul,Vl)、(Ur,Vr)を計算する。デバイス認識部435は、単体カメラ401〜407の識別子、共通特徴点Q1s〜Q5sの識別子および画像座標、およびタイムスタンプを帰属性判別部437に送る。
【0062】
帰属性判別部437は、タイムスタンプの時刻が同一かあるいは所定の閾値未満のフレームが含む共通特徴点から式(5)でジェスチャの共通特徴点P1s、P2sのグローバル座標を計算して式(6)の指差し直線490の式を特定する。さらに、帰属性判別部437は、被制御デバイス480aの共通特徴点Q1s〜Q5sのグローバル座標から、指差し直線490に対する被制御デバイス480aの帰属性を判別する。
【0063】
帰属性を判別した帰属性判別部437は、特徴点登録部443を参照して取得した被制御デバイス480aの識別子を出力部439に送る。帰属性は、共通特徴点Q1sないしQ4sが形成する平面と指差し直線490が交差するかどうか、あるいは、共通特徴点Q5sが指差し直線490に帰属するか否かで判別することができる。出力部439はネットワーク420を通じてまたはNFC通信などで、識別子に対応する被制御デバイス480aに制御信号を出力する。
【0064】
[制御システムの動作]
図8はデバイス制御システム400の動作を示すフローチャートである。ブロック501でユーザは特徴点登録部443に、制御に必要な共通特徴点のテンプレートを格納する。ブロック503で、単体カメラ401〜407を被写体の撮影に都合がよい位置に自由な姿勢で配置する。ブロック505でユーザが制御装置430に指示してキャリブレーション・モードで動作させ、簡易キャリブレーションを実行する。制御装置430は、外部パラメータの平行移動ベクトルは推定しないが回転行列を推定する。
【0065】
ブロック507で制御装置430が制御モードで動作すると、ブロック509でジェスチャ認識部433は任意のタイイングでユーザが行う指差しジェスチャを認識するために、単体カメラ401〜407が撮影した単一または複数の人物のトラッキングを開始する。人物またはジェスチャのトラッキング、ジェスチャの認識、被制御デバイス480a〜480dの認識、共通特徴点の座標計算、および帰属性の判別などには電力を含めて多量のコンピュータ資源を消費する。
【0066】
したがって制御装置430がトラッキング空間を限定して、その範囲を外れたジェスチャはトラッキングの対象から除外することができれば無駄に資源を消費しないため有益である。ここでは被制御デバイス480a〜480dを制御するための指差しジェスチャを、トラッキング空間を画定する目的にも利用する。ただし、被制御デバイス480a〜480dを制御する指差しジェスチャとトラッキング空間を画定するジェスチャは異なっていてもよい。
【0067】
ブロック511で、ユーザがトラッキング空間を画定するための指差しジェスチャをする。被制御デバイス480a〜480dを制御するための指差しジェスチャとトラッキング空間を画定するための指差しジェスチャを区別するために、ユーザは指差しジェスチャの前に制御装置430にトラッキング空間の画定をする指示をすることができる。その後ユーザは指差しジェスチャを自分の行動範囲の境界を画定する平面491を構築するために行う。ジェスチャ認識部433は、指先の共通特徴点P2sを通り指差し直線490に垂直な法線を有する平面491を設定する。
【0068】
ユーザは自分の周囲の異なる方向に対する複数回の指差しジェスチャをして、周りを囲む複数の平面491を設定しトラッキング空間を画定してもよい。ジェスチャ認識部433は、共通特徴点P2sを通過する1つまたは複数の平面491の内側に人物が存在する場合に限り、ジェスチャを認識してステレオ・マッチングによる共通特徴点P1s、P2sの画像座標を計算する。
【0069】
したがって、人物が平面491で画定された空間の内側に存在しない場合は、ジェスチャ認識部433は、ジェスチャの認識および共通特徴点P1s、P2sの座標計算をしない。さらにデバイス認識部435および帰属性判別部437も動作しないため画像座標やグローバル座標をユーザの位置とは無関係に継続的に計算する場合に比べて消費電力とコンピュータ資源の節約をすることができる。
【0070】
ブロック513でジェスチャ認識部433はデバイス制御のための指差しジェスチャを認識する。ブロック514でジェスチャ認識部433は、指差しジェスチャを構成する共通特徴点P1s、P2sの画像座標を計算して帰属性判別部437に送る。ブロック515でデバイス認識部435は、被制御デバイス480a〜480dの共通特徴点の画像座標Q1s〜Q5sを計算して帰属性判別部437に送る。
【0071】
ブロック517で帰属性判別部437は、撮影時刻が最も近い2つのフレームでステレオ・マッチングをして指差しジェスチャの共通特徴点P1s、P2sのグローバル座標を計算する。さらに帰属性判別部437は、共通特徴点P1s、P2sを通過する指差し直線490のパラメータを計算して認識空間100を画定する。
【0072】
ブロック519で帰属性判別部437は、撮影時刻が最も近い2つのフレームでステレオ・マッチングをして被制御デバイス480a〜480dの共通特徴点Q1s〜Q5sのグローバル座標を計算する。ブロック521で帰属性判別部437は、認識した共通特徴点Q1s〜Q5sの、指差し直線490に対する帰属性を判別する。ここでは、被制御デバイス480aを構成する共通特徴点Q1s〜Q4sが形成する平面または共通特徴点Q5sの指差し直線490に対する帰属性を判別する。
【0073】
ブロック523で帰属性判別部437はネットワーク420を通じて帰属性を判別した被制御デバイス480aに対して制御信号を送る。制御信号は、一例において、停止している被制御デバイス480aを動作させ、動作している被制御デバイス480aを停止させる信号とすることができる。あるいは制御信号は、被制御デバイス480aのスクリーンが表示する画面を変更する信号とすることができる。
【0074】
これまで、デバイス制御システム400を指差しジェスチャによる被制御デバイスの制御に適用する例を説明したが、本発明は認識空間100が3次元の場合にも適用できる。一例では、設置場所の制約や障害物があるために一般的な赤外線監視装置が設置できないような場所にデバイス制御システム400を設置する。監視区域に認識空間100を構築することで、ターゲット空間200となる人物や動物が認識空間100に入った場合にアラートを出すことができる。この場合は認識空間100のグローバル座標は固定であるが、ターゲット空間200のグローバル座標は時間的に変化する。このとき、画像認識をして人物や動物の識別を同時に行うことで、所定の監視区域への進入を人物や動物の特定も含めて行うことができる。
【0075】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。