パラメータ調整ツール操作マニュアル

目次
  1. 概略
  2. 画像の読み込み
  3. パラメータ設定ダイアログ
    1. 必須タブ
    2. 任意タブ
    3. 距離タブ
    4. クラスタタブ
    5. 領域タブ
    6. 例外処理タブ
    7. 更新ボタン
    8. ロードボタンとセーブボタン
    9. 一括取得と追加取得ボタン
    10. 抽出実行とクリアボタン
    11. デフォルトボタンと推奨値ボタン
    12. 誤差ボタン
    13. バッチボタン
    14. 説明ボタンとチェックボタン
    15. パラメータ調整のコツ


マニュアルホームページ

リファレンスマニュアル


1.概略

パラメータ調整ツールは、ALOCR(C++版)、ALOCRC(C版)のレイアウト認識SDKのサンプルプログラム兼、パラメータファイル作成ツールです。
サンプルプログラムの実行ファイルは、SDK購入者には無料で提供されます。
サンプルプログラムの不具合、作成したパラメータファイルの不具合に関しては、無保証とします。


目次

2.画像読み込み

画像の読み込みは「ファイル」メニューの「画像ファイル読み込み」で行います。読み込めるファイルは、モノクロ2値のTIFFファイルとBMPファイルです。
256階調グレイスケールはSDKではサポートされていますが、このプログラムではサポートされていません。


目次

3.パラメータ

画像読み込み後に「イメージ」メニューの「パラメータ設定」を実行すると、以下のような「パラメータ設定」ダイアログが表示されます。

必須タブ

このダイアログはモードレスダイアログとなっていて、実際のパラメータの有効性を確認しながら、パラメータを設定することができます。また、画面からパラメータをマウス操作で取得する機能もあります。
初心者は、「推奨値」ボタンを利用して、そのパラメータを、少しずつ変えていくことによって、パラメータ調整のコツをつかむと良いでしょう。
パラメータがうまく設定できないときは、
パラメータ調整のコツを参照するとよいでしょう。


目次

必須タブ


必須タブでは、プリミティブの幅と高さを指定します。プリミティブ必須パラメータで、プリミティブの幅と高さの最小値と最大値を指定します。プリミティブとは、画像のピクセルが連結している領域のことを指しています。以下の図ではプリミティブの幅は7、高さは5となります。
数字や英語の大文字は、1文字=1プリミティブとなりますが、漢字や「i」「j」「=」のように1文字が複数のプリミティブから成る文字もあります。

primitive

最小限必須タブのパラメータと距離タブのパラメータを設定すれば、テキストブロックの抽出を行うことができます。

必須タブ

漢字やカンマ、ピリオドが対象文字に含まれる場合、プリミティブの幅と高さの下限は3や4という小さい値にする必要があります。濁点やピリオドの大きさが小さいからです。
ここでの、下限を大きめにして、
例外処理タブの「小さい文字(中黒、ピリオド、カンマ)を無条件で通す」をオンにすることもできます。
取得ボタンをクリックすると、実際の画像でプリミティブの上限値と下限値を取得することができます。ボタンをクリックした後に、画面上でマウスの左ボタンを押して、次に左ボタンを離すまでの距離が、ダイアログに設定されます。

パラメータ取得(直線)

下限値は実際の文字よりも少し小さめに、上限値は少し大きめに取得するとよいでしょう。
パラメータの変更を、実際のテキストブロック(クラスタ)抽出に反映するには、更新ボタン
をクリックします。
目次

任意タブ

任意タブでは、プリミティブの高さ/幅の比や面積に関する制限を指定できます。周囲長の計算は標準ではサポートしていません。
下の図の場合、高さは5で幅は7となっており、比は0.714285(5/7)、プリミティブの面積は14となります。

primitive

慣れるまでは任意タブのパラメータはチェックを外しておきます。制限を厳しくするときには、任意タブのチェックをオンにして、値を指定します。

任意タブ

漢字を構成するプリミティブには、予想外のものがあるため、漢字が認識対象に含まれるときは、チェックは外しておきましょう。
取得ボタンをクリックすると、実際の画像でプリミティブの、高さ/幅や面積を取得することができます。ボタンをクリックした後に、画面上でマウスの左ボタンを押して、次に左ボタンを離すまでの矩形にかかるプリミティブの、高さ/幅や面積がダイアログに設定されます。ここで選択するプリミティブは必ず一つである必要があります。

パラメータ取得(矩形)

