Huấn luyện FSVM phi tuyến cho bài toán nhận dạng khuôn mặ t

Một phần của tài liệu NGHIÊN cứu và xây DỰNGHỆ THỐNG NHẬN DẠNG mặt NGƯỜIDỰA TRÊNFSVM và ADABOOST (Trang 73)

KHOA CNTT –

ĐH KHTN

Hình 19-Sơđồ huấn luyện FSVM đa lớp 5.3.3.1.2. Véctơ hóa tập mẫu khuôn mặt thô

Đây chính là một bước biểu diễn ảnh khuôn mặt vào máy tính, hình thức biểu diễn này chúng tôi đã có đề cập trong phần mô tả dữ liệu nhận dạng khuôn mặt. Chi tiết vector hoá một mẫu khuôn mặt được trình bày trong hình dưới đây.

Véctơ hóa tập mẫu Trích đặc trưng Ánh xạ tập mẫu vào không gian đặc trưng Các véctơđặc trưng Chuẩn hóa lớp i lớp j Huấn luyện SVM (i,j) Độđo thành viên(mờ) Huấn luyện FSVM (i,j) n(n-1)/2 bộ phân loại FSVM

KHOA CNTT –

ĐH KHTN

Hình 20 –Cách véctơ hóa ảnh để nhận dạng

¾ Tách ảnh mẫu khuôn mặt 30×30(pixels) thành 30 dòng ảnh theo thứ tự từ trên xuống dưới, mỗi dòng ảnh bao gồm 30 (điểm ảnh).

¾ Vector hoá mẫu khuôn mặt được thực hiện bằng cách nối liên tiếp các dòng ảnh theo thứ tự này liên tiếp nhau và kết quả từ một ma trận ảnh hai chiều 30×30 thành một vector có số chiều bằng 900.

5.3.3.1.3. Rút trích đặc trưng khuôn mặt

Giai đoạn rút trích đặc trưng khuôn mặt bao gồm ba bước chính đó là thực hiện phép phân tích thành phần chính, Ánh xạ tập mẫu vào không gian đặc trưng, và chuấn hoá không gian mẫu.

Trong tất cả các hệ nhận dạng mà đặc biệt là các hệ nhận dạng tự động nói riêng, mức độ thành công không những phụ thuộc vào các thuật toán nhận dạng tốt mà còn phụ thuộc rất nhiều vào tập mẫu dữ liệu huấn luyện. Việc chọn tập mẫu huấn luyện sao cho phù hợp với mục đích ứng dụng yêu cầu và vừa đảm bảo được tính tổng quát cho một hệ nhận dạng là rất khó. Bởi vì ta không thể lường trước mọi biến thể có thể tác động đến đối tượng quan tâm trong lúc thu nhận ảnh.

¾ Môi trường lấy mẫu biến động rất phức tạp như điều kiện thời tiết trong lúc lấy mẫu, điều kiện độ sáng, môi trường có nhiều đối tượng khác

KHOA CNTT –

ĐH KHTN

¾ Các biến thể nội tại trong đối tượng ta quan tâm (các biến đổi không bình thường của mẫu ), sự khác nhau về khoảng cách lấy mẫu, mặt phẳng quan sát đối tượng trong lúc lấy mẫu … đó là một trong những vô số nhập nhằng mà một hệ thống nhận dạng phải đối mặt.

¾ Chất lượng thiết bị thu ảnh cũng như giới hạn khả năng tính toán của thiết bị xử lí nhận dạng.

Ở đây phương pháp phân tích thành phần chính (PCA) được chọn để tiền xử lí và rút trích đặc trưng từ dữ liệu. PCA là một phương pháp rút trích đặc trưng tự động, không giám sát. Tính ưu việt của phương pháp xử lí này không những khử nhập nhằng tốt mà còn giảm được đáng kể khối lượng dữ liệu luu trữ và xử lí cho hệ thống nhận dạng sau này).

