CHƯƠNG 1. TỔNG QUAN VỀ NHẬN DIỆN KHUÔN MẶT 1.1 Tổng quan về nhận diện khuôn mặt cùng với các ứng dụng thực tế của các kỹ thuật nhận dạng khuôn mặt.1 Tổng quan Nhận diện khuôn mặt là một bài toán tổng hợp. Trong đó ta cần các mô đun quan trọng như như xác định vị trí khuôn mặt, trích chọn đặc trưng rồi phân loại. Từ đó ta có thể xác định danh tính người trong ảnh.2 Kiến trúc tổng quát hệ thống nhận diện Hình 1.
Kiến trúc tổng quát về hệ thống nhận diện Nhận ảnh là bộ phận thu nhận ảnh. Ảnh ở đây có thể nhận được qua camera màu hoặc đen trắng. Tiền xử lý ảnh là bước tiền xử lý để nâng cao chất lượng ảnh đầu vào. Vì ảnh thu nhận được có thể bị nhiễu hoặc độ tương phản thấp gây ảnh hưởng đến việc trích chọn đặc trưng cũng như xác định vị trí khuôn mặt.
Tiếp đến là xác định vị trí khuôn mặt. Ở bước này hệ thống sẽ xác định vị trí khuôn mặt và các điểm mắt, mũi, miệng. Trích chọn đặc trưng từ khuôn mặt sẽ thực hiện lấy khuôn mặt trong ảnh gốc để thực hiện trích chọn đặc trưng. Phân loại là bước thực hiện phân loại đặc trưng từ đó sẽ định danh được khuôn mặt đầu vào là ai.
Kết luận là từ kết quả phân loại sẽ đưa ra kết quả nhận diện.3 Ứng dụng Bài toán nhận diện khuôn mặt có rất nhiều ứng dụng trong cuộc sống. Trong đó, một số ứng dụng tiêu biểu không thể không kể đến của bài toán này là hệ thống phát hiện, truy vết tội phạm, hệ thống tìm trẻ lạc, hệ thống điểm danh, chấm công hay ứng dụng nhận diện đối tác, khách hàng VIP. Các bài toán trên hiện đang được sử dụng rất nhiều và thành một phần không thể thiếu trong cuộc sống của mỗi người.2 Một số phương pháp trong nhận diện khuôn mặt thường được áp dụng trong thực tế và nghiên cứu 1.1 Phân tích thành phần chính (PCA) a. Giới thiệu PCA (Principal Components Analysis) [1] là một thuật toán được sử dụng để tạo ra một ảnh mới từ ảnh ban đầu.
Ảnh mới này có kích thước nhỏ hơn nhiều so với ảnh ban đầu nhưng vẫn mang những đặc trưng cơ bản nhất của ảnh cần nhận dạng. Trong nghiên cứu [2], thuật toán PCA thường được sử dụng cho việc trích chọn đặc trưng khuôn mặt. PCA không cần quan tâm đến việc tìm ra các đặc điểm cụ thể của thực thể cần nhận dạng và mối quan hệ giữa các đặc điểm đó. Tất cả các chi tiết đó đều được thể hiện ở ảnh mới được tạo ra từ PCA.
Thuật toán PCA Không gian mới được tạo bởi PCA được cấu thành từ k vectơ đơn vị có chiều là N. Mỗi vectơ được gọi là một Eigenface. Phép biến đổi : A= W= với K<<N W=T.1) Với T là ma trận chuyển đổi, T có kích thước K x N. Gọi M là số ảnh đầu vào, mỗi ảnh được chuyển thành vectơ N chiều.1) ta có tập hợp đầu vào X={x1, x2,…,xM} (xi € RN) (1.2) Trung bình của các vectơ đầu vào : Xtb = (1.3) Sai lệch so với tâm: Φi = xi - xtb (1.4) Gọi A=[ Φ1, Φ2,… ,ΦM ] ta có ma trận tương quan của A là : Luan van 5 (1.AT Gọi các giá trị riêng của C là: λ1, λ2, …, λn sắp xếp theo thứ tự giảm dần, tương ứng với N vectơ riêng u1, u2, …, uN.
Các vectơ riêng này trực giao từng đôi một, Mỗi vectơ riêng ui được gọi là một eigenface. Tập hợp các vectơ ban đầu được biểu diễn trong không gian tạo bởi n eugenface theo mô tả: (1.6) x-xtb = w1u1+ w2u2+…+ wNuN = Chọn lấy K vectơ riêng u tương ứng với K giá trị riêng λ lớn nhất, ta có: x-xtb = w1u1+ w2u2+…+ wNuN= với K<<N (1.7) Vectơ các hệ số khai triển [w1, w2, …, wk] chính là biểu diễn mới của ảnh được tạo ra trong không gian PCA. Ảnh mới vẫn giữ được các đặc điểm chính của ảnh đầu vào. Vectơ [w1, w2, …, wK] được tính theo công thức: (1.(x-xtb) Vấn đề cần giải quyết ở đây là ma trận tương quan C=A.AT có kích thước N2.
Với N=180x200=36000, khối lượng tính toán sẽ rất lớn. Do đó, để tính được các eigenface mà không cần tính cả ma trận C, người ta đưa ra phương pháp tính nhanh dựa vào vectơ riêng và giá trị riêng của ma trận L=AT.A có kích thước MxM với M là số ảnh đầu vào. Gọi vi , μi lần lượt là vectơ riêng và giá trị riêng của ma trận L: AT.9) Nhân cả 2 vế với A, ta có : A.10) Luan van 6 Ta thấy A.vi chính là vectơ riêng của C=A.AT ứng với giá trị riêng μi. Thuật toán PCA thường được sử dụng để trích chọn vectơ đặc trưng.
Không gian chứa vectơ này có số chiều là N=w*h với mỗi bức ảnh có kích thước là w*h pixels. Các bước để trích chọn đặc trưng là tạo một tập X gồm M ảnh (ảnh học), mỗi ảnh có kích thước N, các ảnh được chuyển thành vectơ N chiều.11) Từ đó ta sẽ tính trung bình của tập trên: (1.12) Xtb = Bước tiếp theo là tính sai lệch của ảnh đầu vào với giá trị trung bình trên: Φi = xi - xtb (1.13) Cuối cùng là tìm một tập M vectơ trực giao u biểu diễn phân bố mạnh nhất của tập dữ liệu X. Tập các vectơ u được gọi là eigenface của tập dữ liệu học.Xây dựng các ảnh mới vi theo M vectơ u : v i = u it Φ i Ω=[v1, v2,… ,vM]T (1.14) Trong đó, vi = uit Φi là vectơ đặc tính của ảnh thứ I trong không gian mới. Ω ở đây là tập các eigenface, các thành phần cơ bản cho bức ảnh cần nhận dạng.
Sau khi trích chọn được các vectơ đặc tính, cần đối chiếu vectơ này với cơ sở dữ liệu, từ đó đưa ra kết quả nhận dạng. Trong bài toán, kết quả nhận dạng sẽ là nhận biết được hoặc chưa nhận biết được.2 Phân tích sự khác biệt tuyến tính(LDA) a. Giới thiệu LDA được coi là một phương pháp giảm chiều dữ liệu (dimensionality reduction), và cũng có thể được coi là một phương pháp phân lớp (classification), và cũng có thể được áp dụng đồng thời cho cả hai, tức giảm chiều dữ liệu sao cho việc Luan van 7 phân lớp hiệu quả nhất. Trong nghiên cứu [3], [4] cũng chỉ rõ đây là một thuật toán tốt được sử dụng cùng với các phương pháp khác như mạng nơ-ron nhân tạo hay PCA trong bài toán nhận diện khuôn mặt.
Thuật toán LDA Ý tưởng cơ bản của LDA là tìm một không gian mới với số chiều nhỏ hơn không gian ban đầu sao cho hình chiếu của các điểm trong cùng 1 class lên không gian mới này là gần nhau trong khi hình chiếu của các điểm của các lớp khác nhau là khác nhau. Phương pháp LDA phân loại các lớp chưa biết thành các lớp đã biết, mà ở đó các khuôn mặt tạo thành một lớp và sự khác biệt giữa các khuôn mặt trong một lớp là rất nhỏ. Cả PCA chọn cách thống kê lấy mẫu, chọn lọc để nhận diện khuôn mặt. Thuật toán LDA dựa trên phân tích phân loại phi tuyến của Fisher là phương pháp tính toán chuyển đổi tối đa hóa sự phân tán giữa các lớp trong khi giảm thiểu phân tán trong lớp.
Giải sử ta có các lớp C với 𝜇𝑖 là vectơ trung bình của các lớp i với i = 1, 2,…C. 𝑀𝑖 là số lượng mẫu trong lớp i.15) 𝑐 𝑦=1 Gọi Sw là ma trận tán xạ nội lớp (các phần tử trong lớp) và SB là ma trận tán xạ tương hổ của các lớp thuộc C.16) 𝑖=1 Phương pháp LDA sẽ tìm giá trị W để cực đại hóa hàm mục tiêu H(W) : 𝑊𝑆𝐵 𝑊 𝑇 (1.17) H(W) = 𝑊𝑆𝑊 𝑊 𝑇 Luan van 8 LDA tính toán chuyển đổi tối đa hóa sự phân tán giữa các lớp trong khi giảm thiểu phân tán trong lớp.3 Cây quyết định (Decision Tree) a. Giới thiệu Việc quan sát, suy nghĩ và đưa ra các quyết định của con người thường được bắt đầu từ các câu hỏi. Trong học máy cũng có mô hình đưa ra quyết định dựa vào các câu hỏi như cây quyết định.
Cây quyết định (Decision Tree) là một trong những thuật toán phổ biến của học máy thuộc nhánh học có giám sát. Decision Tree ra đời từ những năm 1975 từ một tác giả có tên Ross Quinlan. Thuật toán này là tiền đề để ra đời những phương pháp dự báo theo dòng Tree-based method như là: Random Forest, Bagging, AdaBoost, Gradient Boosting Machine. Mô hình cây quyết định thuộc nhóm các bài toán học có giám sát (supervised learning).
Mô hình này có thể sử dụng vào cả hai loại bài toán phân loại (classification) và hồi quy (regression) theo [5]. Hiện nay, mô hình cây quyết định vẫn còn được sử dụng rất nhiều trong các nghiên cứu cũng như ứng dụng [6]. Thành phần Một cây quyết định được bao gồm 4 thành phần như sau: root node, internal node, leaf node, dept. Trong đó root node là nhánh chia đầu tiên của cây quyết định.
Internal node là các nhánh chia tiếp theo của cây quyết định. Leaf node là các nhánh cuối cùng của một quyết định. Dept sẽ quy định tầng của cây Luan van 9 Hình 1. Thành phần cây quyết định c.
Hàm số entropy Trên thực tế ta sẽ sẽ có một bảng dữ liệu với rất nhiều biến. Decision Tree sẽ sử dụng một vài chỉ số để đưa ra việc xác định câu hỏi và thứ tự các biến nào chia dữ liệu để tạo ra Decision Tree có khả năng phân loại tốt nhất. Các hệ số này là Gini và Cross-Entropy. Để tìm nghiệm cho các bài toán có nhiều thuộc tính và mỗi thuộc tính có nhiều giá trị khác nhau thì ta sẽ sử dụng một phương pháp đơn giản thường được sử dụng là tại mỗi bước, một thuộc tính tốt nhất sẽ được chọn ra dựa trên một tiêu chuẩn nào đó.
Với mỗi thuộc tính được chọn, ta chia dữ liệu vào các child node tương ứng với các giá trị của thuộc tính đó rồi tiếp tục áp dụng phương pháp này cho mỗi child node. Trong đó, hành động chọn ra thuộc tính tốt nhất ở mỗi bước như trên gọi là cách chọn tham lam (greedy). Cách chọn tham lam này có thể không phải là tối ưu nhưng nó đem lại kết quả cũng khá tốt cho bài toán này. Child node sẽ chứa những câu trả lời tương ứng với dữ liệu sau mỗi câu hỏi.
Câu hỏi ở đây được coi như là một thuộc tính và câu trả lời sẽ là giá trị của thuộc tính đó. Để đánh giá chất lượng của một cách phân chia, chúng ta cần đi tìm một phép đo. Và đó là hàm entropy.