Intersection over Union (IoU)

Một phần của tài liệu Phát hiện đối tượng trong không ảnh chứa sương mờ dựa trên học sâu (khóa luận tốt nghiệp) (Trang 61)

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ự đoá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ự đoá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 toàn bộ ground-truth mà mô hình dự đoá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ự đoá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ự đoán là sai.

Hình 4.5: Precision and recall12.

Precision và Recall luôn 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 toá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ự đoán đúng càng cao. Ngoà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 toá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úc Pedestrian Motor Car Bus mAP AP𝟓𝟎 AP𝟕𝟓

Cascade R-CNN 2.10 34.50 56.80 38.40 32.90 45.80 38.50

Guided

Anchoring 2.60 35.10 56.10 33.80 31.90 46.50 36.70 Double-Head 1.60 33.20 58.70 39.20 33.20 47.50 38.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ự đoá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 quá nhỏ thì không được phát hiện.

48

Trường hợp model dự đoá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 hoàn hảo ở mô hình Cascade R-CNN. Ngoà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 quá í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 quá 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 toá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 toá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ự đoá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ự đoá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 toá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ự đoá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ự đoá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 phương pháp này, hơn 1.50% so với Double-Head mặc định và hơn 1.8% so với Cascade R-CNN). Việc phát hiện sai các đối tượng kích thước nhỏ và phát hiện thiếu đối tượng Car, Bus đã giảm đáng kể (thể hiện trong Hình 5.1). Nhìn chung, chúng tôi đã cải thiện hiệu quả ở ba lớp: Pedestrian, Car và Bus. Các kết quả và hình ảnh trực quan đã minh chứng rằng việc sử dụng hàm Focal Loss đạt kết quả tốt hơn trong vấn đề phát hiện đối tượng ở không ảnh giao thông chứa sương mờ.

Cuối cùng, dựa trên một số nghiên cứu về các phương pháp khử sương, chúng tôi quyết định thực hiện đề xuất thêm bước tiền xử lý dữ liệu bằng cách khử sương mờ sử dụng mô hình pre-trained của hai phương pháp FFA-Net và DW-GAN với ảnh của bộ dữ liệu UIT-DroneFog trước khi thực hiện huấn luyện phương pháp có kết quả cao nhất hiện tại - CasDou. Kết quả thực nghiệm mở rộng được trình bày như sau:

Phương pháp

khử sương Pedestrian Motor Car Bus mAP AP𝟓𝟎 AP𝟕𝟓

Ảnh sương mờ 2.70 34.20 59.30 42.50 34.70 50.20 40.30 FFA-Net 2.10 33.40 58.40 46.20 35.00 49.60 41.90

DW-GAN 2.30 32.70 58.30 39.60 33.20 47.80 38.10

Bảng 5.2: Bảng kết quả thực nghiệm mở rộng với phương pháp CasDou khi thêm bước khử sương. Kết quả tốt nhất được in đậm (%).

55 (a) Ảnh gốc

(b) FFA-Net

(c) DW-GAN

Hình 5.2: Ảnh kết quả dự đoán thử nghiệm mở rộng với phương pháp CasDou khi thêm bước khử sương.

56

Kết quả thực nghiệm cho thấy FFA-Net có khả năng tăng hiệu quả phát hiện đối tượng, đặc biệt là các đối tượng Bus với điểm 𝐴𝑃 được tăng thêm tới 3.7% giúp điểm 𝑚𝐴𝑃 đạt 35.00% - cao nhất trong thử nghiệm. FFA-Net giúp CasDou hạn chế được các phát hiện nhầm các đối tượng không liên quan thành đối tượng Bus (ví dụ như xe bồn bị phát hiện nhầm thành đối tượng Bus thể hiện trong Hình 5.4) cũng như sinh ra các Bounding box hoàn hảo hơn cho đối tượng này. Mặt khác, phương pháp DW-GAN lại làm giảm giá trị tất cả các điểm 𝐴𝑃. Hơn nữa, khi trực quan hóa kết quả, ta có thể thấy rằng ảnh được khử sương bằng FFA-Net có màu sắc chân thực hơn và các chi tiết ảnh không bị biến đổi quá nhiều như ảnh được khử sương bằng DW-GAN. Điều này xảy ra có thể bởi vì mô hình pre-trained DW-GAN được huấn luyện trên bộ dữ liệu NH-HAZE [33][34] và NH-HAZE2 [18] – bộ dữ liệu ảnh sương thật, trong khi mô hình pre-trained FFA-Net được huấn luyện trên bộ dữ liệu ảnh sương nhân tạo RESIDE [28] – cùng đặc trưng với bộ sương nhân tạo UIT- DroneFog.

5.3. Ứng dụng Phát hiện đối tượng trong không ảnh chứa sương mờ 5.3.1. Giới thiệu 5.3.1. Giới thiệu

Ứng dụng Phát hiện đối tượng trong không ảnh chứa sương mờ (Aerial Object Detection) là ứng dụng cho phép người dùng sử dụng ảnh (được chụp hoặc tải từ thiết bị) để phát hiện đối tượng trong không ảnh gồm: Pedestrian, Motor, Car, Bus. Ứng dụng có thể được sử dụng trên nền tảng web hoặc nền tảng di động (Android và IOS).

Công nghệ sử dụng:

• Di động: Flutter, MobX. • Web: ReactJs.

• Back-end: Python 3, Flask.

Ứng dụng có thể được sử dụng thông qua đường link URL sau: https://aerialobjectdetection.netlify.app/

57

5.3.2. Phân tích thiết kế

5.3.2.1. Thiết kế usecase

Hình 5.3: Mô tả usecase tổng quát ứng dụng Aerial Object Detection.

5.3.2.2. Thiết kế user-flow

58

5.3.2.3. Thiết kế kiến trúc

Ứng dụng được xây dựng trên kiến trúc client-server. Ở phía client, người dùng có thể sử dụng ứng dụng trên cả nền tảng di động và web. Phía server, hệ thống sử dụng Flask cùng Python 3 để các yêu cầu từ API, sau đó xử lý tác vụ phát

Một phần của tài liệu Phát hiện đối tượng trong không ảnh chứa sương mờ dựa trên học sâu (khóa luận tốt nghiệp) (Trang 61)