[論文メモ] Localizing Objects with Self-Supervised Transformers and no Labels

arxiv.org

自己教師あり学習でobject localizationを学習する論文
github.com
f:id:Ninhydrin:20211004101320p:plain

概要

自動運転とかでも重要なobject dectionは高精度を得るためには大量のラベル付きデータが必要。
教師なしデータでの学習方法もあるが精度が低い。
最近では顕著性に基づいた検出候補の抽出手法や画像間での類似度を測る手法などもあるが検出候補の数やデータセットの大きさによっては適用できない。

提案手法は一枚の画像から検出する(画像間で類似度を測らない)ので画像数に線形のスケーラビリティ。

手法

特徴量を得るのにVision Transformer(ViT)を利用する。
ViTは画像をパッチに分割し、それをシーケンスとみなしてTransformerに入力する。
またパッチだけでなく1つだけCLSトークンを追加する。
自己教師あり学習としてはDINOを使う。
arxiv.org

DINO-segではCLSトークンに注目していたが、本論文ではではCLSトークンは利用しないobject localization・特徴抽出を行うLOSTを提案する。

LOST

(多分Localizing Objects with Self-Supervised TransformersからLOST)
LOSTではTransformerの最終層から抽出した特徴量の集合 \textbf{F} \in \mathbb{R}^dを利用する。dは特徴量の次元数,  Nはパッチ数。
 \textbf{f}_p \in \mathbb{R}^dはポジションp \in \{1,...,N\}の特徴量。
LOSTは画像中に最低1つはオブジェクトがあると仮定し、画像中のオブジェクトの中からその内1つのオブジェクトの位置を検出する。
そのためにオブジェクトに関係しているパッチを選択することが重要で、そのパッチをseedと呼ぶ。

初期seedの選択

seed選択の方法として以下を仮定する。
(1) オブジェクトを含むパッチ同士は相関があり、そうではない背景とかのパッチとは相関しない
(2) 個々のオブジェクトは背景より領域が少ない

自己教師あり学習したTransformerから抽出した特徴量は経験的に仮定(1)に合っている。
なのでTransformerの特徴量を用い、仮定(2)に基づいて他のパッチとの正の相関が最も少ないものを初期seed、 p^*として選択する。
これによりパッチ同士の相関を表した(パッチ p qに正の相関がある箇所だけ1)二値行列 A=(a_{pq})_{1 \leq p,q \leq N} \in \{0, 1\}^{N \times N}を得る。
ただし
f:id:Ninhydrin:20211001101500p:plain

そしてseed選択は式2で行う。単純に他のパッチとの正の相関が少ないパッチを選択する(仮定2)。
f:id:Ninhydrin:20211001101652p:plain
4枚画像に対するのseed  p^*の選択結果が図2。真ん中の行の画像で赤色のパッチがseed、灰色のパッチがseedと正の相関のあるパッチ。seed  p*と正の相関のあるパッチは確かにオブジェクトに属している。
f:id:Ninhydrin:20211001101827p:plain

seedの拡張

2つ目以降のseedは \textbf{f}_{p^*}と正の相関を持ったパッチの中から、他のパッチとの相関の少ないパッチを選択する。
他のパッチとの相関の少ないパッチ集合を \mathcal{D}_kとして検出に利用するseed集合  \mathcal{S}
 \mathcal{S} = \{q|q \in \mathcal{D}_k \quad \verb|and| \quad \textbf{f}^{\intercal}_p\textbf{f}_s \geq 0 \}
 |\mathcal{D}_k| = kでk=100にクリップ。当然 p^* \in \mathcal{D}_k

矩形抽出

オブジェクトマスク \textbf{m} \in \{ 0, 1 \}^Nを求める。
画像中のあるパッチ qに対してマスク m_qは以下の式3で決定する。
f:id:Ninhydrin:20211004092723p:plain
パッチ qがオブジェクトに属するかは、 \mathcal{S}内のパッチとの相関の平均で決まる。
図3が矩形抽出の例で。黄色の四角がseed  p^*のみで決定した矩形、紫色が上記の方法で選択した矩形。
f:id:Ninhydrin:20211004093004p:plain

