Tekstherkenning voor Android met behulp van Google Mobile Vision
Voor de write-up van deze week zullen we een eenvoudige Android app maken die gebruik maakt van Google Mobile Vision API’s voor optische tekenherkenning (OCR). De Mobile Vision Text API geeft Android-ontwikkelaars een krachtige en betrouwbare OCR-mogelijkheid die werkt met de meeste Android-apparaten.
Dit is een zeer krachtige API die ook kan worden gebruikt voor live gezichtsdetectie en gezichtsherkenning samen met barcode scanning mogelijkheden.Om meer te weten over deze prachtige bibliotheek, volg de onderstaande link
Zoals altijd, het voorbeeld project is hier beschikbaar
Laten we aan de slag door eerst een nieuw project in Android Studio.
- Ga naar Bestand ⇒ Nieuw Project. Wanneer het u vraagt om de standaard activiteit te selecteren, selecteert u Empty Activity en gaat u verder.
- Open build.gradle in (Module:app) en voeg Mobile Vision afhankelijkheden toe zoals dit.
3. Om deze bibliotheek te gebruiken, moet u mogelijk uw geïnstalleerde versie van Google Repository in SDK-tools bijwerken. Zorg ervoor dat uw versie van Google Repository up-to-date is. Het moet ten minste versie 26.
4. Vergeet niet om machtigingen voor toegang tot CAMERA en ook meta-gegevens voor het gebruik van OCR in AndroidManifest.xml bestand toe te voegen als dit
5. Vervolgens maken we een eenvoudige lay-out voor onze activiteit die er als volgt uitziet
In de onCreate()-methode van de MainActivity.java roepen we een startCameraSource()-methode op.
Wat gebeurt er nu in de bovenstaande code? Hier zijn de belangrijke onderdelen.
TextRecognizer: Dit object verwerkt afbeeldingen en bepaalt welke tekst erin verschijnt. Zodra het is geïnitialiseerd, kan het worden gebruikt om tekst te detecteren in alle soorten afbeeldingen. Merk op dat, voor we het gaan gebruiken om tekst te herkennen, we moeten controleren of het klaar is. Dit wordt gedaan met textRecognizer.isOperational() methode.
CameraSource: Dit is een camera manager die vooraf geconfigureerd is voor Vision processing. Hier stellen we de resolutie in op 1280*1024 en zetten we autofocus aan, omdat dit zal helpen bij het veel sneller herkennen van kleinere tekst. Ook stellen we de cameraSource in om standaard de achterste camera te gebruiken.
Detector.Processor<TextBlock> : Om ervoor te zorgen dat TextRecognizer tekst rechtstreeks van de camera kan lezen, moeten we een Detector Processor implementeren, die detecties zal verwerken zodra deze beschikbaar komen.
Er zijn twee methoden die hier moeten worden geïmplementeerd. De eerste, receiveDetections(), ontvangt tekstblokken van de Detector zodra deze beschikbaar zijn. Met de tweede, release(), kunnen bronnen netjes worden verwijderd.
7. Laatste stap
We nemen de waarden van TextBlock en maken StringBuilder-object en voegen de waarden toe aan de textView, die wordt bijgewerkt telkens wanneer er een tekst in de cameraweergave is.
Start de app
Eindelijk kunt u de app starten en een live weergave van tekst in cameraweergave zien