2.3.1. Faster R-CNN
Năm 2016, Shaoqing Ren và cộng sự [6], dựa trên nền tảng Fast R-CNN [7], đã đưa ra một thuật toán phát hiện đối tượng không sử dụng Selective Search, mà sử dụng chính mạng đào tạo để học và trích xuất các vùng đặc trưng. Phương pháp này được đặt tên là Faster R-CNN. Phương pháp này được đề xuất với mục tiêu hướng tới phát hiện đối tượng theo thời gian thực với mạng đề xuất khu vực RPN.
Hình 2.9: Kiến trúc mô hình Faster R-CNN lấy từ bài báo gốc [6].
6 https://nttuan8.com/bai-6-convolutional-neural-network/
18
Tương tự như Fast R-CNN, hình ảnh đầu vào đầu tiên sẽ được đưa qua một backbone CNN sâu để trích xuất các feature map. Thay vì sử dụng Selective Search để xác định vùng đề xuất, Faster R-CNN sử dụng Region Proposal Network (RPN) để dự đoán các vùng đề xuất.
Region Proposal Network (RPN): Mạng con RPN khá đơn giản, chỉ gồm các lớp conv dùng để trích xuất các vùng quan tâm hay các vùng có khả năng chứa đối tượng từ feature map. Đầu vào của mạng là feature map được trích xuất từ backbone CNN sâu trước đó. Đầu tiên, RPN xác định các anchor box có thể là các vùng đề xuất hay không. Sau đó, RPN lọc ra và chỉ giữ lại những anchor box chứa đối tượng. Anchor box được xác định bằng 4 tham số (x_center, y_center, width, height). Đầu ra của mạng RPN sẽ gồm hai phần là Classifier để phân loại đối tượng và Bounding box regression để xác định vùng có khả năng chứa đối tượng hay không. Vì vậy, RPN cũng bao gồm hai hàm Loss dùng để dùng phân loại và xác định Bounding box.
Các khu vực đề xuất sau khi được dự đoán từ mạng con RPN sẽ tiếp tục được điều chỉnh lại hình dạng bằng lớp ROI Pooling. Lớp ROI Pooling này giúp giải quyết các vấn đề kích thước của các vùng đề xuất khi sử dụng một cửa sổ trượt trên các feature map để tính toán và sau đó trả về vector đặc trưng (ROI Region Vector) có kích thước cố định được định nghĩa trước đó. Các vector đặc trưng này được đưa vào hai nhánh Classifier và Regression:
• Nhánh Classifier có 𝐶 unit cho 𝐶 class của bài toán (bao gồm background). Các vector đặc trưng được truyền qua lớp softmax để thu được Classifier score (điểm số xác suất dự đoán phân loại lớp đối tượng). • Đầu ra của nhánh Bounding box regression dùng để cải thiện độ chính
xác cho các Bounding box thu được từ mạng con RPN.
2.3.2. Cascade R-CNN
Cascade R-CNN là một phương pháp phát hiện đối tượng nhiều giai đoạn (multi-stage) được đề xuất bởi Zhaowei Cai và Nuno Vasconcelos [2]. Kiến trúc
19
này được sử dụng để giải quyết hai vấn đề suy giảm hiệu suất khi tăng giá trị ngưỡng IoU: vấn đề overfitting trong quá trình huấn luyện gây ra bởi giá trị IoU cao và sự không khớp về thời gian suy luận giữa IoU mà bộ phát hiện được tối ưu và những giả thuyết đầu vào.
(a) Faster R-CNN
(b) Cascade R-CNN
Hình 2.10: So sánh cấu trúc của Faster R-CNN và Cascade R-CNN lấy từ bài báo gốc [2]. “I” là ảnh đầu vào, “conv” là backbone convolutions, “pool” là region-wise feature extraction, “H” là network head, “B” là Bounding box, “C” là classification.
20
Như được thể hiện trong Hình 2.10, Cascade R-CNN bao gồm một chuỗi các máy dò (detector) được huấn luyện với các ngưỡng IoU tăng dần qua từng máy dò để có thể tuần tự phát hiện các kết quả false positive. Các máy dò được huấn luyện qua từng giai đoạn một, đầu ra của máy dò này sẽ trở thành đầu vào của máy dò tiếp theo dẫn tới những máy dò ở các giai đoạn sau sẽ có được đầu vào với phân phối tốt hơn từ đó các máy dò này có thể đạt hiệu quả cao hơn.
Ngoài ra, trong quá trình thực nghiệm, tác giả cũng đã tìm ra rằng kiến trúc 3 giai đoạn là phù hợp nhất với ngưỡng giá trị IoU tăng dần (0.5, 0.6, 0.7). Đó là bởi vì khi sử dụng kiến trúc có 4 giai đoạn, hiệu suất phát hiện đối tượng của mô hình không thay đổi hoặc giảm so với kiến trúc ba giai đoạn, mặc dù họ có thể nhận được điểm cao nhất ở giá trị 𝐴𝑃90. Vì vậy, kiến trúc ba giai đoạn như Hình 2.10 là đánh đổi hợp lý nhất.
Phương pháp này cũng tối ưu hóa việc hồi quy cho phân phối Bounding box, được tạo bởi phân phối trước đó nhưng không phải là phân phối ban đầu. Cascade R-CNN đã đạt được thành công trong việc cải thiện từng bước các dự đoán và quá trình huấn luyện các phân phối.
2.3.3. Guided Anchoring.
Guided Anchoring [1] đề xuất một cách sử dụng các mỏ neo (anchor) mà không sử dụng một tập hợp các kích thước và tỉ lệ co được xác định trước giống như cách thức hoạt động của Faster R-CNN. Tác giả đưa ra công thức xác định vị trí và hình dạng của một vật thể trên ảnh như sau:
𝑝(𝑥, 𝑦, 𝑤, ℎ|𝐼) = 𝑝(𝑥, 𝑦|𝐼)𝑝(𝑤, ℎ|𝑥, 𝑦, 𝐼)
Trong đó (𝑥, 𝑦) là tọa độ không gian trung tâm, 𝑤 là chiều ngang, ℎ là chiều cao. Dựa trên công thức này, tác giả đề xuất mô-đun sản sinh mỏ neo được thể hiện như trong phần gạch đỏ ở Hình 2.11. Mô-đun này là một mạng bao gồm hai nhánh để dự đoán vị trí và hình dạng. Với ảnh đầu vào 𝐼, đầu tiên mạng lấy được feature map 𝐹1. Từ feature map 𝐹1, nhánh dự đoán vị trí (location prediction) tạo ra một
21
bản đồ xác suất cho biết các vị trí có thể có của các đối tượng, trong khi nhánh dự
đoán hình dạng (shape prediction) dự đoán các hình dạng phụ thuộc vào vị trí. Từ
đầu ra của cả hai nhánh, mạng tạo ra một tập hợp các điểm neo bằng cách chọn các vị trí có xác suất dự đoán trên một ngưỡng nhất định và hình dạng có thể xảy ra nhất tại mỗi vị trí đã chọn. Vì hình dạng mỏ neo có thể khác nhau, các đặc trưng ở các vị trí khác nhau sẽ nắm bắt được nội dung trực quan trong các phạm vi khác nhau. Vì vậy, một mô-đun điều chỉnh tính năng (feature adaption module) được sử dụng để điều chỉnh đặc trưng theo hình dạng mỏ neo. Quá trình tạo mỏ neo được mô tả ở trên dựa trên trên một feature map đơn lẻ, tuy nhiên, các phương pháp hiện đại gần đây đã cho thấy rằng việc sử dụng nhiều feature map theo kiến trúc FPN cho lại kết quả cao vì thế tác giả cũng đã đề xuất mạng sử dụng đa feature map như được thể hiện trong Hình 2.11.
Thông qua quá trình thực nghiệm, Guided Anchoring cho thấy các mỏ neo tập trung nhiều hơn ở những vùng có chứa đối tượng và là một cơ sở tốt cho việc đề xuất đối tượng. Đây là lý do vì sao Guided Anchoring. Với số lượng anchors ít hơn 90% so với RPN baseline, các tác giả đạt được mức recall cao hơn 9.1% trên MS COCO thông qua các thí nghiệm của họ cũng như cao hơn các phương pháp khác từ 1.2% đến 2.7%.
22
2.3.4. Double-Head
Các phương pháp phát hiện đối tượng họ R-CNN thường sử dụng kiến trúc two-head với nhiệm vụ phân loại và định vị đối tượng. Thông thường convolution head (conv-head) hoặc fully connected head (fc-head) được sử dụng ở giai đoạn cuối trước khi trả về kết quả phân loại và xác định Bounding box cuối cùng ở các mô hình two-stage này. Tuy nhiên, Yue Wu và các cộng sự [3] cho rằng các nghiên cứu trước đây chưa thực sự hiểu rõ về cách làm thế nào mà hai đầu này hoặc động cho hai nhiệm vụ.
Hình 2.12: So sánh cấu trúc của kiến trúc sử dụng chung mạng và Double-Head được lấy từ bài báo gốc [3].
23
Vì vậy, tác giả đã phân tích và phát hiện ra rằng mỗi kiến trúc có khả năng thích ứng tốt hơn với mỗi nhiệm vụ khác nhau. Cụ thể, conv-head phù hợp với nhiệm vụ định vị đối tượng, trong khi đó fc-head phù hợp hơn với nhiệm vụ phân loại đối tượng. Hơn nữa, thông qua thực nghiệm, Yue Wu và các cộng sự đã tìm ra rằng fc-head có độ nhạy về không gian hơn so với conv-head. Do đó, fc-head có nhiều khả năng hơn để phân biệt một đối tượng hoàn chỉnh từ một phần của đối tượng, nhưng không đủ hiệu quả để hồi quy toàn bộ đối tượng.
Dựa trên những phát hiện này, Yue Wu và các cộng sự đề xuất phương pháp Double-Head R-CNN [3] sử dụng conv-head cho nhiệm vụ hồi quy Bounding box và fc-head trong nhiệm vụ phân lớp đối tượng. Kiến trúc của phương pháp này bao gồm:
• Backbone: FPN backbone để sinh các vùng xuất và trích xuất đặc trưng đối tượng sử bằng cách sử dụng RoiAlign [8]. Mỗi ùng đề xuất có một feature map với kích thước 256 × 7 × 7, được biến đổi bởi fc-head và con-v thành hai vector đặc trưng (mỗi vector có 1024 chiều) tương ứng cho tác vụ phân loại và hồi quy Bounding box.
• Fully Connected Head (fc-head): có hai lớp lớp liên kết đầy đủ được sử dụng (được thể hiện ở Hình 2.12 (c)) dựa trên kiến trúc của FPN. Đầu ra của lớp này có 1024 chiều. Đầu này sẽ xử lý tác vụ phân loại đối tượng. • Convolution Head (conv-head): là stack gồm 𝐾 residual blocks [9]. Đầu
ra cũng là một vector đặc trưng có 1024 chiều được sản sinh từ average pooling. Tác vụ hồi quy Bounding box sẽ diễn ra ở đầu này.
Ngoài ra, để tăng tính xác thực, tác giả cũng tạo ra mô hình hoán đổi vị trí của fc-head và conv-head. Phương pháp của tác giả đã chứng minh hiệu quả khi hơn lần lượt 3.5 và 2.8 điểm AP trên bộ dữ liệu MS COCO từ FPN baseline với backbone ResNet-50 và ResNet-101.
24
2.4. Phương pháp khử sương mờ 2.4.1. Khử sương mờ đơn ảnh 2.4.1. Khử sương mờ đơn ảnh
Khử sương mờ đơn ảnh đóng vai trò như một bước tiền xử lý ảnh khi ta thực hiện các tác vụ xử lý ảnh khác. Trong thực tế, sự xuất hiện của sương, khói, bụi... gây ra rất nhiều khó khăn cho việc phân loại, phát hiện đối tượng... dẫn đến kết quả không như mong đợi.
Các nghiên cứu trước [10][11][12] đã đưa ra một công thức đơn giản để ước lượng ảnh hưởng sương mờ trên ảnh như sau:
𝑰(𝑧) = 𝑱(𝑧)𝑡(𝑧) + 𝑨(1 − 𝑡(𝑧)) (1)
Trong đó:
• 𝑰(𝑧): Ảnh sương mờ.
• 𝑨: Hệ số ánh sáng khí quyển. • 𝑡(𝑧): Medium transmission map. • 𝐽(𝑡): Ảnh không có sương mờ.
Dựa theo công thức này, việc khử sương mờ chỉ là việc tính toán giá trị của hai biến 𝑨và 𝒕(𝒛). Bởi vì từ công thức (1), ta có thể suy ra:
𝑱(𝑧) =(𝑰(𝒛) − 𝑨) 𝒕(𝒛) + 𝑨
Dark Prior Channel [13] là phương pháp cho kết quả tốt nhất khi ứng dụng mô hình này. Nhóm tác giả của phương pháp này dựa trên lý thuyết cho rằng các vùng ảnh của một bức ảnh không có sương mờ được chụp ngoài trời thường có ít nhất có một kênh màu có giá trị cường độ thấp. Tuy nhiên, các phương pháp này thường ước lượng sai giá trị của transmission map bởi vì các giá trị ưu tiên rất dễ bị ảnh hưởng trong thực tế. Vì vậy, trong các trường hợp áp dụng thực tế, chúng thường đạt kết quả không tốt.
Cùng với sự phát triển của Deep Learning, một hướng đi mới được mở ra cho tác vụ xử lý ảnh hưởng của sương mờ với sự ra đời của các phương pháp
25
DehazeNet [14], multi-scale CNN (MSCNN) [15]... Các phương pháp sử dụng Deep Learning cố gắng hồi quy trực tiếp transimission map 𝑡(𝑧). Với lượng lớn dữ liệu được dùng để huấn luyện, các phương pháp này đã đạt được những thành kết quả đáng mong đợi. Hai phương pháp Feature Fusion Attention Network và DW- GAN được trình bày sau đây là một trong số đó.
2.4.2. Feature Fusion Attention Network (FFA-Net)
Hình 2.13: Kiến trúc mạng FFA-Net từ bài báo gốc [16].
FFA-Net [16] là một phương pháp khử sương trực tiếp trong ảnh đầu vào. Các kết quả thí nghiệm đã chứng minh FFA-Net đã vượt qua các phương pháp SOTA trong khử sương ảnh trên bộ dữ liệu Synthetic Objective Testing Set (SOTS) indoor test với 30.23 dB tới 36.39 dB trên độ đo PSNR vào thời điểm tác giả đề xuất. Kết quả vượt trội này nhờ vào 3 thành phần chính được trình bày trong các mục sau.
2.4.2.1. Feature Attention
Mô-đun Feature Attention (FA) kết hợp cơ chế Channel Attention và Pixel Attention. FA xử lý các đặc trưng và điểm ảnh không đồng đều vì tác giả cho rằng sự phân bố sương mờ trên các vùng điểm ảnh khác nhau là khác nhau. Điều này tạo ra tính linh hoạt trong việc xử lý các vùng ảnh có mật độ sương dày mỏng khác nhau.
26
Hình 2.14: Feature Attention module [16].
2.4.2.2. Basic Block Structure
Basic Block Structure bao gồm Local Residual Learning (LRL) và Feature Attention làm cho quá trình huấn luyện trở nên ổn định hơn đồng thời cũng tăng hiệu quả khử sương. Điều này có được bởi vì LRL làm cho cấu trúc mạng chú ý đến các thông tin quan trọng và bỏ qua các vùng ít thông tin như vùng sương mỏng.
Hình 2.15: Ảnh minh họa Khối kiến trúc cơ bản [16].
2.4.2.3. Feature Fusion Attention
Kiến trúc Feature Fusion Attention (FAA) cho phép trọng số được học thích ứng từ mô-đun FA, mang lại trọng số có giá trị cao hơn cho các thông tin quan
27
trọng. Kiến trúc này cũng giữ lại được thông tin của các lớp ban đầu và truyền nó vào các lớp sâu hơn nhớ áp dụng Global Residual Learning.
Kiến trúc này cho phép chúng ta có thể thêm các khối cũng như gia tăng các layer một cách dễ dàng. Nhóm tác giả khuyến cáo nếu đáp ứng đủ điều kiện về phần cứng, ta có thể tăng số lượng các khối trong mô hình để tăng độ sâu của mạng cũng như có thể đạt được kết quả cao hơn so với mô hình mặc định của tác giả.
2.4.3. DW-GAN
DW-GAN là một phương pháp khử sương được đề xuất bởi Fu và các cộng sự [17] vào năm 2021 trong cuộc thi NITRE challenge [18]. Phương pháp này được thiết kế để giải quyết hai vấn đề mà một số phương pháp khử sương dựa trên CNN hiện có gặp phải khử sương có mật độ phân phối không đồng nhất, mặc dù chúng có đạt hiệu quả cao khi thực hiện trên các ảnh có phân phối sương đều.
Vấn đề đầu tiên mà các phương pháp dựa trên CNN gặp phải là mất mát các chi tiết kết cấu của hình ảnh khi quá trình khử sương diễn ra do sự phân bố sương mờ phức tạp. Thứ hai, quá trình thu thập các cặp dữ liệu sử dụng cho quá trình huấn luyện rất khó khăn khó khăn, vì thế việc huấn luyện các mô hình trên số lượng ảnh bị giới hạn có thể dẫn tới vấn đề overfitting vì thiếu dữ liệu đào tạo.
Vì hai lý do trên, Fu và các cộng sự [17] đã đề xuất kiến trúc một mạng hai nhánh sử dụng biến đổi wavelet rời rạc 2D. Đối với nhánh đầu tiên, được gọi là nhánh DWT, họ đề xuất ý tưởng đưa trực tiếp kiến thức high-frequency vào mạng dehazing bằng cách sử dụng phép biến đổi wavelet [19]. Nhờ đó, các thông tin quan trọng feature map có thể được giữ lại. Ở nhánh còn lại – nhánh knowledge adaption, Res2Net [20] được sử dụng với các trọng số ImageNet [21] được đào tạo trước để khởi tạo nhằm ngăn chặn vấn đề overfitting và đồng thời cải thiện khả năng tổng hợp của mạng. Cuối cùng, tác giả sử dụng một lớp chập 7 × 7 đơn giản có tác dụng một phép toán hợp nhất để kết hợp các đặc trưng của hai nhánh để tạo thành hình ảnh đã được khử sương.
28
Ngoài ra, họ cũng giới thiệu hàm kết hợp mất mát cuối cùng được hiển thị trong công thức dưới đây. 𝐿1là hàm mất mát L1, 𝐿𝑆𝑆𝐼𝑀 đại diện cho mất mát MS- SSIM [22], 𝐿perceptuallà hàm mất mát perceptual [23], đối với mất mát adversarial
𝐿ad, discriminator trong [24] được sử dụng.
𝐿𝑡𝑜𝑡𝑎𝑙 = 𝐿1 + α𝐿𝑆𝑆𝐼𝑀 + β𝐿perceptual+ 𝛾4𝐿ad
Trong đó: α = 0.2, β = 0.001, 𝛾 = 0.005 là các trọng số siêu tham số cho mỗi hàm mất mát.
Hình 2.16: Kiến trúc phương pháp khử sương DW-GAN từ bài báo gốc [17].
29
Chương 3. XÂY DỰNG BỘ DỮ LIỆU PHÁT HIỆN ĐỐI TƯỢNG TRONG KHÔNG ẢNH CHỨA SƯƠNG MỜ
Trong chương này, chúng tôi sẽ trình bày về quá trình xây dựng bộ dữ liệu UIT- DroneFog sau khi tiến hành khảo sát từ các bộ dữ liệu cùng ngữ cảnh đã được công