Открыть сервис

Распознавание объектов

Распознавание объектов — это область компьютерного зрения и искусственного интеллекта, занимающаяся идентификацией и классификацией объектов (людей, животных, транспортных средств, зданий, предметов быта и т. д.) на цифровых изображениях или видеопотоках. Задача распознавания объектов заключается в том, чтобы не только определить, что изображено на картинке (классификация), но и указать местоположение каждого объекта на изображении (локализация), обычно с помощью ограничивающей рамки (bounding box) или более точной маски сегментации. Распознавание объектов является фундаментальной технологией для множества прикладных систем, от автономного вождения до медицинской диагностики и систем безопасности.

История

Ранние этапы (1960-е — 1990-е годы)

Первые попытки распознавания объектов на изображениях относятся к 1960-м годам, когда исследователи начали разрабатывать алгоритмы, способные выделять простые геометрические фигуры (прямоугольники, круги) на бинарных изображениях. В 1970-е годы появились более сложные методы, основанные на выделении признаков (features) — краёв, углов, текстур. Одним из ключевых достижений стало создание детектора границ Кэнни (Canny edge detector) в 1986 году, который до сих пор используется в качестве базового инструмента.

В 1980-е — начале 1990-х годов активно развивались методы, основанные на шаблонном сопоставлении (template matching) и статистических моделях. Однако все эти подходы были крайне чувствительны к изменению освещения, ракурса, масштаба и частичному перекрытию объектов.

Эпоха машинного обучения (1990-е — 2010-е годы)

Переломным моментом стало внедрение методов машинного обучения, в частности, метода опорных векторов (SVM) и каскадных классификаторов. В 2001 году Пол Виола и Майкл Джонс представили детектор лиц, который использовал каскадный классификатор на основе признаков Хаара (Haar-like features). Этот алгоритм работал в реальном времени и стал основой для многих систем видеонаблюдения и фотоаппаратов.

В 2000-е годы значительную роль сыграл метод «мешка визуальных слов» (Bag of Visual Words, BoVW), который заимствовал идеи из обработки текстов. Изображение разбивалось на локальные участки, для каждого из которых вычислялся дескриптор (например, SIFT или SURF), а затем все дескрипторы квантовались в «слова» — кластеры, образующие словарь. Классификация объектов проводилась по гистограмме встречаемости этих слов. Несмотря на успехи, точность и скорость таких методов оставались ограниченными.

Глубокое обучение (2012 — настоящее время)

Настоящий прорыв произошёл в 2012 году, когда нейросеть AlexNet, разработанная Алексом Крижевским, Ильёй Суцкевером и Джеффри Хинтоном, одержала убедительную победу в конкурсе ImageNet Large Scale Visual Recognition Challenge (ILSVRC). AlexNet представляла собой свёрточную нейронную сеть (CNN) с глубокой архитектурой (8 слоёв), обученную на огромном наборе данных из 1,2 миллиона изображений. С этого момента глубокое обучение стало доминирующим подходом в распознавании объектов.

Основные подходы и архитектуры

Двухэтапные детекторы (Two-stage detectors)

Двухэтапные методы сначала генерируют набор потенциальных областей интереса (region proposals), а затем классифицируют каждую из них. Классическим представителем является семейство R-CNN (Region-based Convolutional Neural Networks):

  • R-CNN (2014): Сначала на изображении выделялось около 2000 регионов с помощью алгоритма Selective Search. Каждый регион масштабировался до фиксированного размера и подавался на вход свёрточной сети, которая извлекала признаки. Затем признаки классифицировались с помощью SVM. Недостаток — крайне низкая скорость (десятки секунд на изображение).
  • Fast R-CNN (2015): Улучшение, при котором свёрточная сеть обрабатывала всё изображение целиком, а признаки для каждого региона извлекались из общей карты признаков. Это позволило значительно ускорить работу (до 0,3 секунды на изображение).
  • Faster R-CNN (2015): Вместо внешнего алгоритма Selective Search была введена Region Proposal Network (RPN) — небольшая свёрточная сеть, которая обучалась генерировать регионы совместно с основной сетью. Это сделало детектор полностью сквозным (end-to-end) и ещё более быстрым (до 0,2 секунды на изображение).

