Android'de Firebase ML Kit ile Text Recognition

Güncelleme tarihi: 1 May 2021

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.