Phần mềm nhận diện khuôn mặt và điểm danh trên Desktop - Đồ án tốt nghiệp

Phần mềm nhận diện khuôn mặt trên desktop giúp chấm công dễ dàng, bảo mật. Tìm hiểu các giải pháp điểm danh khuôn mặt hiệu quả nhất cho máy tính của bạn.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2022

64
1
0

Phí lưu trữ

30 Point

Mục lục chi tiết

LỜI CẢM ƠN

DANH SÁCH HÌNH ẢNH:

DANH SÁCH BẢNG:

1. 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.1. Tổng quan hệ thống ứng dụng desktop nhận diện mặt và điểm danh

1.2. Yêu cầu hệ thống:

1.2.1. Yêu cầu chức năng:

1.2.2. Yêu cầu phi chức năng:

1.3. Các công nghệ sử dụng

1.4. Thiết kế giao diện ứng dụng ( PyQt5)

1.5. Thiết kế back end

1.6. Nghiên cứu tổng quan

1.7. Bài toán nhận dạng mặt người

1.8. Tổng quan kiến trúc của một hệ thống nhận dạng khuôn mặt

1.9. Hạn chế, tồn tại của các phương pháp.

2. 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

2.1. Thiết kế hệ thống tổng thể

2.2. Phân tích yêu cầu hệ thống

2.3. Thiết kế cơ sở dữ liệu

2.4. Xây dựng hệ thống

2.5. Danh sách các Actor

2.6. Danh sách Use Case

2.7. Sơ đồ Use Case chi tiết

2.8. Đặc tả Use Case

2.9. Biểu đồ hoạt động và biểu đồ tuần tự

2.10. Phân tích kiến trúc

3. CHƯƠNG III: KẾT QUẢ THỰC NGHIỆM

3.1. Triển khai hệ thống:

3.2. Traning hình ảnh nhân viên và lưu trữ

3.3. Lớp detector nhận diện khuôn mặt đã traning

3.4. Giới thiệu một số giao diện của hệ thống

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

3.1. Hướng phát triển

DANH MỤC TÀI LIỆU THAM KHẢO

Tóm tắt

I. Phần Mềm Nhận Diện Khuôn Mặt Điểm Danh Desktop Tổng Quan

Công nghệ thông tin phát triển mạnh mẽ, kéo theo nhu cầu nhận diện khuôn mặt để điểm danh trên desktop ngày càng tăng. Bài toán nhận dạng khuôn mặt không chỉ dừng lại ở việc nhận biết, mà còn ứng dụng vào nhiều lĩnh vực, đặc biệt là trong quản lý nhân sự và an ninh. Phần mềm nhận diện khuôn mặt điểm danh desktop giúp tự động hóa quá trình điểm danh, tiết kiệm thời gian và nâng cao hiệu quả quản lý. Các thuật toán AI tiên tiến được tích hợp để tăng độ chính xác và khả năng nhận diện khuôn mặt trong nhiều điều kiện ánh sáng khác nhau. Ứng dụng này sử dụng dữ liệu hình ảnh thu được từ webcam hoặc camera tích hợp, sau đó sử dụng các thuật toán để xác định và đối chiếu khuôn mặt với cơ sở dữ liệu đã được đăng ký. Ứng dụng của phần mềm nhận diện khuôn mặt cho văn phòngdoanh nghiệp là vô cùng lớn, giúp thay thế phương pháp điểm danh thủ công truyền thống. Bài toán này đang được nhiều nhà nghiên cứu quan tâm để giải quyết triệt để những khó khăn về độ sáng, góc chụp, và biểu cảm khuôn mặt. Phần mềm chấm công nhận diện diện khuôn mặt cho máy tính cá nhân trở thành công cụ không thể thiếu trong nhiều tổ chức.

1.1. Ưu điểm của Phần Mềm Chấm Công Khuôn Mặt Offline

Một trong những ưu điểm quan trọng của phần mềm chấm công khuôn mặt offline là khả năng hoạt động mà không cần kết nối Internet liên tục. Điều này đặc biệt hữu ích trong các môi trường có kết nối mạng không ổn định hoặc không có sẵn. Tính năng này đảm bảo rằng quá trình chấm công vẫn diễn ra suôn sẻ, ngay cả khi mất kết nối mạng. Ngoài ra, phần mềm chấm công khuôn mặt offline thường có khả năng lưu trữ dữ liệu cục bộ, giúp giảm thiểu rủi ro mất mát dữ liệu do sự cố mạng hoặc server. Nó được tích hợp với các thuật toán face recognition tiên tiến.

