Ứ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ện khuôn mặt trong ảnh và nhận diện danh tính khuôn mặt.. Các ứng dụng cụ thể gần gũi với con người sử dụng học
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 2i
CÔ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ó)
CHỦ TỊCH HỘI ĐỒNG TRƯỞNG KHOA KH & KTMT
Trang 3ii
ĐẠI HỌC QUỐC GIA TP.HCM
TRƯỜNG ĐẠI HỌC BÁCH KHOA
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độ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………
III 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 …
CÁN BỘ HƯỚNG
DẪN
(Họ tên và chữ ký)
TRƯỞNG KHOA KH & KTMT
(Họ tên và chữ ký)
Trang 4iii
LỜ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 Khoa thà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ộc số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ận văn, mang đến cho tôi nguồn động viên, quan tâm và giúp đỡ là gia đình, thầy cô, bạn bè
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âm hướ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ất giỏ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ôi trong 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ới khi 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òng 301B9 đã 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ên cạ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 ơn khô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ên cứ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ền tả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ũng như 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ành phố 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 ban giá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 Khoa họ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ọc tậ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 5iv
TÓ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 ứng dụ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ột ngà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âu mang đế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ền thố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ận diệ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 an ninh 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ơ quan quả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 An toà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 cao hơ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, trung tâm mua sắm, tòa nhà cao tầng, cơ quan công an, doanh trại quân đội, an ninh quốc phò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 doanh nghiệp, điểm danh học sinh / sinh viên trong ngành giáo dục, giám sát trẻ nhỏ trong lớ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ện khuô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ếp nhau 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ặt trong hình ảnh / video Hình ảnh khuôn mặt được phát hiện ở mô-đun phát hiện khuôn mặ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ện khuô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 6v
ABSTRACT
Nowadays, computer science grows quickly and it brings many applications
to human life Especially, information technology is one of the fastest growing mains in the world, it makes human life become better In recent years, neural net-works in deep learning outperforms with the traditional methods in image processing So, there are many smart applications such as: face recognition, voice recognition, licence plate recognition, object counting, object tracking, medical im-age 3D visualization, … Security surveillance is very important and takes many at-tentions from government
do-Face recognition is one of many ways to get security surveillance Safe social
is necessary, some places / units require high security level such as: supermarkets, buildings, apartments, malls, skyscrapers, military areas, We are able to control the security by recognizing human face automatically with multiple of cameras
Face recognition is not only an essential core of security domain, but also it applies to many other domains: customer service, checking student attendance, children surveillance for safety, Face recognition application together with other smart 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 The faces detected by face detection module will be fed to the recognition module Face detection has been researched for a long time, this report surveys many papers re-lated to face detection Face recognition is also a hot subject of many recent papers
by applying deep neural network The report proposes an improvement for face ognition flow
Trang 7rec-vi
LỜ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ện luậ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 tham khả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 dung trong 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 gia thự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ướng dẫ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ời cam kết
Nguyễn Hoàng Minh
Trang 8vii
MỤ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 9viii
3.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 THÍ NGHIỆM VÀ KẾT QUẢ THÍ NGHIỆ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 LIỆU THAM KHẢO 43
Trang 10ix
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
Hì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 bằng 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 11x
Hì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 12xi
DANH 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 141
1 TỔNG QUAN
1.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ọc sâ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ý âm thanh, 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ụng họ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ện khuô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ành cô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án nhỏ 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 nay xá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 đời mớ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ừ ảnh khuô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 ảnh khuô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 an ninh 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ân viê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 đào sâ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ện khuô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ện khuô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ác chi tiết đặc trưng của người đó
Trang 152
1.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ên cứ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ên cứ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ứu trê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ác bà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 hai khố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ảo hiệ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ện khuô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 khoa họ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 163
1.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ứa khuô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ất quá 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 danh tí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ác cô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ôn mặ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ết quả 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 174
2 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ước chí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áp Sphereface [1]:
Hình 2-1 Mô hình nhận diện khuôn mặt trong ả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ừ điể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 (trái và phải) Từ thông tin landmark, ta tiến hành tiền xử
lý trước khi đưa qua mạng nhận diện bằng cách chuẩn hóa khuôn mặt (alignment) theo các điểm landmark Ý 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út trích đặc trưng dị biệt, đầu ra của mạng nhận diện là vector đặc trưng Vector đặc trưng này mang tính chất cực kỳ phân biệt, các hình ảnh của 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 nhau thì các vector đặc trưng tương ứng của họ phải càng xa nhau
Trang 182.2 Tổng quan các phương 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 3 mạng nơ-ron thiết kế mô hình thác nước (cascade), tương tự phương pháp phát hiện khuôn mặt Haar Cascade của Viola-Jones [8] Nếu sau khi được loại bởi
mô hình Convolutional 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 được phâ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 196
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ăn chỉnh khuôn mặt, landmark trên khuôn mặt (mắt, mũi, miệng) Các mô hình mạng CNN 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ãn khuôn mặt (2 chiều), thông tin căn chỉnh vị trí khuôn mặt (4 chiều) và land-mark (10 chiề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ới YOLO [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
Trang 207
Hì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ạng VGG 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ước cá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
Trang 218
default 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át hiệ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áp phá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ện khuô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ính xá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ương 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 Ở giai đoạn huấ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ẫu dươ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 229
Giải thích ký hiệu:
• : vector đặc trưng của mẫu đang xét
• : vector đặc trưng cùng nhóm của mẫu đang xét
• : vector đặc trưng của mẫu khác nhóm với mẫu đang xét
• : 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ảng cá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 lớp về gần nhau hơn và đẩy xa nhau ra với mẫu khác nhóm Kết quả của học hội 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 ý tưở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
âm ban đầ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ệt nhau ra
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ủa nhó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ác thực danh tính bằng cách sử dụng Center Loss
Trang 2310
Hì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)
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 được huấn luyện theo hàm lỗi trung tâm và hàm lỗi cross entropy
Trang 24max-11
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 Cross Entropy 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ớp khá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:
Điểm khác biệt ở đây chính là bộ trọng số của lớp W đã được chuẩn hóa về 1
và thiết lập bias bằng zero Vì vậy, khi ta cho mô hình học với hàm lỗi L chỉnh sửa này thì mô hình sẽ tìm cách phân tách góc của vector đặc trưng giữa các lớp đối tượng Điều này làm mô hình học hiệu quả hơn so với hàm lỗi nguyên gốc, các thí nghiệm của nhóm tác giả đã cho thấy điều đó
Kiến trúc mạng Sphereface:
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á
Trang 2613
3 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ả pix-
el trừ 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ịch chuyể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ảng giá 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ác thố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ác phé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ạng họ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ào củ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án phân loại, ảnh đối tượng lật theo chiều ngang (horizontal flip) thì vẫn là đối tượng đó Phép biến đổi lật theo chiều dọc (vertical flip) thường được
áp dụng cho đối tượng có tính đối xứng qua trục x
Trang 2714
Hình 3-1 Ảnh từ trái qua: ảnh gốc, ảnh lật ngang, ảnh lật dọc
• 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 định trướ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 đối tượ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ẫu nhiê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ẫu nhiê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ệu này giúp mô hình miễn nhiễm với nhiễu muối tiêu trong ảnh thực tế cũng như đánh giá
Hình 3-2 Ảnh đượ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âu thườ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àu thì 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)
Trang 2815
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
3 phép biến đổi con, đó là điều chỉnh tương phản ảnh ngẫu nhiên (random contrast), đ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 trong
bà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ạn
chế sự ảnh hưởng của đối tượng đa dạng màu sắc
Hì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 (zoom in) ảnh đối tượng Phép biến đổi cắt ảnh nào tạo sự đa dạng cho các trường hợp ảnh đối tượng
• Thu nhỏ ảnh ngẫu nhiên (random expand): phép biến đổi này thêm các pixel bổ sung vào các biên ảnh (padding), khiến ảnh gốc nhỏ hơn sau khi biến đổi Hiệu ứng của phép biến đổi này làm nội dung ảnh gốc bị phóng nhỏ hơn (zoom out) Phép biến đổi này kết hợp với phép biến đổi cắt ảnh ngẫ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 trọ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ức lậ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
Trang 2916
(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ướng giữ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:
Đ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ổ K1 với I, sau đó dùng cửa số K2 tích chập trên ảnh kết quả vừa rồi thì ta có thể thực hiện lấy cửa sổ K1 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 mộ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 là tương đối lớn
... biệtBằng việc phân tách vector đặc trưng cho chúng gom gần tâm, phương pháp làm việc tốt cho tốn nhận diện khn mặt Các thí nghiệm nhóm tác giả gia tăng tính hiệu cho xác thực khn mặt
và... điều chỉnh độ sáng ngẫu nhiên (random brightness) Phép biến đổi dùng
bài báo SSD [10] Bằng việc áp dụng phép làm giàu này, mơ hình hạn
chế ảnh hưởng đối tượng đa dạng màu