画像を「猫の写真」と1枚単位で分類するのではなく、「このピクセルは猫、このピクセルは背景」と1画素ずつ塗り分ける——それがセマンティックセグメンテーションです。FCN(Fully Convolutional Network)は、このタスクをディープラーニングで実現した先駆け的モデルです。「全結合層を排して全部を畳み込み層にする」という一点を理解すれば、名前の意味も特徴もすべてつながります。

📖 ひと言でいうと

FCN(Fully Convolutional Network)とは、CNNの最後にある全結合層を使わず、すべての層を畳み込み層で構成することで、画像のピクセル1つ1つにクラスラベルを割り当てるセマンティックセグメンテーションを可能にしたモデルです。

例えるなら、通常のCNNが画像全体を見て「これは猫の写真です」と1つの答えを返す鑑定士だとすれば、FCNは画像の上に透明なシートを重ね、猫の部分・道路の部分・空の部分を色分けして塗り返してくれる塗り絵職人です。答えが「1つのラベル」から「画像と同じ大きさのラベルの地図」に変わるのがポイントです。

🖼 1枚でわかるFCN

FCN(Fully Convolutional Network)
  • タスク — セマンティックセグメンテーション(ピクセル単位の分類)
  • 核心 — 全結合層を排し、全層を畳み込み層で構成
  • 出力 — 入力画像と同じ解像度で各ピクセルにクラスラベル
  • 利点 — 任意サイズの画像に対応・位置情報を保持
  • 影響 — U-NetやSegNetなど後続モデルの基盤に
つくもち屋「G検定対策」SUMMARY

📘 公式テキストの説明

FCN(Fully Convolutional Network)は、画像認識分野で用いられる深層学習モデルの一種で、特にセマンティックセグメンテーションに適している。従来の畳み込みニューラルネットワーク(CNN)では、全結合層を通じて最終的な分類結果を得るが、FCNは全結合層を排し、全ての層を畳み込み層で構成する。これにより、入力画像と同じ解像度の出力を生成し、各ピクセルに対してクラスラベルを割り当てることが可能となる。FCNの特徴として、入力画像のサイズに依存せず、任意の大きさの画像に対応できる点が挙げられる。また、全結合層を使用しないため、位置情報を保持したまま処理を行うことができる。これにより、画像全体の文脈を考慮した精度の高いセグメンテーションが実現する。FCNは、セマンティックセグメンテーションの分野で広く採用されており、医用画像解析や自動運転技術など、多様な応用分野で活用されている。その後、U-NetやSegNetといったモデルがFCNを基盤として開発され、さらなる性能向上が図られている。

要点は「全結合層を排する」ことの効果です。通常のCNNでは、最後に特徴マップを1列に引き伸ばして全結合層に入れるため、「どこにあったか」という位置の情報が失われ、出力も画像1枚につき1つのラベルになります。FCNはこれをやめて畳み込みだけで最後まで処理するので、位置情報を保った「マップ」の形のまま出力でき、ピクセル単位の分類が可能になるのです。

🔍 しっかり理解する

通常のCNNとFCNの違い

🅰 通常のCNN(画像分類)
  • 最後は全結合層で1つの分類結果を出力
  • 特徴を1列に潰すため位置情報が失われる
  • 全結合層の入力サイズが固定なので入力画像サイズも固定
  • 答え:「この画像は何か」
🅱 FCN(セグメンテーション)
  • 全層が畳み込み層でマップのまま出力
  • 位置情報を保持したまま処理できる
  • 任意の大きさの入力画像に対応できる
  • 答え:「各ピクセルは何か」

なぜ全結合層をなくすと任意サイズに対応できるのか

全結合層は「入力が何個の数値か」があらかじめ固定されている層です。そのため全結合層を持つCNNは、決められたサイズの画像しか受け付けられません。一方、畳み込み層は小さなフィルタを画像の上でスライドさせる処理なので、入力が大きければ出力マップも大きくなるだけで、どんなサイズでもそのまま処理できます。全層を畳み込みにしたFCNが「入力画像のサイズに依存しない」のはこのためです。

縮んだ特徴マップを元の解像度に戻す

CNNの特徴マップは、畳み込みやプーリングを重ねるうちに元の画像より小さく(粗く)なっています。そのままではピクセル単位の細かい塗り分けができないため、FCNでは縮んだ特徴マップをアップサンプリング(拡大)して入力画像と同じ解像度の出力を生成します。さらに、深い層の「意味の情報」と浅い層の「細かい位置の情報」を組み合わせることで、輪郭のより正確なセグメンテーションを実現しています。この「縮めて意味を取り、拡大して位置に戻す」という発想は、後続のU-NetやSegNetにも受け継がれるエンコーダ・デコーダ構造の原型になりました。

💡 具体例で考える

自動運転の走行環境理解

自動運転では「車線のどこまでが道路で、どこから歩道か」「前方のどの領域が車両か」を面として把握する必要があります。物体検出の四角い枠では道路のような不定形の領域を表せないため、ピクセル単位で「道路・歩道・車両・歩行者・空」を塗り分けるセマンティックセグメンテーションが使われます。FCNはこの用途にディープラーニングを持ち込んだ先駆けで、公式テキストでも自動運転技術が応用例として挙げられています。

医用画像解析

CT画像やMRI画像から臓器や病変の領域を正確に切り出す作業は、従来は専門医が手作業で行っていました。FCN系のセグメンテーションモデルは、この輪郭抽出をピクセル単位で自動化します。特に医用画像向けにFCNの考え方を発展させたU-Netは、この分野の代表的モデルとして広く知られています。

⚠️ よくある誤解・紛らわしい用語

💡 ポイント
  • 「FCNは物体検出のモデル」は誤り — FCNはセマンティックセグメンテーション(ピクセル単位の分類)のモデルです。バウンディングボックスで物体の位置を当てる物体検出(Faster R-CNNなど)とはタスクが異なります。
  • FCNとCNNの関係 — FCNはCNNと別物ではなく、CNNの一種です。「全結合層を排して全層を畳み込みにした」という構成上の特徴が名前になっています。
  • セマンティックとインスタンスの区別 — セマンティックセグメンテーションは「同じクラスならまとめて同じ色」で、個体は区別しません。個体ごとに塗り分けるのはインスタンスセグメンテーション(Mask R-CNNなど)です。
  • U-Net・SegNetとの関係 — どちらもFCNを基盤として発展したセグメンテーションモデルです。「FCNが先駆け、U-Net・SegNetが後続」という順序を押さえましょう。

📝 試験でのポイント

💡 ポイント
  • 「全結合層を排し、全ての層を畳み込み層で構成する」という一文がFCNの定義の核です。この記述の有無で正誤を判定できるようにしましょう。
  • FCNの利点として「任意の大きさの画像に対応できる」「位置情報を保持できる」の2点が問われやすい想定です。理由(全結合層がないから)とセットで理解しておくと確実です。
  • タスクの対応付け問題では「FCN=セマンティックセグメンテーション」を選べることが重要です。物体検出・画像分類と混ぜた選択肢に注意しましょう。
  • U-NetやSegNetがFCNを基盤に開発された、という系譜の正誤判定も想定されます。

📚 まとめ

💡 ポイント
  • FCNは、全結合層を排してすべての層を畳み込み層で構成した、セマンティックセグメンテーションの先駆け的モデルです。
  • 入力画像と同じ解像度の出力を生成し、各ピクセルにクラスラベルを割り当てます。
  • 全結合層がないため、任意サイズの画像に対応でき、位置情報を保持したまま処理できます。
  • 医用画像解析や自動運転などで活用され、U-NetやSegNetといった後続モデルの基盤になりました。