3.2.2.1. Khoảng cách Levenshtein
Levenshtein là khoảng cách khác biệt giữa 2 chuỗi ký tự, khoảng cách này được đặt tên theo Vladimir Levenshtein – người đề ra khái niệm này vào năm 1965. Khoảng cách Levenshtein giữa chuỗi S và chuỗi T là số bước ít nhất biến chuỗi S thành chuỗi T thông qua 3 phép biến đổi:
− Xoá 1 ký tự: “steam” → “team”.
− Thêm 1 ký tự: “steam” → “stream”.
− Thay ký tự này bằng ký tự khác: “steam” → “steal”.
Hình 3-6. Ảnh minh họa 3 phép biến đổi thêm, sửa, xóa14.
Ví dụ, khoảng cách Levenshtein giữa chuỗi “sitting” và “kitten” là 3 vì “sitting” cần ít nhất 3 bước biến đổi để trở thành “kitten”:
− Bước 1: “sitting” → “kitting” (thay thế).
− Bước 2: “kitting” → “kitteng” (thay thế).
− Bước 3: “kitteng” → “kitten” (xóa).
3.2.2.2. Độ đo CER
Trong cuộc thi RIVF2021 MC-OCR, độ đo CER được sử dụng để đánh giá kết quả được các thí sinh nộp lên.
14 https://towardsdatascience.com/evaluating-ocr-output-quality-with-character-error-rate-cer-and- word-error-rate-wer-853175297510
52
CER được xây dựng dựa trên khoảng cách Levenshtein với công thức như sau:
Trong đó:
− là số bước biến đổi ít nhất để chuyển kết quả dự đoán được thành đáp án thực tế (groundtruth).
− là số ký tự trong đáp án thực tế.
3.3.Quy trình thực nghiệm và đánh giá 3.3.1 Dữ liệu 3.3.1 Dữ liệu
Dữ liệu trong quá trình thực nghiệm được lấy từ cuộc thi RIVF2021 MC-OCR. Trong đó:
− Tập train của cuộc thi được dùng để huấn luyện các model object detection ở giai đoạn 1.
− Tập private test của cuộc thi được dùng để model dự đoán kết quả và submit kết quả lên server của cuộc thi để nhận được đánh giá.
3.3.2 Cài đặt môi trường
− Link reference: https://github.com/open-mmlab/mmdetection
− Yêu cầu cài đặt:
− Chuẩn bị:
+ config_faster_rcnn.py: file dùng để thiết lập cấu hình cho phương pháp Faster RCNN.
+ config_yolov3.py: file dùng để thiết lập cấu hình cho phương pháp YOLOv3.
+ config_yolof.py: file dùng để thiết lập cấu hình cho phương pháp YOLOF.
Python v3.7.10 PyTorch: 1.7.0 CUDA >= v10.0 MMCV >= 1.3.8
53 3.3.3 Tiến hành thực nghiệm
3.3.3.1. Huấn luyên model
(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:
3.3.3.2. Nhận diện và rút trích thông tin:
Sau khi huấn luyện các model để nhận diện và phân loại thông tin cần trích xuất, nhóm sử dụng các model này để dự đoán bounding box của các thông tin trong từng hóa đơn và lưu trữ thông tin của các bounding box này dưới dạng file json (COCO format) (Giai đoạn 1).
File json này sau đó sẽ được đưa qua model pretrained TransformerOCR của Phạm Quốc được nhắc đến ở phần 2.2.2.2. Kết quả đầu ra của model là phần thông tin trong các bounding box dưới dạng text được nhóm chuyển vào file csv theo đúng format quy định của cuộc thi RIVF2021 MC-OCR để submit
lên trang web cuộc thi
(https://aihub.vn/competitions/1?fbclid=IwAR38wwnawFQDJbCLzOiVEG5sS YEOshGfisF4xjePXZK6Irlv2482aAIarsY#participate-submit_results) và được chấm điểm tự động dựa trên độ đo CER.
!python tools/train.py config_faster_rcnn.py
!python tools/train.py config_yolov3.py
54
Hình 3-7. Ảnh format file csv dùng để submit cho cuộc thi RIVF2021 MC- OCR.
Do nhãn tập private test của cuộc thi RIVF2021 MC-OCR không được công bố và kết quả trả về sau khi submit lên trang web cuộc thi chỉ có điểm CER để đánh giá kết quả cuối cùng của bài toán, nhóm chỉ có thể đánh giá các phương pháp dựa trên điểm CER nhận được khi submit kết quả trong cuộc thi.
3.3.4 Kết quả 3.3.4.1. Kết quả thực nghiệm 3.3.4.1. Kết quả thực nghiệm CER Faster R-CNN 0.454742 YOLOv3 0.439313 YOLOF 0.545651
Bảng 3-1. Bảng kết quả thực nghiệm 3 phương pháp Faster R-CNN, YOLOv3 và YOLOF khi submit kết quả lên cuộc thi MC-OCR.
55 3.3.4.2. Đánh giá kết quả
Dựa vào kết quả thực nghiệm, nhóm nhận thấy rằng:
− YOLOv3 có điểm CER thấp nhất nghĩa là đây là model thể hiện tốt nhất trong việc thực hiện giai đoạn 1 của bài toán rút trích thông tin hóa đơn giữa 3 model được thực nghiệm.
− Kết quả của Faster R-CNN có thấp hơn YOLOv3 đôi chút, tuy nhiên, CER là dự đoán chung trên cả 4 loại đối tượng, do vậy, với kết quả không mấy chênh lệch, có khả năng Faster R-CNN sẽ có dự đoán tốt hơn YOLOv3 ở một vài loại đối tượng.
− Kết quả của YOLOF hoàn toàn thấp hơn hẳn so với các kết quả khác.
56
Chương 4. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 4.1.Kết luận
4.1.1 Kết quả đạt được
− Cái nhìn tổng quan về bài toán phát hiện đối tượng, lịch sử phát triển của nó, cụ thể là phát hiện đối tượng trong ảnh hóa đơn.
− Thực nghiệm phương pháp Faster R-CNN, YOLOv3, YOLOF cho bước phát hiện đối tượng.
− Sử dụng được model pretrained TransformerOCR cho bước trích xuất thông tin đã được phát hiện.
4.1.2 Hạn chế
− Còn nhiều vấn đề trong lĩnh vực trong xử lý ảnh và xử lý ngôn ngữ tự nhiên vẫn chưa rõ.
− Kết quả dự đoán còn thấp.
4.2.Hướng phát triển
− Áp dụng các thuật toán mới cho phát hiện đối tượng và trích xuất thông tin trong hóa đơn ra văn bản.
57
TÀI LIỆU THAM KHẢO
[1]Huang, Z., Chen, K., He, J., Bai, X., Karatzas, D., Lu, S., & Jawahar, C. V. (2019, September). Icdar2019 competition on scanned receipt ocr and information extraction. In 2019 International Conference on Document Analysis and Recognition (ICDAR) (pp. 1516-1520). IEEE.
[2]Ren, S., He, K., Girshick, R., & Sun, J. (2015). Faster r-cnn: Towards real-time object detection with region proposal networks. arXiv preprint arXiv:1506.01497.
[3]Yu, W., Lu, N., Qi, X., Gong, P., & Xiao, R. (2020). Pick: processing key information extraction from documents using improved graph learning- convolutional networks. arXiv preprint arXiv:2004.07464.
[4]Xu, Y., Li, M., Cui, L., Huang, S., Wei, F., & Zhou, M. (2020, August). Layoutlm: Pre-training of text and layout for document image understanding. In Proceedings of the 26th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (pp. 1192-1200).
[5]Patel, S., & Bhatt, D. (2020). Abstractive Information Extraction from Scanned Invoices (AIESI) using End-to-end Sequential Approach. arXiv preprint arXiv:2009.05728.
[6]Zou, Z., Shi, Z., Guo, Y., & Ye, J. (2019). Object detection in 20 years: A survey. arXiv preprint arXiv:1905.05055.
[7]Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2018). Bert: Pre- training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.
[8]Parmar, N., Vaswani, A., Uszkoreit, J., Kaiser, L., Shazeer, N., Ku, A., & Tran, D. (2018, July). Image transformer. In International Conference on Machine Learning (pp. 4055-4064). PMLR.
[9]Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). Attention is all you need. In Advances in neural information processing systems (pp. 5998-6008).
58
[10] Ba, J. L., Kiros, J. R., & Hinton, G. E. (2016). Layer normalization. arXiv preprint arXiv:1607.06450.
[11] Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You only look once: Unified, real-time object detection. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 779-788).
[12] Redmon, J., & Farhadi, A. (2017). YOLO9000: better, faster, stronger. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 7263-7271).
[13] Redmon, J., & Farhadi, A. (2018). Yolov3: An incremental improvement. arXiv preprint arXiv:1804.02767.
[14] Chen, Q., Wang, Y., Yang, T., Zhang, X., Cheng, J., & Sun, J. (2021). You only look one-level feature. In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (pp. 13039-13048).
[15] Yu, F., & Koltun, V. (2015). Multi-scale context aggregation by dilated convolutions. arXiv preprint arXiv:1511.07122.