![](https://habrastorage.org/files/ec6/5d2/89a/ec65d289addd4e3da54de32be4ca8418.jpg)
Но время шло, запросы людей росли, и худо-бедно приличные камеры начали появляться во всех устройствах. Как только возможности устройств «подтянулись», разработчики портировали нашу технологию распознавания, учитывая массу ограничений, свойственных мобильным операционным системам: размер библиотек (попробуй впихнуть OCR с базой изображений в 500 килобайт на носителе), скорость работы на малопроизводительных процессорах. Ещё пришлось учитывать, что распознавать предстояло не идеальные изображения со сканера, а фотографии, сделанные зачастую с перекосами, в условиях плохого освещения и т. п.
И вот, в конце 90-х вышло первое приложение ABBYY для распознавания текста, причём разработано оно было для портативного сканера, а не для телефона. Этот сканер производства шведской компании C Technologies AB представлял собой небольшое устройство, отдалённо напоминающее маркер или ручку, и позволял построчно сканировать книги, журналы, газеты.
Мобильный SDK был встроен в эту ручку, пользователь вёл ручку по строке, устройство распознавало текст и сразу показывало его на небольшом экране – потом текст можно было передать в компьютер. Этот механизм работы сейчас кажется анахронизмом, достаточно посмотреть на тогдашний старенький девайс, а в те времена это казалось магией!
Чтобы из большого FineReader сделать версию для C Pen, понадобился один человеко-год (собственно, один разработчик из нашей команды тогда это всё и сделал).
C Technologies AB до сих пор существует и выпускает портативные сканеры, в которых используются современные решения от ABBYY.
![](https://habrastorage.org/files/723/39a/f17/72339af17e6c4da9a6f63977f2252a29.png)
После такого успешного старта у команды разработчиков и аналитиков не оставалось уже ни малейшего сомнения, что мобильную технологию OCR нужно воплощать в коммерческом продукте. В 2005 году по заказу южнокорейской компании Diotec (компания разрабатывала приложения, которые предустанавливались в телефоны Samsung) мы впервые сделали SDK, который работал на мобильном телефоне. Благодаря этому сотрудничеству сразу несколько моделей сотовых телефонов Samsung в Европе и в Индонезии были оснащены нашей технологией. Помимо основных библиотек распознавания текста в Mobile SDK были добавлены библиотеки, при помощи которых программа определяла, в какой строке расположен телефонный номер, в какой – имя и фамилия (даже если они напечатаны, например, на шведском), а в какой – адрес. Это и была функциональность, позволяющая распознавать визитные карточки и сохранять данные в нужных полях записной книги телефона.
В 2007 году мы выпустили отдельный продукт – ABBYY Mobile OCR SDK – инструментарий, который позволял сторонним разработчикам включать в мобильные устройства функцию оптического распознавания печатного текста (OCR) и умел распознавать визитные карточки. Телефон, на котором мы разрабатывали первую версию Mobile SDK, – Nokia 6630. На нем уже была подходящая операционная система, но еще не было подходящей для распознавания камеры, так что файлы изображений заливались в него через шнурок или Bluetooth.
![](https://habrastorage.org/files/c93/9a1/e66/c939a1e66bbb417183def5a3b2914ce1.png)
История сохранила инструкцию к первому показу изделия на выставке
![](https://habrastorage.org/files/127/a8e/be7/127a8ebe7cf84edfb25e5d301cf6224b.png)
Инструментарий мог использоваться на самых распространенных тогда мобильных платформах, включая Windows Mobile, Symbian или Linux и на любых мобильных устройствах, которые могли так или иначе получать изображения: смартфоны, карманные компьютеры, портативные сканеры, цифровые фотоаппараты. А уже в начале 2008 года вышел первый продукт, который пользователи сами могли устанавливать на свои телефоны, – ABBYY Business Card Reader под Symbian. Уже тогда программа для работы не требовала постоянного подключения к интернету, поддерживала 3 языка интерфейса и 16 языков распознавания текста.
![](https://habrastorage.org/files/33c/bc0/bb9/33cbc0bb9a8a4b579de33f93321c75ed.gif)
![](https://habrastorage.org/files/339/a2c/5d3/339a2c5d32114c64a045db1daf5daa7a.jpg)
![](https://habrastorage.org/files/322/989/daf/322989dafc044368902c54a4344924a8.jpg)
![](https://habrastorage.org/files/68d/34d/e51/68d34de5160b46fa9d39ff9392fb7bd5.jpg)
![](https://habrastorage.org/files/e4b/202/0bd/e4b2020bd4fe44db86474585d621ce55.jpg)
К сожалению, чехарда с версиями 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 уже распознавала данные так, как надо.
![](https://habrastorage.org/files/a2b/e1f/28d/a2be1f28d9c9434796258d9ebd7b7d9d.png)
![](https://habrastorage.org/files/15e/b9a/0dd/15eb9a0dda7b402da3532e28d7608e5d.png)
Конечно, как только спрос на продукт подтвердился, разработка переехала в штат. Кстати, как раз сейчас мы ищем нового руководителя группы iOS-разработки. Требования простые – вы крутой специалист с опытом от 3-х лет и хорошим портфолио за плечами. Если интересно, подробности здесь.
Вы спросите – а что же Android? Как мы уже говорили, компания изначально осторожничала в отношении новых мобильных платформ, и мы начали разрабатывать под Android только когда у нас появилась уверенность, что эта платформа будет популярна (пока этого не произошло, читатели нашего блога оставили примерно две сотни комментариев с вопросами, когда же выйдут наши мобильные продукты под Android). В результате первый BCR для этой платформы вышел аж на целый год позже, чем под iOS.
![](https://habrastorage.org/files/051/0ae/53b/0510ae53b63d4314a851e89381d44398.png)
![](https://habrastorage.org/files/a84/59a/aa9/a8459aaa9a9a47f78c1e3a8c66b9d31d.png)
Растущая популярность устройств на 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 сети
• эта сеть должна была быть публичной и позволять подобный обмен данными.
По правде сказать, даже в одной и той же сетке обмен срабатывал не каждый раз, и мы эту функциональность не стали развивать дальше.
![](https://habrastorage.org/files/6b4/047/d58/6b4047d58d7e46a5987831351cd101c3.png)
В итоге мы поняли, что самый простой и популярный способ обмена – это старая добрая электронная почта. И сейчас реализован такой сценарий обмена: после сканирования чужой визитки пользователь сразу же видит на экране большую кнопку «Отправить свою визитку». Он на неё жмёт, и по старинке, по email отправляется письмо с приветственным текстом примерно такого содержания:
Шаблон текста, разумеется, можно предварительно настроить. К письму прикрепляется изображение визитки и файл в формате VCF. Нам кажется, что для обмена электронными визитками это на сегодняшний день самый живой сценарий.
Конечно, к приложениям для чтения визиток разработчики любят прикручивать всякую «магию» – и мы не исключение. Например, недавно (май 2015) в нашем приложении появился автозахват – теперь не нужно нажимать на спуск камеры, достаточно просто навести её на визитку – фокусировка, определение границ, обрезка фона, улучшение изображение и распознавание происходят «автомагически» и за долю секунды. Скоро в BCR появится дополнение профиля данными из некоторых соцсетей и несколько других крутых фишек.
Последние лет десять все пророчат смерть бумажным визиткам, но годы идут, а люди так и продолжают обмениваться этими кусочками бумаги. Возможно, лет через 5-10 появится единый формат электронного обмена контактными данными с ботами через blockchain c big data и deep machine learning, и мы, конечно, уже к этому готовимся, а до тех пор тема фотографирования и распознавания визиток останется востребованной.
Ну а о том, как мы пытались сделать мобильный FineReader и что из этого вышло, читайте во второй серии. Не переключайтесь.