How OCR reads crumpled files?
1. 背景
グループのビジネス拡大とユーザーグループに対する信用要件の高度化に伴い、証明書の審査はビジネスの不可欠な一部となっています。たとえば、Alipay ではユーザーの ID カード情報の審査が必要であり、1688 では販売者の事業許可証の審査が必要です。そのほか、信用状や保険証券の審査を要するビジネスもあり、十分な専門知識を持つ担当者による審査が求められます。
近年、人工知能はますます多くのタスクで人間を上回る性能を示しています。AI を審査の現場に導入してスマート審査を実現すれば、審査効率は大幅に向上します。手作業の審査と比較して、スマート審査には以下のような利点があります。
ただし、高度なスマート審査を実現するのは容易ではなく、以下の取り組みが必要です。
機械に人間の代わりに文書審査やテキスト審査を行わせるには、まず機械が人間と同じように「見る」(OCR:文書画像をテキストに変換する)ことができ、次に人間と同じように「理解する」(Natural Language Processing (NLP):誤り訂正、単語分割、テキスト分類など)ことができる必要があります。後続のあらゆるアルゴリズムの源として、OCR アルゴリズムはスマート審査において重要な役割を果たします。アルゴリズム自体に加え、画像品質は OCR 認識精度に影響する最大の要因です。一般に、画像品質は傾き、鮮明度、歪みの 3 つの観点から評価されます。本稿の目的は、アルゴリズムを用いて歪んだ文書画像を補正し、歪んだ文書画像の OCR 認識精度を向上させて、スマート審査を担保する方法を示すことです。
2. 関連研究
2.1 伝統的手法
歪んだ文書画像に対する現在の補正アルゴリズムは、主に以下の 3 つのカテゴリに分類されます。
ハードウェアベースの歪み文書補正
この手法では、専用のハードウェアを用いて紙の三次元形状情報をスキャンします。たとえば、構造化光源を使用して文書をスキャンし、文書の奥行き情報(三次元情報)を取得した後、その奥行き情報に基づいて文書画像を補正します。
三次元モデル再構築に基づく文書補正アルゴリズム
この手法は、文書の歪みの原因となる要素から出発します。文書の配置角度、光源の方向、画像取得デバイスの特性などの要素を考慮し、文書を三次元でモデリングして、既存の数学的知識を用いて歪みを補正します。
コンテンツ分割に基づく文書補正アルゴリズム
このアルゴリズムは幾何学的シミュレーションや三次元歪みモデリングを行わず、文書画像を直接分析します。傾き角度、テキストライン、文字や単語の特徴などを分析し、文書画像以外の要因に影響されない歪み補正アルゴリズムを設計します。この手法の利点は、歪みの原因を明示的に把握する必要がないことです。
これら 3 種類のアルゴリズムにはそれぞれの長所と短所があり、以下のように要約できます。
伝統的手法の多くは特定のシーンをモデル化するものであり、現在のシーンから外れるとモデルは機能しなくなります。深層学習の台頭により、一部の研究者は深層学習関連のアルゴリズムを用いて歪んだ文書画像を補正する手法を提案しました。
2.2 深層学習手法
近年の深層学習の台頭に伴い、一部の研究者は意味的セグメンテーション関連のモデルを歪んだ文書画像に適用し、ピクセルレベルの分類問題をピクセルレベルの回帰問題に変換することで、歪んだ文書画像の補正を実現することを提案しました。このモデルは一定の汎化能力を持ち、複雑なシーンでの歪みや折り目のある画像を補正できます。
CVPR 2018 で、Kema らは意味的セグメンテーションに基づく U-net モデル [1] を提案しました。このモデルはグラフ手法を用いて実シーンに近い歪んだ文書画像を生成する U-net アーキテクチャです。
深層学習の利点は、十分に豊富で高品質な訓練サンプルがあれば、深いネットワーク構造により一定の汎化能力を得られ、さまざまな歪みを補正できることです。これにより、伝統的手法の限界を超えることができます。
実際の業務の複雑さを考慮すると、伝統的手法では対応が困難です。そのため、本稿では深層学習の意味的セグメンテーション分野の関連知識を活用し、既存手法の欠点に対する最適化手法を提案して、歪んだ文書の補正を実現します。
3. データセットの構築
機械学習や深層学習にある程度の理解がある方であれば、多くの場合、データがモデルの性能を決定することをご存じでしょう。歪んだ文書の復元に関して、一方面では公開データセットが少なく、他方面ではピクセルレベルの回帰タスクを実現できるニューラルネットワーク構造を構築することを目標としています。現時点では、公開されたラベル付きデータセットはほぼ存在しません。そのため、文献 [1] の手法を参考にして独自にデータセットを生成しました。
3.1 歪んだ文書画像の生成
歪みはさらに折り目とカールに分類されます。グラフの知識を用いて、以下の手順で文書の折り目とカールを実現しました。
その中で、カールと折り目の違いは計算式の違いにあります。
ハイパーパラメータのサイズを調整することで、異なる歪み度合いを実現できます。以下の図に示す通りです。
3.2 データセット生成過程での問題解決
データセットの生成過程では、以下のような多くの課題にも直面しました。
サンプルセットのラベルをどのように生成するか?
画像生成時の空ピクセルをどのように処理するか?
まず、サンプルのラベル付けについてです。ピクセルレベルの回帰を実現するには、各ピクセルに対応するラベル値が必要です。ネットワーク構造がタスクをより良く処理できるように、ラベルをどのように設計すべきでしょうか。
以下のように設計しました。
まず、歪み変換後の画像と元画像を比較して、各ピクセルが移動すべき変位量と方向を算出します。次に、3 次元行列を作成します。1 次元目は変換後画像のグレースケール値を格納し、残りの 2 次元は x 軸方向と y 軸方向の変位の大きさと方向をそれぞれ格納します。これにより、サンプルとラベルの構築を実現しました。
さらに、変換過程で生成された画像に黒点や黒線が現れることがあることを発見しました。以下の図に示す通りです。
上図の 3 つの小画像は、それぞれ変換後画像と各ピクセルのラベル画像を表しています。分析の結果、黒点が生じる原因は該当座標のピクセルが空白であることであり、空白の原因は変換過程での丸め演算にあることがわかりました。丸め演算により、隣接する 2 列のピクセル間に隙間が生じることがあります。以下の模式図に示す通りです。
その後、最近傍補間によりこの問題を解決しました。上記の黒点がある画像を補間して、以下の変換画像を得ました。
もちろん、空ピクセルは他の補間方法や修復方法でも修正できます。
データセットの問題を解決することは、モデルの食料問題を解決することに相当します。では、実際のモデルはどのようなものでしょうか。以下で詳しく説明します。
4. モデルの構築と最適化
4.1 U-net に基づく歪み文書の補正と復元
最初に、意味的セグメンテーションで最も一般的に使用される U-net モデルを選択しました。ネットワークアーキテクチャを以下の図に示します [2]。
ネットワークアーキテクチャは「U」字型をしているため、U-net と呼ばれます。このニューラルネットワークはエンコーダー・デコーダー構造として理解できます。エンコーダーは収縮パスで、主に畳み込み層とプーリング層で構成され、特徴抽出と意味情報の取得を目的とします。デコーダーは拡張パスで、主に転置畳み込みとスキップ接続により実現され、アップサンプリングを目的とします。プーリング操作のダウンサンプリングにより画像の次元が縮小されますが、転置畳み込みにより特徴マップの次元を大きくし、元の画像サイズを復元することでピクセルレベルの回帰を実現します。ただし、この方法で得られる結果は粗いため、浅い特徴をスキップ接続でアップサンプリング後の特徴マップに転送し、精密な位置決めを実現します。
しかし、U-net モデルベースの効果は期待通りではありませんでした。
主な原因は、テキストの歪みやライン間のズレ、位置ずれなどの現象が生じることです。深刻な場合には、画像の破損が発生することもあります。
モデルを最適化するには問題の所在を特定する必要があるため、モデルの予測結果を可視化して以下の図を得ました。
予測ラベルと正解ラベルは大まかな傾向は一致しているものの、予測値がクラスター状に分布しており、正解ラベルほど正確ではないことがわかりました。すなわち、解像度が不十分で、位置決め精度が低いということです。そのため、以下の 3 つの観点からモデルを最適化しました。
モデル構造の変更:U-net から Stacked U-net へ変更し、解像度を向上させる
損失関数の変更:最適化過程で隣接する元ピクセル間の予測結果の差を小さくし、テキストの歪みを改善する
予測結果の後処理:ノイズ現象を修正する
以下で、各最適化ステップの詳細を説明します。
4.2 Stacked U-net に基づく歪み文書の補正と復元
(1) ネットワーク構造の変更:U-net → Stacked U-net
Stacked U-net のネットワーク構造を上に示します。論文の積み上げ構造を参考にし、解像度問題の解決を目的として、2 つの U-net を積み上げました。1 つ目の U-net で粗い予測結果を取得して事前情報として利用し、その予測結果と元の歪みマップを組み合わせて 2 つ目の U-net に入力します。これにより、深い抽象的特徴と浅い高解像度特徴を組み合わせた微細な予測を実現します。
(2) 損失関数の改善:スケール不変損失の追加
U-net では、以下の二乗平均平方根誤差関数を使用していました。
ここで、y は二次元ベクトルを表します。しかし、この損失関数では文字間の歪みが発生しやすいため、スケール不変損失を追加して現在の結果を改善しました。マッピング後の相対変位と対応する正解データの相対変位の差をできるだけ小さくすることを期待しています。
さらに、以下の L1 損失の形式を使用すると、L2 損失よりも良い結果が得られることを発見しました。
ここで、は平均二乗誤差とスケール不変誤差の比率を調整するハイパーパラメータです。
L2 損失と L1 損失の効果比較を示します。
L1 損失は細部においてより良い結果を達成できることがわかります。その理由は以下のように理解できます。
L2 損失は関数の二乗演算により大きな誤差値に敏感で、小さな誤差値を無視しがちです。たとえば、ピクセル A の MAE 誤差が 2 で、ピクセル B の MAE 誤差が 0.02 の場合、100 倍の差がありますが、二乗演算ではピクセル A の誤差値が 4 に、ピクセル B の誤差値が 0.0004 になり、10000 倍の差になります。そのため、L1 損失は細部でより優れた性能を発揮します。
(3) 後処理の平滑化
U-net が予測した画像にはノイズや破損が頻繁に現れることを発見しました。この現象が発生する主な原因は、隣接するピクセルや類似のピクセルは類似した予測値を持つべきところ、隣接ピクセルの予測値が大きく異なるとノイズや画像の破損が発生しやすくなることです。そのため、予測ラベルを平滑化することでこの現象を修正しました。シンプルですが効果的です。
Stacked U-net の生成画像を分析すると、最適化後にノイズや歪みの一定の改善が見られるものの、文書画像にはまだ歪みが残っていることがわかります。
どこが不十分でこの現象が生じているのでしょうか。U-net の位置精度を向上させ、テキストの歪み、ライン間の不一致、ノイズをさまざまな角度から改善しました。しかし、Stacked U-net のネットワーク構造は訓練セットでは良い結果を得られるものの、検証セットでは期待通りの効果が得られません。つまり、Stacked U-net のネットワーク構造は訓練セットで過学習を起こしているのです。ここで、非常に矛盾した 2 つの課題を発見しました。
ネットワークが浅すぎて受容野が小さすぎると、十分な周辺ピクセル情報を取得できず、正確な結果が得られない。
ネットワークが深すぎると、受容野は拡大するものの、ネットワークパラメータが多すぎるため、訓練時間が長くなる一方で、モデルの過学習を引き起こしやすくなる。
そこで、受容野の十分な大きさを確保しつつ、過学習を軽減できる軽量なネットワーク構造を見つけられるのではないかと考えました。
そこで、Dilated Convolution という手法を見つけました。
4.3 Dilated U-net に基づく歪み文書の補正と復元
Dilated Convolution は、畳み込みカーネルの間に穴を挿入する手法です。標準的な畳み込みと比較して、dilation rate(拡張率)という追加のハイパーパラメータがあります。dilation rate = 1 の場合は標準的な畳み込み操作と同じです。dilation rate = 2 の場合は、畳み込みカーネルの各要素間に穴が挿入されることを意味します。模式図は以下の通りです。
図 a は 3x3 dilation rate 1 の拡張畳み込みに対応し、通常の畳み込み操作と同じです。
図 b は 3x3 dilation rate 2 の拡張畳み込みに対応します。実際のカーネルサイズは 3x3 のままですが、穴が 1 つあります。カーネルサイズは 3x3 にもかかわらず、この畳み込みの受容野は 7x7 に拡大していることがわかります。
受容野が 7x7 である理由を説明します。dilation rate 2 の拡張畳み込みの前の層が dilation rate 1 の拡張畳み込みである場合、各赤点は dilation rate 1 の畳み込みの出力であり、その受容野は 3x3 です。したがって、dilation rate 2 の層の受容野は 7x7 に達します。
カーネルサイズが 7x7 だが、9 点の重みのみが 0 でない値を持ち、残りが 0 であると理解することもできます。
図 c は dilation rate 4 の拡張畳み込み操作です。同様に、dilation rate 1 と dilation rate 2 の 2 つの畳み込みに続くことで、受容野は 15x15 に達します。
従来の畳み込み操作と比較すると、3x3 の畳み込み 3 層を重ねてストライドが 1 の場合、受容野は (kernel - 1) * layers + 1 = 7 しか達成できません。すなわち、受容野と層数は線形関係です。一方、拡張畳み込みの受容野は指数関数的に増大します。下図は、通常の畳み込み 6 層と拡張畳み込み 6 層を積み上げた場合の受容野の比較を示しています。
拡張畳み込みの利点は以下のように要約できます。
プーリングによる情報損失なしに、受容野を拡大できる。
受容野と畳み込みカーネルサイズの間に指数関数的な関係がある。
拡張畳み込みはパラメータ数を増やさず、過学習しにくく、訓練を高速化する。
拡張畳み込みの前後で画像の次元は変化しない。
Dilated Convolution と U-net アーキテクチャに基づいて、以下の構造の Dilated U-net を設計しました。
マルチスケールの並列拡張畳み込み U-net 構造と、マルチスケールのシリアル拡張畳み込み U-net 構造を設計しました。シリアル構造の方がシリアルの重畳効果により優れており、増幅器のカスケードのように受容野を拡大することで、各ピクセルがより多くの周辺ピクセル情報を取得し、より正確な結果を得られます。
Dilated U-net と他のモデルを比較すると、以下の図のような結果が得られます。
Dilated U-net の補正により、補正後の文書画像は基本的にはわずかな歪みや変形しかないことがわかります。
5. モデル評価
5.1 基本モデルパラメータ比較
各モデルを総括するため、まず各モデルのパラメータ数とモデルサイズの比較を確認します。
次に、各モデルの訓練セットと検証セットにおける損失曲線を確認します。
実線は訓練セットでの効果、点線は検証セットでの効果を表しています。U-net と Stacked U-net のいずれにおいても、訓練セットと検証セットの損失に大きな差があることがわかります。これはモデルの過学習を意味しています。一方、Dilated U-net の過学習の状況は大幅に改善されています。
Dilated U-net はパラメータ数が少なく、訓練速度が速く、精度も高いことがわかります。「less is more(少ないことは多いこと)」という有名な言葉にまさに合致しています。
5.2 モデル評価
最終的なモデル評価では、MS-SSIM 指標を使用して補正前後の画像類似度を評価しました。MS-SSIM の正式名称は Multi-Scale Structural Similarity です。その名の通り、MS-SSIM は SSIM(構造的類似性)を複数のスケールで集約したものです。
MS-SSIM を計算するには、まず SSIM を計算する必要があります。SSIM は 2 つの画像の類似度を測定する指標で、人間の主観的知覚を考慮した計算思想に基づいています。
非常に明るい領域では、歪みはより目立ちにくい。(輝度、明度)
「テクスチャ」が複雑な領域では、歪みはより検出しにくい。(コントラスト、対比)
空間的に隣接するピクセル間には一定の「構造」が形成され、人間の目はこの構造情報に敏感である。(構造)
具体的には、SSIM は以下の式で上記の 3 つの要素を測定します。
SSIM は輝度、コントラスト、構造の要素を考慮していますが、考慮されていないもう一つの主観的要素があります。それは解像度です。明らかに、異なる解像度では、人間の目の画像差に対する感度は異なります。たとえば、高解像度の Retina ディスプレイでは目に見えるアーティファクトも、低解像度のスマートフォンでは見えないことがあります。そこで、MS-SSIM 指標、すなわちマルチスケール SSIM が提案されました。画像をサンプリングし、複数のスケールで比較と構造比較を計算し、最終的に複数のスケールの SSIM スコアを集約します。計算過程を以下の模式図に示します。
訓練セットと検証セットに加え、ランダムに 100 枚の歪み変換画像を生成してテストセットとし、MS-SSIM 指標で各モデルの補正効果を評価しました。最終的な各モデルの MS-SSIM スコアは以下の通りです。
このままでは直感的ではないため、ヒストグラムで結果を示します。
上図から、以下の結論を導くことができます。
Dilated U-net の効果は Stacked U-net および U-net より優れている。
L1 損失関数は L2 損失関数より優れている。
平滑化操作は各モデルに対して一定の最適化効果を発揮する。
6. 今後の展望
画像の意味的セグメンテーション分野の U-net モデルに基づき、歪んだ文書画像の補正問題をピクセルレベルの回帰問題に変換しました。本稿で現れた文書の歪みやラインのズレなどの問題に対し、モデル結果の可視化と予測結果の分析を通じて不十分さなどの課題を特定し、最先端の文献を参考に Stacked U-net を実装し、Dilated U-net という対応するアルゴリズム最適化モデルを提案しました。単純なシナリオでは良好な結果を達成できるものの、以下のような一定の不足点が存在します。
データセット:ラベル付けの問題に対応するため、現在のデータセットはグラフ関連の知識を参考にして独自に構築したものであり、ニューラルネットワークが学習できる知識は限定されています。ネットワークの上限はデータセットの品質に影響されます。そのため、今後の研究では、一方面では自然シーンでのデータセットを拡充し、他方面では生成的敵対ネットワークの関連知識を導入して、モデルの汎化性を高めることが考えられます。
ニューラルネットワーク構造:Stacked U-net と比較して、現在の Dilated U-net のネットワーク構造はより軽量で訓練速度も速いですが、ネットワークモデルをモバイル端末で使用する場合、応答速度のさらなる最適化が必要です。
さらに、DeepLab 関連のネットワーク構造や CRF ベースの後処理手法を試して、予測精度を向上させることも検討できます。
グループのビジネス拡大とユーザーグループに対する信用要件の高度化に伴い、証明書の審査はビジネスの不可欠な一部となっています。たとえば、Alipay ではユーザーの ID カード情報の審査が必要であり、1688 では販売者の事業許可証の審査が必要です。そのほか、信用状や保険証券の審査を要するビジネスもあり、十分な専門知識を持つ担当者による審査が求められます。
近年、人工知能はますます多くのタスクで人間を上回る性能を示しています。AI を審査の現場に導入してスマート審査を実現すれば、審査効率は大幅に向上します。手作業の審査と比較して、スマート審査には以下のような利点があります。
ただし、高度なスマート審査を実現するのは容易ではなく、以下の取り組みが必要です。
機械に人間の代わりに文書審査やテキスト審査を行わせるには、まず機械が人間と同じように「見る」(OCR:文書画像をテキストに変換する)ことができ、次に人間と同じように「理解する」(Natural Language Processing (NLP):誤り訂正、単語分割、テキスト分類など)ことができる必要があります。後続のあらゆるアルゴリズムの源として、OCR アルゴリズムはスマート審査において重要な役割を果たします。アルゴリズム自体に加え、画像品質は OCR 認識精度に影響する最大の要因です。一般に、画像品質は傾き、鮮明度、歪みの 3 つの観点から評価されます。本稿の目的は、アルゴリズムを用いて歪んだ文書画像を補正し、歪んだ文書画像の OCR 認識精度を向上させて、スマート審査を担保する方法を示すことです。
2. 関連研究
2.1 伝統的手法
歪んだ文書画像に対する現在の補正アルゴリズムは、主に以下の 3 つのカテゴリに分類されます。
ハードウェアベースの歪み文書補正
この手法では、専用のハードウェアを用いて紙の三次元形状情報をスキャンします。たとえば、構造化光源を使用して文書をスキャンし、文書の奥行き情報(三次元情報)を取得した後、その奥行き情報に基づいて文書画像を補正します。
三次元モデル再構築に基づく文書補正アルゴリズム
この手法は、文書の歪みの原因となる要素から出発します。文書の配置角度、光源の方向、画像取得デバイスの特性などの要素を考慮し、文書を三次元でモデリングして、既存の数学的知識を用いて歪みを補正します。
コンテンツ分割に基づく文書補正アルゴリズム
このアルゴリズムは幾何学的シミュレーションや三次元歪みモデリングを行わず、文書画像を直接分析します。傾き角度、テキストライン、文字や単語の特徴などを分析し、文書画像以外の要因に影響されない歪み補正アルゴリズムを設計します。この手法の利点は、歪みの原因を明示的に把握する必要がないことです。
これら 3 種類のアルゴリズムにはそれぞれの長所と短所があり、以下のように要約できます。
伝統的手法の多くは特定のシーンをモデル化するものであり、現在のシーンから外れるとモデルは機能しなくなります。深層学習の台頭により、一部の研究者は深層学習関連のアルゴリズムを用いて歪んだ文書画像を補正する手法を提案しました。
2.2 深層学習手法
近年の深層学習の台頭に伴い、一部の研究者は意味的セグメンテーション関連のモデルを歪んだ文書画像に適用し、ピクセルレベルの分類問題をピクセルレベルの回帰問題に変換することで、歪んだ文書画像の補正を実現することを提案しました。このモデルは一定の汎化能力を持ち、複雑なシーンでの歪みや折り目のある画像を補正できます。
CVPR 2018 で、Kema らは意味的セグメンテーションに基づく U-net モデル [1] を提案しました。このモデルはグラフ手法を用いて実シーンに近い歪んだ文書画像を生成する U-net アーキテクチャです。
深層学習の利点は、十分に豊富で高品質な訓練サンプルがあれば、深いネットワーク構造により一定の汎化能力を得られ、さまざまな歪みを補正できることです。これにより、伝統的手法の限界を超えることができます。
実際の業務の複雑さを考慮すると、伝統的手法では対応が困難です。そのため、本稿では深層学習の意味的セグメンテーション分野の関連知識を活用し、既存手法の欠点に対する最適化手法を提案して、歪んだ文書の補正を実現します。
3. データセットの構築
機械学習や深層学習にある程度の理解がある方であれば、多くの場合、データがモデルの性能を決定することをご存じでしょう。歪んだ文書の復元に関して、一方面では公開データセットが少なく、他方面ではピクセルレベルの回帰タスクを実現できるニューラルネットワーク構造を構築することを目標としています。現時点では、公開されたラベル付きデータセットはほぼ存在しません。そのため、文献 [1] の手法を参考にして独自にデータセットを生成しました。
3.1 歪んだ文書画像の生成
歪みはさらに折り目とカールに分類されます。グラフの知識を用いて、以下の手順で文書の折り目とカールを実現しました。
その中で、カールと折り目の違いは計算式の違いにあります。
ハイパーパラメータのサイズを調整することで、異なる歪み度合いを実現できます。以下の図に示す通りです。
3.2 データセット生成過程での問題解決
データセットの生成過程では、以下のような多くの課題にも直面しました。
サンプルセットのラベルをどのように生成するか?
画像生成時の空ピクセルをどのように処理するか?
まず、サンプルのラベル付けについてです。ピクセルレベルの回帰を実現するには、各ピクセルに対応するラベル値が必要です。ネットワーク構造がタスクをより良く処理できるように、ラベルをどのように設計すべきでしょうか。
以下のように設計しました。
まず、歪み変換後の画像と元画像を比較して、各ピクセルが移動すべき変位量と方向を算出します。次に、3 次元行列を作成します。1 次元目は変換後画像のグレースケール値を格納し、残りの 2 次元は x 軸方向と y 軸方向の変位の大きさと方向をそれぞれ格納します。これにより、サンプルとラベルの構築を実現しました。
さらに、変換過程で生成された画像に黒点や黒線が現れることがあることを発見しました。以下の図に示す通りです。
上図の 3 つの小画像は、それぞれ変換後画像と各ピクセルのラベル画像を表しています。分析の結果、黒点が生じる原因は該当座標のピクセルが空白であることであり、空白の原因は変換過程での丸め演算にあることがわかりました。丸め演算により、隣接する 2 列のピクセル間に隙間が生じることがあります。以下の模式図に示す通りです。
その後、最近傍補間によりこの問題を解決しました。上記の黒点がある画像を補間して、以下の変換画像を得ました。
もちろん、空ピクセルは他の補間方法や修復方法でも修正できます。
データセットの問題を解決することは、モデルの食料問題を解決することに相当します。では、実際のモデルはどのようなものでしょうか。以下で詳しく説明します。
4. モデルの構築と最適化
4.1 U-net に基づく歪み文書の補正と復元
最初に、意味的セグメンテーションで最も一般的に使用される U-net モデルを選択しました。ネットワークアーキテクチャを以下の図に示します [2]。
ネットワークアーキテクチャは「U」字型をしているため、U-net と呼ばれます。このニューラルネットワークはエンコーダー・デコーダー構造として理解できます。エンコーダーは収縮パスで、主に畳み込み層とプーリング層で構成され、特徴抽出と意味情報の取得を目的とします。デコーダーは拡張パスで、主に転置畳み込みとスキップ接続により実現され、アップサンプリングを目的とします。プーリング操作のダウンサンプリングにより画像の次元が縮小されますが、転置畳み込みにより特徴マップの次元を大きくし、元の画像サイズを復元することでピクセルレベルの回帰を実現します。ただし、この方法で得られる結果は粗いため、浅い特徴をスキップ接続でアップサンプリング後の特徴マップに転送し、精密な位置決めを実現します。
しかし、U-net モデルベースの効果は期待通りではありませんでした。
主な原因は、テキストの歪みやライン間のズレ、位置ずれなどの現象が生じることです。深刻な場合には、画像の破損が発生することもあります。
モデルを最適化するには問題の所在を特定する必要があるため、モデルの予測結果を可視化して以下の図を得ました。
予測ラベルと正解ラベルは大まかな傾向は一致しているものの、予測値がクラスター状に分布しており、正解ラベルほど正確ではないことがわかりました。すなわち、解像度が不十分で、位置決め精度が低いということです。そのため、以下の 3 つの観点からモデルを最適化しました。
モデル構造の変更:U-net から Stacked U-net へ変更し、解像度を向上させる
損失関数の変更:最適化過程で隣接する元ピクセル間の予測結果の差を小さくし、テキストの歪みを改善する
予測結果の後処理:ノイズ現象を修正する
以下で、各最適化ステップの詳細を説明します。
4.2 Stacked U-net に基づく歪み文書の補正と復元
(1) ネットワーク構造の変更:U-net → Stacked U-net
Stacked U-net のネットワーク構造を上に示します。論文の積み上げ構造を参考にし、解像度問題の解決を目的として、2 つの U-net を積み上げました。1 つ目の U-net で粗い予測結果を取得して事前情報として利用し、その予測結果と元の歪みマップを組み合わせて 2 つ目の U-net に入力します。これにより、深い抽象的特徴と浅い高解像度特徴を組み合わせた微細な予測を実現します。
(2) 損失関数の改善:スケール不変損失の追加
U-net では、以下の二乗平均平方根誤差関数を使用していました。
ここで、y は二次元ベクトルを表します。しかし、この損失関数では文字間の歪みが発生しやすいため、スケール不変損失を追加して現在の結果を改善しました。マッピング後の相対変位と対応する正解データの相対変位の差をできるだけ小さくすることを期待しています。
さらに、以下の L1 損失の形式を使用すると、L2 損失よりも良い結果が得られることを発見しました。
ここで、は平均二乗誤差とスケール不変誤差の比率を調整するハイパーパラメータです。
L2 損失と L1 損失の効果比較を示します。
L1 損失は細部においてより良い結果を達成できることがわかります。その理由は以下のように理解できます。
L2 損失は関数の二乗演算により大きな誤差値に敏感で、小さな誤差値を無視しがちです。たとえば、ピクセル A の MAE 誤差が 2 で、ピクセル B の MAE 誤差が 0.02 の場合、100 倍の差がありますが、二乗演算ではピクセル A の誤差値が 4 に、ピクセル B の誤差値が 0.0004 になり、10000 倍の差になります。そのため、L1 損失は細部でより優れた性能を発揮します。
(3) 後処理の平滑化
U-net が予測した画像にはノイズや破損が頻繁に現れることを発見しました。この現象が発生する主な原因は、隣接するピクセルや類似のピクセルは類似した予測値を持つべきところ、隣接ピクセルの予測値が大きく異なるとノイズや画像の破損が発生しやすくなることです。そのため、予測ラベルを平滑化することでこの現象を修正しました。シンプルですが効果的です。
Stacked U-net の生成画像を分析すると、最適化後にノイズや歪みの一定の改善が見られるものの、文書画像にはまだ歪みが残っていることがわかります。
どこが不十分でこの現象が生じているのでしょうか。U-net の位置精度を向上させ、テキストの歪み、ライン間の不一致、ノイズをさまざまな角度から改善しました。しかし、Stacked U-net のネットワーク構造は訓練セットでは良い結果を得られるものの、検証セットでは期待通りの効果が得られません。つまり、Stacked U-net のネットワーク構造は訓練セットで過学習を起こしているのです。ここで、非常に矛盾した 2 つの課題を発見しました。
ネットワークが浅すぎて受容野が小さすぎると、十分な周辺ピクセル情報を取得できず、正確な結果が得られない。
ネットワークが深すぎると、受容野は拡大するものの、ネットワークパラメータが多すぎるため、訓練時間が長くなる一方で、モデルの過学習を引き起こしやすくなる。
そこで、受容野の十分な大きさを確保しつつ、過学習を軽減できる軽量なネットワーク構造を見つけられるのではないかと考えました。
そこで、Dilated Convolution という手法を見つけました。
4.3 Dilated U-net に基づく歪み文書の補正と復元
Dilated Convolution は、畳み込みカーネルの間に穴を挿入する手法です。標準的な畳み込みと比較して、dilation rate(拡張率)という追加のハイパーパラメータがあります。dilation rate = 1 の場合は標準的な畳み込み操作と同じです。dilation rate = 2 の場合は、畳み込みカーネルの各要素間に穴が挿入されることを意味します。模式図は以下の通りです。
図 a は 3x3 dilation rate 1 の拡張畳み込みに対応し、通常の畳み込み操作と同じです。
図 b は 3x3 dilation rate 2 の拡張畳み込みに対応します。実際のカーネルサイズは 3x3 のままですが、穴が 1 つあります。カーネルサイズは 3x3 にもかかわらず、この畳み込みの受容野は 7x7 に拡大していることがわかります。
受容野が 7x7 である理由を説明します。dilation rate 2 の拡張畳み込みの前の層が dilation rate 1 の拡張畳み込みである場合、各赤点は dilation rate 1 の畳み込みの出力であり、その受容野は 3x3 です。したがって、dilation rate 2 の層の受容野は 7x7 に達します。
カーネルサイズが 7x7 だが、9 点の重みのみが 0 でない値を持ち、残りが 0 であると理解することもできます。
図 c は dilation rate 4 の拡張畳み込み操作です。同様に、dilation rate 1 と dilation rate 2 の 2 つの畳み込みに続くことで、受容野は 15x15 に達します。
従来の畳み込み操作と比較すると、3x3 の畳み込み 3 層を重ねてストライドが 1 の場合、受容野は (kernel - 1) * layers + 1 = 7 しか達成できません。すなわち、受容野と層数は線形関係です。一方、拡張畳み込みの受容野は指数関数的に増大します。下図は、通常の畳み込み 6 層と拡張畳み込み 6 層を積み上げた場合の受容野の比較を示しています。
拡張畳み込みの利点は以下のように要約できます。
プーリングによる情報損失なしに、受容野を拡大できる。
受容野と畳み込みカーネルサイズの間に指数関数的な関係がある。
拡張畳み込みはパラメータ数を増やさず、過学習しにくく、訓練を高速化する。
拡張畳み込みの前後で画像の次元は変化しない。
Dilated Convolution と U-net アーキテクチャに基づいて、以下の構造の Dilated U-net を設計しました。
マルチスケールの並列拡張畳み込み U-net 構造と、マルチスケールのシリアル拡張畳み込み U-net 構造を設計しました。シリアル構造の方がシリアルの重畳効果により優れており、増幅器のカスケードのように受容野を拡大することで、各ピクセルがより多くの周辺ピクセル情報を取得し、より正確な結果を得られます。
Dilated U-net と他のモデルを比較すると、以下の図のような結果が得られます。
Dilated U-net の補正により、補正後の文書画像は基本的にはわずかな歪みや変形しかないことがわかります。
5. モデル評価
5.1 基本モデルパラメータ比較
各モデルを総括するため、まず各モデルのパラメータ数とモデルサイズの比較を確認します。
次に、各モデルの訓練セットと検証セットにおける損失曲線を確認します。
実線は訓練セットでの効果、点線は検証セットでの効果を表しています。U-net と Stacked U-net のいずれにおいても、訓練セットと検証セットの損失に大きな差があることがわかります。これはモデルの過学習を意味しています。一方、Dilated U-net の過学習の状況は大幅に改善されています。
Dilated U-net はパラメータ数が少なく、訓練速度が速く、精度も高いことがわかります。「less is more(少ないことは多いこと)」という有名な言葉にまさに合致しています。
5.2 モデル評価
最終的なモデル評価では、MS-SSIM 指標を使用して補正前後の画像類似度を評価しました。MS-SSIM の正式名称は Multi-Scale Structural Similarity です。その名の通り、MS-SSIM は SSIM(構造的類似性)を複数のスケールで集約したものです。
MS-SSIM を計算するには、まず SSIM を計算する必要があります。SSIM は 2 つの画像の類似度を測定する指標で、人間の主観的知覚を考慮した計算思想に基づいています。
非常に明るい領域では、歪みはより目立ちにくい。(輝度、明度)
「テクスチャ」が複雑な領域では、歪みはより検出しにくい。(コントラスト、対比)
空間的に隣接するピクセル間には一定の「構造」が形成され、人間の目はこの構造情報に敏感である。(構造)
具体的には、SSIM は以下の式で上記の 3 つの要素を測定します。
SSIM は輝度、コントラスト、構造の要素を考慮していますが、考慮されていないもう一つの主観的要素があります。それは解像度です。明らかに、異なる解像度では、人間の目の画像差に対する感度は異なります。たとえば、高解像度の Retina ディスプレイでは目に見えるアーティファクトも、低解像度のスマートフォンでは見えないことがあります。そこで、MS-SSIM 指標、すなわちマルチスケール SSIM が提案されました。画像をサンプリングし、複数のスケールで比較と構造比較を計算し、最終的に複数のスケールの SSIM スコアを集約します。計算過程を以下の模式図に示します。
訓練セットと検証セットに加え、ランダムに 100 枚の歪み変換画像を生成してテストセットとし、MS-SSIM 指標で各モデルの補正効果を評価しました。最終的な各モデルの MS-SSIM スコアは以下の通りです。
このままでは直感的ではないため、ヒストグラムで結果を示します。
上図から、以下の結論を導くことができます。
Dilated U-net の効果は Stacked U-net および U-net より優れている。
L1 損失関数は L2 損失関数より優れている。
平滑化操作は各モデルに対して一定の最適化効果を発揮する。
6. 今後の展望
画像の意味的セグメンテーション分野の U-net モデルに基づき、歪んだ文書画像の補正問題をピクセルレベルの回帰問題に変換しました。本稿で現れた文書の歪みやラインのズレなどの問題に対し、モデル結果の可視化と予測結果の分析を通じて不十分さなどの課題を特定し、最先端の文献を参考に Stacked U-net を実装し、Dilated U-net という対応するアルゴリズム最適化モデルを提案しました。単純なシナリオでは良好な結果を達成できるものの、以下のような一定の不足点が存在します。
データセット:ラベル付けの問題に対応するため、現在のデータセットはグラフ関連の知識を参考にして独自に構築したものであり、ニューラルネットワークが学習できる知識は限定されています。ネットワークの上限はデータセットの品質に影響されます。そのため、今後の研究では、一方面では自然シーンでのデータセットを拡充し、他方面では生成的敵対ネットワークの関連知識を導入して、モデルの汎化性を高めることが考えられます。
ニューラルネットワーク構造:Stacked U-net と比較して、現在の Dilated U-net のネットワーク構造はより軽量で訓練速度も速いですが、ネットワークモデルをモバイル端末で使用する場合、応答速度のさらなる最適化が必要です。
さらに、DeepLab 関連のネットワーク構造や CRF ベースの後処理手法を試して、予測精度を向上させることも検討できます。
Related Articles
-
A detailed explanation of Hadoop core architecture HDFS
Knowledge Base Team
-
What Does IOT Mean
Knowledge Base Team
-
6 Optional Technologies for Data Storage
Knowledge Base Team
-
What Is Blockchain Technology
Knowledge Base Team
Explore More Special Offers
-
Short Message Service(SMS) & Mail Service
50,000 email package starts as low as USD 1.99, 120 short messages start at only USD 1.00
