AI-For-Beginners/translations/uk/lessons/4-ComputerVision/11-ObjectDetection
leestott 3ac667ea23 🌐 Update translations via Co-op Translator 2025-08-30 10:45:29 +00:00
..
lab 🌐 Update translations via Co-op Translator 2025-08-26 01:51:51 +00:00
ObjectDetection.ipynb 🌐 Update translations via Co-op Translator 2025-08-30 10:45:29 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-08-26 01:51:51 +00:00

README.md

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

Моделі класифікації зображень, які ми розглядали раніше, брали зображення і видавали категоріальний результат, наприклад, клас "число" у задачі 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. ICCV11

RCNN-1

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

F-RCNN - Швидкий 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 і спробуйте їх самостійно:

Тест після лекції

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

Завдання: Виявлення об'єктів

Відмова від відповідальності:
Цей документ було перекладено за допомогою сервісу автоматичного перекладу Co-op Translator. Хоча ми прагнемо до точності, звертаємо вашу увагу, що автоматичні переклади можуть містити помилки або неточності. Оригінальний документ на його рідній мові слід вважати авторитетним джерелом. Для критично важливої інформації рекомендується професійний людський переклад. Ми не несемо відповідальності за будь-які непорозуміння або неправильні тлумачення, що виникли внаслідок використання цього перекладу.