Discriminative RoI pooling

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

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

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

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 (adsbygoogle = window.adsbygoogle || []).push({});

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 toá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 đối tượng (DET – Object Detection) và Theo dõi nhiều đối tượng (MOT – Multiple Object Tracking) với 40 735 ảnh định dạng JPG thuộc 50 video, mỗi video là một thư

55

mục chứa các frame ảnh thuộc video đó, được đặt tên tương ứng thứ tự frame trong video. Trong đó, có 24 143 ảnh train (từ 30 video) và 16 592 ảnh test (từ 20 video). Bộ dữ liệu gồm 798 795 đối tượng thuộc 3 class: car (755688 đối tượng), truck (25086 đối tượng) và bus (18021 đối tượng). Ngồi ra, mỡi video của bộ dữ liệu được đánh dấu theo các thuộc tính:

Thời tiết: daylight, night, fog.

Độ cao: low-alt, medium-alt, high-alt.

Góc quay của camera: front-view, side-view, bird-view

− long-term.

4.2.2. Annotation

Annotation của bộ dữ liệu gồm các tệp dạng TXT với mỡi video có 3 tệp TXT (* là tên mỗi video):

− *_gt.txt: dành cho bài toán MOT:

<frame_index>,<target_id>,<bbox_left>,<bbox_top>,<bbox_width>, <bbox_height>,<score>,<in-view>,<occlusion>

o Trong đó:

Thuộc tính Ý nghĩa (adsbygoogle = window.adsbygoogle || []).push({});

<frame_index> Số thứ tự của frame trong video.

<target_id>

ID của đối tượng cung cấp sự tương quan giữa các bounding box của nó trong các frame khác nhau.

<bbox_left> Hồnh độ góc trái trên của bounding box

được dự đốn.

<bbox_top> Tung độ góc trái trên của bounding box được dự đoán

56

<bbox_width> Chiều rộng (tính theo số pixel) của

bounding box được dự đoán.

<bbox_height> Chiều cao (tính theo số pixel) của

bounding box được dự đốn.

<score>

Có giá trị 1 hoặc 0 cho biết bounding box này sẽ được đưa vào đánh giá hay bị bỏ qua.

<in-view> Mặc định giá trị bằng −1.

<occlusion> Mặc định giá trị bằng −1.

Bảng 4.2 Mô tả ý nghĩa định dạng annotation dành cho bài toán MOT.

− *_gt_whole.txt: dành cho bài toán DET:

<frame_index>,<target_id>,<bbox_left>,<bbox_top>,<bbox_width>, <bbox_height>,<out-of-view>,<occlusion>,<object_category>

o Trong đó:

Thuộc tính Ý nghĩa

<frame_index> Số thứ tự của frame trong video.

<target_id>

ID của đối tượng cung cấp sự tương quan giữa các bounding box của nó trong các frame khác nhau.

<bbox_left> Hồnh độ góc trái trên của bounding box

được dự đốn.

<bbox_top> Tung độ góc trái trên của bounding box được dự đoán

<bbox_width> Chiều rộng (tính theo số pixel) của

57

<bbox_height> Chiều cao (tính theo số pixel) của

bounding box được dự đốn. (adsbygoogle = window.adsbygoogle || []).push({});

<out-of-view>

Cho biết mức độ bên ngồi khung hình của đối tượng: 1 = ‘no-out’, 2 = ‘medium-out’, 3 = ‘small-out’.

<occlusion>

Cho biết mức độ bị che phủ của đối tượng: 1 = ’no-occ’, 2 = ‘lagre-occ’, 3 = ‘medium-occ’, 4 = ‘small-occ’.

<object_category> Cho biết nhãn của đối tượng: 1 = ‘car’,

2 = ‘truck’, 3 = ‘bus’

Bảng 4.3 Mô tả ý nghĩa định dạng annotation dành cho bài toán DET.

58

Chương 5. THỰC NGHIỆM VÀ ĐÁNH GIÁ

Nội dung chương này trình bày về quá trình thực nghiệm, phương pháp đánh giá và kết quả thu được của đề tài.

5.1. Quá trình thực nghiệm

5.1.1. Dữ liệu thực nghiệm

