JP6575400B2 - 指先位置推定装置、操作判定装置、指先位置推定システム、指先位置推定プログラム及び指先位置推定方法 - Google Patents

指先位置推定装置、操作判定装置、指先位置推定システム、指先位置推定プログラム及び指先位置推定方法 Download PDF

Info

Publication number
JP6575400B2
JP6575400B2 JP2016040278A JP2016040278A JP6575400B2 JP 6575400 B2 JP6575400 B2 JP 6575400B2 JP 2016040278 A JP2016040278 A JP 2016040278A JP 2016040278 A JP2016040278 A JP 2016040278A JP 6575400 B2 JP6575400 B2 JP 6575400B2
Authority
JP
Japan
Prior art keywords
fingertip
finger
vector
occlusion
region
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2016040278A
Other languages
English (en)
Other versions
JP2017157034A (ja
Inventor
一樹 長村
一樹 長村
村瀬 太一
太一 村瀬
勇作 藤井
勇作 藤井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016040278A priority Critical patent/JP6575400B2/ja
Publication of JP2017157034A publication Critical patent/JP2017157034A/ja
Application granted granted Critical
Publication of JP6575400B2 publication Critical patent/JP6575400B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)
  • Position Input By Displaying (AREA)
  • Image Analysis (AREA)

Description

