
















Preview text:
  lOMoARcPSD| 36625228    
B Ộ GIÁO D ỤC ĐÀO TẠ O   
TRƯỜNG ĐẠ I H ỌC SƯ PHẠ M K Ỹ THU Ậ T TP. H Ồ CHÍ MINH                           FINAL PROJECT     
Môn h ọ c: X Ử LÍ  Ả NH     Đề   
  tài : H Ệ  TH ỐNG ĐIỂ M DANH     
B Ằ NG NH Ậ N DI Ệ N KHUÔN M Ặ T              
SVTH: Nguy ễ n Hoàng Minh Ti ế n - 20151577      
 Hu ỳ nh Thanh Duy - 20151180              
GVHD: TS. Nguy ễn Văn Thái            
TP.H Ồ   CHÍ MINH, NGÀY 17 THÁNG 6 NĂM 2022             lOMoAR cPSD| 36625228 LỜI CẢM ƠN  
Trước tiên chúng em xin ược bày tỏ sự trân trọng và lòng biết ơn ối với thầy 
giáo Nguyễn Văn Thái. Trong suốt quá thời gian học và làm ồ án môn học, thầy ã 
dành rất nhiều thời gian quý báu ể tận tình chỉ bảo, hướng dẫn, ịnh hướng cho em  thực hiện ồ án.   
Chúng em xin ược cảm ơn các thây cô giáo Khoa Điện Điện Tử - Đại Học Sư 
Phạm Kỹ Thuật Thành Phố Hồ Chí Minh ã giảng dạy trong quá trình học tập, thực 
hành, làm bài tập, giúp em hiểu thấu áo hơn các nội dung học tập và những hạn chế 
cần khắc phục trong việc học tập, nghiên cứu và thực hiện ồ án này.            lOMoARcPSD| 36625228 MỤC LỤC    
MỞ ĐẦU ..................................................................................................................... 3 
PHẦN 1: GIỚI THIỆU TỔNG QUAN ....................................................................... 4 
1.1. Tổng quan về nhận diện khuôn mặt .............................................................. 4 
1.2. Phân tích bài toán ............................................................................................ 5 
1.3. Các công cụ ....................................................................................................... 5 
1.3.1. Ngôn ngữ lập trình C# ............................................................................... 5 
1.3.2. Thư viện EmguCV ..................................................................................... 5 
1.3.3. Visual Studio .............................................................................................. 5 
1.3.4. Thuật toán Haar Like Feature ................................................................. 6 
PHẦN 2: TRÌNH BÀY GIAO DIỆN .......................................................................... 6 
PHẦN 3: GIẢI THÍCH CODE .................................................................................... 7 
PHẦN 4: HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH................................................... 12 
PHẦN 5: HẠN CHẾ, KẾT LUẬN ............................................................................ 15 
5.1. Hạn chế ........................................................................................................... 15 
5.2. Kết luận ........................................................................................................... 16 
Tài liệu tham khảo ..................................................................................................... 16           MỞ ĐẦU 
Khuôn mặt óng vai trò quan trọng trong quá trình giao tiếp giữa người với người, và 
cũng mang một lượng thông tin giàu có, chẳng hạn có thế xác ịnh giới tính, tuổi tác, 
trạng thái cảm xúc của người ó,... hơn nữa khảo sát chuyển ộng, của các ường nét 
trên khuôn mặt có thể biết ược người ó ang muốn nói gì.        lOMoARcPSD| 36625228
Trong hệ thống nhận dạng người thì quá trình nhận dạng khuôn mặt ược ánh giá là 
bước khó khăn và quan trọng nhất so với các bước còn lại của hệ thống. Do ó, nhận 
dạng khuôn mặt là iều quan trọng và cần thiết.   
Nhận dạng khuôn mặt người là một công nghệ ược ứng dụng rông rãi trong ời sống 
hằng ngày của con người như các hệ thống giám sát, quản lí vào ra, tìm kiếm thông 
tin người nổi tiếng,... có rất nhiều phương pháp nhận dạng khuôn mặt ể nâng cao 
hiệu suất tuy nhiên dù ít hay nhiều những phương pháp này ang vấp phải những thử 
thách về ộ sáng, hướng nghiên, kích thước ảnh, hay ảnh hưởng của tham số môi  trường.   
Cùng với sự phát triển của xã hội, vấn ề an ninh, bảo mật ang ược yêu cầu khắt khe 
tại mọi quốc gia trên thế giới. Các hệ thống nhận dạng con người, ồ vật... ược ra ời 
và phát triển với ộ tin cậy ngày càng cao. Với cách tiếp cận ối tượng nhận dạng theo 
phương pháp này, chúng ta có thể thu nhập ược nhiều thông tin từ ối tượng hơn, mà 
không cần tác ộng nhiều ến ối tượng cũng vấn ảm bảo tính chính xác, an toàn, thuận 
tiện. Trong phạm vi bài báo cáo này chúng em xin ược trình bài quá trình thực hiện 
iểm danh qua nhận diện khuôn mặt qua thư viện emgucv. Cuối cùng, mặc dù ã cố 
gắng rất nhiều nhưng do thời gian có hạn, khả năng dịch và hiểu tài liệu chưa tốtnên 
nội dung ồ án này không thể tránh khỏi những thiếu sót, rất mong ược sự chỉ bảo, 
góp ý của các thầy cô và các bạn.        
PHẦN 1: GIỚI THIỆU TỔNG QUAN 
1.1. Tổng quan về nhận diện khuôn mặt   
Hơn một thập kỉ qua có rất nhiều công trình nghiên cứu về bài toán xác ịnh 
khuôn mặt người từ ảnh en trắng, xám ến ảnh màu như ngày nay. Các nhà nghiên 
cứu i từ bài toán ơn giản, mỗi ảnh chỉ có một mặt người nhìn thẳng vào thiết bị thu 
hình và ầu ở tư thế thẳng ứng trong ảnh en trắng. Cho ến ngày nay bài toán mở 
rộng cho ảnh màu, có nhiều khuôn mặt trong cùng một ảnh, có nhiều tư thế thay ổi 
trong ảnh. Không chỉ những thế mà còn mở rộng cả phạm vi từ môi trường xung 
quanh khá ơn giản cho ến môi trường xung quanh phức tạp nhầm áp ứng nhu cầu  của con người.      lOMoARcPSD| 36625228  
Trong những năm gần ây các ứng dụng về trí tuệ nhân tạo ngày càng phát 
triển và ược ánh giá cao. Một lĩnh vực ang ược quan tâm của trí tuệ nhân tạo nhằm 
tạo ra các ứng dụng thông minh, có tính người ó là nhận dạng. Trong ề tài này 
chúng em chọn ối tượng là khuôn mặt. 
1.2. Phân tích bài toán   
Bài toán Nhận Diện Khuôn Mặt (Face Recognition) bao gồm các bài toán 
khác nhau như Phát hiện khuôn mặt (Face detection), ánh dấu (Facial 
landmarking), trích chọn (rút) ặc trưng (feature extration), gán nhãn, phân lớp  (classification)…  1.3. Các công cụ   
Để giải quyết bài toán trong project này chúng em sử dụng thư viện 
EmguCV và ngôn ngữ lập C# trên phần mềm Visual Studio, thuật toán mà chúng 
em sử dụng là thuật toán Haar Like Feature. 
1.3.1. Ngôn ngữ lập trình C#   
C# (hay C sharp) là một ngôn ngữ lập trình ơn giản, ược phát triển bởi ội ngũ kỹ 
sư của Microsoft vào năm 2000. C# là ngôn ngữ lập trình hiện ại, hướng ối tượng và 
ược xây dựng trên nền tảng của hai ngôn ngữ mạnh nhất là C++ và Java.    
Trong các ứng dụng Windows truyền thống, mã nguồn chương trình ược 
biên dịch trực tiếp thành mã thực thi của hệ iều hành. Trong các ứng dụng sử dụng 
.NET Framework, mã nguồn chương trình (C#, VB.NET) ược biên dịch thành mã 
ngôn ngữ trung gian MSIL (Microsoft intermediate language). Sau ó mã này ược 
biên dịch bởi Common Language Runtime (CLR) ể trở thành mã thực thi của hệ  iều hành. 
1.3.2. Thư viện EmguCV 
EmguCV là thư viện xử lý ảnh dành riêng cho C#, ược xây dựng từ 
OpenCV và có phát triển thêm. Thực ra EmguCV là lớp bao của OpenCV do ó 
EmgCV chỉ khác cách sử dụng, cấu trúc hàm…Trong EmguCV vẫn có thể sử dụng 
lại các hàm của OpenCV bằng câu lệnh Cvlnvoke.  1.3.3. Visual Studio 
Visual studio là một trong những công cụ hỗ trợ lập trình website rất nổi 
tiếng nhất hiện nay của Mcrosoft và chưa có một phần mềm nào có thể thay thế ược 
nó. Visual Studio ược viết bằng 2 ngôn ngữ ó chính là C# và VB+. Đây là 2 ngôn 
ngữ lập trình giúp người dùng có thể lập trình ược hệ thống một các dễ dàng và 
nhanh chóng nhất thông qua Visual Studio.      lOMoARcPSD| 36625228
Visual Studio là một phần mềm lập trình hệ thống ược sản xuất trực tiếp từ 
Microsoft. Từ khi ra ời ến nay, Visual Studio ã có rất nhiều các phiên bản sử dụng 
khác nhau. Điều ó, giúp cho người dùng có thể lựa chọn ược phiên bản tương thích 
với dòng máy của mình cũng như cấu hình sử dụng phù hợp nhất. 
Bên cạnh ó, Visual Studio còn cho phép người dùng có thể tự chọn lựa giao 
diện chính cho máy của mình tùy thuộc vào nhu cầu sử dụng. 
1.3.4. Thuật toán Haar Like Feature 
Phát hiện mặt người là bài toán cơ bản ược xây dựng từ nhiều năm nay, có 
nhiều phương pháp ược ưa ra như sử dụng template matching, neuron 
network…Cho tới nay bài toán này hầu như ược giải quyết dựa trên phương pháp 
sử dụng các ặc trưng haar like. Phương pháp này ược cho là ơn giản và kết quả phát 
hiện là tương ối cao, lên tới 98%, các hãng sản xuất máy ảnh như Canon, 
Samsung… cũng ã tích hợp nó vào trong các sản phẩm của mình. Và trong bài báo 
cáo này, em sẽ sử dụng phương pháp pháp phát hiện khuôn mặt của Violas và John 
ược cài ặt trong Emgucv.      
PHẦN 2: TRÌNH BÀY GIAO DIỆN   
Khi nhấn “Bắt Đầu” camera sẽ ược bật và sinh viên bắt ầu thực hiện việc iểm 
danh nếu trường hợp chương trình chạy lần ầu cần phải thêm sinh viên vào lớp.      lOMoARcPSD| 36625228
Những sinh viên ã iểm danh sẽ hiện trên trên “ Danh Sách Sinh Viên Có Mặt”. Kết 
thúc buổi học ấn nút tổng kết ể xem số sinh viên vắng mặt, số sinh viên vắt mặt sẽ 
ược hiển thị ở “Danh Sách Sinh Viên Vắng Mặt”.       
PHẦN 3: GIẢI THÍCH CODE 
Khai báo các thư viện cần thiết:    
Khởi tạo các biến và vector ể thao tác:    
Chương trình nút nhấn “Bắt ầu”:  
Dùng ể bật camera và bắt ầu chương trình      lOMoARcPSD| 36625228  
Chương trình nút nhấn “Thêm Sinh Viên”:  
Dùng ể thêm thông tin của sinh viên vào Database  - 
Nếu phát hiện ược khuôn mặt: khi nhấn nút chương trình sẽ tiến hành chụp 
ảnh khuôn mặt, chuyển ảnh về ảnh mức xám và lưu ảnh vào thư mục TrainedFaces, 
tên cho ảnh ược người dùng nhập vào textbox1 cũng sẽ ược lưu lại vào file 
TrainedLabels.txt trong thư mục TrainedFaces.  - 
Nếu không phát hiện khuôn mặt: hiển thị thông báo yêu cầu người dùng kiểm 
tra lại camera hoặc vị trí khuôn mặt so với camera.      lOMoARcPSD| 36625228  
Chương trình nút nhấn “Điểm danh”:   - 
Nếu phát hiện khuôn mặt, sinh viên sẽ ược iểm danh, tên sinh viên sẽ ược ghi  vào listBox2.  - 
Nếu không phát hiện khuôn mặt, chương trình sẽ hiện thông báo không phát 
hiện ược khuôn mặt và yêu cầu thử lại.      lOMoARcPSD| 36625228  
Chương trình nút nhấn “Tổng kết”:  
Những sinh viên trong lớp chưa có tên trong listBox2 ( iểm danh) sẽ ược ghi tên vào  listBox3 (vắng).   
Hàm nhận diện và ánh dấu khuôn mặt       lOMoARcPSD| 36625228       
Chương trình chính       lOMoARcPSD| 36625228
Lấy dữ liệu từ file haarcascade_frontalface_default.xml ể nhận diện khuôn mặt.     
PHẦN 4: HOẠT ĐỘNG CỦA CHƯƠNG TRÌNH 
Chương trình sau khi chạy      lOMoARcPSD| 36625228  
Khi chưa ấn nút Bắt ầu nhưng ấn nút Thêm Sinh Viên   
Chương trình sau khi ấn nút Bắt ầu      lOMoARcPSD| 36625228  
Thông báo thêm sinh viên thành công, tên sinh viên ược lưu vào listBox2       
Khi ấn nút iểm danh mà không phát hiện khuôn mặt      lOMoARcPSD| 36625228   Khi ấn nút tổng kết   
PHẦN 5: HẠN CHẾ, KẾT LUẬN  5.1. Hạn chế 
Trong quá trình thực hiện, có một số vấn ề phát sinh mà chúng em chưa giải  quyết ược như sau:      lOMoARcPSD| 36625228
• Sinh viên chưa ược thêm dữ liệu vào Database khi ấn iểm danh sẽ lấy thông tin 
ngẫu nhiên của sinh viên ã ược thêm thông tin vào Database. 
• Cách giải quyết các vấn ề chưa tối ưu. 
• Trình bày bố cục chưa ẹp mắt  5.2. Kết luận 
Về cơ bản, chúng em ã hoàn thành ược dự án với ộ chính xác và tính ổn ịnh 
tương ối. Về mặt giao diện, chương trình có ầy ủ các phím chức năng cần thiết. Tuy 
nhiên, ể tiến xa hơn, nhóm sẽ ưa ra một số phương án phát triển cũng như hướng áp  dụng. 
Trước sự phát triển của thời ại công nghệ số, iểm danh bằng nhận diện khuôn 
mặt ã ược ứng dụng trên rất nhiều lĩnh vực. Giải pháp này ược ứng dụng rộng rãi 
nhất trong mô hình quản lý nhân viên và nhận diện iểm danh tại trường học. 
Ứng dụng iểm danh nhận diện khuôn mặt trong trường học: Hệ iểm danh 
nhận diện khuôn mặt với bộ phận camera có thể quét gương mặt của giáo viên, 
nhân viên và học sinh và lưu vào bộ nhớ.Thiết bị này sẽ xử lý hình ảnh một cách 
nhanh chóng, chính xác, ổn ịnh chống gian lận chấm công hoặc iểm danh hộ. 
Ứng dụng cho doanh nghiệp, công sở: Hệ thống chấm công với bộ phận 
camera có thể quét gương mặt của các nhân viên trong công ty và lưu lại trong bộ 
nhớ. Thiết bị này sẽ xử lý hình ảnh rất nhanh chóng, hoạt ộng ổn ịnh, có tính bảo 
mật cao, hạn chế mọi thủ tục giấy tờ rườm rà cũng như những trường hợp gian lận  chấm công hộ. 
Điểm danh bằng nhận diện khuôn mặt ngày nay ược ứng dụng rộng rãi trong 
cuộc sống, trong doanh nghiệp và ở môi trường học ường. Cuộc sống ngày càng 
phát triển, do vậy nhu cầu về việc sử dụng các thiết bị công nghệ phục vụ ời sống 
ngày càng trở nên cần thiết.       
Tài liệu tham khảo 
1. ĐỀ TÀI : ĐIỂM DANH BẰNG NHẬN DIỆN KHUÔN MẶT – Nguyễn 
Nguyên Ngọc Phú (https://www.slideshare.net/nataliej4/ti-im-danh-bng-nhn-
dinkhun-mt-ging-vin-pgsts-hunh-cng-php-6773725) 
2. Nhận dạng mặt người với giải thuật haar Like feature – Cascade of boosted 
classifiers và ặc trưng sift (https://tailieutuoi.com/tai-lieu/nhan-dang-mat-     lOMoARcPSD| 36625228
nguoivoi-giai-thuat-haar-like-feature-cascade-of-boosted-classifiers-va-dac-trung- sift) 
3. https://viblo.asia/p/tim-hieu-ve-phuong-phap-nhan-dien-khuon-mat-cua- violasjohn-ByEZkNVyKQ0 
4. https://codegym.vn/blog/2020/06/29/c-la-gi-tim-hieu-ve-ngon-ngu-lap-trinh-c/ 
5. https://123docz.net/trich-doan/885205-thu-vien-xu-ly-anh-opencv-emgucv.htm      
