(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-21
(45)【発行日】2022-07-29
(54)【発明の名称】操作判定装置及び操作判定方法
(51)【国際特許分類】
G06T 7/70 20170101AFI20220722BHJP
G06T 7/20 20170101ALI20220722BHJP
G06F 3/01 20060101ALI20220722BHJP
G06F 3/0346 20130101ALI20220722BHJP
G06F 3/038 20130101ALI20220722BHJP
【FI】
G06T7/70 A
G06T7/20 300A
G06F3/01 510
G06F3/01 570
G06F3/0346 423
G06F3/038 310A
(21)【出願番号】P 2018000735
(22)【出願日】2018-01-05
【審査請求日】2020-11-30
(73)【特許権者】
【識別番号】308033711
【氏名又は名称】ラピスセミコンダクタ株式会社
(74)【代理人】
【識別番号】100079119
【氏名又は名称】藤村 元彦
(74)【代理人】
【識別番号】100147728
【氏名又は名称】高野 信司
(72)【発明者】
【氏名】赤堀 博次
【審査官】山田 辰美
(56)【参考文献】
【文献】国際公開第2011/158511(WO,A1)
【文献】特開2005-138755(JP,A)
【文献】米国特許出願公開第2014/0184494(US,A1)
【文献】韓国公開特許第10-2010-0129629(KR,A)
【文献】特開2015-041279(JP,A)
【文献】特開平07-057103(JP,A)
【文献】特開2015-107155(JP,A)
【文献】特表2017-514193(JP,A)
【文献】坂寄 貴宏 他,実時間KLT Tracker向きハードウェアエンジンの実現,画像電子学会誌,第38巻 第5号,日本,画像電子学会,2009年09月25日,p.656-p.663
(58)【調査した分野】(Int.Cl.,DB名)
G06T 7/00-7/90
G06F 3/01
G06F 3/0346
G06F 3/038
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
表示画像に対してユーザが非接触で行った操作を判定する操作判定装置であって、
前記ユーザを撮影した撮影画像を取得する画像取得部と、
前記撮影画像に対して画像処理を行い、前記ユーザの視線の位置、前記ユーザの指先の位置、及び前記表示画像に対する前記ユーザの指先の動作を判定する画像処理部と、
を有し、
前記画像処理部は、
前記撮影画像の入力を受け、前記撮影画像から前記ユーザの眼及び指先の領域を検出し、前記撮影画像内での前記ユーザの眼及び指先の位置を
2次元の座標平面における位置座標として出力する
処理をハードウェアにより実行する第1処理部と、
前記位置
座標に基づいて、前記表示画像を表示する表示面に対する前記ユーザの視線及び指先の位置を算出し、前記ユーザの指先の動作を判定する
処理をソフトウェアにより実行する第2処理部と、
を含
むことを特徴とする操作判定装置。
【請求項2】
前記第1処理部は、前記撮影画像に対して行列演算を順次実行する複数の論理回路を含み、
前記複数の論理回路による前記行列演算の演算結果に基づいて、前記撮影画像内での前記ユーザの眼及び指先の位置を検出することを特徴とする請求項
1に記載の操作判定装置。
【請求項3】
前記第1処理部は、前記複数の論理回路の前記行列演算の演算結果を夫々格納する複数のメモリを含み、
前記複数の論理回路の各々は、前記複数のメモリのうちの対応するメモリから読み出したデータに基づいて、前記行列演算を実行することを特徴とする請求項
2に記載の操作判定装置。
【請求項4】
前記画像取得部は、前記ユーザを1の方向から撮影した第1の撮影画像と、前記ユーザを他の方向から撮影した第2の撮影画像と、を取得し、
前記第1処理部は、前記第1の撮影画像内での前記ユーザの眼及び指先の位置と、前記第2の撮影画像内での前記ユーザの眼及び指先の位置と、を夫々検出し、
前記第2処理部は、前記第1の撮影画像内での前記ユーザの眼の位置及び前記第2の撮影画像内での前記ユーザの眼の位置に基づいて前記表示面に対する前記ユーザの視線を算出し、前記第1の撮影画像内での前記ユーザの指先の位置及び前記第2の撮影画像内での前記ユーザの指先の位置に基づいて前記表示面に対する前記ユーザの指先の位置を算出する、
ことを特徴とする請求項1乃至
3のいずれか1に記載の操作判定装置。
【請求項5】
前記画像取得部は、前記ユーザの眼を撮影した第1の撮影画像と、前記ユーザの手を撮影した第2の撮影画像と、を取得し、
前記第1処理部は、前記第1の撮影画像内での前記ユーザの眼の位置と、前記第2の撮影画像内での前記ユーザの指先の位置と、を夫々検出し、
前記第2処理部は、前記第1の撮影画像内での前記ユーザの眼の位置に基づいて前記表示面に対する前記ユーザの視線を算出し、前記第2の撮影画像内での前記ユーザの指先の位置に基づいて前記表示面に対する前記ユーザの指先の位置を算出する、
ことを特徴とする請求項1乃至
3のいずれか1に記載の操作判定装置。
【請求項6】
表示画像に対するユーザの非接触での操作を受けるモーション操作装置における操作判定方法であって、
前記ユーザを撮影した撮影画像を取得するステップと、
前記撮影画像から前記ユーザの眼及び指先の領域を検出し、前記撮影画像内での前記ユーザの視線及び指先の位置を
2次元の座標平面における位置座標として出力する
処理をハードウェアにより実行するステップと、
前記位置座標に基づいて、前記表示画像を表示する表示面に対する前記ユーザの視線及び指先の位置をソフトウェアにより算出するステップと、
前記表示画像に対する前記ユーザの指先の動作をソフトウェアにより判定するステップと、
を含むことを特徴とする操作判定方法。
【請求項7】
前記撮影画像内での前記ユーザの視線及び指先の位置を検出するステップは、
前記ハードウェアに含まれる複数の論理回路により、前記撮影画像に対して行列演算を順次実行するステップと、
前記行列演算の実行結果に基づいて、前記撮影画像内での前記ユーザの眼及び指先の位置を2次元の座標平面における位置座標に変換するステップと、
を含むことを特徴とする請求項
6に記載の操作判定方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、操作判定装置及び操作判定方法に関する。
【背景技術】
【0002】
近年、自動車等の車両にヘッドアップディスプレイ(以下、HUDと称する)が搭載され始めている。HUDは、例えば運転席前方のフロントウィンドウに映像を重畳して表示させる。このため、HUDによる表示には、運転者の視線移動を抑えつつ情報伝達ができるメリットがある。
【0003】
しかし、HUDの表示を見て何らかの操作を行う場合、運転者はコンソール上のスイッチを用いて操作を行うため、視線を大きく外さなければならない。そこで、ユーザの手の動き等を撮影した画像に基づいてユーザの動作を判定し、何の操作がなされたのかを判定することにより、ディスプレイに表示されたスイッチ等の操作部に実際には触れていないにも関わらず、触れたような感覚で操作することが可能な装置が提案されている(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
上記の特許文献1に開示されている装置では、手の画像の画像処理、画像処理の結果に基づく操作の判定、操作に対応する表示等の処理を、装置に搭載されたコンピュータが行う。すなわち、画像処理を含む一連の処理は、ソフトウェアにより行われる。
【0006】
しかし、手の動きを撮影した画像から操作の判定に用いる情報を生成する画像処理は、処理が複雑であり、計算の実行数が多い。そのため、かかる画像処理をソフトウェアで行う場合、処理速度に時間がかかり、消費電力が大きいという問題があった。
【0007】
本発明は上記問題点に鑑みてなされたものであり、表示画像に対する非接触での操作を高速且つ低消費電力で判定することが可能な操作判定装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明に係る操作判定装置は、表示画像に対してユーザが非接触で行った操作を判定する操作判定装置であって、前記ユーザを撮影した撮影画像を取得する画像取得部と、前記撮影画像に対して画像処理を行い、前記ユーザの視線の位置、前記ユーザの指先の位置、及び前記表示画像に対する前記ユーザの指先の動作を判定する画像処理部と、を有し、前記画像処理部は、前記撮影画像の入力を受け、前記撮影画像から前記ユーザの眼及び指先の領域を検出し、前記撮影画像内での前記ユーザの眼及び指先の位置を2次元の座標平面における位置座標として出力する処理をハードウェアにより実行する第1処理部と、前記位置座標に基づいて、前記表示画像を表示する表示面に対する前記ユーザの視線及び指先の位置を算出し、前記ユーザの指先の動作を判定する処理をソフトウェアにより実行する第2処理部と、を含むことを特徴とする。
【0009】
また、本発明に係る操作判定方法は、表示画像に対するユーザの非接触での操作を受けるモーション操作装置における操作判定方法であって、前記ユーザを撮影した撮影画像を取得するステップと、前記撮影画像から前記ユーザの眼及び指先の領域を検出し、前記撮影画像内での前記ユーザの視線及び指先の位置を2次元の座標平面における位置座標として出力する処理をハードウェアにより実行するステップと、前記位置座標に基づいて、前記表示画像を表示する表示面に対する前記ユーザの視線及び指先の位置をソフトウェアにより算出するステップと、前記表示画像に対する前記ユーザの指先の動作をソフトウェアにより判定するステップと、を含むことを特徴とする。
【発明の効果】
【0010】
本発明に係る操作判定装置によれば、表示画像に対する非接触での操作を高速且つ低消費電力で判定することが可能となる。
【図面の簡単な説明】
【0011】
【
図1】実施例1のモーション操作装置の構成を示すブロック図である。
【
図2A】実施例1におけるカメラ及びフロントガラスとユーザとの位置関係を模式的に示す図である。
【
図2B】実施例1におけるユーザの手及び指と表示画像との位置関係を模式的に示す図である。
【
図3】実施例1の画像処理部における処理ブロック及び機能ブロックを示すブロック図である。
【
図4】ハードウェア処理部の構成の一部を示すブロック図である。
【
図5D】目の2次元座標化処理を模式的に示す図である。
【
図6A】実施例2におけるカメラ及びディスプレイとユーザの目との位置関係を模式的に示す図である。
【
図6B】実施例2におけるユーザと表示画像との位置関係を模式的に示す図である。
【
図7】実施例2の画像処理部における処理ブロック及び機能ブロックを示すブロック図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施例について、図面を参照して説明する。なお、以下の各実施例における説明及び添付図面においては、実質的に同一又は等価な部分には同一の参照符号を付している。
【実施例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次元座標化の処理と、をハードウェア処理部が実行すれば良く、他の処理はソフトウェア又はハードウェアのいずれの手段により実行しても良い。
【符号の説明】
【0092】
10 センサ部
10L,10R イメージセンサ
10E 眼用イメージセンサ
10M モーション用イメージセンサ
11 画像処理部
12 操作情報判定部
20,40 ハードウェア処理部
21 論理回路部
22 メモリ部
23 座標化論理回路
24 参照メモリ
30,50 ソフトウェア処理部
31,33 視線ベクトル生成部
32,34 指先位置生成部
35 視線ベクトル合成部
36 指先位置合成部
37 2D視線位置変換部
38 2D指先位置変換部
39 操作判定部
51 視線ベクトル生成部
52 指先位置生成部
53 視線位置変換部
54 指先位置変換部
55 操作判定部