Luận Văn Thạc Sĩ Về Thuật Toán Giảm Chiều Vector Trong Nhận Dạng Khuôn Mặt Sử Dụng Học Sâu

Luận văn thạc sĩ nghiên cứu máy tính ứng dụng thuật toán giảm chiều vector vào mô hình nhận dạng các thành phần chính trên, đánh giá hiện trạng, phân tích vấn đề, đề xuất biện

Trường đại học

Đại học Bách Khoa - ĐHQG - HCM

Chuyên ngành

Khoa học máy tính

Người đăng

Ẩn danh

Thể loại

luận văn thạc sĩ

2017

64
3
0

Phí lưu trữ

30 Point

Tóm tắt

I. Tổng quan

Nhận diện các thành phần chính trên khuôn mặt (Facial Keypoint Detection) là một trong những lĩnh vực nghiên cứu quan trọng trong phân tích và nhận diện hình ảnh. Việc áp dụng học sâu (deep learning) trong lĩnh vực này đã thu hút sự quan tâm của nhiều nhà nghiên cứu. Tuy nhiên, một trong những thách thức lớn khi sử dụng học sâu để nhận diện khuôn mặt là ảnh hưởng của độ sáng và góc nghiêng của khuôn mặt, dẫn đến kết quả nhận dạng không chính xác. Để giải quyết vấn đề này, luận văn đề xuất một phương pháp mới, sử dụng thuật toán giảm chiều vector nhằm phân loại ảnh trước khi đưa vào mô hình học sâu. Việc phân loại sẽ giúp xây dựng các mô hình học sâu riêng biệt cho từng loại ảnh, từ đó nâng cao hiệu quả huấn luyện. Mục tiêu chính của nghiên cứu là đạt được độ chính xác cao trong việc nhận diện các điểm chính trên khuôn mặt như giữa mắt trái (LE), giữa mắt phải (RE), đỉnh mũi (N), mép miệng bên trái (LM) và mép miệng bên phải (RM).

II. Kiến thức nền tảng

Chương này trình bày các kiến thức nền tảng liên quan đến học sâuthuật toán giảm chiều vector. Mạng nơ-ron (neural networks) là một phần quan trọng trong học sâu, cho phép máy tính học từ dữ liệu và cải thiện khả năng dự đoán. Mạng nơ-ron tích chập (CNN) được sử dụng rộng rãi trong các ứng dụng nhận diện hình ảnh, bao gồm nhận diện khuôn mặt. Ngoài ra, Gaussian Process Latent Variable Models (GPLVM) cũng được đề cập như một phương pháp hữu ích trong việc giảm chiều không gian của dữ liệu. Từ đó, việc áp dụng thuật toán giảm chiều vector giúp tối ưu hóa quá trình huấn luyện mô hình học sâu, giảm thiểu thời gian và nâng cao độ chính xác trong nhận diện các thành phần trên khuôn mặt.

III. Các công trình nghiên cứu liên quan

Trong chương này, các nghiên cứu liên quan đến nhận diện các thành phần chính trên khuôn mặt bằng phương pháp học sâu được tổng hợp và phân tích. Nhiều nghiên cứu đã chỉ ra rằng việc áp dụng thuật toán giảm chiều không gian vector như Thin Plate Splines (TPS) có thể cải thiện đáng kể độ chính xác của mô hình nhận diện. Các phương pháp này không chỉ giúp giảm thiểu dữ liệu đầu vào mà còn tối ưu hóa quá trình huấn luyện mạng nơ-ron. Việc kết hợp các phương pháp phân loại và nhận diện trong cùng một mô hình đã cho thấy hiệu quả cao hơn so với các phương pháp truyền thống. Những nghiên cứu này đóng vai trò quan trọng trong việc phát triển và cải tiến các mô hình nhận diện khuôn mặt hiện đại.

IV. Phân tích và thiết kế hệ thống

