AI-система візуальної оцінки пошкоджень авто за фото
Ми розробили AI-систему візуальної оцінки пошкоджень автомобіля за фото. Вона вирішує завдання страхового скорингу в реальному часі. Досвід наших інженерів у машинному зорі перевищує 10 років, а кількість впроваджених проєктів — понад 50. Наша компанія має понад 5 років досвіду на ринку AI та 50+ впроваджених проектів. Уявіть: клієнт фотографує машину на парковці, завантажує 6 знімків у додаток. Через 40 секунд отримує попередню оцінку збитку. Без виїзду експерта, без черги на огляд. Це в 5 разів швидше ручного огляду експерта. Ця архітектура на базі YOLOv8-seg + регресійної моделі вартості розгортається в продакшн за 8–12 тижнів. Вона гарантує зниження витрат на експертизу на 30–50%. Для типового страхового портфеля економія бюджету може сягати 2–3 млн грн на рік. Для портфеля з 10 000 полісів економія становитиме близько 15 млн грн на рік.
Що реально детектує модель
Задача ділиться на три рівні:
- Локалізація пошкоджень — де саме і що: вм'ятина (dent), подряпина (scratch), тріщина (crack), розбите скло (glass damage), деформація кузова (deformation). Сегментаційна модель дає полігональну маску кожного дефекту з площею в пікселях.
- Класифікація деталі — до якої зони автомобіля належить пошкодження: передній бампер, капот, ліве переднє крило, двері тощо. Це важливо для прив'язки до прайсу нормо-годин конкретної деталі.
- Оцінка severity — легке / середнє / важке пошкодження. Регресійна голова на фічах із backbone дає скор, який множиться на коефіцієнти з довідника вартості.
Архітектура пайплайну
Двоетапна схема працює надійніше за наскрізний end-to-end:
- Детекція та сегментація пошкоджень -> YOLOv8-seg або SAM 2 з автоматичними промптами по зонах авто
- Класифікація деталі -> ResNet-50 або EfficientNet-B3, навчений на розбивці кузова (30–50 класів деталей)
- Оцінка вартості -> XGBoost або LightGBM на ознаках: площа маски, клас деталі, severity score, марка/модель авто з EXIF або окремого класифікатора
Код інференсу
# Приклад інференсу сегментаційної моделі from ultralytics import YOLO import cv2 model = YOLO('damage_seg_v8x.pt') # fine-tuned на датасеті пошкоджень results = model.predict( source='car_damage.jpg', conf=0.35, iou=0.45, imgsz=1280, # висока роздільна здатність критична для дрібних подряпин retina_masks=True ) for r in results: masks = r.masks.data # (N, H, W) tensor classes = r.boxes.cls # класи пошкоджень areas = masks.sum(dim=[1,2]) # площа кожної маски в пікселях Як ми забезпечуємо якість детекції
Чому дрібні подряпини — найпоширеніша проблема?
При стандартному imgsz=640 подряпина довжиною 10 см на відстані 1.5 метра займає 3–4 пікселі. YOLOv8 пропускає їх з IoU < 0.3. Підняття imgsz з 640 до 1280 підвищує recall в 1.6 разу — з 0.44 до 0.71, але latency зростає з 28ms до 95ms на RTX 3090. Ми балансуємо через автоматичний вибір роздільної здатності на основі метаданих камери.
Як модель відрізняє нові пошкодження від старих?
Свіжий скол має білий край, старий — коричневий від іржі. Ми додаємо колірний аналіз країв маски і cross-check з історією попередніх оглядів. Це знижує юридичні ризики для страхової компанії.
Датасет і навчання
Мінімальний обсяг для робочої моделі: 5 000 розмічених зображень з масками, що покривають усі класи пошкоджень і деталей. На практиці використовуємо:
- Відкриті датасети: CarDD (4 000 фото), COCO з донавчанням
- Синтетика з Blender — для рідкісних випадків (тотальне руйнування передньої частини)
- Клієнтські дані з архіву страхових справ
Fine-tuning YOLOv8x-seg на RTX 4090 з датасетом 8 000 зображень — близько 18 годин (100 епох, batch=16, imgsz=1280). Фінальні метрики: [email protected] = 0.79, [email protected]:0.95 = 0.61.
Порівняння продуктивності на різних пристроях
Таблиця latency
| Компонент | Варіант | Latency |
|---|---|---|
| Сегментація пошкоджень | YOLOv8x-seg TensorRT FP16 | 45ms (A100) |
| Класифікація деталі | EfficientNet-B3 ONNX | 12ms (CPU) |
| Оцінка вартості | LightGBM | < 1ms |
| Разом (GPU сервер) | — | ~60ms |
| Мобільний (CoreML) | YOLOv8n-seg | 1.1–1.5s |
Для різних типів пошкоджень точність детекції також відрізняється. Наприклад, recall по вм'ятинах досягає 0.85, а по дрібних подряпинах — 0.71.
| Тип пошкодження | [email protected] | [email protected] |
|---|---|---|
| Вм'ятина | 0.85 | 0.88 |
| Подряпина | 0.71 | 0.76 |
| Тріщина | 0.80 | 0.82 |
| Розбите скло | 0.92 | 0.95 |
Що входить у роботу
- Аудит даних — перевірка репрезентативності датасету, рекомендації щодо збору та розмітки
- Розробка моделі — fine-tuning, quantization (INT8/INT4), експорт в ONNX/TensorRT
- Інтеграційне API — FastAPI, ендпоїнти для завантаження фото, отримання масок та вартості
- Мобільне SDK — CoreML (iOS), TFLite (Android) з прикладом інтеграції
- Документація — OpenAPI специфікація, model card, інструкція з розмітки нових даних
- Підтримка — 3 місяці гарантійного супроводу після запуску
Як ми будуємо модель оцінки пошкоджень: покроковий процес
- Збір та розмітка — 5 000+ зображень з полігональними масками від експертів страхової компанії
- Навчання — transfer learning з YOLOv8x-seg, 100 епох, 8–12 годин на RTX 4090
- Валідація — тестування на відкладеній вибірці ([email protected] > 0.75) та на реальних кейсах замовника
- Оптимізація — TensorRT FP16 для сервера, CoreML/TFLite для мобільних пристроїв
- Розгортання — Docker-контейнер на Kubernetes, моніторинг latency p99 та drift
Типові помилки моделі та їх вирішення
- Освітлення та відблиски — симуляція RandomSunFlare в augmentations, quality check відбраковує пересвічені фото.
- Дрібні подряпини — збільшення imgsz до 1280 та використання retina_masks підвищує recall з 0.44 до 0.71.
- Старі vs нові пошкодження — колірний аналіз країв маски + cross-check з історією оглядів.
Строки проекту
Від 8 до 16 тижнів залежно від наявності розмічених даних та вимог щодо інтеграції із системами страховика. Вартість розраховується індивідуально.
Замовте рішення під ключ за 8-16 тижнів. Отримайте безкоштовну оцінку вашого проекту. Зв'яжіться з нами для консультації. Вам входить: аудит даних, розробка моделі, інтеграція, документація та підтримка.







