IPhone: kā izmantot iOS teksta noteikšanas funkcijas

Vision operētājsistēmā iOS 11 ir viss nepieciešamais, lai izveidotu lietotni, kas var atpazīt teksta rakstzīmes, un tās tiek ieviestas vienlaikus. Jums nav nepieciešamas tehniskās kodēšanas zināšanas – navigācija pa funkciju ir pavisam vienkārša. Turklāt ieviešana ir nemanāma.

Vīzijas ietvars

Vīzijas sistēma ļauj viegli īstenot jebkuru uzdevumu, kas saistīts ar datora detaļām. Struktūra veic sejas un sejas orientieru noteikšanu, svītrkoda atpazīšanu, attēlu reģistrāciju, vispārīgu funkciju izsekošanu un teksta noteikšanu. Vision arī ļauj izmantot pielāgotus Core ML modeļus tādiem uzdevumiem kā klasifikācija vai objektu noteikšana.

VN DetectTextRectanglesRequest

The VN DetectTextRectanglesRequest ir attēla analīzes pieprasījums, kas attēlā atrod redzamā teksta apgabalus; līdzeklis atgriež teksta rakstzīmes kā taisnstūrveida ierobežojošo lodziņu ar izcelsmi un izmēru.

Ja esat pieradis izmantot swift un jau kādu laiku programmējat, tad, iespējams, rodas jautājums, kāda ir Vision izmantošana, ja ir arī citas funkcijas, piemēram, attēls un AVFoundation. Vision ir precīzāks un vienkāršāks. Šī funkcija ir pieejama arī dažādās platformās. Tomēr, izmantojot Vision, var būt nepieciešama lielāka apstrādes jauda un apstrādes laiks.

Lai teksta noteikšanai izmantotu Vision, jums būs nepieciešams Xcode 9 un ierīce, kurā darbojas operētājsistēma iOS 11.

Kameras izveide ar Avcapture

Pirmkārt, jums ir jāizveido kamera ar AVCapture; tas notiek, inicializējot viena objekta AVcapturesessiju, lai veiktu tveršanu reāllaikā vai bezsaistē. Pēc tam veiciet sesiju ar ierīces savienojumu.

Lai ietaupītu laiku no lietotnes lietotāja saskarnes izveides, apsveriet sākuma projektu, jo tas dos jums laiku koncentrēties uz Vision ietvara apguvi.

  1. Atveriet sākuma projektu. Scenogrāfa skatiem ir jābūt gataviem un iestatītiem jums.
  2. Uz ViewController.swift, meklē koda sadaļu ar funkcijām un izejām.
  3. Zem izejas -ImageView, ddeklarēt sesiju AVtveršanas sesija - tas tiek izmantots ikreiz, kad vēlaties veikt darbības, pamatojoties uz tiešraides straumi.
  4. Iestatiet AVtveršanas sesija un AVmediatype uz video, jo veiksit fotografēšanu ar kameru, lai tā darbotos nepārtraukti
  5. Definējiet izvades un ievades ierīci
  6. Ievade ir tāda, ko redzēs kamera, un izvade ir video iestatītā veida formātā KCVPixelFormatType_32GRA.
  7. Visbeidzot pievienojiet a apakšslānis kas satur videoklipus imageView un sāciet sesiju. Funkcija ir pazīstama kā inViewdidload. Jums arī jāiestata slāņa rāmis.

Izsauciet funkciju sadaļā skatsParādīsies metodi.

Tā kā robežas vēl nav noteiktas, ignorējiet viewDidLayoutSubviews ( ) metode, lai atjauninātu saistītos slāņus.

Pēc iOS 10 izlaišanas ir nepieciešams papildu ieraksts Info.plist, kas ir iemesls kameras lietošanai. Jums arī jāiestata Privātuma kameras lietošanas apraksts.

Teksta noteikšana; Kā darbojas Vision Framework

Vision ieviešanai lietotnē ir jāveic trīs darbības.

  1. Apdarinātāji - tas ir tad, kad vēlaties, lai sistēma kaut ko darītu pēc pieprasījuma izsaukšanas.
  2. Novērojumi - tas ir tas, ko vēlaties darīt ar jūsu sniegtajiem datiem, sākot ar vienu pieprasījumu
  3. Pieprasījumi - tas ir tad, kad jūs lūdzat Detect framework

