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

Xây dựng module Đăng nhập bằng nhận dạng khuôn mặt

85 1 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 Module Đăng Nhập Bằng Nhận Dạng Khuôn Mặt
Tác giả Lê Hoàng Phú
Người hướng dẫn PGS.TS Vũ Đức Lung
Trường học Trường Đại Học Lạc Hồng
Chuyên ngành Công Nghệ Thông Tin
Thể loại Luận Văn Thạc Sĩ
Năm xuất bản 2024
Thành phố Đồng Nai
Định dạng
Số trang 85
Dung lượng 3,78 MB

Nội dung

Các Bộ, ban ngành, địa phương cùng các doanh nghiệp, tổ chức, cá nhân luôn chú trọng nghiên cứu hệ thống nhận diện sinh trắc học ngày càng trở nên hoàn thiện hơn và có thể ứng dụng thực

Trang 2

LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN

NGƯỜI HƯỚNG DẪN KHOA HỌC PGS.TS VŨ ĐỨC LUNG

ĐỒNG NAI, NĂM 2024

Trang 3

LỜI CẢM ƠN

Để hoàn thành luận văn này, Em xin chân thành cảm ơn các thầy cô cùng Khoa Sau đại học Trường Đại Học Lạc Hồng đã giúp đỡ, hướng dẫn, truyền đạt cho em những kiến thức, kinh nghiệm quý báu và tạo điều kiện tốt nhất trong suốt thời gian

em theo học tại trường cũng như thời gian em đi nghĩa vụ quân sự, để em có thể hoàn thành luận văn này

Em xin tỏ lòng biết ơn chân thành đến thầy Vũ Đức Lung đã tận tình chỉ bảo, giúp đỡ, truyền đạt những kinh nghiệm, kỹ năng và phương pháp nghiên cứu để đề tài được hoàn thành

Xin gửi lời cảm ơn đến anh, chị, em đồng nghiệp cũng như các bạn cùng lớp đã động viên, giúp đỡ, đóng góp ý kiến rất nhiều trong quá trình thực hiện đề tài này

Do em còn hạn chế về kiến thức và thời gian có hạn nên đề tài không tránh khỏi những thiếu sót và khuyết điểm Em rất mong nhận được sự nhận xét, đóng góp ý kiến quý báu của các quý thầy cô để đề tài được hoàn thiện

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

Đồng Nai, ngày tháng năm 2024

Học viên

Lê Hoàng Phú

Trang 4

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu, là sản phẩm của riêng của cá nhân tôi Kết quả nêu trong luận văn là quá trình học tập và nghiên cứu khoa học độc lập hoàn toàn trung thực và chưa được công bố trong bất kỳ một công trình nghiên cứu nào khác Trong toàn bộ nội dung của luận văn, những điều được trình bày là của

cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu

Mọi nội dung tôi tham khảo từ các tài liệu được trích dẫn và chú thích đầy đủ Tôi xin chịu trách nhiệm về luận văn của mình

Đồng Nai, ngày tháng năm 2024

Học viên

Lê Hoàng Phú

Trang 5

TÓM TẮT LUẬN VĂN

Đề tài: Xây dựng module đăng nhập bằng nhận dạng khuôn mặt

Ngành: Công nghệ thông tin Mã số: 8480201

Học viên: Lê Hoàng Phú

Người hướng dẫn: PGS.TS Vũ Đức Lung

cơ quan nơi học viên công tác

- Mục đích dùng trong việc hạn chế đăng nhập hệ thống bằng các phương pháp thủ công, dễ bị tấn công bảo mật do thói quen người sử dụng như: Lưu mật khẩu dễ nhớ, không đổi mật khẩu định kỳ, lưu mật khẩu trên trình duyệt web…

- Góp một phần nhỏ vào công cuộc chuyển đổi số cho tỉnh Đồng Nai

- Tìm hiểu về thư viện xử lý ảnh OpenCV, MTCNN, Facenet

- Tìm hiểu ngôn ngữ Python và cơ sở dữ liệu (CSDL) SQLite

- Tìm hiểu, thực hiện các quy trình huấn luyện mô hình dữ liệu

- Viết phần mềm đăng nhập vào hệ thống bằng nhận dạng khuôn mặt

3 Đánh giá về mặt khoa học của kết quả

- Tìm hiểu những vấn đề liên quan đến xử lý ảnh, thư viện mã nguồn mở trong việc định vị và nhận dạng khuôn mặt

Trang 6

- Nghiên cứu thuật toán phát hiện khuôn mặt bằng MTCNN

- Nghiên cứu thuật toán nhận dạng khuôn mặt bằng Facenet

- Xây dựng phần mềm và mô hình vận dụng những lý thuyết đã nghiên cứu và thư viện OpenCV, Python

4 Những vấn đề còn tồn tại so với nội dung được giao

- Còn hạn chế trong vấn đề xử lý ảnh đầu vào như cân bằng ánh sáng môi trường dẫn đến khó khăn trong việc nhận diện ở môi trường thiếu ánh sáng hoặc bị nhiễu ánh sáng

- Chưa có nhiều thời gian nghiên cứu thêm các tính năng mở rộng để áp dụng vào ứng dụng thực tiễn như:

+ Phát hiện, cảnh báo nhắc nhở đeo khẩu trang trong khi làm việc tại cơ quan nhà nước

+ Nhận diện và đăng nhập bằng nhận dạng khuôn mặt vào phần mềm khi đeo khẩu trang

+ Phát triển chức năng phát hiện và cảnh báo người lạ xâm nhập các khu vực

cấm của cơ quan nhà nước

Ngày tháng năm 2024

PGS.TS Vũ Đức Lung Lê Hoàng Phú

Trang 7

MỤC LỤC

LỜI CẢM ƠN i

LỜI CAM ĐOAN ii

TÓM TẮT LUẬN VĂN iii

MỤC LỤC v

DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT vii

DANH MỤC BẢNG BIỂU viii

DANH MỤC HÌNH ẢNH ix

MỞ ĐẦU 1

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

1.1 Tổng quan đề tài trong và ngoài nước 3

1.2 Mục đích của đề tài 7

1.3 Đối tượng và phạm vi nghiên cứu đề tài 7

1.4 Cấu trúc luận văn 8

1.5 Kết luận chương 8

CHƯƠNG 2: LÝ THUYẾT CƠ BẢN HỖ TRỢ CHO HỆ THỐNG NHẬN DẠNG KHUÔN MẶT 9

2.1 Khái niệm nhận dạng khuôn mặt 9

2.2 Tổng Quan về học máy (machine learning) 10

2.2.1 Các phương pháp Machine learning 11

2.3 Các phương pháp đánh giá mô hình 14

2.3.1 Loss và accuracy 14

2.3.2 Confusion matrix 15

2.3.3 Precision 15

2.3.4 Recall 16

2.3.5 F-1 Score 16

2.3.6 ROC Curve 17

2.4 Các thư viện xử lý ảnh liên quan 18

2.4.1 Thư viện OpenCV 18

2.4.2 Thư viện Dlib 19

Trang 8

2.4.4 Thư viện Keras 23

2.5 Kết luận chương 25

CHƯƠNG 3: CÁC PHƯƠNG PHÁP, THUẬT TOÁN NHẬN DẠNG KHUÔN MẶT LIÊN QUAN 26

3.1 Phương pháp phát hiện khuôn mặt MTCNN 26

3.1.1 Mạng P-net 27

3.1.2 Mạng R-Net 27

3.1.3 Mạng O-Net 28

3.2 Phương pháp Facenet 29

3.2.1 Mô hình Pre-trained với FaceNet 30

3.2.2 Triple Loss 31

3.2.3 Mô hình tích chập 32

3.2.4 Mạng neural tích chập (Convolutional Neural Network-CNN) 32

3.3 Support Vector Machine (SVM) 39

3.4 Kết luận chương 45

CHƯƠNG 4: ỨNG DỤNG FACENET XÂY DỰNG MODULE XÁC THỰC ĐĂNG NHẬP QUA NHẬN DẠNG KHUÔN MẶT 46

4.1 Quá trình huấn luyện mô hình nhận diện 46

4.1.1 Kết nối Google colab 46

4.1.2 Huấn luyện mô hình 46

