זיהוי תווים אופטי (OCR)

זיהוי תווים אופטי (OCR) הוא תהליך של זיהוי תווים מתמונות באמצעות ראייה ממוחשבת וטכניקות למידת מכונה. אפליקציית הפניה זו מציגה הדגמות כיצד להשתמש ב-TensorFlow Lite כדי לבצע OCR. הוא משתמש בשילוב של מודל זיהוי טקסט ומודל זיהוי טקסט כצינור OCR לזיהוי תווי טקסט.

להתחיל

אם אתה חדש ב-TensorFlow Lite ועובד עם אנדרואיד, אנו ממליצים לחקור את היישום לדוגמה הבא שיכול לעזור לך להתחיל.

דוגמה לאנדרואיד

אם אתה משתמש בפלטפורמה שאינה אנדרואיד, או שאתה כבר מכיר את ממשקי API של TensorFlow Lite , אתה יכול להוריד את הדגמים מ- TF Hub .

איך זה עובד

משימות OCR מחולקות לרוב ל-2 שלבים. ראשית, אנו משתמשים במודל זיהוי טקסט כדי לזהות את התיבות התוחמות סביב טקסטים אפשריים. שנית, אנו מזינים תיבות תוחמות מעובדות למודל זיהוי טקסט כדי לקבוע תווים ספציפיים בתוך התיבות התוחמות (אנחנו צריכים גם לבצע דיכוי לא מקסימלי, טרנספורמציה של פרספקטיבה וכו' לפני זיהוי טקסט). במקרה שלנו, שני הדגמים הם מ- TensorFlow Hub והם דגמי FP16 כמותיים.

מדדי ביצועים

מספרי אמת מידה לביצועים נוצרים עם הכלי המתואר כאן .

שם המודל גודל הדגם התקן מעבד GPU
זיהוי טקסט 45.9 מגה-ביט Pixel 4 (אנדרואיד 10) 181.93ms* 89.77ms*
זיהוי טקסט 16.8 מגה-ביט Pixel 4 (אנדרואיד 10) 338.33ms* לא רלוונטי**

* 4 חוטים בשימוש.

** הדגם הזה לא יכול להשתמש ב-GPU Delegate מכיוון שאנו זקוקים ל-TensorFlow ops כדי להפעיל אותו

תשומות

מודל זיהוי הטקסט מקבל 4-D float32 Tensor של (1, 320, 320, 3) כקלט.

מודל זיהוי הטקסט מקבל 4-D float32 Tensor של (1, 31, 200, 1) כקלט.

פלטים

מודל זיהוי הטקסט מחזיר 4-D float32 Tensor של צורה (1, 80, 80, 5) כתיבה תוחמת ו- 4-D float32 Tensor של צורה (1,80, 80, 5) בתור ציון זיהוי.

מודל זיהוי הטקסט מחזיר ציפה דו- float32 של צורה (1, 48) כמדדי המיפוי לרשימת האלפבית '0123456789abcdefghijklmnopqrstuvwxyz'

מגבלות

  • מודל זיהוי הטקסט הנוכחי מאומן באמצעות נתונים סינתטיים עם אותיות ומספרים באנגלית, כך שרק אנגלית נתמכת.

  • הדגמים אינם כלליים מספיק עבור OCR בטבע (נניח, תמונות אקראיות שצולמו על ידי מצלמת סמארטפון בתנאי תאורה נמוכה).

אז בחרנו 3 סמלי לוגו של מוצרי Google רק כדי להדגים כיצד לבצע OCR עם TensorFlow Lite. אם אתה מחפש מוצר OCR בדרגת ייצור מוכן לשימוש, עליך לשקול את ערכת Google ML . ערכת ML, שמשתמשת ב-TFLite מתחת, אמורה להספיק לרוב מקרי השימוש ב-OCR, אך ישנם מקרים שבהם ייתכן שתרצה לבנות פתרון OCR משלך עם TFLite. חלק מהדוגמאות הן:

  • יש לך דגמי זיהוי/זיהוי טקסט משלך של TFLite שבהם תרצה להשתמש
  • יש לך דרישות עסקיות מיוחדות (כלומר, זיהוי טקסטים הפוכים) ועליך להתאים אישית את צינור ה-OCR
  • אתה רוצה לתמוך בשפות שאינן מכוסות על ידי ML ​​Kit
  • במכשירי משתמש היעד שלך לא בהכרח מותקנים שירותי Google Play

הפניות