Chuyển ảnh khuôn mặt sang vector

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và xây dựng hệ thống xác định khuôn mặt chung nhất trong tập ảnh số (Trang 43)

Với mỗi ảnh con khuôn mặt I1, I2, …, In có kích thƣớc NxN ta chuyển thành vector N2x 1 chiều (số chiều quá lớn). Mục tiêu của phƣơng pháp PCA là “giảm số chiều” của 1 tập vector trên sao cho vẫn đảm bảo đƣợc “tối đa thông tin quan trọng nhất” . Tức trích rút đặc trƣng- Feature extraction (giữ k thuộc tính “mới”) chứ không phải Lựa chọn đặc trƣng - Feature selection (giữ lại k thuộc tính nguyên gốc ban đầu). Ta có thể khái quát các bƣớc của phƣơng pháp PCA áp dụng trong hệ thống nhƣ sau:

B1 Đƣa các ảnh khuôn mặt I1, I2, … Inđã dò tìm, phát hiện về cùng kích thƣớc chuẩn là 100 x 100 Ảnh khuôn mặt có kích thƣớc NxN Chuyển thành Vector N2x1

Hình 3.7: Tập ảnh khuôn mặt sau khi chuẩn hóa cùng kích thước

B2Biểu diễn mọi ảnh Ii thành các vector xi ta thu đƣợc 1 tập dữ liệu X = [x1, x2,…, xn]

Trong đó n là số lƣợng ảnh khuôn mặt, xi là ảnh khuôn mặt thứ i có kích thƣớc là 200x200. Tức là X là ma trận 2 chiều gồm n hàng và 40 000 cột

B3 Áp dụng hàm khởi tạo PCA::PCA đã có sẵn trong thƣ viện OpenCV

PCA pca(const Mat &data, const Mat &mean, int flags,

int maxComponents=0)

Trong đó Mat &data - là ma trận tập đặc trƣng đầu vào đƣợc lƣu trữ dƣới dạng ma trận hàng. Mat &mean - là giá trị ma trận trung bình, nếu ma trận này rỗng thì giá trị trung bình sẽ đƣợc tính từ tập dữ liệu data. Còn tham số int flags - là cờ hoạt động đƣợc sử dụng để xác định cách bố trí dữ liệu theo hàng hay theo cột,

CV_PCA_DATA_AS_ROW cho biết là các mẫu tập trƣng đầu vào ở đây là mỗi một khuôn mặt đƣợc lƣu trữ nhƣ một hàng của ma trận. CV_PCA_DATA_AS_COL cho biết là các mẫu tập trƣng đầu vào ở đây là mỗi một khuôn mặt đƣợc lƣu trữ nhƣ một cột của ma trận. Cuối cùng maxComponents – là số lƣợng tối các thành phần PCA

đƣợc giữ lại, mặc định tất cả các thành phần đƣợc giữ lại.

Tiếp theo sử dụng hàm PCA::project để chiếu các vector từ không gian ban đầu sang không gian của các thành phần chính.

void project ( const Mat &vec,

CV_OUT Mat &result) const

đầu ra sau khi chiếu vector vec vào không gian các thành phần chính. Trong hệ thống, ở giai đoạn PCA tác giả dùng mỗi một khuôn mặt lƣu trữ tại một hàng của ma trận đặc trƣng - CV_PCA_DATA_AS_ROW. Vì thế ma trận đầu ra result có số lƣợng hàng bằng số lƣợng hàng của vector đầu vào, có nghĩa là result.row = vec.row. Và số lƣợng cột của ma trận đầu ra chính là số lƣợng các thành phần chính( ví dụ maxComponents

chính là số lƣợng đƣợc truyền trong giai đoạn PCA).

3.3.2 Mô hình diện mạo tích cực

