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

Trong xu thế phát triển công nghệ hiện đại, nhu cầu bảo đảm an ninh và kiểm soát truy cập tại các cơ quan, doanh nghiệp và hộ gia đình ngày càng trở nên cấp thiết. Tác giả chỉ ra rằng các phương thức nhận dạng sinh trắc học truyền thống như vân tay, mống mắt, chỉ bàn tay hoặc sử dụng thẻ từ vật lý đều tồn tại những nhược điểm cố hữu:

  • Đòi hỏi sự tiếp xúc trực tiếp giữa cơ thể người và bề mặt thiết bị nhận dạng, dễ gây bất tiện hoặc hao mòn cơ học.
  • Tiềm ẩn rủi ro quên thẻ, làm mất thẻ hoặc bị đánh cắp thẻ, dẫn đến gián đoạn quá trình xác thực danh tính.

Sự phát triển của kỹ thuật xử lý ảnh số và thị giác máy tính đã đưa bài toán nhận dạng khuôn mặt (Face Recognition) trở thành giải pháp phi tiếp xúc tối ưu, được áp dụng trên các thiết bị di động thương mại như Samsung Galaxy S8 hay Apple iPhone X, cũng như trong các hệ thống điểm danh và giám sát an ninh. Tuy nhiên, rào cản lớn nhất của các hệ thống nhận dạng khuôn mặt thương mại là đòi hỏi máy tính cấu hình cao với chi phí đầu tư lớn, khó triển khai đại trà cho các mô hình an ninh quy mô nhỏ hoặc dân dụng. Từ bối cảnh thực tiễn đó, tác giả đặt vấn đề ứng dụng hệ thống nhúng với nền tảng vi điều khiển giá thành thấp để hiện thực hóa đề tài "Thiết kế mạch chống trộm".

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

  1. Nghiên cứu cơ sở lý thuyết về xử lý ảnh, kỹ thuật phát hiện khuôn mặt bằng đặc trưng Haar wavelet-like và giải thuật nhận dạng khuôn mặt dựa trên phương pháp phân tích thành phần chính (PCA/Eigenfaces).
  2. Thiết kế phần cứng hệ thống bao gồm khối xử lý trung tâm, khối nguồn ổn áp, khối cơ cấu chấp hành đóng/mở cửa, khối hiển thị và khối cảnh báo an ninh.
  3. Xây dựng phần mềm giao diện trên máy tính để thu nhận luồng video từ camera, huấn luyện tập mẫu dữ liệu, nhận diện danh tính và truyền tín hiệu điều khiển xuống vi điều khiển qua cổng nối tiếp.
  4. Chế tạo mô hình thực tế, tích hợp cơ chế bảo mật kép bằng bàn phím số ma trận dự phòng và lưu trữ ảnh đối tượng xâm nhập trái phép.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Tín hiệu hình ảnh khuôn mặt người 2D; giải thuật phát hiện và nhận dạng khuôn mặt; vi điều khiển ATmega328 trên bo mạch Arduino Nano; động cơ chấp hành RC Servo và các thiết bị ngoại vi báo động.
  • Phạm vi không gian: Mô hình mạch chống trộm thực nghiệm quy mô phòng thí nghiệm tại Khoa Công nghệ Kỹ thuật – Nông nghiệp Công nghệ cao, Trường Đại học Bà Rịa – Vũng Tàu.
  • Phạm vi thời gian và dữ liệu: Nghiên cứu hoàn thành vào tháng 05 năm 2020; tập trung kiểm thử trên luồng ảnh chụp chính diện thời gian thực từ camera máy tính, chưa mở rộng sang không gian nhận dạng 3D hoặc môi trường mạng phân tán.

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

Đồ án xây dựng trên nền tảng lý thuyết xử lý ảnh số, đại số tuyến tính và kỹ thuật điều khiển nhúng, cụ thể:

