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

Báo cáo Đồ án môn học Đề tài xây dựng hệ thống nhận dạng khuôn mặt con người

24 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

Định dạng
Số trang 24
Dung lượng 2,51 MB

Nội dung

Dữ liệu này sẽ được sử dụng để huấn luyện mô hình, giúp nó học các đặc điểm và biểu hiện của khuôn mặt con người.. So sánh và xác định: Mô hình nhận diện khuôn mặt sau đó so sánh các đặ

Trang 1

TRƯỜNG ĐẠI HỌC HỒNG ĐỨC

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

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

ĐỀ TÀI: XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT

Thanh Hóa, tháng 10 năm 2023

Trang 2

Mục lục:

Ni dung

LỜI NÓI ĐẦU 3

CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 4

1 Lý do chọn đề tài: 4

2 Yêu cầu bài toán: 4

3 Ý tưởng thực hiện: 4

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 5

1 Học máy là gì? 5

CHƯƠNG 3: CÔNG NGHỆ SỬ DỤNG VÀ BỘ DỮ LIỆU 9

1 Công nghệ sử dụng: 9

2 Bộ dữ liệu: 9

CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH VÀ TRIỂN KHAI CÀI ĐẶT .10

1 Các thư viện sử dụng: 10

2 Triển khai cài đặt: 11

3 Xây dựng dữ liệu: 11

4 Load dữ liệu: 12

5 Xác định vị trí khuôn mặt: 12

6 Mã hóa khuôn mặt: 14

7 Giao diện Menu: 14

CHƯƠNG 4: KẾT QUẢ TỔNG QUAN 16

1 Đánh giá mô hình: 17

2 Sản phẩm demo: 18

3 Nhận xét, đánh giá: 19

4 Hướng phát triển: 20

TÀI LIỆU THAM KHẢO 21

2

Trang 3

LỜI NÓI ĐẦ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ọngkhông thể thiếu trong cuộc sống hiện đại Trong thời đại 4.0, con người ngàycàng tạo ra những cỗ máy thông minh có khả năng tự nhận biết và xử lí đượccác công việc một cách tự động, phục vụ cho lợi ích của con người Trongnhữ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ánnhậ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 ứngdụng thực tế của bàitoán cũng như sự phức tạp của nó Bài toán nhận dạng có rấtnhiều lĩnh vực như: nhận dạng vật chất, nhận dạng chữ viết, nhận dạng giọngnói, nhận dạng khuôn mặt trong đó phổ biến và có tính ứ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, sau đó là nhận dạng, phân loại khuônmặt

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ê, mong muốn được học hỏi các công nghệ, tiếp xúc với bàitoán nhận dạng, nhóm chúng em đã quyết định lựa chọn đề tài “Xây dựng hệthống nhận dạng khuôn mặt con người” cho đồ án môn học của mình Nhómchúng em mong muốn có thể triển khai được một mô hình đáp ứng được tiêuchuẩn tốt, nhanh để phù hợp cho tính ứng dụng của nó

Đồ án của nhóm chúng em bao gồm 4 nội dung chính:

án môn học Nhóm chúng em xin chân thành cảm ơn thầy

3

Trang 4

CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI

1 Lý do chọn đề tài:

Với sự phát triển không ngừng của khoa học và công nghệ, đặc biệt là với nhữngchiếc điện thoại thông minh ngày càng hiện đại và được sử dụng 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àycàng tăng Theo đó, lĩnh vực xử lý ảnh cũng được chú trọng phát triển, ứng dụngrộ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ạngkhuô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ớingườ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ánnhận dạng khuôn mặt đóng vai trò quan trọng trong nhiều lĩnh vực đời sốnghà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ếmthông tin một người nổi tiếng đặc biệt là các vấn đề an ninh, bảo mật.Trong khuôn khổ đồ án môn học, nhóm em rất mong muốn triển khai một môhình nhận diện khuôn mặt có thể đáp ứng được tính thực tiễn yêu cầu độ chínhxác tương đối như hệ thống gửi xe, hệ thống điểm danh Vì vậy nhóm em đãlựa chọn đề tài “Xây dựng hệ thống nhận dạng khuôn mặt của con người” để cóthể tìm hiểu sâu hơn và hiểu hơn về bài toán.

2 Yêu cầu bài toán:

Phát hiện đúng khuôn mặt có trong ảnh, video

3 Ý tưởng thực hiện:

Bài toán: Phát hiện tọa độ khuôn mặt trong ảnh, video

4

Trang 5

CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

1 Học máy là gì?

Học máy (Machine Learning) là một lĩnh vực trong khoa học máy tính và trí tuệnhân tạo, nó nghiên cứu và phát triển các thuật toán và mô hình máy tính để máytính có khả năng học từ dữ liệu và tự điều chỉnh Điểm đặc biệt của học máy làkhả năng học thông qua các quá trình tự động và không cần được lập trình cụthể cho mỗi nhiệm vụ cụ thể

