1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án môn học trí tuệ nhân tạo xây dựng chương trình Điểm danh bằng bằng nhận diện khuôn mặt

30 1 0
Tài liệu được quét OCR, nội dung có thể không chính xác
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 đề Đề Án Môn Học Trí Tuệ Nhân Tạo Xây Dựng Chương Trình Điểm Danh Bằng Bằng Nhận Diện Khuôn Mặt
Tác giả Nguyén Hoang Hiép, Tran Quay Tin
Người hướng dẫn ThS. Nguyén Hai Vĩnh Cường
Trường học Trường Đại Học Thủ Dầu Một
Chuyên ngành Tri Thức Nhân Tạo
Thể loại Đồ Án
Năm xuất bản 2023
Thành phố Bình Dương
Định dạng
Số trang 30
Dung lượng 2,06 MB

Nội dung

Trong đề tài này, chúng em sẽ sử đụng một trong những mô hình học sâu phô biến nhất của trí tuệ nhân tạo hiện nay là mô hình mạng nơ-ron tích chập - Convolutional Neural Network CNN để x

Trang 1

TRUONG DAI HOC THU DAU MOT

VIEN KY THUAT CONG NGHE

PAI HOC

| lim, DAU MOT

2009 +9THU DAU MOT UNIVERSITY

ĐỎ AN MON HOC

TRI TUE NHAN TAO

XAY DUNG CHUONG TRINH DIEM DANH BANG BANG NHAN DIEN KHUON MAT

GVHD: ThS Nguyén Hai Vĩnh Cường SVTH:

Nguyén Hoang Hiép - 2024802010235 Tran Quay Tin - 2024802010221 LỚP: D20CNTT04

BÌNH DƯƠNG - 03/2023

Trang 2

TRUONG DAI HOC THU DAU MOT

VIEN KY THUAT CONG NGHE

PAI HOC

| lim, DAU MOT

2009 +9THU DAU MOT UNIVERSITY

ĐỎ AN MON HOC

TRI TUE NHAN TAO

XAY DUNG CHUONG TRINH DIEM DANH BANG BANG NHAN DIEN KHUON MAT

GVHD: ThS Nguyén Hai Vĩnh Cường SVTH:

Nguyén Hoang Hiép - 2024802010235 Tran Quay Tin - 2024802010221 LỚP: D20CNTT04

BÌNH DƯƠNG - 03/2023

Trang 3

MUC LUC

)10/900800221575 H)H)HÂẬậH,)),., i

DANH MỤC BẢNG < 5° o< se ễEeCeEererererdeerecerserereerrre iii

Trang 4

DANH MUC HINH

Hình 2.2: Q Q LH n HH HT nen n1 1111111111111 1111k khu 8

Trang 5

DANH MUC BANG Bảng 3.1: Mô tả bảng cầu hình hệ thống 52-52 SE 21222212221 xe 19

ll

Trang 6

DANH SACH CAC KY TU, CHU VIET TAT

Trang 7

TOM TAT CHUONG 1 Chuong trinh diém danh bang khuôn mặt được thực hiện sau quá trinh thu thập và khảo sát thông tin, như cầu từ thực tiên cuộc sông hăng ngày Chương trình

giúp người dùng có thể điểm danh một cách nhanh chóng và dễ dàng thông qua việc

phát hiện và nhận dạng khuôn mặt

CHƯƠNG 2 Dựa trên nền tảng của mô hình Deep Learning la Convolutional Neural

Network song song là ngôn ngữ lập trình bậc cao Python cùng với bộ dữ liệu tự thu

thập gôm 100 hình ảnh

CHƯƠNG 3 Cấu trúc bài báo cáo được chia thành 4 phần:

- _ Chương 1 Tổng quan đề tài

- _ Chương 2 Tiền xử lý đữ liệu

- _ Chương 3 Thiết kế mô hình

- Chương 4 Đánh giá thực nghiệm

Trang 8

nó ngày càng phô biến trong nhiều lĩnh vực khác nhau

CHƯƠNG 6 Nhận diện khuôn mặt là một trone những ứng dụng phô biến nhất của trí

tuệ nhân tạo, đặc biệt là trong các lĩnh vực an ninh và giám sát Trong đó, hệ thống

điểm danh bằng nhận diện khuôn mặt đang trở thành công cụ hữu ích để có thể kiểm soát được độ chuyên cần, thời gian làm việc, chấm công tại các doanh nghiệp, cơ quan, tô chức và trường học một cách nhanh chóng, đễ dàng và tiện lợi