1.2. Ứng Dụng Phần Mềm Nhận Diện Khuôn Mặt Cho Doanh Nghiệp

Phần mềm nhận diện khuôn mặt cho doanh nghiệp mang lại nhiều lợi ích to lớn. Nó giúp tự động hóa quá trình điểm danh, giảm thiểu sai sót và gian lận. Hơn nữa, nó cung cấp dữ liệu chính xác về thời gian làm việc của nhân viên, giúp nhà quản lý đưa ra các quyết định dựa trên thông tin đáng tin cậy. Phần mềm quản lý nhân sự có nhận diện khuôn mặt desktop cũng giúp cải thiện tính minh bạch và công bằng trong việc quản lý nhân sự. Các tính năng tích hợp nhận diện khuôn mặt vào phần mềm chấm công giúp tối ưu hóa quy trình làm việc và tăng cường hiệu quả quản lý.

1.3. Giới thiệu về API Nhận Diện Khuôn Mặt Cho Desktop

API nhận diện khuôn mặt cho desktop cho phép các nhà phát triển tích hợp chức năng nhận diện khuôn mặt vào các ứng dụng desktop của họ. API này cung cấp các công cụ và thư viện cần thiết để phát hiện, nhận dạng và theo dõi khuôn mặt trong hình ảnh và video. Điều này có thể được sử dụng cho nhiều mục đích khác nhau, chẳng hạn như xác thực người dùng, theo dõi sự tham gia và phân tích nhân khẩu học. Bằng cách sử dụng API nhận diện khuôn mặt, các nhà phát triển có thể dễ dàng thêm khả năng nhận diện khuôn mặt vào các ứng dụng desktop của họ mà không cần phải tự phát triển các thuật toán phức tạp.

II. Thách Thức Giải Pháp Phần Mềm Nhận Diện Khuôn Mặt AI Desktop

Mặc dù mang lại nhiều lợi ích, việc triển khai phần mềm nhận diện khuôn mặt AI cho desktop cũng đối mặt với một số thách thức. Độ chính xác của hệ thống có thể bị ảnh hưởng bởi nhiều yếu tố, bao gồm điều kiện ánh sáng, góc chụp, và sự thay đổi về ngoại hình. Giải pháp là sử dụng các thuật toán AI mạnh mẽ, có khả năng học hỏi và thích nghi với các điều kiện khác nhau. Ngoài ra, cần đảm bảo rằng hệ thống được đào tạo trên một bộ dữ liệu lớn và đa dạng để đạt được độ chính xác cao nhất. Một thách thức khác là vấn đề bảo mật và quyền riêng tư. Cần có các biện pháp bảo vệ dữ liệu khuôn mặt và đảm bảo rằng dữ liệu này không bị lạm dụng. Để đảm bảo tính ổn định, việc phát triển phần mềm cần sử dụng các thư viện mã nguồn mở uy tín như OpenCV và các ngôn ngữ lập trình như Python.

2.1. Yếu Tố Ảnh Hưởng Độ Chính Xác Nhận Diện Khuôn Mặt

Độ chính xác của phần mềm nhận diện khuôn mặt chịu ảnh hưởng lớn từ chất lượng hình ảnh đầu vào. Ánh sáng yếu hoặc quá mạnh, góc chụp không thuận lợi, và độ phân giải thấp đều có thể làm giảm độ chính xác của hệ thống. Ngoài ra, sự thay đổi về ngoại hình, chẳng hạn như đeo kính, đội mũ, hoặc thay đổi kiểu tóc, cũng có thể gây khó khăn cho việc nhận diện. Các thuật toán AI tiên tiến đang được phát triển để giải quyết những vấn đề này, nhưng vẫn cần có sự chú ý đến các yếu tố môi trường để đảm bảo độ chính xác cao nhất. Phần mềm nhận diện khuôn mặt không cần internet cũng đối mặt với những thách thức tương tự, đòi hỏi thuật toán phải được tối ưu hóa để hoạt động hiệu quả trong điều kiện giới hạn.

2.2. Giải Pháp Tối Ưu Hóa Phần Mềm Nhận Diện Khuôn Mặt

