Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)Nhận dạng mặt người bằng máy học chuyên sâu (Luận văn thạc sĩ)
Trang 1Thành phố Hồ Chí Minh - 2017
TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HỒ CHÍ MINH
Nguyễn Văn Danh
NHẬN DẠNG MẶT NGƯỜI BẰNG MÁY HỌC CHUYÊN SÂU
LUẬN VĂN THẠC SĨ MÁY TÍNH
Trang 2
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM TP HỒ CHÍ MINH
Nguyễn Văn Danh
NHẬN DẠNG MẶT NGƯỜI BẰNG MÁY HỌC CHUYÊN SÂU
Chuyên ngành : Khoa học máy tính
Trang 3Tôi là: Nguyễn Văn Danh
Học viên cao học khoá học: 2015 - 2017
Chuyên ngành: Khoa học máy tính
Mã số chuyên ngành: 60 48 01 01
Cơ sở đào tạo: Trường Đại học Sư phạm Thành phố Hồ Chí Minh
Giáo viên hướng dẫn: PGS.TS Phạm Thế Bảo
Cơ quan công tác: Trường Đại học Khoa học Tự nhiên, Đại học Quốc gia, Thành phố Hồ Chí Minh
Tôi xin cam đoan luận văn “Nhận dạng mặt người bằng máy học chuyên sâu” này là công trình nghiên cứu của riêng tôi Các số liệu sử dụng trong luận văn là trung thực Các kết quả nghiên cứu được trình bày trong luận văn chưa từng được công bố tại bất kỳ công trình nào khác
Tp Hồ Chí Minh, ngày tháng năm 2017
Học viên
Nguyễn Văn Danh
Trang 4Lời đầu tiên tôi xin bày tỏ lòng biết ơn sâu sắc tới PGS.TS Phạm Thế Bảo, công tác tại trường Đại học Khoa học Tự nhiên – Đại học Quốc gia Thành phố Hồ Chí Minh, người đã tận tình hướng dẫn tôi những ý tưởng, nền tảng lý thuyết, cũng như những lời nhận xét để tôi hoàn thành luận văn tốt nghiệp này
Tôi xin gửi lời cảm ơn chân thành đến TS Ngô Quốc Việt trưởng Khoa Công nghệ Thông tin, cùng những Thầy Cô Khoa Công nghệ Thông tin trường Đại học Sư phạm Thành phố Hồ Chí Minh, cùng một số Thầy Cô đã nhiệt tình giảng dạy, truyền đạt kiến thức cho tôi trong suốt 2 năm học qua
Tôi cũng cảm ơn em Võ Hoàng Trọng và các bạn cùng sinh hoạt tại phòng LAB, trường Đại học Khoa học Tự nhiên – Đại học Quốc gia Thành phố Hồ Chí Minh đã giúp đỡ cho tôi khi gặp khó khăn để hoàn thành luận văn này
Ngoài ra, tôi xin bày tỏ lòng biết ơn đến cộng đồng thành viên Stack Overflow, Stack Exchange, Quora, GitHub, … các bạn đã hỗ trợ rất lớn cho tôi khi nhóm gặp những vấn đề nan giải khi thực hiện đề tài
Cuối cùng, tôi muốn gửi lời cảm ơn sâu sắc đến tất cả bạn bè, anh chị em trong Gia đình, và đặc biệt là vợ tôi, đã luôn kịp thời động viên và giúp đỡ tôi vượt qua những khó khăn trong cuộc sống để hoàn thành được luận văn này
Trang 5Trang phụ bìa
Lời cam đoan
Lời cảm ơn
Mục lục
Danh mục các từ viết tắt
Danh mục hình
Danh mục bảng
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN 4
1.1 Bài toán nhận dạng mặt người 4
1.2 Các ứng dụng 5
1.3 Các hướng tiếp cận 6
1.3.1 Hướng tiếp cận trích đặc trưng 6
1.3.2 Tiếp cận nhận dạng 13
1.4 Khó khăn và thách thức 18
1.5 Đề xuất hướng giải quyết 18
CHƯƠNG 2 CƠ SỞ LÝ THUYẾT 20
2.1 Mạng neural 20
2.1.1 Cấu trúc tổng quát của ANN 20
2.1.2 Một số dạng mạng neural 22
2.1.3 Quá trình học của mạng neural 23
2.1.4 Thuật toán lan truyền ngược 26
2.1.5 Hàm softmax 32
2.2 Mạng neural tích chập 33
2.2.1 Lớp tích chập 35
2.2.2 Lớp hàm kích hoạt 38
2.2.3 Lớp pooling 39
2.2.4 Lớp kết nối đầy đủ 39
2.2.5 Nguyên lý hoạt động 40
2.2.6 Vấn đề quá khớp 41
Trang 62.2.8 Điều chỉnh 44
2.2.9 Loại bỏ 47
CHƯƠNG 3 XÂY DỰNG KIẾN TRÚC CNN CHO BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI 49
3.1 Mô hình tổng quát 50
3.2 Kiến trúc CNN tổng quát 51
3.3 Tổng quát hóa kích thước 52
3.3.1 Tổng quát hóa kích thước ảnh 52
3.3.2 Tổng quát hóa kích thước bộ lọc của Convolution 53
3.3.3 Tổng quát hóa kích thước bộ lọc của max pooling 53
3.3.4 Kích thước ảnh sau mỗi tầng 53
3.3 Xây dựng hệ thống phân loại tích hợp từ nhiều phân loại khác nhau 54
3.3.1 Xác suất cao nhất từ các thành phần 54
3.3.2 Xây dựng hệ số quan trọng đại diện cho nhiều bộ dữ liệu 56
CHƯƠNG 4 KẾT QUẢ THỰC NGHIỆM VÀ HƯỚNG PHÁT TRIỂN 57
4.1 Môi trường thực nghiệm 57
4.2 Bộ dữ liệu 57
4.2.1 Tính đa dạng của bộ dữ liệu 57
4.2.2 Tỷ lệ huấn luyện - kiểm tra 61
4.2.3 Chuẩn hóa kích thước ảnh 61
4.3 Chọn hệ số cho hệ thống 63
4.4 Xây dựng bộ hệ số quan trọng của hệ thống tích hợp 63
4.4.1 Hệ số quan trọng trên bộ dữ liệu ORL 63
4.4.2 Hệ số quan trọng trên bộ dữ liệu CYBERSOFT 64
4.4.3 Hệ số quan trọng chung trên bộ dữ liệu ORL - CYBERSOFT 65
4.5 Độ chính xác 65
4.5.1 Độ chính xác trên bộ dữ liệu ORL 65
4.5.2 Độ chính xác trên bộ dữ liệu CYBERSOFT 66
4.5.3 Độ chính xác khi áp dụng hệ số quan trọng chung 67
4.6 Đánh giá và hướng phát triển 68
Trang 74.6.2 Hướng phát triển 69
TÀI LIỆU THAM KHẢO 70
Trang 8KÝ HIỆU TÊN TIẾNG ANH
ANN Artificial Neural Network
CNN Convolution Neural Network
LDA Linear Discriminant Analysis
LBP Local Binary Pattern
LMNN Large Margin Nearest Neighbor
MLP Multilayer Perceptron Network
ORL Olivetti Research Laboratory
PCA Principal Component Analysis
PDBNN Probabilistic Decision-based Neural Network PDM Point Distribution Model
RELU Rectified Linear Unit
SIFT Scale Invariant Feature Transform
Trang 9Hình 1.1 Hệ thống nhận dạng mặt người 4
Hình 1.2 Ảnh sau khi biến đổi theo PCA 8
Hình 1.3 Ví dụ minh họa LDA 10
Hình 1.4 Ảnh sau khi biến đổi theo LDA 10
Hình 1.5 Sự liên thông giữa hình vòng (a) và hình nhập nhằng (b) 11
Hình 1.6 Ảnh sau khi biến đổi theo hình thái 12
Hình 1.7 Ví dụ về ảnh một phần khuôn mặt 13
Hình 1.8 Mô tả ý tưởng cho thuật toán nhận dạng một phần khuôn mặt 14
Hình 1.9 Sơ đồ thuật toán Khối Bag of Word 15
Hình 1.10 Hình minh họa khoảng cách khi sử dụng FaceNet 16
Hình 1.11 Tóm tắt quy trình nhận dạng khuôn mặt sử dụng FaceNet 17
Hình 2.1 Mạng neural sinh học 20
Hình 2.2 Cấu trúc của một ANN 21
Hình 2.3 Quá trình xử lý của một neural trong ANN 21
Hình 2.5 Bộ cơ sở dữ liệu chữ số viết tay của MNIST 24
Hình 2.6 AlphaGo của Google 26
Hình 2.7 Mô phỏng cách tính lan truyền ngược 29
Hình 2.8 Mô hình hàm softmax cho mạng Neural 33
Hình 2.9 Mô hình CNN 35
Hình 2.10 Minh hoạ tích chập trên ma trận ảnh 36
Hình 2.11 Tìm biên cạnh cho ảnh với tích chập 37
Hình 2.12 Làm mờ ảnh gốc với tích chập 37
Hình 2.13 Minh hoạ tích chập 3 chiều 38
Hình 2.14 Max pooling với lọc 39
Hình 2.15 Ví dụ về cấu trúc CNN 40
Hình 2.16 Mô hình chi tiết của một cấu trúc CNN 41
Hình 2.17 Quá khớp 42
Hình 2.18 Dừng sớm 45
Hình 2.19 Giảm trọng số 47
Hình 2.20 Kỹ thuật loại bỏ trong mạng neural 48
Trang 10Hình 3.2 Mô hình tổng quát 50
Hình 4.1 Một số ảnh thành phần mắt trái trong bộ dữ liệu ORL 57
Hình 4.2 Một số ảnh thành phần mắt phảitrong bộ dữ liệu ORL 58
Hình 4.3 Một số ảnh thành phần miệng trong bộ dữ liệu ORL 58
Hình 4.4 Một số ảnh toàn mặt trong bộ dữ liệu ORL 58
Hình 4.5 Một số ảnh thành phần mắt trái trong bộ dữ liệu CYBERSOFT 59
Hình 4.6 Một số ảnh thành phần mắt phảitrong bộ dữ liệu CYBERSOFT 59
Hình 4.7 Một số ảnh thành phần miệng trong bộ dữ liệu CYBERSOFT 59
Hình 4.8 Một số ảnh toàn mặt trong bộ dữ liệu CYBERSOFT 60
Trang 11ảng 3.1 Tổng quát hóa kích thước ảnh 52
ảng 3.2 Tổng quát hóa kích thước các bộ lọc của CONV 53
ảng 3.3 Tổng quát hóa kích thước các bộ lọc của POOL 53
ảng 4.1 Kích thước ảnh của từng thành phần trên bộ dữ liệu ORL 61
ảng 4.2 Kích thước ảnh của từng thành phần trên bộ dữ liệu CYBERSOFT 62
ảng 4.3 Chọn hệ số cho bộ lọc của giai đoạn CONV ở các tầng 63
ảng 4.4 ác suất xây dựng bộ hệ số ORL 63
ảng 4.5 Hệ số quan trọng cho 3 thành phần của bộ dữ liệu ORL 63
ảng 4.6 Hệ số quan trọng 𝛼14 cho 4 thành phần của bộ dữ liệu ORL 64
ảng 4.7 ác suất xây dựng bộ hệ số CYBERSOFT 64
ảng 4.8 Hệ số quan trọng 𝛼23 cho 3 thành phần của bộ dữ liệu CYBERSOFT 64
ảng 4.9 Hệ số quan trọng 𝛼24 cho 4 thành phần của bộ dữ liệu CYBERSOFT 65
ảng 4.10 Hệ số quan trọng 𝛼23 chung cho 3 thành phần của 2 bộ dữ liệu 65
ảng 4.11 Hệ số quan trọng 𝛼24 chung cho 4thành phần của 2 bộ dữ liệu 65
ảng 4.12 Độ chính xác các thành phần trên bộ dữ liệu ORL 65
ảng 4.13 Độ chính xác khi kết hợp các thành phần trên bộ dữ liệu ORL 66
ảng 4.14 Độ chính xác giữa các thành phần trên bộ dữ liệu CYBERSOFT 66
ảng 4.15 Độ chính xác khi kết hợp các thành phần trên bộ dữ liệu CYBERSOFT 67
ảng 4.16 Độ chính xác khi kết hợp các thành phần trên bộ dữ liệu ORL với
chung 68
ảng 4.17 Độ chính xác khi kết hợp các thành phần trên bộ dữ liệu CYBERSOFT với chung 68
ảng 4.18 Độ chính xác của một số hướng tiếp cận khác 68
Trang 12MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay, cùng với sự phát triển của xã hội, vấn đề an ninh bảo mật đang được yêu cầu khắt khe tại mọi quốc gia trên thế giới Các hệ thống nhận dạng con người được ra đời với độ tin cậy ngày càng cao Một trong các bài toán nhận dạng con người rất được quan tâm hiện nay là nhận dạng mặt người
Bài toán nhận dạng khuôn mặt người vốn được nghiên cứu từ những năm 1970
và cho đến nay, rất nhiều nghiên cứu lẫn ứng dụng cho bài toán này đã ra đời Bài toán nhận dạng mặt người có thể áp dụng rộng rãi trong nhiều lĩnh vực khác nhau Các ứng dụng liên quan đến nhận dạng mặt người có thể kể như: hệ thống phát hiện tội phạm, hệ thống theo dõi nhân sự trong một đơn vị, hệ thống tìm kiếm thông tin trên ảnh, video dựa trên nội dung,…
Đến tại thời điểm hiện tại đã rất nhiều luận văn nghiên cứu về lĩnh vực phát hiện khuôn mặt người và cũng cho ra khá nhiều kết quả thật tốt Tuy nhiên máy học chuyên sâu (Deep learning) được áp dụng cho bài toán nhận dạng mặt người vẫn là một hướng khá mới, vì vậy tôi đã chọn nghiên cứu vấn đề “Nhận dạng mặt người bằng máy học chuyên sâu” sẽ làm luận văn của tôi
Trong cuốn luận văn này, tôi trình bày một phương pháp nhận dạng mặt người bằng máy học chuyên sâu Từ ảnh ban đầu áp dụng Mạng neural tích chập để huấn luyện trên từng phần như mắt trái, mắt phải, miệng, toàn mặt Sau kiểm tra, tôi đề xuất một hàm tính điểm để từ đó đưa ra kết luận với độ chính xác cao hơn so sau khi kết hợp nhận dạng của mắt trái, mắt phải, miệng và mặt Tôi thực nghiệm phương pháp này dựa trên toàn mặt cũng như mắt trái, mắt phải và miệng của mặt người với 2 bộ
dữ liệu ORL và Cybersoft
2 Mục tiêu của đề tài
Nghiên cứu mạng Neural nhân tạo và máy học chuyên sâu (Deep learning) – Convolution Neural Network (CNN)
Hiện thực Convolution Neural Network cho bài toán nhận dạng mặt người
Đề xuất phương pháp nhận dạng mặt người bằng máy học chuyên sâu cho từng thành phần khuôn mặt( như thành phần mắt trái, thành phần mắt phải, miệng và toàn mặt), rồi xây dựng bộ nhận dạng kết hợp từ các CNN thành phần
Trang 133 Đối tượng và phạm vi nghiên cứu của đề tài
Dùng máy học chuyên sâu với mạng CNN để thực hiện trên bộ dữ liệu ORL, CyberSoft
4 Phương pháp nghiên cứu của đề tài
Để thực hiện đề tài khoa học này, thì cần phải kết hợp hai phương pháp sau:
Phương pháp tìm hiểu lý thuyết:
Trong luận văn này tôi sẽ dùng mạng CNN của máy học chuyên sâu để xây dựng các tầng dùng để huấn luyện tập ảnh đầu vào, và đưa ra các đặc trưng, từ các đặc trưng đó, sẽ là cơ sở để kiểm tra Trong luận văn này tôi không những thực hiện trên những tập ảnh toàn mặt mà tôi còn dùng trên tập hình ảnh của mắt trái, mắt phải,miệng của khuôn mặt để làm dữ liệu huấn luyện và kiểm tra Cuối cùng kết hợp các thành phần này lại để nhằm tăng hiệu suất nhận dạng
5 Đóng góp của đề tài
Nghiên cứu về máy học chuyên sâu(Deep learning)
Nhận dạng được mặt người bằng phương pháp máy học chuyên sâu
Xây dựng bộ nhận dạng từ các CNN thành phần
Hiện thực kết quả và đánh giá
6 Nội dung luận văn
Luận văn này bao gồm 4 chương:
Trang 14 Chương 1: Giới thiệu về bài toán nhận dạng mặt người và ứng dụng trong thực
tế Trình bày các phương pháp trích đặc trưng, một số thuật toán nhận dạng mặt người, những khó khăn, thách thức của đề tài và đề xuất hướng giải quyết
Chương 2: Trình bày cơ sở lý thuyết khi thực hiện đề tài, khái niệm về Mạng neural, Mạng neural tích chập
Chương 3: Dùng mạng CNN xây dựng kiến trúc các tầng để huấn luyện và kiểm tra, lựa chọn kích thước các bộ lọc cho phù hợp Ngoài ra, tôi đề xuất hàm tính điểm dùng để phân loại đối tượng khi kiểm tra
Chương 4: Kết quả khi thực nghiệm trên bộ dữ liệu ORL và CYBERSOFT, lựa chọn các hệ số trong từng giai đoạn của kiến trúc mạng CNN cho từng thành phần Đưa ra độ chính xác khi kiểm tra trên các thành phần như mắt trái, mắt phải, miệng và toàn mặt Từ đó xây dựng bộ nhận dạng khi kết hợp các CNN thành phần khác trên khuôn mặt
Trang 15CHƯƠNG 1 TỔNG QUAN
1.1 Bài toán nhận dạng mặt người
Nhận dạng mặt người là một trong những ứng dụng quan trọng của thị giác máy tính nói riêng cũng như khoa học máy tính nói chung Bài toán nhận dạng khuôn mặt người vốn được nghiên cứu từ những năm 1970 và cho đến nay, rất nhiều nghiên cứu lẫn ứng dụng cho bài toán này đã ra đời Bài toán nhận dạng mặt người có thể áp dụng rộng rãi trong nhiều lĩnh vực khác nhau Các ứng dụng liên quan đến nhận dạng mặt người có thể kể như: hệ thống phát hiện tội phạm, hệ thống theo dõi nhân sự trong một đơn vị, hệ thống tìm kiếm thông tin trên ảnh, video dựa trên nội dung,… Để giải quyết bài toán này, cần xác định hai vấn đề chính Thứ nhất, dùng thông tin nào để nhận dạng, chẳng hạn như mắt, mũi, miệng, chân mày,… hay kết hợp tất cả các thông tin trên Thứ hai, dùng phương pháp nào để nhận dạng nguồn thông tin đó [1]
Một hệ thống nhận dạng mặt người bao gồm các thành phần chính như Hình 1.1
Hình 1.1 Hệ thống nhận dạng mặt người
Hệ thống nhận dạng mặt người Hình 1.1, với tập dữ liệu đầu vào là bộ ảnh về mặt người đã thông qua tiền xử lý, như các kỹ thuật xử lý ảnh (cân bằng sáng, tách ngưỡng, histogram …), cũng như giai đoạn phát hiện mặt người (Face Detection) Từ tập dữ liệu này hệ thống sẽ tiến hành trích chọn các đặc trưng Quá trình rút trích đặc trưng nhằm giảm số chiều của không gian dữ liệu bằng cách loại bỏ bớt những thành phần (chiều) dư thừa trong dữ liệu sao cho lượng thông tin sau khi rút trích vẫn đảm bảo các đặc trưng của dữ liệu ban đầu Từ các đặc trưng được trích chọn, sẽ tiến hành
so khớp, phân lớp để nhận dạng Đây Là giai đoạn cuối cùng trong bài toán nhận dạng mặt người So sánh đặc trưng ảnh với đặc trưng của toàn bộ ảnh trong cơ sở dữ liệu nhận dạng Dựa vào khoảng cách so sánh, hệ thống xác định thông tin của người được nhận dạng Thường dữ liệu đặc trưng được thể hiện bằng một vector nên có thể dùng
Trang 16khoảng cách Euclid giữa hai vector để phân lớp, ngoài ra người ta cũng có thể dùng kết hợp PCA, LDA và độ đo Mean-KNN để tính khoảng cách kết hợp, từ đó cho ra kết quả
1.2 Các ứng dụng
Có nhiều ứng dụng đã được xây dựng, tôi xin trình bày một số ứng dụng chính:
o Hệ thống tương tác giữa người và máy: giúp những người bị tật hoặc khiếm khuyết có thể trao đổi Những người dùng ngôn ngữ tay có thể giao tiếp với những người bình thường Những người bị bại liệt thông qua một số ký hiệu nháy mắt có thể biểu lộ những gì họ muốn, … Đó là các bài toán điệu bộ của bàn tay (hand gesture), điệu bộ, khuôn mặt
o Nhận dạng người A có phải là tội phạm truy nã hay không? Giúp cơ quan an ninh quản lý tốt con người Công việc nhận dạng có thể ở trong môi trường bình thường cũng như trong bóng tối (sử dụng camera hồng ngoại)
o Hệ thống quan sát, theo dõi và bảo vệ Các hệ thống camera sẽ xác định đâu là con người và theo dõi con người đó xem họ có vi phạm gì không, ví dụ xâm phạm khu vực không được vào, …
o Lưu trữ (rút tiền ATM, để biết ai rút tiền vào thời điểm đó), hiện nay có tình trạng những người bị người khác lấy mất thẻ ATM hay mất mã số PIN và những người ăn cắp này đi rút tiền, hoặc những người chủ thẻ đi rút tiền nhưng lại báo cho ngân hàng là mất thẻ và mất tiền Các ngân hàng có nhu cầu khi có giao dịch tiền sẽ kiểm tra hay lưu trữ khuôn mặt người rút tiền để sau đó đối chứng và xử lý
o Thẻ căn cước, chứng minh nhân dân (Face Identification)
o Điều khiển vào ra: văn phòng, công ty, trụ sở, máy tính, Palm, … Kết hợp thêm vân tay và mống mắt Cho phép nhân viên được ra vào nơi cần thiết, hay mỗi người sẽ đăng nhập máy tính cá nhân của mình mà không cần nhớ tên đăng nhập cũng như mật khẩu mà chỉ cần xác định thông qua khuôn mặt
o An ninh sân bay, xuất nhập cảnh (hiện nay cơ quan xuất nhập cảnh Mỹ đã áp dụng)
o Dùng để xác thực người xuất nhập cảnh và kiểm tra có phải là nhân vật khủng
bố không
Trang 17o Tương lai sẽ phát triển các loại thẻ thông minh có tích hợp sẵn đặc trưng của người dùng trên đó, khi bất cứ người dùng khác dùng để truy cập hay xử lý tại các hệ thống sẽ được yêu cầu kiểm tra các đặc trưng khuôn mặt so với thẻ để biết nay có phải là chủ thẻ hay không
o Tìm kiếm và tổ chức dữ liệu liên quan đến con người thông qua khuôn mặt người trên nhiều hệ cơ sở dữ liệu lưu trữ thật lớn, như internet, các hãng truyền hình, … Ví dụ: tìm các đoạn video có tổng thống Bush phát biểu, tìm các phim
có diễn viên Lý Liên Kiệt đóng, tìm các trận đá banh có Ronaldo đá
o Hiện nay có nhiều hướng tiếp cận để xác định một ảnh có phải là ảnh khỏa thân hay không? Khuôn mặt người được xem như một yếu tố để xác định cho một hướng tiếp cận mà được dùng gần đây
o Ứng dụng trong video phone
o Phân loại trong lưu trữ hình ảnh trong điện thoại di động Thông qua bài toán xác định khuôn mặt người và trích đặc trưng, rồi dựa vào đặc trưng này để sắp xếp lưu trữ, giúp người sử dụng dễ dàng truy tìm khi cần thiết
o Kiểm tra trạng thái người lái xe có ngủ gật, mất tập trung hay không, và hỗ trợ thông báo khi cần thiết
o Phân tích cảm xúc trên khuôn mặt
o Trong lãnh vực thiết kế điều khiển robot
và theo các góc giữa các điểm
o Hướng tiếp cận hình ảnh: bao gồm việc xây dựng các mẫu từ những đặc trưng mặt người Mẫu của các đặc trưng nổi bật, hoặc thậm chí là toàn khuôn mặt được thiết lập, việc nhận dạng được thực hiện bằng cách duyệt các khuôn mặt rồi tìm mặt nào khớp nhất với mẫu
Trang 18Hiện nay hệ thống nhận dạng mặt người vẫn đang tiếp tục được phát triển Dưới đây tôi trình bày một số phương pháp trích chọn đặc trưng:
- Phương pháp phân tích thành phần chính (Principal Component Analysis PCA)
Phương pháp phân tích biệt số tuyến tính (Linear Discriminant Analysis LDA)
Phương pháp biến đổi hình thái
- Phương pháp trích đặc trưng tự động (Deep Neural Networks - DNN)
1.3.1.1 Phương pháp phân tích thành phần chính
Ý tưởng chính của phương pháp phân tích thành phần chính (Principal Component Analysis - PCA) là tìm các vector biểu diễn những sự phân bố đặc trưng nhất của các ảnh trong toàn bộ không gian ảnh Những vector này hình thành nên một không gian con của các ảnh được gọi là “không gian mặt người” [43]
Mỗi ảnh là một ma trận M×N các điểm ảnh, ma trận này được chuyển thành một vector bằng cách xếp các cột điểm ảnh liên tiếp nhau Như vậy, mỗi ảnh được coi là một điểm trong không gian MN chiều Các vector của tập ảnh huấn luyện được xếp thành một ma trận Từ ma trận này, ta sẽ tính được ma trận hiệp phương sai của dữ liệu, là ma trận trong đó mỗi phần tử (i, j) là giá trị hiệp phương sai giữa chiều thứ i và chiều thứ j
Công việc tiếp theo là tính các giá trị riêng và vector riêng của ma trận hiệp phương sai Các vector riêng chính là các thành phần đặc trưng cho sự phân bố của tập
dữ liệu Cuối cùng, ma trận biến đổi của phương pháp PCA là ma trận hình thành từ các vector riêng ứng với các giá trị riêng lớn nhất vừa tính được, nghĩa là các thành phần đặc trưng nhất, còn các thành phần kém quan trọng hơn sẽ được bỏ qua để giảm
số chiều của dữ liệu [4]
Nói một cách ngắn gọn, mục tiêu của PCA là tìm một không gian mới (với số chiều nhỏ hơn không gian cũ) Các trục tọa độ trong không gian mới được xây dựng sao cho trên mỗi trục, độ biến thiên của dữ liệu trên đó là lớn nhất có thể
Xét trong bộ dữ liệu tập ảnh ORL (Olivetti Research Laboratory, Surrey University) Ảnh gốc có kích thước 112×92 (10304 điểm ảnh) Những ảnh này cần được rút gọn sao cho lượng thông tin dùng để biểu diễn ảnh đó giảm đi, đồng thời
Trang 19không làm mất những đặc điểm quan trọng nhất của khuôn mặt Kết quả của việc phân tích này sẽ đạt được, Hình 1.2 [2] Áp dụng PCA để giảm số chiều của không gian khổng lồ trên, kết quả thu được là các ảnh đã được biến đổi sau khi phân tích theo các thành phần đặc trưng, các vector riêng được chọn theo các giá trị riêng tương ứng lớn hơn hoặc bằng 10-3
, số lượng vector riêng là 49, nghĩa là mỗi ảnh biểu diễn một điểm trong không gian 49 chiều [2],[4]
Hình 1.2 Ảnh sau khi biến đổi theo PCA
Phương pháp phân tích thành phần chính cho phép xác định các mẫu trong một tập dữ liệu và biểu diễn dữ liệu theo cách có thể làm nổi bật được sự giống nhau và khác nhau giữa các mẫu Vì các mẫu có thể rất khó tìm ra trong dữ liệu nhiều chiều (do không thể biểu diễn trực quan bằng đồ họa), nên PCA là một công cụ hữu hiệu để phân tích dữ liệu [2]
1.3.1.2 Phương pháp phân tích biệt số tuyến tính
Phương pháp PCA ở trên còn có nhược điểm là chỉ làm nổi bật lên các đặc trưng của từng ảnh, mà chưa quan tâm đến các ảnh đó là của cùng một người hay của những người khác nhau Phương pháp phân tích biệt số tuyến tính (Linear Discriminant Analysis - LDA) có thể khắc phục được những nhược điểm đó [4]
Nhiệm vụ chính của phương pháp là tính sự biến thiên giữa các ảnh của những người khác nhau và tính sự biến thiên giữa các ảnh của cùng một người, sau đó tìm một phép biến đổi để làm cực đại tỉ số của hai sự biến thiên trên Nghĩa là, tập ảnh huấn luyện sẽ được biến đổi sang một không gian mới sao cho sự khác nhau giữa các
Trang 20ảnh của những người khác nhau được tăng lên tối đa, còn sự giống nhau giữa các ảnh của cùng một người được làm cực tiểu [2]
LDA cho phép đánh giá khách quan về tầm quan trọng của thông tin hình ảnh trong các đặc điểm khác nhau của khuôn mặt để xác định khuôn mặt người LDA cũng cho chúng ta một tập hợp nhỏ các tính năng mà thực hiện phù hợp nhất thông tin cho các mục đích phân loại Phương pháp LDA khắc phục những hạn chế của phương pháp phân tích thành phần chính bằng cách áp dụng các tiêu chuẩn phân biệt tuyến tính
Mục tiêu của LDA là thực hiện giảm chiều trong khi vẫn giữ càng nhiều các thông tin phân biệt giữa các lớp càng tốt.Tìm hướng dọc theo đó các lớp được phân cách tốt nhất Thực hiện bằng cách xem xét các tán xạ trong các lớp và gữa các lớp.Nó
có khả thay đổi hình ảnh từ những biến đổi do các nguồn khác nhau như ánh sáng Thông thường trong phương pháp LDA, sự phân bố ngoại và sự phân bố nội được dùng làm tiêu chí để phân lớp [28] Ma trận biến đổi của LDA được hình thành
từ tập vector W = [W1, , Wd], thỏa mãn:
(1)
Trong đó Sw và Sb lần lượt là ma trận phân bố nội và ma trận phân bố ngoại Nếu
ma trận Sw là khả nghịch, tỉ số ở công thức (1) sẽ đạt cực đại khi các vector của W là các vector riêng của Đối với bài toán nhận dạng mặt người, ma trận Sw thường không khả nghịch, vì số lượng ảnh nhỏ hơn rất nhiều so với số chiều biểu diễn ảnh
Có nhiều phương pháp khác nhau để giải quyết vấn đề của LDA như phương pháp giả nghịch đảo, phương pháp không gian con hoặc phương pháp không gian rỗng [2] Hình 1.3 là một ví dụ minh họa trực quan ý nghĩa của phép biến đổi này Hình 1.3(a) là một cách biến đổi không tốt khi các hình chiếu của các điểm thuộc hai lớp vẫn lẫn lộn với nhau, Hình 1.3(b) là một cách biến đổi khá tốt khi hình chiếu của các điểm thuộc cùng một lớp gần nhau, còn hình chiếu của các điểm khác lớp xa nhau [2]
Trang 21Hình 1.3 Ví dụ minh họa LDA
Trong Hình 1.4 là ví dụ về một ảnh trong bộ dữ liệu ORL, với kích thước ảnh là Sau khi áp dụng phân tích biệt số tuyến tính LDA, Hình 1.4 [2]
Hình 1.4 Ảnh sau khi biến đổi theo LDA
1.3.1.3 Phương pháp biến đổi hình thái
Hai phương pháp PCA và LDA cho phép phân tích dựa trên các đặc điểm mang tính thống kê của ảnh Tuy nhiên, các phương pháp này chưa xét đến những đặc điểm
về hình thái của mặt người Đó chính là những đặc trưng về đường nét của các bộ phận trên khuôn mặt như mắt, mũi, miệng,… Phương pháp biến đổi hình thái sẽ bổ sung cho những thiếu sót này của hai phương pháp trên [5]
Xử lý ảnh về hình thái là một phép xử lý trong đó dạng không gian hoặc cấu trúc của các đối tượng trong ảnh được chỉnh sửa Phép dãn ảnh và phép co ảnh là hai thao tác xử lý hình thái cơ bản Với phép dãn ảnh, một đối tượng sẽ nổi đều lên trong không gian, còn với phép co ảnh đối tượng sẽ co đều xuống [15],[45]
Trang 22Các thao tác xử lý hình thái ảnh nhị phân dựa trên các quan hệ về mặt hình học hay là sự liên thông của các điểm ảnh được cho là thuộc cùng một lớp Trong ảnh nhị phân ở Hình 1.5(a), vòng gồm các điểm ảnh đen, hình thành bởi sự liên thông của các điểm ảnh, phân ảnh ra thành ba phân đoạn: các điểm ảnh trắng ở ngoài vòng, các điểm ảnh trắng ở trong vòng và các điểm ảnh đen của bản thân vòng Các điểm ảnh trong mỗi phân đoạn được gọi là liên thông với nhau Khái niệm liên thông này rất dễ hiểu đối với Hình 1.5(a), nhưng lại trở nên nhập nhằng khi xét đến Hình 1.5(b)
Hình 1.5 Sự liên thông giữa hình vòng (a) và hình nhập nhằng (b)
Xét một ảnh đa mức xám F(j,k) được lượng tử hóa với một thang mức xám nào
đó Khi đó, phép dãn ảnh đối với ảnh đa mức xám được định nghĩa công thức (2):
(2)
Trong đó MA {S1, ,S9} trả về giá trị lớn nhất trong các giá trị của chín điểm ảnh của lân cận 3×3 Tương tự, phép co ảnh đối với ảnh đa mức xám được định nghĩa công thức (3):
(3)
Trong đó MIN{S1, ,S9} trả về giá trị nhỏ nhất trong các giá trị của chín điểm ảnh của lân cận 3×3 Hình 1.6 là kết quả sau khi biến đổi hình thái [2]
Trang 23Hình 1.6 Ảnh sau khi biến đổi theo hình thái
1.3.1.4 Trích đặc trƣng tự động
Phương pháp phân tích thành phần chính PCA là một kỹ thuật được tạo ra nhằm khử tương quan và giảm chiều dữ liệu PCA là một hình thức cơ bản của học đặc trưng với khả năng tự động phát hiện các biểu diễn nhỏ gọn và có ý nghĩa của dữ liệu thô mà không dựa vào tri thức chuyên gia hay tri thức về kiểu ứng dụng cụ thể Các véc-tơ riêng của hiệp phương sai cho một tập mẫu (tương ứng với giá trị riêng lớn nhất) được sử dụng để mở rộng thành một không gian phụ có số chiều thấp hơn, tập trung vào phương sai của dữ liệu gốc Việc chiếu dữ liệu gốc lên không gian con với phương sai cực đại được sử dụng làm biểu diễn đặc trưng
Mặc dù PCA có thể học đặc trưng theo cách không giám sát nhưng nó chỉ là kết hợp tuyến tính của các đặc trưng chưa xử lý Do đó, PCA không đủ khả năng mô hình hóa cho các phụ thuộc phi tuyến phức tạp Plotz và cộng sự đã đề xuất sử dụng mạng nơ-ron sâu (DNN) để tách được các đặc trưng có ý nghĩa hơn Một trong những khác biệt chính giữa mạng nơ-ron truyền thống và DNN là DNN có thể có nhiều lớp, trong khi mạng nơ-ron truyền thống thường sử dụng nhiều nhất 3 lớp Một lợi thế quan trọng khác nữa của DNN là khả năng biểu diễn các dữ liệu đầu vào DNN có thể mô hình hóa nhiều hoạt động đa dạng mà không cần nhiều dữ liệu huấn luyện Nó có thể chia sẻ các phần không gian đầu vào tương tự chỉ với một vài nút ẩn, trong khi giữ cho các nút khác “cảm nhận” một tập con các đặc trưng đầu vào quan trọng cho việc nhận dạng
CNN bao gồm một hoặc nhiều các cặp thuộc lớp convolution và pooling Các bộ phận nhỏ cục bộ của đầu vào được bắt giữ bởi các lớp convolution với một tập các bộ lọc cục bộ Lớp pooling có thể lưu giữ được các đặc trưng bất biến Cuối cùng, lớp kết
Trang 24nối đầy đủ đứng đầu sẽ kết hợp các đầu vào từ tất cả các đặc trưng để thực hiện phân loại toàn bộ đầu vào
1.3.2 Hướng tiếp cận nhận dạng
1.3.2.1 Không cần canh chỉnh
Ảnh trích xuất từ các thiết bị thu ảnh (như camera giám sát hay camera du lịch) thường xuất hiện ảnh chỉ chụp một phần mặt người, Hình 1.7 Những phương pháp nhận dạng khuôn mặt theo kiểu toàn cục (PCA và LDA) hay địa phương (Gabor,
L P) thường canh chỉnh và biểu diễn các ảnh khuôn mặt theo cùng một kích cỡ, sau
đó nối dài các giá trị điểm ảnh hoặc trích xuất các vector đặc trưng theo số chiều nhất định Tuy nhiên, với ảnh một phần khuôn mặt thì cách làm này không khả thi do mặt không đủ chi tiết cũng như sẽ gặp khó khăn khi canh chỉnh mặt, với không có gì đảm bảo rằng những điểm mốc phổ biến của khuôn mặt sẽ xuất hiện ở ảnh một phần mặt
Do đó nhóm tác giả Liao và cộng sự [38] đề xuất thuật toán nhận dạng một phần mặt người mà không cần dùng tọa độ 2 mắt (hay bất kỳ điểm nào khác) để canh chỉnh mặt
Hình 1.7 Ví dụ về ảnh một phần khuôn mặt: (a) Ảnh một phần khuôn mặt trong bộ dữ liệu LFW; (b) Ảnh một phần khuôn mặt trong đám đông;
(c) Ảnh khuôn mặt bị che bởi mắt kinh, áo khoác
Nhóm của Liao đã đề xuất một thuật toán biểu diễn khuôn mặt không cần canh chỉnh dựa trên phép Mô tả đa điểm chính (Multi Keypoint Descriptor - MKD), trong
đó kích thước mô tả khuôn mặt được xác định bằng thành phần có trong ảnh Làm theo cách này, ta có thể dùng một tập lớn các mô tả để biểu diễn bất kỳ ảnh khuôn mặt kiểm tra nào, dù là một phần hay toàn phần Nhóm tác giả đã phát triển một phép mô
tả điểm chính mới gọi là mẫu tam phân Gabor (Gabor Ternary Patter - GTP) nhằm giúp nhận dạng khuôn mặt dễ dàng hơn Thuật toán này sử dụng hiệu quả với ảnh
Trang 25khuôn mặt bị vật thể khá che khuất, ảnh không chính diện, ảnh có đeo phụ kiện, ảnh bị giới hạn góc nhìn, ảnh phơi sáng [5]
Hình 1.8 mô tả sơ đồ thuật toán sử dụng biểu diễn MKD cho thư viện từ điển cũng như ảnh kiểm tra Sau đó, học phép Biểu diễn đa nhiệm thưa với mỗi ảnh kiểm tra, cuối cùng, sử dụng phân loại dựa trên biểu diễn thưa (Sparse Representation based Classification - SRC) [23] để nhận dạng ảnh Nhóm tác giả gọi thuật toán này là MKD-SRC
Hình 1.8 Mô tả ý tưởng cho thuật toán nhận dạng một phần khuôn mặt
Sử dụng thuật toán này cho ra kết quả nhận dạng một phần khuôn mặt tốt hơn các phương pháp phổ biến trước đây như PCA và LDA, L P Ngoài ra, thuật toán đề xuất một phương pháp xác định các điểm chính MKD cho ảnh khuôn mặt không chính diện và xây dựng các điểm chính phù hợp trong ảnh bằng phép phân loại biểu diễn thưa (SRC) [10] Tuy nhiên, do thuật toán này sử dụng quá nhiều điểm chính cũng như kích thước từ điển lớn nên dẫn đến chi phí tính toán cao Ngoài ra, thuật toán này không chú ý đến thông tin hình học của tập đặc trưng [38]
Trang 26Nhóm tác giả Li đánh giá rằng các ảnh khuôn mặt đều cùng một loại vật thể, cho nên nếu ta trính xuất đặc trưng khuôn mặt bằng cách thành tập các phần nhỏ thì điều này không đảm bảm rõ thông tin của khuôn mặt Do đó, nhóm đề xuất thuật toán rút trích đặc trưng khuôn mặt như Hình 1.9 [5]
Hình 1.9 Sơ đồ thuật toán Khối Bag of Word
Ta chia ảnh thành các khối và xem mỗi khối nhỏ là vùng quan tâm (Region of Interest - ROI) Với mỗi ROI, ta tính đặc trưng SIFT đặc trên mỗi đoạn lấy mẫu dài 2 điểm ảnh, thu được vector SIFT 128 chiều, từ đó, mỗi khối ta thu được một tập các vector SIFT Ở bước huấn luyện, sử dụng thuật toán -means chuyển đổi vector SIFT ở mỗi ROI thành các codeword Ở trong một ROI, ta phân vùng các đặc trưng SIFT ở mỗi đoạn thành cụm, khi đó ta định nghĩa codeword là tâm của cụm Một codebook bao gồm codeword của cùng một ROI và từ dữ liệu huấn luyện, ta được codebook Cuối cùng, ta đối chiếu mỗi vector SIFT của mỗi đoạn ở mỗi ROI với codebook tương ứng, sử dụng biểu đồ tần số của các codeword khác nhau và dùng biểu đồ này làm đặc trưng của ROI, sau đó ta nối dài biểu đồ để thu được một vector biểu diễn ảnh khuôn mặt Sử dụng SVM tuyến tính để huấn luyện biểu đồ của từng người [48]
Ở bước kiểm tra, ta cũng chia ảnh thành khối, thu được biểu đồ codeword sử dụng codebook đã huấn luyện Nối dài biểu đồ này thu được vector biểu diễn ảnh, ta phân loại ảnh bằng phân loại SVM với mô hình huấn luyện
Trang 27Thuật toán cho kết quả nhận dạng cao dưới nhiều điều kiện của ảnh, kể cả khuôn mặt có biểu đạt cảm xúc hay bị che khuất một phần mà chỉ cần huấn luyện bộ ảnh thường Tuy nhiên, Biểu diễn túi từ này chỉ hiệu quả khi ảnh không bị che khuất quá nhiều vì nếu không thì biểu đồ biểu diễn ảnh ở vùng một phần sẽ khác với biểu đồ cũng của vùng đó nhưng ở toàn phần [39]
1.3.2.3 Thuật toán FaceNet
Nhóm tác giả Schroff và cộng sự [16] từ Google đề xuất một thuật toán có tên là FaceNet sẽ học cách ánh xạ từ ảnh khuôn mặt vào không gian Euclide đầy đủ với khoảng cách đo được tương ứng với độ tương đồng của khuôn mặt Thuật toán này có thể tạo ra vector đặc trưng và nhúng vào bài toán nhận dạng khuôn mặt, kiểm tra khuôn mặt và phân cụm khuôn mặt Nhóm tác giả sử dụng Mạng tích chập sâu (Deep Convolution Network - DNN) được huấn luyện để tự tối ưu hóa bài toán Mạng được huấn luyện sao cho khoảng cách L2 bình phương trong không gian nhúng tương ứng với mức độ tương đồng của khuôn mặt: Mặt cùng người sẽ có khoảng cách nhỏ, mặt khác người sẽ có khoảng cách lớn, Hình 1.10 [5]
Hình 1.10 Hình minh họa khoảng cách khi sử dụng FaceNet
Hình 1.10 minh họa khoảng ách khi sử dụng FaceNet giữa các cặp khuôn mặt Nếu lấy ngưỡng là 1.1, ta thấy rằng 2 mặt có khoảng cách nhỏ hơn ngưỡng điều thuộc
về một người (2 ảnh ở dòng đầu tiên) và ngược lại
Trang 28Sau khi thực hiện phép nhúng và thu được vector đặc trưng, ta có thể thực hiện được 3 bài toán: Kiểm tra khuôn mặt, ta chỉ cần phân ngưỡng khoảng cách giữa 2 vector đặc trưng của 2 khuôn mặt Nhận dạng khuôn mặt là bài toán phân loại k-NN Phân cụm khuôn mặt sử dụng k-mean (xem tóm tắt cách nhận dạng khuôn mặt sử dụng FaceNet ở Hình 1.11)
Hình 1.11 Tóm tắt quy trình nhận dạng khuôn mặt sử dụng FaceNet
Hình 1.11, từ ảnh vào (input image), sau đó xác định khuôn mặt, những điểm chính trên mặt (Detect), canh chỉnh lại mặt (Transform), sau đó cắt khuôn mặt ra khỏi ảnh (Crop) và đưa vào Mạng neuron sâu (Deep Neural Network), thu được vector đặc trưng 128 chiều dùng để biểu diễn khuôn mặt (Representation) Từ vector đặc trưng này có thể dùng để phân cụm khuôn mặt (Clustering), xác định tính tương đồng (Similarity Detection) và phân loại (Classification) [5]
FaceNet huấn luyện output thành nhúng đầy đủ 128 chiều sử dụng hàm bộ ba sai
số dựa trên LMNN [27], mẫu bộ ba này gồm 2 ảnh cùng loại và 1 ảnh khác loại và hàm lỗi có nhiệm vụ tách ảnh đúng ra khỏi ảnh sai dựa vào biên khoảng cách Nhóm tác giả sử dụng 2 kiến trúc DNN, một mạng dựa theo mô hình của Zeiler và Fergus, mạng còn lại sử dụng mô hình Inception từ GoogLeNet
Trang 29Tính đến thời điểm FaceNet ra đời, thuật toán này đã lập nên kỷ lục mới trong nhận dạng khuôn mặt dưới nhiều điều kiện ảnh khác nhau Tuy nhiên, FaceNet huấn luyện với một số lượng lớn hình ảnh (hơn 200 triệu ảnh của 8 triệu đối tượng), lớn gấp
3 lần so với các bộ dữ liệu hiện có Để xây dựng bộ dữ liệu lớn như vậy rất khó thực hiện trong các phòng thiết bị, học thuật do đòi hỏi kiến trúc máy lớn [34]
1.4 Khó khăn và thách thức
Bài toán nhận dạng mặt người gặp khó khăn lớn khi ảnh mặt người bị tác động từ môi trường xung quanh, ví dụ như góc chụp, mức độ sáng, tối khi lấy ảnh Chất lượng ảnh đôi khi không được sắc nét do ảnh hưởng bởi nhiễu, phơi sáng Ngoài ra, một người theo thời gian thì khuôn mặt sẽ biến đổi, do đó phần nào ảnh hưởng đến thông tin trên mặt như ria mép, râu, cũng như một số ảnh mặt người có đeo thêm phụ kiện như mắt kính, đôi khi vị trí của mắt kính vẫn khác nhau, như lệch xuống không đúng
vị trí Bên cạnh đó trạng thái của khuôn mặt cũng ảnh hưởng lớn đến vấn đề nhận dạng như vui, buồn, cười, há miệng, ngậm môi, nheo mắt hay mở mắt to,
Với sự phát triển của Mạng neural đã hỗ trợ rất lớn cho bài toán nhận dạng mặt người với độ chính xác cao, nhưng bù lại đòi hỏi quá trình huấn luyện cần nhiều dữ liệu, đôi lúc không thể huấn luyện bằng những máy tính học thuật thông thường
1.5 Đề xuất hướng giải quyết
Trong luận văn này, tôi đề xuất phương pháp nhận dạng khuôn mặt người bằng máy học chuyên sâu cho từng thành phần khuôn mặt (như thành phần mắt trái, thành phần mắt phải, miệng và toàn mặt), rồi xây dựng bộ nhận dạng kết hợp từ các CNN thành phần
Với CNN, khi nhận dạng với dữ liệu trích đặc trưng tự động là ảnh toàn mặt, thì
có thể nhiều thông tin không "nhìn thấy", nhưng nếu tách riêng thì có thể các đặc trưng này sẽ được "nhìn thấy" Vì thế tôi quyết định xây dựng bộ nhận dạng kết hợp
từ các CNN thành phần
Các thành phần của khuôn mặt tôi sử dụng để nhận dạng trong luận văn này là mắt trái, mắt phải, miệng và cả khuôn mặt Tôi không sử dụng thành phần mũi, vì đối với các hình có góc chụp hơi nghiêng trái hay nghiêng phải, cúi đầu hay ngước lên sẽ làm mất thông tin của mũi, vì thế tôi sẽ không chọn thành phần mũi làm dữ liệu để kiểm tra
Trang 30Để có thể nhận dạng khuôn mặt người với hệ thống tôi đề xuất, thì các hình ảnh trong bộ dữ liệu khuôn mặt phải thỏa yêu cầu sau:
- Dữ liệu phải được thấy đủ 2 mắt và miệng
- Dữ liệu phải được chụp trực diện, có quay một góc không đáng kể, tránh mất thông tin của mắt, cúi vừa phải để không mất thông tin của miệng
- Dữ liệu đã thông qua giai đoạn xác định khuôn mặt người, trong luận văn này tôi không tiến hành xác định khuôn mặt người (Face detection)
- Dữ liệu phải đa dạng về góc chụp (cho phép nghiêng một góc không đáng
kể, không quá 30 độ) nghiêng mà vẫn không mất thông tin như mắt trái, mắt phải và miệng
- Dữ liệu được chụp ở nhiều trạng thái khác nhau như cười hay không cười, há miệng hay bình thường, mở to mắt hay nheo mắt, đeo kính hay không đeo, đeo lệch xuống hay bình thường
Trong luận văn này, tôi tiến hành xây dựng mô hình CNN để huấn luyện và kiểm tra cho từng thành phần trong khuôn mặt như:
và kết quả của toàn mặt, kết hợp với một hàm độ đo để tổ hợp các kết quả, từ đó đưa
ra danh tính của ảnh mặt người kiểm tra
Trang 31CHƯƠNG 2 CƠ SỞ LÝ THUYẾT
2.1 Mạng Neural
Mạng neural nhân tạo (Artificial Neural Network – ANN) là mô hình xử lý thông
tin được mô phỏng dựa trên hoạt động của hệ thống thần kinh của sinh vật hay còn gọi
là mạng neural sinh học, Hình 2.1 Cấu tạo từ số lượng lớn các neural được kết nối với nhau để xử lý thông tin ANN giống như bộ não con người, được học bởi kinh nghiệm thông qua huấn luyện, có khả năng lưu giữ những kinh nghiệm tri thức và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết ANN được giới thiệu năm
1943 bởi nhà thần kinh học Warren McCulloch và nhà logic học Walter Pits [5] Các ứng dụng của Mạng neuron được sử dụng trong rất nhiều lĩnh vực như điện, điện tử, kinh tế, quân sự,… để giải quyết các bài toán có độ phức tạp và đòi hỏi có độ chính xác cao như điều khiển tự động, khai phá dữ liệu, nhận dạng,…
Hình 2.1 Mạng neural sinh học
2.1.1 Cấu trúc tổng quát của ann
Một ANN gồm ba tầng lớp đầu vào (input layer), các lớp ẩn (hidden layers) và cuối cùng là lớp đầu ra (output layer) được mô tả trong Hình 2.2, trong đó, lớp ẩn
gồm nhiều neural nhận dữ liệu đầu vào từ các lớp trước đó để xử lý và chuyển đổi các
dữ liệu này cho các lớp tiếp theo Một ANN có thể có nhiều lớp ẩn hoặc không có lớp
ẩn
Mỗi node trong mạng gọi là một neural Mỗi neural nhận các dữ liệu đầu vào xử
lý chúng và trả ra một kết quả duy nhất Kết quả đầu ra của neural này có thể làm dữ liệu đầu vào của các neural khác
Trang 32Hình 2.2 Cấu trúc của một ANN
Hình 2.3 mô tả quá trình xử lý của một neural trong ANN Trong đó input là dữ
liệu đầu vào, output là kết quả đầu ra Trọng số liên kết hay trọng số (connection
weights hay gọi tắt là weights) là thành phần rất quan trọng, thể hiện mức độ quan trọng đối với quá trình xử lý dữ liệu từ lớp này sang lớp khác Quá trình học của ANN thực ra là quá trình điều chỉnh trọng số của các dữ liệu đầu vào
Hình 2.3 Quá trình xử lý của một neural trong ANN
Hàm tổng tính tổng của tích trọng số và dữ liệu vào Hàm tính tổng một neural của dữ liệu đầu vào của lớp thứ
Trang 33Hàm kích hoạt hay hàm chuyển đổi tính toán đầu ra của một neural để chuyển đến lớp tiếp theo trong mạng neural Hàm kích hoạt phi tuyến được sử dụng vì mạng chỉ sử dụng các hàm kích hoạt tuyến tính có thể lược giản thông qua các biến đổi đại
số thành mô hình perceptron một lớp (là mô hình ANN đơn giản nhất, không có lớp ẩn) Một số hàm kích hoạt phi tuyến thường dùng là ReLU (Rectified Linear Unit), sigmoid, logistic, Gaussian, tanh, softmax, ReLU Hình 2.4
2.1.2 Một số dạng mạng neural
Mạng liên kết đầy đủ (fully connected) nếu mọi đầu ra của một lớp liên kết với
mọi neural của lớp tiếp theo
Mạng lan truyền thẳng (feedforward network) nếu không tồn tại liên kết giữa các
neural thuộc cùng một lớp
Mạng phản hồi (feedback network) nếu tồn tại đầu ra của một neural liên kết
ngược lại làm đầu vào của một neural cùng lớp
Mạng hồi quy (recurrent network) nếu các mạng phản hồi có các vòng lặp kín
Trang 342.1.3 Quá trình học của mạng neural
Quá trình học của mạng neural là quá trình lan truyền thông tin để làm thay đổi
các trọng số tốt nhất có thể Mạng neural được huấn luyện hay được học theo ba
phương pháp học có giám sát, học không giám sát và học tăng cường
2.1.3.1 Học có giám sát
Học có giám sát (supervised learning) là phương pháp học từ một tập dữ liệu
huấn luyện ta đã biết trước nhãn của dữ liệu cần học và số lớp cần phân loại của bộ dữ
Trang 35liệu được đem đi huấn luyện Đây là phương pháp học phổ biến nhất trong các phương pháp học của mạng neural Mục đích của phương pháp này là từ tập dữ liệu
đã gán nhãn qua quá trình học tạo ra một hàm số thật tốt để khi có dữ liệu mới ta có thể tính hay dự đoán được nhãn tương ứng của dữ liệu đó [5]
Ví dụ như nhận dạng chữ số viết tay, Hình 2.5 Tập dữ liệu huấn luyện gồm hàng nghìn chữ số viết tay của hàng nghìn người khác nhau Ta đưa các bức ảnh chữ số viết tay này vào thuật toán học và chỉ cho nó biết mỗi bức ảnh tương ứng với chữ số nào Sau quá trình học một mô hình hay một hàm số được tạo ra, khi nhận được bức ảnh mà mô hình chưa nhìn thấy bao giờ hay không nằm trong tập huấn luyện thì nó sẽ đưa ra dự đoán chữ số trong bức ảnh đó
Hình 2.5 Bộ cơ sở dữ liệu chữ số viết tay của MNIST
Phương pháp học giám sát chia ra thành hai loại chính là:
- Phân loại (classification): Nếu nhãn của các dữ liệu đầu vào được chia thành
một số hữu hạn nhóm Như các bài toán nhận dạng chữ số viết tay, dò tìm khuôn mặt người, …
- Hồi quy (regression): Nếu nhãn của các dữ liệu đầu vào không được chia thành
các nhóm mà là một giá trị thực cụ thể Ví dụ như bài toán dự đoán giá của một căn nhà, giá trị dinh dưỡng của một món ăn,…
2.1.3.3 Học bán giám sát
Học bán giám sát (Semi-Supervised Learning) là phương pháp học mà bộ dữ liệu
học có cả dữ liệu đã dán nhãn và chưa dán nhãn Theo các nhà nghiên cứu nhận thấy học dữ liệu chưa dán nhãn kết hợp với một phần dữ liệu đã dán nhãn giúp cải thiện một cách đáng kể độ chính xác Vì dữ liệu trong thực tế rất lớn, việc thu thập dữ liệu
Trang 36đã dán nhãn rất khó khăn, tốn thời gian và chi phí cao nên học bán giám sát được sử dụng phổ biến, áp dụng nhiều trong các bài toán thực tế Ví dụ như việc học từ bộ dữ liệu hình ảnh, văn bản,… trên internet, phần lớn dữ liệu chưa được dán nhãn nên phương pháp học bán giám sát là thích hợp nhất [5]
Một cách tiếp cận học bán giám sát là đồng huấn luyện, một hay nhiều bộ học huấn luyện cùng một tập dữ liệu nhưng mỗi bộ sẽ huấn luyện các đặc trưng khác nhau của tập dữ liệu, điều kiện lý tưởng nhất là các đặc trưng này độc lập với nhau Một cách tiếp cận khác là mô hình hóa phân phối xác xuất đồng thời của các đặc trưng và nhãn Các dữ liệu chưa dán nhãn, nhãn được coi là “dữ liệu còn thiếu” Sau đó, áp dụng các phương pháp xử lý dữ liệu còn thiếu như tối ưu kỳ vọng,… để ước lượng tham số
2.1.3.2 Học không giám sát
Học không giám sát (Unsupervised Learning) là phương pháp học từ một tập dữ
liệu cần học ta không biết trước nhãn của dữ liệu, cũng như số lớp đầu ra Thuật toán
sẽ dựa vào cấu trúc của dữ liệu để phân nhóm hay giảm chiều của dữ liệu,… Học không giám sát có liên quan chặt chẽ đến việc ước lượng mật độ trong thống kê Cách học này không sử dụng tri thức từ bên ngoài trong quá trình học nên còn được gọi là
tự tổ chức
Mạng neural điển hình cho cách học này là Seft – Organizing Map (SOM) Một
số thuật toán học không giám sát khác như k-means, Hieararchical Agglomerative Clustering (HAC), Fuzzy Cognitive Map (FCM),….Các hướng tiếp cận bài toán học không giám sát là (1) và (2) [5]:
(1) Phân cụm (cluster): Chia dữ liệu thành các cụm nhỏ dựa trên sự liên quan của
các dữ liệu trong mỗi cụm
(2) Liên kết (association): Bài toán khám phá ra quy luật của bộ dữ liệu cho
trước
Phần lớn ứng dụng học không giám sát vào các bài toán ước lượng như mô hình hóa thống kê, nén, lọc, phân nhóm,…
2.1.3.4 Học tăng cường
Học tăng cường (Reinforcement Learning) là phương pháp học giúp cho một hệ
thống tự động xác định hành động dựa trên hoàn cảnh để đạt lợi ích cao nhất Học
Trang 37tăng cường bằng cách thử nghiệm dữ liệu để khám phá ra hành động nào là tốt nhất Hành động đó không chỉ có lợi ích tốt cho bước hiện tại mà còn cho các bước tiếp theo Hai đặc điểm quan trọng để phân biệt học tăng cường là tìm kiếm thử - sai (trial-and-error search) và bồi dưỡng chậm (delayed reward) [5]
Môi trường học thường được biểu diễn dưới dạng Quy trình quyết định markov (Markov Decision Process - MDP) trạng thái hữu hạn Và các thuật toán học tăng cường liên quan đến các kỹ thuật quy hoạch động
Một cách hình thức, mô hình học tăng cường bao gồm: Tập các trạng thái của môi trường, tập các hành động và tập các điểm số Học tăng cường khai thác những gì
nó đã biết và khám phá môi trường mới, những hành động mới
Hiện tại, học tăng cường chủ yếu được áp dụng vào Lý thuyết trò chơi, thuật toán cần xác định hành động tiếp theo để đạt số điểm tốt nhất Ví dụ, AlphaGo của Google đánh cờ vây thắng con người, trong khi cờ vây có độ phức tạp cao xấp xĩ AlphaGo kết hợp cả học có giám sát và học tăng cường, Hình 2.6
Hình 2.6 AlphaGo của Google
2.1.4 Thuật toán lan truyền ngƣợc
Với thuật toán Lan truyền ngược (Backpropagation Algorithm), giả sử
( ) là một hàm lỗi của bài toán, trong đó là tập hợp tất cả các ma trận trọng số giữa các lớp và hướng của mỗi lớp là cặp dữ liệu huấn luyện, là tập hợp các điểm dữ liệu, là nhãn của các điểm dữ liệu tương ứng trong Đầu ra dự
đoán ̂ của dữ liệu đầu vào của mạng neural truyền thẳng đa lớp được tính như sau:
Trang 38( )
Với là số cặp dữ liệu ( ) trong tập huấn luyện
Theo công thức (15) thì việc tính đạo hàm của hàm lỗi theo trọng số và hướng một cách trực tiếp là cực kỳ phức tạp, vì hàm lỗi không phụ thuộc trực tiếp vào các hệ
số
Phương pháp phổ biến nhất để tính đạo hàn của hàm lỗi có tên là lan truyền ngược Lan truyền ngược giúp tính đạo hàm ngược từ lớp cuối cùng đến lớp đầu tiên Lớp cuối cùng được tính trước vì nó gần hơn với đầu ra dự đoán và hàm lỗi Việc tính
Trang 39toán đạo hàm của các lớp trước được thực hiện dựa trên nguyên tắc xích, tức là đạo hàm của hàm hợp
( ) ( ) ( ( )) ( ) (16) Với ( ) và ( )
Với một cặp điểm dữ liệu huấn luyện ( ) và hàm lỗi chỉ xét cho cặp điểm này, ta có thể tính đạo hàm của hàm lỗi theo ma trận trọng số và hướng Đạo hàm của hàm lỗi theo chỉ một thành phần của ma trận trọng số của lớp cuối cùng
( )
( )
( )
Trang 40Hình 2.7 Mô phỏng cách tính lan truyền ngƣợc
( )
( )
( ∑ ( ) ( )( )