chương 1 Trong chương này, luận văn đã tìm hiểu tổng quan về xử lý ảnh như: 1. Giới thiệu chung về xử lý ảnh số 2. Tổng quan về các kỹ thuật xử lý ảnh số 3. các không gian máu và ảnh màu như: RGB, HSV, CIE.
Xử lý hình thái trên ảnh nhị phân như: phép dãn, phép cơ, phép mở và đóng nhị phân. 18 CHƯƠNG 2: CÁC PHƯƠNG PHÁP NHẬN DẠNG KHUÔN MẶT 2. EIGENFACES Eigenface là phương pháp áp dụng trực tiếp phép phân tích các thành phần PCA, nó đã được áp dụng rất nhiều vào biễu diễn, phát hiện và nhận dạng mặt. Ưu điểm của phương pháp này là biểu diễn được toàn bộ ảnh và có độ nén rất tốt (loại bỏ nhiễu và dư thừa).
Các gian đoạn của Eigenfaces Kỹ thuật Eigenfaces (Khuôn mặt riêng) sử dụng việc phân tích những thành phần chính của hình ảnh trên khuôn mặt. Việc phân tích này giảm thiểu được số kích thước của tập đào tạo giúp thuân tiện hơn cho việc nhận diện. Eigenfaces là một tập của những vector riêng được sử dụng trong bài toán thị giác máy tính trong nhận diện khuôn mặt người. Hướng giải quyết sử dụng eigenfaces cho nhận dạng đã được phát triển bởi Sirovit và Kirby và sau đó được Mattew Turk và Alex Pentland sử dụng trong phân loại khuôn mặt được coi như là sự thành công đầu tiên trong công nghệ nhận diện khuôn mặt.
Những vector riêng được tính toán từ ma trận hiệp phương sai phân phối xác suất của không gian vector kích thước nhiều chiều của những khuôn mặt người có thể chấp nhận. Việc coi một bức ảnh đầu vào là một đa chiều sẽ giúp cho việc xử lý bức ảnh trở thành việc xử lý tính toán trên vector trong đại số tuyến tính. Do ảnh được biểu diễn trong không gian hai chiều thường có kích thước lớn, để cho việc tính toán có hiểu quả, cần thiết phải có bước giảm số chiều vector. Thực tế thường sử dụng phương pháp thành phần chính PCA (Principal Component Analysis).
Mục tiêu của phương pháp PCA là giảm số chiều của một tập các vector sao cho vẫn đảm bảo được tối đa các thông tin quan trọng nhất. Điều này có nghĩa là vẫn giữ được K đặc tính mới từ các thông tin chứ không phải giữ nguyên K đặc tính ban đầu, những đặc tính mới này được suy 19 ra từ những dặc tính cũ. Nói một cách ngắn gọn, mục tiêu của phương pháp PCA là tìm ra một không gian với số chiều nhỏ hơn không gian cũ mà các trục tọa độ của không gian mới được xây dụng sao cho trên mỗi trục, độ biến thiên dữ liệu là lớn nhất có thể. Một điểm nữa là các trục tọa độ trong không gian mới luôn đảm bảo trực giao đôi một với nhau.
Vector x ban đầu có N chiều, vector y mới được tạo hình chỉ còn K chiều. khi loại bỏ một số thành phần của vector x để thu được vector y sẽ gây ra sai số, phương pháp PCA sẽ cố gắng tìm phép biến đổi tuyến tính T thỏa mãn y=Tx sao cho trung bình phương lỗi (MSE) là bé nhất ❖ Chia thành 2 giai đoạn - Giai đoạn tìm các mặt riêng (Eigenfaces) - Giai đoạn nhận dạng ➢ Giai đoạn tìm các mặt riêng + Bước 1: Giả sử tập ảnh huấn luyện gồm M ảnh khuôn mặt: Γ1 , Γ2 , … Γ𝑀 có kích thước N*N. + Bước 2: Tìm ảnh trung bình theo công thức: 1 1 Ψ = ∑ Γ𝑖 (2.1) 𝑀 𝑀 Với tập ảnh huấn luyện trên ta tính được ảnh trung bình như sau: + Bước 3: Tính độ sai khác giữa ảnh huấn luyện Γ𝑖 so với ảnh trung bình Ψ: Φ𝑖 = Γ𝑖 − Ψ (2.2) + Bước 4: Tính ma trận hiệp phương sai C (covariance matrix) 𝑀 1 𝐶= ∑ Φ𝑖 ΦiΤ = 𝐴.3) 𝑀 𝑖=1 20 Với: Α = [Φ1 , Φ2 , … , Φ𝑀 ] 𝑄11 ⋯ 𝑄𝑚1 𝑄11 ⋯ 𝑄𝑚1 T C = AA = [ ⋮ ⋱ ⋮ ] X [ ⋮ ⋱ ⋮ ] 𝑄1𝑛2 ⋯ 𝑄𝑚𝑛2 𝑛2∗𝑚 𝑄1𝑛2 ⋯ 𝑄𝑚𝑛2 𝑚∗𝑛2 Vậy C có kích thước: N2x N2 ▪ Vấn đề về tìm vector riêng (eigenvector) ui của ma trận C khó thực hiện được vì kích thước quá lớn. ❖ Để tìm eigenvector ui của C ta thực hiện như sau: Giả sử vi là vector riêng của ma trận ATA, tức là: 𝚨𝑻 𝑨𝒗𝒊 = 𝝁𝒊 𝒗𝒊 Nhân 2 về với ma trận A ta được: 𝑨𝑨𝑻 𝑨𝒗𝒊 = 𝝁𝒊 𝑨𝒗𝒊 (𝟐.𝟒) ➢ Như vậy Avi là eigenvector của C ❖ Để tìm eigenvector ui của C ta thực hiện như sau(tt): - Tìm eigenvector là eigenvalue của ma trận L: 𝐿 = 𝐴𝑇 𝐴 𝑇 𝑣ớ𝑖 𝐿𝑚,𝑛 = Φ𝑚 Φ𝑛 𝑄11 ⋯ 𝑄1𝑛2 𝑄11 ⋯ 𝑄𝑚1 - Ha𝐿 = 𝐴 𝐴 = [ ⋮ 𝑇 ⋱ ⋮ ] 𝑋 [ ⋮ ⋱ ⋮ ] 𝑄𝑚1 ⋯ 𝑄𝑚𝑛2 𝑚∗𝑛2 𝑄1𝑛2 ⋯ 𝑄𝑚𝑛2 𝑛2∗𝑚 - Khi đó L là ma trận có kích thước là MxM - Giả sử vi là eigenvector của L tính được: 𝑢𝑖 = ∑𝑀 𝑘=1 𝑣𝑖𝑘 Φ𝑘 , 𝑖 = 1,2, … , 𝑀 là eigenvector của C (2.5) Hay còn gọi là mặt riêng (eigenface) ❖ Từ M eigenvector (ui), chọn ra 𝑀′ eigenvector ứng với 𝑀′ giá trị riêng đầu tiên trong mảng các giá rị riêng (được sắp xếp giảm dần).
❖ Thường chọn 𝑀′ sao cho [3]: 21 ′ ∑𝑀 𝑖=1 𝜇𝑖 ∑𝑀 > 0.6) 𝑗=1 𝜇𝑖 ➢ Giai đoạn nhận dạng + Bước 1: Với mỗi ảnh huấn luyện Γ1 , Γ2 , … Γ𝑀 ta chiếu lên không gian mặt 𝑀′ chiều: Ω𝑇𝑘 = [𝜔1 , 𝜔2 , … 𝜔𝑀′ ] k=1, …, M Với: 𝜔𝑖 = 𝑢𝑖𝑇 (Γ𝑘 − Ψ), i=1, 2, .7) + Bước 2: Khuôn mặt mới Γ sẽ được chiếu lên không gian 𝑀′ chiều.8) Với 𝜔𝑖 = 𝑢𝑖𝑇 (Γ𝑘 − Ψ), i=1,2,…, 𝑀′ + Bước 3: Tìm mặt thứ k sao cho: 𝜀𝑘 = ‖Ω − Ω𝑘 ‖2 ≤ 𝜃 (2.9) - Với Ω𝑘 là vector mô tả hay đại diện cho mặt thứ k trong tập huấn luyện, 𝜃 là ngưỡng xác định. ❖ Có 4 trường hợp khi nhận dạng khuôn mặt mới: - Ảnh ở gần không gian mặt và gần một lớp ảnh. - Ảnh ở gần không gian mặt và xa tất cả các lớp ảnh. - Ảnh ở xa không gian mặt và ở gần một lớp ảnh.
- Ảnh ở xa không gian mặt và ở xa tất cả các lớp ảnh.2 Tính toán Eigenfaces + Bước 1: Sử dụng các ảnh khuôn mặt l1, l2,…, ln (tập các khuôn mặt huấn luyện) với khuôn mặt phải chính diện và tất cả ảnh phải cùng kích thước. 22 Biểu diễn mọi ảnh li thành vector Γ𝑖 Ví dụ: Để đơn giản ta giả sử chỉ có 4 ảnh trong tập huấn luyện (kích thước 3x3). Ta tính toán được: 225 10 196 255 229 219 35 223 48 24 234 224 251 255 232 255 Γ1 = 33 Γ2 = 18 Γ3 = 59 Γ4 = 0 238 247 244 255 0 17 243 249 255 255 57 255 [217] [ 2 ] [226] [235] + Bước 2: Tính vector khuôn mặt trung bình Ψ theo công thức: 1 Ψ= ∑𝑀 𝑖=1 Γ𝑖 𝑀 Cụ thể ta có: 171.50 [ 170 ] + Bước 3: Trừ vector khuôn mặt trung bình: Φ𝑖 = Γ𝑖 − Ψ 23 Cụ thể ta có: + Bước 4: Tính ma trận hiệp phương sai (covariance) C: 1 𝑇 =1/𝑀 𝐴𝐴𝑇 c = 𝑀 ∑𝑀 Φ ∑ 𝑛=1 𝑛 𝑛 C sẽ có kích thước N2x N2 Trong đó A sẽ có kích thước là N2xM 𝐴 = [Φ1 , Φ2 , … , ] + Bước 5: Tính các eigenvector ui (vector rieng) của ma trận vuông A. Ma trận này có kích thước quá lớn → không khả thi → phải khôn khéo đi đường vòng - Bước 5.1: Xét ma trận 𝐴𝑇.
𝐴 (chú ý ma trận này chỉ có kích thước MxM) 24 Cụ thể ta có: 33712 11301 −33998 −115015 11301 82627 −50914 −43014 𝐴𝑇 .2: Tính các vector riêng vi (eigenvectors) của ma trận vuông 𝐴𝑇. 𝐴 này Ở đây ta sẽ tìm được 4 trị riêng của ma trận 𝐴𝑇. 𝐴, tuy nhiên ta sẽ sắp xếp lại theo thứ tự giảm dần, và chỉ lấy các trị riêng “non-Zero”. Kết quả ta được 3 trị riêng (từ đó tính ra 3 vector riêng tương ứng): Các eigenvector của AT.306 Kích thước Mx1 0.631 Các eigenvalues của 𝜆1 = 153520 𝜆2 = 50696 𝜆3 = 22781 AT.
A Sau khi đã tính được các vector Vi (có kích thước Mx1), ta sẽ dễ dàng suy ra được các vector riêng ui (kích thước N2x1) mong muốn cần tìm, theo công thức: (*) 𝒖𝒊 = 𝑨𝑽𝒊 25 139.675 của ma trận hiệp −12.591 phương sai 𝑢1 = 13. Kích thước 219.978] 𝑢𝑖 Chú ý nên chuẩn hóa các vector𝑢𝑖 (∥ 𝑢𝑖 ∥= 1), nghĩa là: 𝑢𝑖 = ∥𝑢𝑖 ∥ Sau khi chuẩn hóa ta thu được các vector 𝑢𝑖 cuối cùng như sau: 0.264 Thành quả cuối cùng.347 Đây chính là các vector cơ sở của không 0.064 vector này là các 𝑢1 = 0.391] ➢ Ta rút ra được chú ý sau (theo TOÁN HỌC): ❖ Ma trận 𝐴. 𝐴𝑇 có thể có đến N2 trị chỉ riêng (mỗi trị riêng sẽ ứng với vô số vector riêng – nó được gọi là “không gian riêng ứng với trị riêng nào đó”). 𝐴 có thể có đến M trị riêng.
❖ M trị riêng của ma trận 𝐴𝑇. 𝐴 (kèm với các vector riêng tương ứng), sẽ ứng với M trị riêng lớn nhất của 𝐴𝑇 .3: Tính M vector riêng ui tốt nhất của 𝐴. 𝐴𝑇 theo công thức (*) 26 + Bước 6: Chỉ giữ lại K vector riêng trong số M vector nó trên (ứng với K trị riêng lớn nhất), tất nhiên K<< N2. Cách1: - Sắp xếp theo thứ tự dãy giảm dần các eigenvalues tìm được.
- Theo dõi sự biến thiên của dãy trên, khi không còn biến thiên (hoăc xếp xỉ bằng không) thì lúc đó ta đã chọn đủ K. Cách 2: Chọn K theo công thức sau: ∑𝐾 𝑖=1 𝜆𝑖 ∑𝑁 > 𝑁𝑔ưỡ𝑛𝑔 𝑐ℎọ𝑛 (thường từ 0.95) 𝑖=1 𝜆𝑖 Sau khi đã có các vector riêng nhờ PCA, ta có thể biểu diễn các khuôn mặt có sẵn vào không gian vector như sau: Mỗi khuôn mặt Φ𝑖 trong tập huấn luyện có thể được biểu diễn lại thành tổng hợp tuyến tính của K vector riêng có trị riêng lớn nhất. Φ𝑖 Ta gọi các vector riêng ui là các Eigenfaces (khuôn mặt riêng). Như vậy, từ bây giờ, mỗi khuôn mặt trong tập huấn luyện Φ𝑖 sẽ được biểu diễn trong không gian mới.
Φ𝑖 ] Để nhận diện một khuôn mặt mới, ta gọi là khuôn mặt chưa xác định được danh tính (ảnh chính diện được đưa về kích thước giống trong tập mẫu). Giai đoạn nhận dạng này giống hệt giai đoạn biểu diễn ảnh khuôn mặt trong tập mẫu. Ta thực hiện lượt các bước sau: + Bước1: Chuẩn hóa Φ=Γ−Ψ Điều này cũng tương ứng như quy vector dù về không gian với gốc tọa độ mới (gốc tọa độ này gọi là meanface). + Bước2: Biểu diễn Φ thành Ω như sau: u1𝑇 .