1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca và svm

32 75 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 32
Dung lượng 12,56 MB

Nội dung

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 KHN MẶT BẰNG THUẬT TỐN PCA & SVM Sinh viên thực : 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 năm 2022 PHIẾU CHẤM ĐIỂM Họ tên giảng viên Giảng viên chấm 1: Giảng viên chấm 2: Chữ ký Ghi MỤC LỤC CHƯƠNG I: MACHINE LEARNING L GÌ? Khái niệm machine learning Lịch sử hình thành Machine learning .6 Vì Machine learning lại quan trọng? Một số giải pháp Machine learning Ứng dụng Machine learning .9 5.1 Nhận diện hình ảnh/khn mặt .10 5.2 Tự động nhận diện giọng nói 10 5.3 Lĩnh vực tài 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 machine learning 13 6.1 Machine learning dùng để làm gì? .13 6.2 Các bước hoạt động machine learning 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 KHN 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 thư viện 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 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 MỞ ĐẦU Machine learning chủ đề nhắc đến nhiều thời gian trở lại bên cạnh trí tuệ nhân tạo, ứng dụng nhiều thời điểm hầu hết tất lĩnh vực Trong báo cáo này,chúng ta tìm hiểu xem machine learning gì, khái niệm cuối ví dụ đơn giản cho thấy lại ứng dụng rộng rãi ? CHƯƠNG I: MACHINE LEARNING LÀ GÌ? 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 giải pháp có khả khiến ứng dụng, phần mềm trở nên thông minh mà khơng cần thực mã hóa Thơng qua liệu đầu vào, Machine learning dự đoán giá trị đầu Nhiệm vụ học máy tập trung phát triển chương trình máy tính truy cập liệu sử dụng chúng để tự học Mục tiêu hoạt động giúp máy tính tự hoạt động mà không cần hỗ trợ người Machine learning xem phần quan trọng thuộc lĩnh vực khoa học liệu Chúng sử dụng phương pháp thống kê, thuật toán để phân loại, dự đoán khám phá thông tin quan trọng liệu Nhờ chuỗi thơng tin này, người dùng nhanh chóng đưa định hoạt động kinh doanh Vì vậy, Machine learning giải pháp lý tưởng giúp doanh nghiệp tác động đến số tăng trưởng doanh thu Lịch sử hình thành Machine learning Machine learning thuật ngữ đặt Arthur Samuel vào năm 1959 Samuel IBMer người Mỹ kiêm nhà tiên phong lĩnh vực trí tuệ nhân tạo máy tính chơi game Năm 1960, thuật ngữ học máy phổ biến thông qua sách Nilsson, nội dung đề cập đến việc phân loại máy học Machine learning đại bao gồm hai mục tiêu chính: phân loại liệu thơng qua mơ hình phát triển đưa dự đốn kết tương lai dựa mơ hình Vì Machine learning lại quan trọng? Machine learning mang lại nhìn trực quan hành vi khách hàng mơ hình hoạt động kinh doanh Chúng giúp doanh nghiệp xác định xu hướng tương lai đưa định nhanh chóng Ngồi ra, Machine learning cịn hỗ trợ phát triển sản phẩm Hiện nay, tảng lớn như: Google, Facebook, Uber,…, ứng dụng học máy làm trọng tâm hoạt động họ Đối với doanh nghiệp, Machine learning nhân tố thúc đẩy tính cạnh tranh hiệu Một số giải pháp Machine learning Machine learning giải pháp ứng dụng thơng qua loại thuật tốn để phân tích dự đốn Dựa thuật toán này, Machine learning chia làm bốn loại: Machine learning giám sát, Machine learning không giám sát, Machine learning bán giám sát Machine learning tăng cường 4.1 Machine learning giám sát Machine learning giám sát sử dụng tập liệu gắn nhãn để phân loại liệu dự đốn kết xác Phương pháp điều chỉnh trọng lượng liệu đưa vào mơ hình chúng lắp cách thích hợp Giải pháp Machine learning có giám sát giúp doanh nghiệp xử lý vấn đề thực quy mô lớn, việc phân loại thư rác thư mục riêng Những thuật toán sử dụng học máy 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 giám sát Phương pháp sử dụng thuật tốn Machine learning để phân tích tập liệu khơng gắn nhãn Những thuật tốn có khả phát nhóm liệu ẩn mà khơng cần hỗ trợ người Đây giải pháp lý tưởng để: phân tích 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, … Bên cạnh đó, Machine learning khơng giám sát cịn giảm số lượng tính mơ hình dựa 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 phân tích giá trị đơn lẻ Một số thuật tốn khác phương pháp 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 kết hợp hài hòa học máy giám sát không giám sát Machine learning bán giám sát sử dụng liệu gắn nhãn không gắn nhãn để đào tạo Phương pháp giúp giải vấn đề khơng có đủ liệu gắn nhãn để đào tạo thuật toán học máy giám sát 4.4 Machine learning tăng cường Machine learning tăng cường phương pháp học tập dựa tương tác với mơi trường Chúng có khả thực mục tiêu định lái xe chơi trò chơi với đối thủ Phương pháp sử dụng để đào tạo máy tính hồn thành quy trình gồm nhiều bước Ứng dụng Machine learning 5.1 Nhận diện hình ảnh/khn mặt Đây xem ứng dụng phổ biến Machine learning Hiện nay, có 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 ứng dụng để chuyển giọng nói thành văn kỹ thuật số Machine learning hỗ trợ việc xác định danh tính người dùng dựa giọng nói họ Ngồi ra, chúng cịn giúp người dùng thực thao tác đơn giản thơng qua giọng nói Những mẫu giọng nói từ vựng đư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 ứng dụng lĩnh vực sau:  Robot công nghiệp  Quốc phịng hàng khơng  Cơng nghiệp viễn thơng  Công nghệ Thông tin Điện tử Tiêu dùng  Kiểm sốt an ninh, tự động hóa Phân loại SVM (Hình ảnh từ Wikipedia) SVM phân loại liệu dựa mặt phẳng tối đa hóa lề Ranh giới định SVM thẳng SVM thuật toán thực tốt để phân loại hình ảnh Kết thử nghiệm cho thấy SVM đạt độ xác tìm kiếm cao đáng kể so với lược đồ sàng lọc truy vấn truyền thống sau ba đến bốn vòng phản hồi mức độ liên quan Điều hệ thống phân đoạn hình ảnh, bao gồm hệ thống sử dụng SVM phiê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 liệu có kích thước cao bao gồm số pixel Dữ liệu độ lớn nhiều chiều khó xử lý khơng thể trực quan hóa kỹ thuật đơn giản phân tán cho liệu chiều Những làm sử dụng PCA để giảm kích thước cao liệu sau đưa vào phân loại SVM để phân loại ảnh Hãy để chuyển sang phân đoạn mã hóa! Ví dụ mã sau lấy từ tài liệu sklearn eigenfaces Chúng ta qua bước mã để hiểu phức tạp kết Nhập thư viện mơ-đun có liên quan Trước hết, nhập thư viện mô-đun cần thiết Một thảo luận sâu lý nhập chúng theo sau nhu cầu 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, tải liệu vào đĩa tải dạng mảng NumPy 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 = - 255) Tập liệu tải Từ điển Hình ảnh Numpy Arrays Tiếp theo, xem xét bên mảng hình ảnh để tìm hình dạng hình ảnh Chúng ta sử dụng thuộc tính NumPy shape trả giá trị với mục có số phần tử tương ứng H ình ảnh Numpy Arrays n_samples, h, w = lfw_people.images.shape np.random.seed(42) Chúng ta sử dụng mảng liệu lfw_people utils.Bunch trực tiếp lưu trữ X Chúng ta sử dụng liệu trình xử lý X = lfw_people.data n_features = X.shape[1] Mục tiêu & Tên mục tiêu - Nhãn Tiếp theo, xác định nhãn id người có ảnh y = lfw_people.target target_names = lfw_people.target_names n_classes = target_names.shape[0] đích mảng NumPy 1288x1 chứa giá trị 0–6 tên mà 1288 hình ảnh tương ứng Vì vậy, id có giá trị đích 5, tham chiếu đến "Hugo Chavez", mơ tả target_names : Do đó, y đích dạng số, target_names mục tiêu / nhãn theo tên n_classes biến lưu trữ số lớp mà có, trường hợp chúng ta, có : Ariel Sharon Colin Powell Donald Rumsfeld Ơng George W Bush Gerhard Schrưder Hugo Chavez Tony Blair Tên đích từ Tập liệu (Hình ảnh từ Wikipedia - Soure [1], [2], [3], [4], [5], [6], [7]) print("Total dataset size:") print("n_samples: %d", n_samples) print("n_features: %d", n_features) print("n_classes: %d", n_classes) Tách thành Train / Test Tiếp theo, sử dụng mô-đun train_test_split từ sklearn.model_selection tách liệu ( X -features y -labels) thành liệu đào tạo liệu thử nghiệm, với 25% liệu sử dụng để kiểm tra 75% cịn lại để đào tạo mơ hình X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=42) X_text & X_train y_test & y_train Giảm kích thước PCA Bây giờ, sử dụng PCA từ sklearn.decomposition để chọn thành phần hàng đầu để đào tạo mơ hình Chúng ta nhập PCA dạng RandomizedPCA khối mã Trong trường hợp chúng ta, có tổng cộng 966 tính tập huấn luyện X_train giảm chúng xuống 50 cách sử dụng PCA (giảm kích thước): n_components = 50 pca = RandomizedPCA(n_components=n_components, whiten=True).fit(X_train) Bây định hình lại thành phần PCA xác định eigenfaces, tên đặt cho tập hợp vector riêng sử dụng tốn computer vision nhận dạng khn mặt người: eigenfaces = pca.components_.reshape((n_components, h, w)) Tiếp theo, sử dụng biến đổi PCA X_train X_test để giảm kích thước X_train_pca = pca.transform(X_train) X_test_pca = pca.transform(X_test) Đào tạo Bộ phân loại SVM Khi hồn thành việc giảm kích thước, chuyển sang phân loại Đầu tiên, đào tạo mơ hình Phân loại SVM Chúng ta sử dụng GridSearchCV, hàm thư viện cách tiếp cận để điều chỉnh siêu tham số Nó xây dựng đánh giá mơ hình cách có phương pháp cho tổ hợp tham số thuật toán định lưới trả công cụ ước lượng tốt clf.best_estimator Các tham số đưa param_grid : print("Fitting the classifier to the training set") param_grid = { 'C': [1e3, 5e3, 1e4, 5e4, 1e5], 'gamma': [0.0001, 0.0005, 0.001, 0.005, 0.01, 0.1], } clf = GridSearchCV(SVC(kernel='rbf', class_weight='balanced'), param_grid) clf = clf.fit(X_train_pca, y_train) print("Best estimator found by grid search:") print(clf.best_estimator_) SVC (C = 1000, class_weight = 'balance', gamma = 0,01) Phỏng đoán Bây dự đoán tên người liệu thử nghiệm Chúng ta sử dụng phân loại mà tìm thấy từ GridSearchCV phân loại phù hợp với liệu đào tạo print("Predicting the people names on the testing set") y_pred = clf.predict(X_test_pca) Sau dự đoán thực hiện, in Báo cáo phân loại hiển thị độ xác , thu hồi , điểm F1 điểm hỗ trợ cho mơ hình Điều cung cấp trực giác sâu hành vi trình phân loại print(classification_report(y_test, y_pred, target_names=target_names)) print(confusion_matrix(y_test, y_pred, labels=range(n_classes))) Âm mưu Cuối cùng, vẽ chân dung người nét đặc trưng! Chúng ta xác định chức năng: tiêu đề để vẽ kết dự đoán phần tập thử nghiệm plot_gallery để đánh giá dự đoán cách vẽ biểu đồ chúng: def title(y_pred, y_test, target_names, i): pred_name = target_names[y_pred[i]].rsplit(' ', 1)[-1] true_name = target_names[y_test[i]].rsplit(' ', 1)[-1] return 'predicted: %s\ntrue: %s' % (pred_name, true_name) def plot_gallery(images, titles, h, w, n_row=3, n_col=4): """Helper function to plot a gallery of portraits""" plt.figure(figsize=(1.8 * n_col, 2.4 * n_row)) plt.subplots_adjust(bottom=0, left=.01, right=.99, top=.90, hspace=.35) for i in range(n_row * n_col): plt.subplot(n_row, n_col, i + 1) plt.imshow(images[i].reshape((h, w)), cmap=plt.cm.gray) plt.title(titles[i], size=12) plt.xticks(()) plt.yticks(()) prediction_titles = [title(y_pred, y_test, target_names, i) for i in range(y_pred.shape[0])] plot_gallery(X_test, prediction_titles, h, w) eigenface_titles = ["eigenface %d" % i for i in range(eigenfaces.shape[0])] plot_gallery(eigenfaces, eigenface_titles, h, w) plt.show() from sklearn.metrics import accuracy_score score = accuracy_score(y_test, y_pred) print(score) Phần kết luận Trong viết này, xây dựng mơ hình nhận dạng khn mặt PCA SVM Thuật tốn Phân tích Thành phần Chính sử dụng để giảm kích thước liệu mà có; hình ảnh có số giá trị pixel! sau sử dụng SVM để phân loại cách tìm cơng cụ ước lượng tốt cách điều chỉnh siêu tham số Chúng ta phân loại chân dung nhận điểm xác 0,81 ... MƠ HÌNH NH Ậ ND Ạ NG KHN M Ặ T BẰẰNG THUẬT TOÁN PCA & SVM Trong này, học cách sử dụng Máy Véc tơ hỗ trợ phân tích thành phần để xây dựng mơ hình nhận dạng khn mặt Trước tiên, để hiểu PCA SVM. .. CHƯƠNG II: MƠ HÌNH NHẬN DẠNG KHN MẶT BẰNG THUẬT TỐ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 ... Trong viết này, xây dựng mơ hình nhận dạng khn mặt PCA SVM Thuật tốn Phân tích Thành phần Chính sử dụng để giảm kích thước liệu mà có; hình ảnh có số giá trị pixel! sau sử dụng SVM để phân loại

