CornerNet: Detecting Objects as Paired Keypoints まとめ

【CornerNet: Detecting Objects as Paired Keypoints 】
https://arxiv.org/pdf/1808.01244.pdf

実装されたコード
https://github.com/princeton-vl/CornerNet

CornerNet: Detecting Objects as Paired Keypoints

 

論文のモチベーション

大量のアンカーボックス無駄じゃねえか?

従来の物体検出は、大量のアンカーボックスを作成するが、これには欠点が2つあると筆者は言っています。
1つ目は、大量のアンカーボックスと正解のボックス(ground truth)の間に不均衡が生じ、学習が遅くなってしまうこと

2つ目は、ハイパーパラメータが多くなることです。
どのくらいボックスを作るのか、どのサイズ、どのアスペクト比で決めるのかなどいろいろ決めることがあります。
これにより複雑性が増してしまいます。

cornerは2点のほうが効率的

従来の物体検出では、4点cornerの情報が必要ですが、
ConerNetでは、2点で十分なので、

何をしたいのか

この論文では、物体検出の新しいアプローチである、CornerNetを紹介しています。
このCornerNetを用いて、より効率的に物体検出を行おうとしています。

どんな工夫をしているのか

下記がCornerNetのモデル構造になります。
Image from Gyazo

2つのcornerを検出する

cornerの位置を出力するために、CNNを通して、左上のヒートマップ、右下のヒートマップを予測します。

2つのcornerを一つの物体に対して適用

上記でcornerを出力することはできますが、複数の物体がある場合、多くのペア(左上、右上のcorner)が検出されることになります。
ここでは、それらを正しいペアにする(結合する)作業を行います。
埋め込みベクトルの距離間によって、この結合を行ってます。

corner pooling

水平方向と垂直方向でpoolingを行っています。
Image from Gyazo

Hourglass Network

Hourglass Networkは、backbone networkとして使用され、
2つのmoduleで構成されています。
一つは、左上のcorner用に、もう一つは、右下のcorner用に使用されます。

 

感想

久しぶりに物体検出において、新しい手法を読んだ気がしました。
来年になったら、このモデルベースのさまざまなモデルが提案されているかも。
楽しみだなー。