【解決手段】実施形態によれば、並列する複数の文字を含む領域が階調で撮像された撮像画像を取得する画像取得部101と、撮像画像を二値化した二値化画像を生成するフィルタ処理部102と、二値化画像の縦座標毎に合計輝度値を算出した縦方向射影と、二値化画像の横座標毎に合計輝度値を算出した横方向射影とに基づいて、記撮像画像における複数の文字のそれぞれを含む複数の部分画像を抽出する文字抽出部104と、複数の部分画像のそれぞれと予め記憶された辞書データとをマッチングして文字を認識するマッチング処理部107を備える。
前記文字抽出部は、前記縦方向射影に基づく縦方向範囲と所定の横幅とを有する第1抽出ウィンドウの横方向位置を前記横方向射影の重心に基づいて決定し、該第1抽出ウィンドウを前記撮像画像にセットし、前記第1抽出ウィンドウ内の画像を部分画像として抽出することを特徴とする請求項1に記載の文字認識装置。
前記文字抽出部は、前記第1抽出ウィンドウと同等の縦方向範囲及び横幅とを有し、該第1抽出ウィンドウに対して横方向に所定距離単位で順次移動される第2抽出ウィンドウを前記撮像画像にセットし、前記第2抽出ウィンドウ内の画像を部分画像として抽出することを特徴とする請求項2に記載の文字認識装置。
前記文字抽出部は、前記第2抽出ウィンドウを前記第1抽出ウィンドウに対して横方向一方へ順次移動させ、該第2抽出ウィンドウ内の領域画像が文字を含むか否かを該領域画像の合計輝度値に基づいて判定し、該領域画像が文字を含まない場合、前記第1抽出ウィンドウに対して横方向逆方へ順次移動させることを特徴とする請求項3に記載の文字認識装置。
前記マッチング処理部は、前記辞書データに含まれる特徴量と前記特徴量集合に含まれる特徴量との組み合わせに対して予め設定された重みに基づいて、前記類似度を算出することを特徴とする請求項5に記載の文字認識装置。
【発明を実施するための形態】
【0009】
以下、本発明の実施形態について図面を参照しつつ説明する。
【0010】
(全体構成)
実施形態に係る文字認識装置が組み込まれたメータ読取装置を含むメータ読取システム、文字認識装置による文字認識対象である水道メータの構成、水道メータの表示部の構成について説明する。
図1は、実施形態に係るメータ読取装置を含むメータ読取システムを含む検針システムの全体構成を示す図である。
図2は、水道メータの構成を示す概略図である。
図3は、水道メータの表示部の構成を示す概略図である。
【0011】
図1に示すように、メータ読取システムは、水道メータ9の表示部93に表示される水の流量を読み取り、読み取った流量を無線通信により送信するメータ読取装置1と、送信された流量を受信するスマートフォン2とを備える。
【0012】
水道メータ9は、
図2に示すように、水の流量を計測する本体部90と、本体部90に水を流入させる流入口91と、本体部90から水を流出させる流出口92と、本体部90の上部に設けられて本体部90により計測された水の流量に係る情報を表示する表示部93とを備える。水道メータ9は、使用時には表示部93が上方を向くように設置される。
【0013】
表示部93は、
図3に示すように、円盤状に構成された表示盤930、視認可能に表示盤930に設けられたパイロット931、1L単位の積算値メータ932、10L単位の積算値メータ933、流量を立方メートル単位の数値により示すカウンタ部934を備える。表示盤930は、少なくともカウンタ部934が設けられる領域が半円状に黒に着色され、それ以外の領域が白に着色され、これらの領域の境界部は直線となっている。カウンタ部934は、4桁もしくは5桁の整数と1桁の小数により流量を示し、これらの数値は、それぞれ、側面部に0〜9の数値が円環状に配置された数字ドラムが回転することにより変化される。4桁もしくは5桁の整数を示す数字ドラムはそれぞれ背景色が黒に着色されるとともに数字が白に着色され、1桁の小数を示す数字ドラムは背景色が白に着色されるとともに数字が赤に着色されているものとする。なお、整数を示す数字ドラムは、背景色の輝度と数字の色の輝度とが互いに異なるものであればよい。また、これらの数字ドラムは、本体部90と表示盤930とにより構成される空間に内蔵されており、表示盤930に設けられた開口から外部より視認可能となっているものとする。また、水道メータ9の設置時には、表示盤930の面方向は水平方向を向くものとする。
【0014】
メータ読取装置1は、
図1に示すように、本体部10と、本体部10に内蔵される文字認識装置11と、本体部10の下部に設けられた略円筒状の撮像フード12と、撮像フード12内に設けられたカメラ13と、カメラ13による撮像対象に対して赤色光を照射するLED13aと、メータ読取装置1を操作するための操作部14と、メータ読取装置1に係る各種情報を表示するディスプレイ15とを備える。メータ読取装置1は、水道メータ9の表示部93におけるカウンタ部934の整数部を読み取るものであり、そのため、撮像フード12は本体部9上に載置可能に構成され、カメラ13は撮像フード12に対して表示盤930の略全体を撮像可能に設けられるものとする。また、メータ読取装置1の使用者は、カメラ13の撮像領域内にカウンタ部934と表示盤930における境界部とが含まれるようにメータ読取装置1を水道メータ9上に載置するものとする。
【0015】
(文字認識装置の構成)
文字認識装置のハードウェア構成及び機能構成について説明する。
図4は、文字認識装置のハードウェア構成を示すブロック図である。
図5は、文字認識装置の機能構成を示すブロック図である。
【0016】
文字認識装置11は、
図4に示すように、ハードウェアとして、MPU(Micro Processing Unit)110、メモリ111、記憶装置112、通信部113、入出力I/F(interface)114を備える。MPU110及びメモリ111は、協働して各種機能を実行し、記憶装置112は各種機能により実行される処理に用いられる各種データを記憶する。通信部113は、スマートフォン2との通信を行う。入出力I/F114は、カメラ13、LED13a、操作部14、ディスプレイ15とのデータ入出力を行う。
【0017】
また、文字認識装置11は、
図5に示すように、MPU110及びメモリ111により実行される機能として、画像取得部101、フィルタ処理部102、回転補正部103、文字抽出部104、スケール調整部105、特徴量算出部106、マッチング処理部107、カウンタ値判定部108、カウンタ値送信部109を備える。画像取得部101は、カメラ13により撮像された撮像画像を取得する。フィルタ処理部102は、取得された撮像画像に各種フィルタを適用する。回転補正部103は、フィルタが適用された画像に基づいて、撮像された表示部93が正立するように撮像画像を回転させる。文字抽出部104は、撮像画像からカウンタ部934における個々の数値を含む部分画像を抽出する。スケール調整部105は、部分画像のスケールを調整する。特徴量算出部106は、部分画像から特徴量を算出する。マッチング処理部107は、部分画像の特徴量と予め用意された特徴量辞書とのマッチングを行うことにより部分画像内の数値を認識する。カウンタ値判定部108は、認識されたカウンタ部934の数値に対する判定を行う。カウンタ値送信部109は、通信部113を介して、認識され判定されたカウンタ部934の数値をスマートフォン2へ送信する。
【0018】
(文字認識装置の全体動作)
文字認識装置の全体動作について説明する。
図6は、文字認識装置の全体動作を示すフローチャートである。
図7は、撮像画像を示す図である。
【0019】
図6に示すように、まず、画像取得部101がカメラ13により撮像された撮像画像として、
図7に示すようなモノクロ濃淡画像を取得する(S101)。ここで、撮像画像におけるカウンタ部934における小数部の数字は白の背景に赤で着色されているため、LED13aにより照射される赤色光により、白の矩形部となっており、従って、本実施形態においては認識対象とせず数字でない領域として扱われるものとする。
【0020】
次に、フィルタ処理部102が後述するフィルタ処理を実行し(S102)、回転補正部103が後述する回転補正処理を実行する(S103)。
【0021】
次に、文字抽出部104が回転補正処理により正立された撮像画像に対して、後述する文字領域抽出処理を実行し(S104)、スケール調整部105が文字領域抽出処理により抽出された各部分画像のスケールを調整し(S105)、特徴量算出部106が後述する特徴量算出処理を実行し(S106)、マッチング処理部107が各部分画像における数値を認識する(S107)。
【0022】
次に、カウンタ値判定部108が後述するカウンタ値判定処理を行い(S108)、カウンタ値送信部109がカウンタ値判定処理により確定されたカウンタ部934のカウンタ値をスマートフォン2へ送信する(S109)。
【0023】
(フィルタ処理)
フィルタ処理について説明する。
図8は、フィルタ処理の動作を示すフローチャートである。
図9は、ソーベルフィルタのカーネルを示す図である。
図10は、エッジ強調画像を示す図である。
図11は、二値化画像を示す図である。
図12は、細線化画像を示す図である。
【0024】
図8に示すように、まず、フィルタ処理部102は、撮像画像取得部101により取得された撮像画像に対して、
図9(a)に示すような縦方向のカーネルと
図9(b)に示すような横方向のカーネルとを用いたソーベルフィルタを適用して、
図10に示すような輝度の変化が大きいエッジ箇所が強調されたエッジ強調画像を生成する(S201)。
【0025】
次に、フィルタ処理部102は、エッジ強調画像を所定の閾値により二値化して、
図11に示すような二値化画像を生成し(S202)、更に、この二値化画像に対して、線を1ピクセル幅だけ残す細線化処理を行い、
図12に示すような細線化画像を生成する(S203)。
【0026】
このように、フィルタ処理によれば、後述する処理に用いられる二値化画像及び細線化画像が生成される。
【0027】
(回転補正処理)
回転補正処理の動作について説明する。
図13は、回転補正処理の動作を示すフローチャートである。
図14は、境界線L及び回転角θを示す図である。
【0028】
図13に示すように、まず、回転補正部103は、細線化画像に基づいて、表示盤930における境界部を検出する(S301)。ここで、回転補正部103は、ハフ変換によって、細線化画像において
図14に示すような最長の直線を境界線Lとして検出することによって、表示盤930における境界部、すなわち、黒に着色された半円状の領域の直線部分を検出する。
【0029】
次に、回転補正部103は、水平線y=0と境界線Lとのなす角θを検出し(S302)、この角θが0となるように、撮像画像及び二値化画像を−θ回転させる(S303)。ここで、二値化画像は、上述したステップS202において生成された画像である。また、以降の説明において、画像の左上隅を原点とし、水平方向右向きにx軸、垂直方向下向きにy軸をとるものとする。
【0030】
画像の回転後、回転補正部103は、回転補正した撮像画像について、倒立状態であるか否かを判定する(S304)。ここで、倒立状態とは、回転補正した撮像画像において表示部93が倒立している状態、即ち、境界線が平行となっているものの、カウンタ部934における数字が上下に反転している状態を示し、回転補正部103は、細線化画像における境界線Lが回転された線に相当する撮像画像における境界線上の点から上方側の10ピクセル、下方側の10ピクセルについて、それぞれ輝度値の加算を行い、上方の合計値が下方の合計値より大きい場合に倒立状態と判定する。
【0031】
倒立状態である場合(S304,YES)、回転補正部103は、回転補正した撮像画像及び回転補正した二値化画像を180°回転させ(S305)、回転補正処理を終了する。
【0032】
一方、倒立状態ではない場合(S304,NO)、回転補正部103は、回転補正処理を終了する。
【0033】
このように、回転補正処理によれば、メータ読取装置1の使用者は、水道メータ9のカウンタ値の読み取りにおいて、撮像画像上において表示部93が正立するように、即ちカウンタ部934における数字の上下方向と撮像画像の上下方向とが一致するように、メータ読取装置1を設置する必要がない。
【0034】
(文字領域抽出処理)
文字領域抽出処理の動作について説明する。
図15は、文字領域抽出処理の動作を示すフローチャートである。
図16は、二値化画像における対象領域を示す図である。
図17は、撮像画像における対象領域を示す図である。
図18は、二値化画像におけるノイズを示す図である。
図19は、y方向射影を示す図である。
【0035】
図15に示すように、文字抽出部104は、回転補正部103により表示部93が正立するように回転された撮像画像及び二値化画像から、
図16、
図17に示すように対象領域を抽出する(S401)。ここで、対象領域は境界線から上方に位置して上下方向に所定距離を有し、かつカウンタ部934が含まれる領域である。このとき小数点が対象領域に含まれないように対象領域下端と境界線との距離を設定する。例えば小数点部分が境界線から10ピクセル上にある場合、境界線から60ピクセル上方の位置から、境界線から10ピクセル上方の位置までの領域を対象領域として設定する。
【0036】
次に、文字抽出部104は、対象領域として抽出した二値化画像(以後、単に二値化画像と称する。撮像画像も同様。)から
図18に示すようなノイズNを除去する(S402)。ノイズNは、表示盤930に設けられた開口部に起因するものであり、文字抽出部104は、横方向に所定幅以上連続する白画素をノイズNと判定し、該当箇所を黒画素に変更する。ここで、所定幅は、少なくともカウンタ部934における一桁分の文字幅以上とすると良く、例えば30ピクセルに設定される。更に、文字抽出部104は、所定幅以上連続する白画素から上下1ピクセルに存在する白画素についてもノイズNと判定して黒画素に変更する。
【0037】
ノイズNの除去後、文字抽出部104は、二値化画像のy方向射影P
yを以下の式により算出する(S403)。ここで、射影P
yは、y座標毎に算出される合計輝度値を示す。
【0038】
【数1】
F
1は二値化画像、W
1は二値化画像の幅。
図19に射影P
yの例を示す。
【0039】
次に、文字抽出部104は、予め設定された所定の閾値T
1と射影P
yとに基づいて文字高さH
cを算出する(S404)。ここで、文字抽出部104は、P
y(y)≧T
1となるような、2つのy座標により示されるy方向の区間を探索し、該当する区間のうち、最大の区間を文字高さH
cとする。なお、この文字高さH
cは、対象領域のy方向の範囲として用いられる。これによって、処理対象領域に占める文字を構成する領域の割合を増加させることができ、延いては、文字の認識の精度を高めることができる。
【0040】
次に、文字抽出部104は、後述する第1文字領域抽出処理を実行し(S405)、更に、後述する並列文字領域抽出処理を実行し(S406)、文字領域抽出処理を終了する。
【0041】
(第1文字領域抽出処理)
第1文字領域抽出処理の動作について説明する。
図20は、第1文字領域抽出処理の動作を示すフローチャートである。
図21は、x方向射影を示す図である。
図22は、部分撮像画像を示す図である。
【0042】
図20に示すように、文字抽出部104は、まず、二値化画像のx方向射影P
xを以下の式により算出する(S501)。ここで、射影P
xは、x座標毎に算出される合計輝度値を示す。
【0043】
【数2】
H
1は二値化画像の高さ。
図21に射影P
xの例を示す。
【0044】
次に、文字抽出部104は、射影P
xのx方向の重心座標xgを以下の式により算出する(S502)。
【0046】
次に、文字抽出部104は、x方向に予め設定されたウィンドウ幅Wsを用いて、幅(2・Ws)を持つ抽出ウィンドウを射影P
xに設け、その抽出ウィンドウの中心をx方向にxg−Wsからxg+Wsの間を1ピクセルごと左から右に移動しながら抽出ウィンドウ内の射影P
xの合計を算出する。この抽出ウィンドウ内の射影P
xの合計が最大となる抽出ウィンドウの中心座標x
cを算出する(S504)。
【0047】
次に、文字抽出部104は、後述する位置補正処理により抽出ウィンドウの中心座標x
cのx方向位置を補正し(S505)、撮像画像における抽出ウィンドウ内の領域の画像を
図22に示すような部分撮像画像として抽出し(S506)、文字領域抽出処理を終了する。
図22には、カウンタ値における一の位の”5”を含む部分画像が示される。
【0048】
このように、二値化画像における射影P
xの重心座標Xgを初期値として抽出ウィンドウの中心座標x
cを算出することにより、重心座標Xgを抽出ウィンドウの中心にセットする場合に比べ、より文字が存在する可能性が高い領域に対して、最初に抽出ウィンドウをセットすることができる。なお、この抽出ウィンドウは、並列文字領域抽出処理により左右に移動し最適位置に補正される。
【0049】
(位置補正処理)
位置補正処理について説明する。
図23は、位置補正処理の動作を示すフローチャートである。
【0050】
図23に示すように、まず、文字抽出部104は、中心座標x
cを中心としてウィンドウ幅Wsを左右に有する抽出ウィンドウを回転補正された撮像画像にセットし、この抽出ウィンドウ内の回転補正された撮像画像を部分撮像画像として抽出し(S601)、この部分撮像画像を判別分析法により二値化する(S602)。
【0051】
次に、文字抽出部104は、二値化された部分撮像画像におけるx方向の重心座標x
cgを以下の式により算出する(S603)。
【0052】
【数4】
F
2Bは二値化された部分撮像画像、H
2は部分撮像画像の高さ。
【0053】
次に、文字抽出部104は、中心座標x
cと重心座標x
cgとが一致するか否かを判定する(S604)。ここで、文字抽出部104は、x
cg−Ws=0である場合に中心座標x
cと重心座標x
cgとが一致すると判定する。
【0054】
中心座標x
cと重心座標x
cgとが一致する場合(S604,YES)、文字抽出部104は、位置補正処理を終了する。
【0055】
一方、中心座標x
cと重心座標x
cgとが一致しない場合(S604,NO)、文字抽出部104は、中心座標x
cをx方向にシフトして抽出ウィンドウを移動させ(S605)、移動された抽出ウィンドウ内の回転補正した撮像画像を部分撮像画像として抽出する(S601)。抽出ウィンドウの移動においては、中心座標x
cには、重心座標x
cgからウィンドウ幅Wsを減算した値に中心座標x
cを加算した値が代入される。
【0056】
このように、位置補正処理によれば、中心座標x
cと重心座標x
cgとが一致するように抽出ウィンドウのx方向位置を変化させることにより、抽出ウィンドウにより抽出される部分撮像画像による文字抽出の精度を向上させることができる。
【0057】
(並列文字領域抽出処理)
並列文字領域抽出処理の動作について説明する。
図24は、並列文字領域抽出処理の動作を示すフローチャートである。
【0058】
図24に示すように、まず、文字抽出部104は、二値化画像及び撮像画像に設定された抽出ウィンドウの中心座標x
cを予め設定された文字間隔値分右方向へ動かし(S701)、後述する文字判定処理を実行し(S702)、この文字判定処理により抽出ウィンドウ内に文字があると判定されたか否かを判定する(S703)。
【0059】
抽出ウィンドウ内に文字があると判定されない場合(S703,NO)、文字抽出部104は、第1文字領域抽出処理により二値化画像及び撮像画像に設定された抽出ウィンドウの中心座標x
cを文字間隔値分左方向へ動かし(S704)、文字判定処理を実行し(S705)、この文字判定処理により抽出ウィンドウ内に文字があると判定されたか否かを判定する(S706)。
【0060】
抽出ウィンドウ内に文字があると判定されない場合(S706,NO)、文字抽出部104は、並列文字領域抽出処理を終了する。
【0061】
一方、抽出ウィンドウ内に文字があると判定された場合(S706,YES)、文字抽出部104は、上述した位置補正処理により抽出ウィンドウの中心座標x
cの位置を補正し(S707)、抽出ウィンドウ内の領域の撮像画像を部分撮像画像として抽出し(S708)、再度、抽出ウィンドウの中心座標x
cを文字間隔値分左方向へ動かす。(S704)。
【0062】
また、ステップS703において、抽出ウィンドウ内に文字があると判定された場合(S703,YES)、文字抽出部104は、上述した位置補正処理により抽出ウィンドウの中心座標x
cの位置を補正し(S709)、抽出ウィンドウ内の回転補正された撮像画像を部分撮像画像として抽出し(S710)、再度、抽出ウィンドウの中心座標x
cを文字間隔値分右方向へ動かす(S701)。
【0063】
このように、並列文字領域抽出処理によれば、第1文字領域抽出処理により決定された抽出ウィンドウを左右に動かして、第1文字領域抽出処理により特定された領域に並列する数値の領域を特定することができる。また、並列文字領域抽出処理による左右方向それぞれへの探索は、文字判定処理により抽出ウィンドウ内に文字が存在しないと判定された場合に抽出ウィンドウがカウンタ部934の数値部分よりも外方の端部側へ達したと見做され終了される。
【0064】
(文字判定処理)
文字判定処理の動作について説明する。
図25は、文字判定処理の動作を示すフローチャートである。
図26は、右上角と左下角とを結ぶ対角線により分割された2つの領域を示す図である。
図27は、左上角と右下角とを結ぶ対角線により分割された2つの領域を示す図である。
図28は、左右に分割された2つの領域を示す図である。
図29は、合計輝度値による文字判定に用いられる画像を示す図である。
図30は、文字領域抽出処理による抽出結果を示す図である。
【0065】
図25に示すように、まず、文字抽出部104は、二値化画像における抽出ウィンドウ内の合計輝度値が所定比率未満であるかを判定する(S801)。ここで、文字抽出部104は、具体的には、白画素の数が抽出ウィンドウ内の総画素数の16分の1未満であるか否かを判定する。この判定によれば、抽出ウィンドウ内に白画素が極端に少ない場合に抽出ウィンドウ内に文字が存在しないと判定される。
【0066】
合計輝度値が所定比率未満ではない場合(S801,NO)、文字抽出部104は、
図26に示すように、二値化画像における抽出ウィンドウ内の領域を右上角から左下角への対角線により分割した領域A、領域Bとし(S802)、これらの領域間に合計輝度値の偏りがあるか否かを判定する(S803)。ここで、文字抽出部104は、具体的には、領域Aにおける合計輝度値をS
A、領域Bにおける合計輝度値をS
Bとした際、S
AがS
Bの5倍以上である場合、または、S
BがS
Aの5倍以上である場合に領域Aと領域Bとの間に合計輝度値の偏りがあると判定する。
【0067】
領域間に輝度値の偏りがない場合(S803,NO)、文字抽出部104は、
図27に示すように、二値化画像における抽出ウィンドウ内の領域を左上角から右下角への対角線により分割した領域A、領域Bとし(S804)、これらの領域間に合計輝度値の偏りがあるか否かを判定する(S805)。ここで、文字抽出部104は、具体的には、上述の判定と同様に、領域Aにおける合計輝度値をS
A、領域Bにおける合計輝度値をS
Bとした際、S
AがS
Bの5倍以上である場合、または、S
BがS
Aの5倍以上である場合に領域Aと領域Bとの間に合計輝度値の偏りがあると判定する。
【0068】
領域間に輝度値の偏りがない場合(S805,NO)、文字抽出部104は、
図28に示すように、二値化画像における抽出ウィンドウ内の領域を中心縦線に分割した領域A、領域Bとし(S806)、これらの領域間に合計輝度値の偏りがあるか否かを判定する(S807)。ここで、文字抽出部104は、具体的には、領域Aにおける合計輝度値をS
A、領域Bにおける合計輝度値をS
Bとした際、S
AがS
Bの10倍以上である場合、または、S
BがS
Aの10倍以上である場合に領域Aと領域Bとの間に合計輝度値の偏りがあると判定する。
【0069】
領域間に合計輝度値の偏りがない場合(S807,NO)、文字抽出部104は、撮像画像における抽出ウィンドウ内の領域について、ソーベルフィルタを適用した画像と元画像とを加算し、更に判定判別法により二値化した判定用部分画像を生成する(S808)。生成後、文字抽出部104は、
図29(a)に示すような二値化画像における抽出ウィンドウ内の合計輝度値と、
図29(b)に示すような判定用部分画像における合計輝度値との差が、予め設定された所定値以上であるか否かを判定する(S809)。本実施の形態においては、この判定に用いる所定値を175とする。
【0070】
合計輝度値の差が所定値以上ではない場合(S809,NO)、文字抽出部104は、抽出ウィンドウ内の領域に文字があると判定し(S810)、文字判定処理を終了する。
【0071】
一方、合計輝度値の差が所定値以上である場合(S809,YES)、文字抽出部104は、抽出ウィンドウ内の領域に文字がないと判定し(S811)、文字判定処理を終了する。
【0072】
また、ステップS807において、領域間に合計輝度値の偏りがある場合(S807,YES)、文字抽出部104は、抽出ウィンドウ内の領域に文字がないと判定する(S811)。
【0073】
また、ステップS805において、領域間に合計輝度値の偏りがある場合(S805,YES)、文字抽出部104は、抽出ウィンドウ内の領域に文字がないと判定する(S811)。
【0074】
また、ステップS803において、領域間に合計輝度値の偏りがある場合(S803,YES)、文字抽出部104は、抽出ウィンドウ内の領域に文字がないと判定する(S811)。
【0075】
また、ステップS801において、合計輝度値が所定比率未満である場合(S801,YES)、文字抽出部104は、抽出ウィンドウ内の領域に文字がないと判定する(S811)。
【0076】
このように、文字判定処理によれば、抽出ウィンドウ内の合計輝度値に基づいて、抽出ウィンドウ内に文字が存在するか否かを判定することができる。また、位置補正処理を含む第1文字領域抽出処理と、文字判定処理及び位置補正処理を含む並列文字領域抽出処理とを含む文字抽出処理によれば、
図30に示すように、例えば、W1〜W6の順に抽出ウィンドウの位置が移動される。このうち、W1、W3、W4、W5は文字があると判定され、W2はステップS809の判定により文字がないと判定され、W6は、ステップS803の判定により文字がないと判定される。なお、抽出ウィンドウW1、W3、W4、W5により抽出された部分撮像画像は、桁数を示す桁値が対応付けられるものとし、この桁値は、最も右側に位置するものを0として、1ずつ増加するようになっている。
【0077】
(スケール調整処理)
スケール処理について説明する。
図31は、文字高さと抽出ウィンドウ間の距離との相関関係を示すグラフである。
【0078】
カメラ13と表示部93との距離や、水道メータ9の種別の違いなどによって、撮像画像における文字の大きさが特徴量辞書を作成するときに使用した文字の大きさと異なる状況が存在する。これに対し、スケール調整部105は、スケール調整処理により部分撮像画像のスケールを調整する。ここで、スケール調整に係る倍率は、
図31に示すような事前に計測された文字同士の間隔と文字高さとの相関関係から得られた近似直線によって決定され、本実施の形態において、この近似直線はy=0.9709x−5.3309とする。
【0079】
スケール調整部105は、まず、文字として判定された複数の抽出ウィンドウにおいて、隣り合う抽出ウィンドウの中心座標x
c間の距離をそれぞれ算出し、算出した距離の平均値を近似直線に代入することによって文字高さを算出する。更に、スケール調整部105は、算出された文字高さに基づいて、部分撮像画像のスケールを調整する。
【0080】
(特徴量算出処理)
特徴量算出処理について説明する。
図32は、部分撮像画像を二値化した二値画像及び特徴量算出処理結果を画像で表わした結果を示す図である。
図33は、特徴量パターンを示す図である。
【0081】
特徴量算出部106は、まず、例えば微分ヒストグラム法によって、
図32(a)に示すように部分撮像画像を二値化し、この二値化画像を
図32(b)に示すように特徴量算出する。ここで特徴量算出部106は、二値化画像をx方向に、左領域、中領域、右領域に三分割し、y座標(行)毎にそれぞれの領域内に含まれる輝度値に基づいて、各領域を0または1に設定する。本実施形態においては、白画素が3ピクセル以上続く場合に1と設定し、それ以外の場合に0と設定する。このように行ごとに算出した特徴量集合を作成する。これを以後特徴量画像と呼ぶ。この特徴量画像において、各y座標(行)は、
図33において3ビット(0〜7の値)で表現される。このように、部分撮像画像を特徴量の集合として表わすことによりマッチング処理における堅牢性が向上するとともに、部分撮像画像を後述するマッチング処理に適したものとすることができる。
【0082】
(マッチング処理)
マッチング処理について説明する。
図34は、マッチング処理の動作を示すフローチャートである。
図35は、数字の変形箇所を示す図である。
図36は、マッチング処理に用いられるカーネル関数を示す図である。
図37は、特徴量化された5と6との違いを示す図である。
【0083】
図34に示すように、まず、マッチング処理部107は、未選択の特徴量画像を選択し(S901)、未選択の特徴量辞書を選択する(S902)。
【0084】
ここで、特徴量辞書について説明する。特徴量辞書は、円筒状の数字ドラムの側面を円周方向に3°ずつずらして全周を撮像した120枚の画像をそれぞれの特徴量算出を行い集合としたものである。
図35に示すように、カウンタ部934の文字は数字ドラムの側面に表示され、この側面の断面形状は円弧を描いているため、数字ドラム中心から上下に離れるにつれ文字の変形が増大する。また、数字ドラムの側面には0〜9の数値が配置されており、カウンタ値の変化途中においては、例えば、隣り合って配置される2つの数値が同時に視認可能となる。そのため、このように個々の数字を撮像した画像だけでなく、変化途中も考慮した画像をも用いることによって、より精度の高いマッチングを行うことができる。なお、これら120個の特徴量辞書のそれぞれには、0.0〜9.9の値が対応付けられており、この値において、整数部はカウンタ値として表示される数字を示し、小数部は数字ドラムの回転方向に隣り合う数字への変化度合を示す。例えば、9から0へ変化する途中の状態であって、上方に9の一部と下方に0の一部とが撮像された特徴量辞書には9.5が設定される。この特徴量辞書に対応付けられる値はカウンタ値判定処理に用いられる。
【0085】
次に、マッチング処理部107は、選択した特徴量画像及び特徴量辞書との類似度Rを以下の式により算出する(S903)。
【0086】
【数5】
I(h)はh行における特徴量画像の特徴量、T(h)はh行における特徴量辞書の特徴量を示す。テルソン積記号は特徴量の組み合わせに対して設定されたカーネル値を決定する演算を示し、後述するカーネル関数が用いられる。また、
【0087】
【数6】
であり、この処理によればh行とマッチングする対象を特徴量辞書h−Δh行〜h+Δh行の合計2・Δh+1行の中で演算値が最大のものがマッチング結果として採用される。これにより、スケール調整処理によりスケール調整の誤差が生じた場合であっても、この誤差がマッチングに及ぼす影響を低減することができる。
【0088】
類似度Rの算出に用いられるカーネル関数は、
図36に示すように、特徴量の組み合わせに対して、個々に重みを設定したものであり、区別すべき特徴量の組み合わせに対しては小さな値がセットされる。例えば、
図37に示すような特徴量画像で表現された5と6とでは、その違いは一部分のみとなっているが、ここで、特徴量[001]=1と特徴量[101]=5に対して小さな値を設定することによって、マッチング処理における5と6の判別性能を向上させることができる。
【0089】
類似度Rの算出後、マッチング処理部107は、未選択の特徴量辞書があるか否かを判定する(S904)。
【0090】
未選択の特徴量辞書がない場合(S904,NO)、マッチング処理部107は、算出された類似度Rが最大である特徴量辞書を選択し(S905)、この特徴量辞書に対応付けられた値を取得し(S906)、未選択の特徴量画像があるか否かを判定する(S907)。
【0091】
未選択の特徴量画像がない場合(S907,NO)、マッチング処理を終了する。
【0092】
一方、未選択の特徴量画像がある場合(S907,YES)、マッチング処理部107は、再度、未選択の特徴量画像を選択する(S901)。
【0093】
また、ステップS904において、未選択の特徴量辞書がある場合(S904,YES)、マッチング処理部107は、再度、未選択の特徴量辞書を選択する(S902)。
【0094】
(カウンタ値判定処理)
カウンタ値判定処理について説明する。
図38は、カウンタ値判定処理の動作を示すフローチャートである。
図39は、499から500に変化するカウンタ部を示す図である。
【0095】
図38に示すように、まず、カウンタ値判定部109は、最下位の桁を0とした変数nに0を代入し(S1001)、nがカウンタ値の桁数を示し、予め設定される設定桁数(本実施形態においては4)より小さいか否かを判定する(S1002)。
【0096】
nが設定桁数より小さい場合(S1002,YES)、n桁についてマッチング処理により取得された取得値(類似度Rが最大となる特徴量辞書に対応付けられた値)が9+Δnから10−Δnの区間内であるか否かを判定する(S1003)。ここで、Δnは予め設定する値であり桁上がりが発生しているかの判定を調整するパラメータとなっており、本実施の形態においては、0.3に設定されているものとする。
【0097】
取得値が9+Δnから10−Δnの区間内である場合(S1003,YES)、カウンタ値判定部109は、n桁を後に判定の対象とする桁である判定保留桁に追加し(S1004)、nをインクリメントし(S1005)、再度、nが設定桁数より小さいか否かを判定する(S1002)。
【0098】
一方、取得値が9+Δnから10−Δnの区間外である場合(S1003,NO)、カウンタ値判定部109は、n桁目の取得値の小数部が(1−Δn)以下であるか否かを判定する(S1006)。
【0099】
n桁についての取得値の小数部が(1−Δn)以下である場合(S1006,YES)、カウンタ値判定部109は、n桁目の取得値の整数部をn桁目の読取値とし(S1007)、変数mに0を代入し(S1008)、mが判定保留桁のうち最大のものである最大判定保留桁より小さいか否かを判定する(S1009)。
【0100】
mが最大判定保留桁より小さい場合(S1009,YES)、カウンタ値判定部109は、m桁が判定保留桁かどうかを判定する(S1010)。
【0101】
m桁が判定保留桁である場合(S1010,YES)、m桁の読取値を9としてm桁を判定保留桁から解除し(S1011)、mをインクリメントし(S1012)、再度、mが最大判定保留桁より小さいか否かを判定する(S1009)。ここで、読取値とは、最終的にカウンタ部932のカウンタ値として読み取られる値である。
【0102】
一方、m桁が判定保留桁ではない場合(S1010,NO)、カウンタ値判定部109は、mをインクリメントする(S1012)。
【0103】
また、ステップS1009において、mが最大判定保留桁以上である場合(S1009,NO)、カウンタ値判定部109は、nをインクリメントする(S1005)。
【0104】
また、ステップS1006において、n桁についての取得値の小数部が(1−Δn)より大きい場合(S1006,NO)、カウンタ値判定部109は、n桁目の取得値の整数部+1をn桁目の読取値とし(S1013)、mに0を代入し(S1014)、mが最大判定保留桁より小さいか否かを判定する(S1015)。
【0105】
mが最大判定対象保留桁より小さい場合(S1015,YES)、カウンタ値判定部109は、m桁が判定保留桁かどうかを判定する(S1016)。
【0106】
m桁が判定保留桁である場合(S1016,YES)、カウンタ値判定部109は、m桁の読取値を0としてm桁を判定保留桁から解除し(S1017)、mをインクリメントし(S1018)、再度、mが最大判定保留桁より小さいか否かを判定する(S1015)。
【0107】
一方、m桁が判定保留桁ではない場合(S1016,NO)、カウンタ値判定部109は、mをインクリメントする(S1018)。
【0108】
また、ステップS1015において、mが最大判定保留桁以上である場合(S1015,NO)、カウンタ値判定部109は、nをインクリメントする(S1005)。
【0109】
また、ステップS1002において、nが設定桁数より小さくない場合(S1002、NO)、カウンタ値判定部109は、カウンタ値判定処理を終了する。
【0110】
このように、カウンタ値判定処理によれば、
図39に示すような、カウンタ値が[0499]から[0500]に変化している際の撮像画像について、0と9との間にある桁(判定対象桁)よりも上位の桁がより大きな数字へ変化中であるか否かを判定することによって、判定対象桁の数字を正しく読み取ることができる。なお、回転が不十分なカウンタ部を示す
図40からわかるように、数字が変化途中でなくとも数字の上下方向における重心が中心位置から大きくずれている水道メータも存在するため、カウンタ値判定処理における小数部の閾値Δnを0.3程度に設定することが望ましい。
【0111】
本実施の形態において、文字認識プログラムは上述した文字認識装置の内部に予めインストールされているものとして記載したが、本発明における文字認識プログラムは記憶媒体に記憶されたものも含まれる。ここで記憶媒体とは、磁気テープ、磁気ディスク(ハードディスクドライブ等)、光ディスク(CD−ROM、DVDディスク等)、光磁気ディスク(MO等)、フラッシュメモリ等、欠陥検査装置に対し脱着可能な媒体や、さらにネットワークを介することで伝送可能な媒体等、上述した文字認識装置としてのコンピュータで読み取りや実行が可能な全ての媒体をいう。
【0112】
発明の実施形態を説明したが、この実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。