Luận văn bao gồm đầy đủ chi tiết từng bước trong việc tìm hiểu và phát triển hệ thống phát hiện mặt người bằng mạng neural nhân tạo và thuật toán PCA (Phân tích thành phần chính).Trong luận văn cũng bao gồm nhiều thuật toán có mức sở hữu trí tuệ cao như Phân tích ma trận QR, Hồi Quy tuyến tính, Back Propagation,...Chúc các bạn vui vẻ
Vũ Nguyễn Anh Huy - CĐTH11C LỜI CẢM ƠN Trên thực tế, không có một sự thành công nào mà không có sự hỗ trợ, dù ít hay nhiều, dù trực tiếp hay gián tiếp của người khác. Trong suốt thời gian học tập tại trường Cao đẳng Kỹ thuật Cao Thắng, tác giả đã nhận được rất nhiều sự quan tâm, giúp đỡ về của quý Thầy Cô, bạn bè. Với lòng biết ơn sâu sắc nhất, tác giả xin gửi lời cảm ơn đến quý Thầy Cô ở khoa Công nghệ thông tin, những người đã dùng hết tâm huyết để truyền đạt lại những kiến thức, kinh nghiệm quý báu của mình cho sinh viên. Đặc biệt, tác giả xin chân thành cảm ơn thầy Lữ Cao Tiến, người đã bỏ ra rất nhiều thời gian, công sức và nhiệt huyết để giảng dạy cho tác giả nhiều điều, giúp đỡ cho tác giả không chỉ về kiến thức mà còn cả về tinh thần để tác giả có thể hoàn thành Đồ án tốt nghiệp này. Ngoài ra, tác giả xin cảm ơn thầy Dương Hữu Phước. “Một chữ cũng là thầy, nửa chữ cũng là thầy”, tuy chỉ gặp thầy ở tháng cuối cùng, nhưng thầy đã truyền đạt cho tác giả nhiều kiến thức bổ ích, giúp tác giả bổ sung thêm những kiến thức còn thiếu sót. Cuối cùng, tác giả xin gửi lời cảm ơn đến gia đình và bạn bè, những người luôn ở bên cạnh giúp đỡ cho em, đặc biệt là bạn Trương Tấn Khải, tuy không chung nhóm nhưng bạn đã hỗ trợ cho tác giả rất nhiều trong việc chạy thực nghiệm và thu thập kết quả. Đồ án chỉ là bước đầu tìm hiểu một công trình nghiên cứu đã có từ lâu, vì vậy không thể tránh khỏi những sai sót, lỗi lầm do sự thiếu hụt về kiến thức căn bản cũng như nâng cao mà tác giả có. Đồ án cũng giúp tác giả bắt đầu hiểu thế nào là nghiên cứu khoa học, tìm hiểu một vấn đề mới theo một khía cạnh khác, vì vậy tác giả rất mong nhận được sự cảm thông của quý Thầy Cô, và những lời đóng góp, chia sẻ của quý Thầy Cô sẽ là động lực lớn lao nhất để tác giả hoàn thành tốt đồ án này. Một lần nữa tác giả xin chân thành cảm ơn! Vũ Nguyễn Anh Huy - CĐTH11C LỜI NÓI ĐẦU Ngày nay, ngành Công nghệ thông tin đang phát triển rất nhanh, điều này đã mang tới những ứng dụng thiết thực để phục vụ cho con người. Tuy nhiên, đi kèm với nó vẫn còn lại những vấn đề mang đậm tính thách thức với trí tuệ của các nhà khoa học, một trong những vấn đề đó là dò tìm phát hiện và nhận diện mặt người, một bài toán mà cho đến nay vẫn đang là một vấn đề mở và được các nhà khoa học tiếp tục nghiên cứu. Với nhu cầu sinh hoạt ngày càng cao của con người, đặc biệt trong vấn đề an ninh, bảo mật thì bài toán này ngày càng khẳng định được vai trò của nó. Chính vì lý do đó, đồ án này sẽ tiến hành tìm hiểu bài toán từ những bước đầu tiên, tức là dò tìm và phát hiện khuôn mặt với những kỹ thuật kinh điển đã được sử dụng và đã có những công trình nghiên cứu đi trước. Hệ thống phát hiện mặt người trong đồ án này được xây dựng về cơ bản có nguyên tắc hoạt động theo mô hình mạng neural kinh điển. Đó là mô hình mạng neural perceptron đa lớp truyền thẳng, sử dụng thuật toán lan truyền nguợc và phương pháp giảm gradient để học mạng, với bộ ảnh học chủ yếu là bộ khuôn mặt nhìn thẳng. Ngoài ra, để tăng cường tốc độ dạy học cho mạng, đồ án còn sử dụng phương pháp phân tích thành phần chính (Principal Component Analysis - PCA) để giảm số chiều dữ liệu của ảnh học, giúp cho đầu vào của mạng giảm bớt rất nhiều neural, qua đó giúp thời gian học của mạng giảm xuống đáng kể. Vũ Nguyễn Anh Huy - CĐTH11C NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN TPHCM, ngày … tháng … năm … GIÁO VIÊN PHẢN BIỆN Vũ Nguyễn Anh Huy - CĐTH11C NHẬN XÉT CỦA HỘI ĐỒNG Vũ Nguyễn Anh Huy - CĐTH11C MỤC LỤC GIỚI THIỆU CHUNG 1 1.1. Tổng quan về bài toán phát hiện mặt người 1 1.1.1. Giới thiệu chung 1 1.1.2. Một số hướng tiếp cận để giải quyết bài toán 2 1.2. Phân biệt bài toán phát hiện mặt người và nhận diện mặt người 3 1.3. Các ứng dụng của hệ thống dò tìm, phát hiện và nhận dạng mặt người 4 1.4. Một số công trình nghiên cứu và sự lựa chọn của đồ án 6 1.5. Các thách thức trong hệ thống dò tìm, phát hiện khuôn mặt 7 1.6. Một số vấn đề liên quan trong đồ án 8 MẠNG NEURAL NHÂN TẠO 9 2.1. Tổng quan về mạng neural 9 2.1.1. Giới thiệu về mạng neural sinh học 9 2.1.2. Giới thiệu về mạng neural nhân tạo 11 2.1.3. Lịch sử phát triển của mạng neural nhân tạo: 13 2.1.4. Khái niệm về Neural 14 2.1.5. Khái niệm về perceptron 16 2.2. Mạng Perceptron truyền thẳng 17 2.2.1. Mạng Perceptron 17 2.2.2. Mạng Perceptron truyền thẳng nhiều lớp 18 2.2.3. Các phương pháp học của mạng 20 Học có giám sát 21 Học không có giám sát 22 Học tăng cường 22 Phương pháp huấn luyện cho mạng và sự lựa chọn của đồ án 22 2.2.4. Thuật toán lan truyền ngược 24 2.2.5. Ví dụ về thuật toán lan truyền ngược 34 2.2.6. Một số vấn đề khi sử dụng mạng neural 36 Vũ Nguyễn Anh Huy - CĐTH11C Vấn đề chuẩn hóa dữ liệu đầu vào 36 Vấn đề học chưa đủ và học quá khớp của mạng: 37 Một số giải pháp cho vấn đề học quá khớp 37 Lựa chọn kích thước mạng 38 2.3. Mạng neural truyền thẳng cải tiến 38 2.3.1. Bias 38 2.3.2. Momentum 41 MỘT SỐ THUẬT TOÁN XỬ LÝ ẢNH TRONG BÀI TOÁN PHÁT HIỆN MẶT NGƯỜI 43 3.1. Tổng quan về xử lý ảnh số 43 3.1.1. Giới thiệu về xử lý ảnh số 43 3.1.2. Khái niệm điểm ảnh và biểu diễn ảnh trên máy tính 43 Điểm ảnh 43 Biểu diễn ảnh trên máy tính 44 3.2. Các thuật toán xử lý ảnh trong bài toán 45 3.2.1. Mô hình xử lý ảnh trong bài toán 45 3.2.2. Xám hóa ảnh 46 3.2.3. Cân bằng ánh sáng 48 Ý tưởng 48 Giới thiệu về hồi quy tuyến tính 48 Hồi quy tuyến tính đơn biến 51 Áp dụng hồi quy tuyến tính vào vấn đề 55 3.2.4. Cân bằng lược đồ xám 57 PHƯƠNG PHÁP PHÂN TÍCH THÀNH PHẦN CHÍNH 60 4.1. Một số kiến thức cần biết 60 4.1.1. Trị riêng, vector riêng của ma trận 60 4.1.2. Kì vọng và phương sai trong thống kê đa chiều 60 Kì vọng 61 Ma trận hiệp phương sai 61 Vũ Nguyễn Anh Huy - CĐTH11C 4.2. Động cơ của phương pháp phân tích thành phần chính 62 4.3. Cơ sở toán học 63 4.4. Tính toán eigenfaces (Các vector riêng) 65 4.4.1. Phân tích ma trận QR 69 Giới thiệu 69 Các phương pháp phân tích QR 70 Thuật toán HouseHolder 71 4.4.2. Thuật toán lặp QR tìm trị riêng và vector riêng 77 Thuật toán “Pure” QR 78 Thuật toán QR thực tế 78 4.5. Chuẩn hóa eigenfaces 79 4.6. Cắt giảm các eigenfaces 81 4.7. Biểu diễn lại ảnh học trên không gian mới 82 DÒ TÌM PHÁT HIỆN MẶT NGƯỜI 84 5.1. Giới thiệu về bài toán dò tìm phát hiện mặt người 84 5.1.1. Mô hình của bài toán 84 5.1.2. Bài toán phân lớp 85 5.2. Huấn luyện mạng neural 87 5.2.1. Chuẩn bị cơ sở dữ liệu 87 5.2.2. Xây dựng không gian khuôn mặt 89 5.2.3. Cấu hình cho mạng neural 90 5.2.4. Kết quả chạy thử nghiệm 90 Thời gian 91 Hiệu suất 92 Bảng tổng kết 103 Kết luận chung 133 5.3. Cài đặt thực nghiệm 134 5.3.1. Lựa chọn cấu hình mạng và chạy chương trình 134 5.3.2. Cải thiện tốc độ quét bằng phương pháp phân vùng màu da 136 Vũ Nguyễn Anh Huy - CĐTH11C 5.3.3. Một số heuristic sử dụng trong đồ án 138 Hiện tượng chồng chéo (Overlap) 138 Xử lý gián tiếp 139 5.3.4. Hướng dẫn sử dụng phần mềm 141 Giới thiệu chung 141 Dò tìm mặt người 145 Huấn luyện mạng neural 148 Xử lý ảnh 149 Phương pháp phân tích thành phần chính 151 Phân tích ma trận QR 152 5.4. Kết luận về đồ án 153 5.4.1. Ưu điểm 153 5.4.2. Khuyết điểm 154 5.4.3. Hướng phát triển 154 Vũ Nguyễn Anh Huy - CĐTH11C DANH MỤC HÌNH VẼ Hình 1.1. Nhận diện và phát hiện mặt người 3 Hình 2.1. Các loại tế bào thần kinh sinh học 10 Hình 2.2. Synapse 11 Hình 2.3. Mạng neural nhân tạo 13 Hình 2.4. Neural nhân tạo 15 Hình 2.5. Mạng perceptron (Single player) 17 Hình 2.6. Mạng perceptron nhiều lớp 19 Hình 2.7. Mạng neural dùng trong minh họa thuật toán lan truyền ngược 24 Hình 2.8. Các thành phần của neural nhân tạo 25 Hình 2.9. Minh họa lan truyền tiến 26 Hình 2.10. Minh họa lan truyền tiến 27 Hình 2.11. Minh họa lan truyền tiến 27 Hình 2.12. Tính giá trị lỗi ở neural đầu ra ở lớp đầu ra 30 Hình 2.13. Lan truyền lỗi ở neural lớp đầu ra đến các neural ở lớp ẩn 2 31 Hình 2.14. Lan truyền lỗi từ các neural lớp ẩn 2 đến các neural lớp ẩn 1 32 Hình 2.15. Cập nhật lại trọng số kết nối từ lớp đầu vào tới lớp ẩn 34 Hình 2.16. Cập nhật lại trọng số liên kết từ lớp ẩn 2 tới lớp đầu ra 34 Hình 2.17. Biểu đồ sự biến thiên khác biệt của hàm Sigmoid 39 Hình 2.18. Mạng neural 1 neural input, 1 neural output, 1 bias 40 Hình 2.19. Biểu đồ biến thiên của hàm Sigmoid khi có bias 40 Hình 2.20. Sự biến thiên của trọng số khi không có Momentum 42 Hình 2.21. Sự biến thiên của trọng số khi có Momentum 42 Hình 3.1. Quá trình xử lý ảnh 43 Hình 3.2. Minh họa về điểm ảnh 44 Hình 3.3. Ví dụ về không gian màu RGB 45 Hình 3.4. Các thuật toán xử lý ảnh trong đồ án 46 Hình 3.5. Ảnh bị tối bên phải 48 Vũ Nguyễn Anh Huy - CĐTH11C Hình 3.6. Ảnh bị tối bên trái 48 Hình 3.7. Ảnh bị tối toàn diện 48 Hình 3.8. Không gian 2 chiều với 2 điểm 49 Hình 3.9. Không gian 2 chiều với 2 điểm 49 Hình 3.10. Không gian 2 chiều với nhiều điểm 49 Hình 3.11. Một số đường thẳng đi qua tất cả các điểm 50 Hình 3.12. Minh họa về đoạn sai số 51 Hình 3.13. Sơ đồ thống kê thị trường bất động sản 52 Hình 3.14. Các đường thẳng “trung bình” có thể đi qua các điểm 53 Hình 3.15. Sơ đồ về hồi quy tuyến tính 53 Hình 3.16. Thống kê về độ sáng của mỗi cột trên dòng 55 Hình 3.17. Hồi quy tuyến tính của dòng 56 Hình 3.18. Ví dụ về lược đồ xám 58 Hình 4.1. Minh họa về biến đổi chiều dữ liệu 62 Hình 4.2. Ý tưởng của PCA 63 Hình 4.3. Minh họa về PCA 65 Hình 4.4. Các mẫu ảnh trong cơ sở dữ liệu 65 Hình 4.5. Ảnh trung bình 66 Hình 4.6. Householder reflection 73 Hình 4.7. Householder 2 khả năng lựa chọn 74 Hình 4.8. Sắp xếp theo thứ tự giảm dần của các Eigenfaces 81 Hình 4.9. Biểu diễn lại khuôn mặt trong không gian mới 82 Hình 4.10. Minh họa “gần sát” việc biểu diễn khuôn mặt trên không gian mới 83 Hình 5.1. Mô hình dò tìm phát hiện mặt người bằng mạng neural của Rowley 84 Hình 5.2. Minh họa tập dữ liệu X cần phân lớp 85 Hình 5.3. Minh họa kết quả phân lớp 86 Hình 5.4. Mô hình bài toán phân lớp mặt người 86 Hình 5.5. Một số ảnh khuôn mặt 87 Hình 5.6. Canh biên cho ảnh 87 [...]... về bài toán phát hiện mặt người 1.1.1 Giới thiệu chung Định nghĩa [1]: Phát hiện mặt người là một kỹ thuật máy tính để xác định các vị trí và kích thước của các mặt người có trong các ảnh bất kỳ Kỹ thuật này sẽ phát hiện ra các mặt người có trong ảnh và bỏ qua các đối tượng khác như cây cối, tòa nhà, bàn ghế,… Như định nghĩa trên, ta thấy nhiệm vụ của bài toán phát hiện mặt người là đi tìm các vùng... nhận diện khuôn mặt Sự khác nhau cơ bản giữa phát hiện khuôn mặt với nhận diện khuôn mặt đó là: Nếu như nhận diện khuôn mặt là phân biệt những khuôn mặt khác nhau trong tập danh mục các khuôn mặt, còn phát hiện khuôn mặt đó là phân lớp đuợc đâu là danh mục các khuôn mặt và đâu là danh mục các ảnh không phải khuôn mặt 1.3 Các ứng dụng của hệ thống dò tìm, phát hiện và nhận dạng mặt người Từ những năm... với mạng neural nhân tạo (Artificial Neural Network) để giải quyết bài toán Mạng neural nhân tạo có thể miêu tả và phát hiện khuôn mặt trong nhiều tình huống khác nhau kết hợp cùng phương pháp phân tích thành phần chính với “Eigenfaces” mang hi vọng sẽ đạt được hiệu năng tốt hơn so với các phương pháp độc lập khác 1.5 Các thách thức trong hệ thống dò tìm, phát hiện khuôn mặt Việc dò tìm phát hiện đối... Một số hướng tiếp cận 1.2 Phân biệt bài toán phát hiện mặt người và nhận diện mặt người Phát hiện mặt người (Face detection) và nhận diện mặt người (Face recognition) là 2 bài toán khác nhau nhưng chúng có mối liên hệ chặt chẽ với nhau Trong một hệ thống, việc phát hiện mặt người là việc đầu tiên cần phải làm để xác minh xem trong ảnh, video hay camera có mặt người hay không, nếu có thì số lượng là bao... xác định là khuôn mặt sẽ được tiến hành nhận diện xem khuôn mặt đó là ai? Người này là người lạ (Không có thông tin của người này) hay người quen (Đã có thông tin trong cơ sở dữ liệu) Hình 1.1 Nhận diện và phát hiện mặt người 3 Vũ Nguyễn Anh Huy - CĐTH11C Có thể thấy phát hiện khuôn mặt và nhận diện khuôn mặt là hai vấn đề cơ bản và liên kết với nhau Thông thường, phát hiện khuôn mặt sẽ là giai đoạn... Nếu như phát hiện mặt người trong ảnh là phải trả lời các câu hỏi có tồn tại khuôn mặt trong ảnh hay không ? Nếu tồn tại thì tồn tại bao nhiêu khuôn mặt? Vị trí của khuôn mặt ở đâu ? Thì vấn đề định vị mặt người chỉ trả lời cho câu hỏi vị trí mặt người ở đâu trong một ảnh đã biết trước là có một mặt người Như vậy có thể thấy, định vị khuôn mặt là một phần công việc của phát hiện mặt người Phát hiện. .. khuôn mặt con người (Hạnh phúc, tức giận, đau khổ…) Đây là vấn đề rất khó và thú vị vì trạng thái khuôn mặt của từng người có thể là rất khác nhau trong cùng một trạng thái tâm lý Vấn đề này trong hệ thống dò tìm phát hiện mặt người cũng cần được lưu ý, tuy nhiên nó là một gánh nặng thật sự trong hệ thống nhận diện mặt người 8 Vũ Nguyễn Anh Huy - CĐTH11C MẠNG NEURAL NHÂN TẠO 2.1 Tổng quan về mạng neural. .. sáng và cường độ sáng) và đặc điểm của thiết bị thu nhận ảnh sẽ ảnh hưởng đến sự biểu thị thông tin của khuôn mặt 1.6 Một số vấn đề liên quan trong đồ án Trong vấn đề dò tìm, phát hiện mặt người có một số vấn đề sẽ gây ra nhầm lẫn nếu không được tìm hiểu một cách rõ ràng, những vấn đề đó bao gồm [4]: Định vị khuôn mặt hay xác định vị trí khuôn mặt: Đây là vấn đề rất gần với vấn đề phát hiện mặt người. .. hình có sức mạnh như một bộ não 2.1.3 Lịch sử phát triển của mạng neural nhân tạo: Sự kiện đầu tiên đánh dấu sự ra đời của mạng neural nhân tạo diễn ra vào năm 1943 khi nhà thần kinh học Warren McCulloch và nhà toán học Walter Pitts viết bài báo mô tả cách thức các neural hoạt động Họ cũng đã tiến hành xây dựng một mạng neural đơn giản bằng các mạch điện Các neural của họ được xem như là các thiết bị... Giao diện phần mềm dò tìm phát hiện mặt người 145 Hình 5.28 Menu File 145 Hình 5.29 Giao diện thiết lập thông số quét 146 Hình 5.30 Kết quả sau khi phát hiện mặt người 147 Hình 5.31 Giao diện của phần mềm mạng neural nhân tạo 148 Hình 5.32 Giao diện phần mềm xử lý ảnh 149 Hình 5.33 Menu Process 150 Hình 5.34 Giao diện phần mềm PCA 151