Bounding Box Refinement

Một phần của tài liệu Nghiên cứu và đánh giá phương pháp phát hiện phương tiện giao thông trong không ảnh (khóa luận tốt nghiệp) (Trang 52)

Tác giả cải thiện độ chính xác của định vị đối tượng thông qua bước Bounding Box Refinement. Bounding Box Refinement là một kỹ thuật thông dụng trong Phát hiện đối tượng, tuy nhiên, nó không được dùng nhiều trong các mô hình phát hiện đối tượng dày đặc do thiếu các bộ mô tả đối tượng hiệu quả. Với Star- Shaped Box Feature Representation, Bounding Box Refinement đã có thể được dùng trong mô hình Phát hiện đối tượng mà không làm giảm hiệu suất.

Đối với hộp giới hạn hồi quy ban đầu (l ’, t’, r ’, b’), trước tiên tác giả trích xuất biểu diễn hình sao để mã hóa nó. Sau đó, dựa trên biểu diễn, chúng ta tìm hiểu bốn hệ số tỷ lệ khoảng cách (∆l, ∆t, ∆r, ∆b) để chia tỷ lệ vectơ khoảng cách ban

36

đầu, để hộp giới hạn tinh chỉnh được biểu diễn bằng (l, t, r, b) = (∆l × l ', ∆t × t', ∆r × r ', ∆b × b') gần với chân lý hơn.

Đầu tiên, với bounding box ban đầu (𝑙′, 𝑡′, 𝑟′, 𝑏′), tác giả trích xuất star- shaped representation để mã hóa nó. Sau đó, tác giả học 4 hệ số tỷ lệ khoảng cách (∆𝑙, ∆𝑡, ∆𝑟, ∆𝑏) để điều chỉnh vector khoảng cách ban đầu sao cho bounding box được tinh chỉnh gần với ground truth hơn. Bounding box được tinh chỉnh này được thể hiện bằng (𝑙, 𝑡, 𝑟, 𝑏) = (∆𝑙 × 𝑙’, ∆𝑡 × 𝑡’, ∆𝑟 × 𝑟’, ∆𝑏 × 𝑏’).

37 Chương 3. BỘ DỮ LIỆU UAVDT

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.

3.1. Bộ dữ liệu UAVDT

Có nhiều bộ dữ liệu hỗ trợ thực hiện bài toán, nhưng chúng tôi tập trung vào bộ dữ liệu UAVDT [6] 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 toán.

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

Chú thích bảng 3.1:

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

o S: SOT (Single Object Tracking): Truy vết một đối tượng.

o M: MOT (Multiple Object Tracking): Truy vết nhiều đối tượng.

38

Hình 3.2 Bảng tóm tắt các bộ dữ liệu liên quan. [6] (Hình cắt từ bài báo gốc) 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à truy vết nhiều đối tượng.

• UAVDT-Benchmark-S: 37 085 ảnh (từ 50 video), dành cho bài toán truy vết một đối tượng.

3.2. Bộ dữ liệu UAVDT-Benchmark-M 3.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 và Truy vết nhiều đối tượng với 40 735 ảnh định dạng JPG thuộc 50 video, mỗi video là một thư mục chứa các frame ảnh thuộc video đó, được đặt tên

39

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 (755 688 đối tượng), truck (25 086 đối tượng) và bus (18 021 đối tượng). Ngoài ra, mỗi video của bộ dữ liệu được đánh dấu theo các thuộc tính:

• Điều kiện chiếu sáng:

o Ban ngày (daylight): Các video ban ngày cho thấy sự giao thoa của bóng đổ bởi ánh mặt trời, gồm 24 055 ảnh.

o Ban đêm (night): Các video vào ban đêm, dưới ánh sáng của đèn đường mờ, khó nắm bắt được thông tin kết cấu của vật thể, gồm 11 501 ảnh.

o Sương mù (fog): Các video được ghi trong điều kiện sương mù sẽ thiếu các chi tiết liên quan đến đường nét của các đối tượng, gồm 5 179 ảnh.

• Độ cao của thiết bị bay: Tác động đến kích thước của đối tượng.

o Độ cao dưới 30m (low-alt): Các video sẽ thu được nhiều chi tiết của đối tượng hơn, nhưng lượng đối tượng thu được thường sẽ ít hơn so với khi quay ở cao hơn, gồm 14 644 ảnh.

