(58)【調査した分野】(Int.Cl.,DB名)
前記報知手段が、誤った読取が行われた可能性がある旨を示すよう報知した場合、読み取られた文字列を表示し、更新することが可能な画面を表示する表示手段を備えることを特徴とする請求項5又は7に記載の携帯型光学式読取装置。
前記第1の検索処理手段において、合致する第1の読取フォーマットが検索されない場合、前記報知手段は、前記撮像手段により再度撮像して処理を実行する旨を示すよう報知することを特徴とする請求項1乃至3のいずれか一項に記載の携帯型光学式読取装置。
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、例えば読取対象となる文字列が付された物品(ダンボールの包装容器等)ごとに文字列の桁数が異なる場合、桁数ごとに適切な読取フォーマットに設定を変更する必要があり、ユーザにとっては煩雑な作業となる。したがって、特許文献1に開示されている文字認識方式を用いる場合、複数の桁数に対応する複数の読取フォーマットを準備しておき、いずれか1つの読取フォーマットで読取が成功したものと判断されることで、読取成功としていた。
【0007】
一方、読取対象が「2013/12/25」であるのに対して、例えば「/25」の部分が撮像領域の外に位置する場合、あるいは照射される光の関係でハレーション(いわゆる「白とび」)が発生している場合には、文字列「2013/12」が読み取られる。この場合、7桁の読取フォーマットでは読取が成功したものと判断されるため、特許文献1に開示されている文字認識方式では、誤って読み取られているにもかかわらず読取が成功したものと判断されるという問題点があった。
【0008】
本発明は斯かる事情に鑑みてなされたものであり、誤った読取が行われた可能性が高い場合を検知して、ユーザに誤った読取が行われた可能性のある旨を報知することができる携帯型光学式読取装置、該携帯型光学式読取装置を用いる光学式読取方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために第1発明に係る携帯型光学式読取装置は、読取対象となる文字列を撮像する撮像手段と、該撮像手段で撮像された画像に基づいて文字列を認識する文字列認識手段と、文字列の属性を定義づけた複数の読取フォーマットを記憶する読取フォーマット記憶手段と、記憶されている複数の読取フォーマットのうち、前記文字列認識手段において認識された文字列に合致する第1の読取フォーマットを検索する第1の検索処理手段と、記憶されている複数の読取フォーマットのうち、前記第1の読取フォーマットに合致する文字列が部分文字列として合致する第2の読取フォーマットを検索する第2の検索処理手段と、該第2の検索処理手段の検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する報知手段とを備えることを特徴とする。
【0010】
また、第2発明に係る携帯型光学式読取装置は、第1発明において、前記報知手段は、前記第2の検索処理手段において合致する第2の読取フォーマットを検索した場合、誤った読取が行われた可能性がある旨を示すよう報知することを特徴とする。
【0011】
また、第3発明に係る携帯型光学式読取装置は、第1又は第2発明において、認識した文字列の中から、前記第1の読取フォーマットに合致している部分文字列を含む文字列の高信頼区間を抽出する抽出手段を備え、前記第2の検索処理手段は、前記第1の読取フォーマットに合致する文字列が前記部分文字列として合致し、高信頼区間に配置されている文字の種類にも適応する第2の読取フォーマットを検索することを特徴とする。
【0012】
また、第4発明に係る携帯型光学式読取装置は、第1乃至第3発明のいずれか1つにおいて、認識した文字列ごとに、文字領域から上下左右方向に一定の割合で拡張した矩形領域を設定する手段と、設定した矩形領域における白画素の割合を算出する手段と、算出した割合に基づいて誤った読取が行われた可能性があるか否かを判断する手段とを備えることを特徴とする。
【0013】
また、第5発明に係る携帯型光学式読取装置は、第1乃至第3発明のいずれか1つにおいて、認識した文字列ごとに、文字領域中における所定の閾値以上の輝度値を有する画素数をカウントする手段と、カウントされた画素数の全画素数に対する割合を算出して、評価値を算出する手段と、算出した評価値に基づいて誤った読取が行われた可能性があるか否かを判断する手段とを備えることを特徴とする。
【0014】
また、第6発明に係る携帯型光学式読取装置は、第1乃至第3発明のいずれか1つにおいて、認識した文字列の文字ごとに、文字領域中における所定の閾値以上の輝度値を有する画素を抽出する手段と、抽出された画素の縦方向又は横方向の最大連続数を算出する手段と、算出した最大連続数に基づいて誤った読取が行われた可能性があるか否かを判断する手段とを備えることを特徴とする。
【0015】
また、第7発明に係る携帯型光学式読取装置は、第1乃至第3発明のいずれか1つにおいて、認識した文字領域について、輝度値の分布ヒストグラムを算出する手段と、算出した分布ヒストグラムに基づいて、評価値を算出する手段と、算出した評価値に基づいて文字ごとに誤った読取が行われた可能性があるか否かを判断する手段とを備えることを特徴とする。
【0016】
また、第8発明に係る携帯型光学式読取装置は、前記誤った読取が行われた可能性があるか否かを判断する手段は、第5
又は第7発明
の携帯型光学式読取装置で算出された複数の前記評価値を統合した総合評価値を算出し、総合評価値に基づいて、文字ごとに誤った読取が行われた可能性があるか否かを判断することを特徴とする。
【0017】
また、第9発明に係る携帯型光学式読取装置は、第1乃至第3発明のいずれか1つにおいて、前記報知手段は、前記第1の検索処理手段において合致する第1の読取フォーマットを複数検索した場合、誤った読取が行われた可能性がある旨を示すよう報知することを特徴とする。
【0018】
また、第10発明に係る携帯型光学式読取装置は、第
5又は第7発明において、前記報知手段が、誤った読取が行われた可能性がある旨を示すよう報知した場合、読み取られた文字列を表示し、更新することが可能な画面を表示する表示手段を備えることを特徴とする。
【0019】
また、第11発明に係る携帯型光学式読取装置は、第1乃至第3発明のいずれか1つにおいて、前記第1の検索処理手段において、合致する第1の読取フォーマットが検索されない場合、前記報知手段は、前記撮像手段により再度撮像して処理を実行する旨を示すよう報知することを特徴とする。
【0020】
次に、上記目的を達成するために第12発明に係る光学式読取方法は、読取対象となる文字列を撮像する撮像手段と、該撮像手段で撮像された画像に基づいて文字列を認識する文字列認識手段と、文字列の属性を定義づけた複数の読取フォーマットを記憶する読取フォーマット記憶手段とを備える携帯型光学式読取装置で実行することが可能な光学式読取方法であって、前記携帯型光学式読取装置は、記憶されている複数の読取フォーマットのうち、前記文字列認識手段において認識された文字列に合致する第1の読取フォーマットを検索する第1の工程と、記憶されている複数の読取フォーマットのうち、前記第1の読取フォーマットに合致する文字列が部分文字列として合致する第2の読取フォーマットを検索する第2の工程と、該第2の
工程の検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する第3の工程とを含むことを特徴とする。
【0021】
次に、上記目的を達成するために第13発明に係るコンピュータプログラムは、読取対象となる文字列を撮像する撮像手段と、該撮像手段で撮像された画像に基づいて文字列を認識する文字列認識手段と、文字列の属性を定義づけた複数の読取フォーマットを記憶する読取フォーマット記憶手段とを備える携帯型光学式読取装置で実行することが可能なコンピュータプログラムであって、前記携帯型光学式読取装置を、記憶されている複数の読取フォーマットのうち、前記文字列認識手段において認識された文字列に合致する第1の読取フォーマットを検索する第1の検索処理手段、記憶されている複数の読取フォーマットのうち、前記第1の読取フォーマットに合致する文字列が部分文字列として合致する第2の読取フォーマットを検索する第2の検索処理手段、及び該第2の検索処理手段の検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する報知手段として機能させることを特徴とする。
【0022】
第1発明、第12発明及び第13発明では、読取対象となる文字列を撮像し、撮像された画像に基づいて文字列を認識する。文字列の属性を定義づけた複数の読取フォーマットを記憶しておき、記憶されている複数の読取フォーマットのうち、認識された文字列に合致する第1の読取フォーマットを検索する。記憶されている複数の読取フォーマットのうち、第1の読取フォーマットに合致する文字列が部分文字列として合致する第2の読取フォーマットを検索し、検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する。これにより、桁落ちにより誤った読取が行われた可能性、ハレーションの発生等により誤った読取が行われた可能性等が高い場合にユーザに確認を促すことができ、読取精度を高く維持することができるとともに、読取装置の利便性を向上させることが可能となる。また、一致度や相違度に基づく認識処理では、誤った読取が行われた可能性の有無を判断することができない場合であっても、誤った読取を防止して、より確実に読取の正否を判断することが可能となる。
【0023】
第2発明では、合致する第2の読取フォーマットを検索した場合、誤った読取が行われた可能性がある旨を示すよう報知する。これにより、第1の読取フォーマットの範囲外に文字列が存在している可能性を見出すことができ、桁落ちにより誤った読取が行われた可能性が高いと判断してユーザに報知することが可能となる。
【0024】
第3発明では、認識した文字列の中から、第1の読取フォーマットに合致している部分文字列を含む文字列である高信頼区間を抽出し、第1の読取フォーマットに合致する文字列が部分文字列として合致し、高信頼区間に配置されている文字の種類にも適応する第2の読取フォーマットを検索する。つまり、第1の読取フォーマットに合致している区間及びその左右に存在する高信頼区間を抽出し、抽出された区間の文字列の左右の少なくとも一方に所定数の文字存在領域を付加した文字列に合致する第2の読取フォーマットを検索する。これにより、読取フォーマット外であっても読取の信頼度に高低が存在するので、桁落ちが生じている可能性を確実にユーザに報知することが可能となる。
【0025】
第4発明では、認識した文字列ごとに、文字領域から上下左右方向に一定の割合で拡張した矩形領域を設定し、設定した矩形領域における白画素の割合を算出する。算出した割合に基づいて誤って読み取ったか否かを判断する。これにより、ハレーションの発生により、いわゆる白飛びしている領域が一定以上の割合である場合に、誤った読取が行われた可能性が高いと判断してユーザに報知することが可能となる。
【0026】
第5発明では、認識した文字列ごとに、文字領域中における所定の閾値以上の輝度値を有する画素数をカウントし、カウントされた画素数の全画素数に対する割合を算出して、評価値を算出する。算出した評価値に基づいて誤って読み取ったか否かを判断する。これにより、ハレーションの発生により、いわゆる白飛びしている領域が一定以上の大きさである場合に、白飛びしている画素数評価値に基づいて誤った読取が行われた可能性が高い場合にはユーザに報知することが可能となる。
【0027】
第6発明では、認識した文字列の文字ごとに、文字領域中における所定の閾値以上の輝度値を有する画素を抽出し、抽出された画素の縦方向又は横方向の最大連続数を算出する。算出した最大連続数に基づいて誤って読み取ったか否かを判断する。これにより、ハレーションの発生により、いわゆる白飛びしている領域が一定以上の大きさである場合に、誤った読取が行われた可能性が高いと判断してユーザに報知することが可能となる。
【0028】
第7発明では、認識した文字領域について、輝度値の分布ヒストグラムを算出し、算出した分布ヒストグラムに基づいて、評価値を算出する。算出した評価値に基づいて文字ごとに誤った読取が行われた可能性があるか否かを判断する。これにより、輝度値のヒストグラム分布により文字の存在の可能性を評価することができ、ヒストグラム波形の面積に応じて誤った読取が行われた可能性が高い場合にユーザに報知することが可能となる。
【0029】
第8発明では、上述の携帯型光学式読取装置で算出された複数の評価値を統合した総合評価値を算出し、総合評価値に基づいて、文字ごとに誤った読取が行われた可能性があるか否かを判断する。これにより、例えば各評価値の最大値によって誤った読取が行われた可能性の高低を判断することが可能となる。
【0030】
第9発明では、合致する第1の読取フォーマットを複数検索した場合、誤った読取が行われた可能性がある旨を示すよう報知する。これにより、本来想定している読取フォーマットとは異なる読取フォーマットに合致している可能性があることがわかるので、誤った読取が行われた可能性が高いと判断してユーザに報知することが可能となる。
【0031】
第10発明では、誤った読取が行われた可能性がある旨を示すよう報知した場合、読み取られた文字列を表示し、更新することが可能な画面を表示する。これにより、誤った読取が行われた可能性が高い場合には、本当に誤った読取が行われた可能性があるのか即座に確認することができるとともに、誤った読取が行われた可能性がある場合にはその場で修正することが可能となる。
【0032】
第11発明では、合致する第1の読取フォーマットが検索されない場合、撮像条件を変更して再度撮像を実行し、処理を自動的にやりなおす。これにより、誤った読取が行われた可能性が十分低くなった状態でユーザに読取結果を提示するため、確認して修正する等の手間を省くことが可能となる。
【発明の効果】
【0033】
本発明によれば、桁落ちにより誤った読取が行われた可能性、ハレーションの発生等により誤った読取が行われた可能性等が高いと判断した場合にユーザに確認を促すことができ、読取精度を高く維持することができるとともに、読取処理を実行する都度ユーザに確認を促す必要がないので、読取装置の利便性を向上させることが可能となる。また、一致度や相違度に基づく認識処理では、誤った読取が行われた可能性の有無を判断することができない場合であっても確実に判断することが可能となる。
【発明を実施するための形態】
【0035】
以下、本発明の実施の形態に係る携帯型光学式読取装置について、図面に基づいて具体的に説明する。本実施の形態では、携帯型光学式読取装置として、CPUを内蔵したハンディターミナルを採用する場合を例に挙げて説明する。
【0036】
図1は、本発明の実施の形態に係るハンディターミナルの外観構成を示す模式図である。
図1に示すように、ハンディターミナル100は、略方形である筐体10の外形を一方向に延長した板状である。筐体10の先端部分又は背面部分には、読取対象であるシンボルの光学的読取を行うための読取部(図示せず)が設けられている。読取部は、バーコードを読み取るスキャンモジュール、二次元コードを読み取るカメラモジュール等で構成される。
【0037】
筐体10の上面には、ディスプレイ部(表示部)30と、キー配置部40とが設けられている。筐体10の一端側にディスプレイ部30が、ディスプレイ部30と反対側の他端側にキー配置部40が、それぞれ設けられている。
【0038】
筐体10は、ディスプレイ部30を備える表示部分DAと、キー配置部40を備える把持部分HAとで構成されており、ユーザは、把持部分HAを手で把持して、表示部分DAに設けられたディスプレイ部30の表示内容を参照しながら、把持部分HAの表面側に配置されたキー配置部40の各操作キー46を操作する。筐体10は、平面視において表示部分DAを幅広とし、把持部分HAを幅狭とする一方、側面視においては、把持部分HAが厚くなるようにしてある。これにより、把持部分HAを持ちやすくしている。
【0039】
ディスプレイ部30は、筐体10の一面側に設けられており、読取対象のシンボルをカメラ部で撮像した画像、シンボルを復号化した情報、その他の設定情報といった各種の情報を表示する。ディスプレイ部30は、例えば液晶ディスプレイ(LCD)、有機EL等で構成されている。また、ディスプレイ部30は、タッチパネルとして構成されていても良い。
【0040】
キー配置部40には、各種の操作を行うテンキーや電源キー44、ファンクションキー45といった複数の操作キー46が並べられている。キー配置部40に配置された各入力デバイスは、各種の入力操作を受け付けるキー入力部を構成している。また、ディスプレイ部30のタッチパネルも、キー入力部として機能している。
【0041】
また、ハンディターミナル100は、携帯性を担保するべく、駆動電力を供給するためのバッテリ(図示せず)を備えている。また、撮像する位置を特定するための照準光を照射する照準光照射部、及び撮像部は、筐体10の背面側に設けられている。
【0042】
図2は、本発明の実施の形態に係るハンディターミナル100の、CPU等の制御部を用いた場合の構成を示すブロック図である。
図2に示すように、本実施の形態に係るハンディターミナル100は、少なくとも動作を制御する制御プログラムを実行するCPU(制御部)101、RAM20、ROM21、表示部(ディスプレイ部)30、操作部(キー配置部)40、通信インタフェース50、撮像部60を備えている。
【0043】
CPU101は、内部バス等を介してハンディターミナル100の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、ROM21に記憶されているコンピュータプログラム200に従って、種々のソフトウェア的機能を実行する。RAM20は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム200の実行時にロードモジュールが展開され、コンピュータプログラム200の実行時に発生する一時的なデータ等を記憶する。
【0044】
ROM21には、ファームウェア211、デコーダ212、文字認識辞書213も記憶されている。ファームウェア211は、接続されている各ハードウェアの動作を制御するドライバソフトウェア等のプログラム群である。デコーダ212は、例えばQRコード(登録商標)やバーコードをデコードする。文字認識辞書213は、撮像された画像を、テキストデータに変換するための辞書である。
【0045】
通信インタフェース50は内部バスに接続されており、インターネット、LAN、WAN等の外部のネットワーク網に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。操作部(キー配置部)40は、キー入力により操作のための入力を受け付ける。
【0046】
撮像部60は、カメラ61と照準光照射部62とで構成されている。カメラ61は、VVDカメラ等、撮像対象を撮像できる撮像手段であれば特に限定されるものではない。また、照準光照射部62は、撮像位置を視認できるよう撮像された画像の水平方向に延伸する直線状の光、あるいは水平方向と垂直方向の十字を形成する光等を照射する。
【0047】
本実施の形態に係るハンディターミナル100の読取処理手順は以下のとおりである。
図3は、本発明の実施の形態に係るハンディターミナル100の読取処理手順を示すフローチャートである。
【0048】
図3において、本実施の形態に係るハンディターミナル100のCPU101は、文字列の読取が成功したか否かを判断する(ステップS301)。「読取が成功する」とは、何らかの文字列を認識したと判定できる状態を意味する。読取が成功した後、認識した文字列をそのまま記憶する、認識した文字列にマスターデータとの照合処理を実施する等の追加処理が考えられる。CPU101が、文字列の読取に失敗したと判断した場合(ステップS301:NO)、CPU101は、読取に失敗した旨を通知する(ステップS302)。
【0049】
CPU101が、文字列の読取に成功したと判断した場合(ステップS301:YES)、CPU101は、読取文字列のマスターデータと照合して(ステップS303)、照合に成功したか否かを判断する(ステップS304)。「照合に成功する」とは、マスターデータに一致する文字が存在することを意味する。
【0050】
CPU101が、照合に失敗したと判断した場合(ステップS304:NO)、CPU101は、照合に失敗した旨を通知する(ステップS305)。CPU101が、照合に成功したと判断した場合(ステップS304:YES)、CPU101は、照合に成功した旨を通知する(ステップS306)。この状態で、ハンディターミナル100による読取が正常に終了したことになる。
【0051】
照合処理としては、様々なバリエーションが考えられる。例えば文字列が一致しているか否かを照合する場合、マスターデータとして文字列を記憶しておき、読み取った文字列と一致する文字列がマスターデータに存在すれば、照合に成功したと判断することができる。
【0052】
また、マスターデータとして日付情報、例えば「2014/02/20」等を記憶しておき、読取文字列が日付として一致しているか否かを照合しても良い。この場合、単なる文字列としてではなく、日付情報として解釈しているので、例えば読取文字列が「14.2.20」であっても、日付として「2014/02/20」であると解釈するように設定しておくことで、マスターデータと一致するとして照合に成功したと判断することができる。
【0053】
さらに、マスターデータとして日付情報の範囲、例えば「2014/02/20〜2014/03/20」等を記憶しておき、読取文字列が、この範囲内の日付として一致しているか否かを照合しても良い。この場合、読取文字列が「14.2.25」であっても、日付としてはマスターデータに記憶してある範囲内であることから、照合に成功したと判断することができる。
【0054】
(実施の形態1)
図4は、本発明の実施の形態1に係るハンディターミナル100の機能ブロック図である。本実施の形態1に係るハンディターミナル100の撮像手段401は、読取対象となる文字列、あるいはQRコード(登録商標)、バーコード等を撮像する。
【0055】
文字列認識手段402は、撮像された画像に基づいて文字列を認識する。第1の検索処理手段403は、認識された文字列が、文字列の属性を定義づけた読取フォーマットに合致しているか否かを判断して、合致している読取フォーマットを検索する。読取フォーマットは、ROM21の読取フォーマット記憶部410に複数記憶されている。
【0056】
第1の検索処理手段403は、記憶されている複数の読取フォーマットのうち、文字列認識手段402において認識された文字列に合致する第1の読取フォーマットを検索する。具体的には、第1の検索処理手段403では、記憶されている複数の読取フォーマットの中から文字認識結果に合致するものを検索し、合致するものが存在する場合、合致した読取フォーマットと合わせて「一致」情報を出力する。合致するものが存在しない場合、「不一致」情報を出力する。合致する読取フォーマットが複数存在する場合には、文字列長が最長である読取フォーマット等、所定の基準に従って最適な読取フォーマットを出力する。
【0057】
読取フォーマットは、「数字3桁〜8桁」のようなフォーマットであっても良いし、正規表現のようなフォーマットであっても良い。また、「YYYY.MM.DD」のように年月日として解釈可能な数値のみを受け入れるフォーマットであっても良い。
【0058】
さらに、文字列情報以外に座標情報を併用して「一致」情報又は「不一致」情報を出力しても良い。
図5及び
図6は、文字列情報以外に座標情報を併用した場合の読取フォーマット検索処理の例示図である。
【0059】
図5の例では、文字列が読取フォーマット「YYYYMMDD」にも合致するとともに、読取フォーマット「YYYYMM」にも合致する。この場合、読取フォーマット「YYYYMMDD」を採用するには、座標情報に基づいて「MM」と「DD」との間の空白が過大であると認識して合致していないと判断し、読取フォーマット「YYYYMM」に合致していると判断して検索結果(最適な読取フォーマアット)として出力しても良い。
【0060】
図6の例では、座標情報に基づいて文字高さを検出する。文字高さの変化に基づいて、読取フォーマット「YYYYMMDD」に合致していないと判断して、読取フォーマット「YYYYMM」に合致していると判断しても良い。
【0061】
また、文字認識結果の一部が「不定」文字、すなわち文字として切り出しているがROM21の文字認識辞書213との合致度がどの文字に対しても低い文字である場合であっても、「不定」文字をワイルドカードとみなして読取フォーマットに合致していると判断した場合には、新たな概念として「曖昧一致」という結果を返しても良い。
【0062】
図4に戻って、第2の検索処理手段404は、記憶されている複数の読取フォーマットのうち、第1の読取フォーマットに合致する文字列が部分文字列として合致する第2の読取フォーマットを検索する。これにより、文字列認識時の桁落ちの可能性を検出することができる。
【0063】
具体的には、例えば撮像する画面外に、読取対象となる文字の一部が存在すると仮定し、第1の読取フォーマットに合致する部分文字列として認識された文字認識結果の左右に、「不定」文字を所定数付加して、再度合致する読取フォーマットを検索する。
【0064】
ここで、付加する数は、光学式読取装置が想定する文字数に対して十分に大きい数であることが好ましい。例えば、最大読取可能桁数が30桁である場合、文字列の左右にそれぞれ29個の「不定」文字を付加する。
【0065】
また、座標情報を併用する場合には、付加する「不定」文字は画面外の任意の場所に、任意の大きさで付加することができるので、合致する可能性がある読取フォーマットについては「曖昧一致」としておくことができる。
図7は、「不定」文字を付加した状態の例示図である。
【0066】
図7の状態で、例えば読取フォーマットとして、「YYYY.MM」、「YYYY.M」、「YYYY.MM.DD」、「英字3桁」の4つのフォーマットを準備し、それぞれ合致しているか否かを判断した結果を
図8に示す。
【0067】
図8は、複数の読取フォーマットに対する合致度合の検索結果の例示図である。上述した読取フォーマットを、それぞれ読取フォーマット1、2、3、4とし、それぞれに対して合致部分、合致結果、合致文字列を記載している。
【0068】
そして、(1)合致結果が「曖昧一致」であり、(2)第1の検索処理手段403で検索された第1の読取フォーマットに合致する文字列を部分文字列として含む場合には、桁落ちが生じている可能性が高いと判断する。もちろん、読取対象が日付であると事前に分かっている場合、日付の意味が変わっているときには、桁落ちが生じている可能性が高いと判断する。
【0069】
この条件を、
図8の検索結果例に当てはめると、読取フォーマット3、すなわち「YYYY.MM.DD」について桁落ちが生じている可能性が高いと判断することができる。
【0070】
図4に戻って、報知手段405は、第2の検索処理手段404の検索結果に基づいて、認識された文字列に関する誤った読取の可能性の有無を報知する。すなわち、第2の検索処理手段404において合致する第2の読取フォーマットを検索した場合、誤った読取の可能性がある旨を示すよう報知することが好ましい。
【0071】
報知する方法は、特に限定されるものではない。例えば赤色に発光するLEDライトを複数装備し、誤った読取の可能性が高いほど点灯するLEDライトの数を増やすようにしても良い。あるいは、誤った読取の可能性が所定の閾値を超えた場合に、発する音を変化させても良い。
【0072】
なお、表示部30は、報知手段405が誤った読取の可能性がある旨を示すよう報知した場合、読み取られた文字列を表示し、更新することが可能な画面を表示する。
図9及び
図10は、本発明の実施の形態1に係るハンディターミナル100の表示部30に表示される認識・更新画面の例示図である。
【0073】
図9は、報知手段405によって誤った読取の可能性がある旨を示すよう報知された場合の、読み取られた文字列を表示した画面の例示図である。撮像された画像が表示されている画像表示領域91の直下の編集領域92に、読み取られたテキストデータが表示され、メッセージ表示領域93に、「桁落ちの可能性あり」とのメッセージが表示されている。
【0074】
図10は、報知手段405によって誤った読取の可能性がある旨を示すよう報知された場合の、表示された文字列を編集する画面の例示図である。編集領域92に表示されているテキストデータを編集するべくキーボードアイコン94をクリックすると、編集用の仮想キーボード95がポップアップ表示され、編集領域92に表示されているテキストデータを編集することができる。
【0075】
もちろん、読み取った状態を表示させないようユーザの指定を受け付けても良い。
図11は、読み取られた文字列を表示するか否かを設定する設定画面の例示図である。
図11の例では、読み取る都度(毎回)表示する、表示しない、報知された時(アラート発生時)に表示する、の3つの中から選択を受け付ける選択ポップアップ101が表示されている。
【0076】
また、報知するか否かを判断する基準となる閾値を変更することもできる。
図12は、報知する基準となる閾値の変更画面の例示図である。
図12の例では、報知(アラート)発生の頻度をレベル1〜5まで段階的に設定を受け付けることができる頻度設定ポップアップ102が表示されている。
【0077】
図13は、本発明の実施の形態1に係るハンディターミナル100のCPU101の処理手順を示すフローチャートである。ハンディターミナル100のCPU101は、カウンタが撮像回数の上限に到達したか否かを判断する(ステップS1301)。CPU101が、カウンタが撮像回数の上限に到達したと判断した場合(ステップS1301:YES)、CPU101は、読取処理に失敗したとして処理を終了する。
【0078】
CPU101が、カウンタが撮像回数の上限に到達していないと判断した場合(ステップS1301:NO)、CPU101は、撮像手段401から画像データを取得し、カウンタを‘1’インクリメントする(ステップS1302)。CPU101は、文字列が存在する領域である文字領域を特定する(ステップS1303)。
【0079】
文字領域の特定方法は特に限定されるものではない。例えば輝度値の分布ヒストグラムを用いて、ヒストグラム波形に一定の間隔の凸部が存在する領域を文字領域としても良い。
【0080】
CPU101は、文字領域内の文字列の傾き、歪を補正し(ステップS1304)、補正された画像に基づいて文字候補の分割点を生成する(ステップS1305)。CPU101は、文字候補の分割点間を文字認識することにより、複数の文字認識結果を取得する(ステップS1306)。
【0081】
CPU101は、複数の認識結果に基づいて、最適な文字分割パスと、該文字分割パスに基づく文字認識結果を取得し(ステップS1307)、認識結果に合致する読取フォーマットを検索する(ステップS1308)。CPU101は、認識結果と合致する読取フォーマットが存在するか否かを判断する(ステップS1309)。
【0082】
ステップS1308及びステップS1309で示す部分の処理をより具体的に説明する。
図14は、本発明の実施の形態1に係るハンディターミナル100のCPU101の読取フォーマット検索処理の手順を示すフローチャートである。
【0083】
図14において、ハンディターミナル100のCPU101は、カウンタiを‘1’に設定し(ステップS1401)、カウンタiが記憶されている読取フォーマットの総数以下であるか否かを判断する(ステップS1402)。CPU101が、カウンタiが記憶されている読取フォーマットの総数より大きいと判断した場合(ステップS1402:NO)、CPU101は、誤って読み取った可能性がないと判断して(ステップS1410)、処理をステップS1301へ戻して上述した処理を繰り返す。
【0084】
CPU101が、カウンタiが記憶されている読取フォーマットの総数以下であると判断した場合(ステップS1402:YES)、CPU101は、i番目の読取フォーマットが認識結果に合致した読取フォーマットであるか否かを判断する(ステップS1403:第1の検索処理手段)。CPU101が、認識結果に合致した読取フォーマットであると判断した場合(ステップS1403:YES)、CPU101は、カウンタiを‘1’インクリメントし(ステップS1408)、処理をステップS1402に戻して上述した処理を繰り返す。
【0085】
CPU101が、認識結果に合致した読取フォーマットではないと判断した場合(ステップS1403:NO)、CPU101は、i番目の読取フォーマットを認識文字列から探索し(ステップS1404)、探索した読取フォーマットの一部が合致しているか否かを判断する(ステップS1405)。CPU101が、探索した読取フォーマットが合致していないと判断した場合(ステップS1405:NO)、CPU101は、カウンタiを‘1’インクリメントし(ステップS1408)、処理をステップS1402に戻して上述した処理を繰り返す。
【0086】
CPU101が、探索した読取フォーマットの一部が合致していると判断した場合(ステップS1405:YES)、CPU101は、合致部分が、前回の認識結果の部分文字列であるか否かを判断する(ステップS1406:第2の検索処理手段)。CPU101が、合致部分が、前回の認識結果の部分文字列ではないと判断した場合(ステップS1406:NO)、CPU101は、カウンタiを‘1’インクリメントし(ステップS1408)、処理をステップS1402に戻して上述した処理を繰り返す。
【0087】
CPU101が、合致部分が、前回の認識結果の部分文字列であると判断した場合(ステップS1406:YES)、CPU101は、認識文字列の意味内容が元の認識文字列の意味と等価であるか否かを判断する(ステップS1407)。ここで、「認識文字列の意味内容が元の認識文字列の意味と等価である」とは、例えば日付を読み取った場合、「2014/12/20」と「14/12/20」とのように、同じ意味である関係を言う。これ以外にも、例えば住所を読み取った場合、「大阪府大阪市淀川区・・・」と「大阪市淀川区・・・」とは同じ意味であるので等価であると考える。以下、等価である事例について、事前にROM21に記憶しておく。
【0088】
CPU101が、認識文字列の意味内容が元の認識文字列の意味と等価であると判断した場合(ステップS1407:YES)、CPU101は、カウンタiを‘1’インクリメントし(ステップS1408)、処理をステップS1402に戻して上述した処理を繰り返す。CPU101が、認識文字列の意味内容が元の認識文字列の意味と等価ではないと判断した場合(ステップS1407:NO)、CPU101は、誤って読み取った可能性があると判断して(ステップS1409)、処理をステップS1310へ進める。
【0089】
図13に戻って、CPU101は、誤った読取の可能性を示す評価値を、所定の規則に従って項目ごとに算出し(ステップS1310)、算出した複数の評価値に基づいて判断評価値を算出する(ステップS1311)。判断評価値は、例えば算出した複数の評価値を合算した値であっても良いし、最大値であっても良い。CPU101は、判断評価値が、読取失敗を判断する第一の閾値より大きいか否かを判断する(ステップS1312)。
【0090】
CPU101が、判断評価値が、読取失敗を判断する第一の閾値より大きいと判断した場合(ステップS1312:YES)、CPU101は、処理をステップS1301へ戻して、上述した処理を繰り返す。CPU101が、判断評価値が、読取失敗を判断する第一の閾値以下であると判断した場合(ステップS1312:NO)、CPU101は、判断評価値が、警告を報知するか否かを判断する第二の閾値より大きいか否かを判断する(ステップS1313)。
【0091】
CPU101が、判断評価値が、警告を報知するか否かを判断する第二の閾値より大きいと判断した場合(ステップS1313:YES)、CPU101は、読取は成功しているものの、警告を報知する(ステップS1314)。つまり、誤って読み取りが行われている可能性を示す警告を報知する。CPU101が、判断評価値が、警告を報知するか否かを判断する第二の閾値以下であると判断した場合(ステップS1313:NO)、CPU101は処理を終了する。
【0092】
なお、第1の検索処理手段403において合致する読取フォーマット(第1の読取フォーマット)を複数検索した場合、誤った読取の可能性がある旨を示すよう報知するようにしても良い。これにより、本来想定している読取フォーマットとは異なる読取フォーマットに合致している可能性があることがわかるので、誤った読取の可能性が高いものとしてユーザに報知することが可能となる。
【0093】
また、第1の検索処理手段403において合致する第1の読取フォーマットが検索されない場合、撮像手段401により再度撮像して処理を実行しても良い。この場合、撮像条件、例えば露光時間のようなパラメータを前回撮像した時と異なる値に設定し直しても良い。そして、フローチャート(ステップS1402:NO)の処理の後、カウンタを初期化してから処理をステップS1301へ戻して、上述した処理を繰り返す。これにより、明らかに誤った読取の可能性がある場合には、今一度撮像からやり直すことができ、確認して修正する等の手間を省くことが可能となる。また、ハレーションが発生している画像、ブレが発生している画像等であっても、再度撮像することにより高品位の画像を取得することで、信頼度の高い読取を行うことができる。
【0094】
以上のように本実施の形態1によれば、桁落ちにより誤った読取が行われた可能性、ハレーションの発生等により誤った読取が行われた可能性等が高いと判断した場合にのみユーザに確認を促すことができ、読取精度を高く維持することができるとともに、読取処理を実行する都度ユーザに確認を促す必要がないので、読取装置の利便性を向上させることが可能となる。また、一致度や相違度に基づく認識処理では、誤った読取が行われた可能性の有無を判断することができない場合であっても確実に判断することが可能となる。
【0095】
(実施の形態2)
本発明の実施の形態2に係るハンディターミナル100の構成、機能ブロック図は、実施の形態1と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態2では、撮像された画面の外で生じる桁落ちだけでなく、画面内で生じた桁落ちを検出する点で実施の形態1とは相違する。
【0096】
図4に示すように、第1の検索処理手段403は、記憶されている複数の読取フォーマットのうち、文字列認識手段402において認識された文字列に合致する第1の読取フォーマットを検索する。具体的には、第1の検索処理手段403では、記憶されている複数の読取フォーマットの中から文字認識結果に合致するものを検索し、合致するものが存在する場合、合致した読取フォーマットと合わせて「一致」情報を出力する。合致するものが存在しない場合、「不一致」情報を出力する。合致する読取フォーマットが複数存在する場合には、文字列長が最長である読取フォーマット等、所定の基準に従って最適な読取フォーマットを出力する。
【0097】
抽出手段406は、認識した文字列の中から、第1の読取フォーマットに合致している部分文字列を抽出する。さらに、第1の読取フォーマットに合致している部分文字列を含む、文字列の高信頼区間を抽出する。ここで、「高信頼区間」とは、第1の読取フォーマットに合致している部分文字列の区間と、該部分文字列の区間の左右において文字認識辞書213との合致度が閾値以上であるような文字が連続する区間とを合わせたものを意味する。高信頼区間に含めるか否かを判断する閾値は、認識結果が「不定」文字であるか否かを判別する閾値と同一の閾値であっても良いし、異なる閾値であっても良い。
図15は、本発明の実施の形態2に係るハンディターミナル100における高信頼区間の例示図である。
【0098】
図15では、
図15(a)に示す文字列「23ABCDEF」のうち、「3ABCDE」を読み取ることができ(
図15(b)の「認識結果」参照)、第1の読取フォーマットに「ABCDE」が合致した例である。つまり、第1の読取フォーマットに合致している部分151は、認識結果が不定である不定閾値として合致度30以上の文字のうち、第1の読取フォーマット「英文字5文字」に該当する部分文字列となる。そして、合致した部分文字列の左右において、「3」のみが高信頼区間152に含める閾値以上の合致度を有している。すなわち、「3」の合致度は80であり、高信頼区間152に含めるか否かを判断する閾値(高信頼閾値)である合致度70以上の値が得られている。したがって、高信頼区間は、「3ABCDE」となる。
【0099】
以下、第2の検索処理手段404は、抽出された高信頼区間の文字列が部分文字列として合致する第2の読取フォーマットを検索する。検索される第2の読取フォーマットは、高信頼区間に配置されている文字の種類にも適応する読取フォーマットである。具体的には、第1の読取フォーマットに合致する部分文字列の左右、少なくともいずれか一方に文字が付加された高信頼区間の文字列に合致するものを検索し、合致するものが存在する場合、合致した読取フォーマットと合わせて「一致」情報を出力する。合致するものが存在しない場合、「不一致」情報を出力する。合致する読取フォーマットが複数存在する場合には、文字列長が最長である読取フォーマット等、所定の基準に従って最適な読取フォーマットを出力する。
【0100】
具体的には、例えば撮像する画面内であっても、読取対象となる文字の一部が存在すると仮定し、抽出された高信頼区間の文字列の左右に、「不定」文字を所定数付加して、再度合致する読取フォーマットを検索する。
【0101】
例えば読取フォーマットとして、「英字4桁」、「英字5桁」、「英字6桁」の3つの読取フォーマットを準備し、それぞれ合致しているか否かを判断した結果を
図16に示す。
【0102】
図16は、複数の読取フォーマットに対する合致度合の検索結果の例示図である。上述した読取フォーマットを、それぞれ読取フォーマット‘1’、‘2’、‘3’とし、それぞれに対して合致部分、合致結果、合致文字列、及び延長方向を記載している。
【0103】
そして、(1)合致結果が「曖昧一致」であり、(2)第1の検索処理手段403によって検索され、第1の読取フォーマットで抽出された文字列を部分文字列として含む場合には、画面内であっても桁落ちが生じている可能性が高いと判断する。もちろん、読取対象が日付であると事前に分かっている場合、日付としての意味が変わっているときには、桁落ちが生じている可能性が高いと判断する。
【0104】
この条件を満たす読取フォーマットそれぞれについて、元の認識結果と比較して文字列が左右いずれかの方向に延長している可能性の有無を判断する。
図16の例では、読取フォーマット‘3’、すなわち「英字6桁」のみが条件を満たしており、文字列の右側に桁落ちが生じている可能性があることがわかる。
【0105】
以下、桁落ちが生じている可能性がある方向について、後述する実施の形態に記載する方法により、桁落ちが生じている可能性を判断することができる。
【0106】
なお、文字列が画面の一方端に寄って存在する場合、桁落ちが生じている可能性があると判断することもできる。
図17は、文字列が画面の一方端に寄って存在する場合の例示図である。
【0107】
図17に示すように、文字列「ABCDE」が画面右端に寄って存在している。この場合、文字列「ABCDE」は、読取フォーマット「英字10桁」の部分文字列に合致し、同時に画面端に近いという2つの条件に基づいて、桁落ちが生じている可能性があると判断することができる。
【0108】
以上のように実施の形態2によれば、画面内であっても桁落ちにより誤った読取が行われた可能性、ハレーションの発生等により誤った読取が行われた可能性等が高い場合にユーザに確認を促すことができ、読取精度を高く維持することができるとともに、読取処理を実行する都度ユーザに確認を促す必要がないので、読取装置の利便性を向上させることが可能となる。また、読み取った文字列の左右の高信頼区間を含めて判別に用いることで、第2の検索処理手段において文字列の延長方向を限定することができ、桁落ちの可能性を誤検出する頻度を減少させることができる。
【0109】
(実施の形態3)
本発明の実施の形態3に係るハンディターミナル100の構成、機能ブロック図は、実施の形態1と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態3では、ハレーションの発生により生じる誤った読取の可能性を検出する点で実施の形態1及び2とは相違する。
【0110】
図18は、撮像した画像にハレーション(白飛び)が発生している場合の例示図である。
図18に示すように、文字列「2013/12」の文字「12」の下部にハレーションが発生しており、誤った読取の可能性が高い。
【0111】
そこで、本実施の形態3に係るハンディターミナル100は、認識した文字列ごとに、文字領域中における所定の閾値以上の輝度値を有する画素数をカウントし、カウントされた画素数の全画素数に対する割合を算出して、評価値を算出する。そして、算出した評価値に基づいて誤った読取の可能性があるか否かを判断する。
【0112】
図19は、本発明の実施の形態3に係るハンディターミナル100のCPU101のハレーション判断処理の手順を示すフローチャートである。
図19において、ハンディターミナル100のCPU101は、認識した文字列ごとに、文字領域中における所定の閾値以上の輝度値を有する画素数をカウントする(ステップS1901)。
【0113】
CPU101は、カウントされた画素数の全画素数に対する割合を算出し(ステップS1902)、所定の規則に基づいて評価値を算出する(ステップS1903)。CPU101は、算出した評価値に基づいて誤った読取の可能性があるか否かを判断することができる。
【0114】
もちろん、画素数の割合に限定されるものではなく、例えば白画素の最大連続数で判断しても良い。この場合、本実施の形態3に係るハンディターミナル100は、認識した文字列の文字ごとに、文字領域中における所定の閾値以上の輝度値を有する画素を抽出し、抽出された画素の縦方向又は横方向の最大連続数を算出する。そして、算出した最大連続数に基づいて誤った読取の可能性があるか否かを判断する。
【0115】
図20は、本発明の実施の形態3に係るハンディターミナル100のCPU101のハレーション判断処理の他の手順を示すフローチャートである。
図20において、ハンディターミナル100のCPU101は、認識した文字列の文字ごとに、文字領域中における所定の閾値以上の輝度値を有する画素を抽出する(ステップS2001)。CPU101は、抽出された画素の縦方向又は横方向の最大連続数を算出する(ステップS2002)。CPU101は、算出した最大連続数に基づいて誤った読取の可能性があるか否かを判断することができる。
【0116】
図21は、誤った読取の可能性の有無を判断する方法の例示図である。
図21は、
図18に示す文字列の文字ごとに、
図19又は
図20の判断処理の手順に従って評価値を算出している。すなわち、白画素率を文字ごとに算出し、評価値Aを算出する。同様に白画素の連続数を文字ごとに算出し、評価値Bを算出する。
【0117】
そして、評価値Aと評価値Bのうち大きい方の値を総合評価値とする。総合評価値のうちの最大値を、文字列全体の評価値とする。
【0118】
このようにすることで、文字列近傍で生じているハレーション(白飛び)の発生により誤った読取の可能性を報知することができる。
図22は、本発明の実施の形態3に係るハンディターミナル100では警告を報知しないハレーションが発生している場合の例示図である。すなわち、
図22に示すように、認識文字列と無関係の場所にハレーションが発生している場合には、警告を報知することがないので、ユーザには、誤った読取の可能性がある旨の警告が頻繁に報知されることがない。
【0119】
なお、文字認識した文字列の範囲から上下左右方向に一定割合で拡張した矩形領域内における白画素の割合に基づいてハレーションが発生している可能性を判断しても良い。
図23は、矩形領域の例示図である。
図23の例では、文字列「ABCDE」の範囲から上下左右方向に一定割合で拡張した矩形領域231を設定する。矩形領域231内の白画素の割合が所定値より大きい場合にハレーションが発生していると判断して、誤った読取の可能性が高いと判断する。
【0120】
図24は、本発明の実施の形態3に係るハンディターミナル100のCPU101のハレーション判断処理の他の手順を示すフローチャートである。
図24において、ハンディターミナル100のCPU101は、認識した文字列ごとに、文字領域から上下左右方向に一定の割合で拡張した矩形領域を設定する(ステップS2401)。CPU101は、設定した矩形領域における白画素の割合を算出する(ステップS2402)。そして、算出した割合に基づいて誤った読取の可能性があるか否かを判断する。
【0121】
もちろん、白画素の割合が所定値を超えたか否かを文字列単位で判断しても良いし、
図21のような文字単位の評価値と同等に比較して、全体として文字列単位で総合評価値を算出しても良い。すなわち、評価値全体を統合して、総合評価値として算出しても良い。
【0122】
以上のように実施の形態3によれば、ハレーションの発生により誤った読取が行われた可能性等が高い場合にユーザに確認を促すことができ、読取精度を高く維持することができるとともに、読取処理を実行する都度ユーザに確認を促す必要がないので、読取装置の利便性を向上させることが可能となる。
【0123】
(実施の形態4)
本発明の実施の形態4に係るハンディターミナル100の構成、機能ブロック図は、実施の形態1と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態4では、第1の検索処理手段403において合致する第1の読取フォーマットを複数検索する点で実施の形態1乃至3とは相違する。
【0124】
図25は、複数の読取フォーマットに合致する可能性のある文字列の例示図であり、
図26は、読取フォーマットの例示図である。
図25の文字列については、
図26の読取フォーマットNo.1「英字4桁」と読取フォーマットNo.3「数字3桁」に合致する。
【0125】
したがって、いずれの読取フォーマットがより正しいのか誤っているのかを判断できない状態となるので、誤った読取の可能性が高いと判断する。これにより、本来想定している読取フォーマットとは異なる読取フォーマットに合致している可能性が残されるので、誤った読取の可能性が高いと判断してユーザに報知することで読取精度を高く維持することができる。
【0126】
(実施の形態5)
本発明の実施の形態5に係るハンディターミナル100の構成、機能ブロック図は、実施の形態1と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態5では、文字と文字との間の文字を読み落としている可能性があるか否かを判断する点で実施の形態1乃至4とは相違する。
【0127】
図27は、認識した文字列の輝度値の分布ヒストグラムの例示図である。
図27(a)に示す文字列に対して、
図27(b)は、輝度値が存在する画素の総数を分布図として示している。文字列「2013.」、文字「2」はヒストグラムにピーク点が見られることから、文字が存在することが明確であるのに対して、文字列「2013.」と文字「2」との間にも、ヒストグラムに緩やかなピーク領域271が存在する。
【0128】
すなわち、文字であるか否かまで特定することはできないものの、何か文字を読み落としている可能性を示唆することはできる。したがって、文字と文字との間に所定値以上のピーク点を有するピーク領域が存在する場合には、誤った読取の可能性が高いと判断して警告を報知する。
【0129】
図28は、本発明の実施の形態5に係るハンディターミナル100のCPU101の処理手順を示すフローチャートである。
図28において、ハンディターミナル100のCPU101は、認識した文字領域について、輝度値の分布ヒストグラムを算出する(ステップS2801)。
【0130】
CPU101は、算出した分布ヒストグラムに基づいて、文字を認識していない領域に所定値以上の頂点を有するピーク領域が存在するか否かを判断する(ステップS2802)。CPU101が、ピーク領域が存在しないと判断した場合(ステップS2802:NO)、CPU101は、処理を終了する。CPU101が、ピーク領域が存在すると判断した場合(ステップS2802:YES)、CPU101は、所定の規則に従って、評価値を算出する(ステップS2803)。これにより、ヒストグラム波形の面積に応じて誤った読取の可能性が高いと判断した場合にユーザに報知することが可能となる。
【0131】
以上のように実施の形態5によれば、ヒストグラム波形の面積に応じて誤った読取が行われた可能性が高いと判断した場合にユーザに警告を報知することができ、読取精度を高く維持することが可能となる。
【0132】
(実施の形態6)
本発明の実施の形態6に係るハンディターミナル100の構成、機能ブロック図は、実施の形態1と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態6では、文字が滲む等、表示がボケている場合の誤った読取の可能性の有無を判断する点で実施の形態1乃至5とは相違する。
【0133】
図29は、本発明の実施の形態6に係るハンディターミナル100の輝度値ヒストグラムの例示図である。
図29(a)及び(b)では、縦軸が輝度値の頻度を、横軸が輝度値を、それぞれ示している。
【0134】
図29(a)に示すように、文字が存在する場合、背景部分と文字部分とで輝度値分布は明確に分離される。したがって、通常は輝度値のピーク間に谷部が明確に出現する。
【0135】
それに対して、
図29(b)に示すように、文字が滲んでいる場合、あるいは文字がボケている場合には、背景部分と文字部分とで輝度値分布が明確に分離されない。したがって、輝度値のピーク間に谷部が明確に出現せず、どこからどこまでの輝度値が文字部分を表しているのか判断することができない。
【0136】
したがって、輝度値のピーク間の状態を、二値化閾値を算出することで分散として求め、求めた分散に基づいて分離度を評価値として算出する。分離度が所定の閾値よりも小さい場合に、文字がボケていると判断して、誤った読取の可能性が高いと判断することができる。
【0137】
以上のように実施の形態6によれば、文字を撮像した画像が滲んでいる場合、ボケている場合等については誤った読取が行われた可能性が高いと判断してユーザに報知することができ、読取精度を高く維持することが可能となる。
【0138】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば上述した実施例では、実施の形態3の
図21において算出される複数の評価値のうち大きい方の値を総合評価値として算出しているが、すべての実施の形態において算出される評価値を総合評価値の算出の基礎にして統合して、全体の評価値として総合評価値を算出しても良いことは言うまでもない。
【0139】
図30は、統合して総合評価値を算出する場合の例示図である。複数の評価項目の評価値を10点満点になるよう算出し、すべての評価値の中で最大値を有する評価値を総合評価値として、認識文字列に関して誤った読取の可能性があるか否かを判断する。
図30の例では、最大値‘7’を有する評価値が総合評価値となり、例えば所定の閾値が‘6’である場合には総合評価値が閾値を上回っていることから、誤った読取の可能性があると判断することができる。
【0140】
また、上記実施例では、撮像された画像から文字列を読み取る場合について説明しているが、バーコードやQRコード(登録商標)などの各種コード読取装置にも適用することが可能であることは言うまでもない。