Мобильный OCR. Как всё начиналось (часть 2)


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

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

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

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

fbebb6c668c64a6291106b796e1ee43e.pnga666b649330542b8ae89e5293c6450bb.png

А так — MailGrabber:

8a799b34aeba48c7ba64acb6379e7e0b.png9da52264ca4042918d1e6244602be4a3.png

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

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

63213fcc33a8499ea6f6275a0cd815c8.png06318e3f3a6446c88c1fb600364c9f83.png

Внезапно для нас на совсем еще молодой 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:

c049eb482cb6435f95a74d8de613c722.png47747889ec38402a8d196fe67a7c46ae.png

2ad1d13fb5cb48d9846b871feef5e1f9.png

Со временем пользователи уловили, что такое мобильное сканирование: поняли, что прямо на мобильном можно создать копию паспорта для банка, копию договора для бухгалтерии, копию справки, и не надо тащиться к большому офисному копиру-сканеру, а достаточно достать свой 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 мы писали отдельные подробные посты, их можно найти здесь и вот здесь.

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

aa0cd42d45be4f6f9ad398b6a96a6221.png

7bd300bb6a4f439ea845bca8bb9539b1.png

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

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

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

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

3f25c548d5e84271af9e01bd8c79e3dd.PNG2c2ea1c1f09e46489195b42cf667e1b9.PNG

4529eacc98d3466ca053b063ad7179b3.PNG

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

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

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

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

© Habrahabr.ru