4.2 Đánh giá mô hình: 53

4.3 Xây dựng ứng dụng thực tiễn 55

4.3.1 Quá trình chuẩn bị và cài đặt 56

4.3.2 Đặc tả chức năng trong ứng dụng 58

4.3.3 Mô hình xây dựng 59

4.3.4 Giao diện Phần mềm quản lý văn bản 60

4.4 Kết quả Thực nghiệm 64

4.5 Kết luận chương 68

CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 69

TÀI LIỆU THAM KHẢO 71

Trang 9

DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT

Trang 10

DANH MỤC BẢNG BIỂU

Bảng 4.1: Mô tả hệ thống đăng ký 58 Bảng 4.2: Mô tả hệ thống đăng nhập 59 Bảng 4.3: mô tả kết quả nhận diện đối tượng chưa đăng ký thông tin 64 Bảng 4.4: mô tả kết quả nhận diện 9 đối tượng với 5 lần đăng nhập cho mỗi tài khoản 65 Bảng 4.5: mô tả kết quả nhận diện đối tượng đã có dữ liệu với các góc nhìn khác nhau mỗi góc nhận diện với 5 lần đăng nhập cho mỗi tài khoản 65

Trang 11

DANH MỤC HÌNH ẢNH

Hình 2.1 Quy trình nhận dạng khuôn mặt 9

Hình 2.2: Cấu trúc cơ bản của OpenCV 19

Hình 2.3: Kiến trúc thư viện Dlib 20

Hình 3.1: Sơ đồ hoạt động của MTCNN 26

Hình 3.2: Các tầng hình ảnh 27

Hình 3.3: Sơ đồ hoạt động P-Net 27

Hình 3.4: Sơ đồ hoạt động R-Net 28

Hình 3.5: Sơ đồ hoạt động O-Net 28

Hình 3.6: Kiến trúc CNN cơ bản 33

Hình 3.7: Mảng ma trận RGB 6x6x3 33

Hình 3.8: Ma trận 5 x 5 và Ma trận bộ lọc 3 x 3 có giá trị pixel là 0 và 1 34

Hình 3.9: Lớp tích chập hoạt động với Bước nhảy là 2 34

Hình 3.10: Lớp tích chập nhân với ma trận bộ lọc 35

Hình 3.11: Lớp Tích chập khác nhau sau khi áp dụng các Kernel khác nhau 36

Hình 3.12: Maxpooling với bộ lọc 2x2 và bước nhảy 2 38

Hình 3.13: Giai đoạn Flattening 38

Hình 3.14: Siêu phẳng trong không gian 2 chiều 39

Hình 3.15: Siêu phẳng trong không gian 3 chiều 39

Hình 3.16: Các đường thẳng phân tách tập dữ liệu 40

Hình 3.17: Siêu phẳng với lề cực đại 41

Hình 3.18: Minh họa về việc chuyển đổi không gian 42

Hình 3.19: Minh họa cho các lớp không thể phân tách bởi tuyến tính trong không gian 1 – chiều và 2 – chiều tương ứng 43

Hình 3.20: Minh họa về dùng ánh xạ để biến đổi sang không gian nhiều chiều hơn, mà ở đó có thể phân tách được tuyến tính 44

Hình 4.1: Hình ảnh kết nối Google colab 46

Hình 4.2: Dataset để phục vụ huấn luyện 47

Hình 4.3: Minh họa về thu thập dữ liệu 47

Trang 12

Hình 4.4: Một số hình ảnh trong Dataset sau khi được thực hiện tiền xử lý dữ liệu

theo kích thước 160 x 160 px 48

Hình 4.5: Kết nối google drive để sử dụng dữ liệu Dataset 48

Hình 4.6: Sử dụng 80% dữ liệu trong dataset để huấn luyện 48

Hình 4.7: Sử dụng 20% dữ liệu trong dataset để đánh giá 49

Hình 4.8: Sử dụng 10% dữ liệu trong dataset để thử nghiệm mô hình 49

Hình 4.9: Hiển thị một số hình ảnh bất kỳ 50

Hình 4.10: Mô hình huấn luyện 50

Hình 4.11: Quá trình huấn luyện đào tạo dữ liệu 51

Hình 4.12: Minh họa xác thực khuôn mặt 52

Hình 4.13: Lưu lại mô hình 52

Hình 4.14: Đồ thị kết quả độ chính xác 53

Hình 4.15: Đồ thị kết quả kết quả sai số 54

Hình 4.16: Kết quả thử nghiệm trên tập huấn luyện 54

Hình 4.17: Kết quả đánh giá qua các phương pháp đánh giá 54

Hình 4.18: Mô tả mô hình nhận dạng khuôn mặt 59

Hình 4.19: Mô hình xử lý đăng nhập tài khoản của phần mềm Quản lý văn bản 60

Hình 4.20: Giao diện phần mềm Quản lý văn bản 60

Hình 4.21: Nhập thông tin đăng ký 61

Hình 4.22: Camera đang thu thập dữ liệu đầu vào khi đăng ký tài khoản 61

Hình 4.23: Giao diện thông báo “tài khoản đã tồn tại” 62

Hình 4.24: Giao diện đăng nhập 62

Hình 4.25: Trường hợp dữ liệu tài khoản và khuôn mặt chưa có 63

Hình 4.26: Đăng nhập thành công 63

Trang 13

MỞ ĐẦU

Trong thời đại công nghiệp 4.0 với sự bùng nổ phát triển vượt bậc của các ngành công nghiệp trên thế giới Việt Nam để thích ứng nhanh chóng trong tình hình mới và tận dụng cơ hội mà cuộc cách mạng công nghệ 4.0 mang lại, ngày 27/9/2019, Ban Chấp hành Trung ương đã ban hành Nghị quyết số 52-NQ/TW về một số chủ trương, chính sách chủ động tham gia cuộc cách mạng công nghiệp lần thứ tư, trong

đó nhấn mạnh yêu cầu cấp bách để đẩy nhanh quá trình chuyển đổi số Trên cơ sở đó, ngày 03/6/2020, Thủ tướng Chính phủ đã ký ban hành Quyết định số 749/QĐ-TTg phê duyệt chương trình chuyển đổi số quốc gia đến năm 2025, định hướng đến 2030 Chương trình Chuyển đổi số quốc gia nhằm mục tiêu kép là vừa phát triển Chính phủ

số, kinh tế số, xã hội số, vừa hình thành các doanh nghiệp công nghệ số Việt Nam có năng lực đi ra toàn cầu, với một số chỉ số cơ bản

Với ưu thế là một tỉnh công nghiệp, hạ tầng kinh tế - xã hội phát triển, những năm qua tỉnh Đồng Nai đã chủ động chuyển đổi số mạnh mẽ trên mọi lĩnh vực Trọng tâm là cải cách thủ tục hành chính và ứng dụng công nghệ thông tin vào hoạt động các cơ quan nhà nước Đã đạt được một số kết quả quan trọng trong việc triển khai ứng dụng công nghệ thông tin vào chỉ đạo, điều hành và trong cải cách hành chính như: Nền tảng tích hợp, chia sẻ dữ liệu tỉnh kết nối cơ sở dữ liệu quốc gia về dân cư, bảo hiểm, y tế, nông nghiệp; Hệ thống quản lý văn bản và điều hành có tích hợp chữ

ký số được kết nối liên thông văn bản điện tử bốn cấp (Trung ương - tỉnh - huyện - xã); Hệ thống một cửa điện tử triển khai đồng bộ từ cấp tỉnh đến cấp xã Cổng dịch

vụ công của tỉnh đã tích hợp đầy đủ các dịch vụ công trực tuyến để phục vụ người dân, doanh nghiệp nộp hồ sơ thủ tục hành chính qua mạng

Bên cạnh những thành tựu đạt được, quá trình chuyển đổi số ở tỉnh Đồng Nai vẫn còn một số hạn chế, đó là: Xếp hạng mức độ ứng dụng công nghệ thông tin của tỉnh vẫn chỉ dừng lại ở mức trung bình khá so với cả nước, hạ tầng kỹ thuật đang được đầu tư nhưng chưa bảo đảm yêu cầu phát triển trong tình hình mới; cơ sở dữ liệu chưa được chia sẻ, kết nối, đồng bộ giữa các hệ thống thông tin; cán bộ công chức viên chưa sử dụng thành thạo máy tính dẫn đến tình trạng việc bảo mật thông tin cá nhân chưa được nâng cao trong các cơ quan đơn vị tỉnh Đồng Nai

