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

Luận văn thạc sĩ Khoa học máy tính: Ứng dụng công nghệ nhận diện khuôn mặt trong giám sát an ninh

74 1 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 đề Ứng dụng công nghệ nhận diện khuôn mặt trong giám sát an ninh
Tác giả Nguyễn Thanh Trông
Người hướng dẫn PGS. TS. Thoại Nam, TS. Dương Ngọc Hiếu
Trường học Đại học Quốc gia TP. HCM
Chuyên ngành Khoa học Máy tính
Thể loại Luận văn thạc sĩ
Năm xuất bản 2021
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 74
Dung lượng 27,11 MB

Nội dung

Công nghệ này có khả năng nhận diện một người mà được địnhdanh từ trước thông qua hình ảnh kỹ thuật số hoặc khung hình trong video.Công nghệ nhân diện khuôn mặt là công nghệ nhận diện đố

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM TRƯỜNG ĐẠI HỌC BÁCH KHOA

——————–

NGUYỄN THANH TRÔNG

ỨNG DỤNG CÔNG NGHỆ NHẬN DIỆN KHUÔN MẶT TRONG GIÁM SÁT AN NINH

Chuyên ngành: Khoa học Máy tính

Mã số: 8480101

LUẬN VĂN THẠC SĨ

Trang 2

CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠITRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG TP HCM

Cán bộ hướng dẫn khoa học 1: PGS TS Thoại Nam

Cán bộ hướng dẫn khoa học 2: TS Dương Ngọc Hiếu

Cán bộ chấm nhận xét 1: TS Lê Thanh Vân

Cán bộ chấm nhận xét 2: PGS.TS Nguyễn Thanh Hiên

Luận văn thạc sĩ được bảo vệ tại Trường Đại học Bách Khoa, ĐHQG Tp HCMngày 05 tháng 08 năm 2021

Thành phần Hội đồng đánh giá luận văn thạc sĩ gồm:

1 Chủ tịch: PGS TS Trần Văn Hoài

2 Thư ký: TS Nguyễn Lê Duy Lai

3 Phản biện 1: TS Lê Thanh Vân

4 Phản biện 2: PGS TS Nguyễn Thanh Hiên

5 Uỷ viên: PGS TS Trần Công Hùng

Xác nhận của Chủ tịch Hội đồng đánh giá luận văn 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ó)

TRƯỞNG KHOACHỦ TỊCH HỘI ĐỒNG KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

Trang 3

ĐẠI HỌC QUỐC GIA TP.HCM CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆ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 THANH TRÔNG MSHV: 1870088

Ngày, tháng, năm sinh: 06/10/1994 Nơi sinh: Long An

Chuyên ngành: Khoa học Máy tính Mã số: 8480101

I TÊN ĐỀ TÀI: Ứng dụng công nghệ nhận diện khuôn mặt trong giám sát anninh (Applying Face Recognition in Video Surveillance Security Systems)

II NHIỆM VỤ VÀ NỘI DUNG:

- Tìm hiểu các kỹ thuật học sâu cho bài toán nhận diện khuôn mặt

- Xây dựng hệ thống xác thực vào cổng ứng dụng công nghệ nhận diện khuônmặt từ dữ liệu hình ảnh của hệ thống CCTV và tích hợp với hệ thống RFIDứng dụng tại Trung tâm dịch vụ Kí túc xá Bách Khoa

- Đề xuất, nghiên cứu và ứng dụng các phương pháp tăng cường mẫu để tănghiệu năng hệ thống nhận diện khuôn mặt

- Đánh giá hiệu năng hệ thống khi tích hợp các phương pháp tăng cường mẫunhư tăng cường mẫu thực tế và tăng cường mẫu nội suy

III NGÀY GIAO NHIỆM VỤ: 21/09/2020

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 13/06/2021

V CÁN BỘ HƯỚNG DẪN: PGS TS Thoại Nam và TS Dương Ngọc Hiếu

Tp HCM, ngày tháng năm 2021

CÁN BỘ HƯỚNG DẪN CHỦ NHIỆM BỘ MÔN ĐÀO TẠO

TRƯỞNG KHOA KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH

Trang 4

LỜI CẢM ƠN

Đầu tiên, tôi xin gửi lời cảm ơn chân thành và sâu sắc đến thầy PGS TS.Thoại Nam và thầy TS Dương Ngọc Hiếu đã hướng dẫn, giúp đỡ và cho tôinhững ý kiến đóng góp hết sức quý báu trong quá trình thực hiện nghiên cứunày

Tôi trân trọng cảm ơn quý thầy, cô đang công tác tại Khoa Khoa học và

Kỹ thuật Máy tính, Trường Đại học Bách Khoa TP HCM, đã tạo điều kiệnthuận lợi để tôi hoàn thành nghiên cứu này

Tôi xin cảm ơn tất cả tác giả, đồng tác giả của sách, báo, tài liệu, v.v được

sử dụng làm tài liệu tham khảo trong luận văn này Tôi cũng gửi lời cảm ơn đến

đội ngũ phát triển các bộ thư viện mã nguồn mở MXNet, PyTorch, TensorFlow,

Vearch, và các bộ thư viện khác được chúng tôi sử dụng để xây dựng hệ thống

và thực nghiệm kết quả

Tôi cảm ơn tất cả thành viên của nhóm nghiên cứu thực hiện đề tài Kí túc

xá đã cùng nhau vượt các khó khăn, thử thách về cả công nghệ lẫn học thuật

để xây dựng hệ thống và thực nghiệm kết quả, tạo điều kiện thuận lợi cho tôihoàn thành đề tài nghiên cứu này Tôi và nhóm nghiên cứu cũng gửi lời cảm ơnđến ban giám đốc Trung tâm dịch vụ Kí túc xá Bách Khoa đã cho phép và tạođiều kiện để chúng tôi thực hiện và triển khai hệ thống

Cuối cùng, tôi xin gửi lời cảm ơn tới gia đình, bạn bè và người thân

Tp Hồ Chí Minh, ngày 15 tháng 07 năm 2021

Nguyễn Thanh Trông

Trang 5

TÓM TẮT

Trong những năm gần đây, kỹ thuật học sâu đã phát triển một cách bùng

nổ và ứng dụng thành công vào các lĩnh vực để giải quyết các vấn đề khác nhau

Có thể kể đế như sự đột phát để cho ra đời các mô hình DeepFace và DeepIDgiải quyết vấn đề nhận diện khuôn mặt trong năm 2014 Hệ thống nhận diệnkhuôn mặt tích hợp vào các hệ thống CCTV thường xuyên gặp một số vấn đề từthực tế như điều kiện ánh sáng, sự đa dạng của vị trí và góc khuôn mặt, khuônmặt bị che khuất khi đeo khẩu trang, v.v Ngoài ra, người được giám sát bởi hệthống CCTV thường thiếu ảnh mẫu, thông thường chỉ gồm một ảnh mẫu banđầu Những vấn đề này là nguyên nhân gây ra kết quả không ổn định của hệthống nhận diện khuôn mặt và khó khăn để triển khai thành công trong thực

tế Để giải quyết vấn đề thực tế đó, luận văn này đề xuất một mô hình kết hợphai phương pháp ASE và ISE ISE là phương pháp được đề xuất để làm giàumẫu dữ liệu bằng việc nội suy nhiều mẫu từ ảnh mẫu ban đầu Những mẫu mớiđược nội suy mang những đặc điểm riêng biệt trong điều kiện triển khai của cáccamera trong hệ thống CCTV Bằng thực nghiệm khi triển khai hệ thống tạiTrung Tâm Dịch Vụ Ký Túc Xá Bách Khoa, mô hình mới đề xuất đã tăng hiệunăng nhận diện khuôn mặt từ 72% lên 84% trong thời gian ban ngày và 46%lên 64% trong thời gian ban đêm

