(57)【特許請求の範囲】
【請求項１】
タッチ面に対する指の接触領域から座標を検出するタッチスクリーンを搭載する電子機器に、
前記タッチスクリーンに対するタッチ操作に応じて検出座標を生成するステップと、
カメラで前記タッチ操作をしている指の爪を撮影するステップと、
前記カメラの撮影画像から前記爪の所定の位置に設定した視線ターゲットの位置を特定するステップと、
前記視線ターゲットに関連付けた位置にターゲット座標を設定するステップと、
前記ターゲット座標と前記検出座標から計算した補正量で前記検出座標を補正するステップと
を有する処理を実行させるためのコンピュータ・プログラム。
【請求項２】
前記ターゲット座標を前記視線ターゲットの真下に設定する請求項１に記載のコンピュータ・プログラム。
【請求項３】
前記視線ターゲットを前記タッチ面に対する指の投影が形成する指の幅の中心線上でかつ爪の底部より指先側に設定する請求項１に記載のコンピュータ・プログラム。
【請求項４】
前記検出座標を補正するステップが、前記検出座標を前記撮影画像が含む指の特徴的部位の真下に想定するステップ含む請求項１に記載のコンピュータ・プログラム。
【請求項５】
前記検出座標を補正するステップが、前記撮影画像から特定した指の軸と前記タッチ面が形成するピッチ角を計算するステップを含む請求項１に記載のコンピュータ・プログラム。
【請求項６】
前記視線ターゲットの位置を特定するステップが、前記カメラと前記検出座標の距離を計算して前記爪の長さを計算するステップを含む請求項１に記載のコンピュータ・プログラム。
【請求項７】
前記検出座標を補正するステップが、前記撮影画像から特定した指の軸の回りのロール角を計算するステップを含む請求項１に記載のコンピュータ・プログラム。
【請求項８】
前記検出座標を補正するステップが、前記カメラと前記検出座標の距離を計算して前記撮影画像から特定した前記タッチ面に対する指の高さを計算するステップを含む請求項１に記載のコンピュータ・プログラム。
【請求項９】
タッチ面に対する指の接触領域から座標を検出するタッチスクリーンを搭載する電子機器に、
前記タッチスクリーンにターゲット・オブジェクトを表示するステップと、
前記ターゲット・オブジェクトのターゲット座標と前記タッチスクリーンが検出する検出座標の差に相当する指の長さ方向のオフセットをΔｙとし、タッチ操作をする指のピッチ角をβとし、係数をｐとした式（ａ）を用意するステップと、
Δｙ＝ｐ×ｃｏｓβ      （ａ）
前記ターゲット・オブジェクトに対するタッチ操作に応じて検出座標を生成するステップと、
カメラで前記タッチ操作をしている指を撮影するステップと、
指の撮影画像から特定した指の姿勢に基づいて計算したピッチ角βと、前記ターゲット座標と前記検出座標から計算したオフセットΔｙを式（ａ）に代入して前記係数ｐを計算するステップと
を有する処理を実行させるためのコンピュータ・プログラム。
【請求項１０】
前記ターゲット座標と前記タッチスクリーンが検出する検出座標の差に相当する指の幅方向のオフセットをΔｘとし、タッチ操作をする指のロール角をγとし、係数をｑとした式（ｂ）を用意するステップと、
Δｘ＝ｑ×ｔａｎγ      （ｂ）
指の撮影画像から特定した指の姿勢に基づいて計算したロール角γと、前記ターゲット座標と前記検出座標から計算したオフセットΔｘを式（ｂ）に代入して前記係数ｑを計算するステップと
を有する請求項９に記載のコンピュータ・プログラム。
【請求項１１】
請求項１から請求項１０のいずれかに記載のコンピュータ・プログラムを記録した記録媒体。
【請求項１２】
請求項１１に記載の記録媒体を搭載する電子機器。
【請求項１３】
タッチ面に対する指の接触領域から座標を検出して検出座標を出力するタッチスクリーンと、
タッチ操作をする指を撮影して画像データを出力することが可能なカメラと、
前記画像データから爪の所定の位置に設定した視線ターゲットの位置を特定し、該視線ターゲットに関連付けた位置にターゲット座標を設定し、該ターゲット座標と前記検出座標から補正量を計算する補正量演算部と
を有する電子機器。
【請求項１４】
前記タッチスクリーンが静電容量式である請求項１３に記載の電子機器。
【請求項１５】
前記カメラが広角レンズ・カメラまたは魚眼レンズ・カメラである請求項１３に記載の電子機器。
【請求項１６】
前記カメラを前記タッチスクリーンの周辺のいずれかの枠縁に１台だけ実装した請求項１５に記載の電子機器。
【請求項１７】
前記補正量演算部が前記補正量を計算しないときにアプリケーション実行部に前記検出座標を出力する座標取得部を有する請求項１３に記載の電子機器。
【請求項１８】
カメラと、タッチ面に対する指の接触領域から検出座標を出力するタッチスクリーンを搭載した電子機器が前記検出座標を補正する方法であって、
前記タッチスクリーンに対するタッチ操作に応じて検出座標を受け取るステップと、
前記タッチ操作をしている指の爪を撮影した前記カメラから画像データを受け取るステップと、
前記画像データから前記爪の所定の位置に設定した視線ターゲットの位置を特定するステップと、
前記視線ターゲットに関連付けた位置にターゲット座標を設定するステップと、
前記ターゲット座標と前記検出座標から補正量を計算するステップと、
を有する方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、タッチスクリーンに対する操作精度を向上する技術に関し、特に小型のタッチスクリーンの操作精度を向上する技術に関する。
【背景技術】
【０００２】
電子機器が搭載するタッチスクリーンは、ディスプレイと透明なタッチパネルの積層構造を採用しており、指や電子ペンでディスプレイが表示するオブジェクトに対して直接入力指示ができるためユーザの直感的な操作を可能にする。指は電子ペンに比べてタッチ面に接触する面積（接触領域）が大きい。静電容量型のタッチパネルでは、ディスプレイの表面に接触している指の接触領域の幾何学的な中心や重心の座標を計算して座標を認識する。
【０００３】
ユーザはタッチスクリーンの検出原理を理解しているため指の接触領域の中心を目的とするオブジェクトに位置付けるようにタッチ操作をする。しかし、接触領域には指のサイズや接触圧力に応じた面積的な広がりがあり、かつ指の裏側に存在するためユーザは目的とするオブジェクトが小さいほど的確な操作することが困難になる。非特許文献１は、現在のタッチスクリーンに発生する構造的なエラー・オフセットについての研究成果を発表している。同文献には、以下のことを記載している。
【０００４】
静電容量型のタッチセンサでは、ユーザがオブジェクトを指示するときには、指の爪の中央部分を基準にしているため、接触領域からデバイスが検出する座標とユーザが意図して指を位置付けようとする座標との間にオフセットが発生する。接触領域は、タッチスクリーンに対する指の角度および圧力により変化するため、ユーザが意図するオブジェクトをタッチスクリーンが正確に検出するためにはターゲットのサイズを大きくする必要がある。したがって指の接触領域の中心でターゲットを検出するデバイスよりも、カメラを利用して撮影した指の画像から座標を検出するデバイスの方が正確にユーザの意図する位置を検出できることを報告している。
【０００５】
特許文献１は、コンピュータの表示装置のベゼルに２つの魚眼レンズ・カメラを搭載して、三角測量の原理で指の指示位置を検出するタッチパネルを開示する。特許文献２は、タッチスクリーンの周囲に配置した４個のカメラで指を撮影してタッチミスを低減するタッチパネル装置を開示する。カメラがタッチスクリーンに接近する指を撮影した画像から指の面積を推定し、指の面積が所定値より大きい場合はＧＵＩの部品を拡大して表示し、小さい場合は拡大しないで表示する。いずれの場合も指が接近していない場合はタッチスクリーンにＧＵＩが表示されない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２０１０−２８２４６３号公報
【特許文献２】特開２０１１−１３４１１１号公報
【非特許文献】
【０００７】
【非特許文献１】Christian Holz and Patrick Baudisch,"Understanding Touch",［online］,2011年,［平成26年1月18日検索］,インターネット〈URL:http://www.christianholz.net/2011-chi11-holz-baudisch-understanding_touch.pdf〉
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献１が指摘するように、カメラを利用した入力デバイスで従来の静電容量型のタッチスクリーンよりも精度の高い操作をすることができるとしても、携帯式電子機器に指を真上から撮影するようなカメラを搭載することは困難である。特許文献１のように画像だけで座標を検出する場合は、２台のカメラを搭載する必要がある。特許文献２の方法では、指の接近前にアイコンが表示されないためアイコンが多くなると指を接近させたときに目的とするアイコンが表示されないことも予想され、さらに常時画面にアイコンを表示しておきたい場合には採用できない。
【０００９】
タブレット端末およびスマートフォンには、ユーザの顔および風景を切り換えて撮影することができる１台のカメラを標準的に搭載する。また近年のノートブック型パーソナル・コンピュータ（ノートＰＣ）では、ユーザの顔を撮影することができる１台のカメラとタッチスクリーンを搭載するものがある。そして、このような携帯式電子機器においてコスト上昇を抑制しながらタッチスクリーンの操作精度を向上することが求められている。
【００１０】
そこで本発明の目的は、電子機器が実装するタッチスクリーンの操作精度を向上する方法を提供することにある。さらに本発明の目的は、電子機器が実装するタッチスクリーンのオブジェクトを小さくする方法を提供することにある。さらに本発明の目的は、そのような方法を採用した電子機器およびコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１１】
本発明の１つの態様では、電子機器がタッチ面に対する指の接触領域から座標を検出するタッチスクリーンを搭載する。電子機器がタッチスクリーンに対するタッチ操作に応じて検出座標を生成する。電子機器はカメラでタッチ操作をしている指を撮影する。つづいて電子機器は指の撮影画像から特定した指の姿勢に基づいて補正量を計算し、検出座標と補正量から計算したターゲット座標を出力する。
【００１２】
その結果、タッチ操作をする指の姿勢に起因して発生したオフセットを補正して操作精度を向上することができる。また、タッチ操作の対象となるオブジェクトを小さくすることができる。電子機器は、スマートフォン、タブレット端末、またはノートＰＣのいずれかとすることができる。タッチスクリーンは静電容量式、ＦＴＩＲ（Frustrated Total Internal Reflection）式、または抵抗式のいずれかとすることができる。カメラを広角レンズ・カメラまたは魚眼レンズ・カメラとすれば、顔と指の両方の撮影に利用でき、かつ、タッチスクリーンの縁枠がタッチ面と同じ平面にあってもタッチ操作する指を撮影することができる。
【００１３】
補正量の計算においては、ターゲット座標を指の所定の位置に想定した視線ターゲットの真下に設定することができる。このとき視線ターゲットをタッチ面に対する指の投影が形成する指の幅の中心線上でかつ指の底部より指先側に設定することができる。さらに補正量の計算においては、検出座標を撮影画像が含む指の特徴的部位の真下に想定することができる。このとき指の特徴的部位を爪の底部に設けることができる。補正量の計算においては、撮影画像から特定した指の軸とタッチ面が形成するピッチ角を計算することができる。このとき、カメラと検出座標の距離を計算して撮影画像から特定した爪の長さを計算することができる。カメラと検出座標の距離を計算することでカメラは１台にすることができる。
【００１４】
また、補正量の計算においては、撮影画像から特定した指の軸の回りのロール角を計算することができる。このとき、カメラと検出座標の距離を計算して、撮影画像から特定したタッチ面に対する指の高さを計算することができる。上記の構成においてピッチ方向の傾斜とロール方向の回転は同時に発生していてもよい。本発明はスマートフォンまたはタブレット端末のような小型の電子機器に搭載するタッチスクリーンに適用すると特に有効である。
【００１５】
本発明の他の態様は、電子機器にユーザが入力を意図するターゲット座標とタッチスクリーンが検出する検出座標の差に相当するオフセットをＯＦＳとし、指の姿勢に対応する変数をｕとする関数をｆ（ｕ）とし、係数をｒとした式（ａ）を用意する。
ＯＦＳ＝ｒ×ｆ（ｕ）      （ａ）
【００１６】
つづいてタッチスクリーンが検出座標を生成し、カメラでタッチ操作をしている指を撮影する。つづいて指の撮影画像から特定した指の姿勢に基づいて計算した変数ｕの値を式（ａ）に代入してオフセット値を計算し、検出座標とオフセット値から計算したターゲット座標を出力する。係数ｒは、あらかじめ複数の被験者に平均的に適用できる値を登録しておいてもよいし、個別のユーザに適用できる値を登録しておいてもよい。
【００１７】
変数ｕをピッチ角βとし、ピッチ方向のオフセットをΔｙとし、係数ｒを係数ｐとしたときに式（ａ）は、
Δｙ＝ｐ×ｃｏｓβ      （ｂ）
とすることができる。また、変数ｕをロール角γとしピッチ方向のオフセットをΔｘとし、係数ｒを係数ｑとしたときに式（ａ）は、
Δｘ＝ｑ×ｔａｎγ      （ｃ）
とすることができる。
【００１８】
係数ｒは、タッチスクリーンにターゲット・オブジェクトを表示し、ターゲット・オブジェクトに対するタッチ操作に応答して検出した検出座標とターゲット・オブジェクトの座標の差からオフセット値を計算し、撮影画像から変数ｕの値を計算し、オフセット値と変数ｕの値を式（ａ）に代入して計算することができる。よって、指の形状や視線ターゲットの位置がユーザごとに異なっていても、ユーザごとに係数ｒを計算することで精度の高い補正をすることができる。
【発明の効果】
【００１９】
本発明により、電子機器が実装するタッチスクリーンの操作精度を向上する方法を提供することができた。さらに本発明により、電子機器が実装するタッチスクリーンのオブジェクトを小さくする方法を提供することができた。さらに本発明により、そのような方法を採用した電子機器およびコンピュータ・プログラムを提供することにある。
【図面の簡単な説明】
【００２０】
【図１】スマートフォン１０およびタブレット端末２０のタッチスクリーン１１、２１を指でタッチ操作するときの様子を説明する図である。
【図２】指によるタッチ操作においてオフセットが発生する様子を説明する図である。
【図３】タッチスクリーン１１が検出した座標を補正する方法を説明するための図である。
【図４】タッチスクリーン１１が検出した座標を補正する方法を説明するための図である。
【図５】ｘ−ｙ直交座標上のオフセットΔｘ、Δｙから、ヨー角αに応じてＸ−Ｙ直交座標上のターゲット座標を生成する方法を説明する図である。
【図６】スマートフォン１０のハードウェアの構成を説明するための図である。
【図７】座標補正システム２００の機能ブロック図である。
【図８】座標補正システム２００の動作を説明するためのフローチャートである。
【図９】座標補正システム２００の他の動作を説明するためのフローチャートである。
【図１０】座標補正システム２００の他の動作を説明するための図である。
【発明を実施するための形態】
【００２１】
図１は、本実施の形態にかかる携帯式電子機器の一例であるスマートフォン１０およびタブレット端末２０のタッチスクリーン１１、２１を指で操作するときの様子を説明する図である。スマートフォン１０およびタブレット端末２０は、タッチスクリーン１１、２１の周囲を囲む縁枠１５、２５にカメラ・モジュール１３、２３を搭載している。スマートフォン１０には１本の指でタッチ操作をするシングルタッチ操作の様子を例示し、タブレット端末２０には複数の指でタッチ操作をするマルチタッチ操作の様子を例示している。タッチ操作をするタッチスクリーン１１、２１の表面をタッチ面１１ａ、２１ａという。
【００２２】
図２は、タッチ面１１ａに対するタッチ操作に構造的なオフセットが発生する様子を説明するための図である。ユーザはタッチスクリーン１１に表示されている矩形状のアイコン１１１に対して指１５０でタッチ操作をする。ユーザは、タッチスクリーン１１が指１５０とタッチ面が接触する接触領域１０９の中心で座標を検出することを知っているため、アイコン１１１の中心に接触領域１０９の中心が位置するようにタッチ操作をする。ここでアイコン１１１の中心部はユーザが指を位置付ける際の目標となる座標であり、これをターゲット座標１０５ということにする。
【００２３】
しかし、日常的なタッチ操作の経験から、アイコン１１１の面積が小さいときに、アイコン１１１が選択されない場合があることが判っている。非特許文献１の研究では、このときユーザは暗黙のうちに爪１５１の表面の中央部をターゲット座標１０５に位置付けていると指摘している。ユーザがターゲット座標１０５に指を位置付ける際に意識しないで目印にしていると想定した爪１５１または皮膚の表面の所定の位置を視線ターゲット１５５ということにする。このときターゲット座標１０５は視線ターゲット１５５からタッチ面に下ろした垂線上に存在すると想定する。
【００２４】
ただし本発明は、視線ターゲット１５５が爪１５１の中心に存在すると想定する場合だけでなく、視線ターゲット１５５の位置に個人差がある場合でも補正することができる。ここで、タッチスクリーン１１が検出する座標を検出座標１０７ということにする。検出座標１０７は、タッチスクリーン１１の原理として接触領域１０９の幾何学的な重心または中心であるため、検出座標１０７とターゲット座標１０５の間には指の形状および姿勢に起因してオフセットＯＦＳが発生する。
【００２５】
オフセットＯＦＳがアイコン１１１のサイズに対して大きい場合は、アイコン１１１に対するタッチ操作は失敗するか隣接するオブジェクトに誤って行うことになる。視線ターゲット１５５はユーザの意識の中に潜む存在であるが、検出座標１０７からシフトした位置にターゲット座標１０５が発生する原因を作っており、その位置を想定することでオフセットＯＦＳを計算するという側面において本実施の形態の原理を構成する。
【００２６】
図３、図４は、カメラ・モジュール１３が撮影した画像のデータ（画像データ）を使ってタッチスクリーン１１が検出した座標を補正する方法を説明するための図である。図３では矩形状のタッチスクリーン１１の短辺と長辺に沿ってＸ−Ｙ直交座標を定義している。タッチスクリーン１１は、指１５０の接触領域１０９から計算した検出座標１０７をシステムにＸ−Ｙ直交座標で出力する。検出座標１０７は、カメラ・モジュール１３から距離ｄの位置に存在する。距離ｄは後に説明するように、１台のカメラ・モジュール１３が撮影した指の画像データから爪の長さｓ、爪の幅ｎおよび指の高さｈ１などを計算するために利用する。
【００２７】
図３では、指１５０の長さ方向にｙ軸を設定して指のｘ−ｙ直交座標を定義している。指のｙ軸とタッチスクリーン１１のＹ軸が作る角度をヨー角αという。図４は、タッチ操作に関連する指１５０の範囲として、指先から第１関節付近までを示している。図４において、指の断面を楕円形とみなしたときに、その中心を指１５０の長さ方向（ｙ軸方向）に通過するラインを指の軸１６０ということにする。
【００２８】
図４（Ａ）、図４（Ｃ）は指の軸１６０がタッチ面１１ａと平行になるようにタッチ面１１ａ上に指が置かれた状態を真上から視た平面図である。図４（Ａ）は爪１５１の正面を示し、図４（Ｃ）は指１５０が指の軸を１６０中心にして右方向（ロール方向）にわずかに回転した様子を示している。図４（Ａ）において、タッチ面１１ａに対する投影において、爪の底部１５７を通過してタッチ面１１ａに平行なライン１５４と皮膚の両側の表面がそれぞれ交差する位置が形成する長さを指の幅ｗ１と定義する。
【００２９】
タッチ面１１ａに対する投影にいて、指の軸１６０に垂直な方向の爪１５１の長さを爪の幅ｎと定義する。爪の底部１５７における指の幅ｗ１の中心を指の幅の中心１６２といい、爪の幅ｎの中心を爪の幅の中心１６８と定義する。タッチ面１１ａに対する投影において指の幅の中心１６２を通る線と指の軸１６０は一致するとみなし、指の底部１５７において指の幅の中心１６２と爪の幅の中心１６８は一致するとみなす。
【００３０】
タッチ面１１ａに対する投影において、爪の底部１５７を通過してタッチ面１１ａに平行なライン１５４から指１５０の皮膚の先端または爪１５１の先端までの指の軸１６０上での長さを爪の長さｓとする。一例としてタッチ面１１ａに対する投影において、指の軸１６０と爪の長さの中心線１５２が交差する位置に対応する爪１５１の表面を視線ターゲット１５５と想定する。タッチ面１１ａに対する投影において、指の幅の中心１６２を通り指の軸１６０に平行にｙ軸を定義し、指の幅の中心１６２を通ってライン１５４に平行にｘ軸を定義する。ｘ−ｙ直交座標はタッチ面１１ａに平行になる。
【００３１】
図４（Ｃ）では、タッチ面１１ａに対する投影において、爪の底部１５７を通過してタッチ面１１ａに平行なライン１５４と皮膚の両端の表面がそれぞれ交差する位置が形成する長さを指の幅ｗ２と定義する。指の幅ｗ１、ｗ２はいずれもタッチ面１１ａに対する皮膚の投影のなかで爪の底部１５７を通過するライン１５４が形成する幅に相当する。指の形状から指の幅ｗ１は、指の幅ｗ２の最大値に相当する。爪の底部１５７を通過するライン１５４における指の幅ｗ２の中心が位置する皮膚または爪の表面を指の幅の中心１６４ということにする。
【００３２】
本実施の形態における補正量の計算においては、ロール角γの大きさにかかわらず指１５０がロール方向に回転したときに指の幅ｗ２を適用する。図４（Ａ）に対応させてタッチ面１１ａに対する投影において指の軸１６０と爪の長さの中心線１５２が交差する位置に対応する爪１５１または皮膚の表面を、視線ターゲット１５５と想定する。タッチ面１１ａに対する投影において、指の幅の中心１６４を通り指の軸１６０に平行にｙ軸を定義し、指の幅の中心１６４を通りライン１５４に平行にｘ軸を定義する。この場合もｘ−ｙ直交座標はタッチ面１１ａに平行になる。
【００３３】
図４（Ｂ）は、ロール方向に回転していない指１５０をｘ軸方向から視た側面図である。指の幅の中心１６２を通過して指の軸１６０に平行に爪１５１の表面を沿うライン１５６はタッチ面１１ａに対してピッチ方向に傾斜している。ライン１５６とタッチ面１１ａが形成する角度をピッチ角βという。なお、ライン１５６と指の軸１６０は平行として扱うことができるため、ピッチ角βをタッチ面１１ａと指の軸１６０との間の角度で定義することもできる。さらにピッチ角βは、タッチ面１１ａとそれに対向する指１５０の裏側の皮膚との間の角度で定義してもよい。
【００３４】
ここで図４（Ｂ）において、視線ターゲット１５５は図４（Ａ）と同様に、タッチ面１１ａに対する投影において指の軸１６０と爪の長さの中心線１５２が交差する位置に対応する爪１５１の表面に想定する。ただし、視線ターゲット１５５は、ライン１５６上で指の底部１５７より先端側の爪１５１の表面に想定してもよい。また、指の幅の中心１６２からタッチ面１１ａに下ろした垂線上に検出座標１０７が存在すると想定する。このとき、視線ターゲット１５５の真下にあるターゲット座標１０５と、想定した検出座標１０７の間にはｙ軸方向のオフセットΔｙが発生している。オフセットΔｙは、ピッチ角βと爪の長さｓから、式（１）で計算することができる。
Δｙ＝（ｓ／２）×ｃｏｓβ    （１）
【００３５】
図４（Ｄ）は、図４（Ｃ）のｘ軸を含みタッチ面１１ａに垂直な平面で指１５０を切断したときの断面を指先から視た断面図である。このとき、爪の中心１６８は、図４（Ａ）のタッチ面１１ａに対する鉛直方向からロール角γだけ回転している。このとき指１５０は断面が完全な円形ではないため、検出座標１０７がターゲット座標１０５からｘ軸方向にシフトする。図４（Ｂ）と同様に視線ターゲット１５５の真下にターゲット座標１０５を設定し、ロール角γだけ回転した位置での爪の幅の中心１６８の真下に検出座標１０７を想定する。ただし、視線ターゲット１５５は、タッチ面１１ａに対する投影において、指の幅の中心１６４を通過しかつ指の底部１５７より先端側の爪１５１の表面または皮膚に想定してもよい。このとき検出座標１０７とターゲット座標１０５の間にはｘ軸方向のオフセットΔｘが発生している。
【００３６】
オフセットΔｘは、ロール角γとロール状態でのタッチ面１１ａに対する指の高さｈ１から式（２）で計算することができる。
Δｘ＝（ｈ１／２）×ｔａｎγ    （２）
オフセットΔｘの方向はロール方向に一致するが、指の可動範囲の特質から通常はユーザからみて右手の指は右回転で左手の指は左回転になる。
【００３７】
指１５０がピッチ方向に傾斜し、かつ、ロール方向に回転しているときは、タッチ面１１ａに対する投影において、指の軸１６０と爪の長さの中心線１５２が交差する位置に対応する爪１５１または皮膚の表面に視線ターゲット１５５を設定し、画像から抽出したピッチ角βとロール角γからオフセットΔｙ、Δｘをそれぞれ計算することができる。オフセットΔｘ、Δｙは、ｘ−ｙ直交座標上の値であるが、タッチスクリーン１１はＸ−Ｙ直交座標上の値を出力する必要がある。
【００３８】
指１５０のｙ軸がタッチスクリーン１１のＹ軸に対してヨー角αだけ傾斜しているときは、図５に示すように式（３）、（４）でオフセットΔｘ、ΔｙをＸ−Ｙ直交座標上のターゲット座標（Ｘ１，Ｙ１）に投影して検出座標（Ｘ０，Ｙ０）を補正することができる。
Ｘ１＝Ｘ０−Δｘ×ｃｏｓα      （３）
Ｙ１＝Ｙ０＋Δｙ×ｃｏｓα      （４）
【００３９】
図６は、スマートフォン１０のハードウェアの構成を説明するための図である。スマートフォン１０は、ＣＰＵ５１、システム・メモリ５３、Ｉ／Ｏインターフェース５５、ＳＳＤ５７、タッチスクリーン１１、無線モジュール５９およびカメラ・モジュール１３などの要素を含む。スマートフォン１０を構成する多くのハードウェアは周知であるため、本発明の理解に必要な範囲で説明する。ＳＳＤ５７は、座標補正システム２００（図７）の主要な要素を構成するソフトウェアを格納する。
【００４０】
タッチスクリーン１１は、液晶や有機ＥＬなどのディスプレイと透明なタッチパネルを積層した構造で、ディスプレイに表示したオブジェクトに対して指でタッチ操作をするとタッチパネルが指の座標を検出して検出座標１０７を出力する。本発明は、静電容量型、ＦＴＩＲ型または抵抗膜型といったような、指１５０が接触した接触領域１０９の中心または重心の座標を出力するタイプのタッチスクリーンに適用することができる。このようなタイプのタッチパネルを含むタッチスクリーンは、図２で説明したようにターゲット座標１０５と検出座標１０７との間に構造的なオフセットを発生させる。
【００４１】
カメラ・モジュール１３は、ＣＭＯＳまたはＣＣＤなどのイメージ・センサおよびイメージ・シグナル・プロセッサなどを含んでいる。カメラ・モジュール１３は、魚眼レンズまたは超広角レンズを搭載しており、水平方向が３６０度で垂直方向が１８０度の半球状の被写体を撮影することができる。本実施の形態におけるカメラ・モジュール１３の台数は１台でよい。したがって、カメラ・モジュール１３は、ユーザの顔や風景を撮影するためにスマートフォン１０が標準的に搭載するカメラ・モジュールと共用することができる。
【００４２】
スマートフォン１０は縁枠１５とタッチ面１１ａが同一平面上に存在するいわゆるフルフラット・ディスプレイ方式を採用している。多くのタブレット端末もフルフラット・ディスプレイ方式を採用する。カメラ・モジュール１３は魚眼レンズまたは超広角レンズを搭載しているためフルフラット・ディスプレイの縁枠１５に実装してもタッチ操作をするユーザの顔と指を同時に撮影することができる。縁枠にレンズの軸がタッチ操作をする指に向くようにカメラ・モジュールを実装できる場合は、標準レンズ・カメラまたは広角レンズ・カメラを採用することもできる。
【００４３】
図７は座標補正システム２００の構成を説明するための機能ブロック図である。画像データ取得部２０１、補正量演算部２０３、登録部２０４、座標取得部２０５、アプリケーション実行部２０７および画像データ出力部２０９は、図６に示したＣＰＵ５１、システム・メモリ５３などのハードウェアとＳＳＤ５７が格納するソフトウェアの協働により構成している。カメラ・モジュール１３は動作を開始すると、タッチ操作をしている指１５０およびユーザの顔の画像を含んだ画像データを一例として３０ｆｐｓのフレーム・レートで画像データ取得部２０１に転送する。タッチスクリーン１３は、所定のサンプリング周期でタッチ面１１ａに指１５０が接触している間、接触領域１０９から検出座標１０７を生成して座標取得部２０５に出力する。
【００４４】
画像データ取得部２０１は、座標取得部２０５からタッチスクリーン１１が生成した検出座標１０７を受け取ったときにカメラ・モジュール１３に画像データの転送開始の指示をする。また、検出座標１０７を所定の時間だけ受け取らないときにカメラ・モジュール１３に画像データの転送終了の指示をする。画像データ取得部２０１は、カメラ・モジュール１３から受け取った画像データと座標取得部２０５から受け取った検出座標１０７を組にした補正データを補正量演算部２０３に送る。
【００４５】
補正量演算部２０３は、オブジェクト認識機能および必要に応じて顔認識機能を備えている。補正量演算部２０３は、受け取った補正データから図３に示した距離ｄを計算する。補正量演算部２０３は距離ｄを計算し、オブジェクト認識機能を使って、指１５０のヨー角α、ピッチ角β、ロール角γ、爪の長さｓ、爪の幅ｎ、タッチ操作をしたときの指の幅ｗ１、ｗ２、および指の高さｈ１などを計算する。補正量演算部２０３は、ユーザの顔を認識して現在タッチ操作をしているユーザの識別子および指の識別子とともに、タッチ操作をしている指の姿勢で変化しない爪の長さｓ、爪の幅ｎを登録部２０４に登録する。
【００４６】
補正量演算部２０３は、新しいユーザがタッチ操作をするたびに爪の長さｓ、爪の幅ｎを登録部２０４に登録する。補正量演算部２０３は、式（１）〜（４）を使ってオフセットΔｘ、Δｙを計算し、さらにターゲット座標１０５を計算して座標取得部２０５が画像データ取得部２０１に検出座標１０７を送る際に付加したタイムスタンプとともに座標取得部２０５に送る。
【００４７】
他の例では、補正量演算部２０３は後に説明する式（５）、（６）を保有し、アプリケーション実行部２０７からの指示を受けて補正に必要なデータの登録処理をする。座標取得部２０５は、タッチスクリーン１１から所定のサンプリング周期で生成された検出座標１０７を受け取るたびにタイムスタンプを付加して画像データ取得部２０１に送る。タイムスタンプはシステムが保持している時刻情報で、座標補正システム２００の各要素が共有できるようになっている。
【００４８】
座標取得部２０５は、補正量演算部２０３から検出座標１０７を関連付けたタイムスタンプに対応するターゲット座標１０５を受け取ったときは、当該ターゲット座標１０５をアプリケーション実行部２０７に送る。座標取得部２０５は、補正量演算部２０３から検出座標１０７を関連付けたタイムスタンプに対応するターゲット座標１０５を受け取らないときは当該タイムスタンプを関連付けた検出座標１０７をアプリケーション実行部２０７に送る。
【００４９】
アプリケーション実行部２０７は、タッチスクリーン１１にソフトウェア・キーボードを表示する文書入力プログラム、ハイパーリンクが埋め込まれた画像を表示するＷｅｂブラウザ、ホーム画面にアイコンを表示するＯＳのインターフェース・プログラムなどを含む。アプリケーション実行部２０７はさらに、補正量演算部２０３を通じて登録部２０４に補正に必要なデータの登録をする登録プログラムを含む。
【００５０】
アプリケーション実行部２０７のプログラムは、それぞれ自らがタッチスクリーン１１に表示するオブジェクトの座標を認識している。アプリケーション実行部２０７は、画像データ出力部２０９にタッチスクリーン１１に表示するための画像データを出力する。アプリケーション実行部２０７は、自らが表示したタッチスクリーン１１のオブジェクトに対して行われたタッチ操作に対応する検出座標１０７またはターゲット座標１０５を座標取得部２０５から受け取ってそれに応じた動作をする。画像データ出力部２０９は、アプリケーション実行部２０７から受け取った画像データを表示形式のデータに変換してタッチスクリーン１１に出力する。
【００５１】
つぎに、座標補正システム２００の動作を図８のフローチャートを参照して説明する。ブロック３０１では、アプリケーション実行部２０７がタッチスクリーン１１にタッチ操作の対象となるオブジェクトを含む画像を表示している。アプリケーション実行部２０７は事前に爪１５１の表面をカメラ・モジュール１３に向けるようにユーザに促して爪１５１を正面から撮影し、高い精度で測定した爪の長さｓおよび爪の幅ｎを登録部２０４に登録しておいてもよい。
【００５２】
ブロック３０３で指１５０がタッチ面１１ａに接触してタッチ操作が開始される。タッチ操作は、タッチした位置で指１５０をリリースするタップ操作と、タッチした状態を維持しながら指を移動させるスライド操作を含む。座標補正システム２００はスライド操作のときは、その軌跡に沿ってタッチスクリーン１１が生成した検出座標１０７を補正することができる。指１５０の接触を検出したタッチスクリーン１１はブロック３０５で、所定のサンプリング周期で検出座標１０７の出力を開始する。検出座標１０７を受け取るたびに座標取得部２０５は、受け取った検出座標１０７にタイムスタンプを付加して画像データ取得部２０１に送る。検出座標１０７を受け取った画像データ取得部２０１はブロック３０７でカメラ・モジュール１３に画像データの転送を指示する。
【００５３】
指示を受けたカメラ・モジュール１３は所定のフレーム・レートでユーザの顔と指１５０を撮影した画像データの転送を開始する。カメラ・モジュール１３のフレーム・レートとタッチスクリーン１１の検出座標１０７の転送周期は同期している必要はないが、画像データ取得部２０１はブロック３０９で、検出座標１０７のタイムスタンプに最も近い時刻で取得した画像データと当該検出座標１０７を組にした補正データをタイムスタンプとともに補正量演算部２０３に送る。補正データを受け取った補正量演算部２０３はブロック３１１で、顔認識機能を使って現在タッチ操作をしているユーザの指１５０の爪の長さｓおよび爪の幅ｎなどの爪のサイズを登録部２０４が登録しているか否かを判断する。スマートフォン１０が同一のユーザだけで使用する場合はこの手順は省略してもよい。
【００５４】
登録しているときはブロック３１７に移行し、登録していないときはブロック３１３に移行する。補正量演算部２０３はブロック３１３で検出座標１０７から計算した距離ｄとオブジェクト認識機能を使って、画像データから爪のサイズの計算が可能か否かを判断する。補正量演算部２０３はピッチ角βが小さい状態の指１５０をｙ軸方向から撮影している画像からは、爪の長さｓを正確に計算することができない。また、ｘ軸方向から撮影している画像からは、爪の幅ｎを正確に計算することができない。
【００５５】
爪のサイズを計算できない場合はブロック３５１に移行する。座標取得部２０５はブロック３５１で、補正量演算部２０３から検出座標１０７に関連付けたタイムスタンプに対応するターゲット座標１０５を受け取らないときはブロック３５１で検出座標１０７をアプリケーション実行部２０７に送る。この場合は、本発明の効果が得られない状態でタッチ操作が処理されるが、補正がされないことによる操作の中断は発生しない。爪のサイズの計算ができる場合は、ブロック３１５で補正量演算部２０３は登録部２０４に計算した爪のサイズを登録してブロック３１７に移行する。
【００５６】
補正量演算部２０３はブロック３１７でオブジェクト認識機能を使って、画像データからピッチ角βの計算が可能か否かを判断する。カメラ・モジュール１３がｙ軸方向から指１５０を撮影している場合はピッチ角βを正確に計算することができない場合がある。所定の精度でピッチ角βの計算が可能な場合はブロック３１９に移行し、計算できない場合はブロック３５３に移行する。座標取得部２０５はブロック３５３で、所定の検出座標１０７に関連付けたタイムスタンプに対応するターゲット座標１０５を受け取らないときは検出座標１０７をアプリケーション実行部２０７に送る
【００５７】
補正量演算部２０３はブロック３１９でオブジェクト認識機能を使って、画像データからロール角γの計算が可能か否かを判断する。カメラ・モジュール１３がｘ軸方向から指１５０を撮影している場合はロール角γを正確に計算することができない場合がある。所定の精度でロール角γの計算が可能な場合はブロック３２１に移行し、計算できない場合はブロック３５３に移行する。
【００５８】
補正量演算部２０３はブロック３２１でオブジェクト認識機能を使って指の高さｈ１を計算する。補正量演算部２０３はブロック３２３で式（１）、（２）に爪の長さｓ、指の高さｈ１、ピッチ角β、およびロール角γを代入してオフセットΔｘ、Δｙを計算する。補正量演算部２０３はさらに、画像データから計算したヨー角αを式（３）、（４）に代入してターゲット座標１０５を計算する。
【００５９】
補正量演算部２０３はブロック３２５でタイムスタンプを付加したターゲット座標１０５を座標取得部２０５に送る。座標取得部２０５は、すでに取得していた同一のタイムスタンプの検出座標１０７に代えて、ターゲット座標１０５をアプリケーション実行部２０７に送る。スライド操作の場合はブロック３２７からブロック３０５に戻ってタッチスクリーン１３が検出座標１０７を出力する間、ブロック３０５からの手順を繰り返す。図１（Ｂ）に示したようにマルチタッチ操作を行う場合は、上記の手順で各指についてターゲット座標１０５を計算することができる。
【００６０】
つぎに座標補正システム２００が検出座標１０７を補正する他の方法を説明する。図８の手順では、視線ターゲット１５５を爪の中心に設定し、さらに検出座標１０７の位置を図４（Ｂ）、（Ｃ）に示すように指の特徴部に関係づけることで多数のユーザに平均的に満足のいくターゲット座標１０５を生成することができる。しかし、ユーザの指の形状による検出座標１０７と指の特徴部との関係、押圧力の強さによる指の変形の度合い、および視線ターゲット１５５の位置などはユーザごとに異なるため必ずしも満足する結果を得られないユーザまたはより精度の高いターゲット座標１０５を求めるユーザも存在する。
【００６１】
式（１）、（２）で計算したオフセットΔｙ、Δｘに誤差が生じる原因は、画像データから計算したピッチ角βおよびロール角γの精度に加えて、爪の長さｓおよび指の高さｈ１の計算が当該ユーザにとって適切でないことが挙げられる。図９は、画像データから爪の長さｓおよび指の高さｈ１を計算したり、視線ターゲット１５５の位置および検出座標１０７と指の特徴的部位の関係を想定したりしないで補正する座標補正システム２００の動作を説明するフローチャートである。
【００６２】
ここでは、アプリケーション実行部２０７を構成する登録プログラムが、式（５）、式（６）における係数ｐ、ｑを、ユーザが行うキャリブレーションのためのタッチ操作から計算した値で推定する。
Δｙ＝ｐ×ｃｏｓβ    （５）
Δｘ＝ｑ×ｔａｎγ    （６）
【００６３】
ブロック４０１でアプリケーション実行部２０７の登録プログラムが動作して補正量演算部２０３と座標取得部２０５に登録動作をするように指示する。アプリケーション実行部２０７はブロック４０３で、タッチスクリーン１１の所定のターゲット座標１０５に図１０に示すクロス・ライン５０１ａを表示し、さらに所定の指でクロス・ライン５０１ａをターゲットとするタッチ操作をすることを示すプロンプトを表示する。
【００６４】
タッチ操作のときの指の押圧力により係数ｐ、ｑは変化するためプロンプトには、ユーザが通常操作をするときの力でタッチ操作をすることを促すメッセージを含むようにすることが望ましい。ブロック４０５でユーザがクロス・ライン５０１ａをターゲットとするタッチ操作をする。このときユーザは図４に示した視線ターゲット１５５を目印にしないかもしれないが、そのようなユーザにとって図９の手順は有効である。また、指の特徴的な部位と検出座標１０７の関係が、図４（Ｂ）、（Ｄ）で示した関係とは異なるユーザにとっても図９の手順は有効である。
【００６５】
ブロック４０７でアプリケーション実行部２０７は、クロス・ライン５０１ａの座標であるターゲット座標１０５を補正量演算部２０３に転送する。ブロック４０９でタッチスクリーン１１がクロス・ライン５０１ａをターゲットとするタッチ操作に応じて検出座標１０７を座標取得部２０５に送る。座標取得部２０５が検出座標１０７にタイムスタンプを付加して画像データ取得部２０１に送ると、カメラ・モジュール１３が画像データの転送を開始する。
【００６６】
ブロック４１１で補正量演算部２０３は、画像データからヨー角α、ピッチ角β、ロール角γを計算し、検出座標１０７とターゲット座標１０５からオフセットΔｘ、Δｙを計算する。ブロック４１３で補正量演算部２０３はピッチ角β、ロール角γ、オフセットΔｘ、Δｙを式（５）、（６）に代入して係数ｐ、ｑを計算する。つづいて補正量演算部２０３は指の識別子とともに係数ｐ、ｑを登録部２０４に登録する。ブロック４１５で補正量演算部２０３から登録の終了通知を受け取ったアプリケーション実行部２０７は、ブロック４０３に戻ってクロス・ライン５０１ｂを表示して同じ手順を繰り返す。
【００６７】
すべてのクロス・ライン５０１ａ〜５０１ｆに対する登録が終了すると、ブロック４１７でアプリケーション実行部２０７はブロック４０３に戻って次の指を示すプロンプトを表示して同じ手順を繰り返す。すべての指の登録が終了するとアプリケーション実行部２０７はブロック４１９で、指ごとの６個の係数ｐ、ｑの平均値または中央値を計算してユーザの顔を示す識別子および指の識別子とともに登録部２０４に登録する。ブロック４２１で登録処理が終了すると、補正量演算部２０３はそれ以降の各検出座標１０７について、画像データから計算した指の姿勢を示すピッチ角β、ロール角γと、登録部２０４に登録した係数ｐ、ｑの平均値または中央値を式（５）、（６）に代入して、オフセットΔｘ、Δｙを計算することができる。
【００６８】
補正量演算部２０３が図９の手順で係数ｐ、ｑを登録して式（５）、（６）を使用する場合は、図８のブロック３１１〜３１５、３２１の手順を省略することができる。式（５）、（６）では、視線ターゲット１５５の位置の想定および検出座標１０７と指の特徴的部位との関係を想定する必要がない。式（５）、（６）では式（１）、（２）を使うときに想定した２つの関係は表面に出てこないが、図９の登録手順において計算した係数ｐ、ｑがこれらの想定を含んでいる。
【００６９】
これまで本発明について図面に示した特定の実施の形態をもって説明してきたが、本発明は図面に示した実施の形態に限定されるものではなく、本発明の効果を奏する限り、これまで知られたいかなる構成であっても採用することができることはいうまでもないことである。
【符号の説明】
【００７０】
１０  スマートフォン
１１  タッチスクリーン
１１ａ  タッチ面
１０５  ターゲット座標
１０７  検出座標
１０９  接触領域
１１１  アイコン
１５０  指
１５１  爪
１５２  爪の長さの中心線
１５４  爪の底部を通過してタッチ面に平行なライン
１５５  視線ターゲット
１５７  爪の底部
１６０  指の軸
１６２  指の幅の中心
１６４  指の幅の中心
１６８  爪の幅の中心
α  ヨー角
β  ピッチ角
γ  ロール角
ｗ１、ｗ２  指の幅
ｓ  爪の長さ
ｎ  爪の幅
【図１】
0005947999.tif 000002
【図２】
0005947999.tif 000003
【図３】
0005947999.tif 000004
【図４】
0005947999.tif 000005
【図５】
0005947999.tif 000006
【図６】
0005947999.tif 000007
【図７】
0005947999.tif 000008
【図８】
0005947999.tif 000009
【図９】
0005947999.tif 000010
【図１０】
0005947999.tif 000011