矩形はプリミティブ(文字あるいは文字の一部)の一部にかかるように指定します。矩形がかかるプリミティブが一つだけの時にパラメータが取得されます。ただし、文字としてあまりにも異常なサイズ(通常大きすぎる)場合には無視されます。
パラメータの変更を、実際のテキストブロック(クラスタ)抽出に反映するには、
更新ボタン
をクリックします。
目次

距離タブ


プリミティブ間距離は必須パラメータで、2つのプリミティブの外接矩形間のユークリッド距離あるいは、外接矩形間の市街地距離で指定します。下の図の場合、ユークリッド距離はsqrt(3^2 + 4^2)の5で、市街地距離だとX軸方向は4でY軸方向は3となります。

primitive2

漢字など複数のプリミティブからなる文字では、プリミティブ間の距離が0となるため、距離の最小値は必ず0にします。

primitive3

このパラメータは必須です。縦書きと横書きだけで斜めの文字列がない通常の文書では、市街地距離がいいでしょう。斜めの文字列が多い場合は、ユークリッド距離でも構いません。

距離タブ

漢字が対象文字に含まれる場合、距離は必ず0にします。
取得ボタンをクリックすると、実際の画像でプリミティブ間の距離を取得することができます。ボタンをクリックした後に、画面上でマウスの左ボタンを押して、次に左ボタンを離すまでの距離が、ダイアログに設定されます。

パラメータ取得(間隔)

下限値は実際の間隔よりも少し小さめに、上限値は少し大きめに取得するとよいでしょう。
パラメータの変更を、実際のテキストブロック(クラスタ)抽出に反映するには、
更新ボタン
をクリックします。

目次

クラスタタブ


クラスタ任意パラメータでは、クラスタの幅と高さの最小値と最大値を指定します。クラスタとは、プリミティブパラメータとプリミティブ間距離パラメータに合ったプリミティブの集合のことです。プリミティブが文字とすると、クラスタはテキスト段落ということになります。
以下の図の場合、プリミティブ間ユークリッド距離の最大値を2とすると、左上と右下のプリミティブ群は別々のクラスタということになり、画像内には2つのクラスタが存在することになります。プリミティブ間ユークリッド距離の最大値を5とすると、左上と右下のプリミティブ群は同じクラスタに属し、画像内には1津のクラスタが存在することになります。

cluster

クラスタの幅と高さのパラメータは、必ずプリミティブの幅と高さのパラメータよりも大きくなります。上の図が2つのクラスタとなる場合、各クラスタの高さは2で、左上のクラスタの幅は7、右下のクラスタの幅は5となります。

クラスタ内プリミティブ数は、段落内の文字数+αに該当します。+αは漢字のように1文字が複数のプリミティブから成るためで、認識対象に漢字等が含まれる場合は、プリミティブ数の最大値は大きめに設定するといいでしょう。
上の図の場合、左上のクラスタのプリミティブ数は4で、右下のクラスタのプリミティブ数は3となります。

良く分からない場合、クラスタ任意パラメータのチェックは外して無視しても構いません。パラメータを設定しても、うまくプリミティブが抽出できない場合、クラスタに関するパラメータが影響していることが多いようです。チェックを一つずつオン/オフして、どのパラメータが原因かを調べましょう。

クラスタタブ

プリミティブの下限値とクラスタの下限値が異なる時に注意しましょう。プリミティブの高さが最小7としていても、クラスタの高さの最小が15だと、高さ10の文字列は取得できません。
取得ボタンをクリックすると、実際の画像でクラスタの幅と高さの上限値と下限値を取得することができます。ボタンをクリックした後に、画面上でマウスの左ボタンを押して、次に左ボタンを離すまでの距離が、ダイアログに設定されます。

パラメータ取得(クラスタ)

下限値は実際のクラスタよりも少し小さめに、上限値は少し大きめに取得するとよいでしょう。
パラメータの変更を、実際のテキストブロック(クラスタ)抽出に反映するには、
更新ボタン
をクリックします。
目次

領域タブ


領域タブは任意パラメータで、帳票のように固定した場所に文字がある場合に、その場所を囲む長方形の座標を指定します。
通常はチェックする必要はありません。

領域タブ

取得ボタンをクリックすると、実際の画像で領域座標を取得することができます。ボタンをクリックした後に、画面上でマウスの左ボタンを押して、次に左ボタンを離すまでの矩形が、ダイアログに設定されます。

パラメータ取得(領域)

傾き等を考慮して、少し大きめに領域を指定するといいでしょう。
パラメータの変更を、実際のテキストブロック(クラスタ)抽出に反映するには、
更新ボタン
をクリックします。
目次

例外処理タブ


