Đồ án sử DỤNG MACHINE LEARNING TRONG NHẬN DẠNG mặt NGƯỜI và ỨNG DỤNG

40 58 0
Đồ án sử DỤNG MACHINE LEARNING TRONG NHẬN DẠNG mặt NGƯỜI và ỨNG DỤNG

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA CÔNG NGHỆ PHẦN MỀM ĐỒ ÁN SỬ DỤNG MACHINE LEARNING TRONG NHẬN DẠNG MẶT NGƯỜI VÀ ỨNG DỤNG Giảng viên hướng dẫn: Mai Trọng Khang Sinh viên thực hiện: 18520590 - Trần Hậu Đạt 18520891 - Nguyễn Đức Khang TP Hồ Chí Minh, Tháng Năm 2021 LỜI CẢM ƠN Lời đầu tiên, em xin bày tỏ lòng biết ơn sâu sắc đến thầy Mai Trọng Khang – Giảng viên hướng dẫn chúng em thực Đồ án 1, thầy đồng hành tận tình hướng dẫn cho chúng em qua giai đoạn đồ án Nhờ có giúp đỡ nhiệt tình thầy mà chúng em hồn thành được đồ án cách tốt Vì kiến thức chúng em cịn hạn hẹp nên khơng thể tránh khỏi thiếu sót q trình thực đồ án Tuy nhiên, chúng em cố gắng hoàn thành hạn hạn chế lỗi nhiều Nhóm chúng em mong đợi nhận ý kiến đóng góp quý báu từ thầy qua rút kinh nghiệm, tự sửa chữa, hoàn thiện thân tinh thần nghiêm túc, tự giác học hỏi Trong trình làm đề tài báo cáo, khơng thể tránh khỏi thiếu sót, mong nhận phản hồi từ thầy bạn để góp phần làm cho báo cáo thêm hoàn thiện Chân thành cảm ơn thầy! LỜI NHẬN XÉT CỦA GIẢNG VIÊN … ………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… ……………………………………………………………………………………………… Nội dung Chương Mở đầu 1.1 Lý chọn đề tài 1.2 Mục tiêu nghiên cứu 1.3 Phương pháp nghiên cứu 1.4 Đối tượng hướng đến Chương Machine Learning 2.1 Tổng quan Machine Learning 2.2 Machine Learning thực tế 2.2.1 Xử lý ảnh 2.2.2 Phân tích văn 2.3 Phân loại thuật toán Machine Learning 2.3.1 Học có giám sát 2.3.2 Học không giám sát 10 2.4 Các thuật toán Machine learning 10 2.4.1 Deep Learning 11 2.4.2 Dữ liệu huấn luyện(Training data) 13 2.4.3 Dữ liệu kiểm thử độ đo 14 Chương CNN – Convolutional Neural Network 16 3.1 Giới thiệu 16 3.2 Tại nên dùng CNN 16 3.3 Cấu trúc mạng CNN 17 3.3.1 Convolution layer 18 3.3.2 ReLU layer 19 3.3.3 Pooling layer 20 3.3.4 Fully Connected layer (FC) 20 Chương Một số thuật toán Classification 22 4.1 SVM – Support Vector Machine 22 4.1.1 Cách làm việc 23 4.1.2 Cách chọn mặt phẳng tối ưu 24 4.1.3 Margin 26 4.1.4 Ưu điểm 26 4.1.5 Nhược điểm 27 4.1.6 Kết luận 27 4.2 KNN – K-Nearest Neightbros 27 4.2.1 Cách làm việc 28 4.2.2 Các bước thược 29 4.2.3 Ưu điểm 30 4.2.4 Nhược điểm 30 Chương Nhận dạng mặt người 32 5.1 Facenet 32 5.2 Bài toán nhận dạng mặt người 33 Chương Thử nghiệm – kết 35 6.1 Dataset 35 6.2 Môi trường 36 6.3 Kết 37 6.4 Demo 37 Chương Kết luận hướng phát triển 39 7.1 Kết đạt 39 7.2 Hạn chế 39 7.3 Hướng phát triển 39 TÀI LIỆU THAM KHẢO 40 Chương Mở đầu 1.1 Lý chọn đề tài Machine Learning thuật ngữ thông dụng giới công nghệ ngày Đây bước tiến lớn khoa học máy tính cách thức hữu hiệu để xử lý Big Data công nghiệp 4.0 Hiện nay, Machine Learning ngày phổ biến ứng dụng to lớn sống Những ứng dụng kể đến nhận dạng ảnh, dự báo, trợ lý ảo, phát gian lận, bảo mật, … Việc nhận dạng khuôn mặt ngày phổ biến ứng dụng thực tế sống ngày Nhóm em định tìm hiểu nghiên cứu đề tài nhận diện khuôn mặt sử dụng CNN 1.2 Mục tiêu nghiên cứu Dựa vào tài liệu cung cấp sẵn đầy đủ Mục tiêu đồ án tìm hiểu khái quát khái niệm CNN, qua ứng dụng việc xây dựng mạng lưới nhận dạng khuôn mặt đơn giản 1.3 Phương pháp nghiên cứu Để hoàn thành đồ án báo cáo này, nhóm em tham khảo tài liệu hướng dẫn internet trang hướng dẫn Từ tìm hiểu xây dựng lại hệ thống nhận diện khuôn mặt đơn giản sử dụng Facenet 1.4 Đối tượng hướng đến Đối tượng mà đồ án hướng đến giúp nhóm hiểu kiến thức machine learning xây dựng khệ thống nhận diện khn mặt nhỏ, từ áp dụng cho đồ án sau Chương Machine Learning 2.1 Tổng quan Machine Learning Machine learning gì? Machine learning lĩnh vực Trí tuệ nhân tạo(Artificial Intelligence) sử dụng thuật tốn cho phép máy tính học từ liệu để thực cơng việc thay lập trình cách rõ ràng Hình 2.1.1 Minh hoạ trực quan cách ML học tập Khả học tập yếu tố then chốt trí thơng minh Nếu mang khái niệm sang machine learning, bước tiến lớn làm cho máy móc thơng minh Trên thực tế, Machine learning lĩnh vực cho thấy tiến tiến trình Trí tuệ nhân tạo Nó chủ đề nóng có khả làm cho máy móc trở nên thơng minh 2.2 Machine Learning thực tế Machine learning có giới hạn Chúng ta khơng thể xây dựng cỗ máy thông minh để học liệu từ cổ chí kim tới Tuy nhiên, có ứng dụng thực tế mà machine learning làm tốt 2.2.1 Xử lý ảnh Bài toán xử lý ảnh(Image Processing) giải vấn đề phân tích thơng tin từ hình ảnh hay thực số phép biến đổi Một số ví dụ là:  Gắn thẻ hình ảnh(Image Tagging), giống Facebook, thuật tốn tự động phát khuôn mặt bạn bạn bè ảnh Về bản, thuật toán học từ ảnh mà bạn tự gắn thẻ cho trước  Nhận dạng ký tự(Optical Character Recognition), thuật toán chuyển liệu giấy tờ, văn thành liệu số hóa Thuật tốn phải học cách nhận biết ảnh chụp ký tự ký tự  Ơ tơ tự lái(Self-driving cars), phần chế sử dụng xử lý ảnh Một thuật toán machine learning giúp phát mép đường, biển báo hay chướng ngại vật cách xem xét khung hình video từ camera 2.2.2 Phân tích văn Phân tích văn bản(Text analysis) cơng việc trích xuất phân lọi thơng tin từ văn Các văn facebook posts, emails, đoạn chats, tài liệu,… Một số ví dụ phổ biến là:  Lọc spam(Spam filtering), ứng dụng phân loại văn biết sử dụng nhiều Ở đây, phân loại văn xác định chủ đề cho văn Bộ lọc spam học cách phân loại email có phải spam khơng dựa nội dung tiêu đề email  Phân tích ngữ nghĩa(Sentiment Analysis), học cách phân loại ý kiến tích cực, trung tính hay tiêu cực dựa nội dung văn người viết  Khai thác thông tin(Information Extraction), từ văn bản, học cách để trích xuất thơng tin hữu ích Chẳng hạn trích xuất địa chỉ, tên người, từ khóa,… 2.3 Phân loại thuật toán Machine Learning thuật toán machine learning: Học có giám sát(Supervised learning) Học không giám sát(Unsupervised learning) Sự khác lớn thuật toán cách mà cung cấp tập liệu huấn luyện cho mơ hình; Cách thuật toán sử dụng liệu loại vấn đề mà chúng giải Hình 2.3.1 Một số thuật tốn ML 2.3.1 Học có giám sát Trong học có giám sát, thuật tốn machine learning thực q trình “chuyển liệu đầu vào thành đầu mong muốn” Trong ML, đầu vào gọi input, đầu gọi label(nhãn) Tập liệu huấn luyện gọi training set; Mỗi mẫu liệu tập huấn luyện gọi training example Thuật toán machine learning cần học cách để chuyển đổi input(đầu vào) thành label(kết quả) tương ứng Do vậy, mẫu liệu huấn luyện tập liệu huấn luyện cần phải biết trước lable Tùy thuộc vào loại đầu mong muốn, tiếp tục chia nhỏ học có giám sát gồm: 2.4.1.1 Phân loại(Classification) Khi đầu mong muốn tập hữu hạn rời rạc Khi toán gọi toán phân loại 2.4.1.2 Hồi quy(Regression) Khi đầu mong muốn dải giá trị liên tục Chẳng hạn giá trị xác suất, tốn thuộc loại hồi quy Học có giám sát thuật tốn phổ biến thuật toán machine learning Hạn chế sử dụng thuật toán cần cung cấp liệu có gán nhãn Trong nhiều trường hợp, để có liệu gán nhãn tốn nhiều chi phí 2.3.2 Học khơng giám sát Học không giám sát nhánh machine learning Các mẫu liệu học không giám sát cần input(đầu vào) mà khơng cần label(đầu ra) Nó sử dụng nhiều việc khám phá cấu trúc mối quan hệ liệu Một thuật toán điển hình tốn phân cụm(clustering algorithm); Nó học cách để tìm mẫu liệu tương tự nhóm vào thành cụm(cluster) Một số thuật tốn phân cụm Kmeans học cách phân cụm học từ tập liệu đầu vào 2.4 Các thuật toán Machine learning Bây sâu để hiểu rõ cách machine learning làm việc Để thực chuyển đổi từ input thành output mong muốn, sử dụng mơ hình khác Machine learning khơng phải loại thuật tốn nhất; Có thể bạn nghe tới Support vector machine(SVM), Naive Bayes, Cây định(Decision Trees) hay Học sâu(Deep learning) Các thuật toán cố gắng giải toán: Học cách chuyển đổi input thành output xác mà thuộc Những thuật tốn machine learning sử dụng mơ hình/ kỹ thuật khác để thực trình học tập thể kiến thức học 10 Hình 5.1.1 Hoạt động Triple loss Hiện nay, pretrain model có khả mã hóa tốt nên không cần phải tự train liệu điều tốn nhiều thời gian tài nguyên Nếu có liệu tài nguyên, fine tuning liệu người Việt Nam để có kết tốt Pretrain model github tác giả davidsandberg: Hình 5.1 Pretrain model 5.2 Bài tốn nhận dạng mặt người Bài tóan chia thành bước bản: 33  Dùng face detector để phát khn mặt ảnh: Có nhiều face detector CV2 HaarCascade,CV2 DNN, dlib, MTCNN,… sau tách khn mặt khỏi ảnh  Sau tách khuôn mặt khỏi ảnh, đưa ảnh vào Facenet để trích xuất vector đặc trưng (128D Embedding Vector)  Lúc chuyển tốn classification, dùng số thuật tốn KNN hay SVM phân loại với input đầu vào embedding vecto Hình 5.2 Mơ tả hoạt động nhận dạng khuôn mặt 34 Chương Thử nghiệm – kết 6.1 Dataset Dataset bao gồm 96 class ảnh chứa mặt người thu thập từ internet loại bỏ ảnh không chứa mặt người, ảnh nhiễu Mỗi class chứa khoảng 20-25 ảnh khuôn mặt với nhiều góc độ khác Hình 6.1.1: Dữ liệu mẫu người 35 Cấu trúc dataset: Hình 6.1.2 : Cấu trúc dataset 6.2 Môi trường Colaboratory (gọi tắt "Colab") cho phép bạn viết thực thi Python trình duyệt với lợi ích sau:  Khơng u cầu cấu hình  Sử dụng miễn phí GPU  Chia sẻ dễ dàng Colab cung cấp nhiều công cụ, thư viện machine learning có nhiều cơng cụ trực quan hóa liệu, phù hợp cho sinh viên người làm project nhỏ 36 6.3 Kết Sau liệu train trích xuất facenet, chia liệu train:test với tỉ lệ 7:3, train liệu chia SVM KNN ta kết accuracy tương ứng 92.83% 94.11% 6.4 Demo Demo với web application đơn giản, nhận liệu đầu vào ảnh kết nhận diện tên người ứng với khn mặt người Hình 6.4.1 : Demo minh họa 37 Hình 6.4.2: Kết 38 Chương Kết luận hướng phát triển 7.1 Kết đạt Trong trinh làm đồ án 1, nhóm học vài kiến thức machine learning deep learning, làm quen ngôn ngữ lập trinh Python vài thư viện kèm Cách hoạt động hệ thống nhận diện khuôn mặt đơn giản 7.2 Hạn chế Chưa nhận diện ảnh chứa khuôn mặt nhỏ hay đơi lúc nhận diện chưa mong muốn 7.3 Hướng phát triển  Cải thiện thêm độ chinh xác mơ hình  Giải hạn chế  Có thể tự train mơ hình facenet với data liệu người châu Á hay Việt Nam thay sử dụng model có sẵn  Xây dựng hệ thống nhận diện khn mặt hồn chỉnh tích hợp vào thực tế 39 TÀI LIỆU THAM KHẢO FaceNet: A Unified Embedding for Face Recognition and Clustering https://arxiv.org/pdf/1503.03832.pdf Chuỗi viết deep learning https://nttuan8.com/category/deep-learning https://machinelearningcoban.com/ https://github.com/davidsandberg/facenet https://phamdinhkhanh.github.io/2020/03/12/faceNetAlgorithm.html https://viblo.asia/p/knn-k-nearest-neighbors-1-djeZ14ejKWz https://viblo.asia/p/support-vector-machine-trong-hoc-may-mot-cainhin-don-gian-hon-XQZkxoQmewA https://nguyenvanhieu.vn/machine-learning-la-gi/#41-hoc-co-giam-sat 40 ... giản sử dụng Facenet 1.4 Đối tượng hướng đến Đối tượng mà đồ án hướng đến giúp nhóm hiểu kiến thức machine learning xây dựng khệ thống nhận diện khuôn mặt nhỏ, từ áp dụng cho đồ án sau Chương Machine. .. tài nhận diện khuôn mặt sử dụng CNN 1.2 Mục tiêu nghiên cứu Dựa vào tài liệu cung cấp sẵn đầy đủ Mục tiêu đồ án tìm hiểu khái quát khái niệm CNN, qua ứng dụng việc xây dựng mạng lưới nhận dạng. .. Learning ngày phổ biến ứng dụng to lớn sống Những ứng dụng kể đến nhận dạng ảnh, dự báo, trợ lý ảo, phát gian lận, bảo mật, … Việc nhận dạng khuôn mặt ngày phổ biến ứng dụng thực tế sống ngày Nhóm

Ngày đăng: 05/09/2021, 20:46

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan