You are on page 1of 29

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP.

HCM
KHOA KHOA HỌC ỨNG DỤNG
--------

NHÓM 9

TÊN ĐỀ TÀI: ỨNG DỤNG CÔNG NGHỆ AI TRONG ĐIỂM


DANH SINH VIÊN DỰA TRÊN NHẬN DIỆN KHUÔN MẶT

BÀI TẬP NHÓM MÔN: PHƯƠNG PHÁP NGHIÊN CỨU KHOA


HỌC

TP. HCM, NĂM 2023

i
TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TP. HCM
KHOA KHOA HỌC ỨNG DỤNG
---------

NHÓM 9

TÊN ĐỀ TÀI: ỨNG DỤNG CÔNG NGHỆ AI TRONG ĐIỂM DANH


SINH VIÊN DỰA TRÊN NHẬN DIỆN KHUÔN MẶT

BÀI TẬP NHÓM MÔN: PHƯƠNG PHÁP NGHIÊN CỨU KHOA


HỌC
GVHD: TS HOÀNG MINH ĐỒNG

Lớp danh nghĩa: 13DHBM02

TKB chính thức: Thứ 2, tiết 1-3

NHÓM THỰC HIỆN:

1. Nguyễn Cao Thi Hiếu – 2001221435


2. Đỗ Thị Kim Ngọc – 2001223094
3. Nguyễn Thiện Nhân – 2001223255
4. Lê Phùng Phong – 2001223674
5. Phan Trần Hoàng Thiện – 2001224906
6. Nguyễn Hoàng Thịnh – 2001224963
7. Nguyễn Quốc Vương - 2001225918

TP. HCM, NĂM 2023

ii
BẢNG ĐÁNH GIÁ KẾT QUẢ THỰC HIỆN CÔNG VIỆC NHÓM

Cá nhân
Công việc tự đánh Nhóm đánh GV đánh
STT Họ và tên
đảm nhận giá kết giá kết quả giá
quả
Hoàn Hoàn thành
Làm
1 Nguyễn Cao Thi Hiếu thành tốt, 100% công
Powerpoint
đúng hạn việc
Hoàn Hoàn thành
Làm
2 Đỗ Thị Kim Ngọc thành tốt, 100% công
Powerpoint
đúng hạn việc
Hoàn Hoàn thành
3 Nguyễn Thiện Nhân Làm Word thành tốt, 100% công
đúng hạn việc
Hoàn Hoàn thành
4 Lê Phùng Phong Thuyết trình thành tốt, 100% công
đúng hạn việc
Hoàn Hoàn thành
Phan Trần Hoàng
5 Làm Word thành tốt, 100% công
Thiện
đúng hạn việc
Hoàn Hoàn thành
6 Nguyễn Hoàng Thịnh Thuyết Trình thành tốt, 100% công
đúng hạn việc
Hoàn Hoàn thành
7 Nguyễn Quốc Vương Làm Word thành tốt, 100% công
đúng hạn việc

iii
LỜI CẢM ƠN
Lời đầu tiên, nhóm em xin trân trọng cảm ơn thầy Ts Hoàng Minh Đồng
đã tận tình giúp đỡ, hướng dẫn nhóm em trong quá trình học tập cũng như trong
việc hoàn thành bài tiểu luận.
Xin chân thành cảm ơn các thầy/cô thuộc khoa Khoa học ứng dụng
Trường Đại học Công nghiệp thực phẩm TP HCM đã tận tình giảng dạy cho
nhóm em trong thời gian học tập.
Xin cảm ơn thầy Ts Hoàng Minh Đồng đã đọc bài tiểu luận và cho nhóm
em những nhận xét quý báu, chỉnh sửa những sai sót của nhóm em trong bản
thảo tiểu luận.
Và cuối cùng, nhóm em xin gửi lời cảm ơn đến gia đình, bạn bè, tập thể
lớp, những người luôn sẵn sàng sẻ chia và giúp đỡ trong học tập và cuộc sống.
Mong rằng, chúng ta sẽ mãi mãi gắn bó với nhau. 
Em xin chân thành cảm ơn!
Nhóm tác giả
Nhó
m9

iv
DANH MỤC CÁC TỪ VIẾT TẮT TIẾNG ANH
DÙNG TRONG BÀI TẬP NHÓM

Từ viết tắt Nghĩa


AI Artificial Intelligence – AI- Trí tuệ nhân tạo
KNN K-Nearest Neighbors – Thuật toán
PCA Principle Components Analysis
LDA Linear Discriminant Analysis
LBP Local Binary Patterns
HOG Histogram of Oriented Gradients
CNN Convolutional Neural Networks

v
DANH MỤC CÁC HÌNH ẢNH
Hình 1 Cấu trúc hệ thống nhận diện khuôn mặt..........................................4
Hình 2 Ví dụ minh họa thuật toán KNN......................................................8
Hình 3 Bản đồ minh họa KNN nhiễu với k=1...........................................10
Hình 4 Norm 1 và Norm 2 trong không gian hai chiều.............................13
Hình 5 Lọc ảnh..........................................................................................16
Hình 6 Nội suy ảnh....................................................................................16
Hình 7 Phân đoạn ảnh................................................................................18

Mục lục

vi
MỞ ĐẦU.....................................................................................................1

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

2. Mục tiêu nghiên cứu........................................................................2

3. Nội dung nghiên cứu........................................................................2

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

5. Đối tượng nghiên cứu......................................................................2

6. Phạm vi nghiên cứu..........................................................................2

7. Dự đoán kinh phí..............................................................................3

8. Bố cục bài tập nhóm.........................................................................3

Chương 1. TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT...................4

1.1. Tìm hiểu chung về nhận dạng khuôn mặt.............................................4

1.1.1. Khái niệm...........................................................................................4

1.1.2. Cấu trúc của hệ thống nhận diện khuôn mặt......................................5

1.1.3. Phạm vi ứng dụng của nhận dạng khuôn mặt....................................6

1.2. Một số phương pháp trong hệ thống nhận dạng khuôn mặt.................7

Chương 2. Thuật toán K-Nearest Neighbor.................................................8

2.1. Thuật toán k-nearest neighbor..............................................................8

2.1.1. Định nghĩa.........................................................................................8

2.1.2. Quy trình làm việc của thuật toán KNN............................................8

2.1.3. Ví dụ minh họa..................................................................................9

2.1.4. Ví dụ về KNN nhiễu......................................................................10

vii
2.1.5. Ưu điểm, nhược điểm của thuật toán............................................11

2.2. Khoảng cách trong không gian vector................................................12

2.2.1. Định nghĩa.......................................................................................12

2.2.2. Một số norm thường dùng...............................................................12

Chương 3. Xây dựng hệ thống điểm danh sinh viên dựa trên phần mềm
nhận diện khuôn mặt sử dụng thuật toán K-Nearest Neighbor............................15

3.1. Khái niệm và phương pháp xử lí ảnh..................................................15

3.1.1. Khái niệm.........................................................................................15

3.1.2. Các phương pháp xử lí ảnh..............................................................15

3.2. Xây dựng hệ thống điểm danh sinh viên dựa trên phần mềm nhận diện
khuôn mặt sử dụng thuật toán K-Nearest Neighbor.............................................17

viii
MỞ ĐẦU
1. Lý do chọn đề tài
Nhận diện khuôn mặt là một bài toán lâu đời và được nghiên cứu rộng rãi
trong khoảng hơn 30 năm trở lại đây. Bài toán nhận diện khuôn mặt có thể áp
dụng rộng rãi trong nhiều lĩnh vực khác nhau. Hiện nay việc nhận diện gương
mặt đã trở nên cần thiết đối với nhiều ngành nghề, lĩnh vực khác nhau. Trong xu
thế của cuộc cách mạng công nghiệp 4.0 đã kéo theo sự phát triển nhanh của các
ngành khoa học và công nghệ. Trí tuệ nhân tạo AI là một lĩnh vực phát triển vượt
bậc và tạo ra nhiều ứng dụng phục vụ cuộc sống con người. Trước kia, khi
chúng ta muốn điểm danh hay nhận dạng một người nào đó ra hoặc vào ở các
điểm công cộng như khoa, công ty, hay trường học chúng ta thường sử dụng các
phương pháp thủ công như ghi sổ ra vào, bảo vệ quan sát và ghi nhận. Việc làm
như vậy thường rất mất thời gian cho cả bảo vệ và người di chuyển ra vào, đôi
khi còn có sơ sót khi số lượng người ra vào cùng lúc quá nhiều vượt quá khả
năng ghi nhận của bảo vệ hay người gác trực, bên cạnh đó còn làm cảm giác khó
chịu với nhiều người do có cảm giác bị hoài nghi hay khó dễ. Trong thời đại
công nghệ thông tin hiện nay, mọi việc đều được xử lý đơn giản và tối ưu hóa
thời gian thông qua việc ứng dụng công nghệ thông tin vào xử lý công việc này.
Hiện nay, việc điểm danh sinh viên vẫn sử dụng biện pháp thủ công chưa
được tự động hóa ở nhiều trường học, gây mất nhiều thời gian, công sức đôi khi
xảy ra tình trạng điểm danh hộ và đi học trễ, hoặc trốn học. Từ đó, xảy ra nhiều
bất cập, gây khó khăn trong việc quản lý. Để giảm thiểu trình trạng trên, trong
nghiên cứu này chúng tôi sẽ trình bay phương pháp xây dựng một hệ thống điểm
danh sinh viên thông qua nhận dạng khuôn mặt.

