วันพุธ, ธันวาคม 26, 2561

แปลงรูปเป็นข้อความ Optical character recognition (OCR) ด้วย Tesseract

ปัจจุบันการแปลงภาพเป็นข้อความมีการประยุกต์ใช้งานในหลากหลายงาน Library ที่น่าสนใจ (และมีภาษาไทยด้วย) ตัวนึงคือ Tesseract สามารถเรียกใช้งานทาง command line ก็ได้ หรือจะเขียนโปรแกรมเชื่อมกับ API มันก็ได้ เป็น open source และมีภาษาไทย ด้วยอะไรจะดีขนาดนั้น ลองมาดูกันดีกว่าว่า ติดตั้ง ใช้งาน ยังไง

1. มาติดตั้งกันเลย เลือก OS ที่เราใช้งานอยู่จากที่นี่

https://github.com/tesseract-ocr/tesseract/wiki

หรือ windows 64 bit จากที่นี่
https://github.com/UB-Mannheim/tesseract/wiki



2. จาก file ติดตั้งเราจะได้ไฟล์  Training ภาษาอังกฤษมาด้วยในการติดตั้งเลย

หลังจากติดตั้งแล้วก็ลองทดสอบกันเลย (ผ่าน Command line)
โดยใช้คำสั่ง

tesseract .\original\eng\test1.jpg  .\original\eng\out1

* ได้ทั้งไฟล์ Jpeg และ PNG

จากคำสั่งนี้เป็นการทำ OCR จากไฟล์รูปใน folder  \original\eng\test1.jpg
ให้ทำการแปลงเป็น text แล้วไปวางที่  .\original\eng\out1.txt

มาดูผลการรันกันดีกว่า










ภาพต้นฉบับซ้ายมือมีความชัดเจนดีมาก text ที่ได้จากการแปลงมีความถูกต้องแม่นยำเกือบ 100% ยกเว้นขนาดตัวอักษรที่ไม่เท่ากัน

แล้วถ้าภาษาไทยล่ะ ?

หากต้องการเพิ่มภาษาก็ไป download ไฟล์ Training ภาษาที่ต้องการเพิ่มได้จาก

https://github.com/tesseract-ocr/tesseract/wiki/Data-Files















Download แล้วมาวางไว้ใน Folder เดียวกับ Execute file (ตามตัวอย่างเครื่องผมคือ C:\eddy\Tesseract-OCR) เพื่อให้ Tesseract ของเรารู้จักภาษาไทย

การเรียกใช้งานก็จะต้องเพิ่ม parameter -l  ตามด้วยภาษาที่ต้องการเช่น
tesseract .\original\bi_lang\test1.jpg  .\original\bi_lang\out1 -l tha

หรือหากภาพของเรามีมากกว่า 1 ภาษาก็ให้ + เพิ่มเข้าไปเช่น
tesseract .\original\bi_lang\test1.jpg  .\original\bi_lang\out1 -l tha+eng

มาดูผลการรันกันดีกว่า




















ดูคลิปวิธีการใช้งานกันดีกว่า