Trong phạm vi đề tài này, chúng tôi chỉ sử dụng bộ dữ liệu UAVDT- Benchmark-M 1 để thực nghiệm cho bài tốn phát hiện phương tiện giao thơng trong không ảnh.

5.1.1.1. Thay đổi cách tổ chức của bộ dữ liệu

Vì chúng tơi sử dụng định dạng annotation của MS COCO nên ảnh trong các thư mục của bộ dữ liệu cần được gom lại vào thư mục chung. Chúng tôi đã thực hiện như sau:

− Đầu tiên, chúng tôi lấy 15% trên tổng số lượng frame ảnh ứng với mỗi thư mục train để làm validation set.

− Sau đó, chúng tơi tiến hành thay đổi tên của toàn bộ frame ảnh trong tất cả thư mục theo định dạng: Tên thư mục + 6 ký tự chỉ số thứ tự của frame + .jpg.

− Cuối cùng, chúng tơi di chuyển tồn bộ ảnh trong toàn bộ thư mục sang thư mục train, val, set tương ứng.

− Ngoài ra, dựa trên các thuộc tính của video, chúng tơi cũng tạo các thư mục daylight, lowalt, birdview, daylight – lowalt – birdview để chứa tồn bộ ảnh test có thuộc tính tương ứng để đánh giá mơ hình cho các trường hợp ấy. Như vậy, sau khi thay đổi, bộ dữ liệu UAVDT-benchmark-M chúng tơi dùng để thực nghiệm gồm có các thư mục sau:

Train set: 20 536 ảnh.

Validation set: 3 607 ảnh.

59

Test set: 16 592 ảnh.

Daylight: 9 376 ảnh

Lowalt: 6 987 ảnh

Birdview: 3 217 ảnh

Daylight – lowalt – birdview: 298 ảnh

5.1.1.2. Thay đổi định dạng annotation của bộ dữ liệu

Chúng tôi dùng định dạng annotation của COCO (JSON). Tuy nhiên, vì định dạng này khá phức tạp, chúng tơi chỉ sử dụng 3 khóa chính của định dạng này. Đó là:

− ‘image’: chứa danh sách thông tin của ảnh. (adsbygoogle = window.adsbygoogle || []).push({});

− ‘annotations’: chứa danh sách thông tin của bounding box.

− ‘categories’: chứa danh sách nhãn và id của chúng.

Hình 5.1 Minh họa định dạng annotation mới. 1

1 Chúng tơi đơn giản hóa định dạng annotation của COCO theo hướng dẫn tại: https://mmdetection.readthedocs.io/en/latest/tutorials/customize_dataset.html

60 o Trong đó:

Thuộc tính Ý nghĩa

Khóa ‘images’

‘file_name’ Tên ảnh (kiểu String).

‘height’ Chiều cao của ảnh (kiểu Integer).

‘width’ Chiều rộng của ảnh (kiểu Integer).

‘id’ ID của ảnh trong bộ dữ liệu (kiểu

Integer).

Khóa ‘annotations’

‘segmentation’

Chúng tôi mặc định giá trị này bằng [] do đây là giá trị khơng dùng cho bài tốn phát hiện đối tượng.

‘area’ Diện tích bounding box của đối tượng

(kiểu Float).

‘iscrowd’ Có giá trị 1 hoặc 0 cho biết bounding

box này chứa nhiều hay 1 đối tượng.

‘image_id’ ID ảnh chứa đối tượng (kiểu Integer).

‘bbox’

Tọa độ và kích thước bounding box của đối tượng (kiểu List) với định dạng [x, y, width, height], trong đó:

- x, y: tọa độ góc trái trên bounding box. - width: chiều rộng của bounding box. - height: chiều cao của bounding box.

‘category_id’

ID nhãn của đối tượng, ID này phải tương ứng với ID trong khóa ‘categories’ (kiểu Integer).

‘id’ ID của đối tượng (kiểu Integer).

61

‘id’ ID duy nhất của nhãn (kiểu Integer).

‘name’ Tên của nhãn (kiểu String). Bảng 5.1 Mô tả ý nghĩa định dạng annotation mới.

Sau khi thay đổi, chúng tơi sẽ có 7 tệp JSON trong thư mục anno tương ứng với từng tập train, val, test, daylight, lowalt, birdview, daylight – lowalt – birdview. (adsbygoogle = window.adsbygoogle || []).push({});

5.1.2. Quá trình thực nghiệm

5.1.2.1. Cấu hình thực nghiệm

Mơ hình D2Det là mơ hình phát hiện đối tượng được tác giả huấn luyện trên bộ dữ liệu MS COCO với 80 lớp đối tượng. Sử dụng mơ hình này sẽ phát hiện cả các đối tượng không phải là phương tiện giao thơng, dẫn tới vượt ngồi phạm vi của đề tài này. Chính vì vậy, chúng tơi tiến hành huấn luyện lại mơ hình D2Det trên bộ dữ liệu UAVDT-benchmark-M với các cấu hình mà tác giả sử dụng: backbone ResNet101 và ResNet50 kết hợp với FPN. Chúng tơi chạy thực nghiệm trên máy tính có cấu hình Intel(R) Core(TM) i9-10900X CPU @ 3.70GHz, RAM 64GB, GPU 12GB RTX2080Ti, hệ điều hành Linux. Lưu ý, phiên bản D2Det mà chúng tôi thực nghiệm là phiên bản D2Det dùng trên môi trường mmdetection 2.1.0 1.

5.1.2.2. Mô tả quá trình thực nghiệm

Q trình thực nghiệm bài tốn Phát hiện phương tiện giao thơng trong khơng ảnh như sau:

62

Hình 5.2 Quy trình thực nghiệm.

− Đầu tiên, sau khi tải về bộ dữ liệu, chúng tôi tái cấu trúc của bộ dữ liệu như đã đề cập tại phần 5.1.1 và tiến hành thay đổi định dạng annotation từ tệp TXT thành MS COCO JSON đơn giản theo mẫu của mmdetection.

− Sau đó, chúng tơi tiến hành huấn luyện D2Det trên bộ dữ liệu ở bước trước đó sử dụng các cấu hình mà tác giả đã dùng: backbone ResNet50 và ResNet101 kết hợp với FPN. Các mơ hình này sẽ được đánh giá trên tập validation sau mỗi epoch.

− Kết thúc quá trình huấn luyện, chúng tơi lựa chọn bộ trọng số tại epoch cho kết quả cao nhất để dự đoán trên tập test, daylight, lowalt, birdview, daylight – lowalt – birdview và sử dụng độ đo AP, IoU để đánh giá độ hiệu quả của 2 mơ hình đã chọn. Đầu ra của mơ hình là ảnh chứa các bounding box cùng nhãn tương ứng và độ chính xác của mơ hình.

5.2. Phương pháp đánh giá 5.2.1. Intersection over Union

Intersection over Union (IoU) là chỉ số đánh giá thường được dùng để đo độ chính xác của các phương pháp phát hiện đối tượng, IoU có thể được dùng để đánh giá mọi thuật tốn có khả năng dự đốn ra các bounding box. Cách tính IoU được thể hiện qua hình sau đây:

63

Hình 5.3 Minh hoạ cách tính IoU. Trong đó: Trong đó:

− Area of Overlap là diện tích phần giao giữa bounding box được dự đốn và bounding box ground-truth.

− Area of Union là diện tích phần hợp giữa 2 bounding box trên.

Lý do khiến IoU được sử dụng nhiều trong việc đánh giá các phương pháp phát hiện đối tượng là do trong thực tế, các tọa độ x, y của bounding box được dự đốn khó có thể chính xác hồn tồn với các tọa độ của ground-truth bounding box, và ta cần một phương pháp đánh giá dựa vào độ trùng lắp của 2 bounding box này. Thơng thường, một dự đốn có IoU > 0.5 được xem như là một dự đoán tốt.

5.2.2. Confusion matrix

Confusion matrix là một ma trận thể hiện rõ mỗi lớp được phân loại như thế nào, lớp nào được phân loại đúng nhiều nhất, lớp nào thường bị nhầm lẫn sang lớp khác, …

Hình 5.4 Mẫu confusion matrix với bài tốn phân loại có 3 lớp (ảnh từ thư viện scikit-learn) scikit-learn)