CHƯƠNG 7 Trong đề tài này, chúng em sẽ sử đụng một trong những mô hình học sâu phô biến nhất của trí tuệ nhân tạo hiện nay là mô hình mạng nơ-ron tích chập - Convolutional Neural Network (CNN) để xây dựng một hệ thông điểm danh bằng

nhận diện khuôn mặt Mô hình CNN sử dụng các lớp tích chập và lớp kết nối đầy đủ

để học các đặc trưng của ảnh khuôn mặt và tạo ra các dự đoán về thông tin của neười

sử dụng Bằng cách sử dụng ngôn ngữ lập trình bậc cao là Python, chúng em có thế

triển khai mô hình CNN để thực hiện điểm danh bằng nhận diện khuôn mặt một cách

hiệu quả

CHƯƠNG 8 Xây dựng hệ thống điểm danh bằng khuôn mặt dựa trên mô hình CNN là

dé tài piúp chúng em hiểu rõ hơn về cách thức huấn luyện trong trí tuệ nhân tạo, là co hội củng có lượng kiến thức trong quá trình học tập học phần Trí tuệ nhân tạo, đồng thời cũng là tiền đề đề thực hiện các hệ thông trí tuệ nhân tạo khac trong tương lai Vì hạn chế về mặt thời gian cũng như về lượng kiến thức, đề tài chưa xây dựng thành một ứng dụng hoàn chỉnh và còn có nhiều sai sót, mong quý thầy cô thứ lỗi

Trang 9

CHUONG 9 TONG QUAN

9.1 Giới thiệu đề tài

9.1.1 Tên để tài

CHƯƠNG I0 Xây dựng chương trình điểm danh bằng nhận diện khuôn mặt

10.1.1 Lý do chọn đề tài

CHƯƠNG II Nhận diện khuôn mặt là một trong những đề tài phô biến hiện nay

CHƯƠNG 12 Nhận diện khuôn mặt mang lại nhiều lợi ích và ứng dụng trong cuộc sông như: điểm danh, châm công trone nhiều lĩnh vực khác nhau từ an ninh cho đên giám sát

CHƯƠNG 13 Nhận diện khuôn mặt bằng mô hình mạng nơ - ron tích chập đang được quan tâm và phát triển trong ngày nay, nó được đánh giá là có độ chính xác cao, khả năng học sâu, hiệu quả tính toán và có nhiều tiềm năng phát triển

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

CHƯƠNG 14 Nhận diện khuôn mặt người thông qua hình ảnh

14.1.1 Pham vì nghiÊH cứu

CHƯƠNG 15 Mô hình mạng nơ - ron tích chập - Convolutional Neural Network

(CNN)

CHUONG 16 Ngôn ngữ lập trình Python

CHƯƠNG I7 Bộ đữ liệu tự thu thập bao gồm 100 hình ảnh để huấn luyện cho mô

hình

17.1 Giới thiệu công nghệ

17.1.1 Giới thiệu về Python

CHƯƠNG I8 Python là một ngôn ngữ lập trình cao cấp, được phát triển boi Guido van Rossum vào năm 1989 và được công bô lan đâu tiên vào nam 1991 Python duoc thiết kế với mục đích để đọc và viết mã đễ dàng, có cú pháp rõ ràng, đơn giản và dễ hiểu Vì vậy, Python đã trở thành một trong những ngôn ngữ lập trình phố biến nhất trén thé gidi

CHƯƠNG I9 Python là một ngôn ngữ lập trình đa năng, có thể được sử dụng đề phát triền các ứng dụng máy tính, web, trí tuệ nhân tạo, xử ly dữ liệu, game, do hoa, va nhiêu lĩnh vực khác Python được phân phôi miền phí và có san cho nhiêu nên tang, bao gồm Windows, macOS, Linux và các hệ điều hành khác

CHUONG 20 Python có thư viện rộng lớn và đa dạng, với hơn 137.000 gói và các công cụ hỗ trợ mạnh mẽ như NumPy, Pandas, Matplotlib, Scikit-learn, TensorFlow,

2

Trang 10

Pygame, va nhiéu thu viện khác Cộng đông Python cực kỳ sôi nồi và hỗ trợ mạnh mẽ,

vi vậy rât để dàng đề tìm kiếm thông tin và giải đáp các thắc mắc liên quan dén Python

Python Hình 20.1.1.1: Ngôn ngữ lập trình Python

20.1.2 Giới thiệu về Google Colab

CHƯƠNG 21 Google Colab (viết tắt của Google Colaboratory) là một địch vụ miễn phí của Google, cho phép người dùng chạy mã Python trực tuyến thông qua trình duyệt web mà không cần cài đặt bất kỳ phần mềm nảo trên máy tính của mình Google Colab sử dụng máy chủ từ Google đề thực hiện các tác vụ tính toán phức tạp

CHƯƠNG 22 Google Colab được tích hợp với Jupyter Notebook, cho phép người dùng tạo và chia sẻ các tài liệu tương tác, bao gồm mã, văn bản, hình ảnh và đồ thị Nó cũng cung cấp một loạt các công cụ phân tích dữ liệu phô biến như NumPy, Pandas và Mapplotlib, cũng như cho phép người dùng cài đặt các gói phần mềm bổ sung thông qua hệ thống quản lý gói Python như pip

CHUONG 23 Google Colab là một công cụ hữu ích cho các nhà khoa học dữ liệu, các nhà phát triển và sinh viên để thực hiện các tác vụ tính toán phức tạp mà không, cần phải mua hoặc cấu hình phần cứng đắt tiền Ngoài ra, Google Colab còn cho phép người dùng lưu trữ và chia sẻ các tài liệu tương tác này thông qua Google Drive

CHƯƠNG 24

Colaboratory

Trang 11

Hinh 24.1.1.1: Cong cu Google Colab

CHUONG 25.

Trang 12

CHUONG 26 TIEN XU LY DU LIEU

CHUONG 27

27.1 Thu thập dữ liệu

-_ Bộ dữ liệu được sử dụng trong đề tài là bộ đữ liệu tự thu thập

- Bộ đữ liệu gồm hình ảnh của 5 người, mỗi người 20 tâm ảnh

- _ Bộ dữ liệu thô được lấy từ ảnh trên internet với góc chụp và ánh sáng, độ tương phản khác nhau nhằm tạo sự đa dạng cho đữ liệu

Ñ œ b m z 1 ? B Be da i

CHƯƠNG 28

Hình 28.1.1.1: Bộ dữ liệu thô 28.2 Chuẩn hoá dữ liệu

- Bộ dữ liệu thô sau khi thu thập được từ trên mạng sẽ có kích cỡ, tỷ lệ và màu sắc khác nhau, gây khó khăn cho việc huân luyện mô hình

- Đề thuận tiện cho việc huấn luyện mô hình ở bước sau, bộ dữ liệu thô sẽ được chuân hoá để có thê làm bộ đữ liệu đầu vào cho quá trình huấn

CHUONG 30

Trang 13

CHUONG 35 cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)

CHUONG 36 Sau khi chuyén d6i thang mau, anh sé nhw sau:

Trang 14

CHUONG 39 Trong do:

CHUONG 40 “detector” 1a mét déi tượng của lớp CascadeClassifer của OpenCV, được sử dụng đề phát hiện các đối tượng trong hình ảnh Trong trường hợp này, chúng

ta đang sử dụng nó dé phát hiện khuôn mặt

CHUGONG 41 "gray" 1a mét khung hinh mau xam (grayscale), dugc tao ra bang cach chuyên đổi khung hình gốc từ hệ màu BGR sang hệ màu xám

CHƯƠNG 42 "đefecfor.defectMulfiScale(" là một phương thức của đối tượng detector, được sử dụng dé phát hiện các khuôn mặt trong khung hình Đây là một phương pháp phát hiện khuôn mặt dựa trên máy học và áp dụng bộ lọc Haar Cascade

CHƯƠNG 43 ”/z'” là một danh sách các hình chữ nhật, mỗi hình chữ nhật đại diện

cho một khuôn mặt được phát hiện trong khung hình

CHƯƠNG 44 "for (x, y, w, h) in fa:" la mét vong lap for dé lap qua danh sách các

hình chữ nhật được tim thấy

CHƯƠNG 45 ”cy2.recfangle()” được sử dụng để vẽ một hình chữ nhật trên khung

hình gốc (hình ảnh màu) để đánh dấu vị trí của khuôn mặt Các tham số "(x,y)" và

"(x+w, y+h)" chỉ định tọa độ của hai đỉnh đối diện của hình chữ nhật