Chương này tập trung vào việc phân tích yêu cầu và thiết kế hệ thống nhận diện các thành phần chính trên khuôn mặt. Việc phân tích yêu cầu giúp xác định các tiêu chí cần thiết cho ứng dụng, bao gồm độ chính xác, tốc độ xử lý và khả năng mở rộng. Thiết kế tổng quan trình bày cách lựa chọn thuật toán giảm chiềumô hình học sâu phù hợp. Thin Plate Spline Latent Variable Model (TPSLVM) được lựa chọn để phân loại ảnh trước khi đưa vào mô hình CNN. Thiết kế chi tiết cũng được trình bày, bao gồm các tham số và cách tùy chỉnh cho từng thuật toán. Qua đó, hệ thống được tối ưu hóa để đạt được kết quả tốt nhất trong việc nhận diện các điểm chính trên khuôn mặt.

V. Thực nghiệm và đánh giá

Chương này trình bày các thực nghiệm đã được thực hiện để đánh giá hiệu quả của mô hình. Nền tảng phần cứng được sử dụng cho các thí nghiệm được mô tả rõ ràng, bao gồm thông số kỹ thuật và cấu hình hệ thống. Mô hình phân cụm bằng TPSLVM và mô hình CNN được triển khai để kiểm tra khả năng nhận diện các thành phần chính trên khuôn mặt. Kết quả cho thấy mô hình đạt được độ chính xác lên đến 95% trong việc nhận diện các điểm chính. Thời gian huấn luyện cũng được ghi nhận và so sánh giữa các mô hình trước và sau khi áp dụng thuật toán giảm chiều vector. Những hạn chế và hướng phát triển trong tương lai cũng được thảo luận để cải thiện hơn nữa khả năng nhận diện.

07/01/2025

Trích đoạn nội dung tài liệu

Chương 1: Tổng quan Chương này sẽ giới thiệu tổng quan về nội dung, mục tiêu, và phạm vi đề tài. Cuối cùng là cấu trúc luận văn. Chương 2: Kiến thức nền tảng Như tên gọi, chương trình trình bày các kiến thức nền tảng được tìm hiểu trong quá trình nghiên cứu và sử dụng trong luận văn: học sâu, thuật toán giảm chiều. Chương 3: Nghiên cứu liên quan Chương này trình bày những nghiên cứu mà luận văn tham khảo hay tiếp tục phát triển.

7 Chương 4: Phân tích và thiết kế hệ thống Trong chương này, chúng tôi sẽ trình bày ba phần. Phần thứ nhất là phân tích yêu cầu nhằm xác định các yêu cầu cần có của ứng dụng. Phần thứ hai là thiết kế tổng quan trình bày cách mà chúng tôi đã lựa chọn thuật toán cho từng bước xử lý. Phần cuối cùng là cách chúng tôi lựa chọn các tham số, tùy chỉnh cho từng thuật toán đã chọn.

Chương 5: Hiện thực và triển khai Chương này trình bày cách hiện thực ứng dụng từ khi thử nghiệm đến lúc hoàn chỉnh. Chương 6: Đánh giá hệ thống Chương này đánh giá lại ứng dụng mà chúng tôi đã xây dựng dựa trên hai tiêu chí là thời gian chạy và độ chính xác. Chương 7: Tổng kết Chương cuối cùng sẽ rút ra những nhận xét trong quá trình thực hiện đề tài, bao gồm những hạn chế và phương hướng phát triển cho hệ thống. 8 Chương 2 Kiến thức nền tảng Phần này tóm tắt các kiến thức liên quan được tìm hiểu và sử dụng trong quá trình thực hiện luân văn.1 Học máy (Machine Learning) Kể từ khi máy tính được phát minh, con người đã không ngừng tìm cách lập trình cho nó học và cải thiện từ những kinh nghiệm trong quá khứ.

