xiangze's sparse blog

機械学習、ベイズ統計、コンピュータビジョンと関連する数学について

CVPR2016のひとり論文読み会

CVPR2016の論文読み会が大盛況で参加出来そうになかったので個人的に読んだ複数の論文を紹介します。

最近興味があり、コンピュータービジョンの分野で長らく研究がされているジャンルであるsaliency(顕著性)に関する論文を紹介します。CVPR2016でsalient, saliencyがタイトルに入っているものは9本ありました。
https://dl.dropboxusercontent.com/u/27452774/CVPR2016/CVPRpapers2016_10.html#topic=9&lambda=0.85&term=
全論文の全文を使った上記のトピックモデルでは9番に相当し、600以上ある論文の中ではかなりの割合を占めるようです。
そのうち以下の3つの論文を読んだので紹介します。

Deep Contrast Learning for Salient Object Detection

http://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Li_Deep_Contrast_Learning_CVPR_2016_paper.pdf
saliency mapの作成が主に物体検出の前の段階で行われるか、後に行われるかという考え方の違いがあってbuttom-up,top-downという言い方がされています。前者はコンピュータービジョンでは局所的、または大域的な特徴量を作る研究に相当し、後者に相当する方法としてConvolutional Neural Network(CNN)を使った方法が盛んに研究されています。

モデル

CNNを使ったsaliency mapの作成はSaliency Detection by Multi-Context Deep Learning など既に多数存在しますが、この研究の特色はピクセル単位での画像に対するCNNとSuperpixel(SLIC)の処理を施したものに対しての全結合ニューラルネットを並列に実行し、最終的な結果を統合するネットワークを使っているところににあります。
f:id:xiangze:20160813172112p:plain
ピクセル単位のCNN(multi-scale fully convolutional network (MS-FCN))の方ではVGG16という学習済みのネットワークの異なる解像度に相当するいくつかの層の出力を重ね合わせて出力を作っています。DeepLabのコードを参考にCaffeで実装したそうですが(5.1.3)、VGG16の出力部分のサブサンプリングの回数を減らして使える情報を保っています。また"hole algorithm"(またはa trous algorigthm)という方法を使って畳み込みの範囲を疎で広くするようななどといった工夫が説明されています。
f:id:xiangze:20160813172059p:plain
Segment(Superpixel)の方のネットワークはConvolutional Feature Masking for Joint Object and Stuff SegmentationのFigure2、あるいはfaster R-CNNのものと同様にSegmentでマスクしたものをspacial poolingしたものを出力します。
f:id:xiangze:20160815000350p:plain
入力画像は321x321にリサイズ、superpixelの数は200~300が良いそうですなどといったコツ、ノウハウみたいのが結構書いてあります。
最後に隣接するピクセル間のsaliency mapの値を取り入れて結果を物体の境界に即した滑らかなものにする為にfully connected CRFを用いており(4.2)、精度も向上するそうです。相互作用項に相当する部分ではピクセル値と位置の双方の寄与を入れたような形(測地距離?)にしています。

評価

MSRA-B, PASCAL-S, DUT-OMRON, HKU-IS, SODといったデータセットを用いていて中でもDUT-OMRON http://202.118.75.4/lu/DUT-OMRON/index.htmは難しいデータセットだそうです。
既存研究との性能をmean absolute error (MAE)とF値(β=0.3)を各データセット毎に算出して比較しています。
SF(Saliency filters), GC(Global contrast based salient region detection), DRFI(Salient region detection by ufo: Uniqueness, focusness and objectness), PISA(Pixelwise image saliency by aggregating complementary appearance contrast measures with edge-preserving coherence), BSCA(Saliency detection via cellular automata), LEGS(Deep networks for saliency detection via local estimation and global search), MC(Saliency detection by multi-context deep learning), MDF(Visual saliency based on multiscale deep features)といった手法、fully convolutional neural network (FCN)と比較して優位性を確認しているそうです*1

Saliency guided dictionary learning for Weakly-Supervised Image parsing

http://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Lai_Saliency_Guided_Dictionary_CVPR_2016_paper.pdf
画像のsegmentation、pixel単位でのラベル付けの研究です。データのラベル付けが不十分な場合、あるいは異なるドメインのラベル付きデータがあるような場合に手持ちのデータで学習した結果を教師としてラベル付けするのを繰り返す方法
弱教師あり学習(Weakly-Supervised Learning)と呼ばれます。
先行研究としてピクセル相関を使うCRF, latent topic model, deep learningなどが挙げられていますが(Table 1)、ここでは辞書と呼ばれる行列を作って少数のベクトルで画像(の一部)を表現する辞書学習を使った方法を使いsaliencyの情報を取り込んでいます。saliency mapを得ることが目的ではなく事前知識として使っているところが前の論文とは異なる点ですが、画像に対してSuperpixel (SLIC)を使ってあたりを付けるようなことをしているところは前の論文と共通しています。

基本

