説明

情報処理装置及び情報処理装置の制御方法

【課題】ディスプレイパネルに表示された目標タッチマークとタッチパネルでの実際のタッチ位置との間のズレを校正する際に、ユーザによるタッチミスによる影響を軽減する。
【解決手段】表示範囲中央の基準座標から距離が等しい複数の座標にそれぞれ目標タッチマークを表示させ、目標タッチマークに対するタッチが検知された座標を所定の変換係数を用いてディスプレイパネルにおける座標に変換する。複数の目標タッチマークを表示した座標と変換手段で変換した座標との差分を算出し、算出した差分から表示範囲中央を基準とした平均値を算出し、該平均値を用いて基準座標と変換した座標との間のそれぞれの距離が等しくなるように、変換手段で変換した座標を補正する。補正した座標と複数の目標タッチマークを表示した座標とのズレを補正するための新たな変換係数を算出し、以降のタッチパネルのタッチ位置検知で用いる変換係数として更新する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ユーザからの入力操作を受け付ける情報処理装置及び情報処理装置の制御方法に関する。
【背景技術】
【0002】
ユーザからの入力操作を受け付ける情報処理装置として、タッチパネルとディスプレイパネル(例えば、LCDパネル)とを重ね合わせて構成される抵抗膜方式が採用されることがある。一般に、タッチパネルとディスプレイパネルとの整合性を得るために、タッチパネルでの座標値からディスプレイパネルでの座標値への座標変換処理を行う。また、この座標変換処理に用いる係数を校正する処理(以下、キャリブレーションとも言う)も一般的に行われている。キャリブレーションの手法として、通常操作時に、ユーザに入力を促すアイコンをディスプレイパネルに表示し、そのアイコンをタッチパネルを介してユーザにタッチさせることで、タッチパネルでの座標値とディスプレイパネルでの座標値との関係からキャリブレーション係数を算出するものがある(例えば、特許文献1)。
【先行技術文献】
【特許文献】
【0003】
【特許文献1】特許第3959163号公報
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、従来の技術によれば、ユーザがアイコン中心から大きくずれた位置を誤ってタッチしてしまった場合であっても、アイコン中心からのズレ量に基づいて、キャリブレーション係数が更新されてしまう場合がある。このため、キャリブレーション係数の更新後にアイコン中心をタッチしているにも関わらず動作しなかったり、ユーザがタッチしたアイコンに隣接するアイコンが動作してしまったりするといった不具合を生じる可能性がある。
【0005】
本発明は、上記課題に鑑みてなされたものであり、ディスプレイパネルに表示された目標タッチマークとタッチパネルでの実際のタッチ位置との間のズレを校正する際に、ユーザによるタッチミスによる影響を軽減するものである。
【課題を解決するための手段】
【0006】
上記課題を解決するため、本発明に係る情報処理装置は、ディスプレイパネルに表示した複数の目標タッチマークをユーザにタッチパネルを介してタッチさせることにより、前記複数の目標タッチマークを表示した座標と前記タッチパネルでタッチが検知された座標とのズレを補正するための変換係数を更新する情報処理装置であって、ディスプレイパネルにおける、表示範囲の中央を基準とする基準座標からの距離が等しい複数の座標のそれぞれに目標タッチマークを表示させる表示制御手段と、前記目標タッチマークに対してのタッチが検知された座標を、予め定めた変換係数を用いて、前記ディスプレイパネルにおける座標に変換する変換手段と、前記複数の目標タッチマークを表示した座標と、前記変換手段で変換した座標との差分を算出する算出手段と、前記算出手段で算出した差分から前記表示範囲の中央を基準とした平均値を算出し、該平均値を用いて、前記基準座標と前記変換手段で変換した座標との間のそれぞれの距離が等しくなるように、前記変換手段で変換した座標を補正する補正手段と、前記補正手段で補正した座標と前記複数の目標タッチマークを表示した座標とのズレを補正するための新たな変換係数を算出し、該新たな変換係数を以降の前記タッチパネルのタッチ位置検知で用いる変換係数として更新する更新手段と、を備える。
【発明の効果】
【0007】
本発明によれば、ディスプレイパネルに表示された目標タッチマークとタッチパネルでの実際のタッチ位置との間のズレを校正する際に、ユーザによるタッチミスによる影響を軽減することができる。
【図面の簡単な説明】
【0008】
【図1】一実施形態に係る情報処理装置100の機能的構成を示すブロック図。
【図2】タッチパネル120とディスプレイパネル130との位置関係を示す図。
【図3】情報処理装置100におけるキャリブレーション処理の処理手順を示す図。
【図4】全ての差分の平均値で第2の位置情報を補正した状態を示す模式図。
【図5】最大の差分を除いた平均値で第2の位置情報を補正した状態を示す模式図。
【発明を実施するための形態】
【0009】
以下、図面を参照して本発明を実施するための形態について詳細に説明する。図1は、本発明の一実施形態に係る情報処理装置100の機能的構成を示すブロック図である。本発明に係る情報処理装置100は、ディスプレイパネル130の予め定めた座標に複数の目標タッチマークを表示し、当該表示された複数の目標タッチマークをユーザにタッチパネル120を介してタッチさせることにより、複数の目標タッチマークを表示した座標とタッチパネル120でタッチが検知された座標とのズレを補正するための変換係数を更新する装置である。情報処理装置100は、本実施形態では、例えば、筺体背面部にタッチパネル式液晶ディスプレイを備えたデジタルカメラに適用することができる。
【0010】
情報処理装置100は、CPU110、タッチパネル120、ディスプレイパネル130(例えば、LCDパネル)、メモリ140を備える。タッチパネル120とディスプレイパネル130は、図2に示すように重ね合わせて構成されている。CPU110には、タッチパネル120、ディスプレイパネル130、メモリ140が接続される。CPU110は、タッチパネル120を介してユーザからの指示を受け付け、後述する各種プログラムを実行する。メモリ140は、CPU110のワークエリアとして使用される。また、記録媒体150には後述する各種プログラムが記録されている。
【0011】
CPU110は、タッチが検知された座標を、予め定めた変換係数を用いて、ディスプレイパネル130における座標に変換する変換部111と、複数の目標タッチマークを表示した座標と、対応する変換部111で変換した座標とのそれぞれの差分を算出する算出部112と、算出部112で算出した差分のうち、予め定めた除外条件を満たす差分を除く差分の平均値を用いて、変換部111で変換した座標を補正する補正部113と、補正部113で補正した座標と複数の目標タッチマークを表示した座標とのズレを補正するための新たな変換係数を算出し、該新たな変換係数を以降のタッチパネル120のタッチ位置検知で用いる変換係数として更新する更新部114として機能する。
【0012】
図3は、情報処理装置100におけるキャリブレーション処理の処理手順を示す図である。このキャリブレーション処理は、CPU110が記録媒体150に記録されているプログラムをメモリ140に読み出して実行することによって実現される。S301では、CPU110(表示制御手段)は、キャリブレーションを開始すると、ディスプレイパネル130に複数の目標タッチマークを表示するよう制御する。本実施例では、n=1〜4の4つの目標タッチマークを、表示範囲の中央を基準座標(原点0)とするXY座標における、(X,Y)に表示させる。(X,Y)は、全て原点0から等距離であるものとする。S302では、ユーザにより複数の目標タッチマークのうちの1つがタッチされると、CPU110は、タッチ位置の座標値を含む情報(第1の位置情報)を検出する。S303では、CPU110は、検出された第1の位置情報をメモリ140に保存する。S304では、CPU110は、複数の目標タッチマークのすべてにおける第1の位置情報を取得したか否かを判定する。第1の位置情報を取得していない目標タッチマークが存在する場合にはS301に戻り、CPU110が全ての目標タッチマークについて第1の位置情報を取得した場合には、S305へ進む。S305では、CPU110は、予めメモリ140に保存された第1の変換係数(本実施例によるキャリブレーションを行うまえの変換係数)に基づいて、S303でメモリ140に保存された、複数の目標タッチマークに対応する第1の位置情報(x1n,y1n)から第2の位置情報(X2n,Y2n)を算出する。
【0013】
ここで、第1の変換係数a、b、c、d、e、f、g、hとは、例えば、出荷時に工具等を用いて正確に第1の位置情報を求めて、目標タッチマークを表示した座標との差から算出した変換係数であり、第2の位置情報を求める演算式は次式のようになる。
2n=a1n+b1n+c1n1n+d
2n=e1n+f1n+g1n1n+h
S306では、第1の位置情報と目標タッチマークを表示した座標(X,Y)との差分を算出する。具体的には、図4(a)で示すように、ディスプレイパネル130の表示領域中央を原点0として、目標タッチマークを表示した座標(X,Y)と第2の位置情報との差分(Δx,Δy)をX方向、Y方向(X成分,Y成分)それぞれで算出する。(Δx,Δy)=(X2n−X,Y2n−Y)である。つまり、次式が成り立つ。
2n=Δx+X
2n=Δy+Y
各nについて列挙すると以下のようになる。
n=1:(Δx,Δy)=(X21−X,Y21−Y
n=2:(Δx,Δy)=(X22−X,Y22−Y
n=3:(Δx,Δy)=(X23−X,Y23−Y
n=4:(Δx,Δy)=(X24−X,Y24−Y
S307では、CPU110が、差分Δ1〜Δ4のバラツキを算出する。具体的には、まず、差分Δ1〜Δ4のX方向の平均値ΔxAve(X平均値)、Y方向の平均値ΔyAve(Y平均値)を算出する。
ΔxAve=(−Δx−Δx+Δx+Δx)/4
ΔyAve=(Δy−Δy−Δy+Δy)/4
なお、ここで−Δx、−Δxとしているのは、n=1、n=2の領域がx<0の領域であるためである。このようにすることで、X2nが、x=0(原点のx座標)から見て目標タッチマークよりも近づく方向であるか、遠ざかる方向であるかを加味した平均値を算出することができる。すなわち、表示範囲の中央を基準とした平均値を求めている。ΔxAve<0であれば、端子間抵抗の変化によって、タッチの検出位置がx方向に縮む方向にずれたとみなすことができる。逆に、ΔxAve>0であれば、端子間抵抗の変化によって、タッチの検出方向がx方向に拡大する方向にずれたとみなすことができる。同様に、−Δy、−Δyとしているのは、n=2、n=3の領域がy<0の領域であるためであり、y方向に縮小する方向なのか、拡大する方向なのかの方向を加味した平均値を算出するためである。すなわち、表示範囲の中央を基準とした平均値を求めている。ΔyAve<0であれば、端子間抵抗の変化によって、タッチの検出位置がy方向に縮む方向にずれたとみなすことができる。逆にΔyAve>0であれば、端子間抵抗の変化によって、タッチの検出方向がy方向に拡大する方向にずれたとみなすことができる。差分Δ1〜Δ4のバラツキは、各目標タッチマーク(X,Y)から平均値ΔxAve,ΔyAveだけズラした点(xAven,yAven)から最も乖離する(X2n,X2n)と、その対応する頂点との距離とする。各目標タッチマークから平均値ΔxAve、ΔyAveだけズラした点は、原点から見て、平均値ΔxAve、ΔyAveが拡大方向なのか縮小方向なのかを加味した方向にズラした点である。すなわち、各nにおける(xAven,yAven)は以下の通りである。
n=1:(xAve1,yAve1)=(X−ΔxAve,Y+ΔyAve
n=2:(xAve2,yAve2)=(X−ΔxAve,Y−ΔyAve
n=3:(xAve3,yAve3)=(X+ΔxAve,Y−ΔyAve
n=4:(xAve4,yAve4)=(X+ΔxAve,Y+ΔyAve
この(xAven,yAven)から最も乖離する(X2n,y2n)は、以下の式の解で最大値を得るnにおける(X2n,X2n)である。また、差分Δ1〜Δ4のバラツキは、以下の式の解のうち、最大値のものである。
σxy=√[(X2n−xAven+(Y2−yAven
すなわち、各nにおけるσxyは以下の通りである。
n=1:σxy=√[(X21−xAve1+(Y21−yAve1
=√[((Δx+X)−(X−ΔxAve))+((Δy+Y)−(Y+ΔyAve))
=√[(Δx−(−ΔxAve))+(Δy−(ΔyAve))
n=2:σxy=√[(X22−xAve2+(Y22−yAve2
=√[((Δx+X)−(X−ΔxAve))+((Δy+Y)−(Y−ΔyAve))
=√[(Δx−(−ΔxAve))+(Δy−(−ΔyAve))
n=3:σxy=√[(X23−xAve3+(Y23−yAve3
=√[((Δx+X)−(X+ΔxAve))+((Δy+Y)−(Y−ΔyAve))
=√[(Δx−(ΔxAve))+(Δy−(−ΔyAve))
n=4:σxy=√[(X24−xAve4+(Y24−yAve4
=√[((Δx+X)−(X+ΔxAve))+((Δy+Y)−(Y+ΔyAve))
=√[(Δx−ΔxAve+(Δy−ΔyAve
S308では、CPU110が、算出したバラツキσxy(σxyのうち最大のもの)が予め定めた閾値以下であるか否かを判定する。バラツキが閾値以下である場合にはS309に進み、閾値を超える場合にはS310に進む。S309(バラツキが閾値以下である場合)では、図4(a)で示すように、4つの目標タッチマークとタッチされたことによって取得した(X2n,Y2n)とのすべての差分Δ1〜Δ4の拡大縮小方向を加味したX方向の平均値σx1234、Y方向の平均値σy1234を算出する。
σx1234=(−Δx−Δx+Δx+Δx)/4
σy1234=(Δy−Δy−Δy+Δy)/4
なお、σx1234は、ΔxAveと同じ値であり、σy1234は、ΔyAveと同じ値であるので、ここでは算出せずに、S307で算出した値を流用しても良い。ここで−Δx、−Δxとしている理由は、ΔxAveの算出の際と同様の理由であり、表示範囲の中央を基準とした平均値を求めるためである。また、−Δy、−Δyとしている理由も、ΔyAveの算出の際と同様の理由であり、表示範囲の中央を基準とした平均値を求めるためである。
【0014】
次に、CPU110が、図4(b)で示すように、差分Δx〜Δxを算出したσx1234、Δy〜Δyを算出したσy1234に置き換えて第3の位置情報1〜4を算出する。ここで、第3の位置情報(x3n,y3n)は次式を用いて算出する。
n=1:(x31,y31)=(X−σx1234,Y+σy1234
n=2:(x32,y32)=(X−σx1234,Y−σy1234
n=3:(x33,y33)=(X+σx1234,Y−σy1234
n=4:(x34,y34)=(X+σx1234,Y+σy1234
目標タッチ位置が図4(b)に示すように矩形の頂点を形成する位置に表示されるものであれば、この第3の位置情報1〜4は図4(b)に示すように歪みのない矩形の頂点を形成する位置となる。この(x3n,y3n)は、n=1〜4においていずれも表示領域の中央からの距離が等しい。ユーザが正しく見た目の目標タッチ位置をタッチした場合、経年劣化や温度変化による検出位置のズレによって、検出される第2の位置情報の座標位置と目標タッチマークの表示座標にズレが生じることがある。しかし、後述するように、経年劣化や温度変化による検出位置のズレは拡大または縮小する方向に均等にずれるはずであるとみなして、第2の位置情報を表示領域の中央からの距離が等しい第3の位置情報に補正してから、S311以降での校正(キャリブレーション)を行う。
【0015】
一方、S310(バラツキσxyが閾値よりも大きい場合)では、σxyが閾値よりも大きいnについての差分を除いた差分の平均値を算出する。閾値よりも大きい差分が複数ある場合には、排除されない差分が3つ以上となる所定数の差分を排除する。本例では目標タッチ位置が4つなので、閾値よりも大きな差分が複数ある場合、そのうち最も大きい差分を1つだけ排除する。例えば、図5(a)で示すように、差分Δx、Δyが他の差分Δx〜Δx、Δy〜Δyとは大きく異なっている場合を想定する。この場合には、ΔxAve、ΔyAveの値から最も乖離する値(この場合はΔx、Δy)を排除し、他のΔx〜Δx、Δy〜Δyの差分のみを、拡大縮小方向を加味して平均化することで、X方向の平均値σx234、Y方向の平均値σy234を算出する。
σx234=(−Δx+Δx+Δx)/3
σy234=(−Δy−Δy+Δy)/3
ここで、−Δxとしている理由は、ΔxAveの算出の際と同様の理由であり、表示範囲の中央を基準とした平均値を求めるためである。また、−Δy、−Δyとしている理由も、ΔyAveの算出の際と同様の理由であり、表示範囲の中央を基準とした平均値を求めるためである。
次に、CPU110が、差分Δx〜Δxを算出したσx234、Δy〜Δyを算出したσy234に置き換えて第3の位置情報1〜4を算出する。
【0016】
ここで、第3の位置情報(x3n,y3n)は次式を用いて算出する。
n=1:(x31,y31)=(X−σx234,Y+σy234
n=2:(x32,y32)=(X−σx234,Y−σy234
n=3:(x33,y33)=(X+σx234,Y−σy234
n=4:(x34,y34)=(X+σx234,Y+σy234
目標タッチ位置が図5(b)に示すように矩形の頂点を形成する位置に表示されるものであれば、この第3の位置情報1〜4は図5(b)に示すように歪みのない矩形の頂点を形成する位置となる。この(x3n,y3n)は、n=1〜4においていずれも表示領域の中央からの距離が等しい。n=2〜4においてユーザが正しく見た目の目標タッチ位置をタッチしたとしても、経年劣化や温度変化による検出位置のズレによって、検出される第2の位置情報の座標位置と目標タッチマークの表示座標にズレが生じることがある。しかし、後述するように、経年劣化や温度変化による検出位置のズレは拡大または縮小する方向に均等にずれるはずであるとみなして、第2の位置情報を表示領域の中央からの距離が等しい第3の位置情報に補正してから、S311以降での校正(キャリブレーション)を行う。S311では、CPU110が、補正した第3の位置情報に基づいて、第2の変換係数a、b、c、d、e、f、g、h(キャリブレーション係数)を算出する。ここで、第2の変換係数の求め方について説明する。目標タッチマークの表示座標(X,Y)と第3の位置情報(x3n,y3n)とに基づいて、次式より第2の変換係数を算出する。
=A/A
=B/A
=C/A
=X−a31−b31−c3131
=E/E
=F/E
=G/E
=Y−e31−f31−g3131
但し、A、A、B、C、E、E、F、Gは次のように算出される。
=(X−X){(y31−y32)(x3333−x3434)−(y33−y34)(x3131−x3232)}
=(x31−x32){(y32−y33)(x3333−x3434)−(y33−y34)(x3232−x3333)}+(x33−x32){(y31−y32)(x3333−x3434)−(y33−y34)(x3131−x3232)}+(x33−x34){(y31−y32)(x3232−x3333)−(y32−y33)(x3131−x3232)}
B=(X−X){(x31−x32)(x3333−x3434)−(x33−x34)(x3131−x3232)}
C=(X−X){(x31−x32)(y33−y34)−(x33−x34)(y31−y32)}
=(Y−Y){(y32−y33)(x3434−x3131)−(y34−y31)(x3232−x3333)}
=(x31−x32){(y32−y33)(x3434−x3131)−(y34−y31)(x3232−x)}+(x33−x32){(y31−y32)(x3434−x3131)−(y34−y31)(x3131−x3232)}+(x34−x31){(y31−y32)(x3232−x3333)−(y32−y33)(x3131−x3232)}
F=(Y−Y){(x32−x33)(x3434−x3131)−(x34−x31)(x3232−x3333)}
G=(Y−Y){(x32−x33)(y34−y31)−(x34−x31)(y32−y33)}
そして、算出した第2の変換係数(a,b,c,d,e,f,g,h)を更新し、キャリブレーションを終了する。
【0017】
ここで、第2の変換係数は、通常動作時にタッチパネル座標とディスプレイパネル座標との位置ズレを補正する演算式として用いる。具体的には、次式にタッチパネル座標(xtouch−n,ytouch−n)を入力することにより、LCD座標(XLCD−n,YLCD−n)を算出することで位置ズレを変換する。
LCD−n=atouch−n+btouch−n+ctouch−ntouch−n+d
LCD−n=etouch−n+ftouch−n+gtouch−ntouch−n+h
次に、目標タッチマークと、タッチされたことによって取得した(X2n,Y2n)との差分を、拡大縮小方向を加味して(すなわち、表示領域の中央からの距離が等しくなるように)平均化して、全て同じ差分になるように補正する理由について説明する。まず、タッチパネルのキャリブレーションが必要な要因は次の3つに大別できる。
【0018】
まず、1つ目の要因は、タッチパネル120とディスプレイパネル130との貼り合わせによるズレである。この貼り合わせによるズレによって、回転方向や平行移動方向を含む様々な方向に位置がずれてしまう。
【0019】
次に、2つ目の要因は、タッチパネル120の透明導電膜(例えば、ITO膜)の性質によるリニアリティによるズレである。このリニアリティによるズレによって、非線形に位置がずれてしまう。このリニアリティによるズレは、タッチパネル120内での透明導電膜の均一性に依存し、タッチ位置と出力電圧値の関係が線形でないことに起因する。
【0020】
次に、3つ目の要因は、タッチパネル120の端子間抵抗値が変化することによるズレである。この端子間抵抗の変化によるズレによって、拡大方向又は縮小方向のいずれかに位置がずれてしまう。
【0021】
これらの3つの要因の中で、貼り合わせによるズレとリニアリティによるズレに関しては、工場等で一度位置補正をしてしまえば、その後に変化することはほとんどない。一方、端子間抵抗の変化によるズレに関しては、出荷後の経時変化や温度変化等の原因によって、大きくずれることが分かっている。従って、工場等で工具を用いて正確な調整を経た、第1の変換係数を用いた位置情報は、端子間抵抗の変化によるズレのみである。すなわち、第1の変換係数を用いた位置情報は、拡大方向又は縮小方向のいずれかの方向にしかずれないはずである。
【0022】
しかしながら、前述したようにユーザによるタッチ位置がずれていることが原因で、第1の変換係数を用いた位置情報においても、目標タッチマークと比較すると、拡大方向又は縮小方向以外の非線形な方向に位置がずれることがある。このようなユーザによるタッチ位置のズレのうち、ユーザのタッチ位置のバラつきによるキャリブレーション精度の低下は、本実施例で示すように、第1の変換係数を用いた位置情報に対して、全て同じ差分になるように拡大縮小方向を加味して平均化する補正を行う(すなわち、表示領域の中央からの距離が等しくなるように平均化して補正する)ことで、ある程度防ぐことができる。また、ユーザによるタッチ位置のズレのうち、ユーザのタッチミスによる大きなズレでのキャリブレーション精度の低下は、本実施例で示すように、第1の変換係数を用いた位置情報に対して、閾値を超えるズレを持つ位置情報を排除することである程度防ぐことができる。
<数値具体例:バラツキが閾値以下のケース>
ここで、図3のS308〜S310で説明した処理について、具体的な数値をあてはめて説明する。まず、S308でバラツキが閾値以下であると判定されるケース(S309の処理を行うケース)の具体例を説明する。
目標タッチマークの表示座標が次の座標値である場合を想定する。
(X,Y)=(−80,+80)
(X,Y)=(−80,−80)
(X,Y)=(+80,−80)
(X,Y)=(+80,+80)
また、第2の位置情報が示す座標値が次の座標値である場合を想定する。
(X21,Y21)=(−72,+83)
(X22,Y22)=(−74,−91)
(X23,Y23)=(+74,−85)
(X24,Y24)=(+68,+89)
目標タッチマークの表示座標(X,Y)と第2の位置情報(X2n,Y2n)との差分(Δx,Δy)は次のようになる。
n=1:(Δx,Δy)=(X21−X,Y21−Y
=(−72+80,83−80)
=(8,3)
n=2:(Δx,Δy)=(X22−X,Y22−Y
=(−74+80,−91+80)
=(6,−11)
n=3:(Δx,Δy)=(X23−X,Y23−Y
=(74−80,−85+80)
=(−6,−5)
n=4:(Δx,Δy)=(X24−X,Y24−Y
=(68−80,89−80)
=(−12,9)
次に、差分(Δx,Δy)の平均値(ΔxAve,ΔyAve)を算出すると、次のようになる。
ΔxAve=(−Δx−Δx+Δx+Δx)/4
=(−8−6+(−6)+(−12))/4
=−8
ΔyAve=(Δy−Δy−Δy+Δy)/4
=(+3−(−11)−(−5)+9)/4
=+7
すなわち、タッチの検出位置がx方向に縮む方向に、y方向に広がる方向にずれたとみなすことができる。従って、各nにおける(xAven,yAven)は以下の通りである。
n=1:(xAve1,yAve1)=(X−ΔxAve,Y+ΔyAve
=(−80+8,80+7)
=(−72,87)
n=2:(xAve2,yAve2)=(X−ΔxAve,Y−ΔyAve
=(−80+8,−80−7)
=(−72,−87)
n=3:(xAve3,yAve3)=(X+ΔxAve,Y−ΔyAve
=(80−8,−80−7)
=(72,−87)
n=4:(xAve4,yAve4)=(X+ΔxAve,Y+ΔyAve
=(80−8,80+7)
=(72,87)
次に、この(xAven,yAven)から最も乖離する(X2n,y2n)を求める。
σxy=√[(X2n−xAven+(Y2n−yAven
は下記の数値となる。
n=1:σxy=√[(X21−xAve1+(Y21−yAve1
=√[(−72+72)+(83−87)
=√16
n=2:σxy=√[(X22−xAve2+(Y22−yAve2
=√[−74+72]+(−91+87)
=√20
n=3:σxy=√[(X23−xAve3+(Y23−yAve3
=√[(74−72)+(−85+87)
=√8
n=4:σxy=√[(X24−xAve4+(Y24−yAve4
=√[(68−72)+(89−87)
=√20
従って、バラツキσxy=√20である。S308では、算出したバラツキσxy(σxyのうち最大のもの。この例では√20)が予め定めた閾値10(=√100)以下であるか否かを判定する。ここでは、バラツキ√20が閾値10以下であるので、S309に進む。S309では、図4(a)で示すように、4つの目標タッチマークとタッチされたことによって取得した(X2n,Y2n)とのすべての差分Δ1〜Δ4の拡大縮小方向を加味したX方向の平均値σx1234、Y方向の平均値σy1234を算出する。
σx1234=(−8−6−6−12)/4
=−8
σy1234=(3+11+5+9)/4
=7
従って、第3の位置情報(x3n,y3n)は以下の値となる。
n=1:(x31,y31)=(X−σx1234,Y+σy1234
=(−80+8,80+7)
=(−72,87)
n=2:(x32,y32)=(X−σx1234,Y−σy1234
=(−80+8,−80―7)
=(−72,−87)
n=3:(x33,y33)=(X+σx1234,Y−σy1234
=(80−8,−80−7)
=(72,−87)
n=4:(x34,y34)=(X+σx1234,Y+σy1234
=(80−8,80+7)
=(72,87)
このように、第3の位置情報(x3n,y3n)が示す4点は、原点0(表示領域中央)からの距離が等しく、歪みのない矩形の頂点を成す値となる。この矩形は、目標タッチマークの4点による矩形をx方向に8縮小し、y方向に7拡大したものである。S311以降では、このようにして求めた第3の位置情報に基づいて第2の変換係数(キャリブレーション係数)を求め、キャリブレーションが実行される。この処理の数値具体例については説明を省略する。すなわち、この例では、ユーザからのタッチで取得したn=1〜4での第2の位置情報については、ユーザの大きなタッチミスは無かったとみなす。そして、n=1〜4の全てで得たタッチ位置から、経年劣化や温度変化によってタッチ検出位置がx方向に8縮小し、y方向に7拡大する方向にずれたとみなし、これをS311以降で校正(キャリブレーション)する。
<数値具体例:バラツキが閾値を超えるケース>
次に、まず、S308でバラツキが閾値を超えると判定されるケース(S310の処理を行うケース)の具体例を説明する。
目標タッチマークの表示座標が次の座標値である場合を想定する。
(X,Y)=(−80,+80)
(X,Y)=(−80,−80)
(X,Y)=(+80,−80)
(X,Y)=(+80,+80)
また、第2の位置情報が示す座標値が次の座標値である場合を想定する。
(X21,Y21)=(−68,+92)
(X22,Y22)=(−79,−79)
(X23,Y23)=(+79,−81)
(X24,Y24)=(+76,+84)
目標タッチマークの表示座標(X,Y)と第2の位置情報(X2n,Y2n)との差分(Δx,Δy)は次のようになる。
n=1:(Δx,Δy)=(X21−X,Y21−Y
=(−68+80,92−80)
=(12,12)
n=2:(Δx,Δy)=(X22−X,Y22−Y
=(−79+80,−79+80)
=(1,1)
n=3:(Δx,Δy)=(X23−X,Y23−Y
=(79−80,−81+80)
=(−1,−1)
n=4:(Δx,Δy)=(X24−X,Y24−Y
=(76−80,84−80)
=(−4,4)
次に、差分(Δx,Δy)の平均値(ΔxAve,ΔyAve)を算出すると、
ΔxAve=(−Δx−Δx+Δx+Δx)/4
=(−12−1+(−1)+(−4))/4
=−4.5
ΔyAve=(Δy−Δy−Δy+Δy)/4
=(12−1−(−1)+4)/4
=+4
従って、各nにおける(xAven,yAven)は以下の通りである。
n=1:(xAve1,yAve1)=(X−ΔxAve,Y+ΔyAve
=(−80+4.5,80+4)
=(−75.5,84)
n=2:(xAve2,yAve2)=(X−ΔxAve,Y−ΔyAve
=(−80+4.5,−80−4)
=(−75.5,−84)
n=3:(xAve3,yAve3)=(X+ΔxAve,Y−ΔyAve
=(80−4.5,−80−4)
=(75.5,−84)
n=4:(xAve4,yAve4)=(X+ΔxAve,Y+ΔyAve
=(80−4.5,80+4)
=(75.5,84)
次に、この(xAven,yAven)から最も乖離する(X2n,y2n)を求める。σxy=√[(X2n−xAven+(Y2n−yAven]は下記の数値となる。
n=1:σxy=√[(X21−xAve1+(Y21−yAve1
=√[(−68+75.5)+(92−84)
=√120.25
n=2:σxy=√[(X22−xAve2+(Y22−yAve2
=√[−79+75.5]+(−79+84)
=√37.25
n=3:σxy=√[(X23−xAve3+(Y23−yAve3
=√[(79−75.5)+(−81+84)
=√21.25
n=4:σxy=√[(X24−xAve4+(Y24−yAve4
=√[(76−75.5)+(84−84)
=√0.25
従って、バラツキσxy=√120.25である。S308では、算出したバラツキσxy(σxyのうち最大のもの。この例では√120.25)が予め定めた閾値10(=√100)以下であるか否かを判定する。ここでは、バラツキ√120.25が閾値10を超えるので、S310に進む。S310では、σxyが閾値よりも大きいnの差分(Δx,Δy)を排除し、他のΔx〜Δx、Δy〜Δyの差分のみを、拡大縮小方向を加味して平均化することで、X方向の平均値σx234、Y方向の平均値σy234を算出する。
σx234=(−Δx+Δx+Δx)/3
=(−1+(−1)+(−4))/3
=2
σy234=(−Δy−Δy+Δy)/3
=(−1−(−1)+4)/3
=4/3
この例では、n=1に関する1点を除いて算出したX方向の平均値σx234、Y方向の平均値σy234が何れも正の値なので、タッチの検出位置がx方向、y方向ともに広がる方向にずれたとみなすことができる。従って、第3の位置情報(x3n,y3n)は以下の値となる。
n=1:(x31,y31)=(X−σx234,Y+σy234
=(−80+2,80+4/3)
=(−78,80+4/3)
n=2:(x32,y32)=(X−σx234,Y−σy234
=(−80+2,−80―4/3)
=(−78,−(80+4/3))
n=3:(x33,y33)=(X+σx234,Y−σy234
=(80−2,−80−4/3)
=(78,−(80+4/3))
n=4:(x34,y34)=(X+σx234,Y+σy234
=(80−2,80+4/3)
=(78,80+4/3)
このように、第3の位置情報(x3n,y3n)が示す4点は、原点0(表示領域中央)からの距離が等しく、歪みのない矩形の頂点を成す値となる。この矩形は、目標タッチマークの4点による矩形をx方向に2、y方向に4/3拡大したものである。S311以降では、このようにして求めた第3の位置情報に基づいて第2の変換係数(キャリブレーション係数)を求め、キャリブレーションが実行される。この処理の数値具体例については説明を省略する。すなわち、この例では、ユーザからのタッチで取得したn=1での第2の位置情報のズレは、経年劣化や温度変化によるタッチ検出位置のズレではなく、ユーザのタッチミスであるとみなして排除する。そして残りのn=2〜4で得たタッチ位置から、経年劣化や温度変化によってタッチ検出位置がx方向に2、y方向に4/3拡大する方向にずれたとみなし、これをS311以降で校正(キャリブレーション)する。
【0023】
なお、第1の実施例では、4箇所の目標タッチマークをユーザにタッチさせる場合を想定して説明したが、少なくとも3点以上をユーザにタッチさせれば、同様の演算フローにより、タッチミスを排除することが可能になり、ユーザによる煩わしいキャリブレーション動作を低減することができる。また、5箇所以上の目標タッチマークにすれば、ユーザがずれてタッチした場合にも2点を排除できるので、キャリブレーション精度をより向上させることができる。いずれにしても、複数の目標タッチマークは、表示範囲の中央からの距離が等しい座標に表示する。
【0024】
以上のように、工具等で正確に調整した変換係数で算出した位置情報を、補正してからキャリブレーション係数を算出することで、ユーザが目標タッチマークからずれた位置をタッチした場合にも、この要因による精度悪化を排除又は低減したキャリブレーション係数を算出することができる。
【0025】
従って、キャリブレーション精度を向上させることができる。その結果、経時変化や温度変化等が原因で、タッチパネルの端子間抵抗が変化し、タッチパネル座標とディスプレイパネル座標の位置がずれた場合にも、アイコン中心をタッチしているにも関わらず動作しなかったり、隣のアイコンが動作してしまったりすることがなくなる。
【0026】
なお、補正部113は、バラツキを算出することなく、単純にそれぞれの差分のうち、少なくとも最大の差分を除くそれぞれの差分の平均値に基づいて、変換部111で変換した座標値を補正する構成としてもよい。また、補正部113は、算出部112で算出したそれぞれの差分のうち、予め定めた閾値よりも大きい差分を除くそれぞれの差分の平均値に基づいて、変換部111で変換した座標値を補正する構成としてもよい。
【0027】
以上、本発明をその好適な実施形態に基づいて詳述したが、本発明はこれら特定の実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の様々な形態も本発明に含まれる。上述の実施形態の一部を適宜組み合わせてもよい。
【0028】
(その他の実施例)
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア(プログラム)を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ(またはCPUやMPU等)がプログラムを読み出して実行する処理である。

【特許請求の範囲】
【請求項1】
ディスプレイパネルに表示した複数の目標タッチマークをユーザにタッチパネルを介してタッチさせることにより、前記複数の目標タッチマークを表示した座標と前記タッチパネルでタッチが検知された座標とのズレを補正するための変換係数を更新する情報処理装置であって、
ディスプレイパネルにおける、表示範囲の中央を基準とする基準座標からの距離が等しい複数の座標のそれぞれに目標タッチマークを表示させる表示制御手段と、
前記目標タッチマークに対してのタッチが検知された座標を、予め定めた変換係数を用いて、前記ディスプレイパネルにおける座標に変換する変換手段と、
前記複数の目標タッチマークを表示した座標と、前記変換手段で変換した座標との差分を算出する算出手段と、
前記算出手段で算出した差分から前記表示範囲の中央を基準とした平均値を算出し、該平均値を用いて、前記基準座標と前記変換手段で変換した座標との間のそれぞれの距離が等しくなるように、前記変換手段で変換した座標を補正する補正手段と、
前記補正手段で補正した座標と前記複数の目標タッチマークを表示した座標とのズレを補正するための新たな変換係数を算出し、該新たな変換係数を以降の前記タッチパネルのタッチ位置検知で用いる変換係数として更新する更新手段と、
を備えることを特徴とする情報処理装置。
【請求項2】
前記補正手段は、前記算出手段で算出した差分のうち、予め定めた除外条件を満たす差分を除く差分の平均値を用いて、前記変換手段で変換した座標を補正することを特徴とする請求項1に記載の情報処理装置。
【請求項3】
前記補正手段は、前記算出手段で算出した差分のうち、少なくとも最大の差分を除く差分の平均値を用いて、前記変換手段で変換した座標を補正することを特徴とする請求項2に記載の情報処理装置。
【請求項4】
前記補正手段は、前記算出手段で算出した差分のうち、予め定めた閾値よりも大きい差分を除く差分の平均値を用いて、前記変換手段で変換した座標を補正することを特徴とする請求項2に記載の情報処理装置。
【請求項5】
前記補正手段は、前記算出手段で算出した差分のうち、該差分の平均値との差が予め定めた閾値よりも大きい差分を除く差分の平均値を用いて、前記変換手段で変換した座標を補正することを特徴とする請求項2に記載の情報処理装置。
【請求項6】
前記ディスプレイパネルにおける座標が、前記基準座標を原点とするXY座標であり、
前記補正手段は、前記変換手段で変換した座標が前記複数の目標タッチマークを表示した座標に対して、原点に近づく方向であるか、又は遠ざかる方向であるかを加味して、前記差分のX成分及びY成分の平均値を算出し、該平均値を用いて、前記基準座標と前記変換手段で変換した座標との間の距離が等しくなるように、前記変換手段で変換した座標を補正することを特徴とする請求項1に記載の情報処理装置。
【請求項7】
ディスプレイパネルに表示した複数の目標タッチマークをユーザにタッチパネルを介してタッチさせることにより、前記複数の目標タッチマークを表示した座標と前記タッチパネルでタッチが検知された座標とのズレを補正するための変換係数を更新する情報処理装置の制御方法であって、
前記情報処理装置の表示制御手段が、ディスプレイパネルにおける、表示範囲の中央を基準とする基準座標からの距離が等しい複数の座標のそれぞれに目標タッチマークを表示させる表示制御ステップと、
前記情報処理装置の変換手段が、前記目標タッチマークに対してのタッチが検知された座標を、予め定めた変換係数を用いて、前記ディスプレイパネルにおける座標に変換する変換ステップと、
前記情報処理装置の算出手段が、前記複数の目標タッチマークを表示した座標と、前記変換ステップで変換した座標との差分を算出する算出ステップと、
前記情報処理装置の補正手段が、前記算出ステップで算出した差分の平均値を用いて、前記基準座標と前記変換ステップで変換した座標との間のそれぞれの距離が等しくなるように、前記変換ステップで変換した座標を補正する補正ステップと、
前記情報処理装置の更新手段が、前記補正ステップで補正した座標と前記複数の目標タッチマークを表示した座標とのズレを補正するための新たな変換係数を算出し、該新たな変換係数を以降の前記タッチパネルのタッチ位置検知で用いる変換係数として更新する更新ステップと、
を備えることを特徴とする制御方法。
【請求項8】
コンピュータを請求項1乃至6のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項9】
請求項8に記載のプログラムを記憶したコンピュータにより読み取り可能な記憶媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2011−54154(P2011−54154A)
【公開日】平成23年3月17日(2011.3.17)
【国際特許分類】
【出願番号】特願2010−122033(P2010−122033)
【出願日】平成22年5月27日(2010.5.27)
【出願人】(000001007)キヤノン株式会社 (59,756)
【Fターム(参考)】