G検定

【G検定知識】SegNetとU-Netの精度と計算効率の比較

セマンティック・セグメンテーションの難しさとは何でしょうか。その答えの1つは、入力画像から画素ごとのクラスを推定するために、「物体がどこにあるか」と「何が写っているか」を同時に答えなければならない点にあります。

この課題に対する代表的な解決策の1つが、画像から特徴を抽出し、特徴マップを構築するエンコーダと、特徴マップを元の解像度へ復元するデコーダのペアから構成されるエンコーダ・デコーダ型のモデルです。

SegNet

エンコーダ・デコーダ型構造を明確に採用した代表的モデルの一つが SegNet です。SegNetのエンコーダとして画像分類モデルのVGGを利用しています。

SegNetの主要な特徴は、特徴マップそのものではなく、プーリング操作時のインデックス情報を記録し、それをデコーダ側でアップサンプリングに利用している点です。この方法により、空間位置情報を復元する上で、FCNやU-Net と比較するとパラメータ数を抑えることができ、計算効率やメモリ効率がすぐれています

より具体的にみていきましょう。

SegNetの各ブロックで畳み込みとReLU挟んで、最大プーリング(MaxPooling)を行っています。そのたびに次の操作を行っています。

  • プーリング後の特徴マップをエンコーダの次の層へ渡される
  • 「どの位置の画素値が最大だったか」という情報をインデックスとして保存

デコーダにはエンコーダの最終層から出力された圧縮された特徴マップのみ渡します。これに対してデコーダ内ではアップサンプリングを行い、圧縮された特徴から元の画像の空間構造を再構築しています。このとき逆プーリングUnpooling)いう手法を使用しており、最大プーリング時に記録した「インデックス」のみを位置情報として用いて、最大値の位置の部分のみ復元し、それ以外の部分を0 にします。

U-Net

U-NetはSegNetと同時期に提案されたエンコーダ–デコーダ型モデルです。エンコーダ側では畳み込みとプーリングにより意味的特徴を抽出し、デコーダ側ではアップサンプリングにより空間解像度を回復します。

U-Netは、精緻な画像セグメンテーションを実現できること、とくに境界の位置の復元精度が高いことが特徴です。実際、2015年に医療画像解析(細胞のセグメンテーション)向けに提案されました。U-Netが高い精度を誇る最大の理由は、エンコーダの特徴マップをデコーダへ直接連結するスキップ接続(Skip Connection) にあります。

SegNetでは、エンコーダで抽出された特徴マップそのものを直接渡されず、プーリング時に記録されたインデックス情報のみがデコーダでアップサンプリングに利用されます。そのため全体的な空間位置は復元できるものの、境界などの詳細な情報が一部失われ、セグメンテーションの結果が粗くなったりぼやけたりことがあります。

対照的にU-Netでは、エンコーダの各層で出力される特徴マップを、デコーダの対応する(同じ解像度段階の)各層の特徴マップに直接飛ばすことで連結しています。このようなスキップ接続の構造により、深いネットワークの中でも詳細情報を伝達でき、デコーダは物体の境界や細かい特徴も精密に捉えることができます。結果として医療画像分析のような精密なタスクで高いパフォーマン スを示します。

また、この構造により、エンコーダとデコーダが左右対称に配置されたU字型のネットワークとなることから、U-Netという名称が付けられています。

(補足)医療画像は通常枚数が比較的少ないので、U-Netはデータ拡張を前提とした設計をとっており、比較的少量の学習用データでも安定して学習することができます。

SegNetとU-Netの比較

■なぜSegNetはU-Netに比べてメモリ効率がよいのか

SegNetがメモリ効率に優れる理由は、特徴マップ全体を保持するのではなく、プーリング時のインデックス情報のみを保存し、それをデコーダ側のUnpoolingに利用する設計にあります。保存すべき特徴マップが相対的に少なく、かつUnpooling自体には学習すべきパラメータを伴わないので、計算が効率的で高速になります。

(注)Unpooling自体は学習パラメータを持たないが、SegNetのデコーダではUnpoolingのあとに通常の畳み込みを行うため、デコーダ全体で学習不要というわけではありません。あくまでも、全ての特徴マップの情報を使うU-Netなどに比べて保存すべき特徴マップが相対的に少ないことがメモリ効率の本質です。

比較対象のU-Netでは、エンコーダ各層の特徴マップをそのままデコーダに連結(スキップ接続)し、デコーダでは全ての特徴マップの情報を逆畳み込み(Transposed Convolution)に使って画像を復元しています。このやり方によりデコーダでは高解像度の特徴を利用できる一方、保持する特徴マップの数が多いためメモリ消費が大きくなります。

簡単に言い直すと、SegNetでは「位置だけ覚えて、特徴は再計算」(Unpooling)という手段を取り、U-Netでは「特徴そのものを渡して再利用(逆畳み込み)しています。

 

■U-NetとSegNetの使い分け

U-Net は、エンコーダで得られた特徴マップそのものをデコーダへ直接伝達する構造を採用しているため、境界情報や繊細な局所的な構造情報を復元できます。しかし、その結果、メモリ消費は増加します。

したがって、医用画像解析のような境界の精密な画素分類が重要なタスクにおいてはU-Netが有利であり、そこまで高い精度の要求がなく、メモリ効率重視の場合はSegNetを選ぶのが合理的と言えます。

 

 

yan
データ分析官・データサイエンス講座の講師 「G検定」の分野で講師と著者として活動しております。 著書には以下のものがあります。 ◯ディープラーニングG検定(ジェネラリスト)最強の合格テキスト[第2版] [徹底解説+良質問題+模試(PDF)] /  ◯ディープラーニングG検定(ジェネラリスト)最強の合格問題集[第2版] [究極の332問+模試2回(PDF)]
データ分析・AIの専門家集団 GRI