ลอง EasyOCR ภาษาไทย และเล่น uv ครั้งแรกในโปรเจกต์ OCR แบบ Python สมัยใหม่
TL;DR
ภาษาไทย OCR ยังไม่สมบูรณ์แบบ แต่ก็พอใช้ได้ในระดับฟรี เอาไปใช้ร่วมกับ GPT ช่วยปรับแก้ได้ Github Code: https://github.com/mildronize/thai-ocr-with-easyocr
ช่วงนี้มีโจทย์น่าสนุกจากฝั่งงาน Dev ให้ช่วย Proof of Concept ระบบ OCR สำหรับเอกสารภาษาไทย
ก็เลยได้โอกาสลองของใหม่ 2 อย่างพร้อมกัน
- ลอง EasyOCR — ว่ามันอ่านภาษาไทยได้แค่ไหนในโลกจริง
- ลอง
uv
— เครื่องมือจัดการ Python project แบบ modern ที่มาแทน pip, venv, pip-tools ในตัวเดียว
เริ่มจากโจทย์ง่าย ๆ: อ่าน PDF ภาษาไทย
ใน POC รอบนี้ เราต้องอ่านไฟล์ PDF (ที่เป็น scanned document) แล้วแปลงเป็นข้อความ
คำถามในหัวคือ… “OCR ภาษาไทยปี 2025 มันพอไหวมั้ยนะ?”
เลยลอง setup เบื้องต้นแบบเร็ว ๆ:
- ใช้
pdf2image
แปลง PDF → Image - ใช้
easyocr
รองรับภาษา['th', 'en']
- บันทึกผลลัพธ์ลงไฟล์ text
ผลลัพธ์ที่ได้ "พอใช้ได้ในระดับ OCR ฟรี" — ไม่เป๊ะทุกคำ แต่ถ้าเอกสารคม ๆ สะอาด ๆ ก็อ่านได้เยอะอยู่นะ โดยเฉพาะตัวอักษรพิมพ์ดีด/เอกสารราชการที่พิมพ์ตรง ๆ (ไม่ใช่สแกนเอกสารที่ซีดหรือเบี้ยว)
แต่ก็เอาไปใช้งานจริงไม่ได้เท่าไหร่นัก เลยเอาไปใช้ GPT ช่วยปรับแก้ให้เป็นข้อความที่อ่านง่ายขึ้น
(ซึ่งก็ทำได้ดีในระดับนึง แต่ก็ยังมีข้อผิดพลาดอยู่บ้าง)
แล้วก็ลองใช้ uv
ดูครั้งแรก...
โอ้โห รู้สึกเลยว่า Python มัน modern ขึ้น!
ปกติถ้าจะเริ่มโปรเจกต์ Python เราต้องตั้ง venv, สร้าง requirements.txt, ลง pip, ทำ pip freeze, จัด lockfile — เยอะเวอร์ แต่ uv
ทำให้ทุกอย่างง่ายเหลือแค่คำสั่งเดียว:
หรือถ้าจะจัดเต็มแบบ modern dev:
นอกจากจะเร็วกว่า pip เยอะมาก (เพราะเขียนด้วย Rust) ยังรวมระบบ lockfile แบบเดียวกับ bun
, pnpm
ไว้ด้วยเลย แถมใช้แทน virtualenv
ได้เลยด้วย 🎉
สิ่งที่ได้คิดจากการลองของ
- บางทีการกลับมาลอง tools ใหม่ ๆ มันทำให้เรา “รู้สึกสนุก” กับ Python ขึ้นอีกครั้ง
- OCR ภาษาไทยยังไม่สมบูรณ์แบบ แต่ก็พอจะเอาไปใช้ในงานจริงได้ ถ้ารู้ว่าจุดแข็ง-จุดอ่อนมันอยู่ตรงไหน
- เครื่องมือดี ๆ อย่าง
uv
ทำให้ Python ecosystem ดู “ทันสมัย” ขึ้นมาก โดยเฉพาะกับคนที่ชอบ style แบบ TypeScript / Bun
แล้วพบกันใหม่ สวัสดีครับ
ตัวอย่างโค้ดทั้งหมดอยู่ที่ https://github.com/mildronize/thai-ocr-with-easyocr