機械学習PlatoBlockchainデータインテリジェンスを使用して手書き認識を簡単に行う方法。 垂直検索。 愛。

機械学習を使用して手書き認識を簡単に行う方法

機械学習を使用して手書き認識を簡単に行う方法

手書き OCR を実行したいですか? このブログは、深層学習を使用した手書き認識の最新の方法を包括的にまとめたものです。 私たちは最新の研究と論文をレビューし、手書きリーダーも一から構築しました。


ナノネット OCR API 多くの興味深いものがあります ユースケース。 詳細については、NanonetsAIの専門家にご相談ください。


概要

光学式文字認識 (OCR) の市場規模は、13.38 年までに 2025 億 13.7 万米ドルとなり、前年比 XNUMX% の成長が見込まれています。 この成長は、OCR を使用してビジネス プロセスを急速にデジタル化し、人件費を削減し、貴重な工数を節約したことが原動力となっています。 OCR は解決された問題と考えられていますが、その重要なコンポーネントの XNUMX つである手書き認識 (手書き OCR) または手書きテキスト認識 (HTR) が依然としてあり、依然として困難な問題と考えられています。 人によって手書きスタイルが大きく異なることと、印刷されたテキストと比較して手書きテキストの品質が低いことが、手書きテキストを機械可読テキストに変換する際の大きな障害となります。 それにもかかわらず、これは医療、保険、銀行などの複数の業界にとって解決すべき重要な問題です。

機械学習を使用して手書き認識を簡単に行う方法
ソース:- https://www.semanticscholar.org/paper/Handwriting-recognition-on-form-document-using-and-Darmatasia-Fanany/

トランスフォーマーアーキテクチャの出現など、ディープラーニングの最近の進歩により、手書きテキスト認識のクラッキングにおける進歩が急速に進んでいます。 手書きのテキストを認識することは、ICRを解決するために必要なアルゴリズムが、一般的なOCRを解決するよりもはるかに多くのインテリジェンスを必要とするという事実から、インテリジェント文字認識(ICR)と呼ばれます。

この記事では、手書きテキスト認識のタスクとその複雑さ、そしてディープラーニング技術を使用してそれを解決する方法について学びます。


手書きのフォームからデータを抽出したいですか? に向かいます ナノネット 手書きのOCRモデルの作成を無料で始めましょう!


手書き認識の課題

  1. 人から人へのストロークの大きな変動性と曖昧さ
  2. 個人の手書きスタイルも時々異なり、一貫性がありません
  3. 時間の経過による劣化によるソースドキュメント/画像の品質の低下
  4. 印刷されたドキュメントのテキストは一直線に並んでいますが、人間は白い紙に一直線にテキストを書く必要はありません。
  5. 筆記体の手書きは、文字の分離と認識を困難にします
  6. 手書きのテキストは、すべてのテキストがまっすぐに立っている印刷されたテキストとは対照的に、右に可変回転することができます
  7. 学習するために適切なラベル付きデータセットを収集することは、合成データと比較して安価ではありません

ユースケース

ヘルスケアおよび医薬品

患者の処方箋のデジタル化は、ヘルスケア/製薬業界の主要な問題点です。 たとえば、ロシュは毎日数百万ペタバイトの医療用PDFを処理しています。 手書きのテキスト検出が重要な影響を与えるもうXNUMXつの分野は、患者の登録とフォームのデジタル化です。 サービスのツールキットに手書き認識を追加することで、病院/医薬品はユーザーエクスペリエンスを大幅に向上させることができます

保険

大規模な保険業界は20日にXNUMX万件を超えるドキュメントを受け取り、請求の処理が遅れると、会社に大きな影響を与える可能性があります。 クレームドキュメントにはさまざまな手書きスタイルを含めることができ、クレーム処理の純粋な手動自動化によりパイプラインが完全に遅くなります

機械学習を使用して手書き認識を簡単に行う方法
出典:-https://www.researchgate.net/figure/mages-of-handwritten-bank-cheques-from-different-countries-a-Brazilian-1-b-American_fig2_226705617

バンキング

人々は定期的に小切手を書きますが、小切手は依然としてほとんどの非現金取引で主要な役割を果たしています。 多くの発展途上国では、現在の小切手処理手順では、銀行員が小切手にある情報を読んで手動で入力し、署名や日付などの入力を確認する必要があります。 銀行では毎日多数の小切手を処理する必要があるため、手書きのテキスト認識システムを使用すると、人的作業のコストと時間を節約できます。

