PCA và LDA phân lớp một ảnh khuôn mặt

Một phần của tài liệu NGHIÊN cứu và xây DỰNG hệ THỐNG NHẬN DẠNG mặt NGƯỜI dựa TRÊN ADABOOST (Trang 38 - 43)

Giả sử rằng sau khi tính toán các eigenfaces từ M ảnh trong cơ sở dữ liệu ban đầu, ta giữ lại M’ eigenfaces ứng với M’ giá trị riêng lớn nhất của ma trận L. Các eigenfaces này tạo thành cơ sở của một không gian con M’ chiều từ không gian ảnh gốc N2 chiều .

Gọi ảnh khuôn mặt đầu vào cần nhận dạng là Γ, quá trình phân lớp sẽ diễn ra như sau: Đầu tiên Γ được “chiếu” lên không gian con sinh bởi M’ eigenfaces uk

(nghĩa là biểu diễn k M k ku ∑ = = Γ 1

ω ) sau đó, từ các độ đo khoảng cách hình chiếu của Γ

đến các thành phần, ta phân Γ vào cùng lớp với thành phần có độ đo khoảng cách nhỏ nhất (tức độ lệch giữa Γ và thành phần đó bé nhất).

Ảnh ban đầu Γ được biểu diễn theo các thành phần eigenfaces (hay nói cách khác, được chiếu vào không gian con sinh bởi M’ eigenfaces) bằng toán tử.

Bước 7: Tính ma trận trận vector riêng của Sb: bằng cách tính các vector riêng của ma trận ΦTbΦbứng với các giá trị riêng khác zero: Em =[e1,e2,...,em], với mC−1 và Φbđược lấy từ S)BbΦTb.

Bước 8: Tính m vector đầu tiên quan trọng nhất và những giá trị riêng tương ứng của chúng của SˆBlà:VbEm và Λb =VTSˆBV .

Bước 9: Đặt U =VΛ−b1/2, tính các vector riêng của UTSTOTU,P.

Bước 10: Loại bỏ những vector riêng đó trong P với những giá trị riêng lớn nhất. Gọi PM’ và ΛwM'(≤m) vector riêng và giá trị riêng tương ứng của chúng được chọn. ♦ con M’ 1/2 ' − Λ = Γ UPM w , và có ∑ = L i i x 1 với T i i z x =Γ .

Bước 12: Hơn nữa ta có thể giảm số chiều của xi từ M’ xuống M chiều

bằng cách áp dụng F-LDA lên ∑ = L i i x 1 , và gọi W(=MM) là không gian đầu ra. ♦ Bước 13: y=ϕ(z)=(TW)Tz.