Trang 7

LỜI CAM ĐOAN

Tôi xin cam đoan rằng, đề tài “Ứng dụng công nghệ nhận diện khuôn mặttrong giám sát an ninh” là công trình nghiên cứu của tôi dưới sự hướng dẫn củathầy PGS TS Thoại Nam và thầy TS Dương Ngọc Hiếu xuất phát từ yêucầu thực tiễn của đề tài Kí túc xá và nguyện vọng tìm hiểu, khám phá kiến thứccủa bản thân chúng tôi

Những tài liệu tham khảo được sử dụng trong đề tài được trích dẫn rõ ràng,đúng theo nguyên tắc khoa học và tôn trọng các tác giả

Tp Hồ Chí Minh, ngày 15 tháng 07 năm 2021

Nguyễn Thanh Trông

Trang 8

MỤC LỤC

2.1 Các tác vụ xử lý ảnh khuôn mặt 4

2.2 Giới thiệu về học sâu 6

2.3 Ứng dụng học sâu vào face recognition 7

2.3.1 Ứng dụng học sâu vào face detection 7

2.3.2 Ứng dụng học sâu vào face identification 10

2.3.2.1 Ứng dụng học sâu biến đổi ảnh khuôn mặt thành embedding vector trong không gian Euclidean 13 2.3.2.2 Ứng dụng học sâu biến đổi ảnh khuôn mặt thành embedding vector trong không gian góc 15

2.4 Kalman filter 20

2.5 Các phương pháp làm giàu dữ liệu – Data augmentation 22

2.6 Kỹ thuật tối ưu lưu trữ và tìm kiếm embedding vector 24

CHƯƠNG 3 Phân tích yêu cầu 27 CHƯƠNG 4 Phương pháp đề xuất 36 4.1 Phân tích 36

Trang 9

4.2 Mô hình kết hợp hai phương pháp ASE và ISE 40

4.3 ISE – Interpolated Sample Enhancement 43

CHƯƠNG 5 Thực nghiệm và kết quả 49 5.1 Xây dựng kịch bản 49

5.2 Thông số đo hiệu năng 50

5.3 Xây dựng ISE 51

5.4 Kết quả thực nghiệm và đánh giá 52

CHƯƠNG 6 Kết luận 56 6.1 Kết quả đạt được 56

6.2 Hướng phát triển 56

Trang 10

DANH SÁCH HÌNH

2.1 Face detection bằng mô hình học sâu RetinaFace 4

2.2 Minh hoạ tác vụ face recognition 5

2.3 Sơ đồ kết hợp bốn tác vụ trong mô hình RetinaFace 8

2.4 Kiến trúc FaceNet 14

2.5 Chiến lược huấn luyện của hàm triplet loss 15

2.6 Tổng quát mô hình CosFace 17

2.7 Quá trình huấn luyện với hàm lỗi Angular Margin Softmax Loss của mô hình ArcFace 18

2.8 Sơ đồ hai bước dự đoán và cập nhật của thuật toán Kalman filter 21 2.9 Tổng quan các phương pháp làm nhiều thêm dữ liệu ảnh 23

3.1 Quy trình xác thực sinh viên vào cổng 29

3.2 Các bước cần xử lý khi nhận diện khuôn mặt một đối tượng 30

3.3 Sự khác biệt của ảnh đại diện và ảnh thực tế của một sinh viên ngẫu nhiên trong hệ thống KTX 34

4.1 Quy trình tăng cường mẫu kết hợp hai phương pháp ASE và ISE 42 4.2 Ý tưởng của phương pháp ISE 45

5.1 Tương quan giá trị cosine threshold và TAR, FAR 52

6.1 Chứng chỉ báo cáo tại hội nghị RICE 2021 59

Trang 11

DANH SÁCH BẢNG

2.1 Kết quả nhận diện khuôn mặt của các phương pháp trên các tập

dữ liệu khác nhau 92.2 Kết quả độ chính xác các mô hình trên các tập dữ liệu khác nhau 195.1 Tương quan giữa giá trị consine threshold và TAR, FAR của

10670 lượt đi vào cổng 535.2 Kết quả thực nghiệm trong 2 tuần ở thời gian ban ngày từ 7 giờsáng đến 5 giờ chiều 535.3 Kết quả thực nghiệm trong 2 tuần ở thời gian ban đêm từ 5 giờchiều đến 7 giờ sáng hôm sau 54

Trang 12

DANH MỤC VIẾT TẮT

AI Artificial Intelligence

ANN Artificial Neural Network

GPU Graphics processing unit

CNN Convolutional neural network

RTSP Real Time Streaming Protocol

ASE Actual Sample Enhancement

ISE Interpolated Sample Enhancement

TAR True acceptance rate

FAR False acceptance rate

FRR False rejection rate

Trang 13

CHƯƠNG 1 GIỚI THIỆU

Nhân loại đang bước vào cuộc cách mạng công nghiệp lần thứ tư, ngàycàng nhiều công nghệ kỹ thuật số được ứng dụng vào khắp các lĩnh vực của đờisống xã hội Tiêu biểu nhất phải kể đến công nghệ nhận diện khuôn mặt bằngtrí tuệ nhân tạo Công nghệ này có khả năng nhận diện một người mà được địnhdanh từ trước thông qua hình ảnh kỹ thuật số hoặc khung hình trong video.Công nghệ nhân diện khuôn mặt là công nghệ nhận diện đối tượng dựatrên sinh trắc học mà ít tác động đến người dùng nhất và là công nghệ sinh trắchọc hiệu quả nhất Công nghệ này có thể ứng dụng vào rất nhiều hệ thống đểgiải quyết các vấn đề khác nhau như mở khoá điện thoại di động thông minh;

hệ thống điểm danh, chấm công bằng khuôn mặt; xác thực cổng cửa (accesscontrol) bằng khuôn mặt; giám sát an ninh, phát hiện đối tượng trong danhsách đen bằng khuôn mặt; nhận diện khách hàng trong hệ thống loyalty bằngkhuôn mặt hay phân tích khách hàng bằng khuôn mặt, v.v

Bài toán nhận diện khuôn mặt là bài toán kinh điển trong lĩnh vực xử lýảnh và được nghiên cứu từ rất lâu Đến những năm đầu thập niên 90 của thế kỉtrước, những nghiên cứu về nhận diện khuôn mặt đã dần trở nên phổ biến hơn

và là thách thức lớn đối với các nhà khoa học [1] Mãi sau này, với sự ra đời củamạng nơ-ron nhân tạo, mô hình học sâu và sự phát triển của phần cứng với khảnăng xử lý mạnh mẽ, rất phù hợp và tăng hiệu năng của mô hình học sâu nhưGPU, bài toán nhận diện khuôn mặt đã đạt được độ chính xác trên 99% ở cáctập dữ liệu thử nghiệm Nghiên cứu [2] đã chỉ ra nhiều ứng dụng của học sâutrong các bài toán cụ thể của thành phố thông minh như phát hiện đối tượng,truy vết đối tượng, phân loại ảnh, nhận diện khuôn mặt Ngày nay, việc nghiêncứu và ứng dụng công nghệ nhận diện khuôn mặt đang trở thành xu thế và rấtphổ biến ở các công ty, tập đoàn lớn tại các nước trên thế giới, tiêu biểu như:

Trang 14

• Năm 2017, Baidu – công ty cung cấp dịch vụ tìm kiếm dữ liệu trên Internetlớn nhất Trung Quốc, đã thử nghiệm thành công hệ thống nhận diện khuôn

