Facenet là gì, có ăn được hem :3

Posted by on June 17, 2018 · 5 mins read
Computer Vision   face regconition   deep learning

Facenet là gì, có ăn được hem :3

Hết nghỉ hè rồi :( quyết định viết gì đó cho đỡ chán

Gần đây ta thường nghe đến mấy thứ như faceID, bảo mật bằng gương mặt, bla bla, vì cũng đang ngâm phần này nên để lại note này :3

1.Nhận dạng khuôn mặt là gì????

Trong phim ta hay thấy những tình huống hết sức magical ví dụ như 1 nắc cơ zoom hình lên 1 triệu x, ấn ấn vài phát rồi hình nét như chụp bằng Leica :))) hay magical hơn như là ấn ấn mấy cái là load toàn bộ camera an ninh của một thành phố và tìm ra ai đó bằng vài cái nhấp chuột, giống như hình dưới nà:

Face regconition trong phim

Thấy chớ :3 ez tìm Và công nghệ ngày càng tiến bộ thì chúng ta lại càng gần đến cảnh giới đời như phim, ví dụ như anh cả China gần đây công bố hệ thống nhận dạng mặt phê như vầy:

an image alt text Hàng của Chị na nè :3

Vậy làm thế nào mà nhận dạng được :3

2.Khó khăn chủ yếu là gì nạ :3

Về căn bản một hình ảnh là một ma trận (hay đúng hơn là 1 tensor) gồm 3 màu rgb (kiến thức phổ thông thôi) :3

an image alt text

Minh họa của khóa CS231n

Học lớp 1 ta cũng biết là nếu muốn so sánh 2 số thì ta có thể trừ 2 số đó cho nhau là so sánh được, vậy bây giờ tương tự, so sánh mặt bạn với hình cho sẵn trong bộ dữ liệu ta cũng tính hiệu 2 tensor để so sánh thôi :)))

Ví dụ như tính norm L1 của 2 tensor nó ez như vầy cũng nhận dạng mặt đc: d1(I1,I2)=∑p Ip1−Ip2

Nghe thì ez cơ mà làm thì ko :) thực chất so sánh 2 hình được chụp rất khó ra kết quả đúng vì một chút ảnh hưởng môi trường cũng có thể khiến 2 ảnh khác nhau hoàn toàn. Vì vậy giải pháp đặt ra là ta phải trích một số đặc trưng của gương mặt để nhận dạng (feature extract), điều này giống như khi ta nhìn ai đó, ta sẽ nhìn thấy người này mũi cao, thấp,… để nhận biết đó là ai

an image alt text

Các phương pháp cổ điển có thể kể đến như eigenface (chéo hóa vector), pca ( phương pháp tính ), nhưng chúng đều không đủ “ngon: để áp dụng thực tế.Cho đến khi…….

3. Mạng neuron tích chập và facenet ra đời :3

Thực chất mà nói mạng neuron tích chập và machine learning không phải là mới mẻ gì, tiền đề của nó đã có từ thời von Neuman, nhưng chỉ đến ngày nay nhờ sự phát triển của GPU mạng neuron tích chập mới phát triển được đến vậy

an image alt text

Cách tính của lớp tích chập

an image alt text

Mạng neuron tích chập

Để hiểu cho đơn giản CNN hay Mạng neuron tích chập gồm các lớp tích chập sẽ thực hiện các thao tác tách feature của một hình ảnh ra để nhận dạng Facenet, thực chất là một CNN có nhiệm vụ tách các đặc trưng của một ảnh mặt. Điểm đặc biệt tạo nên sự khác biệt của Facenet là nó sử dụng hàm lỗi Triplet để tối thiểu hóa khoảng cách giữa các gương mặt tương đồng và tối đa hóa khoảng cách đến những gương mặt không tương đồng, vì vậy facenet có thể phân biệt rất chính xác người với người

an image alt text

Triplet loss

Sau khi tách được đặc trưng thì ta chỉ cần đơn giản là so sánh đặc trưng đó với các vector đặc trưng của các gương mặt trong bộ dữ liệu là OK <3 Tóm lại đó là cách facenet hay FaceID hoạt động, trích đặc trưng và so sánh. Tất nhiên nói luôn dễ hơn làm, để thực hiên một hệ thống an ninh bằng mặt cần đầu tư thời gian và công sức rất nhiều. an image alt text

Cách CNN tách feature

Written on June 17, 2018