1. Trang chủ
  2. » Công Nghệ Thông Tin

Nhận dạng tiếng Việt trên hệ điều hành android

13 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 13
Dung lượng 763,35 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài báo Nhận dạng tiếng Việt trên hệ điều hành android giới thiệu một phương pháp nhận dạng tiếng Việt từ ảnh chụp trên điện thoại di động sử dụng hệ điều hành Android. Phương pháp này sử dụng thư viện Tesseract của Google, xây dựng bộ dữ liệu hoàn chỉnh hơn so với gói dữ liệu sẵn có của Tesseract, cùng với thuật toán xử lí lỗi trên đoạn văn bản sau khi nhận dạng. Kết quả nhận dạng cho kết quả tương đối cao với độ chính xác 93%.

Trang 1

NHẬN DẠNG TIẾNG VIỆT TRÊN HỆ ĐIỀU HÀNH ANDROID

Phạm Thúy Nga, Lớp K60B, Khoa Công nghệ Thông tin

GVHD: ThS Nguyễn Minh Quang

Tóm tắt: Công nghệ nhận dạng kí tự quang học (Optical Character Recognition - OCR) là một công

nghệ được ứng dụng rộng rãi trong các phần mềm desktop và mobile, nhằm trích xuất văn bản từ ảnh scan hoặc ảnh chụp qua camera Tại Việt Nam, đã có nhiều hướng nghiên cứu ứng dụng OCR trong các bài toán nhận dạng chữ in tiếng Việt từ file ảnh có sẵn trên máy tính, file PDF hoặc ảnh scan Tuy nhiên hiện nay hầu như chưa có nghiên cứu nào tập trung vào việc nhận dạng tiếng Việt trên nền tảng

di động Trong bài báo này chúng tôi giới thiệu một phương pháp nhận dạng tiếng Việt từ ảnh chụp trên điện thoại di động sử dụng hệ điều hành Android Phương pháp này sử dụng thư viện Tesseract của Google, xây dựng bộ dữ liệu hoàn chỉnh hơn so với gói dữ liệu sẵn có của Tesseract, cùng với thuật toán xử lí lỗi trên đoạn văn bản sau khi nhận dạng Kết quả nhận dạng cho kết quả tương đối cao với độ chính xác 93%

Từ khóa: Nhận dạng kí tự quang học, nhận dạng tiếng Việt, OCR, Tesseract.

I MỞ ĐẦU

Nhận dạng kí tự quang học là một công nghệ hữu ích để chuyển các ảnh chụp văn bản, ảnh quét, tập tin PDF sang dạng số, phục vụ cho việc số hóa tài liệu, lưu trữ, xử lí văn bản, tìm kiếm… và nhiều ứng dụng khác [2] Trước đây, OCR được phát triển dành riêng cho máy in, máy quét để nhận dạng văn bản, phổ biến nhất là tự động chuyển văn bản scan thành tài liệu lưu trên máy tính Cùng với sự phát triển của các thiết bị cầm tay, nhiều nghiên cứu bắt đầu hướng đến việc áp dụng OCR trên hệ điều hành di động, do lợi thế to lớn của những thiết bị di động, như sự nhỏ gọn, tiện lợi, có thể mang đi mọi lúc mọi nơi và được trang bị nhiều chức năng không kém các máy tính thông thường Đối với tiếng Việt, việc nghiên cứu OCR trên di động có thể mang lại nhiều lợi ích to lớn cả về nghiên cứu lẫn ứng dụng Nhận dạng tiếng Việt thành công có thể phục vụ cho việc số hóa thủ tục hành chính, ví dụ lưu trữ thông tin thông qua ảnh chụp chứng minh thư, biển số xe…, phục vụ công tác quốc phòng – an ninh; về mặt dân sự, nghiên cứu này hỗ trợ cho việc xây dựng những ứng dụng dịch thuật, đọc văn bản cho người khiếm thị, tìm kiếm thông tin… từ những văn bản linh động hơn nhiều so với văn bản quét, như business card, tựa đề sách báo, biển quảng cáo, hóa đơn, v.v…

