PSPNet (Pyramid Scene Parsing Network):ディープラーニングによるSemantic Segmentation手法

FCN, SegNet, U-Netに引き続きディープラーニングによるSemantic Segmentation手法のお勉強。


ディープラーニングによるSemantic Segmentationアルゴリズムまとめ
これまで勉強したディープラーニングによるSemantic Segmentation手法のアルゴリズム一覧。


次はPSPNet (Pyramid Scene Parsing Network)について。


スポンサーリンク

PSPNet (Pyramid Scene Parsing Network)

PSPNet (Pyramid Scene Parsing Network)CVPR 2017で発表されたPyramid Scene Parsing Networkで提案されたSemantic Segmentation手法。

Pyramid Scene Parsing Network (CVPR 2017)

SegNetU-Netの登場以降、ディープラーニングによるSemantic SegmentationではEncoderDecoder構造が定番となった。

PSPNetでは、EncoderResNet101(大規模データで学習済み)の特徴抽出層を利用しており、EncoderDecoderの間にPyramid Pooling Moduleを追加している↓

Fast R-CNNの記事で触れたSPPNetで、似た名前のSpatial Pyramid Pooling(空間ピラミッドプーリング)が使われていた。



同じなのは複数の解像度でmax-poolingを行うという点だけです(笑)


スポンサーリンク

Pyramid Pooling Module

Encoderによって入力画像から抽出された特徴マップのサイズは、ダウンサンプリングされて元の入力画像の1/8になる。
Pyramid Pooling Moduleでは、Encoderで抽出された特徴マップに対して、複数の解像度でmax-poolingをかけてそれぞれのスケールで捉えた特徴マップを得る。これによって、画像の大域的なコンテキストと小さな部分の情報の両方を拾うことができる。

Pyramid Pooling Moduleの階層数や各階層での特徴マップのサイズは、入力される特徴マップのサイズに合わせて設計する。Pyramid Pooling Moduleの階層の数をNとすると、削減後の各特徴マップのチャンネル数は1/Nになる。

論文の例では、以下の図のように階層的に4つの異なるカーネルサイズ(1×1, 2×2, 3×3, 6×6)でmax-poolingを行い、得られた複数スケールの特徴マップを1×1で畳み込んでチャンネル数を削減する。

そして、このチャンネル数を削減した特徴マップをバイリニア補間で元の特徴マップと同じサイズにアップサンプリングする。
アップサンプリングしたこれらの特徴マップを元の特徴マップにチャンネルを追加する形で連結し、大域的なコンテキストと局所的な情報の両方を持った特徴マップとする。
最終的に、この連結した特徴マップに対して1×1の畳み込みを行ってSemantic Segmentationの結果を得る。

Pyramid Scene Parsing Network (CVPR 2017)

あれ、何か妙に情報があっさりだぞ。。。

次はRefineNet (Multi-Path Refinement Network)について勉強しよう。


ディープラーニングによるSemantic Segmentationアルゴリズムまとめ
これまで勉強したディープラーニングによるSemantic Segmentation手法のアルゴリズム一覧。


スポンサーリンク

関連記事

C#で使える機械学習ライブラリ『Accord.NET Framework』
hloc:SuperGlueで精度を向上させたSfM実装
MeshroomでPhotogrammetry
Point Cloud Libraryに動画フォーマットが追加されるらしい
データサイエンティストって何だ?
UnityでPoint Cloudを表示する方法
機械学習手法『SVM(Support Vector Machine)』
書籍『仕事ではじめる機械学習』を読みました
Photogrammetry (写真測量法)
オープンソースのロボットアプリケーションフレームワーク『ROS (Robot Operating S...
インタラクティブにComputer Visionコーディングができるツール『Live CV』
画像からカメラの3次元位置・姿勢を推定するライブラリ『OpenGV』
Deep Learningとその他の機械学習手法の性能比較
ディープラーニング
Paul Debevec
統計的な顔モデル
SDカードサイズのコンピューター『Intel Edison』
AnacondaとTensorFlowをインストールしてVisual Studio 2015で使う
PyTorch3D:3Dコンピュータービジョンライブラリ
複数視点画像から3次元形状を復元するライブラリ『openMVG』
ニューラルネットワークで画像分類
Adobe MAX 2015
Faster R-CNN:ディープラーニングによる一般物体検出手法
機械学習のオープンソースソフトウェアフォーラム『mloss(machine learning ope...
オープンソースのStructure from Motionツール『Regard3D』
OpenCVの超解像処理モジュール『Super Resolution』
Google Colaboratoryで遊ぶ準備
顔追跡による擬似3D表示『Dynamic Perspective』
BlenderProc:Blenderで機械学習用の画像データを生成するPythonツール
Faceshiftで表情をキャプチャしてBlender上でMakeHumanのメッシュを動かすデモ
Multi-View Stereoによる3次元復元ライブラリ『OpenMVS』
AI英語教材アプリ『abceed』
iPadをハンディ3Dスキャナにするガジェット『iSense 3D Scanner』
画像認識による位置情報取得 - Semi-Direct Monocular Visual Odome...
手を動かしながら学ぶデータマイニング
オープンソースの顔の動作解析ツールキット『OpenFace』
Adobeの手振れ補正機能『ワープスタビライザー』の秘密
SSII 2014 デモンストレーションセッションのダイジェスト動画
オープンソースのStructure from Motionライブラリ『Theia』
Pix2Pix:CGANによる画像変換
OpenCV
Active Appearance Models(AAM)

コメント