(57)【要約】      （修正有）【課題】複数の標準文字の各々について複数の特徴点を記憶した記憶装置にアクセス可能な文字認識装置を提供する。【解決手段】文字認識装置３０は、複数の標準文字ｎの各々について複数の特徴点（輪郭点）を記憶した記憶装置４０にアクセス可能であって、認識対象文字の画像から複数の特徴点（輪郭点）を抽出する第１のモジュール（輪郭点抽出モジュール３１）と、第１のモジュールで抽出された複数の特徴点と複数の標準文字ｎの各々についての複数の特徴点と、の差を算出し、この差が人間の解像限界未満の所定値以下である標準文字ｎを認識結果とする第２のモジュール（判定モジュール３２）と、を備える。【選択図】図１
2020077396.tif 000002
【特許請求の範囲】
【請求項１】
複数の標準文字の各々について複数の特徴点を記憶した記憶装置にアクセス可能な文字認識装置であって、
認識対象文字の画像から複数の特徴点を抽出する第１のモジュールと、
前記第１のモジュールで抽出された複数の特徴点と、前記複数の標準文字の各々についての複数の特徴点と、の差を算出し、この差が人間の解像限界未満の所定値以下である標準文字を認識結果とする第２のモジュールと、
を備えた、文字認識装置。
【請求項２】
請求項１において、
前記第１のモジュールは、ビットマップ画像である前記認識対象文字の画像をベクタ画像に変換し、前記ベクタ画像から前記複数の特徴点を抽出する、
文字認識装置。
【請求項３】
複数の標準文字の各々について複数の特徴点を記憶した記憶装置にアクセス可能な文字認識装置であって、
ビットマップ画像である認識対象文字の画像をベクタ画像に変換し、前記ベクタ画像から第１の密度の複数の特徴点を抽出する第１のモジュールと、
前記第１のモジュールで抽出された複数の特徴点と、前記複数の標準文字の各々についての複数の特徴点と、の差を算出し、この差が一定値以下である標準文字を抽出する第２のモジュールと、
前記第２のモジュールで複数の標準文字が抽出された場合に、前記ベクタ画像の少なくとも一部から前記第１の密度より高い第２の密度の複数の特徴点を抽出する第３のモジュールと、
前記第３のモジュールで抽出された複数の特徴点と、前記第２のモジュールで抽出された標準文字の各々についての複数の特徴点と、の差を算出し、この差が人間の解像限界未満の所定値以下である標準文字を認識結果とする第４のモジュールと、
を備えた、文字認識装置。
【請求項４】
複数の標準文字の各々について輪郭線に沿って抽出された複数の輪郭点の位置と各輪郭点における前記輪郭線の方向とを記憶した記憶装置にアクセス可能な文字認識装置であって、
認識対象文字の画像から輪郭線に沿って抽出された複数の輪郭点の位置と各輪郭点における前記輪郭線の方向とを取得する第１のモジュールと、
前記第１のモジュールで取得された複数の輪郭点の前記位置及び前記方向と、前記複数の標準文字の各々についての複数の輪郭点の前記位置及び前記方向と、に基づいて前記複数の標準文字の各々について前記認識対象文字との差の評価値を算出し、この評価値が所定値以下である標準文字を認識結果とする第２のモジュールと、
を備えた、文字認識装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認識対象文字の画像に基づいて文字認識を行う文字認識装置に関する。
【背景技術】
【０００２】
諸橋轍次著「大漢和辞典」（大修館書店）の全文電子テキスト化が長年望まれている。「大漢和辞典」は、全１５巻、約１８０００ページに及び、全文の文字数は延べ約５０００万字と推定される。
【０００３】
日本工業規格（ＪＩＳ）が規定する漢字は、第１〜第４水準の漢字をすべて合計しても約１万字である。これに対し、「大漢和辞典」の親文字は約５万字である。少なくともこれだけの文字種を文字認識装置が認識できないと、「大漢和辞典」を全文電子テキスト化することはできない。
【０００４】
文字認識装置を使って「大漢和辞典」を全文電子テキスト化したとしても、認識結果すべてを査読、修正することは容易ではない。日本漢字能力検定（漢検）１級の出題レベルは約６０００字（ＪＩＳ第１、第２水準相当）であり、毎年の合格者は数十名、合格率は５％程度である。これに対し、約５万字の漢字を読み分ける高度の知見をもった人間はきわめて少ない。そのなかで、延べ約５０００万字という膨大な量の査読に時間を割ける人間はほぼいない。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０００−０７６３７８号公報
【特許文献２】特開平１１−０３１１９５号公報
【発明の概要】
【０００６】
本発明の１つの観点に係る文字認識装置は、
複数の標準文字の各々について複数の特徴点を記憶した記憶装置にアクセス可能な文字認識装置であって、
認識対象文字の画像から複数の特徴点を抽出する第１のモジュールと、
前記第１のモジュールで抽出された複数の特徴点と、前記複数の標準文字の各々についての複数の特徴点と、の差を算出し、この差が人間の解像限界未満の所定値以下である標準文字を認識結果とする第２のモジュールと、
を備える。
【０００７】
本発明の他の１つの観点に係る文字認識装置は、
複数の標準文字の各々について複数の特徴点を記憶した記憶装置にアクセス可能な文字認識装置であって、
ビットマップ画像である認識対象文字の画像をベクタ画像に変換し、前記ベクタ画像から第１の密度の複数の特徴点を抽出する第１のモジュールと、
前記第１のモジュールで抽出された複数の特徴点と、前記複数の標準文字の各々についての複数の特徴点と、の差を算出し、この差が一定値以下である標準文字を抽出する第２のモジュールと、
前記第２のモジュールで複数の標準文字が抽出された場合に、前記ベクタ画像の少なくとも一部から前記第１の密度より高い第２の密度の複数の特徴点を抽出する第３のモジュールと、
前記第３のモジュールで抽出された複数の特徴点と、前記第２のモジュールで抽出された標準文字の各々についての複数の特徴点と、の差を算出し、この差が人間の解像限界未満の所定値以下である標準文字を認識結果とする第４のモジュールと、
を備える。
【図面の簡単な説明】
【０００８】
【図１】本発明の実施形態に係る文字認識装置３０及びその周辺装置のブロック図である。
【図２】記憶装置４０に記憶された標準文字ｎの輪郭点の例を示す。
【図３】第１の実施形態に係る文字認識装置３０のフローチャートである。
【図４】認識対象文字のビットマップ画像の例を示す。
【図５】ビットマップ画像をベクタ画像に変換して得られた認識対象文字の輪郭線の例を示す。
【図６】図３に示される輪郭点を抽出する処理（Ｓ１１０）の詳細を示すフローチャートである。
【図７】輪郭線に沿って抽出された複数の点の例を示す。
【図８】複数の点について取得された座標の例を示す。
【図９】認識対象文字の輪郭点の例を示す。
【図１０】標準文字ｎの輪郭点と認識対象文字の輪郭点とを重ねて示す。
【図１１】図３に示される標準文字ｎの輪郭点と認識対象文字の輪郭点との差を算出する処理（Ｓ１３０）の詳細を示すフローチャートである。
【図１２】認識対象文字の輪郭点ｉから最も近い標準文字ｎの輪郭点までの距離について説明した図である。
【図１３】標準文字ｎの輪郭点ｊから最も近い認識対象文字の輪郭点までの距離について説明した図である。
【図１４】第２の実施形態に係る文字認識装置３０のフローチャートである。
【図１５】図１４に示される第１の密度の輪郭点を抽出する処理（Ｓ１１０ａ）の詳細を示すフローチャートである。
【図１６】標準文字ｎの第３の密度の輪郭点と認識対象文字の第１の密度の輪郭点とを重ねて示す。
【図１７】図１４に示される第２の密度の輪郭点を抽出する処理（Ｓ１８０ａ）の詳細を示すフローチャートである。
【図１８】標準文字ｍの第４の密度の輪郭点と認識対象文字の第２の密度の輪郭点とを重ねて示す。
【図１９】第３の実施形態に係る文字認識装置３０のフローチャートである。
【図２０】輪郭線の方向Ａｉの例を示す図である。
【図２１】図１９に示される標準文字ｍの輪郭点の座標及び方向と認識対象文字の輪郭点の座標及び方向との差を算出する処理（Ｓ２１０ｂ）の詳細を示すフローチャートである。
【図２２】図２１に示されるベクトル差ＶＤｉを算出する処理（Ｓ２１３ｂ）の詳細を示すフローチャートである。
【図２３】輪郭線の方向の違いＡＤｉ及びベクトル差ＶＤｉについて説明した図である。
【図２４】図２１に示されるベクトル差ＶＤｊを算出する処理（Ｓ２１８ｂ）の詳細を示すフローチャートである。
【図２５】符号「■」で示される認識対象文字の輪郭点を２つの標準文字の輪郭点とそれぞれ比較した結果を示す。
【図２６】第４の実施形態に係る文字認識装置３０のフローチャートである。
【図２７】図２６に示される輪郭点の抽出と座標及び方向の取得とを行う処理（Ｓ１１０ｃ）の詳細を示すフローチャートである。
【図２８】図２６に示される標準文字ｎの輪郭点の座標及び方向と認識対象文字の輪郭点の座標及び方向との差を算出する処理（Ｓ１３０ｃ）の詳細を示すフローチャートである。
【図２９】図２８に示されるベクトル差ＶＤｉを算出する処理（Ｓ１３３ｃ）の詳細を示すフローチャートである。
【図３０】図２８に示されるベクトル差ＶＤｊを算出する処理（Ｓ１３８ｃ）の詳細を示すフローチャートである。
【図３１】認識対象文字の輪郭点を符号「□」で示される標準文字の輪郭点と比較した結果を示す。
【図３２】図３１の画像の中から抽出された注目部分ＸＸＸＩＩを示す。
【発明を実施するための形態】
【０００９】
以下、本発明の実施形態を、図面を参照しながら詳細に説明する。以下に説明される各実施形態は、本発明の一例を示すものであって、本発明の内容を限定するものではない。また、各実施形態で説明される構成及び動作のすべてが本発明の構成及び動作として必須であるとは限らない。なお、同一の構成要素には同一の参照符号を付して、重複する説明を省略する。
【００１０】
＜１．実施形態の概要＞
記憶装置４０は、複数の標準文字の各々について、複数の輪郭点を記憶している（図２）。
文字認識装置３０は、認識対象文字の画像から複数の輪郭点を抽出する（図３のＳ１００、Ｓ１１０）。
文字認識装置３０は、認識対象文字の複数の輪郭点と、複数の標準文字の各々についての複数の輪郭点と、の差を算出し（図３のＳ１２０〜Ｓ１６０）、この差が所定値以下である標準文字を、認識結果とする（図３のＳ２４０）。
【００１１】
＜２．構成＞
図１は、本発明の実施形態に係る文字認識装置３０及びその周辺装置のブロック図である。図１に示される構成は、後述の第１の実施形態と第２の実施形態とで共通である。
文字認識装置３０は、輪郭点抽出モジュール３１と、判定モジュール３２と、を含む。輪郭点抽出モジュール３１は、認識対象文字の画像から複数の輪郭点を抽出する。判定モジュール３２は、認識対象文字の複数の輪郭点と、複数の標準文字の各々についての複数の輪郭点と、の差を算出し、この差が所定値以下である標準文字を認識結果とする。なお、輪郭点抽出モジュール３１は、本発明における「第１のモジュール」及び「第３のモジュール」の一例である。判定モジュール３２は、本発明における「第２のモジュール」及び「第４のモジュール」の一例である。
文字認識装置３０は、文書１ページ分の画像から、認識対象文字ごとのビットマップ画像を切り出すモジュールなどをさらに含んでもよい。
【００１２】
文字認識装置３０は、入出力装置１０と、撮像装置２０と、記憶装置４０と、に接続されている。
入出力装置１０は、例えば、オペレーターがコマンドを入力するためのキーボードあるいはマウスを含む。また入出力装置１０は、例えば、文字の認識結果を出力するためのディスプレイ装置、あるいは他のコンピューターとの通信装置を含む。
撮像装置２０は、文書から認識対象文字をビットマップ画像として読み取るためのスキャナーあるいはカメラを含む。
記憶装置４０は、認識対象文字と比較される複数の標準文字の輪郭点のデータを記憶している。標準文字の輪郭点のデータについては図２を参照しながら後述する。記憶装置４０は、さらに、文字認識装置３０が行う各種処理のためのパラメーターを記憶している。文字認識装置３０は、記憶装置４０にアクセスして各種データを読み出すことができる。
【００１３】
図２は、記憶装置４０に記憶された標準文字の輪郭点の例を示す。
記憶装置４０は複数の標準文字についてデータを記憶している。標準文字の総数は、例えば上記「大漢和辞典」を全文電子テキスト化する場合には、例えば５万字以上が必要である。「大漢和辞典」の親文字は上述の通り約５万字であり、全文電子テキスト化するためには親文字以外の文字も認識する必要があるためである。標準文字の集合をＮとし、集合Ｎに属する複数の標準文字の各々を識別する番号をｎとする。集合Ｎに属する標準文字の総数Ｎｍａｘは例えば５万以上の値となる。
【００１４】
図２は、１つの標準文字ｎについて、複数の輪郭点を示している。複数の輪郭点は、文字の形状の輪郭線に沿って、ほぼ等間隔に配置されている。なお、輪郭点は、本発明における「特徴点」の一例である。輪郭点の代わりに、例えば、文字のストロークの中心線に沿って配置された点が用いられてもよい。
標準文字ｎの輪郭点のデータは、以下の方法で取得することが望ましい。まず、全文電子テキスト化しようとする文書そのものの一部を撮像装置２０で撮像し、ビットマップ画像を取得する。このビットマップ画像から、標準文字ｎとして登録すべき文字の画像を切り出す。そして、切り出された文字の画像から複数の輪郭点を抽出する。文字の画像から複数の輪郭点を抽出する手順は、認識対象文字の画像から複数の輪郭点を抽出する手順と同様でよく、その詳細は図４〜図９を参照しながら後述する。
鋳造された活字を使って印刷された文書であれば、少なくともその文書内で、同一の文字に関しては同一の字形であることが期待できる。この字形の画像から標準文字ｎの輪郭点を抽出すれば、認識対象文字の輪郭点と高精度で一致することが期待できる。なお、同一の文字に関して異なる字形の活字が用いられている場合には、それぞれの字形の画像から標準文字ｎの輪郭点を別々に抽出すればよい。ここでは鋳造された活字を使って印刷された場合について説明したが、同一の写植原版を使って印刷された場合でも、同一のデジタルフォントを使って印刷された場合でも同様である。
【００１５】
記憶装置４０は、標準文字ｎの輪郭点のデータの他に、当該標準文字ｎに付与される文字コードのデータ、当該標準文字ｎのフォントを構成する曲線のデータ等を記憶している。これにより、当該標準文字ｎが認識結果として特定されたときに、その認識結果を記憶装置に記憶させたりディスプレイ装置に表示させたりすることができる。
【００１６】
＜３．第１の実施形態の動作＞
図３は、第１の実施形態に係る文字認識装置３０のフローチャートである。文字認識装置３０は、以下の処理を行う。
（ベクタ画像へ変換）
Ｓ１００：認識対象文字のビットマップ画像をベクタ画像に変換する。
（輪郭点を抽出）
Ｓ１１０：認識対象文字のベクタ画像から複数の輪郭点を抽出する。
（認識対象文字と標準文字との差を算出）
Ｓ１２０〜Ｓ１６０：認識対象文字の複数の輪郭点と、複数の標準文字の各々についての複数の輪郭点と、の差を算出する。
（認識結果を決定）
Ｓ２４０：差が所定値以下である標準文字を認識結果とする。
以下、詳細に説明する。
【００１７】
＜３．１  ベクタ画像へ変換＞
Ｓ１００において、文字認識装置３０は、輪郭点抽出モジュール３１により、認識対象文字のビットマップ画像をベクタ画像に変換する。
【００１８】
認識対象文字のビットマップ画像は、撮像装置２０によって読み取られた画像である。あるいは、撮像装置２０で読み取られた文書１ページ分の画像から、認識対象文字のビットマップ画像が切り出されてもよい。
図４に、認識対象文字のビットマップ画像の例（一部のみ）が示されている。図４に示されるマス目の各々は、例えば、１２００ｄｐｉの１ドットに相当する。以下に計算するように、１２００ｄｐｉの１ドット分の長さ（ビットマップ画像の座標軸方向に隣接する２ドットの中心間の距離）は、１インチ（２５．４ｍｍ）の１２００分の１であるので、約０．０２１ｍｍである。
２５．４ｍｍ／１２００  ＝  ０．０２１ｍｍ
図４において、０．１ｍｍは、約４．７２ドット分の長さに相当し、０．０５ｍｍは、約２．３６ドット分の長さに相当する（後述の図５、図７、図８においても同様である）。
０．１ｍｍ／０．０２１ｍｍ  ＝  約４．７２ドット
０．０５ｍｍ／０．０２１ｍｍ  ＝  約２．３６ドット
図４において、ハッチングされたドットが黒（暗色）のドットであり、ハッチングされていないドットが白（明色）のドットである。
【００１９】
なお、図４には、ビットマップ画像の解像度が１２００ｄｐｉである例が示されているが、本発明はこれに限定されない。他の解像度であってもよい。
また、例えば、３．５ｍｍ角の文字の画像を１２００ｄｐｉで読み取り、７．０ｍｍ角の文字の画像を６００ｄｐｉで読み取るというように、文字の大きさに応じて解像度を変更することにより、１文字分のドット数を一致させることが望ましい。あるいは、７．０ｍｍ角の文字の画像を１２００ｄｐｉで読み取ってから、その画像の解像度を６００ｄｐｉに落とすことにより、１文字分のドット数を一致させてもよい。
【００２０】
Ｓ１００においてビットマップ画像を変換して得られるベクタ画像は、認識対象文字の輪郭線のデータを含む。
図５に、ビットマップ画像をベクタ画像に変換して得られた認識対象文字の輪郭線の例（一部のみ）が示されている。ベクタ画像に含まれる輪郭線は、なめらかな曲線で構成される。ベクタ画像に含まれる輪郭線は、例えば、ベジェ曲線として記述される。ここでは白黒二値のビットマップ画像から輪郭線のデータを得る場合について説明したが、カラー又はグレースケールのビットマップ画像から輪郭線のデータを得てもよい。例えば、カラー又はグレースケールのビットマップ画像において微分値が大きい部分を検出して輪郭線としてもよい。
【００２１】
＜３．２  輪郭点を抽出＞
Ｓ１１０において、文字認識装置３０は、輪郭点抽出モジュール３１により、認識対象文字のベクタ画像から複数の輪郭点を抽出する。
【００２２】
図６は、図３に示される輪郭点を抽出する処理（Ｓ１１０）の詳細を示すフローチャートである。図６は、Ｓ１１０のサブルーチンに相当する。
【００２３】
Ｓ１１１において、文字認識装置３０は、輪郭点抽出モジュール３１により、認識対象文字のベクタ画像に含まれる輪郭点に沿って、複数の点を抽出する。
図７に、輪郭線に沿って抽出された複数の点の例（一部のみ）を示す。複数の点は、ほぼ等間隔で、例えば約３．５ドットおきに抽出される。
【００２４】
次に、Ｓ１１２において、文字認識装置３０は、輪郭点抽出モジュール３１により、複数の点についてそれぞれの座標を、認識対象文字の輪郭点として取得する。このとき、例えば小数第１位を四捨五入した値（０．５ドット加算して１ドット未満の端数を切り捨てた値）をそれぞれの座標とする。
図８に、複数の点について取得された座標の例（一部のみ）を示す。図８に示されるように、ビットマップ画像において黒（暗色）のドットであったか、白（明色）のドットであったかという区別に縛られることなく、なめらかなベクタ画像の輪郭線上の点が輪郭点として抽出される。
図９に、認識対象文字の輪郭点の例を示す。
Ｓ１１２の後、文字認識装置３０は輪郭点抽出モジュール３１による図６の処理を終了し、図３の処理に戻る。
【００２５】
＜３．３  認識対象文字と標準文字との差を算出＞
図３を再び参照して説明を続ける。
Ｓ１２０において、文字認識装置３０は、判定モジュール３２により、標準文字の各々を識別する番号ｎの値を１にセットする。ｎの値は後述のＳ１６０において１ずつ加算され、ｎの値が集合Ｎに属する標準文字の総数Ｎｍａｘに達するまで、Ｓ１３０〜Ｓ１６０の処理が繰り返される。
【００２６】
Ｓ１３０において、文字認識装置３０は、判定モジュール３２により、記憶装置４０から標準文字ｎの複数の輪郭点を読み出し、認識対象文字の複数の輪郭点との差を算出する。
図１０に、標準文字ｎの輪郭点と認識対象文字の輪郭点とを重ねて示す。文字認識装置３０は、判定モジュール３２により、これらの輪郭点の位置の差を以下の処理により算出する。
【００２７】
図１１は、図３に示される標準文字ｎの輪郭点と認識対象文字の輪郭点との差を算出する処理（Ｓ１３０）の詳細を示すフローチャートである。図１１は、Ｓ１３０のサブルーチンに相当する。
【００２８】
Ｓ１３１において、文字認識装置３０は、記憶装置４０から標準文字ｎの複数の輪郭点を読み出す。
【００２９】
次に、Ｓ１３２において、文字認識装置３０は、認識対象文字の輪郭点の各々を識別する番号ｉの値を１にセットする。ｉの値は後述のＳ１３５において１ずつ加算され、ｉの値が認識対象文字の輪郭点の総数Ｉｍａｘに達するまで、Ｓ１３３〜Ｓ１３５の処理が繰り返される。
【００３０】
Ｓ１３３において、文字認識装置３０は、判定モジュール３２により、認識対象文字の輪郭点ｉから最も近い標準文字ｎの輪郭点までの距離Ｄｉを算出する。
図１２は、認識対象文字の輪郭点ｉから最も近い標準文字ｎの輪郭点までの距離について説明した図である。図１２には、ｉ＝１からｉ＝１４までの認識対象文字の輪郭点ｉが示されている。それぞれの輪郭点ｉから最も近い標準文字ｎの輪郭点が選ばれ、その距離が算出される。ｉ＝７とｉ＝８のように、最も近い標準文字ｎの輪郭点として同じ輪郭点が選ばれることもある。最も近い標準文字ｎの輪郭点として１度も選ばれない輪郭点があってもよい。輪郭点間の距離の単位は、例えばドット数である。例えば、輪郭点間の座標の差に三平方の定理を適用することにより、ユークリッド距離が算出される。
【００３１】
次に、Ｓ１３４において、文字認識装置３０は、番号ｉの値が認識対象文字の輪郭点の総数Ｉｍａｘに達したか否かを判定する。番号ｉの値がＩｍａｘに達していない場合（Ｓ１３４：ＮＯ）、文字認識装置３０は、処理をＳ１３５に進める。番号ｉの値がＩｍａｘに達した場合（Ｓ１３４：ＹＥＳ）、文字認識装置３０は、処理をＳ１３６に進める。
【００３２】
Ｓ１３５において、文字認識装置３０は、番号ｉの値に１を加算して番号ｉの値を更新する。
その後、文字認識装置３０は、処理をＳ１３３に戻す。Ｓ１３３〜Ｓ１３５の処理を繰り返すことにより、認識対象文字の輪郭点の各々について、最も近い標準文字ｎの輪郭点までの距離Ｄｉが算出される。
【００３３】
Ｓ１３６において、文字認識装置３０は、判定モジュール３２により、距離Ｄｉの平均ＤＩａｖｇと分散ＤＩσ＾２を以下の式で算出する。
ＤＩａｖｇ  ＝  ｛Σ（Ｄｉ）｝／Ｉｍａｘ
ＤＩσ＾２  ＝  ｛Σ（（Ｄｉ−ＤＩａｖｇ）２）｝／Ｉｍａｘ
ここで、Σ（Ｘ）は、Ｘをｉ＝１からｉ＝Ｉｍａｘまで合計した値を示す。
【００３４】
Ｓ１３７〜Ｓ１４１の処理は、標準文字ｎの輪郭点ｊから最も近い認識対象文字の輪郭点までの距離Ｄｊを算出する点で、Ｓ１３２〜Ｓ１３６の処理と異なる。
【００３５】
図１３は、標準文字ｎの輪郭点ｊから最も近い認識対象文字の輪郭点までの距離について説明した図である。図１３には、ｊ＝１からｊ＝１５までの標準文字ｎの輪郭点ｊが示されている。それぞれの輪郭点ｊから最も近い認識対象文字の輪郭点が選ばれ、その距離が算出される。ｊ＝１０とｊ＝１１のように、最も近い認識対象文字の輪郭点として同じ輪郭点が選ばれることもある。最も近い認識対象文字の輪郭点として１度も選ばれない輪郭点があってもよい。
【００３６】
Ｓ１４１において、文字認識装置３０は、判定モジュール３２により、距離Ｄｊの平均ＤＪａｖｇと分散ＤＪσ＾２を以下の式で算出する。
ＤＪａｖｇ  ＝  ｛Σ（Ｄｊ）｝／Ｊｍａｘ
ＤＪσ＾２  ＝  ｛Σ（（Ｄｊ−ＤＪａｖｇ）２）｝／Ｊｍａｘ
ここで、Σ（Ｘ）は、Ｘをｊ＝１からｊ＝Ｊｍａｘまで合計した値を示す。Ｊｍａｘは標準文字ｎの輪郭点の総数である。
【００３７】
他の点については、Ｓ１３７〜Ｓ１４１の処理はＳ１３２〜Ｓ１３６の処理と同様である。
以上のように、Ｓ１３２〜Ｓ１３６で認識対象文字の輪郭点ｉから最も近い標準文字ｎの輪郭点までの距離Ｄｉを算出するだけでなく、Ｓ１３７〜Ｓ１４１で標準文字ｎの輪郭点ｊから最も近い認識対象文字の輪郭点までの距離Ｄｊを算出する理由は、以下の通りである。
例えば、「大」と「犬」のように、一方の文字の構成要素のすべてを他方の文字が含んでいるような場合に、「大」の輪郭点から最も近い「犬」の輪郭点までの距離を算出するだけでは「犬」の構成要素の一部が無視されてしまい、正確な判定ができない可能性がある。「犬」の輪郭点から最も近い「大」の輪郭点までの距離も算出すれば、より正確な判定が可能となる。
Ｓ１４１の後、文字認識装置３０は図１１の処理を終了し、図３の処理に戻る。
【００３８】
図３を再び参照して説明を続ける。
次に、Ｓ１５０において、文字認識装置３０は、判定モジュール３２により、番号ｎの値が標準文字の総数Ｎｍａｘに達したか否かを判定する。番号ｎの値がＮｍａｘに達していない場合（Ｓ１５０：ＮＯ）、文字認識装置３０は、処理をＳ１６０に進める。番号ｎの値がＮｍａｘに達した場合（Ｓ１５０：ＹＥＳ）、文字認識装置３０は、処理をＳ２４０に進める。
【００３９】
Ｓ１６０において、文字認識装置３０は、判定モジュール３２により、番号ｎの値に１を加算して番号ｎの値を更新する。
その後、文字認識装置３０は、処理をＳ１３０に戻す。Ｓ１３０〜Ｓ１６０の処理を繰り返すことにより、集合Ｎに属する標準文字の各々について、認識対象文字との差が算出される。ここでは集合Ｎに属するＮｍａｘ個の標準文字すべてについて認識対象文字との差を算出する場合について説明したが、本発明はこれに限定されない。例えば、一部の標準文字について認識対象文字との差を算出した時点で、明らかに認識対象文字と一致する標準文字が見つかった場合に、残りの標準文字については認識対象文字との差を算出しなくてもよい。また、認識対象文字との差を算出する前に、明らかに除外できる標準文字ｎがある場合には、そのような標準文字ｎを除外して他の標準文字のみについて認識対象文字との差を算出するようにしてもよい。
【００４０】
＜３．４  認識結果を決定＞
Ｓ２４０において、文字認識装置３０は、判定モジュール３２により、認識対象文字との差が所定値以下である標準文字を認識結果として出力する。
この所定値は、人間の解像限界未満であることが望ましい。視力の定義（視角１分を視認する視力を１．０とする）から、例えば、視力１．５の人が２５０ｍｍの距離にある物体を見るときの解像限界は０．１ｍｍである。そして、上述のように、０．１ｍｍは、１２００ｄｐｉの約４．７２ドット分の長さに相当する。
認識対象文字との差は、例えば、平均（ＤＩａｖｇ及びＤＪａｖｇ）及び分散（ＤＩσ＾２及びＤＪσ＾２）で評価される。平均ＤＩａｖｇ及びＤＪａｖｇがいずれも所定値Ｔａｖｇ以下であり、分散ＤＩσ＾２及びＤＪσ＾２がいずれも所定値Ｔσ＾２以下である場合に、認識対象文字との差が所定値以下であると判定される。
平均とは別に分散を評価することにより、外れ値を強調できる。これにより、認識対象文字と一部だけ一致するが他の一部は一致しないような標準文字を、認識結果から除外することができる。
【００４１】
所定値Ｔａｖｇ及び所定値Ｔσ＾２は、以下の範囲内の値であることが望ましい（Ｔσ＾２は１２００ｄｐｉの画像における距離Ｄｉ又はＤｊの分散に対する閾値である。Ｔａｖｇはミリメートルに換算した距離Ｄｉ又はＤｊの平均に対する閾値である。）。
０．０５ｍｍ  ≦  Ｔａｖｇ  ＜  ０．１０ｍｍ
１  ≦  Ｔσ＾２  ≦  ３．５
所定値Ｔａｖｇ及び所定値Ｔσ＾２は、以下の範囲内の値であることがさらに望ましい。
０．０６ｍｍ  ≦  Ｔａｖｇ  ≦  ０．０８ｍｍ
１．５  ≦  Ｔσ＾２  ≦  ２．５
【００４２】
人間の解像限界未満の所定値を設定することにより、同一の文字以外を認識結果とする誤りが防止されると考えられる。本実施形態によれば、文字認識装置３０が認識結果として出力した文字に関して、人間による査読は必要とされなくなる。人間による査読が必要なのは、印刷のずれ、傾き、インクのにじみ、かすれ等により、文字認識装置３０が認識結果を出力できなかった認識対象文字のみに限定される。従って、膨大な量の難字を含む文書であっても、全文電子テキスト化と、その査読が可能となる。
所定値をあまりに小さく設定しすぎると、同一活字であっても同一文字と判定されなくなる可能性が高くなり、人間による査読の負担が大きくなり得る。上述の数値範囲は、認識テストの試行錯誤を繰り返しながら経験的に得られたものである。
Ｓ２４０の後、文字認識装置３０は、第１の実施形態に係る文字認識の処理を終了する。
【００４３】
＜４．第２の実施形態の動作＞
図１４は、第２の実施形態に係る文字認識装置３０のフローチャートである。第２の実施形態は、認識対象文字との差が所定値以下である標準文字を１つに絞れなかった場合に、認識対象文字の輪郭点を取り直す点で、第１の実施形態と異なる。
【００４４】
第２の実施形態において、文字認識装置３０は、以下の処理を行う。
（ベクタ画像へ変換）
Ｓ１００：認識対象文字のビットマップ画像をベクタ画像に変換する。
（第１の密度の輪郭点を抽出）
Ｓ１１０ａ：認識対象文字のベクタ画像から第１の密度の複数の輪郭点を抽出する。
（標準文字との差を算出（第１の密度））
Ｓ１２０〜Ｓ１６０：認識対象文字の第１の密度の複数の輪郭点と、複数の標準文字の各々についての複数の輪郭点と、の差を算出する。
（第２の密度の輪郭点を抽出）
Ｓ１６５ａ〜Ｓ１８０ａ：差が第１の所定値以下である標準文字が１つの場合、その標準文字を認識結果とする。差が第１の所定値以下である標準文字が複数ある場合、認識対象文字のベクタ画像から第１の密度より高い第２の密度の複数の輪郭点を抽出する。
（標準文字との差を算出（第２の密度））
Ｓ２００ａ〜Ｓ２３０ａ：認識対象文字の第２の密度の複数の輪郭点と、複数の標準文字の各々についての複数の輪郭点と、の差を算出する。
（認識結果を決定）
Ｓ２４０ａ：差が第２の所定値以下である標準文字を認識結果とする。
以下、詳細に説明する。
【００４５】
＜４．１  ベクタ画像へ変換＞
Ｓ１００において、認識対象文字のビットマップ画像をベクタ画像に変換する処理は、図３〜図５を参照しながら説明した第１の実施形態の処理と同様である。
【００４６】
＜４．２  第１の密度の輪郭点を抽出＞
Ｓ１１０ａにおいて、文字認識装置３０は、輪郭点抽出モジュール３１により、認識対象文字のベクタ画像から第１の密度の複数の輪郭点を抽出する。
【００４７】
図１５は、図１４に示される第１の密度の輪郭点を抽出する処理（Ｓ１１０ａ）の詳細を示すフローチャートである。図１５は、Ｓ１１０ａのサブルーチンに相当する。
Ｓ１１１ａにおいて、文字認識装置３０は、輪郭点抽出モジュール３１により、認識対象文字のベクタ画像に含まれる輪郭点に沿って、複数の点を抽出する。複数の点は、認識対象文字のベクタ画像に含まれる輪郭点に沿って、例えば約３．５ドットおきに抽出される。Ｓ１１１ａの処理は、図６及び図７を参照しながら説明した第１の実施形態のＳ１１１の処理と同様である。
次に、Ｓ１１２ａにおいて、文字認識装置３０は、輪郭点抽出モジュール３１により、複数の点についてそれぞれの座標を、認識対象文字の輪郭点として取得する。このとき、例えば小数第１位を四捨五入した値をそれぞれの座標とする。Ｓ１１２ａの処理は、図６及び図８を参照しながら説明した第１の実施形態のＳ１１２の処理と同様である。
Ｓ１１２ａの後、文字認識装置３０は輪郭点抽出モジュール３１による図１５の処理を終了し、図１４の処理に戻る。
【００４８】
＜４．３  標準文字との差を算出（第１の密度）＞
図１４を再び参照して説明を続ける。
Ｓ１２０〜Ｓ１６０において、文字認識装置３０は、判定モジュール３２により、集合Ｎに属する標準文字の総数Ｎｍａｘに達するまで番号ｎの値を更新しながら、標準文字ｎと認識対象文字との差を算出する。Ｓ１２０、Ｓ１５０、Ｓ１６０において、標準文字の総数Ｎｍａｘに達するまで番号ｎの値を更新する処理は、図３を参照しながら説明した第１の実施形態の処理と同様である。
【００４９】
Ｓ１３０ａにおいて、文字認識装置３０は、判定モジュール３２により、記憶装置４０から標準文字ｎの第３の密度の複数の輪郭点を読み出し、認識対象文字の第１の密度の複数の輪郭点との差を算出する。Ｓ１３０ａの処理の詳細は、図１１〜図１３を参照しながら説明した第１の実施形態の処理と同様であり、図示を省略する。なお、第３の密度は第１の密度と同一でもよいし、異なっていてもよい。
【００５０】
図１６に、標準文字ｎの第３の密度の輪郭点と認識対象文字の第１の密度の輪郭点とを重ねて示す。
輪郭点の記号「□」で示される文字は、例として「いち」という文字を撮像装置２０で読み取って認識対象文字としたものである（なべぶた＋「巾」）。これに対し、輪郭点の記号「◆」で示される文字は、例として「ひざかけ」という文字を撮像装置２０で読み取って標準文字としたものである（「一」＋「巾」）。これらは別の文字なので区別して認識されなければならないが、極めてよく似た形であるため、輪郭点の差が小さく、区別できない可能性がある。
そこで、第２の実施形態においては、Ｓ１６５ａ以降の処理により、認識対象文字の輪郭点を取り直して判定を行う。
【００５１】
＜４．４  第２の密度の輪郭点を抽出＞
Ｓ１６５ａにおいて、文字認識装置３０は、判定モジュール３２により、認識対象文字との差が第１の所定値以下である標準文字が１つだけであるか否かを判定する。この第１の所定値は、第１の実施形態において説明した人間の解像限界未満であることが望ましい。
認識対象文字との差が第１の所定値以下である標準文字が１つだけである場合（Ｓ１６５ａ：ＹＥＳ）、文字認識装置３０は、処理をＳ１７０ａに進める。
Ｓ１７０ａにおいて、文字認識装置３０は、判定モジュール３２により、認識対象文字との差が第１の所定値以下である標準文字を認識結果として出力する。
認識対象文字との差が第１の所定値以下である標準文字が１つだけではない場合（Ｓ１６５ａ：ＮＯ）、文字認識装置３０は、処理をＳ１８０ａに進める。このとき、認識対象文字との差が第１の所定値以下である標準文字の集合をＭとし、集合Ｍに属する複数の標準文字の各々を識別する番号をｍとする。例えば、認識対象文字との差が第１の所定値以下である標準文字が上述の「いち」と「ひざかけ」の２つである場合、集合Ｍに属する標準文字の総数Ｍｍａｘは２である。集合Ｍは集合Ｎの真部分集合である。
【００５２】
Ｓ１８０ａにおいて、文字認識装置３０は、輪郭点抽出モジュール３１により、認識対象文字のベクタ画像から第２の密度の複数の輪郭点を抽出する。第２の密度は、第１の密度よりも高い密度である。
【００５３】
図１７は、図１４に示される第２の密度の輪郭点を抽出する処理（Ｓ１８０ａ）の詳細を示すフローチャートである。図１７は、Ｓ１８０ａのサブルーチンに相当する。
Ｓ１８１ａにおいて、文字認識装置３０は、輪郭点抽出モジュール３１により、認識対象文字のベクタ画像に含まれる輪郭点に沿って、複数の点を抽出する。複数の点は、認識対象文字のベクタ画像に含まれる輪郭点に沿って、例えば約０．３５ドットおきに抽出される。他の点については、Ｓ１８１ａの処理は、図１５を参照しながら説明したＳ１１１ａの処理と同様である。
【００５４】
次に、Ｓ１８２ａにおいて、文字認識装置３０は、輪郭点抽出モジュール３１により、複数の点についてそれぞれの座標を、認識対象文字の輪郭点として取得する。このとき、例えば小数第２位を四捨五入した値をそれぞれの座標とする。他の点については、Ｓ１８２ａの処理は、図１５を参照しながら説明したＳ１１２ａの処理と同様である。
【００５５】
図１７の処理により抽出された輪郭点は、図１５の処理により抽出された輪郭点の１０倍の密度を有する。図１７の処理によれば、高精細のビットマップ画像を取り直さなくても、Ｓ１００で得られたベクタ画像に基づいて、精密な輪郭点を抽出できる。
Ｓ１８２ａの後、文字認識装置３０は輪郭点抽出モジュール３１による図１７の処理を終了し、図１４の処理に戻る。
【００５６】
＜４．５  標準文字との差を算出（第２の密度）＞
図１４を再び参照して説明を続ける。
Ｓ２００ａ〜Ｓ２３０ａにおいて、文字認識装置３０は、判定モジュール３２により、集合Ｍに属する標準文字の総数Ｍｍａｘに達するまで番号ｍの値を更新しながら、標準文字ｍと認識対象文字との差を算出する。Ｓ２００ａ、Ｓ２２０ａ、Ｓ２３０ａにおいて、集合Ｍに属する標準文字の総数Ｍｍａｘに達するまで番号ｍの値を更新する処理は、Ｓ１２０、Ｓ１５０、Ｓ１６０と同様である。
【００５７】
Ｓ２１０ａにおいて、文字認識装置３０は、判定モジュール３２により、記憶装置４０から標準文字ｍの第４の密度の複数の輪郭点を読み出し、認識対象文字の第２の密度の複数の輪郭点との差を算出する。Ｓ２１０ａの処理の詳細は、標準文字ｍとの差を算出する点を除いて、図１１〜図１３を参照しながら説明した第１の実施形態の処理と同様であり、図示を省略する。なお、第４の密度は第２の密度と同一でもよいし、異なっていてもよい。
【００５８】
図１８に、標準文字ｍの第４の密度の輪郭点と認識対象文字の第２の密度の輪郭点とを重ねて示す。
【００５９】
上述の「いち」と「ひざかけ」のように、きわめてよく似た文字の組み合わせが既にわかっている場合には、集合Ｍに属する標準文字ｍの第４の密度の輪郭点を、予め抽出して記憶装置４０に記憶させておくことができる。第４の密度は、第３の密度より高い密度であることが望ましい。
あるいは、図１８に示される例と異なり、第４の密度は、第３の密度と同じでもよい。その場合、集合Ｎの真部分集合である集合Ｍに属する標準文字ｍについては、記憶装置４０には第３の密度の輪郭点を記憶していればよく、第４の密度の輪郭点を記憶していなくてもよい。
【００６０】
また、上述の「いち」と「ひざかけ」のように、きわめてよく似た文字の組み合わせが既にわかっている場合には、これらの文字を見分けるための決め手となる一部分の輪郭点だけを記憶装置４０に記憶させておいてもよい。さらに、上述のＳ１８０ａにおいて、認識対象文字の第２の密度の輪郭点を抽出する際にも、上記一部分の輪郭点だけを抽出してもよい。「いち」と「ひざかけ」の例においては、図１６の破線枠内における輪郭線の膨らみ（墨だまり）の有無が決め手となる。膨らみ（墨だまり）があれば「いち」であり、膨らみ（墨だまり）がなければ「ひざかけ」である。そこで、図１８に示されるように、上記一部分の輪郭点だけを比較することにより、わずかに形の異なる文字であっても高精度に判別することができる。
【００６１】
以上のＳ２００ａ〜Ｓ２３０ａの処理により、集合Ｍに属する標準文字の各々について、認識対象文字との差が算出される。
【００６２】
＜４．６  認識結果を決定＞
次に、Ｓ２４０ａにおいて、文字認識装置３０は、判定モジュール３２により、Ｓ２１０ａにおいて算出された認識対象文字との差が第２の所定値以下であった標準文字を認識結果として出力する。この第２の所定値は、人間の解像限界未満であり、且つ、第１の所定値未満であることが望ましい。
他の点については、Ｓ２４０ａの処理は、図３を参照しながら説明した第１の実施形態のＳ２４０の処理と同様である。
Ｓ２４０ａの後、文字認識装置３０は、第２の実施形態に係る文字認識の処理を終了する。
【００６３】
＜５．第３の実施形態の動作＞
図１９は、第３の実施形態に係る文字認識装置３０のフローチャートである。第３の実施形態は、認識対象文字との差が所定値以下である標準文字を１つに絞れなかった場合に、輪郭点の座標と輪郭点における輪郭線の方向とを用いて認識を行う点で、第１の実施形態と異なる。
【００６４】
第３の実施形態において、文字認識装置３０は、以下の処理を行う。
Ｓ１００〜Ｓ１６０までの処理は、第１の実施形態と同様である。
（輪郭線の方向を取得）
Ｓ１６５ａ〜Ｓ１８０ｂ：差が第１の所定値以下である標準文字が１つの場合、その標準文字を認識結果とする。差が第１の所定値以下である標準文字が複数ある場合、認識対象文字の複数の輪郭点のそれぞれにおける輪郭線の方向Ａｉを取得する。
（輪郭点の座標と輪郭点における輪郭線の方向とを用いて標準文字との差を算出）
Ｓ２００ａ〜Ｓ２３０ａ：認識対象文字の複数の輪郭点と、複数の標準文字の各々についての複数の輪郭点と、のベクトル差を算出する。
（認識結果を決定）
Ｓ２４０ａ：差が第２の所定値以下である標準文字を認識結果とする。
以下、詳細に説明する。
【００６５】
＜５．１  ベクタ画像へ変換＞
Ｓ１００において、認識対象文字のビットマップ画像をベクタ画像に変換する処理は、図３〜図５を参照しながら説明した第１の実施形態の処理と同様である。
【００６６】
＜５．２  輪郭点を抽出＞
Ｓ１１０において、認識対象文字のベクタ画像から複数の輪郭点を抽出する処理は、図３及び図６〜図９を参照しながら説明した第１の実施形態の処理と同様である。
【００６７】
＜５．３  標準文字との差を算出＞
Ｓ１２０〜Ｓ１６０において、認識対象文字の複数の輪郭点と、複数の標準文字の各々についての複数の輪郭点と、の差を算出する処理は、図３及び図１０〜図１３を参照しながら説明した第１の実施形態の処理と同様である。
【００６８】
＜５．４  輪郭線の方向を取得＞
Ｓ１６５ａにおいて、文字認識装置３０は、判定モジュール３２により、認識対象文字との差が第１の所定値以下である標準文字が１つだけであるか否かを判定する。
【００６９】
認識対象文字との差が第１の所定値以下である標準文字が１つだけである場合（Ｓ１６５ａ：ＹＥＳ）、文字認識装置３０は、処理をＳ１７０ａに進める。
Ｓ１７０ａにおいて、文字認識装置３０は、判定モジュール３２により、認識対象文字との差が第１の所定値以下である標準文字を認識結果として出力する。
【００７０】
認識対象文字との差が第１の所定値以下である標準文字が１つだけではない場合（Ｓ１６５ａ：ＮＯ）、文字認識装置３０は、処理をＳ１８０ｂに進める。このとき、認識対象文字との差が第１の所定値以下である標準文字の集合をＭとし、集合Ｍに属する複数の標準文字の各々を識別する番号をｍとする。例えば、認識対象文字との差が第１の所定値以下である標準文字が「н」（エヌ）と「и」（イー）の２つ（後述）である場合、集合Ｍに属する標準文字の総数Ｍｍａｘは２である。集合Ｍは集合Ｎの真部分集合である。
なお、Ｓ１６５ａにおいて認識対象文字との差が第１の所定値以下である標準文字が０個であった場合、別の認識処理が行われてもよい。例えば、認識対象文字との差が第１の所定値より大きい第３の所定値以下である標準文字を、仮の認識結果として出力してもよい。また例えば、認識対象文字の画像に含まれる微小なドットを除去して標準文字と比較し、仮の認識結果を出力してもよい。
【００７１】
Ｓ１８０ｂにおいて、文字認識装置３０は、輪郭点抽出モジュール３１により、Ｓ１１０で抽出された認識対象文字の複数の輪郭点について、それぞれの輪郭点ｉにおける輪郭線の方向Ａｉを取得する。
【００７２】
図２０は、輪郭線の方向Ａｉの例を示す図である。輪郭点ｉのＸ，Ｙ座標を（Ｘｉ，Ｙｉ）とする。輪郭線に沿って輪郭点ｉの前後に位置する輪郭点ｉ＋１及びｉ−１のＸ，Ｙ座標をそれぞれ（Ｘｉ＋１，Ｙｉ＋１）及び（Ｘｉ−１，Ｙｉ−１）とする。このとき、輪郭線の方向Ａｉは以下の式で定義される。
Ａｉ  ＝  Ａｒｃｔａｎ｛（（Ｙｉ＋１）−（Ｙｉ−１））／（（Ｘｉ＋１）−（Ｘｉ−１））｝
但し、（Ｘｉ＋１）−（Ｘｉ−１）が０であるときは、輪郭線の方向Ａｉは９０°とする。
図２０に示される例においては、輪郭点ｉ＋１及びｉ−１の間で−６／１の傾斜になっているので、輪郭点ｉにおける輪郭線の方向Ａｉは−８１°である。輪郭線の方向Ａｉは−９０°より大きく、９０°以下の範囲内となる。すなわち、輪郭線の方向Ａｉは、最大値と最小値との差が１８０°未満となる範囲で定義されているので、正反対方向の輪郭線は、異方向の輪郭線ではなく同一方向の輪郭線として扱われる。
【００７３】
なお、輪郭線の方向Ａｉを計算するために常に上記の式を用いる必要はない。例えば、輪郭点ｉ＋１及びｉ−１の間のＸ方向及びＹ方向のマス目の数と、輪郭線の方向Ａｉとを対応付けたテーブルデータを予め用意しておき、マス目の数を用いてテーブルデータを検索することにより輪郭線の方向Ａｉを取得するようにしてもよい。
また、輪郭線の方向Ａｉの単位を度（°）としたが、ラジアンでもよい。
【００７４】
＜５．５  輪郭点の座標と輪郭点における輪郭線の方向とを用いて標準文字との差を算出＞
図１９を再び参照して説明を続ける。
Ｓ２００ａ〜Ｓ２３０ａにおいて、文字認識装置３０は、判定モジュール３２により、集合Ｍに属する標準文字の総数Ｍｍａｘに達するまで番号ｍの値を更新しながら、標準文字ｍと認識対象文字とのベクトル差を算出する。Ｓ２００ａ、Ｓ２２０ａ、Ｓ２３０ａにおいて、集合Ｍに属する標準文字の総数Ｍｍａｘに達するまで番号ｍの値を更新する処理は、Ｓ１２０、Ｓ１５０、Ｓ１６０と同様である。
【００７５】
Ｓ２１０ｂにおいて、文字認識装置３０は、判定モジュール３２により、記憶装置４０から標準文字ｍの複数の輪郭点の座標及び方向を読み出し、認識対象文字の複数の輪郭点の座標及び方向との差を算出する。
【００７６】
図２１は、図１９に示される標準文字ｍの輪郭点の座標及び方向と認識対象文字の輪郭点の座標及び方向との差を算出する処理（Ｓ２１０ｂ）の詳細を示すフローチャートである。図２１は、Ｓ２１０ｂのサブルーチンに相当する。
【００７７】
Ｓ２１１ｂにおいて、文字認識装置３０は、記憶装置４０から標準文字ｍの複数の輪郭点の座標及び方向を読み出す。記憶装置４０にはすべての標準文字の複数の輪郭点について、座標だけでなく輪郭線の方向も記憶させておくものとする。
【００７８】
Ｓ２１２ｂ〜Ｓ２１５ｂにおいて、文字認識装置３０は、判定モジュール３２により、輪郭点ｉの総数Ｉｍａｘに達するまで番号ｉの値を更新しながら、認識対象文字の輪郭点ｉと、輪郭点ｉから最も近い標準文字ｍの輪郭点とのベクトル差ＶＤｉを算出する。Ｓ２１２ｂ、Ｓ２１４ｂ、Ｓ２１５ｂにおいて、輪郭点ｉの総数Ｉｍａｘに達するまで番号ｉの値を更新する処理は、Ｓ１３２、Ｓ１３４、Ｓ１３５と同様である。
【００７９】
Ｓ２１３ｂにおいて、文字認識装置３０は、判定モジュール３２により、認識対象文字の輪郭点ｉと、輪郭点ｉから最も近い標準文字ｍの輪郭点とのベクトル差ＶＤｉを算出する。
【００８０】
図２２は、図２１に示されるベクトル差ＶＤｉを算出する処理（Ｓ２１３ｂ）の詳細を示すフローチャートである。図２２は、Ｓ２１３ｂのサブルーチンに相当する。
Ｓ２１３２において、文字認識装置３０は、認識対象文字の輪郭点ｉと、輪郭点ｉから最も近い標準文字ｍの輪郭点と、における輪郭線の方向の違いＡＤｉを算出する。
Ｓ２１３３において、文字認識装置３０は、認識対象文字の輪郭点ｉと、輪郭点ｉから最も近い標準文字ｍの輪郭点と、のベクトル差ＶＤｉを算出する。
Ｓ２１３３の後、文字認識装置３０は図２２の処理を終了し、図２１の処理に戻る。
【００８１】
図２３は、輪郭線の方向の違いＡＤｉ及びベクトル差ＶＤｉについて説明した図である。輪郭線の方向の違いＡＤｉは以下の式により計算される。
ＡＤｉ  ＝  ｜Ａｉ−Ａｊ｜／１０
但し、Ａｊは、認識対象文字の輪郭点ｉから最も近い標準文字ｍの輪郭点における輪郭線の方向である。１０で除算するのは輪郭線の方向の違いＡＤｉに適切な重みづけを付与するためであり、重みづけには別の値が用いられてもよい。
なお、｜Ａｉ−Ａｊ｜が９０°より大きい場合には、輪郭線の方向の違いＡＤｉは以下の式により計算される。
ＡＤｉ  ＝  （１８０−｜Ａｉ−Ａｊ｜）／１０
【００８２】
ベクトル差ＶＤｉは以下の式により計算される。
ＶＤｉ  ＝  Ｄｉ＋ＡＤｉ
距離ＤｉはＳ１３０で算出済みの値である。
【００８３】
図２３の左側の例に示されるように、記号「□」で示される認識対象文字の輪郭点のうち中央の輪郭点における輪郭線の方向Ａｉを９０°とし、この輪郭点から最も近い標準文字ｍの輪郭点における輪郭線の方向Ａｊを９０°としたとき、輪郭線の方向の違いＡＤｉは以下の通りである。
ＡＤｉ  ＝  ｜９０−９０｜／１０
＝  ０
距離Ｄｉは２であるとすると、ベクトル差ＶＤｉは以下のように計算される。
ＶＤｉ  ＝  ２＋０
＝  ２
【００８４】
図２３の右側の例に示されるように、記号「□」で示される認識対象文字の輪郭点のうち中央の輪郭点における輪郭線の方向Ａｉを９０°とし、この輪郭点から最も近い標準文字ｍの輪郭点における輪郭線の方向Ａｊを４５°としたとき、輪郭線の方向の違いＡＤｉは以下の通りである。
ＡＤｉ  ＝  ｜９０−４５｜／１０
＝  ４．５
距離Ｄｉは０であるとすると、ベクトル差ＶＤｉは以下のように計算される。
ＶＤｉ  ＝  ０＋４．５
＝  ４．５
【００８５】
以上のように、図２３の右側の例よりも図２３の左側の例の方が、認識対象文字の輪郭点ｉから最も近い標準文字ｍの輪郭点までの距離Ｄｉは大きいが、ベクトル差ＶＤｉは図２３の右側の例の方が大きくなっている。このように、輪郭点間の距離Ｄｉだけでなく輪郭点における輪郭線の方向の違いＡＤｉも加味して判定を行うので、判定精度を向上できる。
【００８６】
図２１を再び参照して説明を続ける。
Ｓ２１６ｂにおいて、文字認識装置３０は、判定モジュール３２により、ベクトル差ＶＤｉの平均ＶＤＩａｖｇと分散ＶＤＩσ＾２を以下の式で算出する。
ＶＤＩａｖｇ  ＝  ｛Σ（ＶＤｉ）｝／Ｉｍａｘ
ＶＤＩσ＾２  ＝  ｛Σ（（ＶＤｉ−ＶＤＩａｖｇ）２）｝／Ｉｍａｘ
ここで、Σ（Ｘ）は、Ｘをｉ＝１からｉ＝Ｉｍａｘまで合計した値を示す。
【００８７】
Ｓ２１７ｂ〜Ｓ２２１ｂの処理は、標準文字ｍの輪郭点ｊと、輪郭点ｊから最も近い認識対象文字の輪郭点とのベクトル差ＶＤｊを算出する点で、Ｓ２１２ｂ〜Ｓ２１５ｂの処理と異なる。
図２４は、図２１に示されるベクトル差ＶＤｊを算出する処理（Ｓ２１８ｂ）の詳細を示すフローチャートである。
Ｓ２１８２において、文字認識装置３０は、標準文字ｍの輪郭点ｊと、輪郭点ｊから最も近い認識対象文字の輪郭点と、における輪郭線の方向の違いＡＤｊを算出する。
Ｓ２１８３において、文字認識装置３０は、標準文字ｍの輪郭点ｊと、輪郭点ｊから最も近い認識対象文字の輪郭点と、のベクトル差ＶＤｊを算出する。
Ｓ２１８３の後、文字認識装置３０は図２４の処理を終了し、図２１の処理に戻る。
【００８８】
Ｓ２２２ｂにおいて、文字認識装置３０は、判定モジュール３２により、ベクトル差ＶＤｊの平均ＶＤＪａｖｇと分散ＶＤＪσ＾２を以下の式で算出する。
ＶＤＪａｖｇ  ＝  ｛Σ（ＶＤｊ）｝／Ｊｍａｘ
ＶＤＪσ＾２  ＝  ｛Σ（（ＶＤｊ−ＶＤＪａｖｇ）２）｝／Ｊｍａｘ
ここで、Σ（Ｘ）は、Ｘをｊ＝１からｊ＝Ｊｍａｘまで合計した値を示す。Ｊｍａｘは標準文字ｍの輪郭点の総数である。
【００８９】
他の点については、Ｓ２１７ｂ〜Ｓ２２２ｂの処理はＳ２１２ｂ〜Ｓ２１６ｂの処理と同様である。
Ｓ２２２ｂの後、文字認識装置３０は図２１の処理を終了し、図１９の処理に戻る。
【００９０】
＜５．６  認識結果を決定＞
図１９を再び参照して説明を続ける。
Ｓ２４０ａにおいて、文字認識装置３０は、判定モジュール３２により、Ｓ２１０ｂにおいて算出された認識対象文字との差が第２の所定値以下である標準文字を認識結果として出力する。第２の所定値は、第１の所定値と同じ値でもよいし、異なる値でもよい。
他の点については、Ｓ２４０ａの処理は、図３を参照しながら説明した第１の実施形態のＳ２４０の処理と同様である。
Ｓ２４０ａの後、文字認識装置３０は、第３の実施形態に係る文字認識の処理を終了する。
【００９１】
図２５は、符号「■」で示される認識対象文字の輪郭点を２つの標準文字の輪郭点とそれぞれ比較した結果を示す。図２５の左側で認識対象文字と比較されている標準文字は、ロシア語の「н」（エヌ）である。図２５の右側で認識対象文字と比較されている標準文字は、ロシア語の「и」（イー）である。標準文字の輪郭点ｊは、それぞれ円で示されている。それぞれの円の中心位置が輪郭点ｊの位置を示す。円の大きさの意味については後述する。
【００９２】
まず、ベクトル差ＶＤｊを考慮せず、図１９のＳ１２０〜Ｓ１６０において算出された輪郭点間の距離だけを考慮した場合の判定結果は以下の通りである。符号「■」で示される認識対象文字の輪郭点の位置と、円の中心位置で示される標準文字の輪郭点の位置とを比較したところ、図２５の左側に示される標準文字「н」（エヌ）との比較での一致度は高かったが、囲み線ＸＸＶＡで示される部分には僅かな不一致もみられた。図２５の右側に示される標準文字「и」（イー）との比較では、囲み線ＸＸＶＢで示される部分には僅かな不一致が見られたものの、全体としては一致度が高かった。このため、符号「■」で示される認識対象文字は「н」（エヌ）であるとも「и」（イー）であるとも判別できなかった。
【００９３】
これに対し、Ｓ２００ａ〜Ｓ２３０ａにおいて算出されたベクトル差ＶＤｊを考慮した場合の判定結果は以下の通りである。図２５において、それぞれの円の直径の大きさがベクトル差ＤＶｊを示す。ベクトル差ＤＶｊを考慮したところ、図２５の左側の囲み線ＸＸＶＡで示される部分の不一致は大きく評価されることなく、むしろ図２５の右側の囲み線ＸＸＶＢで示される部分の不一致は大きく評価された。こうして、認識対象文字との差が第２の所定値以下であるのは唯一「н」（エヌ）のみであると判定できた。
このように、第３の実施形態によれば、文字を構成する線の位置のずれよりも、線の方向の違いを強調することができる。
【００９４】
＜６．第４の実施形態の動作＞
図２６は、第４の実施形態に係る文字認識装置３０のフローチャートである。第４の実施形態は、輪郭点の座標及び当該輪郭点における輪郭線の方向を用いても標準文字を１つに絞れなかった場合に文字の部分同士の比較を行う点で、第３の実施形態と異なる。
【００９５】
第４の実施形態において、文字認識装置３０は、以下の処理を行う。
（ベクタ画像へ変換）
Ｓ１００：認識対象文字のビットマップ画像をベクタ画像に変換する。
（輪郭点を抽出し、座標と方向を取得）
Ｓ１１０ｃ：認識対象文字のベクタ画像から複数の輪郭点を抽出し、複数の輪郭点のそれぞれの座標と輪郭線の方向Ａｉとを取得する。
（輪郭点の座標と輪郭点における輪郭線の方向とを用いて標準文字との差を算出）
Ｓ１２０〜Ｓ１６０：認識対象文字の複数の輪郭点と、複数の標準文字の各々についての複数の輪郭点と、のベクトル差を算出する。
（注目部分を抽出）
Ｓ１６５ａ〜Ｓ１８０ｃ：ベクトル差が第１の所定値以下である標準文字が１つの場合、その標準文字を認識結果とする。ベクトル差が第１の所定値以下である標準文字が複数ある場合、ベクトル差が大きい輪郭点が連続する部分を注目部分として抽出する。
（注目部分における平均と分散を算出）
Ｓ２１６ｃ、Ｓ２２１ｃ：注目部分におけるベクトル差ＶＤｉの平均及び分散と、注目部分におけるベクトル差ＶＤｊの平均及び分散とを算出する。
（認識結果を決定）
Ｓ２４０ａ：差が第２の所定値以下である標準文字を認識結果とする。
以下、詳細に説明する。
【００９６】
＜６．１  ベクタ画像へ変換＞
Ｓ１００において、認識対象文字のビットマップ画像をベクタ画像に変換する処理は、図３〜図５を参照しながら説明した第１の実施形態の処理と同様である。
【００９７】
＜６．２  輪郭点を抽出し、座標と方向を取得＞
Ｓ１１０ｃにおいて、文字認識装置３０は、輪郭点抽出モジュール３１により、認識対象文字のベクタ画像から複数の輪郭点を抽出し、複数の輪郭点のそれぞれの座標と輪郭線の方向Ａｉとを取得する。
【００９８】
図２７は、図２６に示される輪郭点の抽出と座標及び方向の取得とを行う処理（Ｓ１１０ｃ）の詳細を示すフローチャートである。図２７は、Ｓ１１０ｃのサブルーチンに相当する。
Ｓ１１１において、文字認識装置３０は、輪郭点抽出モジュール３１により、認識対象文字のベクタ画像に含まれる輪郭点に沿って、複数の点を抽出する。Ｓ１１１の処理は、図６及び図７を参照しながら説明した第１の実施形態のＳ１１１の処理と同様である。
Ｓ１１２において、文字認識装置３０は、輪郭点抽出モジュール３１により、複数の点についてそれぞれの座標を、認識対象文字の輪郭点として取得する。Ｓ１１２の処理は、図６及び図８を参照しながら説明した第１の実施形態のＳ１１２の処理と同様である。
Ｓ１１３ｃにおいて、文字認識装置３０は、輪郭点抽出モジュール３１により、Ｓ１１２で抽出された認識対象文字の複数の輪郭点について、それぞれの輪郭点ｉにおける輪郭線の方向Ａｉを取得する。Ｓ１１３ｃの処理は、図１９及び図２０を参照しながら説明した第３の実施形態のＳ１８０ｂの処理と同様である。
Ｓ１１３ｃの後、文字認識装置３０は輪郭点抽出モジュール３１による図２７の処理を終了し、図２６の処理に戻る。
【００９９】
＜６．３  輪郭点の座標と輪郭点における輪郭線の方向とを用いて標準文字との差を算出＞
図２６を再び参照して説明を続ける。
Ｓ１２０〜Ｓ１６０において、文字認識装置３０は、判定モジュール３２により、集合Ｎに属する標準文字の総数Ｎｍａｘに達するまで番号ｎの値を更新しながら、標準文字ｎと認識対象文字とのベクトル差を算出する。Ｓ１２０、Ｓ１５０、Ｓ１６０において、標準文字の総数Ｎｍａｘに達するまで番号ｎの値を更新する処理は、図３を参照しながら説明した第１の実施形態の処理と同様である。
【０１００】
Ｓ１３０ｃにおいて、文字認識装置３０は、判定モジュール３２により、記憶装置４０から標準文字ｎの複数の輪郭点の座標及び方向を読み出し、認識対象文字の複数の輪郭点の座標及び方向との差を算出する。
【０１０１】
図２８は、図２６に示される標準文字ｎの輪郭点の座標及び方向と認識対象文字の輪郭点の座標及び方向との差を算出する処理（Ｓ１３０ｃ）の詳細を示すフローチャートである。図２８は、Ｓ１３０ｃのサブルーチンに相当する。
図２８に示される処理は、標準文字ｍではなく標準文字ｎと認識対象文字とのベクトル差を算出する点で、図２１を参照しながら説明した第３の実施形態と異なる。図２８のＳ１３１ｃ〜Ｓ１４１ｃの処理は、図２１のＳ２１１ｂ〜２２２ｂの処理に対応する。
【０１０２】
図２９は、図２８に示されるベクトル差ＶＤｉを算出する処理（Ｓ１３３ｃ）の詳細を示すフローチャートである。図２９は、Ｓ１３３ｃのサブルーチンに相当する。
Ｓ１３３１において、文字認識装置３０は、認識対象文字の輪郭点ｉから最も近い標準文字ｎの輪郭点までの距離Ｄｉを算出する。Ｓ１３３１の処理は、図１１及び図１２を参照しながら説明した第１の実施形態のＳ１３３の処理と同様である。
Ｓ１３３２において、文字認識装置３０は、認識対象文字の輪郭点ｉと、輪郭点ｉから最も近い標準文字ｎの輪郭点と、における輪郭線の方向の違いＡＤｉを算出する。
Ｓ１３３３において、文字認識装置３０は、認識対象文字の輪郭点ｉと、輪郭点ｉから最も近い標準文字ｎの輪郭点と、のベクトル差ＶＤｉを算出する。
Ｓ１３３２及びＳ１３３３の処理は、標準文字ｍではなく標準文字ｎと認識対象文字とのベクトル差を算出する点の他は、図２２の対応する処理と同様である。
Ｓ１３３３の後、文字認識装置３０は図２９の処理を終了し、図２８の処理に戻る。
【０１０３】
図３０は、図２８に示されるベクトル差ＶＤｊを算出する処理（Ｓ１３８ｃ）の詳細を示すフローチャートである。図３０は、Ｓ１３８ｃのサブルーチンに相当する。
Ｓ１３８１において、文字認識装置３０は、標準文字ｎの輪郭点ｊから最も近い認識対象文字の輪郭点までの距離Ｄｊを算出する。Ｓ１３８１の処理は、図１１及び図１３を参照しながら説明した第１の実施形態のＳ１３８の処理と同様である。
Ｓ１３８２において、文字認識装置３０は、標準文字ｎの輪郭点ｊと、輪郭点ｊから最も近い認識対象文字の輪郭点と、における輪郭線の方向の違いＡＤｊを算出する。
Ｓ１３８３において、文字認識装置３０は、標準文字ｎの輪郭点ｊと、輪郭点ｊから最も近い認識対象文字の輪郭点と、のベクトル差ＶＤｊを算出する。
Ｓ１３８２及びＳ１３８３の処理は、標準文字ｍではなく標準文字ｎと認識対象文字とのベクトル差を算出する点の他は、図２４の対応する処理と同様である。
Ｓ１３８３の後、文字認識装置３０は図３０の処理を終了し、図２８の処理に戻る。
【０１０４】
＜６．４  注目部分を抽出＞
図２６を再び参照して説明を続ける。
Ｓ１６５ａにおいて、文字認識装置３０は、判定モジュール３２により、認識対象文字との差が第１の所定値以下である標準文字が１つだけであるか否かを判定する。
【０１０５】
認識対象文字との差が第１の所定値以下である標準文字が１つだけである場合（Ｓ１６５ａ：ＹＥＳ）、文字認識装置３０は、処理をＳ１７０ａに進める。
Ｓ１７０ａにおいて、文字認識装置３０は、判定モジュール３２により、認識対象文字との差が第１の所定値以下である標準文字を認識結果として出力する。
【０１０６】
認識対象文字との差が第１の所定値以下である標準文字が１つだけではない場合（Ｓ１６５ａ：ＮＯ）、文字認識装置３０は、処理をＳ１８０ｃに進める。このとき、認識対象文字との差が第１の所定値以下である標準文字の集合をＭとし、集合Ｍに属する複数の標準文字の各々を識別する番号をｍとする。例えば、認識対象文字との差が第１の所定値以下である標準文字が「成」の正字と俗字（後述）の２つである場合、集合Ｍに属する標準文字の総数Ｍｍａｘは２である。集合Ｍは集合Ｎの真部分集合である。
なお、Ｓ１６５ａにおいて認識対象文字との差が第１の所定値以下である標準文字が０個であった場合、別の認識処理が行われてもよい。例えば、認識対象文字との差が第１の所定値より大きい第３の所定値以下である標準文字を、仮の認識結果として出力してもよい。また例えば、認識対象文字の画像に含まれる微小なドットを除去して標準文字と比較し、仮の認識結果を出力してもよい。
【０１０７】
Ｓ１８０ｃにおいて、文字認識装置３０は、輪郭点抽出モジュール３１により、ベクトル差ＶＤｉ又はＶＤｊが所定値より大きい輪郭点が輪郭線に沿って所定個数連続する部分を注目部分として抽出する。
【０１０８】
図３１は、認識対象文字の輪郭点を符号「□」で示される標準文字の輪郭点と比較した結果を示す。円の中心は認識対象文字の輪郭点ｉ及び標準文字の輪郭点ｊの位置を示し、円の直径が当該輪郭点ｉに最も近い標準文字の輪郭点とのベクトル差ＶＤｉ、あるいは当該輪郭点ｊに最も近い認識対象文字の輪郭点とのベクトル差ＶＤｊを示す。
【０１０９】
認識対象文字は「成」の正字と呼ばれ、第３画の右上の角が突き出て第４画に触れるような字体となっている。標準文字は「成」の俗字と呼ばれ、日本の小学校で学習する字体である。これらの字は、字義は同じであるが異体字として区別されることがあるので区別して認識される必要がある。
【０１１０】
図３１に示される例では、一部に不一致点はあるが全体的に一致度が高いため、ベクトル差ＶＤｉ又はＶＤｊの平均と分散だけでは「成」の正字と俗字を区別できなかった。そこで、ベクトル差ＶＤｉ又はＶＤｊが所定値より大きい輪郭点が輪郭線に沿って所定個数連続する部分が含まれるような矩形部分を、注目部分ＸＸＸＩＩとして抽出する。
図３２は、図３１の画像の中から抽出された注目部分ＸＸＸＩＩを示す。
【０１１１】
＜６．５  注目部分における平均と分散を算出＞
図２６に戻って説明を続ける。
Ｓ２１６ｃにおいて、文字認識装置３０は、判定モジュール３２により、注目部分ＸＸＸＩＩにおけるベクトル差ＶＤｉの平均ＶＤＩａｖｇと分散ＶＤＩσ＾２を以下の式で算出する。
ＶＤＩａｖｇ  ＝  ｛Σ（ＶＤｉ）｝／Ｉｓｍａｘ
ＶＤＩσ＾２  ＝  ｛Σ（（ＶＤｉ−ＶＤＩａｖｇ）２）｝／Ｉｓｍａｘ
ここで、Σ（Ｘ）は、Ｘをｉ＝１からｉ＝Ｉｓｍａｘまで合計した値を示す。Ｉｓｍａｘは、認識対象文字の輪郭点のうち、注目部分ＸＸＸＩＩに含まれる輪郭点ｉの個数である。
【０１１２】
Ｓ２２１ｃにおいて、文字認識装置３０は、判定モジュール３２により、注目部分ＸＸＸＩＩにおけるベクトル差ＶＤｊの平均ＶＤＪａｖｇと分散ＶＤＪσ＾２を以下の式で算出する。
ＶＤＪａｖｇ  ＝  ｛Σ（ＶＤｊ）｝／Ｊｓｍａｘ
ＶＤＪσ＾２  ＝  ｛Σ（（ＶＤｊ−ＶＤＪａｖｇ）２）｝／Ｊｓｍａｘ
ここで、Σ（Ｘ）は、Ｘをｊ＝１からｊ＝Ｊｓｍａｘまで合計した値を示す。Ｊｓｍａｘは、標準文字の輪郭点のうち、注目部分ＸＸＸＩＩに含まれる輪郭点ｊの個数である。
【０１１３】
＜６．６  認識結果を決定＞
Ｓ２４０ａにおいて、文字認識装置３０は、判定モジュール３２により、Ｓ２１６ｃ及びＳ２２１ｃにおいて算出された認識対象文字との差が第２の所定値以下である標準文字を認識結果として出力する。第２の所定値は、第１の所定値と同じ値でもよいし、異なる値でもよい。
他の点については、Ｓ２４０ａの処理は、図３を参照しながら説明した第１の実施形態のＳ２４０の処理と同様である。
Ｓ２４０ａの後、文字認識装置３０は、第４の実施形態に係る文字認識の処理を終了する。
【０１１４】
以上のように、注目部分ＸＸＸＩＩの中での平均と分散を用いて判定を行うので、極めて似ている異体字でも高精度に判定できる。また、注目部分ＸＸＸＩＩの抽出のためにベクトル差ＶＤｉ及びＶＤｊを用いているので、注目部分ＸＸＸＩＩを的確に抽出できる。
【０１１５】
第４の実施形態では、図２６のＳ１００〜Ｓ１６０においてすべての標準文字について認識対象文字とのベクトル差を算出する場合について説明したが、本発明はこれに限定されない。例えば、第３の実施形態において説明した図１９のＳ２２０ａ：ＹＥＳの後、図２６のＳ１６５ａに移行してもよい。
第３及び第４の実施形態において、輪郭線の方向Ａｉは、最大値と最小値との差が１８０°未満となる範囲で定義されているが、本発明はこれに限定されない。輪郭線の方向Ａｉが３６０°の範囲で定義されてもよい。この場合には、注目部分の比較（Ｓ２１６ｃ、Ｓ２２１ｃ）において、正反対方向の輪郭線を異方向の輪郭線として扱ってもよい。
【図１】
2020077396.tif 000003
【図２】
2020077396.tif 000004
【図３】
2020077396.tif 000005
【図４】
2020077396.tif 000006
【図５】
2020077396.tif 000007
【図６】
2020077396.tif 000008
【図７】
2020077396.tif 000009
【図８】
2020077396.tif 000010
【図９】
2020077396.tif 000011
【図１０】
2020077396.tif 000012
【図１１】
2020077396.tif 000013
【図１２】
2020077396.tif 000014
【図１３】
2020077396.tif 000015
【図１４】
2020077396.tif 000016
【図１５】
2020077396.tif 000017
【図１６】
2020077396.tif 000018
【図１７】
2020077396.tif 000019
【図１８】
2020077396.tif 000020
【図１９】
2020077396.tif 000021
【図２０】
2020077396.tif 000022
【図２１】
2020077396.tif 000023
【図２２】
2020077396.tif 000024
【図２３】
2020077396.tif 000025
【図２４】
2020077396.tif 000026
【図２５】
2020077396.tif 000027
【図２６】
2020077396.tif 000028
【図２７】
2020077396.tif 000029
【図２８】
2020077396.tif 000030
【図２９】
2020077396.tif 000031
【図３０】
2020077396.tif 000032
【図３１】
2020077396.tif 000033
【図３２】
2020077396.tif 000034