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

Khóa luận tốt nghiệp Kỹ thuật máy tính: Ứng dụng nhận dạng khuôn mặt trong đóng mở cửa tự động cho nhà thông minh

108 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

Định dạng
Số trang 108
Dung lượng 33,9 MB

Nội dung

Hình 4.14 Loss và accuracy khi evaluate tập dữ liệu ValidationHình 4.15 Lượng tham số của mô hình MobileNetV2 với input size 96x96 Hình 4.16 Lượng tham số của mô hình MobileNetV3 với inp

Trang 1

ĐẠI HỌC QUỐC GIA TP HÒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA KỸ THUẬT MÁY TÍNH

NGUYÊN THÀNH NHÂN

PHẠM TÂN NHẬT

KHÓA LUẬN TÓT NGHIỆP UNG DỤNG NHAN DẠNG KHUÔN MAT VÀO DONG

MỞ CỬA TỰ ĐỘNG CHO NHÀ THÔNG MINH

FACE RECOGNITION AND ITS APPLICATION IN

AUTOMATIC DOOR FOR SMARTHOME

KY SU NGANH KY THUAT MAY TÍNH

TP HO CHÍ MINH - NĂM 2022

Trang 2

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

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

KHOA KỸ THUẬT MÁY TÍNH

NGUYÊN THÀNH NHÂN - 18521178

PHẠM TÂN NHẬT - 18521197

KHÓA LUẬN TÓT NGHIỆP

UNG DỤNG NHẬN DẠNG KHUÔN MAT VÀO DONG

MỞ CỬA TỰ ĐỘNG CHO NHÀ THÔNG MINH

FACE RECOGNITION AND ITS APPLICATION IN

AUTOMATIC DOOR FOR SMARTHOME

KỸ SU NGANH KY THUAT MAY TÍNH

GIANG VIEN HUONG DAN

TS PHAM QUOC HUNG

Trang 3

THÔNG TIN HỘI ĐÒNG CHÁM KHÓA LUẬN TÓT NGHIỆP

Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số 526/QD-DHCNTT

ngày 19 tháng 07 năm 2022 của Hiệu trưởng Trường Đại học Công nghệ Thông tin.

Trang 4

Lời cảm ơn

Lời đầu tiên, xin gửi lời cảm ơn tới TS Phạm Quốc Hùng đã hướng dẫn tận tình

để chúng tôi có được định hướng tốt nhất, xác định được đúng đề tài, mục tiêu, quy trình

cần thiết dé xây dựng và hoàn thiện khoá luận này Bên cạnh đó, thay còn giúp chúng tôichỉnh sửa cũng như bổ sung những thiếu sót trong quá trình thực hiện

Xin được cảm ơn quý thầy cô cũng như Trường Đại học Công nghệ thông tin đãtạo điều kiện về cơ sở vật chất, hệ thống thư viện, tài liệu cũng như kiến thức cho chúng

tôi trong quá trình tìm biểu và làm khoá luận Cảm ơn hội đồng chấm khoá luận đã đưa

ra nhiều góp ý dé giúp hoàn thiện dé tai

Cảm ơn gia đình, người thân đã tạo động lực, điều kiện để chúng tôi có thể hoàntoàn tập trung và nỗ lực Cảm ơn bạn bè đã giúp đỡ, hỗ trợ chúng tôi trong quá trình thực

hiện khoá luận này.

Trang 5

3.1 Phát hiện khuôn mặt (Face detection)

3.1.1 Tổng quan về Haar Cascade

3.1.2 Haar-like feature

3.1.3 Ảnh tích phân (Integral image) -22+++2222E+v++++tttEEEExvrrrtttrrrkkrrrrrrrrrkk 12