本発明は、指先位置推定装置、操作判定装置、指先位置推定システム、指先位置推定プログラム及び指先位置推定方法に関する。
従来より、操作部のない物体にユーザの手指が触れたことを、深度センサ等を用いて検出し、触れた位置に応じたアクション(例えば、物体の情報表示等)を行うことで、物体とのインタラクションを実現する情報操作出力システムが知られている。
情報操作出力システムでは、深度センサ等を物体の上方に設置することで、物体と手指との位置関係を距離画像として取得し、取得した距離画像を用いて、手指が物体に触れたか否かを判定するタッチ判定や、触れた位置の算出等を行う。これにより、情報操作出力システムでは、触れた位置に応じた様々な情報を、プロジェクタ等を用いて物体近傍の任意の位置に投影表示することができる。
特開2001−282456号公報
渡邊航(東芝研究開発センター)、外3名「プロジェクタとデプスカメラを用いた投影面タッチUIの開発と操作性向上」、SSII2015、平成27年6月
しかしながら、従来の情報操作出力システムは、平面形状の物体の上面を対象として指先が触れたか否かのタッチ判定を行っており、指先が物体に触れた際の距離画像から指先が検出できることが前提となっていた。
このため、例えば、立体形状の物体の背面を対象とするタッチ判定に適用した場合に、精度よくタッチ判定を行うことができないという問題があった。指先が深度センサ等から見て物体の背後の陰領域(オクルージョン領域)に含まれ物体の背後に隠れることで、距離画像から指先が検出できない場合があるからである。
一つの側面では、オクルージョン領域に含まれる指先の位置を推定することを目的としている。
一態様によれば、指先位置推定装置は、
取得した距離画像から算出した、手指の長さ及び方向を示す第1ベクトルと、前記手指の指先がオクルージョン領域に含まれる場合の、前記オクルージョン領域に含まれていない手指領域の長さ及び方向を示す第2ベクトルとに基づき、前記オクルージョン領域に含まれる手指領域の長さ及び方向を示す第3ベクトルを算出する算出手段と、
前記第2ベクトルの前記オクルージョン領域に接している端に前記第3ベクトルを加えて、前記指先の位置を推定する推定手段と、を有し、
前記第1ベクトルは、前記手指の指先が前記オクルージョン領域に含まれる前の、前記手指の所定の基準点の位置と前記指先の位置とに基づいて算出され、
前記第2ベクトルは、前記オクルージョン領域に接している位置と、前記基準点の位置とに基づいて算出されることを特徴とする。
オクルージョン領域に含まれる指先の位置を推定できるようになる。
情報操作出力システムの外観構成の一例を示す図である。 情報操作出力システムのシステム構成の一例を示す図である。 情報操作出力システムの適用例を示す図である。 操作判定装置のハードウェア構成の一例を示す図である。 物体のオクルージョン領域を説明するための図である。 物体モデル情報の一例を示す図である。 物体と手指との位置関係及び距離画像データの一例を示す図である。 操作判定装置の機能構成の一例を示す第1の図である。 物体モデル情報生成処理の第1のフローチャートである。 タッチ判定処理の第1のフローチャートである。 タッチ判定処理の第2のフローチャートである。 複数のタッチ面を有する物体の物体モデル情報の一例を示す図である。 複数のタッチ面を有する物体に対するタッチ判定処理の第1のフローチャートである。 複数のタッチ面を有する物体に対するタッチ判定処理の第2のフローチャートである。 所定形状のタッチ面を有する物体の物体モデル情報の一例を示す図である。 所定形状のタッチ面を有する物体と手指との位置関係及び距離画像データの一例を示す図である。 操作判定装置の機能構成の一例を示す第2の図である。 所定形状のタッチ面を有する物体の物体モデル情報生成処理のフローチャートである。 所定形状のタッチ面を有する物体に対するタッチ判定処理の第1のフローチャートである。 所定形状のタッチ面を有する物体に対するタッチ判定処理の第2のフローチャートである。
以下、各実施形態について添付の図面を参照しながら説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複した説明を省く。
[第1の実施形態]
はじめに、第1の実施形態に係る指先位置推定システムを含む情報操作出力システムの外観構成について説明する。図1は、情報操作出力システムの外観構成の一例を示す図である。
図1に示すように、情報操作出力システム100は、距離測定装置110と、プロジェクタ装置120と、操作判定装置130とを有する。距離測定装置110及びプロジェクタ装置120と、操作判定装置130とは、通信可能に接続されている。また、距離測定装置110及びプロジェクタ装置120は、立体形状の物体160が載置される基準面150から上方に延びる架台140に取り付けられている。
これにより、距離測定装置110は、基準面150の各位置及び基準面150に載置された物体160表面の各位置までの距離を、上方から測定することができる。また、プロジェクタ装置120は、予め記憶された物体160のデジタル情報を、基準面150上または物体160上の任意の位置に、上方から投影表示することができる。
なお、第1の実施形態では、物体160が有する各面のうち、図1においてハッチングした面をタッチ面(手指の指先が触れたか否かを判定する際の対象となる面)として説明する。また、第1の実施形態では、物体160が載置された基準面150を含む空間内の各位置を、図1に示すx軸、y軸、z軸に基づく座標により規定するものとする。なお、以下の説明では、距離測定装置110の位置を原点とするxyz空間として、各位置の座標を規定するものとする。
次に、情報操作出力システム100のシステム構成について説明する。図2は、情報操作出力システムのシステム構成の一例を示す図である。
距離測定装置110は、いわゆる深度センサと呼ばれるTOF(Top Of Flight)方式の距離画像センサである。距離測定装置110では、基準面150上の所定の測定範囲に向けて赤外線レーザを投射し、基準面150の各位置までの往復にかかる時間から、基準面150の各位置までの距離データを測定することで距離画像データを生成する。なお、ここで生成する距離画像データは、各画素に距離データが対応付けられていればよく、距離データに応じた階調の濃淡値に変換することで可視化しておく必要はない。
基準面150上に物体160が載置されている場合、距離画像データは、物体160が載置された位置に対応する画素に、物体160表面の各位置までの距離データが含まれることになる。また、測定範囲に手指が含まれる場合、距離画像データには、手指の位置に対応する画素に手指までの距離データが含まれることになる。
距離測定装置110では所定のフレーム周期で距離画像データを生成し、生成した距離画像データを測定結果として操作判定装置130に送信する。
操作判定装置130は、指先位置推定装置の機能を含む。操作判定装置130には、指先位置推定プログラムを含む操作判定プログラムと、画像投影プログラムとがインストールされており、これらのプログラムが実行されることで、操作判定装置130は、操作判定部210及び画像投影部220として機能する。
操作判定部210は、物体モデル情報記憶部230に記憶された物体160の形状を示す物体形状データと、距離測定装置110より送信された距離画像データとに基づいて、基準面150上に載置された物体160のタッチ面161の座標を算出する。
また、操作判定部210は、距離測定装置110より送信された距離画像データを用いて、距離測定装置110から見た場合の物体160の背後の陰領域(オクルージョン領域:物体160の背後の距離データを検出できない領域)の座標を算出する。なお、操作判定部210は、算出したタッチ面161の座標及びオクルージョン領域の座標を、物体モデル情報記憶部230に記憶する。
また、操作判定部210は、距離測定装置110より送信された距離画像データに基づいて、ユーザの手指の指先を検出する。更に、操作判定部210は、ユーザの手指の一部が物体160の背後に隠れた場合に(つまり、オクルージョン領域に含まれた場合に)、指先の位置を推定し、物体160のタッチ面161に指先が触れたか否かを判定するタッチ判定を行う。なお、操作判定部210では、タッチ判定の結果、物体160のタッチ面161に指先が触れたと判定した場合には、判定結果を画像投影部220に通知する。
画像投影部220は、操作判定部210より判定結果を受信した場合に、投影画像データ記憶部240に予め記憶されている投影画像データを、プロジェクタ装置120に送信する。
プロジェクタ装置120は、画像投影部220より送信された投影画像データを、基準面150上の所定の位置に投影表示する。
これにより、ユーザは、操作部のない物体160とのインタラクションを実現することができる。
次に、情報操作出力システム100の適用例について説明する。図3は、情報操作出力システムの適用例を示す図であり、ユーザが、操作部のない物体160とのインタラクションを実現する様子を具体的に示したものである。
図3(a)は、情報操作出力システム100において、物体160が載置された基準面150上の測定範囲内の各位置に、距離測定装置110より赤外線レーザ310が投射されている様子を示している。かかる状態で、ユーザが物体160のタッチ面161に触れるために、手指300を物体160に近づけると、操作判定装置130では、距離画像データに基づいて、ユーザの手指領域を抽出し、抽出した手指領域から指先を検出することで、指先の位置を算出する。なお、ここでいう指先の位置とは、xyz空間における座標を指す。更に、手指300が物体160に近づき物体160の背後の陰領域(オクルージョン領域)に含まれると、距離画像データにおいては手指領域の一部の領域が物体160の背後に隠れることになる。この場合、操作判定装置130では、物体160の背後に隠れていない手指領域に基づいて、指先の位置を推定する(推定方法の詳細は後述)。
図3(b)は、情報操作出力システム100において操作判定部210が、物体160のタッチ面161にユーザの指先が触れたと判定したことにより、プロジェクタ装置120が、基準面150に投影画像301を投影表示した様子を示している。なお、図3(b)では、距離測定装置110より赤外線レーザ310が投射されている様子を省略しているが、実際には、距離測定装置110からは継続して赤外線レーザ310が投射されているものとする。
このように、情報操作出力システム100では、立体形状の物体160のオクルージョン領域に手指の一部が含まれた場合でも、ユーザは、操作部のない物体160とのインタラクションを実現することができる。
続いて、操作判定装置130のハードウェア構成について説明する。図4は、操作判定装置のハードウェア構成の一例を示す図である。
図4に示すように、操作判定装置130は、CPU(Central Processing Unit)401、ROM(Read Only Memory)402、RAM(Random Access Memory)403、補助記憶装置404を有する。また、操作判定装置130は、操作装置405、I/F(Interface)装置406、ドライブ装置408を有する。なお、操作判定装置130の各部は、バス409を介して相互に接続されている。
CPU401は、補助記憶装置404にインストールされた各種プログラム(例えば、操作判定プログラム、画像投影プログラム等)を実行するコンピュータである。ROM402は、不揮発性メモリである。ROM402は、補助記憶装置404に格納された各種プログラムをCPU401が実行するために必要な各種プログラム、データ等を格納する主記憶装置として機能する。具体的には、ROM402はBIOS(Basic Input/Output System)やEFI(Extensible Firmware Interface)等のブートプログラム等を格納する。
RAM403は、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)等の揮発性メモリであり、主記憶装置として機能する。RAM403は、補助記憶装置404に格納された各種プログラムがCPU401によって実行される際に展開される、作業領域を提供する。
補助記憶装置404は、各種プログラムや、各種プログラムを実行することで生成される情報(例えば、物体モデル情報等)、ならびに各種プログラムを実行する際に用いられる情報(例えば、投影画像データ等)を格納する。
操作装置405は、操作判定装置130の管理者が操作判定装置130に対して各種指示を入力するためのデバイスである。
I/F装置406は、距離測定装置110及びプロジェクタ装置120と、操作判定装置130とを通信可能に接続するためのデバイスである。
ドライブ装置408は記録媒体410をセットするためのデバイスである。ここでいう記録媒体410には、CD−ROM、フレキシブルディスク、光磁気ディスク等のように情報を光学的、電気的あるいは磁気的に記録する媒体が含まれる。また、記録媒体410には、ROM、フラッシュメモリ等のように情報を電気的に記録する半導体メモリ等も含まれる。
なお、補助記憶装置404に格納される各種プログラムは、例えば、配布された記録媒体410がドライブ装置408にセットされ、該記録媒体410に記録された各種プログラムがドライブ装置408により読み出されることでインストールされる。
次に、物体160のオクルージョン領域について説明する。図5は、物体のオクルージョン領域を説明するための図である。
図5(a)に示すように、物体160が基準面150上に載置されている状態で、操作判定部210は、距離画像データに基づいて、原点O(距離測定装置110の位置)から物体160のそれぞれの頂点(特徴点と称す)までの距離データを取得する。図5(a)の例では、操作判定部210は、物体160の特徴点P、P、・・・P11までの距離データを取得する。
また、操作判定部210は、取得した距離データ及び距離画像データ内における各特徴点P、P、・・・P11の位置に基づいて、xyz空間における各特徴点P、P、・・・P11の座標を算出する。
図5(b)は、操作判定部210が、算出した各特徴点の座標のうち、基準面150より高い位置にある特徴点であって、タッチ面161を形成する特徴点P、P、P、Pを、オクルージョン領域を算出するための特徴点として抽出した様子を示している。
また、図5(b)は、操作判定部210が、オクルージョン領域を算出するために抽出した各特徴点P、P、P、Pと、原点Oとを結ぶ直線を算出することで、オクルージョン領域500の座標を算出した様子を示している。具体的には、操作判定部210では、オクルージョン領域500の座標として、オクルージョン領域500の境界面(オクルージョン領域を形成する最も外側の面)の座標を示す関数を算出する。
このように、操作判定装置130によれば、距離画像データから各特徴点P、P、P、Pを抽出し、それぞれの座標を算出することで、オクルージョン領域500の座標を算出することができる。
次に、操作判定装置130の物体モデル情報記憶部230に格納される物体モデル情報について説明する。図6は、物体モデル情報の一例を示す図である。
図6に示すように、物体モデル情報600には、xyz空間における原点Oの位置及び基準面150を形成する平面の名称が定義されている。図6の例は、xyz空間における原点Oの位置が"距離測定装置"の位置であること、基準面150が"平面α"であることを示している。
また、物体モデル情報600は、情報の項目として、"物体ID"、"物体名"、"物体形状データ"、"距離画像データ"を含む。更に、物体モデル情報600は、情報の項目として、"オクルージョン領域算出用特徴点座標"、"オクルージョン領域の境界面の座標を示す関数"、"タッチ面の座標を示す関数"を含む。
"物体ID"には、物体160を識別するための識別子("001")が格納される。"物体名"には、物体160の用途を示す名称("容器")が格納される。"物体形状データ"には、物体160の3次元形状を示すデータ(例えば、CAD(Computer Aided Design)データ)のファイル名("CAD001")が格納される。
"距離画像データ"には、物体160の物体モデル情報600を生成する際に用いた距離画像データのフレーム番号("Frame001")が格納される。
"オクルージョン領域算出用特徴点座標"には、距離測定装置110にて生成された距離画像データより抽出された物体160の特徴点のうち、オクルージョン領域500を算出するのに用いられる特徴点P〜Pの座標が格納される。具体的には、特徴点P〜Pの座標として、"P(x,y,z)、P2(x,y,z)、P(x,y,z)、P(x,y,z)"が格納される。
"オクルージョン領域の境界面の座標を示す関数"には、特徴点P〜Pの座標に基づいて算出された、オクルージョン領域500の境界面の座標を示す関数("B(x,y,z)")が格納される。
"タッチ面の座標を示す関数"には、物体160のタッチ面161の座標を示す関数("T(x,y,z)")が格納される。物体160のタッチ面161の座標は、物体形状データ("CAD001")により特定される物体160の各特徴点の座標と、距離画像データ("Frame001")より抽出された各特徴点の座標とをマッチングさせることで算出される。
次に、物体と手指との位置関係及び距離画像データを示す図を参照しながら、手指領域の一部の領域である指先が物体160の背後に隠れた場合の、指先の位置を推定する推定方法について説明する。図7は、物体と手指との位置関係及び距離画像データの一例を示す図である。
このうち、図7(a−1)〜(c−1)は、基準面150に載置された物体160をx軸方向から見た場合の物体160と手指300との位置関係を示している。なお、図7(a−1)〜(c−1)では、参考としてオクルージョン領域500も合わせて示している。一方、図7(a−2)〜(c−2)は、距離測定装置110から送信される距離画像データ701〜703を示している(説明の便宜上、可視化したものを示している)。
はじめに、手指300が、オクルージョン領域500に含まれていない状態(図7(a−1))について説明する。この状態では、図7(a−2)に示すように、手指領域700が物体の背後に隠れていないため、距離画像データ701("Frame101")に基づいて、手指領域700を抽出することができる。また、手指領域700より指先Fを検出することができる。そこで、操作判定部210では、距離画像データ701("Frame101")に基づいて指先Fの座標を算出する。
次に、手指300の指先Fが、オクルージョン領域500の境界面に到達した状態(図7(b−1))について説明する。なお、手指300の指先Fがオクルージョン領域500の境界面に到達した際の境界面上の位置をFとおく。
この状態では、図7(b−2)に示すように、距離画像データ702("Frame125")に基づいて、物体160の背後に隠れる直前の手指領域700を抽出することができる。また、手指領域700より指先Fを検出することができる。このため、操作判定部210では、距離画像データ702("Frame125")に基づいて指先Fの座標を算出する。
手指領域700の指先Fがオクルージョン領域500の境界面上の位置Fに到達した状態において、操作判定部210では、更に、手指領域700上の所定の基準点F(例えば、指の付け根部分Fb1や手首部分Fb2)の座標を算出する。また、操作判定部210では、指先Fの座標と、基準点Fの座標との差分を算出することで、基準点Fから指先Fまでのベクトル(「相対ベクトル」と称す)を算出する。相対ベクトルは、手指の長さ及び方向(基準点Fから指先Fまでの長さ及び方向)を示すベクトルである。
次に、手指300が更にタッチ面方向に近づき、手指300の一部の領域がオクルージョン領域500に含まれることで、指先Fがタッチ面161に触れた状態(図7(c−1))について説明する。この状態では、図7(c−2)に示すように、物体160の背後に手指領域700の一部の領域が隠れるため、距離画像データ703("Frame142")の手指領域700から指先Fを検出することができない。
そこで、操作判定部210では、指先Fの座標を推定したうえで、指先Fがタッチ面161に触れたか否かのタッチ判定を行う。
具体的には、操作判定部210では、距離画像データ703("Frame142")から、物体160の背後に隠れていない手指領域700を抽出し、基準点Fの座標を算出する。また、操作判定部210では、距離画像データ703("Frame142")から、物体160の背後に隠れていない手指領域700とオクルージョン領域500とが接している境界面上の位置F'の座標を算出する。更に、操作判定部210では、基準点Fの座標と境界面上の位置F'の座標との差分を算出することで、基準点Fから境界面上の位置F'までのベクトル(「差分ベクトル」と称す)を算出する。差分ベクトルは、手指領域700のうち、物体160の背後に隠れていない(オクルージョン領域500に含まれていない)領域の長さ及び方向(基準点Fから境界面上の位置F'までの長さ及び方向)を示すベクトルである。なお、差分ベクトルの算出に際しては、指の付け根部分Fb1または手首部分Fb2のいずれか一方を、基準点Fとして用いるものとする。
ここで、図7(c−1)に示すように、指先Fの座標は、境界面上の位置F'の座標に、境界面上の位置F'から指先Fまでのベクトル(「補正ベクトル」と称す)を加えることで算出することができる。そして、境界面上の位置F'から指先Fまでの補正ベクトルは、基準点Fから指先Fまでのベクトル(相対ベクトル)と、基準点Fから境界面上の位置F'までのベクトル(差分ベクトル)との差分を算出することで求めることができる。つまり、補正ベクトルは、手指領域のうち物体160の背後に隠れていない領域に基づいて算出された、物体160の背後に隠れた(オクルージョン領域500に含まれた)領域の長さ及び方向を示すベクトルである。
そこで、操作判定部210では、距離画像データ702("Frame125")に基づいて算出した相対ベクトルと、距離画像データ703("Frame142")に基づいて算出した差分ベクトルとの差分を算出することにより、補正ベクトルを算出する。更に、操作判定部210では、境界面上の位置F'の座標に補正ベクトルを加えることで、指先Fの座標を推定する(下式1参照)。
(式1)
=F'+a×(補正ベクトル) ただし、aは所定の係数。
次に、操作判定装置130の機能構成について説明する。図8は、操作判定装置の機能構成の一例を示す第1の図である。図8に示すように、操作判定部210は、距離画像データ取得部801、対象物体検出部802、オクルージョン領域算出部803、タッチ面座標算出部804を有する。
また、操作判定部210は、指先位置算出部805、オクルージョン領域挿入判定部806、基準点抽出部807、相対ベクトル算出部808、補正ベクトル算出部809、指先位置推定部810、タッチ判定部811を有する。
距離画像データ取得部801は、距離測定装置110より送信される距離画像データを取得する。操作判定装置130が物体モデル情報を生成するフェーズでは、距離画像データ取得部801は、取得した距離画像データを対象物体検出部802に送信する。また、操作判定装置130がタッチ判定を行うフェーズでは、距離画像データ取得部801は、取得した距離画像データを指先位置算出部805に送信する。
対象物体検出部802は、距離画像データに含まれる物体160の各特徴点P〜P11を抽出する。対象物体検出部802では、抽出した各特徴点P〜P11を、オクルージョン領域算出部803及びタッチ面座標算出部804に送信する。
オクルージョン領域算出部803は、対象物体検出部802から送信された各特徴点P〜P11から、オクルージョン領域算出用の特徴点P〜Pを抽出する。また、オクルージョン領域算出部803は、抽出した特徴点P〜Pに基づいて、オクルージョン領域の境界面の座標を示す関数を算出する。更に、オクルージョン領域算出部803は、算出したオクルージョン領域の境界面の座標を示す関数を、物体モデル情報600として物体モデル情報記憶部230に記憶する。
タッチ面座標算出部804は、対象物体検出部802から送信された各特徴点P〜P11の座標と、物体モデル情報記憶部230に記憶されている物体形状データより抽出された物体160の各特徴点の座標とのマッチングを行う。これにより、タッチ面座標算出部804では、基準面150上における物体160の各面の座標を認識することができる。
また、タッチ面座標算出部804は、基準面150上における物体160の各面の座標に基づいて、物体160のタッチ面161の座標を示す関数を算出する。なお、タッチ面座標算出部804では、算出したタッチ面161の座標を示す関数を、物体モデル情報600として、物体モデル情報記憶部230に記憶する。
指先位置算出部805は、距離画像データ取得部801より送信される距離画像データについて、フレームごとに手指領域700を抽出し、抽出した手指領域700より指先Fを検出することで、指先Fの座標を算出する。
オクルージョン領域挿入判定部806は、物体モデル情報記憶部230に記憶されているオクルージョン領域500の境界面の座標を示す関数を読み出す。また、オクルージョン領域挿入判定部806は、距離画像データのフレームごとに算出された指先Fの座標が、オクルージョン領域500の境界面に到達したか否かを判定する。オクルージョン領域500の境界面に到達したと判定した場合、オクルージョン領域挿入判定部806では、判定結果を基準点抽出部807に送信する。
また、オクルージョン領域挿入判定部806は、指先Fがオクルージョン領域境界面に到達したと判定して以降、距離画像データの各フレームにおいて、手指領域700とオクルージョン領域500の境界面とが接している境界面上の位置F'の座標を算出する。更に、オクルージョン領域挿入判定部806は、手指領域700とオクルージョン領域500の境界面とが接している境界面上の位置F'の座標を、補正ベクトル算出部809及びタッチ判定部811に送信する。
基準点抽出部807は、オクルージョン領域挿入判定部806より、判定結果を受信した場合に、判定に用いられた距離画像データを参照する。また、基準点抽出部807は、当該距離画像データより基準点F(例えば、指の付け根部分Fb1、手首部分Fb2)を抽出し、抽出した基準点Fの座標を算出し、相対ベクトル算出部808に送信する。更に、基準点抽出部807は、オクルージョン領域挿入判定部806より、判定結果を受信して以降の基準点Fの座標を、補正ベクトル算出部809に送信する。
相対ベクトル算出部808は、基準点抽出部807より、基準点Fの座標を受信すると、当該基準点Fの座標が算出された際の指先Fの座標を、指先位置算出部805より取得する。また、相対ベクトル算出部808は、受信した基準点Fの座標と、取得した指先Fの座標との差分を算出することで、基準点Fと指先Fとの間の相対ベクトルを算出する。相対ベクトル算出部808は、算出した相対ベクトルを補正ベクトル算出部809に送信する。
補正ベクトル算出部809は、オクルージョン領域挿入判定部806より、手指領域700とオクルージョン領域500の境界面とが接している境界面上の位置F'の座標を受信すると、基準点抽出部807にて算出された基準点Fの座標を取得する。また、補正ベクトル算出部809は、取得した基準点Fの座標と境界面上の位置F'の座標との差分ベクトルを算出する。また、補正ベクトル算出部809は、相対ベクトル算出部808より送信された相対ベクトルと、算出した差分ベクトルとの差分を算出することで、補正ベクトルを求める。更に、補正ベクトル算出部809は、補正ベクトルを指先位置推定部810に送信する。
指先位置推定部810は、オクルージョン領域挿入判定部806より送信された境界面上の位置F'の座標に、補正ベクトル算出部809より送信された補正ベクトルを加えることで、指先Fの座標(補正ベクトルの先端の座標)を推定する。
タッチ判定部811は、物体モデル情報記憶部230に記憶されたタッチ面161の座標を示す関数を読み出し、所定の条件を満たすか否か(推定された指先Fの座標と一致するか否か)を判定するタッチ判定を行う。タッチ判定部811では、所定の条件を満たす(推定された指先Fの座標が、タッチ面161の座標を示す関数により特定される座標と一致していた)場合には、手指300の指先Fがタッチ面161に触れたと判定する。一方、所定の条件を満たさない(推定された指先Fの座標が、タッチ面161の座標を示す関数により特定される座標と一致していない)場合には、手指300の指先Fがタッチ面161に触れていないと判定する。なお、手指300の指先Fがタッチ面161に触れたと判定した場合、タッチ判定部811では、判定結果を、画像投影部220に通知する。
続いて、操作判定装置130の各フェーズ(物体モデル情報を生成するフェーズ、タッチ判定を行うフェーズ)において実行される処理(物体モデル情報生成処理、タッチ判定処理)の流れについて説明する。
はじめに、操作判定装置130における物体モデル情報生成処理の流れについて説明する。図9は、物体モデル情報生成処理の第1のフローチャートである。図9に示すフローチャートは、基準面150に物体160が載置され、物体形状データが物体モデル情報記憶部230に格納された状態で、処理が開始される。
ステップS901において、距離画像データ取得部801は、距離測定装置110より距離画像データ("Frame001")を取得する。
ステップS902において、対象物体検出部802は、距離画像データ("Frame001")より物体160の特徴点(P〜P11)を抽出する。ステップS903において、対象物体検出部802は、抽出した特徴点(P〜P11)の座標を算出する。
ステップS904において、オクルージョン領域算出部803は、算出された各特徴点(P〜P11)の座標のうち、オクルージョン領域算出用の各特徴点(P〜P)の座標を抽出する。なお、オクルージョン領域算出部803は、算出したオクルージョン領域算出用の各特徴点(P〜P)の座標("P(x,y,z)、・・・P(x,y,z)")を物体モデル情報記憶部230に記憶する。
ステップS905において、オクルージョン領域算出部803は、抽出したオクルージョン領域算出用の特徴点の座標(P〜P)を用いて、オクルージョン領域500の境界面の座標を示す関数("B(x,y,z)")を算出する。なお、オクルージョン領域算出部803は、算出したオクルージョン領域500の境界面の座標を示す関数("B(x,y,z)")を、物体モデル情報記憶部230に記憶する。
ステップS906において、タッチ面座標算出部804は、物体モデル情報記憶部230より、物体形状データ("CAD001")を読み出す。ステップS907において、タッチ面座標算出部804は、読み出した物体形状データ("CAD001")に含まれる各特徴点(P〜P11)の座標と、対象物体検出部802により抽出された各特徴点(P〜P11)の座標とをマッチングさせる処理を行う。
ステップS908において、タッチ面座標算出部804は、マッチングした状態におけるタッチ面161の座標を示す関数("T(x,y,z)")を、物体形状データ("CAD001")に基づいて算出する。なお、タッチ面座標算出部804は、算出したタッチ面161の座標を示す関数("T(x,y,z)")を、物体モデル情報記憶部230に記憶する。
次に、操作判定装置130におけるタッチ判定処理の流れについて説明する。図10及び図11は、タッチ判定処理の第1及び第2のフローチャートである。図10に示すフローチャートは、物体モデル情報記憶部230に、オクルージョン領域算出用の各特徴点の座標、オクルージョン領域500の境界面の座標を示す関数及びタッチ面161の座標を示す関数が記憶された状態で、処理が開始される。
ステップS1001において、オクルージョン領域挿入判定部806は、挿入中フラグIに"0"を代入する。
ステップS1002において、距離画像データ取得部801は、距離画像データ1フレーム分を取得する。ステップS1003において、指先位置算出部805は、取得された1フレーム分の距離画像データより、手指領域700を抽出する。
ステップS1004において、指先位置算出部805は、ステップS1003において抽出した手指領域700から、指先Fを検索する。ステップS1005において、指先位置算出部805では、抽出した手指領域700より指先Fを検出できたか否かを判定する。
ステップS1005において、指先Fを検出できたと判定した場合には、ステップS1006に進む。ステップS1006において、オクルージョン領域挿入判定部806は、ステップS1004において検出した指先Fの座標と、オクルージョン領域500の境界面の座標とを比較する。
比較の結果、指先Fの座標と、オクルージョン領域500の境界面の座標とが一致しないと判定した場合には、ステップS1007からステップS1002に戻る。この場合、次のフレームの距離画像データを取得して引き続きステップS1003以降の処理を行う。
一方、比較の結果、一致すると判定した場合には、ステップS1007からステップS1008に進む。ステップS1008において、オクルージョン領域挿入判定部806は、指先Fがオクルージョン領域500の境界面に到達したと判定する。
ステップS1009において、オクルージョン領域挿入判定部806は、挿入中フラグIが"0"であるか否かを判定する。挿入中フラグIが"0"でないと判定した場合には、ステップS1002に戻る。この場合、次のフレームの距離画像データを取得し、引き続きステップS1003以降の処理を行う。
一方、ステップS1009において、挿入中フラグIが"0"であると判定した場合には、ステップS1010に進む。ステップS1010において、基準点抽出部807は、距離画像データより基準点F(Fb1またはFb2)を抽出し、抽出した基準点F(Fb1またはFb2)の座標を算出する。
ステップS1011において、相対ベクトル算出部808は、ステップS1004において算出した指先Fの座標(=Fの座標)と、ステップS1010において算出した基準点F(Fb1またはFb2)の座標との差分を算出する。これにより、相対ベクトル算出部808では、相対ベクトルを算出する。
ステップS1012において、オクルージョン領域挿入判定部806は、挿入中フラグIに"1"を代入した後、ステップS1002に戻る。そして、次のフレームの距離画像データを取得し、引き続きステップS1003以降の処理を行う。
一方、ステップS1005において、指先Fが検出できなかったと判定した場合には、図11のステップS1101に進む。ステップS1005において、指先Fが検出できなかったと判定された場合とは、指先Fがオクルージョン領域500に含まれている状態である。したがって、この時点では、既に、挿入中フラグIには"1"が代入され、相対ベクトルが算出されている。
ステップS1101において、基準点抽出部807は、現在のフレームの距離画像データにおいて、基準点Fb1を抽出する。ステップS1101において、基準点Fb1を抽出できたと判定した場合には、ステップS1102に進む。
ステップS1102において、オクルージョン領域挿入判定部806は、現在のフレームの距離画像データに基づいて、物体160に隠れていない手指領域700とオクルージョン領域500の境界面とが接している境界面上の位置F'の座標を算出する。また、補正ベクトル算出部809は、算出した境界面上の位置F'の座標と、基準点Fb1の座標との差分を算出することで、差分ベクトルを求める。更に、補正ベクトル算出部809は、差分ベクトルと相対ベクトルとの差分を算出することで、補正ベクトルを算出する。
ステップS1103において、指先位置推定部810は、算出した境界面上の位置F'の座標に補正ベクトルを加えることで、指先Fの座標を推定する。
一方、ステップS1101において、基準点Fb1を抽出できなかったと判定した場合には、ステップS1104に進む。ステップS1104において、補正ベクトル算出部809は、現在のフレームの距離画像データに基づいて、物体160の背後に隠れていない手指領域700とオクルージョン領域500の境界面とが接している境界面上の位置F'の座標を算出する。また、補正ベクトル算出部809は、算出した境界面上の位置F'の座標と、基準点Fb2の座標との差分を算出することで、差分ベクトルを求める。更に、補正ベクトル算出部809は、差分ベクトルと相対ベクトルとの差分を算出することで、補正ベクトルを算出する。
ステップS1105において、指先位置推定部810は、算出した境界面上の位置F'の座標に補正ベクトルを加えることで、指先Fの座標を推定する。
ステップS1106において、タッチ判定部811は、ステップS1103またはステップS1105において推定された指先Fの座標と、物体モデル情報記憶部230に記憶されているタッチ面161の座標を示す関数とを比較する。
ステップS1107において、タッチ判定部811は、所定の条件を満たさない(指先Fの座標とタッチ面161の座標を示す関数により特定されるタッチ面161の座標とが一致していない)と判定した場合には、ステップS1102に戻る。この場合、次のフレームの距離画像データに基づいて、ステップS1003以降の処理を行う。
一方、ステップS1107において、所定の条件を満たす(指先Fの座標とタッチ面161の座標を示す関数により特定されるタッチ面161の座標とが一致している)と判定した場合には、ステップS1108に進む。ステップS1108において、タッチ判定部811は、指先Fがタッチ面161に触れたと判定し、判定結果を画像投影部220に送信したうえで、タッチ判定処理を終了する。
以上の説明から明らかなように、情報操作出力システム100では、情報操作出力システム100では、手指の一部の領域が物体160の背後のオクルージョン領域に含まれる直前の基準点の座標と指先の座標とに基づいて、相対ベクトルを算出する。また、情報操作出力システム100では、手指の一部の領域が物体160のオクルージョン領域500に含まれて以降、基準点の座標とオクルージョン領域500に接している位置の座標とに基づいて、差分ベクトルを算出する。更に、情報操作出力システム100では、相対ベクトルと差分ベクトルとを用いて、オクルージョン領域500に含まれている手指の一部の領域の長さ及び方向を示す補正ベクトルを算出する。
これにより、情報操作出力システム100によれば、距離画像データの各フレームにおいて算出した、オクルージョン領域500に接している位置の座標と補正ベクトルとを用いて、指先の座標を推定することができる。
つまり、情報操作出力システム100によれば、オクルージョン領域に含まれる指先の位置を推定することができる。
更に、情報操作出力システム100では、推定した指先の位置の座標と、予め算出したタッチ面161の座標を示す関数により特定されるタッチ面161の座標と比較する。
これにより、情報操作出力システム100によれば、手指の一部の領域が物体の背後のオクルージョン領域に含まれることで指先が検出できない場合であっても、ユーザの指先がタッチ面に触れたか否かの判定を行うことができる。
[第2の実施形態]
上記第1の実施形態では、物体160におけるタッチ面として、オクルージョン領域に含まれるタッチ面161を1面のみ規定した。しかしながら、物体160のタッチ面は1面に限定されず、複数面あってもよい。また、物体160のタッチ面にはオクルージョン領域に含まれていない面が含まれていてもよい。以下、第2の実施形態について、上記第1の実施形態との相違点を中心に説明する。
図12は、複数のタッチ面を有する物体の物体モデル情報の一例を示す図である。図12(a)は物体160の外観構成を示しており、ハッチングされた面は、第2の実施形態において、タッチ面として規定された面である。
図12(a)に示すように、第2の実施形態では、タッチ面として、タッチ面161に加え、タッチ面1201、1202を規定している。なお、タッチ面1201、タッチ面1202は、基準面150に物体160が載置された際に、上側に位置する面であり、オクルージョン領域500には含まれない面である。
図12(b)は、タッチ面161に加え、タッチ面1201、1202が規定された物体160の物体モデル情報1210の一例を示している。図6に示した物体モデル情報600との相違点は、オクルージョン領域に含まれるタッチ面161の座標を示す関数と、オクルージョン領域に含まれない(非オクルージョン領域の)タッチ面1201、1202の座標を示す関数とが算出されている点である。
次に、オクルージョン領域に含まれるタッチ面161と、オクルージョン領域に含まれないタッチ面1201、1202とを含む複数のタッチ面を有する物体に対するタッチ判定処理の流れについて説明する。図13及び図14は、複数のタッチ面を有する物体に対するタッチ判定処理の第1及び第2のフローチャートである。
図10及び図11に示したタッチ判定処理のフローチャートとの相違点は、ステップS1301〜S1303及びステップS1401である。
指先Fの座標とオクルージョン領域500の境界面の座標とが一致しないと判定した場合、第2の実施形態では、ステップS1301に進む。ステップS1301において、タッチ判定部811は、指先Fの座標とタッチ面1201、1202の座標を示す関数(非オクルージョン領域)により特定されるタッチ面1201または1202の座標とを比較する。
比較の結果、指先Fの座標とタッチ面1201または1202の座標を示す関数(非オクルージョン領域)により特定されるタッチ面1201または1202の座標とが一致すると判定した場合には、ステップS1302からステップS1303に進む。
ステップS1303において、タッチ判定部811は、指先Fがタッチ面1201または1202(非オクルージョン領域)に触れたと判定し、ステップS1002に戻る。この場合、タッチ判定部811では、判定結果を画像投影部220に通知したうえで、次のフレームの距離画像データについて、ステップS1003以降の処理を行う。
一方、比較の結果、一致しないと判定した場合には、ステップS1302から、直接、ステップS1202に戻り、次のフレームの距離画像データについて、ステップS1003以降の処理を行う。
また、図14のステップS1401では、タッチ判定部811が、指先Fの座標とタッチ面161の座標を示す関数(オクルージョン領域)により特定されるタッチ面161の座標とを比較する。
このように、第2の実施形態では、手指領域700の一部の領域がオクルージョン領域500に含まれている場合と、含まれていない場合とで、タッチ判定を行う際に用いるタッチ面の座標を示す関数を切り替える。これにより、第2の実施形態によれば、オクルージョン領域に含まれていないタッチ面とオクルージョン領域に含まれているタッチ面とを有する物体において、いずれのタッチ面に対してもタッチ判定を行うことができる。
[第3の実施形態]
上記第1及び第2の実施形態では、物体形状データを用いて物体のタッチ面の座標を示す関数を算出した。しかしながら、タッチ面が所定形状を有しており、特徴点P〜Pの座標を算出することで、タッチ面の座標を示す関数が一意に定まる場合においては、物体形状データを用いる必要はない。また、この場合、第1及び第2の実施形態のように指先の座標を算出しなくても、より簡単な処理でタッチ判定を行うことができる。そこで、第3の実施形態では、物体が所定形状のタッチ面を有する場合のタッチ判定について説明する。以下、第3の実施形態について、上記第1の実施形態との相違点を中心に説明する。
図15は、所定形状のタッチ面を有する物体の物体モデル情報の一例を示す図である。図15(a)に示すように、物体1500が有するタッチ面1501は、凹凸のない平坦面により形成され、基準面150に載置した場合に、基準面150に対して略直交する。つまり、特徴点P〜Pの座標が算出されることで、タッチ面1501の座標を一意に定めることができる。このため、第3の実施形態における物体モデル情報1510には、図15(b)に示すように、"物体形状データ"は格納されず、"タッチ面形状"として"基準面に直交する平面"が格納される。
次に、物体と手指との位置関係及び距離画像データを示す図16を参照しながら、手指領域の一部の領域である指先が物体1500の背後に隠れた場合のタッチ判定について説明する。図16は、所定形状のタッチ面を有する物体と手指との位置関係及び距離画像データの一例を示す図である。
図16(a−1)〜(c−1)は、基準面150に載置された物体1500をx軸方向から見た場合の物体1500と手指との位置関係を示している。なお、図16(a−1)〜(c−1)では、参考としてオクルージョン領域500も合わせて示している。一方、図16(a−2)〜(c−2)は、距離測定装置110から送信される距離画像データ1601〜1603を示している(図7と同様、可視化したものを示している)。
なお、図16(a−1)、(b−1)及び図16(a−2)、(b−2)において算出される指先F、基準点F、境界面上の位置Fの算出方法は、図7(a−1)、(b−1)及び図7(a−2)、(b−2)において説明済みである。したがって、ここでは、指先F、基準点F、境界面上の位置Fの算出方法についての説明は省略する。
上述したとおり、物体1500のタッチ面1501は、基準面150に対して略直交する平坦面により形成されている。このため、オクルージョン領域500の境界面からタッチ面1501までの距離は、オクルージョン領域500の境界面の高さ方向の位置(z軸方向の座標)によって決まる。
そこで、操作判定部210では、まず、手指300がタッチ面方向に近づき、手指領域1600の指先Fがオクルージョン領域500の境界面に到達した際の境界面上の位置Fのz軸座標を算出する。また、操作判定部210では、算出した境界面上の位置Fのz軸座標に基づいて、タッチ面1501までの距離Lを算出する(図16(b−1)、(b−2))。また、操作判定部210では、手指領域1600の指先Fがオクルージョン領域500の境界面に到達した際の基準点F(Fb1またはFb2)の座標を算出する(図16(b−1)、(b−2))。
更に、操作判定部210では、手指領域1600の指先Fが、オクルージョン領域500の境界面に到達して以降の、距離画像データの各フレームについて、基準点Fのy軸方向の移動量Lyを算出する。具体的には、手指領域1600の指先Fがオクルージョン領域500の境界面に到達した際の基準点Fの座標と、現在の基準点Fの座標とに基づいて、y軸方向の移動量Lyを算出する(図16(c−2))。
操作判定部210では、基準点Fの移動量Lyがタッチ面1501までの距離Lに等しければ、手指300の指先Fがタッチ面1501に触れたと判定する。
このように、所定形状のタッチ面1501を有する物体1500に対しては、より簡単な処理でタッチ判定を行うことができる。
次に、操作判定装置130の機能構成について説明する。図17は、操作判定装置の機能構成の一例を示す第2の図である。図8に示した機能構成との相違点は、オクルージョン領域挿入判定部1701、タッチ判定部1703の機能が、図8のオクルージョン領域挿入判定部806、タッチ判定部811の機能とは異なる点である。更に、図8に示した機能構成との相違点は、相対ベクトル算出部808、補正ベクトル算出部809、指先位置推定部810の代わりに、基準点移動量算出部1702が含まれている点である。
オクルージョン領域挿入判定部1701は、物体モデル情報記憶部230に記憶されているオクルージョン領域500の境界面の座標を示す関数を読み出す。また、オクルージョン領域挿入判定部1701は、距離画像データのフレームごとに算出された指先Fの座標が、オクルージョン領域500の境界面に到達したか否かを判定する。オクルージョン領域500の境界面に到達したと判定した場合、オクルージョン領域挿入判定部1701では、判定結果を基準点抽出部807に送信する。
また、オクルージョン領域挿入判定部1701は、オクルージョン領域挿入判定部1701は、手指領域1600とオクルージョン領域500の境界面とが接している境界面上の位置Fのz軸座標に基づいて、タッチ面1501までの距離Lを算出する。更に、オクルージョン領域挿入判定部1701は、算出した距離Lをタッチ判定部1703に送信する。
基準点移動量算出部1702は、現在の基準点Fの座標と、基準点抽出部807において算出された基準点Fの座標(指先Fがオクルージョン領域500の境界面に到達した際の基準点Fの座標)との差分を算出し、移動量Lyを算出する。また、算出した移動量Lyをタッチ判定部1703に送信する。
タッチ判定部1703は、オクルージョン領域挿入判定部1701より送信されたタッチ面1501までの距離Lと、基準点移動量算出部1702より送信された移動量Lyとを比較する。タッチ判定部1703では、所定の条件を満たす(両者が一致した)場合に、手指300の指先Fがタッチ面1501に触れたと判定する。一方、所定の条件を満たさない(両者が一致していない)場合には、手指300の指先Fがタッチ面1501に触れていないと判定する。
次に、第3の実施形態における物体モデル情報生成処理の流れについて説明する。図18は、所定形状のタッチ面を有する物体の物体モデル情報生成処理のフローチャートである。図9に示すフローチャートとの相違点は、図18の場合、ステップS906、S907の処理がない点、及び、ステップS1801の処理内容が、ステップS908の処理内容とは異なる点である。
ステップS1801において、タッチ面座標算出部804は、ステップS903において算出された各特徴点のうち、タッチ面1501の座標を示す関数の算出に用いる特徴点P〜Pの座標を抽出する。また、タッチ面座標算出部804は、タッチ面1501が基準面150に直交することを利用し、抽出した座標を用いて、タッチ面1501の座標を示す関数を算出する。
次に、第3の実施形態におけるタッチ判定処理の流れについて説明する。図19及び図20は、所定形状のタッチ面を有する物体に対するタッチ判定処理の第1及び第2のフローチャートである。図10に示すフローチャートとの相違点は、図19の場合、ステップS1011の代わりにステップS1901が実行される点である。また、図11に示すフローチャートとの相違点は、図20の場合、ステップS1102〜S1106の代わりに、ステップS2001〜S2003が実行される点である。
ステップS1901において、オクルージョン領域挿入判定部1701は、手指領域1600とオクルージョン領域500の境界面とが接している境界面上の位置Fのz軸座標に基づいて、タッチ面1501までの距離を算出する。
ステップS2001において、基準点移動量算出部1702は、基準点Fb1の移動量Lyを算出する。また、ステップS2002において、基準点移動量算出部1702は、基準点Fb2の移動量Lyを算出する。
ステップS2003において、タッチ判定部1703は、ステップS1901において算出した距離Lと、ステップS2001において算出した基準点Fb1の移動量Lyまたは基準点Fb2の移動量Lyとを比較する。これにより、タッチ判定部1703では、ステップS1108において、距離Lと移動量Lyとが一致しているか否かを判定する。なお、タッチ判定部1703では、所定の条件を満たす(距離Lと移動量Lyとが一致している)と判定した場合、判定結果を画像投影部220に通知する。
以上の説明から明らかなように、第3の実施形態において情報操作出力システム100では、特徴点に基づいてタッチ面の座標が一意に定まる場合には、物体形状データを用いることなく、距離画像データに基づいて、タッチ面の座標を算出する。これにより、第3の実施形態によれば、より簡単な処理で物体モデル情報を生成することができる。
また、第3の実施形態において情報操作出力システム100では、手指領域の一部の領域が物体1500の背後に隠れる直前の基準点の座標を算出する。また、情報操作出力システム100では、手指領域の一部の領域が物体1500の背後に隠れる直前の手指領域1600とオクルージョン領域500の境界面とが接している境界面上の位置Fのz軸座標に基づいて、タッチ面1501までの距離を算出する。また、情報操作出力システム100では、手指領域の一部の領域が物体1500の背後に隠れた後の距離画像データの各フレームにおいて、物体1500の背後に隠れる直前の基準点からのタッチ面方向への移動量を算出する。更に、情報操作出力システム100では、タッチ面1501までの距離と移動量とを比較することで、タッチ判定を行う。
これにより、第3の実施形態によれば、より簡単な処理でタッチ判定を行うことができる。
[その他の実施形態]
上記第1乃至第3の実施形態では、物体に関するデジタル情報を、プロジェクタ装置120を介して投影表示した。しかしながら、物体に関するデジタル情報は、プロジェクタ装置120以外の装置を用いて表示するようにしてもよい。また、物体に関するデジタル情報は、表示に代えて、あるいは表示とともに、音声を用いて出力するようにしてもよい。つまり、操作判定装置130には、プロジェクタ装置120の代わりに任意の出力装置が接続されてもよい。
また、上記第1乃至第3の実施形態では、距離測定装置110として、TOF方式の距離画像センサを用いることとしたが、TOF方式以外の距離画像センサを用いてもよいことはいうまでもない。
また、上記第1乃至第3の実施形態では、基準点Fとして、指の付け根部分Fb1または手首部分Fb2のいずれかを用いるものとして説明したが、いずれの基準点を用いるかは、手指領域がオクルージョン領域500に含まれる量に基づいて切り替えてもよい。例えば、指の付け根部分Fb1を第1の基準点、手首部分Fb2を第2の基準点とし、手指領域がオクルージョン領域500に含まれる量が所定の閾値以上になった場合に、第1の基準点から第2の基準点に切り替えるようにしてもよい。
また、上記第1乃至第3の実施形態では、基準点Fとして、指の付け根部分Fb1と手首部分Fb2とを例示したが、基準点Fとして抽出する部位は、これに限定されない。ただし、オクルージョン領域500の境界面からタッチ面までの距離よりも、指先Fから基準点Fまでの距離の方が長くなるように、基準点Fを抽出するものとする。
換言すると、抽出する基準点Fに応じて概ね特定される指先Fからの距離よりも、オクルージョン領域500の境界面からタッチ面までの距離の方が短くなるように、物体の載置位置を決定するか、距離測定装置110の設置位置を決定するものとする。物体の載置位置または距離測定装置110の設置位置は、好ましくは、オクルージョン領域500の境界面からタッチ面までの距離が、指先Fから手首部分Fb2までの距離よりも短くなるように決定されるものとする。また、物体の載置位置または距離測定装置110の設置位置は、より好ましくは、オクルージョン領域500の境界面からタッチ面までの距離が、指先Fから指の付け根部分Fb1あるいは第2関節までの距離よりも短くなるように決定されるものとする。
更に、上記第1及び第2の実施形態では、手指領域の一部の領域が物体160の背後に隠れる直前に相対ベクトルを算出した。しかしながら、相対ベクトルの算出タイミングは、手指領域の一部の領域が物体160の背後に隠れる前であれば、直前でなくてもよい。例えば、オクルージョン領域500の境界面までの距離が所定値以下となったタイミングで、相対ベクトルを算出するようにしてもよい。
なお、開示の技術では、以下に記載する付記のような形態が考えられる。
(付記1)
取得した距離画像から算出した、手指の長さ及び方向を示す第1ベクトルと、前記手指の指先がオクルージョン領域に含まれる場合の、前記オクルージョン領域に含まれていない手指領域の長さ及び方向を示す第2ベクトルとに基づき、前記オクルージョン領域に含まれる手指領域の長さ及び方向を示す第3ベクトルを算出する算出手段と、
前記第2ベクトルの前記オクルージョン領域に接している端に前記第3ベクトルを加えて、前記指先の位置を推定する推定手段と
を有することを特徴とする指先位置推定装置。
(付記2)
推定した前記指先の位置と、予め算出された前記オクルージョン領域に含まれる所定の面の位置とに基づいて、該所定の面に前記指先が触れたか否かを判定するタッチ判定手段を更に有することを特徴とする付記1に記載の指先位置推定装置。
(付記3)
前記タッチ判定手段は、前記オクルージョン領域に含まれる所定の面の位置と、推定した前記指先の位置との関係が所定の条件を満たした場合に、前記所定の面に前記指先が触れたと判定することを特徴とする付記2に記載の指先位置推定装置。
(付記4)
前記第1ベクトルは、前記手指の指先が前記オクルージョン領域に含まれる前の、前記手指の所定の基準点の位置と前記指先の位置とに基づいて算出され、
前記第2ベクトルは、前記オクルージョン領域に接している位置と、前記基準点の位置とに基づいて算出されることを特徴とする付記1に記載の指先位置推定装置。
(付記5)
前記算出手段は、前記第1ベクトルと前記第2ベクトルとの差分を算出することで、前記第3ベクトルを算出することを特徴とする付記4に記載の指先位置推定装置。
(付記6)
前記基準点は、前記指先の位置に近い第1の基準点と、前記指先の位置に対して該第1の基準点より離れた第2の基準点とを少なくとも有し、
前記第1ベクトル及び前記第2ベクトルは、前記手指領域が前記オクルージョン領域に含まれる量に基づいて、該第1の基準点または該第2の基準点のいずれかを用いて算出されることを特徴とする付記4に記載の指先位置推定装置。
(付記7)
手指の指先が物体の背後のオクルージョン領域に到達した場合に、該指先の位置から該物体のオクルージョン領域に含まれる所定形状の面までの距離を、予め算出した前記オクルージョン領域の境界面の位置に基づいて算出する第1の算出手段と、
前記手指の指先が前記オクルージョン領域に到達した場合に、前記手指の所定の基準点の位置を算出する第2の算出手段と、
前記手指の指先が前記オクルージョン領域に到達して以降の前記基準点の前記所定形状の面方向への移動量と、算出した前記所定形状の面までの距離とに基づいて、前記所定形状の面に前記手指の指先が触れたか否かを判定するタッチ判定手段と
を有することを特徴とする操作判定装置。
(付記8)
測定範囲に含まれる手指までの距離を測定し、距離画像を生成する距離測定装置と、
前記距離測定装置より取得した距離画像に基づいて、前記手指の指先の位置を推定する指先位置推定装置と、
を有する指先位置推定システムであって、
前記指先位置推定装置は、
取得した距離画像から算出した、手指の長さ及び方向を示す第1ベクトルと、前記手指の指先がオクルージョン領域に含まれる場合の、前記オクルージョン領域に含まれていない手指領域の長さ及び方向を示す第2ベクトルとに基づき、前記オクルージョン領域に含まれる手指領域の長さ及び方向を示す第3ベクトルを算出する算出手段と、
前記第2ベクトルの前記オクルージョン領域に接している端に前記第3ベクトルを加えて、前記指先の位置を推定する推定手段と
を有することを特徴とする指先位置推定システム。
(付記9)
推定した前記指先の位置と、予め算出された前記オクルージョン領域に含まれる所定の面の位置とに基づいて、該所定の面に前記指先が触れたか否かを判定するタッチ判定手段を更に有することを特徴とする付記8に記載の指先位置推定システム。
(付記10)
前記タッチ判定手段は、前記オクルージョン領域に含まれる所定の面の位置と、推定した前記指先の位置との関係が所定の条件を満たした場合に、前記所定の面に前記指先が触れたと判定することを特徴とする付記9に記載の指先位置推定システム。
(付記11)
取得した距離画像から算出した、手指の長さ及び方向を示す第1ベクトルと、前記手指の指先がオクルージョン領域に含まれる場合の、前記オクルージョン領域に含まれていない手指領域の長さ及び方向を示す第2ベクトルとに基づき、前記オクルージョン領域に含まれる手指領域の長さ及び方向を示す第3ベクトルを算出し、
前記第2ベクトルの前記オクルージョン領域に接している端に前記第3ベクトルを加えて、前記指先の位置を推定する、
処理をコンピュータに実行させる指先位置推定プログラム。
(付記12)
推定した前記指先の位置と、予め算出された前記オクルージョン領域に含まれる所定の面の位置とに基づいて、該所定の面に前記指先が触れたか否かを判定する、処理を前記コンピュータに実行させる付記11に記載の指先位置推定プログラム。
(付記13)
前記オクルージョン領域に含まれる所定の面の位置と、推定した前記指先の位置との関係が所定の条件を満たした場合に、前記所定の面に前記指先が触れたと判定することを特徴とする付記12に記載の指先位置推定プログラム。
(付記14)
コンピュータが、
取得した距離画像から算出した、手指の長さ及び方向を示す第1ベクトルと、前記手指の指先がオクルージョン領域に含まれる場合の、前記オクルージョン領域に含まれていない手指領域の長さ及び方向を示す第2ベクトルとに基づき、前記オクルージョン領域に含まれる手指領域の長さ及び方向を示す第3ベクトルを算出し、
前記第2ベクトルの前記オクルージョン領域に接している端に前記第3ベクトルを加えて、前記指先の位置を推定する、
処理を実行することを特徴とする指先位置推定方法。
(付記15)
前記コンピュータが、
推定した前記指先の位置と、予め算出された前記オクルージョン領域に含まれる所定の面の位置とに基づいて、該所定の面に前記指先が触れたか否かを判定する、処理を実行することを特徴とする付記14に記載の指先位置推定方法。
(付記16)
前記オクルージョン領域に含まれる所定の面の位置と、推定した前記指先の位置との関係が所定の条件を満たした場合に、前記所定の面に前記指先が触れたと判定することを特徴とする付記15に記載の指先位置推定方法。
なお、上記実施形態に挙げた構成等に、その他の要素との組み合わせ等、ここで示した構成に本発明が限定されるものではない。これらの点に関しては、本発明の趣旨を逸脱しない範囲で変更することが可能であり、その応用形態に応じて適切に定めることができる。
100 :情報操作出力システム
110 :距離測定装置
120 :プロジェクタ装置
130 :操作判定装置
140 :架台
150 :基準面
160 :物体
161 :タッチ面
210 :操作判定部
220 :画像投影部
300 :手指
500 :オクルージョン領域
600 :物体モデル情報
801 :距離画像データ取得部
802 :対象物体検出部
803 :オクルージョン領域算出部
804 :タッチ面座標算出部
805 :指先位置算出部
806 :オクルージョン領域挿入判定部
807 :基準点抽出部
808 :相対ベクトル算出部
809 :補正ベクトル算出部
810 :指先位置推定部
811 :タッチ判定部
1201、1202 :タッチ面
1500 :物体
1501 :タッチ面
1510 :物体モデル情報
1701 :オクルージョン領域挿入判定部
1702 :基準点移動量算出部
1703 :タッチ判定部

