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%.
KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 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) công nghệ ứng dụng rộng rãi phần mềm desktop mobile, nhằm trích xuất văn từ ảnh scan ảnh chụp qua camera Tại Việt Nam, có nhiều hướng nghiên cứu ứng dụng OCR toán nhận dạng chữ in tiếng Việt từ file ảnh có sẵn máy tính, file PDF ảnh scan Tuy nhiên chưa có nghiên cứu tập trung vào việc nhận dạng tiếng Việt tảng di động Trong báo giới thiệu phương pháp nhận dạng tiếng Việt từ ảnh chụp điện thoại di động sử dụng hệ điều hành Android Phương pháp sử dụng thư viện Tesseract Google, xây dựng liệu hồn chỉnh so với gói liệu sẵn có Tesseract, với thuật tốn xử lí lỗi đoạn văn sau nhận dạng Kết nhận dạng cho kết tương đối cao với độ 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 cơng nghệ hữu ích để chuyển ả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… 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 tự động chuyển văn scan thành tài liệu lƣu máy tính Cùng với phát triển thiết bị cầm tay, nhiều nghiên cứu bắt đầu hƣớng đến việc áp dụng OCR hệ điều hành di động, lợi to lớn thiết bị di động, nhƣ nhỏ gọn, tiện lợi, mang lúc nơi đƣợc trang bị nhiều chức không máy tính thơng thƣờng Đối với tiếng Việt, việc nghiên cứu OCR di động mang lại nhiều lợi ích to lớn nghiên cứu lẫn ứng dụng Nhận dạng tiếng Việt thành cơng 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; mặt dân sự, nghiên cứu hỗ trợ cho việc xây dựng ứng dụng dịch thuật, đọc văn cho ngƣời khiếm thị, tìm kiếm thông tin… từ văn linh động nhiều so với vă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, giới có nhiều nghiên cứu nhƣ ứng dụng OCR để nhận dạng chữ in nhiều ngôn ngữ khác 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 [1], [2] Hƣớng nghiên cứu năm gần tập trung vào nhận dạng ngơn ngữ có kí tự tựa Latinh nhƣng thêm dấu kí tự đặc biệt, nhƣ tiếng Pháp, tiếng Nga… ngơn ngữ tƣợng hình Một nghiên cứu Hasnat Bangladesh cho đời ứng dụng hoàn chỉnh dựa mã nguồn mở Tesseract để nhận dạng tiếng Bangla, ngơn ngữ có nguồn gốc tiếng Phạn, thuộc nhóm tƣợng hình [3] Mới nhất, Google cho đời ứng dụng Google Goggles [4] Android iOS, ứng dụng mạnh mẽ cho phép ngƣời sử dụng tìm kiếm web 171 KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 ảnh chụp điện thoại di động, nhiều ngơn ngữ khác 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, 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, phần mềm máy tính có phiên Java NET, đƣợc phát triển dựa thƣ viện mã nguồn mở Tesseract [6] Tuy nhiên hầu nhƣ chƣa có nghiên cứu nhận dạng tiếng Việt từ ảnh hệ điều hành di động Một số ứng dụng Android nhƣ VietScanner cho kết không cao, hỗ trợ ảnh quét, ứng dụng Goggles nhận dạng đƣợc tiếng Việt không dấu, hƣớng nghiên cứu mẻ nhiều tiềm Bài báo tập trung nghiên cứu nhận dạng tiếng Việt in từ ảnh điện thoại di động sử dụng hệ điều hành Android, tảng mã nguồn mở thống lĩnh thị trƣờng di động Việc nhận dạng thiết bị di động gặp nhiều khó khăn Thứ nhất, ảnh chụp camera điện thoại hoàn toàn khác với tập tin ảnh quét vốn văn có chất lƣợng cao, rõ ràng, có phơng chữ xác định 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 thuộc phơng chữ khơng xác định [8] Có thể giải việc cách tiền xử lí ảnh trƣớc đƣa vào nhận dạng, trình thƣờng nhiều thời gian cơng sức Thứ hai, lựa chọn cơng cụ hợp lí để phát triển Trên giới có nhiều cơng cụ mang lại kết tốt, nhƣ ABBYY Mobile OCR Engine, nhiên giá thành cịn cao chƣa có hỗ trợ tiếng Việt Trong số thƣ viện miễn phí, Tesseract OCR cho kết nhận dạng xác Đây vốn engine đƣợc hãng HP phát triển giai đoạn 1984 – 1994 nằm top chƣơng trình nhận dạng kí tự quang học hội nghị thƣờng niên UNLV [9], sau Tesseract đƣợc chuyển thành mã nguồn mở Google đƣợc cung cấp thêm nhiều tính năng, huấn luyện để nhận dạng nhiều ngôn ngữ khác [10] Từ phiên Tesseract 3.02 trở đi, gói liệu huấn luyện tiếng Việt đƣợc cung cấp trang chủ Tesseract, chƣa hoàn thiện Tuy nhiên, Tesseract cung cấp khả huấn luyện tiếng Việt với nhiều phông chữ (do nhận dạng Tesseract nhạy cảm với phông chữ khác ngôn ngữ) Nếu thực tốt, liệu cho kết cao Vì vậy, chƣơng trình sử dụng Tesseract làm nhận dạng cốt lõi tự xây dựng liệu huấn luyện tiếng Việt riêng theo số phông chữ Unicode, chuẩn phông chữ đƣợc sử dụng rộng rãi Vấn đề cuối sửa lỗi kết nhận dạng từ Tesseract Tesseract ban đầu đƣợc thiết kế để nhận dạng tiếng Anh [13], tiếng Việt ngôn ngữ tựa Latinh, nhƣng có thêm hệ thống âm 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 thuật tốn kiểm lỗi tả tiếng Việt dựa thuật toán sử dụng khoảng cách Levenshtein [18] 172 KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 II NỘI DUNG Chƣơng trình sử dụng Tesseract OCR, vốn thƣ viện mã nguồn mở chƣa có liệu, cần xây dựng liệu huấn luyện riêng cho tiếng Việt để tạo thành nhận dạng hồn chỉnh Q trình xây dựng nhận dạng tiếng Việt Android đƣợc thực theo bƣớc nhƣ sau: 1) Chuẩn bị liệu huấn luyện tiếng Việt (Vietnamese training data); 2) Chuẩn bị liệu ảnh chụp văn bản; 3) Nhận file ảnh chuyển đổi ảnh sang định dạng tiêu chuẩn Tesseract; 4) Nhận dạng sử dụng Tesseract engine; 5) Sửa lỗi tả văn sau nhận dạng Trong bƣớc quan trọng việc nhận dạng phụ thuộc phần lớn vào việc xây dựng liệu huấn luyện có tốt hay khơng Bƣớc thực độc lập, bƣớc phải thực cách Chuẩn bị liệu huấn luyện Phiên nay, Tesseract 3.02 cung cấp chế cho phép ngƣời sử dụng xây dựng gói liệu hoàn chỉnh để huấn luyện nhận dạng cho ngơn ngữ định [13] Tesseract cần “học” hình dạng khác kí tự thơng qua font chữ, việc huấn luyện thƣờng theo font riêng biệt Giới hạn font chữ huấn luyện cho ngôn ngữ 32 (gần đƣợc nâng lên 64), nhiên số lƣợng font nhiều việc huấn luyện khó khăn file liệu huấn luyện cồng kềnh, gây khó khăn cho việc nhận dạng Trong báo này, giới hạn số font chữ font Unicode đƣợc dùng phổ biến Việt Nam, là: Times New Roman, Arial, Verdana, Courier New Hình Quá trình huấn luyện Tesseract OCR [12] 173 KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 Quá trình huấn luyện thực chất trình tạo số tập tin liệu sau kết hợp với thành tập tin có tên mã-ngơn-ngữ.traineddata Q trình đƣợc miêu tả hình Quy ƣớc đặt tên cho tập tin liệu mã-ngôn-ngữ.tên_file Mã-ngôn-ngữ tuân theo tiêu chuẩn ISO 639-3 [16], thực tế, chuỗi đƣợc sử dụng Các tập tin cần thiết cho việc huấn luyện lƣu thƣ mục tessdata đƣợc mô tả bảng Bảng Danh sách tập tin liệu cần thiết [13] Tên file Bắt buộc/tùy chọn lang.config Tùy chọn lang.unicharset Bắt buộc lang.unicharambigs Tùy chọn lang.inttemp Bắt buộc lang.pffmtable Bắt buộc lang.normproto Bắt buộc lang.punc – dawg Tùy chọn lang.word – dawg Tùy chọn lang.number – dawg Tùy chọn lang.freq – dawg Tùy chọn Bảng Các tập tin 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.inttemp Bắt buộc 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 gần với tiếng Latinh nhƣng có số điểm khác biệt đặc thù, nhƣ: có dấu (huyền, sắc, hỏi, ngã, nặng) 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 liệu tiếng Việt có nhiều điểm khác biệt so với trình huấn luyện tiếng Anh [13] Bƣớc tạo văn 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 quan trọng đầu tập tin hộp chứa dãy kí tự 174 KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 từ đầu đến cuối tập tin ảnh, hàng chứa thơng tin kí tự, tọa độ đƣờng bao quanh kí tự Dựa sở Tesseract so sánh kí tự nhận đƣợc với kí tự “mẫu” tập tin hộp kết Do đó, văn phải chứa tất kí tự tiếng Việt dạng UTF-8 với tần suất xuất tƣơng ứng: kí tự xuất lần kí tự, kí tự hay gặp xuất 20 lần, kí tự cịn lại xuất 10 lần Thách thức đặt khơng tìm hiểu phân loại kí tự tiếng Việt, mà cịn xây dựng văn thích hợp cho đảm bảo tần suất xuất kí tự đồng thời giảm thiểu độ lớn tập tin văn (vì số lƣợng kí tự nhiều gây khó khăn cho q trình huấn luyện) Đề tài dựa nhiều báo, tác phẩm văn học 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, xây dựng tập tin văn tối ƣu Bảng Thống kê tần suất xuất kí tự tập tin văn Các kí tự Tần suất aceghilmnrtTuƣy ≥ 20 ảãáạăằẳẵắặâầẩẫấậbBCDdĐđèẻẽéẹêềểếệ GHIìỉĩíịkKLMNịóỏõọồổỗốộơờởỡớợpPqQR s S ủ ũ ú ụ ữ ứ ự v V x X Y ỳ ỵ ?: “ ” ! ( ) - { } 789 ≥ 10 ÀẢÃÁẠĂẰẲẴẮẶÂẦẨẪẤẬẺẼÉẸÊỀỂễỄ ẾỆfFÌỈĨÍỊjJÕĨỎÕỌƠỒỔỖỐỘƠỜỞỠỚỢU ÙùỦŨƯỤƢỪỬỮỨỰwWỲỴỶỷÝỲýỳzZ/\@#$ ^&_[]|*;„‟%+= ≥5 Sau có văn mẫu, việc chuyển thành tập tin ảnh nhị phân 1bpp ả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ự phơng chữ nhất, kiểu chữ (in thƣờng, đậm nghiêng…) Với phông chữ (Times New Roman, Arial, Courier New…) kiểu (in thƣờng, in đậm, in nghiêng, in đậm nghiêng), ta có 12 tập tin ảnh TIF làm liệu cho tập tin hộp BOX Các tập tin dạng BOX chứa thông tin tọa độ “hộp” bao quanh kí tự Tuy nhiên, nhiều kí tự Tesseract nhận dạng sai, đặc biệt kí tự có dấu, ta phải chỉnh sửa “hộp” cho kí tự bị sai để có liệu huấn luyện xác Q trình đƣợc minh họa hình Quá trình huấn luyện tuân thủ theo chu trình xây dựng liệu huấn luyện Tesseract [13] Kết sinh tập tin sau: - Tập tin tr: mang đặc điểm kí tự huấn luyện - Tập tin vie.unicharset: Chứa toàn tập kí tự thêm vài đặc điểm chúng - Tập tin vie.font_properties: Cung cấp thông tin đặc điểm phơng liệu huấn luyện Mỗi dịng tập tin có định dạng sau: , với tên phông chữ, thơng số cịn lại mang giá trị đúng, sai Dịng cuối kí tự kết thúc 175 KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 - Tập tin shapetable - Tập tin inttemp pffmtable - Tập tin normproto Ngoài ngôn ngữ, Tesseract cho phép tạo thêm tối đa từ điển khác nhau, giúp cho việc nhận dạng tốt Bảy số tập tin từ điền 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, tiếng Việt nên có tối thiểu tập tin từ điển: - vie.word-dawg: chứa từ vựng tiếng Việt - vie.freq-dawg: Danh sách từ thông dụng Hai tập tin đƣợc thu thập từ nhiều nguồn nhƣ báo, tác phẩm văn học… khác tổng hợp lại, với khoảng 9000 từ vựng tiếng Việt 3000 từ thông dụng Một tập tin khác cần đƣợc tạo vie.unicharambigs Tập tin mơ tả tập kí tự dễ nhận dạng nhầm lẫn với tập kí tự khác, điều phổ biến tiếng Việt Dòng cho biết phiên tập tin Các dòng có định dạng: Trong mang giá trị bắt buộc phải thay chuỗi gốc chuỗi đích, mang giá trị khơng bắt buộc thay Ví dụ: v1 '' " m iii rn m 0 Tức kí tự “m” bị thay kí tự “rn”, nhiên không bắt buộc Cuối cùng, sau kết hợp tất tập tin trên, ta đƣợc tập tin vie.traineddata, tập tin chứa liệu tiếng Việt cho bƣớc 176 KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 Hình Thơng tin tọa độ x, y, chiều rộng, chiều cao kí tự Hình Chỉnh sửa tọa độ, chiều cao, chiều rộng kí tự, sử dụng phần mềm jTessBoxEditor Chuẩn bị liệu ảnh chụp văn Mục tiêu bƣớc chuẩn bị số lƣợng lớn ảnh thí nghiệm để kiểm tra khả nhận dạng Tesseract Ảnh chụp, thực tế thƣờng gặp phải số trƣờng hợp làm giảm khả nhận dạng, nhƣ: chữ có độ tƣơng phản thấp, bố cục văn bị nghiêng, lệch, có đƣờng viền biên (đối với ảnh qt) [11] Tesseract khơng có chế phân tích bố cục trang, khơng thể nhận đƣợc văn đƣợc chia thành nhiều khối, nhiều bố cục… Ngoài vấn đề nhƣ nhiều kí tự đặc biệt, chữ nhỏ font chữ chƣa đƣợc huấn luyện… gây khó khăn cho việc nhận dạng Hình minh họa số trƣờng hợp ảnh có chất lƣợng Bài báo khơng tập trung vào q trình tiền xử lí ảnh, giả định đầu vào ảnh đƣợc xử lí cách tối ƣu Đó ảnh chụp ảnh quét thỏa mãn yêu cầu sau: 177 KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 - Ảnh chụp văn giấy camera thiết bị di động có hỗ trợ tự động lấy nét (auto focus), độ phân giải 200dpi trở lên, điều kiện ánh sáng tốt; ảnh đƣợc scan cách rõ ràng, khơng bị lệch, khơng có viền - Ảnh có màu giấy đồng (màu trắng) màu chữ đồng (màu đen), không sáng tối - Phông chữ Times New Roman, Arial, Courier New - Định dạng thuộc định dạng phổ biến: JPG/JPEG, PNG, GIF, TIF/TIFF - Ảnh chứa khối văn hồn chỉnh, khơng nghiêng, khơng chữ, khoảng cách chữ lề tối thiểu chiều rộng kí tự - Kích cỡ chữ (font size) từ 20pt trở lên - Ảnh nên chứa chữ đậm, nghiêng, kí tự đặc biệt… - Giới hạn số chữ ảnh 100 chữ Hình mẫu ảnh thỏa mãn yêu cầu Hình Một số ví dụ ảnh khơng đạt tiêu chuẩn Từ trái sang phải từ xuống dưới: Ảnh có nhiều khối văn bản, chữ nhỏ; ảnh tối, chữ; ảnh chụp bị lệch; chữ bị mờ Hình Ví dụ ảnh đạt tiêu chuẩn Nhận file ảnh chuyển đổi ảnh sang định dạng tiêu chuẩn Tesseract Ảnh chụp điện thoại ảnh quét thƣờng định dạng ảnh phổ biến sau: JPG/JPEG, PNG, GIF, TIF/TIFF Do chƣơng trình cần lấy tập tin ảnh từ thƣ viện ảnh từ camera thiết bị di động Tuy nhiên nhận dạng Tesseract OCR nhận đầu vào tập tin ảnh bitmap đƣợc mã hóa dạng ARGB_8888 thiết bị di động thƣờng có nhớ hạn chế Do đó, chúng tơi lập trình để nhân đơi tập tin ảnh gốc 178 KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 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ỏ ảnh gốc, để tiết kiệm dung lƣợng nhớ Ảnh sau xử lí đƣợc lƣu trữ tạm thời đƣợc chuyển thành đầu vào nhận dạng Nhận dạng sử dụng Tesseract OCR Tesseract vốn đƣợc viết ngôn ngữ C/C++, ứng dụng Android thƣờng đƣợc viết ngơn ngữ lập trình Java Do đó, để sử dụng đƣợc thƣ viện tảng Android, cần giao diện giúp Java giao tiếp đƣợc với hàm C/C++ Giao diện JNI (Java Native Interface) Để biên dịch JNI Android, ta phải sử dụng Android NDK (Native Development Kit), công cụ mạnh mẽ cho phép nhà phát triển sử dụng lại mã gốc (native code) viết mã nguồn C/C++ bên chƣơng trình Đối với tảng Android, Google phát triển project riêng cung cấp API tập tin cấu hình để biên dịch thƣ viện Tesseract thƣ viện xử lí ảnh Leptonica đƣợc sử dụng Tesseract Đó project mã nguồn mở tesseract-android-tools [17] Project đƣợc tích hợp mã nguồn Tessseract 3.02 thƣ viện Leptonica sử dụng ndkbuild để biên dịch thành thƣ viện cho nhận dạng Trƣớc tiên, liệu huấn luyện đƣợc lƣu vào thẻ nhớ (sdcard) thiết bị Chƣơng trình tích hợp thƣ viện biên dịch, nhận 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 xây dựng hàm để nhận dạng Kết đƣợc lƣu vào textbox để thuận tiện cho việc chỉnh sửa (nếu có) Q trình đƣợc minh họa hình Hình Quá trình nhận dạng Tesseract OCR Sửa lỗi tả văn sau nhận dạng Chuỗi văn nhận đƣợc sau xử lí cho kết xác hồn tồn với ảnh gốc thƣờng phát sinh lỗi Qua thống kê 300 ảnh thí nghiệm, lỗi xảy nhận dạng tiếng Việt thƣờng trƣờng hợp sau: 179 KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 - Nhận chữ thƣờng thành chữ hoa 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 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, cần chuyển chữ hoa thành chữ thƣờng ngƣợc lại Trƣờng hợp thứ ba tƣơng đối khó phải xét đến nghĩa từ ngữ cảnh văn Đề tài tập trung vào trƣờng hợp thứ ba, sửa lỗi tả từ khơng có nghĩa, cách cải tiến thuật tốn tính khoảng cách sửa đổi (Edit distance) Khoảng cách sửa đổi thực chất số thao tác tối thiểu cần có để chuyển chuỗi thành chuỗi khác Các thao tác thêm kí tự, thay kí tự kí tự khác, xóa kí tự, đổi chỗ kí tự Mỗi lần thực thi thao tác, khoảng cách đƣợc tăng thêm giá trị Dạng phổ biến khoảng cách sửa đổi khoảng cách Levenshtein [18] Ví dụ: Khoảng cách Levenshtein chuỗi “brown” “downy” 3, phải dùng lần biến đổi: - brown rown (xóa kí tự “b”); - rown down (thay kí tự “r” kí tự “d”); - down downy (thêm kí tự “y”) Nhƣ vậy, chuỗi hồn tồn giống nhau, khoảng cách Levenshtein Hình Giả mã thuật toán 180 KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 Thuật tốn tính khoảng cách Levenshtein thƣờng đƣợc áp dụng để kiểm lỗi tả cho văn tiếng Anh vốn chứa kí tự Latinh khơng dấu Đối với văn tiếng Việt nhận dạng mục D, việc từ bị nhận sai thƣờng thêm xóa kí tự, mà kí tự có vùng “hộp” bao quanh gần giống nhau, nhận dạng dễ nhầm kí tự với kí tự khác Nếu áp dụng tồn thuật tốn cho tiếng Việt dẫn tới kết khơng mong đợi Ví dụ: Bộ nhận dạng nhầm lẫn “ử” “ữ” nên chuỗi “những” bị nhầm thành “nhửng” Nếu áp dụng khoảng cách Levenshtein để truy tìm từ nhiều kết khác nhau: nhƣng, nhung, nhang, hửng… khơng thể tìm từ Để khắc phục điều này, chƣơng trình xây dựng hàm đánh giá thuật tốn tính Levenshtein, cho phép thao tác sửa kí tự có giá trị nhỏ với kí tự có vùng “hộp” bao quanh gần giống Ví dụ: Khoảng cách Levenshtein “ử” “ữ” 0,2; khoảng cách Levenshtein “nhửng” “những” 0,2, “nhửng” “nhang” Dựa vào xác định đƣợc từ cho từ sai tả Hình giả mã thuật tốn Kết nhận dạng Chƣơng trình đƣợc kiểm tra với khoảng 300 ảnh chụp ảnh quét định dạng phơng chữ, cỡ chữ khác Độ xác văn nhận đƣợc đƣợc tính cách tính số kí tự tổng số kí tự, theo công thức sau: Theo thống kê bảng 4, trung bình độ xác cao đạt đƣợc ảnh có chất lƣợng tốt, thỏa mãn tất yêu cầu đề mục B với độ xác khoảng 93 Những ảnh cho độ xác thấp (khoảng 82%) thƣờng ảnh không rõ chữ, chữ có độ tƣơng phản thấp font chữ nhỏ Thống kê cho thấy liệu huấn luyện đƣợc xây dựng tƣơng đối tốt cho kết cao với ảnh đạt tiêu chuẩn Lúc kết nhận dạng chủ yếu phụ thuộc vào chất lƣợng ảnh chụp văn Các tập tin ảnh quét nguyên gốc thƣờng đƣợc phân thành nhiều khối văn với cỡ chữ nhỏ (12pt trở xuống), ảnh chụp điều kiện khiến chữ bị nghiêng, xô lệch… dẫn đến kết nhận dạng So với phần mềm máy tính hay ứng dụng di động miễn phí sử dụng OCR, chƣơng trình xây dựng cho kết nhận dạng tiếng Việt xác Cụ thể, phần mềm VietOCR cho độ xác 85% với ảnh tốt khoảng 70% với ảnh quét, ảnh chụp điều kiện Độ xác chƣơng trình cịn so với nhiều phần mềm thƣơng mại, phần mềm đƣợc chuyên gia phát triển, đƣa thêm thuật tốn xử lí ảnh, nhận dạng cấu trúc văn bản, cách dàn trang… Tuy nhiên kết tƣơng đối khả quan có nhiều hƣớng phát triển tƣơng lai Bảng so sánh cụ thể tính chƣơng trình so với phần mềm miễn phí thƣơng mại có nhận dạng tiếng Việt 181 KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 Bảng Độ xác chương trình Loại ảnh Số lƣợng ảnh Độ xác Ảnh chụp, scan chất lƣợng tốt 200 93% Ảnh chụp, scan chất lƣợng 100 82% Bảng So sánh với chương trình khác Tính Chƣơng trình VietOCR VietScanner Độ xác 93% 85% 90% Tốc độ thực thi Chậm Nhanh Chậm III KẾT LUẬN Đề tài tập trung nghiên cứu tìm hiểu cơng nghệ nhận dạng kí tự quang học xử lí ngơn ngữ để áp dụng xây dựng thành công nhận dạng tiếng Việt tảng Android Chƣơng trình ứng dụng hoàn chỉnh chạy thử nghiệm thành công với kết tƣơng đối khả quan: 93% cho ảnh văn chất lƣợng cao 82% cho ảnh văn chất lƣợng thấp Hạn chế chƣơng trình hiệu cịn phụ thuộc phần lớn vào chất lƣợng ảnh chụp ảnh scan, tập tin liệu huấn luyện tiếng Việt phụ thuộc phần lớn vào liệu cần chuẩn bị Ngoài giải thuật kiểm lỗi tả cịn đơn giản giới hạn trƣờng hợp sai kí tự, chƣa xử lí trƣờng hợp thêm xóa kí tự, sai nhiều kí tự Do hƣớng phát triển đề tài xây dựng khối tiền xử lí ảnh để có liệu ảnh tốt hơn, hồn chỉnh file liệu từ điển, liệu tiếng Việt… cải thiện thuật tốn xử lí văn sau nhận dạng TÀI LIỆU THAM KHẢO [1] S Mori, C.Y Suen, K Yamamoto, Historical review of OCR research and development, Proceedings of the IEEE, vol 80, issue 7, 1992 [2] Optical Character Recogntion, character_recognition [3] Hasnat, M R Chowdhury and M Khan, An open source Tesseract based Optical Character Recognizer for Bangla script, presented at the 10th International Conference on Document Analysis and Recognition (ICDAR‟2009), Barcelona, Spain, 26-29, 2009 [4] Google Inc., CA, USA, Google Goggles, Available: mobile/goggles, 2010 [5] Institute of Information Technology, VnDOCR 4.0 Professional, Available: http://www.vndocr.com/home/Products.asp?ProductID=2 [6] VietOCR, Available: http://vietocr.sourceforge.net/ [7] R.C Gonzalez, R E Woods, Digital Image Processing, 2nd ed., New Jersey: Prentice Hall, 2002 182 Available: http://en.wikipedia.org/wiki/Optical_ https://www.google.com/ KỈ YẾU HỘI NGHỊ SINH VIÊN NGHIÊN CỨU KHOA HỌC NĂM HỌC 2013-2014 [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 [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 [10] R.W.Smith, An overview of Tesseract OCR engine, In Proc Ninth Annual Conference on Documen Analysis and Recognition, volumne 2, 2007 [11] Google Inc., Mountain View, CA 94043, USA, Tesseract OCR, Available: https://code.google.com/p/tesseract-ocr/, 2006 [12] R Smith, Tesseract OCR Engine, Available: http://tesseract-ocr.googlecode.com/ files/TesseractOSCON.pdf, 2007 [13] Google Inc., Mountain View, CA 94043, USA, Training Tesseract 3, Available: http://code.google.com/p/tesseract-ocr/wiki/TrainingTesseract3, 2006 [14] U Patel, An Introduction to the Process of Optical Character Recognition, International Journal of Science and Research (IJSR), India, 2012 [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 [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& letter=v [17] Google Inc., Mountain View, CA 94043, USA, Tesseract Android Tools, Available: https://code.google.com/p/tesseract-android-tools/, 2006 [18] Levenshtein, How Levenshtein works, Available: http://www.levenshtein.net/ index.htmL [19] Đinh Điền, Xử lí ngơn ngữ tự nhiên, NXB Đại học Quốc gia Tp HCM, 2004 183 ... huấn luyện riêng cho tiếng Việt để tạo thành nhận dạng hồn chỉnh Q trình xây dựng nhận dạng tiếng Việt Android đƣợc thực theo bƣớc nhƣ sau: 1) Chuẩn bị liệu huấn luyện tiếng Việt (Vietnamese training... Bài báo tập trung nghiên cứu nhận dạng tiếng Việt in từ ảnh điện thoại di động sử dụng hệ điều hành Android, tảng mã nguồn mở thống lĩnh thị trƣờng di động Việc nhận dạng thiết bị di động gặp nhiều... tìm hiểu cơng nghệ nhận dạng kí tự quang học xử lí ngơn ngữ để áp dụng xây dựng thành công nhận dạng tiếng Việt tảng Android Chƣơng trình ứng dụng hoàn chỉnh chạy thử nghiệm thành công với kết