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

Xây dựng ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt

45 0 0

Đ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 ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt
Tác giả Nguyễn Hoàng Anh
Người hướng dẫn TS. Hoàng Thị Mỹ Lệ
Trường học Đại học Đà Nẵng
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp đại học
Năm xuất bản 2022
Thành phố Đà Nẵng
Định dạng
Số trang 45
Dung lượng 1,99 MB

Nội dung

- Ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt giúp choviệc chấm công tại doanh nghiệp trở nên đơn giản và thuận tiện hơn - Bên cạnh đó ứng dụng còn giúp giải quyết cá

Trang 1

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

Trang 2

Đà Nẵng, tháng 6/2022

Trang 3

ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

Trang 5

- Ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt giúp cho

việc chấm công tại doanh nghiệp trở nên đơn giản và thuận tiện hơn

- Bên cạnh đó ứng dụng còn giúp giải quyết các công việc như:

o Giúp cho người quản lý có thể quản lý được tài khoản của nhân viên, cóthể xem được tình hình đi làm của nhân viên theo ngày, đồng thời có thểthêm hoặc xóa tài khoản nếu có nhân viên mới hoặc nghỉ việc

o Nhân viên có thể xem được số ngày làm việc của mình, đồng thời có thểtìm kiếm tình hình chấm công của mình theo tháng

Trang 6

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT

KHOA CÔNG NGHỆ SỐ

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập - Tự do - Hạnh phúc

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP

Giảng viên hướng dẫn: TS Hoàng Thị Mỹ Lệ

Sinh viên thực hiện: Nguyễn Hoàng Anh Mã SV: 1811505310402 Lớp: 18T4

1 Tên đề tài:

- Xây dựng ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn

mặt

2 Các số liệu, tài liệu ban đầu:

- Dữ liệu hình ảnh về khuôn mặt của cá nhân

- Các tài liệu về nhận diện khuôn mặt tại các website, kênh youtube

3 Nội dung chính của đồ án:

Quá trình xây dựng hệ thống quản lý việc chấm công bằng phương pháp nhậndiện khuôn mặt bao gồm các công việc:

- Khảo sát nghiệp vụ thực tế

- Phân tích thiết kế các chức năng của hệ thống

- Thiết kế giao diện cho các chức năng

- Thu thập dữ liệu để xây dựng cơ sở dữ liệu

- Xây dựng cơ sơ dữ liệu

- Xây dựng hệ thống

- Kiểm thử và cài đặt

- Hoàn thành bài báo cáo

4 Các sản phẩm dự kiến

- Hệ thống quản lý việc chấm công bằng phương pháp nhận diện khuôn mặt

- File báo cáo hoàn chỉnh

5 Ngày giao đồ án: 14/02/2022

Trang 7

6 Ngày nộp đồ án: 20/06/2022

Đà Nẵng, ngày … tháng … năm 2022

Trang 8

LỜI NÓI ĐẦU

Ngày nay, công nghệ thông tin đã có những bước phát triển mạnh mẽ theo cả chiều rộng và sâu Máy tính điện tử không còn là một thứ phương tiện quý hiếm mà đang ngày càng trở thành một công cụ làm việc và giải trí thông dụng của con người, không chỉ ở công sở mà còn ngay cả trong gia đình.

Đứng trước vai trò của thông tin hoạt động cạnh tranh gay gắt, các tổ chức và các doanh nghiệp đều tìm mọi biện pháp để xây dựng hoàn thiện hệ thống thông tin của mình nhằm tin học hóa các hoạt động tác nghiệp của đơn vị.

Hiện nay các công ty tin học hàng đầu thế giới không ngừng đầu tư và cải thiện các giải pháp cũng như các sản phẩm nhằm cho phép tiến hành tự động hóa trên Internet Thông qua các sản phẩm và công nghệ này, chúng ta dễ dàng nhận ra tầm quan trọng và tính tất yếu của các ứng dụng Với những thao tác đơn giản trên điện thoại có nối mạng Internet bạn sẽ có tận tay những gì mình cần mà không phải mất nhiều thời gian Bạn chỉ cần vào các ứng dụng làm theo hướng dẫn và click vào những gì bạn cần Các hoạt động sẽ thực hiện ngay trên hệ thống đó

Ở Việt Nam cũng có rất nhiều trường đại học tự động hóa các quy trình trên hệ thống website nhưng do những khó khăn về cơ sở hạ tầng như viễn thông chưa phát triển mạnh nên các quy trình vẫn còn rất nhiều sổ sách, giấy tờ thủ công dẫn đến thiếu hiệu quả, mất khá nhiều thời gian

Để tiếp cận và góp phần đẩy mạnh sự phổ biến và tiện ích của các ứng dụng, em

đã tìm hiểu và cài đặt “Ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt”.

Với sự hướng dẫn tận tình của TS Hoàng Thị Mỹ Lệ em đã hoàn thành đồ án tốt nghiệp này Tuy đã cố gắng hết sức tìm hiểu, phân tích thiết kế và cài đặt hệ thống nhưng chắc rằng không tránh khỏi những thiếu sót Chúng em rất mong nhận được sự thông cảm và góp ý của quí Thầy cô

Em xin chân thành cảm ơn!

i

Trang 9

CAM ĐOAN

Em xin cam đoan :

1 Những nội dung trong luận văn này do em thực hiện dưới sự hướng dẫn của cô HoàngThị Mỹ Lệ

2 Mọi tham khảo trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên côngtrình ,thời gian, địa điểm công bố

3 Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, em xin chịu hoàntoàn trách nhiệm

Sinh viên thực hiện

Nguyễn Hoàng Anh

Trang 10

MỤC LỤC

MỤC LỤC iii

DANH MỤC BẢNG BIỂU vi

DANH MỤC HÌNH VẼ vii

MỞ ĐẦU 1

1 Mục tiêu đề tài 1

a Đối tượng nghiên cứu 1

b Phạm vi nghiên cứu 1

2 Phương pháp nghiên cứu 1

a Phương pháp thu thập 1

b Phương pháp xử lý thông tin 2

3 Giải pháp công nghệ 2

4 Cấu trúc đồ án 2

Chương 1 CƠ SỞ LÝ THUYẾT 3

1.1 Hệ quản trị cơ sở dữ liệu MySQL 3

1.2 React Native Framework 4

1.3 OpenCV Library 5

1.4 Flask 5

1.5 Java Spring Boot 6

1.6 Quy trình xử lý nhận diện khuôn mặt 7

Chương 2 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 8

2.1 Tác nhân và chức năng 8

2.1.1 Trưởng phòng nhân sự (Admin) 8

2.1.2 Nhân viên 8

iii

Trang 11

2.2 Phân tích chức năng 8

2.2.1 Sơ đồ Use-case 8

2.2.2 Sơ đồ hoạt động 9

2.2.2.1 Nhân viên 9

2.2.2.2 Trưởng phòng nhân sự 12

2.2.3 Sơ đồ tuần tự 14

2.2.3.1 Nhân viên 14

2.2.3.2 Trưởng phòng nhân sự 15

2.3 Phân tích hệ thống 16

2.3.1 Thiết kế cơ sở dữ liệu 16

2.3.2 Sơ đồ ERD 17

Chương 3 XÂY DỰNG CHƯƠNG TRÌNH 18

3.1 Công cụ xây dựng chương trình 18

3.2 Giao diện chương trình 18

3.2.1 Giao diện đăng nhập 18

3.2.2 Giao diện trang chủ 19

3.2.3 Giao diện chụp ảnh xác nhận ngày đi làm 19

3.2.4 Giao diện kết quả xác nhận ngày đi làm 20

3.2.5 Giao diện xem số ngày làm việc 21

