1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Báo cáo Đồ Án môn học xây dựng phần mềm quản lý nhân viên bằng nhận diện khuôn mặt bằng opencv

31 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Xây Dựng Phần Mềm Quản Lý Nhân Viên Bằng Nhận Diện Khuôn Mặt Bằng OpenCV
Tác giả Diệp Thụy An, Nguyễn Duy Thái, Phan Cảnh Tuấn Đạt, Trần Khánh Huyền
Người hướng dẫn Trương Tấn Khoa
Trường học Trường Đại Học Sài Gòn
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo Cáo Đồ Án Môn Học
Năm xuất bản 2024
Thành phố Thành phố Hồ Chí Minh
Định dạng
Số trang 31
Dung lượng 4,33 MB

Nội dung

Nhận biết khuôn mặtnhân viên để điểm danh thông qua công nghệ nhận diện hình ảnh không chỉ giúptăng cường tính bảo mật mà còn giúp tối ưu hóa quá trình quản lý nhân viên mộtcách hiệu quả

Trang 1

ỦY BAN NHÂN DÂN THÀNH PHỐ HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC SÀI GÒN KHOA CÔNG NGHỆ THÔNG TIN

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯⎯

BÁO CÁO ĐỒ ÁN MÔN HỌC

XÂY DỰNG PHẦN MỀM QUẢN LÝ NHÂN VIÊN BẰNG

NHẬN DIỆN KHUÔN MẶT BẰNG OPENCV

Giảng viên hướng dẫn: Trương Tấn Khoa

Nhóm thực hiện: 14 Danh sách thành viên:

Diệp Thụy An 3122410001 Nguyễn Duy Thái 3122410380 Phan Cảnh Tuấn Đạt 3122410076 Trần Khánh Huyền 3122410156

Thành phố Hồ Chí Minh, năm 2024

Trang 2

Lời Mở Đầu

Tiện dụng, nhanh chóng, hiệu quả, chính xác là những yếu tố quan trọng cho việcquản lý nhân lực Việc áp dụng công nghệ thông tin vào quản lý hỗ trợ doanhnghiệp rất nhiều trong vấn đề quản lý nhân lực của mình Nhận biết khuôn mặtnhân viên để điểm danh thông qua công nghệ nhận diện hình ảnh không chỉ giúptăng cường tính bảo mật mà còn giúp tối ưu hóa quá trình quản lý nhân viên mộtcách hiệu quả và tiện lợi

Việc điểm danh để chấm công cho nhân viên bằng hình ảnh khuôn mặt thay vì sửdụng thẻ từ hay vân tay sẽ mang lại độ chính xác cao, giải quyết được vấn đề đểquên thẻ nhân viên, đồng thời công cụ cũng có thể đồng bộ với các phần mềmkhác

Trong đồ án này, chúng em việc xây dựng một phần mềm quản lý nhân viên sửdụng công nghệ nhận diện khuôn mặt, với sự hỗ trợ của thư viện mã nguồn mởOpenCV Phần mềm này không chỉ giúp tự động hóa quy trình ghi danh nhân viên

mà còn cung cấp các tính năng quản lý thông tin cá nhân, chấm công, và kiểm soát

ra vào hiệu quả

Bằng việc kết hợp giữa ứng dụng thực tế và công nghệ tiên tiến, chúng em hy vọngrằng đồ án này sẽ đem lại tính năng, giải pháp hữu ích cho việc quản lý nhân viêntrong các tổ chức và doanh nghiệp, cũng như mở ra tiềm năng phát triển trong lĩnhvực công nghệ nhận diện khuôn mặt và ứng dụng AI vào cuộc sống hiện nay

Trang 3

Lời Cảm Ơn

Trong thời gian thực hiện dự án, nhóm 14 xin gửi cảm ơn tới giảng viên TrươngTấn Khoa đã dành thời gian và hướng dẫn, hỗ trợ kiến thức trong quá trình thựchiện phần mềm này Sự hướng dẫn của thầy đã giúp cho nhóm phát triển kỹ nănglập trình và hiểu hơn về ngôn ngữ lập trình Python

Đặc biệt cảm ơn các thành viên trong nhóm đã nỗ lực, đóng góp chia sẻ ý tưởng,dành thời gian công sức để làm việc, tìm tài liệu, các kiến thức hỗ trợ trong việcphát triển nhân diện khuôn mặt, giúp cho đồ án trở nên hoàn thiện và hoàn thành

đồ án thành công

