Детекция объектов
В задаче детекции объектов (object detection) на входном изображении необходимо найти и выделить прямоугольной рамкой все объекты заданных классов, как показано ниже (источник):
Задача детекции активно применяется в различных областях:
-
Подсчёт числа участников мероприятия, оценка пассажиропотока в общественном транспорте.
-
Детектирование людей в системах безопасности, детектирование запрещённых предметов.
-
Детектирование товаров на полках в магазине и на складах в целях оптимизации логистики.
-
Детектирование машин, пешеходов, светофоров и дорожных знаков в автоуправляемых машинах (self-driving cars).
Простой подход к детекции
Для детектирования определённого объекта можно задать его изображение-образец и сканировать этим образцом изображение, вычисляя корреляцию образца с каждым фрагментом изображения. В ысокая корреляция будет свидетельствовать о наличии интересующего объекта, который помечается рамкой, как показано на рисунке:
Объект может быть разного размера, поэтому нужно применить этот метод ко входному изображению в разных разрешениях.
Указанный подход подходит для случаев, когда распознаваемый объект имеет примерно одинаковый вид - например, когда выделяем определённые буквы и цифры при распознавании печатного текста.
В общем же случае он имеет ограниченную применимость:
-
обрабатываемая фотография могла быть сделана в разное время суток, целевой объект, освещённый по-другому, может не выделиться;
-
объект может располагаться под углом, что также снизит корреляцию с образцом;
-
если выделяем более сложный объект, например машину, то она может быть разных цветов, моделей и габаритов.
Поэтому для детекции общего случая используют нейросети способные выделять сложные объекты в более общем контексте, описанные далее. Мы рассмотрим базовые методы детекции объектов, такие как YOLO, SSD, RetinaNet, CornerNet, CenterNet и другие.