Con người luôn tưởng tượng về một chiếc máy tính có thể dựa vào các dữ liệu bệnh nhân trước đó để dự đoán bệnh và đưa ra hướng điều trị cho một bệnh nhân mới mà không cần sự tác động của con người, hay đơn giản hơn là một chiếc máy tính có thể tự tìm được cách tiết kiệm năng lượng sử dụng trong nhà dựa vào thói quen sử dụng trước đó của con người và đặc tính của các thiết bị trong nhà,. Để tạo ra được những chiếc máy tính như vậy, con người cần phải am hiểu một cách tường tận làm thế nào để làm cho một chiếc máy tính không những có thể tự học những dữ liệu đã có mà còn có thể tiếp thu những kiến thức mới vừa xuất hiện. Đáp ứng nhu cầu đó, các thuật toán học máy (Machine learning) đã ra đời và nhanh chóng phát triển. Có thể nói học máy là chính là tập hợp các thuật toán dùng để lập trình cho một chiếc máy tính có thể học và ra quyết định dựa vào những dữ liệu được đưa vào hay chính nó thu thập được[2].

Trong thế giới data phổ biến như hiện nay thì tầm quan trọng của các thuật 9 toán học máy ngày càng được khẳng định. Học máy đã đang và sẽ được áp dụng trong hầu hết các lĩnh vực của cuộc sống hằng ngày như nhận diện giọng nói, khuôn mặt, hình ảnh, y tế, kinh tế, giáo dục,.2 Mạng neural nhận tạo (Artificial neural net- works) Từ xưa đến nay, nguyên lí hoặc động cũng như cách thức học hỏi những kiến thức mới của bộ não người vẫn luôn là một bí mật. Mô phỏng hoạt động của bộ não là một trong những đề tài cực kì hấp dẫn của các nhà khoa học trên thế giới. Trên thực tế, các nghiêng cứu cũng chỉ ra rằng bộ não người được cấu thành bởi khoảng 1011 neural, và các neural này liên kết với nhau tạo thành một mạng lớn.

Theo ước tính, mỗi neural sẽ có liên kết với khoảng 10−4 neural khác trong mạng. Dựa trên cảm hứng từ mạng neural ở thế giới thực, các nhà khoa học đã xây dựng nên một mô hình toán học tương tự để tận dụng khả năng tự học. Những mô hình đầu tiên của mạng neural nhân tạo (ANN) đã được nhen nhóm từ nửa đầu của thế kỷ 20[1]. Tuy nhiên nó chỉ thực sự phát triển mạnh mẽ khi máy tính bắt đầu tận dụng được ưu điểm vượt trội của nó so với các mô hình học khác đó là khả năng tính toán song song (parallel computation) trên những hệ thống phân tán (distributed system)[2][3].

Về cơ bản, một mô hình mạng neural sẽ gồm có 3 thành phần chính như trong hình 2.1: • Input layer: Tập hợp những neural có nhiệm vụ tiếp nhận các giá trị đầu vào (input) dùng để tính toán. • Hidden layer: Tập hợp những neural ẩn (hidden) chỉ có giá trị trong việc tính toán nội bộ bên trong mạng, các giá trị đầu ra của những neural này không được sử dụng ở bên ngoài. • Output layer: Tập hợp những neural thể hiện đầu ra của toàn bộ mạng, có 10 giá trị để dự đoán (prediction), phân loại (classification),.1: Mạng neural cơ bản Quá trình huấn luyện của một mạng neural được định nghĩa là quá trình tính toán giá trị của các cạnh và các neural ẩn trong mạng thông qua các dữ liệu có sẵn. Với những mạng ANN chỉ có một đầu ra duy nhất, mạng có thể được học thông qua một giải thuật đơn giản gọi là perceptrons.

