Đăng ký Đăng nhập
Trang chủ Xây dựng mô hình nhận dạng khung và vùng văn bản trong tài liệu có bố cục cố địn...

Tài liệu Xây dựng mô hình nhận dạng khung và vùng văn bản trong tài liệu có bố cục cố định

.PDF
77
1
138

Mô tả:

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC XÂY DỰNG MÔ HÌNH NHẬN DẠNG KHUNG VÀ VÙNG VĂN BẢN TRONG TÀI LIỆ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 Lê Hữu Trọng GVPB TS. Nguyẽn Tiến Thịnh Sinh viên thực hiện: Lê Huỳnh Long Vũ 1710390 HỒ CHÍ MINH, 7/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: LÊ HUỲNH LONG VŨ___________________MSSV: 1710390________ 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 KHUNG VÀ VÙNG VĂN BẢN TRONG TÀI LIỆ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 phương pháp nhận dạng các phân vùng trong một dạng tài liệu cố định. - Thu thập một bộ dữ liệu thực tế bao gồm gán nhãn. - Xây dựng mô hình nhận dạng các phân vùng, chú trọng vào trường giá trị và thử nghiệm 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) Lê Hữu Trọng – 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 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: LÊ HUỲNH LONG VŨ MSSV: 1710390 Ngành (chuyên ngành): 2. Đề tài: XÂY DỰNG MÔ HÌNH NHẬN DẠNG KHUNG VÀ CÙNG VĂN BẢN TRONG TÀI LIỆ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 có bố cục rõ ràng, dễ đọc. - Phương pháp tiếp cận khoa học phù hợp với một luận văn đại học. - Sinh viên có các đánh giá biện luận khá chi tiết giữa các mô hình xử lý bài toán liên quan từ đó dẫn đến lựa chọn mô hình phù hợp. - Mô hình đề xuất có kết quả tốt so với các mô hình xử lý bài toán liên quan như Mask-CNN. 7. Những thiếu sót chính của LVTN: - Một số mục và chương chưa đầy đủ ý. Nội dung chưa mạch lạc. - Các công thức toán chưa được chuẩn mực, tên hàm, các dấu ngoặc, dấu phẩy và chấm sau mỗi công thức cần được xem xét kỹ lưỡng. - Phần phụ lục quá ngắn nên cân nhắc lược bỏ. - Tài liệu tham khảo nên được cập nhật và chỉnh sửa cho phù hợp. - Một số hình ảnh cần có trích dẫn nguồn tham khảo. - Ngôn từ diễn đạt chưa có tính khoa học. 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. Giải thích rõ lý do chọn mô hình U-net để giải quyết bài toán. b. Số lượng ảnh đầu vào còn quá ít và ít nhiễu để đánh giá tính hiệu quả của mô hình đề xuất so với các mô hình khác. Nếu tập huấn luyện đa dạng hơn thì khi đó kết quả đầu ra của mô hình U-net sẽ bị ảnh hưởng như thế nào? c. Giải thích thêm hình 6.2 trang 50. 10. Đánh giá chung (bằng chữ: giỏi, khá, TB): giỏi Điểm : 8,4/10 Ký tên (ghi rõ họ tên) Nguyễn Tiến Thịnh 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: LÊ HUỲNH LONG VŨ MSSV: 1710390 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 KHUNG VÀ CÙNG VĂN BẢN TRONG TÀI LIỆ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, Lê Hữu Trọng 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 các phân vùng trong một dạng ảnh tài liệu có form cố định và chữ viết tay. - Tác giả đã thu thập được dữ liệu có nhiều người viết khác nhau với nền tảng là bố cục của form bưu chính. - Tác giả cũng đã tiến hành gán nhãn ở nhiều mức khác nhau để thự nghiệm mô hì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 (6 mô hình). Kết quả của luân văn có thể được xem xét làm nền tảng để có thể tìm hiểu và phát triển cho các mô hình tổng quát. - Đề tài đáp ứng yêu cầu của LVTN đại học 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. Mô hình hiện tại còn nhiều khả năng phát triển, có thể thử nghiệm và tập trung phát triển tốt hơn. - Nên phát triển thêm khả năng nhận dạng khung để hỗ trợ vùng nhận dạng - Phát triển các kỹ thuật hậu xử lý tốt hơn 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. Đề xuất phương pháp phát triển khung, b. Làm rõ hơn vai trò của gán nhãn dữ liệu kiểu đầy đủ và rút gọn 10. Đánh giá chung (bằng chữ: giỏi, khá, TB): Giỏi Điểm : 8.5/10 Ký tên (ghi rõ họ tên) Trần Tuấn Anh Lời cam đoan Tôi xin cam đoan đây là công trình nghiên cứu của riê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ác tài nguyên được sử dụng cho quá trình phân tích, nhận xét được 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, tôi cũng có sử dụng một số nhận xét, đánh giá và số liệu trong các nghiên cứ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, tôi xin hoàn toàn chịu trách nhiệm. Trường Đại học Bách Khoa - Đại học Quốc gia Thành phố Hồ Chí Minh không liên quan đến những vi phạm tác quyền, bản quyền do tôi gây ra (nếu có) trong quá trình thực hiện. Lời ngỏ Hành trình nào rồi cũng đến hồi kết. Bốn năm đại học không hề ngắn cũng không hề dài, nhưng nhờ có sự giúp đỡ của mọi người xung quanh mà tôi cũng hoàn thành được chặng đường này. Đặc biệt nhất, tôi xin gửi lời cảm ơn chân thành nhất đến Ts. Trần Tuấn Anh, người đã hướng dẫn, chỉ bảo cho tôi từ một đứa chưa biết gì về xử lí ảnh đã hoàn thành được luận văn này. Cảm ơn những thầy cô, những người anh, người chị trong môi trường Đại học Bách Khoa nói chung và trong khoa Khoa học & Kỹ thuật Máy tính nói riêng, đã truyền đạt những kiến thức quý giá, xây dựng nên một nền tảng vững chãi trước khi đi vào môi trường làm việc. Cuối cùng, tôi rất cảm ơn gia đình, bạn bè, và tất cả những người luôn yêu quý và giúp đỡ tôi hết mình trong suốt chặng đường bốn năm qua, cảm ơn mọi người rất nhiều! Tóm tắt nội dung Hiện nay việc chuyển phát tài liệu hàng hóa rất phổ biến trong mọi mặt cuộc sống từ buôn bán, hay gửi các tài liệu, gửi hàng hóa,... Các mẫu văn bản này thì tùy công ty vận chuyển thì có cách thiết kế, nội dung hiển thị khác nhau phù hợp cho mục đích lưu trữ và quản lý. Hiện tại việc trích xuất thông tin từ những văn bản này phần lớn vẫn ở mức thủ công, từ những người nhập liệu đưa vào cơ sở lưu trữ. Điều này sẽ tiêu tốn rất nhiều tài nguyên con người để thực hiện, ngoài ra việc trích xuất thủ công rất nhàm chán và lặp đi lặp lại dễ làm cho người trích xuất gây ra lỗi. Một hệ thống nhận diện tự động sẽ là giải pháp tuyệt vời để giải quyết vấn đề này thay cho con người. Trong luận văn này, mục tiêu của tôi là nghiên cứu và xây dựng ra một hệ thống nhận dạng các khung, các vùng có nội dung văn bản bao gồm cả các chữ đánh máy cũng như chữ viết tay. Do những hạn chế về dữ liệu sẵn có, những tài liệu này thường mang những thông tin cá nhân cao, được sự giúp đỡ của thầy Ts. Trần Tuấn Anh thì tôi sẽ chỉ tập chung vào những tờ đơn chuyển phát của Viettel Post. Dữ liệu sẽ có định dạng là hình chụp đơn chuyển phát gồm toàn bộ thông tin trên đơn. Từ đó hệ thống sẽ phát hiện và trích xuất ra những vùng có nội dung văn bản để đưa qua mô hình xử lý quang học OCR trích xuất nội dung của từng văn bản đó. Tuy nhiên, trong luận văn này chỉ tập trung vào việc nhận diện các vùng có thông tin. Về phương pháp tiếp cận, từ ảnh dữ liệu sẽ đi qua mô-đun Phát hiện văn bản dùng cách tiệp cận phân đoạn vùng văn bản với mô hình U-Net, từ kết quả của mô hình, tôi sẽ sử dụng một số phương pháp hậu xử lý, chủ yếu dựa trên kinh nghiệm (heuristic) để lọc bớt nhiễu và tách các vùng văn bản ra. Để giúp việc xử lý hiệu quả hơn, tôi đề xuất và thử nghiệm trên một vài biến thể để so sánh, đánh giá và chọn ra biến thể có độ chính xác nhất. Về tập dữ liệu, do chưa tìm ra tập dữ liệu có sẵn nào phù hợp với đề tại, nên tôi đã tự gán nhãn cho tập biên lai Viettel Post được thầy hướng dẫn cung cấp. Tập dữ liệu gồm có 251 ảnh chụp. Để đánh giá kết quả thí nghiệm, mô-đun Phát hiện vùng văn bản sẽ sử dụng độ đo IoU. Dựa trên kết quả đánh giá, tôi sẽ chọn ra phương pháp có độ chính xác tốt nhất để xây dựng hệ thống trích xuất thông tin hoàn chỉnh, và sẽ đánh giá độ chính xác của toàn hệ thống dựa vào độ đo tỉ lệ sai sô điểm ảnh. Với những kết quả đạt được của luận văn này, tôi mong muốn được đóng góp phần nào vào sự phát triển của lĩnh vực Trích xuất thông tin nói riêng và Thị giác máy tính nói chung ở Việt Nam. Cũng như có thể đem vào ứng dụng thực tế, giúp tăng hiệu suất cho các doanh nghiệp. Mục lục 1 Giới thiệu 1.1 Đặt vấn đề và lý do chọn đề tài . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Phạm vi và mục tiêu nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Bố cục luận văn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Cơ sở lý thuyết 2.1 Mạng nơ-ron nhân tạo . . . . . . . . . . . . . . . . 2.1.1 Nơ-ron sinh học . . . . . . . . . . . . . . . . 2.1.2 Nơ-ron nhân tạo . . . . . . . . . . . . . . . 2.1.3 Mạng nơ-ron nhân tạo . . . . . . . . . . . . 2.1.4 Hàm kích hoạt (Activation function) . . . . 2.2 Mạng nơ-ron tích chập . . . . . . . . . . . . . . . . 2.2.1 Phép tính tích chập . . . . . . . . . . . . . . 2.2.2 Phép tích chập chuyển vị . . . . . . . . . . . 2.2.3 Phép Pooling (hợp nhất) . . . . . . . . . . . 2.2.4 Batch Normalization . . . . . . . . . . . . . 2.2.5 Vấn đề của mạng nơ-ron kết nối đầy đủ . . . 2.2.6 Mô hình mạng nơ-ron tích chập . . . . . . . 2.3 Nhận diện vật thể với họ mô hình R-CNN . . . . . 2.3.1 Giới thiệu . . . . . . . . . . . . . . . . . . . 2.3.2 Mô hình R-CNN . . . . . . . . . . . . . . . 2.3.3 Mô hình Fast R-CNN . . . . . . . . . . . . . 2.3.4 Mô hình Faster R-CNN . . . . . . . . . . . . 2.3.5 Mô hình Mask R-CNN . . . . . . . . . . . . 2.3.6 Tổng kết các mô hình thuộc R-CNN family . 2.4 Nhận diện vật thể với YOLO . . . . . . . . . . . . 2.4.1 Kiến trúc mạng . . . . . . . . . . . . . . . . 2.4.2 Hàm lỗi . . . . . . . . . . . . . . . . . . . . 2.5 Phân đoạn ngữ nghĩa với UNET . . . . . . . . . . . 2.5.1 Kiến trúc mạng . . . . . . . . . . . . . . . . 2.5.2 Biến thể Unet . . . . . . . . . . . . . . . . . 2.5.2.1 VGG16 . . . . . . . . . . . . . . . iv . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1 2 3 4 4 4 5 6 7 9 9 11 11 12 13 13 16 16 16 18 21 23 25 26 27 27 29 29 30 30 2.6 Ngôn 2.6.1 2.6.2 2.6.3 2.5.2.2 ResNet . . . . ngữ, thư viện và nền tảng Python . . . . . . . . . . Nền tảng Tensorflow . . Thư viện keras . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Các công trình nghiên cứu liên quan 3.1 Phát hiện vùng văn bản trong ảnh bằng Connectionist Text work (CTPN) . . . . . . . . . . . . . . . . . . . . . . . . . 3.1.1 Tổng quan mô hình . . . . . . . . . . . . . . . . . . 3.1.2 Ưu điểm và nhược điểm . . . . . . . . . . . . . . . 3.2 EAST (Efficient Accurate Scene Text Detector) . . . . . . 3.2.1 Kiến trúc mạng . . . . . . . . . . . . . . . . . . . . 3.2.2 Hàm lỗi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 33 33 33 33 34 Proposal Net. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 Tập dữ liệu 34 34 38 38 39 41 43 5 Phương pháp đề xuất 46 5.1 Phân tích bài toán . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 5.2 Mô hình U-net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6 Hiện thực hệ thống 50 6.1 Tiền xử lý và làm giàu dữ liệu . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.2 Huấn luyện . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 6.3 Hậu xử lý . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 7 Thí nghiệm và đánh giá kết quả 54 7.1 Phương pháp đánh giá . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 7.2 Kết quả thí nghiệm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 8 Tổng kết 8.1 Kết quả đạt được . . . . . . . . . . . . . . . . 8.2 Những hạn chế và định hướng phát triển trong 8.2.1 Hạn chế . . . . . . . . . . . . . . . . . 8.2.2 Hướng phát triển . . . . . . . . . . . . A Kệ hoạch thực hiện luận văn . . . . . . tương lai . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61 61 62 62 62 63 Danh sách bảng 3.1 Thiết kế hình đầu ra [19] . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40 4.1 Các loại nhãn được dùng trong việc gán nhãn dữ liệu . . . . . . . . . . . . 43 7.1 7.2 Thông số các thí nghiệm được đề xuất . . . . . . . . . . . . . . . . . . . . 56 Kết quả đánh giá của từng thí nghiệm . . . . . . . . . . . . . . . . . . . . 58 vi Danh sách hình vẽ 1.1 Ví dụ về một tờ đơn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.1 2.2 2.4 2.5 2.6 2.7 2.8 2.9 2.12 2.13 2.14 2.15 2.16 2.17 2.18 2.19 2.20 2.21 2.22 2.23 2.24 2.25 2.26 Một nơ-ron sinh học . . . . . . . . . . . . . . . . . . . . Perceptron. . . . . . . . . . . . . . . . . . . . . . . . . . Heaviside step function. . . . . . . . . . . . . . . . . . . Hàm Sigmoid . . . . . . . . . . . . . . . . . . . . . . . . Hàm Tanh . . . . . . . . . . . . . . . . . . . . . . . . . . Hàm Relu . . . . . . . . . . . . . . . . . . . . . . . . . . Vector đặc trưng . . . . . . . . . . . . . . . . . . . . . . Nguyên lý tích chập chuyển vị . . . . . . . . . . . . . . . Mô hình nhận diện vật thể R-CNN [14] . . . . . . . . . . Minh họa biến đổi giữa bounding box dự đoán và ground Mô hình nhận diện vật thể Fast R-CNN [8] . . . . . . . . RoI pooling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . mô tả hàm Lsmooth 1 Mô hình nhận diện vật thể Faster R-CNN [6] . . . . . . . Mô hình nhận diện vật thể Mask R-CNN [10] . . . . . . Kết quả nhận diện của Mask R-CNN [10] . . . . . . . . . RoIAlign . . . . . . . . . . . . . . . . . . . . . . . . . . . Cấu trúc của các mô hình R-CNN family . . . . . . . . . Cấu trúc mô hình YOLO [13] . . . . . . . . . . . . . . . Cấu trúc mô hình Unet [12] . . . . . . . . . . . . . . . . Kiến trúc VGG16 . . . . . . . . . . . . . . . . . . . . . . Tăng độ sâu của mạng dẫn đến hiệu suất kém hơn . . . . Một khối residual . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . truth [18] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 7 8 8 9 10 11 16 17 19 19 21 22 23 24 25 25 27 29 31 32 32 3.1 3.2 3.3 3.4 3.5 3.6 3.7 Kiến trúc của mô hình CTPN . . . . . . Kết quả dự đoán mô hình CTPN . . . . Vùng nhận diện của CTPN . . . . . . . Các bước xử lý của EAST . . . . . . . . Kiến trúc mạng EAST [19] . . . . . . . . Quy trình xây dựng nhãn . . . . . . . . Một số kết quả nhận diện của EAST [19] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 36 37 38 39 41 42 vii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 4.1 4.2 Giao diện của ứng dụng gán nhãn Labelme . . . . . . . . . . . . . . . . . . 44 Mẫu dữ liệu đã được gán nhãn đầy đủ. . . . . . . . . . . . . . . . . . . . . 45 5.1 5.2 Ảnh đầu ra của maskrcnn . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 Ảnh được gán nhãn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 6.1 6.2 6.3 6.4 6.5 So sánh giữa ảnh gán nhãn và ảnh kết quả của Các bước xử lý của U-Net . . . . . . . . . . . Các bước xử lý của line segmentation . . . . . Một nhãn Giá trị được học ra . . . . . . . . . Các dòng được tách ra bởi Line Segmentation U-Net . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 51 52 53 53 7.1 7.2 7.3 7.4 7.5 Cách tính toán độ đo IoU . . . . . . . . . Ảnh dữ liệu của kiểu gán nhãn đầy đủ . . Ảnh dữ liệu của kiểu gán nhãn rút gọn . . So sánh kết quả của mô hình Res50-U-Net Một số ảnh kết quả của mô hình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 57 57 59 60 . . . . . . . . . . . . . . . . . . . . . . . . . A.1 Kế hoạch thực hiện luận văn . . . . . . . . . . . . . . . . . . . . . . . . . . 63 Chương 1 Giới thiệu 1.1 Đặt vấn đề và lý do chọn đề tài Hóa đơn, biên lai, văn bản là những thứ luôn đi theo ta trong mọi công việc, dịch vụ. Trong buôn bán, giao dịch, ta không thể chỉ dựa trên lời nói vì những rủi ro cũng như không thể ghi nhớ hết được nội dung nếu như đó là một giao dịch phức tạp. Ví dụ trên biên lai Viettel Post, biên lai sẽ có thông tin về người gửi như tên, địa chỉ, số điện thoại,... Tương tự về thông tin người nhận, kèm theo đó là chữ kí người gửi, người nhận, các thông tin về phí vận chuyển, kích thước món hàng, các dịch vụ đi kèm. Mọi thông tin cần thiết để đảm bảo tính minh bạch rõ ràng cho người gửi, người nhận nắm được sẽ được cung cấp đầy đủ trên đó. Dù cho các công nghệ hiện nay vô cùng phát triển, các thiết bị điện tử thông minh vô cùng nhỏ gọn, tiện lợi và dễ dàng tiếp cận luôn đi kèm. Thế nhưng, việc điền những tờ đơn vẫn không thể thay thế được do tính nhanh gọn, và dễ dàng cho đại đa số người sử dụng dịch vụ. Vì thế nhu cầu trích xuất thông tin trên những tờ đơn để phục vụ những mục đích nhất định là vô cùng cần thiết. Lĩnh vực học máy, học sâu gần đây với sự đột phá của mạng nơ-ron nhân tạo đã đạt nhiều thành tựu vượt bậc, kéo theo sự phát triển nhanh chóng của lĩnh vực thị giác máy tính. Nhiều mô hình nhận diện vật thể, nhận diện khuôn mặt, phân đoạn ngữ nghĩa đạt đến mức ổn định và vô cùng chính xác. Thế nhưng các bài toán xử lý tài liệu số hóa vẫn còn nhiều hạn chế. Với nhu cầu trích xuất thông tin từ các văn bản, tài liệu ngày càng tăng, nhưng những ứng dụng để giải quyết vấn đề này thì còn vô cùng hạn chế trong khi những tiến bộ vượt bậc của những mô hình học máy, học sâu đặc biệt là trong lĩnh vực thị giác máy tính chưa được ứng dụng vô nhu cầu này. Tôi vô cùng hứng thú và quyết tâm tạo ra một hệ thống trích xuất thông tin trên những tờ đơn có chữ viết tay Tiếng Việt với độ chính xác cao và ổn định có thể đem vào ứng dụng thực tiễn. Hơn nữa, tôi mong muốn rằng, những nghiên cứu, ứng dụng này sẽ góp phần nào đó vào sự phát triển của lĩnh vực số hoá tài liệu nói riêng và thị giác máy tính nói chung. 1 2 Giới thiệu Hình 1.1: Ví dụ về một tờ đơn 1.2 Phạm vi và mục tiêu nghiên cứu Như những vấn đề đã đề cập ở trên, việc nghiên cứu phát triển mô hình trích xuất thông tin từ các biên lai có chữ viết tay tiếng Việt có thể hoạt động tốt nhất là rất cần thiết. Việc lưu trữ các tài liệu giấy đang làm cho các đơn vị tiêu tốn rất nhiều tài nguyên, cũng như việc quản lý, sử dụng còn rất bất cập. Các nghiên cứu và công nghệ đạt được hiện nay là rất tốt, tuy nhiên vẫn gặp nhiều hạn chế về tốc độ, hiệu năng và khả năng hiện thực cũng như tính chính xác. Tuy nhiên để xây dựng một sản phẩm hoàn chỉnh từ việc nhận dạng các vùng có văn bản, rồi trích xuất thông tin từ các vùng đó thì cần rất nhiều thời gian để nghiên cứu và phát triển. Do đó đề tài chỉ tập trung vào bước đầu tiên là mô hình nhận dạng khung và vùng văn bản trong tài liệu có bố cục cố định, khi mô hình đạt được kết quả tốt nhất sẽ tiếp tục các bước tiếp theo. Về dữ liệu, do hạn chế về các tập dữ liệu hóa đơn có sẵn, do nhiều chính sách về bảo mật cũng như chưa phổ biến. Được sự giúp đỡ của thầy Tuấn Anh cũng như Viettel Post. Tôi sẽ tập trung gán nhãn và đánh giá trên tập biên lai của Viettel Post. Về mục tiêu đề tài là sẽ tạo ra một hệ thống nhận diện vùng văn bản trên các mẫu biên lai cố định một cách hiệu quả. 2 3 Giới thiệu 1.3 Bố cục luận văn • Chương 1. Giới thiệu về những nội dung cơ bản và tổng quát nhất liên quan đến đề tài như là đặt vấn đề, lý do chọn đề tài, giới thiệu bố cục bài luận văn. • Chương 2. Trình bày các kiến thức cơ sở đã được khảo sát và đóng vai trò nền tảng để phân tích, nghiên cứu và phát triển bài toán. • Chương 3. Trình bày về một số nghiên cứu của các nhà khoa học khác nhau đã đạt được những thành tựu nổi bật trong lĩnh vực này, cùng với phương pháp và kết quả được báo cáo của họ. • Chương 4. Trình bày thông tin về tập dữ liệu mà tôi đã thu thập, gán nhãn và sử dụng. • Chương 5. Trình bày các phương pháp đã tiếp cận để xử lý bài toán. • Chương 6. Trình bày chi tiết cách thức thực hiện phương pháp để xử lý bài toán từ tiền xử lý, huấn luyện mô hình và hậu xử lý để được kết quả tốt nhất. • Chương 7. Trình bày phương pháp đánh giá mô hình cũng như kết quả đã được. • Chương 8. Trình bày thành quả, tổng kết lại những kinh nghiệm, hạn chế của phương pháp. Đưa ra hướng phát triển tiếp theo. 3 Chương 2 Cơ sở lý thuyết Chương Cơ sở lý thuyết tóm lược những lý thuyết liên quan đến bài toán nhận diện vật thể, bao gồm những lý thuyết cơ bản về mạng nơ-ron nhân tạo, mạng nơ-ron tích chập. Đồng thời tôi sẽ giới thiệu những nền tảng, thư viện cũng như những sources code tôi đã sử dụng trong quá trình huấn luyện, nghiên cứu mô hình. 2.1 2.1.1 Mạng nơ-ron nhân tạo Nơ-ron sinh học Nơ-ron là đơn vị cơ bản cấu tạo nên hệ thống thần kinh, là thành phần quan trọng nhất của bộ não. Não chúng ta có khoảng 86 tỷ nơ-ron1 , mỗi nơ-ron lại liên kết với nhiều nơ-ron khác, tạo thành một mạng lưới, nên thường được gọi là mạng nơ-ron. Cấu trúc của nơ-ron được cấu tạo như sau: Các sợi nhánh (Dendrites) nhận tín hiệu đầu vào được đưa vào xử lý trong phần thân (Soma), sau đó các tín hiệu đã được xử lý đi qua sợi trục (Axon) kết nối với các nơ-ron khác, và tiếp tục lặp lại quy trình trên. Mỗi nơ-ron nhận xung điện từ các nơ-ron khác từ sợi nhánh. Nếu các xung điện này đủ lớn để kích hoạt nơ-ron, thì sẽ có tín hiệu đi qua sợi trục để đến các nơ-ron khác. Ngược lại, các tín hiệu sẽ bị triệt tiêu, nơ-ron sẽ không truyền tín hiệu đi qua sợi trục. Mạng nơ-ron nhân tạo (Artificial Neural Network) lấy cảm hứng từ cơ chế này để giải quyết các bài toán. 1 Dựa trên https://www.verywellmind.com/how-many-neurons-are-in-the-brain-2794889 4 5 Cơ sở lý thuyết Hình 2.1: Một nơ-ron sinh học2 2.1.2 Nơ-ron nhân tạo Lấy cảm hứng từ nơ-ron trong hệ thần kinh con người, người ta đã xây dựng nên một nơ-ron nhân tạo tương tự như nơ-ron sinh học được biểu diễn tổng quát như hình 2.2. Đây là nơ-ron nhân tạo đầu tiên do con người tạo ra, nó có tên gọi là perceptron (từ perceptron trong tiếng Việt có nghĩa là tri giác). Hình 2.2: Perceptron. Giống như nơ-ron sinh học nó cũng có các đầu vào (chính là các biến b, x1 , x2 , ..., xn ), các đầu vào này được nhân với các trọng số (weights) và cộng lại với nhau. Tiếp theo giá trị này được đưa qua một hàm f để cho ra kết quả cuối cùng như trong công thức (2.1). ! n X output = f b + wi xi = f (b + w1 x1 + w2 x2 + ... + wn xn ) (2.1) i=1 Các biến w1 , w2 , ..., wn được gọi là các trọng số, là nhân tố chính tác động lên đầu vào x và tạo ra khả năng biểu diễn tri giác của nơ-ron. 2 Ảnh được lấy từ http://www.ainenn.org/personal_nn_view.htm 5 6 Cơ sở lý thuyết 2.1.3 Mạng nơ-ron nhân tạo Giống như mạng nơ-ron sinh học mạng nơ-ron nhân tạo cũng được tạo thành từ các nơ-ron nhân tạo liên kết với nhau. Một mạng được chia thành các lớp (layer), bao gồm ba loại lớp chính: lớp đầu vào (input layer), lớp ẩn (hidden layer), lớp đầu ra (output layer). Mạng nơ-ron nhân tạo chỉ gồm duy nhất một input layer và một output layer tuy nhiên có thể bao gồm rất nhiều hidden layer. Layer thực chất chỉ là một tập các nơ-ron trong đó, các layer kết nối với nhau thông qua việc các nơ-ron thuộc các layer kết nối với nhau. Input layer chính là dữ liệu mà ta cung cấp cho ANN. Còn hidden layer chính là nơi thực hiện các phép tính toán, kết hợp bên dưới mạng nơ-ron để thực hiện mục tiêu mà chúng ta mong muốn. Cuối cùng, output layer là nơi chứa các kết quả tính toán của mạng để ta sử dụng. Hình 2.3: Mạng nơ-ron nhân tạo gồm hai hidden layer3 Trong mạng nơ-ron như hình 2.3 ta có thể dễ dàng thấy ngoại trừ input layer thì các layer khác nơ-ron có đầu vào chính là kết quả đầu ra của các nơ-ron ở layer liền trước theo thứ tự từ trái sang phải của mạng. Tại mỗi nơ-ron sẽ thực hiện các phép tính dựa vào các trọng số hiện tại huấn luyện được như đã giới thiệu ở mục 2.1.2. Đối với một mạng nơ-ron nhân tạo để học, nó phải học từ những gì nó đã làm sai và đang làm đúng, đây được gọi là “phản hồi”. Chính điều này là nơi ta bắt đầu thấy sự tương đồng với bộ não con người. Mạng nơ-ron học theo đúng cách giống như não của chúng ta, trong đó một quá trình “phản hồi” gọi là lan truyền ngược (back-propagation hay gọi tắt là backprop). Trong quá trình này ta so sánh đầu ra của mạng với đầu ra mong muốn và sử dụng sự khác biệt giữa các đầu ra để sửa đổi trọng số của các kết nối giữa các nơ-ron trong mạng, ta thực hiện ngược từ các đầu ra thông qua các nơ-ron trong hidden layer đến các nơ-ron đầu vào. Theo thời gian, lan truyền ngược làm cho mạng có thể học được bằng cách làm cho sự chênh lệch giữa đầu vào và đầu ra nhỏ tới điểm mà được xem là đem tới sự chính 3 Ảnh được lấy từ https://jintensivecare.biomedcentral.com/articles/10.1186/s40560-019 -0393-1#Fig1 6 7 Cơ sở lý thuyết xác phù hợp, như vậy mạng nơ-ron nhân tạo đã học được đầu ra chính xác. Nếu như ta càng tăng số lượng nơ-ron trong một hidden layer hay tăng số lượng hidden layer lên cao thì có khả năng là sẽ mang lại độ chính xác cao hơn. Tuy nhiên tương ứng với số lượng hidden layer cao đó chính bộ tham số sẽ càng lớn và thời gian huấn luyện sẽ càng lâu, thậm chí đến một lúc nào đó khi độ chính xác đạt quá cao thì sẽ bị một hiện tượng gọi là quá khớp (overfitting). Overfitting là hiện tượng mô hình sẽ có độ chính xác cao cho tập huấn luyện nhưng lại có kết quả tệ với tập kiểm tra hay trong quá trình sử dụng thực tế. Như vậy việc tránh overfitting là một việc hết sức cần thiết khi xây dựng mô hình học sâu. Chữ “sâu” trong “mô hình học sâu” chính là đề cập đến việc có rất nhiều hidden layer trong mô hình, càng nhiều hidden layer thì mô hình càng “sâu”. 2.1.4 Hàm kích hoạt (Activation function) Ở mỗi nơ-ron, phép nhân trọng số trên từng tham số xi rồi lấy tổng tất cả là một phép biến đổi tuyến tính. Đặc điểm của những phép biến đổi này là dù ta có lấy tổ hợp tuyến tính của bao nhiêu phép biến đổi tuyến tính đi nữa thì nó cũng chỉ tương đương với một phép biến đổi tuyến tính khác mà thôi. Cho nên không thể nào biểu diễn một phép biến đổi phi tuyến qua một mạng mà chỉ gồm những phép biến đổi tuyến tính. Nhu cầu biểu diễn tri giác bằng mạng nơ-ron khiến ta không thể bỏ qua việc phải biểu diễn được những hàm phi tuyến. Do đó những mạng nơ-ron bắt buộc phải có thành phần phi tuyến, chúng được gọi là hàm kích hoạt (activation function). Các hàm kích hoạt đều ra đời để phục vụ cho những nhu cầu nhất định. Hàm kích hoạt đầu tiên được ra đời đương nhiên là hàm kích hoạt của perceptron, nó có tên gọi là Heaviside step function. Công thức và đồ thị của hàm này lần lượt là: ( 1, nếu x ≥ 0, f (x) = (2.2) 0, nếu x < 0 Hình 2.4: Heaviside step function. Ta hình dung thông tin truyền đi chính là các tham số, thì hàm Heaviside-step có khả năng chặn thông tin truyền đi khi đầu ra bằng 0. Còn khi hàm này đứng ở lớp cuối cùng, thì nơ-ron tương ứng có khả năng phân loại kết quả. Tuy nhiên nhược điểm của hàm heaviside-step là đạo hàm của nó tại mọi điểm khả vi đều bằng 0. Đạo hàm bằng 0 khiến 7 8 Cơ sở lý thuyết ta không thể cập nhật trọng số bằng gradient descent. Vì thế người ta đưa ra những biến thể của hàm số này bằng cách làm mềm đi phần gấp khúc tại gốc tọa độ. Một biến thể như vậy là hàm sigmoid. Công thức và đồ thị của hàm sigmoid lần lượt là: sigmoid(x) = 1 1 + e−x (2.3) Hình 2.5: Bên trái là đồ thị của hàm sigmoid, bên phải là đồ thị cho đạo hàm của nó Hàm sigmoid có đặc điểm là đầu ra của nó luôn không âm, hay còn gọi là bị bias (lệch) về phía dương. Trong một số trường hợp ta vẫn cần đến sự truyền đi của những tham số âm trong mạng. Trong những trường hợp đó người ta sử dụng biến thể khác là hàm hyperbolic tangent (tanh). Hàm tanh có hình dạng tương tự như hàm sigmoid tuy nhiên khác biệt đến từ khoảng giá trị của nó là (−1, 1). Công thức và đồ thị của hàm tanh lần lượt là: ex − e−x tanh(x) = x (2.4) e + e−x Hình 2.6: Bên trái là đồ thị của hàm tanh, bên phải là đồ thị cho đạo hàm của nó Các hàm tanh và sigmoid đã giải quyết được phần nào vấn đề đạo hàm bằng 0 của hàm heaviside-step ban đầu. Tuy nhiên khi xu hướng thiết kế mạng những năm gần đây trở thành cố gắng đi sâu hơn, chồng nhiều lớp tính toán lên nhau hơn thì nó bắt đầu bộc lộ nhược điểm. Đạo hàm của những hàm này phần lớn có giá trị rất gần 0, và khi thực hiện lan truyền ngược cho quá trình huấn luyện thì việc áp dụng quy tắc chuỗi khiến ta phải tính tích liên tục những giá trị gần 0 như thế. Đạo hàm cuối cùng dần bị triệt tiêu, do máy tính chỉ lưu được số thực ở dạng xấp xỉ (bài toán triệt tiêu đạo hàm - vanishing gradient). Vì vậy người ta thiết kế ra một hàm kích hoạt có đạo hàm bằng 1 mà vẫn phi 8
- Xem thêm -

Tài liệu liên quan