mặt của họ tại sân bay Bắc Kinh Nghiên cứu “Targeting ultimate accuracy:

Face recognition via deep embedding” về nhận diện khuôn mặt của họ được

đánh giá rất cao, có khả năng nhận diện tốt hơn cả người thực trong một

số trường hợp với độ chính xác lên đến 99.7% [3]

• Alipay – một ví điện tử tại Trung Quốc do tập đoàn Alibaba Group sởhữu và phát triển đã cung cấp thiết bị xác thực khi thanh toán mang tên

Dragonfly dùng để thay thế những máy POS truyền thống Thiết bị này

kết hợp sử dụng camera 3D và giải thuật học sâu để nâng cao độ chính xáckhi nhận diện khuôn mặt và tiến hành xác thực với hệ thống Nhờ côngnghệ này, nhiều cửa hàng đã tiết kiệm được thời gian để xử lí đơn hàng chokhách bằng việc thực hiện quá trình thanh toán với tốc độ nhanh hơn1

• Gần đây, vào đầu năm 2018, Nvidia công bố chương trình hợp tác cùng vớiAnyVision để phát triển công nghệ nhận diện khuôn mặt cho các dự ánthành phố thông minh trên thế giới2 Dự án hợp tác nhằm mục tiêu tíchhợp công cụ nhận diện khuôn mặt vào các hệ thống CCTV dùng để theodõi tội phạm Với công nghệ này, AnyVision nhận định rằng nó giúp chocác camera có thể quét khuôn mặt liên tục 24/7, tự động xác định và theodấu đối tượng trong đám đông với độ chính xác đạt đến 99% Nó còn hỗtrợ để người giám sát có thể so sánh những khuôn mặt được quét với hìnhảnh những tên tội phạm, khủng bố có trong cơ sở dữ liệu

• FacePRO là hệ thống nhận diện khuôn mặt sử dụng kỹ thuật học sâu củaPanasonic và được phát triển bởi Đại học quốc gia Singapore (NUS)3 Hệthống có thể hoạt động tốt với những trường hợp mặt khuôn mặt bị nghiên

1 http://www.chinadaily.com.cn/a/201812/14/WS5c12f272a310eff303290f11.html

2 https://mashable.com/2018/02/15/nvidia-developing-facial-recognition-cameras/

3 https://www.security.us.panasonic.com/technologies/facepro

Trang 15

sang trái hoặc phải đến 45 độ, bị che bởi mắt kính, hoặc khuôn mặt bị thayđổi bởi độ tuổi Hệ thống có khả năng xử lý rất ấn tượng với tối đa 30000khuôn mặt trong thời gian 1 giây.

Tại Việt Nam, nhu cầu ứng dụng công nghệ nhận diện khuôn mặt vào cácvấn đề khác nhau đang tăng nhanh, đặc biệt là vấn đế giám sát an ninh Rấtnhiều công ty, cơ quan, tổ chức muốn trang bị hệ thống tích hợp công nghệ nhậndiện khuôn mặt vì những ưu điểm của nó Cũng xuất phát từ nhu cầu thực tiễn,năm 2019, đề tài cấp Sở KH&CN Tp Hồ Chí Minh về “Ứng dụng công nghệtrí tuệ nhân tạo trong bài toán giám sát an ninh tại Trung tâm dịch vụ Ký túc

xá Bách Khoa – Trường Đại học Bách Khoa, ĐHQG TP Hồ Chí Minh” do TS.Dương Ngọc Hiếu đã được tiến hành nghiên cứu và triển khai Luận văn nàycăn cứ từ một vấn đề thực tiễn phát sinh trong quá trình triển khai đề tài

Trang 16

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

2.1 Các tác vụ xử lý ảnh khuôn mặt

Face detection (tạm dịch: Phát hiện khuôn mặt) là tác vụ phát hiện khuôn

mặt người trong hình ảnh hoặc video và phân biệt được hình ảnh các khuôn mặtnày với hình ảnh của các đối tượng khác trong ảnh Tác vụ này thường được

sử dụng để xác định chính xác vị trí hình ảnh khuôn mặt người trong ảnh cókích thước to hơn hoặc video, sau đó ảnh khuôn mặt sẽ được cắt (crop) và sửdụng cho các tác vụ xử lý ảnh khuôn mặt khác Hình 2.1 thể hiện tác vụ facedetection bằng mô hình học sâu RetinaFace [4] Mỗi khuôn mặt trong ảnh đượcxác định bằng hình chữ nhật màu vàng bao quanh khuôn mặt Hình chữ nhật

này thường được gọi là bounding box Ngoài ra trên mỗi khuôn mặt còn năm

điểm màu xanh lá đánh dấu năm vị trí trên khuôn mặt gồm hai mắt, mũi và mép

trái, mép phải của miệng Năm điểm này thường được gọi là facial lankmark.

Hình 2.1: Face detection bằng mô hình học sâu RetinaFace [4]

Trang 17

Face verification (tạm dịch: Xác nhận khuôn mặt) là tác vụ so sánh ảnh

khuôn mặt xem hình ảnh khuôn mặt này có phù hợp với ảnh khuôn mặt kháckhông hay nói cách khác là kiểm tra các ảnh khuôn mặt này và ảnh khuôn mặtkia có phải của cùng một người hay không Đây là một ánh xạ một một, xácđịnh hình ảnh khuôn mặt của một người cần kiểm tra xem có thật sự là họkhông

Face identification (tạm dịch: Xác định khuôn mặt) là tác vụ xác định ảnh

khuôn mặt xem có phải của cùng một người với ảnh khuôn mặt có trong cơ

sở dữ liệu không Đây là ánh xạ một nhiều, tìm kiếm ảnh khuôn mặt của mộtngười để biết họ là ai trong cơ sở dữ liệu khuôn mặt

Hình 2.2: Minh hoạ tác vụ face recognition1

Face recognition (Nhận diện khuôn mặt) là tác vụ xác định người mà có ảnh

khuôn mặt xuất hiện trong hình ảnh hoặc video là ai bằng cách tìm kiếm trong

cơ sở dữ liệu khuôn mặt Tác vụ này khởi đầu với tác vụ face detection để xácđịnh chính xác ảnh khuôn mặt người trong frame ảnh Sau đó hình ảnh khuônmặt người được xác định là của ai bằng cách thực hiện tác vụ face identification

để tìm kiếm trong cơ sở dữ liệu khuôn mặt Hình 2.2 minh hoạ tác vụ facerecognition

1 https://github.com/deepinsight/insightface

Trang 18

2.2 Giới thiệu về học sâu

Máy học – Machine learning là một nhánh trong lĩnh vực Trí tuệ nhân tạo– Artificial intelligence (AI) mà tập trung vào xây dựng các mô hình có khả nănghọc quy luật phân bố dữ liệu được cung cấp để giải quyết những bài toán cụthể Ngày nay, ứng dụng của Máy học vào các lĩnh vực nghiên cứu, đời sống, xãhội ngày càng đa dạng, phổ biến bao gồm phiên dịch tự động, nhận dạng tiếngnói, nhận dạng chữ viết, biển số xe, khuôn mặt, v.v Học sâu – Deep learning làmột nhánh của Máy học, tập trung giải quyết vấn đề bằng phương pháp huấnluyện mạng nơ-ron nhân tạo – Artificial neural network (ANN) gồm rất nhiềulớp, có thể đến hàng chục, hàng trăm triệu tham số

