Trong bài viết này, chúng tôi đề xuất hệ thống điểm danh bằng mặt người với máy học véctơ hỗ trợ (Support Vector Machines - SVM) sử dụng đặc trưng GIST. Hệ thống điểm danh thực hiện hai bước chính là định vị khuôn mặt trong ảnh thu được từ camera và định danh đối tượng từ ảnh khuôn mặt.
Bước định vị khuôn mặt được thực hiện dựa trên các đặc trưng Haar-like kết hợp với mô hình phân tầng (Cascade of Boosted Classifiers - CBC). Chúng tôi đề xuất huấn luyện mô hình máy học SVM sử dụng đặc trưng GIST để thực hiện định danh đối tượng từ ảnh khuôn mặt.
Kết quả thực nghiệm trên tập dữ liệu gồm 6722 ảnh của 132 đối tượng là những sinh viên Khoa CNTT-TT, Trường Đại học Cần Thơ cho thấy máy học SVM sử dụng đặc trưng GIST đạt đến 99.29% độ chính xác trên tập kiểm tra, cao hơn khi so với mô hình mạng nơron tích chập (Convolutional Neural Network - CNN)
Máy học SVM sử dụng mô hình túi từ (Bag-of-Words - BoW) của đặc trưng SIFT (Scale-Invariant Feature Transform), Bayes thơ ngây với láng giềng gần nhất (Naïve Bayes Nearest Neighbor - NBNN) sử dụng đặc trưng SIFT có độ chính xác lần lượt là 96.88%,97.54% và 98.88%.
Hệ thống điểm danh bằng mặt người thực hiện rút trích tự động khuôn mặt người trong ảnh thu được từ camera (webcam) và xác định danh tính của đối tượng trong hệ thống dựa vào nội dung của ảnh khuôn mặt rút trích được.
Nhận dạng tự động khuôn mặt có thể ứng dụng nhiều trong thực tiễn như camera giám sát, hệ thống máy chấm công , chú thích ảnh tự động, lưu trữ thông tin khuôn mặt ở các máy ATM, tìm kiếm và xác minh tội phạm.
Hệ thống điểm danh thực hiện nhận dạng khuôn mặt người qua 2 bước chính: định vị khuôn mặt trong ảnh thu được từ camera và định danh đối tượng từ ảnh khuôn mặt.
Trong bài báo của [Zhao et al., 2003] trình bày các nghiên cứu trước đây trong nhận dạng khuôn mặt người. Rút trích tự động khuôn mặt trong ảnh thu được từ camera dựa trên mô hình mạng nơron [Vaillant et al., 1993] hoặc đặc trưng haar-like kết hợp với mô hình phân tầng (Cascade of Boosted Classifiers - CBC) [Viola & Jones, 2001].
Để xác định danh tính của đối tượng trong hệ thống dựa vào nội dung của ảnh khuôn mặt, nghiên cứu trước đây sử dụng các đặc trưng như mắt, tai, màu tóc, độ dày môi để tự động nhận dạng. [Belhumeur et al., 1996], [Turk & Pentland, 1991] sử dụng phương pháp phân tích thành phần chính (Principal Component Analysis - PCA) và thuật toán eigenfaces để nhận dạng khuôn mặt.
Các hướng nghiên cứu gần đây [Aly, 2006], [Bosch et al., 2006], [Geng & Jiang, 2009], [Do, 2011], [Châu etal., 2013, 2014] dựa vào phương pháp biểu diễn ảnh bằng các nét đặc trưng không đổi với những biến đổi tỉ lệ (ScaleInvariant Feature Transform - SIFT [Lowe, 2004]).
Đặc trưng cục bộ SIFT không bị thay đổi trước những biến đổi tỉ lệ ảnh, tịnh tiến, phép quay, không bị thay đổi một phần đối với phép biến đổi hình học affine (thay đổi góc nhìn) và mạnh với những thay đổi về độ sáng, nhiễu và sự che khuất.
Để định danh đối tượng từ ảnh khuôn mặt người, [Aly,2006] đề xuất so khớp các đặc trưng SIFT trong khi nghiên cứu của [Châu et al., 2013, 2014] kết hợp giải thuật Bayes thơ ngây với láng giềng gần nhất (Naïve Bayes Nearest Neighbor - NBNN [Boiman et al., 2008]) và đặc trưng SIFT.
[Bosch et al., 06], [Do, 2011] đề xuất huấn mô hình máy học, chẳng hạn SVM [Vapnik, 1995] trên mô hình biểu diễn túi từ (Bag-of-Words – BoW được tạo từ các đặc trưng SIFT) cho phân lớp ảnh. Nghiên cứu của [Durr et al., 2015],[Parkhi et al., 2015] đề xuất xây dựng mô hình học sâu mạng nơron tích chập (Convolutional Neural Network - CNN [LeCun & Bengio, 1995], [LeCun et al., 2015]).
Trong bài viết này, chúng tôi đề xuất hệ thống điểm danh bằng mặt người sử dụng đặc trưng GIST [Oliva & Torralba, 2001] và máy học SVM [Vapnik, 1995]. Bước định vị khuôn mặt trong ảnh thu được từ camera được thực hiện tự động bằng mô hình phân tầng CBC của [Viola & Jones, 2001] sử dụng các đặc trưng Haar-like.
Tiếp theo, hệ thống thực hiện rút trích đặc trưng GIST từ ảnh khuôn mặt và huấn luyện mô hình máy học SVM để định danh đối tượng từ ảnh khuôn mặt.
Kết quả thực nghiệm trên tập dữ liệu gồm 6722 ảnh của 132 đối tượng là những sinh viên Khoa CNTT-TT, Trường Đại học Cần Thơ cho thấy hệ thống chúng tôi đề xuất (SVM-GIST) đạt đến 99.29% độ chính xác trên tập kiểm tra, cao hơn khi so với mô hình mạng nơron tích chập (CNN), máy học SVM sử dụng mô hình túi từ của đặc trưng SIFT (SVM-BoW-SIFT), Bayes thơ ngây với láng giềng gần nhất sử dụng đặc trưng SIFT (NBNNSIFT) có độ chính xác lần lượt là 96.88%, 97.54% và 98.88%.
Phần còn lại của bài viết được tổ chức như sau. Chúng tôi sẽ trình bày hệ thống điểm danh bằng mặt người với đặc trưng GIST và giải thuật máy học SVM trong phần 2. Kết quả thực nghiệm sẽ được trình bày trong phần 3 trước khi kết luận và hướng phát triển được trình bày trong phần 4.
Một hệ thống điểm danh bằng khuôn mặt bao gồm 2 môđun chính: môđun ghi danh và môđun điểm danh danh trình bày trong hình 1.
Môđun ghi danh thực hiện các bước: thu ảnh của các đối tượng trong hệ thống từ camera (webcam), định vị tự động khuôn mặt, lưu ảnh khuôn mặt của các đối tượng vào cơ sở dữ liệu, rút trích đặc trưng từ ảnh khuôn mặt các đối tượng và huấn luyện mô hình nhận dạng các đối tượng trong hệ thống.
Môđun điểm danh thu ảnh từ camera, định vị khuôn mặt, rút trích đặc trưng từ ảnh khuôn mặt và sử dụng mô hình nhận dạng (được huấn luyện bởi môđun ghi danh) để định danh đối tượng.
Hình 1. Sơ đồ hệ thống điểm danh bằng khuôn mặt
Chúng ta có thể thấy rằng 2 môđun chính của hệ thống cần thực hiện 3 thao tác quan trọng: định vị tự động khuôn mặt trong ảnh thu được từ camera, rút trích đặc trưng, huấn luyện mô hình nhận dạng đối tượng trong hệ thống.
Hệ thống của chúng tôi đề xuất thực hiện:
- Định vị tự động nhanh, chính xác khuôn mặt trong ảnh thu được từ camera bằng mô hình phân tầng CBC [Viola & Jones, 2001] sử dụng đặc trưng Haar-like,- Rút trích đặc trưng GIST [Oliva & Torralba, 2001] và huấn luyện mô hình nhận dạng SVM [Vapnik, 1995] để định danh đối tượng từ ảnh khuôn mặt.
Ảnh thu được từ camera bao gồm khuôn mặt, phần nền và có thể có các vật thể khác. Để hệ thống điểm danh hoạt động hiệu quả, cần thiết phải định vị vùng ảnh bao quanh khuôn mặt trong ảnh. [Viola & Jones, 2001] đề xuất huấn luyện mô hình phân tầng CBC sử dụng các đặc trưng Haar-like cơ bản và mở rộng [Lienhart & Maydt, 2002] để định vị nhanh, chính xác khuôn mặt trong ảnh như trình bày trong hình 2.
Phương pháp định vị khuôn mặt bằng cách di chuyển cửa sổ trượt trên ảnh (từ trái sang phải, từ trên xuống dưới), rút trích đặc trưng Haar-like (sử dụng các mặt nạ chập ở hình 3) của vùng ứng viên (cửa sổ đang xét), đưa vào mô hình phân lớp Adaboost [Freund & Schapire, 1995] theo thứ tự từ tầng 1 đến tầng thứ N của mô hình phân tầng
CBC, nếu ở tầng thứ t mô hình ht phân lớp vùng ứng viên không phải là khuôn mặt người thì cửa sổ trượt tiếp tục đến vị trí tiếp theo trên ảnh, nếu vùng ứng viên được mô hình ht ở tầng thứ t phân lớp là khuôn mặt người thì vùng ứng viên tiếp tục chuyển đến tầng thứ t+1 để xét vùng ứng viên có phải mặt người hay không, quá trình tiếp tục cho đến khi tầng N mô hình hN phân lớp là khuôn mặt người thì vùng ứng viên được xác định là khuôn mặt người.
Ưu điểm của phương pháp đề xuất bởi [Viola & Jones, 2001] là việc rút trích đặc trưng Haar-like nhanh và đơn giản về tính toán so với các phương pháp rút trích đặc trưng khác.
Ngoài ra, mô hình phân tầng CBC đã loại bỏ hầu hết các vùng ứng viên không phải là khuôn mặt từ các tầng đầu tiên, chỉ xét rất ít vùng ứng viên ở các tầng cuối. Chính vì vậy mô hình phân tầng CBC sử dụng đặc trưng Haar-like định vị rất nhanh và chính xác khuôn mặt trong ảnh thu được từ camera.
Một khi đã định vị được khuôn mặt trong ảnh, bước tiếp theo là rút trích đặc trưng quan trọng để có thể xây dựng mô hình nhận dạng (định danh) đối tượng. Chúng tôi đề xuất sử dụng đặc trưng GIST [Oliva & Torralba, 2001] do sự đơn giản và hiệu quả của nó được minh chứng trong các vấn đề tìm kiếm ảnh [Douze et al., 2009], phân lớp ảnh,nhận dạng chữ viết tay [Do & Pham, 2015].
Đặc trưng GIST được trình bày theo định dạng véctơ có 960 thành phần (chiều) được tính toán từ kết quả của việc áp dụng 20 bộ lọc Gabor lên ảnh.
GIST có thể rút trích tập hợp các đặc trưng quan trọng như: tính tự nhiên (degree of naturalness), tính cởi mở (degree of openness), tính mở rộng (degree of expansion), độ nhám (degree of roughness) và độ chắc chắn (degree of ruggedness), cho phép trình bày cấu trúc không gian của một cảnh. Hơn nữa, đặc trưng GIST được trích chọn theo các hướng của các tần số khác nhau từ đó làm nổi bật thêm cấu trúc của ảnh.
Hình 4 mô tả các bước rút trích đặc trưng GIST từ ảnh khuôn mặt. Trước tiên, ảnh khuôn mặt cần chuẩn hóa về kích thước 128x128 và chuyển sang bước:
- Tiền xử lý: tách 3 kênh màu (đỏ, xanh lá cây, xanh dương), biến đổi tỷ lệ lôgarit (giảm chênh lệch tỷ lệ các điểm ảnh tối so với các điểm ảnh sáng), thêm các điểm ảnh biên, lọc trắng ảnh (cân bằng năng lượng phổ), lọc chuẩn hóa độ tương phản, xóa các điểm ảnh biên,- Sinh 20 bộ lọc Gabor để áp dụng lên từng ảnh (đỏ, xanh lá cây, xanh dương, đã được tiền xử lý và chuyển về miền tần số)
- Chia ảnh thành 16 vùng riêng biệt bằng nhau, tính giá trị trên mỗi vùng bằng cách lấy tổng giá trị của các điểm ảnh trên mỗi vùng chia cho số điểm ảnh của vùng, thực hiện lần lượt 20 bộ lọc trên 16 vùng của ảnh đỏ, xanh lá cây,xanh dương, thu được véctơ có 960 thành phần (chiều).
Bước rút trích đặc trưng GIST từ ảnh khuôn mặt tạo ra tập dữ liệu có m dòng (ảnh khuôn mặt), mỗi dòng có 960 chiều (đặc trưng GIST) và nhãn (đối tượng trong hệ thống).
Vì máy học SVM [Vapnik, 1995] là một trong top 10 giải thuật phân lớp hiệu quả, phổ biến trong cộng đồng khám phá tri thức và khai thác dữ liệu [Wu & Kumar, 2009], chính vì vậy chúng tôi đề xuất huấn luyện mô hình máy học SVM để nhận dạng (định danh) các đối tượng trong hệ thống.
Xét ví dụ phân lớp nhị phân tuyến tính đơn giản được mô tả như hình 5, với m phần tử x1, x2,…, xm trong không gian n chiều với nhãn (lớp) của các phần tử tương ứng là y1, y2,…, ym có giá trị 1 (lớp dương) hay giá trị -1 (lớp âm).
Giải thuật máy học SVM [Vapnik, 1995] tìm siêu phẳng tối ưu (xác định bởi véctơ pháp tuyến w và độ lệch của siêu phẳng với gốc tọa độ b) để tách dữ liệu ra 2 lớp. Máy học SVM tìm siêu phẳng tách 2 lớp ra xa nhất có thể (siêu phẳng tối ưu) dựa trên 2 siêu phẳng hỗ trợ song song của 2 lớp.
Siêu phẳng hỗ trợ của lớp +1 (w.x – b = +1) là siêu phẳng mà các phần tử xp thuộc lớp yp = +1 nằm về phía bên phải của nó, tức là: w.xp – b ≥ +1. Tương tự, siêu phẳng hỗ trợ của lớp -1 (w.x – b = -1) là siêu phẳng mà các phần tử xn thuộc lớp yn = -1 nằm về phía bên trái siêu phẳng hỗ trợ lớp -1,tức là: w.xn – b ≤ -1.
Những phần tử nằm ngược phía với siêu phẳng hỗ trợ được coi như lỗi. Khoảng cách lỗi được biểu diễn bởi zi 0 (với xi nằm đúng phía của siêu phẳng hỗ trợ của nó thì khoảng cách lỗi tương ứng zi = 0, còn ngược lại thì zi > 0 là khoảng cách từ điểm xi đến siêu phẳng hỗ trợ tương ứng của nó).
Khoảng cách giữa 2 siêu phẳng hỗ trợ được gọi là lề = 2/||w||, trong đó ||w|| là độ lớn (2-norm) của pháp véctơ w. Siêu phẳng tối ưu (nằm giữa 2 siêu phẳng hỗ trợ) cần tìm phải cực đại hóa lề (lề càng lớn, mô hình phân lớp càng an toàn) và cực tiểu hóa lỗi. Vấn đề tìm siêu phẳng tối ưu của giải thuật SVM dẫn đến việc giải bài toán quy hoạch toàn phương (1):
Phương pháp 1-vs-all (hình 6) xây dựng c mô hình SVM nhị phân, mô hình thứ ci tách lớp ci (lớp dương) ra khỏi các lớp khác (âm). Phương pháp 1-vs-1 (hình 7) xây dựng c(c-1)/2 mô hình SVM nhị phân, mỗi mô hình tách một cặp 2 lớp.
Việc phân lớp dựa vào bình chọn khoảng cách đến các siêu phẳng thu được từ SVM nhị phân. LibSVM [Chang & Lin, 2011] cài đặt phương pháp 1-vs-1 trong khi LIBLINEAR [Fan et al., 2008] cài đặt phương pháp 1-vs-all cho SVM đa lớp.
Để đánh giá hiệu quả của hệ thống điểm danh được đề xuất, chúng tôi cài đặt chương trình để định vị khuôn mặt trong ảnh thu được từ camera với mô hình phân tầng CBC sử dụng đặc trưng Haar-like bằng ngôn ngữ lập trình C/C++, thư viện OpenCV [Bradski & Kaehler, 2012]. Rút trích đặc trưng GIST từ ảnh khuôn mặt được cài đặt bằng
Ngôn ngữ lập trình C/C++. Thư viện LibSVM [Chang & Lin, 2011] được sử dụng để huấn luyện mô hình nhận dạng đối tượng.
Chúng tôi cũng muốn so sánh phương pháp đề xuất (SVM-GIST) với mô hình mạng nơron tích chập CNN [LeCun & Bengio, 1995], [LeCun et al., 2015], máy học SVM sử dụng mô hình túi từ (Bag-of-Words - BoW) của đặc trưng SIFT (SVM-BoW-SIFT) và Bayes thơ ngây với láng giềng gần nhất sử dụng đặc trưng SIFT (NBNN-SIFT).
Chương trình huấn luyện và nhận dạng của mạng tích chập CNN được cài đặt bằng ngôn ngữ lập trình Python sử dụng thư viện Tensorflow [Abadi et al., 2015].
Chương trình SVM-BoW-SIFT, NBNN-SIFT cũng được cài đặt bằng ngôn ngữ lập trình C/C++ sử dụng thư viện OpenCV. Tất cả các thí nghiệm được chạy trên máy tính cá nhân, cài hệ điều hành Linux Fedora 20, bộ vi xử lý Intel® Core i7-4790, 3.6 GHz, 4 nhân và bộ nhớ RAM 32 GB.
Thí nghiệm được thực hiện trên tập dữ liệu gồm 6722 ảnh khuôn mặt của 132 đối tượng là những sinh viên Khoa CNTT-TT, Trường Đại học Cần Thơ.
Chúng tôi tiến hành huấn luyện mô hình định vị khuôn mặt bằng cách tạo chỉ mục, vị trí khuôn mặt trong các ảnh, tạo tập dữ liệu không có khuôn mặt, huấn luyện mô hình phân tầng CBC có 20 tầng, tỷ lệ nhận dạng khuôn mặt tối thiểu là 99.90% và tỷ lệ nhận dạng lầm khuôn mặt tối đa không quá 50%.
Thời gian huấn luyện mô hình mất khoảng 7 giờ, tuy nhiên thời gian định vị khuôn mặt chỉ khoảng 15 mili giây với độ chính xác 98%.
Chương trình định vị khuôn mặt trong ảnh thu được từ camera để thu thập tập dữ liệu ảnh dùng trong thực nghiệm định danh đối tượng trong hệ thống. Ảnh khuôn mặt được chuẩn hóa về kích thước 128x128 để có thể dễ dàng xây dựng mô hình nhận dạng đối tượng trong hệ thống.
Tập dữ liệu khuôn mặt được chia ngẫu nhiên thành hai tập: huấn luyện gồm 4482 ảnh và kiểm tra gồm 2240 ảnh. Chúng tôi sử dụng tập huấn luyện để huấn luyện các mô hình nhận dạng SVM-GIST, CNN, SVM-BoW-SIFT,NBNN-SIFT. Sau đó, sử dụng các mô hình thu được để nhận dạng các đối tượng trong tập kiểm tra.
Trong đề xuất SVM-GIST của chúng tôi, bước rút trích đặc trưng GIST tạo ra tập dữ liệu dạng bảng, mỗi dòng tương ứng là ảnh khuôn mặt có 960 chiều và nhãn là đối tượng tương ứng trong hệ thống. Chúng tôi sử dụng thư viện LibSVM [Chang & Lin, 2011] để huấn luyện mô hình SVM nhận dạng đối tượng.
Mô hình SVM sử dụng hàm nhân RBF vì tính tổng quát và tính hiệu quả. Chúng tôi cũng điều chỉnh siêu tham số γ của hàm nhân RBF và hằng số C (tham số dung hòa lỗi và độ rộng của lề SVM) để có được kết quả cao nhất dựa trên nghi thức kiểm tra chéo từ tập dữ liệu huấn luyện. Bộ tham số tối ưu tìm được là γ = 0.01 và C = 100000.
Mô hình mạng CNN [LeCun & Bengio, 1995], [LeCun et al., 2015] để nhận dạng đối tượng được huấn luyện từ tập ảnh khuôn mặt cũng được điều chỉnh để đạt độ chính xác cao trên tập huấn luyện bằng nghi thức kiểm tra chéo.Kiến trúc mạng CNN như hình 8. Bộ tham số như tốc độ học =0.001, batch_size = 128, số lượng epochs = 100 được điều chỉnh để đạt kết quả nhận dạng tối ưu.
Phương pháp SVM-BoW-SIFT rút trích đặc trưng SIFT, xây dựng mô hình túi từ BoW với 5000 từ dựa trên nghiên cứu [Bosch et al., 2006], [Do, 2011]. Huấn luyện mô hình nhận dạng SVM sử dụng hàm nhân RBF với bộ tham số tối ưu là γ = 0.005 và C = 100000, tìm được bằng nghi thức kiểm tra chéo trên tập dữ liệu huấn luyện.
Phương pháp NBNN [Boiman et al., 2008] sử dụng đặc trưng SIFT thực hiện nhận dạng ảnh đối tượng bằng tính toán trực tiếp khoảng cách (dựa trên các véctơ mô tả đặc trưng) từ ảnh truy vấn đến lớp (đối tượng). Phương pháp
NBNN-SIFT là mô hình phi tham số.
Các mô hình được xây dựng dựa trên tập huấn luyện có 4482 ảnh và kết quả được ghi nhận dựa trên tập kiểm tra gồm 2240 ảnh của 132 đối tượng trong hệ thống. Kết quả thực nghiệm thu được như trình bày trong bảng 1, hình 9,hình 10.
Bảng 1. So sánh hiệu quả của các phương pháp nhận dạng khuôn mặt theo độ chính xác (%), thời gian huấn luyện (phút),thời gian nhận dạng (phút)
Xét về thời gian huấn luyện mô hình nhận dạng (tổng thời gian rút trích đặc trưng và huấn luyện mô hình nhận dạng) và thời gian nhận dạng (tổng thời gian rút trích đặc trưng và nhận dạng). Phương pháp NBNN-SIFT có thời gian huấn luyện 1 phút, nhanh nhất do không phải huấn luyện mô hình mà chỉ rút trích đặc trưng SIFT tuy nhiên khi nhận dạng mất 8.65 phút.
SVM-GIST cần 4.65 phút cho huấn luyện và 1.95 phút cho nhận dạng. SVM-BoW-SIFT cần 16.20 phút để huấn luyện mô hình nhận dạng trong khi cần chỉ 1.10 phút để nhận dạng.
Mạng tích chập hoàn thành huấn luyện mô hình nhận dạng trong 144 phút và quá trình nhận dạng mất 1.30 phút.Kết quả thực nghiệm cho thấy SVM-GIST cho kết quả nhận dạng nhanh, chính xác khi so sánh với các phương pháp CNN, SVM-BoW-SIFT, NBNN-SIFT.
Chúng tôi vừa trình bày một hệ thống điểm danh bằng mặt người với máy học SVM sử dụng đặc trưng GIST.Hệ thống điểm danh thực hiện định vị khuôn mặt trong ảnh thu được từ camera bằng mô hình phân tầng CBC sử dụng đặc trưng Haar-like, đáp ứng được tiêu chí về tốc độ và độ chính xác trong định vị.
Hệ thống thực hiện nhận dạng đối tượng trong hệ thống bằng ảnh khuôn mặt với mô hình máy học SVM và đặc trưng GIST (SVM-GIST). Ngoài ra để đánh giá hiệu quả của sự kết hợp của đặc trưng GIST và SVM, chúng tôi cũng đã nghiên cứu và làm thực nghiệm với các đặc trưng (SIFT-BOW) và các phương pháp phân lớp khác (NBNN, CNN).
Kết quả thực nghiệm trên tập dữ liệu gồm 6722 ảnh của 132 đối tượng là những sinh viên Khoa CNTT-TT,Trường Đại học Cần Thơ cho thấy phương pháp đề xuất SVM-GIST đạt đến 99.29% độ chính xác trên tập kiểm tra,cao hơn khi so với mô hình mạng nơron tích chập CNN, máy học SVM sử dụng mô hình túi từ BoW của đặc trưng SIFT (SVM-BoW-SIFT), Bayes thơ ngây với láng giềng gần nhất sử dụng đặc trưng SIFT (NBNN-SIFT).
Kết quả này cho thấy rằng sự kết hợp của đặc trưng GIST và SVM cho kết quả tốt nhất trong các phương pháp.
=============================