Ảnh minh họa kiến trúc của FPN

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

Như vậy, phương pháp rút trích đặc trưng FPN có 2 ưu điểm là:

− Kết hợp các đặc trưng đa quy mô (multi-level) từ luồng bottom-up.

− Chia để trị (dự đoán ảnh ở nhiều mức để dự đốn các nhóm đối tượng nhỏ-vừa-lớn) từ luồng top-down.

(c) Phương pháp (i) Ý tưởng

Thông qua việc phân tích những trở ngại khiến SiSo (Single-in-Single-out) khơng đạt được độ chính xác cao như MiMo (Multiple-in-Multiple-out hay FPN), nhóm tác giả tìm ra giải pháp cho những vấn đề này và đề xuất những cải tiến để ra đời phương pháp YOLOF.

(ii) Dilated encoder

Vấn đề thứ nhất đó là tính năng C5 khơng bao qt được tất cả các kích thước của đối tượng. Với MiMo encoder, các đặc trưng C3, C4, C5 chịu trách nhiệm cung cấp thơng tin các đối tượng với kích thước nhỏ, vừa, lớn tương ứng. Việc chỉ sử dụng đặc trưng C5 dẫu vẫn có kết quả xấp xỉ với trường hợp sử dụng cả 3 đặc trưng, nhưng vẫn tồn tại hạn chế về kích thước đối tượng mà model phát hiện được.

Để giải quyết vấn đề này, nhóm tác giả xếp chồng các convolution thông thường và dilated convolution[23][23][23] lại với nhau.

42

Hình 2-15: Ảnh minh họa một convolution thông thường (bên trái) và một dilated convolution (bên phải)1.

Dilated convolution giúp mở rộng trường tiếp nhận, kết hợp với convolution thông thường sẽ giúp model phát hiện được các đối tượng ở nhiều kích thước khác nhau dựa trên đặc trưng C5. Phương pháp này theo thực nghiệm của nhóm tác giả đã giúp tăng độ chính xác của model lên khoảng 8 AP. Tuy nhiên, theo nhóm tác giả, phương pháp này vẫn có thiếu sót hơn so với việc sử dụng đặc trưng C3→C5.

(iii) Vấn đề mất cân bằng trên các positive

Trong MiMo encoder, mỗi tầng đặc trưng (P3→P7) sẽ tạo ra những positive anchor box phù hợp với kích thước đối tượng bên trong chúng. Tuy nhiên, với SiSo, ta chỉ có 1 tầng đặc trưng, dẫn đến số lượng anchor box giảm xuống, khi thực hiện Max-IoU matching, những groundtruth có kích thước lớn sinh ra nhiều positive anchor hơn là những groundtruth có kích thước nhỏ. Điều này khiến model chú ý các đối tượng có kích thước lớn và dễ dàng bỏ qua những đối tượng có kích thước nhỏ.

Để hạn chế vấn đề này, nhóm tác giả đề ra phương pháp Uniform Matching: Sử dụng 𝑘 anchor gần nhất làm positive anchor cho mỗi hộp groundtruth, điều này đảm bảo rằng tất cả các hộp groundtruth có thể được so với cùng một số positive

1https://towardsdatascience.com/review-drn-dilated-residual-networks-image-classification-semantic- segmentation-d527e1a8fb5

43

anchor bất kể kích thước của chúng. Sau khi thực hiện Max-IoU matching, nhóm tác giả thực hiện bỏ qua negative anchor có IoU lớn (>0,7) và positive anchor có IoU nhỏ (<0,15). Trong thực nghiệm của nhóm tác giả, phương pháp này giúp tăng độ chính xác của model lên khoảng 12 AP.

(d) Kiến trúc mạng

Hình 2-16: Ảnh minh họa kiến trúc mạng YOLOF (Ảnh cắt từ bài báo[2]).

YOLOF sử dụng backbone của RetinaNet[11][11] (ResNet và ResNeXt), model được train trước trên ImageNet. Output của lớp backbone này là feature map C5 có 2,048 channel và với tỷ lệ lấy mẫu xuống là 32. Lớp Encoder được mô phỏng theo FPN bằng cách thêm hai lớp conv dẫn đến một feature map với 512 channel. Sau đó, để cho các đặc trưng đầu ra của encoder bao phủ tất cả các đối tượng trên các tỷ lệ khác nhau, tác giả đề xuất thêm các khối residual, bao gồm 3 convolution liên tiếp. Decoder của YOLOF áp dụng thiết kế chính của RetinaNet, bao gồm 2 nhánh song song là classification và regression cùng với một ít sửa đổi nhỏ.

