Head of Analytics компании «Финолаб.ру», к. т. н. Елена Волченко – о том, как создать сервис по дистанционной оценке повреждений автомобилей для страховых компаний с помощью нейронных сетей и классического machine learning.
Мы занимаемся разработкой, внедрением и сопровождением информационных систем для повышения эффективности работы страховых компаний. Следим за новациями в этой сфере во всем мире, поэтому одними из первых в России увидели запрос на автоматическую оценку технического состояния авто.
Нам очень помогло взаимодействие со страховыми компаниями и существующая нормативная база, регулирующая страхование автомобилей. Виды определяемых повреждений и детектируемые сегменты автомобилей в нашем сервисе CarDamageTest полностью соответствуют существующим требованиям. CarDamageTest выделяет 32 сегмента на автомобилях и определяет 11 классов повреждений – от мелких сколов краски и ржавчины и до отсутствующих деталей.
Для получения качественной входной информации нам пришлось приложить много усилий. На старте мы получили датасет размером 250 000 изображений автомобилей, среди которых были целые авто и с повреждениями.
Мы обучили нейронную сеть выполнять черновую разметку для ускорения процесса. Получив размеченный датасет из нескольких тысяч изображений, мы дообучили генеративно-состязательную сеть, добавили фильтрацию ансамблем нейронных сетей и получили возможность генерировать синтетические размеченные изображения, большинство из которых нуждается в минимальной корректировке. Сейчас наш датасет — это объединение реальных и искусственных авто, имеющих одинаковую ценность для создания сервиса. Это решение подходит как для сегментации изображений, так и для разметки повреждений.
На следующем этапе встал вопрос предварительной обработки данных от клиента. Страховые компании традиционно оценивают автомобиль по 5 изображениям, сделанным на уровне задних и передних фар и фотографии крыши. Мы решили не ограничивать наших клиентов фотографиями, а дать им возможность записывать круговое видео автомобиля (можно даже по частям).
Кроме оценки полноты входных данных (наличие автомобиля на фото или видео в целом и всех частей кузова в частности) предобработка изображений в нашем сервисе включает в себя оценку затемненности и засвеченности изображений, анализ присутствия всех деталей кузова на предоставленных материалах. Также для ПСО, согласно требованиям страховых компаний, предусмотрена фильтрация изображений, на которых присутствует грязь и снег. Для выполнения этих задач нами разработана модель фильтрационной воронки с использованием нескольких типов нейронных сетей глубокого обучения, позволяющая не только качественно выполнить фильтрацию, но и сделать это за минимальное время.
Завершает этап предобработки модель идентификации автомобиля в пространстве. Это наша разработка, которая позволила корректно определять правую и левую сторону автомобиля, с погрешностью не более 5,3 градусов определять местоположение снимающего относительно автомобиля в момент съемки. Мы смогли отказаться от выделения классов левых и правых передних дверей, левых и правых задних дверей и т.д.
Заменить их классами – передняя дверь, задняя дверь, передняя стойка и т.д. Таким образом, мы сократили количество сегментов с 44 до заявленных ранее 32, улучшили сходимость алгоритма.
Протестировав несколько типов нейронный сетей глубокого обучения (двухстадийные детекторы Mask R-CNN и Faster R-CNN, одностадийные семейства YOLO с разнообразными метриками и значениями параметров) для сегментации деталей корпуса, мы пришли к интересному выводу – оказывается у автовладельцев существуют “любимые” и “нелюбимые” углы съемки авто.
Добавив фото с “нелюбимых” ракурсов в обучающий датасет и разработав ансамбль классификаторов с дополнительной пред- и постобработками, мы достигли 93,2% точности автоматического определения сегментов автомобилей.
Классификатор повреждений сегодня представляет собой ансамбль трех алгоритмов, обученных как на подмножествах классов повреждений, так и на всех классах вместе. Для обучения сегментатора была создана собственная аугментация MosCut на базе библиотеки Albumentations, которая снизила вариативность классов во время обучения. Так мы добились качественной детекции повреждений, низкого уровня ложных срабатываний, когда за повреждения принимались тени, отражения или грязь.
На финальной стадии обработки результатов происходит сопоставление обнаруженных повреждений с сегментами автомобиля на каждом изображении, агрегация данных о повреждениях, полученных со всех изображений.
Результатом работы сервиса является информирование о том, что повреждения не найдены или, напротив, найдены с указанием сегментов, где они расположены. Сервис формирует описание результата оценки автомобиля в соответствии с требованиями страховых компаний, для пользователя повреждения дополнительно визуализируются.
В России сервис доступен в виде приложения для мобильных устройств и API. Продукт вполне конкурентен на глобальном рынке: обработка запроса по оценке одного автомобиля требуется всего несколько минут, точность классификации повреждений составляет 92%, что является одним из самых высоких результатов в мире на сегодняшний день в нише дистанционной оценки повреждений авто.
В планах – закончить тестирование модуля калькуляции стоимости ремонта, адаптировать сервис для такси и корпоративного транспорта, каршеринга.