Страховым компаниям нужны современные инструменты, чтобы ускорить выплаты, избежать ошибок, повысить точность расчета ущерба вплоть до 93%. Как реализовать на практике такой сервис? Рассказывает Елена Волченко, к.т.н., руководитель отдела аналитики компании «Финолаб.ру»
В 2022 году мы вывели на рынок CarDamageTest — сервис дистанционной оценки технического состояния автомобилей на основе нейронных сетей и классического machine learning.
Виды определяемых повреждений и детектируемые нашим сервисом сегменты автомобилей полностью соответствуют требованиям и нормативным документам, регулирующим страхование автомобилей. На сегодняшний день сервис выделяет 35 сегментов на автомобилях и определяет 11 классов повреждений, начиная от мелких сколов краски и ржавчины и заканчивая отсутствующими деталями. Продукт имеет конкурентные показатели на глобальном рынке: точность классификации повреждений достигает 92,6%.
CarDamageTest является разработкой компании «Финолаб.ру». Сервис доступен в виде приложения для мобильных устройств и API, которое интегрируется в ИТ-систему заказчика. Количество скачиваний приложения растет ежемесячно на 40%.
Для получения качественной входной информации пришлось приложить много усилий. На старте мы располагали датасетом размером 250 000 изображений автомобилей, среди которых были как целые, так и авто с повреждениями. Далее мы набрали команду разметчиков и начали обучение, а ровно через неделю поняли, что один разметчик за смену размечает 12-15 изображений, и для разметки всего датасета нам нужны годы. Да и размечать изображения «с нуля» оказалось для них очень сложно.
Поэтому, разметив вручную первую тысячу изображений, мы в дальнейшем обучили нейронную сеть выполнять черновую разметку. Корректировка такой разметки занимает в среднем на 36% меньше времени. Получив размеченный датасет из нескольких тысяч изображений, мы дообучили GAN (генеративно-состязательную сеть), добавили фильтрацию ансамблем нейронных сетей и получили возможность генерировать синтетические размеченные изображения, большинство из которых нуждается в минимальной корректировке. Периодически проверяли точность генерации изображений и при необходимости вносили корректировки. Даже на первых этапах такой подход позволил нам сократить время разметки в 4,2 раза, а постоянное дообучение обеих нейронных сетей на вновь размеченных данных позволило нам ускорить разметку более чем в 7 раз.
Сейчас наш датасет — это объединение реальных и искусственных авто, имеющих одинаковую ценность для создания сервиса. Это решение подходит как для сегментации изображений, так и для разметки повреждений.
Следующим этапом стала предварительная обработка данных, которые мы получаем от клиента. Страховые компании традиционно оценивают автомобиль по пяти изображениям, сделанным на уровне задних и передних фар и фотографии крыши, но проведя анализ удобства таких требований для клиента, функциональности современных мобильных приложений, да и просто оценив, насколько правильно делают фотографии клиенты, мы приняли решение не ограничивать наших клиентов фотографиями, а дать им возможность записывать круговое видео автомобиля.
Таким образом, для работы с нашим сервисом клиент может как сделать фотографии, так и записать круговое видео (можно даже по частям) своего автомобиля. Ну а если он что-то не снимет или снимет некачественно, мы ему об этом сообщим и попросим доснять.
Кроме оценки полноты входных данных (наличие автомобиля на фото или видео в целом и всех частей кузова в частности) предобработка изображений в нашем сервисе включает в себя оценку затемненности и засвеченности изображений, анализ присутствия всех деталей кузова на предоставленных материалах. Также для ПСО, согласно требованиям страховых компаний, предусмотрена фильтрация изображений, на которых присутствует грязь и снег. Для выполнения этих задач нами разработана модель фильтрационной воронки с использованием нескольких типов нейронных сетей глубокого обучения, позволяющая не только качественно выполнить фильтрацию, но и сделать это за минимальное время.
Завершает этап предобработки разработанная нами модель идентификации автомобиля в пространстве, благодаря которой мы не только корректно определяем правую и левую сторону автомобиля, но и с погрешностью не более 5,3 градуса определяем местоположение снимающего относительно автомобиля в момент съемки. Реализация этого этапа позволила отказаться от выделения классов левых и правых передних дверей, левых и правых задних дверей и т.д. Заменить их классами — передняя дверь, задняя дверь, передняя стойка и т.д. Тем самым мы сократили количество сегментов с 47 до заявленных ранее 35, улучшив сходимость алгоритма.
Для успешного решения задачи сегментации деталей корпуса на разных этапах работы над сервисом было протестировано несколько типов нейронных сетей глубокого обучения — таких, как двухстадийные детекторы Mask R-CNN и Faster R-CNN и одностадийные семейства YOLO с разнообразными метриками и значениями параметров. Однако на первых порах мы получили парадоксальную ситуацию: качество работы сервиса на пяти изображениях было выше, чем на видео, где в нашем распоряжении была сотня фотографий. Причина этой коллизии оказалась в психологии автолюбителей: оказывается, существуют «любимые» и «нелюбимые» углы съемки автомобилей.
Как видим, фотографии обычно делаются со стороны пассажира на уровне передней и задней фар.
Добавив фотографий с «нелюбимых» ракурсов в обучающий датасет и разработав ансамбль классификаторов с дополнительной пред- и постобработками, мы получили 93,1% точности автоматического определения сегментов автомобилей.
Сегментация повреждений также имела свои ожидаемые и неожиданные трудности. С одной стороны, невозможно получить даже от опытных разметчиков идеально размеченные фотографии, поскольку человеческий глаз не всегда может отличить ржавчину от грязи, а тени от окружающих объектов — от царапин. С другой стороны, разнообразный характер повреждений; принципиально разные классы повреждений на стекле и металле; грязь, снег, капли дождя, всевозможные тени, отражения и блики существенно усложнили и так сложную задачу.
На сегодняшний день классификатор повреждений — это ансамбль трех алгоритмов, обученных как на подмножествах классов повреждений, так и на всех классах вместе. Для обучения сегментатора была разработана собственная аугментация MosCut на базе библиотеки Albumentations, снижающая вариативность классов во время обучения. Преимуществом решения является не только качественная детекция повреждений, но и низкий процент ложных срабатываний, когда за повреждения принимаются тени, отражения и грязь.
Финальная обработка полученных результатов заключается в сопоставлении найденных повреждений с сегментами автомобиля на каждом изображении и агрегации данных о повреждениях, полученных со всех изображений
В целом процесс работы нашего сервиса от загрузки фото- и видеоизображений до формирования решений представляется следующим образом.
Результатом работы сервиса может быть сообщение о том, что повреждения не найдены или найденные повреждения с указанием сегментов, на которых они найдены. По результатам работы формируется текстовое описание результатов оценки автомобиля, соответствующее требованиям страховых компаний, а для пользователя найденные повреждения дополнительно визуализируются.
Мы продолжаем развивать сервис за счет новых возможностей, более совершенного алгоритма обработки данных. Получая фото- и видеоматериалы со смартфона автовладельца, мы научились в различных условиях выполнять качественную оценку автомобиля — независимо от наличия снега, грязи, яркого солнца с бликами и неравномерной освещенности. Благодаря исследованиям и применению лучших практик Deep Learning сегодня мы успешно сегментируем подавляющее большинство марок и моделей автомобилей.