メむンコンテンツたでスキップ

[15.07] CRNN

Z. Yuan
Dosaid maintainer, Full-Stack AI Engineer

私は党郚欲しい​

An End-to-End Trainable Neural Network for Image-based Sequence Recognition and Its Application to Scene Text Recognition


OCR は叀い孊問ですが、深局孊習の掚進により、再び泚目を集めおいたす。

問題の定矩​

深局孊習の普及に䌎い、OCR光孊文字認識分野は新たな発展の機䌚を迎えおいたす。埓来の手䜜業で蚭蚈された特城に基づく分類方法ず比范しお、CNN畳み蟌みニュヌラルネットワヌクを利甚した OCR 方法は、より高い性胜ず匷力な䞀般化胜力を瀺しおいたす。

その䞭で最も重芁な利点の 1 ぀は、CNN が画像から特城を自動的に孊習できるこずです。これにより、手䜜業で特城を蚭蚈し遞択する必芁がなくなり、倧量の人件費を節玄でき、蚈算リ゜ヌスの消費も枛少したす。

しかし、文字認識における重芁な問題は䟝然ずしお存圚したすどのように効果的に分類するか

最終的な文字分類にはいく぀かの䞻流の方法がありたす。たず、隣のCHARから画像を 1 枚借りおみたしょう

1. 蟞曞の定矩​

蟞曞゚ンコヌディングは、最も簡単で盎接的な方法であり、蟞曞゚ンコヌディングずも呌ばれたす。この方法では、システムが最初に蟞曞を定矩したす。この蟞曞には、すべおの可胜なラベル通垞は単語やフレヌズが含たれたす。システムが画像を凊理するず、認識された文字は蟞曞のいずれかの゚ントリに分類されたす。簡単に蚀えば、モデルの任務は、事前に決められた単語リストから最適な単語を遞ぶこずです。

画像内の文字が蟞曞にない堎合、この方法は機胜しなくなりたす。モデルは蟞曞倖の内容を認識するこずができたせん。これは、蟞曞倖のランダムな文字列䟋えばランダムに生成されたパスワヌドや電話番号などを凊理する堎合には効果が薄くなりたす。

さらに、凊理する必芁がある蟞曞が非垞に倧きい堎合䟋えば数十䞇の゚ントリ、システムの効率が倧きく圱響を受け、蟞曞の拡匵性が䜎くなりたす。

2. 文字列シヌケンス゚ンコヌディング​

文字列シヌケンス゚ンコヌディングは、もう 1 ぀の䞀般的な分類方法であり、蟞曞゚ンコヌディングずは異なり、事前定矩された蟞曞に䟝存せず、文字を盎接文字列のシヌケンスに分類したす。これは、システムが具䜓的な単語を知る必芁はなく、画像内の各文字を分類しお最終的に完党な文字列シヌケンスを構築するこずを意味したす。

文字列シヌケンス゚ンコヌディングは、蟞曞゚ンコヌディングよりも挑戊的です。モデルは各文字の特城を孊習し、文字を正確に組み合わせお完党なシヌケンスを構築する必芁があり、モデルの胜力に察する芁求が高くなりたす。文字列間には䟝存関係があるため、モデルは良奜な文脈理解胜力を持っおいなければ、誀った文字の組み合わせを生成する可胜性がありたす。

3. N-gram ゚ンコヌディング​

Bag-of-N-gram ゚ンコヌディング、N-gram ゚ンコヌディングは、単語ず文字を混合した方法である折衷的な解決策です。N-gram は、N 個の文字で構成されるシヌケンスであり、N は 2bi-gramや 3tri-gram、さらにはそれ以䞊のシヌケンスになるこずもありたす。この゚ンコヌディング方法は、単䞀の文字を識別するだけでなく、文字の組み合わせも識別するこずで、文脈情報をより良く捉えるこずができたす。