ASM là một phƣơng pháp dựa trên mô hình sử dụng một mô hình cho trƣớc của tất cả các mô hình khuôn mặt đã đƣợc xây dựng từ trƣớc. Phƣơng pháp này sau khi huấn luyện và xây dựng mô hình tiến hành so khớp với khuôn mặt trong ảnh, thƣờng thì cố gắng tìm vị trí phù hợp nhất giữa các mô hình với các dữ liệu trong một hình ảnh khuôn mặt. Khi xây dựng mô hình ASM phải có một cơ sở dữ liệu hình ảnh gắn với tập tin chú thích của nó, thƣờng có hai định dạng hỗ trợ là asf và pts. Trong hệ thống, tác giả dùng mô hình có sẵn đã đƣợc huấn luyện, bạn có thể tải mô hình này tại trang chủ blog của greatyao [21]. Tiếp theo hệ thống tiến hành trích rút đặc trƣng khuôn mặt, thuật toán đƣợc mô tả tổng quát nhƣ dƣới hình 3.8:

Hình 3.8:Thuật toán so khớp khuôn mặt

THUẬT TOÁN ASM_FITTING Input: LI – tập ảnh gồm n ảnh

cascade_name – dữ liệu huấn luyện cascade

model_name – dữ liệu mô hình sau khi được huấn luyện

Output: D – Tập đặc trưng khuôn mặt

1. Khởi tạo

nImages n; totalFaces 0;

2. Load dữ liệu

init_detect_cascade(cascade_name); Read(model_name);

3. Mô hình hóa khuôn mặt

For i = 0 to nImages do

Bool flag detect_all_faces(&detshapesi , &nFace, LIi );

If (flag)

For j = 0 to nFaces() do Begin

Sj InitShape(detshapesj ); totalFaces ++;

End;

Sj Fit_asm(Sj)

4. Trích rút đặc trƣng

For k = 0 to totalFaces do Dk Feature(Sk);

Thuật toán ASM_fitting có các tham số đầu vào là một tập ảnh các khuôn mặt cho trƣớc, các dữ liệu haarlike và mô hình sau khi huấn luyện đã nói ở phần trên. Hàm

detect_all_face() nếu phát hiện đƣợc khuôn mặt trong mỗi bức ảnh sẽ trả về giá trị flag = true. Khi phát hiện đƣợc mỗi khuôn mặt trong bức ảnh, hàm InitShape() trả về một hình chữ nhật bao khuôn mặt đƣợc lƣu trữ dƣới dạng hai điểm Top-left và Bottom- Right. Hàm Fit_asm() sẽ so khớp hình dạng đƣợc mô hình hóa từ hàm InitShape()

cho phù hợp với khuôn mặt hiện tại đang xét cho ta 68 điểm mốc. Cuối cùng hàm

Feature() sẽ trích rút đặc trƣng lƣu trữ dƣới dạng phù hợp.

Trong hệ thống thu đƣợc 68 điểm mốc sau quá trình so khớp fitting, một hình dạng đƣợc định nghĩa gồm 68 điểm mốc này, đƣợc thành lập bằng cách kết hợp các phần tử biểu diễn vị trí của các điểm độc lập {(xi, yi)} đƣợc gọi là điểm mốc:

S = ),

Để trích rút đặc trƣng mỗi một khuôn mặt đƣợc biểu diễn dƣới dạng vector X gồm 136 phần tử nhƣ sau:

X = (x1, x2,…,xn, y1, y2,….., yn)

Kết quả tập đặc trƣng thu đƣợc từ N khuôn mặt phát hiện đƣợc là một ma trận gồm N hàng và 136 cột. Trong đó mỗi một khuôn mặt đƣợc biểu diễn là một hàng của ma trận, còn số cột của ma trận chính là 136.

3.4 Xác định khuôn mặt chung nhất

Tác giả áp dụng phƣơng pháp phân cụm phân cụm phân cấp để gom các khuôn mặt tƣơng tự nhau về các cụm khuôn mặt riêng biệt. Từ đó xác định khuôn mặt chung nhất trong tập ảnh. Thuật toán đƣợc mô tả dƣới hình 3.9:

Input: D- Ma trận đặc trƣng cỡ NxN Ouput: F - Khuôn mặt chung nhất For n 1 to N do

For i  1 to N do C[n][i]  SIM(Dn,i); I[n] 1;

For k  1 to N – 1 do

<i , m>  argAve{<i , m>: i ≠ m ˄ I[i] =1˄I[m] =1 } C[i][m] A.APPEND(<i , m>)

