Hình 2-5 Kiến trúc mạng phát hiện khuôn mặt S3FD...8Hình 2-6 Minh họa ý tưởng Triplet Loss...9 Hình 2-7 Hiệu ứng hành xử của mô hình khi học bang Center Loss cho bài toán phân loại ký tự
Trang 1ĐẠI HỌC QUỐC GIA TP HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
NGUYỄN HOÀNG MINH
NHẬN DIỆN KHUÔN MẶT BẰNG DEEP LEARNING
Ngành: Khoa học máy tính
Mã số: 60.48.01.01
LUẬN VĂN THẠC SĨ
TP HỒ CHÍ MINH, tháng 12 năm 2018
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA ĐHQG - HCM
Cán bộ hướng dẫn khoa học: TS Lê Thành Sách
Cán bộ chấm nhận xét 1: PGS.TS Lê Hoàng Thái
Cán bộ chấm nhận xét 2: TS Nguyễn Hồ Mẩn Rạng
Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCM ngày 26 tháng 12 năm 2018 Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm: 1 PGS TS Quản Thành Thơ
2 TS Phạm Hoàng Anh
3 PGS.TS Lê Hoàng Thái
4 TS Nguyễn Hồ Mẩn Rạng
5 TS Nguyễn An Khương
Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)
Trang 3ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VỆT NAM TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ
Họ tên học viên: Nguyễn Hoàng Minh MSHV: 1570740
Ngày, tháng, năm sinh: 03/06/1992 Nơi sinh: TP HCM
Chuyên ngành: Khoa học máy tính Mã số: 60.48.01.01 I TÊN ĐỀ TÀI: Nhận diện khuôn mặt bằng Deep Learning (Face recognition with deep learning)
II NHIỆM VỤ VÀ NỘI DUNG: Đề tài tìm hiểu và hiện thực các phương pháp nhận diện khuôn mặt bằng Deep Learning Từ đó đề xuất cải tiến phương pháp và định hướng triển khai ứng dụng
IH NGÀY GIAO NHIỆM VỤ : 26/02/2018
IV NGÀY HOÀN THÀNH NHIỆM VỤ: 02/12/2018
V CÁN BỘ HƯỚNG DẪN: TS Lề Thành Sách
Tp HCM, ngày tháng năm
(Họ tên và chữ ký)
(Họ tên và chữ ký)
Trang 4LỜI CẢM ƠN
Khoảng thời gian theo học chương trình cao học tại trường Đại học Bách Khoathành phố Hồ Chí Minh mang lại rất nhiều trải nghiệm hữu ích về kiến thức, cuộcsống Những người luôn bên cạnh tôi xuyên suốt, đặc biệt là giai đoạn thực hiện luậnvăn, mang đến cho tôi nguồn động viên, quan tâm và giúp đỡ là gia đình, thầy cô, bạnbè
Tôi xin gửi lời cảm ơn sâu sắc nhất đầu tiên là đến với gia đình nhỏ của mình,những người chung tổ ấm: ba, mẹ và anh trai Sau giờ học, giờ làm mệt mỏi mỗi ngày,nơi ta trở về đó không đâu khác chính là nhà Ba mẹ tôi luôn động viên và âm thầmđứng sau ủng hộ tôi những lúc tôi khó khăn nhất
Lời cảm ơn chân thành nhất mà tôi muốn gửi đến đó là người thầy đã tận tâmhướng dẫn tôi trong suốt thời gian vừa qua, Tiến sĩ Lê Thành Sách Thầy là người rấtgiỏi chuyên môn, giải đáp các thắc mắc và định hướng giải quyết các vấn đề cho tôitrong hơn một năm qua Thầy là người dìu dắt, mở ra những chân trời kiến thức mớikhi tôi mới chập chững bắt đầu nghiên cứu đề tài từ giai đoạn đầu tiên
Tôi xin gửi lời cảm ơn đến ban quản lý phòng thí nghiệm ACLab tại phòng301B9 đã tạo điều kiện cho tôi có không gian nghiên cứu làm luận văn tốt nhất Bêncạnh đó, tôi cũng cảm ơn đến các thành viên thuộc nhóm nghiên cứu GVLab của thầy
Lê Thành Sách đã dành thời gian hỗ trợ tôi trong thời gian vừa qua Một lời cảm ơnkhông thể thiếu đó chính là các nguồn tài nguyên máy tính hỗ trợ đến từ nhóm nghiêncứu HPCLab của thầy Thoại Nam
Tôi cũng xin cảm ơn đến các thầy cô của khoa Khoa học và Kỹ thuật Máy tính,đặc biệt các thầy cô đã tham gia giảng dạy các môn trong chương trình cao học mà tôi
đã theo học Các thầy cô là người trang bị, trau dồi thêm cho tôi các kiến thức nềntảng, kĩ năng nghiên cứu, kĩ năng tìm hiểu và giải quyết vấn đề trong học thuật cũngnhư cuộc sống thực tế
Cuối cùng tôi muốn gửi lời cảm ơn to lớn đến trường Đại học Bách Khoa thànhphố Hồ Chí Minh, nơi tôi theo học từ quãng thời gian đại học Tôi xin cảm ơn bangiám hiệu nhà trường, các thầy cô phòng sau đại học, các cô văn phòng khoa Khoahọc và Kỹ thuật Máy tính, các cô chú nhân viên của trường đã tạo ra môi trường họctập thật tốt cho rất nhiều sinh viên, học viên
Một lần nữa, tôi xin chân thành cảm ơn!
Nguyễn Hoàng Minh
02/12/2018
Trang 5TÓM TẮT LUẬN VĂN
Những tiến bộ vượt bậc về công nghệ hiện nay đang mang đến rất nhiều ứngdụng mới ở nhiều lĩnh vực trong đời sống Đặc biệt, ngành công nghệ thông tin là mộtngành có tốc độ phát triển rất nhanh và giúp cải thiện rõ rệt cuộc sống của chúng ta.Nhũng năm gần đây, các cải tiến về mạng nơ-ron nhân tạo trong lĩnh vực học sâumang đến những kết quả vượt trội so với các phương pháp xử lý ảnh kiểu truyềnthống Từ đó, hàng loạt ứng dụng thông minh dần tiếp cận tới con người như: nhậndiện khuôn mặt, nhận diện giọng nói, nhận diện biển số xe, đếm đối tượng, theo vếtđối tượng, chẩn đoán ảnh y khoa, Trong đó, các ứng dụng liên quan đến giám sát anninh xã hội là cực kỳ quan trọng và đang giành được nhiều sự quan tâm từ các cơ quanquản lý
Nhận diện khuôn mặt là một trong những cách thức để giám sát an ninh Antoàn xã hội là cần thiết ở mọi nơi, một số địa điểm / đơn vị cần mức độ an ninh caohơn bình thường như là: cửa hàng siêu thị, tòa nhà công ty, chung cư cao cấp, trungtâm mua sắm, tòa nhà cao tầng, cơ quan công an, doanh trại quân đội, an ninh quốcphòng, Việc kiểm soát rõ ràng ra vào theo danh tính bằng khuôn mặt sẽ góp phầnđảm bảo an ninh bằng việc tự động giám sát qua các camera
Nhận diện danh tính qua khuôn mặt không chỉ là lõi cốt yếu của ngành an ninh,
mà nó còn có thể áp dụng ở nhiều lĩnh vực khác như: chăm sóc khách hàng của doanhnghiệp, điểm danh học sinh / sinh viên trong ngành giáo dục, giám sát trẻ nhỏ tronglớp học (từ đó phát hiện cảnh báo bất thường), ứng dụng nhận diện khuôn mặt còn
có thể áp dụng với các ứng dụng thông minh khác nhằm mang đến một giải pháp quản
lý giám sát hoàn thiện hơn
ứng dụng nhận diện khuôn mặt từ hình ảnh có hai thành phần cốt lõi: phát hiệnkhuôn mặt trong ảnh và nhận diện danh tính khuôn mặt Hai thành phần nối liên tiếpnhau như vậy tạo thành một ứng dụng hoàn chỉnh cho phép nhận diện khuôn mặttrong hình ảnh / video Hình ảnh khuôn mặt được phát hiện ở mô-đun phát hiện khuônmặt được trích xuất ra và chuyển qua mô-đun nhận diện Phát hiện khuôn mặt đã làbài toán kinh điển của xử lý ảnh, đề tài luận văn sẽ khảo sát các bài báo về phát hiệnkhuôn mặt Nhận diện ảnh khuôn mặt cũng là đề tài nóng hổi của những bài báo gầnđây bằng cách áp dụng mạng học sâu nơ-ron nhân tạo Báo cáo cũng sẽ nêu các thínghiệm về cải tiến cho các bước trong phương pháp nhận diện khuôn mặt
Trang 6Face recognition is one of many ways to get security surveillance Safe social
is necessary, some places I units requhe high security level such as: supermarkets,
buildings, apartments, malls, skyscrapers, military areas, We are able to control thesecurity by recognizing human face automatically with multiple of cameras
Face recognition is not only an essential core of security domain, but also itapplies to many other domains: customer service, checking student attendance,children surveillance for safety, Face recognition application together with othersmart technologies give US a solution in security surveillance
Face recognition in wild has two parts: face detection and face recognition.These two parts are the essential components of face recognition flow in video Thefaces detected by face detection module will be fed to the recognition module Facedetection has been researched for a long time, this report surveys many papers related
to face detection Face recognition is also a hot subject of many recent papers byapplying deep neural network The report proposes an improvement for face rec-ognition flow
Trang 7LỜI CAM ĐOAN
Các tài liệu, bài báo, trang web mà tôi đã tham khảo trong quá trình thực hiệnluận văn đều được trích dẫn đầy đủ rõ ràng nguồn gốc trình bày ở mục tài liệu thamkhảo Tôi xin cam đoan rằng ngoài các trích dẫn tham khảo trên, toàn bộ nội dungtrong báo cáo đều do tôi tự soạn thảo từ những kết quả nghiên cứu do tôi tham giathực hiện và các kết quả của nhóm nghiên cứu GVLab do thầy Lê Thành Sách hướngdẫn, không sao chép từ bất kì tài liệu nào khác
Tôi sẽ hoàn toàn chịu xử lý theo qui định nếu có bất cứ sai phạm nào so với lờicam kết
Nguyễn Hoàng Minh
Trang 8MỤC LỤC
1 TÔNG QUAN 1
1.1 Giới thiệu đề tài 1
1.2 Mục tiêu đề tài 2
1.3 Ý nghĩa đề tài 2
1.3.1 Ý nghĩa thực tiễn 2
1.3.2 Ý nghĩa khoa học 2
1.4 Phạm vi đề tài 3
1.5 Bố cục luận văn 3
2 CÁC CÔNG TRÌNH NGHIÊN cúu LIÊN QUAN 4
2.1 T ổng quan các hướng nghiên cứu về bài toán nhận diện khuôn mặt 4
2.2 Tổng quan các phương pháp về phát hiện khuôn mặt 5
2.1.1 Multi-task Cascaded Convolutional Networks (MTCNN) 5
2.2.2 Single Shot MultiBox Detector (SSD) 6
2.2.3 Single Shot Scale-invariant Face Detector (S3FD) 8
2.3 Tổng quan các phương pháp về nhận diện khuôn mặt 8
2.3.1 Facenet: triplet loss 8
2.3.2 Center Loss 9
2.3.3 Sphereface 11
2.4 Tổng kết và nhận xét 12
3 Cơ SỞ LÝ THUYẾT 13
3.1 Chuẩn hóa dữ liệu (data normalization) 13
3.2 Làm giàu dữ liệu (data augmentation) 13
3.3 Tích chập trong miền rời rạc (convolution) 15
3.4 Mạng nơ-ron truyền thẳng nhiều lớp 17
3.4.1 Mạng nơ-ron truyền thẳng nhiều lớp (MLP) 17
3.4.2 Hàm kích hoạt sigmoid 18
Trang 93.4.3 Hàm kích hoạt tanh 19
3.4.4 Giải thuật Gradient Descent 19
3.5 Mạng nơ-ron tích chập (CNN) 19
3.6 Hàm lỗi cross entropy 21
3.7 Kết nối dày đặc (dense connection) 21
4 PHƯƠNG PHÁP ĐỀ XUẤT 23
4.1 Cải tiến kiên trúc mạng Sphereface 23
4.2 Triển khai mô hình nhận diện trên Jetson TX2 24
5 CÁC IHÍ NGHỆM VÀ KẾT QUẢ THÍ NGHỆM 26
5.1 Tập dữ liệu 26
5.1.1 Tập dữ liệu huấn luyện 26
5.1.2 Tập dữ liệu đánh giá 27
5.2 Phương pháp đánh giá 28
5.2.1 Kiểm thử chéo 28
5.2.2 Chỉ số độ chính xác mAP 29
5.3 Thí nghiệm các phương pháp nhận diện 30
5.3.1 Thí nghiệm huấn luyện mạng nhận diện Sphereface 30
5.3.2 Thí nghiệm huấn luyện Sphereface theo phương pháp đề xuất 32
5.3.3 Thí nghiệm huấn luyện mô hình phát hiện và nhận diện khuôn mặt triển khai trên Jetson TX2 32
5.4 Kết quả thí nghiệm 34
5.4.1 Biểu đồ thống kê quá trình huấn luyện 34
5.4.2 Kết quả đánh giá các mô hình 36
6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 42
7 DANH MỤC TÀI LỆU THAM KHẢO 43
DANH MỤC HÌNH ẢNH Hình 2-1 Mô hình nhận diện khuôn mặt trong ảnh tự nhiên 4
Hình 2-2 Kiến trúc mạng MTCNN 5
Hình 2-3 Các chặng xử lý trong MTCNN 6
Hình 2-4 Kiến trúc mạng SSD300 7
Trang 10Hình 2-5 Kiến trúc mạng phát hiện khuôn mặt S3FD 8
Hình 2-6 Minh họa ý tưởng Triplet Loss 9
Hình 2-7 Hiệu ứng hành xử của mô hình khi học bang Center Loss cho bài toán phân loại ký tự MNIST 10
Hình 2-8 Kiến trúc mạng của phương pháp Center Loss 10
Hình 2-9 Các cấu hình kiến trúc mạng Sphereface 11
Hình 3-1 Ảnh từ trái qua: ảnh gốc, ảnh lật ngang, ảnh lật dọc 14
Hình 3-2 Ảnh được gieo nhiễu 14
Hình 3-3 Ảnh biến đổi xám 15
Hình 3-4 Ảnh điều chỉnh màu ngẫu nhiên 15
Hình 3-5 Ví dụ ảnh đầu vào cho phép convolution 16
Hình 3-6 Ảnh đầu ra sau khi áp dụng toán tử convolution 17
Hình 3-7 Minh họa mạng nơ-ron truyền thẳng nhiều lớp (MLP) 18
Hình 3-8 Minh họa việc tính toán giá trị của nút 18
Hình 3-9 Các kiến trúc mạng học sâu VGG [11], mạng điển hình của CNN 20
Hình 3-10 Biểu đồ hàm mất mát của quá trình huấn luyện mô hình mạng CenterLoss .21
Hình 3-11 Kết nối bằng phép cộng và kết nối dày đặc 22
Hình 4-1 Kiến trúc mạng cải tiến dùng phép nối thay phép cộng trong skip connection .23
Hình 4-2 Quy trình triển khai mô hình từ framework Pytorch sang TensorRT chạy trên máy Jetson TX2 25
Hình 5-1 Một số hình ảnh được trích từ tập CASIA Webface 26
Hình 5-2 Các hiệu ứng trong tập dữ liệu WIDER FACE 27
Hình 5-3 Một số hình ảnh trong tập dữ liệu LFW 27
Hình 5-4 Một số hình ảnh từ tập dữ liệu PEOPLE20 28
Hình 5-5 Bo nhúng Jetson TX2 trong hộp nhôm 30
Hình 5-6 Biểu đồ huấn luyện thí nghiệm 1 34
Hình 5-7 Biểu đồ huấn luyện thí nghiệm 2 35
Hình 5-8 Biểu đồ huấn luyện thí nghiệm 3 35
Hình 5-9 Biểu đồ huấn luyện thí nghiệm 4 36
Trang 11Hình 5-10 Biểu đồ huấn luyện thí nghiệm 5 36
Hình 5-11 Nhận diện khuôn mặt ngược sáng 37
Hình 5-12 Nhận diện phân biệt được nhiều khuôn mặt 38
Hình 5-13 Nhận diện người lạ 38
Hình 5-14 Một số hình kết quả phát hiện bởi phương pháp SSD300 39
Hình 5-15 Biểu đồ so sánh tốc độ xử lý mô hình Sphereface cải tiến trên các máy 40 Hình 5-16 Xử lý trực tuyến nhận diện khuôn mặt trên Jetson TX2 41
Trang 12DANH MỤC BẢNG
Bảng 5-1 Kết quả đánh giá các mô hình nhận diện khuôn mặt 37
Bảng 5-2 Tốc độ xử lý của các mô hình nhận diện với batch-size = 1 39
Bảng 5-3 Tốc độ xử lý của các mô hình nhận diện với batch-size = 4 39
Bảng 5-4 Tốc độ xử lý của các mô hình nhận diện với batch-size = 8 40
Bảng 5-5 Tốc độ xử lý của các mô hình nhận diện với batch-size = 16 40
Trang 13DANH MỤC CÁC TỪ VIẾT TẮT
MTCNN Multi-task Cascaded Convolutional Networks
S3FD Single Shot Scale-invariant Face Detector
Xll
Trang 141.1 Giói thiệu đề tài
Trong những năm gần đây, sự tiến bộ của trí tuệ nhân tạo, đặc biệt mô hình họcsâu đang là làn sóng mạnh mẽ được áp dụng ở nhiều lĩnh vực như xử lý ảnh, xử lý âmthanh, xử lý ngôn ngữ tự nhiên, Các ứng dụng cụ thể gần gũi với con người sử dụnghọc sâu như: nhận diện vật thể, phát hiện đối tượng, phát hiện khuôn mặt, nhận diệnkhuôn mặt, đếm đối tượng, phát hiện khối u trong ảnh y khoa, xây dựng hình ảnh 3D
từ ảnh 2D, Các công nghệ này đang dần được áp dụng rộng rãi vào trong ngànhcông nghiệp và đời sống của con người
Phát hiện và nhận diện khuôn mặt rất tiềm năng trong việc sử dụng học sâu.Phát hiện khuôn mặt có thể giúp camera lấy nét hình ảnh khuôn mặt để hình ảnh chụpđược đẹp và rõ hơn Hiện nay gần như mọi điện thoại thông minh có camera đều đãđược tích hợp khả năng phát hiện mặt để lấy nét Nhận diện khuôn mặt có 2 bài toánnhỏ trong đó là xác thực khuôn mặt và xác thực danh tính của khuôn mặt Hiện nayxác thực khuôn mặt là ứng dụng đã có mặt trên nhiều thiết bị điện thoại di động đờimới, cho phép người dùng mở khóa bằng khuôn mặt Còn xác thực danh tính là từ ảnhkhuôn mặt của một người, ta muốn tìm ra danh tính của người này trong thư viện ảnhkhuôn mặt ta đã có, mong muốn xác định được người đó là ai
ứng dụng của nhận diện khuôn mặt xét ở tầm vĩ mô có thể ứng dụng vào anninh phòng chống tội phạm Tự động hóa quá trình giám sát qua các camera bằng trítuệ nhân tạo là một bước tiến lớn Xã hội sẽ trở nên an ninh hơn, ít tốn công sức thuêngười thủ công giám sát nhưng hiệu quả mang lại cực kỳ nhiều
Nhận diện khuôn mặt ở tầm nhỏ hơn có thể là ứng dụng chấm công cho nhânviên hoặc tìm kiếm danh tính Nhận diện khuôn mặt đang là bài toán lớn cần được đàosâu nghiên cứu vì nó có khá nhiều thử thách Bài toán phân loại đối tượng đã khá thửthách nếu số lượng đối tượng cần phân loại lớn (từ 20 đối tượng trở lên) Phát hiệnkhuôn mặt là bài toán phân loại 2 đối tượng: khuôn mặt và không phải mặt Nhận diệnkhuôn mặt là bài toán phân loại ở mức cá thể Điểm thách thức đó là mỗi khuôn mặtđều cùng có mắt, mũi, miệng và cùng khuôn dạng Ta sẽ tìm cách nhận diện bằng cácchi tiết đặc trưng của người đó
Trang 151.2 Mục tiêu đề tài
Mục tiêu nghiên cứu của đề tài là nghiên cứu các phương pháp phát hiện vànhận diện khuôn mặt Các phương pháp nhận diện khuôn mặt khác nhau sẽ có độchính xác và tốc độ xử lý hình ảnh khác nhau Đề tài sẽ thực hiện thí nghiệm nghiêncứu và đo đạc hiệu suất các phương pháp nhận diện khuôn mặt Phần còn lại là nghiêncứu các phương pháp nhận diện khuôn mặt tiên tiến Từ các tìm hiểu và nghiên cứutrên để có thể đưa ra đề xuất cải tiến hiệu quả cho bài toán nhận diện khuôn mặt từhình ảnh / camera bằng cách sử dụng deep learning
1.3 Ý nghĩa đề tài
Việc nhận diện khuôn mặt từ hình ảnh có một số điểm khó nhất định so với cácbài toán khác Điển hình là ta phải nhận diện đối tượng ở mức thực thể thay vì chỉ lànhận diện đối tượng ở mức lớp (các bài toán phân loại) Ngoài ra, việc kết hợp haikhối mô hình phát hiện khuôn mặt và nhận diện khuôn mặt nhưng vẫn phải đảm bảohiệu suất tính toán để có thể áp dụng vào thực tiễn cũng là một thử thách của đề tài.Giải pháp để đảm bảo giữa chất lượng và hiệu suất tính toán cho bài toán nhận diệnkhuôn mặt đã là đóng góp lớn cho ứng dụng thực tiễn cũng như mang lại ý nghĩa khoahọc
1.3.1 Ý nghĩa thực tiễn
• ứng dụng nhận diện khuôn mặt vào an ninh phòng chống tội phạm
• Quản lý xã hội một cách tự động hóa
• ứng dụng nhận diện khuôn mặt vào doanh nghiệp về chăm sóc khách hàng,quản lý nhân viên
• ứng dụng nhận diện khuôn mặt vào giáo dục: điểm danh học sinh, sinh viên,giám sát trẻ nhỏ
• ứng dụng nhận diện khuôn mặt kết hợp với các ứng dụng thông minh khác đểnâng mức tự động hóa quản lý xã hội lên cấp cao và phức tạp hơn
Trang 161.4 Phạm vi đề tài
• Đề tài chỉ tập trung cho bài toán với nhận diện khuôn mặt ở góc nhìn thẳng(khuôn mặt không được xoay quá 45 độ cho góc nhìn trực diện) Hình ảnh chứakhuôn mặt và cả hình nền (hình trong tự nhiên)
• Điều kiện ánh sáng đủ để nhận diện khuôn mặt, khuôn mặt không bị che khuấtquá 1/2 khuôn mặt
• Các khuôn mặt xuất hiện trong ảnh đều phải có trong thư viện ảnh, tức danhtính xác định
1.5 Bố cục luận văn
Trong báo cáo này có tất cả 7 chương Chương 2 có mục đích giới thiệu cáccông trình nghiên cứu liên quan, các hướng giải quyết cho bài toán nhận diện khuônmặt Chương 3 cung cấp một số cơ sở lý thuyết đặt nền móng cho các mô hình được
đề xuất trong chương 4 Chương 5 đưa ra thông tin thí nghiệm, các chỉ tiêu đánh giá
và kết quả đánh giá của các phương pháp cùng với một số nhận xét dựa vào các kếtquả Chương 6 kết luận báo cáo và trình bày hướng phát triển trong tương lai Chương
7 trình bày danh sách các tài liệu tham khảo được trích dẫn trong đề tài
Trang 172 CÁC CÔNG TRÌNH NGHIÊN cứu LIÊN QUAN
2.1 Tông quan các hướng nghiên cứu về bài toán nhận diện
khuôn mặt
Bài toán nhận diện khuôn mặt trong ảnh tự nhiên được xử lý qua 2 giai đoạn:phát hiện khuôn mặt và nhận diện khuôn mặt Hai mô hình mạng này độc lập nhau,đàu ra của mạng phát hiện sẽ qua bước xử lý trung gian là cắt ảnh khuôn mặt (crop),các ảnh khuôn mặt đã cắt sẽ là ảnh đầu vào của mạng nhận diện Quy trình các bướcchính cho nhận diện khuôn mặt được mô tả ờ hình dưới qua ví dụ của phương phápSphereface [1]:
Hình 2-1 Mô hình nhận diện khuôn mặt trang ảnh tợ nhiên
Phương phấp MTCNN [2] (sẽ trình bày ở mục sau) phất hiện khuôn mặt trongảnh, thông tin đầu ra sẽ cố được các thông tin sau: vị trí hình chữ nhật bao khuôn mặt
đã được căn chỉnh, vị trí 5 điểm trọng yếu (tiếng Anh: landmark, báo cáo sẽ dùng từlandmark thay vì từ đỉểm trọng yếu ở các mục phía sau) trên khuôn mặt: 2 mắt, mũi, 2điểm miệng (ưái và phải) Tù thông tin landmark, ta tiến hành tiền xử lý trước khi đưaqua mạng nhận diện bằng cách chuẩn hóa khuôn mặt (alignment) theo các điểmlandmark Ý tưởng của phép chuẩn hốa đơn giản là điều chỉnh các landmark về các vịtrí chuẩn định trước trên ảnh cố kích thước cố định
Hình ảnh khuôn mặt đã được chuẩn hóa sẽ được đẩy qua mạng nhận diện để rúttrích đặc trưng dị biệt, đầu ra của mạng nhận diện là vector đạc trưng Vector đặc trungnày mang tính chất cực kỳ phân biệt, các hình ảnh củạ cùng một người thì cấc vectorđặc trưng này phải càng gần nhau (về góc hoặc về khoảng cách) Hai người khác nhauthì các vector đặc trưng tương ứng của họ phải càng xa nhau
Trang 18Chính nhờ tính chất này mà ta có thể mã hóa hình ảnh khuôn mặt thành vector đặctrưng để tìm kiêm, xác thực khuôn mặt.
Trong lĩnh vực nghiên cứu, người ta nghiên cứu phát triển riêng từng hướngcho phát hiện khuôn mặt và nhận diện khuôn mặt về phương pháp phát hiện khuônmặt, những phương pháp dùng deep learning gần đây như S3FD [3], MTCNN [2],Faster R-CNN [4], Một số phương pháp nhận diện khuôn mặt dùng deep learningnhư: Sphereface [1], Center Loss [5], Facenet [6], VGG Face [7],
2.2 Tổng quan các phưong pháp về phát hiện khuôn mặt
2.1.1 Multi-task Cascaded Convolutional Networks (MTCNN)
Multi-task Cascaded Convolutional Neural Networks (viết tắt MTCNN) làphương pháp phát hiện khuôn mặt theo mô hình đổ thác (cascade) Phương pháp này
sử dụng các mạng nơ-ron nông (ít lớp ẩn) để phân loại khuôn mặt MTCNN sử dụng 3mạng nơ-ron thiết kế mô hình thác nước (cascade), tương tự phương pháp phát hiệnkhuôn mặt Haar Cascade của Viola-Jones [8] Nếu sau khi được loại bởi mô hìnhConvolutional Neural Network (CNN) thứ nhất, hình ảnh được cho là khuôn mặt sẽtiếp tục qua mô hình CNN thứ hai cho việc phân loại Nếu hình ảnh được vẫn đượcphân loại là khuôn mặt thì sẽ tiếp tục qua mô hình phân loại CNN thứ ba Nếu ảnh qua
cả 3 mạng thì đó là ảnh khuôn mặt, ngược lại ảnh không phải khuôn mặt
Trang 19Hình 2-2 Kiến trúc mạng MTCNN
Kiến trúc mạng của MTCNN mô hình đầu tiên không chứa các lớp kết nối đầy
đủ mà chỉ có các lớp Convolution 2D trong mạng Do đó cơ chế hoạt động của nó khi
ta cho ảnh vào sẽ giống như kỹ thuật Sliding Windows Hiệu suất phân loại củaphương pháp này đạt kết quả khá cao trên những tập dữ liệu nổi tiếng thế giới FDDB[9] dành cho đánh giá phương pháp phát hiện khuôn mặt
Hình 2-3 Các chặng xử lý trong MTCNN
MTCNN là phương pháp rút trích được các thông tin: vị trí khuôn mặt, cănchỉnh khuôn mặt, landmark trên khuôn mặt (mắt, mũi, miệng) Các mô hình mạngCNN trong MTCNN được huấn luyện trên tập dữ liệu phát hiện khuôn mặt và tập dữliệu khuôn mặt có các điểm landmark Mỗi mô hình con có 3 đầu ra, độ tin cậy nhãnkhuôn mặt (2 chiều), thông tin căn chỉnh vị trí khuôn mặt (4 chiều) và landmark (10chiều) Hàm mất mát cho phân loại khuôn mặt là Cross Entropy, cho căn chỉnh vị trímặt và landmark là Mean Squared Error (MSE)
2.2.2 Single Shot MultiBox Detector (SSD)
Single Shot MultiBox Detector (viết tắt SSD) [10] là phương pháp phát hiệnđối tượng tổng quát SSD sử dụng mạng nền VGG [11] cho rút trích đặc trưng hìnhảnh phục vụ tác vụ phát hiện vị trí đối tượng và phân loại đối tượng SSD cùng vớiYOLO [12] [13] [14] là những phương pháp hiếm hoi phát hiện đối tượng end-to- end.Kiến trúc mạng SSD được minh họa như hình bên dưới
24x24x3
connect
Iin face _
classification 1x1x2
1 face classification I ,2
I
n bounding box
u u regression Facial landmark I localization
3x3x128 256 Ũ Facial landmark localization _ 10
c™ v:3 * 3 Conv L 3x3 Conv:2x2 fully
I
Conv: 3x3 MP: 3x3 Conv: 3x3
input size
48x48x3
/[] face classification 2 -• B Ij J J bounding box regression
Trang 20VGG
Trang 21Hĩnh 2-4 Kiến trúc mạng SSD300
SSD dùng 6 tầng bản đồ đặc trưng cho phát hiện đối tượng Kiến trúc mạngVGG cũng như lớp đắp thêm (extra) có các lớp max-pooling làm giảm dàn kích thướccác bản đồ đặc trưng Các tầng đặc trưng dùng để phát hiện đối tượng lần lượt có cáckích thước là: 38x38, 19x19, 10x10, 5x5, 3x3, lxl Chính nhờ các tầng này mà takhông cần xây dựng kim tự tháp ảnh với nhiều kích thước đầu vào khác nhau (imagepyramid)
Mỗi "pixel" trên bản đồ đặc trưng tương quan với một vùng quan sát trên ảnhgốc Vì vậy, ta có thể thiết kế các hộp phát hiện đối tượng (anchor box / default box)với các tỉ lệ hình dáng khác nhau Kiến trúc mạng SSD 300 cố tổng cộng 8732
Trang 22default box Kiến trúc mạng SSD 512 có tổng cộng
24608 default box Ảnh đầu vào to hơn cho phép ta pháthiện các đối tượng nhỏ hơn trong ảnh
2.2.3 Single Shot Scale-invariant Face Detector (S 3 FD)
Single Shot Scale-invariant Face Detector (viết tắt S3FD) [3] là phương phápphát hiện khuôn mặt cải tiến trên phương pháp phát hiện đối tượng tổng quát là SSD[10] Ba điểm cải tiến chính của S3FD so với SSD đó là:
• Ảnh đầu vào kích thước lớn hơn: 640x640 thay vì 300x300 hoặc 512x512
• Tỉ lệ IoU giữa default box và groundtruth giảm xuống còn 0.35 thay vì 0.5.Nhằm mục đích giảm thiểu sự mất mát nhãn mục tiêu của các đối tượng quánhỏ
• Áp dụng kĩ thuật max-out [15] background cho lớp phát hiện đối tượng nhỏ.Hình kiến trúc mạng của S3FD:
Hình 2-5 Kiến trúc mạng phát hiện khuôn mặt S 3 FD
MÔ hình phát hiện khuôn mặt S3FD là một trong những phương pháp phát hiệnkhuôn mặt cho ra kết quả tốt nhất hiện nay trên tập dữ liệu đánh giá FDDB [9] Nhờvào ba điểm cải tiến trên mà mô hình mạng phát hiện được đối tượng nhỏ hơn, chínhxác hơn, nhưng đánh đổi của nâng cao về độ chính xác là thời gian xử lý chậm hơn dođầu vào lớn 640x640
_
-2.3 Tông quan các phưong pháp vê nhận diện khuôn mặt
2.3.1 Facenet: triplet loss
Facenet [6] là mô hình mạng học sâu dùng hàm học Triplet Loss O giai đoạnhuấn luyện, ta cần tìm bộ ba vector đặc trưng của các mẫu, trong có hai mẫu cùng lớp
và một mẫu khác lớp Với bộ ba này ta cần cực tiểu hóa khoảng cách của cặp mẫudương và cực đại hóa khoảng cách của cặp mẫu âm Công thức Triplet Loss:
Trang 23Ilf (xf) - f (xf) II* + a < II/(x?) - f (xĩ) II!
Trang 24Giải thích ký hiệu:
• f( x ?y vector đặc trưng của mẫu đang xét
• f( x ỉy vector đặc trưng cùng nhóm của mẫu đang xét.
• f( x ĩ) : vector đặc trưng của mẫu khác nhốm với mẫu đang xét
• a: khoảng cách giữa cặp mẫu âm và cặp mẫu dương cần phân tách.
Thử thách của việc huấn luyện mô hình dùng Triplet Loss đó là ta phải tìm bộ
ba mẫu trong bố dữ liệu Cặp mẫu dương nhóm tác giả chọn cặp mẫu dương cố khoảngcách xa nhau nhất Đổi vối cặp mẫu âm thì chọn cặp có khoảng cách gần nhau nhất Ý
đồ của việc chọn bộ ba có tính chất như trên là kéo cặp mẫu dương cùng ỉớp về gầnnhau hơn và đẩy xa nhau ra với mẫu khác nhóm Kết quả của học hộỉ tự là mô hình cốkhả năng rút trích đặc trưng phân biệt cho từng người và đặc trưng của từng người sẽ ởgần một tâm cụm nào đố trong miền không gian đặc trưng
Hình 2-6 Minh họa ý tràng Triplet Loss
Hình trên minh họa ý tưởng chính của Triplet Loss Các đặc trưng của mẫu âmban đầu chưa phân tách cố thể nằm gần trong nhóm mẫu dương Qua quá trình họcđiều chỉnh bằng hàm lỗi triplet, các đặc trưng của mẫu dương cùng nhóm sẽ tách biệtnhau ra
2.3.2 Center Loss
Phương pháp Center Loss đề xuất áp dụng hàm Center Loss kết hợp với CrossEntropy cho bài toán nhận diện khuôn mặt Ý tưởng lớn của phương pháp này là ta tìmcách thu nhỏ khoảng cách của các vector đặc trưng đến vector đặc trưng trung tâm củanhãn tương ứng Các vector đặc trưng trung tâm sẽ được cập nhật trong quá trình huấnluyện Sau khỉ huấn luyện xong mô hình mạng sử dụng phương pháp Center Loss thìcác vector đặc trưng học được cùng một cá thể cố khuynh hướng hội tụ về gần tâm củacác thể đố
Bằng việc phân tách các vector đặc trưng cho chúng gom gàn về một tâm,phương pháp này làm việc tốt cho bài toán nhận diện khuôn mặt Các thí nghiệm củanhóm tác giả cũng chỉ ra được sự gia tăng tính hiệu quả cho xác thực khuôn mặt và xácthực danh tính bằng cách sử dụng Center Loss
LEARNING
Negative Anchor
Anchor
Negative
Trang 26Hình 2-7 Hiệu úng hành xử của mô hình khi học bằng Center Loss cho bài toán phân loại ký tự MNIST
Kiến trúc mạng đề xuất của nhóm tác giả Center Loss sử dụng các lớp kết nốiđầy đủ, max-pooling, lớp kết nối cục bộ (locally connected layer)
C: The convolution layer
P: The max-pooling layer
LC: The local convolution layer
Hình 2-8 Kiến trúc mạng của phương pháp Center Loss
Kiến trúc mạng của bài báo Center Loss sử dụng nhiều lớp tích chập, pooling, locally connected layer, và cuối cùng là lớp kết nối đày đủ Mô hình này đượchuấn luyện theo hàm lỗi trung tâm và hàm lỗi cross entropy
max-2.3.3 Sphereface
Phương pháp Sphereface đề xuất hàm lỗi Angular Softmax mới dựa trên cơ sởcủa hàm lỗi Cross Entropy Ý tưởng chính của phương pháp là chỉnh sửa hàm CrossEntropy và tổng quát hóa chỉnh sửa này để những đặc trưng sau khi học của các lớpkhác nhau sẽ cách nhau bởi một khoảng cách biên về góc nhất định trên siêu cầu.Bên dưới là công thức hàm cross entropy chuẩn:
Kiến trúc mạng Sphereface:
FC: The fully connected layer
Trang 27Layer 4-layer CNN 10-layer CNN 20-layer CNN 36-layer CNN 64-layerCNN Convl.x [3x3, 64]xl.S2 [3x3, &4JX1.S2
[3x3, 64]x '3X 3,64
3 X 3.128
1, S2
X 2
3x3 128JX '3x3, 128'
3 X 3,128
1, S2
X 4
3x3, 128] X '3 X 3,128'
3 X 3.128
1.S2 xs
Conv3.x [3x3 25ỗ]xl.S2
3x3, 256] X '3 X 3 256'
3 X 3, 512
1, S2
X 2
3x3,512]x '3 X 3,512'
3 X 3,512
1.S2
X 3
Hình 2-9 Các cấu hình kiến trúc mạng Sphereface
Sphereface 64 lớp cho kết quả độ chính xấc cao nhất trên các tập đánh giá
2.4 Tổng kết và nhận xét
Mô hình nhận diện hình ảnh khuôn mặt trong ảnh tự nhiên gồm hai bước làphát hiện vị trí khuôn mặt trong ảnh và nhận diện các khuôn mặt đã chỉ định vị trí đó.Hai bước trong dòng chảy chương trình được nối bởi bước cắt ảnh khuôn mặt (liền sau
có thể là chuẩn hóa nếu có thêm thông tin về landmark các điểm trên mặt)
Mô hình phát hiện khuôn mặt thể hiện rõ rệt sự đánh đổi giữa hiệu suất độchính xác và hiệu suất thời gian xử lý Kết quả độ chính xác của các phương phápnhận diện khuôn mặt ngày nay đã đạt độ chính xác khá cao trên tập dữ liệu đánh giáLFW (99%) Các mô hình học sâu mạnh mẽ vượt trội so với các phương pháp xử lýảnh thiết kế bằng tay ở cùng lĩnh vực Bên cạnh đó, vấn đề khoảng cách giữa nghiêncứu và triển khai ứng dụng thực tiễn vẫn đang còn tồn tại ứng dụng thông minh đểtriển khai được ngoài thực tế đòi hỏi khá khắt khe về độ chính xác, tốc độ xử lý (cànggần thời gian thực càng tốt) cũng như tính ổn định của phần mềm
Trang 283 Cơ SỞ LÝ THUYẾT
3.1 Chuẩn hóa dữ liệu (data normalization)
Mạng nơ-ron nhân tạo ảnh đầu vô thường được chuẩn hóa về miền giá trị [-1,1] Chuẩn hóa dữ liệu gồm có 2 bước:
• Bước 1: Trừ ba kênh màu RGB tương ứng cho mảng giá trị trung bình[meanR, meanG, meanB] Tức kênh đỏ của ảnh sẽ lấy giá trị của tất cả pixeltrừ cho giá trị meanR, áp dụng tương tự cho hai kênh còn lại là xanh lá vàxanh dương cho lần lượt các giá trị meanG, meanB Thao tác này tươngđương với việc dịch chuyển mức sáng của ảnh đầu vào về điểm trung bình
• Bước 2: Lấy các giá trị ảnh đầu vô chia cho [stdR, stdG, stdB] nhằm dịchchuyển miền giá trị về [-1, 1]
Thông thường, mảng giá trị trung bình của 3 kênh RGB (mean) cũng như mảnggiá trị độ lệch chuẩn (std) thường được thống kê từ tập dữ liệu huấn luyện Do thao tácthống kê tốn nhiều chi phí tính toán và cần phải tính lại nếu tập dữ liệu huấn luyện bịthay đổi, người ta thường lấy mean và std theo tập dữ liệu nổi tiếng voc PASCAL:
• mean: [123, 117, 104]
• std: [255, 255, 255]
3.2 Làm giàu dữ liệu (data augmentation)
Các mô hình mạng học sâu cần lượng dữ liệu rất lớn để có thể huấn luyện tốtđược bộ trọng số trong mạng Người ta áp dụng các kỹ thuật làm giàu dữ liệu bằng cácphép biến đổi trong xử lý ảnh để có thể tăng tính đa dạng cho tập dữ liệu huấn luyện.Làm giàu dữ liệu là một trong những bước quan trọng trong huấn luyện mô hình mạnghọc sâu, các cách thức áp dụng làm giàu dữ liệu giúp mô hình sau khi huấn luyện
"miễn nhiễm" với các sự biến đổi trong quá trình kiểm thử với ảnh thực tế
Một số phép biến đổi làm giàu dữ liệu thường được áp dụng cho ảnh đầu vàocủa các mô hình mạng học sâu:
• Lật ảnh theo chiều ngang hoặc chiều dọc (random flip): đối với bài toánphân loại, ảnh đối tượng lật theo chiều ngang (horizontal flip) thì vẫn là đốitượng đó Phép biến đổi lật theo chiều dọc (vertical flip) thường được ápdụng cho đối tượng có tính đối xứng qua trục X
Hình 3-1 Ảnh từ trái qua: ảnh gốc, ảnh lật ngang, ảnh lật dọc
Trang 29• Làm mờ ngẫu nhiên theo cửa sổ Gauss (random blur): các cửa sổ Gaussđược thiết lập với kích thước ngẫu nhiên theo các siêu tham số xác địnhtrước nhằm biến đổi ảnh đầu vào ở nhiều mức độ mờ khác nhau Mô hìnhđược học với phép làm giàu dữ liệu mờ vẫn sẽ có thể phát hiện các đốitượng bị mờ trong quá trình kiểm thử / đánh giá.
• Gieo nhiễu ngẫu nhiên (random noise): có hai loại nhiễu được áp dụng ngẫunhiên đó là nhiễu muối (đốm pixel màu trắng) và nhiễu tiêu (đốm pixel màuđen), cách gọi ngắn gọn là nhiễu muối tiêu Pixel nhiễu được gieo ngẫunhiên cũng có thể là màu ngẫu nhiên Kỳ vọng của phép làm giàu dữ liệunày giúp mô hình miễn nhiễm với nhiễu muối tiêu trong ảnh thực tế cũngnhư đánh giá
Hình 3-2 Ảnh đuục gieo nhiễu
• Biến đổi ảnh xám (random grey): ảnh huấn luyện của mô hình mạng học sâuthường là ảnh màu (3 kênh RGB), nhưng đối với camera hồng ngoại thìhình ảnh video thu bởi camera vào ban đêm sẽ là ảnh xám, không còn làảnh màu Vì vậy nếu với tập dữ liệu hình ảnh ta chỉ huấn luyện với ảnh màuthì mô hình sẽ giảm hiệu suất trên ảnh hồng ngoại vào ban đêm Với mụcđích giảm thiểu ảnh hưởng bởi ảnh đầu vào mô hình là ảnh xám, ta có thể
áp dụng phép làm giàu dữ liệu biến đổi ảnh màu thành ảnh xám ngẫu nhiên(có xác suất, không phải lúc nào cũng áp dụng phép biến đổi này trên mọiảnh huấn luyện)
Hình 3-3 Ảnh biến đỗi xám
• Điều chỉnh ngẫu nhiên màu ảnh (color jitter): phép biến đổi này bao gồm 3phép biến đổi con, đó là điều chỉnh tương phản ảnh ngẫu nhiên (randomcontrast), điều chỉnh màu sắc ngẫu nhiên (random color) và điều chỉnh độsáng ngẫu nhiên (random brightness) Phép biến đổi này được dùng trongbài báo SSD [10] Bằng việc áp dụng phép làm giàu này, mô hình sẽ hạnchế sự ảnh hưởng của đối tượng đa dạng màu sắc
Trang 30Hình 3-4 Ảnh điều chỉnh màu ngẫu nhiên
• Cắt ảnh ngẫu nhiên (random crop): phép biến đổi này cắt ngẫu nhiên vùngảnh (crop) trên ảnh gốc, phép biến đổi này mô phỏng phép phóng to (zoomin) ảnh đối tượng Phép biến đổi cắt ảnh nào tạo sự đa dạng cho các trườnghợp ảnh đối tượng
• Thu nhỏ ảnh ngẫu nhiên (random expand): phép biến đổi này thêm cácpixel bổ sung vào các biên ảnh (padding), khiến ảnh gốc nhỏ hơn sau khibiến đổi Hiệu ứng của phép biến đổi này làm nội dung ảnh gốc bị phóngnhỏ hơn (zoom out) Phép biến đổi này kết hợp với phép biến đổi cắt ảnhngẫu nhiên làm hình ảnh các đối tượng đầu vào đa dạng về kích thước, phùhợp cho bài toán phát hiện đối tượng tổng quát
3.3 Tích chập trong miền ròi rạc (convolution)
Tích chập (convolution) là khái niệm quan họng và sử dụng rất nhiều trong xử
lý ảnh, thị giác máy tính Tích chập là toán tử mà ta thực hiện xoay cửa sổ 180 độ, tứclật cửa sổ 2 lần lượt theo trục X và y, rồi sau đó áp dụng phép tương quan(correlation) Tương quan giữa cửa sổ và ảnh được tính toán bằng cách áp dụng kỹthuật cửa sổ trượt (sliding window), tại mỗi pixel trên ảnh ta tính toán tích vô hướnggiữa cửa sổ và vùng ảnh tương ứng
Công thức tích chập trên miền rời rạc 2 chiều:
N N
F * l(x, y) = F(i,f)I(x — i,y -f)
j=—NÍ=—N
Điểm khác biệt lớn nhất của phép tích chập với phép tương quan đó là phép
tích chập có tính chất kết hợp: K2*(K1*I) = (K2*K1)*I Điều này thể hiện rằng thay
vì ta tích chập cửa sổ KI với I, sau đó dùng cửa số K2 tích chập trên ảnh kết quả vừarồi thì ta có thể thực hiện lấy cửa sổ KI tích chập với K2 thành một cửa sổ mới nào đó,sau đó lấy cửa sổ mới tích chập với ảnh gốc I Chính nhờ tính chất này mà khi thiết kếcửa sổ, thay vì thiết kế nhiều phép tích chập tuần tự ta có thể kết hợp chúng lại thành
Trang 31một cửa sổ duy nhất Chi phí tính toán của phép tích chập cũng như phép tương quan
• Kết quả của tích chập cửa sổ trên dữ liệu hình ảnh: