Перенос OCR-технологий (технологий оптического распознавания) с ПК на мобильные устройства обсуждался, пожалуй, с момента их появления. Ещё в конце 90-х, когда «умные» устройства можно было пересчитать по пальцам, мы задумывались о создании программы, извлекающей данные из визитной карточки, – Business Card Reader, или сокращённо BCR. Эта идея, что называется, витала в воздухе, но ни возможности камер, ни вычислительная мощность устройств не позволяли тогда реализовать её. Выбирать особо не приходилось: либо обычный телефон с хорошей камерой «для обычных людей», либо продвинутый бизнес-наладонник «для профессионалов» (а зачем вообще бизнесменам нужны камеры на устройстве — себя, что ли, фотографировать?)

Но время шло, запросы людей росли, и худо-бедно приличные камеры начали появляться во всех устройствах. Как только возможности устройств «подтянулись», разработчики портировали нашу технологию распознавания, учитывая массу ограничений, свойственных мобильным операционным системам: размер библиотек (попробуй впихнуть OCR с базой изображений в 500 килобайт на носителе), скорость работы на малопроизводительных процессорах. Ещё пришлось учитывать, что распознавать предстояло не идеальные изображения со сканера, а фотографии, сделанные зачастую с перекосами, в условиях плохого освещения и т. п.

И вот, в конце 90-х вышло первое приложение ABBYY для распознавания текста, причём разработано оно было для портативного сканера, а не для телефона. Этот сканер производства шведской компании C Technologies AB представлял собой небольшое устройство, отдалённо напоминающее маркер или ручку, и позволял построчно сканировать книги, журналы, газеты.

Мобильный SDK был встроен в эту ручку, пользователь вёл ручку по строке, устройство распознавало текст и сразу показывало его на небольшом экране – потом текст можно было передать в компьютер. Этот механизм работы сейчас кажется анахронизмом, достаточно посмотреть на тогдашний старенький девайс, а в те времена это казалось магией!



Чтобы из большого FineReader сделать версию для C Pen, понадобился один человеко-год (собственно, один разработчик из нашей команды тогда это всё и сделал).

C Technologies AB до сих пор существует и выпускает портативные сканеры, в которых используются современные решения от ABBYY.



После такого успешного старта у команды разработчиков и аналитиков не оставалось уже ни малейшего сомнения, что мобильную технологию OCR нужно воплощать в коммерческом продукте. В 2005 году по заказу южнокорейской компании Diotec (компания разрабатывала приложения, которые предустанавливались в телефоны Samsung) мы впервые сделали SDK, который работал на мобильном телефоне. Благодаря этому сотрудничеству сразу несколько моделей сотовых телефонов Samsung в Европе и в Индонезии были оснащены нашей технологией. Помимо основных библиотек распознавания текста в Mobile SDK были добавлены библиотеки, при помощи которых программа определяла, в какой строке расположен телефонный номер, в какой – имя и фамилия (даже если они напечатаны, например, на шведском), а в какой – адрес. Это и была функциональность, позволяющая распознавать визитные карточки и сохранять данные в нужных полях записной книги телефона.

В 2007 году мы выпустили отдельный продукт – ABBYY Mobile OCR SDK – инструментарий, который позволял сторонним разработчикам включать в мобильные устройства функцию оптического распознавания печатного текста (OCR) и умел распознавать визитные карточки. Телефон, на котором мы разрабатывали первую версию Mobile SDK, – Nokia 6630. На нем уже была подходящая операционная система, но еще не было подходящей для распознавания камеры, так что файлы изображений заливались в него через шнурок или Bluetooth.



История сохранила инструкцию к первому показу изделия на выставке



Инструментарий мог использоваться на самых распространенных тогда мобильных платформах, включая Windows Mobile, Symbian или Linux и на любых мобильных устройствах, которые могли так или иначе получать изображения: смартфоны, карманные компьютеры, портативные сканеры, цифровые фотоаппараты. А уже в начале 2008 года вышел первый продукт, который пользователи сами могли устанавливать на свои телефоны, – ABBYY Business Card Reader под Symbian. Уже тогда программа для работы не требовала постоянного подключения к интернету, поддерживала 3 языка интерфейса и 16 языков распознавания текста.







К сожалению, чехарда с версиями Symbian, огромное количество выпускаемых мобильных устройств (кроме Nokia, аппараты выпускали Samsung, Motorola и Sony, причём, последние даже написали собственную модификацию Symbian – UIQ) не позволяли нам развивать приложение так, как хотелось бы. Кто-то из производителей телефонов поддерживал сенсорный ввод (к примеру, Sony), кто-то до определённого момента нет (Nokia), каждая компания старалась надстроить над системой нечто своё, что полюбится пользователям. Для каждого устройства приходилось разрабатывать и поддерживать отдельную версию BCR, это отнимало время разработчиков, и не давало возможности двигаться вперёд.

