Hệ Thống Chấm Công Bằng Nhận Diện Khuôn Mặt - Đồ Án Tốt Nghiệp Đại Học Thái Nguyên 2023

Chuyên khảo phân tích Xây dựng hệ thống chấm công bằng nhận diện khuôn mặt đồ án tốt nghiệp, đánh giá các khía cạnh quan trọng, đề xuất hướng nghiên cứu

Trường đại học

Đại Học Thái Nguyên

Người đăng

Ẩn danh

Thể loại

đồ án tốt nghiệp

2023

72
6
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

1. CHƯƠNG 1: TÔNG QUAN VỀ CƠ SỞ LÝ THUYẾT

1.1. Giới thiệu về python

1.2. Lịch sử của Python

1.3. Tính năng của Python

1.4. Python làm được những gì?

1.5. Giới thiệu Pycharm

1.6. Tổng quan về xử lý ảnh

2. CHƯƠNG 2: XÂY DỰNG HỆ THỐNG ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT

2.1. Tổng quan về bài toán

2.2. Bài toán chấm công bằng nhận diện khuôn mặt

2.3. Các phương pháp phát hiện khuôn mặt (Face Detection)

2.3.1. Hướng tiếp cận dựa trên trí thức (knowledge-based)

2.3.2. Hướng tiếp cận dựa trên các đặc trưng không đổi (feature invariant)

2.3.3. Hướng tiếp cận dựa trên phương pháp đối sánh mẫu (Template matching)

2.3.4. Hướng tiếp cận dựa trên diện mạo (appearance-based)

2.3.5. Thuật toán phân lớp Haar

2.3.5.1. FHe haarcascade_frontalface_default xml
2.3.5.2. Đặc trưng Haar Like
2.3.5.2.1. Trích xuất đặc trưng Haar
2.3.5.2.2. Mở rộng đặc trưng Haar

2.4. Bộ phân loại AdaBoost

2.4.1. Áp dụng AdaBoost cho bài toán phát hiện khuôn mặt

2.4.2. Xây dựng các bộ phân lớp mạnh

2.4.3. Xây dựng cascade của các bộ phân lớp mạnh

2.5. Hệ thống phát hiện và xác định vị trí khuôn mặt trên ảnh

3. CHƯƠNG 3: XÂY DỰNG CHƯƠNG TRÌNH

3.1. Giao diện chương trình

KẾT QUẢ VÀ ĐÁNH GIÁ

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Khám phá Đồ án Chấm công bằng Nhận diện Khuôn mặt 2023

Đồ án tốt nghiệp "Hệ Thống Chấm Công Bằng Nhận Diện Khuôn Mặt" của sinh viên Bùi Quang Huy tại Đại học Thái Nguyên năm 2023 là một công trình nghiên cứu ứng dụng tiêu biểu, giải quyết bài toán quản lý nhân sự hiện đại. Trong bối cảnh công nghệ 4.0, việc tự động hóa các quy trình thủ công như điểm danh, chấm công là một nhu cầu cấp thiết tại các doanh nghiệp và tổ chức. Hệ thống này khai thác sức mạnh của trí tuệ nhân tạo (AI)thị giác máy tính (computer vision) để tạo ra một giải pháp chấm công hiệu quả, chính xác và bảo mật. Thay vì các phương pháp truyền thống như thẻ từ hay vân tay, vốn tồn tại nhiều bất cập như quên thẻ, gian lận hoặc nguy cơ lây nhiễm bệnh, giải pháp chấm công tự động bằng khuôn mặt mang lại sự tiện lợi vượt trội. Nghiên cứu này không chỉ tập trung vào việc xây dựng một phần mềm hoàn chỉnh mà còn đi sâu vào phân tích các cơ sở lý thuyết quan trọng. Cụ thể, đồ án đã nghiên cứu và áp dụng các thuật toán nhận diện khuôn mặt tiên tiến, sử dụng ngôn ngữ lập trình Pythonthư viện OpenCV – một bộ công cụ mã nguồn mở mạnh mẽ trong lĩnh vực xử lý ảnh số. Mục tiêu chính là xây dựng một hệ thống có khả năng phát hiện, nhận diện và lưu trữ thông tin chấm công một cách chính xác, góp phần nâng cao hiệu quả quản lý nhân sự và đảm bảo tính minh bạch.

1.1. Bối cảnh và tính cấp thiết của việc chấm công tự động

Sự phát triển của khoa học công nghệ đã thúc đẩy nhu cầu tự động hóa trong mọi lĩnh vực. Các phương pháp chấm công truyền thống như ghi sổ, thẻ giấy, thẻ từ hay vân tay đã bộc lộ nhiều hạn chế. Việc chấm công thủ công tốn nhiều thời gian, công sức và dễ xảy ra sai sót. Chấm công bằng thẻ từ có thể dẫn đến tình trạng chấm công hộ, gian lận. Chấm công vân tay tuy bảo mật hơn nhưng lại tiềm ẩn nguy cơ lây lan các bệnh truyền nhiễm qua tiếp xúc, đặc biệt trong bối cảnh dịch bệnh. Những bất cập này gây khó khăn trong việc quản lý, ảnh hưởng đến tính chính xác của bảng lương và kỷ luật lao động. Do đó, việc xây dựng một hệ thống chấm công bằng nhận diện khuôn mặt là một giải pháp tối ưu. Công nghệ này đảm bảo tính chính xác cao, loại bỏ hoàn toàn khả năng gian lận và mang lại trải nghiệm không tiếp xúc, an toàn cho người dùng. Đây là xu hướng tất yếu trong quản lý nhân sự hiện đại.

