Đồ án tốt nghiệp: Thiết kế hệ thống điểm danh bằng nhận diện khuôn mặt

Tham khảo đồ án tốt nghiệp thiết kế hệ thống điểm danh bằng nhận diện khuôn mặt. Báo cáo đầy đủ, chi tiết về cơ sở lý thuyết, cách xây dựng và kết quả.

Người đăng

Ẩn danh

Thể loại

Đồ Án Tốt Nghiệp

2020

93
0
0

Phí lưu trữ

35 Point

Tóm tắt

I. Tổng quan về hệ thống điểm danh bằng nhận diện khuôn mặt

Hệ thống điểm danh bằng nhận diện khuôn mặt là một giải pháp công nghệ tiên tiến, kết hợp công nghệ nhận dạng khuôn mặt với các hệ thống quản lý điểm danh hiện đại. Công nghệ này được phát triển dựa trên nền tảng Raspberry Pi 4, sử dụng thuật toán LBP (Local Binary Pattern Histogram) để nhận diện và xác thực danh tính của người dùng. Hệ thống có khả năng xử lý hình ảnh thời gian thực, chuyển đổi dữ liệu điểm danh và lưu trữ tự động trên Google Sheets. Ứng dụng này đặc biệt hữu ích cho các trường học, cơ quan và doanh nghiệp cần một giải pháp điểm danh tự động, an toàn và hiệu quả. Việc sử dụng công nghệ nhận diện khuôn mặt giúp loại bỏ các phương pháp điểm danh thủ công, giảm thời gian và tăng độ chính xác.

1.1. Khái niệm nhận diện khuôn mặt

Nhận diện khuôn mặt là quá trình sử dụng trí tuệ nhân tạo để xác định và xác thực danh tính của một người thông qua các đặc trưng của khuôn mặt. Công nghệ này hoạt động bằng cách capture ảnh, phát hiện vùng mặt, trích xuất đặc trưng Haar-Like, sau đó so sánh với dữ liệu huấn luyện để xác định danh tính.

1.2. Ứng dụng thực tế của hệ thống

Hệ thống điểm danh nhận diện khuôn mặt có thể ứng dụng rộng rãi trong giáo dục, bảo mật, chấm công và quản lý. Nó mang lại hiệu quả cao, giảm chi phí nhân công, tăng tính minh bạch và khó giả mạo. Đặc biệt phù hợp cho các lớp học có quy mô từ 20-30 học sinh.

II. Cơ sở lý thuyết và công nghệ sử dụng

Hệ thống điểm danh nhận diện khuôn mặt được xây dựng trên nền tảng các thuật toán xử lý hình ảnh tiên tiến. Chúng tôi sử dụng phương pháp Haar-Like kết hợp AdaBoost để phát hiện khuôn mặt từ ảnh video, sau đó áp dụng thuật toán LBP để trích xuất đặc trưng và thực hiện nhận diện. Ngôn ngữ Python được lựa chọn để lập trình logic của hệ thống, kết hợp với thư viện OpenCV mạnh mẽ cho xử lý ảnh. Raspberry Pi 4 Model B đóng vai trò là bộ xử lý trung tâm, tiêu thụ ít điện năng nhưng đủ sức mạnh để xử lý các tác vụ phức tạp. Dữ liệu điểm danh được tự động gửi lên Google Sheets, tạo ra một hệ thống lưu trữ dữ liệu đám mây an toàn và dễ quản lý.

2.1. Thuật toán Haar Like và AdaBoost

Haar-Like Feature là các đặc trưng hình chữ nhật được sử dụng để phát hiện khuôn mặt. Kết hợp với thuật toán AdaBoost, nó tạo thành bộ phân loại mạnh từ các bộ phân loại yếu. Cascade of Classifier giúp tăng tốc độ xử lý và độ chính xác của phát hiện khuôn mặt.

2.2. Thuật toán LBP Local Binary Pattern Histogram