Claims (9)

  1. 取得した距離画像から算出した、手指の長さ及び方向を示す第1ベクトルと、前記手指の指先がオクルージョン領域に含まれる場合の、前記オクルージョン領域に含まれていない手指領域の長さ及び方向を示す第2ベクトルとに基づき、前記オクルージョン領域に含まれる手指領域の長さ及び方向を示す第3ベクトルを算出する算出手段と、
    前記第2ベクトルの前記オクルージョン領域に接している端に前記第3ベクトルを加えて、前記指先の位置を推定する推定手段と
    推定した前記指先の位置と、予め算出された前記オクルージョン領域に含まれる所定の面の位置とに基づいて、該所定の面に前記指先が触れたか否かを判定するタッチ判定手段と
    を有することを特徴とする操作判定装置
  2. 前記タッチ判定手段は、前記オクルージョン領域に含まれる所定の面の位置と、推定した前記指先の位置との関係が所定の条件を満たした場合に、前記所定の面に前記指先が触れたと判定することを特徴とする請求項に記載の操作判定装置
  3. 取得した距離画像から算出した、手指の長さ及び方向を示す第1ベクトルと、前記手指の指先がオクルージョン領域に含まれる場合の、前記オクルージョン領域に含まれていない手指領域の長さ及び方向を示す第2ベクトルとに基づき、前記オクルージョン領域に含まれる手指領域の長さ及び方向を示す第3ベクトルを算出する算出手段と、
    前記第2ベクトルの前記オクルージョン領域に接している端に前記第3ベクトルを加えて、前記指先の位置を推定する推定手段と、を有し、
    前記第1ベクトルは、前記手指の指先が前記オクルージョン領域に含まれる前の、前記手指の所定の基準点の位置と前記指先の位置とに基づいて算出され、
    前記第2ベクトルは、前記オクルージョン領域に接している位置と、前記基準点の位置とに基づいて算出されることを特徴とする指先位置推定装置
  4. 前記算出手段は、前記第1ベクトルと前記第2ベクトルとの差分を算出することで、前記第3ベクトルを算出することを特徴とする請求項に記載の指先位置推定装置。
  5. 前記基準点は、前記指先の位置に近い第1の基準点と、前記指先の位置に対して該第1の基準点より離れた第2の基準点とを少なくとも有し、
    前記第1ベクトル及び前記第2ベクトルは、前記手指領域が前記オクルージョン領域に含まれる量に基づいて、該第1の基準点または該第2の基準点のいずれかを用いて算出されることを特徴とする請求項に記載の指先位置推定装置。
  6. 手指の指先が物体の背後のオクルージョン領域に到達した場合に、該指先の位置から該物体のオクルージョン領域に含まれる所定形状の面までの距離を、予め算出した前記オクルージョン領域の境界面の位置に基づいて算出する第1の算出手段と、
    前記手指の指先が前記オクルージョン領域に到達した場合に、前記手指の所定の基準点の位置を算出する第2の算出手段と、
    前記手指の指先が前記オクルージョン領域に到達して以降の前記基準点の前記所定形状の面方向への移動量と、算出した前記所定形状の面までの距離とに基づいて、前記所定形状の面に前記手指の指先が触れたか否かを判定するタッチ判定手段と
    を有することを特徴とする操作判定装置。
  7. 測定範囲に含まれる手指までの距離を測定し、距離画像を生成する距離測定装置と、
    前記距離測定装置より取得した距離画像に基づいて、前記手指の指先の位置を推定する指先位置推定装置と、
    を有する指先位置推定システムであって、
    前記指先位置推定装置は、
    取得した距離画像から算出した、手指の長さ及び方向を示す第1ベクトルと、前記手指の指先がオクルージョン領域に含まれる場合の、前記オクルージョン領域に含まれていない手指領域の長さ及び方向を示す第2ベクトルとに基づき、前記オクルージョン領域に含まれる手指領域の長さ及び方向を示す第3ベクトルを算出する算出手段と、
    前記第2ベクトルの前記オクルージョン領域に接している端に前記第3ベクトルを加えて、前記指先の位置を推定する推定手段と、を有し、
    前記第1ベクトルは、前記手指の指先が前記オクルージョン領域に含まれる前の、前記手指の所定の基準点の位置と前記指先の位置とに基づいて算出され、
    前記第2ベクトルは、前記オクルージョン領域に接している位置と、前記基準点の位置とに基づいて算出されることを特徴とする指先位置推定システム。
  8. 取得した距離画像から算出した、手指の長さ及び方向を示す第1ベクトルと、前記手指の指先がオクルージョン領域に含まれる場合の、前記オクルージョン領域に含まれていない手指領域の長さ及び方向を示す第2ベクトルとに基づき、前記オクルージョン領域に含まれる手指領域の長さ及び方向を示す第3ベクトルを算出し、
    前記第2ベクトルの前記オクルージョン領域に接している端に前記第3ベクトルを加えて、前記指先の位置を推定する、
    処理をコンピュータに実行させ
    前記第1ベクトルは、前記手指の指先が前記オクルージョン領域に含まれる前の、前記手指の所定の基準点の位置と前記指先の位置とに基づいて算出され、
    前記第2ベクトルは、前記オクルージョン領域に接している位置と、前記基準点の位置とに基づいて算出される指先位置推定プログラム。
  9. コンピュータが、
    取得した距離画像から算出した、手指の長さ及び方向を示す第1ベクトルと、前記手指の指先がオクルージョン領域に含まれる場合の、前記オクルージョン領域に含まれていない手指領域の長さ及び方向を示す第2ベクトルとに基づき、前記オクルージョン領域に含まれる手指領域の長さ及び方向を示す第3ベクトルを算出し、
    前記第2ベクトルの前記オクルージョン領域に接している端に前記第3ベクトルを加えて、前記指先の位置を推定する、
    処理を実行し、
    前記第1ベクトルは、前記手指の指先が前記オクルージョン領域に含まれる前の、前記手指の所定の基準点の位置と前記指先の位置とに基づいて算出され、
    前記第2ベクトルは、前記オクルージョン領域に接している位置と、前記基準点の位置とに基づいて算出されることを特徴とする指先位置推定方法。
