Object as Distributionを読んだのでメモ
はじめに
Object as Distributionを読んだのでメモ.細かな部分は割愛しているので実装する場合は論文を要参照.
気持ち
従来,物体検出はbounding boxを物体の表現として扱ってきた.最近ではモデルの表現力の向上からMask R-CNNに代表されるsegmentation maskとしての表現や,CornerNetのようなkey pointの表現などが提案されている.
この論文では新たな表現として,2変数正規分布を使った表現を提案.bounding boxでの表現は単純すぎ,pixelレベルでの表現はパラメータが多すぎるという課題がある.2変数正規分布での表現ではパラメータ数は立った5つにも限らず,頑健な物体の表現が可能となる.また分布として表現することでIoUの代わりにKLダイバージェンスを用いた物体間の比較が可能で,NMSなどの処理がより頑健となる.
Rethinking Object Representation
今までの物体表現方法について簡単に長所と短所をまとめる.
Bounding boxはその単純さが実装やアノテーションに関して長所として働くが,物体の表現としては
- 物体の回転や長方形以外の形状の物体を詳細に表現不能
- Bounding boxの形状が物体のメインの部位ではない部分(人でいえば腕など)によって左右される
- 極度に重なった物体の区別が難しい
という短所がある.一方でmaskを使った表現では物体形状を詳細に記述できるが,パラメータが多いという問題がある.
2変数ガウス分布による物体表現
上記二つの表現方法の中間の表現としてここでは2変数ガウス分布を使った表現を提案.
ある番目の物体を2次元空間中の分布として以下のように表現する.
この正規分布は座標に対する平均と分散,座標に対する平均と分散,相関係数の5つの変数で表現される.
この表現方法の長所として,パラメータ数が少ない, 物体の回転を表現可能,物体の部分的な形状の変化に対して表現が頑健,極度に重なった物体をうまく扱うことが可能という点があげられる.
Distinguishing Objects
個々の物体を区別することは検出の取りこぼしを防ぐという点や,現在一般的に使われているNMSなどにおいて重要なこととしてあげられる.
ここでは区別の方法としてKLダイバージェンスを使って物体間の違いを測る.ただし,KLダイバージェンスは非可換であるため実践的に以下のような対象な形で計算する.
通常,物体間の差異はIoUで記述されるが,KLDで計算するこの方法では直接最適化の目的関数として利用できるという利点がある.また,物体が極度に重なり合うような状況でもうまく物体間の違いを識別できる場合がある.これは論文中のFigure 2にある実際のデータを使ったIoUとKLDの比較から言える.
Model
今回提案するモデルはbounding boxベースの検出器で使われるようなobject proposalやanchor boxを使わないというのと,denseな出力を補助として使うことを想定してDeeplab V3+をベースのアーキテクチャとして使用するとのこと.
Optimization
3つの損失の和の最小化として最適化を行う.
はマスクに対するpixel-wiseのcross entropy.マスクはこの論文の主張とするところとは関係がないため,おそらく精度を出すためのもの.
はKLD .正解のパラメータはinstance segmentationの正解のマスクから計算される平均と分散を使用.
はcategorical cross entropyを表す.
Instance Segmentation with Pixel Clustering
今回のモデルは各ピクセルに対してクラスラベルと分布のパラメータを推論するため,KLDを用いたNMSの操作によりクラスタリングされた結果を用いてinstance segmentationが可能となる.
まとめ
かなり面白い着眼点.あまり好きではなかったIoUの計算がKLDに置き換わる点はとても面白かった.今まで無視されていたbounding boxに関する目的関数とNMSなどの後処理の指標がsmooth L1とIoUで不一致だった部分が改善されている点も良い.