HỌC VIỆN NGÂN HÀNG
KHOA HỆ THỒNG THÔNG TIN QUẢN LÝ
BÀI TẬP LỚN
HỌC PHẦN: TRÍ TUỆ NHÂN TẠO TRONG KINH DOANH
ĐỀ TÀI:
ỨNG DỤNG THỊ GIÁC MÁY TÍNH (COMPUTER VISION) TRONG
NHẬN DIỆN KHUÔN MẶT ĐỂ THỰC HIỆN ĐIỂM DANH SINH
VIÊN TẠI HỌC VIỆN NGÂN HÀNG
Giảng viên hướng dẫn: Bùi Thị Hồng Nhung
Mã lớp: 212IS42A21
Nhóm thực hiện: 25
Sinh viên tham gia:
1. Trần Thị Linh Nga - 23A4050257
2. Trần Quỳnh Như - 23A4050293
3. Lê Ngọc Ánh - 23A4050055
Hà Nội, ngày 10 tháng 04 năm 2022
DANH SÁCH THÀNH VIÊN VÀ PHÂN CÔNG NHIỆM VỤ
STT
Họ và tên
Mã sinh viên
Số điện thoại
Nhiệm vụ
-
1
Trần Thị Linh Nga
23A4050257
0763139283
-
2
Trần Quỳnh Như
23A4050293
0979410181
-
3
Lê Ngọc Ánh
23A4050055
0946148795
-
Phát biểu bài tốn và
lí do chọn bài tốn
Trình bày cách thức
thu thập dữ liệu
Thu thập ảnh
Viết code phần mã
lệnh chương trình
Trình bày phần kết
luận Bài tập lớn
Tham gia quay video
clip
Giới thiệu tổng quan
thuật toán sử dụng
Thu thập ảnh
Viết code phần mã
lệnh chương trình
Trình bày phần mở
đầu
Tạo bìa và mục lục
Tổng hợp, chỉnh sửa
và hồn thiện hình
thức, nội dung Bài
tập lớn
Tham gia quay video
clip
Trình bày phần xác
định vấn đề
Viết code phần mã
lệnh chương trình
Trình bày kết quả
thực hiện
Trình bày phần tài
liệu tham khảo
Lên kịch bản video
clip
Tham gia quay video
clip
Tỷ lệ
đóng
góp
200%
200%
200%
MỤC LỤC
Mở đầu ......................................................................................................................1
1. Xác định vấn đề ....................................................................................................2
1.1. Tổng quan về thực trạng hình thức điểm danh sinh viên của trường .............2
1.2. Tổng quan về giải pháp ứng dụng thị giác máy tính để thực hiện điểm danh
sinh viên ..................................................................................................................2
2. Phát biểu bài tốn và lí do chọn bài tốn...........................................................4
2.1. Phát biểu bài tốn ............................................................................................4
2.2. Lí do chọn bài toán ..........................................................................................5
3. Cách thức thu thập dữ liệu .................................................................................5
4. Tổng quan thuật tốn sử dụng ............................................................................6
5. Mã lệnh chương trình ..........................................................................................8
5.1. Khai báo thư viện .............................................................................................8
5.2. Kết nối với Google Drive để đọc và lưu dữ liệu ..............................................9
5.3. Khai báo đường dẫn thư mục chứa dữ liệu ảnh ..............................................9
5.4. Gán nhãn cho các dữ liệu ảnh .........................................................................9
5.5. Tiền xử lý dữ liệu ảnh ......................................................................................9
5.6. Đọc dữ liệu Train và Validation ....................................................................10
5.7. Xây dựng mơ hình ..........................................................................................11
5.8. Thiết lập các tham số để huấn luyện mơ hình ...............................................13
5.9. Huấn luyện mơ hình .......................................................................................13
5.10. Sử dụng mơ hình ..........................................................................................15
6. Kết quả thực hiện ...............................................................................................16
KẾT LUẬN .............................................................................................................18
TÀI LIỆU THAM KHẢO
1
Mở đầu
Lịch sử cách mạng công nghiệp không ngừng đổi mới, mỗi cuộc cách mạng
đều đóng góp rất lớn cho sự phát triển của thế giới từ năng suất lao động cho đến
sự kết nối trên toàn cầu. Nếu động cơ hơi nước là nền tảng ban đầu của cuộc cách
mạng công nghiệp lần thứ nhất diễn ra vào cuối thế kỷ 18 thì cơng nghệ Trí tuệ
nhân tạo là từ khóa quan trọng trong cuộc cách mạng cơng nghiệp lần thứ tư. Theo
dòng chảy của cuộc cách mạng 4.0, trí tuệ nhân tạo ngày càng được phổ biến và
ứng dụng rộng rãi trong mọi lĩnh vực của cuộc sống.
Trí tuệ nhân tạo (Artificial Intelligence - viết tắt là AI) được hiểu như một
lĩnh vực của khoa học máy tính gắn trực tiếp với việc tự động hóa các hành vi
thông minh. Đặc trưng của công nghệ AI là năng lực “tự học” của máy tính, do đó
có thể tự phán đốn, phân tích trước các dữ liệu mới mà khơng cần sự hỗ trợ của
con người, đồng thời có khả năng xử lý dữ liệu với số lượng lớn và tốc độ cao. Cứ
như vậy cấu trúc của AI ln ln thay đổi và thích nghi trong điều kiện và hoàn
cảnh mới. Ngày nay, với sự tiến bộ vượt bậc của khoa học cơng nghệ, giờ đây bằng
trí tuệ nhân tạo, những sản phẩm do con người tạo ra khơng cịn chỉ là những cỗ
máy tầm thường mà chúng đã biết tiếp thu, biết “học”, phân tích để đưa ra những
giải pháp hiệu quả.
Xuất phát từ những lí do trên cũng như nhận thức được tầm quan trọng của
Trí tuệ nhân tạo trong mọi lĩnh vực của cuộc sống, nhóm chúng em đã hình thành ý
tưởng về việc xây dựng bài toán “Ứng dụng AI về thị giác máy tính (Computer
Vision) trong nhận diện khn mặt để thực hiện điểm danh sinh viên tại trường
Học viện Ngân hàng”, từ đó có thể tối ưu hóa q trình điểm danh tại trường.
2
1. Xác định vấn đề
1.1. Tổng quan về thực trạng hình thức điểm danh sinh viên của trường
Ngày nay, tình trạng “học hộ, thi hộ” đã và đang trở thành vấn nạn đáng
quan tâm tại các trường đại học. Đặc biệt trong tình hình dịch bệnh Covid-19, việc
học và thi online càng tạo điều kiện thuận lợi cho vấn đề này diễn ra dễ dàng hơn.
Khác với THPT, ở trường đại học, giảng viên sẽ sử dụng hình thức điểm
danh để đánh giá thang điểm chuyên cần cho sinh viên. Bên cạnh đó, do tính chất
và mơi trường học tập khiến cho giảng viên khó có thể quản lý cũng như kiểm sốt
tồn bộ sinh viên. Từ đó tạo ra các kẽ hở để sinh viên thuê người học hộ, vơ hình
chung làm cho chất lượng giáo dục khơng được đảm bảo. Vậy nên hình thức điểm
danh hộ đã trở nên phổ biến, dấy lên hồi chuông báo động đối với nền giáo dục
Việt Nam.
1.2. Tổng quan về giải pháp ứng dụng thị giác máy tính để thực hiện điểm
danh sinh viên
1.2.1. Giới thiệu chung về thị giác máy tính (Computer Vision) trong nhận
diện khuôn mặt
Hệ thống nhận diện khuôn mặt là một ứng dụng máy tính tự động xác định
hoặc nhận dạng một người nào đó từ một hình ảnh kỹ thuật số hoặc một khung
hình video từ một nguồn video. Một trong những cách để thực hiện điều này là so
sánh các đặc điểm khuôn mặt chọn trước từ hình ảnh và một cơ sở dữ liệu về
khn mặt.
Cách thức hoạt động: Quá trình sinh trắc học nhận diện khuôn mặt hoạt
động bao gồm
- Lấy mẫu: Trước hết, để có thể phân tích và nhận diện khn mặt, cần phải
tách khn mặt ra khỏi khung cảnh cịn lại trước.
3
- Phân tích: Gương mặt được nhận diện thơng qua các đặc điểm và hệ thống
nhận diện cũng vậy nhưng nó thực hiện đánh giá các đặc điểm ở một mức độ
cao hơn.
- So sánh: Mỗi khn mặt đều có nhiều điểm mốc, những phần lồi lõm tạo
nên các đặc điểm của khuôn mặt. Các hệ thống nhận diện gương mặt định
nghĩa những điểm này là những điểm nút.
Kết quả: Hệ thống sau đó sẽ quyết định kết quả so sánh có phù hợp hay
khơng.
Điểm nổi bật:
- Cơng nghệ nhận diện khn mặt có nhiều ưu điểm mà các phương pháp xác
thực khác khơng có. Một trong những khía cạnh tích cực của nhận diện
khn mặt là hệ thống không cần sự tương tác của con người, không đòi hỏi
người dùng phải chờ đợi trong thời gian dài hoặc làm bất cứ điều gì hơn là
nhìn vào camera.
- Kiểm soát theo thời gian thực (real-time): Nâng cao mức độ bảo mật trong
hệ thống an ninh qua camera. Tạo ra kho dữ liệu với danh sách “Trắng - Tin
cậy” và danh sách “Đen – Blacklist”.
- Sẵn sàng kết nối với hệ thống kiểm soát ra vào - Access Control, thơng báo
các trường hợp xâm nhập trái phép, kiểm sốt việc chấm công; đăng ký và
quản lý khách vào và ra trong khu vực (tòa nhà, resort,…)
1.2.2. Vai trò của thị giác máy tính (Computer Vision) trong việc thực hiện
điểm danh sinh viên
Giải pháp ứng dụng thị giác máy tính sẽ là cách quản lý vơ cùng hiệu quả,
nhanh chóng và chính xác giúp nhà trường kiểm sốt sinh viên một cách chặt chẽ,
khoa học nhất.
4
Ngồi ra, việc sử dụng nhận diện hình ảnh sẽ xử lý tối đa những vấn đề đang
gặp phải ở các trường đại học như việc sinh viên trốn học, học hộ, thi hộ, đi học
muộn…
2. Phát biểu bài toán và lí do chọn bài tốn
2.1. Phát biểu bài tốn
Đứng trước sự phát triển như vũ bão của khoa học cơng nghệ, để hội nhập
quốc tế thì khơng chỉ nền kinh tế, chính trị, văn hóa mà giáo dục cũng góp phần
quan trọng khơng kém. Bởi giáo dục được xem là mũi nhọn – một trong những yếu
tố quyết định vận mệnh mỗi quốc gia. Bất kì một ngơi trường nào cũng đều có mục
tiêu chung là đào tạo, phát triển thế hệ trẻ một cách toàn diện, đủ năng lực, phẩm
chất để sau mỗi chuyến đò tri thức ấy chúng ta có thể dâng trọn sức trẻ, tài năng và
nhiệt huyết cống hiến cho dân tộc. Đồng thời nhà trường luôn chú trọng và quan
tâm đến chất lượng “thực” của học sinh, sinh viên, đề cao tinh thần, ý thức “học
thật thi thật”, từ đó khơng cịn thực trạng thừa bằng cấp nhưng thiếu năng lực đang
diễn ra trong xã hội. Nắm bắt được những vấn đề còn tồn tại trên, Trí tuệ nhân tạo
đã và đang góp phần cải thiện, thay đổi và phát triển nền giáo dục theo hướng ngày
càng tồn diện và chất lượng.
Trong q trình học tập mơn Trí tuệ nhân tạo trong kinh doanh, sinh viên
được tiếp cận ba ứng dụng AI vào thực tiễn: Xây dựng mơ hình dự báo, dự đốn;
Xây dựng Chatbot; Nhận dạng hình ảnh. Để minh chứng cụ thể cho giải pháp ứng
dụng “Nhận dạng hình ảnh”, nhóm đã đi sâu nghiên cứu và đưa ra bài toán nhận
diện khuôn mặt để thực hiện điểm danh sinh viên tại Học viện Ngân hàng.
5
2.2. Lí do chọn bài tốn
Học viện Ngân hàng (tiền thân là Trường Cao cấp Nghiệp vụ Ngân hàng)
được thành lập từ năm 1961. Là ngôi trường đại học công lập đa ngành trực thuộc
Ngân hàng Nhà nước Việt Nam và Bộ Giáo & Đào tạo, Học viện Ngân hàng có trụ
sở chính tại Hà Nội, phân viện Bắc Ninh, phân viện Phú Yên và cơ sở đào tạo Sơn
Tây với hơn 16.000 sinh viên đang theo học. Trong suốt quá trình xây dựng và
phát triển, Học viện Ngân hàng đã khơng ngừng hồn thiện và đi lên. Từ một cơ sở
đào tạo chuyên về lĩnh vực tài chính ngân hàng, đến nay trường đã mở rộng đào
tạo theo hướng đa ngành. Trình độ và tính chun nghiệp của đội ngũ giảng viên
ngày càng được nâng cao. Sinh viên tốt nghiệp đáp ứng tốt các yêu cầu của nhà
tuyển dụng và xã hội, góp phần khẳng định vị thế của Học viện Ngân hàng là một
trong những cơ sở đào tạo về kinh tế hàng đầu của Việt Nam. Chính vì vậy, vào
mỗi mùa tuyển sinh, Học viện ln thu hút lượng học sinh lớn trên khắp cả nước từ
Bắc vào Nam.
Do đó, việc áp dụng trí tuệ nhân tạo (AI) để thực hiện điểm danh sinh viên
trong các kì thi của trường là một trong những giải pháp mà Học viện Ngân hàng
có thể xem xét và triển khai nhằm tiết kiệm thời gian, hạn chế các thủ tục rườm rà,
tình trạng chờ đợi trong quá trình điểm danh tại các kì thi cũng như nâng cao được
chất lượng học tập của sinh viên. Ứng dụng sẽ giúp cho nhà trường giám sát và
quản lý sinh viên tốt hơn trong quá trình điểm danh, giảm thiểu tình trạng “học hộ,
thi hộ”, từ đó sinh viên có ý thức tự giác trong việc học tập để đạt được thành tích
cao khi ra trường, nâng cao chất lượng giảng dạy và học tập.
3. Cách thức thu thập dữ liệu
Ảnh nhận dạng: phải là dạng ảnh có thể thấy rõ được gương mặt chính diện
của sinh viên, khơng có các hình ảnh trang trí.
6
Sinh viên toàn Học viện được yêu cầu chụp ảnh chân dung các góc mặt cụ
thể là:
- 25 ảnh chính diện khn mặt
- 15 ảnh góc nghiêng phải
- 15 ảnh góc nghiêng trái
- 15 ảnh đeo kính
- 15 ảnh xõa tóc
- 15 ảnh cột tóc
Số lượng thu thập: thu thập từ 3 sinh viên, mỗi người cung cấp tối thiểu 100
ảnh.
Lưu ảnh vào Google Drive với hai thư mục Train và Validation. Mỗi sinh
viên tương ứng với một thư mục con trong đó 80 ảnh ở Train, 20 ảnh ở
Validation.
4. Tổng quan thuật tốn sử dụng
Chương trình sẽ được xây dựng và thực hiện thông qua ứng dụng Google
Collab - một sản phẩm từ Google Research, nó cho phép chạy các dịng code
Python thơng qua trình duyệt. Đây là một service dựa trên Jupyter Notebooks,
không cần thiết lập và hỗ trợ GPU miễn phí. Bài tốn được xử lý bằng ngơn ngữ
lập trình Python và sử dụng các thư viện Tensorflow, Numpy, Keras. Trong đó,
Tensorflow là một thư viện dạng nguồn mở được sử dụng rất phổ biến trong lĩnh
vực học máy giúp gia tăng tốc độ nhanh chóng và dễ dàng hơn; Keras là một
nguồn mở cho Neural Network được thiết kế để xác định nhanh các mơ hình học
sâu; Numpy là một thư viện tố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.
7
Thuật toán được sử dụng là CNN - Convolutional Neural Network (Mạng
nơ-ron tích chập) - một phương pháp phổ biến nhất hiện nay có độ chính xác rất
cao trong việc thực hiện nhận dạng hình ảnh, khn mặt. Đây được xem là một
trong những mơ hình của mạng Học sâu (Deep Learning) - tập hợp các thuật tốn
để có mơ hình dữ liệu trừu tượng hóa ở mức cao bằng cách xử lý dữ liệu thơng qua
nhiều lớp mảng. Nó bao gồm các phần tử đơn giản hoạt động song song được nối
với nhau bằng các liên kết có trọng số để kích thích hoặc ức chế giữa các nơ-ron.
Kiến trúc của nơ-ron tích chập tương tự như mơ hình kết nối của các nơ-ron trong
bộ não con người và được lấy cảm hứng từ hệ thống vỏ thị giác trong bộ não.
CNN có thể lấy hình ảnh đầu vào, gán độ quan trọng cho các đối tượng khác
nhau và có thể phân biệt được từng đối tượng này với nhau. So với những mạng
nơ-ron thông thường, mạng CNN nhận đầu vào là một mảng hai chiều và hoạt
động trực tiếp trên hình ảnh. Về kỹ thuật, mơ hình CNN để training và kiểm tra,
mỗi hình ảnh đầu vào sẽ chuyển nó qua 1 loạt các lớp tích chập với các bộ lọc,
tổng hợp lại các lớp được kết nối đầy đủ và áp dụng hàm Softmax để phân loại đối
tượng có giá trị xác suất giữa 0 và 1. Đầu ra của phép tích chập là một tập các giá
trị ảnh được gọi là mạng đặc trưng. Thực chất, ở các layer đầu tiên, phép tích chập
đơn giản là phép tìm biên ảnh và các layer tiếp theo sẽ lại trích xuất tiếp các đặc
trưng của đặc trưng của các đối tượng đó, việc có nhiều layer như vậy giúp cho
việc chia nhỏ đặc trưng của ảnh tới mức nhỏ nhất có thể.
Để q trình nhận dạng khn mặt được chính xác thì nhiệm vụ phát hiện
khn mặt đóng vai trị rất quan trọng. Quy trình này sẽ dựa trên phương pháp các
mạng nơ-ron tích chập ghép nhiều tầng nối tiếp nhau. Mỗi khuôn mặt được đại
diện bởi một vectơ đặc trưng. Khi đó, q trình nhận dạng khn mặt trở thành vấn
đề phân lớp các vector đặc trưng. Sau đó là quy trình nhận dạng khn mặt. Đối
với quy trình này, CNN được huấn luyện sao cho khoảng cách bình phương L2
8
trong không gian nhúng tương ứng với khoảng cách giữa các khn mặt: Khn
mặt của cùng một người có khoảng cách nhỏ và khn mặt của những người khác
nhau có khoảng cách lớn. Khi đó, mỗi khn mặt được đại diện bởi một vectơ đặc
trưng 128 chiều được chuyển đổi thành 128 byte. Khi không gian nhúng này được
tạo ra, thì nhiệm vụ nhận dạng khn mặt trở thành bài toán phân lớp vector đặc
trưng dùng thuật toán KNN, mạng nơ-ron nhiều lớp.
5. Mã lệnh chương trình
5.1. Khai báo thư viện
Import tensorflow as tf: Khai báo thư viện Tensorflow - là thư viện mã
nguồn mở dùng cho tính tốn số học sử dụng đồ thị luồng dữ liệu, giúp ta
tiền xử lí các dữ liệu, ngồi ra thư viện còn kết hợp với các API khác nhau
để xây dựng kiến trúc học sâu ở quy mô lớn như CNN giúp ta dễ dàng nhận
diện hình ảnh.
from tensorflow import keras: Khai báo thư viện Keras - là một thư viện
có cú pháp đơn giản hơn Tensorflow rất nhiều và ưu điểm của nó là dễ sử
dụng, giúp ta xây dựng được mơ hình nhanh chóng và hỗ trợ CNN.
import numpy as np: Khai báo thư viện Numpy - là một thư viện Python
mạnh mẽ, chủ yếu được sử dụng để thực hiện các tính tốn trên các mảng đa
chiều, cho phép làm việc hiệu quả với ma trận và mảng với tốc độ xử lí
nhanh, giúp ta phân tích và xử lí dữ liệu ảnh.
9
5.2. Kết nối với Google Drive để đọc và lưu dữ liệu
from google.colab import drive / drive.mount(„/content/drive‟): Dùng để
liên kết với Google Drive lấy dữ liệu.
5.3. Khai báo đường dẫn thư mục chứa dữ liệu ảnh
import os: Đây là thư viện tích hợp sẵn trong Python, cho phép thao tác với
các tệp và thư mục con trong thư mục làm việc.
5.4. Gán nhãn cho các dữ liệu ảnh
label=['QuynhNhu','NgocAnh','LinhNga']
Phân loại ảnh là bài tốn học có giám sát, do đó dữ liệu huấn luyện và kiểm
định phải được gán nhãn. Ảnh được gán nhãn dựa theo tên thư mục chứa nó, ta có
tên và thứ tự các nhãn tương ứng với tên và thứ tự các thư mục chứa ảnh huấn
luyện và kiểm định.
5.5. Tiền xử lý dữ liệu ảnh
10
from tensorflow.keras.preprocessing.image import
ImageDataGenerator: Khai báo thêm lớp ImageDataGenerator từ Keras để
tạo ra hàng loạt các dữ liệu hình ảnh và chuẩn hoá các kiểu dữ liệu khác
nhau.
ImageDataGenerator(rescale=1/255): Dùng để đọc và chuẩn hoá dữ liệu
ảnh về các giá trị nằm trong khoảng [0,1]. Một file ảnh JPEG được chuyển
về sẽ được lưu trong máy tính dưới dạng một ma trận dữ liệu số có giá trị
trong khoảng [0, 255].
5.6. Đọc dữ liệu Train và Validation
train_generator = train_data_gen.flow_from_directory: Sử dụng hàm
này để chuẩn bị dữ liệu từ thư mục train_data, chỉ định kích thước đích của
hình ảnh. Trong đó:
- train_generator: Dùng để tải các dữ liệu trong thư mục Train.
- flow_generator: Dùng để đọc hình ảnh từ thư mục chứa ảnh và numpy, làm
giàu dữ liệu ảnh.
- train_image_files_path: Đường dẫn tới ảnh huấn luyện.
- target_size=(50,50): Điều chỉnh các ảnh đầu vào về một kích thước 50x50
để máy có thể học được, từ đó đưa ra kết quả chính xác hơn.
class_mode=„categorical‟: Phân loại hình ảnh theo các “class”. Ở bài tốn
này nhận diện khn mặt ba sinh viên nên sử dụng 3 “class”, đầu ra sẽ có 3
11
output. Sau khi chạy code, máy đưa ra kết quả là 240 ảnh thuộc 3 “class”
trong thư mục Train.
validation_generator = validation_data_gen.flow_from_directory: Dùng
để chuẩn bị dữ liệu thử nghiệm cho mơ hình.
valid_image_files_path: Đường dẫn tới ảnh thử nghiệm.
target_size=(50,50): Biến đổi các hình ảnh thử nghiệm về cùng một kích
thước 50x50.
class_mode='categorical' : Phân loại ảnh đa lớp (3 lớp). Sau khi chạy code,
máy đưa ra kết quả là 60 ảnh thuộc 3 “class” trong thư mục Validation.
5.7. Xây dựng mơ hình
from keras,modes import Sequential: Trong thư viện Keras, Models được
hiểu là một chuỗi các lớp. Thế nên khi xuất Sequential là sắp xếp các lớp
Keras theo thứ tự lần lượt để có một model chuẩn theo ý muốn.
from keras.layers import Dense, Dropout, Conv2D, MaxPooling2D,
Flatten: Thêm các lớp cần thiết để xây dựng các mạng nơ-ron khác nhau.
model=tf.keras.models.Sequential(): Khởi chạy mơ hình Sequential để đưa
ảnh đầu vào Input Image.
12
Lớp CNN1:
Bao gồm 32 bộ lọc với kích thước là 3x3 để học được các đặc trưng của hình
ảnh và hàm activation=„relu‟ để loại ra các giá trị âm. Do tầng CNN1 kết nối với
đầu vào nên cần mô tả rõ thơng tin dữ liệu đầu vào (input_shape=(50,50,3)) với
kích thước ảnh là 50x50x3 pixel.
- model.add: Dùng để thêm các lớp vào mơ hình.
- Conv2D: Dùng để lấy các đặc tính từ hình ảnh.
- MaxPooling2D(2,2): Giữa các convolutional thường được dùng lớp Pooling
để vừa giữ được các thuộc tính quan trọng vừa giảm kích thước dữ liệu. Khi
dùng Pooling layer thì hầu hết sẽ dùng cửa sổ trượt size=(2,2), bước nhảy
stride=2. Do đó, kích thước của dữ liệu sẽ giảm đi một nửa.
Lớp CNN2:
Tuy mơ hình của CNN1 và CNN2 có sự giống nhau về cấu trúc nhưng
CNN2 khơng kết nối trực tiếp với đầu vào. Với bộ lọc được sử dụng là 64, mơ hình
của CNN2 giúp máy có thể phân tích sâu hơn và đọc được nhiều thơng tin hơn.
Lớp CNN3:
Mơ hình của CNN3 giống cấu trúc với CNN2 và cũng sử dụng bộ lọc là 64
để giúp máy có thể phân tích sâu hơn và đọc được nhiều thông tin hơn.
Lớp CNN4:
Đều nhằm mục đích giúp máy có thể phân tích sâu hơn và đọc được nhiều
thơng tin hơn, mơ hình của CNN4 cũng có cấu trúc và số bộ lọc giống với mơ hình
của CNN2. Sau khi đi qua 4 lớp CNN, máy sẽ đọc được những thông tin và đặc
điểm cần thiết của dữ liệu ta cung cấp. Khi đó, ta sẽ dùng code để
model.add(Flatten()) chuyển ảnh từ dạng ma trận về mảng 1 chiều (1 vector).
- model.add(Dense(512,activation=tf.nn.relu))
13
- model.add(Dense(3,activation=tf.nn.softmax))
5.8. Thiết lập các tham số để huấn luyện mơ hình
Đối số và giá trị mặc định của phương thức compile() như sau
- Compile: Chọn các tham số để huấn luyện cho mơ hình.
- Optimizer: Là thuật tốn huấn luyện cho mơ hình, sử dụng „sgd‟, „adam‟
hoặc RMSprop.
- Loss: Hàm tính tốn sai số giữa các giá trị học được và giá trị thực tế, sử
dụng categorical_crossentropy trong những trường hợp dự đoán nhiều lớp.
- Metrics: Là thước đo để đánh giá độ chính xác của mơ hình.
- Lr: Learning rate=0.001-Learning rate nhỏ (0.001) tức là bước nhảy nhỏ
đồng nghĩa là tốc độ hội tụ sẽ nhanh hơn.
Ở đây, chúng ta sẽ biên dịch mạng nơron thông qua lệnh “model.compile”.
Mơ hình được huấn luyện bằng hàm Loss là categorical_crossentropy với tiêu chí
huấn luyện là Accuracy.
5.9. Huấn luyện mơ hình
14
Chúng ta gọi “model.fit” để huấn luyện mơ hình
EPOCHS: Là số vịng lặp chạy mơ hình. Trong đó, EPOCHS=200 tức là
mơ hình cần 200 vịng lặp để đưa hết dữ liệu vào chạy mơ hình. Đối với bài
tốn này, nhóm đã lựa chọn sử dụng EPOCHS=200 để tăng độ chính xác
15
cho mơ hình. Bên cạnh đó, nhóm cũng thử sử dụng EPOCHS=100 tuy nhiên
độ chính xác thấp hơn.
model.fit_generator: Yêu cầu trình tạo dữ liệu đầu vào để chạy khơng giới
hạn.
step_per_epoch: Số lần lặp lại hàng loạt trước khi 1 EPOCHS kết thúc. Để
tăng độ chính xác, nhóm đã lựa chọn step_per_epoch=2.
verbose= 1: Cho phép hiển thị một thanh tiến trình chạy của mơ hình.
validation_steps: Tương tự như steps_per_epoch nhưng trên các dữ liệu
trong Validation.
Độ chính xác của mơ hình: Sau khi chạy hết 200 vịng lặp EPOCHS, máy
đưa ra độ chính xác cao với hầu hết các lần chạy và có độ chính xác lên tới 100%.
5.10. Sử dụng mơ hình
Bước đầu tiên, chúng ta sẽ khai báo thư viện.
from google.colab import files; from keras.preprocessing import image;
%matplotlib inline”: Dùng để đưa dữ liệu ảnh vào.
import matplotlib.pyplot as plt; import matplotlib.image as mpimg:
Dùng để khai báo thư viện matplotlib.pyplot, matplotlib.image.
uploaded=files.upload(): Dùng để tạo chỗ tải ảnh cần dự đoán.
16
Vòng lặp “For”: Là vòng lặp giúp lặp lại các xử lý trong chương trình với
một số lần cụ thể. Những phần nằm trong vòng lặp “For” cần lùi vào đầu
dịng.
for fn in uploaded.keys(): Có fn là biến, uploaded.keys() đối tượng có
nhiều phần tử.
path='/content/'+fn: Đường dẫn ảnh cần dự đốn.
plt.imshow(mpimg.imread(path): Dùng để in ảnh đọc được.
Vì các mơ hình được đào tạo trước mong muốn đầu vào có kích thước cụ thể
nên chúng ta cần chuyển đổi hình ảnh đó sang định dạng chuẩn trước khi cung cấp
bất kỳ hình ảnh nào cho Keras. Trong trường hợp này, chúng ta cần thay đổi kích
thước của hình ảnh thành 50x50 pixel.
img=image.load_img(path,target_size=(50,50)): Đưa ảnh về target
size(50,50).
y_predict = model.predict(images,batch_size=10): Mơ hình dự đốn
thơng qua ảnh với batch size=10 (số lượng ảnh trong mỗi một lần lặp là 10).
print(y_predict); print('Giá trị dự đoán: ',
Label[np.argmax(y_predict)]): In giá trị dự đoán.
Sau khi chạy đoạn code, xuất hiện kết quả u cầu chọn hình ảnh để phân
loại, kích chọn nút Chọn tệp (Choose files), xuất hiện hộp thoại Open, chọn một
ảnh để phân loại.
6. Kết quả thực hiện
Sau khi chạy thử nghiệm cho ra kết quả với độ chính xác khá cao. Chúng ta
có thể áp dụng cho các trường học, cụ thể là Học viện Ngân hàng để khắc phục
tình trạng học hộ, thi hộ, đi học muộn,… trong q trình điểm danh sinh viên, từ
đó nâng cao chất lượng giáo dục.
17
18
KẾT LUẬN
Thế giới đang khơng ngừng đổi mới, Trí tuệ nhân tạo trong nhận diện khuôn
mặt cũng theo đà phát triển đã và đang được áp dụng sâu rộng ở mọi lĩnh vực của
cuộc sống. Trong đó, nhận diện khn mặt để thực hiện điểm danh sinh viên tại
trường học là một giải pháp vô cùng thiết thực, hiệu quả. Với phương pháp trên,
nhà trường vừa có thể quản lý, kiểm soát được số lượng sinh viên một cách thuận
lợi, chính xác, vừa tiết kiệm thời gian cũng như phát hiện kịp thời những trường
hợp thuê người thi hộ, làm bài bộ, đi học hộ - những vấn nạn đang diễn ra phổ biến
tại các trường đại học ngày nay. Từ đó khơng chỉ giúp nâng cao chất lượng giáo
dục của nhà trường, mà cịn giúp cho sinh viên có ý thức hơn trong việc học tập và
thi cử.
Thông qua bài tiểu luận, nhóm đã đề xuất một ý tưởng mới cho bài tốn ứng
dụng AI trong nhận diện khn mặt. Với 4 lớp CNN và 200 vịng lặp, mơ hình đã
đưa ra độ chính xác thực thi khá cao. Điều này đồng nghĩa với việc bài tốn có thể
được đưa vào thực tế để ứng dụng. Tuy nhiên, do trình độ kiến thức cịn có nhiều
hạn chế nên trong q trình chạy thử chương trình, nhóm vẫn gặp phải một số vấn
đề và sai sót. Kính mong cơ có thể bổ sung cũng như đóng góp ý kiến để bài tập
lớn được hoàn thiện hơn.
Chúng em xin chân thành cảm ơn cơ Bùi Thị Hồng Nhung vì thời gian vừa
qua đã đồng hành và giảng dạy một cách tận tâm, đầy nhiệt huyết cũng như truyền
tải nhiều kiến thức bổ ích cho nhóm em nói riêng và cả lớp nói chung ạ!
TÀI LIỆU THAM KHẢO
Tài liệu tiếng Việt
1. Học viện Ngân hàng - Khoa Hệ thống thông tin quản lý (2022), Slide bài giảng
Trí tuệ nhân tạo trong kinh doanh, Hà Nội.
Tài liệu trực tuyến
2. Thị giác máy tính, Wikipedia,
/>%ADnh
3. “Cơng nghệ AI nhận diện khuôn mặt”, Vinlife Tech, />4. “Xử lý ảnh sử dụng Neural Network - AI - Machine Learning cơ bản”,
VNcoder, />NF6gMwvd2
5. “What is a Convolutional Neural Network?”, Mathworks,
/>6. “Thuật toán CNN – Convolutional Neural Network”, TOPDev,
/>