Всё изменил, как обычно, первый iPhone. Нам хотелось попробовать сделать Business Card Reader под новую OS, но в тот момент для нас было не очевидно, будет ли популярным новый смартфон, поэтому мы решили сделать MVP (minimal valuable product) – продукт с минимальными трудозатратами. Разработку отдали команде аутсорсеров, у которых были и опыт, и сами девайсы для тестирования. Так первую версию BCR для iOS сделали аутсорсеры из компании Media Moji, приложение работало на iPhone 3G. У «трёшки» были проблемы с автофокусом, поэтому визитки распознавались на ней не очень хорошо. В iPhone 3GS проблему исправили, и следующая версия BCR уже распознавала данные так, как надо.



Конечно, как только спрос на продукт подтвердился, разработка переехала в штат. Кстати, как раз сейчас мы ищем нового руководителя группы iOS-разработки. Требования простые – вы крутой специалист с опытом от 3-х лет и хорошим портфолио за плечами. Если интересно, подробности здесь.

Вы спросите – а что же Android? Как мы уже говорили, компания изначально осторожничала в отношении новых мобильных платформ, и мы начали разрабатывать под Android только когда у нас появилась уверенность, что эта платформа будет популярна (пока этого не произошло, читатели нашего блога оставили примерно две сотни комментариев с вопросами, когда же выйдут наши мобильные продукты под Android). В результате первый BCR для этой платформы вышел аж на целый год позже, чем под iOS.



Растущая популярность устройств на iOS и Android сильно облегчила жизнь всем разработчикам мобильных приложений – и нам в том числе. Во времена Windows Mobile и Symbian в интернете было очень много магазинов мобильных приложений. Это доставляло большую головную боль, потому что у разных интернет-магазинов были разные системы лицензирования, и, если мы хотели там присутствовать со своими приложениями, надо было соответствовать этим требованиям и вносить изменения в дистрибутивы. У нас множились огромные таблицы с версиями дистрибутивов (только один Business Card Reader существовал в 50 разных вариантах), поддержка такого количества версий требовала рабочих рук и времени. Появление централизованных магазинов мобильных приложений – AppStore и Android Market (теперь уже Google Play) – решило эту проблему, и мы смогли сосредоточиться на развитии возможностей приложения.

Мы не будем здесь перечислять все, что придумали с тех пор в BCR, – статья не об этом. Расскажем лишь о том, как искали пути реализации бесконтактной передачи визиток между устройствами. Тема электронного обмена визитками уже лет пять как обсуждается, разработчики стараются кто во что горазд – например, в одной из реализаций (не нашей) чтобы обменяться визитками, нужно было постучать смартфонами друг о дружку. Мы тоже сделали свой вариант бесконтактной передачи по Wi-Fi на основе технологии AllJoyn от Qualcomm (июнь 2013). Но не всё вышло так гладко, как хотелось. Визуально процесс самостоятельной передачи визиток между двумя смартфонами выглядел очень эффектно, и даже работал между iOS и Android устройствами, но была масса ограничений:

• для обмена визитками у обоих пользователей должен был стоять BCR
• оба пользователя должны были находится в одной Wi-Fi сети
• эта сеть должна была быть публичной и позволять подобный обмен данными.

По правде сказать, даже в одной и той же сетке обмен срабатывал не каждый раз, и мы эту функциональность не стали развивать дальше.



В итоге мы поняли, что самый простой и популярный способ обмена – это старая добрая электронная почта. И сейчас реализован такой сценарий обмена: после сканирования чужой визитки пользователь сразу же видит на экране большую кнопку «Отправить свою визитку». Он на неё жмёт, и по старинке, по email отправляется письмо с приветственным текстом примерно такого содержания:



Шаблон текста, разумеется, можно предварительно настроить. К письму прикрепляется изображение визитки и файл в формате VCF. Нам кажется, что для обмена электронными визитками это на сегодняшний день самый живой сценарий.

Конечно, к приложениям для чтения визиток разработчики любят прикручивать всякую «магию» – и мы не исключение. Например, недавно (май 2015) в нашем приложении появился автозахват – теперь не нужно нажимать на спуск камеры, достаточно просто навести её на визитку – фокусировка, определение границ, обрезка фона, улучшение изображение и распознавание происходят «автомагически» и за долю секунды. Скоро в BCR появится дополнение профиля данными из некоторых соцсетей и несколько других крутых фишек.

Последние лет десять все пророчат смерть бумажным визиткам, но годы идут, а люди так и продолжают обмениваться этими кусочками бумаги. Возможно, лет через 5-10 появится единый формат электронного обмена контактными данными с ботами через blockchain c big data и deep machine learning, и мы, конечно, уже к этому готовимся, а до тех пор тема фотографирования и распознавания визиток останется востребованной.

Ну а о том, как мы пытались сделать мобильный FineReader и что из этого вышло, читайте во второй серии. Не переключайтесь.

Комментарии (0)