オンライン図書館

全世界にアクセスするための画像スキャンをアップロードすることにより、膨大な量の歴史的知識がデジタル化されています。 しかし、この作業は、画像内のテキストを識別して索引付け、照会、および参照できるようになるまで、あまり役に立ちません。 手書き認識は、中世および20世紀の文書、はがき、調査研究などを生き生きとさせる上で重要な役割を果たします。

メソッド

手書き認識方法は、大きく次のXNUMX種類に分類できます。

機械学習を使用して手書き認識を簡単に行う方法
  1. オンライン方法 :-オンラインの方法では、デジタルペン/スタイラスが使用され、上の右の図に示すように、テキストが書き込まれている間、ストローク情報、ペンの位置にアクセスできます。 書かれているテキストの流れに関して多くの情報を持っている傾向があるので、それらはかなり高い精度で分類することができ、テキスト内の異なる文字間の境界がはるかに明確になります
  2. オフラインメソッド :- オフライン方法では、一旦書き込まれたテキストを認識する必要があるため、ソース、つまり紙からの背景ノイズが追加される可能性があり、書き込み中に含まれるストローク/方向に関する情報が得られません。

現実の世界では、ストローク情報をキャプチャするセンサーを備えたデジタル ペンを持ち歩くことが常に可能/拡張可能であるとは限りません。そのため、オフラインでテキストを認識するタスクの方がはるかに重要な問題となります。 したがって、ここではオフライン テキストの認識の問題を解決するためのさまざまな手法について説明します。

手法別案内

手書き認識を解決するための最初のアプローチには、隠れマルコフ モデル (HMM) や SVM などの機械学習手法が含まれていました。最初のテキストが前処理されると、特徴抽出が実行されて、ループ、変曲点、アスペクト比などの重要な情報が特定されます。個性的なキャラクターの。 これらの生成された特徴は、結果を取得するために HMM などの分類器に供給されます。 機械学習モデルのパフォーマンスは、手動による特徴抽出フェーズと学習能力の限界により、かなり制限されています。 特徴抽出ステップは個々の言語ごとに異なるため、スケーラブルではありません。 ディープラーニングの出現により、手書き認識の精度が大幅に向上しました。 手書き認識のための深層学習の分野における著名な研究のいくつかについて説明しましょう

多次元リカレントニューラルネットワーク

私たちが知っている RNN/LSTM は、連続データを処理して時間的パターンを識別し、結果を生成できます。 ただし、扱うのは 1D データに限定されているため、画像データには直接適用できません。 この問題を解決するために、この論文の著者らは、以下の図に示すような多次元 RNN/LSTM 構造を提案しました。

機械学習を使用して手書き認識を簡単に行う方法

以下は、一般的なRNNと多次元RNNの違いです。 一般的なRNNでは、隠れ層は、時間i-1で前の隠れ層から状態を受け取ると言います。 多次元RNN、たとえば2次元RNNでは、隠れ層(i、j)は、複数の前の隠れ層、つまり(i-1、j)と(i、j-1)から状態を受け取り、両方からコンテキストをキャプチャします。ネットワークによってローカル領域を明確に理解するために極めて重要な画像の高さと幅。 これはさらに拡張され、BI-LSTMがt-1およびt + 1から情報を受信するのと同様に、前のレイヤーだけでなく将来のレイヤーからも情報を取得します。 同様に、2D MDRNN隠れ層iは、情報(i-1、j)、(i、j-1)、(i + 1、j)、(i、j + 1)を受信できるため、すべての方向のコンテキストをキャプチャできます。

機械学習を使用して手書き認識を簡単に行う方法

ネットワーク構造全体を上に示します。 MDLSTMが使用されます。これは、上記のMDRNNの説明からRNNブロックをLSTMブロックに置き換えることに他なりません。 入力はサイズ3×4のブロックに分割され、MDSTMレイヤーに供給されます。 ネットワークは、MDLSTM層と、それに続くフィードフォワード(ANN)層の階層構造を備えています。 次に、最終出力が1Dベクトルに変換され、CTC関数に渡されて出力が生成されます。

コネクティビスト時間分類(CTC) 音声認識や手書き認識などのタスクを処理するために使用されるアルゴリズムであり、入力データと出力文字起こしのみが利用可能ですが、位置合わせの詳細は提供されません。つまり、音声の特定の領域が音声の場合、または画像の特定の領域が手書きの場合にどのように配置されるかが提供されません。特定の文字に合わせて配置されます。 各文字に同じ領域を与えるなどの単純なヒューリスティックは、各文字が占めるスペースの量が人によって、またその時々によって手書きで異なるため、機能しません。