( )(k 1,2,...,M')

ukT

k = Γ−Ψ =

ω (31)

Đặt ΩT =[ω1,ω2,...,ωM'] thì Ω là vector trọng số của ảnh đầu vào Γ sau khi chiếu lên không gian con sinh bởi M’ eigenfaces. Vector này được sử dụng trong thuật toán nhận dạng mẫu để xác định lớp gương mặt nào sẽđặc tả tốt nhất (xấp xỉ gần nhất) ảnh đầu vào. Đồng thời,vector Ω này cũng chính là thông tin khuôn mặt của ảnh đầu vào trong cơ sở dữ liệu ảnh. Ω còn được gọi là vector hệ số eigenface.

Ω chính là đặc trưng của ảnh gương mặt đầu vào.

Một cách đơn giản để xác định lớp nào gần với ảnh đầu vào nhất là dựa vào khoảng cách Euclide 2 2 k k = Ω−Ω ε (32)

trong đó Ωk là vector miêu tả lớp gương mặt thứ k, được xác định bằng cách tính trung bình các kết quả của việc biểu diễn eigenface lên một tập nhỏ các ảnh khuôn mặt của từng cá thể có trong tập huấn luyện. Hay nói cách khác, Ωk là trọng số “ đại diện” cho lớp gương mặt thứ k.

Một ảnh khuôn mặt đầu vào được xác định thuộc lớp gương mặt thứ k khi độ đo khoảng cách εk nhỏ nhất bé hơn một ngưỡng θεk cho trước. Ngược lại, ảnh khuôn mặt được phân vào lớp “chưa biết” và thường được cập nhật để tạo một lớp ảnh khuôn mặt mới.

Khi không chắc chắn rằng ảnh đầu vào có phải là ảnh khuôn mặt người hay không, ta cần hiện một bước kiểm tra, nghĩa là tìm một độ đo khoảng cách ε giữa ảnh đầu vào với không gian khuôn mặt người. Nếu độ đo này bé hơn một ngưỡng cho phép θε cho trước nào đó thì ảnh đầu vào thuộc lớp ảnh mặt người và được đưa vào quá trình nhận diện. Đây là một bước kiểm tra cần thiết cho quá trình nhận diện tựđộng trên các hệ thống máy tính.

Nhận thấy rằng việc lập nên vector các trọng số là tương đương với các việc chiếu ảnh khuôn mặt đầu vào lên không gian các ảnh khuôn mặt có số chiều thấp hơn, các ảnh sẽđược chiếu lên một mẫu vector cho trước. Khoảng cách ε giữa ảnh đầu vào và không gian ảnh khuôn mặt được tính như sau

2 2 f Φ − Φ = ε (33)

(với Φ=Γ−Ψ và ∑ = = Φ M k k k f u 1 ω ) (34)

Kết hp c hai độđo này, ta có 4 trường hp sau:

Ảnh đầu vào gần với không gian khuôn mặt và gần với một lớp nào đó, nghĩa là ε ≤θε và εk ≤θεk, thì ta phân ảnh này vào lớp thứ k.

Ảnh đầu vào gần với không gian khuôn mặt nhưng không gần với một lớp nào cả, nghĩa là ε ≤θε và εk >θεk. Trong trường hợp này, ảnh đầu vào là ảnh khuông mặt người nhưng chưa có trong cơ sở dữ liệu. Ảnh này sẽđược cập nhật vào dữ liệu và cho vào một lớp ảnh khuôn mặt mới.

Ảnh đầu vào không gần với không gian khuôn mặt nhưng gần với một lớp nào đó, nghĩa là ε >θε và εk ≤θεk. Ảnh đầu vào không phải là ảnh mặt người nên ta không tiến hành nhận dạng ảnh này. Nói thêm rằng đây là một trong nhiều trường hợp nhận diện nhầm của máy tính (do chỉ tính độđo khoảng cách đến các lớp gương mặt mà không xác định ảnh đầu vào có phải là ảnh gương mặt hay không).

Ảnh đầu vào không gần với không gian khuôn mặt và cũng không gần với một lớp nào cả, nghĩa là ε >θε và εk >θεk. Khi này, tương tự như trường hợp 3, ta không tiến hành phân lớp và nhận dạng ảnh đầu vào.

Xem xét không gian khuôn mt sau: (adsbygoogle = window.adsbygoogle || []).push({});

Một bức ảnh mặt người, và trọng số những khuôn mặt trong chuỗi huấn luyện, nên tuyến tính với không gian mặt, tổng quát là nó mô tả những bức ảnh xem như giống mặt người. Nói một cách khác, khoảng cách hình chiếu nên nằm trong phạm vi ngưỡng. Có 4 trường hợp có thể xảy ra đối với ảnh đầu vào và các vector thành phần của nó:

•Gần không gian mặt và thuộc một lớp mặt.

•Gần không gian mặt nhưng không thuộc lớp mặt.

•Xa không gian mặt nhưng thuộc lớp mặt.

Trong ví dụ đơn giản ở hình 16 thể hiện 4 hình chiếu của ảnh lên không gian mặt người.

Hình 15- Trong trường hp này s dng 3 eigenfaces µ1,µ2,µ3 và 3 lp mt người (cá th) đã biết trước (Ω1,Ω2,Ω3).

Trong trường hợp đầu tiên, cá thể (khuôn mặt) sẽđược nhận dạng và xác định. Trong trường hợp này sẽ nhận ra cá thể thuộc lớp mặt người nhưng chưa biết.

Hai trường hợp còn lại chỉ ra ảnh không phải là ảnh mặt người. Riêng trường hợp thứ ba sẽ bị nhận dạng sai trong hầu hết hệ thống nhận dạng hiện nay; tuy nhiên sự nhận dạng sai này sẽ bị phát hiện trong hệ thống của tôi bởi vì khoảng cách cần thiết giữa ảnh và không gian con của ảnh mặt người.

Như vậy, quá trình nhận dạng ảnh mặt người dùng các eigenfaces được tóm tắt như sau (giả thiết rằng sau bước phân tích, ta có được M’ eigenfaces uk).

Bước 1

Từảnh đầu vào, xây dựng vector Ω=[ω1,ω2,...,ωM'] với = T(Γ−Ψ)

k

k u

ω với k=(1,2,..,M')

Bước 2

Với mỗi lớp gương mặt trong cơ sở dữ liệu, tính Ωk và εk theo công thức

2 2 k k = Ω−Ω ε , đồng thời chọn trước các ngưỡng θe và θεk. Bước 3

- Nếu ε ≤θε và εk >θεk thì ảnh đầu vào chưa có trong cơ sở dữ liệu ảnh và thường được phân vào một lớp mới trong cơ sở dữ liệu.

- Nếu không thuộc vào hai trường hợp trên, thì ảnh đầu vào không là ảnh mặt người nên ta không phân lớp ảnh đó.

Chương 5

CÀI ĐẶT CHƯƠNG TRÌNH

5.1. Gii thiu

Chương trình được cài đặt trên môi trường Matlab 7.1 chương trình nhằm mục đích xây dựng hệ thống nhận dạng khuôn mặt người dựa vào thông tin khuôn mặt trên ảnh tĩnh và ảnh chụp từ Webcam với phương pháp PCA và LDA và phương pháp dò tìm AdaBoost.

Cho phép nhận dạng ảnh tĩnh

Cho phép chọn webcam để thử nghiệm nhận dạng

Dùng ngôn ngữ Matlab vì những lý do sau : o Matlab hỗ trợ tốt để xử lý trên ảnh.

o Tích hợp sẵn các hàm toán học cần trong việc xác định và nhận dạng khuôn mặt.

o Hỗ trợ kết nối với thiết bị ngoài (như camera hay các hệ thống nhúng rất tốt). Điều này rất thuận lợi cho việc phát triển đề tài trong tương lai.

Một phần của tài liệu NGHIÊN cứu và xây DỰNG hệ THỐNG NHẬN DẠNG mặt NGƯỜI dựa TRÊN ADABOOST (Trang 38 - 43)