3.1.4 Thuật toán Adaboos( 525222 2t2xtrttrterxerrerrrrirrrrrrrrrrrirrerrrer 14

3.2 Tiền xử lý anh (Preprocessing Image) cccccce+ccccvssccrrerrrrsssercerrrr., TỔ

3.2.1 Landmark detection

3.2.2 Điều chỉnh hướng của khuôn mặt

3.3 Principal Components Analysis

3.3.1 Mô tả phương phương thức thực hiện của PCA - : ‹:-5:©5+55+>+ 2 3.4 Mô hình máy học dé phân loại (Suport Vector Machine) - c cccsscc+ 24

3.5 Huấn luyện mô hình máy học -¿-¿ ¿c5 S5 SE‡eekeeekeeeteeetrseerererrerrree 20

4.1 Két ốc cố mm ẽ.ẽ 47 4.1.1 Thuật toán phát hiện khuôn mặt ¿- + +2 +5++x+v£x+xererxrrerxrxerrrxer 4.1.2 Tiền xử lý ảnh và thu thập Dataset

4.1.3 Nhận dạng khuôn mặt

4.1.4 Cải thiện độ chính xác nhi

Trang 6

4.1.5 — Thiết kế giao điện :22222222 2222222111222 c1 68

4.1.6 Mô hình cửa tự động cs St kg 82

4.17 Công suất tiêu thụ

4.2 _ Ưu điểm — Nhược điểm của khoá luận 2 s¿++2+++£EE+tEE+etEExevrxkesrrrrrrke 87 4.2.1 UU Gin iecceccseeeessccsssssssesecccesssnnesseccesssnnnseeeccsssnmnseeecessstseeecessnnseeeeeesssnseecessneee 87 4.2.2 Nhược điểm -2222cc 2222222122222 c1 87

63 Về để tài cửa tự động ứng dụng nhận dạng khuôn mặt -. -‹ - OS w108i1089:71/0‹4 G0777 97

Trang 7

DANH MỤC HÌNH

Hình 3.1 Năm loại đặc trưng Haar điển hình

Hình 3.2: Ví dụ về cách tính toán một đặc trưng Haar.

Hình 3.3: Đặc trưng đường được dùng dé phát triển con ngươi.

Hình 3.4 Ví dụ về cách tính giá trị của một pixel trong ảnh tích phân

Hình 3.5 Mô tả trực quan về cách hoạt động của thuật toán Adaboost

Hình 3.6 Thuật toán Adaboost trong trường hop dung dé phát hiện khuôn mặt

Hình 3.7: Một ví dụ khi phát hiện khuôn mặt băng phương pháp Haar Cascade.

Hình 3.8 Mô tả 68 điểm của Dlib's face landmark detector [7]

Hình 3.9 Kết qua sau khi áp dụng Dlib Face landmark detector

Hình 3.10 Ví dụ cho ảnh gốc, sau khi xoay 15 độ kim đồng hồ

Hình 3.11 Ví dụ về một bức ảnh landmark có góc mặt bị nghiêng.

Hình 3.12 Minh họa toàn bộ các bước tiền xử lý hình ảnh.

Hình 3.13 Mô phỏng các bước thực hiện PCA

Hình 3.14 Hình (a) biểu diễn dữ liệu có margin nhỏ hơn (b)

Hình 3.15 Dữ liệu khuôn mặt xét trong không gian 2 chiều

Hình 3.16 Các bước của quá trình Hyperparameter cho mô hình SVM

Hình 3.17 Sơ đồ liên kết của các Thread

Hình 3.18 Ví dụ việc hệ thống bỏ qua ảnh khi quá trình dự đoán vẫn chưa hoàn thành

Hình 3.19 Thread 3 xử lý dữ liệu dau vào liên tục mà không phải đợi một cách tuần tự

Hình 3.20 Sơ đồ khối phần cứng của hệ thông

Hình 3.21 Sơ do kêt nôi cua module L298N

Hình 3.22 Cầu tạo cơ bản của một IR Sensor

Hình 3.23 Schematic của một mạch chia áp đơn giản

Hình 3.24 Mặt trước mô hình với IR Sensor được đánh dấu "1"

Hình 3.25 Mặt sau của mô hình

Hình 3.26 Lưu đồ giải thuật quá trình hoạt động của hệ thống với các IR Sensor

Hình 3.27 Nguyên lý hoạt động của công tắc hành trình

Hình 3.28 Sơ đồ khi kết nôi module L298N với 2 công tắc hành trình và động cơ

Hình 3.29 Sơ đồ kết nối phần cứng và phần mềm

Hình 3.30 Quá trình training và nhúng mô hình vào máy tính nhúng.

Hình 3.31 Quá trình Three-way Handshake

Hình 4.1 Quá trình trích xuất hình ảnh khuôn mặt khi sử dụng Haar cascade.

Hình 4.2 Các bước tiền xử lý hình ảnh

Hình 4.3 Hai đối tượng trong dataset đã được xử lý để đúng với yêu cầu đặt ra.

Hình 4.4 Mã chương trình thực thi Tuning Hyperparameter

Hình 4.5 Kết quả cặp tham số C, gamma tốt nhất đối với kernel linear

Hình 4.6 FPS hệ thống đạt được khi áp dụng Multi-Threading

Hình 4.7 FPS hệ thống đạt được khi chưa áp dụng Multi-Threading

Hình 4.8 Mức tiêu thụ CPU của hệ thống khi chưa áp dụng Multi-Threading

Hình 4.9 Mức tiêu thụ CPU của hệ thông khi đã áp dụng Multi-Threading

Hình 4.10 Ví dụ về lượng phép toán tích chập của một mạng CNN tiêu chuẩn [10]

Hình 4.11 Ví dụ về lượng phép toán tích chập của MobileNet [10]

Hình 4.12 Sự khác biệt giữa MobileNet và MobileNetV2

Hình 4.13 Khai báo model MobileNetV2, không train lại pre-trained model

lì is 12 13 15

15

17

17 19 19 20 21 23 25 27 28 32 33

33 34

35 36

37 38

38 39 40 4I 42 45 45 47 49 50

51 52

54 54

55 55

57 58

59 60

Trang 8

Hình 4.14 Loss và accuracy khi evaluate tập dữ liệu Validation

Hình 4.15 Lượng tham số của mô hình MobileNetV2 với input size 96x96

Hình 4.16 Lượng tham số của mô hình MobileNetV3 với input size 224x224

Hình 4.17 Evaluate tập dữ liệu Training và Validating trên MobileNetV2

Hình 4.18 Evaluate tập dit liệu Training va Validating trên MobileNetV3

Hình 4.19 Xác thực admin dé truy cập ứng dung

Hình 4.20 Giao diện lựa chọn mô hình máy học

Hình 4.21 Các tính năng chính của ứng dụng

Hình 4.22 Giao diện của chức năng cửa tự động khi đang bật chế độ tự động

Hình 4.23 Giao diện của chức năng cửa tự động khi đã tắt chế độ tự động

Hình 4.24 Giao diện nhận dạng khuôn mặt của chế độ tự động

Hình 4.25 Giao diện đổi mật khâu bao mật.

Hình 4.26 Một ví dụ cho tính năng Verification Testing

Hình 4.27 Gợi ý người dùng thêm mới dữ liệu và database cho lần training kế tiếp.

Hình 4.28 Các chức năng con của tính năng quản lý dữ liệu khuôn mặt

Hình 4.29 Anh GIF về quá trình tương tác di liệu giữa Raspbery Pi và Laptop

Hình 4.30 Ảnh tĩnh về giao điện huấn luyện mô hình máy học

Hình 4.31 Anh GIF về quá trình thu thập dữ liệu cho người dùng mới

Hình 4.32 Ảnh tĩnh về giao diện thu thập dữ liệu cho người dùng mới

Hình 4.33 Ảnh tĩnh cho kết quả cuối cùng của việc thu thập mẫu cho người mới

Hình 4.34 Giao diện xoá người dùng ra danh sách được phép vào nhà.

Hình 4.35 Tổng quan về cách bó trí của mô hình.

Hình 4.36 Điện năng tiêu thụ bình thường của Raspberry Pi + Camera

Hình 4.37 Điện năng tiêu thụ đỉnh của Raspberry Pi + Camera

Hình 4.38 Điện năng tiêu thụ bình thường của các linh kiện khác

Hình 4.39 Điện năng tiêu thụ đỉnh các linh kiện khác

Hình 4.40 Một vài trường hợp phát hiện khuôn mặt sai của Haar Cascade

61

62

62 63

68

69 70 71 72 73 74 75 76 T7 78 78 79 80 80 81

82

83 84 85 85 88

Trang 9

DANH MỤC BANG

Bảng 3.1 Một số đặc trưng trên khuôn mặt mà Dlib face detector có thể phát hiện được

Bảng 3.2 Một vài kernel funtion và các bộ phân loại mà chúng được định nghĩa

Bảng 3.3 Bang mô tả input va output của L298N

Bảng 3.4 Thời gian training trên các thiết bị

Bang 4.1 Bảng két qua qué trinh trich xuất ảnh từ video.

Bảng 4.2 Các thông sô trung bình của quá trình Hyperparameter trên tập dữ liệu Test

Bảng 4.3 Kết quả chỉ tiết của 31 đối tượng với các kernel riêng biệt trên tập validation Bảng 4.4 Kết quả chỉ tiết của các đối tượng khi triển khai trên MobileNetV2

Bảng 4.5 Kết quả chi tiết của các đối tượng khi triển khai trên MobileNetV3

Bang 5.1 So sánh một số đề tài đã thực hiện

Trang 10

DANH MỤC TU VIET TAT

RFID Radio Frequency Identification

GPU Graphics Processing Unit

SVM Support Vector Machine

PCA Principal Components Analysis

CNN Convolutional Neural Network

HOG Histogram of oriented gradients

Faster R-CNN

Network OpenCV Open Source Computer Vision Library

FPS Frames Per Second

Al Artificial Intelligence

Gaussian RBF Gaussian radial basis function

VCC Voltage Common Collector

GND Ground

Ww Watt

A Ampe

V Voltage

CPU Central Processing Unit

USB Universal Serial Bus

RAM Random-access memory

Faster Region-based Convolutional Neural

Trang 11

CUDA Compute Unified Device Architecture loTs Internet of Things

FTP File Transfer Protocol

SYN Synchronize

SYN-ACK Synchronize - Acknowledgement

SYN-Req Synchronize — Requirement

Trang 12

TÓM TAT ĐÈ TÀI

Hiện nay trong kỷ nguyên của công nghệ - kỹ thuật, chúng ta luôn gặp phải những rắc

rồi, bat cập xung quanh van dé bảo mật Đề giải quyết vấn dé này, các giải pháp bảo mật

liên tục được cải thiện, cập nhật Liên hệ với đề tài này, cửa ra vào là một đồ vật cực kỳquen thuộc và không thể thiếu đối với mọi ngôi nhà Từ trước đến nay, luôn có rất nhiều

cách cho việc đóng mở cửa, từ những cách truyền thống như thanh gạt từ thời xưa chođến những 6 khóa sử dung chìa, rồi hiện đại hơn với RFID, mật khẩu hay pattern Cho

đến hiện nay, các công nghệ mở khóa cửa bằng các biện pháp bảo mật sinh trắc học trởnên nỗi bật và ngày càng được biết đến rộng rãi Bởi sở dĩ, sinh trắc học mang đến một

giải pháp bảo mật với tốc độ cao và đáp ứng sự tiện lợi đối với nhu cầu của người dùng

hiện nay do không đòi hỏi nhiều thao tác, công cụ đề có thể mở khoá Tuy nhiên, vấn đề

về độ an toàn của các phương pháp bảo mật, nhất là bảo mật sinh trắc khuôn mặt vẫn

đang tồn đọng nhiều vấn đề xung quanh khả năng nhận dạng của nó Trong đề tài này,

nhóm sinh viên áp dụng mô hình nhận dạng khuôn mặt lên một hệ thống cửa lùa có tíchhợp khả năng đóng/mở tự động Đề tài hướng đến việc xây dựng mô hình có chỉ phí thấptuy nhiên vẫn đảm bảo được độ chính xác cũng như tốc độ phản hồi nhanh Với việc

những mô hình cửa tự động và 6 khoá có tích hợp nhận dang khuôn mặt đã và đang phát

triển mạnh mẽ thì giảm chỉ phí cho mô hình giúp tăng giá trị cạnh tranh, đồng thời tiếpcận tới đa dạng đối tượng người dùng hơn Do đó, việc lựa chọn phần cứng cũng như

phương pháp học máy là bước quan trọng hàng đầu Raspberry PI 4 là một máy tính

nhúng với kích thước nhỏ gọn, được tích hợp GPU nên thích hợp cho việc huấn luyện

các mô hình học máy (Machine Learning) và xử lý quá trình đóng/mở cửa Việc nhận

diện khuôn mặt bao gồm hai quá trình là phát hiện khuôn mặt và nhận dạng khuôn mặt

Nhóm sử dụng phương pháp Haar-cascade cho việc phát hiện khuôn mặt, phương pháp

nay sử dụng các đặc trưng phát hiện được dé xuất bởi Viola và Jones SVM va PCA làhai phương pháp được sử dụng cho nhận dạng khuôn mặt Đặt trong trường hợp triển

Trang 13

khai mô hình trên một hệ thống nhúng có cấu hình hạn chế, hơn nữa đây còn là xử lý

ảnh thì việc giảm chiều dữ liệu nhưng vẫn giữ lại được những chỉ tiết chính sẽ tăng tốc

độ xử lý Sau khi đã giảm được chiều dữ liệu thì việc còn lại là sử dụng một bộ phân loạiđơn giản, không áp dụng học sâu đề nhận dang khuôn mặt, ở đây nhóm sinh viên sẽ dùng

một phương pháp phổ biến là Support Vector Machine bởi vì mô hình này không sửdụng tài nguyên nhiều như các bộ phân loại học sâu, đây là yếu tố then chốt dé lựa chọn

khi mà Raspberry Pi là một loại máy tính nhúng có cấu hình hạn chế, việc chạy một môhình ma có quá nhiều thông số như MT-CNN, ANN, FaceNet, EfficientNet, DeepFace

mà không áp dụng nhiều phương pháp hợp ly dé giảm độ nặng của mô hình sẽ làm tăng

tốc độ phản hồi hoặc thậm chí gây giật, lag Việc nhận diện khuôn mặt là quá trình baogồm việc máy ảnh chụp lại hình ảnh, sau đó hình ảnh sẽ được tiền xử lý (GrayScale, lọc

chỉ tiết khuôn mặt, cân bằng lại góc nhìn) đề cải thiện chất lượng ảnh cũng như để phùhợp với quá trình xử lý sau đó, tiếp theo, ảnh sẽ được kiểm tra dé xác định có hay không

huôn mặt người trong đó, nếu có, ảnh sẽ được so sánh với những khuôn mặt mà hệthống đã được học từ trước đề xác thực rằng người đứng trước cửa có phải thành viên

hợp lệ hay không Dựa vào kết quả của quá trình nhận diện khuôn mặt, máy tính nhúng

sẽ điều khiển động cơ dé mở khóa cửa hay không Tại trường Dai học Công nghệ thôngtin, Đại học quốc gia Thành phó Hồ Chí Minh đã có nhiều nghiên cứu liên quan đến mô

hình cửa tự động và nhận dạng khuôn mặt Tham khảo hai để tài là “Hệ thống xác thực

mở khoá cửa tự động bằng khuôn mặt sử dụng Board Intel Galileo” (Vũ Bá Tấn Đạt,

Nguyễn Ngọc Lâm — 2016) và “Hệ thống nhúng định danh qua nhận dạng khuôn mặt”(Nguyễn Tan Phat, La Tuấn Vinh - 2021) Đề tài đầu tiên sử dung board Intel Galileo và

có khả năng nhận dạng nhiều khuôn mặt, tuy nhiên tốc độ xử lý có thé lên đến 5 giây, vàtrong đề tài thứ hai nghiên cứu ứng dụng mô hình DeepLearning lên KIT Jatson Nano

và đạt FPS ở khoảng 6-9FPS Độ chính xác của cả hai đề tài đều đạt trên 80% tuy nhiên

chưa chú trọng vào việc cải thiện tốc độ phản hồi của mô hình

Trang 14

Chương 1 MỞ ĐẦU

1.1 Lí do chọn đề tài

Hiện nay, công nghệ và kỹ thuật đang phát triển cực kỳ mạnh mẽ và dần khẳng địnhđược độ ảnh hưởng cũng như quan trọng của nó đối với cuộc sống của con người Chúng

ta hoàn toàn có thể nhận ra điều nảy thông qua những tin tức, thời sự, báo chí, Một

phần của sự phát triển đó là động lực thúc day đến từ nhu cầu luôn muốn hiện đại hoá,công nghệ hoá dé cải thiện chất lượng cuộc sống của người dùng Những nhà nghiên

cứu, phát triển thì luôn muốn đem đến những sản phẩm, công trình mang tính thực tế,hữu ích Sự bùng nổ của các thiết bị thông minh như điện thoại, máy tinh bang, robot,

càng minh chứng rõ ràng cho việc con người luôn muốn đưa công nghệ về gần hơn với

bản thân Đó cũng chính là lí do cho việc xây dựng và phát triển các thiết bị cho mộtngôi nhà thông minh trở thành xu hướng nổi bật trong thời gian gần đây Đối với nhà

thông minh, hoặc có thể chỉ là một ngôi nhà, tòa nhà thông thường, một hệ thống cửa tự

động và hiện tại có thể coi là linh hồn đầu tiên của ngôi nhà - đảm bảo cho sự an toàncũng như tiện lợi to lớn mà nó mang lại Đi lên từ những phương pháp truyền thống nhưRFID, password, dấu van tay, người dùng phải thực hiện một loạt các thao tac hoặc cham

để có thể mở cửa thì bảo mật sinh trắc khuôn mặt như một giải pháp thiết thực cho vấn

đề trên, đồng thời vẫn đáp ứng cực tốt van dé về bảo mật, nhất là khi Covid-19 vẫn còn

hiện hữu và van đề tiếp xúc là nhạy cảm Tuy nhiên, giá thành sẽ là rao cản lớn dé phổ

biến các sản phẩm như thế này đến với đại đa số người dùng Nhận thấy tính thực tế tiềmnăng nghiên cứu, phát triển của mô hình cửa với bảo mật khuôn mặt hiện nay, nhóm sinh

viên thực hiện xây dựng mô hình cửa tự động áp dụng nhận dạng khuôn mặt cho đề tài

nghiên cứu.

1.2 Mục đích nghiên cứu

Ứng dụng hai xu hướng công nghệ hiện nay là máy học (Machine Learning) và

internet vạn vật (Internet of things) để xây dựng một mô hình cửa tự động ứng dụng công

Trang 15

nghệ nhận dạng khuôn mặt nhằm khắc phục một số hạn chế cũng như phát triển thêm

các tính năng, ưu điểm cho hệ thống này Cụ thể là:

- Tìm hiểu và ứng dụng các phương pháp máy học là Haar Cascade cho phát hiệnkhuôn mặt, PCA và SVM cho nhận dạng khuôn mặt, tối ưu và tinh chỉnh trên mô hình

máy học để đạt được độ chính xác cao

- Tiền xử lý ảnh bằng các phương pháp như chuyền đổi ảnh xám, chuyền đổi tỉ lệ

ảnh, trích xuất landmarks, điều chỉnh hướng nghiêng khuôn mặt

- Khai thác khả năng Multi-Threading dé tăng FPS cũng như thời gian đáp ứng

cho hệ thống

- Điều khiển và xử lý các tín hiệu, ngoại vi trên Raspberry chính xác

- Đảm bảo độ an toàn phải có trên cửa, đồng thời nâng cao độ tiện lợi thông qua

việc tích hợp và xử lý tín hiệu từ hệ thống các cảm biến

- Mô hình thực hiện được phải có tính hợp lý và ứng dụng cao Đảm bảo các mặt

hạn chế về chi phí và năng lượng

1.3 Phạm vi nghiên cứu

Phạm vi của đề tài là giải quyết hai vấn đề chính Thứ nhất là nhận dạng khuônmặt: thực hiện tiền xử lý ảnh, phát hiện khuôn mặt và nhận dạng khuôn mặt Thứ hai là

đóng/mở cửa tự động: xử lý tín hiệu thu và nhận đề điều khiển cửa

Việc xây dựng một mô hình cửa tự động áp dụng nhận dạng khuôn mặt bao gồm

ba vấn dé chính cần quan tâm dé đánh giá là công suất, độ chính xác và tốc độ xử lý

Tuy nhiên, trong để tài này, nhóm sinh viên chỉ tập trung cải thiện độ chính xác và tốc

độ xử lý, bỏ qua các vấn đề về công suất và bảo mật

Trang 16

Chương2 TONG QUAN

2.1 Tinh hình trong nước

Các mô hình cửa tự động và khóa cửa có nhận dạng khuôn mặt đã và đang được

biết đến ngày càng rộng rãi hơn ở thị trường Việt Nam Về cửa tự động - đây không còn

là một hệ thống quá xa lạ đối với người dùng, các sản phẩm về cửa tự động đã được sử

dụng cách đây khá lâu Trong nước cũng có rất nhiều các doanh nghiệp lớn, nhỏ thựchiện thi công, lắp ráp cửa tự động phục vụ cho các công ty, tòa nhà cho đến các ngôi nhà

ở bình thường — hầu như sử dụng các hệ thống cửa nhập khẩu từ nước ngoài Hiện naytại Việt Nam chưa có công ty phát triển các sản phẩm khóa cửa có ứng dụng nhận dạng

khuôn mặt Tuy nhiên, về phát triển các giải pháp về AI hay cụ thể là nhận dạng khuôn

mặt thì một số công ty nồi tiếng ở Việt Nam có thé kể đến như VinAI thuộc Vin Grouphay AI View thuộc BKAV chuyên về các giải pháp AI (bao gồm nhận dạng khuôn mặt)

Mặt hạn chế này có thé xuất phát từ khả năng cạnh tranh trực tiếp đối với các sản phẩmđến từ các thương hiệu nồi tiếng ở ngoài nước

Việc các công ty, doanh nghiệp nước ngoài thường sản xuất ra các sản phẩm theo

xu hướng và sự ảnh hưởng từ danh tiếng khiến cho phần lớn người dùng trong nước sẽ

chọn mua các sản phẩm ngoại nhập Điều này dẫn tới việc dù khối lượng nghiên cứu

nhiều nhưng rẤt Ít các nghiên cứu được hiện thực thành sản phẩm được thương mại hóa

Xét riêng tại trường Đại học Công nghệ thông tin - Đại học Quốc gia Thành phố

Hồ Chí Minh, ké từ năm 2011 đến nay, mỗi năm đều có nhiều hơn 1 dé tài thực hiện các

nghiên cứu liên quan đến vấn đề này Mỗi nghiên cứu đều mang những hướng tiếp cận,kết quả khác nhau Có thể ké đến như về phan cứng: năm 2016, nhóm sinh viên Vũ BáTat Dat đã nhúng mô hình nhận dạng khuôn mặt trên board Intel Galileo, nhóm cua sinhviên Nguyễn Tan Phát nhúng trên Jetson nano, hoặc trên máy tính cá nhân và cả

Raspberry PI Các phương pháp máy học cũng được ứng dụng đa dạng, từ các phương, pháp, thuật toán phức tạp như Deep Learning (Facanet, MTCNN, MobileFaceNets, ),

Trang 17

đến những mô hình nhẹ hơn như LBP cascade, Eye Cascade, Eigenfaces Điều này cho

thây khả năng nghiên cứu, phát triển trên đề tài này là rất lớn và tiềm năng

2.2 Tình hình ngoài nước

Cửa tự động hay công nghệ nhận dạng khuôn mặt đều là những công nghệ đãxuất hiện từ khá lâu Từ cửa đóng-mở sử dụng hơi nước từ nhiều thế kỷ trước, đến năm

1960, các nhà khoa học người Mỹ cho ra cửa tự động hiện đại đầu tiên sử dụng thiết bị

truyền động sàn - thiết lập ra một ngành công nghiệp mới Sau đó, các công nghệ đượccập nhật và phát triển liên tục, như sử dụng bộ dò chuyển động vào những năm 1970 cho

đến cảm biến hồng ngoại như ngày nay vào 1980 Hiện nay, con người vẫn liên tục cảitiến các công nghệ cho cửa tự động xung quanh hệ thống cảm biến hồng ngoại, radar

hay lidar hay còn được gọi là "Mắt thần"

Hiện nay khá nhiều công ty, doanh nghiệp đã và đang tham gia phát triển, sản

xuất những sản phẩm, giải pháp liên quan đến cửa tự động và công nghệ nhận dạng

khuôn mặt, có thé kể đến như Xiaomi, Hafele, Samsung,

Hình 2.1 Ô khóa cửa có tích hợp mở khóa bằng nhận dạng khuôn mặt của Xiaomi [1]

Trang 18

Đối với sản phẩm trên của Xiaomi, nó mang khá nhiều đặc điểm chung của hầu hết

những sản phẩm về 6 khóa tự động có tích hợp nhận dạng khuôn mặt hiện này Đó là độ

chính xác khi nhận dang cao, hoạt động én định cũng như có đội ngũ phát triển, bảo trìchuyên nghiệp Đồng thời, ngoài khả năng nhận dạng khuôn mặt, nó còn đi kèm theo rất

nhiều phương pháp dé mở khóa khác như dùng chìa truyền thống, vân tay, NFC,

password, mở khóa thông qua điện thoại thông minh, Những điều này dẫn đến việc giáthành của những sản phẩm như thế này thường cao đến rất cao

Về các nghiên cứu, riêng đối với cửa tự động ứng dụng nhận dạng khuôn mặt, có

khá nhiều bài báo, nghiên cứu được đăng trên các tạp chí

2.3 Vấn đề cần giải quyết

Đối với các nghiên cứu trong và ngoài nước, vấn đề mà các sản phẩm/nghiên cứu liênquan đến lĩnh vực nhận dạng khuôn mặt đa só đều gặp phải đó là giá thành quá cao, việcmột sản phẩm/ứng dụng phát triên và sự cạnh tranh giữa các doanh nghiệp, nhà pháttriển sẽ có gắng đề giảm giá thành sản phẩm và tiếp cận với nhiều đối tượng người dùnghơn Điều này là rào cản lớn cho họ có bước đầu tiếp cận với một hệ thống JoTs cơ bản

Van dé đầu tiên nhóm cần giải quyết chính là vấn đề về giá thành với việc lựa chọn cácthiết bị phần cứng giá rẻ có cấu hình không quá cao, cụ thê là Raspberry Pi 4 Điều này

sẽ dẫn đến các thách thức về việc lựa chọn các phương pháp, mô hình máy học phù hợpvới khả năng tính toán, xử lí của thiết bị

Hơn nữa, vấn đề về việc tiêu thụ năng lượng cũng được nhóm chú ý đến, nhưng vì giới

hạn phạm vi của đề tài, nên nhóm chỉ thực hiện việc khảo sát sự tiêu thụ năng lượng của

hệ thống, việc tối ưu hóa năng lượng tiêu thụ sẽ được thực hiện trong tương lai gần.

Xét đến một số nghiên cứu tại Khoa Kỹ Thuật Máy Tính - Trường Đại học Công nghê

Thông tin, ĐHQG TP.HCM Các nghiên cứu liên quan trước đó đều thực hiện trên các

thiết bị có cấu hình cao như Jetson Nano hoặc máy tính cá nhân đều đạt độ chính xáccao, các nghiên cứu trên cho ra một mức FPS dao động từ 2-10 FPS tùy đề tài Chính vìthế, van dé thứ hai nhóm cần giải quyết là cố gắng tạo ra một mô hình nhận dạng tuy áp

Trang 19

dụng các thuật toán đơn giản nhưng đem lại độ chính xác cao cũng như thời gian phản

hồi nhanh với các mục tiêu:

+ Độ chính xác của mô hình dự kiến >=90%

+ FPS trung bình đạt được từ 7-13 FPS

Nhóm cũng đặt ra mục tiêu về công suất tiêu thụ khi nguồn điện tiêu thụ lý tưởng được

đề xuất cho Raspberry Pi 4 là 5V-3A (Tương đương 15W), nhóm cũng dự định cung cấp

một nguồn điện 5V-2A (Tương đương 10W) cho các linh kiện còn lại Chính vì vậy,tổng công suất tiêu thụ cho toàn hệ thống dự kiến nhóm đưa ra sẽ không vượt quá 15W

+10W=25W.

Trang 20

Chương3 LY THUYET

Phan nay sẽ đi sâu hơn về các thuật toán đã được nêu ở trên, làm rõ hơn về cơ sở lý

thuyết của phần cứng cũng như phần mềm, để từ đó có một cái nhìn tổng thể hơn về lý

do tại sao lại lựa chọn những linh kiện, mô hình, thuật toán đó.

3.1 Phát hiện khuôn mặt (Face detection)

3.1.1 Tổng quan về Haar Cascade

Haar cascade được biết đến là một bộ công cụ phân loại và phát hiện đối tượng (bao gồm

cả đồ vật và con người) khá phổ biến Day có thể được xem là một thuật toán mạnh mẽ

bởi cầu trúc nhẹ và dé sử dụng nên có tốc độ nhận diện cực nhanh nhưng vẫn có độ chínhxác khá cao Ở dé tài này, nhóm sử dụng thuật toán Haar cascade cho mục đích phát hiện

khuôn mặt Năm 2001, các tác giả Paul Viola và Michael Jones đã đề xuất một

framework phát hiện khuôn mặt thời gian thực được mô tả là xử lý ảnh cực kỳ nhanh

mà vẫn có tỷ lệ phát hiện được khuôn mặt cao Ba giải thuật chính mà nhóm tác giả đóng

góp trong framework này dựa trên Haar basic function và Haar wavelets [2] Đầu tiên là

một cách biểu diễn hình ảnh mới được gọi là integral image (ảnh tích phân), điều này

giúp cho việc tính toán các đặc trưng trở nên cực kỳ nhanh chóng với nhiều tỉ lệ khácnhau Với ảnh tích phân này, sau khi đã tính toán xong, bất kỳ đặc trưng Haar-like nào

cũng đều có thể tính toán được ở mọi tỉ lệ và mọi nơi trong ảnh Tiếp theo là giải thuậtAdaboost Đây là một phương pháp xây dựng một bộ phân loại mạnh dựa trên nhiều bộ

phân loại yếu Sở dĩ đối với việc trích xuất đặc trưng Haar-like trên mỗi cửa số phụ làcực kỳ lớn, do đó, để việc phân loại diễn ra nhanh, quá trình huấn luyện phải loại bỏnhững đặc trưng có sẵn và tập trung vào những tính năng quan trọng — ràng buộc mỗi bộphân loại yếu với một đặc trưng duy nhất

Va cuối cùng là việc kết hợp nhiều bộ phân loại phức tạp theo cau trúc kiểu tang, điềunay làm tăng đáng ké tốc độ xử lý bằng việc chỉ tập trung phát hiện vào những khung

ảnh tiềm năng

Trang 21

Haar cascade cũng gần giống như một nhân (kernel) CNN, tuy nhiên, đối với CNN,

kernal của nó được xác định thông qua quá trình huấn luyện, còn đối với Haar cascade

thì đặc trưng Haar của nó phải xác định một cách thủ công.

Tóm lại, Haar Cascade tuy không phải thuật toán tốt nhất cho việc phát hiện khuôn mặt

hiện nay như (HOG, Faster R-CNN, YOLO và một số thuật toán khác), tuy nhiên nó vẫncực kỳ hữu dụng bởi tốc độ xử lý khó có thể bị vượt qua Chính vì khả năng xử lý cùng

cấu trúc nhẹ nên Haar cascade phù hợp dé nhúng nên những thiết bị có hạn chế về tàinguyên (thiết bị nhúng, máy tính nhúng, ), đó cũng là lí do nhóm sinh viên chọn Haar

Cascade cho đề tài này

3.1.2 Haar-like feature

Các đặc trưng Haar là những đặc trưng ảnh kỹ thuật số thường được sử dụng trong pháthiện, nhận diện khuôn mặt và cả đồ vật Tên Haar-like dựa trên một số sự tương đồng

với Haar wavelet và được sử dụng trong bộ phát hiện khuôn mặt thời gian thực đầu tiên

Trước khi tìm hiểu về Haar-like features, ta sẽ nói về cách hoạt động tổng thé của Haarcascade, thuật toán sẽ sử dụng một cửa số có kích thước có định để trượt trên toàn bộ

bức ảnh lấy được từ trái sang phải và từ trên xuống dưới, đối với mỗi cửa số như vậy,thuật toán sẽ tính toán xem rằng trong đó có hay không chứa khuôn mặt Dựa vào đó, bộ

phân loại sẽ được huấn luyện thông qua mẫu negative va positive của một khuôn mặt.Đối với mỗi cửa số như vậy, những đặc trưng Haar sẽ được tính toán, các đặc trưng này

gồm ba loại điển hình đó là đặc trưng cạnh (egde features), đặc trưng đường (linefeatures) và đặc trưng bốn hình chữ nhật (four-rectangle features)

Những đặc trưng Haar này được xác định bằng cách lấy chênh lệch giữa tổng giá trị cácpixel của vùng màu sáng trừ đi tong số pixel của vùng màu tối Cụ thé, đối với đặc trưng

có hai hình chữ nhật (đặc trưng cạnh), giá trị của nó được tính bằng hiệu giữa tổng các

pixel trong hai hình chữ nhật Các vùng có cùng kích thước và hình đạng sẽ nằm kể nhautheo chiều năng hoặc chiều doc Hình 3.1 thể hiện năm loại đặc trưng Haar điển hìnhthường được sử dụng nhất

10

Trang 22

Đặc trưng đường (line features)

na Đặc trưng cạnh (edge features)

Đặc trưng bốn hình vuông (four-rectangle features)

Hình 3.1 Năm loại đặc trưng Haar điển hình

Những đặc trưng có ba hình chữ nhật (đặc trưng đường) sẽ được tính bằng cách lấy tổngpixel của hai hình chữ nhật bên ngoài trừ đi tong pixels của hình chữ nhật ở giữa Cuối

cùng là đặc trưng có bón hình chữ nhật (đặc trưng bón hình chữ nhật) được tính bằng sự

chênh lệnh giữa hai cặp hình chữ nhật nằm chéo nhau

‘SUM OF THE DARK PIXEIS/NUMBER OF DARK PIKELS

-‘SUM OF THE LIGHT PIXELS/NUMBER OF THE LIGHT PIXELS.

Trang 23

Hình vuông bên trái chính là một frame ảnh được cắt ra từ cửa số trượt, trong đó, hình

vuông ở chính giữa là một đặc trưng Haar với vùng sáng nằm bên trái và vùng tối nằm

bên phải Sau đó, đặc trưng Haar sẽ được tính bằng cách trừ trung bình tổng các pixelcủa vùng tối và tổng các pixel của vùng sáng Dựa vào kết quả thu được, nó sẽ xác định

đặc trưng này là đặc trưng cạnh, đường hay bốn hình chữ nhật Với hình trên, đặc trưng

Haar được tính toán là đặc trưng cạnh [3].

Sau khi trích xuất các đặc trưng này, mỗi đặc trưng sẽ được dùng dé xác định một đặc

trưng duy nhất trong ảnh

+ M

Hình 3.3: Đặc trưng đường được dùng đề phát triển con ngươi

Trong hình trên, hình chữ nhật ở trung tâm màu tối ứng với tròng đen và hai hình chữnhật hai bên ứng với tròng trắng (màu sáng)

Tuy nhiên, đối với những ảnh lớn (độ phân giải cao, số chiều của ảnh lớn) thì việc trích

xuất các tính năng này sẽ trở nên khó khăn và tốn nhiều tài nguyên Viola và Jones đã

đề xuất thuật toán có tên ảnh tích phân (Integral image) dé giảm số lượng phép toán cần

thực hiện.

3.1.3 Ảnh tích phân (Integral image)

Qua lý thuyết ở phan trên, ta có thé hiểu về cách tính toán một đặc trưng Haar, nhưngđồng thời, ta cũng có thể thấy việc tính toán trên thé hiện rõ sự bat cập trong trường hợp

ảnh lớn và nhiều chỉ tiết Điều này sẽ dẫn đến việc tăng rõ rệt thời gian xử lý cũng nhưtài nguyên và cấu trúc của thuật toán này Viola và Jones đã đề xuất thuật toán Integral

image, với công dụng tính toán đặc trưng Haar tương tự như phương pháp trên, tuy nhiên

lại giảm số lượng các phép toán cần thực hiện và từ đó tăng đáng kể tốc độ tính toán Về

12

Trang 24

tổng quan, trong một ảnh tích phân, một pixel sẽ có giá trị bằng tổng của các pixel nằm

phía trên và phía bên trái của pixel đó trong ảnh gốc Ta có công thức về giá trị của một

pixel tại vị trí x, y trong ảnh tích phân được tính như sau [4]:

UO) = Äx'sxy!<y (ey), (3.1)

