Bối cảnh và vấn đề nghiên cứu

Trong công tác quản lý nhân sự và chấm công tại các cơ quan, doanh nghiệp, các phương thức truyền thống như sử dụng thẻ từ RFID hoặc dấu vân tay thường bộc lộ hạn chế về mặt thời gian, đặc biệt là tình trạng ùn tắc khi lượng nhân viên xếp hàng điểm danh cùng một thời điểm quá đông. Sự phát triển của các công nghệ kỹ thuật mới, đặc biệt là trí tuệ nhân tạo và xử lý ảnh, mở ra xu hướng tối ưu hóa quy trình chấm công thông qua nhận diện khuôn mặt nhằm nâng cao tính tiện lợi, độ chính xác và bảo mật. Thực tế đã ghi nhận các giải pháp thương mại hóa như phần mềm BiSchool của công ty Beet Innovators phục vụ kiểm soát an ninh học đường hoặc thiết bị BiFace ứng dụng trong nhà máy, doanh nghiệp. Xuất phát từ bối cảnh đó, đồ án tập trung xây dựng một hệ thống điểm danh bằng khuôn mặt có khả năng tự động hóa và tích hợp màn hình thông báo kết quả tại chỗ.

Mục tiêu nghiên cứu của đồ án bao gồm các nhiệm vụ cụ thể sau:

  1. Thiết kế hệ thống thu thập hình ảnh và lưu trữ thông tin cá nhân của nhân viên phục vụ cơ sở dữ liệu điểm danh.
  2. Xây dựng thuật toán nhận diện khuôn mặt từ luồng hình ảnh thời gian thực dựa trên các dữ liệu mẫu đã lưu trữ.
  3. Xuất và lưu trữ thông tin nhận diện thành công (họ tên, mã số, chức vụ, trạng thái, thời gian thực) vào tập tin bảng tính phục vụ công tác quản lý.
  4. Truyền dữ liệu nhận diện không dây lên nền tảng đám mây và điều khiển màn hình LCD hiển thị họ tên, mã số nhân viên ngay tại vị trí cửa ra vào.

Về phạm vi và giới hạn nghiên cứu:

  • Không gian và đối tượng: Hệ thống được thử nghiệm trong không gian phòng làm việc quy mô 10 người nhằm tối ưu hóa dung lượng lưu trữ và tài nguyên tính toán.
  • Hạ tầng kỹ thuật: Các khối phần cứng giao tiếp dữ liệu nội bộ thông qua mạng Wi-Fi; tốc độ đường truyền mạng là yếu tố ảnh hưởng trực tiếp đến thời gian phản hồi chung.
  • Khả năng xử lý: Nghiên cứu tập trung vào bài toán phát hiện và nhận diện khuôn mặt người thật, chưa tích hợp module chống các hình thức giả mạo khuôn mặt (ảnh in, video).

Cơ sở lý thuyết và phương pháp

