(57)【要約】【課題】センサー設置の自由度が向上し、かつ高精度に座標を検出可能な座標入力装置を提供する。【解決手段】周囲に反射部が部分的に設置された入力領域において指示された位置の座標を検出する座標入力装置は、反射部に対して発光する発光部と、前記反射部により反射された光を受光して複数の光量分布を得る受光部を有するセンサユニットとを有する。座標入力装置は、受光部によって得られる複数の光量分布のうち、一つの光量分布を選択し、選択された光量分布の変化に基づいて、指示された位置の座標を検出する。【選択図】  図８
2015170294.tif 000002
【特許請求の範囲】
【請求項１】
周囲に反射部が部分的に設置された入力領域において指示された位置の座標を検出する座標入力装置であって、
前記反射部に対して発光する発光部と、前記反射部により反射された光を受光して複数の光量分布を得る受光部を有するセンサユニットと、
前記受光部によって得られる前記複数の光量分布のうち、一つの光量分布を選択する選択手段と、
前記選択手段により選択された光量分布の変化に基づいて、前記指示された位置の座標を検出する検出手段と、を有することを特徴とする座標入力装置。
【請求項２】
前記受光部は、前記入力領域の面に対して垂直の方向に並ぶ複数の集光レンズを有し、該集光レンズのそれぞれによって前記複数の光量分布を得ることを特徴とする請求項１に記載の座標入力装置。
【請求項３】
前記光量分布は、前記受光部により受光された光が前記集光レンズを介して結像された光量の分布であることを特徴とする請求項２に記載の座標入力装置。
【請求項４】
前記複数の集光レンズは、前記入力領域の面に対して水平方向の大きさが異なることを特徴とする請求項２または３に記載の座標入力装置。
【請求項５】
前記複数の集光レンズは、前記入力領域に対して水平方向の大きさが同じであることを特徴とする請求項２または３に記載の座標入力装置。
【請求項６】
前記複数の集光レンズは、被写界深度がそれぞれ異なるレンズであることを特徴とする請求項４または５に記載の座標入力装置。
【請求項７】
前記複数の集光レンズのうち、前記入力領域に対してより遠い位置にある集光レンズは、より遠い距離においてピントが合うように焦点距離が設定されていることを特徴とする請求項６に記載の座標入力装置。
【請求項８】
複数の前記センサユニット間の距離を計測する計測手段を更に有し、
前記選択手段は、前記計測手段により計測された距離に近い焦点距離の集光レンズを介して得られた光量分布を選択することを特徴とする請求項７に記載の座標入力装置。
【請求項９】
前記検出手段は、前記選択手段によって選択された光量分布に対応する画素領域において、隣り合う画素の光量レベルを加算して得られた光量分布の変化に基づいて、前記指示された位置の座標を検出することを特徴とする請求項７に記載の座標入力装置。
【請求項１０】
前記複数の集光レンズそれぞれの絞りを変えるために、前記複数の集光レンズに対して絞りが配置されることを特徴とする請求項２乃至８のいずれか１項に記載の座標入力装置。
【請求項１１】
周囲に反射部が部分的に設置された入力領域において指示された位置の座標を検出する座標入力装置の制御方法であって、
前記座標入力装置は、
前記反射部に対して発光する発光部と、前記反射部により反射された光を受光して複数の光量分布を得る受光部を有するセンサユニットと、を有し、
前記制御方法は、
前記受光部によって得られる前記複数の光量分布のうち、一つの光量分布を選択する選択工程と、
前記選択工程において選択された光量分布の変化に基づいて、前記指示された位置の座標を検出する検出工程と、を有することを特徴とする座標入力装置の制御方法。
【請求項１２】
請求項１乃至請求項１０のいずれか１項に記載の座標入力装置としてコンピュータを機能させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、入力領域の指示位置を検出する座標入力装置、その制御方法、およびプログラムに関する。
【背景技術】
【０００２】
座標入力面に、指示具（例えば、専用入力ペン、指など）によって指示して座標を入力することで、接続されたコンピュータの制御をしたり、文字や図形などを書き込むために用いられる座標入力装置が存在する。従来より、この種の座標入力装置としては、タッチパネルとして、各種方式のものが提案、または製品化されている。この種の座標入力装置は、特殊な器具などを用いずに画面上でパーソナルコンピュータ等の端末の操作が簡単にできるため、広く用いられている。
【０００３】
座標入力方式には、抵抗膜を用いたもの、また、超音波を用いたものなど、さまざまなものがある。光を用いた座標入力方式として、例えば、特許文献１に開示されるものがある。特許文献１に開示される構成では、座標入力領域の外側に再帰性反射シートが設けられ、座標入力領域の角端部に配置された、光を照明する照明部と光を受光する受光部が、座標入力領域内において光を遮蔽する遮蔽物（指など）と受光部間の角度を検出する。そして、その検出結果に基づいて、その遮蔽物の指示位置が決定される。
【０００４】
また、特許文献２や特許文献３には、再帰反射部材を座標入力領域周辺に構成し、再帰反射光が遮光される部分（遮光部分）の座標を検出する座標入力装置が開示されている。特許文献２の座標入力装置は、微分等の波形処理演算によって、受光部が受光する光のうち、遮蔽物による遮光部分のピークを検出する。これにより、特許文献２の座標入力装置は、受光部に対する遮光部分の角度を検出し、その検出結果からその遮蔽物の座標を算出している。また、特許文献３の座標入力装置は、特定のレベルパターンとの比較によって遮光部位の一方の端と他方の端を検出し、それらの座標の中心を検出する。
【０００５】
ここで、特許文献１乃至３のような、遮蔽物の位置（遮光位置）を検出して遮蔽物の座標を算出する方式を、以下、遮光方式と称する。上述した遮光方式の座標入力装置に用いられる受光部のセンサは、通常、リニアイメージセンサで撮像するよう構成されている。これは、遮蔽物の検出においては、座標入力領域面からの高さ方向の情報は通常不要であり、座標入力領域面に対して水平方向における遮光位置を検出できればよいからである。しかしながら、リニアイメージセンサは、微小な寸法の１ラインで構成されるセンサであるため、この１ラインによる撮像部の視野を座標入力領域面に平行で、かつ座標入力領域面に対して、より近い位置に合わせるということが非常に難しい。すなわち、遮光方式の座標入力装置においては、装置を構成する照明部、再帰反射部材、受光部との各々の位置合わせが非常に難しい。
【０００６】
そこで、受光部に複数のラインで構成されるエリアイメージセンサを用いて、撮像する範囲を拡げ、受光部の位置調整を不要にした座標入力装置の構成が開示されている。例えば、特許文献４では、撮像部のエリアイメージセンサで撮影する視野のうち、検出面に近い位置で屈折した部分を含む特定の視野を画定する基準となる、少なくとも３個以上のマーカ手段を有する構成が示されている。さらには、特許文献４では、画素配列上に屈折した部分を有して並ぶ特定画素をエリアイメージセンサの画素から選択する選択手段を備える構成が示されている。
【０００７】
また、特許文献５では、画素配列上に直線状に並ぶ画素、斜めに並ぶ画素、又は屈折した部分を有して並ぶ画素の何れかの特定画素を感光素子から選択する選択手段を有する構成が示されている。さらには、特許文献５では、検出面上に指示体が検出されない場合に、自動的に所定の間隔で、マーカ手段の位置の変動を検出して、選択手段が特定画素を選択し直す追従手段とを備える構成が示されている。
【０００８】
ところで、上述した座標入力装置を利用したシステムとして、フロントプロジェクタ等により、座標入力装置の入力面であるスクリーン機能を有するホワイトボード等に投影し、その投影画像に対して、直接的に入力が可能な構成とする場合が考えられる。このようなシステムは、比較的安価に画面を大型化することができるため、複数人で使用するカンファレンスや、ネットワークに接続されたビデオカメラなどを用いた複数人で行う遠隔会議などの用途に利用されている。ただし、このような用途において、現状においてユーザーの要求が満たされているわけではない。例えば、遠隔地にある会議室の人物映像があたかも同一空間の会議室に存在するかのような仮想会議室の臨場感をさらに高めたい、表示できる情報量を増やしたいといったような要求があることから、さらなる大画面化が望まれている。
【０００９】
また、上述した遮光方式の座標入力装置においては、座標入力領域を制限無く大きくできるわけではなく、受光部では、座標入力領域内の遮蔽物の指示位置を算出できる程度の光量分布を得る必要がある。光量は、光を照明する部分の発光強度、再帰反射部材の再帰反射効率、受光部の受光感度などにより決定される。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】米国特許第４５０７５５７号明細書
【特許文献２】特開２０００−１０５６７１号公報
【特許文献３】特開２００１−１４２６４２号公報
【特許文献４】特許第３８９８７０６号公報
【特許文献５】特許第４２２９９６４号公報
【発明の概要】
【発明が解決しようとする課題】
【００１１】
これまで説明した座標入力装置を利用したシステムとして、座標入力装置をホワイトボードなどに取り付け／取り外しが可能な着脱式の構成とするシステムが考えられる。このように着脱式の装置構成においては、ユーザーがシステムを使用したいときに、システムを使用したい場所に持ち込んで、ホワイトボード等に装置を取り付けて使用できる。しかしながら、このとき、取り付け方は、ユーザーにより様々で、工場で組み立てたように、装置を構成するセンサなどの構成部品が精度良く取り付けられるとは限らない。
【００１２】
ところで、座標入力装置を着脱式の装置構成とするために、２つの検出ユニットを再帰反射部材の両端に各々構成して、バー状のユニットを入力領域の上下または左右に取り付けた構成とすることが考えられる。このような構成とすることによって、ユーザーが座標入力領域を任意の大きさに設定することが可能となる。これは、システムとして、着脱式の可搬性という利点以外にも、フロントプロジェクタの投影画像の大きさがユーザーによって多様であることに対応できるという優れた点である。
【００１３】
従来装置では、検出ユニットの設置状態に対しては、その設置誤差による検出ユニットのセンサへの結像領域のズレを特定領域の画素を選択することによって吸収している。しかしながら、検出ユニットと再帰反射板との距離が可変である場合については、変動する画角（検出範囲）、焦点（ピント）、光量（光量分布）のいずれに対しても考慮されていない。
【００１４】
この問題点を、まず、画角（検出範囲）について説明する。検出ユニットと再帰反射板との距離が長くなると、検出ユニットで得られる角度範囲は小さくなり、反対に、距離が短くなると角度範囲は大きくなる。このように、画角については、検出ユニットと再帰反射板との距離が変わると、センサに結像する光の検出範囲が変化する。したがって、検出範囲（有効入力領域を示す）の範囲の分解能が、センサの結像有効範囲に対して、最適化されている構成とはならない。
【００１５】
次に、焦点（ピント）について説明する。検出ユニットの光学系部品（レンズ）で焦点が合う範囲（被写界深度）には限界があるので、被写界深度から外れた範囲では、遮蔽物の遮光位置の算出精度が劣化するという問題がある。
【００１６】
次に、光量（光量分布）について説明する。検出ユニットと再帰反射板との距離が長くなると検出ユニットで得られる光量は小さくなり、反対に、距離が短くなると光量は大きくなり、その変化は距離の変動量に対して非常に大きい。したがって、非常に大きなダイナミックレンジを有するセンサが必要となるが、大きなダイナミックレンジのセンサは高価であるし、発光側や露光時間で制御する場合であっても、処理が複雑となってしまう。また、そもそも光量の変動の大きさを吸収しきれないことが想定される。
【００１７】
本発明は、上記の課題を解決するためになされたものであり、センサユニットと再帰反射板との距離が変更になっても、センサユニットの設置調整が不要で、高精度な性能が保持できる座標入力装置を提供することを目的とする。
【課題を解決するための手段】
【００１８】
上記の目的を達成するための本発明による座標入力装置は以下の構成を備える。すなわち、周囲に反射部が部分的に設置された入力領域において指示された位置の座標を検出する座標入力装置であって、前記反射部に対して発光する発光部と、前記反射部により反射された光を受光して複数の光量分布を得る受光部を有するセンサユニットと、前記受光部によって得られる前記複数の光量分布のうち、一つの光量分布を選択する選択手段と、前記選択手段により選択された光量分布の変化に基づいて、前記指示された位置の座標を検出する検出手段と、を有することを特徴とする。
【発明の効果】
【００１９】
本発明によれば、センサー設置の自由度が向上し、かつ高精度に座標を検出可能な座標入力装置を提供することができる。着脱式の座標入力装置であっても、高精度に座標を検出することが可能になる。
【図面の簡単な説明】
【００２０】
【図１】第１実施形態による座標入力装置の構成を説明する図。
【図２】センサユニットの構成を説明する図。
【図３】（ａ）制御・演算ユニットのブロック図、（ｂ）発光のタイミングチャート。
【図４】光量分布を説明する図。
【図５】座標算出可能領域を説明する図。
【図６】座標算出を説明する図。
【図７】座標算出のための制御のフローチャート。
【図８】第１実施形態によるセンサユニットのデータ選択を説明する図。
【図９】第１実施形態によるセンサユニットのデータ選択制御のフローチャート。
【図１０】第２実施形態によるセンサユニットのデータ選択を説明する図。
【図１１】第２実施形態によるセンサユニットからの距離検出を説明する図。
【図１２】第２実施形態によるセンサユニットのデータ選択制御のフローチャート。
【図１３】第３実施形態によるセンサユニットの位置関係を説明する図。
【図１４】第３実施形態によるセンサユニットが検出するデータの一例を示す図。
【図１５】第４実施形態によるセンサユニットの絞りを説明する図。
【発明を実施するための形態】
【００２１】
［第１実施形態］
＜装置構成の概略説明＞
図１は、本実施形態による座標入力装置の概略構成を示す図である。センサユニット１Ａ〜１Ｄのそれぞれは、投光部および受光部を有し、所定の距離離れて設置されている。センサユニット１Ａ、１Ｄは、制御・演算ユニット２Ａに接続されている。センサユニット１Ｂ、１Ｄは、制御・演算ユニット２Ｂに接続されている。センサユニット１Ａ〜１Ｄのそれぞれは、接続される制御・演算ユニット２Ａまたは２Ｂから制御信号を受け取ると共に、検出した信号を制御・演算ユニット２Ａまたは２Ｂに送信する。再帰反射部３Ａ、３Ｂは、入射光を到来方向に反射する再帰反射面を有し、センサユニット１Ａ〜１Ｄのそれぞれから投光された光を、センサユニット１Ａ〜１Ｄのそれぞれに向けて再帰的に反射させる。反射された光は、集光光学系とエリアイメージセンサ等によって構成されたセンサユニット１Ａ〜１Ｄの受光部によって２次元的に検出され、その光量分布が制御・演算ユニット２Ａ、２Ｂに送られる。入力領域４は、ユーザが座標を入力する領域であり、センサユニット１Ａ〜１Ｄにより検出される領域である。
【００２２】
本実施形態において、再帰反射部３Ａ、３Ｂは、入力領域４の周囲４辺のうちの２辺に構成されており、センサユニット１Ａ、１Ｄは、２辺の再帰反射部３Ａ、３Ｂのうち一方の再帰反射部３Ｂに対して投光した光を受光する。同様に、センサユニット１Ｂ、１Ｃは、もう一方である再帰反射部３Ａに対して投光した光を受光する。なお、入力領域４における指などの入力指示の座標を算出するために用いるセンサユニット１Ａ〜１Ｄは、入力領域４の外側に配置されている。入力領域４は、ＰＤＰやリアプロジェクタ、ＬＣＤパネルなどの表示装置の表示画面で構成されたり、フロントプロジェクタにより画像が投影されたりすることで、インタラクティブな入力装置として、利用可能となっている。
【００２３】
このような構成において、入力領域４に指などによる入力指示がなされると、センサユニット１Ａ〜１Ｄの投光部から投光された光が遮られ、センサユニット１Ａ〜１Ｄは再帰反射による反射光を受光できなくなる。すなわち、センサユニット１Ａ〜１Ｄは、入力指示の位置について、光量が得られなくなる。制御・演算ユニット２Ａ、２Ｂは、センサユニット１Ａ〜１Ｄが得る光量の変化から、入力指示された部分の遮光領域を検出し、この遮光領域内での検出点を特定して、各センサユニット１Ａ〜１Ｄと検出点との角度を算出する。制御・演算ユニット２Ａ、２Ｂは、算出された角度および、センサユニット１Ａ〜１Ｄ間の距離等から、入力領域４上の指などによる入力指示の位置の座標を算出し、表示装置に接続されているＰＣなどに、ＵＳＢなどのインタフェースを経由して入力位置の座標値を出力する。このようにして、指などによって、画面上に線を描画したり、アイコンの操作をするなどＰＣの操作が可能になる。
【００２４】
以下、図１に示した座標入力装置の各部分の制御について、詳細説明を行う。
【００２５】
＜センサユニット１Ａ〜１Ｄの詳細説明＞
センサユニット１Ａ〜１Ｄの構成について、図２を用いて説明する。図２は、本実施形態によるセンサユニット１Ａ〜１Ｄの詳細構成を示す図である。センサユニット１Ａ〜１Ｄは、上述のように、大きく分けて投光部と受光部から構成される。
【００２６】
図２（ａ）は、センサユニット１Ａ〜１Ｄの投光部を示している。センサユニット１Ａ〜１Ｄ中の投光部は、赤外ＬＥＤ１０１と、投光レンズ１０２によって実現される。赤外ＬＥＤ１０１は、赤外光を発し、投光レンズ１０２によって、再帰反射部３Ａ、３Ｂに向けて所定範囲に光を投光する。投光部より投光された赤外光は、再帰反射部３Ａ、３Ｂにより到来方向に再帰的に反射され、センサユニット１Ａ〜１Ｄ中の受光部は、その光を検出する。
【００２７】
図２（ｂ）は、センサユニット１Ａ〜１Ｄの受光部を示しており、入力領域４に対して鉛直方向から見た図である。受光部は、２次元のエリアイメージセンサ１０３、集光光学系としての集光レンズ１０４、入射光の入射方向を概略制限する絞り１０５、及び可視光等の余分な光（外乱光）の入射を防止する赤外フィルター１０６からなる。
【００２８】
図２（ｃ）は、センサユニット１Ａ〜１Ｄの受光部の断面図であり、入力領域４に対して水平方向から見た図である。前述した集光レンズ１０４は、複数のレンズで構成されており、本実施形態においては、４つの集光レンズ１０４ａ〜１０４ｄで構成されている。再帰反射部３Ａ、３Ｂによって反射された光は、赤外フィルター１０６、絞り１０５を抜けて、集光レンズ１０４ａ〜１０４ｄによって、エリアイメージセンサ１０３の検出素子面上にそれぞれ集光される。
【００２９】
図２（ｄ）は、図１のセンサユニット１Ａ、１Ｂの断面図である。なお、センサユニット１Ｃ、１Ｄの断面図も同様である。センサユニット１Ａの赤外ＬＥＤ１０１Ａからの光は、投光レンズ１０２Ａにより、座標入力面に略平行に制限された光束として、主に再帰反射部３Ｂに対して光が投光される。同様に、センサユニット１Ｂの赤外ＬＥＤ１０１Ｂからの光は、投光レンズ１０２Ｂにより、主に再帰反射部３Ａに対して光が投光される。
【００３０】
本実施形態では、センサユニット１Ａ〜１Ｄの投光部と受光部は、座標入力面である入力領域４の垂直方向に対し重なった配置構成となっている。また、正面方向（座標入力面に対し垂直方向）から見て、投光部の発光中心と受光部の基準位置（つまり、角度を計測するための基準点位置に相当し、本実施形態にあっては絞り１０５の位置）が一致する構造となっている。また、投光部により投光された座標入力面に略平行な光束であって、面内方向に所定角度方向に投光されている光は、再帰反射部３Ａ、３Ｂにより光の到来方向に再帰反射される。そして、赤外フィルター１０６Ａ（１０６Ｂ）、絞り１０５Ａ（１０５Ｂ）、複数からなる集光レンズ１０４Ａ（１０４Ｂ）を経て、エリアイメージセンサ１０３Ａ（１０３Ｂ）の検出素子面上に集光、結像することになる。従って、エリアイメージセンサ１０３Ａ（１０３Ｂ）は、反射光の入射角に応じた光量分布を出力することになるので、エリアイメージセンサ１０３Ａ（１０３Ｂ）を構成する各画素それぞれが角度情報を示すことになる。
【００３１】
なお、図２（ｄ）に示すセンサユニット１Ａ、１Ｄの投光部と受光部の距離Ｌは、投光部から再帰反射部３Ａ、３Ｂまでの距離に比べて十分に小さな値であり、距離Ｌを有していても十分な再帰反射光を受光部で検出することが可能な構成となっている。また、集光レンズ１０４Ａ（１０４Ｂ）は、各々において複数段に構成されているので、集光レンズの数だけ、エリアイメージセンサ１０３Ａ（１０３Ｂ）に、集光、結像することになる。このように、センサユニット１Ａ〜１Ｄは、投光部と、各々の投光部で投光された光を各々検出する受光部を有する構成である。
【００３２】
＜制御・演算ユニットの説明＞
図１の制御・演算ユニット２Ａ、２Ｂとセンサユニット１Ａ〜１Ｄの間では、センサの制御信号、センサ用クロック信号とセンサの出力信号、および、ＬＥＤ駆動信号がやり取りされる。なお、制御・演算ユニット２Ａは、センサユニット１Ａ、１Ｄと接続されている。同様に、制御・演算ユニット２Ｂは、センサユニット１Ｂ、１Ｃと接続されている。
【００３３】
図３（ａ）は、制御・演算ユニット２Ａのブロック図である。なお、本実施形態では、制御・演算ユニット２Ａ、２Ｂは、いずれも同様の回路構成となっている。センサの制御信号は、ワンチップマイコンなどで構成されるＣＰＵ４１から出力されており、センサのシャッタータイミングや、データの出力制御のための信号が含まれる。センサ用クロック信号は、クロック発生回路ＣＬＫ４２からセンサユニット１Ａ、１Ｄに送信されるとともに、センサとの同期をとって、各種制御を行うために、ＣＰＵ４１にも入力されている。ＬＥＤ駆動信号は、ＣＰＵ４１から、センサユニット１Ａ、１Ｄの赤外ＬＥＤ１０１に供給されている。
【００３４】
センサユニット１Ａ、１Ｄによって検出された信号は、センサユニット１Ａ、１Ｄに内蔵されたＡ／Ｄコンバータによって、デジタル値に変換される。変換されたデジタル値は、ＣＰＵ４１を経由してメモリ４４に記憶され、角度計算に用いられる。そして、計算された角度から座標値が求められ、外部ＰＣなどにシリアルインタフェース４８などを介して出力される。なお、シリアルインタフェース４８によって、制御・演算ユニット２Ａ、２Ｂのいずれか１つがＰＣと接続される。
【００３５】
図１に示したように、本実施形態においては、センサユニット１Ａ〜１Ｄおよび制御・演算ユニット２Ａ、２Ｂが、上部と下部にそれぞれ分離して配置された構成となっている。上部と下部の間の制御・演算ユニット２Ａ、２Ｂ間の通信には、無線の通信手段が用いられる。本実施形態では、赤外線通信インタフェース４６を介して、サブＣＰＵ４５で処理されたデータにより、制御・演算ユニット２Ａ、２Ｂ間のやりとりが行われる。なお、各制御・演算ユニット２Ａ、２Ｂは、マスター・スレーブ制御にて動作する。本実施形態の場合は、制御・演算ユニット２Ａがマスターで、その他の制御・演算ユニット２Ｂがスレーブである。なお、各制御・演算ユニット２Ａ、２Ｂは、マスター・スレーブのどちらにもなりうる。マスター・スレーブは、不図示のディップスイッチなどで、ＣＰＵ４１のポートに切替え信号を入力することで切替えることが可能となっている。マスターが制御・演算ユニット２Ａである場合は、制御・演算ユニット２Ａから、各センサユニット１Ａ〜１Ｄの処理タイミングを制御する制御信号が、スレーブである制御・演算ユニット２Ｂに送信される。そして、前述した工程によって座標値が求められ、求められた座標値は制御・演算ユニット２ＢによってＰＣに送信される。
【００３６】
＜光量分布検出の説明＞
光量分布の検出について、図３（ｂ）を用いて説明する。図３（ｂ）は光量分布検出制御のための信号５１〜５４のタイミングチャートである。ＳＨ信号５１は、エリアイメージセンサ１０３のシャッター開放時間の周期を示している。ゲート（ＩＣＧＬ、ＩＣＧＲ）信号５２、５３はそれぞれ、センサユニット１Ａ、１Ｄによって検出されてデジタル化されたデータが制御・演算ユニット２Ａ、２Ｂのメモリ４４に記憶されるタイミングを示している。ＬＥＤ駆動信号（ＬＥＤＵ、ＬＥＤＤ）５４、５５はそれぞれ、上部センサユニットと下部センサユニットの赤外ＬＥＤ１０１を点灯させる期間を示している。ＳＨ信号５１が示す最初の周期で、ＬＥＤ駆動信号５４は、不図示のＬＥＤ駆動回路を経て赤外ＬＥＤ１０１に供給される。そして、次の周期で、ＬＥＤ駆動信号５５は、不図示のＬＥＤ駆動回路を経て赤外ＬＥＤ１０１に供給される。双方のＬＥＤの駆動が終了した後に、メモリ４４に記憶されたデータがＣＰＵ４１によって読み出される。このように、上部センサユニットと下部センサユニットとでは、異なるタイミングで投光（５６Ｕと５６Ｄの期間露光）されて、各センサユニット１Ａ〜１Ｄが受光した複数のデータ（光量分布）が読み出されることになる。
【００３７】
センサユニット１Ａ〜１Ｄそれぞれの出力である、センサユニット１Ａ〜１Ｄそれぞれによって検出されてデジタル化されたデータ（光量分布）の例を図４に示す。指などによる入力がない場合には、それぞれのセンサユニット１Ａ〜１Ｄからの出力として、図４（ａ）のような光量分布が集光レンズ１０４の数だけ得られる。もちろん、このような分布がどのシステムでも必ず得られるわけではなく、再帰反射シートの特性やＬＥＤの特性、また、計時変化（反射面の汚れなど）によって、分布は変化する。図４（ａ）においては、レベルＡが最大光量のレベルを示し、レベルＢが最低光量のレベルを示す。つまり、反射光のない状態では、得られるレベルがＢ付近になり、反射光量が増えるほどＡのレベルの方向になっている。この様にセンサから出力されたデータは、ＣＰＵにデジタルデータとして取り込まれる。
【００３８】
図４（ｂ）は、指などの入力が行われた、つまり、反射光が遮られた場合の光量分布の例である。矢印Ｃによって示される部分が指などで反射光が遮られた部分である。そのため、矢印Ｃによって示される部分のみ、光量が低下していることがわかる。指などの入力が行われたことの検出は、この光量分布の変化に基づいて行われる。具体的には、図４（ａ）のような入力の無い初期状態が予めメモリ４４に記憶されており、ＣＰＵ４１は、それぞれのサンプル期間に図４（ｂ）のような変化があるかを初期状態との差分によって検出し、変化があったらその部分を入力点として入力角度を決定する演算を行う。なお、上述した処理は、各センサユニット１Ａ〜１Ｄにおいて、複数の集光レンズ１０４で得られる複数の光量分布から選択された１つのみの光量分布について行われる。複数の光量分布から、１つ選択する処理については、後述する。
【００３９】
＜角度計算の説明＞
角度計算にあたって、まず、遮光領域を検出する必要がある。上述したように、光量分布は経時変化などで一定ではないため、システムの起動時などにおける光量分布を記憶する事が望ましい。そうする事で、例えば、再帰反射面がほこりなどで汚れていても、全く反射しないような場合を除いて使用可能になる。以降、一つのセンサのデータについて説明するが、他のセンサでも同様の処理を行うものとする。
【００４０】
電源投入時、入力の無い状態で、制御・演算ユニット２Ａ、２Ｂは、まずセンサユニット１Ａ〜１Ｄの投光部から投光しない場合のセンサの出力をBas_Data[N]として、メモリ４４に記憶する。Bas_Data[N]は、センサのバイアスのばらつき等を含んだデータとなり、図４（ａ）のＢのレベル付近のデータとなる。なお、Nは、有効な入力範囲に対応する画素番号である。次に、制御・演算ユニット２Ａ、２Ｂは、センサユニット１Ａ〜１Ｄの投光部から投光された状態での光量分布Ref_Data[N]をメモリ４４に記憶する。Ref_Data[N]は、図４（ａ）の実線で表されたデータである。ＣＰＵ４１は、Bas_Data[N]とRef_Data[N]を用いて、まず、指などによる入力が成されたか、遮光領域があるかどうかの判定を行う。
【００４１】
ここで、あるサンプル期間のデータをSample_Data[N]とする。まず遮光領域を特定するために、ＣＰＵ４１は、データの変化の絶対量によって、指などによる入力の有無を判定する。これは、ノイズなどによる誤判定を防止し、所定量の確実な変化を検出するためである。ＣＰＵ４１は、変化の絶対量を各々の画素において以下の計算を行い、予め決定してある閾値Vthaと比較する。
Norm_Data[N] = Sample_Data[N] - Ref_Data[N]  (1)
ここで、Norm_Date[N]は各画素番号における絶対変化量である。この処理は、差を取り、比較するだけなので、処理時間をさほど使わない。したがって、入力の有無の判定を高速に行う事が可能である。なお、ＣＰＵ４１は、閾値Vthaを初めて超えたNorm_Date [N]の画素番号から数えて所定数を超えて検出された場合に、入力があったと判定する。
【００４２】
次に、より高精度に検出するために、変化の比であるTendency_Data[N]を計算して入力点の決定を行う。
Tendency_Data[N] = Norm_Data[N] / (Bas_Data[N] - Ref_Data[N])  (2)
ＣＰＵ４１は、このデータに対して、閾値Vthrを適用して、その立ち上がり部と立下り部の画素番号から、両者の中央を入力画素として、角度を求める。図４（ｃ）は、比計算を終わったあとのTendency_Data[N]の例である。閾値Vthrで検出すると、遮光領域の立ち上がり部分は、Nr番目の画素で閾値を超えたとする。さらに、Nf番の画素で閾値Vthrを下まわったとする。このまま中心画素Npを
Np = Nr + (Nf - Nr) / 2  (3)
のように計算してもよいが、そうすると、画素間隔が最小の分解能になってしまう。より細かく検出するために、それぞれの画素のレベルとその一つ前の画素のレベルを用い閾値を横切った仮想の画素番号を計算する。
【００４３】
図４（ｃ）に示すように、Nr番画素のレベルをLr、Nr-1番画素のレベルをLr-1とする。また、Nf版画素のレベルをLf、Nf-1番画素のレベルをLf-1とすれば、それぞれの仮想画素番号Nrv、Nfvは、
Nrv = Nr-1 + ( Vthr - Lr-1 ) / ( Lr - Lr-1 )   (4)
Nfv = Nf-1 + ( Vthr - Lf-1 ) / ( Lf - Lf-1 )   (5)
と計算でき、仮想中心画素Npv
Npv = Nrv + ( Nfv - Nrv ) / 2  (6)
が決定される。このように、画素番号とそのレベルから仮想的な画素番号を計算することで、より分解能の高い検出ができる。次に、このように得られた中央画素番号から、実際の座標値を計算するためには、角度情報に変換する必要がある。
【００４４】
後述する実際の座標計算では、角度そのものよりもその角度における正接（tangent（tanθ））の値を求めるほうが都合がよい。なお、画素番号から、tanθへの変換には、テーブル参照や変換式が用いられる。変換式は例えば高次の多項式を用いると精度を確保できるが、次数などは計算能力および精度スペック等を鑑みて決定すればよい。ここで、５次多項式を用いる場合の例を示すと、５次多項式を用いる場合には係数が６個必要になるので、出荷時などにこのデータを不揮発性メモリなどに記憶しておけばよい。５次多項式の係数をL5、L4、L3、L2、L1、L0としたとき、tanθは
tanθ =((( (L5 * Npr + L4) * Npr + L3) * Npr + L2) * Npr + L1) * Npr + L0 (7)
で表す事ができる。同様な処理を各々のセンサに対して適用すれば、それぞれの角度データを決定できる。もちろん、上述の例ではtanθを求めているが、角度そのものを求め、その後tanθを求めても構わない。
【００４５】
＜座標計算方法の説明＞
次に、得られた角度データから座標を算出する。図５は、各センサユニットの組み合わせで座標計算可能な入力領域４の座標検出範囲を示している。図５に示すように、各センサユニット１Ａ〜１Ｄの投光範囲および受光範囲が交わる領域が座標計算可能な領域となる。したがって、センサユニット１Ｃ、１Ｄで座標計算可能な範囲は、図５（ａ）の斜線の範囲９１である。同様にセンサユニット１Ｂ、１Ｃで座標計算可能な範囲は、図５（ｂ）の斜線の範囲９２、センサユニット１Ａ、１Ｂで座標計算可能な範囲は、図５（ｃ）の斜線の範囲９３、センサユニット１Ａ、１Ｄで座標計算可能な範囲は、図５（ｄ）の斜線の範囲９４となる。
【００４６】
図６は、画面座標との位置関係を示す図である。いま、点Ｐの位置に入力があった場合、このときセンサユニット１Ｂ、１Ｃにて遮光データ（遮光領域）が検出される。なお、センサユニット１Ｂ、１Ｃ間の距離はDhで表されている。また、画面中央が画面の原点位置であり、P0(0.P0Y)はセンサユニット１Ｂ、１Ｃから見た角度が０の交点である。センサユニット１Ｂ、１Ｃから見た点Ｐの角度をそれぞれθL、θRとして、それぞれtanθL、tanθRを上述の多項式（式(7)）を用いて算出する。このとき点Ｐのx、y座標は
x = Dh * (tanθL + tanθR) / ( 1 + (tanθL * tanθR) )        (8)
y = -Dh * (tanθR - tanθL - ( 2 * tanθL * tanθR) ) 
/ ( 1+ ( tanθL * tanθR) ) + P0Y                       (9)
で計算される。
【００４７】
なお、入力領域によって、センサユニット１Ａ〜１Ｄの組み合わせが変更になることは上述した通りであるが、その組み合わせによって、座標算出式のパラメータが変更になる。例えば、センサユニット１Ｃ、１Ｄで検出されたデータで計算する場合は、計算式(8)、(9)において、図６に示した値を用いて、Dh→Dv、P0Y→P1Xの変換を行い、さらに計算されたxおよびyは、x←→yに変換される。同様に、センサユニット１Ａ、１Ｂの組み合わせ、センサユニット１Ａ、１Ｄの組み合わせで遮光データが検出された場合も、パラメータを変更し、入力位置の座標を上記の計算式(8)、(9)にて計算することができる。なお、各センサユニット１Ａ〜１Ｄの組み合わせによる座標検出可能な領域は、座標検出範囲が重なる領域があるため、複数の座標が検出されることがあるが、この場合には、平均した計算結果の座標値を出力値とすればよい。
【００４８】
＜座標算出工程の説明＞
図７は、データ取得から座標計算までの工程を示したフローチャートである。ステップＳ１０１で、電源が投入されると、ステップＳ１０２ではＣＰＵなどのポート設定、タイマ設定などさまざまな初期化が行われる。ステップＳ１０３〜ステップＳ１０５では、立ち上げ時のみに行う不要電荷除去のための準備が行われる。イメージセンサなどの光電変換素子において、動作させていないときに不要な電荷が蓄積している場合があり、そのデータをそのままリファレンスデータとして用いると、検出不能になったり、誤検出の原因となる。それを避けるために、最初に照明無しで、複数回データの読み出しを行っている。ステップＳ１０３では、その読み込み回数を設定しており、ステップＳ１０４では、照明無しで、所定回数データを読み出すことで、不要電荷の除去を行っている。ステップＳ１０５では、所定回数繰り返すための判断が行われる。
【００４９】
ステップＳ１０６はリファレンスデータとしての照明無しでのデータの取り込みであり、上述したBas_Dataの取り込みに相当する。ここで取り込んだデータは、ステップＳ１０７でメモリ４４に記憶され、以降の計算に用いられる。ステップＳ１０８では、これともう一つのリファレンスデータである、照明したときの初期光量分布に相当するデータRef_Dataが取り込まれ、ステップＳ１０９でこれもメモリ４４に記憶される。なお、この照明したときのデータRef_Dataは、上部のセンサユニットの組と下部のセンサユニットの組で異なるタイミングで照明して取り込む。もし同じタイミングで照明してしまうと、上部のセンサユニットと下部のセンサユニットが対向する配置であるため、互いの照明を互いの受光部にて検出してしまう。そのため、異なるタイミングとしている。
【００５０】
そして、ステップＳ１１０で、全てのセンサユニット１Ａ〜１ＤにおいてBas_DataとRef_Dataの取り込みが終了したかどうかが判断される。なお、全てのセンサユニット１Ａ〜１Ｄにおいて取り込みが終了されるまで、ステップＳ１０８とステップＳ１０９が繰り返される。なお、これまで取り込んだデータとして、各センサユニット１Ａ〜１Ｄにおいて、座標入力領域の範囲（画素領域）を示すデータが複数（集光レンズの数分）存在している。ステップＳ１１１では、これらの複数のデータから、座標算出に使用するデータを選択する処理が行われる。この選択処理については、後述する。このステップまでが、電源投入時の初期設定動作になり、次から通常の取り込み動作になる。すなわち、ステップＳ１１２以降では、ステップＳ１１１で選択された画素領域である部分的なデータをセンサユニット１Ａ〜１Ｄから取り込む動作が行われる。
【００５１】
ステップＳ１１２では上述したように、遮光領域を検出するために光量分布が取り込まる。そして、ステップＳ１１３で、全てのセンサユニット１Ａ〜１Ｄにおいて取り込みが終了したかどうかが判断される。全てのセンサユニット１Ａ〜１Ｄの取り込みが終了するまでステップＳ１１２が繰り返される。そして、ステップＳ１１３で、取込みが終了したと判断されたならば、取り込んだ全ての光量分布に対して、ステップＳ１１４で画素番号ごとにRef_Data[N]との差分値を計算し、ステップＳ１１４で遮光領域の有無（指などによる入力の有無）を判定する。ステップＳ１１５で遮光領域が無いと判定されたときには、ステップＳ１１２に戻り、また光量分布の取り込みが行われる。このとき、この繰り返し周期を１０[ｍｓｅｃ]程度に設定すれば、１００回／秒のサンプリングになる。
【００５２】
ステップＳ１１５で遮光領域が有りと判定されたら、ステップＳ１１６で式(2)の処理により比が計算される。ステップＳ１１７では得られた比に対して閾値Vthrで立ち上がり部、立下り部が決定され、式(4)、(5)、(6)により仮想中心画素が計算される。そして、ステップＳ１１８で、得られた仮想中心画素から近似多項式（式(7)）よりtanθが計算される。ステップＳ１１９では、遮光領域が有りと判定されたセンサユニット１Ａ〜１Ｄの組み合わせから、式(8)、(9)においてセンサユニット間距離Dv、Dhなどのtanθ以外のパラメータが選択されて、これらの計算式が変更される。そして、ステップＳ１２０で、センサユニットでのtanθの値からx、y座標が式(8)、(9)により算出される。
【００５３】
ステップＳ１２１では、ステップＳ１１４で遮光領域が有ると判定したセンサユニット１Ａ〜１Ｄの全ての組合わせで座標計算が行われたかが判定される。全ての組合わせでの座標計算が終了していない場合には、ステップＳ１１６の動作に戻り、繰り返し座標計算が行われる。次に、これまでの工程で出力された座標について、ステップＳ１２２にてタッチされたか否かの判定を行う。ここでは、例えばマウスのボタンを押下せずにカーソルを移動させている状態のような近接入力状態か、左ボタンを押した状態であるタッチダウン状態かの判定が行われる。実際には、ステップＳ１１６で得られた比の最大値が、ある所定値、例えば０.５などの値を超えていればダウンと判定し、それ以下なら近接入力状態と判定する。この結果にしたがって、ステップＳ１２３でダウンフラグのセットあるいはステップＳ１２４で解除が行われる。
【００５４】
ステップＳ１２５では、座標のデータがホストＰＣへ送信される。これは、ＵＳＢ、ＲＳ２３２などのシリアル通信で送られても良いし、任意のインタフェースで送られればよい。送られたＰＣ側では、ドライバがデータを解釈し、カーソルの移動、マウスボタン状態の変更などを座標値、フラグなどを参照して行う事で、ＰＣ画面の操作が可能になる。ステップＳ１２５の処理が終了したら、ステップＳ１１２の動作に戻り、以降電源ＯＦＦまでこの処理を繰り返すことになる。
【００５５】
＜座標算出に用いるデータの選択＞
上述したように、本実施形態では複数の集光レンズ１０４を用いることにより座標入力領域の範囲に対応する複数の結像データがエリアイメージセンサ１０３に存在する。ここでは、複数の結像データから座標算出に使用するデータ（画素領域）を選択する処理について説明する。なお、この処理は、先述した図７のフローチャートにおいて、ステップＳ１１１に相応する。
【００５６】
図８は、座標算出に用いるデータの選択処理を説明するための図である。図８（ａ）は、エリアイメージセンサ１０３を模式的に示したイメージセンサ８０１の図である。結像データ８０２〜８０５として、黒く塗りつぶされている箇所の画素は、再帰反射からの光が集光レンズを介して結像している箇所を示している。
【００５７】
図８（ｂ）は、イメージセンサ８０１に集光レンズ８０６ａ〜８０６ｄを配置した図である。集光レンズ８０６ａ〜８０６ｄは、入力領域面に対して垂直の方向に並んでおり、入力領域面に対する水平方向の大きさがそれぞれ異なるように構成されている。また、入力領域面に遠い位置に集光レンズ８０６ａ、入力領域面に近い位置に集光レンズ８０６ｄが配置される。なお、集光レンズ８０６ａ〜８０６ｄは、入力領域面に遠い位置になるにつれて、集光レンズの特性がより明るくなるように配置される。
【００５８】
ところで、再帰反射部３Ａ、３Ｂとセンサユニット１Ａ〜１Ｄにおいては、センサユニット１Ａ〜１Ｄの投光部から投光された光が再帰反射部３Ａ、３Ｂにより反射して、集光レンズ１０４に入光する角度（観測角）が小さいほど再帰反射効率が高い。そのため、センサユニット１Ａ〜１Ｄと再帰反射部３Ａ、３Ｂが為す角度に鑑み、センサユニットの投光部に近い側、すなわち、イメージセンサ８０１の上部の方（図２（ｄ）参照）が、より多くの光出力が得られる。したがって、入力領域面から近い位置から遠い位置になるにつれて、集光レンズの単位視野角あたりの画素数は増えるような構成であっても、先述した観測角特性により、イメージセンサ８０１においては、より多くの光出力が得られる。
【００５９】
図８（ｃ）は、イメージセンサ８０１に結像した結像データ８０２〜８０５をイメージセンサ８０１から読み出した波形の一例であり、集光レンズ８０６ａ〜８０６ｄの出力が、それぞれ波形８０７ａ〜８０７ｄに対応している。図中、Vtha〜Vthdは、座標算出に用いるデータとして有効なレベルにあるかどうかを判断するための閾値である。これらの波形８０７ａ〜８０７ｄから、座標算出に用いるデータ（画素領域）が選択される。波形８０７ａ〜８０７ｄを観察すると、波形８０７ａ、８０７ｂでは、直線になっている部分はイメージセンサ８０１において飽和している状態を示している。一般的に、イメージセンサにおいて飽和している場合は、隣り合う画素に影響がある場合があり、また、検出した波形が本来の波形を再現できていないので、座標算出に用いるデータからは除外する。また、波形８０７ｄは、閾値のVthdを超えていない。したがって、図８（ｃ）の例においては、波形８０７ｃが選択されることになる。
【００６０】
図９は、上述した複数の結像データから座標算出に使用するデータを選択する処理について記述したフローチャートである。なお、図７のフローチャートにおいては、ステップＳ１１１に相応する。図７のフローチャートにおいて、ステップＳ１１１が呼び出されると、図９のフローチャートに示した処理が実行される。
【００６１】
ステップＳ９０１で、本サブルーチンが呼び出されると、ステップＳ９０２で初期設定が行われる。ステップＳ９０２では、複数の結像データに対応する波形データそれぞれの属性として付与される判定結果フラグNG_FlagおよびOK_Flagが初期化される。ステップＳ９０３では、波形データにおいて、所定範囲の画素番号が閾値を超えているかどうかが判定される。所定範囲とは、想定された角度情報の範囲であり、装置を構成するときにあらかじめ角度検出範囲として決定される値である。所定範囲の画素番号は、その所定範囲に対応する画素番号である。ステップＳ９０３で、YESと判定された場合は、ステップＳ９０５に進み、波形データにおいて、飽和領域が存在するかどうかが判定される。なお、所定範囲の画素番号が閾値を超えていない場合、すなわちステップＳ９０３にてNOの場合には、ステップＳ９０４で、NG_Flag=1が対象の波形データの属性として付与される。
【００６２】
ステップＳ９０５において、飽和領域が存在しない場合、すなわちステップＳ９０５にてNOの場合には、ステップＳ９０７で、OK_Flag=1が対象の波形データの属性として付与される。なお、ステップＳ９０５で、飽和領域が存在する場合、すなわちステップＳ９０５にてYESの場合には、ステップＳ９０６で、NG_Flag=2が波形データの属性として付与される。ステップＳ９０８では、全ての結像データ（波形データ）の群について、フラグOK_FlagまたはNG_Flagが付与されたかを判定する。すなわち、ステップＳ９０３からＳ９０７までの処理が、全ての結像データ（波形データ）の群について処理されたかを判定する。そして、フラグが付与されていないデータがある場合に、すなわちステップＳ９０８でNOと判定された場合には、ステップＳ９０３にもどり、ステップＳ９０３からＳ９０７までの処理が繰り返し実行される。全ての結像データ（波形データ）の群について、フラグが付与されている場合、すなわちステップＳ９０８でYESと判定された場合には、ステップＳ９０９に進む。
【００６３】
ステップＳ９０９では、座標算出に用いるデータを決定する処理が実行される。これまでに、各波形データに属性として付与されたフラグNG_FlagおよびOK_Flagで判定処理が行われる。OK_Flag=1のデータが１つしかない場合には、すなわち、ステップＳ９０９でNOの場合には、ステップＳ９１０に進み、対象となるデータが座標算出に用いるデータとして選択される。ステップＳ９０９で、OK_Flag=1のデータが複数ある場合には、すなわち、ステップＳ９０９でYESの場合には、ステップＳ９１１に進み、より入力領域面から遠い位置の波形データが選択される。これは、同じ角度範囲でれば、結像範囲が広い方が、角度分解能が高いためである。なお、全ての波形データにおいて、OK_Flag=0でNG_Flag=1 またはNG_Flag=2の場合には、座標算出に用いるデータとして有効なものがないと判断して、エラー処理としてユーザーに報知するなどの処理が実行される（不図示）。
【００６４】
ステップＳ９１２では、全てのセンサユニット１Ａ〜１Ｄで、座標算出に用いるデータが決定されたかどうかを判定する処理が実行される。全てのセンサユニット１Ａ〜１Ｄで、判定処理が終了している場合、すなわちステップＳ９１２でYESの場合には、波形データの選択結果をメモリにセットしてステップＳ９１３でリターンする。判定が終了していないセンセユニットがある場合、すなわちステップＳ９１２でNOの場合には、ステップＳ９０２にもどり、上述した処理が繰り返し実行されることになる。なお、図９のフローチャートには示されていないが、波形データを選択する際、図８（ｃ）において説明したように、波形データが座標算出に用いるデータとして有効なレベルにあるかどうかの判断を加えても良い。
【００６５】
上述のような構成にすることによって、大きなダイナミックレンジを有するイメージセンサを必要とせず、イメージセンサのダイナミックレンジに関する性能を下げて座標入力装置を構成することが可能となる。また、センサユニットにおいて、発光部や露光時間によってイメージセンサで検出する光量を制御する場合であっても、その調整範囲を狭くすることが可能となる。
【００６６】
（第２実施形態）
第１実施形態においては、イメージセンサにおける複数の結像データから、検出可能な光量レベルを判断基準として、１つのデータを選択して、そのデータ（画素領域）を用いて座標を算出した。本実施形態においては、センサユニット間の距離にしたがって、複数の結像データから、１つのデータを選択して、そのデータ（画素領域）を用いて座標を算出する場合について説明する。
【００６７】
まず、センサユニットの構成について説明する。図１０は、座標算出に用いるデータの選択処理を説明するための図である。図１０（ａ）は、第１実施形態で説明した図８（ａ）と同様に、イメージセンサ８０１を模式的に示した図である。結像データ１００１ａ〜１００１ｄとして、黒く塗りつぶされている箇所の画素は、再帰反射からの光が集光レンズを介して結像している箇所を示している。
【００６８】
図１０（ｂ）は、イメージセンサ８０１に集光レンズ１００２ａ〜１００２ｄを配置した図である。集光レンズ１００２ａ〜１００２ｄは、イメージセンサの８０１水平方向の大きさがそれぞれ同じになるように構成されている。なお、各集光レンズ１００２ａ〜１００２ｄは、それぞれで被写界深度が異なる構成となっている。なお、入力領域面に遠い位置に配置される集光レンズ１００２ａにおいては、遠い距離においてピントが合うように焦点距離が設定されている。また、入力領域面に近い位置に配置される集光レンズ１００２ｄにおいては、近い距離においてピントが合うように焦点距離が設定されている。
【００６９】
次に、センサユニット間の距離の算出の仕方について説明する。図１１（ａ）は、本実施形態におけるセンサユニット１Ａ〜１Ｄの位置関係を示す図である。センサユニット１Ａと１Ｄのセンサ間距離は既知でありSENS_Hとする。また、求めるセンサユニット１Ａと１Ｂのセンサユニット間の距離をSENS_Vとする。ここで、センサユニット１Ｂの検出信号を用いて、センサ間距離SENS_Vを算出する場合について説明する。なお、距離の算出には、センサユニット１Ａおよび１Ｄの投光をセンサユニット１Ｂにて検出することによって行う。
【００７０】
図１１（ｂ）は、センサユニット１Ｂで検出される複数の結像データに対応する波形データを模式的に示した図である。センサユニット１Ｂで検出される波形データは、1B_a〜1B_dであり、ほとんど同じ波形データとなる。なお、本検出においては、検出レベルが全て飽和しても、検出した波形の中間点を求めることにより、センサユニット１Ａと１Ｂ間の概算の距離が算出でき、ここで、距離算出の誤差は、座標算出に用いるデータを選択する処理には影響しない。いま、波形データ1B_a〜1B_dにおいて、ゼロレベルからEレベルの範囲にある画素番号の中間点の平均値 1A_point と 1D_point は、センサユニット１Ｂからみたセンサユニット１Ａと１Ｄの方向に相当する。Diff_Pixel は、この1A_point と 1D_point の差分値であり、この画素範囲を角度情報に変換することで、図１１（ａ）における角度情報θを算出することができる。
【００７１】
そして、以下の式により、センサユニット１Ａと１Ｂのセンサユニット間の距離 SENS_V を算出することができる。
SENS_V = SENS_H / tanθ      (10)
上述したように、算出した距離情報に基づいて、あらかじめセンサユニット１Ａと１Ｂ間の距離のレンジと対応する集光レンズが関連付けられており、座標算出に用いるデータ（画素領域）を選択することができる。
【００７２】
先にも説明したように、本実施形態においては、遠い距離から近い距離にしたがって、集光レンズ１００２ａ〜１００２ｄがピントが合う範囲となるよう構成されている。したがって、センサユニット間の距離 SENS_Vの値により、適宜、結像データ１００１ａ〜１００１ｄから１つ選択することができる。
【００７３】
図１２は、上述した複数の結像データから座標算出に使用するデータを選択する処理について記述したフローチャートである。なお、第１実施形態において説明した図７のフローチャートにおいて、ステップＳ１１１に相応する。図７のフローチャートにおいて、ステップＳ１１１が呼び出されると、図１２のフローチャートに示した処理が実行される。
【００７４】
ステップＳ１２０１で、本サブルーチンが呼び出されると、ステップＳ１２０２で初期設定が行われる。複数の結像データに対応する波形データのインデックスが格納される変数 Line_Num が初期化される。ステップＳ１２０３では、波形データにおいて、所定範囲の画素番号が角度情報に変換され、該角度情報と既知のセンサユニット間距離（図１１（ａ）ではセンサユニット１Ｂと１Ｃ間の距離）から、可変な構成のセンサユニット間距離（図１１（ａ）ではセンサユニット１Ａと１Ｂ間の距離）の算出が行われる。ステップＳ１２０４では、ステップＳ１２０３で算出した距離によって、あらかじめ決められた距離範囲に対応する波形データが選択され、対応するインデックスが、 Line_Num に代入される。すなわち、ステップ１２０４では、座標算出に用いるデータ（画素領域）を決定する処理が実行される。ステップＳ１２０５では、全てのセンサユニットで、座標算出に用いるデータが決定されたかどうかを判定する処理が実行される。全てのセンサユニットで、判定処理が終了している場合、すなわちステップＳ１２０５でYESの場合には、波形データの選択結果をメモリにセットしてステップＳ１２０６でリターンする。判定が終了していないセンサユニットがある場合、すなわちステップＳ１２０５でNOの場合には、処理はステップＳ１２０２に戻り、上述した処理が繰り返し実行されることになる。
【００７５】
上述のような構成にすることによって、各距離レンジに合わせてピントを設定した集光レンズを選択してデータを処理することが可能となるので、入力によって生じる遮光を精度よく算出することが可能となる。なお、上述した構成では、図７のフローチャートに示したように、通常の座標算出処理に用いるデータとして、複数の結像データから１つを選択して、以後、選択したデータを座標算出のために使い続けるフローであった。しかし、必ずしもそのようなフローが必要なわけではない。例えば、本実施形態で算出したセンサユニット間距離の代わりに、各センサユニットで入力指示位置までの概算距離を算出してから、対応するレンジの集光レンズによる結像データを選択して、座標を算出するようなフローとしてもよい。上述した構成にすることによって、指示位置と各センサユニット間の距離にしたがって、適宜ピントの合ったデータを用いて座標を算出することができるので、さらに高精度に座標を算出することが可能となる。
【００７６】
（第３実施形態）
第２実施形態においては、センサユニットからの距離情報を用いて、イメージセンサにおける複数の結像データから、１つのデータを選択して、そのデータを用いて座標を算出した。本実施形態においては、センサユニット間の距離にしたがって、複数の結像データから、１つのデータを選択後、イメージセンサの読み出しモードを変更し、モード変更後に読み出したデータを用いて座標を算出する場合について説明する。
【００７７】
図１３は、本実施形態におけるセンサユニット１Ａ〜１Ｄの位置関係を示す図である。なお、いまセンサユニット１Ａと１Ｄ間の距離は既知でありSENS_H とする。また、センサユニット１Ａと１Ｂ間の距離を SENS_V とする。センサユニット１Ａと１Ｄは、センサユニット１Ｂと１Ｃに対して、図のように１Ａ＿１〜１Ａ＿３および１Ｄ＿１〜１Ｄ＿３の位置関係に移動が可能であるものとする。このとき、センサユニット１Ａと１Ｂ間の距離はそれぞれSENS_V１３２〜１３５となる。なお、このときセンサユニット１Ｂに着目すると、検出すべき画角は、θ１３６〜１３９となる。すなわち、１Ａ＿３および１Ｄ＿３のように離れるにしたがって、検出すべき角度は小さくなる。
【００７８】
図１４（ａ）は、第２実施形態において説明した図１０（ａ）に示したイメージセンサ８０１に結像した結像データ１００１ａ〜１００１ｄをイメージセンサ８０１から読み出した波形の一例である。結像データ１００１ａ〜１００１ｄに波形データ１３０１ａ〜１３０１ｄが対応する。なお、センサユニット１Ａと１Ｄの位置が１Ａと１Ｄのときに得られる波形データが、１３０１ａとなる。同様に、センサユニット１Ａと１Ｄの位置が１Ａ＿１と１Ｄ＿１のときに得られる波形データが、１３０１ｂ、センサユニット１Ａと１Ｄの位置が１Ａ＿２と１Ｄ＿２のときに得られる波形データが、１３０１ｃ、センサユニット１Ａと１Ｄの位置が１Ａ＿３と１Ｄ＿３のときに得られる波形データが、１３０１ｄである。
【００７９】
このように、距離が変更になることによって画角（検出角度）は変更になるが、結像領域（結像範囲）がほぼ同一となるように検出される。ただし、検出レベルをみると、距離が遠いほど（１３０１ｄ→１３０１ａになるにしたがって）、検出レベルは小さくなる。これは、距離要因による光量の低下を含んでいる。角度分解能に着目すると、１３０１ｄの波形データにおいて、座標算出に必要十分な角度分解能があるものとすると、波形データ１３０１ａにおいては、角度分解能としてはオーバスペックであるといえる。ゆえに、本実施形態では、イメージセンサの読み出しモードを変更する。すなわち、イメージセンサにおいて、隣り合う画素の信号を加算して、解像度を犠牲にして感度を向上させる。この動作をビニング動作という。なお、読み出しノイズは１回のままであるので、単純に信号を読み出して平均する処理とは異なる。
【００８０】
図１４（ｂ）は、イメージセンサをビニング動作にてデータを読み出した場合の波形の一例である。イメージセンサからビニング動作で読み出した波形が、波形１３０２ａ〜１３０２ｄに対応する。波形１３０２ａ〜１３０２ｄのように、検出角度に応じた角度分解能としながら、なおかつ検出レベルも同程度とすることが可能となる。すなわち、上述のような構成にすることによって、各距離レンジに合わせて、角度分解能を最適化し、さらには、検出レベルをも最適化することが可能となるので、入力によって生じる遮光を精度よく算出することが可能となる。なお、上述のビニング動作は、全ての波形に対して一律に適用すること、及び部分的に適用することが可能である。
【００８１】
（第４実施形態）
第３実施形態では、イメージセンサにおける複数の結像データに対して、イメージセンサのビニング動作による読み出しにより、距離による光量の低下を軽減させた。イメージセンサによる検出レベルが上がることは、Ｓ／Ｎの面で優位であるので、結果的に光量分布から遮光領域を特定する際にも精度良く検出できる。光量分布から遮光領域を精度良く特定するには、上述の手法とともに光量分布にピントが合っている必要がある。第２実施形態では、イメージセンサに配置された各集光レンズが、被写界深度が異なる構成であり、センサユニットからの距離レンジにより、各結像データでは、ピントが合う範囲が異なる構成であった。本実施形態では、この構成に加えて、さらに絞りの形状を各集光レンズによって変える構成をとる。
【００８２】
図１５（ａ）は、図１０（ｂ）に示したイメージセンサ８０１および集光レンズ１００２ａ〜１００２ｄに対して、絞り１４０２を配置した図である。なお、１４０２は絞りの外形であり、１４０２の形状を介して集光レンズに光が入ることになる。なお、図１５（ｂ）は、上述した絞りの開放部が各集光レンズに対して設けられた構成である。
【００８３】
上述したような絞りの構成は、センサユニットからの距離レンジにより、通常動作中もイメージセンサの複数の結像データから読み出すデータを変更する場合に有効である。すなわち、イメージセンサからの距離が遠いほど、図１５において上側の結像データ読み出すことによって、絞りが開放されているので、ピントが合う範囲が狭いが、光量が増加する構成とすることができる。一方で、通常動作の前に、イメージセンサにおける複数の結像データから１つ読み出すデータを決定する場合には、図１５に示した絞りの形状とは上下が逆になるようにしてもよい。すなわち、イメージセンサからの距離が遠いほど、絞りを絞って被写界深度が深くなるような構成にしてもよい。
【００８４】
このように、本実施形態においては、センサユニットからの距離によって、複数の結像データから読み出すデータが選択できる構成であるので、装置の構成によって、各集光レンズに対する絞りは適宜決めればよい。また、集光レンズの焦点距離、絞りの組み合わせも適宜決めればよい。また、上述した集光レンズは、イメージセンサに対して、複数個設けられていたが、１つのイメージセンサに対して、複数の領域に結像するように、一体的に成型してあってもよい。すなわち、センサユニットからの距離によって、複数の結像データから読み出すデータが選択できる構成であれば、本実施形態による構成に含まれるものである。
【００８５】
（その他の実施形態）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2015170294.tif 000003
【図２】
2015170294.tif 000004
【図３】
2015170294.tif 000005
【図４】
2015170294.tif 000006
【図５】
2015170294.tif 000007
【図６】
2015170294.tif 000008
【図７】
2015170294.tif 000009
【図８】
2015170294.tif 000010
【図９】
2015170294.tif 000011
【図１０】
2015170294.tif 000012
【図１１】
2015170294.tif 000013
【図１２】
2015170294.tif 000014
【図１３】
2015170294.tif 000015
【図１４】
2015170294.tif 000016
【図１５】
2015170294.tif 000017