For j  1 to N do

C[i][j]  SIM(i,m,j);C[j][i]  SIM(i,m,j); I[m]  0;

id  MaxFaces(A); FGetFaces(id);

Trong thuật toán trên, đầu tiên chúng ta tính ma trận khoảng cách C cỡ NxN.

Sau đó thực hiện N - 1 bƣớc để sáp nhập các cụm hiện tại có độ tƣơng tự nhỏ hơn một ngƣỡng cho trƣớc. Trong mỗi lần lặp, ta thu đƣợc hai cụm tƣơng tụ đƣợc sáp nhập và các hàng và cột của cụm i đã sáp nhập trong C đƣợc cập nhật. Các cụm đƣợc lƣu trữ

nhƣ một danh sách của việc sáp nhập trong A. Mảng I cho ta biết đƣợc trạng thái của cụm có thể đƣợc sáp nhập. Hàm SIM(i, j, m) tính độ tƣơng tự của cụm j và cụm mới sau khi sáp nhập cụm i với cụm m, ở đây tác giả dùng độ đo Centroid-linkage. Sau

khi có các cụm A khuôn mặt riêng biệt ta xác định chỉ số của cụm có số lƣợng khuôn mặt lớn nhất thông qua hàm MaxFaces(). Khuôn mặt F là khuôn mặt chung nhất trong tập ảnh đƣợc lấy trong cụm có số lƣợng khuôn mặt lớn nhất bằng hàm GetFaces()

3.5 Kết luận chƣơng 3

Trong chƣơng này, tác giả tập trung nghiên cứu các bƣớc để giải quyết xây dựng hệ thống. Ở chƣơng 4, là phần thử nghiệm cho việc dò tìm khuôn mặt chung nhất giữa các bức ảnh khuôn mặt. Sau quá trình thực nghiệm, tác giả tiến hành so sánh và đƣa ra những đánh giá, nhận xét cho bài toán

CHƢƠNG 4: THỬ NGHIỆM VÀ KẾT QUẢ ĐẠT ĐƢỢC 4.1 Cơ sở dữ liệu khuôn mặt thử nghiệm

Để phục vụ cho bài toán tác giả đã thu thập một tập dữ liệu ảnh gồm 3 tập ảnh bao gồm các ảnh ở nhiều độ phân giải khác nhau trong đó mỗi ảnh có nhiều khuôn mặt để thử nghiệm và đánh giá. Tập dữ liệu này đƣợc tác giả thu thập từ các mẫu hình chụp khuôn mặt ngƣời, các ảnh đều đƣợc lƣu ở định dạng JPG. Các ảnh khuôn mặt đều không những chỉ có một khuôn mặt mà có thể có nhiều khuôn mặt trong bức ảnh. Bằng cách thay đổi các hình ảnh khuôn mặt khác nhau trên tập dƣ liệu cho chúng ta thấy hiệu quả của hệ thống

4.2 Một số thực nghiệm

Tác giả tiến hành các thực nghiệm kết quả của hệ thống trên một số tập ảnh đầu vào nhƣ trình bày ở mục 4.1 nhƣ sau để đánh giá hiệu quả của hệ thống.

Thực nghiệm 1:

Tập ảnh đầu vào

Hình 4.2: Tập ảnh đầu vào thực nghiệm 1

Trong tập ảnh trên tổng tất cả có 12 cá nhân, và nhƣ chúng ta thấy khuôn mặt chung nhất giữa các bức ảnh trên là

Hình 4.3: Khuôn mặt chung nhất trong thực nghiệm 1

Cá nhân xuất hiện 4 lần trong tập ảnh đầu vào trên. Hình 4.4 và hình 4.5 dƣới đây là kết quả của hệ thống với từng phƣơng pháp trích rút đặc trƣng.

Hình 4.4: Kết quả của hệ thống trong thực nghiệm 1 - PCA

Thực nghiệm 2:

Tập ảnh đầu vào

Hình 4.6: Tập ảnh đầu vào thực nghiệm 2

Trong tập ảnh trên tổng tất cả có 06 cá nhân, và nhƣ chúng ta thấy khuôn mặt chung nhất giữa các bức ảnh trên là