Đồ án kết hợp các lý thuyết về thị giác máy tính truyền thống, hệ quản trị cơ sở dữ liệu và giao thức truyền thông nhúng:

  • Thuật toán phát hiện khuôn mặt Haar Cascade: Do Paul Viola và Michael Jones đề xuất, sử dụng các đặc trưng dạng hình chữ nhật (Haar-like features) bao gồm đặc trưng cạnh (edge features), đặc trưng đường (line features) và đặc trưng xung quanh tâm (center-surround features) để phân biệt cường độ sáng tối giữa các vùng trên khuôn mặt xám (vùng mắt tối hơn trán và má, sống mũi sáng hơn hai bên mắt). Thuật toán áp dụng khái niệm Ảnh tích hợp (Integral Image) để tính tổng giá trị điểm ảnh trong bất kỳ vùng chữ nhật nào chỉ bằng bốn phép truy xuất mảng hai chiều: $$ii(x, y) = \sum_{x' \le x, y' \le y} i(x', y')$$ Kỹ thuật tăng cường Adaboost được sử dụng để lựa chọn các đặc trưng quan trọng và liên kết các bộ phân loại yếu (weak classifiers) thành bộ phân loại mạnh (strong classifier) theo cấu trúc phân tầng 38 tầng với hơn 600 đặc trưng.

  • Thuật toán trích xuất đặc trưng LBP (Local Binary Pattern / LBPH): Phương pháp trích xuất kết cấu bề mặt cục bộ thông qua cửa sổ trượt $3 \times 3$. Cường độ điểm ảnh trung tâm được dùng làm ngưỡng so sánh với 8 điểm ảnh lân cận (gán bit 1 nếu giá trị lân cận lớn hơn hoặc bằng ngưỡng, gán bit 0 nếu nhỏ hơn). Chuỗi 8 bit nhị phân được chuyển đổi sang số thập phân thay thế cho điểm ảnh trung tâm. Ảnh sau đó được chia thành các lưới nhỏ ($X \times Y$) để tính toán biểu đồ tần suất (histogram) cục bộ và ghép nối thành véc-tơ đặc trưng tổng hợp. Trong đồ án, kích thước véc-tơ đặc trưng được chuẩn hóa thành 128 chiều từ ảnh đầu vào $450 \times 450$ pixel.

  • Phương pháp nhận diện bằng khoảng cách Euclide: Tiến hành đo lường khoảng cách hình học giữa véc-tơ đặc trưng 128 chiều trích xuất từ khuôn mặt cần nhận diện với các véc-tơ đặc trưng mẫu lưu trong cơ sở dữ liệu. Kết quả nhận diện tương ứng với mẫu có khoảng cách nhỏ nhất thỏa mãn ngưỡng tin cậy đặt trước.

  • Nền tảng dữ liệu và giao thức truyền thông:

    • Hệ quản trị cơ sở dữ liệu quan hệ MySQL: Tích hợp với ngôn ngữ lập trình Python nhằm quản lý thông tin lý lịch nhân viên (họ tên, mã định danh, chức vụ).
    • Nền tảng Google Firebase: Đóng vai trò máy chủ trung gian lưu trữ dữ liệu thời gian thực (trạng thái cảm biến, kết quả nhận diện) giữa phần mềm máy tính và vi điều khiển.
    • Chuẩn giao tiếp liên mạch I2C (Inter-Integrated Circuit): Sử dụng hai đường tín hiệu SDA (Serial Data) và SCL (Serial Clock) với cấu trúc khung truyền gồm bit Start, địa chỉ 7-bit, bit đọc/ghi, bit xác thực ACK/NACK, khung dữ liệu 8-bit và bit Stop để truyền dữ liệu hiển thị từ vi điều khiển sang màn hình LCD.

Thiết kế và triển khai

Hệ thống được thiết kế theo cấu trúc hợp nhất giữa phần cứng nhúng và phần mềm xử lý trên máy tính, gồm 5 khối chức năng chính:

  1. Khối máy ảnh: Thu thập luồng hình ảnh thời gian thực tại lối ra vào và truyền dữ liệu video về máy tính thông qua giao thức mạng không dây dựa trên địa chỉ IP cục bộ. Tác giả đã tiến hành so sánh ba thiết bị để đưa ra lựa chọn:
Tiêu chí Camera TP-Link Module ESP32 Camera Module OV7670
Độ phân giải Full HD 1080p $1632 \times 1232$ $640 \times 480$
Kích thước Lớn Nhỏ gọn Nhỏ gọn
Giá thành Tương đối cao Trung bình Thấp
Phương thức kết nối Không dây (Wi-Fi) Không dây (Wi-Fi) Có dây

Module ESP32 Camera được lựa chọn nhờ kích thước nhỏ gọn, độ phân giải đáp ứng yêu cầu xử lý, tích hợp sẵn kết nối Wi-Fi truyền luồng dữ liệu độc lập và hỗ trợ thư viện phát triển trong môi trường Arduino.

  1. Khối xử lý trung tâm: Sử dụng máy tính cá nhân cài đặt ngôn ngữ Python và thư viện giao diện Tkinter. Quy trình xử lý bao gồm việc thu nhận luồng video từ địa chỉ IP của ESP32 Camera, chuẩn hóa kích thước ảnh về $450 \times 450$ pixel, chuyển đổi sang ảnh xám, áp dụng bộ lọc Haar Cascade để khoanh vùng khuôn mặt, trích xuất véc-tơ 128 đặc trưng bằng LBP và phân loại đối chiếu bằng không gian Euclide. Giao diện phần mềm cung cấp các chức năng: quản lý thông tin nhân viên, kích hoạt nhận diện, trích xuất danh sách điểm danh và thống kê nhân viên đi trễ.

  2. Khối nhận và khối hiển thị: Khối nhận sử dụng vi điều khiển ESP8266 kết nối Wi-Fi để liên tục đọc dữ liệu cập nhật từ Google Firebase. Khối hiển thị sử dụng màn hình LCD 20x04 kết nối với ESP8266 qua giao tiếp I2C. Quy tắc hiển thị trên LCD 20x04 được lập trình như sau:

    • Dòng 1: Họ và tên nhân viên (nếu chuỗi dài hơn 15 ký tự, chữ cái đầu của họ sẽ được viết tắt; nếu vẫn vượt quá 15 ký tự, chữ cái đầu của tên lót tiếp tục được viết tắt).
    • Dòng 2: Mã số nhân viên.
    • Dòng 3: Thời gian nhận diện thành công (giờ, phút, giây).
    • Dòng 4: Trạng thái điểm danh (hiển thị "Dunggio" hoặc "TreGio"). Trường hợp không khớp dữ liệu, LCD hiển thị cảnh báo "Nguoila".
  3. Khối điều khiển tự động và cảm biến: Một cảm biến hồng ngoại phát hiện vật cản được bố trí phía trước máy ảnh. Khi có người tiếp cận, cảm biến gửi trạng thái số 1 lên Firebase thông qua khối nhận. Phần mềm trung tâm đọc trạng thái này để tự động bật camera và tiến hành nhận diện; khi không có người (trạng thái 0), camera dừng hoạt động để tiết kiệm tài nguyên.

  4. Thiết kế nguồn điện: Mạch hoạt động dựa trên các bộ chuyển đổi nguồn Adapter 5V - 2A cắm trực tiếp lưới điện.

Thiết bị Dòng điện tiêu thụ (mA)
Cảm biến hồng ngoại 43
Vi điều khiển ESP8266 320
Màn hình LCD 20x04 30 ~ 40
Tổng cộng 393 ~ 403 (xấp xỉ 0.5 A)

Tổng dòng tiêu thụ của cảm biến, ESP8266 và LCD xấp xỉ 0.5 A, do đó một bộ nguồn Adapter 5V - 2A đáp ứng an toàn cho cụm mạch này. Riêng module ESP32 Camera tiêu thụ dòng khởi động và hoạt động lớn nên được cấp riêng một Adapter 5V - 2A độc lập.

Nội dung chính theo từng chương

Chương 1: Tổng quan

Trình bày lịch sử phát triển của các phương thức chấm công từ quét thẻ từ RFID, vân tay đến sinh trắc học khuôn mặt ứng dụng trí tuệ nhân tạo. Nêu rõ tính cấp thiết của việc tự động hóa điểm danh, hạn chế ùn tắc tại cửa văn phòng. Xác định rõ mục tiêu chế tạo hệ thống nhận diện khuôn mặt kết hợp màn hình LCD thông báo và giới hạn nghiên cứu trong phạm vi thử nghiệm 10 người, giao tiếp mạng nội bộ Wi-Fi và không xử lý nhận diện khuôn mặt giả.

Chương 2: Cơ sở lý thuyết