Trang 14

Nhận thức rõ tầm quan trọng trong việc chuyển đổi số của Tỉnh Đồng Nai nói chung và bảo mật thông tin cán bộ công chức tại các cơ quan đơn vị nói riêng Tôi đã lựa chọn việc nghiên cứu và hoàn thành nên luận văn “Xây dựng module đăng nhập bằng nhận dạng khuôn mặt” Mục đích chính trong nghiên cứu đề tài này là học hỏi, nghiên cứu các thuật toán, công nghệ nhận dạng khuôn mặt để áp dụng vào tiến trình đăng nhập của cán bộ công chức, viên chức Giúp nâng cao bảo mật hệ thống, thông tin Đồng thời góp phần giúp cho tỉnh Đồng Nai hoàn thành tốt nhiệm vụ chuyển đổi

số tại địa bàn tỉnh

Trang 15

CHƯƠNG 1 TỔNG QUAN ĐỀ TÀI 1.1 Tổng quan đề tài trong và ngoài nước

Trong những năm 90 của thế kỷ XX cho đến nay, dưới sự phát triển vượt bậc của khoa học và công nghệ Đặc biệt trong thời đại Cách mạng công nghiệp lần thứ

tư, việc nghiên cứu và phát triển các hệ thống nhận diện con người để đáp ứng vấn

đề an ninh bảo mật và phục vụ các nhu cầu của con người là một trong những bài toán luôn nhận được sự quan tâm của nhiều nhà nghiên cứu trong lĩnh vực thị giác máy tính Các hệ thống nhận diện con người ngày càng có độ chính xác cao tiêu biểu như: Hệ thống nhận diện giọng nói, Hệ thống nhận diện cảm xúc, Hệ thống nhận diện hình dáng, Hệ thống nhận diện sinh trắc học

Những năm gần đây việc các hệ thống một cửa điện tử, dịch vụ công trực tuyến, quản lý văn bản… của các Bộ ban ngành sử dụng xác thực bằng mật khẩu chứa nhiều rủi ro bảo mật Tâm lý người dùng vẫn chọn các hình thức đặt mật khẩu ngắn, đơn giản, dễ nhớ, dễ đoán và sử dụng một mật khẩu cho nhiều hệ thống đăng nhập khác nhau Nhận thấy những thuận lợi từ Cách mạng công nghiệp lần thứ tư mang lại và những thành công trong việc nghiên cứu khoa học và công nghệ trong hệ thống nhận diện sinh trắc học Thực hiện theo Nghị quyết số 52-NQ/TW ngày 27/9/2019 của Ban Chấp hành Trung ương Các Bộ, ban ngành, địa phương cùng các doanh nghiệp, tổ chức, cá nhân luôn chú trọng nghiên cứu hệ thống nhận diện sinh trắc học ngày càng trở nên hoàn thiện hơn và có thể ứng dụng thực tiễn được vào các hệ thống của sở ban ngành để phục vụ cán bộ công chức, viên chức cũng như phục vụ người dân tốt hơn tiêu biểu như:

Trong đề tài [1], tác giả trình bày hệ thống nhận dạng khuôn mặt qua Camera Bài toán được tác giả đưa ra trong đề tài là sử dụng các kỹ thuật cơ bản để xây dựng

hệ thống nhận dạng khuôn mặt dựa trên mạng nơ ron tích chập Để giải quyết bài toán trên tác giả đã đi sâu về mạng học sâu googlenet và resnet Sau đó đưa ra các ưu điểm

và nhược điểm khi kết hợp hai mạng này thành mạng inception resnet

Trong đề tài [2], tác giả trình bày ứng dụng phương pháp học sâu để nhận dạng khuôn mặt qua Camera giám sát Đề tài trên được tác giả đưa ra gồm 2 bài toán chính

Trang 16

đó là phát hiện khuôn mặt và nhận dạng khuôn mặt Tác giả sử dụng phương pháp HOG để trích chọn đặc trưng và bộ phân lớp SVM để phát hiện khuôn mặt, dùng mạng nơron học sâu Facenet để nhận dạng khuôn mặt trong mô hình đề xuất

Trong đề tài [3], tác giả trình bày ứng dụng nhận dạng khuôn mặt trong điểm danh tại học viện hành chính khu vực III Tác giả đã trình bày phương pháp PCA để giảm số chiều của 1 tập vector nhưng vẫn đảm bảo được tối đa các thông tin quan trọng nhất đồng thời kết hợp với phương pháp phân lớp dữ liệu bằng kỹ thuật SVM

để giải quyết bài toán trên

Trong bài báo [4], tác giả trình bày hệ thống điểm danh tự động dựa trên mô hình Mạng Nơ-Ron tích chập xếp tầng đa nhiệm và kỹ thuật Triplet Loss Đề tài đã trình bày phương pháp xây dựng hệ thống điểm danh tự động bằng cách sử dụng mô hình MTCNN để nhận dạng khuôn mặt và xác định khuôn mặt, đồng thời kết hợp kỹ thuật Triplet Loss để nhận diện danh tính người được điểm danh Kỹ thuật căn chỉnh khuôn mặt cũng được áp dụng để gia tăng tính chính xác của kết quả nhận diện kể cả trong các điều kiện thiếu sáng, góc nghiêng hay một phần khuôn mặt bị che khuất Trong bài báo [5], tác giả trình bày hệ thống nhận diện người không đeo khẩu trang Đề tài đã trình bày phương pháp sử dụng mạng Retinaface để phát hiện khuôn mặt, sử dụng CNN để nhận diện người không đeo khẩu trang từ mạng Retinaface và đưa ra cảnh báo đối với những người không đeo khẩu trang Kết quả thử nghiệm CNN nhận diện người không đeo khẩu trang đạt hiệu suất 96.88%

Trong đề tài [6], tác giả trình bày các nghiên cứu giải thuật máy học và áp dụng vào bài toán dự đoán bệnh thận tại bệnh viện đa khoa tỉnh Điện biên dùng ngôn ngữ Python Bài toán được tác giả đưa ra trong đề tài là tìm hiểu hai mô hình quan trọng của Máy học: Mô hình Support vector machine (SVM) và mô hình Logistic Regression (LGR) Thông qua việc cài đặt hai mô hình vào bài toán dự báo bệnh nhân bệnh thận của tác giả Tác giả nhận thấy Mô hình Support vector machine (SVM) cho kết quả khá tốt và với độ chính xác cao nhất

Trang 17

Trên thế giới cũng có nhiều đề tài nghiên cứu về nhận dạng khuôn mặt và có thể ứng dụng thực tiễn nhận dạng khuôn mặt cho các cơ quan đơn vị, trong đó đáng phải

kể đến như:

Trong bài báo [7] tác giả mô tả một phương pháp mới để phát hiện và canh chỉnh khuôn mặt trong ảnh Phương pháp này sử dụng một mạng CNN nhiều tầng, trong đó mỗi tầng thực hiện một nhiệm vụ cụ thể Mạng CNN đầu tiên (P-Net) thực hiện nhiệm vụ phát hiện khuôn mặt thô Mạng CNN thứ hai (R-Net) thực hiện nhiệm

vụ phát hiện khuôn mặt chính xác hơn bằng cách sử dụng các kết quả của P-Net làm đầu vào Mạng CNN thứ ba (O-Net) thực hiện nhiệm vụ canh chỉnh khuôn mặt bằng cách sử dụng các kết quả của R-Net làm đầu vào Các tác giả của bài báo đã chứng minh rằng phương pháp của họ có độ chính xác cao hơn các phương pháp khác trong việc phát hiện và canh chỉnh khuôn mặt trong các điều kiện ánh sáng và góc độ khác nhau trong thời gian thực Tác giả cũng đã thực hiện một số thử nghiệm để đánh giá hiệu suất của phương pháp của họ trên các tập dữ liệu khuôn mặt khác nhau

