Ảnh khuôn mặt nói riêng và ảnh số nói chung đƣợc biểu diễn thông qua các giá trị của mỗi điểm ảnh. Với một ảnh khuôn mặt đa cấp xám I có kích thƣớc r x c, chúng ta có thể nói rằng mỗi ảnh khuôn mặt đó là một lƣới các điểm ảnh với r hàng và c cột. Tổng số điểm ảnh của mỗi bức ảnh sẽ là N = rc. Ảnh I đơn giản là một ma trận với mỗi thành phần là một giá trị 8 bit đƣợc biểu diễn thông qua từng điểm ảnh riêng biệt.
Bây giờ bức ảnh dang xét đƣợc coi nhƣ một vector với độ dài N hay nõi cách khác là một điểm trong không gian N chiều. Xét một ví dụ với một ảnh đa cấp xám có kích thƣớc 128 x 128, ảnh này sẽ là một điểm trong không gian 16384 chiều. Một cách trực quan ta thấy rằng, khi kích thƣớc của ảnh tăng lên, thì giá trị N, số chiều của không gian ảnh cũng tăng theo. Vì những anhr khuôn mặt là tƣơng tự nhau nên những điểm biểu diễn ảnh khuôn mặt trong không gian ảnh sẽ không bị phân tán ngẫu nhiên trong không gian rộng mà sẽ hội tụ trong một vùng nhỏ của không gian ảnh. Có thể hiểu một cách hình thức nhƣ sau :
Hình 2.4 : Mô tả hình thức không gian cá ảnh khuôn mặt trong không gian ảnh
Từ tập dữ liệu là một tập ảnh của một vài ngƣời, ta biểu diễn là một vector N chiều với M là tổng số vector.
Tiếp theo ta tính khuôn mặt trung bình của tập dữ liệu :
Tiếp theo ta trừ mỗi ảnh khuôn mặt trong tập dữ liệu cho ảnh trung bình :
Tiếp theo ta tính các vector riêng và giá trị riêng của ma trận hiệp phƣơng sai.
Vì mỗi bức ảnh đƣợc coi nhƣ một vector N chiều, và nhƣ vậy ma trận hiệp phƣơng sai C sẽ cso kích thƣớc là N2. Đây là một ma trận khổng lồ và việc tính toán hết các vector riêng là coi nhƣ không thể. Một ví dụ đơn giản : Nếu ảnh khuôn mặt huấn luyện có kích thƣớc 128 x 128 vector ảnh sẽ có chiều dài là 16384, và đƣơng nhiên nó sẽ cho ta ma trận hiên phƣơng sai 16384 x 16384 và thật sự ta sẽ phải trả giá đắt cho việc tính toán trên ma trận hiệp phƣơng sai nhƣ vầy.
Tại đây ta có thể tận dụng một kết quả của đại số để giảm nhẹ chi phí tính toán.
Đầu tiên ta xét ma trận A nhƣ sau :
Coi vi là vector riêng ứng với giá trị riêng i của ma trận ATA. Ta có :
Thực hiện biến đổi nhân cả hai vế với A, ta có :
Từ đây ta nhận thấy Avi là vector riêng của ma trận hiệp phƣơng sai C với i là giá trị riêng tƣơng ứng. Tức là ta có thể giải quyết bài toán trên ma trận M x M thay vì ma trận N x N nhƣ cũ. Tức là nếu với 100 ảnh huấn luyện có kích thƣớc 128 x 128, ta có thể giải quyết ma trận 100 x 100 thay cho 16384 x 16384 nhƣ cũ.
Các vector riêng ( eigenface ) tính đƣợc :
Có một vấn đề là khi tính toán ta nên lấy bao nhiêu eigenface thì đủ. Theo Sirovich và Kirby thì với tập dữ liệu 115 bức ảnh mà họ đã sử dụng, 40 eigenface là một lựa rất tốt.
Bây giờ ta cần thực hiện việc phát hiện khuôn mặt với ảnh đầu vào. Nhiệm vụ cụ thể là với 1 ảnh đầu vào ta trả lời câu hỏi ”Ảnh đó có phải ảnh khuôn mặt không ?”.
Đầu tiên ta chiếu nhr đó vào không gian mặt, tính vector trọng số :
Trong đó M' là số vector riêng tốt nhất đƣợc chọn.
Để phân lớp ta tính khoảng cách đến không gian mặt, khoảng cách đó đƣợc tính nhƣ sau :
2.1.2. Phương pháp sử dụng đặc trưng Haar kết hợp Adaboost
2.1.2.1. Adaboost
Boosting là kỹ thuật dùng để tăng độ chính xác cho các thuật toán học (Learning algorithm). Nguyên lý cơ bản của nó là kết hợp các weak classifiers thành một strong classifier. Trong đó, weak classifier là các bộ phân loại đơn giản chỉ cần có độ chính xác trên 50%. Bằng cách này, chúng ta nói bộ phân loại đã đƣợc “boost”.
Adaboost là một tiếp cận boosting đƣợc Freund và Schapire đƣa ra vào năm 1995. Adaboost cũng hoạt động trên nguyên tắc kết hợp tuyến tính các weak classifiers để có một strong classifier.
Là một cải tiến của tiếp cận boosting, Adaboost sử dụng thêm khái niệm trọng số (weight) để đánh dấu các mẫu khó nhận dạng. Trong quá trình huấn luyện, cứ mỗi weak classifier đƣợc xây dựng, thuật toán sẽ tiến hành câp nhật lại trọng số để chuẩn bị cho việc xây dựng weak classifier kế tiếp: tăng trọng số của các mẫu bị nhận dạng sai và giảm trọng số của các mẫu đƣợc nhận dạng đúng bởi weak classifier vừa xây dựng. Bằng cách này, các weak classifier sau có thể tập trung vào các mẫu mà các weak classifiers trƣớc nó chƣa làm tốt. Sau cùng, các weak classifiers sẽ đƣợc kết hợp tùy theo mức độ “tốt” của chúng để tạo dựng nên strong classifier.
Có thể hình dung một cách trực quan nhƣ sau: để biết một ảnh có phải là bàn tay hay không, ta hỏi T ngƣời (tƣơng đƣơng với T weak classifiers xây dựng từ T vòng lặp của boosting), đánh giá của mỗi ngƣời (tƣơng đƣơng với một weak classifier) chỉ cần tốt hơn ngẫu nhiên một chút (tỉ lệ sai dƣới 50%). Sau đó, ta sẽ đánh trọng số cho đánh giá của từng ngƣời (thể hiện qua hệ số α), ngƣời nào có khả năng đánh giá
tốt các mẫu khó thì mức độ quan trọng của ngƣời đó trong kết luận cuối cùng sẽ cao hơn những ngƣời chỉ đánh giá tốt đƣợc các mẫu dễ. Việc cập nhật lại trọng số của các mẫu sau mỗi vòng boosting chính là để đánh giá độ khó của các mẫu (mẫu càng có nhiều ngƣời đánh giá sai là mẫu càng khó).
Các weak classifiers hk(x) đƣợc biểu diễn nhƣ sau:
Trong đó:
• x = (x1, x2,..., xn): vector đặc trƣng của mẫu. • θ: ngƣỡng
• fk : hàm lƣợng giá vector đặc trƣng của mẫu • pk: hệ số quyết định chiều của bất phƣơng trình
Sơ đồ thuật toán Adaboost :
1. Cho một tập huấn luyện gồm n mẫu có đánh dấu (x1, y1), (x2, y2),...., (xn, yn) với xkЄ X = (xk1, xk2, ..., xkm) là vector đặc trƣng và yk Є {-1, 1} là nhãn của mẫu (1 ứng với object, -1 ứng với background).
2. Khởi tạo trọng số ban đầu cho tất cả các mẫu: w1,k =
n
1
3. Xây dựng T weak classifiers Lặp t = 1, .., T
Chuẩn hóa trọng số :
weak classifier hjvới ngƣỡng θj và lỗi εj εj = | ( ) | 1 , j k k n k k t h x y w Chọn ra hj với εj nhỏ nhất ta đƣợc ht : ht : X →{1, -1} Cập nhật lại trọng số Trong đó : - ei = 0 nếu xi đƣợc phân lớp chính xác ei = 1 nếu ngƣợc lại. -
4. Strong classifier xây dựng đƣợc :
2.1.2.2. Đặc trưng Haar
Đặc trƣng Haar là một loại đặc trƣng thƣờng đƣợc dùng cho bài toán nhận dạng trên ảnh. Đặc trƣng Haar đƣợc xây dựng từ các hình chữ nhật nhằm mục đích tính độ chêch lệch giữa giá trị các điểm ảnh trong các vùng kề nhau.
Giá trị của đặc trƣng đƣợc tinh bằng tổng giá trị các điểm ảnh trong vùng màu trắng trừ đi tổng các điểm ảnh trong các vùng màu đen.
Hình 2.5 : Vài đặc trƣng Haar cơ bản
Một điểm mạnh của đặc trƣng Haar là có thể biểu diễn đƣợc các thông tin về mối liên hệ giữa các vùng trong một bức ảnh. Ví dụ :
Hình 2.6 : Áp dụng đặc trƣng Haar vào ảnh
Viola và Jones đã đƣa ra khái niệm ảnh tích phân ( Integral Image) để tính nhanh các đặc trƣng Haar.
Lienhart kế thừa (gọi Integral Image là SAT Summed Area Table) và đƣa ra thêm khái niệm RSAT – Rotated Summed Area Table để tính toán nhanh cho các đặc trƣng xoay 1 góc 45º.
Hình 2.7 : Vài đực trƣng Haar đƣợc xây dựng
Với SAT :
Hình 2.8 : Mô tả về SAT
Ảnh tích phân tại các điểm (x, y) :
Cách tính nhanh các phần tử của bảng SAT :
Với SAT(-1, y) = SAT(x, -1) = SAT(-1, -1) = 0; Cách tính nhanh các đặc trƣng hình chữ nhật : SUM( D ) = 4 + 1 – 2 – 3 ;
Hình 2.9 : Mô tả về RSAT
Hình 2.10 : Mô tả về RSAT
Ảnh tích phân tại các điểm (x, y) :
2.1.3. Phương pháp sử dụng máy vector hỗ trợ
Phƣơng pháp nhận dạng sử dụng vector hỗ trợ(Support Vector Machine) là một trong những phƣơng pháp hệu quả. Phƣơng pháp SVM kinh điển đƣợc sử dụng cho bài toán nhận dạng 2 lớp: phân chia một tập véc-tơ đầu vào thành 2 nhóm khác nhau. Ta có p cặp số liệu (x(i), d(i)) với i = 1, 2, …, p và d(i) {-1, 1}. Giá trị d(i) = 1 có nghĩa là x(i) thuộc về nhóm thứ nhất, còn d(i) = -1 có nghĩa là x(i) thuộc về ngóm thứ hai. Việc xây dựng mô hình nhận dạng tuyến tính tƣơng đƣơng với việc xác định một mặt siêu phẳng g(x) = wTx + b với các tham số (w, b) sao cho:
wTx(i) + b > 0 d(i) = 1 wTx(i) + b < 0 d(i) = -1
Hình 2.11: Ví dụ hai nhóm mẫu có thể đƣợc phân tách bằng nhiều đƣờng khác nhau
Nhƣ vậy, nhiệm vụ của mặt siêu phẳng là phân chia không gian véc-tơ đặc tính thành hai nửa, mỗi nửa sẽ chứa các véc-tơ thuộc về một
nhóm. Trong trƣờng hợp các véc-tơ của hai nhóm có thể chia bằng một siêu phẳng ta thấy rằng có vô số mặt siêu phẳng thoả mãn điều kiện trên. Trên hình ta có ví dụ cho tập véc-tơ trong không gian 2 chiều với 3 đƣờng thẳng g1, g2, g3 phân chia chính xác hai tập.
Mục tiêu của phwuowng pháp SVM là tìm siêu phẳng phải có biên độ phân tách lớn nhất. Biên độ phân tách đƣợc tính bằng khoảng cách giữa hai mặt siêu phẳng song song với các mặt siêu phẳng nghiệm và đi qua các véc-tơ có khoảng cách nhỏ nhất tới mặt siêu phẳng nghiệm. Các mặt siêu phẳng biên giới và biên độ phân tách đƣợc mô tả nhƣ sau.
Hình 2.12: Đƣờng thẳng phân tách hai nhóm mẫu với biên độ phân tách lớn nhất
Không làm giảm tính tổng quát, ta có thể đƣa hệ điệu kiện về hệ điều kiện nhƣ sau:
Hay
Và đƣa về điều kiện duy nhất là với mọi i. Có thể dễ dàng nhận thấy với điều kiện này thì các véc-tơ nằm trên hai mặt phẳng biên giới sẽ thoả mãn điều kiện với dâu „=‟.Đồng thời các véc-tơ này cũng sẽ quyết định về vị trí của các mặt phẳng biên giới cũng nhƣ mặt phẳng nghiệm. Do đó các véc-tơ này đƣợc gọi là các vec-tơ hỗ trợ (Support Vector).
Dựa trên các kết quả toán học đã đƣợc chứng mính, bài toán xác định siêu phẳng nghiệm sẽ trở thành bài toán tƣơng đƣơng sau
với các ràng buộc
với i = 1, 2, , …p
Trong trƣờng hợp hai tập số liệu không thể phân tách đƣợc bằng một siêu phẳng, có nghĩa là với mọi siêu phẳng ta đều có ở mỗi phía của siêu phẳng này đều có các véc-tơ của cả hai tập hợp. Khi đó ta xây dựng hàm cần tính cực tiểu nhƣ sau ( Corinna Cortes và Vladimir Vapnik, 1995 ):
với các bất đẳng thức ràng buộc tuyến tính:
Các cách xây dựng siêu phẳng vừa đƣợc đề cập đều tạo ra bộ phân lớp tuyến tính ( linear classifier ). Tuy nhiên, năm 1992, Bernhard Boser, Isabelle Guyon và Vapnik đề cập cách tạo bộ phân lớp phi tuyến ( non-linear classifier ) bằng cách sử dụng hàm nhân ( kernel function ).
Một vài hàm nhân cơ bản : K( xi, xj) = (γ xiT
xj + r)d, γ>0 K( xi, xj) = exp( -||xi- xj||2 ) , γ>0
2.2. Đánh giá độ tƣơng tự giữa 2 ảnh mặt.
Các mô hình độ tƣơng tự về ảnh đều có thể nghiên cứu dựa trên bài toán tra cứu ảnh trong một tập ảnh cho trƣớc. Bài toán yêu cầu đƣa ra kết quả là bảng xếp hạng về độ đo tính tƣơng tự của tập ảnh so với ảnh tra cứu. Với bài toán này, chúng ta sẽ tiến hành nghiên cứu một số kỹ thuật đánh giá độ tƣơng tự dựa trên những mô hình tiêu biểu dƣới đây.
2.2.1. Mô hình không gian vector VSM
Trong mô hình này, nội dung mỗi ảnh đƣợc trích chọn thành vector đặc trƣng, cơ sở dữ liệu ảnh là cơ sở dữ liệu lƣu trữ các vector đặc trƣng. Phần lớn các đặc trƣng của ảnh đều có thể đƣợc xác định qua histogram (color histogram, texture histogram, invariant feature histogram, local feature histogram, gabor feature histogram). Trong mô
hình không gian vector, các histogram đƣợc chuẩn hoá tức là các bin có giá trị tới hạn là 1. Từ trƣớc đến nay, trong các bài toán tính toán độ tƣơng tự giữa 2 ảnh dựa trên histogram, việc sử dụng chuẩn l1 có dạng
1
0| 1( ) 2( )|
N
j h j h j
[16] trong đó phép tổng đƣợc tính trên tất cả các bin, luôn cho kết quả tốt. Vì dạng chuẩn l1 đƣợc định nghĩa là không gian vector cho nên chúng đƣợc đặt cái tên là mô hình không gian vector (VSM) [17].
2.2.1.1. So sánh ngang các bin histogram (bin-by-bin)
Việc so sánh histogram (vector đặc trƣng ảnh) theo kiểu bin-by- bin thƣờng đƣợc tính toán nhanh chóng bởi phép so sánh chỉ tính đến độ lớn của bin mà không tính đến vị trí của bin.
– độ tƣơng tự giữa a) và b) phải lớn hơn giữa b) và c)
0 cho thấy nếu so sánh kiểu bin-by-bin thì phép so sánh histogram của hình a) và b) so với của a) và c) là tƣơng tự nhau, song về trực quan rõ ràng là độ tƣơng tự của hình a) và b) lớn hơn so với a) và c) – (xét trên góc độ đây là histgram màu của ảnh xám chẳng hạn) [12].
a. Độ tƣơng tự qua histogram đồng nhất (histogram intersection)
Nhƣ ta đã biết, dựa vào không gian màu của ảnh, histogram của ảnh đƣợc xác định bằng cách tách biệt các màu sắc của ảnh theo các thành phần màu sắc (3 thành phần màu sắc trên hệ 3 chiều) và đếm số lƣợng có đƣợc từ ảnh của các màu này. Vì vậy, màu của bức ảnh đƣợc
ánh xạ tới không gian màu gồm bộ n màu. Histogram màu của một ảnh
I là một véc tơ n chiều Hi(j), trong đó mỗi phần tử đại diện cho tần suất xuất hiện của màu j trong ảnh I .
Phép chỉ số hoá màu sắc cho phép nhận dạng ảnh hoặc các thành phần ảnh dựa trên sự phân bố histogram màu của các điểm ảnh, Swain và Ballard giới thiệu phƣơng pháp đối sánh histogram và gọi là histogram intersection. Cho cặp histogram H(I) và H(I') của các ảnh I
và I' tƣơng ứng, mỗi trong chúng gồm n bin. Histogram intersection định nghĩa nhƣ sau [4]: ) ) ' ( ), ( min( ) ' ( ) ( 1 n j j j I H I H I H I H
Với hai ảnh, giá trị của histogram intersection càng lớn thì độ tƣơng tự của hai ảnh càng cao.
Một số nghiên cứu thêm cho thấy rằng, hiệu quả của phƣơng pháp histogram intersection chịu ảnh hƣởng của các yếu tố nhƣ: hệ màu lựa chọn là gì và số lƣợng bin màu chọn là bao nhiêu.
Với lựa chọn hệ RGB, cách xây dựng công thức đánh giá độ tƣơng tự của một cặp ảnh nhƣ sau:
Gọi IR,IG,IB là các histogram màu chuẩn hoá của một ảnh trong cơ sở dữ liệu và tƣơng ứng QR,QG,QB là các histogram màu chuẩn hoá của ảnh dùng để tra cứu. Độ tƣơng tự giữa 2 ảnh trên là SHIC(I,Q) đƣợc tính theo công thức sau [9]:
3 * |) | |, min(| )) ( ), ( min( )) ( ), ( min( )) ( ), ( min( ) , ( Q I b Q b I g Q g I r Q r I Q I SHIC r R R g G G b B B
Lƣu ý rằng giá trị đo độ tƣơng tự trên nằm trong khoảng [0,1]. Nếu các histogram I và Q là nhƣ nhau thì rõ ràng giá trị trên là 1. Rõ ràng rằng, nếu một trong 2 ảnh trên nằm trong ảnh còn lại thì giá trị độ tƣơng tự cũng sẽ là 1.
b. Độ tƣơng tự qua khoảng cách Minkowski
Nếu mỗi chiều của vector đặc trƣng của ảnh phụ thuộc vào chiều khác và cùng đóng vai trò quan trọng nhƣ nhau thì khoảng cách