1.2. Mục tiêu nghiên cứu của đồ án tốt nghiệp ICTU

Đồ án đặt ra các mục tiêu rõ ràng và mang tính ứng dụng cao. Mục tiêu cốt lõi là xây dựng thành công một phần mềm ứng dụng chấm công tự động dựa trên công nghệ nhận diện khuôn mặt. Để đạt được điều này, đề tài tập trung vào các nhiệm vụ cụ thể: tìm hiểu sâu về thư viện OpenCV và các hàm xử lý ảnh, nghiên cứu phương pháp trích chọn đặc trưng Haar Cascade để phát hiện khuôn mặt (Face Detection), và áp dụng các thuật toán phân loại để nhận dạng (Face Recognition). Phạm vi nghiên cứu của đồ án tập trung vào việc xử lý ảnh tĩnh trong các điều kiện ánh sáng thông thường, với góc chụp trực diện hoặc nghiêng nhẹ, và khuôn mặt không bị che khuất. Sản phẩm cuối cùng không chỉ là một source code nhận diện khuôn mặt hoàn chỉnh mà còn là một báo cáo đồ án tốt nghiệp chi tiết, thể hiện quá trình từ nghiên cứu lý thuyết đến triển khai thực tế, tạo ra một hệ thống có khả năng ứng dụng trong các doanh nghiệp và trường học.

II. Top 4 thách thức của Hệ thống Chấm công Nhận diện Khuôn mặt

Mặc dù công nghệ nhận diện khuôn mặt đã có những bước tiến vượt bậc, việc triển khai một hệ thống ổn định và chính xác trong thực tế vẫn đối mặt với không ít thách thức. Báo cáo đồ án tốt nghiệp của Bùi Quang Huy đã chỉ ra những khó khăn cố hữu của bài toán này. Những yếu tố này ảnh hưởng trực tiếp đến độ chính xác nhận diện và hiệu suất chung của toàn hệ thống. Thách thức lớn nhất đến từ sự đa dạng và biến thiên của dữ liệu đầu vào. Khuôn mặt con người không phải là một đối tượng tĩnh; nó thay đổi theo biểu cảm, tuổi tác, và các phụ kiện đi kèm như kính mắt hay khẩu trang. Hơn nữa, môi trường hoạt động của hệ thống cũng là một biến số quan trọng. Một hệ thống chấm công bằng nhận diện khuôn mặt phải hoạt động được trong nhiều điều kiện khác nhau, từ văn phòng đủ sáng đến nhà xưởng có ánh sáng phức tạp. Việc giải quyết triệt để các thách thức này đòi hỏi sự kết hợp giữa việc lựa chọn thuật toán nhận diện khuôn mặt phù hợp, xây dựng một cơ sở dữ liệu lưu trữ khuôn mặt chất lượng và các kỹ thuật tiền xử lý ảnh hiệu quả để chuẩn hóa dữ liệu đầu vào trước khi đưa vào mô hình phân tích.

2.1. Ảnh hưởng từ điều kiện ánh sáng và góc chụp Pose

Ánh sáng là một trong những yếu tố ảnh hưởng lớn nhất đến chất lượng ảnh và kết quả nhận diện. Ánh sáng quá mạnh (gây lóa), quá yếu (gây nhiễu), hoặc ngược sáng có thể làm mất đi các đặc trưng quan trọng trên khuôn mặt, khiến thuật toán khó nhận dạng. Tương tự, tư thế và góc chụp cũng là một thách thức lớn. Một mô hình được huấn luyện chủ yếu với ảnh chụp chính diện sẽ gặp khó khăn khi nhận diện các khuôn mặt chụp nghiêng, ngửa lên hoặc cúi xuống. Sự thay đổi về góc chụp làm biến dạng các đặc điểm như khoảng cách giữa hai mắt, hình dáng mũi, miệng, từ đó làm giảm độ chính xác nhận diện của hệ thống. Để khắc phục, hệ thống cần một bộ dữ liệu huấn luyện đa dạng, bao gồm hình ảnh ở nhiều điều kiện ánh sáng và góc độ khác nhau, hoặc áp dụng các kỹ thuật xử lý ảnh số để chuẩn hóa và tăng cường chất lượng ảnh đầu vào.

2.2. Vấn đề che khuất và sự thay đổi biểu cảm khuôn mặt

Sự che khuất (occlusion) là một vấn đề phổ biến trong thực tế. Khuôn mặt có thể bị che một phần bởi tóc, tay, kính mắt, khẩu trang, hoặc các vật thể khác. Điều này làm cho các thuật toán nhận diện khuôn mặt truyền thống, vốn dựa trên toàn bộ đặc điểm, gặp nhiều khó khăn. Một thách thức khác là sự thay đổi trong biểu cảm. Cùng một người nhưng khuôn mặt khi cười, buồn, ngạc nhiên hay sợ hãi sẽ có những thay đổi đáng kể về hình thái, làm ảnh hưởng đến các đặc trưng mà mô hình học máy (machine learning) đã học. Để hệ thống hoạt động hiệu quả, thuật toán cần đủ mạnh để tập trung vào các đặc trưng bất biến trên khuôn mặt hoặc được huấn luyện với dữ liệu bao gồm cả các trường hợp bị che khuất và có biểu cảm đa dạng.

