Компʼютерний зір
Компʼютерний зір — це практика перетворювати зображення з камери на рішення, за якими діє машина, і модель тут рідко є складною частиною. Зір тут складний тому, що він працює на пристрої з бюджетом живлення й без мережі, на зображеннях, не схожих на ті, на яких його навчали, і тому, що його вихід живить рішення, у якому за два типи помилок платять різні люди. Тут — про бюджет на краю, про проблему даних, якої не полагодить жодне навчання, про поріг як рішення політики і про те, що треба записувати, аби хибну відповідь узагалі можна було розслідувати.
- Працює
- На пристрої, самотньо
- Найважчий вхід
- Той, якого не було в навчанні
- Поріг —
- Політика, не метрика
Інференс живе всередині бюджету, і бюджет — це не памʼять GPU
Обслуговування моделей у дата-центрі оптимізують за пропускною здатністю на долар. На пристрої обмеження інші за природою, а не за ступенем, і три з них узагалі не стосуються обчислень. Загальний матеріал про сервінг живе на сторінках MLOps; далі — лише те, що змінюється.
| Бюджет | Що він насправді обмежує |
|---|---|
| Живлення, у ватах | Кожен ват на інференс — це не витрачений час польоту чи роботи. Модель конкурує з місією, а не з іншими орендарями. |
| Тепло | Герметичний корпус на сонці тротлить. Бенчмарк на столі — не те саме число, що бенчмарк у полі через двадцять хвилин. |
| Затримка на кадр | Якщо платформа рухається, детекція із запізненням на 400 мс описує місце, яке обʼєкт уже залишив. Затримка тут є проблемою точності, а не комфорту. |
| Памʼять і сховище | Вирішує, чи можна зберегти сирі кадри, потрібні пізнішому розслідуванню, — саме їх зазвичай жертвують першими й першими ж їх бракує. |
| Шлях оновлення | Модель, яку не замінити пів року, мусить бути правильною пів року, — а це змінює те, наскільки ви готові її спеціалізувати. |
Проблема даних, якої не полагодить жодне навчання
Детектор вивчає той розподіл, який йому показали. У розгортанні він зустрічає інший, і розрив не є випадковим шумом: він систематичний, великий і достатньо передбачуваний, щоб його планувати. Це найбільше джерело польових збоїв у системах зору, і воно майже ніколи не є помилкою моделювання.
- Зсув сенсора. Модель, навчена на кольоровому зображенні, не переноситься на тепловізійне, а навчена на одній тепловізійній камері часто не переноситься на іншу. Сенсор є частиною навчальних даних, а не їхньою деталлю.
- Сезон і погода. Листя, сніг, багно, дощ на об’єктиві, низьке сонце просто в сенсор. Модель, перевірена влітку, перевірена на чверті року.
- Геометрія. Висота, кут і фокусна відстань змінюють кількість пікселів на обʼєкті на порядок, і детектор, навчений на одному масштабі, тихо провалюється на іншому.
- Свідоме приховування. На відміну від майже будь-якого іншого домену, тут хтось активно працює над тим, щоб детекція не спрацювала: укриття, макети, деформувальні патерни. Розподіл не просто інший — його обирає супротивник.
- Гранична незбалансованість класів. Те, що вас цікавить, може траплятися в одному кадрі з пʼятдесяти тисяч, тож модель, що завжди каже «нічого немає», дає 99,998% і не варта нічого.
Практична відповідь не в кращій архітектурі. Вона в конвеєрі даних, що замикає цикл: кожне розгортання записує справжні кадри, процес розбору розмічає цікаві — особливо пропуски й хибні тривоги, — і вони входять до постійного набору оцінок, згрупованого за умовами. Це та сама дисципліна, що й регресійний набір із розділу QA, прикладена до моделі, — і саме вона перетворює польовий досвід на те, що успадкує наступна версія, а не на те, що памʼятає інженер.
Поріг — це рішення політики з названим власником
Детектор не видає «так» чи «ні». Він видає число, і хтось перетворює це число на «так» або «ні», обираючи, де проходить межа. Цей вибір зазвичай робить той, хто налаштовував модель, у вівторок, за валідаційним набором, — і це найвагоміше рішення в системі.
Обидва напрямки помилки мають наслідки, що виходять за межі моделі. Забагато хибних спрацювань — і оператор перестає довіряти сповіщенням; не через недбалість, а через арифметику: потік, що переважно є шумом, неможливо опрацьовувати. Цей збій виглядає людською проблемою, а спричинений числом. Забагато пропусків — і не стається взагалі нічого: ні сповіщення, ні запису, ні зворотного звʼязку, і система тихо звітує про чудову точність, поки те, заради чого вона існує, проходить повз. Із двох гірший другий — саме тому, що він не дає жодного сигналу про проблему.
Ще одна властивість належить цій політиці й зазвичай відсутня: системі потрібен спосіб сказати «не знаю». Детектор, змушений відповідати бінарно на кожному кадрі, впевнено відповість на кадрах, подібних до яких він не бачив ніколи, — а це рівно протилежне до бажаного. Явна смуга непевності — нижче порога сповіщення, вище порога ігнорування, скерована на розбір, а не на оператора — коштує мало, і саме там уперше проступають цікаві збої.
Що треба записати, щоб хибну відповідь можна було розслідувати
Детекцію, яку неможливо відтворити, неможливо розібрати, а система, чиї помилки неможливо розібрати, не покращується — вона накопичує думки про себе. Запис тут обмежений сховищем і тим, що пристрій може не повернутися, тож його треба проєктувати, а не вмикати.
Кадр або його фрагмент
Без зображення розслідування немає — є суперечка. Якщо сховище не дозволяє зберігати все, зберігайте детекції й вибірку пропусків, а не рівномірну вибірку нічого конкретного.
Ідентичність моделі
Яка версія моделі, які ваги, який поріг, яка попередня обробка. Через пів року саме це відрізняє регресію моделі від зміненого середовища.
Умови
Сенсор, висота, кут, час, температура. Саме вони дають потім різати якість за умовами — єдиний корисний спосіб її читати.
Що зробила людина
Підтвердила, відхилила, проігнорувала. Це безкоштовно розмічені дані рівно потрібного розподілу, і більшість систем їх викидає.
Остання картка — та, з якою варто щось зробити цього тижня. Рішення операторів є розміченим потоком, породженим саме тим розгортанням, яке вас цікавить, без витрат на анотацію, — і це найкоротший шлях від «система інколи помиляється» до кейса в наборі оцінок. Щоб їх зібрати, інтерфейс має робити «підтвердити» й «відхилити» однаково легкими, а це рішення дизайну в шарі C2, а не в моделі.
Антипатерни, які варто назвати
- Звітувати одне число точності, усереднене по умовах: воно ховає саме ті випадки, заради яких систему будували.
- Міряти на робочій станції й везти в герметичний корпус на сонці, де та сама модель працює втричі повільніше.
- Поріг, обраний тим, хто налаштовував модель, без письмового запису про те, чим пожертвували.
- Немає смуги непевності: детектор упевнено відповідає на входах, подібних до яких не бачив ніколи.
- Викидати підтвердження й відхилення операторів — безкоштовно розмічені дані рівно потрібного розподілу.
Коли це застосовувати
Застосовуйте, коли
- Коли інференс мусить працювати на пристрої, у бюджеті живлення, тепла й затримки, виміряному наскрізь.
- Коли умови розгортання відрізняються від навчального набору сенсором, сезоном, геометрією чи свідомим приховуванням.
- Коли встановлюєте поріг детекції: він потребує письмової політики, обох часток помилок і названого власника.
- Коли проєктуєте, що записує пристрій, — щоб хибну відповідь через пів року ще можна було розслідувати.
Уникайте, коли
- Як загальну настанову з навчання чи сервінгу моделей: цим володіють сторінки AI/LLM та MLOps, і ця на них спирається.
- Як підставу дозволити моделі вирішувати, а не детектувати: межа рішення належить огляду й сторінці C2.
- З єдиною сукупною цифрою точності — метрикою, що найімовірніше є водночас вражаючою й оманливою.
- Там, де людина однаково може переглянути кожен кадр: тоді більшість цієї механіки є зайвим тягарем.
Було корисно?
Поділіться з тим, хто працює над тією ж задачею.