Để tối ưu hóa phần mềm nhận diện khuôn mặt, cần tập trung vào việc cải thiện chất lượng hình ảnh đầu vào và sử dụng các thuật toán AI mạnh mẽ. Có thể sử dụng các kỹ thuật xử lý ảnh để cải thiện độ sáng, độ tương phản, và độ sắc nét của hình ảnh. Ngoài ra, có thể sử dụng các thuật toán học sâu để trích xuất các đặc trưng quan trọng từ khuôn mặt, giúp hệ thống nhận diện chính xác hơn. Việc đào tạo hệ thống trên một bộ dữ liệu lớn và đa dạng cũng rất quan trọng để đảm bảo độ chính xác cao trong nhiều điều kiện khác nhau. Sử dụng API nhận diện khuôn mặt cho desktop cũng là một giải pháp tốt.

III. Hướng Dẫn Cài Đặt Phần Mềm Nhận Diện Khuôn Mặt Chấm Công

Việc cài đặt phần mềm nhận diện khuôn mặt chấm công thường khá đơn giản. Đầu tiên, cần tải xuống bộ cài đặt từ trang web chính thức của nhà cung cấp. Sau đó, chạy bộ cài đặt và làm theo hướng dẫn trên màn hình. Trong quá trình cài đặt, có thể cần cung cấp một số thông tin, chẳng hạn như vị trí cài đặt và thông tin tài khoản. Sau khi cài đặt xong, cần cấu hình phần mềm để kết nối với camera và cơ sở dữ liệu nhân viên. Cuối cùng, cần đào tạo phần mềm để nhận diện khuôn mặt của từng nhân viên. Quy trình này bao gồm việc chụp ảnh khuôn mặt của từng nhân viên và lưu trữ vào cơ sở dữ liệu. Phần mềm nhận diện khuôn mặt từ webcam đòi hỏi cấu hình tương tự.

3.1. Bước 1 Tải Và Cài Đặt Phần Mềm Chấm Công Khuôn Mặt

Bước đầu tiên là truy cập trang web chính thức của nhà cung cấp phần mềm chấm công khuôn mặt và tải xuống bộ cài đặt phù hợp với hệ điều hành của bạn. Sau khi tải xuống, hãy chạy bộ cài đặt và làm theo hướng dẫn trên màn hình. Trong quá trình cài đặt, hãy đảm bảo rằng bạn chọn đúng vị trí cài đặt và cung cấp thông tin tài khoản chính xác. Cài đặt phần mềm nhận diện khuôn mặt chấm công đòi hỏi quyền quản trị viên trên máy tính của bạn.

3.2. Bước 2 Cấu Hình Phần Mềm và Kết Nối với Camera

Sau khi cài đặt xong, hãy khởi động phần mềm chấm công khuôn mặt và cấu hình các thiết lập cần thiết. Điều quan trọng nhất là kết nối phần mềm với camera của bạn. Hãy chọn đúng camera từ danh sách các thiết bị có sẵn. Ngoài ra, bạn cũng cần cấu hình các thiết lập khác, chẳng hạn như độ phân giải camera, tốc độ khung hình, và ngưỡng nhận diện. Phần mềm nhận diện khuôn mặt từ webcam thường tự động phát hiện webcam, nhưng bạn vẫn cần kiểm tra để đảm bảo kết nối thành công.

3.3. Bước 3 Đào Tạo Phần Mềm Nhận Diện Khuôn Mặt

Cuối cùng, bạn cần đào tạo phần mềm nhận diện khuôn mặt để nhận diện khuôn mặt của từng nhân viên. Hãy chụp ảnh khuôn mặt của từng nhân viên và lưu trữ vào cơ sở dữ liệu. Đảm bảo rằng bạn chụp ảnh trong điều kiện ánh sáng tốt và từ nhiều góc độ khác nhau để tăng độ chính xác của hệ thống. Phần mềm nhận diện khuôn mặt AI thường có các công cụ hỗ trợ quá trình đào tạo, giúp bạn dễ dàng quản lý và cập nhật dữ liệu khuôn mặt.

IV. Top Phần Mềm Nhận Diện Khuôn Mặt Chấm Công Tốt Nhất Cho PC

Trên thị trường hiện nay có rất nhiều phần mềm nhận diện khuôn mặt chấm công cho PC. Một số phần mềm phổ biến bao gồm Realtime Face, Face ID, và BioStar 2. Mỗi phần mềm có những ưu điểm và nhược điểm riêng. Realtime Face nổi bật với độ chính xác cao và khả năng nhận diện nhanh chóng. Face ID dễ sử dụng và có giao diện thân thiện. BioStar 2 cung cấp nhiều tính năng nâng cao, chẳng hạn như quản lý truy cập và báo cáo chi tiết. Việc lựa chọn phần mềm phù hợp phụ thuộc vào nhu cầu và ngân sách của từng tổ chức. Cần xem xét kỹ các tính năng, độ chính xác, và khả năng tích hợp của từng phần mềm trước khi đưa ra quyết định. Đánh giá phần mềm nhận diện khuôn mặt chấm công desktop là bước quan trọng.

4.1. Đánh Giá Phần Mềm Chấm Công Khuôn Mặt Realtime Face

Realtime Face là một phần mềm chấm công khuôn mặt nổi tiếng với độ chính xác cao và khả năng nhận diện nhanh chóng. Phần mềm này sử dụng các thuật toán AI tiên tiến để nhận diện khuôn mặt trong nhiều điều kiện ánh sáng khác nhau. Realtime Face cũng có giao diện thân thiện và dễ sử dụng. Tuy nhiên, phần mềm này có giá thành khá cao so với các phần mềm khác. So sánh các phần mềm nhận diện khuôn mặt chấm công desktop cho thấy Realtime Face là lựa chọn tốt cho các tổ chức yêu cầu độ chính xác cao nhất.

4.2. Ưu Điểm Nhược Điểm Của Phần Mềm Face ID

Face ID là một phần mềm chấm công khuôn mặt dễ sử dụng và có giao diện thân thiện. Phần mềm này phù hợp với các tổ chức nhỏ và vừa có ngân sách hạn chế. Face ID có độ chính xác tương đối tốt, nhưng không cao bằng Realtime Face. Ngoài ra, phần mềm này có ít tính năng nâng cao hơn so với BioStar 2. Phần mềm chấm công khuôn mặt miễn phí cho desktop có thể là lựa chọn thay thế cho Face ID.

4.3. Tổng Quan Về Phần Mềm BioStar 2

BioStar 2 là một phần mềm chấm công khuôn mặt cao cấp cung cấp nhiều tính năng nâng cao, chẳng hạn như quản lý truy cập và báo cáo chi tiết. Phần mềm này phù hợp với các tổ chức lớn có yêu cầu quản lý nhân sự phức tạp. BioStar 2 có độ chính xác cao và khả năng tích hợp tốt với các hệ thống khác. Tuy nhiên, phần mềm này có giá thành cao và yêu cầu cấu hình phức tạp. Đây là phần mềm nhận diện khuôn mặt cho doanh nghiệp được đánh giá cao.

V. Ứng Dụng Thực Tế Nghiên Cứu Phần Mềm Nhận Diện Khuôn Mặt

Nghiên cứu từ Đồ án tốt nghiệp tại Trường Đại học Công nghệ Đông Á về phần mềm nhận diện khuôn mặt và điểm danh trên desktop đã cho thấy tính khả thi và hiệu quả của việc ứng dụng công nghệ này. Đồ án tập trung vào xây dựng một hệ thống có khả năng nhận diện khuôn mặt và tự động ghi nhận thời gian điểm danh. Hệ thống sử dụng ngôn ngữ lập trình Python và thư viện OpenCV để xử lý hình ảnh và nhận dạng. Kết quả cho thấy hệ thống có độ chính xác tương đối cao trong điều kiện ánh sáng tốt. Tuy nhiên, độ chính xác giảm khi ánh sáng yếu hoặc khi khuôn mặt bị che khuất. Nghiên cứu này cung cấp một nền tảng vững chắc cho việc phát triển các phần mềm nhận diện khuôn mặt ứng dụng trong thực tế.

5.1. Phân Tích Hệ Thống Ứng Dụng Desktop Nhận Diện Khuôn Mặt