3.2.6 Giao diện thông tin tài khoản 23

3.2.7 Giao diện cập nhật thông tin cá nhân 23

3.2.8 Giao diện danh sách nhân viên 24

3.2.9 Giao diện xác nhân xóa nhân viên 24

3.2.10 Giao diện xem tình hình đi làm của nhân viên 25

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

Trang 12

3.3 Kết luận 27 3.4 Hướng phát triển 27 TÀI LIỆU THAM KHẢO 28

v

Trang 13

DANH MỤC BẢNG BIỂU

Bảng 2.1: Bảng NhanVien 16

Bảng 2.2: Bảng HinhAnh 17

Bảng 2.3: Bảng ChamCong 17

Bảng 2.4: Bảng PhongBan 17

Trang 14

DANH MỤC HÌNH VẼ

Hình 1.1: React Native Framework 12

Hình 1.2: Quy trinh xử lý nhận diện khuôn mặt 15

Hình 2.1: Sơ đồ Use-case 17

Hình 2.2: Sơ đồ hoạt động cho Use-case Xác nhận ngày đi làm 18

Hình 2.3: Sơ đồ hoạt động cho Use-case Cập nhật thông tin cá nhân 19

Hình 2.4: Sơ đồ hoạt động cho Use-case Xem số ngày đi làm 20

Hình 2.5: Sơ đồ hoạt động cho Use-case Cập nhật tài khoản nhân viên 21

Hình 2.6: Sơ đồ hoạt động cho Use-case Báo cáo tình hình đi làm của nhân viên 22

Hình 2.7: Sơ đồ tuần tự cho Use-case Xác nhận ngày đi làm 23

Hình 2.8: Sơ đồ tuần tự cho Use-case Cập nhật thông tin cá nhân 23

Hình 2.9: Sơ đồ tuần tự cho Use-case Xem số ngày làm việc 24

Hình 2.10: Sơ đồ tuần tự cho Use-case Báo cáo tình hình đi làm của nhân viên .24 Hình 2.11: Sơ đồ tuần tự cho Use-case Cập nhật tài khoản nhân viên 25

Hình 2.12: Sơ đồ ERD 27

Hình 3.1: Giao diện đăng nhập 28

Hình 3.2: Giao diện trang chủ 29

Hình 3.3: Giao diện chụp ảnh chấm công 29

Hình 3.4: Giao diện thông báo chấm công hoàn tất 30

Hình 3.5: Giao diện thông báo khi đã chấm công trước đó 30

Hình 3.6: Giao diện thông báo chấm công thất bại 31

Hình 3.7: Giao diện xem số ngày làm việc 31

Hình 3.8: Giao diện tra cứu ngày đi làm theo tháng 32

Hình 3.9: Giao diện kết quả số ngày làm việc theo tháng 32

Hình 3.10: Giao diện thông tin tài khoản 33

Hình 3.11: Giao diện cập nhật thông tin cá nhân 33

Hình 3.12: Giao diện danh sách nhân viên 34

Hình 3.13: Giao diện xác nhận xóa nhân viên 34

Hình 3.14: Giao diện thêm mới nhân viên 35

vii

Trang 15

Hình 3.15: Giao diện tình hình đi làm của nhân viên 35Hình 3.16: Giao diện tra cứu tình hình đi làm của nhân viên theo tháng 36Hình 3.17: Giao diện kết quả tra cứu tình hình đi làm theo tháng 36

Trang 16

Xây dựng ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt

MỞ ĐẦU

Ngày nay, với sự tiến bộ vượt bậc của công nghệ thông tin, ngày càng có nhiềuứng dụng của công nghệ thông tin được đưa vào trong cuộc sống Con người ngàycàng tạo ra những cỗ máy thông tin có khả năng tự nhận biết và xử lý công việc mộtcách tự động, phục vụ nhu cầu và lợi ích của con người