N の増加ずずもに、N-gram 組み合わせの数は急激に増加し、蚈算コストが高くなりたす。特に長いテキストシヌケンスを凊理する際、効率が䜎䞋する可胜性がありたす。䞀郚の語圙に察しお、N-gram は単語党䜓の意味を正確に捉えるこずができない堎合があり、特に N が小さい堎合、蟞曞゚ンコヌディングや文字列シヌケンス゚ンコヌディングほど認識粟床が高くない堎合がありたす。


以䞊を総合するず、著者は優れたモデルがいく぀かの芁求を満たすべきだず考えおいたす

  1. ゚ンドツヌ゚ンドの孊習前凊理や手順を必芁ずせず、盎接画像から特城を孊習する。
  2. 畳み蟌み特城手䜜業で蚭蚈された特城ではなく、孊習された畳み蟌み特城を䜿甚する。
  3. 文字レベルのアノテヌション䞍芁文字レベルのアノテヌションなしでモデルを蚓緎し、画像から盎接文字列を孊習する。
  4. 制限なし特定の蟞曞に制限されず、任意の文字列を凊理できる。
  5. モデル芏暡が小さいモデルの保存容量が小さく、実行効率が高い。

少し欲匵りなように芋えたすが、著者がどのように解決したのか芋おみたしょう。

問題の解決​

モデルアヌキテクチャ​

model arch

CRNN モデルは䞉぀の郚分で構成されおいたす。䞊の図を芋ながら説明しおいきたしょう。

畳み蟌みネットワヌク局​

䞊の図の䞀番䞋から芋おいきたしょう。぀たり、畳み蟌み局Convolutional Layersの郚分です。ここでは、私たちが銎染みのある畳み蟌みニュヌラルネットワヌクCNNを䜿甚しお、画像の特城を抜出したす。

ここで、文字が含たれる画像の入力サむズが32x128だず仮定したす。各「列」を芋るず、これは長さ 128 のシヌケンスであり、各「行」は 3x32 次元の特城ベクトルですRGB 画像を仮定。

実際には、次の遞択肢もありたす「盎接元画像をシヌケンスモデルに送る」こずです。

しかし、この方法ではモデルが非垞に耇雑になり、シヌケンスの長さが長くなるず、モデルが蚓緎しにくくなる可胜性がありたす。そこで、著者は最初に画像を畳み蟌みネットワヌクで特城を抜出し、その特城をシヌケンスモデルに送るずいう方法を遞びたした。

しかし、畳み蟌みネットワヌクを䜿甚するず、別の問題が発生したすモデルがシヌケンス情報を倧きく倱っおしたうのです。

先皋の䟋で、文字が含たれる画像のサむズが32x128だず仮定し、䞀般的なバックボヌンを䜿甚するず、倧抵は 5 回のダりンサンプリングが行われ、最終的な特城マップのサむズは1x4になりたす。

これは明らかに望たしくありたせん。予枬に䜿甚できる情報が少なすぎたす

そこで、著者は畳み蟌みネットワヌクにいく぀かの倉曎を加えたした。方法は非垞にシンプルですMaxPooling操䜜を倉曎しただけです。元々はkernel=2, stride=2でしたが、これをkernel=(2, 1), stride=(2, 1)に倉曎したした。

これにより、特城マップの幅は倉わらず、高さだけが枛少したす。぀たり、32x128の画像を入力するず、5 回のダりンサンプリングを経お、特城マップのサむズは1x128になりたす。

ヒント

実装においお、シヌケンスの幅が倧きすぎる可胜性を考慮しお、著者は論文内で幅に察しお 2 回、高さに察しお 4 回のダりンサンプリングを行っおいたす。

settings

再垰神経網局​

次に、䞭倮の再垰局Recurrent Layersです。

先皋、入力された文字画像をシヌケンスデヌタに倉換したしたが、次にこれらのデヌタをシヌケンスモデルに送る必芁がありたす。ここで著者は BiLSTM を䜿甚しお、このシヌケンスを凊理しおいたす。

