สวัสดีครับ ไม่ได้เขียนบล็อกค่อนข้างนานพอดีไม่ค่อยมีโอกาสเขียนเลยครับ วันนี้ผมมีโอกาศได้เขียนทั้งที ผมเลยจะมาบอกเล่าวิธีการทำ 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
ใช้งานยังไงเอ่ย?
หลังจากติดตั้งเสร็จแล้ว(ผู้ใช้ windows ต้องเพิ่ม environment path ด้วยนะครับ) วิธีการใช้งานก็ง่ายมากๆ (ใช้ผ่าน command line) เพียงแค่พิมพ์คำสั่ง
tesseract ชื่อภาพ ชื่อไฟล์ชั่วคราว -l ภาษา
ตัวอย่าง
![](https://nonthakon-blog.fly.dev/content/images/max/800/1-p6n0n4dguxdsns9lwsm0bg.png)
จากภาพ ผมพิมพ์คำสั่ง “tesseract .\ExpresswaySign8.jpg read -l tha” เพื่อให้โปรแกรมทำงานครับ หลังจากทำงานเสร็จโปรแกรมจะสร้างไฟล์ขึ้นมาตัวนึงตามที่เราตั้งชื่อไว้ (ผมตั้งไว้ว่า read) ซึ่งจะเก็บข้อความที่โปรแกรมอ่านได้ไว้
![](https://nonthakon-blog.fly.dev/content/images/max/800/1-saq4djilq9uchbg9nq_5qa.png)
จากภาพจะเห็นว่าโปรแกรมอ่านได้เป็นคำว่า
รถตรงไป
ไหค๐บ6ห ไค^ธิศ0
ตั๋
ซึ่งภาษาต่างดาวที่เกิดขึ้นน่าจะเป็นเพราะโปรแกรมอ่านภาษาอังกฤษแล้วแปลมาเป็นภาษาไทยครับ (เพราะเราตั้งค่าให้มันอ่านเป็นภาษาไทย) ถ้าไม่อยากให้มั่วเราก็อาจจะเพิ่มคำสั่งเช็คว่าคำแต่ละคำมีในภาษานั้นๆมั้ยดู แต่ว่าเพื่อไม่ให้บล็อกยาวไปผมเลยจะไม่พูดถึงครับ
อ่าว แล้วใช้ใน Python ยังไง?
สำหรับหัวข้อนี้ ผมว่ามันไม่ได้ใช้ได้แค่กับภาษา python เท่านั้นนะครับ มันใช้ได้ในภาษาอื่นๆด้วย แต่อาจจะไม่ได้พูดถึงนะครับ
วิธีใช้ใน python ก็ง่ายมากๆครับ แค่ import module os มา แล้วใช้ cmd ในโปรแกรมครับ
![](https://cdn-images-1.medium.com/max/800/1*5GhfNRwPk_YGaQ9-YFiV1g.png)
จะเห็นว่ามันใช้งานได้ดีพอสมควรเลยครับ
สำหรับวันนี้บล็อกนี้ผมขอจบลงเพียงเท่านี้ครับ ถ้าใครชอบโปรดอย่าลืมกดปุ่ม clap หรือ follow ให้หน่อยนะครับ
สำหรับวันนี้ขอลาไปก่อนครับ