Ngồi ra, YOLOF cịn thêm một thao tác dịch chuyển hình ảnh một cách ngẫu nhiên tối đa 32 pixel theo các hướng trái, phải, trên cùng và dưới cùng. Thao tác này để tăng xác suất các groundtruth khớp với các anchor độ tin cậy cao.

44

(e) Thành tích

Hình 2-17: Bảng so sánh kết quả giữa YOLOF và RetinaNet (Ảnh cắt từ bài báo)

Có thể thấy, YOLOF có cải tiến rõ rệt so với RetinaNet dù vẫn duy trì tốc độ xử lý như RetinaNet.

2.2.2 Natural language processing 2.2.2.1. LSTM 2.2.2.1. LSTM

Long Short-term Memory[8] (LSTM) là bài báo được ra đời vào năm 1997, là một phiên bản nâng cao hơn của model RNN. Nhận thấy khuyết điểm của RNN là thông tin ngữ nghĩa sẽ bị mất dần nếu câu quá dài, nhóm tác giả Hochreiter & Schmidhuber cho ra đời LSTM có thể khắc phục phần nào vấn đề này.

LSTM có kiến trúc mạng giống với RNN, tuy nhiên có sự khác nhau về cấu trúc của nơ-ron bên trong mạng. Hình 2-18: Ảnh minh họa luồng xử lý trong nơ-ron của model LSTM. mơ tả một nơ-ron trong model LSTM, dựa vào hình này, ta có thể chia các bước xử lý trong một nơ-ron của LSTM thành 3 phần như sau:

− Xác định bit nào trong bộ nhớ dài hạn của mạng là hữu ích với đầu ra trước đó và đầu vào mới.

− Xác định thông tin sẽ được lưu vào bộ nhớ dài hạn của mạng, thành phần này gồm 2 bước nhỏ bên trong là xây dựng vector thông tin và lọc thông tin cần lưu.

45

− Xác định thông tin đầu ra, thành phần này cũng gồm 2 bước là xây dựng vector thông tin từ bộ nhớ long-term và tiến hành lọc thông tin cần thiết để tạo thành đầu ra.

Hình 2-18: Ảnh minh họa luồng xử lý trong nơ-ron của model LSTM1.

Nhìn chung, LSTM đã khắc phục được phần nào khuyết điểm của RNN là bị giảm ngữ nghĩa ở những câu dài, tuy nhiên kiến trúc này vẫn chưa khắc phục được nhược điểm phải xử lý tuần tự của RNN và việc phải xử lý bộ nhớ dài hạn khiến model trở nên chậm hơn RNN.

2.2.2.2. Transformer

Kiến trúc mạng Transformer[20] dành cho xử lý ngôn ngữ tự nhiên được ra đời vào năm 2017 qua bài báo Attention Is All You Need[20][20], đúng như tên gọi của bài báo, cơ chế Attention đã trở thành một bước đột phá, làm tiền đề cho nhiều model lớn khác trong NLP mà nổi bật nhất là model BERT (Bidirectional Encoder Representations from Transformers)[3][3] một model State-of-the-art (SOTA) trong giới NLP hiện nay.

46

Transformer thực hiện được nhiều tác vụ của NLP như dịch máy, tóm tắt văn bản, tạo ngơn ngữ tự nhiên, … Ngoài ra, vào năm 2018, bài báo Image Transformer[13][13] cũng được ra đời để áp dụng kiến trúc Transformer vào bài tốn

xử lý ảnh.

Hình 2-19: Kiến trúc mạng Transformer (Ảnh từ bài báo)

Kiến trúc mạng Transformer gồm 2 khối chính là khối encoder và khối decoder (Hình 2-19). Đầu vào của mạng là thường là 1 câu, câu này sẽ được đưa vào khối Input Embedding để ánh xạ các từ thành những vector có kích thước 512 chiều (có thể được hiệu chỉnh cho phù hợp với bài tốn). Khối này có tác dụng làm giảm kích thước của đầu vào, và qua khối Input Embedding này, những từ có nghĩa tương đồng với nhau sẽ được biểu diễn bằng những vector gần giống nhau. Model sử dụng trong khối này thường là Word2Vec hoặc GloVe.

Đặc điểm của Transformer là model sẽ đọc tất cả các từ trong câu vào model một lúc, để cải thiện điểm yếu là dễ làm giảm ngữ nghĩa ở các câu quá dài trong các model NLP trước đó. Để thực hiện được điều này, Transformer cần một cơ chế để có thể biết được vị trí của các từ trong câu, đó là sử dụng khối Positional Encoding để

47

ánh xạ vị trí của từ thành một vector có kích thước bằng với kích thước của những vector được ánh xạ từ các từ trong câu.

Sau quá trình này, vector từ và vector vị trí tương ứng sẽ được cộng với nhau để tạo thành đầu vào cho khối encoder.

