2.3.1 Khái niệm và định nghĩa
PCA (viết tắt của Principle Component Analysis) tức là “phân tích các thành phần chính”, là 1 giải thuật rất mạnh dùng để phân tích và nén dữ liệu, phân biệt các mẫu dữ liệu bằng cách làm nổi bật các điểm giống nhau và khác nhau giữa chúng. PCA khử đƣợc các phụ thuộc thống kê bậc thấp của dữ liệu (bậc 1 là trung bình thống kê, bậc 2 là phƣơng sai thống kê), làm giảm tƣơng quan và tăng tính độc lập thống kê giữa các thành phần. Các thông tin dƣ thừa sẽ bị loại bỏ, chỉ giữ lại các thành phần đặc trƣng nhất.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 39
Trích chọn đặc tính của dữ liệu bằng giải thuật PCA:
* Bƣớc 1: Tổ chức dữ liệụ Tập hợp dữ liệu trong cùng 1 ma trận với mỗi cột là 1 thành phần của tập dữ liệụ
* Bƣớc 2: Loại bỏ đặc tính thống kê cấp 1. Trừ dữ liệu cho trung bình của nó: Adjusteđata = Origindata – Datamean
* Bƣớc 3: Tính ma trận covariance của tập dữ liệu
* Bƣớc 4: Tính eigenvector và eigenvalue của ma trận covariance * Bƣớc 5: Thiết lập vector cơ sở trực giao của không gian dữ liệu
Đây là bƣớc nén dữ liệu và giảm số chiềụ Ta sắp xếp các vector riêng theo thứ tự giảm dần giá trị riêng, các vector riêng có giá trị riêng lớn nhất sẽ đặc trƣng cho các “thành phần chính” của dữ liệu và đƣợc giữ lại tạo thành tập vector cơ sở trực giao của không gian dữ liệu, các vector riêng ít quan trọng hơn sẽ đƣợc bỏ đi, và do đó ta sẽ giảm đƣợc số chiều của dữ liệu (nén dữ liệu).
* Bƣớc 6: Tính đặc trƣng PCA của dữ liệu
Là bƣớc cuối cùng của tiến trình trích chọn đặc tính. Đặc trƣng PCA đƣợc tính bằng cách nhân ma trận dữ liệu (đã hiệu chỉnh trung bình) với tập hàm cơ sở trực giao của nó. Phép toán này có ý nghĩa tƣơng đƣơng với phép chiếu 1 vector trong không gian tín hiệụ
PCAfeature = Basisvectoset x Adjusteđata
với Adjusteđata là ma trận dữ liệu đã đƣợc trừ đi trung bình, với mỗi cột là 1 ảnh.
Giả sử có 400 ảnh, mỗi ảnh là 1 vectơ cột có n pixels, nhƣ vậy ma trận Adjusteđata có kích thƣớc là n*400 pixels. Thƣờng thì ảnh sau khi qua lọc Gabor sẽ có giá trị n rất lớn. Nhƣ trên, giả sử ta chỉ chọn M eigenvector tƣơng ứng với M eigenvalue lớn nhất, nhƣ vậy ma trận Basisvectorset sẽ có kích thƣớc là M*n pixels. Nhƣ vậy, ma trận PCAfeature sẽ có kích thƣớc theo tính chất nhân ma trận là M*400 pixels (M*n)*(n*400). Ta thấy là đặc trƣng PCA sẽ cho ra tập ảnh đặc trƣng có kích thƣớc nhỏ hơn nhiều so với kích thƣớc ảnh ban đầu mà vẫn không làm mất đi nét đặc trƣng nhất của ảnh.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 40
2.3.2. Ứng dụng PCA trích đặc trƣng ảnh
Để trích chọn đặc trƣng của khuôn mặt giải thuật PCA đòi hỏi phải có 1 tập ảnh mặt cơ sở (giống nhƣ 1 tập ảnh mẩu ban đầu) để tạo ra không gian ảnh mặt. Ảnh cần trích chọn đặc trƣng sẽ nhƣ 1 vector trong không gian ảnh mặt, lấy hình chiếu của nó lên từng vector cơ sở trực giao của không gian, ta sẽ thu đƣợc tất cả các hệ số theo các hƣớng, đây chính là đặc trƣng PCA của nó. Nếu tập ảnh mặt cơ sở của nó càng lớn và đa dạng tức là số chiều của không gian mặt càng nhiều thì đặc trƣng PCA trích đƣợc càng đầy đủ và chính xác.
* Bƣớc 1: Thiết lập không gian ảnh mặt
Ta chuẩn bị tập ảnh mặt cơ sở để tạo không gian mặt. Giả sử các ảnh này là ảnh thang xám kích cỡ m*n pixels và tập ảnh có M ảnh.
Chuyển ảnh ngõ vào 2 chiều thành vector 1 chiều
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 41
Imagesmatrix = [imagevector1 imagevector2 … imagevectorM]T
Tính tập vector cơ sở trực giao của không gian mặt
Tìm các vector riêng (eigenvector) của không gian ảnh mặt. Do tập ảnh cơ sở có M ảnh nên ta cũng sẽ tìm đƣợc M eigenvector. Tới đây ta có thể giữ lại toàn bộ (nếu ta muốn có đặc trƣng PCA đầy đủ để có thể khôi phục lại nguyên vẹn ảnh gốc ban đầu) hoặc chỉ giữ lại 1 số vector có trị riêng lớn nhất (nếu muốn nén ảnh có mất mát thông tin). Tập các vector này sẽ đóng vai trò là tập hàm cơ sở trực giao đại diện cho không gian ảnh. Do dữ liệu là ảnh mặt nên ta sẽ gọi tập eigenvector là eigenfaces.
* Bƣớc 2: Tính đặc trƣng PCA của ảnh ngõ vào
Chiếu ảnh lên không gian mặt. Phép chiếu chính lá phép nhân ma trận giữa ảnh ngõ vào với tập vector cơ sở trực giao của không gian mặt. Kết quả là ta sẽ có 1 vector đặc trƣng PCA gồm M thành phần (tƣơng ứng với M eigenvector của không gian mặt).
Giải thuật thực hiện phương pháp PCA:
. Giải thuật cơ bản:
Cho tập ảnh Γ1, Γ2, Γ3 , … ΓM ảnh trung bình đƣợc tính:
Ảnh hiệu chỉnh:
Ma trận ảnh CSDL:
với A = [ φ1 φ2 … φM ]
Ma trận C này chính là ma trận covariance của tập ảnh mà từ đó ta mới tính ra đƣợc các eigenvector và eigenvaluẹ Do ma trận C là ma trận vuông m*n (bằng kích thƣớc ảnh) nên sẽ có tất cả m x n eigenvector. Nhƣng nếu M < m x n (M là số ảnh trong CSDL) thì chỉ có M eigenvector có ý nghĩa (sẽ đƣợc kiểm chứng ở phần sau), vì tổng giá trị riêng mà chúng chiếm có thể lên đến hơn 99%, các eigenvector còn lại sẽ có eigenvalue xấp xỉ = 0. Do đí ta sẽ giữ lại M eigenvector có giá trị riêng lớn nhất.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 42
M eignevector của tập CSDL un, n = 1 … M đƣợc tính (theo định nghĩa): Giá trị riêng (eigenvector):
Uk đƣợc chọn sao cho λk max.
Uk và λk là eigenvector và eigenvalue của ma trận C
Trong thực tế, M eigenfaces là đủ cho quá trình khôi phục ảnh, còn trong nhận dạng ta chỉ cần giữ lại M‟ <M eigenfaces có eigenvalue lớn nhất là cũng đủ. Nhƣ vậy, quá trình thiết lập CSDL chỉ đƣợc thực hiện 1 lần và đƣợc lƣu lạị Điều này làm tối ƣu hoá quá trình nhận dạng vì tập CSDL là rất lớn, thời gian tính toán rất lâụ
Cải tiến giải thuật PCA:
Trong toàn bộ giải thuật, việc tính eigenfaces tập vector cơ sở của không gian mặt) là vấn đề phức tạp nhất. Quá trình này chiếm rất nhiều thời gian và bộ nhớ vì ma trận ảnh CSDL C có kích thƣớc rất lớn. Cụ thể nhƣ sau:
Ta có tập ảnh CSDL gồm các kích thƣớc 54*46 pixels (khá nhỏ), ảnh này sau khi qua hàm lọc Gabor sẽ cho ra ảnh chập là vecto cột có 61824 hàng, nếu dùng ảnh này làm ngõ vào của PCA thì ma trận C sẽ có kích thƣớc là 61824*61824 (rất lớn). Chỉ riêng C đã chiếm rất nhiều bộ nhớ máy tính nên việc lƣu trữ và load lên là hầu nhƣ không thể, chƣa kể đến việc phải xử lý nó (bao gồm các phép nhân, nghịch đảo các ma trận rất phức tạp).
Vì thế ta phải tìm cách tính nhanh eigenfaces bằng cách giảm số chiều của ma trận C.
- Tính nhanh eigenfaces:
Thay vì tính eigenfaces cho ma trận C = AAT
ta sẽ thực hiện trên ma trận L = ATA với kích thƣớc giảm chỉ còn M*M (M là số ảnh ngõ vào).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 43
Chƣơng 3
PHƢƠNG PHÁP NHẬN DẠNG MẶT NGƢỜI MLP-PCA-GA
3.1. GIỚI THIỆU
Mặc dù các nghiên cứu nhận dạng ảnh mặt ngƣời dùng mạng NN cho tới hiện nay về cơ bản đã cho các kết quả rất tốt cả về độ chính xác và thời gian, chi phí huấn luyện, các nghiên cứu này vẫn cần đƣợc cải tiến phát triển để tăng tỷ lệ nhận dạng, đặc biệt là giảm khối lƣợng tính toán và giảm thời gian, chi phí huấn luyện. Ngoài giải pháp kết hợp dùng PCA và NN, một giải pháp khác đƣợc một số nhà nghiên cứu gần đây quan tâm là áp dụng giải thuật di truyền GA kết hợp với hệ thống nhận dạng dùng mạng NN đã có để tối ƣu hệ thống. Luận văn này đi theo hƣớng tiếp cận nàỵ Thuật toán và phƣơng pháp kết hợp MLP-PCA-GA trong hệ thống nhận dạng sẽ đƣợc trình bày chi tiết trong các mục tiếp theọ
3.2 HỆ THỐNG NHẬN DẠNG DÙNG MẠNG MLP DÙNG ĐẶC TRƢNG PCA 3.2.1 Trích đặc trƣng PCA
Dựa theo lý thuyết phân tích các thành phần đặc trƣng PCA nhƣ đã trình bày ở chƣơng 2 ta sẽ thực hiện các bƣớc nhƣ sau :
Chọn lấy một tập ảnh ban đầu: gồm 100 ảnh của 20 ngƣời, mỗi ngƣời có 6 ảnh luyện [x1,x2,x3 ,…,xM] (M=100)
Tính ảnh mặt trung bình của tập ảnh trên: X=(x1+x2+x3+…+xM) /M
Trừ mỗi ảnh cho ảnh mặt trung bình: Xi’=Xi-X i=1,2,...M
Ta đƣợc tập ảnh mới là: [x1’,x2’,x3’ ,…,xM’]
Tính các vector đặc trƣng cho tập ảnh mới này ta đƣợc tập có M vector đặc trƣng trực giao là:[Y1,Y2,Y3 ,…,YM]. Các vector này khi xem dƣới dạng ảnh sẽ có dạng mặt ngƣời nên ngƣời ta còn gọi là mặt đặc trƣng (Eigenface). Sắp xếp các
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 44
vector nay theo sự tăng dần của giá trị đặc trƣng, ta có ví dụ về các vector đặc trƣng nhƣ sau :
Hình 3.2: 20 mặt đặc trƣng với giá trị đặc trƣng thấp nhất
Một đặc tính của các vector đặc trƣng đó là những vector có giá trị đặc trƣng cao sẽ mang nhiều thông tin về sự khác biệt của mặt so với mặt trung bình hơn những vector có giá trị đặc trƣng thấp.
Một ảnh mặt đƣợc biến đổi sang không gian vector đặc trƣng sẽ có biểu diễn là sự kết hợp tuyến tính của các vector đặc trƣng đó hay nói cách khác là sẽ có một bộ các số =[1,2, 3,… M] mô tả ảnh mặt đó trong không gian vector đặc trƣng hay mỗi ảnh mặt sẽ coi là một điểm trong không gian M chiềụ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 45
Nếu ta sử dụng tất cả các vector đặc trƣng để khôi phục lại ảnh ban đầu thì ta sẽ khôi phục đƣợc hoàn toàn tuy nhiên nếu ta chỉ sử dụng một số các vector có giá trị đặc trƣng lớn nhất khôi phục thì ta cũng thu đƣợc ảnh tƣơng đói giống với ảnh ban đầụ
Nhận xét này rất quan trọng, nó cho phép ta giảm số vector đặc trƣng cần thiết để khôi phục ảnh ban đầu hay ta có thể coi mỗi ảnh mặt là một điểm trong không gian có số chiều M’ nhỏ hơn M và do đó công việc tính toán để phân loại mặt sau này sẽ đƣợc cải thiện đáng kể.
Theo thử nghiệm trong luận văn này ta có thể chọn M’=40(lƣu ý M=120) là đã có kết quả tƣơng đối tốt. Sau khi đã tính đƣợc bộ trọng số =[1,2, 3,… M] là bộ trọng số mô tả mặt, ta tiến hành phân loại, nhận dạng ảnh mặt.
3.2.2 Thiết kế mạng MLP
Mạng neural là một cấu trúc học để nhận biết nên mạng tiếp nhận dữ liệu về khuôn mặt của một ngƣời càng đầy đủ càng tốt. Số ngõ vào của mạng là các bộ trọng số mô tả mặt. Mỗi neural ngõ ra ứng với một ngƣời đƣợc nhận dạng.
Trong quá trình huấn luyện nếu đƣa ảnh của ngƣời ứng với neural biểu diễn cho ngƣời đó vào; giá trị của neural đƣợc gán bằng 1, những neural khác đƣợc gán bằng 0.
Khi mạng đƣợc dùng để nhận dạng, khuôn mặt cần nhận dạng sẽ đƣợc đƣa vào mạng neural, ngõ ra có giá trị bằng 1, thì khuôn mặt đó sẽ tƣơng ứng của ngƣời đó.
Mạng nơron sử dụng ở đây là mạng MLP lan truyền ngƣợc. Mạng gồm 3 lớp trong đó: lớp nhập có tới 100 nút, lớp ẩn có 10 nút, lớp ra có 1 nút có giá trị từ 0.0- >1.0 dựa vào đó quyết định xem mặt thuộc phân lớp nàọ
Ta sẽ thiết kế mỗi một mạng nơron sẽ nhận dạng cho một ngƣời, thuật toán nhận dạng của ta là cho ảnh nhận dạng qua tất cả các mạng rồi chọn ra mạng có đầu ra lớn nhất, nếu giá trị đầu ra này vƣợt quá một ngƣỡng thì coi là nhận dạng đƣợc, nếu không thì sẽ coi là nhạn dạng đƣợc, nếu không thì sẽ coi là không nhận dạng đƣợc.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 46
Hình 3.3. Mạng MLP sử dụng để nhận dạng mặt 3.2.3. Huấn luyện mạng MLP
Đối với mạng MLP nhận dạng khuôn mặt các neural lớp ẩn đóng vai trò tính ra các giá trị đặc trƣng đại diện cho khuôn mặt để đƣa đến các lớp phía saụ Mạng đƣợc huấn lƣyện bằng ảnh trong tập train image lấy từ cơ sở dữ liệụ
Sau khi đã tạo xong mạng nơron, việc rất quan trọng là phải huấn luyện mạng để mạng có thể nhận dạng đƣợc. Ta sẽ chuẩn bị một tập các ảnh mẫu cho mỗi ngƣờị Cho các ảnh mẫu này qua tất cả các mạng. có 4 khả năng xảy ra:
1. Ảnh mặt có đầu ra tại chính mạng của đầu đấy là cao hơn so với đầu ra trên các mạng khác. Trƣờng hợp này không phải thực hiện gì.
2. Ảnh mặt có đầu ra cao tại chính mạng của ngƣời đấy và một số mạng khác. Ta sẽ lấy ảnh này làm mãu tiêu cực cho các mạng khác.
3. Ảnh mặt có đầu ra thấp tại chính mạng của ngƣời đấỵ Ta sẽ lấy ảnh này làm mẫu tích cực cho chính mạng đó và mẫu tiêu cực cho các mạng khác.
4. Ảnh mặt có đầu ra thấp tại chính mạng của ngƣời đấy và có đầu ra tại các mạng khác. Ta sẽ lấy ảnh này làm mẫu tiêu cực cho các mạng khác hoặc có thể loại bỏ ảnh mẫu nàỵ
Sau khi đã luyện song ta sẽ lƣu các trọng số của mạng nơron để phục vụ nhận dạng sau nàỵ Khi cần nhận dạng mặt mới, ta đƣa tập ảnh mẫu vào tập mẫu và luyện lại các mạng. Sau khi luyện song ta có thể thực hiện nhận dạng.
Quá trình huấn luyện nhƣ trên thực chất là đào tạo (train) cho mạng có khả nặng nhận biết các đối tƣợng cần nhận dạng. Việc làm này cũng tƣơng tự việc đƣa ra M ảnh của một ngƣời rồi cho mạng học để ghi nhớ ngƣời này vào CSDL sau đó lấy ảnh khác để kiểm tra khả năng học của mạng.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnụedụvn 47
3.3 TỐI ƢU VIỆC HUẤN LUYỆN MẠNG MLP BẰNG GA
Mặc dù mạng NN đƣợc cho là công cụ rất tốt với các hệ thống nhận dạng ảnh nói chung và nhận dạng ảnh mặt ngƣời nói riêng, chi phí huấn luyện đối dùng mạng NN đƣợc xem là rất tốn kém.
Cho dù đặc trƣng PCA đã giảm số chiều của vector đặc trƣng thì chi phí tính toán đối với NN vẫn là lớn. Vấn đề tối ƣu mạng NN do đó là một vấn đề quan trọng.
Trong mục cơ sở lý thuyết về GA đã trình bày, một trong các ứng dụng quan trọng của GA là đƣợc dùng để tối ƣu hóa mạng NN. Vì vậy, gần đây một số tác giả đã đề xuất giải pháp kết hợp NN và GA để tối ƣu thao tác huấn luyện cho hệ thống. Luận văn này đi theo cách tiếp cận nàỵ Ý tuởng cơ bản của việc sử dụng GA ở đây là tìm kiếm trọng số tối ƣu để đƣa vào mạng MLP, ở đây gọi là thuật toán MLP-GẠ.
Thuật toán huấn luyện mẫu sử dụng trong luận văn này đƣợc tham khảo từ thuật toán đề xuất trong [28]. Trong đó, GA đƣợc sử dụng kết hợp để tối ƣu quá trình huấn luyện bằng cách tìm trọng số tối ƣu cho mạng MLP.
Thuật toán đƣợc mô tả nhƣ trong hình 3.1 bao gồm 02 giai đoạn học. Giai đoạn học thứ nhất sử dụng thuật toán GA với bƣớc truyền thẳng để tăng tốc cả quá trình học. Thuật toán GA thực hiện tìm kiếm toàn cục và tìm kiếm điểm khởi tạo gần tối