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 2CÔ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 4LỜ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 5TÓ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 7LỜ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 8MỤ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 94.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 10DANH 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 11DANH 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 12DANH 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 13CHƯƠ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 15sang 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 16CHƯƠ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 17Face 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 182.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 192.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 20gian 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 22xá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 23ra 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 24mô 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 25giữ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 26Hì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 27Hì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 28hai 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 29Hì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 30hì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 31nhấ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 33phé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 35Hì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 37phả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,