Đồ án tốt nghiệp tập trung vào phân tích yêu cầu hệ thống và thiết kế một hệ thống nhận diện khuôn mặt hoàn chỉnh. Hệ thống bao gồm các thành phần chính: phát hiện khuôn mặt, trích xuất đặc trưng, và nhận diện khuôn mặt. Phát hiện khuôn mặt sử dụng thuật toán Haar Cascade Classifier để xác định vị trí khuôn mặt trong hình ảnh. Trích xuất đặc trưng sử dụng thuật toán Local Binary Patterns Histograms (LBPH) để tạo ra một vector đặc trưng cho mỗi khuôn mặt. Nhận diện khuôn mặt sử dụng thuật toán k-Nearest Neighbors (k-NN) để so sánh vector đặc trưng của khuôn mặt mới với các vector đặc trưng đã được lưu trữ trong cơ sở dữ liệu. Phần mềm nhận diện khuôn mặt cho văn phòng có thể áp dụng các phương pháp tương tự.

5.2. Kết Quả Thử Nghiệm Đánh Giá Hiệu Quả

Kết quả thử nghiệm cho thấy hệ thống có độ chính xác tương đối cao trong điều kiện ánh sáng tốt. Độ chính xác đạt khoảng 80-90% trong môi trường kiểm soát. Tuy nhiên, độ chính xác giảm khi ánh sáng yếu hoặc khi khuôn mặt bị che khuất. Các tác giả đề xuất cải thiện độ chính xác bằng cách sử dụng các thuật toán AI tiên tiến hơn, chẳng hạn như Convolutional Neural Networks (CNN). Ngoài ra, cần có các biện pháp để xử lý các trường hợp khuôn mặt bị che khuất hoặc bị biến dạng. Phần mềm nhận diện khuôn mặt chấm công tốt nhất cho PC cần có khả năng hoạt động ổn định trong nhiều điều kiện khác nhau.

VI. Tương Lai và Phát Triển Phần Mềm Nhận Diện Khuôn Mặt Desktop

Tương lai của phần mềm nhận diện khuôn mặt desktop hứa hẹn nhiều tiềm năng phát triển. Với sự tiến bộ của công nghệ AIhọc sâu, độ chính xác và khả năng nhận diện của các hệ thống này sẽ ngày càng được cải thiện. Ngoài ra, các phần mềm này sẽ ngày càng trở nên thông minh hơn, có khả năng tự học và thích nghi với các điều kiện khác nhau. Các ứng dụng của phần mềm nhận diện khuôn mặt cũng sẽ ngày càng được mở rộng, từ quản lý nhân sự đến an ninh, và nhiều lĩnh vực khác. Phần mềm nhận diện khuôn mặt cho doanh nghiệp sẽ ngày càng trở nên quan trọng trong việc nâng cao hiệu quả và bảo mật.

6.1. Xu Hướng Phát Triển Của Công Nghệ Nhận Diện Khuôn Mặt AI

Công nghệ nhận diện khuôn mặt AI đang phát triển với tốc độ chóng mặt. Các thuật toán học sâu ngày càng trở nên mạnh mẽ hơn, có khả năng trích xuất các đặc trưng phức tạp từ khuôn mặt và nhận diện chính xác hơn. Ngoài ra, các hệ thống nhận diện khuôn mặt ngày càng có khả năng xử lý dữ liệu lớn hơn và hoạt động trong thời gian thực. Xu hướng này sẽ mở ra nhiều cơ hội mới cho việc ứng dụng công nghệ nhận diện khuôn mặt trong nhiều lĩnh vực. Phần mềm nhận diện khuôn mặt AI cho desktop sẽ trở nên thông minh và hiệu quả hơn.

6.2. Ứng Dụng Mới Của Phần Mềm Nhận Diện Khuôn Mặt

Các ứng dụng của phần mềm nhận diện khuôn mặt ngày càng được mở rộng ra nhiều lĩnh vực khác nhau. Trong lĩnh vực an ninh, phần mềm này có thể được sử dụng để kiểm soát truy cập, giám sát an ninh công cộng, và phát hiện tội phạm. Trong lĩnh vực bán lẻ, phần mềm này có thể được sử dụng để nhận diện khách hàng, phân tích hành vi mua sắm, và cá nhân hóa trải nghiệm khách hàng. Trong lĩnh vực y tế, phần mềm này có thể được sử dụng để chẩn đoán bệnh và theo dõi sức khỏe của bệnh nhân. Nhận diện khuôn mặt trên máy tính cá nhân sẽ trở nên phổ biến hơn trong tương lai.

22/09/2025

