Nghiên cứu mô hình YOLO và triển khai ứng dụng trích xuất thông tin từ hóa đơn thanh toán

Research and deploy an application that extracts information from payment invoices

Hóa đơn thanh toán chứa nhiều thông tin quan trọng như tên sản phẩm, giá, số lượng, tổng cộng, v.v. Việc tự động trích xuất tự động các thông tin này giúp giảm bớt công việc thủ công, tăng độ chính xác và giảm thời gian thực hiện nhằm tăng hiệu quả trong quản lý dữ liệu. Việc này đặc biệt hữu ích cho các cá nhân xử lý các công việc nhỏ đến các doanh nghiệp xử lý khối lượng công việc lớn hơn thế trong quy trình vận hành nói chung đến các tổ chức nhỏ, cá nhân có khối lượng nhỏ các hóa đơn cần xử lý hàng ngày. Đánh giá hiệu quả của mô hình và ứng dụng không chỉ giúp xác định tính khả thi của giải pháp mà còn giúp phát hiện các thiếu sót và tìm ra hướng cải tiến trong tương lai.

TÁC GIẢ

Nguyễn Hoàng Diệp Phi, Nguyễn Trọng Phúc

GIẢNG VIÊN HƯỚNG DẪN

NGÀNH

Năm:

Tổng quan đồ án

YOLO là một trong những mô hình nổi bật và có tính ứng dụng cao trong lĩnh vực nhận dạng đối tượng, được biết đến với tốc độ phát hiện nhanh và chính xác. Việc nghiên cứu YOLO giúp nhóm hiểu rõ chi tiết hơn về từng nguyên lý hoạt động, cách thức vận hành, cấu trúc tổng quan của mô hình mà còn cung cấp một cái nhìn thực tế, tăng lượng kiến thức thông qua đó giúp tăng khả năng ứng dụng mô hình trong việc phát triển thành các mô hình cao hơn hoặc các ứng dụng vào các vấn đề thực tế.

Hóa đơn thanh toán chứa nhiều thông tin quan trọng như tên sản phẩm, giá, số lượng, tổng cộng, v.v. Việc tự động trích xuất tự động các thông tin này giúp giảm bớt công việc thủ công, tăng độ chính xác và giảm thời gian thực hiện nhằm tăng hiệu quả trong quản lý dữ liệu. Việc này đặc biệt hữu ích cho các cá nhân xử lý các công việc nhỏ đến các doanh nghiệp xử lý khối lượng công việc lớn hơn thế trong quy trình vận hành nói chung đến các tổ chức nhỏ, cá nhân có khối lượng nhỏ các hóa đơn cần xử lý hàng ngày.

Đánh giá hiệu quả của mô hình và ứng dụng không chỉ giúp xác định tính khả thi của giải pháp mà còn giúp phát hiện các thiếu sót và tìm ra hướng cải tiến trong tương lai.

Nội dung đồ án

Tìm hiểu về kiến trúc, nguyên lý hoạt động và các phiên bản khác nhau của YOLO. So sánh YOLO với các mô hình nhận dạng đối tượng khác như R-CNN, Fast R-CNN, Faster RCNN để hiểu rõ hơn về ưu điểm và hạn chế của từng mô hình.

Xác định mục đích cơ bản, định phướng phát triển của riêng nhóm thông qua việc tìm hiểu về thiết kế kiến trúc hệ thống và lựa chọn các công nghệ phù hợp.Trong đó bao gồm việc xác định các thành phần chính của hệ thống, phân tích các yêu cầu chức năng, phi chức năng, và mối quan hệ giữa chúng.

Cài đặt mô hình YOLO, huấn luyện mô hình với tập dữ liệu hóa đơn được nhóm thu thập và sử lý, phát triển thành ứng dụng thực tế để trích xuất thông tin. Quá trình triển khai bao gồm việc phát triển các module xử lý ảnh, nhận dạng ký tự và trích xuất thông tin.

Đánh giá hiệu quả của mô hình và ứng dụng thông qua các tiêu chí như tốc độ, độ chính xác và khả năng mở rộng. So sánh kết quả đạt được với các phương pháp hiện có để xác định ưu điểm và nhược điểm của giải pháp sử dụng mô hình YOLO.

Cơ sở lý thuyết

YOLO( you only look once-chỉ cần nhìn một lần) là mô hình phát hiện đối tượng dựa trên kiến trúc mạng nơ-ron tích chập (Convolutional Neural Network – CNN), mô hình có khả năng phát hiện đối tượng trong thời gian thực trong thị giác máy tính, điểm đặc biệt của YOLO là đưa ra dự đoán toàn bộ quá trình trong một lần chạy, từ việc xác định vị trí của t đối tượng đến việc phân loại chúng theo các class khác nhau và hoàn tất tất cả trong một lần chạy, giúp đạt được hiệu quả tính toán nhanh hơn, cao hơn giúp việc detect và xử lý hình ảnh tốt hơn nhiều so với những mô hình kiểu cũ. Ngoài ra YOLO còn được tích hợp với các thiết bị IOT, đạt được hiệu xuất cao.

image 196
image 197
image 198

Mô hình đề xuất

Quy trình chuẩn bị dataset:
Bước 1: sau quá trình tìm hiểu về cấu trúc mô hình, cấu tạo và nguyên lý hoạt động của YOLO, sau đó nhận thấy rằng YOLO v8 có tốc độ nhận diện nhanh song song đó là độ chính xác của nhận diện cao nên nhóm đã chọn và tải YOLO v8 từ github về máy để sử dụng, để tăng hiệu xuất train mô hình thì nhóm em đã sử dụng Google Colab giúp tăng nhanh quá trình train mô hình, đạt được hiệu suất cao.

Bước 2: Thu thập dataset để train mô hình là các hình ảnh hóa đơn thanh toán của các cửa hàng tiện lợi, do chính sách của số các cửa hàng là thu thập lại hóa đơn nếu khách không nhận vì trên hóa đơn có thông tin khách hàng, nên nhóm đã tìm qua các nguồn khác nhau thông qua Google.

Bước 3: Để có thể đánh nhãn hình ảnh thì cần phải cài đặt label studio:

Liên kết :
https://labelstud.io/.

image 199

Quy trình triển khai mô hình của nhóm:

Sử dụng model YOLOv8 để triển khai mô hình trích xuất thông tin từ hóa đơn thanh toán theo mục tiêu ban đầu, triển khai thêm tesseract để mô hình có thể chuyển đổi hình ảnh thành dạng văn bản text tiếng Việt. Thông qua đó sử dụng dữ liệu đầu ra để chuyển đổi trực tiếp thành dạng Json.

Kết quả cuối cùng của model là dữ liệu được hiển thị theo từng lớp ở dạng Json.

Thực nghiệm

Kho dữ liệu train mô hình của nhóm: https://drive.google.com/drive/folders/15mB2ND6AiC0sISu2QXfUzsfZXEhkKY5?usp=sharing

Với dữ liệu test thử mô hình là các hóa đơn được thu thập sau khi đã train mô hình bằng dataset riêng, nhận dạng đơn thuần của YOLO v8:

image 200

Demo: https://s.pro.vn/LBXc

Phân tích kết quả

Kết quả của mô hình cho thấy sự kết hợp giữa YOLOv8 và Tesseract là hiệu quả cho việc nhận diện đối tượng và xử lý thông tin từ các hóa đơn thanh toán nhanh và hiệu quả hơn là sử dụng các phiên bản cũ của YOLO, hay các mô hình khác. Với độ chính xác cao và tốc độ xử lý nhanh, mô hình đã cho ra kết quả khá tốt với độ chính xác là hơn 80%, đảm bảo được lượng dữ liệu không bị mất quá nhiều, lượng dữ liệu được mô hình nhận diện và chuyển đổi từ dạng ảnh thành dạng dữ liệu Json.

Về vấn đề nhận diện hình ảnh thì mô hình chưa có độ chính xác quá cao, trong quá trình thực nghiệm có nhiều lỗi nhận diện xảy ra, tuy nhiên có thể tăng độ chính xác bằng cách train thêm nhiều hóa đơn hơn nữa, số lần train, kho dữ liệu train càng nhiều thì độ chính xác càng cào tuy nhiên việc này cũng song song dẫn tới việc tốn thêm nhiều thời gian để hoàn thành.

Vấn đề nhận diện ngôn ngữ của mô hình, vẫn có độ trễ thời gian xử lý, có một xác xác suất nhất định xảy ra việc nhận diện sai về một và kí tự chữ. Nếu mô hình ra thị trường để đưa vào hoạt động trong một số trường hợp cần nâng cấp thêm các tính năng có thể nhận diện cả chữ viết tay, đạt được tốc độ cao, khả năng chính xác để đảm bảo dữ liệu.

Kết luận

Sau quá trình nghiên cứu và triển YOLO để trích xuất thông tin hóa đơn, thì việc áp dụng YOLO để thực hiện chức năng nhận diện văn bản trong hóa đơn không chỉ cải thiện tốc độ, cùng với đó là đảm bảo độ chính xác cao, giúp tối ưu hóa quy trình sử dụng của người dùng trong công việc nhờ đó mà quá trình quản lý, tìm kiếm thông tin trở nên tốt hơn, tiết kiệm thời gian và nguồn lực. Những kinh nghiệm đạt được sau khoản thời gian nghiên cứu và triển khai này không chỉ mở ra nhiều cơ hội mới trong lĩnh vực xử lý hình ảnh mà còn góp phần nâng cao trải nghiệm người dùng trong các ứng dụng thực tế.

Ở các phiên bản YOLO thì khả năng nhận diện vượt trội trong việc phát hiện và nhận diện đối tượng của các phiên bản cao hơn là tốt hơn so với các phiên bản còn lại, ở mỗi phiên bản đều mạng lại những cải tiến và hiệu xuất tốt hơn.

image 201
image 202
image 203