Trong ứng dụng nhận diện khuôn mặt thì bước nhận diện là bước cuối cùng để hiển thị kết quả. Tìm hiểu các bài trước ở đây:
Phát hiện khuôn mặt – face detection
Phát hiện khuôn mặt – P2: tối ưu hoá
Và cũng đã có chương trình nhận diện khuôn mặt viết bằng EmguCV, tuy nhiên code cũng hơi cũ rồi:
[C#] Nhận diện khuôn mặt – face recognition
Cách thức hoạt động
– Khi chương trình load lên sẽ tìm các khuôn mặt đã crop trong folder faces, thí dụ:
faces\nguyenvana
faces\nguyenvanb
faces\nguyenvanc
– Sau đó chương trình sẽ training các khuôn mặt trong đó thành model nhận dạng
– Tiếp theo là đọc hình ảnh từ camera, tách ra từng frame để xử lý
– Trong mỗi frame, phát hiện khuôn mặt bằng hàm detectMultiScale
– Nhận dạng khuôn mặt (predict) bằng khuôn mặt đã crop, thuật toán trả về tên người & độ confident
– Hiển thị kết quả (vẽ hình chữ nhật & tên người cho user)
Cách sử dụng chương trình
Chương trình chỉ viết code ở mức tối thiểu với các bước ở trên. Để sử dụng được chương trình cần làm thêm vài bước:
– Chạy chương trình lên nó sẽ save ảnh khuôn mặt lại vào folder faces
– Tiến hành tạo folder với tên người, sau đó bỏ ảnh người đó vào trong folder
– Chạy lại chương trình
Vài lưu ý
– Nên có khoảng 10-20 ảnh cho mỗi người
– Xóa bỏ những hình ảnh nhòe hoặc nhiễu, chỉ lấy những ảnh chất lượng
Source code
Chương trình sử dụng opencv 3.2.0