Mikä on OCR?
Optisella merkintunnistuksella (OCR) tarkoitetaan prosessia, jossa kuvasta tunnistetaan automaattisesti tiettyihin aakkosiin kuuluvat merkit tai symbolit. Tässä viestissä keskitymme selittämään, miten OCR:ää käytetään Androidissa.
Kuvan tekstin tunnistamisen jälkeen sitä voidaan käyttää:
-
- Tallentaa se tallennustilaan.
- Käsitellä tai muokata sitä.
- Kääntää se toiselle kielelle.
Älypuhelinten suosio yhdistettynä yhä parempiin kameroihin on johtanut tämäntyyppisten tunnistustekniikoiden käytön lisääntymiseen ja uuteen luokkaan mobiilisovelluksia, jotka hyödyntävät niitä.
Laitteessa vai pilvessä?
Ennen OCR-kirjaston käyttöä on päätettävä, missä OCR-prosessi tapahtuu, älypuhelimessa vai pilvessä.
Sovelluksen vaatimuksista riippuen kummallakin lähestymistavalla on etunsa ja haittansa.
Jos sovellus vaatii esimerkiksi merkintätunnistuksen suorittamista ilman internetyhteyttä, OCR-moottori käynnistetään itse laitteessa. Näin voitaisiin välttää kuvien lähettäminen palvelimelle, koska nykyisiin laitteisiin asennetut kamerat voivat ottaa suuria kuvia.
Toisaalta OCR-kirjastot vievät yleensä paljon tilaa, sillä ne on ladattava jokaiseen tunnistettavaan kieleen, kuten selitämme jäljempänä.
Mitä kirjastoja voidaan käyttää?
Oheisessa Wikipedian linkissä on vertaileva taulukko, jossa on lueteltu kaikki tunnistuskieliä käyttävät OCR-kirjastot, tuetut alustat, kehitystyössään käytetyt ohjelmointikielet ja muut asiaankuuluvat tiedot.[6609]
Linkki: http://en.wikipedia.org/wiki/ List_of_optical_character_recognition_software
Tässä postauksessa käytämme Tesseract-kirjastoa, joka erottuu muista. Se on avoimen lähdekoodin, sillä on SDK, sen on luonut HP ja sitä kehittää tällä hetkellä Google.
OCR Androidissa käyttäen Tesseract-kirjastoa
Vaikka Tesseractia voidaan käyttää Linux-palvelimella pilvipalveluna, tässä postauksessa toteutamme Tesseract-kirjaston Android-sovelluksessa, jolloin OCR-moottori käynnistyy itse laitteessa.
Alkuperäinen Tesseract-projekti Androidille on nimeltään Tesseract Android Tools, ja se sisältää työkalut Tesseract- ja Leptonica-kirjastojen kääntämiseen Android-alustalla käytettäväksi sekä Java API:n, jolla näihin natiivisti käännettyihin kirjastoihin pääsee käsiksi.
Linkki: https://github.com/rebbix/tesseract-android-tools/tree/master/tesseract-android-tools
Esimerkissämme käytämme Tesseract Android Toolsin haaraa, joka lisää siihen lisää toiminnallisuutta.
Link: https://github.com/rmtheis/tess-two
OCR-esimerkki Androidilla
Tarvitsemme muutamia yksinkertaisia vaiheita OCR:n suorittamiseen Androidilla:
Huomioita
- Tunnistuksen laatu voi vaihdella riippuen kuvan valaistusolosuhteista, kameran resoluutiosta, tekstin kirjasintyypistä, tekstin koosta ym. …
- Lisälaadun aikaansaamiseksi on erittäin tärkeää keskittää tekstin keskipisteeseen kuvaa, ja että kuva on tarkennettu oikein.
Esikatselu OCR:n käyttämisestä kääntäjäsovelluksessa
Oheinen video näyttää osan sovelluksesta, jota kehitän tutkintoni lopputyötä (TFG) varten ja jossa käytän kuvattuja OCR-tekniikoita.