Двухэтапные детекторы, как правило, обеспечивают более высокую точность, но уступают одноэтапным по скорости.

Одноэтапные детекторы (One-stage detectors)

Одноэтапные методы предсказывают классы и координаты объектов за один проход сети, без отдельного этапа генерации регионов. Это делает их значительно быстрее, что критически важно для задач реального времени.

  • YOLO (You Only Look Once) (2016): Одна из самых популярных архитектур. YOLO делит изображение на сетку (например, 7x7). Каждая ячейка сетки отвечает за предсказание нескольких ограничивающих рамок и вероятностей классов для объектов, центр которых попадает в эту ячейку. YOLO обрабатывает изображение целиком, что позволяет ей учитывать глобальный контекст. Недостаток ранних версий — сложность в обнаружении мелких объектов и объектов, расположенных близко друг к другу.
  • SSD (Single Shot MultiBox Detector) (2016): Использует несколько карт признаков разного масштаба для обнаружения объектов разных размеров. SSD также предсказывает рамки и классы за один проход, но, в отличие от YOLO, не использует полносвязные слои в конце, что повышает скорость.
  • RetinaNet (2017): Предложила решение проблемы дисбаланса классов (фон vs. объекты) с помощью новой функции потерь Focal Loss. Эта функция уменьшает вклад легко классифицируемых примеров (фона), фокусируя обучение на сложных примерах (объектах). RetinaNet достигла точности, сопоставимой с двухэтапными детекторами, при скорости одноэтапных.

Трансформеры и Vision Transformer (ViT)

С 2020 года в распознавание объектов активно внедряются архитектуры на основе трансформеров, изначально разработанные для обработки естественного языка.

  • DETR (Detection Transformer) (2020): Рассматривает задачу обнаружения объектов как задачу прямого множественного предсказания (set prediction). DETR использует трансформер для обработки признаков, извлечённых свёрточной сетью, и предсказывает фиксированное количество объектов (с учётом пустых). DETR упрощает пайплайн, отказываясь от многих эвристик (например, NMS), но требует длительного обучения и хуже работает с мелкими объектами.
  • YOLO с трансформерами (YOLOv8, YOLOv9, YOLOv10): Современные версии YOLO (начиная с v8) активно интегрируют элементы трансформеров (например, внимание) в свою архитектуру, что позволяет повысить точность и скорость.

Ключевые наборы данных (Datasets)

Для обучения и оценки алгоритмов распознавания объектов используются крупные аннотированные наборы данных:

  • PASCAL VOC (2005-2012): Один из первых и наиболее влиятельных наборов. Содержит 20 классов объектов (человек, автомобиль, кошка, собака, самолёт и т.д.). Стал стандартом для сравнения алгоритмов на протяжении многих лет.
  • ImageNet (с 2009): Огромный набор данных, содержащий миллионы изображений, размеченных по тысячам категорий. Конкурс ILSVRC (2010-2017) стимулировал развитие глубокого обучения.
  • MS COCO (Microsoft Common Objects in Context) (2014): На сегодняшний день один из самых популярных наборов для распознавания объектов. Содержит 80 классов, изображения с большим количеством объектов в естественных сценах. Отличается более сложными задачами (мелкие объекты, перекрытия, нестандартные ракурсы). MS COCO также включает аннотации для сегментации экземпляров (instance segmentation) и подписи к изображениям (captioning).
  • Open Images (2016): Набор данных от Google, содержащий около 9 миллионов изображений с 600 классами объектов. Отличается большим разнообразием и наличием аннотаций в виде ограничивающих рамок, сегментации и визуальных отношений.

Применение

