Đăng ký Đăng nhập
Trang chủ Giáo dục - Đào tạo Cao đẳng - Đại học Công nghệ thông tin Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca & svm...

Tài liệu Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca & svm

.PDF
32
1
113

Mô tả:

lOMoARcPSD|17343589 TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN TÊN HỌC PHẦN HỌC MÁY NÂNG CAO ĐỀ TÀI: XÂY DỰNG MÔ HÌNH NHẬN DẠNG KHUÔN MẶT BẰNG THUẬT TOÁN PCA & SVM. Sinh viên thực hiện : NGUYỄN CÔNG TUỆ Giảng viên hướng dẫn : PHẠM ĐỨC HỒNG Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : CÔNG NGHỆ PHẦN MỀM Lớp : CNPM3 Khóa : D13 Hà Nội, tháng 2 năm 2022 lOMoARcPSD|17343589 PHIẾU CHẤM ĐIỂM Họ và tên giảng viên Giảng viên chấm 1: Giảng viên chấm 2: Chữ ký Ghi chú lOMoARcPSD|17343589 MỤC LỤC CHƯƠNG I: MACHINE LEARNING LÀ GÌ?..........................................................................5 1. Khái niệm machine learning..............................................................................................5 2. Lịch sử hình thành Machine learning...............................................................................6 3. Vì sao Machine learning lại quan trọng?..........................................................................7 4. Một số giải pháp của Machine learning............................................................................7 5. Ứng dụng của Machine learning.......................................................................................9 6. 5.1. Nhận diện hình ảnh/khuôn mặt...............................................................................10 5.2. Tự động nhận diện giọng nói....................................................................................10 5.3. Lĩnh vực tài chính......................................................................................................11 5.4. Tiếp thị bán hàng.......................................................................................................11 5.5. Chăm sóc sức khỏe.....................................................................................................12 Những câu hỏi thường gặp về machine learning...........................................................13 6.1. Machine learning được dùng để làm gì?.................................................................13 6.2. Các bước hoạt động của machine learning là gì?...................................................13 6.3. Machine learning phù hợp với ngôn ngữ nào?.......................................................13 CHƯƠNG II: MÔ HÌNH NHẬN DẠNG KHUÔN MẶT BẰNG THUẬT TOÁN PCA & SVM..............................................................................................................................................14 Phân tích thành phần chính:......................................................................................................15 Máy hỗ trợ vector........................................................................................................................17 Nhận dạng khuôn mặt.................................................................................................................18 Nhập các thư viện và mô-đun có liên quan...........................................................................18 Hình ảnh Numpy Arrays.........................................................................................................19 Mục tiêu & Tên mục tiêu - Nhãn............................................................................................21 Tách thành Train / Test...........................................................................................................24 Giảm kích thước bằng PCA....................................................................................................25 Đào tạo Bộ phân loại SVM......................................................................................................26 Phỏng đoán...............................................................................................................................28 Âm mưu....................................................................................................................................28 Phần kết luận................................................................................................................................31 lOMoARcPSD|17343589 MỞ ĐẦU Machine learning là một chủ đề được nhắc đến rất nhiều trong thời gian trở lại đây bên cạnh trí tuệ nhân tạo, nó được ứng dụng cực kỳ nhiều ở thời điểm hiện tại trong hầu hết tất cả các lĩnh vực. Trong báo cáo này,chúng ta sẽ cùng tìm hiểu xem machine learning là gì, các khái niệm cơ bản và cuối cùng là 1 ví dụ đơn giản cho thấy vì sao nó lại được ứng dụng rộng rãi như vậy ? lOMoARcPSD|17343589 CHƯƠNG I: MACHINE LEARNING LÀ GÌ? 1. Khái niệm machine learning Machine learning (tạm dịch: học máy) có khởi nguồn từ lĩnh vực trí tuệ nhân tạo (AI). Đây là giải pháp có khả năng khiến các ứng dụng, phần mềm trở nên thông minh hơn mà không cần thực hiện bất kỳ mã hóa nào. Thông qua dữ liệu đầu vào, Machine learning có thể dự đoán các giá trị đầu ra mới. lOMoARcPSD|17343589 Nhiệm vụ của học máy là tập trung phát triển chương trình máy tính truy cập dữ liệu và sử dụng chúng để tự học. Mục tiêu chính của hoạt động này là giúp máy tính tự hoạt động mà không cần sự hỗ trợ của con người. Machine learning được xem là một phần quan trọng thuộc lĩnh vực khoa học dữ liệu. Chúng sử dụng các phương pháp thống kê, thuật toán để phân loại, dự đoán và khám phá những thông tin quan trọng của dữ liệu. Nhờ những chuỗi thông tin này, người dùng nhanh chóng đưa ra các quyết định trong các hoạt động kinh doanh của mình. Vì vậy, Machine learning chính là giải pháp lý tưởng giúp doanh nghiệp tác động đến chỉ số tăng trưởng doanh thu. 2. Lịch sử hình thành Machine learning Machine learning là thuật ngữ được đặt bởi Arthur Samuel vào năm 1959. Samuel là một IBMer người Mỹ kiêm nhà tiên phong trong lĩnh vực trí tuệ nhân tạo và máy tính chơi game. Năm 1960, thuật ngữ học máy phổ biến hơn thông qua cuốn sách của Nilsson, nội dung đề cập đến việc phân loại máy học. lOMoARcPSD|17343589 Machine learning hiện đại bao gồm hai mục tiêu chính: phân loại dữ liệu thông qua mô hình đã được phát triển và đưa ra dự đoán về kết quả trong tương lai dựa trên mô hình này. 3. Vì sao Machine learning lại quan trọng? Machine learning mang lại cái nhìn trực quan về hành vi của khách hàng và các mô hình hoạt động kinh doanh. Chúng giúp doanh nghiệp xác định những xu hướng trong tương lai và đưa ra quyết định nhanh chóng hơn. Ngoài ra, Machine learning còn hỗ trợ sự phát triển của các sản phẩm mới. Hiện nay, các nền tảng lớn như: Google, Facebook, Uber,…, đã ứng dụng học máy làm trọng tâm trong hoạt động chính của họ. Đối với các doanh nghiệp, Machine learning chính là nhân tố thúc đẩy tính cạnh tranh hiệu quả. 4. Một số giải pháp của Machine learning lOMoARcPSD|17343589 Machine learning là giải pháp được ứng dụng thông qua các loại thuật toán để phân tích và dự đoán. Dựa trên những thuật toán này, Machine learning được chia làm bốn loại: Machine learning được giám sát, Machine learning không được giám sát, Machine learning bán giám sát và Machine learning tăng cường. 4.1. Machine learning được giám sát Machine learning được giám sát sử dụng tập dữ liệu được gắn nhãn để phân loại dữ liệu hoặc dự đoán kết quả chính xác nhất. Phương pháp này có thể điều chỉnh trọng lượng khi dữ liệu mới được đưa vào mô hình cho đến khi chúng được lắp một cách thích hợp. Giải pháp Machine learning có giám sát giúp doanh nghiệp xử lý các vấn đề thực trên quy mô lớn, như việc phân loại thư rác trong thư mục riêng. Những thuật toán được sử dụng trong học máy được giám sát là: mạng nơ-ron, hồi quy tuyến tính, hồi quy logistic, máy vectơ hỗ trợ,… 4.2. Machine learning không được giám sát Phương pháp này sử dụng các thuật toán Machine learning để phân tích các tập dữ liệu không được gắn nhãn. Những thuật toán này có khả năng phát hiện nhóm dữ liệu ẩn mà không cần sự hỗ trợ của con người. Đây là giải pháp lý tưởng để: phân tích dữ liệu, phân khúc khách hàng, nhận dạng hình ảnh, chiến lược bán chéo, … lOMoARcPSD|17343589 Bên cạnh đó, Machine learning không giám sát còn giảm số lượng tính năng trong một mô hình dựa trên việc giảm kích thước. Chúng có hai cách tiếp cận phổ biến là: phân tích thành phần chính và phân tích giá trị đơn lẻ. Một số thuật toán khác trong phương pháp nay là: phân cụm k-mean, phân cụm xác suất, mạng nơron,… 4.3. Machine learning bán giám sát Đây là sự kết hợp hài hòa giữa học máy được giám sát và không giám sát. Machine learning bán giám sát sử dụng các dữ liệu gắn nhãn và không gắn nhãn để đào tạo. Phương pháp này giúp giải quyết các vấn đề không có đủ dữ liệu được gắn nhãn để đào tạo thuật toán học máy được giám sát. 4.4. Machine learning tăng cường Machine learning tăng cường là phương pháp học tập dựa trên sự tương tác với môi trường. Chúng có khả năng thực hiện một mục tiêu nhất định như lái xe hoặc chơi trò chơi với đối thủ. Phương pháp này được sử dụng để đào tạo máy tính hoàn thành một quy trình gồm nhiều bước. 5. Ứng dụng của Machine learning Downloaded by v? ngoc ([email protected]) lOMoARcPSD|17343589 5.1. Nhận diện hình ảnh/khuôn mặt Đây được xem là ứng dụng phổ biến nhất của Machine learning. Hiện nay, có rất nhiều trường hợp cần sử dụng nhận diện khuôn mặt, chủ yếu phục vụ cho nhu cầu bảo mật như: điều tra, xác định tội phạm, hỗ trợ pháp y, mở khóa điện thoại,… 5.2. Tự động nhận diện giọng nói Tự động nhận diện giọng nói được ứng dụng để chuyển giọng nói thành văn bản kỹ thuật số. Machine learning hỗ trợ việc xác định danh tính của người dùng dựa trên giọng nói của họ. Ngoài ra, chúng còn giúp người dùng thực hiện các thao tác đơn giản thông qua giọng nói. Những mẫu giọng nói và từ vựng được đưa vào hệ thống để đào tạo mô hình hoạt động. Hiện tại, hệ thống nhận diện giọng nói được ứng dụng trong các lĩnh vực sau:  Robot công nghiệp  Quốc phòng và hàng không  Công nghiệp viễn thông  Công nghệ Thông tin và Điện tử Tiêu dùng  Kiểm soát an ninh, tự động hóa Downloaded by v? ngoc ([email protected]) lOMoARcPSD|17343589 5.3. Lĩnh vực tài chính Trong lĩnh vực tài chính – ngân hàng, giải pháp học máy được ứng dụng phổ biến. Những thuật toán Machine learning có khả năng giám sát và đánh giá hành vi của người dùng. Việc này giúp quá trình phát hiện vấn đề gian lận hoặc không minh bạch dễ dàng hơn. Bên cạnh đó, người ta còn ứng dụng học máy để kiểm tra hoạt động rửa tiền phi pháp. Thông qua sự hỗ trợ của thuật toán, học máy giúp đưa ra quyết định giao dịch tốt hơn bằng cách phân tích hàng nghìn dữ liệu cùng lúc. Ngoài ra, giải pháp này rất hiệu quả trong việc tính điểm tín dụng và bảo lãnh phát hành. 5.4. Tiếp thị bán hàng Machine learning sở hữu các thuật toán xác định khách hàng tiềm năng dựa trên: lượt truy cập trang web, lượt nhấp chuột, lượt tải xuống, email đã mở,… Thông qua dữ liệu thu thập được, doanh nghiệp sẽ định hình được các chiến lược tiếp thị hiệu quả hơn. Downloaded by v? ngoc ([email protected]) lOMoARcPSD|17343589 Không những thế, học máy còn hỗ trợ việc phân tích cảm xúc của người tiêu dùng để đánh giá phản ứng của họ đối với sản phẩm. Ngoài ra, chatbots cũng ngày càng được cải tiến khi có sự trợ giúp của học máy. Chăm sóc sức khỏe Một trong những ứng dụng phổ biến của Machine learning là chẩn đoán bệnh lý, thậm chí là những căn bệnh nguy hiểm. Giải pháp này cũng được sử dụng trong quá trình xạ trị cho các bệnh nhân ung thư. Machine learning xuất hiện trong lĩnh vực y học, bào chế thuốc. Những dự đoán dựa trên học máy giúp các thử nghiệm lâm sàng hiệu quả hơn. Ngoài ra, Machine learning có khả năng đưa ra các dự đoán bùng phát. Nhiều nhà khoa học trên thế giới đang sử dụng công nghệ này để dự đoán sự bùng phát dịch bệnh. Downloaded by v? ngoc ([email protected]) lOMoARcPSD|17343589 Qua bài viết trên, bạn có thể thấy không phải ngẫu nhiên mà Machine learning lại nhận được sự quan tâm trong những năm gần đây như vậy. Giải pháp công nghệ này mang lại những tính năng tuyệt vời, hỗ trợ con người bước đến một tương lai hiện đại và tiến bộ hơn. 6. Những câu hỏi thường gặp về machine learning 6.1. Machine learning được dùng để làm gì? Machine learning góp mặt trong cuộc sống hằng ngày của con người. Một số lĩnh vực đã ứng dụng học máy như: – Trợ lý ảo – Đưa ra những dự đoán về lưu lượng truy cập – Phát hiện gian lận trực tuyến – Lọc thư rác – Đề xuất sản phẩm – Phương tiện không người lái 6.2. Các bước hoạt động của machine learning là gì? Thông thường, công nghệ học máy bao gồm ba bước hoạt động: đào tạo, xác thực và kiểm tra. Trong đó, giai đoạn kiểm tra liên quan đến việc quản lý tiếng ồn và kiểm tra các thông số. Đây chính là ba bước hoạt động cơ bản của phương pháp học máy. 6.3. Machine learning phù hợp với ngôn ngữ nào? Ngôn ngữ lập trình tốt nhất đối với công nghệ hiện đại machine learning là: JavaScript, Python, Julia, R, Java. Trong đó, Python chính là ngôn ngữ lập trình được sử dụng phổ biến nhất khi thiết lập giải pháp học máy. Lượng người dùng sử dụng ngôn ngữ này ngày càng tăng. Downloaded by v? ngoc ([email protected]) lOMoARcPSD|17343589 CHƯƠNG II: MÔ HÌNH NHẬN DẠNG KHUÔN MẶT BẰẰNG THUẬT TOÁN PCA & SVM. Downloaded by v? ngoc ([email protected]) lOMoARcPSD|17343589 Trong bài này, chúng ta sẽ học cách sử dụng Máy Véc tơ hỗ trợ và phân tích thành phần chính để xây dựng mô hình nhận dạng khuôn mặt. Trước tiên, hãy để chúng ta hiểu PCA và SVM là gì: Downloaded by v? ngoc ([email protected]) lOMoARcPSD|17343589 Phân tích thành phần chính: Phân tích thành phần chính (PCA) là một thuật toán học máy được sử dụng rộng rãi trong phân tích dữ liệu khám phá và để tạo mô hình dự đoán. Nó thường được sử dụng để giảm kích thước bằng cách chiếu mỗi điểm dữ liệu lên chỉ một vài thành phần chính đầu tiên để thu được dữ liệu có chiều thấp hơn trong khi vẫn giữ được càng nhiều biến thể của dữ liệu càng tốt. PCA của một phân phối Gaussian đa biến (Hình ảnh từ Wikipedia) Bây giờ, hãy để chúng ta hiểu thuật toán theo cách dễ hiểu hơn: Downloaded by v? ngoc ([email protected]) lOMoARcPSD|17343589 Giả sử chúng ta đang gặp vấn đề mà chúng ta đang thu thập dữ liệu. Tập dữ liệu của chúng ta dẫn đến một số biến, nhiều tính năng, tất cả đều ảnh hưởng đến kết quả theo các khía cạnh khác nhau. Chúng ta có thể chọn loại bỏ một số tính năng nhất định, nhưng điều đó có nghĩa là mất thông tin và chúng ta không muốn điều đó, phải không? Vì vậy, một phương pháp khác để giảm số lượng tính năng (giảm kích thước dữ liệu) là tạo ra các tính năng mới bằng cách trích xuất thông tin quan trọng và loại bỏ những thông tin ít quan trọng nhất. Bằng cách này, thông tin của chúng ta sẽ không bị mất và chúng ta sẽ giảm các tính năng và sẽ có ít cơ hội trang bị quá mức cho mô hình của chúng ta. Máy hỗ trợ vector Hỗ trợ Vector Machine ( SVM ) là một mô hình học máy có giám sát được sử dụng cho các bài toán phân loại hai nhóm. Sau khi cung cấp mô hình SVM tập hợp dữ liệu đào tạo được gắn nhãn cho từng danh mục, họ có thể phân loại dữ liệu thử nghiệm mới. Downloaded by v? ngoc ([email protected]) lOMoARcPSD|17343589 Phân loại SVM (Hình ảnh từ Wikipedia) SVM phân loại dữ liệu dựa trên mặt phẳng tối đa hóa lề. Ranh giới quyết định SVM là thẳng. SVM là một thuật toán thực sự tốt để phân loại hình ảnh. Kết quả thử nghiệm cho thấy SVM đạt được độ chính xác tìm kiếm cao hơn đáng kể so với các lược đồ sàng lọc truy vấn truyền thống chỉ sau ba đến bốn vòng phản hồi về mức độ liên quan. Điều này cũng đúng đối với các hệ thống phân đoạn hình ảnh, bao gồm cả những hệ thống sử dụng SVM phiên bản sửa đổi sử dụng cách tiếp cận đặc quyền. Nhận dạng khuôn mặt Khuôn mặt là dữ liệu có kích thước cao bao gồm một số pixel. Dữ liệu ở độ lớn nhiều chiều khó xử lý và không thể trực quan hóa bằng các kỹ thuật đơn giản như phân tán cho dữ liệu 2 chiều. Downloaded by v? ngoc ([email protected]) lOMoARcPSD|17343589 Những gì chúng ta sẽ làm là sử dụng PCA để giảm kích thước cao của dữ liệu và sau đó đưa nó vào bộ phân loại SVM để phân loại ảnh. Hãy để chúng ta chuyển sang phân đoạn mã hóa! Ví dụ mã sau đây được lấy từ tài liệu sklearn về eigenfaces. Chúng ta sẽ đi qua từng bước mã để hiểu được sự phức tạp và kết quả của nó. Nhập các thư viện và mô-đun có liên quan Trước hết, chúng ta sẽ nhập các thư viện và mô-đun cần thiết. Một cuộc thảo luận sâu về lý do tại sao chúng ta nhập khẩu chúng sẽ theo sau khi nhu cầu của chúng phát sinh. import pylab as pl import numpy as np from matplotlib import pyplot as plt from sklearn.model_selection import train_test_split from sklearn.datasets import fetch_lfw_people from sklearn.model_selection import GridSearchCV from sklearn.metrics import classification_report from sklearn.metrics import confusion_matrix from sklearn.decomposition import PCA as RandomizedPCA from sklearn.svm import SVC Tiếp theo, chúng ta sẽ tải dữ liệu vào đĩa và tải nó dưới dạng mảng NumPy bằng cách sử dụng fetch_lfw_people từ sklearn.datasets : lfw_people = fetch_lfw_people(min_faces_per_person=70, resize=0.4) Hình ảnh có thang độ xám (giá trị pixel = 0 - 255). Downloaded by v? ngoc ([email protected]) lOMoARcPSD|17343589 Tập dữ liệu được tải trong Từ điển Hình ảnh Numpy Arrays Tiếp theo, chúng ta sẽ xem xét bên trong các mảng hình ảnh để tìm hình dạng của các hình ảnh. Chúng ta sẽ sử dụng thuộc tính NumPy shape trả về một bộ giá trị với mỗi chỉ mục có số phần tử tương ứng. Downloaded by v? ngoc ([email protected])
- Xem thêm -

Tài liệu liên quan