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

Một phần của tài liệu Đồ án một phương pháp rút trích thông tin hóa đơn tiếng việt (Trang 37 - 45)

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) Thí nghiệm giữa các encoder

(i) Mơ tả thí nghiệm

Hình 2-21. Các loại encoder và kết quả thí nghiệm tương ứng (ảnh cắt từ bài báo [14]).

Dựa trên baseline RetinaNet, nhóm tác giả lần lượt sử dụng 4 loại encoder gồm MiMo (Multiple-in-Multiple-out hay FPN), SiMo (Single-in-Multiple-out), MiSo (Multiple-in-Single-out) và SiSo (Single-in-Single-out).

27

(ii) Kết quả thí nghiệm

Dựa vào kết quả thí nghiệm, nhóm tác giả nhận thấy rằng: SiMo encoder dù chỉ nhận một đầu vào là lớp C5, nhưng kết quả chỉ chênh lệch so với MiMo encoder

≤ 1 mAP (trong khi đó các encoder cịn lại chênh lệch hơn 12 mAP).

Từ kết quả thí nghiệm, nhóm tác giả đưa ra kết luận:

− Tính năng C5 mang đủ ngữ cảnh để phát hiện các đối tượng ở các quy mơ khác nhau, cho phép bộ mã hóa SiMo đạt được kết quả gần bằng MiMo.

− Kết hợp đặc trưng multiple-level (bottom up) ít quan trọng hơn chia để trị (top-down).

Tuy nhiên, luồng top-down của FPN lại gây khó khăn cho vấn đề tối ưu hóa vì nó tiêu tốn bộ nhớ và có độ phức tạp lớn.

Mặc khác, khi so sánh về lượng bộ nhớ tiêu tốn và độ phức tạp giữa SiSo encoder và MiMo encoder, nhóm tác giả nhận thấy rằng, MiMo tiêu tốn bộ nhớ nhiều hơn và độ phức tạp cũng cao hơn hẳn SiSo. Từ đó, nhóm tác giả đã có những cải tiến để tạo ra YOLOF, một phương pháp sử dụng bộ nhớ và độ phức tạp của SiSo nhưng lại có độ chính xác tương đương MiMo.

(d) Phương pháp

(i) Ý tưởng

Thông qua việc phân tích những trở ngại khiến SiSo khơng đạt được độ chính xác cao như MiMo, 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

28

đặ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 nhận diệ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[15] lại với nhau.

Hình 2-22. Ả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

Để chọn ra các positive anchor, ta thường dựa vào IoU giữa anchor và groundtruth. Trong RetinaNet, nếu IoU cao nhất giữa anchor và groundtruth lớn hơn ngưỡng 0.5 thì anchor đó sẽ là positive anchor, phương pháp này gọi là Max-IoU matching. Trong MiMo encoder, mỗi tầng đặc trưng (P3→P7) sẽ tạo ra những

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

29

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ỏ.

Nhằm 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 anchor bất kể kích thước của chúng. Sau khi thực hiện Max-IoU matching, 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 và nếu được sử dụng cùng với dilated encoder thì độ chính xác của model tăng lên được khoản 16 AP.

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

Hình 2-23. Ảnh minh họa kiến trúc mạng YOLOF (Ảnh cắt từ bài báo[14]). YOLOF sử dụng backbone của RetinaNet (ResNet và ResNeXt), model được train trước trên ImageNet. Output của lớp backbone này là feature map C5 có 2048 channel và với tỷ lệ lấy mẫu xuống là 32. Để thuận tiện cho việc so sánh với các phương pháp khác, tất cả các lớp batchnorm đều không được sử dụng.

30

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 phép feature đầ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 ba conv liên tiếp:

− Conv 1 × 1 đầu tiên áp dụng giảm channel với tỷ lệ giảm 4.

− Conv 3 × 3 sử dụng dilation để phóng to trường tiếp nhận.

− Conv 1 × 1 để khơi phục số channel.

Decoder của YOLOF áp dụng thiết kế chính của RetinaNet, bao gồm hai nhánh song song là classification và regression cùng với 2 sửa đổi nhỏ:

− Sử dụng thiết kế của FFN trong DETR và làm cho số lớp convoluation ở hai nhánh khác nhau. Có bốn lớp convoluation theo sau là lớp batch normalization và lớp ReLU trên nhánh regression trong khi chỉ có hai lớp trên nhánh classification.

− Tuân theo Autoassign và thêm một dự đoán implicit objectness (không cần direct supervision) cho mỗi anchor trên nhánh regression. Classification score được tạo ra bằng cách nhân kết quả classification với implicit objectness tương ứng.

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 nhằm tăng xác suất các groundtruth khớp với các anchor độ tin cậy cao, tác giả nhận thấy hạn chế về sự dịch chuyển của trung tâm anchor cũng hữu ích cho việc phân loại khi sử dụng đặc trưng single-level.

31

(f) Kết quả

Hình 2-24. 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 dùy trì tốc độ xử lý như RetinaNet.

2.2.2 OCR

2.2.2.1. Transformer

(a) Tổng quan

Kiến trúc mạng Transformer 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[9], đú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)[7] một model SOTA trong giới NLP hiện nay.

Transformer[9] 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[8] cũng được ra đời nhằm áp dụng kiến trúc Transformer vào bài toán xử lý ảnh.

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

Kiến trúc mạng Transformer gồm 2 khối chính là khối encoder và khối decoder.

32

Hình 2-25. Kiến trúc mạng Transformer (Ảnh từ bài báo)[9]

(i) Xử lý đầu vào

Đầu vào của mạng là thường là một câu, câu này sẽ được đưa vào khối Input Embedding nhằm á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[9] là model sẽ đọc tất cả các từ trong câu vào model một lúc, nhằm 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 để á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. Khối này hoạt động với công thức như sau:

33 𝑃𝐸(𝑝𝑜𝑠,2𝑖) = 𝑠𝑖𝑛( 𝑝𝑜𝑠 10 0002𝑖𝐷 ) 𝑃𝐸(𝑝𝑜𝑠,2𝑖 + 1) = 𝑐𝑜𝑠( 𝑝𝑜𝑠 10 0002𝑖𝐷 ) Trong đó:

− pos: là vị trí của từ trong câu.

− D: kích thước cố định của vector từ đầu vào của model.

− i: vị trí trong vector vị trí.

Hình 2-26. Trực quan hóa giá trị vector Positional Encoding của 20 từ với kích thước 512 (kích thước sử dụng trong bài báo).

Ưu điểm của giải pháp này là:

− Mỗi vị trí có một mã hóa (encoding) duy nhất.

− Khoảng cách giữa hai vị trí được ánh xạ giữa hai câu có độ dài khác nhau bằng nhau.

− Có khả năng biểu diễn được vị trí cho những câu dài hơn các câu trong quá trình huấn luyện.

34

Sau q 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.

Một phần của tài liệu Đồ án một phương pháp rút trích thông tin hóa đơn tiếng việt (Trang 37 - 45)

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

(65 trang)