1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo bài tập lớn môn Đại số tuyến tính Đề tài số 03 phân tích pca Để nhận diện khuôn mặt

46 3 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phân Tích PCA Để Nhận Diện Khuôn Mặt
Người hướng dẫn Cô Phan Thị Khánh Vân
Trường học Trường Đại Học Bách Khoa
Chuyên ngành Đại Số Tuyến Tính
Thể loại Báo Cáo
Năm xuất bản 2024
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 46
Dung lượng 1,79 MB

Cấu trúc

  • PHẦN I....................................................................................................................................................... 6 (6)
    • 1. Hệ thống Sinh trắc học (6)
      • 1.1 Định nghĩa (6)
      • 1.2. Tổng quan lịch sử và vai trò (6)
        • 1.2.1. Lịch sử (6)
        • 1.2.2. Vai trò (7)
    • 2. Hệ thống nhận diện khuôn mặt (8)
      • 2.1. Các pha trong Hệ thống nhận diện khuôn mặt (8)
      • 2.2. Phương pháp nhận diện khuôn mặt (8)
      • 2.3. Ưu điểm và Nhược điểm (15)
  • PHẦN II................................................................................................................................................... 17 (17)
    • 1. Thuật toán PCA (17)
      • 1.1. Lịch sử ra đời (17)
      • 1.2. Tổng quan về phương pháp PCA (18)
      • 1.3. Ứng dụng (19)
      • 1.4. Cơ sở lí thuyết (20)
    • 2. Thuật toán PCA trong Nhận diện khuôn mặt (22)
      • 2.1. Các bước dùng PCA để Nhận diện khuôn mặt (24)
      • 2.2. Ưu điểm và Nhược điểm (27)
  • PHẦN III.................................................................................................................................................. 29 (28)
    • 1. Tổng quan về Phần mềm MatLab (28)
    • 2. Sơ đồ khối hoạt động của chương trình Nhận diện khuôn mặt (30)
    • 3. Chương trình Nhận diện khuôn mặt bằng Phần mềm MatLab (31)
  • PHẦN IV.................................................................................................................................................. 46 (45)
  • TÀI LIỆU THAM KHẢO (45)

Nội dung

Phương pháp này sử dụng kỹthuật giảm chiều để biến đổi các ảnh khuôn mặt thành một không gian mới, trong đó cácthành phần chính là những vector riêng của ma trận hiệp phương sai của tập

6

Hệ thống Sinh trắc học

Sinh trắc học, từ gốc Hy Lạp, có nghĩa là "đo lường sự sống", là lĩnh vực nghiên cứu và ứng dụng các phương pháp đo lường và phân tích đặc điểm sinh học và hành vi con người Lĩnh vực này sử dụng công nghệ tiên tiến như cảm biến sinh học và hình ảnh y học để thu thập dữ liệu về các chỉ số sinh học như nhịp tim, hoạt động não và nhiệt độ cơ thể Sinh trắc học không chỉ giúp hiểu rõ hơn về cơ thể con người mà còn có ứng dụng rộng rãi trong y học, thể thao và công nghiệp.

1.2 Tổng quan lịch sử và vai trò

Trong bối cảnh công nghệ phát triển nhanh chóng trong những thập kỷ gần đây, nhu cầu về bảo mật thông tin và xác thực danh tính ngày càng trở nên cấp thiết Sinh trắc học nổi lên như một giải pháp đáng tin cậy, giúp con người giải quyết vấn đề này hiệu quả.

Hình 1: Dấu vân tay in trên phiến đất sét ở Babylon

Sinh trắc học, một ngành khoa học có nguồn gốc từ xa xưa, lần đầu tiên được W Whewell sử dụng vào năm 1831 để nghiên cứu tuổi thọ của con người Đến khoảng năm 1901, F Galton đã định hình và định nghĩa sinh trắc học với tên gọi Biometrika, đánh dấu sự phát triển quan trọng trong lĩnh vực này.

Việc sử dụng sinh trắc học như một phương tiện xác thực có nguồn gốc từ thời Babylon, với dấu vân tay được áp dụng trên các viên đất sét trong giao dịch kinh doanh vào năm 500 trước Công nguyên Hơn nữa, vào thế kỷ XIV, các thương gia Trung Quốc đã sử dụng lòng bàn tay và dấu chân của trẻ em để nhận dạng.

- Vào năm 1880, dấu vân tay đã được coi là một sinh trắc học đáng tin cậy và quan trọng.

Henry Faulds đã nhấn mạnh trong tạp chí Nature rằng dấu vết máu hoặc ấn tượng trên các bề mặt như đất sét và kính có thể giúp xác định tội phạm một cách khoa học Ông đã có kinh nghiệm trong hai vụ án cho thấy sự tiến bộ không thể phủ nhận khi có cả hình ảnh và bản sao tự nhiên của các rãnh vân tay không thay đổi của những tội phạm quan trọng.

Sự tiến bộ của công nghệ đã chuyển đổi quy trình xác thực từ việc lăn tay và lưu trữ trên giấy sang việc quét và lưu trữ kỹ thuật số với nhận dạng tự động Điều này không chỉ nâng cao hiệu quả mà còn mở rộng khả năng tiếp cận các hình thức sinh trắc học đa dạng, trong đó nổi bật nhất là công nghệ nhận diện khuôn mặt.

