Bantuan melindungi Great Barrier Reef dengan TensorFlow pada Kaggle Bergabung Tantangan

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. Menggunakan kombinasi model deteksi teks dan Model pengakuan teks sebagai pipa OCR untuk mengenali karakter teks.

Memulai

Jika Anda baru mengenal 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 Anda sudah akrab dengan API TensorFlow Lite , Anda dapat men-download 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 Supression, 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

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

Nama model Ukuran model Perangkat CPU GPU
Deteksi Teks 45.9 Mb Piksel 4 (Android 10) 181.93ms* 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 4-D float32 Tensor dari (1, 320, 320, 3) sebagai masukan.

Model pengakuan teks menerima 4-D float32 Tensor dari (1, 31, 200, 1) sebagai masukan.

Keluaran

Model deteksi teks pengembalian 4-D float32 Tensor bentuk (1, 80, 80, 5) sebagai kotak bounding dan 4-D float32 Tensor bentuk (1,80, 80, 5) sebagai skor deteksi.

Model pengakuan teks mengembalikan 2-D float32 Tensor bentuk (1, 48) sebagai indeks pemetaan untuk daftar alfabet '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'

Keterbatasan

  • Arus Model pengakuan teks dilatih menggunakan data sintetik dengan huruf bahasa Inggris dan angka, sehingga hanya bahasa Inggris 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 memilih 3 logo produk Google hanya untuk mendemonstrasikan cara melakukan OCR dengan TensorFlow Lite. Jika Anda mencari produk OCR produksi-grade siap digunakan, 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 membuat 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