(57)【要約】【課題】指示体の３次元的な位置を認識する技術を提供する。【解決手段】認識装置は、指示体の画像を撮影する単眼カメラと、画像を用いて指示体の先端部の空間座標を推定する空間座標推定部と、を備える。空間座標推定部は、画像から指示体を検出する指示体検出部と、画像における指示体の形状から指示体の先端部の奥行座標を推定する奥行座標推定部と、を含む。【選択図】図１
2020095671.tif 000002
【特許請求の範囲】
【請求項１】
操作者が有する指示体の空間座標を認識する認識装置であって、
前記指示体の画像を撮影する単眼カメラと、
前記画像を用いて前記指示体の先端部の空間座標を推定する空間座標推定部と、
を備え、
前記空間座標推定部は、
前記画像から前記指示体を検出する指示体検出部と、
前記画像における前記指示体の形状から前記指示体の前記先端部の奥行座標を推定する奥行座標推定部と、
を含む認識装置。
【請求項２】
請求項１に記載の認識装置であって、
前記奥行座標推定部は、
（ａ）前記画像において前記指示体の前記先端部を中心とした予め定められたサイズの関心領域内に存在する前記指示体の面積を先端部面積として算出し、前記先端部面積と前記奥行座標との間の予め定められた関係に従って前記先端部面積から前記奥行座標を推定する第１処理と、
（ｂ）前記画像における前記指示体の重心と前記先端部との間の距離を算出し、前記距離と前記奥行座標との間の予め定められた関係に従って前記距離から前記奥行座標を推定する第２処理と、
のいずれかの処理を実行する、認識装置。
【請求項３】
請求項１又は請求項２に記載の認識装置であって、
前記指示体検出部は、前記画像において、予め設定された皮膚色の領域を前記指示体として検出する、認識装置。
【請求項４】
請求項１から請求項３のいずれか一項に記載の認識装置であって、
前記指示体検出部は、前記画像において、前記指示体の重心から最も遠い前記指示体の部分の位置を前記先端部の２次元座標として検出する、認識装置。
【請求項５】
請求項１に記載の認識装置であって、
前記空間座標推定部は、前記画像が入力される入力ノードと、複数の出力ノードとを有するニューラルネットワークを含み、
前記指示体検出部は、前記複数の出力ノードのうち、前記指示体が存在するか否かを出力する第１出力ノードを含み、
前記奥行座標推定部は、前記先端部の奥行座標を出力する第２出力ノードを含む、
認識装置。
【請求項６】
請求項１から請求項５のいずれか一項に記載の認識装置であって、更に、
前記空間座標推定部で推定された前記先端部の空間座標に応じて、前記単眼カメラの前方に設定された仮想スクリーンにおけるタッチ操作又はスワイプ操作を実行する操作実行部、を備える認識装置。
【請求項７】
操作者が有する指示体の空間座標を認識する認識装置であって、
前記指示体の画像を撮影する単眼カメラと、
前記画像を用いて前記指示体の先端部の空間座標を推定する空間座標推定部と、
を備え、
前記空間座標推定部は、
前記画像から前記指示体を検出する指示体検出部と、
前記画像における前記指示体の中心部分の領域に含まれる任意の点と前記先端部との間の距離を算出し、前記距離と前記指示体の前記先端部の奥行座標との間の予め定められた関係に従って前記距離から前記奥行座標を推定する奥行座標推定部と、
を備える、認識装置。
【請求項８】
請求項７に記載の認識装置であって、
前記指示体検出部は、前記画像において、前記任意の点から最も遠い前記指示体の部分の位置を前記先端部の２次元座標として検出する、認識装置。
【請求項９】
操作者が有する指示体の空間座標を認識する認識方法であって、
（ａ）単眼カメラで撮影された前記指示体の画像から前記指示体を検出する工程と、
（ｂ）前記画像における前記指示体の形状から前記指示体の先端部の奥行座標を推定する工程と、
を含む認識方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、操作者が有する指示体の空間座標を認識する認識技術に関するものである。
【背景技術】
【０００２】
特許文献１には、単眼カメラを用いて手を撮像し、手の回転動作と払い動作の識別を行うシステムが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１８−１０５３９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術では、カメラの光軸に垂直な平面上における２次元的な手の動きを検出できるだけであり、３次元的な位置を認識することはできなかった。そこで、従来から、手の３次元的な位置を認識できる技術が望まれていた。このような課題は、手に限らず、他の種類の指示体の３次元的な位置を認識する場合に共通する課題であった。
【課題を解決するための手段】
【０００５】
本開示の一形態によれば、操作者が有する指示体の空間座標を認識する認識装置が提供される。この認識装置は、前記指示体の画像を撮影する単眼カメラと、前記画像を用いて前記指示体の先端部の空間座標を推定する空間座標推定部と、を備える。前記空間座標推定部は、前記画像から前記指示体を検出する指示体検出部と、前記画像における前記指示体の形状から前記指示体の前記先端部の奥行座標を推定する奥行座標推定部と、を含む。
【図面の簡単な説明】
【０００６】
【図１】指示体認識システムのブロック図。
【図２】第１実施形態における頭部装着型表示装置の機能ブロック図。
【図３】空間座標推定処理の手順を示すフローチャート。
【図４】指示体を含む画像を示す説明図。
【図５】奥行座標の変換式の例を示すグラフ。
【図６】指示体領域検出処理のフローチャート。
【図７】先端部検出処理のフローチャート。
【図８】奥行座標推定処理のフローチャート。
【図９】タッチ操作の様子を示す説明図。
【図１０】スワイプ操作の様子を示す説明図。
【図１１】第２実施形態における奥行座標推定処理のフローチャート。
【図１２】奥行座標推定処理の処理内容を示す説明図。
【図１３】第３実施形態における奥行座標推定処理のフローチャート。
【図１４】奥行座標推定処理の処理内容を示す説明図。
【図１５】第４実施形態における頭部装着型表示装置の機能ブロック図。
【図１６】第４実施形態における空間座標推定部の構成例を示す説明図。
【発明を実施するための形態】
【０００７】
A. 第１実施形態
図１は、第１実施形態における指示体認識システムのブロック図である。この指示体認識システムは、操作者ＯＰの頭部に装着される頭部装着型表示装置１００で構成されている。頭部装着型表示装置１００は、指示体ＰＢとしての手指の空間座標を認識する。
【０００８】
頭部装着型表示装置１００は、操作者ＯＰに画像を視認させる画像表示部１１０と、画像表示部１１０を制御する制御部１２０とを備える。画像表示部１１０は、操作者ＯＰの頭部に装着される装着体として構成されており、本実施形態では眼鏡形状を有する。画像表示部１１０は、右目用表示部１１２Ｒと左目用表示部１１２Ｌとを含む表示部１１２と、カメラ１１４とを備える。表示部１１２は、透過型の表示装置であり、表示部１１２を透過して視認される外界の風景ともに、表示部１１２に表示される画像を操作者ＯＰに視認させるように構成されている。すなわち、頭部装着型表示装置１００は、表示部１１２を通過して視認される外界の中に、表示部１１２で表示された画像が浮かび上がる透過型のヘッドマウントディスプレイである。
【０００９】
図１の例では、表示部１１２を用いて外界の空間内に仮想スクリーンＶＳが表示されており、操作者ＯＰは、指示体ＰＢを用いて仮想スクリーンＶＳ上における操作を実行する。本実施形態では、指示体ＰＢは手指である。頭部装着型表示装置１００は、カメラ１１４を用いて指示体ＰＢを含む画像を撮影し、その画像を処理することによって指示体ＰＢの先端部ＰＴの空間座標を認識する認識装置として機能する。頭部装着型表示装置１００は、更に、認識された指示体ＰＢの先端部ＰＴの空間的な位置やその軌跡を用いて、仮想スクリーンＶＳ上における操作を認識し、その操作に応じた処理を実行する。カメラ１１４としては、単眼カメラが使用される。
【００１０】
指示体ＰＢを認識する認識装置としては、頭部装着型表示装置１００に限らず、他の種類の装置を使用することも可能である。また、指示体ＰＢとしては、手指に限らず、操作者ＯＰが指示を与えるために使用する指示用ペンや指示棒などの他の物体を利用することも可能である。
【００１１】
図２は、第１実施形態における頭部装着型表示装置１００の機能ブロック図である。頭部装着型表示装置１００の制御部１２０は、プロセッサーとしてのＣＰＵ１２２と、記憶部１２４と、電源部１２６とを備える。ＣＰＵ１２２は、空間座標推定部２００及び操作実行部３００として機能する。空間座標推定部２００は、カメラ１１４を用いて撮影された指示体ＰＢの画像を用いて指示体ＰＢの先端部ＰＴの空間座標を推定する。操作実行部３００は、指示体ＰＢの先端部ＰＴの空間座標に応じた操作を実行する。
【００１２】
空間座標推定部２００は、指示体検出部２１０と奥行座標推定部２２０とを含む。指示体検出部２１０は、カメラ１１４を用いて撮影された指示体ＰＢの画像から、指示体ＰＢを検出する。奥行座標推定部２２０は、指示体ＰＢの画像における指示体ＰＢの形状から、指示体ＰＢの先端部ＰＴの奥行座標を推定する。指示体検出部２１０と奥行座標推定部２２０の機能の詳細については後述する。本実施形態において、空間座標推定部２００の機能は、記憶部１２４に記憶されたコンピュータープログラムをＣＰＵ１２２が実行することによって実現される。但し、空間座標推定部２００の機能の一部又は全部をハードウェア回路で実現してもよい。ＣＰＵ１２２は、更に、表示部１１２に画像を表示することによって、操作者ＯＰに画像を視認させる表示実行部としての機能も有しているが、図２では図示が省略されている。
【００１３】
図３は、空間座標推定処理の手順を示すフローチャートである。この空間座標推定処理は、空間座標推定部２００によって実行される。ステップＳ１００では、カメラ１１４を用いて指示体ＰＢの画像を撮影する。
【００１４】
図４は、指示体ＰＢを含む画像ＭＰを示す説明図である。以下に詳述するように、第１実施形態では、画像ＭＰの中で指示体ＰＢの領域である指示体領域ＲＢＲが検出され、また、指示体ＰＢである手指の指先が指示体ＰＢの先端部ＰＴとして認識される。更に、画像ＭＰ内において、先端部ＰＴを含む先端部領域の面積Ｓｐが算出される。以下ではこの面積Ｓｐを「先端部面積Ｓｐ」と呼ぶ。
【００１５】
画像ＭＰ内の位置は、横方向のｕ座標と、縦方向のｖ座標で表される。指示体ＰＢの先端部ＰＴの空間座標は、画像ＭＰの２次元座標（ｕ，ｖ）と奥行座標Ｚとを用いて、（ｕ，ｖ，Ｚ）で表すことが可能である。奥行座標Ｚは、図１において、カメラ１１４から指示体ＰＢの先端部ＰＴである指先までの距離である。
【００１６】
図３のステップＳ２００では、奥行座標Ｚの変換式を記憶部１２４から読み込む。
【００１７】
図５は、奥行座標の変換式の例を示すグラフである。第１実施形態において、奥行座標Ｚは、例えば以下の式で与えられる。
Ｚ＝ｋ／Ｓｐ0.5        …（１）
ここで、ｋは定数、Ｓｐは指示体ＰＢの先端部面積である。
この（１）式は、予め取得された複数の点（Ｚ１，Ｓｐ１）〜（Ｚｎ，Ｓｐｎ）の値を用いて算出した式であり、図５の例ではｎは３である。
【００１８】
上記（１）式は、指示体ＰＢの先端部の奥行座標Ｚが、指示体ＰＢの先端部面積Ｓｐの平行根に反比例することを示している。但し、（１）式以外の関係を表す式を使用することも可能である。但し、先端部面積Ｓｐと奥行座標Ｚとの関係は、一般に、指示体ＰＢの先端部面積Ｓｐが小さくなるほど奥行座標Ｚが大きくなるような関係である。このような先端部面積Ｓｐと奥行座標Ｚとの関係は、予めキャリブレーションを行うことによって決定され、記憶部１２４に記憶される。奥行座標Ｚの変換式としては、関数以外の形式のものを利用可能であり、例えば、先端部面積Ｓｐを入力とし奥行座標Ｚを出力とするルックアップテーブルを用いることも可能である。
【００１９】
図３のステップＳ３００では、指示体検出部２１０が、指示体ＰＢの画像から、指示体領域を検出する指示体領域検出処理を実行する。
【００２０】
図６は、指示体領域検出処理のフローチャートである。ステップＳ３１０では、画像ＭＰの中で、予め設定された皮膚色を有する領域を抽出する。本実施形態では、手指を指示体ＰＢとして使用するので、手指の色である皮膚色の領域が抽出される。この抽出のために、皮膚色の許容色範囲が予め設定されており、その許容色範囲内にある画素が連結した領域が皮膚色の領域として抽出される。手指以外の指示体を使用する場合には、その指示体の色を指示体色として予め設定しておき、指示体を撮影した画像内における指示体色の領域を指示体として認識することが可能である。
【００２１】
ステップＳ３２０では、皮膚色の領域のうちで最大の面積を有する領域を検出する。ここで、皮膚色の領域のうちで最大の面積を有する領域を検出する理由は、皮膚色の小さな領域を手指と誤認識することを防止するためである。ステップＳ３２０が終了すると、図３のステップＳ４００に進む。
【００２２】
なお、皮膚色などの指示体ＰＢの色を用いて指示体領域を検出する代わりに、他の方法を用いて指示体領域を検出するようにしてもよい。例えば、画像ＭＰ内の特徴点を検出し、画像ＭＰを複数の小区画に区分して、特徴点の数が予め定められた閾値よりも少ない区画を抽出することによって指示体領域を検出することが可能である。この方法は、手指などの指示体ＰＢは、特徴点が他の画像部分よりも少ないことを利用している。
【００２３】
特徴点は、例えば、ＯＲＢ（Oriented FAST and Rotated BRIEF）やＫＡＺＥなどのアルゴリズムを用いて検出することができる。ＯＲＢで検出される特徴点は、物体のコーナーに相当する特徴点である。具体的には、注目画素周りの１６画素を観測し、注目画素周りの画素の画素値が連続して明るいとき又は暗いときに、注目画素が物体のコーナーに相当する特徴点であるとして検出される。ＫＡＺＥで検出される特徴点は、エッジ部分を表す特徴点である。具体的には、画像に非線形拡散フィルターを適用して擬似的に解像度を低下させる処理を行い、その処理の前後における画素値の差分が閾値よりも小さい画素が特徴点として検出される。
【００２４】
図３のステップＳ４００では、指示体検出部２１０が、画像ＭＰ内に指示体領域ＲＢＲが存在することを検出できたか否かを判定する。この判定は、図６のステップＳ３２０で検出した皮膚色領域の面積が、予め設定された許容範囲内にあるか否かの判定である。ここで、皮膚色領域の許容範囲の上限値は、例えば、先端部ＰＴの奥行座標Ｚがその現実的な範囲内で最も小さく、かつ、指示体ＰＢがカメラ１１４の光軸に対して垂直な方向を向いているときの指示体領域ＲＢＲの面積として設定される。また、皮膚色領域の許容範囲の下限値は、例えば、先端部ＰＴの奥行座標Ｚがその現実的な範囲内で最も大きく、かつ、指示体ＰＢがカメラ１１４の光軸に対して現実的な範囲で最も傾いた方向を向いているときの指示体領域ＲＢＲの面積として設定される。
【００２５】
ステップＳ４００において、指示体領域ＲＢＲが存在することを検出されない場合には、ステップＳ３００に戻り、図６で説明した指示体領域検出処理が再度実行される。この２回目以降のステップＳ３００の処理では、指示体領域ＲＢＲをより検出し易いように検出条件が変更される。具体的には、例えば、ステップＳ３１０の皮膚色領域の抽出処理において、皮膚色の許容色範囲を前回のステップＳ３００の実行時の範囲からシフトさせるか、或いは、許容色範囲を拡大又は縮小する。
【００２６】
ステップＳ４００において指示体領域ＲＢＲが存在することを検出できた場合には、ステップＳ５００に進む。ステップＳ５００では、指示体検出部２１０が、先端部検出処理を実行する。
【００２７】
図７は、先端部検出処理のフローチャートである。ステップＳ５１０では、図４に示す指示体領域ＲＢＲの重心Ｇの座標（ｕ，ｖ）を算出する。ステップＳ５２０では、指示体領域ＲＢＲの輪郭ＣＨを検出する。具体的には、例えば、指示体領域ＲＢＲの凸包を指示体領域ＲＢＲの輪郭ＣＨとして検出する。この輪郭ＣＨは、指示体領域ＲＢＲの外形を近似した多角形であり、複数の頂点Ｖｎを直線で結んだ凸多角形である。
【００２８】
ステップＳ５３０では、指示体領域ＲＢＲの重心Ｇから、指示体領域ＲＢＲの輪郭ＣＨの複数の頂点Ｖｎまでの距離を使用して、指示体領域ＲＢＲの先端部ＰＴを検出する。具体的には、複数の頂点Ｖｎのうちで、重心Ｇからの距離が最も大きな頂点を、指示体領域ＲＢＲの先端部ＰＴとして検出する。
【００２９】
こうして指示体ＰＢの先端部ＰＴが検出されると、図３のステップＳ６００に進む。ステップＳ６００では、奥行座標推定部２２０が先端部ＰＴの奥行座標Ｚを推定する。
【００３０】
図８は、奥行座標推定処理のフローチャートである。ステップＳ６１０では、図４に示す関心領域Ｒrefを画像ＭＰ内に設定する。関心領域Ｒrefは、指示体ＰＢの先端部ＰＴを中心とした予め定められた形状と面積を有する領域である。図４の例では、関心領域Ｒrefは正方形の領域であるが、正方形以外の形状の領域としてもよく、例えば、長方形の領域や円形の領域としてもよい。
【００３１】
ステップＳ６２０では、関心領域Ｒref内にある皮膚色の領域の面積を先端部面積Ｓｐとして算出する。本願の発明者は、関心領域Ｒref内の先端部面積Ｓｐが、カメラ１１４の光軸に対する指示体ＰＢの傾きにほとんど依存せず、先端部ＰＴとカメラ１１４の距離にのみ依存することを見出した。このような関係が成立する理由は、関心領域Ｒrefが画像ＭＰ内に設定された予め定められた形状と面積を有する領域なので、カメラ１１４の光軸に対する指示体ＰＢの傾きが変化しても、関心領域Ｒref内に収まる指示体ＰＢの範囲が変化するだけで、その先端部面積Ｓｐがほぼ一定に維持されるからである。
【００３２】
ステップＳ６３０では、先端部面積Ｓｐから先端部ＰＴの奥行座標Ｚが算出される。この処理は、ステップＳ２００で読み込まれた奥行座標の変換式に従って実行される。
【００３３】
上述した奥行座標Ｚの推定処理では、画像ＭＰ内における指示体ＰＢの形状に応じて、先端部ＰＴの位置と先端部面積Ｓｐとが決定され、先端部面積Ｓｐに応じて奥行座標Ｚが推定されている。従って、奥行座標推定部２２０は、画像ＭＰにおける指示体ＰＢの形状から指示体ＰＢの先端部ＰＴの奥行座標Ｚを推定しているものと考えることが可能である。
【００３４】
指示体ＰＢの先端部ＰＴの奥行座標Ｚが推定されると、画像ＭＰ内における先端部ＰＴの座標（ｕ，ｖ）と合わせて、指示体ＰＢの先端部ＰＴの空間座標（ｕ，ｖ，Ｚ）が得られる。なお、空間座標としては、（ｕ，ｖ，Ｚ）以外の他の種類の３次元座標を用いても良い。例えば、頭部装着型表示装置１００の基準座標系で定義された３次元座標などを用いても良い。
【００３５】
頭部装着型表示装置１００の操作実行部３００は、指示体ＰＢの先端部ＰＴの位置を示す空間座標を用いて、先端部ＰＴの位置又はその軌跡に応じた処理を実行する。先端部ＰＴの位置又はその軌跡に応じた処理としては、例えば、図１に示したように、カメラ１１４の前方に設定された仮想スクリーンＶＳにおけるタッチ操作やスワイプ操作などの操作を行うことが可能である。
【００３６】
図９は、タッチ操作の様子を示す説明図である。タッチ操作は、仮想スクリーンＶＳ上で指示体ＰＢの先端部ＰＴを任意の位置ＰＰにタッチする操作である。このタッチ操作に応じて、例えば、アイコンなどのオブジェクトの選択や、アプリケーションの起動等の処理を実行することができる。
【００３７】
図１０は、スワイプ操作の様子を示す説明図である。スワイプ操作は、仮想スクリーンＶＳ上で指示体ＰＢの先端部ＰＴの位置ＰＰを移動させる操作である。このスワイプ操作に応じて、例えば、選択したオブジェクトの移動や、表示の切り替え、ロックの解除等の処理を実行することができる。
【００３８】
このように、第１実施形態では、画像ＭＰにおける指示体ＰＢの形状から指示体ＰＢの先端部ＰＴの奥行座標Ｚを推定するので、３次元空間における指示体ＰＢの先端部ＰＴの座標を検出することが可能である表示部１１２に表示される画像を操作者ＯＰに視認させるよう。
【００３９】
B. 第２実施形態
図１１は、第２実施形態における奥行座標推定処理のフローチャートであり、図１２はその処理内容を示す説明図である。第２実施形態は、奥行座標推定処理の詳細手順が第１実施形態と異なるだけであり、装置構成や奥行座標推定処理以外の処理は第１実施形態とほぼ同じである。
【００４０】
ステップＳ６４０では、指示体領域ＲＢＲの重心Ｇと先端部ＰＴの距離Ｌを算出する。ステップＳ６５０では、重心Ｇと先端部ＰＴの距離Ｌから奥行座標Ｚを算出する。ステップＳ６５０の処理では、図３のステップＳ２００で読み込まれた奥行座標Ｚの変換式を用いる。但し、この変換式は、重心Ｇと先端部ＰＴの距離Ｌと、奥行座標Ｚとの関係を示すものである。一般に、この関係は、重心Ｇと先端部ＰＴの距離Ｌが小さくなるほど奥行座標Ｚが大きくなるような関係として設定される。このような距離Ｌと奥行座標Ｚとの関係は、予めキャリブレーションを行うことによって決定され、記憶部１２４に記憶される。
【００４１】
このように、第２実施形態では、先端部面積Ｓｐの代わりに、指示体領域の重心Ｇと先端部ＰＴの距離Ｌを用いることによって、先端部ＰＴの奥行座標Ｚを推定することが可能である。
【００４２】
C.第３実施形態：
図１３は、第３実施形態における奥行座標推定処理のフローチャートであり、図１４はその処理内容を示す説明図である。第３実施形態は、奥行座標推定処理の詳細手順が第１実施形態と異なるだけであり、装置構成や奥行座標推定処理以外の処理は第２実施形態とほぼ同じである。
【００４３】
第３実施形態において、奥行座標推定処理（図１３）では、ステップＳ３００で検出した指示体領域に基づき、まずステップＳ７１０において、指示体の中心部分の領域に含まれる点ＡＰを設定する処理を行なう。点ＡＰは、指示体領域の中心部付近であれば、任意の点であってよい。例えば重心Ｇを中心とする所定半径の領域でもよく、画像における指示体内に描画可能な最大の内接円や最大の内接多角形として中心部分の領域を定めてもよい。また、指示体の中心部分の領域に含まれる任意の点とは、例えば重心であってもよく、指示体の輪郭ＣＨと先端ＰＴを挟む両側の２点で交わる直線のうち最大長となる直線の中点であってもよい。あるいは、指示体領域または輪郭ＣＨで囲まれた領域を面積が等しい２つの領域に分ける直線であって、互いに交差する直線を２つ見いだし、その交点として求めてもよい。もとより、上述した内接円内等の任意の点であってもよい。
【００４４】
こうして点ＡＰを設定した後、ステップＳ７２０において、点ＡＰと先端部ＰＴの距離Ｌを算出し、ステップＳ７３０において、この距離Ｌから奥行座標Ｚを算出する。先端部ＰＴは、既述した先端部検出処理（図７参照）と同様に、重心Ｇからの距離が最も大きくなる輪郭ＣＨ上の点として求めてもよいし、指示体領域ＲＢＲに設定した点ＡＰから、指示体領域ＲＢＲの輪郭ＣＨの複数の頂点Ｖｎまでの距離を使用して、指示体領域ＲＢＲの先端部ＰＴを検出してもよい。具体的には、複数の頂点Ｖｎのうちで、点ＡＰからの距離が最も大きな頂点を、指示体領域ＲＢＲの先端部ＰＴとして検出すればよい。
【００４５】
ステップＳ７３０において、距離Ｌから奥行座標Ｚを算出する際には、図３のステップＳ２００で読み込まれた奥行座標Ｚの変換式を用いる。但し、この変換式は、点ＡＰと先端ＰＴとの距離Ｌと奥行座標Ｚとの関係を、予め求めておいたものである。一般に、この関係は、指示体領域の中心部領域に含まれる点ＡＰと先端部ＰＴの距離Ｌが小さくなるほど奥行座標Ｚが大きくなるような関係として設定される。このような距離Ｌと奥行座標Ｚとの関係は、ステップＳ７１０で設定される点ＡＰの設定の手法に基づいて、予めキャリブレーションを行うことによって決定され、記憶部１２４に記憶される。
【００４６】
このように、第３実施形態では、第２実施形態で用いた指示体領域の重心Ｇの代わりに、指示体領域の中心部領域の任意の点ＡＰと先端部ＰＴの距離Ｌを用いることによって、先端部ＰＴの奥行座標Ｚを推定することが可能である。こうすれば、点ＡＰは、重心に限られないので、指示体の種類などに応じて、点ＡＰを定める際の自由度を高くできる。
【００４７】
D. 第４実施形態
図１５は、第４実施形態における頭部装着型表示装置１００の機能ブロック図である。第４実施形態の頭部装着型表示装置１００は、その空間座標推定部２４０の内部構成が図３に示した空間座標推定部２００と異なるだけであり、他の装置構成は第１実施形態と同じである。
【００４８】
図１６は、第４実施形態における空間座標推定部２４０の内部構成例を示す説明図である。この空間座標推定部２４０は、ニューラルネットワークによって構成されており、入力層２４２と中間層２４４と全結合層２４６と出力層２４８とを有する。このニューラルネットワークは、中間層２４４が畳み込みフィルターとプーリング層とを含む畳み込みニューラルネットワークである。但し、畳み込みニューラルネットワーク以外のニューラルネットワークを用いても良い。
【００４９】
入力層２４２の入力ノードには、カメラ１１４で撮影された画像ＭＰが入力される。中間層２４４は、畳み込みフィルター層とプーリング層とを含む。中間層２４４は、これらのフィルター層とプーリング層を複数含んでいても良い。中間層２４４では、画像ＭＰに応じた複数の特徴量が出力されて、全結合層２４６に入力される。全結合層２４６は、複数の全結合層を含んでいても良い。
【００５０】
出力層２４８は、４つの出力ノードＮ１〜Ｎ４を含む。第１の出力ノードＮ１は、画像ＭＰ内で指示体ＰＢが検出されたか否かを示すスコアＳ１を出力する。他の３つの出力ノードＮ２〜Ｎ４は、指示体ＰＢの先端部ＰＴの空間座標Ｚ，ｕ，ｖを出力する。なお、２次元座標ｕ，ｖを出力する出力ノードＮ３，Ｎ４は、省略してもよい。この場合には、先端部ＰＴの２次元座標ｕ，ｖを、他の処理で求めるようにしてもよい。具体的には、例えば、先端部ＰＴの２次元座標ｕ，ｖを図７で説明した先端部検出処理によって求めてもよい。
【００５１】
空間座標推定部２４０のニューラルネットワークの学習は、例えば、複数のカメラで撮影された複数の画像から得られる視差画像を用いて実行することができる。すなわち、視差画像から奥行座標Ｚが得られるので、複数の画像のうちの一つの画像に奥行座標Ｚを付与したデータを学習データとして用いることによって、ニューラルネットワークの学習を行うことが可能である。
【００５２】
ニューラルネットワークを利用した空間座標推定部２４０のうち、第１の出力ノードＮ１からスコアＳ１を出力する部分は、画像ＭＰから指示体ＰＢを検出する指示体検出部に相当する。また、第２の出力ノードＮ２から先端部ＰＴの空間座標Ｚを出力する部分は、画像ＭＰにおける指示体ＰＢの形状から指示体ＰＢの先端部ＰＴの奥行座標Ｚを推定する奥行座標推定部に相当する。
【００５３】
この第４実施形態においても、上述した第１実施形態ないし第３実施形態と同様に、画像ＭＰにおける指示体ＰＢの形状からその先端部ＰＴの奥行座標Ｚを推定するので、３次元空間における指示体ＰＢの先端部ＰＴの座標を検出することが可能である。
【００５４】
E. 他の実施形態
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態（aspect）によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
【００５５】
（１）本開示の第１の形態によれば、操作者が有する指示体の空間座標を認識する認識装置が提供される。この認識装置は、前記指示体の画像を撮影する単眼カメラと、前記画像を用いて前記指示体の先端部の空間座標を推定する空間座標推定部と、を備える。前記空間座標推定部は、前記画像から前記指示体を検出する指示体検出部と、前記画像における前記指示体の形状から前記指示体の前記先端部の奥行座標を推定する奥行座標推定部と、を含む。
この認識装置によれば、画像における指示体の形状からその先端部の奥行座標を推定するので、３次元空間における指示体の先端部の座標を検出できる。
【００５６】
（２）上記認識装置において、前記奥行座標推定部は、（ａ）前記画像において前記指示体の前記先端部を中心とした予め定められたサイズの関心領域内に存在する前記指示体の面積を先端部面積として算出し、前記先端部面積と前記奥行座標との間の予め定められた関係に従って前記先端部面積から前記奥行座標を推定する第１処理と、（ｂ）前記画像における前記指示体の重心と前記先端部との間の距離を算出し、前記距離と前記奥行座標との間の予め定められた関係に従って前記距離から前記奥行座標を推定する第２処理と、のいずれかの処理を実行する。
この認識装置によれば、先端部面積、又は、指示体の重心と先端部との間の距離、のいずれかを用いて指示体の先端部の奥行座標を推定できる。
【００５７】
（３）上記認識装置において、前記指示体検出部は、前記画像において、予め設定された皮膚色の領域を前記指示体として検出する。
この認識装置によれば、手指などの皮膚色の指示体を正しく認識できる。
【００５８】
（４）上記認識装置において、前記指示体検出部は、前記画像において、前記指示体の重心から最も遠い前記指示体の部分の位置を前記先端部の２次元座標として検出する。
この認識装置によれば、指示体の先端部の２次元座標を正しく検出できる。
【００５９】
（５）上記認識装置において、前記空間座標推定部は、前記画像が入力される入力ノードと、複数の出力ノードとを有するニューラルネットワークを含み、前記指示体検出部は、前記複数の出力ノードのうち、前記指示体が存在するか否かを出力する第１出力ノードを含み、前記奥行座標推定部は、前記先端部の奥行座標を出力する第２出力ノードを含む。
この認識装置によれば、ニューラルネットワークを用いて３次元空間における指示体の先端部の座標を検出できる。
【００６０】
（６）上記認識装置において、前記空間座標推定部で推定された前記先端部の空間座標に応じて、前記単眼カメラの前方に設定された仮想スクリーンにおけるタッチ操作又はスワイプ操作を実行する操作実行部、を備える。
この認識装置によれば、指示体を用いて仮想スクリーンにおけるタッチ操作やスワイプ操作を実現できる。
【００６１】
（７）本開示の第２の形態によれば、操作者が有する指示体の空間座標を認識する認識装置が提供される。この認識装置は、前記指示体の画像を撮影する単眼カメラと、前記画像を用いて前記指示体の先端部の空間座標を推定する空間座標推定部と、を備える。ここで、前記空間座標推定部は、前記画像から前記指示体を検出する指示体検出部と、前記画像における前記指示体の中心部分の領域に含まれる任意の点と前記先端部との間の距離を算出し、前記距離と前記指示体の前記先端部の奥行座標との間の予め定められた関係に従って前記距離から前記奥行座標を推定する奥行座標推定部と、を備えてよい。
この認識装置によれば、指示体の中心部分の領域に含まれる任意と先端部との間の距離を用いて指示体の先端部の奥行座標を推定できる。
【００６２】
（８）上記認識装置において、前記指示体検出部は、前記画像において、前記任意の点から最も遠い前記指示体の部分の位置を前記先端部の２次元座標として検出するものとしてよい。この認識装置によれば、指示体の先端部の２次元座標を正しく検出できる。
【００６３】
（９）本開示の第２の形態によれば、操作者が有する指示体の空間座標を認識する認識方法が提供される。この認識方法は、（ａ）単眼カメラで撮影された前記指示体の画像から前記指示体を検出する工程と、（ｂ）前記画像における前記指示体の形状から前記指示体の先端部の奥行座標を推定する工程と、を含む。
この認識方法によれば、画像における指示体の形状からその先端部の奥行座標を推定するので、３次元空間における指示体の先端部の座標を検出できる。
【符号の説明】
【００６４】
１００…頭部装着型表示装置、１１０…画像表示部、１１２…表示部、１１２Ｌ…左目用表示部、１１２Ｒ…右目用表示部、１１４…カメラ、１２０…制御部、１２２…ＣＰＵ、１２４…記憶部、１２６…電源部、２００…空間座標推定部、２１０…指示体検出部、２２０…奥行座標推定部、２４０…空間座標推定部、２４２…入力層、２４４…中間層、２４６…全結合層、２４８…出力層、３００…操作実行部
【図１】
2020095671.tif 000003
【図２】
2020095671.tif 000004
【図３】
2020095671.tif 000005
【図４】
2020095671.tif 000006
【図５】
2020095671.tif 000007
【図６】
2020095671.tif 000008
【図７】
2020095671.tif 000009
【図８】
2020095671.tif 000010
【図９】
2020095671.tif 000011
【図１０】
2020095671.tif 000012
【図１１】
2020095671.tif 000013
【図１２】
2020095671.tif 000014
【図１３】
2020095671.tif 000015
【図１４】
2020095671.tif 000016
【図１５】
2020095671.tif 000017
【図１６】
2020095671.tif 000018