(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-27
(45)【発行日】2023-08-04
(54)【発明の名称】情報処理装置、制御方法及び制御プログラム
(51)【国際特許分類】
G06V 30/26 20220101AFI20230728BHJP
G06V 30/24 20220101ALI20230728BHJP
【FI】
G06V30/266
G06V30/264
G06V30/24 640A
(21)【出願番号】P 2019092800
(22)【出願日】2019-05-16
【審査請求日】2022-03-16
(73)【特許権者】
【識別番号】000136136
【氏名又は名称】株式会社PFU
(74)【代理人】
【識別番号】100099759
【氏名又は名称】青木 篤
(74)【代理人】
【識別番号】100123582
【氏名又は名称】三橋 真二
(74)【代理人】
【識別番号】100114018
【氏名又は名称】南山 知広
(74)【代理人】
【識別番号】100180806
【氏名又は名称】三浦 剛
(72)【発明者】
【氏名】大島 圭祐
【審査官】宮島 潤
(56)【参考文献】
【文献】特開2000-11096(JP,A)
【文献】特開2003-178262(JP,A)
【文献】特開平7-93467(JP,A)
【文献】特開平4-205457(JP,A)
【文献】特開2007-42097(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
G06V 30/00 - 30/12
G06V 30/226 - 30/32
G06V 30/42 - 30/424
(57)【特許請求の範囲】
【請求項1】
住所を表示するための住所要素を、最も広域側の第1階層から下位の階層に向けて、複数の階層に分けて記憶する記憶部と、
画像から検出された入力文字列を取得する取得部と、
前記入力文字列の先頭からn番目までの文字をそれぞれ含
み且つ文字数が相互に異なるn個の第1文字列を含む第1文字列群を抽出する第1文字抽出部であって、nは1から2以上の所定の数までの整数である第1文字抽出部と、
前記第1文字列群に含まれる全ての第1文字列と、前記第1階層及び前記第1階層の次の階層である第2階層に含まれる全ての住所要素とを比較して、前記第1文字列群に含まれる第1文字列の何れか
と距離が最小となる住所要素を第1住所要素候補
として抽出する第1候補抽出部と、
前記第1文字列群に含まれる第1文字列のうちの前記第1住所要素候補と距離が最小となる第1文字列を前記入力文字列から除いた部分文字列の先頭からm番目までの文字をそれぞれ含
み且つ文字数が相互に異なるm個の第2文字列を含む第2文字列群を抽出する第2文字抽出部であって、mは1から2以上の所定の数までの整数である第2文字抽出部と、
前記第2文字列群に含まれる全ての第2文字列と、前記第1住所要素候補を含む階層の次の階層に含まれ且つ
前記記憶部において前記第1住所要素候補
に続く住所要素として記憶された全ての住所要素とを比較して、前記第2文字列群に含まれる第2文字列の何れか
と距離が最小となる住所要素を第2住所要素候補
として抽出する第2候補抽出部と、
前記第1文字列群に含まれる第1文字列のうちの前記第1住所要素候補と距離が最小となる第1文字列を前記第1住所要素候補に置換し、前記第2文字列群に含まれる第2文字列のうちの前記第2住所要素候補と距離が最小となる第2文字列を前記第2住所要素候補に置換することにより、前記入力文字列を補正する補正部と、
前記補正された入力文字列を
表示装置に表示し又は他の装置に送信する出力
制御部と、
を有することを特徴とする情報処理装置。
【請求項2】
前記画像には、手書き文字が含まれる、請求項1に記載の情報処理装置。
【請求項3】
前記第2文字抽出部は、前記第1候補抽出部により前記第1住所要素候補が複数抽出された場合、前記複数の第1住所要素候補のそれぞれに対して前記第2文字列群を抽出し、
前記第2候補抽出部は、前記第2文字抽出部により抽出された第2文字列群のそれぞれに対して前記第2住所要素候補を抽出する、請求項1または2に記載の情報処理装置。
【請求項4】
第2住所要素候補の抽出位置が前記入力文字列の最後尾に達するまで、又は、第2住所要素候補を含む階層の次の階層が存在しなくなるまで、
前記第2文字抽出部は、
前記第2文字列群に含まれる第2文字列のうちの前記第2候補抽出部により直前に抽出された
第2住所要素候補と距離が最小となる第2文字列をさらに除いた部分文字列から次の第2文字列群を抽出し、
前記第2候補抽出部は、前記次の第2文字列群に含まれる全ての第2文字列と、前記直前に抽出された第2住所要素候補を含む階層の次の階層に含まれ且つ
前記記憶部において当該第2住所要素候補
に続く住所要素として記憶された全ての住所要素とを比較して、前記次の第2文字列群に含まれる第2文字列の何れか
と距離が最小となる住所要素を第2住所要素候補
として新たに抽出し、
前記補正部は、
前記第1文字列群に含まれる第1文字列のうちの前記第1住所要素候補と距離が最小となる第1文字列を前記第1住所要素候補に置換し、前記抽出された各第2文字列群に含まれる第2文字列のうちの前記抽出された各第2住所要素候補と距離が最小となる第2文字列を前記抽出された各第2住所要素候補に置換することにより、前記入力文字列を補正する、請求項1または2に記載の情報処理装置。
【請求項5】
前記第2候補抽出部は、前記第2文字列を前記第2階層より下位の階層に含まれる住所要素と比較する場合、さらに、前記第2文字列を各住所要素
の前又は後に大字、字又は小字を加えた文字列と比較する、請求項1~4の何れか一項に記載の情報処理装置。
【請求項6】
前記第1候補抽出部は、
前記第1文字列群に含まれる第1文字列の何れかとのレーベンシュタイン距離が最小となる住所要素を第1住所要素候補として抽出する、請求項1~5の何れか一項に記載の情報処理装置。
【請求項7】
記憶
部を有する情報処理装置の制御方法であって、
住所を表示するための住所要素を、最も広域側の第1階層から下位の階層に向けて、複数の階層に分けて前記記憶部に記憶し、
画像から検出された入力文字列を取得し、
前記入力文字列の先頭からn番目までの文字をそれぞれ含
み且つ文字数が相互に異なるn個の第1文字列を含む第1文字列群を抽出し、nは1から2以上の所定の数までの整数であり、
前記第1文字列群に含まれる全ての第1文字列と、前記第1階層及び前記第1階層の次の階層である第2階層に含まれる全ての住所要素とを比較して、前記第1文字列群に含まれる第1文字列の何れか
と距離が最小となる住所要素を第1住所要素候補
として抽出し、
前記第1文字列群に含まれる第1文字列のうちの前記第1住所要素候補と距離が最小となる第1文字列を前記入力文字列から除いた部分文字列の先頭からm番目までの文字をそれぞれ含
み且つ文字数が相互に異なるm個の第2文字列を含む第2文字列群を抽出する第2文字抽出部であって、mは1から2以上の所定の数までの整数であり、
前記第2文字列群に含まれる全ての第2文字列と、前記第1住所要素候補を含む階層の次の階層に含まれ且つ
前記記憶部において前記第1住所要素候補
に続く住所要素として記憶された全ての住所要素とを比較して、前記第2文字列群に含まれる第2文字列の何れか
と距離が最小となる住所要素を第2住所要素候補
として抽出し、
前記第1文字列群に含まれる第1文字列のうちの前記第1住所要素候補と距離が最小となる第1文字列を前記第1住所要素候補に置換し、前記第2文字列群に含まれる第2文字列のうちの前記第2住所要素候補と距離が最小となる第2文字列を前記第2住所要素候補に置換することにより、前記入力文字列を補正し、
前記補正された入力文字列を
表示装置に表示し又は他の装置に送信する、
ことを特徴とする制御方法。
【請求項8】
記憶
部を有する情報処理装置の制御プログラムであって、
住所を表示するための住所要素を、最も広域側の第1階層から下位の階層に向けて、複数の階層に分けて前記記憶部に記憶し、
画像から検出された入力文字列を取得し、
前記入力文字列の先頭からn番目までの文字をそれぞれ含
み且つ文字数が相互に異なるn個の第1文字列を含む第1文字列群を抽出し、nは1から2以上の所定の数までの整数であり、
前記第1文字列群に含まれる全ての第1文字列と、前記第1階層及び前記第1階層の次の階層である第2階層に含まれる全ての住所要素とを比較して、前記第1文字列群に含まれる第1文字列の何れか
と距離が最小となる住所要素を第1住所要素候補
として抽出し、
前記第1文字列群に含まれる第1文字列のうちの前記第1住所要素候補と距離が最小となる第1文字列を前記入力文字列から除いた部分文字列の先頭からm番目までの文字をそれぞれ含
み且つ文字数が相互に異なるm個の第2文字列を含む第2文字列群を抽出する第2文字抽出部であって、mは1から2以上の所定の数までの整数であり、
前記第2文字列群に含まれる全ての第2文字列と、前記第1住所要素候補を含む階層の次の階層に含まれ且つ
前記記憶部において前記第1住所要素候補
に続く住所要素として記憶された全ての住所要素とを比較して、前記第2文字列群に含まれる第2文字列の何れか
と距離が最小となる住所要素を第2住所要素候補
として抽出し、
前記第1文字列群に含まれる第1文字列のうちの前記第1住所要素候補と距離が最小となる第1文字列を前記第1住所要素候補に置換し、前記第2文字列群に含まれる第2文字列のうちの前記第2住所要素候補と距離が最小となる第2文字列を前記第2住所要素候補に置換することにより、前記入力文字列を補正し、
前記補正された入力文字列を
表示装置に表示し又は他の装置に送信する、
ことを前記情報処理装置に実行させることを特徴とする制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、制御方法及び制御プログラムに関し、特に、画像から検出された入力文字列を補正する情報処理装置、制御方法及び制御プログラムに関する。
【背景技術】
【0002】
近年、働き方改革が推進されている一方で、運輸業界では人手不足が問題となっている。オペレータが送り状の手書き住所をコンピュータに入力する業務では、OCR(Optical Character Recognition)技術を利用してコンピュータに手書き住所を自動認識(検出)させることにより効率化を図ることができる。しかしながら、記入者の筆跡等によっては、手書き住所に正しく検出されない文字が含まれる可能性がある。一方、住所に用いられる文字列は有限であるため、コンピュータに、事前に登録しておいた住所辞書を用いて、検出した文字列を補正させることにより、手書き住所の検出精度を向上させることができる。
【0003】
記載住所を読み取ったOCRから認識した文字列を受け取って、住所辞書を参照しながら解析する文字認識処理装置が開示されている(特許文献1を参照)。文字認識処理装置は、入力した文字列の先頭の候補文字を、住所辞書の最上位階層の都道府県の地名と対比し、都道府県名候補の尤度を計算する。文字認識処理装置は、最大尤度が基準以下である場合、住所辞書の第2階層の区市郡レベルの全地名に対して対比を行い、地名ごとに尤度を付与する。文字認識処理装置は、最大尤度が基準を越える場合、尤度の大きい順に複数の候補を選択し、入力した文字列から解析処理した階層に相当する文字を除いて、選択した候補の次階層の地名に対し尤度を計算する。
【0004】
また、帳票などに記入された住所の画像を読み取り、読み取った画像に含まれる住所を示す文字列を住所の階層構造を利用して認識する住所認識装置が開示されている(特許文献2を参照)。住所認識装置は、入力画像から住所を形成する文字列の一部をなす文字候補セグメントを切り出し、文字候補セグメントごとに複数の文字認識結果を出力し、住所辞書を辿りつつ住所を形成する各階層に該当し得る候補文字列を抽出する。住所認識装置は、抽出した各階層の候補文字列を結合して複数の住所候補を生成し、各住所候補の中から類似度が最も高い住所候補を検出結果として出力する。住所辞書は、各住所を都道府県名、市名、町名に階層化した辞書であり、住所認識装置は、住所辞書に載っている全ての住所を階層ごとに全部検索し、その中で可能性のある階層を検索する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2000-11096号公報
【文献】特開2001-283156号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
画像から文字列を検出するシステムでは、画像から検出された文字列をより短時間且つ高精度に補正することが望まれている。
【0007】
情報処理装置、制御方法及び制御プログラムの目的は、画像から検出された文字列を短時間且つ高精度に補正することを可能とすることにある。
【課題を解決するための手段】
【0008】
実施形態の一側面に係る情報処理装置は、住所を表示するための住所要素を、最も広域側の第1階層から下位の階層に向けて、複数の階層に分けて記憶する記憶部と、画像から検出された入力文字列を取得する取得部と、入力文字列の先頭からn番目までの文字をそれぞれ含む複数の第1文字列を含む第1文字列群を抽出する第1文字抽出部であって、nは1から2以上の所定の数までの整数である第1文字抽出部と、第1文字列群に含まれる全ての第1文字列と、第1階層及び第1階層の次の階層である第2階層に含まれる全ての住所要素とを比較して、第1文字列群に含まれる第1文字列の何れかに最も近似した第1住所要素候補を抽出する第1候補抽出部と、第1住所要素候補を抽出する基礎となった第1文字列を入力文字列から除いた部分文字列の先頭からm番目までの文字をそれぞれ含む複数の第2文字列を含む第2文字列群を抽出する第2文字抽出部であって、mは1から2以上の所定の数までの整数である第2文字抽出部と、第2文字列群に含まれる全ての第2文字列と、第1住所要素候補を含む階層の次の階層に含まれ且つ第1住所要素候補と関連した全ての住所要素とを比較して、第2文字列群に含まれる第2文字列の何れかに最も近似した第2住所要素候補を抽出する第2候補抽出部と、第1住所要素候補及び第2住所要素候補に基づいて、入力文字列を補正する補正部と、補正された入力文字列を出力する出力部と、を有する。
【0009】
また、実施形態の一側面に係る制御方法は、記憶部及び出力部を有する情報処理装置の制御方法であって、住所を表示するための住所要素を、最も広域側の第1階層から下位の階層に向けて、複数の階層に分けて記憶部に記憶し、画像から検出された入力文字列を取得し、入力文字列の先頭からn番目までの文字をそれぞれ含む複数の第1文字列を含む第1文字列群を抽出し、nは1から2以上の所定の数までの整数であり、第1文字列群に含まれる全ての第1文字列と、第1階層及び第1階層の次の階層である第2階層に含まれる全ての住所要素とを比較して、第1文字列群に含まれる第1文字列の何れかに最も近似した第1住所要素候補を抽出し、第1住所要素候補を抽出する基礎となった第1文字列を入力文字列から除いた部分文字列の先頭からm番目までの文字をそれぞれ含む複数の第2文字列を含む第2文字列群を抽出し、mは1から2以上の所定の数までの整数であり、第2文字列群に含まれる全ての第2文字列と、第1住所要素候補を含む階層の次の階層に含まれ且つ第1住所要素候補と関連した全ての住所要素とを比較して、第2文字列群に含まれる第2文字列の何れかに最も近似した第2住所要素候補を抽出し、第1住所要素候補及び第2住所要素候補に基づいて、入力文字列を補正し、補正された入力文字列を出力部から出力する。
【0010】
また、実施形態の一側面に係る制御プログラムは、記憶部及び出力部を有する情報処理装置の制御プログラムであって、住所を表示するための住所要素を、最も広域側の第1階層から下位の階層に向けて、複数の階層に分けて記憶部に記憶し、画像から検出された入力文字列を取得し、入力文字列の先頭からn番目までの文字をそれぞれ含む複数の第1文字列を含む第1文字列群を抽出し、nは1から2以上の所定の数までの整数であり、第1文字列群に含まれる全ての第1文字列と、第1階層及び第1階層の次の階層である第2階層に含まれる全ての住所要素とを比較して、第1文字列群に含まれる第1文字列の何れかに最も近似した第1住所要素候補を抽出し、第1住所要素候補を抽出する基礎となった第1文字列を入力文字列から除いた部分文字列の先頭からm番目までの文字をそれぞれ含む複数の第2文字列を含む第2文字列群を抽出し、mは1から2以上の所定の数までの整数であり、第2文字列群に含まれる全ての第2文字列と、第1住所要素候補を含む階層の次の階層に含まれ且つ第1住所要素候補と関連した全ての住所要素とを比較して、第2文字列群に含まれる第2文字列の何れかに最も近似した第2住所要素候補を抽出し、第1住所要素候補及び第2住所要素候補に基づいて、入力文字列を補正し、補正された入力文字列を出力部から出力することを情報処理装置に実行させる。
【発明の効果】
【0011】
本実施形態によれば、情報処理装置、制御方法及び制御プログラムは、画像から検出された文字列を短時間且つ高精度に補正することが可能となる。
【図面の簡単な説明】
【0012】
【
図1】実施形態に従った画像処理システム1の概略構成を示す図である。
【
図2】第2記憶装置210及び第2CPU220の概略構成を示す図である。
【
図3】住所辞書テーブルのデータ構造の一例を示す模式図である。
【
図4】補正処理の動作を示すフローチャートである。
【
図5】補正処理の動作を示すフローチャートである。
【
図7】処理回路330の概略構成を示すブロック図である。
【発明を実施するための形態】
【0013】
以下、本開示の一側面に係る情報処理装置、制御方法及び制御プログラムについて図を参照しつつ説明する。但し、本発明の技術的範囲はそれらの実施の形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
【0014】
図1は、実施形態に従った画像処理システムの概略構成を示す図である。
図1に示すように、画像処理システム1は、画像読取装置100と、情報処理装置200とを有する。
【0015】
画像読取装置100は、例えばスキャナ装置、デジタルカメラ、多機能携帯端末又は携帯電話等である。画像読取装置100は、情報処理装置200に接続されている。情報処理装置200は、例えばパーソナルコンピュータ等である。
【0016】
画像読取装置100は、第1インタフェース装置101と、撮像装置102と、第1記憶装置110と、第1CPU(Central Processing Unit)120とを有する。
【0017】
第1インタフェース装置101は、USB(Universal Serial Bus)等のシリアルバスに準じるインタフェース回路を有し、情報処理装置200と電気的に接続して画像データ及び各種の情報を送受信する。また、第1インタフェース装置101の代わりに、無線信号を送受信するアンテナと、所定の通信プロトコルに従って、無線通信回線を通じて信号の送受信を行うための無線通信インタフェース回路とを有する通信装置が用いられてもよい。所定の通信プロトコルは、例えば無線LAN(Local Area Network)である。
【0018】
撮像装置102は、主走査方向に直線状に配列されたCCD(Charge Coupled Device)による撮像素子を備える縮小光学系タイプの撮像センサを有する。さらに、撮像装置102は、光を照射する光源と、撮像素子上に像を結ぶレンズと、撮像素子から出力された電気信号を増幅してアナログ/デジタル(A/D)変換するA/D変換器とを有する。撮像装置102において、撮像センサは、原稿の表面を撮像してアナログの画像信号を生成して出力し、A/D変換器は、このアナログの画像信号をA/D変換してデジタルの入力画像を生成して出力する。入力画像は、各画素データが、例えばRGB毎に8bitで表される計24bitのR(赤色)値、G(緑色)値、B(青色)値からなるカラー多値画像である。なお、CCDの代わりにCMOS(Complementary Metal Oxide Semiconductor)による撮像素子を備える等倍光学系タイプのCIS(Contact Image Sensor)が用いられてもよい。撮像装置102は、原稿として、例えば手書き文字が含まれる帳票等を撮像する。
【0019】
第1記憶装置110は、RAM(Random Access Memory)、ROM(Read Only Memory)等のメモリ装置、ハードディスク等の固定ディスク装置、又はフレキシブルディスク、光ディスク等の可搬用の記憶装置等を有する。また、第1記憶装置110には、画像読取装置100の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、コンピュータ読み取り可能な可搬型記録媒体から公知のセットアッププログラム等を用いて第1記憶装置110にインストールされてもよい。可搬型記録媒体は、例えばCD-ROM(compact disc read only memory)、DVD-ROM(digital versatile disc read only memory)等である。また、第1記憶装置110は、撮像装置102により生成された入力画像等を記憶する。
【0020】
第1CPU120は、予め第1記憶装置110に記憶されているプログラムに基づいて動作する。なお、第1CPU120に代えて、DSP(digital signal processor)、LSI(large scale integration)等が用いられてよい。また、第1CPU120に代えて、ASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)等が用いられてもよい。
【0021】
第1CPU120は、第1インタフェース装置101、撮像装置102及び第1記憶装置110等と接続され、これらの各部を制御する。第1CPU120は、撮像装置102の原稿読取制御、第1インタフェース装置101を介した情報処理装置200とのデータ送受信制御等を行う。
【0022】
情報処理装置200は、第2インタフェース装置201と、入力装置202と、表示装置203と、第2記憶装置210と、第2CPU220と、処理回路230とを有する。以下、情報処理装置200の各部について詳細に説明する。
【0023】
第2インタフェース装置201は、画像読取装置100の第1インタフェース装置101と同様のインタフェース回路を有し、情報処理装置200と画像読取装置100とを接続する。また、第2インタフェース装置201の代わりに、無線信号を送受信するアンテナと、無線LAN等の所定の通信プロトコルに従って、無線通信回線を通じて信号の送受信を行うための無線通信インタフェース回路とを有する通信装置が用いられてもよい。
【0024】
入力装置202は、キーボード、マウス等の入力装置及び入力装置から信号を取得するインタフェース回路を有し、利用者の操作に応じた信号を第2CPU220に出力する。
【0025】
表示装置203は、出力部の一例である。表示装置203は、液晶、有機EL(Electro-Luminescence)等から構成されるディスプレイ及びディスプレイに画像データを出力するインタフェース回路を有する。表示装置203は、第2CPU220からの指示に従って、画像データをディスプレイに表示する。
【0026】
第2記憶装置210は、画像読取装置100の第1記憶装置110と同様のメモリ装置、固定ディスク装置、可搬用の記憶装置等を有する。第2記憶装置210には、情報処理装置200の各種処理に用いられるコンピュータプログラム、データベース、テーブル等が格納される。コンピュータプログラムは、例えばCD-ROM、DVD-ROM等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて第2記憶装置210にインストールされてもよい。また、第2記憶装置210は、住所辞書テーブル等を記憶する。住所辞書テーブルの詳細については後述する。
【0027】
第2CPU220は、予め第2記憶装置210に記憶されているプログラムに基づいて動作する。なお、第2CPU220に代えて、DSP、LSI、ASIC、FPGA等が用いられてもよい。
【0028】
第2CPU220は、第2インタフェース装置201、入力装置202、表示装置203、第2記憶装置210及び処理回路230等と接続され、これらの各部を制御する。第2CPU220は、第2インタフェース装置201を介した画像読取装置100とのデータ送受信制御、入力装置202の入力制御、表示装置203の表示制御、処理回路230による画像処理の制御等を行う。また、第2CPU220は、入力画像から入力文字列を取得し、住所辞書テーブルに基づいて補正する。
【0029】
処理回路230は、入力画像に対して所定の画像処理を実行する。処理回路230は、CPU、DSP、LSI、ASIC又はFPGA等で構成される。
【0030】
図2は、第2記憶装置210及び第2CPU220の概略構成を示す図である。
【0031】
図2に示すように第2記憶装置210には、取得プログラム211、第1文字抽出プログラム212、第1候補抽出プログラム213、第2文字抽出プログラム214、第2候補抽出プログラム215、補正プログラム216及び出力制御プログラム217等の各プログラムが記憶される。これらの各プログラムは、プロセッサ上で動作するソフトウェアにより実装される機能モジュールである。第2CPU220は、第2記憶装置210に記憶された各プログラムを読み取り、読み取った各プログラムに従って動作する。これにより、第2CPU220は、取得部221、第1文字抽出部222、第1候補抽出部223、第2文字抽出部224、第2候補抽出部225、補正部226及び出力制御部227として機能する。
【0032】
図3は、住所辞書テーブルのデータ構造の一例を示す模式図である。
【0033】
図3に示すように、住所辞書テーブルには、住所を表示するための各住所要素が、最も広域側の第1階層から下位の階層に向けて、複数の階層に分けて記憶される。即ち、住所辞書テーブルは、木構造を有している。各住所要素は、国毎に定められた住所の表記方法に従って区分される住所の要素であり、日本では、住居表示に関する法律で規定される都道府県名、郡名、市名、区名、町名、村名、字(あざ)名及び他の地名等である。住所辞書テーブルには、二つ以上の階層が含まれる。第1階層は、最上位階層であり、都道府県名を規定する階層である。第2階層は、第1階層の次の(下位の)階層であり、第1階層で規定された名称(都道府県名)に関連付けて、各名称に続く郡名、市名、区名、町名、村名又は字名等を規定する階層である。第3階層は、第2階層の次の階層であり、第2階層で規定された名称(郡名、市名、区名、町名、村名又は字名等)に関連付けて、各名称に続く区名、町名、村名、字名又は他の地名等を規定する階層である。第4階層以下の各階層は、それぞれ、直前の(上位の)階層で規定された名称に関連付けて、各名称に続く字名又は他の地名等を規定する階層である。
【0034】
図4及び
図5は、情報処理装置200による補正処理の動作を示すフローチャートである。以下、
図4及び
図5に示したフローチャートを参照しつつ、補正処理の動作を説明する。なお、以下に説明する動作のフローは、予め第2記憶装置210に記憶されているプログラムに基づき主に処理回路230により情報処理装置200の各要素と協同して実行される。なお、補正処理が実行される前に、画像読取装置100の撮像装置102は、手書き住所等の手書き文字が含まれる帳票、特に文字を記入するための文字枠が含まれない帳票を撮像した入力画像を生成している。第1CPU120は、生成された入力画像を、第1インタフェース装置101を介して情報処理装置200に送信している。
【0035】
最初に、取得部221は、入力画像から検出された入力文字列を取得する(ステップS101)。取得部221は、第2インタフェース装置201を介して画像読取装置100から手書き文字が含まれる入力画像を取得し、公知のOCR技術を利用して、取得した入力画像から文字を検出し、検出した各文字を含む入力文字列を取得する。なお、取得部221の代わりに画像読取装置100の第1CPU120が入力画像から入力文字列を検出し、取得部221は、第2インタフェース装置201を介して画像読取装置100から入力文字列を取得してもよい。
【0036】
【0037】
図6に示す例では、入力画像600に「かほく市宇野気ヌ98-2」という手書き住所が写っている。即ち、この手書き住所には「かほく市」という市名601と、「宇野気」という大字(おおあざ)名602とが含まれており、「石川県」という県名は含まれていない。また、この手書き住所では「か」の一部603と「ほ」の一部604とが重なっている。さらに、この手書き住所では「気」の左側に消し跡によるノイズ605が写っている。そのため、この例では、「ほ」が誤って「ま」と検出され、「気」が誤って「汽」と検出され、入力文字列として「かまく市宇野汽ヌ98-2」が取得されるものとする。
【0038】
次に、第1文字抽出部222は、取得部221により取得された入力文字列から第1文字列群を抽出する(ステップS102)。第1文字列群には、複数の第1文字列が含まれる。各第1文字列には、入力文字列の先頭からn番目までの文字がそれぞれ含まれる。即ち、第1文字列群には、それぞれ入力文字列の先頭から連続し且つ文字数が相互に異なる複数の第1文字列が含まれる。nは1から2以上の所定の数までの整数である。所定の数は、第1階層に含まれる各住所要素の最大文字数にマージンを加えた数に設定され、例えば6に設定される。上記したように、入力画像には手書き文字が含まれており、帳票に記入した人物の筆跡によっては一文字が複数の文字に分割して検出される可能性がある(例えば「野」が「里」及び「予」として検出される)。所定の数が住所要素の最大文字数にマージンを加えた数に設定されることにより、一文字が複数の文字に分割して検出された場合でも、第1文字列群には各住所要素に対応する文字列が良好に含まれる。なお、入力文字列に含まれる文字数が所定の数未満である場合、第1文字抽出部222は、入力文字列に含まれる文字数以下の第1文字列のみを抽出する。
【0039】
例えば、所定の数が6である場合、第1文字列群には「か」「かま」「かまく」「かまく市」「かまく市宇」「かまく市宇野」の6つの第1文字列が含まれる。
【0040】
次に、第1候補抽出部223は、抽出された第1文字列群に含まれる全ての第1文字列と、第1階層及び第2階層に含まれる全ての住所要素とを比較する(ステップS103)。例えば、第1候補抽出部223は、各第1文字列と各住所要素とのレーベンシュタイン距離を用いて、各第1文字列を各住所要素と比較する。レーベンシュタイン距離は、二つの文字列がどの程度異なっているかを示す距離の一種であり、1文字の挿入、削除又は置換によって、一方の文字列を他方の文字列に変形するために必要な手順の最小回数である。情報処理装置200は、レーベンシュタイン距離を用いることにより、補正処理の処理負荷を低減させつつ、各文字列と各住所要素の一致度合いを高精度に特定することができる。
【0041】
第1文字列「か」「かま」「かまく」「かまく市」「かまく市宇」「かまく市宇野」のそれぞれと住所要素「かほく市」とのレーベンシュタイン距離はそれぞれ3、3、2、1、2、3である。また、第1文字列「か」「かま」「かまく」「かまく市」「かまく市宇」「かまく市宇野」のそれぞれと、住所要素「石川県」のように、第1文字列内の文字と全く一致しない3文字の住所要素とのレーベンシュタイン距離はそれぞれ3、3、3、4、5、6である。
【0042】
次に、第1候補抽出部223は、第1階層及び第2階層に含まれる全ての住所要素の中から、第1文字列群に含まれる第1文字列の何れかに最も近似した第1住所要素候補を抽出する(ステップS104)。例えば、第1候補抽出部223は、第1文字列群に含まれる第1文字列の何れかとのレーベンシュタイン距離が最小となる住所要素を第1住所要素候補として抽出する。なお、第1候補抽出部223は、レーベンシュタイン距離が最小となる第1文字列と住所要素の組合せが複数存在する場合、即ちレーベンシュタイン距離が同点で最小となる組合せが存在する場合、各組合せに係る各住所要素を第1住所要素候補として抽出する。
【0043】
上記の例では、第1文字列「かまく市」とのレーベンシュタイン距離が1である第2階層の住所要素「かほく市」が第1住所要素候補として抽出される。
【0044】
以下のステップS105~S108の処理は、第1候補抽出部223により抽出された第1住所要素候補とその第1住所要素候補を抽出する基礎となった第1文字列との組合せ毎に実行される。
【0045】
まず、第2文字抽出部224は、入力文字列から部分文字列を抽出する(ステップS105)。第2文字抽出部224は、第1住所要素候補を抽出する基礎となった第1文字列を入力文字列から除くことにより、部分文字列を抽出する。
【0046】
上記の例では、入力文字列「かまく市宇野汽ヌ98-2」から、第1住所要素候補「かほく市」を抽出する基礎となった第1文字列「かまく市」を除いた「宇野汽ヌ98-2」が部分文字列として抽出される。
【0047】
次に、第2文字抽出部224は、抽出した部分文字列から第2文字列群を抽出する(ステップS106)。第2文字列群には、複数の第2文字列が含まれる。各第2文字列には、部分文字列の先頭からm番目までの文字がそれぞれ含まれる。即ち、第2文字列群には、それぞれ部分文字列の先頭から連続し且つ文字数が相互に異なる複数の第2文字列が含まれる。mは1から2以上の所定の数までの整数である。所定の数は、第1住所要素候補を含む階層の次の階層に含まれ且つその第1住所要素候補と関連した各住所要素の最大文字数にマージンを加えた数に設定され、例えば6に設定される。mの最大数は、nの最大数と同一の値に設定されてもよいし、nの最大数と異なる値に設定されてもよい。なお、部分文字列に含まれる文字数が所定の数未満である場合、第2文字抽出部224は、部分文字列に含まれる文字数以下の第2文字列のみを抽出する。
【0048】
例えば、所定の数が6である場合、第2文字列群には「宇」「宇野」「宇野汽」「宇野汽ヌ」「宇野汽ヌ9」「宇野汽ヌ98」の6つの第2文字列が含まれる。
【0049】
次に、第2候補抽出部225は、抽出された第2文字列群に含まれる全ての第2文字列と、抽出された第1住所要素候補を含む階層の次の階層に含まれ且つその第1住所要素候補と関連した全ての住所要素とを比較する(ステップS107)。即ち、第2候補抽出部225は、抽出された第1住所要素候補が第1階層の住所要素である場合、各第2文字列と、その第1住所要素候補に関連付けられた第2階層の全ての住所要素とを比較する。一方、第2候補抽出部225は、抽出された第1住所要素候補が第2階層の住所要素である場合、各第2文字列と、その第1住所要素候補に関連付けられた第3階層の全ての住所要素とを比較する。例えば、第2候補抽出部225は、第1候補抽出部223と同様に、各第2文字列と各住所要素とのレーベンシュタイン距離を用いて、各第2文字列を各住所要素と比較する。
【0050】
上記の例では、第2文字列「宇」「宇野」「宇野汽」「宇野汽ヌ」「宇野汽ヌ9」「宇野汽ヌ98」のそれぞれと、第2階層の住所要素「かほく市」と関連付けられた第3階層の全ての住所要素とのレーベンシュタイン距離が算出される。
【0051】
次に、第2候補抽出部225は、比較対象の全ての住所要素の中から、第2文字列群に含まれる第2文字列の何れかに最も近似した第2住所要素候補を抽出する(ステップS108)。例えば、第2候補抽出部225は、第1候補抽出部223と同様に、第2文字列群に含まれる第2文字列の何れかとのレーベンシュタイン距離が最小となる住所要素を第2住所要素候補として抽出する。なお、第2候補抽出部225は、算出したレーベンシュタイン距離の最小値が、その階層の住所要素候補の文字数の最小値以上である場合、第2住所要素候補を抽出しない。また、第2候補抽出部225は、レーベンシュタイン距離が最小となる住所要素と住所要素の組合せが複数存在する場合、各組合せに係る各住所要素を第2住所要素候補として抽出する。
【0052】
上記の例では、第2文字列「宇野汽」とのレーベンシュタイン距離が1である第3階層の住所要素「宇野気」が第2住所要素候補として抽出される。
【0053】
このように、第2文字抽出部224は、第1候補抽出部223により第1住所要素候補が複数抽出された場合、複数の第1住所要素候補のそれぞれに対して第2文字列群を抽出する。また、第2候補抽出部225は、第2文字抽出部224により抽出された第2文字列群のそれぞれに対して第2住所要素候補を抽出する。これにより、情報処理装置200は、先頭側の文字列において混同が生じる可能性が高い場合に、後方側の文字列を用いて正しい住所を特定することができる。
【0054】
また、第2文字抽出部224は、レーベンシュタイン距離が最小となる第1文字列と住所要素の組合せが複数存在する場合、各組合せに係る第1文字列を除いた各部分文字列から第2文字列群を抽出する。これにより、情報処理装置200は、入力文字列の先頭側において住所要素に対応する文字列のサイズの特定が困難な場合に、それぞれ異なる複数のサイズに対応するように下位階層を探索するため、住所を誤って特定することを防止できる。
【0055】
次に、第2文字抽出部224は、第2候補抽出部225により第2住所要素候補が抽出されたか否かを判定する(ステップS109)。
【0056】
第2住所要素候補が抽出された場合、第2文字抽出部224は、第2住所要素候補の抽出位置が入力文字列の最後尾に達したか否かを判定する(ステップS110)。第2文字抽出部224は、第2候補抽出部225により直前に抽出された第2住所要素候補を抽出する基礎となった第2文字列の最後尾の文字が入力文字列の最後尾の文字である場合、第2住所要素候補の抽出位置が入力文字列の最後尾に達したと判定する。
【0057】
上記の例では、第2住所要素候補「宇野気」を抽出する基礎となった第2文字列「宇野汽」の最後尾の文字「汽」は入力文字列「かまく市宇野汽ヌ98-2」の最後尾の文字「2」でないため、第2住所要素候補の抽出位置は入力文字列の最後尾に達していない。なお、入力文字列が「かまく市宇野汽」であった場合は、第2住所要素候補として「宇野気」が抽出されたときに、第2住所要素候補の抽出位置が入力文字列の最後尾に達したと判定される。
【0058】
第2住所要素候補の抽出位置が入力文字列の最後尾に達していない場合、第2文字抽出部224は、第2住所要素候補を含む階層の次の階層が存在するか否かを判定する(ステップS111)。第2文字抽出部224は、住所辞書テーブルにおいて、直前に抽出された第2住所要素候補が含まれる階層の次の階層に、その第2住所要素候補に関連付けられた住所要素が記憶されていない場合、第2住所要素候補を含む階層の次の階層が存在しないと判定する。
【0059】
上記の例では、第2住所要素候補「宇野気」が含まれる第3階層の次の第4階層には「宇野気」に関連付けられた住所要素が記憶されていないため、第2住所要素候補を含む階層の次の階層が存在しないと判定される。なお、第4階層において「宇野気」に関連付けられた住所要素として「チ」「リ」「ヌ」等が記憶されている場合は、第2住所要素候補を含む階層の次の階層が存在すると判定される。
【0060】
第2住所要素候補を含む階層の次の階層が存在する場合、第2文字抽出部224は、処理をステップS112へ移行する。以下のステップS112~S115の処理は、第2候補抽出部225により直前に抽出された第2住所要素候補とその第2住所要素候補を抽出する基礎となった第2文字列との組合せ毎に実行される。
【0061】
まず、第2文字抽出部224は、現在の部分文字列から新たな部分文字列を抽出する(ステップS112)。第2文字抽出部224は、現在の部分文字列から、第2候補抽出部225により直前に抽出された第2住所要素候補を抽出する基礎となった第2文字列をさらに除くことにより、新たな部分文字列を抽出する。
【0062】
次に、第2文字抽出部224は、ステップS106の処理と同様にして、新たに抽出した部分文字列から次の第2文字列群を抽出する(ステップS113)。この第2文字列群に含まれる各第2文字列には、新たに抽出した部分文字列の先頭からm番目までの文字がそれぞれ含まれる。このmの最大数は、直前に抽出された第2住所要素候補を含む階層の次の階層に含まれ且つその第2住所要素候補と関連した各住所要素の最大文字数にマージンを加えた数に設定される。
【0063】
次に、第2候補抽出部225は、抽出された次の第2文字列群に含まれる全ての第2文字列と、直前に抽出された第2住所要素候補を含む階層の次の階層に含まれ且つその第2住所要素候補と関連した全ての住所要素とを比較する(ステップS114)。例えば、第2候補抽出部225は、ステップS107の処理と同様に、各第2文字列と各住所要素とのレーベンシュタイン距離を用いて、各第2文字列を各住所要素と比較する。
【0064】
なお、第2候補抽出部225は、第2文字列を第2階層より下位の階層に含まれる住所要素と比較する場合、さらに、第2文字列を、各住所要素に、特に各住所要素の前後に、大字(おおあざ)、字(あざ)又は小字(こあざ)を加えた文字列と比較してもよい。日本で規定される住所には、町、村、字名の前後に「大字」、「字」又は「小字」という文字が追加されている場合がある。情報処理装置200は、各住所要素に「大字」、「字」又は「小字」を加えてから第2文字列と比較することにより、各住所要素に「大字」、「字」又は「小字」を加えた文字列を、各住所要素とは別個に登録しておく必要がなくなる。そのため、情報処理装置200は、第2記憶装置210の記憶容量を増大させることなく、入力文字列に対応する住所を高精度に特定することができる。
【0065】
次に、第2候補抽出部225は、比較対象の全ての住所要素の中から、抽出された次の第2文字列群に含まれる第2文字列の何れかに最も近似した第2住所要素候補を新たに抽出する(ステップS115)。例えば、第2候補抽出部225は、ステップS108の処理と同様に、第2文字列群に含まれる第2文字列の何れかとのレーベンシュタイン距離が最小となる住所要素を第2住所要素候補として抽出する。
【0066】
このように、第2文字抽出部224は、第2住所要素候補の抽出位置が入力文字列の最後尾に達するまで、又は、第2住所要素候補を含む階層の次の階層が存在しなくなるまで、繰り返し第2文字列群を抽出する。また、第2候補抽出部225は、繰り返し抽出された各第2文字列群に対して、さらに第2住所要素候補を抽出する。これにより、情報処理装置200は、入力文字列と住所辞書テーブルに登録された各住所要素とを、可能な限り広範囲にわたって比較することが可能となり、入力文字列に対応する住所を高精度に特定することができる。
【0067】
また、第2文字抽出部224は、第2住所要素候補が複数抽出された場合、複数の第2住所要素候補のそれぞれに対して第2文字列群を抽出し、第2候補抽出部225は、抽出された第2文字列群のそれぞれに対して第2住所要素候補を抽出する。これにより、情報処理装置200は、探索中の文字列において混同が生じる可能性が高い場合に、後方側の文字列を用いて正しい住所を特定することができる。
【0068】
また、第2文字抽出部224は、レーベンシュタイン距離が最小となる住所要素と住所要素の組合せが複数存在する場合、各組合せに係る第2文字列を除いた各部分文字列から第2文字列群を抽出する。これにより、情報処理装置200は、入力文字列の探索中の位置において住所要素に対応する文字列のサイズの特定が困難な場合に、それぞれ異なる複数のサイズに対応するように下位階層を探索するため、住所を誤って特定することを防止できる。
【0069】
一方、第2住所要素候補が抽出されなかった場合、第2住所要素候補の抽出位置が入力文字列の最後尾に達した場合、又は、第2住所要素候補を含む階層の次の階層が存在しない場合、補正部226は、入力文字列を補正する(ステップS116)。補正部226は、抽出された第1住所要素候補及び各第2住所要素候補に基づいて、入力文字列を補正する。
【0070】
補正部226は、まず、第2候補抽出部225により最後に抽出された第2住所要素候補を特定する。なお、最後に抽出された第2住所要素候補が複数存在する場合、補正部226は、何れか一つの第2住所要素候補のみを選択する。その場合、補正部226は、どのように第2住所要素候補を選択してもよく、例えば住所辞書テーブルにおいて最も先頭側に記憶された第2住所要素候補を選択する。次に、補正部226は、住所辞書テーブルを参照し、特定又は選択した第2住所要素候補が含まれる階層より上位の各階層において、その第2住所要素候補に関連付けられた、第1住所要素候補及び第2住所要素候補を含む全ての住所要素を特定する。補正部226は、その第2住所要素候補の階層から上位階層側に向かって住所辞書テーブルを走査し、その第2住所要素候補の階層から最上位階層までの各階層において、その第2住所要素候補に関連付けられた各住所要素を特定する。
【0071】
補正部226は、入力文字列において、第1住所要素候補及び各第2住所要素候補を抽出する基礎となった第1文字列及び各第2文字列をそれぞれ第1住所要素候補及び各第2住所要素候補に置換する。また、補正部226は、特定した住所要素の内、第1住所要素候補及び第2住所要素候補として抽出されていない住所要素を入力文字列の対応する位置に追加する。
【0072】
上記の例では、最後に抽出された第3階層の第2住所要素候補「宇野気」に関連付けられた住所要素として、第2階層の住所要素「かほく市」及び第1階層の住所要素「石川県」が特定される。入力文字列「かまく市宇野汽ヌ98-2」において、第1文字列「かまく市」が第1住所要素候補「かほく市」に置換され、第2文字列「宇野汽」が第2住所要素候補「宇野気」に置換され、「ヌ98-2」は補正されない。また、第1住所要素候補及び第2住所要素候補として抽出されていない住所要素「石川県」が、入力文字列において第1住所要素候補の「かほく市」の前に追加される。その結果、入力文字列は「石川県かほく市宇野気ヌ98-2」に補正される。
【0073】
補正部226は、入力文字列の途中で第2住所要素候補が抽出されなかった場合、即ち入力文字列に対応する全ての住所要素を特定できなかった場合、住所要素を特定できた文字列より先頭側の文字列のみを補正する。これにより、補正部226は、入力文字列に対応する住所を一意に特定できなかった場合でも可能な範囲で入力文字列を補正しつつ、入力文字列を誤って補正(過補正)してしまうことを抑制できる。
【0074】
次に、出力制御部227は、補正された入力文字列を表示装置203に表示し(ステップS117)、一連のステップを終了する。なお、出力制御部227は、補正された入力文字列を不図示の通信装置を介して不図示のサーバ等に送信してもよい。このように、出力制御部227は、補正された入力文字列を出力する。
【0075】
以下、情報処理装置200による補正処理の技術的意義について説明する。
【0076】
例えば、住所辞書として、それぞれ都道府県名から町名、字名までを階層化せずに一貫して含む住所が使用される場合、住所辞書に含まれる各住所において都道府県名及び郡市名等が重複し、住所辞書のデータサイズが膨大になる。その場合、住所辞書に含まれる各住所のデータサイズが大きくなるため、入力文字列と住所辞書に含まれる各住所との比較に要する時間も増大する。情報処理装置200は、住所要素を複数の階層に分けて記憶し、入力文字列に対する住所要素の比較を階層毎に行うため、記憶容量の増大を抑制しつつ、入力文字列に対応する住所を短時間に特定することができる。
【0077】
また、手書き住所が記載された帳票では、都道府県名が省略される可能性が高く、そのような帳票に含まれる住所を正しく特定するためには、住所辞書として、都道府県名が含まれる住所と都道府県名が含まれない住所の二種類の住所を使用する必要がある。その場合、住所辞書のデータサイズがさらに膨大になるとともに、比較に要する時間もさらに増大する。情報処理装置200は、住所要素を複数の階層に分けて記憶し、入力文字列に対する住所要素の比較を階層毎に行うため、都道府県名が含まれない入力文字列内の各文字列を、都道府県名の階層より下位の階層の各住所要素と適切に比較することができる。したがって、情報処理装置200は、記憶容量の増大を抑制しつつ、入力文字列に対応する住所を短時間に特定することができる。
【0078】
また、入力文字列に対応する住所を特定する際に、上位階層の住所要素が誤って特定されると、その後、下位階層の住所要素の探索が誤った方向に向かって進行するため、正しい住所が特定されるまでに長時間を要してしまう。そのため、入力文字列に対応する住所を正しく特定するための時間を低減させるためには、上位階層の住所要素を正しく特定することが重要である。特に、手書き住所が記載された帳票では、上位階層に対応する都道府県名が省略されている可能性がある。さらに、日本の住所では「富山県富山市」のように、市名として都道府県名と同一の名称が使用されている場合がある。情報処理装置200は、上位階層の住所要素として、都道府県名に対応する第1階層の全ての住所要素に加えて、市名に対応する第2階層の全ての住所要素に対して探索を実施するため、都道府県名が省略された場合でも、上位階層の住所要素を正しく特定できる。結果として、情報処理装置200は、入力文字列に対応する住所を特定するための時間を低減させることができる。
【0079】
また、手書き住所が含まれる帳票、特に文字枠が含まれない帳票では、記入者の筆跡によっては一文字が複数の文字に分割して検出される可能性がある。情報処理装置200は、文字数が相互に異なる複数の第1文字列に対して探索を行うため、一文字が複数の文字に分割して検出された場合でも、上位階層の住所要素を正しく特定できる。結果として、情報処理装置200は、入力文字列に対応する住所を特定するための時間を低減させることができる。
【0080】
また、手書き住所が含まれる帳票では、記入者のミス等により、下位階層に対応する郡名、市名、町名、村名又は字名等が記載されていない可能性もある。上位階層において類似性が高いと判定された住所要素に対応する下位階層の住所要素の中に類似性が高い住所要素が存在しない場合に、さらに下位階層を探索するようにアルゴリズムを構成した場合、ミスがない帳票に対しても膨大な量の探索が行われることになる。情報処理装置200は、入力文字列の途中で第2住所要素候補が抽出されなかった場合、その時点で探索を終了し、住所要素を特定できた文字列のみを補正するため、処理時間が増大することを抑制できる。
【0081】
また、情報処理装置200は、入力文字列内の先頭の文字列を上位階層の全ての住所要素と比較して第1住所要素候補を抽出した上で、第1住所要素候補に対応する下位階層の住所要素との比較を行っていく。即ち、情報処理装置200は、上位階層から下位階層に向かって階層毎に各住所要素を探索していく幅優先探索により、木構造を有する住所辞書テーブルを探索する。但し、情報処理装置200は、幅優先探索において、入力文字列内の各文字列を、住所辞書テーブルに記憶された全ての住所要素と比較するのでなく、上位階層から下位階層に向けて各階層の住所要素を順次絞っていく。そのため、情報処理装置200は、入力文字列に対して粗密探索を行って、効率良く且つ短時間に住所を特定できる。
【0082】
一般に、木構造を有するテーブルの探索方式として、幅優先探索以外に、深さ優先探索が利用されている。深さ優先探索では、最上位階層の住所要素から末端の住所要素(次の階層の住所要素が存在しない住所要素)に達するまで、対応する住所要素が順次探索され、その後、バックトラックして最も近くの探索されていない住所要素まで戻る。以後、同様にして、探索が繰り返される。但し、手書き住所が含まれる帳票では、記入者の筆跡等によっては、文字が正しく検出されない可能性がある。また、手書き住所が含まれる帳票では、上位階層に対応する都道府県名が省略される可能性、及び、記入者のミス等により下位階層に対応する郡名、市名、町名、村名又は字名が記載されない可能性もある。
【0083】
そのため、深さ優先探索では、探索途中で類似度が高い住所要素のセットが検出された場合でも、より類似度が高い住所要素のセットが他に存在する可能性があり、少なくとも最上位階層の全ての住所要素に対しては探索が行われるべきである。即ち、深さ優先探索では、せっかく末端の住所要素に達するまで探索を行っても、最終的にその住所要素のセットは入力文字列に対応しないと判定される可能性が高く、結果として正しい住所が特定されるまでに長時間を要する可能性が高い。一方、幅優先探索では、最初に上位階層の全ての住所要素との比較が行われるため、下位階層の住所要素との比較が行われる前に、上位階層の住所要素の中で最も適切な住所要素(文字列に最も近似した住所要素)が特定される。そのため、幅優先探索では、下位階層の住所要素との比較が無駄になる可能性が低く、情報処理装置200は、効率良く且つ短時間に住所を特定することができる。
【0084】
また、深さ優先探索では、最終的に候補として抽出された住所要素のセットの中で、類似度が最も高い住所要素のセットを抽出する必要がある。特に、各セットに含まれる全ての住所要素の類似度に基づいて住所要素のセットを抽出する場合、その抽出に長時間がかかる。一方、幅優先探索では、上位階層から下位階層に向けて徐々に住所要素を絞っていくため、住所要素が最後に抽出された階層における各住所要素の類似度のみに注目して適切に住所を特定することができ、補正処理全体の処理時間を低減させることができる。
【0085】
以下、特定の入力文字列に対して本実施形態の補正処理を適用した場合の例について説明する。
【0086】
第1例として「石川県羽咋郡志賀町矢蔵谷ラ1-103」という住所に対して、入力文字列が「石川鼎羽咋紙志贄町#*△ラ1-103」であった場合について説明する。この場合、ステップS104において、第1文字列「石川鼎」に対して、第1階層の住所要素「石川県」と第2階層の住所要素「石川郡」(福島県石川郡)とが第1住所要素候補として抽出された。ステップS107において、各第2文字列と、住所要素「石川県」と関連する第2階層の住所要素「金沢市」「かほく市」「羽咋市」「羽咋郡」等及び住所要素「石川郡」と関連する第3階層の住所要素「石川町」「玉川町」「平田村」「浅川町」等とが比較された。その結果、ステップS108において、第2文字列「羽咋紙」に対して、第2階層の住所要素「羽咋市」と「羽咋郡」とが第2住所要素候補として抽出された。
【0087】
また、ステップS114において、次の第2文字列と、住所要素「羽咋市」と関連する第3階層の各住所要素、及び、住所要素「羽咋郡」と関連する第3階層の各住所要素とが比較された。その結果、ステップS115において、第3文字列「志贄町」に対して、第3階層の住所要素「志賀町」が第2住所要素候補として新たに抽出された。さらにステップS114に戻り、次の第2文字列と、住所要素「志賀町」と関連する第4階層の各住所要素とが比較されたが、ステップS115では、第2文字列「#*△」等に対して第2住所要素候補は抽出されなかった。そして、ステップS116において、入力文字列「石川鼎羽咋紙志贄町#*△ラ1-103」が「石川県羽咋郡志賀町#*△ラ1-103」に補正された。
【0088】
第2例として「宮崎市恒久582」という住所に対して、入力文字列が「宮山奇市恒ク582」であった場合について説明する。この場合、ステップS102において、「宮」「宮山」「宮山奇」「宮山奇市」「宮山奇市恒」「宮山奇市恒ク」の6つの第1文字列が抽出された。ステップS104において、第1文字列「宮山奇市」に対して、「亀山市」「宮津市」「篠山市」「山武市」「流山市」「館山市」「狭山市」「宮崎市」「富山市」「山口市」「上山市」「山形市」「村山市」「山梨市」「山県市」「高山市」「岡山市」「津山市」「宮古市」「福山市」「松山市」「犬山市」「小山市」「守山市」「山鹿市」「白山市」「勝山市」「宮若市」「郡山市」「飯山市」の30個の住所要素が第1住所要素候補として抽出された。また、ステップS108において、第2文字列「恒ク」に対して住所要素「宮崎市」と関連する第3階層の住所要素「恒久」が第2住所要素候補として抽出された。そして、ステップS116において、住所要素「恒久」から第1階層の住所要素「宮崎県」が特定され、入力文字列「宮山奇市恒ク582」が「宮崎県宮崎市恒久582」に補正された。
【0089】
第2例では、「崎」が「山」と「奇」の2文字に分割されて検出され、正しい住所要素「宮崎市」に対して、第1文字列は「宮山奇市」となっている。そのため、第1文字列では分割されて検出された「山」と「奇」以降の各文字の位置が、正しい住所要素に対してずれてしまう。即ち、第1文字列において、文字「市」は、正しく検出されているにも関わらず、3文字目でなく4文字目に配置される。したがって、同一位置毎に第1文字列内の各文字と住所要素内の各文字とを比較すると、第1文字列内の「市」と住所要素内の「市」も一致しないとみなされる。一方、情報処理装置200は、レーベンシュタイン距離を用いて、入力文字列内の各文字列と各住所要素とを比較する。レーベンシュタイン距離は、1文字の挿入、削除又は置換によって一方の文字列を他方の文字列に変形するために必要な手順の最小回数である。そのため、第1文字列と住所要素において相互に対応する文字の順序が一致していれば、位置が一致していなくてもレーベンシュタイン距離は短くなる。したがって、情報処理装置200は、一部の文字が分割されて検出された場合でも、第1文字列と各住所要素の一致度合いを高精度に特定することができる。
【0090】
また、第2例では、第1住所要素候補として30個の住所要素が抽出されている。そのため、深さ優先探索では、30個の住所要素のそれぞれに対して、末端の住所要素に達するまで探索が繰り返され、トータルとして1000個近くの住所要素との比較が行われる。一方、情報処理装置200は、幅優先探索で探索を行う。幅優先探索では、各第1住所要素候補の次の階層(第3階層)において200~300個程度の住所要素との比較が行われ、第2住所要素候補は住所要素「恒久」のみに絞られる。したがって、情報処理装置200は、深さ優先探索で探索を行う場合と比較して、補正処理の処理負荷及び処理時間を低減させることができる。
【0091】
以上詳述したように、情報処理装置200は、入力文字列の先頭からn番目までの文字を含む各第1文字列を第1階層及び第2階層の全ての住所要素と比較して第1住所要素候補を抽出する。そして、情報処理装置200は、対応する第1文字列以降の第2文字列を次の階層の住所要素と比較して第2住所要素候補を抽出する。これにより、情報処理装置200は、入力文字列内の先頭の文字列に対応する住所要素を精度良く特定することが可能となった。そのため、情報処理装置200は、誤って特定した住所要素に関連付けられた住所要素を探索していくことを抑制し、結果として入力文字列に対応する住所を短時間に特定することが可能となった。即ち、情報処理装置200は、入力画像から検出された入力文字列を短時間且つ高精度に補正することが可能となった。
【0092】
図7は、他の実施形態に係る情報処理装置における処理回路330の概略構成を示すブロック図である。
【0093】
処理回路330は、処理回路230の代わりに使用され、CPU220の代わりに、補正処理を実行する。処理回路330は、取得回路331、第1文字抽出回路332、第1候補抽出回路333、第2文字抽出回路334、第2候補抽出回路335、補正回路336及び出力制御回路337等を有する。
【0094】
取得回路331は、取得部の一例であり、取得部221と同様の機能を有する。取得回路331は、第2インタフェース装置201を介して画像読取装置100から入力画像を取得し、入力画像から入力文字列を取得し、第2記憶装置210に保存する。
【0095】
第1文字抽出回路332は、第1文字抽出部の一例であり、第1文字抽出部222と同様の機能を有する。第1文字抽出回路332は、第2記憶装置210から入力文字列を読み出し、入力文字列から第1文字列群を抽出し、第2記憶装置210に保存する。
【0096】
第1候補抽出回路333は、第1候補抽出部の一例であり、第1候補抽出部223と同様の機能を有する。第1候補抽出回路333は、第2記憶装置210から第1文字列群及び住所辞書テーブルを読み出し、読み出した各情報に基づいて第1住所要素候補を抽出し、第2記憶装置210に保存する。
【0097】
第2文字抽出回路334は、第2文字抽出部の一例であり、第2文字抽出部224と同様の機能を有する。第2文字抽出回路334は、第2記憶装置210から入力文字列及び第1住所要素候補を読み出し、入力文字列から第2文字列群を抽出し、第2記憶装置210に保存する。
【0098】
第2候補抽出回路335は、第2候補抽出部の一例であり、第2候補抽出部225と同様の機能を有する。第2候補抽出回路335は、第2記憶装置210から第2文字列群及び住所辞書テーブルを読み出し、読み出した各情報に基づいて第2住所要素候補を抽出し、第2記憶装置210に保存する。
【0099】
補正回路336は、補正部の一例であり、補正部226と同様の機能を有する。補正回路336は、第2記憶装置210から入力文字列、第1住所要素候補、第2住所要素候補及び住所辞書テーブルを読み出し、読み出した各情報に基づいて入力文字列を補正し、補正した入力文字列を第2記憶装置210に保存する。
【0100】
出力制御回路337は、出力制御部の一例であり、出力制御部227と同様の機能を有する。出力制御回路337は、第2記憶装置210から補正した入力文字列を読み出し、表示装置203に出力する。
【0101】
以上詳述したように、情報処理装置は、処理回路330を用いる場合も、入力画像から検出された入力文字列を短時間且つ高精度に補正することが可能となった。
【0102】
以上、好適な実施形態について説明してきたが、実施形態はこれらに限定されない。例えば、画像読取装置100と情報処理装置200の機能分担は、
図1に示す画像処理システム1の例に限られず、画像読取装置100及び情報処理装置200の各部を画像読取装置100と情報処理装置200の何れに配置するかは適宜変更可能である。または、画像読取装置100と情報処理装置200を一つの装置で構成してもよい。
【0103】
例えば、画像読取装置100の第1記憶装置110が、情報処理装置200の第2記憶装置210に記憶された各プログラムを記憶し、画像読取装置100の第1CPU120が、情報処理装置200の第2CPU120により実現される各部として動作してもよい。また、画像読取装置100が、情報処理装置200の処理回路230と同様の処理回路を有し、情報処理装置として動作してもよい。
【0104】
その場合、画像読取装置100は表示装置203と同様の表示装置を有し、補正処理は、画像読取装置100の第1CPU120又は処理回路によって実行される。これらの処理の動作は、情報処理装置200の第2CPU220又は処理回路330によって実行される場合と同様である。
【0105】
また、画像処理システム1において、第1インタフェース装置101と第2インタフェース装置201は、インターネット、電話回線網(携帯端末回線網、一般電話回線網を含む)、イントラネット等のネットワークを介して接続してもよい。その場合、第1インタフェース装置101及び第2インタフェース装置201に、接続するネットワークの通信インタフェース回路を備える。また、その場合、クラウドコンピューティングの形態で画像処理のサービスを提供できるように、ネットワーク上に複数の情報処理装置を分散して配置し、各情報処理装置が協働して、補正処理等を分担するようにしてもよい。これにより、画像処理システム1は、複数の画像読取装置が読み取った入力画像について、効率よく補正処理を実行できる。
【符号の説明】
【0106】
1 画像処理システム
200 情報処理装置
203 表示装置
210 第2記憶装置
221 取得部
222 第1文字抽出部
223 第1候補抽出部
224 第2文字抽出部
225 第2候補抽出部
226 補正部
227 出力制御部