Hình 2 .1 Dò tìm thông tin lồi lõm
Hình 2.15 Canh biên các vị trí trên khuôn mặt
2.5.3. Xử lý độ sáng trên tập ảnh mẫu
Khi việc canh biên các khuôn mặt hoàn thành, do đặc trƣng của ánh sáng hoặc do máy ảnh làm cho ảnh có độ sáng không đều hoặc độ tƣơng phản kém. Để giải quyết vấn đề này ta sử dụng kỹ thuật xử lý ảnh đơn nhƣ sau.
Trƣớc hết cân bằng các giá trị mật độ trên toàn cửa sổ bằng cách lập hàm biến đổi tuyến tính giá trị mật độ trong vùng tròn của cửa sổ. Các điểm bên ngoài vòng tròn đƣợc xem là nền. Giả sử mật độ của pixel (x,y) là I(x,y) khi đó cách biến đổi tuyến tính này đƣợc tham số hóa bởi a,b,c với:
𝑥 𝑦 1 𝑎𝑏 𝑐
= 𝐼(𝑥, 𝑦) (2.17)
Việc biến đổi này nhằm biểu diễn sự khác biệt về độ sáng trên toàn ảnh. Các biến đổi đƣợc giới hạn tuyến tính để việc lập hàm đơn giản hơn và ít tham số hơn. Tập hợp tất cả pixel trên toàn bộ cửa sổ đƣờng tròn ta đƣợc phƣơng trình ma trận ràng buộc và đƣợc giải bằng phƣơng pháp đảo ngƣợc ở trên. Phƣơng trình này sẽ xấp xỉ toàn bộ độ sáng của mỗi phần cửa sổ và trừ đi với cửa sổ kế cận để cân bằng biến đổi về độ sáng.
Cân bằng lƣợc đồ, ánh xạ không tuyến tính các giá trị mật độ để nới rộng miền cƣợng độ trong cửa sổ. Lƣợc đồ đƣợc tính với các pixcel trong cửa sổ vòng tròn.
Mặt nạ tròn để loại các pixcel nền
Window ban đầu Hàm tuyến tính
Window đã hiệu chỉnh độ sáng (đã trừ đi hàm tuyến tính) Window đã cân bằng lƣợc đồ
Hình 2.16: Hiệu chỉnh độ sáng và cân bằng lược đồ
Để hiệu chỉnh độ sáng việc đầu tiên là xây dựng hàm ánh xạ tuyến tính với các giá trị mật độ trong cửa sổ sau đó trừ nó đi để hiệu chỉnh ánh sáng. Tiếp theo sử dụng cân bằng lƣợc đồ để hiệu chỉnh đầu vào của ảnh nhằm cải thiện độ
tƣơng phản. Với mỗi bƣớc này việc ánh xạ đƣợc tính với các pixcel bên trong hình tròn và áp dụng với toàn cửa sổ.
2.5.4. Gán nhãn
Từ tập ảnh học ta dùng phƣơng pháp đã trình bày trên để rút trích cây lồi lõm trên ảnh. Các cây này sẽ đƣợc gán nhãn thủ công. Với mỗi cây bất kỳ đƣợc gán nhãn là khuôn mặt hay không phải là khuôn mặt. Do đó từ một tập ảnh học ta rút trích đƣợc hai tập cây là tập cây biểu diễn những đối tƣợng là khuôn mặt và tập cây biểu diễn đối tƣợng không phải là khuôn mặt.
Hình 2.17: Gán nhãn cho tập ảnh học 2.5.5. Thống kê 2.5.5. Thống kê
Mục đích của bƣớc này là xấp xỉ một cấu trúc cây khuôn mặt. Trong bƣớc gán nhãn chúng ta đã rút trích cây và gán nhãn. Kết quả là thu đƣợc một số cây thuộc tập khuôn mặt. Những cây này sẽ đƣợc dùng làm dữ liệu học thống kê. Mô hình thống kê đƣợc sử dụng nhƣ sau:
Gọi S(Tx) là tổng khoảng cách từ một bất kỳ Tx đến tất cả các cây còn lại trong tập học. Khi đó: 𝑆(𝑇𝑥) = 𝑇𝑆(𝑇𝑥, 𝑇𝑖) 𝑖=𝑛𝑖≠𝑥 𝑖=1 (2.18) Và tập học sẽ trở thành: Gán nhãn Rút trích cây Tập ảnh học
TH = {(Ti,S(Ti)), Ti KM} (2.19)
Trong đó KM là tập các cây đƣợc gán nhãn là khuôn mặt. Việc học thống kê theo mô hình này đƣợc thực hiện nhƣ sau: đầu tiên chọn trong tập TH ra k
cây có giá trị S(T) nhỏ nhất, k cây này sẽ là đại diện tiêu biểu cho một lớp khuôn mặt. Sau đó từ k cây này (tạm gọi là tập cây chuẩn) có thể dùng để phát hiện khuôn mặt theo mô hình sau:
Hình 2.18: Mô hình phát hiện mặt người
Đầu tiên từ ảnh đầu vào, dùng phƣơng pháp rút trích đặc trƣng lồi lõm ta sẽ nhận đƣợc một danh sách các cây lồi lõm. Ứng với mỗi cây, ta so sánh nó với tập cây chuẩn để kiểm tra xem đây có phải là cây biểu diễn khuôn mặt không. Nếu thỏa điều kiện thì đó là ứng viên khuôn mặt. Các ứng viên này sẽ đƣợc xử lý để khử trùng lắp khuôn mặt do một số cây có một phần nút gốc chồng lắp với nhau.
2.5.6. Các đánh giá dùng trong phát hiện khuôn mặt
Dựa vào tập cây chuẩn, để xét một cây bất kỳ có khả năng là khuôn mặt hay không ta dựa trên trung bình khoảng cách của cây đó đến tất cả các cây còn lại trong tập cây chuẩn. Khoảng cách đó đƣợc tính nhƣ sau:
Ứng viên Ảnh đầu vào Đánh giá cây Tập cây chuẩn Xử lý Vị trí khuôn mặt
𝐷 (𝑡) = 𝑘𝑖=1𝑡,𝑇𝑖
𝑘 (2.20)
Trong đó:
𝐷 (𝑡): là trung bình khoảng cách của cây t đến các cây còn lại trong tập cây chuẩn.
t: là cây đang xét.
Ti: là các cây trong tập k cây chuẩn.
Dựa vào giá trị của 𝐷, cây t đang xét đƣợc đánh giá là ứng viên khuôn mặt hay không dựa vào công thức sau:
t FaceCandidate 𝐷 (𝑡) ≤ 1 (2.21)
Trong đó ngƣỡng 1 là ngƣỡng thực nghiệm, ngƣỡng này đƣợc lấy trong khoảng 0.2 đến 0.4. Ngoài cách tính trung bình khoảng cách ra, cũng có thể sử dụng việc tính trung bình độ tƣơng đồng của cây ứng viên với cây tập chuẩn để đánh giá ứng viên. 𝑆 (𝑡) = 𝑇𝑆(𝑡, 𝑇𝑖) 𝑘 𝑖=1 𝑘 (2.22) Trong đó:
𝑆 (𝑡): là trung bình độ tƣơng đồng của cây t so với các cây trong tập chuẩn.
T: là cây đang xét.
Ti: là các cây trong tập k cây chuẩn.
Tƣơng tự trƣờng hợp trên, giá trị 𝑆 (𝑡) đƣợc dùng để đánh giá xem cây t
có là khuôn mặt hay không.
t FaceCandidate 𝑆 (𝑡) ≤ 2 (2.23)
Ngƣỡng 2 là số gần với số 1. Có thể nói 2 1-1. Ngƣỡng này có giá trị từ 0.6 đên 0.8. Tuy nhiên về bản chất hai cách này là giống nhau.
2.5.7. Hậu xử lý
Các kết quả thu đƣợc cho thấy có một vùng khuôn mặt đƣợc phát hiện có một phần chồng lắp lên nhau. Có thể phát hiện đƣợc nhiều cây ứng viên là khuôn mặt, nhƣng chúng là sự chồng lắp của nhiều cây lên một vị trí khuôn mặt. Vì vậy cần có một thuật toán để làm giảm sự chồng lắp này. Trƣớc hết sử dụng
một đánh giá đơn giản để liên kết các vùng chồng lắp, nếu hai ứng viên khuôn mặt có diện tích bị chồng lắp lên nhau quá 1/3 diện tích của nó thì chúng đƣợc xem là các mặt trùng và đƣợc liên kết lại thành một vùng lớn hơn. Vùng diện tích xem xét đó chính là vùng nút gốc của cây ứng viên.
Sau khi gom nhóm đƣợc vùng sẽ thu đƣợc một hay nhiều vùng chứa khuôn mặt. Tuy nhiên do sai số giữa kích thƣớc cây và kích thƣớc khuôn mặt thực tế nên việc áp dụng tiếp kỹ thuật xác định vùng lồi lõm với mức nhỏ hơn nhằm phát hiện chính xác vùng. Các vùng lồi lõm sẽ đƣợc liên kết lại với nhau và vùng khuôn mặt sẽ là vùng liên thông lớn nhất trong đó.
Chƣơng 3. CÀI ĐẶT VÀ THỬ NGHIỆM 3.1. Môi trƣờng thử nghiệm
Chƣơng trình nhận dạng mặt ngƣời đƣợc viết bằng ngôn ngữ C# sử dụng bộ Visual Studio 2008 với các hàm AIP hỗ trợ nhận dạng khuôn mặt trong thƣ viện Luxand FaceSDK.
Luxand FaceSDK là thƣ viện đa nền tảng cho phép VS C++, C#, VB.NET, JAVA để phát triển, sử dụng các thuật toán để phát hiện khuôn mặt ngƣời trên ảnh một cách nhanh chóng và đáng tin vậy. Làm việc trong các hệ thống 32-bit và 64-bit, FaceSDK đƣợc sử dụng để xây dựng Web, Windows, Linux, Mac OS X, iOS, các ứng dụng Android, và cho phép xác định khuôn mặt trên hình ảnh tĩnh và các dòng video.
Máy tính thử nghiệm có cấu hình Pentium Dual-Core 2.0 GHz, bộ nhớ 2GB, hệ điều hành Microsoft Windows 7.
3.2. Tập ảnh thử nghiệm
Để thử nghiệm chƣơng trình, trong luận văn tôi sử dụng tập dữ liệu ảnh khuôn mặt đƣợc thu thập bởi Markus Weber [22]. Đây là tập dữ liệu ảnh đƣợc chụp dƣới nhiều góc độ, tƣ thế khác nhau gồm cả ngoại cảnh và trong nhà với các điều kiện chiếu sáng đa dạng (xem hình 3.1).
c) Ảnh chụp thiếu ánh sáng d) Ảnh có nền phức tạp
e) Ảnh chụp khuôn mặt bị che một phần f) Ảnh chụp khuôn mặt biểu cảm
Hình 3.1: Một số ảnh khuôn mặt trong tập ảnh của Markus Weber
Ngoài ra chƣơng trình còn thử nghiệm trên tập dữ liệu không phải là khuôn mặt, tập dữ liệu là đối tƣợng [22], tập hình ảnh này bao gồm xe và background về nhà và đồ dùng trong nhà (xem hình 3.2).
c) Ảnh nhà d) Ảnh xe
Hình 3.2. Một số ảnh không phải khuôn mặt trong tập ảnh của Markus Weber
3.3. Kết quả thử nghiệm
Từ tập ảnh thử nghiệm đã nêu trong phần 3.2 tôi sử dụng phƣơng pháp rút trích đã trình bày trong chƣơng 2 để rút trích các vùng lồi lõm trên ảnh.
Thử nghiệm dƣới đây rút trích đặc trƣng lồi lõm ở 2 mức 1=60 và 2=120. Kết quả thử nghiệm đƣợc trình bày trong bảng sau:
Bảng 1: Kết quả thử nghiệm rút trích đặc trưng ở 2 mức
Số ảnh thử
nghiệm Đúng Sai Độ chính xác
Thời gian xử lý trung bình
100 95 5 95% 1.5s
Tôi thực hiện lại thử nghiệm trên với việc rút trích các đặc trƣng lồi lõm ở 3 mức 1 = 20, 2 = 60 và 3 = 120. Kết quả thu đƣợc nhƣ sau:
Bảng 2: Kết quả thử nghiệm rút trích đặc trưng ở 3 mức
Số ảnh thử
nghiệm Đúng Sai Độ chính xác
Thời gian xử lý trung bình
100 97 3 97% 1.85s
Ngoài ra chƣơng trình thử nghiệm trên tập dữ liệu không phải là khuôn mặt thì kết quả nhƣ sau:
Bảng 3: Kết quả thử nghiệm trên tập ảnh không chứa khuôn mặt
Số ảnh thử
nghiệm Đúng Sai Độ chính xác
Thời gian xử lý trung bình
3.4. Nhận xét
Qua quá trình thử nghiệm trên các tập ảnh đã chọn cho thấy:
- Chƣơng trình cho kết quả tƣơng đối tốt, dò tìm đƣợc hầu hết các khuôn mặt;
- Kết quả rút trích các vùng lồi và lõm chính xác hay không phụ thuộc vào mức σ. Việc xây dựng các cây 3 lớp sẽ tăng độ chính xác đáng kể so với việc rút trích đặc trƣng cây 2 lớp, tuy nhiên việc rút trích đặc trƣng nhiều lớp làm cho quá trình xử lý tính toán chậm hơn;
- Với những ảnh có độ sáng tốt hơn, độ phân giải cao hơn thì thời gian xử lý nhanh hơn, chính xác hơn. Điều này cho thấy các yếu tố ánh sáng và chất lƣợng ảnh có ảnh hƣởng đến khả năng xác định các vùng lồi lõm nhanh hay chậm do đó ảnh hƣởng đến tính chính xác của kết quả rút trích;
- Một số ảnh không thể phát hiện ra khuôn mặt đều là những ảnh có nền phức tạp, ảnh quá tối khiến cho quá trình phát hiện trở nên khó khăn hơn và những ảnh có nền gần giống với khuôn mặt nên bị nhận dạng nhầm khung cảnh thành khuôn mặt.
Ngoài ra để có sự so sánh tôi cũng thử kiểm tra trên một chƣơng trình phát hiện khuôn mặt với hƣớng tiếp cận dựa trên diện mạo sử dụng mạng nơ ron và kết quả đƣợc thể hiện ở bảng 4.
Bảng 4: Kết quả thử nghiệm tiếp cận diện mạo trên các tập ảnh
Tập ảnh thử nghiệm Số ảnh Đúng Sai Độ chính xác Thời gian xử lý trung bình Tập ảnh khuôn mặt 100 91 9 91% 3.14s Tập ảnh không phải khuôn mặt 100 94 6 94% 3.14s
Thời gian thực hiện trung bình của các lần thử nghiệm là 3.14s nhiều hơn so với tiếp cận 3D. Và một điều tôi nhận thấy khi thử nghiệm trên chƣơng trình phát hiện khuôn mặt sử dụng mạng Nơ-ron này là với ảnh có độ phân giải càng cao thì tốc độ xử lý của chƣơng trình càng chậm và dẫn đến thời gian xử lý tăng lên.
3.5. Một số ảnh kết quả tiêu biểu
a) Ảnh có nền phức tạp b) Ảnh khuôn mặt biểu cảm
c) Ảnh chụp thiếu ánh sáng d) Ảnh khuôn mặt quay 1800
g) Ảnh xe f) Ảnh thiên nhiên
Hình 3.2: Một số trường hợp phát hiện đúng
KẾT LUẬN
Cùng với sự phát triển mạnh mẽ của công nghệ thông tin, mọi lĩnh vực trong đời sống đều đƣợc tin học hóa. Việc ứng dụng công nghệ thông tin vào các hoạt động sản xuất, kinh doanh, giải trí đã mang lại những lợi ích đáng kể. Đặc biệt công nghệ thông tin đƣợc ứng dụng rất nhiều trong lĩnh vực an toàn và bảo mật thông tin.
Qua luận văn này tôi đã đóng góp đƣợc một hƣớng tiếp cận mới cho bài toán xác định khuôn mặt ngƣời trong ảnh đó là hƣớng tiếp cận dựa vào đặc trƣng lồi lõm của khuôn mặt để phát hiện. Kết quả chấp nhận đƣợc nhƣng đây là bƣớc đầu để phát triển bài toán phát hiện mặt ngƣời trong ảnh. Bên cạnh đó, trong quá trình xây dựng chƣơng trình thử nghiệm, tôi đã tìm hiểu thêm về thƣ viện mã nguồn mở Luxand FaceSDK, qua đó biết cách sử dụng các hàm có sẵn trong thƣ viện.
Chƣơng trình demo cho kết quả tƣơng đối tốt, dò tìm đƣợc hầu hết các khuôn mặt, thời gian phát hiện nhanh đối với các ảnh mặt ngƣời đƣợc chụp thẳng, chất lƣợng ảnh tốt. Tuy nhiên, đối với ảnh chụp nghiêng hơn 450, ảnh có màu sắc quá tối, ảnh có nền phức tạp thì chƣơng trình khó có thể phát hiện đƣợc khuôn mặt.
Đối với ảnh webcam thì hiệu suất của chƣơng trình còn tùy thuộc theo chất lƣợng của loại webcam đƣợc sử dụng trong quá trình chụp ảnh, nhƣng cũng sẽ giống việc phát hiện khuôn mặt trong ảnh, chƣơng trình sẽ khó có thể phát hiện đƣợc mặt ngƣời nếu ảnh có độ sáng quá kém hoặc khuôn mặt bị chụp nghiêng hơn 450.
Hƣớng phát triển của đề tài:
Đây là một đề tài tƣơng đối phức tạp, mặc dù đã cố gắng xây dựng một hệ thống có khả năng phát hiện mặt ngƣời dựa vào thông tin khuôn mặt xuất hiện trên ảnh tốt nhấ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, tôi kết thúc đề tài với một mảng nhỏ trong lĩnh vực phát hiện. Tuy nhiên trong thời gian tới tôi sẽ áp dụng thêm một số kỹ thuật nâng cao chất lƣợng ảnh nhƣ tách ngƣỡng, tăng giảm độ sáng và bó cụm để tiền xử lý ảnh đầu vào nhằm loại bớt nhiễu làm tăng khả năng phát hiện các đối tƣợng giúp chƣơng trình có thể phát hiện đƣợc những ảnh có nền phức tạp và ảnh tối.
TÀI LIỆU THAM KHẢO Tiếng Việt
[1] PGS.TS Đỗ Năng Toàn, TS. Phạm Việt Bình, Xử lý ảnh, Đại học Thái Nguyên, 2007.
Tiếng Anh
[2] A. Yuille, P.Halinan, and D. Cohen, “Feature Extraction from Faces Using efomable Template”, Int’l J. Computer Vision, vol. 8, no. 2, pp 99-111, 1992 [3] C. Kotropoulos and I. Pitas, “Rule-Based Face Detection in Frontal Views”,
Proc. Int’l Conf. Acoustics, Speech and Signal Processing, pp. 122-126, 1998
[4] Duc. A. Duong, Du. LH. Tran, DuanD. Tran, “Optimizing Speed for Adaptive Local Thresholding Algorithm Using Dynamic Programming”, International Conference on Electronics, Information, and Communications 2004-ICEIC’04, Vol. 1, pp. 438-441, Aug 2004.
[5] 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.
[6] Fuzhen Huang and Jianbo Su, “Multiple Face Detection Using adaptive Flows”, Sinobiometrics 2004, LNCS 3338, pp 137-143, Springer-Verlag Berlin eidellberg, 2004.
[7] G. Yang, T. S. Huang, “Human Face Detection in Complex Background”,
Pattern Recognition, Vol. 27, No. 1, pp. 53-63, 1994
[8] H. Schneiderman, T. Kanade, “Probabilistic Modeling of Local Appearance and Spatial Relationships for Object Detection”, Proc. IEEE Conf. Computer Vision and Pattern Recognition (CVPR’98), pp. 45-51, 1998.
[9] H. Rowley, S. Baluja, T. Kanade, “Neural network-based face detection”, IEEE Transaction on Pattern Analysis and Machine Intelligence (PAMI), Vol. 20, No. 1, pp. 23-38, Jan 1998.
[10] James L. Crowley, Alice C. Parker, “A Representation for Shape based on Peaks and Ridges in the Difference of Low-Pass Transform”, Technical
ReportCMU-RI-TR-83-4, Carnegie-Mellon University, May 1983.
[11] K.V Mardia and Dryden, “Shape Distributions for Landmark Data”,
Advanced Applied Probability, vol. 21, pp. 742-755, 1989.
[12] L. Sirovich and M. Kirby, “Low-dimensional proceduce for the characterization of human faces” The Optical of America A, Vol. 4, page 519,