- 「FCN(物体検出)」と「SegNet(物体検出)」について学びたいけど理解できるか不安・・・
- 「FCN(物体検出)」と「SegNet(物体検出)」を使うメリットが分からない?
- 「FCN(物体検出)」と「SegNet(物体検出)」のポイントを教えて!
「FCN(Fully Convolutional Network)」と「SegNet」は、Semantic Segmentation(意味的領域分割)を用いた代表的なネットワークアーキテクチャでありますが、よく理解できないケースが非常に多いです。
私は過去に基本情報技術者試験(旧:第二種情報処理技術者試験)に合格し、また2年程前に「一般社団法人 日本ディープラーニング協会」が主催の「G検定試験」に合格しました。現在、「E資格」にチャレンジ中ですが3回不合格になり、この経験から学習の要点について学ぶ機会がありました。
そこで、この記事では、「FCN」と「SegNet」の特徴が分かるよう各々のポイントを解説します。
この記事を参考に「FCN」と「SegNet」のポイントを押さえることができれば、E資格に合格できるはずです。
<<「FCN」と「SegNet」の学習のポイントを今すぐ知りたい方はこちら
1.「FCN」と「SegNet」 の概要
- CNN(畳み込みニューラルネットワーク)の全結合層をConvolution層に置き換える
入力画像のサイズを固定する制約がなくなる。 - 逆畳み込みネットワーク
逆畳み込みを用いてアップサンプリングを施す。 - スキップ接続
情報ロスが発生する前の情報をアップサンプリング処理に入力する。
- Max poolingインデックス:
スキップ接続として符号化器(encoder)の特徴マップの代わりにMax poolingインデックスを用いる。
2.全結合層がない
CNNは内部に全結合層が存在
↓
入力画像のサイズを固定しなければならない。
FCNではCNNの全結合層をConvolution層に置き換える
↓
入力画像のサイズを固定する制約がなくなった。
3.逆畳み込み
- CNNではプーリング処理により特徴マップはダウンサンプリングされる。
- FCNの逆畳み込みネットワークでは、逆畳み込みを用いてアップサンプリングを施す。
- 逆畳み込み(デコンボリューション、deconvolution)とは・・・
元の特徴マップに空白を足して拡大した後に畳み込みフィルタを適応することで、新たな特徴マップを得ること。
アップサンプリング(=特徴マップの次元を大きくすること)において用いられる。
①「CNNの全結合層を置換したConvolution層の画素毎」にラベル付けされた教師データを与え学習
②逆畳み込みを用いてアップサンプリング
③入力画像の各画素のラベル(物体種別)を推定することが可能。(下図参照)

4.スキップ接続
ダウンサンプリングされた特徴マップに対して単純に逆畳み込みをするだけでは粗くなってしまい十分な出力結果が得られない
↓
- スキップ接続
情報ロスが発生する前の情報(下図の3層目と4層目)をアップサンプリング処理に入力する。

5.Max poolingインデックス
FCNではスキップ接続として「符号化器(encoder)の特徴マップ」を使用しているため大容量メモリが必要
↓
Seg Net ではスキップ接続として「符号化器(encoder)の特徴マップ」の代わりに「Max poolingインデックス」が用いられる。→ SegNet は FCN に比べて省メモリ
順伝播のときmaxのindexを記録し、逆伝播時に記録したmaxのindexを利用して、元位置に戻って他の位置を0で補完する。
6.まとめ
最後まで読んで頂きありがとうございます。
皆様のキャリアアップを応援しています!!
コメント