สวัสดีครับ ไม่ได้เขียนบล็อกค่อนข้างนานพอดีไม่ค่อยมีโอกาสเขียนเลยครับ วันนี้ผมมีโอกาศได้เขียนทั้งที ผมเลยจะมาบอกเล่าวิธีการทำ OCR ด้วย python ครับ

Tl;DR สรุปย่อเผื่อขี้เกียจอ่าน

  • OCR : Optical Character Recognition คือซอฟแวร์ที่แปลงภาพเป็นตัวอักษรดิจิตอล
  • Tesseract OCR เป็น API ของกูเกิ้ลใช้สำหรับการทำ OCR
  • ใช้งานง่ายมากเพียงใช้คำสั่ง tesseract ชื่อภาพ ชื่อไฟล์ชั่วคราว -l ภาษา
  • ใช้ใน Python โดยการอิมพอร์ต module os มาเพื่อใช้ cmd

อะไรคือ OCR ?

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

ซึ่งเป็นอะไรที่ยุ่งยากและเปลืองเวลามากๆ เลยมีคนคิดว่าถ้าเราเปลี่ยนเอกสารไปเป็นไฟล์เลยจะดีกว่ามั้ย ทำให้เริ่มมีคนลงทุนวิจัยพวกโปรแกรม OCR ขึ้นมาครับ

แล้วเราจะเอาที่ไหนมาใช้?

จากหัวข้อข้างบนมันฟังดูยุ่งยากมาก แล้วสรุปถ้าเราจะใช้นี่เราต้องทำไงกัน? คำตอบง่ายๆครับ คือมีบริษัทดังเจ้านึงปล่อยโปรแกรมมาให้เราใช้ฟรีแถม open source บริษัทนั้นคือ google ครับ google ปล่อยโปรแกรมในการทำ ocr ตัวนึงชื่อว่า tesseract ocr ซึ่งสามารถไปโหลดมา build เองได้ หรือถ้าจะสะดวกหน่อยก็โหลดมาติดตั้งเองเลยก็ได้ที่นี่ครับ https://github.com/tesseract-ocr/tesseract/wiki/Downloads

Tesseract OCR โดยกูเกิ้ล

ใช้งานยังไงเอ่ย?

หลังจากติดตั้งเสร็จแล้ว(ผู้ใช้ windows ต้องเพิ่ม environment path ด้วยนะครับ) วิธีการใช้งานก็ง่ายมากๆ (ใช้ผ่าน command line) เพียงแค่พิมพ์คำสั่ง

tesseract ชื่อภาพ ชื่อไฟล์ชั่วคราว -l ภาษา

ตัวอย่าง

ภาพตอนใช้

จากภาพ ผมพิมพ์คำสั่ง “tesseract .\ExpresswaySign8.jpg read -l tha” เพื่อให้โปรแกรมทำงานครับ หลังจากทำงานเสร็จโปรแกรมจะสร้างไฟล์ขึ้นมาตัวนึงตามที่เราตั้งชื่อไว้ (ผมตั้งไว้ว่า read) ซึ่งจะเก็บข้อความที่โปรแกรมอ่านได้ไว้

ภาพที่โปรแกรมอ่านได้

จากภาพจะเห็นว่าโปรแกรมอ่านได้เป็นคำว่า

รถตรงไป
ไหค๐บ6ห ไค^ธิศ0
ตั๋

ซึ่งภาษาต่างดาวที่เกิดขึ้นน่าจะเป็นเพราะโปรแกรมอ่านภาษาอังกฤษแล้วแปลมาเป็นภาษาไทยครับ (เพราะเราตั้งค่าให้มันอ่านเป็นภาษาไทย) ถ้าไม่อยากให้มั่วเราก็อาจจะเพิ่มคำสั่งเช็คว่าคำแต่ละคำมีในภาษานั้นๆมั้ยดู แต่ว่าเพื่อไม่ให้บล็อกยาวไปผมเลยจะไม่พูดถึงครับ

อ่าว แล้วใช้ใน Python ยังไง?

สำหรับหัวข้อนี้ ผมว่ามันไม่ได้ใช้ได้แค่กับภาษา python เท่านั้นนะครับ มันใช้ได้ในภาษาอื่นๆด้วย แต่อาจจะไม่ได้พูดถึงนะครับ

วิธีใช้ใน python ก็ง่ายมากๆครับ แค่ import module os มา แล้วใช้ cmd ในโปรแกรมครับ

ภาพการใช้งาน

จะเห็นว่ามันใช้งานได้ดีพอสมควรเลยครับ


สำหรับวันนี้บล็อกนี้ผมขอจบลงเพียงเท่านี้ครับ ถ้าใครชอบโปรดอย่าลืมกดปุ่ม clap หรือ follow ให้หน่อยนะครับ

สำหรับวันนี้ขอลาไปก่อนครับ