III. Phương pháp nhận diện khuôn mặt cốt lõi Thuật toán Haar

Để giải quyết bài toán phát hiện khuôn mặt trong đồ án tốt nghiệp, phương pháp tiếp cận dựa trên diện mạo (appearance-based) đã được lựa chọn, trong đó nổi bật là thuật toán phân lớp Haar (Haar Cascade Classifier). Đây là một thuật toán kinh điển và hiệu quả do Paul Viola và Michael Jones đề xuất, có khả năng phát hiện đối tượng trong thời gian thực. Nguyên lý của thuật toán này dựa trên việc sử dụng các đặc trưng Haar-like, là những mẫu hình chữ nhật đơn giản dùng để nhận biết sự khác biệt về cường độ sáng giữa các vùng trên khuôn mặt. Ví dụ, vùng mắt thường tối hơn vùng má, hay vùng sống mũi thường sáng hơn hai bên. Thuật toán sẽ trượt một cửa sổ phát hiện trên toàn bộ ảnh ở nhiều tỷ lệ khác nhau. Tại mỗi vị trí, nó tính toán hàng ngàn đặc trưng Haar-like để xác định xem vùng đó có chứa khuôn mặt hay không. Để tăng tốc độ tính toán, phương pháp này sử dụng kỹ thuật "ảnh tích phân" (Integral Image), cho phép tính tổng giá trị pixel trong một vùng chữ nhật bất kỳ một cách cực kỳ nhanh chóng. Sự kết hợp giữa các đặc trưng đơn giản và kỹ thuật tính toán hiệu quả đã làm cho thuật toán Haar Cascade trở thành lựa chọn phổ biến cho các ứng dụng thị giác máy tính thời gian thực.

3.1. Nguyên lý trích xuất đặc trưng Haar like feature

Đặc trưng Haar-like là trái tim của thuật toán. Chúng là các mẫu hình chữ nhật gồm các vùng đen và trắng. Giá trị của một đặc trưng được tính bằng cách lấy tổng cường độ pixel trong vùng trắng trừ đi tổng cường độ pixel trong vùng đen. Có nhiều loại đặc trưng khác nhau như đặc trưng cạnh (edge features), đặc trưng đường (line features) và đặc trưng bốn hình chữ nhật. Các đặc trưng này được thiết kế để nắm bắt các cấu trúc cơ bản của khuôn mặt người. Ví dụ, một đặc trưng đường có thể phát hiện vùng sống mũi sáng hơn hai bên mắt, hoặc một đặc trưng cạnh có thể phát hiện ranh giới giữa trán và tóc. Trong hệ thống chấm công bằng nhận diện khuôn mặt, hàng chục nghìn đặc trưng như vậy được tạo ra với các kích thước và vị trí khác nhau để quét toàn bộ ảnh, đảm bảo không bỏ sót khuôn mặt ở bất kỳ tỷ lệ nào.

3.2. Vai trò của bộ phân loại AdaBoost trong việc tăng độ chính xác

Với một số lượng khổng lồ các đặc trưng Haar-like, việc lựa chọn ra những đặc trưng tốt nhất là vô cùng quan trọng. Thuật toán AdaBoost (Adaptive Boosting) được sử dụng cho nhiệm vụ này. AdaBoost là một thuật toán học máy (machine learning) giúp kết hợp nhiều bộ phân loại "yếu" (weak classifiers) - mỗi bộ chỉ dựa trên một đặc trưng Haar-like duy nhất - để tạo thành một bộ phân loại "mạnh" (strong classifier) có độ chính xác nhận diện cao. Trong quá trình huấn luyện, AdaBoost sẽ tập trung vào những mẫu ảnh bị phân loại sai, giúp mô hình học được các trường hợp khó. Bằng cách chọn lọc và gán trọng số cho các đặc trưng hiệu quả nhất, AdaBoost tạo ra một bộ phân loại mạnh mẽ và tối ưu, có khả năng phân biệt chính xác giữa vùng có khuôn mặt và không có khuôn mặt.

3.3. Cấu trúc Cascade giúp tối ưu hóa tốc độ xử lý thời gian thực

Để đạt được tốc độ xử lý thời gian thực, Viola và Jones đã đề xuất một cấu trúc phân tầng thông minh gọi là "Cascade of Classifiers". Thay vì áp dụng toàn bộ hàng nghìn đặc trưng lên mọi vùng ảnh, cấu trúc này bao gồm nhiều giai đoạn (stage). Mỗi giai đoạn là một bộ phân loại mạnh được huấn luyện bởi AdaBoost. Một vùng ảnh ứng viên phải vượt qua tất cả các giai đoạn để được kết luận là khuôn mặt. Các giai đoạn đầu tiên rất đơn giản, chỉ sử dụng một vài đặc trưng để nhanh chóng loại bỏ các vùng rõ ràng không phải là khuôn mặt. Các giai đoạn sau phức tạp hơn, sử dụng nhiều đặc trưng hơn để kiểm tra kỹ lưỡng các vùng tiềm năng. Nhờ cấu trúc này, hệ thống không tốn tài nguyên tính toán cho phần lớn các vùng nền, mà chỉ tập trung vào những vùng có khả năng chứa khuôn mặt, giúp mô hình hệ thống đạt được tốc độ xử lý ấn tượng.