Mạng neural học sâu đã được đề xuất từ những thập niên 90 của thế kỉtrước bởi nhà khoa học máy tính Yann LeCun [5] Tuy nhiên, vì sự hạn chế củacông nghệ thời điểm đó, kỹ thuật này vẫn chưa thể phát huy được sức mạnhcũng như chứng minh tiềm năng của nó Mãi đến những năm 2010-2012, nhờtận dụng khả năng tính toán song song cực kì hiệu quả của bộ xử lý hình ảnh –Graphics processing unit (GPU), nhiều nhà nghiên cứu mới thật sự chứng minhđược sức mạnh của học sâu nhờ xây dựng các mô hình Convolutional neuralnetwork (CNN) lớn mà nổi bật nhất là kiến trúc AlexNet [6] với hơn 60 triệutham số Hiện nay, nhờ sự tiến bộ của phần cứng máy tính, các mô hình họcsâu ngày càng được nghiên cứu nhiều hơn, ứng dụng vào thực tiễn, phổ biến vàhiệu quả hơn Tuy nhiên, để mô hình học sâu hoạt động hiệu quả nhất khôngchỉ cần phần cứng mạnh mẽ mà còn nhờ vào lượng dữ liệu huấn luyện đủ lớn,

đủ thông tin và đa dạng

Trang 19

2.3 Ứng dụng học sâu vào face recognition

Các mô hình học sâu có thể ứng dụng vào rất nhiều ngành, lĩnh vực để giảiquyết các bài toán khác nhau Trong lĩnh vực khoa học máy tính nói chung vàbài toán nhận diện khuôn mặt nói riêng, việc ứng dụng học sâu mang lại hiệunăng cao hơn hẳn các kỹ thuật xử lý ảnh truyền thống

Tác vụ face recognition gồm hai tác vụ nhỏ hơn là face detection và faceidentification Ứng dụng học sâu vào face recognition có thể ứng dụng vào cảhai tác vụ nhỏ này

2.3.1 Ứng dụng học sâu vào face detection

Cùng với sự bùng nổ của face recognition thì độ chính xác và hiệu quả vềchi phí và thời gian xử lý của việc phát hiện, xác định vị trí khuôn mặt trongảnh vẫn là một thách thức lớn Việc tự động định vị khuôn mặt trong ảnh làbước tiền xử lý cho hầu hết các tác vụ xử lý hình ảnh liên quan khuôn mặt, tiêubiểu là face recognition Quy trình áp dụng thường là:

1 Xác định tất cả khuôn mặt có trong hình ảnh

2 Cắt (crop) thành nhiều ảnh, mỗi ảnh chỉ chứa đúng một khuôn mặt

3 Hình ảnh khuôn mặt được cắt để tiến hành nhận diện

Do đó tác vụ phát hiện và định vị khuôn mặt trong ảnh là bước tiền đề

và rất quan trọng, ảnh hưởng trực tiếp đến kết quả nhận diện Ngoài ra với các

hệ thống xử lý face recognition liên tục theo thời gian thực thì độ hiệu quả củagiải thuật face detection cũng là một yếu tố đáng cân nhắc Nếu tác vụ facedetection với chi phí tính toán quá lớn, thời gian xử lý quá lâu thì hệ quả sẽ giatăng độ trễ cho cả tác vụ face recognition Vì face detection là tác vụ đầu tiênphải thực thi, nếu thời gian xử lý tác vụ này quá lâu, chắc chắn sẽ gia tăng thời

Trang 20

gian xử lý của cả tác vụ face recognition, từ đó gia tăng độ trễ, một yếu tố rấtcân nhắc trong bất kì hệ thống xử lý theo thời gian thực nào.

Để giải quyết vấn đề định vị khuôn mặt, hiện tại có nhiều phương phápkhác nhau trong đối nổi bật là hai mô hình học sâu là MTCNN và RetinaFace

Cả hai mô hình đều đồng thời thực hiện hai tác vụ là:

• Phát hiện khuôn mặt bằng việc xác định toạ độ bốn điểm của hình chữ nhậtbao quanh khuôn mặt Hình chữ nhật này thường gọi là bounding box

• Đánh dấu 5 điểm đại diện cho năm điểm dấu hiệu trên khuôn mặt, gồm haimắt, mũi và mép trái, mép phải của miệng Năm điểm này thường được gọi

là facial landmark

Việc kết hợp cả hai tác vụ đồng thời trong cùng một mô hình mạng neuralhọc sâu giúp tăng độ chính xác cho việc định vị khuôn mặt Kế thừa ý tưởngcủa MTCNN, mô hình RetinaFace mở rộng kết hợp bốn tác vụ vào một mô hìnhduy nhất để gia tăng độ chính xác Hình 2.3 biểu thị sơ đồ kết hợp bốn tác vụcủa RetinaFace bao gồm:

Hình 2.3: Sơ đồ kết hợp bốn tác vụ trong mô hình RetinaFace [4]

Trang 21

• Xác định có khuôn mặt xuất hiện trong ảnh hay không; ảnh sẽ được đánhgiá theo giá trị score để xác định có khuôn mặt xuất hiện trong ảnh haykhông.

• Xác định bouding box nếu có khuôn mặt xuất hiện trong ảnh

• Đánh dấu facial landmark, đánh dấu năm điểm đại diện cho năm điểm dấuhiệu trên khuôn mặt, nếu có khuôn mặt trong ảnh

• Xác định các đỉnh của khuôn mặt trong không gian 3D được chiếu lên mặtphẳng ảnh, hay có thể xem đây là phép dựng hình 3D bằng cách xác địnhcác đỉnh trong không gian 3D của khuôn mặt từ hình ảnh khuôn mặt trongkhông gian 2D

Bốn tác vụ trên khi được kết hợp duy nhất trong một mô hình mạng duynhất sẽ giúp cải thiện hiệu năng lẫn nhau của từng tác vụ, tác vụ này bổ trợtác vụ khác, giúp tăng độ chính xác về kết quả cuối cùng của cả mô hình Kiểu

mô hình kết hợp nhiều kết quả thế này gọi là multi-task learning.

Bảng 2.1: Kết quả nhận diện khuôn mặt của các phương pháp trên các tập dữliệu khác nhau [4]

LFW CFP-FP AgeDB-30MTCNN + ArcFace 99.83% 98.37% 98.15%

mô hình học sâu được sử dụng trong tác vụ face identification, và cho độ chính

Trang 22

xác cao hơn, nên có thể khẳng định, khi so sánh với MTCNN thì RetinaFace cho

độ chính xác cao hơn ở tác vụ face detection Ngoài ra, RetinaFace có thể đượctuỳ biến lớp (layer) cuối trong mô hình mạng neural để giảm kích thước cũngnhư tăng tốc độ xử lý tuỳ thuộc vào yêu cầu độ chính xác và khả năng xử lý củatài nguyên máy tính Trong cấu hình thấp nhất, khi kết hợp với MobileNet-0.25,RetinaFace-MobileNet-0.25 cho khả năng xử lý khoảng 60 hình/giây khi chạytrên 1 thread CPU Intel 6700K và 16 hình/giây trên CPU ARM A72x2 với ảnh

có độ phân giải VGA (640 × 480) [4]

2.3.2 Ứng dụng học sâu vào face identification

Với khả năng mạnh mẽ và đặc biệt phù hợp với các tác vụ xử lý ảnh,học sâu từ giai đoạn đầu bùng nổ đã được ứng dụng vào lĩnh vực xử lý ảnhkhuôn mặt nói chung và face identification nói riêng Trong giai đoạn đầu, đa

số việc ứng dụng học sâu vào face identification là tác vụ phân loại ảnh (imageclassification) để xác định ảnh khuôn mặt này thuộc lớp (class) nào, hay ảnhkhuôn mặt đó là ảnh khuôn mặt của ai Mỗi người khi định danh trong hệ thống

