【実施例1】
【0013】
本実施例のモーション操作装置100は、例えばヘッドアップディスプレイ(以下、HUDと称する)等の画像表示装置を有する自動車等の車両に搭載されている。モーション操作装置100は、運転手等のユーザ(以下、単にユーザと称する)を撮影した画像に基づいて、HUDによりフロントガラスに重畳して表示された操作ボタン等の表示画像に対しユーザが非接触で行った操作を判定する操作判定装置である。
【0014】
図1は、本実施例のモーション操作装置100の構成を示すブロック図である。モーション操作装置100は、センサ部10、画像処理部11及び操作情報判定部12を有する。
【0015】
センサ部10は、イメージセンサ10L及びイメージセンサ10Rから構成されている。イメージセンサ10L及び10Rは、車両内部に設置されたカメラに搭載され、ユーザの手及び顔面を含む上半身を撮影した画像を生成する撮像素子である。
【0016】
図2Aは、イメージセンサ10L及び10Rを搭載するカメラ及びフロントガラスとユーザとの位置関係を示す図である。イメージセンサ10Lを搭載するカメラCA1は、フロントガラスFGの手前且つユーザから見て左斜め前方に配置されている。イメージセンサ10Rを搭載するカメラCA2は、フロントガラスFGの手前且つユーザから見て右斜め前方に配置されている。
【0017】
HUDにより、操作ボタン等を表す表示画像DIがフロントガラスFGに重畳して表示される。ユーザは、
図2Bに示すように、あたかも表示画像DIに触れて操作するように手及び指を動かす。カメラCA1及びCA2は、表示画像DIを視認するユーザの顔及び表示画像DIを操作するように動くユーザの手を含む画像をそれぞれ撮影する。
【0018】
再び
図1を参照すると、イメージセンサ10LはカメラCA1の撮影により取得した撮影画像である画像データVD1を画像処理部11に供給する。同様に、イメージセンサ10RはカメラCA2の撮影により取得した撮影画像である画像データVD2を画像処理部11に供給する。
【0019】
画像処理部11は、ハードウェア処理部20及びソフトウェア処理部30から構成されている。ハードウェア処理部20は、特定の処理(すなわち、非プログラマブルな処理)を行う専用ハードウェアから構成され、論理回路部21及びメモリ部22を含む。ソフトウェア処理部30は、CPU(Central Processing Unit)等から構成され、プログラムに従った処理を行う処理部である。
【0020】
図3は、ハードウェア処理部20が実行する処理の処理ブロック及び所定のプログラムの実行によりソフトウェア処理部30に形成される機能ブロックを示すブロック図である。
【0021】
ハードウェア処理部20は、イメージセンサ10Lから供給された画像データVD1に基づいて、カメラCA1により撮影された撮影画像内でのユーザの顔、眼、手及び指先の位置を検出する検出処理を行う。ユーザの顔及び眼の位置を検出する検出処理は、顔認識処理(S11)、眼認識処理(S12)、眼の2D座標化処理(S13)、及び顔の2D座標化処理(S14)を含む。
【0022】
まず、ハードウェア処理部20は、イメージセンサ10Lから供給された画像データVD1に基づいて、画像データVD1を2次元座標上に展開した2次元画像の中からユーザの顔を検出(すなわち、顔の画像を抽出)する顔認識処理(S11)を行う。顔認識処理では、例えば運転席とカメラCA1との位置関係等に基づいてユーザの顔面があると想定される位置や範囲を画定し、2次元画像中の対応する位置(例えば、中央部)に存在する肌色領域を検出することによりユーザの顔を認識する。
【0023】
次に、ハードウェア処理部20は、検出した顔の画像からユーザの眼を検出(すなわち、眼の画像を抽出)する眼認識処理(S12)を行う。眼認識処理では、例えば顔画像中のユーザの眼があると想定される位置に存在する白い領域及び黒い領域(すなわち、白目及び黒目)を検出することによりユーザの眼を検出する。
【0024】
眼認識処理(S12)の実行後、ハードウェア処理部20は、検出した眼の画像に基づいて、2次元画像上の眼の位置を表す座標位置情報を生成する2D座標化処理(S13)を実行する。
【0025】
図4は、論理回路部21及びメモリ部22の構成と、顔認識処理、眼認識処理及び2D座標化処理からなる一連の処理を実行する際の処理動作の流れとを模式的に示すブロック図である。
【0026】
論理回路部21は、第1論理回路21−1、第2論理回路21−2、・・・第n論理回路21−n(nは2以上の整数)からなる論理回路群と、座標化論理回路23と、を含む。メモリ部22は、第1メモリ22−1、第2メモリ22−2、・・・第nメモリ22−nからなるメモリ群と、参照メモリ24と、を含む。第1メモリ22−1〜第22−nには、第1論理回路21−1〜第n論理回路21−nによる演算結果のデータが書き込まれる。一方、参照メモリ24は、例えば座標平面情報を格納するメモリであり、第1論理回路21−1〜第n論理回路21−nによるデータの書き込みを受けない。
【0027】
論理回路群のうちの第1論理回路21−1〜第k論理回路21−k(kはk<nの自然数)は、第1メモリ22−1〜第kメモリ22−kを用いて顔認識処理(S11)を実行する。その際、第1論理回路21−1〜第k論理回路21−kの各々は、例えば2次元画像全体を走査するように各ドット(ピクセル)について所定の行列演算を行い、顔の輪郭を検出する。
【0028】
第1論理回路21−1は、画像データVD1に対して行列演算を行い、演算結果のデータを第1メモリ22−1に格納する。第2論理回路21−2は、第1メモリ22−1から読み出したデータに対して行列演算を行い、演算結果のデータを第2メモリ22−2に格納する。以下、第k論理回路21−kまで同様の処理を行い、顔認識処理の最終的な演算結果を示す顔画像データを第kメモリ22−kに格納する。これにより、
図5Aに示すように、2次元画像CPから顔画像FPが抽出される。
【0029】
論理回路群のうちの第(k+1)論理回路21−(k+1)〜第n論理回路21−nは、第(k+1)メモリ22−(k+1)〜第nメモリ22−nを用いて眼認識処理(S12)を実行する。その際、第(k+1)論理回路21−(k+1)〜第n論理回路21−nの各々は、例えば顔画像全体を走査するように各ドット(ピクセル)について所定の行列演算を行い、眼を検出する。
【0030】
第(k+1)論理回路21−(k+1)は、第kメモリ22−kから顔画像FPの画像データを読み出して行列演算を行い、演算結果のデータを第(k+1)メモリ22−(k+1)に格納する。第(k+2)論理回路21−(k+2)は、第(k+1)メモリ22−(k+1)から読み出したデータに対して行列演算を行い、演算結果のデータを第(k+2)メモリ22−(k+2)に格納する。以下、第n論理回路21−nまで同様の処理を行い、眼認識処理の最終的な演算結果を示す眼の画像データを第nメモリ22−nに格納する。これにより、
図5B及び
図5Cに示すように、顔画像FPから眼の画像EPが抽出される。
【0031】
座標化論理回路23は、第nメモリ22−n及び参照メモリ24を用いて、眼の2D座標化処理(S13)を実行する。座標化論理回路23は、第nメモリ22−nから眼の画像EPの画像データを読み出し、参照メモリ24に格納されている座標平面情報に基づいて、2次元の座標平面における眼の位置を示す座標位置情報CD1を生成する。これにより、
図5Dに示すように、眼の位置を示す座標(例えば、(X1,Y1))が得られる。
【0032】
再び
図3を参照すると、ハードウェア処理部20は、顔認識処理(S11)により検出された顔の画像データに基づいて2D座標化処理(S14)を実行し、2次元画像上におけるユーザの顔の位置を表す座標位置情報を生成する。例えば、座標化論理回路23は、第kメモリ22−kから顔画像EPの画像データを読み出し、参照メモリ24に格納されている座標平面情報に基づいて、2次元の座標平面における顔の位置を示す座標位置情報CD2を生成する。
【0033】
以上の処理により、カメラCA1により撮影された撮影画像内でのユーザの顔及び眼の位置が検出される。
【0034】
また、ハードウェア処理部20は、これと並行して、カメラCA1により撮影された撮影画像内でのユーザの手及び指先の位置を検出する検出処理を実行する。手及び指先の位置を検出する検出処理は、手認識処理(S15)、指先認識処理(S16)、指先の2D座標化処理(S17)、及び手の2D座標化処理(S18)を含む。
【0035】
手認識処理(S15)では、ハードウェア処理部20は、イメージセンサ10Lから供給された画像データVD1に基づいて、画像データVD1を2次元座標上に展開した2次元画像の中からユーザの手を検出する。
【0036】
図2Aに示すように、フロントガラスFGに重畳して表示された表示画像DIをユーザが操作しようとする場合、ユーザの手は目の位置よりも低い下方から上方に向けて伸びている。そこで、ハードウェア処理部20は、2次元画像の下方から伸びる肌色領域を検出することにより、ユーザの手を検出する。
【0037】
ハードウェア処理部20の論理回路部21を構成する前段部分の論理回路(例えば、第1論理回路21−1〜第k論理回路21−k)の各々は、顔認識処理の場合と同様、2次元画像全体を走査するように各ドット(ピクセル)について所定の行列演算を行い、手の輪郭を検出する。第1論理回路21−1は、画像データVD1に対して行列演算を行い、演算結果のデータを第1メモリ22−1に格納する。第2論理回路21−2〜第k論理回路21〜kは、メモリから読み出したデータに対する行列演算及び演算結果のメモリへの格納を順次行い、手認識処理の最終的な演算結果を示す手の画像データを第kメモリ22−kに格納する。
【0038】
指先認識処理(S16)では、ハードウェア処理部20は、手の先端部を検出することにより、ユーザの指先を検出する。その際、ハードウェア処理部20の論理回路部21を構成する後段部分の論理回路(例えば、第(k+1)論理回路21−(k+1)〜第n論理回路21−n)の各々は、例えば手の画像全体を走査するように各ドット(ピクセル)について所定の行列演算を行い、指先を検出する。第(k+1)論理回路21−(k+1)は、第kメモリ22−kから手の画像データを読み出して行列演算を行い、演算結果のデータを第(k+1)メモリ22−(k+1)に格納する。第(k+2)論理回路21−(k+2)〜第n論理回路21〜nは、メモリから読み出したデータに対する行列演算及び演算結果のメモリへの格納を順次行い、指先認識処理の最終的な演算結果を示す指先位置の画像データを第nメモリ22−nに格納する。
【0039】
座標化論理回路23は、第nメモリ22−n及び参照メモリ24を用いて、指先の2D座標化処理(S17)を実行する。座標化論理回路23は、第nメモリ22−nから指先の画像データを読み出し、参照メモリ24に格納されている座標平面情報に基づいて、2次元の座標平面における指先の位置を示す座標情報CD3を生成する。
【0040】
ハードウェア処理部20は、手認識処理(S15)により検出された手の画像データに基づいて2D座標化処理(S18)を実行し、2次元画像上におけるユーザの手の位置を表す座標位置情報を生成する。例えば、座標化論理回路23は、第kメモリ22−kから手の画像データを読み出し、参照メモリ24に格納されている座標平面情報に基づいて、2次元の座標平面における手の位置を示す座標位置情報CD4を生成する。
【0041】
以上の処理により、カメラCA1により撮影された撮影画像内でのユーザの手及び指先の位置が検出される。
【0042】
ハードウェア処理部20は、イメージセンサ10Rから供給された画像データVD2に対しても同様の処理を行う。すなわち、ハードウェア処理部20は、イメージセンサ10Rから供給された画像データVD2に基づいて、カメラCA2により撮影された撮影画像内におけるユーザの顔、眼、手及び指先の位置を検出する検出処理を行う。
【0043】
ユーザの顔及び眼の位置を検出する検出処理は、顔認識処理(S21)、眼認識処理(S22)、眼の2D座標化処理(S23)、及び顔の2D座標化処理(S24)を含む。ユーザの手及び指先の位置を検出する検出処理は、手認識処理(S25)、指先認識処理(S26)、指先の2D座標化処理(S27)、及び手の2D座標化処理(S28)を含む。ハードウェア処理部20は、論理回路部21を構成する各論理回路による行列演算、演算結果のメモリへの格納及び読出しを順次行うことにより、これらの処理を実行する。
【0044】
ハードウェア処理部20は、画像データVD1に基づく眼の座標情報CD1、顔の座標情報CD2、指先の座標情報CD3及び手の座標情報CD4と、画像データVD2に基づく眼の座標情報CD5、顔の座標情報CD6、指先の座標情報CD7及び手の座標情報CD8と、をソフトウェア処理部30に出力する。
【0045】
ソフトウェア処理部30は、ハードウェア処理部20から供給された各座標情報に基づいて、表示画像DIを表示する表示面(本実施例では、ディスプレイDS)に対するユーザの視線及びユーザの指先の位置を算出し、ユーザの指先の動作を判定する。
【0046】
ソフトウェア処理部30には、CPUが所定のプログラムを実行することにより、視線ベクトル生成部31、指先位置生成部32、視線ベクトル生成部33、指先位置生成部34、視線ベクトル合成部35、指先位置合成部36、2D視線位置変換部37、2D指先位置変換部38及び操作判定部39が機能ブロックとして形成される。
【0047】
視線ベクトル生成部31は、画像データVD1に基づく眼の座標情報CD1及び顔の座標情報CD2に基づいて、ユーザの視線方向を示す視線ベクトルSV1を生成する。指先位置生成部32は、画像データVD1に基づく指先の座標情報CD3及び手の座標情報CD4に基づいて、ユーザの指先の位置及びその変化を示す指先位置ベクトルFV1を生成する。
【0048】
視線ベクトル生成部33は、画像データVD2に基づく眼の座標情報CD5及び顔の座標情報CD6に基づいて、ユーザの視線方向を示す視線ベクトルSV2を生成する。指先位置生成部34は、画像データVD2に基づく指先の座標情報CD7及び手の座標情報CD8に基づいて、ユーザの指先の位置及びその変化を示す指先位置ベクトルFV2を生成する。
【0049】
視線ベクトル合成部35は、画像データVD1に基づく視線ベクトルSV1及び画像データVD2に基づく視線ベクトルSV2を合成する。これにより、ユーザの左斜め前方から撮影した画像に基づいて算出されたユーザの視線とユーザの右斜め前方から撮影した画像に基づいて算出されたユーザの視線とを合成した視線ベクトルSVが生成される。
【0050】
指先位置合成部36は、画像データVD1に基づく指先位置ベクトルFV1及び画像データVD2に基づく指先位置ベクトルFV2を合成する。これにより、ユーザの左斜め前方から撮影した画像に基づいて算出されたユーザの指先位置とユーザの右斜め前方から撮影した画像に基づいて算出されたユーザの指先位置とを合成した指先位置ベクトルFVが生成される。
【0051】
2D視線位置変換部37は、視線ベクトル合成部35により生成された視線ベクトルSVに基づいて、ユーザの視線位置を表示画像DIの表示面(すなわち、フロントガラスFG)に対する2次元の視線位置に変換し、表示面上の視線位置を示す視線位置情報SPを生成する。2D視線位置変換部37は、視線位置情報SPを操作情報判定部12に供給する。
【0052】
2D指先位置変換部38は、視線ベクトルSVと指先位置合成部36により生成された指先位置ベクトルFVとに基づいて、ユーザの指先位置を表示画像DIの表示面(すなわち、フロントガラスFG)を基準とした2次元の指先位置に変換し、表示面上の仮想の指先位置を示す指先位置情報FPを生成する。2D指先位置変換部38は、指先位置情報FPを操作情報判定部12に供給する。
【0053】
操作判定部39は、指先位置ベクトルFVに基づいて、ユーザの指先の動作(例えば、上下に移動している、円を描くように移動している等)を判定し、判定結果を示す判定情報ODを生成する。操作判定部39は、判定情報ODを操作情報判定部12に供給する。
【0054】
操作情報判定部12は、表示画像DIに対するユーザの操作(例えば、ボタンを押下した、フリックした等)を判定する判定部である。操作情報判定部12には、HUDにより表示されている表示画像DIについての表示情報HDI(何の操作ボタンをどの位置に表示しているか等)が供給される。操作情報判定部12は、表示情報HDIと、画像処理部11から供給された視線位置情報SP、指先位置情報FP及び判定情報ODと、に基づいて表示画像DIに対するユーザの操作を判定する。操作情報判定部12は、判定結果を示す操作情報OIをナビゲーション装置等の他の装置(図示せず)に供給する。
【0055】
以上のようなハードウェア処理部20、ソフトウェア処理部30及び操作情報判定部12の動作により、フロントガラスに重畳して表示された表示画像を視認しつつ行ったユーザの動作が、操作ボタン等の表示画像に対する非接触での操作として判定される。
【0056】
本実施例のモーション操作装置100では、特定の検出処理のみを実行する専用ハードウェアからなるハードウェア処理部20が、撮影画像内でのユーザの顔、眼、手及び指先の位置を検出する検出処理(すなわち、顔、眼、手及び指先の認識処理及び2次元座標化の処理)を実行する。かかる処理は、2次元画像全体を走査するように各ピクセルについての行列演算を繰り返し行う処理等を含むため、それ以降の処理(視線ベクトルや指先位置ベクトルの生成及び合成、位置変換、操作判定)に比べて処理工程が多い。
【0057】
本実施例とは異なり、仮に上記の検出処理をソフトウェアで行った場合、CPUが各処理において共通に用いるメモリにその都度アクセスしつつ処理を行うことになるため、処理に時間がかかってしまう。これに対し、本実施例のモーション操作装置100では、ハードウェア処理部20が、既定の行列演算処理を実行する論理回路及び当該行列演算処理についてのデータを格納するメモリによってこれらの処理を行うため、比較的短時間で(すなわち、高速に)処理を行うことができる。また、処理時間の短縮に伴い、消費電力が低減される。
【0058】
従って、本実施例のモーション操作装置100によれば、ユーザの動作に基づく操作判定を高速且つ低消費電力で行うことが可能となる。
【実施例2】
【0059】
本実施例のモーション操作装置200は、例えばAR(Augmented Reality:拡張現実)の表示を行うHMD(Head Mounted Display)に搭載されている。モーション操作装置200は、ゴーグル型のHMDを装着したユーザの眼及び手を撮影した画像に基づいてユーザの動作を検出することにより、ディスプレイに表示された操作ボタン等の表示画像に対し、ユーザが非接触で行った操作を判定する装置である。
【0060】
図6A及び
図6Bは、本実施例におけるHMDに搭載されたカメラの配置、ディスプレイに表示される表示画像、HUDを装着したユーザの目及び手の位置を模式的に示す図である。
【0061】
図6Aに示すように、HMDには、ユーザの眼の近辺を撮影するカメラCA3が設けられている。カメラCA3は、例えばゴーグルの鼻あて部分(図示せず)に配置されている。ディスプレイDSには、操作ボタン等の表示画像DIが表示される。
【0062】
図6Bに示すように、HMDには、ユーザの眼の前方を撮影するカメラCA4が設けられている。カメラCA4は、例えばゴーグルのテンプル(つるの部分)TRに配置されている。表示画像DIは、ユーザの眼から見た場合、ディスプレイDSのさらに前方に虚像として表示される。このため、虚像として表示された操作ボタン等の表示画像DIに触れるかのようにユーザが手を動かした場合、カメラCA4の撮影範囲内にユーザの手が位置することになる。従って、ユーザの手がカメラCA4により撮影される。
【0063】
図7は、本実施例のモーション走査装置200の構成及び画像処理部における処理ブロック及び機能ブロックを示すブロック図である。モーション操作装置200は、センサ部10、画像処理部11及び操作情報判定部12を有する。
【0064】
センサ部10は、眼用イメージセンサ10E及びモーション用イメージセンサ10Mから構成されている。
【0065】
眼用イメージセンサ10Eは、ユーザの眼の近辺を撮影するカメラCA3に搭載されている。眼用イメージセンサ10Eは、カメラCA3の撮影により取得した画像データVD3を画像処理部11に供給する。
【0066】
モーション用イメージセンサ10Mは、ユーザの手を撮影するカメラCA4に搭載されている。モーション用イメージセンサ10Mは、カメラCA4の撮影により取得した画像データVD4を画像処理部11に供給する。
【0067】
画像処理部11は、特定の処理(すなわち、非プログラマブルな処理)を行う専用ハードウェアからなるハードウェア処理部40及びCPU等からなるソフトウェア処理部50から構成されている。
【0068】
ハードウェア処理部40は、
図4に示した実施例1のハードウェア処理部20と同様、複数の論理回路からなる論理回路部及びメモリ部を含む。
【0069】
ハードウェア処理部40は、眼用イメージセンサ10Eから供給された画像データVD3に基づいて、カメラCA3により撮影された撮影画像内でのユーザの眼の位置を検出する検出処理を行う。ユーザの眼の位置を検出する検出処理は、眼認識処理(S41)及び眼の2D座標化処理(S42)を含む。
【0070】
ハードウェア処理部40は、眼用イメージセンサ10Eから供給された画像データVD3に基づいて、画像データVD3を2次元座標上に展開した2次元画像の中からユーザの眼を検出(すなわち、眼の画像を抽出)する眼認識処理(S41)を行う。また、ハードウェア処理部40は、検出した眼の画像に基づいて、2次元画像上の眼の位置を表す座標位置情報を生成する2D座標化処理(S42)を実行する。
【0071】
ハードウェア処理部40は、実施例1のハードウェア処理部20と同様、複数の論理回路による行列演算、演算結果のメモリへの格納及び読出しを順次行うことにより、これらの処理を実行する。
【0072】
また、ハードウェア処理部40は、これと並行して、モーション用イメージセンサ10Mから供給された画像VD4に基づいて、カメラCA4により撮影された撮影画像内でのユーザの手及び指先の位置を検出する検出処理を実行する。手及び指先の位置を検出する検出処理は、手認識処理(S43)、指先認識処理(S44)、指先の2D座標化処理(S45)、及び手の2D座標化処理(S46)を含む。
【0073】
ハードウェア処理部40は、実施例1のハードウェア処理部20と同様、複数の論理回路による行列演算、演算結果のメモリへの格納及び読出しを順次行うことにより、これらの処理を実行する。
【0074】
ハードウェア処理部40は、眼の座標情報CDa、指先の座標情報CDb及び手の座標情報CDcをソフトウェア処理部30に出力する。
【0075】
ソフトウェア処理部50には、CPUが所定のプログラムを実行することにより、視線ベクトル生成部51、指先位置生成部52、視線位置変換部53、指先位置変換部54及び操作判定部55が機能ブロックとして形成される。
【0076】
視線ベクトル生成部51は、眼の座標情報CDaに基づいて、ユーザの視線方向を示す視線ベクトルSVを生成する。指先位置生成部52は、指先の座標情報CDb及び手の座標情報CDcに基づいて、ユーザの指先の位置及びその変化を示す指先位置ベクトルFVを生成する。
【0077】
視線位置変換部53は、視線ベクトルSVに基づいて、ユーザの視線位置をディスプレイDSに対する2次元の視線位置に変換し、表示面上の視線位置を示す視線位置情報SPを生成する。視線位置変換部53は、視線位置情報SPを操作情報判定部12に供給する。
【0078】
指先位置変換部54は、視線ベクトルSV及び指先位置ベクトルFVに基づいて、ディスプレイDS上の仮想の指先位置を示す指先位置情報FPを生成する。指先位置変換部54は、指先位置情報FPを操作情報判定部12に供給する。
【0079】
操作判定部55は、指先位置ベクトルFVに基づいて、ユーザの指先の動作を判定し、判定結果を示す判定情報ODを生成する。操作判定部55は、判定情報ODを操作情報判定部12に供給する。
【0080】
操作情報判定部12は、表示画像DIに対するユーザの操作を判定する判定部である。操作情報判定部12には、HMDにより表示されている表示画像DIについての表示情報HDIが供給される。操作情報判定部12は、表示情報HDIと、視線位置情報SP、指先位置情報FP及び判定情報ODに基づいて、表示画像DIに対するユーザの操作を判定する。操作情報判定部12は、判定結果を示す操作情報OIをナビゲーション装置等の他の装置(図示せず)に供給する。
【0081】
以上のような以上のようなハードウェア処理部40、ソフトウェア処理部50及び操作情報判定部12の動作により、ゴーグル型のHMDに表示された表示画像を視認しつつ行ったユーザの動作が、操作ボタン等に対する非接触での操作として判定される。
【0082】
本実施例のモーション操作装置200では、特定の検出処理のみを実行する専用ハードウェアからなるハードウェア処理部40が、撮影画像内でのユーザの眼、手及び指先の位置を検出する検出処理(すなわち、ユーザの眼、指先及び手の認識処理と2次元座標化の処理)を実行する。かかる処理は、2次元画像全体を走査するように各ピクセルについての行列演算を繰り返し行う処理等を含むため、それ以降の処理(視線ベクトルや指先位置ベクトルの生成、位置変換、操作判定)に比べて処理工程が多い。
【0083】
本実施例のモーション操作装置200では、既定の行列演算処理を実行する論理回路及び当該行列演算処理についてのデータを格納するメモリによってこれらの処理を実行するため、比較的短時間で(すなわち、高速に)処理を行うことができる。また、処理時間の短縮に伴い、消費電力が低減される。
【0084】
従って、本実施例のモーション操作装置200によれば、ユーザの動作に基づく操作判定を高速且つ低消費電力で行うことが可能となる。
【0085】
なお、本発明は上記実施形態に限定されない。例えば、上記実施例1では、ハードウェア処理部20がまずは顔認識処理(S11)を実行し、その後に眼認識処理(S12)を実行する場合を例として説明した。しかし、これとは異なり、顔認識処理の実行を前提とせずに眼認識処理を実行するようにハードウェア処理部20の各論理回路を構成しても良い。
【0086】
また、上記実施例1の顔認識処理の前及び上記実施例2の眼認識処理の前に、キャリブレーションを行っても良い。例えば、これらの処理に先立って、運転席に座っている状態(実施例1)やゴーグルを装着した状態(実施例2)におけるユーザの顔画像を撮影し、顔の位置及び眼の位置等の基準情報を得る。この基準情報を参照して顔認識処理及び眼認識処理を実行することにより、ハードウェア処理部はより円滑に一連の処理を実行することが可能となる。
【0087】
また、キャリブレーションの情報を利用して手認識処理を行うことができる。例えば、キャリブレーション時には2次元画像内に存在せず、実動作時に2次元画像内にフレームインしてきた肌色の物体を手として検出することができる。
【0088】
また、上記実施例では、論理回路部21を構成する論理回路の各々が、1つ前の論理回路によりメモリに格納されたデータ(すなわち、1つ前の論理回路による演算結果のデータ)をメモリから読み出して行列演算を行う場合を例として説明した。しかし、これに限られず、各論理回路が2つ以上前の論理回路によりメモリに格納されたデータ(すなわち、2つ以上前の論理回路による演算結果のデータ)をメモリから読み出して行列演算を行う構成であっても良い。また、複数のメモリから読み出したデータに基づいて行列演算を行う構成であっても良い。
【0089】
また、上記実施例では、座標化論理回路23が第nメモリ22−nから読み出したデータ(眼の画像EPの画像データ)と参照メモリ24から読み出したデータ(座標平面情報)とに基づいて座標位置情報CDを生成する一方、第2論理回路21−2〜第n論理回路21−nまでの他の論理回路は第1メモリ22−1〜第(n−1)メモリ22−(n−1)から読み出したデータに基づいて行列演算を行う(すなわち、参照メモリを用いない)場合を例として説明した。しかし、第1論理回路21−1〜第n論理回路21−nが、他の参照メモリ(すなわち、論理回路による書き込みを伴わないメモリ)から読み出したデータを用いて行列演算を行う構成としても良い。
【0090】
また、上記実施例では、参照メモリ24が第1論理回路21−1〜第n論理回路21−nによる書き込みを受けないメモリであるとして説明した。しかし、ハードウェア処理部20のメモリ部22の参照メモリ24は外部からのアクセスにより書き換え可能に構成されていても良い。従って、ハードウェア処理部20は特定の処理のみを実行するが、その特定の処理に用いるパラメータ等の一部は外部からの参照メモリの書き換えに応じて変更することが可能である。
【0091】
また、上記実施例では、視線ベクトル及び指先位置の生成、視線ベクトル及び指先位置の合成、視線位置及び指先位置の変換、操作判定の各処理をソフトウェア処理部が実行する場合を例として説明した。しかし、これらの処理をハードウェアにより実行する構成であっても良い。すなわち、本発明のモーション操作装置は、少なくとも画像データに基づくユーザの顔、眼、手及び指先の認識処理と、2次元座標化の処理と、をハードウェア処理部が実行すれば良く、他の処理はソフトウェア又はハードウェアのいずれの手段により実行しても良い。