Chương 1. Tổng quan về nhận diện khuôn Chương này sẽ trình bày một số nội dung nền tảng về bài toán nhận diện khuôn mặt, các ứng dụng tương tác người máy liên quan đến nhận diện khuôn mặt, và một số kỹ thuật hay được sử dụng trong bài toán nhận diện khuôn mặt. Nội dung của 2 chương bao gồm ba phần chính. Phần đầu tiên giới thiệu tổng quan về bài toán nhận diện khuôn mặt cùng với các ứng dụng thực tế.
Phần thứ hai giới thiệu 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. Phần cuối cùng giới thiệu một số mạng tích chập thường được sử dụng trong bài toán nhận diện khuôn mặt. Hệ thống nhận diện khuôn mặt dựa trên mạng nơ ron tích chập Các kỹ thuật cơ bản được sử dụng để xây dựng hệ thống nhận diện khuôn mặt của luận văn được trình bày trong chương này. Nội dung của chương trình bày về các phương pháp trích chọn đặc trưng phục vụ quá trình nhận diện khuôn mặt, phương pháp định danh khuôn mặt và mô hình học máy được sử dụng để phân loại dữ liệu nhận diện khuôn mặt.
Chương này cũng bao gồm các thông tin về mô hình, kiến trúc mạng nơ ron tích chập Inception-ResNet sử dụng cho việc trích chọn đặc trưng khuôn mặt của luận văn. Thử nghiệm và đánh giá Chương này mô tả chi tiết về bộ dữ liệu được sử dụng, cùng các kịch bản và kết quả các quá trình huấn luyện mô hình. Các kết quả thực nghiệm kèm theo đánh giá mô hình sau khi huấn luyện cũng được trình bày trong chương này. Nội dung của luận văn được kết thúc bằng phần Kết luận, trong đó trình bày tóm lược các nội dung và kết quả đã đạt được trong luận văn, từ đó đề xuất các hướng phát triển trong tương lại.
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à : 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.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 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) = 𝑊𝑆𝑊 𝑊 𝑇 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.