Khung lý thuyết và mô hình giải thuật

  • Xử lý ảnh số cơ bản: Định nghĩa ảnh là hàm $n$ chiều biểu diễn cường độ sáng tại các tọa độ không gian. Quá trình xử lý sơ bộ bao gồm chuyển đổi ảnh màu RGB sang ảnh xám để tối ưu hóa khối lượng tính toán. Phân tích lược đồ mức xám (Histogram) với công thức rời rạc $p(r_k) = n_k / n$ (trong đó $n_k$ là số pixel có mức xám $r_k$, $n$ là tổng số pixel) nhằm đánh giá mật độ phân bố cường độ sáng.
  • Phát hiện khuôn mặt bằng đặc trưng Haar wavelet-like: Kỹ thuật do Paul Viola và Michael Jones đề xuất, sử dụng các khung hình chữ nhật liền kề ("trắng" và "đen") để tính toán độ tương phản không gian thông qua công thức: $$f(x) = \sum \text{vùng đen}(pixel) - \sum \text{vùng trắng}(pixel)$$ Tập đặc trưng được chia thành ba nhó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). Để khắc phục khối lượng tính toán cực lớn khi co giãn khung cửa sổ tìm kiếm trong thời gian thực, tác giả áp dụng khái niệm "tích phân ảnh" (Integral Image).
  • Trích xuất đặc trưng và nhận dạng khuôn mặt bằng PCA (Eigenfaces): Thuật toán phân tích thành phần chính (Principal Component Analysis) biến đổi không gian ảnh ban đầu có số chiều lớn ($N$) về không gian con có số chiều thấp hơn ($K \ll N$) mà vẫn giữ được các đặc trưng biến thiên cốt lõi.
    • Tác giả phân tích quy trình 7 bước tìm kiếm Eigenfaces:
      1. Chuẩn bị tập ảnh mẫu huấn luyện chính diện cùng kích thước $I_1, I_2, \dots, I_M$.
      2. Chuyển đổi mỗi bức ảnh thành một vector không gian kích thước $(N \times P)$.
      3. Tính toán vector khuôn mặt trung bình $\Psi$.
      4. Tính sai số (vector hiệu) $\Phi_i$ giữa ảnh ban đầu và ảnh trung bình.
      5. Xác định ma trận hiệp phương sai $C = \frac{1}{M} \sum_{n=1}^M \Phi_n \Phi_n^T = \frac{1}{M} A A^T$, với ma trận $A$ có kích thước $(N \times P) \times M$.
      6. Thay vì tính trực tiếp trị riêng của ma trận $C$ có kích thước khổng lồ $(N \times P) \times (N \times P)$, giải thuật quy về tìm vector riêng của ma trận $A^T A$ có kích thước $M \times M$.
      7. Chuẩn hóa và giữ lại $K$ vector riêng ứng với các trị riêng lớn nhất để tạo không gian cơ sở trực chuẩn (Eigenfaces).
    • Quá trình phân lớp khuôn mặt kiểm thử dựa trên phép tính khoảng cách Euclid cực tiểu kết hợp thuật toán K láng giềng gần nhất (K-NN).
  • So sánh lý thuyết giữa PCA và LDA: Tác giả phân tích thuật toán Phân tích biệt thức tuyến tính (Linear Discriminant Analysis - LDA) nhằm cực đại hóa tỷ số phân tán giữa các lớp và cực tiểu hóa phân tán nội lớp. Tuy nhiên, do LDA đòi hỏi khối lượng tính toán phức tạp và chưa có giải thuật tính nhanh khả thi cho hệ thống phần cứng đang thử nghiệm, đồ án lựa chọn PCA để tối ưu tốc độ xử lý.

