ระบบ OCR แบบครบวงจรด้วย Keras และ TensorFlow
ใช้ Keras-OCR สำหรับการจดจำข้อความที่เรียบง่ายแต่ทรงพลังใน Python
Keras-OCR API คืออะไร?
Keras-OCR เป็นไลบรารี Python ระดับสูงแบบโอเพนซอร์สที่ออกแบบมาเพื่อทำให้งานการจดจำอักขระแบบออปติคัล (OCR) ง่ายขึ้นโดยใช้พลังของ Keras และ TensorFlow ซึ่งต่างจากระบบ OCR แบบดั้งเดิมที่ต้องมีการกำหนดค่าที่ซับซ้อน Keras-OCR นำเสนอระบบแบบครบวงจรพร้อมโมเดลที่ฝึกไว้ล่วงหน้าสำหรับ การตรวจจับข้อความ (โดยใช้อัลกอริทึม CRAFT) และ การจดจำข้อความ (ผ่านโมเดล CRNN) การผสมผสานนี้ช่วยให้นักพัฒนาสามารถดึงข้อความจากภาพ เอกสารที่สแกน หรือแม้แต่โน้ตที่เขียนด้วยมือด้วยโค้ดเพียงไม่กี่บรรทัด
ไลบรารีนี้ได้รับการปรับให้เหมาะสมสำหรับกรณีการใช้งานจริง เช่น:
- การแปลงเอกสารเป็นดิจิทัล: เปลี่ยนเอกสารกระดาษหรือไฟล์ PDF เป็นข้อความที่ค้นหาได้
- การป้อนข้อมูลอัตโนมัติ: ดึงข้อความจากใบแจ้งหนี้ ใบเสร็จ หรือแบบฟอร์ม
- เครื่องมือช่วยการเข้าถึง: สร้างข้อความแทนสำหรับภาพในแอปพลิเคชันเว็บ
- การวิเคราะห์โซเชียลมีเดีย: ประมวลผลข้อความที่ฝังอยู่ในมีมหรือเนื้อหาที่ผู้ใช้สร้างขึ้น
ด้วยการรองรับการประมวลผลแบบกลุ่มและการเร่งความเร็วด้วย GPU ที่มีให้เลือกใช้ Keras-OCR สร้างสมดุลระหว่างความง่ายในการใช้งานและประสิทธิภาพ ทำให้เหมาะสำหรับทั้งการสร้างต้นแบบและการใช้งานจริง
คุณสมบัติหลักของ Keras-OCR
- โมเดลที่ฝึกไว้ล่วงหน้า: รวม CRAFT (ตัวตรวจจับ) และ CRNN (ตัวจดจำ) สำหรับใช้งานทันที
- การตั้งค่าที่ง่าย: การพึ่งพาน้อยที่สุด (Keras, TensorFlow, OpenCV)
- การประมวลผลแบบกลุ่ม: ประมวลผลหลายภาพพร้อมกันเพื่อประสิทธิภาพ
- การฝึกแบบกำหนดเอง: ปรับแต่งโมเดลด้วยชุดข้อมูลของคุณเอง
- ไม่จำเป็นต้องใช้ GPU: ทำงานบน CPU แต่เร่งความเร็วด้วย GPU
- แสดงขอบเขตข้อความ: ส่งกลับข้อความพร้อมพิกัดสำหรับการวิเคราะห์เชิงพื้นที่
- โอเพนซอร์ส: ฟรี ใช้ชุมชนเป็นหลัก และมีใบอนุญาต MIT
การติดตั้ง
ติดตั้ง Keras-OCR ผ่าน pip (ต้องใช้ Python 3.6 ขึ้นไป):
ติดตั้ง Keras-OCR
pip install keras-ocr
สำหรับการรองรับ GPU ตรวจสอบให้แน่ใจว่าได้ติดตั้ง TensorFlow พร้อม GPU:
ติดตั้ง TensorFlow GPU
pip install tensorflow-gpu
ตัวอย่างโค้ด
ต่อไปนี้เป็นตัวอย่างการใช้งานจริงสำหรับดึงข้อความจากภาพโดยใช้ Keras-OCR
ตัวอย่าง 1: การตรวจจับและจดจำข้อความพื้นฐาน
ตัวอย่างนี้แสดงวิธีใช้ระบบที่ฝึกไว้ล่วงหน้าเพื่อดึงข้อความจากภาพ:
ระบบ OCR พื้นฐาน
import keras_ocr
pipeline = keras_ocr.pipeline.Pipeline()
images = ["receipt.jpg"]
predictions = pipeline.recognize(images)
print(predictions)
ตัวอย่าง 2: การประมวลผลแบบกลุ่ม
ประมวลผลหลายภาพพร้อมกันเพื่อประสิทธิภาพ:
การประมวลผลแบบกลุ่ม
import keras_ocr
pipeline = keras_ocr.pipeline.Pipeline()
images = ["image1.jpg", "image2.jpg", "image3.jpg"]
batch_predictions = pipeline.recognize(images)
for prediction in batch_predictions:
print(prediction)
ตัวอย่าง 3: การแสดงขอบเขตข้อความ
วาดกล่องข้อความที่ตรวจจับได้บนภาพต้นฉบับ:
แสดงผลลัพธ์
import matplotlib.pyplot as plt
import keras_ocr
pipeline = keras_ocr.pipeline.Pipeline()
image = keras_ocr.tools.read("document.jpg")
predictions = pipeline.recognize([image])
keras_ocr.tools.drawAnnotations(image, predictions[0])
plt.imshow(image)
plt.show()
สรุป
Keras-OCR ทำให้การดึงข้อความง่ายขึ้นด้วยระบบที่พร้อมใช้งานทันที ทำให้เป็นตัวเลือกที่ยอดเยี่ยมสำหรับนักพัฒนาที่ต้องการ OCR ที่รวดเร็วและแม่นยำโดยไม่ต้องกำหนดค่าที่ซับซ้อน การผสานรวมกับ Keras และ TensorFlow ช่วยให้สามารถปรับแต่งได้ ในขณะที่การประมวลผลแบบกลุ่มช่วยให้สามารถขยายขนาดได้
ไม่ว่าคุณจะสร้างเครื่องสแกนเอกสาร ป้อนข้อมูลอัตโนมัติ หรือวิเคราะห์เนื้อหาโซเชียลมีเดีย Keras-OCR นำเสนอโซลูชันที่เบาแต่ทรงพลัง