trong đó í;(+, y) là ảnh tích phân va i(x, y) là ảnh gốc ban dau

Giả sử s(x, y) là tổng tích luỹ hàng của một pixel, ta có:

s(x,y) = s(x,y— 1) + i(x,y), với s(x,—1)=0 (3.2)

l(œ,y) = (x— 1,y) + s(,y), với j(—1,y) =0 3.3)

Bằng thuật toán trên, một ảnh ban đầu có thể được biéu diễn thành ảnh tích phân chỉtrong một lần tính toán duy nhất Và bat kỳ một hình chữ nhật nào (tại bat kỳ vị trí và

kích thước nào) cũng có thê được tính thông qua bốn tham chiếu mảng (tham khảo hình

minh hoạ dưới).

a(A) b(B)

c(C) dD)

Hình 3.4 Vi dụ về cách tính giá trị của một pixel trong ảnh tích phân

Bằng ảnh tích phân, tổng các pixel của một hình chữ nhật tại vị trí bất kỳ có thé được

tính bằng bốn tham chiều mảng Cụ thé với hình trên như sau: Giá trị của ảnh tích phântại vị trí A là tổng các pixel của hình chữ nhật a Giá trị tại vị trí B sẽ là tông các pixel

của hình chữ nhật a và b Tại vị trí C sẽ là a+c và vi trí D sẽ là a+b+c+d Từ đó, ta có giá trị của ảnh tích phân cho hình chữ nhật d sẽ là: (a+b+c+d)-(a+c)-(a+b)+a.