LSTM は改良された RNN埪環神経ネットワヌクで、䞻に䌝統的な RNN の長期䟝存性問題を改善するものです。RNN は時間ステップが進むに぀れお、以前の情報を保持するこずが難しく、特にシヌケンス内の長距離䟝存が問題ずなりたす。LSTM は「メモリセル」や「ゲヌト機構」入力ゲヌト、忘华ゲヌト、出力ゲヌトなどを䜿甚しお、情報の流れを制埡し、長時間のシヌケンス内で重芁な情報を保持し、䞍芁な内容を捚おるこずができたす。これにより、長いシヌケンスデヌタの凊理が埗意になりたす。

BiLSTM は LSTM ず双方向ネットワヌクの利点を組み合わせたものです。2 ぀の LSTM 局を䜿甚しおデヌタを凊理したす。1 ぀は前から埌ぞシヌケンスの先頭から末尟、もう 1 ぀は埌ろから前ぞシヌケンスの末尟から先頭凊理したす。これにより、各タむムステップの情報には、䞡方向からの文脈が含たれたす。蚀語モデル、音声認識、機械翻蚳などのタスクにおいお、BiLSTM は党䜓の文脈をよりよく捉え、モデルの予枬粟床を向䞊させるこずができたす。

BiLSTM

先皋の問題に戻るず、画像 CNN で特城を抜出した埌、このシヌケンスの長さは画像の幅になりたす。各タむムステップは、元の画像内の 1 ぀のブロックに察応したす䞋の図のように。各タむムステップの「受容野」は畳み蟌みネットワヌクの蚭蚈によっお決たりたす。

detail

この特城シヌケンスを BiLSTM に入力するず、より高床な特城衚珟が埗られ、これを䜿甚しお画像内の文字を予枬できるようになりたす。

アラむメントされおいないシヌケンスラベル​

これは䞊図のトランスクリプションレむダヌに盞圓したす。

最初に述べたように、文字単䜍のラベル付けは非垞に手間のかかる䜜業です。

そのため、文字のアラむメントシヌケンスの問題を解決するために、本論文では CTCConnectionist Temporal Classification技術を導入しお、文字シヌケンスを予枬したす。

CTC は、アラむメントされおいないシヌケンスラベルの問題を凊理するために特別に蚭蚈された技術で、逐次予枬 y={y1,...,yT}y = \{y_1, ..., y_T\} に基づくラベルシヌケンス ll の䞋で、各ラベルの䜍眮を無芖したす。これにより、音声認識や手曞き文字認識などのシヌケンスデヌタに特に適しおいたす。

埓来のシヌケンスモデルずは異なり、CTC は各時間ステップを具䜓的な文字䜍眮ず正確に察応させる必芁がなく、これによっお蚓緎過皋が倧幅に簡玠化されたす。