Sinh trắc học là một phương pháp xác thực danh tính an toàn và đáng tin cậy hơn so với các phương pháp truyền thống như mật khẩu hay mã pin Các đặc điểm sinh học của con người là duy nhất và không thể thay đổi, giúp ngăn chặn gian lận và truy cập trái phép hiệu quả.

Sinh trắc học đóng vai trò quan trọng trong quản lý truy cập, cho phép người dùng dễ dàng truy cập vào các hệ thống, tài sản và khu vực Ví dụ, công nghệ sinh trắc học có thể được áp dụng để mở khóa điện thoại, máy tính hoặc cửa văn phòng, nâng cao tính bảo mật và thuận tiện trong việc sử dụng.

- Thận trọng: Sinh trắc học có thể được sử dụng để phát hiện và ngăn chặn hành vi phạm tội.

Ví dụ, sinh trắc học có thể được sử dụng để xác định các tội phạm hoặc truy tìm những người mất tích.

Sinh trắc học là công cụ hữu ích trong việc theo dõi sức khỏe và bệnh tật, cho phép phát hiện sớm các bệnh, đánh giá hiệu quả của phương pháp điều trị, và nhận diện những cá nhân bị mất trí nhớ.

Hệ thống nhận diện khuôn mặt

2.1 Các pha trong Hệ thống nhận diện khuôn mặt

2.2 Phương pháp nhận diện khuôn mặt

Phương pháp nhận diện khuôn mặt đã trải qua nhiều giai đoạn phát triển từ những năm 1960, với Woodrow Wilson Bledsoe là người tiên phong Ông đã phát triển hệ thống phân loại ảnh khuôn mặt bằng thiết bị nhập liệu máy tính đồ họa, ghi lại các toạ độ vị trí của các đặc điểm như miệng, mũi, mắt và đường viền tóc Dựa trên cơ sở dữ liệu các khuôn mặt đã ghi lại, hệ thống so sánh ảnh mới với cơ sở dữ liệu để xác định sự giống nhau gần nhất với ảnh đầu vào.

Hình 2: Quy trình nhận diện khuôn mặt (Techniques and Challenges of Face Recognition: A Critical Review by Shilpi Singh & a,S.V.A.V.Prasad )

Phương pháp nhận diện khuôn mặt đã gặp nhiều hạn chế trong những năm 1970 do công nghệ không đủ mạnh để xử lý các tính toán phức tạp, chủ yếu dựa vào quá trình tính toán thủ công Đến cuối thập kỷ 80 và đầu thập kỷ 90, lĩnh vực này đã chứng kiến những bước tiến đáng kể với sự phát triển của ứng dụng đại số tuyến tính Phương pháp Eigenface, do Sirovich và Kirby áp dụng, đã mang lại một cách tiếp cận mới bằng cách biểu diễn hình ảnh khuôn mặt trong không gian chiều thấp.

Các phương pháp kỹ thuật công nghệ nhận diện khuôn mặt hiện nay được nghiên cứu và phát triển dựa trên các cách tiếp cận khác nhau trong việc xử lý và phân tích dữ liệu.

A Template/Statistical/Neural Networks based (Cách tiếp cận dựa trên mẫu/thống kê/mạng thần kinh) Đây là hướng tiếp cận phổ biến nhất với nhiều công cụ và phương pháp khác nhau như:

 Template matching (Đối sánh mẫu)

Đối sánh mẫu là kỹ thuật xử lý ảnh kỹ thuật số nhằm tìm kiếm các phần nhỏ của ảnh phù hợp với ảnh mẫu Trong quá trình này, các đặc trưng được biểu diễn dưới dạng mẫu, mô hình, pixel hoặc kết cấu Chức năng nhận dạng thường được thực hiện thông qua các phép tính tương quan hoặc khoảng cách.

Nhược điểm của việc chụp ảnh là phụ thuộc vào nhiều yếu tố ngoại cảnh, bao gồm sự thay đổi của ánh sáng, góc chụp, tương phản màu sắc và tư thế chụp Ngoài ra, hình ảnh cũng có thể bị che khuất một phần, ảnh hưởng đến chất lượng tổng thể.

 Statistical Approach (Phương pháp tiếp cận thống kê)

Trong lĩnh vực thống kê, các mẫu được thể hiện qua các đặc trưng riêng biệt, với mỗi hình ảnh đại diện cho một đặc trưng cụ thể Mục tiêu chính là lựa chọn và sử dụng công cụ thống kê phù hợp để khai thác và phân tích dữ liệu hiệu quả Nhiều công cụ thống kê hiện có được áp dụng trong việc nhận diện khuôn mặt, giúp cải thiện độ chính xác và hiệu suất trong quá trình phân tích.

 PCA (Principal Component Analysis – Phân tích thành phần chính)

Thuật toán thống kê này sử dụng phép biến đổi trực giao để chuyển đổi dữ liệu từ không gian nhiều chiều sang không gian ít chiều hơn (2 hoặc 3 chiều), nhằm tối ưu hóa việc thể hiện sự biến thiên của dữ liệu.

 LDA (Linear discriminant analysis – Phân tích phân biệt tuyến tính)