IV. Hướng dẫn xây dựng Hệ thống Chấm công với Python và OpenCV

Việc hiện thực hóa Hệ thống Chấm Công Bằng Nhận Diện Khuôn Mặt được thực hiện chủ yếu bằng ngôn ngữ lập trình Python, kết hợp với các thư viện mạnh mẽ như OpenCV, NumPy, và Pandas. Python được lựa chọn vì cú pháp đơn giản, cộng đồng hỗ trợ lớn và hệ sinh thái thư viện phong phú cho trí tuệ nhân tạo (AI)học máy. Thư viện OpenCV đóng vai trò trung tâm, cung cấp các hàm dựng sẵn để thu nhận hình ảnh từ camera IP hoặc webcam, thực hiện các thao tác xử lý ảnh số, và quan trọng nhất là triển khai các thuật toán phát hiện và nhận diện khuôn mặt như Haar Cascade và LBPH (Local Binary Patterns Histograms). Quy trình xây dựng hệ thống bao gồm ba giai đoạn chính: thu thập và xử lý dữ liệu, huấn luyện mô hình nhận diện, và xây dựng ứng dụng với giao diện hoàn chỉnh. Bên cạnh đó, các thiết bị phần cứng như máy tính cấu hình tốt và camera chất lượng cao cũng là yếu tố quan trọng để đảm bảo hệ thống hoạt động ổn định. Một số triển khai nâng cao còn có thể sử dụng các máy tính nhúng như Raspberry Pi để tạo ra một thiết bị chấm công nhỏ gọn và độc lập.

4.1. Quy trình xây dựng cơ sở dữ liệu khuôn mặt nhân viên

Bước đầu tiên và quan trọng nhất là tạo ra một cơ sở dữ liệu lưu trữ khuôn mặt (CSDL). Chương trình cung cấp chức năng cho phép người quản trị nhập ID và tên của nhân viên, sau đó sử dụng camera để chụp một loạt ảnh (khoảng 20-30 ảnh) của người đó ở các góc độ và biểu cảm khác nhau. Các ảnh này sẽ được tự động chuyển thành ảnh xám và lưu lại. Chất lượng của CSDL này ảnh hưởng trực tiếp đến độ chính xác nhận diện. Một bộ dữ liệu đa dạng và rõ nét sẽ giúp mô hình học được các đặc trưng một cách toàn diện hơn, từ đó cải thiện khả năng nhận dạng trong các điều kiện thực tế. Dữ liệu này là nền tảng để huấn luyện mô hình ở bước tiếp theo.

4.2. Huấn luyện mô hình nhận diện với thư viện OpenCV

Sau khi có CSDL, bước tiếp theo là huấn luyện mô hình nhận dạng. Đồ án này sử dụng thuật toán LBPH (Local Binary Patterns Histograms) có sẵn trong thư viện OpenCV để thực hiện nhiệm vụ này. LBPH là một thuật toán trích xuất đặc trưng kết cấu hiệu quả, hoạt động tốt ngay cả trong các điều kiện ánh sáng thay đổi. Chương trình sẽ đọc toàn bộ ảnh trong CSDL, trích xuất đặc trưng LBP từ mỗi khuôn mặt và liên kết chúng với ID tương ứng. Kết quả của quá trình huấn luyện là một file mô hình (thường là file XML hoặc YML) chứa toàn bộ thông tin đã học. File này sẽ được tải lên khi hệ thống chạy chức năng nhận diện, giúp so sánh khuôn mặt được phát hiện với dữ liệu đã huấn luyện để xác định danh tính.

4.3. Thiết kế giao diện người dùng và xuất báo cáo chấm công

Để hệ thống thân thiện và dễ sử dụng, việc thiết kế một giao diện người dùng (UI/UX) trực quan là rất cần thiết. Đồ án đã xây dựng một giao diện đơn giản cho phép thực hiện các chức năng chính như: thêm người dùng mới, chụp ảnh, huấn luyện mô hình và bắt đầu chấm công. Khi chế độ chấm công được kích hoạt, camera sẽ liên tục quét và phát hiện khuôn mặt. Khi một khuôn mặt được nhận dạng, tên và ID của người đó sẽ hiển thị trên màn hình, đồng thời thông tin về thời gian chấm công sẽ được tự động ghi vào một file CSV. File này hoạt động như một bảng chấm công điện tử, dễ dàng được mở bằng Excel để thực hiện việc tổng hợp, tính lương và quản lý nhân sự một cách hiệu quả.

V. Đánh giá kết quả Đồ án Chấm công bằng Nhận diện Khuôn mặt

