วันพุธ, ธันวาคม 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

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




















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




วันจันทร์, พฤศจิกายน 19, 2561

ตรวจจับวัตถุด้วย Python + Tensorflow ด้วย Web camera ตอนที่ 1

                                 บทความนี้ได้แรงบันดาลใจจากคลิปนี้

                เห็นว่าน่าสนใจเอามาประยุกต์ใช้กับงานของตัวเองได้ ก่อนจะลงรายละเอียด ก่อนอื่นมารู้จักพระเอกของงานนี้ที่ขาดไม่ได้คือ Tensoflow เป็น Engine สำหรับประมวลผล Deep Learning การเลือกใช้มีทั้งแบบติดตั้งบน Server และบน Device ซึ่งหากต้องการติดตั้งบน Device ก็ให้เลือกใช้ TensorFlow Lite (แน่อนความแม่นยำก็จะลดลง) และใช้งานได้เกือบทุก platform และสนับสนุนหลายภาษาที่จะใช้ในการพัฒนาเช่น Python , C++  หรือ java และ Opensource ตั้งแต่ปี 2015

  มาเริ่มกันเลยจากตัวอย่างผมทำการติดตั้งบน PC (Windows10 Pro) ให้ทำการติดตั้งตามลำดับดังนี้
1.  ติดตั้ง Python  ตามบทความนี้ผมใช้ Python Version 3.5.1 64bit download จากที่นี่ครับ

ทำการติดตั้งโดยเลือก Install Now หรือหากต้องการกำหนด Path ที่จะติดตั้งเองก็เลือก Customize Installation
    


* อย่าลืมติิ๊กที่ช่อง Add Python 3.5 to PATH เพื่อให้ตัวติดตั้งทำการ add path ลงใน System variables ให้ด้วย



2. ติดตั้ง Tenforflow โดยติดตั้งจาก Command line โดยใช้คำสั่ง

* อัพเดท pip installer ให้เป็น Version ล่าสุดด้วย (ปัจจุบัน 19/11/2018 คือ 7.1.2)  เพราะจำเป็นสำหรับการติดตั้งโมดูอื่นๆ  โดยใช้คำสั่ง

python -m pip install --upgrade pip

3. ติดตั้งโมดูลอื่นๆตามลำดับ

pip install tensorflow

Numpy 1.13.1 (and later versions) Install or install via pip
pip install numpy

SciPy 0.19.1 (and later versions) Install or install via pip
pip install scipy

OpenCV Install or install via pip
pip install opencv-python

Pillow Install or install via pip
pip install pillow

Matplotlib Install or install via pip
pip install matplotlib

h5py Install or install via pip
pip install h5py

Keras 2.x Install or install via pip
pip install keras

pip3 install https://github.com/OlafenwaMoses/ImageAI/releases/download/2.0.2/imageai-2.0.2-py3-none-any.whl


4. upgrade tensorflow โดยใช้คำสั่ง  (บทความนี้ทดสอบด้วย version 1.4)  (ปัจจุบัน 19/11/2018 latest version คือ 1.12 ตรวจสอบได้ ที่นี่

pip install tensorflow==1.4.0


5. บทความนี้จะทดสอบ Object Detection โดยใช้ Source เป็น webcam ซึ่งเป็นตัวอย่างที่มีโมเดลที่ทำการ train มาแล้ว Download จาก ที่นี่ หลังจาก unzip แล้ว ใช้คำสั่ง

python object_detection_webcam.py

มาดูตัวอย่างกัน




จากตัวอย่างเราสามารถนำมาต่อยอดประยุกต์ใช้งานด้านต่างๆด้วยภาษา Python ต่อไป


หมายเหตุ 


check version ของ python โดยใช้คำสั่ง 

python --version





check version ของ tensorflow โดยใช้คำสั่ง

pip list | grep tensorflow





ผมกำลังเขียนตอนที่ 2 เรื่อง Training Model ซึ่งเป็นหัวใจสำคัญของการทำ Object Recognition ของเราแม่นยำยิ่งขึ้น

ขอบคุณครับ