例外処理タブは、大きさや距離以外の特殊な処理によるクラスタ(テキストブロック)抽出をコントロールします。2つのプリミティブ間に別のプリミティブ(セパレータ)が存在する場合に、「セパレータでクラスタを分割」をチェックします。チェックされている場合、プリミティブ間ユークリッド距離が5であるとしても、左上と右下のクラスタは別の物として扱われます。
separator
「細長い文字(1やIなど)を無条件で通す」をチェックすると、1やアルファベットのIのように長いプリミティブは無条件でパラメータに合致するものと判断します。「平たい文字(−、ーなど)を無条件で通す」「小さい文字(中黒、ピリオド、カンマ)を無条件で通す」も同様です。長い文字、平たい文字、小さい文字は、パラメータが例外的な値をとるために、処理も例外的に行うことによって、大きさ等のパラメータで例外的な文字のことを考慮せずにすみます。

longprimitive
上記の文字の場合、高さは2で幅は8で高さ/幅は0.25ですが、他の文字と比較すると極端な値になっています。こうした文字は、最初からハイフンであると考えてパラメータでの判断からは外すようにします。
「1プリミティブ1文字1行(英大文字+数字など)」「1プリミティブ1文字1列(90度回転英大文字+数字など)」は、公図、地籍図、路線価図といった特殊な文書向けのチェックです。英大文字や数字のように1文字が必ず1プリミティブで構成されている場合だけチェックすることで、抽出精度を上げることができます。
「1プリミティブ1文字1行(英大文字+数字など)」と「1プリミティブ1文字1列(90度回転英大文字+数字など)」は、どちらか一方だけをチェックして両方一度にチェックしないようにします。
通常は、「セパレータでクラスタを分割」だけチェックして、後はチェックを外すようにします。
慣れてきたら他のチェックを利用するようにしましょう。
「小さいプリミティブだけで構成されるクラスタを除外」は、破線やノイズ領域のような文字としては小さすぎるプリミティブが大部分を占めるクラスタを除外します。もちろん「、。や濁点、半濁点、:;”」などは除外しないように考慮されています。
「ベタグラフィック内部のクラスタを除外」は、新聞の写真などを取り込んだ部分の画像の内部のプリミティブを除外するためのフラグです。文字としては大きすぎ、かつ面積の大きいプリミティブにの外接矩形内部には、クラスタは発生しません。表や枠の場合は面積は小さいため、内部のクラスタも通常通りに抽出されます。

例外処理タブ

パラメータの変更を、実際のテキストブロック(クラスタ)抽出に反映するには、
更新ボタン
をクリックします。
目次

更新ボタン


パラメータを変更した後、パラメータをロードした後、デフォルトボタンをおした後、推奨値を設定した後に、更新ボタンをクリックします。
更新ボタンをクリックしない場合、パラメータの変更は実際のクラスタ(テキストブロック)抽出には反映されません。

目次

ロードボタンとセーブボタン


パラメータをファイルに保存します。拡張子".prm"というファイルに保存されます。パラメータファイルはテキストファイルであるためエディタで編集することもできます。ただし、行数を変更したり、行頭の"//"を削除してはいけません。
パラメータをロードした場合、実際のテキストブロック(クラスタ)抽出に反映するには、
更新ボタン
をクリックします。
目次

一括取得と追加取得ボタン


プリミティブの4つの必須パラメータと4つの任意パラメータを一括して取得することができます。一括取得ボタンをクリックしてから、マウスの左ボタンでプリミティブを一つ選択します。マウスの左ボタンを押して、左ボタンを離すまでの矩形にかかるプリミティブの幅、高さ、高さ/幅、面積の値がダイアログに設定されます。
選択するプリミティブは必ず一つです。

パラメータ取得(矩形)

さらに、追加取得ボタンで、今までのパラメータの値を拡張する形で上限値と下限値の範囲を広げることができます。
「ャ」を「一括取得」するとプリミティブの幅は、例えば11〜13となります(誤差設定値に依存)。
「キ」を「追加取得」するとプリミティブの幅は、例えば18〜22となります(誤差設定値に依存)。
この場合「ャ」を「一括取得」したあとで、「キ」を「追加取得」するとプリミティブの幅は、例えば11〜22となります。

パラメータ取得(追加取得)

パラメータを「一括取得」あるいは「追加取得」した場合、実際のテキストブロック(クラスタ)抽出に反映するには、
更新ボタン
をクリックします。
目次

抽出実行とクリアボタン