LDA, hay Phân tích phân biệt tuyến tính, được sử dụng phổ biến để tìm kiếm sự kết hợp tuyến tính của các đặc trưng mà vẫn giữ nguyên khả năng phân tách các lớp Khác với PCA, LDA tập trung vào việc mô hình hóa sự khác biệt giữa các cấp độ Đối với mỗi cấp độ, LDA xác định sự khác biệt thông qua vectơ chiếu.

Trong nhận dạng khuôn mặt trên máy tính, mỗi khuôn mặt được biểu diễn bằng nhiều giá trị pixel Phân tích phân biệt tuyến tính (LDA) được sử dụng để giảm số lượng đặc điểm xuống mức dễ quản lý trước khi phân loại Mỗi chiều mới là sự kết hợp tuyến tính của các giá trị pixel, tạo thành một mẫu nhận dạng hiệu quả.

 DCT (Discrete cosine transform – Biến đổi cosin rời rạc)

Phương pháp này thể hiện một chuỗi điểm dữ liệu liên quan đến tổng hàm cosin và các tần số dao động khác nhau DCT, dựa trên biến đổi rời rạc Fourier, cho phép nén các biến thể, từ đó có thể sử dụng để biến đổi hình ảnh và giảm chiều hiệu quả.

Bộ lọc Gabor có khả năng phân tích hình ảnh tương tự như hệ thống thị giác của con người, nhờ vào việc kiểm soát hướng của cạnh để trích xuất đặc trưng Các tế bào đơn giản trong vỏ não thị giác có thể được coi là một tập hợp các wavelets 2D Gabor tự giống nhau.

 ICA (Independent Component Analysis – Phân tích thành phần độc lập)

Khác với PCA, phương pháp ICA tìm kiếm sự biến đổi dữ liệu thông qua các kết hợp tuyến tính của các điểm dữ liệu độc lập về mặt thống kê Mục tiêu chính của ICA là cung cấp một biểu diễn hình ảnh độc lập, thay vì tập trung vào các mối tương quan, từ đó giúp tái cấu trúc dữ liệu một cách hiệu quả hơn.

Phương pháp PCA phi tuyến tính là một phần mở rộng của PCA truyền thống, sử dụng phương pháp hạt nhân để thực hiện Cốt lõi của phương pháp này là áp dụng ánh xạ phi tuyến cho dữ liệu đầu vào, sau đó thực hiện PCA tuyến tính trong không gian con đặc trưng đã được tạo ra.

 Neural Networks (Mạng thần kinh)

Mạng nơ-ron tiếp tục áp dụng kỹ thuật nhận dạng và phân loại mẫu, cho phép nhận diện các khuôn mặt đã được căn chỉnh và chuẩn hóa Nhiều phương pháp khác nhau hỗ trợ việc trích xuất đặc trưng bằng mạng nơ-ron, và khi kết hợp với các công cụ như PCA hoặc LCA, chúng tạo ra một bộ phân loại kết hợp hiệu quả cho việc nhận dạng khuôn mặt.

 Mạng thần kinh với bộ lọc Gabor

 Mạng thần kinh với mô hình Markov ẩn

B Geometric Based/ Template Based (Cách tiếp cận dựa trên hình học/ khuôn mẫu)

 Các phương pháp dựa trên khuôn mẫu có thể được xây dựng bằng cách sử dụng các công cụ như:

 PCA (Principal Component Analysis – Phân tích thành phần chính)

 LDA (Linear Discriminant Analysis – Phân tích phân biệt tuyến tính)

17

Thuật toán PCA

Phân tích thành phần chính (Principal Component Analysis - PCA) được hiểu từ nhiều góc độ khác nhau Đối với các nhà thống kê cổ điển, PCA là quá trình xác định các trục chính của ellipsoid nhiều chiều, phản ánh sự phân bố chuẩn nhiều chiều của dữ liệu Các trục này được ước lượng từ một mẫu n cá thể, trong đó mỗi cá thể được đo p chỉ tiêu Kỹ thuật này lần đầu tiên được giới thiệu bởi H Hotelling vào năm 1933, sau đó được phát triển bởi T.W Anderson vào năm 1958 và A.M Kshirsagar vào năm 1972.

Kỹ thuật phân tích nhân tố cổ điển được áp dụng khi các phương sai gần như bằng không, theo nghiên cứu của Horst (1965) và Harman (1966) Phương pháp này thường được sử dụng trong lĩnh vực phân tích tâm lý.

PCA, hay Phân tích thành phần chính, được coi là một kỹ thuật tối ưu trong việc biểu diễn dữ liệu theo tiêu chuẩn đại số và hình học, không yêu cầu giả thuyết thống kê hay mô hình đặc biệt Quan điểm này ngày càng phổ biến với sự phát triển của máy tính điện tử và được K Pearson đề xuất vào năm 1901 C.R Rao đã trình bày lý thuyết về PCA một cách rõ ràng và đơn giản trong công trình của ông vào năm 1964.

Phương pháp PCA (Phân tích thành phần chính) có ứng dụng rộng rãi trong nhiều lĩnh vực như công nghiệp, nông nghiệp, kinh tế và khoa học cơ bản Phương pháp này sử dụng bảng số liệu với các cột đại diện cho các biến và các dòng là các cá thể, giúp đo lường giá trị của từng biến một cách hiệu quả.

1.2 Tổng quan về phương pháp PCA