Tương tự, đối với đặc trưng Haar có hai hình chữ nhật (đặc trưng cạnh) thì sẽ cần tính

toán trong 6 phép tính, 8 đối với đặc trưng có ba hình chữ nhật (đặc trưng đường) và 9

đối với đặc trưng bốn hình chữ nhật (do các hình chữ nhật nằm liền ké)

Trang 25

3.1.4 Thuật toán Adaboost

Ở phan trên, qua việc trích xuất đặc trưng Haar và nhờ vào ảnh tích phân, ta có thé thay

một đặc trưng hình chữ nhật có thể được tính toán khá nhanh và hiệu quả Tuy nhiên,hiện nay số lượng các đặc trưng Haar có thé lên tới hàng trăm ngàn đặc trưng khác nhau

Vi vậy, việc tính toán cho toàn bộ hình ảnh trở nên cực kỳ tốn tài nguyên và thời gian

Thông qua thí nghiệm và nghiên cứu, Viola và Jones nhận thấy rằng một số rất nhỏ cácđặc trưng này có thê kết hợp lại và cho ra một bộ phân loại hiệu quả, nhưng vấn đề gặpphải chính là việc tìm ra những đặc trưng ấy [2] Viola va Jones sử dụng một bién thé

của thuật toán Adaboost để chọn ra các đặc trưng cần thiết và huấn luyện bộ phân loại

