(57)【要約】【課題】本発明は、誤った読取が行われた可能性が高い場合を検知して、ユーザに誤った読取が行われた可能性のある旨を報知することができる携帯型光学式読取装置、該携帯型光学式読取装置を用いる光学式読取方法、及びコンピュータプログラムを提供する。【解決手段】読取対象となる文字列を撮像し、撮像された画像に基づいて文字列を認識する。文字列の属性を定義づけた複数の読取フォーマットを記憶しておき、記憶されている複数の読取フォーマットのうち、認識された文字列に合致する第１の読取フォーマットを検索する。記憶されている複数の読取フォーマットのうち、第１の読取フォーマットに合致する文字列が部分文字列として合致する第２の読取フォーマットを検索し、検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する。【選択図】図４
2015210542.tif 000002
【特許請求の範囲】
【請求項１】
読取対象となる文字列を撮像する撮像手段と、
該撮像手段で撮像された画像に基づいて文字列を認識する文字列認識手段と、
文字列の属性を定義づけた複数の読取フォーマットを記憶する読取フォーマット記憶手段と、
記憶されている複数の読取フォーマットのうち、前記文字列認識手段において認識された文字列に合致する第１の読取フォーマットを検索する第１の検索処理手段と、
記憶されている複数の読取フォーマットのうち、前記第１の読取フォーマットに合致する文字列が部分文字列として合致する第２の読取フォーマットを検索する第２の検索処理手段と、
該第２の検索処理手段の検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する報知手段と
を備えることを特徴とする携帯型光学式読取装置。
【請求項２】
前記報知手段は、
前記第２の検索処理手段において合致する第２の読取フォーマットを検索した場合、誤った読取が行われた可能性がある旨を示すよう報知することを特徴とする請求項１に記載の携帯型光学式読取装置。
【請求項３】
認識した文字列の中から、前記第１の読取フォーマットに合致している部分文字列を含む文字列の高信頼区間を抽出する抽出手段を備え、
前記第２の検索処理手段は、前記第１の読取フォーマットに合致する文字列が前記部分文字列として合致し、高信頼区間に配置されている文字の種類にも適応する第２の読取フォーマットを検索することを特徴とする請求項１又は２に記載の携帯型光学式読取装置。
【請求項４】
認識した文字列ごとに、文字領域から上下左右方向に一定の割合で拡張した矩形領域を設定する手段と、
設定した矩形領域における白画素の割合を算出する手段と、
算出した割合に基づいて誤った読取が行われた可能性があるか否かを判断する手段と
を備えることを特徴とする請求項１乃至３のいずれか一項に記載の携帯型光学式読取装置。
【請求項５】
認識した文字列ごとに、文字領域中における所定の閾値以上の輝度値を有する画素数をカウントする手段と、
カウントされた画素数の全画素数に対する割合を算出して、評価値を算出する手段と、
算出した評価値に基づいて誤った読取が行われた可能性があるか否かを判断する手段と
を備えることを特徴とする請求項１乃至３のいずれか一項に記載の携帯型光学式読取装置。
【請求項６】
認識した文字列の文字ごとに、文字領域中における所定の閾値以上の輝度値を有する画素を抽出する手段と、
抽出された画素の縦方向又は横方向の最大連続数を算出する手段と、
算出した最大連続数に基づいて誤った読取が行われた可能性があるか否かを判断する手段と
を備えることを特徴とする請求項１乃至３のいずれか一項に記載の携帯型光学式読取装置。
【請求項７】
認識した文字領域について、輝度値の分布ヒストグラムを算出する手段と、
算出した分布ヒストグラムに基づいて、評価値を算出する手段と、
算出した評価値に基づいて文字ごとに誤った読取が行われた可能性があるか否かを判断する手段と
を備えることを特徴とする請求項１乃至３のいずれか一項に記載の携帯型光学式読取装置。
【請求項８】
前記誤った読取が行われた可能性があるか否かを判断する手段は、請求項５乃至７のいずれか一項に記載の携帯型光学式読取装置で算出された複数の前記評価値を統合した総合評価値を算出し、総合評価値に基づいて、文字ごとに誤った読取が行われた可能性があるか否かを判断することを特徴とする携帯型光学式読取装置。
【請求項９】
前記報知手段は、
前記第１の検索処理手段において合致する第１の読取フォーマットを複数検索した場合、誤った読取が行われた可能性がある旨を示すよう報知することを特徴とする請求項１乃至３のいずれか一項に記載の携帯型光学式読取装置。
【請求項１０】
前記報知手段が、誤った読取が行われた可能性がある旨を示すよう報知した場合、読み取られた文字列を表示し、更新することが可能な画面を表示する表示手段を備えることを特徴とする請求項１乃至９のいずれか一項に記載の携帯型光学式読取装置。
【請求項１１】
前記第１の検索処理手段において、合致する第１の読取フォーマットが検索されない場合、前記報知手段は、前記撮像手段により再度撮像して処理を実行する旨を示すよう報知することを特徴とする請求項１乃至３のいずれか一項に記載の携帯型光学式読取装置。
【請求項１２】
読取対象となる文字列を撮像する撮像手段と、
該撮像手段で撮像された画像に基づいて文字列を認識する文字列認識手段と、
文字列の属性を定義づけた複数の読取フォーマットを記憶する読取フォーマット記憶手段と
を備える携帯型光学式読取装置で実行することが可能な光学式読取方法であって、
前記携帯型光学式読取装置は、
記憶されている複数の読取フォーマットのうち、前記文字列認識手段において認識された文字列に合致する第１の読取フォーマットを検索する第１の工程と、
記憶されている複数の読取フォーマットのうち、前記第１の読取フォーマットに合致する文字列が部分文字列として合致する第２の読取フォーマットを検索する第２の工程と、
該第２の検索処理手段の検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する第３の工程と
を含むことを特徴とする光学式読取方法。
【請求項１３】
読取対象となる文字列を撮像する撮像手段と、
該撮像手段で撮像された画像に基づいて文字列を認識する文字列認識手段と、
文字列の属性を定義づけた複数の読取フォーマットを記憶する読取フォーマット記憶手段と
を備える携帯型光学式読取装置で実行することが可能なコンピュータプログラムであって、
前記携帯型光学式読取装置を、
記憶されている複数の読取フォーマットのうち、前記文字列認識手段において認識された文字列に合致する第１の読取フォーマットを検索する第１の検索処理手段、
記憶されている複数の読取フォーマットのうち、前記第１の読取フォーマットに合致する文字列が部分文字列として合致する第２の読取フォーマットを検索する第２の検索処理手段、及び
該第２の検索処理手段の検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する報知手段
として機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、誤った読取が行われた可能性の有無をユーザに報知することが可能な携帯型光学式読取装置、該携帯型光学式読取装置を用いる光学式読取方法、及びコンピュータプログラムに関する。
【背景技術】
【０００２】
従来、ＯＣＲ等を用いて、記載された文字を認識してデータ処理する技術が多々開発されている。文字認識技術としては、例えば照合辞書（マスターデータ）に事前に登録されている文字の画像と、撮像された画像との一致度を算出し、一致度が最も高い文字を認識文字として出力している。
【０００３】
また、複数の認識文字で構成された文字列が、所望の文字列として正しく読み取られているか否かを判断するために、読取フォーマットを用いることがある。例えば特許文献１では、文字列の桁数が定義された読取フォーマットを参照する文字認識方式が開示されている。
【０００４】
特許文献１では、例えばＹＹＹＹ／ＭＭ／ＤＤのような１０桁の読取フォーマットを参照する場合、文字列「２０１３／１２／２５」が読み取られると読取が成功したものと判断される。同様に、例えばＹＹＹＹ／ＭＭのような７桁の読取フォーマットを参照する場合、文字列「２０１３／１２」が読み取られると読取が成功したものと判断される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平０７−１６０７９９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、例えば読取対象となる文字列が付された物品（ダンボールの包装容器等）ごとに文字列の桁数が異なる場合、桁数ごとに適切な読取フォーマットに設定を変更する必要があり、ユーザにとっては煩雑な作業となる。したがって、特許文献１に開示されている文字認識方式を用いる場合、複数の桁数に対応する複数の読取フォーマットを準備しておき、いずれか１つの読取フォーマットで読取が成功したものと判断されることで、読取成功としていた。
【０００７】
一方、読取対象が「２０１３／１２／２５」であるのに対して、例えば「／２５」の部分が撮像領域の外に位置する場合、あるいは照射される光の関係でハレーション（いわゆる「白とび」）が発生している場合には、文字列「２０１３／１２」が読み取られる。この場合、７桁の読取フォーマットでは読取が成功したものと判断されるため、特許文献１に開示されている文字認識方式では、誤って読み取られているにもかかわらず読取が成功したものと判断されるという問題点があった。
【０００８】
本発明は斯かる事情に鑑みてなされたものであり、誤った読取が行われた可能性が高い場合を検知して、ユーザに誤った読取が行われた可能性のある旨を報知することができる携帯型光学式読取装置、該携帯型光学式読取装置を用いる光学式読取方法、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために第１発明に係る携帯型光学式読取装置は、読取対象となる文字列を撮像する撮像手段と、該撮像手段で撮像された画像に基づいて文字列を認識する文字列認識手段と、文字列の属性を定義づけた複数の読取フォーマットを記憶する読取フォーマット記憶手段と、記憶されている複数の読取フォーマットのうち、前記文字列認識手段において認識された文字列に合致する第１の読取フォーマットを検索する第１の検索処理手段と、記憶されている複数の読取フォーマットのうち、前記第１の読取フォーマットに合致する文字列が部分文字列として合致する第２の読取フォーマットを検索する第２の検索処理手段と、該第２の検索処理手段の検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する報知手段とを備えることを特徴とする。
【００１０】
また、第２発明に係る携帯型光学式読取装置は、第１発明において、前記報知手段は、前記第２の検索処理手段において合致する第２の読取フォーマットを検索した場合、誤った読取が行われた可能性がある旨を示すよう報知することを特徴とする。
【００１１】
また、第３発明に係る携帯型光学式読取装置は、第１又は第２発明において、認識した文字列の中から、前記第１の読取フォーマットに合致している部分文字列を含む文字列の高信頼区間を抽出する抽出手段を備え、前記第２の検索処理手段は、前記第１の読取フォーマットに合致する文字列が前記部分文字列として合致し、高信頼区間に配置されている文字の種類にも適応する第２の読取フォーマットを検索することを特徴とする。
【００１２】
また、第４発明に係る携帯型光学式読取装置は、第１乃至第３発明のいずれか１つにおいて、認識した文字列ごとに、文字領域から上下左右方向に一定の割合で拡張した矩形領域を設定する手段と、設定した矩形領域における白画素の割合を算出する手段と、算出した割合に基づいて誤った読取が行われた可能性があるか否かを判断する手段とを備えることを特徴とする。
【００１３】
また、第５発明に係る携帯型光学式読取装置は、第１乃至第３発明のいずれか１つにおいて、認識した文字列ごとに、文字領域中における所定の閾値以上の輝度値を有する画素数をカウントする手段と、カウントされた画素数の全画素数に対する割合を算出して、評価値を算出する手段と、算出した評価値に基づいて誤った読取が行われた可能性があるか否かを判断する手段とを備えることを特徴とする。
【００１４】
また、第６発明に係る携帯型光学式読取装置は、第１乃至第３発明のいずれか１つにおいて、認識した文字列の文字ごとに、文字領域中における所定の閾値以上の輝度値を有する画素を抽出する手段と、抽出された画素の縦方向又は横方向の最大連続数を算出する手段と、算出した最大連続数に基づいて誤った読取が行われた可能性があるか否かを判断する手段とを備えることを特徴とする。
【００１５】
また、第７発明に係る携帯型光学式読取装置は、第１乃至第３発明のいずれか１つにおいて、認識した文字領域について、輝度値の分布ヒストグラムを算出する手段と、算出した分布ヒストグラムに基づいて、評価値を算出する手段と、算出した評価値に基づいて文字ごとに誤った読取が行われた可能性があるか否かを判断する手段とを備えることを特徴とする。
【００１６】
また、第８発明に係る携帯型光学式読取装置は、前記誤った読取が行われた可能性があるか否かを判断する手段は、第５乃至第７発明のいずれか１つの携帯型光学式読取装置で算出された複数の前記評価値を統合した総合評価値を算出し、総合評価値に基づいて、文字ごとに誤った読取が行われた可能性があるか否かを判断することを特徴とする。
【００１７】
また、第９発明に係る携帯型光学式読取装置は、第１乃至第３発明のいずれか１つにおいて、前記報知手段は、前記第１の検索処理手段において合致する第１の読取フォーマットを複数検索した場合、誤った読取が行われた可能性がある旨を示すよう報知することを特徴とする。
【００１８】
また、第１０発明に係る携帯型光学式読取装置は、第１乃至第９発明のいずれか１つにおいて、前記報知手段が、誤った読取が行われた可能性がある旨を示すよう報知した場合、読み取られた文字列を表示し、更新することが可能な画面を表示する表示手段を備えることを特徴とする。
【００１９】
また、第１１発明に係る携帯型光学式読取装置は、第１乃至第３発明のいずれか１つにおいて、前記第１の検索処理手段において、合致する第１の読取フォーマットが検索されない場合、前記報知手段は、前記撮像手段により再度撮像して処理を実行する旨を示すよう報知することを特徴とする。
【００２０】
次に、上記目的を達成するために第１２発明に係る光学式読取方法は、読取対象となる文字列を撮像する撮像手段と、該撮像手段で撮像された画像に基づいて文字列を認識する文字列認識手段と、文字列の属性を定義づけた複数の読取フォーマットを記憶する読取フォーマット記憶手段とを備える携帯型光学式読取装置で実行することが可能な光学式読取方法であって、前記携帯型光学式読取装置は、記憶されている複数の読取フォーマットのうち、前記文字列認識手段において認識された文字列に合致する第１の読取フォーマットを検索する第１の工程と、記憶されている複数の読取フォーマットのうち、前記第１の読取フォーマットに合致する文字列が部分文字列として合致する第２の読取フォーマットを検索する第２の工程と、該第２の検索処理手段の検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する第３の工程とを含むことを特徴とする。
【００２１】
次に、上記目的を達成するために第１３発明に係るコンピュータプログラムは、読取対象となる文字列を撮像する撮像手段と、該撮像手段で撮像された画像に基づいて文字列を認識する文字列認識手段と、文字列の属性を定義づけた複数の読取フォーマットを記憶する読取フォーマット記憶手段とを備える携帯型光学式読取装置で実行することが可能なコンピュータプログラムであって、前記携帯型光学式読取装置を、記憶されている複数の読取フォーマットのうち、前記文字列認識手段において認識された文字列に合致する第１の読取フォーマットを検索する第１の検索処理手段、記憶されている複数の読取フォーマットのうち、前記第１の読取フォーマットに合致する文字列が部分文字列として合致する第２の読取フォーマットを検索する第２の検索処理手段、及び該第２の検索処理手段の検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する報知手段として機能させることを特徴とする。
【００２２】
第１発明、第１２発明及び第１３発明では、読取対象となる文字列を撮像し、撮像された画像に基づいて文字列を認識する。文字列の属性を定義づけた複数の読取フォーマットを記憶しておき、記憶されている複数の読取フォーマットのうち、認識された文字列に合致する第１の読取フォーマットを検索する。記憶されている複数の読取フォーマットのうち、第１の読取フォーマットに合致する文字列が部分文字列として合致する第２の読取フォーマットを検索し、検索結果に基づいて、認識された文字列に関する誤った読取が行われた可能性の有無を報知する。これにより、桁落ちにより誤った読取が行われた可能性、ハレーションの発生等により誤った読取が行われた可能性等が高い場合にユーザに確認を促すことができ、読取精度を高く維持することができるとともに、読取装置の利便性を向上させることが可能となる。また、一致度や相違度に基づく認識処理では、誤った読取が行われた可能性の有無を判断することができない場合であっても、誤った読取を防止して、より確実に読取の正否を判断することが可能となる。
【００２３】
第２発明では、合致する第２の読取フォーマットを検索した場合、誤った読取が行われた可能性がある旨を示すよう報知する。これにより、第１の読取フォーマットの範囲外に文字列が存在している可能性を見出すことができ、桁落ちにより誤った読取が行われた可能性が高いと判断してユーザに報知することが可能となる。
【００２４】
第３発明では、認識した文字列の中から、第１の読取フォーマットに合致している部分文字列を含む文字列である高信頼区間を抽出し、第１の読取フォーマットに合致する文字列が部分文字列として合致し、高信頼区間に配置されている文字の種類にも適応する第２の読取フォーマットを検索する。つまり、第１の読取フォーマットに合致している区間及びその左右に存在する高信頼区間を抽出し、抽出された区間の文字列の左右の少なくとも一方に所定数の文字存在領域を付加した文字列に合致する第２の読取フォーマットを検索する。これにより、読取フォーマット外であっても読取の信頼度に高低が存在するので、桁落ちが生じている可能性を確実にユーザに報知することが可能となる。
【００２５】
第４発明では、認識した文字列ごとに、文字領域から上下左右方向に一定の割合で拡張した矩形領域を設定し、設定した矩形領域における白画素の割合を算出する。算出した割合に基づいて誤って読み取ったか否かを判断する。これにより、ハレーションの発生により、いわゆる白飛びしている領域が一定以上の割合である場合に、誤った読取が行われた可能性が高いと判断してユーザに報知することが可能となる。
【００２６】
第５発明では、認識した文字列ごとに、文字領域中における所定の閾値以上の輝度値を有する画素数をカウントし、カウントされた画素数の全画素数に対する割合を算出して、評価値を算出する。算出した評価値に基づいて誤って読み取ったか否かを判断する。これにより、ハレーションの発生により、いわゆる白飛びしている領域が一定以上の大きさである場合に、白飛びしている画素数評価値に基づいて誤った読取が行われた可能性が高い場合にはユーザに報知することが可能となる。
【００２７】
第６発明では、認識した文字列の文字ごとに、文字領域中における所定の閾値以上の輝度値を有する画素を抽出し、抽出された画素の縦方向又は横方向の最大連続数を算出する。算出した最大連続数に基づいて誤って読み取ったか否かを判断する。これにより、ハレーションの発生により、いわゆる白飛びしている領域が一定以上の大きさである場合に、誤った読取が行われた可能性が高いと判断してユーザに報知することが可能となる。
【００２８】
第７発明では、認識した文字領域について、輝度値の分布ヒストグラムを算出し、算出した分布ヒストグラムに基づいて、評価値を算出する。算出した評価値に基づいて文字ごとに誤った読取が行われた可能性があるか否かを判断する。これにより、輝度値のヒストグラム分布により文字の存在の可能性を評価することができ、ヒストグラム波形の面積に応じて誤った読取が行われた可能性が高い場合にユーザに報知することが可能となる。
【００２９】
第８発明では、上述の携帯型光学式読取装置で算出された複数の評価値を統合した総合評価値を算出し、総合評価値に基づいて、文字ごとに誤った読取が行われた可能性があるか否かを判断する。これにより、例えば各評価値の最大値によって誤った読取が行われた可能性の高低を判断することが可能となる。
【００３０】
第９発明では、合致する第１の読取フォーマットを複数検索した場合、誤った読取が行われた可能性がある旨を示すよう報知する。これにより、本来想定している読取フォーマットとは異なる読取フォーマットに合致している可能性があることがわかるので、誤った読取が行われた可能性が高いと判断してユーザに報知することが可能となる。
【００３１】
第１０発明では、誤った読取が行われた可能性がある旨を示すよう報知した場合、読み取られた文字列を表示し、更新することが可能な画面を表示する。これにより、誤った読取が行われた可能性が高い場合には、本当に誤った読取が行われた可能性があるのか即座に確認することができるとともに、誤った読取が行われた可能性がある場合にはその場で修正することが可能となる。
【００３２】
第１１発明では、合致する第１の読取フォーマットが検索されない場合、撮像条件を変更して再度撮像を実行し、処理を自動的にやりなおす。これにより、誤った読取が行われた可能性が十分低くなった状態でユーザに読取結果を提示するため、確認して修正する等の手間を省くことが可能となる。
【発明の効果】
【００３３】
本発明によれば、桁落ちにより誤った読取が行われた可能性、ハレーションの発生等により誤った読取が行われた可能性等が高いと判断した場合にユーザに確認を促すことができ、読取精度を高く維持することができるとともに、読取処理を実行する都度ユーザに確認を促す必要がないので、読取装置の利便性を向上させることが可能となる。また、一致度や相違度に基づく認識処理では、誤った読取が行われた可能性の有無を判断することができない場合であっても確実に判断することが可能となる。
【図面の簡単な説明】
【００３４】
【図１】本発明の実施の形態に係るハンディターミナルの外観構成を示す模式図である。
【図２】本発明の実施の形態に係るハンディターミナルの、ＣＰＵ等の制御部を用いた場合の構成を示すブロック図である。
【図３】本発明の実施の形態に係るハンディターミナルの読取処理手順を示すフローチャートである。
【図４】本発明の実施の形態１に係るハンディターミナルの機能ブロック図である。
【図５】文字列情報以外に座標情報を併用した場合の読取フォーマット検索処理の例示図である。
【図６】文字列情報以外に座標情報を併用した場合の読取フォーマット検索処理の例示図である。
【図７】「不定」文字を付加した状態の例示図である。
【図８】複数の読取フォーマットに対する合致度合の検索結果の例示図である。
【図９】本発明の実施の形態１に係るハンディターミナルの表示部に表示される認識・更新画面の例示図である。
【図１０】本発明の実施の形態１に係るハンディターミナルの表示部に表示される認識・更新画面の例示図である。
【図１１】読み取られた文字列を表示するか否かを設定する設定画面の例示図である。
【図１２】報知する基準となる閾値の変更画面の例示図である。
【図１３】本発明の実施の形態１に係るハンディターミナルのＣＰＵの処理手順を示すフローチャートである。
【図１４】本発明の実施の形態１に係るハンディターミナルのＣＰＵの読取フォーマット検索処理の手順を示すフローチャートである。
【図１５】本発明の実施の形態２に係るハンディターミナルにおける高信頼区間の例示図である。
【図１６】複数の読取フォーマットに対する合致度合の検索結果の例示図である。
【図１７】文字列が画面の一方端に寄って存在する場合の例示図である。
【図１８】撮像した画像にハレーション（白飛び）が発生している場合の例示図である。
【図１９】本発明の実施の形態３に係るハンディターミナルのＣＰＵのハレーション判断処理の手順を示すフローチャートである。
【図２０】本発明の実施の形態３に係るハンディターミナルのＣＰＵのハレーション判断処理の他の手順を示すフローチャートである。
【図２１】誤った読取の可能性の有無を判断する方法の例示図である。
【図２２】本発明の実施の形態３に係るハンディターミナルでは警告を報知しないハレーションが発生している場合の例示図である。
【図２３】矩形領域の例示図である。
【図２４】本発明の実施の形態３に係るハンディターミナルのＣＰＵのハレーション判断処理の他の手順を示すフローチャートである。
【図２５】複数の読取フォーマットに合致する可能性のある文字列の例示図である。
【図２６】読取フォーマットの例示図である。
【図２７】認識した文字列の輝度値の分布ヒストグラムの例示図である。
【図２８】本発明の実施の形態５に係るハンディターミナルのＣＰＵの処理手順を示すフローチャートである。
【図２９】本発明の本実施の形態６に係るハンディターミナルの輝度値ヒストグラムの例示図である。
【図３０】統合して総合評価値を算出する場合の例示図である。
【発明を実施するための形態】
【００３５】
以下、本発明の実施の形態に係る携帯型光学式読取装置について、図面に基づいて具体的に説明する。本実施の形態では、携帯型光学式読取装置として、ＣＰＵを内蔵したハンディターミナルを採用する場合を例に挙げて説明する。
【００３６】
図１は、本発明の実施の形態に係るハンディターミナルの外観構成を示す模式図である。図１に示すように、ハンディターミナル１００は、略方形である筐体１０の外形を一方向に延長した板状である。筐体１０の先端部分又は背面部分には、読取対象であるシンボルの光学的読取を行うための読取部（図示せず）が設けられている。読取部は、バーコードを読み取るスキャンモジュール、二次元コードを読み取るカメラモジュール等で構成される。
【００３７】
筐体１０の上面には、ディスプレイ部（表示部）３０と、キー配置部４０とが設けられている。筐体１０の一端側にディスプレイ部３０が、ディスプレイ部３０と反対側の他端側にキー配置部４０が、それぞれ設けられている。
【００３８】
筐体１０は、ディスプレイ部３０を備える表示部分ＤＡと、キー配置部４０を備える把持部分ＨＡとで構成されており、ユーザは、把持部分ＨＡを手で把持して、表示部分ＤＡに設けられたディスプレイ部３０の表示内容を参照しながら、把持部分ＨＡの表面側に配置されたキー配置部４０の各操作キー４６を操作する。筐体１０は、平面視において表示部分ＤＡを幅広とし、把持部分ＨＡを幅狭とする一方、側面視においては、把持部分ＨＡが厚くなるようにしてある。これにより、把持部分ＨＡを持ちやすくしている。
【００３９】
ディスプレイ部３０は、筐体１０の一面側に設けられており、読取対象のシンボルをカメラ部で撮像した画像、シンボルを復号化した情報、その他の設定情報といった各種の情報を表示する。ディスプレイ部３０は、例えば液晶ディスプレイ（ＬＣＤ）、有機ＥＬ等で構成されている。また、ディスプレイ部３０は、タッチパネルとして構成されていても良い。
【００４０】
キー配置部４０には、各種の操作を行うテンキーや電源キー４４、ファンクションキー４５といった複数の操作キー４６が並べられている。キー配置部４０に配置された各入力デバイスは、各種の入力操作を受け付けるキー入力部を構成している。また、ディスプレイ部３０のタッチパネルも、キー入力部として機能している。
【００４１】
また、ハンディターミナル１００は、携帯性を担保するべく、駆動電力を供給するためのバッテリ（図示せず）を備えている。また、撮像する位置を特定するための照準光を照射する照準光照射部、及び撮像部は、筐体１０の背面側に設けられている。
【００４２】
図２は、本発明の実施の形態に係るハンディターミナル１００の、ＣＰＵ等の制御部を用いた場合の構成を示すブロック図である。図２に示すように、本実施の形態に係るハンディターミナル１００は、少なくとも動作を制御する制御プログラムを実行するＣＰＵ（制御部）１０１、ＲＡＭ２０、ＲＯＭ２１、表示部（ディスプレイ部）３０、操作部（キー配置部）４０、通信インタフェース５０、撮像部６０を備えている。
【００４３】
ＣＰＵ１０１は、内部バス等を介してハンディターミナル１００の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、ＲＯＭ２１に記憶されているコンピュータプログラム２００に従って、種々のソフトウェア的機能を実行する。ＲＡＭ２０は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラム２００の実行時にロードモジュールが展開され、コンピュータプログラム２００の実行時に発生する一時的なデータ等を記憶する。
【００４４】
ＲＯＭ２１には、ファームウェア２１１、デコーダ２１２、文字認識辞書２１３も記憶されている。ファームウェア２１１は、接続されている各ハードウェアの動作を制御するドライバソフトウェア等のプログラム群である。デコーダ２１２は、例えばＱＲコード（登録商標）やバーコードをデコードする。文字認識辞書２１３は、撮像された画像を、テキストデータに変換するための辞書である。
【００４５】
通信インタフェース５０は内部バスに接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワーク網に接続されることにより、外部のコンピュータ等とデータ送受信を行うことが可能となっている。操作部（キー配置部）４０は、キー入力により操作のための入力を受け付ける。
【００４６】
撮像部６０は、カメラ６１と照準光照射部６２とで構成されている。カメラ６１は、ＶＶＤカメラ等、撮像対象を撮像できる撮像手段であれば特に限定されるものではない。また、照準光照射部６２は、撮像位置を視認できるよう撮像された画像の水平方向に延伸する直線状の光、あるいは水平方向と垂直方向の十字を形成する光等を照射する。
【００４７】
本実施の形態に係るハンディターミナル１００の読取処理手順は以下のとおりである。図３は、本発明の実施の形態に係るハンディターミナル１００の読取処理手順を示すフローチャートである。
【００４８】
図３において、本実施の形態に係るハンディターミナル１００のＣＰＵ１０１は、文字列の読取が成功したか否かを判断する（ステップＳ３０１）。「読取が成功する」とは、何らかの文字列を認識したと判定できる状態を意味する。読取が成功した後、認識した文字列をそのまま記憶する、認識した文字列にマスターデータとの照合処理を実施する等の追加処理が考えられる。ＣＰＵ１０１が、文字列の読取に失敗したと判断した場合（ステップＳ３０１：ＮＯ）、ＣＰＵ１０１は、読取に失敗した旨を通知する（ステップＳ３０２）。
【００４９】
ＣＰＵ１０１が、文字列の読取に成功したと判断した場合（ステップＳ３０１：ＹＥＳ）、ＣＰＵ１０１は、読取文字列のマスターデータと照合して（ステップＳ３０３）、照合に成功したか否かを判断する（ステップＳ３０４）。「照合に成功する」とは、マスターデータに一致する文字が存在することを意味する。
【００５０】
ＣＰＵ１０１が、照合に失敗したと判断した場合（ステップＳ３０４：ＮＯ）、ＣＰＵ１０１は、照合に失敗した旨を通知する（ステップＳ３０５）。ＣＰＵ１０１が、照合に成功したと判断した場合（ステップＳ３０４：ＹＥＳ）、ＣＰＵ１０１は、照合に成功した旨を通知する（ステップＳ３０６）。この状態で、ハンディターミナル１００による読取が正常に終了したことになる。
【００５１】
照合処理としては、様々なバリエーションが考えられる。例えば文字列が一致しているか否かを照合する場合、マスターデータとして文字列を記憶しておき、読み取った文字列と一致する文字列がマスターデータに存在すれば、照合に成功したと判断することができる。
【００５２】
また、マスターデータとして日付情報、例えば「２０１４／０２／２０」等を記憶しておき、読取文字列が日付として一致しているか否かを照合しても良い。この場合、単なる文字列としてではなく、日付情報として解釈しているので、例えば読取文字列が「１４．２．２０」であっても、日付として「２０１４／０２／２０」であると解釈するように設定しておくことで、マスターデータと一致するとして照合に成功したと判断することができる。
【００５３】
さらに、マスターデータとして日付情報の範囲、例えば「２０１４／０２／２０〜２０１４／０３／２０」等を記憶しておき、読取文字列が、この範囲内の日付として一致しているか否かを照合しても良い。この場合、読取文字列が「１４．２．２５」であっても、日付としてはマスターデータに記憶してある範囲内であることから、照合に成功したと判断することができる。
【００５４】
（実施の形態１）
図４は、本発明の実施の形態１に係るハンディターミナル１００の機能ブロック図である。本実施の形態１に係るハンディターミナル１００の撮像手段４０１は、読取対象となる文字列、あるいはＱＲコード（登録商標）、バーコード等を撮像する。
【００５５】
文字列認識手段４０２は、撮像された画像に基づいて文字列を認識する。第１の検索処理手段４０３は、認識された文字列が、文字列の属性を定義づけた読取フォーマットに合致しているか否かを判断して、合致している読取フォーマットを検索する。読取フォーマットは、ＲＯＭ２１の読取フォーマット記憶部４１０に複数記憶されている。
【００５６】
第１の検索処理手段４０３は、記憶されている複数の読取フォーマットのうち、文字列認識手段４０２において認識された文字列に合致する第１の読取フォーマットを検索する。具体的には、第１の検索処理手段４０３では、記憶されている複数の読取フォーマットの中から文字認識結果に合致するものを検索し、合致するものが存在する場合、合致した読取フォーマットと合わせて「一致」情報を出力する。合致するものが存在しない場合、「不一致」情報を出力する。合致する読取フォーマットが複数存在する場合には、文字列長が最長である読取フォーマット等、所定の基準に従って最適な読取フォーマットを出力する。
【００５７】
読取フォーマットは、「数字３桁〜８桁」のようなフォーマットであっても良いし、正規表現のようなフォーマットであっても良い。また、「ＹＹＹＹ．ＭＭ．ＤＤ」のように年月日として解釈可能な数値のみを受け入れるフォーマットであっても良い。
【００５８】
さらに、文字列情報以外に座標情報を併用して「一致」情報又は「不一致」情報を出力しても良い。図５及び図６は、文字列情報以外に座標情報を併用した場合の読取フォーマット検索処理の例示図である。
【００５９】
図５の例では、文字列が読取フォーマット「ＹＹＹＹＭＭＤＤ」にも合致するとともに、読取フォーマット「ＹＹＹＹＭＭ」にも合致する。この場合、読取フォーマット「ＹＹＹＹＭＭＤＤ」を採用するには、座標情報に基づいて「ＭＭ」と「ＤＤ」との間の空白が過大であると認識して合致していないと判断し、読取フォーマット「ＹＹＹＹＭＭ」に合致していると判断して検索結果（最適な読取フォーマアット）として出力しても良い。
【００６０】
図６の例では、座標情報に基づいて文字高さを検出する。文字高さの変化に基づいて、読取フォーマット「ＹＹＹＹＭＭＤＤ」に合致していないと判断して、読取フォーマット「ＹＹＹＹＭＭ」に合致していると判断しても良い。
【００６１】
また、文字認識結果の一部が「不定」文字、すなわち文字として切り出しているがＲＯＭ２１の文字認識辞書２１３との合致度がどの文字に対しても低い文字である場合であっても、「不定」文字をワイルドカードとみなして読取フォーマットに合致していると判断した場合には、新たな概念として「曖昧一致」という結果を返しても良い。      
【００６２】
図４に戻って、第２の検索処理手段４０４は、記憶されている複数の読取フォーマットのうち、第１の読取フォーマットに合致する文字列が部分文字列として合致する第２の読取フォーマットを検索する。これにより、文字列認識時の桁落ちの可能性を検出することができる。
【００６３】
具体的には、例えば撮像する画面外に、読取対象となる文字の一部が存在すると仮定し、第１の読取フォーマットに合致する部分文字列として認識された文字認識結果の左右に、「不定」文字を所定数付加して、再度合致する読取フォーマットを検索する。
【００６４】
ここで、付加する数は、光学式読取装置が想定する文字数に対して十分に大きい数であることが好ましい。例えば、最大読取可能桁数が３０桁である場合、文字列の左右にそれぞれ２９個の「不定」文字を付加する。
【００６５】
また、座標情報を併用する場合には、付加する「不定」文字は画面外の任意の場所に、任意の大きさで付加することができるので、合致する可能性がある読取フォーマットについては「曖昧一致」としておくことができる。図７は、「不定」文字を付加した状態の例示図である。
【００６６】
図７の状態で、例えば読取フォーマットとして、「ＹＹＹＹ．ＭＭ」、「ＹＹＹＹ．Ｍ」、「ＹＹＹＹ．ＭＭ．ＤＤ」、「英字３桁」の４つのフォーマットを準備し、それぞれ合致しているか否かを判断した結果を図８に示す。
【００６７】
図８は、複数の読取フォーマットに対する合致度合の検索結果の例示図である。上述した読取フォーマットを、それぞれ読取フォーマット１、２、３、４とし、それぞれに対して合致部分、合致結果、合致文字列を記載している。
【００６８】
そして、（１）合致結果が「曖昧一致」であり、（２）第１の検索処理手段４０３で検索された第１の読取フォーマットに合致する文字列を部分文字列として含む場合には、桁落ちが生じている可能性が高いと判断する。もちろん、読取対象が日付であると事前に分かっている場合、日付の意味が変わっているときには、桁落ちが生じている可能性が高いと判断する。
【００６９】
この条件を、図８の検索結果例に当てはめると、読取フォーマット３、すなわち「ＹＹＹＹ．ＭＭ．ＤＤ」について桁落ちが生じている可能性が高いと判断することができる。
【００７０】
図４に戻って、報知手段４０５は、第２の検索処理手段４０４の検索結果に基づいて、認識された文字列に関する誤った読取の可能性の有無を報知する。すなわち、第２の検索処理手段４０４において合致する第２の読取フォーマットを検索した場合、誤った読取の可能性がある旨を示すよう報知することが好ましい。
【００７１】
報知する方法は、特に限定されるものではない。例えば赤色に発光するＬＥＤライトを複数装備し、誤った読取の可能性が高いほど点灯するＬＥＤライトの数を増やすようにしても良い。あるいは、誤った読取の可能性が所定の閾値を超えた場合に、発する音を変化させても良い。
【００７２】
なお、表示部３０は、報知手段４０５が誤った読取の可能性がある旨を示すよう報知した場合、読み取られた文字列を表示し、更新することが可能な画面を表示する。図９及び図１０は、本発明の実施の形態１に係るハンディターミナル１００の表示部３０に表示される認識・更新画面の例示図である。
【００７３】
図９は、報知手段４０５によって誤った読取の可能性がある旨を示すよう報知された場合の、読み取られた文字列を表示した画面の例示図である。撮像された画像が表示されている画像表示領域９１の直下の編集領域９２に、読み取られたテキストデータが表示され、メッセージ表示領域９３に、「桁落ちの可能性あり」とのメッセージが表示されている。
【００７４】
図１０は、報知手段４０５によって誤った読取の可能性がある旨を示すよう報知された場合の、表示された文字列を編集する画面の例示図である。編集領域９２に表示されているテキストデータを編集するべくキーボードアイコン９４をクリックすると、編集用の仮想キーボード９５がポップアップ表示され、編集領域９２に表示されているテキストデータを編集することができる。
【００７５】
もちろん、読み取った状態を表示させないようユーザの指定を受け付けても良い。図１１は、読み取られた文字列を表示するか否かを設定する設定画面の例示図である。図１１の例では、読み取る都度（毎回）表示する、表示しない、報知された時（アラート発生時）に表示する、の３つの中から選択を受け付ける選択ポップアップ１０１が表示されている。
【００７６】
また、報知するか否かを判断する基準となる閾値を変更することもできる。図１２は、報知する基準となる閾値の変更画面の例示図である。図１２の例では、報知（アラート）発生の頻度をレベル１〜５まで段階的に設定を受け付けることができる頻度設定ポップアップ１０２が表示されている。
【００７７】
図１３は、本発明の実施の形態１に係るハンディターミナル１００のＣＰＵ１０１の処理手順を示すフローチャートである。ハンディターミナル１００のＣＰＵ１０１は、カウンタが撮像回数の上限に到達したか否かを判断する（ステップＳ１３０１）。ＣＰＵ１０１が、カウンタが撮像回数の上限に到達したと判断した場合（ステップＳ１３０１：ＹＥＳ）、ＣＰＵ１０１は、読取処理に失敗したとして処理を終了する。
【００７８】
ＣＰＵ１０１が、カウンタが撮像回数の上限に到達していないと判断した場合（ステップＳ１３０１：ＮＯ）、ＣＰＵ１０１は、撮像手段４０１から画像データを取得し、カウンタを‘１’インクリメントする（ステップＳ１３０２）。ＣＰＵ１０１は、文字列が存在する領域である文字領域を特定する（ステップＳ１３０３）。
【００７９】
文字領域の特定方法は特に限定されるものではない。例えば輝度値の分布ヒストグラムを用いて、ヒストグラム波形に一定の間隔の凸部が存在する領域を文字領域としても良い。
【００８０】
ＣＰＵ１０１は、文字領域内の文字列の傾き、歪を補正し（ステップＳ１３０４）、補正された画像に基づいて文字候補の分割点を生成する（ステップＳ１３０５）。ＣＰＵ１０１は、文字候補の分割点間を文字認識することにより、複数の文字認識結果を取得する（ステップＳ１３０６）。
【００８１】
ＣＰＵ１０１は、複数の認識結果に基づいて、最適な文字分割パスと、該文字分割パスに基づく文字認識結果を取得し（ステップＳ１３０７）、認識結果に合致する読取フォーマットを検索する（ステップＳ１３０８）。ＣＰＵ１０１は、認識結果と合致する読取フォーマットが存在するか否かを判断する（ステップＳ１３０９）。
【００８２】
ステップＳ１３０８及びステップＳ１３０９で示す部分の処理をより具体的に説明する。図１４は、本発明の実施の形態１に係るハンディターミナル１００のＣＰＵ１０１の読取フォーマット検索処理の手順を示すフローチャートである。
【００８３】
図１４において、ハンディターミナル１００のＣＰＵ１０１は、カウンタｉを‘１’に設定し（ステップＳ１４０１）、カウンタｉが記憶されている読取フォーマットの総数以下であるか否かを判断する（ステップＳ１４０２）。ＣＰＵ１０１が、カウンタｉが記憶されている読取フォーマットの総数より大きいと判断した場合（ステップＳ１４０２：ＮＯ）、ＣＰＵ１０１は、誤って読み取った可能性がないと判断して（ステップＳ１４１０）、処理をステップＳ１３０１へ戻して上述した処理を繰り返す。
【００８４】
ＣＰＵ１０１が、カウンタｉが記憶されている読取フォーマットの総数以下であると判断した場合（ステップＳ１４０２：ＹＥＳ）、ＣＰＵ１０１は、ｉ番目の読取フォーマットが認識結果に合致した読取フォーマットであるか否かを判断する（ステップＳ１４０３：第１の検索処理手段）。ＣＰＵ１０１が、認識結果に合致した読取フォーマットであると判断した場合（ステップＳ１４０３：ＹＥＳ）、ＣＰＵ１０１は、カウンタｉを‘１’インクリメントし（ステップＳ１４０８）、処理をステップＳ１４０２に戻して上述した処理を繰り返す。
【００８５】
ＣＰＵ１０１が、認識結果に合致した読取フォーマットではないと判断した場合（ステップＳ１４０３：ＮＯ）、ＣＰＵ１０１は、ｉ番目の読取フォーマットを認識文字列から探索し（ステップＳ１４０４）、探索した読取フォーマットの一部が合致しているか否かを判断する（ステップＳ１４０５）。ＣＰＵ１０１が、探索した読取フォーマットが合致していないと判断した場合（ステップＳ１４０５：ＮＯ）、ＣＰＵ１０１は、カウンタｉを‘１’インクリメントし（ステップＳ１４０８）、処理をステップＳ１４０２に戻して上述した処理を繰り返す。
【００８６】
ＣＰＵ１０１が、探索した読取フォーマットの一部が合致していると判断した場合（ステップＳ１４０５：ＹＥＳ）、ＣＰＵ１０１は、合致部分が、前回の認識結果の部分文字列であるか否かを判断する（ステップＳ１４０６：第２の検索処理手段）。ＣＰＵ１０１が、合致部分が、前回の認識結果の部分文字列ではないと判断した場合（ステップＳ１４０６：ＮＯ）、ＣＰＵ１０１は、カウンタｉを‘１’インクリメントし（ステップＳ１４０８）、処理をステップＳ１４０２に戻して上述した処理を繰り返す。
【００８７】
ＣＰＵ１０１が、合致部分が、前回の認識結果の部分文字列であると判断した場合（ステップＳ１４０６：ＹＥＳ）、ＣＰＵ１０１は、認識文字列の意味内容が元の認識文字列の意味と等価であるか否かを判断する（ステップＳ１４０７）。ここで、「認識文字列の意味内容が元の認識文字列の意味と等価である」とは、例えば日付を読み取った場合、「２０１４／１２／２０」と「１４／１２／２０」とのように、同じ意味である関係を言う。これ以外にも、例えば住所を読み取った場合、「大阪府大阪市淀川区・・・」と「大阪市淀川区・・・」とは同じ意味であるので等価であると考える。以下、等価である事例について、事前にＲＯＭ２１に記憶しておく。
【００８８】
ＣＰＵ１０１が、認識文字列の意味内容が元の認識文字列の意味と等価であると判断した場合（ステップＳ１４０７：ＹＥＳ）、ＣＰＵ１０１は、カウンタｉを‘１’インクリメントし（ステップＳ１４０８）、処理をステップＳ１４０２に戻して上述した処理を繰り返す。ＣＰＵ１０１が、認識文字列の意味内容が元の認識文字列の意味と等価ではないと判断した場合（ステップＳ１４０７：ＮＯ）、ＣＰＵ１０１は、誤って読み取った可能性があると判断して（ステップＳ１４０９）、処理をステップＳ１３１０へ進める。
【００８９】
図１３に戻って、ＣＰＵ１０１は、誤った読取の可能性を示す評価値を、所定の規則に従って項目ごとに算出し（ステップＳ１３１０）、算出した複数の評価値に基づいて判断評価値を算出する（ステップＳ１３１１）。判断評価値は、例えば算出した複数の評価値を合算した値であっても良いし、最大値であっても良い。ＣＰＵ１０１は、判断評価値が、読取失敗を判断する第一の閾値より大きいか否かを判断する（ステップＳ１３１２）。
【００９０】
ＣＰＵ１０１が、判断評価値が、読取失敗を判断する第一の閾値より大きいと判断した場合（ステップＳ１３１２：ＹＥＳ）、ＣＰＵ１０１は、処理をステップＳ１３０１へ戻して、上述した処理を繰り返す。ＣＰＵ１０１が、判断評価値が、読取失敗を判断する第一の閾値以下であると判断した場合（ステップＳ１３１２：ＮＯ）、ＣＰＵ１０１は、判断評価値が、警告を報知するか否かを判断する第二の閾値より大きいか否かを判断する（ステップＳ１３１３）。
【００９１】
ＣＰＵ１０１が、判断評価値が、警告を報知するか否かを判断する第二の閾値より大きいと判断した場合（ステップＳ１３１３：ＹＥＳ）、ＣＰＵ１０１は、読取は成功しているものの、警告を報知する（ステップＳ１３１４）。つまり、誤って読み取りが行われている可能性を示す警告を報知する。ＣＰＵ１０１が、判断評価値が、警告を報知するか否かを判断する第二の閾値以下であると判断した場合（ステップＳ１３１３：ＮＯ）、ＣＰＵ１０１は処理を終了する。
【００９２】
なお、第１の検索処理手段４０３において合致する読取フォーマット（第１の読取フォーマット）を複数検索した場合、誤った読取の可能性がある旨を示すよう報知するようにしても良い。これにより、本来想定している読取フォーマットとは異なる読取フォーマットに合致している可能性があることがわかるので、誤った読取の可能性が高いものとしてユーザに報知することが可能となる。
【００９３】
また、第１の検索処理手段４０３において合致する第１の読取フォーマットが検索されない場合、撮像手段４０１により再度撮像して処理を実行しても良い。この場合、撮像条件、例えば露光時間のようなパラメータを前回撮像した時と異なる値に設定し直しても良い。そして、フローチャート（ステップＳ１４０２：ＮＯ）の処理の後、カウンタを初期化してから処理をステップＳ１３０１へ戻して、上述した処理を繰り返す。これにより、明らかに誤った読取の可能性がある場合には、今一度撮像からやり直すことができ、確認して修正する等の手間を省くことが可能となる。また、ハレーションが発生している画像、ブレが発生している画像等であっても、再度撮像することにより高品位の画像を取得することで、信頼度の高い読取を行うことができる。
【００９４】
以上のように本実施の形態１によれば、桁落ちにより誤った読取が行われた可能性、ハレーションの発生等により誤った読取が行われた可能性等が高いと判断した場合にのみユーザに確認を促すことができ、読取精度を高く維持することができるとともに、読取処理を実行する都度ユーザに確認を促す必要がないので、読取装置の利便性を向上させることが可能となる。また、一致度や相違度に基づく認識処理では、誤った読取が行われた可能性の有無を判断することができない場合であっても確実に判断することが可能となる。
【００９５】
（実施の形態２）
本発明の実施の形態２に係るハンディターミナル１００の構成、機能ブロック図は、実施の形態１と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態２では、撮像された画面の外で生じる桁落ちだけでなく、画面内で生じた桁落ちを検出する点で実施の形態１とは相違する。
【００９６】
図４に示すように、第１の検索処理手段４０３は、記憶されている複数の読取フォーマットのうち、文字列認識手段４０２において認識された文字列に合致する第１の読取フォーマットを検索する。具体的には、第１の検索処理手段４０３では、記憶されている複数の読取フォーマットの中から文字認識結果に合致するものを検索し、合致するものが存在する場合、合致した読取フォーマットと合わせて「一致」情報を出力する。合致するものが存在しない場合、「不一致」情報を出力する。合致する読取フォーマットが複数存在する場合には、文字列長が最長である読取フォーマット等、所定の基準に従って最適な読取フォーマットを出力する。
【００９７】
抽出手段４０６は、認識した文字列の中から、第１の読取フォーマットに合致している部分文字列を抽出する。さらに、第１の読取フォーマットに合致している部分文字列を含む、文字列の高信頼区間を抽出する。ここで、「高信頼区間」とは、第１の読取フォーマットに合致している部分文字列の区間と、該部分文字列の区間の左右において文字認識辞書２１３との合致度が閾値以上であるような文字が連続する区間とを合わせたものを意味する。高信頼区間に含めるか否かを判断する閾値は、認識結果が「不定」文字であるか否かを判別する閾値と同一の閾値であっても良いし、異なる閾値であっても良い。図１５は、本発明の実施の形態２に係るハンディターミナル１００における高信頼区間の例示図である。
【００９８】
図１５では、図１５（ａ）に示す文字列「２３ＡＢＣＤＥＦ」のうち、「３ＡＢＣＤＥ」を読み取ることができ（図１５（ｂ）の「認識結果」参照）、第１の読取フォーマットに「ＡＢＣＤＥ」が合致した例である。つまり、第１の読取フォーマットに合致している部分１５１は、認識結果が不定である不定閾値として合致度３０以上の文字のうち、第１の読取フォーマット「英文字５文字」に該当する部分文字列となる。そして、合致した部分文字列の左右において、「３」のみが高信頼区間１５２に含める閾値以上の合致度を有している。すなわち、「３」の合致度は８０であり、高信頼区間１５２に含めるか否かを判断する閾値（高信頼閾値）である合致度７０以上の値が得られている。したがって、高信頼区間は、「３ＡＢＣＤＥ」となる。
【００９９】
以下、第２の検索処理手段４０４は、抽出された高信頼区間の文字列が部分文字列として合致する第２の読取フォーマットを検索する。検索される第２の読取フォーマットは、高信頼区間に配置されている文字の種類にも適応する読取フォーマットである。具体的には、第１の読取フォーマットに合致する部分文字列の左右、少なくともいずれか一方に文字が付加された高信頼区間の文字列に合致するものを検索し、合致するものが存在する場合、合致した読取フォーマットと合わせて「一致」情報を出力する。合致するものが存在しない場合、「不一致」情報を出力する。合致する読取フォーマットが複数存在する場合には、文字列長が最長である読取フォーマット等、所定の基準に従って最適な読取フォーマットを出力する。
【０１００】
具体的には、例えば撮像する画面内であっても、読取対象となる文字の一部が存在すると仮定し、抽出された高信頼区間の文字列の左右に、「不定」文字を所定数付加して、再度合致する読取フォーマットを検索する。
【０１０１】
例えば読取フォーマットとして、「英字４桁」、「英字５桁」、「英字６桁」の３つの読取フォーマットを準備し、それぞれ合致しているか否かを判断した結果を図１６に示す。
【０１０２】
図１６は、複数の読取フォーマットに対する合致度合の検索結果の例示図である。上述した読取フォーマットを、それぞれ読取フォーマット‘１’、‘２’、‘３’とし、それぞれに対して合致部分、合致結果、合致文字列、及び延長方向を記載している。
【０１０３】
そして、（１）合致結果が「曖昧一致」であり、（２）第１の検索処理手段４０３によって検索され、第１の読取フォーマットで抽出された文字列を部分文字列として含む場合には、画面内であっても桁落ちが生じている可能性が高いと判断する。もちろん、読取対象が日付であると事前に分かっている場合、日付としての意味が変わっているときには、桁落ちが生じている可能性が高いと判断する。
【０１０４】
この条件を満たす読取フォーマットそれぞれについて、元の認識結果と比較して文字列が左右いずれかの方向に延長している可能性の有無を判断する。図１６の例では、読取フォーマット‘３’、すなわち「英字６桁」のみが条件を満たしており、文字列の右側に桁落ちが生じている可能性があることがわかる。
【０１０５】
以下、桁落ちが生じている可能性がある方向について、後述する実施の形態に記載する方法により、桁落ちが生じている可能性を判断することができる。
【０１０６】
なお、文字列が画面の一方端に寄って存在する場合、桁落ちが生じている可能性があると判断することもできる。図１７は、文字列が画面の一方端に寄って存在する場合の例示図である。
【０１０７】
図１７に示すように、文字列「ＡＢＣＤＥ」が画面右端に寄って存在している。この場合、文字列「ＡＢＣＤＥ」は、読取フォーマット「英字１０桁」の部分文字列に合致し、同時に画面端に近いという２つの条件に基づいて、桁落ちが生じている可能性があると判断することができる。
【０１０８】
以上のように実施の形態２によれば、画面内であっても桁落ちにより誤った読取が行われた可能性、ハレーションの発生等により誤った読取が行われた可能性等が高い場合にユーザに確認を促すことができ、読取精度を高く維持することができるとともに、読取処理を実行する都度ユーザに確認を促す必要がないので、読取装置の利便性を向上させることが可能となる。また、読み取った文字列の左右の高信頼区間を含めて判別に用いることで、第２の検索処理手段において文字列の延長方向を限定することができ、桁落ちの可能性を誤検出する頻度を減少させることができる。
【０１０９】
（実施の形態３）
本発明の実施の形態３に係るハンディターミナル１００の構成、機能ブロック図は、実施の形態１と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態３では、ハレーションの発生により生じる誤った読取の可能性を検出する点で実施の形態１及び２とは相違する。
【０１１０】
図１８は、撮像した画像にハレーション（白飛び）が発生している場合の例示図である。図１８に示すように、文字列「２０１３／１２」の文字「１２」の下部にハレーションが発生しており、誤った読取の可能性が高い。
【０１１１】
そこで、本実施の形態３に係るハンディターミナル１００は、認識した文字列ごとに、文字領域中における所定の閾値以上の輝度値を有する画素数をカウントし、カウントされた画素数の全画素数に対する割合を算出して、評価値を算出する。そして、算出した評価値に基づいて誤った読取の可能性があるか否かを判断する。
【０１１２】
図１９は、本発明の実施の形態３に係るハンディターミナル１００のＣＰＵ１０１のハレーション判断処理の手順を示すフローチャートである。図１９において、ハンディターミナル１００のＣＰＵ１０１は、認識した文字列ごとに、文字領域中における所定の閾値以上の輝度値を有する画素数をカウントする（ステップＳ１９０１）。
【０１１３】
ＣＰＵ１０１は、カウントされた画素数の全画素数に対する割合を算出し（ステップＳ１９０２）、所定の規則に基づいて評価値を算出する（ステップＳ１９０３）。ＣＰＵ１０１は、算出した評価値に基づいて誤った読取の可能性があるか否かを判断することができる。
【０１１４】
もちろん、画素数の割合に限定されるものではなく、例えば白画素の最大連続数で判断しても良い。この場合、本実施の形態３に係るハンディターミナル１００は、認識した文字列の文字ごとに、文字領域中における所定の閾値以上の輝度値を有する画素を抽出し、抽出された画素の縦方向又は横方向の最大連続数を算出する。そして、算出した最大連続数に基づいて誤った読取の可能性があるか否かを判断する。
【０１１５】
図２０は、本発明の実施の形態３に係るハンディターミナル１００のＣＰＵ１０１のハレーション判断処理の他の手順を示すフローチャートである。図２０において、ハンディターミナル１００のＣＰＵ１０１は、認識した文字列の文字ごとに、文字領域中における所定の閾値以上の輝度値を有する画素を抽出する（ステップＳ２００１）。ＣＰＵ１０１は、抽出された画素の縦方向又は横方向の最大連続数を算出する（ステップＳ２００２）。ＣＰＵ１０１は、算出した最大連続数に基づいて誤った読取の可能性があるか否かを判断することができる。
【０１１６】
図２１は、誤った読取の可能性の有無を判断する方法の例示図である。図２１は、図１８に示す文字列の文字ごとに、図１９又は図２０の判断処理の手順に従って評価値を算出している。すなわち、白画素率を文字ごとに算出し、評価値Ａを算出する。同様に白画素の連続数を文字ごとに算出し、評価値Ｂを算出する。
【０１１７】
そして、評価値Ａと評価値Ｂのうち大きい方の値を総合評価値とする。総合評価値のうちの最大値を、文字列全体の評価値とする。
【０１１８】
このようにすることで、文字列近傍で生じているハレーション（白飛び）の発生により誤った読取の可能性を報知することができる。図２２は、本発明の実施の形態３に係るハンディターミナル１００では警告を報知しないハレーションが発生している場合の例示図である。すなわち、図２２に示すように、認識文字列と無関係の場所にハレーションが発生している場合には、警告を報知することがないので、ユーザには、誤った読取の可能性がある旨の警告が頻繁に報知されることがない。
【０１１９】
なお、文字認識した文字列の範囲から上下左右方向に一定割合で拡張した矩形領域内における白画素の割合に基づいてハレーションが発生している可能性を判断しても良い。図２３は、矩形領域の例示図である。図２３の例では、文字列「ＡＢＣＤＥ」の範囲から上下左右方向に一定割合で拡張した矩形領域２３１を設定する。矩形領域２３１内の白画素の割合が所定値より大きい場合にハレーションが発生していると判断して、誤った読取の可能性が高いと判断する。
【０１２０】
図２４は、本発明の実施の形態３に係るハンディターミナル１００のＣＰＵ１０１のハレーション判断処理の他の手順を示すフローチャートである。図２４において、ハンディターミナル１００のＣＰＵ１０１は、認識した文字列ごとに、文字領域から上下左右方向に一定の割合で拡張した矩形領域を設定する（ステップＳ２４０１）。ＣＰＵ１０１は、設定した矩形領域における白画素の割合を算出する（ステップＳ２４０２）。そして、算出した割合に基づいて誤った読取の可能性があるか否かを判断する。
【０１２１】
もちろん、白画素の割合が所定値を超えたか否かを文字列単位で判断しても良いし、図２１のような文字単位の評価値と同等に比較して、全体として文字列単位で総合評価値を算出しても良い。すなわち、評価値全体を統合して、総合評価値として算出しても良い。
【０１２２】
以上のように実施の形態３によれば、ハレーションの発生により誤った読取が行われた可能性等が高い場合にユーザに確認を促すことができ、読取精度を高く維持することができるとともに、読取処理を実行する都度ユーザに確認を促す必要がないので、読取装置の利便性を向上させることが可能となる。
【０１２３】
（実施の形態４）
本発明の実施の形態４に係るハンディターミナル１００の構成、機能ブロック図は、実施の形態１と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態４では、第１の検索処理手段４０３において合致する第１の読取フォーマットを複数検索する点で実施の形態１乃至３とは相違する。
【０１２４】
図２５は、複数の読取フォーマットに合致する可能性のある文字列の例示図であり、図２６は、読取フォーマットの例示図である。図２５の文字列については、図２６の読取フォーマットＮｏ．１「英字４桁」と読取フォーマットＮｏ．３「数字３桁」に合致する。
【０１２５】
したがって、いずれの読取フォーマットがより正しいのか誤っているのかを判断できない状態となるので、誤った読取の可能性が高いと判断する。これにより、本来想定している読取フォーマットとは異なる読取フォーマットに合致している可能性が残されるので、誤った読取の可能性が高いと判断してユーザに報知することで読取精度を高く維持することができる。
【０１２６】
（実施の形態５）
本発明の実施の形態５に係るハンディターミナル１００の構成、機能ブロック図は、実施の形態１と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態５では、文字と文字との間の文字を読み落としている可能性があるか否かを判断する点で実施の形態１乃至４とは相違する。
【０１２７】
図２７は、認識した文字列の輝度値の分布ヒストグラムの例示図である。図２７（ａ）に示す文字列に対して、図２７（ｂ）は、輝度値が存在する画素の総数を分布図として示している。文字列「２０１３．」、文字「２」はヒストグラムにピーク点が見られることから、文字が存在することが明確であるのに対して、文字列「２０１３．」と文字「２」との間にも、ヒストグラムに緩やかなピーク領域２７１が存在する。
【０１２８】
すなわち、文字であるか否かまで特定することはできないものの、何か文字を読み落としている可能性を示唆することはできる。したがって、文字と文字との間に所定値以上のピーク点を有するピーク領域が存在する場合には、誤った読取の可能性が高いと判断して警告を報知する。
【０１２９】
図２８は、本発明の実施の形態５に係るハンディターミナル１００のＣＰＵ１０１の処理手順を示すフローチャートである。図２８において、ハンディターミナル１００のＣＰＵ１０１は、認識した文字領域について、輝度値の分布ヒストグラムを算出する（ステップＳ２８０１）。
【０１３０】
ＣＰＵ１０１は、算出した分布ヒストグラムに基づいて、文字を認識していない領域に所定値以上の頂点を有するピーク領域が存在するか否かを判断する（ステップＳ２８０２）。ＣＰＵ１０１が、ピーク領域が存在しないと判断した場合（ステップＳ２８０２：ＮＯ）、ＣＰＵ１０１は、処理を終了する。ＣＰＵ１０１が、ピーク領域が存在すると判断した場合（ステップＳ２８０２：ＹＥＳ）、ＣＰＵ１０１は、所定の規則に従って、評価値を算出する（ステップＳ２８０３）。これにより、ヒストグラム波形の面積に応じて誤った読取の可能性が高いと判断した場合にユーザに報知することが可能となる。
【０１３１】
以上のように実施の形態５によれば、ヒストグラム波形の面積に応じて誤った読取が行われた可能性が高いと判断した場合にユーザに警告を報知することができ、読取精度を高く維持することが可能となる。
【０１３２】
（実施の形態６）
本発明の実施の形態６に係るハンディターミナル１００の構成、機能ブロック図は、実施の形態１と同様であることから、同一の符号を付することにより詳細な説明は省略する。本実施の形態６では、文字が滲む等、表示がボケている場合の誤った読取の可能性の有無を判断する点で実施の形態１乃至５とは相違する。
【０１３３】
図２９は、本発明の実施の形態６に係るハンディターミナル１００の輝度値ヒストグラムの例示図である。図２９（ａ）及び（ｂ）では、縦軸が輝度値の頻度を、横軸が輝度値を、それぞれ示している。
【０１３４】
図２９（ａ）に示すように、文字が存在する場合、背景部分と文字部分とで輝度値分布は明確に分離される。したがって、通常は輝度値のピーク間に谷部が明確に出現する。
【０１３５】
それに対して、図２９（ｂ）に示すように、文字が滲んでいる場合、あるいは文字がボケている場合には、背景部分と文字部分とで輝度値分布が明確に分離されない。したがって、輝度値のピーク間に谷部が明確に出現せず、どこからどこまでの輝度値が文字部分を表しているのか判断することができない。
【０１３６】
したがって、輝度値のピーク間の状態を、二値化閾値を算出することで分散として求め、求めた分散に基づいて分離度を評価値として算出する。分離度が所定の閾値よりも小さい場合に、文字がボケていると判断して、誤った読取の可能性が高いと判断することができる。
【０１３７】
以上のように実施の形態６によれば、文字を撮像した画像が滲んでいる場合、ボケている場合等については誤った読取が行われた可能性が高いと判断してユーザに報知することができ、読取精度を高く維持することが可能となる。
【０１３８】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば上述した実施例では、実施の形態３の図２１において算出される複数の評価値のうち大きい方の値を総合評価値として算出しているが、すべての実施の形態において算出される評価値を総合評価値の算出の基礎にして統合して、全体の評価値として総合評価値を算出しても良いことは言うまでもない。
【０１３９】
図３０は、統合して総合評価値を算出する場合の例示図である。複数の評価項目の評価値を１０点満点になるよう算出し、すべての評価値の中で最大値を有する評価値を総合評価値として、認識文字列に関して誤った読取の可能性があるか否かを判断する。図３０の例では、最大値‘７’を有する評価値が総合評価値となり、例えば所定の閾値が‘６’である場合には総合評価値が閾値を上回っていることから、誤った読取の可能性があると判断することができる。
【０１４０】
また、上記実施例では、撮像された画像から文字列を読み取る場合について説明しているが、バーコードやＱＲコード（登録商標）などの各種コード読取装置にも適用することが可能であることは言うまでもない。
【符号の説明】
【０１４１】
２０  ＲＡＭ
２１  ＲＯＭ
３０  表示部（ディスプレイ部）
４０  操作部（キー配置部）
６０  撮像部
６１  カメラ
６２  照準光照射部
１００  ハンディターミナル
１０１  ＣＰＵ
【図２】
2015210542.tif 000003
【図３】
2015210542.tif 000004
【図４】
2015210542.tif 000005
【図５】
2015210542.tif 000006
【図６】
2015210542.tif 000007
【図７】
2015210542.tif 000008
【図８】
2015210542.tif 000009
【図１３】
2015210542.tif 000010
【図１４】
2015210542.tif 000011
【図１５】
2015210542.tif 000012
【図１６】
2015210542.tif 000013
【図１７】
2015210542.tif 000014
【図１９】
2015210542.tif 000015
【図２０】
2015210542.tif 000016
【図２１】
2015210542.tif 000017
【図２４】
2015210542.tif 000018
【図２６】
2015210542.tif 000019
【図２８】
2015210542.tif 000020
【図３０】
2015210542.tif 000021
【図１】
2015210542.tif 000022
【図９】
2015210542.tif 000023
【図１０】
2015210542.tif 000024
【図１１】
2015210542.tif 000025
【図１２】
2015210542.tif 000026
【図１８】
2015210542.tif 000027
【図２２】
2015210542.tif 000028
【図２３】
2015210542.tif 000029
【図２５】
2015210542.tif 000030
【図２７】
2015210542.tif 000031
【図２９】
2015210542.tif 000032