Trong vài năm trở lại đây, lĩnh vực trí tuệ nhân tạo đang nhân được sự quan tâmcủa xã hội Một trong những vấn đề của trí tuệ nhân tạo được quan tâm nhất là bài toánnhận diện Tuy xuất hiện chưa lâu nhưng đã nhận được sự quan tâm rất lớn Một trongnhững bài toán nhận diện được quan tâm nhất chính là bài toán nhận diện khuôn mặt.Một trong những ứng dụng của bài toán nhận diện khuôn mặt là chấm công chonhân viên Với mong muốn có một hệ thống chấm công bằng nhận diện khuôn mặt,

em đã nghiên cứu và phát triển đề tài này

1 Mục tiêu đề tài

Xây dựng hệ thống quản lý việc chấm công bằng nhận diện khuôn mặt giúp chocác doanh nghiệp có một giải pháp chấm công cho nhân viên hiệu quả, an toàn hơn sovới các phương pháp chấm công truyền thống, đồng thời giúp cho việc quản lý nhân

sự tại doanh nghiệp trở nên dễ dàng hơn

a Đối tượng nghiên cứu

Các phương pháp nhận diện khuôn mặt

b Phạm vi nghiên cứu

Có thể áp dụng đề tài cho một doanh nghiệp vừa và nhỏ

2 Phương pháp nghiên cứu

a Phương pháp thu thập

- Tìm kiếm thông tin, tài liệu trên các website, các ứng dụng có sẵn

- Nghiên cứu các website, ứng dựng hiện đã có trên thị trường

- Nghiên cứu các công nghệ nhận diện khuôn mặt, các thư viện hỗ trợ việc xâydựng ứng dụng nhận diện khuôn mặt

b Phương pháp xử lý thông tin

- Xác định yêu cầu của đề tài từ đó chọn lọc những thông tin cần thiết

Trang 17

Xây dựng ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt

- Phân tích, đánh giá độ chính xác của các thông tin tìm được

- Tổng hợp những thông tin tìm được để hoàn thiện đề tài

3 Giải pháp công nghệ

- React Native Framework

- Java Spring Boot

Chương 1: Cơ sở lý thuyết

- Hệ quản trị cơ sở dữ liệu MySQL

- React Native Framework

- OpenCV Library

- Flask

- Java Spring Boot

- Quy trình xử lý nhận diện khuôn mặtChương 2: Phân tích thiết kế hệ thống

- Tác nhân và chức năng

- Phân tích chức năng

- Phân tích hệ thốngChương 3: Xây dựng chương trình

- Công cụ xây dựng chương trình

- Giao diện chương trìnhKết luận và hướng phát triển

Tài liệu tham khảo

Trang 18

Xây dựng ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt

Chương 1

CƠ SỞ LÝ THUYẾT1.1 Hệ quản trị cơ sở dữ liệu MySQL

- MySQL là một hệ thống quản trị cơ sở dữ liệu mã nguồn mở (RelationalDatabase Management System, viết tắt là RDBMS) hoạt động theo mô hình client-server RBDMS là một phần mềm hay dịch vụ dùng để tạo và quản lý các cơ sở dữliệu (Database) theo hình thức quản lý các mối liên hệ giữa chúng [1]

- MySQL là cơ sở dữ liệu tốc độ cao, ổn định, dễ sử dụng và hoạt động trênnhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.MySQL hỗ trợ rất nhiều chức năng SQL cả trực tiếp lẫn gián tiếp [2]

- MySQL dựa trên mô hình client-server Cốt lõi của MySQL là máy chủMySQL, xử lý tất cả các hướng dẫn cơ sở dữ liệu (hoặc các lệnh) Máy chủ MySQL

có sẵn như là một chương trình riêng biệt để sử dụng trong môi trường mạng server và như một thư viện có thể được nhúng (hoặc liên kết) vào các ứng dụngriêng biệt [3]