Đi sâu vào nguyên lý toán học và thuật toán của hệ thống. Mô tả chi tiết thuật toán phát hiện khuôn mặt Haar Cascade, nguyên lý tính toán của 4 nhóm đặc trưng Haar-like cơ bản, phương pháp xây dựng ma trận Ảnh tích hợp để tối ưu tốc độ cộng điểm ảnh và thuật toán Adaboost phân tầng. Trình bày thuật toán trích xuất đặc trưng LBP, các công thức biến đổi ngưỡng nhị phân cục bộ, biểu diễn ma trận pixel và kỹ thuật ghép nối biểu đồ tần suất. Giới thiệu các đặc tính bảo mật, cấu trúc lưu trữ của MySQL và cấu trúc khung truyền dữ liệu nhị phân chuẩn I2C.

Chương 3: Thiết kế hệ thống

Xây dựng sơ đồ đặc tả và sơ đồ khối chức năng tổng thể. Đưa ra các phân tích kỹ thuật để lựa chọn linh kiện phần cứng (so sánh thông số giữa ESP32 Camera, TP-Link và OV7670; thống kê công suất tiêu thụ điện của ESP8266, LCD 20x04 và cảm biến hồng ngoại). Trình bày các khảo sát thực nghiệm ban đầu về khả năng phát hiện khuôn mặt của Haar Cascade theo số lượng người và khoảng cách chụp. Mô tả chi tiết lưu đồ thuật toán chương trình chính trên máy tính và lưu đồ chương trình khởi động hệ thống tự động dựa trên cảm biến vật cản và Firebase.

Chương 4: Kết quả

Mô tả mô hình phần cứng hoàn chỉnh sau khi lắp ráp và kiểm thử. Trình bày giao diện điều khiển viết bằng Tkinter, minh chứng quá trình thu thập 100 ảnh mẫu cho mỗi nhân viên, lưu trữ thông tin vào MySQL. Thể hiện các kết quả nhận diện thực tế trên giao diện phần mềm, bảng dữ liệu cập nhật trên Google Firebase và hình ảnh hiển thị thực tế trên màn hình LCD 20x04 đối với các trường hợp: nhân viên đúng giờ, nhân viên đi trễ và đối tượng chưa đăng ký ("Nguoila"). Kiểm tra việc xuất các tập tin định dạng CSV lưu trữ lịch sử điểm danh, thời gian trễ và thống kê tổng số lần đi trễ của từng cá nhân.

Chương 5: Kết luận và hướng phát triển

Đánh giá mức độ hoàn thành nhiệm vụ so với các mục tiêu đề ra ban đầu. Thừa nhận những điểm còn tồn tại của hệ thống như tốc độ phản hồi còn chậm, độ chính xác suy giảm khi đối tượng nghiêng đầu hoặc mạng Wi-Fi không ổn định. Đề xuất các giải pháp nâng cấp phần cứng, thuật toán và mở rộng tính năng cho các nghiên cứu tiếp theo.

Kết quả và đóng góp

Qua quá trình thử nghiệm, hệ thống đạt được các kết quả kỹ thuật cụ thể:

  • Khả năng phát hiện khuôn mặt bằng Haar Cascade: Khảo sát trên 10 bức ảnh thử nghiệm với mật độ người khác nhau cho thấy thuật toán phát hiện đầy đủ số khuôn mặt khi góc nhìn trực diện:
Số thứ tự Số người trong ảnh Số khuôn mặt phát hiện
1 5 5
2 11 11
3 7 7
4 7 7
5 5 5
6 4 5 (phát hiện dư 1 vùng nhầm)
7 10 10
8 4 4
9 6 6
10 8 8
  • Khảo sát khoảng cách chụp ảnh tối ưu: Thực nghiệm chụp ảnh khuôn mặt ở các mốc cự ly 15 cm, 20 cm, 25 cm, 30 cm và 40 cm. Kết quả cho thấy khoảng cách từ 25 cm đến 30 cm là tối ưu nhất; tỷ lệ kích thước khuôn mặt trong khung hình cân đối, tốc độ phát hiện nhanh và thời gian thu thập đủ tập dữ liệu 100 ảnh mẫu đạt khoảng 4 giây.

  • Tính năng quản trị và cảnh báo:

    • Hệ thống tự động phân loại và ghi nhận trạng thái vào tập tin CSV theo thời gian thực: ghi nhận thông tin nhân viên điểm danh đúng giờ ("Dunggio"), tự động tính khoảng thời gian đi trễ và thống kê số lần trễ của từng nhân viên theo tháng ("TreGio").
    • Phân biệt người lạ: Khi phát hiện khuôn mặt không trùng khớp với cơ sở dữ liệu mẫu, hệ thống hiển thị kết quả "Nguoi la" trên giao diện máy tính, đồng bộ trạng thái "Nguoila" lên Firebase và phát dòng chữ cảnh báo "Nguoila" trên màn hình LCD.
    • Cơ chế tự động hóa: Tích hợp thành công cảm biến hồng ngoại để đánh thức camera qua biến cờ trạng thái trên Firebase, giảm thiểu việc duy trì luồng camera liên tục.

