Ngày nay phương thức sử dụng văn bản giấy truyền thống đã dần được số hóa chuyển sang dạng các văn bản điện tử lưu trữ trên máy tính và được chia sẻ truyền tải trên mạng Cùng với sự phát triển của các giải pháp nhận dạng ký tự quang học OCR đã đặt ra cho người dùng trước lựa chọn tìm ra phương thức lưu trữ khai thác thông tin văn bản sẳn có một cách hiệu quả Với mong muốn tìm hiểu về lĩnh vực học máy áp dụng trong nhận dạng đặc biệt là nhận dạng ký tự quang học OCR luận văn tập trung nghiên cứu kỹ thuật học máy dựa trên hệ thống nhận dạng ký tự quang học OCR hiểu được các thuật toán nhận dạng ký tự quang học nắm được những điểm chính cần quan tâm giải quyết và đề xuất phần mềm ứng dụng để nhận dạng công văn trong các cơ quan Đảng tỉnh Quảng Bình
ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA - TRẦN TRUNG THÔNG ỨNG DỤNG HỌC MÁY TRONG NHẬN DẠNG CÔNG VĂN CÁC CƠ QUAN ĐẢNG TỈNH QUẢNG BÌNH LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Đà Nẵng - Năm 2019 ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA - TRẦN TRUNG THÔNG ỨNG DỤNG HỌC MÁY TRONG NHẬN DẠNG CÔNG VĂN CÁC CƠ QUAN ĐẢNG TỈNH QUẢNG BÌNH Chun ngành : Khoa học máy tính Mã số : 8480101 LUẬN VĂN THẠC SĨ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHẠM MINH TUẤN Đà Nẵng - Năm 2019 i LỜI CAM ĐOAN Tôi xin cam đoan cơng trình nghiên cứu riêng tơi - Những nội dung luận văn thực hướng dẫn trực tiếp Thầy TS Phạm Minh Tuấn - Các số liệu, kết nêu luận văn trung thực - Mọi tham khảo dùng luận văn trích dẫn rõ ràng trung thực tên tác giả, tên cơng trình, thời gian, địa điểm công bố - Mọi chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tơi xin chịu hồn tồn trách nhiệm Tác giả Trần Trung Thông ii LỜI CẢM ƠN Trước tiên, xin gởi lời cảm ơn chân thành sâu sắc tới Thầy giáo TS Phạm Minh Tuấn, người Thầy tận tình hướng dẫn, động viên giúp đỡ suốt thời gian nghiên cứu thực luận văn Tôi xin gửi lời cảm ơn tới Ban giám hiệu Trường Đại Học Bách Khoa - Đà Nẵng, Ban chủ nhiệm khoa Cơng nghệ thơng tin, Phịng Đào tạo sau đại học hai trường tạo điều kiện thuận lợi trình học tập, nghiên cứu hồn thành luận văn Tơi xin cảm ơn q Thầy giáo, Cơ giáo người tận tình hướng dẫn truyền đạt cho kiến thức quí báu năm nghiên cứu học tập Tơi xin gởi lời cảm ơn đến Văn phịng Tỉnh ủy Quảng Bình giúp đỡ tạo điều kiện tốt để tơi hồn thành luận văn Và để có kết ngày hơm nay, tơi biết ơn Gia đình động viên, khích lệ, tạo điều kiện thuận lợi suốt trình nghiên cứu, học tập trình thực đề tài luận văn tốt nghiệp Mặc dù có nhiều cố gắng, chắn luận văn không tránh khỏi thiếu sót định Tơi mong nhận ý kiến đóng góp quý báu Thầy Cô giáo bạn để luận văn ngày hồn thiện Một lần tơi xin chân thành cám ơn! Đà Nẵng, tháng năm 2019 Tác giả luận văn Trần Trung Thông iii MỤC LỤC MỞ ĐẦU 1 Lý chọn đề tài Mục đích nghiên cứu Ý nghĩa khoa học thực tiễn đề tài Mục tiêu nhiệm vụ Bố cục luận văn Chương 1- CƠ SỞ LÝ THUYẾT 1 Học máy 1.1.1 Tổng quan học máy 1.1.2 Các phương pháp học máy 1.1.3 Các ứng dụng học máy 1.2 Các phương pháp nhận dạng 1.2.1 Mơ hình Markov ẩn (HMM – Hidden Markov Model) 1.2.2 Máy véc-tơ hỗ trợ (SVM) 10 1.2.3 Phương pháp tiếp cận cấu trúc 12 1.2.4 Đối sánh mẫu 13 1.2.5 Mạng nơ ron 14 1.2.6 Nhận dạng ký tự quang học – OCR 16 1.3 Thư viện nhận dạng Tessract 17 1.3.1 Chức Tesseract 17 1.3.2 Kiến trúc giải thuật nhận dạng chữ in 18 1.3.3 Huấn luyện liệu nhận dạng với Tesseract 20 1.4 Thách thức hệ thống nhận dạng 25 1.5 Kết chương 25 Chương 2- XÂY DỰNG ỨNG DỤNG NHẬN DẠNG CÔNG VĂN 26 TRONG CÁC CƠ QUAN ĐẢNG TỈNH QUẢNG BÌNH 26 2.1 Xây dựng hệ thống 26 2.1.1 Giới thiệu toán 26 2.1.2 Phương pháp đề xuất 26 2.2 Quy trình xử lý nhận dạng 26 2.2.1 Tiền xử lý 26 2.2.2 Khối tách chữ 27 2.2.3 Trích chọn đặc trưng 28 2.2.4 Huấn luyện nhận dạng 28 2.2.5 Hậu xử lý 28 2.3 Bố cục văn thực tế quan Đảng tỉnh Quảng Bình 28 2.4 Hệ thống văn quan Đảng tỉnh Quảng Bình 31 2.4.1 Thể loại Nghị 31 2.4.2 Thể loại Công văn 31 2.4.3 Thể loại Chương trình 31 2.4.4 Thể loại Chỉ thị 32 iv 2.4.5 Thể loại Báo cáo 32 2.4.6 Thể loại Kết luận 32 2.4.7 Thể loại Kế hoạch 32 2.4.8 Thể loại Quyết định 33 2.4.9 Thể loại Quy định 33 2.4.10 Thể loại Thông báo 33 2.4.11 Thể loại Tờ trình 34 2.4.12 Thể loại Hướng dẫn 34 Chương 3- TRIỂN KHAI VÀ ĐÁNH GIÁ 35 3.1 Mô tả toán 35 3.1.1 Nhận văn đầu vào 36 3.1.2 Tiền xử lý 36 3.1.3 Nhận dạng 36 3.2 Môi trường thực nghiệm 37 3.2.1 Dữ liệu sử dụng 37 3.2.2 Giao diện chương trình 37 3.3 Đánh giá kết 38 3.3.1 Về cài đặt 38 3.3.2 Về thực nghiệm 39 KẾT LUẬN 40 Đã làm 40 Hướng phát triển 40 TÀI LIỆU THAM KHẢO 41 PHỤ LỤC 42 A.1 Chuyển đổi file ảnh, PDF định dạng crop ảnh theo tỉ lệ 42 A.2 Cấu hình Maven định nghĩa file pom.xml 43 A.3 Modul nhận dạng thể loại văn 43 v TÓM TẮT LUẬN VĂN ỨNG DỤNG HỌC MÁY TRONG NHẬN DẠNG CÔNG VĂN CÁC CƠ QUAN ĐẢNG TỈNH QUẢNG BÌNH Học viên: Trần Trung Thơng; Chun ngành: Khoa học máy tính Mã số: 8480101; Khóa: 35; Trường Đại học Bách khoa - ĐHĐN Tóm tắt: Ngày phương thức sử dụng văn giấy truyền thống dần số hóa, chuyển sang dạng văn điện tử lưu trữ máy tính chia sẻ, truyền tải mạng Cùng với phát triển giải pháp nhận dạng ký tự quang học OCR đặt cho người dùng trước lựa chọn tìm phương thức lưu trữ, khai thác thông tin văn sẳn có cách hiệu Với mong muốn tìm hiểu lĩnh vực học máy áp dụng nhận dạng, đặc biệt nhận dạng ký tự quang học OCR, luận văn tập trung nghiên cứu kỹ thuật học máy dựa hệ thống nhận dạng ký tự quang học OCR, hiểu thuật toán nhận dạng ký tự quang học, nắm điểm cần quan tâm giải đề xuất phần mềm ứng dụng để nhận dạng công văn quan Đảng tỉnh Quảng Bình Từ khóa: Hệ thống nhận dạng, nhận dạng ký tự quang học, nhận dạng công văn, học máy nhận dạng, OCR APPLICATION OF MACHINE LEARNING IN RECOGNITION OF OFFICIAL DOCUMENTS PARTY’S AGENCIES OF QUANG BINH PROVINCE Abstract: Today, the method of using traditional paper documents has gradually been digitized These documents have converted into electronic ones, stored on computers, shared and transmitted in the network Due to having many preeminent features, the number of electronic documents used in agencies has increased rapidly Therefore, the problem is how to find and exploit information from this abundant source of data Along with the development of technology, optical character recognition has created new technical solutions with a breakthrough in building electronic databases With a desire to learn about machine learning in recognition, especially OCR optical character recognition, the thesis focuses on studying machine learning methods, understanding the methods of recognition, studying about Tessract open source code tools to perform extraction of Vietnamese text from image files and propose application of software to recognise official documents in Party’s agencies of Quang Binh province Keywords: recognition method, optical character recognition, text filtering, machine learning in recognition, OCR vi DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT AI Artificial Intelligence HAC Hierarchial Agglomerative Clustering HMM Hidden Markov Model ICR Intelligent Character Recognition ML Machine learning OCR Optical Character Recognition PDA thiết bị nhập cho thiết bị hỗ trợ cá nhân SOM Self-Organizing Map SV Support Vector SVM Support Vector Machines VLSI Very-large-scale-intergrated vii DANH MỤC CÁC HÌNH Số hiệu hình vẽ Tên hình vẽ Trang 1.1 Supervised Learning Algorithms 1.2 Ảnh minh hoạ cho tập liệu chữ số viết tay 1.3 Unsupervised Learning Algorithms 1.4 Semi-Supervised Learning Algorithms 1.5 Mơ hình Markov ẩn 10 1.6 Biểu đồ chuyển tiếp trạng thái mơ hình Markov 10 1.7 Mơ hình máy véc-tơ hỗ trợ 12 1.8 Kiến trúc nhận dạng văn chữ in Tesseract 20 1.9 Đường sở hình cong 21 1.10 Cắt ký tự liền 21 1.11 Sơ đồ nhận dạng từ 22 1.12 Các đặc trưng ký tự nhận dạng 22 1.13 Sơ đồ đào tạo liệu Tesseract 23 1.14 Các chức biên tập văn mẫu 24 1.15 Nhận dạng phác thảo ký tự 25 1.16 Thuộc tính phơng chữ 26 1.17 Kết huấn luyện liệu 27 2.1 Quy trình xử lý ứng dụng nhận dạng ký tự quang học 29 2.2 Ví dụ vùng văn quan Đảng tỉnh 32 viii 2.3 Thể loại Nghị 33 2.4 Thể loại Công văn 33 2.5 Thể loại Chương trình 34 2.6 Thể loại Chỉ thị 34 2.7 Thể loại Báo cáo 34 2.8 Thể loại Kết luận 34 2.9 Thể loại Kế hoạch 35 2.10 Thể loại Quyết định 35 2.11 Thể loại Quy định 35 2.12 Thể loại Thông báo 36 2.13 Thể loại Tờ trình 36 2.14 Thể loại Hướng dẫn 36 2.15 Thể loại Quy chế 37 3.1 Mơ hình hoạt động 38 3.2 Giao diện chương trình nhận dạng 40 3.3 Giao diện chức 40 3.4 Giao diện chức kiểm tra kết nhận dạng 41 39 3.3.2 Về thực nghiệm Hệ thống cho phép nhận dạng dạng văn khác xác gần tuyệt đối, nhờ vào phương pháp nhận dạng quang học - OCR, điều có nghĩa liệu tập huấn luyện ngày bổ sung, nên kết nhận dạng cải thiện rõ ràng xác Những kết đạt đề tài sở tốt để xây dựng phần mềm nhận dạng văn hoàn chỉnh để giải vấn đề lưu trữ xử lý vản hành quan Đảng tỉnh Quảng Bình quan ban ngành khác Dưới kết thực nghiệm với tập liệu văn quan quan Đảng tỉnh Quảng Bình với hệ thống nhận dạng văn 20 văn thể loại Nhận dạng văn Thể loại TT Nhận dạng Nhận dạng sai Tỷ lệ Công văn 20 100% Báo cáo 20 100% Chỉ thị 19 95% Chương trình 19 95% Nghị 20 100% Quyết định 19 95% Kế hoạch 20 100% Thơng báo 20 100% Tờ trình 20 100% 10 Quy định 19 95% 11 Quy chế 20 100% 12 Hướng dẫn 20 100% 40 KẾT LUẬN Đã làm Bước đầu xây dựng mơ hình huấn luyện để nhận dạng văn quan Đảng tỉnh Quảng Bình, cách sử dụng phương pháp nhận dạng ký tự quang học –OCR, đặc biệt sử dụng thư viện Tessarect Xây dựng chương trình Demo Hệ thống nhận dạng văn quan Đảng tỉnh cho kết xác Kết q trình phụ thuộc nhiều vào trình thu thập liệu huấn luyện phát hiện, nhận dạng Sau thời gian nghiên cứu xử lý ảnh, học máy tìm hiểu số sở lý thuyết áp dụng vào hệ thống nhận dạng công văn quan Đảng tỉnh Hướng phát triển Những kết đạt đề tài sở để xây dựng phần mềm nhận dạng phân loại văn hoàn chỉnh dựa vào việc nhận dạng thể loại văn từ rút trích thơng tin cần thiết theo từng thể loại văn cụ thể để giải vấn đề lưu trữ xử lý vản hành quan 41 TÀI LIỆU THAM KHẢO [1] Simple Neural Network implementation in Ruby [2] Brownlee, Jason Understand Machine Learning Algorithms November 25, 2013 [3] https://vi.wikipedia.org/wiki/Mơ_hình_Markov_ẩn [Online] [4] https://ongxuanhong.wordpress.com/2015/09/19/support-vector-machine-svmhoi-gi-dap-nay/ [Online] [5] Trần, Hùng Cường 2013 Nhận dạng ký tự quang học Trường Đại học Cơng Nghiệp Hà Nội [6] Tìm hiểu mạng nơ ron nhân tạo cho toán nhận dạng Đồ án tốt nghiệp năm 2006 Đinh Thị Hương Lan, CT603, Trường đại học dân lập Hải Phòng [7] Kirill Safronov, 2007: Optical Character Recognition Using Optimisation Algorithms Institute for Process Control and Robotics (IPR) University of Karlsruhe Karlsruhe, Germany [8] Cha Sung-Hynk 2001 Use of Distance Measures in Handwriting Analysis Buffalo UB: New York [9] Jain, A 2000 Personal Identification Based on Handwriting IIT Kapur, April [10] Holst, A 1997 “The Use of Bayesian Nơ ron Network Model for Classification Tasks Department of Numerical Analysis and Computing Science Sweden [11] Jain, A K 1998 Texture Analysis East Lansing, MI 48824-1027 USA [12] MathNơronNetworks Ben Krose, faculty of Mathematics and computer science, university of Amsterdam And Patrick van der smagt, institute of robotics and system dynamics German aerospase Reseach establishment [13] Artificial Nơ ron Networks and Information theory, colin Fyfe, department of computing and information system, the university of Paisley [14] http://en.wikipedia.org/wiki/Non-linear [15] http://www.codeproject.com/ [16] Tesseract OCR http://code.google.com/p/tesseract-ocr/ [17] Ray Smith, “An Overview of the Tesseract OCR Engine”, IEEE Computer Society, 2007 42 PHỤ LỤC A Mã nguồn một số modul chương trình A.1 Chuyển đổi file ảnh, PDF một định dạng crop ảnh theo tỉ lệ public String preprocessImage() { try { java.util.logging.Logger.getLogger("org.apache.pdfbox").setLevel(ja va.util.logging.Level.OFF); String sourceDir = path; File sourceFile = new File(sourceDir); File destinationFile = new File(destionationDir); if (!destinationFile.exists()) { destinationFile.mkdir(); } if (sourceFile.exists()) { BufferedImage image; if(sourceDir.endsWith(".pdf")) { PDDocument document = PDDocument.load(sourceDir); @SuppressWarnings("unchecked") List list = document.getDocumentCatalog().getAllPages(); image = list.get(0).convertToImage(); document.close(); } else { image = ImageIO.read(sourceFile); } int width = image.getWidth(); int height = image.getHeight(); width /= 2; height /= 7; BufferedImage croppedImage = image.getSubimage(0, 0, width, height); File outputFile = null; while(true) { Random rand = new Random(); Integer imageId= rand.nextInt(10000000); String imagePath = destionationDir + "/" + String.valueOf(imageId) + "_crop.png"; outputFile = new File(imagePath); if(!outputFile.exists()) { break; } } ImageIO.write(croppedImage, "png", outputFile); return outputFile.getAbsolutePath(); } else { return null; } } catch (Exception e) { e.printStackTrace(); 43 return null; } } A.2 Cấu hình Maven định nghĩa file pom.xml junit junit 3.8.1 test net.sourceforge.tess4j tess4j 4.3.1 org.apache.pdfbox pdfbox 1.8.3 A.3 Modul nhận dạng thể loại văn private String[] types = { "NQ-Nghị qút", "TTr-Tờ trình", "TB-Thơng báo", "CTHD-Chương trình HĐ", "CT-Chỉ thị", "QĐ-Quyết định", "QĐi-Quy định", "CV-Công văn", "KH-Kế hoạch", "BC-Báo cáo", "KL-Kết luận" }; public String getType(String textInput) { String textList[] = textInput.split("\n"); textInput = ""; for(int i=1; i