semantic segmentation

43
Semantic Segmentationについて ビジョン&ITラボ 皆川 卓也

Upload: takuya-minagawa

Post on 21-Feb-2017

723 views

Category:

Technology


5 download

TRANSCRIPT

Page 1: Semantic segmentation

Semantic Segmentationについて

ビジョン&ITラボ 皆川 卓也

Page 2: Semantic segmentation

自己紹介

2

テクニカル・ソリューション・アーキテクト

皆川 卓也(みながわ たくや)フリーエンジニア(ビジョン&ITラボ)「コンピュータビジョン勉強会@関東」主催博士(工学)

略歴:1999-2003年日本HP(後にアジレント・テクノロジーへ分社)にて、ITエンジニアとしてシステム構築、プリセールス、プロジェクトマネジメント、サポート等の業務に従事

2004-2009年コンピュータビジョンを用いたシステム/アプリ/サービス開発等に従事

2007-2010年慶應義塾大学大学院後期博士課程にて、コンピュータビジョンを専攻単位取得退学後、博士号取得(2014年)

2009年-現在フリーランスとして、コンピュータビジョンのコンサル/研究/開発等に従事

http://visitlab.jp

Page 3: Semantic segmentation

本資料について

本資料は主に以下の2つのサーベイ論文を元に内容をまとめました。

Matin Thoma, “A Suvey of Semantic Segmentation”, arXiv:1602.06541v2

Hongyuan Zhu, Fanman Meng, Jianfei Cai, Shijian Lu, “Beyond pixels: A comprehensive survey from bottom-up to semantic image segmentation and cosegmentation”

上記サーベイで紹介されている論文に対し、畳み込みニューラルネットワークを用いた手法を追記しました。

本資料作成にあたり慶應義塾大学小篠裕子先生にご助言いただきました。

Page 4: Semantic segmentation

Semantic Segmentationとは

各画素がどの物体に属するのかを推定する技術

Page 5: Semantic segmentation

タスクの分類

A.クラス数

大半が決まったクラス数によるもの。

二値(前景/背景、street/それ以外)

unsuperpisedな方法(クラス数可変)

それ以外をvoid型として分類できるもの

B. 画素のクラス数

ほとんどが1つの画素が1つのクラス

1つの画素が複数のクラスに紐づくものもある

マルチレイヤ―の領域分割

Page 6: Semantic segmentation

タスクの分類

C. 入力データ

色の有無

デプス情報の有無

1枚、ステレオ、Co-segmentation

2D(画像) vs 3D(ボクセル)

D:オペレーション

active (ロボット等)

passiveinteractive

automatic

Page 7: Semantic segmentation

データセット

Semantic Segmentation用データセット

医療系

Cityscapes 305000(fine)

20000(coarse)3(2040-2048) x (1016-1024)

LabelMe + SUNSIFT-flow datasetStanford background datasetNYU datasetPASCAL Context dataset

Page 8: Semantic segmentation

Cityscapes 概要

主にドイツの50の都市で取得したステレオカメラの画像シーケンスに画素単位で30クラスのラベル付けを行った

URLhttps://www.cityscapes-dataset.com/

ライセンスアカデミックまたは非商用利用のみhttps://www.cityscapes-dataset.com/license/

例:Fine Coarse

Page 9: Semantic segmentation

KITTI Road 概要

自動運転に関するビジョン用データセット/ベンチマークKITTIのうち道路、白線、および走行レーン領域検出用データセット

URLhttp://www.cvlibs.net/datasets/kitti/eval_road.php

ライセンスCreative Commons Attribution-NonCommercial-ShareAlike 3.0

http://creativecommons.org/licenses/by-nc-sa/3.0/

非商用利用のみ。当データセットを用いた成果は同じラインセンスで提供する必要

例:

Lane Road

Page 10: Semantic segmentation

MSRC v2 概要

