การรู้จำอักขระด้วยแสง (OCR)

การรู้จำอักขระด้วยแสง (OCR) คือกระบวนการจดจำอักขระจากรูปภาพโดยใช้คอมพิวเตอร์วิทัศน์และเทคนิคการเรียนรู้ของเครื่อง แอปอ้างอิงนี้สาธิตวิธีใช้ TensorFlow Lite เพื่อทำ OCR โดยจะใช้การผสมผสานระหว่าง โมเดลการตรวจจับข้อความ และ โมเดลการจดจำข้อความ เป็นไปป์ไลน์ OCR เพื่อจดจำอักขระข้อความ

เริ่ม

หากคุณยังใหม่กับ TensorFlow Lite และกำลังใช้งาน Android เราขอแนะนำให้สำรวจแอปพลิเคชันตัวอย่างต่อไปนี้ที่สามารถช่วยคุณเริ่มต้นได้

ตัวอย่างหุ่นยนต์

หากคุณใช้แพลตฟอร์มอื่นที่ไม่ใช่ Android หรือคุณคุ้นเคยกับ TensorFlow Lite API อยู่แล้ว คุณสามารถดาวน์โหลดโมเดลต่างๆ ได้จาก TF Hub

มันทำงานอย่างไร

งาน OCR มักจะแบ่งออกเป็น 2 ขั้นตอน ขั้นแรก เราใช้โมเดลการตรวจจับข้อความเพื่อตรวจจับกรอบล้อมรอบข้อความที่เป็นไปได้ ประการที่สอง เราป้อนกล่องขอบเขตที่ประมวลผลแล้วลงในโมเดลการรู้จำข้อความเพื่อกำหนดอักขระเฉพาะภายในกล่องขอบเขต (เรายังต้องทำการระงับแบบไม่สูงสุด การแปลงเปอร์สเปคทีฟ และอื่นๆ ก่อนที่จะจดจำข้อความ) ในกรณีของเรา ทั้งสองรุ่นมาจาก TensorFlow Hub และเป็นโมเดลเชิงปริมาณ FP16

เกณฑ์มาตรฐานประสิทธิภาพ

หมายเลขเกณฑ์มาตรฐานประสิทธิภาพสร้างขึ้นด้วยเครื่องมือที่อธิบายไว้ ที่นี่

ชื่อรุ่น ขนาดโมเดล อุปกรณ์ ซีพียู จีพียู
การตรวจจับข้อความ 45.9 ลบ พิกเซล 4 (Android 10) 181.93ms* 89.77ms*
การรับรู้ข้อความ 16.8 ลบ พิกเซล 4 (Android 10) 338.33ms* ไม่มี**

* ใช้ 4 เธรด

** รุ่นนี้ไม่สามารถใช้ตัวแทน GPU ได้เนื่องจากเราต้องการตัวเลือก TensorFlow เพื่อเรียกใช้

อินพุต

โมเดลการตรวจจับข้อความยอมรับเทนเซอร์ 4-D float32 ของ (1, 320, 320, 3) เป็นอินพุต

โมเดลการรู้จำข้อความยอมรับเทนเซอร์ 4-D float32 ของ (1, 31, 200, 1) เป็นอินพุต

เอาท์พุต

โมเดลการตรวจจับข้อความส่งคืนเทนเซอร์ 4-D float32 ของรูปร่าง (1, 80, 80, 5) เป็นกล่องขอบเขต และ 4-D float32 เทนเซอร์ของรูปร่าง (1,80, 80, 5) เป็นคะแนนการตรวจจับ

โมเดลการรู้จำข้อความส่งคืนเทนเซอร์ 2 มิติ float32 ของรูปร่าง (1, 48) เป็นดัชนีการแมปไปยังรายการตัวอักษร '0123456789abcdefghijklmnopqrstuvwxyz'

ข้อจำกัด

  • โมเดลการรู้จำข้อความ ปัจจุบันได้รับการฝึกฝนโดยใช้ข้อมูลสังเคราะห์ที่มีตัวอักษรและตัวเลขภาษาอังกฤษ ดังนั้นจึงรองรับเฉพาะภาษาอังกฤษเท่านั้น

  • โมเดลไม่ทั่วไปเพียงพอสำหรับ OCR ในป่า (เช่น ภาพสุ่มที่ถ่ายโดยกล้องสมาร์ทโฟนในสภาพแสงน้อย)

ดังนั้นเราจึงเลือกโลโก้ผลิตภัณฑ์ Google 3 อันเพื่อสาธิตวิธีทำ OCR ด้วย TensorFlow Lite เท่านั้น หากคุณกำลังมองหาผลิตภัณฑ์ OCR ระดับการผลิตที่พร้อมใช้งาน คุณควรพิจารณา Google ML Kit ML Kit ซึ่งใช้ TFLite ข้างใต้ น่าจะเพียงพอสำหรับกรณีการใช้งาน OCR ส่วนใหญ่ แต่มีบางกรณีที่คุณอาจต้องการสร้างโซลูชัน OCR ของคุณเองด้วย TFLite ตัวอย่างบางส่วนได้แก่:

  • คุณมีโมเดล TFLite การตรวจจับ/จดจำข้อความของคุณเองที่คุณต้องการใช้
  • คุณมีข้อกำหนดทางธุรกิจพิเศษ (เช่น การจดจำข้อความที่กลับหัว) และจำเป็นต้องปรับแต่งไปป์ไลน์ OCR
  • คุณต้องการสนับสนุนภาษาที่ไม่ครอบคลุมใน ML Kit
  • อุปกรณ์ผู้ใช้เป้าหมายของคุณไม่จำเป็นต้องติดตั้งบริการ Google Play

อ้างอิง