以下、本発明の実施の形態に係る光学式読取装置について、図面に基づいて具体的に説明する。本実施の形態では、光学式読取装置として、CPUを内蔵したハンディターミナルを採用する場合を例に挙げて説明する。
図1は、本発明の実施の形態に係るハンディターミナルの外観構成を示す模式図である。図1に示すように、ハンディターミナル100は、略方形である筐体10の外形を一方向に延長した板状である。筐体10の先端部分又は背面部分には、読取対象であるシンボルの光学的読取を行うための読取部(図示せず:第1読取手段及び第2読取手段を兼ねている)が設けられている。読取部は、バーコードを読み取るスキャンモジュール、二次元コードを読み取るカメラモジュール等で構成される。
筐体10の上面には、ディスプレイ部(表示部)30と、キー配置部40とが設けられている。筐体10の一端側にディスプレイ部30が、ディスプレイ部30と反対側の他端側にキー配置部40が、それぞれ設けられている。
筐体10は、ディスプレイ部30を備える表示部分DAと、キー配置部40を備える把持部分HAとで構成されており、ユーザは、把持部分HAを手で把持して、表示部分DAに設けられたディスプレイ部30の表示内容を参照しながら、把持部分HAの表面側に配置されたキー配置部40の各操作キー46を操作する。筐体10は、平面視において表示部分DAを幅広とし、把持部分HAを幅狭とする一方、側面視においては、把持部分HAが厚くなるようにしてある。これにより、把持部分HAを持ちやすくしている。
ディスプレイ部30は、筐体10の一面側に設けられており、読取対象のシンボルをカメラ部で撮像した画像、シンボルを復号化した情報、その他の設定情報といった各種の情報を表示する。ディスプレイ部30は、例えば液晶ディスプレイ(LCD)、有機EL等で構成されている。また、ディスプレイ部30は、タッチパネルとして構成されていても良い。
キー配置部40には、各種の操作を行うテンキーや電源キー44、ファンクションキー45といった複数の操作キー46が並べられている。キー配置部40に配置された各入力デバイスは、各種の入力操作を受け付けるキー入力部を構成している。また、ディスプレイ部30のタッチパネルも、キー入力部として機能している。
また、ハンディターミナル100は、携帯性を担保するべく、駆動電力を供給するためのバッテリ(図示せず)を備えている。また、撮像する位置を特定するための照準光を照射する照準光照射部、及び撮像部は、筐体10の背面側に設けられている。
図2は、本発明の実施の形態に係るハンディターミナル100の、CPU等の制御部を用いた場合の構成を示すブロック図である。図2に示すように、本実施の形態に係るハンディターミナル100は、少なくとも動作を制御する制御プログラムを実行するCPU(制御部)101、RAM20、ROM21、表示部(ディスプレイ部)30、操作部(キー配置部)40、通信インタフェース50、撮像部60を備えている。
CPU101は、内部バス等を介してハンディターミナル100の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、ROM21に記憶されているコンピュータプログラム200に従って、種々のソフトウェア的機能を実行する。RAM20は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム200の実行時にロードモジュールが展開され、コンピュータプログラム200の実行時に発生する一時的なデータ等を記憶する。
ROM21には、ファームウェア211、デコーダ212、文字認識辞書213も記憶されている。ファームウェア211は、接続されている各ハードウェアの動作を制御するドライバソフトウェア等のプログラム群である。デコーダ212は、例えばQRコード(登録商標)やバーコードをデコードする。文字認識辞書213は、撮像された画像を、テキストデータに変換するための辞書である。
通信インタフェース50は内部バスに接続されており、インターネット、LAN、WAN等の外部のネットワーク網に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。操作部(キー配置部)40は、キー入力により操作のための入力を受け付ける。
撮像部60は、カメラ61と照準光照射部62とで構成されている。カメラ61は、VVDカメラ等、撮像対象を撮像できる撮像手段であれば特に限定されるものではない。また、照準光照射部62は、撮像位置を視認できるよう撮像された画像の水平方向に延伸する直線状の光、あるいは水平方向と垂直方向の十字を形成する光等を照射する。
本実施の形態に係るハンディターミナル100の文字列の認識処理手順は以下のとおりである。図3は、本発明の実施の形態に係るハンディターミナル100の文字列の認識処理手順を示すフローチャートである。
図3において、本実施の形態に係るハンディターミナル100のCPU101は、文字列の読取が成功したか否かを判断する(ステップS301)。「読取が成功する」とは、何らかの文字列を認識したと判定できる状態を意味する。読取が成功した後、認識した文字列をそのまま記憶する、認識した文字列にマスターデータとの照合処理を実施する等の追加処理が考えられる。CPU101が、文字列の読取に失敗したと判断した場合(ステップS301:NO)、CPU101は、読取に失敗した旨を通知する(ステップS302)。
CPU101が、文字列の読取に成功したと判断した場合(ステップS301:YES)、CPU101は、読取文字列のマスターデータと照合して(ステップS303)、照合に成功したか否かを判断する(ステップS304)。「照合に成功する」とは、マスターデータに一致する文字が存在することを意味する。
CPU101が、照合に失敗したと判断した場合(ステップS304:NO)、CPU101は、照合に失敗した旨を通知する(ステップS305)。CPU101が、照合に成功したと判断した場合(ステップS304:YES)、CPU101は、照合に成功した旨を通知する(ステップS306)。この状態で、ハンディターミナル100による読取が正常に終了したことになる。
照合処理としては、様々なバリエーションが考えられる。例えば文字列が一致しているか否かを照合する場合、マスターデータとして文字列を記憶しておき、読み取った文字列と一致する文字列がマスターデータに存在すれば、照合に成功したと判断することができる。
また、マスターデータとして日付情報、例えば「2014/02/20」等を記憶しておき、読取文字列が日付として一致しているか否かを照合しても良い。この場合、単なる文字列としてではなく、日付情報として解釈しているので、例えば読取文字列が「14.2.20」であっても、日付として「2014/02/20」であると解釈するように設定しておくことで、マスターデータと一致するとして照合に成功したと判断することができる。
さらに、マスターデータとして日付情報の範囲、例えば「2014/02/20~2014/03/20」等を記憶しておき、読取文字列が、この範囲内の日付として一致しているか否かを照合しても良い。この場合、読取文字列が「14.2.25」であっても、日付としてはマスターデータに記憶してある範囲内であることから、照合に成功したと判断することができる。
図4は、本発明の実施の形態に係るハンディターミナル100の機能ブロック図である。本実施の形態に係るハンディターミナル100の撮像手段401は、読取対象となる文字列、あるいはQRコード(登録商標)、バーコード等を撮像する。
第1読取手段402は、撮像手段401で撮像された画像から文字列候補領域を抽出し、抽出された文字列候補領域から文字ごとに分離して文字列の読取を実行する。いわゆるラインスキャンを実行することになる。
第1読取手段402では、ラインスキャンを実行するので、直線状に配置されている文字列については、高い精度で読み取ることができる。その一方で、直線状に配置されていない文字列については読取精度が低下する。
第2読取手段403は、撮像手段401で撮像された画像から文字列を構成する複数の文字それぞれの文字候補領域を抽出し、抽出された複数の文字候補領域を連結して文字列の読取を実行する。いわゆるブロブスキャンを実行することになる。
第2読取手段403では、ブロブスキャンを実行するので、文字が存在すると想定される一定の領域(ブロブ)内に存在する文字を高い精度で読み取ることができる。その一方で、文字同士が接触している等、文字認識の対象となるブロブの外接矩形サイズが適切であるか否かが判断できない場合には、読取精度が低下する。
信頼度算出手段404は、信頼度として、第1読取手段402で読み取った、文字列候補領域から文字ごとに分離した文字列の読取結果の信頼度を示す第1信頼度、及び第2読取手段403で読み取った、複数の文字候補領域を連結した文字列の読取結果の信頼度を示す第2信頼度を算出する。
信頼度算出手段404は、第1信頼度算出手段405及び第2信頼度算出手段406を備えている。第1信頼度算出手段405は、第1読取手段402における文字列候補領域の抽出しやすさの度合いに対応するパラメータである第1信頼度を算出する。
ラインスキャンに基づく第1信頼度Xは、以下に説明する3つのパラメータの相乗平均として算出される。図5は、本発明の実施の形態に係るハンディターミナル100の第1信頼度Xの第1のパラメータXaの算出方法の例示図である。
第1のパラメータXaは、文字列を含む文字列候補領域の横方向の階調の投影波形に基づいて急峻に階調が立ち上がるエッジ位置を特定することにより、文字列の高さ方向の範囲の検出のしやすさを示すパラメータである。なお、以下の処理では、信頼度スコアの上限値S_maxを1.0とし、各画素の階調の範囲を0(黒)~255(白)の256階調とする。
図5(a)は、文字列候補領域51内の文字列「ABCDE」を、図5(b)は、文字列候補領域51の横方向の階調の投影波形を、それぞれ示している。図5(b)からもわかるように、文字列の上部境界の投影波形のエッジ強度をE_upper、文字列の下部境界の投影波形のエッジ強度をE_lowerとすると、文字列の上部境界のエッジ評価値SE_upperは、(式1)のように算出される。
SE_upper=min(E_upper/E_max,S_max)
・・・(式1)
なお、min(A,B)は、AとBとの小さいほうを出力する関数であり、E_maxはエッジ評価値が最大値1.0となる投影波形のエッジ強度(=100)である。
同様に、文字列の下部境界のエッジ評価値SE_lowerは、(式2)のように算出される。
SE_lower=min(E_lower/E_max,S_max)
・・・(式2)
そして、第1のパラメータXaは、算出した文字列の上部境界のエッジ評価値SE_upperと、文字列の下部境界のエッジ評価値SE_lowerとの相乗平均として、(式3)のように算出される。
Xa=sqrt(2,SE_upper*SE_lower)・・・(式3)
なお、(式3)において、sqrt(A、B)は、BのA乗根を算出する関数である。
図6は、本発明の実施の形態に係るハンディターミナル100の第1信頼度Xの第2のパラメータXbの算出方法の例示図である。第2のパラメータXbは、文字列を含む文字列候補領域の縦方向の階調の投影波形に基づいて急峻に階調が立ち上がるエッジ位置を特定することにより、文字間隔の均一性に基づく検出のしやすさを示すパラメータである。
図6(a)は、文字列候補領域51内の文字列「ABCDE」を、図6(b)は、文字列候補領域51の縦方向の階調の投影波形を、それぞれ示している。図6(b)からもわかるように、文字列の文字間隔W(1)~W(4)は、それぞれ隣接する文字と文字との間隔を意味しており、図6の例では5文字であるので文字間隔は4つとなる。
そして、文字間隔の平均値W_meanは、(式4)のように算出される。なお、以下の式において、nは2以上の整数とする。
W_mean={W(1)+W(2)+…+W(n-1)}/(n-1)
・・・(式4)
そして、それぞれの隣接する文字の文字間隔の評価値SW(i)は、(式5)のように算出することができる。なお、(式5)において、abs(A)は、Aの絶対値を出力する関数である。
SW(i)=max{S_max-abs(W(i)-W_mean
/W_mean,0}・・・(式5)
第2のパラメータXbは、文字間隔の評価値SW(i)の相乗平均として算出すれば良い。したがって、(式6)のように算出することができる。
Xb=sqrt{n-1,SW(1)*SW(2)*…*SW(n-1)}
・・・(式6)
以上の処理により、文字列候補領域51内において、文字の高さ方向の範囲、文字の左右方向の範囲を特定することができるので、文字ごとに文字候補領域として抽出することができる。図7は、本発明の実施の形態に係るハンディターミナル100の第1信頼度Xの第3のパラメータXcの算出方法の例示図である。
図7に示すように、文字列候補領域51内において、文字の高さ方向の範囲が決まり、文字の左右方向の範囲が決まるので、文字ごとに矩形領域を抽出することができる。抽出された矩形領域が、文字ごとの文字候補領域である。したがって、文字候補領域ごとに文字認識を実行し、認識された文字の確からしさを文字認識の評価値として第3のパラメータXcを算出することができる。
具体的には、認識文字ごとのモデル画像とのマッチング処理を実行し、文字候補領域ごとの文字認識の確からしさの評価値をSR(i)として求める。なお、評価値SR(i)は0~1.0の範囲内の数値である。
そして、評価値SR(i)を用いて、(式7)のように第3のパラメータXcを相乗平均として算出することができる。
Xc=sqrt{n,SR(1)*SR(2)*…*SR(n)}・・・(式7)
第1信頼度Xについて、第1のパラメータXa、第2のパラメータXb、第3のパラメータXcが、それぞれ算出されたので、これら3つのパラメータの相乗平均として第1信頼度Xを算出することができる。すなわち、第1信頼度Xは、(式8)で算出することができる。
X=sqrt(3,Xa*Xb*Xc)・・・(式8)
次に、第2信頼度算出手段406は、第2読取手段403における文字候補領域の連結しやすさの度合いに対応するパラメータである第2信頼度を算出する。「文字候補領域の連結のしやすさ」とは、同じ文字列の正しい文字を選択可能か否かという観点からの評価指標を意味している。
文字候補領域を連結しやすい場合とは、例えば矩形領域である複数の文字候補領域それぞれのサイズが近いとき、複数の文字候補領域内のそれぞれのコントラストが近いとき、等である。また、周囲に連結対象となる文字候補領域が存在しない場合には、文字候補領域を連結しにくいと評価する。以下で述べる第2信頼度のパラメータも、上述した評価に基づいて評価値を算出している。
ブロブスキャンに基づく第2信頼度Yも、以下に説明する3つのパラメータの相乗平均として算出される。第1のパラメータYaは、文字連結成分と文字の背景画像との輝度差を用いて評価値を算出する。具体的には、文字列を含む画像を二値化処理して、文字列として連結可能な連結成分を抽出する。図8は、本発明の実施の形態に係るハンディターミナル100の第2信頼度Yの第1のパラメータYaの算出のための二値化処理後の画像の例示図である。
図8に示すように、文字列候補領域51内について二値化処理を実行することで、文字画素が連結成分として表示されている。i番目の連結成分画素の階調平均と、その周辺の背景画素の階調平均との差分をC(i)とすると、平均輝度差C_meanは、(式9)のように算出することができる。
C_mean={C(1)+C(2)+…+C(n)}/n)・・・(式9)
算出した平均輝度差C_meanを用いることで、文字ごとの輝度差評価値SC(i)を(式10)のように算出することができる。
SC(i)=max{S_max-abs(C(i)-C_mean)
/C_mean,0}・・・(式10)
したがって、第1のパラメータYaは、(式11)によりSC(i)のn乗根として算出することができる。
Ya=sqrt{n,SC(1)*SC(2)*…*SC(n)}・・・(式11)
ただし、文字候補領域を特定するだけで、まだこの時点では文字候補領域を連結まではしていないので、第2のパラメータYbを算出する工程で文字候補領域を連結した後に第1のパラメータYaは算出することになる。
次に、連結成分の外接矩形を求めて、幅、高さ、面積等の特徴量、代表座標等に基づいて文字候補領域を連結して文字列候補領域を構成する。第2のパラメータYbは、文字候補領域を連結する信頼度として、外接矩形の面積の均一性に基づいた評価値を算出する。
図9は、本発明の実施の形態に係るハンディターミナル100の第2信頼度Yの第2のパラメータYbの算出方法の例示図である。図9に示すように、文字列候補領域51内において、連結成分である各文字の外接矩形91乃至95を求める。そして、i番目の外接矩形(文字候補領域)の面積をA(i)とし、平均面積A_meanを(式12)のように算出する。
A_mean={A(1)+A(2)+…+A(n)}/n)・・・(式12)
そして、i番目の外接矩形(文字候補領域)の面積の均一性に基づく評価値SA(i)を(式13)のように算出する。
SA(i)=max{S_max-abs(A(i)-A_mean)
/A_mean,0}・・・(式13)
したがって、第2のパラメータYbは、(式14)のように算出することができる。
Yb=sqrt{n,SA(1)*SA(2)*…*SA(n)}・・・(式14)
図10は、本発明の実施の形態に係るハンディターミナル100の第2信頼度Yの第3のパラメータYcの算出方法の例示図である。図10に示すように、図9の文字候補領域91乃至95を連結することで文字列候補領域51が形成されるので、文字列に対して文字ごとの文字認識を実行し、認識された文字の確からしさを文字認識の評価値Ycとして算出することができる。
具体的には、認識文字ごとにモデル画像とのマッチング処理を実行し、文字候補領域ごとの文字認識の確からしさの評価値をSR(i)として求める。なお、評価値SR(i)は0~1.0の範囲内の数値である。
そして、評価値SR(i)を用いて、(式15)のように第3のパラメータYcを相乗平均として算出することができる。
Yc=sqrt{n,SR(1)*SR(2)*…*SR(n)}・・・(式15)
第2信頼度Yについて、第1のパラメータYa、第2のパラメータYb、第3のパラメータYcが、それぞれ求まったので、相乗平均として第2信頼度Yを(式16)のように算出することができる。
Y=sqrt(3,Ya*Yb*Yc)・・・(式16)
図4に戻って、読取結果選択手段407は、算出された第1信頼度X及び第2信頼度Yに基づいて、いずれかの読取結果を選択する。具体的には、上述した第1信頼度Xと第2信頼度Yとを比較して、より信頼度の高い読取結果を選択することになる。
具体的には、第1信頼度Xの方が第2信頼度Yよりも高い場合、ラインスキャンを実行した文字列の認識結果を選択し、第1信頼度Xの方が第2信頼度Yよりも低い場合、ブロブスキャンを実行した文字列の認識結果を選択する。出力手段408は、選択された読取結果を出力する。出力としては、表示部30へ表示出力しても良いし、通信インタフェース50を介してデータ通信可能に接続されている外部コンピュータへデータ出力しても良い。
また、本実施の形態に係るハンディターミナル100は、読取結果表示手段409及び選択受付手段410を備えていても良い。読取結果表示手段409は、読取結果選択手段407により選択された読取結果と選択されなかった読取結果との両方を、互いに識別することが可能な状態で、表示部30に表示する。
選択受付手段410は、読取結果表示手段409で両方の読取結果が表示されている状態で、いずれかの読取結果の選択を受け付ける。これにより、ユーザの判断と信頼度に基づくハンディターミナル100の判断とが相違する場合であっても、ユーザの判断に合わせて読取結果を変更することができ、使い勝手を向上させることができる。
図11は、本発明の実施の形態に係るハンディターミナル100の表示部30に表示される選択受付画面の例示図である。図11に示すように、ラインスキャンでの読取結果及びブロブスキャンでの読取結果が、読取結果表示領域111に表示される。ユーザは、いずれかをカーソル操作で反転表示させる。選択文字列表示領域112には、反転表示されている読取結果が表示される。
ユーザが最終的に選択する文字列が、選択文字列表示領域112に表示されていれば、カーソル操作等で確定ボタン113を選択する。これにより、図11の例では、ラインスキャンでの読取結果である文字列「ABCDE」の選択を受け付ける。
上述した実施の形態に係るハンディターミナル100での実際の動作について例示する。図12は、文字列候補領域51内の読取対象となる第一の文字列の例示図である。図12に示すように、文字列「ABCDE」は下弦の円弧状に配置されている。
ハンディターミナル100の第1信頼度算出手段405及び第2信頼度算出手段406により、それぞれラインスキャンを実行した場合の第1信頼度X及びブロブスキャンを実行した場合の第2信頼度Yを算出し、比較する処理について以下に例示する。
図13は、本発明の実施の形態に係るハンディターミナル100の第1信頼度Xの第1のパラメータXaの算出方法の例示図である。図13(a)は、文字列候補領域51内の文字列「ABCDE」を、図13(b)は、文字列候補領域51の横方向の階調の投影波形を、それぞれ示している。
第1のパラメータXaは、文字列を含む文字列候補領域51の横方向の階調の投影波形に基づいて急峻に階調が立ち上がるエッジ位置を特定することにより、文字列の高さ方向の範囲の検出のしやすさを示すパラメータであるので、階調の立ち上がりの急峻さにより信頼度が増減する。
図13(b)からもわかるように、文字列が下弦の円弧状に配置されているので、直線状に配置されているときと比べて、文字列の上部境界の投影波形のエッジ強度をE_upper、文字列の下部境界の投影波形のエッジ強度をE_lowerは、ともに文字列が直線状に配置されている場合よりは急峻さに欠ける。例えばE_upper=20、E_lower=15(E_max=100)とすると、文字列の上部境界のエッジ評価値SE_upperは(式1)により‘0.2’、文字列の下部境界のエッジ評価値SE_lowerは(式2)により‘0.15’と算出される。
第1のパラメータXaは、算出した文字列の上部境界のエッジ評価値SE_upperと、文字列の下部境界のエッジ評価値SE_lowerとの相乗平均として、(式3)により、‘0.17’と算出される。
図14は、本発明の実施の形態に係るハンディターミナル100の第1信頼度Xの第2のパラメータXbの算出方法の例示図である。図14(a)は、文字列候補領域51内の文字列「ABCDE」を、図14(b)は、文字列候補領域51の縦方向の階調の投影波形を、それぞれ示している。
第2のパラメータXbは、文字列を含む文字列候補領域51の縦方向の階調の投影波形に基づいて階調が立ち上がるエッジ位置を特定することにより、文字間隔の均一性に基づく検出のしやすさを示すパラメータであるので、エッジ強度の大小により文字間隔を誤認等の可能性、すなわち信頼度が増減する。
図14(b)の例では、文字列が下弦の円弧状に配置されていることから、3番目の文字「C」のエッジ強度が小さくなる。したがって、本来であれば4つ存在するはずの文字列の文字間隔を3つと判断し、文字間隔W(1)=50、W(2)=150、W(3)=50と算出されている。
算出された文字間隔W(1)~W(3)に基づいて、文字列の文字間隔の平均値W_meanは、(式4)によりW_mean=83.3と算出されるので、文字間隔ごとの評価値SW(1)~SW(3)は、(式5)により算出される。すなわち、SW(1)=0.60、SW(2)=0.20、SW(3)=0.60と算出されるので、第2のパラメータXbは、文字間隔の評価値SW(1)~SW(3)の相乗平均として、(式6)により‘0.42’と算出される。
そして、下弦の円弧状に配置されている文字列の文字ごとに文字候補領域を特定する。ただし、文字「C」については、エッジ強度が小さいため、文字候補領域を特定することができない。図15は、本発明の実施の形態に係るハンディターミナル100の第1信頼度Xの第3のパラメータXcの算出方法の例示図である。
図15に示すように、文字列候補領域51内において、文字「A」、「D」、「E」については認識精度は高いものの、文字「B」については「R」に誤認する可能性が、文字「C」に至っては読み取れない可能性が高い。
認識文字ごとにモデル画像とのマッチング処理を実行し、文字候補領域ごとの文字認識の確からしさの評価値SRは、SR(1)=0.6、SR(2)=0.9、SR(3)=0.2、SR(4)=0.3となり、第3のパラメータXcは、(式7)により‘0.42’と算出される。
第1信頼度Xについて、第1のパラメータXa、第2のパラメータXb、第3のパラメータXcが、それぞれ算出されたので、これら3つのパラメータの相乗平均として第1信頼度Xを算出することができる。すなわち、第1信頼度Xは、(式8)により‘0.31’と算出される。
次に、第2信頼度Yを算出する。読取対象となる第一の文字列は、図12に示す、文字列「ABCDE」が下弦の円弧状に配置されている文字列である。
第2信頼度Yの第1のパラメータYaは、文字連結成分と文字の背景画像との輝度差を用いて評価値を算出している。ブロブスキャンを実行するので、文字列が直線状に配置されていようが、円弧状に配置されていようが、算出結果に差はほとんどない。
すなわち、文字ごとの階調平均と、文字周辺の背景画素の階調平均との輝度差Cは、文字ごとにC(1)=100、C(2)=120、C(3)=110、C(4)=90、C(5)=110となり、平均輝度差C_meanは、(式9)により‘106’と算出される。
算出された平均輝度差C_meanを用いることで、文字ごとの輝度差評価値SC(1)~SC(5)が(式10)により算出される。すなわち、SC(1)=0.94、SC(2)=0.87、SC(3)=0.96、SC(4)=0.85、SC(5)=0.96と算出される。
第1のパラメータYaは、(式11)によりSC(1)~SC(5)の5乗根として算出することができ、Ya=0.92と算出される。
次に、第2のパラメータYbは、文字候補領域を連結する第2信頼度として、外接矩形の面積の均一性に基づいた評価値を算出するので、連結成分である文字のサイズや文字の連結方向が大きく乖離しない限り、第2のパラメータYbは小さくならない。
図16は、本発明の実施の形態に係るハンディターミナル100の第2信頼度Yの第2のパラメータYbの算出方法の例示図である。図16に示すように、文字列候補領域51内において、連結成分である各文字の外接矩形(文字候補領域)91乃至95を求める。
次に、それぞれの外接矩形91乃至95の面積A(i)を算出する。具体的には、A(1)=1000、A(2)=800、A(3)=900、A(4)=900、A(5)=800と算出される。したがって、平均面積A_meanは(式12)により算出され、平均面積A_mean=880と算出される。
そして、外接矩形(文字候補領域)91乃至95の面積の均一性に基づく評価値SA(i)は、(式13)により算出される。具体的に、SA(1)=0.86、SA(2)=0.91、SA(3)=0.98、SA(4)=0.98、SA(5)=0.91と算出される。
したがって、第2のパラメータYbは、(式14)により算出され、第2のパラメータYb=0.93と算出される。
また、第2信頼度Yの第3のパラメータYcについては、文字候補領域が適切に文字を囲んだ領域となっているので、第3のパラメータYcは小さくはならない。すなわち、文字候補領域ごとの文字認識の確からしさの評価値SR(1)~SR(5)は、すべて‘1.0’となり、相乗平均として算出される第3のパラメータYc=1.0となる。
最後に、第2信頼度Yについて、第1のパラメータYa、第2のパラメータYb、第3のパラメータYcが、それぞれ算出されたので、これら3つのパラメータの相乗平均として第2信頼度Yを算出することができる。すなわち、第2信頼度Yは、(式16)により‘0.95’と算出される。
上述のように、第1信頼度X=0.31、第2信頼度Y=0.95と算出されるので、第1信頼度の方が第2信頼度よりも小さくなる。したがって、第2信頼度Yの算出の根拠となったブロブスキャンの読取結果が選択され、表示部30に表示される。
同様に、接触文字を読み取る場合についても例示する。図17は、文字列候補領域内の読取対象となる第二の文字列の例示図である。図17に示すように、文字列「ABCDE」は直線状に配置されているが、文字「A」、「B」、「C」が互いに接触し、少し離れて文字「D」、「E」が互いに接触している。
ハンディターミナル100の第1信頼度算出手段405及び第2信頼度算出手段406により、それぞれラインスキャンを実行した場合の第1信頼度X及びブロブスキャンを実行した場合の第2信頼度Yを算出し、比較する処理について以下に例示する。
まず、第1信頼度Xの第1のパラメータXaについては、一直線上に配置されていることから信頼度が低下する要因がない。したがって、例えばE_upper=150、E_lower=200(E_max=100)とすると、文字列の上部境界のエッジ評価値SE_upperは(式1)により‘1.0’、文字列の下部境界のエッジ評価値SE_lowerは(式2)により‘1.0’と算出される。
第1のパラメータXaは、算出した文字列の上部境界のエッジ評価値SE_upperと、文字列の下部境界のエッジ評価値SE_lowerとの相乗平均として、(式3)により、‘1.0’と算出される。
図18は、本発明の実施の形態に係るハンディターミナル100の第1信頼度Xの第2のパラメータXbの算出方法の例示図である。図18(a)は、文字列候補領域51内の接触文字を含む文字列「ABCDE」を、図18(b)は、文字列候補領域51の縦方向の階調の投影波形を、それぞれ示している。
第2のパラメータXbは、文字列を含む文字列候補領域51の縦方向の階調の投影波形に基づいて階調が立ち上がるエッジ位置を特定することにより、文字間隔の均一性に基づく検出のしやすさを示すパラメータであるので、エッジ強度の大小により文字間隔を誤認等の可能性、すなわち信頼度が増減する。
図18(b)の例では、文字列が互いに接触しているものの、エッジ強度に基づいて文字を分割することはできる。文字「C」と「D」との間のみ文字間隔が大きいだけで、文字間隔W(1)=50、W(2)=50、W(3)=70、W(4)=50と算出されている。
算出された文字間隔W(1)~W(4)に基づいて、文字列の文字間隔の平均値W_meanは、(式4)によりW_mean=55と算出されるので、文字間隔ごとの評価値SW(1)~SW(4)は、(式5)により算出される。すなわち、SW(1)=0.91、SW(2)=0.91、SW(3)=0.73、SW(4)=0.91と算出されるので、第2のパラメータXbは、文字間隔の評価値SW(1)~SW(4)の相乗平均として、(式6)により‘0.86’と算出される。
そして、接触文字を含む文字列の文字ごとに文字候補領域を特定する。互いに接触している部分はあるものの、文字候補領域が適切に文字を囲んだ領域となっているので、第3のパラメータXcは小さくはならない。すなわち、文字候補領域ごとの文字認識の確からしさの評価値SR(1)~SR(5)は、すべて‘1.0’となり、相乗平均として算出される第3のパラメータXc=1.0となる。
第1信頼度Xについて、第1のパラメータXa、第2のパラメータXb、第3のパラメータXcが、それぞれ算出されたので、これら3つのパラメータの相乗平均として第1信頼度Xを算出することができる。すなわち、第1信頼度Xは、(式8)により‘0.95’と算出される。
次に、第2信頼度Yを算出する。読取対象となる第二の文字列は、図17に示す、文字列「ABCDE」は直線状に配置されているが、文字「A」、「B」、「C」が互いに接触し、少し離れて文字「D」、「E」が互いに接触している文字列である。
第2信頼度Yの第1のパラメータYaは、文字連結成分と文字の背景画像との輝度差を用いて評価値を算出している。ブロブスキャンを実行するので、文字列が直線状に配置されていようが、円弧状に配置されていようが、算出結果に差はほとんどない。
ただし、文字「A」、「B」、「C」が互いに接触しているので、これらの文字候補領域が1つの文字候補領域として連結され、文字「D」、「E」が互いに接触しているので、これらの文字候補領域が1つの文字候補領域として連結される。したがって、連結された文字候補領域ごとの階調平均と、連結された文字候補領域周辺の背景画素の階調平均との輝度差Cは、連結された文字候補領域ごとにC(1)=100、C(2)=110となり、平均輝度差C_meanは、(式9)により‘105’と算出される。
算出された平均輝度差C_meanを用いることで、文字ごとの輝度差評価値SC(1)、SC(2)が(式10)により算出される。すなわち、SC(1)=0.95、SC(2)=0.95と算出される。
第1のパラメータYaは、(式11)によりSC(1)、SC(2)の二乗根として算出することができ、Ya=0.95と算出される。
次に、第2のパラメータYbは、文字候補領域を連結する第2信頼度として、外接矩形の面積の均一性に基づいた評価値を算出する。連結された文字候補領域の幅が大きく乖離しているので、第2のパラメータYbは小さくなる。
図19は、本発明の実施の形態に係るハンディターミナル100の第2信頼度Yの第2のパラメータYbの算出方法の例示図である。文字列候補領域51内において、連結された文字候補領域の外接矩形を求める。図19の例では2つの文字候補領域となる。
次に、それぞれの外接矩形(文字候補領域)の面積A(1)、A(2)を算出する。具体的には、A(1)=3000、A(2)=1800と算出される。したがって、平均面積A_meanは(式12)により算出され、平均面積A_mean=2400と算出される。
そして、外接矩形(文字候補領域)の面積の均一性に基づく評価値SA(1)、SA(2)は、(式13)により算出される。具体的に、SA(1)=0.75、SA(2)=0.75と算出される。
したがって、第2のパラメータYbは、(式14)により算出され、第2のパラメータYb=0.75と算出される。
また、第2信頼度Yの第3のパラメータYcについては、文字の形状によっては読取精度が低下し小さくなる。一方、文字の形状によっては読取精度が低下しない場合もある。本実施の形態では、読取精度が低下すると仮定する。図20は、本発明の実施の形態に係るハンディターミナル100の第2信頼度Yの第3のパラメータYcの算出方法の例示図である。
図20に示すように、文字列候補領域51内において、連結された文字列「ABC」、「DE」の認識精度は低い。認識文字ごとにモデル画像とのマッチング処理を実行し、文字候補領域ごとの文字認識の確からしさの評価値SRは、SR(1)=0.8、SR(2)=0.8となり、相乗平均として算出される第3のパラメータYcは、(式15)により‘0.8’と算出される。
最後に、第2信頼度Yについて、第1のパラメータYa、第2のパラメータYb、第3のパラメータYcが、それぞれ算出されたので、これら3つのパラメータの相乗平均として第2信頼度Yを算出することができる。すなわち、第2信頼度Yは、(式16)により‘0.83’と算出される。
上述のように、第1信頼度X=0.95、第2信頼度Y=0.83と算出されるので、第1信頼度の方が第2信頼度よりも大きくなる。したがって、第1信頼度Xの算出の根拠となったラインスキャンの読取結果が選択され、表示部30に表示される。
図21は、本発明の実施の形態に係るハンディターミナル100のCPU101の処理手順を示すフローチャートである。ハンディターミナル100のCPU101は、読取対象となる文字列、あるいはQRコード(登録商標)、バーコード等を撮像する(ステップS2101)。
CPU101は、撮像された画像から文字列候補領域を抽出し、抽出された文字列候補領域から文字ごとに分離して文字列の読取を実行する(ステップS2102)。いわゆるラインスキャンを実行する。
CPU101は、撮像された画像から文字列を構成する文字ごとの文字候補領域を抽出し、抽出された複数の文字候補領域を連結して文字列の読取を実行する(ステップS2104)。いわゆるブロブスキャンを実行する。
CPU101は、信頼度として、ラインスキャンで読み取った、文字列候補領域から文字ごとに分離した文字列の読取結果の信頼度を示す第1信頼度Xを算出する(ステップS2103)。同様に、CPU101は、ブロブスキャンで読み取った、複数の文字候補領域を連結した文字列の読取結果の信頼度を示す第2信頼度Yを算出する(ステップS2105)。
CPU101は、算出された第1信頼度Xと第2信頼度Yとを比較し、第1信頼度Xの方が第2信頼度Yより大きいか否かを判断する(ステップS2106)。CPU101が、第1信頼度Xの方が第2信頼度Yより大きいと判断した場合(ステップS2106:YES)、CPU101は、ラインスキャンでの読取結果を選択する(ステップS2107)。
CPU101が、第1信頼度Xの方が第2信頼度Y以下であると判断した場合(ステップS2106:NO)、CPU101は、ブロブスキャンでの読取結果を選択する(ステップS2108)。CPU101は、選択された読取結果を出力する(ステップS2109)。
以上のように実施の形態によれば、必ずしもユーザが選択することなく、より高い精度で読取結果を出力するとともに、ユーザの使い勝手を向上させることが可能となる。
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば上述した実施例では、第1信頼度Xの算出及び第2信頼度Yの算出を並行して実行しているが、特にこれに限定されるものではなく、第1信頼度Xを算出してから第2信頼度Yを算出しても良いし、その逆であっても良い。
また、上記実施例では、第1信頼度Xと第2信頼度Yとを単純比較する例を示しているが、本発明は特にこれに限定されるものではなく、個々のパラメータの大小に着目するようにしてもよい。例えば、上述した第1のパラメータXa、第2のパラメータXb、第3のパラメータXcのいずれかが、予め定めた閾値を超えている場合には、CPU101はラインスキャンでの読取結果を選択するように設定したり、上述した第1のパラメータYa、第2のパラメータYb、第3のパラメータYcのいずれかが、予め定めた閾値を超えている場合には、CPU101はブロブスキャンでの読取結果を選択するよう設定したりしてもよい。
他にも例えば、上述した第1のパラメータXa、第2のパラメータXb、第3のパラメータXcのうち最も大きなパラメータ値と、上述した第1のパラメータYa、第2のパラメータYb、第3のパラメータYcのうち最も大きなパラメータ値とを比較するようにしてもよいし、比較対象とするパラメータの優先順位を定め、優先順位の高いパラメータのパラメータ値のみを比較してもよく、種々の比較方法が考えられる。
また、上記実施例では、撮像された画像から文字列を読み取る場合について説明しているが、バーコードやQRコード(登録商標)などの各種コード読取装置にも適用することが可能であることは言うまでもない。