Thuật toán LBP trích xuất các đặc trưng cục bộ từ hình ảnh bằng cách so sánh từng pixel với các pixel lân cận. Phương pháp này nhanh chóng, hiệu quả và ít nhạy cảm với điều kiện ánh sáng. Histogram được trích xuất từ ảnh LBP để tạo vector đặc trưng dùng cho nhận diện.

III. Thiết kế hệ thống phần cứng và phần mềm

Thiết kế hệ thống điểm danh nhận diện khuôn mặt bao gồm hai phần chính: phần cứngphần mềm. Phần cứng sử dụng Raspberry Pi 4 Model B làm bộ xử lý, Webcam Logitech HD C270 để capture ảnh, màn hình LCD để hiển thị kết quả điểm danh, và các module giao tiếp I2C. Phần mềm được viết bằng Python, sử dụng OpenCV cho xử lý ảnh và Thonny Python IDE làm công cụ phát triển. Hệ thống được cấu hình để tự động nhận diện khuôn mặt, so sánh với cơ sở dữ liệu, và lưu trữ dữ liệu lên Google Sheets một cách tự động. Giao diện người dùng được thiết kế đơn giản, dễ sử dụng trên màn hình LCD 16x2 hoặc thiết bị ngoại vi khác.

3.1. Thiết kế phần cứng

Phần cứng hệ thống bao gồm Raspberry Pi 4 Model B (bộ xử lý trung tâm), Webcam Logitech (sensor hình ảnh), LCD 16x2 (hiển thị kết quả), module I2C LCD driver (giao diện), Adapter 5V/3A (nguồn điện), và cáp USB. Các thiết bị này được kết nối qua GPIO, USB, và I2C để tạo thành một hệ thống hoàn chỉnh, compact và hiệu quả.

3.2. Thiết kế phần mềm

Phần mềm được phát triển theo quy trình tuần tự: capture ảnh → phát hiện khuôn mặt → trích xuất đặc trưng LBP → so sánh với CSDL → hiển thị kết quả → gửi dữ liệu lên Google Sheets. Mã nguồn được tối ưu để chạy ổn định trên Raspberry Pi, với khả năng xử lý frame video ở tốc độ thời gian thực.

IV. Kết quả thực nghiệm và đánh giá hệ thống

Kết quả thực nghiệm của hệ thống cho thấy độ chính xác nhận diện cao, đạt khoảng 95-98% khi điều kiện ánh sáng tốt. Thời gian xử lý mỗi lần điểm danh khoảng 1-2 giây, đáp ứng nhu cầu của một lớp học 25 sinh viên. Dữ liệu điểm danh được lưu trữ chính xác trên Google Sheets với đầy đủ thông tin: tên sinh viên, giờ điểm danh, và ngày tháng. Hệ thống hoạt động ổn định trong thời gian dài, với lỗi nhận diện tối thiểu. Màn hình LCD hiển thị kết quả một cách rõ ràng và dễ hiểu, giúp người dùng biết được trạng thái điểm danh ngay lập tức. Tuy nhiên, hệ thống vẫn có những hạn chế khi ánh sáng yếu hoặc khuôn mặt bị che khuất.

4.1. Kết quả mô hình thực hiện

Mô hình thực hiện được xây dựng và kiểm thử thành công trên Raspberry Pi 4. Hệ thống có thể nhận diện liên tục từ stream webcam, hiển thị tên người được nhận diện trên LCD, và ghi lại dữ liệu vào Google Sheets tự động. Hiệu suất của mô hình đạt yêu cầu ban đầu, phù hợp cho ứng dụng thực tế tại trường học.

4.2. Đánh giá hiệu năng và khả năng mở rộng

Hệ thống đạt hiệu năng tốt với CPU usage dưới 40% và RAM dưới 50% trên Raspberry Pi 4. Khả năng mở rộng được xem xét tích cực, có thể thêm nhiều camera, tích hợp hệ thống nhân diện sinh trắc học khác, hoặc kết nối hệ thống quản lý giáo dục toàn trường.

28/12/2025

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

