- 5 лучших Android-приложений для распознавания изображений и текстов
- Лучшие приложения Android OCR для распознавания изображений и текстов
- 1) CamScanner
- Скачать сейчас: здесь
- 2) Google Keep
- Загрузите его сейчас: здесь
- 3) Microsoft Office Lens
- Загрузите его сейчас: здесь
- 4) Text Fairy
- Загрузите его сейчас: здесь
- 5) Сканер текста [OCR]
- Создание Android приложения для распознавания текста за 10 Минут. Mobile Vision CodeLab
- Видео версия туториала
- Обновление сервисов Google Play
- Добавление зависимости Google Play Services и создание приложения для запуска
- Настройте TextRecognizer и CameraSource
- Создание OcrDetectorProcessor
- Рисование текста на экране
- Воспроизведение текста при нажатии на нём
- Завершение
5 лучших Android-приложений для распознавания изображений и текстов
Цифровой мир имеет множество преимуществ, и лучшие приложения Android OCR позволяют сканировать печатные документы на предмет текста и изображений (чтобы сохранить копию на вашем телефоне Android) — это одна из многих вещей, которые мы способны сейчас. Эта технология, известная как OCR или оптическое распознавание символов, работает только с печатными документами или книгами.
Если вы хотите сканировать рукописный текст, вы можете попробовать приложения для сканирования. Приложениям OCR также требуется прилично освещенная комната, поскольку они используют камеру для сканирования документа на предмет слов и изображений. Хотя рукописные заметки не работают, большинство приложений OCR могут ловко обнаруживать курсивное письмо чаще, чем нет.
Итак, какие приложения для распознавания текста являются одними из лучших на рынке? Что ж, их много. Имея это в виду, мы собираемся поговорить о пяти из лучших доступных приложений, которые значительно облегчат вашу работу.
Итак, давайте посмотрим.
Лучшие приложения Android OCR для распознавания изображений и текстов
1) CamScanner
Это комплексное мобильное приложение для сканирования, которое позволяет просматривать длинные документы и печатный текст и сохранять их на смартфоне. Он поставляется с такими функциями, как интеллектуальная обрезка, которая может ловко определять края документа и соответственно обрезать. Приложение также может обнаруживать текст, который вы найдете на изображениях, поэтому оно не ограничивается только печатными документами. Кроме того, если вы хотите распечатать то, что только что отсканировали, поддержка AirPrint в приложении поможет вам распечатать это на ближайшем беспроводном принтере, не отодвигаясь ни на дюйм от вашего местоположения.
Приложение также позволяет вносить изменения в документ с возможностью даже добавления водяных знаков на документы, чтобы избежать плагиата. Вы также можете установить пароль для некоторых важных документов, чтобы защитить их от посторонних глаз.
Наконец, приложение также поставляется с веб-приложением (camscanner.com), позволяющим получить доступ все ваши документы Android в браузере. Контент синхронизируется практически сразу, что позволяет переключаться между платформами. Приложение также поставляется с премиальным сервисом, который добавляет еще несколько функций. Стоимость подписки составляет 4,99 доллара США в месяц или 49,99 доллара США в год.
Скачать сейчас: здесь
2) Google Keep
Google Keep — одно из популярных приложений для создания заметок. Он также имеет функцию контрольного списка, что делает его самым любимым приложением для заметок на Android. Но знаете ли вы, что по умолчанию он также имеет функцию распознавания текста, позволяющую сканировать документы и изображения на предмет предложений. Процесс получения текста здесь довольно прост. Вам необходимо открыть новую заметку, коснуться кнопки камеры, сделать снимок документа и коснуться «Захватить текст изображения» в дополнительном меню приложения.
Получив текст из изображения, затем вы можете добавить ярлыки и теги, чтобы отделить их от остальных документов в Keep.. Поскольку у Google Keep есть веб-версия, все ваши отсканированные документы отображаются во всех версиях приложения при условии, что вы вошли в систему с одним и тем же адресом электронной почты. Самое приятное то, что Google Keep можно загрузить совершенно бесплатно, в нем нет рекламы или покупок в приложении. Если у вас есть смартфон или планшет Android с включенными сервисами Google Play, вероятно, на вашем устройстве уже установлен Google Keep.
Загрузите его сейчас: здесь
3) Microsoft Office Lens
Microsoft добилась огромных успехов в сегменте продуктивности, и приложение Office Lens прекрасный пример этого. Неудивительно, что Office Lens был назван одним из лучших приложений 2015 года в США и Пуэрто-Рико. Проще говоря, Office Lens позволяет вам делать снимки и сохранять их отсканированные версии на вашем устройстве. В отличие от традиционных сканеров OCR, Office Lens также может сканировать рукописные заметки, что делает его невероятно полезным в классе.
Приложение также позволяет сканировать визитные карточки и сохранять их информацию непосредственно в ваших контактах. Благодаря поддержке OneNote и OneDrive все ваши сохраненные заметки и документы доступны со всех основных платформ, включая ПК и Mac. Отсканированные изображения можно преобразовать в файлы PDF, PowerPoint или Word в зависимости от ваших предпочтений. Помимо облачного хранилища, устройство также может храниться на вашем телефоне для легкого доступа. Что касается приложений OCR, Office Lens определенно является одним из лучших. Приложение можно бесплатно загрузить в магазине Google Play, в нем нет рекламы или встроенных покупок.
Загрузите его сейчас: здесь
4) Text Fairy
Это независимо разработанное приложение со встроенными функциями распознавания текста. Он может помочь вам сканировать длинные листы или документы на предмет печатного текста и сохранять его на вашем устройстве для последующего просмотра. Кроме того, текст, который вы извлекаете из приложения, можно редактировать и изменять по своему усмотрению, что поможет вам быстро внести некоторые изменения. Вы также можете исправить точку обзора изображений с помощью этого приложения, что является удобной функцией.
В целом Text Fairy — довольно простое приложение для оптического распознавания текста, которое выполняет свою работу, когда вам это нужно. Поскольку это сканер OCR, он не может читать рукописный текст, так что у вас все в порядке, пока вы придерживаетесь печатного текста. Наконец, приложение можно загрузить бесплатно, в нем нет рекламы и покупок в приложении.
Загрузите его сейчас: здесь
5) Сканер текста [OCR]
Это приложение немного отличается от Text Fairy тем, что поддерживает рукописный текст. Он поставляется с высокоскоростным сканированием и чтением, чтобы дать вам наилучшие результаты всего за несколько секунд. Одним из вариантов использования такого приложения является сканирование длинных URL-адресов, которые отображаются в печатных документах и файлах, что может занять некоторое время для ввода вручную.
Лучшее приложение OCR также позволяет вам отсканируйте фотографии из своего альбома, поэтому здесь нет недостатка в функциях. Приложение можно бесплатно загрузить из Play Store, хотя вам придется обходиться рекламой. Также есть покупки в приложении. Сканер текста совместим со смартфонами и планшетами под управлением Android 4.0 и выше. Обязательно посмотрите.
Источник
Создание Android приложения для распознавания текста за 10 Минут. Mobile Vision CodeLab
Видео версия туториала
Оптическое распознавание символов (англ. Optical Character Recognition, сокр. OCR) дает компьютеру возможность читать текст на изображении, позволяя приложениям понимать знаки, статьи, листовки, страницы текста, меню или что угодно в виде текста. Mobile Vision Text API предоставляет разработчикам Android мощную и надежную возможность OCR , которая поддерживает большинство устройств Android и не увеличивает размер вашего приложения.
В этом туториале вы создадите приложение, в котором в процессе видеосъёмки будет распознаваться и воспроизводиться весь текст, попадающий в кадр.
Также мы публиковали статьи о других функциях Mobile Vision:
Исходный код можно скачать тут.
Или склонировать репозиторий GitHub из командной строки:
Репозиторий visionSamples содержит много примеров проектов, связанных с Mobile Vision . В этом уроке используется только два:
ocr-codelab/ocr-reader-start — начальный код, который вы будете использовать в этом уроке.
ocr-codelab/ocr-reader-complete — полный код готового приложения. Вы можете использовать его для устранения неполадок или перейти сразу к рабочему приложению.
Обновление сервисов Google Play
Возможно, вам потребуется обновить установленную версию Google Repository , чтобы использовать Mobile Vision Text API .
Откройте Android Studio и откройте SDK Manager :
Убедитесь, что Google Repository обновлен. Он должен быть не менее 26 версии.
Добавление зависимости Google Play Services и создание приложения для запуска
Теперь можно открывать стартовый проект:
Выберите каталог запуска ocr-reader из загруженного кода (File > Open > ocr-codelab/ocr-reader-start ).
Добавьте зависимость Google Play Services к приложению. Без этой зависимости Text API не будет доступен.
Проект может указать на отсутствие файла integer/google_play_services_version и выдать ошибку. Это нормально, мы исправим это на следующем шаге.
Откройте файл build.gradle в app модуле и измените блок зависимостей, включив туда зависимость play-services-vision . Когда все будет готово, файл должен выглядеть так:
Нажмите кнопку синхронизации Gradle .
Нажмите кнопку запуска.
Через несколько секунд вы увидите экран «Read Text», но это всего лишь черный экран.
Сейчас ничего не происходит, потому что CameraSource не настроен. Давайте сделаем это.
Если у вас что-то не получается, вы можете открыть проект ocr-reader-complete и убедиться, что он работает правильно. Этот проект является готовой версией урока, и если эта версия не работает, вы должны проверить, что всё в порядке с вашим устройством и настройками Android Studio .
Настройте TextRecognizer и CameraSource
Чтобы начать работу, мы создадим наш TextRecognizer . Этот объект-детектор обрабатывает изображения и определяет, какой текст появляется внутри них. После инициализации TextRecognizer может использоваться для обнаружения текста во всех типах изображений. Найдите метод createCameraSource и создайте TextRecognizer :
Теперь TextRecognizer готов к работе. Однако, возможно, он еще не работает. Если на устройстве недостаточно памяти или Google Play Services не может загрузить зависимости OCR , объект TextRecognizer работать не будет. Прежде чем мы начнем использовать его для распознавания текста, мы должны проверить, что он готов. Мы добавим эту проверку в createCameraSource после инициализации TextRecognizer :
Теперь, когда мы проверили, что TextRecognizer готов к работе, мы можем использовать его для распознавания отдельных кадров. Но мы хотим сделать что-то более интересное: читать текст в режиме видеосъёмки. Для этого мы создадим CameraSource , который предварительно настроен для управления камерой. Нам необходимо установить высокое разрешение съёмки и включить автофокусировку, чтобы справиться с задачей распознавания небольшого текста. Если вы уверены, что ваши пользователи будут смотреть на большие блоки текста, например вывески, вы можете использовать более низкое разрешение, и тогда обработка кадров будет происходить быстрее:
Вот как должен выглядеть метод createCameraSource , когда вы закончите:
Если вы запустите приложение, то увидите, что началась видеосъёмка! Но для обработки изображений с камеры нам нужно дописать этот последний TODO в createCameraSource : создать Processor для обработки текста по мере его поступления.
Создание OcrDetectorProcessor
Сейчас ваше приложение может обнаруживать текст на отдельных кадрах, используя метод обнаружения в TextRecognizer . Так можно найти текст, например, на фотографии. Но для того, чтобы читать текст прямо во время видеосъёмки, нужно реализовать Processor , который будет обрабатывать текст, как только он появится на экране.
Перейдите в класс OcrDetectorProcessor реализуйте интерфейс Detector.Processor :
Для реализации этого интерфейса требуется переопределить два метода. Первый, receiveDetections , получает на вход TextBlocks из TextRecognizer по мере их обнаружения. Второй, release , используется для освобождения от ресурсов при уничтожении TextRecognizer . В этом случае нам нужно просто очистить графическое полотно, что приведёт к удалению всех объектов OcrGraphic .
Мы получим TextBlocks и создадим объекты OcrGraphic для каждого текстового блока, обнаруженного процессором. Логику их рисования мы реализуем на следующем шаге.
Теперь, когда процессор готов, мы должны настроить textRecognizer для его использования. Вернитесь к последнему оставшемуся TODO в методе createCameraSource в OcrCaptureActivity :
Теперь запустите приложение. На этом этапе при наведении камеры на текст вы увидите отладочные сообщения «Text detected!» в Android Monitor Logcat ! Но это не очень наглядный способ визуализации того, что видит TextRecognizer , правда?
На следующем шаге мы отрисуем этот текст на экране.
Рисование текста на экране
Давайте реализуем метод draw в OcrGraphic . Нам нужно понять, есть ли на изображении текст, преобразовать координаты его границ в рамки канваса, а затем нарисовать и границы, и текст.
Запустите приложение и протестируйте его на этом образце текста:
Вы должны увидеть, что на экране появляется рамка с текстом в ней! Вы можете поиграть с цветом текста, используя TEXT_COLOR .
Как насчет этого?
Рамка вокруг текста выглядит правильно, но текст находится в нижней её части.
Это связано с тем, что движок передает весь текст, который он распознает в TextBlock в виде одного предложения, даже если он видит предложение, разбитое на несколько строк. Если вам нужно получить целое предложение, то это очень удобно. Но что, если вы хотите знать, где расположена каждая отдельная строка текста?
Вы можете получить Lines из TextBlock , вызвав getComponents , а затем, перебирая каждую строку, запросто получить её местоположение и текст внутри неё. Это позволяет рисовать текст в том месте, где он действительно появляется.
Попробуйте снова этот текст:
Отлично! Вы даже можете разбивать найденный текст на ещё более мелкие составляющие, исходя из ваших потребностей. Можно вызвать getComponents на каждой строке и получить Elements (слова на латинице). Есть возможность настройки textSize , чтобы текст занимал столько места, сколько занимает реальный текст на экране.
Воспроизведение текста при нажатии на нём
Теперь текст с камеры преобразуется в структурированные строки, и эти строки отображаются на экране. Давайте сделаем с ними что-нибудь еще.
Используя TextToSpeech API , встроенный в Android , и метод contains в OcrGraphic , мы можем научить приложение говорить вслух, при нажатии на текст.
Сначала давайте реализуем метод contains в OcrGraphic . Нам просто нужно проверить, находятся ли координаты x и y в пределах рамки отображаемого текста.
OcrGraphic.java
Вы можете заметить, что здесь много общего с методом Draw ! В настоящем проекте вам следовало бы добиться переиспользования кода, но здесь мы оставим всё как есть просто ради примера.
Теперь перейдем к методу onTap в OcrCaptureActivity и обработаем нажатие по тексту, если он есть в этом месте.
Вы можете запустить приложение и через Android Monitor Logcat убедиться, что нажатие на текст действительно обрабатывается.
Давайте же заставим наше приложение говорить! Перейдите в начало Activity и найдите метод onCreate . При запуске приложения мы должны инициализировать движок TextToSpeech для дальнейшего использования.
Несмотря на то, что мы корректно инициализировали TextToSpeech , как правило, всё равно нужно обрабатывать общие ошибки, например, когда движок всё ещё не готов при вашем первом нажатии на текст.
TextToSpeech также зависим от языка распознавания. Вы можете изменить язык на основе языка распознанного текста. Распознавание языка не встроено в Mobile Vision Text API , но оно доступно через Google Translate API . В качестве языка для распознавания текста можно использовать язык устройства пользователя.
Отлично, осталось только добавить код воспроизведения текста в методе onTap .
Теперь, когда вы запустите приложение и нажмёте на обнаруженный текст, ваше устройство воспроизведёт его. Попробуйте!
Завершение
Теперь у вас есть приложение, которое может распознавать текст с камеры и проговаривать его вслух!
Полученные знания по распознаванию текста вы можете применить и в других ваших приложениях. Например, читать адреса и номера телефонов с визитных карточек, производить поиск по тексту с фотографий различных документов. Одним словом, применяйте OCR везде, где вам может потребоваться распознать текст на изображении.
Источник