手書き認識のユースケースでは、特定の文の入力画像領域を入力として考慮します X=[x1,x2、…、x ** T]期待される出力は Y=[y1,y2、…、y ** U] 。 X が与えられると、正確な Y を見つけることになっています。CTC アルゴリズムは、入力 X を取得し、最終出力の予測を行うために使用できるすべての可能な Y に分布を与えることによって機能します。

CTC は基本文字を使用して、入力領域内の重複文字と繰り返し文字を区別します。 たとえば、特定の文字が入力の複数の領域にまたがる可能性があるため、CTC は同じ文字を連続して出力します。 例:- 入力 james と CTC の出力は jjaammmees です。 最終出力は、繰り返された出力を折りたたむことによって得られるため、james が得られます。 しかし、こんにちはの 'l' などの重複文字を表示するには、適切な区切りを用意する必要があるため、すべての出力はハイフン (-) で区切られます。 hello の出力は h-ee-ll-lll-oo になりますが、これを折りたたむと hello ではなく hello になります。 CTC の仕組みの詳細については、こちらをご覧ください。 CTC.

各位置の最高確率の単純なヒューリスティックに基づいて CTC の出力をデコードすると、現実の世界では意味をなさない結果が得られる可能性があります。 これを解決するには、別のデコーダを使用して結果を改善する可能性があります。 さまざまなタイプのデコードについて説明しましょう

  1. ベストパスデコード :-これはこれまでに説明した一般的なデコードです。 各位置でモデルの出力を取得し、最も高い確率で結果を見つけます。
  2. ビームサーチデコーディング :-ビーム検索のたびにネットワークから単一の出力を取得する代わりに、すべての確率が最も高い複数の出力パスを維持し、新しい出力でチェーンを拡張し、確率の低いパスをドロップしてビームサイズを一定に保つことをお勧めします。 このアプローチで得られた結果は、欲張りアプローチを使用するよりも正確です。
  3. 言語モデルによるビーム検索 :- ビーム検索はグリッド検索よりも正確な結果を提供しますが、それでも意味のある結果が得られるという問題は解決されません。 これを解決するには、言語モデルと、モデルからの確率と言語モデルの両方を使用したビーム検索を使用して、最終結果を生成します。

正確なデコード結果を生成するための詳細は、こちらで確認できます。 記事

エンコーダー-デコーダーとアテンションネットワーク

エンコーダ/デコーダ ネットワークを備えた Seq2Seq モデルは、音声認識、機械翻訳などのタスクを解決するために最近人気があり、追加のアテンション メカニズムを導入することで手書き認識のユースケースを解決するために拡張されました。 この分野における独創的な研究について話し合いましょう

スキャン、参加、閲覧

この独創的な作品Scan、Attend and Read(SAR)で、著者は、エンドツーエンドの手書き認識のための注意ベースのモデルの使用を提案しています。 研究の主な貢献は、前処理ステップとして行に分割せずにテキストを自動転記することであり、したがって、ページ全体をスキャンして結果を出すことができます。

機械学習を使用して手書き認識を簡単に行う方法

SARは、上で説明したものと同様のMDLSTMベースのアーキテクチャを使用しますが、最終層でXNUMXつの小さな変更を加えます。 最後の線形レイヤー、つまり上の図の最後のSumブロックの後、フィーチャマップは垂直方向に折りたたまれ、最後のソフトマックス関数が適用されて出力が取得されます。

機械学習を使用して手書き認識を簡単に行う方法

SARアーキテクチャは、特徴抽出器として機能するMDLSTMアーキテクチャで構成されています。 ソフトマックス出力とCTC損失を備えた最終的な崩壊モジュールは、アテンションモジュールとLSTMデコーダーに置き換えられます。 使用される注意モデルは、コンテンツベースの注意と場所ベースの注意のハイブリッドの組み合わせです。これについては、次のペーパーで詳しく説明します。 デコーダーLSTMモジュールは、前の状態、前のアテンションマップ、およびエンコーダー機能を使用して、次の予測のために最終的な出力文字と状態ベクトルを生成します。

畳み込み、参加、スペル

この論文は、手書き単語認識のための注意ベースのシーケンス間モデルを提案します。 提案されたアーキテクチャには、CNNと双方向GRUで構成されるエンコーダ、関連機能に焦点を当てる注意メカニズム、および対応する単語を綴ることができる一方向GRUで形成されるデコーダのXNUMXつの主要部分があります。文字ごと。

