カスタム フォントについての光学式文字認識の学習
光学式文字認識 (OCR) アプリでは、カスタム言語またはカスタム フォントを認識するよう関数 ocr
に学習させます。このアプリを使用して OCR 学習で対話的に文字データにラベルを付けることができ、関数 ocr
で使用する OCR 言語データ ファイルを生成できます。
OCR トレーナー アプリを開く
MATLAB® ツールストリップ: [アプリ] タブの [イメージ処理とコンピューター ビジョン] の下にある OCR アプリ アイコン
をクリックします。
MATLAB コマンド プロンプト:
ocrTrainer
と入力します。
OCR の学習
OCR トレーナーで [新規セッション] をクリックして [OCR 学習セッションの設定] ダイアログ ボックスを開きます。
[出力設定] で OCR 言語データ ファイルの名前を入力し、そのファイルの出力フォルダーの場所を選択します。指定する場所は書き込み可能でなければなりません。
[ラベル付けの方法] で、データに手動でラベルを付けるか、光学式文字認識を使用して事前のラベル付けを行います。OCR を使用する場合、プレインストールされた英語または日本語を選択するか、あるいは追加の言語サポート ファイルをダウンロードすることができます。
メモ
言語サポート ファイルをダウンロードするには、MATLAB コマンド ウィンドウで「
visionSupportPackages
」と入力します。あるいは、MATLAB [ホーム] タブの [環境] セクションで、[アドオン]、[アドオンの入手] をクリックします。その後、検索ボックスを使って "Computer Vision System Toolbox OCR Language Data" を検索します。学習セッション中はいつでもイメージを追加できます。トレーナーは OCR 学習用のイメージを自動的にセグメント化します。結果を検査して、テキストが予想どおりセグメンテーションが行われていることを確認します。セグメンテーションを改善するには、イメージの領域分割アプリを使用してイメージを事前処理します。イメージを追加した後、学習イメージ ビューからセグメンテーションの結果を検査できます。
OCR を特定の文字セットに制限するには、[文字セット] チェック ボックスをオンにして文字を追加します。
メモ
OCR に認識させるテキストを含む学習イメージを使用します。数文字しか含まない学習イメージは使用しないでください。OCR の学習が最も効果的となるのは、学習イメージに多数の単語から構成されるブロックが含まれる場合です。関数
insertText
を使用して、既知のフォントの学習イメージを自動で生成できます。I = zeros(500,500,3,'uint8'); textLines = [ "some training text" "even more stuff to learn" ] lineYLocation = 50; for i = 1:numel(textLines) I = insertText(I,[50 lineYLocation],char(textLines(i)), ... 'Font','LucidaSansRegular',... 'FontSize',16,'TextColor','white',... 'BoxOpacity',0); % increment to next line lineYLocation = lineYLocation + 20; end figure imshow(I)
ノイズを含んだイメージがあれば削除します。セグメンテーションの結果を向上させるために、関心領域を描画してイメージの一部を選択できます。元のイメージが左側に、編集されたイメージが右側に表示されます。終了後、[すべて確定] をクリックします。
抽出されたサンプルを文字ビュー ウィンドウで変更します。
サンプルを修正するには、文字ビュー ウィンドウでサンプルのグループを選択し、[文字ラベル] フィールドを使ってラベルを変更します。
サンプルを学習対象から除外するにはサンプルを右クリックして、そのサンプルを [不明] カテゴリに移すオプションを選択します。不明のサンプルはデータ ブラウザー ウィンドウの最上部にリストされ、学習には使用されません。
境界ボックスで文字が切断されている場合は、文字をダブルクリックして抽出元のイメージ内で変更を行います。
サンプルの修正後、[学習] をクリックします。トレーナーでの学習が完了すると、アプリにより OCR 言語データ ファイルが作成されて指定フォルダーに保存されます。
アプリのコントロール
セッション
新規セッションを開始し、保存済みのセッションを開き、あるいはセッションを現在のセッションに追加します。セッションを保存して名前をつけることもできます。セッションは MAT ファイルとして保存されます。
Add Images
イメージを追加します。新規セッションを開始するときや現在のイメージ コレクションを承認した後にイメージを追加できます。
Settings
フォント表示を設定または変更します。
Edit Box
選択した文字を含むイメージを境界ボックスと共に選択します。追加領域を作成したり、既存イメージのマージ、変更、削除を行ったりすることができます。ROI を削除するには、Delete キーを使用します。
Train
セッションから OCR データ ファイルを作成します。.traineddata
ファイルを関数 ocr
で使用するには、関数 ocr
の 'Language'
プロパティを設定してカスタム言語の指示に従います。
Generate Function
学習結果の検証のために自動生成される評価関数を作成します。
メモ
OCR トレーナー アプリを実行する前に、マシンにインストールされている Tesseract が 1 つのみかどうかをチェックします。複数の Tesseract がインストールされている場合は、余分なインストールを削除し、MATLAB を再起動して OCR トレーナー アプリを実行します。これを行っていない場合、[学習] ボタンをクリックすると、アプリは "入力引数が不足しています" というエラーを返します。