Terima kasih telah mendengarkan Google I/O. Lihat semua sesi sesuai permintaan Tonton sesuai permintaan

Pengenalan karakter optik (OCR)

Pengenalan karakter optik (OCR) adalah proses mengenali karakter dari gambar menggunakan visi komputer dan teknik pembelajaran mesin. Aplikasi referensi ini mendemonstrasikan cara menggunakan TensorFlow Lite untuk melakukan OCR. Ini menggunakan kombinasi model deteksi teks dan model pengenalan teks sebagai saluran OCR untuk mengenali karakter teks.

Memulai

Jika Anda baru menggunakan TensorFlow Lite dan bekerja dengan Android, sebaiknya jelajahi contoh aplikasi berikut yang dapat membantu Anda memulai.

Contoh Android

Jika Anda menggunakan platform selain Android, atau sudah terbiasa dengan TensorFlow Lite API , Anda dapat mengunduh model dari TF Hub .

Bagaimana itu bekerja

Tugas OCR sering dipecah menjadi 2 tahap. Pertama, kami menggunakan model deteksi teks untuk mendeteksi kotak pembatas di sekitar kemungkinan teks. Kedua, kami memasukkan kotak pembatas yang diproses ke dalam model pengenalan teks untuk menentukan karakter tertentu di dalam kotak pembatas (kami juga perlu melakukan Non-Maximal Suppression, transformasi perspektif, dan lain-lain sebelum pengenalan teks). Dalam kasus kami, kedua model berasal dari TensorFlow Hub dan merupakan model terkuantisasi FP16.

Tolok ukur kinerja

Angka tolok ukur kinerja dihasilkan dengan alat yang dijelaskan di sini .

Nama model Ukuran model Perangkat CPU GPU
Deteksi Teks 45.9 Mb Piksel 4 (Android 10) 181,93 md* 89.77 md*
Pengenalan Teks 16,8 Mb Piksel 4 (Android 10) 338.33ms* T/A**

* 4 benang digunakan.

** model ini tidak dapat menggunakan delegasi GPU karena kami membutuhkan operasi TensorFlow untuk menjalankannya

masukan

Model deteksi teks menerima Tensor float32 4-D (1, 320, 320, 3) sebagai input.

Model pengenalan teks menerima Tensor float32 4-D (1, 31, 200, 1) sebagai input.

Keluaran

Model deteksi teks mengembalikan Tensor float32 4-D berbentuk (1, 80, 80, 5) sebagai kotak pembatas dan Tensor float32 4-D berbentuk (1,80, 80, 5) sebagai skor deteksi.

Model pengenalan teks mengembalikan bentuk 2-D float32 Tensor (1, 48) sebagai indeks pemetaan ke daftar alfabet '0123456789abcdefghijklmnopqrstuvwxyz'

Keterbatasan

  • Model pengenalan teks saat ini dilatih menggunakan data sintetis dengan huruf dan angka bahasa Inggris, jadi hanya bahasa Inggris yang didukung.

  • Modelnya tidak cukup umum untuk OCR di alam liar (misalnya, gambar acak yang diambil oleh kamera ponsel cerdas dalam kondisi pencahayaan rendah).

Jadi kami telah memilih 3 logo produk Google hanya untuk menunjukkan cara melakukan OCR dengan TensorFlow Lite. Jika Anda mencari produk OCR tingkat produksi yang siap pakai, Anda harus mempertimbangkan Google ML Kit . ML Kit, yang menggunakan TFLite di bawahnya, seharusnya cukup untuk sebagian besar kasus penggunaan OCR, tetapi ada beberapa kasus di mana Anda mungkin ingin membangun solusi OCR Anda sendiri dengan TFLite. Beberapa contohnya adalah:

  • Anda memiliki model TFLite deteksi/pengenalan teks Anda sendiri yang ingin Anda gunakan
  • Anda memiliki persyaratan bisnis khusus (yaitu, mengenali teks yang terbalik) dan perlu menyesuaikan saluran OCR
  • Anda ingin mendukung bahasa yang tidak tercakup oleh ML Kit
  • Perangkat pengguna target Anda belum tentu menginstal layanan Google Play

Referensi