Android'de Firebase ML Kit ile Text Recognition

En son güncellendiği tarih: 5 gün önce

Firebase ML Kit, makine öğrenmesini Android ve IOS uygulamalarınıza kolayca entegre etmenize olanak sağlayan mobil SDK’dır. ML Kit'i kullanarak herhangi bir bilgisayarlı görü bilgisine gerek duymaksızın yalnızca birkaç satır kod ile projelerimize gereken işlevselliği ekleyebiliriz. Bu mobi’de ML Kit’in text recognition(metin tanıma) fonksiyonunu deneyimleyeceğiz.


Hedef :


Firebase ML Kit’i kullanarak; görsel üzerinde text recognition yapan ve elde edilen çıktıyı ekrana yazdıran bir Android uygulama geliştirmek.


Peki Cloud mu On-device mı?


Firebase MLKit’in cloud veya on-device olmak üzere iki farklı versiyonu bulunuyor. On-device versiyon ücretsiz, hızlı ve yalnızca Latin alfabesi harflerini tanıma özelliği sunuyor iken cloud versiyon daha yüksek doğruluk oranı, birçok farklı dilden özel karakterleri tanıyabilme özelliği sunuyor.

Görsel Referansı


Cloud versiyonu kullanmak için Firebase konsol üzerinden ödeme planı olarak Blaze planı seçerek projenizin kullandığı kadarını ödersiniz; bu plan aylık 1000 sözcüğe kadar ücretsiz desteklemektedir. Bunun için "Yükselt" butonuna tıklayarak ilerleyebilirsiniz. Eğer on-device versiyonu kullanmak istiyorsanız bu aşamayı atlayabilirsiniz.


Geliştirme :


1 - Öncelikle henüz yapmadıysanız, Android projemize Firebase’i ekleyerek başlıyoruz. Benzer bir yazıya buradan erişebilirsiniz.


2 - Uygulama seviyesindeki Gradle dosyamıza (app/build.gradle) ML-Kit’i dependency olarak ekliyoruz.


3 - Eğer on-device versiyonu kullanacaksanız opsiyonel olsa bile AndroidManifest.xml dosyanıza şu satırları eklemeniz yararlı olacaktır:


Bu sayede uygulamanızı Play Store’dan indirildikten sonra ML modeli otomatik indirecek şekilde konfigüre etmiş olacaksınız. Eğer bu aşamayı atlarsanız, Detector'u ilk kullanışınızda model indirilecektir ve yapacağınız ilk tanıma işlemi başarısız olacaktır.


4 - Eğer cloud-based modeli kullanacaksanız Firebase konsolundan bu özelliği etkinleştirmeniz gerekmektedir. Bunu yukarıda bahsettiğim şekilde yapabilirsiniz.


Şimdi biraz kod yazabiliriz :


Galeriden seçtiğimiz görseli girdi olarak doğrudan detector'a veremeyiz bu nedenle FirebaseVisionImage tipinde bir nesne yaratmamız gerekiyor. Bu nesne Bitmap, Media.Image, ByteBuffer, Byte array ya da farklı şekillerde yaratılabilir.


Tanıma işlemini gerçekleştirmek için startTextRecognizing isimli bir fonksiyon oluşturarak başlıyoruz. Birinci seçenekte sunduğumuz yöntemle bir FirebaseVisionImage nesnesi yaratıyoruz. Sonrasında detector'u initialize etmemiz gerekiyor. Burada cloud ya da on-device seçimimize göre farklı şekillerde initalize edebiliyoruz. On-device detector, on-device model üzerinde yani network gereksinimi olmaksızın ve hızlı bir şekilde optical character recognition(optik karakter tanıma) işlemini gerçekleştirecektir.


Detector'u initialize ettikten sonra, FirebaseVisionImage tipindeki image değişkenini girdi olarak veriyoruz. Eğer karakter tanıma işlemi başarılı olursa, FirebaseVisionText nesnesi success listener'a geçirilecektir. Başarılı tanımlama sonrası yapmak istediğimiz işlemi bu kod bloğu içinde yapabiliriz.


Detector'dan döndürülen sonucu nasıl çözümleyeceğiniz size kalmış; gereksinimleriniz doğrultusunda karar verebilirsiniz. Aşağıdaki metotu debug ederek “TextBlock”, “Line” ve “Element” tipindeki nesneleri inceleyebilirsiniz. Bu mobi'de döndürülen sonucu doğrudan ekranda gösteriyoruz.




Şimdi ise dönen sonucu çözümleyebiliriz :


  • FirebaseVisionText nesnesi sıfır ya da daha fazla “TextBlock” nesnesi içerir.

  • Her “TextBlock” nesnesi sıfır ya da daha fazla “Line” nesnesi içerir.

  • Her “Line” nesnesi sıfır ya da daha fazla “Element” nesnesi içerir. Element bir sözcük veya sayı olabilir.


Başka bir örnek daha yapalım:


Gördüğünüz gibi model, her zaman çok doğru sonuç vermeyebilir. Düzeltip, mobi’mizi bu günlerde sık sık hatırlamamız gereken güzel bir mesajla sonlandırmak isterim : “Thank You Doctors, Nurses and Medical Staff!”.


Alternatif olarak cloud-based versiyonu kullanmak isterseniz gerekli olacak metotlar da on-device versiyona göre küçük farklılıklar içeriyor ve aşağıdaki github linkinde bulunuyor. Firebase ML Kit’i denedikten sonra alternatif olarak Amazon Rekognition'u da deneyebilirsiniz. Deneyimlerinizi, sorularınızı ve görüşlerinizi bizimle paylaşırsanız çok seviniriz!


Github repository: https://github.com/edayesilyurt/textrecognizer-android

Referans ve İleri Okuma: https://firebase.google.com/docs/ml-kit/android/recognize-text

Görsel Referansı: https://www.instagram.com/p/B9-Wkxql_w5/



#firebase #mlkit #textrecognition #firebasemlkit #android

1 yorum

Komünite

Platform

Mobiler.dev Anasayfa
  • Twitter
  • Instagram
  • development_düzenlendi_düzenlendi
  • Youtube
  • slack-icon-black_edited_edited_edited
  • Gri LinkedIn Simge
JetBrains Hakkında Detaylı Bilgi Alın

© 2020 by mobiler.dev

mobilerdevLogo.jpg
Yazarlık Başvurusu Hakkında Bilgi Alın, Başvuru Yapın.
Topluluk Yazarlarını Tanıyın