PHP-ติดตั้งและใช้งาน Tesseract-OCR

PHP ติดตั้งและใช้งาน Tesseract OCR แปลงรูปภาพเป็นข้อความภาษาไทย

Tesseract คือ Engine ที่ใช้สำหรับกระบวนการแปลงสื่อสิ่งพิมพ์ เช่นกระดาษ นิตยาสาร สัญญา หรือข้อมูลอะไรก็ตามที่อยู่ในรูปของเอกสารกระดาษ ให้กลายเป็นเป็นข้อความ เรียกกระบวนการนี้ว่า Optical Character Recognition หรือเรียกสั้น ๆ ว่า OCR

Tesseract Engine สามารถแปลงข้อมูลในรูปภาพไปเป็นตัวอักษรภาษาต่าง ๆ ทั่วโลก เดิมที่ถูกพัฒนาโดย Hewlett-Packard ( HP ) และเปิดเป็นโอเพ่นซอร์สในปี 2005 จากนั้นในปี 2006 ทีมพัฒนาของ Google ได้นำมาพัฒนาต่อยอดให้มีความสามารถมากขึ้น สามารถเข้าดูได้ที่ https://opensource.google/projects/tesseract

ในบทความนี้จะมาแนะนำการติดตั้งและใช้งาน Tesseract OCR ในภาษา PHP บนระบบปฏิบัติการ Mac OS นะครับ สำหรับการทดสอบ เบื้องต้นให้เตรียม Environment ตามด้านล่างนะครับ

  • ติดตั้ง homebrew package manager
  • ติดตั้ง PHP 7.2 หรือเวอร์ชั่นที่สูงกว่า

ติดตั้ง Tesseract OCR

เมื่อติดตั้งสำเร็จเราจะได้โครงสร้างโปรเจคตามรูปด้านล่าง ลบ compser.lock ทิ้งไป

  • ติดตั้ง Tesseract OCR ใช้ homebrew โดยเปิด Terminal ขึ้นมาและพิมพ์คำสั่งดังนี้

หลังจากติดตั้ง tesseract เรียบร้อยแล้ว ถ้าเราอยากรู้คำสั่งต่างของ tesseract ให้พิมพ์ tesseract ที่ Terminal

tesseract –version คำสั่งสำหรับดูว่าเราติดตั้งเวอร์ชั่นอะไรไว้ในเครื่อง

tesseract –list-langs คำสั่งสำหรับตรวจสอบภาษาที่ tesseract สามารถ recognize ได้

  • ทดสอบการทำงาน โดยให้สร้างไฟล์ index.php ไว้ในโฟลเด้อ ocr จากนั้น ลองหาภาพที่มีข้อความภาษาอังกฤษวางในโฟลเด้อ images ตั้งชื่อไฟล์ว่า eng.png ดูตัวอย่างตามภาพ

และรูปภาพที่มีข้อความภาษาอังกฤษอยู่ในภาพ ใช้สำหรับทดสอบ

คำสั่งใน index.php

ในส่วนของ executable หากเราไม่ทราบว่า tesseract ถูกติดตั้งไว้ที่ path ไหน ให้ใช้คำสั่ง brew list tesseract เพื่อดู path ที่เราติดตั้ง tesseract ได้ ผลลัพธ์คำสั่งตามด้านล่าง

ผลลัพธ์ที่ได้เมื่อเรารันคำสั่งใน index.php ผ่าน localhost:8080/ocr ตามรูปด้านล่างครับ สำหรับภาพที่ไม่ได้มีความซับซ้อนมาก เช่น ไม่มีพื้นหลัง ไม่มีเส้นตัดทับตัวอักษร ผลลัพธ์แม่นยำ 100% เลยครับ

ติดตั้ง tesseract ภาษาไทย

ติดตั้ง tesseract ภาษาไทย เบื้องต้นหลังจากเราติดตั้ง tesseract เรียบร้อยแล้ว จะมีภาษาที่สามารถ recognize ได้แค่ 3 ภาษานะครับ ในกรณีที่เราต้องการแปลงข้อมูลในภาพที่เป็นภาษาไทยให้เราติดตั้งภาษาใน tesseract เพิ่ม โดยใช้คำสั่ง

ปรับ code ที่ไฟล์ index.php นิดหน่อยครับ โดยเพิ่มภาษาไทยเข้าไป

ผลลัพธ์ที่ได้ สำหรับการแปลงเป็นภาษาไทย

Tesseract OCR กับ รูปภาพที่ซับซ้อน

ลองทดสอบ Tesseract OCR กับระบบภาพ Captcha หลาย ๆ แบบ ตั้งแต่ง่าย ๆ จนถึงยากมาก ( แบบที่คนเองยังอ่านลำบาก )

รูปแบบตัวเลขล้วน อ่านได้ปกติ

แบบข้อความผสมตัวเลข ยังอ่านได้อยู่

แบบเบลอ ๆ เอียง ๆ ยังพออ่านได้

แบบยากมาก มีเส้นสีเดียวกันทับตัวอักษร อ่านไม่ได้แล้ว

ขอบคุณข้อมูลจากหลาย ๆ ที่สำหรับการทดสอบ

  • https://stackoverflow.com/questions/38091060/how-to-setup-and-running-tesseract-ocr-for-php-opensource
  • https://github.com/thiagoalessio/tesseract-ocr-for-php
  • https://github.com/tesseract-ocr/tesseract/wiki
  • https://fonts.google.com

กระทู้ใกล้เคียง

วิธีทำ Apple Login เข้าสู่ระบบด้วย Apple ID ( PHP ... Apple Login คือการเข้าสู่ระบบหรือสมัครสมาชิกแบบ SSO ( Single Sign On ) ความหมายคือการใช้ข้อมูลเดียวกันกับแพลตฟอร์มใด แพลตฟอร์มหนึ่งในการลงทะเบียน...
ตัวอย่าง ใบเสร็จรับเงิน พร้อมวิธีทำอย่างละเอียด... ใบเสร็จรับเงิน หรือ Receipt คือ เอกสารที่ผู้รับเงิน ( ผู้ขายหรือผู้ให้บริการ ) จะต้องออกให้กับผู้ชำระเงิน ( ลูกค้าหรือผู้ซื้อสินค้า ) เพื่อเป็นห...
เว็บไซต์ทำ Resume ออนไลน์ สำหรับสมัครงาน พร้อมตัวอ... Resume อ่านว่า เรซูเม่ คือ เอกสารสรุปข้อมูลส่วนตัว เช่น ประวัติการทำงาน ความสามารถ รางวัลที่เคยได้รับ ข้อมูลอื่น ๆ ช่องทางในการติดต่อผู้สมัครงาน ...
วิธีทำ LINE Login เข้าสู่ระบบด้วย Line (PHP) บนเว็... LINE Login API คือการเข้าสู่ระบบหรือสมัครสมาชิกแบบ SSO ( Single Sign On ) ความหมายคือการใช้ข้อมูลเดียวกันกับแพลตฟอร์มใด แพลตฟอร์มหนึ่งในการลงทะเบ...

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.