TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP NGHIÊN CỨU, XÂY DỰNG CHƯƠNG TRÌNH PHẦN MỀM NHẬN DẠNG KHUÔN MẶT QUA CAMERA Sinh viên thực hiện:
Trang 1TRƯỜNG ĐẠI HỌC TÀI NGUYÊN VÀ MÔI TRƯỜNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN TỐT NGHIỆP
NGHIÊN CỨU, XÂY DỰNG CHƯƠNG TRÌNH PHẦN MỀM NHẬN DẠNG
KHUÔN MẶT QUA CAMERA
Sinh viên thực hiện: Kiều Anh Sơn
Giáo viên hướng dẫn: TS Trần Cảnh Dương
Trang 2
LỜI CÁM ƠN
Em xin chân thành cảm ơn Trung tâm Công nghệ thông tin, khoa Công nghệ thông tinvà trường Đại học Tài nguyên và Môi trường Hà Nội đã tạo điều kiện để
em thực hiện đồ án tốt nghiệp đại học này
Em xin gửi lời cám ơn sâu sắc tới Tiến sĩ Trần Cảnh Dương đã tận tình hướng dẫn em trong suốt thời gian thực hiện đề tài Qua thời gian được thầy hướng dẫn,
em đã biết cách làm việc khoa học hơn, nâng cao năng lực, bổ sung nhiều kiến thức chuyên ngành phục vụ đồ án tốt nghiệp cũng như hoàn thiện kĩ năng giao tiếp, kỹ năng tìm hiểu tài liệu,
Em xin chân thành cảm ơn các Thầy, Cô giáo trong Khoa CNTT đã truyền đạt cho em những kiến thức quý báu, những bài học giá trị trong những năm học vừa qua, giúp em có một nền tảng lý thuyết vững chắc để phục vụ con đường theo đuổi với Công nghệ thông tin sau này
Em xin cảm ơn các thầy cô, các cán bộ tại Trung tâm CNTT – ĐH TN&MT HN
đã tạo điều kiện hỗ trợ, trao đổi, góp ý, giúp đỡ em trong quá trình hoàn thiện đồ án tốt nghiệp
Tuy nhiên do còn gặp nhiều khó khăn trong quá trình tiếp cận thực tế, hạn chế
về kiến thức và kinh nghiệm nên đồ án không thể tránh khỏi sai sót Vì vậy em rất mong được sự góp ý của quý Thầy, Cô giáo và các bạn để đồ án tốt nghiệp được hoàn chỉnh và ứng dụng tốt vào thực tiễn
Em xin chân thành cám ơn./
Sinh viên thực hiện
Kiều Anh Sơn
Trang 3LỜI MỞ ĐẦU
Chúng ta đã biết thế giới ngày nay với sự phát triển mạnh mẽ của kỹ thuật số và mạng toàn cầu, vấn đề đảm bảo an toàn thông tin, vật chất và quản lý nhân sự trở nên ngày càng quan trọng Hiện nay, những công nghệ hiện đại đã cho phép xác thực hay nhận dạng một cá nhân dựa vào các đặc trưng sinh lý học của người đó như đặc điểm vân tay, gương mặt, gen,… hoặc dựa trên những đặc điểm liên quan đến chữ viết, giọng nói v.v.v
Nhận dạng gương mặt là một trong số ít các phương pháp nhận dạng dựa vào đặc trưng sinh lý cho kết quả chính xác cao và thuận tiện sử dụng.Các chương trình
về nhận dạng có nhiều ứng dụng chẳng hạn như nhận dạng tội phạm, kiểm soát truy cập các hệ thống máy tính, giải pháp bảo mật bổ sung cho các giao dịch rút tiền tự động ATM, đối chiếu ảnh trong các hoạt động của ngành luật pháp, hay các ứng dụng giao tiếp người – máy, hoặc quản lý nhân sự, chấm công trong một đơn
vị.Xuất phát từ nhu cầu thực tế nên em đã lựa chọn đề tài: “Nghiên cứu, xây dựng
chương trình phần mềm nhận dạng khuôn mặt qua camera”
Qua quá trình nghiên cứu, tham khảo một số chương trình nhận dạng, trao đổi cùng với giảng viên, cán bộ hướng dẫn tại Trung tâm CNTT – trường ĐH TN&MT
HN đã giúp em nâng cao kỹ năng thiết kế, lập trình bằng ngôn ngữ C#; kỹ năng nghiên cứu, tìm hiểu tài liệu cụ thể ở đây là các thuật toán nhận dạng khuôn mặt, thư viện mã nguồn mở OpenCV và xây dựng được chương trình
Tuy nhiên do thời gian có hạn nên em chỉ thực hiện nghiên cứu, tìm hiểu sơ lược thuật toán nhận dạng khuôn mặt PCA và xây dựng mô phỏng được chương trình nhận dạng khuôn mặt kết hợp tính năng quản lý, chấm công nhân viên ở mức độ đơn giản
Nội dung của bài báo cáo này được chia làm 3 chương:
- Chương 1: CƠ SỞ LÝ THUYẾT NHẬN DẠNG KHUÔN MẶT
- Chương 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG NHẬN DẠNG KHUÔN MẶT QUA CAMERA KẾT HỢP QUẢN LÝ NHÂN VIÊN, ĐIỂM DANH
Trang 4MỤC LỤC
LỜI CÁM ƠN 1
LỜI MỞ ĐẦU 2
DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT 8
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT VỀ HỆ THỐNG NHẬN DẠNG KHUÔN MẶT 9
1.1 Phương pháp nhận dạng khuôn mặt người 9
1.2 Nhận dạng ảnh và phép biến đổi tuyến tính 10
1.2.1Nhận dạng ảnh 10
1.2.2Các bước của quá trình nhận dạng 11
1.2.3Phép biến đổi tuyến tính 12
1.3 Nhận dạng khuôn mặt dùng thuật toán PCA 12 1.3.1Nguyên lý tổng quát 12
1.3.2Ưu và nhược điểm của phương pháp PCA 14
1.3.3Nội dung thuật toán PCA 14
1.3.4Áp dụng PCA trong bài toán nhận dạng khuôn mặt 16
CHƯƠNG 2: PHÂN TÍCH THIẾT KẾ HỆ THỐNG NHẬN DẠNG KHUÔN MẶT KẾT HỢP QUẢN LÝ NHÂN VIÊN, ĐIỂM DANH 20
2.1 Mô tả hệ thống 20
2.2 Yêu cầu hệ thống 20
2.3 Yêu cầu tra cứu: 20
2.4 Yêu cầu tính toán 20
2.5 Yêu cầu kết xuất 21
2.6 Yêu cầu phi chức năng 21
2.7 Các sơ đồ mô tả hệ thống 21
2.7.1 Sơ đồ use case 21
2.7.2 Sơ đồ tuần tự 23
2.7.3Sơ đồ hoạt động 28
Trang 5CHƯƠNG 3: TÌM HIỂU THƯ VIỆN OPENCV VÀ DEMO CHƯƠNG
TRÌNH 31
3.1 Thư viện OpenCV 31
3.1.1 Khái niệm về thư viện OpenCV 31
3.1.2Một số thao tác xử lý ảnh cơ bản: 32
3.2 Demo chương trình 37
3.2.1Form đăng nhập 37
3.2.2Form chính 38
3.2.3Form thêm nhân viên 39
3.2.4Xóa thông tin của nhân viên 41
3.2.5Xuất danh sách nhân viên sang excel 42
3.2.6Chấm công 43
3.2.7Form thống kê 45
KẾT LUẬN 47
TÀI LIỆU THAM KHẢO 48
PHỤ LỤC 49
Trang 6DANH MỤC HÌNH
Hình 1.1: Hình dung cơ bản về bài toán nhận dạng 9
Hình 1.2: Biến đổi ảnh thành vector 10
Hình 1.3: Thể hiện ảnh trong không gian 10
Hình 1.4: Không gian mới p1 13
Hình 1.5: Không gian mới (p1,p2) theo hướng phân bố mạnh nhất của các vector trong không gian (x1,x2) tìm theo PCA 13
Hình 1.6: Tập ảnh traininng 17
Hình 1.7: Mỗi ảnh là tổ hợp tuyến tính các vector của khuôn mặt riêng 19
Hình 3.1: Một số ứng dụng OpenCV 31
Hình 3.2: Chuyển từ ảnh màu sang ảnh đa mức xám 32
Hình 3.3: Lọc trung bình (Mean Filter) 33
Hình 3.4: Lọc trung vị (Median Filter) 34
Hình 3.5: Dò biên Sobel 35
Hình 3.6: Dò biên Canny 35
Hình 3.7: Cân bằng histogram 36
Hình 3.8: Demo PM - Giao diện khởi động 37
Hình 3.9: Demo PM - Cửa sổ đăng nhập 37
Hình 3.10: Demo PM - Chương trình chính 38
Hình 3.11: Demo PM – Danh sách phòng ban 38
Hình 3.12: Demo PM – Danh sách nhân viên 39
Hình 3.13: Demo PM – Chức năng 39
Hình 3.14: Demo PM – Thêm nhân viên 1 40
Hình 3.15: Demo PM – Thêm nhân viên 2 40
Hình 3.16: Demo PM – Thêm nhân viên 3 41
Hình 3.17: Demo PM – Xóa nhân viên 42
Hình 3.18: Demo Pm – Xuất DS NV sang excel 1 42
Hình 3.19: Demo PM – Xuất DS NV sang excel 2 43
Hình 3.20: Demo PM – Chấm công 1 43
Trang 7Hình 3.21: Demo PM – chấm công 2 44
Hình 3.22: Demo PM – Chấm công 3 44
Hình 3.23: Demo PM – chấm công 4 45
Hình 3.24: Demo PM – thống kê 1 45
Hình 3.25: Demo PM – thống kê 2 46
Hình 3.26: Demo PM – xem thống kê số lần có mặt3 46
Trang 8DANH MỤC SƠ ĐỒ
Sơ đồ 2.1: Use case mức tổng quát 21
Sơ đồ 2.2: Use case phân rã cho chức năng Quản lý nhân viên 22
Sơ đồ 2.3: Use case phân rã cho chức năng Quản lý thông tin nhân viên 22
Sơ đồ 2.4: Use case phân rã cho chức năng Quản lý công 23
Sơ đồ 2.5: Tuần tự chức năng điểm danh 23
Sơ đồ 2.6: Tuần tự chức năng sửa 24
Sơ đồ 2.7: Tuần tự chức năng thêm 24
Sơ đồ 2.8: Tuần tự chức năng thống kê 25
Sơ đồ 2.9: Tuần tự chức năng Tìm 26
Sơ đồ 2.10: Tuần tự chức năng Xóa 27
Sơ đồ 2.11: Sơ đồ hoạt động chức năng Điểm danh 28
Sơ đồ 2.12: Hoạt động chức năng Tìm 28
Sơ đồ 2.13: Hoạt động chức năng Sửa 29
Sơ đồ 2.14: Hoạt động chức năng Thêm 29
Sơ đồ 2.15: Hoạt động chức năng thống kê 30
Sơ đồ 2.16: Hoạt động chức năng Xóa 30
Trang 9DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT