Flutter ML Kit: Text Recognition

How to implement text recognition ML Kit with Flutter

Yudi Setiawan
Nusanet Developers
6 min readJul 4, 2020

--

Pengenalan

ML Kit merupakan salah satu fungsi dari Firebase yang berfokus pada machine learning. Hanya saja penggunaannya lebih sederhana sehingga kita tidak sulit untuk menggunakannya. Salah satu diantara dari fitur machine learning-nya adalah text recognition. Di tulisan sebelum-sebelumnya saya sudah pernah membahas tulisan ini di Android native yang bisa kamu baca ditulisan berikut ya.

Sekarang ditulisan ini saya akan membahasnya pada Flutter. Seperti yang kita tahu bahwa Flutter mendukung untuk berbagai platform seperti Android, IOS, Web, dan Desktop. Untuk saat ini kita berfokus pada Android dan IOS saja ya.

Persiapan

Sebelum kita masuk ke contoh projek kita perlu mempersiapkan projek di Firebase. Untuk langkah-langkahnya tidak perlu saya jelaskan disini ya karena langkah-langkahnya cukup panjang. Silakan kamu ikuti saja ya langkah-langkah berikut.

Mulai Pembuatan Projek

Sekarang kita masuk ke tahap mulai pembuatan projek ya. Untuk mulai buat projeknya silakan pakai Text Editor atau IDE favorit kita ya seperti VS Code, Android Studio atau IntelliJ IDEA.

Atur pubspec.yaml

Setelah selesai buat projek, langkah berikutnya adalah atur dependencies yang akan kita gunakan didalam file pubspec.yaml.

Adapun dependencies yang akan kita gunakan ada 3 yaitu sebagai berikut.

  1. Firebase Core, berfungsi sebagai fungsi utama menggunakan fitur-fitur Firebase.
  2. Firebase ML Vision, berfungsi untuk meng-implementasikan fitur-fitur machine learning vision.
  3. Image Picker, berfungsi untuk fitur mengambil gambar dari kamera dan galeri.

Setelah kita tambahkan dependencies tersebut kemudian, jalankan perintah berikut.

Firebase Core

Sekarang kita perlu meng-integrasikan plugin Firebase Core untuk platform Android dan IOS.

Untuk Android silakan ikuti langkah-langkah berikut ya.

  • Unduh file google-services.json dari Firebase Console dan masukkan kedalam direktori android/app seperti gambar berikut.
Lokasi file google-services.json
  • Buka file build.gradle yang berada didalam direktori android. Kemudian, tambahkan kode berikut didalam blok dependencies.
  • Buka file build.gradle yang berada didalam direktori android/app. Kemudian, tambahkan kode berikut dibaris paling akhir.

Untuk IOS silakan ikuti langkah-langkah berikut ya.

  • Unduh file GoogleService-Info.plist dari Firebase Console dan masukkan kedalam projek didalam direktori ios/Runner seperti gambar berikut.
Lokasi file GoogleService-Info.plist

Firebase ML Vision

Sekarang kita perlu meng-integrasikan plugin Firebase ML Vision untuk platform Android dan IOS.

Untuk Android silakan ikuti langkah-langkah berikut ya.

  • Buka file AndroidManifest.xml yang berada di android/app/src/main. Kemudian, kita ubah kode didalamnya menjadi seperti berikut.

Untuk IOS silakan ikuti langkah-langkah berikut ya.

  • Buka file Podfile dan ubah kode didalamnya menjadi seperti berikut.
  • Kemudian, buka aplikasi terminal atau cmd atau sejenisnya dan jalankan perintah pod update .

Semua langkah-langkah diatas merupakan hasil terjemahan saya dari dokumentasinya langsung ya. Jikalau ternyata langkah-langkah saya diatas sudah tidak berfungsi lagi atau ada error silakan lihat langsung ke dokumentasinya ya. Untuk dokumentasi aslinya bisa kamu lihat di link berikut ya.

Image Picker

Sekarang kita perlu meng-integrasikan plugin Image Picker untuk platform Android dan IOS.

Untuk Android silakan ikuti langkah-langkah berikut ya.

  • [OPTIONAL] Kita buka file AndroidManifest.xml yang berada didalam android/app/src/main. Kemudian, kita tambahkan kode android:requestLegacyExternalStorage="true" didalam tag <application> . Kode tersebut kita tambahkan berfungsi untuk dukungan di Android10 atau Android Q agar bisa mengambil gambar dari galeri atau storage. Tapi, berhubung langkah-langkah ini hanya untuk mengambil gambar dari galeri atau storage jadi, saya rasa kita bisa skip saja ya langkah ini.

Untuk IOS silakan ikuti langkah-langkah berikut ya.

  • Kita buka file Info.plist yang berada didalam ios/Runner/Info.plist. Kemudian, perlu menambahkan beberapa permission yang akan kita pakai seperti photo library, camera, dan microphone. Tapi, karena pada contoh kali ini kita hanya mengambil gambar jadi, kita cukup menambahkan permission camera saja seperti berikut.

Langkah-langkah diatas merupakan hasil terjemahan saya dari dokumentasinya langsung. Dokumentasi lengkapnya bisa kamu baca di link berikut ya.

Buat UI

Langkah berikutnya kita akan membuat tampilan app-nya. Silakan buka file main.dart dan ubah kode didalamnya menjadi seperti berikut.

Adapun output dari kode diatas adalah sebagai berikut.

Tampilan Utama App

Jadi, nantinya cara kerjanya adalah si pengguna cukup tap button kamera lalu, nanti app akan mengarah ke aplikasi kamera untuk mengambil foto. Kemudian, ketika accept dengan hasil gambarnya app akan memproses gambar tersebut dan menampilkan tulisan yang ada pada gambar.

Buat Fungsi Text Recognition

Sekarang kita akan mengubah kode berikut

Diubah menjadi kode berikut.

Sekarang kita test jalankan lagi app-nya maka, outputnya akan menjadi seperti berikut.

Output di Android

Diatas merupakan output di aplikasi Android. Untuk yang IOS sudah saya tes namun, hasilnya tidak bekerja sebagaimana mestinya. Berikut output di IOS.

Output di IOS

Kesimpulan

Jadi, kesimpulannya adalah Text Recognition pada ML Kit di Flutter menurut saya sudah bisa dipakai dan pemakaiannya juga termasuk gampang. Untuk di sisi IOS yang tidak bisa membaca teks-nya saya rasa ini hanya masalah waktu saja atau mungkin saya ada salah konfigurasi. Bagi yang sudah coba di IOS dan berfungsi dengan baik silakan beritahu saya di kolom komentar ya. Untuk kode lengkap dari projek ditulisan ini bisa kamu lihat di Github ya.

--

--