IPhone: Как да използвате функциите за откриване на текст на iOS

click fraud protection

Vision в iOS 11 има всичко необходимо, за да създадете приложение, което може да разпознава текстови знаци, като имплементацията се извършва едновременно. Не се нуждаете от технически познания за кодиране - навигацията по функцията е доста проста. Нещо повече, изпълнението е безпроблемно.

Vision Framework

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

VN DetectTextRectanglesRequest

В 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. Накрая добавете a подслой който съдържа видеоклипове към imageView и започнете сесията. Функцията е известна като inViewdidload. Също така трябва да зададете рамката на слоя.

Извикайте функцията в viewWillAppear метод.

Тъй като границите все още не са финализирани, отменете viewDidLayoutSubviews ( ) метод за актуализиране на обвързаните слоеве.

След пускането на iOS 10 е необходим допълнителен запис в Info.plist, това дава причина за използване на камерата. Трябва също да зададете описание на използването на камерата за поверителност.

Разпознаване на текст; Как работи Vision Framework

Има три стъпки за внедряване на Vision в приложението.

  1. Манипулатори - това е, когато искате рамката да направи нещо, след като заявката бъде извикана.
  2. Наблюдения - това е, което искате да направите с предоставените от вас данни, започвайки с една заявка
  3. Заявки – това е, когато поискате фреймворк Detect

В идеалния случай създавате една текстова заявка като VNdetecttextrectanglesrequest. Това е един вид VNrequest която граничи около текста. След като рамката завърши приложението, продължавате да извиквате Dettexthandler функция. Вие също ще искате да знаете точния кадър, който е бил разпознат, задайте го Докладвайте символни кутии=Вярно.

След това дефинирайте наблюденията, които съдържат всички резултати от VNdetecttextrectanglesrequest, не забравяйте да добавите Vision към изходната камера. Тъй като Vision разкрива API на високо ниво, работата с него е сигурна.

Функцията проверява дали Cmsamplebuffer съществува и PutOut Avcaptureoutput. След това трябва да продължите със създаването на една променлива Заявки като 1 Тип речник VNimageoption. В VNmage опцията е тип структура, която съдържа свойства и данни от камерата. След това трябва да създадете VNimagerequesthandle и изпълнете текстовата заявка.

Начертаване на граници около открития текст

Можете да започнете, като имате рамката, за да нарисувате две кутии, една за всяка буква, която открива, а другата за всяка дума. Таблиците са комбинацията от всички полета за знаци, които вашата заявка ще намери.

  • Определете точките във вашия изглед, за да ви помогне да позиционирате кутиите.
  • След това създайте a CALayer; използвайте VN наблюдение на правоъгълник за да дефинирате вашите ограничения, което улеснява процеса на очертаване на кутията.

Вече разполагате с всичките си функции.

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

Вече можете да извикате вашата функция, която ще начертае кутия в областта. Проверете дали има полета за знаци в региона, след което се обадете на услугата, която въвежда поле около всяка буква.

След това създайте променлива Опции за заявка. Вече можете да създадете a VNImageRequestHandler обект и изпълнете текстовата заявка, която сте създали.

И накрая, последната стъпка е да стартирате кода на вашата визия с потока на живо. Ще трябва да вземете видео изхода и да го конвертирате Cmsamplebuffer.

Допълнителни съвети

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

С Vision имате всичко необходимо за разпознаване на текст. Тъй като Vision е лесен за използване и отнема кратко време за изпълнение, използването му е почти еквивалентно на игра с Legos. Опитайте да тествате приложението си върху различни обекти, шрифтове, осветление и размери. Можете също да се впечатлите, като комбинирате Vision с Core ML.