sẽ tương ứng một lớp khi phân loại Ảnh khuôn mặt của tất cả người cần đượcnhận diện được thu thập và sử dụng để làm tập huấn luyện cho mạng neural họcsâu Sau đó tác vụ face identification được thực hiện bằng cách phân loại ảnhkhuôn mặt mới của người mà mạng neural học sâu đã được huấn luyện trước

đó Face identification được thực hiện bằng cách phân loại ảnh khuôn mặt này

có hai vấn đề rất lớn là:

• Chỉ có khả năng phân loại ảnh vào các lớp được huấn luyện từ trước haychỉ có thể nhận diện được người mà ảnh khuôn mặt đã được huấn luyện bởimạng neural học sâu Do đó khi phát sinh thêm một người cần nhận diệnbắt buộc mô hình cần phải được huấn luyện lại Điều này không hợp lýtrong thực tế vì nhu cầu tăng thêm số lượng người cần được nhận diện xảy

Trang 23

ra rất thường xuyên Mỗi lần phát sinh thêm người cần nhận diện, thì phảithực hiện lại quá trình huấn luyện mạng neural học sâu với rất nhiều lớp(layer) và rất nhiều tham số Quá tình này cần rất nhiều thời gian và đòihỏi hệ thống phần cứng mạnh mẽ Ngoài ra, để mạng neural đạt hiệu năngcao, quá trình huấn luyện cần các chuyên gia trí tuệ nhân tạo với nhiều kinhnghiệm để điều chỉnh, theo dõi các giá trị siêu tham số (hyperparameter)cho phù hợp Phương pháp này không khả thi trong triển khai thực tế.

• Hiệu năng về độ chính xác và chi phí xử lý của mô hình bị ảnh hưởng rấtmạnh khi số lượng người (đối tượng) cần nhận diện tăng lên Cụ thể khi

số lượng người cần nhận diện tăng lên, số lượng lớp (class) cần phân loạicủa mạng neural cũng tăng lên nên kích thước của ma trận biến đổi ở lớp

(layer) cuối W tăng theo số lượng đối tượng được phân loại W ∈ R d×n,

trong đó d là số chiều của vector và n là số đối tượng được phân loại [7].

Khi số lượng class quá lớn, độ chính xác của mô hình sẽ giảm, đỏi hỏi phảităng kích thước mạng neural bằng cách tăng số layer và số neural ở mỗilayer Tăng kích thước mạng neural lại ảnh hưởng đến chi phí và thời gian

xử lý Nhưng đến khi bùng nổ số lượng class cần phân loại hay số lượngngười cần nhận diện, mô hình bắt đầu giảm độ chính xác đến mức không

đủ tin cậy để triển khai trong thực tế mặc dù đã tăng kích thước mô hình.Mặc dù phương pháp này có nhiều vấn đề nhưng trong nghiên cứu [8] cáctác giả đã đề xuất các giải pháp để giải quyết các vấn đề trên và mang lại độchính xác lên đến 99.47% và 93.2% trên tập dữ liệu LFW và YTF với mô hình

mạng DeepID2+ Tuy nhiên các giải pháp khắc phục này cũng có những hạn

chế được nêu ra ở nghiên cứu [9] Ngoài ra, khả năng tách biệt đối tượng tốt ởtập dữ liệu đóng, nhưng khi chạy thực nghiệm tại các tập dữ liệu khác thì khảnăng tách biệt không còn đủ tốt cũng là một nhược điểm lớn [7]

Sau đó, nghiên cứu [9] đã đề xuất giải pháp vector hoá ảnh khuôn mặt với

Trang 24

mô hình FaceNet Trong phương pháp này mỗi ảnh khuôn mặt được biến đổithành embedding vector tương ứng Việc huấn luyện mô hình được thực hiệntrực tiếp trên những embedding vector Sau đó embedding vector được sử dụngcho các tác vụ face verification, face identification và face clustering (gom cụmgương mặt) Lúc đó bài toán face verification biến thành phép so sánh khoảngcách giữa hai vector với ngưỡng hay face identification trở thành vấn đề phân

loại k-NN, còn gom cụm gương mặt được thực hiện bằng các giải thuật gom

cụm trên các embedding vector

Phương pháp biến đổi ảnh khuôn mặt thành embedding vector không mới

và đã xuất hiện từ rất lâu Phương pháp này có nhiều ưu điểm như tách biệtviệc xử lý, một mô hình có thể áp dụng lại cho nhiều tác vụ xử lý ảnh khuônmặt khác nhau Nhưng trước đây phương pháp này chưa mang lại hiệu quả là

do chưa có công cụ nào đủ mạnh mẽ như học sâu để biến đổi ảnh khuôn mặtthành embedding vector mang các đặc trưng của khuôn mặt đó nhưng tách biệtvới các đặc trưng của các khuôn mặt khác Quá trình huấn luyện mô hình họcsâu ở phương pháp này là huấn luyện để mạng neural để học được cách để rúttrích được những đặc điểm đặc trưng ở trong ảnh khuôn mặt và ánh xạ các đặctrưng đó vào embedding vector Vì biến đổi từ ảnh khuôn mặt sang embedding

vector nên các mô hình học sâu này thường được gọi là encoder Sự ra đời của

mạng FaceNet [9] với độ chính xác cao hơn trước, học sâu đã chứng minh được

độ hiệu quả trong việc biến đổi ảnh khuôn mặt thành embedding vector

Đối với mô hình học sâu lí tưởng, sau khi huấn luyện, mô hình phải có khảnăng tách biệt những vector của những người (đối tượng) khác nhau và cố gắnggiảm thiểu độ sai lệch của những vector được sinh ra từ những ảnh khuôn mặtcủa cùng một đối tượng Ví dụ đối tượng A có 10 hình, đối tượng B có 11 hình,

mô hình học sâu tốt là mô hình mà sinh được 10 vector của đối tượng A có sailệch với nhau phải nhỏ hơn sai lệch với những vector sinh ra từ 11 hình của đốitượng B Việc giảm thiểu sai lệch giữa 10 vector của đối tượng A với nhau hoặc

Trang 25

giữa 11 vector của đối tượng B với nhau được gọi là intra-class compactness.

Còn việc tăng sai lệch giữa 10 vector đối tượng A với 11 vector đối tượng B gọi

là inter-class dispersion.

Các mô hình học sâu liên tục được cải tiến ở cả kiến trúc và hàm lỗi (lossfunction) để việc vector hoá ngày càng tốt hơn Theo thời gian, những sự cảitiến liên tục diễn ra và hình thành hai phương pháp nhỏ hơn là biến đổi ảnhkhuôn mặt thành embedding vector trong không gian Euclidean và biến đổi ảnhkhuôn mặt thành embedding vector trong không gian góc Điểm khác nhau chủyếu hai phương pháp này là không gian embedding vector và toán tử để xácđịnh khoảng cách giữa hai vector, yếu tố xác định hai vector có gần nhau khônghay hai gương mặt có phải của cùng một người không Khi khoảng cách cànglớn, sự khác biệt của hai vector càng lớn hay hai ảnh khuôn mặt tạo thành hai

embedding vector đó càng khác biệt nhau Khi khoảng cách lớn hơn ngưỡng ϑ,

hai ảnh khuôn mặt được kết luận của hai người khác nhau

2.3.2.1 Ứng dụng học sâu biến đổi ảnh khuôn mặt thành embedding vector

trong không gian Euclidean

Trong phương pháp này, ảnh khuôn mặt được biến đổi thành embeddingvector và embedding vector được phân bổ trong không gian Euclidean Khoảngcách giữa hai embedding vector được tính bằng khoảng cách Euclidean giữa haivector đó Tiêu biểu cho phương pháp này là mô hình mạng FaceNet

FaceNet là mô hình học sâu có chức năng biến đổi ảnh khuôn mặt thànhembedding vector trong không gian Euclidean với 128 chiều và dùng khoảngcách Euclidean giữa những vector được tạo từ các ảnh khuôn mặt đó để so sánh

sự tương đồng giữa chúng Mô hình FaceNet được xây dựng dựa trên kiến trúcmạng học sâu là Inception GoogLeNet như trong hình 2.4 Sau khi đi qua kiếntrúc mạng học sâu dữ liệu được normalize L2 để biến thành vector 128 chiều

Điểm đặc trưng của FaceNet là sử dụng hàm lỗi (loss function) triplet loss.

Trang 26

Hình 2.4: Kiến trúc FaceNet [9]

Mục tiêu của hàm lỗi này là tối thiểu hoá khoảng cách giữ những vector của cùngmột đối tượng đồng thời tối đa hoá khoảng cách với những vector của những

đối tượng khác Quá trình này được thể hiện ở hình 2.5 Trong hình, Anchor

là vector gốc được chỉ định, Positive là những vector của cùng một người với vector gốc, Negative là những vector của những người khác với vecrtor gốc Qua

quá trình huấn luyện, khoảng cách giữa giữa anchor và positive giảm lại đồngthời khoảng cách giữa anchor và negative tăng lên Hay nói cách khác, quá trìnhhuấn luyện làm giảm khoảng cách của những vector của cùng một người và tăngkhoảng cách của những vector của những người khác nhau Đây cũng là vấn

đề lớn nhất của mô hình này, làm sao để chọn được bộ ba anchor, positive vànegative tối ưu nhất để hàm triplet loss hoạt động hiệu quả nhất trong quá trìnhhuấn luyện Chiến lược thường sử dụng là hard positive (positive khó) và hardnegative (negative khó) bằng cách tìm positive mà có khoảng cách đến anchorlớn nhất (hard positive) và tìm negative mà có khoảng cách đến anchor bé nhất(hard negative) Việc thay đổi bộ ba triplet được thực hiện liên tục trong quatrình huấn luyện, sau

• Mỗi vài lượt huấn luyện của vài dữ liệu Lúc này bộ ba triplet sẽ được tìmtrong một tập con dữ liệu do không thể tìm trên cả tập dữ liệu huấn luyện

vì chi phí xử lý quá lớn

• Mỗi minibatch dữ liệu Khi này bộ ba triplet sẽ được tìm trong tập dữ liệuminibatch đang huấn luyện

Trang 27

Hình 2.5: Chiến lược huấn luyện của hàm triplet loss [9]

Nhờ việc sử dụng phương pháp vector hoá và hàm triplet loss, mô hìnhFaceNet cho độ chính xác cao hơn các phương pháp trước đó khi lên đến 98.87%trên tập LFW và 95.12% trên tập YTF

2.3.2.2 Ứng dụng học sâu biến đổi ảnh khuôn mặt thành embedding vector

trong không gian góc

Mô hình FaceNet tuy giải quyết được những vấn đề trước đó và chứng minhđược sự hiệu quả học sâu trong việc vector hoá ảnh khuôn mặt thành embeddingvector tiêu biểu là kết quả trên hai tập dữ liệu LFW và YTF Nhưng mô hìnhnày cũng gặp hai vấn đề rất lớn liên quan đến hàm triplet loss là

• Sự bùng nổ tổ hợp của các cặp ba triplet

• Vấn đề semi-hard quá khó để huấn luyện mô hình cho hiệu quả

Sau đó các nghiên cứu mới đã tập trung giải quyết các vấn đề còn tồntại Đặc điểm chung của các nghiên cứu này là vẫn giữ nguyên ý tưởng biếnđổi ảnh khuôn mặt thành embedding viector nhưng không sử dụng hàm triplet

loss mà xây dựng các hàm loss khác nhau dự trên hàm softmax loss và biến đổi

trong không gian góc Kết quả, các mô hình mới ra đời với chức năng biến ảnhkhuôn mặt thành embedding vector và vector được phân bổ trong không giangóc Khoảng cách giữa hai embedding vector được tính bằng khoảng cách cosinegiữa hai vector đó như công thức 2.1 Khi khoảng cách cosine càng tiến về 0,

Trang 28

hai vector càng gần nhau trong không gian góc hay hai ảnh khuôn mặt cànggần nhau, càng cùng của một người Tiêu biểu cho phương pháp này là mô hìnhSphereFace [10], CosFace [11] và ArcFace [7]

dist = 1 − |− → − → u − → v

u ||− → v | (2.1)

Trong đó: − → u , − → v = các vector cần được tính khoảng cách coisne và,

− → u − → v

| − → u || − → v | = độ tương tự cosine (cosine similarity) hay giá trị cosine

của góc của hai vector Giá trị này càng gần 1 thì haivector có góc càng nhỏ hay càng gần nhau trong khônggian góc

Hình 2.6 thể hiện mô hình tổng quát của CosFace và chiến lược huấn luyệncủa hàm loss của mô hình này là Large Margin Cosine Loss [11] Cụ thể, nữatrên thể hiện mô hình tổng quát, cách thức hoạt động của không những CosFace

mà còn cả SphereFace và ArcFace Các mô hình này đều được cấu thành từ một

mô hình mạng Convolutional học sâu (deep convolutional) kết hợp với nhữnglớp (layer) khác và một hàm loss mới được xây dựng dựa trên hàm softmax đểtăng cường khả năng tách biệt đối tượng Nghiên cứu SphereFace đề xuất hàm

Angular Margin Softmax Loss, CosFace đề xuất Large Margin Cosine Loss và

ArcFace đề xuất Additive Angular Margin Loss Khi hoạt động, mô hình nhận

đầu vào là ảnh khuôn mặt và cho ra kết quả là vector embedding của khuônmặt đó Trong quá trình huấn luyện mô hình, hàm softmax và lớp loss layerđược sử dụng để phân loại embedding vector thuộc lớp (class) nào, hay vectorđại diện cho khuôn mặt của ai Kết thúc quá trình huấn luyện, khi kiểm tra độchính xác hoặc áp dụng vào thực tiễn, kết quả đầu ra của mô hình là embeddingvector và được sử dụng cho các tác vụ khác nhau như face verification hay faceidentification như đã trình bày ở trên

Trang 29

Hình 2.6: Tổng quát mô hình CosFace [11]

Hình 2.7 biểu thị sơ đồ hoạt động của hàm Additive Angular Margin Losstrong mô hình ArcFace Đầu tiên, kết quả đầu ra của các lớp deep convolutional

sẽ được nhân với lớp fully-connected cuối cùng khi cả hai đều normalize Kết quảcủa phép nhân này bằng với cosine similarity của hai vector Sau đó tiến hành

lấy arc-cosine để được góc giữa hai vector, thêm một đại lượng m vào góc và

cuối cùng lấy lại cosine để ra được giá trị cuối Giá trị này sau đó được re-scale

và đưa vào hàm softmax xử lý như các mô hình mạng khác Điểm đặc biệt của

Additive Angular Margin Loss là cộng thêm đại lượng m vào góc giữa hai vector

và có thể viết thành công thức cos(φ + m) Trong khi đó hàm Large Margin

Cosine Loss trong mô hình CosFace có cách tiếp cận khác là cộng thêm đại

lượng m vào giá trị cosine thành cos(φ) + m Còn hàm Angular Margin Softmax Loss thì nhân đại lượng m vào giá trị góc khi lấy cosine như cos(mφ) Tuy có

cách biến đổi khác nhau nhưng mục tiêu chung của ba hàm loss này là tách biệtvector của những đối tượng khác nhau và ổn định quá trình huấn luyện Vì bahàm lỗi có ba chiến lược tối ưu khác nhau nên hoàn toàn có thể xây dựng mô

Trang 30

hình kết hợp cả ba chiến lược lại theo công thức 2.2, khi đó m1, m2 và m3 làcác siêu tham số (hyper-parameter) có thể dễ dàng cấu hình và điều chỉnh đểphù hợp với tập dữ liệu.

Hình 2.7: Quá trình huấn luyện với hàm lỗi Angular Margin Softmax Loss của

mô hình ArcFace [7]

cos(m1φ + m2)− m3 (2.2)

Trong đó: m1 = siêu tham số đại diện cho Angular Margin Softmax Loss,

m2 = siêu tham số đại diện cho Additive Angular Margin Loss,

m3 = siêu tham số đại diện cho Large Margin Cosine Loss và

φ = giá trị góc được tính từ phép acr-cosine

Vì ba phương pháp tối ưu hàm lỗi ở ba mô hình SphereFace, CosFace,ArcFace là biến đổi giá trị cosine theo ba cách khác nhau nên hoàn toàn có thểkết hợp thành một mô hình duy nhất Lúc này mô hình kết hợp có các ưu điểmnhư

• Khả năng rất linh hoạt trong cấu hình, nếu chọn thông số phù hợp, hàmloss sẽ rất hiệu quả trong quá trình huấn luyện, tách biệt được vector nàyvới vector khác hay tách biệt những đặc điểm đặc trưng của các khuôn mặtthuộc hai người (đối tượng) khác nhau

• Độ chính xác cao, mô hình kết hợp này được được đánh giá là mô hình tốt

Trang 31

nhất, hiệu quả nhất hiện nay cho bài toán nhận diện khuôn mặt.

• Dễ hiện thực, mô hình này rất dễ hiện thực trong các framework cho họcsâu như MxNet, Pytorch và Tensorflow

• Hiệu quả, so với các mô hình khác hay từng mô hình riêng lẻ khi không kếthợp, mô hình này thêm các toán tử tính toán không quá phức tạp trongquá trình huấn luyện nên thời gian huấn luyện vẫn đảm bảo nhưng cho lạikết quả cao hơn

Bảng 2.2: Kết quả độ chính xác các mô hình trên các tập dữ liệu khác nhau

và ArcFace cho độ chính xác cao hơn tuyệt đối Ngoài ra khi kết hợp SphereFace,CosFace và ArcFace thành một mô hình duy nhất cho độ chính xác lớn hơn hoặcbằng khi áp dụng từng mô hình riêng lẽ Trong nghiên cứu [12], tác giả có nhấn

mạnh rằng “Mặc dù các phương pháp tiếp cận dựa trên học sâu đã được sử dụng

rộng rãi và hiệu quả, nhưng thực tế đã chứng minh rằng các điều kiện khác nhau, chẳng hạn như tư thế chụp ảnh, ánh sáng, biểu cảm khuôn mặt, v.v ảnh hưởng

Trang 32

đến hiệu suất việc nhận diện khuôn mặt và việc xử lý khuôn mặt kết hợp với các phương pháp học sâu là cần thiết” Do đó việc áp dụng kết hợp các mô hình và

các kỹ thuật xử lý ảnh khác nhau một cách hợp lý sẽ giúp cải thiện, nâng cao

độ chính xác của cả hệ thống nhận diện khuôn mặt

2.4 Kalman filter

Kalman filter là thuật toán sử dụng một loạt các phép đo được quan sáttheo thời gian, chứa nhiễu thống kê và các điểm không chính xác khác, đồngthời tạo ra các ước tính cho các biến chưa biết nhằm tăng độ chính xác so vớinhững biến chỉ dựa trên một phép đo đơn lẻ Kalman filter làm được điều nàybằng cách ước tính phân phối xác suất chung trên các biến cho mỗi khung thờigian Hay nói cách khác Kalman filter là một kỹ thuật cho phép ước tính trạngthái của hệ thống so với trạng thái trước đó với độ chính xác cao hơn do có

sử dụng các ước tính tính phân phối xác suất so với các phương pháp khác.Kalman filter được đặt theo tên của Rudolf E Kálmán, một trong những ngườiphát triển chính lý thuyết của kỹ thuật này

Kalman filter có nhiều ứng dụng trong các lĩnh vực khác nhau, đặc biệttrong các lĩnh vực liên quan công nghệ Một ứng dụng phổ biến là hướng dẫn,điều hướng và điều khiển phương tiện, đặc biệt là máy bay, tàu vũ trụ và tàuthuyền Ngoài ra Kalman filter còn được áp dụng rộng rãi trong phân tích dữliệu chuỗi thời gian, được sử dụng trong cách lĩnh vực như phân tích chuỗi tínhiệu và kinh tế Kalman filter còn là thành phần chính trong các tác vụ lên kếhoạch và điều khiển chuyển động của robot đặc biệt là tính toán tối ưu hoá quỹđạo

Thuật toán hoạt động theo quy trình hai bước: Dự đoán và cập nhật Trongbước dự đoán, Kalman filter tạo ra các ước tính cho các giá trị của hệ thống,cùng với độ không chắc chắn theo mô hình xác suất của chúng Khi kết quả của

Trang 33

phép đo tiếp theo (bao gồm sai lệch thực tế và nhiễu ngẫu nhiên) được quansát, các ước tính này được cập nhật bằng cách sử dụng trung bình có trọng số,với trọng số càng lớn khi ước tính độ chắc chắn càng cao Thuật toán mang tínhchất đệ quy Nó có thể chạy trong thời gian thực, chỉ sử dụng các phép đo đầuvào hiện tại, trạng thái đã tính toán trước đó và ma trận độ không chắc chắn;không có thông tin nào khác của trạng thái quá khứ được yêu cầu.

Output estimate

of state

Hình 2.8: Sơ đồ hai bước dự đoán và cập nhật của thuật toán Kalman filter1

Để hiểu hơn hoạt động của giải thuật ta xét một áp dụng thực tế của giảithuật Kalman filter, việc xác định vị trí chính xác của xe tải Mỗi xe tải đượctrang bị thiết bị xác định vị trí GPS để ước lượng vị trí hiện tại của xe với sai

số vài mét Ước lượng GPS là một ước lượng nhiễu, bản thân thiết bị GPS cósai số và khi thiết bị GPS gửi thông tin vị trí, xe tải có khả năng di chuyển khỏi

vị trí mà thiết bị GPS ghi nhận Vị trí mới của xe tải được xác định khi có vịtrí hiện tại, hướng di chuyển, thời gian di chuyển và vận tốc Nhưng do sai sốkhi xác định hướng di chuyển và vận tốc di chuyển, việc ước lượng vị trí chínhxác của xe tải sẽ có nhiều sai số, do đó việc áp dụng giải thuật Kalman filter sẽtăng độ chính xác cho việc ước lượng Giải thuật Kalman filter được thực hiệnqua hai bước: Dự đoán và cập nhật Ở bước dự đoán, vị trí cũ của xe tải sẽ

1 https://en.wikipedia.org/wiki/Kalman_filter

Trang 34

được thay đổi theo các tính toán vật lí như vận tốc, thời gian để được nhữngước lượng mới Ngoài vị trí thì các yếu tố liên quan cũng như vận tốc cũng đượctính toán Ở bước cập nhật, vị trí của xe tải được thiết bị GPS ghi nhận Khi

đó giá trị vị trí được đo đạc với một lượng không chắc chắn, khi sử dụng kếthợp các mô hình xác suất để xác định được giá trị đo đạc mới của GPS sẽ ảnhhưởng bao nhiêu vào giá trị ước lượng ở bước dự đoán Sau khi tính toán, giá trịước lượng được tính toán và cập nhật lại, đây là giá trị ước lượng cuối cùng củagiải thuật Quá trình này được lặp đi lặp lại theo thời gian, bước sau ước lượnggiá trị theo bước trước và trạng thái chuyển động (vận tốc, thời gian) Sau đógiá trị ước lượng được cập nhật theo giá trị đo lường thực thế để tạo ra giá trịước lượng cuối cùng Mở rộng ra, khi giải thuật Kalman filter được áp dụng đểxác định trạng thái của hệ thống, tại mỗi thời điểm, ở bước dự đoán giá trị ướclượng được tính toán bằng giá trị của thời điểm trước và trạng thái thay đổicủa hệ thống (thường được biểu diễn ở dạng ma trận, nên gọi là ma trận biếnđối) Sau đó giá trị đo lường thực tế được ghi nhận, giá trị ước lượng được cậpnhật với giá trị đo lường thực tế Sau bước cập nhật, kết quả của giải thuật làgiá trị ước lượng về trạng thái mới của hệ thống

2.5 Các phương pháp làm giàu dữ liệu – Data augmentation

Để làm nhiều thêm dữ liệu nói chung và dữ liệu ảnh nói riêng cho các tác

vụ trí tuệ nhân tạo, trên thế giới đã có nhiều nghiên cứu khác nhau Đặc biệt với

sự phát triển của mạng neural học sâu trong các lĩnh vực xử lý ảnh khuôn mặtthì tác vụ làm nhiều thêm dữ liệu ảnh khuôn mặt ngày càng được chú trọng vànghiên cứu nhiều hơn Có nhiều phương pháp để làm nhiều dữ liệu ảnh nhưngđược chia là ba nhóm chính là Biến đổi chung – Generic Transformation, Biếnđổi thành phần – Component Transformation và Biến đổi đặc tính – AttributeTransformation [13], được minh hoạ ở hình 2.9

Trang 35

Hình 2.9: Tổng quan các phương pháp làm nhiều thêm dữ liệu ảnh [13]

• Biến đổi chung – Generic Transformation: Chủ yếu biến đổi ảnh bằng cáchxoay ảnh; phóng to, thu nhỏ và cắt ảnh; tăng giảm độ sáng và chuyển ảnh

về trắng đen Phương pháp này hoàn toàn không thay đổi đặc tính củakhuôn mặt chỉ giả lập những điều kiện của môi trường khi chụp ảnh nhưthay đổi kích thước màu sắc

Trang 36

• Biến đổi thành phần – Component Transformation: Biến đổi một hoặc mộtvài thành phần khuôn mặt như thay đổi kiểu tóc; thêm kính hoặc biến đổiảnh thành ảnh có trang điểm Phương pháp này thay đổi những đặc điểmnhưng giữ lại những đặc trưng riêng biệt của khuôn mặt.

• Biến đổi đặc tính – Attribute Transformation: Phương pháp này có thể cóhoặc không biến đổi đặc trưng khuôn mặt vì nó thay đổi biến đổi khuônmặt theo một số quy tắc như thêm cảm xúc cho khuôn mặt; thay đổi độtuổi của khuôn mặt

Tổ hợp các phương pháp trên với nhau, mỗi phương pháp điều chỉnh giátrị của các thông số và áp dụng vào ảnh mẫu ban đầu, kết quả cho ra rất nhiềuảnh khuôn mặt mới Các ảnh mới tạo ra có thể với số lượng rất lớn, phục vụrất tốt cho việc huấn luyện mô hình đặc biệt trong trường hợp không đầy đủ dữliệu ảnh hoặc dữ liệu ảnh không đa dạng

2.6 Kỹ thuật tối ưu lưu trữ và tìm kiếm embedding vector

Trong tác vụ face recognition nói chung hay face identification nói riêng,ngoài độ chính xác thì thời gian và chi phí xử lý cũng là một yếu tố quan trọng,đặc biệt đối với các hệ thống xử lý theo thời gian thực Với sự bùng nổ về môhình học sâu và ứng dụng rất hiệu quả vào face identification theo phương phápbiến đổi ảnh khuôn mặt thành embedding vector, tác vụ face identification đượcthực hiện bằng việc tìm kiếm embedding vector trong tập dữ liệu khuôn mặt đãđược vector hoá từ trước Cụ thể, ảnh khuôn mặt cần xác định là ai, đối tượngnào, sẽ được vector hoá thành embedding vector và tìm kiếm trong tập vectorcủa tất cả ảnh khuôn mặt được đánh dấu từ trước Tập vector được đánh dấunày được gọi là tập mẫu, mỗi vector trong tập mẫu sẽ chứa thông tin của đốitượng mà ảnh khuôn mặt được vector hoá tương ứng Mỗi đối tượng có thể cómột hoặc nhiều vector (mẫu) nhưng ít nhất phải có một Việc tìm kiếm vector

Trang 37

phải đảm bảo các vector tìm được trong tập mẫu có khoảng cách với vector cần

tìm bé nhất và khoảng cách đó nhỏ hơn ngưỡng ϑ, ví dụ như 0.5 Nếu tác vụ tìm

kiếm tốn quá nhiều thời gian thì hiệu năng chung của cả tác vụ face recognition

sẽ bị giảm xuống Do đó ngoài việc vector hoá ảnh khuôn mặt sao cho hiệu quảthì tối ưu hoá việc tìm kiếm trên embedding vector cũng quan trọng không kémkhi so sánh với các tác vụ khác

Trong bài toán tìm kiếm, việc tổ chức cấu trúc dữ liệu hợp lý sẽ quyết định

độ hiệu quả và giảm độ phức tạp của giải thuật Đối với bài toán tìm kiếm vectorcũng tương tự Nếu sử dụng phương pháp lưu trữ phẳng như mảng hoặc danhsách thông thường và kỹ thuật tìm kiếm tuần tự thì chỉ có thể sử dụng hiệu quảtrên tập dữ liệu khuôn mặt có kích thước nhỏ Đối với các tập dữ liệu từ vàingàn đến vài chục ngàn vector trở lên, việc áp dụng phương pháp tìm kiếm tuần

tự như trên là bất khả thi trong thực tế Do đó để hệ thống face recognition cóthể hoạt động theo thời gian thực với số lượng ảnh khuôn mặt cần nhận diện

lớn thì phải sử dụng cấu trúc dữ liệu chuyên dụng như đồ thị k-NN để lưu trữ

tập embedding vector này

K-NN là từ viết tắt của K-Nearest Neighbors, là một cấu trúc dữ liệu khá

phổ biến trong lĩnh vực khai thác dữ liệu và học máy Đồ thị k-NN là đồ thị

trong đó hai đỉnh p và q được nối với nhau bằng một cạnh nếu khoảng cách giữa p và q nằm trong số những khoảng cách nhỏ nhất thứ K Độ đo tương

tự của các vector này có thể là khoảng cách Hamming, khoảng cách Cosine,khoảng cách Euclide, v.v Đối với các mô hình học sâu biến đổi ảnh khuôn mặtthành embedding vector phân bổ trong không gian góc như ArcFace, CosFace,SphereFace hay kết hợp cả ba mô hình thì khoảng cách cosine được sử dụng để

đo khoảng cách giữa hai embedding vector

Có ba vấn đề khi xây dựng một đồ thị k-NN là: 1) Việc xây dựng đồ thịk-NN một cách nhanh chóng; 2) Duy trì đồ thị k-NN khi có sự thay đổi về dữliệu và 3) Khả năng trả lời một truy vấn k-NN, nghĩa là cho một điểm truy vấn,

Ngày đăng: 30/07/2024, 16:36

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w