Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 43 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
43
Dung lượng
2,22 MB
Nội dung
TRƯỜNG ĐẠI HỌC HÀNG HẢI KHOA CÔNG NGHỆ THÔNG TIN THUYẾT MINH ĐỀ TÀI NCKH CẤP TRƯỜNG ĐỀ TÀI ỨNG DỤNG THƯ VIỆN LẬP TRÌNH Mà NGUỒN MỞ XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG VĂN BẢN CHỮ VIỆT, ANH TỪ ẢNH SỐ Chủ nhiệm đề tài: Th.S PHẠM TUẤN ĐẠT Thành viên tham gia: Th.S NGUYỄN VĂN THỦY Hải Phòng, tháng 5/2016 MỤC LỤC MỤC LỤC i MỞ ĐẦU CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Nhị phân hóa ảnh văn 1.2 Cải thiện hình ảnh văn 1.3 Xác định góc nghiêng ảnh văn 1.4 Tách dòng văn bản, ký tự 1.5 Giải thuật nhận dạng ký tự quang học 1.5.1 Ứng dụng lôgic mờ nhận dạng mẫu 1.5.2 Ứng dụng mạng nơ – ron nhận dạng mẫu 10 CHƯƠNG THƯ VIỆN NHẬN DẠNG TESSERACT 15 2.1 Ứng dụng nhận dạng ký tự quang học 15 2.2 Thư viện Tesseract 16 2.2.1 Quá trình hình thành Tesseract 16 2.2.2 Chức Tesseract 17 2.2.3 Kiến trúc giải thuật nhận dạng chữ in 17 2.3 Huấn luyện liệu nhận dạng với Tesseract 20 2.3.1 Tạo liệu huấn luyện 21 2.3.2 Thiết lập tệp cấu hình huấn luyện 24 2.3.3 Huấn luyện liệu 24 CHƯƠNG CHƯƠNG TRÌNH NHẬN DẠNG VĂN BẢN 26 3.1 Ngôn ngữ lập trình thư viện sử dụng 26 3.1.1 Ngôn ngữ lập trình 26 3.1.2 Những thư viện sử dụng 28 3.2 Chức chương trình 30 3.2.1 Thu nhận ảnh 30 i 3.2.2 Tiền xử lý 30 3.2.3 Nhận dạng 30 3.2.4 Hậu xử lý 31 3.2.5 Hiển thị lưu trữ 31 3.3 Giao diện chương trình 31 KẾT LUẬN 35 I Đánh giá kết 35 II Hướng phát triển đề tài 35 TÀI LIỆU THAM KHẢO 36 ii DANH SÁCH BẢNG BIỂU Thứ tự Tiêu đề bảng Trang Bảng 1.1 Tập ký tự số Bảng 1.2 Tập véc tơ đặc trưng Bảng 1.3 Kết đối sánh ký tự số 10 Bảng 2.1 Thuộc tính phông chữ 24 Bảng 3.1 Nhận dạng vùng văn 32 Bảng 3.2 Nhận dạng ảnh văn có góc nghiêng 10o 33 Bảng 3.3 Bảng 3.4 Nhận dạng ảnh văn với phông cỡ chữ khác Nhận dạng ảnh văn có dòng cong 33 34 iii DANH SÁCH HÌNH ẢNH Thứ tự Tiêu đề hình ảnh Trang Hình 1.1 Đường thẳng góc nghiêng Hình 1.2 Đường thẳng qua điểm Hình 1.3 Văn nghiêng Hình 1.4 Tách dòng xác chọn vùng ký tự Hình 1.5 Nút nơ – ron nhân tạo 11 Hình 1.6 Mạng truyền thẳng nhiều tầng 13 Hình 2.1 Hình 2.2 Quy trình xử lý ứng dụng nhận dạng ký tự quang học Kiến trúc nhận dạng văn chữ in Tesseract 15 17 Hình 2.3 Đường sở hình cong 18 Hình 2.4 Cắt ký tự liền 18 Hình 2.5 Sơ đồ nhận dạng từ 19 Hình 2.6 Các đặc trưng ký tự nhận dạng 19 Hình 2.7 Sơ đồ huấn luyện liệu Tesseract 20 Hình 2.8 Các chức biên tập văn mẫu 21 Hình 2.9 Nhận dạng phác thảo ký tự 23 Hình 2.10 Kết huấn luyện liệu 25 Hình 2.11 Ứng dụng Java chạy nhiều hệ điều hành 26 Hình 2.12 Cơ chế thông dịch java 27 Hình 2.13 Chức chương trình 30 Hình 3.1 Giao diện chương trình 32 iv DANH MỤC THUẬT NGỮ, CHỮ VIẾT TẮT Thuật ngữ, chữ viết tắt Ý nghĩa cụm từ Trang Activation funtion Hàm kích hoạt 11 Actual response Đáp ứng thực tế 11 Adaptive classifier Phân loại thích ứng 20 Adaptive thresholding Ngưỡng thích nghi Anti-aliasing Khử cưa 21 ANN-Artificial neural Mạng nơ – ron nhân tạo 10 Associate word Ghép từ 19 Back – propagation learning Giải thuật lan truyền ngược 13 Baseline Dòng sở 18 Bounding box Hộp biên 23 Clustering Tách cụm 10 Connected component Phân tích thành phần liên thông 18 De-skew Khử độ nghiêng Desired response Đáp ứng mong muốn 11 Features of character Những đặc trưng ký tự 19 Feed-forward neutral network Mạng nơ – ron truyền thẳng 13 Find text lines and words Tìm dòng từ 18 Fundamental pattern Mẫu sở Fuzzy logic Logic mờ Gradient Độ dốc 14 Hidden layer Tầng ẩn 13 Hough transform Biến đổi Hough Input layer Tầng vào 13 JDK – java development kit Bộ phát triển Java 27 JNA, Tess4J, JOrtho Tên thư viện lập trình mã nguồn 29 mở sử dụng với Tesseract network algorithm analysis v Thuật ngữ, chữ viết tắt Ý nghĩa cụm từ Trang JRE – java realtime Môi trường thời gian thực Java 27 JVM – java virtual machine Máy ảo Java 27 Letter tracking Dính chập ký tự 21 Matching Đối sánh OCR-Optical character Nhận dạng ký tự quang học 15 Output layer Tầng 13 PSM - Page Segment Mode Chế độ phân đoạn trang 30 Parse number Phân tách số 19 Pattern Recognition Nhận dạng mẫu 10 Post-processing Hậu xử lý 31 Pre-processing Tiền xử lý Sharpening filter Bộ lọc tăng cường độ sắc nét Skewed document Văn nghiêng Smoothing filter Bộ lọc trơn mịn ảnh Static classifier Phân loại tĩnh 20 Tolerance Dung sai 11 Total square error Sai số bình phương toàn phần 13 environment recognition vi THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC MỞ ĐẦU Tính cấp thiết vấn đề nghiên cứu Ngày loại sách báo, tư liệu cần lưu trữ dạng văn số phổ biến Văn số có ưu điểm cập nhật, sửa chữa, trao đổi nhanh chóng so với văn in giấy truyền thống Mặt khác, qua thời gian chất lượng văn in giấy văn số không bị hỏng Từ đó, nảy sinh vấn đề làm cách để khôi phục lại thông tin sách báo dạng văn số để tái Đây nhiệm vụ thực tế nhiều lĩnh vực, chẳng hạn thư viện nhà xuất Có số cách khác để giải toán chuyển đổi Một biện pháp dễ thực nhập lại nội dung văn thông qua bàn phím Mặc dù vậy, công việc thủ công thao tác chế nên số lượng văn lớn nhiều thời gian dẫn tới nhiều sai sót Giải pháp khác tạo chương trình nhận dạng văn tự động Theo hướng này, sách báo máy quét lưu trữ dạng ảnh số, chương trình có chức nhận dạng ký tự từ, từ chuyển đổi thành văn số Tổng quan tình hình nghiên cứu thuộc lĩnh vực đề tài Hiện nay, có nhiều phần mềm nhận dạng ký tự chúng phát triển cho mục tiêu thương mại Tuy nhiên, thư viện mã nguồn mở viết C/C++ công bố rộng rãi Tesseract Dựa vào thư viện này, lập trình viên phát triển chúng thành ứng dụng nhận dạng ngôn ngữ khác Thư viện mở viết C/C++ nên biên dịch để chạy hệ điều hành khác Hơn nữa, người viết xây dựng liệu từ điển để nhận dạng ngôn ngữ riêng để ngày trở nên hoàn thiện Có ngôn ngữ tiếng Anh nghiên cứu cho kết nhận dạng văn chữ in gần hoàn hảo nhiều ngôn ngữ khác văn in chữ Việt hiệu chưa cao Mục tiêu, đối tượng, phạm vi nghiên cứu Trong nội dung đề tài nghiên cứu “Ứng dụng thư viện lập trình mã nguồn mở xây dựng chương trình nhận dạng văn chữ Việt, Anh từ ảnh số”, mục tiêu quan trọng áp dụng thư viện mã nguồn mở Tessaract tạo liệu từ điển tiếng THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC Việt tiếng Anh, từ khôi phục văn tiếng Anh Việt thông qua máy quét Mặt khác, nghiên cứu đề tài để nắm bắt giải thuật sở sử dụng để cài đặt thư viện mã nguồn mở giải thuật xử lý đối tượng ảnh, nhận dạng đối tượng dựa mạng nơ – ron Thực tế năm trước, sinh viên ngành Công Nghệ Thông Tin Đại học Hàng Hải tiếp cận tìm hiểu thư viện mã nguồn mở tiến hành thực luận văn tốt nghiệp Phương pháp nghiên cứu, kết cấu công trình nghiên cứu Nội dung báo cáo đề tài chia thành chương, chương giới thiệu kết nghiên cứu giải thuật sở áp dụng trình xây dựng thư viện nhận dạng mã nguồn mở Tesseract Chương trình bày tổng quan chức thư viện mã nguồn mở biên tập dùng đào tạo liệu Chương giới thiệu ngôn ngữ dùng xây dựng ứng dụng nhận dạng văn chữ in kết thử nghiệm có Kết đạt đề tài Nhìn chung, kết nghiên cứu đáp ứng yêu cầu đề tài đặt ban đầu hiểu giải thuật sở áp dụng thư viện mã nguồn mở, xây dựng từ điển nhận dạng văn chữ in cho tiếng Việt tiếng Anh, thu kết tương đối tốt Tuy nhiên, kết nghiên cứu có hạn chế định yếu tố thời gian, khả khai thác internet máy tính THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CHƯƠNG CƠ SỞ LÝ THUYẾT 1.1 Nhị phân hóa ảnh văn Trong thực tế, ảnh văn ban đầu ảnh chứa nhiều màu trắng đen Vì để thực trình phân tích nhận dạng, cần phải chuyển chúng thành ảnh nhị phân điểm ảnh biểu diễn giá trị 255 Đầu tiên, ảnh màu nhận vào chuyển thành ảnh xám với mức xám có giá trị từ đến 255 dựa ba giá trị red, green, blue ảnh đầu vào Phương trình chuyển đổi ảnh màu sang ảnh xám: greycolor = r * 0.299 + g * 0.587 + b * 0.114 Từ ảnh xám này, so sánh mức xám điểm với ngưỡng cho trước để định điểm 255, giá trị biểu diễn cho màu đen 255 biểu diễn cho màu trắng Một phương pháp giải thuật Otsu đề nghị để tìm ngưỡng thích hợp ảnh nhận vào Cho trước ảnh đa mức xám có L mức sáng, ký hiệu p(i) tần suất xuất mức sáng thứ i trọng số tần suất ω o (t) , ω1 (t) dựa theo ngưỡng t sau: t -1 ω (t) p(i) i 0 L-1 ω1 (t) p(i) it 1.1 t 1 μ (t) i.p(i) / ω o (t) i 0 L 1 μ1 (t) i.p(i) / ω1 (t) Các hàm thuộc: it L 1 μ (t) i.p(i) T i 0 Từ đó, suy liên hệ trọng số hàm thuộc: ωo (t) μ (t) ω1 (t) μ1 (t) μ T (t) ωo (t) ω1 (t) 2 Otsu định nghĩa giá trị: σ b (t) ωo (t) ω1 (t) (μ (t) - μ1 (t)) , 0 t L 1.2 1.3 1.4 Otsu cho ngưỡng thích hợp giá trị lớn số giá trị σ b (t) Như THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC đường biên ký tự tùy chọn noise cho phép ta làm nhiễu ảnh phù hợp với việc nhận diện văn nhiễu nhỏ loại bỏ Ví dụ sau cho ta thấy bước thực tạo tệp ảnh nhận dạng Tiến hành tạo ảnh chứa chữ in Việt cần huấn luyện: Văn bản: a A À ả Ả ã à Á Ạ ă Ă ằ Ằ ẳ Ẳ ẵ Ẵ ắ Ắ ặ Ặ â  ầ Ầ ẩ Ẩ ẫ Ẫ ấ Ấ ậẬbBcCdDđĐeEèÈẻẺẽẼéÉẹẸêÊềỀểỂễỄếẾệỆfFgGhHi IìÌỉỈĩĨíÍịỊjJkKlLmMnNoOòÒỏỎõÕóÓọỌôÔồỒổỔỗỖố ỐộỘơƠờỜởỞỡỠớỚợỢpPqQrRsStTuUùÙủỦũŨúÚụỤư ƯừỪửỬữỮứỨựỰvVwWxXyYỳỲỷỶỹỸýÝỵỴzZ123456 7890 Ngôn ngữ: Việt Phông chữ: Times New Roman, chữ nghiêng, cỡ chữ 35 Khử cưa: Không Có nhiễu: Không Có chồng lẫn ký tự: Không Độ rộng: 1024 điểm ảnh Độ cao: 400 điểm ảnh Nhấn nút Generate sau hoàn thành tùy chỉnh cần thiết Ta nhận thông báo cho biết tệp tiff box tạo lưu trữ đường dẫn thông báo Tìm đến đường dẫn thông báo thấy có tệp vie.timesnewromani.exp0.tif vie.timesnewromani.exp0.box, tệp liệu sử dụng bước sau trình huấn luyện Mỗi tệp box huấn luyện cho loại phông kiểu cỡ chữ, mặt khác kích thước ảnh bị giới hạn giới hạn nhớ khả lưu trữ định dạng tệp ảnh Do cần chia văn huấn luyện nhiều trang ảnh số, phân trang thực cách thay đổi số thứ tự tên tệp như: vie timesnewromani.exp1.box, vie timesnewromani.exp2.box, vie timesnewromani.exp1.tif, vie timesnewromani.exp2.tif … Đối với văn chữ tiếng Anh tệp có tiền tố eng.* 22 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC Nhấn vào nút Open để xem hình ảnh vừa tạo: Hình 2.9 Nhận dạng phác thảo ký tự Nếu thấy chưa thỏa đáng, trình biên tập cho phép nhóm (merge) hay chia (split) ký tự, thêm (insert) hay xóa (delete) ký tự liệu nhận dạng ảnh Sau hoàn thành việc chỉnh sửa nhấn Save để cập nhật tệp box Hộp biên (Bounding box) chứa tọa độ ký tự hình trên, tọa độ trái trên, độ rộng, độ cao tương ứng ảnh văn bản, liệu học từ điển Từ liệu hộp biên, biên tập gọi chương trình unicharset_extractor sinh mã unicode ký tự lưu tệp vie.unicharset thuộc tính ký tự chữ cái, chữ số, hoa, thường, ký tự ngăn cách câu từ… lưu tệp vie*.tr Muốn nhận dạng văn xác, Tesseract đề nghị nên sinh nhiều phông, kiểu chữ khác Số lượng từ đa dạng huấn luyện với nhiều phông chữ khác cho kết nhận dạng cải thiện tăng thích ứng với nhiều văn Tesseract không đòi hỏi tạo văn với nhiều cỡ chữ khác mẫu liệu nhận dạng khác kích thước với mẫu có điều chỉnh qua phép co giãn Cuối cùng, chép toàn tệp liệu tạo vào thư mục chứa tạo để tiến hành bước 23 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 2.3.2 Thiết lập tệp cấu hình huấn luyện Cần tối thiểu tệp cấu hình vie.font_properties, vie.frequent_words_list vie.words_list, chúng biên soạn trình notepad Tệp vie.font_properties Tệp khai báo kiểu phông chữ sử dụng cho liệu cần đào tạo tệp tiff tạo trước Tệp chứa nhiều dòng dòng chứa thông tin phông chữ: giá trị name Không chứa dấu cách trống italic bold 0: không 0: không 1: có 1: có fixed serif 0: không 0: không 1: có 1: có fraktur Bảng 2.1 Thuộc tính phông chữ Phông chữ courier new có thuộc tính fixed quy ước 1, khai báo: couriernewi 1 0 Trong phông chữ timesnewroman có thuộc tính serif, khai báo: timesnewromanb 1 Tệp vie.frequent_words_list Tệp khai báo danh sách từ thường gặp ngôn ngữ mà ta muốn nhận dạng, thông thường việc đòi hỏi thống kê quy mô lớn với tài liệu có số lượng trang nhiều Cấu trúc tệp bao gồm nhiều dòng dòng chứa từ Tệp vie.words_list Tệp khai báo danh sách toàn từ, nên sử dụng liệu từ điển để đưa danh sách Cũng giống frequent_word_list, words_list lưu liệu theo dòng, dòng có từ mã hóa theo định dạng UTF-8 2.3.3 Huấn luyện liệu Sau chuẩn bị xong tệp liệu trên, ta tiếp tục quy trình huấn luyện liệu Trước tiên, biên tập gọi chương trình shapeclustering, tiếp nhận liệu từ tệp *.tr huấn luyện cụm cách tạo tệp vie.shapetable Sau đó, chương trình mftraining sinh tệp vie.inttemp vie.pffmtable Những tệp chứa mẫu hình dạng ký tự đào tạo bảng số lượng đặc trưng kỳ vọng 24 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC ký tự Tương tự chương trình cntraining tạo tệp vie.normproto chứa mẫu ký tự chuẩn hóa Hình 2.10 Kết huấn luyện liệu Trên sở tệp liệu này, biên tập tiếp nhận danh sách từ khóa vie.frequent_words_list vie.words_list danh sách mã unicode để chương trình wordlist2dawg sinh tệp vie.freq-dawg vie.word-dawg Ngoài biên tập sinh số tệp nháp khác như: vie.config, vie.punc-dawg, vie.bigramdawg… Chương trình cuối combine_tessdata kết nối tệp vie.* trở thành tệp vie.traineddata tệp từ điển cho nhận dạng văn chữ in Việt Mặc dù vậy, toàn chức thực tự động với thao tác chọn nút Run cửa sổ ứng dụng jTessBoxEditor 25 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CHƯƠNG CHƯƠNG TRÌNH NHẬN DẠNG VĂN BẢN 3.1 Ngôn ngữ lập trình thư viện sử dụng Có nhiều ngôn ngữ lập trình viết chương trình nhận dạng văn bản, số Java Java có cú pháp tương đối giống với C# có khả thừa kế thư viện lập trình C/C++ Mặt khác, Java phù hợp môi trường mạng truyền thông viễn thông, sử dụng thư viện chuẩn Java để lập trình cho mạng Internet thiết bị di động Sau ta giới thiệu tóm tắt trình hình thành phát triển ngôn ngữ 3.1.1 Ngôn ngữ lập trình Java đề xuất nhóm tác giả Sun Microsystems, Inc vào năm 1991 Phải 18 tháng để nhóm tác giả phát triển xong phiên đầu tiên, ban đầu ngôn ngữ đặt tên sồi sau đổi thành tên gọi ngày Trước thời điểm giới thiệu Java vào năm 1995, mục tiêu nhóm tác giả xây dựng ngôn ngữ độc lập với tảng để nhúng thiết bị điện tử người tiêu dùng Ngôn ngữ C/C++ thiết kế cho biên dịch tảng cụ thể phải thích ứng với nhiều xử lý hệ điều hành khác chúng đắt tốn thời gian Hình 2.11 Ứng dụng Java chạy nhiều hệ điều hành 26 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC Giải pháp trường hợp thiết kế ngôn ngữ độc lập với thiết bị phần cứng hệ điều hành có chi phí tiết kiệm hơn, Java Cũng thời gian này, có nhân tố khác vai trò quan trọng tới tương lai sau Java hình thành Internet world wide web Java thừa kế nhiều đặc trưng C/C++ Java không ngôn ngữ C/C++ cho Internet Trái lại, có tính thực tiễn triết lý riêng bên cạnh ưu điểm cú pháp ngôn ngữ quán, logic, mạch lạc Hơn nữa, bên cạnh ràng buộc viết mã lệnh cho môi trường internet ngôn ngữ hỗ trợ khả tạo giao diện ứng dụng thông qua điều khiển để tối ưu mã lệnh Java không ngôn ngữ tồn tách biệt, cho phép tương tác với thư viện ngôn ngữ C/C++, kết tăng thêm sức mạnh cho ngôn ngữ Tổng kết, Java có ưu điểm khả hướng đối tượng, bảo mật, phù hợp môi trường di động, kiến trúc nơ – ron, có lực thi hành cao, tính phân phối Trong kiến trúc tảng, Java chứa hai phần mềm môi trường thời gian thực java (JRE) công cụ phát triển java (JDK) JRE phục vụ để chạy ứng dụng java applets JDK cho phép phát triển ứng dụng Java Một thành phần quan trọng JRE máy ảo java (JVM), hoạt động xử lý ảo, cho phép ứng dụng java chạy hệ thống cục Các ứng dụng Java đặt theo định dạng tập lệnh tối ưu hóa cao gọi byte – code để không phụ thuộc kiến trúc phần cứng, hệ điều hành… mà chúng cài đặt Ngày nay, đa số ngôn ngữ hỗ trợ biên dịch Java trì thông dịch nhằm thích ứng môi trường mạng Hình 2.12 Cơ chế thông dịch Java 27 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC Kiến trúc Java trước thực thông dịch chương trình byte – code thành native – code từ phiên trở đi, máy ảo Java tích hợp biên dịch Just In Time, biên dịch ứng dụng byte – code thành ứng dụng native – code cần nhằm tối ưu khả thực Các tệp chương trình nguồn phải dịch thành ứng dụng byte – code trước chạy, biên dịch cài đặt có JDK Đối với lập trình viên, hệ thống cần có JRE hợp lệ công cụ phát triển ứng dụng với ngôn ngữ Java Trên sở tảng Java, thành phần ứng dụng cho phép lập trình viên thiết kế chương trình mềm dẻo nhanh chóng, Java Beans Khi làm việc với Java Beans, phần lớn nhà phát triển sử dụng công cụ xây dựng ứng dụng cho phép cấu hình tập Beans, kết nối chúng, tạo thành chương trình Sau ưu điểm Java Beans: - Khả viết lần, chạy nơi - Công cụ xây dựng ứng dụng hỗ trợ điều khiển thuộc tính, kiện, phương thức, giúp lập trình viên giảm bớt trình viết mã - Phần mềm phụ trợ cung cấp để giúp cấu hình Bean Nó cần thiết thành phần có tham số “design-time” thiết lập Chẳng hạn biên tập hay tùy biến tạo môi trường riêng cho Bean - Sưu tập Bean cấu hình liên thông với nhau, để lưu trữ quán khôi phục sau cho trạng thái ứng dụng… Có hai công cụ để xây dựng ứng dụng Bean, loại thứ BeanBox, loại sau Bean Builder Những ứng dụng Bean phiên hay sử dụng công cụ Bean Builder 3.1.2 Những thư viện sử dụng Bên cạnh thư viện chuẩn ngôn ngữ, chương trình nhận dạng văn số sử dụng số thư viện khác JNA thư viện mã nguồn mở cộng đồng phát triển cung cấp khả truy cập dễ dàng vào thư viện chia sẻ , viết ngôn ngữ C/C++ mà không cần sử dụng giao diện Java địa Thiết kế JNA nhằm cung cấp khả truy cập địa cách tự nhiên không yêu cầu tạo đoạn mã kết nối 28 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC Thư viện JNA sử dụng thư viện giao diện chức để tự động gọi mã nguồn sở Giống cách truy nhập thư viện liên kết động, chức cho phép mã để tải thư viện theo tên lấy trỏ đến hàm thư viện sử dụng thư viện để gọi mà không cần tập tin tiêu để giai đoạn biên dịch Các nhà phát triển sử dụng giao diện Java để mô tả chức cấu trúc thư viện mục tiêu Điều làm cho dễ dàng để tận dụng lợi tính tảng địa mà không cần phát sinh chi phí việc cấu hình xây dựng mã JNI JNA xây dựng thử nghiệm nhiều hệ điều hành khác Mac, Windows, Windows Mobile, Android Nó tinh chỉnh biên dịch lại cấu hình để làm cho làm việc hầu hết tảng chạy Java Một thư viện khác Tess4J, chứa hàm lập trình Tesseract API Hiện tại, phát triển thử nghiệm với Java 32-bit Windows Linux Chức Tess4J cung cấp hàm cho phép nhận dạng ký tự quang học từ tệp ảnh số có định dạng TIFF, JPEG, GIF, PNG BMP, tài liệu PDF Cuối Jortho, thư viện mã nguồn mở kiểm tra tả tiếng Anh viết Java Từ điển dựa dự án từ điển Wikidictionary miễn phí cập nhật cho ngôn ngữ Thư viện làm việc với JTextComponent từ Swing framework; bao gồm JTextPane, JEditorPane JTextArea Các khả thư viện bao gồm: - Đánh dấu từ có khả sai tả Cung cấp menu ngữ cảnh với đề xuất cho dạng thức từ Menu ngữ cảnh với tùy chọn để thay đổi ngôn ngữ kiểm tra Hộp thoại để tiếp tục kiểm tra tả văn Người dùng tự định nghĩa từ điển từ (chức lựa chọn xuất hộp thoại kiểm tra liên tục) Dịch kiểm tra tả giao diện người dùng thấy nút nhãn ngôn ngữ địa Hàm API độc lập, không cần có máy chủ applet - Phát sai sót Bật tắt tính riêng biệt - 29 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 3.2 Chức chương trình Hình 2.13 Chức chương trình 3.2.1 Thu nhận ảnh Thông thường, ảnh văn thu nhận nhiều dạng bao gồm ảnh quét/chụp công cụ quang học (máy ảnh, máy quét, ), có ảnh tạo ứng dụng số trình biên tập hình ảnh (Photoshop, Corel Draw, ) hay ảnh chụp hình Vì chất lượng định dạng ảnh đầu vào khác từ tập tin PDF đến định dạng ảnh thông dụng khác JPG, PNG, BMP, đòi hỏi chúng phải đưa định dạng chung để tiện cho việc xử lý 3.2.2 Tiền xử lý Ảnh đầu vào ảnh chụp từ camera cần tiền xử lý chuyển đổi ảnh đen trắng Nếu ảnh từ máy quét chứa độ nghiêng phải khử nghiêng Mặt khác, ngôn ngữ Java cung cấp thư viện xử lý ảnh hỗ trợ nhiều lớp lọc ảnh tăng độ tương phản, trơn ảnh cải thiện chất lượng ảnh 3.2.3 Nhận dạng Tesseract phiên hỗ trợ chế độ nhận dạng văn ảnh số theo chế độ phân đoạn trang (PSM): - PSM_AUTO_ONLY: phân đoạn trang tự động - PSM_AUTO: phân đoạn trang tự động đầy đủ, hỗ trợ nhận dạng toàn văn - PSM_SINGLE_COLUMN: nhận dạng văn có cột với kích cỡ phông chữ khác - PSM_SINGLE_BLOCK: nhận dạng hình ảnh chứa khối văn chuẩn - PSM_SINGLE_LINE: nhận dạng hình ảnh văn chứa dòng - PSM_SINGLE_WORD: nhận dạng hình ảnh văn chứa từ 30 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC Tuy vậy, cần sử dụng số chế độ PSM_AUTO PSM_SINGLE_BLOCK , PSM_SINGLE_LINE, PSM_SINGLE_WORD Trong trường hợp, nên để thông số chế độ PSM_AUTO mặc định 3.2.4 Hậu xử lý Chức nhằm xử lý lỗi hay gặp, giả thiết có đoạn văn nhận dạng sau: “mOng khÔng sao” Ở ta nhận thấy ký tự ‘O’ từ “mong” ký tự ‘Ô’ từ “không” bị nhận dạng sai Nhận thấy ký tự bị nhầm lẫn ký tự in hoa kẹp ký tự viết thường nằm sau ký tự đầu từ Tương tự thế, giả thiết có đoạn văn nhận dạng sau: “HoA” Ở ta nhận thấy ký tự ‘A’ từ hoa bị nhận dạng sai Xâu ký tự có ký tự đầu viết hoa ký tự khác viết thường, ta tiến hành thay đơn giản cách đổi ký tự thường mẫu tìm Trong vài trường hợp, Tesseract thường dễ bị nhầm lẫn ký tự có cách viết giống nhau, số ‘11’ thay cụm từ ‘ll’, xâu ký tự “rr” thay ký tự ‘n’, ký tự ‘I’ thay số ‘1’, số ‘0’ thay ký tự ‘o’… điều phần khắc phục tập tin vie.DangAmbigs.txt người dùng huấn luyện: Khai báo ví dụ: 11 = ll rr = n I=1 Chương trình tự động tìm thay cụm ký tự văn nhận dạng với mẫu từ sửa chữa 3.2.5 Hiển thị lưu trữ Văn nhận dạng hiển thị cửa sổ chương trình, liệu lưu dạng txt theo chuẩn mã utf-8, sau biên tập trình soạn thảo nào, Microsoft Word 3.3 Giao diện chương trình Sau ứng dụng khởi động xong, giao diện bắt đầu hiển thị để người dùng tạo tác vụ nhận dạng văn 31 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC Giao diện chứa menu ngang dọc để truy cập nhanh tính chương trình khung làm việc chính: - Khung bên trái hiển thị hình ảnh - Khung bên phải chứa văn nhận dạng - Một khung panel phía hiển thị thông tin làm việc chương trình Một số kết thử nghiệm nhận dạng ảnh văn chữ in Việt, Anh: Hình 3.1 Giao diện chương trình Ảnh số We will study algorithms for solving many different types of problems in this book For example, in this chapter we will introduce algorithms for two of the most important problems in Kết computer science, searching for an element in a list and sorting a list so its elements are in some prescribed order, such as increasing, nhận decreasing, or alphabetic Later in the book we will develop dạng algorithms that find the greatest common divisor of two integers, that generate all the orderings of a finite set, that find the shortest path between nodes in a network, and for solving many other problems Bảng 3.1 Nhận dạng vùng văn 32 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC Ảnh số Kết nhận dạng Các mục tiêu an toàn bảo mật thông tin đạt đơn dựa vào thuật toán toán học giao thức, mà để đạt điều đòi hỏi cần có kỹ thuật mang tính thù tục tôn trọng điều luật Chẳng hạn bí mật thư tay phân phát lả thư có đóng dấu dịch vụ thư tin chấp nhận Bảng 3.2 Nhận dạng ảnh văn có góc nghiêng 10o: Ảnh số Kết nhận dạng Trao đổi khóa gồm có thỏa thuận khóa phân phối khóa; TA nơi thực việc phân phối, nơi quản lý khóa Thỏa thuận khóa nói chung không cần có tham gia TA xảy hệ bảo mật mà ta sử dụng hệ có khóa công khai, phân phối khóa xảy trường hợp sử dụng hệ khóa đối xứng hệ có khóa công khai Việc phân phối khóa với vai trò quân trị khóa TA việc bình thường, tồn lâu trước có hệ mật mã khóa công khai Ta bắt đầu với vài hệ phân phối khóa vậy, sau giới thiệu số hệ phân phối trao đổi khóa dùng sơ đồ an toàn bảo mật với khóa công khai Bảng 3.3 Nhận dạng ảnh văn với phông cỡ chữ khác 33 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC Ảnh số Kết nhận dạng Logic is the basis of all mathematical reasoning, and °f? all automated reasoning lt has practical applications to the design of computing machines, to the specification of systems, to artificial intelligence, to computer programming, to programming languages, and to other areas of computer science, as well as to many other fields of study Bảng 3.4 Nhận dạng ảnh văn có dòng cong 34 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC KẾT LUẬN I Đánh giá kết Sau thử nghiệm thư viện Tesseract để nhận dạng tập ảnh số văn chữ in tiếng Anh tiếng Việt, có nhận xét sau đây: Ưu điểm chương trình: - Bộ từ điển tiếng Anh có khả nhận dạng có độ xác cao văn chữ in tiếng Anh - Cho phép liệu nhận dạng huấn luyện, tạo từ điển riêng với có phông chữ phù hợp với văn nhận dạng cụ thể, trường hợp kết nhận dạng tương đối tốt - Nếu tạo từ điển tiếng Việt nhận dạng loại văn chữ in tiếng Việt theo số loại phông chữ phổ biến Times New Roman, Arial, Microsoft Sans Serif, Tahoma quét từ máy quét hiệu tạm - Nhận dạng ảnh văn chứa góc nghiêng dòng có độ cong nhỏ Nhược điểm chương trình: - Kết nhận dạng văn theo định dạng phông chữ Việt mắc nhiều lỗi, chủ yếu lỗi dấu… Hơn nữa, chương trình chưa nhận dạng xác văn chữ in tiếng Việt có cỡ chữ nhỏ 15 ảnh văn chất lượng thấp - Còn có lỗi xử lý nhận dạng liệu nhận dạng với khối liệu nhỏ từ tệp PDF - Tỷ lệ lỗi nhận dạng phụ thuộc kích thước văn Hướng phát triển đề tài II - Tăng cường khả xử lý đầu cho phép nhận dạng văn trộn bảng biểu hình ảnh - Một hạn chế kết nhận dạng lỗi từ số lượng từ học văn Nguyên nhân cải thiện tốc độ nhớ máy tính nâng cấp sau Hiện nay, từ điển tiếng Việt thử nghiệm khoảng 30 loại chữ khác nhau, cập nhật văn để đào tạo nâng cao chất lượng nhận dạng chữ in tiếng Việt - Nhận dạng văn từ tệp PDF 35 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC TÀI LIỆU THAM KHẢO [1] Rafael C.Gonzalez, “Digital Image Processing”, Prentice-Hall, 2005 [2] Tesseract OCR http://code.google.com/p/tesseract-ocr/ [3] Ray Smith, “An Overview of the Tesseract OCR Engine”, IEEE Computer Society, 2007 [4] Chirag Patel , Atul Patel , Dharmendra Patel , “Optical Character Recognition by Open Source OCR Tool Tesseract: A Case Study”, International Journal of Computer Applications, 2012 [5] Java Platform http://en.wikipedia.org [6] Herbert Schildt, "The Complete Reference Java 2”, Mc – Graw Hill, 2002 [7] Nhận dạng ký tự quang học http://en.wikipedia.org [8] Lương Xuân Mạnh, “Luận văn tốt nghiệp Đại Học”, ĐHHH, 2014 [9] Nguyễn Hữu Tuân, “Giáo trình An toàn bảo mật thông tin”, NXB ĐHHH, 2008 [10] Kenneth H.Rosen, “Discrete Mathematics and Its Applications”, Mc-Graw Hill, 2012 36 [...]... Bean phiên bản mới hay sử dụng công cụ Bean Builder 3.1.2 Những thư viện được sử dụng Bên cạnh các thư viện chuẩn của ngôn ngữ, chương trình nhận dạng văn bản số sử dụng một số thư viện khác JNA là một thư viện mã nguồn mở do cộng đồng phát triển cung cấp khả năng truy cập dễ dàng vào các thư viện chia sẻ , được viết bằng ngôn ngữ C/C++ mà không cần sử dụng các giao diện Java bản địa Thiết kế của JNA... phát hành như một thư viện mã nguồn mở Ngay sau đó 1 năm, Google chính thức tài trợ cho dự án này Kể từ thời điểm này, dự án thu hút nhiều sự quan tâm của các lập trình viên cho việc xây dựng các ứng dụng nhận dạng 16 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC 2.2.2 Chức năng của Tesseract Như trên đã giới thiệu, Tesseract là một thư viện mã nguồn mở để hỗ trợ xây dựng ứng dụng nhận dạng ký tự quang học... liệu gần giống với bản gốc bao gồm hình ảnh, các cột, bảng biểu, các thành phần không phải là văn bản Hình 2.1 Quy trình xử lý của một ứng dụng nhận dạng ký tự quang học 15 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC Đối với văn bản in chữ Việt, ứng dụng nhận dạng chữ Việt VnDOCR có khả năng nhận dạng trực tiếp các loại tài liệu được quét từ máy quét, không cần lưu trữ dưới dạng tệp ảnh trung gian Các trang... ảnh số, và do vậy ngưỡng của giải thuật Otsu được xem là ngưỡng thích nghi (Adaptive thresholding) 1.2 Cải thiện hình ảnh văn bản Mục tiêu của cải thiện ảnh số là những chức năng xử lý ảnh nâng chất lượng từ ảnh ban đầu và phù hợp với ứng dụng đặc trưng Đối với bài toán nhận dạng văn bản, ảnh số được tạo ra từ những trang văn bản với thiết bị quét không phải lúc nào cũng cho hình ảnh tốt nhất, vì văn. .. thích ứng (Adaptive classifier) dùng để nhận dạng các ký tự theo phông chữ chuẩn Bộ từ điển dùng để lưu trữ dữ liệu cho quá trình phân loại và nhận dạng Mỗi ngôn ngữ có một bộ từ điển chứa các ký tự theo các phông chữ khác nhau với thuộc tính như chuẩn – normal , đậm – bold, nghiêng – italic và thuộc tính kết hợp Từ điển cũng lưu trữ các từ hay sử dụng, từ chữ cái, từ số, từ chữ hoa, từ chữ thư ng... vie.bigramdawg… Chương trình cuối cùng là combine_tessdata sẽ kết nối các tệp vie.* trở thành tệp vie.traineddata là tệp từ điển cho nhận dạng văn bản chữ in Việt Mặc dù vậy, toàn bộ các chức năng trên được thực hiện tự động chỉ với một thao tác chọn nút Run trong cửa sổ ứng dụng jTessBoxEditor 25 THUYẾT MINH ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CHƯƠNG 3 CHƯƠNG TRÌNH NHẬN DẠNG VĂN BẢN 3.1 Ngôn ngữ lập trình và những thư viện. .. dạng hoàn hảo cho việc lưu trữ và khai thác tài liệu 2.2 Thư viện Tesseract Khác với những phần mềm vì mục tiêu thư ng mại, Tesseract là một thư viện – không phải là chương trình – nhận dạng ký tự quang học Nó có mã nguồn mở, được công khai dưới giấy phép Apache, phiên bản 2.0, và được phát triển dưới sự tài trợ của Google từ năm 2006 Tesseract được đánh giá là một trong số ít những thư viện nhận dạng. .. luyện Chạy bộ biên tập để sinh ảnh văn bản, giao diện chương trình được hiển thị như sau: Chọn ngôn ngữ Nhập văn bản từ tệp Tên tệp ảnh Khử răng cưa văn bản Độ nhiễu ảnh Chọn phông chữ Độ rộng, độ cao của bức ảnh Khoảng cách giữa 2 ký tự liền kề Tạo ảnh huấn luyện Hình 2.8 Các chức năng chính của bộ biên tập văn bản mẫu Muốn tạo một hình ảnh huấn luyện đầu tiên ta phải có văn bản huấn luyện, ngôn ngữ đào... tiếng Anh và tiếng Việt Phông chữ soạn thảo cho mọi ngôn ngữ được sử dụng là phông unicode vì nếu dùng những loại phông chữ khác có thể tạo ra lỗi nhận dạng mã ký tự chuẩn UTF-8 sau đó Cỡ chữ được Tesseract đề nghị nhỏ nhất là 15, nhưng với những phông chữ nhỏ thì chất lượng nhận dạng kém Do đó cần chọn cỡ chữ lớn hơn để tương đương với kích cỡ chữ qua máy quét văn bản Nếu như nhận dạng những văn bản. .. trữ dưới dạng tệp tin nhiều trang Kết quả nhận dạng được lưu trữ sang những định dạng khác nhau như *.txt hay *.doc ABBYY, một chương trình về lĩnh vực nhận dạng ký tự quang học đã được tiến hành nghiên cứu cho tiếng Việt từ tháng 4 năm 2009 Ứng dụng nhận dạng của ABBYY chấp nhận hầu hết các định dạng ảnh đầu vào như PDF, TIFF, JPEG, GIF, PNG, BMP Kết quả nhận dạng được lưu trữ dưới các định dạng MS