5. Ý nghĩa thực tiễn của đề tài
3.1 Mơ hình tổng qt
Từ những cơ sở lý thuyết ở trên, luận văn đi sâu vào Xây dựng công cụ số hóa phiếu xét nghiệm covid19. Mơ hình tổng qt hình 3.1
Hình 3.1 Quy trình thực hiện số hóa trong luận văn. Mô tả: Mô tả:
- Bước 1: sử dụng YOLOv4 phát hiện các đối tượng cần trích xuất trên mẫu phiếu xét nghiệm.
o Input: ảnh phiếu xét nghiệm.
o Output: ảnh các đối tượng: id, target_name, method, result.
- Bước 2: sử dụng CTPN phát hiện vùng chứa văn bản từ các đối tượng được nhận diện ở bước 1.
o Input: ảnh các đối tượng: id, target_name, method, result.
o Output: ảnh văn bản.
- Bước 3: sau khi đã có ảnh văn bản, sử dụng Tranformer OCR trích xuất ký tự từ ảnh văn bản ở bước 2.
o Input: ảnh văn bản.
o Output: văn bản.
Kết quả: từ 1 một ảnh phiếu xét nghiệm sau khi xử lý ta được những thông tin cần thiết dưới dạng văn bản.
36
3.2 Thu thập dữ liệu.
3.2.1 Tập dữ liệu phiếu xét nghiệm
Luận văn sử dụng Internet để tìm kiếm dữ liệu dữ liệu ảnh chụp phiếu xét nghiệm covid19. Sau quá trình tìm kiếm và lựa chọn dữ liệu, luận văn thấy rằng dữ liệu ảnh chụp phiếu xét nghiệm bao gồm những đối tượng sau đây cần chú trọng để lưu : - Số phiếu là mã phiếu xét nghiệm.
- Tên chẩn đoán phiếu thường là “Yêu cầu xét nghiệm SARS Covid19”. - Phương pháp xét nghiệm “PCR-REALTIME”.
37
Hình 3.2 Phiếu xét nghiệm covid âm tính
Hình 3.3 Phiếu xét nghiệm covid dương tính
Hình 3.4 Tập dữ liệu thu thập.
Dữ liệu được thu thập sẽ được dán nhẵn bằng công cụ LabelImg: gồm 4 đối tượng - Id (mã định danh).
- Method (phương pháp xét nghiệm). - Target_name (yêu cầu xét nghiệm). - Result (kết quả).
38
Hình 3.5 Sử dụng labelimg dán nhẵn.
39
Hình 3.7 Các đối tượng được dáng nhẵn
40
41 Kết quả dán nhãn
Hình 3.10 Thư mục chứa mẫu đã dán nhẵn. Bợ dữ liệu 500 mẫu chia ra 80% huấn luyện, 20% kiểm thử. Bộ dữ liệu 500 mẫu chia ra 80% huấn luyện, 20% kiểm thử.
42
3.2.2 Tập dữ liệu cho phát hiện văn bản
- Tập dữ liệu phát hiện văn bản sử dụng tập dữ liệu ICDAR 2013 gồm 3422 mẫu.
Hình 3.11 Tập dữ liệu ICDAR 2013
- Kết hợp thêm 500 mẫu trích xuất từ tập dữ liệu đối tượng phiếu xét nghiệm.
43
- Gộp 2 bộ dữ liệu ICDAR 2013 với bộ dữ liệu ảnh văn bản đối tượng phiếu xét nghiệm, dán nhãn text bằng công cụ LabelImg (tọa độ số thực).
Hình 3.13 Đối tượng văn bản được dán nhẵn Tiền xử lý dữ liệu Tiền xử lý dữ liệu
Bợ dữ liệu trích xuất từ phiếu xét nghiệm sử dụng cơng cụ LabelImg dán nhãn text.
44
Hình 3.15 Kết quả dán nhẵn bợ dữ liệu phiếu xét nghiệm.
Xử lý dữ liệu làm đầu vào huấn luyện CTPN. Chuyển đổi dữ liệu kiểu số thực sang kiểu số nguyên.
Hình 3.16 Chuyển đổi dữ liệu đã dán nhẵn từ số thực sang tọa độ kiểu nguyên. - Gộp 2 bộ dữ liệu đã có, Chuyển đổi dữ liệu x1, y1, x2, y2 sang tọa độ 4 góc:
o top left: x1, y1 (minX, minY).
o top right: x2, y2 (maxX, minY).
o bottom right: x3, y3 (maxX, maxY).
o bottom left: x4, y4 (minX, maxY).
45
- Split dữ liệu tọa độ 4 góc của bước trên thành dữ liệu đầu vào cho CTPN.
Hình 3.18 Chủn đổi tọa đợ 4 góc thành dữ liệu đầu vào CTPN
Hình 3.19 Biểu diễn hình ảnh kết quả sau khi chuyển đổi.
46 Kết quả
Hình 3.20 Bộ dữ liệu sau khi chuyển đổi.
3.2.3 Tập dữ liệu cho OCR
- Bộ dữ liệu ảnh Tiếng Việt 344.143 ảnh, đã được dán nhẵn sẵn.
Hình 3.21 Bợ dữ liệu ảnh Tiếng việt.
47
Hình 3.22 Bợ dữ liệu kết hợp trích x́t từ phiếu xét nghiệm - Bộ dữ liệu đã được dán nhẵn sẵn. - Bộ dữ liệu đã được dán nhẵn sẵn.
Hình 3.23 Dán nhãn dữ liệu
- Kết hợp thêm 600 ảnh trích xuất từ tập dữ liệu phiếu xét nghiệm được dán nhãn thủ cơng.
48
- \
Hình 3.24 Dán nhãn dữ liệu phiếu xét nghiệm. - Dữ liệu được chia ra 300.617 ảnh train và 44.126 ảnh test. - Dữ liệu được chia ra 300.617 ảnh train và 44.126 ảnh test.
- Gộp 2 bộ dữ liệu Tiếng Việt 344.143 ảnh và bộ dữ liệu 600 ảnh trích xuất từ tập dữ liệu phiếu xét nghiệm.
- Dữ liệu được chia ra 300.617 ảnh huấn luyện và 44.126 ảnh kiểm thử.
3.2 Các bước xây dựng phương pháp
3.2.1 Phát hiện đối tượng trên phiếu xét nghiệm
- Dữ liệu phiếu xét nghiệm covid-19 sau khi được thu thập và gắn nhãn được chuyển đổi thành ảnh trắng đen, khử nhiễu bằng phương pháp GAUSS
- Dữ liệu sau khi gán nhẵn được chia ra làm 80% cho huấn luyện, 20% kiểm thử.
- Chỉnh file config YOLOv4 huấn luyện
o width=416.
o height=416.
o learning_rate=0.001.
o max_batches = (# of classes) * 2000 = 4 * 2000 = 8000.
o steps = (80% of max_batches), (90% of max_batches) = (80% of 8000), (90% of 8000) = 6400,7200.
49 filters = (# of classes + 5) * 3 = (4 +5 )*3 = 27.
- Tạo file obj.names and obj.data chứa đường dẫn cấu hình. - Generating train.txt and test.txt chứa địa chỉ ảnh.
- Download pre-trained model weights convolutional layers từ link https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v3_optimal/ yolov4.conv.137
- Sử dụng laptop với cấu hình CPU corei7-9750H, ram 16gb, card Geforce GTX 1650 4MB huấn luyện.
- Kiểm tra Mean Average Precision (mAP), Accuracy của mơ hình. - Vẽ biểu đồ.
3.2.2 Sử dụng CTPN phát hiện vùng chứa văn bản trên ảnh
- Dữ liệu ảnh văn bản sau khi được thu thập và gắn nhãn được chuyển đổi thành ảnh trắng đen, khử nhiễu bằng phương pháp GAUSS
- Dữ liệu sau khi gán nhẵn được chia ra làm 80% cho huấn luyện, 20% kiểm thử.
- Download pre-trained model weights vgg16.cpkt - Chỉnh file config huấn luyện
o learning_rate=1e-5.
o batch_size = 4.
o max_steps = 50000.
o decay_steps = 3000
o decay_rate = 0.1.
- Sử dụng laptop với cấu hình CPU corei7-9750H, ram 16gb, card Geforce GTX 1650 4MB huấn luyện.
- Kiểm tra Mean Average Precision (mAP), Accuracy của mơ hình. - Vẽ biểu đồ.
3.2.3 Sử dụng Transformer OCR trích xuất văn bản
- Dữ liệu ảnh nhận dạng ký tự sau khi được thu thập và gắn nhãn được chuyển đổi thành ảnh trắng đen, khử nhiễu bằng phương pháp GAUSS
50
- Dữ liệu sau khi gán nhẵn được chia ra làm 80% cho huấn luyện, 20% kiểm thử.
- Download pre-trained model weights vgg16.cpkt - Chỉnh file config huấn luyện
o learning_rate=1e-5.
o batch_size = 4.
o iters = 300000.
o metrics = 1000
o valid_eveery = 100000.
- Sử dụng laptop với cấu hình CPU corei7-9750H, ram 16gb, card Geforce GTX 1650 4MB huấn luyện.
- Kiểm tra Accuracy của mơ hình. - Vẽ biểu đồ.
3.2.4 Quy trình thực nghiệm
- Xử lý khử nhiễu bằng phương pháp Gauss ảnh đầu vào.
- Sau khi sử dụng yolo nhận phát hiện đối tượng phiếu xét nghiệm, ta được tọa độ của các đối tượng.
- Cắt ảnh các đối tượng theo tọa độ.
- Chuyển ảnh ảnh đen trắng các đối tượng phiếu xét nghiệm đã cắt.
- Sử dụng CTPN phát hiện vùng chứa văn bản, ta được tọa độ vùng chưa văn bản.
- Cắt ảnh theo tọa độ vùng chứa văn bản, sau đó resize lại ảnh x2 lần,sử dụng phương pháp khử nhiễu làm tăng đợ chính xác cho OCR.
51
THỰC NGHIỆM ĐÁNH GIÁ KẾT QUẢ
4.1 Phát hiện đối tượng trên phiếu xét nghiệm bằng YOLOv4
Công cụ: Laptop lenovo Legion y540
Hình 4.1 Thơng tin máy tính sử dụng. Q trình huấn luyện. Thời gian huấn luyện 8000 iteration ~ 36h. Q trình huấn luyện. Thời gian huấn luyện 8000 iteration ~ 36h.
52 Loss diagram
Hình 4.3 Biểu đồ loss diagram Yolov4. Bảng 4.1 Kết quả quá trình huấn luyện YOLOv4. Bảng 4.1 Kết quả quá trình huấn luyện YOLOv4.
Info Score Best accuracy 90.4% mAP 86.42% Class 0 (id) – AP 90,7% Class 1 (target_name) – AP 86,67% Class 2 (method) – AP 77,03% Class 3 (result) – AP 91,02%
53 Kết quả thực nghiệm.
Hình 4.4 Kết quả nhận diện Yolov4 1
54
55
Hình 4.7 Kết quả nhận diện Yolov4 4
56
Đối tượng được nhận diện sẽ được cắt ra: chuẩn bị cho đầu vào bước 2 (CTPN nhận diện text)
Hình 4.9 Ảnh các đối tượng trên phiếu xét nghiệm sau khi đã nhận dạng 1.
4.2 Phát hiện ảnh chứa văn bản bằng CTPN
Công cụ: Laptop lenovo Legion y540
57
Quá trình huấn luyện. Thời gian huấn luyện 50000 iteration ~ 48h.
Hình 4.11 Quá trình huấn luyện CTPN Bảng 4.2 Kết quả quá trình huấn luyện CTPN. Bảng 4.2 Kết quả quá trình huấn luyện CTPN.
Info Score
mAP 87%
Kết quả thực nghiệm:
Chuyển sang ảnh trắng đen. Sử dụng CTPN phát hiện vũng chứa văn bản.
58
Hình 4.13 Nhận diện câu chữ bằng CTPN trên đối tượng target_name
Hình 4.14 Nhận diện câu chữ bằng CTPN trên đối tượng result
Các đối tượng văn bản được cắt ra tương ứng với class đối tượng: id, target_name, method, result.
59
Hình 4.16 Kết quả trích xuất câu chữ từ các đối tượng 2. - Đối tượng method
Hình 4.17 Kết quả trích x́t ảnh văn bản đối tượng method. - Đối tượng target_name
Hình 4.18 Kết quả trích x́t ảnh văn bản đối tượng target_name. - Đối tượng result
60
4.3 Nhận dạng ký tự tiếng việt bằng Transformer OCR
Công cụ: Laptop lenovo Legion y540
Hình 4.20 Thơng tin máy tính h́n luyện. Q trình huấn luyện. Thời gian huấn luyện 30000 iteration ~ 48h.
Hình 4.21 Kết quả huấn luyện Tranformer OCR. Bảng 4.3 Kết quả quá trình huấn luyện Tranformer OCR. Bảng 4.3 Kết quả quá trình huấn luyện Tranformer OCR.
61
Info Score
acc full seq 93.82%
acc per char 98,9%
Loss diagram
Hình 4.22 Biểu đồ loss diagram
62
63
SO SÁNH VỚI TESSERACT OCR
TRANFORMER OCR TESSERACT OCR
1
64 3
65 5
Kết quả cho thấy Tranformer OCR hiệu quả hơn Tesseract OCR về đợ chính xác nhận trích xuất câu chữ, ký tự.
4.4 Đánh giá
Từ kết quả trên ta đưa ra đánh giá sau:
- Đối với việc phát hiện đối tượng bằng YOLO trên trên phiếu xét nghiệm, tỷ lệ chính xác chưa cao đối với ảnh đầu vào bị nghiêng, xéo. Vì tập dữ liệu cịn ít, và đa phần các mẫu rời rạc không đồng nhất. Bên cạnh đó đối với ảnh đầu vào tốt, YOLO xác định vị trí của đối tượng dễ dàng và phát hiện được nhiều vật thể có nhãn khác nhau trong mợt bức ảnh thay vì chỉ phân loại duy nhất một nhãn cho một bức ảnh. - Đối với việc phát hiện đối tượng văn bản bằng CTPN tỷ lệ chính xác rất cao, vùng văn bản được bao trùm trọn văn bản, không bị bắt ký tự vùng biên (phụ thuộc vào ảnh đối tượng nhận dạng từ YOLO).
- Đối với việc nhận dạng dịng text đánh máy bằng Tranformer OCR tỷ lệ chính xác cao nên cơ bản đáp ứng được yêu cầu bài toán. Tuy nhiên, đối với ảnh có ký tự bị khuất vùng biên ảnh hưởng lớn đến kết quả nhận dạng.
66
- Một số mẫu cho tỷ lệ nhận dạng ký tự chính xác khá cao 93 % nhưng cũng có mẫu không thể nhận dạng không thành công. Đây có thể do ảnh hưởng chất lượng ảnh đầu vào.
67
KẾT LUẬN VÀ KIẾN NGHỊ
1. Kết luận:
Luận văn đã trình bày khái quát các vấn đề cơ bản liên quan đến bài toán số hóa phiếu xét nghiệm sử dụng kỹ thuật Trí Tuệ Nhân Tạo, hiểu rõ các kỹ thuật nhận dạng đối tượng, nhận dạng ký tự. Trên cơ sở phân tích, kế thừa và ứng dụng các nghiên cứu liên quan, luận văn đã tập trung nghiên cứu, giải quyết bài toán số hóa phiếu xét nghiệm gồm ba bước: phát hiện đối tượng trên phiếu xét nghiệm, trích xuất ảnh chứa văn bản từ đối tượng phiếu xét nghiệm và nhận dạng ký tự văn bản. Một số kết quả đạt của luận văn cụ thể như sau:
- Sử dụng YOLOv4 nhận dạng với tốc đợ nhanh với đợ chính xác tốt, xác định vị trí của đối tượng dễ dàng và phát hiện được nhiều vật thể có nhãn khác nhau trong mợt bức ảnh thay vì chỉ phân loại duy nhất một nhãn cho một bức ảnh. Làm giảm tải việc số hóa chỉ lấy dữ liệu cần thiết so với số hóa dữ liệu tồn bợ phiếu xét nghiệm. - CTPN hoạt động tốt trên những ảnh thiếu sáng, ảnh mờ, có thể xử lý đa ngôn ngữ hiệu quả.
- Tranformer OCR xử lý song song cho các từ so với mơ hình LSTM thì các từ phải được xử lý tuần tự. Vị trí của các từ được mã hóa Positional Encoding bằng mợt vector có kích thước bằng word embedding và được cộng trực tiếp vào word embedding việc nhận diện ký tự chính xác hơn.
Tuy nhiên, luận văn cịn mợt số hạn chế:
- Bộ dữ liệu phiếu xét nghiệm covid19 cho YOLO quá ít. Lý do phiếu xét nghiệm covid19 mang thông tin cá nhân nên việc thu thập mẫu phiếu hạn chế. - Chưa đề x́t được mơ hình đầu cuối tốt nhất cho bài toán số hóa phiếu xét nghiệm.
2. Đề xuất:
- Nghiên cứu các phương pháp nhận dạng văn bản, nhận dạng ký tự hiệu quả hơn để đề x́t mơ hình tốt nhất cho bài tốn số hóa.
68
TÀI LIỆU THAM KHẢO
[1] P. T. Tài. "Tìm hiểu về cơng nghệ nhận dạng kí tự quang học (OCR - Optical Character Recognition) ứng dụng trong các phần mềm phát hiện và xử lý vi phạm luật giao thông thông qua hệ thống camera giám sát." Internet: http://congan.travinh.gov.vn/ch26/351.prt, 30 Agu. 2017.
[2] N. Laodongxahoi.net, "Ảnh hưởng của dịch Covid 19 và những chính sách bảo đảm an sinh xã hội trong đại dịch,". Internet: https://phutho.gov.vn/vi/anh- huong-cua-dich-covid-19-va-nhung-chinh-sach-bao-dam-sinh-xa-hoi-trong- dai-dich, 22 Nov. 2021
[3] Phạm Đình Khanh. "Các thuật tốn Object Detection." Internet: https://phamdinhkhanh.github.io/2019/09/29/OverviewObjectDetection.html, 29 Sep. 2019.
[4] A. Bochkovskiy et al. "YOLOv4: Optimal Speed and Accuracy of Object Detection," 2020.
[5] G. Ghiasi et al. "DropBlock: A regularization method for convolutional
networks. In Advances in Neural Information Processing Systems (NIPS)," pp. 10727–10737, 2018.
[6] M. Chablani. "YOLO — You only look once, real time object detection explained." Internet: https://towardsdatascience.com/yolo-you-only-look- once-real-time-object-detection-explained-492dc9230006, 21 Aug. 2017. [7] Joseph Redmon et al. "You Only Look Once: Unified, Real-Time Object
Detection," 9 May. 2016.
[8] J. Redmon and A. Farhadi, "YOLO9000:Better, Faster, Stronger," Dec. 2016. [9] J. Redmon and A. Farhadt, "YOLOv3: An Incremental Improvement,"
YOLOv3: An Incremental Improvement, Sep. 2018.
[10] C.-Y. Wang et al. "CSPNET: A NEW BACKBONE THAT CAN ENHANCE LEARNING," 27 Nov. 2019.
[11] G. Huang et al. "Densely Connected Convolutional Networks," 28 Jan. 2018. [12] L. Wright. "Meet Mish — New State of the Art AI Activation Function. The successor to ReLU?" Internet: https://lessw.medium.com/meet-mish-new- state-of-the-art-ai-activation-function-the-successor-to-relu-
846a6d93471f#:~:text=ReLU%20has%20some%20known%20weaknesses,bo th%20training%20stability%20and%20accuracy, 27 Agu. 2019.
[13] n. Phung. "Tìm hiểu về CTPN - Connectionist Text Proposal Network." Internet: https://nerophung.github.io/2019/07/25/tim-hieu-ctpn, 24 Jul. 2019.