Skip to main content

📄 ทำได้แล้ว! AI อ่านเอกสารภาษาไทย แจกฟรี 2 โมเดล

ประกาศเมื่อ 12 พฤศจิกายน 2569 (2026)

ทำได้แล้ว! AI อ่านเอกสารไทย แจกฟรี 2 โมเดล: OCR ทั่วไปอ่านตารางออกมาเป็นบรรทัดยาว ส่วน OpenThai 2.0 OCR ตารางยังเป็นตาราง

OCR Markdown 0.63BOCR Text 4 MBใช้เชิงพาณิชย์ได้ไทย + อังกฤษv1.0.0

เคยไหม สแกนเอกสารราชการมาทั้งปึก อยากได้ตัวหนังสือ แต่ OCR อ่านตารางออกมาเป็นบรรทัดยาวเหยียด ไม่รู้ตัวเลขไหนอยู่แถวไหน สุดท้ายต้องนั่งคีย์ใหม่ทีละช่อง

วันนี้ทีม OpenThai ของ iApp Technology เปิดให้ทุกคนโหลด OCR ภาษาไทย 2 โมเดลไปใช้ได้ฟรี ใช้ในงานเชิงพาณิชย์ได้ด้วย

OpenThai 2.0 OCR MarkdownOpenThai 2.0 OCR Text
ทำอะไรหน้าเอกสาร → Markdown ตารางเป็น HTML (รองรับเซลล์ผสาน) พร้อมกล่องและประเภทของทุกบล็อกหน้าเอกสาร → ข้อความตามลำดับการอ่าน พร้อมกล่องและค่าความมั่นใจทุกบรรทัด
ขนาด0.63B พารามิเตอร์1.02M พารามิเตอร์ ไฟล์ ONNX รวม 4.2 MB
รันบนGPU NVIDIA ใบเดียว ผ่าน vLLMCPU อย่างเดียว ไม่ต้องใช้ GPU
ความเร็ว1.6 วินาทีต่อหน้า บน H1000.39 วินาทีต่อหน้า ราว 950 หน้าต่อนาทีบน 8 คอร์
ต่อยอดจากNVIDIA Nemotron 3.5 ParsePaddlePaddle PP-OCRv6-tiny
สัญญาอนุญาตOpenMDW-1.1Apache-2.0
เหมาะกับเอกสารที่มีตาราง งบประมาณ ราชกิจจานุเบกษา เตรียมข้อมูลทำ RAGข้อความล้วนปริมาณมาก เครื่องไม่มี GPU เอกสารลับที่ออกนอกเครื่องไม่ได้

1) OpenThai 2.0 OCR Markdown: ตารางยังเป็นตาราง​

อ่านหน้าเอกสารภาษาไทยออกมาเป็น Markdown โดยตารางเป็น HTML พร้อม rowspan และ colspan เป็นการเทรนต่อแบบเต็มโมเดลจาก NVIDIA Nemotron 3.5 Parse (0.63B) จึงยังได้กล่องเลย์เอาต์ ประเภทบล็อก ลำดับการอ่าน และใช้ชุดเสิร์ฟเดิมของ Parse ได้ทุกที่

  • ตารางในเอกสารจริงของหน่วยงานรัฐและมหาวิทยาลัยไทย 65 หน้า (th-docs-tables v1) ได้ 95.2 เทียบ Typhoon OCR V2 2B 91.6 (ต่าง +3.6 ช่วงความเชื่อมั่น 95% [+1.2, +6.2])
  • ราชกิจจานุเบกษา 339 หน้าที่ประกาศหลังเราเทรนเสร็จ (4–9 พ.ย. 2569) อ่านตัวอักษรถูก 98.7% (Typhoon OCR V2 2B 94.6)
  • ข้อความภาษาไทยตัวพิมพ์ 12 ชุด เฉลี่ย 90.3 สูงสุดจาก 15 เอนจินที่เราทดสอบ (Typhoon OCR V2 2B 89.6 ซึ่งต่างกันแบบไม่มีนัยสำคัญ)
  • 1.6 วินาทีต่อหน้า บน NVIDIA H100 ใบเดียว (ค่ามัธยฐานของหน้าตาราง 12 หน้า ส่งทีละหน้า)
  • ไม่ติดลูปซ้ำคำเลยสักหน้า ทั้งบนหน้าทดสอบทุกชุดและหน้าพัฒนาอีก 6,137 หน้า

OpenThai2.0-OCR-Markdown: น้ำหนักโมเดลและ model card พร้อมผลทดสอบเต็มhuggingface.co/iapp/OpenThai2.0-OCR-Markdown

ไม่อยากดูแล GPU เอง: OpenThai 2.0 OCR Markdown API หน้าละ 0.15 IC พร้อมทดลองใช้iapp.co.th/docs/ocr/document-markdown

OpenThai2.0-OCR-Markdown เทียบ Typhoon OCR V2 และ Nemotron 3.5 Parse

โมเดลขนาดth-docs-tables v1 (65 หน้า)ThaiOCRBench ตาราง (193 ภาพ)ข้อความไทยตัวพิมพ์ (12 ชุด)ราชกิจจาฯ ใหม่ (339 หน้า)เฉลี่ยวินาทีต่อหน้า
OpenThai2.0-OCR-Markdown0.63B95.268.990.398.788.31.6
Nemotron 3.5 Parse (ฐาน)0.63B91.368.389.091.585.01.8
Typhoon OCR V2 2B2B91.667.689.694.685.815.8
Typhoon OCR V2 0.8B0.8B89.064.785.8——18.7

ตัวหนาคือดีที่สุดในแต่ละคอลัมน์ ค่าเฉลี่ยคือค่าเฉลี่ยของ 4 คอลัมน์ความแม่นยำ ส่วน ThaiOCRBench ตาราง (+1.3) และข้อความตัวพิมพ์ (+0.76) ต่างจาก Typhoon OCR V2 2B แบบไม่มีนัยสำคัญ ความเร็วของ Typhoon วัดโดยรันด้วย --enforce-eager ซึ่งโมเดลต้องใช้บน vLLM เวอร์ชันของเรา ถ้าใช้ CUDA graphs ได้จะเร็วกว่านี้ ราชกิจจาฯ ใหม่เป็นเอกสารแบบที่โมเดลคุ้นเคย (ชุดเทรนมีราชกิจจาฯ ของเดือนก่อน ๆ) แต่ไม่มีหน้าใดเคยถูกเทรน

วิธีใช้​

เสิร์ฟด้วย vLLM เหมือนโมเดลฐาน แล้วอ่านหน้าเอกสารด้วย DocumentParser ของ NVIDIA (โหมดกล่องและประเภท อ่านรอบเดียว)

vllm serve iapp/OpenThai2.0-OCR-Markdown --served-model-name nemotron-parse --trust-remote-code
from nemotron_parse.inference import DocumentParser, GenerationError

with DocumentParser(base_url="http://localhost:8000/v1", model="nemotron-parse") as parser:
doc = parser.parse("page.png", mode="single")
print(doc["markdown"]) # Markdown; ตารางเป็น HTML พร้อม rowspan/colspan

ใช้โหมดกล่อง (box mode) ซึ่งเป็นโหมดที่เราทดสอบ วิธีติดตั้งแบบละเอียดอยู่ใน model card

2) OpenThai 2.0 OCR Text: โมเดลจิ๋ว 4 MB ไม่ต้องใช้ GPU​

OCR ข้อความภาษาไทยและอังกฤษตัวพิมพ์ที่รันบน CPU ธรรมดา ตัวตรวจจับบรรทัด PP-OCRv6-tiny (1.8 MB) และตัวอ่านบรรทัดภาษาไทยที่ iApp เทรนเอง (2.4 MB) รันด้วย OpenVINO หรือ ONNX Runtime

  • 0.39 วินาทีต่อหน้า A4 ที่ตัวหนังสือแน่น และราว 950 หน้าต่อนาทีบน Xeon 8 คอร์ ใช้ RAM ราว 450 MB ต่อ worker
  • ไม่ต้องต่อเน็ต เอกสารลับไม่ต้องออกจากเครื่อง
  • เอกสารงบประมาณ 99.5 และราชกิจจานุเบกษา 96.3 (Gemini 2.5 Flash 81.0 และ 92.6, Google Cloud Vision 75.0 และ 87.8)
  • หมุนหน้ากระดาษ ปรับเอียง อ่านหลายคอลัมน์ตามลำดับ และอ่านตัวหนังสือบนพื้นสีให้เอง ผ่านชุดทดสอบความทนทานครบทั้ง 22 สภาพ
  • OpenThai 2.0 OCR Text API ของ iApp สร้างบนโมเดลนี้

OpenThai2.0-OCR-Text: โมเดล ONNX รันไทม์ และตารางเทียบ 15 เอนจินhuggingface.co/iapp/OpenThai2.0-OCR-Text

OpenThai 2.0 OCR Text API: ข้อความล้วนหน้าละ 0.049 IC, Word / Excel / PDF ค้นหาได้ หน้าละ 0.15 ICiapp.co.th/docs/ocr/document

OpenThai2.0-OCR-Text เทียบกับ OCR อื่นอีก 14 เอนจิน

ทุกเอนจินอ่านหน้าเดียวกันและให้คะแนนแบบเดียวกัน คะแนนคือความแม่นยำระดับตัวอักษร 100 × (1 − CER) ยิ่งสูงยิ่งดี

เอนจินเฉลี่ย 12 ชุดตัวพิมพ์คำพิพากษาราชกิจจาฯงบประมาณหนังสือเก่าThaiOCRBenchลายมือ
OpenThai2.0-OCR-Text (โมเดลนี้, CPU)87.897.096.399.577.182.010.3
OpenThai2.0-OCR-Markdown (GPU)90.396.298.098.279.790.678.9
Typhoon OCR V2 2B89.696.294.697.377.287.376.7
NVIDIA Nemotron 3.5 Parse89.096.992.298.976.992.057.3
Typhoon OCR 1.5 2B87.592.492.597.278.671.494.5
Gemini 2.5 Flash87.194.792.681.077.988.886.7
dots.mocr86.496.393.199.576.378.839.4
OneOCR (Microsoft, Windows)85.095.196.699.878.681.891.0
Google Cloud Vision83.693.987.875.073.685.660.8
PaddleOCR 3 PP-OCRv5 (th)81.190.482.993.155.575.841.6
Qwen3.5-9B80.134.588.291.868.582.054.1
Tesseract 5 (tha+eng)75.471.782.371.352.275.026.4
PaddleOCR-VL 1.672.480.879.770.357.668.213.4
DeepSeek-OCR-269.092.884.791.455.277.53.9

ตัวหนาคือดีที่สุดในแต่ละคอลัมน์ ค่าเฉลี่ยรวม 12 ชุดตัวพิมพ์ (งบประมาณ ราชกิจจาฯ SEA-DocBench หนังสือเก่าจากวิกิซอร์ซ คำพิพากษาศาลปกครอง ThaiOCRBench th-docs-tables และ OCR104 อีก 3 ชุด) ไม่รวมลายมือ ตารางเต็มรวม Nemotron 3.5 Parse แบบ plain-text prompt และความเร็วของทุกเอนจินอยู่ใน model card คำพิพากษาศาลเป็นเอกสารประเภทที่อยู่ในชุดเทรน (คนละฉบับกับที่ทดสอบ)

วิธีใช้​

hf download iapp/OpenThai2.0-OCR-Text --local-dir OpenThai2.0-OCR-Text
pip install openvino opencv-python-headless pyclipper numpy
cd OpenThai2.0-OCR-Text
from runtime.line_engine import LineOCR

ocr = LineOCR(".", threads=1)
r = ocr.read("page.png") # path, bytes, ndarray หรือ PIL image
print(r["text"]) # ข้อความตามลำดับการอ่าน
r["lines"] # [{"text", "confidence", "row", "box"}]

ถ้าต้องการปริมาณงานสูง ให้รัน worker หนึ่ง process ต่อหนึ่งคอร์ด้วย threads=1

🤔 ทำไมแจกฟรี​

เอกสารไทยอีกหลายล้านหน้าในหน่วยงานรัฐ โรงพยาบาล และบริษัท ส่งขึ้นคลาวด์ต่างประเทศไม่ได้ เราอยากให้ทุกที่รันในเครื่องตัวเองได้ และใครจะทำแชทบอท AI จากเอกสารองค์กร ก็ต้องเริ่มจากอ่านเอกสารให้ถูกก่อน

⚠️ พูดกันตรง ๆ: สิ่งที่ยังไม่ใช่จุดแข็ง​

  • ลายมือทั้งหน้า ยังไม่ใช่เป้าหมาย OCR Markdown อ่านลายมือได้ระดับบรรทัด ส่วน OCR Text อ่านเฉพาะตัวพิมพ์
  • ภาพถ่ายคำเดี่ยวและภาพตัดสั้นมาก อ่านได้แย่กว่าหน้าเต็ม: OCR Markdown ได้ 96.4 บนภาพถ่ายเอกสาร OCR104 เทียบ Typhoon OCR V2 2B 99.8
  • ตารางที่ไม่เหมือนเอกสารราชการไทย อ่านได้ใกล้เคียงโมเดลฐาน (ThaiOCRBench ตาราง 68.9 เทียบฐาน 68.3) บางตารางยังได้แถวไม่ครบหรือ rowspan ผิด
  • เลขไทย บางครั้งออกมาเป็นเลขอารบิก (112 ตัวจากเลขไทยราว 22,000 ตัวบนราชกิจจาฯ 339 หน้า)
  • ตัวพิมพ์ดอตแมทริกซ์ (สมุดบัญชีธนาคาร) ได้ 89% บนชุดพัฒนาที่สร้างขึ้น ยังไม่มีชุดทดสอบจริง
  • ข้อความแนวตั้ง เช่นหัวตารางที่หมุน อาจอ่านผิด
  • OCR Text: ฟอนต์ตกแต่งหนัก ๆ อาจอ่านผิด ตราประทับจะออกมาเป็นข้อความ และความเร็วแบบ bf16 ต้องใช้ CPU ที่มี AMX (Sapphire Rapids ขึ้นไป)

ทีมกำลังพัฒนาต่อครับ และขอบคุณทีม Typhoon ที่ช่วยกันยกมาตรฐาน OCR ภาษาไทยมาด้วยกัน

👨‍👩‍👧 ตระกูล OpenThai 2.0​

โมเดลทำอะไรขนาดสถานะ
OpenThai 2.0LLM สนทนา/ให้เหตุผลภาษาไทย อ่านภาพได้27Bเปิดตัวแล้ว
OpenThai 2.0 Legalโมเดลกฎหมายไทยสำหรับ RAG30B-A3Bเปิดตัวแล้ว
OpenThai-SystemOneโมเดลตัดสินใจไทย+อังกฤษ (ไม่สร้างข้อความ)0.8Bเปิดตัวแล้ว
OpenThai 2.0 OCR Markdownหน้าเอกสาร → Markdown ตารางเป็นตาราง0.63Bเปิดตัวแล้ว
OpenThai 2.0 OCR TextOCR ข้อความตัวพิมพ์บน CPU4 MBเปิดตัวแล้ว

🤝 ร่วมพัฒนา​

  • มีเอกสารภาษาไทยที่ OCR ตัวไหนก็อ่านไม่ออก (ที่ไม่มีข้อมูลส่วนตัว) ส่งมาให้เราลองได้
  • พูดคุยกันได้ที่ Discord OpenThaiGPT และ กลุ่ม Facebook

📄 สัญญาอนุญาตและเครดิต​

  • OpenThai 2.0 OCR Markdown: OpenMDW-1.1 อนุญาตให้ใช้ได้โดยไม่มีข้อจำกัด รวมถึงเชิงพาณิชย์ เป็นงานต่อยอดจาก NVIDIA Nemotron 3.5 Parse ซึ่งใช้ OpenMDW-1.1 เช่นกัน tokenizer ใช้สัญญาอนุญาต MIT Built on NVIDIA Nemotron
  • OpenThai 2.0 OCR Text: Apache-2.0 ตัวตรวจจับและจุดเริ่มต้นของตัวอ่านคือ PP-OCRv6-tiny ของ PaddlePaddle (Apache-2.0)

พัฒนาโดย iApp Technology / ทีม OpenThai

🙏 ขอบคุณ Siam AI​

Siam AI Corporation

ทั้งสองโมเดลเทรนบน GPU NVIDIA H100 ที่ได้รับการสนับสนุนจาก บริษัท สยาม เอไอ คอร์เปอเรชั่น จำกัด ขอขอบคุณเป็นอย่างยิ่งที่ร่วมสนับสนุน AI ไทยแบบเปิดมาอย่างต่อเนื่อง และขอบคุณ NVIDIA สำหรับ Nemotron 3.5 Parse