3.2.2.Định dạng nhãn dữ liệu của bộ dữ liệu UIT-Drone21
Nhãn dữ liệu của bộ dữ liệu UIT-Drone21 được lưu trữ ở định dạng COCO (.json) trong 3 tập tin tương ứng với 3 tập dữ liệu bao gồm train.json, val.json và test_all.json.
Mỗi tập tin nhãn bao gồm 3 khối chính:
• “categories”: khối chứa danh sách các lớp đối tượng xuất hiện trong bộ dữ liệu.
"categories": [
{"id": 0,"name": "pedestrian","supercategory": "none"}, ...
]
Trong đó:
Thuộc tính Ý nghĩa
<id > Mã định danh của lớp đối tượng
35
<supercategory > Tên lớp đối tượng cha (nếu có)
Bảng 3.2: Mơ tả ý nghĩa giá trị các thuộc tính trong khối “categories” (.json). • “images”: khối chứa thông tin của ảnh.
"images": [ { "file_name": "VIS_0359_1p00s_2p00s_124.jpg", "height": 2160 , "id": 2878, "width": 3840 }, ... ] Trong đó: Thuộc tính Ý nghĩa
<id > Mã định danh của ảnh
<name> Tên tập tin ảnh
<height > Chiều cao ảnh
<width > Chiều rộng ảnh
Bảng 3.3: Mô tả ý nghĩa giá trị các thuộc tính trong khối “image” (.json).
o “annotations”: Khối chứa thông tin nhãn của từng đối tượng có trong ảnh của bộ dữ liệu. "annotations": [ { "area": 1116.0, "bbox": [ 2327, 1839, 31, 36 ], "category_id": 0, "id": 157, "ignore": 0,
36 "image_id": 4, "iscrowd": 0, "segmentation": [ [ ... ] ] }, Trong đó: Thuộc tính Ý nghĩa
<area > Diện tích Bounding box
<bbox> Tọa độ Bounding box bao gồm x, y, width, height.
<category_id > Mã định danh của nhãn
<id> Mã định danh của nhãn
<image_id > Mã định danh của ảnh
< segmentation> Thông tin về tọa độ đa giác bao quanh đối tượng
<iscrowd>
Giá trị thông tin ở trường segmentation là của 1 đối tượng riêng lẻ (iscrowd = 0) hoặc của cả 1 nhóm đối tượng (iscrowd = 1)
Bảng 3.4: Mơ tả ý nghĩa giá trị các thuộc tính trong khối “annotations” (.json).
3.3.Quy trình tạo sương mờ cho ảnh
Để tạo sương mờ cho ảnh, chúng tôi đã sử dụng sử dụng lớp Fog của thư viện imgaug9. Với các tham số có các giá trị mặc định, lớp này có khả năng mơ phỏng một lớp sương mờ khá dày đặc trên ảnh với mật độ không đều. Mỗi không ảnh của bộ dữ liệu UIT-Drone21 sẽ lần lượt được truyền vào hàm xử lý tạo sương để tạo ra được một không ảnh chứa sương mờ tương ứng trong bộ dữ liệu UIT- DroneFog.
9https://imgaug.readthedocs.io/en/latest/source/api_augmenters_weather.html#imgaug.augmenters.wea
37
Tuy nhiên, nhận thấy rằng các giá trị mặc định của thư viện này khơng q phù hợp với ảnh có độ phân giải lớn, chúng tơi đã quyết định tiến hành điều chỉnh hai tham số 𝑎𝑙𝑝ℎ𝑎_𝑚𝑖𝑛 = 0.75, 𝑑𝑒𝑛𝑠𝑖𝑡𝑦_𝑚𝑢𝑙𝑡𝑖𝑝𝑙𝑖𝑒𝑟 = 0.7 và giữ nguyên các thông số khác với giá trị mặc định của thư viện nhằm tạo ra lớp sương mờ phù hợp với bối cảnh nhất có thể.
38
Trong đó, thơng số 𝑎𝑙𝑝ℎ𝑎_𝑚𝑖𝑛 (giá trị mặc định trong khoảng (0.7 − 0.9)) cho biết mức tối thiểu của giá trị alpha khi mô phỏng sương mờ lên hình ảnh. Việc tăng giá trị này giúp sương mờ phân bố đều hơn. Mặc khác, thông số
density_multiplier (giá trị mặc định (0.4 − 0.9)) là hệ số nhân cho lớp alpha mask. Khi tăng giá trị tham số này sẽ dẫn tới việc sương mờ trở nên dày đặc hơn ở những nơi mà chúng xuất hiện. Kết quả mô phỏng sương mờ được thể hiện trong Hình 3.6.
3.4.Phân tích bộ dữ liệu
Hình 3.7: Hình ảnh minh họa bộ dữ liệu UIT-DroneFog
UIT-DroneFog có thể được xem như là phiên bản sương mờ của bộ dữ liệu UIT-Drone21 với 15,370 không ảnh chứa sương khoảng 600,000 bounding box của 4 lớp đối tượng gồm: Pedestrian, Motor, Car, Bus. Ngoài ra, bộ dữ liệu UIT- DroneFog có những điểm nổi bật riêng sau:
(1)Hình ảnh đa dạng và chất lượng cao: Q trình mơ phỏng sương mờ sử dụng hình ảnh được chụp lại từ máy bay không người lái cao cấp với 3 độ phân giải khác nhau (3840x2160, 1920x1080, 1440x1080) dẫn đến hình ảnh
39
sương mờ của bộ dữ liệu không bị mờ, biến dạng mà vẫn giữ được chất lượng ban đầu của bộ dữ liệu UIT-Drone21.
(2)Bối cảnh đa dạng: Mỗi hình ảnh trong bộ dữ liệu của nhóm là duy nhất. Chúng khác nhau về phân bố sương mờ, góc chụp và độ cao. Hơn nữa, nhóm đã mơ phỏng sương mờ không chỉ ở một địa điểm nhất định mà ở nhiều nơi khác nhau ở các thành phố khác nhau tại Việt Nam
(3)Thách thức từ các lớp dữ liệu: Bởi vì bộ dữ liệu này được thực hiện trên đường phố Việt Nam nên phần lớn là đối tượng xuất hiện trong ảnh là Motor trong khi đó lớp đối tượng Bus xuất hiện cực kì ít mặc dù. Sự mất cân bằng này là một thách thức để việc phát hiện hoạt động hiệu quả. Bên cạnh đó, xe máy có kích thước nhỏ và xuất hiện dày đặc trên đường có thể gây khó khăn cho các mơ hình trong q trình phát hiện các đối tượng này.
40
Chương 4.THỰC NGHIỆM VÀ ĐÁNH GIÁ
Trong chương này, chúng tơi sẽ trình bày q trình cài đặt thực nghiệm với bộ dữ liệu được xây dựng và đánh giá kết quả mơ hình SOTA được sử dụng trên bộ dữ liệu này.
4.1.Dữ liệu thực nghiệm 4.1.1.Mô tả cơ bản 4.1.1.Mô tả cơ bản
Bộ dữ liệu huấn luyện UIT-DroneFog bao gồm 15,370 không ảnh được thành 3 tập con: tập dữ liệu huấn luyện (Training set) gồm 8,582 ảnh kèm nhãn, tập đánh giá (Validation set) gồm 1,061 ảnh và tập kiểm tra (Testing set) có 5,729 ảnh. Mơ tả chi tiết ở Hình 4.1 bên dưới.
Hình 4.1: Số lượng ảnh trong các tập dữ liệu của bộ dữ liệu UIT-DroneFog.
4.1.2.Mô tả chi tiết
Về bộ dữ liệu sau khi được chia thành các tập dữ liệu phục vụ cho quá trình thực nghiệm, chúng tôi đã thống kê sự phân phối các lớp dữ liệu trong các tập dữ liệu và thu được kết quả như Hình 4.2.
8580
1061 5729
41
Hình 4.2: Biểu đồ thể hiện số lượng các đối tượng trong mỗi tập dữ liệu của bộ dữ liệu UIT-DroneFog.
Qua biểu đồ, ta thấy sự mất cân bằng phân phối của các lớp đối tượng tại các tập dữ liệu chạy thực nghiệm. Cụ thể, lớp đối tượng Motor có số lượng gấp nhiều so với các lớp đối tượng khác trong cả ba tập dữ liệu và phân phối của lớp đối tượng Pedestrian cũng tương đối ít. Điều này có thể lý giải vì bộ dữ liệu được thu thập tại các giao lộ lớn có mật độ xe máy đơng đúc và ít người đi bộ – một đặc trưng của giao thông tại Việt Nam.
Trong khi đó, đối tượng Bus cho kết quả số liệu thấp nhất ở cả ba tập vì dữ liệu được thu thập từ các video có thời lượng ngắn nên khơng thể chụp được nhiều tuyến xe buýt. Mặt khác, mặc dù số lượng ảnh của tập huấn luyện gấp 8 lần số lượng ảnh của tập kiểm thử, số liệu của đối tượng Bus và Car ở tập kiểm thử lần lượt nhiều hơn gấp 3 và 1.8 lần so với tập huấn luyện.
50554 6075 15968 238013 29398 157000 14332 1750 25266 1655 194 4996 0 50000 100000 150000 200000 250000
Training setValidation setTesting set
Số lượn g đố i tượn g
42
4.2.Mơ tả thực nghiệm
4.2.1.Mơ tả quy trình thực nghiệm
Bài toán “Phát hiện đối tượng trong không ảnh chứa sương mờ” được thực hiện theo quá trình sau:
Hình 4.3: Luồng xử lý quá trình cài đặt, chạy thực nghiệm của bài tốn. Đầu tiên, ta sẽ có đầu vào là bộ dữ liệu UIT-Drone21 với tập tin nhãn đã được chia thành các tập dữ liệu tương ứng. Sau đó, bộ dữ liệu này sẽ được thêm sương mờ thông qua hàm Fog Augumentation được lấy từ thư viện imgaug
Sau đó, bộ dữ liệu sẽ được đưa vào các mơ hình để huấn luyện. Với các mơ hình được lựa chọn để thực nghiệm (Guided Anchoring, Double-Head, Cascade R- CNN), mơ hình sẽ đánh giá sau mỗi epochs. Epoch có kết quả 𝑚𝐴𝑃 cao nhất sẽ được lưu lại xuyên suốt quá trình huấn luyện.
Sau khi quá trình huấn luyện kết thúc, ta sử dụng epoch có giá trị 𝑚𝐴𝑃 cao nhất đã được lưu để tiến hành quá trình kiểm thử trên tập dữ liệu kiểm thử (test) đo bằng các độ đo AP, IoU… Đầu ra cho mơ hình là ảnh có chứa Bounding box (vị trí của các lớp đối tượng) và Label (nhãn tương ứng của các đối tượng).
4.2.2.Cấu hình thực nghiệm
Tồn bộ quá trình thực nghiệm được thực hiện trên GPU GeForce RTX 2080Ti với bộ nhớ 11,018 MiB. Chúng tôi đã huấn luyện mơ hình bằng cách sử dụng framework MMDetection V2.10.0 [30]. Với mỗi phương pháp, nhóm đã sử
43
dụng cấu hình có điểm 𝑚𝐴𝑃 cao nhất (được cung cấp trên trang MMDetection Github10) mà có thể chạy trên một GPU GeForce RTX 2080 Ti duy nhất.
Đối với Guided Anchoring, nhóm đã sử dụng cấu hình mặc định GA-Faster R-CNN với backbone 𝑋 − 101 − 32𝑥4𝑑 − 𝐹𝑃𝑁 được huấn luyện trong 12 epoch. Tiếp theo, backbone 𝑅 − 50 − 𝑅𝑃𝑁 được sử dụng cho Double-Head để huấn luyện trong 12 epoch. Ngoài ra, phương pháp Cascade R-CNN sử dụng backbone 𝑋 − 101 − 64𝑥4𝑑 − 𝐹𝑃𝑁 và phương pháp được đề xuất CasDou cũng sử dụng backbone 𝑅 − 50 − 𝑅𝑃𝑁 để so sánh cơng bằng với cấu hình mặc định của Double- Head cũng như phù hợp với nguồn tài nguyên máy.
4.3.Phương pháp đánh giá
4.3.1.Intersection over Union (IoU)
Intersection over Union (IoU) là một tiêu chuẩn tốt nhất dùng để đánh giá sự overlap (trùng lắp) giữa bounding box của Ground truth và Bounding box của mơ hình dự đốn trong các mơ hình Phát hiện đối tượng . Để đánh giá độ đo IoU, ta sử dụng các giá trị sau:
• Ground-truth Bounding boxes: vị trí thực tế của đối tượng. • Predicted Bounding boxes: vị trí dự đốn đối tượng của mơ hình.
Hình 4.4: Cơng thức minh họa để tính IoU11.
44 Trong đó:
• Area of Overlap là vùng overlap (giao) giữa ground-truth Bounding
boxes và predicted Bounding boxes.
• Area of Union là vùng được union (hợp) bởi cả 2 ground-truth Bounding
boxes và predicted Bounding boxes
Đối với các phương pháp chúng tôi thực nghiệm, kết quả IoU được cho là tốt khi có giá trị ≥ 0.5.
4.3.2.Average Precision (𝑨𝑷)
Chúng ta có thể đánh giá mơ hình dựa trên việc thay đổi một ngưỡng và quan sát giá trị của Precision và Recall.
𝐴𝑃 là đường cong Precision-Recall (Precision-Recall curve) và được tính bằng tổng của trọng số trung bình của các giá trị Precision ở mỗi ngưỡng và trọng số gia tăng của của Recall tại ngưỡng thứ 𝑛 so với ngưỡng trước đó (𝑛 − 1).
Cơng thức tính:
𝐴𝑃 = ∑(𝑅𝑛
𝑛
𝑖=0
− 𝑅𝑛−1)𝑃𝑛
Trong đó: 𝑃𝑛 và 𝑅𝑛 lần lượt là giá trị Precision và Recall tại ngưỡng thứ 𝑛. Precision là độ đo đánh giá độ tin cậy của dự đoán đưa ra. Nếu Precision cao đồng nghĩa độ chính xác của các điểm tìm được là cao. Recall là độ đo đánh giá khả năng tìm kiếm tồn bộ ground-truth mà mơ hình dự đốn được đúng. Giá trị Recall càng cao thì tỉ lệ bỏ sót các điểm thực sự là đúng càng thấp. Ngoài ra, ta có định nghĩa các giá trị TP / FP / FN như sau:
• TP (True Positive): số lượng điểm dữ liệu đúng được model dự đốn đúng.
• FP (False Positive): số lượng điểm dữ liệu sai được model dự đoán đúng.
45
• FN (False Negative): số lượng điểm dữ liệu đúng được model dự đốn là sai.
Hình 4.5: Precision and recall12.
Precision và Recall ln có giá trị trong đoạn [0,1]. Đối với từng bài toán, các giá trị sẽ mang ý nghĩa khác nhau. Vì vậy, ta không thể dựa vào chỉ mỗi Precision hay Recall cao để đánh giá mơ hình.
4.3.3.Mean Average Precision (𝒎𝑨𝑷)
Mean Average Precision (𝑚𝐴𝑃) là trung bình điểm 𝐴𝑃 (𝐴𝑃 𝑠𝑐𝑜𝑟𝑒) của n class và được định nghĩa bằng công thức sau:
𝑚𝐴𝑃 = 1
𝑁∑ 𝐴𝑃𝑖
𝑁
𝑖=1
Độ đo 𝑚𝐴𝑃 được nhóm sử dụng để đánh giá kết quả thực nghiệm lấy từ COCO API. 𝑚𝐴𝑃 được tính tốn cho 10 IoU thay đổi trong phạm vi từ 50% tới 95% với các bước là 5%, thường được viết dưới dạng 𝐴𝑃@50: 5: 95. Giá trị điểm
𝑚𝐴𝑃 càng cao cho thấy mơ hình có hiệu quả dự đốn đúng càng cao. Ngồi ra, để đánh giá với các giá trị đơn lẻ của IoU, nhóm sử dụng hai giá trị phổ biến nhất là
46
IoU 50% và 75% lần lượt được viết dưới dạng 𝐴𝑃@50 (AP𝟓𝟎) , 𝐴𝑃@75 (AP𝟕𝟓). Chi tiết xem thêm tại MS-COCO (https://cocodataset.org/#detection-eval).
4.4.Kết quả thực nghiệm và đánh giá 4.4.1.Kết quả thực nghiệm 4.4.1.Kết quả thực nghiệm
MS-COCO API được chúng tơi sử dụng để tính tốn độ đo 𝑚𝐴𝑃 cho 3 phương pháp phát hiện đối tượng SOTA trên bộ dữ liệu UIT-DroneFog. Kết quả chi tiết được thể hiện ở Bảng 4.1.
Kiến trúcPedestrianMotorCarBus mAP AP𝟓𝟎 AP𝟕𝟓
Cascade R-CNN 2.10 34.50 56.80 38.40 32.90 45.80 38.50
Guided
Anchoring 2.6035.10 56.10 33.80 31.90 46.50 36.70 Double-Head 1.60 33.20 58.7039.2033.2047.5038.90
Bảng 4.1: Bảng kết quả thực nghiệm với thông số mặc định trên các phương pháp phát hiện đối tượng. Kết quả tốt nhất được in đậm (%).
4.4.2.Trực quan hóa kết quả
• Trường hợp model dự đốn tốt (good case)
(a) Guided Anchoring
47 (b) Double-
Head
(c) Cascade R-CNN
Hình 4.6: Ảnh kết quả dự đốn tốt khi chạy thực nghiệm với thông số mặc định. (a) Guided Anchoring, (b) Double-Head, (c) Cascade R-CNN.
Nhận xét: Phần lớn các lớp đối tượng được mơ hình phát hiện đúng, hiếm gặp tình trạng bị bỏ sót đối tượng hoặc chồng lắp Bounding box. Tuy nhiên, đối với phương pháp Guided Anchoring, các Bounding box lớp đối tượng kém hoàn hảo hơn so với hai phương pháp còn lại và một vài đối tượng kích thước q nhỏ thì khơng được phát hiện.
48
• Trường hợp model dự đốn xấu (bad case)
(a)
49 (c)
Hình 4.7: Ảnh kết quả dự đốn xấu khi chạy thực nghiệm với thơng số mặc định (a) Guided Anchoring, (b) Double-Head, (c) Cascade R-CNN.
Nhận xét: Lớp đối tượng Car và Bus bị phát hiện thiếu bởi mơ hình Guided Anchoring và Double-Head và thường có Bounding box chưa hồn hảo ở mơ hình Cascade R-CNN. Ngồi ra, lớp đối tượng Pedestrian bị các mơ hình phát hiện nhầm thành đối tượng Motor và còn bị chồng lắp Bounding box.
4.4.3.Đánh giá kết quả
Từ bảng kết quả của ba phương pháp chạy thực nghiệm trên bộ dữ liệu UIT- DroneFog, ta có thể thấy rằng phương pháp Guided Anchoring có kết quả kém nhất với điểm 𝑚AP chỉ đạt 31.90%, tuy nhiên, phương pháp này lại đạt kết quả tốt nhất khi phát hiện hai lớp đối tượng Pedestrian (2.60%) và Motor (35.10%). Trong khi đó, Double-Head cho thấy kết quả tốt nhất khi phát hiện lớp đối tượng Car và Bus, đặc biệt kết quả với Bus là 39.20% (cao hơn 5.40% so với Guided Anchoring). Mặt khác, Cascade R-CNN mặc dù là phương pháp multi-stage nhưng chỉ đạt hiệu quả cao đối với lớp đối tượng Pedestrian còn đối với các điểm 𝑚AP, AP50, AP75 đều thấp hơn so với Double-Head. Điều này cho thấy, đề xuất sử dụng fully connected head cho tác vụ phân loại đối tượng và convolution head cho tác vụ xác định vị trí
50
đối tượng có hiệu quả hơn thay vì sử dụng fully connected head cho cả hai tác vụ như trong kiến trúc multi-stage của Cascade R-CNN.
Xét riêng về các lớp đối tượng:
• Pedestrian: Đây là lớp đối tượng có điểm số 𝑚𝐴𝑃 dự đoán thấp nhất trong bộ dữ liệu mặc dù số lượng đối tượng trong cả ba tập dữ liệu khơng q ít. Lớp đối tượng này cũng dễ bị nhầm lẫn thành lớp Motor.
• Motor: Đây là lớp đối tượng có số lượng đối tượng lớn nhất nhưng kết quả phát hiện khơng q cao bởi vì thường bị nhầm lẫn với đối tượng Pedestrian và bị phát hiện xó. Lý do cho vấn đề này là bởi vì ở một số bối cảnh quay tại nơi có mật độ Motor cao, các đối tượng này bị che khuất bởi nhau và đối với một số góc máy kích thước của lớp Motor quá nhỏ và đơi khi khơng có sự khác biệt đáng kể nào giữa Motor và Pedestrian. • Car: Là đối tượng có điểm số 𝑚AP cao nhất. Tuy nhiên, đối tượng này
vẫn hay bị phát hiện thiếu hoặc bị nhầm với một số phương tiện khác không là đối tượng được đề cập trong bộ dữ liệu.