Skip to content

Latest commit

 

History

History
179 lines (101 loc) · 14.7 KB

File metadata and controls

179 lines (101 loc) · 14.7 KB

Виявлення об'єктів

Моделі класифікації зображень, з якими ми працювали раніше, брали зображення і видавали категоріальний результат, наприклад, клас "число" у задачі MNIST. Однак у багатьох випадках нам недостатньо просто знати, що на зображенні є об'єкти — ми хочемо визначити їх точне розташування. Саме це є метою виявлення об'єктів.

Виявлення об'єктів

Зображення з веб-сайту YOLO v2

Наївний підхід до виявлення об'єктів

Припустимо, ми хочемо знайти кота на зображенні. Дуже наївний підхід до виявлення об'єктів може виглядати так:

  1. Розбити зображення на кілька плиток.
  2. Запустити класифікацію зображень для кожної плитки.
  3. Ті плитки, які дають достатньо високу активацію, можна вважати такими, що містять потрібний об'єкт.

Наївне виявлення об'єктів

Зображення з зошита вправ

Однак цей підхід далекий від ідеального, оскільки він дозволяє алгоритму дуже неточно визначати межі об'єкта. Для більш точного визначення необхідно використовувати якийсь вид регресії, щоб передбачити координати межових рамок — і для цього потрібні спеціальні набори даних.

Регресія для виявлення об'єктів

Ця стаття в блозі пропонує чудове введення у виявлення форм.

Набори даних для виявлення об'єктів

Ви можете зустріти наступні набори даних для цієї задачі:

  • PASCAL VOC — 20 класів
  • COCO — Загальні об'єкти в контексті. 80 класів, межові рамки та маски сегментації

COCO

Метрики для виявлення об'єктів

Перетин над об'єднанням

Для класифікації зображень легко виміряти, наскільки добре працює алгоритм, але для виявлення об'єктів потрібно оцінити як правильність класу, так і точність визначення розташування межової рамки. Для останнього використовується так звана Перетин над об'єднанням (IoU), яка вимірює, наскільки добре дві рамки (або дві довільні області) перекриваються.

IoU

Рисунок 2 з цієї чудової статті про IoU

Ідея проста — ми ділимо площу перетину між двома фігурами на площу їх об'єднання. Для двох ідентичних областей IoU буде дорівнювати 1, а для повністю роз'єднаних областей — 0. В інших випадках значення буде варіюватися від 0 до 1. Зазвичай враховуються лише ті межові рамки, для яких IoU перевищує певне значення.

Середня точність

Припустимо, ми хочемо оцінити, наскільки добре розпізнається певний клас об'єктів $C$. Для цього використовується метрика Середня точність, яка обчислюється наступним чином:

  1. Розглядається крива Точність-Відклик, яка показує точність залежно від порогового значення виявлення (від 0 до 1).
  2. Залежно від порогу, ми отримаємо більше або менше об'єктів, виявлених на зображенні, і різні значення точності та відклику.
  3. Крива виглядатиме так:

Зображення з NeuroWorkshop

Середня точність для даного класу $C$ — це площа під цією кривою. Точніше, вісь відклику зазвичай ділиться на 10 частин, і точність усереднюється за всіма цими точками:

$$ AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10}) $$

AP та IoU

Ми враховуємо лише ті виявлення, для яких IoU перевищує певне значення. Наприклад, у наборі даних PASCAL VOC зазвичай $\mbox{IoU Threshold} = 0.5$, тоді як у COCO AP вимірюється для різних значень $\mbox{IoU Threshold}$.

Зображення з NeuroWorkshop

Середня середня точність — mAP

Основною метрикою для виявлення об'єктів є Середня середня точність, або mAP. Це значення середньої точності, усереднене за всіма класами об'єктів, а іноді також за $\mbox{IoU Threshold}$. Детальніше процес обчислення mAP описаний у цій статті), а також тут із прикладами коду.

Різні підходи до виявлення об'єктів

Існує два основних класи алгоритмів виявлення об'єктів:

  • Мережі пропозицій регіонів (R-CNN, Fast R-CNN, Faster R-CNN). Основна ідея полягає у створенні регіонів інтересу (ROI) і запуску CNN для них, шукаючи максимальну активацію. Це трохи схоже на наївний підхід, за винятком того, що ROI створюються більш розумним способом. Одним із головних недоліків таких методів є те, що вони повільні, оскільки потрібні численні проходи класифікатора CNN через зображення.
  • Однопрохідні (YOLO, SSD, RetinaNet) методи. У цих архітектурах мережа спроектована так, щоб передбачати як класи, так і ROI за один прохід.

R-CNN: CNN на основі регіонів

R-CNN використовує Selective Search для створення ієрархічної структури регіонів ROI, які потім проходять через CNN для вилучення ознак і SVM-класифікатори для визначення класу об'єкта, а також лінійну регресію для визначення координат межової рамки. Офіційна стаття

RCNN

Зображення з van de Sande et al. ICCV’11

RCNN-1

Зображення з цієї статті

F-RCNN - Fast R-CNN

Цей підхід схожий на R-CNN, але регіони визначаються після застосування шарів згортки.

FRCNN

Зображення з офіційної статті, arXiv, 2015

Faster R-CNN

Основна ідея цього підходу полягає у використанні нейронної мережі для прогнозування ROI — так званої мережі пропозицій регіонів. Стаття, 2016

FasterRCNN

Зображення з офіційної статті

R-FCN: Повністю згорткова мережа на основі регіонів

Цей алгоритм ще швидший, ніж Faster R-CNN. Основна ідея полягає у наступному:

  1. Ми вилучаємо ознаки за допомогою ResNet-101.
  2. Ознаки обробляються картою оцінок, чутливою до позиції. Кожен об'єкт із $C$ класів ділиться на $k\times k$ регіонів, і ми навчаємося прогнозувати частини об'єктів.
  3. Для кожної частини з $k\times k$ регіонів усі мережі голосують за класи об'єктів, і вибирається клас об'єкта з максимальним голосом.

r-fcn image

Зображення з офіційної статті

YOLO - You Only Look Once

YOLO — це алгоритм реального часу з одним проходом. Основна ідея полягає у наступному:

  • Зображення ділиться на $S\times S$ регіони.
  • Для кожного регіону CNN прогнозує $n$ можливих об'єктів, координати межової рамки та довіру=ймовірність * IoU.

YOLO

Зображення з офіційної статті

Інші алгоритми

✍️ Вправи: Виявлення об'єктів

Продовжуйте навчання у наступному зошиті:

ObjectDetection.ipynb

Висновок

У цьому уроці ви здійснили швидкий огляд різних способів, якими можна виконувати виявлення об'єктів!

🚀 Виклик

Прочитайте ці статті та зошити про YOLO і спробуйте їх самостійно:

Огляд та самостійне навчання