💻 Інформатика · ШІ
📅 Березень 2026⏱ 12 хв🟡 Середній · Останнє оновлення: 23 червня 2026 р.

Основи комп'ютерного зору: від пікселів до розуміння

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

1. Представлення та попередня обробка зображень

Цифрове зображення — це 2D-масив (або 3D-тензор для кольору) цілих значень пікселів. Для RGB-зображення висотою H, шириною W тензор має форму [H × W × 3], де кожен канал зберігає значення 0–255.

Колірні простори: RGB: (R, G, B) — адитивна колірна модель, залежна від пристрою HSV: (відтінок Hue 0-360°, насиченість Saturation 0-1, яскравість Value 0-1) — перцептивніша, корисна для сегментації та відстеження за кольором Відтінки сірого: I = 0.299R + 0.587G + 0.114B (вагування яскравості) YCbCr: використовується у стисненні JPEG; Y=яскравість, Cb/Cr=канали кольоровості Нормалізація (потрібна перед подачею в нейронну мережу): x_norm = (x - μ_channel) / σ_channel поканальна нормалізація Середнє ImageNet: μ = [0.485, 0.456, 0.406], σ = [0.229, 0.224, 0.225] Без нормалізації: великі градієнти та нестабільне навчання Аугментація зображень (розширення навчальних даних): випадкове горизонтальне віддзеркалення, випадкове обрізання до 224×224, колірний джитер, поворот, випадкове стирання — штучно розширює навчальний набір, покращує узагальнення

2. Згортки та фільтри

Згортка проводить невелике ядро (фільтр) по зображенню, обчислюючи зважену суму в кожній позиції. Ця операція — основний будівельний блок CNN:

Дискретна 2D-згортка: (I * K)[i,j] = Σ_m Σ_n I[i+m, j+n] · K[m,n] Для ядра гаусового розмиття 3×3: K = (1/16) × [[1,2,1], [2,4,2], [1,2,1]] → згладжує шум (фільтр нижніх частот) Детектор країв Собеля (горизонтальний градієнт): K_x = [[-1, 0, +1], [-2, 0, +2], [-1, 0, +1]] |∇I| = √(G_x² + G_y²) → величина краю θ = arctan(G_y / G_x) → напрямок краю Розмір вихідної карти ознак: Вхід: H × W × C_in Ядро: k×k, C_out фільтрів, крок s, доповнення p Вихід: [(H + 2p - k)/s + 1] × [(W + 2p - k)/s + 1] × C_out Для k=3, s=1, p=1 (доповнення «same»): розмір виходу = H × W (незмінний) Для k=3, s=2, p=1 (з кроком): розмір виходу ≈ H/2 × W/2 (зменшення розміру вдвічі)

3. Архітектура CNN

CNN складає кілька типів шарів, щоб поступово навчатися ознак вищого рівня:

Архітектура VGG-16 (2014): Вхід: 224×224×3 Блок 1: 2× [Conv 3×3, 64] + MaxPool 2×2 → 112×112×64 Блок 2: 2× [Conv 3×3, 128] + MaxPool → 56×56×128 Блок 3: 3× [Conv 3×3, 256] + MaxPool → 28×28×256 Блок 4: 3× [Conv 3×3, 512] + MaxPool → 14×14×512 Блок 5: 3× [Conv 3×3, 512] + MaxPool → 7×7×512 FC 4096 → FC 4096 → FC 1000 (softmax) → ймовірності класів Усього параметрів: ~138 млн Ідея ResNet (2015 — перемога на ILSVRC): пропускні з'єднання: x → Conv → BN → ReLU → Conv → BN → (+x) → ReLU Дозволяє навчати мережі з 50–152+ шарів без затухання градієнтів. Ключове: мережа навчається залишку F(x) = H(x) - x, а не H(x) безпосередньо. Помилка top-5 на ImageNet: 3.57% (перевершує людську ~5.1%)

4. Класичне виявлення ознак

До глибокого навчання в комп'ютерному зорі домінували вручну сконструйовані детектори ознак, які залишаються актуальними для легких застосувань і геометричних задач:

5. Виявлення об'єктів: YOLO та R-CNN

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

Двоетапна: сімейство R-CNN (Region-based CNN) 1. Мережа пропозицій регіонів (RPN) генерує ~2000 кандидатних областей інтересу 2. З кожної RoI витягуються ознаки й вона класифікується незалежно Faster R-CNN (2015): RPN ділить згортковий кістяк з головою детектора ~5 fps на GPU, ~70 mAP на COCO Точна, але відносно повільна для роботи в реальному часі Одноетапна: YOLO (You Only Look Once, Редмон 2016) Один прямий прохід через мережу. Зображення поділяється на сітку S×S (напр., 13×13 для YOLOv3 при вході 416×416) Кожна комірка передбачає B обмежувальних рамок з довірою + C ймовірностей класів. Вихідний тензор: S×S×(B×5 + C), де 5 = {x,y,w,h,довіра} YOLOv8 (2023): ~50+ fps при 640×640, ~53 mAP на COCO Без якорів, модулі C3, постобробка NMS (придушення немаксимумів, Non-Maximum Suppression) IoU (перетин до об'єднання): IoU = Area(A∩B) / Area(A∪B) Метрика якості обмежувальної рамки: IoU > 0.5 зазвичай вважається «правильним» mAP (середня усереднена точність): площа під кривою точність-повнота, усереднена по всіх класах і порогах IoU

6. Семантична та екземплярна сегментація

Замість обмежувальних рамок сегментація присвоює мітку класу кожному пікселю:

Архітектура кодувальник–декодувальник (U-Net): кодує зображення у вузьке представлення (стискальний шлях), потім декодує назад до повної роздільності (розширювальний шлях) з пропускними з'єднаннями, що несуть ознаки високої роздільності від кодувальника. Спершу розроблена для сегментації біомедичних зображень з обмеженими даними. Пропускні з'єднання критично важливі: декодувальнику потрібні і семантичний контекст (з глибоких шарів), і просторова деталізація (з ранніх шарів), щоб розмістити точні межі.

7. Сучасний зір: трансформери та далі

Візуальні трансформери (ViT, 2020) застосовують механізм самоуваги NLP-трансформерів безпосередньо до зображень: