Easy App
กลับไปหน้ารีวิว Repo
รีวิว Repoร่าง

รีวิว Indra OCR — โมเดลอ่านตัวหนังสือจาก PDF และรูป ตัวเล็กมาก รันบน CPU ได้ อ่านภาษาไทยได้

vibe-coder
รีวิว Indra OCR — โมเดลอ่านตัวหนังสือจาก PDF และรูป ตัวเล็กมาก รันบน CPU ได้ อ่านภาษาไทยได้

ข้อมูล Repo

datalab-to/indra
ภาษา
Python
ดาว
887
สร้างเมื่อ
แก้ไขล่าสุด
ร่าง

เปลี่ยนสถานะผ่าน API: PATCH /api/reports/d7741df2-2e08-4997-a8b1-e064f74e4271

แคปชันสำหรับ Facebook

อยากดึงตัวหนังสือจาก PDF หรือรูปสแกน แต่เครื่องไม่มีการ์ดจอ? Indra OCR ตัวนี้รันบน CPU ได้สบาย 📄 ✅ โมเดลเล็กมาก โหลดครั้งแรกแค่ราว 76 MB ไม่ต้องมี GPU ✅ ได้ผลเป็น markdown, text หรือ JSON พร้อมตำแหน่งข้อความและลำดับการอ่าน ✅ อ่านได้ 80 กว่าภาษา ภาษาไทยได้ 87.2 คะแนนบนชุดทดสอบของทีม ✅ หน้าสแกนกลับหัว หันข้าง หรือเอียง ก็อ่านได้ ✅ มีหน้าเว็บ viewer ในเครื่อง ลากไฟล์ใส่แล้วดูผลได้เลย ไฟล์ไม่ออกจากเครื่อง ข้อควรรู้: ตารางซับซ้อนกับลายมือยังอ่านได้ไม่ดี และ weight ของโมเดลฟรีเฉพาะงานวิจัย ใช้ส่วนตัว และสตาร์ทอัปที่ทุนหรือรายได้ต่ำกว่า 20 ล้านดอลลาร์ เหมาะกับคนที่ต้องแปลงเอกสารเยอะ ๆ เป็นข้อความ เช่น เตรียมข้อมูลให้ AI อ่าน 🔗 https://github.com/datalab-to/indra #OCR #AI #OpenSource #Python

ภาพปกแบบ HTML สด

แสดงจาก HTML ต้นฉบับที่ใช้สร้างภาพ ดาวน์โหลดเป็น PNG 1080×1350 ได้ทันที

สรุป

Indra OCR จาก Datalab เป็นโมเดล OCR ขนาดเล็ก (ตัวหลักราว 1.25M พารามิเตอร์) ที่รันบน CPU ล้วน ไม่ต้องมี GPU แปลง PDF และรูปเป็น markdown, text หรือ JSON พร้อมกรอบและลำดับการอ่าน รองรับ 80 กว่าภาษารวมภาษาไทย ติดตั้งด้วย pip ตัวเดียว โค้ด Apache-2.0 แต่ weight ของโมเดลมีเงื่อนไขเชิงพาณิชย์

คืออะไร

Indra OCR คือโมเดล OCR ขนาดเล็กของ Datalab (datalab-to) ที่ออกแบบมาให้รันบน CPU ล้วน ๆ ไม่ต้องมี GPU และไม่ต้องลง PyTorch ใช้ ONNX Runtime เป็นแกนหลัก ตัว recognizer หลัก rec.onnx มีราว 1.25M พารามิเตอร์ (โมเดลเริ่มต้นรวมกัน 7.3M) และแปลง PDF กับรูปภาพออกมาเป็น markdown, text หรือ JSON ที่มี bounding box, ประเภทของบล็อก (หัวข้อ รายการ ตาราง ฯลฯ) และลำดับการอ่าน

เจ้าของ repo บอกว่าความแม่นยำใกล้เคียงโมเดลขนาด 1B+ พารามิเตอร์ ทั้งที่ตัวเล็กกว่ามาก อ่านลายมือได้ อ่านหน้าที่สแกนเอียงได้ และรองรับภาษาไทยด้วย โปรเจกต์เขียนด้วย Python มี ⭐ 887 ดาว และ 90 fork (ข้อมูล ณ 22 ต.ค. 2026)

จุดเด่น

  • คะแนน 66.7 บน OmniParseBench (71.4 เมื่อใช้ --math) เทียบกับ pipeline PP-StructureV3 ของ PaddleOCR ที่ได้ 58.4 ส่วนคะแนนด้านข้อความล้วนได้ 46.7 เทียบ PP-OCR ที่ 35.8 และ Tesseract ที่ 19.3
  • เร็ว: ราว 44 หน้าต่อวินาทีบน CPU 32 core เร็วกว่า Tesseract 15 เท่า และเร็วกว่า PP-OCR 10 เท่า บนเครื่องแบบเดียวกันและเอกสารชุดเดียวกัน ส่วนบน 4 core ใช้ราว 210 มิลลิวินาทีต่อหน้า
  • รองรับ 80 กว่าภาษา: จาก 95 ภาษาที่ทดสอบกับหน้าพิมพ์ มี 83 ภาษาที่ได้ character F1 ตั้งแต่ 0.90 ขึ้นไป และ 67 ภาษาที่ 0.95 ขึ้นไป แบ่งเป็น recognizer 4 ตัว คือ Latin/Cyrillic/Greek, จีน-ญี่ปุ่น-เกาหลี, RTL (อาหรับ เปอร์เซีย อูรดู เปสโต เคอร์ดิช เฮบรู) และอีกชุดสำหรับ Devanagari, ไทย, ลาว, เขมร เป็นต้น
  • ภาษาไทยได้ 87.2 คะแนนบน OmniParseBench (จาก 39 เทสต์) ลาว 96.2 และเขมร 70.6 แต่ README เตือนว่าภาษาส่วนใหญ่มีเทสต์น้อย เทสต์เดียวทำคะแนนขยับได้ 2 ถึง 8 จุด
  • เอกสารดิจิทัล: PDF ที่มีตัวหนังสือในไฟล์อยู่แล้ว (text layer) จะอ่านจากตรงนั้นเลย แล้ว OCR เฉพาะส่วนที่ขาด ทีมทดสอบ 1,125 หน้าจาก 75 กลุ่มภาษา (รวมภาษาไทย) เก็บตัวอักษรได้อย่างน้อย 98% ทุกกลุ่ม
  • อ่านหน้าที่สแกนกลับหัว หันข้าง หรือเอียงได้ถึง 45 องศา รวมถึงข้อความสว่างบนพื้นมืด และหน้าที่ตั้งเป็นคอลัมน์แนวตั้งของภาษาจีนกับญี่ปุ่น
  • เบา: โมเดลรวมราว 76 MB (เครือข่าย 30 MB และโมเดลภาษาสำหรับบรรทัดที่ยังไม่มั่นใจ 46 MB)
  • มี viewer ในเครื่อง (indra-ocr-viewer) ลากไฟล์ใส่แล้วดูกรอบบรรทัด บล็อก ลำดับการอ่าน markdown ผลลัพธ์ JSON และเวลาของแต่ละขั้น ไฟล์ไม่ออกจากเครื่อง

เหมาะกับใคร

  • ทีมที่ต้อง OCR เอกสารจำนวนมากในเครื่องที่ไม่มี GPU หรือไม่อยากลง PyTorch
  • คนที่ต้องการผลลัพธ์เป็น markdown หรือ JSON ที่มีตำแหน่งข้อความและลำดับการอ่าน เช่น งานเอกสารสำหรับ RAG
  • ผู้ใช้เอกสารภาษาไทย ลาว เขมร หรือเอกสารหลายภาษา ที่อยาก OCR ในเครื่องตัวเอง ไม่ต้องส่งไฟล์ขึ้นคลาวด์
  • คนที่ใช้ Tesseract อยู่และอยากลองเทียบเอง เพราะ viewer มีตัวเลือก --tesseract ให้เทียบผลกันได้

เริ่มต้นใช้งาน

pip install indra-ocr

indra-ocr paper.pdf                    # markdown to stdout
indra-ocr *.pdf --out results/         # one .md per input, all cores
indra-ocr scan.png --format json       # lines, boxes, layout blocks, confidences

indra-ocr-viewer                       # local web viewer on http://localhost:8765

ต้องใช้ Python 3.10 ขึ้นไป ทดสอบบน Linux (x86_64 และ aarch64, Python 3.10 ถึง 3.13) และ macOS (Apple silicon) ครั้งแรกที่รันจะดาวน์โหลดโมเดลจาก Hugging Face ประมาณ 76 MB แล้วแคชไว้ ถ้าอยากได้โค้ดจาก GitHub ล่าสุดใช้ pip install git+https://github.com/datalab-to/indra.git และถ้าจะเทียบกับ Tesseract ให้ติดตั้ง pip install "indra-ocr[tesseract]" พร้อม binary ของ Tesseract

เรียกจาก Python:

import indra_ocr

conv = indra_ocr.load(threads=4)          # mode="auto" | "ocr" | "text"
for i, page in conv.convert("paper.pdf"):
    print(page.source, page.timings["total_ms"])
    print(page.markdown)                  # headings, lists, tables as HTML
    page.blocks                           # [{"label", "bbox", "text"}] in reading order
    page.lines                            # [Line(box, text, conf)] in reading order

ข้อควรรู้

  • License: โค้ดเป็น Apache 2.0 แต่ weight ของโมเดลเป็น modified OpenRAIL-M ซึ่งฟรีสำหรับงานวิจัย ใช้ส่วนตัว และสตาร์ทอัปที่มีเงินทุนหรือรายได้ต่ำกว่า 20 ล้านดอลลาร์ และห้ามเอาไปทำบริการแข่งกับ API ของ Datalab ถ้าจะใช้เชิงพาณิชย์นอกเงื่อนไขนี้ต้องดูแผน license ของ Datalab
  • ความสดใหม่: สร้างโปรเจกต์เมื่อ 13 ต.ค. 2026 และ push ล่าสุดเมื่อ 20 ต.ค. 2026 อายุราว 9 วัน ณ 22 ต.ค. 2026 มี issue เปิดอยู่ 5 รายการ โปรเจกต์ยังใหม่ อะไร ๆ อาจเปลี่ยนได้เร็ว
  • ข้อจำกัดด้านตาราง: ตารางที่ซับซ้อน เช่น cell ที่ merge หรือกินหลายคอลัมน์ ข้อความที่ตัดหลายบรรทัด หรือตารางที่ไม่มีเส้น อาจออกมาแล้ว cell อยู่ผิดแถวหรือผิดคอลัมน์ ส่วนตารางกริดธรรมดาอ่านได้ดี
  • ข้อจำกัดด้านลายมือ: อ่านได้แต่ยังไม่ดี ได้ 25.2% บนเทสต์ลายมือของ OmniParseBench และอ่านคำได้ราวหนึ่งในสามบนหน้าลายมือที่ทีมกันไว้ทดสอบ ลายมือตัวเขียนติดกันและดินสอจาง ๆ อ่านแย่ที่สุด
  • ข้อจำกัดด้านภาษา: ภาษาที่ไม่อยู่ในรายการ เช่น Syriac, Tibetan, Mongolian, Santali, Meitei รองรับแค่ผ่าน text layer ของ PDF ดิจิทัล และ Khmer กับ Malayalam อยู่ในระดับพอใช้ (65 ถึง 71 บน OmniParseBench)
  • ถ้าต้องการความแม่นยำสูงกว่า โดยเฉพาะลายมือ สูตร ตารางซับซ้อน และสแกนคุณภาพต่ำ เจ้าของชี้ไปที่โมเดล Chandra บน managed platform ของ Datalab ซึ่งเป็นบริการแยกและมีเงื่อนไขการใช้งานของตัวเอง

🔗 https://github.com/datalab-to/indra

ข้อมูลจาก GitHub ณ 22 ต.ค. 2026: ⭐ 887 | ภาษา Python | license Apache-2.0

ไฟล์แนบ (4)

Easy App — กล่องรายงานจาก AI
v0.10.0 (c067c97)