340 Views
October 23, 20
スライド概要
2020/10/23
Deep Learning JP:
http://deeplearning.jp/seminar-2/
DL輪読会資料
DEEP LEARNING JP [DL Papers] Mask TextSpotter v3: Segmentation Proposal Network for Robust Scene Text Spotting [ECCV2020] Masashi Yokota, RESTAR Inc. http://deeplearning.jp/ 1
書誌情報 • 著者: Liao et. al. (Facebook AI Research) • ECCV2020採択 2
1. Introduction 3
1.1 背景 • Text Spottingはtext detectionとtext recoginitionを同時に行うタ スク 4
1.2 課題 • 極端なアスペクト比や様々なshapeの文字等の様々なパターンが あり、これらの文字認識の読み取りはまだうまくできていない 5
1.3 従来の手法の問題点 • 従来手法は文字のbouding boxを予測するRegion Proposal Network(RPN)を基軸に発展してきた。 • しかし、RPNベースの手法は以下の問題点がある • マニュアルな四角形のanchorは、自然画像中の特殊な形(円形状etc) の文字にフィットできない • 隣のanchorとつながってしまうことがある 6
1.4 提案手法の貢献 • Anchor-freeで様々な形の文字に対応可能なSegmentation Proposal Network(SPN)の提案 • SPNで得られた領域を用いて、特徴量をハードにマスキングす ることで背景のノイズや近接文字の削除を可能にしたHard ROI maskingの提案 • 提案手法により回転、アスペクト比、文字の形状、小さい文字 の様々な側面で評価し、いずれでも大きく性能改善を達成 7
2. 関連研究 8
2.1 FOTS: Fast Oriented Text Spotting with a Unified Network [Liu et. al. CVPR2018] FOTSでは、シンプルにテキスト領域を抽出後、得られた領域の 回転をアフィン変換を応用したRoI Rotateにて補正を行い、テキ スト認識を行う。問題点として、アフィン変換の限界として、円 形に配置されたテキストにおいて、性能が著しく下がる。 9
2.2 Mask TextSpotter v1 [Lyu et. al. ECCV2018] Mask TextSpotter V1では、テキスト領域を抽出した後に各文字毎に detectionとrecognitionを同時に行うことで、円形状に書かれた文字列の読 み取りを可能にした。 10
2.2.1 Mask TextSpotter V1 • 主なContribution 1. E2Eで学習可能なモデルを提案 2. 様々な形状のテキストを読み取り可能な手法を提案 3. Pixcel VotingとWeighted Edit Distanceを提案し、detect後の文字領 域から適切な単語を検出可能にした 11
2.2.2 Mask TextSpotter V1 ~Model Overview~ テキスト領域の分類と確度計算 テキスト領域の抽出 ・単語segmentation ・文字毎のsegmentation ・文字以外の領域のsegmentation を行う 12
2.2.3 Mask TextSpotter V1 ~Model Overview~ 推論時はFast R-CNNの結果を用いて、NMSを行い余分な領域を削除する。 残った領域に対してMask branchを適用し、文字認識を行う。 13
2.2.4 Mask TextSpotter V1 ~Mask branch~ Fast RCNNから得られたRoIを上記の畳み込み層に入力し、38チャン ネルの出力を得る(globalなword segmentation、0-9とa-zのそれぞれ のchar segmentation[36チャンネル]、背景のsegmentation) 14
2.2.5 Mask TextSpotter V1 ~Optimization~ • 以下の損失関数を最小化するように学習させる(詳細は省略 します) 𝐿𝑟𝑝𝑛 : RPNの損失関数 𝐿𝑟𝑐𝑛𝑛 : Fast R-CNNの損失関数 𝛼1 , 𝛼2 : ハイパーパラメータ 𝐿𝑔𝑙𝑜𝑏𝑎𝑙 : テキスト領域のsegmetation loss 𝐿𝑐ℎ𝑎𝑟 : 領域内の各文字と背景のsegmetation loss 15
2.2.6 Mask TextSpotter V1 ~Inference~ • 推論は以下のプロセスに従って行う 1. Fast R-CNNの出力からNMSを行い、余分な領域をフィルタリング 2. フィルタリング済みの領域をMask branchに入力し、各文字の領域 を抽出 3. Pixel Votingを用いて全ての文字の領域を抽出し、全ての文字を得る 4. Weighted Edit Distanceを用いて、事前に作った辞書内の文字に照ら し合わせ、3で得られたテキストを修正しそれを推論結果として出力 16
2.2.7 Mask TextSpotter V1 ~Pixel Votingアルゴリズム~ 1. Mask branchで得られたbackgroundのdetection結果に対して、 192をしきい値として二値化 2. 1.で得られた各文字の領域に属する値の平均をとり、それを当該文字 の確率として扱う 3. 画像中の全ピクセルに対して、2.で得られた確率のargmaxを取り どのクラス(0-9a-z or 背景)に属するか決定する 17
2.2.8 Mask TextSpotter V1 ~Weighted Edit Distance~ モデルより得られた文字列は事前に用意した辞書を用いて、修正 する。その際、Weighted Edit Distanceをメトリクスとして、 最良の単語を選んでいく。Weighted Edit DistanceではPixel Votingで得られた各文字の確率を重みとして用いて利用している。 18
2.3 Mask TextSpotter v2 • V1の問題点 1. 文字レベルのdetectionをするには、各文字毎にannotationが必要 2. Segmentation mapからテキストを出力するためにpost processが必 要 3. Segmentation mapから文字順番の情報が得られない • Spatial Attention Module(SAM)をV1のMask branchに統合・ 拡張することで、V1の利点を維持しつつ、V1の問題点を改善し ていく。 19
2.3 Mask TextSpotter v2 認識モジュールではcharacter segmentationに加え、RNNベー スのSAMを追加し、双方のモジュールで予測を行う。推論時は、 双方のモジュールの結果のスコアが高い方を採用する。 20
3. Methodology 21
3.1 従来のMask TextSpotterの問題点 1. 極端なアスペクト比の文字の認識が苦手 2. 複数の単語が隣接している場合、うまくbounding boxを生成 できない → bounding box生成を挟まずに最初から各単語のsegmentation を予測することで、よりロバストに領域抽出できるようにする 22
3.2 Mask TextSpotter V2からの変更点 23
3.2 Mask TextSpotter V2からの変更点 ここの部分をsegmentationベースの手法に変更 24
3.2 V3での改良点概要 V3での改良点について以下に関して説明していく • Segmentation Predicted Network(SPN) • Hard RoI Masking • Loss Function 25
3.3 Segmentation Prediction Network U-Net Segmentation Prediction Module SPNは様々な画像サイズに対応できるよう、U-Netをベースに構 築されている。 後述のSegmentation Prediction ModuleにUNetで得られた特徴量を入力し、segmentationを行う 26
Sigmoid DeConv Batch Normalization DeConv ReLU Batch Normalization Conv 3.3.1 Segmentation Prediction Module U-Netから得られた特徴量のサイズは、H/4×W/4。 Segmentationの予測は、後述のモジュールにより1×H×Wに拡 大される 27
3.3.2 Segmentation Label Generation SPNの学習で用いる教師データは、隣接領域とつながってほしく ないため一般的に元のregionよりも縮小させる。 →Vatti clipping algorithmを用いて教師データを作っていく 28
3.3.4 教師データの生成 • Vatti Clipping Algorithmはdだけポリゴンを縮小するアルゴリ ズムであり、任意の形のポリゴンに適用可能。 • アルゴリズム概要 元のポリゴンデータに対して、以下のdだけ縮小し、それにより得られ たデータをSPNの教師データとして利用する。(AとLは、それぞれポリ ゴンの面積と周囲長。rは実験的に0.4と設定) 29
3.3.5 Proposal Generation • SPNにより得られたSegmentationは、以下の式を元に二値化 する • また、これにより得られたデータは縮小されたものなので、以 መ መ 𝐿 は 下の𝑑だけ大きくし、Segmentation Proposalとする。(𝐴と 縮小後ポリゴンの面積と周囲長。 𝑟は実験的に3.0と設定) Ƹ 30
3.4 Hard RoI Masking 要素積 U-Net SPNで得られたポリゴンから二値画像(ポリゴン内を1, それ以外を0)を生成 し、U-Netから得られた特徴量をマスクし、各文字領域内の特徴量を得る。 31
3.5 Detection and Recognition V2の認識部分をそのまま利用 文字の検出と認識部分はMask TextSpotter V2のものをそのまま利用 32
3.6 Optimization • 学習は以下の損失関数を最小化するように学習する L𝑟𝑐𝑛𝑛 : Fast R-CNNの損失関数 L𝑚𝑎𝑠𝑘 : Mask TextSpotter V2の損失関数 S: SPNの出力 G: SegmentationのGT 33
4. Experiments 34
4. 確認したい内容と利用したデータセット 1. Rotation Robustness • Rotated ICDAR2013: ICDAR2013を0-90度から15度刻みにランダムで 回転されたデータセット 2. Aspect Ratio Robustness • MSRA-TD500: 英語と中国語のマルチリンガルデータセット 3. Shape Robustness • Total Text: 様々な形状の文字を含むデータセット 4. Small Text Instance Robustness • ICDAR2015: 低解像度、小さい文字なデータを多く含むデータセット 35
4.1 implementation detail • 文字毎のannotationが必要となるため、(おそらく筆者らが)人 工的に作ったSynth Textデータセットを用いてpretrainする • その後、Synth Textと学習させたいデータセット(ex: ICDAR2015)を混ぜて学習させる 36
4.2 Rotation Robustness 37
4.2 Rotation Robustness 38
4.3 Aspect Ratio Robustness 39
4.3 Aspect Ratio Robustness 40
4.4 Shape Robustness 41
4.4 Shape Robustness Noneは辞書を使って予測した結果。Fullは辞書も使って予測し た結果。 42
4.5 Small Text Instance Robustness 43
4.6 Limitations • 90度回転のテキストの認識は、向きを認識する機構がないため うまく認識できない 44
まとめ • Mask TextSpotterV2のRPNの部分を改良し、新しくSPNを提 案。 • SPNにより、さまざまな形状の文字認識を高精度にできるよう にした。 • 回転やアスペクト比、文字形状、小さい文字それぞれの側面で 評価しても先行手法よりも大きく性能改善している • ただし、90度回転している場合は、文字の方向性を認識する機 構がないためうまくできていない →個人的には、文字の方向性を認識する機構を導入するだけで 改善しそうなので人間レベルの性能にもうすぐなりそうな予感 45