1
Trước các vấn đề thời sự đang còn bỏ ngỏ và những thuận lợi như đã phân
tích trên đây, chúng tôi chọn đề tài “Ứng dụng công nghệ ai trong điểm danh
sinh viên dựa trên nhận diện khuôn mặt” để giải quyết những vấn đề cấp thiết
đặt ra.
2. Mục tiêu nghiên cứu
Xây dựng một ứng dụng trên nền tảng phần mềm bằng Tiếng Việt, cho
phép nhận diện sinh viên từ các ảnh thư viện, từ ảnh chụp và nhận diện thời gian
thực (realtime), nghiên cứu thuật toán KNN AutoFaiss trong việc tìm kiếm và
nhận diện khuôn mặt trong Database.
3. Nội dung nghiên cứu
Trong nghiên cứu sẽ trình bày sự phát triển của hệ thống điểm danh
sinh viên sử dụng bằng cách tìm hiểu một số phương pháp Học máy điển
hình, áp dụng thuật toán trên tập dữ liệu đã thu thập, đánh giá kết quả của
thuật toán để từ đó chọn lựa được một mô hình phù hợp với độ chính xác cao
để triển khai lên phần mềm để người dùng tương tác.
4. Phương pháp nghiên cứu
Đề tài này sử dụng một vài phương pháp nghiên cứu như phương pháp
điều tra, phương pháp nghiên cứu lý thuyết nhưng chủ yếu là phương pháp phân
tích và tổng kết kinh nghiệm. Cụ thể là từ những công trình nghiên cứu liên quan
đến thuật toán KNN AutoFaiss trong việc tìm kiếm và nhận diện khuôn mặt.
5. Đối tượng nghiên cứu
Đối tượng nghiên cứu của đề tài là phương pháp và ứng dụng nhận diện
sinh viên từ gương mặt. Trước mắt, chúng tôi sẽ thực hiện nhận diện những sinh
viên thuộc khoa Công nghệ thông tin trường Đại học CNTP.
6. Phạm vi nghiên cứu
Đối tượng khảo sát trong đề tài này chỉ giới hạn trong các sinh viên thuộc
khoa Công nghệ thông tin trường Đại học Công Nghiệp Thực Phẩm. Với khoảng

2
100 sinh viên, với mỗi sinh viên sẽ thu thập thông tin thông qua Database của
trường đại học Công Nghiệp Thực Phẩm. Thời gian thực hiện đề tài nằm trong
tiến độ nghiên cứu khoa học cấp trường. Nội dung nghiên cứu dựng lại ở mức
nghiên cứu khoa học về thuật toán KNN AutoFaiss.
7. Dự đoán kinh phí
Vì các vấn đề yêu cầu về cấu hình thiết bị chúng tôi dự đoán kinh phí cần
thiết khoảng 5.000 triệu VNĐ và có thể tăng thêm.
8. Bố cục bài tập nhóm
Ngoài phần mở đầu và kết luận, nội dung của bài tập nhóm được trình bày
trong 3 chương có cấu trúc như sau:
Chương 1: Tổng quan về nhận dạng khuôn mặt: Nghiên cứu về lý thuyết
tổng quan về nhận dạng, nhận dạng khuôn mặt.
Chương 2: Thuật toán K-Nearest Neighbor.
Chương 3: Xây dựng hệ thống điểm danh sinh viên dựa trên phần mềm
nhận diện khuôn mặt sử dụng thuật toán K-Nearest Neighbor.

3
Chương 1. TỔNG QUAN VỀ NHẬN DẠNG KHUÔN MẶT

1.1. Tìm hiểu chung về nhận dạng khuôn mặt

1.1.1. Khái niệm

 Khái niệm về AI
Trí tuệ nhân tạo (Artificial Intelligence - AI) là một lĩnh vực nghiên cứu
của khoa học máy tính và khoa học tính toán nói chung. Có nhiều quan điểm
khác nhau về trí tuệ nhân tạo và do vậy có nhiều định nghĩa khác nhau về lĩnh
vực khoa học này.
Mục đích của trí tuệ nhân tạo là xây dựng các thực thể thông minh. Tuy
nhiên, do rất khó định nghĩa thế nào là thực thể thông minh nên cũng khó thống
nhất định nghĩa trí tuệ nhân tạo. Theo một tài liệu được sử dụng rộng rãi trong
giảng dạy trí tuệ nhân tạo hiện nay, các định nghĩa có thể nhóm thành bốn nhóm
khác nhau, theo đó, trí tuệ nhân tạo là lĩnh vực nghiên cứu việc xây dựng các hệ
thống máy tính có đặc điểm sau:
 Hệ thống hành động như người.
 Hệ thống có thể suy nghĩ như người.
 Hệ thống có thể suy nghĩ hợp lý.
 Hệ thống hành động hợp lý.
 Khái niệm về nhận dạng khuôn mặt.
- Trình phân tích khuôn mặt là phần mềm xác định hoặc xác nhận danh
tính của một người qua khuôn mặt của họ. Công nghệ này hoạt động bằng cách
xác định và đo lường các đặc điểm khuôn mặt trong hình ảnh. Công nghệ nhận
dạng khuôn mặt có thể xác định khuôn mặt người trong hình ảnh hoặc video, xác
định xem khuôn mặt xuất hiện trong hai hình ảnh có phải là cùng một người