Распознавание объектов широко применяется в различных сферах:

  • Автономное вождение: Обнаружение других транспортных средств, пешеходов, дорожных знаков, светофоров и препятствий на дороге.
  • Системы видеонаблюдения и безопасности: Автоматическое обнаружение подозрительных предметов, людей, нарушений границ, распознавание лиц.
  • Медицинская диагностика: Обнаружение опухолей, поражений органов, аномалий на рентгеновских снимках, МРТ и КТ.
  • Робототехника: Навигация роботов, захват и манипулирование объектами, взаимодействие с окружающей средой.
  • Розничная торговля: Автоматический учёт товаров на полках, системы бескассовой оплаты (Amazon Go), анализ поведения покупателей.
  • Сельское хозяйство: Обнаружение сорняков, болезней растений, подсчёт плодов и оценка урожайности с помощью дронов.
  • Промышленность: Контроль качества продукции на конвейере, обнаружение дефектов, автоматизация сортировки.
  • Поиск изображений и социальные сети: Автоматическое тегирование фотографий, поиск по содержанию, фильтрация контента.

Критика и ограничения

Несмотря на впечатляющие успехи, распознавание объектов сталкивается с рядом проблем:

  • Зависимость от данных: Для обучения точных моделей требуются огромные размеченные наборы данных, создание которых трудоёмко и дорого. Модели могут быть чувствительны к смещению (bias) в обучающих данных.
  • Обобщаемость: Модели, обученные на одном наборе данных (например, уличные сцены), могут плохо работать на других (например, промышленные объекты или медицинские снимки) без дополнительного обучения (fine-tuning).
  • Вычислительные ресурсы: Обучение и инференс глубоких нейросетей требуют значительных вычислительных мощностей (GPU, TPU), что ограничивает их применение на устройствах с низким энергопотреблением (например, смартфоны, дроны).
  • Уязвимость к атакам: Небольшие, незаметные для человека искажения входного изображения (adversarial perturbations) могут привести к ошибочному распознаванию или полному пропуску объекта.
  • Этические и правовые вопросы: Применение в системах массового наблюдения и распознавания лиц вызывает обеспокоенность по поводу приватности, дискриминации и возможного злоупотребления. В России, например, использование систем распознавания лиц в общественных местах регулируется законодательством о персональных данных.

Источники

  1. Krizhevsky, A., Sutskever, I., & Hinton, G. E. (2012). ImageNet classification with deep convolutional neural networks. Advances in neural information processing systems, 25.
  2. Girshick, R., Donahue, J., Darrell, T., & Malik, J. (2014). Rich feature hierarchies for accurate object detection and semantic segmentation. Proceedings of the IEEE conference on computer vision and pattern recognition.
  3. Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster R-CNN: Towards real-time object detection with region proposal networks. Advances in neural information processing systems, 28.
  4. Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You only look once: Unified, real-time object detection. Proceedings of the IEEE conference on computer vision and pattern recognition.
  5. Liu, W., Anguelov, D., Erhan, D., et al. (2016). SSD: Single shot multibox detector. European conference on computer vision.
  6. Lin, T. Y., Goyal, P., Girshick, R., He, K., & Dollár, P. (2017). Focal loss for dense object detection. Proceedings of the IEEE international conference on computer vision.
  7. Carion, N., Massa, F., Synnaeve, G., et al. (2020). End-to-end object detection with transformers. European conference on computer vision.
  8. Russakovsky, O., Deng, J., Su, H., et al. (2015). ImageNet Large Scale Visual Recognition Challenge. International journal of computer vision, 115(3), 211-252.
  9. Lin, T. Y., Maire, M., Belongie, S., et al. (2014). Microsoft COCO: Common objects in context. European conference on computer vision.
  10. Viola, P., & Jones, M. (2001). Rapid object detection using a boosted cascade of simple features. Proceedings of the 2001 IEEE computer society conference on computer vision and pattern recognition.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →