1. Trang chủ
  2. » Luận Văn - Báo Cáo

Khóa luận tốt nghiệp Khoa học máy tính: Hệ thống nhận diện và định danh khuôn mặt thông minh

67 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nhận diện khuôn mặt cho hệ thống điểm danh tự động
Tác giả Bui Tran Ngoc Dung
Người hướng dẫn ThS. Vo Duy Nguyen
Trường học Trường Đại học Công nghệ Thông tin
Chuyên ngành Khoa học máy tính
Thể loại Khóa luận tốt nghiệp
Năm xuất bản 2022
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 67
Dung lượng 36,76 MB

Nội dung

Chính vì lẽ đó, nội dungkhoá luận này sẽ đi sâu vào bài toán nhận diện khuôn mặt, từ đó mong muốn tự xâydựng một hệ thống nhận diện khuôn mặt phục vụ nhu cầu điểm danh tự động cho ngườid

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINH

KHOA KHOA HỌC MAY TÍNH

BUI TRAN NGỌC DŨNG

KHOA LUAN TOT NGHIEP NHAN DIEN KHUON MAT CHO HE THONG DIEM

DANH TU DONG

Face Recognition For Automatic Attendance System

CU NHÂN NGANH KHOA HOC MAY TÍNH

CHINH QUY DAI TRA

TP HO CHÍ MINH, 2022

Trang 3

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KHOA HỌC MÁY TÍNH

BUI TRAN NGỌC DŨNG - 19521385

KHÓA LUẬN TÓT NGHIỆP NHAN DIỆN KHUÔN MAT CHO HE THONG DIEM

DANH TU DONG

Face Recognition For Automatic Attendance System

CU NHAN NGANH KHOA HOC MAY TINH

CHINH QUY DAI TRA

GIANG VIEN HUONG DAN

ThS V6 Duy Nguyén

Trang 4

TP HÒ CHÍ MINH, 2022

THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP

Hội đồng chấm khóa luận tốt nghiệp, thành lập theo Quyết định số

"1 ngày của Hiệu trưởng Trường Đại học Công

Trang 6

LỜI CẢM ƠN

Đầu tiên, tôi xin gửi lời cảm ơn đến tập thé quý Thay/C6 Trường Đại học Côngnghệ Thông tin — Dai học Quốc Gia TP.HCM nói chung, quý thầy cô khoa Khoa họcmáy tính nói riêng đã giúp cho tôi tích lũy được những kiến thức nền tảng dé thực

hiện nghiên cứu này.

Đặc biệt, tôi xin gửi lời cảm ơn chân thành tới ThS Võ Duy Nguyên đã đồnghành và theo sát tôi để hướng dẫn, quan tâm, lo lắng và giúp đỡ tôi hoàn thiện đượckhóa luận tốt nghiệp tốt nhất Thay là người truyền nguồn cảm hứng, kiến thức dé tôi

có đủ nhiệt huyết đề thực hiện khóa luận tới cuối cùng

Xin cảm ơn TS Mai Tiến Dũng đã cho tôi những nhận xét mang tính xây dựngcao, những góp ý giá trị giúp tôi có thê hoàn thành tốt nhất khóa luận

Cuôi cùng, tôi xin cảm ơn đên gia đình và bạn bè đã động viên, khuyên khích

và truyền năng lượng tích cực cho tôi dé hoàn thành khóa luận

Xin chân thành cảm ơn quý Thâầy/Cô

Trang 7

1.23 Mục tiêu 1.3

1.4

Dong gop Cau trúc

2.3.2.1 Facenet

2.3.2.2 Hàm mất mát

Triplet loss ArcFace loss

13 13 16 16 17 17 18 18 20 20 24 26 26 28 28 29 29 31

CHUONG 3 XAY DUNG PIPELINE HOAN CHINH CHO BAI TOAN DIEMDANH KHUON MAT 32

3.1 Phat hiện khuôn mặt 32

Trang 8

3.2 Trích xuất đặc trưng khuôn mặt

3.3 Nhận diện khuôn mặt

CHƯƠNG 4 ĐÁNH GIÁ VÀ PHAN TÍCH

4.1 Bộ dữ liệu

4.1.1 Phát hiện khuôn mặt 4.1.2 Nhận diện khuôn mặt

4.2 Đánh giá chỉ tiết cho mô-đun phát hiện khuôn mặt

4.3 Đánh giá chỉ tiết phương pháp trích xuất đặc trưng khuôn mặt

5.3 Chi tiếtứng dụng

5.3.1 Cơ chế bảo vệ5.3.2 Luồng đăng ký5.3.3 Luéng điểm danhCHƯƠNG 6 KET QUÁ VA HƯỚNG PHAT TRIEN

6.1 Kếtluận

6.2 Hướng phat triển

TÀI LIỆU THAM KHẢO

33 34 37 37 37 30 40 41 44 46 46 48 48 52 54 54 56 56 58 58 58 60

Trang 9

DANH MỤC HÌNH

Hình 1.1 Đầu vào/Đầu ra của bài toán 22-22222222 2212212212212 14

Hình 2.2 Minh họa cach tính toán tại lớp Convolution ¿+5 s++sx++ss++ 21

Hình 2.3 Minh hoa một lớp Max Pooling cccecceecceeceesseeneeeeeeseeeseeeeeeteenseenaeeaes 22 Hình 2.4 Minh họa lớp Fully Connect - - «+ x13 1 nh nh giết 23

Hình 2.5 Kiến trúc cơ bản của Two-stage DetectOr -2¿©7s2czccxcszxcrxeees 24

Hình 2.7 Kiến trúc cơ bản của Retinaface - 2¿©2s22222xc22xtEESExrrrrerrrees 26

Hình 2.10 Minh hoạ kiến trúc mới ::¿-©2++:2222xvtttEkttrrtrkttrrrtrkrrrrrrrrrreg 28Hình 2.11 Minh hoạ kiến trúc của Facenet cc:vccxvtrerrrtrrrrrrrtrrrrrrrred 29Hình 2.12 Cơ chế chuẩn hoá của Facenet - -: s:25c+t22xvtettxvrrrrrrrrrrrrrrrre 29

Hình 2.13 Minh hoạ ham loss TTIpÌe€t - - - 5c 222332233 £+vEEeeeeereereeersesss 30

Hình 3.2 Minh hoạ phương pháp phát hiện khuôn mặt - + -«++s+++ 33

Hình 3.4 Minh hoa cách biểu diễn các template trong không gian 2D 35

Hình 3.5 Minh hoa module nhận diện khuôn mặt (vùng đỏ) 5555: 35

Hình 4.3 Minh hoạ phân bó và điều kiện của dữ liệu nhận diện - 39

Trang 10

Hình 5.1 Kiến trúc tổng thé của hệ thống 2 ¿+ E+SE+EE2E£+E£EEeEEeEzEzreree 47

Hình 5.3 Minh hoạ môi trường Firebase Testlab 5 +5 + + x++sexsseeresss 50

Hình 5.4 Biểu đồ tính tương thích trên IOS ¿2 2 2S£2E£+E££EeEE+EzEzrezee 51

Hình 5.5 Biéu đồ tinh tương thích trên Android cccsccccsessscsssesstessesssesstesseesseeseee 51Hình 5.6 Triển khai ha tầng trên GCP o ceccesscsssesssessesssesssesseessesssessesssessessesssesseees 52

Hình 5.8 Giao diện cơ chế xác thurc cceccccccscsssssessssesessessessecsvssesusseseeesueseseeeeeneeeeees 54

Hình 5.9 Thông báo khi thực hiện ngoài vi trí quy định - -.- 5< s<xc+csxes 55

Hình 5.11 Minh hoa luồng đăng ky cceccecccccsccsesseescssessessessesessessessessesseseesessessessessess 56

Trang 11

DANH MỤC BANG

Bảng 2 Chi tiết về số lượng và phân bố tập CASIA-WEBFACE và LFW 40

Bang 3 Chỉ tiết về cau hình các phương pháp phát hiện khuôn mặt 40

Bang 4 Kết quả chạy thực nghiệm cho mô-đun phát hiện khuôn mặt 41

Bảng 5 Chi tiết về cau hình các phương pháp nhận diện khuôn mặt 42

Bảng 6 Kết quả chạy thực nghiệm cho mé-dun nhận diện khuôn mặt 44

10

Trang 12

Convolutional Neural Network Labeled Faces Wild

II

Trang 13

TÓM TAT KHÓA LUẬN

Dưới sự phát triển của KH-KT, AI không còn là xu hướng công nghệ của tương lai mà

nó còn đang dan lấn sân sang các lĩnh vực khác, có thé ké đến: An ninh, Tài chính, Ngânhang, Quân sự, Hang năm, các ông lớn trên thé giới đồ hàng ty Dollar vào thị trườngnày nhằm đi đầu và làm chủ được loại công nghệ này Trong đó, những hệ thống nhậndiện thông minh sử dụng thông tin sinh trắc học như khuôn mặt, vân tay, đang đượcphát triển mạnh mẽ nhất nhờ tính hữu ích và ứng dụng cao Chính vì lẽ đó, nội dungkhoá luận này sẽ đi sâu vào bài toán nhận diện khuôn mặt, từ đó mong muốn tự xâydựng một hệ thống nhận diện khuôn mặt phục vụ nhu cầu điểm danh tự động cho ngườidùng ngay trên những thiết bị di động, thay vì sử dụng các phương pháp thủ công Hiệnnay có 2 thách thức chính mà tôi thấy có thể ảnh hưởng sâu sắc đến đối với hệ thốngnày, đó là về độ chính xác và khả năng của hệ thông Về độ chính xác, đối với các môhình nhận diện khuôn mặt SOTA hiện nay, mặc dù có thể hoạt động tốt và có độ chínhxác cao nhưng chỉ ở trong một số điều kiện nhất định, và khi hệ thong được scale lênvới hàng ngàn, hàng triệu người dùng, độ chính xác sẽ giảm dan bởi vì ngưỡng lý tưởng

đã thay đôi, chưa kế đến các thách thức về: chất lượng, ánh sáng, góc cạnh, tuổi tác,

cả đều làm ảnh hưởng tới độ chính xác của mô hình Về khả năng của hệ thống, việc

xây dựng hệ thống sử dụng thiết bị di động phải đảm bảo khả năng chịu tải cao, bảo vệ

ứng dụng và đường truyền để tránh bị hacker tan công và chỉnh sửa thông tin, ngoài racòn là khả năng tương thích của các ứng dụng Khoá luận này sẽ tập trung tìm hiểu cácphương pháp phát hiện và nhận diện khuôn mặt đáp ứng thời gian thực, đề xuất một sốphương pháp tiếp cận mới trên các tap dir liệu chuẩn, từ đó phát triển và xây dựng cáctính năng cho ứng dụng, tính tương thích cho thiết bị di động, đảm bảo được giao diện

và trải nghiệm của người dùng là tot nhât.

12

Trang 14

CHƯƠNG 1.TONG QUAN

1.1 Dat vấn đề

Trong những năm trở lại đây, với sự phát triển nhanh chóng của khoa học kỹ thuật,

trí tuệ nhân tạo (AI) đang đóng một vai trò không hề nhỏ góp phần đưa chúng ta mộtbước tiến gần hơn đến xã hội thông minh (Smart Society) Tuy nhiên, sự hiện dai,tiện nghi trên mọi phương diện là nỗi lo về các van đề về tội phạm công nghệ cao, sửdụng thiết bị điện tử dé tan công vào các hệ thống và xâm nhập quyên riêng tư củacon người Đứng trước mối nguy tiềm tàng này, các công nghệ sử dụng thông tin xácthực sinh trắc học (biometric) được đưa vào rất nhiều lĩnh vực khác nhau như: AN-

QP, Giáo dục, Y tế, Tài chinh, dé đảm bảo giảm thiêu rủi ro từ việc xâm nhập bathợp pháp này Việc ứng dụng các loại công nghệ này vào cho thấy chúng ta đangngày càng làm chủ và kiêm soát được những hệ thống cực kỳ thông minh, dựa vàocác thông số kỹ thuật, phân tích và tính toán của máy tinh dé đưa ra quyết định thaycho con người Trong khoá luận này, đề tài của tôi sẽ tập trung đi sâu vào mảng thôngtin sinh trắc học, cụ thể ở đây là hệ thống nhận diện khuôn mặt cho các đối tượng, cóthé được ứng dụng vào quá trình điểm danh cho học sinh và sinh viên hoặc ở nhiềuquy mô lớn nhỏ khác nhau Tôi hy vọng hệ thống này sẽ là một giải pháp giúp giảmbớt chi phí vận hành, đảm bảo các chức năng và là một công cụ đắc lực giúp hỗ trợchúng ta đưa ra quyết định, đồng thời người dùng cũng sẽ cảm thấy dễ dàng và tiệndụng khi mọi thứ đều được xử lý một cách tự động và trơn tru

Bài toán này được mô tả như sau:

e Đầu vào: Hình ảnh được thu thập từ camera của điện thoại người dùng.

e Đầu ra: Hình ảnh chứa thông tin về tọa độ các khuôn mặt có trong bức ảnh,

định danh khuôn mặt và độ tin cậy, nếu khuôn mặt không ton tại trong cơ sở

dữ liệu kết quả định danh trả về sẽ là unknown

13

Trang 15

Người dùng muốn sử dụng sẽ truy cập vào trong ứng dụng, sau đó thực hiện các thaotác đăng ký sử dụng danh tính và thông tin sinh trắc học của mình (ở đây là khuôn

mặt), sau đó, dữ liệu này sẽ được ghi nhận và lưu vào cơ sở đữ liệu, sau này người

dùng muốn điểm danh thì chỉ cần xác thực khuôn mặt thì sẽ thành công vào hệ thống

Hinh 1.1 Dau vao/Dau ra cua bai toan

Cau trúc cua một hệ thong diém danh khuôn mặt thường không có quá nhiêu điêm khác biệt, với tính ứng dụng cao và được sử dụng hâu như ở mọi lĩnh vực, tôi xin

phép đưa ra một kiến trúc tổng thé của bài toán như sau:

Hình 1.2 Kiến trúc hệ thống nhận diện khuôn mặt

14

Trang 16

Cơ bản, từ bước anh input đầu vào của người dùng tới khi hệ thống đưa ra kết quả thì

có rât nhiêu bước cân phải thực hiện như sau:

Đâu tiên, ảnh dau vào sẽ được đem di tiên xử lý đê cat xén va tinh chỉnh sao cho

trung tâm của bức ảnh là khuôn mặt con người, nếu không phát hiện được khuôn mặtthì hệ thống sẽ từ chối ngay lập tức

Tiếp theo đó, tiến hành điều chỉnh kích thước, chỉnh sửa sao cho đảm bảo các điềukiện đã cho trước khi đưa vào các kiến trúc mạng học sâu hay các thuật toán máy học

dé trích xuất đặc trưng khuôn mặt hay còn gọi là các template

Tại đây, tôi sẽ đưa ra chị tiết đặc tả yêu cầu kỹ thuật của bai toán như sau theo cácluồng nghiệp vụ tương ứng:

Login: Người dùng muốn sử dụng ứng dụng, bắt buộc phải có tài khoản đểđăng nhập vào hệ thống Tài khoản sẽ do quản trị viên cung cấp, đảm bảokhông dé người lạ có thông tin sinh trắc học trong cơ sở dữ liệu Trong trườnghợp quên thông tin hoặc đăng ký tài khoản mới, phải có sự chấp thuận và kích

hoạt của quản tri viên

Enrolling: Là quá trình người dùng mới muốn đăng ký vào hệ thống Sau khingười dùng thực hiện đăng ký ở ứng dụng di động, hệ thống sẽ kiểm tra vàtrích xuất các đặc trưng khuôn mặt, sau đó tiến hành lưu vào trong cơ sở dữliệu với các thông tin về danh tính đã được cung cấp từ trước Dữ liệu đượclưu trữ dưới dang vector hoá trong cơ sở dữ liệu dé giúp việc truy xuất nhanh

chóng hơn

Check-in: Là quá trình người dùng muốn xác thực khuôn mặt Sau khi ngườidùng thực hiện điểm danh ở thiết bị di động, hệ thống sẽ kiểm tra thông tin vịtrí địa lý của thiết bị đang sử dụng thông qua toạ độ GPS đề biết người dùng

có đang ở trong phạm vi cho phép, tiếp đó khuôn mặt sẽ được phát hiện kiểmtra về tính thật giả, tránh các hành vi gian lận hay điểm danh giúp Sau khivượt qua khâu tiền kiểm, hệ thống tiễn hành trích xuất đặc trưng, đi truy xuất

15

Trang 17

trong cơ sở dữ liệu dé so sánh độ tương đồng với các thông tin sinh trắc học

có trong cơ sở dit liệu, Độ tương đồng lớn nhất và thoả mãn ngưỡng quy địnhthì hệ thống sẽ trả về thông tin danh tinh ứng với trong cơ sở dit liệu

Ở đây, không áp dụng giải quyết cho các trường hợp ngoại lệ, hay bị che khuất mặt(Deo kính ram, đeo khẩu trang )

Trong phạm vi khoá luận này, tôi sẽ tập trung phát triển và chia hệ thống này thànhcác module con dé dé dàng chỉnh sửa và bảo trì khi xảy ra sự cố Cụ thé hệ thống sẽ

được chia làm 3 modules chính:

- Phat hiện khuôn mặt (Face Detection)

- Trich xuất đặc trưng khuôn mặt (Face Extraction)

- Dinh danh khuôn mặt (Face Recognition)

Cac module này độc lập nhau, dam nhận các chức nang khác nhau, dam bao khi có

thay đối ở một module thì không ảnh hưởng tới các thành phần khác

1.2 Thách thức, phạm vi, mục tiêu

1.2.1 Thách thức

Nhìn chung, có ba thách thức chính đối với bài toán này:

e Vẻ mặt phương pháp: Vì đây là hệ thông lớn được chia nhỏ thành các bước

trong quy trình xử lý, hiệu năng của mỗi bước tuy độc lập với nhau nhưng sẽ

trực tiếp ảnh hưởng đến kết quả cuối cùng của toàn hệ thống Do đó, việcnghiên cứu lựa chọn phương pháp phù hợp dé tăng độ chính xác và tính hiệu

quả của môi bước trở thành một vân dé cân được quan tâm và chú trọng.

e Vé mặt ứng dụng: Một điềm cần phải chú ý đó là việc triển khai hệ thống có

liên quan đến phía người dùng (clients), tức là phục vụ cho hàng trăm thiết bịvới các thông số kỹ thuật và hệ điều hành khác nhau, điều này dẫn đến phảiđảm bảo hệ thống phải có tính ôn định và thích nghỉ với mọi tình huống, ứng

với từng hành vi người dùng.

16

Trang 18

e Vé mặt bảo trì và phát triển: Khi hệ thống ngày càng lớn, với số lượng người

dùng tăng lên, tính ôn định và chính xác của mô hình sẽ bị ảnh hưởng khôngnhỏ, bởi vì khả năng người dùng mới có đặc điểm tương đồng là rất cao Hơnnữa, việc triển khai và xây dựng hệ thống ngay từ ban đầu phải được thiết kế

và đánh giá chin chu, bởi vì điều này sẽ ảnh hưởng đến chi phí huấn luyện lai

mà vẫn đảm bảo độ chính xác không được giảm xuống

1.2.2 Pham vi

Phạm vi, khuôn khổ được giới hạn trong khoá luận này như sau:

e Các phương pháp triển khai và thử nghiệm cho module Nhận diện khuôn mặt

trên tập dữ liệu WIDERFACE Bộ dữ liệu này được sử dụng dành riêng cho

bài toán phát hiện khuôn mặt với số lượng lớn cùng đa dạng về ngữ cảnh, conngười Ngoài ra, còn có thêm các điềm Facial Landmark giúp việc đánh giá

trở nên chính xác hơn.

e Các phương pháp triển khai và thử nghiệm cho module trích xuất đặc trưng và

nhận diện khuôn mặt trên tập dữ liệu CASIA-FACE và đánh giá trên tap LFW.

So sánh và đánh giá chọn ra phương pháp phù hợp nhất cho việc triển khai hệthống

e_ Triển khai một hệ thống điểm danh với luồng chi tiết hoạt động xuyên suốt từ

Mobile Front-end đến dựng hạ tầng phía Server Back-end với các chức năng

cơ bản: đăng ký user mới và thực hiện điểm danh và các cơ chế dé theo dõi và

giám sát 1.23 Mục tiêu

Mục tiêu hướng dén của báo cáo này bao gôm:

e Tìm hiểu tổng quan và thực hiện đánh giá cho bài toán điểm danh sử dụng

khuôn mặt trên thiết bị mobile Trong đó, tôi tập trung vào các bải toán con làphát hiện khuôn mặt, trích xuất đặc trưng và định danh khuôn mặt

17

Trang 19

e Đánh giá và phân tích một số phương pháp hiện nay cho bài toán bằng các độ

đo tiêu chuẩn

e Xây dựng hệ thống day đủ từ mobile đến server có kha năng đáp ứng theo thời

gian thực

13 Đóng góp

Dưới đây là những đóng góp trong bai nghiên cứu:

e Nghiên cứu, tìm hiểu, cài đặt và đánh giá các phương pháp SOTA hiện tại trên

từng nhóm bài toán con trong toàn bộ hệ thống

e Từ các phương pháp đã được đánh giá, xây dựng pipeline tiêu chuẩn và triển

khai xuống phía mobile, đảm bảo mô hình tương thích cho đa số các loại thiết

bị với nhiều hệ điều hành từ Android đến IOS, đảm bao tính 6n định và gonnhẹ, đúng với tính chất của một ứng dụng di động

e Phát triển, mở rộng hệ thống điểm danh khuôn mặt dam bảo hoạt động từ

mobile đến server backend, áp dụng nhiều công nghệ đang là xu hướng như:

Flask, Java, Swift, ELK, Firebase, GCP

1.4 Cấu trúc

Bài nghiên cứu của tôi gồm có sáu phan:

e Chương 1: Giới thiệu tổng quan về đề tài Định nghĩa bài toán, trình bay các

thử thách, mục tiêu và đóng góp của công trình nghiên cứu.

e Chương 2: Khảo sát và tong hợp các nghiên cứu các van đề liên quan đến bài

toán Nhận diện khuôn mặt và khảo sát một số hệ thống Nhận diện khuôn mặt

hiện nay.

e Chương 3: Mô tả chỉ tiết quá trình cài đặt phương pháp, giải thuật

18

Trang 20

e Chương 4: Thực hiện đánh giá và so sánh các phương pháp tiên tiễn trên các

độ đo tiêu chuẩn từ đó chon ra được các phương pháp phù hợp và tối ưu nhấtcho hệ thống

e Chương 5: Chỉ tiết về luồng nghiệp vụ, luồng kỹ thuật, kiến trúc xây dựng hệ

thống, minh hoa và đánh giá hiệu năng và tính tương thích thông qua các phépkiểm thử

e Chương 6: Kết luận về ưu điểm và hạn chế của hệ thống được đề xuất, nêu ra

hướng phát triển của đề tài trong tương lai

19

Trang 21

CHƯƠNG 2 CƠ SỞ LÝ THUYÉT

Hiện nay, đã có các phương pháp được đề xuất để giải quyết bài toán Điểm danhngười ding [1][32][41][42] Nhìn chung, những bai báo này đều thiết kế hệ thống đitheo ba bước chính [48] là (1) phát hiện khuôn mặt trong khung hình, (2) Trích xuấtđặc trưng khuôn mặt, và (3) hệ thống nhận diện khuôn mặt Trong phần này, tôi sẽtìm hiểu tổng quan về những van đề liên quan đến các bước trong bài toán lớn, đồngthời tìm hiểu về một số công nghệ hiện nay được áp dụng khi xây dựng một hệ thống

có khả năng mở rộng quy mô lớn.

2.1 Kiến trúc mạng CNN (Convolutional Neural Network)

Convolutional Neural Network [52] (CNNs —Mang nơ-ron tích chập) được dé xuatbởi Fukushima năm 1980 và được cải tiễn bởi LeCun, Bottou, Bengio and Haffnernăm 1998 là một trong những mô hình Deep Learning tiên tiến giúp cho chúng ta xâydựng được những hệ thống thông minh với độ chính xác cao như hiện nay

Convolutional Neural Network cũng giống như mạng Artificial Neural Network bìnhthường của Machine Learning Nó cũng được xây dung trên nguyên tắc cho các nodeneutron học các trọng sé weights va biases Mỗi neutron nhận input đầu vao, sau đó

sử dung tích vô hướng ứng với trọng số của nó Cả một mạng lưới được sử dungnhiều hàm tính toán với mục đích: từ một bức ảnh đơn sơ ban đầu cho tới kết quả dựđoán của nó CNN cũng có hàm mắt mát (Loss function) và tất cả các mẹo mà chúng

ta đã áp dụng như ở Machine Learning truyền thống

Convolution Pooling Convolution Pooling Fully Fully Output Predictions

Trang 22

(Convolution layers) kết hợp với các hàm kích hoạt phi tuyến (Nonlinear ActivationFunction) để tạo ra thông tin trừu tượng hơn cho các tầng tiếp theo Ngoài ra, còn có

thêm các lớp như: Max-pooling, Dropout, Batch Normalization, ứng với những kiên trúc khác nhau.

Mạng nơ-ron tích chập gồm các lớp: Convolution (tích chập), Pooling (để chung),Rectified Linear Units (tỉnh chỉnh các đơn vị tuyến tính), Fully Connected Layers(các layer được kết nối đầy đủ), cuối cùng là cho qua một hàm kích hoạt Softmax déđưa ra xác suất mà vật đó thuộc về ứng với từng output đầu ra

Hình 2.2 Minh họa cách tính toán tại lớp Convolution

Dé tính toán sự khớp của một đặc trưng đối với một mảnh của hình ảnh, ta sử dụngmột cửa số trượt (slide window) hay có tên gọi khác là Kernel chứa các trọng số đượcthiết lập ứng với từng đặc trưng cần trích xuất, sau đó nhân mỗi điểm ảnh trong featurevới giá trị của điểm ảnh tương ứng trong cửa số trượt Sau đó cộng tổng lại và chiacho số lượng điểm ảnh trong feature

21

Trang 23

Đề hoàn tất tích chập, chúng ta lặp lại quá trình này, xếp các feature với mọi mảnhhình anh có thé Ta có thé lấy kết quả từ mỗi tích chập và tạo một mang hai chiềumới từ đó, dựa vào vị trí của mỗi mảnh nằm trong hình ảnh Bản đồ các phần khớpnhau này cũng là một phiên bản đã được lọc từ hình ảnh gốc Nó là một bản đồ thêhiện nơi tìm thấy feature trong hình ảnh Và ma trận mới này có tên gọi khác là

Feature Map.

Trong kiến trúc mạng CNN một lớp Convolution sẽ có nhiều Kernel và có thé đượcghép với nhau để có thê trích xuất các đặc trưng cần thiết của ảnh, khi bắt đầu CNNchỉ học các đặc trưng đơn giản dưới dạng các cạnh, góc, đường thắng, ngang, Tuynhiên, càng về sâu, các đặc trưng sẽ cảng trở nên phức tạp va trừu tượng mà mắtngười không thể hình dung ra được

Pooling Layer

Pooling là một cách lấy những hình ảnh lớn và làm co chúng lại trong khi vẫn giữ

các thông tin quan trọng nhất trong đó Pooling chỉ dùng kiến thức toán của lớp hai

Nó bao gồm việc duyệt bước một ô vuông cửa số nhỏ dọc trên một hình ảnh và laygiá trị lớn nhất từ cửa số ở mỗi bước Sau khi pooling, một hình anh sẽ có khoảngmột phần tư số điểm ảnh so với lúc bắt đầu Vì nó giữ các giá trị lớn nhất từ mỗi cửa

số, nó sẽ bảo toàn tính khớp của mỗi feature bên trong cửa SỐ Ngoài ra, còn có mộtloại Pooling giữ lại giá trị trung bình của điểm ảnh (Average Pooling)

Single depth slice

% i) 2 | 4

max pool with 2x2 filters

Salmon 7 | 8 and stride 2 6 | 8

3 | 2 MNN 314

1) 2 Bone

Hình 2.3 Minh hoa một lớp Max Pooling

22

Trang 24

Một layer pooling là hoạt động thực hiện pooling trên một hình ảnh hoặc một tập các

hình ảnh Đầu ra sẽ có cùng số lượng hình ảnh, nhưng mỗi cái sẽ có điểm ảnh ít hơn

Hạ một tam anh 8 megapixel xuống còn 2 megapixel sẽ giúp mọi xử lý tải về trở nên

dễ dàng.

Rectified Linear Units (ReLU) Bài toán ReLU hoạt động như sau: bất cứ nơi nao có

số âm, hoán đôi nó với 0 Điều này giúp CNN giữ vững sự tin cậy toán học bằng cáchgiữ các giá trị đã được học khỏi bị mắc kẹt gần 0 hoặc về vô tận Đầu ra của một layerReLU có kích thước giống với đầu vào, nhưng tất cả các giá trị âm được loại bỏ

Hình 2.4 Minh họa lớp Fully Connect

Mô hình mạng nơ ron tích chập nhóm đề xuất là mô hình CNN 3 lớp (Convolution,

Relu, Max Pooling) được trình bày như sau:

Hàm kích hoạt Softmax (Softmax Activation Function) là một hàm toán hoc với

nhiệm vụ chuyên đôi các vector số học thành các vector chứa xác xuất, với mỗi giátrị xác xuất trong vector có tỉ lệ tương đối với mỗi giá trị trong vector số học Softmaxđược sử dụng phổ biến trong Máy học với nhiệm vụ làm hàm kích hoạt cho mô hình

mạng neural nhân tạo.

Vi du, chúng ta thiét ké mét mang neural với N đầu ra, một dau ra ứng với một lớptrong bài toán phân loại và hàm Softmax này được sử dụng dé chuẩn hóa các giá tri

dau ra (tông trong sô kêt nôi) thành các giá tri xác xuat, sao cho tông xác xuât của

23

Trang 25

từng lớp cộng lại băng 1 Lớp nào có giá trị xác xuất cao nhất thì chúng ta sẽ dự đoángiá trị đầu vào thuộc lớp đó.

2.2 Bài toán phát hiện đối tượng

Phát hiện đối tượng, một trong những chủ đề nỗi tiếng và được nghiên cứu rộng rãitrong lĩnh vực Thị giác Máy tính và Máy học với nhiều ứng dụng trong thực tế Bàitoán phát hiện đối tượng có nhiệm vụ định vị vị trí của vật thê trong ảnh và xác định

đối tượng Việc ứng dụng các kiến trúc mạng học sâu vào bài toán phát hiện đối

tượng, đã giúp tạo nên sự bùng né về nghiên cứu trong lĩnh vực Thị giác máy tínhnói riêng và Trí tuệ nhân tạo nói chung Hiện nay bài toán có 2 phương pháp tiếp cận

chính: Một giai đoạn (One-stage) và Hai giai đoạn (Two-stage).

Phương pháp two-stage được hiểu như sau: ở giai đoạn thứ nhất ảnh đầu vào đượcđưa qua Mạng đề xuất vùng (Region Proposal Network) dé định vị các vật thé cầnxác định, sau đó ở giai đoạn thứ hai các vùng đề xuất sẽ được phân lớp xác định đốitượng của từng vùng Các phương pháp two-stage nồi tiếng và được ứng dụng rộngrãi phải kế đến R-CNN [19], Fast-RCNN [20], Faster-RCNN [35]

Input Image Feature extractor

Hình 2.5 Kiến trúc co bản của Two-stage Detector

24

Trang 26

Thay vi chia thành 2 giai đoạn dé phát hiện đối tượng, ở one-stage chi cần dùng 1giai đoạn thay vì sử dụng Mạng đề xuất vùng, với một ảnh đầu vào bằng cách tậndụng các grid box va anchors dé định vị được đối tượng và hình dang của đối tượ

ng rồi tiến hành phân lớp Bởi vì chỉ cần dùng 1 giai đoạn nên các bài toán sửdụng phương pháp one-stage thường tốt hơn two-stage về mặt thời gian xử lý, nhưng

so về độ chính xác thì các phương pháp two-stage thường cho kết quả tốt hơn Cácphương pháp one-stage nỗi tiếng: YOLO [34], SSD [27]

fot :

|| Renn :

Input Image Feature extractor

Hình 2.6 Kiến trúc co ban của One-stage Detector

Tuy nhiên, có một số phương pháp chỉ xây dựng nhằm tập trung cải thiện va nângcao cho một số trường hợp cụ thé Cụ thé, chúng ta có một kiến trúc mô hình vô cùngnổi tiếng và đang là một trong các phương pháp SOTA ở bài toán nhận diện khuôn

mặt nảy, đó là phương pháp RetinaFace [6] Retinaface là một phương pháp

one-stages object detector, được phát triển lên từ kiến trúc Retinanet với mục tiêu là tậptrung vào phát hiện chỉ khuôn mặt thay vì nhiều đối tượng khác nhau

25

Trang 27

S071 ASE

Điểm khác biệt giữa mô hình Retinaface và RetinaNet co bản đến từ một số thay đổi

như sau:

- Khi đem so sánh, Retinaface tối ưu mô hình theo hướng lightweight, thay vì

sử dụng ResNet như ở RetinaNet thì ở đây tác giả sử dụng MobileNet

- Str dụng module SSH (Single Shot Headless) Face Detection dé cải thiện

multi-task learning (thay vì chi dự đoán bbox, thì còn phải dự đoán 5 toa độ landmark).

2.3 Bài toán nhận diện khuôn mặt

Đối với các hệ thong can trién khai trén dién rộng, đặc biệt là hệ thống xử lý dữ liệulên đến hàng ngàn thiết bị vô số người sử dụng, cần phải đảm bảo về độ chính xáccũng như là thời gian xử lý của người dùng Ở phần này, tôi sẽ thảo luận và đánh giá

để chỉ ra những điểm khác biệt giữa cách tiếp cận truyền thống và cách tiếp cận mới,chỉ ra được các điểm yếu và điểm mạnh (best practices) của những hệ thống này

2.3.1 Kiến trúc truyền thống

Hãy quay lại vào giai đoạn sơ khai, khi mà học sâu (Deep Learning) vẫn còn là một

thuật ngữ lạ lẫm và chưa phát triển như bây giờ, con người đã xây dựng được những

hệ thống nhận diện khuôn mặt Với các kĩ thuật trích xuất đặc trưng thủ công và ứngdụng thuật toán đại sé tuyén tính như: ma trận, giảm số chiều (PCA), , những đặc

26

Trang 28

trưng khuôn mặt đầu tiên hay còn gọi là Eigenfaces đã được ra đời Những hệ thốngtruyền thống này sử dụng các bộ phân lớp dé nhận diện đối tượng.

Process

Q ^ˆ4

poww tt

Hình 2.8 Minh hoa kiến trúc truyền thống

Việc triên khai này được mặc dù được đánh gia là đơn giản va dé hiệu, và không tôn

quá nhiêu thời gian và phân cứng tính toán, bởi vì chỉ ứng dụng các công thức toán

học Tuy nhiên, cũng chính bởi vì tính đơn giản của hệ thông nên có rât nhiêu vân đê hạn chê và cân được cải thiện nêu muôn phát triên rộng rãi:

- Độ chính xác không 6n định và bị nhiễu khi gặp các điều kiện bat thường như: ánh

sáng, mờ, góc cạnh, bị che khuât,

- Việc sử dụng bài toán phân lớp vào còn gây ra một điểm bắt lợi cho quá trình duytrì và phát triển hệ thống, đó là khi có một người dùng mới được đăng ký vào hệthống thì phải bắt buộc phải huấn luyện lại lại, gây ra tốn thời gian (khi làm việc với

hệ thống chúng ta mong muốn thời gian chết (down-time) dé nâng cấp và bảo trì tiễndần về 0) và tốn chỉ phí

27

Trang 29

mà vẫn cải thiện không ngừng các điểm hạn chế của những cách làm truyền thống.

Một số phương pháp có thê kế tới như: Facenet [8], CosFace [4], ArchFace [5]

Các phương pháp dựa trên học sâu này đem đến một cách tiếp cận hoàn toàn mới đốivới dang bài toán này Cụ thé, thay vì chỉ tập trung vào xử lý như một bài toán phânlớp thông thường, những phương pháp này loại bỏ đi lớp phân chia các đối tượng vớinhau, mà thay vào đó tập trung vào cách đề chiết xuất ra các đặc trưng khuôn mặt tốtnhất, đặc trưng cho từng đối tượng

Feature Extraction -9@ Face Classification

Hình 2.10 Minh hoa kiến trúc mới

Trang 30

củ WM nearest

-ø Củ © neighborhood (NN)

FaceNet (i KV > poww

Hình 2.11 Minh hoạ kiến trúc của Facenet

Các template này sẽ đại diện cho từng đối tượng (hình bên phải), việc nhận diện hay

so khớp sẽ đều được thực hiện tính toán trên những templates [21][22] này sử dụngcác phương pháp phân cụm hay tính toán độ tương đồng mà không cần training gì cả.Điều này giúp chúng ta giải quyết được van dé là khi người dùng mới đăng ký vào

hệ thống thì không cần tốn chi phí dé huấn luyện lại (free-cost training)

Sau khi trích xuất các đặc trưng của đối tượng và thu được các templates hay vectorbiểu diễn, facenet còn có thêm một lớp chuẩn hoá L2 (L2-Norm) dé thực hiện hiếnđổi các giá trị sao cho tổng của chúng về 1.0, điều này sẽ giúp cho các đặc được chuẩnhoá vào một không gian vector chung, và giới hạn ngưỡng của bài toán về [0,1]

FaceNet Architecture ị IF Glo = 1.0

performs embedding constraints embedding

X > (X41, Xp, -.-Xq) |I(ấ:, 5z, Zaz)|lạ =1 d-dimensional

Trang 31

Đề áp dụng triple loss, chúng ta cần lấy ra 3 bức ảnh trong đó có một bức ảnh làanchor Anchor image cũng có tác dụng làm neo để so sánh Trong 3 ảnh thì ảnhanchor được cố định trước Chúng ta sẽ lựa chọn 2 ảnh còn lại sao cho một ảnh là

negative (của một người khác với anchor) và một ảnh là positive (cùng một người

với anchor).

Kí hiệu anh Anchor, Positive, Negative lần lượt là x°, x", x?

xt anchor image

Hình 2.13 Minh hoạ hàm loss Triplet

Mục tiêu của hàm loss function là tối thiểu hóa khoảng cách giữa 2 ảnh khi chúng lànegative và tối đa hóa khoảng cách khi chúng là positive Như vậy chúng ta cần lựa

chọn các bộ 3 ảnh sao cho:

- Anh Anchor va Positive khác nhau nhất: cần lựa chọn dé khoảng cách d(A,P)

lớn Điều này cũng tương tự như bạn lựa chọn một ảnh của mình hồi nhỏ sovới hiện tại để thuật toán học khó hơn Nhưng nếu nhận biết được thì nó sẽ

thông minh hơn.

- Ảnh Anchor và Negative giống nhau nhất: cần lựa chọn để khoảng cách

d(A,N) nhỏ Điều này tương tự như việc thuật toán phân biệt được ảnh củamột người anh em giống bạn với bạn

Từ mục tiêu trên, ta lập được công thức toán học của Triplet loss như sau:

Loss(x^,xP,xM)= Max{ d(f(x4), f(x?) + œ— d(f(x4), f(x%), 0}

30

Trang 32

Trong đó:

d(f (x4), f(x?) là khoảng cách của ảnh Anchor va Positive

d(f (x4), ƒ(x*) là khoảng cách của anh Anchor va Negative

a là hang số, đảm bảo cho mục tiêu ở trên luôn được đáp ứng

ArcFace loss

ArcFace [4], hay Additive Angular Margin Loss là một ham mat mát được sử dung

trong các tac vu nhận dạng khuôn mặt Ham Softmax mặc dù cũng được sử dung kha

nhiều cho bài toán này nhưng lại không thể hiện được tính rõ ràng trong việc phânchia các đối tượng, từ đó không thé nào tối ưu được ArcFace ra đời dé giải quyếtđiều này, mục tiêu của nó là giúp cho các đối tượng cùng một class thì càng gần nhauhơn, và ngược lại các class khác nhau có xu hướng đi xa nhau ra, từ đó giúp tối ưu

việc nhận diện các sample có trong tông thê.

31

Trang 33

CHƯƠNG 3 XÂY DỰNG PIPELINE HOÀN CHỈNH CHO BÀI TOÁN

DIEM DANH KHUÔN MAT

Ở chương trước, tôi đã thảo luận về một số kiến thức và van dé liên quan đến bài toánnhận diện khuôn mặt Trong chương này, tôi sẽ trình bày về phương pháp hoàn chỉnhcho bài toán này nhằm chuẩn bị cho việc xây dựng hệ thống ở những chương sau.Theo đó, sẽ có ba mô-đun chính phụ trách lần lượt ba bước xử lý là phát hiện khuônmặt, trích xuất đặc trưng khuôn mặt và trích xuất đặc trưng khuôn mặt

Verification and

Image Face Features Face identification

Detection Extraction Recognition

Hình 3.1 Minh họa luồng xử ly toàn bộ Pipeline

Vì vậy, chương này sẽ có bốn phần tương ứng với bốn nội dung chính: (1) tiền xử lý,(2) phát hiện khuôn mặt thực hiện các tác vụ phát hiện khuôn mặt, (3) trích xuất đặctrưng khuôn mặt và biến đổi (mapping) các khuôn mặt 6 module 1 thành các vectorhay template, những template này là cơ sở và là đại diện cho khuôn mặt gốc ban đầu

và (4) nhận diện khuôn mặt sử dụng các độ đo khoản cách dé tính toán độ tương đồnggiữa các template từ đó đưa ra quyết định Sau đây là nội dung chỉ tiết

32

Ngày đăng: 23/10/2024, 01:23