[論文読書メモ] ENet: リアルタイム セマンティック セグメンテーションのためのディープ ニューラル ネットワーク アーキテクチャ

ENet: リアルタイム セマンティック セグメンテーションのためのディープ ニューラル ネットワーク アーキテクチャ

このペーパーでは、多数のトリックを使用した、現在最速の画像セグメンテーション ネットワーク ENet を紹介します。

まとめ

 エッジ デバイスでは、リアルタイムのコンピューティング能力が重要ですが、このタスクにおけるディープ ニューラル ネットワークの欠点は、多くの浮動小数点計算が必要となり、実行時間が長くなり、使いやすさが損なわれることです。

  • この論文では、低遅延操作を必要とするタスクのために特別に作成された、効率的なニューラル ネットワークのための新しいディープ ニューラル ネットワーク アーキテクチャである ENet について説明します。
  • ENet は、既存のモデルと比べて 18 倍高速で、必要なフロップ数は 75 分の 1、パラメータは 79 分の 1 で、既存のモデルと同等以上の精度を提供します。

導入

  • 画像のオリジナルの空間分類および詳細セグメンテーション アーキテクチャ: SegNet または完全畳み込みネットワークは VGG16 に基づいていますが、これらのアーキテクチャはマルチクラス分類用に設計された非常に大規模なモデルであり、これらのモデルには多数のパラメータと長い時間の推論ネットワークがあります。 。
  • ENET 高速推論と高精度のために最適化された新しいニューラル ネットワーク アーキテクチャ

ネットワーク構造

ENet中bottleneck module

ここに画像の説明を挿入

左側がセカンダリ、右側がプライマリです

5段階

モジュールを初期化する

ここに画像の説明を挿入

左側は 13 個のコンボリューション カーネルを使用してコンボリューション演算を行い、右側は MaxPooling を使用して最終的に 3 つのチャネルが得られ、両側の結果を連結してチャネルをマージすることで、記憶領域を削減できます。

ステージ1

5 つのボトルネックを含むエンコーダー ステージに属します。最初のボトルネックは入力をダウンサンプリングし、その後に 4 つの反復ボトルネックが続きます。

ステージ2-3

エンコーダステージに属し、stage2 の bottle2.0 がダウンサンプリングされ、その後に atrous コンボリューションまたは分解コンボリューションが続き、stage3 はダウンサンプリングされず、他は同じです。

ステージ4-5

これはデコーダ段階に属します。比較的単純で、1 つのアップサンプリングで 2 つの通常のボトルネックが構成されます。

  • モデル アーキテクチャは投影にバイアスを使用しないため、カーネル呼び出しとストレージ操作が削減されます。
  • バッチ ノルムは各畳み込み演算で使用されます
  • エンコーダーステージでは、ダウンサンプリングにパディングと最大プーリングを使用します。
  • デコーダは、ホール コンボリューションを使用した最大アンプーリングを使用して、アップサンプリングを完了します。

エンコーダーの紹介

  • ダウンサンプリングされたボトルネック

    • ダウンサンプリングされた画像サイズは 128 x 128 になります
    • この場合、畳み込み演算 conv は通常の畳み込み演算です。非対称は分解された畳み込みを意味し、Dirated は中空畳み込みを意味します。
    • 各ボトルネックは、まず次元を削減し、畳み込み演算の後に次元を増加します。
    • 各畳み込み層の後には、バッチ ノルムと PReLU 操作が続きます。
  • 補助行には、最大プーリングとパディング操作が含まれます。最大プーリングはコンテキスト情報の抽出を担当します。

    • パディングはチャネルを埋める役割を果たし、その後の残留融合を実現し、融合後に PReLU 操作を実行します。
  • ダウンサンプリングされていないボトルネック

    • メインラインは 3 つの畳み込み層で構成されます
    • 1 つ目は 1x1 次元削減です
    • 次に、3つの畳み込みがあります
    • 最後に、生の寸法
    • PReLU ノルムバッチ

さまざまなトリック

  • カーネル呼び出しとストレージ操作を減らすために、著者のネットワーク アーキテクチャではバイアスを使用せず、重みのみを使用します。

  • 特徴マップの解像度

    • 画像をダウンサンプリングすると特徴情報が失われます
    • ホールコンボリューションを使用して受容野を拡張し、より多くの情報を収集します
  • 早期のダウンサンプリング

    • 比較的大きなサイズの画像を処理すると、大量のコンピューティング リソースが消費されます。
    • ENet の初期化モデルは、視覚情報が空間内で非常に冗長であり、より効率的な表現に圧縮できるため、入力のサイズを大幅に削減します。
  • デコーダのサイズ

    • 著者の Encoder と Decoder は鏡像対称ではなく、ほとんどのネットワークが Encoder を実装し、ごく一部が Decoder を実装しています。エンコーダーは主に情報処理とフィルタリングを実行し、エンコーダーはエンコーダーの出力をアップサンプリングして詳細を微調整します。
  • 非線形演算

    • 一般に、畳み込み層の前に ReLU と Batch Norm を実行する方が良いですが、ENet で ReLU を使用すると精度が低下します。
    • ENet には層が非常に少ないため、PReLU を使用してください
  • 情報を保持する次元の変更

    • 初期化フェーズでは、3 * 3 CNN と maxpolling を使用して並列演算を実行し、特徴マップ上で接触演算を実行すると、速度が 10 倍になることがわかりました。
  • 因数分解畳み込み

    • n × n コンボリューション カーネルを n × 1 と 1 × n に分割します (Inception V3 によって提案)。パラメータの量を効果的に削減し、モデルの受容野を改善できます。
  • 拡張畳み込み

  • 空間的ドロップアウト

    • 通常のドロップアウトは要素のこの部分をランダムに 0 に設定し、SpatialDropout は領域のこの部分のすべての要素をランダムに 0 に設定します。

通常のドロップアウト
ここに画像の説明を挿入

空間ドロップアウト: 通常のドロップアウトは一部の要素をランダムかつ独立してゼロに設定しますが、SpatialDropout1D はすべてのゼロを特定の緯度にランダムに設定します。

ここに画像の説明を挿入

ここに画像の説明を挿入

Atrous コンボリューションについて

  • コンボリューション カーネルのサイズは 3 x 3 stride = 1 r = 2 で、r は拡張係数と呼ばれます。r=1 の場合、コンボリューション カーネルの要素間にギャップがないことを意味します。つまり、2 つの隣接する要素間の位置の差が 1 であり、これが通常のコンボリューションです。
  • ここで、r = 2 は、コンボリューション カーネルの各要素間にギャップがあり、隣接する 2 つの要素間の位置の差が 1 であることを意味します。

ここに画像の説明を挿入

拡張畳み込みを使用する理由

受容野を拡大する 受容野とは、特徴マップの 1 ピクセルに対応する元の画像のピクセル サイズを指します。

ここに画像の説明を挿入

  • ホール コンボリューションを使用する主な理由は、検出およびセグメンテーション タスクにおいて大規模なオブジェクトに対してより適切なパフォーマンスを発揮できるように、受容野を増やすことです。
  • ホールコンボリューションの欠陥は主にグリッド効果の存在に反映されます

おすすめ

転載: blog.csdn.net/qq_44653420/article/details/132515540