Huấn luyện model

Một phần của tài liệu Đánh giá phương pháp rút trích thông tin hóa đơn tại việt nam (khóa luận tốt nghiệp) (Trang 72 - 84)

Chương 4 THỰC NGHIỆM VÀ ĐÁNH GIÁ

4.3. Quy trình thực nghiệm và đánh giá

4.3.3 Huấn luyện model

4.3.3.1. Giai đoạn 1

(a) Phương pháp Faster R-CNN:

− Chạy huấn luyện bằng command:

(b) Phương pháp YOLOv3:

− Chạy huấn luyện bằng command:

(c) Phương pháp YOLOF:

− Chạy huấn luyện bằng command:

!python tools/train.py config_faster_rcnn.py Python v3.7.10

PyTorch: 1.7.0 CUDA >= v10.0 MMCV >= 1.3.8

!python tools/train.py config_yolov3.py

73

4.3.3.2. Giai đoạn 2

Chúng tôi tiến hành huấn luyện model TransformerOCR và AttentionOCR dựa trên hướng dẫn từ tác giả của VietOCR. Đầu tiên, chúng tôi chuẩn bị dữ liệu để huấn luyện theo yêu cầu của model.

Hình 4-6: Cấu trúc thư mục dữ liệu được yêu cầu (ảnh cắt từ trang hướng dẫn sử dụng model1).

Hình 4-7: Định dạng file nhãn theo yêu cầu (ảnh cắt từ trang hướng dẫn sử dụng model2).

Dựa trên yêu cầu của model, chúng tôi cắt các bounding box từ các ảnh của bộ train và bộ val thành các ảnh riêng biệt, chỉ chứa một dịng ký tự của hóa đơn, sau đó tiến hành quay ngang dòng ký tự (đối với các bounding box có chiều cao lớn hơn chiều rộng, chúng tôi xoay ảnh 90° theo chiều kim đồng hồ), sau đó, chúng tơi tiến hành tạo file nhãn dựa trên nhãn của bộ dữ liệu mới của chúng tôi.

1 https://pbcquoc.github.io/vietocr/ 2 https://pbcquoc.github.io/vietocr/

74

Dựa trên bộ dữ liệu ban đầu, chúng tôi đã tạo ra dữ liệu nhằm huấn luyện model TransformerOCR và AttentionOCR với 6,115 ảnh train và 2,190 ảnh test. Chúng tôi chạy code được tác giả cung cấp sẵn để huấn luyện cả hai model.

4.3.4 Đánh giá model 4.3.4.1. Giai đoạn 1

(a) Phương pháp Faster R-CNN:

− Tính giá trị mAP của tồn bộ tập test bằng command sau:

− Chạy kiểm thử trên tập test và lưu kết quả vào thư mục result_faster_rcnn:

(b) Phương pháp YOLOv3:

− Tính giá trị mAP của toàn bộ tập test bằng command sau:

− Chạy kiểm thử trên tập test và lưu kết quả vào thư mục result_yolov3: ! python tools/test.py config_faster_rcnn.py ./work_dirs/

config_faster_rcnn/latest.pth --show-dir result_faster_rcnn

!python tools/test.py config_ faster_rcnn.py

./work_dirs/config_faster_rcnn/latest.pth --eval bbox -- options "classwise=True"

!python tools/test.py config_ yolov3.py

./work_dirs/config_yolov3/latest.pth --eval bbox -- options "classwise=True"

! python tools/test.py config_yolov3.py ./work_dirs/ config_yolov3/latest.pth --show-dir result_yolov3

75

(c) Phương pháp YOLOF:

− Tính giá trị mAP của tồn bộ tập test bằng command sau:

− Chạy kiểm thử trên tập test và lưu kết quả vào thư mục result_yolof:

4.3.4.2. Giai đoạn 2

Chúng tôi sử dụng kết quả bounding box được dự đoán trên tập test ở giai đoạn 1 để làm đầu vào cho model TransformerOCR và AttentionOCR đã được huấn luyện. Các bounding box này sẽ được cắt ra khỏi ảnh, và quay 90º theo chiều kim đồng hồ nếu bounding box có chiều cao lớn hơn chiều rộng sau đó mới được đưa vào dự đốn trong model. Sau khi có được kết quả dự đốn từ 2 model, chúng tôi tiến hành so sánh và đánh giá kết bằng độ đo CER và WER.

4.3.5 Kết quả