Mircosoft Researchが提供している、鳥、車、体、顔、空、木、羊、犬、境界付近、void等、23クラスをラベル付けしたデータセット

URLhttps://www.microsoft.com/en-us/research/project/image-understanding/

ライセンスMicrosoft Research Digital Image License Agreement非商用利用のみ。

例:

Page 11: Semantic segmentation

Pascal VOC 概要

画像認識のコンペで使用されたデータセット。flickrの画像に対し人、車、犬、猫、椅子、など20クラスのラベル付けがされている

URLhttp://host.robots.ox.ac.uk/pascal/VOC/voc2012/

ライセンスflickr term of useに従う

https://policies.yahoo.com/us/en/yahoo/terms/utos/index.htm

元々の権利は画像をflickrへアップロードした人にある。(どの写真を誰がアップロードしたかのリストは入手可能)

例:object class

Page 12: Semantic segmentation

その他のデータセット LabelMe + SUN dataset

MITが公開しているLabelMeというアノテーション/ラベル付き画像データのうち、SUNが515個のオブジェクトに対して付けた45,676枚のSemantic Segmentation用サブセットデータ

21,182枚の屋内、24,494枚の屋外

画像枚数はオブジェクト毎に偏りがある

SIFT-flow datasetシーン解析用の2488枚の訓練画像、および200枚のテスト画像

33クラス

Stanford background datasetLabelMeやMSRC、PASCAL VOCからサンプリングした720枚の画像

農村、都市、港湾シーンに対して、8つのsemanticラベル(sky, tree, road, grass, water, building, mountain, foreground)と幾何学的特性ラベル(sky, vertical, horizontal)を付与

Page 13: Semantic segmentation

その他のデータセット

NYU dataset

屋内をRGBカメラとデプスカメラ(Kinect)で撮影したビデオ動画に対し、1449個の密なRGBとデプス間のラベルペアを作成

3都市で撮影した464個のシーンに対し、407,024枚のラベルなしフレーム

それぞれのオブジェクトにはクラス名とID(cup1, cup2, cup3, etc)

Microsoft COCO

328K画像に対し91種類の物体クラス

PASCAL Context dataset

PASCAL VOC2010データセットに対し、さらに520のクラスを追加し、全部で540クラスのSemantic Segmentation用データセットを作成

10,103枚のtraining/validation用画像

Page 14: Semantic segmentation

評価指標

Confusion Matrix

kクラスの識別問題で、クラス𝑖に属する画素が𝑗とラベル付けされた数𝑛𝑖𝑗を求める。

Pixel Wise Accuracy

正解画素の比率

1

𝑁σ𝑖=0𝑘 𝑛𝑖𝑖

𝑁 = σ𝑖=0𝑘 σ𝑗=0

𝑘 𝑛𝑖𝑗全画素数

Confusion matrixの例

Page 15: Semantic segmentation

評価指標 Mean Accuracy

例えば空や地面のように大きな領域が画像中に存在した場合、Pixel-Wise Accuracyはこれらの領域を大きく受ける。クラスごとに個別に精度を求めて平均する。

1

𝑘∙ σ𝑖=0

𝑘 𝑛𝑖𝑖

𝑡𝑖

𝑡𝑖 = σ𝑗=0𝑘 𝑛𝑖𝑗

クラスiの正解画素数

Mean Intersection over Unionクラスiに属する画素およびクラスiと判定された画素の総和(Confusion Matrixの𝑛𝑖𝑖が属する行と列の和)と、クラスiに属して正しくiと判定された画素の和の比

1

𝑘∙ σ𝑖=0

𝑘 𝑛𝑖𝑖

σ𝑗=0𝑘 𝑛𝑖𝑗+𝑛𝑗𝑖 −𝑛𝑖𝑖

Page 16: Semantic segmentation

評価指標

Frequency Weighted Intersection over Union

Mean Intersection over Unionに対しクラスごとの正解画素数で重みをつけたもの

1

𝑁∙ σ𝑖=0