4
không hoặc tìm kiếm khuôn mặt trong một bộ sưu tập đồ sộ các hình ảnh hiện
có. Các hệ thống bảo mật sinh trắc học sử dụng công nghệ nhận dạng khuôn mặt
để nhận dạng cá nhân độc nhất trong lúc triển khai người dùng hoặc đăng nhập,
cũng như để tăng cường cho hoạt động xác thực người dùng. Các thiết bị di động
và cá nhân cũng thường sử dụng công nghệ phân tích khuôn mặt để bảo mật thiết
bị.

1.1.2. Cấu trúc của hệ thống nhận diện khuôn mặt


- Hệ thống nhận diện khuôn mặt bao gồm các thành phần cơ bản:
+ Camera để chụp ảnh hoặc thu video.
+ Máy chủ phát hiện và chuyển các khuôn mặt trong ảnh hoặc video
về dạng vector. Hệ thống hiển thị kết quả hoặc thông báo sang các hệ
thống khác.

5
Hình
Hình1.11Cấu
Cấutrúc
trúchệhệthống
thốngnhận
nhậndiện
diệnkhuôn
khuônmặt
mặt
1.1.3. Phạm vi ứng dụng của nhận dạng khuôn mặt

 Phát hiện gian lận.


- Các công ty sử dụng nhận dạng khuôn mặt để xác định người dùng độc
nhất đang tạo một tài khoản mới trên nền tảng trực tuyến. Sau khi hoàn tất, nhận
dạng khuôn mặt có thể được sử dụng để xác minh danh tính của người thực sử
dụng tài khoản phòng trường hợp có hoạt động tài khoản đáng ngờ hoặc có khả
năng gây rủi ro.
 An ninh mạng.
- Các công ty sử dụng công nghệ nhận dạng khuôn mặt thay cho mật khẩu
để củng cố các biện pháp an ninh mạng. Rất khó để truy cập trái phép vào hệ
thống nhận dạng khuôn mặt vì khuôn mặt của bạn không thể thay đổi được. Phần
mềm nhận dạng khuôn mặt cũng là một công cụ bảo mật tiện lợi và có độ chính
xác cao để mở khóa điện thoại thông minh và những thiết bị cá nhân khác.
 Kiểm soát sân bay và biên giới.
- Nhiều sân bay sử dụng dữ liệu sinh trắc học làm hộ chiếu, cho phép hành
khách không phải xếp hàng dài và có thể đi qua một ga tự động để đến cổng của
mình nhanh hơn. Công nghệ nhận dạng khuôn mặt dưới dạng Hộ chiếu điện tử
giúp giảm thời gian chờ và cải thiện tính bảo mật.
 Ngân hàng.
- Để xác thực giao dịch, các cá nhân chỉ cần đưa mặt ra trước điện thoại
hoặc máy tính của mình thay vì sử dụng mật khẩu một lần hoặc xác minh hai
bước. Nhận dạng khuôn mặt an toàn hơn vì không có mật khẩu để tin tặc xâm
phạm. Tương tự, một số giao dịch rút tiền mặt tại ATM và thanh toán tại quầy có
thể sử dụng nhận dạng khuôn mặt để phê duyệt thanh toán.
 Chăm sóc sức khỏe.

6
- Nhận dạng khuôn mặt có thể được sử dụng để truy cập vào bệnh án.
Công nghệ này có thể hợp lý hóa quá trình đăng ký bệnh nhân tại cơ sở chăm sóc
sức khỏe cũng như tự động phát hiện cảm giác đau và cảm xúc của bệnh nhân.

1.2. Một số phương pháp trong hệ thống nhận dạng khuôn mặt
- Bài toán nhận dạng khuôn mặt được ứng dụng nhiều trong các lĩnh vực
đời sống đặc biệt ở những lĩnh vực công nghệ cao, yêu cầu về an ninh, bảo mật.
Do đó để hệ thống nhận dạng khuôn mặt hoạt động mạnh mẽ với tốc độ và độ tin
cậy cao thì có rất nhiều các phương pháp về nhận dạng khuôn mặt được đưa ra.
Các phương pháp có thể được phân loại theo các tiêu chí khác nhau như nhận
dạng với dữ liệu ảnh đầu vào là ảnh tĩnh 2D (Elastic Bunch Graph, Active
Appearance Model). Phương pháp này là phổ biến nhất và tương lai sẽ là 3D (3D
Morphable Model). Tuy nhiên trên thực tế người ta hay chia phương pháp nhận
dạng khuôn mặt ra thành 2 loại:
 Nhận dạng dựa trên các đặc trưng của các phần tử trên khuôn mặt
(Feature Base Face Recognition):
- Đây là phương pháp nhận dạng khuôn mặt dựa trên việc xác định các đặc
trưng hình học của các chi tiết trên khuôn mặt như vị trí, diện tích, khoảng cách
của mắt, mũi, miệng,… và mỗi quan hệ giữa chúng ví dụ như khoảng cách giữa
hai mắt.
- Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng
để nhận biết khuôn mặt. Hơn nữa với việc xác định đặc tính và các mối quan hệ,
phương pháp này cho kết quả tốt trong 7 các điều kiện không có kiểm soát.
- Nhược điểm của phương pháp này là cài đặt thuật toán phức tạp do việc
xác định mối quan hệ giữa các đặc tính, đòi hỏi các thuật toán phức tạp và
phương pháp này sẽ hoạt động không hiệu quả khi kích thước hình ảnh nhỏ vì rất

7
khó phân biệt được các đặc tính.
 Nhận dạng dựa trên xét tổng thể toàn khuôn mặt (Appearance
Based Face Recognition).
Nội dụng chính của hướng tiếp cận này là xem mỗi ảnh có kích thước R x
C là một vector trong không gian có R x C chiều. Ta xây dựng một không gian
mới có chiều nhỏ hơn sao cho khi biểu diễn trong không gian đó các đặc điểm
chính trên khuôn mặt không bị mất đi. Trong không gian đó các ảnh của cùng
một người sẽ được tập trung lại thành một nhóm gần nhau và cách xa so với các
nhóm khác. Hai phương pháp thường được sử dụng trong hướng tiếp cận này là:
+ PCA (Principal Components Analysis).
+ LDA (Linear Discriminant Analysis).

Chương 2. Thuật toán K-Nearest Neighbor

2.1. Thuật toán k-nearest neighbor

2.1.1. Định nghĩa


KNearest Neighbor (KNN) là một trong những thuật toán học có giám sát
đơn giản nhất trong Machine Learning. Ý tưởng của KNN là tìm ra Output của
dữ kiện dựa trên thông tin của những dữ liệu training gần nó nhất.

2.1.2. Quy trình làm việc của thuật toán KNN


Bước 1: Xác định tham số K = số láng giềng gần nhất.
Bước 2: Tính khoảng cách đối tượng cần phân lớp với tất cả các đối
tượng trong training data.

8
Bước 3: Sắp xếp khoảng cách theo thứ giềng gần nhất với đối tượng
cần phân lớp tự tăng dần và xác định K láng giềng gần nhất với đối tượng cần
phân lớp.
Bước 4: Lấy tất cả các lớp của K láng giềng gần nhất.
Bước 5: Dựa vào phần lớn lớp của K để xác định lớp cho đối tượng
cần phân lớp.

2.1.3. Ví dụ minh họa

Hình 1 Ví dụ minh họa thuật toán KNN

- Giả sử bài toán được đặt ra: mình mới quen một người bạn, tuy
nhiên mình là fan của USUK vậy nên mình cần biết người bạn này có phải là fan
của KPop hay không. Qua thời gian tìm hiểu mình đã thu thập được một số dữ
liệu và đã biểu hiện dưới dạng hình vẽ trên.
- Ta dễ dàng nhìn thấy có hai loại: hình vuông màu xanh biểu diễn cho
những người là fan của Kpop, tam giác màu đỏ biểu diễn cho những người

9
không là fan của Kpop, hình tròn màu xanh là người bạn mình muốn biết có phải
là fan Kpop hay không, khoảng cách giữa chấm tròn và các điểm còn lại biểu
diễn độ thân thiết của bạn đó với những người bạn.
- Phương pháp đơn giản nhất để kiểm tra xem bạn đó chơi thân với người
bạn nào nhất, tức là tìm xem điểm gần chấm xanh thuộc class nào (hình vuông
hay tam giác). Từ hình trên ta dễ dàng nhận thấy điểm gần chấm xanh nhất là
hình tam giác màu đỏ, do đó nó sẽ được phân vào lớp tam giác màu đỏ.
- Có một vấn đề trong phương pháp trên, xung quanh cấm xanh xuất hiện
rất nhiều hình vuông màu xanh nên việc xét điểm gần nhất là chưa khả thi. Vì
vậy, ta sẽ xét K điểm gần nhất. Giả sử, ta lấy K= 3, dựa theo hình trên ta dễ
dàng nhận ra có hai hình tam giác đỏ và một hình vuông xanh có khoảng
cách gần chấm xanh nhất, do đó chấm xanh được phân vào lớp tam giác đỏ. Lấy
K=7, ta có năm hình vuông xanh và hai hình tam giác đỏ, lúc này chấm xanh
được xếp vào lớp hình vuông xanh. Trường hợp lấy K=4, ta nhận thấy sẽ có hai
hình vuông xanh và hai hình tam giác đỏ, đây là trường hợp có điểm bằng nhau,
với trường hợp này KNN sẽ xử lý bằng cách so sánh tổng khoảng cách của các
hình gần nhất với điểm ta đang xét. Do xuất hiện trường hợp có điểm bằng
nhau, vì vậy người ta thường chọn k là số lẻ. Đó cũng là ý tưởng của KNN.

