
Сегодня мы расскажем, как использует сервис один из наших клиентов — 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 тысяч путешественников – не так уж мало. Для пользователя заполнение формы с большим количеством полей — это обычно не очень приятное занятие. А когда есть возможность просто сфотографировать, и данные сами заполнятся, это располагает к тому, чтобы все-таки добавить свои данные в приложение.
Комментарии (16)
bubuq
13.10.2015 14:34Можно ли сканировать другие документы, например, ID-карты?
DmitryMe
13.10.2015 14:41Да, если они соответствуют стандарту ISO/IEC 7501-1. Подробности и примеры — в описании вызова.
AxMuha
13.10.2015 17:40Интересно, а зачем Авиасейлсу паспорт? Они же «метасерч», т.е. для продажи переправляют на сайт агента. Или в приложении уже научились сами броньку от имени агента создавать?
DmitryMe
13.10.2015 17:41Приложение использует паспортные данные для автозаполнения форм на сайте агента.
Saiten
14.10.2015 10:03+4Размытый номер паспорта Алсу дублируется в нижней части — как раз в той, которую нужно фотографировать. Вы бы осторожнее с персональными данными, пусть даже срок действия документа уже истек.
and7ey
18.10.2015 21:59Поскольку сам процесс распознавания происходит на стороне сервиса
Это абсолютно безопасно, данные не передаются и не хранятся на серверах Aviasales
Почему в первом случае передача паспортных данных к вам на сервер считается безопасной, при этом во втором случае передача данных на сервер Aviasales считалась бы небезопасной?
Кстати, решения для распознавания российских автомобильных номеров у вас нет?DmitryMe
19.10.2015 15:26Почему в первом случае передача паспортных данных к вам на сервер считается безопасной, при этом во втором случае передача данных на сервер Aviasales считалась бы небезопасной?
Хотели сделать акцент на том, что данные передаются только в наш сервис распознавания. При этом передача выполняется по защищенному SSL каналу и на стороне сервиса данные автоматически удаляются вскоре после окончания обработки и не хранятся ни в нашем сервисе, ни в сервисе Aviasales.
Кстати, решения для распознавания российских автомобильных номеров у вас нет?
Нет, пока такого решения у нас нет.
Sioln
Ребята, как с вами связаться?
Нужен аналогичный функционал.
Может, сразу ссылочку на API + цены укажете?
luciana
Написала в личку
luciana
А также: цены, API
Sioln
ocrsdk.com/plans-and-pricing
Это я видел, но не понимаю где там кроется распознавание данных паспорта (то, что вы называете machine-readable zone, MRZ)
DmitryMe
Сейчас стоимость извлечения данных MRZ совпадает со стоимостью полнотекстового распознавания одной страницы.
chronomaster
processMRZ Method
Sioln
Благодарю!