機械学習を使用して手書き認識を簡単に行う方法

エンコーダーは CNN を使用して視覚的特徴を抽出します。 事前トレーニングされた VGG-19-BN アーキテクチャが特徴抽出器として使用されます。 入力画像は特徴マップ X に変換され、その後、すべてのチャネルを列方向に分割し、それらを組み合わせて連続情報を取得することによって X' に再整形されます。 X' は、双方向 GRU を使用してさらに H に変換されます。 GRU は本質的に LSTM に似たニューラル ネットワークであり、時間情報をキャプチャできます。

さらに、デコーダからの出力を予測する際に注意モデルが採用されます。 このホワイトペーパーでは、調査したXNUMXつの異なるタイプの注意メカニズムについて説明します。

  1. コンテンツベースの注意 :-この背後にある考え方は、デコーダーの現在の非表示状態とエンコーダーからの機能マップの間の類似性を見つけることです。 エンコーダーの特徴マップで最も相関のある特徴ベクトルを見つけることができます。これは、現在のタイムステップで現在の文字を予測するために使用できます。 注意メカニズムがどのように機能するかについての詳細は、ここから見ることができます 注目
  2. ロケーションベースの注意 :- コンテンツベースの位置情報メカニズムの主な欠点は、位置情報がエンコーダの出力に埋め込まれているという暗黙の前提があることです。 そうしないと、デコーダから繰り返される文字出力を区別する方法がありません。 たとえば、ヒトカゲという単語を考えてみます。その中で文字 a が XNUMX 回繰り返されており、位置情報がなければデコーダはそれらを別々の文字として予測できません。 これを軽減するために、現在の文字とそのアライメントは、エンコーダー出力と以前のアライメントの両方を使用して予測されます。 位置ベースの出席の仕組みの詳細を確認できます。 こちら.

デコーダーは一方向の多層GRUです。 各タイムステップtで、前のタイムステップからの入力とアテンションモジュールからのコンテキストベクトルを受け取ります。 多項デコードとラベル平滑化は、一般化機能を改善するためのトレーニングで検討されます。

変圧器モデル

エンコーダ/デコーダ ネットワークは、手書き認識に関しては非常に優れた結果を達成していますが、LSTM 層が関与しているため、トレーニングにボトルネックがあり、並列化できません。 最近、トランスフォーマーはかなりの成功を収めており、さまざまな言語関連タスクの解決において LSTM に取って代わりました。 次に、トランスフォーマーベースのモデルを手書き認識にどのように適用できるかについて説明します。

あなたが読んだものに注意を払う

この作品では、著者は、視覚段階とテキスト段階の両方で多頭注意自己注意層を使用するトランスフォーマーベースのアーキテクチャの使用を提案し、したがって、文字認識と、デコードされる文字シーケンスの言語関連の依存関係の両方を学習できます。 言語知識はモデル自体に組み込まれているため、言語モデルを使用した追加の後処理ステップは不要であり、語彙の一部ではない出力を予測する機能があります。 このテキストエンコーディングを実現するには、単語レベルではなく文字レベルで行います。 トランスフォーマーアーキテクチャにより、すべての地域またはキャラクターに対してモデルを並行してトレーニングできるため、トレーニングプロセスが大幅に簡素化されます。

機械学習を使用して手書き認識を簡単に行う方法

ネットワークアーキテクチャは、次のコンポーネントで構成されています

  1. ビジュアルエンコーダ :-関連する特徴を抽出し、さまざまなキャラクターの場所に多頭の視覚的自己注意を適用する
  2. テキスト転写者 :-テキスト入力を受け取り、エンコードし、多頭言語の自己注意を適用し、視覚的機能とテキスト機能の両方に相互注意を適用するタスクを実行します。
ビジュアルエンコーダ

上の図に見られるように、Resnet50 バックボーンは機能を追加するために使用されます。 Resnet3 Fc からの 50 次元特徴マップ出力は、同じ幅、したがって (fxh, w) の形状を維持することによって 2D に再形成される時間エンコーディング モジュールに渡されます。 これは全結合層に入力されて形状が (f, w) に縮小され、その結果の出力が Fc' になります。 さらに、Vaswani による Transformer の論文で述べられているように、位置情報を保持するために位置エンコーディング TE が Fc' に追加されます。 変圧器アーキテクチャの設計方法の詳細については、こちらをご覧ください。 こちら。 出力は完全に接続されたレイヤーを通過して、形状(f、w)の最終的な特徴マップを取得します。 最終出力は、視覚的に豊富な特徴マップを取得するために、8つのヘッドを備えたマルチヘッドアテンションモジュールを通過します。

