В предыдущем посте мы начали рассказывать, как OCR-технологии «переезжали» с настольных компьютеров в смартфоны – а началось всё с приложения для сканирования визиток Business Card Reader. Но сканирование визиток – это только один сценарий, где нужно мобильное распознавание. О том, как решались другие задачи хотелки пользователей, – читайте ниже.

Как мы уже говорили, перенос технологии распознавания на смартфоны связан с кучей ограничений и сложностей. Главной была и остаётся ресурсоёмкость технологии – невозможно перенести ее в мобильное устройство как есть. Но у нас уже с 2007 года был готовый инструментарий разработчика ABBYY Mobile OCR Engine, который позволял на мобильном оцифровать изображение и выдать результат в формате TXT без сохранения форматирования. И для начала в 2011 году мы решили воплотить в жизнь небольшие пользовательские сценарии, в которых такое «элементарное» распознавание вполне подходило.

Нам хотелось понять, какие сценарии востребованы, поэтому мы выпустили экспериментальную пятёрку Grabber-ов для iOS: PhoneGrabber, MailGrabber, LinkGrabber, StreetGrabber и всем известный TextGrabber. У каждого приложения была своя функция. Например, PhoneGrabber сканировал номер телефона из объявления и тут же предлагал позвонить, MailGrabber открывал почтовый клиент и предлагал отправить на распознанный адрес электронное письмо, и так далее.

Так выглядел PhoneGrabber:



А так – MailGrabber:



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

Ностальгичекая версия 1.0:



Внезапно для нас на совсем еще молодой TextGrabber сделал обзор один из авторов американского LifeHacker, назвав приложение «The Best Image-to-Text App for iPhone». Заголовок этого обзора совпал с одним их популярных поисковых запросов, по которым ищут подобные приложения. Благодаря этому и по сей день, спустя 5 лет, с обзора в приложение приходят пользователи.

После выпуска из отзывов в AppStore мы поняли, что пользователям не хватает возможности перевода (например, меню в ресторане за границей или инструкция от техники на китайском). Так в 2012 году вышла версия TextGrabber со встроенным полнотекстовым переводом. Сценарий тот же – фрагмент текста с картинки преобразовывается в электронный вид, а потом переводится на выбранный язык.

Примерно через год после запуска нам написали сразу из нескольких обществ слабовидящих разных стран мира и попросили поддержать технологию VoiceOver от Apple, чтобы слепые люди тоже могли «читать» с любой картинки с помощью TextGrabber.

В итоге, из всей Grabber-пятёрки самым востребованным оказался TextGrabber, который на сегодняшний день поддерживает 61 язык распознавания, а переводит на 104 языка. Но другие сценарии не забыты (и здесь маркетологи просили написать «следите за нашими обновлениями»).

Примерно в тоже время мы создали библиотеки, которые умели обрезать лишний фон на фото, убирать трапецию, шумы, делать фото контрастными. В конце 2011 года мы собрали эти библиотеки в ABBYY Mobile Imaging SDK (об этой технологии мы подробно писали в блоге). В тоже время в AppStore стали появляться так называемые «мобильные сканеры». Тогда один из разработчиков нашей команды предложил сделать сканер на основе MI SDK. В результате в 2012 году на рынок вышел FineScanner iOS.

Основная идея приложения – сделать из iPhone (iPad) адекватную альтернативу настольному сканеру. FineScanner фотографировал, обрезал и выравнивал изображение, убирал заломы и тени, применял фильтры, чтобы оптимизировать документ для просмотра или печати, создавал из сканов PDF или JPG файлы.

Первая версия приложения была без распознавания. Посыпались вопросы: «А зачем это вообще нужно, если есть камера телефона?». Это был похоже на ситуацию с Business Card Reader, когда все вокруг спрашивали, зачем нужно сканирование визитки, если можно её просто сфотографировать. Мы объясняли, что при простом фотографировании остаётся много «мусора» – края стола, тень от руки. FineScanner все это исправляет, делает изображение выбеленным, буквы чёткими, превращает фото в PDF.

На тот момент большим преимуществом перед конкурентами стала возможность без дополнительных настроек создавать многостраничные документы. Тогда, кажется, у большинства мобильных сканеров был отдельный режим, в который нужно переключаться прежде, чем снимать несколько страниц сразу. FineScanner же сразу понимал, что несколько страниц за один «сет» нужно объединить в единый документ.

Так выглядела первая версия FineScanner iOS:





Со временем пользователи уловили, что такое мобильное сканирование: поняли, что прямо на мобильном можно создать копию паспорта для банка, копию договора для бухгалтерии, копию справки, и не надо тащиться к большому офисному копиру-сканеру, а достаточно достать свой iPhone. Но они опять попросили не просто сканер, а сканер + OCR.

Так как FineScanner был предназначен для работы с целыми страницами документов, а не фрагментами текста, логично напрашивалось распознавание с сохранением форматирования. Значит, распознавание прямо на устройстве не подходило. Мы реализовали распознавание на сервере FineReader Online. Здесь не было регистрации, мы встроили подходящую мобильным пользователям модель монетизации распознавания на основе подписки, хотя в 2014 году автовозобновляемая подписка еще не была так популярна, как сегодня. К тому же Apple довольно жестко регламентировал типы сервисов, которые могут ее использовать, и мы до последнего момента не знали одобрит или нет Apple Review Team такую подписку на OCR в FineScanner.

