Đăng ký Đăng nhập
Trang chủ Xây dựng mô hình nhận dạng chữ viết tay trong các biểu mẫu có bố cục cố định ...

Tài liệu Xây dựng mô hình nhận dạng chữ viết tay trong các biểu mẫu có bố cục cố định

.PDF
83
1
57

Mô tả:

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC XÂY DỰNG MÔ HÌNH NHẬN DẠNG CHỮ VIẾT TAY TRONG CÁC BIỂU MẪU CÓ BỐ CỤC CỐ ĐỊNH Ngành: KHOA HỌC MÁY TÍNH HỘI ĐỒNG: Khoa học Máy tính 5 GVHD: TS. Trần Tuấn Anh ThS. Trần Văn Nhàn KS. Phạm Văn Lĩnh GVPB: TS. Nguyễn Tiến Thịnh —o0o— SVTH: Nguyễn Thị Trúc Ly (1710187) TP. HỒ CHÍ MINH, THÁNG 07/2021 ĐẠI HỌC QUỐC GIA TP.HCM ---------TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA:KH & KT Máy tính_____ BỘ MÔN: KHMT____________ CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc NHIỆM VỤ LUẬN ÁN TỐT NGHIỆP Chú ý: Sinh viên phải dán tờ này vào trang nhất của bản thuyết trình HỌ VÀ TÊN: NGUYỄN THỊ TRÚC LY_________________MSSV: 1710187________ HỌ VÀ TÊN:_______________________________________MSSV:________________ HỌ VÀ TÊN:_______________________________________MSSV:________________ NGÀNH: Khoa Học Máy Tính___________________LỚP:_______________________ 1. Đầu đề luận án: XÂY DỰNG MÔ HÌNH NHẬN DẠNG CHỮ VIẾT TAY TRONG CÁC BIỂU MẪU CÓ BỐ CỤC CỐ ĐỊNH 2. Nhiệm vụ (yêu cầu về nội dung và số liệu ban đầu): - Nghiên cứu các mô hình nhận dạng chữ viết tay tiếng Việt. - Thu thập một bộ dữ liệu thực tế bao gồm gán nhãn, và tìm hiểu các tập dữ liệu đang có. - Xây dựng mô hình nhận dạng chử viết tay với đầu vào là ảnh vùng chữ viết tay bao gồm các phần hậu xử lý. - Thực hiện đánh giá trên các tập dữ liệu và đưa ra các phân tích. 3. Ngày giao nhiệm vụ luận án: 01/10/2020 4. Ngày hoàn thành nhiệm vụ: 31/07/2021 5. Họ tên giảng viên hướng dẫn: Phần hướng dẫn: 1) Trần Tuấn Anh – Tổng quan đề tài, tổ chức, dữ liệu 2) Trần Văn Nhàn – Giải thuật tổng quát, mô hình hóa bài toán 3) Phạm Văn Lĩnh – Mô hình cụ thể, gán nhãn dữ liệu Nội dung và yêu cầu LVTN đã được thông qua Bộ môn. Ngày ........ tháng ......... năm .......... CHỦ NHIỆM BỘ MÔN (Ký và ghi rõ họ tên) GIẢNG VIÊN HƯỚNG DẪN CHÍNH (Ký và ghi rõ họ tên) Trần Tuấn Anh PHẦN DÀNH CHO KHOA, BỘ MÔN: Người duyệt (chấm sơ bộ):_________________________ Đơn vị:_________________________________________ Ngày bảo vệ:____________________________________ Điểm tổng kết:___________________________________ Nơi lưu trữ luận án:_______________________________ TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KH & KT MÁY TÍNH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc ---------------------------Ngày 10 tháng 08 năm 2021 PHIẾU CHẤM BẢO VỆ LVTN (Dành cho người hướng dẫn/phản biện) 1. Họ và tên SV: NGUYỄN THỊ TRÚC LY MSSV: 1710187 Ngành (chuyên ngành): Khoa học Máy Tính 2. Đề tài: XÂY DỰNG MÔ HÌNH NHẬN DẠNG CHỮ VIẾT TAY TRONG CÁC BIỂU MẪU CÓ BỐ CỤC CỐ ĐỊNH 3. Họ tên người hướng dẫn: Trần Tuấn Anh, Trần Văn Nhàn, Phạm Văn Lĩnh 4. Tổng quát về bản thuyết minh: Số trang: Số chương: Số bảng số liệu Số hình vẽ: Số tài liệu tham khảo: Phần mềm tính toán: Hiện vật (sản phẩm) 5. Tổng quát về các bản vẽ: - Số bản vẽ: Bản A1: Bản A2: Khổ khác: - Số bản vẽ vẽ tay Số bản vẽ trên máy tính: 6. Những ưu điểm chính của LVTN: - Luận văn trình bày phương pháp nhận dạng chữ viết tay tiếng Việt trong ảnh tài liệu. Đầu vào là vùng văn bản có chứa chữ viết tay và đầu ra là nội dung củ chữ viết. - Tác giả cũng xây dựng mộ demo hỗ trợ trực quan và án nhãn - Tác giả đã thu thập nhiều dạng dữ liệu khác nhau đồng thời tự xây dựng một tập dữ liệu dựa trên data bưu chính. - Tác giả đã thực hiện nhiều phương pháp khác nhau, thí nghiệm và đưa ra nhiều phương pháp so sánh. Kết quả của luân văn chứng tỏ được độ chính xác tốt so với các sản phẩm thực tế hiện nay - Tác giả cũng đã thực hiện mở rộng nghiên cứu sang các lĩnh vực hậu xử lý và nhận dạng vùng. - Dự kiến kết quả sẽ được thử nghiệm ở mức công nghiệp trong thời gian tới với những cải tiến về mặt thời gian xử lý. 7. Những thiếu sót chính của LVTN: - Có thể tiến hành thu thập dữ liệu ở mức cao hơn, rộng hơn, sử dụng kết quả đang có để hỗ trợ gán nhãn - Thời gian xử lý cần cải thiện để phù hợp với thực tế 8. Đề nghị: Được bảo vệ  Bổ sung thêm để bảo vệ  9. 3 câu hỏi SV phải trả lời trước Hội đồng: a. Thứ tự ưu tiên các công việc trong tương lai là gì, và lý do. Không được bảo vệ  c. 10. Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm : 9.4/10 Ký tên (ghi rõ họ tên) Trần Tuấn Anh TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA KH & KT MÁY TÍNH CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự do - Hạnh phúc ---------------------------Ngày 11 tháng 08 năm 2021 PHIẾU CHẤM BẢO VỆ LVTN (Dành cho người hướng dẫn/phản biện) 1. Họ và tên SV: Nguyễn Thị Trúc Ly MSSV: 1710187 Ngành (chuyên ngành): Khoa học Máy tính 2. Đề tài: Xây dựng mô hình nhận dạng chữ viết tay trong các biểu mẫu có bố cục cố định 3. Họ tên người hướng dẫn/phản biện: Nguyễn Tiến Thịnh 4. Tổng quát về bản thuyết minh: Số trang: Số chương: Số bảng số liệu Số hình vẽ: Số tài liệu tham khảo: Phần mềm tính toán: Hiện vật (sản phẩm) 5. Tổng quát về các bản vẽ: - Số bản vẽ: Bản A1: Bản A2: Khổ khác: - Số bản vẽ vẽ tay Số bản vẽ trên máy tính: 6. Những ưu điểm chính của LVTN: - Luận văn bố cục rõ ràng, phong phú về mặt nội dung, dễ hiểu và mạch lạc. Hầu như không có lỗi chính tả hoặc rất ít. - Sinh viên đã xây dựng và đề xuất được một mô hình học sâu nhận dạng chữ viết tay tiếng Việt trong các biểu mẫu có bố cục cố định mà cụ thể là các phiếu gửi của Viettel post với kết quả thu được khá tốt dựa trên khung mô hình seq2seq với khối LSTM được thay bằng khối Transformer. - Đánh giá, biện luận mô hình rất chi tiết chứng tỏ sự am hiểu của sinh viên trong bài toán và mô hình. - Nhiều hình ảnh minh họa cùng các đánh giá so sánh chi tiết giữa các mô hình xử lý bài toán liên quan. 7. Những thiếu sót chính của LVTN: - Một số lỗi đánh máy và công thức toán chưa được chuẩn mực; thiếu các dấu phẩy hoặc chấm trong một số công thức như công thức 4.9 trang 54. - Phần ứng dụng còn khá ngắn, phần hình ảnh nên nhỏ lại và các dòng kết quả nên lớn hơn để người sử dụng dễ đọc như trong hình 6.2 trang 75. - Tài liệu tham khảo nên trình bày theo một thứ tự alphabet nào đó. Một số papers đã được published nhưng vẫn chưa cập nhật, cần cập nhật lại cho phù hợp. 8. Đề nghị: Được bảo vệ  Bổ sung thêm để bảo vệ  Không được bảo vệ  9. 3 câu hỏi SV phải trả lời trước Hội đồng: a. Có thể nêu vài lý do giải thích vì sao mô hình Transformer tốt hơn hẳn so với mô hình Seq2Seq và CRNN khi được thử nghiệm trên tập VNONDB-line và không tốt hơn nhiều khi thử nghiệm trên tập VNONDB0-word không? b. Trang 70 có đề cập đến kết quả mô hình đề xuất cao hơn 24% so với mô hình CRNN kết hợp cơ chế Attention đề xuất bởi đội vô địch cuộc thi do Cinnamon tổ chức, cao hơn 24% ở đây có nghĩa cụ thể như thế nào? Giải thích. c. Các trường hợp sai của mô hình Transformer cho bởi hình 5.9 có xảy ra đối với các mô hình đối sánh Seq2Seq không? Có thể nào cho một vài ví dụ minh họa? 10. Đánh giá chung (bằng chữ: giỏi, khá, TB): giỏi Điểm : 9,5/10 Ký tên (ghi rõ họ tên) Nguyễn Tiến Thịnh LỜI CAM ĐOAN Chúng tôi xin cam đoan đây là công trình nghiên cứu của riêng chúng tôi dưới sự hướng dẫn của TS. Trần Tuấn Anh. Nội dung nghiên cứu và các kết quả đều là trung thực và chưa từng được công bố trước đây. Các số liệu được sử dụng cho quá trình phân tích, nhận xét được chính chúng tôi thu thập từ nhiều nguồn khác nhau và sẽ được ghi rõ trong phần tài liệu tham khảo. Ngoài ra, chúng tôi cũng có sử dụng một số nhận xét, đánh giá và số liệu của các tác giả, cơ quan tổ chức khác. Tất cả đều có trích dẫn và chú thích nguồn gốc. Nếu phát hiện có bất kì sự gian lận nào, chúng tôi xin hoàn toàn chịu trách nhiệm về nội dung luận văn tốt nghiệp của mình. Trường Đại học Bách Khoa - Đại học Quốc gia TP. HCM không liên quan đến những vi phạm tác quyền, bản quyền do chúng tôi gây ra trong quá trình thực hiện. LỜI CẢM ƠN Đầu tiên, tôi xin bày tỏ lòng biết ơn và lời cảm ơn sâu sắc nhất đến người hướng dẫn trực tiếp của tôi là Thầy Trần Tuấn Anh, người đã giúp tôi thấy rõ hơn về hướng đi của mình. Thầy là người truyền cảm hứng, động viên, tạo cơ hội giúp tôi tiến bộ hơn trên con đường học tập và sự nghiệp bằng sự kiên nhẫn, nhiệt tình và kiến thức chuyên môn sâu rộng của Thầy. Chính sự dìu dắt, hướng dẫn tận tình của Thầy đã giúp tôi có nền tảng vững vàng hơn về kiến thức và có niềm tin hơn vào bản thân mình, là cơ sở để tôi có thể chinh phục nhiều mục tiêu khác trong cuộc sống. Bên cạnh đó, tôi cũng muốn gửi một lời cảm ơn chân thành đến các thầy cô trường Đại học Bách Khoa - Đại học Quốc gia TP. HCM nói chung và các thầy cô trong khoa Khoa học & Kỹ thuật Máy tính nói riêng, những người đã truyền đạt cho tôi nhiều kiến thức quý giá trong chặng đường bốn năm đại học vừa qua. Bách Khoa đã tạo cho tôi một môi trường vô cùng tốt để học tập và phát triển. Tôi cũng xin gửi lời cảm ơn đến tất cả những thành viên trong Câu lạc bộ Giải thuật Bách Khoa, những người anh, người bạn và người em. Tại đây, tôi không chỉ học thêm nhiều về kiến thức chuyên môn, mà còn được duy trì sở thích của mình, được tham gia nhiều hoạt động ý nghĩa, xây dựng cho mình thêm nhiều kỹ năng và học cách giải quyết các vấn đề khác trong cuộc sống. Ngoài ra, tôi cũng muốn gửi một lời cảm ơn chân thành đến Trung Tâm Không Gian Mạng Viettel - VTCC, nơi tôi đang thực tập. Nơi đây tôi được học tập và làm việc cùng những con người tài giỏi, một môi trường làm việc năng động và tuyệt vời. Mọi người tại đây cũng đã hỗ trợ tôi rất nhiệt tình trong suốt quá trình làm luận văn. Đặc biệt, tôi xin gửi lời cảm ơn đến anh Phạm Văn Lĩnh, anh Lý Lĩnh Lợi và bạn Hồ Sỹ Tuyến, mọi người đã luôn động viên và cho tôi những lời khuyên, những lời góp ý vô cùng hữu ích trong suốt quá trình thực hiện luận văn của mình. Cuối cùng nhưng không kém phần quan trọng, tôi xin gửi lời cảm ơn đến gia đình, nơi đã tiếp thêm cho tôi sức mạnh tinh thần và là chỗ dựa vững vàng nhất cho tôi. Cảm ơn cô Lương Thanh Thủy cùng với các cô chú cựu học sinh trường THPT Chuyên Thoại Ngọc Hầu đã hỗ trợ cho tôi trong suốt quãng đường đại học để tôi có thể yên tâm hoàn thành con đường học vấn của mình một cách trọn vẹn nhất. Và vẫn không quên cảm ơn “bạn” - người đã sát cánh bên tôi trong gần bốn năm đại học này. TÓM TẮT NỘI DUNG Chữ viết là một phát minh quan trọng của loài người và nó đã đi theo chúng ta hàng ngàn năm lịch sử. Thông tin ngữ nghĩa chứa đựng trong chữ viết là cần thiết trong nhiều ứng dụng của các bài toán về thị giác máy tính. Ngày nay, với sự phát triển của công nghệ trí tuệ nhân tạo và dữ liệu lớn, bài toán số hóa dữ liệu trở nên phổ biến và xuất hiện ở khắp mọi nơi. Bên cạnh sự phổ biến của nhận dạng ký tự quang học đối với chữ in, thì chữ viết tay cũng chiếm một phần không nhỏ trong các bài toán về số hóa dữ liệu văn bản. Đặc biệt đối với các văn bản về thư từ, biên lai hay biểu mẫu. Từ nhu cầu thiết yếu đó, chúng tôi đã tiến hành nghiên cứu xây dựng mô hình nhận dạng kí tự quang học (Optical Character Recognition - OCR). Cụ thể hơn là mô hình nhận dạng chữ viết tay tiếng Việt trong các biểu mẫu có bố cục cố định. Biểu mẫu chính được chúng tôi sử dụng trong luận văn này là phiếu gửi của Viettel post. Chúng tôi đã thu thập dữ liệu Viettel post, đồng thời tiến hành gán nhãn tạo ra một tập dữ liệu chữ viết tay tiếng Việt mới đa dạng về nét chữ và phông nền (background). Về phương pháp nhận dạng chữ viết tay tiếng Việt, bên cạnh những cách truyền thống phổ biến như Hidden Markov Model (HMM), Convolutional Recurrent Neural Network (CRNN), Sequence to Sequence (Seq2Seq), Attention-based Seq2Seq, chúng tôi đã đề xuất thay khối Transformer cho khối Long Short-Term Memory (LSTM) trong mô hình Attention-based Seq2Seq và đạt được kết quả khả quan cho bài toán nhận dạng chữ viết tay tiếng Việt (sẽ được trình bày cụ thể trong luận văn). Bên cạnh đó, chúng tôi đã thực hiện hậu xử lý (post-processing) đối với một số trường dữ liệu để đạt được kết quả như mong muốn. Ngoài ra, chúng tôi cũng đã xây dựng một ứng dụng máy tính đơn giản để trực quan hóa kết quả nhận dạng của mô hình. MỤC LỤC 1 Giới thiệu 1.1 Đặt vấn đề . . . . . . . . . . . . . . . 1.1.1 Trong thực tiễn . . . . . . . . 1.1.2 Trong nghiên cứu . . . . . . . 1.2 Phạm vi và mục tiêu nghiên cứu . . . 1.2.1 Quy trình cơ bản của hệ thống 1.2.2 Nhận dạng chữ viết tay . . . . 1.3 Thách thức . . . . . . . . . . . . . . . 1.4 Cấu trúc luận văn . . . . . . . . . . . . . . . . . . . . . . . trích . . . . . . . . . 2 Kiến thức nền tảng 2.1 Mô hình học sâu . . . . . . . . . . . . . . . 2.1.1 Giới thiệu . . . . . . . . . . . . . . . 2.1.2 Mô hình học sâu lan truyền thuận . 2.2 Mạng neuron tích chập . . . . . . . . . . . 2.3 Mạng neuron hồi quy . . . . . . . . . . . . 2.3.1 Mạng neuron hồi quy thông thường 2.3.2 Long Short-Term Memory . . . . . 2.4 Thư viện và công cụ . . . . . . . . . . . . . 2.4.1 PyTorch . . . . . . . . . . . . . . . . 2.4.2 PyQt5 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xuất . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . thông tin . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Các công trình liên quan 3.1 Mô hình Markov ẩn . . . . . . . . . . . . . . . . . 3.2 Bộ phân loại kết nối theo thời gian . . . . . . . . . 3.2.1 Phân loại theo thời gian . . . . . . . . . . . 3.2.2 Chuyển dữ liệu dạng ảnh sang chuỗi . . . . 3.3 Mô hình Convolutional Recurrent Neural Network i . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 1 2 4 4 5 6 10 . . . . . . . . . . 11 11 11 12 16 20 22 22 25 25 26 . . . . . 27 27 29 30 30 31 3.4 3.5 3.6 3.3.1 Tổng quan mô hình . . . . . . . . . . . . . . . . . . . . . . . . . 3.3.2 Ưu điểm và nhược điểm . . . . . . . . . . . . . . . . . . . . . . . Mô hình chuỗi sang chuỗi . . . . . . . . . . . . . . . . . . . . . . . . . . Mô hình chuỗi sang chuỗi áp dụng cơ chế tập trung . . . . . . . . . . . 3.5.1 Kiến trúc chung của mô hình . . . . . . . . . . . . . . . . . . . . 3.5.2 Cơ chế tập trung . . . . . . . . . . . . . . . . . . . . . . . . . . . Nhận xét . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.6.1 Hạn chế của cách tiếp cận sử dụng CTC . . . . . . . . . . . . . 3.6.2 Hạn chế của cách tiếp cận theo mô hình Attention-based Seq2Seq 4 Hướng tiếp cận 4.1 Phương pháp đề xuất sử dụng . . . . . . . . . . . 4.1.1 Điểm cốt lõi của phương pháp . . . . . . . 4.1.2 Mô hình Transformer . . . . . . . . . . . . 4.1.2.1 Cơ chế tự tập trung . . . . . . . . 4.1.2.2 Cơ chế tự tập trung đa đầu . . . 4.1.2.3 Masked Attention . . . . . . . . . 4.1.2.4 Bộ mã hóa . . . . . . . . . . . . . 4.1.2.5 Bộ giải mã . . . . . . . . . . . . . 4.1.2.6 Tổng kết về mô hình Transformer 4.2 Chi tiết kiến trúc mô hình tổng quát . . . . . . . . 4.2.1 CNN Embedding . . . . . . . . . . . . . . . 4.2.2 Mã hóa vị trí . . . . . . . . . . . . . . . . . 4.2.3 Mạng lan truyền thuận theo vị trí . . . . . 4.2.4 Lớp add và norm . . . . . . . . . . . . . . . 4.2.5 Hàm mất mát và optimizer . . . . . . . . . 4.2.6 Label smoothing . . . . . . . . . . . . . . . 4.2.7 Giải mã ký tự . . . . . . . . . . . . . . . . 4.3 Quá trình huấn luyện và kiểm tra mô hình . . . . 4.3.1 Huấn luyện . . . . . . . . . . . . . . . . . . 4.3.2 Kiểm tra . . . . . . . . . . . . . . . . . . . 4.4 Hậu xử lý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Thí nghiệm 5.1 Phương pháp đánh giá . . . . . . . . . . . . . . . . . . . . 5.1.1 Tỉ lệ lỗi từ . . . . . . . . . . . . . . . . . . . . . . 5.1.2 Tỉ lệ lỗi ký tự . . . . . . . . . . . . . . . . . . . . 5.2 Tập dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . . 5.2.1 Tập dữ liệu tiếng Việt HANDS-VNOnDB2018 . . 5.2.2 Tập dữ liệu chữ viết tay tiếng Việt của Cinnamon 5.2.3 Tập dữ liệu phiếu gửi Viettel post . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 34 35 36 36 37 39 39 39 . . . . . . . . . . . . . . . . . . . . . 40 40 40 42 42 44 45 45 46 46 47 47 47 48 48 48 49 49 50 50 50 51 . . . . . . . 52 52 53 53 54 54 56 57 5.3 Kết quả thí nghiệm 5.3.1 Kết quả trên 5.3.2 Kết quả trên 5.3.3 Kết quả trên 6 Ứng dụng . . tập tập tập . . dữ dữ dữ . . . . . . . . . . liệu VNOnDB . liệu Cinnamon . liệu Viettel post . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 60 60 61 62 64 7 Tổng kết 66 7.1 Kết quả đạt được . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66 7.2 Hạn chế . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67 7.3 Hướng phát triển trong tương lai . . . . . . . . . . . . . . . . . . . . . . 67 A Kế hoạch luận văn 68 DANH SÁCH BẢNG 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 5.10 Thống kê trên tập dữ liệu VNOnDB-line . . . . . . . . . . . . . . . . . Thống kê trên tập dữ liệu VNOnDB-word . . . . . . . . . . . . . . . . . Thống kê trên tập dữ liệu của Cinnamon . . . . . . . . . . . . . . . . . Các loại nhãn được sử dụng trong quá trình gán nhãn ngữ nghĩa textline. Thống kê số lượng biểu mẫu trên tập dữ liệu Viettel post . . . . . . . . Thống kê số lượng textline trên tập dữ liệu Viettel post . . . . . . . . . Một số thử nghiệm được thực hiện trên tập dữ liệu VNONDB-word . . Một số thử nghiệm được thực hiện trên tập dữ liệu VNONDB-line . . . Kết quả thử nghiệm của mô hình Transformer trên dữ liệu Cinnamon . Kết quả của mô hình Transformer trên dữ liệu Viettel post . . . . . . . iv 55 55 56 58 58 58 60 61 61 62 DANH SÁCH HÌNH VẼ 1.1 1.2 1.3 1.4 1.5 1.6 Ví dụ về số hóa văn bản viết tay . . . . . . . . . . . Nhận dạng chữ viết tay kết hợp mô hình ngôn ngữ . Minh họa nhận dạng ở mức độ từ . . . . . . . . . . Minh họa nhận dạng ở mức độ dòng . . . . . . . . . Từ “đặng” bằng chữ viết tay (trái) và chữ in (phải) Từ “người” bằng chữ viết tay (trái) và chữ in (phải) . . . . . . . . . . . . 2 3 5 6 7 7 2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8 2.9 2.10 2.11 2.12 2.13 2.14 2.15 Cấu tạo của một neuron thần kinh . . . . . . . . . . . . . . . . . . . . Ví dụ về đạo hàm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Mô hình hồi quy luận lý và mô hình học sâu lan truyền thuận . . . . Các hàm kích hoạt thông dụng . . . . . . . . . . . . . . . . . . . . . . So sánh cơ chế kết nối đầy đủ, cục bộ và cục bộ chia sẻ trọng số . . . Mô hình tổng quát của mạng neuron tích chập . . . . . . . . . . . . . Trực quan hóa phép toán tích chập . . . . . . . . . . . . . . . . . . . Trực quan hóa phép toán tích chập trên tensor . . . . . . . . . . . . . Ví dụ minh họa gộp cực đại và gộp trung bình . . . . . . . . . . . . . So sánh các lớp chuẩn hóa thường dùng trong mạng neuron tích chập Ví dụ cắt ảnh trong RNN . . . . . . . . . . . . . . . . . . . . . . . . . Sơ đồ tính toán đơn giản của một RNN . . . . . . . . . . . . . . . . . Một cell LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Logo PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Logo PyQt . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 13 14 15 16 17 18 18 19 20 20 21 24 26 26 3.1 3.2 3.3 3.4 3.5 3.6 Mô hình Markov ẩn . . . . . . . . . . . . . . . . Mô hình nhận dạng chữ viết tay sử dụng CTC . Vấn đề alignment trong nhận dạng chữ viết tay Diagonal-wise MDRNN . . . . . . . . . . . . . . Kiến trúc mạng CRNN . . . . . . . . . . . . . . Vector trong CRNN . . . . . . . . . . . . . . . . . . . . . . 28 29 30 31 32 32 v . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3.7 3.8 3.9 3.10 Cấu trúc của một đơn vị LSTM . . . . . . . . . . . . . Mô hình Seq2Seq . . . . . . . . . . . . . . . . . . . . . . Kiến trúc chung của mô hình Attention-based Seq2Seq Cơ chế tập trung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 35 37 38 4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8 4.9 4.10 4.11 4.12 4.13 So sánh mô hình Transformer và LSTM. . . . . . . . . . Kiến trúc chung của mô hình Transformer . . . . . . . . Biểu diễn toán học của cơ chế Self-attention . . . . . . . Multi-head Attention . . . . . . . . . . . . . . . . . . . . Minh họa một multi-head self-attention gồm có hai đầu . Attention mask . . . . . . . . . . . . . . . . . . . . . . . . So sánh self-attention với masked self-attention . . . . . . Khối encoder của mô hình Transformer . . . . . . . . . . Khối decoder của mô hình Transformer . . . . . . . . . . Ví dụ về trích xuất đặc trưng . . . . . . . . . . . . . . . . Tổng quan quá trình huấn luyện của mô hình . . . . . . . Tổng quan quá trình kiểm tra của mô hình . . . . . . . . Một số trường hợp trước và sau khi thực hiện hậu xử lý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 42 43 44 44 45 45 46 46 47 50 50 51 5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8 5.9 Ví dụ về ảnh trong tập dữ liệu VNOnDB . . . . . . . . . . Ví dụ về mẫu dự liệu Cinnamon trong tập huấn luyện . . . Ví dụ về mẫu dự liệu Cinnamon trong kiểm tra . . . . . . Mẫu gán nhãn phiếu gửi Viettel post . . . . . . . . . . . . Các textline sau khi được cắt từ mẫu tài liệu ban đầu . . . Một số dữ liệu dòng từ Viettel post . . . . . . . . . . . . . Visualize kết quả của Transformer trong quá trình dự đoán Một số trường hợp đúng của mô hình Transformer . . . . . Một số trường hợp sai của mô hình Transformer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 56 56 57 59 59 62 63 63 6.1 6.2 Demo trên một dòng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Demo trên nhiều dòng . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65 65 A.1 Kế hoạch thực hiện luận văn. . . . . . . . . . . . . . . . . . . . . . . . . 68 CHƯƠNG 1 GIỚI THIỆU 1.1 1.1.1 Đặt vấn đề Trong thực tiễn Trong thời đại cách mạng công nghiệp 4.0 hiện nay, nhu cầu tự động hóa quá trình quản lý là một trong những yếu tố chính ảnh hưởng đến tốc độ phát triển của một quốc gia. Chính vì thế, việc xây dựng một hệ thống tự động thu thập và số hóa thông tin người dùng là một bài toán thực sự cần thiết và hữu ích. Theo truyền thống, quá trình số hóa dữ liệu là một công việc khá “rườm rà”, tốn nhiều tài nguyên, thời gian và công sức của con người. Đầu tiên, người dùng phải điền thông tin của họ vào một biểu mẫu bằng tay. Tiếp theo, thông tin của mỗi trường trong biểu mẫu được nhân viên gõ thủ công vào máy tính. Có thể thấy, đây được xem là một giai đoạn vô cùng nhàm chán, đồng thời cũng dễ xảy ra sai sót trong quá trình nhập liệu. Hơn nữa, việc nhập liệu này phải lặp đi lặp lại rất nhiều lần với cùng số lượng biểu mẫu lớn. Ngày nay, một số công ty và đơn vị đã chuyển các hình thức giấy tờ sang biểu mẫu kỹ thuật số, tại đó khách hàng và nhân viên có thể nhập trực tiếp thông tin của mình lên đó mà không cần phải dùng đến bút. Tuy nhiên, một số nơi khác vẫn giữ cách truyền thống, yêu cầu khách hàng của họ phải viết tay vì nhiều lý do riêng. Một trong số đó được dùng với mục đích kiểm tra sự trùng khớp về nét chữ, cũng như nhằm đảm bảo các tiêu chí bảo mật. Vì vậy, dữ liệu văn bản viết tay vẫn tồn tại bất chấp sự phát triển vượt bậc của công nghệ và sự phổ biến của các biểu mẫu dưới dạng kỹ thuật số. Điều này cho thấy rằng việc tạo ra một hệ thống tự động hóa để giải quyết các vấn đề liên quan đến chữ viết tay là vô cùng quan trọng. Quá trình này sẽ được thực hiện với các bước sau đây. Trước hết, hình thức tài liệu trên giấy sẽ được quét bởi một máy scan hoặc chụp bằng 1 2 Giới thiệu các thiết bị công nghệ để tạo ra hình ảnh. Tiếp theo sử dụng máy tính để tự động trích xuất thông tin người dùng, tập trung vào các vùng là chữ viết tay. Hình 1.1 thể hiện ví dụ về số hóa biểu mẫu có chữ viết tay trên một số trường ngữ nghĩa. Hình 1.1: Ví dụ về số hóa văn bản viết tay 1.1.2 Trong nghiên cứu Bài toán nhận dạng văn bản viết tay đã được nghiên cứu trong hơn ba mươi năm gần đây, được phát triển dần dần từ việc nhận dạng văn bản ở mức độ ký tự đến mức độ từ rồi đến mức độ dòng gồm nhiều từ. Nhận dạng chữ viết tay được chia thành hai lớp bài toán lớn sau: • Nhận dạng trực tuyến (online recognition) là nhận dạng các chữ trên màn hình ngay khi nó được viết. Trong hệ nhận dạng này máy tính sẽ lưu lại các thông tin về nét chữ như thứ tự nét viết, hướng và tốc độ của nét. • Nhận dạng ngoại tuyến (offline recognition) là dự đoán chuỗi văn bản từ một vùng văn bản viết tay cố định từ hình ảnh đã được chụp hoặc quét. Sự khác biệt chính giữa hai phương pháp trên đó là dữ liệu đầu vào. Đối với phương pháp nhận dạng trực tuyến bao gồm tất cả các tọa độ của nét chữ được viết từ bút kỹ thuật số, cùng với hình ảnh của chúng được tạo ra từ sự chuyển động của bút. Trong khi, với phương pháp nhận dạng ngoại tuyến thì đầu vào chỉ có hình ảnh của nét chữ đã được hình thành (ảnh tĩnh), không có thêm bất kì thông tin nào về dấu vết của chúng. Một điểm khác biệt nữa là hệ thống nhận dạng trực tuyến đòi hỏi phải nhanh và ngay lập tức, trong khi với hệ thống ngoại tuyến có thể thực thi với thời gian ràng buộc tương đối thoải mái. Trong luận văn này, chúng tôi sẽ chỉ thảo luận và tập trung vào phương pháp nhận dạng ngọai tuyến, vì nó phù hợp với phương hướng nghiên cứu cũng như mục đích cuối cùng của luận văn. 2 3 Giới thiệu Về nguyên tắc, nhận dạng văn bản viết tay khác với nhận dạng đối tượng từ hình ảnh hay nhận dạng hành động từ video: • Đối với nhận dạng đối tượng: chỉ tập trung vào sự xuất hiện của đối tượng cần quan tâm trên một hình ảnh, chủ yếu khai thác thông tin không gian của chúng được thể hiện trên hình ảnh. • Đối với nhận dạng hành động: cần biết một chuỗi dữ liệu tạm thời để ghi nhận lại sự thay đổi của hành động, có thể hiểu đó là một chuỗi các khung (frame) liên tục trong video về hành động của một đối tượng nào đó. • Cả hai đều không có bất kỳ cơ chế chỉnh sửa nào để hoàn thiện được kết quả cuối cùng. Mặt khác, đối với nhận dạng văn bản viết tay thì dữ liệu chúng ta có cả thông tin không gian và thông tin thời gian: • Hình dạng của các ký tự trên hình ảnh. • Trình tự sắp xếp của các kí tự, hay còn được gọi là chuỗi thông tin hay thông tin tuần tự (sequential information). • Kết quả cuối cùng có thể được chỉnh sửa bằng các mô hình ngôn ngữ (language models) nếu cần (Hình 1.2). Hình 1.2: Nhận dạng chữ viết tay kết hợp mô hình ngôn ngữ Hơn nữa, theo thống kê cho thấy tiếng Việt có rất ít nghiên cứu về nhận dạng văn bản viết tay so với các ngôn ngữ Latinh khác, chẳng hạn như tiếng Anh hay tiếng Pháp. Vì vậy, với tư cách là sinh viên Việt Nam, chúng tôi mong muốn cống hiến công sức và kiến thức của mình để giải quyết bài toán liên quan đến ngôn ngữ mẹ đẻ là tiếng Việt. 3 4 Giới thiệu 1.2 1.2.1 Phạm vi và mục tiêu nghiên cứu Quy trình cơ bản của hệ thống trích xuất thông tin Trong một ứng dụng thực tế, bài toán nhận dạng chữ viết tay trong một biểu mẫu có bố cục cố định sẽ được thực hiện qua các bước như sau: 1. Phát hiện biểu mẫu và chuẩn hóa. Với giả định ảnh đầu vào là một biểu mẫu được chụp bằng các thiết bị di động, nên background của ảnh đầu vào sẽ chứa rất nhiều thứ không cần thiết, gây ảnh hưởng đến độ chính xác của bước nhận diện biểu mẫu và ảnh hưởng đến độ chính xác của toàn bộ bài toán. Do đó, trước khi thực hiện phân tích bố cục và nhận diện văn bản thì ảnh đầu vào cần phải được làm sạch background và phải được chuẩn hóa. • Phát hiện biểu mẫu là quá trình sử dụng một số mô hình về phát hiện vật thể để nhận diện biểu mẫu. Kết quả đầu ra của quá trình này sẽ là tọa độ của hình chữ nhật vừa đủ bao lấy toàn bộ biểu mẫu. • Chuẩn hóa là sau quá trình phát hiện biểu mẫu, ảnh đầu vào đã được bỏ bớt một số vùng background không cần thiết, hệ thống sẽ thực hiện quá trình chuẩn hóa dựa trên ảnh này. Cụ thể, quá trình chuẩn hóa sẽ tiến hành phát hiện các cạnh và tìm các giao điểm của các cạnh; từ đó phát hiện được bốn góc của biểu mẫu, kết hợp thêm các phép chiếu để căn chỉnh lại biểu mẫu thành một ảnh có bốn góc vuông. 2. Phát hiện và phân loại vùng văn bản. Bước này có nhiệm vụ phát hiện vị trí và phân loại các vùng văn bản trong biểu mẫu, sau đó các vùng chữ viết tay (textline) sẽ được đưa vào hệ thống nhận diện ký tự quang học. 3. Nhận dạng ký tự quang học. Quá trình nhận dạng ký tự quang học (Optical Character Recognition - OCR) sẽ nhận vào một hình ảnh có chứa dòng chữ viết tay tiếng Việt, sau đó sẽ nhận dạng các ký tự bên trong ảnh đầu vào bằng việc chuyển từ ảnh thành dạng text có thể chỉnh sửa được trên các thiết bị công nghệ. Qua quá trình nhận dạng ký tự quang học, chúng ta sẽ nhận được đầu ra là các chuỗi ký tự có nghĩa, kết hợp thêm hậu xử lý (post-processing) và các kỹ thuật xử lý ngôn ngữ tự nhiên, hệ thống có thể rút trích những thông tin cần thiết từ ảnh đầu vào. Tuy nhiên với thời gian cho phép cũng như mục đích ban đầu của luận văn, chúng tôi chỉ tập trung vào module nhận dạng ký tự quang học, cụ thể hơn là bài toán nhận dạng chữ viết tay tiếng Việt bằng các mô hình học sâu đồng thời kết hợp với một số phương pháp hậu xử lý để cho ra kết quả cuối cùng. Điều này có nghĩa rằng, nhiệm vụ ở đây chỉ chuyển chữ viết tay trên hình ảnh thành text sau khi đã có ảnh của 4 5 Giới thiệu vùng chữ viết tay, đối với module nhận diện vùng chữ viết tay sẽ được thực hiện trong tương lai và không thể hiện trong luận văn này. Trong luận văn này, chúng tôi tiếp cận bài toán nhận dạng chữ viết tay đi từ mức độ từ đến mức độ dòng. Mục tiêu cuối cùng mà chúng tôi muốn hướng đến đó là tìm ra phương pháp phù hợp để giải quyết bài toán “Nhận dạng chữ viết tay tiếng Việt trong các biểu mẫu có bố cục cố định”, cụ thể hơn là nhận dạng được chữ viết tay trong biểu mẫu phiếu gửi của Viettel post. 1.2.2 Nhận dạng chữ viết tay Tại đây chúng tôi sẽ trình bài sơ lược về nhận dạng chữ viết tay ở mức độ từ và mức độ dòng, cùng các giai đoạn nhận dạng chữ viết tay. Nhận dạng chữ viết tay ở mức độ từ: Một từ là một chuỗi các kí tự không chứa khoảng trắng. Giả sử rằng hình ảnh của từ đã được trích xuất ra từ các module trước (những module không được xem xét trong luận văn này), ví dụ như module phát hiện biểu mẫu hay module phát hiện dòng chữ viết tay. Hình 1.3 minh họa việc tách các từ trên cùng một dòng chữ thành các từ riêng biệt để tiến hành nhận dạng chữ viết ở mức độ từ. Hình 1.3: Minh họa nhận dạng ở mức độ từ Nhận dạng chữ viết tay ở mức độ dòng: Dòng là một chuỗi các ký tự tạo thành các từ và ngăn cách nhau bởi các khoảng trắng. Tương tự như từ, hình ảnh của dòng chữ viết tay giả sử đã được cắt ra từ các modules trước. Hình 1.4 minh họa việc nhận dạng chữ viết ở mức độ dòng. 5 6 Giới thiệu Hình 1.4: Minh họa nhận dạng ở mức độ dòng Bài toán của chúng ta gồm có hai giai đoạn đó là “giai đoạn ngoại tuyến” (offline phase) bao gồm việc huấn luyện, đánh giá mô hình và “giai đoạn trực tuyến” (online phase) chạy trên dữ liệu thực tế. • Đối với giai đoạn ngoại tuyến: – Đầu vào: Một cặp gồm ảnh chữ viết tay và text chứa từ hay dòng. – Đầu ra: Các thông số của mô hình thông qua việc tối thiểu hàm mất mát giữa kết quả dự đoán và nhãn. • Đối với giai đoạn trực tuyến: – Đầu vào: Một ảnh chữ viết tay từ hay dòng. – Đầu ra: Kết quả của chuỗi dự đoán được. 1.3 Thách thức Trên thực tế có khá nhiều khó khăn và thử thách đối với bài toán nhận dạng chữ viết tay, đặc biệt là chữ viết tay tiếng Việt. Sau đây chúng tôi sẽ tiến hành trình bày các vấn đề được đặt ra một cách thật chi tiết, và trong luận văn này chúng tôi sẽ đi tìm ra phương pháp để lần lượt giải quyết chúng theo cách tốt nhất có thể. 1. Sự khác nhau giữa chữ viết tay và chữ in Các hình thức biến thể của nét chữ. Nếu như chữ đánh máy, chữ in thường có những kiểu chữ nhất định để dựa vào đó chúng ta nhận dạng ra chữ, thì việc xử lý bài toán nhận dạng văn bản viết tay khó hơn nhiều do nét chữ viết tay rất 6 7 Giới thiệu Hình 1.5: Từ “đặng” bằng chữ viết tay (trái) và chữ in (phải) Hình 1.6: Từ “người” bằng chữ viết tay (trái) và chữ in (phải) đa dạng. Nét chữ của cùng một người viết ở các thời điểm khác nhau đôi khi đã không giống nhau, nên nét chữ của những người khác nhau thì chắc chắn là khác nhau. Hơn nữa, chữ viết tay có xu hướng bị nghiêng nhiều hơn do cách viết của mỗi người và độ nghiêng là không như nhau giữa các ký tự trong cùng một từ. Một điểm khó khăn nữa của bài toán nhận dạng chữ viết tay là các ký tự hay các dòng chữ thường không tách biệt nhau rõ ràng, đôi khi lại không ngay hàng thẳng lối. Ngoài ra, một số lượng lớn tài liệu chữ viết tay ra đời trước khi máy tính xuất hiện, có nhiều tài liệu được bảo quản không tốt dẫn tới tình trạng bị mờ chữ, mất chữ. Có những trường hợp thì khi ghi sai lại ghi đè lên chữ sai đó, hoặc tình trạng lem mực, hoặc những từ được ghi bổ sung thêm lên tài liệu cũng là một vấn đề đối với mô hình nhận dạng ký tự quang học. Đối với chữ đánh máy thì hình thức trình bày văn bản trên các tài liệu cho dù không giống nhau thì nét chữ của chúng vẫn sẽ không khác nhau nếu chúng sử dụng cùng một kiểu chữ. Với những dẫn chứng trên cho thấy, việc nhận dạng văn bản viết tay khó hơn chữ đánh máy gấp nhiều lần. Với các điều kiện khác nhau cùng các kiểu viết khác nhau sẽ dẫn đến sự gia tăng các biến thể hình dạng của từ. Dẫn đến việc cho máy học là rất khó vì nó khó có thể phân biệt được các trường hợp dù cùng một ký tự nhưng lại có nhiều nét viết khác nhau. Điều này đòi hỏi một tập dữ liệu đủ lớn để huấn luyện. Nhận dạng nét chữ. Văn bản chữ in, đánh máy sẽ không bị ảnh hưởng bởi các nét nối như văn bản viết tay. Nói cách khác, chúng có thể được phân đoạn thành các ký tự riêng lẻ dễ dàng hơn trong việc nhận dạng chữ viết ở mức độ ký tự. Ngược lại, vì bản chất của văn bản viết tay, mọi người có xu hướng viết các nét nối giữa 7
- Xem thêm -

Tài liệu liên quan