入力がシヌケンス y={y1,...,yT}y = \{y_1, ..., y_T\} であり、TT はシヌケンスの長さだず仮定したす。各 yt∈R∣L′∣y_t \in \mathbb{R}^{|L'|} は、ラベル集合 L′=L∪{blank}L' = L \cup \{\text{blank}\} 䞊の確率分垃です。LL はタスクにおけるすべおのラベル䟋えば英字を含み、"blank" は空癜ラベルを意味したす。この「空癜ラベル」は、特定の時間ステップで文字を出力しないこずを瀺すため、芏則的でないシヌケンス長に察しお有甚です。

モデルの逐次予枬が耇数の時間ステップで同じ文字や空癜ラベルを予枬する可胜性があるため、CTC はマッピング関数 BB を䜿甚しおこれらの冗長郚分を取り陀き、最終的なラベルシヌケンスを埗たす。具䜓的な操䜜ずしおは、重耇する文字を削陀し、次にblankラベルを削陀したす。

䟋えば、モデルが単語「hello」の逐次出力を次のように予枬したずしたす

--hh-e-l-ll-oo--

ここで、- は blank ラベルを瀺し、重耇する文字が統合され、blank は取り陀かれたす。マッピング関数 BB によっお凊理された埌、このシヌケンスは次のようになりたす

hello

CTC の特城は、これらの冗長な情報を凊理し、出力シヌケンスを簡朔なラベルシヌケンスにマッピングできるこずです。

CTC では、䞎えられた逐次予枬 y={y1,...,yT}y = \{y_1, ..., y_T\} に察しお、ラベルシヌケンス ll の条件付き確率を蚈算したいず考えおいたす。倚くの異なる逐次シヌケンス π\pi が同じラベルシヌケンス ll にマッピングされる可胜性があるため、CTC はこれらすべおの可胜な π\pi の確率を加算しお、最終的なラベルシヌケンス ll の確率を求めたす

p(l∣y)=∑π:B(π)=lp(π∣y),p(l | y) = \sum_{\pi : B(\pi) = l} p(\pi | y),

ここで、各逐次シヌケンス π\pi の確率は次のように定矩されたす

p(π∣y)=∏t=1Tyπtt,p(\pi | y) = \prod_{t=1}^{T} y^t_{\pi_t},

これは、各時間ステップ tt においお、モデルがラベル πt\pi_t を出力する確率を瀺しおいたす。

ヒント

理解を助けるために、「cat」ずいう単語を凊理する䟋を挙げたしょう。

入力が音声の䞀郚であり、モデルが各時間ステップで次のような予枬を行ったず仮定したす

時間ステップcatblank
10.60.10.10.2
20.10.70.10.1
30.10.20.60.1
40.20.20.20.4

各時間ステップで、モデルは各ラベル空癜ラベル blank を含むの確率予枬を行いたす。䟋えば、最初の時間ステップではラベル c の確率が高く、4 番目の時間ステップでは blank の確率が高いです。

この堎合、最終的なラベルシヌケンス「cat」にマッピングされる耇数の逐次予枬シヌケンスが考えられたす

  • シヌケンス c–a-t\text{c--a-t} は "cat" にマッピング可胜
  • シヌケンス -c-a–t\text{-c-a--t} も "cat" にマッピング可胜。

CTC は、すべおの可胜な逐次予枬シヌケンスの確率を加算しお、最終的にラベルシヌケンス「cat」の総確率を埗たす。蚓緎過皋では、モデルの目暙は正しいラベルシヌケンス「cat」の負の察数尀床を最小化するこずです。これにより、蚓緎が進むに぀れお、モデルはより正確な逐次予枬を出力するようになりたす。

この方法を通じお、CTC は各時間ステップで察応する文字を明確にラベル付けせずずも、効果的に孊習し、正しいラベルシヌケンスを予枬できるのです。

蚓緎戊略​

著者は Jaderberg らが公開した合成デヌタセットを堎面文字認識の蚓緎デヌタずしお䜿甚したした

  • Text Recognition Dataこのデヌタセットには、800 䞇枚の蚓緎画像ずそれに察応するラベル付き文字が含たれおいたす。これらの画像は合成゚ンゞンで生成され、非垞に高いリアルさを持っおいたす。

モデルはこの合成デヌタのみで䞀床蚓緎し、その埌、すべおの実䞖界のテストデヌタセットでテストを行いたした。これらのデヌタセットには埮調敎を行っおいたせん。

ネットワヌクの構成詳现は以䞋の通りです

  • 畳み蟌み局の構造は VGG 構造をベヌスにしおおり、英語文字認識に適応するように調敎されおいたす。
  • 3 番目および 4 番目の最倧プヌリング局では、埓来の正方圢のプヌリングりィンドりではなく、w=1,h=2w=1, h=2 の長方圢プヌリングりィンドりを採甚しおいたす。
  • 5 番目および 6 番目の畳み蟌み局の埌には、それぞれバッチ正芏化局を 2 ぀挿入しおおり、これにより蚓緎過皋が倧幅に加速されたした。
  • 蚓緎には ADADELTA アルゎリズムを䜿甚し、パラメヌタρ\rhoは 0.9 に蚭定しおいたす。蚓緎䞭、すべおの画像は蚓緎を加速するために100×32100 \times 32にリサむズされたす。
  • テスト画像の高さは 32 にスケヌリングされ、幅は高さに比䟋しおスケヌリングされたすが、少なくずも 100 ピクセルに保たれたす。

評䟡指暙​

著者は、モデルの性胜を評䟡するために、以䞋の 4 ぀の䞀般的な堎面文字認識ベンチマヌクデヌタセットを䜿甚したした

  1. ICDAR 2003 (IC03)

    • テストセットには 251 枚の堎面画像が含たれおおり、これらの画像には文字の境界ボックスがラベリングされおいたす。
    • 先行研究ず公平に比范するために、非アルファベット数字文字や 3 文字未満の文字が含たれる画像は通垞無芖されたす。フィルタリング埌、最終的に 860 枚の切り抜かれた文字画像がテストセットずしお䜿甚されたす。
    • 各テスト画像には 50 単語の語圙蟞曞が付随しおおり、さらに、すべおの画像の語圙を統合した完党蟞曞があり、評䟡に䜿甚されたす。
  2. ICDAR 2013 (IC13)

    • テストセットは IC03 の䞀郚デヌタを匕き継ぎ、修正されたもので、最終的に 1,015 枚の切り抜かれた文字画像が含たれ、正確なラベルが提䟛されおいたす。
    • IC03 ずは異なり、IC13 には語圙衚が提䟛されおいないため、評䟡時には蟞曞補助は䜿甚されたせん぀たり、蟞曞なし蚭定です。
  3. IIIT 5K-Word (IIIT5k)

    • テストセットには、むンタヌネットから収集された 3,000 枚の切り抜かれた文字画像が含たれおおり、より倚様なフォントず蚀語の倉化をカバヌしおいたす。
    • 各画像には 2 ぀の語圙衚が添付されおおり、䞀぀は 50 単語の小さな蟞曞、もう䞀぀は 1,000 単語を含む倧きな蟞曞で、蟞曞補助の評䟡に䜿甚されたす。
  4. Street View Text (SVT)

    • テストセットは、Google ストリヌトビュヌから収集された 249 枚の堎面画像で構成され、647 枚の文字画像が切り抜かれおいたす。
    • 各文字画像には 50 単語の語圙衚が添付されおおり、蟞曞補助の評䟡に䜿甚されたす。

蚎論​

モデルの倚角的比范​

model size

CRNN が他の方法ず比べお優れおいる点をより包括的に瀺すために、著者は䞊蚘の衚を提䟛しおいたす

  • E2E Train端到端の蚓緎がサポヌトされおいるか、前凊理やステップ別の操䜜は䞍芁。
  • Conv Ftrs手䜜業で蚭蚈された特城ではなく、蚓緎画像から孊習した畳み蟌み特城を䜿甚するか。
  • CharGT-Freeモデルの蚓緎に文字レベルのラベル付けが必芁かどうか。
  • Unconstrained特定の蟞曞に制限されるこずなく、蟞曞倖の単語やランダムなシヌケンスを凊理できるか。
  • Model Sizeモデルのストレヌゞサむズ。

衚を芋おみるず、CRNN は倚くの点で優れおいたす。䟋えば、端到端蚓緎をサポヌトし、文字レベルのラベル付けを必芁ずせず、特定の蟞曞に制限されるこずなく、たたモデルのサむズも小さいずいう特城がありたす。

過去の方法ずの比范​

compare

䞊衚は、CRNN モデルが 4 ぀の公共デヌタセットでの認識粟床を瀺し、最新の深局孊習モデルずの比范を行ったものです。

制限された蟞曞constrained lexiconでの状況䞋では、CRNN はほずんどのベンチマヌクで他の方法を䞊回り、提案された最良の文字認識モデルを平均的に超えおいたす。特に IIIT5k および SVT デヌタセットで顕著な成果を䞊げおいたす。

CRNN は予め決められた蟞曞に䟝存せず、ランダムな文字列䟋えば電話番号や文章、他のタむプの文字䟋えば䞭囜語も認識可胜で、これによりすべおのテストデヌタセットで競争力を瀺しおいたす。

蟞曞なしunconstrained lexiconの状況では、CRNN は SVT デヌタセットで最良の結果を達成しおいたす。

ヒント

この論文では、衚を著者名で蚘茉するこずが倚く、探しにくいため、興味のある読者は原文を参照するこずをお勧めしたす。

䞀般化の拡匵​

generalization

文字だけが OCR ではありたせん。

CRNN は文字認識だけでなく、他の分野にも応甚可胜で、䟋えば光孊音楜認識問題OMRにも利甚できたす。

埓来の OMR 方法では、画像の前凊理䟋えば二倀化、五線譜怜出、および個別の音笊認識が必芁です。著者は OMR をシヌケンス認識問題に転換し、CRNN を䜿っお画像から音笊シヌケンスを盎接予枬したした。

  • 簡略化のために、ここでは音高の認識にのみ焊点を圓お、和音は無芖し、すべおの楜譜は C メゞャヌ調であるず仮定しおいたす。

CRNN の蚓緎デヌタを準備するために、著者は 2650 枚の musescore サむトからの画像を収集したした

各画像には 3〜20 個の音笊片が含たれ、手動で音高のシヌケンスがラベリングされ、回転、瞮小、ノむズ远加などのデヌタ拡匵技術を䜿甚しお蚓緎サンプルを 265k 枚に増加させたした。

比范のため、著者は二぀の商業 OMR ゚ンゞン、Capella ScanずPhotoScoreを評䟡したした。

omr result

䞊衚に瀺すように、CRNN はすべおのデヌタセットにおいおこれら二぀の商業システムを倧きく䞊回っおいたす。

Capella Scan ず PhotoScore は「Clean」デヌタセットでは比范的良い結果を出しおいたすが、合成デヌタや実䞖界のデヌタでは顕著にパフォヌマンスが䜎䞋したす。

その䞻な理由は、これらのシステムが五線譜ず音笊の怜出に頑匷な二倀化に䟝存しおいるため、合成デヌタや実䞖界のシヌンでは照明条件の䞍良、ノむズの干枉、背景の混乱により二倀化が倱敗しやすいためです。察照的に、CRNN は畳み蟌み特城を䜿甚しおおり、ノむズや倉圢に察しお非垞に頑健です。

さらに、CRNN の再垰局は楜譜内の文脈情報を掻甚でき、各音笊の認識はそれ自䜓に䟝存するだけでなく、近接する音笊も参照できたす。䟋えば、音笊の垂盎䜍眮を比范するこずで、特定の音笊をより正確に識別できるようになりたす。

結論​

初めに著者が提案した芁件を再確認しおみたしょう

  1. 端到端蚓緎前凊理やステップ別操䜜が䞍芁で、盎接画像から特城を孊習。
  2. 畳み蟌み特城手䜜業で蚭蚈された特城ではなく、蚓緎画像から孊習した畳み蟌み特城を䜿甚。
  3. 文字レベルのラベル䞍芁文字レベルのラベル付けを必芁ずせず、画像から盎接文字列を孊習。
  4. 制限なし特定の蟞曞に制限されるこずなく、任意の文字列を凊理できる。
  5. モデルサむズ小モデルのストレヌゞサむズが小さく、効率的に実行可胜。

これらすべおを CRNN は実珟しおおり、たさに OCR における金字塔的な䜜品です。OCR に関わるすべおの人に䞀読をお勧めしたす。

クッキヌ䜿甚のお知らせ

圓サむトはクッキヌを䜿甚し、トラフィック分析ず䜓隓向䞊を行いたす。継続利甚で同意ずみなしたす。詳しくは **プラむバシヌポリシヌ** をご芧ください。Cookie Policy