Thuật toán nhận diện khuôn mặt

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 33 - 36)

VIII. Mạng Facenet và thuật toán Cosime Similarity sử dụng cho Face Regconization

2. Thuật toán nhận diện khuôn mặt

- Ảnh đầu vào sao khi đã qua model Facenet sẽ cho ra vector 128 chiều. Ta sẽ sử dụng vector làm đầu vào cho bài toán định danh khuôn mặt.

2.1. Độ tương tự Cosin (Cosin Similarity)

- Độ tương tự Cosin là cách đo độ tương tự giữa hai vector khác không của một không gian tích vô hướng. Độ tương tự này được định nghĩa bằng giá trị góc cosin giữa hai vector.

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

- Độ tương tự Cosin là một thẩm định có tính định hướng chứ không phải về độ lớn (to nhỏ): Hai vector cùng hướng có độ tương tự cosin bằng 1, hai vector vuông góc với nhau có độ tương tự bằng 0, hai vector đối nhau có độ tương tự là -1. Độ tương tự đặc biệt được sử dụng trong không gian dương với kết quả được giới hạn chặt chẽ trong biên độ [0-1].

2.2. Công thức Cosin Similarity

- Ta có công thức tích vô hướng của hai vector:

- Từ công thức trên, rút được:

- Trong đó:

A = [A1, A2,, …, Ai, …, An] B = [B1, B2,, …, Bi, …, Bn]

n: là số chiều của hai vector cần xét

Từ công thức trên ta thấy độ tương tự cosin phụ thuộc vào tích vô hướng của hai vector A.B và tích độ lớn ||A||.||B|| của hai vector. Do đó có thể kết luận rằng độ tương tự Cosin phụ thuộc vào cả độ lớn và hướng của hai vector.

- Độ tương tự bằng -1, có nghĩa là khác nhau hoàn toàn. - Độ tương tự bằng 1, có nghĩa là giống nhau hoàn toàn. - Độ tương tự bằng 0, có nghĩa là trực giao.

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

2.3. Áp dụng độ tương tự Cosin vào bài toán nhận diện khuôn mặt

- Với n class mỗi class có m ảnh trong tập dữ liệu khuôn mặt đã training. Sau khi cho qua model Facenet (đã được training ở phần trước), ta sẽ có m.n vector đặc trưng 128 chiều.

- Với một ảnh đầu vào mới hoàn toàn, sau khi trích xuất khuôn mặt bằng MTCNN, khuôn mặt sẽ được đưa vào Facenet để trích xuất ra vector đặc trưng 128 chiều. Từ vector đặc trưng vừa được trích xuất, ta sẽ sử thauật toán độ tương tự Cosin để giải quyết vấn đề định danh. Đối tượng được định danh là đối tượng có độ tương tự cosin cao nhất. Nếu độ tương tự cosin cao nhất thấp hơn ngưỡng, đối tượng chưa được định danh (unknow).

Hàm tính vector trong các vector của dataset có độ tương tự gần nhất với vector đầu vào.

embed_vecs: Mảng các vector trong bộ dữ liệu

vec: vector đang xét

labels: Mảng chứa tên của các đối tượng

- Đầu tiên sim = cosine_similarity(embed_vecs, vec) cho ra một mảng chứ độ tương tự cosine của các vector trong bộ dữ liệu với vector đang xét.

- Tiếp theo ta sắp xếp mảng sim theo thứ tự từ nhỏ đến lớn và lấy ra phần tử đầu tiên. Từ đó ta có được vị trí của phần tử có độ tương tự cosine cao nhất.

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

- Sau đó từ vị trí đã được xác định và mảng labels đầu vào ta tìm được tên của phần tử có độ tương tự cosine cao nhất.

- label chứa tên của đối tượng cần trả về, prob chính là giá trị của độ tương tự cosine, cũng chính là độ tin cậy ta sử dụng trong trường hợp này.

- Trong luồng video, với mỗi frame là mỗi ảnh, ta tiến hành xác định bounding box của khuôn mặt, với các giá trị x, y , w, h.

- Từ ảnh gốc và các giá trị trên, ta cắt được ảnh roi (Region of Interest - Vùng quan tâm).

- Sau đó cần thay đổi kích thước của ảnh về (244, 244) để có đưa vào model của facenet.

- Qua các bước chuẩn hóa dữ liệu, ta đưa ảnh vào model và thu được vector đặc trưng 128 chiều vec.

- Từ vec ta sử dụng lại hàm như phía trên đã phân tích để tích toán độ tương tự cosine với các vector có trong dataset.

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 33 - 36)

Tải bản đầy đủ (PDF)

(49 trang)