Chúng tôi gửi lời tri ân đến với những người sẽ đọc và đánh giá dự án này Sựquan tâm, đóng góp ý kiến của các bạn là động lực để giúp chúng tôi hoàn thiện,phát triển dự án này tốt hơn sau này

Xin chân thành cảm ơn!

Trang 4

Mục Lục

Chương 1 Tổng Quát

1 Giới thiệu

2 Mục tiêu và phạm vi đề tài

2.1 Mục tiêu

2.2 Phạm vi đề tài

3 Khảo sát hệ thống

3.1 Giới thiệu sơ lược

3.2 Nghiệp vụ

Chương 2 Giới Thiệu Python Và Thư Viện OpenCV

1 Giới thiệu ngôn ngữ Python

1.1 Python

1.2 Lịch sử

1.3 Đặc điểm Python

1.3.1 Ưu điểm

1.3.2 Nhược điểm

2 Thư viện OpenCV

3 Thư viện face_recognition

4 Hướng dẫn cài đặt

4.1 Cài đặt Python trên Visual Studio Code (VSCode)

4.2 Cài đặt phiên bản Python về máy

4.3 Cài đặt anaconda dành cho dự án

4.4 Install các module cần thiết đối với dự án

Chương 3 Phân Tích Thiết Kế Hệ Thống

1 Phân tích hệ thống

1.1 Hệ thống chương trình

1.2 Các bảng trong cơ sở dữ liệu

1.2.1 Bảng nhân viên

1.2.2 Bảng kỳ công

1.2.3 Bảng công nhân viên

1.2.4 Bảng kỳ công chi tiết

2 Thiết kế mô hình dữ liệu

2.1 Mô hình hoạt động

2.2 Mô hình thực thể kết hợp ERD

2.3 Mô hình Use Case

2.4 Mô hình quy trình nhận diện khuôn mặt

Chương 4 Xây Dựng Phần Mềm Quản Lý Chấm Công

Chương 5 Kết Luận

1 Kết quả đạt được

2 Các vấn đề đã thực hiện trong đề tài

3 Hướng phát triển

Tài liệu tham khảo

Trang 5

Chương 1 Tổng Quát

Công nghệ nhận diện khuôn mặt AI là bước tiến lớn trong lĩnh vực khoa họccông nghệ, được ứng dụng trong nhiều ngành nghề và đem lại nhiều lợi íchtiện dụng, sự chính xác cao, bảo mật tốt

Từ đó nhóm dùng ngôn ngữ Python và ứng dụng công nghệ nhận diện nàyvới đề tài ”Xây dựng phần mềm quản lý nhân viên bằng nhận diện khuônmặt”

3.1 Giới thiệu sơ lược

Phần mềm nhận diện được thiết kế dành cho người quản lý nhân sự sửdụng Phần mềm cho phép nhân viên điểm danh ra vào mỗi ngày làmviệc, thống kê được số ngày đi làm trong tháng của từng nhân viêntheo mỗi kỳ công

Trang 6

3.2 Nghiệp vụ

Quản lý nhân viên:

Thêm nhân viên mới

Xóa nhân viên

Chỉnh sửa nhân viên

Tìm kiếm nhân viên

Xem thông tin nhân viên

Quản lý kỳ công:

Thêm kỳ công mới

Xóa kỳ công

Tìm kiếm kỳ công

Quản lý lịch làm việc nhân viên:

Xem chi tiết thời gian ra vào

Xem điểm danh của nhân viên theo tháng

Trang 7

Chương 2 Giới Thiệu Python Và Thư Viện OpenCV

Python 3.0: phát hành năm 2008, có sự thay đổi trong cú pháp và thiết kế cảithiện sự đơn giản Hiện nay phiên bản của Python là Python 3.7

Bản phân phối Python Anaconda: Python Anaconda thuộc Python 3 nhưngvới Python Anaconda được hỗ trợ nhiều thư viện tiện ích(numpy, scipy,matplotlib, sklearn) Đặc biệt được dùng nhiều trong machine learning, datascience, AI vì cung cấp môi trường phát triển với nhiều thư viện

Thư viện hỗ trợ: Python có nguồn thư viện vô cùng phong phú với số

Trang 8

lượng khổng lồ giúp tăng cường khả năng phát triển.

1.3.2 Nhược điểm

Python không có hỗ trợ vùng lặp do…while và switch…case do đókhi giải quyết phức tạp thì việc dùng if else rất nhiều

Python có tốc độ xử lý nhanh nhưng vẫn kém hơn Java, C++

OpenCV ( Open Source Computer Vision Library ) được bắt đầu từ Intel năm 1999bởi Gary Bradski là thư viện nguồn mở cho Computer Vision và MachineLearning

Cộng đồng sử dụng và phát triển OpenCV khá lớn trên toàn cầu Với nhu cầu thếgiới đang tăng dần với xu hướng về sử dụng computer vision các công ty côngnghệ Cộng đồng OpenCV có số lượng đông đảo hơn 47 nghìn người dùng Điềunày chứng tỏ việc các ứng dụng, khả năng của OpenCV mang lại cho nhiều lậptrình viên cơ hội phát triển các sản phẩm với nhiều lĩnh vực, công nghệ mới

OpenCV cung cấp các công cụ và thư viện để phân tích và xử lý ảnh, video Được

sử dụng trong nhiều lĩnh vực về thị giác máy tính, robot và xe tự động hiện nay.Đặc điểm:

OpenCV được hỗ trợ trên nhiều ngôn ngữ lập trình khác nhau như C++,Python, Java

OpenCV được ứng dụng nhiều trong việc kiểm tra và giám sát tự động, pháttriển các công nghệ phân tích hình ảnh, tìm kiếm và phục hồi hìnhảnh/video

Thư viện OpenCV hỗ trợ:

VideoCapture(0): dùng để đọc các khung hình từ một tệp video hoặc từ mộtthiết bị đầu vào hình ảnh như camera trên máy, trả về 2 tham số là biến xácđịnh kiểm tra boolean và cửa sổ hiển thị, read() dùng để đọc khung hình từVideoCapture(); release() để đóng VideoCapture(), giải phóng tài nguyên.Imread(path, flag): đọc đường dẫn và tham số flag (-1,0,1) đại diện cho ảnh

có màu hoặc không và kênh alpha (RGB/RGBA)

Imshow(title,img): xuất hình ảnh ra màn hình

Imwrite(path,img): đưa các hình ảnh vào folder đường dẫn

Resize(frame,size): thay đổi kích thước ảnh được truyền vào

CvtColor(image,change): đổi định dạng hình ảnh được truyền vào

PutText(frame,text,location): hiển thị text lên cửa sổ hình ảnh

Trang 9

Rectangle(frame,location,border): vẽ hình vuông lên vị trí đã xác định lêncửa sổ hình ảnh.

Face-recognition là thư viện nhận diện và xử lý khuôn mặt bằng ngôn ngữ Python.Đây là thư viện dễ sử dụng với độ chính xác cao 99,38% theo LFW ( LabeledFaces in the Wild) Thư viện face-recognition sử dụng C++ DLib kết hợp với côngnghệ nhận diện và công nghệ máy học (Machine learning)

Phiên bản mới nhất của Face-recognition hiện tại là opencv-face-recognition 1.1.1vào 25/2/2024 với các khả năng mới và kỹ thuật nhận diện nâng cao, bảo mật và cómức độ chính xác cao so với 99,99%, đứng thứ 8 trong top đánh giá của NIST tínhđến năm 2022

Face-recognition hiện có rất nhiều khóa học vì thế nên rất dễ học, sử dụng, dễ tiếpcận đối với người mới học lập trình nhận diện bằng Python

Face-recognition hỗ trợ các phương thức cho việc nhận diện:

load_image_file(path): Tải hình ảnh từng file trên máy có chứa khuôn mặtcần nhận dạng

face_encodings(image): Giúp mã hóa hình ảnh gửi vào phương thức và trả

về mã hóa các điểm trên khuôn mặt

face_locations(image): Xác định vị trí khuôn mặt trong ảnh trả về tọa độhình chữ nhật của khuôn mặt

compare_faces(imgEncodeCheck, imgEncode): So sánh hai phần mã hóagiữa ảnh gốc và ảnh hiện tại đang xét để kiểm tra đúng khuôn mặt

face_distance(imgEncodeCheck, imgEncode): Cho biết khoảng cách (sai số)giữa các bức ảnh, mức sai số càng thấp thì độ chính xác giữa các bức ảnhđang xét sẽ càng cao

4.1 Cài đặt Python trên Visual Studio Code (VSCode)

Bước 1: Truy cập vào https://code.visualstudio.com/download và chọn càiđặt phù hợp với hệ điều hành của máy

Bước 2: Thực hiện quá trình Set up và đường dẫn cho VSCode để tiến hànhcài đặt Khởi động VSCode lên với màn hình ban đầu như hình

Trang 10

Bước 3: Vào mục Extensions (Ctrl+Shift+X) và gõ từ khóa Python vào ô tìmkiếm, tải các extensions hỗ trợ cho Python trên VScode

4.2 Cài đặt phiên bản Python về máy