Về Adaboost, đây là một bộ phân loại phi tuyến được Freund và Schapire đề xuất vào

năm 1995 dựa trên thuật toán boosting, nó hoạt động bằng cách kết hợp các bộ phân loại

yếu (weak classifiers) thành một bộ phân loại mạnh (strong classifier) Sự cải tiến củaAdaboost nằm ở việc nó sử dụng trọng số (weight) để đánh đấu trong quá trình huấn

luyện Một bộ phân loại yếu h được định nghĩa như sau [Š]:

1 if pfx) < p0:

hn = G4)

0 otherwise

trong đó x là cửa số hiện tại ma chúng ta đang xét, 0 là ngưỡng (threshold), fk là giá tri

của Haar like feature và p thông số quyết định chiều của tham số

Từ một tập các bộ phân loại yếu h như trên, chúng ta sẽ có được một bộ phân loại mạnh

H được định nghĩa như sau:

H@) = YF, ayo) (3.5)

trong đó a thông số của các bộ phân loại yếu

Chúng ta có thể hình dung quá trình này theo hình dưới:

14

Trang 26

weak week strong

classifier 2 classifer 3 classifier

hy(x) ha(z) ha(x) H(z)

Hình 3.5 Mô tả trực quan về cách hoạt động của thuật toán Adaboost

