IPhone: як використовувати функції виявлення тексту iOS

Vision в iOS 11 має все, що потрібно для створення програми, яка може розпізнавати текстові символи, а впровадження відбувається одночасно. Вам не потрібні технічні знання з кодування – навігація по цій функції досить проста. Більше того, реалізація є безпроблемною.

Структура бачення

Структура бачення дозволяє легко реалізувати будь-яке завдання, яке включає деталі комп’ютера. Структура виконує визначення орієнтирів обличчя та обличчя, розпізнавання штрих-коду, реєстрацію зображень, загальне відстеження ознак і визначення тексту. Vision також дозволяє використовувати власні моделі Core ML для таких завдань, як класифікація або виявлення об’єктів.

VN DetectTextRectanglesRequest

The VN DetectTextRectanglesRequest це запит аналізу зображення, який знаходить ділянки видимого тексту на зображенні; функція повертає текстові символи у вигляді прямокутної рамки з походженням і розміром.

Якщо ви звикли використовувати swift і деякий час програмували, то вам, напевно, цікаво, яка користь від Vision, коли є інші функції, такі як зображення та 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, це є підставою для використання камери. Вам також слід встановити опис використання конфіденційної камери.

Виявлення тексту; Як працює Vision Framework

Існує три кроки для впровадження Vision у програмі.

  1. Обробники - це коли ви хочете, щоб фреймворк щось зробив після виклику запиту.
  2. Спостереження - це те, що ви хочете зробити з наданими вами даними, починаючи з одного запиту
  3. Запити - це коли ви запитуєте фреймворк Detect

В ідеалі ви створюєте один текстовий запит як VNdetecttextrectanglesrequest. Це свого роду VNrequest що межує навколо тексту. Після того, як фреймворк завершить застосування, ви перейдете до виклику Dettexthandle функція. Ви також захочете дізнатися точний фрейм, який був розпізнаний, установіть його Повідомлення символів=Вірно.

Після цього визначте спостереження, які містять усі результати VNdetecttextrectanglesrequest, не забудьте додати Vision до вихідної камери. Оскільки Vision відкриває API високого рівня, робота з ним безпечна.

Функція перевіряє, чи є Cmsamplebuffer існує і PutOut Avcaptureoutput. Потім слід перейти до створення однієї змінної Запити як 1 Тип словника VNimageoption. The VNmage Параметр — це тип структури, що містить властивості та дані з камери. Потім слід створити VNimagerequesthandle і виконати текстовий запит.

Нанесення меж навколо виявленого тексту

Ви можете почати з того, що маєте структуру, щоб намалювати дві коробки, одну для кожної букви, яку вона виявляє, а іншу — для кожного слова. Таблиці – це комбінація всіх символів, які знайдете у вашому запиті.

  • Визначте точки на своєму виді, щоб допомогти вам розташувати квадрати.
  • Після цього створіть a CALayer; використання VNпрямокутникспостереження щоб визначити ваші обмеження, полегшивши процес окреслення рамки.

Тепер усі ваші функції викладені.

Щоб з’єднати свої точки, почніть з асинхронного виконання коду. Потім вам слід перевірити, чи існує регіон у ваших результатах VNTextObservation.

Тепер ви можете викликати свою функцію, яка намалюватиме квадрат у межах області. Перевірте, чи є в регіоні поля для символів, а потім зателефонуйте в службу, яка створює поле навколо кожної літери.

Після цього створіть змінну Параметри запиту. Тепер ви можете створити a VNImageRequestHandler об’єкт і виконайте створений вами текстовий запит.

Нарешті, останній крок – запуск коду вашого бачення в прямому ефірі. Вам потрібно буде взяти відеовихід і конвертувати його в Cmsamplebuffer.

Додаткові поради

  1. Завжди намагайтеся обрізати зображення та обробляти лише той розділ, який вам потрібен. Це зменшить час обробки та обсяг пам’яті
  2. Увімкніть корекцію мови під час роботи з нечисловими символами, а потім вимкніть її під час роботи з числовими символами
  3. Включіть перевірку розпізнаних рядків чисел, щоб підтвердити точність і виключити показ помилкового значення для користувача.
  4. Контролер документ-камери є найкращим компаньйоном для розпізнавання тексту, оскільки якість зображення відіграє важливу роль у розпізнаванні тексту.
  5. Подумайте про встановлення мінімальної висоти тексту, щоб підвищити продуктивність.

З Vision у вас є все необхідне для розпізнавання тексту. Оскільки Vision простий у використанні та займає короткий час для впровадження, його використання майже еквівалентне грі з Legos. Спробуйте протестувати свою програму на різних об’єктах, шрифтах, освітленні та розмірах. Ви також можете вразити себе, поєднавши Vision з Core ML.