Full Đồ án tốt nghiệp: Nhận diện khuôn mặt trên Matlab - SV HUTECH

Tải full đồ án tốt nghiệp nhận diện khuôn mặt bằng Matlab. Báo cáo chi tiết, code đầy đủ, ứng dụng thuật toán AlexNet và PCA cho độ chính xác cao.

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2022

102
0
0

Phí lưu trữ

35 Point

Tóm tắt

I. Giới thiệu về Đồ án Nhận diện Khuôn mặt bằng Matlab

Đồ án nhận diện khuôn mặt bằng Matlab là một chủ đề nghiên cứu quan trọng trong lĩnh vực xử lý ảnh sốtrí tuệ nhân tạo. Công nghệ nhận diện khuôn mặt đã trở thành một trong những ứng dụng sinh trắc học phổ biến nhất hiện nay, được sử dụng rộng rãi trong các hệ thống bảo mật, điều khiển truy cập và các ứng dụng công nghiệp. Đặc biệt, Matlab cung cấp các công cụ mạnh mẽ cho phép các kỹ sư và nhà nghiên cứu phát triển các thuật toán nhận diện khuôn mặt hiệu quả. Với các thư viện hỗ trợ xử lý ảnhmachine learning, Matlab trở thành lựa chọn lý tưởng cho các đồ án tốt nghiệp. Bài viết này sẽ hướng dẫn chi tiết về cấu trúc, code và báo cáo cho đồ án nhận diện khuôn mặt bằng Matlab một cách toàn diện.

1.1. Khái niệm và tầm quan trọng của Nhận diện Khuôn mặt

Nhận diện khuôn mặt là quá trình xác định và xác thực danh tính của một người dựa trên các đặc trưng khuôn mặt duy nhất. Đây là một ứng dụng quan trọng của sinh trắc học trong bảo mật hiện đại. So với các phương pháp khác như nhận diện vân tay hay mống mắt, nhận diện khuôn mặt có ưu điểm không cần tiếp xúc trực tiếp, giảm thiểu sự xâm phạm quyền riêng tư người dùng.

1.2. Vai trò của Matlab trong Xử lý Ảnh

Matlab là một nền tảng tính toán kỹ thuật mạnh mẽ, cung cấp các hàm xử lý ảnh tích hợp sẵn, từ việc đọc ảnh, tiền xử lý cho đến trích xuất đặc trưng. Các toolbox như Image Processing ToolboxDeep Learning Toolbox giúp lập trình viên dễ dàng phát triển các thuật toán nhận diện khuôn mặt mà không cần viết code từ đầu.

II. Phương pháp và Thuật toán trong Đồ án Nhận diện Khuôn mặt

Để thực hiện đồ án nhận diện khuôn mặt bằng Matlab thành công, cần áp dụng các thuật toán tiên tiến kết hợp với kỹ thuật xử lý ảnh hiệu quả. Đồ án thường sử dụng Principal Component Analysis (PCA) hay AlexNet - một kiến trúc Convolutional Neural Network (CNN) mạnh mẽ. Các phương pháp này cho phép trích xuất đặc trưng quan trọng từ ảnh khuôn mặt, từ đó xây dựng mô hình phân loại chính xác. Quá trình thực hiện bao gồm thu thập dữ liệu, tiền xử lý ảnh, trích xuất đặc trưng, huấn luyện mô hìnhđánh giá hiệu suất. Sự kết hợp giữa các kỹ thuật này giúp tạo ra một hệ thống nhận diện khuôn mặt với độ chính xác cao, khả năng chống nhiễu tốt.

2.1. Phương pháp PCA Principal Component Analysis

PCA là một kỹ thuật giảm chiều dữ liệu hiệu quả, giúp trích xuất các thành phần chính từ tập ảnh khuôn mặt. Phương pháp này tìm các trục chính có phương sai lớn nhất, từ đó biểu diễn ảnh khuôn mặt dưới dạng vector đặc trưng. PCA được sử dụng rộng rãi vì tính đơn giản và hiệu quả trong nhận diện khuôn mặt.

2.2. Mạng Neural Tích chập CNN và AlexNet

AlexNet là một kiến trúc CNN nổi tiếng, được thiết kế để xử lý ảnh với độ chính xác cao. Trong đồ án nhận diện khuôn mặt, AlexNet giúp tự động trích xuất đặc trưng từ ảnh thô mà không cần xác định thủ công. Mạng gồm nhiều lớp convolutionalpooling, cho phép học được các biểu diễn phức tạp của khuôn mặt.

III. Cấu trúc Code và Implementation trong Matlab

Code cho đồ án nhận diện khuôn mặt bằng Matlab thường được chia thành các module chính để dễ quản lý và debug. Module đầu tiên là nạp dữ liệu ảnh từ các thư mục chứa ảnh khuôn mặt, sau đó tiến hành tiền xử lý như chuẩn hóa kích thước ảnh, điều chỉnh sáng tối. Module thứ hai xử lý trích xuất đặc trưng sử dụng PCA hoặc CNN, tính toán các vector đặc trưng. Module thứ ba là huấn luyện classifier (như SVM hoặc neural network), và module cuối cùng thực hiện kiểm tra và đánh giá độ chính xác trên tập test. Việc sử dụng function và script tách biệt giúp code dễ bảo trì và mở rộng.

3.1. Module Nạp và Tiền xử lý Dữ liệu

Module nạp dữ liệu sử dụng các hàm Matlab như imread(), imresize() để đọc và chuẩn hóa ảnh. Tiền xử lý bao gồm chuyển đổi sang ảnh xám (nếu cần), chuẩn hóa độ sáng, và loại bỏ nhiễu. Các bước này rất quan trọng để cải thiện chất lượng dữ liệu đầu vào cho các bước xử lý tiếp theo.

3.2. Module Trích xuất Đặc trưng và Huấn luyện Mô hình

Trích xuất đặc trưng sử dụng PCA hoặc deep learning để tạo vector đặc trưng. Sau đó, huấn luyện classifier sử dụng các thuật toán như Support Vector Machine (SVM) hoặc neural network để học cách phân biệt giữa các cá nhân. Việc tách module này giúp dễ dàng thay đổi thuật toán mà không ảnh hưởng đến phần còn lại của code.

IV. Báo cáo Đồ án và Kết quả Thực nghiệm

Báo cáo đồ án nhận diện khuôn mặt bằng Matlab cần trình bày một cách tổng quát nhất về lý thuyết, phương pháp, kết quả và các kết luận. Phần lý thuyết nên bao gồm các khái niệm cơ bản về xử lý ảnh, sinh trắc học và các thuật toán được sử dụng. Phần phương pháp mô tả chi tiết quy trình thực hiện, từ thu thập dữ liệu đến đánh giá kết quả. Phần kết quả trình bày các metrics đánh giá như accuracy, precision, recallF1-score. Các kết quả thường được biểu diễn bằng bảng, biểu đồ để dễ so sánh. Confusion matrix cũng là một công cụ quan trọng để hiển thị chi tiết hiệu suất của mô hình trên từng lớp. Cuối cùng, kết luận nên tóm tắt những đóng góp chính, các hạn chế của giải pháp và hướng phát triển trong tương lai.

4.1. Các Metrics Đánh giá Hiệu suất

Accuracy là tỷ lệ dự đoán đúng trên tổng số mẫu, nhưng precisionrecall cung cấp thông tin chi tiết hơn. Precision đo lường tỷ lệ dự đoán dương tính chính xác, trong khi recall đo lường tỷ lệ trường hợp dương tính được phát hiện. F1-score là trung bình điều hòa giữa precisionrecall, cung cấp một chỉ số tổng hợp.

4.2. Phân tích Kết quả và Đề xuất Cải thiện

Báo cáo cần phân tích chi tiết những trường hợp mà mô hình nhận diện sai, từ đó đề xuất các phương pháp cải thiện. Có thể cần tăng cường dữ liệu huấn luyện, áp dụng data augmentation, hoặc tối ưu hóa kiến trúc mô hình. Các hạn chế hiện tại và hướng phát triển trong tương lai nên được thảo luận rõ ràng.

