Phương pháp của chúng tôi dựa trên hai hướng
tiếp cận chính là: Xác định điểm đặc trưng bằng luật và trích chọn đặc trưng dùng bộ
lọc Gabor kết hợp với phương pháp học máy Suport Vector Machine. Trong hướng
tiếp cận bằng luật, chúng tôi xác định 6 điểm đặc trưng là hai mống mắt, hai điểm lỗ
mũi và hai khóe miệng.
67 trang |
Chia sẻ: lylyngoc | Lượt xem: 4188 | Lượt tải: 5
Bạn đang xem trước 20 trang tài liệu Luận văn Trích chọn đặc trưng trên khuôn mặt người, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
hép chiếu toàn bộ.
Để dò tìm khóe miệng sử dụng hai phương pháp:
+ Tìm điểm ảnh có độ xám lớn nhất trong các vùng dự kiến sau đó tìm xác định điểm
khóe miệng sẽ nằm trên đường giữa 2 môi.
+ Tìm phần có giá trị điểm ảnh tối nhất trên đường giữa hai môi, chắc chắn khoảng
cách giữa 2 vùng đảm bảo điều kiện thỏa mãn về khoảng cách giữa 2 khóe miệng trên
thực tế và chọn vị trí có độ tương phản là cao nhất.
Hình 8 − Xác định 2 đường biên ngang của môi.
Phương pháp trên có một số những ưu điểm như thỏa mãn điều kiện thực thi với thời
gian thực. Một số phương pháp có thể áp dụng với những độ phân giải khác nhau (với
cả độ phân giải thấp), tuy nhiên vẫn có trường hợp phát hiện ra lông mày thay vì mắt.
Tian [4] đã giải quyết vấn đề bằng cách phát hiện cả vùng mắt và lông mày. Bằng cách
đó, không chỉ trích chọn được thêm đặc trưng mà tỷ lệ chính xác còn được tăng lên.
Đối với xác định khóe miệng, trường hợp sai là khi miệng không ở trạng thái bình
thường và phương pháp áp dụng đối với mặt trực diện hoặc gần trực diện.
Vukadinovic & Pantic [5] sử dụng Gabor – wavalets và Gentle – Boost để xây dựng hệ
thống nhận dạng tự động 20 điểm đặc trưng. Trong phương pháp, họ chia khuôn mặt
thành 20 vùng nhỏ (ROIs) và mỗi vùng ứng với một điểm đặc trưng. Mỗi một vector
Chương 3 : Trích chọn đặc trưng trên khuôn mặt Nguyễn Thành Trung
16
đặc trưng ứng với vùng ảnh kích thước 13x13 pixel, có độ lớn là 13x13x(18+1) =
8281. Những vector đặc trưng được sử dụng để xây dựng một mô hình và dự đoán một
điểm có là điểm đặc trưng hay không. Trong khi huấn luyện, mô hình đặc trưng Gentle
– boost sử dụng các vector đặc trưng trích chọn từ các ví dụ huấn luyện. Trong khi
kiểm tra, một của sổ kích thước 13x13 pixel được quét trên toàn bộ vùng quan tâm.
Với mỗi một vị trí của cửa sổ trượt, so sánh sự giống nhau giữa giá trị của cửa sổ trượt
và mô hình mẫu. Sau khi quét hết vùng quan tâm thì điểm có độ lệch với mẫu là nhỏ
nhất sẽ được chọn.
Hình 9 − Sơ đồ hệ thống tự động xác định điểm đặc trưng.
3.2.2 Phát hiện hình dáng các bộ phận trên khuôn mặt
Tian [17] phát triển phương pháp nhiều trạng thái để trích chọn đặc trưng hình học
trong hình Hình 10. Một mô hình môi 3 trạng thái miêu tả trạng thái của môi: mở,
đóng, ngậm chặt. Mô hình 2 trạng thái được dùng cho mỗi mắt, mô hình một trạng thái
cho má và lông mày. Một số đặc trưng diện mạo sử dụng mô hình 2 trạng thái: có thể
hiện và vắng mặt. Đường viền của các đặc trưng và thành phần được điều chỉnh bằng
tay trong bước khởi tạo. Sau khi khởi tạo, tất cả các thay đổi của đặc trưng sẽ được dò
tìm và phát hiện trong chuỗi ảnh. Thuật toán sử dụng các trạng thái dò tìm khác nhau
là cải tiển của thuật toán Lucas-Kanade [11]. Tuy nhiên có giới hạn là chuyển động
của đầu.
Chương 3 : Trích chọn đặc trưng trên khuôn mặt Nguyễn Thành Trung
17
Phương pháp có thể phát hiện 16 Aus với độ chính xác là 95.5% trên bộ cơ sở dữ
liệu Cohn – Kanade.
Hình 10 – Mô hình nhiều trạng thái với mặt trực diện.
3.2.3 Nhân trắc học và áp dụng với phương pháp trích chọn đặc trưng
hình học
Nhân trắc học là một ngành khoa học nghiên cứu về đo lường các thành phần khác
nhau trên cơ thể con người. Những thông tin về kích thước, vị trí của các thành phần
trên cơ thể phụ thuộc vào tri thức về chủng tộc, nhóm người. Sau khi đo đạc chính xác
Chương 3 : Trích chọn đặc trưng trên khuôn mặt Nguyễn Thành Trung
18
các chỉ số từ 300 bức ảnh của 150 người ở các vùng địa lý khác nhau có thể xây dựng
một mô hình cho khuôn mặt dùng để định vị các vùng đặc trưng từ bức ảnh khuôn mặt
Tốt hơn là sử dụng toàn bộ mốc như Farkas [28] đã dùng, trong mô hình chỉ sử dụng
một lượng nhỏ các điểm làm mốc.
Hình 11 – Mô hình nhân trắc học của mặt (a) Các điểm mốc, (b) Khoảng cách.
Bảng 1 – Tỷ lệ khoảng cách giữa các mốc.
Tỷ lệ Miêu tả Hằng số
D2/D1 Tỷ lệ khoảng cách giữa tâm mắt phải và tâm lông
mày phải với khoảng cách giữa 2 tâm mắt
~ 0.33
D3/D1 Tỷ lệ khoảng cách giữa tâm mắt trái và tâm lông
mày trái với khoảng cách giữa 2 tâm mắt
~0.33
D4/D1 Tỷ lệ khoảng cách giữa tâm 2 mắt và đỉnh mũi với
khoảng cách giữa 2 tâm mắt.
~ 0.6
D5/D1 Tỷ lệ khoảng cách giữa tâm 2 mắt và điểm giữa
miệng với khoảng cách giữa 2 tâm mắt.
~1.1
Chương 3 : Trích chọn đặc trưng trên khuôn mặt Nguyễn Thành Trung
19
3.3 Trích chọn đặc trưng diện mạo
3.3.1 Tổng quan
Một dạng khác của trích chọn đặc trưng là trích trọn đặc trưng diện mạo để xác định
những thay đổi trên khuôn mặt. Một số phương pháp tiểu biểu như : Principle
Component Analsys (PCA) [19], Gabor Wavelet Analysis [1,19] và Local Binary
Pattern [20,21] và được áp dụng trên toàn bộ bề mặt bức ảnh hoặc một phần để trích ra
các đặc trưng và phát hiện sự thay đổi của khuôn mặt
3.3.2 Mã LBP
LBP là viết tắt của Local Binary Pattern hay là mẫu nhị phân địa phương được Ojala
[29] trình bày vào năm 1996 như là một đơn vị đo độ tương phản cục bộ của ảnh.
Phiên bản đầu tiên của LBP được dùng với 8 điểm ảnh xung quanh và sử dụng giá trị
của điểm ảnh ở trung tâm làm ngưỡng. Giá trị LBP được xác định bằng cách nhân các
giá trị ngưỡng với trọng số ứng với mỗi điểm ảnh sau đó cộng tổng lại.
Kể từ khi được đưa ra, theo định nghĩa là bất biến với những thay đổi đơn điệu trong
ảnh đen trắng. Để cải tiến phương pháp, bổ sung thêm phương pháp tương phản trực
giao địa phương. Hình dưới minh họa cách tính độ tương phản trực giao (C) là hiệu
cấp độ xám trung bình của các điểm ảnh lớn hơn hoặc bằng ngưỡng với các điểm ảnh
thấp hơn ngưỡng. Phân phối hai chiều của mã LBP và độ tương phản cục bộ được lấy
làm đặc trưng gọi là LBP/C.
Chương 3 : Trích chọn đặc trưng trên khuôn mặt Nguyễn Thành Trung
20
Hình 12 - Ví dụ về LBP và độ tương phản cục bộ C
Nguồn gốc
Dãy LBP được Ojala [29] trình bày vào năm 2002. Định nghĩa một cấu trúc điểm
ảnh T là một phân phối đại số của cấp độ xám của P +1 (P > 0) điểm ảnh.
T = t(gc,g0,…,gp-1)
Với gc ứng với cấp độ xám của điểm ảnh trung tâm Ptt , gp (p = 0,..,1) tương ứng với P
điểm ảnh xung quanh, P điểm ảnh này nẳm trên đường tròn bán kính R và tâm là Ptt .
Hình 13 - Tập hợp các điểm xung quanh Ptt.
Không mất thông tin, có thể trừ gp đi một lượng là gc
T = t(gc,g0 – gc ,…,gp - gc)
Giả sử sự sai số giữa gp và gc là độc lập với gc, ta có thể nhân tử hóa gc như sau
T = t(gc)t(g0-gc,…,gp-1-gc)
t(gc) biểu thị xu hướng độ sáng tối của cả bức ảnh nên không liên quan đến kết cấu của
ảnh cục bộ do đó có thể bỏ qua
T~t((g0 - gc),…,(gp-1-gc))
Chương 3 : Trích chọn đặc trưng trên khuôn mặt Nguyễn Thành Trung
21
Mặc dù tính bất biến ngược với độ thay đổi tỷ lệ xám của điểm ảnh, sự khác biệt ảnh
hưởng bởi tỷ lệ. Để thu được đặc điểm bất biến với bất kỳ một sự thay đổi nào của ảnh
đen trắng (gray scale) chỉ quan tâm đến dấu của độ lệch:
T~t(s(g0 - gc),…,s(gp-1-gc))
Với s là hàm dấu s(x) =
1 𝑥 ≥ 0
0 𝑥 < 0
Trọng số 2p được dùng cho các hàm dấu s(gp-gc) để chuyển sự khác biệt giữa các điểm
ảnh bên cạnh về một giá trị duy nhất.
LBPP,R = 𝑠 𝑔𝑝 − 𝑔𝑐
𝑃−1
𝑝=0 * 2
p
Theo Eq.2 cứ P pixel thì có 2p giá trị LBPP,R trong khoảng [0,2
p
– 1] nhưng để đơn
giản ta có thể chọn một số giá trị trong 2p giá trị ký hiệu là 𝐿𝐵𝑃𝑃 ,𝑅
𝑢2
Nguyên lý phân lớp không tham biến
Trong phân lớp, sự khác biệt giữa mẫu và mô hình phân phối LBP được đánh giả
bởi kiểm tra thống kê không tham biến.Phương pháp tiếp cận này có ưu điểm là không
cần phải có những giả thiết về phân phối của các đặc trưng.
Thông thường, những kiểm tra thống kê được chọn cho mục đích là nguyên lý cross-
entropy được giới thiệu bởi Kullback (1968). Sau đó, Sokal và Rohlf (1969) gọi cách
đo này là thống kê G.
G(S,M) = 2* 𝑆𝑏𝐵𝑏=1 log
𝑆𝑏
𝑀𝑏
= 2 [𝑆𝑏 ∗ 𝑙𝑜𝑔𝑆𝑏 − 𝑆𝑏 ∗ 𝑙𝑜𝑔𝑀𝑏]𝐵𝑏=1
Với S,M kí hiệu phân phối mẫu và mô hình mong muốn. Sb và Mb là xác suất đề b
thuộc vào phân phối mẫu hoặc mô hình . B là số phần tử trong phân phối.
Thống kê G sử dụng trong phân lớp có thể viết lại như sau.
L(S,M) = − 𝑆𝑏𝐵𝑏=1 log Mb
Kiến trúc mô hình có thể xem như xử lý ngẫu nhiên có đặc tính có thể xác định bởi
phân phối LBP. Trong một phân lớp đơn giản , mỗi lớp được biểu diễn bởi một mô
hình phân phối đơn giản Mi . Tương tự , một kiến trúc mẫu không xác định có thể
miêu tả bởi phân phối S. L là một giả ma trận đo khả năng mẫu S có thể thuộc lớp i.
Chương 3 : Trích chọn đặc trưng trên khuôn mặt Nguyễn Thành Trung
22
Lớp C của một mẫu không xác định có thể được xác định bởi luật “hàng xóm gần
nhất”:
C = argminiL(S,M
i
)
Bên cạnh đó , một thống kê log-likelihood có thể xem như đơn vị đo sự khác biệt và có
thể sử dụng để liên kết nhiều bộ phân lớp giống như bộ phân lớp k-NN hoặc self-
oganizing map ( SOM). Log-likelihood đúng trong một số trường hợp nhưng không
ổn định khi mà cỡ mẫu nhỏ.Trong trường hợp này Chi-square-distance thường cho kết
quả tốt hơn :
𝑋2(S,M) =
(𝑆𝑏−𝑀𝑏)2
𝑆𝑏+𝑀𝑏
𝐵
𝑏=1
Để đạt được độ chính xác cao sử dụng giao histogram
H(S,M) = min(𝑆𝑏,𝑀𝑏)𝐵𝑏=1
Phép quay bất biến
Để không bị ảnh hưởng bởi sự quay, mỗi giá trị LBP cần quay ngược lại về vị trí
ban đầu, cách tốt nhất là tạo ra tất cả các trường hợp quay của một mẫu, sự quay có thể
định nghĩa như sau
𝐿𝐵𝑃𝑅 ,𝐼
𝑟𝑖 = min { ROR(LBPP,R,i) i=0,1,…,P-1}
Trong đó ri là viết tắt của rotation invariant ( quay bất biến), ROR(x,i) dịch vòng tròn
số nhị phân P - bit (x) i lần theo chiều kim đồng hồ.
Độ tương phản và kết cấu mẫu
Kết cấu có thể được coi là một hiện tượng hai chiều được đặc trưng bởi hai đặc tính
trực giao: cấu trúc không gian (mô hình) và độ tương phản (độ mạnh của mô hình)
Quay bất biến tương phản địa phương có thể được đo trong một hình tròn đối xứng
xunh quanh giống như LBP:
VARP,R =
1
𝑃
𝑔𝑝 − 𝜇
2𝑃−1
𝑝=0
Chương 3 : Trích chọn đặc trưng trên khuôn mặt Nguyễn Thành Trung
23
Trong đó 𝜇 =
1
𝑃
𝑔𝑝
𝑃−1
𝑝=0
Tổng hợp lại ta có : 𝐿𝐵𝑃𝑃1,𝑅1
𝑟𝑖 / VARP2,R2
3.3.3 Bộ lọc Gabor
Bộ lọc Gabor thực ra là một bộ lọc tuyến tính được sử dụng như là một phương
pháp phát hiện cạnh trong xử lý ảnh. Tần suất và hướng dùng để biểu diễn bộ lọc
Gabor tương tự như hệ thống thị giác của con người và nó được tìm ra như một cách
tiếp cận đặc biệt cho biểu diễn cấu trúc và sự phân biệt. Trong miền không gian, bộ lọc
Gabor 2 chiều là một hàm nhân Gauss được điều chỉnh bởi một mặt phẳng sóng sin.
Các bộ lọc Gabor tương tự nhau và tất cả bộ lọc được sinh ra từ Gabor-wavelet bởi sự
co giãn và xoay.
Hình 14 – Phần thực của bộ lọc Gabor với 5 tần xuất và 8 hướng với wmax = 𝝅/2, hàng
ứng với sự thay đổi tần suất, cột ứng với sự thay đổi hướng.
Một bộ lọc Gabor được định nghĩa như sau :
𝛾 𝑥,𝑦,𝜔,𝜃 =
1
2𝜋𝜎2
𝑒
−
𝑥′2+ 𝑦′2
2𝜋2 [𝑒𝑖𝜔𝑥
′
− 𝑒−
𝜔2𝜎2
2 ]
𝑥 ′ = 𝑥𝑐𝑜𝑠𝜃 + 𝑦𝑠𝑖𝑛𝜃 , 𝑦′ = −𝑥𝑠𝑖𝑛𝜃 + 𝑦𝑐𝑜𝑠𝜃
Trong đó (x,y) là vị trí điểm ảnh trong không gian, 𝜔 tần số góc , 𝜃 hướng của bộ lọc
Gabor, 𝜎 độ lệch chuẩn của hàm Gauss giữa trục x và y.
Chương 3 : Trích chọn đặc trưng trên khuôn mặt Nguyễn Thành Trung
24
Thành phần thứ 2 của bộ lọc Gabor 𝑒−
𝜔2𝜎2
2 bù cho giá trị DC bới thành phần cos khác
0 có nghĩa giá trị sin có thể bằng 0. Đặt 𝜎 = 𝜋/𝜔 thể hiện mối quan hệ giữa 𝜎 và 𝜔.
Hầu hết các trường hợp của bộ lọc Gabor đều sử dụng với 5 tần suất và 8 hướng để
trích chọn đặc trưng cho biểu diễn khuôn mặt. Chọn tần suất cực đại 𝜔𝑚𝑎𝑥 = 𝜋/2 ,
𝜔𝑚 = 𝜔𝑚𝑎𝑥 ∗ 𝜆
−(𝑚−1) , m = 1,2,3,4,5 𝜆 = 2 , 𝜃𝑛 = 𝑛 − 1 𝜋/8 , n = 1,2,3,…,8.
Biểu diễn đặc trưng Gabor
Biểu diễn đặc trưng Gabor của một bức ảnh I (x,y) được xác định bằng cách nhân xoắn
bức ảnh với Gabor-filter bank 𝛾 𝑥,𝑦,𝜔,𝜃 như sau:
𝑂𝑚 ,𝑛 𝑥, 𝑦 = 𝐼 𝑥,𝑦 ∗ 𝛾 𝑥,𝑦,𝜔,𝜃
Trong đó * ký hiệu toán tử nhân xoắn. Cường độ bức ảnh của kết quả nhân xoắn ứng
với những bộ lọc Gabor được chỉ ra trong hình trên.
Hình 15 – Một ví dụ về ảnh sau khi nhân xoắn với 48 bộ lọc Gabor
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
25
Chương 4
Xây dựng hệ thống nhận dạng các điểm đặc
trưng
4.1 Tổng quan về hệ thống
Trong chương này chúng tôi sẽ trình bày về xây dựng hệ thống nhận dạng các điểm
đặc trưng theo hướng tiếp cận đặc trưng hình học. Trong hệ thống chúng tôi xác định
20 điểm đặc trưng như sau:
Hình 16 – 20 điểm đặc trưng.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
26
Bảng 2 – Danh sách các điểm đặc trưng.
Điểm đặc trưng Miêu tả
P1 Ngoài cùng lông mày phải
P2 Trong cùng lông mày phải
P3 Trong cùng lông mày trái
P4 Ngoài cùng lông mày trái
P5 Đuôi mắt phải
P6 Trên cùng mắt phải
P7 Mống mắt phải
P8 Khoé mắt phải
P9 Khoé mắt trái
P10 Mống mắt trái
P11 Trên cùng mắt trái
P12 Đuôi mắt trái
P13 Dưới cùng mắt phải
P14 Dưới cùng mắt trái
P15 Lỗ mũi phải
P16 Lỗ mũi trái
P17 Khoé miệng phải
P18 Trên cùng môi trên
P19 Khoé miệng trái
P20 Dưới cùng môi dưới
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
27
Trong hệ thống chúng tôi xây dựng luật để xác định 6 điểm đặc trưng là 2 điểm
mống mắt (P7,P10), 2 điểm lỗ mũi (P15,P16) và 2 điểm khóe miệng (P17,P19). Với 14
điểm còn lại, chúng tôi chọn phương pháp trích chọn đặc trưng dùng bộ lọc Gabor kết
hợp với phương pháp học máy là Suport Vector Machine để nhận dạng. Cụ thể về hệ
thống sẽ được trình bày trong phần 4.2.
4.2 Thiết kế hệ thống
Hình 17 – Hệ thống nhận dạng 20 điểm đặc trưng.
Hệ thống của chúng tôi chia thành 4 môđun chính như sau:
Môđun thứ nhất làm nhiệm vụ xác định bức ảnh đầu vào có phải là ảnh khuôn mặt
không, nếu là ảnh khuôn mặt thì sẽ phát hiện ra vùng ảnh chứa khuôn mặt. Trong mô
đun này chúng tôi sử dụng thuật toán phát hiện khuôn mặt dùng đặc trưng giống Haar
đã được trình bày trong mục 2.3.
Môđun thứ hai làm nhiệm vụ phát hiện các vùng đặc trưng như vùng xung quanh
mắt, mũi, miệng,…Trong môđun này bước đầu chúng tôi dùng phương pháp đơn giản
nhất là chia khuôn mặt thành 3 phần, sau đó dùng đặc trưng giống Haar để phát hiện ra
các vùng đặc trưng.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
28
Với môđun thứ ba, chúng tôi xây dựng các luật để xác định ra 6 điểm đặc trưng.
Trong đó:
Để xác định 2 mống mắt chúng tôi dùng 2 phương pháp sau:
Phương pháp thứ nhất: Do đặc trưng hình học của mắt là có phần con ngươi sẫm
màu và là hình tròn có tỷ lệ kích thước so với mắt tương đối lớn do đó chúng ta có thể
xác định vị trí mống mắt (nằm trong con ngươi) bằng phép chiếu toàn bộ theo hàng và
cột.
Hình 18 – Vị trị, kích thước con ngươi.
Phép chiếu toàn bộ theo hàng (cột) thực chất là xác định vị trí hàng (cột) có số
lượng điểm ảnh xám là nhiều nhất. Công thức tính histogram (tổng) theo hàng và cột
như sau
H(theo hàng) = 255 − 𝑝𝑖𝑥𝑒𝑙 ∗ (255− 𝑝𝑖𝑥𝑒𝑙)à𝑛𝑔
H(theo cột) = 255 − 𝑝𝑖𝑥𝑒𝑙 ∗ (255− 𝑝𝑖𝑥𝑒𝑙)𝑐ộ𝑡
Để xác định vị trí mống mắt, đầu tiên ta xác định vị trí mống mắt theo tọa độ y sử
dụng H theo hàng như sau: Tính histogram theo hàng, ta được một dãy các giá trị, biểu
diễn các giá trị này bằng một đường cong, ta gọi đó là đường cong histogram. Sau đó,
ta xác định vị trí y của điểm mống mắt bằng cách chọn ra vị trí hàng đạt giá trị lớn
nhất trong đường cong
Phương pháp thứ hai: Khi xác định được vùng chữ nhật chứa mắt thì tâm thường
nằm trong vùng con ngươi và lệch so với mống mắt một lượng nhỏ. Đầu tiên, chúng
tôi xác định tâm của hình chữ nhật chứa mắt là Oc. Sau đó, chúng tôi đánh giá độ xám
của điểm ảnh trong hình vuông kích thước 16x16 xung quanh điểm Oc, các điểm này
chúng tôi gọi là Ct (t=1,256). Mục tiêu của chúng tôi là xác định một số điểm Ct đạt
tiêu chí sau: Lấy một hình vuông kích thước 8x8 với Ct là tâm, tính tổng cấp độ xám
tất cả các điểm trong hình vuông đó, nếu tổng này mà lớn hơn tổng của Oc thì điểm
này sẽ được chọn, gọi tập hợp các điểm này là St. Cuối cùng, chúng tôi tính trung bình
tất cả các điểm St để chọn ra điểm cần tìm.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
29
Xác định 2 lỗ mũi
Sau khi xác định được 2 mống mắt, dựa trên khoảng cách giữa 2 mống mắt và tỷ lệ
kích thước được tìm ra từ nhân trắc học ở Bảng 1 ta có thể chia lại các vùng đặc trưng
trên mặt như sau.
Hình 19 – Các vùng đặc trưng trên khuôn mặt.
Sau đó chúng tôi xác định 2 lỗ mũi trong vùng M3 theo thuật toán sau:
Bước 1: Lấy ngưỡng vùng ảnh ở nhiều ngưỡng khác nhau sau đó dùng thuật toán phát
hiện cạnh Canny để xác định ra đường viễn lỗ mũi trong vùng ảnh. Mới đầu thử dùng
thuật toán phát hiện đường tròn Hough nhưng do đường cạnh không liên tục và, vùng
mũi quá nhỏ nên không phát hiện ra được.
Bước 2: Với mỗi ngưỡng, xác định 2 đường liên tục dài nhất trong vùng ảnh (2 đường
liên thông ), 2 đường này chính là 2 đường viền xung quanh của 2 lỗ mũi. Sau khi xác
định được 2 đường viền ta áp dụng thuật toán tìm tâm (*) của một tập hợp các điểm
rời rạc, ta thu được 2 lỗ mũi là tâm của 2 đường liên tục. Trong trường hợp chỉ tìm
được 1 bên lỗ mũi thì lấy điểm đối xứng của điểm đó qua đường chính giữa làm điểm
lỗ mũi còn lại.
Bước 3: Trong tập các cặp điểm xác định cặp điểm có khoảng cách lớn nhất là 2 lỗ
mũi.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
30
Thuật toán tìm tâm (*):
Giả sử có K điểm X1,…,Xk , Xi 𝜖 R
n
thì tâm C xác định như sau:
C =
𝑋1+𝑋2+⋯+𝑋𝑘
𝑘
Phương pháp trên cho kết quả không được tốt, vì cách tính trung bình bị ảnh hưởng
bởi mật độ của các điểm trong đường viền. Khi tách ngưỡng, số lượng điểm nằm ở
một vùng đen thường vượt trội hơn hẳn so với các vùng khác nhiều, khi tính trung
bình thì kết quả không chính xác. Để bị ảnh hưởng bởi mật độ các điểm trong đường
viền ta sử dụng thuật toán tương tự như thuật toán 3 đỉnh tam giác (Centroid Of
triangle) nhưng ở đây chúng ta chỉ sử dụng 2 đỉnh thay vì 3 đỉnh.
Thuật toán 2 đỉnh tam giác
Nếu chúng ta có 2 đỉnh a = (Xa,Ya), b = (Xb,Yb) thì tâm được xác định như sau
C =
1
2
𝑎 + 𝑏 =
1
2
𝑥𝑎 + 𝑥𝑏 ,
1
2
𝑦𝑎 + 𝑦𝑏
Tổng quát, nếu chúng ta có n đỉnh chúng ta sẽ lấy 2 đỉnh đầu, tính tâm 2 đỉnh đó được
đỉnh t1 thêm vào n-2 đỉnh còn lại , tiếp túc với n-2+1 đỉnh cho đến khi còn 1 đỉnh duy
nhất một đỉnh.
Ví dụ ở đây có 4 đỉnh P1,P2,P3,P4. Ta tính tâm sẽ là đỉnh t3 như hình vẽ.
Hình 20 – Thuật toán 2 đỉnh.
Để xác định khóe miệng, chúng tôi dùng phương pháp sau:
Bước 1: Do vùng ảnh miệng thường rất rõ ràng, sắc nét và có độ rộng tương đối lớn so
với vùng ảnh do đó có thể dùng thuật toán phát hiện cạnh để xác định 2 mép và 2 khóe
miệng. Để thực hiện theo hướng này, đầu tiên chúng tôi lấy ngưỡng ảnh vùng miệng
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
31
với một ngưỡng thích hợp. Mục đích của việc lấy ngưỡng là làm rõ sự khác biệt giữa
vùng miệng và các vùng xung quanh giúp cho việc phát hiện cạnh dễ dàng hơn. Sau đó
áp dụng thuật toán phát hiện cạnh (cụ thể là thuật toán Canny) để phát hiện cạnh ta có
đường biên xung quanh miệng.
Bước 2: Ta xác định 2 khóe miệng là 2 vị trí ngoài cùng trên đường biên.Tuy nhiên,
khi áp dụng phương pháp nảy sinh một số khó khăn như sau :
Thứ nhất, trong bước lấy ngưỡng để chọn ra một ngưỡng chung cho tất cả bức ảnh
là rất khó (không khả thi) do với mỗi bức ảnh vùng miệng có cường độ và độ sáng tối
là khác nhau. Bước này ta phải chọn ra một số ngưỡng thích hợp (do thực nghiệm),
trong bài đã chọn ra được một số ngưỡng : 5, 8, 10 , 15 , 13 , 18 , 25, 27 , 32. Những
ngưỡng này thường nằm trong khoảng (5,50).
Thứ hai, khi xác định được đường biên xung quanh miệng thì lựa chọn điểm khóe
miệng như thế nào thì độ sai số là nhỏ nhất. Nếu lựa chọn là điểm ngoài cùng thì
không chính xác, do xuất hiện một số điểm không xác định thường nằm ngoài cùng
đường biên. Nhận thấy đường biên xung quanh miệng luôn là đường liên tục (hoặc
gián đoạn một đoạn nhỏ) và có số lượng các đỉnh (ở đây là các điểm ảnh) lớn nhất, do
đó ta áp dụng thuật toán tìm đồ thị liên thông mở rộng (*) vào bức ảnh để tìm ra các
điểm khóe miệng.
Hình 21 – Xác định đường biên chính bằng thuật toán đồ thị liên thông.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
32
Bước 3: Sau khi lấy được các cặp điểm khóe miệng ứng với các ngưỡng khác nhau thì
vấn đề còn lại là chọn ra vị trí 2 điểm khóe miệng gần với vị trí cần tìm nhất. Chúng
tôi sử dụng ra 2 cách chọn có hiệu quả tốt là :
Trong tất cả các tập hợp điểm khóe miệng bên trái và khóe miệng bên phải ta chọn
ra điểm nào có số lần lặp lại nhiều nhất (tần suất xuất hiện trong tất cả các ngưỡng
là lớn nhất).
Trong tập hợp các cặp điểm tìm ra cặp điểm có khoảng cách là lớn nhất.
(*) Thuật toán tìm đồ thị liên thông mở rộng :
+ Ta coi mỗi điểm ảnh có độ xám khác 0 là một đỉnh của đồ thị, bức ảnh nxn sau khi
phát hiện cạnh là một đồ thị liên thông.
+ Sử dụng mảng bool nxn để đánh dấu vị trí duyệt , và hàng đợi để lưu các đỉnh.
+ Duyệt qua toàn bộ các đỉnh , nếu đỉnh có đỉnh kề ( thỏa mãn điều kiện mở rộng ) thì
thêm đỉnh kề đó vào hàng đợi, đánh dấu điểm đó đã thăm, lấy điểm tiếp theo trong
hàng đợi, tiếp tục cho đến khi hàng đợi rỗng.
+ Xác định đường liên thông dài nhất, sau đó xác định 2 vị trị ngoài cùng làm 2 mép.
(*) Luật mở rộng : thay vì các đỉnh đồ phải kề nhau ta coi các điểm nằm trong một
hình chữ nhật kích thước axb là kề nhau (do một số đường bị rời rạc khi lấy ngưỡng
và phát hiện cạnh).
Môđun thứ tư có nhiệm vụ là xác định ra 14 điểm đặc trưng, môđun bao gồm 3 thành
phần chính, đầu tiên là bộ trích chọn đặc trưng Gabor có nhiệm vụ trích chọn ra vector
đặc trưng của một điểm từ bức ảnh, tiếp theo là 14 bộ phân lớp tương ứng với 14 điểm
đặc trưng, khi vector dữ liệu ứng với mỗi điểm được cho qua các bộ phân lớp này,
điểm đó sẽ được xác định là có phải điểm đặc trưng đó không, do có một số điểm sai
mà bộ phân lớp không nhận ra, để giảm số lượng các điểm sai này chúng tôi dùng
thêm bộ luật. Ứng với mỗi một điểm đặc trưng, bộ luật sẽ có một số luật tương ứng
với điểm đó, nhiệm vụ của bộ luật là giảm những điểm đặc trưng sai mà bộ phân lớp
không nhận ra. Cuối cùng, chúng tôi sử dụng thuật toán trọng tâm để xác định ra điểm
đặc trưng gần trọng tâm ứng với 14 cụm điểm nhất của 14 điểm đặc trưng. Kết quả sẽ
thu được 14 điểm đặc trưng. Cụ thể các phần như sau:
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
33
Để trích chọn đặc trưng Gabor, chúng tôi chọn ra một số bức ảnh của những người
khác nhau dùng làm mẫu trích chọn đặc trưng. Với mỗi bức ảnh chúng tôi chấm bằng
tay vị trí các điểm đặc trưng. Để trích chọn đặc trưng Gabor cho mỗi điểm Pi, chúng
tôi lấy vùng ảnh Mi kích thước 10x10 pixel có tâm là điểm Pi. Sau đó nhân xoắn vùng
ảnh Mi với 48 bộ lọc Gabor đuợc 48 ảnh mới MGi , lấy 10x10 giá trị điểm ảnh trong
vùng ảnh Mi với 48x10x10 giá trị điểm ảnh trong 48 ảnh MGi làm vector đặc trưng cho
điểm đặc trưng. Như vậy mỗi điểm đặc trưng bởi một vector đặc trưng Vj = (x0,…,xk |
k = 4899). Để tăng số lượng vector đặc trưng cho học máy và tăng độ chính xác cho hệ
thống, với mỗi điểm đặc trưng chấm bằng tay, chúng tôi sẽ xác định thêm 24 điểm:
+ 8 điểm đúng nằm trong hình vuông 3x3 pixel mà tâm là điểm đặc trưng Pi
+ 16 điểm sai, chúng tôi lựa chọn ngẫu nhiên các điểm thoả mãn: Nằm trong hình
vuông kích thước 50x50 pixel với tâm là Pi và khoảng cách từ điểm ngẫu nhiện đến
Pi luôn lớn hơn 8 pixel.
Để xây dựng bộ phân lớp cho 14 điểm đặc trưng chúng tôi cho các vector đặc trưng
ứng với từng điểm Pi (i = 1,14) vào huấn luyện trong Weka với thuật toán huấn luyện
là SMO (Suport Vector Machine), sau khi huấn luyện bằng Weka chúng tôi thu đuợc
14 model ứng với 14 điểm Pi và dùng các model này để kiểm tra xem một điểm bất kỳ
có thuộc vào một trong 14 điểm đặc trưng không.
Với mỗi điểm đặc trưng chúng tôi đưa ra một số luật về vị trí để giới hạn lại số điểm
đúng sau đó áp dụng phương pháp tính trung bình (tính trung bình tất cả các điểm sau
đó chọn ra điểm có vị trí gần điểm trung bình nhất) để chọn ra điểm đúng nhất.
4.3 Thực nghiệm
4.3.1 Phát hiện khuôn mặt trong ảnh
Phương pháp phát hiện khuôn mặt dùng đặc trưng Giống Haarkết hợp Adaboost
đã được cài đặt sẵn trong thư viện mở OpenCV của Intel. Do vậy, chúng tôi sẽ xây
dựng bộ phát hiện khuôn mặt bằng ngôn ngữ C++ , dùng môi trường lập trình là MS
Visual Studio 2005 và thư viện mở OpenCV.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
34
Nhiệm vụ của chúng tôi trong phần này là chạy thử nghiệm với các bộ tham số
[scale_factor, min_neighbors, min_size] khác nhau của hàm cvHaarDetectObjects trên
hệ cơ sở dữ liệu Cohn – Kanade để tìm ra bộ tham số phù hợp.
Bảng 3 - Bộ cơ sở dữ liệu Cohn – Kanade.
Tổng số ảnh 8,842 ảnh trực diện khuôn mặt
Số người Của 97 người.
Tổng số thư mục Chia vào 585 thư mục.
Ghi chú
Mỗi người có 6 thư mục là
chuỗi ảnh về 6 cảm xúc.
Hàm cvHaarDetectObjects có các tham số sau :
CVAPI(CvSeq*) cvHaarDetectObjects( const CvArr* image,
CvHaarClassifierCascade* cascade,
CvMemStorage* storage, double scale_factor
CV_DEFAULT(1.1),
int min_neighbors CV_DEFAULT(3), int flags
CV_DEFAULT(0),
CvSize min_size CV_DEFAULT(cvSize(0,0)));
Trong đó CvArr* image là tập các ảnh cần nhận dạng khuôn mặt,
CvHaarClassifierCascade* cascade là bộ phân lớp và là thành phần quan trọng nhất
trong hệ thống, được tải từ file xml hoặc ymxl được xây dựng sẵn trên các bộ cơ sở dữ
liệu chuẩn. OpenCV cho phép đối với mỗi bộ cơ sở dữ liệu chúng ta có thể xây dựng
một file xml riêng, trong thư viện cài đặt sẵn hàm xây dựng file xml
cvCreateHidHaarClassifierCascade. Để tải một cascade ta có thể sử dụng hàm
cvLoad trong OpenCV
char *fdata = "haarcascade_frontalface_alt_tree.xml";
//load classfier
cascade = ( CvHaarClassifierCascade* )cvLoad( fdata, 0, 0, 0 ),
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
35
CvMemStorage* storage dùng lưu trữ tập hợp hình chữ nhật thỏa mãn điều kiện tìm
kiếm. Scale_factor là tỷ lệ tăng kích thước của cửa sổ (window) trong quá trình dịch
cửa sổ trên toàn bộ bức ảnh.Ví dụ 1.1 có nghĩa là tăng kích thước của cửa sổ 10%,
Min_neighbors giá trị nhỏ nhất (trừ đi 1) của những “hình chữ nhật hàng xóm” tạo nên
một đối tượng, tất cả những nhóm có số lượng hình chữ nhật nhỏ hơn min_neighbors –
1 đều bị bỏ qua. Nếu min_neighbors = 0 , hàm sẽ không nhóm các hình chữ nhật lại,
có thể sử dụng khi mà chúng ta có các thủ tục nhóm riêng. Flags: quy định phương
thức thực hiện. Hiện tại chỉ có một cờ được chỉ rõ là CV_HAAR_DO_CANNY_PRUNING.
Nếu cờ được đặt, hàm sẽ sử dụng bộ phát hiện cạnh Canny để bỏ qua một số vùng có
chứa quá ít hoặc quá nhiều cạnh. Giá trị lấy ngưỡng thực tế được điều chỉnh cho nhận
dạng khuôn mặt, trong trường hợp này, cắt tỉa làm tăng tốc độ xử lý. min_size : kích
thước nhỏ nhất chấp nhận được của khuôn mặt.
Sau đây là kết quả chạy thuật toán phát hiện khuôn mặt trên bộ thư viện Conh –
Kanade với bộ tham số chúng tôi chọn là [1.1 , 2 , (200,200)].
Bảng 4 – Kết quả nhận dạng khuôn mặt trên bộ cơ sở dữ liệu Cohn – Kanade.
Trường hợp Số lượng Lý do
Nhận dạng đúng 8779
Nhận dạng sai 63 Phát hiện nhiều hơn một khuôn mặt trong ảnh
Không nhận dạng được 0
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
36
Hình 22 – Một số ví dụ phát hiện khuôn mặt bằng đặc trưng giống Haar trên hệ cơ sở
dữ liệu Conh – Kanade .
Kết quả thử nghiệm trên camera
Hình 23 – Kết quả nhận dạng khuôn mặt thời gian thực (sử dụng camera).
4.3.2 Xác định các vùng đặc trưng
Trong khi thao tác các bước để tách đặc trưng trên khuôn mặt thì chúng ta không
cần phải thao tác trên toàn bộ bức ảnh (do lãng phí thời gian và giảm độ chính xác) do
đó chúng ta sẽ xác định các vùng nhỏ cần quan tâm ứng với mỗi thao tác tách đặc
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
37
trưng trên toàn bộ bức ảnh lớn.Việc xác định vùng quan tâm chính xác (Có kích thước
đủ nhỏ nhưng vẫn chứa đầy đủ những phần của khuôn mặt) sẽ làm giảm thời gian và
tăng độ chính xác lên rất nhiều. Các vùng quan tâm thường là mắt, mũi, miệng, trán,
má,…Vì đây là những phần chứa nhiều thông tin về cảm xúc của con người. Trong
phần này trình bày phương pháp xác định các vùng đặc trưng của mắt, mũi và miệng là
các phần chứa thông tin về cảm xúc nhiều nhất.
Phương pháp đơn giản là sau khi đã xác định được vùng ảnh chứa khuôn mặt ta
chia ảnh ra làm 3 phần: mắt trái , mắt phải và miệng.
Hình 24 – Chia khuôn mặt thành 3 phần.
Tuy nhiên, phương pháp này quá đơn giản, vùng quan tâm thu được còn quá rộng
thời gian thực hiện các thao tác xử lý ảnh vẫn còn cao do đó cần có phương pháp mới
tối ưu hơn.Trong phần tiếp theo, chúng tôi sẽ trình bày về cách xác định vùng đặc
trưng sử dụng đặc trưng Giống Haarđã trình bày ở phần xác định khuôn mặt để xác
định ra các vùng đặc trưng mắt, miệng. Riêng vùng mũi chúng tôi sẽ trình bày sau khi
xác định được 2 mống mắt. Như đã trình bày ở mục 2.3, thành phần quan trọng nhất
trong hàm phát hiện đối tượng sử dụng đặc trưng Haar – like cascade, do đó nhiệm vụ
đầu tiên là cần tìm kiếm các cascade cho từng bộ phận của khuôn mặt riêng. Dưới đây
là thông tin về một số bộ cascade dùng để xác định vùng đặc trưng mắt.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
38
Bảng 5 – Các bộ phân lớp cascade.
Tên Xây dựng
cho bộ
phận
Kích cỡ
ảnh sử
dụng
Xây dựng trên
lượng positive
sample
Thông
tin khác
haarcascade_eye.xml Mắt 25x15 Trực
diện
haarcascade_frontalface_alt Mặt 20x20 Trực
diện
frontalEyes35x16.xml Mắt 35x16 Trực
diện
ojoI.xml Mắt 18x12 7000 Mắt trái
ojoD.xml Mắt 18x12 7000 Mắt
phải
Mouth.xml Miệng 25x15 7000 Trực
diện
Nariz.xml Mũi 25x15 7000 Trực
diện
Cũng tương tự như công việc của phần phát hiện khuôn mặt, trong phần này chúng
tôi thử nghiệm thuật toán trên cơ sở dữ liệu Cohn – Kanade sau đó chọn ra bộ tham số
[scale_factor, min_neighbors, min_size] phù hợp nhất.
Đối với mắt phải, chúng tôi dùng cascade được xây dựng từ file ojoD.xml được
giới thiệu trong Bảng 5 với bộ tham số [1.1, 2, (35,16)]. Sau đây là kết quả chạy thử
nghiệm trên cơ sở dữ liệu Cohn – Kanade:
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
39
Bảng 6 – Kết quả xác định vùng mắt phải.
Trường hợp Số lượng Giải thích
Tổng số 1002
Nhận dạng đúng 962
Nhận dạng sai 40 Do mắt nhắm hoặc bị tóc che khuất một phần
Không nhận dạng được 0
Hình 25 – Một số ví dụ về xác định vùng mắt phải.
Đối với mắt trái, chúng tôi dùng cascade được xây dựng từ file ojoI.xml được giới
thiệu trong Bảng 5 với bộ tham số [1.1, 2, (35,16)]. Sau đây là kết quả chạy thử
nghiệm trên cơ sở dữ liệu Cohn – Kanade:
Bảng 7 – Kết quả xác định vùng mắt trái.
Trường hợp Số lượng Giải thích
Tổng số 1001
Nhận dạng đúng 975
Nhận dạng sai 26 Do mắt nhắm hoặc bị tóc che khuất 1 phần
Không nhận dạng được 0
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
40
Hình 26 – Một số ví dụ về xác định vùng mắt trái.
Với miệng chúng tôi dùng bộ cascade được xây dựng từ file Mouth.xml với bộ
tham số là [1.1, 2, (40,25)], tuy nhiên trong trường hợp miệng, do cơ miệng có thể kéo
dãn tương đối rộng nên với những bức ảnh miệng mở quá lớn thì phát hiện vùng đặc
trưng thường bị thiếu, mất. Với những trường hợp này chúng tôi lấy vùng miệng là 1/3
vùng mặt dưới như Hình 24.
Bảng 8 – Kết quả xác định vùng miệng.
Trường hợp Số lượng Giải thích
Tổng số 1000
Nhận dạng đúng 920
Nhận dạng sai 80 Do vùng miệng phát hiện quá rộng, hoặc bị
mất một phần
Không nhận dạng được 0
Sau đây là một số ví dụ về trường hợp xác định vùng miệng:
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
41
Hình 27 – Một số ví dụ xác định vùng miệng (a) đúng, (b) sai.
4.3.3 Xác định 6 điểm đặc trưng
Xác định 2 mống mắt
Sử dụng phương pháp phép chiếu toàn bộ kết hợp với tính histogram tuy nhiên độ
chính xác của phương pháp không cao do trong ảnh thường có nhiễu hoặc một số ảnh
có chứa cả phần tóc làm cho thuật toán không còn chính xác, để cải tiến phương pháp,
chúng tôi chọn ra tập hợp các điểm đạt cực đại trong đường cong. Sau đó dùng phương
pháp hợp nhị phân, chọn 2 điểm ngoài cùng của dãy, tính điểm giữa của 2 điểm đó,
thêm vào dãy, sắp xếp dãy tăng dần theo tọa độ y. Lặp lại quá trình cho đến khi còn
một vị trí duy nhất thì ta được vị trí cần tìm.
Hình 28 – Đánh dấu hàng có histogram lớn nhất.
Tiếp theo, để xác định vị trí mống mắt theo tọa độ x (theo cột), chúng tôi tính
histogram theo cột sau đó chọn ra vị trí x có giá trị histogram là lớn nhất.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
42
Hình 29 – Xác định vị trí mống mắt bằng histogram.
Thử nghiệm phương pháp trên thu được kết quả không cao, rõ ràng phương pháp
xác định mống mắt bằng histogram bị ảnh hưởng bởi các yếu tố nhiễu, cường độ
sáng,… quá nhiều. Áp dụng phương pháp thứ 2 và chấp nhận sai số khoảng từ 1 đến 2
pixel, kết quả thu được tốt hơn rất nhiều.
Bảng 9 – Kết quả nhận dạng điểm mống mắt.
Trường hợp Số lượng Giải thích
Tổng số 1001
Nhận dạng đúng 975
Nhận dạng sai 26 Do mắt nhắm hoặc bị tóc che khuất 1 phần
Không nhận dạng được 0
Hình 32 – Xác định mống mắt là tâm vùng đặc trưng.
Xác định 2 lỗ mũi
Chúng tôi áp dụng thuật toán trên với bộ dữ liệu Cohn – Kanade, kết quả thu được
tương đối tốt.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
43
Bảng 10 – Kết quả nhận dạng 2 lỗ mũi.
Trường hợp Số
lượng
Giải thích
Tổng số 1000
Nhận dạng đúng 820
Nhận dạng sai 180 Do vùng mũi bị thiếu hoặc chứa một phần vùng
miệng.
Không nhận dạng
được
0
Hình 31 – Một ví dụ dùng thuật toán phát hiện cạnh Canny sau khi lấy ngưỡng.
Hình 32 – Ví dụ về xác định 2 lỗ mũi.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
44
Xác định 2 khóe miệng
Đầu tiên, để xác định khóe miệng, chúng tôi dùng phép chiếu histogram theo hàng
để xác định đường giữa 2 môi. Kết quả thu được không cao, với những miệng ở trạng
thái bình thường thì kết quả cho tương đối chính xác, nhưng những miệng ở trạng thái
vui, buồn, tức giận,… thì kết quả cho rất kém.
Hình 33 – Xác định đường mép bằng histogram
(a)Trường hợp chính xác, (b) Trường hợp không chính xác.
Áp dụng thuật toán thứ hai với bộ Cohn – Kanade kết quả thu được như sau:
Bảng 11 – Kết quả xác định 2 khóe miệng.
Trường hợp Số lượng Giải thích
Tổng số 1001
Nhận dạng đúng 975
Nhận dạng sai 26 Do phát hiện sai vùng miệng
Không nhận dạng được 0
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
45
Hình 34 – Ví dụ lấy ngưỡng trong khoảng [5 50].
Hình 35 – Ví dụ xác định cạnh bằng thuật toán Canny.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
46
Hình 36 – Ví dụ xác định 2 điểm khóe miệng.
4.3.3 Xác định 14 điểm đặc trưng
Trong phần này chúng tôi xây dựng hệ thống xác định 14 điểm đặc trưng như Hình 37
Hình 37 – Thực nghiệm 8 điểm đặc trưng.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
47
Để xây dựng bộ phân lớp cho 8 điểm, chúng tôi chọn 50 bức ảnh của 22 người
trong bộ dữ liệu Cohn – Kanade để làm mẫu. Sau đó chúng tôi tạo ra 14 model ứng với
14 điểm như phương pháp trình bày trong mục 4.2.
Để kiểm tra hệ thống, chúng tôi lấy 20 bức ảnh trong đó có 10 ảnh vùng mắt và 10
ảnh vùng miệng của 10 người khác nhau (trong 10 bức ảnh của 10 người có 2 bức đã
được dùng để huấn luyện) để làm dữ liệu kiểm tra. Để xác định điểm đặc trưng trong
một bức ảnh, chúng tôi xác định vùng đặc trưng xung quanh điểm đó sau đó dùng một
cửa sổ kích thước 10x10 pixel (có kích thước bằng bộ lọc Gabor) quét trên toàn bộ
vùng ảnh đặc trưng với tỷ lệ dịch là 1 pixel, với mỗi lần quét, chúng tôi trích chọn đặc
trưng Gabor của vùng ảnh trong cửa sổ đó theo phương pháp trình bày trong bước thứ
nhất, với mỗi điểm chúng tôi thu được một vector đặc trưng vj, sau đó cho vector vj lần
luợt qua 14 model xây dựng trong bước thứ 2 để dự đoán xem có thuộc vào 1 trong 14
lớp không. Kết thúc bước này, chúng tôi thu được 14 tập hợp các điểm được dự đoán
là true. Sau đó chúng tôi dùng một số luật để đánh giá chọn ra điểm đúng, cụ thể
chúng tôi trình bày về các luật ứng với 14 điểm Pt t=1,14 như sau:
Luật cho điểm P1 và P9:
P1 x < M.x và y < M.y.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
48
Luật cho điểm P2 và P10:
P2 x < M.x và y < M.y.
Luật cho điểm P3, P5, P11 và P13:
P3: x < M.x và M.y – α/2 < y < M.y + α/2 với α = 20 pixel.
P5: x > M.x và M.y – α/2 < y < M.y + α/2 với α = 20 pixel.
Với P11 và P13 đối xứng với P3 và P5 nên ta có luật tương tự.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
49
Luật cho điểm P4, P6, P12 và P14:
P4: y < M.y và M.x – β/2 < x < M.x + β/2 với β = 60.
P6: y > M.y và M.x – β/2 < x < M.x + β/2 với β = 60.
P12 và P14 đối xứng với P4 và P6 nên ta có luật tương tự.
Luật cho điểm P7 và P8:
P7 : M1.x < x < M2.x và y < M.y
P8 : M1.x M.y với α = 20 và β = 40.
Dưới đây chúng tôi trình bày kết quả xác định 8 điểm đặc trưng từ Pt t=1,8. Do 6 điểm
Pt t=9,14 đối xứng với 6 điểm t=1,6 nên cách xác định cũng tương tự.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
50
Kết quả xác định 6 điểm đặc trưng Pt t =1,6 với 10 ảnh vùng mắt kích thước như sau:
Bảng 12 – Danh sách kích thước ảnh mẫu kiểm tra.
Ảnh Kích thước Ảnh Kích thước
eye_test1 96x60 mouth_test1 139x67
eye_test2 87x55 mouth_test2 147x68
eye_test3 79x50 mouth_test3 148x61
eye_test4 80x52 mouth_test4 125x53
eye_test5 84x51 mouth_test5 121x55
eye_test6 74x52 mouth_test6 132x71
eye_test7 84x49 mouth_test7 115x59
eye_test8 83x52 mouth_test8 122x58
eye_test9 114x60 mouth_test9 115x55
eye_test10 101x54 mouth_test10 92x46
Test 1
Điểm x y x' y' Khoảng cách
P1 19 20 21 13 7.28011
P2 74 16 79 17 5.09902
P3 23 31 19 40 9.848858
P4 45 22 45 18 4
P5 70 38 64 34 7.211103
P6 44 49 44 45 4
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
51
Test 2
Điểm x y x' y' Khoảng cách
P1 6 16 13 21 8.602325
P2 67 18 67 19 1
P3 23 35 22 35 1
P4 45 25 40 23 5.385165
P5 68 36 67 37 1.414214
P6 42 41 41 43 2.236068
Test 3
Điểm x y x' y' Khoảng cách
P1 9 14 13 12 4.472136
P2 60 11 52 9 8.246211
P3 19 29 19 24 5
P4 38 21 35 19 3.605551
P5 56 29 49 28 7.071068
P6 36 34 36 31 3
Test 4
Điểm x y x' y' Khoảng cách
P1 10 13 17 12 7.071068
P2 57 12 51 11 6.082763
P3 19 35 20 36 1.414214
P4 40 25 37 22 4.242641
P5 61 37 59 33 4.472136
P6 39 39 38 39 1
Test 5
Điểm x y x' y' Khoảng cách
P1 17 22 19 17 5.385165
P2 69 15 58 10 12.08305
P3 21 42 24 36 6.708204
P4 46 29 45 30 1.414214
P5 65 39 60 38 5.09902
P6 44 43 43 40 3.162278
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
52
Test 6
Điểm x y x' y' Khoảng cách
P1 7 21 11 19 4.472136
P2 58 16 51 14 7.28011
P3 18 34 15 30 5
P4 37 24 36 17 7.071068
P5 52 32 54 30 2.828427
P6 35 38 33 36 2.828427
Test 7
Điểm x y x' y' Khoảng cách
P1 9 16 13 17 4.123106
P2 58 12 61 14 3.605551
P3 20 37 23 32 5.830952
P4 42 26 43 27 1.414214
P5 59 30 60 34 4.123106
P6 42 39 40 38 2.236068
Test 8
Điểm x y x' y' Khoảng cách
P1 12 19 18 18 6.082763
P2 63 19 60 15 5
P3 24 37 26 35 2.828427
P4 42 26 43 24 2.236068
P5 64 34 60 33 4.123106
P6 42 41 41 38 3.162278
Test 9
Điểm x y x' y' Khoảng cách
P1 5 23 5 24 1
P2 87 14 85 13 2.236068
P3 27 43 31 42 4.123106
P4 56 27 54 25 2.828427
P5 87 49 84 45 5
P6 54 48 56 44 4.472136
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
53
Test 10
Điểm x y x’ x’ Khoảng cách
P1 14 18 20 20 6.324555
P2 82 23 75 22 7.071068
P3 17 39 22 35 6.403124
P4 46 28 38 26 8.246211
P5 76 41 72 36 6.403124
P6 45 45 42 44 3.162278
Trung bình sai số:
Bảng 13 – Sai số trung bình.
Điểm Khoảng cách trung bình
P1 5.48
P2 5.77
P3 4.81
P4 4.04
P5 4.77
P6 2.92
Qua bảng kết quả, với sai số epsilon = 6 thì kết quả nhận dạng trung bình sẽ là 100%,
với epsilon = 5 thì kết quả nhận dạng là 4/6 = 66,6%. Nguyên nhân có sai số như vậy
là do trong bước huấn luyện chúng ta cũng không xác định rõ được duy nhất một điểm
đúng mà là xác định một vùng đặc trưng xung quanh điểm đó. Thứ hai, trong bước
chấm các điểm bằng tay thì cũng đã có sai lệch. Do đó, sai số trong khoảng 5 – 6 pixel
là chấp nhận được như Hình 38.
Chương 4 : Xây dựng hệ thống nhận dạng các điểm đặc trưng Nguyễn Thành Trung
54
Hình 38 – Ví dụ về xác định 8 điểm đặc trưng.
Qua bảng tính trung bình chúng ta nhận thấy rằng P6 có độ lệch trung bình là nhỏ nhất
cho thấy tỷ lệ xác định đúng điểm P6 là cao nhất, nhận thấy rằng vị trị điểm P6 trong
vùng mắt là vị trí khác nhất, không bị đan xen hay cắt vị trí điểm đặc trưng khác hay
nói cách khác là khác biệt với vùng xunh quanh là rõ ràng nhất. Điều đó chứng tỏ đặc
trưng diện mạo (ở đây là Gabor) thường cho kết quả tốt khi dùng với các vùng có sự
khác biệt rõ ràng.
Kết quả xác định 2 điểm P7, P8 với 10 ảnh vùng miệng:
Bảng 14 – Kết quả xác định 2 điểm P7,P8 với 10 mẫu.
Test
Điểm chuẩn Thực nghiệm
Khoảng cách
Điểm chuẩn Thực nghiệm
Khoảng cách
x y X‟ Y‟ x y X‟ Y‟
test 1 72 18 66 16 6.324555 73 48 73 44 4
test 2 77 18 75 16 2.828427 78 47 68 48 10.04988
test 3 76 12 74 12 2 76 42 76 40 2
test 4 66 15 66 14 1 66 34 66 34 0
test 5 56 15 53 14 3.162278 56 35 57 41 6.082763
test 6 67 19 65 17 2.828427 67 52 73 47 7.81025
test 7 60 11 56 12 4.123106 60 38 58 36 2.828427
test 8 58 13 56 13 2 61 38 54 38 7
test 9 58 14 55 13 3.162278 59 35 57 34 2.236068
test10 48 12 45 12 3 47 33 41 33 6
3.042970 4.80
Qua bảng tính khoảng cách sai số trung bình của 2 điểm P7 và P8 cho thấy kết quả xác
định 2 điểm này chính xác hơn so với các điểm Pt t=1,6. Rõ ràng rằng sự khác biệt
giữa các vùng xung quanh 2 điểm này là rõ rệt, kết quả này chứng mình nhận định trên
của chúng tôi là đúng.
Chương 5 : Tổng kết Nguyễn Thành Trung
55
Chương 5
Tổng kết và hướng phát triển
Trong khóa luận này chúng tôi đã đưa ra một phương pháp lai nhằm mục đích xác
định 20 điểm đặc trưng trên khuôn mặt như một vấn đề cốt lỗi trong bài toán nhận
dạng khuôn mặt, nhận dạng cảm xúc. Phương pháp của chúng tôi dựa trên hai hướng
tiếp cận chính là: Xác định điểm đặc trưng bằng luật và trích chọn đặc trưng dùng bộ
lọc Gabor kết hợp với phương pháp học máy Suport Vector Machine. Trong hướng
tiếp cận bằng luật, chúng tôi xác định 6 điểm đặc trưng là hai mống mắt, hai điểm lỗ
mũi và hai khóe miệng. Để xác định hai mống mắt chúng tôi xác định vùng quan tâm
của mắt phải và mắt trái thông qua phương pháp phát hiện thành phần với đặc trưng
giống Haar. Với hai điểm lỗ mũi và hai khóe miệng chúng tôi lấy ngưỡng vùng ảnh
quan tâm của hai thành phần này sau đó dùng thuật toán Canny để phát hiện cạnh của
các phần và xác định ra đường biên của các vùng dựa trên tư tưởng đồ thị liên thông.
Để xác định 14 điểm đặc trưng còn lại chúng tôi lấy đặc trưng Gabor đối với từng
điểm. Mỗi điểm tương ứng với một vector đặc trưng Gabor bao gồm giá trị điểm ảnh
của vùng ảnh 10x10 pixel và giá trị điểm ảnh của 48 vùng ảnh Gabor. Sau đó chúng
tôi áp dụng phương pháp học máy Suport Vector Machine để xây dựng nên 14 model
nhận dạng cho 14 điểm tương ứng.
Với hệ thống đã xây dựng các kết quả thu được trên bộ dữ liệu chuẩn Cohn –
Kanade hệ thống của chúng tôi xác định được 6 điểm dựa trên hướng tiếp cận bằng
luật với độ chính xác trên 90%, kết quả xác định 14 điểm còn lại bằng đặc trưng Gabor
và phương pháp học máy Suport Vector Machine với sai số epsilon = 5 pixel là 66,6%.
Trong thời gian tới, chúng tôi tiếp tục cải tiến phương pháp tốt hơn dùng để trích chọn
đặc trưng từ ảnh khuôn mặt 2D trong hệ thống nhận dạng cảm xúc tự động.
Phụ lục Nguyễn Thành Trung
56
Tài liệu tham khảo
[1] Z.Zhang, M.Lyons, M.Schuster, S.Akamatsu. Comparison Between Geometry-
Based and Gabor-Wavelets-Based Facial Expression Recognition Using Multi-
Layer Perceptron. IEEE International Conference on Automatic Face and
Gesture Recognition. 1998.
[2] M.F.Valstar, M.Pantic. Fully automatic facial action unit detection and
temporal analysis. IEEE International Conference on Computer Vision and
Pattern Recognition. 2006.
[3] J.Yang, R.Stiefelhagen, U.Meier, A.Waibel. Real-time face and facial feature
tracking and applications. In Proceedings of Auditory-Visual Speech
Processing, New South Wales, Australia. 1998.
[4] Y.L.Tian, L.Brown, A.Hampapur, S.Pankanti, A.Senior, R.Bolle. Real world
real-time automatic recognition of facial expressions. IEEE Workshop on
Performance Evaluation of Tracking and Surveillance. 2003.
[5] D.Vukadinovic, M.Pantic. Fully Automatic Facial Feature Point Detection
Using Gabor Feature Based Boosted Classifiers. IEEE International Conference
on Systems, Man and Cybernetics. 2005.
[6] I. Kotsia, I. Pitas. Facial expression recognition in image sequences using
geometric deformation features and support vector machines. IEEE
Transactions on Image Processing. 2007.
[7] J. Y. Bouguet. Pyramidal Implementation of the Lucas-Kanade Feature
Tracker. Tech. Rep. Intel Corporation, Microprocessor Research Labs. 2000.
[8] I. Matthews, S. Baker. Active Appearance Models revisited. International
Journal of Computer Vision. 2004.
[9] S.Lucey, A.B.Ashraf, J.F.Cohn. Investigating Spontaneous Facial Action
Recognition through AAM Representations of the Face. In Face Recognition,
K.Delac, M.Grgic, Eds. Vienna, Austria: I-Tech Education and Publishing.
2007.
[10] T. Cootes, G. Edwards, C. Taylor. Active appearance models. IEEE
Transactions on Pattern Analysis and Machine Intelligence. 2001.
[11] B.D.Lucas, T.Kanade. An iterative image registration technique with an
application to stereo vision. Conference on Artificial Intelligence. 1981.
[12] J.Shi, C.Tomasi. Good features to track.. IEEE International Conference on
Computer Vision and Pattern Recognition. 1994.
Phụ lục Nguyễn Thành Trung
57
[13] Y.Zhang, Q.Ji. Active and dynamic information fusion for facial expression
understanding from image sequence. IEEE Transactions on Pattern Analysis
and Machine Intelligence. 2005.
[14] M.Isard, A.Blake. Condensation - conditional density propagation for visual
tracking. International Journal of Computer Vision.1998.
[15] M.K.Pitt, N.Shephard. Filtering via simulation: auxiliary particle filtering.
Journal of the American Statistical Association. 1999.
[16] I.Patras, M.Pantic. Particle filtering with factorized likelihoods for tracking
facial features. IEEE International Conference Face and Gesture Recognition.
2004.
[17] Y.L.Tian, T.Kanade, J.Cohn. Recognizing action units for facial expression
analysis. IEEE Transactions on Pattern Analysis and Machine Intelligence.
2001.
[18] L.Ding, A.M.Martinez. Precise Detailed Detection of Faces and Facial
Features. IEEE Conference on Computer Vision and Pattern Recognition. 2008.
[19] H.B.Deng, L.W.Jin, L.X.Zhen, J.C.Huang. A New Facial Expression
Recognition Method Based on Local Gabor Filter Bank and PCA plus LDA.
International Journal of Information Technology. 2005.
[20] T. Ojala, M. Pietikäinen, and T. Maenpaa. Multiresolution Gray Scale and
Rotation Invariant Texture Analysis with Local Binary Patterns. IEEE
Transactions on Pattern Analysis and Machine Intelligence. 2002.
[21] G.Zhao, M.Pietikäinen. Dynamic texture recognition using local binary patterns
with an application to facial expressions. IEEE Transactions on Pattern
Analysis and Machine Intelligence. 2007.
[22] M. J. Lyons, S. Akamatsu, M. Kamachi, J. Gyoba. Coding Facial Expressions
with Gabor Wavelets. The 3th IEEE International Conference on Automatic
Face and Gesture Recognition, Nara, Japan. 1998.
[23] Takeo Kanade, Jeffrey Cohn, and Ying-li Tian. Comprehensive database for
facial expression analysis. International Conference on Automatic Face and
Gesture Recognition. 2000.
[24] T.F.Cootes, C.J.Taylor, D.Cooper, and J.Graham. Active shape models – their
training and applications. Computer Vision and Image Understanding. 1995.
[25] M. Turk and A. Pentland (1991). "Face recognition using eigenfaces". Proc.
IEEE Conference on Computer Vision and Pattern Recognition.
[26] Gorsuch, R. L. (1983) Factor Analysis. Hillsdale, NJ: Lawrence Erlbaum.
Phụ lục Nguyễn Thành Trung
58
[27] Mika, S. et al. (1999). "Fisher Discriminant Analysis with Kernels". IEEE
Conference on Neural Networks for Signal Processing IX: 41–48.
[28] L. Farkas, "Anthropometry of the Head and Face," Raven Press, New York, vol.
98, 1994, pp. 182-210.
[29] T. Ojala, M. Pietikäinen, and D. Harwood (1996), "A Comparative Study of
Texture Measures with Classification Based on Feature Distributions", Pattern
Recognition, vol. 29, pp. 51-59
[30] P. Viola, & M. Jones. (2004). Robust real-time face detection. International
Journal of Computer Vision, 57(2), 137-154.
[31] Yoav Freund and Robert E. Schapire. Experiments with a new boosting
algorithm. In Machine Learning: Proceedings of the Thirteenth International
Conference, pages 148–156,1996.
Các file đính kèm theo tài liệu này:
- LUẬN VĂN- TRÍCH CHỌN ĐẶC TRƯNG TRÊN KHUÔN MẶT NGƯỜI.pdf