以下、本発明の実施の形態について、図面を参照しながら説明する。なお、同一部分には同一符号を付し、図面で同一の符号が付いたものは、説明を省略する場合もある。なお、本実施の形態では、画像表示部の例として液晶ディスプレイを採用した場合について説明するが、液晶ディスプレイ以外の画像表示部を採用する場合も本発明の適用範囲に含まれる。
(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と、エッジ抽出部(特徴量算出手段)4と、方向特定部(特徴量算出手段)5と、効率化部6と、一致画素数算出部7と、モデルパターン・比較用一致パターン格納部8と、パターン合致度算出部(合致度算出手段)9と、スコア算出部(合致度算出手段)10と、位置特定部(位置特定手段)11と、パターン結合部(領域結合手段)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)
エッジ抽出部4は、縦勾配量算出部3a及び横勾配量算出部3bが算出した各画素の縦方向勾配量Sy及び横方向勾配量Sxの算出結果から、撮像画像のエッジ部分の画素であるエッジ画素を抽出(特定)する。
ここで、エッジ画素とは、画像データを構成する各画素のうち、明るさが急激に変化する部分(エッジ)における画素である。具体的には、縦方向勾配量Sy及び横方向勾配量Sxのそれぞれ、又は、勾配の大きさABS(S)が所定のエッジ閾値以上である画素のことである。
なお、このエッジ画素を抽出する目的は、方向特定部5が、抽出された複数のエッジ画素については勾配方向を特定し、エッジ画素以外の画素については一律無方向と看做して特定するようにする点にある。
パターンマッチングにおいて重要な情報は、エッジ部分のエッジ画素における勾配方向である。
したがって、あまり重要でない画素における勾配方向を一律無方向と看做すことで、パターンマッチングの効率化をさらに向上させることができる。また、以下で説明する撮像対象による撮像画像上の指示位置を検出する際のメモリ容量を少量化し、処理時間を短縮化することを可能とし、指示位置の検出処理のコストをさらに削減することができる。
方向特定部5は、上述したように、縦勾配量算出部3a及び横勾配量算出部3bが算出した縦方向勾配量Sy及び横方向勾配量Sxから、画素ごとの勾配方向ANG(S)と、縦方向勾配量Sy及び横方向勾配量Sxのそれぞれ、又は、勾配の大きさABS(S)がエッジ閾値未満である無方向とのいずれかを特定するものである。
ここでは、無方向をエッジ閾値未満であると定義しているが、エッジ閾値以下と定義しても良い。
あらかじめ無方向を設定しておくことで、ノイズ等により不要な多数の勾配方向が発生することを抑制することができる。また、エッジ近傍の勾配方向に照合対象を絞りこむことが可能となり、照合の効率化を図ることができる。
なお、方向特定部5は、エッジ抽出部4によって特定された複数のエッジ画素の勾配方向を特定し、エッジ画素以外の画素を無方向と看做して特定することが好ましい。パターンマッチングにおいて重要な情報は、エッジ部分のエッジ画素における勾配方向であると言える。
したがって、パターンマッチングにおいてあまり重要でない画素における勾配方向を一律無方向と看做すことで、パターンマッチングの効率化をさらに向上させることができる。
ここで、勾配方向ANG(S)は、0rad〜2πradの範囲で変化する連続量であるから、本実施の形態においては、これを例えば8方向に量子化したものを勾配方向としてパターンマッチングに使用する特徴的な量(以下、「特徴量」と呼ぶことがある。)とする。
なお、より精度の高いパターンマッチングを行なうために、16方位等に量子化しても良い。具体的な方向の量子化の詳細な手順については後述する。また、方向の量子化とは、勾配方向ANG(S)が所定の範囲内にある方向を一律にある特定の方向の勾配方向であると看做して取り扱うことを言う。
効率化部6は、注目画素の周囲で所定の画素数を含む領域である照合領域と、あらかじめ定められたモデルパターンとの照合(以下、「パターンマッチング」と呼ぶこともある。)を行なう場合に、照合領域とモデルパターンとの照合の効率化を行なう。
一致画素数算出部7は、例えば、照合領域と、モデルパターンとの照合を行って、照合領域に含まれる勾配方向と、モデルパターンに含まれる勾配方向とが一致する画素数(以下、「一致画素数」と呼ぶ。)を算出する。
モデルパターン・比較用一致パターン格納部8は、モデルパターンと、比較用一致パターンとを格納する。比較用一致パターンは、照合領域に含まれる画素ごとの勾配方向とモデルパターンに含まれる画素ごとの勾配方向との一致パターンを分析することによってあらかじめ定めたパターンである。
具体的には、この比較用一致パターンは、照合領域に含まれる画素ごとの勾配方向と、モデルパターンに含まれる画素ごとの勾配方向との、合致方向の種類数である。そして、この比較用一致パターンは、照合領域の形状がモデルパターン形状に近づくほど照合領域とモデルパターンとの間における一致パターンとの類似度が高くなる比較用完全一致パターンと、照合領域の形状がモデルパターン形状の一部の形状に近づくほど照合領域とモデルパターンとの間における一致パターンとの類似度が高くなる比較用部分的一致パターンと、を含んでいる。
この比較用完全一致パターンと比較用部分的一致パターンとは、照合領域に含まれる画素ごとの勾配方向と、モデルパターンに含まれる画素ごとの勾配方向との、合致方向の種類数に応じて定められている。すなわち、本実施の形態のように、8方向に量子化したものを勾配方向とした場合であれば、この8方向のうちいずれの方向が照合領域とモデルパターンとの間において合致しているかによって、これら2つの比較用一致パターンが定められている。例えば、比較用完全一致パターンを8方向のうち6方向以上合致するパターンと定め、比較用部分的一致パターンを8方向のうち4〜5方向合致するパターンと定めるが如くである。
また、モデルパターン・比較用一致パターン格納部8は、例えば、磁気テープやカセットテープ等のテープ系、フロッピー(登録商標)ディスク/ハードディスク等の磁気ディスクやコンパクトディスク−ROM/MO/MD/デジタルビデオデイスク/コンパクトディスク−R等の光ディスクを含むディスク系、ICカード(メモリカードを含む)/光カード等のカード系、あるいはマスクROM/EPROM/EEPROM/フラッシュROM等の半導体メモリ系等を用いることができる。
パターン合致度算出部9は、照合領域に含まれる画素ごとの勾配方向とモデルパターンに含まれる画素ごとの勾配方向との一致パターンと、あらかじめ定められた比較用一致パターンとが類似する度合いを示すパターン合致度を算出する。
そして、パターン合致度算出部9は、照合領域の形状がモデルパターン形状と一致するときには照合領域とモデルパターンとの間における一致パターンと比較用完全一致パターンとが類似する度合いを示す完全パターン合致度を最大とする。また、パターン合致度算出部9は、照合領域の形状がモデルパターン形状の一部の形状に一致するときには照合領域とモデルパターンとの間における一致パターンと比較用部分的一致パターンとが類似する度合いを示す部分的パターン合致度を最大とする。
なお、照合領域と、あらかじめ定められたモデルパターンとの照合(パターンマッチング)に使用される量としては、画素値(濃度値)等のスカラー量も用いることができる。
一方、画素値の勾配はベクトル量であり、大きさ(勾配の大きさABS(S))と向き(勾配方向ANG(S))とを持つものである。ここで、特に、勾配方向(向き)は、例えば8方向に量子化したりすることによって、1つの画素がとり得る状態を8(無方向を含めると9)という極めて少ない状態に離散化することでき、さらにそれぞれの状態には、方向が異なるという識別が容易な特徴を持たせる事ができる。
また、勾配方向は、上述したような傾向がある。また、これらの傾向は、撮像対象の状況等に応じて、大きく変わることは無い。したがって、勾配方向は、パターンマッチングに適した量である。
スコア算出部10は、一致画素数算出部7が算出した一致画素数、及びパターン合致度算出部9が算出したパターン合致度から、照合領域とモデルパターンとのマッチングの度合いを示す合致度を算出する。
具体的には、スコア算出部10は、パターン合致度算出部9が算出したパターン合致度が完全パターン合致度であれば、その完全パターン合致度を用いて、照合領域の形状とモデルパターン形状とのマッチングの度合いを示す完全合致度を算出する。また、スコア算出部10は、パターン合致度算出部9が算出したパターン合致度が部分的パターン合致度であれば、その部分的パターン合致度を用いて、照合領域の形状とモデルパターン形状の一部の形状とのマッチングの度合いを示す部分的合致度を算出する。
位置特定部11は、スコア算出部10が算出した合致度が最大となる画素(以下、「ピーク画素」と呼ぶ。)の位置から、撮像対象による撮像画像上の指示位置を特定する。
すなわち、位置特定部11は、スコア算出部10が完全合致度を算出した場合であれば、その完全合致度が最大となるピーク画素の位置から、撮像対象による撮像画像上の指示位置を特定する。また、位置特定部11は、スコア算出部10が部分的合致度を算出した場合であれば、その部分的合致度が最大となるピーク画素の位置から、撮像対象の一部による撮像画像上の指示位置を特定する。
また、位置特定部11は、ピーク探索部12と、座標算出判定部13と、座標算出部14と、を有している。
ピーク探索部12は、注目画素の周囲で所定の画素数を含む探索領域(以下、「第1領域」と呼ぶ場合がある。)内で、スコア算出部10が算出した合致度が最大値をとる画素であるピーク画素を探索する。
座標算出判定部13は、探索領域の画素数よりも少ない所定の画素数を有すると共に、探索領域内に完全に包含される小領域(以下、「第2領域」と呼ぶ場合がある。)内に、ピーク探索部12が発見したピーク画素が存在することを判定した場合に、座標算出部14に撮像対象による撮像画像上の指示位置を算出させる。
座標算出部14は、ピーク探索部12が発見したピーク画素を中心とする所定の画素数を含む領域であるピーク画素領域内の、画素ごとの合致度を用いて、撮像対象による撮像画像上の指示位置を算出するものである。
なお、ピーク探索部12、座標算出判定部13及び座標算出部14が行なう上記の動作は、スコア算出部10が部分的合致度を算出した場合でも同様である。
パターン結合部15は、スコア算出部10が部分的合致度を算出する度に、位置特定部11が算出した、撮像対象の一部による撮像画像上の指示位置を取得する。そして、パターン結合部15は、パターン情報格納部16に格納されているパターン情報と、結合条件格納部17にあらかじめ格納されている結合条件と、上記のように取得した撮像対象の一部による撮像画像上の指示位置と、を用いて、モデルパターン形状の一部の形状に一致する形状を持つ照合領域のうち、単一領域として互いに結合すべきものがあるか否かを判断し、その結合すべきとの判断に基づいて、それら照合領域を結合する。
そして、パターン結合部15は、それら結合する照合領域の各々の指示位置を用いて、単一領域として結合された後の領域の指示位置を算出する。
パターン情報格納部16は、パターン合致度算出部9が算出した部分的パターン合致度と、スコア算出部10が算出した部分的合致度と、を順次格納される。また、パターン情報格納部16は、パターン合致度算出部9が部分的パターン合致度を算出する際に利用する、照合領域に含まれる画素ごとの勾配方向と、モデルパターンに含まれる画素ごとの勾配方向との、合致方向の種類数も、順次格納する。パターン情報格納部16は、これら部分的パターン合致度、部分的合致度、合致方向の種類数を、パターン情報として格納する。
結合条件格納部17は、パターン結合部15がモデルパターン形状の一部の形状に一致する形状を持つ照合領域のうち、単一領域として互いに結合すべきものがあるか否かを判断する際、その判断基準となる結合条件をあらかじめ格納している。
また、パターン情報格納部16及び結合条件格納部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では、位置特定部11が、スコア算出部10が算出した合致度が最大となる画素(以下、「ピーク画素」と呼ぶ。)の位置から、撮像対象による撮像画像上の指示位置を特定する過程(ポインティング位置特定過程)を経た上で、S107に進む。
S107では、パターン結合部15が、モデルパターン形状の一部の形状に一致する形状を持つ照合領域のうち、単一領域として互いに結合すべきものがあるか否かを判断し、その結合すべきとの判断に基づいて、それら照合領域を結合して「エンド」となる(結合過程)。
以上が、画像処理装置1の全体の動作概要である。以下では、勾配方向・無方向特定過程、照合効率化、パターンマッチング過程、ポインティング位置特定過程及び結合過程における画像処理装置1の各動作について説明する。
(3.勾配方向・無方向特定過程)
まず、図1、図4、図5(a)及び図5(b)に基づいて、勾配方向・無方向特定過程における画像処理装置1の動作について説明する。
図4は、画像処理装置1の動作のうち、勾配方向・無方向特定過程の動作を示すフローチャートである。図5(a)は、勾配方向・無方向特定過程において参照されるテーブルの一例であり、図5(b)は、勾配方向・無方向特定過程において参照されるテーブルの他の例である。
図4のフローチャートでは、まず、縦勾配量算出部3a及び横勾配量算出部3bがそれぞれ、縦方向勾配量Sy及び横方向勾配量Sxを算出してからスタートする。
S201では、エッジ抽出部4が、各画素における勾配の大きさABS(S)がエッジ閾値以上か否かを判定し、ABS(S)≧エッジ閾値ならば(Yes)、S202に進み、ABS(S)<エッジ閾値ならば(No)、S210に進む。なお、本実施の形態では、ABS(S)=Sx×Sx+Sy×Syとして計算しているが、この量は、上式(4)における厳密な意味で勾配の大きさと異なる。しかし、実装上はこのように勾配の大きさを定義しても問題は無い。
S210に進んだ場合には、方向特定部5は、対象となっている画素、つまり、エッジ画素以外の画素を無方向と設定(特定)し、次の画素へ進んで、S201に戻る。なお、S202に進んだ場合には、対象となっている画素は、無論、エッジ画素である。
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に戻る。
以上の工程は、すべての画素の勾配方向・無方向の設定が終わるまで繰り返される。
パターンマッチングにおいて重要な情報は、エッジ部分の画素であるエッジ画素における勾配方向である。
したがって、上記の動作により、あまり重要でないエッジ画素以外の画素における勾配方向を一律無方向と看做すことで、パターンマッチングの効率化をさらに向上させることができる。また、撮像対象による撮像画像上の指示位置の検出を可能としてメモリ容量を少量化すること及び処理時間を短縮化することを可能とし、指示位置の検出処理のコストをさらに削減させることができる。
(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では、パターン合致度算出部9が、方向特定部5又は効率化部6からパターン合致度の算出を決定した旨の通知を受けて、パターン合致度を算出し、S303に進む。
S303では、パターン合致度算出部9が、一致画素数算出部7が算出した一致画素数及びパターン合致度算出部9が算出したパターン合致度を、合算した量を照合領域とモデルパターンとのマッチングの度合いを示す合致度として算出する。
次に、パターンマッチング過程におけるスコア算出部10の具体的なスコア(合致度)算出方法について説明する。
まず、スコア算出部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)は、照合効率化後の周囲が暗い場合における照合領域と、モデルパターンとのパターンマッチングを説明するための概要図であり、図12(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に基づき、上記パターンマッチングにおける一致パターンのチェックの一例について説明する。図15は、パターン合致度算出過程の一例を示すフローチャートである。なお、ここでは、勾配方向の種類は8方向あり、勾配方向種類数の閾値(DN)を6に設定した場合について説明する。
図15に示すように、S501では、パターン合致度算出部9が、一致パターンの「有」の数が6以上の場合には、S502に進み、一致パターンの許可を行なう。
一方、パターン合致度算出部9は、一致パターンの「有」の数(勾配方向種類数)が5以下の場合には、S503に進み、一致パターンの不許可を行なう。
次に、図16(a)〜図16(c)に基づき、一致パターンのチェックにおける第1の例を説明する。
図16(a)は、パターン合致度算出過程の一例を示す概要図であり、図16(b)は、パターン合致度算出過程の他の例を示す概要図であり、図16(c)は、パターン合致度算出過程のさらに他の例を示す概要図である。
図16(a)では、一致画素数は「24」と算出している。また、勾配方向の一致パターンは、「8」方向がすべて存在しているので、閾値の6以上であり、図15のフローでは、「許可パターン」と判定される。したがって、図16(a)の場合には、パターン合致度算出部9は、パターン合致度として「1」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「24」と「1」とを掛け算したのち、正規化一致画素数を算出してスコアとする。
図16(b)では、一致画素数は「24」と算出している。また、勾配方向の一致パターンは、「6」方向が存在しているので、閾値の6以上であり、図15のフローでは、「許可パターン」と判定される。したがって、図16(b)の場合には、パターン合致度算出部9は、パターン合致度として「1」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「24」と「1」とを掛け算したのち、正規化一致画素数を算出してスコアとする。
図16(c)では、一致画素数は「24」と算出している。また、勾配方向の一致パターンは、「6」方向が存在しているので、閾値の6以上であり、図15のフローでは、「許可パターン」と判定される。
以上の結果、図16(c)の場合には、パターン合致度算出部9は、パターン合致度として「1」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「24」と「1」とを掛け算したのち、正規化一致画素数を算出してスコアとする。
次に、図17(a)〜図17(c)に基づき、一致パターンのチェックにおける第2の例を説明する。
図17(a)は、パターン合致度算出過程のさらに他の例を示す概要図であり、図17(b)は、パターン合致度算出過程のさらに他の例を示す概要図であり、図17(c)は、パターン合致度算出過程のさらに他の例を示す概要図である。
図17(a)では、一致画素数は「24」と算出している。また、勾配方向の一致パターンは、「6」方向が存在しているので、閾値の6以上であり、図15のフローでは、「許可パターン」と判定される。したがって、図17(a)の場合には、パターン合致度算出部9は、パターン合致度として「1」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「24」と「1」とを掛け算したのち、正規化一致画素数を算出してスコアとする。
図17(b)では、一致画素数は「22」と算出している。また、勾配方向の一致パターンは、「4」方向が存在しているので、閾値の6未満であり、図15のフローでは、「不許可パターン」と判定される。したがって、図17(b)の場合には、パターン合致度算出部9は、パターン合致度として「0」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「22」と「0」とを掛け算して「0」をスコアとする。
図17(c)では、一致画素数は「22」と算出している。また、勾配方向の一致パターンは、「4」方向が存在しているので、閾値の6未満であり、図15のフローでは、「不許可パターン」と判定される。
以上の結果、図17(c)の場合には、パターン合致度算出部9は、パターン合致度として「0」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「22」と「0」とを掛け算して「0」をスコアとする。
以上のように、スコア算出部10は、照合領域と、モデルパターンとの照合を行って、照合領域に含まれる勾配方向と、モデルパターンに含まれる勾配方向とが一致する画素数(一致画素数)、及び、照合領域に含まれる画素ごとの勾配方向とモデルパターンに含まれる画素ごとの勾配方向との一致パターンと、あらかじめ定められた比較用一致パターンとが類似する度合いを示すパターン合致度から、スコア(合致度)を算出する。
次に、スコア算出部10が照合領域の形状とモデルパターン形状の一部の形状とのマッチングの度合いを示す部分的合致度を算出する場合について説明する。ここでは、スコア算出部10が、一致画素数と合致パターンとを併用して、部分的合致度を算出する場合について説明する。なお、ここでは、スコア算出部10が完全合致度を算出する場合と異なる点について説明するものとし、同じ点については説明を繰り返さない。
上述したように、図17(b)及び(c)の場合、照合領域は「不許可パターン」と判定されており、この場合にはスコア算出部10が完全合致度を算出することはない。
このような場合、パターン合致度算出部9は、図14に示したフローに従って、今度は、モデルパターン・比較用一致パターン格納部8に格納されている比較用部分的一致パターンを用いてパターン照合を実行する。
すなわち、図14のS408において、パターン合致度算出部9がモデルパターン・比較用一致パターン格納部8を参照して、比較用部分一致パターンに対応する「許可パターン」を用いて、チェックを行なうことになる。
具体的には、図15のS501において、パターン合致度算出部9が、一致パターンの「有」の数に基づいて、一致パターンの許可/不許可を行なう。勾配方向の種類が8方向あり、勾配方向種類数の閾値(DN)が4である場合、比較用部分一致パターンの「有」の数が4であれば、S502に進み、一致パターンの許可を行なう。一方、パターン合致度算出部9は、一致パターンの「有」の数が4未満の場合には、S503に進み、一致パターンの不許可を行なう。
図21は、部分的パターン合致度算出過程の一例を示す概要図である。図21では、一致画素数は「20」と算出している。また、勾配方向の一致パターンは、「4」方向が存在しているので、閾値の4以上であり、図15のフローでは、「許可パターン」と判定される。したがって、図21の場合には、パターン合致度算出部9は、パターン合致度として「1」を算出し、スコア算出部10は、一致画素数算出部7が算出した、一致画素数「20」と「1」とを掛け算したのち、正規化一致画素数を算出してスコアとする。
(6.ポインティング位置特定過程)
次に、画像処理装置1におけるポインティング位置特定過程について説明する。
図18は、画像処理装置1の動作のうち、ポインティング位置座標算出過程の動作を示すフローチャートである。
S601では、ピーク探索部12が、注目画素の周囲で所定の画素数を含む第1領域(探索領域)内で、スコア算出部10が算出した合致度が最大値をとる画素であるピーク画素を探索して、ピーク画素を発見したらS602に進む。なお、図示していないが、ピーク探索部12が、ピーク画素を発見できない場合には、注目画素を所定数(例えば、第1領域の注目画素から端の画素までの最短コース(第2領域の一辺のサイズ))ずらしてS601に戻る。
S602では、座標算出判定部13が、第1領域と共通の注目画素をもち、第1領域の画素数よりも少ない所定の画素数を有すると共に、第1領域に完全に包含される第2領域(小領域)内に、ピーク探索部12が発見したピーク画素が存在することを判定した場合には、S603に進み、座標算出判定部13は、「ピーク画素あり」と判定し、S604に進む。一方、座標算出判定部13が、第2領域(小領域)内に、ピーク探索部12が発見したピーク画素が存在しなかった場合には、S605に進み、座標算出判定部13は、「ピーク画素なし」と判定し、注目画素を所定数(例えば、第1領域の注目画素から端の画素までの最短コース(第2領域の一辺のサイズ))ずらしてS601に戻る。
以上の手順は、座標算出部14がポインティング(補間)位置を算出するまで繰り返される。
S604では、座標算出部14が、ピーク探索部12が発見したピーク画素を中心とする所定の画素数を含む領域であるピーク画素領域内の、画素ごとのスコアを用いて、撮像対象による撮像画像上の指示位置を算出して「END」となる。
なお、上述の説明では、座標算出部14がポインティング(補間)位置を算出するまで処理を繰り返す場合について説明したが、複数のポインティング(補間)位置を算出可能な構成としてもよく、この場合、画像全体に対して処理を終了するまで、第1・第2領域を移動して、図18に示すフローチャートの処理を実行すればよい。
次に、図19(a)及び図19(b)を用いて、ピーク画素の有無の判定について説明する。
図19(a)は、画像処理装置1における座標算出判定部13が、ピーク画素が無いと判定する場合を説明するための概要図であり、(b)は、座標算出判定部13が、ピーク画素が有ると判定する場合を説明するための概要図である。
図19(a)に示す実線が第1領域であり、破線が第2領域である。第1領域の画素数は、9×9画素であり、第2領域の画素数は、5×5画素である。それぞれ、奇数×奇数としているのは、中央の注目画素が1画素となるようにするためである。
図19(a)の例では、第1領域内にピーク画素である「9」が存在しているが、該ピーク画素は、第2領域内には存在していない。したがって、この場合は、座標算出判定部13は、「ピーク画素なし」と判定する。
一方、図19(b)の例では、第1領域内にピーク画素である「9」が存在しており、かつ、第2領域内にも存在している。したがって、この場合は、座標算出判定部13は、「ピーク画素あり」と判定する。
なお、上述の例では、第1領域にピーク画素が存在している場合において、第2領域内にピーク画素が無い場合には、第1領域の注目画素から端の画素までの最短コース(第2領域の一辺のサイズ)である「5画素」だけ、第1領域及び第2領域を動かせば、必ず、ピーク画素が第2領域内に入ってくるように、第1領域と第2領域との画素数との差が設定されている。
次に、図20(a)及び図20(b)に基づき、座標算出部14のポインティング(補間)座標(撮像対象による撮像画像上の指示位置)算出方法について説明する。
図20(a)は、画像処理装置1における撮像対象による撮像画像上における指示位置の算出のために使用されるピーク画素領域について説明するための概要図であり、図20(b)は、画像処理装置1におけるポインティング(補間)座標の座標算出方法を説明するための概要図である。
図20(a)は、座標算出判定部13が「ピーク座標あり」と判定した場合であり、図19(b)の場合と同じである。
なお、図20(a)は第1領域及び第2領域とも破線の領域で示されている。一方、実線で示した5×5画素の領域が、ピーク画素を中心とする所定の画素数を含む領域であるピーク画素領域である。
図20(a)に示す例では、このピーク画素領域も第2領域と同様に、第1領域に完全に包含されている。この場合は、ピーク画素領域内のスコアをあらためて調べる必要が無い。このように、第2領域の端にピーク画素が存在する場合でも、ピーク画素領域が第1領域内に包含されるように構成することが好ましい。
次に、図20(b)に基づき、座標算出部14のポインティング座標算出方法について説明する。
本例では、画像データの画素数が、320×240画素である場合に、図1の低解像度化部2が、バイリニア縮小を2回行ない、さらに、効率化部6が、2×2画素について照合効率化を行ない、スコア画像(スコアのデータを画素ごとに付与したもの)のサイズが40×30画素になっている場合を想定している。
したがって、スコア画像の全領域を8倍に拡大したものが、画像データの全領域に相当する。したがって、補間量(スケール拡大量)=8となっている。
具体的な計算方法は、以下のとおりである。まず、ピーク画素領域における行ごとのスコアの和を計算する(図20(b)の19、28、33、24、及び11)。
次に、ピーク画素領域における列ごとのスコアの和を計算する(図20(b)の16、24、28、26、及び21)。また、ピーク画素領域内(5×5画素)のスコアの総和を求める(図20(b)の115)。
次に、ピーク画素領域内のスコアの値が質量分布に相当するものとして、スコア画像の全領域における重心座標を求め、スケールを8倍に拡大すると、次式(8)及び(9)の座標を得る。
次に、画素のサイズを考慮して目盛り位置の調整を行なうと、ポインティング座標(X,Y)は、次式(10)となる。
以上によれば、ピーク探索部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ラインのみ)できる。
(7.結合過程)
次に、画像処理装置1における結合過程について説明する。
上述したように、図1に示すパターン合致度算出部9は、照合領域とモデルパターンとの間における画素ごとの勾配方向の一致パターンと比較用一致パターンとが類似する度合いを示すパターン合致度を算出している。このパターン合致度のうち、比較用部分的一致パターンとの類似の度合いを示す部分的パターン合致度は、パターン合致度算出部9からパターン情報格納部16に出力されており、パターン情報格納部16は、部分的パターン合致度の算出ごとに、それらを順次格納している。
また、この部分的パターン合致度がパターン情報格納部16に格納される際、その照合領域とモデルパターンとの間における勾配方向の一致パターンの「有」の数(勾配方向種類数)も、同時にパターン情報格納部16に格納されている。
そして、パターン結合部15が、このようにしてパターン情報格納部16に格納された一致パターンの「有」の種類を用いて、モデルパターン形状の一部の形状に一致する形状を持つ照合領域においてモデルパターン形状と一致しない部分(以下、「開放部分」と呼ぶ。)における照合領域内部から外部へ向かう方向(以下、「開放方向」と呼ぶ。)を特定する。
図22に、照合領域とモデルパターンとの間における勾配方向の一致パターンの「有」の種類と開放方向との対応関係の一例を示す。図22においては、4つの例が示されており、例えば第1番目の例では、開放方向が図上、下方向に向いている。無論、開放方向は8方向に限られるものではなく、例えば16方向等、より細かく設定してもよい。
また、図22に示した例は、一例に過ぎず、例えば図23に示すように、図22の第1番目の例における一致パターンの「有」の方向を45度ずつ回転させていったものも含まれる。図23には、8つの例が示されており、例えば第2番目の例では、図22の第1番目の例に対して、45度左回転したものとなっており、第3番目の例では、図22の第1番目の例に対して、90度左回転したものとなっている。同様に、図22の第2〜4番目の各例における一致パターンの「有」の方向を45度ずつ回転させていったものも含まれる。
なお、本実施の形態においては、上述したように、勾配方向の一致パターンの「有」の種類を用いて開放方向を特定しているが、本発明はこれに限られるものではない。要は、照合領域がモデルパターンと一致する部分の位置に基づいて照合領域の開放方向を特定すればよい。すなわち、照合領域内部から、照合領域がモデルパターンと一致しない部分に向かう方向を開放方向とすればよい。
このようなパターン情報を用いて、パターン結合部15は、モデルパターン形状の一部の形状に一致する形状を持つ照合領域の各々の開放方向を特定する。
次に、図24〜図27を用いて、結合条件格納部17にあらかじめ格納されている結合条件について説明する。
上述したように、パターン結合部15は、結合条件格納部17にあらかじめ格納されている結合条件を用いて、モデルパターン形状の一部の形状に一致する形状を持つ照合領域のうち、単一領域として互いに結合すべきものがあるか否かを判断し、その結合すべきとの判断に基づいて、それら照合領域を結合する。なお、ここでは、モデルパターン形状が円形状、モデルパターン形状の一部の形状に一致する形状を持つ照合領域の形状が半円形状、単一領域として結合されるべき領域の形状が楕円形状である場合を例として説明する。
このような場合においては、パターン結合部15は、以下の結合条件を用いることになる。もちろん、以下の述べる条件は単なる一例に過ぎず、モデルパターン形状等によって異なるものである。無論、本発明はこのような例に限定されるものではない。モデルパターンの形状及びその結合条件を適切に設定することにより、あらかじめ用意されたモデルパターンとは異なるパターンの認識を実現することができる。
(a)距離条件
(b)開放方向条件
まず、(a)距離条件について説明する。図24及び図25は、この距離条件を説明するための図である。第1に、図24に示すように、2つの照合領域同士の距離をd、モデルパターンの半径をrとした場合、dがr/2以上であることが必要である。
第2に、図25に示すように、dが所定の距離(ここでは、3cm)以下であることが必要である。なお、この所定の距離は、例えば、撮像対象が利用者の指腹である場合、表示画面上における指腹の広がり具合から定められたものである。利用者の指腹の大きさとしてはこの程度を見れば十分と思われるからである。また、所定の距離を用いるのに代えて、表示画面上においてこの所定の距離に相当する画素数を用いて結合条件を設定してもよい。例えば、3.5インチのHVGA(320×480画素)の場合、1cmが約65ピクセルであり、3cmであれば約195ピクセルに相当する。したがって、この場合であれば、dが195ピクセル以下であることを結合条件とすることができる。
次に、(b)開放方向条件について説明する。図26及び図27は、この開放方向条件を説明するための図である。第1に、図26に示すように、2つの照合領域の開放方向が互いに向かい合っていることが必要である。この向かい合っているか否かの判定は、例えば、一方の開放方向を180度回転させて、2つの開放方向が一致するか否かによって行なえばよい。2つの開放方向が互いに向かい合っていれば、2つの開放方向が一致する筈だからである。
第2に、図27に示すように、2つの照合領域の開放方向が同一の直線上に載ることが必要である。この同一直線上に載るか否かの判定は、例えば、2つの照合領域の各々中心座標同士を結ぶ直線の方向を求めて、この方向が図26を用いて説明した2つの開放方向が一致した方向に一致するか否かによって行なえばよい。なお、2つの照合領域の各々中心座標同士を結ぶ直線を180度回転させたものに対して、図26の2つの開放方向が一致した方向と一致するか否かを判定しても無論構わない。
パターン結合部15は、このような結合条件が満たされているか否かを判定し、結合条件を満たしているとの判定結果に基づいて、半円形状である2つの照合領域を結合させ、楕円形状の領域とする。
また、パターン結合部15は、このような結合を行なった場合、2つの照合領域の位置から結合された領域の位置を算出し、撮像対象による撮像画像上の指示位置を特定する。
なお、以上では、単一領域として結合されるべき領域の形状が楕円形状である場合を例として説明したが、本発明はこれに限られるものではない。例えば、後述する「黒色背景画像内に存在する白色L字型形状」、「黒色背景画像内に存在する星型形状」である場合であっても、本発明は適用可能である。なお、上記のいずれの場合でも、モデルパターン形状は円形状とする。
まず、「黒色背景画像内に存在する白色L字型形状」の場合について説明する。例えば、図28及び図29に示すような、モデルパターン形状の一部の形状に一致する形状を持つ照合領域が存在したとする。具体的には、図28は、モデルパターン形状の端部形状を持つ照合領域を表わしており、図29は、略L字型形状を持つ照合領域を表わしている。なお、モデルパターンの白黒反転を行なうことによって、図29の形状の白黒をちょうど反転させた形状を持つ照合領域も無論存在する。
このような場合においては、パターン結合部15は、以下の結合条件を用いることになる。
図30に示すように、(a)距離条件としては、各照合領域a〜dが互いに所定の距離だけ離れていることが必要とされる。この所定の距離は、複数の照合領域が結合されるL字型形状の領域の大きさに基づいてあらかじめ定められている。
また、(b)開放方向条件としては、照合領域aの開放方向に照合領域b、dが存在し、照合領域cの開放方向に照合領域b、dが存在し、照合領域bの開放方向に照合領域dが存在することが必要となる。
次に、「黒色背景画像内に存在する星型形状」である場合について説明する。この場合においては、パターン結合部15は、以下の結合条件を用いることになる。
すなわち、図31に示すように、(a)距離条件としては、各照合領域a〜dが互いに所定の距離だけ離れていることが必要とされる。この所定の距離は、複数の照合領域が結合される星型形状の領域の大きさに基づいてあらかじめ定められている。
また、(b)開放方向条件としては、照合領域aと照合領域d間の距離と照合領域aと照合領域e間の距離とが略同一であり、照合領域bの開放方向に照合領域cが存在し、照合領域bと照合領域cとを結ぶ直線が照合領域dと照合領域eとを結ぶ直線と略並行であり、照合領域bと照合領域cとを結ぶ直線が照合領域aと照合領域dとを結ぶ直線及び照合領域aと照合領域eとを結ぶ直線と交差することが必要となる。
なお、画像処理装置1の各ブロック、特に低解像度化部2、縦勾配量算出部3a、横勾配量算出部3b、エッジ抽出部4、方向特定部5、効率化部6、一致画素数算出部7、パターン合致度算出部9、スコア算出部10、位置特定部11、及び、パターン結合部15は、ハードウェアロジックによって構成してもよいし、次のように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、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
本発明は上述した実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能である。すなわち、請求項に示した範囲で適宜変更した技術的手段を組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。