6 มิถุนายน 2558

Published มิถุนายน 06, 2558 by with 0 comment

OCR กับภาษา Python

สวัสดีผู้อ่านทุกท่านครับ บทความนี้ผมจะพาผู้อ่านไปใช้ OCR กับภาษา Python กันครับ

OCR คืออะไร ?
OCR ย่อมาจาก Optical character recognition คือ การแปลงข้อความจากไฟล์ภาพเอกสาร ให้เป็นข้อความโดยอัตโนมัติ มีประโยชน์ช่วยให้ลดเวลาการพิมพ์เอกสารซับซ้อนลงได้

เนื่องจากการใช้เทคโนโลยี Optical character recognition กับภาษา Python ไม่ค่อยจะเหมาะสมเท่าไร เพราะเทคโนโลยี Optical character recognition มีความซับซ้อนของระบบค่อนข้างสูงมาก การลงทุนพัฒนาไม่ใช่เรื่องง่าย ภาษา Python เป็นภาษาแบบอินเตอร์เฟส จึงควรต้องใช้ภาษาแบบคอมไพเลอร์ เพื่อความรวดเร็วในการทำงาน

การลงแรงพัฒนาเทคโนโลยี Optical character recognition เป็นเรื่องที่ผมหรือไม่ว่าใครก็ตามจะทำคนเดียวได้ ผมจึงใช้ tesseract ซึ่งเป็น OCR engine แบบ open source ใช้ Apache License 2.0 ที่ตอนนี้ Google เป็นเจ้าของครับ โดย tesseract รองรับภาษาไทยด้วยนะครับ

สามารถเข้าไปโหลด tesseract มาติดตั้งได้จาก https://github.com/tesseract-ocr
สำหรับผู้ใช้งาน windows สามารถโหลดไฟล์ติดตั้งได้จาก https://github.com/UB-Mannheim/tesseract/wiki

ทำการติดตั้งและเลือกภาษาไทยด้วยนะครับ (ขออภัยที่ผมไม่มีรูปภาพตอนติดตั้งครับ เพราะผมไม่ได้บันทึกไว้ครับ)

กำหนดค่า path กับโฟลเลอร์ที่ติดตั้ง tesseract ให้เรียบร้อยแล้ว ต่อไปเราจะลงมือเขียนโค้ดภาษา Python เพื่อใช้ tesseract ครับ

tesseract สามารถใช้งานได้ผ่านคอมมานด์ไลน์ โดยรองรับไฟล์ภาพ png , jpg อ่านรายละอียดได้ที่ https://code.google.com/p/tesseract-ocr/wiki/ReadMe

เนื่องจากภาษา Python ไม่ได้มีโมดูลสำหรับเรียกใช้งาน tesseract ผมจึงเขียนโค้ดขึ้นมาเอง
โค้ดในบทความนี้เข้ากันได้กับ Python 3 เท่านั้น ไม่รองรับ Python 2.6 และ Python 2.7

โค้ดไฟล์ ocr.py
ต่อไปเรามาลองทดสอบการใช้งาน tesseract กับภาษา Python กันครับ
ไฟล์รูปภาพที่ทดสอบ โหลดได้ที่ https://www.dropbox.com/sh/qzo2m76fd5gj6yl/AADztG3QYOa3rRG_IYliqQ5qa?dl=0
โค้ดทดสอบ test.py
ไฟล์ test.py กับไฟล์ ocr.py ต้องอยู่ในโฟลเลอร์เดียวกันครับ
ผลลัพธ์

จะเห็นได้ว่า มีความแม่นยำพอใช้ได้ แต่ภาษาไทย จะอ่านได้เฉพาะ Font ที่เป็นที่นิยมกันครับ เช่น Angsana New เป็นต้น
ผมขอทิ้งท้ายประโยคหนึ่งว่า
ภาษาคอม ฯ เป็นแค่เครื่องมือสำหรับใช้พัฒนาโปรแกรมเท่านั้น ไม่ใช่ของคุณ ภาษาคอม ฯ อาจมีเกิดและดับไปตามเทคโนโลยีตามที่โลกหมุนไปไม่เคยอยู่นิ่ง แต่องค์ความรู้และมันสมองของคุณเป็นของคุณจริง ๆ และเป็นสิ่งเดียวที่ใช้ได้ไปตลอดชีวิตของคุณ

หน้าเว็บโครงการ https://github.com/tesseract-ocr
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ

ปรับปรุงครั้งที่ 1 วันที่ 11/10/2015 แก้ไขโค้ด test.py หาย

0 ความคิดเห็น:

แสดงความคิดเห็น

แสดงความคิดเห็นได้ครับ :)