TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINHKHOA ĐÀO TẠO CHẤT LƯỢNG CAO BÁO CÁO CUỐI KỲ ĐIỂM DANH SỬ DỤNG PHƯƠNG PHÁP NHẬN DIỆN KHUÔN MẶT GVHD: TS.. Tên đề tài: Điểm danh sử d
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
BÁO CÁO CUỐI KỲ ĐIỂM DANH SỬ DỤNG PHƯƠNG PHÁP NHẬN DIỆN KHUÔN MẶT
GVHD: TS TRẦN VŨ HOÀNG
Trang 2MỤC LỤC
I GIỚI THIỆU 4
1.1 Tên đề tài: 4
1.2 Ứng dụng đề tài vào thực tế 4
1.3 Mục tiêu đề tài 4
II PHÂN TÍCH VẤN ĐỀ 4
III PHƯƠNG PHÁP NHẬN DIỆN KHUÔN MẶT 5
3.1 Phát hiện khuôn mặt bằng phương pháp MTCNN 5
3.2 Model pre-trained Facenet 7
3.3 Phân loại khuôn mặt dùng phương pháp SVM 8
IV KẾT QUẢ ĐẠT ĐƯỢC 8
4.1 Tập dữ liệu 8
4.2 Độ chính xác 9
4.3 Phương pháp đánh giá 11
V KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 13
5.1 Kết luận 13
5.2 Hướng phát triển 13
TÀI LIỆU THAM KHẢO 14
Trang 3DANH MỤC HÌNH
Hình 1 Các pre-trained model 7
Hình 2 Phân loại khuôn mặt dùng SVM 8
Hình 3 13 folder của các bạn thành viên trong lớp 8
Hình 4 Folder của bạn “Hoan” 9
Hình 5 Nhận diện 2 bạn “ChinhNghiep”, “TrongNghia” 9
Hình 6 Nhận diện 2 bạn “Hoan”, “CongTien” 10
Hình 7 Nhận diện bạn “Toan” 10
Hình 8 Độ chính xác với số class tương ứng 11
Hình 9 Độ chính xác của các class khi nhận diện 11
DANH MỤC BẢNG Bảng 1 Bảng ma trận tương quan 12
Trang 4I GIỚI THIỆU
1.1 Tên đề tài:
Điểm danh sử dụng phương pháp nhận diện khuôn mặt
1.2 Ứng dụng đề tài vào thực tế
Nhận dạng tự động khuôn mặt để điểm danh trong các lớp học, tránh các trường hợp gian lận trong thi cử Ngoài ra nhận diện khuôn mặt có thể ứng dụng nhiều trong thực tiễn như camera giám sát, hệ thống chấm công, chú thích ảnh tự động, lưu trữ thông tin khuôn mặt ở các máy ATM, tìm kiếm và xác minh tội phạm
1.3 Mục tiêu đề tài
- Phát hiện khuôn mặt
- Phân loại được khuôn mặt
II PHÂN TÍCH VẤN ĐỀ
Hệ thống điểm danh bằng mặt người thực hiện trích suất khuôn mặt trong ảnh thu được từ camera (webcam) và xác định danh tính của đối tượng trong hệ thống dựa vào nội dung của ảnh khuôn mặt được trích suất
Hệ thống đối mặt với 2 bài toán lớn là xác định khuôn mặt và phân loại khuôn mặt
Trang 5III PHƯƠNG PHÁP PHÁT HIỆN KHUÔN MẶT
3.1 Phát hiện khuôn mặt bằng phương pháp MTCNN
MTCNN hoạt động theo 3 bước, mỗi bước có một mạng neural riêng lần lượt là: P-Net, R-Net và O-net
Với mỗi bức ảnh đầu vào, nó sẽ tạo ra nhiều bản sao của hình ảnh đó với các kích thước khác nhau
Tại P-Net, thuật toán sử dụng 1 kernel 12x12 chạy qua mỗi bức hình để tìm kiếm khuôn mặt Sau lớp convolution thứ 3, mạng chia thành 2 lớp Convolution 4-1 đưa ra xác suất của một khuôn mặt nằm trong mỗi bounding boxes, và Convolution 4-2 cung cấp tọa
độ của các bounding boxes
Trang 6R-Net có cấu trúc tương tự vói P-Net Tuy nhiên sử dụng nhiều layer hơn Tại đây, network sẽ sử dụng các bounding boxes được cung cấp từ P-Net và tinh chỉnh lại tọa độ
Tương tự R-Net chia ra làm 2 layers ở bước cuối, cung cấp 2 đầu ra đó là tọa độ mới của các bounding boxes, cùng độ tin tưởng của nó
O-Net lấy các bounding boxes từ R-Net làm đầu vào và đánh dấu các tọa độ của các mốc trên khuôn mặt
Trang 7Ở bước này, thuật toán đưa ra 3 kết quả đầu ra khác nhau bao gồm: xác suất của khuôn mặt nằm trong bounding box, tọa độ của bounding box và tọa độ của các mốc trên khuôn mặt (vị trí mắt, mũi, miệng)
3.2 Model pre-trained Facenet
Hầu hết chúng ta khi xây dựng một thuật toán nhận diện khuôn mặt sẽ không cần phải train lại mô hình facenet mà tận dụng lại các mô hình pretrain sẵn có Những mô hình pretrain được huấn luyện trên các dữ liệu lên tới hàng triệu ảnh Do đó có khả năng
mã hóa rất tốt các bức ảnh trên không gian 512 chiều
Trang 8Hình 1 Các pre-trained model Facenet
Kiến trúc mà tác giả sử dụng là Inception ResNetv1 trên 2 bộ dữ liệu là CASIA-WebFace và VGGFace2 Nhóm em sử dụng model 20180402-114759 vì độ chính xác cao, lên đến 0.9965 Model sử dụng tập dữ liệu gồm khoảng 3 triệu ảnh được thu thập từ gần 9000 người
Nhóm em sử dụng model trên cho việc trích xuất đặc trưng từ các ảnh khuôn mặt
có kích thước 160x160 pixels thành các vector đặc trưng để phục vụ cho việc phân loại ở bước tiếp theo
3.3 Phân loại khuôn mặt dùng phương pháp SVM
Support Vector Machine (SVM) là một thuật toán thuộc nhóm Học có giám sát dùng để phân chia dữ liệu (Classification) thành các nhóm riêng biệt
Từ những đặc trưng khuôn mặt đã được phân tích trong model pre-trained
Facenet, nhóm em sử dụng SVM để chia thành các class riêng biệt để phân loại
Hình 2 Phân loại khuôn mặt dùng SVM
IV KẾT QUẢ ĐẠT ĐƯỢC
Trang 9Chụp ảnh và sưu tầm 400 ảnh (360 ảnh train, 40 ảnh test), 13 thư mục khác nhau gồm tên các thành viên trong lớp
Hình 3 13 folder của các bạn thành viên trong lớp
Các folder của các bạn thành viên trong lớp chứa các ảnh được đánh số từ 1 đến
25 để phục vụ cho việc phát hiện, nhận dạng trong model
Dưới đây là ảnh trong folder của thành viên “Hoan”
Hình 4 Folder của bạn “Hoan”
4.2 Độ chính xác
Độ chính xác khá cao tương ứng với các class
Dưới đây là một số bạn đã nhận diện với độ chính xác bên dưới
Trang 10Hình 5 Nhận diện 2 bạn “ChinhNghiep”, “TrongNghia”
Hình 6 Nhận diện 2 bạn “Hoan”, “CongTien”
Trang 11Hình 7 Nhận diện bạn “Toan”
Nhìn chung, với số class càng nhiều, độ chính xác có hướng giảm
ACCURACY 0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
Hình 8 Độ chính xác với số class tương ứng
Nhưng ta chỉ cần một class có độ chính xác cao nhất để xét phân loại
Trang 12Hình 9 Độ chính xác của các class khi nhận diện
Như hình trên, ta thấy độ chính xác của class “ChinhNghiep” chỉ 0.6577 và cao nhất trong tất cả các class nên model vẫn nhận diện đúng
4.3 Phương pháp đánh giá
Mỗi class có 5 ảnh test, và 5 lần thử thực tế để đánh giá độ chính xác theo phương pháp Ma trận tương quan Chỉ số dưới đây là sự tương quan số lần thử thành công mà model dự đoán đúng
Ví dụ:
Nếu trong 10 lần thử (thực tế và ảnh test), model dự đoán đúng hết 10 lần thì giá trị bằng 1
Nếu trong 10 lần thử (thực tế và ảnh test), model dự đoán đúng 9 lần thì giá trị bằng 0.9
Nếu trong 10 lần thử (thực tế và ảnh test), model dự đoán đúng 8 lần thì giá trị bằng 0.8
…
Từ đó ta có bảng sau
Trang 13Bảng 1 Bảng ma trận tương quan
V KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
5.1 Kết luận
- Hoàn thành mục tiêu đề ra:
Phát hiện và nhận dạng khuôn mặt
- Càng nhiều class, độ chính xác càng giảm, ảnh hưởng đến tỉ lệ nhận dạng
Trang 14 Dễ dàng nghiên cứu, học tập.
- Khắc phục được các thách thức:
Khuôn mặt ở đâu trong bức hình
Quá nhiều đặc điểm khác nhau trên
khuôn mặt
- Model thiếu linh hoạt, phục thuộc nhiều vào dữ liệu hình ảnh trước đó, nếu có thành viên mới, phải tạo thêm folder và chạy lại model
5.2 Hướng phát triển
- Khắc phục trường hợp điểm danh qua ảnh: sử dụng model kết hợp camera 3D để
xác định được chiều sâu của khung hình từ đó xác định được người thật hay ảnh
- Phát triển hệ thống điểm danh phục vụ cơ quan, trường học, công ty,
Trang 15TÀI LIỆU THAM KHẢO
[1] "Support Vector Machine," 09 04 2017 [Online] Available:
https://machinelearningcoban.com/2017/04/09/smv/
[2] Phạm Đình Khanh, "Mô hình Facenet trong Face Recognition," 12 03 2020 [Online] Available: https://phamdinhkhanh.github.io/2020/03/12/faceNetAlgorithm.html [3] Lavender, "Tìm hiểu MTCNN và áp dụng để xác định vị trí các khuôn mặt.," 24 10
2018 [Online] Available: https://viblo.asia/p/tim-hieu-mtcnn-va-ap-dung-de-xac-dinh-vi-tri-cac-khuon-mat-3Q75wkO75Wb
Link dính kèm : https://drive.google.com/file/d/1Wl92Tt0KcP0jO_HqIN4A-gjCY_6tdB0W/view?usp=sharing