【要約】FCN(Fully Convolutional Network)って何?画像を「塗り絵」する AI のしくみをやさしく解説します [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
画像認識の高度化に伴い、従来のCNNでは以下の課題に直面した。
- ・全結合層による入力サイズの固定:特定の解像度でしか動作しない。
- ・空間情報の喪失:全結合層によりピクセルの位置情報が破壊される。
- ・セグメンテーションへの不適合:ピクセル単位の精密な分類が困難である。
// Approach
開発者は、空間情報の保持と入力サイズの柔軟性を確保するため、以下の手法を採用した。
- ・全結合層の置換:全結合層をすべて畳み込み層に置き換える。
- ・2段構成の構築:Backboneで特徴を抽出し、Headで変換する。
- ・アップサンプリング:縮小されたマップを元のサイズへ拡大する。
- ・損失関数の適用:BCEWithLogitsLossでピクセル単位の誤差を計算する。
// Result
FCNの導入により、画像と同じ解像度を持つラベルマップの生成が可能となった。
- ・高精度な分類:ピクセル単位での詳細な領域特定を実現した。
- ・転移学習の活用:事前学習済みモデルにより学習を効率化した。
- ・公平な評価:mean-IoUにより、背景に偏らない精度評価が可能となった。
- ・幅広い応用:自動運転や医療画像解析などの分野へ貢献した。
Senior Engineer Insight
> FCNはセグメンテーションの基礎概念を提示している。実運用では、解像度低下を防ぐためにU-NetのSkip ConnectionやDeepLabのAtrous Convolutionが選好される。計算リソースと精度のトレードオフを考慮し、Backboneの選定が重要となる。推論レイテンシを抑えるには、アップサンプリング手法の軽量化も検討すべきである。