3.1.1. Khảo sát
Bộ dữ liệu Số lượng
hình ảnh Ngữ cảnh Loại sương mờ Năm
FRIDA [25] 90 Ngoài trời Nhân tạo 2010
FRIDA2 [26] 330 Ngoài trời Nhân tạo 2012
Foggy Cityscapes &
Foggy Driving [27] 20,651 Ngoài trời Nhân tạo 2016 RESIDE [28] 429,292 Ngoài trời &
Trong nhà
Nhân tạo &
Thực tế 2018 UAVDT-
Benchmark-M [29] 25,565 Ngoài trời Thực tế 2018
UIT-DroneFog 15,370 Ngoài trời Nhân tạo 2021
Bảng 3.1: Tóm tắt các bộ dữ liệu tài liệu dạng ảnh hiện có. Bộ dữ liệu đề xuất UIT-DroneFog được in đậm
Phát hiện đối tượng trong ảnh chứa sương mờ là một bài toán nhận được sự quan tầm của cộng đồng nghiên cứu. Hiện tại, có rất nhiều bộ dữ liệu sương mờ với những đặc trưng khác nhau bao gồm bộ dữ liệu thực tế hoặc tổng hợp được chụp trong nhà lẫn ngoài trời. Chi tiết các bộ dữ liệu được mô tả ở Bảng 3.1.
Bộ dữ liệu FRIDA [25] được giới thiệu vào năm 2010 gồm 90 hình ảnh tổng hợp được từ 18 cảnh đường phố trong khu vực đô thị. Những hình ảnh này được sử
30
dụng để kiểm tra các thuật toán nâng cao liên quan đến khả năng hiển thị và cải thiện độ tương phản. FRIDA2 [26] được giới thiệu hai năm sau đó gồm 66 con đường các loại với 330 hình ảnh tổng hợp và 10 cảnh quay.
Hình 3.1: Hình ảnh minh họa bộ dữ liệu FRIDA [25].
Bộ dữ liệu Foggy Cityscapes và Foggy Driving [27] có góc nhìn người lái xe trong các thành phố với lần lượt 20,550 và 101 ảnh sương mờ. Tuy nhiên, hai bộ dữ liệu này bị lặp lại các đối tượng.
31
Hình 3.2: Hình ảnh minh họa bộ dữ liệu Foggy Driving [27].
32
Bộ dữ liệu REalistic Single-Image DEhazing (RESIDE) [28] là bộ dữ liệu lớn nhất chứa 5 tập con với 429,292 hình ảnh thu được trong nhà, ngoài trời với sương mờ thực lẫn tổng hợp. Mỗi tập con của bộ dữ liệu này được tạo ra cho các mục đích khác nhau.
Bộ dữ liệu UAVDT-Benchmark-M [29] bao gồm 25,565 không ảnh với 5,179 ảnh sương mờ ở định dạng JPG với các kích thước ảnh không giống nhau. Bộ dữ liệu này được thu thập với nhiều góc máy, tại các thời điểm khác nhau trong ngày.
Hình 3.4: Hình ảnh minh họa bộ dữ liệu UAVDT-Benchmark-M [29].
3.1.2. Lý do xây dựng bộ dữ liệu
Sau khi tiến hành khảo sát các bộ dữ liệu ảnh sương mờ đã được công bố trên thế giới, chúng tôi nhận thấy rằng một số thiếu sót như sau.
Đầu tiên, đa phần các bộ dữ liệu được thu thập ở góc nhìn từ xe ô tô hoặc được chụp cố định từ một góc máy đặt trên mặt đất. Điều này làm cho góc nhìn của hạn bị giới hạn và đôi khi chỉ thu thập được rất ít đối tượng trong một khung ảnh. Hơn nữa, góc chụp này không cho phép chúng ta có góc quan sát toàn cảnh về một khu vực có nhiều đối tượng.
33
Tiếp theo, số lượng của các đối tượng trong một ảnh của các bộ dữ liệu này không quá lớn. Điều này được thể hiện rõ nhất trong bộ dữ liệu UAVDT- Benchmark-M khi bối cảnh chủ yếu được quay ở các con đường lớn với mật độ giao thông thưa thớt. Việc này làm cho hiệu quả phát hiện đối tượng giảm xuống khi ta ứng dụng các mô hình này vào thực tế ở các khu vực có giao thông đông đúc như Việt Nam.
Cuối cùng, một số bộ dữ liệu có sương mờ được xây dựng chủ yếu để phục vụ cho tác vụ khử sương, vì vậy, số loại đối tượng và bối cảnh bị hạn chế và lặp lại nhiều lần.
Với những kết quả khảo sát từ các bộ dữ liệu trên thế giới, đánh giá được những thiếu sót của các bộ dữ liệu này khi so sánh với điều kiện giao thông tại Việt Nam, chúng tôi đã quyết định xây dựng bộ dữ liệu UIT-DroneFog – bộ dữ liệu không ảnh chứa sương mờ dựa trên bộ dữ liệu UIT-Drone21. Lý do chúng tôi lựa chọn bộ dữ liệu UIT-Drone21 làm nền tảng vì đây là bộ dữ liệu thể hiện được đặc trưng mật độ giao thông đông đúc tại Việt Nam với nhiều bối cảnh tại nhiều thành phố đông dân.
3.2. Bộ dữ liệu UIT-Drone21
3.2.1. Tổng quan về bộ dữ liệu UIT-Drone21
Bộ dữ liệu UIT-Drone218 bao gồm 15,370 không ảnh và tập tin nhãn định dạng .txt tương ứng được chụp bởi máy bay không người lái với khoảng 600,000 bounding box của phương tiện giao thông và người đi bộ. Bộ dữ liệu này được chia thành 3 tập: Training set (8,580 ảnh), Validation set (1,061 ảnh) và Testing set (5,729 ảnh) với tổng cộng 4 lớp đối tượng: Pedestrian, Motor, Car và Bus. Trước khi đưa vào model chạy thực nghiệm Các tập dữ liệu này sẽ được chuyển đổi từ định dạng gốc (.txt) sang định dạng COCO (.json).
34
Hình 3.5: Hình ảnh minh họa của bộ dữ liệu UIT-Drone21.
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.
9 https://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 quá 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: Quá 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 quá 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 quá 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 set Validation set Testing 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 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
Toà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ự đ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.