[論文] 微分可能二値化によるリアルタイム シーン テキスト検出: 1911.微分可能 二値化によるリアルタイム シーン テキスト検出
[コード]公式コード pytorch | | Feijian PaddleOCR
主な参考文献
- Tang Yudi のビデオ説明: OCR テキスト認識: Di Ge が DBNet+ABINet アルゴリズムをゼロから説明します
- DBNet 読書メモ - Zhou Jun の記事 - Zhihu https://zhuanlan.zhihu.com/p/94677957
この論文を理解する必要があるのはなぜですか?
主流的OCR框架都将其集成
、基本的な经典实用
アルゴリズムとして、圧力をかけることなく一般的な検出ニーズに対応できます。
Huawei MindSpore フレームワーク: MindOCR 統合
WeChat : WeChat OCR エンジン
OpenCV: DNN モジュール
Baidu パドル フレームワーク: PaddleOCR
OpenMMLab : MMOCR 統合
この記事の核となるアイデアは何ですか?
DBNet は、インスタンス セグメンテーションの DBNet アルゴリズムに基づいて
二値化を近似し、それを導出可能にしてトレーニングに統合することで、より正確な境界を取得し、時間のかかる後処理を大幅に削減します。
ラベル付けとトレーニングのフローチャート
元の論文や続報がはっきりと見えない
トレーニングと推論の詳細
まず、batch_size=16学習率戦略 lr= 0.007 * (1- cur_iter/max_iter) 0.9 ^{0.9}を使用し、実際のシーン データを使用し、1200 エポックSynthText数据集(由80万图片组成)
トレーニングを繰り返してモデルを最初からトレーニングします。
0.9
オープンソースのデータセット
- SynthText (合成 800,000 ベース データ セット)
- MSRA-TD500 データセット (300 の中国語と英語のトレーニング セット、200 のテスト セット、
按行标注
(テキスト行レベル)) - ICDAR 2015 データセット (トレーニング画像 1000 枚、テスト画像 500 枚、
单词级标注
(単語レベルでラベル付け)) - Total-Text データセット (1255 個のトレーニング画像と 300 個のテスト画像)
データ増強戦略
- ランダム回転 -10 度~10 度
- ランダムなトリミング
- ランダムな反転
- 画像を 640 x 640 にサイズ変更します (トレーニング効果を高めるため)
推論
- 画像の縦横比を維持してサイズを変更します
- 1080ti 単一画像に基づく推論
- 事後推論は全体の処理時間の 30% を占めます
推論フェーズ内では、確率マップ (確率) または近似バイナリ マップ (近似バイナリ マップ) を使用してテキスト境界ボックスを生成することができ、これによりほぼ同じ結果が得られます (一度トレーニングすると直接取得できるため、2 つのうちの 1 つを選択します)。 。
効率を向上させるために、閾値分岐を削除できるように確率マップを使用します。
ボックスを生成するプロセス(後処理)
固定的阈值0.2
二値化には確率マップ (probability) または近似バイナリ マップ (近似バイナリ マップ) が直接実用的です- 結果として得られるバイナリ イメージは、実際には縮小したテキスト領域 (縮小) です。
- 収縮した領域は式 D' に従って外側に拡張します。
推論中のテキスト境界の取得
テキスト形成プロセスは、
(1) まず、確率マップ/近似バイナリ マップを一定のしきい値 (0.2) で 2 値化し、実際のバイナリ マップを取得します、(2) 領域を接続します (テキスト領域を縮小します
)、
(3) ) ) 次に、領域をスケールバックします。D は外側に伸びる曲線のピクセル長です。
ここで、
A' は縮小する多角形の面積です。L' は縮小する多角形の周囲長です。経験によれば、r' は1.5 (経験値) に設定
アルゴリズムの効果
MSRA-TD500の多言語検出結果(主に中国語)
実際の検出効果(元の画像フレーム、閾値画像、確率マップ)
具体的な方法
まず、画像が特徴ピラミッドのバックボーン ネットワーク (特徴ピラミッド バックボーン) に入力され、
第 2 ステップで、異なる解像度の特徴ピラミッド バックボーンが同じスケールにアップサンプリングされてカスケードされ、全体の特徴マップ F が生成されます。が合成され
、合計特徴マップ F が予測されたテキスト ボックス セグメンテーション確率マップ (P、確率マップ) およびしきい値マップ (T、しきい値マップ) として使用されます。最後に、P と F を使用して近似値 (近似値) が計算されます。 ) バイナリ マップ (バイナリ マップ)
。
在训练期间
、確率マップ、しきい値マップ、および近似バイナリ マップについて推論する場合监督训练
(複数のラベルを作成する)
、ボックス定式化モジュールを通じて近似バイナリ マップまたは確率マップから境界ボックスを簡単に取得できます。
微分可能二値化モジュール(学習可能なパラメータ)
本来の二値化処理は
確率マップの出力結果を画素ごとに処理するもので、閾値tを指定し、画素値がtより大きい場合を出力領域とします。
適応型微分二値化処理(微分二値化)
出力結果は推定されたバイナリ マップです。T
はネットワークから学習した適応しきい値マップです。k
は増幅率を表し、経験に基づいて 50 に設定されます。i ,j は
マップ上のデータ ポイント
の本質を表します。シグモイド関数に従って修正され、微分可能かつ可逆的であり、導関数はそれ自体です
※生成方法Label
(教師ありトレーニングの場合)
赤い線: マークされたテキスト ボックス領域
青線: 縮小アルゴリズム処理領域、確率マップを参照
緑線: 拡張領域
しきい値マップは、D を押すことによる縮小と拡張の間の領域です。
閾値マップを見つけるための縮小アルゴリズム (Vatti クリッピング アルゴリズム)
D は画像の収縮距離を表します。L は
ラベル付けされたポリゴンの周囲長を表します。A は
ラベル付けされた領域の面積を表します。r は
収縮率を表します。通常は経験的に 0.4 に設定されます。
同様の処理により、しきい値マップはラベルを生成します。まず、テキスト ポリゴン G を同じオフセット D で Gd に移動します。Gs と Gd の間のギャップをテキスト領域の境界とみなし、G 内の最も近いセグメントまでの距離を計算することでしきい値マップを生成できます。
最適化機能関連
合計損失関数
Ls は、縮小後のテキスト インスタンスの損失です。
Lb は、バイナリしきい値マップの損失です。
Lt は、しきい値マップの損失です
。 α、β はそれぞれ重みを表し、経験値 1 と 10 に設定されます。
Ls と Lb はどちらもバイナリ クロス エントロピー (BCE) 損失を使用しており、
Lt の具体的な式は、
拡張されたテキスト ポリゴン領域 Gd 内の予測とラベルの間の距離です。
Ls および Lb 勾配および逆伝播解析
陽性サンプルの場合、トレーニング中に、それが標識に近い場合、勾配は大きくなり、導関数は小さくなります。
ネガティブサンプルの場合、トレーニング中に、それがラベルに近い場合、そうでない場合、逆数は非常に小さくなります