Phương pháp nghiên cứu và nguồn dữ liệu

  • Phương pháp thực nghiệm thiết kế: Thiết kế sơ đồ nguyên lý mạch điện tử và layout mạch in bằng phần mềm Altium Designer; thiết kế giao diện điều khiển và giám sát trên máy tính bằng ngôn ngữ C# (.NET Framework) trong môi trường Microsoft Visual Studio.
  • Tích hợp thư viện thị giác máy tính: Sử dụng thư viện EmguCV (bản wrapper của OpenCV cho nền tảng .NET), gọi tệp cấu hình tầng Haar Cascade huấn luyện sẵn haarcascade_frontalface_default.xml để phát hiện khuôn mặt.
  • Nguồn dữ liệu: Dữ liệu hình ảnh trực tiếp từ camera/webcam máy tính; tập dữ liệu huấn luyện cục bộ (Training Set) được lưu tại thư mục bin > Debug > TrainedFaces, quản lý thông qua hai tệp văn bản name.txt và TrainedLabels.txt.

Thiết kế và triển khai hệ thống

Hệ thống chống trộm được xây dựng theo mô hình phân tán giữa phần mềm xử lý hình ảnh trên máy tính và phần cứng điều khiển nhúng ngoại vi qua giao thức truyền thông nối tiếp (Serial Port / UART).

Kiến trúc phần cứng và sơ đồ kết nối

Hệ thống phần cứng phân rã thành các khối chức năng liên kết chặt chẽ:

  1. Khối nguồn: Sử dụng module chuyển đổi nguồn xung hạ áp DC-DC LM2596 nhận điện áp đầu vào từ nguồn DC và hạ áp cung cấp cho các nhánh:
    • Cấp nguồn ổn định 5V DC cho khối vi điều khiển Arduino Nano, màn hình hiển thị LCD, động cơ servo và mạch còi báo động.
    • Nhánh nguồn phụ cấp điện áp 4.5V DC (chuẩn bị cho module SIM 800A) và cấp 9V DC đầu vào cho bo mạch vi xử lý khi vận hành độc lập.
  2. Khối xử lý trung tâm (MCU): Bo mạch Arduino Nano trang bị vi điều khiển 8-bit ATmega328, giữ vai trò nhận lệnh từ máy tính, quét ma trận phím bấm, xuất xung PWM điều khiển góc quay servo mở chốt cửa, phát tín hiệu còi hú và hiển thị thông báo.
  3. Khối chấp hành: Động cơ RC Servo MG996R điều khiển góc quay bằng xung PWM chu kỳ 20ms (tần số 50Hz, độ rộng xung biến thiên từ 1ms đến 2ms) gắn liền với then chốt cửa mô hình.
  4. Khối an ninh và hiển thị: Màn hình LCD hiển thị trạng thái hệ thống, còi buzzer báo động âm thanh, nút nhấn cơ học và bàn phím ma trận dự phòng.
Thiết bị / Linh kiện Thông số kỹ thuật ghi nhận trong đồ án
Vi điều khiển Arduino Nano Vi xử lý ATmega328 (8-bit), tần số 16 MHz, điện áp hoạt động 5V DC, dòng tiêu thụ 30mA, 14 chân Digital I/O (6 chân PWM), 8 chân Analog (10-bit), dòng cực đại mỗi chân I/O 40mA, bộ nhớ Flash 32KB (2KB cho bootloader), SRAM 2KB, EEPROM 1KB, giao tiếp Mini-USB.
Module giảm áp LM2596 Nguồn đầu vào 4V – 35V DC, nguồn đầu ra điều chỉnh 1V – 30V DC, dòng tải cực đại 3A, kích thước module 53mm x 26mm, mạch không cách ly.
Động cơ RC Servo MG 996R Điện áp hoạt động 4.8V – 6.0V DC; kích thước 40 x 19 x 43mm; trọng lượng 55g; lực kéo đạt 3.5 kg-cm tại 4.8V và 4.5 kg-cm tại 6V; điều khiển góc quay qua tín hiệu PWM chu kỳ 20ms.
Bàn phím ma trận Cấu trúc phím quét ma trận, dùng để nhập mật khẩu thủ công mở khóa.