Phân tích thành phần chính (PCA) là một ứng dụng nổi bật của đại số tuyến tính, được sử dụng rộng rãi trong các khuôn mẫu phân tích Phương pháp này không cần tham số và giúp đơn giản hóa việc trích xuất thông tin quan trọng từ các tập dữ liệu phức tạp PCA cung cấp hướng đi để giảm thiểu kích thước của tập dữ liệu, từ đó làm nổi bật thông tin ẩn trong các tập dữ liệu không rõ ràng.

Để phân tích một hiện tượng, việc đo lường các đại lượng trong hệ thống là cần thiết, nhưng dữ liệu có thể mù mờ và dễ gây nhầm lẫn Thuật toán PCA rất hữu ích trong việc xử lý dữ liệu dư thừa và nhiễu Nó chuyển đổi tập dữ liệu thành một dạng dễ quan sát và phân biệt hơn Trong một hệ thống liên tục và tuyến tính, các đo lường được đưa vào không gian vector, nơi mỗi thể hiện của hệ thống là một vector Phép biến đổi tuyến tính sẽ giúp ánh xạ dữ liệu gốc vào một tập dữ liệu mới, giảm thiểu sự dư thừa và nhiễu.

- Tổng quan về phương pháp PCA PCA là phương pháp:

 Loại bỏ thành phần phụ

 Không ảnh hưởng nhiều dữ liệu so với dữ liệu gốc

- Lợi ích của phương pháp PCA:

 Giảm chiều dữ liệu nhưng vẫn giữ được độ chính xác nhất định so với dữ liệu ban đầu

 Dễ quan sát, nắm bắt thông tin, nhận biết sự tương quan

 Giúp ta tính toán nhanh hơn với độ chính xác cao

Phương pháp Phân tích thành phần chính (PCA) là một kỹ thuật thống kê hiệu quả giúp giảm số chiều của dữ liệu mà vẫn bảo toàn các đặc trưng quan trọng PCA được ứng dụng rộng rãi trong nhiều lĩnh vực như Công nghệ thông tin, Sinh học và đặc biệt là trong Tài chính, nơi nó hỗ trợ phân tích và tối ưu hóa dữ liệu.

1 Trong tài chính: Phân tích rủi ro, PCA có thể giúp xác định các yếu tố chính ảnh hưởng đến biến động của giá cổ phiếu, trái phiếu, hoặc các sản phẩm tài chính khác Bằng cách sử dụng các thành phần chính, ta có thể đo lường rủi ro của danh mục đầu tư và tối ưu hóa lợi nhuận. Ngoài ra còn có thể phân tích hành vi người tiêu dùng, phân tích dữ liệu tài chính, phân tích thị trường, …

2 Trong sinh học: Phân tích di truyền, PCA có thể giúp phân loại các mẫu di truyền dựa trên các đặc điểm di truyền của chúng, như số lượng, tần số, hoặc đa dạng của các đoạn DNA. Bằng cách sử dụng các thành phần chính, ta có thể nhận biết được các mối quan hệ di truyền giữa các mẫu và các nhóm di truyền Ngoài ra còn phân tích biểu hiện gen, phân tích hình ảnh sinh học, …

3 Trong giáo dục nhà trường: Phân tích dữ liệu học sinh, PCA có thể giúp phân tích các dữ liệu về điểm số, năng lực, sở thích, hoặc hành vi học tập của học sinh Bằng cách sử dụng các thành phần chính, ta có thể nhóm các học sinh có đặc điểm tương đồng và đưa ra các phương pháp giảng dạy, đánh giá, hoặc tư vấn phù hợp Ngoài ra còn phân tích: phân tích dữ liệu giáo viên, phân tích dữ liệu giáo dục.

- PCA có nhiều ứng dụng trong công nghệ dữ liệu, ví dụ như:

1 Nhận dạng khuôn mặt: PCA có thể giúp trích xuất các đặc trưng chính của khuôn mặt từ các ảnh và sử dụng chúng để phân biệt các khuôn mặt khác nhau.

2 Phân tích dữ liệu nhiều chiều: PCA có thể giúp giảm số lượng các biến trong dữ liệu và tạo ra các biến mới không tương quan với nhau Điều này giúp cho việc phân tích dữ liệu dễ dàng và hiệu quả hơn.

3 Trực quan hóa dữ liệu: PCA có thể giúp biểu diễn dữ liệu nhiều chiều trên các đồ thị hai hoặc ba chiều, giúp cho việc nhìn nhận và hiểu dữ liệu trở nên rõ ràng hơn.

4 Nén dữ liệu: PCA có thể giúp giảm dung lượng lưu trữ của dữ liệu mà vẫn giữ được các thông tin cần thiết.

- Giá trị trung bình (Kì vọng):

+ Với bảng số liệu, phương sai thể hiện sự đặc trưng độ phân tán các số liệu trong tập dữ liệu so với giá trị trung bình. σ 2 =∑ i=1 n

+ Là độ đo sự biến thiên cùng nhau của 2 biến ngẫu nhiên.