28/12/2025

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

Chương 1: Giới thiệu. - Chương 2: Tổng quan giải pháp. - Chương 3: Ảnh màu trên Matlab và các lệnh xử lý màu. - Chương 4: Nhận dạng khuôn mặt dựa trên thuật toán PCA.

- Chương 5: Nhận dạng khuôn mặt thời gian thực tích hợp thuật toán AlexNet. - Chương 6: Đánh giá kết quả. 4 CHƯƠNG 2: TỔNG QUAN GIẢI PHÁP 2.1 Phần mềm Matlab trong môi trường Windows 2.1 Giới thiệu phần mềm Matlab MATLAB là một công cụ tính toán toán học. MATLAB có thể được sử dụng để tính toán, nó cũng cho phép chúng ta vẽ các biểu đồ, đồ thị theo nhiều cách khác nhau.

Giống như một chương trình phần mềm, chúng ta có thể tạo, thực thi và lưu một dãy các lệnh để máy tính có thể chạy tự động. Matlab còn là một ngôn ngư lập trình cấp cao cho mục đích tính toán kỹ thuật. Chương trình tích hợp tính toán, đồ họa và lập trình trong một môi trường để sử dụng mà tất cả các vấn đề lời giải được biểu diễn dưới dạng các ghi chú toán học. Matlab là một hệ thống tương tác mà tất cả các phần tử dữ liệu cơ bản là một mảng không yêu cầu về mặt kích thước.

Đây là một thuận lợi cho phép người sử dụng giải quyết các bài toán trong kỹ thuật, đặc biết với tín hiệu âm thanh có tần số lấy mẫu lớn nên số mẫu cần xử lý là rất lớn. Tóm lại, như là một môi trường dùng để lập trình hay tính toán, MATLAB được thiết kế để làm việc với những tập dữ liệu đặc biệt chẳng hạn như ma trận, vector, hình ảnh hay tệp âm thanh. 1: MATLAB & Simulink – MathWorks 5 Nguồn: Internet 2.2 MATLAB System Matlab gồm 5 thành phần chính là: - Development Environment: Tập hợp tất cả các công cụ và những tiện ích cho phép người dùng sử dụng các hàm và file Matlab. Phần lớn các công cụ này là giao tiếp người dùng bao gồm: Matlab Desktop và Command Window, Command History, Edit and Debugger, Workspace, trình duyệt hỗ trợ sử dụng help.

- The MATLAB Mathematical Function Library: Đây là thư viện tập hợp các giải thuật tính toán được tập hợp trong các hàm cơ bản như: sum, sin,.và số phức cho đến các hàm phức tạp như: nghịch đảo ma trận, trị riêng và các vecto riêng của ma trận, biến đổi Fourier rời rạc. - Lập trình trong môi trường Matlab: Lập trình với Matlab. Matlab là ngôn ngữ lập trình cấp cao thực thi theo các đoạn lệnh, các hàm, cấu trúc dữ liệu,. cho phép xây dựng các chương trình từ đơn giản đến phức tạp.

- Graphics: Matlab đã mở rộng các khả năng cho việc thể hiện vector và ma trận dưới dạng đồ thị cũng như ký hiệu và in ấn chúng. Matlab cung cấp các hàm nâng cao cho việc thể hiện dữ liệu 2,3 chiều, xử lý ảnh, âm thanh, chuyển động, đồ thị. Ngoài ra Matlab còn cung cấp cho người sử dụng các hàm giao tiếp giữa người dùng và ứng dụng. - The Matlab Application program Interface (API): Đây là thư viện cho phép người dùng tạo ra những chương trình bằng ngôn ngữ C hoặc Fortran tương tác với Matlab 2.2 Định nghĩa bài toán xác định khuôn mặt người Xác định khuôn mặt người (Face Detection) là một kỹ thuật máy tính để xác định các vị trí và các kích thước của các khuôn mặt người trong các ảnh bất kỳ (ảnh kỹ thuật số).

