Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!
Простите за невольную игру слов в заголовке. Просто именно это умеет новый AI-сервис Сбера на основе алгоритма CosFace: не просто отличать собаку от кошки на фото, а распознавать мордочки конкретных, реально существующих питомцев с точностью 94% для собак и 84% для кошек. Разработка выполнялась в рамках страховой программы «Питомец под защитой» и имеет возможности для дообучения, модификации и дальнейшего применения не только в страховых продуктах и не только в Сбере. Рассказываем, как работает сервис, на чём обучали его модели и как он может развиваться дальше.
Как работает система распознавания животных
Изначально казалось, что надёжно (в смысле требований страховых продуктов) отличить разных собак или кошек одной породы проблематично. Гипотезу проверяла совместная команда разработчиков из Управления благосостояния, Лаборатории робототехники и Управления исследований и инноваций Сбера.
Перед тем как решать задачу верификации питомцев, мы решили изучить уже имеющиеся продукты на рынке. Одним из таких было решение на основе идентификации собак по отпечатку носа. Для нашего продукта данное решение не подошло по следующему ряду причин:
Нам надо было сделать продукт не только для собак, но также и для кошек. А их носы не имеют столь ярко выраженного рисунка носа.
Заставлять пользователя фотографировать нос нам показалось не лучшим клиентским опытом – тяжело заставить питомца сидеть неподвижно и сделать чёткую фотографию его носа;
Также дополнительной трудностью был сбор датасета
Поэтому мы решили переиспользовать подходы верификации людей и использовать для неё не отдельно взятый нос питомца, а всю его мордочку целиком.
Поэтому наш сценарий верификации мордочек из двух последовательных этапов:
На первом определяем местоположение мордочки питомца, её вид (кошка или собака) и детектируем ключевые точки на ней (глаза и нос). Найденные координаты глаз и носа позволяют понять смотрит ли мордочка прямо (за счёт определения их взаимного расположения относительно друг друга), а также нормализовать (выровнять) её для улучшения качества верификации.
На втором на вход приходит две фотографии нормализованных мордочек питомцев и выдаёт степень уверенности в их схожести (от 0 до 1).
Для первого этапа мы поэкспериментировали с различными архитектурами моделей, а также с самим подходом (использовать одну общую модель, или отдельную для каждой из задачи?). Итогом для первого этапа были обучены 3 модели, 1 – детектировала мордочку, 2 – классифицировала вид, 3 – находила ключевые точки. Стоит заметить, что последняя модель имела собственную уникальную архитектуру, которая продемонстрировала очень высокий показатель качества и скорости работы.
Для второгого этапа разработки модели верификации мордочки мы исследовали современные подходы в обучении в биометрии: tripplet loss, сиамские сети, cosface, arcface. Лучше всего по соотношению качество/скорость себя показала модель, обученная на основе алгоритма cosface.
Надо заметить, что наилучшее качество мы получили, взяв модель, натренированную на лицах людей и дообучив её на наших данных с мордочками животных, но это и неудивительно, ведь в натренированной модели уже заложена способность извлекать похожие паттерны.
Одно загруженное фото обрабатывается моделями за 0,2 секунды. Внутри приложения в связке с другими процессами скорость чуть меньше, но для пользователя это практически не ощутимо — он получает ответ о верификации в течение 2–3 секунд.
Точность распознавания и тонкости, связанные с волками
Точность первой модели составляет 98%, ошибки связаны с распознаванием видов животных, анатомически очень похожих на домашних (например, волков для собак и каракалов для кошек). Мы приняли решение не повышать точность первой модели по двум причинам.
Это может затруднить распознавание домашних животных, внешний вид которых близок к волкам и диким кошкам. Например, морда хаски в результате селекции стала очень близка по пропорциям к морде волков. И если научить систему исключать все объекты, похожие на волков, владельцы хаски могут получить ложные отрицательные ответы по верификации фото их питомцев. То же самое может произойти и в отношении экзотических пород домашних кошек, имеющих много общих черт с дикими, например бенгалов.
Среди домашних питомцев в России крайне мало одомашненных диких хищников. Большой необходимости в их распознавании нет.
Точность второй модели составляет 94% для собак и 84% для кошек. Сейчас этого достаточно, чтобы сервис не допускал серьёзных ошибок. Кроме того, датасет непрерывно пополняется для повышения точности.
Где сейчас используется AI-распознавание питомцев
В мировой практике идентификация домашних питомцев выполняется технологичным способом с помощью чипа или менее технологичными – по клейму или паспорту. Но будем честными: процент людей, заводящих на питомца хотя бы паспорт, в России очень мал. Он не превышает 1% от всех «котовладельцев» и собаководов. Мы же хотели сделать наш продукт «Питомец под защитой» доступным любому человеку, даже тому, у которого дома живет принесённый с улицы котёнок.
Для того, чтобы застраховать животное с нашей системой, хозяину нужно только описать питомца, указав его вид, породу, пол и возраст, и сфотографировать его мордочку на телефон. При наступлении страхового случая, например, если пёс получил травму и ему пришлось предоставлять дорогостоящее лечение, хозяину нужно указать ту же информацию и предоставить документы из ветеринарной клиники.
Ранее у нас тоже был этап с загрузкой фотографии питомца. Но до внедрения AI некоторые клиенты могли прислать фото плохого качества, со сложным ракурсом или недостаточным освещением. Разумеется, сверить соответствие питомца по ним при наступлении страхового случая было трудно. AI-система исключает такие ситуации, оповещая человека о том, что приложенное фото не подходит для верификации. При этом оформление полиса всё равно доступно, даже если хозяин не дома и не может сразу снять своего пса и кота. Пользователь может подгрузить фотографию в течение 3 дней, о чём мы ему ненавязчиво напоминаем. Кроме того, система распознавания животных ускоряет процесс урегулирования убытков: если раньше верификацию проводил сотрудник за несколько дней, то теперь она автоматическая и происходит за считанные часы.
Социальное будущее разработки
Как вы уже поняли, сверка фото животных может работать и в других сферах. Например, стать общепринятой и простой альтернативой чипированию и паспортам питомцев. Вся совокупность параметров морды собаки почти так же неповторима, как отпечаток пальца её хозяина. Эту уникальность трудно отследить человеческим глазом, но нейросети (математические модели) способны сделать это быстро и точно. Распознавание фото питомца – это, по сути, предпосылка для биометрических паспортов животных, не требующая от хозяина никаких дополнительных затрат и усилий, кроме одного тапа на кнопку камеры.
Вторая очень важная для любого владельца домашнего животного сфера применения – поиск потерявшихся питомцев. Даже при наличии чипа, например, у собаки, вернуть её хозяину не так просто, как кажется. Смартфоны не умеют считывать чипы и показывать информацию о владельце, а нашедший может не отнести животное в клинику. А если даже и отнесёт, то у клиники может не быть доступа ко всем базам чипов.
Загрузить фото на сайт или в приложение гораздо проще. Ветеринару или даже прохожему, увидевшему потерявшуюся собаку на улице, достаточно просто сфотографировать её и добавить фото в базу AI-сервиса. Если хозяин создал там объявление о пропаже, то система выдаст совпадение за пару секунд. Подобные сервисы уже есть в мире, но чем их больше, тем больше любимых питомцев вернётся домой.