Cov(X ,Y)=∑ i=1 n ( X i − X )( Y i − Y ) n−1 + Hiệp phương sai hai biến ngẫu nhiên X và Y cho biết mối tương quan giữa X và Y. + Giá trị hiệp phương sai không quan trọng bằng dấu của nó

 Nếu giá trị hiệp phương sai mang giá trị dương thì X và Y tăng hoặc giảm cùng nhau.

 Nếu giá trị hiệp phương sai mang giá trị âm thì X tăng khi Y giảm hoặc ngược lại.

 Nếu giá trị hiệp phương sai bằng không thì X và Y độc lập với nhau.

Hiệp phương sai là một công cụ quan trọng giúp xác định mối liên hệ giữa các chiều trong tập dữ liệu có số chiều lớn Đặc biệt, hiệp phương sai của một biến được tính bằng phương sai của chính biến đó.

Các vector trong không gian vector có thể được coi là một biến ngẫu nhiên nhiều chiều, trong đó mỗi thành phần của vector là một biến ngẫu nhiên vô hướng Giả sử chúng ta có vector sau:

+ Ma trận hiệp phương sai của X có dạng như sau:

S= 1 n−1X T X ¿[ Cov Cov Cov ( ( ( X X X ⋮ 1 2 n , X , X , X 1 1 1 ) ) ) Cov Cov Cov ( ( ( X X X ⋮ 1 2 2 , X , X , X 2 2 n ) ) ) ⋱ ⋯ ⋯ ⋯ Cov Cov Cov ( ( ( X X X ⋮ 1 2 n , X , X , X n n n ) ) ) ]

+ Ta có nhận xét sau về ma trận hiệp phương sai:

 Đường chéo ma trận là phương sai của các thành phần của vecto ngẫu nhiên X.

 Các vị trị không phải là đường chéo cho thấy mối tương quan dữ liệu theo các chiều tương ứng trong vector ngẫu nhiên X.

 Ma trận S là ma trận đối xứng.

Thuật toán PCA trong Nhận diện khuôn mặt

PCA, được phát minh bởi Karl Pearson vào năm 1901, là một phương pháp xử lý dữ liệu nhằm giảm thiểu sự dư thừa trong tập dữ liệu Thuật toán này giúp giảm số lượng biến xuống còn một số thành phần chính, rất quan trọng trong nhận diện ảnh, nơi mà số lượng và kích thước ảnh tạo ra thách thức trong không gian nhiều chiều Mục tiêu của PCA trong nhận diện khuôn mặt là giảm chiều dữ liệu trong khi vẫn giữ lại càng nhiều biến thiên từ tập dữ liệu gốc, mặc dù điều này có thể dẫn đến mất mát thông tin Không gian giảm chiều tối ưu sẽ được xác định qua các thành phần chính tốt nhất.

Phương pháp nhận diện khuôn mặt sử dụng PCA giúp giảm kích thước cơ sở dữ liệu bằng cách loại bỏ các vector riêng bằng không và các vector có giá trị riêng rất nhỏ Điều này làm nổi bật các đặc trưng của ảnh, tăng khả năng phân biệt nhờ giảm mối tương quan giữa các chiều trong tập dữ liệu huấn luyện Kỹ thuật này căng không gian vector của ảnh huấn luyện, từ đó cho phép tính khoảng cách ngắn nhất với ảnh cần nhận dạng, giúp dễ dàng tìm ra ảnh tương tự trong cơ sở dữ liệu.

Trong phương pháp này, hình ảnh được lưu trữ dưới dạng các vector đặc trưng trong cơ sở dữ liệu, thông qua việc ánh xạ từng ảnh huấn luyện vào không gian khuôn mặt riêng Các đặc trưng này có thể liên quan hoặc không liên quan đến các yếu tố như mắt, mũi, miệng hoặc tóc Ảnh nhận diện sau đó được chiếu vào không gian khuôn mặt riêng và so sánh với các ảnh đã lưu trong cơ sở dữ liệu.

Phương pháp khuôn mặt riêng là một kỹ thuật hiệu quả trong nhận diện khuôn mặt nhờ vào tính đơn giản, tốc độ nhanh và khả năng học tập của nó Các khuôn mặt riêng được xem là các thành phần chính trong phân bố khuôn mặt, tương ứng với các vector riêng của ma trận hiệp phương sai từ ảnh khuôn mặt, trong đó mỗi ảnh NXN pixel được coi như một điểm trong không gian N² chiều Mỗi ảnh huấn luyện tương ứng với một vector riêng, cho phép chúng ta coi các vector này như các loại khuôn mặt Từng ảnh khuôn mặt có thể được biểu diễn chính xác bằng tổ hợp tuyến tính của các khuôn mặt riêng, với số lượng khuôn mặt riêng tương ứng với số lượng ảnh trong tập huấn luyện Ngoài ra, các khuôn mặt cũng có thể được biểu diễn gần đúng thông qua các khuôn mặt riêng tốt nhất, tương ứng với các giá trị riêng lớn nhất, đại diện cho phương sai lớn nhất trong tập ảnh.

2.1 Các bước dùng PCA để Nhận diện khuôn mặt

Khuôn mặt con người chứa đựng nhiều đặc điểm nhận diện, cho phép chúng ta nhận ra bạn bè dù đã lâu không gặp Sự nhận diện không chỉ dựa vào những chi tiết như mắt, mũi, môi hay tóc, mà còn từ diện mạo tổng thể của người đó Điều này cho thấy rằng trên khuôn mặt có một nét tổng thể giúp chúng ta dễ dàng nhận ra người khác, và thuật toán nhận diện cũng bắt nguồn từ ý tưởng này.