Trong ví dụ trên, trục dọc là lớp thực tế của đối tượng, còn trục ngang là lớp được dự đốn. Như vậy, ta có thể thấy, confusion matrix là một ma trận vng có

64

kích thước n × n (với n là số lớp trong bài toán), trong ma trận này, tổng giá trị của các phần tử trên toàn ma trận là tổng số điểm trong tập kiểm thử, tổng các phần tử trên đường chéo chính là số điểm được dự đốn đúng trong tập kiểm thử. Giá trị thuộc hàng i và cột j là số điểm dữ liệu thuộc lớp i và được dự đoán là lớp j.

5.2.3. Precision và Recall

Giả sử ta xét kết quả phân loại với 1 lớp C trong bài toán phân loại bằng confusion matrix, ta sẽ được ma trận như sau:

Hình 5.5 Cách tính Precision và Recall. Dựa vào confusion matrix trên, ta có: Dựa vào confusion matrix trên, ta có:

− TP là những điểm thuộc lớp C, được dự đoán là lớp C.

− FP là những điểm không thuộc lớp C, nhưng được dự đoán là lớp C.

− TN là những điểm thuộc lớp C, nhưng được dự đốn khơng phải lớp C.

− FN là những điểm không thuộc lớp C, được dự đốn khơng phải lớp C. Trong đó, TP và FN những điểm được dự đốn đúng (xét trên lớp C) và FP, TN là những điểm được dự đốn sai. Dựa vào cơng thức trên, Precision là tỉ lệ các điểm thực sự thuộc lớp C trên tất cả các điểm được dự đốn là lớp C, cịn Recall là tỉ lệ các điểm thuộc lớp C trên tất cả các điểm được dự đốn đúng. Một mơ hình phân lớp tốt là mơ hình có cả Precision và Recall đều cao, tức là càng gần 1 càng tốt. (adsbygoogle = window.adsbygoogle || []).push({});

65

5.2.4. AP

Dựa vào việc quan sát giá trị của Precision và Recall, người ta có thể đánh giá mơ hình có tốt hay khơng. Ví dụ, ta có bảng theo dõi Precision và Recall như sau:

Hình 5.6 Bảng quan sát giá trị Precision và Recall.

Ta có AP là diện tích phần phía dưới đường theo dõi trên, thường được tính xấp xỉ bằng công thức:

𝐴𝑃 = ∑(𝑅𝑛 − 𝑅𝑛 − 1) 𝑛

𝑃𝑛

Cơng thức trên tính diện tích phần phía dưới đường màu xanh như hình sau:

66

Chúng tôi sử dụng độ đo AP của COCO API 1 để đánh giá mơ hình. Theo COCO API, AP được tính tốn cho các IoU trong phạm vi từ 0.5 đến 0.95 với các bước nhảy là 0.05, thường được viết dưới dạng AP@0.50:0.95 hay viết ngắn gọn là AP.

Ngồi ra, chúng tơi cịn đánh giá với AP tại các IoU xác định như sau:

− AP@0.5: AP tại IoU = 0.5 (tương tự độ đo của PASCAL VOC).

− AP@0.75: AP tại IoU = 0.75.

5.3. Kết quả

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

Chúng tôi sử dụng độ đo AP của COCO API để đánh giá mơ hình D2Det với backbone ResNet50 và ResNet101 trên tập test, daylight, lowalt, birdview, daylight – lowalt – birdview của bộ dữ liệu UAVDT-Benchmark-M.

5.3.1.1. Mô hình D2Det sử dụng backbone ResNet50 kết hợp với FPN

AP AP@0.5 AP@0.75

test 14.2 23.2 16.1

daylight 14.6 23.0 17.1

lowalt 43.7 59.6 53.6

birdview 11.1 17.8 12.0

daylight – lowalt – birdview 57.4 76.9 75.0

Bảng 5.2 Kết quả dự đoán của D2Det sử dụng ResNet50 kết hợp FPN.

Mơ hình D2Det sử dụng backbone ResNet50 kết hợp với FPN được huấn luyện trong khoảng 28 giờ. Mơ hình đạt kết quả tốt đối với trường hợp ảnh có cả 3

67

thuộc tính daylight, low-alt, bird-view và tập low-alt. Cịn lại, kết quả dự đốn của

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