Về mặt đóng góp: Đồ án đã hiện thực hóa một mô hình thực nghiệm khép kín từ khâu thu thập ảnh bằng phần cứng IoT không dây, xử lý thị giác máy tính trên PC đến việc phân phối kết quả tức thời ra thiết bị ngoại vi thông qua kiến trúc đám mây Firebase, chứng minh tính khả thi của giải pháp kết hợp giữa vi điều khiển giá thành thấp và máy tính xử lý trung tâm.

Hạn chế và hướng nghiên cứu tiếp

Theo đánh giá trực tiếp của tác giả trong báo cáo, đồ án còn một số hạn chế kỹ thuật:

  • Tốc độ hoạt động toàn hệ thống còn khá chậm và độ chính xác nhận diện tổng thể chưa cao do độ trễ truyền dữ liệu hình ảnh và tín hiệu qua mạng Wi-Fi.
  • Thuật toán Haar Cascade chỉ phát hiện hiệu quả khi khuôn mặt nhìn thẳng vào máy ảnh; khi khuôn mặt nghiêng một góc nhất định, hệ thống không thể nhận diện được.
  • Hệ thống chỉ nhận diện dựa trên các đặc trưng ảnh tĩnh bề mặt, chưa có module nhận biết thực thể sống (liveness detection) để ngăn chặn việc giả mạo bằng hình ảnh hoặc video.
  • Cơ sở dữ liệu và thử nghiệm mới dừng lại ở quy mô nhỏ (phòng 10 người).

Các hướng phát triển được đề xuất bao gồm:

  • Tối ưu hóa thuật toán hoặc áp dụng mô hình học sâu để nâng cao độ chính xác khi khuôn mặt thay đổi góc nghiêng hoặc biểu cảm.
  • Cải thiện tốc độ truyền dẫn và xử lý dữ liệu giữa camera, máy tính và khối vi điều khiển hiển thị.
  • Bổ sung cơ chế phát hiện khuôn mặt giả nhằm nâng cao tính an toàn sinh trắc học.
  • Mở rộng quy mô cơ sở dữ liệu để đáp ứng nhu cầu chấm công tại các doanh nghiệp lớn.

Giá trị tham khảo

Đồ án là tài liệu tham khảo hữu ích cho sinh viên các ngành Kỹ thuật Điện tử - Viễn thông, Công nghệ Thông tin, Kỹ thuật Máy tính và Cơ điện tử khi thực hiện các đề tài tốt nghiệp liên quan đến thị giác máy tính và ứng dụng IoT. Các nội dung có giá trị ứng dụng cao gồm:

  • Quy trình kết nối và lập trình truyền luồng video từ module ESP32 Camera qua Wi-Fi về máy tính xử lý.
  • Phương pháp phối hợp giữa phần mềm xử lý trung tâm viết bằng Python Tkinter với dịch vụ đám mây Google Firebase và vi điều khiển ESP8266.
  • Kỹ thuật tính toán công suất nguồn, ghép nối phần cứng vi điều khiển với màn hình LCD qua giao tiếp I2C và thuật toán xử lý chuỗi ký tự hiển thị trên màn hình ma trận nhỏ.

Câu hỏi thường gặp

