多言語OCRの精度を上げたのは「データ」だった話

石井 雅之
石井 雅之 50代・ 大手製造業・部長
先週、NVIDIAが公開した多言語OCRモデルに関する技術記事を読んだ。
OCRなんて枯れた技術だと思っていたので、正直なめていた。
でも読み進めるうちに、「これは営業現場の帳票処理に直結する話だ」と気づいた。

うちの部署では、海外拠点から届くPDFや手書き帳票の文字起こしに今でも人手をかけている。
日本語だけならまだしも、中国語や韓国語が混在した書類になると途端に精度が落ちる。
導入したOCRツールのベンダーに問い合わせると「対応中です」という返事が何ヶ月も続く。
その答えがこの記事に書いてあった気がした。

問題はアーキテクチャじゃなく、データだった



記事によると、NVIDIAのOCR v1は英語では強力なモデルだった。
ところが日本語・韓国語・中国語・ロシア語に対してNED(文字誤り率の指標)を測定すると、韓国語が0.923、日本語が0.723という惨憺たる結果だったという。
NEDは0に近いほど正確で、1に近いほど原文と全然違う文字列を出力しているということ。
0.923といったら、もはや読めない。

原因として最初に疑われたのは文字セットの狭さだった。
v1がサポートしていたのはわずか855文字。
当然CJK(中国語・日本語・韓国語)やキリル文字はカバーできていない。
そこで文字セットを14,244文字に広げる実験をしたが、改善はわずかだったと書いてある。
データなしに文字セットだけ増やしても意味がなかった、ということだ。

1200万枚の合成画像が精度を変えた



解決策は「合成データ」だった。
プログラムでテキストを画像に描画することで、手作業のアノテーションなしに大量の正解データを作れる。
6言語・1200万枚の合成訓練画像を使ったところ、NED誤り率は0.035〜0.069まで下がった。
v1の0.56〜0.92と比べると、桁が変わっている。

しかも処理速度がA100 GPUで毎秒34.7ページというのも目を引いた。
検出と認識を単一ネットワークで処理するFOTSという設計で、画像の畳み込み処理を一度だけ行って結果を使い回す。
無駄な計算を省いた結果が34.7ページ/秒という数字に出ている。

私がこの記事を読んで感じたのは、「ベンダー選定の軸を間違えていた」という反省だ。
OCRツールを評価するとき、UIの使いやすさや価格ばかり見ていた。
「学習データが何言語・何枚規模か」「誤り率を第三者ベンチマークで公開しているか」という点を突っ込んで聞いていなかった。

稟議を通すときも「OCR導入でペーパーレス化」という言葉に頼りすぎていたと思う。
NED 0.923のモデルで作った文字起こしデータは、その後の業務でむしろエラーの元になる。
経営陣への説明では「精度が低いと後工程のコストが増える」という視点を入れるべきだった。

次のベンダー評価では何を聞くか



自分は来週、現行OCRベンダーとの定例MTGがある。
そこで「日中韓混在文書でのNEDスコアを数値で出してほしい」と要求してみるつもりだ。
「精度が高い」という定性表現ではなく、ベンチマーク上の数値で比較できる状態にする。
それが通らないベンダーとは、長い付き合いは難しいと判断する材料にもなる。

あなたの会社のOCRツール、多言語書類の誤り率を数値で把握できているだろうか?

無料相談受付中

AI開発・DX推進についてお気軽にご相談ください。オンライン30分から。

無料相談を申し込む