Автор: Герман Петров Редактура: Булат Бадамшин
Что можно прочитать, чтобы лучше понять эту статью:
Задача детекции в Computer Vision — одна из самых распространенных, при этом непростых на практике задач: нужно одновременно и искать объекты, и определять их классы.
За относительно небольшое время применения нейросетевых подходов в детекции появилось много подходов и фишек для эффективного решения этой задачи. Так, детекторы часто подразделяются на one-stage и two-stage виды, которые, в свою очередь, делятся на anchor-based (используют анкоры) и anchor-free (не используют анкоры).
Анкоры — предварительно выбранные вручную боксы.
Также есть огромное количество методов для улучшения качества детекции путем “умного” взвешивания в лоссе, улучшения точности пулинга фичей и так далее.
Авторы DETR решили полностью пересмотреть подход к построению архитектуры детектора. При этом они руководствовались следующими идеями:
Этот небольшой топик не претендует на охват всех подходов и деталей из обширной области Object Detection. Но мы постараемся поговорить о том, как в целом работает детекция на CNN.
Если говорить тезисно, большинство CNN детекторов делится на два больших класса: two-stage и one-stage.
Рисунок 1. Сравнение two-stage детектора Faster R-CNN и one-stage детектора RetinaNet (источник)