Các công trình nghiên cứu liên quan

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 31)

2.2.1.1. Faster R-CNN

Hình 2-5: Mốc thời gian cho sự ra đời các phương phát hiện đối tượng (1990 – 2019) [25].

32

(a)R-CNN

R-CNN[4] ra đời với ý tưởng khá đơn giản: Dùng thuật toán Selective Search để lấy ra khoảng 2,000 Bounding-box trong đầu vào mà có khả năng chứa đối tượng. Sau đó, với mỗi Bounding-box ta xác định xem nó là đối tượng nào.

(i) Selective search algorithm

Đầu vào là 1 ảnh màu. Đầu ra là khoảng 2,000 Bounding-box trong đầu vào mà có khả năng chứa đối tượng.

(ii)Phân loại region proposal

Sau khi thực hiện Selective search, các region proposal được resize lại về cùng kích thước và thực hiện transfer learning với feature extractor, sau đó các extracted feature được cho vào thuật toán SVM để phân loại ảnh.

Hình 2-6: Kiến trúc R-CNN (Ảnh cắt từ bài báo).

(iii) Nhược điểm

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.

(b)Fast R-CNN

Tương tự R-CNN thì Fast R-CNN[5] vẫn dùng Selective search để lấy ra các region proposal. Tuy nhiên là nó không tách 2,000 region proposal ra khỏi ảnh và thực hiện bài toán image classification cho mỗi ảnh. Fast R-CNN cho cả bức ảnh vào

33

ConvNet (một vài convolutional layer + max pooling layer) để tạo ra convolutional feature map.

Vì kích thước của các region proposal khác nhau nên khi Flatten sẽ ra các vector có kích thước khác nhau nên không thể áp dụng neural network được. Và feature map không thể resize được, nên để chuyển các region proposal trong feature map về cùng kích thước thì Region of Interest (RoI) pooling ra đời.

Hình 2-7: Kiến trúc Fast R-CNN (Ảnh cắt từ bài báo).

(i) Nhược điểm

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[19] ra đời gồm 3 phần:

− Convolutional layers

− Region Proposal Network (RPN)

− Fast R-CNN

Đầu tiên ảnh được đưa qua Convolutional layers để lấy feature map. Sau đó feature map được dùng cho Region Proposal Network để lấy được các region proposal. Sau khi lấy được vị trí region proposal thì thực hiện tương tự Fast R-CNN.

34

Hình 2-8: Kiến trúc Faster R-CNN12

(i) Region Proposal Network (RPN)

Là một mạng con dựa trên một cửa sổ trượt có kích thước 𝑛 × 𝑛 trượt trên convolutional feature map. Với mỗi vị trí của cửa sổ, một số vùng đề xuất được tạo ra, và các vùng đề xuất này sẽ được lọc dựa trên “objectness score”.

Đầu vào: feature map Đầu ra: region proposals.

Hình 2-9: Kiến trúc Region Proposal Network (RPN)3

1 https://towardsdatascience.com/faster-rcnn-object-detection-f865e5ed7fc4

2 https://www.researchgate.net/figure/Faster-R-CNN-basic-architecture_fig1_336602731 3 https://www.researchgate.net/figure/Anchor-in-RPN-networks_fig4_342860228

35

(ii) Anchor

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 proposal => Anchor ra đời.

Tại mỗi vị trí cửa sổ trượt, đồng thời dự đoán nhiều vùng đề xuất, trong đó số vùng đề xuất tối đa có thể có tại mỗi vị trí của cửa sổ là ký hiệu là 𝑘. Với 𝑘 = scale × aspect ratio.

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.

(iii) Objectness score (IoU)

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-10: IoU (Intersection over Union)1.

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

36

− Các anchor không thuộc 2 loại trên sẽ được loại bỏ.

2.2.1.2. YOLOv3 (a)Tổng quan (a)Tổng quan