Phân tích thành phần chính (PCA) là một thuật toán nhận dạng ảnh hiệu quả, tập trung vào những đặc điểm tổng quát của khuôn mặt Thuật toán này sẽ được áp dụng để thực hiện hai nhiệm vụ chính trong quá trình nhận diện khuôn mặt.

 Thứ nhất là tìm một khuôn mặt giống với khuôn mặt cho trước

 Thứ hai là xác định vị trí những khuôn mặt người trong bức ảnh

Bắt đầu với một tập ảnh khuôn mặt làm tập huấn luyện, mỗi bức ảnh có kích thước M × N được coi là một vector trong không gian M*N chiều Các vector này không phân bố ngẫu nhiên mà theo một quy luật nhất định, tạo thành một không gian con gọi là không gian khuôn mặt Từ tập huấn luyện, chúng ta sẽ xác định một cơ sở trực chuẩn cho không gian khuôn mặt, trong đó các vector thuộc cơ sở này đại diện cho những đặc trưng tổng thể của khuôn mặt.

- Giả sử tập huấn luyện có P ảnh , khi đó ta sẽ có P vector : T 1 , T 2 ,…,T P

+ Tính vector ảnh trung bình: m=1

+ Sự khác biệt giữa những khuôn mặt với ảnh trung bình là những vector :

Ý tưởng của phân tích thành phần chính (PCA) là tìm một tập hợp các vector trực chuẩn \( u_k \) nhằm mô tả một cách tối ưu sự phân bố của các vector khuôn mặt trong không gian Các vector \( u_k \) được lựa chọn để tối đa hóa khả năng giải thích biến thiên trong dữ liệu.

 Những vector u k và giá trị vô hướng λ k chính là những vector riêng và trị riêng tương ứng của ma trận A A T

 ⟨u∨v⟩ là tích vô hướng giữa hai vector u, v.

Ma trận A có kích thước M*N × P, trong khi ma trận A A T có kích thước M*N × M*N Do kích thước lớn của ma trận này, việc tìm kiếm các vector riêng và trị riêng trực tiếp là không khả thi Thay vào đó, chúng ta sẽ tìm các vector riêng của ma trận A T A có kích thước P×P.

 Nếu v là một vector riêng của A T A và λ là trị riêng tương ứng, khi đó ta có:

→ Tức là Av là một trị riêng của ma trận A A T

 Thông thường ta chỉ lấy một số Q, vector riêng ứng với Q trị riêng có giá trị lớn nhất.

+ Sau khi có các vector riêng của ma trận A A T , ta sẽ chuẩn hóa chúng để thu được một cơ sở trực chuẩn của không gian khuôn mặt.

 Đặt L=A T A , tìm V là tập hợp các vector riêng của L, D là tập hợp các trị riêng tương ứng.

 V bao gồm Q vector riêng ứng với những trị riêng lớn hơn một giá trị nào đó hoặc ứng với Q trị riêng lớn nhất trong D.

E = AV là tập hợp các vector riêng của A A T, được gọi là Eigenfaces do chúng có hình dạng giống khuôn mặt Ma trận E có kích thước M*N×Q, trong đó mỗi cột đại diện cho một vector riêng.

 Chuẩn hóa các vector cột trong E (chia mỗi vector cho độ dài của vector đó).

→Bây giờ, ta có thể coi E là một cơ sở trực chuẩn của không gian khuôn mặt.

Để xác định xem bức ảnh H có phải là bức ảnh khuôn mặt hay không, chúng ta sẽ so sánh kích thước của nó với các bức ảnh trong tập huấn luyện Đồng thời, chúng ta cũng sẽ tìm kiếm bức ảnh tương tự nhất với H trong tập huấn luyện.

+ H được xem là một vector trong không gian M*N chiều Đặt K =H−m với m là vector ảnh trung bình.

Cho V là không gian vô hướng hữu hạn chiều và W là không gian con của V Giả sử W có cơ sở trực chuần { u1, …, uQ } Hình chiếu trực giao của một vector u lên W được xác định theo cách cụ thể.

 Độ dài ‖ u−u 0 ‖ được gọi là khoảng cách từ u đến W.

 Tập hợp c i =⟨ u ∨ u i ⟩ ,i = 1 , … ,Q được gọi là tọa độ của u 0 trong không gian W.

 Tìm C=E T K là tọa độ của hình chiếu K f của K lên không gian khuôn mặt C là vector cột Q×1

 Với A i là một cột trong ma trận A (tương ứng với bức ảnh T i trong tập huấn luyện).

Ta tính C i =E T A 1 là tọa độ của hình chiếu A if của A i lên không gian khuôn mặt. + Ta tính hai đại lượng sau:

 s= ‖ K − K f ‖ xem như khoảng cách từ bức ảnh H đến không gian mặt

 s i = ‖ C − C i ‖ xem như khoảng cách từ H đến bức ảnh T i trong tập huấn luyện

Khi xét hai ngưỡng α và β, nếu s nhỏ hơn α, thì H được xác định là bức ảnh khuôn mặt vì H gần với không gian mặt Ngược lại, nếu s i nhỏ hơn β, thì T i sẽ là bức ảnh của cùng một người với H, tức là H cũng gần với T i.

