Chương 1 16 - Giá trị C là số lượng lớp đối tượng trong bài toán nhận diện đối tượng. Mỗi giá trị dự đoán trong C là giá trị xác suất điều kiện nếu ô trên grid chứa đối tượng thì đó là đối tượng nào. Trong nghiên cứu, nhóm tác giả của YOLO sử dụng S = 7, B = 2,C = 20. Hình 8: Cách đề xuất khu vực mỏ neo của mô hình YOLO.
(Nguồn: [7]) SSD cũng sử dụng bản đồ đặc trưng như là các dạng grid của ảnh đầu vào nhưng thay vì sử dụng một grid như YOLO thì SSD sử dụng nhiều grid từ nhiều bản đồ đặc trưng có cách kích thước khác nhau. Với mỗi grid tạo bởi một bản đồ đặc trưng có kích thước mn, SSD trả đầu ra dự đoán có kích thước mn(k(c + 4)). Nếu tâm của một hộp giới hạn nằm trong ô nào trên grid, ô đó sẽ cần phải được dự đoán là chứa đối tượng. Mỗi ô trên grid sẽ được mô hình dự đoán (k(c + 4)) giá trị, trong đó: - Giá trị k là số lượng hộp giới hạn dự đoán.
- Giá trị 4 là 4 giá trị x, y, w, h đại diện cho hộp giới hạn được dự đoán. - Giá trị c là số lượng lớp đối tượng trong bài toán nhận diện đối tượng. Mỗi giá trị dự đoán trong c là giá trị xác suất khu vực mỏ neo đó là đối tượng nào. Hình 9: Cách đề xuất khu vực mỏ neo của mô hình SSD.
(Nguồn: [6]) Với ý tưởng khởi tạo khu vực mỏ neo như trên, nhóm tác giả của RetinaNet đã chỉ ra một vấn đề nghiêm trọng mà các mô hình nhận diện đối tượng một pha nói chung gặp phải đó là vấn đề mất cân bằng dữ liệu trong quá trình huấn luyện mô hình. Cụ thể, vấn đề mất cân bằng ở đây xảy ra chủ yếu do sự chênh lệch giữa phần ảnh là foreground và phần ảnh là background, hay nói cách khác là phần ảnh chứa đối tượng và phần ảnh không chứa đối Nguyễn Hữu Minh Chương 1 17 tượng. Các mô hình nhận diện đối tượng hai pha không thật sự gặp phải vấn đề mất cân bằng dữ liệu này. Hàm mất mát Focal Để giải quyết vấn đề mất cân bằng dữ liệu nói trên, nhóm tác giả của RetinaNet đã đề xuất hàm mất mát Focus dựa trên nền tảng của hàm mất mát entropy chéo nhị phân giải quyết vấn đề mất cân bằng dữ liệu nghiêm trọng.
Nhóm tác giả chú thích rằng hàm mất mát Focal hiệu quả đối với cả bài toán phân lớp với nhiều hơn hai lớp nhưng để đơn giản hoá, nhóm tác giả sử dụng hàm mất mát entropy chéo nhị phân. trong đó: - y là giá trị groundtruth (0 đối với khu vực mỏ neo không chứa đối tượng và 1 đối với khu vực mỏ neo chứa đối tượng). - p là giá trị xác suất mà mô hình dự đoán khu vực mỏ neo đó chứa đối tượng. Để ngắn gọn, nhóm tác giả quy ước lại như sau: p if y = 1 pt = (3) 1 − p otherwise, từ đó, hàm mất mát entropy chéo được viết lại thành CE(p, y) = CE(pt ) = − log(pt ) (4) Một cấu hình khác của hàm mất mát entropy chéo là hàm mất mát entropy chéo cân bằng, được sinh ra bằng việc đánh trọng số cho từng số hạng của hàm mất mát entropy chéo ban đầu CE(p, y) = −αt log(pt ) (5) trong đó: - αt là trọng số tương ứng với số hạng pt.
Trọng số αt có thể được tính dựa trên tần suất xuất hiện của các lớp trong bộ dữ liệu hoặc là một hyperpameter. Hàm hàm mất mát entropy chéo cân bằng có thể đã giúp giảm bớt hiệu ứng mất cân bằng dữ liệu lên trên giá trị hàm mất mát. Tuy nhiên, việc gán trọng số như hàm hàm mất mát entropy chéo cân bằng không phân biệt được giữa những mẫu dữ liệu dễ và khó. Nhóm tác giả, từ đó, đề xuất hàm mất mát Focus không những giúp giải quyết vấn đề mất cân bằng dữ liệu mà còn giúp mô hình tập trung vào những mẫu dữ liệu không chứa đối tượng nhưng khó và dễ nhầm lẫn thành chứa đối tượng.
Nguyễn Hữu Minh Chương 1 18 FL(pt ) = −(1 − pt )γ log(pt ) (6) trong đó: - (1 − pt ) là thành phần đánh giá độ dễ hay khó của mẫu dữ liệu. Với những mẫu dễ và mô hình đã được huấn luyện tốt, giá trị (1 − pt ) sẽ nhỏ và những mẫu này sẽ gây ít ảnh hưởng trong quá trình huấn luyện mô hình. - γ được nhóm tác giả gọi là focusing parameter, dùng để xác định mức độ tập trung của mô hình lên các mẫu dữ liệu không chứa đối tượng. Với γ = 0, hàm FL lúc này tương tự với hàm CE.
Trong các thí nghiệm của RetinaNet, giá trị γ = 2 là tốt nhất. Hình 10: So sánh kết quả với các tham số của hàm mất mát Focal với hàm mất mát entropy chéo. (Nguồn: [11]) Ngoài ra, nhóm tác giả còn đề xuất một dạng khác của hàm FL bằng việc sử dụng thêm một tham số α và trong các thí nghiệm, dạng này cho kết quả tốt hơn một chút so với dạng hàm FL không sử dụng α. FL(pt ) = −αt (1 − pt )γ log(pt ) (7) Kiến trúc mô hình RetinaNet Hình 11: Kiến trúc mô hình RetinaNet.
(Nguồn: [11]) RetinaNet gồm có các thành phần: - Phần mô hình xương sống FPN được sử dụng nhằm trích xuất đặc trưng của ảnh đầu vào với nhiều kích thước đặc trưng khác nhau. - Phần trích xuất khu vực mỏ neo được thực hiện tương tự với cách trích xuất của mô hình RPN. Nguyễn Hữu Minh Chương 1 19 Tuy nhiên, nhóm tác giả đã thử nghiệm và bổ sung thêm các kích thước 20 , 21/3 , 22/3 của khu vực mỏ neo để đạt kết quả tốt hơn. Các khu vực mỏ neo được gán groundtruth với chiến lược tương tự như trong Faster R-CNN [4] và (2) thay đổi threshold IoU để gán nhãn cho từng khu vực mỏ neo.
- Phần Classification Subnet được chia sẻ giữa tất cả các bản đồ đặc trưng của mô hình xương sống FPN, gồm các lớp Conv 3x3xC và lớp Conv cuối cùng 3x3xKA. Trong đó, K là số lượng lớp đối tượng trong bài toán nhận diện đối tượng, A là số lượng khu vực mỏ neo tại vị trí trên mỗi bản đồ đặc trưng của mô hình xương sống FPN (tác giả chọn A = 9), C là số lượng channel của lớp Conv (tác giả chọn C = 256). - Phần Box Regression Subnet được thiết kế khác với cách thiết kế trong mô hình Faster R-CNN [4] khi không dùng chung các lớp Conv với Classification Subnet. Box Regression Subnet cũng gồm các lớp Conv 3x3xC và lớp Conv cuối cùng 3x3x4A.
Trong đó, A là số lượng khu vực mỏ neo tại vị trí trên mỗi bản đồ đặc trưngcủa mô hình xương sống FPN (tác giả chọn A = 9), 4 là 4 độ lệch trong toạ độ của hộp giới hạn dự đoán so với groundtruth, C là số lượng channel của lớp Conv (tác giả chọn C = 256). Kết luận về mô hình RetinaNet Mô hình RetinaNet ra đời là một bước tiến lớn đối với việc giải quyết bài toán nhận diện đối tượng khi nó giải quyết vấn đề mất cân bằng dữ liệu của các mô hình một pha giúp tăng độ chính xác của mô hình ngang bằng với các mô hình hai pha nhưng vẫn duy trì được một tốc độ nhanh và có thể sử dụng trong thời gian thực. Mô hình RetinaNet cho đến nay vẫn là một mô hình tốt để giải quyết bài toán nhận diện đối tượng. Nguyễn Hữu Minh Chương 2 20 Chương 2 Mô hình đề xuất 2.1 Tổng quan ý tưởng của mô hình RetinaFocus Lấy cảm hứng từ hai mô hình RetinaFace [22] và AutoFocus [15], mô hình RetinaFocus được xây dựng nhằm tận dụng điểm mạnh và khắc phục điểm yếu của cả hai mô hình trên trong một mô hình duy nhất, từ đó, giải quyết tốt bài toán nhận diện khuôn mặt trong ảnh chất lượng cao.
Mô hình RetinaFace [22] đạt độ chính xác tương đối cao trên bộ dữ liệu WIDER FACE cùng với tốc độ xử lý đạt mức chấp nhận được trên bài toán nhận diện khuôn mặt. Mặc dù sử dụng FPN trong kiến trúc mô hình xương sống của mình, mô hình RetinaFace [22] vẫn chưa thể dự đoán với vị trí hộp giới hạn chính xác và với độ tự tin cao hết những mặt có kích thước nhỏ. Do đó, khi xử lý ảnh có kích thước lớn, để duy trì được độ chính xác cao, nhóm tác giả vẫn sử dụng chiến lược Image Pyramids và điều đó khiến cho tốc độ xử lý của RetinaFace [22] tăng lên nhiều lần. Bên cạnh đó, mô hình AutoFocus [15], lại là một giải pháp rất thông minh để xử lý ảnh với chiến lược Image Pyramids nhưng với tốc độ cao và chi phí tính toán thấp.
Từ những điểm yếu của mô hình RetinaFace [22] khi xử lý ảnh chất lượng cao và những điểm mạnh của mô hình AutoFocus [15], chúng tôi đề xuất mô hình RetinaFocus giải bài toán nhận diện khuôn mặt trong ảnh chất lượng cao với độ chính xác tương đương và cải thiện đáng kể tốc độ tính toán. Mô hình RetinaFocus gồm hai nhánh: nhánh xác định đối tượng và nhánh tập trung đối tượng. - Nhánh xác định đối tượng là một mô hình nhận diện khuôn mặt với nhiệm vụ đưa ra kết quả về vị trí của khuôn mặt trên ảnh. Trong mô hình RetinaFocus, nhánh xác định đối tượng được xây dựng dựa trên mô hình RetinaFace [22].
- Nhánh tập trung đối tượng là một mô hình Conv với nhiệm vụ đưa ra dự đoán giúp xác định được các khu vực đáng chú ý trên ảnh và loại bỏ các khu vực khả năng cao không chứa khuôn mặt, các khu vực có khả năng chứa khuôn mặt sau đó sẽ được zoom in, crop và đưa vào cả nhánh xác định đối tượng và nhánh tập trung đối tượng. Trong mô hình RetinaFocus, nhánh tập trung đối tượng được xây dựng dựa trên mô hình AutoFocus [15]. Hình 12: Kiến trúc của mô hình RetinaFocus. Nguyễn Hữu Minh Chương 2 21 Hình trên là một ví dụ về kiến trúc mô hình RetinaFocus khi sử dụng bản đồ đặc trưng P3 của FPN làm đầu vào cho Nhánh tập trung đối tượng.
Các bản đồ đặc trưng khác của FPN cũng đều có thể được sử dụng làm đầu vào cho Nhánh tập trung đối tượng.2 Chi tiết kiến trúc của mô hình RetinaFocus Kiến trúc nhánh xác định đối tượng Nhánh xác định đối tượng của RetinaFocus được xây dựng dựa trên mô hình RetinaFace [22], một mô hình một pha giải quyết bài toán nhận diện khuôn mặt và đạt kết quả tốt trên bộ dữ liệu WIDER FACE [29].