Với perceptrons, đầu vào sẽ là những dữ liệu số thực, sau khi được tính toán thông qua những hàm tuyến tính kết quả đầu ra sẽ là 1 nếu hàm tuyến tính trả về giá trị lớn hơn 0, ngược lại thì kết quả đầu ra sẽ là -1 như trong công thức 2.2: Thuật toán học perceptrons Tuy nhiên, thông thường một bài toán sử dụng học máy phức tạp thường yêu cầu mạng neural có nhiều lớp hơn cũng như số lượng đầu ra nhiều hơn 1, vì vậy thuật toán perceptrons không còn phù hợp. Chính vì sự phát triển về độ phức tạp của mô hình neural yêu cầu cần có một thuật toán học hiệu quả hơn và đó chính là thuật toán lan truyền ngược (BACKPROPAGATION). Lan truyền ngược là thuật toán giúp mô hình có thể tìm được giá trị của các cạnh và neural tối ưu thông qua việc cố gắng giảm bình phương sai số giữa đầu ra của mạng và đầu ra mục tiêu. Như vậy một hàm mục tiêu cơ bản của BACKPROPAGATION sẽ có dạng như công thức 2.2) 2 d∈D k∈out puts trong đó: outputs: tập hợp những neural đầu ra của mạng.

tkd , okd : giá trị mục tiêu và giá trị đầu ra thực tế của neural đầu ra thứ k với dữ liệu học thứ d trong tập dữ liệu D. Thuật toán huấn luyện lan truyền ngược (BACKPROPAGATION)[2]. ~t là vector chứa dữ liệu đầu ra mục tiêu (target output). η là learning rate.

12 nin là số lượng neural đầu vào của mạng (input layer). nout là số lượng neural đầu ra của mạng (output layer). nhidden là số lượng neural ẩn (hidden layer). Giá trị input cho một cạnh nối từ neural i tới neural j là xi j , giá trị của trọng số của cạnh nối từ i tới j là wi j.

• Tạo ra mạng neural network với nin inputs, nhidden hidden units và nout outputs. • Khởi tạo tất cả trọng số trong mạng với giá trị ngẫu nhiên. • Lặp lại các bước sau cho đến khi đạt được điều kiên dừng: Với mỗi (~x,~t) trong training_examples, Thực hiện: Lan truyền giá trị đầu vào xuôi qua toàn bộ mạng: 1. Input the instance ~x to the network and compute the output ou of every unit u in the network.