Chúng ta có khả năng tìm kiếm bức ảnh trong tập huấn luyện tương ứng với bức ảnh H và xác định xem đó có phải là bức ảnh khuôn mặt hay không Để thực hiện điều này, bức ảnh H cần phải có kích thước giống như các bức ảnh trong tập huấn luyện Trong trường hợp bức ảnh lớn H chứa nhiều khuôn mặt, chúng ta sẽ xác định vị trí của từng khuôn mặt trong bức ảnh đó.

+ Tại mỗi vị trí (x, y) trong H , đặt H (x , y) là một vùng trong ảnh H có kích thước M×N tạ i (x,y) , ta xem ảnh con H (x , y) là một vector M*N chiều

 Tìm K f (x , y) là hình chiếu của K (x , y)lên không gian khuôn mặt.

 Tập hợp các giá trị s (x , y) tạo thành một bản đồ khuôn mặt (face map) của H , từ đó ta có thể xác định vị trí những khuôn mặt trong ảnh.

2.2 Ưu điểm và Nhược điểm

Việc cài đặt hệ thống nhận diện khuôn mặt rất đơn giản Đối với bài toán tìm kiếm khuôn mặt giống nhau, ta có thể áp dụng lý thuyết hiện có với độ chính xác cao Tuy nhiên, để xác định vị trí khuôn mặt, cần sử dụng thêm một thuật toán khác nhằm khai thác face map theo lý thuyết đã được phát triển.

29

Tổng quan về Phần mềm MatLab

MATLAB, giống như các ngôn ngữ lập trình phổ biến như Java và C#, sở hữu môi trường phát triển tích hợp (IDE) và bộ thư viện riêng Được biết đến với tên gọi "ngôn ngữ lập trình mảng", MATLAB là viết tắt của "Matrix Laboratory" và thuộc thế hệ thứ tư Với thiết kế đa mô hình, MATLAB hỗ trợ nhiều phương pháp lập trình khác nhau, bao gồm lập trình chức năng, lập trình trực quan và lập trình hướng đối tượng.

- Các ứng dụng đa dạng của MATLAB bao gồm:

 Thực hiện đại số tuyến tính.

 Vẽ đồ thị cho các bộ dữ liệu lớn.

 Trực quan hóa và phân tích dữ liệu.

 Tính toán ma trận số học.

So với các ngôn ngữ lập trình bậc thấp, MathLab nổi bật với tính dễ tiếp cận và sử dụng, nhờ vào giao diện người dùng trực quan và khả năng tương thích với các nền tảng độc lập Điều này giúp MathLab trở thành lựa chọn lý tưởng cho những ai nghiên cứu trong lĩnh vực toán học chuyên biệt.

Chương trình Nhận diện khuôn mặt bằng Phần mềm MatLab

Chương trình “Nhận dạng mặt người trên Matlab” được phát triển trên giao diện người dùng GUI của phần mềm Matlab 7.0, mang đến sự đơn giản và dễ sử dụng cho người dùng.

- Để mở chương trình ta khởi động phần mêm matlab và chạy file giaodien.fig

Các tệp dữ liệu chứa code

- Đây chính là giao diện giới thiệu của chương trình Trên giao diện có 2 nút nhấn Next và

Close Nếu chọn Close, sẽ thoát khỏi chương trình Nếu chọn Next, ta sẽ đến giao diện tiếp theo của chương trình chính.

Giao diện chính của chương trình bao gồm hai khung hiển thị hình ảnh và hai nút nhấn Browse và Search Để bắt đầu tìm kiếm, người dùng cần tải ảnh khuôn mặt cần kiểm tra bằng cách nhấn vào nút Browse Sau đó, hộp thoại mở file sẽ xuất hiện, cho phép bạn chọn file ảnh cần kiểm tra, ví dụ như ảnh “ảnh_test_2”.

Chọn ảnh cần kiểm tra

- Ảnh cần kiểm tra sẽ được đưa ra giao diện chương trình chính như hình: Ảnh cần kiểm tra

Để xác minh khuôn mặt trong bức ảnh, người dùng chỉ cần nhấn nút "Search" Chương trình sẽ tiến hành tìm kiếm trong cơ sở dữ liệu (CSDL) các bức ảnh có khuôn mặt tương đồng với khuôn mặt cần kiểm tra và hiển thị kết quả trên giao diện chính của chương trình.

- Chương trình sẽ tìm ra khuôn mặt gần giống nhất với khuôn mặt cấn kiểm tra Và ở đây kết quả tìm được là hình có tên “8.jpg”.

Code chương trình: function varargout = giaodien(varargin) gui_Singleton = 1; gui_State = struct('gui_Name', mfilename,

'gui_Callback', []); if nargin && ischar(varargin{1}) gui_State.gui_Callback = str2func(varargin{1}); end function giaodien_OpeningFcn(hObject, eventdata, handles, varargin) handles.output = hObject;

% Update handles structure guidata(hObject, handles); clc;

The function `giaodien_OutputFcn` returns outputs to the command line, while the `Search_Callback` function loads the `TestImage` and displays it on the specified axes, `handles.anhtimduoc`.