CHƯƠNG 46 "os.makedirs()" duoc str dung dé tao thy muc "dataset" néu nó chưa tồn tai

CHƯƠNG 47 "cv2.imwrite()" duoc str dung đề lưu trữ anh khuôn mặt được phát hiện vào thư mục "dataset" Tên tệp được đặt là "anh<I>.<J>.Jpg" với "1" và "J" là các biến được sử dụng để đánh số các ảnh Ảnh khuôn mặt được lưu trữ là ảnh xám, được cắt ra

từ khung hình sốc bằng cách sử dụng tọa độ và kích thước của hình chữ nhật tương

L1 PBYX TA K'O CA C1 C13 TA E1 PC 1B BI PBX P5 C1 E21

ứng

Hình 47.1.1.1: Bộ dữ liệu sau khi đã được xử lý

Trang 15

Từ anh1.1 - anh1.20: Trân Thành

Từ anh2.1 — anh2.20: Truongg Giang

Từ anh3.1 — anh3.20: Hoa Minzy

Tu anh4.1 — anh4.20: Ngô Kiên huy

Từ anh5.1 — anh5.20: Noo Phước Thịnh

Trang 16

CHUONG 51 THIET KE MO HINH CHƯƠNG 52

52.1 Giới thiệu mô hình

Mô hình CNN (Convolutional Neural Network) là một kiểu mô hình mạng

nơ-ron nhân tạo phô biến trong lĩnh vực xử ly ảnh và nhận dang hinh ảnh

Mô hình này được thiết kế để học cách trích xuất các đặc trưng quan trọng

từ ảnh thông qua các bước tích chập và lớp gộp

Các bước tích chập sẽ tìm kiếm các đặc trưng của ảnh bằng cách áp dụng các bộ lọc (filters) trên toàn bộ hình ảnh Sau đó, các lớp gộp được sử dụng để giảm kích thước của đặc trưng trích xuất được mà vẫn giữ lại thông tin quan trọng

Mô hình CNN được cấu thành từ nhiều lớp tích chập và lớp gộp liên tiếp nhau Các lớp này có thể được kết hợp với các lớp kết nối day du (fully connected layers) để tạo ra một mạng nơ-ron hoàn chỉnh Tủy thuộc vào mục đích sử dụng, mô hình CNN có thể được điều chỉnh đề có số lượng lớp và kích thước của các lớp phù hợp với dữ liệu đầu vào và yêu cầu của bài toán

Một trong những ứng dụng phố biến của mô hình CNN là nhận dạng hình ảnh, bao gồm nhận dạng khuôn mặt, phát hiện đối tượng, phân loại ảnh,

và nhiều ứng dụng khác trong thị giác máy tính

CHUONG 53

CHUONG 54

Hinh 54.1.1.1: M6 hinh Convolutional Neural Network

54.2 Giới thiệu một số thư viện sử dụng

34.2.1 Thư viện QpenCV

Trang 17

OpenCV (Open Source Computer Vision) là một thư viện mã nguồn mở

và miễn phí cho xử lý ảnh và thị giác máy tính Nó được phát triển ban

đầu bởi Intel vào năm 1999 và hiện được duy trì bởi một nhóm các nhà khoa học máy tính và kỹ sư trên toàn thế giới

OpenCV hỗ trợ nhiều ngôn ngữ lập trình như C+>, Python, Java và các phiên bản khác nhau của hệ điều hành như Windows, Linux, macOS và Android Thư viện cung cấp các hàm xử lý ảnh và video đề thực hiện các nhiệm vụ như đọc và phi các tệp ảnh và video, xử lý ảnh, phát hiện đối tượng, nhận dạng khuôn mặt, phân tích video, và nhiều tác vụ khác liên quan đến thị giác máy tính

OpenCV có một cộng đồng lớn và đầy đủ tài liệu và ví dụ, p1úp cho việc

học và sử dụng thư viện trở nên dễ dàng hơn Nó là một trong những công

cụ quan trọng cho các lĩnh vực như xử lý ảnh, thị piác may tinh, robotics,

và nhiều ứng dụng khác

54.2.2, Thur vién Numpy

Numpy (Numerical Python) la mét thu vién mã nguồn mở cho tính toán khoa hoc trong Python Thu vién cung cap cac déi trong mang da chiéu (ndarray) đề lưu trữ và xử lý đữ liệu số và các hàm toán học đề thực hiện các phép tính trên mảng