Sơ đồ đấu nối chân tín hiệu từ Arduino Nano đến các linh kiện ngoại vi:

  • Chân D11: Xuất xung PWM điều khiển góc quay của Động cơ RC Servo.
  • Chân D10: Xuất tín hiệu kích hoạt còi báo động (Buzzer).
  • Chân D6: Đọc tín hiệu số từ nút nhấn thao tác.
  • Chân A0, A1, A2, A3, D5, D4, D3, D2: Kết nối trực tiếp với 8 hàng và cột của bàn phím ma trận.
  • Chân A4, A5: Kết nối điều khiển màn hình LCD (chuẩn giao tiếp I2C/Analog).

Quy trình hoạt động của phần mềm

Phần mềm điều khiển viết bằng C# triển khai giải thuật nhận dạng theo lưu đồ khép kín:

  1. Khởi tạo (Begin): Tải bộ lọc tầng haarcascade_frontalface_default.xml, đọc tệp TrainedLabels.txt để nạp các vector khuôn mặt đã huấn luyện vào bộ nhớ, liệt kê các cổng COM hiện hành.
  2. Kết nối phần cứng: Người dùng chọn cổng COM tương ứng của Arduino Nano và nhấn "Connect", sau đó kích hoạt luồng camera bằng nút "Open Camera".
  3. Tiền xử lý ảnh (Image Pre-Processing): Trích xuất từng khung hình (frame), chuyển đổi hệ màu BGR sang không gian mức xám Image<Gray, Byte> và thực hiện cân bằng lược đồ mức xám nhằm giảm độ nhạy với điều kiện chiếu sáng.
  4. Phát hiện khuôn mặt (Face Detection): Quét khung hình bằng thuật toán Haar Cascade để định vị tọa độ vùng mặt, cắt khung hình chứa khuôn mặt chuẩn hóa về kích thước cố định.
  5. Nhận dạng danh tính (Face Recognition): Chiếu vector ảnh khuôn mặt vào không gian Eigenfaces bằng thuật toán PCA, so sánh khoảng cách với tập mẫu:
    • Nếu trùng khớp: Nhãn tên người dùng hiển thị ở góc trên bên trái khung nhận diện; phần mềm truyền chuỗi ký tự qua cổng SerialPort xuống Arduino Nano để kích hoạt chân D11 mở chốt cửa bằng động cơ servo.
    • Nếu không trùng khớp (người lạ): Hệ thống không gửi lệnh mở cửa.
  6. Huấn luyện khuôn mặt mới: Nhập tên định danh vào ô "Name" trên giao diện và nhấn nút "Thêm", hệ thống tự động ghi nhận ảnh vào cơ sở dữ liệu TrainedFaces, cập nhật tổng số lượng mẫu vào name.txt.
  7. Cơ chế an ninh dự phòng khi nhập sai mật khẩu: Trường hợp camera bị che chắn hoặc hỏng hóc, người dùng mở cửa qua bàn phím ma trận. Nếu đối tượng cố tình dò mật mã và nhập sai, phần mềm kích hoạt camera chụp ngay một bức ảnh đối tượng và lưu tự động vào thư mục D://Picture với tên tệp gán nhãn theo định dạng ngày, tháng, giờ vi phạm.

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

Chương 1: Giới thiệu về đề tài luận văn

Chương này phân tích tổng quan các công nghệ sinh trắc học hiện hữu (vân tay, mống mắt, thẻ từ), chỉ ra các hạn chế về mặt tiếp xúc cơ học và rủi ro thất lạc. Tác giả giới thiệu bài toán nhận dạng khuôn mặt 2D và 3D, sự phát triển của thư viện OpenCV (ra đời tháng 01/1999, phát hành bản đầu tiên năm 2006 với hơn 500 hàm C/C++), đồng thời chỉ ra tính cấp thiết của việc tích hợp thị giác máy tính với các bo mạch nhúng giá rẻ như Arduino. Nội dung chương cũng trình bày các khái niệm cơ bản về xử lý ảnh, cấu trúc điểm ảnh RGB, chuyển đổi ảnh xám, biểu đồ Histogram và chỉ ra 8 yếu tố gây nhiễu ảnh hưởng đến thị giác máy tính: điều kiện chiếu sáng, sự che khuất, tư thế/góc chụp, thiếu thành phần khuôn mặt (kính, râu), biểu cảm khuôn mặt, nền ảnh phức tạp, màu da và sự lão hóa do tuổi tác. Cuối chương, quy trình nhận dạng chuẩn 4 bước được xác lập: Phát hiện khuôn mặt $\rightarrow$ Phân đoạn $\rightarrow$ Trích xuất đặc trưng $\rightarrow$ Phân lớp khuôn mặt bằng K-NN.

Chương 2: Lý thuyết cơ sở của bài toán

Tập trung chi tiết vào các mô hình toán học phục vụ bài toán nhận diện:

  • Lý thuyết Haar wavelet-like của Paul Viola và Michael Jones với ba tập đặc trưng (cạnh, đường, xung quanh tâm) và giải thuật "tích phân ảnh" tăng tốc độ tính tổng giá trị pixel.
  • Thuật toán phân tích thành phần chính PCA: bản chất toán học là phép biến đổi tuyến tính chiếu vector từ không gian $N$ chiều về $K$ chiều ($K < N$) dựa trên việc cực đại hóa phương sai thông qua ma trận hiệp phương sai.
  • Quy trình 7 bước tính toán Eigenfaces và 4 bước đối sánh khoảng cách nhận diện ảnh mới.
  • Phân tích đối chiếu giữa PCA và LDA, chỉ rõ nhược điểm của LDA về khối lượng tính toán lớn chưa thể tối ưu hóa cho thời gian thực trong phạm vi đề tài.

Chương 3: Sơ lược về các linh kiện trong đề tài

Chương này cung cấp bảng thông số kỹ thuật chi tiết của các linh kiện phần cứng được sử dụng trong mô hình:

  • Bo mạch Arduino Nano: Kiến trúc vi điều khiển ATmega328 họ AVR 8-bit, 14 chân Digital I/O, 8 chân Analog, cổng kết nối Mini-USB, thông số dòng tải và bộ nhớ Flash 32KB.
  • Động cơ RC Servo MG996R (tiêu đề chương ghi nhãn RC Servo 9G nhưng nội dung khảo sát động cơ MG996R): Trọng lượng 55g, kích thước 40 x 19 x 43mm, lực kéo 3.5 – 4.5 kg-cm, điều khiển theo góc quay bằng phương pháp điều chế độ rộng xung PWM (chu kỳ 20ms).
  • Module giảm áp nguồn xung LM2596: Phạm vi điện áp vào 4V – 35V, điện áp ra điều chỉnh 1V – 30V, dòng cực đại 3A, kích thước 53mm x 26mm.
  • Cấu trúc bàn phím ma trận phục vụ nhập mật khẩu số dự phòng.

Chương 4: Xây dựng mô hình và phần cứng

Trình bày sơ đồ khối hệ thống và sơ đồ đấu nối chi tiết giữa vi điều khiển trung tâm với các thiết bị ngoại vi (Servo chân D11, Buzzer chân D10, nút nhấn chân D6, bàn phím ma trận nối từ chân A0 đến D2, màn hình LCD chân A4-A5). Tác giả sử dụng phần mềm Altium Designer để thiết kế sơ đồ nguyên lý cho ba phân khối: khối MCU, khối nguồn hạ áp và khối thiết bị ngoại vi. Mô hình vật lý hoàn chỉnh được gia công bằng khung vỏ nhựa cứng, bố trí camera quan sát bên ngoài kết nối với máy tính laptop xử lý trung tâm và kết nối mạch điều khiển qua cổng USB.

Chương 5: Tạo chương trình nhận dạng