The output name is generated using the function nhandien with parameters TestImage, m, and A, resulting in an image path created by concatenating TrainPath and OutputName The image is then read and displayed with the title 'Retrieved Image.' Additionally, the image name is set in the user interface with the label 'Image Name:' followed by OutputName The Browse_Callback function is triggered by user interaction to facilitate this process.

[file_name file_path] = uigetfile ('*.jpg','Chon anh kiem tra ','test\2.jpg'); if file_path ~= 0

TestImage = imread ([file_path,file_name]); end axes(handles.anhkiemtra); if file_path ~= 0 imshow(TestImage); end save TestImage; function T = taoCSDL(trainPath)

% trainPath la duong dan toi thu muc csdl anh Thu muc nay ngoai nhung

% file anh con chua nhung file khac co ten : , , Thumbs.db

% Bien tat ca anh kich thuoc MxN thanh vector cot M*Nx1 , su dung

% ham reshape cua Matlab , sau do dat vao ma tran T , cuoi cung ma tran T

% se co kich thuoc M*NxP

The code snippet retrieves the directory contents from a specified training path, counting the number of image files while excluding certain unwanted files such as '.', ' ', and 'Thumbs.db' This process involves iterating through each file in the directory and incrementing a counter for each valid image file found.

% Tao ma tran tu nhung tam anh

In this example, image files are named sequentially as 1.jpg, 2.jpg, and so on The code constructs the file path by converting the integer index to a string and concatenating it with the appropriate file extension The complete file path is then used to read the image, which is subsequently converted to grayscale for further processing.

[dong cot] = size(img); tam = reshape(img',dong*cot,1); % bien anh thanh vector

T = [T tam]; % tang dan kich thuoc ma tran T end function [m, A, E] = taoEF(T)

% T la mot ma tran kich thuoc M*NxP chua tat ca anh trong csdl , moi anh la

% mot vector cot trong ma tran T

% Theo thuat toan PCA ,dau tien ta se tinh ra m la trung binh cua tat ca cac anh

% Sau do ta se lay tung buc anh trong T tru cho anh trung binh , ta se duoc mot ma

% Ta can tim Eigenface la nhung vector rieng cua ma tran A*A' , nhung ma

% tran A*A' kich thuoc là M*NxM*N qua lon , ta se tim nhung vector rieng

% cua ma tran A'*A co kich thuoc PxP Ta se tim nhung vector rieng

% bang ham eig trong MatLab

% Gia su v la mot vector rieng cua ma tran A'*A , khi do A*v la vector

% tap hop nhung vector rieng cua ma tran A*A' goi la Eigenfaces

% A tap hop nhung (anh-anh trung binh )

% E nhung vector rieng cua ma tran A*A'

%tinh toan anh trung binh m = mean(T,2); soanh = size(T,2);

%xuat ra hinh anh cua m show(m,'Anh trung binh');pause;

% tinh do lech giua anh moi buc anh voi anh trung binh

A = []; for i = 1 : soanh temp = double(T(:,i)) - m; % T(:,i): vector cot thu i chinh la mot buc anh if i 0, các phần tử sẽ nằm ở phía trên đường chéo chính, và nếu K < 0, chúng sẽ nằm ở phía dưới đường chéo chính.

Diag(V): Giống như DIAG (V, 0) và đặt vector V trên đường chéo chính.

Sort(X) là hàm dùng để phân loại dữ liệu theo thứ tự tăng dần hoặc giảm dần Đối với các vector, Sort(X) sẽ sắp xếp các phần tử trong vector theo thứ tự tăng dần Khi áp dụng cho ma trận, Sort(X) sẽ sắp xếp từng cột của ma trận theo thứ tự tăng dần Nếu X là một mảng di động chứa chuỗi, Sort(X) sẽ sắp xếp các ký tự trong chuỗi theo thứ tự bảng mã ASCII.

 Norm(X): Chuẩn hóa ma trận và vector X.

 Min(X): Trả về vị trí của phần tử nhỏ nhất của ma trận X.

46

[1] Satish L, Gururaj BI "Use of hidden Markov models for partial discharge pattern classification" IEEE Transactions on Dielectrics and Electrical Insulation April, 2003

Phương pháp nhận diện khuôn mặt là một công nghệ tiên tiến, giúp xác định và xác minh danh tính của một người thông qua các đặc điểm khuôn mặt Công nghệ này sử dụng các thuật toán phức tạp để phân tích hình ảnh và so sánh với cơ sở dữ liệu đã lưu trữ Nhận diện khuôn mặt có ứng dụng rộng rãi trong nhiều lĩnh vực như an ninh, quản lý ra vào và dịch vụ khách hàng Việc áp dụng công nghệ này không chỉ nâng cao hiệu quả công việc mà còn đảm bảo an toàn thông tin.

[3] Barlett, MS (2001) Face image analysis by unsupervised learning Boston: Kluwer International Series on Engineering and Computer Science.

[4] OpenCV (2023) Template matching [Online] Từ: https://docs.opencv.org/3.4/d4/dc6/tutorial_py_template_matching.html

[5] Helsinki University of Technology (2005) What is Independent Component

Analysis: A Demo [Online] Từ: http://research.ics.aalto.fi/ica/icademo/

[6] George Dallas (2013) Principal Component Analysis 4 Dummies: Eigenvectors, Eigenvalues and Dimension Reduction [Online] Từ:

Ngày đăng: 10/12/2024, 16:01

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w