物体検出の手法には
- Faster R-CNN
- YOLO
- SSD
- RetinaNet
- DETR
などがあると。
も参考になりそう。猛烈に素朴な実装としては、画像を NxN のパッチに切り出して、それぞれのパッチで CNN で画像分類をして、同じオブジェクトに分類されたパッチ同士をつなぎ合わせてその長方形の包をバウンディングボックスということにすればいいのか。これだと素朴過ぎて計算コストが高すぎるけど・・・。
実装面では
が参考になりそう。ついでに BERT について
が参考になりそう。BERT のほうを斜め読みした感じではスクラッチから実装するわけではなさそうなので細かいところについては論文とかを読んだほうが理解できるかもしれない。
論文を読むなら例えば以下だろうかと思うが、歴史を追いかけつつ結構な量になるので気が重い。
- [1506.01497] Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
- [1506.02640] You Only Look Once: Unified, Real-Time Object Detection
- [1804.02767] YOLOv3: An Incremental Improvement
- [2004.10934] YOLOv4: Optimal Speed and Accuracy of Object Detection
- YOLOv5 🚀 and Vision AI ⭐ 1
- [1512.02325] SSD: Single Shot MultiBox Detector
- [1708.02002] Focal Loss for Dense Object Detection
- [2005.12872] End-to-End Object Detection with Transformers
Focal loss は $L = -(1-p)^\gamma \log p$ みたいな損失関数で、$\gamma=0$ なら従来の交差エントロピーに一致し、$\gamma$ を例えば 5 くらいにすると $p=0.5$ でも十分に損失値が小さい = 少々あやしくても OK という大雑把な判断を下すようになると。厳しさを緩和できる損失らしい。
-
YOLOの各バージョンについてまとめ(2020年7月27日時点) - Qiita によると、論文はまだ発表されていないらしい。GitHub の issues でも度々質問は出ているようだが、bot に close されているように見える。↩