Cụ thẻ, đầu tiên, thuật toán huấn luyện một bộ phân yếu bằng một đặc trưng Haar-like

tốt nhất Trong lần huấn luyện tiếp theo, những mẫu thử bị phát hiện nhầm sẽ được đánhtrọng số cao hơn và những mẫu thử được phát hiện đúng sẽ được đánh trọng số thấp hơn

để bộ phân loại tập trung hơn vào những mẫu thử này Chúng ta sẽ có flow-chart khi ápdụng Adaboost vào đề tài như sau:

Ï ư Hay Featres

Nota face!

‘Asub window:

r

Hình 3.6 Thuật toán Adaboost trong trường hợp dùng đề phát hiện khuôn mặt

Một cửa số phụ sẽ sau khi được chụp lại sẽ đi qua nhiều lớp phân loại khác nhau (gọi là

cascade classifier), mỗi khi qua một lớp, nếu thuật toán xác định trong đó có khuôn mặtthì nó sẽ được đi qua lớp phân loại tiếp theo, lặp lại cho đến khi kết thúc (vượt qua tat cả

Trang 27

các lớp phân loại), ngược lại, chỉ cần không vượt qua một lớp nào đó thì sẽ được xác

định là không có khuôn mặt.

3.2 Tiền xứ lý anh (Preprocessing Image)

3.2.1 Landmark detection

Bởi vi sử dụng phương pháp PCA, mặc dù phương pháp nay sẽ giảm chiều dữ liệu di

đáng kể nhưng không phải lúc nào chỉ tiết giữ lại cũng đều chính xác như mong muốn

Trong một số trường hợp, một số thông tin hữu ích trên khuôn mặt như mắt, mũi hoặcmiệng sẽ bị loại bỏ, còn một số chỉ tiết nhiễu như background, quần áo, cổ, tóc thì lạiđược giữ lại, từ đó làm giảm đi độ chính xác của mô hình Và vấn đề này liên quan đến

thuật toán, hơn nữa dataset là một tập hợp rất nhiều ảnh cho nên việc kiểm soát thủ côngvan dé này hầu như là không thể Chính vì vậy, việc nomalize data trước khi training

model hoặc trước khi dự đoán sẽ trở nên rất quan trọng trong trường hợp này, trong số

đó sẽ có landmark detection Vậy landmark detection là gì? Đây là một phương pháp

trích xuất những đặc trưng của khuôn mặt từ vùng chân mày trở xuống, những chỉ tiết

thừa như là tóc, background sẽ được loại bỏ Ở đây nhóm sẽ lựa chọn loại bỏ chỉ tiếtnhiễu bằng cách thay thế chúng bằng một tắm nền đen đề cho việc xử lý sẽ trở nên dễ

dàng hơn Quay trở lại với landmark detection, quá trình này sẽ được thực hiện ngay sau

khi chúng ta hoàn thành bước phát hiện khuôn mặt bằng Haar Cascade

Trang 28

Hình 3.7: Một ví dụ khi phát hiện khuôn mặt bằng phương pháp Haar Cascade.

Chúng ta có thể đễ dàng nhận thấy rằng các chỉ tiết thừa như tóc, background vẫn chưa

được loại bỏ và có khả năng ảnh hưởng đến kết quả dự đoán

Vậy làm cách nào đề triển khai phương pháp này? Rất may là Dlib đã công bố một

opensource detector để thực hiện công việc này Bộ detector này được train từ tập dữliệu iBUG-300-W bao gồm 68 điểm giới hạn từ chân mày đến hàm dưới [6] Và 68 điểm

này được minh họa như hình dưới:

Hình 3.8 Mô ta 68 điểm của Dlib's face landmark detector [7]

Với 68 điểm này, ta có thể phát hiện được các chỉ tiết trên khuôn mặt như bảng dưới:

Bảng 3.1 Một số đặc trưng trên khuôn mặt mà Dlib face detector có thể phát hiện đượcĐặc trưng Điểm

Trang 29

Toàn bộ khuôn mặt Từ 1 đến 68

Hàm mặt Từ 1 đến 17

Chân mày bên phải Từ 18 đến 22

Chân mày bên trái Từ 23 đến 27

Mũi Từ 28 đến 36

Mắt phải Từ 37 đến 42

Mắt trái Từ 43 đến 48

Phía bên ngoài môi Từ 49 đến 60

Phía bên trong môi Từ 61 đến 68

Bảng trên trình bày những đặc trưng trên khuôn mặt tương đương với những nhóm số

được mô tả trong hình 3.8.

Thực tế, ở trong dé tài này, chúng ta sẽ chi cần dùng 27 điểm, đó là điểm từ 1-17 và

18-27, tức là chỉ lấy viền bên ngoài khuôn mặt được bao quanh bởi chân mày và hàm Bởi

vì trước đó chúng ta đã dùng Haar cascade để phát hiện khuôn mặt nên sẽ không cầndùng đến các điểm còn lại Sau khi đã xác định được 27 diém trên, chúng ta sẽ tiền hành

nối chúng lại dé khoanh vùng, những vùng bên ngoài sẽ được thay thế bằng một lớp nền

18

Trang 30

Hình 3.9 Kết quả sau khi áp dụng Dlib Face landmark detector

Sau khi áp dung face landmark vào khuôn mặt ở hình trên, tat cả các chỉ tiết ở ngoài

những điểm được xác định sẽ bị loại bỏ, chỉ giữ lại đúng những đặc điểm của khuôn

mặt mà các thuật toán nhận dạng sẽ sử dụng

3.2.2 Điều chỉnh hướng của khuôn mặt

Chúng ta sẽ không chỉ dừng lại ở landmark detection, như chúng ta có thé thay ở Hình

3.7, khuôn mặt sau khi được trích xuất vẫn có một độ nghiêng nhất định, và điều nay có

thể ảnh hưởng đến độ chính xác khi mà PCA là thuật toán nhạy cảm với góc nghiêng xét

trong ứng dụng nhận dạng khuôn mặt Chúng ta có thể giải quyết nó một cách đơn giản

là sẽ "xoay" tắm hình của chúng ta theo một góc xác định để sao cho khuôn mặt đượccân chỉnh thang lại Thư viện OpenCV sẽ hỗ trợ việc này, nguyên lý cơ bản là sẽ xoay

bức ảnh theo một góc cho trước, những chỗ còn thiếu sẽ được thay thế bằng màu đen, để

hình dung thì chúng ta sẽ có một ví dụ bên dưới:

Original Image Rotate 15 degree Rotate 15 degree

clockwise counter-clockwise

Hình 3.10 Vi du cho ảnh gốc, sau khi xoay 15 độ kim đồng hồ

Theo ví dụ trên, ta có thể thấy sau khi xoay ảnh, những phần bị thiếu sẽ được thư viện

tự động lấp đầy bằng những vùng đen, từ đó có thể gây nhiễu dữ liệu Chính vì vậy, đó

là lí do nhóm chọn lấp đầy những vùng ngoài khuôn mặt bằng lớp nền màu đen chứ

Trang 31

không phải một màu khác ở bước landmark detection Trở lại vấn đề chính, sau khi đã

phát hiện được các đặc trưng trên khuôn mặt, chúng ta sẽ tiến hành kiểm tra độ nghiêng

và xoay khuôn mặt về hướng thẳng Một lần nữa, chúng ta sẽ tận dụng lại 5 trong 68điêm của Dlib Face Landmark detector, cụ thể là những điểm: 34, 37, 40, 43, 46 Giải

thuật này dựa trên đường thang nối lai của 2 mắt Đường thắng này được nối lại bởi 4điểm 37, 40, 43, 46 Từ trung điểm của đường thẳng này, ta sẽ nối nó với điểm 34, tạo

thành 2 đường thẳng vuông góc, đường thang này đặc trưng cho sống mũi Và chúng taphải làm sao cho 2 đường thẳng này song song với chiều rộng và chiều dài của bức ảnh[7] Đề hình dung rõ hơn chúng ta có ví dụ bên dưới:

Is not straight!

Hình 3.11 Vi dụ về một bức anh landmark có góc mặt bi nghiêng

Từ hình ảnh trên, dựa vào sự chênh lệch góc của 2 đường màu đỏ và màu xanh, chúng

ta sẽ tìm ra được số góc chính xác để xoay bức ảnh, và phần thừa màu đen sẽ được đồngđiệu với nền đen của bức ảnh, từ đó không gây nhiễu cho dữ liệu đầu vào Và kết quảcuối cùng chúng ta sẽ thu được được biểu diễn như hình dưới:

Hai bước tiền xử lý có sự quan trọng nhất định trong việc cải thiện độ chính xác cho môhình Ví dụ trường hợp trong hình 3.12 (bên dưới), trong bức ảnh gốc, tuy được chụptrong điều kiện ánh sáng đây đủ, tuy nhiên đối với những phương pháp nhưng PCA vàSVM thì nhiều từ nền và góc nghiêng khuôn mặt hoàn toàn có thể ảnh hưởng tới độchính xác đầu ra của mô hình

20

Trang 32

Original Image Haar Cascade Landmark detection Face alignment Final Image

Hình 3.12 Minh họa toàn bộ các bước tiền xử lý hình ảnh

Ảnh đầu tiên là ảnh gốc, ngoài khuôn mặt người còn có phần thân trên cùng nền ảnh.Sau khi được detect bang Haar Cascade, nó sẽ chi lay phần khuôn mặt người nằm trongkhung ảnh mà nó quét được (ảnh khi này sẽ gồm khuôn mặt, tóc và nền ảnh) Tiếp theo,Landmark detection sẽ loại bỏ toàn bộ những vùng ảnh nằm ngoài những điểm đã địnhsẵn, từ đó ảnh thu được chỉ bao gồm duy nhất khuôn mặt, những phần bị loại bỏ sẽ được

thay bằng nền màu đen Tuy nhiên lúc này khuôn mặt vẫn còn bị nghiêng nhẹ sang trái,tại đây áp dụng phương pháp Face Alignment sẽ cân chỉnh khuôn mặt về lại hướng thắngđứng, cuối cùng ta thu được Final Image (kết quả cuối cùng của quá trình tiền xử lý ảnh)

3.3 Principal Components Analysis

Principal components analysis hay viết tắt là PCA là một thuật toán rất phô bién trongviệc phân tích và khám phá dữ liệu và đồng thời được ứng dụng trong rất nhiều lĩnh vực

công nghệ - kỹ thuật khác nhau PCA được dé xuất lần đầu vào năm 1901 bởi KarlPearson và sau đó được nhiều nhà khoa học nâng cấp cũng như điều chỉnh để phù hợp

với mục tiêu nghiên cứu của họ Thuật toán PCA cực kỳ hữu ích đối với việc phân tích

cũng như xử lý những dữ liệu lớn (như dữ liệu có nhiều biến, ảnh có độ phân giải cao,ảnh có độ tương quan cao) Ở day, PCA sẽ làm nhiệm vụ giảm sé chiều dữ liệu, tức biểu

Trang 33

diễn đữ liệu gốc dưới một không gian con ít chiều (giảm/loại bỏ bớt những đặc trưng)

và đồng thời phải hạn chế mat mát thông tin ở mức tối thiểu

Một số điểm mạnh của PCA có thé ké đến như: Khả năng trực quan hoá dữ liệu 2D và3D, việc giảm chiều dữ liệu giúp giảm đáng ké không gian bộ nhớ, đồng thời việc loại

bỏ thông tin không cần thiết và giữ lại thông tin cần thiết giúp giảm nhiễu tương đối

Tuy nhiên, chính vì vay, PCA đôi khi sẽ loại bỏ nhằm những thông tin cần thiết, gây

nhiễu cho dữ liệu.

3.3.1 Mô tả phương phương thức thực hiện của PCA

Cách cơ bản nhất để giảm chiều dữ liệu của một đữ liệu X là chỉ giữ lại K phần tử quantrọng nhất của X, tuy nhiên, van dé gặp phải ở đây là phải xác định thành phần nào là

quan trọng nhất, vì nếu lược bỏ thông tin một cách ngẫu nhiên sẽ dẫn đến sai lệch nghiêmtrọng cho dữ liệu Vì vậy, PCA sẽ đi tìm và xây dựng một hệ trực chuẩn mới sao cho

trong đó tầm quan trọng của các thành phần có sự khác nhau rõ rệt, từ đó loại đi những

thành phần it quan trọng hơn Quy trình thực thi của PCA [8] được thể hiện như bên

Tiếp theo, tính các trị riêng có norm bằng | của ma trận, sau đó sắp xếp chúng theo thứ

tự giảm dần của các trị riêng này Từ đó, chọn K eigenvectors ứng với K Eigenvalueslớn nhất dé xây dựng ma trận Ủy (Eigenspace) tạo thành một ma trận trực giao K

Eigenvectors này chính là các thành phần chính (principal components) tạo thành một

2

Trang 34

không gian con Chiếu dữ liệu đã chuẩn hoá Ÿ xuống không gian con tìm được Các điểm

dữ liệu mới chính là toạ độ của các điểm dữ liệu trên eigenspace

Z=U7£ (3.9)Tương quan giữa dữ liệu ban đầu và dữ liệu mới có thé được tính xắp xi theo công thức

sau:

xe URL +X (3.10)

Quan sát hình bên dưới dé dé hình dung hơn về các bước thực hiện của PCA.

trừ mỗi điểm dữ liệu cho veetorky vong —_ 11h ma trận hiệp phương sai

Trang 35

Đầu tiên là tìm vector kỳ vọng (màu đỏ) bằng biểu thức (3.6) Tiếp theo sẽ trừ mỗi điểm

đữ liệu cho vector kỳ vọng, ta sẽ thu được một bộ điểm dit liệu mới (3.7) Tiếp theo là

tính ma trận hiệp phương sai, rồi tìm K Eigenvectors ứng lớn K Eigenvalues lớn nhấtcủa ma trận hiệp phương sai, từ đó thu được một ma trận trực giao (Eigenspace) Chiếu

dữ liệu đã được chuẩn hóa ở bước 2 xuống không gian con (Eigenspace) mới tìm được,các điểm dữ liệu mới này sẽ là tọa độ của các điểm dữ liệu ở trên Eigenspace

3.4 Mô hình máy học dé phân loại (Suport Vector Machine)

Để đạt được hiệu suất tốt nhất trên KIT Raspberry Pi, những model thuộc trường deep

learning sẽ không được sử dụng Những model này có một lượng thông số khổng lồ, yêucầu cấu hình tương đối cao đề training cũng như triển khai, mà đây vốn là điểm yếu lớn

của Raspberry Pi, chúng ta không thé yêu cầu một thiết bị máy tính nhúng có giá thành

rẻ, lượng GPIO lớn mà lại có thêm một cấu hình mạnh nữa Raspberry Pi có một cấu

hình khá khiêm tốn với bộ CPU 4 nhân Cortex A72 với xung nhịp tối đa chỉ đạt 1.5 GHz,thì việc chạy các model deep learning một cách mượt mà là điều không tưởng Hơn nữa,

các model này hau như chỉ tận dụng được lõi GPU CUDA của Nvidia, cái mà KIT Jetson

Nano được trang bị, nhưng các bộ KIT nay có giá thành rất cao, đi ngoài phạm tri mụctiêu của khóa luận Tuy vậy, nhóm sinh viên cũng muốn dé xuất một vài model như

Efficient Net, CNN, DeepFace, MTCNN với mục đích phát triển ở trong tương lai vớicác bộ KIT khác mạnh hơn Quay trở lại với chủ đề chính, mô hình máy học được nhóm

