Nội dung chính của đồ án này xoay quanh các vấn đề, giải pháp khi xây dựng công cụ hỗ trợ nhận dạng ảnh mặt người. Cụ thể đồ án sẽ trình bày những nội dung sau:Các vấn đề và hướng giải pháp: các vấn đề khi xây dựng công cụ nhận dạng mặt người. Các ứng dụng đặc trưng của bài toán nhận dạng mặt người là những nội dung sẽ được trình bày trong chương 1.Lí thuyết và cách thực hiện phương pháp nhận dạng mặt người (PCA) sẽ được trình bày chi tiết và cụ thể trong chương 2.Xây dựng tập ảnh dữ liệu và tiến hành nhận dạng khuôn mặt sẽ được minh họa chi tiết trong chương 3.Đánh giá thử nghiệm và kết luận, đưa ra những đánh giá về ưu nhược điểm của phương pháp nhận dạng và các kết luận chung của đồ án
TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ- VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: Nhận dạng ảnh mặt người phương pháp PCA Sinh viên thực hiện: Giáo viên hướng dẫn: Hà Nội, tháng năm 2020 TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI VIỆN ĐIỆN TỬ- VIỄN THÔNG ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Tên đề tài: Nhận dạng ảnh mặt người phương pháp PCA Sinh viên thực hiện: Người hướng dẫn: Cán phản biện: ĐÁNH GIÁ QUYỂN ĐỒ ÁN TỐT NGHIỆP (Dùng cho giảng viên hướng dẫn) Tên giảng viên đánh giá: Họ tên sinh viên: MSSV: Tên đồ án: Chọn mức điểm phù hợp cho sinh viên trình bày theo tiêu chí đây: Rất (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Có kết hợp lý thuyết thực hành (20) Nêu rõ tính cấp thiết quan trọng đề tài, vấn đề giả thuyết (bao gồm mục đích tính phù hợp) phạm vi ứng dụng đồ án Cập nhật kết nghiên cứu gần (trong nước/quốc tế) Nêu rõ chi tiết phương pháp nghiên cứu/giải vấn đề Có kết mơ phỏng/thực nghiệm trình bày rõ ràng kết đạt 1 2 3 4 5 5 5 5 Có khả phân tích đánh giá kết (15) Kế hoạch làm việc rõ ràng bao gồm mục tiêu phương pháp thực dựa kết nghiên cứu lý thuyết cách có hệ thống Kết trình bày cách logic dễ hiểu, tất kết phân tích đánh giá thỏa đáng Trong phần kết luận, tác giả rõ khác biệt (nếu có) kết đạt mục tiêu ban đầu đề đồng thời cung cấp lập luận để đề xuất hướng giải thực tương lai Kỹ viết đồ án (10) Đồ án trình bày mẫu quy định với cấu trúc chương logic đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, đánh số thứ tự giải thích hay đề cập đến; lề thống nhất, có dấu cách sau dấu chấm, dấu phảy v.v.), có mở đầu chương kết luận chương, có liệt kê tài liệu tham khảo có trích dẫn quy định Kỹ viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic có sở, từ vựng sử dụng phù hợp v.v.) Thành tựu nghiên cứu khoa học (5) (chọn trường hợp) Có báo khoa học đăng chấp nhận đăng/Đạt giải SVNCKH giải cấp Viện trở lên/Có giải thưởng khoa học (quốc tế nước) từ giải trở lên/Có đăng ký phát minh, sáng chế Được báo cáo hội đồng cấp Viện hội nghị SVNCKH 10b không đạt giải từ giải trở lên/Đạt giải khuyến khích kỳ thi quốc gia quốc tế khác chuyên ngành (VD: TI contest) 10c Khơng có thành tích nghiên cứu khoa học Điểm tổng 10a /50 Điểm tổng quy đổi thang 10 Nhận xét khác (về thái độ tinh thần làm việc sinh viên) Ngày: … / … / 20… Người nhận xét (Ký ghi rõ họ tên) ĐÁNH GIÁ QUYỂN ĐỒ ÁN TỐT NGHIỆP (Dùng cho cán phản biện) Giảng viên đánh giá: Họ tên sinh viên: MSSV: Tên đồ án: Chọn mức điểm phù hợp cho sinh viên trình bày theo tiêu chí đây: Rất (1); Kém (2); Đạt (3); Giỏi (4); Xuất sắc (5) Có kết hợp lý thuyết thực hành (20) Nêu rõ tính cấp thiết quan trọng đề tài, vấn đề giả thuyết (bao gồm mục đích tính phù hợp) phạm vi ứng dụng đồ án Cập nhật kết nghiên cứu gần (trong nước/quốc tế) Nêu rõ chi tiết phương pháp nghiên cứu/giải vấn đề Có kết mơ phỏng/thực nghiệm trình bày rõ ràng kết đạt 1 2 3 4 5 5 5 5 Có khả phân tích đánh giá kết (15) Kế hoạch làm việc rõ ràng bao gồm mục tiêu phương pháp thực dựa kết nghiên cứu lý thuyết cách có hệ thống Kết trình bày cách logic dễ hiểu, tất kết phân tích đánh giá thỏa đáng Trong phần kết luận, tác giả rõ khác biệt (nếu có) kết đạt mục tiêu ban đầu đề đồng thời cung cấp lập luận để đề xuất hướng giải thực tương lai Kỹ viết đồ án (10) Đồ án trình bày mẫu quy định với cấu trúc chương logic đẹp mắt (bảng biểu, hình ảnh rõ ràng, có tiêu đề, đánh số thứ tự giải thích hay đề cập đến; lề thống nhất, có dấu cách sau dấu chấm, dấu phảy v.v.), có mở đầu chương kết luận chương, có liệt kê tài liệu tham khảo có trích dẫn quy định Kỹ viết xuất sắc (cấu trúc câu chuẩn, văn phong khoa học, lập luận logic có sở, từ vựng sử dụng phù hợp v.v.) Thành tựu nghiên cứu khoa học (5) (chọn trường hợp) Có báo khoa học đăng chấp nhận đăng/Đạt giải SVNCKH giải cấp Viện trở lên/Có giải thưởng khoa học (quốc tế nước) từ giải trở lên/Có đăng ký phát minh, sáng chế Được báo cáo hội đồng cấp Viện hội nghị SVNCKH 10b không đạt giải từ giải trở lên/Đạt giải khuyến khích kỳ thi quốc gia quốc tế khác chun ngành (VD: TI contest) 10c Khơng có thành tích nghiên cứu khoa học Điểm tổng 10a /50 Điểm tổng quy đổi thang 10 Nhận xét khác cán phản biện Ngày: … / … / 20… Người nhận xét (Ký ghi rõ họ tên) Lời cam đoan sinh viên Lời cảm ơn Trước tiên em xin bày tỏ trân trọng lòng biết ơn thầy giáo TS - giảng viên viện Điện tử - Viễn thông Trong suốt thời gian học làm đồ án tốt nghiệp, thầy dành nhiều thời gian để tận tình bảo, hướng dẫn, định hướng cho em thực đồ án Em xin gửi lời cảm ơn sâu sắc đến thầy cô giảng dạy, nghiên cứu trường đại học Bách Khoa Hà Nội, đặc biệt thầy cô công tác Viện Điện Tử - Viễn Thông, người truyền dạy cho em khơng kiến thức mà cịn lửa đam mê, tình yêu với khoa học suốt năm năm vừa qua Em xin trân thành cảm ơn thầy giảng bổ ích, chia sẻ kinh nghiệm quý giá sống, công việc để em có kiến thức ngày hôm Em chúc thầy cô luôn mạnh khỏe thành công công việc sống Mặc dù nỗ lực, cố gắng nhiều đồ án vấn khơng tránh khỏi thiếu sót Em mong nhận ý kiến đống góp thầy để đề tài em hồn thiện Em xin chân thành cảm ơn! Hà Nội, năm 2020 Sinh viên Lời mở đầu Nhận dạng mặt người (Face recognition) lĩnh vực nghiên cứu ngành Computer Vision, xem lĩnh vực nghiên cứu ngành Biometrics (tương tự nhận dạng vân tay – Fingerprint recognition, hay nhận dạng mống mắt – Iris recognition) Xét nguyên tắc chung, nhận dạng mặt có tương đồng lớn với nhận dạng vân tay nhận dạng mống mắt, nhiên khác biệt nằm bước trích chọn đặt trưng (feature extraction) lĩnh vực Trong nhận dạng vân tay mống mắt đạt tới độ chín, tức áp dụng thực tế cách rộng rãi nhận dạng mặt người nhiều thách thức lĩnh vực nghiên cứu thú vị với nhiều người So với nhận dạng vân tay mống mắt, nhận dạng mặt có nguồn liệu phong phú (bạn nhìn thấy mặt người ảnh, video clip liên quan tới người mạng) Hiện có nhiều các phương pháp nhận dạng khác xây dựng để nhận dạng người cụ thể giới thực Tuy nhiên việc nhận dạng người giới thực vô khó khăn, để nhận dạng ta phải xây dựng tập sở liệu đủ lớn việc xử lý liệu lớn đòi hỏi phải nhanh xác Nhiệm vụ đặt nghiên cứu xây dựng chương trình sử dụng phương pháp nhận dạng có độ xác cao mà khối lượng thời gian tính tốn lại Để giải vấn đề có phương pháp cho phép phân tích thành phần khn mặt, giảm bớt số thành phần không cần thiết tạo hiệu tính tốn nhanh mà đảm bảo độ xác Đó phương pháp Principal Components Analysis (PCA) hay cịn gọi Phương pháp phân tích thành phần Và đồ án tập trung nghiên cứu phương pháp PCA để nhận dạng mặt người Mục lục Danh mục hình vẽ…………………………………………………………….I Danh mục từ viết tắt…………………………………………………… IV Tóm tắt đồ án…………………………………………………………………V Thesis summary………………………………………………………………VI Chương 1: Xử lí ảnh, tốn nhận dạng mặt người ứng dụng 1.1 Định nghĩa ảnh điểm ảnh ………………………………………………1 1.1.1 Xử lí ảnh………………………………………………………………….3 1.1.2 Một số ứng dụng xử lí ảnh………………………………………… 1.2 Bài tốn nhận dạng mặt người ………………………………………………7 1.2.1 Các ứng dụng đặc trưng toán nhận diện mặt người …………………9 1.3 Một số phương pháp nhận dạng……………………… …………………….11 1.3.1 Phương pháp nhận dang mặt người mạng noron………………………12 1.3.2 Phương pháp phân tích thành phần PCA…………………………… 13 1.4 Đồ án nhận dạng khn mặt giải vấn đề gì? ……………………………15 1.4 Kết luận chương …………………… ……………………………… 15 Chương 2: Phương pháp phân tích PCA bước thực 2.1 Một số lý thuyết toán học…….…………………… ……………………….17 2.1.1 Độ lệch chuẩn ……….…………………… …………………………… 17 10 Để ghi lưu hình ảnh vào tệp máy tính, sử dụng hàm save () liên kết với đối tượng hình ảnh Nó theo đường dẫn tệp đến nơi bạn muốn lưu trữ hình ảnh: new_img = img.save(‘deadpool_gray.png’) new_img = img.save(‘D:/code.py/deadpool_gray.png’) Để thay đổi độ sáng ảnh Pillow đơn giản Hàm enhancer () lấy số float làm đối số, mô tả yếu tố mà ta muốn thay đổi độ sáng hình ảnh Giá trị hệ số nhỏ làm giảm độ sáng giá trị hệ số lớn tăng độ sáng hình ảnh Giá trị hệ số cho ảnh gốc làm đầu Hình 3.10: Tăng độ sáng hình ảnh 47 Và thư viện numpy NumPy từ viết tắt "Numeric Python" "Numerical Python" Nó mơđun mở rộng mã nguồn mở cho Python, cung cấp chức biên dịch nhanh cho thao tác toán học số Hơn nữa, NumPy làm phong phú ngơn ngữ lập trình Python với cấu trúc liệu mạnh mẽ để tính tốn hiệu mảng ma trận đa chiều Việc thực chí nhằm vào ma trận mảng khổng lồ Hình 3.11: Cài đặt thư viện numy Import numpy bắt đầu sử dụng thư viện Lấy kích thước ảnh shape(): 48 Hình 3.12: Khai báo sử dụng thư viện numpy Đưa hình ảnh sang thành mảng dãy số array(): Hình 3.13: Đưa hình ảnh thành mảng dãy số (array) Đưa hình ảnh 800x1200 thành 960000x1 flatten(): Hình 3.14: Làm phẳng dãy số (flatten) 49 Ngồi cịn số lệnh thư viện sklearn hay pylab có sẵn cài đặt tương tự Download viết code nodepad++ Hình 3.15: Cài đặt sử dụng notepad 3.2 Xây dựng tập liệu khn mặt Tìm kiếm mạng em chọn sử dụng tập liệu FEI face database Hình 3.16: Xây dựng tập ảnh liệu 50 Cùng với ảnh chụp mặt em gia đình em: Hình 3.17: Hình ảnh tập ảnh liệu khuôn mặt Vậy tập liệu ta xây dựng xong bao gồm 40 ảnh nhiều người khác với trạng thái cười, giận dữ, nhăn mặt, đeo kính… Các ảnh có kích thước 640x480 để tiếp tục bước Tiếp theo, ta xử lí tập liệu này, làm việc với vector, ma trận ảnh 51 3.3 Xử lí tập liệu Đầu tiên, ta chỉnh tập ảnh liệu ảnh xám resize chúng cho ảnh có kích thước 640x480 Hình 3.18: Chuyển đổi tập ảnh liệu sang ảnh xám Tiếp theo, đến địa chứa liệu ảnh, mở ảnh với hàm array() đưa ảnh dạng dãy số để xử lí Biến đổi ảnh thành vector chiều (640x480 = 307200x1) gom tập liệu gồm 41 ảnh thành ma trận A: 52 Hình 3.19: Chuyển tập liệu thành ma trận để xử lí Sau đó, ta tính vector khn mặt trung bình, trừ vector khn mặt trung bình cho vector ma trận A, tính giá trị riêng, eigenface làm theo bước 4,5,6 Hình 3.20: Hình ảnh mặt trung bình eigen faces 53 Đây vector khn mặt trung bình vector riêng tương ứng trị riêng lớn reshape trở lại ảnh 640x480 Ảnh bên trái khn mặt trung bình cịn lại eigen faces Tiếp theo bước 7,8 ta cần ánh xạ khuôn mặt thành tổng hệ số eigen faces Nghĩa ảnh biểu diễn thành eigen faces kia, có hệ số khác Hình 3.21: Ánh xạ ảnh thành thành phần Vậy ta xử lí xong tập liệu, xử lí ảnh test kiểm tra độ xác nhận dạng 3.4 Nhận dạng khuôn mặt (ảnh test) Ảnh test ta gồm: ảnh mặt người thuộc tập liệu, ảnh (khơng phải mặt người), ảnh mặt người khơng có tập liệu 54 Hình 3.22: Hình ảnh tập ảnh test Từ trái qua phải: ảnh mặt em, ảnh bất kì, ảnh mặt người khơng có tập liệu Ta tiếp tục đưa ảnh vector chiều, làm theo bước tương tự ánh xạ ảnh thành eigen faces: Hình 3.23: Ánh xạ hình ảnh test thành thành phần 55 Và bước cuối cùng, tính khoảng cách Euclidean đem so sánh với ngưỡng cho phép để phân biệt mà nhận dạng Và sau tính tốn, ta có kết quả: Hình 3.24: Kết nhận dạng 3.5 Đánh giá phương pháp PCA Phân tích thành phần (Principal Component Analysis – PCA) phương pháp phân tích liệu nhiều biến đơn giản Trong thực tế, liệu thu thập có số chiều lớn, gây khó khăn việc tính tốn phân tích PCA giúp giảm bớt gánh nặng chi phí tính tốn liệu gốc, xây dựng khơng gian chiều lại có khả biểu diễn liệu tốt tương đương không gian cũ, đảm bảo độ biến thiên liệu chiều Em lấy thêm FEI faces data base số ảnh test để thực đánh giá hiệu suất xác phương pháp PCA 56 Hình 4.1: Tập liệu test Gồm 18 ảnh từ 22(a->f) -> 24(a->f) Hình 4.2: Đưa tập liệu test thành ảnh xám 57 Kết là: Hình 4.3: Kết nhận dạng Có ảnh xác nhận thuộc tập liệu (nhầm lẫn), cịn lại hồn tồn xác Như vậy, dựa thử nghiệm tập ảnh với số lượng ảnh test 18, ta đánh giá hiệu suất xác phương pháp PCA 78% 3.6 Ưu, nhược điểm phương pháp PCA Ưu điểm Ưu điểm lớn PCA tốc độ xử lí, tập liệu với hàng ngàn, hàng triệu ảnh, liệu lớn Sử dụng thuật tốn PCA để phân tích thành phần để giảm số chiều mẫu liệu giữ lại đặc trưng giúp trình nhận dạng nhanh Thuật tốn thực tốt với ảnh có độ phân giải cao, tìm đặc tính tiêu biểu đối tượng cần nhận dạng mà xác định thành phần mối quan hệ thành phần 58 Nhược điểm Trong số trường hợp, tập liệu không đủ tốt, phương pháp PCA trả kết sai, ảnh khác độ sáng, tư chụp, hay chẳng may bị che khuất phần khuôn mặt Hướng mặt phải tương đối trực diện Nghiêng, xoay trái, xoay phải, ngẩng đầu cúi xuống góc lớn 30 giải thuật khơng phát cảm xúc phát tỉ lệ nhận dạng thấp Phương pháp PCA nhạy với nhiễu 3.7 Kết luận chương đề xuất Ta kết hợp phương pháp PCA với phương pháp nhận dạng dựa đặc trưng phần tử khuôn mặt mạng Neural (mạng noron) SVM (Support Vector Machine) để tăng độ nhận dạng xác lên cao Mạng noron mạng có tính linh hoạt nên ta áp dụng khơng cho nhận dạng khn mặt, mà cịn ứng dụng cho nhận dạng vân tay, điệu mà cần thay đổi liệu đầu vào với giá trị đầu mong muốn Đây ưu mạng nơron mà thuật tốn khó có Hai phương pháp khắc phục nhược điểm cho tốt, tạo cân độ xác lẫn tốc độ xử lí Như vậy, chương này, ta biết cách cài đặt thư viện, số hàm cần thiết để xử lí ảnh Sau bước thực phương pháp PCA kết hiển thị bước Trong chương này, ta tiếp tục dùng thêm nhiều mặt người để thực đánh giá độ xác phương pháp, trình bày ưu nhược điểm phương pháp Kết luận liệt kê tài liệu tham khảo.Và cuối kết kiểm tra nhận dạng ảnh test, có ảnh ảnh tập liệu, ảnh mặt người, ảnh mặt người Kết nhận dạng xác 59 Kết luận Hiện nay, với phát triển xã hội, vấn đề an ninh bảo mật yêu cầu khắt khe quốc gia giới Các hệ thống nhận dạng người yêu cầu độ tin ngày cao Nhận dạng mặt người có nhiều ứng dụng sống, ứng dụng nhận dạng mặt người như: xác minh tội phạm, ứng dụng ATM để lưu trữ khuôn mặt người rút tiền, quản lý nhân viên, đăng nhập máy tính cá nhân sử dụng khn mặt,… Vì vậy, việc xây dựng ứng dụng nhận dạng nhu cầu thiết yếu Báo cáo đồ án mơn học trình bày kiến thức để giải tốn nhận dạng khn mặt người Riêng phương pháp nhận dạng mặt người Eigenfaces xây dựng dựa phương pháp Eigenfaces-sử dụng thuật toán PCA trình bày cụ thể, chi tiết đồ án Phần mềm Face Recognition áp dụng phương pháp Eigenfaces thiết kế để nhận dạng mặt người Từ kết thực nghiệm cho thấy, độ xác chương trình tương đối cao khoảng 80% nhận dạng Tuy nhiên, thời hạn thời gian hạn chế nên chương trình cịn nhiều nhược điểm nhiều ý tưởng chưa thực Nên thực kết hợp phương pháp PCA với mạng Neural để nâng cao độ xác hiệu 60 Tài liệu tham khảo [1] Ngơ Hồng Khắc Tiến, Trần Xn Bách, Đồ án tốt nghiệp Dị tìm ảnh mặt người dùng PCA, Khoa Cơng nghệ điện tử, trường Đại học Công Nghiệp TP HCM, 2009 [2] Lương Mạnh Bá, Nguyễn Thanh Thủy, Nhập Môn Xử lý ảnh số, Nxb Khoa học Kỹ thuật, 2002 [3] Võ Đức Khánh, Hồng Văn Kiếm Giáo trình xử lý ảnh số, Nhà xuất Đại học Quốc gia Thành phố Hồ Chi Minh, 2003 [4] Phạm Thế Bảo, Tổng quan phương pháp xác định khuôn mặt người, Tạp chí bưu viễn thơng [5] Ngơ Quốc Tạo, Ngơ Phương Đơng, Nguyễn Thanh Hịa, Phạm Việt Bình (2003), Báo cáo “Nhận dạng mặt người môi trường độ sáng không đồng nhất”, Hội thảo Công nghệ thông tin quốc gia lần thứ VIII, Thái Nguyên, 2931/8/2003 [6] Stan Z Li, Anil K Jain, “Handbook of Face Recognition”, 2006 [7] Các website https://docs.scipy.org/doc/numpy/reference/ - truy cập lần cuối: 23/11/2019 https://pillow.readthedocs.io/en/stable/ - truy cập lần cuối: 17/11/2019 https://matplotlib.org/api/pyplot_api.html - truy cập lần cuối: 06/12/2019 https://machinelearningcoban.com/2017/06/15/pca/ - truy cập lần cuối: 6/1/2020 61 ... toán nhận dạng mặt người ………………………………………………7 1.2.1 Các ứng dụng đặc trưng toán nhận diện mặt người …………………9 1.3 Một số phương pháp nhận dạng? ??…………………… …………………….11 1.3.1 Phương pháp nhận dang mặt người. .. toá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 chuỗi ảnh) Qua xử lý tính tốn hệ thống xác định vị trí mặt người ảnh (nếu có) xác định người số người. .. thẳng đứng ảnh đen trắng Cho đến ngày hơm tốn mở rộng cho ảnh màu, có nhiều khn mặt ảnh, có nhiều tư thay đổi ảnh 1.3 Các phương pháp nhận dạng 11 Có hai phương pháp nhận dạng phổ biến nhận dạng dựa