Hiện nay, trên thế giới đã có nhiều nghiên cứu cũng như ứng dụng OCR để nhận dạng chữ in ở nhiều ngôn ngữ khác nhau trên hệ điều hành di động Nhìn chung, vấn đề nhận dạng kí tự Latinh gần như đã được giải quyết [1], [2] Hướng nghiên cứu trong những năm gần đây tập trung vào nhận dạng các ngôn ngữ có kí tự tựa Latinh nhưng thêm dấu hoặc kí tự đặc biệt, như tiếng Pháp, tiếng Nga… và ngôn ngữ tượng hình Một nghiên cứu của Hasnat tại Bangladesh đã cho ra đời ứng dụng hoàn chỉnh dựa trên mã nguồn mở Tesseract để nhận dạng tiếng Bangla, một ngôn ngữ có nguồn gốc tiếng Phạn, thuộc nhóm tượng hình [3] Mới đây nhất, Google đã cho ra đời ứng dụng Google Goggles [4] trên cả Android và iOS, một ứng dụng mạnh mẽ cho phép người sử dụng tìm kiếm trên web bằng

Trang 2

ảnh chụp trên điện thoại di động, bằng nhiều ngôn ngữ khác nhau chủ yếu có nguồn gốc tiếng Latinh \par

Tại Việt Nam, nhiều dự án nhận dạng tiếng Việt in đã được áp dụng vào thực tế, như phần mềm VnDOCR 4.0, có thể nhận dạng trực tiếp tài liệu, sách báo được quét qua máy quét, không cần thông qua tập tin ảnh trung gian với tỉ lệ nhận dạng tới 99% [5], dự án VietOCR, là một phần mềm trên máy tính có phiên bản trên Java và NET, được phát triển dựa trên thư viện mã nguồn mở Tesseract [6] Tuy nhiên hiện nay hầu như chưa có bất cứ nghiên cứu nào về nhận dạng tiếng Việt từ ảnh trên hệ điều hành di động Một số ứng dụng trên Android như VietScanner cho kết quả không cao, chỉ hỗ trợ ảnh quét, ngay cả ứng dụng Goggles cũng chỉ nhận dạng được tiếng Việt không dấu, mặc dù đây là một hướng nghiên cứu mới mẻ và nhiều tiềm năng

Bài báo này tập trung nghiên cứu nhận dạng tiếng Việt in từ ảnh trên điện thoại di động sử dụng hệ điều hành Android, một nền tảng mã nguồn mở đang thống lĩnh thị trường di động hiện nay Việc nhận dạng trên thiết bị di động gặp nhiều khó khăn Thứ nhất, ảnh chụp trên camera của điện thoại hoàn toàn khác với tập tin ảnh quét vốn là những văn bản có chất lượng cao, rõ ràng, có phông chữ xác định và ngay hàng thẳng lối Ảnh chụp từ camera thường có chất lượng thấp, ảnh dễ bị mờ, méo, nghiêng, chứa vết hoặc thuộc các phông chữ không xác định [8] Có thể giải quyết việc này bằng cách tiền xử lí ảnh trước khi đưa vào nhận dạng, quá trình này thường mất nhiều thời gian và công sức Thứ hai, đó là lựa chọn công cụ hợp lí để phát triển Trên thế giới có rất nhiều công cụ mang lại kết quả tốt, như ABBYY Mobile OCR Engine, tuy nhiên giá thành còn cao và chưa có hỗ trợ tiếng Việt Trong số các thư viện miễn phí, Tesseract OCR cho kết quả nhận dạng khá chính xác Đây vốn là một engine được hãng HP phát triển trong giai đoạn 1984 – 1994 và nằm trong top 3 chương trình nhận dạng kí tự quang học trong hội nghị thường niên của UNLV [9], sau đó Tesseract được chuyển thành mã nguồn mở trên Google và được cung cấp thêm nhiều tính năng, trong đó có thể huấn luyện để nhận dạng nhiều ngôn ngữ khác nhau [10] Từ phiên bản Tesseract 3.02 trở đi, gói dữ liệu huấn luyện tiếng Việt

đã được cung cấp trên trang chủ của Tesseract, mặc dù vẫn chưa hoàn thiện Tuy nhiên, Tesseract cung cấp khả năng huấn luyện tiếng Việt với nhiều phông chữ (do bộ nhận dạng Tesseract khá nhạy cảm với các phông chữ khác nhau của cùng một ngôn ngữ) Nếu thực hiện tốt, bộ dữ liệu có thể cho kết quả khá cao Vì vậy, chương trình sử dụng Tesseract làm

bộ nhận dạng cốt lõi và tự xây dựng dữ liệu huấn luyện tiếng Việt riêng theo một số phông chữ Unicode, là chuẩn về phông chữ được sử dụng rộng rãi hiện nay