Ideālā gadījumā jūs izveidojat vienu teksta pieprasījumu kā VNdetecttextrectanglesrequest. Tas ir sava veida VNpieprasījums kas robežojas ap tekstu. Kad sistēma ir pabeigusi lietojumprogrammu, turpiniet zvanīt uz Dettexthandler funkcija. Vēlēsities arī uzzināt precīzu kadru, kas tika atpazīts, un iestatiet to Atskaites rakstzīmju kastes= Taisnība.

Pēc tam definējiet novērojumus, kas satur visus rezultātus VNdetecttextrectanglesrequest, neaizmirstiet pievienot Vision izvades kamerai. Tā kā Vision atklāj augsta līmeņa API, darbs ar to ir drošs.

Funkcija pārbauda, ​​vai cmsamplebuffer pastāv un PutOut Avcapture izvade. Pēc tam jums vajadzētu turpināt izveidot vienu mainīgo Pieprasījumi kā 1 vārdnīcas veids VNattēla opcija. The VNmage opcija ir struktūras veids, kurā ir rekvizīti un dati no kameras. Pēc tam jums vajadzētu izveidot VNimagerequesthandler un izpildīt teksta pieprasījumu.

Robežu zīmēšana ap atrasto tekstu

Varat sākt ar sistēmu, lai izveidotu divus lodziņus, vienu katram burtam un otru katram vārdam. Tabulas ir visu to rakstzīmju lodziņu kombinācija, kuras atradīs jūsu pieprasījums.

  • Nosakiet punktus savā skatā, lai palīdzētu novietot lodziņus.
  • Pēc tam izveidojiet a CALayer; izmantot VNtaisnstūra novērošana lai definētu savus ierobežojumus, atvieglojot lodziņa iezīmēšanas procesu.

Tagad jums ir noteiktas visas savas funkcijas.

Lai savienotu punktus, vispirms palaidiet kodu asinhroni. Pēc tam jums vajadzētu pārbaudīt, vai jūsu rezultātos ir reģions VNTextNovērošana.

Tagad varat izsaukt savu funkciju, kas apgabalā iezīmēs lodziņu. Pārbaudiet, vai reģionā ir rakstzīmju kastes, un pēc tam izsauciet pakalpojumu, kas ap katru burtu ievieto lodziņu.

Pēc tam izveidojiet mainīgo PieprasījumuOpcijas. Tagad varat izveidot a VNImageRequestHandler objektu un izpildiet izveidoto teksta pieprasījumu.

Visbeidzot, pēdējais solis ir jūsu redzes koda palaišana tiešraides straumē. Jums būs jāņem video izvade un jāpārvērš tā uz cmsamplebuffer.

Papildu padomi

  1. Vienmēr mēģiniet apgriezt attēlu un apstrādāt tikai vajadzīgo sadaļu. Tas samazinās apstrādes laiku un atmiņas nospiedumu
  2. Ieslēdziet valodas korekciju, strādājot ar rakstzīmēm, kas nav ciparu, un izslēdziet to, strādājot ar ciparu rakstzīmēm
  3. Iekļaujiet atpazīto skaitļu virkņu validāciju, lai apstiprinātu precizitāti un novērstu nepatiesu vērtību rādīšanu lietotājam.
  4. Dokumentu kameras kontrolleris ir labākais teksta atpazīšanas palīgs, jo attēla kvalitātei ir liela nozīme teksta atpazīšanā.
  5. Apsveriet iespēju iestatīt minimālo teksta augstumu, lai palielinātu veiktspēju.

Izmantojot Vision, jums ir viss nepieciešamais teksta atpazīšanai. Tā kā Vision ir viegli lietojams un ieviešana aizņem īsu laiku, tā lietošana ir gandrīz līdzvērtīga spēlēšanai ar Lego. Mēģiniet pārbaudīt savu lietotni ar dažādiem objektiem, fontiem, apgaismojumu un izmēriem. Varat arī pārsteigt par sevi, apvienojot Vision ar Core ML.