Luận văn Trích chọn đặc trưng trên khuôn mặt người

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.

pdf67 trang | Chia sẻ: lylyngoc | Lượt xem: 4016 | Lượt tải: 5download
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:

  • pdfLUẬN VĂN- TRÍCH CHỌN ĐẶC TRƯNG TRÊN KHUÔN MẶT NGƯỜI.pdf