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 q 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 tố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 toá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ự đốn đúng.
45
• FN (False Negative): số lượng điểm dữ liệu đúng được model dự đoá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ự đoá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ự đoá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.
• Bus: Mặc dù phân phối lớp Bus thấp nhất trong bộ dữ liệu nhưng kết quả của phát hiện lại gần như ngang bằng với lớp Motor. Nguyên nhân chính dẫn tới kết quả khả quan của lớp Bus là bởi vì đặc trưng hình dạng và kích thước của các đối tượng Bus quá khác biệt, chúng thường to gấp nhiều lần so với cả ba loại đối tượng cịn lại. Điều này cho phép các mơ hình phát hiện đối tượng này dễ dàng hơn mặc dù dữ liệu huấn luyện ít.
51
Chương 5.ĐỀ XUẤT CẢI TIẾN VÀ ĐÁNH GIÁ KẾT QUẢ
5.1.Đề xuất cải tiến kết quả phát hiện đối tượng trong không chứa sương mờ
Kết quả thực nghiệm từ Chương 4 cho thấy Double-Head cho kết quả tốt nhất cho bài tốn phát hiện đối tượng khơng ảnh chứa sương mờ. Với mong muốn cải thiện kết quả, chúng tôi đã đề xuất phương pháp gọi là CasDou bằng cách thực hiện kết hợp phương pháp Double-Head và phương pháp Cascade R-CNN. Lý do chúng tôi thực hiện sự kết hợp này là vì cả hai phương pháp đều được xây dựng trên nền tảng của Faster R-CNN vì thế chúng có khả năng kết hợp với nhau. Chúng tơi mong muốn kiến trúc multi-stage của Cascade R-CNN sẽ giúp cải thiện kết quả của Double-Head. Trong thực nghiệm mở rộng, nhóm chỉ sử dụng backbone 𝑅 − 50 − 𝑅𝑃𝑁 cho CasDou vì lý do giới hạn tài nguyên máy.
Hơn nữa, nhóm nhận thấy rằng các được sử dụng đang gặp khó khăn với tính chất mất cân bằng đặc trưng của bộ dữ liệu dữ liệu. Cụ thể là hai đối tượng Pedestrian và Motor chiếm tỉ lệ phân bố cao nhất (khoảng 13.31% và 77.84%) trên bộ dữ liệu UIT-DroneFog, thường dễ bị nhầm lẫn với nhau khi phát hiện trong hình ảnh.
“Trong bài tốn phát hiện đối tượng, hàm mất mát đóng vai trị quan trọng, ảnh hưởng đến độ chính xác trong phát hiện đối tượng” [31]. Trong quá trình huấn luyện, hàm mất mát được sử dụng để đánh giá tham số weights của mơ hình. Giá trị hàm mất mát càng nhỏ thì mơ hình dự đốn càng tốt. Do đó, chúng tơi tiếp tục thực hiện thay đổi hàm mất mát của phương pháp Double-Head và CasDou từ Cross Entropy (CE) (cấu hình mặc định của các phương pháp) sang Focal Loss (FL) với mong muốn giảm nhầm lẫn giữa các lớp khi dự đoán đối tượng.
5.1.1.Cross Entropy Loss
Hàm mất mát Cross Entropy (CE) [31] là một trong những hàm mất mát được sử dụng phổ biến nhất hiện nay. CE còn được gọi là mất mát logarit hoặc mất mát logistic. Mỗi xác suất của lớp dự đoán được so sánh với kết quả đầu ra mong
52
muốn của lớp thực tế là 0 hoặc 1 và điểm số/mất mát được tính để phạt đối với các trường hợp model dự đoán sai – tính dựa trên khoảng cách của dự đốn so với giá trị kỳ vọng thực tế.
Hình phạt có tính chất logarit mang lại điểm số lớn cho các chênh lệch gần bằng 1 và điểm số nhỏ cho các chênh lệch nhỏ có xu hướng bằng 0. Chính vì thế, hàm mất mát Cross Entropy phạt nặng đối với các dự đoán sai nhiều hơn là thưởng “điểm” cho các dự đoán đúng. Hàm mất mát CE [31] được định nghĩa theo công thức sau:
ℒ𝐶𝐸(𝑝𝑡) = − 𝑙𝑜𝑔(𝑝𝑡)
Trong đó: 𝑝𝑡 là xác suất xảy ra sự kiện của lớp 𝑡.
5.1.2.Focal Loss
Focal Loss [32] là hàm mất mát ra đời lần đầu được giới thiệu trong RetinaNet. Hàm mất mát này được đánh giá cao về tính hiệu quả vì có khả năng xử lý vấn đề mất cân bằng cho bài tốn có sự mất cân bằng nghiêm trọng giữa 2 lớp Positive (dự đoán đúng) và Negative (dự đốn sai). Thơng thường, các Bounding box của các trường hợp Negative rất nhiều so với Positive, nên nếu áp dụng hàm mất mát CE sẽ giảm đáng kể độ chính xác khi dự báo các Positive. Vì CE phạt các trường hợp Negative nặng hơn, nhưng lại cho điểm ít hơn với các trường hợp Positive.
Vì vậy FL là một cải tiến của CE, giúp cân bằng các lớp bằng cách gán nhiều trong số cho các mẫu khó hoặc dễ bị phân loại sai. Focal loss [32] được định nghĩa như sau:
ℒ𝐹𝐿(𝑝𝑡) = −𝛼(1 − 𝑝𝑡)𝛾𝑙𝑜𝑔(𝑝𝑡)
Trong đó:
• 𝛼 : là hệ số cân bằng cho Focal Loss, mặc định là 0.25. • 𝛾 : là hệ số chuyển đổi, mặc định là 2.0.
53
5.2.Đánh giá kết quả đề xuất 5.2.1.Kết quả đề xuất 5.2.1.Kết quả đề xuất Kiến trúc Hàm mất mát Pedest
rian Motor Car Bus mAP AP𝟓𝟎 AP𝟕𝟓
Double- Head CE 1.60 33.20 58.70 39.20 33.20 47.50 38.90 FL 2.20 34.10 57.70 41.00 33.70 49.30 39.00 CasDou CE 2.30 34.50 57.20 39.20 33.30 47.80 39.00 FL 2.70 34.20 59.30 42.50 34.70 50.20 40.30
Bảng 5.1: Bảng kết quả thực nghiệm mở rộng khi thay đổi hàm mất mát. Kết quả tốt nhất được in đậm (%).
5.2.2.Trực quan hóa kết quả
CE
FL
(a) Double-Head (b) CasDou
Hình 5.1 Ảnh kết quả dự đốn thử nghiệm Double-Head và CasDou với hàm mất mát Cross Entropy và Focal Loss.
54
5.2.3.Đánh giá kết quả
Khi tiến hành thực nghiệm phương pháp CasDou với hàm CE mặc định, kết quả lớp đối tượng Motor được cải thiện tới 34.50% nhưng kết quả 𝑚𝐴𝑃 chỉ tăng thêm được 0.1%. Điều này đã được lý giải bởi vì mơ hình gặp khó khăn với sự mất cân bằng giữa các lớp đối tượng trong bộ dữ liệu UIT-DroneFog.
Sau khi tiến hành thay thế hàm CE thành hàm FL, cả hai mơ hình Double- Head và CasDou đều đạt hiệu quả cao hơn ở mỗi lớp và điểm 𝑚𝐴𝑃, đặc biệt điểm
𝑚𝐴𝑃 của CasDou tăng lên 34.70% (cao hơn 1.00% so với cấu hình mặc định của