DeftechSenior

Компʼютерний зір

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

Працює
На пристрої, самотньо
Найважчий вхід
Той, якого не було в навчанні
Поріг —
Політика, не метрика

Інференс живе всередині бюджету, і бюджет — це не памʼять GPU

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

БюджетЩо він насправді обмежує
Живлення, у ватахКожен ват на інференс — це не витрачений час польоту чи роботи. Модель конкурує з місією, а не з іншими орендарями.
ТеплоГерметичний корпус на сонці тротлить. Бенчмарк на столі — не те саме число, що бенчмарк у полі через двадцять хвилин.
Затримка на кадрЯкщо платформа рухається, детекція із запізненням на 400 мс описує місце, яке обʼєкт уже залишив. Затримка тут є проблемою точності, а не комфорту.
Памʼять і сховищеВирішує, чи можна зберегти сирі кадри, потрібні пізнішому розслідуванню, — саме їх зазвичай жертвують першими й першими ж їх бракує.
Шлях оновленняМодель, яку не замінити пів року, мусить бути правильною пів року, — а це змінює те, наскільки ви готові її спеціалізувати.

Проблема даних, якої не полагодить жодне навчання

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

  • Зсув сенсора. Модель, навчена на кольоровому зображенні, не переноситься на тепловізійне, а навчена на одній тепловізійній камері часто не переноситься на іншу. Сенсор є частиною навчальних даних, а не їхньою деталлю.
  • Сезон і погода. Листя, сніг, багно, дощ на об’єктиві, низьке сонце просто в сенсор. Модель, перевірена влітку, перевірена на чверті року.
  • Геометрія. Висота, кут і фокусна відстань змінюють кількість пікселів на обʼєкті на порядок, і детектор, навчений на одному масштабі, тихо провалюється на іншому.
  • Свідоме приховування. На відміну від майже будь-якого іншого домену, тут хтось активно працює над тим, щоб детекція не спрацювала: укриття, макети, деформувальні патерни. Розподіл не просто інший — його обирає супротивник.
  • Гранична незбалансованість класів. Те, що вас цікавить, може траплятися в одному кадрі з пʼятдесяти тисяч, тож модель, що завжди каже «нічого немає», дає 99,998% і не варта нічого.

Практична відповідь не в кращій архітектурі. Вона в конвеєрі даних, що замикає цикл: кожне розгортання записує справжні кадри, процес розбору розмічає цікаві — особливо пропуски й хибні тривоги, — і вони входять до постійного набору оцінок, згрупованого за умовами. Це та сама дисципліна, що й регресійний набір із розділу QA, прикладена до моделі, — і саме вона перетворює польовий досвід на те, що успадкує наступна версія, а не на те, що памʼятає інженер.

Поріг — це рішення політики з названим власником

Детектор не видає «так» чи «ні». Він видає число, і хтось перетворює це число на «так» або «ні», обираючи, де проходить межа. Цей вибір зазвичай робить той, хто налаштовував модель, у вівторок, за валідаційним набором, — і це найвагоміше рішення в системі.

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

Обидва напрямки помилки мають наслідки, що виходять за межі моделі. Забагато хибних спрацювань — і оператор перестає довіряти сповіщенням; не через недбалість, а через арифметику: потік, що переважно є шумом, неможливо опрацьовувати. Цей збій виглядає людською проблемою, а спричинений числом. Забагато пропусків — і не стається взагалі нічого: ні сповіщення, ні запису, ні зворотного звʼязку, і система тихо звітує про чудову точність, поки те, заради чого вона існує, проходить повз. Із двох гірший другий — саме тому, що він не дає жодного сигналу про проблему.

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

Що треба записати, щоб хибну відповідь можна було розслідувати

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

  • Кадр або його фрагмент

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

  • Ідентичність моделі

    Яка версія моделі, які ваги, який поріг, яка попередня обробка. Через пів року саме це відрізняє регресію моделі від зміненого середовища.

  • Умови

    Сенсор, висота, кут, час, температура. Саме вони дають потім різати якість за умовами — єдиний корисний спосіб її читати.

  • Що зробила людина

    Підтвердила, відхилила, проігнорувала. Це безкоштовно розмічені дані рівно потрібного розподілу, і більшість систем їх викидає.

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

Антипатерни, які варто назвати

  • Звітувати одне число точності, усереднене по умовах: воно ховає саме ті випадки, заради яких систему будували.
  • Міряти на робочій станції й везти в герметичний корпус на сонці, де та сама модель працює втричі повільніше.
  • Поріг, обраний тим, хто налаштовував модель, без письмового запису про те, чим пожертвували.
  • Немає смуги непевності: детектор упевнено відповідає на входах, подібних до яких не бачив ніколи.
  • Викидати підтвердження й відхилення операторів — безкоштовно розмічені дані рівно потрібного розподілу.

Коли це застосовувати

Застосовуйте, коли

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

Уникайте, коли

  • Як загальну настанову з навчання чи сервінгу моделей: цим володіють сторінки AI/LLM та MLOps, і ця на них спирається.
  • Як підставу дозволити моделі вирішувати, а не детектувати: межа рішення належить огляду й сторінці C2.
  • З єдиною сукупною цифрою точності — метрикою, що найімовірніше є водночас вражаючою й оманливою.
  • Там, де людина однаково може переглянути кожен кадр: тоді більшість цієї механіки є зайвим тягарем.

Було корисно?

Поділіться з тим, хто працює над тією ж задачею.