Chương 1: Giới thiệu Trình bày tổng quan về đề tài, sơ bộ về các đối tượng và phạm vi nghiên cứu, phương pháp nghiên cứu, mục tiêu và giới hạn của đề tài. Chương 2: Cơ sở lý thuyết Trình bày nội dung chính của quyển báo cáo, nêu lên được các cơ sở lý thuyết, giới thiệu về thiết kế hệ thống, các thiệt bị cần cho hệ thống. Chương 3: Thiết kế hệ thống Sẽ trình bày cách thiết kế để làm một hệ thống nhận diện khuôn mặt. Chương 4: Kết quả và đánh giá Đánh giá lại kết quả của hệ thống dựa trên những mục tiêu đã đề ra, cũng như chức năng để đưa đến khả năng vận hành tốt nhất của hệ thống.

Chương 5: Kết luận và hướng phát triển. Kết luận và định hướng phát triển đề tài về sau. Khoa đào tạo Chất Lượng Cao 3 Đồ án tốt nghiệp CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 2.1 KỸ THUẬT PHÁT HIỆN KHUÔN MẶT QUA ẢNH 2.1 Phát hiện khuôn mặt dựa vào Haar-Like và AdaBoost 2.1 Tổng quan Có rất nhiều phương pháp để giải quyết bài toán xác định khuôn mặt người trên ảnh 2D dựa trên các hướng tiếp cận khác nhau. Phương pháp Haar-like – Adaboost (viết tắt HA) của hai tác giả Paul Viola và Michael J.Jones là phương pháp xác định mặt người dựa theo hướng tiếp cận trên diện mạo.

Hướng tiếp cận trên diện mạo tức là hệ thống nhận dạng khuôn mặt sẽ được học các mẫu của khuôn mặt từ một tập ảnh mẫu. Sau khi quá trình học hay quá trình huấn luyện này (training) thực hiện xong, hệ thống sẽ rút ra được những tham số để phục vụ cho quá trình nhận dạng.Vì vậy tiếp cận trên diện mạo còn được biết đến với tên gọi tiếp cận theo phương pháp học máy. Bài báo cáo tập trung chủ yếu vào quá trình nhận dạng (sau khi đã thực hiện quá trình học). Về tổng quan, phương pháp HA được xây dựng dựa trên sự kết hợp, lắp ghép của 4 thành phần, đó là:  Các đặc trưng Haar-like: các đặc trưng được đặt vào các vùng ảnh để tính toán các giá trị của đặc trưng, từ những giá trị đặc trưng này đưa vào bộ phân loại Adaboost ta sẽ xác định được ảnh có khuôn mặt hay không.

 Ảnh tích hợp (Integral Image): thực ra đây là một công cụ giúp việc tính toán các giá trị đặc trưng Haar-like nhanh hơn.  Adaboost (Adaptive Boost): bộ phân loại (bộ lọc) hoạt động dựa trên nguyên tắc kết hợp các bộ phân loại yếu để tạo lên bộ phân loại Khoa đào tạo Chất Lượng Cao 4 Đồ án tốt nghiệp mạnh. Adaboost sử dụng giá trị đặc trưng Haar-like để phân loại ảnh là mặt hay không phải mặt.  Cascade of Classifiers: bộ phân loại tầng với mỗi tâng là một bộ phân loại Adaboost, có tác dụng tăng tốc độ phân loại.

Như vậy bài toán xác định mặt người trong ảnh cũng chính là bài toán phân loại ảnh thành hai lớp mặt hoặc không phải mặt.2 Tiền xử lý Một lưu ý nhỏ là phương pháp Haar-Like thực hiện trên ảnh xám (gray image). Mỗi điểm ảnh (pixel) sẽ có giá trị mức xám từ 0 đến 255 (không gian màu 8 bit). Như vậy phương pháp HA sẽ không khai thác những đặc điểm về màu sắc khuôn mặt để nhận dạng song vẫn rất hiệu quả. Ảnh màu sẽ được chuyển về ảnh xám để nhận dạng, việc chuyển đổi này khá đơn giản, thực hiện bằng một hàm chuyển đổi và sử dụng chỉ với một câu lệnh trong Opencv nên báo cáo chưa đề cập tới.

Sau khi chuyển thành ảnh xám, ảnh lại tiếp tục được chuyển thành “ảnh tích hợp” (sẽ trình bày ở phần sau) và trong bước đầu tiên của quá trình nhận dạng, các đặc trưng Haar-like sẽ làm việc trực tiếp trên ảnh tích hợp.2 Đặc trưng Haar 2.1 Đối tượng nhận dạng. Trên ảnh, vùng khuôn mặt là tập hợp các điểm ảnh có nhưng mối quan hệ khác biệt so với các vùng ảnh khác, những mối quan hệ này tạo lên các đặc trưng riêng của khuôn mặt. Tất cả khuôn mặt người đều có chung những đặc điểm sau khi đã chuyển qua ảnh xám, ví dụ như:  Vùng hai mắt sẽ tối hơn vùng má và vùng trán, tức mức xám của vùng này cao hơn vượt trội so với hai vùng còn lại.  Vùng giữa sống mũi cũng tối hơn vùng hai bên mũi.

 … Và còn rất nhiều những đặc điểm khác của khuôn mặt và các đặc trưng Haar like dựa vào các đặc điểm này để nhận dạng. Về tổng quát, các đặc trưng Haar like không chỉ được sử dụng để nhận dạng khuôn mặt mà có thể dùng để nhận dạng bất kì một đối tượng nào trên ảnh (thân người, tay, chân, ô tô, đồ vật,…. Bởi vì cũng giống như khuôn mặt, mỗi đối tượng Khoa đào tạo Chất Lượng Cao 5 Đồ án tốt nghiệp có những đặc điểm riêng biệt đặc trưng bởi các vùng điểm ảnh, công việc của đặc trưng Haar-like là tính toán các giá trị tương quan giữa các vùng ảnh đó. Đây chỉ là bước ban đầu về cách áp dụng đặc trưng để phân loại cửa sổ con, chi tiết cách phân loại của bộ Adaboost và Cascade of Classifiers sẽ trình bày ở mục sau.2 Đặc trưng Haar-like Các đặc trưng Haar-Like là những hình chữ nhật được phân thành các vùng khác nhau như hình: Hình 2.1: Các vùng hình chữ nhật khác nhau của đặc trưng Haar-Like Đặc trưng do Viola và Jones công bố gồm 4 đặc trưng cơ bản để xác định khuôn mặt người.

Mỗi đặc trưng Haar-Like là sự kết hợp của hai hay ba hình chữ nhật trắng hay đen như trong hình sau: Hình 2.2: Bốn đặc trưng cơ bản của Haar-Like Khoa đào tạo Chất Lượng Cao 6 Đồ án tốt nghiệp Để sử dụng các đặc trưng này vào việc xác định khuôn mặt người, 4 đặc trưng Haar-Like cơ bản được mở rộng ra và được chia làm 3 tập đặc trưng như sau: 1.Đặc trưng cạnh (edge feature) 2.Đặc trưng đường (line feature) 3.Đặc trưng xung quanh tâm (center-surround features) Dùng các đặc trưng trên, ta có thể tính được các giá trị của đặc trưng Haar- Like là sự chênh lệch giữa tổng của các pixel của vùng đen và vùng trắng như trong công thức sau: = ổ ù đ á ứ á ủ − ổ ù á á ứ á ủ (1) 2.3 Cách áp dụng đặc trưng Haar-Like để phát hiện khuôn mặt Để phát hiện khuôn mặt, hệ thống sẽ cho một cửa sổ con (sub-window) có kích thước cố định quét lên toàn bộ ảnh đầu vào. Như vậy sẽ có rất nhiều ảnh con ứng với từng cửa sổ con, các đặc trưng Haar-like sẽ được đặc lên các cửa sổ con này để từ đó tính ra giá trị của đặc trưng. Sau đó các giá trị này được bộ phân loại xác nhận xem khung hình đó có phải khuôn mặt hay không. Hình dưới là một ví dụ: khung màu đỏ là cửa sổ con, 3 đặc trưng Haar-like với kích thước và vị trí đặt như trong hình vẽ.

Khoa đào tạo Chất Lượng Cao 7 Đồ án tốt nghiệp Ứng với mỗi một đặc trưng như trên, một bộ phân lớp yếu (weak classifier) hk(x) được định nghĩa như sau: 1 ế" # $ < # & ℎ = (2) 0 ế" (ượ+ ,ạ. Trong đó: X : cửa sổ con cần xét. fk: giá trị của đặc trưng Haar-like. pk: hệ số quyết định chiều của bất phương trình.

Ta hiểu công thức trên đơn giản như sau: khi giá trị của đặc trưng Haar-like k:fk tại cửa sổ con x vượt qua một ngưỡng & thì bộ phân lớp hk(x) sẽ kết luận cửa sổ con x là khuôn mặt (hk(x)=1), còn fk không vượt qua ngưỡng đó thì không là khuôn mặt. Ngưỡng & là giá trị đã rút ra sau qua trình huấn luyện bộ phân lớp, sẽ trình bày sau. Như trong phần đối tượng nhận dạng, ta thấy đặc trưng Haar-like k có kích thước và vị trí đặt trong cửa sổ con x trên hình sẽ có giá trị fk rất lớn (vì mức xám ở vùng mắt lớn hơn rất nhiều vùng má ). Giá trị fk này lớn hơn nhiều với hầu hết các giá trị fk khác khi ta di chuyển cửa sổ con x sang các vị trí khác (quét trên toàn ảnh đầu vào), và với nhưỡng & phù hợp, kết quả bộ phân lớp hk(x) sẽ cho cửa sổ con ở vị trí như trên là khuôn mặt còn ở vị trí khác thì không.

Khoa đào tạo Chất Lượng Cao 8 Đồ án tốt nghiệp Đương nhiên sẽ có những vị trí khác trên ảnh đầu vào vô tình cho ra fk vượt ngưỡng và bộ phân lớp yếu hk(x) kết luận đấy là khuôn mặt, nhưng ta không chỉ dùng một đặc trưng Haar-like mà dùng rất nhiều đặc trưng ở những vị trí và kích thước khác nhau trong cửa sổ con làm giảm đi sự trùng hợp ngẫu nhiên.4 Số lượng đặc trưng Haar-like. Việc xác định một cửa sổ con có phải là mặt hay không phải sử dụng rất nhiều đặc trưng Haar-like. Ứng với mỗi một kích thước, kiểu đặc trưng và vị trí đặt trong cửa sổ con cho ta một đặc trưng ứng với một bộ phân lớp yếu x. Vì vậy tập hợp đầy đủ số lượng các đặc trưng trong một cửa sổ con là rất lớn.

Theo như sự tính toán của hai tác giả, với một cửa sổ con ở kích thước cơ bản 24×24 pixel số lượng đầy đủ các đặc trưng Haar-like là hơn 160000.Có hai vấn đề đặt ra ở đây: Thứ nhất là giá trị của mỗi một đặc trưng Haar-like được tính bằng tổng giá trị các điểm ảnh vùng đen trừ đi tổng các điểm ảnh vùng trắng, như vậy là với số lượng lớn các đặc trưng sẽ tạo ra một khối lượng tính toán khổng lồ. Điều này là không phù hợp để đáp ứng thời gian thực vì thời gian xử lý rất lâu. Thứ hai là trong số hàng trăm nghìn đặc trưng đó thì không phải đặc trưng nào cũng có ích cho công việc phân loại. Nếu chúng ta không tìm cách loại bổ những đặc trưng không có ích để tập trung vào những đặc trưng có hiệu quả cao thì cũng sẽ mất thời gian xử lý một cách vô ích.

Những phần sau sẽ lần lượt tìm cách giải quyết các vấn đề này.3 Ảnh tích hợp ( Intergral image) 2.1 Định nghĩa ảnh tính hợp Như đã trình bày ở phần trên, số lượng đặc trưng Haar-like là rất nhiều và khối lượng tính toán giá trị các đặc trưng này là rất lớn. Vì vậy ảnh tích hợp được đưa ra nhằm tính toán nhanh chóng các đặc trưng, giảm thời gian xử lý.

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