Hai tập học PCA bao gồm A=10 lớp và B=44 lớp và mỗi lớp của A gồm 45 đề tài được xử lý từ 5 đề tài nguyên thủy nhờ phép mirror, dịch chuyển ảnh sang các vị trí trái-phải-trên-dưới, còn mỗi lớp của lớp B bao gồm 10 đề tài được xử lý từ 5 đề tài nguyên thủy nhờ phép mirror. Bậy toàn bộ mẫu cho việc huấn luyện PCA gồm 450 véctơ lớp A và 440 véctơ lớp B, mỗi véctơ 900 chiều..

Chi tiết phương pháp trích đặc trưng bằng PCA và PCA cục bộ ở chương 4. Chi tiết quá trình rút trích đặc trưng cho tập mẫu như sau:

¾ PCA toàn cục :

ƒ Xây dựng vector trung bình mẫu M 900 chiều

ƒ Xây dựng ma trận hiệp phương sai D (900×900) chiều. ƒ Tính các giá trị đặc trưng và các vector đặc trưng tương ứng ƒ Với ma trận D (900×900) thì tương ứng 900 giá trị đặc trưng (eigenvalues).

ƒ Ta có thể tạo ra các vector đặc trưng (eigenvectors) dựa trên các giá trị đặc trưng tương ứng. Trong cách tiếp cận của đề tài này và bằng thực nghiệm chúng tôi đã chọn 100 vector đặc trưng tương ứng với 100 gía trị đặc trưng lớn nhất.

KHOA CNTT –

ĐH KHTN

ƒ Một ma trân K mà mỗi cột là một vector đặc trưng 900 chiều. Vậy không gian ma trận K (900×100) chiều

¾ PCA cục bộ 10x10 độc lập:

ƒ Xây dựng 9 vector trung bình mẫu M 10x10 chiều trích từ 9 khung trong mỗi véctơ 900 chiều (tham khảo chương 4)

ƒ Xây dựng 9 ma trận hiệp phương sai D (100×100) chiều. ƒ Tính các giá trị đặc trưng và các vector đặc trưng tương ứng ƒ Với 9 ma trận D (100×100) thì tương ứng 900 giá trị đặc trưng (eigenvalues). (adsbygoogle = window.adsbygoogle || []).push({});

ƒ Ta có thể tạo ra các vector đặc trưng (eigenvectors) dựa trên các giá trị đặc trưng tương ứng. Trong cách tiếp cận của đề tài này và bằng thực nghiệm chúng tôi đã chọn 10 vector đặc trưng tương ứng với 10 giá trị đặc trưng lớn nhất với mỗi khung. Do đó có tất cả 90 véctơ 100 chiều ứng với 9 khung.

ƒ Một ma trân K mà mỗi cột là một vector đặc trưng 100 chiều. Vậy không gian ma trận K (100×90) chiều

Ánh xạ tập mẫu huấn luyện FSVM gồm 10 lớp của A và 44 lớp của B với mỗi lớp 110 đề tài từ 5 đề tài gốc(qua các phép dịch chuyển khuôn mặt về các hướng và phép mirror) vào không gian đặc trưng, sẽ hình thành không gian mẫu mới hay còn gọi là không gian mẫu đặc trưng

¾ PCA toàn cục :

ƒ Lần lược chiếu từng mẫu trong tập huấn luyện xi = (xi1, xi2,…, x4840900) vào không gian đặc trưng K900×100 và kết quả phép chiếu này hình thành một vector mới yi(1×100)=xi(1×900)*K(900×100)