С OCR на борту FineScanner стал полноценным сканером в смартфоне, который может быстро сделать копию документа в PDF или JPG, а затем распознать его текст на 193 языках и сохранить в 12 популярных форматов, включая Word, Excel, Power Point. При этом в документе уцелеют таблицы, заголовки, форматирование из оригинала, как если бы вы работали с традиционным сканером и ПК. Готовые документы можно открывать в любом приложении, которое умеет работать с этими форматами, перенести в облачные хранилища, напечатать, отправить по электронной почте.

Но на этом история развития FineScanner не заканчивается. Мы подумали, раз уж говорим, что FineScanner – альтернатива настольному сканеру, и это так для обычных офисных документов, то почему бы не попробовать докрутить технологию для сканирования книг (мы знали, что около 30% наших пользователей сканировали книги)? Главная проблема с книгами, когда их фотографируешь смартфоном, а не прижимаешь крышкой большого сканера, это изгибы страниц и строк. Ты должен фоткать каждую страницу в отдельности, а не разворот сразу, но страницы все равно будут изогнутыми, так как при съемке «с рук» невозможно их прижать на 100%.

Результатом решения этой задачи стала технология BookScan, первый прототип которой мы показали на Mobile World Congress в феврале 2015 года. А в декабре 2015 вышла пятая версия FineScanner с режимом сканирования книг на борту.

Как это работает? При переключении в режим «Книга» FineScanner показывает видоискатель, настроенный для захвата разворота книги (2 полосы сразу). После фотографирования происходит отправка и обработка изображения на сервере. Приложение возвращает пользователю два отдельных изображения – левой и правой страниц с уже и обрезанным лишним фоном и исправленными геометрическими искажениями. Про технологию BookScan мы писали отдельные подробные посты, их можно найти здесь и вот здесь.

Вот так выглядит процесс сканирования книги:





Таковы самые главные вехи в развитии мобильных приложений ABBYY до сегодняшнего дня.

Вы наверняка спросите – почему «первопроходцами» всегда становятся iOS-версии, ведь Android тоже очень распространённая система? Всё очень просто. Для того, чтобы OCR работал хорошо, необходима камера не меньше 3 мегапикселей. Многие устройства на Android долго не отвечали этому требованию. Моделей смартфонов и планшетов на iOS не более двух десятков и у них одно ПО камеры. Устройств же на Android сотни, и каждый производитель старается улучшить ПО камеры на свое усмотрение. Становится практически невозможно сделать сканер, который одинаково хорошо работает на всех Android устройствах. С каждой новой прошивкой каждого производителя могут всплыть новые баги. И процесс подгонки становится бесконечным.

Поэтому сначала мы делали наши приложения только под iOS. Но когда стало ясно, что Android занимает все бОльшую долю рынка по количеству устройств на руках, мы стали делать приложения и под него. Так, TextGrabber для Android увидел свет в 2013 году (через 2 года после iOS), а FineScanner совсем недавно – в июле 2016.

Разумеется, мы не собираемся останавливаться на достигнутом. В планах у нас улучшение существующего и создание нового. Во-первых, скоро обновится дизайн всех приложений – как на iOS, так и на Android. Вот как выглядит обновленный FineScanner для iOS





Мы думаем над тем, как комбинировать онлайн и офлайн OCR, чтобы ускорить обработку документов. Но есть и другие, интересные планы, пока не будем раскрывать деталей.

В нашей компании постоянно создаются новые технологии, например, для распознавания чеков, инвойсов, паспортов, и мы каждый раз оцениваем, что из них появится в наших мобильных приложениях. Если у вас есть идеи полезных и удобных сценариев мобильного сканирования – пишите в комментариях, мы рассматриваем любые предложения.

Вот и всё! Если у вас ещё остались какие-то вопросы по истории наших мобильных приложений, задавайте их в комментариях.
Поделиться с друзьями
-->

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


  1. Markscheider
    11.01.2017 12:47

    каждый производитель старается улучшить ПО камеры на свое усмотрение
    Золотые слова. А иногда так наулучшает, что хоть стой, хоть падай :)

    По фичам. Возможно, у вас это уже есть, но спрошу.
    Допустим, я фотографирую документ и хочу сохранить его в pdf. А на документе есть баркод (для ясности пусть будет QR). Возможно, стоит генерировать pdf так, чтобы на месте QR-кода появлялась активная область с возможностью клика (в том случае, если код содержит URL). Либо просто возможность скопировать содержимое кода по right click
    В общем, прикрутите к OCR распознавалку баркодов :)


    1. akimovpro
      11.01.2017 13:51

      Привет. У нас есть распознавалка QR-кодов в TextGrabber — сканере небольших текстов и Business Card Reader — сканере визиток.
      Для сканирования документов есть множество вариантов автоматизации на основе распознавания штрихкодов на страницах и это успешно применяется в наших «больших» B2B-технологиях, но сделать универсальный и негромоздкий механизм в клиентском приложении пока трудно. В штрих-коды чего только не засовывают.


  1. K0styan
    18.01.2017 17:46

    Спасибо за отличную статью, с удовольствием посмотрел на старые «грабберы» :) Но начало FineScanner-а как-то совсем упрощенно описано…

    Да, технологии были. Да, действительно в какой-то момент стало очень заметно, что приложения-сканеры пошли в сторах как грибы после дождя. Но в то же время сами толком не понимали, что в них находят пользователи.

    И на кастдев исследовании (хотя такого термина мы тогда и не знали :) ) проявился любопытный момент — все в голос говорили, что уже привыкли фотографировать документы телефоном. И у всех же была общая боль — раздражало то, что в результате в галерее получалась свалка из личных фото и документов, причем с разрозненными страницами. А в случае специальных приложений все доки лежали аккуратно вместе.

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