sử dụng trong dé tài này là SVM Bên cạnh việc không yêu cầu tài nguyên lớn, SVM sẽhiệu quả hơn đối với dữ liệu nhiều chiều, nhưng nó cũng có hiệu suất không kém khi số

chiều dữ liệu nhiều hơn số mẫu Mục đích cuối cùng của SVM là tạo ra một hyper-plane

dé phân chia các lớp đã được gan nhãn trước đó với nhau Hãy hình dung chúng ta có 2

lớp dữ liệu tuyến tính độc lập với nhau

D = (xp vier (3.1L

với / nhãn đã được gan nhãn sẵn với y¡ € —1,1 được biéu diễn như hình dưới:

24

Trang 36

sa” oo °

(a) (b)

Hình 3.14 Hình (a) biểu diễn dữ liệu có margin nhỏ hon (b)

Ở hình trên, chúng ta có một thuật ngữ mới là "margin" Vậy margin là gì? Margin làkhoảng cách giữa 2 hoặc nhiều lớp dữ liệu được biểu diễn trong không gian n chiều, với

margin càng lớn thì chúng ta càng dễ dàng phân loại các lớp dữ liệu với nhau hơn, đồng

nghĩa với việc khi margin càng lớn, thì mô hình cuối cùng chúng ta thu được sẽ có độtin cậy cao hơn Sự cân bằng giữa margin và sự phân loại sai được quyết định bởi mộtthông số gọi là C (hay còn được gọi là tham số chính quy) Thông số này được chúng ta

lựa chọn thủ công trước khi bắt đầu quá trình training model Xét ví dụ trên, sau khi khảo

sát thi chúng ta nhận thay rằng chúng ta sẽ chọn một bộ phân loại tuyến tinh dé giải quyếtvấn đề Cụ thé [9]:

Wa) =A; + zai Digi (3.13)

Tối thiểu hóa A; bang cách cho:

Trang 37

Añy =0

¡—Œ<0 (3.14)

A, <0

với Dị, = y¡yj¡ x;

Nhưng đây là hướng giải quyết với bộ phân loại tuyến tính, vậy còn bộ phân loại phi

tuyến tính thì sao? Thực tế thì đa số các hướng giải quyết đều phải dùng đến bộ phânloại phi tuyến vi dữ liệu trong thực tế không hề đơn giản như trên

Chúng ta cũng sẽ chiếu một tập các biến dữ liệu x ở một không gian feature có nhiều

chiều hơn [9] Phương trình cũng ta sẽ có dạng:

với a; và yp; là những giá trị riêng và hàm riêng của hàm tích phân có kernel K(x, y) là

một hàm đối xứng luôn dương Với các thông số nay, tích vô hướng trong không gian

đặc trưng trở nên đơn giản hơn bởi vì:

œ

z”()z() = ` #iJ(x)J;(y) + b) = KŒx,y) (3.17)

TẾT

Cuối cùng, chúng ta có một vài kernel function được biểu diễn ở bảng dưới:

Bảng 3.2 Một vài kernel funtion và các bộ phân loại mà chúng được định nghĩa

Kernel Function Bộ phân loại

KŒ,x) = exp (-Ilx _ xil|’) Gaussian RBF

K(x, x) = (x?x, + 1)# Polynomial of degree d.

K(x, x,) = tanh(xTx¡ — @) Multi-Layer Perceptron

26

Trang 38

Bảng trên liệt kê ba bộ phân loại phổ biến là Gaussian RBF, Polynomial of degree d va

Multi-Layer Perceptron tương ứng với những công thức của hàm kernel.

3.5 Huấn luyện mô hình máy học

Ở mô hình SVM, chúng ta sẽ có 3 thông số chính cần làm rõ: C, gamma và kernelfunction Giả sử chúng ta có 3 thông số C, 3 thông số gamma và 3 kernel function, nếu

như training thủ công từng trường hợp một thì chúng ta sẽ phải thực hiện 33 = 27 lần

Chúng ta sẽ lại thực hiện tiếp trường hợp khác, và thời gian training của mỗi trường hợpchúng ta sẽ phải đợi cho trường hợp này xong rồi lại thực hiện tiếp trường hợp khác,

chúng ta sẽ phải đợi trường hợp này xong rồi không thể xác định được Và sci-kit-learn

có một thư viện tên là GridSearchCV giúp chúng ta thực hiện công việc đó một cách tự

động Thư viện nay sẽ nhận đầu vào là danh sách các thông số C, gamma và kernel, sau

đó thư viện này sẽ tự động training, khảo sát các trường hợp dé đưa ra thông só, mô hình

tốt nhất, quá trình này thường được gọi với tên "Hyperparameter Tuning"

Đây là danh sách các thông số mà nhóm sinh viên sẽ lựa chọn cho quá trình

Trang 39

Dé dang dé nhận ra là dữ liệu của các khuôn mặt không tuyến tính vì sự phân bố của

chúng quá phức tạp Chúng vi vậy chúng ta sẽ cần phải dùng thêm kernel-trick đề tối

ưu độ tin cậy của mô hình Ở đây nhóm sinh viên sẽ chọn 3 kernel-trick phổ biến:

kernel: {'rbf’, 'sigmoid’, Tinear'}

Cuối cùng, chúng ta có flow-chart tổng quan về các bước hoạt động của quá trình

Hyperparameter tuning như sau:

INPUT: Các thông số C, gamma, kernel

cho việc training

Khởi tạo không gian

[tường bop dâu nên

Đánh giá hiệu suất của

Hyper parameter

Tuning

Đầu tiên, nhóm sẽ phải tự chọn những thông số C, gamma, kernel Tiép theo la khoi tao

không gian Grid search dé tiến hành để tiến hành train từng trường hợp ứng với từngnhóm thông số cụ thé lần lượt, sau đó nó sẽ xuất ra được bộ thông số tốt nhất của quátrình tuning tham số đã thực hiện Cuối cùng, dữ liệu sẽ được huấn luyện lại với bộ tham

số tốt nhất đó, từ đó ta thu được mô hình SVM tối ưu và tốt nhất

3.6 Multi-Threading

28

Trang 40

Bắt cứ bài toán, vấn đề đều sẽ có một hay nhiều hướng giải quyết nhất định Xét ở trường

hợp chúng ta đang làm việc với bài toán nhận dạng khuôn mặt thì việc giải quyết vấn đề

sẽ theo các bước như sau:

Nhận ảnh đầu vào -> Phát hiện khuôn mặt -> Trích xuất các thuộc tính -> Tiền xử lý dữ

liệu - > Dự doán kết quả -> Đưa ra quyết định -> Nhận ảnh đầu vào mới

Như chúng ta có thể thấy, để dự đoán được dữ liệu khuôn mặt là của ai sẽ trải qua khá

nhiều bước, và các bước này sẽ phải thực hiện một cách tuần tự, bước này muốn thựchiện thì phải đợi bước trước đó hoàn thành, dẫn đến độ trễ tăng lên, FPS theo đó sẽ bị

kéo xuống và khó có thé đáp ứng được yêu cầu real-time của bài toán

Để giải quyết vấn đề trên, nhóm đã tận dụng kha năng Multi-Threading dé tối ưu hóa

khả năng xử lý cua KIT.

Đầu tiên, chúng ta cần phải phân biệt được Thread va Process Thread (luồng) là mộtđơn vị cơ ban trong CPU Luéng ở đây tức là một tiến trình nhỏ hay còn gọi là tiến trình

con, trong tiếng Anh là Sub-process Đây được biết đến là một đơn vị nhỏ nhất của máytính được sử dụng để xử lý và thực hiện một công việc nào đó một cách riêng biệt Một

luồng sẽ chia sẻ với các luồng khác trong cùng Process (Tiến trình) về thông tin data,

các dữ liệu của mình Việc sử dụng Multi-thread sẽ giúp cho việc quản lý các yêu cầucủa người dùng với số lượng nhiều hơn mà không cần phải chạy thêm hay sử dụng thêm

các phiên bản khác của chương trình đang chạy và thực hiện trong máy tính Process là

quá trình hoạt động của một ứng dụng, nó chứa đựng thông tin tài nguyên, trạng thái

thực hiện của chương trình Từ định nghĩa trên, nhóm sinh viên quyết định chọn Threading thay vì Multi-Processing bởi vì thread nằm trong cùng một process sẽ dùng

Multi-một không gian bộ nhớ giống nhau, trong khi process thì không Điều này cho phép cácthread đọc và viết cùng một kiểu cấu trúc và dữ liệu, giao tiếp dé dang giữa các thread

với nhau.

Một vài ưu điểm của Multi-Threading:

Ngày đăng: 03/11/2024, 18:51

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

TÀI LIỆU LIÊN QUAN

w