ƒ Sau khi thực hiện phép chiếu này cho 4840 mẫu trong tập mẫu và kết quả thu được một tập mẫu mới (Tập mẫu học đặc trưng của Tập mẫu học ban đầu) Y = {y:i=1→4840} và trong đó yi = (yi1,

KHOA CNTT –

ĐH KHTN

¾ PCA cục bộ:

ƒ Lần lược chiếu từng mẫu trong tập huấn luyện xi = (xi1, xi2,…, x4840900) vào không gian đặc trưng K900×90 và kết quả phép chiếu này hình thành một vector mới yi(1×100)=xi(1×900)*K(900×10)

ƒ Sau khi thực hiện phép chiếu này cho 4840 mẫu trong tập mẫu và kết quả thu được một tập mẫu mới (Tập mẫu học đặc trưng của Tập mẫu học ban đầu) Y = {yi:i=1→4840} và trong đó yi = (yi1, yi2,…, yi90).

Như vậy qua phép phân tích PCA, ta đã rút gọn số chiều của mẫu học từ 900 giảm xuống còn 100 chiều(90 chiều) (đây chính là những thành phần quan trọng nhất của mẫu học, và chính các thành phần này tạo ra sự khác biệt cho các vector mẫu trong tập mẫu ban đầu)

5.3.3.1.4. Tạo các bộ phân loại nhị phân cho phương pháp bầu cử

Như đã phân tích trong phần FSVM nhiều lớp, phương pháp bầu cử cũng cần tất cả n(n-1)/2 bộ phân loại nhị phân. Do đó với tập học 10 lớp và 44 lớp ta cần tương ứng 45 và 946 bộ phân loại nhị phân FSVM khác nhau.

5.3.3.1.5. Huấn luyện cho mỗi bộ phân loại FSVM nhị phân từ các tập mẫu nhị

phân hóa hai lớp khuôn mặt với nhau

Với mỗi cặp (i,j) trong đó (1≤ i < j ≤n), việc huấn luyện bộ phân loại FSVM nhị phân cho hai lớp (i,j) gồm tập mẫu X = Xi ∪Xj (đã trích đặc trưng như trên) được tiến hành gồm 3 pha với phương pháp heuristic dựa trên hàm Kernel RBF như sau:

¾ Chọn Kernel K (dạng RBF gamma = 0.3)

¾ Xây dựng heuristic H và cập nhật K bằng cách huấn luyện theo dạng RBF bằng cách lặp quá trình sau

KHOA CNTT –

ĐH KHTN

o Chọn hc = 0.1, ht = 0.5, d = -32 và σ = 0.01 , gamma = 0.3

o Xây dựng tập độ đo thành phần {µi} cho tập mẫu X.

o Sử dụng tập {µi} xây dựng FSVM (thay C cố định trong SVM bằng Ci =

µi * C)

o Nếu hàm lỗi FSVM error= ∑

= ∗ n i i i 1 ξ µ < errormax

ƒ cập nhật errormax = errror. ƒ cập nhật {µimax } = {µi }

ƒ Ngược lại : lặp lại quá trình trên bằng cách thay đổi từng tham số hc = hc + 0.1, hay ht = hc + 0.1, hay d = d+1, hay σ = σ+0.01, hay

gamma=gamma±0.1 (adsbygoogle = window.adsbygoogle || []).push({});

ƒ Nếu errormax ngưỡng ε hay các tham số hc, ht và σ không còn hợp lệ: (hc>0.5, ht>1, σ>1 )

¾ Xây dựng các độ đo thành viên {µi} cho X bằng 3 luật mờ sau: Luật 1 : Nếu h(xi) > hc thì µi = 1 Luật 2 : Nếu hc≥ h(xi) ≥ ht thì d t c t i h h h x h ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ − − ∗ − + =σ (1 σ) ( ) µ Luật 3 : Nếu h(xi) < ht thì µi = σ

¾ Huấn luyện bộ phân loại nhị phân FSVM FPij cho hai lớp (i,j) với các thông số như sau: FPij(x) = 1 nếu x thuộc lớp i, và ngược lại là -1 nếu x thuộc lớp j. Thông số cho P bao gồm

ƒ kernel = RBF | đa thức ƒ C = 5 | 50 | 100

ƒ Gamma = 0.01 | 0.1 | 0.3 ƒ µi là độ đo của mẫu xi

KHOA CNTT –

ĐH KHTN

5.3.3.2.1. Nhận dạng khuôn mặt dùng FSVM

Hình 21-Sơđồ nhận dạng khuôn mặt dùng FSVM 5.3.3.2.2. Véctơ hoá khuôn mặt thô

Véctơ hóa khuôn mặt thô cũng như véctơ hóa tập mẫu huấn luyện trong phần 5.3.3.1.2.

5.3.3.2.3. Rút trích đặc trưng khuôn mặt

Rút trích đặc trưng khuôn mặt cũng như rút trích đặc trưng tập mẫu huấn luyện trong phần 5.3.3.1.3.

5.3.3.2.4. Đưa mẫu thử nghiệm khuôn mặt x vào cấu trúc nhị phân và thực hiện đối sánh trên từng mô hình nhị phân FSVM hiện đối sánh trên từng mô hình nhị phân FSVM

Việc đối sánh theo phương pháp bầu cử được tiến hành như sau : ¾ Gán Li = 0 ∀i∈[1,n]

¾ Với mỗi bộ (i,j) thỏa (1≤ i < j ≤n) ƒ k = PFij(x) ƒ Nếu k=+1 thì Li = Li + 1 ƒ Nếu k=-1 thì Lj = Lj + 1 Ảnh thử nghiệm Ánh xạ vào không gian đặc trưng chuẩn hoá x PF12(x) PF13(x) ………. PF(n-1)n(x) Bầu cử Các véctơđặc trưng gán nhãn lớp

KHOA CNTT –

ĐH KHTN

¾ Chọn k sao cho Lk = max(Li) k chính là lớp của mẫu x cần nhận dạng.

5.3.4.Nhận xét và hướng phát triển tương lai

5.3.4.1. Ưu đim

¾ Phương pháp FSVM cũng như phương pháp SVM là thuật toán mà bản thân vốn có khả năng xử lý tổng quát hoá tốt thích hợp cho bài toán phân tích, xử lý và khai thác dữ liệu dữ liệu nhờ vào khả năng tính toán và phân tích rất mạnh

¾ Phương pháp FSVM đã giải quyết được vấn đề của SVM về quá tương thích (overfit) bằng việc kết hợp luật mờ để tính độ đo thành viên.

¾ FSVM nhận dạng tốt các bài toán nhiều lớp hơn SVM đa lớp nhờ kết hợp trục thành viên và các siêu phẳng phân cách.

¾ Xét về tốc độ huấn luyện FSVM tốn thời gian huấn luyện nhiều hơn SVM do quá trình học các luật mờ nhưng thời gian nhận dạng là như nhau.

¾ FSVM cũng như SVM, đối với mỗi mô hình, số lượng tham số trong mỗi mô hình lớn nên chúng ta sẽ có nhiều cách khác nhau trong việc điều khiển khả năng xử lý tối ưu cho thuật toán.

¾ Trong bài toán nhận dạng khuôn mặt, FSVM là một trong các thuật toán nhận dạng tốt, tỉ lệ nhận dạng cao với tỉ lệ chính xác trung bình trên 96%. Và nhờ khả năng xử lý tổng quát hoá tốt nên rất thích hợp cho bài toán nhận dạng khuôn mặt mà trong đó tính biến động của thông tin trên ảnh thích hợp nhận dạng trong thời gian thực, trong video – camera.

5.3.4.2. Nhược đim

KHOA CNTT –

ĐH KHTN

loại nhiều lớp ta phải có nhiều cách tổ chức rất phức tạp và dẫn đến chi phí tính toán cũng rất cao. (adsbygoogle = window.adsbygoogle || []).push({});

¾ Bài toán FSVM - SVM cũng như việc xử lý chủ yếu dựa trên nền tảng các các mẫu dữ liệu gọi là các véctơ hỗ trợ tìm được trước khi thực sự tìm siêu mặt, nếu số vector hỗ trợ quá nhiều thì dẫn đến chi phí cho thời gian đi tìm siêu mặt cũng như chi phí do giai đoạn nhận dạng là rất lớn. Vì vậy FSVM - SVM thường ít thành công trong việc xử lý bài toán với khối lượng dữ liệu tập học lớn.

¾ Cũng không ít các tính chất và định lý từ thuật toán FSVM - SVM chủ yếu xuất phát từ các nhận định là chính, chưa được chứng minh chặt chẽ trên phương diện toán học.

¾ Phương pháp xác định tập vượt biên cho FSVM phi tuyến chưa có được độ đo cụ thể như trường hợp FSVM tuyến tính mà chỉ căn cứ vào các luật mờ dựa trên kết quả của SVM.

¾ Số khuôn mặt cần thiết cho mục đích nhận dạng còn thấp (chỉ mới 44 người) và tập mẫu học cho từng người cũng rất hạn chế, những mẫu khuôn mặt xuất hiện trong ảnh với những tình huống đặc biệt là rất ít, nếu trong ứng dụng thực tế mà gặp phải những trường hợp này thì có thể thất bại.

5.3.4.3. Hướng phát trin

5.3.4.3.1. Về mặt thuật toán học

¾ Với cách tiếp cận hiện nay việc ứng dụng FSVM - SVM mà nền tảng là bộ phân loại nhị phân, quá trình huấn luyện trên từng bộ phân loại nhị phân là độc lập với nhau, và bên cạnh đó việc so sánh trên từng bộ phân loại cũng xảy ra độc lập trong quá trình thử nghiệm, vì vậy một cơ chế xử lý song song có thể cải thiện được đáng kể thời gian huấn luyện cho hệ thống cũng tốc độ trong lúc nhận dạng.

KHOA CNTT –

ĐH KHTN

¾ Nghiên cứu cải tiến sử dụng các phương pháp như thuật giải di truyền.v.v… để tính chính xác các tham số mờ và cải tiến các phương pháp tính độ đo cho tập mẫu dựa trên các heuristic.

5.3.4.3.2. Về chương trình ứng dụng

¾ Cần tăng cường số lượng người cho mục đích nhận dạng và thu thập càng nhiều mẫu bổ sung cho tập học càng nhiều càng tốt.

¾ Cần kết hợp các phương pháp theo dõi đối tượng để việc nhận dạng trong thời gian thực chính xác hơn và nhanh hơn.

KHOA CNTT –

ĐH KHTN

Chương 6

Thiết kế chương trình và hướng dẫn sử dụng

6.1. Gii thiu

¾ Chương trình được cài đặt trên môi trường Microsoft Visual C++ 6.0, 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 trong thời gian thực với phương pháp tiếp cận chính là phương pháp FSVM và phương pháp dò tìm trong thời gian thực .

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

¾ Cho phép chọn webcam để thử nghiệm nhận dạng ¾ Cho phép chọn tập tin video dạng AVI để thử nghiệm ¾ Chọn phép thay đổi các thông số dò tìm khuôn mặt ¾ Cho phép thay đổi thông số nhận dạng

6.2. Thiết kế và cài đặt chương trình

¾ Chương trình được cài đặt hướng đối tượng – phi đối tượng. Sau đây là các lớp chính được thiết kế trong chương trình

9 Lớp nhận dạng theo phương pháp FSVM.

CPCA, CLocalPCA: Đây là lớp quản lý rút trích đặc trưng khuôn mặt bằng phương pháp phương pháp phân tích thành phần chính PCA và PCA cục bộ.

CSVMFaces: Đây là lớp phục vụ cho mục đích huấn luyện SVM- FSVM và nhận dạng bằng phương pháp FSVM .

CFuzzySVM (liên kết với svm_train_FUZZY) là phần lõi nhận dạng FSVM với Fuzzy Kernel RBF

KHOA CNTT –

ĐH KHTN

9 Lớp dò tìm khuôn mặt trên ảnh (adsbygoogle = window.adsbygoogle || []).push({});

CLGBFaceDetector: Đây là lớp quản lý việc dò tìm khuôn mặt theo phương pháp AdaBoost.

9 Các lớp hỗ trợ khác

CFaceToolkit: Lớp hỗ trợ các hàm xử lý toán học và xử lý ảnh linh tinh

9 Lớp tạo giao diện cho chương trình

CVideoStatic: Dùng để xuất video và webcam trên một cửa số màn hình dưới dạng khung hình nhỏ.

CImageStatic: Xuất ảnh cần nhận dạng, đã nhận dạng ra màn hình ¾ Ngoài ra đề tài còn sử dụng một số thư viện xử lý ảnh khác như:

9 Thư viện xử lý ảnh Intel Image Processing Library của Intel.

9 Thư viện thị giác máy tính Intel OpenCV Library của Intel để huấn luyện AdaBoost.

9 Thư viện LIBSVM để huấn luyện SVM

6.3. Giao din màn hình và hướng dn s dng

KHOA CNTT –

ĐH KHTN

Hình 22-Màn hình chính

Một phần của tài liệu NGHIÊN cứu và xây DỰNGHỆ THỐNG NHẬN DẠNG mặt NGƯỜIDỰA TRÊNFSVM và ADABOOST (Trang 73)