物体検出を1から解説(YOLO・DETRまで)
画像の「どこに何があるか」を当てる物体検出を、2段階検出器・アンカー・NMSという古典の道具立てから、それらを丸ごと不要にしたDETRの発想転換まで、前提知識ゼロで解説。一次資料はDETR論文。
End-to-End Object Detection with Transformers
一次資料 — この記事の根拠
論文の発表 2020-05-26→この解説の公開 2026-08-136年3か月後
End-to-End Object Detection with TransformersNicolas Carion, Francisco Massa, Gabriel Synnaeve ほか · 2020-05-26 · v3arXiv:2005.12872論文ページ·PDF原文の要旨(Abstract)を読む
We present a new method that views object detection as a direct set prediction problem. Our approach streamlines the detection pipeline, effectively removing the need for many hand-designed components like a non-maximum suppression procedure or anchor generation that explicitly encode our prior knowledge about the task. The main ingredients of the new framework, called DEtection TRansformer or DETR, are a set-based global loss that forces unique predictions via bipartite matching, and a transformer encoder-decoder architecture. Given a fixed small set of learned object queries, DETR reasons about the relations of the objects and the global image context to directly output the final set of predictions in parallel. The new model is conceptually simple and does not require a specialized library, unlike many other modern detectors. DETR demonstrates accuracy and run-time performance on par with the well-established and highly-optimized Faster RCNN baseline on the challenging COCO object detection dataset. Moreover, DETR can be easily generalized to produce panoptic segmentation in a unified manner. We show that it significantly outperforms competitive baselines. Training code and pretrained models are available at https://github.com/facebookresearch/detr.
「何の写真か」ではなく「どこに何があるか」
画像分類は「この写真は犬です」と、1枚につき1つのラベルを返します。物体検出はその一歩先で、「どこに」「何が」「いくつ」あるかを答える問題です。出力は「犬がこの枠、人がこの枠、車がこの枠…」という枠(バウンディングボックス)とラベルの集まりで、しかもその個数は画像ごとに違います。
集合写真に例えるなら、分類は「これはクラス写真ですね」と言うこと、検出は写っている友だち全員に丸を付けて名前を書くことです。何人写っているか事前に分からないのに、全員に過不足なく丸を付ける——この「個数が決まっていない集合を出力する」性質こそ、物体検出を難しくしている本質です。
本記事の一次資料であるDETR論文は、この点を正面から突きます。現代の検出器は集合予測を間接的に解いている——候補枠やアンカーの上に回帰と分類の「代理問題」を定義し、後処理で答えを集合に整えている——という指摘です(§1)。まずはその間接的な解き方から見ていきます。
系譜①: 2段階検出器 — 候補を出してから精査する
Faster R-CNNに代表される2段階(two-stage)検出器は、まず画像から「何かありそうな場所」の候補枠(proposal)を大量に出し、次に各候補を精査して「これは犬か、枠はどうずらすべきか」を分類・回帰します。下読みと精読の2段構えで、論文の整理では「候補枠を基準に最終的な枠を予測する方式」です(§2.3)。
系譜②: 1段階検出器とアンカー — 下書きの枠を敷き詰める
YOLOやSSDに代表される1段階(one-stage)検出器は候補出しの工程を省き、画像を格子に区切って各位置から直接予測します。ここで活躍する道具がアンカーです。大きさや縦横比の違う「下書きの枠」をあらかじめ画像中に敷き詰め、各アンカーに「ここに物はあるか」「あるならどれだけ枠をずらすか」を答えさせます。白紙から枠を描くより「下書きを修正する」ほうが学習しやすい、という発想です(論文の整理では「アンカーや物体中心の格子を基準に予測する方式」、§2.3)。
ただし論文は、こうした検出器の最終性能が「最初の当たりの置き方」——アンカー集合の設計や、正解をどのアンカーに割り当てるかの人手ルール——に大きく左右されると指摘します(§1, §2.3)。
NMS — 重複を消す後処理
下書き方式には副作用があります。1つの物体に対して、近所のアンカーや格子がほぼ同じ枠を何個も予測してしまうのです。そこで非最大値抑制(NMS: Non-Maximum Suppression)という後処理が要ります。スコア最大の枠を残し、それと大きく重なる枠を消す——これを繰り返して重複を潰します。論文はこのNMSも、性能を左右する手設計の部品に数えています(§1)。
まとめると、古典的な検出パイプラインは「アンカーという事前知識で下書きし、NMSという後処理で清書する」形をしています。DETRの問いはシンプルです——その下書きと清書、本当に必要ですか?
内積 — DETRを支える1つの道具
DETRの答えを理解するのに必要な道具は、実は1つだけ。内積、つまり2本のベクトルの「向きの近さ」を測る計算です。Transformerの注意機構はこの内積で「どの情報にどれだけ耳を傾けるか」を決めます。仕組みの詳細はAttention機構を1から理解するに譲り、ここでは感覚だけ掴んでください。
DETRの発想転換 — 集合予測を「直接」解く
DETR(DEtection TRansformer)の提案は一行で言えます。検出を集合予測問題として直接解き、アンカーもNMSも捨てる。論文はそのために必要な要素は2つだと述べます(§3)。
- 予測と正解を1対1で強制的に結びつける二部マッチングに基づく損失
- 物体たちの関係と画像全体の文脈をまとめて推論し、全予測を一発で並列に出すアーキテクチャ
柱①: 二部マッチング — 席替えしてから1対1で採点する
DETRは毎回固定でN個の予測を出します(実験ではN=100、§0.A.4)。画像に物体が7個しかなければ、残りの枠には「物体なし」を意味する特別クラス を当てることにして、正解側もN個にそろえます。そして学習のたびに「どの予測がどの正解の担当か」を決め直します。
コメント
コメントにはログインが必要です