イントロダクション
現在の光学文字認識(OCR)分野の研究では、モデルの精度はデータセットの品質と多様性に依存しています。
ここでは、現在の研究が直面しているいくつかの問題を挙げてみましょう:
- データ量の不足:既存のデータセットの規模が限られており、すべての可能な状況やサンプルをカバーできていません。
- クラスの不均衡:一部のクラスのサンプルが少なく、長尾分布が問題になっています。
- 多様性の欠如:既存のデータセットに含まれるサンプルは単調で、現実世界の多様な状況を反映していません。
- 合成データと実データのギャップ:合成データセットと実際のアプリケーションシーンにおけるデータとの間に差異があります。
さらに、数十個から数百個のラテン文字と比較すると、漢字の数はまさに「災難」です。(ちょっと、冗談はよしてよ!)
中国語 OCR の研究では、これらの問題に加えて、さらに独特な困難な点が浮かび上がります:
文字の多様性と数
中国語には数千の常用漢字と、近十万の難読漢字があります。さらに、常用字と難読字の分布は非常に不均衡です。
「近十万?」これは冗談でしょ?
この数字は、Wikipedia Unicode 拡張漢字 に基づくデータ統計から得たものです。現在、約九万の漢字が登録されており、今後も増加しています。
複雑な字形と意味依存
漢字は複数の筆画で構成されており、筆画の形状や並び方が多様で、多くの類似字は文脈によって区別しなければなりません。
例えば:(口,囗)、(日,曰)、(木,朩) など。
書き方のスタイル
書き方による困難は単一の文字に限らず、各文字は大量の異なるフォントに派生する可能性があります。しかし、漢字という膨大な数の文字の中で、異なるフォントや書き方(楷書、行書、草書など)は、さらに認識の難易度を上げる要因となります。
縦書きテキストと混排問題
中国語では縦書きのテキストがよく使われ、特に伝統文化関連のアプリケーションシーンではこの形式が一般的です。また、英語と中国語が混在する場合も多く、これらは文字の位置決めと認識に追加の挑戦をもたらします。
アノテーションリソースの不足
高品質なデータセットには正確なアノテーションが必要ですが、これは時間もかかり、高価です。
素材が見つからない問題はさておき、見つかったとしても、アノテーターはその難読漢字を認識できないことが多いです。
目標
このプロジェクトの目標は、上記の問題を解決することです。
まあ、問題が大きすぎるので、少なくともその一部を解決することから始めます。
*
合成データを使用して、大量かつ多様な中国語文字画像を生成し、データ量の不足、クラスの不均衡、多様性の欠如などの問題に対処します。
このため、いくつかの既存の文字合成ツールを参考にしました。詳細な資料については、こちらを参照してください:
これらの設計方法は私たちに多くのインスピレーションを与え、ゼロから新しい文字画像生成器を作る決断をしました。
私たちの生成モジュールは、事前に定義された文字コード表に基づくものではなく、フォントに基づいています。
つまり、任意のフォントの文字画像を生成でき、さまざまな文字方向、整列方法、文字の長さ、文字色、背景色などの設定をサポートします。
- フォントさえあれば、どんなフォントでも画像生成に使用できます。
設計理念
設計の際、「関数型設計」か「オブジェクト指向設計」を採用するかを考えました。
最終的に後者を選んだ理由は、どちらを選んでも「使いにくい」と感じるからです。(???)
実際、多くの選べるパラメータが使用者にとって混乱を招くため、オブジェクト指向設計を採用し、これらのパラメータをよりうまく整理することにしました。そのため、ダッシュボード(以下の画像)のようなインターフェースを設計し、車のダッシュボードのように、設定を理解し、調整できることを目指しています。
*
全体的に、このプロジェクトでは以下の機能を実現しました:
- ダッシュボード:現在の設定を理解し、調整できる。
- 画像生成:多様な文字画像を生成できる。
- 出力整列:4 種類の整列方法をサポート。
- 出力方向:水平と垂直の 2 つの出力方向をサポート。
- 文字圧縮:文字を圧縮する機能をサポート。
- 標準化された出力サイズ:出力画像の標準化されたサイズをサポート。
- ランダムフォント:ランダムにフォントを選択する機能。
- ランダム文字:ランダムに文字を選択する機能。
- ランダム文字長さ:ランダムに文字の長さを選択する機能。
- ランダム文字色:ランダムに文字色を選択する機能。
- ランダム背景色:ランダムに背景色を選択する機能。
- ランダム文字方向:ランダムに文字方向を選択する機能。
- ランダム整列方法:ランダムに整列方法を選択する機能。
- 最小文字長さ:最小文字長さを指定する機能。
- 最大文字長さ:最大文字長さを指定する機能。
最後に
他にご要望があれば、ぜひコメント欄にご記入ください。
タイミングが合えば、ご要望に基づいて新機能を追加します。