現在のパラメータを用いて、抽出を実行することができます。抽出したテキストはグリーン表示され、テキストブロックを囲む外接矩形が表示されます。
抽出結果がおかしい場合は、クリアボタンを押して、テキストを元に戻した後に、パラメータを調整し、再度「抽出実行」をクリックします。

目次

デフォルトボタンと推奨値ボタン


パラメータの値の意味が分からず、最初の状態が分からなくなったときは、デフォルトボタンをクリックすると、全てのパラメータが初期設定のデフォルト値に戻ります。
推奨値ボタンをクリックすると、以下の推奨値ダイアログが表示されます。

推奨値ダイアログ

文字のポイント数を設定するだけで、文書タイプ別の推奨パラメータを設定することができます。
推奨値計算解像度は特に指定、変更する必要はありません。
ポイント数可変文書では、場合によって文字サイズが変わる文書での文字ポイント数を指定します。72ポイント=1インチとなっていますが、通常の文字サイズは8〜12ポイントで、見出し等では18ポイント以上のものがあります。また、5ポイント以下の小さい文字は、文字認識率があまり良くありません。
慣れるまでは、推奨値ダイアログで基本的な値を設定して、その値を変更すると良いでしょう。

パラメータの変更を、実際のテキストブロック(クラスタ)抽出に反映するには、
更新ボタン
をクリックします。
目次

誤差ボタン


「取得」ボタン、「一括取得」ボタン、「追加取得」ボタンで取得した値から各パラメータの上限値と下限値を設定する際の値の範囲(%)を指定します。例えば取得した値が20で誤差が10%の場合、誤差は20の10%の2となり値の下限は20−2、上限は20+2となります。

誤差設定ダイアログ

誤差を大きくすると、より広範囲の文字サイズに対応することができます。

目次

バッチボタン


テキストブロック(クラスタ)の抽出は、数段階に分けて行うことができます。「バッチ」ボタンをクリックするとその処理をシミュレートするためのバッチ処理ダイアログです。
複数パスでのテキストブロックの抽出は、高度な手法で1パスでの抽出にある程度慣れてから使うようにすることをお勧めします。複数パスでの抽出は、テキストブロック抽出の精度を上げるために利用されます。
指定したパラメータを使って、テキストブロックを抽出したとき、抽出したテキストはレイヤ1に移動します。
例えば、横書き専用のパラメータ(例外処理タブで「1プリミティブ1文字1行」をチェック)を指定して、パス1で横書きのテキストブロックを抽出します。横書きのテキストブロックがレイヤ1に移動します。
パス2で、縦書き専用のパラメータ(例外処理タブで「1プリミティブ1文字1列」をチェック)縦書きのテキストブロックを抽出します。この場合、レイヤ0に残った画像が抽出の対象となります。

6ポイントくらいの文字サイズと、10ポイントくらいの文字サイズが含まれる文書では、1パスで抽出するには6〜10ポイントの文字サイズを指定して抽出します。この場合、7〜9ポイントの文字と同サイズのプリミティブも文字として抽出される可能性があります。
6ポイント専用のパラメータと10ポイント専用のパラメータを使って2パスで抽出することによって、より精度の高い抽出を行うことができます。

バッチ処理ダイアログ

バッチ処理では、「パラメータ指定」「抽出」「クラスタクリア」の3つのボタンを使って処理をシミュレートします。2パスの場合の、順序としては、「クラスタクリア」→「パラメータ指定」→「抽出」→「パラメータ指定」→「抽出」となります。

目次

説明ボタンとチェックボタン


「説明」ボタンは、現在表示されてえいるタブの説明を表示します。
「チェック」ボタンは、各パラメータの間に矛盾がある場合に指摘します。

目次

パラメータ調整のコツ


パラメータの調整が上手くいかない場合、以下のようなチェックを行います。
  1. パラメータ変更後に更新ボタンをクリックしているかどうか。

  2. 漢字が対象となる場合に、距離の下限は0でなければならない。
  3. プリミティブ間の距離が大きいとクラスタも大きくなり、クラスタサイズの指定を超えて、テキストブロックとして認識されないことがある。

  4. クラスタのプリミティブ数の上限が小さ過ぎないかどうかチェック。

  5. クラスタのサイズの下限が大き過ぎないかどうかチェック。

  6. チェックボタンをクリック。

  7. 任意パラメータのチェックを外して試す。一つずつチェックを戻して、どのパラメータが原因で抽出できないかを突き止める。

  8. 「1プリミティブ1文字1行(英大文字+数字など)」と「1プリミティブ1文字1列(90度回転英大文字+数字など)」の両方をチェックしていると抽出できない

目次

マニュアルホームページ

リファレンスマニュアル