Kiến trúc Transformer gồm 6 lớp Encoder liên tiếp nhau, mỗi lớp có kiến trúc như Hình 2-19: Kiến trúc mạng Transformer (Ảnh từ bài báo) kết quả từ quá trình xử lý đầu vào được đưa vào lớp Multi-Head Attention, và như tên gọi Attention Is All You Need của bài báo, đây là lớp quan trọng nhất trong toàn model. Khối này gồm 8

Self Attention, có tác dụng tìm ra quan hệ giữa các từ trong câu. Kết quả sau khối Multi-Head Attention được đưa qua lớp Add & Normalize để thực hiện 2 bước:

− Add: Cộng đầu vào và đầu ra của lớp attention để tránh mất mát thơng tin trong q trình học.

− Normalize (Batch Normalization)[1][1]: Chuẩn hóa kết quả để giảm thời gian train.

Phần cuối cùng của lớp Encoder là một lớp Fully Connected dùng để xử lý đầu ra từ lớp encoder thành đầu vào của lớp encoder kế tiếp hoặc lớp decoder đầu tiên (với lớp encoder cuối cùng).

Đầu vào của lớp decoder gồm có kết quả từ lớp encoder cuối cùng, kết quả từ lớp decoder cuối cùng trước đó (<start> nếu là lần decoder đầu tiên (<start> là ký tự bắt đầu câu của kết quả đầu ra)). Decoder có kiến trúc tương tự lớp encoder, tuy nhiên lớp này có thêm 1 lớp là Masked Multi-Head Attention lớp này có nhiệm vụ che đi những từ chưa được dự đốn trong q trình huấn luyện để model học cách dự đốn những từ cịn thiếu. Kết quả từ lớp decoder sẽ được đưa vào một lớp xử lý (trong bài báo là một lớp Linear và một lớp softmax) tùy thuộc vào bài toán mà model cần xử lý.

Từ khi ra đời, Transformer đã trở thành một model SOTA và đã được sử dụng để biến tấu nên nhiều model khác nhau trong lĩnh vực xử lý ngôn ngữ tự nhiên (và cả

48

xử lý ảnh). Tuy khắc phục được hầu hết những ưu điểm từ những model xử lý ngôn ngữ tự nhiên trước đó, nhưng Transformer là một mơ hình q phức tạp, địi hỏi tài nguyên lớn để sử dụng và tốn nhiều thời gian hơn hẳn các model trước trong việc dự đoán.

2.2.3 OCR

Hiện nay, để phục vụ cho mục đích nhận dạng chữ tiếng Việt trong ảnh, tác giả Phạm Quốc đã cung cấp thư viện VietOCR1 gồm các model kết hợp giữa model CNN và model xử lý ngôn ngữ tự nhiên, trong đó có model AttentionOCR và TransformerOCR.

2.2.3.1. AttentionOCR

AttentionOCR là model kết hợp giữa CNN và model seq2seq mà cụ thể ở đây là model LSTM. Trong đó, CNN có nhiệm vụ chuyển ảnh thành các đặc trưng để làm đầu vào cho model LSTM. Phần CNN trong model nhận kết quả đầu vào là một ảnh, đầu ra của phần này là một feature map có kích thước 𝑐ℎ𝑎𝑛𝑛𝑒𝑙 × ℎ𝑒𝑖𝑔ℎ𝑡 × 𝑤𝑖𝑑𝑡ℎ. Feature map này sẽ được duỗi thẳng để phù hợp với đầu vào của LSTM. Cịn LSTM có nhiệm vụ dự đốn các từ tiếp theo trong ảnh từ các đặc trưng mà CNN rút trích được.

49

Hình 2-20: Model AttentionOCR (Ảnh từ github của model)

2.2.3.2. TransformerOCR

Ngồi AttentionOCR, VietOCR cịn cung cấp model TransformerOCR. Trong model này, thay vì sử dụng LSTM để dự đoán các ký tự, model này sử dụng Transformer làm cơng cụ để dự đốn các từ tiếp theo trong ảnh. Ưu điểm của việc sử dụng Transformer trong model này là số lượng ký tự dự đốn được khơng bị giới hạn bởi bất kỳ thông số nào.

50

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

3.1. Một số bộ dữ liệu hóa đơn hiện có

3.1.1 Bộ dữ liệu Scanned Receipts OCR and Information Extraction (SROIE) (SROIE)

3.1.1.1. Tổng quan

Bộ dữ liệu SROIE được công bố vào năm 2019 nhằm phục vụ cho cuộc thi ICDAR2019 Robust Reading Challenge on Scanned Receipts OCR and Information Extraction[9] – thử thách đọc thông tin từ ảnh scan của các hóa đơn với 3 phần thi:

− Task 1: Scanned Receipt Text Localisation: Xác định vị trí chữ trong hóa đơn.

− Task 2: Scanned Receipt OCR: Nhận dạng các từ có trong hóa đơn.

− Task 3: Key Information: Rút trích 4 thơng tin từ hóa đơn bao gồm: Tên cơng ty, địa chỉ, ngày, tổng tiền hóa đơn.

SROIE gồm 1,000 ảnh scan của các hóa đơn trong đó có khoảng 600 ảnh train và 400 ảnh test, các ảnh train và test này đều được gán nhãn đầy đủ.

3.1.1.2. Định dạng file annotation

Đối với annotation cho Task 1 và Task 2, file txt có nội dung được cấu trúc như sau:

x1_1, y1_1, x2_1, y2_1, x3_1, y3_1, x4_1, y4_1, transcript_1

x1_2, y1_2, x2_2, y2_2, x3_2, y3_2, x4_2, y4_2, transcript_2 …

x1_n, y1_n, x2_n, y2_n, x3_n, y3_n, x4_n, y4_n, transcript_n

Trong đó, mỗi dịng trong file txt thể hiện annotation cho một nhóm ký tự trên một dòng hoặc một cụm ký tự trên hóa đơn tương ứng với file txt. Thông tin

51

annotation trên mỗi dòng bao gồm 𝑥1, 𝑦1, 𝑥2, 𝑦2, 𝑥3, 𝑦3, 𝑥4, 𝑦4 là tọa độ 4 góc của bounding box và 𝑡𝑒𝑥𝑡 là các ký tự bên trong bounding box.

Hình 3-1: Ảnh minh họa cấu trúc một file txt trong thư mục 0325updated.task1train(626p).

Đối với Task 3, file txt có nội dung được cấu trúc như sau: { "company": transcript, "date": transcript, "address": transcript, "total": transcript }

Trong đó, mỗi text là thơng tin từ ảnh hóa đơn tương ứng với các nhãn "company", "date", "address", "total".

52

Hình 3-2: Ảnh minh họa cấu trúc một file txt trong thư mục 0325updated.task2train(626p).

3.1.2 Bộ dữ liệu Consolidated Receipt Dataset (CORD) 3.1.2.1. Tổng quan 3.1.2.1. Tổng quan

CORD[14] cũng là một bộ dữ liệu được ra đời vào năm 2019, nhóm tác giả của CORD nhận thấy rằng, SROIE dù có thể được dùng để thúc đẩy các nghiên cứu trong cả 2 nhiệm vụ là OCR và rút trích thơng tin nhưng vẫn cịn một vài thiếu sót như: khối lượng dữ liệu cịn hạn chế, cịn thiếu bounding box cho từng từ, … dẫn tới khó có thể đào tạo một model có hiệu suất tốt. Với mong muốn xây dựng một bộ dữ liệu lớn hơn, đầy đủ hơn, nhóm tác giả đã cho ra đời bộ dữ liệu CORD, được công bố trong bài báo CORD: A Consolidated Receipt Dataset for Post-OCR Parsing[14][14].

53

Bộ dữ liệu này dự kiến bao gồm 11,000 ảnh (nhóm tác giá chỉ mới public 1,000 ảnh mẫu) các hóa đơn tại Indonesia. Các ảnh này được làm mờ những thông tin nhạy cảm như họ tên, số điện thoại, … sau đó được gán nhãn đầy đủ và chi tiết với 5 superclass và 42 subclass, ngoài ra, bộ dữ liệu cịn được gán nhãn các thơng tin chung của ảnh như: vùng quan tâm (roi), kích thước ảnh, …

CORD được chia thành 3 phần, gồm train, dev, test, với 1,000 ảnh đã được cơng bố, nhóm tác giả chia thành 800 ảnh train, 100 ảnh dev và 100 ảnh test.

3.1.2.2. Định dạng file annotation

File annotation của bộ dữ liệu CORD được cấu trúc dưới dạng json và được mô tả chi tiết qua bảng sau:

Tên thuộc tính Mơ tả

valid_line Thơng tin về một dịng trong hóa đơn

word Thơng tin các từ trong hóa đơn

quad Thơng tin 4 tọa độ bounding box của từ is_key Từ này có được dùng làm từ khóa hay

khơng?

row_id Id của dịng trong hóa đơn

text Transcript của từ

category Nhãn của dòng group_id Group id của dòng

--------------------- ------------- --------- -----------------------------------------------

meta Thông tin chung của ảnh

version Phiên bản của bộ dữ liệu image_id Id của ảnh

54

image_size Thơng tin kích thước ảnh

--------------------- ------------- --------- -----------------------------------------------

roi Thông tin 4 tọa độ bounding box của

hóa đơn.

--------------------- ------------- --------- -----------------------------------------------

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