Ngày đăng: 26/04/2022, 15:01

HÌNH ẢNH LIÊN QUAN

XÂY DỰNG MÔ HÌNH NHẬN DẠNG KHUÔN MẶT BẰNG - Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca và svm
XÂY DỰNG MÔ HÌNH NHẬN DẠNG KHUÔN MẶT BẰNG (Trang 1)
2. Lịch sử hình thành Machine learning - Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca và svm
2. Lịch sử hình thành Machine learning (Trang 6)
5.1. Nhận diện hình ảnh/khuôn mặt - Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca và svm
5.1. Nhận diện hình ảnh/khuôn mặt (Trang 10)
tích thành phần chính để xây dựng mô hình nhận dạng khuôn mặt. - Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca và svm
t ích thành phần chính để xây dựng mô hình nhận dạng khuôn mặt (Trang 15)
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  - Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca và svm
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 (Trang 16)
Phân loại SVM (Hình ảnh từ Wikipedia) - Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca và svm
h ân loại SVM (Hình ảnh từ Wikipedia) (Trang 18)
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 - Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca và svm
i ế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 (Trang 20)
đích là một mảng NumPy 1288x1 chứa các giá trị 0–6 của tên mà 1288 hình ảnh tương ứng - Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca và svm
ch là một mảng NumPy 1288x1 chứa các giá trị 0–6 của tên mà 1288 hình ảnh tương ứng (Trang 23)
Tên đích từ Tập dữ liệu (Hình ảnh từ Wikipedia - Soure [1], [2], [3], [4], [5], [6], [7]) - Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca và svm
n đích từ Tập dữ liệu (Hình ảnh từ Wikipedia - Soure [1], [2], [3], [4], [5], [6], [7]) (Trang 25)
Trong bài viết này,chúng ta đã xây dựng mô hình nhận dạng khuôn mặt bằng PCA và SVM. Thuật toán Phân tích Thành phần Chính  được sử dụng để  giảm kích thước của dữ liệu mà chúng ta có; hình ảnh có một số giá trị pixel! sau  đó chúng ta sử dụng SVM để phân - Xây dựng mô hình nhận dạng khuôn mặt bằng thuật toán pca và svm
rong bài viết này,chúng ta đã xây dựng mô hình nhận dạng khuôn mặt bằng PCA và SVM. Thuật toán Phân tích Thành phần Chính được sử dụng để giảm kích thước của dữ liệu mà chúng ta có; hình ảnh có một số giá trị pixel! sau đó chúng ta sử dụng SVM để phân (Trang 32)

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN