Quy trình gán nhãn dữ liệu

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 56 - 66)

Chương 3 XÂY DỰNG DỮ LIỆU

3.3. Gán nhãn dữ liệu

3.3.1 Quy trình gán nhãn dữ liệu

Ở bước gán nhãn dữ liệu, chúng tôi sử dụng model Faster R-CNN đã được train qua bộ dữ liệu của cuộc thi MC-OCR để dự đốn bounding-box của các thơng tin cần được trích xuất (tên cửa hàng, địa chỉ cửa hàng, thời gian in hóa đơn, tổng tiền). Sau đó, chúng tơi tiến hành sửa tay các bounding-box này để bộ dữ liệu được

57

chính xác. Sau khi sửa các bounding-box, chúng tơi tiếp tục gán nhãn transcript trong các bounding box này. Do vậy, annotation của bộ dữ liệu được phỏng theo định dạng COCO[12] và có sự thay đổi nhỏ cho phù hợp với yêu cầu của bài toán.

Bộ dữ liệu mới được xây dựng dựa trên bộ dữ liệu cuộc thi Mobile-Captured Image Document Recognition for Vietnamese Receipts với một số quy tắc gán nhãn như sau:

− Mỗi đối tượng chỉ gồm một dịng, những thơng tin bị xuống hàng sẽ được gán thành một đối tượng khác, nếu các từ cách nhau quá xa cũng sẽ được gán thành 2 đối tượng khác nhau.

− ADDRESS: địa chỉ (tên tòa nhà, số nhà, tên đường, …) của cửa hàng, hoặc tên chi nhánh có chứa cấu trúc số nhà + tên đường.

− SELLER: tên của cửa hàng, hoặc tên chi nhánh khơng có số nhà, tên cơng ty nếu được in đậm hoặc chứa tên cửa hàng.

− TIMESTAMP: thời gian in hóa đơn, hoặc thời gian ra nếu khơng có thời gian in hóa đơn và từ khóa tương ứng.

− TOTAL_COST: tổng tiền khách phải trả cho hóa đơn (sau khi giảm giá/ chiết khấu) và từ khóa tương ứng.

3.3.2 Định dạng nhãn của bộ dữ liệu

Với định dạng COCO tất cả các thông tin annotation của tất cả ảnh sẽ được lưu trong 1 file .json với cấu trúc gồm 5 phần info, licenses, images, annotations, categories. Trong đó, info và licenses là 2 phần khơng bắt buộc, cịn images, annotations và categories là 3 phần bắt buộc phải có. Chi tiết về mỗi phần trong bộ dữ liệu của chúng tôi như sau:

58

3.3.2.1. info

info là phần thông tin tổng quan của bộ dữ liệu, chúng tôi sử dụng cấu trúc như sau1:

"info": {

"year": "2022",

"version": "4",

"description": "Exported from roboflow.ai",

"contributor": "",

"url": "https://app.roboflow.ai/datasets/train_17_02/4",

"date_created": "2022-02-18T04:10:38+00:00"

},

Trong đó:

Thuộc tính Kiểu dữ liệu2 Ý nghĩa

< description > str Mô tả của bộ dữ liệu. < url > str Đường dẫn của bộ dữ liệu. < version > str Phiên bản của bộ dữ liệu.

< year > int Năm công bố bộ dữ liệu. < contributor > str Người đóng góp bộ dữ liệu. < date_created > datetime Ngày công bố bộ dữ liệu.

Bảng 3-2: Mơ tả ý nghĩa các thuộc tính trong phần “info”.

1 https://docs.aws.amazon.com/rekognition/latest/customlabels-dg/cd-coco-overview.html 2 https://cocodataset.org/#format-data

59

3.3.2.2. licenses

licenses là danh sách giấy phép cho các hình ảnh trong bộ dữ liệu, mỗi giấy phép có 1 ID riêng biệt. "licenses": [ { "id": 1, "url": "", "name": "Unknown" }, … ], Trong đó:

Thuộc tính Kiểu dữ liệu Ý nghĩa

< url > str Đường dẫn của giấy phép.

< id > int ID của giấy phép để dùng trong bộ dữ liệu.

< name > str Tên giấy phép.

Bảng 3-3: Mơ tả ý nghĩa các thuộc tính trong phần “licenses”.

3.3.2.3. images

images là danh sách các ảnh có trong bộ dữ liệu, mỗi ảnh có 1 ID riêng biệt.

"images": [

{

60 "width": 426, "height": 640, "file_name": "xxxxxxxxx.jpg", }, … { "id": 245915, "width": 640, "height": 480, "file_name": "nnnnnnnnnn.jpg", } ], Trong đó:

Thuộc tính Kiểu dữ liệu Ý nghĩa

< id > int ID của ảnh trong bộ dữ liệu. < width > int Chiều rộng của ảnh.

< height > int Chiều cao của ảnh. < file_name > str Tên ảnh.

Bảng 3-4: Mơ tả ý nghĩa các thuộc tính trong phần “images”.

3.3.2.4. annotations

annotations là danh sách thông tin của tất cả các đối tượng trên tất cả các ảnh của bộ dữ liệu.

61 { "id": 0, "image_id": 0, "category_id": 15, "bbox": [370, 1654, 775, 105], "area": 81375, "segmentation": [], "iscrowd": 0,

"text": "KACHA TEA & Fast food"

}, … { "id": 0, "image_id": 0, "category_id": 15, "bbox": [370, 1654, 775, 105], "area": 81375, "segmentation": [], "iscrowd": 0,

"text": "KACHA TEA & Fast food"

}

],

62

Thuộc tính Kiểu dữ liệu Ý nghĩa

< id > int (không bắt buộc) ID của đối tượng.

< category_id > int (bắt buộc) ID lớp của đối tượng.

< iscrowd > 0 hoặc 1 (không bắt buộc)

0: Bounding-box chứa 1 đối tượng.

1: Bounding-box chứa nhiều đối tượng.

< segmentation > RLE hoặc [polygon] (không bắt buộc)

[polygon]: phân vùng của Bounding-box chứa 1 đối tượng.

RLE: phân vùng của Bounding-box chứa nhiều đối tượng.

< image_id > int (không bắt buộc) ID ảnh chứa đối tượng.

< area > float (khơng bắt buộc) Diện tích phân vùng của đối tượng.

< bbox > [x, y, width, height] (bắt buộc) Thông tin về tọa độ và kích thước của

63

Bounding-box của đối tượng:

− x, y: tọa độ trên trái của Bounding-box.

− width: chiều rộng của Bounding-box.

− height: chiều cao của Bounding-box.

< text > str Đây là điểm mới so với định dạng COCO để phù hợp với bài tốn của nhóm. Thuộc tính này thể hiện transcript thông tin bên trong bounding box.

Bảng 3-5: Mô tả ý nghĩa các thuộc tính trong phần “annotations”.

3.3.2.5. categories

categories là danh sách các lớp đối tượng trong bộ dữ liệu.

"categories": [ { "supercategory": "speaker", "id": 0, "name": "echo" }, … {

64 "supercategory": "speaker",

"id": 1,

"name": "echo dot"}

]

Trong đó:

Thuộc tính Kiểu dữ liệu Ý nghĩa

< id > int (bắt buộc) ID của lớp đối tượng.

< supercategory > str (không bắt buộc) Tên lớp đối tượng cha của lớp đối tượng.

< name > str (bắt buộc) Tên của lớp đối tượng.

Bảng 3-6: Mơ tả ý nghĩa các thuộc tính trong phần “categories”.

3.4. Mô tả bộ dữ liệu

Bộ dữ liệu bổ sung gồm 2,147 ảnh hóa đơn từ nhiều siêu thị, quán ăn, cửa hàng, …, được chia thành 1,000 ảnh train (chiếm 46.58%), 358 ảnh validation (chiếm 16.67%) và 789 ảnh test (chiếm 36.75%).

Các ảnh trong bộ dữ liệu đã được gán nhãn bounding-box đầy đủ. Các nhãn trong bộ dữ liệu được phân bổ như Bảng 3-7.

65

Train + Val +

Test Train Val Test

SELLER 2,335 17.86% 1,052 17.61% 397 18.27% 886 18.28% ADDRESS 2,879 22.02% 1,355 22.20% 471 21.68% 1,053 21.73% TIMESTA MP 3,596 27.51% 1,656 27.34% 593 27.29% 1,347 27.80% TOTAL_C OST 4,262 32.60% 1,990 32.85% 712 32.77% 1,560 32.19% Tổng cộng 13,072 100% 8,226 100% 2,173 100% 4,846 100%

Bảng 3-7: Bảng phân bổ các nhãn của bộ dữ liệu

Quá trình gán nhãn bounding-box cho bộ dữ liệu gặp khó khăn do nhân lực cịn hạn chế mà số lượng ảnh thì q lớn, dẫn tới việc phải rà soát lại nhiều lần, nhưng vẫn khó tránh khỏi một số sai sót.

66

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 56 - 66)

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

(104 trang)