Lý thuyết về học máy bao gồm nhiều khía cạnh quan trọng:

1 Thuật toán học máy: Đây là các thuật toán và phương pháp tính toán

được sử dụng để xây dựng mô hình học máy Các ví dụ phổ biến bao gồmSupport Vector Machines, Neural Networks, Decision Trees, và k-MeansClustering

2 Dữ liệu: Dữ liệu là yếu tố quan trọng trong học máy Mô hình học máy

được huấn luyện trên dữ liệu để hiểu và dự đoán thông tin Dữ liệu phảiđược thu thập, tiền xử lý và chuẩn bị cẩn thận trước khi áp dụng cho các

mô hình học máy

3 Phân chia dữ liệu: Dữ liệu được chia thành dữ liệu huấn luyện, dữ liệu

kiểm tra và dữ liệu xác thực để đảm bảo tính tổng quát và độ tin cậy của

mô hình

4 Đánh giá mô hình: Để đánh giá hiệu suất của mô hình, các chỉ số như độ

chính xác, precision, recall và F1-score được sử dụng để đo lường khảnăng dự đoán

5 Tối ưu hóa mô hình: Tối ưu hóa mô hình học máy để đảm bảo rằng nó

đạt được hiệu suất tốt nhất trên dữ liệu mới hoặc dữ liệu không nhìn thấytrước

Ứng dụng của học máy rất đa dạng và đã thay đổi cách chúng ta sống và làmviệc Dưới đây là một số ví dụ:

1 Dự đoán: Học máy được sử dụng để dự đoán các sự kiện tương lai, chẳng

hạn như dự đoán thời tiết, thị trường chứng khoán, và dự đoán thấtnghiệp

2 Xử lý ngôn ngữ tự nhiên: Học máy được sử dụng để xây dựng các ứng

dụng xử lý và hiểu ngôn ngữ tự nhiên, chẳng hạn như chuyển đổi giọngnói thành văn bản, dịch máy, và phân loại văn bản

5

Trang 6

3 Thị giác máy tính: Máy tính học cách nhận dạng hình ảnh và video, ví

dụ như trong xe tự hành, kiểm tra chất lượng sản phẩm, và phát hiện bấtthường

4 Dự đoán chuỗi thời gian: Học máy có thể dự đoán chuỗi thời gian, giúp

trong việc dự đoán và ứng phó với các vấn đề như nhu cầu điện năng,giao thông và dự đoán thị trường

5 Y tế và dược phẩm: Học máy được sử dụng để phân tích hình ảnh y tế,

dự đoán bệnh, và phát triển loại thuốc mới

Trong thời đại số hóa ngày nay, học máy đang trở thành một công cụ quan trọngtrong nhiều ngành và có tiềm năng biến đổi cách chúng ta làm việc và tương tácvới thế giới

2 Nhận diện khuôn mặt (Face Recognition):

Nhận diện khuôn mặt là một trong những ứng dụng quan trọng và thú vị của họcmáy và trí tuệ nhân tạo Nó đã có một tác động lớn đối với cuộc sống hàng ngày của chúng ta và có nhiều ứng dụng thú vị trong nhiều lĩnh vực khác nhau Trong bài viết này, chúng ta sẽ khám phá lý thuyết đằng sau nhận diện khuôn mặt trongmachine learning và đi sâu vào những ứng dụng của nó

Lý thuyết về nhận diện khuôn mặt trong Machine Learning:

1 Thuật toán học máy: Nhận diện khuôn mặt dựa vào sự phát triển và sử

dụng các thuật toán học máy Các thuật toán này có khả năng học từ dữ liệu và xây dựng các mô hình có khả năng nhận dạng khuôn mặt

2 Dữ liệu đào tạo: Để xây dựng mô hình nhận diện khuôn mặt, cần có một

tập dữ liệu lớn chứa hình ảnh của nhiều khuôn mặt khác nhau Dữ liệu này sẽ được sử dụng để huấn luyện mô hình, giúp nó học các đặc điểm và biểu hiện của khuôn mặt con người

3 Trích xuất đặc trưng: Một phần quan trọng của nhận diện khuôn mặt là

trích xuất các đặc trưng quan trọng từ hình ảnh khuôn mặt, chẳng hạn như

vị trí mắt, miệng, mũi và các đặc điểm kết cấu Các thuật toán trích xuất đặc trưng giúp biểu diễn hình ảnh một cách số hóa

4 So sánh và xác định: Mô hình nhận diện khuôn mặt sau đó so sánh các

