Khối Tesseract Là Gì ? Nhận Diện Văn Bản Bằng Tesseract Tesseract Ocr Engine

Related Articles

1. Giới thiệu về TESSERACT OCR

OCR – Optical Character Recognition tạm dịch là nhận dạng kí tự quang học, nôm na hiểu thì đây là kỹ thuật giúp nhận dạng những ký tự trên một bức ảnh, về định nghĩa đơn cử hơn thì những bạn hoàn toàn có thể xem trên wiki : https://en.wikipedia.org/wiki/Optical_character_recognitionTESSERACT OCR là một thư viện open source nhận dạng chữ viết được tăng trưởng bởi google, nó tương hỗ rất nhiều nển tảng Mac, Windows, iOS, Android … Bài viết dưới đây sẽ hướng dẫn mọi người cách intergrade tesseract vào trong android studio project. Hiện tại thì trong android sdk đã phân phối api nhận dạng chữ viết, tuy nhiên số lượng ngôn từ được tương hỗ không nhiều, đa phần là những ngôn từ có nguồn gốc latinh, ví dụ như Anh, Pháp, Ý … Vậy so với những ngôn từ như tiếng Việt, tiếng Nhật, tiếng Trung thì sao. Câu vấn đáp là TESSERACT OCR sẽ giúp tất cả chúng ta triển khai điều đó. tesseract-android-tools là repo chính thức của thử viện này, tuy nhiên để sử dụng được nó, thì tất cả chúng ta phải tự build lại thư viện qua hàng loạt command, nói chung là phức tạp. Thay vào đó ta hoàn toàn có thể sử dụng một repo khác rmtheis / tess-two, repo này fork từ tesseract-android-tools, tuy nhiên tác giả đã thêm 1 số ít tiện ích vào đó, và việc intergrade vào android studio project cũng trọn vẹn đơn thuần .Đang xem : Tesseract ocr là gìVậy giờ tất cả chúng ta sẽ thao tác với rmtheis / tess-two .

Step 1. Tạo android project, ví dụ là tesseractdemoStep 2: thêm dependency của vào file build.gradle trong thư mục appVào rmtheis/tess-two, copy đoạn mã sau compile “com.rmtheis:tess-two:6.3.0” lúc này file build.gradle sẽ trong giống như sau:

*

Vào Build-> Make Project, nếu không có lỗi thì việc intergrade thư viện vào project đã thành công.Step 3: Download trainned data – có thể hiểu là tập dữ liệu này đã được “học”, mỗi ngôn ngữ có một dữ liệu file học riêng.Vào rmtheis/tess-two, tìm đến chỗ trained data file, đây là nơi chứa tất cả các tập dữ liệu đã được học tương ứng với các ngôn ngữ. Ví dụ giờ bạn muốn nhận dạng cho tiếng việt,download file vie.traineddata .Step 4: Sử dụng api, tạo một file OcrManager.java

dataPath : *. traineddata hoàn toàn có thể được lưu ở internal hoặc external storage, tuy nhiên *. traineddata phải nằm trong trong một thư mục được đặt tên là tessdata, giá trị của dataPath sẽ phải đường dẫn đến thư mục cha của thư mục tessdata. Giả sử đường dẫn tuyệt đối đến file *. traineddata là x / y / z / t / tessdata /. traineddata, khi đó giá trị của đối số dataPath sẽ là x / y / z / t /. Trong đoạn code trên file vie.traineddata được lưu ởgetExternalFilesDir ( null ) + ” / tessdata / ” + ” vie.traineddata ” ; khi đó, giá trị cần truyền vào cho hàm init ( ) là getExternalFilesDir ( null ). languageCode : tên của file *. traineddata, ví dụ vie.traineddata thì languageCode sẽ là vie, jpn.traineddata thì languageCode sẽ là jpn. Vậy là đã làm rõ đối số phải truyền vào cho hàm init ( ) là gì, trong onCreate của MainActivity thêm đoạn code sau :OcrManager manager = new OcrManager ( ) ; manager. initAPI ( ) ; Build lên thiết bị thật, nếu việc khở tạo thành công xuất sắc thì sẽ có đoạn log dướiI / Tesseract ( native ) : Initialized Tesseract API with language = vieTiếp theo để nhận dạng chữ viết, ta chú ý đến hàm public String startRecognize ( Bitmap bitmap ), trong hàm này ta sẽ gọi setImage ( bitmap ) cho ảnh nào muốn nhận dạng, getUTF8Text ( ) ; sẽ trả về tác dụng là những kí tự được nhận dạng, Toàn bộ quy trình trên được demo trong video phái dưới :

More on this topic

Comments

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Advertismentspot_img

Popular stories