Mô tả chi tiết việc xây dựng phần mềm giao diện trên nền tảng Visual Studio sử dụng ngôn ngữ C# và thư viện EmguCV. Chương trình hiện thực hóa lưu đồ thuật toán nhận dạng từ khâu mở camera, chọn cổng COM kết nối bo mạch, trích xuất khung hình, nhận diện khuôn mặt người đã học trong tập dữ liệu bin > Debug > TrainedFaces, gửi xung mở cửa đến động cơ Servo và hiển thị tên người dùng. Tác giả chứng minh phần mềm có khả năng nhận dạng đồng thời từ 2 đến 3 khuôn mặt cùng lúc trong một khung hình. Đồng thời, chương trình tích hợp chức năng bảo mật bàn phím: khi camera bị che khuất bởi khẩu trang, hệ thống không thể nhận diện; nếu kẻ gian cố tình nhập sai mật mã trên bàn phím ma trận, camera sẽ tự động chụp một bức ảnh đối tượng và lưu vào thư mục D://Picture kèm mốc thời gian vi phạm.

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

Đánh giá mức độ hoàn thành của đề tài thông qua ba kết luận thực nghiệm chính và đề xuất năm hướng cải tiến kỹ thuật cho các giai đoạn phát triển tiếp theo.


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

Kết quả kỹ thuật đạt được

  • Chế tạo thành công mô hình mạch chống trộm phần cứng hoàn chỉnh, hoạt động đồng bộ với phần mềm thị giác máy tính cài đặt trên máy tính cá nhân.
  • Hệ thống đạt thời gian phát hiện nhanh và độ chính xác ổn định đối với các khuôn mặt chụp ở góc nhìn chính diện trong điều kiện ánh sáng môi trường đầy đủ.
  • Chương trình nhận dạng viết trên C# và EmguCV có khả năng phát hiện và nhận diện đồng thời từ 2 đến 3 khuôn mặt cùng một lúc trong luồng video thời gian thực.
  • Xây dựng thành công cơ chế an ninh hai lớp: xác thực tự động không tiếp xúc bằng khuôn mặt và mở khóa dự phòng bằng mật khẩu qua bàn phím ma trận.
  • Thiết lập tính năng an ninh thụ động: tự động chụp ảnh kẻ xâm nhập và lưu trữ cục bộ tại đường dẫn D://Picture với tên tệp chứa thông số ngày, tháng, thời gian chính xác khi phát hiện hành vi nhập sai mật mã bàn phím.

Giải pháp và kiến nghị của tác giả

  • Ứng dụng giải pháp kết hợp giữa máy tính cá nhân (đảm nhiệm xử lý ảnh nặng) và vi điều khiển giá rẻ Arduino Nano (đảm nhiệm quét phím, xuất xung PWM điều khiển động cơ và còi báo) nhằm giảm chi phí thiết kế phần cứng so với các hệ thống điều khiển công nghiệp chuyên dụng.
  • Khuyến nghị bổ sung quy định về điều kiện chiếu sáng tiêu chuẩn tại vị trí lắp đặt camera để bảo đảm chất lượng nhận diện của thuật toán PCA.

Đóng góp so với các nghiên cứu trước (theo tác giả tự nêu)

  • Tác giả tự đánh giá đã hiện thực hóa thành công việc ứng dụng nền tảng phần cứng mã nguồn mở Arduino Nano vào bài toán nhận dạng khuôn mặt phục vụ kiểm soát cửa chống trộm dân dụng, thay vì chỉ dừng lại ở các mô hình lý thuyết xử lý ảnh thuần túy trên máy tính.
  • Khắc phục nhược điểm của các hệ thống thẻ từ hoặc vân tay đơn lẻ bằng việc kết hợp giữa nhận dạng quang học không tiếp xúc và bàn phím mật mã vật lý dự phòng trong cùng một kiến trúc hệ thống nhúng.

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

