物体検出のモデル、R-CNN・Fast R-CNN・Faster R-CNN・Mask R-CNN・YOLO・SSD・FPN って並んでて、どれがどれの改良か分からん
【疑問】物体検出、R-CNN系とYOLO・SSDは何が違う?2段階と1段階、FPNまで【G検定】
前提のおさらい。物体検出は、画像の中の物ごとに、四角い枠(バウンディングボックス)とラベルを出すタスク。枠の合い具合はIoU(重なり÷合わせた面積)で測る
>>1
大きく2つに分かれる
2段階:まず物がありそうな場所の候補を出して、次に候補ごとに何かを判定する(R-CNN系)
1段階:候補を出さずに、画像全体から枠とラベルを一度に出す(YOLO・SSD)
>>3
R-CNNは、ガーシックらの2014年の論文。画像から物がありそうな候補を約2000個切り出して、1つずつCNNに通して判定した
候補ごとにCNNを通すから、とにかく遅い
>>4
Fast R-CNNは、CNNを画像全体に1回だけかけて特徴マップを作り、そこから候補の部分を切り出す(RoIプーリング)。CNNが1回ですむから速くなった
Faster R-CNNは、レンらの2015年の論文。候補を出すところもネットワーク(RPN)にした。これで全部をまとめて学習できる
>>5
Mask R-CNNは、ヒーらの2017年の論文。Faster R-CNNに、枠の中の物の形を画素ごとに塗る出力を足した。物体検出とインスタンスセグメンテーションが同時にできる
>>3
YOLOは、レドモンらの2016年の論文。画像を 7×7 のマスに分けて、マスごとに枠2つ(位置4つと確信度1つで5つずつ)と20種類の確率を出す
出力は 個の数。1回ネットワークを通すだけやから速い
>>7
速いのはええけど、小さい物がまとまってると苦手やろ。1マスで枠2つまでやし
>>8
それはYOLOの最初の版の弱点として論文にも書いてある
SSDは、リウらの2016年の論文。大きさの違う複数の特徴マップから、それぞれ枠を出す。細かい特徴マップで小さい物、粗い特徴マップで大きい物を見る
>>9
FPNは、リンらの2017年の論文。深い層の粗いけど意味の強い特徴を、浅い層の細かい特徴マップへ上から足しこんで、どの大きさの特徴マップでも意味の強い特徴を持たせる
Faster R-CNNなどに組みこんで、小さい物の検出をよくした
>>3
ざっくり、2段階は精度重視、1段階は速さ重視、と覚えられがち。ただ改良が進んで、今はその差はだいぶ縮んでる
管理人のひとこと
- 物体検出は、候補を出してから判定する2段階(R-CNN系)と、一度に出す1段階(YOLO・SSD)に分かれる。
- R-CNN(2014年の論文)は候補ごとにCNN、Fast R-CNNはCNNを1回にしてRoIプーリング、Faster R-CNN(2015年の論文)は候補もRPNで出す。Mask R-CNN(2017年の論文)は画素ごとの形も出す。
- YOLO(2016年の論文)は 7×7 のマスごとに枠とクラスを出し、出力は1470個の数。SSD(2016年の論文)は複数の大きさの特徴マップから枠を出す。
- FPN(2017年の論文)は深い層の特徴を浅い層へ足しこみ、小さい物の検出をよくする。