Vấn đề cuối cùng là sửa lỗi trên kết quả nhận dạng từ Tesseract Tesseract ban đầu được thiết kế để nhận dạng tiếng Anh [13], mặc dù tiếng Việt cũng là một ngôn ngữ tựa Latinh, nhưng nó có thêm một hệ thống thanh âm và một số kí tự có dấu khác với tiếng Anh, như ă, â, ô, ơ… gây khó khăn cho việc nhận dạng Do đó, chương trình xây dựng thêm một thuật toán kiểm lỗi chính tả tiếng Việt dựa trên thuật toán sử dụng khoảng cách Levenshtein [18]

Trang 3

II NỘI DUNG

Chương trình sử dụng Tesseract OCR, vốn là một thư viện mã nguồn mở chưa có dữ liệu, do đó cần xây dựng bộ dữ liệu huấn luyện riêng cho tiếng Việt để tạo thành bộ nhận dạng hoàn chỉnh

Quá trình xây dựng bộ nhận dạng tiếng Việt trên Android được thực hiện theo các bước như sau:

1) Chuẩn bị dữ liệu huấn luyện tiếng Việt (Vietnamese training data);

2) Chuẩn bị dữ liệu ảnh chụp văn bản;

3) Nhận file ảnh và chuyển đổi ảnh sang định dạng tiêu chuẩn của Tesseract; 4) Nhận dạng sử dụng Tesseract engine;

5) Sửa lỗi chính tả trên văn bản sau khi nhận dạng

Trong đó bước một là quan trọng nhất bởi việc nhận dạng phụ thuộc phần lớn vào việc xây dựng bộ dữ liệu huấn luyện có tốt hay không Bước này có thể thực hiện độc lập, các bước tiếp theo phải thực hiện một cách tuần tự

1 Chuẩn bị dữ liệu huấn luyện

Phiên bản mới nhất hiện nay, Tesseract 3.02 cung cấp một cơ chế cho phép người sử dụng xây dựng một gói dữ liệu hoàn chỉnh để huấn luyện nhận dạng cho một ngôn ngữ nhất định [13] Tesseract cần “học” các hình dạng khác nhau của cùng một kí tự thông qua font chữ, do đó việc huấn luyện thường theo từng font riêng biệt Giới hạn font chữ huấn luyện cho một ngôn ngữ là 32 (gần đây được nâng lên 64), tuy nhiên số lượng font càng nhiều thì việc huấn luyện càng khó khăn và file dữ liệu huấn luyện càng cồng kềnh, gây khó khăn cho việc nhận dạng Trong bài báo này, giới hạn số font chữ là 3 font Unicode được dùng phổ biến ở Việt Nam, đó là: Times New Roman, Arial, Verdana, Courier New

Hình 1 Quá trình huấn luyện trên Tesseract OCR [12]

Trang 4

Quá trình huấn luyện thực chất là quá trình tạo ra một số tập tin dữ liệu và sau đó kết hợp với nhau thành một tập tin duy nhất có tên mã-ngôn-ngữ.traineddata Quá trình này được miêu tả trong hình 1 Quy ước đặt tên cho các tập tin dữ liệu là mã-ngôn-ngữ.tên_file Mã-ngôn-ngữ tuân theo tiêu chuẩn ISO 639-3 [16], mặc dù trên thực tế, bất kì chuỗi nào cũng có thể được sử dụng Các tập tin cần thiết cho việc huấn luyện lưu trong thư mục tessdata và được mô tả trong bảng 1

Bảng 1 Danh sách các tập tin dữ liệu cần thiết [13]

Tên file Bắt buộc/tùy chọn

lang.unicharambigs Tùy chọn

lang.number – dawg Tùy chọn

Bảng 2 Các tập tin dữ liệu cho tiếng Việt

Tên file Bắt buộc/tùy chọn

vie.unicharset Bắt buộc vie.unicharambigs Tùy chọn

vie.pffmtable Bắt buộc vie.normproto Bắt buộc vie.word – dawg Tùy chọn vie.freq – dawg Tùy chọn

Do tiếng Việt rất gần với tiếng Latinh nhưng có một số điểm khác biệt đặc thù, như:

có các dấu thanh (huyền, sắc, hỏi, ngã, nặng) và các kí tự có dấu mũ, dấu móc (ô, ơ…), không có kí tự j, w, z… Do đó việc huấn luyện dữ liệu tiếng Việt cũng có nhiều điểm khác biệt so với quá trình huấn luyện tiếng Anh [13] Bước đầu tiên là tạo ra văn bản và chuyển thành tập tin ảnh huấn luyện (Training page images) làm đầu vào cho tập tin dạng hộp (Box files) Bước này rất quan trọng vì đầu ra sẽ là các tập tin hộp chứa một dãy các kí tự

Trang 5

tuần tự từ đầu đến cuối trong tập tin ảnh, mỗi hàng chứa thông tin của một kí tự, tọa độ và đường bao quanh kí tự đó Dựa trên cơ sở đó Tesseract so sánh kí tự nhận được với kí tự

“mẫu” trong tập tin hộp để cho ra kết quả Do đó, văn bản này phải chứa tất cả kí tự tiếng Việt dạng UTF-8 với tần suất xuất hiện tương ứng: các kí tự hiếm xuất hiện ít nhất 5 lần đối với mỗi kí tự, kí tự hay gặp xuất hiện ít nhất 20 lần, những kí tự còn lại xuất hiện ít nhất 10 lần Thách thức đặt ra không chỉ là tìm hiểu và phân loại kí tự tiếng Việt, mà còn xây dựng văn bản thích hợp sao cho đảm bảo tần suất xuất hiện các kí tự đồng thời giảm thiểu độ lớn của tập tin văn bản (vì số lượng kí tự càng nhiều thì càng gây khó khăn cho quá trình huấn luyện) Đề tài đã dựa trên nhiều bài báo, tác phẩm văn học bằng tiếng Việt, thử nghiệm xây dựng bảng tần suất kí tự thích hợp cho tiếng Việt, được minh họa ở bảng 3,

và xây dựng tập tin văn bản tối ưu

Bảng 3 Thống kê tần suất xuất hiện của các kí tự trong tập tin văn bản

A à ả ã á ạ ă ằ ẳ ẵ ắ ặ â ầ ẩ ẫ ấ ậ b B C D d Đ đ è ẻ ẽ é ẹ ê ề ể ế ệ

G H I ì ỉ ĩ í ị k K L M N ò ó ỏ õ ọ ồ ổ ỗ ố ộ ơ ờ ở ỡ ớ ợ p P q Q R

s S ủ ũ ú ụ ừ ử ữ ứ ự v V x X Y ỳ ỵ ?: “ ” ! ( ) - { } 0 1 2 3 4 5 6

7 8 9

≥ 10

À Ả Ã Á Ạ Ă Ằ Ẳ Ẵ Ắ Ặ Â Ầ Ẩ Ẫ Ấ Ậ E È Ẻ Ẽ É Ẹ Ê Ề Ể ễ Ễ

Ế Ệ f F Ì Ỉ Ĩ Í Ị j J O Õ Ó Ỏ Õ Ọ Ô Ồ Ổ Ỗ Ố Ộ Ơ Ờ Ở Ỡ Ớ Ợ U

Ù ù Ủ Ũ Ö Ụ Ư Ừ Ử Ữ Ứ Ự w W Ỳ Ỵ Ỷ ỷ Ý Ỳ ý ỳ z Z / \ @ # $

^ & _ [ ] | * ; „ ‟ % + =

≥ 5

Sau khi đã có văn bản mẫu, việc tiếp theo là chuyển thành các tập tin ảnh nhị phân 1bpp hoặc ảnh mức xám 8bpp, định dạng TIF với độ phân giải 300DPI Mỗi ảnh chứa mẫu

kí tự của một phông chữ duy nhất, của một kiểu chữ duy nhất (in thường, đậm hoặc nghiêng…) Với 3 phông chữ (Times New Roman, Arial, Courier New…) và 4 kiểu (in thường, in đậm, in nghiêng, in đậm và nghiêng), ta sẽ có 12 tập tin ảnh TIF làm dữ liệu cho tập tin hộp BOX Các tập tin dạng BOX chứa thông tin về tọa độ của “hộp” bao quanh kí

tự Tuy nhiên, nhiều kí tự Tesseract có thể nhận dạng sai, đặc biệt là kí tự có dấu, do đó ta phải chỉnh sửa “hộp” cho từng kí tự bị sai để có dữ liệu huấn luyện chính xác hơn Quá trình này được minh họa trong hình 2 và 3