Tính toán các giá trị sai số bằng phương pháp lan truyền ngược như các bước 2, 3, 4 như sau: 2. Với mỗi giá trị đầu vào k, tính toán sai số δk δk ← ok (1 − ok )(tk − ok ) (2. Với mỗi nốt h trong lớp ẩn, tính toán giá trị sai số của nó δh dựa vào các giá trị đầu vào δh ← oh (1 − oh ) ∑ wkh δk (2. Cập nhật giá trị của mỗi trọng số trong mạng w ji bằng cách: w ji ← w ji + ∆w ji (2.5) 13 trong đó: ∆w ji = ηδ j x ji (2.6) Sau khi thực hiện huấn luyện tên toàn bộ tập dữ liệu ta sẽ thu được kết quả là giá trị của các trọng số trong mạng tại vị trí có sai số nhỏ nhất.

Ví dụ về một kết quả sau quá trình huấn luyện như hình 2.3: Mạng neural 8x3x8 đã được học[2] 2.3 Học Sâu (Deep Learning) Như đã đề cập trong phần trước, mô hình mạng neural có sự phát triển mạnh mẽ trong thời gian gần đây một phần rất lớn là nhờ sự phát triển của máy tính cũng như các mô hình tính toán song song. Cùng với sự phát triển đó, số lượng data mà máy tính thu thập được cũng ngày một lớn hơn, yêu cầu sử dụng mạng neural nhân tạo để giải các bài toán ngày càng phức tạp.4: Sự tăng trưởng về độ lớn của mạng neural[5] 1. Adaptive linear element (Widrow and Hoff, 1960) 3. Early back-propagation network (Rumelhart et al.

Recurrent neural network for speech recognition (Robinson and Fallside, 1991) 6. Multilayer perceptron for speech recognition (Bengio et al. Mean field sigmoid belief network (Saul et al. LeNet-5 (LeCun et al.

Echo state network (Jaeger and Haas, 2004) 10. Deep belief network (Hinton et al. GPU-accelerated convolutional network (Chellapilla et al. Deep Boltzmann machine (Salakhutdinov and Hinton, 2009) 15 13.

GPU-accelerated deep belief network (Raina et al. Unsupervised convolutional network (Jarrett et al. GPU-accelerated multilayer perceptron (Ciresan et al. Distributed autoencoder (Le et al.

Multi-GPU convolutional network (Krizhevsky et al. COTS HPC unsupervised convolutional network (Coates et al. GoogLeNet (Szegedy et al.4 trên cho thấy độ lớn của mạng neural nhân tạo có thể nâng lên gấp đôi cứ sau 2. Khi mà việc tăng số lượng neural ở lớp ẩn (hidden layer) đạt đến một ngưỡng nhất định, người ta đã bắt đầu nghĩ đến việc dùng nhiều lớp ẩn hơn (multiple levels of composition).

Bằng cách đó, thế giới hiện đại bắt đầu quen với việc dùng "deep learning" như một thuật ngữ để chỉ chung những mô hình neural nhân tạo gồm nhiều lớp. Qua thời gian, mạng "deep learning" ngày càng phát triển với số lượng lớp ẩn linh hoạt phụ thuộc vào từng bài toán cụ thể khác nhau. Bên cạnh đó, "deep learning" cũng có thể dùng để diễn tả các mô hình học máy khác không phải mà mạng neural nhưng vẫn là sự kết hợp của nhiều tầng, lớp liên tiếp nhau.4 Mạng Neural Tích Chập (Convolutional Neu- ral Networks (CNN)) Khác với mô hình truyền thống, tích chập tận dụng được ba đặc điểm quan trọng có thể giúp tăng cường qua trình học máy: liên kết một phần (sparse inter- actions), dùng chung tham số (parameter sharing) và representations.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Bài viết "Luận Văn Thạc Sĩ Về Thuật Toán Giảm Chiều Vector Trong Nhận Dạng Khuôn Mặt Sử Dụng Học Sâu" của tác giả Nguyễn Kim Lanh, dưới sự hướng dẫn của PGS. Quản Thành Thơ và TS. Nguyễn Đức Dũng, trình bày một nghiên cứu sâu sắc về ứng dụng của thuật toán giảm chiều vector trong việc nhận diện khuôn mặt thông qua học sâu. Luận văn không chỉ cung cấp cái nhìn tổng quan về các phương pháp giảm chiều và cách thức áp dụng chúng vào mô hình nhận diện khuôn mặt, mà còn chỉ ra những lợi ích rõ ràng của việc sử dụng học sâu trong lĩnh vực này, giúp nâng cao độ chính xác và hiệu quả của các hệ thống nhận diện.

Để mở rộng thêm kiến thức, bạn có thể tham khảo bài viết Luận Văn Thạc Sĩ: Ứng Dụng Active Learning trong Lựa Chọn Dữ Liệu Gán Nhãn cho Bài Toán Nhận Diện Giọng Nói, trong đó cũng đề cập đến việc áp dụng các kỹ thuật học máy để giải quyết các bài toán nhận diện. Ngoài ra, bài viết Luận văn thạc sĩ: Nhận dạng giọng nói tiếng Việt qua học sâu và mô hình ngôn ngữ sẽ giúp bạn hiểu thêm về cách thức học sâu được ứng dụng trong nhận diện giọng nói, một lĩnh vực có nhiều điểm tương đồng với nhận diện khuôn mặt. Cuối cùng, bạn có thể tham khảo Nghiên cứu ứng dụng học sâu vào dịch từ vựng mà không cần dữ liệu song ngữ, để thấy rõ hơn về tính ứng dụng rộng rãi của học sâu trong nhiều lĩnh vực khác nhau. Những liên kết này sẽ giúp bạn có cái nhìn sâu sắc hơn về các ứng dụng của học sâu trong công nghệ nhận diện và xử lý dữ liệu.