Від ML-моделі до production-системи: як ми навчили Computer Vision оцінювати руйнування

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

Привіт, ком’юніті! 👋

Хочемо поділитися нашим досвідом переходу від ізольованої ML-моделі до стабільно функціонуючого продукту.

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

Контекст і проблематика

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

Початкова проблема полягала в типовій «пастці ML»: модель показувала гарні метрики на тестовому датасеті, проте реальна цінність з’являється лише тоді, коли система стабільно працює в production з «сирими» реальними супутниковими та аерофотознімками.

Рішення

Команда розробила комплексний пайплайн, який автоматизує процес виявлення, класифікації та оцінки будівель, спираючись на знімки з роздільною здатністю до 0,7 м/піксель (оптимальний баланс між деталізацією та доступністю даних).

Рішення складається з трьох ключових етапів:

  1. Сегментація (виділення контурів): Система окреслює footprints (контури будівель). Для забезпечення стабільної роботи за різних умов (тіні, зміна пір року, щільна забудова, різні кути зйомки), алгоритм використовує комбінацію геометричних та аналітичних моделей, що враховують тип забудови та поверховість.
  2. Класифікація ступеня пошкодження: Виділені об’єкти проходять оцінку стану за чотирма класами: No Visible Damage, Minor Damage, Major Damage, Destroyed. Оскільки межі між класами (наприклад, невеликі тріщини або специфіка вигляду індустріальних об’єктів згори) часто розмиті, автоматична оцінка доповнюється локальними даними.
  3. Оцінка площі та об’єму: За допомогою спеціальної нейромережі та системи коефіцієнтів розраховується об’єм споруди. Це трансформує статус «пошкоджено» у конкретні метрики для розрахунку вартості відновлення.

Технічні виклики

Найбільшим викликом виявилася не сама архітектура нейромереж, а робоче середовище та побудова надійного пайплайну:

  • Неоднорідність даних: Дані різної якості з різних регіонів, обмежена розмітка та нерівномірний розподіл класів. Часто виникає необхідність швидкої адаптації моделі під нові масиви територій.
  • Стабільність пайплайну: Система працює як складний ланцюг: завантаження ➔ препроцесінг ➔ сегментація ➔ класифікація ➔ постобробка ➔ зведення у ГІС. Втрата контролю якості на будь-якому з етапів призводить до непомітного погіршення всієї системи.

Результати та Вплив

  • Точність: Досягнуто точності близько 80% у порівнянні з ручною оцінкою.
  • Human-in-the-Loop: Система слугує потужним аналітичним фундаментом, але враховує, що фінальні рішення приймають люди. Дані групуються на рівні громад/районів, поєднуються з іншими шарами даних та враховують «рівень впевненості» (confidence score) моделі.
  • Наш підхід уже застосовувався для оцінки пошкоджень сотень тисяч будівель у багатьох регіонах України, зокрема у Харківській, Чернігівській, Миколаївській, Херсонській та Київській областях. Дані з цих регіонів стали основою для планування відбудови та пріоритезації робіт на рівні громад, допомагаючи перетворити численні знімки на конкретні рішення.
  • Практична цінність: Проєкт перетворився з цікавого ML-експерименту на реальний дієвий інструмент для планування відновлення та розподілу ресурсів.

А як ваші команди адаптують моделі під нові території та чи виправдав себе підхід human-in-the-loop у ваших production-системах?

👍ПодобаєтьсяСподобалось2
До обраногоВ обраному0
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Підписатись на коментарі