Kết quả thực nghiệm của đồ án tốt nghiệp cho thấy hệ thống có khả năng hoạt động ổn định và mang lại hiệu quả cao. Qua thử nghiệm trên tập dữ liệu ảnh tĩnh gồm 30 ảnh với nhiều kích thước khác nhau, hệ thống đạt độ chính xác nhận diện khoảng 92.6%. Đây là một con số ấn tượng, chứng tỏ sự hiệu quả của việc kết hợp thuật toán Haar Cascade để phát hiện và thuật toán LBPH để nhận dạng. Hệ thống có thể phát hiện và nhận diện chính xác các khuôn mặt trong điều kiện ánh sáng tốt, góc chụp gần trực diện và không bị che khuất. Giao diện chương trình được thiết kế rõ ràng, cho phép người dùng dễ dàng thực hiện các thao tác từ đăng ký, huấn luyện cho đến chấm công. Kết quả chấm công được lưu trữ tự động vào file CSV, cung cấp một phương pháp quản lý nhân sự hiện đại, minh bạch và tiết kiệm thời gian. Nghiên cứu này không chỉ là một bài tập học thuật mà còn mở ra tiềm năng ứng dụng thực tiễn lớn, là một giải pháp khả thi cho các doanh nghiệp và tổ chức giáo dục tại Việt Nam.

5.1. Phân tích độ chính xác nhận diện trong môi trường lý tưởng

Trong môi trường được kiểm soát (ánh sáng tốt, không ngược sáng, khoảng cách tới camera phù hợp, khuôn mặt không bị che), hệ thống cho thấy hiệu suất rất cao. Theo báo cáo, tỷ lệ phát hiện và nhận dạng thành công đạt trên 90%. Điều này chứng minh rằng mô hình hệ thống và các thuật toán được lựa chọn là hoàn toàn phù hợp với mục tiêu đề ra. Việc sử dụng thư viện OpenCV giúp tối ưu hóa các tác vụ xử lý ảnh số, trong khi thuật toán LBPH thể hiện sự mạnh mẽ trong việc trích xuất các đặc trưng bất biến với sự thay đổi ánh sáng nhẹ. Kết quả này khẳng định tính khả thi của dự án và là nền tảng vững chắc để tiếp tục phát triển và cải tiến hệ thống cho các môi trường phức tạp hơn.

5.2. Ứng dụng thực tiễn trong quản lý nhân sự và điểm danh

Mục tiêu cuối cùng của đồ án là tạo ra một sản phẩm có giá trị ứng dụng. Hệ thống chấm công bằng nhận diện khuôn mặt đáp ứng tốt nhu cầu này. Nó có thể được triển khai tại các văn phòng, nhà máy, trường học để tự động hóa quy trình điểm danh sinh viên hoặc chấm công nhân viên. Việc loại bỏ các phương pháp thủ công không chỉ giúp tiết kiệm chi phí nhân lực mà còn tăng cường tính an ninh và bảo mật. Dữ liệu chấm công được ghi nhận khách quan, chính xác, loại bỏ hoàn toàn các hành vi gian lận. Hệ thống này góp phần xây dựng một môi trường làm việc và học tập chuyên nghiệp, hiện đại, nâng cao ý thức và kỷ luật của mỗi cá nhân.

VI. Tương lai của Hệ thống Chấm công Hạn chế và hướng phát triển

Mặc dù đã đạt được những kết quả đáng khích lệ, đồ án tốt nghiệp về hệ thống chấm công bằng nhận diện khuôn mặt vẫn còn một số hạn chế cần được cải thiện để có thể thương mại hóa rộng rãi. Hạn chế lớn nhất là sự phụ thuộc vào điều kiện môi trường. Hiệu suất của hệ thống giảm đáng kể khi gặp phải ánh sáng yếu, ngược sáng, hoặc khi khuôn mặt bị che khuất một phần. Bên cạnh đó, hệ thống hiện tại chủ yếu xử lý ảnh 2D, do đó vẫn có nguy cơ bị qua mặt bởi các phương pháp giả mạo tinh vi như sử dụng ảnh hoặc video có độ phân giải cao. Ngoài ra, việc xử lý đồng thời nhiều khuôn mặt trong một khung hình với tốc độ cao cũng là một thách thức về mặt hiệu năng, đòi hỏi phần cứng máy tính có cấu hình mạnh. Nhận thức rõ những hạn chế này là cơ sở để đề ra các hướng phát triển trong tương lai, nhằm xây dựng một hệ thống hoàn thiện, an toàn và mạnh mẽ hơn. Các hướng đi này tập trung vào việc áp dụng các công nghệ học máy (machine learning)trí tuệ nhân tạo (AI) tiên tiến hơn.

6.1. Hạn chế của thuật toán hiện tại và giải pháp khắc phục

Các thuật toán như Haar Cascade và LBPH, dù hiệu quả, vẫn là các phương pháp cổ điển. Chúng có thể gặp khó khăn với các biến thể phức tạp về góc chụp và biểu cảm. Hướng khắc phục là chuyển sang sử dụng các mô hình học sâu (Deep Learning) như Mạng nơ-ron tích chập (CNN). Các mô hình như MTCNN, FaceNet, hay ArcFace có khả năng học các đặc trưng phức tạp và sâu hơn từ dữ liệu, giúp cải thiện đáng kể độ chính xác nhận diện ngay cả trong các điều kiện khó khăn. Việc xây dựng một bộ dữ liệu huấn luyện lớn hơn và đa dạng hơn cũng là một yếu tố then chốt để nâng cao hiệu suất của bất kỳ thuật toán nào.