𝑘 𝑡𝑖 ∙𝑛𝑖𝑖

σ𝑗=0𝑘 𝑛𝑖𝑗+𝑛𝑗𝑖 −𝑛𝑖𝑖

F-measure

KITTIのような二値分類問題の場合の指標。

RecallとPrecisionの調和平均で、どちらの重みを置くかを𝛽で決定する(ほとんどの場合𝛽 = 1)

𝐹𝛽 = (1 + 𝛽)2𝑡𝑝

1+𝛽2 ∙𝑡𝑝+𝛽2∙𝑓𝑛+𝑓𝑝

tp: true positive, fn: false negative, fp: false positive

Page 17: Semantic segmentation

Segmentationの流れ

Page 18: Semantic segmentation

Sliding Windowを用いた識別

Page 19: Semantic segmentation

Sliding Windowを用いた識別 スライディングウィンドウで画像をスキャン

ウィンドウ内の画像から特徴量を抽出

特徴量を入力として、機械学習によりウィンドウ中心画素のラベルを学習/分類

×

特徴量• Color• HOG

• SIFT• BoVW• Neural Network

• etc

機械学習

• SVM• Random Forest

• Neural Network

Page 20: Semantic segmentation

確率場によるPost-Processing

Page 21: Semantic segmentation

確率場によるPost-Processing 画像の各画素をノードとし、隣接画素間にリンクを張ったグラフとみなす。

真の画素のラベルを潜在変数y

画像から取得した特徴量を観測変数x

以下の2つの条件を元に潜在変数yを推定各画素のラベルは観測変数x「だけ」を基にした推定と一致する確率が高い隣り合う画素は同じような潜在変数を持つ確率が高い

潜在変数

観測変数

Page 22: Semantic segmentation

Markov Random Fields (MRF)

xとyの組み合わせ毎の確率分布を求める

𝑝 𝐱, 𝐲 ∝ exp −E 𝐱, 𝐲

E 𝐱, 𝐲 =

𝑖=0

𝑛

𝜓𝑢 𝑥𝑖 , 𝑦𝑖 +

𝑦𝑖,𝑦𝑗∈𝑁

𝜓𝑖𝑗𝑑 𝑦𝑖 , 𝑦𝑗

データ項(画素ごとに独立して識別)

平滑化項(隣り合うラベルが同じ)

Page 23: Semantic segmentation

Conditional Random Fields (CRF)

直接、観測xが与えられたときのyの条件付き確率を求める

𝑝 𝐲|𝐱 ∝ exp −E 𝐲; 𝐱

E 𝐲; 𝐱 =

𝑖=0

𝑛

𝜓𝑢 𝑦𝑖; 𝐱 +

𝑦𝑖,𝑦𝑗∈𝑁

𝜓𝑖𝑗𝑑 𝑦𝑖 , 𝑦𝑗; 𝐱

データ項(画素ごとに独立して識別)

平滑化項(隣り合うラベルが同じ)

全画素の特徴量を基に推定

Page 24: Semantic segmentation

CRFを用いた例CRFは認識対象クラスに関する知識をモデルの中に入れ込むことが可能なため、 Semantic SegmentationではCRFを用いた手法が性能的に良い。一方、SemanticでないSegmentationではMRFが用いられることが多い。 X.He, R. S. Zemel, M. A. Carreira-Perpinan, “Multiscale

Conditional Random Fields for Image Labeling”, CVPR2004 J. Shotton, J. Winn, C. Rother, A. Criminisi, “TextonBoost for

Image Understanding: Multi-Class Object Recognition and Segmentation by Jointly Modeling Texture, Layout, and Context”, IJCV2009

P. Krahenbuhl, V. Koltun, “Efficient Inference in Fully Connected CRFs with Gaussian Edge Potentials”, NIPS2011

P. Arbelaez, B. Hariharan, C. Gu, S. Gupta, L. D. Bourdev, J. Malik, “Semantic Segmentation using Regions and Parts”, CVPR2012 (非CRF)

Page 25: Semantic segmentation

CRF for Image Labeling (He, et al., 2004)

CRFをSemantic Segmentationへ適用した最初の論文

ローカル特徴、全体特徴、ラベル間の位置関係を考慮したモデルを構築して最適化

Page 26: Semantic segmentation

TextonBoost (Shotton, et al., 2009)

ソースコードhttp://jamie.shotton.org/work/code.html (C#)

各画素の周囲のテクスチャ(Texton)を元に画素のラベルを学習(Joint Boost)することで物体のコンテクストを学習

CRFを用いてテクスチャ、色、位置、エッジを考慮した学習

Page 27: Semantic segmentation

Fully Connected CRFs (Krahenbuhl and

Koltun, 2011)

隣接画素だけでなく、全画素同士のペアを考慮したFully Connected CRFsに対し効率的に学習させる方法を提案

ソースコードhttp://www.philkr.net/ (C++)

Page 28: Semantic segmentation

Semantic Segmentation using Regions and

Parts (Arbelaez, et al., 2012)

一度ざっくりとした領域分割をして、各領域において多クラスに対するスコアを算出し、それらを特徴として用いて,ラベリングをしていく。

CRFを用いず、各領域のスコアを統合して画素ごとのスコアを算出する。

SVM

Part CompatibilityGlobal AppearanceSemantic ContoursGeometrical propertiesMulti Class

Page 29: Semantic segmentation

ニューラルネットワークによる手法

Page 30: Semantic segmentation

畳み込みニューラルネットワーク

畳み込み層とプーリング層が交互に現れる

畳み込み層: 各位置で学習した特徴との類似度を計算

プーリング層: 位置ずれなどのわずかな違いを無視

・・・

・・・・・

入力画像 出力

畳み込み層 プーリング層 畳み込み層 プーリング層 全結合層

Page 31: Semantic segmentation

畳み込みニューラルネットワーク

畳み込み層

各特徴毎の各場所での類似度を出力する

層が上がるほど複雑な特徴になる

入力画像

実際はRGBの3チャネルが使われる

出力A

特徴A 特徴B

出力B

・・・

Page 32: Semantic segmentation

畳み込みニューラルネットワーク

プーリング層

近傍の情報を統合して、情報に不変性を加える

Max Pooling、Lp Pooling、Average Poolingなどがある

Max Poolingの例: 近傍領域のうち最大値を出力することで不変性を与える

畳み込み層の出力A

・・・

・・・

Max Max

畳み込み層の出力B

Page 33: Semantic segmentation

畳み込みニューラルネットワークの学習

誤差逆伝播法

1. ネットワークに画像を入力し出力を得る

2. 出力と教師信号を比較し、誤差が小さくなる方向へ特徴を出力層に近い方から順に更新していく

・・・

・・・・・

入力画像 出力

畳み込み層 プーリング層 畳み込み層 プーリング層 全結合層

教師

Page 34: Semantic segmentation

Recurrent Neural Networks (RNN)

時系列データなどの「連続したデータ」を扱うためのニューラルネットワーク 音声認識、機械翻訳、動画像認識

予測先の次元数が可変

時刻tの隠れ層の出力が時刻t+1の隠れ層の入力になる

・・・・・・

・・・

入力

出力

隠れ層

Page 35: Semantic segmentation

Recurrent Neural Networks (RNN)

展開すると、静的なネットワークで表せる

通常の誤差逆伝播法でパラメータを学習できる

・・・・・・

・・・

入力

出力

隠れ層

・・・・・・

・・・

・・・・・・

・・・t-1 t t+1

教師データ 教師データ 教師データ

Page 36: Semantic segmentation

ニューラルネットワークによる手法の例 P. H. Pinheiro, R. Collobert, “Recurrent Convolutional Neural

Networks for Scene Labeling”, ICML2014 J. Long, E. Shelhamer, T. Darrel, “Fully Convolutional Networks