Quá trình huấn luyện tiếp theo tuân thủ theo chu trình xây dựng dữ liệu huấn luyện của Tesseract [13] Kết quả sinh ra các tập tin sau:

- Tập tin tr: mang các đặc điểm của từng kí tự đã huấn luyện

- Tập tin vie.unicharset: Chứa toàn bộ tập kí tự và thêm vài đặc điểm của chúng

- Tập tin vie.font_properties: Cung cấp thông tin về đặc điểm các phông trong dữ liệu huấn luyện Mỗi dòng trong tập tin này có định dạng sau: <fontname> <italic> <bold> <fixed>

<serif> <fraktur>, với <fontname> là tên phông chữ, các thông số còn lại mang giá trị 1 nếu đúng, 0 nếu sai Dòng cuối cùng là kí tự kết thúc

Trang 6

- Tập tin shapetable

- Tập tin inttemp và pffmtable

- Tập tin normproto

Ngoài ra đối với mỗi ngôn ngữ, Tesseract cho phép tạo thêm tối đa 8 từ điển khác nhau, giúp cho việc nhận dạng tốt hơn Bảy trong số 8 tập tin từ điền là mã hóa dưới dạng Directed Acyclic Word Graph (DAWG) Mặc dù việc tạo từ điển không bắt buộc, đối với tiếng Việt nên có tối thiểu 2 tập tin từ điển:

- vie.word-dawg: chứa các từ vựng trong tiếng Việt

- vie.freq-dawg: Danh sách các từ thông dụng

Hai tập tin này cũng được chúng tôi thu thập từ nhiều nguồn như bài báo, tác phẩm văn học… khác nhau và tổng hợp lại, với khoảng 9000 từ vựng tiếng Việt và trên 3000 từ thông dụng

Một tập tin khác cần được tạo ra là vie.unicharambigs Tập tin này mô tả các tập kí tự

dễ nhận dạng nhầm lẫn với tập kí tự khác, điều này rất phổ biến trong tiếng Việt Dòng đầu tiên cho biết phiên bản tập tin Các dòng tiếp theo có định dạng:

<số lượng kí tự gốc><tab><chuỗi kí tự gốc><tab><số lượng kí tự đích><tab><chuỗi

kí tự đích><tab><cách thức thay thế>

Trong đó <Cách thức thay thế> có thể mang giá trị 1 nếu bắt buộc phải thay thế chuỗi gốc bằng chuỗi đích, hoặc mang giá trị 0 nếu không bắt buộc thay thế

Ví dụ:

v1

2 ' ' 1 " 1

1 m 2 r n 0

3 i i i 1 m 0

Tức là 1 kí tự “m” có thể bị thay thế bởi 2 kí tự “rn”, tuy nhiên không bắt buộc

Cuối cùng, sau khi kết hợp tất cả các tập tin trên, ta được tập tin vie.traineddata, đây là tập tin chứa dữ liệu tiếng Việt cho các bước tiếp theo

Trang 7

Hình 2 Thông tin về tọa độ x, y, chiều rộng, chiều cao của các kí tự

Hình 3 Chỉnh sửa tọa độ, chiều cao, chiều rộng của từng kí tự,

sử dụng phần mềm jTessBoxEditor

2 Chuẩn bị dữ liệu ảnh chụp văn bản

Mục tiêu của bước này là chuẩn bị một số lượng lớn ảnh thí nghiệm để kiểm tra khả năng nhận dạng của Tesseract Ảnh chụp, trên thực tế thường gặp phải một số trường hợp làm giảm khả năng nhận dạng, như: nền và chữ có độ tương phản thấp, bố cục văn bản bị nghiêng, lệch, hoặc có đường viền ở biên (đối với ảnh quét) [11] Tesseract không có cơ chế phân tích bố cục trang, do đó nó không thể nhận được nếu văn bản được chia thành nhiều khối, nhiều bố cục… Ngoài ra những vấn đề như quá nhiều kí tự đặc biệt, chữ quá nhỏ hoặc font chữ chưa được huấn luyện… cũng gây khó khăn cho việc nhận dạng Hình 4 minh họa một số trường hợp ảnh có chất lượng kém

Bài báo này không tập trung vào quá trình tiền xử lí ảnh, do đó giả định đầu vào là ảnh đã được xử lí một cách tối ưu Đó là những ảnh chụp hoặc ảnh quét thỏa mãn các yêu cầu sau:

Trang 8

