G検定

最先端の画像セグメンテーションモデル総整理 〜G検定頻出〜(前編)

近年、エンコーダ・デコーダモデルが物体認識モデルの主流となりつつあります。執筆者が教育活動を展開させていただいている「G検定」の中でも随時最先端の物体認識モデルが出題されています。

この記事およびその続編では、セマンティックセグメンテーションモデルの代表的なモデルの進化を見て行きます。物体検出・物体認識の研究開発に興味を持つ方はもちろん、G検定を受験する予定の方にも効果的と思われます。

セマンティックセグメンテーションとは、セマンティックセグメンテーション(Semantic Segmentation)とは、物体領域を画素単位で切り出し、各画素をクラスに割り当てる、一般物体認識の手法です。図1 にその適用例が示されており、ここではバイクと乗車している人間の境界を精密 に描いています。

出典:PASCAL VOC2011 Example Segmentations

エンコーダとデコーダから構成される物体認識モデル

ここで解説するU-Net、PSPNet、Deep Labはどれも、エンコーダ・デコーダ構造を持つセマンティックセグメンテーションのモデルです。

エンコーダ(Encoder)とデコーダ(Decoder)は、それぞれニューラルネットワークであり、ペアになって働くことが多いです。ごく簡単にいうと、エンコーダは画像から情報を抽出して特徴マップを構築し、デコーダはその特徴マップから元の画像を復元します。両者の間で特徴を把握しやすくするための特別な仕組みを入れることがあります。

詳細はこちらの書籍の3.6節で書いてありますので、ぜひ基礎知識をこちらから固めてください。G検定 最強の合格テキスト(通称:「緑本」)第2版

より具体的に説明すると、エンコーダでは、畳み込み層(と場合によってプーリング層)を繰り返すことで、画像の次元を圧縮していきます(ダウンサプリング)。これにより、入力された画像から特徴マップ(ヒートマップのようなイメージ)を多数抽出します。

エンコーダから抽出される時点での特徴マップは、画像における物体の大まかな位置とクラスラベルを認識できる状態です。しかし、抽出された特徴マップは小さくなっていて、その情報が「抽象的」になっています。そこで、デコーダでは特徴マップから高解像度な画像を復元します。これにより、正確に物体の位置、輪郭を捉えられて、物体の境界付近でもクリアな画像のセグメンテーションを実現できます。この操作を「アップサンプリング」または逆畳み込み(Deconvolution)といいます。この時、特徴マップと元画像の間の「ピクセル位置とラベル」の対応関係をマッピングしてい来ます。

(※注意:逆畳み込みは畳み込みの逆プロセスではない)

別のモデルではこれと少し似た「逆pooling(unpooling)」が使われることもあります。

つまり、エンコーダは特徴マップを徐々に小さくしていき、デコーダでは特徴マップを徐々に大きくしていきます。

■ 代表的なセマンティックセグメンテーションのモデル

これ以降は、FCN、SegNet、U-Net、PSPNet、DeepLabを紹介します。

このうち、初めて有名になったセマンティックセグメンテーションのモデルがFCNでしょう。FCNはエンコーダとデコーダから構成されておらず、他の4つからエンコーダ・デコーダ構造が主流になりました。

完全畳み込みネットワーク(FCN)

FCN (Fully Convolutional Network)とは、畳み込み層とプーリング層で構成される(全結合層を持たない)アーキテクチャになります。一連の畳み込み層から特徴マップが抽出され、ネットワークの最後の畳み込み層で得られた特徴マップを入力画像と同じサイズまで大きく(アップサンプリング)することでピクセルごとのクラス確率を出力します。

名前が似ているCNNに対して以下の特徴を持っています。

⚫教師データのラベル:CNN は画像ごとにラベルが付けられるのに対して、FCN では画素ごとにラベル付けした教師データを与えて学習させ、未知画像が入力された時も同様に、画素ごとにカテゴリを予測します。

⚫出力ノードの数:CNNでは、分類対象クラスの数だけ出力層のノード数があります。これに対して、FCNでは、画素ごとにカテゴリを付与するため、出力ノードはかなり大きな数(縦画素数× 横画素数×(カテゴリ数+1 ※1)になります。

⚫入力画像のサイズ:CNNは全結合層を持つため、事前に画像を統一的にリサイズする必要があります。FCNでは入力画像のサイズは可変、つまり任意のサイズの画像を入力して、セマンティックセグメンテーションを行えます。

SegNet

SegNetはセマンテックセグメンテーションに利用されるエンコーダ・デコーダモデルの1つです。その特徴として、デコーダにおいて位置を誘導するためにエンコーダの特徴の代わりに、Maxプーリングからのインデックスを使用しています。この工夫により、FCNよりも多くの特徴マップを利用していますが、FCNに比べてメモリ効率を上げています

一方、SegNetの欠点としては、エンコーダとデコーダが直列に接続されているため、特徴が伝播する際に一部のピクセルの詳細情報を消失してしまいます。そうすると元の画像に対するセグメンテーションの結果が粗くなりやすくなります。

出典:https://arxiv.org/pdf/1511.00561.pdf

U-Net

ネットワークの形がU字型に見えるので、U-Netと呼ばれています。

U-Net は、SegNetと同じく、エンコーダ(畳み込み層とプーリング層)とデコーダで構成されています。ネットワークの形が折り曲がってU 字型に見えることが名称の”U”の由来です。

出典:https://arxiv.org/pdf/1505.04597.pdf

SegNetに対するU-Netの主な特徴は以下となります。

●U-Netはスキップ接続を採用

U-Netではエンコーダとデコーダの間スキップ接続を取り入れていることが特徴です。

スキップ接続(スキップ・コネクション)とは一般的に、ある層への入力を飛び越えて層をまたいで奥の層へ入力する形式です。ResNetというCNNモデルに取り入れられています。これにより勾配消失を防止しながらも表現力の高いディープなネットワークを実現できました​​

U-Netでは、エンコーダの途中にある各層で出力される特徴マップを、デコーダの対応する各層の特徴マップに直接飛ぶことで連結することができます。スキップ接続により、エンコーダからの情報をデコーダに直接伝えることができ、保持すべき情報量を少なくすることができます。深いネットワークの中でも、詳細な情報を保持し伝達することができ、エッジや細かい特徴もよく捉えることができます。

そのため、U-Net は学習用画像の数が比較的少なくてもセグメンテーションの精度がよい上、学習および学習済みモデルによるデータ処理が高速です。医療画像分析のような精密なタスクで高いパフォーマンスを示しています。

●デコーダ内のアップサンプリングの手法が異なる

U-Netでは、逆畳み込み(Deconvolution)を使用しているのに対し、SegNetではUnpoolingを使用します。後者の方が学習が不要であるため、計算が効率的で高速になります。

※Unpoolingとは、エンコーダのMax poolingの際に、最大値の箇所を保持しておき、Unpoolingを行い際にその部分のみ復元し、それ以外の部分を0にします。学習するパラメータがないので、メモリや計算コストの節約になります。

 

 

この記事ではここまで、エンコーダ・デコーダ構造の画像検出モデルについて、さらにFCN、SegNet、U-Netについて解説しました。

続編では、PSPNet(空間ピラミッドプーリングが特徴)やDeepLab(間隔を空けた畳み込み;Dilated Convolutionが特徴)について同じように解説して行きます。

また次回お会いしましょう。

 

執筆担当:ヤン ジャクリン (GRI 分析官・講師)

yan
データ分析官・データサイエンス講座の講師