6.2. Tiềm năng phát triển công nghệ nhận diện 3D và chống giả mạo

Để giải quyết vấn đề an ninh và bảo mật, hướng phát triển tất yếu là tích hợp công nghệ nhận diện 3D và các cơ chế chống giả mạo (anti-spoofing). Thay vì chỉ phân tích ảnh 2D, hệ thống có thể sử dụng các cảm biến chiều sâu (như camera hồng ngoại hoặc structured light) để tái tạo lại cấu trúc 3D của khuôn mặt. Điều này giúp loại bỏ gần như hoàn toàn khả năng bị đánh lừa bằng hình ảnh hoặc video. Các thuật toán chống giả mạo cũng có thể được tích hợp, phân tích các dấu hiệu của sự sống như chớp mắt, chuyển động nhỏ của cơ mặt để đảm bảo rằng đối tượng trước camera là người thật. Đây là những cải tiến quan trọng để đưa hệ thống chấm công bằng nhận diện khuôn mặt lên một tầm cao mới về độ tin cậy và bảo mật.

09/07/2025
Xây dựng hệ thống chấm công bằng nhận diện khuôn mặt đồ án tốt nghiệp đại học

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

Chương 1: Tông quan về cơ sở lý thuyết. Chương 2: Xây dựng hệ thống nhận diện khuôn mặt. Chương 3: Xây dựng chương trinh. Mục đích của đề tài xây dựng một dự án phần mềm ứng dụng nhận dạng khuôn mặt - Tìm hiệu về thư viện OpenC$v.

Nghiên cứu phương pháp trích chọn đặc trưng Haar Cascade. Tìm hiểu các phương pháp xác định khuôn mặt (Face Detection). „ Đôi tượng và phạm vi nghiên cứu đề tài we Đối tượng: + -_ Các phương pháp, thuật toán phục vụ cho việc phát hiện và nhận dạng khuôn mặt người trên ảnh. - Bộ thư viện xử lý ảnh OpenC$v.

Pham vi nghiên cứu: + - Tập trung tìm hiểu phát hiện khuôn mat (Face Recognition) chứ không chú trọng tìm hiểu phát hiện khuôn mặt (Face Detection). -_ Việc xử lý ảnh, nhận dạng khuôn mặt thỏa mãn các điều kiện: * Ánh sáng bình thường, ngược sáng, ánh sáng đèn điện (Với bộ cở sở dữ liệu tự thu thập). 11 * Góc ảnh: Trực diện (frontal) hoặc góc nghiêng. * Không bị che khuât (no occulusion).

* Anh co chất lượng cao (high quality). 12 CHUONG 1: TONG QUAN VE CO SO LY THUYET 1. 1 Giới thiệu về python Python là một ngôn ngữ lập trình thông dịch, đa năng và dễ học, được sử dụng trong nhiều lĩnh vực khác nhau. Python được thiết kế để đọc đễ hiểu và có cú pháp øọn gàng, øiúp cho người mới học lập trình dễ dàng tiếp cận và phát triển các ứng dụng.

Với nhiều tính năng mạnh mẽ như hỗ trợ đa nền tảng, độ tin cậy cao, và bộ thư viện phong phú, Python là một trong những ngôn ngữ lập trình phô biến nhất trên thế giới. Nó được sử dụng rộng rãi trong các ứng dụng web, khoa học dữ liệu, trí tuệ nhân tạo, phát triển same, đỗ họa, hệ thống và mạng, và nhiều ứng dụng khác. Các đặc điểm chính của Python bao gồm: Cú pháp đơn giản: Python sử dụng cú pháp đơn giản và dễ đọc, với các từ khóa và cấu trúc ngôn ngữ dễ hiểu, giúp cho việc viết mã nguồn dé dang hon so voi các ngôn ngữ lập trinh khác. Hỗ trợ đa nền tảng: Python có thê chạy trên nhiều nền tảng khác nhau bao gồm Windows, Linux và MacOS, và là một ngôn ngữ lập trình có tính đi động cao.

Kiểu đữ liệu động: Python là một ngôn ngữ lập trình có kiểu dữ liệu động, có nghĩa là các biến không cần phải được khai báo trước khi sử dụng. Kiểu đữ liệu được xác định tự động dựa trên giá trị được gán vào biến. Hỗ trợ các thư viện va framework manh mé: Python có một cộng đồng lớn với nhiều thư viện và ffamework phố biến để giúp cho việc phát triển ứng dụng dé đàng hơn. Các thư viện phô biến như NumPy, Pandas, Matplotlib, TensorFlow, Django, Flask va nhiéu hon nia.

Hỗ trợ lập trình hướng đối tượng: Python hỗ trợ lập trình hướng đối tượng, cho phép các lập trình viên xây dựng các đối tượng và lớp đối tượng riêng để tạo ra các ứng dụng phức tạp hơn. Tốc độ xử lý cao: Python có tốc độ xử lý tương đối nhanh và được tối ưu hóa cho các tác vụ tính toán khoa học và máy học. Dễ học và dễ sử dụng: Python là một ngôn ngữ lập trình dễ học và dễ sử dụng cho người mới bắt đâu. 13 Ôthon Lịch sử của Python Python được Guido van Rossum phát triển vào cuối những năm tám mươi và đầu những năm chín mươi tại Viện nghiên cửu quốc gia về toán học và khoa học máy tính ở Hà Lan.

