Mạng MTCNN sử dụng cho Face detection:

Một phần của tài liệu Áp dụng deep learning nghiên cứu xây dựng ứng dụng nhận diện danh tính và phát hiện ngủ gật (Trang 26 - 29)

1. Bài toán Face detection

- Phát hiện khuôn mặt là bài toán vô cùng quan trọng và cần thiết trong các ứng dụng về khuôn mặt như Nhận dạng khuôn mặt (Face regconization), phân tích cảm xúc khuôn mặt…. Tuy nhiên, điều này gặp phải vô vàn thách thức về kích thước thay đổi của khuôn mặt, tư thế đầu thay đổi, cường đồ sáng thay đổi. Điều này làm cho Face detection trở thành bài toán đầy thách thức.

SVTT: Mai Tấn Hồng Hải – Lớp 17CNTTC 27

- Máy dò khuôn mặt theo tầng được đề xuất bởi Viola và Jones sử dụng các tính năng Haar-Like và AdaBoost để đào tạo các bộ phân loại theo tầng, đạt được hiệu suất tốt với hiệu quả thời gian thực. Tuy nhiên, khá nhiều công trình chỉ ra rằng máy dò này có thể suy giảm đáng kể trong các ứng dụng thế giới thực với các biến thể hình ảnh lớn hơn của khuôn mặt người ngay cả với các tính năng và bộ phân loại tiên tiến hơn. Gần đây, mạng nơ-ron tích tụ (CNN) đạt được những tiến bộ đáng kể trong nhiều nhiệm vụ thị giác máy tính, chẳng hạn như phân loại hình ảnh và nhận dạng khuôn mặt.

- Lấy cảm hứng từ hiệu suất tốt của CNN trong các nhiệm vụ thị giác máy tính, một số phương pháp phát hiện khuôn mặt dựa trên CNN đã được đề xuất trong những năm gần đây. Yang và cộng sự ào tạo mạng nơ-ron tích chập sâu để nhận dạng thuộc tính khuôn mặt nhằm thu được phản ứng cao ở các vùng khuôn mặt, từ đó mang lại nhiều cửa sổ khuôn mặt ứng cử viên hơn nữa. Tuy nhiên, do cấu trúc CNN phức tạp, cách tiếp cận này tốn kém thời gian trong thực tế. Li và cộng sự sử dụng CNN xếp tầng để phát hiện khuôn mặt, nhưng nó yêu cầu hiệu chuẩn hộp giới hạn từ nhận diện khuôn mặt với chi phí tính toán bổ sung và bỏ qua mối tương quan vốn có giữa bản địa hóa các mốc khuôn mặt và hồi quy hộp giới hạn. - Với những nhược điểm của phương pháp cũ, cộng với việc phát triển của công nghê vi mạch. MTCNN ra đời với những ưu điểm vượt trội so với các bộ phát hiện khuôn mặt trước.

2. MTCNN là gì

- MTCNN viết tắt của Multi-task Cascaded Convolutional NeuronNetwork bào gồm 3 tầng CNN xếp tầng.

SVTT: Mai Tấn Hồng Hải – Lớp 17CNTTC 28

- Trong giai đoạn đầu, nó tạo ra các cửa sổ ứng viên một cách nhanh chóng thông qua CNN nông. Sau đó, nó tinh chỉnh các cửa sổ để từ chối một số lượng lớn các cửa sổ không có mặt thông qua CNN phức tạp hơn. Cuối cùng, nó sử dụng CNN mạnh hơn để tinh chỉnh kết quả và xuất ra các vị trí mốc trên khuôn mặt.

Nhờ khung học tập đa tác vụ này, hiệu suất của thuật toán có thể được cải thiện đáng kể.Với một hình ảnh, ban đầu chúng tôi thay đổi kích thước nó thành các tỷ lệ khác nhau để xây dựng một kim tự tháp hình ảnh, là đầu vào của khung xếp tầng ba giai đoạn sau:

Giai đoạn 1: Chúng tôi khai thác một mạng tích tụ đầy đủ, Được gọi là Mạng đề xuất (P-Net), để lấy các cửa sổ ứng viên và các vectơ hồi quy hộp giới hạn của chúng theo cách tương tự như . Sau đó, chúng tôi sử dụng các vectơ hồi quy hộp giới hạn ước tính để hiệu chỉnh các ứng cử viên. Sau đó, chúng tôi sử dụng phương pháp ngăn chặn không tối đa (NMS) để hợp nhất các ứng viên bị trùng lặp nhiều.

SVTT: Mai Tấn Hồng Hải – Lớp 17CNTTC 29

Giai đoạn 2: tất cả các ứng cử viên được cung cấp cho một CNN khác, được gọi là Mạng lưới lọc (R-Net), tiếp tục từ chối một số lượng lớn ứng viên sai, thực hiện hiệu chuẩn với hồi quy hộp giới hạn và hợp nhất ứng viên NMS.

Giai đoạn 3: Giai đoạn này tương tự như giai đoạn thứ hai, nhưng trong giai đoạn này chúng tôi hướng đến việc mô tả khuôn mặt chi tiết hơn. Đặc biệt, mạng sẽ xuất ra năm vị trí mốc trên khuôn mặt.

- Kiến trúc CNN:

Một phần của tài liệu Áp dụng deep learning nghiên cứu xây dựng ứng dụng nhận diện danh tính và phát hiện ngủ gật (Trang 26 - 29)