1行定義
FCN(Fully Convolutional Network)とは、CNNの全結合層を畳み込み層に置き換え、画素ごとにクラスを出力するモデルのことです。
くわしく
FCNは、Jonathan Longらが2014年に論文を公開し、2015年のCVPRで発表したセマンティックセグメンテーションのモデルです。分類用のCNNを画素ごとの予測に作り替えた、初期の代表例です。工夫は大きく3つあります。
1. 全結合層を畳み込み層に置き換える
AlexNetやVGGのような分類用のCNNは、最後の全結合層で特徴を1列に並べ、画像全体に1つの答えを出します。この段階で「どこに何があるか」という位置の情報は失われます。また、全結合層は入力の数が決まっているため、画像の大きさも固定されます。
FCNは、全結合層を、同じ計算をする畳み込み層に置き換えました。全結合層がなくなるので、任意の大きさの画像を入力できます。出力も、位置ごとに各クラスのスコアを並べた地図になります。候補領域を切り出す処理は使わず、画像全体を一度に処理します。
2. 縮んだ地図を元の大きさに戻す
畳み込みとプーリングを重ねると、出力の地図は小さくなります。VGG16をもとにした場合、縦横とも入力の32分の1です。FCNはこれを、逆畳み込みの層で入力と同じ大きさまで拡大します。拡大の重みも学習でき、全体を画素ごとの誤差でまとめて学習します。初期値には、ImageNetで学習済みの分類用CNNの重みを使います。
3. 浅い層の情報を足すスキップ構造
32分の1の地図を一気に拡大すると、境界がぼやけます。そこで、位置の情報を多く残す浅い層(pool4、pool3)からも予測を出し、深い層の予測に足し合わせました。名前の数字は最後に拡大する倍率で、FCN-32s、FCN-16s、FCN-8sの順に輪郭が細かくなります。
「縮めて特徴を捉え、拡大して戻す」という考え方は、SegNet、U-Net、DeepLab、PSPNetなどに受け継がれました。
覚え方
「全部(Fully)畳み込みにして、画素ごとに答える」と覚えます。
G検定での出題
出題のされ方
セマンティックセグメンテーションの初期の代表モデルとして、全結合層をなくして任意の大きさの画像を扱える点、アップサンプリングで解像度を戻す点、浅い層の情報を足すスキップ構造が、後続のモデルとの違いとともに問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| FCN(Fully Convolutional Network)このページの用語 | CNNの全結合層を畳み込み層に置き換え、画素ごとにクラスを出力するモデル |
| PSPNet | 大きさの異なる領域ごとにプーリングするピラミッドプーリングモジュールで、画像全体の文脈を捉えるセグメンテーションのモデル |
| U-Net | 特徴を縮めて取り出す経路と解像度を戻していく経路をU字型に組み、両者をスキップ結合でつないだ、セグメンテーション用のCNN |
違いを表で比べる
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
FCNは、ImageNetの画像分類で学習したCNNを作り替え、その学習済みの重みを初期値にして、セグメンテーション用に学習し直している。
答えを見る
答え ◯ 正しい
論文ではAlexNet、VGG16、GoogLeNetを作り替えて比べています。分類で身につけた特徴を、ファインチューニングで画素ごとの予測に生かしました。
-
FCNでは、特徴マップを拡大するアップサンプリングの重みを学習で調整することはできず、双線形補間に固定するしかない。
答えを見る
答え × 誤り
逆畳み込みの層の重みは学習で調整できます。論文では、FCN-16sやFCN-8sの途中の拡大の層を双線形補間で初期化し、そこから学習させています。
-
FCNは、先に物体の候補領域を切り出し、候補ごとに分類した結果をつなぎ合わせて、画像全体を塗り分ける。
答えを見る
答え × 誤り
FCNは候補領域を使わず、画像全体を一度に入力して、画素ごとのクラスをまとめて出力します。候補領域を使う当時の方法と違い、入力から出力まで一貫して(end-to-end)学習できる点が特徴です。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目26 画像認識)
- Jonathan Long, Evan Shelhamer, Trevor Darrell, Fully Convolutional Networks for Semantic Segmentation, CVPR 2015 (arXiv:1411.4038) (1. Introduction、3. Fully convolutional networks、4. Segmentation Architecture)