テキスト転写者

入力テキストは、文字レベルの埋め込みを生成するエンコーダーを通過します。 これらの埋め込みは、TemporalEncoderモジュールを使用するVisualEncoderの方法と同様に、時間的な場所と組み合わされます。 この結果は、ビジュアルエンコーダーのアテンションモジュールと同様のマルチヘッド言語セルフアテンションモジュールに渡されます。 ビジュアルエンコーダからのビジュアルフィーチャに沿って生成されたテキストフィーチャは、画像とテキスト入力の両方から学習したフィーチャを整列および結合することをタスクとする相互注意モジュールに渡されます。 出力はsoftmax関数に渡され、最終結果が得られます。

テストデータで評価する場合、文字起こしは利用できません。 したがって、開始トークン<S>のみが入力として渡され、最初の予測文字がシステムにフィードバックされ、システムがXNUMX番目の予測文字を出力します。 この推論プロセスは、シーケンスシンボル<E>の終わりが生成されるまで、または最大出力長Nに達するまで、ループ内で繰り返されます。

手書きテキスト生成

手書きテキスト生成は、本物のように見える手書きテキストを生成するタスクであるため、既存のデータセットを拡張するために使用できます。 ご存知のとおり、ディープラーニングにはトレーニングに大量のデータが必要ですが、さまざまな言語のラベル付き手書き画像の膨大なコーパスを取得するのは面倒な作業です。 これを解決するには、敵対的生成ネットワークを使用してトレーニング データを生成します。 ここではそのようなアーキテクチャの XNUMX つについて説明しましょう

スクラブルGAN

ScrabbleGANは、半教師ありアプローチに従って、スタイルとレキシコンの両方で用途の広い手書きのテキスト画像を合成します。 さまざまな長さの画像を生成する機能があります。 ジェネレータは、結果のテキストスタイルを操作して、テキストを筆記体にする必要があるかどうかを判断したり、ペンストロークの太さ/細さを指定したりすることもできます。

機械学習を使用して手書き認識を簡単に行う方法

このアーキテクチャは、BigGANに基づく完全畳み込みジェネレータで構成されています。 入力内の各文字について、対応するフィルターが選択され、すべての値が連結され、生成されたテキストスタイルを制御するノイズベクトルzが乗算されます。 上で見られるように、個々の文字ごとに生成された領域はオーバーラップするため、接続された再帰テキストの生成に役立ち、さまざまな文字サイズの柔軟性が可能になります。 たとえば、mはスペースの大部分を占めますが、eとtは限られた領域を占めます。 単語または文全体で同じスタイルを維持するために、スタイルベクトルzはすべての文字で一定に保たれます。

BigGAN アーキテクチャに基づく畳み込み識別器を使用して、画像の生成スタイルが偽物か本物に見えるかを分類します。 識別子は文字レベルのアノテーションに依存しないため、クラス条件付き GAN に基づいていません。 この利点は、ラベル付きデータが必要ないため、トレーニング データの一部ではない目に見えないコーパスからのデータを識別器のトレーニングに使用できることです。 弁別器とともに、テキスト認識器 R は、生成されたテキストが現実世界の意味をなすものであるか、意味不明なものであるかを分類するようにトレーニングされます。 認識エンジンは CRNN アーキテクチャに基づいており、リカレント ヘッドが削除されているため、認識エンジンは少し弱く、不明瞭なテキストであっても認識されません。 R の出力で生成されたテキストは、ジェネレーターに与えられた入力テキストと比較され、対応するペナルティが損失関数に追加されます。

ScrabbleGANによって生成された出力を以下に示します。

機械学習を使用して手書き認識を簡単に行う方法

データセット:-

  1. IAM :-IAMデータセットには、100人の異なる著者によって書かれた単語を含む英語の単語の約657万枚の画像が含まれています。 トレイン、テスト、検証のセットには、相互に排他的な作成者によって書かれた単語が含まれていますリンク:- http://www.fki.inf.unibe.ch/databases/iam-handwriting-database
  2. CVL :-CVLデータセットは、約310人の参加者によって書かれた83つの手書き文書で構成され、約XNUMXkの単語が切り取られ、トレインセットとテストセットに分割されますリンク:- https://cvl.tuwien.ac.at/research/cvl-databases/an-off-line-database-for-writer-retrieval-writer-identification-and-word-spotting/
  3. RIMES :-約60kの画像のフランス語からの単語が含まれており、各人が書いた約1300通のメールに対応する5人の著者が書いています。リンク:- http://www.a2ialab.com/doku.php?id=rimes_database:start

