MẪU ĐỒ ÁN KHOÁ LUẬN TỐT NGHIỆP TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG & TRUYỀN THÔNG VIỆT HÀN Khoa Khoa Học Máy Tính ĐỒ ÁN CƠ SỞ 5 ĐỀ TÀI ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT Sinh viên thực hiện CHU QUANG HUY 18IT4 T[.]
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG & TRUYỀN THÔNG VIỆT-HÀN Khoa Khoa Học Máy Tính ĐỒ ÁN CƠ SỞ ĐỀ TÀI: ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT Sinh viên thực : CHU QUANG HUY 18IT4 TÔN ĐỨC NAM 18IT5 Giảng viên hướng dẫn : ThS DƯƠNG THỊ MAI NGA Đà nẵng, tháng … năm TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG VIỆT – HÀN Khoa Khoa Học Máy Tính ĐỒ ÁN CƠ SỞ ĐỀ TÀI: ỨNG DỤNG NHẬN DIỆN KHUÔN MẶT Đà Nẵng, tháng … năm … MỤC LỤC Contents MỞ ĐẦU Chương I GIỚI THIỆU Bài toán nhận dạng mặt người khó khăn 1.1 Bài toán nhận dạng mặt người 1.2 Những khó khăn hệ thống nhận dạng khuôn mặt 1.3 Ngơn ngữ lập trình Chương II TỔNG QUAN VỀ XỬ LÝ ẢNH 10 Khái quát xử lý ảnh 10 1.1 Một số khái niệm 10 1.2 Một số vấn đề xử lý ảnh 11 1.3 Một số ứng dụng xử lý ảnh 13 Bài toán nhận dạng mặt người .13 2.1 Bài toán nhận dạng mặt người 14 2.2 Những khó khăn nhận dạng khn mặt 14 2.3 Tầm quan trọng toán nhận diện mặt người 15 2.4 Các ứng dụng đặc trưng toán nhận diện mặt người 15 2.5 Xây dựng hệ thống nhận diện mặt người đặc trưng 16 2.6 Một số phương pháp nhận diện mặt người .17 Phương pháp phát mặt người dựa đặc trưng lõm 23 Chương III XÂY DỰNG CHƯƠNG TRÌNH-MƠ PHỎNG 25 Xây dựng chương trình 25 1.1 Phân tích 25 Thiết kế hệ thống 25 Xử lý ảnh đầu vào 26 Phát khuôn mặt ảnh .27 Xử lý đầu 29 Thiết kế sở liệu 29 Thiết kế giao diện chương trình 30 KẾT LUẬN 32 DANH MỤC HÌNH ẢNH Hình 1:Hệ Thống Nhận Dạng Mặt Người Hình Các bước hệ thống nhận dạng khuôn mặt Hình 3.Quá trình sử lý ảnh .10 Hình 4.Một số vấn đề xử lý ảnh 11 Hình Hệ thống nhận diện mặt người đặc trưng .17 Hình Kết cấu khuôn mặt .20 Hình Màu sắc da mặt 21 Hình Sơ đồ ngữ cảnh hệ thống .25 Hình Sơ đồ khối thực chương trình 26 Hình 10 Lưu đồ giải thuật chọn ảnh đầu vào 27 MỞ ĐẦU Lý chọn đề tài Với phát triển không ngừng khoa học công nghệ, đặc biệt với điện thoại thông minh (smartphone) ngày đại sử dụng phổ biến đời sống người làm cho lượng thông tin thu hình ảnh ngày tăng Theo đó, lĩnh vực xử lý ảnh trọng phát triển, ứng dụng rộng rãi đời sống xã hội đại Không dừng lại việc chỉnh sửa, tăng chất lượng hình ảnh mà với cơng nghệ xử lý ảnh giải toán nhận dạng chữ viết, nhận dạng dấu vân tay, nhận dạng khn mặt… Một tốn nhiều người quan tâm lĩnh vực xử lý ảnh nhận dạng khn mặt (Face Recognition) Như biết, khn mặt đóng vai trị quan trọng q trình giao tiếp người với người, mang lượng thơng tin giàu có, chẳng hạn từ khn mặt xác định giới tính, tuổi tác, chủng tộc, trạng thái cảm xúc, đặc biệt xác định mối quan hệ với đối tượng (có quen biết hay khơng) Do đó, tốn nhận dạng khn mặt đóng vai trị quan trọng nhiều lĩnh vực đời sống ngày người hệ thống giám sát, quản lý vào ra, tìm kiếm thơng tin người tiếng,…đặc biệt an ninh, bảo mật Có nhiều phương pháp nhận dạng khuôn mặt để nâng cao hiệu suất nhiên dù hay nhiều phương pháp vấp phải thử thách độ sáng, hướng nghiêng, kích thước ảnh, hay ảnh hưởng tham số mơi trường Bài tốn Nhận diện khn mặt (Face Recognition) bao gồm nhiều toán khác như: phát mặt người (face detection), đánh dấu (facial landmarking), trích chọn (rút) đặc trưng (feature extration), gán nhãn, phân lớp (classification) Trong thực tế, nhận dạng khuôn mặt người (Face Recognition) hướng nghiên cứu nhiều nhà khoa học quan tâm, nghiên cứu để ứng dụng thực tiễn Ở trường đại học hàng đầu Công Nghệ Thông Tin Massachusetts Institute of Technology (MIT), Carnegie Mellon University (CMU), Standford, Berkeley công ty lớn Microsoft, Apple, Google, Facebook có trung tâm sinh trắc học (Biometrics Center) nghiên cứu nhận dạng khn mặt người trở thành lĩnh vực nghiên cứu Gần đây, công ty Hitachi Kokusai Electric Nhật cho đời camera giám sát, chụp ảnh tìm 36 triệu khn mặt khác có nét tương tự sở liệu vịng giây Có hai phương pháp nhận dạng phổ biến nhận dạng dựa đặc trưng phần tử khuôn mặt biến đổi Gabor Wavelet mạng Neural, SVM,… nhận dạng dựa xét tổng thể tồn khn mặt phương pháp PCA, LDA, LFA Trong đó, PCA phương pháp trích rút đặc trưng nhằm giảm số chiều ảnh đơn giản mang lại hiệu tốt Hệ thống hoạt động ổn định có tính thích nghi cao liệu đầu vào thay đổi nhiều Mục đích đề tài - Xây dựng dự án phần mềm ứng dụng nhận dạng khuôn mặt - Tìm hiểu thư viện OpenCv, phần mềm EmguCv - Nghiên cứu phương pháp trích chọn đặc trưng Eigenfaces - Tìm hiểu phương pháp xác định khn mặt (Face Detection) - Nghiên cứu phương pháp phân tích thành phần (Principal Component AnalysisPCA) Đối tượng phạm vi nghiên cứu đề tài a) Đối tượng - Các phương pháp, thuật toán phục vụ cho việc phát nhận dạng khuôn mặt người ảnh - Bộ thư viện xử lý ảnh OpenCv công cụ hỗ trợ EmguCv - Bộ CSDL chuẩn Yalefaces, có thêm CSDL sinh viên tự thu thập b) Phạm vi nghiên cứu - Tập trung tìm hiểu nhận dạng khn mặt (Face Recognition) khơng trọng tìm hiểu phát khuôn mặt (Face Detection) - Việc xử lý ảnh, nhận dạng khuôn mặt thỏa mãn điều kiện: Ánh sáng bình thường, ngược sáng, ánh sáng đèn điện (Với CSDL tự thu thập) Góc ảnh: Trực diện (frontal) góc nghiêng khơng q 100 Khơng bị che khuất (no occulusion) Ảnh có chất lượng cao (high quality images) Chương I 1.1 GIỚI THIỆU Bài toán nhận dạng mặt người khó khăn Bài tốn nhận dạng mặt người Hệ thống nhận dạng mặt người hệ thống nhận vào ảnh đoạn video (một dòng hình ảnh liên tục) Qua xử lý, tính tốn hệ thống xác định vị trí mặt người (nếu có) ảnh xác định người số người mà hệ thống biết (qua trình học) người lạ Hình 1:Hệ Thống Nhận Dạng Mặt Người 1.2 Những khó khăn hệ thống nhận dạng khn mặt Bài tốn nhận dạng mặt người toán nghiên cứu từ năm 70 Tuy nhiên, tốn khó nên nghiên cứu chưa đạt kết mong muốn Chính thế, vấn đề nhiều nhóm giới quan tâm nghiên cứu Khó khăn tốn nhận dạng mặt người kể đến sau: a Tư chụp, góc chụp: Ảnh chụp khn mặt thay đổi nhiều góc chụp camera khuôn mặt Chẳng hạn như: chụp thẳng, chụp chéo bên trái 450 hay chụp chéo bên phải 450, chụp từ xuống, chụp từ lên, v.v… Với tư khác nhau, thành phần khuôn mặt mắt, mũi, miệng bị khuất phần chí khuất hết b Sự xuất thiếu số thành phần khuôn mặt: Các đặc trưng râu mép, râu hàm, mắt kính, v.v… xuất không Vấn đề làm cho tốn trở nên khó nhiều c Sự biểu cảm khuôn mặt: Biểu cảm khuôn mặt người làm ảnh hưởng đáng kể lên thông số khuôn mặt Chẳng hạn, khn mặt người, khác họ cười sợ hãi, v.v… d Sự che khuất: Khn mặt bị che khuất đối tượng khác khuôn mặt khác e Hướng ảnh (pose variations): Các ảnh khn mặt biến đổi nhiều với góc quay khác trục camera Chẳng hạn chụp với trục máy ảnh nghiêng làm cho khuôn mặt bị nghiêng so với trục ảnh f Điều kiện ảnh: Ảnh chụp điều kiện khác chiếu sáng, tính chất camera (máy kỹ thuật số, máy hồng ngoại, v.v…), ảnh có chất lượng thấp ảnh hưởng nhiều đến chất lượng ảnh khuôn mặt g Aging condition: Việc nhận dạng ảnh mặt thay đổi theo thời gian cịn vấn đề khó khăn, khả nhận dạng người h Các hệ thống cực lớn (very large scale systems): Các CSDL ảnh mặt test nhà nghiên cứu nhỏ (vài trăm tới vài chục nghìn ảnh mặt), nhiên thực tế CSDL lớn, ví dụ CSDL ảnh mặt cảnh sát đất nước chứa từ hàng triệu tới tỉ ảnh… o Tổng quan kiến trúc hệ thống nhận dạng mặt người Một hệ thống nhận dạng mặt người thông thường bao gồm bốn bước xử lý sau: Phát khuôn mặt (Face Detection) Phân đoạn khuôn mặt (Face Alignment hay Segmentation) Trích chọn đặc trưng (Feature Extraction) Nhận dạng (Recognition) hay Phân lớp khn mặt (Face Clasaification) Hình Các bước hệ thống nhận dạng khn mặt Phát khn mặt dị tìm, định vị vùng (vị trí) khn mặt xuất ảnh frame video Các vùng tách riêng để xử lý Phân đoạn khuôn mặt xác định vị trí mắt mũi, miệng thành phần khác khuôn mặt chuyển kết cho bước trích chọn đặc trưng Ở bước trích chọn đặc trưng, phương pháp trích chọn đặc điểm (mẫu nhị phân cục bộ-Local Binary PatternLBP, Gabor wavelets…) sử dụng với ảnh mặt để trích xuất thơng tin đặc trưng cho ảnh từ thông tin thành phần khuôn mặt, kết ảnh biểu diễn dạng vector đặc trưng (feature vector) Những vector đặc trưng liệu đầu vào cho mơ hình huấn luyện trước để nhận dạng khuôn mặt (Face Recognition) hay phân lớp khuôn mặt (Face Classifition), tức xác định danh tính (identity) hay nhãn ảnh-đó ảnh Ở bước nhận dạng khn mặt (Face Recognition), thường phương pháp láng giềng gần (k-nearest neighbor: KNN) sử dụng Bên cạnh bước nêu trên, cịn áp dụng thêm số bước khác tiền xử lý, hậu xử lý nhằm làm tăng độ xác cho hệ thống Ví dụ, sau bước phát khn mặt, ta thực bước tiền xử lý (Preprocessing) bao gồm bước chỉnh ảnh (face image alignment) chuẩn hóa ánh sáng (illumination normalization) Do số thông số tư khuôn mặt, độ sáng, điều kiện ánh sáng, v.v… phát khuôn mặt đánh giá bước khó khăn quan trọng so với bước lại hệ thống Tuy nhiên, phạm vi đồ án này, khơng tập trung tìm hiểu bước phát khuôn mặt mà tập trung chủ yếu vào bước nhận dạng khuôn mặt Dữ liệu cho hệ thống nhận dạng mặt chia làm tập: tập huấn luyện (training set), tập tham chiếu (reference set haygallery set) tập để nhận dạng (probe set hay query set, đơi cịn gọi test set) Trong nhiều hệ thống, tập training trùng với tập reference Tập training gồm ảnh dùng để huấn luyện (hay học-learning), thông thường tập dùng để sinh không gian (projection subspace) ma trận phương pháp hay sử dụng PCA (Principal Component Analysis), WPCA (Whitened PCA), LDA (Linear Discriminant Analysis), KPCA (Kernel PCA) Tập reference gồm ảnh biết danh tính chiếu (projected) vào khơng gian bước training Bước training nhằm mục đích: giảm số chiều (dimension reduction) vector đặc điểm (feature vector) vector thường có độ dài lớn (vài nghìn tới vài trăm nghìn) nên để ngun việc tính tốn rất lâu, thứ hai làm tăng tính phân biệt (discriminative) ảnh khác lớp (định danh khác nhau), ngồi làm giảm tính phân biệt ảnh thuộc lớp (tùy theo phương pháp, ví dụ Linear Discriminant Analysis LDA- gọi Fisher Linear Discriminant AnalysisFisherface phương pháp làm việc với tập training mà đối tượng có nhiều ảnh mặt điều kiện khác nhau) Sau thực chiếu tập reference vào không gian con, hệ thống lưu lại kết ma trận với cột ma trận vector tương ứng với ảnh (định danh biết) để thực nhận dạng (hay phân lớp) Nhận dạng (hay phân lớp) thực với tập ảnh probe, sau tiền xử lý xong, ảnh áp dụng phương pháp trích chọn đặc điểm (như với ảnh thuộc tập training reference) chiếu vào không gian Tiếp đến việc phân lớp dựa phương pháp k-NN, định danh ảnh cần xác định gán định danh ảnh có khoảng cách (distance) gần với Ở cần lưu ý ảnh vector nên dùng khái niệm hàm khoảng cách hai vector để đo khác biệt ảnh 1.3 Ngơn ngữ lập trình Để giải tốn nhận dạng khn mặt sử dụng thư viện OpenCV, sử dụng ngơn ngữ lập trình như: NET C#, VB, Python, Java, C++… Trong đồ án ngơn ngữ lập trình sử dụng Python, viết phần mềm Pycharm Chương II TỔNG QUAN VỀ XỬ LÝ ẢNH Khái quát xử lý ảnh 1.1 Một số khái niệm Xử lý ảnh mảng quan trọng kỹ thuật thị giác máy tính, tiền đề cho nhiều nghiên cứu thuộc lĩnh vực Hai nhiệm vụ trình xử lý ảnh nâng cao chất lượng thơng tin hình ảnh xử lý số liệu cung cấp cho trình khác có việc ứng dụng thị giác vào điều khiển Quá trình việc thu nhận ảnh nguồn (từ thiết bị thu nhận ảnh dạng số tương tự) gửi đến máy tính Dữ liệu ảnh lưu trữ định dạng phù hợp với trình xử lý Người lập trình tác động thuật toán tương ứng lên liệu ảnh nhằm thay đổi cấu trúc ảnh phù hơp với ứng dụng khác Quá trình xử lý nhận dạng ảnh xem trình thao tác ảnh đầu vào nhằm cho kết mong muốn Kết đầu trình xử lý ảnh ảnh “đã xử lý” kết luận Ảnh xử lý Ảnh Xử lý ảnh Kết luận Hình 3.Quá trình xử lý ảnh Ảnh xem tập hợp điểm ảnh điểm ảnh xem đặc trưng cường độ sáng hay dấu hiệu vị trí đối tượng khơng gian xem hàm n biến P(c,c1,c2,…).Do đó,ảnh xử lý ảnh xem ảnh n chiều * Sơ đồ tổng quát hệ thống xử lý ảnh: Hệ định Thu nhận Tiền xử Trích lý trọn đặc Đối sánh rút Hậu kết luận xử lý Lưu trữ Hình 4.Một số vấn đề xử lý ảnh - Các hệ thống xử lý ảnh a Tiền xử lý Hình Kết cấu khuôn mặt c Sắc màu da Thông thường ảnh màu không xác định trực tiếp toàn liệu ảnh mà tác giả dùng tính chất sắc màu da người (khn mặt người) để chọn ứng viên khuôn mặt người (lúc liệu thu hẹp đáng kể) để xác định khuôn mặt người Tôi trình bày chi tiết mơ hình hóa màu da người sau Hình Màu sắc da mặt d Đa đặc trưng Gần có nhiều nghiên cứu sử dụng đặc trưng toàn cục như: màu da người, kích thước, hình dáng để tìm ứng viên khn mặt, sau xác định ứng viên khuôn mặt thông qua dùng đặc trưng cục (chi tiết) như: mắt, lông mày, mũi, miệng, tóc Tùy tác giả sử dụng tập đặc trưng khác - Hướng tiếp cận dựa so khớp mẫu Trong so khớp mẫu, mẫu chuẩn khuôn mặt (thường khuôn mặt chụp thẳng) xác định trước xác định tham số thông qua hàm Từ ảnh đưa vào, tính giá trị tương quan so với mẫu chuẩn đường viền khuôn mặt, mắt, mũi miệng Thông qua giá trị tương quan mà tác giả định có hay khơng có tồn khuôn mặt ảnh Hướng tiếp cận có lợi dễ cài đặt, khơng hiệu tỷ lệ, tư thế, hình dáng thay đổi Nhiều độ phân giải, đa tỷ lệ, mẫu con, mẫu biến dạng xem xét thành bất biến tỷ lệ hình dáng * Hướng tiếp cận theo phương pháp sau: a Xác định mẫu trước Tác giả Sakai cố gắng thử xác định khuôn mặt người chụp thẳng ảnh Ông dùng vài mẫu mắt, mũi, miệng, đường viền khn mặt để mơ hình hóa khuôn mặt Mỗi mẫu định nghĩa giới hạn đoạn thẳng Các đường thẳng ảnh trích phương pháp xem xét thay đổi gradient nhiều so khớp mẫu Đầu tiên tìm ứng viên thơng qua mối tương quan ảnh mẫu đường viền Sau đó, so khớp với mẫu khác Hay nói cách khác, giai đoạn đầu xem giai đoạn sơ chế để tìm ứng viên, giai đọan thứ hai giai đoạn tinh chế để xác định có tồn hay khơng khn mặt người Ý tưởng trì nghiên cứu sau Còn tác giả Craw đưa phương pháp xác định khuôn mặt người dựa vào mẫu hình dáng ảnh chụp thẳng (dùng vẻ bề ngồi hình dáng khn mặt) Đầu tiên dùng phép lọc Sobel để tìm cạnh Các cạnh nhóm lại theo số ràng buộc Sau đó, tìm đường viền đầu, q trình tương tự lặp lặp lại với tỷ lệ khác để xác định đặc trưng khác như: mắt, lơng mày,và mơi Sau Craw mơ tả phương thức xác định dùng tập có 40 mẫu để tìm đặc trưng khn mặt điều khiển chiến lược dị tìm b Các mẫu bị biến dạng Tác giả Yuille dùng mẫu biến dạng để mô hình hóa đặc trưng khn mặt, mơ hình có khả linh hoạt cho đặc trưng khuôn mặt Trong hướng tiếp cận này, đặc trưng khuôn mặt mô tả mẫu tham số hóa Một hàm lượng (giá trị) định nghĩa để liên kết cạnh, đỉnh, thung lũng ảnh để tương ứng với tham số mẫu Mơ hình tốt tối thiểu hàm lượng qua tham số, Mặc dù kết tốt với mẫu biến dạng theo vết đối tượng đặc trưng khơng mơ hình theo lưới, hạn chế hướng tiếp cận mẫu biến dạng phải khởi tạo phạm vi gần đối tượng để xác định Hai tác giả Huang Su dùng lý thuyết dòng chảy để xác định đường viền khn mặt dựa đặc tính hình học Hai ông dùng lý thuyết tập đồng mức (Level Set) để loang từ khởi động ban đầu để có khuôn mặt người * Hướng tiếp cận dựa diện mạo Trái ngược với phưong pháp so khớp mẫu với mẫu định nghĩa trước chuyên gia, mẫu hướng tiếp cận học từ ảnh mẫu Một tổng quát, phương pháp theo hướng tiếp cận áp dụng kỹ thuật theo hướng xác suất thống kê máy học để tìm đặc tính liên quan khuôn mặt khuôn mặt Các đặc tính học hình thái mơ hình phân bố hay hàm biệt số nên dùng dùng đặc tính để xác định khn mặt người Đồng thời, tốn giảm số chiều thường quan tâm để tăng hiệu tính tốn hiệu xác định Có nhiều phương pháp áp dụng xác suất thống kê để giải Một ảnh hay vector đặc trưng xuất phát từ ảnh xem biến ngẫu nhiên x, biến ngẫu nhiên có đặc tính khn mặt hay khơng phải khn mặt cơng thức tính theo hàm mật độ phân lớp theo điều kiện P(x | khn mặt) P(x | ~ khn mặt) Có thể dùng phân loại Bayes khả cực phân loại ứng viên khuôn mặt hay khuôn mặt Không thể cài đặt trực tiếp phân loại Bayes số chiều x cao, P(x | khn mặt) P(x | khuôn mặt) đa phương thức, chưa thể hiểu xây dựng dạng tham số hóa cách tự nhiên cho P(x | khuôn mặt) P(x | khơng phải khn mặt) Có nhiều nghiên cứu theo hướng tiếp cận quan tâm xấp xỉ có tham số hay khơng có tham số cho P(x | khuôn mặt) P(x | khuôn mặt) Các tiếp cận khác hướng tiếp cận dựa diện mạo tìm hàm biệt số (như: mặt phẳng định, siêu phẳng để tách liệu, hàm ngưỡng) để phân biệt hai lớp liệu: khuôn mặt khơng phải khn mặt Bình thường, mẫu ảnh chiếu vào khơng gian có số chiều thấp hơn, sau dùng hàm biệt số (dựa độ đo khoảng cách) để phân loại, xây dựng mặt định phi tuyến mạng neural đa tầng Hoặc dùng SVM (Support Vector Machine) phương thức kernel, chiếu hồn tồn mẫu vào khơng gian có số chiều cao để liệu bị rời rạc hồn tồn ta dùng mặt phẳng định phân loại mẫu khuôn mặt khuôn mặt Phương pháp phát mặt người dựa đặc trưng lõm Năm 1983, James L Crowley đưa khái niệm ridge peak Ridge điểm lồi ảnh Tập điểm ridge ảnh tạo thành đường xương sống đường tạo thành chùm tia gọi peak (chùm) James L Crowley sử dụng phép hiệu lọc Low Pass để rút điểm ridge (lồi) ảnh, sau thuật tốn duyệt để kết chúng lại với thành đặc trưng ridge peak Tiếp sau đó, số phương pháp đề xuất để rút trích thơng tin ridge valley (lõm) Hầu hết phương pháp dùng lọc để tăng cường thông tin cạnh ảnh sau dị tìm quỹ tích điểm cực trị Quỹ tích điểm cực trị xem đặc trưng lồi lõm Trong đặc trưng lồi lõm dị tìm nhiều độ phân giải khác nhau, cho kết đáng kể Tuy nhiên, chất lượng đặc trưng lồi lõm phụ thuộc nhiều vào điều kiện chiếu sáng mức phân giải lựa chọn trước Để giải phụ thuộc này, Lindeberg đề xuất phương pháp tự động chọn độ phân giải tốt Gần Hải Trần đưa cách tiếp cận sử dụng Laplacian để tăng cường thơng tin cạnh sau dị tìm ridge peak nhiều mức khác Trong hướng tiếp cận này, đặc trưng ridge peak biểu diễn dạng đồ thị quan hệ cấp bậc với tầng ridge peak dị tìm mức khác Chương III 1.1 XÂY DỰNG CHƯƠNG TRÌNH-MƠ PHỎNG Xây dựng chương trình Phân tích Nhiệm vụ chương trình nhận dạng khuôn mặt người xem khuôn mặt có biết đến hay chưa Ngồi ra, chương trình cịn thực cơng việc phát hiện, tách khn mặt người (nếu có) từ ảnh tĩnh, từ frame ảnh thu từ camera Sau đó, lưu vào CSDL làm tập mẫu Hình Sơ đồ ngữ cảnh hệ thống - Như vậy, chức chương trình bao gồm: o Lấy ảnh từ máy tính, kết nối đến webcam hiển thị lên ImageBox o Thực tách khuôn mặt ImageBox (nếu có) o Thực lưu khn mặt phát vào CSDL o Thực xóa, đổi tên… Nhận dạng ảnh khuôn mặt Nếu “biết” người (có lưu thơng tin CSDL) hiển thị tên ảnh người Nếu “khơng biết” (khơng có thơng tin người CSDL) hiển thị màu đen lên hình tên người là: “Unknow” Thiết kế hệ thống Với chức nêu trên, chương trình chia thành phần chính: Xử lý ảnh đầu vào Phát khuôn mặt Xử lý đầu (Ảnh đầu dùng để nhận dạng, hay lưu vào CSDL hay hai) Hình Sơ đồ khối thực chương trình Xử lý ảnh đầu vào Đầu vào hệ thống ảnh chứa khuôn mặt cần xử lý, ảnh ảnh tĩnh, lấy từ nhớ máy tính frame ảnh bắt từ dịng hình ảnh camera Sau có ảnh đầu vào bắt đầu tiến hành tìm kiếm, phát khn mặt ảnh Hình 10 Lưu đồ giải thuật chọn ảnh đầu vào - Code thực chức Phát khuôn mặt ảnh Sau nhận ảnh đầu vào, hệ thống thực chức phát khuôn mặt có ảnh Như nói phần Giới Thiệu, toán phát mặt người ảnh tốn khó, nên ta khơng sâu tìm hiểu cách giải toán Ở đây, ta sử dụng phương pháp tiếp cận dựa diện mạo (appearance-based) thực nhanh thuật tốn adaboost thơng qua hàm cvHaarObjects() thư viện OpenCV Hàm thực việc phát đối tượng dựa đặc trưng haar-like, cụ thể nhờ vào Cascade truyền vào cho hàm Bộ Cascade xây dựng theo dạng (tree-node) huấn luyện từ trước Việc huấn luyện Cascade thực từ liệu thu thập để phục vụ cho q trình nhận dạng Ví dụ, muốn nhận dạng người A, ta thu thập ảnh khuôn mặt người A với nhiều tư thế, góc chụp điều kiện chụp khác nhau, sau cho nhận dạng học theo thuật toán Cascade training Kết thu ta có mơ hình nhận diện, sử dụng để nhận dạng đối tượng code thực chức Hàm thực chức phát mặt người dịng hình ảnh camera Trong đó: The HaarCascade (haarface): Một đối tượng thuộc lớp Mơ hình nhận diện: HaarCascade Đây tham số lời gọi DetectHaarCascade() Thực chất, file XML, từ đó, chuỗi liệu nạp cho phân loại Haar Có số thác phát khn mặt có trước OpenCV (và EmguCV) Các khuôn mặt ảnh phát nhờ mô hình nhận diện OpenCV cung cấp nhiều mơ hình nhận diện khn mặt, khơng có phân loại tốt nhất, tùy trường hợp mà mô hình nhận dạng cho kết tốt mơ hình Chúng ta thay đổi mơ hình nhận dạng phần mềm cách dễ dàng, cần thay đổi tên tệp tin XML Ngồi mơ hình nhận diện khn mặt, OpenCV cịn cung cấp cho nhiều mơ hình nhận diện khác, như: trịng mắt, mắt, mũi, tay… Ở đây, ta dùng mơ hình nhận diện khuôn mặt, với: - haarface = “đường dẫn tới mơ hình nhận diện” 5 - mơ hình nhận diện: haarcascade_frontalface_alt_tree.xml ScaleIncreaseRate: Tham số thứ hai lời gọi đến DetectHaarCascade() tỷ lệ co giãn, sử dụng thuật tốn lặp-qt ảnh để tìm đối tượng (ở mặt người) Thiết lập cao làm tăng tốc độ phát khuôn mặt (giảm thời gian tìm kiếm, phát khn mặt ảnh) cách chạy đường chuyền hơn, cao, bạn nhảy nhanh phạm vi phát thiếu khuôn mặt Mặc định OpenCV 1.1, nói cách khác, tăng quy mô với hệ số 1.1 (10%) Thông số có giá trị: 1.1, 1.2, 1.3 1.4 Trong phần mềm, mặc định giá trị thông số ScaleIncreaseRate cao tức 1.4 Có nghĩa chạy số lượng lặp nhất, phát nhanh chóng khn mặt, bỏ qua số khuôn mặt Nếu thiết lập giá trị thấp hơn, việc kiểm tra, phát đối tượng: khn mặt hồn hảo hơn, nhiều thời gian Tùy ảnh đầu vào mà điều chỉnh thông số để đạt kết mong muốn Minimum Neighbors Threshold (MinNeighbors) : Tham số thứ ba lời gọi đến DetectHaarCascade() “Ngưỡng hàng xóm tối thiểu”, thiết lập mức độ cắt cho việc loại bỏ giữ nhóm hình chữ nhật để xây dựng phân loại mạnh từ phân loại yếu Giả sử, với hình chữ nhật, ta xác định khn mặtbộ phân loại mạnh Còn phân loại yếu tập hình chữ nhật thuộc phận khn mặt, phân loại yếu nhỏ Nếu số lượng khn mặt nhận dạng thực tế hạ thấp giá trị tham số (Dao động từ 0-4) Canny Pruning Flag: Tham số thứ tư biến cờ Hiện có hai lựa chọn: DO-CANNY-PRUNING.Nếu lựa chọn Canny Pruning chọn, dò bỏ qua vùng mà khơng có khả có chứa khn mặt, giảm chi phí tính tốn loại bỏ số phát sai Các vùng bỏ qua xác định cách chạy máy dò cạnh (máy dò cạnh Canny) ảnh trước chạy máy phát khuôn mặt Minimum Detection Scale (WindowSize): Quy mô phát tối thiểu Tham số thứ lời gọi đến DetectHaarCascade () kích thước khn mặt nhỏ để tìm kiếm Quy mơ tối thiểu mặc định file XML 24x24 Tuy nhiên, phần mềm, để mặc định 25x25 Xử lý đầu Các khuôn mặt sau phát tách khỏi ảnh, hiển thị lên picturebox Người dùng xem, di chuyển qua lại khuôn mặt phát (kể ảnh bị nhận nhầm khuôn mặt) Các khuôn mặt trước hiển thị lên picturebox chỉnh lại kích thước chuẩn hóa (tăng chỉnh độ sáng, đưa kênh màu: Ảnh Xám) Ảnh sau chuẩn hóa kiểm tra nhận dạng lưu vào CSDL dạng nhị phân