ĐẠ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 -