Hình 4.7: Khuôn mặt chung nhất trong thực nghiệm 2

Cá nhân xuất hiện 4 lần trong tập ảnh đầu vào trên. Hình 4.8 và hình 4.9 dƣới đây là kết quả của hệ thống với từng phƣơng pháp trích rút đặc trƣng.

Hình 4.8: Kết quả của hệ thống trong thực nghiệm 2 - PCA

Hình 4.9: Kết quả của hệ thống trong thực nghiệm 2 - ASM

Thực nghiệm 3:

Tập ảnh đầu vào

Hình 4.10: Tập ảnh đầu vào thực nghiệm 3

Trong tập ảnh trên tổng tất cả có 6 cá nhân, và nhƣ chúng ta thấy khuôn mặt chung nhất giữa các bức ảnh trên là

Cá nhân trong hình 4.11 xuất hiện 3 lần trong tập ảnh đầu vào. Hình 4.12 và hình 4.13 dƣới đây là kết quả của hệ thống.

Hình 4.12: Kết quả của hệ thống trong thực nghiệm 3 - PCA

Hình 4.13:Kết quả của hệ thống trong thực nghiệm 3 - ASM

Với những thực nghiệm trên, tác giả thấy cả 2 phƣơng pháp PCA và ASM cho những kết quả khá chính xác khi xác định khuôn mặt chung nhất trong một tập ảnh trong đó mỗi bức ảnh có nhiều khuôn mặt. Tác giả cũng thực hiện thêm nhiều thực nghiệm khác nhau, kết quả cho thấy rằng đối với phƣơng pháp PCA thì độ sáng của hình ảnh ảnh hƣởng rất lớn đến kết quả, còn ASM thì biểu cảm khuôn mặt thay đổi sẽ làm kết quả thay đổi.

4.3 Kết luận chƣơng 4

Trong chƣơng cuối này, tác giả đã trình bày về tập cơ sở dữ liệu ảnh đầu vào gồm nhiều khuôn mặt trong mỗi bức ảnh và, thu thập kết quả từ các kết quả từ một số thực nghiệm để có những nhận xét và đánh giá về hệ thống.

KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN Kết luận

Trong nội dung của luận văn này, sau khi tiến hành nghiên cứu tổng quan về bài toán xác định đƣợc khuôn mặt giống nhau nhất giữa các bức ảnh gồm nhiều khuôn mặt, và một số phƣơng pháp liên quan để giải quyết bài toán. Tác giả đi sâu vào nghiên cứu và ứng dụng thành công hai phƣơng pháp Active Shape Model, PCA để trích rút đặc trƣng khuôn mặt và áp dụng phƣơng pháp phân cụm phân cấp tích tụ để gom các khuôn mặt giống nhau về cùng một cụm, từ đó ta xác định đƣợc khuôn mặt chung nhất trong tập ảnh thuộc cụm có số lƣợng khuôn mặt lớn nhất. Tác giả tiến hành cài đặt và xây dựng các thử nghiệm thành công, từ đó đƣa ra những nhận xét, đánh giá cho bài toán. Qua thử nghiệm hệ thống đáp ứng tƣơng đối tốt mong muốn của ngƣời dùng

Để xây dựng đƣợc một chƣơng trình ứng dụng cho bài toán có một số khó khăn cần vƣợt qua đó là: trong việc dò tìm và phát hiện ra khuôn mặt ở trong những điều kiện khác nhau là rất khó khăn. Khó khăn thứ 2 đó là, hệ thống xây dựng phải đáp ứng thời gian thực và tốc độ xử lý phải nhanh. Bên cạnh đó các kết quả đã công bố từ trƣớc, các tác giả sử dụng trên tập ảnh mẫu gồm mỗi ảnh chỉ có một khuôn mặt nên vẫn chƣa so sánh hệ thống tác giả xây dựng với các hệ thống đã có.

Hƣớng phát triển

