Show HN: LLM-Aided OCR – แก้ไขข้อผิดพลาดของ Tesseract OCR ด้วย LLM
(github.com/Dicklesworthstone)- ออกแบบมาเพื่อยกระดับคุณภาพของผลลัพธ์จากการรู้จำอักขระด้วยแสง (OCR) อย่างมาก
- ใช้เทคโนโลยีการประมวลผลภาษาธรรมชาติสมัยใหม่และโมเดลภาษาขนาดใหญ่ (LLM) เพื่อแปลงข้อความ OCR ดิบให้เป็นเอกสารที่มีความแม่นยำสูง จัดรูปแบบดี และอ่านง่าย
ฟีเจอร์
- แปลง PDF เป็นรูปภาพ
- ทำ OCR ด้วย Tesseract
- การแก้ไขข้อผิดพลาดขั้นสูงด้วย LLM (แบบโลคัลหรือผ่าน API)
- การแบ่งข้อความอัจฉริยะเพื่อการประมวลผลที่มีประสิทธิภาพ
- ตัวเลือกการจัดรูปแบบ Markdown
- ซ่อนส่วนหัวและหมายเลขหน้า (ทางเลือก)
- ประเมินคุณภาพของผลลัพธ์สุดท้าย
- รองรับ LLM แบบโลคัลและผู้ให้บริการ API บนคลาวด์ (OpenAI, Anthropic)
- การประมวลผลแบบอะซิงโครนัสเพื่อเพิ่มประสิทธิภาพ
- การบันทึกล็อกอย่างละเอียดเพื่อติดตามกระบวนการและดีบัก
- การเร่งความเร็วด้วย GPU สำหรับการอนุมานของ LLM แบบโลคัล
ข้อกำหนด
- Python 3.12+
- Tesseract OCR engine
- ไลบรารี PDF2Image
- PyTesseract
- OpenAI API (ไม่บังคับ)
- Anthropic API (ไม่บังคับ)
- รองรับ LLM แบบโลคัล (ไม่บังคับ ต้องใช้โมเดล GGUF ที่เข้ากันได้)
วิธีใช้งาน
- วางไฟล์ PDF ไว้ในไดเรกทอรีของโปรเจ็กต์
- อัปเดตตัวแปร
input_pdf_file_pathในฟังก์ชันmain()ให้เป็นชื่อไฟล์ PDF - รันสคริปต์:
python llm_aided_ocr.py - สคริปต์จะสร้างไฟล์เอาต์พุตหลายไฟล์ ซึ่งรวมถึงข้อความหลังการประมวลผลขั้นสุดท้าย
วิธีการทำงาน
โปรเจ็กต์ LLM-Aided OCR ใช้กระบวนการหลายขั้นตอนเพื่อแปลงผลลัพธ์ OCR ดิบให้เป็นข้อความคุณภาพสูงที่อ่านง่าย:
- การแปลง PDF: ใช้
pdf2imageเพื่อแปลง PDF อินพุตเป็นรูปภาพ - OCR: ใช้ Tesseract OCR เพื่อดึงข้อความจากรูปภาพ
- การแบ่งข้อความ: แบ่งผลลัพธ์ OCR ดิบออกเป็นส่วนย่อยที่จัดการได้
- การแก้ไขข้อผิดพลาด: แต่ละส่วนย่อยจะถูกประมวลผลด้วย LLM เพื่อแก้ไขข้อผิดพลาดของ OCR และเพิ่มความสามารถในการอ่าน
- การจัดรูปแบบ Markdown (ทางเลือก): จัดรูปแบบข้อความที่แก้ไขแล้วใหม่ให้เป็น Markdown ที่สะอาดและสม่ำเสมอ
- การประเมินคุณภาพ: เปรียบเทียบคุณภาพของผลลัพธ์สุดท้ายกับข้อความ OCR ต้นฉบับผ่านการประเมินด้วย LLM
สรุปโดย GN⁺
- โปรเจ็กต์ LLM-Aided OCR เป็นระบบที่ใช้เทคโนโลยีการประมวลผลภาษาธรรมชาติสมัยใหม่และโมเดลภาษาขนาดใหญ่เพื่อยกระดับคุณภาพของผลลัพธ์ OCR อย่างมาก
- แปลง PDF เป็นรูปภาพ ดึงข้อความด้วย Tesseract จากนั้นใช้ LLM เพื่อแก้ไขข้อผิดพลาดและจัดรูปแบบใหม่เป็น Markdown
- รองรับทั้ง LLM แบบโลคัลและบนคลาวด์ พร้อมเพิ่มประสิทธิภาพด้วยการประมวลผลแบบอะซิงโครนัส
- โปรเจ็กต์นี้มีฟีเจอร์ขั้นสูงหลากหลายเพื่อเพิ่มความแม่นยำและความสามารถในการอ่านของผลลัพธ์ OCR โดยมีประโยชน์อย่างยิ่งกับการประมวลผลเอกสารขนาดใหญ่
- โปรเจ็กต์ที่มีฟังก์ชันคล้ายกัน ได้แก่ ABBYY FineReader, Adobe Acrobat OCR เป็นต้น
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
การเปิดตัวโมเดล schnell ใหม่อาจทำให้สามารถสร้างชุดข้อมูลสำหรับผลิตโมเดลวิชันระดับ SOTA ได้
สำหรับบทความวิทยาศาสตร์ โมเดล nougat ของ Meta เหมาะสมที่สุด
จากที่เคยลองในอดีต พบว่าใช้งานได้ดีใน 90% ของกรณี
หากแปลงหน้า PDF เป็น PNG แล้วขอให้ gpt4 ถอดข้อความจากภาพ จะได้ความแม่นยำสูงมาก
เมื่อ 10 ปีก่อนเคยพยายามใช้ Tesseract ทำ OCR ภาษาจีน
ได้ผลลัพธ์ที่ดีกว่าเมื่อใช้ PaddlePaddle
มีคำถามว่าได้ลองใช้แพ็กเกจ OCR อื่นหรือไม่
การปรับพรอมป์ต์ให้โมเดลเข้าใจได้ชัดเจนขึ้นเป็นเรื่องสำคัญ
กำลังทำงานลักษณะคล้ายกันในการพาร์สเกณฑ์การให้คะแนนและงานส่งของนักเรียน
มีคำถามเกี่ยวกับแนวทางแก้ข้อผิดพลาด OCR โดยใช้พรอมป์ต์ "fix this text"