LỜI CẢM ƠNEm xin gửi lời cảm ơn chân thành nhất đến các thầy cô đã dành thời gian và công sức để đánh giá và hướng dẫn trong quá trình thực hiện đồ án xây dựng hệ thống điểm danh bằng kh
Trang 1TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN CƠ SỞ
Tên đề tài: Xây dựng hệ thống điểm danh bằng
khuôn mặt
Giảng viên hướng dẫn: ĐẶNG NHƯ PHÚ
Sinh viên thực hiện: Vũ Văn Hoàng
MSSV: 2100007612
Khoá: 21
Ngành/ chuyên ngành: KHOA HỌC DỮ LIỆU
TP HCM, tháng 8 năm 2023
Trang 2LỜI CẢM ƠN
Em xin gửi lời cảm ơn chân thành nhất đến các thầy cô đã dành thời gian và công sức để đánh giá và hướng dẫn trong quá trình thực hiện đồ án xây dựng hệ thống điểm danh bằng khuôn mặt của em
Đồ án này mang ý nghĩa quan trọng với việc ứng dụng công nghệ nhận diện khuôn mặt để tạo ra một giải pháp điểm danh và quản lý chấm công hiệu quả Qua quá trình nghiên cứu và thiết kế, em đã được khám phá và áp dụng các phương pháp, thuật toán trong lĩnh vực xử lý ảnh, học máy và mạng nơ-ron để xây dựng một hệ thống chính xác và tiện lợi
Em xin bày tỏ lòng biết ơn sâu sắc đến Thầy Đặng Như Phú đã tận tâm hướng dẫn
và hỗ trợ em trong suốt quá trình thực hiện đồ án này
Xin chân thành cảm ơn!
2
Trang 3LỜI MỞ ĐẦU
Trong thời đại số hóa hiện nay, công nghệ nhận diện khuôn mặt đã phát triển vượt bậc
và mang lại rất nhiều tiềm năng ứng dụng Trong bối cảnh cuộc sống và công việc ngày càng phức tạp, nhu cầu điểm danh và quản lý chấm công hiệu quả trở thành một yêu cầu cấp thiết cho nhiều tổ chức và doanh nghiệp Đồ án của em tập trung vào xây dựng một hệ thống điểm danh bằng khuôn mặt nhằm tạo ra một giải pháp thông minh, chính xác và tiện lợi cho việc quản lý nhân sự
Mục tiêu của đồ án này là phát triển một hệ thống có khả năng nhận diện khuôn mặt vàxác thực danh tính của người dùng Hệ thống sẽ được thiết kế để hoạt động trên các thiết bị di động, máy tính cá nhân hoặc các thiết bị IoT, mang đến sự linh hoạt và tiện ích trong việc điểm danh và quản lý chấm công
Quá trình nghiên cứu và phát triển hệ thống điểm danh bằng khuôn mặt đã đòi hỏi em tiếp cận nhiều lĩnh vực kiến thức như xử lý ảnh, học máy, mạng nơ-ron, và các thuật toán nhận diện khuôn mặt
Lời mở đầu này sẽ cung cấp một cái nhìn tổng quan về đồ án, mục tiêu và phạm vi củanghiên cứu Từ đây, em hy vọng rằng quý vị sẽ đồng hành cùngemi trong quá trình thẩm định, đánh giá và cung cấp phản hồi để đưa ra các cải tiến cho hệ thống điểm danh bằng khuôn mặt
Xin chân thành cảm ơn sự quan tâm và hỗ trợ của thầy cô trong quá trình thực hiện đồ
án của em!
Trang 4TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
TRUNG TÂM KHẢO THÍ HỌC KỲ … … NĂM HỌC …… - ….… KỲ THI KẾT THÚC HỌC PHẦN
PHIẾU CHẤM THI TIỂU LUẬN/ĐỒ ÁN
Môn thi:Đồ án cơ sở khoa học dữ liệu Lớp học phần: 21DTH2C
Nhóm sinh viên thực hiện :
1.Vũ Văn Hoàng Tham gia đóng góp:
2 Tham gia đóng góp:
3 .Tham gia đóng góp:
4 .Tham gia đóng góp:
5 Tham gia đóng góp:
6 Tham gia đóng góp:
7 Tham gia đóng góp:
8 Tham gia đóng góp:
Ngày thi: Phòng thi:
Đề tài tiểu luận/báo cáo của sinh viên : Xây dựng hệ thống điểm danh bằng khuôn mặt
Phần đánh giá của giảng viên (căn cứ trên thang rubrics của môn học):
Tiêu chí (theo
Điểm tối đa
Điểm đạt được
Cấu trúc của
Nội dung
- Các nội
dung thành
phần
6
- Lập luận
2
- Kết luận
0.5 Trình bày
0.5
Giảng viên chấm thi
(ký, ghi rõ họ tên)
Đặng Như Phú
4 BM-ChT-11
Trang 5MỤC LỤC
LỜI CẢM ƠN 2
LỜI MỞ ĐẦU 3
MỤC LỤC 5
DANH MỤC HÌNH 6
CHƯƠNG 1: Cơ sở lý thuyết 8
1 Cơ sở lý thuyết thành lập hệ thống điểm danh khuôn mặt 8
1.1 Nhận diện khuôn mặt 8
1.2 Xử lí ảnh và tiền xử lí 9
1.3 Cơ sở dữ liệu và quản lí danh sách 9
1.4 Bảo mật và quyền riêng tư 10
CHƯƠNG 2: Phân tích yêu cầu 11
2.Những yêu cầu phải giải quyết khi xây dựng mô hình 11
CHƯƠNG 3: Xây dựng mô hình 12
3 Xây dựng mô hình 12
3.1 Mô hình tổng quát 12
3.2 Các bước xây dựng hệ thống điểm danh bằng khuôn mặt 12
3.2.1Thu thập dữ liệu 12
3.2.2Tiền xử lý dữ liệu 12
3.2.3Trích xuất đặc trưng 13
3.2.4Huấn luyện và đánh giá 13
3.2.5Xây dựng hệ thống điểm danh 13
3.3 Các nét đặc trưng trong mô hình 13
3.2.1 Phát hiện khuôn mặt 13
3.3.2 Mạng nơ-ron tích chập (Convolutional Neural Network) 13
3.3.3 Phân tích sâu vào các thành phần cấu tạo nên CNN 14
CHƯƠNG 4: Thực nghiệm mô hình 17
4 Thực nghiệm 17
4.1 Lấy dữ liệu 17
4.2 Công cụ sử dụng 18
4.3 Ứng dụng 18
CHƯƠNG 5: Kết luận và hướng phát triển 20
5.1 Kết quả đạt được 20
Trang 65.2 Hạn chế của đề tài 205.3 Hướng phát triển 21TÀI LIỆU THAM KHẢO 22
6
Trang 7DANH MỤC HÌNH
Hình 1-1: Hình minh họa 8
Hình 1-2: Ví dụ về xử lí hình ảnh 9
Hình 1-3:Hình minh họa 9
Hình 1-4: Hình minh họa 10
Hình 3-1: Sơ đồ mô hình tổng quát 12
Hình 3-2: Mô hình CNN 14
Hình 3-3: Minh họa tích chập 15
Hình 3-4: Minh họa Pooling 15
Hình 3-5 : Minh họa ReLU 16
Hình 3-6 : Minh họa Fully Connected Layers 16
Hình 4-1: Minh họa dữ liệu đã thu thập 17
Hình 4-2 : Tiền xử lý và xác định khuôn mặt bằng giải thuật Haar Cascade 18
Hình 4-3: Hình minh họa hệ thống điểm danh 19
Trang 8CHƯƠNG 1
Cơ sở lý thuyết
1.Cơ sở lý thuyết thành lập hệ thống điểm danh khuôn mặt
1.1 Nhận diện khuôn mặt
Cơ sở lý thuyết về nhận diện khuôn mặt giúp hiểu về các phương pháp và thuật toán
để nhận dạng và xác định khuôn mặt của con người Các phương pháp này bao gồm kỹthuật trích xuất đặc trưng (ví dụ: LBPH, Eigenfaces, Fisherfaces) và các mô hình học máy (ví dụ: máy vector hỗ trợ, mạng nơ-ron sâu)
Hình 1-1: Hình minh họa
8
Trang 91.2.Xử lí ảnh và tiền xử lí
Cơ sở lý thuyết về xử lý ảnh và tiền xử lý cho phép tìm hiểu về các phương pháp và công cụ để làm sạch, cắt ra và chuẩn bị ảnh khuôn mặt cho quá trình nhận diện Điều này bao gồm việc chỉnh sửa độ sáng, cân bằng histogram, cắt ảnh, và loại bỏ nhiễu
Hình 1-2: Ví dụ về xử lí hình ảnh
1.3.Cơ sở dữ liệu và quản lí danh sách
Cơ sở lý thuyết về cơ sở dữ liệu và quản lý danh sách là cần thiết để hiểu về cách tổ chức và lưu trữ thông tin liên quan đến danh sách các khuôn mặt đã được xác định trước Điều này có thể bao gồm cách lưu trữ và truy xuất thông tin từ cơ sở dữ liệu, cũng như các phương pháp tìm kiếm hiệu quả
Hình 1-3:Hình minh họa
Trang 101.4.Bảo mật và quyền riêng tư
Cơ sở lý thuyết về bảo mật và quyền riêng tư rất quan trọng khi xây dựng hệ thống điểm danh bằng khuôn mặt Việc hiểu về các nguyên tắc bảo mật dữ liệu, quyền riêng
tư của người dùng và các biện pháp bảo vệ thông tin cá nhân là điều cần thiết để đảm bảo an toàn và tuân thủ quy định pháp luật
Hình 1-4: Hình minh họa
10
Trang 11CHƯƠNG 2 Phân tích yêu cầu
2.Những yêu cầu phải giải quyết khi xây dựng mô hình
2.1 Nhận diện khuôn mặt
Hệ thống cần có khả năng nhận diện và xác định khuôn mặt của người dùng để thực hiện quá trình điểm danh Điều này đòi hỏi sử dụng các thuật toán và phương pháp nhận diện khuôn mặt chính xác và tin cậy
2.2 Xác thực danh tính
Hệ thống cần có khả năng xác thực danh tính của người dùng dựa trên khuôn mặt đã được nhận diện Điều này đảm bảo rằng chỉ người dùng chính xác mới có thể điểm danh và ghi nhận
2.5 Bảo mật và quyền riêng tư
Hệ thống cần tuân thủ các nguyên tắc bảo mật và đảm bảo quyền riêng tư của người dùng Dữ liệu khuôn mặt và thông tin liên quan phải được bảo vệ an toàn và chỉ sử dụng cho mục đích điểm danh và chấm công
2.6 Khả năng mở rộng
Hệ thống cần có khả năng mở rộng để có thể chứa đựng thông tin của nhiều người dùng và hỗ trợ cho môi trường điểm danh có quy mô lớn hơn
Trang 12CHƯƠNG 3 Xây dựng mô hình
3 Xây dựng mô hình
3.1 Mô hình tổng quát
Hình 3-1: Sơ đồ mô hình tổng quát
Trong quá trình huấn luyện mô hình, em đã thu thập tập dữ liệu thô và áp dụng các phương pháp tiền xử lý cũng như tăng cường ảnh để chuẩn bị dữ liệu Sau đó, em sử dụng mô hình học sâu để trích xuất đặc trưng và nhận dạng Cuối cùng, mô hình được lưu trữ với các điều chỉnh tối ưu để phục vụ cho việc xây dựng ứng dụng Web
3.2 Các bước xây dựng hệ thống điểm danh bằng khuôn mặt
3.2.1 Thu thập dữ liệu
Em đã thu thập mẫu huấn luyện từ hình ảnh được cung cấp bởi mọi người Để phân biệt giữa các khuôn mặt trong các lớp khác nhau, em mã hóa chúng thành các vector đặc trưng Các vector đặc trưng này sau đó sẽ được lưu trữ trong cơ sở dữ liệu khuôn mặt
3.2.2 Tiền xử lý dữ liệu
Các hình ảnh thu thập được sẽ được tiền xử lý để chuẩn hóa và loại bỏ nhiễu Các phương pháp như cắt ảnh, cân bằng histogram, và làm mờ có thể được áp dụng để cải thiện chất lượng dữ liệu
12
Trang 133.2.3 Trích xuất đặc trưng
Em sử dụng một mô hình học sâu như Convolutional Neural Network (CNN) để trích xuất các đặc trưng quan trọng từ khuôn mặt trong hình ảnh
3.2.4 Huấn luyện và đánh giá
Mô hình sẽ được huấn luyện trên tập dữ liệu đã chuẩn bị và sau đó được đánh giá bằngcách sử dụng các phương pháp đo hiệu suất như độ chính xác (accuracy), độ nhạy (recall), và độ đặc trưng (precision)
3.2.5 Xây dựng hệ thống điểm danh
Cuối cùng, em tích hợp mô hình đã huấn luyện vào hệ thống điểm danh, cho phép nhận dạng và ghi nhận thông tin về việc điểm danh của các cá nhân dựa trên khuôn mặt của họ
3.3 Các nét đặc trưng trong mô hình
3.3.1 Phát hiện khuôn mặt
Em đã sử dụng Phương pháp Haar Cascade để phát hiện khuôn mặt trong quá trình xâydựng Được đề xuất bởi Paul Viola và Michael Jones (2001), phương pháp này là một thuật toán phát hiện đối tượng bằng học máy, dựa trên khái niệm về các tính năng đặc trưng
Sau khi đã phát hiện được khuôn mặt, em tiếp tục đưa ảnh qua mạng nơ ron tích chập CNN để trích xuất đặc trưng và nhận diện khuôn mặt
3.3.2 Mạng nơ-ron tích chập (Convolutional Neural Network)
Là một mô hình Deep Learning tiên tiến đã được đề xuất bởi Fukushima vào năm
1980 và sau đó cải tiến bởi LeCun, Bottou, Bengio và Haffner vào năm 1998.CNN giúp chúng ta xây dựng các hệ thống thông minh với độ chính xác cao như hiện nay.Quá trình hoạt động của mô hình học sâu CNN bao gồm các giai đoạn train và test Ảnh đầu vào sẽ được đi qua loạt các lớp tích chập với bộ lọc (filters/kernals), sau đó qua lớp pooling Tiếp theo, thông tin sẽ được truyền qua các lớp kết nối đầy đủ (fully connected layers) và áp dụng chức năng softmax để phân loại đối tượng với giá trị xác suất từ 0 đến 1
Mạng nơ-ron tích chập (CNN) được hình thành từ các lớp convolution (tích chập), pooling (để chung), rectified linear units (ReLU - tinh chỉnh các đơn vị tuyến tính) và fully connected layers (các lớp được kết nối đầy đủ) Mô hình này giúp tạo ra thông tintrừu tượng hơn cho các tầng tiếp theo
Trang 14Hình 3-2: Mô hình CNN
3.3.3 Phân tích sâu vào các thành phần cấu tạo nên CNN
-Convolution
Lớp tích chập được sử dụng để trích xuất các đặc trưng từ một hình ảnh Quá trình này
có thể được mô tả như sau:
Để tính toán sự khớp của một feature với một mảnh hình ảnh, ta nhân từng điểm ảnh
Tóm lại, lớp tích chập trong CNNs có vai trò quan trọng trong việc trích xuất các đặc trưng từ hình ảnh thông qua quá trình tích chập và tạo ra bản đồ khớp để đại diện cho sự xuất hiện của các feature trong hình ảnh.
14
Trang 15Hình 3-3: Minh họa tích chập
-Pooling
✦Là một phương pháp để thu nhỏ hình ảnh trong khi vẫn giữ lại các thông tin quan trọng Quá trình này chỉ sử dụng kiến thức toán của lớp hai và được thực hiện bằng cách duyệt một ô vuông cửa sổ nhỏ trên hình ảnh và lấy giá trị lớn nhất từ cửa sổ đó ở mỗi bước
✦Kết quả sau khi áp dụng pooling là hình ảnh có số điểm ảnh giảm đi khoảng một phần tư so với ban đầu Nhờ giữ lại giá trị lớn nhất từ mỗi cửa sổ, quá trình này bảo toàn tính khớp của các đặc trưng trong cửa sổ
✦Một layer pooling thực hiện pooling trên một hình ảnh hoặc một nhóm hình ảnh Kếtquả đầu ra sẽ có cùng số lượng hình ảnh nhưng mỗi hình ảnh sẽ có ít điểm ảnh hơn Ví
dụ, việc giảm kích thước một ảnh 8 megapixel xuống còn 2 megapixel sẽ giúp cho việc xử lý trở nên dễ dàng hơn
Tóm lại, pooling là phương pháp thu nhỏ hình ảnh bằng cách lấy giá trị lớn nhất từ cửa sổ và giúp giữ lại tính khớp của các đặc trưng quan trọng trong hình ảnh.
Hình 3-4: Minh họa Pooling
-Rectified Linear Units (ReLU)
ReLU là một hàm kích hoạt được sử dụng trong CNNs Cách hoạt động của ReLU nhưsau: mỗi giá trị âm sẽ được thay đổi thành 0 Điều này giúp mạng CNNs giữ được tính toán chính xác bằng cách ngăn các giá trị đã học được bị ảnh hưởng bởi giá trị gần 0 hoặc vô cực
Trang 16Kết quả đầu ra của một lớp ReLU có kích thước giống với đầu vào, nhưng tất cả các giá trị âm sẽ bị loại bỏ.
Hình 3-5 : Minh họa ReLU
-Fully Connected Layers
Fully Connected Layers trong mạng neural lấy các hình ảnh đã được lọc ở cấp cao và chuyển chúng thành phiếu bầu Đây là một khối quan trọng trong mạng neural truyền thống Tuy nhiên, để đưa ảnh từ các layer trước vào mạng này, chúng phải được biến đổi thành vector bằng cách làm phẳng ảnh, thay vì giữ nguyên dạng mảng nhiều chiều như trước Tại layer cuối cùng, sử dụng hàm softmax để phân loại đối tượng dựa trên vector đặc trưng đã được tính toán từ các layer trước đó
Fully Connected Layers có thể được xếp chồng lên nhau giống với các layer khác vì đầu ra của chúng (danh sách phiếu bầu) có cấu trúc tương tự với đầu vào (danh sách giá trị) Mỗi layer mới được thêm vào sẽ cho phép mạng neural học được các kết hợp phức tạp hơn của các đặc trưng và giúp nâng cao khả năng ra quyết định của mạng
Hình 3-6 : Minh họa Fully Connected Layers
16
Trang 17Bộ dữ liệu ORL bao gồm 400 ảnh của 40 người, mỗi người có 10 bức ảnh riêng biệt.
Để xây dựng ứng dụng, Em đã thu thập dữ liệu từ 8 bạn Các ảnh được chụp tại các thời điểm khác nhau, với các biểu cảm khuôn mặt và góc độ ánh sáng khác nhau Mỗi bạn đã được chụp 10 tấm ảnh ở các góc độ và ánh sáng khác nhau
Dữ liệu sau đó được tiền xử lý và áp dụng giải thuật Haar Cascade để nhận diện khuônmặt Quá trình này được minh họa trong hình 4-2
Nhằm làm giàu bộ dữ liệu, nhóm đã sử dụng 5 phương pháp tăng cường ảnh như sau:
✦Chuyển dịch ngang và dọc (Horizontal and Vertical Shift Augmentation)
✦Lật ngang và lật dọc (Horizontal and Vertical Flip Augmentation)
✦Xoay ngẫu nhiên (Random Rotation Augmentation)
✦Điều chỉnh độ sáng ngẫu nhiên (Random Brightness Augmentation)
✦Phóng to hoặc thu nhỏ ngẫu nhiên (Random Zoom Augmentation)
Hình 4-1: Minh họa dữ liệu đã thu thập
Trang 18Hình 4-2 : Tiền xử lý và xác định khuôn mặt bằng giải thuật Haar Cascade
4.2 Công cụ sử dụng
Chúng em sử dụng một số thư viện và công cụ để xây dựng ứng dụng điểm danh bằng khuôn mặt trực quan hóa kết quả Các thư viện và công cụ chính bao gồm:
✦Keras library được sử dụng cho Deep learning với CNN
✦TensorFlow back-end được sử dụng để hỗ trợ việc triển khai các mô hình
✦OpenCV được sử dụng cho tiền xử lý ảnh và video
✦Haarcascade được sử dụng để nhận dạng khuôn mặt
Ngoài ra, chúng em sử dụng ngôn ngữ lập trình Python và các ngôn ngữ HTML, CSS, JavaScript, Bootstrap để phát triển ứng dụng Dữ liệu của chúng em được quản lý bằngSQLite
Hệ thống sử dụng hình ảnh từ camera để nhận dạng các khuôn mặt có trong ảnh Trước khi tiến hành nhận diện, hình ảnh đầu vào trải qua quá trình tiền xử lý để tăng chất lượng hình ảnh và chuẩn hóa kích thước dữ liệu Sau đó, hệ thống trích xuất các đặc trưng khuôn mặt và thực hiện quá trình nhận diện dựa trên dữ liệu đã được huấn luyện
Sau khi xác định thông tin điểm danh từ việc nhận diện khuôn mặt, hệ thống sẽ xuất
ra kết quả cho biết sinh viên có mặt hay không có mặt trong một buổi học cụ thể và trong toàn bộ khóa học
18
Trang 19Hình 4-3: Hình minh họa hệ thống điểm danh