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
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 điểm
¾ 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 điểm
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.
¾ 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 triển
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. Giới thiệu
¾ 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
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 diện màn hình và hướng dẫn sử dụng
KHOA CNTT –
ĐH KHTN
Hình 22-Màn hình chính
Màn hình chính bao gồm khung xem cơ sở dữ liệu, khung xem ảnh /video/ webcam, khung xem kết quả và khung chọn cấu hình.
KHOA CNTT –
ĐH KHTN
Hình 23-Màn hình cỏ sở dữ liệu
Màn hình cơ sở dữ liệu bao gồm danh sách tên bên trái, danh sách các hình của người có tên tương ứng.
¾ Màn hình chọn thông số dò tìm và nhận dạng
Hình 24-Màn hình chọn thông số
Màn hình thông số bao gồm các tính năng :
o Chọn kiểu nhận dạng Fuzzy SVM hay SVM thuần túy.
o Chọn kiểu trích đặc trưng cục bộ hay toàn cục.
KHOA CNTT –
ĐH KHTN
Hình 25-Màn hình nhận dạng ảnh tĩnh
Màn hình nhận dạng ảnh tĩnh cho phép chọn tập tin ảnh, kết quả dò tìm sẽ hiển thị lên ảnh bằng khung đỏ, còn kết quả nhận dạng sẽ hiểu thị ở phía dưới, bên trái là ảnh gần giống nhất. Còn ở giữa hiển thị tên nhận ra, thời gian dò tìm và thời gian nhận dạng.
KHOA CNTT –
ĐH KHTN
Hình 26-Màn hình nhận dạng Video
Màn hình nhận dạng video cho phép chọn tập tin video/AVI , kết quả dò tìm sẽ hiển thị lên ảnh bằng khung đỏ, còn kết quả nhận dạng sẽ hiểu thị ở phía dưới, bên trái là ảnh gần giống nhất. Còn ở giữa hiển thị tên nhận ra, thời gian dò tìm và thời gian nhận dạng.
KHOA CNTT –
ĐH KHTN
Hình 27-Màn hình nhận dạng webcam
Màn hình nhận dạng webcam cho phép chọn webcam, kết quả dò tìm sẽ hiển thị lên ảnh bằng khung đỏ, còn kết quả nhận dạng sẽ hiểu thị ở phía dưới, bên trái là ảnh gần giống nhất. Còn ở giữa hiển thị tên nhận ra, thời gian dò tìm và thời gian nhận dạng.
KHOA CNTT –
ĐH KHTN
Hình 28-Màn hình test ảnh tĩnh
Màn hình test ảnh tĩnh cho phép chọn thư mục chứa ảnh người cần test, sau đó chọn nguời tuơng ứng, kết quả hiển thị danh sách nhận đúng-sai, thời gian tương ứng. Cuối cùng là kết quả phần trăm và thời gian trung bình dò tìm và nhận dạng.
KHOA CNTT –
ĐH KHTN
Hình 29-Màn hình huấn luyện FSVM
Màn hình huấn luyện FSVM bao gồm các thông số để huấn luyện, tuy nhiên cần chú ý đến tập tin cấu hình cơ sở dữ liệu ảnh. Cấu tạo file dạng văn bản như sau :
n - Số lượng người
3*n dòng tiếp theo chứa : - Mã số người - Tên người
KHOA CNTT – ĐH KHTN Chương 7 Thực nghiệm và kết quả 7.1. Thử nghiệm bộ dò tìm khuôn mặt 7.1.1. Dữ liệu
Dữ liệu thử nghiệm phương pháp dò tìm khuôn mặt theo phương pháp AdaBoost bao gồm hai tập :
¾ Tập dữ liệu CBCL của trường đại học MIT bao gồm 472 mặt người, 23,573 không phải mặt người.
¾ Tập dữ liệu 433 ảnh gồm 44 người, trong đó 26x5 ảnh trích từ cơ sở dữ liệu ORL của AT&T và còn lại là các ảnh chụp từ webcam.
¾ Tập 50 các ảnh phức tạp có kích thước to 800x600 đến 1024x768 sưu tập từ Internet.
¾ 5 đoạn video : 1 đoạn phim quảng cáo và 4 đoạn thu từ webcam
7.1.2. Thực nghiệm trên từng bộ tham số
¾ Bảng kết quả thử nghiệm trên tập dữ liệu CBCL của trường đại học MIT: Bộ tham số Độ chính xác
25 tầng (24x24) 93.5% 22 tầng (20x20) 92.1% 20 tầng (20x20) 90.5%
KHOA CNTT –
ĐH KHTN
¾ Bảng kết quả thử nghiệm trên tập dữ liệu 44 người ứng với 3 bộ tham số chọn để huấn luyện : Bộ tham số Độ chính xác 25 tầng (24x24) 92.7% 22 tầng (20x20) 91.2% 20 tầng (20x20) 90% Bảng 4-Bảng kết quả detect với tập dữ liệu 44 người
¾ Bảng kết quả thử nghiệm tốc độ trên tập dữ liệu các ảnh trên Internet với các kích thước khác nhau phần lớn từ 800x600 đến 1024x768 Bộ tham số | kích thước ảnh 320x240 640x480 800x600 25 tầng (24x24) 40ms 64 ms 150ms 22 tầng (20x20) 38ms 82ms 122ms 20 tầng (20x20) 32ms 63ms 100ms
(* Chú ý: thử nghiệm được tiến hành trên máy Pentium IV 1.6GHz, 256 Mb RAM)
Bảng 5-Bảng kết quả detect các ảnh to trên Internet
¾ Bảng kết quả thử nghiệm tốc độ trên 3 đoạn video: 1 đoạn phim quảng cáo và 2 đoạn thu từ webcam (kích thước 320x200)
Bộ tham số Đoạn quảng cáo PEPSI Clip webcam Phương Anh Clip webcam Phú Cường webcam Clip Vũ Clip webcam 25 tầng (24x24) 47ms 48 ms 47ms 31ms 47ms 22 tầng (20x20) 62ms 47ms 32ms 16ms 31ms
KHOA CNTT –
ĐH KHTN
20 tầng
(20x20) 30ms 32ms 16ms 15ms 16ms
(* Chú ý : thử nghiệm được tiến hành trên máy Pentium IV 1.6GHz, 256 Mb RAM)
Bảng 6-Bảng kết quả detect khuôn mặt trong webcam - video
7.1.3. Nhận xét
¾ Bộ dò tìm khuôn mặt AdaBboost phân tầng dò tìm khá nhanh, số tầng càng ít thì càng nhanh song độ chính xác giảm đi chút ít.
¾ Thời gian huấn luyện AdaBoost rất lâu, mỗi tầng hết vài tiếng đồng hồ. ¾ Bộ dò tìm khuôn mặt AdaBoost nhạy cảm với độ nghiêng và góc quay của
khuôn mặt, do đó khi góc quay nhỏ hoặc góc nhìn trực diện thì hiệu suất sẽ cao hơn.
7.2. Thử nghiệm bộ nhận dạng khuôn mặt
7.2.1. Dữ liệu
Dữ liệu trong khi thử nghiệm sẽ được nhân lên 10 với các phép biến đổi mirror, dịch trái-phải-lên-xuống, do đó số lượng ảnh thực sự thử nghiệm bằng tích của số lượng ảnh thực sự vớ số phép biến đổi.
¾ Tập dữ liệu 653 ảnh của 44 người trong đó
o 26 người với 260 ảnh từ tập ảnh ORL của AT&T
o 19 người với 393 ảnh chụp từ các loại webcam với độ sáng tối khác nhau
¾ Tập dữ liệu ảnh 240 của 10 người chụp từ webcam
¾ Đoạn phim quảng cáo PEPSI và 9 video clip thu từ hai loại webcam có độ sáng và màu khác nhau
KHOA CNTT –
ĐH KHTN
¾ Kernel FSVM : RBF, đa thức ¾ Heuristic Fuzzy Kernel : RBF
¾ Hệ số Gamma của FSVM: (tốt nhất với kernel RBF và đa thức bậc 3 là 0.3 ) ¾ Hằng số C : (tốt nhất với kernel RBF và đa thức bậc 3 là 5)
¾ Phương pháp trích chọn đặc trưng PCA : PCA toàn cục, PCA cục bộ độc lập.
7.2.2.1. Tham số Heuristic Fuzzy Kernel sau khi huấn luyện
Tương ứng các kernel chính của FSVM, fuzzy kernel luôn học được các hệ số fuzzy kernel nằm trong các khoảng như sau :
Hệ số Gamma của Heuristic fuzzy kernel 0.1 0.2 0.3 Hệ số chính xác hc 0.5 0.6 0.7 Hệ số bỏ đi ht 0.1 0.2 0.3 Mũ của đa thức : d -4 -2 2 σ 0.01 0.1 .0.3
Bảng 7-Bảng kết quả các tham số Fuzzy Kernel được huấn luyện
7.2.2.2. Phương pháp FSVM so sánh các Kernel
Xét FSVM với các kernel sử dụng RBF – đa thức:
Hệ số C = 5 , gamma = 0.3 , và phương pháp PCA toàn cục
(Dữ liệu 10 người , mỗi người chỉ sử dụng 5 ảnh để huấn luyện , số ảnh test chụp từ webcam từ 10-20 ảnh , sau đó tất cả ảnh được biến đổi để nhân lên như trong quá trinh huấn luyện),
Người RBF K- đa thức bậc 2 K-đa thức bậc 3 K-đa thức bậc 4