đặc trưng trích xuất từ hình ảnh với các mẫu trong dữ liệu đào tạo để xác định xem khuôn mặt đó thuộc về ai

Ứng dụng của nhận diện khuôn mặt:

1 Bảo mật: Ứng dụng bảo mật là một trong những lĩnh vực quan trọng của

nhận diện khuôn mặt Hệ thống này được sử dụng để mở khóa điện thoại

di động, máy tính, và cửa ra vào an toàn Nó cũng được sử dụng trong việc theo dõi truy cập vào các khu vực như ngân hàng và cơ sở quân sự

6

Trang 7

2 Giám sát và An Ninh: Hệ thống nhận diện khuôn mặt được triển khai

rộng rãi trong lĩnh vực giám sát và an ninh Chúng được sử dụng để theo dõi sân bay, sân vận động, và các khu vực công cộng khác để đảm bảo an toàn

3 Giả mạo ảnh và Video: Nhận diện khuôn mặt được sử dụng để phát hiện

sự giả mạo trong hình ảnh và video, đảm bảo tính trung thực của thông tintrực tuyến

4 Y tế: Trong lĩnh vực y tế, nhận diện khuôn mặt có thể được sử dụng để

xác định bệnh truyền nhiễm dựa trên biểu hiện khuôn mặt, chẳng hạn như các triệu chứng lâm sàng của bệnh

5 Giao tiếp và Dịch Máy: Công nghệ nhận diện khuôn mặt giúp cải thiện

giao tiếp và dịch máy bằng cách nhận diện biểu cảm khuôn mặt và dịch chúng thành văn bản hoặc giọng nói

6 Xác định và Tự động hóa công việc: Một số ứng dụng kinh doanh sử

dụng nhận diện khuôn mặt để xác định và theo dõi nhân viên, giúp tăng cường an ninh và quản lý nguồn nhân lực

Nhận diện khuôn mặt trong machine learning đã và đang thay đổi cách chúng ta tương tác với công nghệ và nhau, mang lại nhiều lợi ích đối với an ninh, quản lý,

và tiện ích cá nhân Tuy nhiên, cần quan tâm đến các vấn đề liên quan đến đạo đức và quyền riêng tư để đảm bảo rằng công nghệ này được sử dụng một cách cân nhắc và đúng đắn

3 Bài toán:

Để có thể phát hiện tọa độ khuôn mặt người có trong ảnh hoặc video, chúng em

sử dụng thư viện face_recognition Nó sử dụng mô hình mạng neural sâu được đào tạo trước (pre-trained model) để nhận diện khuôn mặt dựa trên các điểm mốc landmarks) trên khuôn mặt Cụ thể, thư viện face_recognition sử dụng mô hình dlib's face recognition model, một mô hình học sâu được đào tạo để trích xuất các đặc trưng quan trọng của khuôn mặt như các điểm mốc trên mắt, mũi, miệng, và cấu trúc tổng quan của khuôn mặt Sau đó, nó so sánh các điểm mốc này với dữ liệu đã biết để nhận diện và xác định khuôn mặt Cách thư viện face_recognition hoạt động có điểm tương đồng với hệ thống nhận diện khuôn mặt dựa trên điểm mốc, không sử dụng mô hình dự đoán (classifier) để xác định khuôn mặt dựa trên dữ liệu đào tạo Nó là một phương pháp phổ biến cho nhận diện khuôn mặt và thường được sử dụng trong các ứng dụng như nhận diện khuôn mặt và theo dõi khuôn mặt

Thư viện dlib được sử dụng trong thư viện face_recognition để thực hiện các tác

vụ nhận diện và xác định khuôn mặt Dlib cung cấp các công cụ mạnh mẽ cho việc xử lý hình ảnh và phát hiện các điểm mốc quan trọng trên khuôn mặt, như

7

Trang 8

mắt, mũi và miệng Dưới đây là một số điểm quan trọng về cách dlib được tích hợp trong face_recognition:

1 Nhận diện khuôn mặt: Dlib cung cấp một mô hình học máy đã được đào

tạo để nhận diện khuôn mặt trong ảnh Thư viện face_recognition sử dụng

mô hình này để xác định vị trí và kích thước của khuôn mặt trong ảnh

2 Xác định điểm mốc khuôn mặt: Một trong những tính năng mạnh mẽ

của dlib là khả năng xác định các điểm mốc quan trọng trên khuôn mặt, như mắt, mũi, và miệng Face_Recognition sử dụng dlib để trích xuất các điểm mốc này từ khuôn mặt đã được nhận diện

3 So sánh khuôn mặt dựa trên điểm mốc: Recognition sử dụng các điểm

mốc trên khuôn mặt để tạo một biểu đồ (face encoding) đại diện cho mỗi khuôn mặt Khi bạn cần so sánh hai khuôn mặt, thư viện sử dụng biểu đồ này để xác định xem chúng có giống nhau hay không