1. Hệ thống xử lý thế nào khi họ và tên nhân viên vượt quá chiều dài cho phép trên màn hình LCD 20x04?
Nếu họ và tên nhân viên dài hơn 15 ký tự, hệ thống sẽ tự động viết tắt họ thành một chữ cái đầu tiên kèm dấu chấm. Nếu sau khi viết tắt họ mà độ dài chuỗi ký tự vẫn vượt quá 15 ký tự, chữ cái đầu của tên lót sẽ tiếp tục được viết tắt thành ký tự đầu tiên để đảm bảo hiển thị trọn vẹn trên dòng đầu của LCD 20x04.

2. Cảm biến hồng ngoại đóng vai trò gì trong việc kích hoạt hệ thống nhận diện?
Cảm biến hồng ngoại được lắp phía trước để nhận diện sự xuất hiện của nhân viên. Khi phát hiện vật cản, cảm biến gửi giá trị số "1" lên Google Firebase thông qua ESP8266. Phần mềm trên máy tính quét Firebase, nếu nhận giá trị "1" sẽ tự động khởi chạy camera để tiến hành nhận diện khuôn mặt; nếu giá trị là "0", camera giữ trạng thái tắt nhằm tiết kiệm tài nguyên.

3. Khoảng cách và thời gian tối ưu cho việc thu thập dữ liệu mẫu khuôn mặt là bao nhiêu?
Qua khảo sát thực nghiệm của đồ án, cự ly đứng tối ưu trước máy ảnh là từ 25 cm đến 30 cm. Ở khoảng cách này, khuôn mặt hiển thị rõ nét, không bị quá lớn hay quá nhỏ, và hệ thống chỉ mất khoảng 4 giây để chụp đủ 100 bức ảnh mẫu phục vụ huấn luyện thuật toán.

4. Khi một người chưa đăng ký thông tin đứng trước camera, hệ thống sẽ phản hồi ra sao?
Hệ thống sẽ không tìm thấy đặc trưng tương thích trong cơ sở dữ liệu mẫu và trả về kết quả "Nguoi la" trên giao diện máy tính. Đồng thời, chuỗi "Nguoila" được gửi lên Firebase và màn hình LCD 20x04 sẽ hiển thị dòng thông báo cảnh báo "Nguoila" tại cửa.

5. Cấu hình nguồn điện cấp cho các thiết bị phần cứng được tính toán như thế nào?
Toàn bộ hệ thống sử dụng nguồn cấp ngoài từ Adapter 5V - 2A. Trong đó, một Adapter 5V - 2A dùng để cấp nguồn chung cho cảm biến hồng ngoại (43 mA), vi điều khiển ESP8266 (320 mA) và màn hình LCD 20x04 (30-40 mA) với tổng dòng tiêu thụ xấp xỉ 0.4 A. Riêng module ESP32 Camera do yêu cầu dòng hoạt động lớn nên được cấp riêng một nguồn Adapter 5V - 2A độc lập.

Kết luận

Đồ án "Thiết kế hệ thống nhận diện khuôn mặt phục vụ cho hệ thống điểm danh" của sinh viên Nguyễn Hoàng Quân đã xây dựng thành công mô hình tích hợp giữa thị giác máy tính và phần cứng IoT. Bằng việc kết hợp thuật toán Haar Cascade, bộ trích xuất LBP và phân loại khoảng cách Euclide trên nền tảng Python, hệ thống đã thực hiện được các chức năng thu thập dữ liệu, nhận diện điểm danh và xuất báo cáo CSV thời gian thực. Thông tin kết quả được truyền tải đồng bộ qua Google Firebase để hiển thị trực tiếp lên màn hình LCD 20x04 điều khiển bởi ESP8266. Dù vẫn còn hạn chế về khả năng nhận diện mặt nghiêng và tốc độ đường truyền Wi-Fi, đề tài đã đáp ứng các mục tiêu thiết kế phần cứng và phần mềm cho một hệ thống điểm danh tự động ở quy mô phòng làm việc nhỏ.