Hạn chế ghi nhận trong văn bản

  • Góc chụp và tư thế: Hệ thống hoạt động tốt nhất khi khuôn mặt nhìn thẳng; khả năng nhận diện giảm mạnh hoặc hoàn toàn không phát hiện được khuôn mặt khi đối tượng nghiêng đầu, lệch góc chụp so với trục camera.
  • Điều kiện ánh sáng: Thuật toán PCA rất nhạy cảm với sự biến đổi cường độ sáng; các bức ảnh chụp trong điều kiện ánh sáng quá tối hoặc phân bố không đều dẫn đến sai số nhận dạng lớn.
  • Sự che khuất: Hệ thống không thể phát hiện và phân đoạn khuôn mặt nếu đối tượng sử dụng vật che chắn như khẩu trang, khăn trùm hoặc các phụ kiện che khuất các chi tiết nhân dạng cơ bản.
  • Phần cứng thu nhận hình ảnh: Độ chính xác và độ nhạy của hệ thống phụ thuộc chặt chẽ vào thông số kỹ thuật và độ phân giải của camera máy tính sử dụng trong thử nghiệm.
  • Kiến trúc vận hành: Hệ thống chưa thể hoạt động độc lập hoàn toàn ở cấp độ nhúng biên (Edge AI) mà vẫn phải phụ thuộc vào máy tính xách tay để chạy phần mềm C# và thư viện EmguCV.

Hướng phát triển tác giả đề xuất

  • Ban hành quy chuẩn cố định về ánh sáng tại các khu vực lắp đặt hệ thống chống trộm để triệt tiêu ảnh hưởng của nhiễu sáng.
  • Nghiên cứu giải quyết thêm các bài toán biến đổi hình thái khuôn mặt (biểu cảm, góc nghiêng, sự xuất hiện của râu, mắt kính).
  • Nâng cấp phần cứng camera thu nhận hình ảnh đạt độ phân giải cao hơn.
  • Mở rộng tính năng truyền thông thông qua việc gửi dữ liệu lên mạng Internet, hỗ trợ công tác giám sát, cảnh báo và quản lý an ninh từ xa.
  • Thiết kế hệ thống cấp nguồn dự phòng kết hợp pin năng lượng mặt trời và bình ắc-quy nhằm duy trì hoạt động liên tục khi xảy ra sự cố gián đoạn nguồn điện lưới chính.

Giá trị tham khảo

Báo cáo đồ án mang lại giá trị tham khảo chuyên môn cho các đối tượng sau:

  • Sinh viên chuyên ngành Kỹ thuật Điện - Điện tử, Tự động hóa và Hệ thống Nhúng: Là tài liệu tham khảo thực tế về phương pháp tích hợp vi điều khiển Arduino với các ngoại vi cơ bản như động cơ RC Servo (điều khiển xung PWM), bàn phím ma trận quét phím số, màn hình hiển thị LCD và module nguồn xung hạ áp LM2596.
  • Sinh viên ngành Công nghệ Thông tin và Kỹ thuật Máy tính: Cung cấp tài liệu mẫu về cách sử dụng thư viện EmguCV trong môi trường C# WinForms, từ khâu gọi tệp cấu hình tầng Haar Cascade (haarcascade_frontalface_default.xml) đến việc quản lý tệp nhãn huấn luyện và kết nối giao tiếp Serial Port qua cổng COM ảo.
  • Các phần nội dung đáng tham khảo nhất:
    • Mục 2.3 đến 2.5: Trình bày chi tiết cơ sở toán học 7 bước biến đổi ma trận để trích xuất không gian Eigenfaces từ thuật toán PCA.
    • Sơ đồ nguyên lý thiết kế mạch Altium cho các khối nguồn, MCU và ngoại vi trong Chương 4.
    • Phụ lục mã nguồn C# thể hiện cấu trúc khởi tạo camera, tải dữ liệu khuôn mặt và xử lý sự kiện giao tiếp nối tiếp với phần cứng.

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

