説明

情報処理装置およびその動作方法

【課題】 所定の面に対する接触を精度良く判定する。
【解決手段】 距離画像センサを用いて、注目時点における前記面の上に存在する物体の位置を検知し、前記注目時点において、検知された位置および前記位置の周辺を撮影した色画像から前記物体の端部を特定し、前記物体の位置に基づいて、特定された前記端部の位置を推定し、前記端部の位置に応じて前記面に対する接触を判定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、接触を判定する技術に関する。
【背景技術】
【0002】
テーブル上で情報の表示や入力を行うテーブル(以下、インタラクティブテーブルという。)を用いたユーザインターフェースは、テーブルトップインターフェースと呼ばれる。テーブルトップインターフェースでは、指先による机上へのタップ(入力)が用いられる場合がある。例えば、特許文献1には、投射光を拡散できる程度に半透明な素材を机に使い、机下から机を透過して得られる手の画像に基づき、手指の形状やジェスチャを取得する手法が開示されている。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特開2006−40271号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来技術によると、ユーザが接触する机に機械が埋め込まれることになり、机に埋め込まれた機械そのものに対して、衝撃等、物理的な負荷がかかる場合があった。そこで本発明は、機械そのものに対してかかる物理的な負荷を軽減すると共に、机上へのタップ(入力)を精度良く判定することを目的とする。
【課題を解決するための手段】
【0005】
上記課題を解決するため本発明に係る情報処理装置は、距離画像センサを用いて、注目時点における所定の面の上に存在する物体の位置を検知する検知手段と、前記注目時点において、検知された位置および前記位置の周辺を撮影した色画像から前記物体の端部を特定する特定手段と、前記物体の位置に基づいて、特定された前記端部の位置を推定する推定手段と、前記端部の位置に応じて前記面に対する接触を判定する判定手段とを有する。
【発明の効果】
【0006】
本発明によれば、機械そのものに対してかかる物理的な負荷を軽減すると共に、机上へのタップを精度良く判定することが可能となる。
【図面の簡単な説明】
【0007】
【図1】インタラクティブテーブル等を設置した様子を示す図。
【図2】第1の実施形態に係るシステムの機能ブロック図。
【図3】入力位置を特定する処理の流れを示すフローチャート。
【図4】距離画像205、207の一例および距離画像205に対する処理を示す図。
【図5】色画像218を示す図。
【図6】指先の位置として推測される位置を示す図。
【発明を実施するための形態】
【0008】
(第1の実施形態)
以下、図面を参照しながら、本発明を実施するための形態について説明する。尚、同じ要素については同符号を付し、その説明を省略する。図1は、本実施形態に係るシステムを構成する要素(インタラクティブテーブル等)を設置した様子を示す図である。本実施形態に係るシステムは、机101、プロジェクタ104、距離画像センサ105、色画像センサ(ビデオカメラ)106、演算装置(情報処理装置)107から構成される。
【0009】
机101は標準的な机である。本実施形態において、机101は、矩形をなす平面を有し、インタラクティブテーブルとして情報(文字、画像等)を映す投影面(表示面)として機能する。ユーザーは、指先102を机101に接触させることで、このインタラクティブテーブルに対して所定の指示入力を行う。尚、指先102の接触に変えて、ペンなどの物体の先端部を接触させることによって、所定の指示入力をおこなってもよい。例えば、机101上にオブジェクト103が表示されているときに、ユーザーはオブジェクト103の領域に指先を接触させることで、オブジェクト103を選択する。プロジェクタ104は机101上に情報を投射する。尚、オブジェクト103はプロジェクタ104により投射されているオブジェクトである。
【0010】
距離画像センサ105は机101の上方に(机101と対向する向きに)設置され、机101上の領域を映し、距離画像を出力する。尚、距離画像とは、その画像中の各ピクセルの明度が、距離画像センサからそのピクセルに映る被写体までの距離を表す画像をいう。尚、距離画像は異なる複数の時点のそれぞれ(注目時点)において出力されるものとする。色画像センサ106は机101の上方に(机101と対向する向きに)設置され、机101上の領域を映す。尚、画像センサとは、ビデオカメラ、カムコーダ等である。また、色画像センサが出力する色画像は、ビデオカメラ等によって撮影された画像(映像)であり、その画像中の各ピクセルが、そのピクセルに映る被写体の色を表す。尚、色画像も距離画像と同様に各注目時点で出力されるものとし、対応する注目時点の色画像と距離画像とは互いに関連付けて保持されるものとする。
【0011】
演算装置(情報処理装置)107は、ROM、RAM、CPUを有し、ROMに格納されたプログラムやデータをRAMに展開し、CPUが実行することによってその機能を実現する。また、演算装置(情報処理装置)107は、プロジェクタ104による情報の投影を制御すると共に、距離画像センサ105から距離画像を、色画像センサ106から色画像を定期的に(所定の時間間隔で)取得する。
【0012】
尚、距離画像センサ105及び色画像センサ106は、画像を取得する画角内に机101の全面を含む様に、かつ机101から見てユーザーの指先102よりも遠方に配置される。本実施形態では、後述するフローチャートの各ステップに対応する処理動作を、演算装置107に含まれるCPUを用いてソフトウェアで実現することとする。しかし、その処理の一部または全部を電子回路などのハードウェア、或いは机101、プロジェクタ104、距離画像センサ105や色画像センサ106などに含まれるCPUやハードウェアにより実現するようにしても構わない。また、本発明は、プロジェクタ104を用いることなく、机101を液晶ディスプレイ等に変えて実現してもよい。
【0013】
図2は第1の実施形態に係るシステムの機能ブロック図である。本システムは、近接判定を行うモジュール201、指先座標を取得するモジュール202、指先座標を推測するモジュール203から構成される。まず、距離画像に基づいて机101と指先102との近接を判定するモジュール201について詳細に説明する。距離画像取得部204は距離画像センサ105にアクセスし距離画像205を取得する。図4(A)は、距離画像205の一例を示す図である。本実施形態では、距離画像205において、その映る範囲は机101と一致するものとする。尚、映る範囲と机101とが一致しない場合に、事前のキャリブレーションと画像取得ごとの透視変換により、机101に相当する領域のみを切り出しても良い。距離画像において明度はそのピクセルに映る被写体の距離画像センサからの距離を示す。例えば、図4(A)において、距離画像センサの光軸と机の法線とが直交するならば、その明度は同心円状に変化する。そして、距離画像205はユーザーの腕108を映す事がある。ユーザーの指先102が机101にある程度(所定の閾値)以上近接していることが検知された場合、指先102の位置に対応する画素の明度と机101の位置に対応する画素の明度は近くなる。平面画像記録部206はユーザーの腕108を含まない状態で距離画像センサから机101までの距離画像を取得し、平面画像207として保存する。
【0014】
図4(B)は、平面画像207の一例を示す図である。尚、本実施形態において、平面画像207を保存した後、机101、距離画像センサ105、色画像センサ106の位置関係は変わらないものとする。距離画像前景背景分離部208は距離画像205からユーザーの腕108にあたる領域とそれ以外の領域とを分離し、ユーザーの腕108に相当する領域を距離画像前景209として保存する。図4(C)は、距離画像前景209の一例を示す図である。指先距離取得部210は、距離画像205及び距離画像前景209から、距離画像における指先の座標211、および距離画像取得手段から指先までの距離212を求める。図4(C)内に距離画像における指先の座標211を示す。距離画像取得手段から指先までの距離212は、距離画像センサ105と指先102までの距離に相当する。平面距離取得部213は、平面画像207及び距離画像における指先の座標211から、距離画像取得手段から平面までの距離214を求める。距離画像取得手段から平面までの距離214は、図1において、距離画像センサ105から、距離画像センサ105と指先102を結んだ線分が机101と交差する点109までの距離に相当する。
【0015】
近接判定部215は、距離画像取得手段から指先までの距離212と距離画像取得手段から平面までの距離214、後述する色画像における指先の座標222と色画像における指先の推測座標226から、指先と平面が近接したか否かを示す情報216を求める。尚、近接判定部215は、指先と平面が近接したか否かを示す情報216を出力する。
【0016】
次に、色画像に基づいて指先の座標を取得するモジュール202の構成要素を説明する。色画像取得部217は色画像センサ106にアクセスし色画像218を取得する。図5(A)は、色画像218の一例を示す図である。尚、本実施形態においては、色画像218も距離画像205と同様にその映る範囲は机101と一致するとする。また、映る範囲と机101の範囲とが一致しない場合はキャリブレーションと透視変換により机101に相当する領域のみを切り出してもよい。また、色画像218においては、ユーザーの腕108、ユーザーの指先102、プロジェクタが投影するオブジェクト103が画像中に映る事がある。色画像前景背景分離部219は、色画像218及び距離画像前景209から、色画像前景220を求める。図5(B)は、色画像前景220の指先102を含む一部を拡大した例を示す図である。指先座標取得部221は、色画像前景220から、色画像における指先の座標222を求める。図5(B)に色画像における指先の座標222を示す。尚、モジュール202は、色画像における指先の座標222を出力する。
【0017】
次に、指先の座標を推測するモジュール203の構成要素について説明する。腕方向近似部223は、距離画像前景209から、距離画像における腕方向224を求める。図4(A)に図示した腕方向224は腕の位置と向きを示している。指先座標推測部225は、距離画像における腕方向224から、色画像における指先の推測座標226を求める。色画像における指先の推測座標226を図6に示す。尚、モジュール203は、色画像における指先の推測座標226を出力する。
【0018】
図3は、入力位置を特定する処理の流れを示すフローチャートである。このフローチャートに従って、図1に示す構成のテーブルトップインターフェースで、ユーザーの指先102が机101に近接したか否か、及び近接した場合の指先102の座標を求める。尚、図3(A)のステップS301〜S313の処理は、モジュール201が実行する処理である。また、図3(B)のステップS320〜S324の処理は、モジュール202が実行する処理である。また、図3(C)のステップS330〜S333の処理は、モジュール203が実行する処理である。尚、各モジュールは、それぞれCPU、ROM、RAM等を有する装置によって実現されてもよい。
【0019】
ステップS301〜S302はモジュール201の前処理に相当する。まず、ステップS301で、距離画像と色画像との位置をキャリブレーションする。具体的には、まず、全画面単色な画像をプロジェクタ104で投影する。次に、距離画像取得部204及び色画像取得部217でそれぞれ距離画像と色画像とを取得する。距離画像と色画像のそれぞれについて、プロジェクタ104で投影したその四頂点を画像内から検出し、その4頂点を結ぶ矩形をプロジェクタの縦横比で表現される矩形に透視変換する行列を求める。ここで、色画像センサは通常距離画像センサよりも解像度が高く、それ故に、キャリブレーション後も色画像の方が距離画像よりも高解像だとする。この後、距離画像取得部204と色画像取得部217のそれぞれは、画像を取得するたびに先に求めた透視変換を施し、キャリブレーション済みの画像を出力するとする。次に、ステップS302で、平面画像を取得し保存する。取得した平面画像207の例を図4(B)に示す。具体的には、図1に示される構成において、机101上にユーザーの腕108が存在しない状態で距離画像センサ105から距離画像を取得する。但し、この平面画像207も、ステップS301で得られたキャリブレーションが施されているものとする。
【0020】
ステップS303〜S312がモジュール201の本処理である。ステップS303において、オブジェクトをある座標に投影する。例えば、ユーザーに何らかの情報の承認を求めるとする。「OK」という文字列を含むオブジェクト103を、プロジェクタ104を用いて、机101に投影する。次に、ステップS304において、距離画像及び色画像を取得する。ここで、図4(A)に示す距離画像205、及び図5(A)に示す色画像218が得られたとする。図4(A)の距離画像205において、ユーザーの指先102は机101と近接しており、その明度が近しいとする。また、図5(A)の色画像218において、ユーザーの腕108と、ユーザーの指先102が映っているとする。次に、ステップS305において、距離画像から背景画像を引き、閾値処理し、距離画像前景を得る。具体的には、図4(A)に示す距離画像205に含まれる各ピクセルについて、その明度から、図4に示す平面画像207の同一座標の明度を引き、その差が事前に設定された閾値以上である場合に、そのピクセルは距離画像前景209に含まれるとする。得られた距離画像前景209の例を図4(C)に示す。この閾値処理は、距離画像センサ105が一般に持つ測定誤差により、必ずしも画像の明度が測定ごとに一定しない為、この誤差を抑え込む事が目的である。一方で、机101から指先102の距離が閾値あるいは距離画像センサの量子化精度を下回る場合、その指先の領域は机と区別する事が出来ず、結果として距離画像前景に含まれない。上記の理由により、図5(C)に示す距離画像前景209に、指先102に相当する領域は含まれないとする。ここで、得られた画像前景に対し、浸食処理と肥大処理を施し、小さなノイズを削除してもよい。
【0021】
次に、ステップS306において、距離画像の前景について連結画素塊を求め、指が含まれる連結画素塊を選択し、近似楕円を求める。連結画素塊の生成手法は任意であり、4結合でも8結合でも構わない。指が含まれる連結画素塊の選択は、例えば、距離画像前景に連結画素塊が一つしか含まれなければそれを選択して良いし、複数の連結画素塊が含まれるならば最大のものを選んでもよい。連結画素塊501として距離画像前景209と同じ領域が得られたとする。連結画素塊501の近似楕円の導出は5つ以上輪郭上の点に対して楕円パラメータを最小二乗推定する手法など周知の手法を用いる。以下、周知の手法を用いて、近似楕円502が得られたとする。次に、ステップS307において、距離画像での指先の座標及び距離画像センサから指先の距離を求める。具体的には、近似楕円502の長軸503が近似楕円502と交差する点を求め、その点を距離画像での指先の座標211とする。次に、指先の座標211を中心としたある程度の半径の円504の範囲内かつ連結画素塊501内に含まれる各ピクセルの明度を平均し、距離画像取得手段から指先までの距離212とする。次に、ステップS308において、距離画像センサから机までの距離を求める。ステップS307で求めた指先の座標211に相当する座標の平面画像207での明度を求めればよい。
【0022】
次に、ステップS309において指先が机に近接しているかを判定し、指先が机に近接していればステップS310に、近接していなければステップS303に遷移する。指先と机の近接の判定には、まず、ステップS307で求めた距離212から、ステップS308で求めた、距離画像センサから机までの距離が事前に設定した閾値よりも低い場合に、指先102と机101が近接していると判定する。ここで、距離画像前景209内の各ピクセルの明度は、机101からステップS305で用いた閾値よりも大きく離れている為、机101と指先102の識別に用いる閾値は、ステップS305で用いた閾値よりも大きくなければならない。次に、ステップS310において、色画像における指先の座標を求める。色画像を図5(A)の218、色画像中の指先を含む領域(指先の位置およびその周辺)の拡大図を図5(B)とする。尚、本図には、色画像における指先の座標222が示されている。このステップS310の詳細については後述する。
【0023】
次に、ステップS311において、距離画像の指先から、色画像における指先の位置を推測する。図6に、色画像における指先の推測座標226を示す。このステップS311の詳細については後述する。次に、ステップS312において、指先が机に近接していればステップS313に、近接していなければステップS303に遷移する。ステップS309と異なり、指先と机の近接の判定には、ステップS310にて求めた指先の座標222、及びステップS311にて距離画像から推測した指先の推測座標226の距離を求め、その距離が閾値以下の場合に、机と指先が近接したと判定する。ここで、距離を無限遠とすれば、常に指先は机に近接していると判断される。すなわち性能の下限は保証されている。
【0024】
ステップS313において、指先が机に近接した場合の処理を行う。具体的には、例えば、ステップS303において「OK」という文字列を含むボタンが投影されているとして、ステップS310にて求めた指先の座標222がボタン内に含まれていれば、ボタンが押された、と判定する。最後に、ステップS303に戻り、再度指先座標の検出を繰り返す。ステップS312で判定した、指先が机に近接しているか否かを示す情報216が、モジュール201の出力である。以上説明した様に、本発明によれば、容易に指先と机の近接を判定する事ができる。
【0025】
次に、モジュール202を説明する。モジュール202による処理は図3(A)のステップS310の処理に相当する。以下、図3(B)を参照しながら説明する。図3(B)は距離画像前景、連結画素塊及びその近似楕円、色画像を入力とする。図4(C)に距離画像前景209、連結画素塊501、近似楕円502、図5(A)に色画像218を示す。
【0026】
まずステップS320において、距離画像前景209、連結画素塊501、近似楕円502、色画像218を取得する処理を実行する。次に、ステップS321において、連結画素塊の輪郭上に、前景背景不確定領域を設定する。図4の(D)に連結画素及び前景背景不確定領域を示す。尚、前景背景不確定領域は、指先と机との近接が検知された位置およびその周辺の領域に相当する。ステップS321においては、まずステップS306で得られた連結画素塊501の近似楕円502の長軸503を指先方向に延長し、楕円505を作成する。次に、楕円505(斜線部)と、ステップS306で求めた連結画素塊501に肥大処理を施した領域506(黒塗り)の論理和を求める。この論理和と、連結画素塊501に浸食処理を施した領域507(白抜き)の否定との論理積を求め、前景背景不確定領域508(斜線部+黒塗り)とする。ここで、近似楕円502の拡大率を適切な値にすることで、ステップS305における距離画像前景取得時の閾値処理により前景に含まれなかった指先102の領域も前景背景不確定領域508に含める事ができる。
【0027】
次に、ステップS322において、色画像上に距離画像上の前景背景不確定領域に相当する不確定領域を求める。ステップS301に示した通り、色画像218は距離画像205よりも解像度が荒い。よって、距離画像205上のある領域に対応する色画像218上の領域を求めるには、単純拡大すればよい。具体的には、距離画像205と色画像218の解像度比を求め、ステップS321で求めた連結画素塊に浸食処理を施した領域507を求めた解像度比に合わせて拡大した領域を前景601とする。同様に、ステップS321で求めた前景背景不確定領域508を求めた解像度比に合わせて拡大した領域を不確定領域602とする。その双方の領域に含まれない領域を背景603とする。図5(A)に示す色画像の腕部分の拡大図を図5(B)に示す。前景601を成す黒い四角の一つが、転写元の距離画像205上の1ピクセル相当にするとする。同様に背景603を成す白い四角の一つが転写元の距離画像205上の背景の1ピクセルに相当する。不確定領域602には腕108及び指先102の輪郭が含まれる。
【0028】
次に、ステップS323において、色画像上の不確定領域内に前景を求める。図5(B)の斜線部及び黒塗りに分離される色画像前景220を示す。すなわち前景220はステップS322で求めた前景601を含む。ここで、前景を背景から分離するには、一般にGraph Cutと呼ばれる手法が適用可能である。まず、前景601と背景603のそれぞれについて、前景601もしくは背景603に含まれ、かつ不確定領域602に近接するピクセル群の色モデルを取得する。色モデルの取得には分布のGaussian Mixture ModelをEM algorithmで近似する。次に、不確定領域内の各ピクセルについて、各画素をノード、画素同士の隣接関係をリンクとするグラフを生成する。次に、不確定領域602内の各ピクセルについて、前景601に属する確率及び背景603に属する確率をそれぞれのGaussian Mixture Modelに従い求める。各リンクの重みをノードとなる画素の色の類似度とする。上記のグラフについて、前景601及び背景603からいくつかのノード及びリンクを追加する。このグラフを、例えば、線形計画法を用いて最大流最小切断する。このGraph Cut法により不確定領域602の各ピクセルについて前景220に属するか否かが求められる。求めた前景220に前景601との論理和を求め、前景220とする。
【0029】
次に、ステップS324において、色画像上の前景を元に、色画像における指先の座標を求める。具体的には、例えば、色画像前景220について、その連結画素塊を求め、連結画素塊の輪郭上の各画素について、長軸604への垂線の足の座標を取得し、その最大値もしくは最小値のうち画像端から遠い方を求める。得られた輪郭上の画素の座標を色画像における指先の座標222とする。
【0030】
ステップS324で得られた指先の座標222が、モジュール202の出力である。以上説明した様に、色画像218が距離画像205より高解像度であるなら、色画像における指先の座標222は距離画像における指先の座標211よりも精度が高い。また、距離画像205から確度の高い距離画像前景209を求め、処理領域を絞り込むことで、色画像218全体に対し前景背景分離を施すよりも高速化できる。また、色モデルを生成する前景背景領域を不確定領域602に隣接する前景601及び背景603に限る事で、色モデルの分散を抑える事ができ、前景背景分離の精度を向上させることができる。
【0031】
次に、モジュール203における処理を説明する。モジュール203は図3(A)のステップS311の詳細に相当する。フローチャートを図3(C)のステップS330〜S333に示す。図3(C)は距離画像、前景の連結画素塊及びその近似楕円を入力とする。図4(A)の205に距離画像、図4(C)に前景の連結画素塊501、近似楕円502を示す。
【0032】
まず、ステップS330で、距離画像前景、連結画素塊501、近似楕円502を取得する処理を実行する。次に、ステップS331で、楕円の長軸上のうち連結画素塊に含まれる点列から腕方向を求める。具体的には、近似楕円502の長軸503上の各画素の明度に対して最小二乗法などで直線を近似する。図6に、図4(A)の腕領域を机101の平面と平行な視点(側面方向)から見た図を示す。図6には、机101、腕108が映る。ステップS305の閾値処理により距離画像前景209として含まれない下限を701に示す。距離画像前景209の各画素は距離画像センサ105から腕108の上面702までの距離を示す。尚、図6に示した斜線部は、上面702に相当する。この上面702を近似する直線を求め、腕方向224とする。次に、ステップS332で、楕円の長軸上のうち連結画素塊に含まれる点列に対応する平面画像上の点列から机方向を求める。具体的には、図4(C)の長軸503が平面画像上で対応する点列401の各点の明度に最小二乗法などで近似する。図6に求める机方向703を示す。
【0033】
次に、ステップS333で、机方向と腕方向との交点を求め、色画像における指先の推測座標とする。すなわち、腕方向224と机方向703の交点を求め、色画像における指先の推測座標226とする。色画像における指先の推測座標226が、モジュール203の出力である。以上説明した様に、距離画像205では、机101に近接する指先102の領域は、距離画像前景背景分離部208の閾値処理により失われその取得が難しい場合がある。そこで、本実施形態では、指先の推測座標226を求める事が出来る。また、腕方向224及び机方向703は距離画像センサ105の複数の画素の明度から推測される為、距離画像センサ105の画素ごとに独立である限りの距離計測誤差については、その影響を軽減させることができる。また、距離画像に基づいて近接判定を行うモジュール201のステップS312では、色画像による指先の座標222と色画像から推測した指先の推測座標226の距離が閾値以下の場合に、机101と指先102が近接したと判定する。よって、この閾値を適切に設定する事で、ステップS309で用いた閾値よりも机101に近く、かつ机101に近接していない場合に、指先102は机101に近接していないと判定することができる。
【0034】
(その他の実施形態)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
距離画像センサを用いて、注目時点における所定の面の上に存在する物体の位置を検知する検知手段と、
前記注目時点において、検知された位置および前記位置の周辺を撮影した色画像から前記物体の端部を特定する特定手段と、
前記物体の位置に基づいて、特定された前記端部の位置を推定する推定手段と、
前記端部の位置に応じて前記面に対する接触を判定する判定手段とを有する情報処理装置。
【請求項2】
所定の面に対する接触を判定する情報処理装置の動作方法であって、
距離画像センサを用いて、注目時点における前記面の上に存在する物体の位置を検知する検知工程と、
前記注目時点において、検知された位置および前記位置の周辺を撮影した色画像から前記物体の端部を特定する特定工程と、
前記物体の位置に基づいて、特定された前記端部の位置を推定する推定工程と、
前記端部の位置に応じて前記面に対する接触を判定する判定工程とを有する動作方法。
【請求項3】
請求項2に記載の動作方法をコンピュータに実行させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図5】
image rotate

【図6】
image rotate

【図4】
image rotate


【公開番号】特開2012−48393(P2012−48393A)
【公開日】平成24年3月8日(2012.3.8)
【国際特許分類】
【出願番号】特願2010−188658(P2010−188658)
【出願日】平成22年8月25日(2010.8.25)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】