旅行好きなソフトエンジニアの備忘録

プログラミングや技術関連のメモを始めました

【ディープラーニング】 セマンティックセグメンテーション手法のまとめ

ディープラーニングを利用したセマンティックセグメンテーションについてまとめてあるページを見つけたのでメモします(A 2017 Guide to Semantic Segmentation with Deep Learning)。

セマンティックセグメンテーションとは?

どんなアプローチがあるの?

  • 初期の頃は"patch classification"が用いられており、全結合層があるため入力画像のサイズは固定だった

  • FCNが発表されてからはFCNがメジャーになった。FCNにより任意の画像サイズを扱うことが出来るようになり、"patch classification"よりも非常に高速という特徴がある

  • CNNをセグメンテーションに用いることの欠点としてプーリング層の存在がある。プーリング層があることでピクセルの細かい位置情報に捉われることがなくなるが、セグメンテーションは位置情報が重要

  • 位置情報の問題に対処するために2つのアーキテクチャがある。 一つはエンコーダーデコーダー型でU-Netが有名。もう一つはdilated/atrous convolutions

  • conditional random fieldによる後処理と併用すると、スコアが1~2%上昇する

読むべき論文

  1. [1411.4038] Fully Convolutional Networks for Semantic Segmentation

  2. [1511.00561] SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation

  3. [1511.07122] Multi-Scale Context Aggregation by Dilated Convolutions

  4. [1412.7062] Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs

  5. [1606.00915] DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

  6. [1611.06612] RefineNet: Multi-Path Refinement Networks for High-Resolution Semantic Segmentation

  7. [1612.01105] Pyramid Scene Parsing Network

  8. [1703.02719] Large Kernel Matters -- Improve Semantic Segmentation by Global Convolutional Network

  9. [1706.05587] Rethinking Atrous Convolution for Semantic Image Segmentation

読むべき論文追記(精度は劣るが実行スピードが速い)

  1. ENet
    [1606.02147] ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation

  2. ICNet
    [1704.08545] ICNet for Real-Time Semantic Segmentation on High-Resolution Images

  3. ERFNet
    http://www.robesafe.uah.es/personal/eduardo.romera/pdfs/Romera17iv.pdf