1. Thuật toán phát hiện và nhận dạng khuôn mặt được tác giả sử dụng cụ thể là gì?

Tác giả sử dụng kết hợp hai thuật toán: thuật toán Haar wavelet-like của Paul Viola và Michael Jones (thông qua tệp Haar Cascade haarcascade_frontalface_default.xml của OpenCV/EmguCV) để định vị và phát hiện khuôn mặt trong khung hình, sau đó sử dụng thuật toán Phân tích thành phần chính (PCA - Principal Component Analysis / Eigenfaces) để trích xuất đặc trưng và đối sánh nhận diện danh tính.

2. Dữ liệu khuôn mặt huấn luyện được phần mềm lưu trữ ở đâu và dưới định dạng nào?

Dữ liệu các khuôn mặt đã được thêm vào hệ thống được lưu mặc định trong thư mục cục bộ theo đường dẫn bin > Debug > TrainedFaces. Thông tin tên người dùng và các nhãn định danh tương ứng được quản lý trong hai tệp văn bản là name.txt và TrainedLabels.txt.

3. Hệ thống xử lý như thế nào khi khuôn mặt bị che khuất hoặc kẻ gian cố tình nhập sai mật mã trên bàn phím?

Khi khuôn mặt bị che chắn bởi vật thể như khẩu trang, hệ thống không thể phát hiện được khuôn mặt để mở khóa, lúc này người dùng chuyển sang phương án mở cửa bằng bàn phím ma trận. Trường hợp kẻ gian nhập sai mật mã trên bàn phím ma trận, camera sẽ tự động kích hoạt chụp một tấm ảnh của đối tượng và lưu vào thư mục D://Picture, tên của bức ảnh được đặt tự động theo ngày, tháng, thời gian diễn ra sự việc.

4. Động cơ servo điều khiển khóa cửa được kết nối vào chân nào của Arduino Nano và hoạt động theo nguyên lý gì?

Động cơ RC Servo MG996R được kết nối trực tiếp với chân số D11 của bo mạch Arduino Nano. Động cơ nhận tín hiệu điều chế độ rộng xung PWM chu kỳ 20ms (tần số 50Hz) với độ rộng xung điều khiển biến thiên từ 1ms đến 2ms để quay then chốt cửa sang vị trí mở hoặc đóng.

5. Bo mạch Arduino Nano trong đồ án sử dụng chip vi điều khiển gì và có thông số bộ nhớ ra sao?

Bo mạch Arduino Nano trong đồ án sử dụng chip vi điều khiển ATmega328 (họ 8-bit, tần số hoạt động 16 MHz). Bộ nhớ của vi điều khiển gồm có: bộ nhớ Flash 32KB (trong đó 2KB được sử dụng cho chương trình nạp bootloader), bộ nhớ SRAM 2KB và bộ nhớ lưu trữ không bay hơi EEPROM 1KB.


Kết luận

Đồ án tốt nghiệp "Thiết kế mạch chống trộm" của tác giả Dương Chí Hùng đã hiện thực hóa mô hình bảo mật cửa tự động thông qua việc kết hợp giữa kỹ thuật thị giác máy tính nhận dạng khuôn mặt (EmguCV/PCA) trên máy tính và mạch điều khiển nhúng Arduino Nano. Hệ thống vận hành ổn định trong điều kiện chụp chính diện, đủ sáng, có khả năng nhận diện 2 đến 3 khuôn mặt đồng thời và tích hợp lớp bảo vệ dự phòng bằng bàn phím ma trận tự động ghi lại hình ảnh kẻ đột nhập. Dù còn phụ thuộc vào máy tính xử lý trung tâm và chịu ảnh hưởng bởi góc nghiêng hay ánh sáng môi trường, công trình đã thể hiện rõ giải pháp kỹ thuật khả thi, chi phí thấp cho bài toán kiểm soát an ninh dân dụng.