บทความ
ปรับปรุงความแม่นยำของ OCR: แก้ไขภาพก่อนที่จะจดจำข้อความ
ความแม่นยำของ OCR ขึ้นอยู่กับคุณภาพของภาพที่ป้อนเข้าไป ภาพสแกนที่เอียง มีคอนทราสต์ต่ำ หรือมีสัญญาณรบกวนมาก จะให้ข้อความที่ผิดเพี้ยนไม่ว่าเครื่องมือจะดีแค่ไหน ต่อไปนี้คือสิ่งที่ส่งผลจริงต่อผลลัพธ์ เรียงตามลำดับที่ควรดำเนินการ ทั้งหมดทำงานในเบราว์เซอร์ของคุณ
เหตุใด OCR จึงทำงานได้ไม่ดีกับภาพสแกนจริง
เครื่องมือ OCR อย่าง Tesseract ได้รับการฝึกบนข้อความที่สะอาด อยู่ในแนวนอน และมีคอนทราสต์สูง โดยจะแบ่งหน้าเป็นบรรทัด บรรทัดเป็นคำ และคำเป็นรูปร่างของอักขระ จากนั้นจึงจับคู่แต่ละรูปร่างกับโมเดลที่ฝึกไว้ ภาพสแกนในชีวิตจริงขัดต่อสมมติฐานเหล่านี้: หน้ากระดาษเอียงสองสามองศา แสงไม่สม่ำเสมอ ความละเอียดต่ำ และขอบของแท่นสแกนหรือหน้าที่อยู่ตรงข้ามเพิ่มสัญญาณรบกวนสีเข้ม ปัญหาแต่ละอย่างทำให้ขั้นตอนการแบ่งส่วนบรรทัดและอักขระเกิดข้อผิดพลาด และข้อผิดพลาดในการแบ่งส่วนจะส่งผลต่อเนื่องไปยังอักขระที่ผิดพลาด วิธีแก้ไขแทบไม่ใช่การเปลี่ยนเครื่องมือ แต่คือการเตรียมภาพให้สมมติฐานของเครื่องมือเป็นจริง ในทางปฏิบัติ การประมวลผลล่วงหน้าส่งผลต่อความแม่นยำมากกว่าการเลือกเครื่องมือ OCR

เริ่มต้นด้วยความละเอียด: ตั้งเป้าที่ 300 DPI
Tesseract ทำงานได้ดีที่สุดที่ประมาณ 300 DPI สำหรับข้อความเนื้อหาปกติ ต่ำกว่าประมาณ 200 DPI เส้นของแต่ละรูปสัญลักษณ์จะเบลอและผสมกับเส้นข้างเคียง ทำให้ความแม่นยำลดลงอย่างเห็นได้ชัด หากคุณควบคุมเครื่องสแกนได้ ให้ตั้งค่าเป็น 300 DPI ก่อนสิ่งอื่นใด เพราะนี่คือตัวเลือกที่มีผลกระทบสูงที่สุด หากคุณมีเพียงภาพความละเอียดต่ำ การขยายภาพจะไม่สร้างรายละเอียดที่ไม่เคยถูกบันทึก แต่การขยายปานกลางยังสามารถช่วยให้เครื่องมือแยกอักขระที่ติดกันได้โดยให้พิกเซลเพิ่มเติมแก่การแบ่งส่วน ตัวอักษรขนาดเล็กมากได้ประโยชน์จาก 400 ถึง 600 DPI แต่เกินกว่านั้นจะทำให้ไฟล์ใหญ่ขึ้นโดยไม่ได้รับความแม่นยำเพิ่ม เมื่อแหล่งที่มาเป็น PDF ให้แปลงแต่ละหน้าเป็นภาพที่ DPI เป้าหมายก่อน จากนั้นจึงเรียกใช้ OCR บนภาพนั้น
แก้ไขการวางแนวหน้า
หากหน้าหมุน 90, 180 หรือ 270 องศา เครื่องมือจะอ่านข้อความในแนวข้างหรือกลับหัวและส่งคืนข้อความที่ไม่มีความหมาย Tesseract มีขั้นตอนการตรวจจับการวางแนวและสคริปต์ (OSD) ที่สามารถเดาการหมุนได้ แต่ไม่น่าเชื่อถือกับข้อความบางๆ แบบฟอร์ม หรือหน้าที่มีรูปภาพมาก การหมุนหน้าให้ตั้งตรงด้วยตัวเองจะขจัดความไม่แน่นอนออกไป ขั้นตอนนี้ไม่มีการสูญเสียและทำได้ทันที: การหมุนเป็นทวีคูณของ 90 องศาเพียงแค่กำหนดพิกเซลที่มีอยู่ใหม่ไปยังตำแหน่งใหม่โดยไม่ต้องสุ่มตัวอย่างใหม่ ทำขั้นตอนนี้ก่อนแก้ไขความเอียง เพราะการแก้ความเอียงสมมติว่าข้อความอยู่ในแนวนอนอยู่แล้ว
แก้ไขความเอียง: ปรับให้ตรงจากการเอียงเล็กน้อย
แม้แต่ความเอียง 2 ถึง 3 องศา ประเภทที่เกิดจากการป้อนหน้าเข้าเครื่องสแกนเฉียงเล็กน้อย ก็ส่งผลเสียต่อ OCR: ขั้นตอนการค้นหาบรรทัดแนวนอนจะแยกบรรทัดเดียวออกเป็นสอง หรือรวมสองบรรทัดเป็นหนึ่ง การแก้ความเอียงจะวัดมุมที่โดดเด่นของบรรทัดข้อความ (โดยทั่วไปใช้การวิเคราะห์โปรไฟล์การฉายภาพหรือการวิเคราะห์ Hough) แล้วหมุนหน้าให้ได้ระดับ ต่างจากการหมุน 90 องศา การแก้ความเอียงเป็นการหมุนในมุมสุ่มขนาดเล็ก จึงต้องสุ่มตัวอย่างพิกเซลใหม่และเพิ่มความเบลอเล็กน้อย การแลกเปลี่ยนนี้คุ้มค่าเกือบเสมอ เพราะบรรทัดที่ระดับดีจะแบ่งส่วนได้สะอาดและประโยชน์ด้านความแม่นยำมีมากกว่าความนุ่มเบลอเล็กน้อยมาก แก้ไขความเอียงหลังจากแก้การวางแนวและก่อนการครอบตัด

ครอบตัดให้เหลือแค่ข้อความและตัดสัญญาณรบกวน
ทุกสิ่งที่ไม่ใช่ข้อความที่ต้องการล้วนเป็นสัญญาณรบกวนที่เครื่องมืออาจอ่านผิด: ขอบสีเข้มของแท่นสแกน ส่วนหนึ่งของหน้าที่อยู่ตรงข้าม มุมที่ติดลวดเย็บ นิ้วมือ หรือรูเจาะ การครอบตัดให้เหลือแค่บล็อกข้อความจะลบเป้าหมายที่ผิดพลาดเหล่านี้ออก ซึ่งทั้งปรับปรุงความแม่นยำและเพิ่มความเร็วในการรู้จำเพราะเครื่องมือมีพื้นที่วิเคราะห์น้อยลง สำหรับเอกสารหลายคอลัมน์ การครอบตัด (หรือการเรียกใช้ OCR ทีละคอลัมน์) ยังป้องกันไม่ให้เครื่องมืออ่านข้ามช่องว่างระหว่างคอลัมน์และสลับสองคอลัมน์เป็นบรรทัดที่ปนกัน ครอบตัดหลังจากแก้ไขความเอียงเพื่อให้เนื้อหาอยู่ในกรอบอย่างเป็นระเบียบ
คอนทราสต์ โทนสีเทา และวิธีที่ binarization ทำงานจริงๆ
OCR ทำงานบนภาพไบนารีในท้ายที่สุด: ทุกพิกเซลจะถูกตัดสินว่าเป็นหมึกหรือกระดาษ Tesseract ดำเนินการนี้ภายในโดยใช้วิธี Otsu ซึ่งเลือกค่าขีดจำกัดทั่วไปค่าเดียวจากฮิสโตแกรมของภาพ วิธีนี้ทำงานได้ดีเมื่อหน้ากระดาษมีแสงสม่ำเสมอและคอนทราสต์ดี แต่จะล้มเหลวเมื่อเงาหรือพื้นหลังสีทำให้มุมหนึ่งมืดกว่าที่ค่าขีดจำกัดคาดไว้ วิธีที่น่าเชื่อถือคือการแปลงเป็นโทนสีเทาเพื่อให้สีไม่รบกวนค่าขีดจำกัด และการทำให้แสงสม่ำเสมอเพื่อให้ทั้งหน้าอยู่ในด้านเดียว การเพิ่มคอนทราสต์ปานกลางช่วยข้อความที่จางๆ ได้ สิ่งที่มักให้ผลตรงกันข้ามคือการทำ binarization ด้วยตนเองแบบแข็ง: ถ้าคุณตั้งค่าขีดจำกัดเป็นขาวดำล้วนด้วยค่าที่ผิด คุณจะลบเส้นที่จางออกซึ่งขั้นตอนของเครื่องมือเองจะเก็บไว้ได้ ปล่อยให้เครื่องมือทำ binarization เอง และให้ภาพโทนสีเทาที่สม่ำเสมอแก่มัน Sunasty เสนอการแปลง PDF เป็นโทนสีเทา สำหรับการปรับคอนทราสต์ละเอียดโปรแกรมแก้ไขบนเดสก์ท็อปยังดีกว่า แต่แสงที่สม่ำเสมอตอนสแกนสำคัญกว่าแถบเลื่อนใดๆ
เลือกภาษาที่ถูกต้องและตรวจสอบผลลัพธ์
Tesseract โหลดไฟล์ข้อมูลที่ฝึกแล้วแยกกันสำหรับแต่ละภาษาและสคริปต์ การเรียกใช้โมเดลภาษาอังกฤษกับข้อความภาษาฝรั่งเศสหรือกรีกจะทำให้เกิดข้อผิดพลาดที่หลีกเลี่ยงได้ โดยเฉพาะกับอักขระที่มีสระประสมหรืออักขระที่ไม่ใช่ละติน ดังนั้นให้เลือกภาษาที่ตรงกับเอกสาร สุดท้าย ให้ถือว่าผลลัพธ์ OCR เป็นฉบับร่าง ไม่ใช่คำตอบสุดท้าย: เครื่องมือไม่มีทางรู้ว่าชื่อสะกดถูกต้องหรือว่า 0 ไม่ใช่ O ตรวจสอบตัวเลข คำนามเฉพาะ และทุกอย่างที่สำคัญทางกฎหมายหรือการเงิน สำหรับตารางและเลย์เอาต์หลายคอลัมน์ คาดว่าจะต้องแก้ไขโครงสร้างด้วยตนเอง เพราะ OCR จะส่งคืนกระแสข้อความที่รู้จำ ไม่ใช่เลย์เอาต์ที่สร้างขึ้นใหม่
เครื่องมือที่กล่าวถึงในบทความนี้
- OCR · รูปภาพ/PDF เป็นข้อความดึงข้อความจากรูปภาพที่สแกนหรือ PDF ทั้งหมดในเบราว์เซอร์ของคุณ, ทำงานออฟไลน์ ไม่ต้องอัปโหลด
- ปรับตรงหน้าสแกนยืดตรง PDF ที่สแกนเอียงหรือรูปภาพทั้งหมดในเบราว์เซอร์ของคุณ, ไม่ต้องอัปโหลด
- หมุนและพลิกรูปภาพหมุนรูปภาพ 90/180/270° หรือพลิกแนวนอนและแนวตั้ง โดยไม่ต้องอัปโหลด
- ครอบรูปภาพครอบรูปภาพด้วยตัวอย่างแบบโต้ตอบ, ลากและปรับขนาดพื้นที่ครอบ ไม่มีการอัปโหลด
- PDF เป็นโทนสีเทาแปลง PDF สีเป็นโทนสีเทาทั้งหมดในเบราว์เซอร์ของคุณ, ไม่ต้องอัปโหลด
- ปรับขนาดรูปภาพปรับขนาดและแปลงรูปภาพ (JPEG, PNG, WebP) โดยไม่ต้องอัปโหลด
- PDF เป็นรูปภาพแปลงแต่ละหน้า PDF เป็น PNG หรือ JPG ในเบราว์เซอร์โดยตรง
คำถามที่พบบ่อย
การขยายภาพสแกนที่เบลอช่วยปรับปรุงความแม่นยำของ OCR ได้หรือไม่?
ไม่มากนักในตัวมันเอง การขยายไม่สามารถกู้คืนรายละเอียดที่ภาพสแกนไม่เคยบันทึกได้ ดังนั้นภาพที่เบลอ 100 DPI ก็ยังเบลออยู่ การขยายปานกลางอาจช่วยให้เครื่องมือแยกอักขระที่ติดกันได้โดยให้พิกเซลเพิ่มเติมแก่การแบ่งส่วน แต่การสแกนใหม่ที่ 300 DPI มีประสิทธิผลมากกว่าการขยายใดๆ มาก
ควรแปลงภาพเป็นขาวดำล้วนก่อนหรือไม่?
โดยทั่วไปไม่จำเป็น Tesseract ทำ binarization ภายในด้วยวิธี Otsu และค่าขีดจำกัดแบบแข็งที่ผิดจะลบเส้นที่จางออกซึ่งเครื่องมือจะเก็บไว้ได้ แปลงเป็นโทนสีเทาและทำให้แสงสม่ำเสมอแทน แล้วปล่อยให้เครื่องมือเลือกค่าขีดจำกัดของตัวเอง
ข้อความของฉันอยู่ในแนวนอน OCR จะหมุนให้อัตโนมัติหรือไม่?
บางครั้ง Tesseract มีขั้นตอนการตรวจจับการวางแนว แต่ไม่น่าเชื่อถือกับแบบฟอร์ม ข้อความบาง หรือหน้าที่มีรูปภาพมาก การหมุนหน้าด้วยตนเอง 90, 180 หรือ 270 องศาไม่มีการสูญเสียและขจัดความไม่แน่นอน จึงเป็นตัวเลือกที่ปลอดภัยกว่า
สิ่งเหล่านี้จะอัปโหลดเอกสารของฉันหรือไม่?
ไม่ การหมุน การแก้ความเอียง การครอบตัด การแปลงเป็นโทนสีเทา และ OCR เองล้วนทำงานในเบราว์เซอร์ของคุณ OCR ใช้บิลด์ WebAssembly ของ Tesseract และข้อมูลภาษาที่ฝึกไว้จะถูกดาวน์โหลดครั้งเดียวและเก็บไว้ในแคช ไฟล์ของคุณจะไม่ออกจากอุปกรณ์