(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-04-04
(45)【発行日】2023-04-12
(54)【発明の名称】非接触入力装置
(51)【国際特許分類】
G06F 3/042 20060101AFI20230405BHJP
G06F 3/0346 20130101ALI20230405BHJP
G06F 3/01 20060101ALI20230405BHJP
【FI】
G06F3/042 481
G06F3/0346 421
G06F3/01 570
(21)【出願番号】P 2021087679
(22)【出願日】2021-05-25
【審査請求日】2021-09-28
(73)【特許権者】
【識別番号】318010443
【氏名又は名称】株式会社エイサムテクノロジー
(74)【代理人】
【識別番号】100135781
【氏名又は名称】西原 広徳
(74)【代理人】
【識別番号】100217227
【氏名又は名称】野呂 亮仁
(72)【発明者】
【氏名】石尾 康史
(72)【発明者】
【氏名】星 初美
(72)【発明者】
【氏名】生田 善久
【審査官】岩橋 龍太郎
(56)【参考文献】
【文献】特開2018-180625(JP,A)
【文献】特開2020-170311(JP,A)
【文献】特開2010-224731(JP,A)
【文献】特開2019-089477(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 3/01
G06F 3/0346
G06F 3/042
(57)【特許請求の範囲】
【請求項1】
光を発光する発光部、および前記発光部から出射された光が検出対象物に照射されることによって生じた反射光を受光して、受光した光の強度に基づくセンサ値を出力する受光部を備える光センサと、
前記受光部から出力された前記センサ値に基づいて、前記光センサの検出可能領域内に設定される操作平面における前記検出対象物の動作を検出する動作検出部
と、
前記操作平面を含み、前記検出可能領域内に設定される操作領域に前記検出対象物が進入する進入方向を判定する方向判定部とを備え、
前記光センサは、前記操作平面の延長面上に位置
し、
前記動作検出部は、前記進入方向に応じた向きで前記検出対象物の動作を検出する
非接触入力装置。
【請求項2】
前記受光部は、第1の方向および前記第1の方向に交差する第2の方向のそれぞれに2つ以上配置される複数の受光素子を有し、
前記動作検出部は、前記複数の受光素子から出力された複数のセンサ値に基づいて前記操作平面における前記検出対象物の動作を検出する
請求項1記載の非接触入力装置。
【請求項3】
前記動作検出部は、前記操作領域を前記検出対象物の進入方向の手前側のブロックと奥側のブロックに分割し、前記手前側のブロックと前記奥側のブロックとの間の前記検出対象物の移動を検出することによって、前記検出対象物の動作を検出する
請求項1または2記載の非接触入力装置。
【請求項4】
単数または複数の前記動作からサインを検出するサイン検出部をさらに備えた
請求項
1または
2記載の非接触入力装置。
【請求項5】
前記サイン検出部は、前記進入方向に応じた向きでサインを検出する
請求項4記載の非接触入力装置。
【発明の詳細な説明】
【技術分野】
【0001】
この発明は、非接触で入力操作を受け付ける非接触入力装置に関する。
【背景技術】
【0002】
従来から、非接触で入力操作を受け付ける非接触入力装置が提供されている。たとえば、発光素子から出射された光が検出対象物に反射した反射光を受光する複数の受光素子を有する光センサを備える非接触入力装置が提案されている(特許文献1参照)。従来の接触入力装置では、操作平面の対面方向に光センサが設けられる。
【0003】
ここで、発光素子から出射された光および受光素子の受光可能領域は放射状に広がるため、操作平面の対面方向に光センサが設けられる場合には、光センサと検出対象物との距離によって操作平面上の位置が変化する。
【0004】
このため、従来の接触入力装置では、光センサと検出対象物との距離によって検出可能領域の大きさが変化してしまうことに加え、動作を判定するための操作平面上の境界の位置も変化してしまい、人の手などの検出対象物の動きからジェスチャ操作を検出するジェスチャセンサとしては正確性の観点で問題がある。また、従来の接触入力装置では、操作者の指だけでなく掌や肘などの面積の大きい部分を検出対象物として認識してしまった場合に、操作位置を適切に検出できないという問題もある。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
この発明は、上述した問題に鑑み、ジェスチャ操作を精度よく検出することができる、非接触入力装置を提供することを目的とする。
【課題を解決するための手段】
【0007】
この発明は、光を発光する発光部、および前記発光部から出射された光が検出対象物に照射されることによって生じた反射光を受光して、受光した光の強度に基づくセンサ値を出力する受光部を備える光センサと、前記受光部から出力された前記センサ値に基づいて、前記光センサの検出可能領域内に設定される操作平面における前記検出対象物の動作を検出する動作検出部と、前記操作平面を含み、前記検出可能領域内に設定される操作領域に前記検出対象物が進入する進入方向を判定する方向判定部とを備え、前記光センサは、前記操作平面の延長面上に位置し、前記動作検出部は、前記進入方向に応じた向きで前記検出対象物の動作を検出する非接触入力装置であることを特徴とする。
【発明の効果】
【0008】
この発明により、ジェスチャ操作を精度よく検出することができる、非接触入力装置を提供することができる。
【図面の簡単な説明】
【0009】
【
図3】基板の幅方向から見た場合の検出可能領域を示す図。
【
図4】受光中心方向から見た場合の検出可能領域を示す図。
【
図5】受光中心方向から見た場合の実施例1の操作領域を示す図。
【
図6】発光部方向から見た場合の実施例1の操作領域を示す図。
【
図7】斜め上方から見た場合の実施例1の操作領域を示す斜視図。
【
図8】基板の長手方向から見た場合の入力動作の一例を示す図。
【
図9】受光中心方向から見た場合の入力動作の一例を示す図。
【
図10】斜め上方から見た場合の入力動作の一例を示す斜視図。
【
図11】実施例1の動作判定用のヒストグラムの一例を示す説明図。
【
図12】実施例1の動作判定処理のフローチャート図。
【
図13】実施例2の非接触入力装置の構成を示すブロック図。
【
図14】実施例2の光センサの構成および操作領域を示す斜視図。
【
図15】実施例3の非接触入力装置の構成を示すブロック図。
【
図16】実施例3のサイン判定用のヒストグラムの一例を示す説明図。
【
図17】実施例3のサイン参照テーブルの一例を示す説明図。
【
図18】実施例3のサイン参照テーブルの他の例を示す説明図。
【
図19】実施例3のサイン判定処理のフローチャート図。
【
図20】実施例4の動作判定ブロックの一例を示す図。
【発明を実施するための形態】
【0010】
以下、本発明の一実施形態を図面と共に説明する。
【実施例1】
【0011】
図1は、非接触入力装置1の構成を示すブロック図である。非接触入力装置1は、電子機器や機械などの操作対象物に操作者の入力動作に応じた操作データを入力する入力装置であって、操作対象物および非接触入力装置1に操作者が触れることなく操作対象物へのジェスチャ操作を受け付けることができる非接触型の入力装置(タッチレスセンサ、タッチレスジェスチャセンサ)である。
【0012】
図1に示すように、非接触入力装置1は、光センサ2と、制御部3と、各種データを記憶する記憶部4とを有する。制御部3は、光センサ2および記憶部4と通信可能に接続されている。なお、図示は省略するが、制御部3は、操作対象物にも接続されており、非接触入力装置1で検出された操作データを操作対象物に適宜送信する。
【0013】
図2は、実施例1の光センサ2の構成を示す図である。
図2に示すように、光センサ2は、発光部21と、受光部22と、基板23とを有する。基板23は、平面視において矩形状をなす平板状の部材であり、発光部21および受光部22は、基板23の一方の面(同一面)に配置される。なお、基板23は、平面視において円形状、正方形状または他の多角形状をなす部材であってもよい。
【0014】
また、発光部21と、受光部22とは、所定の方向に並ぶように配置され、かつ、所定の隙間(距離)を隔てて互いに離間するように配置される。本実施例では、発光部21と、受光部22とは、基板23の長手方向に並ぶように配置される。
【0015】
発光部21は、所定波長の光を発光する光源を有する。発光部21の光源の光軸は、基板23の表面(基板23における発光部21の設置面)に対し略垂直になるように設けられている。なお、発光部21の光源の光軸は、基板23の表面に垂直な方向に対し多少傾いていてもよい。
【0016】
発光部21の光源は、たとえば、波長が700nm~1mmの光、いわゆる赤外光を発光する赤外線LEDである。この場合、発光部21から発光される光は、赤外光(赤外線)となる。なお、発光部21から発光される光は、赤外光に限定される必要は無く、発光部21は、赤外光以外の他の波長の光を発光するものでもよい。
【0017】
また、本実施例では、1つの受光部22に対して1つの発光部21が設けられるようにしたが、1つの受光部22に対して複数の発光部21が設けられてもよい。この場合、複数の発光部21の各々は、受光部22に対する距離が等しくなるように配置される。すなわち、複数の発光部21の各々は、受光部22を中心に同心円状に配置される。また、複数の発光部21の各々は、受光部22に入射する光の光量にムラが出ないように、受光部22の中心を基準に点対称または線対称となる位置に配置される。
【0018】
受光部22は、発光部から出射された光が検出対象物に照射されることによって生じた反射光を受光して、受光した光の強度(明るさ,光量)に基づく電気信号を出力する。具体的には、受光部22は、受光した光の光量に応じたデジタル値(センサ値)を所定の時間間隔で連続して出力する。
【0019】
受光部22は、受光した光の光量を検出する検出器としての受光素子を有する。受光素子は、たとえばフォトセンサであり、本実施例では、受光素子の受光面は、発光部21の発光面と略平行な面である。すなわち、受光素子の受光中心方向(受光面に対して垂直な方向)は、発光部21の光源の光軸と同じ方向(平行)となる。なお、受光素子の受光中心方向は、発光部21の光源の光軸の方向に対して、多少傾いていてもよい。ただし、複数の受光素子の受光中心方向は、すべて互いに平行である。
【0020】
また、受光部22は、3つ以上の受光素子を有する。各受光素子は、基板23の表面上において、第1の方向に2つ以上(複数)配置され、第1の方向に交差する(第1の方向とは異なる)第2の方向に2つ以上並ぶように配置される。すなわち、受光部22では、2方向において複数の受光素子が並ぶように配置される。
【0021】
本実施例では、
図2に示すように、受光部22は、マトリクス状(2×2)に配置される4つの受光素子22A~22Dを有する。本実施例では、第1の方向が基板23の長手方向(発光部21と受光部22とが並ぶ方向)であり、第2の方向が基板23の幅方向である。すなわち、第1の方向と、第2の方向とは直交する方向(直角)である。また、第1の方向および第2の方向のそれぞれの方向に並ぶ受光素子の数は同じである。
【0022】
なお、受光部22に設けられる受光素子の数および配置態様は特に限定される必要は無い。たとえば、複数の受光素子は、三角形をなすように配置されてもよいし、菱形をなすように配置されてもよいし、2×3のようにいずれかの方向の数が多くなるように配置されてもよいし、3×3(9個)以上のマトリクス状に配置されてもよい。
【0023】
図3は、基板23の幅方向から見た場合の検出可能領域DRを示す図である。
図4は、受光中心方向から見た場合の検出可能領域DRを示す図である。
図3および
図4に示すように、発光部21から発光された光は、光軸を中心に、放射状に広がる。本実施例では、発光部21を頂点とし、光軸を母線(中心線)とした略円錐状の発光領域が形成される。また、受光部22が受光可能な領域(受光可能領域)は、受光部22を頂点とし、受光中心方向を中心線とした略円錐状の領域である。受光部22は、発光領域と受光可能領域とが重なる領域に検出対象物が存在する場合に、検出対象物に反射した光を受光することができる。したがって、発光領域と受光可能領域とが重なる略円錐状の領域が、光センサ2において検出対象物の存在を検出可能な最大の領域(検出可能領域)DRとなる。
【0024】
なお、発光部21の放射角度および受光部22が受光可能な角度を大きくすることによって、検出可能領域DRを略半球状または限りなくこれに近い形状の領域とすることもできる。また、光センサ2から発光領域の底面までの距離、すなわち検出可能距離は、発光部21から発光された光の光量(受光部22で反射光を検出可能な程度の光量)によって定まる。このため、発光部21から発光された光の光量を多くする(発光レベルを上げる)ことによって、検出可能領域DRを広く(大きく)することができ、発光部21から発光された光の光量を少なくする(発光レベルを下げる)ことによって、検出可能領域DRを狭く(小さく)することができる。
【0025】
また、光センサ2で検出可能な検出対象物は、発光部21から発光された光を反射するものであれば良く、操作者の手指、腕等の体の一部だけでなく、操作者が持つペン、電子機器、棒等の物体や、操作者が身に着けている衣服または装飾品の一部等も含まれる。
【0026】
図1に戻って、制御部3は、非接触入力装置1の各要素を制御する。具体的には、制御部3は、CPU(中央演算処理装置)を有しており、発光部21の点灯/消灯処理、受光部22から入力されるセンサ値の処理、および操作対象物への操作データの送信処理等を行う。
【0027】
記憶部4は、メイン処理プログラム41、座標変換プログラム42、モード判定プログラム43、動作検出プログラム44、座標データ45、動作検出用データ46、操作データ47が記憶されている。メイン処理プログラム41は、非接触入力装置1の全体的な処理、発光部21の点灯/消灯処理、または操作データを操作対象物に送信する処理等を実行するためのプログラムである。
<座標変換処理>
【0028】
座標変換プログラム42は、受光部22(各受光素子)から所定の時間間隔で連続して入力されるセンサ値を検出可能領域DRにおける座標データに変換するためのプログラムである。受光部22から入力されるセンサ値を座標データに変換する座標変換処理の方法は特に限定されないが、たとえば、4つの受光素子22A~22Dのそれぞれから入力されるセンサ値から座標データを算出(演算)することができる。
【0029】
たとえば、発光部21と受光部22が並ぶ方向(受光素子が並ぶ第1の方向)をX方向とし、受光部22の受光中心方向をZ方向とし、X方向およびZ方向のいずれにも直交する方向(X方向およびZ方向によって規定されるXZ平面に直交する方向、または受光素子が並ぶ第2の方向)をY方向とした場合(
図3および
図4参照)、X座標、Y座標、Z座標のそれぞれは、次の式(数A)、式(数B)、式(数C)によって算出することができる。
〔数A〕
X=((S1+S4)-(S2+S3)/(S1+S2+S3+S4))
〔数B〕
Y=((S1+S2)-(S3+S4)/(S1+S2+S3+S4))
〔数C〕
Z=1-k(S1+S2+S3+S4/Smax)
【0030】
ここで、S1は、第1の受光素子22Aから入力されるセンサ値であり、S2は、第2の受光素子22Bから入力されるセンサ値であり、S3は、第3の受光素子22Cから入力されるセンサ値であり、S4は、第4の受光素子22Dから入力されるセンサ値であり、Smaxは、検出対象物が最もセンサに近づいた場合のセンサ値を合計した値(検出対象物が検出可能領域DRのうち最も光センサ2に近い位置に存在する場合のセンサ値を合計した値)であり、kは、任意の補正係数である。この場合、X座標、Y座標、Z座標のそれぞれは、受光部22を原点(X=0、Y=0、Z=0)とした座標系のデータとなる。また、Z座標は、4つの受光素子22A~22Dのセンサ値の合計値であるため、光センサ2における総出力値(総光量)ということもできる。
【0031】
以上のように、検出可能領域DRにおける検出対象物の座標(位置)を算出することができる。座標変換プログラム42に従って変換されたデータは、時系列に従って座標データ45として記憶部に記憶されている。
【0032】
なお、本実施例では、座標変換処理を座標変換プログラム42に従って制御部3(CPU)が実行するようにしたが、座標変換処理はハードウェア回路により実行されてもよい。この場合、2×2に配置される4つの受光素子の並ぶ向き(第1の方向および第2の方向)をX方向またはY方向に対して45°傾いた状態とし、X方向に並ぶ2つの受光素子のセンサ値の差分をX座標とし、Y方向に並ぶ2つの受光素子のセンサ値の差分をY座標とし、4つの受光素子のセンサ値の合計をZ座標とするような座標変換用の回路を光センサ2と制御部3の間に設ければよい。
<モード判定処理>
【0033】
モード判定プログラム43は、座標変換プログラム42に従って変換された座標データ45が示す検出対象物の位置(座標)の変化から、検出可能領域DRに検出対象物が進入したか、または検出可能領域DRから検出対象物が退出(退去)したかどうかを判定するためのプログラムである。また、モード判定プログラム43は、検出可能領域DRに検出対象物が存在している状態で、検出可能領域DR内に設定された操作領域R(ジェスチャ操作を受け付ける領域)に検出対象物が進入したか、または操作領域R内から検出対象物が退出したかどうかを判定するためのプログラムでもある。
【0034】
検出可能領域DRに検出対象物が進入したか、または検出可能領域DRから検出対象物が退出したかどうかを判定する検出可能領域DRに対する進入/退出判定処理の方法は特に限定されない。たとえば、Z座標(光センサ2における総出力値)に検出可能領域DRに検出対象物が進入したか否かを判定するための閾値を設定しておき、Z座標(光センサ2における総出力値)が閾値未満の状態から閾値以上の状態に変化したとき、検出可能領域DRに検出対象物が進入したと判定し、Z座標が閾値以上の状態から閾値未満の状態に変化したとき、検出可能領域DRから検出対象物が退出したと判定することができる。また、Z座標が閾値以上の状態とは、検出可能領域DR内に検出対象物が存在している状態であるともいえる。
【0035】
さらに、検出可能領域DRに対する進入/退出判定処理では、Z座標のみを用いて判定することができる。したがって、検出可能領域DRからの退出判定後、次の進入を判定するまでの間は、受光部22からのセンサ値に対してZ座標のみ変換し、制御部3の処理負荷を低減することもできる。
【0036】
図5は、受光中心方向(Z方向)から見た場合の実施例1の操作領域Rを示す図である。
図6は基板23の長手方向(X方向)から見た場合の実施例1の操作領域Rを示す図である。
図7は斜め上方から見た場合の実施例1の操作領域Rを示す斜視図である。
【0037】
図5および
図6に示すように、検出可能領域DRには、操作領域RのY方向の境界を規定するための2つの仮想境界面が設定されている。各仮想境界面は、XZ平面に平行な面であるので、仮想境界面のY方向の位置は、Y座標の数値で規定されている。言い換えれば、検出可能領域DRのうち、2つの仮想境界面に挟まれた領域、つまり2つの仮想境界面の間の領域が、操作領域Rとなる。このため、仮想境界面のY方向の位置を規定する数値は、操作領域RのY方向の閾値ということもできる。上述したように、検出可能領域DRの座標系は受光部22を原点としているので、2つの仮想境界面のうちの一方の仮想境界面はプラスのY座標で規定され、他方の仮想境界面はマイナスのY座標で規定される。
【0038】
したがって、
図5~
図7に示すように、操作領域Rは、XZ平面に沿って延び(X方向およびZ方向に延び)、Y方向に所定の厚みを有する板状の領域となる。すなわち、操作領域Rは、Y座標が(Y=0)のXZ平面を中心に、検出可能領域DRの内側においてY方向に厚みを持たせたような形状の領域となる。
【0039】
そして、本実施例の非接触入力装置1では、Y座標がゼロ(Y=0)のXZ平面(操作平面)を基準とした操作領域Rにおけるジェスチャ操作を検出する。すなわち、非接触入力装置1では、操作平面が、操作領域Rの基準面となる。また、光センサ2(発光部21および受光部22)は、操作平面の延長面上に位置することになる。本実施例では、光センサ2は、操作平面を下方に延長した延長面上に位置する。すなわち、操作平面(操作領域R)は、光センサ2の上方に設定される。
【0040】
また、本実施例では、XZ平面を操作平面として説明する。したがって、操作平面と第1の方向は平行であり、かつ、第1の方向は操作平面上の方向であり、受光素子は操作平面の端部または端部近傍から操作平面上へ向かって受光中心線方向が向いている。また、操作平面と第2の方向は直角であり、かつ、第2の方向は操作平面の法線方向である。ただし、受光素子は第1の方向と第2の方向のそれぞれにおいて直交しなくても良い。
【0041】
なお、操作平面は、X方向およびZ方向に延びる平面であれば、XZ平面に対し多少傾いた面であってもよく、Y座標が操作領域RのY方向の閾値の範囲内であれば、Y座標がゼロ(Y=0)のXZ平面からオフセットした面であってもよい。
【0042】
なお、操作領域Rおよびこれに含まれる操作平面は、受光部22の受光中心方向と、受光部22の受光中心方向に直交する方向に延びる領域であるといえる。また、本実施例では、操作領域Rおよび操作平面が延びる2方向のうち、受光部22の受光中心方向に直交する方向は、発光部21と受光部22とが並ぶ方向と同じ方向である。すなわち、発光部21および受光部22の両方が操作平面のX軸上に位置する。
【0043】
以上のように設定された操作領域Rに対して、検出対象物が進入したか、または検出対象物が退出したかどうかを判定する、操作領域Rに対する進入/退出判定処理の方法は特に限定されない。操作領域Rに対する進入/退出判定処理の方法の一例としては、たとえば、座標データ45のY座標が、仮想境界面の外側の座標である状態(検出対象物が操作領域Rの外側に位置する状態)から、仮想境界面の内側の座標である状態(検出対象物が操作領域Rの内側に位置する状態)に変化した場合に、検出対象物が操作領域Rに進入したと判定することができる。また、座標データ45のY座標が、仮想境界面の内側の座標である状態から、仮想境界面の外側の座標である状態に変化した場合に、検出対象物が操作領域Rから退出したと判定することができる。なお、Y座標が仮想境界面の内側の座標である状態とは、操作領域R内に検出対象物が存在している状態であるともいえる。
【0044】
また、操作領域Rに対する進入/退出判定処理では、Y座標およびこれを算出するためのZ座標のみを用いて判定することができる。したがって、操作領域Rからの退出判定後、次の進入を判定するまでの間は、受光部22からのセンサ値に対してY座標およびZ座標のみ変換し(数Bのみ演算し)、判定処理を行うようにし、制御部3の処理負荷を低減することもできる。
【0045】
図8は基板23の長手方向から見た場合の入力動作の一例を示す図である。
図9は受光中心方向から見た場合の入力動作の一例を示す図である。
図10は斜め上方から見た場合の入力動作の一例を示す斜視図である。
【0046】
図8~
図10に示すように、検出対象物が操作領域R内に存在する場合には、操作平面(操作領域R)における動作検出が可能な状態となり、検出対象物が操作領域R外に存在する(検出対象物が操作領域R内に存在しない)場合には、動作検出が不可能な状態となる。本実施例では、操作領域Rに対する進入が判定されたときに、ジェスチャ操作を検出するモード(動作検出モード)が開始され、操作領域Rからの退出が判定されたときに、動作検出モードが終了する。このため、モード判定プログラム43は、動作検出モードを開始/終了するためのプログラムでもある。
<動作検出処理>
【0047】
動作検出プログラム44は、動作検出モードの実行中に、座標データ45が示す検出対象物の位置(座標)の変化、すなわち、受光部22(各受光素子)から入力されるセンサ値の変化から、操作領域R(操作平面)における検出対象物の動作(ジェスチャ操作)を演算により検出するためのプログラムである。
【0048】
座標データ45の変化から操作平面における動作を検出する動作検出処理の方法は特に限定されないが、たとえば、座標データ45のX座標およびZ座標の変化から、操作平面における検出対象物の移動方向を示すベクトル(検出対象のベクトル)を所定の検出サイクル(5~30mm/sec)で区切って連続して検出し、検出対象のベクトルに基づいて、ジェスチャ操作を検出する方法がある。すなわち、所定時間間隔で連続して取得した座標データ45の変化から、ジェスチャ操作を検出する。
【0049】
この場合、予め登録されたジェスチャ操作(登録ジェスチャ)に対応する基準となるベクトル(基準ベクトル)のデータを予め作成しておき、検出対象のベクトルが検出される度に、検出対象のベクトルのデータと基準ベクトルのデータとを照らし合わせて、検出対象のベクトルが基準ベクトルかどうか、すなわち、操作平面における検出対象物の動作が登録ジェスチャかどうかを判定する。
【0050】
図11は、実施例1の動作判定用(ジェスチャ判定用)のヒストグラムの一例を示す説明図である。
図11に示すように、実施例1では、登録ジェスチャとして、操作平面において上下左右の各々に向かう直線的なジェスチャ(上下左右のいずれかの方向に向かって直線を描くようなジェスチャ)V1~V4と、操作平面上の右回転のジェスチャ(時計回りに円を描くようなジェスチャ)V5と、操作平面上の左回転のジェスチャ(反時計回りに円を描くようなジェスチャ)V6とが登録されており、また、登録ジェスチャV1~V6のそれぞれに対応する基準ベクトルが登録されている。なお、基準ベクトルにおける左右の向きについては、Y座標のマイナス側から見た場合の左右に合わせて設定されており、Y座標のプラス側から見た場合には、左右の向きが反転することになる。
【0051】
具体的には、直線的なジェスチャV1~V4については、検出サイクルの前後(開始時点および終了時点)における2つの座標データ45の位置の差分、すなわち、前回(サイクル開始時)の位置P1(x1,z1)と、今回(サイクル終了時)の位置P2(x2,z2)との差分から生成されたベクトルを検出対象のベクトルとして判定する。
【0052】
また、回転動作V5,V6については、2回分の検出サイクルにおける3つの座標データ45の位置の差分、すなわち、前々回(1回目のサイクル開始時)の位置P0(x0,z0)と、前回(1回目のサイクル終了時および2回目のサイクル開始時)の位置P1(x1,z1)と、今回(2回目のサイクル終了時)の位置P2(x2,z2)とから生成される2つのベクトルの外積の正負で判別する。そして、動作検出モードが開始されると、検出サイクルが終了する度に、検出対象のベクトルが登録ジェスチャV1~V6のそれぞれに対応する基準ベクトルかどうかが判定される。
【0053】
また、実施例1のジェスチャ判定用のヒストグラムでは、登録ジェスチャの検出数がカウントされる(
図11における「検出数」の欄)。検出対象のベクトルが登録ジェスチャであると判定された場合、すなわち、登録ジェスチャが検出された場合、検出された登録ジェスチャの検出数が1カウントアップ(1加算)される。
図11は、左から右に向かう直線的なジェスチャV1と、下から上に向かう直線的なジェスチャV4とが、それぞれ1回ずつ検出された状態のヒストグラムを示している。
【0054】
検出対象のベクトルのデータ、基準ベクトルのデータ(登録ジェスチャのデータ)、およびジェスチャ判定用のヒストグラムのデータは、動作検出用データ46として記憶部に記憶されている。
【0055】
そして、動作検出モードが終了した場合、すなわち、操作領域Rからの退出が判定された場合、動作検出モードの実行中に検出されたジェスチャ操作のデータ(操作データ)47が検出数に応じて生成され、操作データ47は、適宜のタイミングで操作対象物に送信される。なお、複数のジェスチャ操作が検出されていた場合、複数のジェスチャ操作のデータを含む1つの操作データ47が生成されるようにしてもよいし、1つのジェスチャ操作毎に対して1つの操作データ47が生成されるようにしてもよい。また、複数のジェスチャ操作のデータを含む1つの操作データ47が生成される場合には、操作データ47は、複数のジェスチャ操作の検出された順番のデータを含むようにしてもよい。
<フローチャート>
【0056】
図12は動作判定処理のフローチャート図である。以下、
図12を参照して動作判定処理を説明する。動作判定処理は、検出可能領域DRに検出対象物が進入したとき、すなわち、Z座標(光センサ2における総出力値)が閾値未満の状態から閾値以上の状態に変化したときに開始される。
【0057】
動作判定処理が開始されると、操作領域Rに対する進入判定を行う(ステップS1)。ステップS1で検出対象物が操作領域Rに進入したと判定されなければ(ステップS1:NO)、同じステップS1に戻る。すなわち、検出対象物が操作領域Rに進入したと判定されるまで待機する。
【0058】
一方、ステップS1で検出対象物が操作領域Rに進入したと判定されれば(ステップS1:YES)、動作検出モードを開始し、検出対象のベクトルを検出し(ステップS2)、ステップS2で検出された検出対象のベクトルが基準ベクトルかどうかを判定する(ステップS3)。
【0059】
ステップS3で検出対象のベクトルが基準ベクトルでないと判定されれば(ステップS3:NO)、後述するステップS5に進む。一方、ステップS3で検出対象のベクトルが基準ベクトルであると判定されれば(ステップS3:YES)、基準ベクトルに対応する登録ジェスチャ(動作)の検出数を1カウントアップして(ステップS4)、操作領域Rからの退出判定を行う(ステップS5)。
【0060】
ステップS5で検出対象物が操作領域Rから退出したと判定されなければ(ステップS5:NO)、すなわち、検出対象物が操作領域Rに留まっている場合には、ステップS2に戻り、ステップS2~ステップS4の処理を検出サイクル毎に繰り返し行う。
【0061】
一方、ステップS5で検出対象物が操作領域Rから退出したと判定されると(ステップS5:YES)、動作検出モードを終了し、登録ジェスチャ(動作)が検出されていたかどうかを判定する(ステップS6)。
【0062】
ステップS6で登録ジェスチャが検出されていないと判定されれば(ステップS6:NO)、後述するステップS8に進む。一方、ステップS6で登録ジェスチャが検出されていたと判定されれば(ステップS6:YES)、検出された登録ジェスチャに対応する操作データを生成し(ステップS7)、ジェスチャ判定用のヒストグラムのデータを初期化し(ステップS8)、動作判定処理を終了するかどうか、すなわち、検出可能領域DRから検出対象物が退出したかどうかを判定する(ステップS9)。
【0063】
ステップS9で検出可能領域DRから検出対象物が退出したと判定されなければ(ステップS9:NO)、すなわち、検出対象物が検出可能領域DR内に留まっているには、ステップS1に戻る。一方、ステップS9で検出可能領域DRから検出対象物が退出したと判定されれば(ステップS9:YES)、動作判定処理を終了する。
【0064】
以上のように、本発明では、光センサ2が操作平面の延長面上に位置し、操作平面における検出対象物の動作を検出するので、光センサ2と検出対象物との距離(Z方向の距離)に関係なく、検出対象物の動作(ジェスチャ操作)を精度よく検出することができる。また、操作平面における検出対象物の動作を検出するので、検出対象物の大きさに関係なく、検出対象物の動作を精度よく検出することができる。
【0065】
さらに、受光部22が第1の方向および前記第1の方向に交差する第2の方向のそれぞれに2つ以上並ぶように配置される複数の受光素子22A~22Dを有し、複数の受光素子22A~22Dから出力された複数のセンサ値に基づいて操作平面における検出対象物の3次元位置(X座標、Y座標、Z座標)を検出するので、検出対象物の動作を精度よく検出することができる。
【0066】
さらにまた、受光部22から入力されるセンサ値を整数演算処理により座標データに変換し、変換した座標データの変化(差分)から操作平面における検出対象物の動作を検出するので、複雑な演算をする必要が無く、制御部3の処理負荷を低減することができ、製造コストの低減、高速処理化、または応答速度の向上を図ることができる。
【0067】
なお、上述の構成に加えて、操作平面または操作領域Rを視覚的に認識できるようにする構成を付加してもよい。たとえば、映像を空中に表示させる空中結像部を設け、操作平面または操作領域Rに対応する映像を表示させるようにしてもよい。また、操作平面または操作領域Rの端部の位置に指標となる指標物を配置してもよい。
【0068】
さらに、ジェスチャの判定は、座標に限らず、各受光素子で取得する明度等のセンサ値の所定時間間隔で連続するデータ列の変化から判定する構成としてもよい。この場合は、人工知能(AI)を用いて、様々なジェスチャの学習データを人工知能(AI)に学習させておき、この人工知能(AI)によって取得したセンサ値のデータ列がどのジェスチャに該当するか判定する構成としてもよい。
【0069】
さらにまた、上述の実施例では、発光部21および受光部22の両方が操作平面のX軸上に位置するようにしたが、発光部21および受光部22は、Y方向に並ぶように配置されてもよいし、X方向およびY方向以外の任意の方向に並ぶように配置されてもよい。ただし、これらの場合には、受光部22は、X軸上に配置されていることが好ましい。
【実施例2】
【0070】
図13は実施例2の非接触入力装置1の構成を示すブロック図である。
図14は実施例2の光センサ2の構成および操作領域Rを示す斜視図である。
図13および
図14に示すように、実施例2では、非接触入力装置1が複数の光センサ2を有する点が実施例1と異なる。
【0071】
具体的には、非接触入力装置1は、3つの光センサ2A~2Cを有する。3つの光センサ2A~2Cのそれぞれは、制御部3と通信可能に接続されている。なお、3つの光センサ2A~2Cのそれぞれの構成は、実施例1の光センサ2と同じであるので、詳しい説明を省略する。
【0072】
3つの光センサ2A~2Cは、操作平面が延びる2方向のうち、受光部22の受光中心方向に直交する方向(本実施例ではX方向)に等間隔で並ぶように配置される。すなわち、3つの光センサ2A~2Cは、各光センサ2A~2Cに設定される操作領域Rおよび操作平面がX方向に一直線に並ぶように配置される。また、3つの光センサ2A~2Cの受光中心方向は、すべて互いに平行である。さらに、3つの光センサ2A~2Cが並んで配置される方向は操作平面と平行であって第1の方向であり、すくなくとも受光部22(受光素子)は、操作平面に平行に一列に配置されている。なお、受光部22(受光素子)だけではなく発光部21も操作平面に平行に一列に配置されていることが好ましい。すなわち、光センサ2そのものが操作平面に平行に一列に配置されていることが好ましい。
【0073】
また、隣り合う光センサ2の間の距離(X方向の離間距離)は、Y方向から見た場合に互いの操作領域Rおよび操作平面が重なる程度の距離に設定されている。したがって、
図14に示すように、各光センサ2A~2Cに設定される操作領域Rおよび操作平面が結合されるような状態となる。ここで、各光センサ2A~2Cが並ぶ方向(本実施例ではX方向)の長さは、光センサ2の個数に応じて長くなるので、各光センサ2A~2Cが並ぶ方向のことをL方向(長手方向)ということもできる。
【0074】
また、
図13に示すように、実施例2では、光センサ2が複数設けられていることに伴い、記憶部4には、実施例1の内容に加え、複数の光センサ2の受光部22(各受光素子)から入力されるセンサ値を合成するための合成プログラム48が記憶されている。複数の光センサ2から入力されるセンサ値を合成する合成処理の方法は特に限定されないが、たとえば、次の式(数D)によって計算することができる。
〔数D〕
L=1/2D+D×(Nmax-1)+k×Xmax
【0075】
ここで、Dは、光センサ2の間の距離(mm)であり、Nmaxは複数の光センサ2のうち、Y座標の値が最大となる光センサ2のセンサ番号(L方向端部の光センサ2を1番目とし、L方向に並ぶ順に順序を付した場合の番号)であり、kは、任意の補正係数である。
【0076】
動作検出処理の内容、その他の構成および動作については、X座標をL座用に置き換えて処理する以外は実施例1と同一であるため、その詳細な説明を省略する。また、同一要素に同一符号を付している。この実施例2においても、実施例1と同一の作用効果を奏することができる。
【0077】
また、実施例2では、水平方向(X方向)に操作領域を拡張(拡大)することができるので、より広い範囲でジェスチャ操作を受け付けることができるだけでなく、ストロークの大きいジェスチャ操作の検出も可能になるなど、検出可能なジェスチャ操作の種類を増やすこともできる。
【0078】
なお、上述の実施例では、各光センサ2の発光部21および受光部22が操作平面のX軸上に位置するようにしたが、各光センサ2の発光部21および受光部22は、Y方向に並ぶように配置されてもよいし、X方向およびY方向以外の任意の方向に並ぶように配置されてもよい。ただし、これらの場合には、受光部22は、X軸上に配置されていることが好ましい。
【実施例3】
【0079】
図15は実施例3の非接触入力装置1の構成を示すブロック図である。実施例3の非接触入力装置1では、単数または複数の動作からサインを検出することができる点が実施例1と異なる。なお、サインとは、複数のジェスチャ操作(動作)で描画(構成)される数字、記号、図形、パターン(模様)等のことである。
図15に示すように、実施例3では、サインを検出するための構成として、記憶部4には、実施例1の内容に加え、方向判定プログラム49、サイン検出プログラム50,サイン参照テーブル51が記憶されている。
<方向判定処理>
【0080】
方向判定プログラム49は、座標データ45が示す検出対象物の位置(座標)の変化から、操作領域Rに検出対象物が進入した方向(Y方向の向き)、すなわち、操作領域Rに検出対象物がY座標のプラス側から進入したか、Y座標のマイナス側から進入したかを判定するためのプログラムである。操作領域Rへの検出対象物の進入方向を判定する方向判定処理の方法は特に限定されないが、たとえば、実施例1で説明した操作領域Rに対する進入/退出判定処理において検出対象物が操作領域Rに進入したと判定されたときのY座標の正負で判定することができる。この方向判定処理で判定された操作領域Rへの検出対象物の進入方向を、操作者の向きとし、動作検出処理およびサイン検出処理におけるベクトルの左右の向きが、操作者から見た場合の左右に合わせて設定される。
<サイン検出処理>
【0081】
サイン検出プログラム50は、動作検出モードの実行中に、座標データ45が示す検出対象物の位置の変化から検出される単数または複数の操作平面上の動作から演算によりサインを検出するためのプログラムである。操作平面上の動作からサインを検出する方法は特に限定されないが、たとえば、検出サイクル毎に検出される操作平面上の単数または複数の動作の組み合わせが、予め登録されたサイン(登録サイン)に対応する場合に、入力されたサインとして検出する方法がある。
【0082】
たとえば、登録サインを構成する動作(登録ジェスチャ)の組み合わせのデータを予め参照しておき、動作検出モードの実行中に検出された動作毎のヒストグラム(サイン判定用のヒストグラム)を用いて入力されたサインとして検出するかどうかを判定する。
【0083】
図16は実施例3のサイン判定用のヒストグラムの一例を示す説明図である。
図16に示すように、実施例3のサイン判定用のヒストグラムでは、登録ジェスチャとして、操作平面において上下左右の各々に向かう直線的なジェスチャV1~V4と、V1~V4の向きを45°傾けた直線的なジェスチャV5~V8と、操作平面上の右回転のジェスチャV9と、操作平面上の左回転のジェスチャV10とが設定されており、また、登録ジェスチャV1~V10のそれぞれに対応する基準ベクトルが設定されている。基準ベクトルにおける左右の向きは、方向判定処理で判定された進入方向から見た場合の左右に合わせて設定されている。
【0084】
実施例3のサイン判定用のヒストグラムでは、登録ジェスチャの各々の検出数がカウントされる(
図16における「検出数」の欄)。実施例1で説明したように、登録ジェスチャが検出された場合、その登録ジェスチャの検出数が1カウントアップされる。
【0085】
図17は実施例3のサイン参照テーブルの一例を示す説明図である。
図18は実施例3のサイン参照テーブルの他の例を示す説明図である。
図17および
図18に示すサイン参照テーブルは、登録サインを構成する登録ジェスチャの組み合わせを示すテーブルである。
【0086】
図17に示すサイン参照テーブルは、サインの描画に必要な各登録ジェスチャの検出数で表現したものである。
図17に示すように、たとえば、数字の「0」は、4サイクル分の左回転のジェスチャV10で構成される。また、数字の「2」は、2サイクル分の左から右への直線的なジェスチャV1と、1サイクル分の右上から左下への直線的なジェスチャV7と、3サイクル分の右回転のジェスチャV9とで構成される。さらに、図形「□」は、2サイクル分のジェスチャV1~V4で構成される。
【0087】
図18に示すサイン参照テーブルは、サインを描画する場合の線長における各登録ジェスチャの割合で表現したものである。
図18に示すように、たとえば、数字の「0」は、左回転のジェスチャのみ(100%)で構成される。また、数字の「2」は、33%のジェスチャV1と、17%のジェスチャV7と、50%のジェスチャV9とで構成される。さらに、図形「□」は、それぞれ25%のジェスチャV1~V4で構成される。
【0088】
そして、動作検出モードが終了した場合、サイン判定用のヒストグラムと、サイン参照テーブルとを比較して、差異が所定の閾値以下であるか、あるいは一致度が所定の閾値以上のサインが存在する場合に、一連の動作を入力されたサインとして検出する。サイン判定用のヒストグラムと、サイン参照テーブルとを比較する際には、サインの描画に必要な各登録ジェスチャの検出数で比較してもよいし、サインを描画する場合の線長における各登録ジェスチャの割合で比較してもよい。また、一致度が所定の閾値以上のサインが複数存在する場合には、一致度が最も高いサインを入力されたサインとする。登録サインが検出されると、その登録サインに対応する操作データ47が生成される。
<フローチャート>
【0089】
図19はサイン判定処理のフローチャート図である。以下、
図19を参照してサイン判定処理を説明する。サイン判定処理は、検出可能領域DRに検出対象物が進入したときに開始される。なお、ステップS11~S15までの処理は、ジェスチャ判定用のヒストグラムに代えてサイン判定用のヒストグラムを使用すること以外は、実施例1のステップS1~S5と同じ処理であるため、詳細な説明を省略する。
【0090】
サイン判定処理が開始され、ステップS15で検出対象物が操作領域Rから退出したと判定されると(ステップS15:YES)、動作検出モードを終了し、サイン参照テーブルを読み出し(ステップS16)、サイン判定用のヒストグラムと、サイン参照テーブルとを比較して、登録サインが検出されていたかどうかを判定する(ステップS17)。
【0091】
ステップS17で登録サインが検出されていないと判定されれば(ステップS17:NO)、後述するステップS19に進む。一方、ステップS17で登録サインが検出されていたと判定されれば(ステップS17:YES)、検出された登録サインに対応する操作データを生成し(ステップS18)、サイン判定用のヒストグラムのデータを初期化し(ステップS19)、動作判定処理を終了するかどうか、すなわち、検出可能領域DRから検出対象物が退出したかどうかを判定する(ステップS20)。
【0092】
ステップS20で検出可能領域DRから検出対象物が退出したと判定されなければ(ステップS20:NO)、すなわち、検出対象物が検出可能領域DR内に留まっていると判定された場合には、ステップS11に戻る。一方、ステップS20で検出可能領域DRから検出対象物が退出したと判定されれば(ステップS20:YES)、サイン判定処理を終了する。
【0093】
その他の構成および動作については実施例1と同一であるため、その詳細な説明を省略する。また、同一要素に同一符号を付している。この実施例3においても、実施例1と同一の作用効果を奏することができる。
【0094】
また、実施例3では、個別の登録ジェスチャよりも複雑なサインを検出することができるので、操作データの自由度が高まり、操作対象物を操作する際の利便性が向上する。
【0095】
さらに、実施例3では、操作領域に検出対象物が進入する進入方向を検出し、進入方向に応じた向きでサインを検出するので、操作者から見た左右方向と、ベクトル検出の左右方向とを一致させ、サインを適切かつ正確に検出することができる。
【実施例4】
【0096】
実施例4の非接触入力装置1では、ベクトルによる動作検出方法に代えて、操作領域R(操作平面)を複数のブロックに分割し、ブロック間の移動を検出することによって、動作検出を行うようにした点が実施例1と異なる。
【0097】
図20は実施例4の動作判定ブロックの一例を示す図である。
図20に示すように、実施例4では、操作領域R(操作平面)を複数のブロックに分割している。
図20に示す例では、操作領域R(操作平面)のうち、下側のエリアをAブロックとし、左右の一方側(
図20では紙面に向かって左側)のエリアをBブロックとし、左右の他方側(
図20では紙面に向かって右側)のエリアをCブロックとし、上側のエリアをDブロックとし、Aブロック~Dブロックに囲まれる中央のエリアをEブロックとしている。また、操作領域R(操作平面)の外側のエリアをFブロックとしている。
【0098】
このようにすれば、座標データ45が示す検出対象物の位置(座標)がどのブロックに位置するかを時系列に従って検出し、検出対象物が操作領域R(操作平面)に進入してから退出するまでにどのブロックを通過したか、すなわち、操作平面における検出対象物の移動経路を検出することができる。この検出対象物の移動経路から、動作を検出することができる。たとえば、検出対象物の位置が、Bブロック、Eブロック、Cブロックの順に通過する場合、左から右に向かう直線的なジェスチャ操作と判定することができる。また、検出対象物の位置が、Aブロック、Bブロック、Dブロック、Cブロックの順に通過する場合、右回りの回転動作と判定することができる。
【0099】
また、実施例4では、2つのブロックの間を移動する動作をフリック、スワイプ(パン)、ドラッグのいずれかと判定してもよい。フリック、スワイプ(パン)、ドラッグを区別して判定する場合には、ブロックの間を移動する速度(加速度)や、Y座標の位置などによって区別して判定することができる。また、Z方向に並ぶ2つのブロックの間を移動する動作(たとえばEブロックからAブロックに移動する動作)を項目の選択などに用いるタッチ(タップ)と判定してもよい。さらに、Z方向に並ぶ2つのブロックの間を連続的に2回移動する動作が検出された場合には、ダブルタッチ(ダブルタップ)と判定してもよい。さらにまた、所定期間以上同じブロックに留まっている場合には、ロングタッチ(ロングタップ)と判定してもよい。また、2つのブロックの間を2回以上往復する動作をシェイク操作と判定してもよい。
【0100】
その他の構成および動作については実施例1と同一であるため、その詳細な説明を省略する。また、同一要素に同一符号を付している。この実施例3においても、実施例1と同一の作用効果を奏することができる。また、実施例4によれば、直線的な動作や回転動作だけでなく、より多様な動作を検出することもできる。
【0101】
なお、実施例4において、操作領域を検出対象物の進入方向(Y方向)の手前側と奥側とで分割し、手前側のブロックと奥側のブロックとの間の移動を検出することによって、Y方向の動作検出を行うようにしてもよい。このようにすれば、検出対象物の進入方向におけるタッチ操作(ボタン等を押す操作)を検出することができる。
この発明と実施例(実施形態)について、
【0102】
この発明の光センサは各実施例の光センサ2に対応し、以下同様に、発光部は発光部21に対応し、受光部は受光部22に対応し、動作検出部は動作検出プログラム44およびこれに従って動作する制御部3に対応し、複数の受光素子は受光素子22A~22Dに対応し、合成部は合成プログラム48およびこれに従って動作する制御部3に対応し、サイン検出部はサイン検出プログラム50およびこれに従って動作する制御部3に対応し、方向判定部は方向判定プログラム49およびこれに従って動作する制御部3に対応するが、この発明は本実施形態に限られず他の様々な実施形態とすることができる。また、上述の実施形態で挙げた具体的な構成等は一例であり、実際の製品に応じて適宜変更することが可能である。
【0103】
たとえば、上述したXZ平面の操作平面を第1の操作平面とし、第1の操作平面を基準とした操作領域Rを第1の操作領域とし、これに加えて、YZ平面の操作平面(第2の操作平面)を基準とした第2の操作領域を設定してもよい。このようにすれば、X方向およびY方向のいずれからでも動作を検出することができる。すなわち、4方向からのジェスチャ操作が可能になる。
【0104】
本発明の非接触入力装置1は、たとえば、エレベータの操作盤(操作パネル)に適用することができる。この場合、操作平面がエレベータの操作パネルの表面から所定距離離間した平行面になるように設定される。そして、操作平面における上下方向のジェスチャ操作に応じて行先の階数を設定したり、サイン(数字)を入力して行先の階数を設定したりすることができる。このようにすれば、エレベータの操作パネルに触れることなく、エレベータを操作することができる。
【0105】
また、本発明は、非接触入力装置として提供するだけでなく、非接触入力装置を用いて、上述のような操作平面における検出対象物の動作を検出するための、方法、プログラム、およびプログラムを記憶した記憶媒体としても提供することができる。
【産業上の利用可能性】
【0106】
この発明は、非接触で入力操作を受け付けて電子機器などの操作対象物を操作するような産業に利用することができる。
【符号の説明】
【0107】
1…非接触入力装置
2…光センサ
21…発光部
22…受光部
22A~22D…受光素子
3…制御部
4…記憶部