IPhone: Az iOS szövegészlelési funkcióinak használata

click fraud protection

A Vision az iOS 11 rendszerben mindent tartalmaz, ami egy olyan alkalmazás létrehozásához szükséges, amely képes felismerni a szöveges karaktereket, miközben a megvalósítás egyidejűleg történik. Nincs szükség technikai kódolási ismeretekre – a funkcióban való navigálás meglehetősen egyszerű. Ráadásul a megvalósítás zökkenőmentes.

Vision Framework

A vision keretrendszer lehetővé teszi bármilyen számítógépes részleteket igénylő feladat egyszerű végrehajtását. A szerkezet arc- és arcpont-felismerést, vonalkód-felismerést, képregisztrációt, általános jellemzőkövetést és szövegészlelést végez. A Vision lehetővé teszi egyéni Core ML modellek használatát olyan feladatokhoz, mint az osztályozás vagy az objektumészlelés.

VN DetectTextRectanglesRequest

Az VN DetectTextRectanglesRequest egy képelemzési kérés, amely megkeresi a látható szöveg régióit a képen; a szolgáltatás a szöveges karaktereket téglalap alakú határolókeretként adja vissza eredetével és méretével.

Ha már hozzászokott a swift használatához, és már egy ideje programoz, akkor valószínűleg azon töpreng, mi a haszna a Visionnak, amikor más funkciók is vannak, mint például a kép és az AVFoundation. Nos, a Vision pontosabb és egyértelműbb. A funkció számos platformon is elérhető. A Vision használata azonban több feldolgozási teljesítményt és feldolgozási időt igényelhet.

A Vision szövegészleléshez való használatához Xcode 9-re és egy iOS 11-et futtató eszközre lesz szüksége.

Kamera létrehozása Avcapture segítségével

Először is létre kell hoznia egy kamerát AVCapture; ez egy objektum AVcapturesession inicializálásával valós idejű vagy offline rögzítést hajt végre. Ezt követően hozza létre a munkamenetet az eszközkapcsolattal.

Annak érdekében, hogy időt takarítson meg az alkalmazás felhasználói felületének elkészítése során, fontolja meg egy kezdő projekt létrehozását, amely lehetővé teszi, hogy a Vision keretrendszer megtanulására összpontosítson.

  1. Nyissa meg a kezdő projektet. A storyboard nézeteinek készen kell állniuk és be kell állítaniuk az Ön számára.
  2. ViewController.swift, keresse meg a kódrészletet a funkciókkal és kimenetekkel.
  3. A konnektor alatt-ImageView, dmunkamenet kinyilvánítása számára AVcapturesession – ezt akkor használja, amikor élő közvetítés alapján szeretne műveleteket végrehajtani.
  4. Állítsa be a AVcapturesession és a AVmediatype videóra, mivel a kamerafelvételt a folyamatos működés érdekében hajtja végre
  5. Határozza meg a kimeneti és bemeneti eszközt
  6. A bemenetet a kamera fogja látni, a kimenet pedig a videó a KCVPixelFormatType_32GRA beállított típusú formátumban.
  7. Végül adjunk hozzá a alréteg amely videókat tartalmaz imageView és indítsa el a munkamenetet. A függvény ún inViewdidload. A réteg keretét is be kell állítani.

Hívja meg a függvényt a nézetMegjelenik módszer.

Mivel a határok még nincsenek véglegesítve, írja felül a viewDidLayoutSubviews ( ) módszer a kötött rétegek frissítésére.

Az iOS 10 megjelenése után egy további bejegyzés szükséges az Info.plist-ben, ez indokolja a kamera használatát. Ezenkívül be kell állítania az Adatvédelem-Kamera használati leírását.

Szövegészlelés; Hogyan működik a Vision Framework

Három lépésből áll a Vision megvalósítása az alkalmazásban.

  1. Kezelők – Ez az, amikor azt szeretné, hogy a keretrendszer tegyen valamit a kérés meghívása után.
  2. Észrevételek – ezt szeretné tenni az Ön által megadott adatokkal, egy kéréssel kezdve
  3. Kérések – ekkor kéred a Detect keretrendszert

