„Vision“ sistemoje „iOS 11“ turi viską, ko reikia norint sukurti programą, kuri atpažintų teksto simbolius, kai diegimas vyksta vienu metu. Jums nereikia techninių kodavimo žinių – naršyti funkciją yra gana paprasta. Be to, įgyvendinimas yra sklandus.
Vizija Framework
Vizijos sistema leidžia lengvai įgyvendinti bet kokią užduotį, susijusią su kompiuterio detalėmis. Struktūra atlieka veido ir veido orientyrų aptikimą, brūkšninio kodo atpažinimą, vaizdų registravimą, bendrų funkcijų sekimą ir teksto aptikimą. „Vision“ taip pat leidžia naudoti pasirinktinius „Core ML“ modelius tokioms užduotims kaip klasifikavimas ar objektų aptikimas.
VN DetectTextRectanglesRequest
The VN DetectTextRectanglesRequest yra vaizdo analizės užklausa, kuri randa vaizde matomo teksto sritis; funkcija grąžina teksto simbolius kaip stačiakampį ribojantį laukelį su kilme ir dydžiu.
Jei esate įpratę naudoti „swift“ ir jau kurį laiką programavote, tikriausiai galvojate, kuo naudinga „Vision“, kai yra kitų funkcijų, tokių kaip vaizdas ir AVFoundation. Na, vizija yra tikslesnė ir paprastesnė. Ši funkcija taip pat pasiekiama įvairiose platformose. Tačiau naudojant Vision gali prireikti daugiau apdorojimo galios ir apdorojimo laiko.
Norėdami naudoti „Vision“ teksto aptikimui, jums reikės „Xcode 9“ ir įrenginio, kuriame veikia „iOS 11“.
Fotoaparato kūrimas naudojant „Avcapture“.
Pirmiausia turite sukurti fotoaparatą su AVCapture; tai yra inicijuojant vieno objekto AVcapturesessiją, kad būtų galima užfiksuoti realiuoju laiku arba neprisijungus. Po to užmegzkite seansą prie įrenginio ryšio.
Norėdami sutaupyti laiko kuriant programos vartotojo sąsają, apsvarstykite galimybę pradėti projektą, nes tai suteiks laiko susitelkti ties „Vision“ sistemos mokymu.
- Atidarykite pradinį projektą. Visi siužetinės linijos rodiniai turi būti paruošti ir nustatyti jums.
- Ant ViewController.swift, ieškokite kodo skyriaus su funkcijomis ir išėjimais.
- Po išleidimo anga -„ImageView“, dpaskelbti seansą AV fiksavimo sesija – naudojama, kai norite, kad veiksmai būtų atlikti remiantis tiesiogine transliacija.
- Nustatyti AV fiksavimo sesija ir AV medijos tipas į vaizdo įrašą, nes fotografuosite fotoaparatu, kad jis veiktų nepertraukiamai
- Apibrėžkite išvesties ir įvesties įrenginį
- Įvestis yra tai, ką matys fotoaparatas, o išvestis yra vaizdo įrašas nustatyto formato KCVPixelFormatType_32GRA formatu.
- Galiausiai pridėkite a posluoksnis kuriame yra vaizdo įrašų imageView ir pradėkite sesiją. Funkcija žinoma kaip inViewdidload. Taip pat turite nustatyti sluoksnio rėmą.
Iškvieskite funkciją rodinysBus metodas.
Kadangi ribos dar nėra nustatytos, nepaisykite viewDidLayoutSubviews ( ) būdas atnaujinti susietus sluoksnius.
Išleidus iOS 10, reikalingas papildomas įrašas Info.plist, tai suteikia priežastį naudoti kamerą. Taip pat turėtumėte nustatyti privatumo kameros naudojimo aprašymą.
Teksto aptikimas; Kaip veikia „Vision Framework“.
Yra trys žingsniai, kaip įdiegti „Vision“ programoje.
- Prižiūrėtojai – Tai yra tada, kai norite, kad sistema ką nors padarytų iškvietus užklausą.
- Pastebėjimai – štai ką norite daryti su jūsų pateiktais duomenimis, pradedant nuo vienos užklausos
- Prašymai – tai yra tada, kai prašote Detect framework
Idealiu atveju sukuriate vieną teksto užklausą kaip VNaptikti extrectanglesrequest. Tai savotiškas VNužklausa kuri ribojasi aplink tekstą. Kai sistema užpildys programą, skambinkite Dettexthandler funkcija. Taip pat norėsite sužinoti tikslų kadrą, kuris buvo atpažintas, ir jį nustatyti Ataskaitų simbolių dėžutės= Tiesa.
Po to apibrėžkite stebėjimus, kuriuose yra visi rezultatai VNaptikti extrectanglesrequest, nepamirškite pridėti Vision prie išvesties kameros. Kadangi Vision atskleidžia aukšto lygio API, darbas su ja yra saugus.
Funkcija patikrina, ar Cmsamplebuffer egzistuoja ir PutOut Avcapture išvestis. Tada turėtumėte pradėti kurti vieną kintamąjį Prašymai kaip 1 žodyno tipas VNvaizdo parinktis. The VNmage parinktis yra struktūros tipas, kuriame yra ypatybės ir duomenys iš fotoaparato. Tada turėtumėte sukurti VNimagerequesthandler ir vykdyti teksto užklausą.
Kraštinių nubrėžimas aplink aptiktą tekstą
Galite pradėti nuo to, kad sistema nubrėžia du langelius – vieną kiekvienai aptiktai raidei, o kitą – kiekvienam žodžiui. Lentelės yra visų simbolių laukelių, kuriuos rasite jūsų užklausoje, derinys.
- Apibrėžkite savo vaizdo taškus, kad padėtų jums išdėstyti langelius.
- Po to sukurkite a CALayer; naudoti VNstačiakampio stebėjimas apibrėžti savo apribojimus ir palengvinti dėžutės kontūrų kūrimo procesą.
Dabar turite visas savo funkcijas.
Norėdami sujungti taškus, pirmiausia paleiskite kodą asinchroniškai. Tada turėtumėte patikrinti, ar jūsų rezultatuose yra regionas VNTteksto stebėjimas.
Dabar galite iškviesti savo funkciją, kuri nupieš laukelį srityje. Patikrinkite, ar regione yra simbolių laukelių, tada paskambinkite tarnybai, kuri aplink kiekvieną raidę pateikia langelį.
Po to sukurkite kintamąjį Užklausų parinktys. Dabar galite sukurti a VNImageRequestHandler objektą ir atlikite savo sukurtą teksto užklausą.
Galiausiai, paskutinis veiksmas yra vizijos kodo paleidimas su tiesiogine transliacija. Turėsite paimti vaizdo išvestį ir konvertuoti į Cmsamplebuffer.
Papildomi patarimai
- Visada stenkitės apkarpyti vaizdą ir apdoroti tik jums reikalingą skyrių. Tai sumažins apdorojimo laiką ir sumažins atminties kiekį
- Įjunkite kalbos taisymą, kai naudojate ne skaitinius simbolius, tada išjunkite, kai dirbate su skaitiniais simboliais
- Įtraukite atpažintų skaičių eilučių patvirtinimą, kad patvirtintumėte tikslumą ir pašalintumėte klaidingą reikšmę vartotojui.
- Dokumentų kameros valdiklis yra geriausias teksto atpažinimo draugas, nes vaizdo kokybė vaidina svarbų vaidmenį atpažįstant tekstą.
- Apsvarstykite galimybę nustatyti minimalų teksto aukštį, kad padidintumėte našumą.
Naudodami Vision turite viską, ko reikia teksto atpažinimui. Kadangi „Vision“ naudoti paprasta, o jos įgyvendinimas užtrunka neilgai, jos naudojimas beveik prilygsta žaidimui su „Lego“. Pabandykite išbandyti programą naudodami skirtingus objektus, šriftus, apšvietimą ir dydžius. Taip pat galite padaryti įspūdį derindami Vision su Core ML.