Sau khi áp dụng các kỹ thuật trên, chúng ta xác định được một số thành phần trên khuôn mặt như trong hình 2.15. Việc tiếp theo là từ những vị trí đã xác định sẽ thực hiện xác định các góc quay theo các chiều như trong mô hình 3D trên khuôn mặt đã đề cập trong các phần ở trên.
2.2.3.1. Xác định góc quay theo hƣớng
Biên trái của vùng khuôn mặt có thể được tính toán | ) ( ) ( |P x P x DML M FL (2.1)
Với PM(x) là vị trí theo chiều ngang của môi (đã xác định được) và PFL(x) là biên trái của môi (mép trái của môi). Biên phải của vùng khuôn mặt có thể được tính toán: | ) ( ) ( |P x P x DMR M FR (2.2)
Chúng ta có thể tính được
MR ML
HS P P
D (2.3)
Công thức mối liên hệ giữa góc alpha và DHS như sau:
b e k D D LR HS (2.4)
Với k, , b là các giá trị xác định. Chúng ta có thể tính toán được giá trị của chúng trong hai trường hợp góc quay đặc biệt như khi mặt thẳng đứng (góc =0) và khi quay tận sang phải (/2). Trong hai trường hợp đó chúng ta có thể tính toán đưa ra được hệ phương trình sau:
0 2 ) 0 ( ) 2 / 2 / ( k b D D k b D D D LR LR LR LR LR (2.5)
Từ đó tính được góc alpha theo công thức sau:
LR LR M D D x P 2 ( ) 2 (2.6) 2.2.3.2. Xác định góc quay theo hƣớng
Góc beta tính từ không và giới hạn trong khoảng từ -900
đến 900 khi đầu quay.
Tương tự chúng ta cũng sẽ tính toán được khoảng cách giữa môi và điểm biên trên cùng của khuôn mặt, có thể được tính toán bằng công thức:
| ) ( ) ( |P y P y DMT M FT (2.7)
Theo hướng dọc, điểm ở trên môi người thì không nằm ở trung tâm, vì vậy chúng ta phải dịch chuyển tọa độ của điểm môi sang điểm trung tâm: P’M(y)=PM(y) - DMC. Công thức tính toán đưa ra cho như sau:
TB VS D D 2 (2.8)
Trong đó: MC TB M MB MT VS D D P y D D D 2 ( ) 2 Hướng của đầu theo hướng y được tính như sau:
TB MC TB M D D D y P ( ) 2 2 2 (2.9)
Trong công thức (2.6), DLR là chiều rộng của vùng bao quanh khuôn mặt trong khi công thức (2.9) thì DTB là chiều cao của vùng khuôn mặt và PM(x,y) là vị trí của môi, DMC là một giá trị hằng số có thể được tính toán theo kinh nghiệm. Sử dụng dữ liệu khuôn mặt có thể tính toán được giá trị của DTB
được tìm thấy khoảng 7/40.
2.2.3.3. Xác định góc quay theo hƣớng γ Công thức tính toán: ) ) ( ) ( arctan( y P x P LR LR
Trong công thức trên: DLR(x) và DLR(y) là khoảng cách theo chiếu dọc và chiều ngang giữa hai mắt…. Chúng ta có thể định nghĩa như sau:
) ( ) ( ) (x P x P x DLR LE RE ) ( ) ( ) (y P y P y DLR LE RE
Với PLE(x,y) là vị trí của mắt trái và PRE(x,y) là vị trí của mắt phải. Chúng ta có thể đưa ra công thức cuối cùng tính toán góc quay theo hướng z như sau: ( ) ( ) arctan( ) ( ) ( ) LE RE LE RE P x P x P y P y
Như vậy, chúng ta đã xác định được các góc quay , , theo ba chiều của khuôn mặt dựa vào các đặc điểm đã được nhận dạng và trích chọn trên khuôn mặt. Do vậy việc nhận dạng và trích chọn các đặc trưng của khuôn mặt là vô cùng quan trọng. Nếu vì một lý do nào đó mà chương trình không xác
định được hoặc xác định thiếu các đặc trưng (mắt – mũi – miệng) trên khuôn mặt thì sẽ không xác định được giá trị các góc quay.
Với việc áp dụng thuật toán AdaBoost, Haar Feature, mô hình Cascade of Classifier, quá trình nhận dạng và trích chọn các đặc trưng của khuôn mặt có độ tin cậy và chính xác cao. Do đó việc xác định các góc quay của khuôn mặt so với tư thế chuẩn được thông qua các công thức trên. Giá trị các góc quay tính được luôn nằm trong ngưỡng sai số cho phép của bài toán.
CHƢƠNG 3: CHƢƠNG TRÌNH THỬ NGHIỆM 3.1. Bài toán phát hiện hƣớng mặt ngƣời trong ảnh
Như chúng ta đã biết, bài toán phát hiện hướng mặt người trong ảnh là một khía cạnh nhỏ trong nhận dạng khuôn mặt. Không phải quá trình nhận dạng nào cũng xử lý với các ảnh mẫu chuẩn mà đôi khi xuất hiện nhiều ảnh mẫu với những tư thế, trạng thái biểu cảm khác nhau của khuôn mặt. Với kết quả nghiên cứu, tác giả đã khắc phục được một số khó khăn, nhược điểm trong quá trình nhận dạng khuôn mặt. Trong luận văn, tác giả đã trình bày một số kỹ thuật nhằm xác định hướng mặt người trong ảnh, từ đó xây dựng chương trình thử nghiệm, đánh giá thuật toán đã sử dụng, thử nghiệm với tập dữ liệu ảnh đầu vào thu từ camera hoặc các tập dữ liệu có sẵn.
3.2. Tƣ thế khuôn mặt ngƣời
Kỹ thuật xác định hướng mặt người trong ảnh tập trung vào việc phát hiện các tư thế, trạng thái khác nhau của khuôn mặt so với tư thế chuẩn. Đối tượng cần phân tích là khuôn mặt của một người trong tư thế chuẩn và các tư thế thay đổi. Dựa vào các thành phần được phát hiện trên khuôn mặt (mắt – mũi – miệng) làm cơ sở phát hiện, xác định hướng khuôn mặt và các góc quay so với tư thế chuẩn ban đầu.
Hình 3.1: Khuôn mặt chuẩn và các tư thế thay đổi
a, Tư thế chuẩn c, Hướng sang phải e, Hướng xuống dưới
b, Hướng sang trái d, Hướng lên trên
3.3. Các tƣ thế khác nhau của khuôn mặt
Hình 3.2: Tư thế khuôn mặt khi hướng sang trái
Hình 3.3: Tư thế khuôn mặt khi hướng sang phải
Hình 3.4: Tư thế khuôn mặt khi hướng lên trên
Hình 3.6: Tư thế khuôn mặt khi hướng lên trên sang trái
Hình 3.7: Tư thế khuôn mặt khi hướng lên trên sang phải
Hình 3.8: Tư thế khuôn mặt khi hướng xuống dưới sang trái
3.4. Chƣơng trình thử nghiệm
Trong chương 2, tác giả đã trình bày hai kỹ thuật phát hiện hướng mặt người trong ảnh: phát hiện hướng mặt người trong ảnh dựa trên tâm mắt và dựa theo các đặc trưng Haar. Kỹ thuật phát hiện hướng mặt người dựa trên tâm mắt tuy đơn giản nhưng còn nhiều tồn tại và hạn chế. Kỹ thuật này chỉ làm việc với mô hình 2D của khuôn mặt, không xác định được đầy đủ các góc quay của khuôn mặt. Ngược lại, kỹ thuật phát hiện hướng mặt người dựa theo các đặc trưng Haar có nhiều ưu điểm hơn. Việc vận dụng linh hoạt các đặc trưng Haar, thuật toán AdaBoost, mô hình Cascade of Classifier vào quá trình nhận dạng và phát hiện hướng khuôn mặt. Kỹ thuật này cho phép xác định đầy đủ và chính xác các góc quay của khuôn mặt. Do vậy, tác giả đã xây dựng chương trình thử nghiệm theo kỹ thuật phát hiện hướng mặt người dựa theo các đặc trưng Haar. Trong quá trình xây dựng chương trình thử nghiệm, tác giả sử dụng công cụ Visual C++
của Microsoft và thư viện mã nguồn mở OpenCV của Intel. Dưới đây là giao diện chính của chương trình.
Hình 3.10: Giao diện chính của chương trình
Chương trình sử dụng tập dữ liệu đầu vào là các ảnh thu được từ camera. Các ảnh mẫu này lưu lại quá trình thay đổi trạng thái của khuôn mặt, mô tả các tư thế khác nhau như: khuôn mặt ở tư thế thẳng đứng, hướng sang trái, hướng sang phải, hướng xuống dưới, hướng lên trên, hướng lên trên sang trái, hướng lên trên sang phải, hướng xuống dưới sang trái và hướng xuống dưới sang phải.
Hình 3.11: Chương trình nhận dạng các thành phần trên khuôn mặt
Chương trình được thiết kế với các chức năng sau:
Chức năng quản lý các ảnh mẫu:
Chức năng quản lý các ảnh mẫu trong chương trình đưa ra một số khung ảnh làm mẫu, cho phép chụp các hình ảnh từ camera rồi tiến hành nhận dạng các đặc trưng bất biến của khuôn mặt (mắt – mũi – miệng). Sau đó tiến
hành lưu trữ các ảnh đã xử lý vào tập dữ liệu. Các bước của chức năng này thực hiện như sau:
- Mở camera quay mặt người hoặc lấy từ file video có sẵn - Phân tích, trích chọn đặc trưng của các ảnh làm mẫu so sánh
- Lưu mẫu vừa định nghĩa (lưu ảnh mẫu cùng với các điểm đặc trưng)
Chức năng phân tích các điểm đặc trƣng, so sánh và kết luận
Các điểm đặc trưng ảnh hưởng trực tiếp đến kết luận của chương trình về các góc quay của khuôn mặt. Do đó việc quản lý, phân tích các điểm đặc trưng là quan trọng, cần thiết.
- Dựa trên các ảnh mẫu đã lưu lại, tiến hành phân tích các đặc trưng cơ bản (vị trí nhận dạng mắt – mũi – miệng) của khuôn mặt trên bức ảnh xử lý.
- Căn cứ vào các kết quả phân tích, sau khi so sánh, tính toán, hệ thống sẽ đưa ra kết luận phù hợp.
Hình 3.12: Chương trình nhận diện nhiều khuôn mặt
3.5. Một số trƣờng hợp đặc biệt
Trong quá trình nhận dạng nhằm xác định hướng của khuôn mặt, một số thành phần “lạ” có thể xuất hiện trên khuôn mặt như: Kính mắt, mũ, ria mép,…. Ngược lại, một số thành phần trên khuôn mặt cũng có thể biến mất do bị che khuất bởi các thành phần khác hoặc do tư thế của khuôn mặt trong ảnh mẫu. Với việc xuất hiện, biết mất của các thành phần này, quá trình nhận dạng khuôn mặt gặp nhiều khó khăn. Khuôn mặt không được nhận dạng hoặc nhận dạng không đầy đủ các thành phần (Mắt – mũi – miệng). Các đặc trưng của khuôn mặt không được trích chọn, phân tích đầy đủ. Do đó có thể không xác định được hoặc xác định không chính xác các góc quay của khuôn mặt.
Hình 3.14: Sự xuất hiện của chiếc mũ trên khuôn mặt
Hình 3.15: Sự xuất hiện của cả kính và mũ trên khuôn mặt
Hình 3.16: Khuôn mặt không được nhận dạng bởi góc quay quá lớn
PHẦN KẾT LUẬN
Ở nước ta hiện nay việc kiểm soát tự động đã có nhiều bước phát triển đáng kể, việc ứng dụng công nghệ nhận dạng mặt người vào các hệ thống giám sát tự động ngày một thiết thực và có khả năng ứng dụng rộng rãi trong nhiều lĩnh vực của đời sống kinh tế xã hội.
Nhận dạng khuôn mặt là một lĩnh vực đã được đặt ra từ lâu và đã có hàng loạt các đề tài khoa học được xác lập, các công trình nghiên cứu được công bố, các ứng dụng được triển khai. Bài toán đã đặt ra nhiều thách thức, khó khăn khi thực hiện. Một trong những khó khăn trong quá trình nhận dạng gặp phải đó là xác định hướng của khuôn mặt. Đa số các bài toán nhận dạng khuôn mặt chỉ có thể thực hiện được hoặc đạt kết quả chính xác nếu các bức ảnh chứa khuôn mặt ở tư thế thẳng đứng, vuông góc với trục ống kính của máy ảnh. Bài toán phát hiện hướng khuôn mặt người trong ảnh sẽ góp phần không nhỏ vào quá trình nhận dạng mặt người. Sử dụng kết quả của bài toán phát hiện hướng khuôn mặt người trong ảnh vào giai đoạn tiền xử lý hình ảnh, những bức ảnh chứa khuôn mặt người ở các tư thế khác nhau sẽ được qui chuẩn làm cơ sở đầu vào cho các hệ thống nhận dạng. Với kết quả nghiên cứu của luận văn, bài toán nhận dạng mặt người có thể áp dụng để nhận dạng khuôn mặt ở nhiều góc nghiêng khác nhau.
Trong luận văn này tác giả đã tập trung nghiên cứu các kỹ thuật phát hiện hướng mặt người trong ảnh. Cụ thể sau quá trình nghiên cứu đã đạt được những kết quả sau:
- Trình bày khái quát về xử lý ảnh, nhận dạng khuôn mặt, bài toán phát hiện hướng mặt người trong ảnh.
- Hệ thống hóa một số vấn đề trong việc phát hiện hướng mặt người trong ảnh, xác định các góc quay của khuôn mặt trong mô hình 2D và 3D.
- Cài đặt thử nghiệm thuật toán, xây dựng chương trình thử nghiệm nhằm mô phỏng việc tính toán góc quay theo các chiều của khuôn mặt.
Trên cơ sở tìm hiểu về thư viện OpenCV, Boost, Qt và các thuật toán AdaBoost, Haar Feature, mô hình Cascade of Classifier, tác giả đã áp dụng trên các ảnh chụp từ camera để xác định được các vùng bao quanh khuôn mặt như: mắt, mũi và miệng. Từ việc xác định các vị trí đó kết hợp với các công thức để tính toán góc quay của khuôn mặt trong mô hình 3D. Ảnh sử dụng được chụp thông qua camera nên chất lượng chưa được tốt. Việc xác định các vị trí đạt tỉ lệ chính xác tương đối cao. Tuy nhiên khi góc quay còn nhỏ thì việc xác định sẽ chính xác. Với những góc quay lớn hơn thì các đặc điểm trên khuôn mặt có thể không xác định được hoặc chỉ xác định được một phần do giới hạn trong các lớp nhận dạng.
Luận văn mới chỉ dừng lại ở việc phát hiện các đặc điểm trên khuôn mặt và góc quay của khuôn mặt ở một giới hạn góc còn hạn chế.
Hướng phát triển của bài toán trong tương lai là sẽ xây dựng việc xác định góc quay của khuôn mặt với độ lớn hơn so với độ lớn góc hiện tại. Trong tương lai chúng ta có thể tiến hành biến đổi, tạo mẫu nhiều hơn cho tập các ảnh để tạo ra lớp nhận dạng classifier tốt hơn nhằm xác định góc quay một cách chính xác và giới hạn góc quay sẽ lớn hơn.
Trong thời gian tới tác giả sẽ tiếp tục thực hiện việc đưa chương trình vào trong các thiết bị di động sử dụng ảnh chụp từ camera của điện thoại thực hiện một số chức năng cho việc phát hiện tư thế chụp ảnh đẹp, các kỹ thuật bảo mật thông tin máy tính, nhận dạng khuôn mặt.…
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] Đỗ Năng Toàn, Phạm Việt Bình, Giáo trình Xử lý ảnh, Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội 2008.
[2] Lương Mạnh Bá, Nguyễn Thanh Thủy, Nhập môn Xử lý ảnh số, Nhà xuất bản Khoa học và Kỹ thuật, Hà Nội 1999.
Tiếng Anh
[3] A.Tsukamoto, C.-W.Lee and S.Tsuji, “Detection and Pose Estimation of Human Face with Synthesized Image Models”, Proc.Int’l Conf.Pattern Recognition, pp.754-757, 1994.
[4] Andrzej Kasinski, Adam Schmidt, “The Architecture of the Face and Eyes Detection System Based on Cascade Classifiers”, 2006, Available at http://adamschmidt.info/assets/Uploads/architecture.pdf
[5] Alla Eleyan, Hasan Demirel, “PCA and LDA based Neural Networks for Human Face Recognition”, Eastern Mediterranean University Northern Cyprus, 2007.
[6] E. Saber and A.M.Tekalp, “Frontal – View Face Detection and Facial Feature Extraction Using Color, Shape and Symmetry Based Cost Functions”, Pattern Recognition Letters, vol.17, no.8, pp.669-680, 1998.
[7] Gines Garcia Mateos and Cristina Vicente Chicote, “Face Detection on Stil Images Using HIT Maps”, AVBPA 2001, LNCS 2091, pp.102-107, Springer - Verlag Berlin Heidelberg, 2001.
[8] H. Rowley, S.Baluja and T.Kanade, “Rotation Invariant Neural Network – Based Face Detection”, Proc.IEEE Conf.Computer Vision and Pattern Recognition, pp.38-44,1998.
[9] Jin Ok Kim, Sung Jin Seo, Chin Hyun Chung, Jun Hwang, and Woonglae Lee, “Face Detection by Facial Features with Color Images and
Face Recognition Using PCA”, ICCSA 2004, LNCS 3043, pp.1-8, Springer-