- Ảnh chụp văn bản giấy bằng camera trên thiết bị di động có hỗ trợ tự động lấy nét (auto focus), độ phân giải 200dpi trở lên, trong điều kiện ánh sáng tốt; hoặc ảnh được scan một cách rõ ràng, không bị lệch, không có viền

- Ảnh có màu giấy đồng nhất (màu trắng) và màu chữ đồng nhất (màu đen), không quá sáng hoặc quá tối

- Phông chữ là Times New Roman, Arial, hoặc Courier New

- Định dạng thuộc một trong các định dạng phổ biến: JPG/JPEG, PNG, GIF, TIF/TIFF

- Ảnh chứa một khối văn bản hoàn chỉnh, không nghiêng, không mất chữ, khoảng cách giữa chữ và lề tối thiểu bằng chiều rộng một kí tự

- Kích cỡ chữ (font size) từ 20pt trở lên

- Ảnh nên chứa cả chữ đậm, nghiêng, các kí tự đặc biệt…

- Giới hạn số chữ trong ảnh là 100 chữ

Hình 5 là một mẫu ảnh thỏa mãn các yêu cầu trên

Hình 4 Một số ví dụ về ảnh không đạt tiêu chuẩn Từ trái sang phải và từ trên xuống

dưới: Ảnh có nhiều khối văn bản, chữ quá nhỏ; ảnh nền tối, mất chữ;

ảnh chụp bị lệch; chữ bị mờ

Hình 5 Ví dụ về ảnh đạt tiêu chuẩn

3 Nhận file ảnh và chuyển đổi ảnh sang định dạng tiêu chuẩn của Tesseract

Ảnh chụp trên điện thoại và ảnh quét thường ở một trong các định dạng ảnh phổ biến sau: JPG/JPEG, PNG, GIF, TIF/TIFF Do đó chương trình chỉ cần lấy tập tin ảnh từ thư viện ảnh hoặc từ camera trên thiết bị di động Tuy nhiên bộ nhận dạng Tesseract OCR chỉ nhận đầu vào là tập tin ảnh bitmap được mã hóa dạng ARGB_8888 và các thiết bị di động thường có bộ nhớ hạn chế Do đó, chúng tôi lập trình để nhân đôi tập tin ảnh gốc và

Trang 9

chuyển tập tin đã nhân đôi thành tập tin ảnh bitmap dạng ARGB_8888 với kích thước nhỏ hơn ảnh gốc, để tiết kiệm dung lượng bộ nhớ

Ảnh sau khi xử lí được lưu trữ tạm thời cho đến khi được chuyển thành đầu vào của

bộ nhận dạng

4 Nhận dạng sử dụng Tesseract OCR

Tesseract vốn được viết bằng ngôn ngữ C/C++, trong khi ứng dụng Android thường được viết bằng ngôn ngữ lập trình Java Do đó, để sử dụng được thư viện này trên nền tảng Android, cần một giao diện giúp Java giao tiếp được với các hàm C/C++ Giao diện đó là JNI (Java Native Interface) Để biên dịch JNI trong Android, ta phải sử dụng Android NDK (Native Development Kit), một công cụ mạnh mẽ cho phép các nhà phát triển sử dụng lại mã gốc (native code) hoặc viết mã nguồn C/C++ bên trong chương trình

Đối với nền tảng Android, Google đã phát triển một project riêng cung cấp API và các tập tin cấu hình để biên dịch thư viện Tesseract cùng thư viện xử lí ảnh Leptonica được

sử dụng trong Tesseract Đó là project mã nguồn mở tesseract-android-tools [17] Project này sẽ được tích hợp mã nguồn Tessseract 3.02 cùng thư viện Leptonica và sử dụng ndk-build để biên dịch thành thư viện cho bộ nhận dạng

Trước tiên, dữ liệu huấn luyện được lưu vào thẻ nhớ (sdcard) của thiết bị Chương trình chính sẽ tích hợp thư viện đã biên dịch, nhận dữ liệu huấn luyện (là tập tin vie.traineddata đã xây dựng ở mục A), ảnh đầu vào đã được chuyển sang dạng bitmap và xây dựng các hàm để nhận dạng Kết quả được lưu vào textbox để thuận tiện cho việc chỉnh sửa (nếu có) Quá trình này được minh họa ở hình 6

Hình 6 Quá trình nhận dạng bằng Tesseract OCR

5 Sửa lỗi chính tả trên văn bản sau khi nhận dạng