client MySQL ban đầu được phát triển để xử lý cơ sở dữ liệu lớn một cách nhanhchóng Mặc dù MySQL thường chỉ được cài đặt trên một máy, nhưng nó có thể gửi

cơ sở dữ liệu đến nhiều vị trí, vì người dùng có thể truy cập thông qua các giao diệnmáy khách MySQL khác nhau Các giao diện này gửi các câu lệnh SQL đến máychủ và sau đó hiển thị kết quả [3]

Trang 19

Xây dựng ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt

1.2 React Native Framework

Hình 1.2.1.1.1.1: React Native Framework

- React Native là một framework được tạo bởi Facebook, cho phép developer xâydựng các ứng dụng di động trên cả Android và iOS chỉ với một ngôn ngữ lập trìnhduy nhất: JavaScript [4]

- React Native sẽ giúp bạn tiết kiệm được nhiều thời gian và công sức nếu muốnxây dựng một ứng dụng đa nền tảng (multi-platform) Chỉ cần biết JavaScript,không cần phải học thêm bất cứ ngôn ngữ nào khác [4]

- Bằng cách tích hợp 2 thread là Main Thread và JS Thread cho ứng dụng mobile.Với Main Thread sẽ đảm nhận vai trò cập nhật giao diện người dùng(UI) Sau đó sẽ

xử lý tương tác người dùng Trong khi đó, JS Thread sẽ thực thi và xử lý codeJavascript Hai luồng này hoạt động độc lập với nhau [4]

- Để tương tác được với nhau hai Thread sẽ sử dụng một Bridge(cầu nối) Chophép chúng giao tiếp mà không phụ thuộc lẫn nhau, chuyển đổi dữ liệu từ threadnày sang thread khác Dữ liệu từ hai Thread được vận hành khi tiếp nối dữ liệu chonhau [4]

- Ưu điểm của React-native

o Thời gian phát triển ứng dụng được rút ngắn

o Tiết kiệm chi phí nhân lực cho doanh nghiệp

Trang 20

Xây dựng ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt

o Khả năng tái sử dụng code cao

o Trải nghiệm người dùng rất mượt mà

o Không cần nhiều kiến thức nền

- Nhược điểm của React-native

- OpenCV hỗ trợ các giao diện C++, C, Python và Java và hỗ trợ Windows,Linux, Mac OS, iOS và Android OpenCV được thiết kế để hỗ trợ hiệu quả về tínhtoán và chuyên dùng cho các ứng dụng real-time (thời gian thực) Nếu được viếttrên C/C++ tối ưu, thư viện này có thể tận dụng được bộ xử lý đa lõi (multi-coreprocessing) [5]

- OpenCV có các tính năng chính:

o Xử lý và hiển thị Hình ảnh/ Video/ I/O (core, imgproc, highgui)

o Phát hiện các vật thể (objdetect, features2d, nonfree)

o Geometry-based monocular hoặc stereo computer vision (calib3d, stitching,videostab)

o Computational photography (photo, video, superres)

o Machine learning & clustering (ml, flann)

o CUDA acceleration (gpu)

1.4 Flask

- Flask là một framework web của Python, còn được coi là một microframeworkbởi nó không yêu cầu các công cụ hoặc thư viện cụ thể Được phát triển bởi ArminRonacher, người dẫn đầu một nhóm những người đam mê Python quốc tế có tên là

Trang 21

Xây dựng ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt

Poocco Flask phát triển dựa trên bộ công cụ Werkzeug WSGI và công cụ mẫuJinja2 [6]

- Flask cung cấp tất cả các công cụ, thư viện và công nghệ cho phép xây dựngmột api Flask là một microframework bởi nó không yêu cầu các công cụ hoặc thưviện cụ thể, điều này mang đến cả ưu điểm và khuyết điểm cho người sử dụng Ưuđiểm của Flask là Framework nhẹ, ít phụ thuộc vào các cập nhật và dễ tìm kiếm cáclỗi bảo mật Nhược điểm là đôi khi bạn phải tự thêm các danh sách phụ thuộc bằngviệc thêm các plugin [6]

1.5 Java Spring Boot

- Spring Bootlà một Java framework được phát triển bởi Pivital Team dựa trênJava framework mã nguồn mở để tạo ra các microservice, nhằm mục đích xây dựngcác ứng dụng Spring độc lập một cách nhanh chóng và có khả năng thực thi ngay[7]

- Microservice là một mô hình cho phép bạn lập trình và phát triểnnhiều service (dịch vụ/ chức năng) một cách độc lập Mỗi service có thể chạy độclập với nhau và hỗ trợ cho một phần mềm lớn hơn Với Microservice, các lập trìnhviên sẽ cần ít thời gian hơn để lập trình vì việc tách nhỏ sẽ tạo điều kiện thuận lợihơn nhiều so với việc thực hiện một service lớn [7]

- Java Spring Boot có 3 tính năng quan trọng:

o SpringApplication: Khi lập trình xong và chỉ muốn chạy thử nghiệm luônứng dụng chỉ cần gọi run() là được Vì Spring Boot được thiết kế theo dạng

“just run” nhằm giúp lập trình viên chỉ cần cấu hình ít Spring nhất có thể, cònlại Spring Boot sẽ tự động lo liệu

o Externalized Configuration: Một ứng dụng có thể chạy trên nhiều môi trườngkhác nhau? Vậy, Spring Boot sẽ config cấu hình từ bên ngoài và ứng dụng sẽ

có thể thoải mái chạy

o Profiles: Khi có nhiều config khác nhau, ta có thể sử dụng Profile để phânchia từng loại config cho từng môi trường để dễ dàng quản lý hơn

Trang 22

Xây dựng ứng dụng quản lý chấm công bằng phương pháp nhận diện khuôn mặt

- Không chỉ dừng lại ở những tính năng đó, với Spring Boot, bạn còn có thể pháttriển web Application, Caching, gửi Email, Validation, làm việc với công nghệSQL,…

1.6 Quy trình xử lý nhận diện khuôn mặt

Hình 1.6.1.1.1.1: Quy trinh xử lý nhận diện khuôn mặt

- Quy trình nhận diện khuôn mặt gồm các bước cơ bản:

o Nhận diện khuôn mặt: Máy ảnh phát hiện và định vị hình ảnh của mộtkhuôn mặt khi đối tượng đang ở một mình hoặc trong một đám đông Từ

đó ghi nhận hình ảnh của đối tượng [8]

o Phân tích khuôn mặt: Hình ảnh sẽ được đưa vào phần mềm để tiến hànhđọc hình dạng khuôn mặt của đối tượng Các yếu tố chính cần xử lý baogồm khoảng cách giữa hai mắt, độ sâu của hốc mắt, khoảng cách từ tránđến cằm, hình dạng của gò má và đường viền của môi, tai và cằm Mụcđích là để xác định các điểm mốc chính trên khuôn mặt nhằm phân biệtnhiều người khác nhau [8]

o Chuyển đổi hình ảnh thành dữ liệu: Chuyển đổi ảnh chụp khuôn mặtthành một tập hợp thông tin kỹ thuật số (dữ liệu) dựa trên các đặc điểmkhuôn mặt của người đó Những thuộc tính khuôn mặt sẽ được xử lýdưới dạng các thuật toán và công thức, và mỗi người sẽ sở hữu một dữliệu khuôn mặt riêng biệt [8]

o Tìm kết quả nhận diện khuôn mặt phù hợp: tiến hành so sánh với cơ sở

dữ liệu khuôn mặt sẵn có Nếu khuôn mặt được ghi lại khớp với mộthình ảnh trong cơ sở dữ liệu, thì việc xác định sẽ hoàn tất [8]

Ngày đăng: 07/03/2024, 15:38

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

TÀI LIỆU LIÊN QUAN

w