指標:-

文字エラー率 :-これは、ある文字列を別の文字列に変換するために必要な文字置換(Sc)、挿入(Ic)、および削除(Dc)の合計を、文字列の合計文字数で割ったレーベンシュタイン距離として計算されます。グラウンドトゥルース(Nc)

機械学習を使用して手書き認識を簡単に行う方法

単語エラー率 :-これは、ある文字列を別の文字列に変換するために必要な単語の置換(Sw)、挿入(Iw)、および削除(Dw)の合計を、グラウンドトゥルースの単語の総数(Nw)で割ったものとして計算されます。

機械学習を使用して手書き認識を簡単に行う方法

独自の手書き認識モデルをトレーニングする

次に、独自の手書きテキスト認識モデルをトレーニングする方法を見てみましょう。 IAM データセットでトレーニングしますが、独自のデータセットでモデルをトレーニングすることもできます。 これを設定する手順について説明します

且つ

IAMデータセットレジスタをダウンロードするには こちら。 登録したらwords.tgzをダウンロード こちら。 これには、手書きの単語画像のデータセットが含まれています。 また、注釈ファイルwords.txtをからダウンロードします。 こちら.

独自のデータセットを使用する場合は、IAMデータセットのデータ構造に従う必要があります。

機械学習を使用して手書き認識を簡単に行う方法

上は、AIM データセットのフォルダー構造がどのように見えるかを示しています。 ここで、a01、a02 などは、データのサブフォルダーを持つ親フォルダーを表します。 各サブフォルダーには、ファイル名の接頭辞としてフォルダー名が追加された一連の画像が含まれています。

さらに、画像ファイルへのパスと対応する文字起こしを記載する注釈ファイルが必要です。 たとえば、テキストを指定した上記の画像を考えてみましょう。以下は、注釈ファイルwords.txtでの表現です。

a01-000u-01-00 ok 156 395 932VBGノミネート

  1. a01-000u-01-00->フォームa01-000uの行のワードID
  2. ok / err->セグメンテーション出力の品質の指標
  3. 156->この単語を含む行をXNUMX値化するためのグレーレベル
  4. 395 932 441 100-> x、y、w、h形式のこの単語の周囲のバウンディングボックス
  5. VBG->この単語の文法タグ。 これが動名詞です
  6. 指名->この単語の文字起こし

建築 :-

CTCが失われたCRNNベースのアーキテクチャをトレーニングします。 CNNは、RNNに渡される視覚的特徴を抽出するために使用され、CTC損失は、出力を取得するために貪欲なデコーダーで最後に適用されます。

機械学習を使用して手書き認識を簡単に行う方法

トレーニング

からのCRNNコードを使用します こちら モデルをトレーニングします。 以下の手順に従ってデータを準備します

python checkDirs.py

上記のコマンドを実行すると、以下のような出力が表示されます。

[OK]言葉/
[OK]単語/ a01 / a01-000u /
[OK]words.txt
[OK] テスト.png
[OK] words/a01/a01-000u/a01-000u-00-00.png

これで、トレーニングを開始する準備が整いました。

ルートディレクトリに移動して実行します

python main.py --train

結果

約50エポックのトレーニング後、文字エラー率(CER)は10.72%ですが、単語エラー率(WER)は26.45%であるため、単語の精度は73.55%です。 下の図にいくつかの予測を示します。

機械学習を使用して手書き認識を簡単に行う方法

モデルはキャラクターをかなり正確に予測することができますが、ひどく完全に予測される、物語が星空として予測されるなど、いくつかのケースで苦しみます。 これらの問題は、意味のある単語を生成し、単純な間違いを修正できるデコーダーとともに、後処理ステップとして言語モデルを採用することで解決できます。

まとめ

手書きテキストの認識を向上させる技術は大幅に開発されていますが、HTRはOCRと比較して解決された問題とはほど遠いため、業界ではまだ広く採用されていません。 それにもかかわらず、技術の進化のペースと変圧器のようなモデルの導入により、HTRモデルがまもなく一般的になることが期待できます。

このトピックに関するより多くの研究をキャッチするには、から始めることができます こちら

参考文献

タイムスタンプ:

より多くの AIと機械学習