Kỹ thuật này nhận biết các đặc trưng của khuôn mặt và bỏ qua những thứ khác, như: tòa nhà, cây cối, cơ thể.3 Phương pháp xác định khuôn mặt người Có nhiều nghiên cứu tìm phương pháp xác định khuôn mặt người, từ ảnh xám đến ngày nay là ảnh màu. Chúng em sẽ trình bày một cách tổng quát nhất những hướng giải quyết chính cho bài toán, từ những hướng chính này nhiều tác giả thay đổi một số ý nhỏ bên trong để có kết quả mới. Dựa vào tính chất của các phương pháp xác định khuôn mặt người trên ảnh. Các phương pháp này được chia làm bốn hướng tiếp cận chính.

Ngoài bốn hướng này, nhiều nghiên cứu có khi liên quan đến không những một hướng tiếp cận mà có liên quan nhiều hơn một hướng chính: - Hướng tiếp cận dựa trên tri thức: Mã hóa các hiểu biết của con người về các loại khuôn mặt người thành các luật. Thông thường các luật mô tả quan hệ của các đặc trưng. - Hướng tiếp cận dựa trên đặc trưng không thay đổi: Mục tiêu các thuật toán đi tìm các đặc trưng mô tả cấu trúc khuôn mặt người mà các đặc trưng này sẽ không thay đổi khi tư thế khuôn mặt, vị trí đặt thiết bị thu hình hoặc điều kiện ánh sáng thay đổi. - Hướng tiếp cận dựa trên so khớp mẫu: Dùng các mẫu chuẩn của khuôn mặt người (các mẫu này được chọn lựa và lưu trữ) để mô tả cho khuôn mặt người hay các đặc trưng khuôn mặt (các mẫu này phải chọn làm sao cho tách biệt nhau theo tiêu chuẩn mà các tác giả định ra để so sánh).

Các mối tương quan giữa dữ liệu ảnh đưa vào và các mẫu dùng để xác định khuôn mặt người. - Hướng tiếp cận dựa trên diện mạo: Trái ngược hẳn với so khớp mẫu, các mô hình (hay các mẫu) được học từ một tập ảnh huấn luyện trước đó. Sau đó hệ thống (mô hình) sẽ xác định khuôn mặt người. Hay một số tác giả còn gọi hướng tiếp cận này là hướng tiếp cận theo phương pháp học.4 Thuật toán PCA Kohonen đã đưa ra phương pháp dùng vector riêng để nhận dạng khuôn mặt, ông dùng một mạng neural đơn giản để chứng tỏ khả năng của phương pháp này trên các ảnh đã được chuẩn hóa.

Mạng neural tính một mô tả của khuôn mặt bằng cách xấp xỉ các vector riêng của ma trận tương quan của ảnh. Các vector riêng sau này được biết đến với cái tên Eigenface. Kirby và Sirovich chứng tỏ các ảnh có các khuôn mặt có thể được mã hóa tuyến tính bằng một số lượng vừa phải các ảnh cơ sở. Tính chất này dựa trên biến đổi Karhunen-Lòeve, mà còn được gọi dưới một cái tên khác là PCA và biến đổi Hotelling.

Ý tưởng này được xem là của Pearson trình bày đầu tiên vào năm 1901 và sau đó là Hotelling vào năm 1933. Cho một tập các ảnh huấn luyện có kích thước n x m được mô tả bởi các vector có kích thước m x m, các vector cở sở cho một không gian con tối ưu được xác định thông qua lỗi bình phương trung bình khi chiếu các ảnh huấn luyện vào không gian con này. Các tác giả gọi tập các vector cơ sở tối ưu này là ảnh riêng sau đó gọi cho đơn giản là vector riêng của ma trận hiệp phương sai được tính từ các ảnh khuôn mặt đã vector hóa trong tập huấn luyện. Nếu cho 100 ảnh, mà mỗi khuôn mặt có kích thước 91x50 thì có thể chỉ dùng 50 ảnh riêng, trong khi vẫn duy trì được một khả năng giống nhau hợp lý (giữ được 95% tính chất).