4.3.5.1. Kết quả thực nghiệm

mAP

AP

SELLER ADDRESS TIMESTAMP TOTAL_COST Faster R-

CNN 57.5 59.1 63.0 53.4 54.8 YOLOv3 50.1 50.2 37.0 53.4 58.8 YOLOF 28.4 31.7 11.5 31.1 39.1

Bảng 4-1: Bảng kết quả thực nghiệm 3 phương pháp Faster R-CNN, YOLOv3 và YOLOF cho giai đoạn đầu của bài toán (Kết quả tốt nhất được in đậm).

!python tools/test.py config_ yolof.py

./work_dirs/config_yolof/latest.pth --eval bbox --options "classwise=True"

! python tools/test.py config_yolof.py ./work_dirs/ config_yolof/latest.pth --show-dir result_yolof

76

Objectection OCR CER (%/ảnh) WER (%/ảnh) Faster R-CNN TransformerOCR 26.11 32.47 AttentionOCR 26.80 33.47 YOLOv3 TransformerOCR 50.95 55.89 AttentionOCR 51.82 57.01 YOLOF TransformerOCR 95.27 95.73 AttentionOCR 95.27 95.75

Bảng 4-2: Bảng kết quả thực nghiệm và thời gian thực nghiệm của các phương pháp AttentionOCR và TransformerOCR cho giai đoạn sau của bài toán (Kết quả tốt nhất

được in đậm).

Dựa trên Bảng 4-2, ta thấy TransformerOCR có kết quả bằng hoặc cao hơn AttentionOCR khoảng từ 0% cho đến 0.87% CER hay từ 0% cho đến 1.12% WER.

4.3.5.2. Hình ảnh minh họa

(a) Phương pháp Faster R-CNN:

77

Hình 4-8. Ảnh minh họa trường hợp dự đoán tốt khi thực nghiệm bằng phương pháp Faster R-CNN.

78

Hình 4-9: Ảnh minh họa trường hợp dự đốn khơng tốt bằng phương pháp Faster R- CNN (1).

Hình 4-10: Ảnh minh họa trường hợp dự đốn khơng tốt bằng phương pháp Faster R-CNN (2).

(b) Phương pháp YOLOv3:

79

Hình 4-11: Ảnh minh họa trường hợp dự đoán tốt bằng phương pháp YOLOv3.

80

Hình 4-12: Ảnh minh họa trường hợp dự đốn khơng tốt bằng phương pháp YOLOv3 (dự đoán thiếu).

(c) Phương pháp YOLOF:

81

Hình 4-13: Ảnh minh họa trường hợp dự đoán tốt bằng phương pháp YOLOF.

− Trường hợp dự đốn khơng tốt

Hình 4-14: Ảnh minh họa trường hợp dự đốn khơng tốt bằng phương pháp YOLOF (dự đốn thiếu).

82

Hình 4-15: Ảnh minh họa trường hợp dự đốn khơng tốt bằng phương pháp YOLOF (Dự đoán nhiều bounding box trên một đối tượng thực tế).

Hình 4-16: Ảnh minh họa trường hợp dự đốn khơng tốt bằng phương pháp YOLOF (Dự đoán sai đối tượng, bounding box chỉ bao một phần của đối tượng).

4.3.5.3. Đánh giá kết quả

Sau khi tiến hành chạy thực nghiệm 3 model Faster R-CNN, YOLOv3, YOLOF thu được kết quả:

83

− Model YOLOv3 cho ra kết quả cao nhất ở lớp TIMESTAMP, lớp TOTAL_COST.

− Model Faster R-CNN cho ra kết quả cao nhất ở lớp SELLER, ADDRESS.

− Model YOLOF cho ra kết quả thấp nhất ở cả 4 lớp so với hai model còn lại là Faster R-CNN và YOLOv3.

− Có nhiều nguyên nhân dẫn đến kết quả thực nghiệm thấp:

+ Sự đa dạng định dạng hóa đơn: bố cục, định dạng font chữ, định dạng thời gian, đa dạng ngơn ngữ, độ đậm nhạt của mực in hóa đơn, …

+ Bộ dữ liệu đa dạng về: độ phân giải, ánh sáng, chiều hướng của ảnh, …

84

Một phần của tài liệu Đánh giá phương pháp rút trích thông tin hóa đơn tại việt nam (khóa luận tốt nghiệp) (Trang 72 - 84)

Tải bản đầy đủ (PDF)

(104 trang)