2.1.4. Ví dụ về KNN nhiễu

10
Hình 2 Bản đồ minh họa KNN nhiễu với k=1
Hình trên là bài toán phân lớp với ba lớp: đỏ, lam, lục. Mỗi điểm dữ liệu
mới sẽ được gán nhãn theo màu của điểm đó mà nó thuộc về. Trong hình này,
chú ý vùng khoanh tròn màu vàng, ta nhận thấy rằng điểm màu lục nằm giữa hai
vùng lớn với nhiều dữ liệu đỏ và lam, điểm này rất có thể là nhiễu dẫn đến việc
dữ liệu test nếu rơi vào vùng này sẽ có nhiều khả năng cho kết quả sai lệch.

2.1.5. Ưu điểm, nhược điểm của thuật toán.

 Ưu điểm:
- Dễ sử dụng và cài đặt.
- Việc dự đoán kết quả của dữ liệu mới dễ dàng.
- Độ phức tạp tính toán nhỏ.
 Nhược điểm:
- KNN nhiễu dễ đưa ra kết quả không chính xác khi k nhỏ.
- Cần thời gian lưu training set, khi dữ liệu training và test tăng lên
nhiều sẽ mất nhiều thời gian tính toán.

11
2.2. Khoảng cách trong không gian vector.
- Trong không gian một chiều, việc đo khoảng cách giữa hai điểm đã rất
quen thuộc: lấy trị tuyệt đối của hiệu giữa hai giá trị đó. Trong không gian hai
chiều, tức mặt phẳng, chúng ta thường dùng khoảng cách Euclid để đo khoảng
cách giữa hai điểm dữ liệu nhiều chiều, tức là hai vector rất cần thiết trong
Machine Learning. Chúng ta cần đánh giá xem điểm nào là điểm gần nhất của
một điểm khác; chúng ta cũng cần đánh giá xem độ chính xác của việc ước
lượng và trong rất nhiều ví dụ khác nữa.
- Và đó chính là lý do mà khái niệm norm ra đời. Có nhiều loại norm khác
nhau mà các bạn sẽ thấy ở dưới đây: để xác định khoảng cách giữa hai vector y
và z, người ta thường áp dụng một hàm số lên vector hiệu x = y−z. Một hàm số
được dùng để đo các vector cần có một vài tính chất đặc biệt.

2.2.1. Định nghĩa


Một hàm số f() ánh xạ một điểm x từ không gian n chiều sang tập số thực
một chiều được gọi là norm nếu nó thỏa mãn ba điều kiện sau đây:
- F(x) >= 0. Dấu bằng xảy ra  x = 0.
- F(αx) = |α|f(x), ∀α € R.
- F(x1) +f(x2) >= f (x1 + x2), ∀x1, x2 € R

2.2.2. Một số norm thường dùng


Giả sử các vector x = [x1; x2…xn], y = [y1; y2…yn].
- Nhận thấy khoảng cách Euclid chính là một norm, norm mày thường
được gọi là norm 2:

(1)

12
Với p là một số không nhỏ hơn 1 bất kỳ, hàm số sau đây:

(2)
Được chứng minh thỏa mãn ba điều
kiện trên và được gọi là norm p.
Nhận thấy rằng khi p⟶0 thì biểu thức bên trên trở thành số các phần tử
khác 0 của x. Hàm số (2) khi p= 0 được gọi là giả chuẩn (pseudonorm) 0. Nó
không phải là norm vì nó không thỏa mãn điều kiện 2 và 3 của norm. Giảchuẩn
này, thường được ký hiệu là ||x||0, khá quan trọng trong ML vì trong nhiều bài
toán, chúng ta cần có ràng buộc “sparse”, tức số lượng thành phần “active” của x
là nhỏ.
Có một vài giá trị của p thường được dùng:
- Khi p = 2 chúng ta có norm2 như ở trên.
- Khi p = 1 chúng ta có:
||x||1 = |x1| + |x2| + |x3| +…|xn| (3)

13
- Là tổng các giá trị tuyệt đối của từng phần tử của x. Norm 1 thường được
dùng như sấp xỉ của norm 0 trong các bài toán có ràng buộc. Dưới đây là một ví
dụ so sánh norm 1 và norm 2 trong không gian hai chiều:

Hình 3 Norm 1 và Norm 2 trong không gian hai chiều


- Norm 2 (màu xanh) chính là đường chim bay nối giữa vector x và
vector y.
- Khoảng cách norm 1 giữa hai điểm này (màu đỏ) có thể diễn giải như
là đường đi từ x đến y trong một thành phố mà thành phố được tạo hình bàn cờ,
chúng ta chỉ có thể đi theo dọc bàn cờ chứ không thể đi theo đường thẳng.
- Khi p > ∞, ta có norm p chính là trị tuyệt đối của phần tử lớn nhất của
vector đó:

