Các số liệu, tài liệu ban đầu: Mô hình phân loại độ tuổi và giới tính bao gồm các số liệu như sau: - Các tài liệu: những bài báo trong nước và ngoài nước liên quan đến nhận dạng khuôn
Trang 1THÀNH PHỐ HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
SVTH:
ĐỒ ÁN TỐT NGHIỆPNGÀNH CNKT ĐIẸN TỬ - VIỄN THÔNG
THIẾT KẾ MÔ HÌNH MẠNG CNN ỨNG DỤNG TRONG NHẬN DẠNG ĐỘ TUỔI VÀ GIƠI TÍNH
GVHD: TRƯƠNG NGỌC SƠN
NGUYỄN THỊ HỒNG GẤM
LÊ THỊ QUỲNH NHI
S K L 0 0 9 3 4 9
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
ĐỒ ÁN TỐT NGHIỆP
THIẾT KẾ MÔ HÌNH MẠNG CNN ỨNG DỤNG TRONG NHẬN DẠNG ĐỘ TUỔI VÀ GIỚI TÍNH
NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN THÔNG
Sinh viên thực hiện:
NGUYỄN THỊ HỒNG GẤM 18161067
LÊ THỊ QUỲNH NHI 18142050
Giảng viên hướng dẫn:
PGS.TS TRƯƠNG NGỌC SƠN
Trang 3CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
-*** -
TP Hồ Chí Minh, ngày 30 tháng 7 năm 2022
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP
Họ và tên sinh viên 1: Lê Thị Quỳnh Nhi
Họ và tên sinh viên 2: Nguyễn Thị Hồng Gấm
MSSV: 18142050 MSSV: 18161067
Giảng viên hướng dẫn: PGS TS Trương Ngọc Sơn
1 Tên đề tài: Thiết kế mô hình mạng CNN ứng dụng trong nhận dạng độ tuổi và
giới tính
2 Các số liệu, tài liệu ban đầu: Mô hình phân loại độ tuổi và giới tính bao gồm
các số liệu như sau:
- Các tài liệu: những bài báo trong nước và ngoài nước liên quan đến nhận dạng khuôn mặt, nhận dạng độ tuổi, giới tính và các vấn đề liên quan đến nhận dạng thuộc tính trên khuôn mặt Các trang web có chứa thông tin liên quan đến đề tài như tập dữ liệu, các kiến trúc mạng trong CNN, phương pháp
cải thiện độ chính xác
- Các số liệu: bộ cơ sở dữ liệu dùng để huấn luyện và kiểm tra được thu thập gồm 18000 hình ảnh ở nhiều độ tuổi khác nhau Sử dụng kiến trúc mạng
VGG16, trọng số từ mô hình YuNet để phát hiện khuôn mặt
3 Nội dung thực hiện đề tài:
- Tìm hiểu cơ sở lý thuyết liên quan đến mạng CNN, kiến trúc VGG16
- Tạo một tập dữ liệu mới (gồm 18000 ảnh) Sắp xếp, phân chia tập dữ liệu để
số lượng ảnh trong mỗi độ tuổi được cân bằng
- Điều chỉnh các thông số và số lớp trong kiến trúc mạng Áp dụng phương
pháp tối ưu hóa để nâng cao độ chính xác cho cả phân loại độ tuổi, giới tính
- Thực thi mô hình, dựa trên kết quả về độ chính xác khi nhận dạng để điều
chỉnh thông số, đưa ra nhận xét và đánh giá
4 Sản phẩm: Mô hình nhận dạng được độ tuổi, giới tính thời gian thực dựa trên
khuôn mặt thông qua webcam và hiển thị kết quả dự đoán trên ứng dụng web
Trang 4CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
-*** -
TP Hồ Chí Minh, ngày 30 tháng 7 năm 2022
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
Họ và tên sinh viên 1: Lê Thị Quỳnh Nhi
Họ và tên sinh viên 2: Nguyễn Thị Hồng Gấm
MSSV: 18142050 MSSV: 18161067 Ngành: CNKT Điện tử - Viễn thông
Tên đề tài: Thiết kế mô hình mạng CNN ứng dụng trong nhận dạng độ tuổi và giới tính
Họ và tên Giảng viên hướng dẫn: PGS.TS Trương Ngọc Sơn
NHẬN XÉT:
1 Về nội dung và khối lượng thực hiện:
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:………… (Bằng chữ:……… )
GIẢNG VIÊN HƯỚNG DẪN
Trang 5CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – Tự do – Hạnh phúc
-*** -
TP Hồ Chí Minh, ngày 30 tháng 7 năm 2022
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN
Họ và tên sinh viên 1: Lê Thị Quỳnh Nhi
Họ và tên sinh viên 2: Nguyễn Thị Hồng Gấm
MSSV: 18142050 MSSV: 18161067 Ngành: CNKT Điện tử - Viễn thông
Tên đề tài: Thiết kế mô hình mạng CNN ứng dụng trong nhận dạng độ tuổi và giới
2 Ưu điểm:
3 Khuyết điểm:
4 Đề nghị cho bảo vệ hay không?
5 Đánh giá loại:
6 Điểm:………… (Bằng chữ:……….)
GIẢNG VIÊN PHẢN BIỆN
Trang 6LỜI CẢM ƠN
Lời đầu tiên, nhóm thực hiện đề tài đồ án tốt nghiệp xin gửi lời cảm ơn chân thành đến Giảng viên hướng dẫn Thầy Trương Ngọc Sơn Trong suốt quá trình nhóm thực hiện đề tài, Thầy đã đưa ra những chỉ dẫn cũng như giải đáp thắc mắc và góp ý cho nhóm
Nhóm xin chân thành gửi lời cảm ơn đến các Thầy, Cô trong khoa Đào tạo Chất lượng cao đã hướng dẫn, truyền đạt lại kiến thức và kinh nghiệm quý giá, tạo điều kiện thuận lợi giúp cho nhóm có thể hoàn thành được đề tài
Ngoài ra, nhóm thực hiện đề tài cũng xin cảm ơn anh, chị và các bạn cùng khóa
đã nhiệt tình chia sẻ kiến thức, cũng như góp ý giúp nhóm hoàn thành đồ án tốt hơn Cuối cùng, mặc dù nhóm đã cố gắng hoàn thành các công việc, nhiệm vụ mà đề tài đặt ra, tuy nhiên vì chưa có nhiều kinh nghiệm và kiến thức của nhóm còn nhiều hạn chế nên sẽ không thể tránh khỏi những thiếu sót trong quá trình thực hiện, trình bày đề tài Nhóm mong Thầy, Cô thông cảm và rất mong nhận được những ý kiến đóng góp từ Thầy, Cô
Nhóm xin chân thành cảm ơn!
Trang 7LỜI CAM ĐOAN
Nhóm thực hiện đồ án tốt nghiệp cam đoan không sao chép nội dung và kết quả của các công trình khác Tỷ lệ trùng lắp với các tài liệu khác là 28%, các nội dung
tham khảo trong đề tài đã được nhóm trích dẫn đầy đủ
Đại diện nhóm thực hiện đồ án tốt nghiệp (ký và ghi rõ họ tên)
Trang 8MỤC LỤC
NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP i
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN ii
PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN iii
LỜI CẢM ƠN iv
LỜI CAM ĐOAN v
MỤC LỤC vi
DANH MỤC BẢNG BIỂU ix
DANH MỤC HÌNH ẢNH x
DANH MỤC TỪ VIẾT TẮT xii
TÓM TẮT xiii
CHƯƠNG 1: TỔNG QUAN 1
1.1 GIỚI THIỆU 1
1.2 MỤC TIÊU ĐỀ TÀI 2
1.3 GIỚI HẠN ĐỀ TÀI 2
1.4 PHƯƠNG PHÁP NGHIÊN CỨU 3
1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 3
1.6 BỐ CỤC QUYỂN BÁO CÁO 3
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4
2.1 GIỚI THIỆU MẠNG NƠ-RON TÍCH CHẬP 4
2.1.1 Tổng quan về mạng nơ-ron tích chập 4
2.1.2 Điểm đặc trưng của mạng nơ-ron tích chập 4
2.2 CẤU TRÚC MẠNG NƠ-RON TÍCH CHẬP 5
2.2.1 Lớp tích chập (Convolution layer) 6
2.2.2 Lớp gộp (Pooling layer) 9
2.2.3 Lớp kết nối đầy đủ (Fully Connected Layer) 10
2.3 KIẾN TRÚC MẠNG VGG 11
Trang 92.3.1 Tổng quan về mạng VGG 11
2.3.2 Kiến trúc của mạng VGG16 12
2.4 BỘ CƠ SỞ DỮ LIỆU (DATASET) 14
CHƯƠNG 3: THIẾT KẾ MÔ HÌNH PHÂN LOẠI ĐỘ TUỔI VÀ GIỚI TÍNH 18
3.1 XỬ LÝ BỘ CƠ SỞ DỮ LIỆU (DATASET) 18
3.1.1 Sắp xếp và phân chia tập dữ liệu 18
3.2.1 Phân tích tập dữ liệu 19
3.2 TỔNG QUAN QUY TRÌNH THỰC HIỆN 21
3.2.1 Sơ lược về quy trình thực hiện 21
3.2.2 Phương pháp thực hiện 22
3.3 PHÂN TÍCH KIẾN TRÚC MÔ HÌNH XỬ LÝ 24
3.3.1 Mô hình phát hiện khuôn mặt (Face detection) 24
3.3.2 Kiến trúc mô hình xử lý dùng mạng VGG16 25
3.3.3 Phương pháp cho từng nhiệm vụ phân loại 27
3.3.3.1 Phân loại giới tính 27
3.3.3.2 Phân loại độ tuổi 28
3.3.4 Thuật toán được sử dụng trong mô hình 30
CHƯƠNG 4: KẾT QUẢ VÀ ĐÁNH GIÁ 31
4.1 KẾT QUẢ XÂY DỰNG MÔ HÌNH 31
4.2 KẾT QUẢ HUẤN LUYỆN MÔ HÌNH 33
4.2.1 Giới tính 33
4.2.1.1 Kết quả huấn luyện 33
4.2.1.2 Ma trận nhầm lẫn (confusion matrix) 34
4.2.2 Độ tuổi 37
4.2.2.1 Kết quả huấn luyện 37
4.2.2.2 Ma trận nhầm lẫn 37
4.3 KẾT QUẢ THỰC NGHIỆM 39
Trang 104.3.1 Kết quả nhận dạng khuôn mặt ở điều kiện bình thường 39
4.3.2 Kết quả nhận dạng khuôn mặt ở điều kiện không tốt 43
4.3.3 Kết quả tổng quan 44
CHƯƠNG 5: KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN 46
5.1 KẾT LUẬN 46
5.1.1 Đối với kết quả phân loại độ tuổi 46
5.1.2 Đối với kết quả phân loại giới tính 46
5.1.3 Kết quả nhận dạng trực tiếp độ tuổi và giới tính thông qua webcam 46
5.2 PHƯƠNG HƯỚNG PHÁT TRIỂN 46
TÀI LIỆU THAM KHẢO 48
Trang 11DANH MỤC BẢNG BIỂU
Bảng 3.1 Tỷ lệ phần trăm khuôn mặt nhóm người châu Á và các châu lục khác của
bộ dữ liệu 19
Bảng 3.2 Sự phân chia số lượng hình ảnh trong tập dữ liệu độ tuổi 19
Bảng 3.3 Sự phân chia số lượng ảnh trong tập dữ liệu giới tính 20
Bảng 3.4 Bảng phân chia tỷ lệ trong quá trình huấn luyện 20
Bảng 4.1 Trọng số kết nối của mô hình mạng VGG16 cho giới tính 31
Bảng 4.2 Trọng số kết nối của mô hình mạng VGG16 cho độ tuổi 32
Bảng 4.3 Ma trận nhầm lẫn cho bài toán giới tính 34
Bảng 4.4 Ma trận nhầm lẫn của mô hình phân loại độ tuổi 38
Bảng 4.5 Giá trị Precision, Recall, F1 của độ tuổi 39
Bảng 4.6 Kết quả nhận dạng độ tuổi, giới tính ở một số điều kiện khác nhau 44
Trang 12DANH MỤC HÌNH ẢNH
Hình 2.1 Cấu trúc mạng nơ-ron tích chập [9] 6
Hình 2.2 Ví dụ về phép tích chập với hình ảnh đầu vào (6x6x3) và bộ lọc (3x3x3) [10] 7
Hình 2.3 Ví dụ khi bước trượt (stride) bằng 1 7
Hình 2.4 Hình ảnh ngõ ra sau khi thêm padding 8
Hình 2.5 Các dạng hàm kích hoạt phổ biến 8
Hình 2.6 Phương pháp Max pooling [11] 10
Hình 2.7 Phương pháp Average Pooling [11] 10
Hình 2.8 Chuyển đổi vector 2 chiều thành 1 chiều [11] 10
Hình 2.9 Cấu trúc của lớp kết nối đầy đủ 11
Hình 2.10 Kiến trúc mạng VGG16 [9] 13
Hình 2.11 Một vài hình ảnh trích từ tập UTKFace 15
Hình 2.12 Một vài hình ảnh trích từ tập dữ liệu VN-celeb 16
Hình 2.13 Minh họa một vài hình ảnh thu thập từ Google Image, Getty Images và Dreamstime 16
Hình 2.14 Những hình ảnh bị loại bỏ khỏi tập dữ liệu 17
Hình 3.1 Ảnh minh họa cho cách đặt tên ảnh trong tập dữ liệu 18
Hình 3.2 Sơ đồ khối mô hình nhận dạng độ tuổi, giới tính 21
Hình 3.3 Sự thay đổi cấu trúc mô hình huấn luyện 23
Hình 3.4 Xác định các điểm mốc để phát hiện khuôn mặt 24
Hình 3.5 Kiến trúc mô hình phân loại độ tuổi, giới tính 25
Hình 3.6 Sơ đồ khối VGG1 và khối VGG2 25
Hình 3.7 Sơ đồ khối VGG3 và khối VGG4 26
Hình 3.8 Mô tả chi tiết lớp kết nối đầy đủ (FC) 27
Hình 3.9 Nhãn của dữ liệu ảnh 29
Hình 3.10 Minh họa giá trị nhãn thật và nhãn dự đoán 29
Hình 4.1 Kết quả của huấn luyện mô hình giới tính 34
Trang 13Hình 4.2 Ma trận nhầm lẫn trong mô hình phân loại giới tính 36
Hình 4.3 Kết quả huấn luyện độ tuổi 37
Hình 4.4 Ma trận nhầm lẫn của mô hình phân loại độ tuổi 38
Hình 4.5 Kết quả nhận dạng nữ nhóm tuổi (1 – 9) 40
Hình 4.6 Kết quả nhận dạng nam nhóm tuổi (10 – 19) 40
Hình 4.7 Kết quả nhận dạng nữ ở nhóm tuổi (20 – 29) 41
Hình 4.8 Kết quả nhận dạng nam ở nhóm tuổi (20 – 29) 41
Hình 4.9 Kết quả nhận dạng nữ ở nhóm tuổi (50 – 59) 42
Hình 4.10 Kết quả nhận dạng nam ở nhóm tuổi (40 – 49) 42
Hình 4.11 Kết quả nhận dạng nam ở nhóm tuổi (20 – 29) 43
Hình 4.12 Kết quả nhận dạng đối với nữ ở nhóm tuổi (50 – 59) 43
Hình 4.13 Kết quả nhận dạng nữ nhóm tuổi (60 – 69) 44
Trang 14DANH MỤC TỪ VIẾT TẮT
AI Artificial Intelligence
ANN Artificial Neural Network
CNN Convolutional Neural Network
CPU Central Processing Unit
DNN Deep Neural Network
FC Fully Connected layer
GPU Graphics Processing Unit
MNIST Modified National Institute of Standards and Technology database
Trang 15TÓM TẮT
Trong thời kì bùng nổ về kỹ thuật, công nghệ như hiện nay thì Trí tuệ nhân tạo (AI) đang nắm giữ vai trò rất quan trọng và được ứng dụng ngày càng nhiều trong các lĩnh vực công nghệ hiện đại Thách thức chính đối với AI là sử dụng máy tính để
xử lý các nhiệm vụ mà con người giải quyết bằng trực giác và não bộ Do đó các hệ thống AI phải có khả năng “bắt chước” chức năng nhận thức của con người, phân tích
dữ liệu, tiếp thu kiến thức, học hỏi và đưa ra các quyết định Để thực hiện được những chức năng này thì máy tính phải học tập và được huấn luyện hay còn được gọi là Học máy (Machine Learning), và Học sâu (Deap Learning) là một trong những cách tiếp cận đến Học máy được dùng phổ biến nhất Những năm gần đây, mô hình mạng nơ-ron tích chập (CNN) dựa trên Học sâu đã tạo nên một làn sóng bùng nổ trong lĩnh vực Thị giác máy tính do hiệu suất tuyệt vời của nó trong nhiệm vụ phân loại cũng như nhận dạng Đặc biệt phải nhắc đến là bài toán nhận dạng hay phát hiện khuôn mặt người và đi cùng với nó là nhận dạng cảm xúc, dân tộc, độ tuổi, giới tính Trong
đề tài này, quá trình nhận dạng độ tuổi, giới tính dựa trên khuôn mặt sẽ được nhóm thực hiện bằng cách xây dựng mô hình dùng mạng nơ-ron tích chập dựa trên kiến trúc mạng VGG16 Mô hình được huấn luyện giúp nhận dạng được đồng thời độ tuổi và giới tính của một người thông qua camera, kết quả dự đoán sẽ được hiển thị trên web
để dễ dàng quan sát
Trang 16CHƯƠNG 1: TỔNG QUAN 1.1 GIỚI THIỆU
Mặc dù đã được các nhà nghiên cứu quan tâm và đề cập từ những năm 1955, nhưng đến hiện tại thì Trí tuệ nhân tạo (AI) mới thực sự được biết đến phổ biến ở hầu hết các quốc gia trên toàn thế giới Cuốn theo dòng chảy của cuộc Cách mạng công nghiệp 4.0, AI đã và đang phát triển rộng rãi, dần tham gia nhiều hơn vào các hoạt động của đời sống hàng ngày Một trong những nhánh chính của AI là Học máy (Machine Learning), với ưu điểm là có thể xử lý được lượng dữ liệu khổng lồ giúp cho việc huấn luyện, phân tích dữ liệu… trở nên hiệu quả hơn Thêm vào đó là sự đa dạng của các thuật toán Học sâu đã hỗ trợ rất nhiều trong việc xây dựng mô hình cho các bài toán trong lĩnh vực Thị giác máy tính Không chỉ dừng lại ở việc nhận diện đối tượng trong ảnh mà ngày nay Thị giác máy tính ngày càng được mở rộng hơn trong các bài toán khác như nhận dạng, phân loại biển báo giao thông, nhận diện giọng nói, khuôn mặt, cử chỉ và hành động… Đặc biệt, có thể thấy việc nhận dạng khuôn mặt trong vài năm gần đây rất phát triển và được ứng dụng rộng rãi Ngoài việc dựa vào khuôn mặt để xác định danh tính của đối tượng thì việc nhận diện cảm xúc, biểu cảm trên khuôn mặt hay giới tính và độ tuổi của họ cũng đang được quan tâm khá nhiều Thông thường việc nhận diện này đối với con người khá dễ dàng, nhưng việc cho máy móc nhận dạng đúng được độ tuổi, giới tính là một vấn đề phức tạp cũng như cần rất nhiều thời gian để nghiên cứu và phát triển Sau khi xây dựng được mô hình nhận dạng, nó có thể làm tiền đề cơ sở cho các ứng dụng liên quan ví
dụ như phân loại tuổi và giới tính tự động trong lĩnh vực thương mại, truyền thông Hay hướng đến ứng dụng cụ thể trong những trang web thương mại điện tử, giúp gợi
ý sản phẩm cho khách hàng dựa theo từng độ tuổi và giới tính của họ, từ đó các gợi
ý đưa ra cho từng cá nhân sẽ phù hợp hơn
Nhận thấy sự cần thiết của việc nhận dạng tuổi và giới tính dựa trên máy móc,
từ lâu các nhà nghiên cứu đã bắt đầu đưa ra các giải quyết cho bài toán này Năm
1990, Cattrel và Matcalfe đưa ra nghiên cứu sơ bộ cho mô hình nhận dạng giới tính, cảm xúc dùng Holo với bộ dữ liệu gồm 160 ảnh khuôn mặt của 10 đối tượng nam và
10 đối tượng nữ [1] Năm 1994, Kwon và Lobo đã đi đầu trong việc xây dựng bài toán ước lượng độ tuổi từ ảnh chụp khuôn mặt với ba loại đối tượng là trẻ sơ sinh, thanh niên và người già [2] Nhưng các bài toán thường là tách rời nhau, các mô hình nghiên cứu có nhiệm vụ riêng biệt và vẫn còn hạn chế trong quá trình nhận diện Gần đây, sự kết hợp nhận dạng đồng thời cả độ tuổi và giới tính cũng đã và đang được cải tiến để nâng cao độ chính xác Gần đây hơn vào năm 2015, Gil Levi cùng Tal Hassncer đã dùng CNN để phân loại độ tuổi và giới tính dựa trên tập dữ liệu Audience
Trang 17benchmark gồm các khuôn mặt chưa được lọc [3] Từ nghiên cứu của Gil Levi và cộng sự cho thấy CNN có thể được sử dụng để huấn luyện mô hình và đưa ra các kết quả phân loại theo độ tuổi, giới tính được cải thiện khá nhiều
Có thể thấy đã có rất nhiều những nghiên cứu ngoài nước liên quan đến nhận dạng độ tuổi và giới tính như được nêu ở trên, nhưng trong nước thì đây vẫn là một
đề tài đang được tìm hiểu cũng như có khá ít bài báo tập trung về đề tài này Và đa
số độ tuổi trong các nghiên cứu được phân chia thành các nhóm nhỏ như (0 – 2), (4 – 6), (8 – 13), (15 – 20), (25 – 32), (38 – 43), (48 – 53) và (60 – 100) [3], [4], [5] Giữa các nhóm tuổi có khoảng cách khá xa và một số độ tuổi không nằm trong nhóm tuổi đó sẽ không được phân loại hay nhận dạng
Dựa trên những phân tích liên quan đến đề tài, nhóm vẫn sử dụng mô hình mạng CNN dựa trên kiến trúc VGG sẵn có, tuy nhiên điểm khác biệt đó là nhóm thực hiện tạo môt bộ cơ sở dữ liệu (dataset) mới, thay đổi các lớp trong mô hình mạng và chia lại tỷ lệ nhóm tuổi Với mục tiêu nhận diện độ tuổi, giới tính thời gian thực cùng
một lúc, nhóm lựa chọn thực hiện đề tài “Thiết kế mô hình mạng CNN ứng dụng trong nhận dạng độ tuổi và giới tính” Mô hình định hướng đến việc phân chia các nhóm
tuổi với độ tuổi liên tiếp để có thể nhận dạng khuôn mặt ở mọi độ tuổi và giới tính
- Mô hình mạng CNN được thiết kế dựa trên kiến trúc VGG16 Tuy nhiên thay đổi một số thông số để phù hợp với tập dữ liệu mà mục tiêu phân loại độ tuổi, giới tính
- Dữ liệu đầu vào được nhận dạng thời gian thực thông qua camera laptop và kết quả hiển thị độ tuổi, giới tính trên màn hình thông qua web
1.3 GIỚI HẠN ĐỀ TÀI
Đề tài chỉ tập trung nghiên cứu nhận dạng độ tuổi và giới tính dựa vào tập dữ liệu bao gồm các khuôn mặt được chụp cận mặt ở điều kiện ban ngày, đủ ánh sáng, góc chụp là trực diện
Trang 181.4 PHƯƠNG PHÁP NGHIÊN CỨU
- Tìm hiểu về lý thuyết của mạng nơ-ron tích chập, kiến trúc mạng VGG16
- Tạo bộ cơ sở dữ liệu mới gồm 18000 ảnh
- Nghiên cứu bài toán về phân loại độ tuổi, giới tính
- Thiết kế, xây dựng mô hình phát hiện khuôn mặt, phân loại tuổi và giới tính
- Tìm hiểu các phương pháp cải thiện độ chính xác, dựa trên độ chính xác để thay đổi các thông số trong mô hình mạng sao cho tối ưu
- Phân tích và đánh giá mô hình mạng
1.5 ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU
- Đối tượng nghiên cứu: mạng nơ-ron tích chập, kiến trúc mạng VGG16 Tập
dữ liệu UTKFace, VN-celeb… Mô hình mạng dùng để phát hiện khuôn mặt, phân loại độ tuổi, giới tính
- Phạm vi nghiên cứu: nghiên cứu từ những mô hình đã có, áp dụng kiến trúc VGG16 vào mô hình huấn luyện Một số phương pháp cải thiện độ chính xác
1.6 BỐ CỤC QUYỂN BÁO CÁO
Nội dung của đề tài được trình bày bao gồm 5 chương như sau:
- Chương 1 GIỚI THIỆU: giới thiệu chung về đề tài, mục tiêu nghiên cứu,
giới hạn đề tài, phương pháp nghiên cứu, đối tượng và phạm vi nghiên cứu
- Chương 2 CƠ SỞ LÝ THUYẾT: giới thiệu tổng quan về mạng nơ-ron tích
chập, kiến trúc mạng nơ-ron tích chập Lý thuyết về kiến trúc mạng VGG16
và quá trình thu thập ảnh để làm bộ cơ sở dữ liệu
- Chương 3 THIẾT KẾ MÔ HÌNH PHÂN LOẠI ĐỘ TUỔI VÀ GIỚI
TÍNH: trình bày chi tiết cách sắp xếp, phân chia số lượng hình ảnh trong tập
dữ liệu Đưa ra tổng quan quá trình xử lý của mô hình, các khối trong mô hình Phân tích kiến trúc mạng được dùng để huấn luyện
- Chương 4 KẾT QUẢ: chương này trình bày kết quả sau khi huấn luyện mô
hình và kết quả nhận dạng độ tuổi và giới tính dựa trên khuôn mặt trong điều kiện thực tế
kết luận về kết quả sau khi huấn luyện mô hình cũng như kết quả thực nghiệm Đề ra hướng phát triển cho đề tài
Trang 19CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 GIỚI THIỆU MẠNG NƠ-RON TÍCH CHẬP
2.1.1 Tổng quan về mạng nơ-ron tích chập
Thuật ngữ Học sâu (DL) hay cụ thể hơn là mạng nơ-ron sâu (DNN) dùng để chỉ mạng thần kinh nhân tạo (ANN) với nhiều lớp ẩn [6] Những năm qua, Học sâu đã được biết đến là một trong những phương pháp phổ biến và mạnh mẽ nhất trong việc
mô phỏng lại chức năng, cách thức hoạt động phức tạp của não bộ con người Và mạng nơ-ron tích chập (CNN) là một trong những mạng nơ-ron sâu được biết đến rộng rãi nhất, hay nó có tên gọi khác là ConvNet Năm 1998, mạng CNN được giới thiệu bởi nhóm Yann LeCun, Bottou, Bengio và Haffner [7] thông qua mô hình nhận dạng chữ số viết tay sử dụng kiến trúc mạng LeNet-5 CNN đã dần trở nên nổi tiếng hơn khi nó được áp dụng vào kiến trúc Alexnet và đạt giải nhất trong cuộc thi ImageNet (ILSVRC) Tên của mô hình mạng này được đặt dựa trên một phép tính dùng trong mạng, phép tính này ảnh hưởng rất nhiều đến mô hình nhận dạng và tạo
Mô hình mạng nơ-ron tích chập ngày càng phát triển và mở rộng, được ứng dụng vào các hệ thống xử lý hình ảnh lớn của Google, Amazon hay Facebook với nhiều mục đích sử dụng khác nhau Ví dụ như chức năng tự động nhận dạng khuôn mặt khi ảnh được đăng tải lên Facebook, hay khi nhập một từ khóa bất kì lên Google thì trong mục Hình ảnh (Image) sẽ hiện lên rất nhiều ảnh liên quan đến từ khóa đó Bên cạnh đó còn có nhiều ứng dụng khác như FaceID ở các điện thoại thông minh, công nghệ phát hiện ra đối tượng trong hình ảnh rồi làm sắc nét các đặc trưng của chúng sau khi phóng to của Lightroom…
2.1.2 Điểm đặc trưng của mạng nơ-ron tích chập
CNN được tạo thành bởi các nơ-ron mang trọng số (weight) và sai số hay còn gọi là độ lệch (bias) Mỗi nơ-ron được nhận một số dữ liệu ở đầu vào, sau đó thực hiện hàng loạt các phép tính nhân chập và chọn một hàm truyền phù hợp để đưa ra
dự đoán Ở mạng nơ-ron nhân tạo truyền thống, liên kết đầy đủ giữa tất cả các nơ-ron
Trang 20với nhau gây ra sự dư thừa do các điểm ảnh về cơ bản chỉ chủ yếu bị ảnh hưởng với nhau hay với những điểm ảnh xung quanh nó mà không phụ thuộc nhiều đến các điểm ảnh nằm cách xa khác Ngoài ra mạng nơ-ron truyền thống còn bị giới hạn bởi kích thước ảnh, khi ảnh có kích thước càng lớn thì số lượng liên kết càng cao dẫn đến sự bùng nổ về khối lượng tính toán [8] Mạng nơ-ron tích chập ra đời với kiến trúc được thay đổi, nó chỉ xây dựng các liên kết đến những nơ-ron cần thiết trong một vùng nhỏ
và sau khi trích xuất đặc trưng thì dữ liệu sẽ được làm phẳng thành véc-tơ của giá trị xác suất Khía cạnh có lợi nhất của nó là giảm số lượng tham số (parameters) trong ANN [6] Ngoài ra, việc áp dụng kiến trúc mạng CNN cho phép chúng ta xây dựng những mô hình với độ chính xác cao bằng cách sử dụng nhiều lớp xử lý có cấu trúc phức tạp hoá Từ đó thúc đẩy và phát triển những nghiên cứu tiếp cận tới các mô hình lớn để giải quyết được các nhiệm vụ phức tạp – điều mà ANN cổ điển không có khả năng thực hiện được
Điểm nổi bật của CNN so với các phương pháp khác trong Học máy truyền thống chính là độ lớn của tập dữ liệu dùng để huấn luyện Mặc dù, phương pháp truyền thống cũng có thể phân loại và gán nhãn, tuy nhiên vẫn còn giới hạn về kích thước tập dữ liệu Nhưng CNN đã giải quyết được vấn đề này khi huấn luyện với số lượng dữ liệu rất lớn và còn có thể đạt được độ chính xác cao Bên cạnh đó, điểm chung của các kiến trúc mạng nơ-ron tích chập là kích thước (chiều rộng, chiều cao) của các lớp giảm dần, song song đó thì độ sâu cũng sẽ tăng dần Khi kích thước của
ma trận giảm thì số lượng tham số cũng sẽ giảm đáng kể trong khi độ chính xác của
mô hình không bị giảm nhiều Số bộ lọc tăng làm tăng độ sâu giúp mạng CNN học được đa dạng và có thể phân biệt được nhiều chi tiết đặc trưng hơn
2.2 CẤU TRÚC MẠNG NƠ-RON TÍCH CHẬP
Trong mạng nơ-ron tích chập, dữ liệu ảnh đầu vào sẽ được chuyển thành ma
trận pixel (với mỗi pixel có giá trị thay đổi từ 0 đến 255) ứng với kích thước [w x h x d], trong đó w là chiều rộng (width), h là chiều cao (height), d là độ sâu (dimension)
hay đơn giản là số kênh màu của ảnh đầu vào Nếu ảnh là màu xám thì chỉ có một kênh màu, còn đối với ảnh màu sẽ có 3 kênh màu là Red, Green và Blue (RGB)
Ý tưởng chung của mô hình mạng CNN là nó thực hiện quá trình trích lọc hình ảnh đầu vào trước khi được đưa vào huấn luyện (training) [9] Quá trình này bao gồm các lớp ẩn (hidden) dùng để rút trích các đặc trưng có trong ảnh, sau đó tiến hành tính toán thông qua các lớp tích chập (Conv) và lớp Pooling Giả sử ảnh đầu vào là khuôn mặt của một người thì phần này sẽ nhận diện mắt, mũi, miệng… từ đó có thể phát hiện ra được khuôn mặt trên hình Phần tiếp theo là phân lớp, ở đây ta dùng một số
Trang 21lớp kết nối đầy đủ để kết nối tất cả nơ-ron lại với nhau và xử lý kết quả của phần tích chập
Hình 2.1 Cấu trúc mạng nơ-ron tích chập [9]
Như thể hiện ở Hình 2.1 thì một mô hình CNN cơ bản bao gồm những lớp sau: lớp tích chập (convolution layer), lớp gộp (pooling layer), lớp kết nối đầy đủ (fully connected layer) Tuỳ vào số lượng và cách sắp xếp các lớp sẽ xây dựng được những
mô hình khác nhau cũng như phù hợp với đặc điểm của từng bài toán
2.2.1 Lớp tích chập (Convolution layer)
Lớp tích chập hay còn gọi là lớp ẩn (hidden layer) được dùng với mục đích là làm giảm kích thước hình ảnh để dễ xử lý mà vẫn giữ được các đặc trưng của dữ liệu (ảnh) ngõ vào Trong đó, đặc trưng ảnh chính là những chi tiết như cạnh (ngang, chéo…), hình khối, hình tròn, hay phức tạp hơn như mắt, mũi, miệng, hình dạng khuôn mặt, con vật, xe, đèn giao thông Chúng ta sẽ dùng các bộ lọc để giữ lại những chi tiết quan trọng của bức ảnh, có nhiều bộ lọc được sử dụng phố biến như bộ lọc đường chéo, cạnh, góc, hình vuông, hình tròn… [9] Ở các lớp (layers) đầu tiên, phép tích chập chỉ thực hiện công việc đơn giản là tìm biên ảnh, các lớp tiếp theo sẽ có nhiệm vụ trích xuất tiếp các đặc trưng khác có trong ảnh Trong số rất nhiều điểm trên ảnh đầu vào nó sẽ lấy ra những điểm nổi bật nhất và tập hợp lại để làm hiện lên đặc trưng của đối tượng trong hình
Lớp tích chập chính là lớp quan trọng nhất và cũng là điểm làm cho CNN trở nên khác biệt hơn so với các mô hình mạng khác Một ví dụ cho lớp tích chập được biểu diễn ở Hình 2.2 bên dưới, ảnh ngõ vào với kích thước là 6x6x3 (6 hàng, 6 cột và
3 kênh màu) sử dụng bộ lọc 3x3x3 sau đó dùng phép tích chập để tính toán và cho ra một giá trị duy nhất Ngõ ra của lớp tích chập sau khi được tính toán (ở ví dụ này đầu
ra có kích thước 4x4) là một tập mang các giá trị đặc trưng của hình ảnh đầu vào hay
còn gọi là features map
Trang 22Hình 2.2 Ví dụ về phép tích chập với hình ảnh đầu vào (6x6x3) và bộ lọc
Stride (bước trượt): chính là khoảng cách mà bộ lọc di chuyển mỗi lần dịch Ví
dụ chúng ta cho stride = 1 thì sau khi tính toán xong tại một vùng ảnh, bộ lọc sẽ được dịch sang phải 1 pixel, cho đến khi dịch hết một hàng sẽ tiếp tục dịch xuống dưới một đơn vị và lặp lại cho đến khi bộ lọc dịch hết ảnh như Hình 2.3 bên dưới
Hình 2.3 Ví dụ khi bước trượt (stride) bằng 1
Padding (đệm): là phương pháp thêm giá trị 0 ở ngoài viền của ảnh ngõ vào (thêm cột 0 và hàng 0 vào ma trận input) Được chia thành 2 loại là: valid và same Valid chính là không dùng padding, ta sẽ sử dụng bộ lọc trực tiếp lên ngõ vào Same
sẽ thêm padding, làm cho ngõ ra có cùng kích thước với ngõ vào Để rõ hơn ta xét một ảnh vào có kích thước là 5x5, bộ lọc 3x3, stride = 1 Để ngõ ra cũng có kích thước là
Trang 235x5 ta sẽ thêm số 0 ở ngoài viền ngõ vào sau đó mới áp bộ lọc lên Ví dụ được minh hoạ như Hình 2.4 bên dưới
Hình 2.4 Hình ảnh ngõ ra sau khi thêm padding
Feature map (mạng đặc trưng): là ngõ ra của ảnh đầu vào khi bộ lọc được dịch
chuyển trên hết bức ảnh với phép tích vô hướng Có thể nói feature map sẽ lọc các đặc trưng của ngõ vào ví dụ như đường viền, cạnh, góc… và các lớp tiếp theo sẽ trích xuất tiếp những đặc trưng của ngõ vào đó, bằng cách sử dụng nhiều lớp như vậy sẽ chia nhỏ được các đặc trưng của ảnh nhất có thể Công thức (1) được dùng để tính kích thước ma trận ngõ ra là:
s: là bước trượt (stride)
Hàm kích hoạt (activation function): Hàm này được dùng nhằm đảm bảo tính
phi tuyến của mô hình huấn luyện sau quá trình thực hiện một loạt phép tính ở lớp tích chập Các hàm kích hoạt phi tuyến chuyên dùng như hàm Sigmoid, hàm Tanh và hàm ReLU như được thể hiện ở Hình 2.5 bên dưới:
Hình 2.5 Các dạng hàm kích hoạt phổ biến
Trang 24Hàm Sigmoid: công thức σ = 1
1+ 𝑒 −𝑥 có giá trị ngõ ra nằm trong khoảng (0, 1)
Ưu điểm của hàm này là việc thực hiện phép đạo hàm đơn giản hơn các hàm khác nên giảm thiểu được khối lượng tính toán trong quá trình huấn luyện Tuy nhiên, nhược điểm của hàm Sigmoid là gây ra hiện tượng Vanishing gradient (giá trị cập nhật tiến dần về 0 dẫn đến không cập nhật tham số)
𝑥 − 𝑒−𝑥
𝑒 𝑥 + 𝑒 −𝑥 có giá trị ngõ ra (-1, 1) Hàm Tanh cũng có hiện tượng Vanishing gradient nhưng hàm này có giá trị kì vọng bằng 0 giúp cho việc học ở các lớp sâu nhanh hơn
Hàm ReLU: có công thức là f(x) = max (0, x) Hàm ReLU được hiểu đơn giản
hơn là giữ lại giá trị lớn hơn 0, còn những giá trị nhỏ hơn 0 sẽ được xem là bằng 0 Với ưu điểm là tốc độ hội tụ và khả năng tính toán nhanh, hiện nay hầu hết các mô hình CNN đều sử dụng hàm ReLU trong quá trình huấn luyện
Trong lớp tích chập này, hàm ReLU được dùng nhiều hơn thay vì hàm Sigmod
hay hàm Tanh vì nó hạn chế sự triệt tiêu của Gradient Descent, tốc độ xử lý nhanh,
đơn giản mà vẫn giữ được hiệu quả tốt trong khi tính toán Áp dụng hàm kích hoạt ReLU lên đầu ra của lớp tích chập, nhằm mục đích chuyển các giá trị âm của ngõ vào thành giá trị 0, giúp loại bỏ hết những giá trị âm không cần thiết gây ảnh hưởng đến việc tính toán ở các lớp tiếp theo
2.2.2 Lớp gộp (Pooling layer)
Đây là lớp được chèn vào giữa những lớp tích chập để giảm kích thước của dữ liệu bằng cách lấy mẫu (sampling) Mục đích của việc này là giúp giảm bớt số lượng nơ-ron và đơn giản hóa thông tin ngõ ra nhưng sẽ vẫn giữ được thông tin quan trọng của ma trận Thông thường, lớp gộp có nhiều phương thức phù hợp cho nhiều bài toán khác nhau, tuy nhiên hai phương pháp nổi bật nhất là Max Pooling (tổng hợp tối đa)
và Average Pooling (tổng hợp trung bình)
Max Pooling được sử dụng nhiều nhất với ý tưởng giữ lại những chi tiết có đặc
điểm nổi bật nhất hay nói cách khác chính giữ lại pixel có giá trị lớn nhất Bằng cách chia ngõ vào thành các ô cửa sổ (window), thông thường cửa sổ của Max Pooling là 2x2 (vì nếu lấy giá trị quá lớn, nó sẽ phá vỡ cấu trúc ảnh và làm ảnh hưởng đến dữ liệu ngõ vào), sử dụng bước trượt là 2 hay chính bằng với kích thước của ô cửa sổ để không bị trùng lặp Kích thước của ngõ ra sau khi đi qua lớp Max Pooling sẽ giảm đi một nửa nhưng vẫn giữ được những điểm nổi bật nhất của ngõ vào
Trang 25Ví dụ cho Max Pooling dùng bộ lọc 2x2, có bước trượt (stride) bằng 2 Bộ lọc
sẽ trượt theo chiều ngang và dọc của ảnh Và với mỗi vùng ảnh được áp bộ lọc lên sẽ chọn ra 1 giá trị lớn nhất và giữ lại như Hình 2.6 bên dưới
Hình 2.6 Phương pháp Max pooling [11]
Average Pooling (lấy giá trị trung bình) cũng khá phổ biến Hình ảnh cũng sẽ
được chia thành các cửa sổ tương tự như Max Pooling Tuy nhiên, ở phương pháp này những giá trị trong cửa sổ sẽ được cộng lại với nhau sau đó lấy trung bình của các phần tử, được minh hoạ như Hình 2.7
Hình 2.7 Phương pháp Average Pooling [11]
Tóm lại, chức năng chính của lớp gộp là làm giảm kích thước của đầu vào và giảm độ phức tạp tính toán, bên cạnh đó lớp gộp còn giúp kiểm soát hiện tượng overfitting (học quá mức)
2.2.3 Lớp kết nối đầy đủ (Fully Connected Layer)
Trước khi đưa ảnh vào lớp này, buộc phải chuyển đổi ngõ vào thành mảng một chiều hay nói cách khác là mảng nhiều chiều sẽ được làm phẳng (flatten) rồi chuyển đổi thành vector một chiều, sự chuyển đổi thể hiện ở Hình 2.8 bên dưới
Hình 2.8 Chuyển đổi vector 2 chiều thành 1 chiều [11]
Trang 26Trong lớp kết nối đầy đủ, mỗi nơ-ron của lớp này sẽ liên kết đến từng nơ-ron của lớp khác như Hình 2.9, cũng tương tự như một mạng nơ-ron truyền thống
Hình 2.9 Cấu trúc của lớp kết nối đầy đủ
Ngõ ra của lớp này sẽ thực hiện “bầu chọn” xem những đặc trưng thu được giống với kết quả hay nhãn đầu vào nào nhất, từ đó xác định được nhãn của dữ liệu đầu vào
là gì
Ở lớp cuối cùng thông thường sẽ dùng một số hàm như hàm Softmax, Sigmoid
để phân loại các đối tượng dựa trên đặc điểm của các vector đặc trưng đã được tính toán ở các lớp trước đó Trong bài toán phân lớp đa nhãn (multiclass classification) hàm Softmax được dùng phổ biến hơn vì những ưu điểm riêng của nó Cụ thể các giá trị đi qua hàm Softmax sẽ được chuyển đổi thành các giá trị xác suất, vì vậy ngõ ra lúc này chính là một vector xác suất dự đoán của các lớp Để hiểu rõ hơn ta xem công thức (2) sau:
softmax(z j ) = 𝑒𝑧𝑗
∑ 𝐾 𝑒 𝑧𝑘 𝑘=1
(2)
Softmax nhận đầu vào là một mảng số thực còn đầu ra là một phân phối xác suất với mỗi phần tử nằm trong khoảng [0 – 1] và tổng các phần tử là 1 (tương ứng với 100%)
2.3 KIẾN TRÚC MẠNG VGG
2.3.1 Tổng quan về mạng VGG
Trang 27Được ra mắt vào năm 2014 trong cuộc thi ImageNet, VGG đã biết đến rộng rãi với một số kiến trúc cải thiện hơn so với Alexnet Trong khi mạng LeNet và AlexNet
sử dụng các lớp theo thứ tự Conv-Maxpooling thì kiến trúc của VGG lại được xây dựng với các lớp Conv liên tiếp Conv-Conv-Conv [9] Nhờ vậy, những đặc trưng của
dữ liệu sẽ được giữ lại nhiều hơn so với việc dùng Maxpooling ngay sau lớp Conv, tuy nhiên việc tính toán cũng sẽ trở nên chậm hơn VGGNet là mạng nơ-ron tích chập sâu cơ bản Từ “sâu” đề cập đến số lượng các lớp với VGG16 gồm 16 lớp và VGG19 gồm 19 lớp phức hợp Kiến trúc VGG là cơ sở của các mô hình nhận dạng đối tượng mang tính đột phá và hiện nay nó là một trong những kiến trúc nhận dạng hình ảnh phổ biến nhất Kiến trúc sơ lược của VGGNet bao gồm:
Đầu vào: VGGNet có kích thước hình ảnh đầu vào là 224x224 Trong cuộc
thi ILSVRC, những người tạo ra mô hình đã sử dụng kích thước 224×224 trong mỗi hình ảnh để giữ cho kích thước dữ liệu ngõ vào được nhất quán Tuy nhiên, kích thước ảnh đầu vào có thể được tùy chỉnh để phù hợp hơn với các mô hình nhận dạng khác nhau
Các lớp tích chập (convolution layers): những lớp này dùng receptive field
(vùng mà filte trượt trên ảnh) tối thiểu là 3x3 Hơn nữa, còn có các bộ lọc tích chập 1x1 hoạt động như một phép biến đổi tuyến tính của ngõ vào Kế tiếp là hàm ReLU,
nó là một hàm tuyến tính giúp cải thiện khả năng huấn luyện Bước trượt (stride) được giữ cố định ở 1 pixel để giữ nguyên độ phân giải sau khi thực hiện tích chập
Các lớp ẩn (hidden layers): tất cả các lớp ẩn trong VGGNet đều dùng hàm
ReLU VGG thường không dùng Local Response Normalization (LRN) vì nó làm tăng thời gian huấn luyện và tiêu thụ bộ nhớ Hơn nữa, nó không cải thiện độ chính xác tổng thể
2.3.2 Kiến trúc của mạng VGG16
VGG16 là mạng nơ-ron tích chập được đưa ra bởi A Zisserman và K Simonyan Mô hình sau khi được huấn luyện bởi kiến trúc mạng VGG16 đã đạt độ chính xác cao lên đến 92.7% và đạt top 5 trong tập dữ liệu ImageNet gồm 14 triệu hình ảnh thuộc 1000 lớp khác nhau Kiến trúc của VGG16 được thể hiện như Hình 2.10 bên dưới
Trang 28Hình 2.10 Kiến trúc mạng VGG16 [9]
Trong kiến trúc VGG16 gồm có 16 lớp với 13 lớp tích chập (2 nhóm lớp tích chập liền nhau Conv-Conv và 3 nhóm lớp tích chập Conv-Conv-Conv), theo sau mỗi nhóm lớp Conv là lớp Maxpooling, cuối cùng là 3 lớp kết nối đầy đủ và 1 lớp ngõ ra Softmax Tổng tham số (parameters) trong mô hình là hơn 138 triệu tham số Cụ thể hơn, các lớp có các thông số như sau [8]:
- Lớp Conv1, Conv2: kích thước bộ lọc là (3x3x64) với số lượng tham số lần lượt
là 1.728 và 36.864
- Lớp Pooling 1: kích thước 2x2, stride = 2, padding = 0 Tạo ra feature map có
kích thước giảm một nửa còn (112x112x3) và giữ nguyên chiều sâu từ lớp Conv2
- Lớp Conv3, Conv4: kích thước bộ lọc là (3x3x128), số tham số lần lượt là
73.728 và 147.456
- Lớp Pooling 2: kích thước 2x2, stride = 2, padding = 0 Tạo ra feature map có
kích thước giảm đi một nửa còn (56x56x3), giữ nguyên chiều sâu từ đầu ra ở lớp trước
- Lớp Conv5, Conv6, Conv7: kích thước bộ lọc (3x3x256), số tham số lần lượt ở
lớp Conv5 là 294.912, ở lớp Conv6 và Conv7 bằng nhau là 589.824
- Lớp Pooling 3: kích thước 2x2, stride = 2, padding = 0 Tạo ra feature map có
kích thước giảm còn (28x28x3), giữ nguyên chiều sâu
- Lớp Conv8, Conv9 và Conv10: kích thước bộ lọc là (3x3x512) với số tham số
lần lượt ở lớp Conv8 là 1.179.648, lớp Conv9 và Conv10 bằng nhau là đều có 2.359.296 tham số
- Lớp Pooling 4: kích thước 2x2, stride = 2, padding = 0 Tạo ra feature map có
kích thước giảm còn (14x14x3), chiều sâu giữ nguyên
- Lớp Conv11, Conv12 và Conv13: kích thước bộ lọc (3x3x512), số tham số ở 3
lớp đều giống nhau là 2.359.296
- Lớp Pooling 5: kích thước 2x2, stride = 2, padding = 0 Tạo ra feature map có
kích thước giảm còn (7x7x3), chiều sâu giữ nguyên
Trang 29- Lớp Fully connected 1, 2, 3: số nơ-ron ở mỗi lớp đều bằng 4096 nơ-ron Số
tham số ở lớp FC1 là 102.760.448, ở lớp FC2 là 16.777.216 và ở lớp FC3 là 4.096.000
- Cuối cùng là ngõ ra hàm Softmax với 10.000 nơ-ron
Nhìn chung, các lớp Conv có kích thước kernel là 3x3 với các độ sâu khác nhau Càng về các lớp Conv sau thì kích thước của chiều dài, chiều rộng càng giảm nhưng depth (độ sâu) lại càng tăng, điều này giúp mô hình mạng học sâu hơn (phù hợp với bài toán nhận dạng và phân loại), giảm tham số tính toán cho mô hình Bên cạnh đó còn dùng hàm ReLU ngay sau mỗi Conv Sau khá nhiều lớp tích chập và lớp Pooling,
dữ liệu được làm phẳng (flatten) và đưa vào lớp kết nối đầy đủ (fully connected layer)
2.4 BỘ CƠ SỞ DỮ LIỆU (DATASET)
Trong đề tài này, nhóm thực hiện thu thập một bộ cơ sở dữ liệu hình ảnh mới bao gồm 18000 ảnh có kích thước bằng nhau là 224x224 pixel Trong hầu hết các bộ
dữ liệu được công bố hiện nay, tỷ lệ hình ảnh người phương Tây thường chiếm đa số, một số bộ dữ liệu khác cần phải có bản quyền để truy cập và sử dụng Vì các đặc trưng trên khuôn mặt người châu Á sẽ có nhiều điểm khác biệt so với người châu Âu, châu Mỹ… nên khi ứng dụng vào việc nhận dạng độ tuổi, giới tính trong môi trường
có nhiều người châu Á sẽ không đạt hiệu quả tối ưu Bên cạnh đó, đặc điểm chung của các tập dữ liệu công khai này là tỷ lệ giới tính (nam, nữ) và độ tuổi không cân bằng Với mục tiêu tạo ra sự đồng đều về tỷ lệ giới tính ở mọi độ tuổi cũng như cải thiện tỷ lệ phần trăm khuôn mặt của nhóm người châu Á, nhóm đã xây dựng một bộ
dữ liệu mới bằng cách thu thập hình ảnh từ nhiều nguồn khác nhau Một số nguồn chính bao gồm tập dữ liệu UTKFace chiếm khoảng 40% trên toàn bộ dữ liệu, bộ VN-celeb (Tập dữ liệu khuôn mặt người nổi tiếng Việt Nam) chiếm khoảng 30% và 30% còn lại đến từ các trang web như Google Image, Getty Images, Dreamstime
UTKFace là bộ cơ sở dữ liệu chứa đựng hơn 20.000 hình ảnh khuôn mặt đa dạng với tên ảnh được đặt để phân loại về dân tộc, giới tính và độ tuổi trải dài từ 0 đến 116 tuổi Các ảnh có nhiều sự thay đổi so với nhau từ biểu cảm, góc chụp, cho đến độ chiếu sáng Bộ dữ liệu này còn có thể được dùng cho nhiều mục đích như phát hiện khuôn mặt, ước tính tuổi, nhận diện giới tính, dân tộc… Một số hình ảnh trong tập UTKFace được thể hiện như Hình 2.11 bên dưới
Trang 30Hình 2.11 Một vài hình ảnh trích từ tập UTKFace
Đặc điểm nổi bật của tập UTKFace này được thể hiện qua sự đa dạng của hình ảnh các khuôn mặt trong tự nhiên và mỗi ảnh là một khuôn mặt khác nhau Tuổi, giới tính, chủng tộc được ước tính thông qua thuật toán DEX [12] và được kiểm tra lại bởi con người Các ảnh được căn chỉnh chủ yếu là hình ảnh trực diện, được cắt thành một kích thước chung là 200x200 pixel Tuy nhiên, bộ dữ liệu này chứa khá ít khuôn mặt người châu Á, chủ yếu chỉ tập trung vào hình ảnh khuôn mặt của các chủng tộc khác như người Da đen, Mỹ La Tinh, Trung Đông
Nguồn dữ liệu thứ hai đến từ tập VN-celeb chứa hơn 23000 ảnh khuôn mặt của
1000 người nổi tiếng ở Việt Nam, kích thước ảnh là 128x128 pixel Trung bình mỗi một người sẽ có gần 20 ảnh ở các độ tuổi khác nhau trong cuộc đời họ (từ lúc trẻ đến khi già) và đa số các hình ảnh tập trung vào độ tuổi từ 20 đến 50 tuổi Vì tập VN-celeb được tạo ra với mục đích chỉ nhận dạng khuôn mặt nên các hình ảnh trong tập
dữ liệu này không được xác định độ tuổi Một vài hình ảnh lấy từ tập dữ liệu này được thể hiện ở Hình 2.12
Trang 31Hình 2.12 Một vài hình ảnh trích từ tập dữ liệu VN-celeb
Phần còn lại của tập dữ liệu nhóm thu thập từ các nguồn internet được minh họa
ở Hình 2.13 Các nguồn gồm Google Image, Getty Images và Dreamstime Google Image là một kho dữ liệu ảnh khổng lồ nhưng chất lượng ảnh thường không được cao, bị lẫn nhiều hình ảnh không liên quan đến từ khóa tìm kiếm nên nhóm chỉ thu thập một số ít hình ảnh trên nền tảng này Getty Images là một kho ảnh trực tuyến cung cấp lượng hình ảnh lớn nhất thế giới, chứa đa dạng hình ảnh ở mọi chủ đề với chất lượng ảnh cao Dreamstime bao gồm nhiều ảnh miễn phí hoặc có bản quyền, ảnh chất lượng tốt và được xếp theo chủ đề rất dễ dàng để tìm kiếm
Hình 2.13 Minh họa một vài hình ảnh thu thập từ Google Image, Getty
Images và Dreamstime
Tuy nhiên, hình ảnh lấy từ những nguồn trên đa số là ảnh bán thân trong khi mục tiêu của tập dữ liệu là chỉ lấy các đặc trưng của khuôn mặt, do đó trước khi được dùng để huấn luyện, các ảnh này được cắt để lấy đúng vùng khuôn mặt và bỏ những phần dư thừa như phần vai, ngoại cảnh… Bên cạnh đó, mặc dù số lượng ảnh trong
Trang 32các tập dữ liệu rất lớn nhưng lượng ảnh không đạt chất lượng, bị trùng lặp và không nằm trong độ tuổi cần thiết rất nhiều, vì vậy nhóm sẽ loại bỏ những ảnh không phù hợp như Hình 2.14 bên dưới
Hình 2.14 Những hình ảnh bị loại bỏ khỏi tập dữ liệu
Những hình ảnh bị nhiễu như ảnh có độ mờ cao, không xác định được rõ đường nét như mắt, mũi, miệng, khuôn mặt nghiên hẳn sang một bên và hình không xác định
rõ được giới tính sẽ bị loại bỏ khỏi tập dữ liệu Các khuôn mặt có nét đặc trưng rõ cho từng độ tuổi sẽ được thu thập