
Сегодня мы расскажем, как использует сервис один из наших клиентов — Aviasales. Это один из крупнейших поисковиков авиабилетов в мире (на зарубежных рынках компания работает под именем JetRadar), в месяц им пользуется около 10 миллионов человек, а количество поисковых сессий в сутки приближается к миллиону. Уже довольно давно Aviasales
Надо сказать, что «мобильные путешественники» отличаются от тех, кто планирует свои поездки на компьютере. Зачастую авиабилеты ищут и оплачивают на бегу, поэтому вводить паспортные данные получается медленнее. На заполнение стандартных полей и в более комфортной обстановке уходит от 3 до 5 минут. И это не считая обычных ошибок вроде перепутанных имен и фамилий или неправильно указанного срока действия паспорта.
В общем, разработчики Aviasales решили добавить в мобильное приложение функцию распознавания данных паспорта по фотографии и, проанализировав доступные на тот момент предложения на рынке, обратились с этой задачей к нам. Паспортные данные умеют распознавать несколько наших продуктов, партнёры остановились на веб-сервисе ABBYY Cloud OCR SDK. О том, как работает эта наша технология, вы можете почитать здесь.
Благодаря веб-API Cloud OCR SDK, добавить функциональность распознавания в мобильную версию Aviasales было легко. Поскольку от приложения требуется только уметь отправлять HTTP-запросы, распознавание можно прикрутить к приложению на любой платформе — наши партнёры для начала добавили его в мобильную версию Aviasales для iOS, в планах – Android. Поскольку сам процесс распознавания происходит на стороне сервиса, эта функциональность не увеличивает в размере дистрибутив и не высаживает батарею.
Вкратце процесс таков: в приложении Aviasales при заполнении данных пассажира можно сфотографировать паспорт или выбрать фото из галереи, файл с изображением страницы паспорта отправляется в наш сервис, он распознаёт машиночитаемую зону (machine-readable zone, MRZ) и возвращает в виде XML (фамилия, имя, номер паспорта, даты выдачи и окончания действия). Приложение разбирает ответ и сохраняет данные в iCloud, чтобы потом можно было использовать автозаполнение при каждой покупке. Поскольку MRZ имеет единый международный формат, распознавание работает на паспортах всех стран, в которых эта строка есть.
Некоторые сложности возникли поначалу с распознаванием российских внутренних паспортов. Данные внутреннего, общегражданского паспорта нужны для покупки билетов на внутрироссийские рейсы, при этом имя и фамилия пассажира в билете должны быть написаны на латинице. Латинское написание имени и фамилии берётся по-прежнему из машиночитаемой строки (MRZ), которая появилась в российских внутренних паспортах в 2011 году. Проблема заключалась в том, что информация в этой строчке кодируется особым способом: некоторые буквы русского алфавита заменяются цифрами или буквами латиницы (это кодирование называется «модернизированный клер»). Например, буква Ю превращается в 7, а Й — в Q. И именно так технология ABBYY распознавала эти символы. Эту проблему решили просто: разработчики Aviasales написали

Для пользователя новая функциональность выглядит так: нужно зайти в раздел «Пассажиры» и нажать на кнопку «Новый пассажир». Откроется окно с формой, в верхнем правом углу которой есть иконка фотоаппарата. Нажав на эту иконку и сфотографировав паспорт (можно просто выбирать фото из памяти телефона), нужно подождать пару секунд, а после в соответствующих полях появятся паспортные данные. Пассажиру остается лишь проверить данные и нажать на кнопку «Добавить», чтобы программа его запомнила.



Да, это наша девушка и она не против, чтобы её паспорт тут показывали



Коллеги из Aviasales внедрили несколько мелких, но приятных деталей в приложение, среди которых есть уведомление пользователя об истечении срока годности документа — за несколько месяцев до этого срока.
Данные паспорта хранятся в iCloud для синхронизации между девайсами пользователя. Это абсолютно безопасно, данные не передаются и не хранятся на серверах Aviasales. Когда клиент переходит со страницы Aviasales на сайт агентства по продаже авиабилетов, ему предлагается нажать на кнопку «заполнить», чтобы не вносить все данные вручную. Но подстановка в формы при заполнении на сайтах партнеров происходит только по желанию пользователя и одобряется им каждый раз.
В заключение скажем, что разработчики Aviasales интегрировали функцию извлечения данных из фотографии паспорта всего за 2 недели.
Коллеги из Aviasales рассказывают, что автозаполнение повышает шанс «поймать» дешевый авиабилет, пока его не перехватил кто-то ещё. Мы не проверяли, но, чисто теоретически, несколько минут форы в некоторых ситуациях действительно могут сыграть свою роль, учитывая тот факт, что стоимость билетов может меняться каждые 15 минут.
Конечно, сканирование документов это, как говорят сейчас в интернете, wow-сервис и пользуются им не все, но за первые 4 месяца после появления функции автозаполнения ей воспользовались более 10 тысяч путешественников – не так уж мало. Для пользователя заполнение формы с большим количеством полей — это обычно не очень приятное занятие. А когда есть возможность просто сфотографировать, и данные сами заполнятся, это располагает к тому, чтобы все-таки добавить свои данные в приложение.