4 Nhận dạng khuôn mặt: Bằng cách so sánh các biểu đồ khuôn mặt (face

encodings) được tạo từ các điểm mốc, Face_Recognition cho phép bạn nhận dạng khuôn mặt và xác định xem khuôn mặt đó thuộc về ai (nếu nó

đã được đào tạo cho mục đích nhận dạng)

8

Trang 9

CHƯƠNG 3: CÔNG NGHỆ SỬ DỤNG VÀ BỘ DỮ LIỆU

Trang 10

CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH VÀ TRIỂN KHAI

CÀI ĐẶT

1. Các thư viện sử dụng:

Thư viện Numpy: là một thư viện toán học phổ biến và mạnh mẽ của Python

Cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dữ liệu ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều lần khi chỉ sử dụng “core Python” đơn thuần

Thư viện Face_Recognition: là một thư viện mã nguồn mở phổ biến được sử

dụng để nhận diện khuôn mặt trong ảnh và video Thư viện này dựa trên dlib, một thư viện sâu rất mạnh mẽ trong lĩnh vực xử lý ảnh và máy học Thư viện face_recognition cho phép bạn thực hiện nhiều công việc liên quan đến khuôn mặt, bao gồm: nhận diện khuôn mặt trong ảnh, so sánh khuôn mặt, nhận diện khuôn mặt trong video

Thư viện Pillow: là một thư viện mã nguồn mở cho Python dùng để xử lý ảnh

Thư viện này cho phép bạn thực hiện nhiều thao tác liên quan đến xử lý ảnh, baogồm cắt ảnh, thay đổi kích thước, chuyển đổi định dạng, tạo ảnh mới, và thậm chí là xử lý ảnh số học Thư viện Pillow là một phần của hệ sinh thái Python phổbiến cho xử lý ảnh và được sử dụng rộng rãi trong các ứng dụng và dự án liên quan đến xử lý hình ảnh

Thư viện OpenCV: là một thư viện mã nguồn mở phổ biến trong lĩnh vực thị

giác máy tính (computer vision) Thư viện này được thiết kế để hỗ trợ nhiều tác

vụ liên quan đến xử lý hình ảnh và video, như nhận diện khuôn mặt, theo dõi đốitượng, phát hiện biên, chuyển đổi ảnh, và nhiều tác vụ khác liên quan đến xử lý ảnh và video

10

Trang 11

Thư viện Subprocess: là một thư viện trong Python cho phép bạn tương tác với

tiến trình ngoài cùng (external processes) trên hệ thống máy tính của bạn Nó cung cấp cách tiện lợi để chạy các lệnh từ dòng lệnh, tương tác với tiến trình đã tồn tại và xử lý dữ liệu truyền vào và ra khỏi tiến trình

2 Triển khai cài đặt:

1 Cài đặt môi trường Anaconda

- Cài Anaconda tại link:

https://www.anaconda.com/products/distribution

- Mở Anaconda Promt (Run as Administrator)

 Tạo môi trường mới: conda create name env_machine

 Cấu hình môi trường: activate env_machine

 Cài đặt OpenCV: conda install -c conda-forge opencv

 Cài đặt Cmake: pip install cmake

 Cài đặt Dlib: conda install -c conda-forge dlib

 Cài đặt Face_Recognition: pip install face_recognition

3 Chạy Test_Images.py, Test_Videos.py, Test_Webcam.py hoặc Menu.Py

để thực hiện các thao tác của chương trình

image_names = [os.path.splitext(file)[ ] 0 for file

Trang 12

3 Tạo một danh sách image_names chứa tên của các ảnh bằng cách bỏ phần

mở rộng của tên tệp Nói cách khác, image_names là danh sách các tên của các tệp hình ảnh trong thư mục "pic2" mà không bao gồm phần mở rộng của tệp

4 Lấy danh sách tất cả các tệp video có phần mở rộng là mp4 từ thư mục

"videos" và lưu vào biến video_files

5 Tạo danh sách images để lưu trữ các hình ảnh và danh sách classNames

để lưu trữ tên của các hình ảnh Đoạn code này duyệt qua tất cả các tệp trong thư mục "pic2" và đọc từng tệp hình ảnh Sau đó, nó thêm hình ảnh vào danh sách images và tên của tệp (loại bỏ phần mở rộng) vào danh sách classNames

4 Load dữ liệu:

# Load ảnh dựa trên lựa chọn của người dùng

selected_image_name = image_names[choice - ]1

selected_image_path = os.path.join(image_folder, image_files[choice - ])1

sample_face_encodings = []

sample_face_names = []

12

Ngày đăng: 03/12/2024, 16:27

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

TÀI LIỆU LIÊN QUAN