Turk và Pentland áp dụng PCA để xác định và nhận dạng khuôn mặt. Tương tự, dùng PCA trên tập huấn luyện ảnh các khuôn mặt để sinh các ảnh riêng (còn gọi là eigenface) để tìm một không gian con (không gian khuôn mặt) trong không gian ảnh. Các ảnh khuôn mặt được chiếu vào không gian con này và được gom nhóm lại. Tương tự các ảnh không có khuôn mặt dùng để huấn luyện cũng được chiếu vào cùng không gian con và gom nhóm lại.

Các ảnh khi chiếu vào không gian khuôn mặt thì không bị thay đổi tính chất cơ bản, trong khi chiếu các ảnh không có khuôn mặt thì xuất hiện sự khác nhau cũng không ít. Xác định sự có mặt của một khuôn mặt trong ảnh thông qua tất cả khoảng cách giữa các vị trí trong ảnh và không gian ảnh. Khoảng cách này dùng để xem xét 8 có hay không có khuôn mặt người, kết quả khi tính toán các khoảng cách sẽ cho ta một bản đồ về khuôn mặt. Có thể xác định được từ cực tiểu địa phương của bản đồ này.

Có nhiều nghiên cứu về xác định khuôn mặt, nhận dạng và trích đặc trưng từ ý tưởng vector riêng, phân rã, và gom nhóm. Sau đó phát triển cho ảnh màu, bằng cách phân đoạn ảnh để tìm ứng để không gian tìm kiếm bớt đi.1 Nhận dạng ảnh dựa trên thuật toán PCA Khuôn mặt con người có rất nhiều nét để nhận biết, nếu như ta gặp lại một người bạn sau một thời gian dài, ta có thể nhận ra ngay người đó dù những chi tiết cụ thể trên mặt có thể thay đổi như da, mái tóc. Ta nhận ra không phải vì nhớ đôi mắt, hay mũi hay môi hay tóc lông mày người đó mà ta nhận ra vì nhớ diện mạo của người đó. Tức là trên khuôn mặt tồn tại một nét tổng thể nào đó để có thể nhận diện, thuật toán của ta bắt đầu từ ý tưởng này.

Phân tích thành phần chính (Principal Component Analysis) gọi tắt là PCA là thuật toán nhận dạng ảnh dựa trên những nét tổng thể của khuôn mặt, ta sẽ áp dụng thuật toán này để thực hiện hai công việc sau: - Thứ nhất là tìm một khuôn mặt giống với khuôn mặt cho trước - Thứ hai là xác định vị trí những khuôn mặt người trong một bức ảnh. Ban đầu ta có một tập ảnh khuôn mặt gọi là tập ảnh huấn luyện (training set). Giả sử mỗi ảnh có kích thước M×N, ta coi mỗi bức ảnh này là một vector trong không gian M*N chiều. Bây giờ mỗi khuôn mặt là một vector, ta thấy những vector này không phân bố ngẫu nhiên trong không gian ảnh mà phân bố theo một quy luật tương đối nào đó, ta có thể nói những vector này nằm trong một không gian con gọi là không gian khuôn mặt.

Từ những vector trong tập huấn luyện, ta sẽ tìm một cơ sở trực chuẩn cho không gian khuôn mặt. Những vector thuộc cơ sở này có thể coi là những vector mang những nét tổng thể đặc trưng về khuôn mặt. 9 Giả sử tập huấn luyện có P ảnh, khi đó ta sẽ có P vector: , , ,…,. Tính vector ảnh trung bình: m = m =.

Sự khác biệt giữa những khuôn mặt với ảnh trung bình là những vector: , i=1…P Ý tưởng của việc phân tích thành phần chính là tìm một tập những vector trực chuẩn sao cho những vector này mô tả tốt nhất sự phân bố những vector khuôn mặt trong không gian. Những vector được chọn sao cho: lớn nhất. Những vector và giá trị vô hướng chính là những vector riêng và trị riêng tương ứng của ma trận. là tích vô hướng giữa hai vector u, v .

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