o Độ cao dưới 70m (medium-alt): gồm 24 059 ảnh.

o Độ cao trên 70m (high-alt): Các video thu được nhiều đối tượng, thậm chí là hơn 100 đối tượng, nhưng các đối tượng này sẽ có kích thước rất nhỏ, gồm 2 032 ảnh.

• Góc quay của camera: cho biết cách quay video

o front-view: với front view, camera sẽ được căn chỉnh thẳng với đường đi, gồm 23 601 ảnh.

o side-view: với side view, camera sẽ lệch khỏi trục với mặt đường để chụp mặt bên của các đối tượng, gồm 17 672 ảnh.

o bird-view: với bird view, camera sẽ vuông góc với mặt đất, gồm 10 737 ảnh.

40

• Thời lượng dài (long-term): Thời lượng cho biết độ dài của một chuỗi. Trong chuỗi ghi hình, góc quay của camera có thể thay đổi để thu được cả front-view và side-view. Các chuỗi chứa hơn 1 500 frame ảnh sẽ được gắn nhãn long-term, gồm 7 376 ảnh.

3.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 Truy vết nhiều đối tượng

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> Hoành độ góc trái trên của bounding

box được dự đoá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

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

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

bounding box được dự đoá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.

41

• *_gt_whole.txt: dành cho bài toán Phát hiện đối tượng

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> Hoành độ góc trái trên của bounding

box được dự đoá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

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

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

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

<out-of-view>

Cho biết mức độ bên ngoà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 = ‘large-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 3.2 Mô tả ý nghĩa định dạng annotation cho Phát hiện đối tượng. • *_gt_ignore.txt: biểu diễn các vùng bị bỏ qua.

42

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

4.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 để thực nghiệm cho bài toán phát hiện phương tiện giao thông trong không ảnh.

4.1.1. Thay đổi cách tổ chức

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 ra khỏ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: Lấy các ký tự số của tên thư mục + ký tự ‘0’ + các ký tự chỉ số thứ tự của frame + .jpg.

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

• Ngoài ra, dựa trên 10 thuộc tính của video, chúng tôi cũng tạo các thư mục test của từng thuộc tính để chứa toà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: gồm 20 536 ảnh. • val: gồm 3 607 ảnh. • test: gồm 16 592 ảnh. • daylight/test: gồm 9 376 ảnh. • night/test: gồm 5 035 ảnh. • fog/test: gồm 2 181 ảnh.

43 • lowalt/test: gồm 6 987 ảnh. • mediumalt/test: gồm 7 925 ảnh. • highalt/test: gồm 1 680 ảnh. • frontview/test: gồm 10 464 ảnh. • sideview/test: gồm 7 611 ảnh. • birdview/test: gồm 3 217 ảnh. • longterm/test: gồm 3 435 ảnh.

4.1.2. Thay đổi định dạng annotation

Chúng tôi dùng định dạng annotation của MS 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:

• ‘image’: chứa danh sách thông tin của ảnh.

• ‘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 4.1 Minh họa định dạng annotation mới. 7

7 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

44

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 toá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).

45

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

‘name’ Tên của nhãn (kiểu String).

Bảng 4.1 Mô tả ý nghĩa định dạng annotation mới.

4.2. Mô tả thực nghiệm

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

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

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

• Đầu tiên, sau khi tải về bộ dữ liệu, tôi tái cấu trúc cách tổ chức của bộ dữ liệu 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 như đã đề cập tại phần 4.1.

• Sau đó, tôi tiến hành huấn luyện các phương pháp Faster R-CNN, D2Det, DetectoRS, TOOD, VFNet trên bộ dữ liệu ở bước trước đó với các cấu hình sẽ được đề cập tại phần 4.2.2. 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, 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 tổng quát và 10 tập test tương ứng với 10 thuộc tính của bộ dữ liệu. Tôi sử dụng độ đo AP,

46

IoU để đánh giá độ hiệu quả của các mô hình. Đầu ra 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.

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

Toàn bộ quá trình thực nghiệm đều được chạy trên GPU GeForce RTX 2080 Ti GPU với bộ nhớ 11019MiB. Các mô hình được huấn luyện trên mmdetection framework phiên bản 2.22.0 với backbone ResNet-50 và ResNet-101, riêng D2Đet sử dụng mmdetection framework phiên bản 2.1.0. Với mỗi phương pháp thực nghiệm, tôi tiến hành huấn luyện mô hình với cấu hình mặc định được cung cấp bởi framework trong 12 epoch và 24 epoch. Trong trường hợp 24 epoch sẽ gồm 2 mô hình có và không có multi-scale training với 2 scale là (1333, 480) và (1333, 960).

4.3. Phương pháp đánh giá 4.3.1. Intersection over Union 4.3.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 toán có khả năng dự đoán ra các bounding box. Cách tính IoU được thể hiện qua hình sau đây:

47 Trong đó:

• Area of Overlap là diện tích phần giao giữa bounding box được dự đoá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ự đoán khó có thể chính xác hoàn toà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ự đoán có IoU > 0.5 được xem như là một dự đoán tốt.

4.3.2. AP

4.3.2.1. Confusion matrix

Confusion matrix là một ma trận thể hiện 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,…

Hình 4.4 Mẫu confusion matrix với bài toán phân loại có 3 lớp.

(ảnh từ thư viện 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ự đoán. Như vậy, ta có thể thấy, confusion matrix là một ma trận vuông có

48

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ự đoá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.

4.3.2.2. 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 4.5 Cách tính Precision và Recall.

Trong đó, TP và FN những điểm được dự đoán đúng (xét trên lớp C) và FP, TN là những điểm được dự đoán sai. Như vậy, Precision là độ đo đánh giá độ tin cậy của dự đoán đưa ra (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ự đoán là lớp C), còn Recall là độ đo đánh giá khả năng tìm kiếm toàn bộ ground- truth mà mô hình dự đoán được đúng (tỉ lệ các điểm thuộc lớp C trên tất cả các điểm được dự đoán đúng).

4.3.2.3. AP và mAP

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.

49

Hình 4.6 Minh họa vùng mà công thức tính AP tính toán.

AP (Average Precision) là đường cong Precision-Recall (Precision-Recall curve) dùng để tính diện tích phần phía dưới đường theo dõi màu xanh của hình 4.6, thường được tính xấp xỉ bằng công thức:

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

𝑃𝑛

mAP (Mean Average Precision) là trung bình điểm số AP của n class và được định nghĩa bằng công thức sau:

𝑚𝐴𝑃 =1

𝑛∑ 𝐴𝑃𝑖 𝑛

𝑖=1

Chúng tôi sử dụng độ đo AP@50 – AP tại IoU = 50% (tương tự độ đo của PASCAL VOC) của MS COCO8 để đánh giá mô hình.

4.4. Kết quả

Trong phần này, để có thể trình bày ngắn gọn hơn, tôi sẽ gọi tên các mô hình theo cú pháp <Tên mô hình>-<Backbone>-<Số epoch>-<MS> với MS là mô hình được huấn luyện multi-scale.

50

4.4.1. Kết quả thực nghiệm phương pháp Faster R-CNN 4.4.1.1. Kết quả thực nghiệm 4.4.1.1. Kết quả thực nghiệm

Bảng 4.2 Kết quả thực nghiệm Faster R-CNN. (Kết quả cao nhất được in đậm)

Từ bảng 4.2, ta thấy cả 6 mô hình Faster R-CNN đều không hiệu quả đối với bộ dữ liệu UAVDT-benchmark-M khi mô hình có kết quả tốt nhất trên tập test chỉ đạt được AP@50 = 23.3%. Trong đó, mô hình Faster R-CNN-ResNet50-24-MS có kết quả tốt nhất trên các tập test, fog, high-alt và front-view. Mô hình Faster R- CNN-ResNet50-12 có kết quả tốt nhất trên tập daylight, night, medium-alt, front- view, side-view và long-term. Mô hình Faster R-CNN-ResNet101-24-MS có kết quả tốt nhất trên tập low-alt và bird-view. Tuy nhiên, so với 2 mô hình sử dụng backbone ResNet50 vừa được đề cập có kết quả không quá chênh lệch, mô hình Faster R-CNN-ResNet101-24-MS mất nhiều thời gian huấn luyện nhất nhưng có kết quả thấp hơn hẳn khi dự đoán ở các trường hợp ngoài low-alt và bird-view.

Một phần của tài liệu Nghiên cứu và đánh giá phương pháp phát hiện phương tiện giao thông trong không ảnh (khóa luận tốt nghiệp) (Trang 52)