Chuỗi văn bản nhận được sau khi xử lí rất ít khi cho kết quả chính xác hoàn toàn với ảnh gốc và thường phát sinh lỗi Qua thống kê trên 300 ảnh thí nghiệm, các lỗi xảy ra khi nhận dạng tiếng Việt thường ở các trường hợp sau:

Trang 10

- Nhận chữ thường thành chữ hoa hoặc ngược lại Ví dụ: HoA, GHi

- Nhận sai kí tự dẫn đến từ không có nghĩa Ví dụ: mang  marg, trường  trừong

- Nhận sai kí tự nhưng từ nhận được vẫn có nghĩa Ví dụ: hoa  hòa, tái  tài

Với trường hợp đầu tiên, việc sửa lỗi tương đối dễ dàng, chỉ cần chuyển chữ hoa thành chữ thường hoặc ngược lại Trường hợp thứ ba tương đối khó vì phải xét đến nghĩa của từ trong ngữ cảnh của văn bản Đề tài này tập trung vào trường hợp thứ ba, sửa lỗi chính tả trên các từ không có nghĩa, bằng cách cải tiến thuật toán tính khoảng cách sửa đổi (Edit distance)

Khoảng cách sửa đổi thực chất là số thao tác tối thiểu cần có để chuyển một chuỗi thành chuỗi khác Các thao tác có thể là thêm kí tự, thay thế kí tự này bằng kí tự khác, xóa

kí tự, đổi chỗ 2 kí tự Mỗi lần thực thi một thao tác, khoảng cách này được tăng thêm 1 giá trị Dạng phổ biến của khoảng cách sửa đổi là khoảng cách Levenshtein [18] Ví dụ: Khoảng cách Levenshtein giữa 2 chuỗi “brown” và “downy” là 3, vì phải dùng ít nhất 3 lần biến đổi:

- brown  rown (xóa kí tự “b”);

- rown  down (thay kí tự “r” bằng kí tự “d”);

- down  downy (thêm kí tự “y”)

Như vậy, nếu 2 chuỗi hoàn toàn giống nhau, khoảng cách Levenshtein bằng 0

Hình 7 Giả mã của thuật toán