Bước 1: Truy cập vào https://ww.python.org/ và tải phiên bản python3.10.11 về máy ( các phiên bản mới hơn hiện chưa hỗ trợ cho việc sử dụng thưviện OpenCV và các thư viện khác)

Bước 2: Mở và thực hiện quá trình cài đặt phiên bản Python

Trang 11

4.3 Cài đặt anaconda dành cho dự án

Bước 1: truy cập vào https://www.anaconda.com/download/success để tảianaconda về máy

Bước 2: Mở file đã tải và bắt đầu thực hiện quá trình cài đặt

Trang 12

Bước 3: Thay đổi lựa chọn thành All Users và tiếp tục next.

Trang 13

Bước 4: chọn đường dẫn cài đặt và tích chọn Register Anaconda as thesystem Python 3.10 để tiếp tục install.

Trang 14

4.4 Install các module cần thiết đối với dự án

Bước 1: Mở VSCode đã tải từ trước và chọn More ở phần Welcome, sau đónhập Python vào thanh tìm kiếm và chọn “Get started with Python”

Trang 15

Bước 2: Chọn Create a Python Evironment và chọn create với Conda.

Trang 16

Bước 3: Lựa chọn phiên bản Python đã tải từ trước và chờ hệ thống tạo môitrường.

Sau khi tạo thành công, 1 file conda sẽ xuất hiện Việc Setup môi trườnganaconda đã thành công

Bước 4: Ở phần terminal của VSCode thực hiện quá trình tải các thư việncần thiết đối với dự án

pip install cmake

conda install -c conda-forge dlib

conda install -c menpo opencv

pip install face_recognition

Trang 17

pip install opencv-pythonpip install tk

pip install mysql-connector-pythonViệc sử dụng môi trường Anaconda thay cho lập trình tạo file py bình thường trênVSCode là bởi Anaconda hỗ trợ rất nhiều tính năng chuyên dụng dành cho DataScience và được cài sẵn rất nhiều thư viện, đặc biệt là các thư viện liên quan đếnMachine Learning, Data Science như numpy, matplotlib, nên môi trườngAnaconda rất thích hợp cho việc xây dựng các hệ thống, dự án cần các thư việnnày

Trang 18

Chương 3 Phân Tích Thiết Kế Hệ Thống

Nhân viên của công ty sẽ đăng ký thông tin làm việc với người quản lý, mỗi ngày

sẽ thực hiện việc chấm công của hệ thống bằng cách nhân diện qua khuôn mặtnhân viên

Các file chính của hệ thống gồm: main.py, ThongTinDiemDanh.py,DangKyGUI.py, QuanLyGUI.py, ThongKeGUI.py, LichChamCongGUI.py,capCheck.py, database_manager.py

Bên cạnh các file chính trên là thư mục chứa hình ảnh của từng nhân viên, fileđiểm danh

File main.py: là file chính chứa phần giao diện đăng nhập, giao diện chấm công vàgiao diện chính của hệ thống Giao diện đăng nhập cho phép người quản lý truycập vào hệ thống khi nhập đúng tài khoản và mật khẩu Giao diện chấm công dànhcho nhân viên khi thực hiện điểm danh mỗi ngày và hiện các thông tin xác thựcđúng là nhân viên

File DangKyGUI.py: chứa giao diện đăng ký thông tin cho nhân viên khi mới vào

hệ thống, tạo folder chứa ảnh nhân viên cho quá trình nhận diện

File QuanKyGUI.py: chứa giao diện thông tin của nhân viên đã đăng ký, gồm cácchức năng chỉnh sửa, cập nhật, tìm kiếm nhân viên hiện có trong hệ thống, xemảnh của nhân viên đã chụp lúc đăng ký

File ThongKeGUI.py: Xem được trong tháng đó nhân viên đã làm được bao giờgiờ làm việc, tổng thời gian làm việc và trung bình cộng thời gian của các nhânviên trong công ty, biết được tỉ lệ đi trễ chiếm bao nhiêu phần trăm trong tháng

File LichChamCongGUI.py: chứa giao diện lịch chấm công của hệ thống đã khởitạo, các lịch này sẽ cố định việc bắt đầu điểm danh vào ngày nào trong tháng và tạo

kỳ công dành cho nhân viên

File ThongTinDiemDanh.py: chứa giao diện nhân viên chấm công ra, vào mỗingày trong tháng Có thể tìm kiếm theo thông tin nhân viên đã chấm công

Trang 19

File database_manager.py: file xây dựng chứa các câu lệnh truy xuất dữ liệu từdatabase và kết nối các dữ liệu trong bảng để thực hiện quá trình xây dựng các thaotác quản lý.

1.2 Các bảng trong cơ sở dữ liệu

Cơ sở dữ liệu của hệ thống quản lý chấm công gồm 4 bảng dữ liệu chính:

1.2.1 Bảng nhân viên

Hình 1 Dữ liệu bảng nhân viên

1.2.2 Bảng kỳ công

Hình 2 Dữ liệu bảng kỳ công

1.2.3 Bảng công nhân viên

Hình 3 Dữ liệu bảng công nhân viên

Trang 20

1.2.4 Bảng kỳ công chi tiết

Hình 4 Dữ liệu bảng kỳ công chi tiết

2.1 Mô hình hoạt động

Mô hình hoạt động của quá trình chấm công nhân viên gồm quy trình chính

là xử lý thông tin của nhân viên khi bắt đầu làm việc Nhân viên sẽ đăng kýcác thông tin cá nhân vào hệ thống, thực hiện chụp ảnh nhận diện để đưa vàokho dữ liệu

Đối với nhân viên đã có trong hệ thống nhưng thông tin cá nhân sai, hoặcảnh có vấn đề thì có thể chỉnh sửa lại thông tin cá nhân, hoặc chụp lại ảnhnếu ảnh chụp đang không rõ nét

Khi nhân viên thực hiện chấm công thì thông tin thời gian vào sẽ được đưavào dữ liệu của hệ thống Với trường hợp nhân viên xin phép nghỉ và đượcduyệt, sẽ tính công làm việc cho nhân viên để xác định ngày nghỉ đó có phép

và tính lại công cá nhân của nhân viên đó

Trang 21

Hình 5 Mô hình hoạt động chấm công

Kỳ công: thông tin của kỳ công vào mỗi tháng trong năm, số lượng ngày cóthể làm việc trong tháng

Kỳ công chi tiết: thông tin các ngày đi làm trong mỗi tháng của nhân viên,lưu trữ những ngày đi đủ, ngày nghỉ có phép và số ngày công của nhân viên.Công nhân viên: thông tin của nhân viên vào mỗi ngày làm việc trong tháng,

Trang 22

lưu trữ thời gian ra, thời gian vào trong quá trình làm việc tại doanh nghiệp,công ty.

Hình 6 Mô hình thực thể kết hợp ERD

2.3 Mô hình Use Case

Trang 23

Hình 7 Mô hình Use Case

2.4 Mô hình quy trình nhận diện khuôn mặt

Quy trình chấm công chia làm hai giai đoạn Giai đoạn đăng ký, người nhân viênthực hiện việc chụp ảnh trên camera và hệ thống đưa ảnh vào kho dữ liệu ảnh Mỗinhân viên sẽ có 5 bức ảnh của bản thân, ảnh trên cam vào lúc đăng ký được xử lýbằng face_locations() đảm bảo việc lưu ảnh sẽ chắc chắn có chứa khuôn mặt, giúpgiảm số lượng tạo hình ảnh quá nhiều để tối ưu dữ liệu lưu trữ

Giai đoạn chấm công, hình ảnh từ kho ảnh sẽ đưa vào danh sách và thực hiện việcxác định khuôn mặt lần nữa để đảm bảo sự chính xác của dữ liệu Face_locations()chuyển đổi ảnh màu khuôn mặt về màu xám, sau đó mạng noron tích chập(Convolution) sẽ phát hiện đặc điểm khuôn mặt trong ảnh, với các đặc điểm củakhuôn mặt, thuật toán sẽ xác định vị trí của khuôn mặt như mắt, mũi, miệng,khoảng cách giữa các bộ phận đó và trả về tọa độ 4 điểm giúp xác định hình chữnhật bao quanh khuôn mặt

Sau khi đã có dữ liệu vị trí của khuôn mặt của từng bức ảnh, face_encoding() sẽthực hiện mã hóa hình ảnh khuôn mặt, phương thức trả về mã hóa là dạng vectorchứa 128 chiều là các giá trị đặc trưng khuôn mặt, đưa các ảnh khuôn mặt trongkho ảnh thành các vector mã hóa là các giá trị số, sau đó lần lượt so sánh với ảnh

từ camera được chụp và mã hóa liên tục bằng compare_faces() và tính độ sai số vớiface_distance() để tìm ra ảnh có độ chính xác cao nhất với người đang thực hiệnnhân dạng

Hình 8 Mô hình quy trình nhận diện khuôn mặt

Ngày đăng: 03/11/2024, 22:37

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w