Trích đoạn nội dung tài liệu

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 Ứng dụng desktop nhận diện khuôn mặt và điểm danh được xây dựng trên ngôn ngữ Python 3 cùng với thư viện OpenCV giúp nhận diện khuôn mặt và dùng thư viện, công cụ của PyQt5 để xây dựng giao diện, ứng dụng sử dụng hệ quản trị cơ sở dữ liệu Sqlite 3 với ưu điểm gọn nhẹ dễ thao tác và sử dụng; Ứng dụng được nghiên cứu và phát triển trên môi trường Visual Studio Code… 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 9 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.

Chính nhờ những yếu tố trên, nhóm chúng em đã đưa ra ý tưởng tạo ra phần mềm nhận diện khuôn mặt và điểm danh. Được dựa trên thư viện OpenCV. Yêu cầu hệ thống: ❖ Yêu cầu chức năng: - Xây dựng được các chức năng cơ bản của một ứng dụng desktop nhận diện khuôn mặt và đ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 và điểm danh dễ dàng giúp nâng cao khả năng quản lý thồn tin. - Cung câp chức năng nhận diện khuôn mặt để điểm danh 1 cách dễ dàng.

- Hỗ trợ chức năng quản trị chung hệ thống ( admin) trong đó người quản trị có thể thêm mới, sữa xóa thông tin nhân viên và cập nhật thông tin (admin) - Cung cấp bảng lịch điểm danh giúp người dùng có thể dễ dàng tra cứu lịch điểm danh của bình. ❖ Yêu cầu phi chức năng: - Ứng dụng có giao diện đẹp, dễ dàng sử dụng. - Hỗ trợ người dùng khi 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.

10 - Năm bắt được các phương thức xác định khuôn mặt ( Face Detection) cũng như thư viện Open CV. - Năm bắt được thư viện tạo ứng dụng tạo giao diện PyQt5. - Năm bắt được ngôn ngữ lập trình python3. Các công nghệ sử dụng Để giải quyết bài toán nhận dạng khuôn mặt sử dụng thư viện OpenCV, chúng ta có thể sử dụng các ngôn ngữ lập trình như: .NET C#, VB, IronPython, Java, C++… Trong đồ án này ngôn ngữ lập trình được sử dụng là Python, được viết trên môi trường của Python là IDLE và Visual Studio Code.

Thiết kế giao diện ứng dụng ( PyQt5) ❖ Giới thiệu chung: - Qt là một Application framework đa nền tảng viết trên ngôn ngữ C++ , được dùng để phát triển các ứng dụng trên desktop, hệ thống nhúng và mobile. Hỗ trợ cho các platform bao gồm : Linux, OS X, Windows, VxWorks, QNX, Android, iOS, BlackBerry, Sailfish OS và một số platform khác. PyQt là Python interface của Qt, kết hợp của ngôn ngữ lập trình Python và thư viện Qt, là một thư viện bao gồm các thành phần giao diện điều khiển (widgets , graphical control elements). - PyQt API bao gồm các module bao gồm số lượng lớn với các classes và functions hỗ trợ cho việc thiết kế ra các giao diện giao tiếp với người dùng của các phần mềm chức năng.

Hỗ trợ với Python 2. - PyQt được phát triển bởi Riverbank Computing Limited, version mới nhất của PyQt có thể download tại đường link : PyQt Riverbank Computing Limited - Các class của PyQt5 được chia thành các module, bao gồm : 11 + QtCore : là module bao gồm phần lõi không thuộc chức năng GUI, ví dụ dùng để làm việc với thời gian, file và thư mục, các loại dữ liệu, streams, URLs, mime type, threads hoặc processes. + QtGui : bao gồm các class dùng cho việc lập trình giao diện (windowing system integration), event handling, 2D graphics, basic imaging, fonts và text. + QtWidgets : bao gồm các class cho widget, ví dụ : button, hộp thoại, … được sử dụng để tạo nên giao diện người dùng cơ bản nhất.

+ QtMultimedia : thư viện cho việc sử dụng âm thanh, hình ảnh, camera,… + QtBluetooth : bao gồm các class giúp tìm kiếm và kết nối với các thiết bị có giao tiếp với phần mềm. + QtNetwork : bao gồm các class dùng cho việc lập trình mạng, hỗ trợ lập trình TCP/IP và UDP client , server hỗ trợ việc lập trình mạng. + QtPositioning : bao gồm các class giúp việc hỗ trợ xác định vị. + Enginio : module giúp các client truy cập các Cloud Services của Qt.

