(57)【要約】【課題】距離画像を用いて指示体の３次元空間における位置を精度よく検出することが可能な情報処理装置を提供する。【解決手段】情報処理装置１００は、投影面に画像を投影する投影部３１０と、指示体を含む投影面に対する距離情報を取得する取得部３０２と、距離画像から指示体の先端領域を抽出する指先領域抽出部３０４と、先端領域の画素群の取得部３０２に対する相対的な位置関係を検出する位置関係検出部３０６と、位置関係に基づいて指示体の先端位置を決定する指先位置決定部３０７と、先端位置に基づいて指示体による操作を検出する操作検出部３０８と、検出された操作に応じて生成した画像を投影部３１０に投影させる投影制御部３０９と、を備える。【選択図】図３
2018109899.tif 000002
【特許請求の範囲】
【請求項１】
所定の投影面に画像を投影する投影手段と、
指示体を含む前記投影面に対する距離情報を取得する取得手段と、
前記距離情報から得られる距離画像から前記指示体の先端領域を抽出する抽出手段と、
前記先端領域の画素群の前記取得手段に対する相対的な位置関係を検出する位置関係検出手段と、
前記位置関係に基づいて前記指示体の先端位置を決定する決定手段と、
前記先端位置に基づいて前記指示体による操作を検出する操作検出手段と、
検出された前記操作に応じた処理を行う制御手段と、を備えることを特徴とする、
情報処理装置。
【請求項２】
前記操作検出手段は、前記指示体による前記投影面へのタッチ操作を検出することを特徴とする、
請求項１記載の情報処理装置。
【請求項３】
前記先端領域の画素群を前記投影面が基準となる３次元空間上の点群に変換する変換手段をさらに備えており、
前記位置関係検出手段は、前記取得手段に対する前記点群の相対的な位置関係を、前記３次元空間における前記点群の分布及び前記点群の傾きの少なくとも一方として検出することを特徴とする、
請求項１又は２記載の情報処理装置。
【請求項４】
前記位置関係検出手段は、前記点群の前記投影面からの高さと点群数との関係を示すヒストグラムを作成し、前記取得手段に対する前記点群の相対的な位置関係を、前記点群のヒストグラム上での分布として検出することを特徴とする、
請求項３記載の情報処理装置。
【請求項５】
前記位置関係検出手段は、前記ヒストグラムから、前記指示体に応じた所定幅のウィンドウに含まれる点群数が最も多くなる位置を検索するとともに、前記検索した位置の前記ウィンドウ内で最も高さが低い値を検出し、
前記決定手段は、前記点群の前記最も高さが低い値となる位置を前記指示体の前記先端位置に決定することを特徴とする、
請求項４記載の情報処理装置。
【請求項６】
前記指示体は人の指であり、
前記位置関係検出手段は、前記ヒストグラムから、人の指の生物学的な特徴に起因する前記所定幅のウィンドウに含まれる点群数が最も多くなる位置を検索することを特徴とする、
請求項５記載の情報処理装置。
【請求項７】
前記位置関係検出手段は、前記ウィンドウの前記所定幅と前記点群の分布に相当する幅との比に応じて前記ヒストグラムの形状変化を判断し、形状が変化している場合に前記所定幅を前記ヒストグラムの連続性に応じて広げ、広げた所定幅で最も高さが低い値を検出し、
前記決定手段は、前記点群の前記広げた所定幅で最も高さが低い値となる位置を前記指示体の前記先端位置に決定することを特徴とする、
請求項５又は６記載の情報処理装置。
【請求項８】
前記位置関係検出手段は、前記取得手段に対する前記点群の相対的な位置関係を、事前に測定しておいた前記取得手段に対する前記点群の相対的な位置関係に応じた補正値により補正し、
前記決定手段は、補正された前記位置関係に基づいて前記先端位置を決定することを特徴とする、
請求項３記載の情報処理装置。
【請求項９】
前記位置関係検出手段は、前記点群の前記投影面からの高さと点群数との関係を示すヒストグラムを作成し、事前に測定しておいた前記取得手段の目線と前記点群とのなす角に対する前記ヒストグラム上での点群の幅に基づいて、前記取得手段に対する前記点群の相対的な位置関係を検出することを特徴とする、
請求項８記載の情報処理装置。
【請求項１０】
前記位置関係検出手段は、事前に測定しておいた前記取得手段の目線と前記点群とのなす角に対する前記点群の回帰直線の傾きに基づいて、前記取得手段に対する前記点群の相対的な位置関係を検出することを特徴とする、
請求項８記載の情報処理装置。
【請求項１１】
前記制御手段は、検出された前記操作に応じて生成した投影画像を前記投影手段に投影させることを特徴とする、
請求項１〜１０のいずれか１項記載の情報処理装置。
【請求項１２】
所定の投影面に画像を投影する投影手段及び指示体を含む前記投影面に対する距離情報を取得する取得手段を備えた情報処理装置により実行される方法であって、
前記距離情報から得られる距離画像から前記指示体の先端領域を抽出し、
前記先端領域の画素群の前記取得手段に対する相対的な位置関係を検出し、
前記位置関係に基づいて前記指示体の先端位置を決定し、
前記先端位置に基づいて前記指示体による操作を検出することを特徴とする、
操作検出方法。
【請求項１３】
所定の投影面に画像を投影する投影手段及び指示体を含む前記投影面に対する距離情報を取得する取得手段を備えたコンピュータを、
前記距離情報から得られる距離画像から前記指示体の先端領域を抽出する抽出手段、
前記先端領域の画素群の前記取得手段に対する相対的な位置関係を検出する位置関係検出手段、
前記位置関係に基づいて前記指示体の先端位置を決定する決定手段、
前記先端位置に基づいて前記指示体による操作を検出する操作検出手段、
検出された前記操作に応じた処理を行う制御手段、
として機能させるためのコンピュータプログラム。
【請求項１４】
請求項１３載のコンピュータプログラムを記憶するコンピュータにより読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、指やスタイラス等の指示体を用いた入力インタフェースに関する。
【背景技術】
【０００２】
プロジェクタにより壁面やテーブル面等の所定の投影面に投影したＵＩ（User Interface）部品を、指示体により操作する機器が広まりつつある。また、ヘッドマウントディスプレイを用いて実空間に仮想オブジェクト等のＵＩ部品を重畳表示し、重畳表示したＵＩ部品を操作可能とした機器も広まりつつある。これらの機器では、可視光ステレオカメラ、赤外光ステレオカメラ、距離画像センサ等の撮像装置によって撮像した距離情報を含む画像（以下、「距離画像」という。）から指先等の指示体の先端を検出する。検出した指示体の先端の３次元空間内における動きや位置に基づいて、指示体による操作が検出される。
【０００３】
ＵＩ部品への指示体による操作を検出するためには、指示体の先端の３次元空間における位置を精度よく検出もしくは推定する必要がある。しかしながら、撮像装置に対する指示体の位置や角度によっては、撮像装置が撮像する指示体の先端の写り方が変化し、指示体の先端の３次元空間内の位置を精度よく検出することが困難である。特許文献１の情報処理装置は、指先の位置や水平角度に応じて変化する赤外反射光の輝度値を使って、指先の３次元位置を精度良く検出する構成を提案する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−１８６７１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
距離画像に基づいて指示体の３次元空間内の位置を精度よく検出するためには、距離画像に含まれる距離情報のブレやノイズの影響を抑制する必要がある。しかしながら特許文献１の情報処理装置は、１台の距離画像センサにより撮像された距離画像に基づいて、指示体の先端の３次元空間における位置検出を行うことを考慮していない。
【０００６】
本発明は、上記課題に鑑みてなされたものであり、距離画像を用いて指示体の３次元空間における位置を精度よく検出することが可能な情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の情報処理装置は、所定の投影面に画像を投影する投影手段と、指示体を含む前記投影面に対する距離情報を取得する取得手段と、前記距離情報から得られる距離画像から前記指示体の先端領域を抽出する抽出手段と、前記先端領域の画素群の前記取得手段に対する相対的な位置関係を検出する位置関係検出手段と、前記位置関係に基づいて前記指示体の先端位置を決定する決定手段と、前記先端位置に基づいて前記指示体による操作を検出する操作検出手段と、検出された前記操作に応じた処理を行う制御手段と、を備えることを特徴とする。
【発明の効果】
【０００８】
本発明によれば、距離画像を用いて指示体の３次元空間における位置を精度よく検出することが可能となる。
【図面の簡単な説明】
【０００９】
【図１】（ａ）、（ｂ）は情報処理装置の使用例の説明図。
【図２】情報処理装置のハードウェア構成例示図。
【図３】情報処理装置の機能ブロック図。
【図４】（ａ）、（ｂ）は指先位置の検出処理の説明図。
【図５】タッチ操作の検出処理を表すフローチャート。
【図６】（ａ）〜（ｆ）はタッチ操作の検出処理の説明図。
【図７】位置関係の検出処理を表すフローチャート。
【図８】（ａ）〜（ｃ）は位置関係の検出処理の説明図。
【図９】ｚ座標値の補正表の例示図。
【図１０】位置関係の検出処理を表すフローチャート。
【図１１】ｚ座標値の補正表の例示図。
【発明を実施するための形態】
【００１０】
本実施形態は、プロジェクタにより壁面やテーブル面のような投影面に投影される仮想オブジェクト等のＵＩ部品をユーザが指等の指示体で操作する入力インタフェースである、いわゆるテーブルトップインタフェースについて説明する。本実施形態では、主に画像を利用してユーザの操作を検出する。具体的には、本実施形態の入力インタフェースでは、画素毎に距離情報を含む距離画像に基づいて指示体の先端の位置を検出し、検出した指示体の先端の３次元空間内の位置や動きに応じて、各種の操作を検出する。検出する操作は、タッチ操作（タップ、ダブルタップ、ムーブ、長押し、フリック）、スワイプ操作、ホバー操作等であるが、この限りではない。
【００１１】
投影面に対するタッチ操作は、指示体先端と投影面との距離に基づいて検出される。指示体先端と投影面との距離が所定の距離（タッチ閾値）以下であるときに、タッチ操作が検出される。指示体先端と投影面との距離がタッチ閾値以下であるときに、指示体の最も投影面に近い位置は、投影面との接触位置（タップ位置）として検出される。指示体は、ユーザの手や指等の身体の一部、或いはスタイラスや差し棒等の指示器具である。本実施形態では、指示体としてユーザの手や指を用いる場合について説明する。
【００１２】
以下の説明において、このような入力インタフェースを搭載した情報処理装置について説明する。情報処理装置は、実世界に画像を投影するプロジェクタ、画素毎の距離情報を含む距離画像を撮像する撮像装置である距離画像センサ、及び外部機器と通信を行うためのネットワークインタフェースを備える。また、プロジェクタは、テーブル面を投影面として画像を投影する。情報処理装置は、テーブル上に自由に設置して使用される。なお、本実施形態では距離画像センサで撮像される座標系を「カメラ座標系」、実空間（３次元空間）の座標系を「世界座標系」として説明する。
【００１３】
（使用例）
図１は、本実施形態の情報処理装置の使用例の説明図である。図１（ａ）に示すように情報処理装置１００は、テーブル面１０３上に設置され、投影画像１０４を投影面となるテーブル面１０３に投影する。情報処理装置１００は、サーバ等の外部装置１０１との間で通信回線１０５を介して通信可能である。通信回線１０５は、有線、無線のいずれであってもよい。図１（ｂ）に示すように、投影画像１０４を投影するプロジェクタ１０７と、距離画像センサ１０６とは、情報処理装置１００の筐体の同じ面に設けられる。距離画像センサ１０６は、投影画像１０４を含むテーブル面１０３上の所定領域の距離画像を撮像する。なお、世界座標系は、テーブル面１０３をｘｙ平面とし、テーブル面１０３の法線方向をｚ軸とする。
【００１４】
ユーザ１０２ａ、１０２ｂは、テーブル面１０３に投影された投影画像１０４を手１０８（指先）により操作する。投影画像１０４には、仮想オブジェクト等のＵＩ部品が含まれる。ユーザ１０２ａ、１０２ｂが手１０８により行う操作は、距離画像センサ１０６により撮像される距離画像に基づいて検出される。操作検出の詳細は後述する。
【００１５】
情報処理装置１００がプロジェクタ１０７により投影する投影画像１０４（デジタルコンテンツ）は、外部装置１０１に格納される。情報処理装置１００は、通信回線１０５を介して外部装置１０１からデジタルコンテンツを取得する。なお、情報処理装置１００は、外部装置１０１を用いずに、内蔵する大容量記憶装置内にデジタルコンテンツを格納していてもよい。
【００１６】
（情報処理装置の構成）
図２は、情報処理装置１００のハードウェア構成例示図である。情報処理装置１００は、ＣＰＵ（Central Processing Unit）２００、ＲＡＭ（Random Access Memory）２０１、及びＲＯＭ（Read Only Memory）２０２を含むコンピュータである。ＣＰＵ２００、ＲＡＭ２０１、及びＲＯＭ２０２は、バス２０３に接続されて相互にデータの送受信が可能である。バス２０３には、情報処理装置１００が備えるプロジェクタ１０７、距離画像センサ１０６、及びストレージ２０７との間のインタフェース（Ｉ／Ｆ）が接続される。具体的には、プロジェクタ１０７との間のインタフェースであるディスプレイＩ／Ｆ２０４、距離画像センサ１０６との間のインタフェースである入力Ｉ／Ｆ２０５、及びストレージ２０７との間のインタフェースであるストレージＩ／Ｆ２０６が接続される。また、バス２０３には、外部装置１０１との間で通信回線１０５による通信を行うための通信インタフェースであるネットワークＩ／Ｆ２０８が接続される。
【００１７】
ＣＰＵ２００は、ＲＯＭ２０２からコンピュータプログラムを読み出し、ＲＡＭ２０１を作業領域に用いて実行することで、情報処理装置１００の動作を統括的に制御する。なお、コンピュータプログラムは、ＲＯＭ２０２とストレージ２０７との各々に格納されていてもよい。この場合、例えば、ＲＯＭ２０２にブートプログラム、オペレーティングシステム、デバイスドライバ等が格納され、ストレージ２０７にアプリケーションプログラムが格納される。
【００１８】
ディスプレイＩ／Ｆ２０４は、情報処理装置１００が生成した投影画像をプロジェクタ１０７が出力可能な画像信号に変換する。入力Ｉ／Ｆ２０５は、距離画像センサ１０６が撮像した距離画像を情報処理装置１００で処理可能な形式に変換してＣＰＵ２００に送信する。ストレージＩ／Ｆ２０６は、ストレージ２０７に対してデータの入出力を行う。ストレージ２０７は、アプリケーションプログラムの他に、情報処理装置１００が出力する各種情報やＵＩ部品となる画像等が格納される。ストレージ２０７は、大容量記憶装置であり、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）、ネットワークドライブ、ＵＳＢドライブ等で実現される。またストレージ２０７は、複数の記憶装置が並列に接続された構成、外部装置１０１が備えるストレージ、クラウド等であってもよい。ネットワークＩ／Ｆ２０８は、通信回線１０５を介した外部装置１０１との間の通信制御を行う。
【００１９】
図３は、情報処理装置１００の機能ブロック図である。情報処理装置１００は、通信部３００、記憶部３０１、撮像部３０２、手領域検出部３０３、指先領域抽出部３０４、座標変換部３０５、位置関係検出部３０６、指先位置決定部３０７、操作検出部３０８、投影制御部３０９、及び投影部３１０として機能する。本実施形態では、各機能が、ＣＰＵ２００がコンピュータプログラムを実行することで実現されるが、ハードウェアにより実現されてもよい。
【００２０】
通信部３００は、ネットワークＩ／Ｆ２０８により実現され、外部装置１０１との間で通信回線１０５を介した通信を行う。通信部３００は、外部装置１０１との通信により、プロジェクタ１０７により投影する各種デジタルコンテンツやＵＩ部品を取得する。記憶部３０１は、ストレージＩ／Ｆ２０６及びストレージ２０７により実現される。記憶部３０１は、アプリケーションプログラム、各種情報、通信部３００により外部装置１０１から取得した各種デジタルコンテンツやＵＩ部品となる画像等を格納する。
【００２１】
撮像部３０２は、入力Ｉ／Ｆ２０５及び距離画像センサ１０６により実現される。撮像部３０２は、距離画像センサ１０６で周期的に撮像される距離画像を所定時間間隔で取得し、ＲＡＭ２０１に随時保存する。距離画像は、画素値に、距離画像センサ１０６から撮影対象物までの距離を表す距離情報を含む。ＲＡＭ２０１に保存された距離画像は、情報処理装置１００の各機能ブロックにおいて順次処理される。なお、本実施形態において、撮像部３０２が画像を撮像する周期は、距離画像センサ１０６が撮像する画像のフレームレートに一致するものとする。ただし、フレームレートによらない所定の時間を撮像の周期として設定してもよい。
【００２２】
手領域検出部３０３は、ＲＡＭ２０１に保存される距離画像を画像処理することによって、距離画像中から手領域を検出する。手領域の検出処理の詳細は後述する。「手領域」とは、距離画像中のユーザの手１０８の画像領域である。手領域検出部３０３は、検出した手領域をラベリングしてＲＡＭ２０１に保存する。
【００２３】
指先領域抽出部３０４は、ＲＡＭ２０１に保存されるラベリングした手領域から指先領域を抽出する。指先領域の検出処理の詳細は後述する。なお、指示体としてスタイラスや差し棒を用いる場合、指先領域抽出部３０４は、その先端領域を検出する。指先領域抽出部３０４は、抽出した指先領域を表す画素群をラベリングしてＲＡＭ２０１に保存する。指先領域を表す画素群は、距離画像センサ１０６で撮像された距離画像から抽出されるために、その位置（座標）はカメラ座標系で表される。
【００２４】
座標変換部３０５は、ＲＡＭ２０１に保存される指先領域の画素群を実空間上（世界座標系）の３次元の点群（ポイントクラウド）に変換して、ＲＡＭ２０１に保存する。カメラ座標系の画素と世界座標系の１点は１対１で対応している。そのために座標変換部３０５は、適切にキャリブレーションされた距離画像センサ１０６のカメラパラメータ（以下、「座標変換パラメータ」という）に基づいて、カメラ座標系の画素と世界座標系の１点とを相互に座標変換することができる。
【００２５】
位置関係検出部３０６は、ＲＡＭ２０１に保存される点群の位置情報から、指先領域を表す点群と距離画像センサ１０６との相対的な位置関係を検出する。位置関係の検出処理の詳細は後述する。位置関係検出部３０６は、検出した位置関係を表す情報をＲＡＭ２０１に保存する。
【００２６】
指先位置決定部３０７は、ＲＡＭ２０１に保存される点群と距離画像センサ１０６との相対的な位置関係の情報に基づいて、１点の指先位置を決定する。指示体としてスタイラスペンや差し棒を用いる場合、指先位置決定部３０７は、その先端位置を１点決定する。指先位置決定部３０７は、決定した指先位置（先端位置）を表す情報をＲＡＭ２０１に保存する。
【００２７】
操作検出部３０８は、指先位置決定部３０７で決定された指先位置からテーブル面１０３（投影画像１０４）までの距離とタッチ閾値とに基づいて、投影画像１０４に対する操作を検出する。
【００２８】
投影制御部３０９は、操作検出部３０８で検出された操作に基づいて、ＵＩ部品の表示の変更や、表示されている仮想オブジェクトの移動等の表示制御を行い、投影画像を生成する。投影制御部３０９は、生成した投影画像を投影部３１０に送信する。
【００２９】
投影部３１０は、ディスプレイＩ／Ｆ２０４及びプロジェクタ１０７により実現され、投影制御部３０９により生成された投影画像１０４をテーブル面１０３上に投影する。投影部３１０が投影する投影画像１０４（ＵＩ部品等）は、その場に存在するかのようにテーブル面１０３上へ重畳して投影される。
【００３０】
（指先位置検出）
図４は、指先位置の検出処理の説明図である。ユーザは、手１０８（指１０８ａ）によりテーブル面１０３上をタッチする。情報処理装置１００は、距離画像センサ１０６で撮像された距離画像４００に基づいて指先位置を検出する。距離画像４００は、手１０８の画像を含み、指先位置を含むカメラ座標系の指先領域４０１が既に検出されている。
【００３１】
距離画像４００から指先位置を検出する場合、距離画像４００中から一意に指先の位置座標（画素）を決定してしまうと、指先位置が安定せず、精度よく指先位置を検出することができない。これは、距離画像４００に含まれる距離情報（以下、「デプス値」という）が時間的に安定していないためである。例えば、テーブル面１０３を連続して撮像して取得した距離画像中のテーブル面１０３の同じ位置（画素）のデプス値は、毎フレーム同じ値になるとは限らない。この場合のデプス値は、一般的に、一定範囲のブレを含んだ値、もしくはノイズを含んだ値になる。そのため、距離画像から一意に指先の位置座標を決定してしまうと、精度よく指先位置を決定することが困難である。
【００３２】
ブレやノイズの影響を低減するために、図４（ａ）の距離画像４００で示すように、手１０８の画像から所定の大きさの指先領域４０１を抽出し、指先領域４０１に含まれるすべての画素の位置情報及びデプス値を利用して、指先位置が検出されることが多い。この場合、例えば、空間的なデプス値の平均値を利用してノイズの影響を低減することができる。しかし、この方法では距離画像センサ１０６と指先領域４０１との位置関係（見え方の違い）により、指先位置の高さが変動する。例えば、図４（ａ）、４（ｂ）に示すように、指先の高さが変動してしまう。
【００３３】
図４（ａ）、４（ｂ）では、テーブル面１０３上に指１０８ａが接触している。情報処理装置１００は、タッチ閾値４１０よりもテーブル面１０３側の指１０８ａがテーブル面１０３に接触していると判定する。このとき、距離画像センサ１０６で撮像された距離画像４００内の指先領域４０１は、３次元空間上では指先領域４０２となる。３次元空間における指先領域４０２は、距離画像センサ１０６の目線と角度θ１をなす。距離画像４００から取得されるデプス値は、距離画像センサ１０６のセンサ面４１１に垂直な方向（目線）に対する値である。ここで、デプス値の平均値を使って指先位置を決定すると、３次元空間における指先領域４０２の中点が指先位置となる。
【００３４】
図４（ａ）に示すように指１０８ａの姿勢が指１０８ｂに変化する場合、指先領域４０２が指先領域４０３に変化して、指先領域の距離画像センサ１０６の目線に対する角度が、角度θ１から角度θ２に変化する。これにより距離画像４００から取得されるデプス値が変化する。つまり、指１０８ｂの状態では、距離画像センサ１０６の指先領域４０１が、３次元空間上では図４（ａ）の指先領域４０３となり、指先位置は指先領域４０３の中点の位置となる。この結果、テーブル面１０３からの指先位置の高さは、指１０８ａの状態と比較して指１０８ｂの状態の方が高くなる。
【００３５】
図４（ｂ）に示すように指１０８ａの位置が指１０８ｃに変化する場合、テーブル面１０３に対する指の傾きが同じであっても、指先領域４０２が指先領域４０４に変化して、距離画像センサ１０６の目線に対する角度が、角度θ１から角度θ３に変化する。これにより距離画像４００から取得されるデプス値が変化する。指先領域と距離画像センサ１０６の目線とのなす角が角度θ１から角度θ３へ、より鋭い角度になってしまうことで、３次元空間における指先領域４０４の先端部分が、距離画像センサ１０６で撮像されにくくなるためである。そのために、テーブル面１０３からの指先位置の高さは、指１０８ａの状態と比較して指１０８ｃの状態の方が高くなる。
【００３６】
このように距離画像センサ１０６と３次元空間の指先領域との位置関係により指先の高さが変動するために、情報処理装置１００は、タッチ操作の検出に利用するタッチ閾値４１０を最大の指先高さ以上の高さに設定しなければならなくなってしまう。その結果、テーブル面１０３（投影画像１０４）に対するタッチ操作のために、ユーザは指１０８を大きく上下させなければならず、操作性が低下する。本実施形態では、距離画像センサ１０６と３次元空間の指先領域との位置関係によらず、且つデプス値のブレやノイズによる影響を最小限にしつつ、指先高さがテーブル面１０３に対して一定となるように指先位置を検出する。
【００３７】
（操作検出）
図５は、情報処理装置１００によるユーザのタッチ操作の検出処理を表すフローチャートである。タッチ操作の検出は、情報処理装置１００に電源が投入されることで実行される。図６は、タッチ操作の検出処理の説明図である。
【００３８】
情報処理装置１００の投影制御部３０９は、記憶部３０１からデジタルコンテンツやＵＩ部品となる画像を取得して、撮像画像を生成する。投影部３１０は、投影制御部３０９が生成した撮像画像をプロジェクタ１０７によりテーブル面１０３上に投影する（Ｓ５００）。
【００３９】
撮像部３０２は、距離画像センサ１０６により撮像される距離画像を所定のフレーム間隔で取得して、フレーム毎にＲＡＭ２０１に随時保存する（Ｓ５０１）。図６（ａ）は、距離画像を例示する。本実施形態では、距離画像６００は、画素毎に１６ビットのデプス値を含む。
【００４０】
手領域検出部３０３は、ＲＡＭ２０１に保存される距離画像を画像処理することで、距離画像中の手領域を検出する（Ｓ５０２）。手領域検出部３０３は、例えば具体的には、閾値判定やノイズ低減処理、背景差分処理によって、距離画像中の動く領域を手領域として検出する。この他に手領域検出部３０３は、手の画像を予めテンプレートとして用意し、距離画像とのマッチングにより手領域を検出してもよい。また、情報処理装置１００が可視光カメラを搭載する場合、手領域検出部３０３は、可視光画像の肌色領域の形状から既定の特徴量を抽出し、機械学習することによって手領域を検出してもよい。手領域検出部３０３は、検出した手領域をラベリングしてＲＡＭ２０１に保存する。図６（ｂ）は、手領域を例示する。距離画像６０１は、手領域６０６を含む。
【００４１】
指先領域抽出部３０４は、ＲＡＭ２０１に保存される手領域から指先領域を抽出する（５０３）。例えば、指先領域抽出部３０４は、図６（ｂ）の距離画像６０１の境界線と手領域６０６とが交わる線の中点を手の進入位置６０２とし、進入位置６０２から最も遠い手領域６０６中の画素をカメラ座標系における仮の指先位置とする。指先領域抽出部３０４は、仮の指先位置を中心にしてデプス値に応じて大きさが変化する指先窓枠１０３ａを設定し、指先窓枠１０３ａ内に含まれる手領域をカメラ座標系における指先領域として抽出する。指先領域抽出部３０４は、抽出したカメラ座標系における指先領域をラベリングしてＲＡＭ２０１に保存する。
【００４２】
情報処理装置１００は、指先領域が抽出されたか否かを判断する（Ｓ５０４）。指先領域が抽出されなかった場合（Ｓ５０４：N）、情報処理装置１００はＳ５０１以降の処理を繰り返し行う。指先領域が抽出された場合（Ｓ５０４：Y）、情報処理装置１００は、座標変換部３０５により、ＲＡＭ２０１に保存されるカメラ座標系における指先領域の画素群を、テーブル面１０３が基準（ｚ＝０）となる３次元空間の点群に変換する（Ｓ５０５）。つまり座標変換部３０５は、指先領域の画素群の座標系を、カメラ座標系から世界座標系へ座標変換する。前述したように、座標変換部３０５は、座標変換パラメータに基づいて、距離画像上の画素を３次元空間の点に座標変換することができる。図６（ｃ）は、３次元空間上に座標変換された指先領域を示す点群６０３の一例である。座標変換部３０５は、点群６０３をＲＡＭ２０１に保存する。
【００４３】
位置関係検出部３０６は、ＲＡＭ２０１に保存される点群から、３次元空間の指先領域に相当する点群と距離画像センサ１０６との相対的な位置関係を検出する（Ｓ５０６）。位置関係検出部３０６は、位置関係の検出結果をＲＡＭ２０１に保存する。位置関係の検出処理の詳細は後述する。指先位置決定部３０７は、ＲＡＭ２０１に保存される位置関係の検出結果に応じて、３次元空間上で指先位置の座標を決定し、その結果をＲＡＭ２０１に保存する（Ｓ５０７）。指先位置の座標決定処理の詳細は後述する。
【００４４】
操作検出部３０８は、ＲＡＭ２０１に保存される指先位置に基づいて、操作が行われているか否かを判断する（Ｓ５０８）。具体的には操作検出部３０８は、指先位置のテーブル面１０３からの高さ（ｚ座標値）とタッチ閾値４１０（図４参照）とを比較することでタッチ状態を判定し、その結果に基づいて操作が検出されたか否かを判断する。例えば、操作検出部３０８は、指先位置のｚ座標値がタッチ閾値以下の場合はタッチ状態であり、それ以外の場合は非タッチ状態であると判断する。操作検出部３０８は、タッチ状態の継続中に指先位置が３次元座標内で移動すればムーブ操作を、所定時間内に指先位置のｚ座標値がタッチ状態から非タッチ状態に変化した場合はタップ操作を、それぞれ検出する。なお、ムーブ操作及びタップ操作はタッチ操作の一例であり、操作検出部３０８は、他のタッチ操作を検出してもよい。操作検出部３０８は、例えばタッチ閾値４１０に基づいたタッチ状態の判定と指先位置の３次元座標内における動きから、ダブルタップ、長押し、フリック、スワイプ、ホバーといったタッチ操作を検出可能である。また検出された指先位置が複数ある場合、操作検出部３０８は、ピンチやローテートといったマルチタッチ操作も検出可能である。
【００４５】
操作が検出された場合（Ｓ５０８：Y）、操作検出部３０８は、検出した操作内容をＲＡＭ２０１に保存する。投影制御部３０９は、操作検出部３０８で検出された操作内容に基づいて、ＵＩ部品の表示の変更や、表示されている仮想オブジェクトの移動制御を行い、投影画像を生成する。投影部３１０は、投影制御部３０９が生成した投影画像をプロジェクタ１０７によりテーブル面１０３へ投影する（Ｓ５０９）。これにより、操作に応じて投影画像の表示が更新される。
【００４６】
操作が検出されない場合（Ｓ５０８：N）、あるいは投影画像の表示の更新後に、情報処理装置１００は、処理を終了するか否かを判断する（Ｓ５１０）。本実施形態では、情報処理装置１００に設けられる物理ボタンやＵＩ部品に対する操作により、処理を終了する指示がなされた場合に、情報処理装置１００は、動作を終了すると判断する。処理を終了しない場合（Ｓ５１０：N）、情報処理装置１００はＳ５０１以降の処理を、処理の終了が指示されるまで繰り返し行う。処理を終了する場合（Ｓ５１０：Y）、情報処理装置１００は、投影画像の投影、操作検出を含めたすべての処理を終了する。
【００４７】
図７は、Ｓ５０６の位置関係の検出処理を表すフローチャートである。図６（ｄ）〜６（ｆ）及び図８は、位置関係の検出処理の説明図である。
【００４８】
位置関係検出部３０６は、ＲＡＭ２０１に保存される点群に基づいて、横軸がテーブル面１０３からの高さ（ｚ座標値）、縦軸が点群の数の分布を表すヒストグラムを作成する（Ｓ７００）。図６（ｄ）、６（ｅ）は、ヒストグラムを例示する。
【００４９】
位置関係検出部３０６は、人の指先の生物学的な特徴（例えば指先の一般的な厚さ）に起因する所定幅ｗ０のウィンドウを、作成したヒストグラム上でスライドさせて、ウィンドウ内に含まれる点群数が最も多く分布する位置ｚ０を探索する（Ｓ７０１）。図６（ｄ）、６（ｅ）の例では、点群６０５ａが位置ｚ０として検索される。ウィンドウに含まれる点群数が最も多く分布する位置（ウィンドウに含まれる点群の面積が最大となる位置）を探索することにより、図６（ｄ）、６（ｅ）の点群６０４ａ〜６０４ｄがノイズ成分として除去可能になる。
【００５０】
位置関係検出部３０６は、ヒストグラムの形状変化を検出したか否かを判断する（Ｓ７０２）。位置関係検出部３０６は、ヒストグラム上でスライドさせるウィンドウの幅ｗ０と図８（ａ）、８（ｂ）で示すヒストグラムの点群の分布に相当する幅ｗｘ（この例ではｗ１、ｗ２）との比に基づいて、ヒストグラムの形状変化を検出する。位置関係検出部３０６は、幅の比ｗｘ／ｗ０が所定の閾値以上であれば、ヒストグラムが形状変化したと判断する。幅ｗｘは、位置ｚ０が検知されているために、指先高さ（ｚ座標値）の連続性（指先は繋がっており、ｚ座標値は飛び飛びではないという前提）を利用して位置ｚ０から値が大きくなる、または小さくなる方向にｚ座標値を走査して設定される。図８（ａ）に示すヒストグラムの幅ｗ１と比較して、図８（ｂ）に示すヒストグラムの幅ｗ２は大きい。これは、図４で説明したように、距離画像センサ１０６の目線に対して指先領域の角度がより鋭い角度（傾いた状態）となっている状態を示している。
【００５１】
ヒストグラムの形状変化を検出しなかった場合（Ｓ７０２：N）、位置関係検出部３０６は、位置ｚ０の値を指先領域のｚ座標値の最小値としてＲＡＭ２０１に保存して位置関係の検出処理を終了する。ヒストグラムの形状変化を検出した場合（Ｓ７０２：Y）、位置関係検出部３０６は、ヒストグラム上でスライドさせるウィンドウの左端を下方に広げ（幅ｗ０を、より大きくして）、位置ｚ０より小さなｚ座標値となる位置ｚ１を決める（Ｓ７０３）。図６（ｆ）は、位置ｚ１を例示する。位置ｚ１を求める方法は、前述したヒストグラム幅ｗｘを求める方法と同様であり、指先高さ（ｚ座標値）の連続性を利用して位置ｚ０から値が小さくなる方向にｚ座標値を走査して決められる。位置関係検出部３０６は、位置ｚ１の値を指先領域のｚの最小値としてＲＡＭ２０１に保存して、位置関係の検出処理を終了する。
【００５２】
以上のような位置関係の検出処理が終了すると、指先位置決定部３０７は、Ｓ５０７で３次元空間上で指先位置の座標決定処理を行う。指先位置決定部３０７は、ＲＡＭ２０１に保存される指先領域のｚ座標値の最小値と点群６０３とから求められる回帰直線を利用して指先位置（ｆｘ、ｆｙ、ｆｚ）を決定する。図８（ｃ）は、回帰直線８００を例示する。
【００５３】
以上のような処理により、タッチ操作の検出が行われる。情報処理装置１００は、１台の距離画像センサ１０６により取得する距離画像に基づいて、指先の３次元位置を従来よりも正確に検出して、タッチ操作を検出することができる。つまり、情報処理装置１００は、距離画像センサ１０６と指先との位置関係によらず、ブレやノイズによる影響を最小限にした上で、指先の高さがテーブル面１０３に対して一定となる（可能な限り低くなる）ように指先位置を検出することができる。その結果、情報処理装置１００は、タッチ状態の判定に利用するタッチ閾値を低く設定できる。そのためにユーザは、投影画像に対するタッチ操作（タッチジェスチャ）を、より自然に行うことが可能となり、操作性が改善する。
【００５４】
なお、本実施形態では情報処理装置１００と外部装置１０１とを別々の構成要素として説明したが、これらが一体であっても構わない。また、本実施形態では距離画像の撮像に距離画像センサ１０６を利用する例を説明したが、情報処理装置１００は、可視光もしくは赤外線を用いたステレオカメラを利用して距離画像を取得してもよい。
【００５５】
（位置関係の検出処理の変形例１）
Ｓ５０６の位置関係の検出処理は、以下のように行われてもよい。例えば、位置関係検出部３０６は、事前に測定しておいた複数の指先角度に対するヒストグラム上での点群の幅を示す表を用い、距離画像センサ１０６に対する点群の相対的な位置関係を点群の幅として検出する。指先角度は、距離画像センサ１０６の目線と指先領域（点群）とのなす角である。また、位置関係検出部３０６は、事前に測定して決定しておいた指先角度毎の補正量を用いてｚ座標値を補正する。つまり位置関係検出部３０６は、指先領域のデプス値の平均値に基づいて指先位置を仮決めしておき、仮決めした指先位置のｚ座標値を補正値により補正する。指先位置決定部３０７は、補正値により補正されたｚ座標値を含む仮決めした指先位置から、最終的な指先位置を検出する。
【００５６】
図９は、ｚ座標値の補正表の一例を示す。この補正表は、例えば、距離画像センサ１０６の目線と指先領域とのなす角が、３０°〜４５°の場合、ヒストグラムの幅ｗｘがｗ３０〜ｗ４５の範囲内になることを示す。この場合、位置関係検出部３０６は、ヒストグラムの幅ｗｘに含まれる点群のデプス値の平均値から仮決めした指先位置のｚ座標値に、補正値としてｚ４５を加えて仮決めした指先位置を補正する。指先位置決定部３０７は、補正結果に応じて最終的な指先位置を検出する。このように、ヒストグラムの幅ｗｘを利用して距離画像センサと指先領域の位置関係が検出される。
【００５７】
以上のように位置関係の検出処理を行う情報処理装置１００は、１台の距離画像センサ１０６により取得する距離画像に基づいて、指先の３次元位置を従来よりも正確に検出して、タッチ操作を検出することができる。
【００５８】
（位置関係の検出処理の変形例２）
Ｓ５０６の位置関係の検出処理は、以下のように行われてもよい。図１０は、位置関係の検出処理を表す変形例のフローチャートである。この処理は、図５のＳ５０５の処理で座標変換部３０５が指先領域内の画素をテーブル面１０３を基準（ｚ＝０）とした点群に変換した後に、位置関係検出部３０６により行われる。
【００５９】
位置関係検出部３０６は、ＲＡＭ２０１に保存される点群６０３に基づいて回帰直線８００（図８（ｃ）参照）を算出し、回帰直線８００の傾きからテーブル面１０３と指先領域との角度（傾き）を算出する（Ｓ１０００）。位置関係検出部３０６は、テーブル面１０３と指先領域の角度（傾き）を距離画像センサ１０６の目線に対する指先領域の角度θｘに変換する（Ｓ１００１）。位置関係検出部３０６は、テーブル面１０３に対する距離画像センサ１０６の座標変換パラメータ及び設置角度を予め分かっている。そのために位置関係検出部３０６は、座標変換パラメータ及び設置角度を利用して、テーブル面１０３と指先領域の角度（傾き）を距離画像センサ１０６に対する指先領域の角度θｘに変換することができる。
【００６０】
位置関係検出部３０６は、距離画像センサ１０６に対する指先領域の角度θｘに基づく補正量を図１１の補正表により決定し、該補正量を用いてｚ座標値を補正する（Ｓ１００２）。図１１の補正表は、所定の指先角度毎の適切な補正量を事前に測定することで作成される。この補正表では、回帰直線８００の傾きが所定の範囲内である場合に一定の補正量とするが、補正量は、傾きに応じて直線近似して決定されてもよい。
【００６１】
以上のように位置関係の検出処理を行う情報処理装置１００は、１台の距離画像センサ１０６により取得する距離画像に基づいて、指先の３次元位置を従来よりも正確に検出して、タッチ操作を検出することができる。この処理は、点群から回帰直線によって安定的に傾き（角度）を取得できる場合に有効である。また、この処理と図７で説明した処理とを組み合わせてもよい。すなわち、位置関係検出部３０６は、  距離画像センサ１０６に対する指先領域の３次元空間における点群の位置関係を、点群の分布及び点群の傾きの少なくとも一方により検出してもよい。
【００６２】
なお位置関係検出部３０６は、回帰直線からダイレクトに指先位置を決定してもよい。例えば、位置関係検出部３０６は、指先領域の平均値を用いて仮決めした指先位置がタッチ状態の場合に、点群から回帰直線を求める。位置関係検出部３０６は、回帰直線がテーブル面１０３と交わる位置を求め、その位置を最終的に指先位置に決定する。また、タッチ状態に関係なく、回帰直線を用いて指先位置を既定の長さだけ引き伸ばす補正を行うことも可能である。
【００６３】
本発明は、上述の実施形態の１以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける１つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、１以上の機能を実現する回路（例えば、ＡＳＩＣ）によっても実現可能である。
【図１】
2018109899.tif 000003
【図２】
2018109899.tif 000004
【図３】
2018109899.tif 000005
【図４】
2018109899.tif 000006
【図５】
2018109899.tif 000007
【図６】
2018109899.tif 000008
【図７】
2018109899.tif 000009
【図８】
2018109899.tif 000010
【図９】
2018109899.tif 000011
【図１０】
2018109899.tif 000012
【図１１】
2018109899.tif 000013
【手続補正書】
【提出日】平成29年9月20日(2017.9.20)
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
操作対象面において操作する操作体を含む撮像対象面に対する、撮像部からの距離情報を取得する距離取得手段と、
前記距離情報を用いて前記操作体の先端領域を抽出する抽出手段と、
前記先端領域における前記距離情報の群から生成したヒストグラムに基づいて、前記操作対象面からの高さ方向の、前記操作体の先端位置を決定する決定手段と、を備えることを特徴とする情報処理装置。
【請求項２】
前記先端領域における前記距離情報の群を、前記操作対象面が基準となる３次元空間上の点群に変換する変換手段を更に備え、
前記ヒストグラムは、前記点群の前記操作対象面からの高さと点群数との関係を示すことを特徴とする請求項１記載に記載の情報処理装置。
【請求項３】
前記決定手段は、前記ヒストグラムにおいて、前記操作体に応じた所定幅のウィンドウに含まれる点群数が最も多くなるウィンドウの位置を求め、該位置のウィンドウ内で前記高さが最も低くなる値を用いて、前記先端位置を決定することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記決定手段は、前記ウィンドウの前記所定幅と前記点群の分布に相当する幅との比に応じて、前記所定幅を広げ、広げたウィンドウ内で前記高さが最も低くなる値を用いて、前記先端位置を決定することを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記決定手段は、前記ウィンドウの前記所定幅と前記点群の分布に相当する幅との比に応じて、前記所定幅を前記ヒストグラムの連続性に応じて広げ、広げたウィンドウ内で前記高さが最も低くなる値を用いて、前記先端位置を決定することを特徴とする請求項３に記載の情報処理装置。
【請求項６】
前記距離取得手段では、前記距離情報を連続した時間取得しており、前記ヒストグラムは時間経過に応じて変化し、
前記決定手段は、前記ウィンドウの前記所定幅と前記点群の分布に相当する幅との比に応じて、前記ヒストグラムの形状変化を判断し、形状が変化している場合に、前記所定幅を前記ヒストグラムの連続性に応じて広げ、広げたウィンドウ内で前記高さが最も低くなる値を用いて、前記先端位置を決定することを特徴とする請求項３に記載の情報処理装置。
【請求項７】
前記決定手段は、前記ウィンドウの前記所定幅と前記点群の分布に相当する幅との比に応じて、前記ヒストグラムの形状変化を判断し、形状が変化している場合に、変化前の先端位置の決定に用いたウィンドウ内の高さの値が前記ヒストグラムに存在する間は、変化前に決定した先端位置を継続して先端位置と決定することを特徴とする請求項３に記載の情報処理装置。
【請求項８】
前記決定手段は、予め測定した、前記撮像部に対する前記点群の向きと傾きとヒストグラムの分布との関係のテーブルを用いて、前記操作体の先端位置を決定することを特徴とする請求項２に記載の情報処理装置。
【請求項９】
前記操作体は人の指であり、前記所定幅は、人の指の生物的な特徴に起因することを特徴とする請求項３記載の情報処理装置。
【請求項１０】
前記操作対象面に投影画像を投影する投影手段と、前記先端位置に基づいて前記操作体による前記投影画像への操作を検出する検出手段と、を更に備えることを特徴とする請求項１記載の情報処理装置。
【請求項１１】
前記抽出手段では、前記距離情報を各画素に対応させた距離画像から前記操作体の先端領域を抽出することを特徴とする請求項１に記載の情報処理装置。
【請求項１２】
操作対象面において操作する操作体を含む撮像対象面に対する、撮像部からの距離情報を取得する距離取得手段を備えた情報処理装置により実行される方法であって、
前記距離情報を用いて前記操作体の先端領域を抽出し、
前記先端領域における前記距離情報の群から生成したヒストグラムに基づいて、前記操作対象面からの高さ方向の、前記操作体の先端位置を決定することを特徴とする操作検出方法。
【請求項１３】
操作対象面において操作する操作体を含む撮像対象面に対する、撮像部からの距離情報を取得する距離取得手段を備えたコンピュータを、
前記距離情報を用いて前記操作体の先端領域を抽出する抽出手段、
前記先端領域における前記距離情報の群から生成したヒストグラムに基づいて、前記操作対象面からの高さ方向の、前記操作体の先端位置を決定する決定手段、
として機能させるためのコンピュータプログラム。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】０００７
【補正方法】変更
【補正の内容】
【０００７】
本発明の情報処理装置は、操作対象面において操作する操作体を含む撮像対象面に対する、撮像部からの距離情報を取得する距離取得手段と、前記距離情報を用いて前記操作体の先端領域を抽出する抽出手段と、前記先端領域における前記距離情報の群から生成したヒストグラムに基づいて、前記操作対象面からの高さ方向の、前記操作体の先端位置を決定する決定手段と、を備えることを特徴とする。