2.4.1. Phương pháp phát hiện đối tượng họ R-CNN
Như đã đề cập trước đó, bài toán phát hiện đối tượng là sự kết hợp giữa 2 bài toán Phân loại ảnh và Định vị đối tượng thực hiện cho một hoặc nhiều đối tượng trong ảnh. Vấn đề chính của mô hình CNN truyền thống là không biết trước có bao nhiêu đối tượng trong ảnh để thiết kế được output layer hiệu quả. Vì vậy, nhóm phương pháp thuộc họ R-CNN (Region with CNN feature) ra đời. Nhóm phương pháp này được phát triển bởi Ross Girshick cùng các cộng sự, gồm 3 mô hình chính: R-CNN [11], Fast R-CNN [12] và Faster R-CNN [1].
18
2.4.1.1. R-CNN
Hình 2.10 Kiến trúc của R-CNN. [11] Ý tưởng của R-CNN [11] gồm 2 giai đoạn:
• Giai đoạn 1: Sử dụng thuật toán Selective Search để thu được các vùng đề xuất có khả năng chứa đối tượng (proposal). Trong đó:
o Đầu vào: ảnh màu.
o Đầu ra: khoảng 2000 vùng đề xuất có khả năng chứa đối tượng. • Giai đoạn 2: Với mỗi vùng đề xuất thu được từ giai đoạn 1, xác định
nó là đối tượng nào và vị trí của nó. Cụ thể:
o Các vùng đề xuất thu được từ giai đoạn 1 sẽ được điều chỉnh về cùng kích thước để làm đầu vào cho mạng CNN.
o Mạng CNN này sẽ duỗi các RoI thành các vector đặc trưng.
o Các vector đặc trưng sẽ được đưa vào thuật toán SVM để phân lớp cho đối tượng và regression bounding box để xác định 4 thông số điều chỉnh cho vùng đề xuất khớp với đối tượng.
19
2.4.1.2. Fast R-CNN
Hình 2.11 Kiến trúc của Fast R-CNN. [12]
Tương tự như R-CNN, Fast R-CNN [12] vẫn dùng thuật toán Selective Search để lấy ra các vùng đề xuất. Tuy nhiên, nó không tách 2000 vùng đề xuất ra khỏi ảnh. Fast R-CNN cho cả bức ảnh vào backbone ConvNet để tạo ra feature map. Sau đó các feature map sẽ được đưa qua RoI pooling layer. Tiếp theo, đầu ra của RoI pooling layer được đưa qua các lớp FC để duỗi thành các vector đặc trưng. Cuối cùng, các vector đặc trưng này được đưa vào các lớp fully connected để phân lớp cho đối tượng và regression bounding box để xác định 4 thông số điều chỉnh cho vùng đề xuất khớp với đối tượng.
Fast R-CNN khác với R-CNN là nó tạo ra feature map với cả ảnh sau đó lấy các vùng đề xuất từ feature map, còn R-CNN thực hiện tách các vùng đề xuất ra rồi mới thực hiện CNN trên từng vùng. Vì vậy, Fast R-CNN nhanh hơn nhờ tối ưu việc tính toán bằng Vectorization.
2.4.1.3. Faster R-CNN
Mặc dù Fast R-CNN đã nhanh hơn đáng kể so với R-CNN, song, việc sử dụng thuật toán Selective Search để lấy ra khoảng 2000 vùng đề xuất khiến cho mô hình không thể đạt được tốc độ thời gian thực. Vì vậy, tác giả đã cải tiến bằng cách loại bỏ thuật toán Selective Search để tạo nên mô hình Faster R-CNN [1] đạt được tốc độ gần thời gian thực.
20
Hình 2.12 Kiến trúc của Faster R-CNN. [1]
Faster R-CNN [1] cũng gồm 2 giai đoạn tương tự với R-CNN và Fast- RCNN. Tuy nhiên, thay vì sử dụng Selective Search, Faster R-CNN đề xuất Region Proposal Network (RPN) để thu được các vùng đề xuất có khả năng chứa đối tượng.
21
Region Proposal Network (RPN) là một mạng khá đơn giản, dùng để trích xuất các vùng có khả năng chứa đối tượng. RPN nhận đầu vào là feature map đã được trích xuất từ backbone CNN trước đó. Các cửa sổ trượt trên feature map sẽ được ánh xạ thành vector đặc trưng. Các đặc trưng này được truyền qua classification layer và regression layer để thu được các vùng đề xuất.
Vì không sử dụng Selective Search nên RPN ban đầu cần xác định các anchor box có thể là các proposal, sau đó qua RPN thì chỉ còn những anchor box chắc chắn chứa đối tượng. Như vậy, ta xác định được đầu ra của regression layer và classification layer được đề cập ở trên:
• Classification layer dự đoán xác suất chứa đối tượng của proposal. • Regression layer dự đoán 4 thông số để điều chỉnh anchor box khớp
với đối tượng.
Sau khi dự đoán, có rất nhiều anchor bị chồng lên nhau nên non-maxima suppression được dùng để loại bỏ các anchor chồng lên nhau. Cuối cùng, dựa vào xác suất dự đoán, RPN sẽ lấy N anchor (N có thể là 2000, 1000… hay thậm chí là 100) để làm proposal.
Các vùng đề xuất thu từ RPN cũng sẽ được Faster R-CNN qua RoI pooling layer, duỗi thành vector và cho qua 2 nhánh Classification và Regression tương tự như Fast R-CNN. Lưu ý, 2 nhánh Classification và Regression của Fast R-CNN khác với RPN:
• Nhánh classification có C unit cho C class của bài toán phát hiện đối tượng (bao gồm cả class background). Các vector đặc trưng được truyền qua một softmax layer để lấy classification score cho biết xác suất proposal thuộc về mỗi class.
• Đầu ra của nhánh bounding box regression dùng để cải thiện độ chính xác cho các proposal thu được từ RPN.
22
2.4.2. D2Det
Hình 2.14 Kiến trúc của D2Det. [2]
D2Det [2] được công bố tại hội nghị CVPR 2020 bởi Jiale Cao cùng cộng sự trong bài báo “D2Det: Towards High Quality Object Detection and Instance
Segmentation”. D2Det [2] là phương pháp phát hiện đối tượng 2 giai đoạn dựa trên
Faster R-CNN:
• Giai đoạn 1: tương tự Faster R-CNN, D2Det sử dụng RPN để thu được các vùng đề xuất có khả năng chứa đối tượng.
• Giai đoạn 2: D2Det đề xuất dense local regression và discriminative RoI pooling thay cho 2 nhánh regression và classification của Faster R-CNN, trong đó:
o Dense local regression: giải quyết bài toán định vị đối tượng.
23
2.4.2.1. Dense local regression
Hình 2.15 Dense local regression. [2]
Mục tiêu của nhánh bounding-box regression của các phương pháp phát hiện đối tượng 2 giai đoạn đều là định vị đối tượng bằng bounding box bao xung quanh đối tượng và mục tiêu của dense local regression cũng như vậy.
Dense local regression xem ma trận 𝑘 × 𝑘 chiều ma thu được từ quá trình RoI Pooling hoặc RoIAlign như 𝑘2 đặc trưng cục bộ (local feature) liền kề trong không gian. Mỗi đặc trưng cục bộ này được biểu diễn là 𝑝𝑖 (với các thông số 𝑙𝑖, 𝑟𝑖,
𝑡𝑖, 𝑏𝑖 đã được tính toán).
Số lượng đặc trưng cục bộ của proposal P thuộc về ground-truth box G dựa vào phần giao nhau giữa proposal và ground-truth tương ứng của nó. Tuy nhiên, dù là trong trường hợp đa số các đặc trưng cục bộ của P thuộc về G thì vẫn sẽ tồn tại các đặc trưng không cần thiết (nền) khiến cho kết quả không chính xác. Để giải quyết vấn đề đó, dense local regression dùng binary overlap prediction 𝑚̂𝑖 để phân loại mỗi đặc trưng cục bộ thuộc về ground-truth bounding box hay thuộc về nền.
24
Như vậy, trong quá trình tính toán, dense local regression dự đoán 4 thông số 𝑙̂𝑖, 𝑡̂𝑖,
𝑟̂𝑖, 𝑏̂𝑖 cùng 𝑚̂𝑖 tại mỗi đặc trưng cục bộ 𝑝𝑖 ∈ 𝑃.
Trong quá trình huấn luyện, 𝑚̂𝑖 được truyền qua hàm chuẩn hóa sigmoid (𝜎) để tính toán binary cross-entropy loss với nhãn ground-truth 𝑚𝑖 = 1 nếu đặc trưng cục bộ 𝑝𝑖 thuộc phần giao nhau giữa proposal P và ground-truth G, 𝑚𝑖 = 0 nếu đặc trưng cục bộ thuộc về nền. Các thông số của dense box tại các vị trí 𝜎(𝑚̂𝑖) > 0.5
được sử dụng để tính vị trí góc trái trên và góc phải dưới của predicted box. Cuối cùng, các predicted box được tính bởi nhiều đặc trưng cục bộ sẽ được tính trung bình để thu được bounding box cuối cùng.
2.4.2.2. Discriminative RoI pooling
Hình 2.16 Discriminative RoI Pooling. [2]
Discriminative RoI pooling lấy cảm hứng từ Deformable RoI pooling [14] và cải thiện nó để dùng cho bài toán phân lớp như sau:
• Ở nhánh trên, tác giả thực hiện RoIAlign với kích thước 𝑘
2×𝑘
2 thay vì RoIAlign với kích thước 𝑘 × 𝑘 như của Deformable RoI pooling, đầu ra được truyền qua 3 lớp fully connected để thu được các thông số được tăng cường (augmented offsets).
25
• Ở nhánh dưới, thay vì sử dụng RoI pooling (hoặc RoIAlign) để pool dựa trên các vùng với các thông số được tăng cường, Discriminative RoI pooling đề xuất Adaptive Weighted Pooling (AWP) để gán các trọng số cao hơn cho các điểm mẫu phân biệt (discriminative sampling points).
Hình 2.17 Adaptive Weighted Pooling. [2]
Tại Adaptive Weighted Pooling (AWP), các điểm mẫu ban đầu 𝐹 ∈ 𝑅2𝑘×2𝑘
(tương ứng với mỗi giá trị của ma trận đặc trưng 𝑘
2×𝑘
2 thu được từ RoIAlign ta có 4 điểm mẫu gốc) được dùng để dự đoán các trọng số tương ứng (𝑊 ∈ 𝑅2𝑘×2𝑘). Các trọng số này cho biết khả năng phân biệt của chúng trong toàn bộ không gian vùng con đó. Sau đó, ma trận đặc trưng Weighted RoI 𝐹̃ sẽ được tính toán và average pooling với stride bằng 2 được dùng trên 𝐹̃ để thu được ma trận đặc trưng discriminative RoI với kích thước 𝑘 × 𝑘. Cuối cùng, ma trận đặc trưng discriminative RoI được xem như một vector toàn cục, như trong Faster R-CNN, vector này được truyền qua các lớp fully connected để thu được classification score.
2.4.3. DetectoRS
DetectoRS [3] được công bố tại hội nghị CVPR 2021 bởi Siyuan Qiao cùng cộng sự trong bài báo “DetectoRS: Detecting Objects with Recursive Feature
Pyramid and Switchable Atrous Convolution”. Trong bài báo, tác giả giới thiệu 2 kỹ
26
• Recursive Feature Pyramid (RFP): thêm vào các kết nối phản hồi từ FPN vào các tầng bottom-up của backbone, RFP được dùng ở cấp độ Neck của mạng.
• Switchable Atrous Convolution (SAC): tích chập các đặc trưng với atrous rate khác nhau và thu thập kết quả bằng các switch function, SAC được dùng ở cấp độ các lớp Convolution của backbone.
2.4.3.1. Recursive Feature Pyramid
Feature Pyramid Network (FPN) [13] là một công cụ trích xuất đặc trưng được thiết kế theo kết cấu của kim tự tháp với tính chính xác và tốc độ cao. Nó là sự kết hợp giữa hai pathway là bottom-up với độ phân giải thấp, mạnh về ngữ nghĩa và top-down với độ phân giải cao nhưng yếu về ngữ nghĩa. Với ngữ nghĩa phong phú ở mọi cấp độ và được xây dựng nhanh chóng từ mô hình ảnh đầu vào duy nhất mà FPN có khả năng trích xuất đặc trưng tốt hơn, cải thiện việc phát hiện những đối tượng nhỏ hơn.
27
Hình 2.19 Recursive Feature Pyramid. 5
Recursive Feature Pyramid (RFP) thêm các kết nối phản hồi vào FPN như hình 2.20. Cụ thể, các feature map đầu ra trong hình 2.20 sẽ được sử dụng như vòng lặp phản hồi cho các tầng Bottom-up. Trước khi truyền các feature map đầu ra vào lại backbone, chúng sẽ được đưa vào Atrous Spatial Pyramid Pooling (ASPP) Module để tính toán. Cuối cùng, đầu ra sẽ được cập nhật bằng Fusion Module:
• Atrous Spatial Pyramid Pooling (ASPP) Module cũng thực hiện tương tự như việc tăng cường receptive field của mạng, tuy nhiên, thay vì sử dụng các phép tích chập tiêu chuẩn với kích thước của các bộ lọc khác nhau thì ASPP sử dụng các phép tích chập giãn nở (Dilated/Atrous convolution) với các atrous rate khác nhau.
• Fusion Module sử dụng các feature map của các tầng top-down từ các bước khác nhau của FPN như đầu vào và kết hợp chúng bằng cách tính toán attention map bằng một convolution layer và hàm Sigmoid.
2.4.3.2. Switchable Atrous Convolution
Switchable Atrous Convolution gồm 3 thành phần chính: 2 Global Context module ở trước và sau Switchable Atrous Convolution module.
5 Nguồn: https://medium.com/visionwizard/detectors-state-of-the-art-object-detector-from-google-research- e0b89abdd1fc
28
Hình 2.20 Switchable Atrous Convolution [3]
Switchable Atrous Convolution (SAC) module chuyển đổi các phép tích chập giãn nở (Dilated/Atrous convolution) với các atrous rate khác nhau và thu thập kết quả bằng switch function.
Tác giả sử dụng 𝑦 = 𝐶𝑜𝑛𝑣(𝑥, 𝑤, 𝑟) để biểu diễn phép tích chập với trọng số
𝑤, atrous rate 𝑟, 𝑥 là đầu vào và 𝑦 là đầu ra. Sau đó, tác giả chuyển đổi một lớp tích chập thành SAC như sau:
Hình 2.21 Minh họa cách chuyển đổi lớp tích chập thành SAC. [3]
Trong đó, 𝑟 là một hyper-parameter của SAC, ∆𝑤 là trọng số có thể huấn luyện và hàm S(x) là switch function gồm một lớp Average Pooling với kernel
5 × 5 theo sau là một lớp convolution 1 × 1. Switch function này có thể thu thập một số thống kê của feature map bằng các lớp pooling, do đó, nó có thể được sử dụng để phát hiện đối tượng ở các scale khác nhau.
Global Context module được thêm vào trước và sau mỗi khối SAC. Đây là những bộ lọc tích chập 1 × 1 và một lớp average pooling toàn cục. Tác giả đã thực nghiệm và cho rằng để ổn định việc chuyển đổi giữa hai hoạt động tích chập, việc sử dụng thông tin toàn cục sẽ hiệu quả hơn đối với switch function 𝑆(𝑥).
29
2.4.4. TOOD
Phát hiện đối tượng một giai đoạn thường được thực hiện bằng cách tối ưu hóa hai bài toán phụ: phân loại đối tượng và định vị đối tượng sử dụng phần head với 2 nhánh song song, điều này có thể dẫn đến một mức độ sai lệch không gian nhất định trong việc dự đoán giữa hai bài toán. Do đó, TOOD [4] được công bố tại hội nghị ICCV 2021 bởi Chengjian Feng cùng cộng sự trong bài báo “TOOD: Task-
aligned One-stage Object Detection” để làm rõ 2 bài toán theo cách thức dựa trên
phương thức học. Trong đó gồm 2 đề xuất chính:
• Đầu tiên, tác giả thiết kế Task-aligned Head (T-Head) để mang đến sự cân bằng tốt hơn giữa việc học các đặc trưng tương tác với bài toán và học các đặc trưng cho bài toán cụ thể, cũng như tính linh hoạt để học cách điều chỉnh thông qua Task-aligned Predictor.
• Thứ hai, tác giả đề xuất Task Alignment Learning (TAL) để kéo gần hơn (hoặc thậm chí là thống nhất) các anchor tối ưu cho 2 bài toán trong quá trình huấn luyện thông qua Task-aligned Sample Assignment và Task-aligned Loss.
2.4.4.1. Task-aligned Head
30
Task-aligned head (T-Head) được thiết kế bằng cách xem xét 2 khía cạnh: tăng cường sự tương tác giữa hai bài toán và nâng cao khả năng của phương pháp trong việc học cách điều chỉnh.
Để tăng cường sự tương tác giữa 2 bài toán phân loại và định vị, T-Head sử dụng một công cụ trích xuất đặc trưng để học các đặc trưng tương tác bài toán từ nhiều lớp tích chập, được thể hiện bằng các phần màu xanh dương trong hình 2.23. Thiết kế này không chỉ tạo điều kiện cho sự tương tác mà còn cung cấp các đặc trưng ở nhiều cấp với các receptive field ở nhiều scale hiệu quả cho 2 bài toán. Công cụ trích xuất đặc trưng sử dụng N lớp conv liên tiếp với các hàm kích hoạt để tính toán các đặc trưng tương tác bài toán. Do đó, tác giả trích xuất được nhiều đặc trưng multi-scale từ các đặc trưng FPN sử dụng một nhánh duy nhất trong phần head. Sau đó, các đặc trưng đã được tính toán sẽ được truyền qua 2 bộ Task-aligned predictor để điều chỉnh cho bài toán phân loại và định vị.
Task-aligned Predictor (TAP) Tác giả thực hiện cả phân loại và định vị đối tượng trên các đặc trưng tương tác bài toán được tính toán trước đó. Tuy nhiên, do thiết kế một nhánh duy nhất, các đặc trưng tương tác bài toán chắc chắn dẫn đến một mức độ xung đột đặc trưng nhất định giữa hai bài toán khác nhau. Do đó, trong TAP, tác giả đề xuất một cơ chế layer attention để khuyến khích phân rã bài toán bằng cách tính toán động các đặc trưng dành riêng cho bài toán cụ thể ở mức độ layer. Như thể hiện trong Hình 2.23, các đặc trưng dành riêng cho bài toán cụ thể được tính toán riêng biệt cho từng bài toán phân loại hoặc định vị.
Ở bước dự đoán, tác giả điều chỉnh hai bài toán rõ ràng hơn bằng cách điều chỉnh phân bố không gian của hai dự đoán. Khác với các thực nghiệm sử dụng nhánh trung tâm hoặc nhánh IoU trước đó chỉ có thể điều chỉnh dự đoán phân loại dựa trên đặc trưng phân loại hoặc đặc trưng định vị, tác giả điều chỉnh hai dự đoán phân loại và định vị bằng cách xem xét cho cả hai bài toán cùng sử dụng các đặc