以下、本発明の実施の形態について、図面を参照しながら説明する。なお、同一部分には同一符号を付し、図面で同一の符号が付いたものは、説明を省略する場合もある。なお、本実施の形態では、画像表示部の例として液晶ディスプレイを採用した場合について説明するが、液晶ディスプレイ以外の画像表示部を採用する場合も本発明の適用範囲に含まれる。
(1.画像処理装置の構成)
図1は、本発明の実施の形態における画像処理装置1の構成を示すブロック図である。まず、本発明の実施の形態における画像処理装置1の構成及びその撮像画像の例について説明する。以下では、便宜上、画像処理装置1について説明するが、図1に示すように、本発明の実施の形態における画像処理装置1の機能を必要とする電子機器20であれば、一般の電子機器に対して適用可能である。
最初に、画像処理装置1の構成の概要及び画像処理装置1の撮像原理について説明する。画像処理装置1は、表示機能を有しており、複数の画素から構成される液晶ディスプレイ(ディスプレイ)及び該液晶ディスプレイに光を照射するバックライトを備えている点は、通常の液晶ディスプレイと同様である。
そして、画像処理装置1における液晶ディスプレイは、各画素内に光センサー(撮像センサー)が内蔵され、該光センサーによって液晶ディスプレイの表示画面に近接してきた外部の物体等(撮像対象)を撮像し、画像データ(撮像センサーによって撮像された画像データ)として取り込むことが可能となっている点が、通常の液晶ディスプレイと異なっている。
なお、液晶ディスプレイは、複数の画素のうち、所定数の画素ごとに光センサーが内蔵されているものであっても良いが、光センサーによる撮像画像の解像度の観点から、光センサーは全画素に内蔵されていることが好ましい。
また、画像処理装置1の液晶ディスプレイは、通常の液晶ディスプレイと同様に、複数の走査線と複数の信号線とが交差するように配線され、この各交差部に画素が配置され、薄膜トランジスタ、及び各種容量を有する画素を備えた表示部と、走査線を駆動する駆動回路と、信号線を駆動する駆動回路とを備えているものである。
さらに、画像処理装置1の液晶ディスプレイは、例えば各画素内に光センサーとしてフォトダイオードを内蔵する構成となっている。このフォトダイオードには、キャパシタが接続され、表示画面から入射された光のフォトダイオードでの受光量の変化に応じてキャパシタの電荷量を変化させる構成となっている。そして、このキャパシタの両端の電圧を検出することにより画像データを生成し、画像の撮像(取り込み)を行なうようになっている。これが画像処理装置1の液晶ディスプレイによる撮像原理である。
なお、光センサーとしては、フォトダイオードに限られず、光電効果を動作原理とし、液晶ディスプレイ等の各画素に内蔵できるものであれば良い。
以上の構成により、画像処理装置1は、液晶ディスプレイ本来の画像を表示する表示機能に加え、表示画面に近接してきた外部の物体の画像(撮像対象)を撮像する撮像機能を備える構成となっている。それゆえ、ディスプレイの表示画面でのタッチ入力が可能な構成とすることができる。
ここで、図2(a)〜(h)に基づき、画像処理装置1の液晶ディスプレイの各画素に内蔵されたフォトダイオードによって撮像される撮像対象について説明する。ここでは、「指の腹(以下、「指腹」と呼ぶ場合もある。)」及び「ペン先」の例を挙げ、それぞれの撮像画像(又は画像データ)の特徴の概要について説明する。
図2(a)は、周囲が暗い場合における指腹の撮像画像の様子を示す概要図であり、図2(b)は、周囲が暗い場合における指腹の撮像画像の特徴を示す概要図である。図2(a)に示すように、ユーザが、暗い部屋で液晶ディスプレイの表示画面65に、人差し指の腹を接触させた場合について考える。
この場合、図2(b)の撮像画像61は、バックライトが撮像対象(指腹)に反射して得られる画像であり、白い円形状がぼやけたような画像となる。なお、各画素における勾配方向は、おおよそ、撮像画像におけるエッジ部分からエッジ部分に囲まれた領域の中心付近に向かう傾向を示している(ここでは、勾配方向は暗い部分から明るい部分に向かう向きを正としている。)。
次に、図2(c)は、周囲が明るい場合における指腹の撮像画像の様子を示す概要図であり、図2(d)は、周囲が明るい場合における指腹の撮像画像の特徴を示す概要図である。図2(c)に示すように、ユーザが、明るい部屋で液晶ディスプレイの表示画面65に、人差し指の腹を接触させた場合について考える。
この場合、図2(d)の撮像画像62は、外光66が液晶ディスプレイの表示画面65に入射することによって得られる画像(接触した場合は、バックライトによる反射光も混じる。)であり、人差し指で外光が遮られることによって生じた指の影と、液晶ディスプレイの表示画面に接触した指の腹にバックライトの光が反射してできた白い円形状がぼやけた部分とからなる。これらのうち白い円形状の部分における勾配方向は、上述した暗い部屋で指の腹を接触させた場合と同様の傾向を示すが、その周囲を囲む影は暗く、周囲が外光66で明るいので、各画素における勾配方向は、白い円形状の部分における勾配方向と逆向きの傾向を示している。
図2(e)は、周囲が暗い場合におけるペン先の撮像画像の様子を示す概要図であり、図2(f)は、周囲が暗い場合におけるペン先の撮像画像の特徴を示す概要図である。図2(e)に示すように、ユーザが、暗い部屋で液晶ディスプレイの表示画面65に、ペン先を接触させた場合について考える。
この場合、図2(f)の撮像画像63は、バックライトが撮像対象(ペン先)に反射して得られる画像であり、小さな白い円形状がぼやけたような画像となる。なお、各画素における勾配方向は、おおよそ、撮像画像におけるエッジ部分からエッジ部分に囲まれた領域の中心付近に向かう傾向を示している。
次に、図2(g)は、周囲が明るい場合におけるペン先の撮像画像の様子を示す概要図であり、図2(h)は、周囲が明るい場合におけるペン先の撮像画像の特徴を示す概要図である。図2(g)に示すように、ユーザが、明るい部屋で液晶ディスプレイの表示画面65に、ペン先を接触させた場合について考える。
この場合、図2(h)の撮像画像64は、外光66が液晶ディスプレイの表示画面65に入射することによって得られる画像(接触した場合は、バックライトによる反射光も混じる。)であり、ペンで外光が遮られることによって生じたペンの影と、液晶ディスプレイの表示画面65に接触したペン先にバックライトの光が反射してできた小さな白い円形状がぼやけた部分とからなる。これらのうち小さな白い円形状の部分における勾配方向は、上述した暗い部屋でペン先を接触させた場合と同様の傾向を示すが、その周囲を囲む影は暗く、周囲が外光で明るいので、各画素における勾配方向は、小さな白い円形状の部分における勾配方向と逆向きの傾向を示している。
以上のような、各勾配方向の分布は、例えば、指のように表面が柔らかく、面に接触することにより接触面が円形になる場合、または先が丸いペンのように表面が固くても接触面が円形になるような場合には、撮像画像におけるエッジ部分からエッジ部分に囲まれた領域の中心付近に向かうか、或いは、該中心付近から放射状にエッジ部分に向かうかのいずれかの傾向を示す。
また、接触面がその他の形状であっても、撮像画像におけるエッジ部分からエッジ部分に囲まれた領域の中に向かうか、或いは、エッジ部分に囲まれた領域の中からその領域の外側に向かうかのいずれかの傾向を示す。さらに、これらの傾向は、撮像対象の状況等に応じて、大きく変わることは無い。したがって、勾配方向は、パターンマッチングに適した量である。
次に、図1を用いて、本実施の形態における画像処理装置1の構成の詳細について説明する。
画像処理装置1は、図1に示すように、撮像された撮像画像の画像データを用いて、撮像対象による撮像画像上の指示位置を特定する機能を備えたものであり、低解像度化部2と、縦勾配量算出部(特徴量算出手段)3aと、横勾配量算出部(特徴量算出手段)3bと、第1エッジ抽出部(第1エッジ特定手段)4と、方向特定部5と、効率化部6と、一致画素数算出部7と、モデルパターン・比較用一致パターン格納部8と、パターン合致度算出部9と、スコア算出部(合致度算出手段)10と、位置特定部(位置特定手段)11と、第2エッジ抽出部(第2エッジ特定手段)15と、閾値調節部(閾値調節手段)16と、閾値格納部17と、を備えている。
低解像度化部2は、液晶ディスプレイに内蔵されている光センサーを用いて撮像された撮像画像の画像データを低解像度化する。
縦勾配量算出部3a及び横勾配量算出部3bは、画像データ上の画素ごとに、注目画素の画素値と複数の隣接画素の画素値とから注目画素の画素値の縦方向勾配量及び横方向勾配量を算出する。具体的には、Sobel(ソベル)オペレータ、Prewitt(プリウイット)オペレータ等の公知のエッジ抽出オペレータを用いれば良い。
例えば、Sobelオペレータについて説明すると、各画素の画素位置x(i,j)における局所的な縦方向勾配Sy及び横方向勾配Sxは、次式(1)のように求められる。
Sx=xi+1j−1−xi―1j−1+2xi+1j−2xi―1j+xi+1j+1−xi―1j+1
Sy=xi−1j+1−xi−1j−1+2xij+1−2xij−1+xi+1j+1−xi+1j−1
・・・(1)
ここで、xijは画素位置x(i,j)における画素値を表し、iは水平方向に沿った画素の位置を、jは垂直方向に沿った画素の位置をそれぞれ表す。ここに、i及びjは正の整数である。
ここで、式(1)は、次式(2)及び(3)の3×3のSobelオペレータ(行列演算子Sx及びSy)を、画素位置x(i,j)を注目画素とする3×3画素に適用することと等価である。
ここで、画素位置x(i,j)における勾配の大きさABS(S)及び勾配方向ANG(S)は、縦方向勾配Sy及び横方向勾配Sxに基づいて、次のように与えられる。なお、以下では、演算子としての縦方向勾配Sy及び横方向勾配Sxを各画素に適用することによって得られた縦方向勾配量及び横方向勾配量のそれぞれを、便宜上、縦方向勾配量Sy及び横方向勾配量Sxと記載する場合がある。
ABS(S)=(Sx2+Sy2)1/2 ・・・(4)
ANG(S)=tan-1(Sy/Sx) ・・・(5)
第1エッジ抽出部4は、縦勾配量算出部3a及び横勾配量算出部3bが算出した各画素の縦方向勾配量Sy及び横方向勾配量Sxの算出結果から、撮像画像のエッジ部分の画素である第1エッジ画素を抽出(特定)する。
ここで、第1エッジ画素とは、画像データを構成する各画素のうち、明るさが急激に変化する部分(エッジ)における画素である。具体的には、縦方向勾配量Sy及び横方向勾配量Sxのそれぞれ、又は、勾配の大きさABS(S)が所定の第1閾値以上である画素のことである。
なお、この第1エッジ画素を抽出する目的は、方向特定部5が、抽出された複数の第1エッジ画素については勾配方向を特定し、第1エッジ画素以外の画素については一律無方向と看做して特定するようにする点にある。
パターンマッチングにおいて重要な情報は、エッジ部分の第1エッジ画素における勾配方向である。
したがって、あまり重要でない画素における勾配方向を一律無方向と看做すことで、パターンマッチングの効率化をさらに向上させることができる。また、以下で説明する撮像対象による撮像画像上の指示位置を検出する際のメモリ容量を少量化し、処理時間を短縮化することを可能とし、指示位置の検出処理のコストをさらに削減することができる。
方向特定部5は、上述したように、縦勾配量算出部3a及び横勾配量算出部3bが算出した縦方向勾配量Sy及び横方向勾配量Sxから、画素ごとの勾配方向ANG(S)と、縦方向勾配量Sy及び横方向勾配量Sxのそれぞれ、又は、勾配の大きさABS(S)が第1閾値未満である無方向とのいずれかを特定するものである。
ここでは、無方向を第1閾値未満であると定義しているが、第1閾値以下と定義しても良い。
あらかじめ無方向を設定しておくことで、ノイズ等により不要な多数の勾配方向が発生することを抑制することができる。また、エッジ近傍の勾配方向に照合対象を絞りこむことが可能となり、照合の効率化を図ることができる。
なお、方向特定部5は、第1エッジ抽出部4によって特定された複数の第1エッジ画素の勾配方向を特定し、第1エッジ画素以外の画素を無方向と看做して特定することが好ましい。パターンマッチングにおいて重要な情報は、エッジ部分の第1エッジ画素における勾配方向であると言える。
したがって、パターンマッチングにおいてあまり重要でない画素における勾配方向を一律無方向と看做すことで、パターンマッチングの効率化をさらに向上させることができる。
ここで、勾配方向ANG(S)は、0rad〜2πradの範囲で変化する連続量であるから、本実施の形態においては、これを例えば8方向に量子化したものを勾配方向としてパターンマッチングに使用する特徴的な量(以下、「特徴量」と呼ぶことがある。)とする。
なお、より精度の高いパターンマッチングを行なうために、16方位等に量子化しても良い。具体的な方向の量子化の詳細な手順については後述する。また、方向の量子化とは、勾配方向ANG(S)が所定の範囲内にある方向を一律にある特定の方向の勾配方向であると看做して取り扱うことを言う。
効率化部6は、注目画素の周囲で所定の画素数を含む領域である照合領域と、あらかじめ定められたモデルパターンとの照合(以下、「パターンマッチング」と呼ぶこともある。)を行なう場合に、照合領域とモデルパターンとの照合の効率化を行なう。
一致画素数算出部7は、例えば、照合領域と、モデルパターンとの照合を行って、照合領域に含まれる勾配方向と、モデルパターンに含まれる勾配方向とが一致する画素数(以下、「一致画素数」と呼ぶ。)を算出する。
モデルパターン・比較用一致パターン格納部8は、モデルパターンと、比較用一致パターンとを格納する。比較用一致パターンは、照合領域に含まれる画素ごとの勾配方向とモデルパターンに含まれる画素ごとの勾配方向との一致パターンを分析することによってあらかじめ定めたパターンである。モデルパターン・比較用一致パターン格納部8は、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやコンパクトディスク−ROM/MO/MD/デジタルビデオデイスク/コンパクトディスク−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系等を用いることができる。
パターン合致度算出部9は、照合領域に含まれる画素ごとの勾配方向とモデルパターンに含まれる画素ごとの勾配方向との一致パターンと、あらかじめ定められた比較用一致パターンとが類似する度合いを示すパターン合致度を算出する。
画素値の勾配はベクトル量であり、大きさ(勾配の大きさABS(S))と向き(勾配方向ANG(S))とを持つものである。ここで、特に、勾配方向(向き)は、例えば8方向に量子化したりすることによって、1つの画素がとり得る状態を8(無方向を含めると9)という極めて少ない状態に離散化することでき、さらにそれぞれの状態には、方向が異なるという識別が容易な特徴を持たせる事ができる。
また、勾配方向は、上述したような傾向がある。また、これらの傾向は、撮像対象の状況等に応じて、大きく変わることは無い。したがって、勾配方向は、パターンマッチングに適した量である。
スコア算出部10は、一致画素数算出部7が算出した一致画素数、及びパターン合致度算出部9が算出したパターン合致度から、照合領域とモデルパターンとのマッチングの度合いを示す合致度を算出する。なお、スコア算出部10は、一致画素数算出部7が算出した一致画素数、及びパターン合致度算出部9が算出したパターン合致度のいずれか1つを使用するよう構成しても良い。
また、スコア算出部10は、照合領域内において合致する勾配方向の種類数が、あらかじめ定められた規定種類数以上の場合に、合致度を算出するようにしても良い。
上述のように、勾配方向は、おおよその傾向がある。また、これらの傾向は、撮像対象の状況等に応じて、大きく変わることは無い。よって、例えば、勾配方向の種類数が8方向の場合、パターンマッチングで一致する勾配方向の種類数は8に近いものとなるはずである。したがって、上記の照合領域内において合致する勾配方向の種類数が、あらかじめ定められた規定種類数以上の場合に、合致度を算出するようにすれば、指示位置の検出処理のメモリ容量を少量化すること及び処理時間を短縮化することを可能とし、指示位置の検出処理のコストをさらに削減させることができる。
さらに、スコア算出部10は、自身が算出した合致度が所定の値以上である場合には、後述する第2エッジ抽出部15から、その合致度に対応する照合領域についての、第1エッジ抽出部4により抽出された第1エッジ画素数及び第2エッジ抽出部15により抽出された第2エッジ画素数を取得する。そして、スコア算出部10は、第1エッジ画素のうち第2エッジ画素が占める割合が所定の値を超えているか否かを判断し、超えているとの判断結果に基づいて自身が算出した合致度を位置特定部11に出力する。一方、スコア算出部10は、超えていないとの判断に基づいて自身が算出した合致度は、位置特定部11に利用されることが回避されることになる。
要は、スコア算出部10が、自身が算出する合致度のうち、それぞれに対応する、第1エッジ画素のうち第2エッジ画素が占める割合が所定の値を超えているものに限り、位置特定部11に出力するように構成されていればよい。
位置特定部11は、スコア算出部10が算出した合致度が最大となる画素(以下、「ピーク画素」と呼ぶ。)の位置から、撮像対象による撮像画像上の指示位置を特定する。位置特定部11は、ピーク探索部(ピーク画素特定手段、位置特定手段)12と、座標算出判定部(座標算出判定手段、位置特定手段)13と、座標算出部(座標算出手段、位置特定手段)14と、を有している。
ピーク探索部12は、注目画素の周囲で所定の画素数を含む探索領域(以下、「第1領域」と呼ぶ場合がある。)内で、スコア算出部10が算出した合致度が最大値をとる画素であるピーク画素を探索する。
座標算出判定部13は、探索領域の画素数よりも少ない所定の画素数を有すると共に、探索領域内に完全に包含される小領域(以下、「第2領域」と呼ぶ場合がある。)内に、ピーク探索部12が発見したピーク画素が存在することを判定した場合に、座標算出部14に撮像対象による撮像画像上の指示位置を算出させる。
座標算出部14は、ピーク探索部12が発見したピーク画素を中心とする所定の画素数を含む領域であるピーク画素領域内の、画素ごとの合致度を用いて、撮像対象による撮像画像上の指示位置を算出するものである。
第2エッジ抽出部15は、縦勾配量算出部3a及び横勾配量算出部3bが算出した各画素の縦方向勾配量Sy及び横方向勾配量Sxの算出結果から、撮像画像のエッジ部分の画素である第2エッジ画素を抽出(特定)する。
ここで、第2エッジ画素は、第1エッジ抽出部4により抽出される第1エッジ画素と同様、画像データを構成する各画素のうち、明るさが急激に変化する部分(エッジ)における画素である。そして、この第2エッジ画素は、第1エッジ抽出部4により先に抽出された第1エッジ画素のうち、縦方向勾配量Sy及び横方向勾配量Sxのそれぞれ、又は、勾配の大きさABS(S)が第1閾値よりも大きい第2閾値以上である画素のことである。
画像処理装置1の表示画面に近接して来る外部の物体である指腹、ペン等が表示画面に実際に接触した場合、表示画面に直接接触したエッジにおける明るさの変化幅、つまり、そのエッジ強さは、表示画面に近接するものの直接は接触しないエッジと比較して、大きくなる傾向にある。例えば、表示画面に接触したタッチ指と浮いている非タッチ指との間では、指先のエッジの強さ、つまり、指先と背景との画素値差は異なるものとなる。タッチ指の撮像画像はくっきりするため、そのエッジは強いが、非タッチ指は撮像画像がぼけるため、そのエッジは弱くなる。
そこで、第2エッジ抽出部15は、第1エッジ抽出部4により抽出された第1エッジ画素のうち、第1閾値よりも大きい第2閾値以上である、縦方向勾配量Sy及び横方向勾配量Sxのそれぞれ、又は、勾配の大きさABS(S)を持つ第2エッジ画素を抽出する。
そして、第1エッジ画素のうち第2エッジ画素が占める割合が所定の値を超えていれば表示画面に近接する外部の物体が実際に表示画面に接触しているものとする。
このことが第2エッジ画素を抽出する目的である。
閾値調節部16は、第2エッジ抽出部15が第2エッジ画素を抽出する際に利用する第2閾値を調節する。
上述したように、画像処理装置1の表示画面に近接して来る外部の物体のエッジ強さは、画像処理装置1の利用空間の明るさに応じて変化してしまう。そこで、閾値調節部16は、画像処理装置1の利用空間の明るさを取得し、その利用空間の明るさに応じて第2閾値を調節する。
また、閾値調節部16は、画像処理装置1の利用空間の明るさを取得する際、例えば、画像処理装置1の利用空間に配置された照度計の測定結果から利用空間の明るさを取得すればよい。また、表示画面に利用空間の明るさを検知するための専用の光センサーを配置し、その光センサーの検知結果から利用空間の明るさを取得してもよい。
閾値格納部17は、画像処理装置1の利用空間の明るさに応じて第2エッジ抽出部15が利用すべき第2閾値をテーブル形式であらかじめ格納している。閾値格納部17は、例えば、撮像画像上における背景画像の画素値に一対一に対応する、複数の第2閾値をあらかじめ格納している。撮像画像が256階調で表示される場合であれば、閾値格納部17は、背景画素が0〜255階調の各々の場合についての第2閾値を格納していることになる。
また、閾値格納部17は、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやコンパクトディスク−ROM/MO/MD/デジタルビデオデイスク/コンパクトディスク−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系等を用いることができる。
(2.画像処理装置の動作の概要)
次に、画像処理装置1の動作の概要について説明する。
図3は画像処理装置1の全体的な動作の概要を示すフローチャートである。ステップS101では、図1の低解像度化部2が画像データを低解像度化し、S102に進む。例えば、320×240画素の画像データであれば、160×120画素(低解像度化率1/2)、又は80×60画素(低解像度化率1/4)等のようにバイリニア縮小させる。ここで、バイリニア縮小とは、例えば2×2の各画素が持つ画素値の平均値をとり、2×2画素のデータを、該平均値を持った1×1画素のデータに置き換えることにより、全体として1/4の情報圧縮を行なうことを言う。
なお、高速処理の観点からは、できるだけ低解像度化することが好ましいが、必要なエッジ情報等を得るためには、例えば320×240画素(150dpi)の画像データの場合であれば、80×60画素(低解像度化率1/4)を低解像度化の限度とすることが好ましい。また、高精度処理の観点からは、低解像度化を全く行なわないか、低解像度化するとしても、160×120画素(低解像度化率1/2)に留めることが好ましい。
以上の画像データの低解像度化により、パターンマッチングの処理コストやメモリ容量の少量化、及び処理時間の短縮化を図ることがきる。
S102では、縦勾配量算出部3a及び横勾配量算出部3bが、画像データ上の画素ごとに、縦方向勾配量Sy及び横方向勾配量Sxを算出してから、方向特定部5が、画素ごとの勾配方向と無方向とのいずれかを特定するまでの過程(勾配方向・無方向特定過程)を経た上で、S103に進む。
S103では、効率化部6で、照合領域と、モデルパターンとの照合を行なう場合に、照合領域とモデルパターンとの照合の効率化を図るか否か、つまり、照合効率化の要否を選択する。照合効率化を行なう場合(Yes)には、S104に進み、効率化部6で照合効率化を行った上でS105に進み、照合効率化を行なわない場合(No)にはS108に進み、効率化部6は何もせず、そのままの情報(画像データ、但し、低解像度化部2で、低解像度化している場合には、低解像度化後の画像データ)でS105に進む。
S105では、一致画素数算出部7が、照合領域とモデルパターンとの照合を行って、一致画素数を算出し、パターン合致度算出部9が、パターン合致度を算出してから、スコア算出部10が、一致画素数算出部7が算出した一致画素数、及び、パターン合致度算出部9が算出したパターン合致度から、合致度を算出するまでの過程(パターンマッチング過程)を経た上で、S106に進む。
S106では、第2エッジ抽出部15が、第2エッジ画素を抽出してから、スコア算出部10が、自身が算出した合致度を位置特定部11に出力するまでの過程(接触・非接触判定過程)を経た上で、S107に進む。
S107では、位置特定部11が、スコア算出部10が算出した合致度が最大となる画素(以下、「ピーク画素」と呼ぶ。)の位置から、撮像対象による撮像画像上の指示位置を特定して「エンド」となる(ポインティング位置特定過程)。
以上が、画像処理装置1の全体の動作概要である。以下では、勾配方向・無方向特定過程、照合効率化、パターンマッチング過程、接触・非接触特定過程及びポインティング位置特定過程における画像処理装置1の各動作について説明する。
(3.勾配方向・無方向特定過程)
まず、図1、図4、図5(a)及び図5(b)に基づいて、勾配方向・無方向特定過程における画像処理装置1の動作について説明する。
図4は、画像処理装置1の動作のうち、勾配方向・無方向特定過程の動作を示すフローチャートである。図5(a)は、勾配方向・無方向特定過程において参照されるテーブルの一例であり、図5(b)は、勾配方向・無方向特定過程において参照されるテーブルの他の例である。
図4のフローチャートでは、まず、縦勾配量算出部3a及び横勾配量算出部3bがそれぞれ、縦方向勾配量Sy及び横方向勾配量Sxを算出してからスタートする。
S201では、第1エッジ抽出部4が、各画素における勾配の大きさABS(S)が第1閾値以上か否かを判定し、ABS(S)≧第1閾値ならば(Yes)、S202に進み、ABS(S)<第1閾値ならば(No)、S210に進む。なお、本実施の形態では、ABS(S)=Sx×Sx+Sy×Syとして計算しているが、この量は、上式(4)における厳密な意味で勾配の大きさと異なる。しかし、実装上はこのように勾配の大きさを定義しても問題は無い。
S210に進んだ場合には、方向特定部5は、対象となっている画素、つまり、第1エッジ画素以外の画素を無方向と設定(特定)し、次の画素へ進んで、S201に戻る。なお、S202に進んだ場合には、対象となっている画素は、無論、第1エッジ画素である。
S202では、方向特定部5が、横方向勾配量Sxが0であるか否かを判定し、Sx≠0ならば、S203(Yes)に進み、Sx=0ならば、S206(No)に進む。
S203では、方向特定部5は、横方向勾配量Sxが正の値をとるか否かを判定し、Sx>0ならば、S204(Yes)に進み、方向特定部5は、図5(a)のテーブルにしたがって、該当画素について、勾配方向ANG(S)に応じて量子化された勾配方向を設定する。
一方、Sx<0ならば、S205に進み、方向特定部5は、図5(b)のテーブルにしたがって、該当画素について、勾配方向ANG(S)に応じて量子化された勾配方向を設定する。
次に、S206では、方向特定部5は、縦方向勾配量Syが0か否かを判定し、Sy≠0ならば、S207(Yes)に進み、Sy=0ならば、S210(No)に進み、該当画素を無方向と設定し、次の画素へ進んでS201に戻る。
S207では、方向特定部5は、縦方向勾配量Syが正の値をとるか否かを判定し、Sy>0ならば、S208(Yes)に進み、該当画素の勾配方向を上向きに設定して、S201に戻る。
一方、Sy<0ならば、S209(No)に進み、該当画素の勾配方向を下向きに設定して、次の画素へ進んでS201に戻る。
以上の工程は、すべての画素の勾配方向・無方向の設定が終わるまで繰り返される。
パターンマッチングにおいて重要な情報は、エッジ部分の画素である第1エッジ画素における勾配方向である。
したがって、上記の動作により、あまり重要でない第1エッジ画素以外の画素における勾配方向を一律無方向と看做すことで、パターンマッチングの効率化をさらに向上させることができる。また、撮像対象による撮像画像上の指示位置の検出を可能としてメモリ容量を少量化すること及び処理時間を短縮化することを可能とし、指示位置の検出処理のコストをさらに削減させることができる。
(4.照合効率化)
次に、画像処理装置1のおける照合効率化について説明する。
図1に示す効率化部6は、照合領域を、複数の同一画素数の分割領域に分割すると共に、分割領域ごとに、分割領域に含まれる画素ごとの勾配方向及び無方向の情報を、分割領域に含まれる勾配方向及び前記無方向の情報に置き換えることで、照合領域とモデルパターンとの照合の効率化を図る。
また、スコア算出部10は、効率化部6によって照合の効率化が行なわれた照合領域とモデルパターンとの照合を行なって、照合領域内のそれぞれの分割領域に含まれる勾配方向と、モデルパターンにおける勾配方向との一致数を、前記合致度として算出する。
上述のように、勾配方向は、おおよその傾向がある。また、これらの傾向は、撮像対象の状況等に応じて、大きく変わることは無い。したがって、分割領域の画素数をあまり大きくしなければ、該分割領域内における勾配方向の画素の位置は、勾配方向を用いたパターンマッチングにおいてあまり重要な情報ではない。
そこで、分割領域ごとに、分割領域に含まれる画素ごとの勾配方向及び無方向の情報を、分割領域に含まれる勾配方向及び無方向の情報に置き換えることにより、パターンマッチングの照合精度を維持しつつ、照合効率化が可能となる。また、この効率化に伴い、撮像対象による前記撮像画像上の指示位置の検出処理に要するコストを削減することもできる。
以上より、パターンマッチングの照合精度を維持しつつ、照合効率化を可能とし、撮像対象による撮像画像上の指示位置の検出処理に要するコストを削減することができる画像処理装置1を提供することができる。
ここで、図6(a)及び図6(b)に基づき、画像処理装置1における照合効率化の具体例について説明する。
まず、図6(a)に示すように、周囲が暗い場合における画像データの各画素における勾配方向の分布の特徴は、中央にほぼ円形状である、無方向の画素の領域があり、その回りをとり囲むようにして該無方向の領域に向かう向きの勾配方向を持つ画素が多数分布している。
次に、図6(b)は、図6(a)の画像データについて照合効率化を行った後の様子を示す概要図である。
図6(a)に示すように、14×14画素の領域(照合領域)を、複数の2×2画素の領域(分割領域)に分割すると共に、2×2画素の領域ごとに、2×2画素の領域に含まれる画素ごとの勾配方向及び無方向の情報を、2×2画素の領域に含まれる勾配方向及び無方向の情報に置き換えることで、14×14画素の領域とモデルパターン(モデルパターンの例については後に詳しく説明する。)との照合の効率化が行われる。
たとえば、図6(a)に示す14×14画素の領域を分割した複数の2×2画素領域のうち、上から2つめ、左から1つめの2×2画素の領域には、左上の画素が「無方向」、右上の画素が「右下向き(勾配方向)」、左下の画素が「右向き(勾配方向)」、及び右下の画素が「右下向き(勾配方向)」となっている。この2×2画素の領域について各勾配方向の存在位置に関する情報を省略したものが、図6(b)の上から2つめ、左から1つめのブロック(以下、便宜上「画素」と呼ぶ場合がある。)である。他のブロックも同様にして生成することができる。結果として、図6(a)に示す14×14画素領域は、合計7×7=49個の2×2画素領域に分割される。
次に、図7(a)〜図9(b)に基づき、照合領域と照合されるモデルパターンの具体例について説明する。
図7(a)は、周囲が暗い場合における照合効率化前の画像データと照合されるモデルパターンの一例を示す概要図である。また、図7(a)のモデルパターンは、図6(a)に示す14×14画素の領域とパターンマッチングを行なう場合を想定したものである。また、撮像対象としては、指腹を想定している。
ところで、図7(a)のモデルパターンは、13×13画素のモデルパターンとなっている。この場合、図6(a)に示す14×14画素の領域と全画素数が異なっているが、この例のように照合領域とモデルパターンとの画素数は必ずしも一致しなくても良い。
また、奇数×奇数(13×13)としているのは、中心の画素が1つとなるようにするためである。この中心の画素を画像データ上の着目画素にあわせて1画素づつ、ずらせてパターンマッチングを行なう。
この場合の一致画素数は、1画素ごとに照合されて算出されるので、13×13=169画素の照合が必要となる。
一方、図7(b)は、周囲が明るい場合における照合効率化前の画像データと照合されるモデルパターンの一例を示す概要図である。図7(a)のモデルパターンと比較すると各画素の勾配方向が逆向きになっている。図7(a)は、バックライトの光の反射光を基礎として撮像された画像データを想定したものであり、中央に向かうほど明るくなっている様子を示している。一方、図7(b)は、外光を基礎として撮像された画像データを想定したものであり、画像のエッジ部分に向けて明るくなっている様子を示している。
次に、図8(a)は、周囲が暗い場合における照合効率化後の画像データと照合されるモデルパターンの一例を示す概要図である。図8(a)のモデルパターンは、図6(b)の照合効率化後の照合領域とのパターンマッチングを想定したものである。この例のように、照合領域とモデルパターンとデータ形式は必ずしも同一でなくても良い。この例では、2×2画素の領域を1画素(与えられる勾配方向は1つ)と看做してモデルパターンを簡略化することにより、さらなる照合の効率化を図っている。
図8(b)は、周囲が明るい場合における照合効率化後の画像データと照合されるモデルパターンの一例を示す概要図である。図8(a)は、バックライトの光の反射光を基礎として撮像された画像データを想定したものであり、中央に向かうほど明るくなっている様子を示している。一方、図8(b)は、外光を基礎として撮像された画像データを想定したものであり、画像のエッジ部分に向けて明るくなっている様子を示している。
図9(a)は、周囲が暗い場合における照合効率化後の画像データと照合されるモデルパターンの他の例を示す概要図である。図8(a)のモデルパターンとの違いは、2×2画素分が1つの領域に纏められているが、該1つの領域ごとに、2つの勾配方向(又は無方向)の自由度が与えられている点である。このようなモデルパターンを工夫することにより、照合の効率化を図りつつ、照合精度を高めることができる。
図9(b)は、周囲が明るい場合における照合効率化後の画像データと照合されるモデルパターンの他の例を示す概要図である。図9(a)は、バックライトの光の反射光を基礎として撮像された画像データを想定したものであり、中央に向かうほど明るくなっている様子を示している。一方、図9(b)は、外光を基礎として撮像された画像データを想定したものであり、画像のエッジ部分に向けて明るくなっている様子を示している。
(5.パターンマッチング過程)
次に、画像処理装置1におけるパターンマッチングの過程について説明する。
図10は、図1に示す画像処理装置1の動作のうち、パターンマッチング過程の動作を示すフローチャートである。
S301では、一致画素数算出部7が、照合領域とモデルパターンとの照合を行って、照合領域に含まれる勾配方向と、モデルパターンに含まれる勾配方向とが一致する画素数(一致画素数)を算出してS302に進む。
S302では、効率化部6を備えていない場合には、方向特定部5が、効率化部6を備えている場合には、効率化部6が、勾配方向のパターン合致度も算出するかどうかを決定し、パターン合致度の算出を決定した場合には、パターン合致度算出部9に通知してS303(Yes)に進む。一方、パターン合致度の算出を行なわないことを決定した場合には、スコア算出部10に通知してS304に進む。
なお、ここでは、一致画素数が必ず算出される場合について説明しているが、このような場合に限られず、パターン合致度のみを算出する構成を採用しても良い。
また、パターン合致度とは、照合領域に含まれる画素ごとの勾配方向とモデルパターンに含まれる画素ごとの勾配方向との一致パターンと、あらかじめ定められ、モデルパターン・比較用一致パターン格納部8に記録されている比較用一致パターンとが類似する度合いを示す量である。
S303では、パターン合致度算出部9が、方向特定部5又は効率化部6からパターン合致度の算出を決定した旨の通知を受けて、パターン合致度を算出し、S304に進む。
S304では、パターン合致度算出部9が、パターン合致度の算出を行っていない場合には、一致画素数算出部7が算出した一致画素数を、照合領域と前記モデルパターンとのマッチングの度合いを示す合致度として算出する。一方、パターン合致度算出部9が、パターン合致度の算出を行っている場合には、一致画素数算出部7が算出した一致画素数及びパターン合致度算出部9が算出したパターン合致度を、合算した量を照合領域とモデルパターンとのマッチングの度合いを示す合致度として算出する。
次に、パターンマッチング過程におけるスコア算出部10の具体的なスコア(合致度)算出方法について説明する。
図11(a)は、照合効率化前の周囲が暗い場合における照合領域と、モデルパターンとのパターンマッチングを説明するための概要図であり、図11(b)は、その合致度算出方法の一例を示す図である。
図11(a)は、図6(a)の照合領域と、図7(a)のモデルパターンとのパターンマッチングを行ったものを示している。ここで、図の中央の7行7列(以下では、横方向に並ぶ画素を「列」、縦方向に並ぶ画素を「行」と呼ぶ。また、上から行、左から列を数える。)にある1×1画素はスコアが付与される注目画素の位置である。網掛けされた部分は、照合領域とモデルパターンとで、勾配方向が一致している画素を示している。
図11(b)に示す、一致パターンは、一致した方向の種類数を見る場合のテーブルを示している。本例では、8方向のすべてについて一致した画素が存在していることを示している。
次に、図11(b)に示す、一致画素数の計算は、上記網掛けの部分を左上の1行1列の画素から、右下の13行13列の画素までの一致画素数を算出する方法の一例を示すものである。ここでは、勾配方向が与えられている画素で、モデルパターンの勾配方向と一致した画素を「1」とし、無方向及びモデルパターンの勾配方向と一致していない画素は「0」として計算している。なお、無方向と判定された画素は、最初から計算に含めない構成としても良い。ここでは、網掛けで示された一致画素数は「85」であるとの算出結果を得ている。なお、この一致画素数をスコア(合致度)として用いても良いが、以下で説明するような正規化一致画素数(合致度)を用いても良い。
次に、図11(b)に示す、正規化一致画素数について説明する。この正規化一致画素数は、例えば、照合精度を高めるためモデルパターンを複数種類用意してパターンマッチングを行なう場合(例えば、21×21、13×13、及び7×7画素の3種類のモデルパターン)に、モデルパターンのサイズに依存しない量として一致画素数を正規化するものである。
ここでは、正規化一致画素数を、次式(6)で定義する。
正規化一致画素数=適当な定数×(一致画素数/モデル中の方向成分が存在する要素数) ・・・・(6)
なお、「適当な定数」は、計算の便宜等を考慮して適宜定めれば良い。ここでは、正規化一致画素数が0〜10の範囲となるように、適当な定数=10と設定している。なお、以下で説明するパターンマッチングの例においても正規化一致画素数を使用しているが、説明は省略する。
(6)式から、図11(a)の場合の正規化一致画素数を求めると以下のようになる。
正規化一致画素数=10×(85/136)=6.25≒6
次に、図12(a)は、照合効率化後の周囲が暗い場合における照合領域と、モデルパターンとのパターンマッチングを説明するための概要図であり、図11(b)は、その合致度算出方法の一例を示す図である。
図12(a)は、図6(b)の照合効率化後の照合領域と、図8(a)のモデルパターンとのパターンマッチングを行ったものを示している。ここで、図の中央の4行4列にある1×1画素(2×2画素に相当するものであるが、便宜上「画素」と言う。)は、スコアが付与される注目画素の位置である。網掛けされた部分は、照合領域とモデルパターンとで、勾配方向が一致している場合がある画素を示している。
図12(b)に示す、一致パターンは、一致した方向の種類数を見る場合のテーブルを示している。本例では、8方向のすべてについて一致した画素が存在していることを示している。
次に、図12(b)に示す、一致画素数の計算は、上記網掛けの部分を左上の1行1列の画素から、右下の7行7列の画素までの一致画素数を算出する方法の一例を示すものである。ここでは、例えば、1行2列では、照合領域では、勾配方向が「右下」の画素が「3つ」存在しており、一方、モデルパターンの勾配方向は、1つであるが、「右下」である。従って、この場合の一致画素数は、「3」と計算する。
他の例では、2行1列では、照合領域では、勾配方向が「右下」の画素が「2つ」と、「右」が「1つ」存在しており、一方、モデルパターンの勾配方向は、1つであるが、「右下」である。勾配方向は、「右下」が「2つ」一致しているが、「右」は一致していない。従って、この場合の一致画素数は、「2」と計算する。なお、ここでは、無方向と判定された画素は、最初から計算に含めない構成としている。
以上の計算をすべての画素について行なえば、網掛けで示された部分の一致画素数は「91」であるとの算出結果を得ている。なお、この一致画素数をスコア(合致度)として用いても良いが、以下で説明するような正規化一致画素数を用いても良い。
ここでは、正規化一致画素数を、次式(7)で定義する。
正規化一致画素数=適当な定数×(一致画素数/モデル中の方向成分が存在する要素数を4倍した値) ・・・・(7)
適当な定数=10と設定している。
(7)式から、図11(a)の場合の正規化一致画素数を求めると以下のようになる。
正規化一致画素数=10×(91/176)=5.17≒5
次に、図13(a)は、照合効率化後の周囲が暗い場合における照合領域と、モデルパターンとのパターンマッチングを説明するための概要図であり、図13(b)は、その合致度算出方法の一例を示す図である。
図13(a)は、図6(b)の照合効率化後の照合領域と、図9(a)のモデルパターンとのパターンマッチングを行ったものを示している。ここで、図の中央の4行4列にある1×1画素(2×2画素に相当するものであるが、便宜上「画素」と言う。)は、スコアが付与される注目画素の位置である。網掛けされた部分は、照合領域とモデルパターンとで、勾配方向が一致している場合がある画素を示している。
図13(b)に示す、一致パターンは、一致した方向の種類数を見る場合のテーブルを示している。本例では、8方向のすべてについて一致した画素が存在していることを示している。
次に、図13(b)に示す、一致画素数の計算は、上記網掛けの部分を左上の1行1列の画素から、右下の7行7列の画素までの一致画素数を算出方法の一例を示すものである。ここでは、例えば、1行2列では、照合領域では、勾配方向が「右下」の画素が「3つ」存在しており、一方、モデルパターンの勾配方向は、2つであり、「右下」が「1つ」に「下」が「1つ」である。従って、「右下」が一致しているので、この場合の一致画素数は、「3」と計算する。
他の例では、2行1列では、照合領域では、勾配方向が「右下」の画素が「2つ」と、「右」が「1つ」存在しており、一方、モデルパターンの勾配方向は、2つであるが、「右」が「1つ」と「右下」が「1つ」である。勾配方向は、「右」が「1つ」と「右下」が「2つ」一致している。従って、この場合の一致画素数は、「3」と計算する。なお、ここでは、無方向と判定された画素は、最初から計算に含めない構成としている。
ここで、下線を引いた数字と、引いてない数字とが記載されているが、下線を引いた数字は、図12(a)の場合と比較して、一致画素数が増加しているものを示している。
この結果は、図8(a)のモデルパターンよりも図9(a)のモデルパターンを使用した場合の方が、より変形に強い(円形からの歪に対するロバスト性の高い)パターンマッチングが行なえることを示している。
以上の計算をすべての画素について行なえば、網掛けで示された部分の一致画素数は「119」であるとの算出結果を得ている。なお、この一致画素数をスコア(合致度)として用いても良いが、以下で説明するような正規化一致画素数を用いても良い。
(7)式から、図13(a)の場合の正規化一致画素数を求めると以下のようになる。
正規化一致画素数=10×(119/176)=6.76≒7
次に、図14〜図17(b)に基づき、図1のスコア算出部10が、一致画素数と合致パターンとを併用して、スコア(合致度)を算出する場合について説明する。
図14は、画像処理装置1におけるパターンマッチングにおいて一致画素数とパターン合致度とを併用する場合について説明するためのフローチャートである。
図14のS401では、一致画素数算出部7が、一致画素数を初期化して、S402に進む。S402では、パターン合致度算出部9が一致パターンの初期化を行ってS403に進む。ここでは、勾配方向の種類数を初期化している様子を示している。すべての勾配方向が「無」と表示されているのは、このことを示している。
S403では、一致画素数算出部7とパターン合致度算出部9とが1画素ごとに(照合効率化後の画素も含む)勾配方向の照合等を行って、S404に進む。
S404では、方向が一致すれば(Yes)S405に進み、一致画素数算出部7が一致画素数に一致した方向の要素数(効率化処理なしの場合は「1」)を加えてS406に進み、一方、方向が一致する画素が全くなければ、(No)S401に戻る。
S406では、パターン合致度算出部9が一致した勾配方向を「有」と更新して、S407に進む。
S407では、一致画素数算出部7及びパターン合致度算出部9がモデルパターンの全要素(画素)について照合が終了した場合には、(Yes)S408に進み、照合が終了していない場合には、(No)S403に戻る。
S408では、パターン合致度算出部9が一致パターンのチェックを行ない、S409に進む。この一致パターンのチェックの詳細については、後に説明する。
S409では、パターン合致度算出部9が、モデルパターン・比較用一致パターン格納部8を参照して、「許可パターン」に該当するか否かを判定し、許可パターンに該当する場合は、(Yes)S410に進む。一方、許可パターンに該当しない場合は、(No)S404に戻る。
なお、パターン合致度算出部9は、「許可パターン」に該当する場合にはパターン合致度を「1」とし、「許可パターン」に該当しない場合にはパターン合致度を「0」とし、スコア算出部10は、一致画素数算出部7が算出した一致画素数にこれらの数値を掛ける構成が考えられる。
S410では、スコア算出部10が、一致画素数算出部7が算出した一致画素数から正規化一致画素数を算出してパターンマッチングのスコア(合致度)とする。
次に、図15(a)及び図15(b)に基づき、上記パターンマッチングにおける一致パターンのチェックの一例について説明する。
図15(a)は、パターン合致度算出過程の一例を示すフローチャートであり、図15(b)は、パターン合致度算出過程の他の例を示すフローチャートである。
なお、ここでは、勾配方向の種類は8方向あり、勾配方向種類数の閾値(DN)を5に設定した場合について説明する。
図15(a)に示すように、S501では、パターン合致度算出部9が、一致パターンの「有」の数が5以上の場合には、S502に進み、一致パターンの許可を行なう。
一方、パターン合致度算出部9は、一致パターンの「有」の数(勾配方向種類数)が5未満の場合には、S503に進み、一致パターンの不許可を行なう。
同様に、図15(b)には、パターン合致度算出部9が、一致パターン中の最大連接数(連続一致数)を算出し、一致パターン中の最大連接数(連続一致数)の閾値(DN)を上記と共通の5に設定した場合が異なること以外は、S601〜S603のフローは、図15(a)のS501〜S503のフローと同様であるので、ここでは、説明を省略する。
次に、図16(a)〜図16(c)に基づき、一致パターンのチェックにおける第1の例を説明する。
図16(a)は、パターン合致度算出過程の一例を示す概要図であり、図16(b)は、パターン合致度算出過程の他の例を示す概要図であり、図16(c)は、パターン合致度算出過程のさらに他の例を示す概要図である。
図16(a)では、一致画素数は「24」と算出している。また、勾配方向の一致パターンは、「8」方向がすべて存在しているので、閾値の5を超えており、図15(a)のフローでは、「許可パターン」と判定される。一方、一致パターン中の最大連接数、「有」が連接して存在する数は、「8」となり、閾値の5を超えており、図15(b)のフローでも、「許可パターン」と判定される。したがって、図16(a)の場合には、パターン合致度算出部9は、パターン合致度として「1」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「24」と「1」とを掛け算したのち、正規化一致画素数を算出してスコアとする。
図16(b)では、一致画素数は「24」と算出している。また、勾配方向の一致パターンは、「6」方向が存在しているので、閾値の5を超えており、図15(a)のフローでは、「許可パターン」と判定される。一方、一致パターン中の最大連接数、「有」が連接して存在する数は、「6」となり、閾値の5を超えており、図15(b)のフローでも、「許可パターン」と判定される。したがって、図16(b)の場合には、パターン合致度算出部9は、パターン合致度として「1」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「24」と「1」とを掛け算したのち、正規化一致画素数を算出してスコアとする。
図16(c)では、一致画素数は「24」と算出している。また、勾配方向の一致パターンは、「6」方向が存在しているので、閾値の5を超えており、図15(a)のフローでは、「許可パターン」と判定される。一方、一致パターン中の最大連接数、「有」が連接して存在する数は、「6」となり、閾値の5を超えており、図15(b)のフローでも、「許可パターン」と判定される。なお、この例のように、一致パターンのテーブルの左端と右端とは、繋がっている(周期的境界条件)ものとして、一致パターン中の最大連接数を算出する。
以上の結果、図16(c)の場合には、パターン合致度算出部9は、パターン合致度として「1」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「24」と「1」とを掛け算したのち、正規化一致画素数を算出してスコアとする。
次に、図17(a)〜図17(c)に基づき、一致パターンのチェックにおける第2の例を説明する。
図17(a)は、パターン合致度算出過程のさらに他の例を示す概要図であり、図17(b)は、パターン合致度算出過程のさらに他の例を示す概要図であり、図17(c)は、パターン合致度算出過程のさらに他の例を示す概要図である。
図17(a)では、一致画素数は「24」と算出している。また、勾配方向の一致パターンは、「6」方向が存在しているので、閾値の5を超えており、図15(a)のフローでは、「許可パターン」と判定される。一方、一致パターン中の最大連接数、「有」が連接して存在する数は、「4」となり、閾値の5以下であり、図15(b)のフローでは、「不許可パターン」と判定される。
したがって、図17(a)の場合には、図15(a)のフローを用いた場合、パターン合致度算出部9は、パターン合致度として「1」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「24」と「1」とを掛け算したのち、正規化一致画素数を算出してスコアとする。
一方、図15(b)のフローを用いた場合、パターン合致度算出部9は、パターン合致度として「0」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「24」と「0」とを掛け算して「0」をスコアとする。
図17(b)では、一致画素数は「22」と算出している。また、勾配方向の一致パターンは、「4」方向が存在しているので、閾値の5以下であり、図15(a)のフローでは、「不許可パターン」と判定される。一方、一致パターン中の最大連接数、「有」が連接して存在する数は、「2」となり、閾値の5以下であり、図15(b)のフローでも、「不許可パターン」と判定される。
したがって、図17(b)の場合には、パターン合致度算出部9は、パターン合致度として「0」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「22」と「0」とを掛け算して「0」をスコアとする。
図17(c)では、一致画素数は「22」と算出している。また、勾配方向の一致パターンは、「4」方向が存在しているので、閾値の5以下であり、図15(a)のフローでは、「不許可パターン」と判定される。一方、一致パターン中の最大連接数、「有」が連接して存在する数は、「4」となり、閾値の5を超えており、図15(b)のフローでも、「不許可パターン」と判定される。
以上の結果、図17(c)の場合には、パターン合致度算出部9は、パターン合致度として「0」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「22」と「0」とを掛け算して「0」をスコアとする。
以上のように、スコア算出部10は、照合領域と、モデルパターンとの照合を行って、照合領域に含まれる勾配方向と、モデルパターンに含まれる勾配方向とが一致する画素数(一致画素数)、及び、照合領域に含まれる画素ごとの勾配方向とモデルパターンに含まれる画素ごとの勾配方向との一致パターンと、あらかじめ定められた比較用一致パターンとが類似する度合いを示すパターン合致度から、スコア(合致度)を算出する。
(6.接触・非接触特定過程)
次に、画像処理装置1における接触・非接触特定過程について説明する。
図18は、画像処理装置1の動作のうち、接触・非接触特定過程の動作を示すフローチャートである。
図18においては、S701では、スコア算出部10が、自身が算出した合致度が所定の値以上である場合には(Yes)、S702に進む。一方、自身が算出した合致度が所定の値以上でない場合には(No)、本接触・非接触特定過程の動作が終了する。
S702では、第2エッジ抽出部15は、合致度が所定の値以上であるとのスコア算出部10の判断に基づいて、第2エッジ画素を抽出して、S703に進む。
S703では、スコア算出部10が、第2エッジ抽出部15から第1エッジ画素数及び第2エッジ画素数を取得し、第1エッジ画素のうち第2エッジ画素が占める割合が所定の値を超えているか否かを判断する。そして、所定の値を超えていれば(Yes)、S704に進む。一方、所定の値を超えていなければ(No)、本接触・非接触特定過程の動作が終了する。
S704では、スコア算出部10が、第1エッジ画素のうち第2エッジ画素が占める割合が所定の値を超えているとの自身の判断に基づいて、今回自身が算出した合致度を位置特定部11に出力する。
このようにして、図18に示す接触・非接触特定過程の動作が実行されることになる。
ここで、この動作の効果について具定例を用いて説明する。図2(c)及び図2(d)に示したように、周囲の明るさが一定以上になると表示画面に近接する指以外の部分の画素値は、指の画素値よりも明るくなる。指が表示画面に接触している時には、例えば図19に示すような撮像画像が得られる。
この場合、第1エッジ抽出部4により抽出された第1エッジ画素の勾配方向は図20に示すような配置となる。そして、図中のA部においてパターンマッチングが行なわれることになる。
また、第2エッジ抽出部15により抽出された第2エッジ画素は図21に示すような配置となる。
一方、図22は指が表示画面に接近しているが接触していないときの撮像画像である。そして、第1エッジ抽出部4により抽出された第1エッジ画素の勾配方向は図23に示すような配置となる場合がある。この場合、図中のB部においてパターンマッチングが行なわれてしまう可能性がある。
しかしながら、図22に示す撮像画像においては、図24に示すように、第2エッジ抽出部15により第2エッジ画素が抽出されることがない。なぜなら、縦方向勾配量Sy及び横方向勾配量Sxのそれぞれ、又は、勾配の大きさABS(S)が第2閾値以上である第2エッジ画素が第1エッジ画素のうちに存在しないからである。
したがって、仮に、非接触の指の画像データに対してパターンマッチングが行なわれたとしても、第2エッジ画素を抽出することにより、接触・非接触の特定をより精度良く行なうことができる。
次に、画像処理装置1の利用空間の明るさが変化する場合について説明する。上述したように、周囲の明るさが一定以上になると表示画面に近接する指以外の部分の画素値は、指の画素値よりも明るくなる。そして、周囲が明るくなると指以外の背景部分の画素値と指の画素値との差が広がる、すなわち、指先のエッジ強度が周囲の明るさに応じて変化する。
ここで、第2エッジ抽出部15が利用する第2閾値は、注目画素の画素値と隣接画素の画素値との差、つまり、背景部分の画素値と指の画素値との差に対して設定されるものである。このため、指先のエッジ強度が周囲の明るさに応じて変化する場合において、第2閾値を一律に設定してしまうと、第2エッジ画素の抽出を精度良く行なうことができない。
そこで、画像処理装置1の利用空間の明るさが変化する場合においては、周囲の明るさに応じて第2閾値を調節することにより、周囲の明るさが変化しても第2エッジ画素の抽出を高精度に実行する。
具体的には、本実施の形態における画像処理装置1は、図1に示したように、閾値調節部16が利用空間の明るさを取得し、その明るさに応じて第2閾値を調節し、第2エッジ抽出部15に出力する。
閾値調節部16は、例えば、撮像画像における背景画像の画素値を取得する。例えば、撮像画像のヒストグラムを生成し、ヒストグラム上で明るい部分の画素値を背景画像の画素値とする。
また、所定の大きさの矩形を撮像画像上で走査したときの、矩形内の平均画素値の最大値を背景画像の画素値としてもよい。
さらに、モデルパターンと照合する際に、モデルパターンの外側の複数画素を用いてヒストグラムを生成し、ヒストグラム上で明るい部分の画素値を背景画像の画素値としてもよい。
そして、閾値調節部16は、このように取得した背景画像の画素値に応じた第2閾値を閾値格納部17から取得し、第2エッジ抽出部15に出力する。
このようにして、周囲の明るさの変化に応じて第2閾値を調節することにより、周囲の明るさが変化する場合でも、第2エッジ画素を精度良く抽出することができる。
次に、画像処理装置1の利用空間が明るくなりすぎた場合について説明する。周囲が明るくなりすぎると、指に対する光の周り込みなどの影響により、指の画素値が上昇してしまう。その結果、光センサーの感度が指の画素値を検知するのに十分ではないと、光センサーが指の画像を認識することができない場合が起こり得る。
このような場合に指を認識するためには、光センサーの感度を低下させることが必要となる。しかし、光センサーの感度を変化させてしまうと、背景画像の画素値と指腹の画素値と差も同時に変化してしまうことになる。このため、上述した周囲の明るさが変化する場合と同様、光線センサーの感度を変化させた場合においても、その変化に応じて第2閾値を調節しなければならない。以下、この場合における第2閾値の調節について説明する。
図25に、背景画像及び指腹画像の各々の画素値と利用空間の明るさの照度との関係を示す。図25では、光センサーの感度が標準感度である場合における背景画像の画素値及び指腹画像の画素値、並びに、光センサーの感度が標準感度の1/2の感度(以下、「1/2感度」と呼ぶ。)である場合における背景画像の画素値及び指腹画像の画素値が示されている。
図25に示すように、光センサーの感度を標準感度から1/2感度に低下させた場合、利用空間の照度に対して、画素値の傾きは背景画像、指腹画像のいずれにおいても、光センサー感度が標準感度である場合の1/2となっている。また、指腹画像の画素値については、利用空間の照度が0、つまり、0Luxにおける画素値についても、光センサー感度が標準感度である場合の1/2となっている。
ここで、標準感度での背景画像の画素値及び指腹画像の画素値、並びに、標準感度の1/nの感度(以下、「1/n感度」と呼ぶ。)での背景画像の画素値及び指腹画像の画素値の各々を、照度に対する数式で表わすと以下のようになる。
標準感度での背景画像の画素値:
vb1=avbx ・・・・(8)
x:照度、avb:定数
1/n感度での背景画像の画素値:
vbn=(avb/n)x ・・・・(9)
n:感度
標準感度での指腹画像の画素値:
vf1=avfx+b ・・・・(10)
avf:定数、b:定数
1/n感度での指腹画像の画素値:
vfn=(avf/n)x+(1/n)b ・・・・(11)
そして、閾値調節部16は、上記の式(8)〜(11)において用いられている各定数をあらかじめ保持している。また、閾値格納部17は、撮像画像上における背景画像の画素値に一対一に対応する、複数の第2閾値をあらかじめ格納している。そして、閾値格納部17が格納している第2閾値は、光センサーの感度が上記の標準感度をとる場合を想定して、あらかじめ設定されたものである。
閾値調節部16は、光センサーの感度が標準感度から1/n感度に変化した場合には、背景画像の画素値及び光センサーの感度を取得し、それらを用いて第2閾値を調節する。
具体的には、閾値調節部16は、利用空間の明るさを取得すると、その明るさから現在の背景画像の画素値を特定する。そして、閾値調節部16は、指腹画像の画素値と背景画像の画素値との差分を求め、光センサーの感度が標準感度とした場合に同じ差分となるように、標準感度の背景画像の画素値を上記の式(8)〜(11)を用いて算出する。
標準感度の背景画像の画素値は、数式(8)〜(11)を以下のように変換することにより、現在の背景画素値より算出される。
すなわち、式(8)及び(10)から以下の式が与えられる。
vf1=(avf/avb)vb1+b ・・・・(12)
また、式(9)及び(11)から以下の式が与えられる。
vfn=(avf/avb)vbn+(1/n)b
vbn−vfn=(1−(avf/avb))vbn−(1/n)b ・・・・(13)
現在の背景画像と指腹画像との画素値の差分を求め、標準感度で同じ差分となるように標準感度の背景画像の画素値を算出するため、上記の式(12)及び(13)を用いて、以下の順に変換を実行する。
(a)vb1−vf1=vbn−vfn
(b)vb1=vbn−vfn+vf1
(c)vb1=(1−(avf/avb))vbn−(1/n)b+(avf/avb)vb1+b
(d)(1−(avf/avb))vb1=(1−(avf/avb))vbn+((n−1)/n)b
(e)vb1=vbn+((n−1)/n)b/(1−(avf/avb))
このようにして、閾値調節部16は、標準感度の背景画像の画素値を算出し、それに対応する第2閾値を閾値格納部17から取得し、第2エッジ抽出部15に出力する。そして、第2エッジ抽出部15は、光センサーの感度の変化に応じて調節された第2閾値を閾値調節部16から取得することができるので、第2エッジ画素の抽出を高精度に行なうことができる。
ところで、上述した図18の動作の効果は、図2(c)及び図2(d)に示したように、周囲の明るさが一定以上になると表示画面に近接する指以外の部分の画素値は、指の画素値よりも明るくなる場合に限り、有効となるものである。したがって、図2(a)及び(b)に示したような、表示画面に近接する指以外の部分の画素値が指の画素値よりも暗くなる場合では、上記の動作を用いることができない。
そこで、このような場合においては、画像処理装置1の液晶ディスプレイの構成を工夫することにより、常に、背景画像の画素値が指腹画像の画素値よりも明るい状況を作り出すことが可能である。
例えば、液晶ディスプレイの表面に透明基板と弾性フィルムを設ければよい。透明基板と弾性フィルムとの間の空気層により、液晶ディスプレイの表面に圧力がかかっていないとき光の反射がおこる。一方、圧力がかかっているときは空気層での反射がなくなるために、反射率が低くなる。
図26に、液晶ディスプレイの表面に透明基板と弾性フィルムを設けた場合における、背景画像及び指腹画像の各々の画素値と利用空間の明るさの照度との関係を示す。図26では、光センサーの感度が標準感度である場合における背景画像の画素値及び指腹画像の画素値、並びに、光センサーの感度が1/2感度である場合における背景画像の画素値及び指腹画像の画素値が示されている。
この場合、図26に示すように、光センサーの感度が標準感度及び1/2感度のいずれに場合においても、常に、背景画像の画素値が指腹画像の画素値よりも明るい状況を作り出すことができる。
したがって、図2(a)及び(b)に示したような、表示画面に近接する指以外の部分の画素値が指の画素値よりも暗くなる場合でも、図18の動作の効果を有効なものとすることができる。その結果、このような場合であっても、第2エッジ抽出部15は、光センサーの感度の変化に応じて調節された第2閾値を閾値調節部16から取得することができるので、第2エッジ画素の抽出を高精度に行なうことができる。
(7.ポインティング位置特定過程)
次に、画像処理装置1におけるポインティング位置特定過程について説明する。
図27は、画像処理装置1の動作のうち、ポインティング位置座標算出過程の動作を示すフローチャートである。
S801では、ピーク探索部12が、注目画素の周囲で所定の画素数を含む第1領域(探索領域)内で、スコア算出部10が算出した合致度が最大値をとる画素であるピーク画素を探索して、ピーク画素を発見したらS802に進む。なお、図示していないが、ピーク探索部12が、ピーク画素を発見できない場合には、注目画素を所定数(例えば、第1領域の注目画素から端の画素までの最短コース(第2領域の一辺のサイズ))ずらしてS801に戻る。
S802では、座標算出判定部13が、第1領域と共通の注目画素をもち、第1領域の画素数よりも少ない所定の画素数を有すると共に、第1領域に完全に包含される第2領域(小領域)内に、ピーク探索部12が発見したピーク画素が存在することを判定した場合には、S803に進み、座標算出判定部13は、「ピーク画素あり」と判定し、S804に進む。一方、座標算出判定部13が、第2領域(小領域)内に、ピーク探索部12が発見したピーク画素が存在しなかった場合には、S805に進み、座標算出判定部13は、「ピーク画素なし」と判定し、注目画素を所定数(例えば、第1領域の注目画素から端の画素までの最短コース(第2領域の一辺のサイズ))ずらしてS801に戻る。
以上の手順は、座標算出部14がポインティング(補間)位置を算出するまで繰り返される。
S804では、座標算出部14が、ピーク探索部12が発見したピーク画素を中心とする所定の画素数を含む領域であるピーク画素領域内の、画素ごとのスコアを用いて、撮像対象による撮像画像上の指示位置を算出して「END」となる。
なお、上述の説明では、座標算出部14がポインティング(補間)位置を算出するまで処理を繰り返す場合について説明したが、複数のポインティング(補間)位置を算出可能な構成としてもよく、この場合、画像全体に対して処理を終了するまで、第1・第2領域を移動して、図27に示すフローチャートの処理を実行すればよい。
次に、図28(a)及び図28(b)を用いて、ピーク画素の有無の判定について説明する。
図28(a)は、画像処理装置1における座標算出判定部13が、ピーク画素が無いと判定する場合を説明するための概要図であり、(b)は、座標算出判定部13が、ピーク画素が有ると判定する場合を説明するための概要図である。
図28(a)に示す実線が第1領域であり、破線が第2領域である。第1領域の画素数は、9×9画素であり、第2領域の画素数は、5×5画素である。それぞれ、奇数×奇数としているのは、中央の注目画素が1画素となるようにするためである。
図28(a)の例では、第1領域内にピーク画素である「9」が存在しているが、該ピーク画素は、第2領域内には存在していない。したがって、この場合は、座標算出判定部13は、「ピーク画素なし」と判定する。
一方、図28(b)の例では、第1領域内にピーク画素である「9」が存在しており、かつ、第2領域内にも存在している。したがって、この場合は、座標算出判定部13は、「ピーク画素あり」と判定する。
なお、上述の例では、第1領域にピーク画素が存在している場合において、第2領域内にピーク画素が無い場合には、第1領域の注目画素から端の画素までの最短コース(第2領域の一辺のサイズ)である「5画素」だけ、第1領域及び第2領域を動かせば、必ず、ピーク画素が第2領域内に入ってくるように、第1領域と第2領域との画素数との差が設定されている。
次に、図29(a)及び図29(b)に基づき、座標算出部14のポインティング(補間)座標(撮像対象による撮像画像上の指示位置)算出方法について説明する。
図29(a)は、画像処理装置1における撮像対象による撮像画像上における指示位置の算出のために使用されるピーク画素領域について説明するための概要図であり、図29(b)は、画像処理装置1におけるポインティング(補間)座標の座標算出方法を説明するための概要図である。
図29(a)は、座標算出判定部13が「ピーク座標あり」と判定した場合であり、図28(b)の場合と同じである。
なお、図29(a)は第1領域及び第2領域とも破線の領域で示されている。一方、実線で示した5×5画素の領域が、ピーク画素を中心とする所定の画素数を含む領域であるピーク画素領域である。
図29(a)に示す例では、このピーク画素領域も第2領域と同様に、第1領域に完全に包含されている。この場合は、ピーク画素領域内のスコアをあらためて調べる必要が無い。このように、第2領域の端にピーク画素が存在する場合でも、ピーク画素領域が第1領域内に包含されるように構成することが好ましい。
次に、図29(b)に基づき、座標算出部14のポインティング座標算出方法について説明する。
本例では、画像データの画素数が、320×240画素である場合に、図1の低解像度化部2が、バイリニア縮小を2回行ない、さらに、効率化部6が、2×2画素について照合効率化を行ない、スコア画像(スコアのデータを画素ごとに付与したもの)のサイズが40×30画素になっている場合を想定している。
したがって、スコア画像の全領域を8倍に拡大したものが、画像データの全領域に相当する。したがって、補間量(スケール拡大量)=8となっている。
具体的な計算方法は、以下のとおりである。まず、ピーク画素領域における行ごとのスコアの和を計算する(図29(b)の19、28、33、24、及び11)。
次に、ピーク画素領域における列ごとのスコアの和を計算する(図29(b)の16、24、28、26、及び21)。また、ピーク画素領域内(5×5画素)のスコアの総和を求める(図29(b)の115)。
次に、ピーク画素領域内のスコアの値が質量分布に相当するものとして、スコア画像の全領域における重心座標を求め、スケールを8倍に拡大すると、次式(14)及び(15)の座標を得る。
次に、画素のサイズを考慮して目盛り位置の調整を行なうと、ポインティング座標(X,Y)は、次式(16)となる。
以上によれば、ピーク探索部12は、第1領域(探索領域)内で探索するので、全画素数を含む画像データ領域において、ピーク画素を探索するよりも処理コストを低減、及びメモリ容量を少量化させることができる。
例えば、第1領域の画素数が小さいということは、データ画像(スコア画像)全体(=全画素)のスコアをバッファに保存しておく必要がなく、ピーク探索を実行する第1領域に必要なメモリ容量(例えば9×9画素の第1領域の場合、9ライン分のラインバッファ)があればよい、ということになる。
このように、ラインバッファで実装することにより、メモリ容量を少量化できる効果は、ピーク探索に限らず、縦横の各勾配量の一時保存や、勾配方向の一時保存等、後段処理に受け渡す際にバッファメモリが介在するような実装を行なう場合には、全て共通して言えることである。
さらに、座標算出部14は、ピーク探索部12が発見したピーク画素を中心とする所定の画素数を含む領域であるピーク画素領域内の、画素ごとのスコアを用いて、ポインティング位置を算出する。例えば、エッジ画像を用いてその重心位置からポインティング位置を求める場合、撮像画像が歪な形に変形するほど算出が困難になると考えられる。
しかし、画像処理装置1では、ピーク画素領域内の、画素ごとのパターンマッチングによるスコアを用いて、ポインティング位置を算出する。このパターンマッチングにおけるスコアの最大値近傍は、撮像画像が歪な形に変形したとしても、該最大値近傍を中心として、放射状に合致度が減少していくという、ほぼ変形前と同様の分布傾向を示すものと考えられる。
したがって、撮像画像が歪な形に変形するか否かに関係なく、所定の手順(例えば、ピーク画素領域内でスコアの重心を算出する等)で、ポインティング位置を算出することができる。それゆえ、座標位置の検出精度の維持との両立を図りつつ、ポインティング位置を算出するための画像処理量の軽減、処理コストの低減、及びメモリ容量の少量化が可能となる。
以上より、撮像対象の撮像画像へのタッチ・非タッチの検出に関係なく、1フレームの画像データのみを用いたパターンマッチングを行なうことで、ポインティング位置の検出を可能としてメモリ容量を少量化し、及び処理時間を短縮化しつつ、ポインティング位置の算出において、画像処理量の軽減とポインティング位置の検出精度の維持との両立、及びメモリ容量の少量化を実現することができる画像処理装置1を提供することができる。
また、座標算出判定部13は、第1領域と共通の注目画素をもち、第1領域の画素数よりも少ない所定の画素数を有すると共に、第1領域内に完全に包含される第2領域(小領域)内に、ピーク探索部12が発見したピーク画素が存在することを判定した場合に、座標算出部14にポインティング位置を算出させることが好ましい。
ピーク画素領域は、第2領域内に存在するピーク画素を注目画素としてその周囲に広がる領域であるので、第1領域と共通する画素が多数存在することになる。また、ピーク画素領域と第1領域との共通の画素のスコアは既に算出されているので、非共通の画素のスコアを調べれば、座標算出部14にポインティング位置を算出させることができる。
また、ピーク画素領域と第1領域とのそれぞれの画素数を調整すれば、ピーク画素領域を第1領域に包含させることも可能である。この場合、ピーク画素領域の各画素のスコアは既に判明しているので、ポインティング位置算出のためにあらためて判明していない各画素のスコアを調べる必要が無い。
以上より、ポインティング位置の算出において、さらに画像処理量の軽減及びメモリ容量の少量化を実現することができる。また、ピーク座標判定時に第1領域の外側に向けてスコアの上昇が連接している場合への対応と、ハードウェア実装等において各処理モジュールをパイプライン処理する際等に、参照すべきスコアの保持バッファ容量を少量化(例えば画像全体ではなく9ラインのみ)できる。
なお、画像処理装置1の各ブロック、特に低解像度化部2、縦勾配量算出部3a、横勾配量算出部3b、第1エッジ抽出部4、方向特定部5、効率化部6、一致画素数算出部7、パターン合致度算出部9、スコア算出部10、位置特定部11、第2エッジ抽出部15、及び、閾値調節部16は、ハードウェアロジックによって構成してもよいし、次のようにCPUを用いてソフトウェアによって実現してもよい。
すなわち、画像処理装置1は、各機能を実現する制御プログラムの命令を実行するCPU(central processing unit)、上記プログラムを格納したROM(read only memory)、上記プログラムを展開するRAM(random access memory)、上記プログラムおよび各種データを格納するメモリ等の記憶装置(記録媒体)等を備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである画像処理装置1の制御プログラムのプログラムコード(実行形式プログラム、中間コードプログラム、ソースプログラム)をコンピュータで読み取り可能に記録した記録媒体を、上記画像処理装置1に供給し、そのコンピュータ(またはCPUやMPU)が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやコンパクトディスク−ROM/MO/MD/デジタルビデオデイスク/コンパクトディスク−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系等を用いることができる。
また、画像処理装置1を通信ネットワークと接続可能に構成し、その通信ネットワークを介して上記プログラムコードを画像処理装置1に供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、LAN、ISDN、VAN、CATV通信網、仮想専用網(virtual private network)、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、IEEE1394、USB、電力線搬送、ケーブルTV回線、電話線、ADSL回線等の有線でも、IrDAやリモコンのような赤外線、Bluetooth(登録商標)、802.11無線、HDR、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。