Bài toán đặt ra là tƣơng đối khó và mới trong lĩnh vực nhận dạng và khai phá dữ liệu. Mặc dù tác giả đã nỗ lực, cố gắng nhằm xây dựng một hệ thống có khả năng đáp ứng tốt nhất áp dụng đƣợc vào thực tế. Nhƣng với những hạn chế về mặt trình độ cũng nhƣ thời gian thực hiện, nên kết quả vẫn còn chƣa đƣợc nhƣ mong muốn. Những định hƣớng sau đây sẽ hy vọng ngày càng hoàn thiện mang tính khả thi cho khả năng tƣơng tác giữa ngƣời với máy tính qua hệ thống.

- Tăng số đặc trƣng của khuôn mặt đƣợc trích rút để tăng độ chính xác cho kết quả phân cụm

- Kết hợp với một số phƣơng pháp khác để quá trình dò tìm khuôn mặt đƣợc chính xác và hiệu quả với những khuôn mặt nghiêng, bị xoay, có những vật cản nhƣ đội mũ, đeo kính

- Có thể tích hợp hệ thống vào một số hệ thống thực tế nhƣ các trang mạng xã hội để giải quyết một số vấn đề trong thực tế.

-

TÀI LIỆU THAM KHẢO

[1] A tutorial on principal components analysis, Lindsay I Smith. Cornell University, USA, (February 2002)

[2] A. Jain, M. Murty, and P. Flynn, ”Data Clustering: A Review”, ACM Computing Surveys, 31(3), September 1999.

[3] D.G. Kendall, “Shape Manifolds, Procrustean Metrics, and Complex Projective Shapes”, Bull. London Math. Soc., vol. 16, pp. 81-121, 1984

[4] E. Osuna, R. Freund, and F. Girosi, “Training Support Vector Machines: An Application to Face Detection” Proc. IEEE Conf. Computer Vision and Pattern Recognition, pp. 130-136, 1997

[5] G. Yang and T. S. Huang (1994) “Human Face Detection in Complex Background”, Pattern Recognition, vol. 27, no. 1, pp. 53-63.

[6] 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

[7] 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

[8] H.P. Graf, T. Chen, E. Petajan, and E. Cosatto, “Locating Faces and Facial Parts”, Proc. First Int‟l Workshop Automatic Face and Gesture Recognition, pp. 41-46, 1995 [9] J. Canny, “A Computational Approach to Edge Detection”, IEEE Trans. Pattern Analysis and Machine Intelligence, vol. 8, no. 6, pp. 679-698, June 1986.

[10] J. Sobottka and I. Pitas, “Segmentation and Tracking of Faces in Color Images”, Proc. Second Int‟l Conf. Automatic Face and Gesture Recognition, pp. 236-241, 1996. [11] 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.

[12] K.V. Mardia and I.L. Dryden, “Shape Distributions for Landmark Data”, Advanced Applied Probability, vol. 21, pp. 742-755, 1989.

[13] Kang Ryoung Park, Gaze Detection System by Wide and Auto Pan/Tilt Narrow View Camera, DAGM 2003, LNCS 2781 pp 76 – 83, Springer-Verlag Berlin Heidelberg 2003

[14] Ming-Hsuan Yang, David J. Kriegman, and Narendra Ahuja (2002) , Detecting Faces in Images: A Survey”, IEEE Transactions on Pattern Analysis and machine Intelligent, vol 24, no. 1.

[15] P. Viola, & M. Jones. (2004). Robust real-time face detection. International Journal of Computer Vision, 57(2), 137-154.

[16] Stephen Milborrow and Fred Nicolls. “Locating facial features with an extended active shape model”. Proceedings of the 10th European Conference on Computer Vision: Part IV, ECCV '08, 2008.

[17] 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.

[18] T. F. Cootes, D. H. Cooper, C. J. Taylor, and J. Graham, “Active Shape Models- Their Training and Application”, Department of Medical Biophysics, University of Manchester, Oxford Road, Manchester M13 9PT, England.

[19] T. Sakai, M. Nagao, and S. Fujibayashi, “Line Extraction and Pattern etection in a

Một phần của tài liệu (LUẬN văn THẠC sĩ) nghiên cứu và xây dựng hệ thống xác định khuôn mặt chung nhất trong tập ảnh số (Trang 43)

Tải bản đầy đủ (PDF)

(58 trang)