Towards unsupervised object detection

1枚の画像には少なくとも1つのオブジェクトが存在すると仮定した上で、LOSTを使って1枚の画像から1つの矩形を抽出し既存の物体検出手法で学習する。
この時2つのパターン考える

Class-agnostic detection (CAD)

LOSTによって生成された矩形を全て「前景」カテゴリとして学習を行う。LOSTは1枚の画像から1つのオブジェクトしか抽出しないが、学習するObject Detectorの出力は1枚の画像から複数のオブジェクト検出を行い、かつLOSTの出力よりも正確な位置検出ができる(表1)。

Class-aware detection (OD).

矩形検出だけでなくカテゴリ認識についても行う。fully unsupervisedで行うためにカテゴリ認識も教師なしモデルを利用する。ここではDINO。
検出した矩形を224x224にリサイズしDINOを使って特徴量(CLSトークン)を抽出しそれをk-meansでクラスタリングして疑似ラベルとする。
評価時はハンガリアン法ででラベル割当。

実験・結果

省略するので詳しくは論文参照。
f:id:Ninhydrin:20211004094443p:plain

LOSTのバックボーンのモデルのアーキテクチャと学習方法の調査。
DINOで学習したViT-S/16がよいのはわかるが、supervisedなViT-S/16が無いのが気になる。ResNet同士の比較でDINO > supervisedな感じはするが、ViTでのDINOとsupervisedの比較が無いのは少々恣意的に感じる
f:id:Ninhydrin:20211004094636p:plain

Unsupervised object detectionでの結果。DetectorはFaster R-CNN。

Unsupervised class-aware detection
一部のクラスはラベル付きの弱教師あり学習より優れている。バックボーン等の違いあるらしく比較はできないらしいが、WSDDNとPCLには少々見劣りする。
同じく教師なしのrOSDと比較すると多少良い。
f:id:Ninhydrin:20211004095454p:plain

Unsupervised class-agnostic detection
結果は表4。
Selective Searchとかとの比較はまあそうだろうなという感じ。

f:id:Ninhydrin:20211004100304p:plain

制約

LOSTの検出方法の仕組み上オーバーラップに対応できない。
また「個々のオブジェクトは背景より領域が少ない」と仮定しているのでオブジェクトが大半を占める画像に対応できない。
これらはfuture work。

所感

教師なしのObject Detectionということで教師なしモデルの特徴量を使うというのはよくある手法で、それをどう使うのかが気になった。
この論文では2つの仮定に基づいて検出戦略を組んでいた。
1つ目の仮定もよくある話。2つ目の仮定は少々強い仮定な気がした。
ただ2つ目の仮定がないと選択が難しいのだろうとは思う。
制約のところでも述べられていたが大きすぎるオブジェクトは無理だし、また、データセット的に小さいオブジェクトとともに写ってしまうオブジェクトも検出できないはず。
初期値seed  p^*の選択をした後のマスク生成の戦略はよさそうなので初期seedの選択方法を練ればもう少し良くなりそう。
ただ、failureにあるが同じ種類のオブジェクトが複数写っているとマスク生成の戦略上全てがまとまってしまう。

また特徴量抽出として教師なし学習のDINOの選択も良さそう。他の手法(SimCLRとか)との比較が気になるところ。

そこまで精度が良いとは思えないが、個人でannotationする場合には良いかもしれない。
また2つの仮定が合っているデータセットなら強いのかも。

関係ないが、appendixに複数画像例があるが車に対する初期seedの多くが車輪についていて面白かった。
seed拡張の戦略で車全体まで広がるから良いのだが、自己教師あり学習の特徴量という気がした。
f:id:Ninhydrin:20211005092202p:plain