Dense RepPoints: Representing Visual Objects with Dense Point Sets
どんなもの?
- 新しい物体表現としてDense RepPointsを提案。物体の外観と形状を柔軟かつ詳細にモデリングする。
- バウンディングボックスによるlocalizationと特徴抽出は粗めに行われるのに対して、Dense RepPointsでは物体の意味的かつ幾何学的に重要な位置に、密なサンプル点の集合を適応的に配置することで、物体を解析するために有益な情報を与える。
- COCOを用いた性能評価では、APが既存手法から大幅に向上。
技術や手法のキモ
Dense (Attributed) RepPoints
- RepPointsで使っていたサンプル点の個数は9点と比較的少なかった。
- 物体検出の出力であるバウンディングボックスの自由度は4しかないでこれで十分かもしれないが、instance segmentationといったより精細な幾何的なlocalizationタスクにとっては、こういった疎なサンプル点の集合では表現力が不十分。
- 詳細な物体の構造を表現するために、より大規模なサンプル点の集合であるDense RepPointsを提案する。
- Dense RepPointsは物体のより詳細な構造(輪郭、前景、境界領域など)を近似するポテンシャルを持っている。
- さらに、必要に応じて属性(attributes)を各サンプル点に関連付けることで、表現力をさらに強化することができる。
- 潜在的な属性には、サンプル点が前景に位置する確率や人物のキーポイントの可視性などが含まれる。
- 属性によって強化された表現をDense (Attributed) RepPointsと名付ける。はサンプル点に関連付けられた属性ベクトル。
Object Segment Representation
- セグメントは物体の空間的な範囲を正確に表すことができる。
- 典型的な表現方法としては、MaskRCNNのようなバウンディングボックス内の前景領域を示す二値マップや、バウンディングボックスに依らない(non-box form)輪郭などがある。
- バウンディングボックスベースの構造は表現や計算が比較的簡単である一方で、下図のような前景領域や境界を示す二値マップなど、non-box formでもセグメントを表現可能できる。
- 論文で検討しているのは以下の3つのnon-box form。
- Object contour
- Foreground area
- Binary boundary map
Learn Dense RepPoints by Segment Supervision
- denseなサンプル点の集合(dense point set)と物体のセグメントのアノテーション(segment supervision)間で直接ロスを計算できないため、segment supervisionを中間的な表現に変換することで学習を可能にする。
- 以下の二つのアプローチを提案。
Unorganized point set
- segment supervisionからサンプリングされた点(target point)との不一致を最小化するように、dense pointを配置することを学習する。
- target pointとdense pointの対応付けを明示的には定義せず、サンプル点の集合全体の不一致さをロスとして用いる。
- 各セグメントのtarget pointの決め方は以下の通り。
- contour: target pointを輪郭線上に均一に配置する。
- foreground area: 前景領域から一様にサンプリングした点をtarget pointとする。
- binary boundary map: 輪郭のマップに距離変換をかけて、前景領域内の点に前景、背景領域内の点に背景の属性を割り当てる。
- ロスは以下のChamfer loss。距離が最も近い点間のL2距離を最小化する。
Organized point set
- 物体のマスクの中心を原点とする極座標に基づいて、target pointを配置・インデックス付けする。
- 回転角はいくつかの角度に量子化して用いる。(例: )
- 各セグメントのtarget pointの決め方は以下の通り。
- contour: それぞれの回転角について輪郭との二つの交点をtarget pointとする。target pointの数は。
- foreground area: それぞれの回転角について、前景領域内に一様に分布した固定数の点(例: )をtarget pointとする。target pointの数は。
- binary boundary map: それぞれの回転角について、境界領域内に一様に分布した固定数の点をtarget pointとする。各点には前景/背景の属性が関連付けられる。
- ロスはsmooth L1 loss。
二つの表現方法の比較
- UnorganizedとOrganizedを比較すると、Unorganizedの方が優れていた。(特に輪郭表現)
- organizedだと凹凸が非常に多い物体(複雑なポーズをした人間など)の場合、一つの回転角に3つ以上の交点が存在する可能性があるため、輪郭を正確に表現することは不可能。これは点数を増やしたとしても避けられない。
- foreground areaとbinary boundary mapについては、点数を増やすことでより正確に形状を表現できるポテンシャルを持っている。
Inference of Non-box Descriptors by Dense RepPoints
- 推論時のdense point setからセグメントへの変換方法は以下の通り。
- contour: dense point setからkNNを用いた手法によって凹包を計算する。
- foreground area: dense pointを適応的なガウシアンカーネルによって膨張させることで、前景マスクを生成する。
- binary boundary map: Attributed Dense RepPointsに対して、まずドロネー三角形分割を用いて画像を三角形に分割する。次に、各三角形の重心座標系で線形補間を行うことで、三角形内の任意の画像ピクセルの前景スコアを算出する。
Efficient Feature Extraction
- RepPointsのようにDeformable Convolutionを用いて特徴抽出を行うのは、点数の増加に伴って計算量が線形に増加するため実用的ではない。
- 点数を、それぞれの点における特徴量の長さをとすると、分類と回帰それぞれの計算量のオーダーは。
- この問題に対処するために、group pooling(classification用)とshared offset fields(point refinement用)を導入する。これによって、計算量は点数の増加に対してほぼ不変になる。
- 検出精度はEfficientなアプローチにすることで、劣化するどころかむしろ良くなる。
Group pooling
- classification branchについて、以下の手順で特徴抽出をする。
- 個の点を個のグループに分割する。
- グループ内の各点に対応する特徴量をサンプリングして、max poolingをかけることでグループごとの特徴量を得る。
- 得られた特徴量をconcatして1x1 convをかける。
- こうすることで、計算コストを、メモリコストをまで削減することができる。論文ではとしている。
Shared offset fields and attribute maps
- recognition branchとは異なり、point refinementとpoint-wise attribute predictionでは個々の点の情報が必要となる。そのため、recognitionのようにgroup poolingを用いることはできない。
- 代わりに最終レイヤ以外のレイヤを共有することで、計算コストとメモリコストを削減する。
RPSeg: An Box-Free Instance Segmentation Framework
- Dense RepPointsを利用したインスタンスセグメンテーション手法であるRepPoints Segmenter (RPSeg)を提案。
- RepPointsと同様に中心点を物体の初期表現として用いる。
- 全体構造とヘッドの構造は下図の通り。
有効性の検証
- COCOの物体検出において、マルチスケール学習やアンカーを必要とせずに45.8APを達成。SOTAな手法よりも優れている。