Khác với Faster R-CNN là một phương pháp two-stage detector (phương pháp phát hiện đối tượng mà trong đó việc xác định vị trí đối tượng và phân loại đối tượng được thực hiện ở 2 giai đoạn khác nhau), YOLOv3[18] (phiên bản cải tiến của YOLOv1[16] và YOLOv2[17]) thuộc họ YOLO (You Only Look One[16]), là một phương pháp one-stage detector (phương pháp phát hiện đối tượng mà trong đó việc xác định vị trí đối tượng và phân loại đối tượng được thực hiện cùng lúc). Phương pháp này đã nhanh chóng trở nên phổ biến bởi khả năng dự đoán real-time với độ chính xác cao.

(b)Ý tưởng

Ý tưởng chung của các phương pháp thuộc họ YOLO là chia bức ảnh thành những ô lưới, và sau đó, mỗi ô lưới sẽ chịu trách nhiệm dự đoán các bounding box có tâm nằm bên trong nó.

Bên cạnh đó, để khắc phục những khuyết điểm còn tồn tại ở YOLOv2, YOLOv3 có những điểm mới so với YOLOv1 như:

− Sử dụng Darknet53 với số lượng lớp chập nhiều hơn nên tốc độ chậm hơn YOLOv2.

− Có thêm các khối Residual: Các khối này giúp làm giảm vấn đề mất thông tin ngữ cảnh do số lượng lớp chập lớn của YOLOv3.

− Dự đoán đối tượng ở 3 tầng kích thước của feature map để tận dụng thông tin ngữ cảnh và thông tin đặc trưng.

− Do dự đoán đối tượng ở 3 tầng kích thước khác nhau, nên thay vì chọn 5 anchor box cho mỗi ô lưới như YOLOv2, YOLOv3 chọn 3 anchor box cho mỗi ô lưới ở mỗi tầng kích thước, nghĩa là có tổng cộng 9

37

anchor box được chọn bằng phương pháp K-mean tương tự như YOLOv2.

− Số lượng class lớn hơn, cho phép 1 đối tượng có nhiều nhãn (ví dụ 1 đối tượng có thể vừa mang nhãn ‘Person’ vừa mang nhãn ‘Woman’).

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

Hình 2-11: Ảnh minh họa kiến trúc mạng YOLOv31.

YOLOv3 nhận ảnh đầu vào có kích thước 416 × 416 sử dụng backbone Darknet-53 (bỏ đi 3 lớp cuối) để rút trích đặc trưng vật thể, sau đó ảnh được đưa qua 53 lớp convolution của YOLOv3 (bao gồm một số lớp upsampling để tăng kích thước ảnh) để dự đoán được các đối tượng có kích thước nhỏ dần. Cụ thể, YOLOv3 dự đoán các đối tượng ở 3 kích thước ảnh như sau:

− Kích thước 13 × 13 ở lớp chập thứ 82 (tính cả các lớp chập backbone) để dự đoán các đối tượng có kích thước lớn, tại lớp chập này, ảnh được chia thành 13 × 13 ô lưới với mỗi ô lưới dự đoán 3 bounding box, tổng

38

số bounding box được dự đoán ở lớp này là 13 × 13 × 3 = 507

bounding box.

− Kích thuớc 26 × 26 ở lớp chập thứ 94 để dự đoán các đối tượng có kích thước trung bình, tại lớp chập này, ảnh được chia thành 26 × 26 ô lưới với mỗi ô lưới dự đoán 3 bounding box, tổng số bounding box được dự đoán ở lớp này là 26 × 26 × 3 = 2,028 bounding box.

− Kích thuớc 52 × 52 ở lớp chập thứ 106 để dự đoán các đối tượng có kích thước nhỏ, tại lớp chập này, ảnh được chia thành 52 × 52 ô lưới với mỗi ô lưới dự đoán 3 bounding box, tổng số bounding box được dự đoán ở lớp này là 52 × 52 × 3 = 8,112 bounding box.

