IPhone: как использовать функции обнаружения текста iOS

В Vision в iOS 11 есть все необходимое для создания приложения, которое может распознавать текстовые символы с одновременной реализацией. Вам не нужны технические знания в области программирования - ориентироваться в этой функции довольно просто. Более того, реализация проходит без проблем.

Концепция видения

Платформа Vision позволяет легко реализовать любую задачу, которая связана с компьютерными деталями. Эта структура выполняет обнаружение лиц и ориентиров, распознавание штрих-кодов, регистрацию изображений, отслеживание общих функций и обнаружение текста. Vision также позволяет использовать пользовательские модели Core ML для таких задач, как классификация или обнаружение объектов.

VN DetectTextRectanglesRequest

В VN DetectTextRectanglesRequest запрос анализа изображения, который находит области видимого текста на изображении; функция возвращает текстовые символы в виде прямоугольной ограничительной рамки с указанием источника и размера.

Если вы привыкли использовать swift и какое-то время занимаетесь программированием, то вам, вероятно, интересно, в чем польза Vision, когда есть другие функции, такие как image и AVFoundation. Что ж, Vision точнее и прямолинейнее. Эта функция также доступна на различных платформах. Однако использование Vision может потребовать большей вычислительной мощности и времени обработки.

Чтобы использовать Vision для обнаружения текста, вам потребуется Xcode 9 и устройство под управлением iOS 11.

Создание камеры с помощью Avcapture

Во-первых, вам нужно создать камеру с AVCapture; это путем инициализации одного объекта AVcapturesession для выполнения захвата в реальном времени или в автономном режиме. После этого сделайте сеанс подключения к устройству.

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

  1. Откройте свой стартовый проект. Все виды в раскадровке должны быть готовы и настроены для вас.
  2. На ViewController.swift, ищите раздел кода с функциями и выходами.
  3. Под розеткой-ImageView, dобъявить сеанс для AVcapturesession - это используется всякий раз, когда вы хотите, чтобы действия выполнялись на основе прямой трансляции.
  4. Установить AVcapturesession и AVmediatype на видео, так как вы будете выполнять съемку камеры, чтобы она работала непрерывно
  5. Определите устройство вывода и ввода
  6. Вход - это то, что будет видеть камера, а выход - видео с заданным форматом типа KCVPixelFormatType_32GRA.
  7. Наконец, добавьте подслой который содержит видео на imageView и начать сеанс. Эта функция известна как inViewdidload. Также необходимо установить рамку слоя.

Вызовите функцию в viewWillAppear метод.

Поскольку границы еще не определены, переопределите viewDidLayoutSubviews () метод обновления привязанных слоев.

После выпуска iOS 10 требуется дополнительная запись в Info.plist, которая дает повод для использования камеры. Вы также должны установить Privacy-Camera Usage Description.

Обнаружение текста; Как работает Vision Framework

Чтобы внедрить Vision в приложение, нужно выполнить три шага.

  1. Обработчики - это когда вы хотите, чтобы фреймворк что-то делал после вызова запроса.
  2. Наблюдения - это то, что вы хотите сделать с предоставленными вами данными, начиная с одного запроса
  3. Запросы - это когда вы запрашиваете фреймворк Detect

В идеале вы создаете один текстовый запрос как VNdetecttextrectanglesrequest. Это своего рода VNrequest граничит с текстом. После того, как фреймворк завершит приложение, вы перейдете к вызову Dettexthandler функция. Вы также захотите узнать точный кадр, который был распознан, установите для него значение Reportcharacterboxes= Верно.

После этого определите наблюдения, которые содержат все результаты VNdetecttextrectanglesrequest, не забудьте добавить Vision к выходной камере. Поскольку Vision предоставляет высокоуровневые API, работа с ним безопасна.

Функция проверяет, есть ли Cmsamplebuffer существует и вывезено Avcaptureoutput. Затем вы должны перейти к созданию одной переменной Запросы как 1 тип словаря VNimageoption. В VNmage option - это тип структуры, которая содержит свойства и данные с камеры. Затем вы должны создать Обработчик запросов VNimagerequesthandler и выполните текстовый запрос.

Рисование границ вокруг обнаруженного текста

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

  • Определите точки на вашем обзоре, чтобы помочь вам расположить коробки.
  • После этого создайте CALayeр; использовать Наблюдение за прямоугольником чтобы определить ваши ограничения, облегчая процесс обрисовки рамки.

Теперь у вас есть все функции.

Чтобы соединить ваши точки, начните с асинхронного выполнения кода. Затем вы должны проверить, существует ли регион в ваших результатах из вашего VNTextObservation.

Теперь вы можете вызвать свою функцию, которая нарисует рамку внутри области. Проверьте, есть ли в регионе поля с символами, затем позвоните в службу, которая помещает поля вокруг каждой буквы.

После этого создайте переменную RequestOptions. Теперь вы можете создать VNImageRequestHandler объект и выполните созданный вами текстовый запрос.

Наконец, последний шаг - запуск кода вашего видения в прямом эфире. Вам нужно будет взять видеовыход и преобразовать его в Cmsamplebuffer.

Дополнительные советы

  1. Всегда старайтесь обрезать изображение и обрабатывать только тот участок, который вам нужен. Это сократит время обработки и объем памяти.
  2. Включите исправление языка при работе с нечисловыми символами, а затем отключите его при работе с числовыми символами
  3. Включите проверку для распознанных числовых строк, чтобы подтвердить точность и исключить отображение ложных значений для пользователя.
  4. Контроллер документ-камеры - лучший помощник для распознавания текста, поскольку качество изображения играет важную роль в распознавании текста.
  5. Рассмотрите возможность установки минимальной высоты текста для повышения производительности.

С Vision у вас есть все необходимое для распознавания текста. Поскольку Vision прост в использовании и требует короткого времени для внедрения, его использование почти эквивалентно игре с Lego. Попробуйте протестировать свое приложение на разных объектах, шрифтах, освещении и размерах. Вы также можете произвести впечатление, объединив Vision с Core ML.