for Semantic Segmentation”, CVPR2015 S. Zheng, S. Jayasumana, B. Romera-Paredes, V. Vineet, Z. Su, D.

Du, C. Huang, P. H. S. Torr, “Conditional Random Fields as Recurrent Neural Networks”, ICCV2015

H. Noh, S. Hong, B. Han, “Learning Deconvolution Network for Semantic Segmentation”, ICCV2015

G. Lin, C. Shen, A. Hengel, I. Reid, “Efficient Piecewise Training of Deep Structured Models for Semantic Segmentation”, CVPR2016

P. Isola, J. Y. Zhu, T. Zhou, A. A. Efros, “Image to Image Translation with Conditional Adversarial Networks”, arXiv:1611.67004v1, 2016

Page 37: Semantic segmentation

RCNN for Scene Labeling (Pinheiro and

Collobert, 2014)

ネットワークfで各画素のラ

ベルを予測し、その結果を入力に加えて繰り返しfで

予測を行うことで、段階的にラベルの予測精度を上げていく

CRFの平滑化項にあたるよ

うな、コンテクスト(ラベル間の位置関係)を評価しておらず、各画素ごとに特徴からラベルを判別しているに等しい

Page 38: Semantic segmentation

Fully Convolutional Networks (Long, et al.,

2015)

ピクセルごとにラベル付けされた教師信号を与える 最終の全結合層をアップサンプリングした畳み込み層に置き換え

ソースコードhttps://github.com/shelhamer/fcn.berkeleyvision.org (Caffe)

他の人が実装したChainer版やTensorFlow版もあり

Page 39: Semantic segmentation

CRF as RNN (Zheng, et al., 2015) Fully Connected CRFの平均場近似による学習と等価なRNNを構築

特徴抽出部分にFCN(Fully Convolutional Networks)を用いることで、end to endで誤差逆伝播法による学習が行えるネットワークを構築

平均場近似の一回のIterationを表すCNN

ネットワークの全体像

ソースコード

https://github.com/torrvision/crfasrnn (Caffe)

Page 40: Semantic segmentation

Deconvolution Network for Semantic

Segmentation (Noh, et al., 2015)

Deconvolution Networkを学習させることで、FCNよりも詳細にラベルごとの尤度を推定し、それを元にFully Connected CRFでPost-Processing

ソースコード

https://github.com/HyeonwooNoh/DeconvNet (Caffe + Matlab)

Page 41: Semantic segmentation

Deep Structured Models for Semantic

Segmentation (Lin, et al., 2016)

CRFのデータ項および平滑化項のエネルギー関数をそれぞれCNNで表現CRFへの入力はFeatMap-NetというCNNの特徴マップCRFの学習を通してエネルギー関数のCNNを学習平滑化項が、よりsemanticな性質を帯びる

Page 42: Semantic segmentation

pix2pix (Isola, et al., 2016) 2つの画像の対応関係を学習する汎用的なConditional Adversarial

Networks入力から出力を生成するネットワークと、その入出力ペアが本物かを判定するネットワークを互いに競わせて学習Semantic Segmentationの他にエッジ抽出やグレースケール画像の色付けなどにも応用可能

ソースコードhttps://github.com/phillipi/pix2pix (Torch)

他の人が実装したChainer版もあり

Page 43: Semantic segmentation

まとめ

CRFを用いた手法がほぼデファクトだったが、最近はCNNを用いた手法がデファクトになっている

CNNが良い性能を上げるのは、単純に識別性能が高いためと思われる

CNN単体の手法だと境界部分や小さい領域などに弱い

CNN+CRFの組み合わせによってさらに精度を上げるアプローチも多い

複数の特徴を簡単に入れ込みたいときはRegion and Partsを使った非CRFの手法は検討の価値がある

Generative Adversarial Network (GAN)はここ数年急激に研究が進んだ分野なので、今後も注視する必要