Mô hình FaceNet

Một phần của tài liệu Nghiên cứu, thiết kế hệ thống nhận diện khuôn mặt sử dụng trí tuệ nhân tạo (Trang 49 - 54)

Facenet chính là một dạng Convolutional neural network đã được loại bỏ output layer có tác dụng biểu diễn các bức ảnh trong một không gian eucledean n chiều (thường là 128) sao cho khoảng cách giữa các véc tơ embedding càng nhỏ, mức độ tương đồng giữa chúng càng lớn. Việc đánh giá khoảng cách giữa các vecto sẽ được thực hiện bởi hàm loss function (trong bài báo cáo này hàm được sử dụng là Triplet loss) Kiến trúc mạng CNN được sử dụng trong mô hình FaceNet là Inception V1. Đây là một cấu trúc mạng CNN được giới thiệu vào năm 2014 của Google, với đặc trưng là các khối Inception. Khổi này cho phép mạng được học theo cấu trúc song song, nghĩa là với 1 đầu vào có thể được đưa vào nhiều các lớp Convolution khác nhau để đưa ra các kết quả khác nhau, sau đó sẽ được Concatenate vào thành 1 output. Việc học song song này giúp mạng có thể học được nhiều chi tiết hơn, lấy được nhiều feature hơn so với mạng CNN truyền thống. Ngoài ra, mạng cũng áp dụng các khối Convolution 1x1 nhằm giảm kích thước của mạng, khiến việc train trở nên nhanh hơn.

36

Dữ liệu đầu vào có 8239 ảnh trong đó bao gồm khuôn mặt của 1000 người nổi tiếng và 4 sinh viên.

Mỗi người nổi tiếng được thu thập khoảng 8 bức ảnh chứa khuôn mặt của họ. Những sinh viên được thêm dữ liệu bằng cách chụp ảnh khuôn mặt trước bằng camera laptop. Mỗi sinh viên được thu thập 100 bức ảnh ở những góc xoay khác nhau.

Hình 37: Dữ liệu khuôn mặt của người nổi tiếng trong mô hình FaceNet Hình 38: Kiến trúc mạng Inception V1 trong mô hình FaceNet

37

Đề tăng độ chính xác của quá trình nhận diện, mô hình mạng MTCNN sẽ được sử dụng để làm nhiệm vụ phát hiện gương mặt (face-detection). Mạng MTCNN bao gồm 3 lớp mạng khác biệt, tượng trưng cho 3 stage chính là P-Net, R-Net và O-Net.

P – Net (Proposal-Network)

Một bức ảnh thường sẽ có nhiều hơn một khuôn mặt. Ngoài ra, những khuôn mặt thường sẽ có kích thước khác nhau. Ta cần một phương thức để có thể nhận dạng toàn bộ số khuôn mặt đó, ở các kích thước khác nhau. Bằng cách sử dụng phép resize ảnh, để tạo một loạt các bản copy từ ảnh gốc với kích cỡ khác nhau. Với mỗi một phiên bản copy-resize của ảnh gốc, ta sử dụng kernel 12x12 pixel và stride = 2 để đi qua toàn bộ bức ảnh, dò tìm khuôn mặt. Vì các bản copies của ảnh gốc có kích thước khác nhau, cho nên mạng có thể dễ dàng nhận biết được các khuôn mặt với kích thước khác nhau. Sau đó, ta sẽ đưa những kernels được cắt ra từ trên và truyền qua mạng P- Net. Kết quả của mạng cho ra một loạt các bounding boxes nằm trong mỗi kernel, mỗi bounding boxes sẽ chứa tọa độ 4 góc để xác định vị trí trong kernel chứa nó. Sau đó ta sẽ chuyển các tọa độ của các box về với tọa độ gốc của bức ảnh thật và truyền qua mạng R-Net.

38

R-Net (Refine Network)

R-Net thực hiện các bước tương tự như mạng P-Net. Tuy nhiên, mạng còn sử dụng một phương pháp tên là padding, nhằm thực hiện việc chèn thêm các zero-pixels vào các phần thiếu của bounding box nếu bounding box bị vượt quá biên của ảnh. Tất cả các bounding box lúc này sẽ được resize về kích thước 24x24, được coi như 1 kernel và truyền vào mạng R. Kết quả sau cũng là những tọa độ mới của các box còn lại và được đưa vào mạng tiếp theo.

O-Net (Output Network)

Cuối cùng là O-Net, mạng cũng thực hiện tương tự như việc trong mạng R, nhưng thay đổi kích thước thành 48x48. Tuy nhiên, kết quả đầu ra của mạng lúc này không còn chỉ là các tọa độ của các box nữa, mà trả về 3 giá trị bao gồm: 4 tọa độ của bounding box, tọa độ 5 điểm landmark trên mặt, bao gồm 2 mắt, 1 mũi, 2 bên cánh môi và điểm confident của mỗi box.

Để tăng chất lượng của quá trình training ảnh sẽ được tiền xử lý trước khi đưa vào mạng CNN. Quá trình này bao gồm việc phát hiện vị trí khuôn mặt có trong bức ảnh

39

và cắt phần bounding box chứa khuôn mặt đó. Sau đó ảnh sẽ được resize về một kích thước đặt trước.

Sau đó ảnh sẽ được đưa vào mô hình FaceNet và kết xuất embedding vecto cho từng khuôn mặt. Hàm Triplet loss sẽ tính toán khoảng cách từ embedding vecto của khuôn mặt nhận được với từng embedding vecto có trong FaceList và đưa ra kết quả nhận diện được thông qua việc đánh giá khoảng cách giữa các vecto.

Hình 42: Quá trình tính toán của Triplet loss Hình 41: Tiền xử lý ảnh trong mô hình FaceNet

40 Kết quả nhận diện bằng mô hình FaceNet

Một phần của tài liệu Nghiên cứu, thiết kế hệ thống nhận diện khuôn mặt sử dụng trí tuệ nhân tạo (Trang 49 - 54)