Детекция объектов — это задача компьютерного зрения, в которой модель находит объекты на изображении и определяет, к какому классу они относятся. В отличие от простой классификации изображения, здесь важны сразу две вещи: где находится объект и что именно на нём изображено.
Содержание статьи
Чем детекция объектов отличается от других задач компьютерного зрения
Детекция объектов определяет местоположение и класс каждого найденного объекта на изображении. Это отличает её от классификации, где всей картинке обычно присваивается одна метка, и от сегментации, где объект выделяется на уровне пикселей.
Если модель классификации получает фотографию улицы, она может ответить, есть ли на ней дорожный знак. Детекция объектов идёт дальше: она находит все знаки, машины, людей и другие заданные категории, а затем показывает, где именно они расположены.
Сегментация работает точнее. Она не ограничивается прямоугольной рамкой вокруг объекта, а размечает его форму по пикселям. Поэтому детекцию объектов часто считают промежуточным уровнем между общей классификацией изображения и детальной сегментацией сцены.
Как работает детекция объектов
В общем виде процесс состоит из трёх этапов: модель извлекает признаки изображения, предлагает возможные области с объектами и присваивает им классы. На выходе получаются рамки, метки и оценки уверенности.
Цифровое изображение представлено как сетка пикселей. Модель не видит «машину» или «человека» так, как это делает человек. Она анализирует сочетания признаков: контуры, текстуры, цветовые переходы, форму и другие визуальные закономерности, которые были изучены на размеченных данных.
Во время обучения изображения снабжают аннотациями. Обычно это прямоугольные рамки и подписи классов. За счёт этого модель учится связывать участки изображения с определёнными категориями объектов.
Когда система получает новое изображение, она сравнивает его признаки с теми паттернами, которые запомнила при обучении. Затем формирует прогноз: в этой области, с такой-то вероятностью, находится человек, автомобиль, животное или другой объект из набора классов.
Что такое локализация и классификация
Детекция объектов объединяет две подзадачи: локализацию и классификацию. Локализация отвечает за координаты объекта, классификация — за его тип.
Локализация обычно выражается через ограничивающую рамку, или bounding box. Это прямоугольник, который охватывает найденный объект. Классификация присваивает этой рамке метку: например, «человек», «автомобиль», «велосипед».
Из каких частей состоит модель
Многие современные модели детекции объектов строятся из трёх частей: backbone, neck и head. У разных семейств архитектур реализация отличается, но общая логика похожа.
Backbone извлекает признаки из входного изображения. Это базовая часть сети, которая превращает пиксели в набор представлений разной глубины. Затем neck объединяет карты признаков разных масштабов, чтобы модель лучше видела и крупные, и мелкие объекты.
После этого head предсказывает рамки и классы. Именно на этом этапе появляются итоговые координаты объектов и оценки уверенности по каждому классу.
Какие бывают модели детекции объектов
Модели детекции объектов часто делят на одноэтапные и двухэтапные. Первые обычно работают быстрее, вторые нередко точнее определяют положение объектов.
В двухэтапных архитектурах модель сначала ищет возможные области с объектами, а потом уточняет их и классифицирует. В одноэтапных обе задачи решаются сразу, в одном проходе. Это особенно важно там, где ответ нужен без заметной задержки.
Двухэтапные детекторы
К двухэтапным моделям относится семейство R-CNN. Такие архитектуры сначала формируют набор кандидатов на объекты, а затем отдельно оценивают их классы и уточняют рамки.
Оригинальная R-CNN известна высокой вычислительной нагрузкой. Позднее появились Fast R-CNN и Faster R-CNN, которые сократили время обработки и улучшили практическое применение подхода.
Одноэтапные детекторы
Одноэтапные модели сразу предсказывают и рамки, и классы объектов. За счёт этого они хорошо подходят для задач, где важна скорость.
Самый известный пример — семейство YOLO. Эти архитектуры обрабатывают изображение за один проход сети и потому часто используются в сценариях реального времени. У YOLO было много версий, и развитие шло в сторону баланса между скоростью и точностью.
К близким по идее подходам относят также SSD и RetinaNet. Они тоже решают задачу без явного разбиения на два отдельных этапа.
Трансформеры и новые подходы
В детекции объектов применяются не только сверточные сети. Есть и архитектуры, которые сочетают их с трансформерами или опираются на трансформерный подход сильнее.
Пример такого направления — DETR. Эта архитектура связывает детекцию объектов с механизмами внимания и показывает, что задачу можно решать не только классическими свёрточными схемами.
Как оценивают качество детекции объектов
Один из главных показателей в детекции объектов — IoU, или intersection over union. Он показывает, насколько предсказанная рамка совпадает с эталонной разметкой.
Если рамка модели почти полностью накрывает объект так же, как рамка в разметке, значение IoU будет выше. Если пересечение маленькое, показатель падает. Это простой способ измерить точность локализации.
IoU используют не только для проверки качества на тестовых данных. Этот показатель также помогает отбирать и объединять предсказания модели, когда она выдаёт несколько рамок для одного и того же объекта.
Кроме IoU, в исследованиях и практике применяют и другие метрики, включая GIoU, а также показатели точности и полноты. Они помогают понять, насколько хорошо модель находит объекты и как часто она пропускает нужные экземпляры или, наоборот, создаёт лишние срабатывания.
Где применяется детекция объектов
Детекция объектов нужна там, где системе мало понять общий смысл изображения. Она используется в задачах, где требуется обнаружить конкретные объекты и знать их положение в кадре.
Один из частых примеров — анализ дорожной сцены. Модель может находить машины, пешеходов, знаки и другие элементы, которые важны для автоматизированного восприятия обстановки.
Ещё одно направление — медицинские изображения. Здесь детекция может быть частью более крупного процесса анализа снимков, когда системе нужно обнаружить области интереса перед дальнейшей проверкой.
На этом список не заканчивается. Такой подход используют и в видеоаналитике, и в робототехнике, и в системах контроля, где объект нужно сначала заметить, а уже потом отслеживать, классифицировать или передавать в следующий этап обработки.
Какие проблемы возникают в задачах детекции объектов
Основные трудности связаны с качеством данных, размером объектов, перекрытиями и изменением условий съёмки. Модель должна одинаково уверенно работать на чистых и сложных сценах, а это получается не всегда.
Одна из типичных проблем — дисбаланс данных. В специализированных наборах часто гораздо больше примеров без нужного объекта, чем с ним. Это особенно заметно в доменных задачах, где положительные примеры редки.
Ситуацию осложняют маленькие объекты, размытие движения, сложный фон и изменение точки съёмки. Если объект частично закрыт или плохо различим, вероятность ошибки растёт.
В видео добавляются новые помехи. Объект меняет положение от кадра к кадру, камера может двигаться, а фокус — смещаться. Поэтому для видео детекция часто сочетается с отслеживанием объектов во времени.
Что происходит в развитии детекции объектов сейчас
Текущие исследования сосредоточены на трёх направлениях: улучшение качества на сложных данных, ускорение работы и перенос методов с 2D-изображений на видео и 3D-сцены. Отдельное внимание уделяют устойчивости моделей в реальных условиях.
Для работы с ограниченными наборами данных используют расширение данных. Этот подход помогает разнообразить обучающую выборку без изменения самой задачи разметки.
В задачах видеоаналитики исследователи развивают методы, которые учитывают связь между соседними кадрами. Для этого применяют рекуррентные модели, включая LSTM, а также трансформерные архитектуры.
Параллельно идёт работа над ускорением детекторов. Это нужно для систем, где задержка критична: например, при обработке видеопотока в реальном времени.
Коротко: что нужно запомнить о детекции объектов
Детекция объектов — это метод компьютерного зрения, который находит объекты на изображении и определяет их классы. Результат обычно включает рамки, метки и оценки уверенности.
- Классификация отвечает на вопрос, что изображено на всей картинке.
- Детекция показывает, где находится каждый объект и к какому классу он относится.
- Сегментация выделяет объект точнее, на уровне пикселей.
- Среди известных архитектур — R-CNN, YOLO, SSD, RetinaNet и DETR.
- Одной из базовых метрик качества считается IoU.
| Задача | Что делает |
| Классификация изображения | Присваивает всей картинке одну или несколько меток |
| Детекция объектов | Находит объекты, ставит рамки и определяет классы |
| Сегментация | Выделяет объекты по пикселям |