+ QtWebSockets : cung cấp các công cụ cho WebSocket protocol. + QtWebKit : cung cấp các class dùng cho làm việc với các trình duyệt Web , dựa trên thư viện WebKit2. + QtWebKitWidgets : các widget cho WebKit. 12 + QtXml : các class dùng cho làm việc với XML file.

+ QtSvg : dùng cho hiển thị các thành phần của SVG file. + QtSql : cung cấp các class dùng cho việc làm việc với dữ liệu. + QtTest : cung cấp các công cụ cho phép test các đơn vị của ứng dụng với PyQt5. ❖ Giới thiệu các tool công cụ phần mềm phục vụ thiết kế với PyQt5: - Qt Designer : Qt sử dụng IDE tên Qt Creator với một tool thiết kế giao diện người dùng Qt Designer.

Qt Designer có thể làm việc một mình độc lập với Qt Creator. Qt Designer sử dụng XML .ui file để lưu thiết kế và không sinh thêm bất kỳ mã nguồn nào của nó. User Interface Compiler (uic) đọc định dạng file XML (.ui) và xuất ra header file mã nguồn C++ tươn ứng. Qt có một class QUiLoader cho phép một ứng dụng tải một file .ui và tạo một giao diện động tương ứng.

- uic Python module : PyQt5 không chứa class QUiLoader nhưng thay vào đó là module Python uic. Cũng giống như QUiLoader , module python uic này cũng tải định dạng file .ui và tạo giao diện động tương ứng. Giống như UIC (User Interface Compiler) module python uic này cũng sinh ra mã nguồn python tạo nên giao diện tương ứng. Command line : $ pyuic5 .py là dòng lệnh làm việc với module python uic này.

13 - Python3 : python là một ngôn ngữ lập trình bậc cao, linh hoạt, là ngôn ngữ thông dịch và là một ngôn ngữ động. Python do Guido van Rossum tạo ra năm 1990. Các phiên bản của Python trong quá trình phát triển : Python 1 – giai đoạn 1990 tới 1995; Python 2 – phát hành vào năm 2000; Python 3 , python 3000 hoặc py3k được phát hành 3/12/2008. Thiết kế back end ❖ Ngôn ngữ lập trình Python: Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991.

Python được thiết kế với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngôn ngữ có hình thức rất sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động; do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và Tcl.

Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận Python Software Foundation quản lý. Ban đầu, Python được phát triển để chạy trên nền Unix. Nhưng rồi theo thời gian, Python dần mở rộng sang mọi hệ điều hành từ MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ Unix. Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân, nhưng Guido van Rossum hiện nay vẫn là tác giả chủ yếu của Python.

Ông giữ vai trò chủ chốt trong việc quyết định hướng phát triển của Python. 14 Hình 1: Ngôn ngữ lập trình Python ❖ Thư viện OpenCV: OpenCv (Open Source Computer Vision) là một thư viện mã nguồn mở về thị giác máy với hơn 500 hàm và hơn 2500 các thuật toán đã được tối ưu về XLA, và các vấn đề liên quan tới thị giác máy. OpenCv được thiết kế một cách tối ưu, sử dụng tối đa mạnh của các dòng chip đa lõi… để thực hiện các phép tính toán trong thời gian thực, nghĩa là tốc độ đáp ứng của nó thể đủ nhanh cho các ứng dụng thông thường. OpenCv là thư viện được thiết kế để chạy trên nhiều nền tảng khác nhau (cross-platform),nghĩa là nó có thể chạy trên hệ điều hành Window, Linux, Mac, iOS… Việc sử dụng thư viện OpenCv tuân theo các quy định về sử dụng phần mềm mã nguồn mở BSD do đó bạn có thể sử dụng thư viện này một cách miễn phí cho các mục đích phi thương mại lẫn thương mại.

Dự án về OpenCv được khởi động từ những năm 1999, đến năm 2000 nó được giới thiệu trong một hội nghị của IEEE về các vấn đề trong thị giác máy và nhận dạng, tuy nhiên bản OpenCV 1.0 mãi tới tận năm 2006 mới chính 15 thức được công bố và năm 2008 bản 1.1 (prerelease) mới được ra đời. Tháng 10 năm 2009, bản OpenCV thế hệ thứ hai ra đời (thường gọi là phiên bản 2.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