Ngày đăng: 08/07/2022, 15:33

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] S. Mori, C.Y. Suen, K. Yamamoto, Historical review of OCR research and development, Proceedings of the IEEE, vol. 80, issue. 7, 1992 Sách, tạp chí
Tiêu đề: Historical review of OCR research and development
[2] Optical Character Recogntion, Available: http://en.wikipedia.org/wiki/Optical_ character_recognition Sách, tạp chí
Tiêu đề: Optical Character Recogntion
[3] Hasnat, M. R. Chowdhury and M. Khan, An open source Tesseract based Optical Character Recognizer for Bangla script, presented at the 10 th International Conference on Document Analysis and Recognition (ICDAR‟2009), Barcelona, Spain, 26-29, 2009 Sách, tạp chí
Tiêu đề: An open source Tesseract based Optical Character Recognizer for Bangla script
[4] Google Inc., CA, USA, Google Goggles, Available: https://www.google.com/ mobile/goggles, 2010 Sách, tạp chí
Tiêu đề: Google Goggles
[5] Institute of Information Technology, VnDOCR 4.0 Professional, Available: http://www.vndocr.com/home/Products.asp?ProductID=2 Sách, tạp chí
Tiêu đề: VnDOCR 4.0 Professional
[7] R.C. Gonzalez, R. E. Woods, Digital Image Processing, 2nd ed., New Jersey: Prentice Hall, 2002 Sách, tạp chí
Tiêu đề: Digital Image Processing
[8] J. Liang, D. Doermann and H. Li., Camera-based analysis of text and documents a survey, International Journal on Document Analysis and Recognition (IJDAR‟2005), Doi: 10.1007/s10032-004-0138-z, 2005 Sách, tạp chí
Tiêu đề: Camera-based analysis of text and documents a survey
[9] S.V. Rice, F.R. Jenkins, T.A. Nartker, The Fourth Annual Test of OCR Accuracy, Technical Report 95-03, Information Science Research Institute, University of Nevada, Las Vegas, 1995 Sách, tạp chí
Tiêu đề: The Fourth Annual Test of OCR Accuracy, Technical Report 95-03
[10] R.W.Smith, An overview of Tesseract OCR engine, In Proc. Ninth Annual Conference on Documen Analysis and Recognition, volumne 2, 2007 Sách, tạp chí
Tiêu đề: An overview of Tesseract OCR engine
[11] Google Inc., Mountain View, CA 94043, USA, Tesseract OCR, Available: https://code.google.com/p/tesseract-ocr/, 2006 Sách, tạp chí
Tiêu đề: Tesseract OCR
[12] R. Smith, Tesseract OCR Engine, Available: http://tesseract-ocr.googlecode.com/ files/TesseractOSCON.pdf, 2007 Sách, tạp chí
Tiêu đề: Tesseract OCR Engine
[13] Google Inc., Mountain View, CA 94043, USA, Training Tesseract 3, Available: http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3, 2006 Sách, tạp chí
Tiêu đề: Training Tesseract 3
[14] U. Patel, An Introduction to the Process of Optical Character Recognition, International Journal of Science and Research (IJSR), India, 2012 Sách, tạp chí
Tiêu đề: An Introduction to the Process of Optical Character Recognition
[15] R. Smith, D. Antonova, D.S. Lee, Adapting the Tesseract Open Source Engine for Multilingual OCR, Google Inc., Mountain View, CA 94043, USA, 2009 Sách, tạp chí
Tiêu đề: Adapting the Tesseract Open Source Engine for Multilingual OCR
[16] The International Organization for Standardization (ISO), SO 639-3 Language Codes, Available: http://www-01.sil.org/iso639-3/codes.asp?order=639_3&amp; letter=v Sách, tạp chí
Tiêu đề: SO 639-3 Language Codes
[17] Google Inc., Mountain View, CA 94043, USA, Tesseract Android Tools, Available: https://code.google.com/p/tesseract-android-tools/, 2006 Sách, tạp chí
Tiêu đề: Tesseract Android Tools
[18] Levenshtein, How Levenshtein works, Available: http://www.levenshtein.net/ index.htmL Sách, tạp chí
Tiêu đề: How Levenshtein works
[19] Đinh Điền, Xử lí ngôn ngữ tự nhiên, NXB Đại học Quốc gia Tp. HCM, 2004 Sách, tạp chí
Tiêu đề: Xử lí ngôn ngữ tự nhiên
Nhà XB: NXB Đại học Quốc gia Tp. HCM

HÌNH ẢNH LIÊN QUAN

Hình 1. Quá trình huấn luyện trên Tesseract OCR [12] - Nhận dạng tiếng Việt trên hệ điều hành android
Hình 1. Quá trình huấn luyện trên Tesseract OCR [12] (Trang 3)
Bảng 2. Các tập tin dữ liệu cho tiếng Việt - Nhận dạng tiếng Việt trên hệ điều hành android
Bảng 2. Các tập tin dữ liệu cho tiếng Việt (Trang 4)
Bảng 1. Danh sách các tập tin dữ liệu cần thiết [13] - Nhận dạng tiếng Việt trên hệ điều hành android
Bảng 1. Danh sách các tập tin dữ liệu cần thiết [13] (Trang 4)
Bảng 3. Thống kê tần suất xuất hiện của các kí tự trong tập tin văn bản - Nhận dạng tiếng Việt trên hệ điều hành android
Bảng 3. Thống kê tần suất xuất hiện của các kí tự trong tập tin văn bản (Trang 5)
Hình 2. Thông tin về tọa độ x, y, chiều rộng, chiều cao của các kí tự - Nhận dạng tiếng Việt trên hệ điều hành android
Hình 2. Thông tin về tọa độ x, y, chiều rộng, chiều cao của các kí tự (Trang 7)
Hình 5 là một mẫu ảnh thỏa mãn các yêu cầu trên. - Nhận dạng tiếng Việt trên hệ điều hành android
Hình 5 là một mẫu ảnh thỏa mãn các yêu cầu trên (Trang 8)
Hình 6. Quá trình nhận dạng bằng Tesseract OCR - Nhận dạng tiếng Việt trên hệ điều hành android
Hình 6. Quá trình nhận dạng bằng Tesseract OCR (Trang 9)
Hình 7. Giả mã của thuật toán - Nhận dạng tiếng Việt trên hệ điều hành android
Hình 7. Giả mã của thuật toán (Trang 10)
Bảng 4. Độ chính xác của chương trình - Nhận dạng tiếng Việt trên hệ điều hành android
Bảng 4. Độ chính xác của chương trình (Trang 12)

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w