Trong bài báo [8] tác giả cung cấp một phương pháp để trực tiếp tìm hiểu cách nhúng vào không gian Euclide để xác minh khuôn mặt Phương pháp bao gồm một mạng CNN được đào tạo để tối thiểu hóa một hàm mất mát được xác định dựa trên khoảng cách Euclidean giữa các vector nhúng của các khuôn mặt khớp và không khớp Để đào tạo, hệ thống sử dụng các bộ ba gồm các điểm khuôn mặt được căn chỉnh gần đúng khớp / không khớp được tạo bằng phương pháp khai thác bộ ba trực tuyến mới Hệ thống đạt được hiệu suất nhận dạng khuôn mặt vượt trội trên các tập

dữ liệu tiêu chuẩn như LFW (Labeled Faces in the Wild, là một tập dữ liệu chứa 13.233 hình ảnh của 5.749 người nổi tiếng, mỗi người có ít nhất 2 ảnh Các hình ảnh này được thu thập từ nhiều nguồn khác nhau, bao gồm tạp chí, báo chí và trang web.)

và YouTube Faces DB (chứa hơn 300.000 hình ảnh của hơn 100.000 người Các hình ảnh này được thu thập từ các video YouTube và được dán nhãn bằng các kỹ thuật học máy Nó cũng cho thấy hiệu suất tốt trong các nhiệm vụ xác minh khuôn mặt

Trong bài báo [9], tác giả đề xuất một hệ thống phát hiện khuôn mặt nhanh chóng và hiệu quả Hệ thống sử dụng một phương pháp gọi là phân loại xếp tầng (cascaded classifiers), trong đó một loạt các bộ phân loại được sử dụng để loại bỏ các

Trang 18

khu vực không phải khuôn mặt khỏi hình ảnh Hệ thống hoạt động như sau: Đầu tiên, một bộ phân loại đơn giản được sử dụng để loại bỏ các khu vực lớn của hình ảnh không chứa khuôn mặt Sau đó, một bộ phân loại phức tạp hơn được sử dụng để phân loại các khu vực còn lại Nếu một khu vực được phân loại là khuôn mặt, nó sẽ được tiếp tục xử lý Nếu không, nó sẽ bị loại bỏ Các bộ phân loại trong hệ thống được đào tạo sử dụng một phương pháp gọi là AdaBoost, trong đó các bộ phân loại được xây dựng từ một tập hợp các tính năng Các tính năng được chọn dựa trên mức độ hiệu quả của chúng trong việc phân loại các khu vực khuôn mặt và không phải khuôn mặt

Hệ thống đạt được tốc độ phát hiện khuôn mặt vượt trội so với các hệ thống trước đây Nó cũng đạt được độ chính xác cao, ngay cả khi khuôn mặt bị biến dạng hoặc có ánh sáng yếu

Trong bài báo [10] mô tả một phương pháp mới để huấn luyện máy hỗ trợ vector (SVM) cho nhiệm vụ phát hiện khuôn mặt Bài báo này bắt đầu bằng cách cung cấp một nền tảng lý thuyết về SVM, sau đó mô tả phương pháp huấn luyện mới Phương pháp này sử dụng một thuật toán phân tích thành phần chính PCA để giảm thiểu số lượng biến trong không gian đặc trưng Điều này làm cho quá trình huấn luyện SVM nhanh hơn và hiệu quả hơn Bài báo cũng trình bày kết quả của các thử nghiệm thực nghiệm cho thấy phương pháp huấn luyện mới có hiệu quả hơn các phương pháp huấn luyện truyền thống trong việc phát hiện khuôn mặt Bài báo đã được công bố trên tạp chí IEEE Transactions on Pattern Analysis and Machine Intelligence năm

1997 và đã được trích dẫn hơn 2000 lần Nó là một trong những bài báo được trích dẫn nhiều nhất trong lĩnh vực phát hiện khuôn mặt

Trong bài báo [11], tác giả đề xuất một kiến trúc mạng thần kinh tích chập CNN (Convolutional neural network) mới có tên là EfficientNet EfficientNets đạt được hiệu suất tốt hơn các CNN trước đó bằng cách kết hợp các kỹ thuật scaling khác nhau, bao gồm tăng độ sâu, độ rộng và độ phân giải của mạng Bài báo bắt đầu bằng việc xem xét các phương pháp chia tỉ lệ CNN hiện có thường tập trung vào việc tăng một chiều của mạng Các phương pháp này thường tập trung vào việc tăng một trong ba chiều của mạng: độ sâu, độ rộng hoặc độ phân giải Tuy nhiên, các tác giả chỉ ra rằng việc tăng một chiều mà không tăng các chiều khác có thể dẫn đến sự suy giảm hiệu

Trang 19

suất Để giải quyết vấn đề này, các tác giả đề xuất một phương pháp chia tỉ lệ mới cho EfficientNets Phương pháp này sử dụng một hệ số nhân compound để điều chỉnh tất cả ba chiều của mạng Hệ số nhân này được tối ưu hóa cho từng nhiệm vụ cụ thể bằng cách sử dụng kỹ thuật NAS (neural architecture search) Các tác giả đã đánh giá hiệu suất của EfficientNets trên các tập dữ liệu ImageNet và CIFAR-10 Kết quả cho thấy EfficientNets đạt được hiệu suất tốt hơn các CNN trước đó Cụ thể, EfficientNet- B0 đạt được độ chính xác 84,3% trên ImageNet, cao hơn 1,3% so với ResNet-50 EfficientNets là một kiến trúc CNN hiệu quả mới đã đạt được thành công đáng kể trong các ứng dụng thực tế Kiến trúc này đã được sử dụng trong các sản phẩm của Google, chẳng hạn như Google Photos và Google Search

1.2 Mục đích của đề tài

Đề tài này nhằm mục đích tìm hiểu và nghiên cứu các phương pháp nhận dạng khuôn mặt Áp dụng thực tiễn các phương pháp nhận dạng khuôn mặt vào quá trình đăng nhập trên các phần mềm dành cho cán bộ công chức, viên chức trong các cơ quan, đơn vị trong Tỉnh Đồng Nai

1.3 Đối tượng và phạm vi nghiên cứu đề tài

Đối tượng:

- Các phương pháp, các thuật toán phát hiện và nhận dạng khuôn mặt trong ảnh

- Các hình ảnh về khuôn mặt

- Phạm vi:

- Tìm hiểu phương pháp phát hiện khuôn mặt (MTCNN)

- Tìm hiểu phương pháp nhận dạng khuôn mặt (FaceNet)

- Việc xử lý ảnh và nhận diện ảnh thỏa mãn các điều kiện sau:

+ Trong điều kiện ánh sáng bình thường, không chói

+ Ảnh trực diện hoặc không nghiêng quá 10 độ

+ Ảnh không bị che khuất

+ Ảnh có chất lượng cao

Trang 20

1.4 Cấu trúc luận văn

Luận văn gồm phần mở đầu, kết luận và 05 chương

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

- Giới thiệu các thông tin liên quan đến mục đích chọn đề tài, các đề tài trong

và ngoài nước, đối tượng và phạm vi nghiên cứu đề tài

Chương 2: Lý thuyết cơ bản hỗ trợ cho hệ thống nhận dạng khuôn mặt

- Giới thiệu tổng quan về khái niệm hệ thống nhận dạng khuôn mặt, các phương pháp học máy, các phương pháp đánh giá và thư viện xử lý ảnh Những ưu điểm và nhược điểm để áp dụng vào ứng dụng thực tiễn

Chương 3: Các phương pháp, thuật toán nhận dạng khuôn mặt liên quan

- Giới thiệu về các phương pháp, thuật toán được sử dụng vào ứng dụng thực tiễn của luận văn

Chương 4: Xây dựng, ứng dụng module đăng nhập bằng nhận dạng khuôn mặt vào ứng dụng thực tiễn

- Xây dựng phần mềm thực tiễn áp dụng các phương pháp và thuật toán đã tìm hiểu và giới thiệu ở chương 3

Chương 5: Kết luận và hướng phát triển

- Kết luận và đưa ra hướng phát triển trong tương lai

- Tài liệu tham khảo

1.5 Kết luận chương

Trong chương này, luận văn đã tìm hiểu và nêu rõ các thông tin liên quan đến mục đích chọn đề tài, các đề tài trong và ngoài nước, đối tượng và phạm vi nghiên cứu đề tài Trong chương tiếp theo luận văn sẽ tìm hiểu khái niệm hệ thống nhận dạng khuôn mặt, các phương pháp học máy, các phương pháp đánh giá và thư viện xử lý ảnh Những ưu điểm và nhược điểm để áp dụng vào ứng dụng thực tiễn

Trang 21

CHƯƠNG 2: LÝ THUYẾT CƠ BẢN HỖ TRỢ CHO HỆ THỐNG NHẬN

DẠNG KHUÔN MẶT 2.1 Khái niệm nhận dạng khuôn mặt

Nhận dạng khuôn mặt (Face Recognition) là một loại sinh trắc học được nghiên cứu và áp dụng thực tiễn vào một loại ứng dụng có khả năng tự động kiểm tra, xác định tìm kiếm thông tin của một người trên phép so sánh một - nhiều, đối chiếu thông tin mới nhận của một người nào đó từ ảnh hoặc video dựa trên đặc điểm của khuôn mặt mà CSDL (cơ sở dữ liệu) đã lưu trữ trước đó để tìm ra một người là ai trong số những người đã được lưu trữ trong hệ thống có khớp hay không

Nhận dạng khuôn mặt được xem là một lĩnh vực nghiên cứu tương tự như (nhận diện mống mắt - Iris Recognition và nhận diện vân tay - Fingerprint Recognition) có

sự tương đồng giống nhau về nguyên tắc chung nhưng khác nhau về bước trích chọn đặc trưng của mỗi lĩnh vực

Yêu cầu để xây dựng được hệ thống nhận dạng khuôn mặt chúng ta cần dữ liệu đầu vào là các hình ảnh hoặc các video Dữ liệu đầu ra nhận diện và xác minh những người trong hình ảnh hoặc trong video đó là ai Nhận dạng khuôn mặt được thực hiện theo các bước như sau: Hình ảnh đầu vào (Image), Phát hiện khuôn mặt (Face Detection), rút trích đặc trưng (Feature Extraction), nhận dạng khuôn mặt (Face Recognition) và xác minh danh tính khuôn mặt được nhận diện (verification/ identification)

Hình 2.1 Quy trình nhận dạng khuôn mặt

Phát hiện khuôn mặt: có nhiệm vụ phát hiện ra các khuôn mặt trong dữ liệu đầu vào là các hình ảnh và video Tỉ lệ phát hiện khuôn mặt phụ thuộc vào nhiều điều kiện khác nhau như độ sáng, hướng nhận dạng khuôn mặt và các điều kiện khác Để

hệ thống nhận diện với tỉ lệ chính xác cao thì các hình ảnh khuôn mặt sau khi nhận diện từ hình ảnh, video cần phải chuẩn hóa về kích thước và ánh sáng

Extraction

Face Detection

verification/ identification Face

Recognition

Trang 22

Rút trích đặc trưng: Sau khi nhận diện các khuôn mặt trong dữ liệu đầu vào là các hình ảnh và video, hệ thống tiến hành rút trích những đặc trưng của khuôn mặt bằng cách trích xuất ra một vector đặc trưng đại diện cho một khuôn mặt Nó phải đảm bảo được tính duy nhất của một khuôn mặt

Nhận dạng khuôn mặt: Sau khi phát hiện ra khuôn mặt với dữ liệu đầu vào là các hình ảnh và video Hệ thống sẽ rút trích các đặc trưng của khuôn mặt và đem so sánh các đặc trưng này với cơ sở dữ liệu khuôn mặt bằng cách hệ thống thực hiện chuyển đổi thông tin khuôn mặt thành dữ liệu dưới dạng faceprint (dấu khuôn mặt) dựa trên các rút trích đặc trưng khuôn mặt

Xác minh danh tính khuôn mặt được nhận diện (verification/ identification)

- Verification (xác thực): ánh xạ 1-1, là quá trình xác nhận danh tính của một

cá nhân bằng cách so sánh khuôn mặt của họ với một khuôn mặt đã lưu trong cơ sở

dữ liệu

Kết quả: Kết quả là một xác nhận đơn giản ("Đúng" hoặc "Sai"), tức là khuôn

mặt hiện tại có phải là của người đã lưu hay không

- Identification (nhận diện) ánh xạ 1-nhiều, là quá trình nhận diện và xác định

danh tính của một cá nhân bằng cách so sánh khuôn mặt của một cá nhân đưa vào hệ thống nhận diện với với nhiều khuôn mặt từ nhiều người trong cơ sở dữ liệu

Kết quả: Kết quả là danh tính của cá nhân trong số các khuôn mặt đã lưu, hoặc

thông báo không tìm thấy người trùng khớp

2.2 Tổng Quan về học máy (machine learning)

Máy học (machine learning) là một lĩnh vực con của trí tuệ nhân tạo, tập trung vào việc phát triển các thuật toán và mô hình cho phép máy tính tự học hỏi từ dữ liệu

mà không cần lập trình cụ thể Là một lĩnh vực của phân tích dữ liệu, máy học là một phương pháp sử dụng các kỹ thuật thống kê, toán học thông qua dữ liệu để phân tích, xây dựng các mô hình và thuật toán được đào tạo để đưa ra các phân loại hoặc dự đoán và khám phá những thông tin chi tiết từ chính các dự án khai thác dữ liệu

Trang 23

Bài toán của máy học thường được chia làm hai loại là dự đoán (prediction) và phân loại (classification) Các bài toán dự đoán thường là giá nhà, giá xe, v.v, còn các bài toán phân loại thường là nhận diện chữ viết tay, đồ vật, khuôn mặt v.v

Ứng dụng của máy học rất đa dạng và được áp dụng rộng rãi bao gồm nhận diện hình ảnh, xử lý ngôn ngữ tự nhiên, hệ thống gợi ý, truy tìm dữ liệu và nhiều lĩnh vực khác trong khoa học, kinh tế và y tế Với sự phát triển nhanh chóng của công nghệ và

dữ liệu lớn, máy học đang ngày càng trở nên quan trọng trong việc giải quyết các vấn

đề phức tạp trong cuộc sống hàng ngày

Máy học là chương trình máy tính tự “học” từ dữ liệu Do vậy việc tìm hiểu kỹ

dữ liệu và việc cần thiết

Kiểu dữ liệu (Data Type): Mỗi đặc trưng đều có dữ liệu như ngày, tháng, chuỗi

kí tự, hay những kiểu phức tạp khác Tuy nhiên mỗi dữ liệu đều sẽ được chuyển sang một kiểu dữ liệu xác định là kiểu số thực, số nguyên hay cũng có thể là kiểu rời rạc khi dùng các thuật toán Máy học

Các tập dữ liệu (Datasets): Một tập hợp các thể dữ kiện là một tập dữ liệu

Chúng ta sẽ dùng các tập dữ liệu khác nhau cho các mục đích khác nhau

Tập dữ liệu huấn luyện (Training dataset): Là một tập dữ liệu dùng để huấn

luyện cho mô hình của thuật toán Máy học Nói một cách khác, thuật toán Máy học

sẽ học từ tập dữ liệu này

Tập dữ liệu kiểm tra (Testing dataset): Là một tập dữ liệu dùng để kiểm

chứng độ chính xác của mô hình của thuật toán Máy học Tập dữ liệu này không được dùng để huấn luyện mô hình

Thông thường chúng ta cần tách tập dữ liệu mà chúng ta có được ra thành các tập dữ liệu con (dùng để huấn luyện và kiểm tra)

2.2.1 Các phương pháp Machine learning

Có 3 phương pháp chính cho Machine learning: Học có giám sát (supervised

learning), học không giám sát (unsupervised learning), và học tăng cường (reinforcement learning)

Trang 24

Học có giám sát (supervised learning): Là một loại phương pháp học máy

trong đó mô hình được đào tạo với các tập dữ liệu có gán sẵn nhãn huấn luyện để phân loại dữ liệu hoặc là dự đoán kết quả Điều này có nghĩa là trong quá trình huấn luyện, mô hình được cung cấp cả dữ liệu đầu vào và các nhãn tương ứng (hoặc giá trị đầu ra đúng)

Mục tiêu của học máy có giám sát là xây dựng một hàm hoặc mô hình có khả năng dự đoán hoặc phân loại các đầu ra từ dữ liệu đầu vào dựa trên các ví dụ đã biết Khi mô hình được huấn luyện với dữ liệu có nhãn, nó học cách ánh xạ từ đầu vào đến đầu ra và có thể áp dụng kiến thức này để dự đoán nhãn cho các dữ liệu chưa thấy Học có giám sát có hai bài toán chính:

- Phân loại (classification) Xác định danh mục hoặc lớp cho các đối tượng dựa trên các đặc điểm của chúng

Ví dụ: nhận dạng khuôn mặt, nhận dạng con vật, đồ vật, nhận dạng chữ viết tay

- Hồi quy (regression) Dự đoán một giá trị liên tục từ dữ liệu đầu vào

Ví dụ: dự đoán giá cho thị trường chứng khoán, giá nhà, giá xe v.v…

Học không giám sát (Unsupervised Learning): là một loại phương pháp học

máy trong đó mô hình được đào tạo mà không có nhãn dữ liệu Điều này có nghĩa là khi đào tạo mô hình, không có thông tin về các đầu ra đúng mà chỉ có dữ liệu đầu vào

Mục tiêu chính của học máy không giám sát là khám phá cấu trúc hoặc mẫu ẩn trong dữ liệu

Một số ứng dụng phổ biến của phương pháp này bao gồm:

- Phân cụm (Clustering): Tìm kiếm các nhóm hoặc cụm trong dữ liệu mà các đối tượng trong cùng một nhóm có đặc điểm tương đồng Ví dụ, phân nhóm khách hàng dựa trên hành vi mua sắm của họ

- Giảm chiều dữ liệu (Dimensionality Reduction): Giảm số lượng biến trong dữ liệu trong khi vẫn giữ lại các thông tin quan trọng Điều này thường được sử dụng để

Trang 25

trực quan hóa dữ liệu hoặc làm tiền xử lý cho các mô hình khác Một ví dụ nổi bật là phương pháp Principal Component Analysis (PCA)

- Phát hiện bất thường (Anomaly Detection): Xác định các mẫu dữ liệu không bình thường hoặc không tuân theo các mẫu chung Ví dụ, phát hiện gian lận trong giao dịch tài chính

- Tạo mẫu dữ liệu (Data Generation): Sinh ra dữ liệu mới dựa trên đặc điểm của

dữ liệu gốc, như trong các mô hình generative adversarial networks (GANs)

Học tăng cường (Reinforcement Learning): là một loại phương pháp học máy

mà trong đó sẽ được áp dụng khi tương tác với môi trường thực tế thay đổi để thực hiện nhiệm vụ cụ thể (ví dụ: phần mềm xe tự lái học cách điều khiển xe trong các tình huống và môi trường thực tế)

Các khái niệm chính trong Reinforcement Learning:

- Tác nhân (Agent): Đây là hệ thống hoặc mô hình học mà chúng ta muốn huấn luyện để đưa ra quyết định về hành động nào sẽ thực hiện trong môi trường (ví dụ: chương trình game máy tính đánh cờ vua)

- Môi trường: Đây là hệ thống hoặc không gian mà tác nhân tương tác Môi trường cung cấp phản hồi cho tác nhân dựa trên hành động mà tác nhân thực hiện (ví dụ: một bàn cờ cờ vua)

- Hành động: Là các hành động mà tác nhân có thể thực hiện trong môi trường Các hành động có thể ảnh hưởng đến trạng thái của môi trường (ví dụ: đi lên, đi xuống, đánh một nước cờ)

- Trạng thái: Là mô tả tình trạng hiện tại của môi trường mà tác nhân đang quan sát tại một thời điểm cụ thể Trạng thái cung cấp thông tin về tình hình hiện tại của môi trường (ví dụ: vị trí của các quân cờ trên bàn cờ)

- Phần thưởng: Là phản hồi mà tác nhân nhận được từ môi trường sau khi thực hiện một hành động (Ví dụ: ăn hoặc mất các quân cờ)

- Chính sách: Là chiến lược mà tác nhân sử dụng để quyết định hành động tiếp theo dựa trên trạng thái hiện tại (Ví dụ: Đánh các quân cờ có lợi)

Trang 26

2.3 Các phương pháp đánh giá mô hình

Để kết luận hệ thống nhận dạng khuôn mặt có thực sự hiệu quả, ta sử dụng một

số phương pháp đánh giá mô hình

bằng 0 nếu ngược lại

liệu i thuộc lớp j

Accuracy

Sự chính xác (Accuracy) là một trong những chỉ số đánh giá hiệu suất phổ biến nhất trong các mô hình học máy, đặc biệt là trong các bài toán phân loại Nó đơn giản cho biết tỉ lệ các dự đoán của mô hình trùng khớp với nhãn thực tế trong tập dữ liệu

𝑛 Trong đó:

Trang 27

2.3.2 Confusion matrix

Confusion matrix là một công cụ đánh giá kết quả của những bài toán phân loại thường dùng trong máy học và thống kê để đánh giá hiệu suất của các mô hình phân loại Ma trận này giúp hiểu được cách mà mô hình phân loại các dự đoán so với các giá trị thực tế

Confusion matrix bao gồm các thành phần sau:

- True Positives (TP): Số lượng mẫu mà mô hình dự đoán đúng là positive và

Công thức tính Precision là:

Trang 28

Precision cho biết tỉ lệ các dự đoán positive mà mô hình đưa ra thực sự đúng là positive Nói cách khác, nó cho biết mức độ tin cậy của mô hình khi nó dự đoán một mẫu là positive

2.3.4 Recall

Recall (độ nhạy) là một chỉ số quan trọng dùng để đánh giá hiệu suất của một

mô hình phân loại Nó đo lường khả năng của mô hình trong việc nhận diện tất cả các trường hợp positive thực sự có mặt trong dữ liệu

- F1 Score = 1: Mô hình có Precision và Recall đều đạt giá trị tối ưu là 1, tức là

mô hình dự đoán tất cả các trường hợp positive một cách chính xác và không bỏ sót bất kỳ trường hợp positive nào

- F1 Score = 0: Mô hình có Precision hoặc Recall hoặc cả hai đều bằng 0, tức

là mô hình không thực hiện tốt trong việc phát hiện các trường hợp positive hoặc dự đoán chính xác các trường hợp positive

Trang 29

F1 Score rất hữu ích trong các tình huống mà cả Precision và Recall đều quan

trọng và cần phải cân bằng, chẳng hạn như trong các bài toán phân loại không cân bằng (khi các lớp positive và negative có số lượng rất khác nhau) hoặc trong các ứng dụng mà không thể bỏ sót bất kỳ trường hợp positive nào mà không gây hậu quả nghiêm trọng

2.3.6 ROC Curve

ROC Curve (Receiver Operating Characteristic Curve) là một đồ thị biểu diễn

hiệu suất của một mô hình phân loại bằng cách so sánh tỉ lệ True Positive Rate - TPR

và tỉ lệ False Positive Rate - FPR ở nhiều ngưỡng phân loại khác nhau

Trong đó chỉ số sử dụng trong ROC

- True Positive Rate (TPR) Biểu diễn tỉ lệ phân loại chính xác các mẫu positive trên tất cả tất cả các mẫu positive, được tính theo công thức:

TPR càng cao thì các mẫu positive càng được phân loại chính xác

- False Positive Rate (FPR) Biểu diễn tỉ lệ mô hình dự đoán sai các mẫu negative thành positive trên tất cả các mẫu negative, được tính theo công thức:

Area Under the ROC curve (AUC): là phần diện tích bên dưới đường cong

ROC, dùng để đánh giá hiệu suất của mô hình phân loại trong các mô hình khác nhau Giá trị AUC dao động từ 0 đến 1 Một AUC gần 1 cho thấy mô hình phân loại có hiệu

Trang 30

suất tốt, trong khi AUC gần 0.5 cho thấy mô hình không tốt hơn so với việc dự đoán ngẫu nhiên Nếu AUC thấp hơn 0.5, mô hình có thể hoạt động tệ hơn so với dự đoán ngẫu nhiên Diện tích AUC càng lớn thì càng dễ phân loại kết quả cho cả lớp positive

và negative càng chính xác Do đó, người ta còn sử dụng AUC ROC để đánh giá độ tốt của mô hình

2.4 Các thư viện xử lý ảnh liên quan

2.4.1 Thư viện OpenCV

Opencv (Open Source Computer Vision) là một thư viện mã nguồn mở hàng đầu dành cho Machine Learning (học máy) và Computer Vision () Opencv được viết bằng ngôn ngữ C, C++ bởi Gary Bradski tại intel vào năm 1999 Sau đó phiên bản đầu tiên của OpenCV được phát hành vào năm 2000

OpenCV hỗ trợ đa nền tảng gồm window, linus, Mac Os, IOS, Android Đồng thời hỗ trợ các ngôn ngữ lập trình C, C++, Python, Java và thư viện hiện có hơn 2500 thuật toán được tối ưu hóa

OpenCV có các tính năng nổi bật như:

- Bộ công cụ hỗ trợ 2D và 3D

- Nhận dạng khuôn mặt, nhận diện biển số xe, phân loại đối tượng

- Nhận diện cử chỉ

- Nhận diện đối tượng, phát hiện chuyển động, hành vi

- Tương tác giữa con người và máy tính

- Điều khiển Robot

Thư viện OpenCV được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau, bao gồm: robotics, Machine Learning, computer graphics và Computer vision cũng như được trang bị tính năng tăng tốc GPU theo thời gian thực

Trang 31

gồm:

Hình 2.2: Cấu trúc cơ bản của OpenCV

Thư viện OpenCV được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau, bao

2.4.2 Thư viện Dlib

Dlib là một thư viện phần mềm đa nền tảng, mã nguồn mở Dlib được viết bằng ngôn ngữ C++ bởi Davis King vào năm 2002 [12] Khác với thư viện OpenCV là cung cấp các thuật toán cho các ứng dụng xử lý ảnh và thị giác máy tính, thư viện Dlib được thiết kế dành cho ứng dụng machine learning và trí tuệ nhân tạo với các thư viện chính sau:

(Machine Learning Library)

Các thuật toán Machine Learning, bao gồm nhiều bộ phân loại thống

kê và các bộ phân cụm

Trang 32

Hình 2.3: Kiến trúc thư viện Dlib [12]

- Classification: Các thuật toán phân lớp dựa trên hai phương pháp cơ sở là k-

NN (K-nearest neighbor) và SVM (Support Vector Machine)

- Data transformation: Các thuật toán giảm số chiều, loại bỏ các dữ liệu dư thừa và tăng cường tính discriminant (khác biệt) của các đặc điểm được giữ lại

- Clustering: Các thuật toán phân cụm

- Structure prediction: Các thuật toán dự đoán có cấu trúc

- Markov Random Fields: Các thuật toán dựa trên các trường Markov ngẫu nhiên

- Regression: Các thuật toán hồi quy

Thư viện Dlib được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau, bao gồm:

- Nhận dạng khuôn mặt

- Nhận diện chữ viết tay

- Theo dõi đối tượng

- Phân cụm dữ liệu

- Tìm kiếm hình ảnh

Trang 33

- Phân loại hình ảnh

- Máy tính thị giác

- Học máy (Machine Learning)

2.4.3 Thư viện TensorFlow

TensorFlow là một thư viện mã nguồn mở được tạo ra để phục vụ cho việc tính toán phân tán số và sử dụng cách thức tính toán là data flow graphs TensorFlow được viết bằng ngôn ngữ C++ được phát triển bởi nhóm Google Brain và được công bố

và phát triển các ứng dụng AI (Machine learning/Deep learning)

TensorFlow hỗ trợ đa nền tảng gồm window, linus, macOs, IOS, Android Đồng thời hỗ trợ các ngôn ngữ lập trình C++, Python, Java, Javascript phổ biến nhất là ngôn ngữ python TensorFlow cũng có thể được sử dụng trong đám mây thông qua Google Cloud Platform

Kiến trúc TensorFlow hoạt động theo ba bước như sau:

- Tiền xử lý dữ liệu: chuẩn hóa dữ liệu để làm cho nó phù hợp với việc sử dụng trong Machine Learning

- Dựng mô hình cho dữ liệu

- Huấn luyện và ước tính mô hình: sử dụng dữ liệu đầu vào để điều chỉnh các

tham số của mô hình cho đến khi mô hình có thể tạo ra các kết quả mong muốn và sử dụng mô hình đã được huấn luyện để dự đoán các kết quả cho các dữ liệu đầu vào

mới

Các layer cơ bản của Tensorflow:

- High-Level Tensorflow APIs: layer chứa các API bậc cao được xây dựng

dựa trên các tầng thấp hơn, giúp chúng ta có thể dễ dàng triển khai các mô hình khác nhau

- Mid-Level Tensorflow APIs: các Class được viết dựa trên tầng thấp hơn Low-Level

Trang 34

- Low-Level Tensorflow APIs: chứa các cú pháp hoặc phương thức cơ bản để

xây dựng nên các chức năng, hỗ trợ cho nhiều ngôn ngữ khác nhau, từ đó làm tăng

tính đa dạng và lựa chọn khi xây dựng các ứng dụng

- Tensorflow Kernel: là một gói triển khai của Tensorflow (Có cả CPU và GPU) nó là cách giao thức gần nhất đối với các thiết bị phần cứng của tensorflow

- Machine Types: là các thiết bị cơ bản của các thiết bị tính toán như CPU, GPU và hệ điều hành

Cách thức hoạt động của Tensorflow:

TensorFlow cho phép các những nhà sử dụng tạo ra biểu đồ luồng dữ liệu (dataflow graph), cấu trúc mô tả cách làm như thế nào để dữ liệu có thể di chuyển qua một biểu đồ hay một loạt các nút đang xử lý Mỗi nút trong đồ thị đại diện cho một phép toán hoạt động và mỗi kết nối hay ngoài rìa giữa các nút là một mảng dữ liệu đa chiều còn được gọi là tensor

Thư viện Tensorflow được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau, bao gồm:

- Phân loại hình ảnh

- Nhận diện đối tượng

- Phân tích ngôn ngữ tự nhiên

Trang 35

2.4.4 Thư viện Keras

Keras là một thư viện mã nguồn mở được tạo ra dành cho Machine Learning và Deep Learning (mạng học sâu) Keras được viết bằng ngôn ngữ Python và được tạo

ra bởi Francois Chollet, một nhà khoa học máy tính của Google vào năm 2015 Kenras được tạo ra nhằm mục đích là giúp con người dễ dàng sử dụng, xây dựng, huấn luyện

và triển khai các mô hình Deeplearning rộng rãi trong các lĩnh vực

Keras là thư viện chứa các API cấp cao dựa trên các thư viện cấp thấp khác, chẳng hạn như TensorFlow và Theano hoặc Bộ công cụ nhận thức (CNTK) Ngoài ra keras còn cung cấp các API để hỗ trợ xây dựng và tùy chỉnh các mạng neural phổ biến như Multilayer Perceptron (MLP), Convolutional Neural Network (CNN), Recurrent Neural Network (RNN) một cách linh hoạt và dễ dàng

Keras hoạt động bằng cách cung cấp các API cấp cao cho việc xây dựng các mạng neural thần kinh

Để sử dụng keras đầu tiên chúng ta cần tạo một lớp mới để xác định các tầng neural thần kinh và thêm tầng ẩn có 128 neural và tầng đầu ra có 2 neural để vào mạng neural thần kinh

Sau đó sử dụng các phương thức lớp để kết nối các tầng và định dạng mạng neural thần kinh

Tiếp theo, đào tạo mạng neural thần kinh trên một tập dữ liệu bao gồm các dữ liệu đầu vào và đầu ra Mạng neural thần kinh sẽ biến đổi các dữ liệu đầu vào thành các dữ liệu đầu ra Sau khi đào tạo mạng neural thần kinh, chúng ta có thể dự đoán các dữ liệu đầu vào mới dựa trên các mẫu đầu vào đã được đào tạo

Thư viện Keras được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau, bao gồm:

- Machine Learning: Keras là một thư viện phổ biến để xây dựng các mô hình Machine Learning, bao gồm các mô hình phân loại, hồi quy và phát hiện đối tượng

- Trí tuệ nhân tạo: Keras là một thư viện phổ biến để xây dựng các ứng dụng trí tuệ nhân tạo, chẳng hạn như các chatbot, trợ lý ảo và hệ thống nhận diện hình ảnh

Trang 36

- Sinh học tính toán: Keras được sử dụng để mô hình hóa các hệ thống sinh học phức tạp, chẳng hạn như não bộ và hệ miễn dịch

- Khoa học vật lý: Keras được sử dụng để mô hình hóa các hệ thống vật lý phức tạp, chẳng hạn như thời tiết và khí hậu

- Kỹ thuật: Keras được sử dụng để tối ưu hóa các hệ thống kỹ thuật, chẳng hạn như các bộ điều khiển và mạng điện thoại

Những ưu và nhược điểm của các thư viện xử lý ảnh trong quá trình nhận dạng khuôn mặt

Sự phát triển của công nghệ nhận dạng khuôn mặt đã mang lại cho người dùng nhiều lợi ích Đồng thời, việc ra đời các thư viện mã nguồn mở được ứng dụng trên

đa nền tảng và đa ngôn ngữ lập trình đã góp phần không nhỏ giúp con người dễ dàng tìm hiểu, xây dựng, sử dụng và triển khai các mô hình Machine Learning và Deep Learning

Tuy nhiên tất cả các vấn đề đều có 2 khía cạnh Với các lợi ích mà thư viện xử

lý ảnh mang lại cho con người là điều không thể phủ nhận Nhưng ngoài các lợi ích trên thì các thư viện xử lý ảnh mang lại cho chúng ta một số khó khăn nhất định

Ưu điểm thư viện xử lý ảnh

- Miễn phí và mã nguồn mở

- Hỗ trợ nhiều nền tảng (Windows, Linux, macOS, Android, iOS)

- Hỗ trợ nhiều ngôn ngữ lập trình, bao gồm C++, Python và Java

- Có nhiều tính năng và hàm để xử lý hình ảnh và nhận diện máy, bao gồm cả các thuật toán tiên tiến nhất

- Đáp ứng các yêu cầu cao, chẳng hạn như phát hiện đối tượng và phân loại hình ảnh

- Được cộng đồng người dùng lớn hỗ trợ

- Có rất nhiều tài nguyên trực tuyến và ngoại tuyến

- Được cập nhật thường xuyên với các tính năng mới

Trang 37

- Hỗ trợ nhiều loại máy ảnh và cảm biến

- Có thể được sử dụng để tạo ra các ứng dụng thời gian thực

Nhược điểm thư viện xử lý ảnh

- Có thể khó học: có thể khó học đối với những người mới bắt đầu

- Có thể chậm đối với các tác vụ nặng và máy tính có cấu hình thấp

- Yêu cầu cấu hình cao: có thể yêu cầu cấu hình phần cứng cao để chạy nhanh chóng

- Có thể không hỗ trợ tất cả các tính năng trên tất cả các nền tảng

2.5 Kết luận chương

Trong chương này, luận văn đã trình bày tổng quan về khái niệm và cách thức hoạt động của hệ thống nhận dạng khuôn mặt Đồng thời luận văn cũng giới thiệu các phương pháp đánh giá và thư viện mã nguồn mở được sử dụng để xử lý hình ảnh dùng trong Machine Learning và Deep Learning, giúp ta nắm rõ hơn các ưu, nhược

điểm khi sử dụng và triển khai vào thực tế đặc biệt áp dụng vào bài toán đặt ra “Xây

dựng module đăng nhập bằng nhận dạng khuôn mặt” Chương tiếp theo, luận văn

sẽ trình bày cụ thể về các phương pháp, thuật toán có liên quan đến áp dụng trực tiếp vào bài toán xác thực khuôn mặt

Trang 38

CHƯƠNG 3: CÁC PHƯƠNG PHÁP, THUẬT TOÁN NHẬN DẠNG KHUÔN

MẶT LIÊN QUAN 3.1 Phương pháp phát hiện khuôn mặt MTCNN

MTCNN viết tắt của Multi-task Cascaded Convolutional Networks (mạng đa năng xếp tầng đa tác vụ) là phương pháp nhận dạng khuôn mặt và xác định khuôn mặt người trong bức ảnh hoặc video được công bố năm 2016 bởi Zhang và cộng sự [7]

Hình 3.1: Sơ đồ hoạt động của MTCNN [7]

Sơ đồ cấu trúc của MTCNN được chia thành 3 lớp mạng CNN xếp chồng lên nhau đồng thời hoạt động khi phát hiện và xác định khuôn mặt trên hình ảnh hoặc video Mỗi lớp mạng CNN trong MTCNN đều có cấu trúc, vai trò khác nhau trong việc phát hiện và xác định khuôn mặt Kết quả dữ liệu đầu ra là vector đặc trưng biểu diễn từng vị trí cơ quan khuôn mặt và các điểm trên mặt (mắt, mũi, miệng…) trong hình ảnh và video

MTCCN hoạt động theo 3 mạng neural riêng biệt là: P-Net, R-Net và O-Net Một bức ảnh thường sẽ có nhiều hơn một người – một mặt với các kích thước khuôn mặt khác nhau Thuật toán MTCNN đã sử dụng phép thay đổi kích thước ảnh,

để tạo một loạt các ảnh copy từ ảnh gốc với kích cỡ khác nhau, từ to đến nhỏ, tạo thành một Image Pyramid

Trang 39

Hình 3 2: Các tầng hình ảnh [7]

3.1.1 Mạng P-net

Mạng P-net sử dụng mạng CNN để thu được các cửa sổ hình vuông chứa các khuôn mặt và các vector hồi quy trong các cửa sổ đó đồng thời tại các cửa sổ chứa khuôn mặt được hiệu chuẩn dựa trên các vector hồi quy Cuối cùng, các cửa sổ xếp chồng lên nhau tại một vùng hợp nhất thành một cửa sổ Kết quả xuất ra là các cửa

sổ có thể chứa khuôn mặt

Hình 3.3: Sơ đồ hoạt động P-Net [7]

Mạng P-net sử dụng kiến trúc CNN bao gồm 3 lớp tích chập và 1 lớp co Kích thước dữ liệu đầu vào của cửa sổ là 12x12x3 Kết quả P-Net gồm các cụm sau:

- Cụm thứ nhất có 2 bộ lọc kích thước 1x1 nhận dạng khuôn mặt

- Cụm thứ hai có 4 bộ lọc kích thước 1x1 đóng khung 4 vị trí hộp giới hạn

- Cụm thứ ba có 10 bộ lọc kích thước 1x1 đóng khung 10 vị trí khuôn mặt

3.1.2 Mạng R-Net

Tất cả các box chứa khuôn mặt từ tầng P-Net sẽ được kiểm tra sàng lọc bằng cách đưa vào một CNN khác gọi là Mạng lọc (R-Net) để tiếp tục loại bỏ một số lượng

Trang 40

lớn các cửa sổ không chứa khuôn mặt Sau đó thực hiện hiệu chỉnh vector hồi quy và thực hiện hợp nhất các cửa sổ xếp chồng lên nhau tại một vùng hợp nhất

Hình 3.4: Sơ đồ hoạt động R-Net [7]

Kiến trúc CNN sử dụng trong R-net gồm: 3 lớp tích chập, 2 lớp co và 1 lớp kết nối đầy đủ Kích thước dữ liệu đầu vào của cửa sổ là 24x24x3 Kết quả R-Net gồm các cụm sau:

- Cụm thứ nhất có 2 lớp nhận dạng khuôn mặt

- Cụm thứ hai có 4 lớp đánh dấu vị trí hộp giới hạn

- Cụm thứ ba có 10 lớp vị trí khuôn mặt

3.1.3 Mạng O-Net

Mạng O-net tương tự mạng R-Net, sử dụng mạng CNN chi tiết nhất để được gọi

là mạng Đầu ra (O-net) để lọc kết quả một lần nữa và đánh dấu vị trí năm điểm chính trên khuôn mặt

Hình 3.5: Sơ đồ hoạt động O-Net [7]

Ngày đăng: 25/11/2024, 09:22

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w