JP2016040278A 2016-03-02 2016-03-02 指先位置推定装置、操作判定装置、指先位置推定システム、指先位置推定プログラム及び指先位置推定方法 Expired - Fee Related JP6575400B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2016040278A JP6575400B2 (ja) 2016-03-02 2016-03-02 指先位置推定装置、操作判定装置、指先位置推定システム、指先位置推定プログラム及び指先位置推定方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016040278A JP6575400B2 (ja) 2016-03-02 2016-03-02 指先位置推定装置、操作判定装置、指先位置推定システム、指先位置推定プログラム及び指先位置推定方法

Publications (2)

Publication Number Publication Date
JP2017157034A JP2017157034A (ja) 2017-09-07
JP6575400B2 true JP6575400B2 (ja) 2019-09-18

Family

ID=59809858

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016040278A Expired - Fee Related JP6575400B2 (ja) 2016-03-02 2016-03-02 指先位置推定装置、操作判定装置、指先位置推定システム、指先位置推定プログラム及び指先位置推定方法

Country Status (1)

Country Link
JP (1) JP6575400B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102340729B1 (ko) 2017-07-31 2021-12-16 엘지디스플레이 주식회사 유기 발광 표시 장치
JP2021064320A (ja) * 2019-10-17 2021-04-22 ソニー株式会社 情報処理装置、情報処理方法、及びプログラム

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012518236A (ja) * 2009-02-17 2012-08-09 オーメック インタラクティブ,リミテッド ジェスチャー認識のための方法及びシステム
US8933884B2 (en) * 2010-01-15 2015-01-13 Microsoft Corporation Tracking groups of users in motion capture system

Also Published As

Publication number Publication date
JP2017157034A (ja) 2017-09-07

Similar Documents

Publication Publication Date Title
KR102197732B1 (ko) 실내공간의 3차원 지도 생성 방법 및 장치
US9135513B2 (en) Image processing apparatus and method for obtaining position and orientation of imaging apparatus
JP6506279B2 (ja) 地図生成システム及び地図生成方法
JP6503906B2 (ja) 画像処理装置、画像処理方法および画像処理プログラム
EP3326156B1 (en) Consistent tessellation via topology-aware surface tracking
US9519973B2 (en) Enabling use of three-dimensional locations of features images
TW201308252A (zh) 深度測量之品質提升
US10629002B2 (en) Measurements and calibration utilizing colorimetric sensors
CN108700946A (zh) 用于并行测距和建图的故障检测和恢复的系统和方法
CN106463001B (zh) 信息重叠图像显示装置
CN105975067A (zh) 应用于虚拟现实产品的按键输入设备及方法
JP2014202540A (ja) 位置算出システム、位置算出プログラム、および、位置算出方法
JP2002024807A (ja) 物体運動追跡手法及び記録媒体
JP6575400B2 (ja) 指先位置推定装置、操作判定装置、指先位置推定システム、指先位置推定プログラム及び指先位置推定方法
US20160062486A1 (en) Mobile device and method of projecting image by using the mobile device
JP6017343B2 (ja) データベース生成装置、カメラ姿勢推定装置、データベース生成方法、カメラ姿勢推定方法、およびプログラム
JP4070618B2 (ja) 物体追跡方法、物体追跡装置、物体追跡方法のプログラム並びにそのプログラムを記録した記録媒体
JP6812755B2 (ja) 情報投影装置、情報投影方法及び情報投影プログラム
JP2019106008A (ja) 推定装置、推定方法、及び推定プログラム
JP5620741B2 (ja) 情報処理装置、情報処理方法、およびプログラム
Sand et al. Incremental reconstruction of planar B-Rep models from multiple point clouds
JP6065433B2 (ja) 投影装置、投影システム、プログラム
JP2011127932A (ja) 三次元形状測定装置、三次元形状測定方法、三次元形状測定プログラム、および記録媒体
JP2015005200A (ja) 情報処理装置、情報処理システム、情報処理方法、プログラムおよび記憶媒体
JP6581348B2 (ja) 情報処理装置、情報処理方法、およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190610

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190618

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190709

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190723

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190805

R150 Certificate of patent or registration of utility model

Ref document number: 6575400

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees