FCN(Fully Convolutional Network)
FCN(Fully Convolutional Network)は、CNNをセマンティックセグメンテーションタスクに利用した手法です。セマンティックセグメンテーションは、画像の画素ごとにクラス分類を行うタスクであり、画像全体を対象としています。FCNは、従来のCNNとは異なり、全結合層を用いずに畳み込み層だけで構成されるモデルを採用しています。
FCNの特徴
FCNは、入力画像に対して畳み込み層とプーリング層を繰り返し適用することで、特徴マップのサイズを徐々に小さくしていきます。このサイズが小さくなった特徴マップの1つの画素は、入力画像の広い範囲の情報を集約しているため、1画素ごとにクラス識別が可能になります。
FCNの最後の特徴マップは入力画像に対して小さいため、出力を入力画像サイズまで拡大すると解像度が粗いセグメンテーション結果になります。この問題を解決するために、SegNetなどの手法では、エンコーダとデコーダという構造を採用しています。エンコーダでは特徴マップを徐々に小さくし、デコーダでは特徴マップを徐々に拡大しながら畳み込み処理を行います。
FCNとセグメンテーションタスク
セグメンテーションタスクには、セマンティックセグメンテーション、インスタンスセグメンテーション、パノプティックセグメンテーションなどがあります。FCNは主にセマンティックセグメンテーションに用いられます。
セマンティックセグメンテーションでは、同一クラスの物体をひとまとめにするため、集団の歩行者などを一人一人分離することはできません。一方、インスタンスセグメンテーションでは、物体検出した領域に対してセグメンテーションを行うため、一人一人を分離することが可能です。パノプティックセグメンテーションは、個々の物体をそれぞれ分離しつつ、道路や建物などはひとまとめにする手法です。