14
Chương 3. Xây dựng hệ thống điểm danh sinh viên dựa trên phần
mềm nhận diện khuôn mặt sử dụng thuật toán K-Nearest Neighbor
Điểm danh sinh viên là một công việc quan trọng trong quản lý lớp học.
Tuy nhiên, việc thực hiện điểm danh thủ công có thể mất nhiều thời gian và
không hiệu quả. Vì vậy, việc xây dựng hệ thống điểm danh dựa trên phần mềm
nhận diện khuôn mặt là một giải pháp tiện lợi và tiết kiệm thời gian.

3.1. Khái niệm và phương pháp xử lí ảnh

3.1.1. Khái niệm


Xử lý ảnh là quá trình sử dụng các thuật toán và phương pháp tính toán để
thay đổi các thuộc tính của ảnh, như màu sắc, độ tương phản, độ sáng, độ phân
giải, nội suy, lọc ảnh, nhận dạng vật thể, và các thuộc tính khác.

3.1.2. Các phương pháp xử lí ảnh


1. Lọc ảnh: Lọc ảnh là phương pháp xử lý ảnh để loại bỏ các nhiễu,

Hình 5 Lọc ảnh


giảm nhiễu và nâng cao chất lượng ảnh. Các phương pháp lọc ảnh phổ biến
bao gồm lọc thông thấp, lọc thông cao, lọc thông thấp qua lọc thông cao.
2. Nhận dạng đối tượng: Phương pháp này sử dụng các thuật toán máy
học để tìm kiếm, phát hiện và định vị đối tượng trong ảnh. Các phương pháp

15
nhận dạng đối tượng phổ biến bao gồm phân loại, phát hiện đối tượng, nhận
dạng khuôn mặt, nhận dạng chữ viết tay và nhận dạng giọng nói.
3. Nội suy ảnh: Phương pháp nội suy ảnh được sử dụng để tăng độ
phân giải của ảnh, tạo ra các ảnh có độ phân giải cao hơn so với ảnh gốc. Các
phương pháp nội suy ảnh phổ biến bao gồm nội suy đa tuyến tính, nội suy
phi tuyến và nội suy cục bộ.

Hình 4 Nội suy ảnh

4. Tách vật thể: Phương pháp tách vật thể được sử dụng để tách đối
tượng từ nền ảnh. Các phương pháp tách vật thể phổ biến bao gồm phân
cụm, phân ngưỡng và các phương pháp dựa trên máy học.
5. Biến đổi ảnh: Phương pháp biến đổi ảnh được sử dụng để thay đổi
hình dáng và kích thước của ảnh. Các phương pháp biến đổi ảnh phổ biến
bao gồm phép xoay, phép co giãn, phép dịch chuyển và phép thay đổi tỉ lệ.
6. Trích xuất đặc trưng: Phương pháp trích xuất đặc trưng được sử
dụng để tìm kiếm và rút trích các đặc trưng của ảnh, như màu sắc, hình dạng,
cạnh, vân tay, v.v. Các đặc trưng này sau đó có thể được sử dụng để phân
loại, phát hiện, nhận dạng và trích xuất thông tin từ ảnh.
7. Phân tích hình ảnh: Phương pháp phân tích hình ảnh được sử dụng
để hiểu và phân tích nội dung của ảnh. Các phương pháp phân tích hình ảnh

16
phổ biến bao gồm phân tích màu sắc, phân tích hình dạng, phân tích cấu trúc,
phân tích văn bản và phân tích ngữ nghĩa.
8. Điều chỉnh màu sắc: Phương pháp điều chỉnh màu sắc được sử dụng
để thay đổi màu sắc của ảnh, làm cho ảnh trở nên tươi sáng và hấp dẫn hơn.
Các phương pháp điều chỉnh màu sắc phổ biến bao gồm cân bằng màu sắc,
sửa màu sắc theo điểm, chỉnh sửa màu sắc tổng quát và hiệu ứng màu sắc.
9. Phân đoạn ảnh: Phương pháp phân đoạn ảnh được sử dụng để phân
tách ảnh thành các vùng khác nhau, dựa trên các đặc trưng như màu sắc, độ
sáng và cường độ. Các phương pháp phân đoạn ảnh phổ biến bao gồm phân
đoạn bằng cạnh, phân đoạn bằng màu sắc và phân đoạn bằng kích thước.

Hình 5 Phân đoạn ảnh

3.2. Xây dựng hệ thống điểm danh sinh viên dựa trên phần mềm
nhận diện khuôn mặt sử dụng thuật toán K-Nearest Neighbor
Để xây dựng hệ thống điểm danh sinh viên dựa trên phần mềm nhận diện
khuôn mặt sử dụng thuật toán K-Nearest Neighbor, chúng ta cần thực hiện các
bước sau:
1. Thu thập dữ liệu: Trước tiên, chúng ta cần thu thập dữ liệu về khuôn
mặt của các sinh viên trong lớp học. Việc này có thể được thực hiện bằng