辞書学習の基本は入力(ここではsuperpixel) A \in R^{d x N_s}, 入力を近似する基底ベクトル(ここではオブジェクトに相当しatomと呼んでいる)を並べたものである辞書行列 D= [D_1, D_2, \cdots D_Nl ] \in R^{d x N_d} , 各superpixelを圧縮した係数である  X \in R^{N_d x N_s } (d=特徴次元, Ns=superpixelの数, Nd=辞書の語(基底)の数)を使って
f:id:xiangze:20160813172357p:plain
と書けますが、これはsuperpixel pがatom Diに属するかどうかを表現する値Vp[i]
を使うと
f:id:xiangze:20160813172414p:plain
と書けます。さらに各要素が非負で総和が1のベクトルとなるdynamic weight vector Wpという量を定義します。
これによって
f:id:xiangze:20160813172453p:plain
と書けます。これに以下の3つの項を加えるのがこの研究のオリジナルな部分のようです。
オブジェクトが同じクラスかどうかを表現したaffinity matrixに対するスペクトラルクラスタリング
の項を追加でき(3.2)、さらに前景になりやすいオブジェクト(例:cow, dog)のラベルLiと背景になりやすいオブジェクト(例:grass,sky,tree)のラベルLjに対して
P(Lj |Li) > P(Li |Lj )
となりやすいことからforeground-background score
f:id:xiangze:20160813230317p:plain
という量とそれに対するguidance vector Gp
f:id:xiangze:20160813173029p:plain
を定義し、これとWpとの積が最大になるようします。
さらに画像のSmoothnessを事前知識として入れます。

以上の効果を合体させると
f:id:xiangze:20160813225421p:plain
のようになります。X, D,Wのそれぞれを他の項を固定することで逐次updateしていくのですが、XはL1ノルムの項があるのFISTA(A fast iterative shrinkagethresholding algorithm for linear inverse problems)という方法を用い、Dは2次計画なのでL-BFGS、Wはさらに非負値に制限されるので内点法で求められています。
求められたXからラベルlは
f:id:xiangze:20160815000156p:plain
と推定されます。δlはラベルlに対応する係数以外は0とする関数です。

評価

MSRC21, PASCAL VOC07, VOC12というデータセットとして使って評価しています。ピクセルごとにラベルが振られるためaverage per-class accuracy (mAcc)とaverage intersection-over-union score (mIOU) という量を指標として用いています。Smoothnessの導入が非常に重要で導入しない場合には前景、背景が逆転してしまうときもあります(Fig. 4の一番上)。
CNNを用いた方法とも比較していますが、それを凌駕するには至っていないようです(Table 4)。

Recurrent Attentional Networks for Saliency Detection

http://www.cv-foundation.org/openaccess/content_cvpr_2016/papers/Kuen_Recurrent_Attentional_Networks_CVPR_2016_paper.pdf
既存研究である多層のConvolution networkとDeconvolution networkをつなげたもの(Learning Deconvolution Network for Semantic Segmentation (CNN-DecNN))でのsaliency mapの作成に加えて注意(attention)の動きのモデル化の要素を加えて、画像内の特徴ある部分の精度を上げるような工夫をしています。
f:id:xiangze:20160815000241p:plain

モデル

画像や光景の一部に対して注意を向ける動作を画像のscaling,平行移動の行列τ
 \tau=\left(
    \begin{array}{ccc}
      a_s & 0   & a_{tx} \\
      0    & a_s & a_{ty} \\
      0    & 0    & 1
    \end{array}
  \right)
による画像の切り出しとして表し、それが画像内の特徴的な部分を移り行く様(τ1, τ2, …)をパラメータRNNの出力を用いて推定しています(Figure 4.)。
各τによって切り出された領域に対して同一パラメータのCNN-DecNNを適用してsaliency mapを生成し、それを元画像から生成されたsaliency mapに貼付けて精度を高めていくような形になっています。このニューラルネットが縦横に使われたモデルをrecurrent attentional convolutional-deconvolutional networks(RACDNN)と呼んでいます(Figure 4)。

評価

CNN-DecNN, RADCNN はDUT-OMRON, NJU2000, RGBD Salient Object Detection dataset, ImageNet segmentation datasetを合わせて約12,430枚の画像(10,565 training, 1865 validation)を用いて学習を行ったそうですが、deep learinngとしてはそれでも足りないので平行移動やjitterの適用などのdata augumentationを行ったそうです。

MSRA10K, THUR15K, HKUIS, ECSSD, SED2(2つのsalient objectを含む)といったsaliencyのデータセットに対してCNN-DecNNのみの場合、non-recurrentな場合をbaselineとして精度の向上を確認し、さらに9つの既存手法(MCDL(Saliency detection by multi-context deep learning), MDF(Visual saliency based on multiscale deep features), RRWR (Robust saliency detection via regularized random walks ranking), BSCA(Saliency detection via cellular automata), DRFI(Salient object detection: A discriminative regional feature integration approach), RBD(Saliency optimization from robust background detection), DSR(Saliency detection via dense and sparse reconstruction), MC(Saliency detection via absorbing markov chain), HS(Hierarchical image saliency detection on extended cssd ))*2とmean absolute error, F値(β=0.3)で性能を比較し優位性をアピールしています。 CNN-DecNNのみの場合、non-recurrentの場合でも既存手法よりは良くなっているようです。

*1:略称の中には論文著者の頭文字をくっつけたものもあります

*2:3つだけかぶっています