วันเสาร์ที่ 20 กรกฎาคม พ.ศ. 2556

สร้างไลบรารี่ Tesseract OCR เพื่อใช้งานบนระบบปฎิบัติการ Android : Library OCR on Android with Tesseract

ก่อนอื่นเราจะมาทำความรู้จักกับคำว่า OCR กันก่อน

        OCR หรือ optical character recognition คือการรู้จำอักขระด้วยแสง หรือก็คือการแปลงไฟล์ภาพเอกสาร ให้เป็นไฟล์ข้อความโดยอัตโนมัติ
        ทีนี้เมื่อเราจะนำ OCR มาใช้กับการเขียน Application บนระบบปฎิบัติการ Android เนี่ย ( ซึ่งในที่นี้เราเลือกใช้ OCR ที่ชื่อ Tesseract )   เราจะเรียกใช้ด้วย Library  ของมัน  แต่ก่อนอื่นต้องมีการ Build Library ก่อนนะคะ  มีขั้นตอนดังนี้

* อย่าลืมติดตั้ง Android NDK แล้วก็ Apace Ant ด้วย

1. โหลด source หรือ clone จากลิงค์นี้ https://github.com/rmtheis/tess-two โปรเจคนี้จะมี tools สำหรับคอมไพล์  Tesseract, Leptonica และ JPEG libraries สำหรับใช้งานบน Android. และเป็น Eclipse Android library

2. Build project นี้โดยใช้ commands (ของ Linux จะสะดวกกว่า  แนะนำให้ใช้ Terminal ของ Ubuntu ในการ Build ) พิมพ์คำสั่งดังนี้

- เข้าไปที่ project-directory ของ project tess-two ด้วยคำสั่ง

cd <project-directory>/tess-two

- ก่อนจะใช้คำสั่ง ndk-build อย่าลืม set path   Android  NDK (วิธี set path บน Ubuntu)

ndk-build

android update project --path .

- ก่อนจะใช้คำสั่ง ant release อย่าลืม set path   Apace Ant (วิธีการคล้ายๆ กับการ  set path   Android  NDK )

ant release

เป็นอันเสร็จขั้นตอนการ  Build project library


ต่อไปจะเป็นการนำ project นี้ไปทำเป็น library

ในที่นี้เราจะใช้ร่วมกับ Eclipse นะคะ

1. เปิด Eclipse ขึ้นมา



2. import project tess-two 

       - File > Import


       - เลือก Existing Projects into Workspace


       - คลิก Browser  แล้วเลือก Folder ที่จะ import คลิก OK > finish

2. ทำให้ Project ที่ import เข้ามาเป็น Library
   
        - คลิกขวาที่ Project   tess-two > properties

      - Android > ติ๊กถูกที่ Is Library > OK


เป็นอันจบขั้นตอนการนำ Tesseract มาทำเป็น Library สำหรับใช้ในการเขียน Application  ของ Android ค่ะ 









13 ความคิดเห็น:

  1. android update project --path แล้วขึ้น
    bash: android: command not found
    คับ แก้ไงอ่ะ

    ตอบลบ
    คำตอบ
    1. ต้อง set path ทุกครั้งก่อนค่ะ วิธีทำก็คล้ายๆ กันกับ NDK ค่ะ ลองดู

      ลบ
    2. ถ้าไม่ได้ set path ให้เรียกโดย C:\android-ndk-r9b\ndk-build
      ผมแตกไฟล์ NDK ไว้ในไดร์ C

      ลบ
    3. android update project --path ก็เหมือนกันครับ
      E:\adt-bundle-windows-x86_64-20131030\sdk\tools\android update project --path

      ลบ
    4. ลองทำใน Ubuntu ดูค่ะ อันนี้ทำใน Ubuntu เคยลองทำใน Windows แล้วค่อนข้างจะมีปัญหาเรื่องพวกคำสั่ง command อ่ะค่ะ แต่ถ้าจะทำใน Windows จะใช้โปรแกรมจำลอง Terminal ของ Ubuntu ในการพิมพ์คำสั่งค่ะ

      ลบ
  2. ความคิดเห็นนี้ถูกผู้เขียนลบ

    ตอบลบ
  3. สวัสดีครับ
    ผมกำลังทำโปรเจ็คกับTesseractแต่ว่าผมก็ทำการtrainให้มันรู้จักภาษาไทยไม่เป็นครับ
    มีอะไรช่วยแนะนำผมด้วยครับ
    ขอบคุณครับ

    ตอบลบ
    คำตอบ
    1. Train ตามขั้นตอนนี้เลยค่ะ https://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3 แนะนำว่าทำบน Linux จะมีปัญหาน้อยกว่า Windows ค่ะ

      ลบ
  4. คำสั่งข้อที่ 2 ใช้ windows ทำได้มั้ยครับ

    ตอบลบ
  5. คือตอนนี้ ผมจะทำโปรเจ็คจบ เกี่ยวกับการทำ แอพ ocr อ่ะ ครับ ผมขอติดต่อโดยตรงได้มั้ย พอจะมีเวลาช่วยสอนได้รึป่าวครับ
    w.sethanoo-oat@hotmail.com อีเมลล์ นะครับ
    ขอบคุณล่วงหน้านะครับ

    ตอบลบ
    คำตอบ
    1. ติดตรงไหนก็ถามมาได้ค่ะ จะพยายามตอบ อันนี้ก็ทำเป็นโปรเจ็คจบเหมือนกัน แต่มันก็นานแล้วมีเลือนๆบ้างเหมือนกัน 555

      ลบ
    2. ไม่ระบุชื่อ4 เมษายน 2561 เวลา 13:16

      ไดคำตอบไหมครับ

      ลบ
  6. android update project --path
    แล้วขึ้น 'android' is not recognized as an internal or external command, operable program of batch file

    แก้ยังไงหรอครับ

    ในการทำ android update project --path
    ต้องทำใน directory ไหนหรอครับ

    ตอบลบ