Feature Pyramid Network

Một phần của tài liệu Tìm hiểu phương pháp d2det cho bài toán phát hiện phương tiện giao thông trong không ảnh (Trang 37)

Chương 2 CÁC NGHIÊN CỨU LIÊN QUAN

2.9.Feature Pyramid Network

Feature Pyramid Network [10] (FPN) được giới thiệu bởi nhóm tác giả Facebook AI Research (FAIR) tại hội nghị CVPR năm 2017. FPN là mạng phát hiện đặc trưng tạo ra các feature map đa tỉ lệ, được dùng kết hợp với các mạng phát hiện đối tượng nhằm tăng khả năng phát hiện đối tượng trong ảnh. Trong Faster R-CNN, FPN có thể kết hợp với mạng RPN để tăng khả năng dự đoán xác suất đối tượng xuất hiện trong proposal.

Hình 2.22 Feature Pyramid Network. [10]

− Bottom-Up Pathway: là bước feedforward ở backbone ConvNet, mỗi tầng tương ứng với 1 tầng trong “kim tự tháp”, đầu ra của lớp cuối cùng của mỗi tầng sẽ được Lateral Connection lấy tham khảo để nâng cao kết quả của Top- Down Pathway.

38

− Top-Down Pathway và Lateral Connection: Các đặc trưng được nhân với 1 × 1 convolution để giảm kích thước. Thực hiện kết hợp đặc trưng theo chiều từ trên xuống. Ví dụ: C1 kết hợp với C2 bằng cách upsampling C1 lên 2 lần (sử dụng nearest neighbors upsampling), để C1 cùng kích thước với C2.

− Cuối cùng, mỗi feature map đã hợp nhất sẽ được đưa qua một 3 × 3 convolution để giảm hiệu ứng răng cưa của việc upsampling.

Hình 2.23 Minh họa đường đi theo bottom-up và top-down. P2, P3, P4, P5 là các pyramid của các feature map. 1 pyramid của các feature map. 1

39

Chương 3. PHƯƠNG PHÁP PHÁT HIỆN ĐỐI TƯỢNG DỰA TRÊN HỌC SÂU

Phương pháp D2Det là phương pháp phát hiện đối tượng 2 giai đoạn sử dụng anchor dựa trên Faster R-CNN. Do đó, nội dung chương này sẽ giới thiệu về các phương pháp thuộc họ R-CNN – phương pháp tiêu biểu trong nhóm phương pháp 2 giai đoạn sử dụng anchor và D2Det.

3.1. Phương pháp phát hiện đối tượng họ R-CNN

Như đã đề cập ở chương 2, 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 (Image classification) và Định vị đối tượng (Object localization) 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 [7].

3.1.1. R-CNN (Region with CNN feature)

Hình 3.1 Kiến trúc của R-CNN. [11] Ý tưởng của R-CNN [11] gồm 2 bước: Ý tưởng của R-CNN [11] gồm 2 bước:

Bước 1: Sử dụng thuật toán Selective Search để thu được các vùng đề xuất có

40 o Đầu vào (Input): ảnh màu.

o Đầu ra (Output): khoảng 2000 vùng đề xuất có khả năng chứa đối

tượng.

Bước 2: Với mỗi vùng đề xuất thu được từ bước 1, xác định nó là đối tượng

nào. Cụ thể:

o Do thuật toán Selective Search cho ra 2000 vùng đề xuất nên có rất nhiều vùng khơng chứa đối tượng nào. Vì vậy, tác giả đã thêm vào 1 lớp background (không chứa đối tượng nào).

o Sau đó các vùng đề xuất được điều chỉnh về cùng kích thước và thực hiện học chuyển giao (transfer learning) và trích xuất đặc trưng (feature extractor), các đặc trưng được trích xuất này được cho vào thuật toán SVM để phân loại ảnh.

o Bên cạnh đó, các đặc trưng được trích xuất cũng được dùng để dự đốn 4 offset value cho mỡi cạnh. Ví dụ như khi vùng đề xuất chứa người nhưng chỉ có phần thân và nửa mặt, nửa mặt cịn lại khơng có trong vùng đó thì offset value đó giúp mở rộng vùng đề xuất để lấy được toàn bộ người.

