TỔNG QUAN
Giới thiệu chung
Trong thời đại số hóa hiện nay, mọi quy trình đều cần đạt được sự chính xác, nhanh chóng và tiện lợi, không chỉ với những tác vụ phức tạp mà còn cả những nhiệm vụ đơn giản như rút trích thông tin từ hóa đơn.
Bài toán rút trích thông tin hóa đơn nhằm tự động hóa các tác vụ văn phòng bằng cách lưu trữ thông tin quan trọng từ hóa đơn Thách thức lớn nhất là đạt độ chính xác gần như tuyệt đối, vì một sai sót nhỏ có thể gây ra hậu quả nghiêm trọng.
Động lực nghiên cứu
The challenge of information extraction has garnered significant attention in the scientific community, evidenced by various competitions such as the Robust Reading Challenge on Scanned Receipts OCR and Information Extraction (ICDAR 2019) and the MC-OCR Challenge for Mobile-Captured Image Document Recognition for Vietnamese Receipts (RIVF 2021) These events have introduced diverse datasets, including Scanned Receipts OCR and Information Extraction (SROIE), leading to a multitude of solutions like PICK, LayoutLM, and AIESI These advancements aim to enhance both the accuracy and efficiency of information extraction from invoices.
Việc rút trích thông tin từ hóa đơn sẽ được áp dụng rộng rãi trong các lĩnh vực kinh tế, tài chính và kế toán, cũng như trong các tác vụ văn phòng Mục tiêu là tự động hóa quá trình lấy thông tin quan trọng từ hóa đơn, giúp nâng cao hiệu quả làm việc.
10 cách giảm thiểu công việc và nâng cao hiệu quả cho nhân viên kế toán, tài chính Những phương pháp này không chỉ giúp tối ưu hóa quy trình làm việc mà còn tạo nền tảng cho việc phát triển các bài toán nhận dạng thông tin có cấu trúc khác.
Phát biểu bài toán
Nghiên cứu này giới thiệu phương pháp rút trích thông tin hóa đơn từ ảnh chụp, với mục tiêu thu thập các dữ liệu quan trọng như tên cửa hàng, địa chỉ, thời gian bán và tổng tiền Đầu vào là hình ảnh hóa đơn, và đầu ra là các thông tin chi tiết từ hóa đơn đó.
SASAWA SUSHI|||132/26 Nguyễn Tri Phương TP VT|||Ngày: 24/10/2020|||Tổng tiền: 333,000
Bảng 1-1 Tổng quan về đầu vào – đầu ra của bài toán.
Phạm vi bài toán
Trong nghiên cứu này, chúng tôi tập trung vào việc áp dụng và thử nghiệm các phương pháp đã được công bố như Faster R-CNN, YOLOv3, YOLOF và TransformerOCR để rút trích thông tin hóa đơn từ bộ dữ liệu RIVF2021 MC-OCR.
Thách thức bài toán
Các vấn đề về môi trường như chất lượng giấy, máy in, mực in, ánh sáng và ảnh có thể dẫn đến việc chữ trên hóa đơn không rõ ràng và khó đọc Hóa đơn bị nếp gấp, uốn cong và chụp từ nhiều góc độ làm cho các dòng chữ bị biến dạng, gây khó khăn trong việc nhận dạng Điều này đòi hỏi kỹ thuật tiền xử lý ảnh và trích đặc trưng phù hợp Hơn nữa, các bộ dữ liệu hiện có, đặc biệt là hóa đơn tiếng Việt, còn nhỏ và cần được tăng cường để cải thiện kết quả Sự đa dạng về bố cục, cách thể hiện từ ngữ, kiểu chữ và biến dạng ký tự trong tên cửa hàng cũng là những thách thức lớn trong quá trình xử lý.
Hiện nay, nhiều nghiên cứu đã áp dụng các mạng dựa trên kiến trúc CNN, Attention và các mạng tùy chỉnh để cải thiện độ chính xác Mỗi loại mạng có mức độ chính xác khác nhau, do đó cần nghiên cứu và điều chỉnh kỹ lưỡng để đạt được kết quả tối ưu Việc tìm ra phương pháp hiệu quả nhất là điều cần thiết để nâng cao hiệu suất trong các ứng dụng thực tiễn.
Đóng góp của nghiên cứu
− Tìm hiểu tổng quan về phương pháp Faster R-CNN và các kỹ thuật Deep Learning cho bài toán rút trích thông tin hóa đơn tiếng Việt
Hình 1-1 Một số ví dụ về những thách thức của bài toán
− Tìm hiểu dữ liệu hiện có để ứng dụng vào bài toán và thực hiện tăng cường dữ liệu.
Cấu trúc nghiên cứu
Nghiên cứu này được trình bày trong 4 chương, nội dung chính được tóm tắt như dưới đây:
Chương 1 của bài viết cung cấp cái nhìn tổng quan về nghiên cứu, bao gồm động lực thúc đẩy việc nghiên cứu, xác định vấn đề cần giải quyết và phạm vi nghiên cứu liên quan Từ đó, chương này cũng nêu rõ các đóng góp chính của khóa luận, giúp người đọc hiểu rõ hơn về mục tiêu và ý nghĩa của nghiên cứu.
Chương 2 trình bày các cơ sở lý thuyết và nghiên cứu liên quan đến bài toán rút trích thông tin Bên cạnh đó, chương này cũng khám phá những xu hướng nghiên cứu mới, nhằm cung cấp cái nhìn sâu sắc và cập nhật về lĩnh vực này.
− Chương 3: Trình bày kết quả thực nghiệm và đánh giá ưu điểm, hạn chế của phương pháp được chọn để khảo sát
− Chương 4: Nêu kết quả đạt được, kết luận, định hướng nghiên cứu trong tương lai.
CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN
Một số cơ sở lý thuyết
Mạng nơ-ron (Neural Network) được sử dụng để rút trích đặc trưng từ bộ dữ liệu đầu vào, giúp các nhà nghiên cứu phân tích thông tin và phát triển giải pháp cho các vấn đề khác nhau Kiến trúc của mạng nơ-ron bao gồm ba nhóm lớp chính: lớp đầu vào (input layer), các lớp ẩn (hidden layers) và lớp đầu ra (output layer) Mỗi lớp chứa một hoặc nhiều nút (node), nơi diễn ra các tác vụ chính Các nút của hai lớp liền kề được kết nối qua các liên kết, cho phép dữ liệu đầu ra của lớp này trở thành đầu vào của lớp kia, từ đó dữ liệu được xử lý liên tục cho đến khi đạt được kết quả mong muốn ở lớp cuối cùng.
Mạng rơ-ron tích chập (CNN) sử dụng nguyên lý phản hồi và lan truyền ngược để tối ưu hóa trọng số và bias trong quá trình huấn luyện mô hình Điểm nổi bật của CNN là việc áp dụng phép tính convolution vào các lớp trong Neural Network, giúp giảm số lượng tham số đầu vào mà vẫn đảm bảo hiệu suất học tập và độ chính xác cao cho mô hình.
Trong kiến trúc CNN, có nhiều lớp được thiết kế với các chức năng riêng biệt như: Lớp Kết Nối Đầy Đủ (Fully Connected Layer), Lớp Tích Chập (Convolutional Layer), Lớp Gộp (Pooling Layer) và Lớp Gộp Tối Đa (Max Pooling Layer).
Lớp tích chập (Convolutional Layer) là lớp đầu tiên trong mạng nơ-ron tích chập, có nhiệm vụ trích xuất các đặc trưng từ hình ảnh đầu vào thông qua phép tính tích chập Lớp này không chỉ thực hiện các phép toán trên dữ liệu mà còn truyền thông tin đến lớp tiếp theo Để tối ưu hóa quá trình huấn luyện, có ba siêu tham số quan trọng cần được thiết lập trước, ảnh hưởng đến kích thước của đầu ra.
− Số lượng của Filter/Kernel: ảnh hưởng đến sộ sâu (depth) của đầu ra
− Stride: Biểu thị số bước nhảy mà bộ lọc dịch chuyển, dùng để giảm kích thước đầu ra
Zero-padding là một kỹ thuật giúp duy trì kích thước dữ liệu phù hợp với các bộ lọc trong kiến trúc mạng, thông qua việc thêm giá trị 0 vào viền ảnh của dữ liệu đầu vào Có ba loại padding chính: Valid padding, Same padding và Full padding.
Hình 2-1 Ảnh mô tả hướng di chuyển của kernel (k = 3) trên ảnh màu
Pooling Layer được sử dụng giữa các Convolutional Layer nhằm giảm kích thước dữ liệu mà vẫn giữ lại các đặc trưng quan trọng Việc giảm kích thước dữ liệu này không chỉ giúp tối ưu hóa hiệu suất mà còn giảm thiểu khối lượng tính toán trong mô hình.
Khi dùng Pooling Layer với size = , stride = 2 padding = 0 thì output with và height của dữ liệu sẽ giảm đi một nửa, depth thì được giữ nguyên
Hình 2-2 Biến thể Pooling Layer
Có nhiều biến thể của Pooling Layer, phổ biến là Max Pooling, Average Pooling (Hình 2-2) …
Fully Connected Layer thường được sử dụng ở các lớp cuối của kiến trúc CNN để tổng hợp đầu ra và tạo ra kết quả cho mô hình Nó có khả năng phân loại các lớp đối tượng khi kết hợp với các hàm kích hoạt như softmax hoặc sigmoid.
Mạng tích chập đầy đủ (Fully Convolutional Network) là một kiến trúc mạng linh hoạt, cho phép xử lý dữ liệu đầu vào với kích thước tùy ý và tạo ra đầu ra tương ứng Kiến trúc này kế thừa từ các mạng phân lớp nổi bật như VGGNet, AlexNet, GoogleLeNet và ResNet, nhằm giải quyết các vấn đề phức tạp trong lĩnh vực học máy Mạng tích chập đầy đủ có khả năng tinh chỉnh ba thông số quan trọng: chiều cao (h), chiều rộng (w) và chiều sâu (d) của tất cả các lớp mạng.
Các công trình nghiên cứu liên quan
Hình 2-3 Mốc thời gian cho sự ra đời các phương phát hiện đối tượng (1990 –
Thuật toán Selective Search được phát triển với mục tiêu đơn giản là tạo ra khoảng 2000 Bounding-box từ đầu vào, nhằm xác định các khu vực có khả năng chứa đối tượng Tiếp theo, mỗi Bounding-box sẽ được phân loại để nhận diện đối tượng bên trong.
Input là 1 ảnh màu Output là khoảng 2000 Bounding-box trong input mà có khả năng chứa đối tượng
(ii) Phân loại region proposal
After performing selective search, the region proposals are resized to a uniform dimension and undergo transfer learning with a feature extractor Subsequently, the extracted features are input into an SVM algorithm for image classification.
Với mỗi ảnh cần phải phân loại class cho khoảng 2 000 region proposal nên mất khá nhiều thời gian
Similar to R-CNN, Fast R-CNN utilizes Selective Search to generate region proposals, but it differs by not separating the 2,000 region proposals from the image for individual image classification Instead, Fast R-CNN processes the entire image through a ConvNet, which consists of several convolutional layers and a max pooling layer, to produce a convolutional feature map.
Due to the varying sizes of region proposals, flattening them results in vectors of different dimensions, making it incompatible with neural networks Additionally, feature maps cannot be resized; therefore, to standardize the dimensions of region proposals within the feature map, Region of Interest (RoI) pooling was developed.
Hình 2-5 Kiến trúc Fast R-CNN
Thời gian tính region proposal vẫn còn tiêu tốn nhiều thời gian
(c) Faster R-CNN Để khắc phục hạn chế về thời gian tính region proposal của R-CNN và Fast R-CNN, Faster R-CNN ra đời gồm 3 phần:
Fast R-CNN begins by processing an image through convolutional layers to generate a feature map This feature map is then utilized by the Region Proposal Network to identify region proposals Once the region proposals are obtained, the process continues similarly to that of Fast R-CNN.
The network operates on a sliding window mechanism that moves over the convolutional feature map At each window position, several region proposals are generated, which are then filtered based on their "objectness score."
Hình 2-7 Kiến trúc Region Proposal Network (RPN)
Vì region proposals là hình chữ nhật và có thể ra ngoài bức ảnh nên cần kĩ thuật để biểu diễn region propsal => Anchor ra đời
Hình 2-6 Kiến trúc Faster R-CNN
Tại mỗi vị trí của cửa sổ trượt, chúng ta dự đoán nhiều vùng đề xuất, với số lượng tối đa các vùng đề xuất có thể xuất hiện tại mỗi vị trí được ký hiệu là.
Tại thời điểm train, tất cả các anchor vượt quá biên sẽ bị bỏ qua để không bị tính vào loss
Các anchor sẽ được gán là positive hoặc negative dựa vào diện tích overlap với ground truth box theo luật như sau:
Hình 2-8 IoU (Intersection over Union)
− Các anchor được phân loại là positive nếu:
+ Là anchor có IoU (Intersection over Union) lớn nhất đối với một ground-truth box
+ Là anchor có tỉ lệ IoU đối với ground-truth bất kỳ lớn hơn 0.7
− Các anchor được phân loại là negative nếu có IoU bé hơn 0.3 đối với ground-truth box
− Các anchor không thuộc 2 loại trên sẽ được loại bỏ
Khác với Faster R-CNN, một phương pháp phát hiện hai giai đoạn, You Only Look Once (YOLO) hay còn gọi là YOLOv1, thực hiện xác định vị trí và phân loại đối tượng trong cùng một giai đoạn, giúp tăng tốc độ và hiệu quả trong việc nhận diện đối tượng.
YOLOv1, một phương pháp one-stage detector, được giới thiệu vào năm 2016 bởi Joseph Redmon và các cộng sự trong bài báo "You Only Look Once: Unified, Real-Time Object Detection" Phương pháp này cho phép xác định vị trí và phân loại đối tượng đồng thời, nhanh chóng trở nên phổ biến nhờ khả năng dự đoán real-time với độ chính xác cao.
Phương pháp YOLOv1 chia bức ảnh thành các ô lưới, trong đó mỗi ô sẽ dự đoán bounding box và xác suất chứa đối tượng thuộc một lớp nhất định.
Hình 2-10 Minh họa kiến trúc mạng của YOLOv1 (Ảnh từ bài báo)
YOLOv1 nhận đầu vào là 1 ảnh màu (3 kênh màu) có kích thước cố định là , đầu vào này được đưa qua backbone gồm 24 lớp convolution để rút
Bài viết mô tả quy trình phân tích và phát hiện vật thể bằng cách sử dụng 22 trích đặc trưng ảnh Sau đó, hai lớp fully connected được áp dụng để xử lý dữ liệu Kết quả cuối cùng của quá trình này là một tensor với kích thước xác định.
(tương ứng với trong bài báo)
Hình 2-11 Minh họa ý nghĩa đầu ra sau 2 lớp fully connected của YOLOv1 1 Trong đó, mỗi ô lưới chịu trách nhiệm dự đoán (trong bài báo là ) giá trị gồm:
− giá trị đầu là thông số của 2 bounding box, trong đó mỗi bounding box có 5 giá trị lần lượt là:
+ P(Object): Xác xuất có đối tượng chứa trong boungding box, có giá trị trong đoạn với 0 là không có đối tượng còn 1 là chắc chắn có đối tượng
Bounding box được xác định bởi tọa độ tâm X và Y so với ô chứa nó, như thể hiện trong Hình 2-12 Chiều rộng của bounding box cũng được so sánh với chiều rộng của ảnh, cung cấp một cái nhìn tổng quan về kích thước và vị trí của nó trong không gian hình ảnh.
+ Height: Chiều cao của bounding box so với chiều cao của ảnh (Hình 2-12)
Giá trị tiếp theo trong quá trình phân loại là xác suất của ô chứa đối tượng thuộc lớp tương ứng với vị trí của giá trị đó Vị trí nào có giá trị cao nhất sẽ được xác định là ô chứa đối tượng thuộc lớp tương ứng, và giá trị này sẽ được sử dụng trong việc phân loại.
1 Nguồn ảnh: https://viblo.asia/p/yolov1-y-tuong-chinh-1VgZvr47ZAw
23 nhân với P(Object) của bounding box trong ô để tính độ tin cậy của bounding box đó
Hình 2-12 Hình minh họa ý nghĩ tọa độ x, y, width, height của bounding box 1
(iv) Non-Max Suppression (NMS)
Theo quy trình đã nêu, nếu một đối tượng nằm trong nhiều ô lưới, nó sẽ bị phát hiện nhiều lần với nhiều bounding box chồng chéo Để khắc phục vấn đề này, nhóm tác giả đã áp dụng thuật toán NMS.
Thuật toán NMS (Non-Maximum Suppression) hoạt động dựa trên đầu vào là danh sách các bounding box cùng với độ tin cậy và một giá trị threshold Mục tiêu của thuật toán là giữ lại các bounding box có độ tin cậy cao nhất trong nhóm các bounding box có IoU lớn hơn threshold và thuộc cùng một lớp Kết quả cuối cùng là danh sách các bounding box ban đầu đã được loại bỏ những bounding box trùng lặp, giúp tăng cường độ chính xác trong việc phát hiện đối tượng.
1 Nguồn ảnh: https://dlapplications.github.io/2018-08-03-2018-07-31-yolo1/
Cách thực hiện thuật toán:
− Các box có confidence_score được xếp hạng từ cao xuống thấp ([box_0, box_1, box_n])
Bộ dữ liệu cuộc thi Mobile-Captured Image Document Recognition for
1 https://github.com/pbcquoc/vietocr
46 Đơn vị công bố: VNDAG
Bộ dữ liệu gồm 1.155 ảnh trong tập huấn luyện (có nhãn), 391 ảnh trong tập xác thực (không có nhãn) và 390 ảnh trong tập kiểm tra riêng (không có nhãn) Mỗi ảnh chứa thông tin về người bán, địa chỉ cửa hàng, thời gian bán và tổng tiền, được xác định theo các loại thông tin như SELLER, ADDRESS, TIMESTAMP và TOTAL_COST, cùng với bản sao nội dung thông tin.
2.3.2 Minh họa Ảnh gốc Bounding-box Phân loại
SELLER|||ADDR ESS|||TIMESTAM P|||TOTAL_COST
Guitar Cafe|||28 Phan Chu Trinh, Hiệp Phú, Quận 9, Hồ|||Ngày lập: 05/10/2020|||Thàn h tiền: 25,000 Bảng 2-1 Ví dụ đơn giản từ bộ dữ liệu
THỰC NGHIỆM VÀ ĐÁNH GIÁ
Mô tả thực nghiệm
Hình 3-1 Quy trình thực nghiệm
Quá trình thực nghiệm gồm 2 bước như Hình 3-1, trong đó:
Trong bước nhận dạng vị trí và phân loại thông tin cần trích xuất, các thông tin như tên cửa hàng (SELLER), địa chỉ (ADDRESS), thời gian (TIMESTAMP) và tổng giá trị hóa đơn (TOTAL_COST) sẽ được xác định và phân loại Đầu vào là ảnh hóa đơn, và đầu ra là các bounding box chứa thông tin cần trích xuất Các mô hình được áp dụng trong bước này bao gồm Faster R-CNN, YOLOv3 và YOLOF, được huấn luyện trên tập dữ liệu của cuộc thi RIVF2021 MC-OCR.
Hình 3-2 Ảnh minh họa bước nhận dạng và phân loại thông tin
TransformerOCR là bước quan trọng trong việc chuyển đổi thông tin từ ảnh thành văn bản Tại đây, nội dung bên trong các bounding box sẽ được trích xuất và chuyển đổi thành văn bản Đầu vào của quá trình này là hình ảnh trong các bounding box, trong khi đầu ra là văn bản tương ứng Mô hình TransformerOCR sử dụng là một mô hình đã được huấn luyện trước, như đã đề cập ở phần 2.2.2.2.
Để đánh giá kết quả thực nghiệm, nhóm đã gửi đầu ra của giai đoạn 2 lên trang web cuộc thi MC-OCR Mục đích là so sánh kết quả dự đoán của mô hình với dữ liệu thực tế (ground truth) trong bộ test riêng tư của cuộc thi thông qua chỉ số CER.
Phương pháp đánh giá
3.2.1 Bước nhận dạng và phân loại thông tin
Confusion Matrix (Hình 3-4 Confusion Matrix) cung cấp một cách chi tiết để đánh giá kết quả của một thuật toán phân loại có giám sát (supervised
49 learning) Một ma trận nhầm lẫn chia kết quả thành hai loại: giá trị (nhãn) dự đoán và giá trị (nhãn) thực tế của các điểm dữ liệu
Hình 3-4 Confusion Matrix Trong đó:
− True Positive (TP): trường hợp dương tính và được dự đoán dương tính
− True Negative (TN): trường hợp âm tính và được dự đoán âm tính
− False Positive (FP): trường hợp âm tính và được dự đoán dương tính
− False Negative (FN): trường hợp dương tính và được dự đoán âm tính
Precision được định nghĩa là tỉ lệ số điểm True Positive trong tổng số những điểm được phân loại là Positive (TP + FP)
Recall được định nghĩa là tỉ lệ số điểm True Positive trong số những điểm thật sự là Positive (TP +FN)
Intersection over Union (IoU) là tiêu chuẩn quan trọng để đánh giá hiệu suất trong bài toán phát hiện đối tượng trên hình ảnh, thông qua việc đo lường mức độ trùng lắp giữa hai bounding boxes Kết quả IoU được coi là đạt yêu cầu khi giá trị lớn hơn hoặc bằng 0.5.
Giả sử có N ngưỡng để tính toán precision và recall, mỗi ngưỡng tương ứng với một cặp giá trị Đường cong Precision-Recall được hình thành bằng cách vẽ từng điểm có tọa độ trên hệ trục tọa độ và nối chúng lại với nhau.
Đồ thị Precision-Recall thể hiện mối quan hệ giữa độ chính xác (precision) và độ nhạy (recall), trong đó diện tích dưới đường cong được gọi là Average Precision (AP) Average Precision thường được tính xấp xỉ theo một công thức nhất định.
Trong đó: là diện tính hình chữ nhật có chiều rộng và chiều cao
13 https://dothanhblog.wordpress.com/2020/04/24/map-mean-average-precision/
Mean Average Precision được tính bằng cách lấy trung bình AP của tất cả các lớp
3.2.2 Bước ánh xạ thông tin ra dạng text
Khoảng cách Levenshtein, được đặt theo tên Vladimir Levenshtein từ năm 1965, là một phép đo sự khác biệt giữa hai chuỗi ký tự Nó xác định số bước tối thiểu cần thiết để chuyển đổi chuỗi S thành chuỗi T thông qua ba phép biến đổi cơ bản.
− 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óa 14
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ế)
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
CER được xây dựng dựa trên khoảng cách Levenshtein với công thức như sau:
− 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ế.
Quy trình thực nghiệm và đánh giá
Dữ liệu trong quá trình thực nghiệm được lấy từ cuộc thi RIVF2021
− 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á
− Link reference: https://github.com/open-mmlab/mmdetection
+ 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
− Chạy huấn luyện bằng command:
− Chạy huấn luyện bằng command:
− 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 mô hình 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 mô hình này để dự đoán bounding box cho từng thông tin trong hóa đơn Thông tin về các bounding box này được lưu trữ dưới dạng file JSON theo định dạng COCO (Giai đoạn 1).
File JSON sẽ được xử lý bởi mô hình pretrained TransformerOCR của Phạm Quốc, như đã đề cập ở phần 2.2.2.2 Kết quả đầu ra từ mô hình sẽ là thông tin trong các bounding box, được chuyển đổi thành dạng văn bản và lưu vào file CSV theo định dạng quy định của cuộc thi RIVF2021 MC-OCR để nộp 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
!python tools/train.py config_yolof.py
Hình 3-7 Ảnh format file csv dùng để submit cho cuộc thi RIVF2021 MC-
Trong cuộc thi RIVF2021 MC-OCR, nhãn tập private test không được công bố, và kết quả chỉ được thể hiện qua điểm CER sau khi nộp bài lên trang web Do đó, nhóm nghiên cứu chỉ có thể đánh giá các phương pháp của mình dựa trên điểm CER nhận được từ việc nộp kết quả trong cuộc thi.
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
Hình 3-8 Ảnh kết quả từ cuộc thi MC-OCR
Dựa vào kết quả thực nghiệm, nhóm nhận thấy rằng:
YOLOv3 đạt điểm CER thấp nhất, cho thấy đây là mô hình hiệu quả nhất trong giai đoạn 1 của bài toán rút trích thông tin hóa đơn, so với ba mô hình đã được thử nghiệm.
Mặc dù kết quả của Faster R-CNN thấp hơn một chút so với YOLOv3, nhưng CER là chỉ số dự đoán chung cho cả 4 loại đối tượng Do đó, với sự chênh lệch không đáng kể, Faster R-CNN có khả năng dự đoán tốt hơn YOLOv3 ở một số loại đối tượng nhất định.
− 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.