
Комп'ютерний зір (computer vision, CV) є галуззю штучного інтелекту, яка вчить програми знаходити й розпізнавати об'єкти на зображеннях і відео. Камера дає лише масив чисел. Завдання CV полягає в тому, щоб перетворити ці числа на відповідь: що на кадрі, де саме і що з ним відбувається.
Нижче про те, як це працює, які задачі розв'язує комп'ютерний зір, де його вже використовують і як увійти в напрям, якщо ти пишеш код або працюєш із залізом.
Для програми фото є таблицею чисел. Кольорове зображення 640×480 пікселів зберігається як масив 480×640×3: висота, ширина і три канали кольору. Кожне значення від 0 до 255 описує яскравість червоного, зеленого або синього в одній точці.
З цим масивом можна працювати двома способами.
Класичні алгоритми. Інженер сам описує правила: розмий шум, знайди краї, виділи контури, порахуй об'єкти. Цим займається бібліотека OpenCV. Такий підхід швидкий, передбачуваний і добре працює там, де умови стабільні: однакове освітлення, однаковий фон, однакові деталі на конвеєрі.
Нейромережі. Правила не пишуть вручну. Модель показують тисячі розмічених прикладів, і вона сама підбирає фільтри, які відрізняють один клас від іншого. Згорткова мережа (CNN) по суті робить те саме, що й класичний фільтр, тільки її ядра налаштовуються на даних. Сучасні детектори на кшталт YOLO та RT-DETR будуються на цьому принципі.
На практиці ці підходи поєднують. Нейромережа знаходить об'єкт, а класичний алгоритм уточнює його межі чи рахує розміри.
Найчастіше в продуктах трапляються детекція і трекінг. Саме з них зазвичай починають навчання, бо результат видно одразу: рамка або з'являється на правильному місці, або ні.
Споживчі продукти. Фільтри, які накладають маски на обличчя, розумні камери, що відрізняють людину від кота, сканери документів у банківських застосунках. Частина таких продуктів створена в Україні: у програмі Computer Vision Beetroot Academy окремо розбирають кейси Looksery (згодом Snapchat), Reface, Ajax Systems і Petcube.
Промисловість. Контроль якості на лінії, де камера шукає подряпини й відколи швидше за людину. Підрахунок продукції, перевірка маркування, моніторинг безпеки на виробництві.
Агро. Виявлення хвороб рослин за фото листя, оцінка стану посівів з аерознімків, сортування врожаю.
Медицина. Допомога лікарю в аналізі рентгенівських і МРТ-знімків. Остаточне рішення тут ухвалює людина, а модель підсвічує ділянки, на які варто подивитися.
Робототехніка й dual-use. Автономні роботи, складські системи, аналіз аерофото і тепловізійних даних. Для інженера це ті самі алгоритми, тільки дані інші: кадр знято згори, об'єкти дрібні, а тепловізор дає одноканальне зображення замість кольорового.
Штучний інтелект є найширшим поняттям. Машинне навчання є його частиною: програми, які вчаться на даних замість прописаних правил. Комп'ютерний зір є прикладною областю, де машинне навчання застосовують до зображень і відео.
Звідси практичний висновок для кар'єри. CV Engineer зазвичай знає ML-основи, але глибоко працює з одним типом даних і з обмеженнями заліза, на якому модель має працювати. Детальніше про роль ми поговоримо в іншій статті.
Базовий набір, з яким працюють у більшості команд:
Для старту достатньо Python і Google Colab: GPU для тренування Google надає безкоштовно, тож власна відеокарта на першому етапі не потрібна.
Найкоротший шлях має той, хто вже програмує. Досвіду з machine learning для старту не треба. Вища математика теж не є обов'язковою умовою: щоб працювати з детекторами, вистачить розуміння масивів і матриць, а складніші речі засвоюються на практиці.
Типова послідовність виглядає так:
Кожен із цих кроків ми розібрали окремо у наступних статтях.