ĐỀ TÀI: PHẦN MỀM NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH TRÊN DESKTOP Giảng viên hướng dẫn : ThS. LÊ BÁ CƯỜNG Hà nôi, tháng 09 năm 2021 1 LỜI CẢM ƠN Trước tiên em xin được bày tỏ sự trân trọng và lòng biết ơn đối với thầy giáo ThS. Lê Bá Cường – Giảng viên khoa An toàn Thông tin. Trong suốt thời gian học và làm đồ án tốt nghiệp, 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. Em xin được cảm ơn các thầy cô giáo Học viện kỹ thuật mật mã đã 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 bản đồ án này. Em xin cảm ơn các bạn bè và nhất là các thành viên trong gia đình đã tạo mọi điều kiện tốt nhất, động viên, cổ vũ trong suốt quá trình học tập và đồ án tốt nghiệp. Nhận xét của cán bộ hướng dẫn………………………………... ………………………………………………………………….. ………………………………………………………………….. Điểm chuyên cần……………………………………………….. Điểm báo cáo………………………………………………….... Xác nhận của cán bộ hướng dẫn MỞ ĐẦU Công nghệ thông tin ngày càng phát triển và có vai trò hết sức quan trọng không thể thiếu trong cuộc sống hiện đại. Con người ngày càng tạo ra những cỗ máy thông minh có khả năng tự nhận biết và xử lí được các công việc một cách tự động, phục vụ cho lợi ích của con người. Trong những năm gần đây, một trong những bài toán nhận được nhiều sự quan tâm và tốn nhiều công sức nhất của lĩnh vực công nghệ thông tin, đó chính là bài toán nhận dạng. Tuy mới xuất hiện chưa lâu nhưng nó đã rất được quan tâm vì tính ứng dụng thực tế của bài toán cũng như sự phức tạp của nó.Bài toán nhận dạng có rất nhiều lĩnh vực như: nhận dạng vất chất(nước, lửa, đất, đá, gỗ..) nhận dạng chữ viết, nhận dạng giọng nói, nhận dang hình dáng, nhận dạng khuôn mặt.. trong đó phổ biến và được ứng dụng nhiều hơn cả là bài toán nhận diện khuôn mặt.Để nhận dạng được khuôn mặt, bước đầu tiên để nhận dạng là phát hiện ra khuôn mặt, điều này thực sự là quan trọng và hết sức khó khăn. Cho đến tận bây giờ, các nhà nghiên cứu vẫn chưa đạt được sự ưng ý trong việc giải quyết các khó khăn của bài toán và cho kết quả hoàn toàn đúng. Tuy nhiên, những gì đã đạt được cũng đủ để chúng ta áp dụng rộng rãi và đem lại những lợi ích to lớn trong cuộc sống.Với sự hấp dẫn của bài toán và những thách thức còn đang ở phía trước, với niềm đam mê công nghệ hiện đại và những ứng dụng thực tế tuyệt với của nó, với khát khao khám phá và chinh phục những chi thức mới mẻ. Hiện nay, 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. Hệ thống nhận dạng con người được ra đời với độ tin cậy ngày càng cao. Một trong những bài toán nhận dạng con người rất được quan tâm hiện nay là nhận dạng khuôn mặt. Vì nhận dạng khuôn mặt là cách mà con người sử dụng để phân biệt nhau. Bên cạnh đó, việc thu thập, xử lí thông tin qua ảnh để nhận biết đang được quan tâm và ứng dụng rộng rãi. Với phương pháp này, chúng ta có thể thu thập được nhiều thông tin từ đối tượng mà không cần tác động nhiều đối tượng nghiên cứu. Sự phát triẻn của khoa học máy tính tạo môi trường thuận lợi cho bài toán nhận dạng mặt người từ ảnh số. Việc áp dụng nhận dạng khuôn mặt được sử dụng rộng rãi trong các trường học, cơ quan, văn phòng. Một trong những nhu cầu sử dụng nhận dạng khuôn mặt đó là điểm danh. Vì vậy, nên nhóm em chọn đề tài nghiên cứu: PHẦN MỀM NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH TRÊN DESKTOP. MỤC LỤC LỜI CẢM ƠN 2 MỞ ĐẦU 3 MỤC LỤC 5 DANH SÁCH HÌNH ẢNH: 6 DANH SÁCH BẢNG: 8 CHƯƠNG I: PHÂN TÍCH YÊU CẦU HỆ THỐNG ỨNG DỤNG DESKTOP NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH 10 1. Tổng quan hệ thống ứng dụng desktop nhận diện mặt và điểm danh 10 2. Yêu cầu hệ thống. 11 2.1. Yêu cầu chức năng 11 2.2. Yêu cầu phi chức năng. 11 3. Các công nghệ sử dụng. 11 3.1. Thiết giao diện ứng dụng ( PyQt5) 12 3.2. Thiết kế back end 14 3.3. Mổi trường lập trình Visual Studio Code 18 4. Nghiên cứu tổng quan 19 4.1. Bài toán nhận dạng mặt người. 19 4.2. Tổng quan kiến trúc của một hệ thống nhận dạng khuôn mặt. 20 4.3. Hạn chế, tồn tại của các phương pháp. 20 CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG ỨNG DỤNG DESKTOP NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH. 23 1. Thiết kế hệ thống tổng thể 23 2. Phân tích yêu cầu hệ thống. 23 3. Thiết kế cơ sở dữ liệu 24 4. Xây dựng hệ thống. 26 4.1. Danh sách các Actor 26 4.2. Danh sách Use Case 26 4.3. Sơ đồ Use Case chi tiết 28 4.4. Đặc tả Use Case 32 4.5. Biểu đồ hoạt động và biểu đồ tuần tự. 38 4.6. Phân tích kiến trúc 46 CHƯƠNG III: KẾT QUẢ THỰC NGHIÊM 47 1. Quá trình triển khai hê ̣thống: 47 1.1. Traning hình ảnh nhân viên và lưu trữ 50 1.2. Lớp detector nhận diện khuôn mặt đã traning 52 2. Giới thiệu một số giao diện của hệ thống 53 CHƯƠNG IV: KẾT LUÂN VÀ HƯỚNG PHÁT TRIỂN 59 1. Kết luận 59 2 Hướng phát triển 59 DANH MỤC TÀI LIỆU THAM KHẢO 60 DANH SÁCH HÌNH ẢNH: Hình 1: Ngôn ngữ lập trình Python Hình 2. Giới thiệu về thư viện OpenCV Hình 3: Giới thiệu SQLite Hình 4:Môi trường lập trình Visual Studio Code Hình 5: Hệ thống nhận dạng khuôn mặt Hình 6: Các bước chính trong hệ thống nhận dạng Hình 7: Luồng hoạt động tổng thể của hệ thống Hình 8: Database FaceData.db và data.sqlie Hình 9: Sơ đồ Use Case tổng quan. Hình 10: Use Case Đăng xuất Hình 11: Use Case Đăng xuất Hình 12: Use Case Thay đổi mật khẩu Hình 13: Use Case Thêm hoặc sửa Nhân viên Hình 14: Use Case xóa Nhân viên Hình 15: Đặc tả Use Case Tìm thông tin nhân viên Hình 16: Use Case Training Data Hình 17: Use Case Xem lịch Hình 18: Use Case Điểm danh Hình 19: Use Case Xem lịch Hình 20: Biểu đồ hoạt động đăng nhập Hình 21: Biểu đồ tuần tự Đăng nhập Hình 22: Biểu đồ hoạt động Thay đổi mật khẩu Hình 23: Biểu đồ tuần tự Thay đổi mật khẩu Hình 24: Biểu đồ hoạt động Thêm hoặc sửa thông tin Nhân viên Hình 25: Biểu đồ tuần tự Thêm hoặc sửa thông tin Nhân viên Hình 26: Biểu đồ hoạt động xóa thông tin Nhân viên Hình 27: Biểu đồ tuần tự xóa thông tin Nhân viên Hình 28: Biểu đồ hoạt động Xem lịch Hình 29: Biểu đồ tuần tự Xem lịch Hình 30: Biểu đồ hoạt động Tìm kiếm Hình 31: Biểu đồ tuần tự Tìm kiếm Hình 32: Biểu đồ hoạt động Điểm danh Hình 33 : Biểu đồ tuần tự Điểm danh Hình 34: Biểu đồ hoạt động Xem lịch Hình 35: Biểu đồ tuần tự Xem lịch Hình 36: Phân tích kiến trúc Hình 37: Hình ảnh màn hình chính của ứng dụng Hình 38: Hình ảnh nhận diện khuôn mặt điểm danh Hình 39: Hình ảnh giao diện đăng nhập Admin Hình 40: Hình ảnh chế độ Admin Hình 41: Hình ảnh xem kết quả điểm danh Hình 42: Hình ảnh cập nhật thông tin nhân viên Hình 43: Hình ảnh xóa nhân viên theo ID Hình 44: Hình ảnh cập nhập tài khoản Admin Hình 45: Hình ảnh thông tin trợ giúp Hình 46: Hình ảnh thông tin sản phẩm DANH SÁCH BẢNG: Bảng 1: Tạo database FaceData.db. Bảng 2: Tạo database data.sqlite. Bảng 3: Các Actor tham gia hệ thống điểm danh bằng nhận diện khuôn mặt. Bảng 4: Bảng danh sách Use Case Authentication Bảng 5: Bảng danh sách Use Case Admin Bảng 6: Bảng danh sách Use Case Nhân viên Bảng 7: Đặc tả Use Case Đăng nhập Bảng 8: Đặc tả Use Case Đăng xuất Bảng 9: Đặc tả Use Case Thay đổi mật khẩu Bảng 10: Đặc tả Use Case Thêm hoặc sửa thông tin Nhân viên Bảng 11: Đặc tả Use Case Xóa nhân viên Bảng 12: Đặc tả Use Case Tìm thông Nhân viên Bảng 13: Đặc tả Use Case Xem lịch Bảng 14: Đặc tả Use Case Training Data Bảng 15: Đặc tả Use Case Điểm danh Bảng 16: Đặc tả Use Case Xem lịch CHƯƠNG I: PHÂN TÍCH YÊU CẦU HỆ THỐNG ỨNG DỤNG DESKTOP NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH 1. Tổng quan hệ thống ứng dụng desktop nhận diện mặt và điểm danh. Phổ biến trong đời sống con người đã làm cho lượng thông tin thu được bằng hình ảnh ngày càng tăng. Theo đó, lĩnh vực xử lý ảnh cũng được chú trọng phát triển, ứng dụng rộng rãi trong đời sống xã hội hiện đại. Không chỉ dừng lại ở việc chỉnh sửa, tăng chất lượng hình ảnh mà với công nghệ xử lý ảnh hiện nay chúng ta có thể giải quyết các bài toán nhận dạng chữ viết, nhận dạng dấu vân tay, nhận dạng khuôn mặt… Một trong những bài toán được nhiều người quan tâm nhất của lĩnh vực xử lý ảnh hiện nay đó là nhận dạng khuôn mặt (Face Recognition). Như chúng ta đã biết, 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, nó mang một lượng thông tin giàu có, chẳng hạn như từ khuôn mặt chúng ta có thể xác định giới tính, tuổi tác, chủng tộc, trạng thái cảm xúc, đặc biệt là xác định mối quan hệ với đối tượng (có quen biết hay không). Do đó, bài toán nhận dạng khuôn mặt đóng vai trò quan trọng trong nhiều lĩnh vực đờ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 một người nổi tiếng,…đặc biệt là an ninh, bảo mật. 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êng, kích thước ảnh, hay ảnh hưởng của tham số môi trường. Có hai phương pháp nhận dạng phổ biến hiện nay là nhận dạng dựa trên đặc trưng của các phần tử trên khuôn mặt như biến đổi Gabor Wavelet và mạng Neural, SVM,…và nhận dạng dựa trên xét tổng thể toàn khuôn mặt như phương pháp PCA, LDA, LFA .
HỌC VIÊN KI THUÂT MÂ MA T KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MÔN HỌC THỰC TÂP CƠ SƠ ĐỀ TÀI: PHẦN MỀM NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH TRÊN DESKTOP Giảng viên hướng dẫn : ThS LÊ BA CƯỜNG Ha nôi, tháng 09 năm 2021 LỜI CẢM ƠN Trước tiên em xin bày tỏ trân trọng lòng biết ơn thầy giáo ThS Lê Bá Cường – Giảng viên khoa An toàn Thông tin Trong suốt thời gian học làm đồ án tốt nghiệp, thầy dành nhiều thời gian quý báu để tận tình bảo, hướng dẫn, định hướng cho em thực đồ án Em xin cảm ơn thầy cô giáo Học viện kỹ thuật mật mã giảng dạy trình học tập, thực hành, làm tập, giúp em hiểu thấu đáo nội dung học tập hạn chế cần khắc phục việc học tập, nghiên cứu thực đồ án Em xin cảm ơn bạn bè thành viên gia đình tạo điều kiện tốt nhất, động viên, cổ vũ suốt trình học tập đồ án tốt nghiệp Nhận xét cán hướng dẫn……………………………… ………………………………………………………………… ………………………………………………………………… Điểm chuyên cần……………………………………………… Điểm báo cáo………………………………………………… Xác nhận cán hướng dẫn MƠ ĐẦU Cơng nghệ thơng tin ngày phát triển có vai trị quan trọng khơng thể thiếu sống đại Con người ngày tạo cỗ máy thơng minh có khả tự nhận biết xử lí cơng việc cách tự động, phục vụ cho lợi ích người Trong năm gần đây, toán nhận nhiều quan tâm tốn nhiều công sức lĩnh vực cơng nghệ thơng tin, tốn nhận dạng Tuy xuất chưa lâu quan tâm tính ứng dụng thực tế tốn phức tạp nó.Bài tốn nhận dạng có nhiều lĩnh vực như: nhận dạng vất chất(nước, lửa, đất, đá, gỗ ) nhận dạng chữ viết, nhận dạng giọng nói, nhận dang hình dáng, nhận dạng khn mặt phổ biến ứng dụng nhiều tốn nhận diện khn mặt.Để nhận dạng khuôn mặt, bước để nhận dạng phát khuôn mặt, điều thực quan trọng khó khăn Cho đến tận bây giờ, nhà nghiên cứu chưa đạt ưng ý việc giải khó khăn tốn cho kết hồn tồn Tuy nhiên, đạt đủ để áp dụng rộng rãi đem lại lợi ích to lớn sống.Với hấp dẫn tốn thách thức cịn phía trước, với niềm đam mê công nghệ đại ứng dụng thực tế tuyệt với nó, với khát khao khám phá chinh phục chi thức mẻ Hiện nay, với phát triển xã hội, vấn đề an ninh bảo mật yêu cầu khắt khe Hệ thống nhận dạng người đời với độ tin cậy ngày cao Một toán nhận dạng người quan tâm nhận dạng khn mặt Vì nhận dạng khuôn mặt cách mà người sử dụng để phân biệt Bên cạnh đó, việc thu thập, xử lí thơng tin qua ảnh để nhận biết quan tâm ứng dụng rộng rãi Với phương pháp này, thu thập nhiều thông tin từ đối tượng mà không cần tác động nhiều đối tượng nghiên cứu Sự phát triẻn khoa học máy tính tạo mơi trường thuận lợi cho toán nhận dạng mặt người từ ảnh số Việc áp dụng nhận dạng khuôn mặt sử dụng rộng rãi trường học, quan, văn phòng Một nhu cầu sử dụng nhận dạng khuôn mặt điểm danh Vì vậy, nên nhóm em chọn đề tài nghiên cứu: PHẦN MỀM NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH TRÊN DESKTOP MỤC LỤC LỜI CẢM ƠN MỞ ĐẦU MỤC LỤC DANH SÁCH HÌNH ẢNH: DANH SÁCH BẢNG: CHƯƠNG I: PHÂN TÍCH YÊU CẦU HỆ THỐNG ỨNG DỤNG DESKTOP NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH 10 Tổng quan hệ thống ứng dụng desktop nhận diện mặt điểm danh 10 Yêu cầu hệ thống 11 2.1 Yêu cầu chức 11 2.2 Yêu cầu phi chức 11 Các công nghệ sử dụng 11 3.1 Thiết giao diện ứng dụng ( PyQt5) 12 3.2 Thiết kế back end 14 3.3 Mổi trường lập trình Visual Studio Code 18 Nghiên cứu tổng quan 19 4.1 Bài toán nhận dạng mặt người 19 4.2 Tổng quan kiến trúc hệ thống nhận dạng khuôn mặt 20 4.3 Hạn chế, tồn phương pháp 20 CHƯƠNG II: PHÂN TÍCH THIẾT KẾ HỆ THỐNG ỨNG DỤNG DESKTOP NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH 23 Thiết kế hệ thống tổng thể 23 Phân tích yêu cầu hệ thống 23 Thiết kế sở liệu 24 Xây dựng hệ thống 26 4.1 Danh sách Actor 26 4.2 Danh sách Use Case 26 4.3 Sơ đồ Use Case chi tiết 28 4.4 Đặc tả Use Case 32 4.5 Biểu đồ hoạt động biểu đồ 38 4.6 Phân tích kiến trúc 46 CHƯƠNG III: KẾT QUẢ THỰC NGHIÊM 47 Quá trình triển khai ̣thống: 47 1.1 Traning hình ảnh nhân viên lưu trữ 50 1.2 Lớp detector nhận diện khuôn mặt traning 52 Giới thiệu số giao diện hệ thống 53 CHƯƠNG IV: KẾT LUÂN VÀ HƯỚNG PHÁT TRIỂN 59 Kết luận 59 Hướng phát triển 59 DANH MỤC TÀI LIỆU THAM KHẢO 60 DANH SACH HÌNH ẢNH: Hình 1: Ngơn ngữ lập trình Python Hình Giới thiệu thư viện OpenCV Hình 3: Giới thiệu SQLite Hình 4:Mơi trường lập trình Visual Studio Code Hình 5: Hệ thống nhận dạng khn mặt Hình 6: Các bước hệ thống nhận dạng Hình 7: Luồng hoạt động tổng thể hệ thống Hình 8: Database FaceData.db data.sqlie Hình 9: Sơ đồ Use Case tổng quan Hình 10: Use Case Đăng xuất Hình 11: Use Case Đăng xuất Hình 12: Use Case Thay đổi mật Hình 13: Use Case Thêm sửa Nhân viên Hình 14: Use Case xóa Nhân viên Hình 15: Đặc tả Use Case Tìm thơng tin nhân viên Hình 16: Use Case Training Data Hình 17: Use Case Xem lịch Hình 18: Use Case Điểm danh Hình 19: Use Case Xem lịch Hình 20: Biểu đồ hoạt động đăng nhập Hình 21: Biểu đồ Đăng nhập Hình 22: Biểu đồ hoạt động Thay đổi mật Hình 23: Biểu đồ Thay đổi mật Hình 24: Biểu đồ hoạt động Thêm sửa thông tin Nhân viên Hình 25: Biểu đồ Thêm sửa thơng tin Nhân viên Hình 26: Biểu đồ hoạt động xóa thơng tin Nhân viên Hình 27: Biểu đồ xóa thơng tin Nhân viên Hình 28: Biểu đồ hoạt động Xem lịch Hình 29: Biểu đồ Xem lịch Hình 30: Biểu đồ hoạt động Tìm kiếm Hình 31: Biểu đồ Tìm kiếm Hình 32: Biểu đồ hoạt động Điểm danh Hình 33 : Biểu đồ Điểm danh Hình 34: Biểu đồ hoạt động Xem lịch Hình 35: Biểu đồ Xem lịch Hình 36: Phân tích kiến trúc Hình 37: Hình ảnh hình ứng dụng Hình 38: Hình ảnh nhận diện khn mặt điểm danh Hình 39: Hình ảnh giao diện đăng nhập Admin Hình 40: Hình ảnh chế độ Admin Hình 41: Hình ảnh xem kết điểm danh Hình 42: Hình ảnh cập nhật thơng tin nhân viên Hình 43: Hình ảnh xóa nhân viên theo ID Hình 44: Hình ảnh cập nhập tài khoản Admin Hình 45: Hình ảnh thơng tin trợ giúp Hình 46: Hình ảnh thơng tin sản phẩm DANH SACH BẢNG: Bảng 1: Tạo database FaceData.db Bảng 2: Tạo database data.sqlite Bảng 3: Các Actor tham gia hệ thống điểm danh nhận diện khuôn mặt Bảng 4: Bảng danh sách Use Case Authentication Bảng 5: Bảng danh sách Use Case Admin Bảng 6: Bảng danh sách Use Case Nhân viên Bảng 7: Đặc tả Use Case Đăng nhập Bảng 8: Đặc tả Use Case Đăng xuất Bảng 9: Đặc tả Use Case Thay đổi mật Bảng 10: Đặc tả Use Case Thêm sửa thông tin Nhân viên Bảng 11: Đặc tả Use Case Xóa nhân viên Bảng 12: Đặc tả Use Case Tìm thơng Nhân viên Bảng 13: Đặc tả Use Case Xem lịch Bảng 14: Đặc tả Use Case Training Data Bảng 15: Đặc tả Use Case Điểm danh Bảng 16: Đặc tả Use Case Xem lịch CHƯƠNG I: PHÂN TÍCH YÊU CẦU HỆ THỐNG ỨNG DỤNG DESKTOP NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH Tổng quan hệ thống ứng dụng desktop nhận diện mặt điểm danh Phổ biến đời sống người làm cho lượng thơng tin thu hình ảnh ngày tăng Theo đó, lĩnh vực xử lý ảnh trọng phát triển, ứng dụng rộng rãi đời sống xã hội đại Không dừng lại việc chỉnh sửa, tăng chất lượng hình ảnh mà với công nghệ xử lý ảnh giải tốn nhận dạng chữ viết, nhận dạng dấu vân tay, nhận dạng khuôn mặt… Một toán nhiều người quan tâm lĩnh vực xử lý ảnh nhận dạng khn mặt (Face Recognition) Như biết, khn mặt đóng vai trị quan trọng q trình giao tiếp người với người, mang lượng thơng tin giàu có, chẳng hạn từ khn mặt xác định giới tính, tuổi tác, chủng tộc, trạng thái cảm xúc, đặc biệt xác định mối quan hệ với đối tượng (có quen biết hay khơng) Do đó, tốn nhận dạng khn mặt đóng vai trị quan trọng nhiều lĩnh vực đời sống ngày người hệ thống giám sát, quản lý vào ra, tìm kiếm thông tin người tiếng,…đặc biệt an ninh, bảo mật Có nhiều phương pháp nhận dạng khuôn mặt để nâng cao hiệu suất nhiên dù hay nhiều phương pháp vấp phải thử thách độ sáng, hướng nghiêng, kích thước ảnh, hay ảnh hưởng tham số mơi trường Có hai phương pháp nhận dạng phổ biến nhận dạng dựa đặc trưng phần tử khuôn mặt biến đổi Gabor Wavelet mạng Neural, SVM,…và nhận dạng dựa xét tổng thể toàn khn mặt phương pháp PCA, LDA, LFA Chính nhờ yếu tố trên, nhóm chúng em đưa ý tưởng tạo phần mềm nhận diện khuôn mặt điểm danh Được dựa thư viện OpenCV Yêu cầu hệ thống 2.1 Yêu cầu chức - Xây dựng chức ứng dụng desktop nhận diện khuôn mặt điểm danh: nhận diện, điểm danh, xem thông tin điểm danh, thêm/sửa/xóa nhân viên, cập nhật tài khoản v.v - Quản lý hệ thống nhận diện điểm danh dễ dàng giúp nâng cao khả quản lý thồn tin - Cung câp chức nhận diện khuôn mặt để điểm danh cách dễ dàng - Hỗ trợ chức quản trị chung hệ thống ( admin) người quản trị thêm mới, sữa xóa thơng tin nhân viên cập nhật thông tin (admin) - Cung cấp bảng lịch điểm danh giúp người dùng dễ dàng tra cứu lịch điểm danh bình 2.2 Yêu cầu phi chức - Ứng dụng có giao diện đẹp, dễ dàng sử dụng - Hỗ trợ người dùng có trục trặc - Giúp việc điểm danh trở lên khách quan - Dễ dàng quản lý danh sách nhân viên - Năm bắt phương thức xác định khuôn mặt ( Face Detection) thư viện Open CV - Năm bắt thư viện tạo ứng dụng tạo giao diện PyQt5 - Năm bắt ngơn ngữ lập trình python3 Các cơng nghệ sử dụng • Thơng tin nhân viên lưu vào database hình ảnh đưa vào file dataset với folder tên nhân viên 1.1 Traning hình ảnh nhân viên lưu trữ • Load đường dẫn file thư mục dataset path = 'dataSet' def getImageWithId(path): imagePaths = [os.path.join(path, f) for f in os.listdir(path)] • Tách ID từ tên ảnh, add vào mảng faces vùng ID faces = [] IDs = [] for imagePath in imagePaths: faceImg = Image.open(imagePath).convert('L') faceNp = np.array(faceImg, 'uint8') print(faceNp) Id = int(imagePath.split('\\')[1].split('.')[1]) faces.append(faceNp) IDs.append(Id) cv2.imshow('Training', faceNp) cv2.waitKey(10) return faces, IDs • • Traning ảnh lưu vào file 1.2 Lớp detector nhận diện khn mặt traning • Lấy thơng tin nhân viên từ database def detect_face(self,img): def getProfile(id): conn = sqlite3.connect('FaceData.db') query = 'SELECT * FROM people WHERE ID=' + str(id) cursor = conn.execute(query) profile = None for row in cursor: profile = row conn.close() return profile • Cập nhập nhân viên database query = "UPDATE people SET Name = '"+str(name)+"',Age = ' "+str(age)+"',Gender = '"+str( gender)+"',Phone = "+str(phone)+",Address = ' "+str(address)+"' WHERE ID="+str(id) print("Cập nhật thông tin cơng") • Sử dụng camera để nhận diện def start_webcam(self): QMessageBox.about(self, "THE BOSS(group 98)", "Việc bật camera mấ t từ 5s - 1p!") self.capture=cv2.VideoCapture(0) self.capture.set(cv2.CAP_PROP_FRAME_HEIGHT,480 ) self.capture.set(cv2.CAP_PROP_FRAME_WIDTH, 640) • Hiện thị thơng tin nhân viên lên hình for(x,y,w,h) in faces: cv2.rectangle(img,(x,y), (x+w,y+h),(255,0,0),2) roi_gray = gray[y: y+h, x: x+w] id, confidence = self.recognizer.predict(roi_gray) if confidence < 60: profile = getProfile(id) if(profile != None): self.ID = str(profile[0]) self.Name = str(profile[1]) cv2.putText( img, "Name: "+str(profile[1]), (x+10, y+h+30), fontf ace, 1, (0, 255, 0), 2) cv2.putText( img, "Age: "+str(profile[2]), (x+10, y+h+60), fontfa ce, 1, (0, 255, 0), 2) cv2.putText( img, "Gender: "+str(profile[3]), (x+10, y+h+90), fon tface, 1, (0, 255, 0), 2) else: self.ID = " None" self.Name = "None" cv2.putText( img, "Unknow", (x+10, y+h+30),fontface, 1, (0, 0, 25 5), 2) Giới thiệu số giao diện hệ thống Hình 37: Hình ảnh hình ứng dụng Hình 38: Hình ảnh nhận diện khn mặt điểm danh Hình 39: Hình ảnh giao diện đăng nhập Admin Hình 40: Hình ảnh chế độ Admin Hình 41: Hình ảnh xem kết điểm danh Hình 42: Hình ảnh cập nhật thơng tin nhân viên Hình 43: Hình ảnh xóa nhân viên theo ID Hình 44: Hình ảnh cập nhập tài khoản Admin Hình 45: Hình ảnh thơng tin trợ giúp Hình 46: Hình ảnh thơng tin sản phẩm CHƯƠNG IV: KẾT LUÂN Kết luận VÀ HƯỚNG PHAT TRIỂN Báo cáo đồ án trình bày kiến thức để giải tốn nhận dạng khn mặt người Riêng phương pháp nhận dạng mặt người thư viện OpenCV trình bày chương chương Từ kết cho thấy, độ xác chương trình đạt 70% nhận dạng Tuy nhiên, thời gian hạn chế nên chương trình nhiều khuyết điểm nhiều ý tưởng chưa thực Để chương trình sử dụng thực tế cần nhiều thời gian nghiên cứu giải vấn đề gặp phải, thực ý tưởng để nâng cao tốc độ, hiệu suất độ xác chương trình Các ý tưởng mới: - Thực điểm danh camera giám sát lớp học Không cần phải thực chỉnh tay thơng thường Vì dùng webcam điểm danh có nhiều hạn chế định -Liên kết với trang web để việc cập nhật liệu điều khiển làm từ xa đồng toàn hệ thống Hướng phát triển Trong tương lai, phần mềm nhận dạng khn mặt điểm danh phát triển vượt bậc, dùng thuật toán xử lí ảnh tốt để nhận dạng khn mặt cách xác Có thể giám sát chủ động theo thời gian thực tất đối tượng phạm vi Áp dụng giải toán kẹt xe cách giám sát, kiểm soát lưu lượng lưu thơng mật độ xe từ đưa cảnh báo hướng dẫn Các hệ thống nhận dạng khuôn mặt nghiên cứu triển khai cho phận an ninh sân bay Dữ liệu từ hệ thống nhận dạng khn mặt thu thập lưu trữ mà đối tượng khơng hay biết Thơng tin sau bị tin tặc kẻ truy cập với mục đích xấu DANH MỤC TÀI LIỆU THAM KHẢO Nhận diện khuôn mặt python OpenCV Nhận diện khuôn mặt với Python OpenCV phần Kỹ thuật nhận dạng face Recognition Thị giác máy tính https://build-system.fman.io/pyqt5-tutorial https://medium.com/augmented-startups/facial-recognition-attendance-guipyqt-1-hour-course-c4219d0aa007 https://pythonawesome.com/a-face-recognition-attendance-system-withpython/ ... tưởng tạo phần mềm nhận diện khuôn mặt điểm danh Được dựa thư viện OpenCV Yêu cầu hệ thống 2.1 Yêu cầu chức - Xây dựng chức ứng dụng desktop nhận diện khuôn mặt điểm danh: nhận diện, điểm danh, xem... Case Điểm danh Bảng 16: Đặc tả Use Case Xem lịch CHƯƠNG I: PHÂN TÍCH YÊU CẦU HỆ THỐNG ỨNG DỤNG DESKTOP NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH Tổng quan hệ thống ứng dụng desktop nhận diện mặt điểm danh. .. CHƯƠNG I: PHÂN TÍCH YÊU CẦU HỆ THỐNG ỨNG DỤNG DESKTOP NHẬN DIỆN KHUÔN MẶT VÀ ĐIỂM DANH 10 Tổng quan hệ thống ứng dụng desktop nhận diện mặt điểm danh 10 Yêu cầu hệ thống 11 2.1