Python có nguồn gốc từ nhiều ngôn ngữ khác, bao gồm ABC, Modula-3, C, C+t, Algol-68, SmallTalk va Ủnix shell và các ngôn ngữ scrIpt khác. Python có bản quyền giống như Perl, mã nguồn Python hiện có sẵn theo giấy phép GNU (GPL). Python hiện được duy trì bởi một nhóm phát triển cốt lõi tại viện nghiên cứu quốc gia về toán học và khoa học máy tính ở Hà Lan Guido van Rossum vẫn giữ một vai trò quan trọng trone việc chỉ đạo tiến trình của nó. Các tính năng của Python -_ Dễ học: Python có ít từ khóa, cấu trúc đơn giản và cú pháp được định nghĩa rõ ràng.

Điều này cho phép người mới học tiếp cận ngôn ngữ một cách nhanh chóng. - Dé doc: Ma Python được định nghĩa rõ ràng hơn và có thể nhìn thấy bằng mắt. -_ Dễ bảo trì: Mã nguồn của Python khá dễ bảo trì. -_ Một thư viện tiêu chuẩn rộng: Phần lớn thư viện của Python rất đễ đính kèm và đa nền tảng tương thích trén UNIX, Windows va Macintosh.

- Chế độ tương tác: Python có hỗ trợ cho chế độ tương tác cho phép kiểm tra tương tác và debug. - Portable: Python có thể chạy trên nhiều nền tảng phần cứng khác nhau và có cùng giao điện trên tất cả các nền tảng. - Có thể mở rộng: Tôi có thể thêm các module cấp thấp vào trình thông địch Python. Các module này cho phép các lập trình viên thêm hoặc tùy chỉnh các công cụ của mình để hiệu quả hơn.

- Co sé dir ligu: Python cung cấp phương thức giao tiếp cho tất cả các cơ sở đữ liệu. 14 -_ Lập trình GUI: Python hỗ trợ các ứng dụng GUI có thể được tạo và chuyển sang nhiều cuộc gọi hệ thông, thư viện và hệ thống cửa số, như Windows MEC, Macintosh và hệ thống X Window cua Unix. - Kha nang mé rong: Python cung cap cau tric va hé trợ tốt hơn cho các chương trình lớn hơn so với kịch bản lệnh shellL Ngoài các tính năng được đề cập ở trên, Python còn có một danh sách lớn các tính năng khác, một số tính năng được liệt kê bên dưới: - - Nó hễ trợ các phương pháp lập trình thủ t và có cấu trúc cũng như OOP. - Nó có thể được sử dụng như một ngôn ngữ kịch bản hoặc có thể được biên dịch thành mã byte để xây dựng các ứng dụng lớn.

- Nó cung cấp các kiểu đữ liệu động ở mức rất cao và hỗ trợ kiểm tra kiểu động. -_ Nó hễ trợ thu gom rac ty động. - Nocé thé dé dang tích hợp voi C, C++, COM, ActiveX, CORBA va Java. Python làm được những gì? - Web Development: Mét sé Framework nhu Flask, DJango, FastAPI.

giúp xây dựng các ứng dụng Web, Web APIs nhanh và dễ dàng. -_ Desktop GUI: Tôi có thể xây dựng các ưng dụng Desktop với Pythong bằng cách sử dung PyQt5, Tkinter, Kivy. - Tri tuệ nhân tạo & Máy học (AI & ML): Đây có lẽ là một trong những ứng dụng khiến cho Python trở nên rất “hot” như vậy. Do có nhiều thư viện hỗ trợ nên Python có thê nói là một ngôn ngữ lập trình rất mạnh mẽ trong ngảnh Trí tuệ nhân tạo và Máy học.

- Software Testing/Web Automation: Automation Testing dang ngay cảng trở nên phố biến hon Python có thư viện Selenium dang dugc su dung rat nhiều trong lĩnh vực Automation Testing và lẫy dữ liệu trên các trang web. - Xử lý hình ảnh, video: Công nghệ xử lý ảnh hiện nay đang ngày cảng phát triển với sự hỗ trợ của nhiều thư viện khác nhau. Tiêu biểu nhất phải kê đến các thư viện như OpenCV, và thư viện này cũng hỗ trợ Python rất mạnh.2 Giới thiệu Pycharm PyCharm là một nền tảng hybrid được JetBrains phát triển như một IDE cho Python. Nó thường duoc str dung dé phat triển ứng dụng Python.

Một số tô chức kỳ lân như Twitter, Facebook, Amazon và Pinterest cũng sử dụng PyCharm làm IDE Python của họ. PyCharm hỗ trợ chạy trên Windows, Linux hoặc Mac OS. Ngoài ra, nó chứa cac module va cac package giúp các lập trình viên phát triển phần mềm bang Python tiết kiệm thời gian và công sức. Hơn nữa, nó cũng có thế được tùy chỉnh theo yêu cầu của các nhà phát triển.

Các tính năng của Pycharm: - Trinh sửa code thông minh. - Hỗ trợ cho nhiều công nghệ web khác. - H6 tro cho cdc web framework Python phé biến. - H6tro cho Thư viện Khoa hoc Python.

Uu va nhuge diém cia viée sir dung PyCharm: - Uudiém: + Cai dat PyCharm rat dé dang. + PyCharm la mét IDE dé str dung. + Có rất nhiều plugin hữu ích và phím tắt hữu ích trong PyCharm. + PyCharm tich hop các tính năng cua thư viện và IDE như tự động hoàn thành vả tô màu.

+ Nó cho phép xem mã nguồn trong một cú nhấp chuột. + Tiết kiệm thời gian phát triển phần mềm + Tính năng đánh dấu lỗi trong code giúp nâng cao hơn nữa quá trình phat trién. + Cộng đồng các nhà phát triển Python vô cùng lớn và tôi có thể giải quyết các thắc mắc/ nghỉ ngờ của mình một cách đễ dàng. -_ Nhược điểm: + PyCharm không miễn phí và phiên bản Professional của nó khá đắt.

+ Tinh nang ty dién (auto-complete) sé khéng tét cho các lập trình viên newbie + Nó có thế gây ra sự cố trong khi sửa chữa các công cụ như venv.3 Tổng quan về xử lý ảnh 1.1 Xứ lý ảnh là gì ? Con người thu nhận thông tin qua các g1ác quan, trong đó thị siác đóng vai trò quan trọng nhất. Những năm trở lại đây với sự phát triển của phần cứng máy tính, xử lý ảnh và đồ họa đã phát triển một cách mạnh mẽ và có nhiều ứng dụng trong cuộc sông. Xử lý ảnh và đồ họa đóng vai trò quan trọng trone tương tác người máy. Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra kết quả mong muốn.

Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh “tốt hơn” hoặc một kết luận. Tiên xử > > Phan „| Hiểu3 điển = „| Nhận dang x > ảnh lý ảnh đoạn anh va m6 tá và nội suy Cơ sở tri thức Hinh 1. 1 Quá trình xử lý ảnh Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như là đặc trưng cường độ sáng hay một dấu hiệu nảo đó tại một vị trí nào đó của đối tượng trong không gian va nó có thể xem như một hàm n biến P(cl, c2,. Do do, anh trong xử lý ảnh có thể xem như ảnh n chiều.

Sơ đồ tổng quát của một hệ thống xử lý ảnh: Anh [aa] xo ny anit KT oe “Tét hon” Hinh 1. 2 Các bước cơ bản trong một hệ thống xử lý ảnh So dé trong hinh 1.1 bao gdm các phần sau: Phan thu nhan anh (Image Acquisition) Ảnh có thể nhận qua camera màu hoặc đen trắng. Thường thì ảnh nhận qua camera là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1⁄25, mỗi ảnh 25 dòng), cũng có loại camera đã số hóa (như loại CCD-Change Coupled Device) là loại photodiot tạo cường độ sáng tại mỗi điểm ảnh.

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

Tài liệu "Hệ Thống Chấm Công Bằng Nhận Diện Khuôn Mặt" là một đồ án tốt nghiệp chi tiết, trình bày về việc xây dựng và triển khai một giải pháp công nghệ hiện đại cho việc quản lý nhân sự. Độc giả sẽ nắm được toàn bộ quy trình, từ các thuật toán xử lý ảnh cốt lõi, kiến trúc hệ thống, cho đến ứng dụng thực tiễn giúp tự động hóa việc điểm danh, tăng cường tính chính xác và bảo mật so với các phương pháp truyền thống.

Đây là một tài liệu khởi đầu tuyệt vời để hiểu về ứng dụng thực tế của công nghệ nhận dạng. Để khám phá sâu hơn những kỹ thuật nền tảng và các ứng dụng liên quan, bạn có thể tìm hiểu thêm các công trình nghiên cứu chuyên sâu. Chẳng hạn, trước khi nhận dạng, bước đầu tiên là phải phát hiện được khuôn mặt trong ảnh; tài liệu Khoá luận tốt nghiệp ứng dụng phép toán hình thái cho bài toán phát hiện khuôn mặt dựa vào màu da sẽ giúp bạn đào sâu vào một trong những phương pháp cơ bản nhưng hiệu quả cho tác vụ quan trọng này. Xa hơn nữa, để đạt được độ chính xác cao trong các hệ thống phức tạp, những kiến trúc mạng tiên tiến thường được sử dụng. Nghiên cứu trong Luận án tiến sĩ nghiên cứu phát triển một số kỹ thuật theo bám đối tượng dựa trên kiến trúc mạng siamese sẽ cung cấp một góc nhìn học thuật chuyên sâu về các kỹ thuật hiện đại, giúp hệ thống không chỉ nhận dạng mà còn có khả năng theo dõi đối tượng hiệu quả. Cuối cùng, để thấy được tiềm năng rộng lớn của công nghệ xử lý ảnh, bạn có thể mở rộng kiến thức sang lĩnh vực robot qua tài liệu Luận văn thạc sĩ kỹ thuật điện tử ứng dụng xử lý ảnh nhận dạng vật thể theo màu sắc và hình dạng cho robot tay máy, nơi các nguyên lý tương tự được áp dụng để giúp robot "nhìn" và tương tác với thế giới xung quanh. Mỗi tài liệu là một cánh cửa để bạn đi sâu hơn vào lĩnh vực đầy tiềm năng này.