17
cách chụp ảnh khuôn mặt của từng sinh viên và lưu trữ dữ liệu này trong cơ
sở dữ liệu.
2. Tiền xử lý dữ liệu: Sau khi thu thập được dữ liệu, chúng ta cần tiền
xử lý dữ liệu để loại bỏ nhiễu và chuẩn hóa dữ liệu. Các bước tiền xử lý có
thể bao gồm cắt ảnh khuôn mặt, sử dụng các phương pháp lọc ảnh để loại bỏ
nhiễu, và chuẩn hóa các kích thước của ảnh khuôn mặt.
3. Trích xuất đặc trưng: Tiếp theo, chúng ta cần trích xuất đặc trưng từ
các ảnh khuôn mặt đã được tiền xử lý. Đặc trưng có thể được trích xuất bằng
các phương pháp như Local Binary Patterns (LBP), Histogram of Oriented
Gradients (HOG), hoặc sử dụng mô hình deep learning như Convolutional
Neural Networks (CNN).
4. Huấn luyện mô hình K-NN: Sau khi trích xuất được đặc trưng từ
các ảnh khuôn mặt, chúng ta có thể sử dụng mô hình K-NN để phân loại các
ảnh khuôn mặt đó vào các lớp tương ứng với các sinh viên trong lớp học.
Việc huấn luyện mô hình K-NN có thể được thực hiện bằng cách sử dụng dữ
liệu đã được gán nhãn.
5. Kiểm tra và đánh giá mô hình: Sau khi đã huấn luyện mô hình K-
NN, chúng ta cần đánh giá hiệu suất của mô hình trên tập dữ liệu kiểm tra.
Việc đánh giá có thể được thực hiện bằng các phương pháp như tính toán độ
chính xác, độ phủ và F1-score của mô hình trên tập dữ liệu kiểm tra. Nếu kết
quả đánh giá cho thấy mô hình đạt được hiệu suất tốt, chúng ta có thể sử
dụng mô hình để điểm danh sinh viên trong thực tế. Nếu kết quả đánh giá
không tốt, chúng ta cần xem xét các phương pháp cải thiện mô hình, ví dụ
như tăng số lượng mẫu dữ liệu huấn luyện hoặc tinh chỉnh các tham số của
mô hình để đạt được hiệu suất tốt hơn trên tập dữ liệu kiểm tra.
6. Triển khai hệ thống: Sau khi đã xây dựng và đánh giá mô hình K-

18
NN, chúng ta cần triển khai hệ thống để sử dụng trong thực tế. Việc triển
khai có thể được thực hiện bằng cách tích hợp mô hình K-NN vào phần mềm
điểm danh sinh viên hoặc sử dụng các API của các dịch vụ nhận diện khuôn
mặt đã có sẵn để phát triển ứng dụng điểm danh.
7. Quản lý và bảo trì hệ thống: Để đảm bảo hiệu quả của hệ thống
điểm danh sinh viên dựa trên phần mềm nhận diện khuôn mặt sử dụng thuật
toán K-NN, chúng ta cần thường xuyên quản lý và bảo trì hệ thống. Việc này
có thể bao gồm việc cập nhật phần mềm, sửa chữa các lỗi phát sinh, và thực
hiện các bước kiểm tra và đánh giá hiệu suất của hệ thống để đảm bảo hoạt
động ổn định và chính xác.

19
KẾT LUẬN
Chúng tôi đã xây dựng một hệ thống điểm danh sinh viên bao gồm việc
phát hiện và nhận dạng khuôn mặt theo thời gian thực với độ chính xác tương
đối cao. Hiệu năng hệ thống tương đối tốt với thời gian phát hiện nhanh đối với
các ảnh mặt chụp thẳng, chất lượng ảnh tốt. Hệ thống này có thể giúp giảng viên
theo dõi chuyên cần và tạo điêu kiện để giảng viên nhớ mặt sinh viên, ngoài ra
có thể tra cứu thông tin, cập nhật sai sót, xuất file điểm danh. Bên cạnh đó, vẫn
còn một số hạn chế. Cụ thể là đối với những người mang kính hoặc nền phía sau
có nhiều chi tiết còn phát hiện chưa chính xác, đối với gương mặt quay nghiêng
nhiều hoặc độ sáng yếu thì chương trình không phát hiện được. Những nghiên
cứu tương lai có thể cài đặt các mô hình học sâu để cải thiện độ chính xác.

20
TÀI LIỆU THAM KHẢO

[1] amazon. (n.d.). Retrieved from


https://aws.amazon.com/vi/what-is/facial-recognition/
[2] Xuân, M. P. (n.d.). Tài Nguyên Số. Retrieved from
http://tainguyenso.dut.udn.vn/bitstream/DUT/322/1/MAIXUANPHU.TT.pdf
[3] Wikipedia contributors. (2023, January 26). Iris flower data set.
Wikipedia. https://en.wikipedia.org/wiki/Iris_flower_data_set#References

21

You might also like