Ideális esetben egy szöveges kérést hoz létre mint VNdetecttextrectanglesrequest. Ez egyfajta VNrequest amely a szöveg körül határol. Miután a keretrendszer befejezte az alkalmazást, folytathatja a hívását Dettexthandler funkció. Azt is tudnia kell, hogy a rendszer pontosan melyik keretet ismeri fel, és állítsa be Jelentéskarakterdobozok= Igaz.

Ezt követően határozza meg azokat a megfigyeléseket, amelyek az összes eredményt tartalmazzák VNdetecttextrectanglesrequest, ne felejtse el hozzáadni a Vision-t a kimeneti kamerához. Mivel a Vision magas szintű API-kat tesz elérhetővé, a vele való munkavégzés biztonságos.

A funkció ellenőrzi, hogy a Cmsamplebuffer létezik és PutOut Avcapture kimenet. Ezután folytatnia kell egy változó létrehozását Kérések mint 1 szótártípus VNimageopció. Az VNmage Az opció egy olyan típusú struktúra, amely a fényképezőgép tulajdonságait és adatait tartalmazza. Ezután létre kell hoznia a VNimagerequesthandler és hajtsa végre a szöveges kérést.

Szegélyek húzása az észlelt szöveg köré

Kezdheti azzal, hogy a keretrendszer két dobozt rajzol, egyet minden észlelt betűhöz, a másikat pedig minden szóhoz. A táblázatok az összes karakterdoboz kombinációi, amelyeket a kérés megtalál.

  • Határozza meg a pontokat a nézetén, hogy segítsen elhelyezni a dobozokat.
  • Ezt követően hozzon létre a CALayer; használat VNtéglalap megfigyelés hogy meghatározza a korlátait, megkönnyítve ezzel a doboz körvonalazásának folyamatát.

Mostantól minden funkciója meg van határozva.

A pontok összekapcsolásához először futtassa a kódot aszinkron módon. Ezután ellenőriznie kell, hogy létezik-e régió a találatai között VNTextObservation.

Most behívhatja a funkcióját, amely egy dobozt rajzol a területen. Ellenőrizze, hogy vannak-e karakterdobozok a régióban, majd hívja a szolgáltatást, amely minden betű körül egy dobozt hoz.

Ezután hozzon létre egy változót RequestOptions. Most létrehozhat a VNImageRequestHandler objektumot, és hajtsa végre a létrehozott szöveges kérést.

Végül az utolsó lépés a látáskód futtatása az élő közvetítéssel. Ki kell venni a videó kimenetet, és át kell alakítani Cmsamplebuffer.

További tippek

  1. Mindig próbálja meg levágni a képet, és csak azt a részt dolgozza fel, amelyre szüksége van. Ez csökkenti a feldolgozási időt és a memória helyigényét
  2. Kapcsolja be a nyelvi korrekciót, ha nem numerikus karakterekkel dolgozik, majd kapcsolja ki, ha numerikus karakterekkel dolgozik
  3. Tartalmazza a felismert számsorok érvényesítését a pontosság megerősítése és a hamis értékek felhasználó számára történő megjelenítésének elkerülése érdekében.
  4. A dokumentumkamera vezérlő a legjobb társ a szövegfelismeréshez, mivel a képminőség jelentős szerepet játszik a szövegfelismerésben.
  5. A teljesítmény növelése érdekében fontolja meg egy minimális szövegmagasság beállítását.

A Vision segítségével mindent megtalál, ami a szövegfelismeréshez szükséges. Mivel a Vision használata egyszerű, és a megvalósítás rövid időt vesz igénybe, a használata szinte egyenértékű a Legóval való játékkal. Próbálja meg tesztelni az alkalmazást különböző objektumokon, betűtípusokon, világításon és méreteken. A Vision és a Core ML kombinálásával is lenyűgözheti magát.