Upgrade to Pro — share decks privately, control downloads, hide ads and more …

重み付き有限状態トランスデューサのOCR応用に向けて / Toward Introducing...

Sansan DSOC
December 03, 2021

重み付き有限状態トランスデューサのOCR応用に向けて / Toward Introducing Weighted Finite-State Transducers to OCR

■イベント 
:【SenseTime Japan × Sansan】画像処理勉強会
https://sansan.connpass.com/event/230636/

■登壇概要
タイトル:重み付き有限状態トランスデューサのOCR応用に向けて
発表者: 
技術本部 DSOC R&D研究員  内田 奏

▼Twitter
https://twitter.com/SansanRandD

Sansan DSOC

December 03, 2021
Tweet

More Decks by Sansan DSOC

Other Decks in Technology

Transcript

  1. Data Strategy and Operation Center ⾃⼰紹介 2020/03: 東京電機⼤学⼤学院 ⼯学研究科 情報通信⼯学専攻

    修了 局所特徴量を⽤いたトラッキング,Metric Learningを⽤いたファッション 画像の特徴抽出,超解像・画像縮⼩を中⼼とした画像⽣成の研究に従事 2020/04:Sansan株式会社 ⼊社(インターンとしては2018/10より在籍) 画像⽣成技術を応⽤した名刺画像補正や独⾃開発OCRに関する研究に従事 内⽥ 奏 So Uchida s_aiueo32 S-aiueo32 Sansan株式会社 技術本部 DSOC R&D Automation Group 研究員
  2. Data Strategy and Operation Center アジェンダ 1. 背景 2. 重み付き有限状態トランスデューサ

    1. オートマトン・アクセプタ・トランスデューサとは 2. 便利な性質 3. 論⽂紹介 • Differentiable Weighted Finite-State Transducers [Hannun+ 2020] 4. まとめ・今後の展望
  3. Data Strategy and Operation Center 背景 3 DSOC OCR を開発中

    • 名刺に特化した OCR (Optical Character Recognition, 光学⽂字認識) エンジン • E-mail版,⽒名版,全項⽬版 (←New!!!) という順で展開 > 名刺OCRとして完成形を⽬指すには何が必要か? 複数⾏テキストに対するAttentionマップの遷移 ⽂字列検出結果
  4. Data Strategy and Operation Center 学習データ作成における課題 4 正規化との闘い • 納品データは扱いやすいように正規化される

    > 画像に書いてある⽣⽂字列と納品データの字⾯が⼀致しない可能性 > 項⽬ごとに正規化ルールは異なる • DSOC OCR では元の⽂字列を復元して学習している > 収集に結構時間がかかる & 誤りを含む可能性がゼロではない > 正規化ロジックを学習に組み込んで解決できないか? 認識器 正規化 ⼀丁⽬⼆番地三号 ⼊⼒画像 「⼀丁⽬⼆番地三号」 「1-2-3」 ⽣⽂字列 納品データ ここを End-to-end で学習したい
  5. Data Strategy and Operation Center オートマトン オートマトンは状態機械 (state machine) [岡留

    2015] • 内部に状態を持ち,⼊⼒に応じて状態が遷移する • ⼊⼒に応じて出⼒をするかもしれない オートマトンはグラフとして表現できる • 状態 (ノード) は円,遷移 (アーク,エッジ) は⼀⽅向の⽮印で表現 • ⼊⼒・出⼒ (OCRでは⽂字・記号) はアークに付記する
  6. Data Strategy and Operation Center 有限状態アクセプタ (Finite-State Acceptor, FSA) 7

    ⼊⼒記号列を受容・棄却する有限状態オートマトン • 開始状態 (太円) から受容状態 (⼆重円) にたどり着く記号列を受容 具体例 • 𝒜 は 0 → 1 → 3 という経路で ab, 0 → 2 → 3 という経路で ba を受容 • 𝒜 によって受容される記号列の集合を受容⾔語といい,ℒ(𝒜) と書く 有限状態アクセプタ 𝒜
  7. Data Strategy and Operation Center 有限状態トランスデューサ (Finite-State Transducer, FST) 8

    ⼊⼒記号列を受容し,別の記号列に変換する有限状態オートマトン • FSAのアークに対して出⼒記号が付与して拡張したもの (⼊⼒:出⼒と書く) 具体例 • 𝒯 は 𝒜 と同様に {ab, ba} を受容し,同時にそれぞれを⼤⽂字に変換 • 𝒜 の出⼒が受容・棄却の⼆値なのに対し,𝒯 の出⼒は変換された記号列 有限状態トランスデューサ 𝒯
  8. Data Strategy and Operation Center 重みの付与 9 決定性 (Deterministic) と⾮決定性

    (Non-deterministic) • 決定性: 任意の状態において,⼊⼒によって遷移する先が⼀意に決まる • ⾮決定性: ⼊⼒によって遷移する先が複数存在可能 遷移に対して重みを付与することでコスト・確率の概念を導⼊ • 受容する経路に対してスコアを計算でき,経路探索等に役⽴つ 決定性 ⾮決定性
  9. Data Strategy and Operation Center 基本的な演算 (1) 10 閉包 (Closure)

    • 記号列 𝒙 ∈ ℒ(𝒜) の0回以上の繰り返しを受容する 𝒜∗ を⽣成する単項演算 > ∗ はクリーネスター (Kleene Star) とも呼ばれる • 開始状態と受容状態を兼ねる状態をグラフに追加し,𝜖-遷移で繋ぐ > 𝜖-遷移: 何も⼊⼒しなくても遷移できる特殊な遷移 > 𝜖-遷移を省略して状態数を減らすことも可能 {aba} を受容するアクセプタ 𝒜 {∅, aba, abaaba, ⋯ } を受容する 𝒜 の閉包 𝒜∗
  10. Data Strategy and Operation Center 基本的な演算 (2) 11 和集合 (Union)

    • ℒ 𝒜 ∪ ℒ(ℬ) を受容するような 𝒰 = 𝒜 + ℬ を⽣成する演算 > 交換法則 (𝒜 + ℬ = ℬ + 𝒜) が成り⽴つ • グラフを並列に並べ,状態番号を書き換える {aba} を受容するアクセプタ 𝒜 {bab} を受容するアクセプタ ℬ aba ∪ bab = {aba, bab}を受容する アクセプタ 𝒰
  11. Data Strategy and Operation Center 基本的な演算 (3) 12 連接 (Concatenation)

    • ℒ 𝒜 , ℒ(ℬ) が連続した記号列を受容する 𝒞 = 𝒜ℬ を⽣成する演算 • 𝒜 の受容状態と ℬ の開始状態を 𝜖-遷移で繋ぐ > 複数の受容・開始状態があれば,任意の組み合わせを繋ぐ {ba} を受容するアクセプタ 𝒜 {ac, bc} を受容するアクセプタ ℬ {baac, babc} を受容するアクセプタ 𝒞
  12. Data Strategy and Operation Center 便利な性質 (1) 13 ⾳声認識・⾔語処理の様々なモジュールを表現可能 (N-gram,

    HMM etc.) • 正規表現 (Regular Expression) > McNaughton-Yamada の定理 任意の正規表現が表す⾔語を受理する有限オートマトンが存在する. 逆に,任意の有限オートマトンに対し,その受理⾔語を表す正規表現が存在する. ⾮決定性オートマトン 𝜖-遷移付き ⾮決定性オートマトン 正規表現 決定性オートマトン 参考: https://www.isc.meiji.ac.jp/~mizutani/cs/automata/automatonbook.pdf
  13. Data Strategy and Operation Center 便利な性質 (2) 14 モジュールの合成 (Composition)

    • トランスデューサ 𝒜, ℬ が 𝒙 → 𝒚, 𝒚 → 𝒛 と記号列を変換するとき, 𝒜, ℬ を合成して 𝒙 → 𝒛 と変換する 𝒞 = 𝒜 ∘ ℬ を⽣成する演算 • 各モジュールをFSTで記述すれば,複雑なシステムも1つのFSTとして表現可能 > ⾳声認識の例) ⾳響モデル(HMM) + 単語発⾳辞書 + ⾔語モデル [堀+ 2004] ⼩⽂字→⼤⽂字変換器 𝒜 ⼤⽂字→ギリシャ⽂字変換器 ℬ ⼩⽂字→ギリシャ⽂字変換器 𝒞
  14. Data Strategy and Operation Center 便利な性質 (3) 15 重みに関して微分可能 •

    アクセプタ 𝒜, ℬ の連接 𝒞 = 𝒜ℬ の重み 𝐶# は 𝒜, ℬ の重みで偏微分できる • 対応するアーク間の偏微分は1,それ以外は0になる ℬ 𝒜 𝒞 = 𝒜ℬ 𝜕𝐶0 𝜕𝐴0 = 1, 𝜕𝐶1 𝜕𝐴1 = 1, 𝜕𝐶2 𝜕𝐵0 = 1, 𝜕𝐶3 𝜕𝐵0 = 1 𝜕𝐶0 𝜕𝐴1 = 0, 𝜕𝐶0 𝜕𝐵0 = 0, 𝜕𝐶0 𝜕𝐵1 = 0
  15. Data Strategy and Operation Center ここまでのまとめ 16 学習データ作成における課題 • 正規化されたテキストから⽣⽂字列を復元

    • 正規化を学習に組み込んで復元の⼿間を省けないか? 重み付き有限状態トランスデューサ • 任意の正規表現は WFST に変換可能 • 複数ルールの組み合わせが容易 • 重みについて微分可能 使い⽅や応⽤事例が分かれば何とかなるかも!!!
  16. Data Strategy and Operation Center 論⽂情報 タイトル Differentiable Weighted Finite-State

    Transducers 採択状況 Preprint (arXiv:2010.01003, ICLR2021 rejected) 著者・所属 Awni Hannun1, Vineel Pratap1, Jacob Kahn1, Wei-Ning Hsu1 1Facebook AI Research
  17. Data Strategy and Operation Center 論⽂概要 19 微分可能な WFST フレームワーク「GTN」の提案

    • C++ と Python フロントエンドを提供 • 系列認識における既存の誤差関数を再現可能 > ⾳声認識・⼿書き⽂字認識で実験 • State-of-the-art な結果を出すことにはあまり関⼼がないらしい > ベースラインに対して Plug-and-play に WFST を組み込めることが⼤事
  18. Data Strategy and Operation Center GTN 20 微分可能な WFST フレームワーク

    • $ pip install gtn • GitHub: https://github.com/gtn-org/gtn, Docs: https://gtn.readthedocs.io/ サポートする演算 • 基本的な演算 (Closure, Union, Concat, Compose etc.) • 逆伝播 • ビタビパス・スコアの計算 • 描画,ファイルからのロード
  19. Data Strategy and Operation Center コード例 21 g1 g2 intersection

    score g1.grad() スコアや勾配もグラフで返す
  20. Data Strategy and Operation Center WFTS を⽤いた系列認識モデルの学習 22 ⽅針 •

    ⼊⼒信号列 𝑿 = [𝑥$ , ⋯ , 𝑥% ],正解ラベル 𝒚 = [𝑦$ , ⋯ , 𝑦& ] に対して下式を最⼤化 log 𝑝 𝒚 𝑿 = , !∈𝒜 logadd 𝑠(𝑝) − , !∈𝒵 logadd 𝑠 𝑝 > Constrained graph 𝒜: 受容⽂字列の集合 > Normalization graph 𝒵: 出⼒可能な⽂字列の集合 > 𝑠(𝑝): ⽂字列 𝑝 に対するスコア • 𝒜 に⼤きなスコアを割り当てると log 𝑝 𝒚 𝑿 は最⼤化できる 𝒜, 𝒵 の構築⽅法が重要
  21. Data Strategy and Operation Center 系列ラベリングとしてのOCR 23 問題設定 • ⼊⼒画像

    ℐ,正解⽂字列 𝒮 に対して,次の誤差関数 ℒ(𝜔) を最⼩化する問題 ℒ 𝜔 = − , ℐ,𝒮 ∈𝒬 log 𝑝 𝒮 ℐ; 𝜔 = − , ℐ,𝒮 ∈𝒬 , )*+ , log 𝑝 𝒮) 𝑙, ℐ; 𝜔 • 固定ステップの特徴系列へのラベリングに読み替える > 出⼒ラベルを加⼯・正解⽂字列との位置合わせが必要 事前に⼊⼒信号を ⽂字単位に切るのは不可能 系列ラベリングの例 [Shi+ TPAMI2017]
  22. Data Strategy and Operation Center 出⼒ラベルの加⼯ 24 Automatic Segmentation Criteria

    (ASG) [Collobert+ 2016] • 同⼀⽂字の連続を1つにまとめる,実際に連続する場合は数字で表現 > 例) ”CCCAAATTT” → “CAT”, “APP2LLEE” → “APPLE” • FST として表現可能 > Token graph 𝒯 - : 同⼀⽂字の連続 {a, aa, ⋯ } をまとめて a を出⼒ > Label graph 𝒴 : ラベルを受容し,そのまま出⼒ > Alignment graph: ASGを通してラベルに変換される記号列 {ab, aab, abb, ⋯ } を受容 Token graph 𝒯 " Label graph 𝒴 Alignment graph 𝒯 ∘ 𝒴
  23. Data Strategy and Operation Center 𝒜, 𝒵 の構築 25 Normalization

    graph 𝒵 は NN の出⼒ ℰ と等価※ • クラス数が3, 系列⻑が4 の NN の出⼒を重みに割り当て Constrained graph 𝒜 は 𝒵 と Alignment graph の合成 • {abbb, aabb, aaab} を受容 • 受容⾔語に NN の出⼒を割り当てたので,あとはスコアを最⼤化すれば良い Normalization graph 𝒵 = ℰ Constrained graph 𝒜 = 𝒯 ∘ 𝒴 ∘ 𝒵 ※論⽂中では Bi-gram ⾔語モデル ℬ を⽤いて 𝒵 = ℰ ∘ ℬ とする
  24. Data Strategy and Operation Center 実験 26 データセット • ⼿書き⽂字認識:

    IAM [Marti+ IJDAR2002] • ⾳声認識: LibriSpeech [Panayotov+ ICCASP2015], WSJ [Paul+ 1992] ベースライン • Time-Depth Separable Conv [Hannun+ INTERSPEECH2019] ベースのモデル 実験項⽬ 1. Transitions 2. Marginalized Word Piece Decomposition 3. Convolutional WFST
  25. Data Strategy and Operation Center Transitions 27 Connectionist Temporal Classification

    (CTC) に n-gram を組み込む • CTC: ASG と同様に出⼒ラベルを加⼯する⽅法,連続⽂字間に <b> を⽤いる > 例) ”CCCAAATTT” → “CAT”, “AP<b>PLLEE” → “APPLE” • Bi-gram を使うと, <b> なしでも結果が改善 (下図⾚) • Bi-gram を back-off すると精度を落とさず⾼速化 (下図⻘)
  26. Data Strategy and Operation Center Marginalized Word Piece Decomposition 28

    サブワードへの分解⽅法を⼊⼒・タスクに応じてに変更する • Word Piece [Wu+ 2016] などのトークナイザは 実際に解きたいタスクとは独⽴に学習され,固定されることが多い • Constrained graph 𝒜 の構築時に可能な分割をグラフとして組み込んでおく the に対する decomposition graph 字間が広いと⽂字ごと,狭いと単語のパスを選択
  27. Data Strategy and Operation Center Convolutional WFST 29 畳み込みを WFST

    として表現 • カーネル 𝒦# は WFST で,𝑘 + 1 個の状態と状態間に 𝑘 個のアークを持つ • 位置 𝑡 に対する受容野グラフ ℛ'#:#%& と 𝒦# のスコアが畳み込みの出⼒と等価 𝐻.,/ 0 = , !∈𝒦!∘ℛ"#:#%& log 𝑠(𝑝) 𝑘=3, 𝑠=2 の畳み込みトランスデューサ
  28. Data Strategy and Operation Center まとめ・今後の展望 30 重み付き有限状態トランスデューサに⼊⾨ • 概念や便利な性質について概観

    • 微分可能なWFSTフレームワーク「GTN」の紹介 今後の展望 (妄想) • 実際にOCRの学習に組み込んでみる • 社内に散在する正規表現をWFSTに統⼀できないか? > OpenFst に合わせるのが良さそう - https://www.openfst.org/
  29. Data Strategy and Operation Center 参考⽂献 31 [Paul+ 1992] D.

    B. Paul and J. M. Baker, “The design for the wall street journal-based CSR corpus,” presented at the the workshop, Harriman, New York, 1992. doi: 10.3115/1075527.1075614 [Marti+ IJDAR2002] U.-V. Marti and H. Bunke, “The IAM-database: an English sentence database for offline handwriting recognition,” Int. J. Doc. Anal. Recogn., vol. 5, no. 1, pp. 39–46, Nov. 2002. [堀+ 2004] 堀貴明 and 塚⽥元., “⾳声情報処理技術の最先端:3.重み付き有限状態トランスデューサによる⾳声認識,” 情報処理, vol. 45, no. 10, pp. 1020–1026, Oct. 2004. [Graves+ ICML2006] A. Graves, S. Fernández, F. Gomez, and J. Schmidhuber, “Connectionist temporal classification: labelling unsegmented sequence data with recurrent neural networks,” in Proceedings of the 23rd international conference on Machine learning, Pittsburgh, Pennsylvania, USA, Jun. 2006, pp. 369–376.
  30. Data Strategy and Operation Center 参考⽂献 32 [岡留 2015] 岡留剛,

    例解図説オートマトンと形式⾔語⼊⾨. 森北出版, 2015. [Panayotov+ ICCASP2015] V. Panayotov, G. Chen, D. Povey, and S. Khudanpur, “Librispeech: An ASR corpus based on public domain audio books,” in 2015 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), Apr. 2015, pp. 5206–5210. [Collobert+ 2016] R. Collobert, C. Puhrsch, and G. Synnaeve, “Wav2Letter: an End-to-End ConvNet-based Speech Recognition System,” arXiv [cs.LG], Sep. 11, 2016. [Online]. Available: http://arxiv.org/abs/1609.03193 [Wu+ 2016] Y. Wu et al., “Google’s Neural Machine Translation System: Bridging the Gap between Human and Machine Translation,” arXiv [cs.CL], Sep. 26, 2016. [Online]. Available: http://arxiv.org/abs/1609.08144
  31. Data Strategy and Operation Center 参考⽂献 33 [Shi+ TPAMI2017] B.

    Shi, X. Bai, and C. Yao, “An End-to-End Trainable Neural Network for Image-Based Sequence Recognition and Its Application to Scene Text Recognition,” IEEE Trans. Pattern Anal. Mach. Intell., vol. 39, no. 11, pp. 2298–2304, Nov. 2017. [Hannun+ INTERSPEECH2019] A. Hannun, A. Lee, Q. Xu, and R. Collobert, “Sequence-to-Sequence Speech Recognition with Time-Depth Separable Convolutions,” arXiv [cs.CL], Apr. 04, 2019. [Online]. Available: http://arxiv.org/abs/1904.02619 [Hannun+ 2020] A. Hannun, V. Pratap, J. Kahn, and W.-N. Hsu, “Differentiable Weighted Finite-State Transducers,” arXiv [cs.LG], Oct. 02, 2020. [Online]. Available: http://arxiv.org/abs/2010.01003 [Hannun 2021] A. Hannun, “An introduction to weighted automata in machine learning.” https://awnihannun.com/writing/automata_ml/automata_in_machine_learning.pdf (accessed Sep. 26, 2021).