3.1.2. Fast R-CNN

41

Tương tự như R-CNN, Fast R-CNN 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 và thực hiện bài tốn phân loại cho mỡi ảnh. Fast R-CNN cho cả bức ảnh vào backbone ConvNet để tạo ra feature map. Sau đó các vùng đề xuất được lấy ra tương ứng từ feature map. Tiếp theo, các feature map đó được d̃i thành các vector đặc trưng và qua 2 lớp fully connected để dự đoán lớp của các vùng đề xuất cũng như offset value của chúng.

Tuy nhiên kích thước của các vùng đề xuất khác nhau nên khi d̃i, các vector sẽ có kích thước khác nhau và không thể áp dụng cho neural network. Ở R-CNN, các vùng đề xuất đã được resize về cùng kích thước trước khi thực hiện transfer learning, nhưng với feature map thì khơng thể resize được. Vì vậy, tác giả đã thêm vào RoI pooling để chuyển các vùng đề xuất trong feature map về cùng kích thước.

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 tốn bằng Vectorization.

3.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 tốn Selective Search để tạo nên mơ hình Faster R-CNN đạt được tốc độ gần thời gian thực.

42 (adsbygoogle = window.adsbygoogle || []).push({});

3.1.3.1. Tởng quan

Hình 3.3 Kiến trúc của Faster R-CNN. [7]

Faster R-CNN [7] là phương pháp phát hiện đối tượng 2 giai đoạn:

Giai đoạn 1: Sử dụng region proposal network (RPN) thay cho thuật toán

Selective Search để thu được các vùng đề xuất có khả năng chứa đối tượng.

Giai đoạn 2: thực hiện tương tự như Fast R-CNN với các vùng đề xuất thu

43

3.1.3.2. RPN

Hình 3.4 Kiến trúc của RPN. 1Quá trình hoạt động của RPN như sau: Quá trình hoạt động của RPN như sau:

− Đầu tiên, ảnh đầu vào được truyền qua CNN để thu được feature map.

− Để tạo ra các proposal, một cửa sổ trượt với kích thước n × n trượt trên feature map thu được từ CNN. Mỗi cửa sổ trượt được ánh xạ thành vector đặc trưng với số lượng chiều ít hơn.

− Vector đặc trưng này được feed qua 2 fully connected layer riêng biệt: regression layer (reg) thu được 4 hệ số tọa độ của proposal và classification layer (cls) thu được 2 score cho biết xác suất proposal chứa object hay không.

− Tại mỡi vị trí của cửa sổ trượt, ta dự đoán nhiều proposal, với k là số lượng proposal có thể có tương ứng với mỡi vị trí của cửa sổ trượt. Như vậy, reg layer có đầu ra là 4k tương ứng với 4 hệ số tọa độ của k proposal, cls layer có đầu ra là 2k score ước lượng xác suất các proposal chứa đối tượng.

1 Nguồn: https://towardsdatascience.com/faster-r-cnn-for-object-detection-a-technical-summary- 474c5b857b46

44

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à proposal, sau đó qua RPN thì output chỉ gồm những anchor box chắc chắn chứa đối tượng:

Hình 3.5 RPN trong bài báo gốc.

− Tại mỡi vị trí của cửa sổ trượt trên convolutional feature map, các anchor được tạo ra tương ứng với ảnh gốc, có cùng tâm là tâm của cửa sổ trượt nhưng khác nhau về scale và aspect ratio.

Hình 3.6 Ví dụ minh họa về anchor ứng với một cửa sổ trượt. 1

− Trong bài báo gốc sử dụng 3 scale: 128, 256, 512 và 3 aspect ratio: 1:1, 1:2, 2:1, ta sẽ có k = 9 anchor tại mỡi vị trí cửa sổ trượt và ứng với mỡi feature map có kích thước W × H, ta sẽ có tổng cộng W × H × k anchor.

1 Nguồn: The Generalized R-CNN Framework for Object Detection - Ross Girshick tại https://sites.google.com/view/cvpr2018-recognition-tutorial

45

− Như vậy, ta xác định được đầu ra của bounding-box regression layer và classification layer được nhắc tới ở phần cấu trúc hoạt động của mạng RPN:

o Cls layer dự đoán xác suất chứa object của k proposal, tương ứng với k anchor tại từng vị trí của cửa sổ trượt.

a) Anchor chứa đối tượng b) Anchor không chứa đối tượng

Hình 3.7 Score của anchor được classification layer dự đoán. 1

o Reg layer dự đoán khoảng cách từ anchor đến ground-truth box tương ứng để điều chỉnh anchor box khớp với đối tượng.

Hình 3.8 Anchor được điều chỉnh bởi bounding-box regression layer. 1

1 Nguồn: The Generalized R-CNN Framework for Object Detection - Ross Girshick tại https://sites.google.com/view/cvpr2018-recognition-tutorial

46 (adsbygoogle = window.adsbygoogle || []).push({});

Sau khi dự đố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.

3.1.3.3. Fast R-CNN

a) Fast R-CNN

b) Faster R-CNN

Hình 3.9 Sự khác biệt giữa Fast R-CNN và Faster R-CNN. 1

1 Nguồn: The Generalized R-CNN Framework for Object Detection - Ross Girshick tại https://sites.google.com/view/cvpr2018-recognition-tutorial

47

Sau khi lấy được các vùng đề xuất từ RPN, Faster R-CNN cũng cho các vùng này 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 đã được đề cập ở trên.

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 – điểm 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 bounding box thu được từ RPN.

3.2. D2Det

3.2.1. Tổng quan

D2Det [1] được công bố tại hội nghị CVPR 2020 bởi Jiale Cao cùng cộng sự.

Hình 3.10 Kiến trúc của D2Det.

D2Det [1] là phương pháp phát hiện đối tượng 2 giai đoạn dựa trên Faster R- CNN [7]:

Giai đoạn 1: Sử dụng region proposal network (RPN) để thu được các

48

Giai đoạn 2: D2Det [1] đề xuất dense local regression và discriminative RoI

pooling thay cho bounding box regression và object classification của Faster R-CNN [3], trong đó:

o Dense local regression: giải quyết bài toán định vị đối tượng. o Discriminative RoI pooling: giải quyết bài toán phân lớp.

3.2.2. Dense local regression

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.

Hình 3.11 Dense local regression.

Dense local regression xem đặc trưng RoI k × k chiều (ma trận thu được từ quá trình RoI Pooling hoặc RoIAlign) như k2 đặ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à pi. Mỗi thông số ground-truth (li, ri, ti, bi) tương ứng với pi được tính như sau:

li =xi− xl wP , ri = xr− xi wP , ti = yi− yt hP , bi = yb− yi hP

49

− Trong đó:

o xi, yi: tọa độ vị trí của pi.

o xl, yt: tọa độ góc trái trên của ground-truth box G. o xr, yb: tọa độ góc phải dưới của ground-truth box G. o wP, hP: chiều rộng và chiều cao của proposal P. (adsbygoogle = window.adsbygoogle || []).push({});

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 m̂𝑖 để 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. Như vậy, trong quá trình tính tốn, dense local regression dự đốn 4 thơng số dense box (l̂i, t̂i, r̂i, b̂i) cùng m̂i tại mỗi đặc trưng cục bộ pi ∈ P.

Trong quá trình huấn luyện, m̂i được truyền qua hàm chuẩn hóa sigmoid (σ) để tính tốn binary cross-entropy loss với nhãn ground-truth mi = 1 nếu đặc trưng cục bộ pi thuộc phần giao nhau giữa proposal P và ground-truth G, mi= 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í σ(m̂i) > 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 một bounding box cuối cùng.

3.2.3. Discriminative RoI pooling

Discriminative RoI pooling lấy cảm hứng từ Deformable RoI pooling [9] và cải thiện nó để dùng cho bài tốn phân lớp như sau:

50

Hình 3.12 Discriminative RoI Pooling.

− Ở nhánh trên, tác giả thực hiện RoIAlign với kích thước k

2×k

2 (lightweight offset prediction) thay vì RoIAlign với kích thước k × k (standard offset prediction) của Deformable RoI pooling, rồi truyền qua 3 lớp fully connected để thu được các thông số được tăng cường (augmented offsets).

− Ở 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 3.13 Adaptive Weighted Pooling.

o Tại đây, các điểm mẫu ban đầu, F ∈ R2k×2k (tương ứng với mỡi giá trị

của ma trận đặc trưng k

2×k

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 (W ∈ R2k×2k). Các

51

trọng số này cho biết khả năng phân biệt của chúng trong tồn bộ khơng gian vùng con đó.

o Sau đó, ma trận đặc trưng Weighted RoI 𝐹̃ được tính bằng cơng thức: F̃ = W(F) ⊙ F

▪ Trong đó:

• ⊙: Tích Hadamard.

• F: Ma trận các điểm mẫu ban đầu của ma trận k

2×k 2 thu được từ RoIAlign.

• W(F): Ma trận các trọng số tương ứng với mỡi điểm mẫu

của F được tính thơng qua lớp convolutional.

o Tiếp theo, tác giả dùng average pooling với stride bằng 2 trên F̃ và thu được ma trận đặc trưng discriminative RoI với kích thước k × k. o 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 2 lớp fully connected để thu được classification score.

3.2.4. Kết quả thực nghiệm

D2Det được thực nghiệm trên bộ dữ liệu MS COCO và UAVDT, trong đó:

− MS COCO: gồm 80 lớp và được đánh giá bằng độ đo AP của MS COCO.

− UAVDT: gồm 3 lớp (car, truck, bus) và được đánh giá bằng độ đo AP của PASCAL VOC tại IoU = 0.7. (adsbygoogle = window.adsbygoogle || []).push({});

52

Bảng 3.1 Kết quả trên bộ dữ liệu MS COCO test-dev.

53

Chương 4. BỘ DỮ LIỆU UAVDT-BENCHMARK-M

Nội dung chương này trình bày tởng quan về bộ dữ liệu UAVDT và chi tiết hơn về bộ dữ liệu UAVDT-benchmark-M dành cho bài tốn của chúng tơi.

4.1. Bộ dữ liệu UAVDT

Có nhiều bộ dữ liệu hỡ trợ thực hiện bài tốn, nhưng chúng tơi tập trung vào bộ dữ liệu UAVDT [2] bởi sự đa nhiệm, cũng như có những yếu tố phức tạp (ánh sáng, độ cao, góc quay) phù hợp cho bài tốn.

Hình 4.1 Một số ảnh của bộ dữ liệu UAVDT. 1

− Chú thích bảng 4.1

o D = DET (Object Detection): Phát hiện đối tượng.

o S = SOT (Single Object Tracking): Theo dõi một đối tượng.

o M = MOT (Multiple Object Tracking): Theo dõi nhiều đối tượng.

54

Bảng 4.1 Tóm tắt các bộ dữ liệu liên quan. [2]

Bộ dữ liệu gồm khoảng 80.000 ảnh được lấy từ các video có tổng thời lượng 10 tiếng với khoảng 0,84 triệu bounding box và hơn 2.700 phương tiện giao thông, được chia làm 2 bộ dữ liệu:

UAVDT-Benchmark-M: 40.735 ảnh (từ 50 video), dành cho bài toán phát hiện

đối tượng và theo dõi nhiều đối tượng.

UAVDT-Benchmark-S: 37.085 ảnh (từ 50 video), dành cho bài toán theo dõi

một đối tượng.

4.2. Bộ dữ liệu UAVDT-Benchmark-M

4.2.1. Tổng quan

Bộ dữ liệu UAVDT-Benchmark-M là bộ dữ liệu dành cho bài toán Phát hiện

Một phần của tài liệu Tìm hiểu phương pháp d2det cho bài toán phát hiện phương tiện giao thông trong không ảnh (Trang 37)