Numpy cung cấp một số tính năng như:

® Lưu trữ và xử lý đữ liệu số trong các mảng đa chiều (ndarray)

© Cung cấp các hàm toán học, áp dụng trên mảng và nhiều hàm tương tự

như trong MATLAB

® Hỗ trợ việc chuyên đổi đữ liệu gitra cac dinh dạng dữ liệu khác nhau

¢ Numpy duoc su dung trong cac lĩnh vực như khoa học đữ liệu, mây học, thị piác máy tính, vật lý, toán học, và nhiều lĩnh vực khác Việc sử dụng numpy giúp tăng tốc độ xử lý đữ liệu và tính toán, giúp cho việc thực hiện các tác vụ phức tạp trở nên đơn giản và hiệu quả hơn 34.2.3 Thự viện PIL

PIL (Python Imaging Library) là một thư viện mã nguồn mở cho xử lý ảnh trong Python Thư viện cung cấp các đối tượng hình ảnh và các hàm để thực hiện các phép biến đối hình ảnh như xoay, thu phóng, cắt, dan, loc và chuyền đổi định dang ảnh

Một số tính năng của PIL:

Trang 18

Hỗ trợ nhiều định dang anh, bao gdm JPEG, PNG, BMP, GIF va nhiéu dinh dang anh khac

Có thé tao ra các hình ảnh mới từ các dữ liệu pixel

Cho phép thực hiện các phép biến đổi hình ảnh, bao gồm cắt, xoay, thu phóng, lật và sập ảnh

Có thể áp dụng các bộ lọc và hiệu ứng trên ảnh, bao gồm lọc Gauss, lọc Sobel, loc median, va nhiều hiệu ứng khác

Cung cấp các chức năng xử lý ảnh nâng cao như phát hiện cạnh, phân đoạn ảnh, và nhận dạng đối tượng

34.2.4 Thư viện Keras

Keras là một thư viện mã nguôn mở cho các mô hình học máy và mạng, nơ-ron trong Python Thư viện được thiết kế để có khả năng dé dang str dụng và hiệu quả, cho phép người dùng dễ dàng xây dựng và huấn luyện

M

c mô hình học máy một cách nhanh chóng

ột số tính năng của Keras:

Cung cấp các lớp và kiến trúc cho các mô hình học máy phổ biến như mang no-ron sâu (deep neural networks), mang tich chập (convolutional neural networks), va mang héi quy (recurrent neural networks)

Cho phép người dùng dễ dàng xây dựng và định nghĩa các mô hình

học máy thông qua một API đơn giản và dễ hiểu

Cung cấp các công cụ cho việc xử lý và chuẩn bị dữ liệu đầu vào cho các mô hình học máy

Cho phép người dùng lưu và tải lại các mô hình đã được huấn luyện

để sử dung lat

Tương thích với nhiều thư viện khác trong học máy và khoa học dữ liệu như TensorFlow, Theano và CN TK

54.3 Giai đoạn huấn luyện (training)

54.3.1 Phân chia tập huấn luyện

CHƯƠNG 55 Bộ dữ liệu đầu vào của mô hình là một dataset chứa 100 tắm ảnh của 5

người khác nhau, được gắn nhãn từ 1.1 đến 5.20 Bằng cách chạy hai vòng lặp lồng

nhau, ta có thê đọc được lần lượt các file ảnh và lưu nó vào data Sau đó chúng em tiến hành reshape bộ dữ liệu thành kích thước 100x100 với I màu xám

Ngày đăng: 16/01/2025, 18:32

HÌNH ẢNH LIÊN QUAN

Hình  92,1.1.1:  Thực  nghiệm  với  ảnh  của  Noo  Phước  Thịnh - Đồ án môn học trí tuệ nhân tạo xây dựng chương trình Điểm danh bằng bằng nhận diện khuôn mặt
nh 92,1.1.1: Thực nghiệm với ảnh của Noo Phước Thịnh (Trang 27)
Hình  91.1.1.1:  Thực  nghiệm  với  ảnh  của  Ngô  Kiến  Huy - Đồ án môn học trí tuệ nhân tạo xây dựng chương trình Điểm danh bằng bằng nhận diện khuôn mặt
nh 91.1.1.1: Thực nghiệm với ảnh của Ngô Kiến Huy (Trang 27)

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

TÀI LIỆU LIÊN QUAN