Технология обнаружения объектов быстро развивается и находит новые применения в различных отраслях, позволяя машинам воспринимать и интерпретировать визуальную информацию из реального мира для решения широкого круга задач. Он используется в медицинских учреждениях для решения различных задач, таких как идентификация медицинских изображений анатомических ориентиров, обнаружение опухолей или поражений; в автономном вождении обнаружение объектов помогает обнаруживать такие объекты, как транспортные средства, велосипедисты и препятствия…

Но для выполнения этого типа аннотации автоматически обучаются алгоритмы обнаружения объектов, такие как R-CNN, YOLO, SSD. Давайте вместе с VinLab познакомимся с архитектурой, функциями и производительностью этих трех знаменитых алгоритмов.

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

1. Быстрее R-CNN

Что такое R-CNN?

R-CNN, или регионы с функциями CNN, представляет собой модель идентификации объектов, в которой для локализации и сегментации объектов используются нисходящие предложения регионов и высокопроизводительные CNN. Он использует выборочный поиск, чтобы найти ряд потенциальных областей объекта ограничивающей рамки («области интереса»), а затем независимо извлекает функции для классификации из каждой области.

Ключевые компоненты Faster R-CNN

Давайте откроем для себя 4 компонента алгоритмов Faster R-CNN

  1. Сеть предложений региона (RPN): Faster R-CNN вводит RPN, который разделяет сверточные слои с сетью обнаружения объектов. RPN генерирует предложения областей, которые являются потенциальными предложениями ограничительной рамки для объектов на изображении. RPN предназначен для эффективного предложения областей интереса (RoI) с использованием рамок привязки в различных масштабах и соотношениях сторон, а также для прогнозирования вероятности присутствия объекта и координат ограничивающих рамок.
  2. Объединение области интереса (RoI): Объединение области интереса используется для выравнивания объектов в каждой предлагаемой области до фиксированного размера, который служит в качестве входных данных для последующих уровней сети. Это позволяет Faster R-CNN эффективно обрабатывать объекты разных размеров и соотношений сторон, а также позволяет обучать сеть от начала до конца.
  3. Сверточная нейронная сеть (CNN): Faster R-CNN использует CNN для извлечения функций из входного изображения и областей интереса, сгенерированных RPN. CNN обычно состоит из нескольких сверточных слоев, за которыми следуют полностью связанные слои, которые изучают отличительные признаки входного изображения для обнаружения объектов.
  4. Глава классификации и регрессии: Faster R-CNN имеет заголовок классификации и заголовок регрессии, которые используют функции из объединения RoI в качестве входных данных. Головка классификации предсказывает вероятность того, что каждая область исследования принадлежит разным классам объектов, а головка регрессии предсказывает уточненные координаты ограничивающих рамок для каждого класса.

2. YOLO (Ты выглядишь только один)

Что такое YOLO?

You Only Look Once (YOLO) предлагает использовать сквозную нейронную сеть, которая одновременно прогнозирует ограничивающие прямоугольники и вероятности классов.

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

Ключевые компоненты YOLO

YOLO состоит из 6 компонентов:

  1. Обнаружение на основе сетки: YOLO делит входное изображение на сетку ячеек и прогнозирует ограничивающие рамки и вероятности классов непосредственно на этой сетке. Каждая ячейка сетки отвечает за прогнозирование фиксированного количества ограничивающих прямоугольников (часто 2 или 3) и связанных с ними вероятностей классов. Этот подход на основе сетки позволяет YOLO обнаруживать объекты в разных местах изображения за один проход по сети, что делает его очень эффективным.
  2. Блоки привязки: YOLO использует блоки привязки, также известные как прежние блоки, которые представляют собой предопределенные формы ограничивающих блоков с различными соотношениями сторон и масштабами. Эти рамки привязки используются для прогнозирования координат ограничивающих рамок для обнаруженных объектов. YOLO предсказывает смещения (т. е. координаты) анкерных рамок относительно наземных ограничивающих рамок, что позволяет точно локализовать объекты.
  3. Сверточная нейронная сеть (CNN): YOLO использует CNN в качестве базовой сети для извлечения признаков. Эта CNN обрабатывает входное изображение и генерирует карты характеристик, которые захватывают характеристики объекта в разных масштабах и разрешениях.
  4. Объединение функций: YOLO объединяет карты функций из разных слоев CNN, чтобы захватить функции как низкого, так и высокого уровня. Это позволяет обнаруживать объекты разного размера и сложности.
  5. Немаксимальное подавление (NMS): после прогнозирования вероятностей классов и координат ограничивающей рамки YOLO выполняет немаксимальное подавление (NMS) для фильтрации избыточных и перекрывающихся ограничивающих рамок. NMS помогает выбрать наиболее надежные и точные ограничивающие рамки для окончательных результатов обнаружения.
  6. Обнаружение нескольких классов: YOLO способен обнаруживать объекты из нескольких классов за один проход нейронной сети. Он предсказывает вероятности классов для каждой ограничивающей рамки, позволяя обнаруживать объекты нескольких классов в одном кадре.

3. SSD (обнаружение одиночного выстрела)

Что такое SSD?

SSD (Single Shot MultiBox Detector) — это алгоритм обнаружения объектов, предложенный Wei Liu et al. в 2016 году. Это популярный алгоритм обнаружения объектов в реальном времени, известный своей точностью и эффективностью. SSD основан на концепции якорных ящиков, аналогичной YOLO, но с некоторыми ключевыми отличиями в архитектуре и подходе.

Ключевые компоненты SSD

7 компонентов Ключевые компоненты SSD включают в себя:

  1. Базовая сверточная сеть: SSD начинается с базовой сверточной сети, обычно это предварительно обученная глубокая нейронная сеть, такая как VGG, ResNet или MobileNet, которая служит экстрактором признаков. Эта сеть обрабатывает входное изображение и генерирует серию карт объектов с разным разрешением.
  2. Многомасштабные карты объектов: SSD использует набор карт объектов с разным разрешением, полученных из базовой сверточной сети. Эти карты характеристик фиксируют характеристики объектов в разных масштабах, что позволяет SSD эффективно обнаруживать объекты различных размеров.
  3. Якорные поля: SSD использует якорные поля, также известные как предварительные поля, в каждом местоположении карты объектов. Эти якорные рамки представляют собой предопределенные формы ограничивающих рамок с различными соотношениями сторон и масштабами. SSD прогнозирует смещения и вероятности классов для этих блоков привязки, которые служат эталонными блоками для обнаружения объектов.
  4. Слои локализации: SSD добавляет слои локализации поверх каждой карты объектов, чтобы предсказать смещения (т. е. координаты) рамок привязки по отношению к ограничивающим рамкам наземной истины. Эти смещения используются для уточнения полей привязки и повышения точности локализации обнаруженных объектов.
  5. Слои классификации: SSD добавляет слои классификации поверх каждой карты объектов, чтобы предсказать вероятности классов для каждого поля привязки. Эти вероятности представляют собой вероятность того, что блок привязки содержит объект из определенного класса. SSD использует многоклассовую классификацию для прогнозирования классов объектов, что позволяет обнаруживать объекты из нескольких классов за один проход.
  6. Feature Pyramid Network (FPN): SSD использует Feature Pyramid Network (FPN) для слияния и использования карт характеристик из разных разрешений. Это позволяет захватывать как мелкозернистые, так и крупнозернистые функции, повышая точность обнаружения объектов.
  7. Немаксимальное подавление (NMS): после прогнозирования вероятностей классов и смещений для рамок привязки SSD выполняет немаксимальное подавление (NMS) для фильтрации избыточных и перекрывающихся ограничивающих рамок. NMS помогает выбрать наиболее надежные и точные ограничивающие рамки для окончательных результатов обнаружения.

Спасибо, что прочитали!

Если вы ищете информацию об искусственном интеллекте, машинном обучении, общих концепциях данных или медицинских приложениях для обработки данных, подпишитесь на нас, чтобы получить больше полезных знаний по этим темам.

Контакт

Электронная почта: [email protected]

Твиттер: https://twitter.com/VinLab_io

YouTube: https://www.youtube.com/@Vinlab-MedicalImageAnnotation

Проект с открытым исходным кодом: https://github.com/vinbigdata-medical/vindr-lab