【ディープラーニング】 セマンティックセグメンテーション手法のまとめ
ディープラーニングを利用したセマンティックセグメンテーションについてまとめてあるページを見つけたのでメモします(A 2017 Guide to Semantic Segmentation with Deep Learning)。
2017年12月10日追記 上記リンクを日本語訳した記事があったため、下記リンクを参照した方が良いです。 postd.cc
セマンティックセグメンテーションとは?
セマンティックセグメンテーションは各ピクセルを各クラスに割り当てること
VOC2012(The PASCAL Visual Object Classes Challenge 2012 (VOC2012))とMOSCOCO(COCO - Common Objects in Context)が有名なデータセット
どんなアプローチがあるの?
初期の頃は"patch classification"が用いられており、全結合層があるため入力画像のサイズは固定だった
FCNが発表されてからはFCNがメジャーになった。FCNにより任意の画像サイズを扱うことが出来るようになり、"patch classification"よりも非常に高速という特徴がある
CNNをセグメンテーションに用いることの欠点としてプーリング層の存在がある。プーリング層があることでピクセルの細かい位置情報に捉われることがなくなるが、セグメンテーションは位置情報が重要
位置情報の問題に対処するために2つのアーキテクチャがある。 一つはエンコーダー・デコーダー型でU-Netが有名。もう一つはdilated/atrous convolutions
conditional random fieldによる後処理と併用すると、スコアが1~2%上昇する
読むべき論文
[1411.4038] Fully Convolutional Networks for Semantic Segmentation
[1511.00561] SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation
[1511.07122] Multi-Scale Context Aggregation by Dilated Convolutions
[1412.7062] Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs
[1611.06612] RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation
[1703.02719] Large Kernel Matters -- Improve Semantic Segmentation by Global Convolutional Network
[1706.05587] Rethinking Atrous Convolution for Semantic Image Segmentation