Như vậy, qua 3 lần dự đoán, YOLOv3 dự đoán được tổng cộng 507 + 2,028 + 8,112 = 10,647 bounding box, gấp hơn 10 lần so với YOLOv2. Số lượng bounding box này giúp YOLOv3 vẫn xử lý tốt với những ảnh có nhiều đối tượng.

(d)Non-Max Suppression (NMS)

Trong quá trình dự đoán của các phương pháp họ YOLO, nếu có một đối tượng nằm trên nhiều ô lưới thì đối tượng này sẽ bị phát hiện nhiều lần và có nhiều bounding box nằm chồng lên nhau, để giải quyết vấn đề này, nhóm tác giả sử dụng thuật toán NMS.

39

Hình 2-12: Hình minh họa đầu vào – đầu ra của thuật toán NMS1.

Đầu vào của thuật toán NMS là một danh sách các bounding box và độ tin cậy tương ứng, cùng với 1 giá trị threshold. Ý tưởng của thuật toán là trong một nhóm các bounding box có IoU lớn hơn threshold được phân loại cùng 1 class, ta chỉ giữ lại bounding box có độ tin cậy cao hơn, do vậy, đầu ra của thuật toán là một danh sách các bounding box ban đầu đã được loại bỏ những bounding box trùng nhau.

(e)Thành tích

Hình 2-13: Bảng minh họa kết quả của YOLOv3 (thời gian và độ chính xác) so với một số phương pháp khác (Ảnh cắt từ bài báo).

1 https://www.analyticsvidhya.com/blog/2020/08/selecting-the-right-bounding-box-using-non-max- suppression-with-implementation/

40

Có thể thấy, dù không có độ chính xác cao nhất, nhưng YOLOv3 vẫn là một phương pháp có độ chính xác cao xấp xỉ phương pháp có độ chính xác cao nhất với tốc độ hơn hẳn những phương pháp khác.

2.2.1.3. YOLOF (a)Tổng quan (a)Tổng quan

Bắt nguồn từ mong muốn tìm hiểu thêm về cách mà Feature Pyramid Network[10] (FPN) ảnh hưởng lên các phương pháp one-stage detector, sau đó là mong muốn tìm hiểu những phương pháp khác có độ chính xác tương đương nhưng độ phức tạp thấp hơn, tác giả Qiang Chen và các cộng sự đã cho ra đời YOLOF qua bài báo You Only Look One-level Feature[2] vào năm 2021.

(b)FPN

Một trong những thách thức của bài toán phát hiện đối tượng là nếu bức ảnh được rút trích đặc trưng xuống còn quá nhỏ, model sẽ không phát hiện được các đối tượng nhỏ, còn nếu bức ảnh còn đủ lớn để phát hiện các đối tượng nhỏ thì sẽ chỉ chứa những đặc trưng thô, không đủ để phát hiện các đối tượng lớn. Đó là lý do ra đời của Feature Pyramid Network (FPN), một bộ lọc đặc trưng có thể cung cấp các đặc trưng ở nhiều tỉ lệ ảnh khác nhau.

FPN bao gồm 1 luồng từ dưới lên (bottom-up) và 1 luồng từ trên xuống (top- down) (Hình 2-14: Ảnh minh họa kiến trúc của FPN.). Trong đó, luồng bottom-up là luồng rút trích đặc trưng của các phương pháp thông thường như Faster R-CNN, càng lên cao, độ phân giải của ảnh càng giảm và thông tin ngữ cảnh càng nhiều. Luồng top-down được sử dụng để khôi phục lại các lớp có độ phân giải cao từ các lớp có nhiều thông tin ngữ nghĩa. Luồng này sử dụng các skip connection để tránh mất mát thông tin đối tượng trong quá trình khôi phục.

41

Hình 2-14: Ảnh minh họa kiến trúc của FPN1. 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ự đoá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 quát đượ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ỏ.

Ngoà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

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 31)

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

(104 trang)