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: Tích hợp tính toán biên và máy chủ cho hệ thống nhận diện khuôn mặt đa xác thực

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

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

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tích hợp tính toán biên và máy chủ cho hệ thống nhận diện khuôn mặt đa xác thực
Tác giả Lê Hữu Truyền
Người hướng dẫn ThS. Phan Đình Duy, KS. Chế Quang Huy
Trường học Đại học Quốc gia TP. Hồ Chí Minh
Chuyên ngành Kỹ thuật máy tính
Thể loại khóa luận tốt nghiệp
Năm xuất bản 2024
Thành phố TP. Hồ Chí Minh
Định dạng
Số trang 85
Dung lượng 30,32 MB

Nội dung

Các hệ thống điểm danh sử dụng mô hình học sâu thường được triển khai trên các thiết bị có cau hình và khả năng tính toán cao mới có thể suy luận thời gian thực, điển hình là máy... Việc

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

LÊ HỮU TRUYEN - 20522094

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

TÍCH HỢP TÍNH TOÁN BIEN VA MAY CHU CHO HE THONG NHAN DIEN KHUON MAT DA XAC THUC

Integrating Edge Computing And Server For Multi-Authentication

Facial Recognition System

CU NHÂN NGANH KY THUAT MAY TÍNH

GIANG VIEN HUONG DAN

ThS PHAN DINH DUY

KS CHE QUANG HUY

TP HO CHÍ MINH, 2024

Trang 2

LOI CAM ON

Để hoàn thành khóa luận, một mình em khó có thể làm được nếu không nhờ đến sự giúp

đỡ, chỉ dẫn và hỗ trợ đến từ thầy cô, người thân và bạn bè Chính vì vậy, em xin được bày tỏlòng tri ân sâu sắc của mình đến với mọi người vì đã tiếp bước cùng em trong giai đoạn vừa

qua.

Đầu tiên, em xin được gửi lời cảm ơn sâu sắc đến toàn thể giảng viên Trường Đại học

Công nghệ Thông tin, đặc biệt là các thầy cô của Khoa Kĩ thuật Máy tính Nhờ những kiếnthức mà thầy cô đã truyền đạt, sự chia sẻ kinh nghiệm, kỹ năng trong suốt quá trình giảngdạy, em mới có thể đạt được các kết quả đáng ghi nhận và hoàn thành khóa luận này Em xinđặc biệt cảm ơn thầy Phan Đình Duy là người đã tận tình chỉ dẫn và hỗ trợ nhiệt tình cho

em về những lời khuyên, kiến thức và các thiết bị cần thiết của đề tài Xin chân thành cảm

ơn người thầy cũng như người anh mà em luôn kính trong, thay Chế Quang Huy là người đãđồng hành và giúp đỡ sát sao, là người luôn truyền cảm hứng và động lực giúp em thực hiện

tốt khóa luận tốt nghiệp

Tiếp theo, mình xin bày tỏ lòng cảm kích đến toàn thể thành viên câu lạc bộ CEEC, đây

là nơi đã cung cấp cho mình môi trường với đầy đủ các phương tiện để tìm hiểu, học hỏi, pháttriển các kiến thức và kỹ năng, góp phần rất lớn cho sự chỉnh chu và hoàn thiện của khóa

luận này.

Cuối cùng, con xin bày tỏ sự tri ân đến người thân và gia đình, những người luôn ủng hộ

từng quyết định mà bản thân đưa ra

Mặc dù rất nỗ lực để luận văn được hoàn thiện nhất, tuy nhiên khó có thể tránh khỏi hạnchế và thiếu sót Kính mong nhận được sự thông cảm và góp ý từ thầy cô và các bạn

TP Hồ Chí Minh, ngày 24 tháng 7 năm 2024

Tac giả

Lê Hữu Truyén

Trang 3

2_ TỔNG QUAN ĐỀ TÀI

2.1 Tình hình nghiên cứu trong nước

2.2 Tình hình nghiên cứu ngoài nước

a & KR KR ® 0 WY WN

"

Trang 4

3.2.6 RetinaNet Q Q 02 ee ee 22

3.2.7 K-meanalgorithms 000000 ee eee 23

3.2.8 Logistic Regression 000000002 eee 24

4 PHƯƠNG PHAP NGHIÊN CUU VÀ THỰC HIỆN 26

41 Tổng quanhệthống CS Q Q S S 26

4.1.1 Phancting thiétbibién - 27

412 Phầnmềmhệthống 28

4.2_ Quy trình vận hành của thiét bibién 29

42.1 Quy trình hoạt động chung 29

4.2.2 Quy trình thu thập dit liệu và đểm danh 32

4.3 Thu, xử lý và lưu trữ dữ liệu khuôn mặt 33

4.3.1 Phathiénkhu6nmat 34

4.3.2 Trích xuất đặctrưng 34

4.3.3 Tiền xửlý dữliệu ẶcQ eee 36 4.3.4 Tối ưu hóa dữ liệu lưu trữ với phương pháp phân cụm 39

4.4 Nhận diện khuôn mặt 41

44.1 Phuong pháp Instance 02.20.0008 43 4.4.2 Phuong phapCentroid 44

4.4.3 Phuong phapFusion 44

4.5 Luu trữ, xử lý dữ liệu trên máy chủ đám mây 46

4.5.1 Phân bố dữ liệu phi tập trung - 46

45.2 Xây dựng cơ sở dữ liệu Ặ 48 4.6 Webvà ADp 0.0000 ee 3x3 49 5 ĐÁNH GIÁ KET QUA THUC NGHIỆM 50 5.1 Hiệnthựcphầncứng 2 ee 50 5.2 Giao diện thiết bị biên, web Vaapp 2 ee 51 5.2.1 Giao diện thiétbibién 51

5.2.2 Web ee 52

Trang 5

53 Quá trình vậnhành Ặ.Ặ Ặ Ặ Q Q QC 55

5.3.1 Thu dữ liệu - điểm danh bằng thểtừ 55

5.3.2 Điểm danh bằng khuôn mặt 56

5.3.3 Điểm danh bằng khuôn mặt kết hợp thẻtừ 57

5.3.4 Điểm danh bằng trangweb 57

5.3.5 GiảmaothẺtỪ Q Q Q Q Q HH ko 58 5.3.6 Mạo danh khuôn mặt 59

54 Xửlýhìnhảnh Ặ.Ặ Q Q ee 60 5.4.1 Bộ dữ liệu đánh giá nhận diện khuôn mat 60

5.4.2 Kết quả đánh giá giải pháp đề xuất 61

5.4.3 Kết quả triển khaithựctếẾ 63

KET LUẬN VÀ HƯỚNG PHÁT TRIỂN 64 6.1 Kếtuận ⁄⁄⁄ £P N À 64

62 Khó khăn gặpphải Ặ 000000 eee eee 64 63 Hướng pháttriển ee 65 TÀI LIEU THAM KHẢO 66

Trang 6

2.1

2.2

2.3

2.4

3.1

3.2

3.3

3.4

3.5

3.6

3.7

3.8

3.9

3.10

3.11

3.12

3.13

41

4.2

43

44

4.5

4.6

DANH MUC HINH

Tổng quan thiết kế của hệ

thống -Cấu trúc hệ thống trong bài báo

Chi tiết mô hình của hệ thống - Co Oo aN Cấu trúc hệ thống của bài báo

-Kiến trúc mô hình LFFD (A Light and Fast Face Detector for Edge Devices) 10 Hình ảnh thực tế mach Raspberrypi4 - 11

Module RC522 1 ee ee 12 Camera LogitechC525 ee ee 13 Man hình cảm ứng điện dung dành cho Raspberry pi4 14

Mô hình kết nối điển hình của giao thức SPI 15

Các lớp của một ứng dụng Flutter 17

Quá trình hiện thực hàm mat mát Additive Angular Margin 20

Quá trình tích chập theo chiều sâu - 20

Quá trình tích chập theo đểm 20

Quá trình Global Average Pooling 21

Kiến trúc RetinaNet 2 ee 23 Triển khai thuật toán K-mean vào bài toán phân cụm 24

Vi dụ về cách hoạt động của Logistic Regression 25

Tổng quan thiết kế của hệ thống 26

Tổng quan thiết kế phần cứng - 27

Tổng quan thiết kế phan mềm - 28

Toàn bộ quy trình hoạt động của hệthống - 31

Mô hình trích xuất và nhận diện đặc trưng khuôn mặt 32

Quá trình thu, xử lý và lưu trữ dữ liệu khuôn mặt 33

Trang 7

47 Quá trình pháthiện khuônmặt 34

4.8 Ví dụ về các vùng trích xuất đặc trưng khuôn mặt 35

4.9 Quá trình trích xuất đặc trưng khuôn mặt 35

4.10 Minh họa độ mờ cục bộ - 37

4.11 Các điểm landmark trên khuôn mặt - 37

4.12 Tổng quan kiến trúc của giải pháp phát hiện khuôn mặt giả 39

4.13 Đầu vào quá trình thu thập dữ liệu 40

4.14 Lọc và trích xuất dữ liệu 41

4.15 Quá trình phân cụm vector đặc trưng khuôn mặt 41

4.16 Quá trình nhận diện khuôn mặt 42

4.17 Ap dụng thuật toán Weighted-sum vào nhận diện khuôn mặt 43

4.18 Phương pháp Centroid trong nhận diện khuôn mặt 44

4.19 Dữ liệu được khai thác theo lịchbiểu 47

4.20 Biễu diễn các mối quan hệ trongCSDL 48

5.1 Thiết kế các bộ phận khung trong Fusion360 50

5.2_ Hình ảnh sản phẩm thiết bịbiên - 51

5.3 Giao diện tương tác người dùng của thiết bịbiên 51

5.4 Các chức nang quản lý ngudiding - 52

5.5 Trang web theo dõi sau dang nhap 53

5.6 Quá trình đăng nhập của ứng dung - 54

5.7 Bảng theo dõi của ứng dụng QC 55 5.8 Quá trình yêu cầu thu dữ liệu - 56

5.9 Người dùng chọn lọc và lưu dữ liệu 56

5.10 Kết quả điểm danh trên trang web và ứng dụng 57

5.11 Quá trình nhận diện khuôn mặt 57

5.12 Quá trình nhận diện khuôn mặt kết hợp thểtừ 58

5.13 Thao tác điểm danh thủcông 58

5.14 Giả mạo thể tỪ HQ ee 59 5.15 Kết quả trên trangweb_ cv 59 5.16 Quá trình nhận diện khuôn mặt mạo danh 60

Trang 8

5.17 Một số bộ dif liệu đánh giá của VN-celeb 60

5.18 Phân phối khoảng cách của các phương pháp truy vấn 62

5.19 Thời gian truy van của các phương pháp - 62

5.20 Hình ảnh thử nghiệm trong thựctế - 63

Trang 9

3.1

4.1

4.2

5.1

5.2

DANH MUC BANG

Kết quả của bài nghiên cứu trên Raspberry Pi3B+ 10

Kiến trúc của MobileFaceNet 22

Tín hiệu truyền nhận từ các khối đến Planning 30

So sánh các tham số mô hình và FLOP 38

So sánh độ chính xác giữa các phương pháp trên bộ dữ liệu kiểm thử 61

Thời gian suy diễn của các mô hình trên hệ thống 63

Trang 10

DANH MỤC TU VIET TAT

Al Artificial Intelligence

API Application Programming Interface

CNN Convolutional Neural Networks

DCNN Deep Convolutional Neural Network GPIO General Purpose Input/Output

Iol Internet of Things

MNN Mobile Neural Network

SPI Serial Peripheral Interface

RFID Radio Frequency Identification

De-tection

Trang 11

động, thay thế cho phương pháp điểm danh truyền thống.

Khóa luận này nghiên cứu và hiện thực một hệ thống gồm hai phần chính: thiết bị biên

và máy chủ đám mây Thiết bị biên thực hiện tác vụ điểm danh bằng hai lớp xác thực bao

gồm thẻ từ và nhận diện khuôn mặt, đồng thời cung cấp giao diện thao tác cho người dùng

Dữ liệu nhận dạng sẽ được lưu trữ một phần trên thiết bị và đồng bộ hóa với máy chủ đámmây Máy chủ đám mây là nền tảng cho trang web và ứng dụng điện thoại vận hành, cungcấp phương tiện theo dõi tình trạng điểm danh của lớp học cho giảng viên; đồng thời nó cũng

là nơi lưu trữ, phân phối toàn bộ dữ liệu

Kết quả nhóm đạt được là hoàn thành xây dựng một kiến trúc hoàn chỉnh cho hệ thốngđiểm danh Thiết bị biên là bo mạch máy tính nhúng Raspberry pi 4 tích hợp các module

ngoại vi như RC522, camera, màn hình cảm ứng với giao diện được triển khai trên Qt

frame-work Máy chủ đám mây vận hành web được xây dựng trên Nodejs framework, cùng với đó

là ứng dụng điện thoại bằng Flutter framework.

Trong bài toán nhận diện khuôn mặt, nhóm dé xuất một phép đo tương tự mới kết hợp

khoảng cách giữa đo thông thường (Instance) và đo tập trung (Centroid) nhằm nâng cao độ

chính xác của nhận dạng khuôn mặt Đánh giá phép đo này trên bộ dữ liệu VN-celeb, mô

hình Resnet101 đạt độ chính xác cao với 92.63% khi sử dụng thuật toán do nhóm dé xuất,

trong khi đó, hai phương pháp Instance và Centroid chỉ đạt lần lượt là 91.67% và 91.97% Áp

dụng mô hình RetinaFace cho phát hiện khuôn mặt và MobileFaceNet cho nhận diện khuôn

mặt trên thiết bị biên đạt được thời gian suy diễn lần lượt là 42ms và 48ms Thử nghiệm trênmôi trường thực tế với quy mô gần 40 người, nhóm thu được độ chính xác nhận diện khuônmặt với tỉ lệ xấp xỉ 91.69% Các trường hợp nhận diện thất bại chủ yếu do ánh sáng thất

thường, ảnh đầu vào mờ, đặc biệt khi người dùng đeo kính và khẩu trang

Trang 12

Chương 1 GIỚI THIỆU ĐỀ TÀI

1.1 Đặt van đề

Trong thời đại ngày nay, khoa học công nghệ đang ngày càng lan rộng trong lĩnh vực

giáo dục, từ đó mang lại nhiều cơ hội và thách thức mới Một trong những dẫn chứng là việc

sử dụng các thiết bị, hệ thống điểm danh thông minh để thay thế cho hoạt động điểm danh

thông thường Thay vì điểm danh thủ công bằng cách gọi tên hoặc kí tên, các thiết bị, hệthống này đưa ra các giải pháp tân tiến và hiệu quả hơn, giúp giảng viên dễ dàng, thuận tiệnhơn nhiều trong việc điểm danh học sinh sinh viên, tiết kiệm thời gian cho hoạt động dạy vàhọc, ngoài ra còn hạn chế những lỗi phổ biến như đánh dấu điểm danh nhầm hoặc gian lận

Các xu hướng gần đây cho thấy rằng các hệ thống điểm danh thường sử dụng các công

nghệ hiện đại như vân tay, thẻ từ và nhận diện khuôn mặt Tuy nhiên, các hệ thống này thường

gặp phải nhiều bắt cập trong quá trình vận hành Chẳng hạn như việc sử dụng thẻ từ sẽ không

đảm bảo về vấn đề an ninh khi thẻ từ dễ bị làm giả, đánh cắp Sử dụng dấu vân tay cũnggây ra nhiều bất tiện khi các yếu tố ngoại cảnh như độ ẩm, bụi bẩn dễ gây ảnh hưởng đến

quá trình xác định danh tính Trong khi đó công nghệ nhận diện khuôn mặt mang lại lợi ích

vượt trội trong hệ thông điểm danh so với vân tay và RFID (Radio Frequency IdentificationDetection) nhờ khả năng thực hiện nhanh chóng và tiện lợi mà không cần chạm hoặc tiếp xúc

trực tiếp với thiết bị, nâng cao khả năng định danh tự động

Vượt trội là thế, nhưng công nghệ nhận diện khuôn mặt cũng đặt ra những thách thức

về quyển riêng tư và an ninh dữ liệu, đòi hỏi các biện pháp bảo mật và quản lý dữ liệu chặt

chẽ để bảo vệ thông tin cá nhân của người dùng Đồng thời, một số kỹ thuật tan công như

sử dụng ảnh mặt giả mạo cũng làm suy giảm độ tin cậy của hệ thống Do đó, việc kết hợpcông nghệ RFID và nhận diện khuôn mặt trong điểm danh sẽ góp phần giảm thiểu các rủi

ro nêu trên Khi mà việc sử dụng thé RFID ngoài điểm danh ra cũng là phương tiện để định

danh, truy xuất các đữ liệu khuôn mặt, giúp quá trình quản lý dữ liệu hiệu quả, bảo mật hơn.Đồng thời, nhận diện khuôn mặt sẽ xác thực cho việc quét thẻ RFID, tránh trường hợp gian

lận hoặc kẻ gian trà trộn.

Các hệ thống điểm danh sử dụng mô hình học sâu thường được triển khai trên các thiết

bị có cau hình và khả năng tính toán cao mới có thể suy luận thời gian thực, điển hình là máy

Trang 13

tính cá nhân Mặc dù mang lại hiệu năng và tốc độ ấn tượng, nhưng lại đồng nghĩa với chi

phí không hề rẻ, yêu cầu không gian lắp đặt lớn và thiếu tính linh hoạt

Vì vậy, nhóm đề xuất triển khai giải thuật nhận diện trực tiếp trên thiết bị nhúng, giúpgiảm kích thước và làm cho hệ thống trở nên độc lập và linh hoạt hơn Tắt nhiên, việc tíchhợp nhận diện khuôn mặt vào máy tính nhúng sẽ đối mặt với nhiều thách thức, bao gồm giới

hạn tốc độ nhận diện do hạn chế về phần cứng, độ chính xác bị ảnh hưởng bởi dữ liệu khuôn

mặt trùng lặp, mờ và có khả năng làm giả Đồng thời, cũng cần phải xây dựng các giải pháplưu trữ và trích xuất dữ liệu khuôn mặt để đảm bảo hiệu suất sử dụng

1.2 Lý do chọn dé tai

Trong bối cảnh hiện nay, nhận diện khuôn mặt đã trở thành một công nghệ quan trọng vàđược sử dụng rộng rãi trong nhiều lĩnh vực như an ninh, giám sát, và quản lý truy cập Theomột báo cáo, thị trường nhận diện khuôn mặt toàn cầu dự kiến sẽ đạt 9,6 tỷ USD vào năm

phản hồi của hệ thống, đồng thời tối ưu hóa tài nguyên mạng và tiết kiệm băng thông

Đề tài không chỉ mang tính học thuật cao mà còn có tiềm năng ứng dụng thực tiễn lớn.Trong thời đại công nghệ 4.0, các hệ thống thông minh và tự động hóa đang dần thay thế cácphương thức truyền thống, đòi hỏi những giải pháp công nghệ tiên tiến Các hệ thống nhận

diện khuôn mặt tích hợp tính toán biên và máy chủ có thể được ứng dụng trong nhiều lĩnhvực như kiểm soát an ninh tại các cửa ra vào, hệ thống thanh toán tự động và quản lý truy

cập tại các tòa nhà thông minh, tăng tốc quá trình kiểm tra an ninh và quản lý hành khách

trong các sân bay.

Nghiên cứu và phát triển hệ thống nhận diện khuôn mặt đa xác thực dựa trên tính toánbiên và máy chủ sẽ góp phần thúc đẩy sự phát triển trong lĩnh vực trí tuệ nhân tạo và học

máy Việc nghiên cứu và triển khai một hệ thống nhận diện khuôn mặt hiệu quả dựa trên sự

tích hợp của tính toán biên và máy chủ sẽ cung cấp các thuật toán mới và cải tiến về tính toánbiên, có thể được ứng dụng rộng rãi trong các nghiên cứu khác về trí tuệ nhân tạo và học

Trang 14

máy, đồng thời đóng góp vào kho tàng tri thức, cung cấp các giải pháp mới và sáng tạo cho

cộng đồng khoa học và công nghệ

1.3 Đối tượng và phạm vi thực hiện

1.3.1 Doi tượng nghiên cứu

Đối tượng nghiên cứu của nhóm bao gồm: Các nội dung lý thuyết, thực hành liên quan

đến hệ thống nhúng, lập trình trên máy tính nhúng, nghiên cứu và hiện thực các giải thuậtnhận diện khuôn mặt, tối ưu giải thuật trích xuất và lưu trữ dữ liệu, giải thuật xác thực hai

lớp, hiện thực các thành phần của hệ thống hướng người dùng như giao diện người dùng,

trang web, ứng dụng điện thoại.

1.3.2 Pham vi thực hiện

Vé phạm vi thời gian, dé tài được nghiên cứu và phát triển trong thời gian diễn ra khóaluận tốt nghiệp

Về phạm vi không gian, dé tài hướng đến việc triển khai trên toàn phạm vi toàn bộ các

phòng học của trường đại học, tuy nhiên, do giới hạn vật tư và thời gian của khóa luận tốt

nghiệp, nhóm sẽ triển khai trên phạm vi một lớp học, phòng lab.

Về phạm vi nội dung, dé tài sẽ giới hạn lại trong van dé vận hành hệ thống IơT bao gồmthiết bị biên và máy chủ, kết nối thiết bị ngoại vi và xử lý thị giác máy tính trên máy tính

nhúng.

1.3.3 Mục tiêu nghiên cứu

Nghiên cứu và hiện thực được một hệ thống điểm danh bao gồm máy chủ và thiết bịbiên Ngoài ra, dé tài còn thiết kế và cung cấp giao diện người dùng điểm danh, cũng nhưweb, app theo dõi dành cho giảng viên nhằm gia tăng khả năng tương tác và tính ứng dụngcủa hệ thống vào thực tế Hình 1.1 mô tả tổng quan thiết kế của hệ thống

Bao gồm 2 phần:

Máy chủ đám mây: Là nơi lưu trữ các dữ liệu chính của toàn hệ thống, cung cấp các API(Application Programming Interface) để nhập xuất dữ liệu và là nền tảng cho web và app vận

hành.

Máy điểm danh (Thiết bị tính toán biên): Máy sẽ được lắp đặt trước mỗi phòng học, khi

sinh viên vào học sẽ lần lượt quét thẻ và cung cấp hình ảnh khuôn mặt để điểm danh:

Trang 15

Attendance machine Cloud server Web app

Hình 1.1: Tổng quan thiết kế của hệ thống

* Có khả năng truyền nhận, lưu trữ dữ liệu nhận dạng và thực hiện nhận diện với quy mô

lớp học lên đến 60 người

» Xây dựng giải thuật với thời gian phát hiện và trích xuất đặc trưng khuôn mặt không

quá 100ms (lớn hơn 10 FPS), độ chính xác xấp xỉ đạt hơn 90%

s Đề xuất các phương pháp để nâng cao hiệu suất cho quá trình thu thập dữ liệu và nhận

diện khuôn mặt.

s Tích hợp cơ chế tự đồng bộ dữ liệu nhận diện theo từng lớp học

* Cung cấp giao diện tương tác, hiển thị thời gian và thông số môi trường cho người

dùng, ngoài ra còn web và app.

Thanh phần xử lý chính của thiết bị là máy tính nhúng Raspberry Pi 4 kết nối với module

đọc tín hiệu RFID và camera; bo mach máy tính nhúng sẽ đọc các tín hiệu RFID, trích xuấtđặc trưng khuôn mặt và gửi nhận các dữ liệu lên máy chủ, thiết bị đi kèm với một màn hìnhcảm ứng hiển thị cung cấp giao diện giúp người dùng tương tác với hệ thống

Trang 16

1.4 Phương pháp thực hiện

Dưới đây là phương pháp thực hiện hệ thống bao gồm thiết bị tính toán biên và máy chủcho hệ thống nhận diện khuôn mặt đa xác thực:

* Tìm đọc, nghiên cứu, tìm hiểu các bài báo và công trình về các hệ thống điểm danh

ứng dụng nhận diện khuôn mặt cũng như công nghệ RFID.

¢ Phân tích, nghiên cứu và hiện thực các giải thuật phát hiện, nhận diện khuôn mặt và

các phương pháp cải thiện hiệu suất nhận diện trên máy tính nhúng

* Tìm hiểu, hiện thực máy chủ lưu trữ dữ liệu, phương tiện truyền nhận và web app theo

dõi.

s Lap đặt phần cứng, thiết kế và hiện thực toàn bộ giải thuật nhận diện, phương thức giao

tiếp với máy chủ, truyền nhận dữ liệu, đọc cảm biến RFID trên máy tính nhúng

¢ Nghiên cứu, xây dựng quy trình vận hành toàn hệ thống, lập trình giao diện người

dùng, trang web và app.

* Xây dựng phương pháp triển khai và đánh giá kết quả của hệ thống

Trang 17

Chương 2 TỔNG QUAN ĐỀ TÀI

Các xu hướng gần đây đã cho thấy rang các hệ thống IơT (Internet of Things) thường

được thiết kế để hoạt động độc lập và tối ưu hiệu suất, đặc biệt là trong các hệ thống liênquan đến xử lý hình ảnh, nơi sức mạnh của bộ điều khiển trung tâm phải được xem xét đểđáp ứng khả năng xử lý hình ảnh, trao đổi dữ liệu và vận hành các thiết bị ngoại vi

2.1 Tình hình nghiên cứu trong nước

Được đề cập trong bài báo [1], các tác giả đã xây dựng một hệ thống điểm danh sử dụngmáy tính làm bộ xử lý chính, với camera giám sát được kết nối trực tiếp với máy tính để khaithác hình ảnh Đầu đọc thẻ RFID có tác dụng đọc và truyền dữ liệu từ thẻ từ đến máy tính

để xử lý thông qua một bo mạch trung gian là Arduino Dữ liệu xử lý vận hành được lưu trữ

trong cơ sở dữ liệu SQL Server để đảm bảo an toàn và đồng bộ Vì sử dụng máy tính cá nhânnên khả năng xử lý, lưu trữ của hệ thống tương đối lớn, tuy nhiên khả năng mở rộng, tínhlinh hoạt khá thấp, cùng với đó là chi phí khá cao do đòi hỏi phần cứng tốn kém Hình 2.1cho thấy mô hình bài báo trên thực tế

$qaL

SERVER

Hình 2.1: Cau trúc hệ thống trong bài báo

Cũng sử dụng camera giám sát trong tác vụ nhận diện như trên, nhóm tác giả trong bài

báo [2] sử dụng phương thức Websocket để truyền ảnh sau khi qua xử lý từ camera giám sátđến server dưới định dạng base64, việc chuyển định dạng được thực hiện nhằm tối ưu dunglượng lưu trữ và giúp gia tăng tốc độ truyền nhận so với ảnh gốc Hệ thống được phân chia

Trang 18

với các khối tác vụ cụ thể hoạt động chặt chẽ với nhau Bao gồm khối Cloud, là nơi lưu trữ

dữ liệu nhận dạng, hiển thị và phân tích dữ liệu, cũng như là nền tảng cho web và app hoạt

động Tiếp đó là khối AI (Artificial intelligence), xử lý ảnh, huấn luyện dữ liệu từ đó cho raoutput là mô hình AI có thể sử dụng cho nhận diện khuôn mặt Cuối cùng là khối Embedded,

cụ thể sẽ vận hành trên board nhúng Jetson nano, thu thập hình ảnh từ camera, tiền xử lý ảnh,

áp dụng mô hình từ khối AI và trả về kết quả nhận diện cho khối Cloud Hình ảnh 2.2 hiển

thị cụ thể mô hình các khối trên

THE AUTOMATED ATTENDANCE SYSTEM

( Cloud Server’), ì Embedded system

Hình 2.2: Chi tiết mô hình của hệ thống

2.2 Tình hình nghiên cứu ngoài nước

Được đề xuất bởi [3], nhóm tác giả xây dựng một hệ thống sử dung Raspberry Pi 3 làmđơn vị xử lý chính cho việc nhận diện hình ảnh, cho phép hệ thống hoạt động độc lập Ngoàicác tính năng điểm danh thông thường của sinh viên, hệ thống này cũng tích hợp các chứcnăng bổ sung như gửi tin nhắn và email đến phụ huynh

Giới thiệu ở bài báo [4], bài báo tập trung nghiên cứu hệ thống quản lý điểm danh dựatrên RFID cùng với ứng dụng dựa trên web Hệ thống quản lý điểm danh của học sinh, cungcấp khả năng theo dõi các buổi học trên lớp của học sinh Bên cạnh đó, vẫn được hỗ trợ thôngtin về khóa biểu ngày, thời gian học trên lớp, bán số của lớp học, số Chức năng của bao hệthống bao gồm: quản lý dif liệu, theo dõi sinh viên, gửi báo cáo, theo dõi các bản ghi vacung cấp các thông tin dịch vụ khác Đầu đọc kết nối RFID với Arduino Uno R3 và bo mạchArduino cũng được kết nối với Ethernet Shield để có thể sử dung Internet Tiếp đến Arduino

Trang 19

gửi tín hiệu đến máy chủ thông tin quá cáp Ethernet cũng như sử dụng WAMP Server, PHP,

cơ sở dữ liệu là MySQL để lưu trữ thông tin học sinh điểm danh và xuất bản sao chép củasinh viên lên web Hình ảnh 2.3 cho hệ thống cấu trúc của bài báo

Display Information

Hình 2.3: Cau trúc hệ thống của bài báo

Hệ thống này có ưu điểm là cung cấp khả năng theo dõi tình hình học tập của sinh viên,giờ lên lớp, phòng học; có chức năng báo cáo thông tin của sinh viên đến giáo viên hoặc phụhuynh Tuy nhiên, hệ thống thiếu các tính năng nhận dạng thuộc sinh trắc học như khuônmặt, vân tay vì vậy học sinh phải bắt buộc mang theo thẻ mới có thể điểm danh và khi mấtkết nối internet, chưa có cơ chế lưu trữ hệ thống để có thể hoạt động bình thường

Ngày nay với sự phát triển trong xử lý ảnh và ứng dụng vào thực tế cuộc sống, cụ thể làngày càng nhiều các hệ thống điểm danh sử dụng công nghệ nhận dạng khuôn mặt và cũng

có rất nhiều phương pháp nhận dạng khuôn mặt được ứng dụng Trong bài báo số [5] đã tổnghợp một số kiến thức và những công trình liên quan sử dụng kỹ thuật nhận dạng khuôn mặt

vào trong các hệ thống điểm danh từ khoảng 30 nghiên cứu liên quan Một trong những côngtrình nổi bật trong đó là công trình [6] sử dụng kết hợp nhận dạng khuôn mặt kết hợp với thẻ

RFID để xác thực Trong công trình này, tác giả sử dụng OpenCV 2.4.0 và Python 2.7.13 đểhiện thực hệ thống nhận dạng khuôn mặt từ hình ảnh webcam được đưa vào trong máy tính,kết hợp với 2 module hồng ngoại và đầu đọc thẻ REID được kết nối với board Uno để thực

hiện việc điểm danh và xác nhận sinh viên.

Để hệ thống ngày càng trở nên độc lập, các hệ thống xử lý ảnh có xu hướng được triển

Trang 20

khai trên những board mạch như Raspberry hoặc Jetson nano Trong bài nghiên cứu về nhận

dạng khuôn mặt [7] nhóm tác giả thực sử dụng mô hình SSD với backbone là MobileNet

ở bước Face Detection, về định danh gương mặt nhóm tác giả đào tạo lại SphereFace bằng

FP16 thay vì FP32 để giảm hơn nữa mức tiêu thụ tài nguyên Sau đó đưa giải thuật lên

Raspberry Pi 3B+ Bảng 2.1 cho thấy kết quả khả quan của bài nguyên cứu trên

Bảng 2.1: Kết quả của bài nghiên cứu trên Raspberry Pi 3B+

Stage Speed on Raspberry

Detection 1.212 fps Alignment 100 fps

Hình 2.4: Kiến trúc mô hình LFFD (A Light and Fast Face Detector for Edge Devices)

Nhóm tác giả [9] đề xuất Mobile Neural Network (MNN), một mạng chung và công cụ

suy luận hiệu quả phù hợp với các ứng dụng di động MNN là một khung học sâu hiệu quả

cao và nhẹ Nó hỗ trợ suy luận và đào tạo các mô hình học sâu và có hiệu suất hàng đầu trong

ngành cho việc suy luận và đào tạo trên thiết bị

10

Trang 21

Chương 3 CƠ SỞ LÝ THUYET

3.1 Phần cứng

3.1.1 Raspberry pi 4

Raspberry Pi 4 là một thiết bi máy tính nhúng nhỏ gọn, rất phổ biến trong các dự án điện

tử, giáo dục, và ứng dụng nguyên mẫu do khả năng tích hợp cao và chi phí thấp Hình ảnhthực tế của nó được thể hiện ở Hình 3.1

Hình 3.1: Hình ảnh thực tế mạch Raspberry pi 4

Dưới đây là các thông số kĩ thuật liên quan đến Raspberry Pi 4:

* Bộ vi xử lý: Với bộ vi xử lý chính là Broadcom BCM2711, một chip bốn nhân A72 (ARM v8) 64-bit với tốc độ lên đến 1.5 GHz Điều này cung cấp sức mạnh xử lýđáng kể so với các thế hệ trước

Cortex-* Bộ nhớ RAM: Có các tùy chọn về dung lượng RAM từ 2GB, 4GB đến 8GB, tùy theo

nhu cầu sử dụng, cho phép thực hiện nhiều tác vụ đồng thời và xử lý các ứng dụng

nặng hơn.

* Kết nối: Raspberry Pi 4 hỗ trợ Wi-Fi dual-band 2.4 GHz và 5.0 GHz, Gigabit Ethernet,

Bluetooth 5.0, va USB 3.0, cho phép nó kết nối và truyền dữ liệu với các thiết bi khác

* Đồ họa và Video: GPU VideoCore VI của nó hỗ trợ OpenGL ES 3.0, cho phép xử ly

đồ họa tốt hơn và hỗ trợ đầu ra video 4K Điều này làm cho nó trở thành lựa chọn tốtcho các dự án yêu cầu xử lý đồ họa nặng như trò chơi, xử lý hình ảnh hoặc trình chiếu

media.

11

Trang 22

» Lưu trữ: Không giống như các máy tính truyền thống sử dung 6 cứng hay SSD, berry Pi 4 sử dụng thẻ nhớ microSD cho hệ điều hành và lưu trữ dif liệu, làm cho nó

Rasp-linh hoạt và dễ dàng mở rộng.

5 Hệ điều hành: Raspberry Pi 4 chạy Raspberry Pi OS, một hệ điều hành dựa trên

De-bian Nó cũng có thể chạy các hệ điều hành khác như Ubuntu, Windows 10 IoT Core,

và thậm chí là các phiên bản nhẹ của Windows 10.

* GPIO: Các chân GPIO (General-purpose input/output) cho phép Raspberry Pi 4 kết

nối với các cảm biến, động cơ, và các thiết bị ngoại vi khác, điều này làm nó trở thànhmột nền tảng lý tưởng cho các dự án DIY và robot

Raspberry Pi 4 là một công cụ học tập và nghiên cứu mạnh mẽ, thích hợp cho nhiều ứngdụng từ xây dựng máy chủ web nhỏ cho đến phát triển hệ thống nhúng phức tạp

3.1.2 Đầu doc RFID

Mach RFID NFC 13.56MHz RC522 được dùng dé doc và ghi dif liệu cho thẻ RFID/NFC

có tan số 13.56MHz, sử dụng mach IC MERC522 Với thiết kế nhỏ gọn, mach này hiện được

sử dụng phổ biến trong các ứng dụng cần ghi và đọc thẻ REID/NEC cùng với Arduino và cácloại vi điều khiển khác Hình ảnh thực tế của mạch được thể hiện ở Hình 3.2

3.1.3 Camera kĩ thuật số

Logitech C525 là một webcam có các tính năng giúp nó phù hợp với các tác vụ xử lý

hình anh cơ bản Hình ảnh thực tế (Nguôn: logitech.com) có thé thay ở Hình 3.3 Dưới đây làthông số kỹ thuật:

12

Trang 23

» Độ phân giải: Nó cung cấp độ phân giải video tối đa 1280 x 720 pixel, chất lượng HD.

Độ phân giải tương tự áp dụng cho chụp ảnh tĩnh.

* Cảm biến: Sử dụng CMOS, nó có thể cung cấp chất lượng hình ảnh tốt trong các điều

kiện ánh sáng khác nhau.

* Tốc độ khung hình: Tốc độ 30 khung hình / giây có thể trợ giúp trong các ứng dụng

yêu cầu phát hiện chuyển động, trong đó những thay đổi trong hình ảnh cần được theo

dõi trong tác vụ xử lý hình ảnh thời gian thực.

» Tự động lấy nét: Có công nghệ lấy nét tự động, có thể mang lại lợi ích cho các công

việc yêu cầu điều chỉnh tiêu điểm thường xuyên để có độ rõ nét

Nhìn chung, tuy Logitech C525 có khả năng xử lý các tác vụ xử lý hình ảnh cơ bản nhưng

các tính năng của nó lại thiên về hội nghị truyền hình hơn là các ứng dụng xử lý hình ảnh cao

cấp Đối với những nhu cầu phức tạp hơn, webcam hoặc máy ảnh có độ phân giải cao hơn,

hiệu suất ánh sáng yếu tốt hơn và có thể cần có khả năng lấy nét mạnh mẽ hơn

3.1.4 Màn hình cảm ứng điện dung

Cảm ứng điện dung là một công nghệ cảm ứng dựa trên sự thay đổi của điện tích khi có

sự chạm của tay hoặc các vật liệu dẫn điện lên màn hình Hình 3.4 thể hiện hình ảnh thực tế

của màn hình cảm ứng.

Có hai loại chính của cảm ứng điện dung: cảm ứng đơn điểm, cho phép phát hiện một

điểm chạm tại một thời điểm; và cảm ứng đa điểm, cho phép nhận diện đồng thời nhiều điểm

chạm Apple, mặc dù không phải là nhà phát minh hay người đầu tiên sử dụng công nghệ

13

Trang 24

Hình 3.4: Màn hình cam ứng điện dung dành cho Raspberry pi 4

này, đã đưa cảm ứng điện dung trở nên phổ biến và đang dần chiếm lĩnh thị trường công nghệ

màn hình cảm ứng.

3.2 Phần mềm

3.2.1 7 Giao thức SPI

Nhóm sử dụng giao thức SPI (viết tắt của Serial Peripheral Interface) với thiết bị biên là

thiết bị chính giao tiếp với module RFID, với lợi thé là tốc độ truyền tải cao so với các giao

thức truyền tải khác, điều này góp phần gia tăng tốc độ nhận diện và quá trình truyền nhậnthông tin Việc tối ưu tốc độ truyền tải từ đầu đọc thẻ đến bộ nhớ xử lý trung tâm của thiết bịbiên giúp góp phần cải thiện khả năng đáp ứng theo thời gian thực của hệ thống

Lợi thế nổi bật của SPI là khả năng truyền dữ liệu liên tục mà không bị gián đoạn Điều

này cho phép truyền dif liệu ở bat kỳ số lượng bit nào một cách liên tục, khác với I2C

(Inter-Integrated Circuit) và UART (Universal Asynchronous Receiver / Transmitter), nơi dữ liệu

được phân chia thành các gói có số bit cố định Trong I2C và UART, các điều kiện bắt đầu

và dừng lại đánh dấu bắt đầu và kết thúc của mỗi gói, dẫn đến sự gián đoạn trong quá trìnhtruyền

Trong hệ thống SPI, các thiết bị giao tiếp theo mô hình master-slave Thiết bị master,thường là vi điều khiển (trong hoàn cảnh khóa luận cụ thể thì đó là bo mạch Raspberry pi4) điều khiển hoạt động, trong khi các thiết bị slave như cảm biến, màn hình, hoặc chip nhớtuân theo lệnh từ master Cau hình đơn giản nhất trong SPI bao gồm một master và một slave,

nhưng một master có khả năng điều khiển nhiều slave Hình 3.5 thể hiện rõ ràng nhất cách

một master kết nối với một slave (Ngudn: scribd.com)

14

Trang 25

* SCLK (Clock) - đường nay dùng để truyền tin hiệu xung nhịp.

¢ SS/CS (Slave Select / Chip Select) - đường này cho phép master lựa chon slave mà nó

muốn gửi tín hiệu tới

3.2.2 QT framework

Qt là một Application Framework da năng, được thiết kế dé phát triển các loại phan mềm

có khả năng tương thích và hoạt động trên nhiều nền tảng đa dạng khác nhau Mục tiêu chính

mà các nhà phát triển của Qt đặt ra là tạo ra một framework mạnh mẽ, cho phép viết mã mộtlần và triển khai trên nhiều hệ điều hành mà không cần phải thay đổi quá cụ thể chỉ tiết trong

mã nguồn Ban đầu, Qt được viết và được sử dụng bằng C++, tuy nhiên hiện nay đã có thể được viết bằng các ngôn ngữ khác nhau như JavaScript, Python,

Không chỉ giới hạn ở việc hỗ trợ viết giao diện cho các ứng dụng, Qt cung cấp nhiều thư

viện và công cụ để xây dựng các phần mềm hoàn chỉnh từ các ứng dụng có giao diện dé họa

đến những ứng dụng không giao diện như các dịch vụ chạy trên máy chủ hoặc các ứng dụng

dòng lệnh.

Các thành phần chính của Qt bao gồm:

15

Trang 26

* Qt Core: Đây là mô-đun cơ bản nhất của Qt, chứa các lớp cốt lõi và cơ sở cần thiết cho

tất cả các mô-đun khác Nó bao gồm các tính năng như quản lý đối tượng, đa luồng, và

xử lý sự kiện, cũng như các lớp cơ bản cho xử lý chuỗi, tệp, và dữ liệu.

* Qt GUI: Cung cấp các công cu để tạo và quản lý giao diện người dùng Qt GUI bao

gồm các lớp cơ ban để vẽ đồ họa trên cửa sổ, xử lý sự kiện đầu vào từ ban phím vàchuột, và hiển thị các hình ảnh và văn bản trên màn hình

* Qt Widgets: Một mô-đun chứa các lớp widget tiêu chuẩn, như nút (buttons), hộp thoại

(dialogs), và các bảng điều khiển Các widget này có thể được sử dụng để tạo giao diệnngười dùng truyền thống cho các ứng dụng máy tính để bàn

* Qt QML: Đây là một ngôn ngữ dành cho giao diện người dùng, cho phép thiết kế giao

diện người dùng theo cách khai báo QML hỗ trợ tích hợp mã JavaScript để xử lý logic

ứng dụng và có thể được kết hợp với C++ để mở rộng chức năng

* Qt Quick: Cung cấp một bộ công cụ để xây dựng giao diện người dùng đáp ứng cao

dựa trên QML Qt Quick rất phù hợp cho các ứng dụng di động hoặc các ứng dụng yêucầu giao diện người dùng động và hấp dẫn

* Ngoài ra, còn nhiều thành phần khác như Qt Quick Controls, Qt Network, Qt

Multi-media, Qt Multimedia Widgets, Qt WebKit và Qt SQL.

Mỗi thành phan nay đều phục vu một chức năng đặc biệt, từ việc xử ly các tác vụ cơbản của ứng dụng đến việc cung cấp các công cụ phát triển giao diện người dùng phức

tạp.

Đặc biệt, QML (Qt Modeling Language) là một ngôn ngữ đánh dấu giao diện ngườidùng, được thiết kế như một ngôn ngữ khai báo kết hợp giữa CSS và JSON, cho phép cácnhà phát triển thiết kế các ứng dụng tập trung vào giao diện người dùng một cách dễ dàng

3.2.3 Flutter framework

Flutter là một bộ công cụ giao diện người dùng da nền tang được thiết kế để cho phéptái sử dung mã trên các hệ điều hành như iOS va Android, đồng thời cho phép các ứng dụngtương tác trực tiếp với các dịch vụ nền tảng cơ bản Mục tiêu là để tạo ra các ứng dụng hiệu

16

Trang 27

suất cao, cảm giác tự nhiên trên các nền tảng khác nhau, tận dụng những khác biệt nơi chúngtồn tại trong khi chia sẻ càng nhiều mã càng tốt.

Trong quá trình phát triển, các ứng dụng Flutter chạy trong một máy ảo cho phép tải lại

nóng các thay đổi có trạng thái mà không cần biên dịch lại toàn bộ Đối với phiên bản pháthành, các ứng dụng Flutter được biên dịch trực tiếp thành mã máy, cho dù là lệnh Intel x64

hay ARM, hoặc thành JavaScript nếu nhắm đến web Framework này là mã nguồn mở, với

giấy phép BSD linh hoạt, và có một hệ sinh thái năng động của các gói bên thứ ba bổ sungcho chức năng thư viện cốt lõi

Biểu đồ ở Hình 3.6 dưới đây cung cấp cái nhìn tổng quan về các thành phần tạo nên một

ứng dụng Flutter thông thường (Wguôn: flutter.dev)

— Ghép các widget thành giao diện người dùng mong muốn

— Thực thi các tác vụ kinh doanh.

— Thuộc quyển sở hữu của nha phát triển ứng dụng

17

Trang 28

s Frame work

— Cung cấp API cấp cao để xây dung các ứng dụng chất lượng cao (vi du, widget,

kiểm tra chạm, phát hiện cử chỉ, khả năng tiếp cận, nhập liệu văn bản)

— Kết hợp cây widget của ứng dụng thành một bối cảnh màn hình

¢ Engine

— Chịu trách nhiệm về việc raster hóa các cảnh màn hình đã được kết hợp

— Cung cấp triển khaicác API cốt lõi của Flutter (vi dụ, đồ họa, bố trí văn bản, thời

gian chạy Dart).

— Giao tiếp, làm việc với Framework thông qua API dart

— Tích hợp với một nền tảng cụ thể sử dụng API Embedder của Engine

¢ Embedder

— Phối hợp với hệ điều hành để truy cập các dịch vụ như bề mặt hiển thị, khả năng

tiếp cận và đầu vào

— Quản lý vòng lặp sự kiện.

— Tiết 16 API đặc thù của nền tảng để tích hợp chính nó vào các ứng dụng

¢ Runner

— Ghép các mảnh được tiết lộ bởi API đặc thù của Embedder thành một gói ứng

dụng có thể chạy được trên nên tảng mục tiêu

— Là đầu ra cuối, thuộc quyền sở hữu của nhà phát triển ứng dụng

3.2.4 ArcFace

Các mô hình Convolutional Neural Networks (CNN) thường được sử dụng để trích xuất

đặc điểm từ khuôn mặt và có ưu điểm vượt trội trong bài toán này Để tối ưu hóa việc phânloại các đặc điểm này và làm cho việc nhận diện khuôn mặt chính xác hơn, có hai hướng

chính: sử dụng mô hình phân loại với hàm softmax hoặc sử dụng máy học trực tiếp với cácvectơ nhúng (embeddings) và hàm mat mát triplet

18

Trang 29

Tuy cả hai phương pháp đều cho kết quả tốt, nhưng còn tồn tại một số hạn chế Ham

softmax làm tăng kích thước của ma trận biến đổi tuyến tính theo tỷ lệ với số lượng danh tínhcần phân loại, và nó không linh hoạt khi số lượng khuôn mặt (số lượng lớp) thay đổi Hàmmất mát triplet giải quyết vấn đề này, nhưng nó tăng đáng kể số lượng bộ ba so sánh và gặp

khó khăn khi huấn luyện hiệu quả

Để vượt qua những hạn chế này, nghiên cứu đã giới thiệu một hàm mat mát mới là

Additive Angular Margin Loss [10] Ham mat mát nay mang lại sự linh hoạt và hiệu suất caohơn trong việc nhận diện khuôn mặt, đồng thời giảm bớt nhược điểm của các phương pháptruyền thống

Cách tiếp cậnHàm mất mát Additive Angular Margin Loss được coi là một nâng cấp đáng chú ý đối

với hàm softmax trong ngữ cảnh của mô hình Deep Convolutional Neural Network (DCNN).

Nó tận dụng tích vô hướng giữa vector đặc trưng từ mô hình DCNN và lớp fully connected

cuối cùng, nhưng thay vì sử dụng khoảng cách cosine, nó áp dụng góc cosine đã được chuẩn

hóa thông qua hàm arc-cosine.

Quá trình này bắt đầu bằng cách tính góc giữa đặc trưng hiện tại và vector trọng số mụctiêu, sau đó thêm vào đó Additive Angular Margin Kết quả là một vector logit mới được tạo

ra thông qua hàm cosine Sau đó, các logits sẽ được điều chỉnh tỷ lệ và quá trình còn lại sẽdiễn ra giống như hàm mat mát softmax truyền thống

Điều này giúp tối ưu hóa việc biểu diễn không gian đặc trưng sao cho khoảng cách giữa

các lớp tương ứng là hiệu quả nhất Hàm Additive Angular Margin Loss là một công cụ quan

trọng trong việc đảm bảo rằng mô hình học sâu có khả năng tạo ra các biểu diễn đặc trưng

chất lượng cao và dễ phân loại Ảnh minh họa (Hình 3.7) giúp hình dung rõ quá trình được

mô tả.

3.2.5 MobileFaceNet

MobileNets

MobileNets là mô hình CNN được để xuất dùng để sử dụng trên các thiết bị di động

hay thiết bị nhúng bởi vì tính gọn nhẹ của nó Vậy làm thế nào mà MobileNets có thể rút

gọn được vài triệu tham số nhưng độ chính xác vẫn ổn định, đó là nhờ một cơ chế gọi làDepthwise Separable Convolutions Cơ chế này sử dụng bộ lọc tích chập theo chiều sâu và

19

Trang 30

Feature Re-scale

8 * COSA; Probability Ground Truth Cross-entropy

Logit One Hot Vector Loss

Hình 3.7: Quá trình hiện thực hàm mat mát Additive Angular Margin

bộ lọc tích chập theo điểm thay cho bộ lọc tích chập truyền thống

» Tích chập theo chiều sâu: Áp dụng bộ lọc tích chập cho mỗi kênh đầu vào thay vì sử

dụng một bộ lọc duy nhất cho toàn bộ khối đầu vào Giúp thu thập thông tin trích xuất

được qua từng kênh Mô tả ở Hình 3.8 [1 1].

2 8

12

Hình 3.8: Quá trình tích chập theo chiều sâu

» Tích chập theo điểm: Còn được gọi là tích chập IxI, được áp dụng sau bước tích chập

chiều sâu Bằng cách sử dụng bộ lọc 1x1 để kết hợp và trộn thông tin giữa các kênh,

giúp tạo ra các đặc trưng mới Mô tả ở Hình 3.9 [1 1].

ey -(#)- al3 1

8 8

Hình 3.9: Quá trình tích chập theo điểm

Cơ chế trên cho phép giảm đáng kể số lượng tham số so với mạng tích chập truyền thống

MobileFaceNet

Nhận diện khuôn mặt là công nghệ dùng để xác thực khuôn mặt cá nhân, thường được

20

Trang 31

áp dụng trên thiết bị di động hay thiết bị nhúng Để cải thiện độ chính xác, hiệu suất và phùhợp hơn với các thiết bị giới hạn về bộ nhớ, mô hình MobileFaceNet [12] được dé xuất va

phát triển Mô hình có độ chính xác và tốc độ xử lý cao hơn khi so sánh với các mô hình

CNN như MobileNetV2 khi thực nghiệm riêng trên các bài toán nhận diện khuôn mặt.

Trong quá trình xử lý các bài toán nhận diện khuôn mặt, các nhóm nghiên cứu đã cố

gang để tìm cách cân bằng giữa độ chính xác và hiệu suất Một vai mô hình như SqueezeNet,

MobileNetV1, ShuffleNet và MobileNetV2 được dé xuất để giải quyết bài toán nhận diện

Tuy nhiên, trong khuôn khổ bài toán nhận diện khuôn mặt, những mô hình nhẹ để đáp ứng

được các yêu cầu trên còn hiếm, với các mô hình như Light CNN-29 hay ShiftFaceNet đạtđược độ chính xác cao nhưng phải là một mô hình nhẹ để có thể hiện thực trên phần cứng

* Diém yêu của CNN trong nhận diện khuôn mặt: Trong các mang CNN thông thường

như MobileNetVI, ShuffleNet hay MobileNetV2 sử dụng cho nhận diện khuôn mặt,

các nhà nghiên cứu cho rằng lớp Global Average Pooling tỏ ra không hiệu quả so với

việc không sử dụng chúng Nguyên nhân là lớp Global Average Pooling (như Hình

3.10) coi các vùng trong feature map là như nhau, điều này không lý tưởng với bàitoán nhận diện khuôn mặt Thay vào đó, các nhà nghiên cứu đã đề xuất sử dụng lớp

Global Depthwise Convolution thể hiện được mức độ quan trọng của từng phần riêng

biệt trong feature map, và điều này làm cải thiện độ chính xác rõ rệt trong bài toán

nhận diện khuôn mặt.

Hình 3.10: Quá trình Global Average Pooling

* Kiến trúc MobileFaceNet: Kiến trúc đặc biệt ở việc thay thế lớp Global Average

Pooling bằng Global Depthwise Convolution như Bảng 3.1 Bảng mô tả kiến trúc

Mo-bileFaceNet sử dụng các lớp tích chập (convolutional layers) và bottleneck để nhúng

21

Trang 32

đặc trưng Đầu vào có kích thước ban đầu là 112x3, qua các lớp tích chập và bottleneck

với các kích thước khác nhau, từ đó giảm dần kích thước nhưng tăng số lượng kênh đầu

ra Các lớp có bước nhảy (stride) và hệ số giãn nở (expansion factor) khác nhau để tối

ưu hóa hiệu suất

Bảng 3.1: Kiến trúc của MobileFaceNet

Input Operator (| c |n|s

112? x 3 conv3x3 - | 64 |112 56? x 64 | depthwise conv3x3 | - | 64 | 1] 1

3.2.6 RetinaNet

RetinaNet [13] là một mô hình phát hiện đối tượng qua một bước (one - stage) sử dung

hàm mat mát Focal để giải quyết van dé mất cân bằng giữa các lớp trong quá trình huấn luyện

(ví dụ trong một vài mô hình, trong quá trình nhận diện thường bỏ qua mat một vài class của

vật thể nhỏ) RetinaNet còn được sử dụng trong bài toán phát hiện khuôn mặt do có thể nhận

diện tốt các đặt điểm có trên khuôn mặt (RetinaFace)

Trước đây khi giải quyết các bài toán phân loại, ta hay sử dụng hàm mat mát CrossEntropy Hàm mat mát này có điểm yếu là đối xử với các class là như nhau Nên khi xảy ra

mất cân bằng dữ liệu thì hàm mất mát này sẽ trở nên kém hiệu quả bởi mô hình sẽ có xu

hướng nghiên về class có nhiều dữ liệu hơn và bỏ qua các class có ít dữ liệu

Sau đó, người ta cho ra hàm mất mát Balance Cross Entropy thực hiện bằng cách gántrọng số cho các class có ít đữ liệu hơn để mô hình đạt hiểu quả hơn khi dự đoán các class

này Nhưng phương pháp này vẫn chưa thực sự can thiệp vào quá trình Gradient Descent nên

hàm mất mát Focal được đề xuất để khắc phục vấn đề này và hàm mất mát này cũng được sử

dụng trong RetinaNet Kiến trúc của RetinaNet [13] được thể hiện trực quan ở Hình 3.1 1

22

Trang 33

(a) ResNet (b) feature pyramid net (c) class subnet (top) (d) box subnet (bottom)

Hình 3.11: Kiến trúc RetinaNet

3.2.7 K-mean algorithms

Thuật toán K-means [14] là một trong những phương pháp phổ biến nhất để phân cụm

dữ liệu Nó được sử dụng rộng rãi trong khai phá dữ liệu và học máy nhờ vào tính đơn giản

và hiệu quả Đây là một thuật toán không giám sát, nghĩa là nó không yêu cầu nhãn của các

điểm dữ liệu Mục tiêu của K-means là chia N điểm dữ liệu thành K cum (clusters) sao cho

mỗi điểm dif liệu thuộc cụm với trung tâm gần nhất (centroid)

Giả sử chúng ta có tập dữ liệu X = {2 , x2, , 7} và số cụm K, các bước chính của thuậttoán K-means bao gồm:

* Khởi tạo: Chọn ngẫu nhiên 7C điểm làm các trung tâm cum ban đầu: /ị, /ua, , [ux (CÓ

thể chọn ngẫu nhiên hoặc sử dụng các phương pháp khởi tạo khác)

¢ Phân cum: Gan mỗi điểm dữ liệu vào cụm có trung tâm gần nhất Việc này dựa trên

khoảng cách Euclid hoặc một số phép đo khoảng cách khác

Mỗi điểm dữ liệu z;, tính khoảng cách từ x; đến mỗi trung tâm cum /¡; Gan x; vào

cụm có trung tâm gần nhất:

C¡ = arg min | — pel? (3.1)

* Cập nhật: Tinh toán lại trung tâm cụm bằng cách lấy trung bình các điểm dữ liệu trong

mỗi cụm Mỗi cụm Cj, cập nhật lại trung tâm cụm /¡;:

1

1 = Te »- (3.2)

z¡CŒ;

23

Trang 34

trong đó C; là tập hợp các điểm dữ liệu thuộc cụm 7 và |C;| là số lượng điểm trong

cụm đó.

* Lap lại: Lap lại bước phân cụm và cập nhật cho đến khi các trung tâm cum không thay

đổi hoặc thay đổi rất nhỏ (dưới một ngưỡng nhất định), hoặc đạt đến số lần lặp tối đa

Hình 3.12 cho mô tả ví dụ về đầu vào và đầu ra sau khi thực hiện phân cụm bằng thuật toán

k-mean.

(a) Đầu vào (b) Đầu ra

Hình 3.12: Triển khai thuật toán K-mean vào bài toán phân cụm

3.2.8 Logistic Regression

Hồi quy Logistic (Logistic Regression) là một mô hình thống kê được sử dung để phânloại nhị phân, tức dự đoán một đối tượng thuộc vào một trong hai nhóm Hồi quy Logistic

làm việc dựa trên nguyên tắc của hàm Sigmoid — một hàm phi tuyến tự chuyển đầu vào của

nó thành xác suất thuộc về một trong hai lớp nhị phân (0 hoặc 1) Hình 3.13 mô tả về cách

hoạt động của thuật toán [15] Nhóm sẽ trình bày cụ thể sau đây.

Mô hình Hồi quy Logistic 3.3 có dạng:

1

Ở đây, S(z) là hàm Sigmoid và z là tổ hợp tuyến tính của các đặc trưng đầu vào với trọng

số tương ứng Cho mỗi điểm dữ liệu, mô hình tính giá trị z, áp dụng hàm Sigmoid, và đưa ra

dự đoán xác suất Quá trình huấn luyện mô hình liên quan đến tối ưu hóa bộ trọng số sao cho

24

Trang 35

Logistic Regression Example

* Boundary + False samples

+ True samples

Hình 3.13: Ví du về cách hoạt động của Logistic Regression

dự đoán xác suất gần nhất với giá trị thực tế Ham mat mát thường sử dụng là Cross Entropy

3.4, được định nghĩa như sau:

L(w) = TM ` [yi log(pi) + (1 — yi) log(1 — Ø,)] (3.4

Trong đó:

¢ n là số lượng mau, y; là giá trị thực tế của đầu ra thứ i

* p; là xác suất dự đoán thuộc lớp 1 của mô hình cho đầu ra thứ i

Mục tiêu là tối ưu hóa hàm mất mát này thông qua các phương pháp tối ưu hóa, như GradientDescent, để có được mô hình có khả năng phân loại tốt trên dữ liệu mới

25

Trang 36

Chương 4 PHƯƠNG PHÁP NGHIÊN CỨU VÀ THỰC HIỆN

4.1 Tổng quan hệ thong

Tổng quan hệ thống được chia làm 3 thành phần có sự liên kết với nhau: thiết bị biên

chịu trách nhiệm xử lý, thu nhận dữ liệu khuôn mặt, thẻ từ, cung cấp khả năng tương tác giữa

người dùng và hệ thống điểm danh; máy chủ đám mây truyền nhận dữ liệu với thiết bị biên,lưu trữ và phân phối luồng dữ liệu; cuối cùng là web app, được xây dựng trên nền tảng là

máy chủ đám mây, cung cấp khả năng theo dõi cho người dùng Được thể hiện rõ trong Hình

4.1

Attendance machine

Attendance machine Cloud server Web app

Hình 4.1: Tổng quan thiết kế của hệ thống

Ba thành phần trên xây dựng nên một hệ thống điểm danh với đầu vào là hình ảnh khuônmặt và định danh thẻ từ, trả về kết quả điểm danh thông qua màn hình và dịch vụ web appcho người dùng đầu cuối Đồng thời các dữ liệu về tiến trình điểm danh, dữ liệu nhận dạng

sẽ được lưu trữ lâu dài trên cơ sở dữ liệu để truy vấn trích xuất khi có nhu cầu về xử lý và

học vụ.

26

Trang 37

4.1.1 Phan cứng thiết bị biên

Mỗi thiết bị biên của dé tài sẽ bao gồm các thành phan phần cứng quan trọng sau:

Raspberry pi 4, camera, đầu đọc thẻ từ, màn hình cảm ứng chạm, hộp mica đóng gói sản

phẩm Hình 4.2 thể hiện tổng quan thiết kế phần cứng

Touch screen

RFID Reader

Hình 4.2: Tổng quan thiết kế phan cứng

* Raspberry pi 4: bộ phận xử lý chính của thiết bị biên, với tốc độ xử lý lên đến 1.5 GHz

cùng dung lượng 4GB RAM, nó sử dụng phần lớn tài nguyên để thực hiện các thuậttoán trích xuất, phát hiện và nhận diện khuôn mặt Ngoài ra, là bộ phận trung tâm kết

nối các thiết bị ngoại vi như camera để thu hình ảnh, đầu đọc thẻ từ để thu thập tín hiệu

mã định danh RFID, màn hình cảm ứng để truyền tải giao diện, lấy đầu vào cảm ứng

là các thao tác của người dùng Cuối cùng, sử dụng driver Wi-Fi, nó còn giao tiếp vớimáy chủ đám mây thông qua giao thức kết nối Wi-Fi, truyền và nhận các dữ liệu nhận

diện, dữ liệu điểm danh trong quá trình vận hành theo thời gian thực.

* Camera: kết nối với bo mach xử lý chính thông qua giao thức USB, nó đảm bảo truyền

một lượng dữ liệu hình ảnh tương đương 30 FPS với chất lượng HD, đảm bảo hình ảnhnhận diện luôn được cung cấp một cách tốt nhất với độ trễ ít nhất có thể

* Đầu đọc thẻ từ (Module RC522): Đóng vai trò là slave trong giao tiếp SPI với bo mach

Raspberry pi 4, nó được cung cấp nguồn 3.3V giúp hoạt động ổn định Với tần số quét13.56 Mhz và hỗ trợ phần lớn các loại thé RFID, nó giao tiếp được với hầu hết các thẻ

27

Trang 38

từ, đặc biệt là thẻ sinh viên, nhân viên ở các trường đại học và doanh nghiệp Cung cấp

dữ liệu định danh cho bộ xử lý chính nhằm đối chiếu trong quá trình điểm danh

* Màn hình cảm ứng: Giao tiếp với Raspberry pi 4 bằng giao thức HDMI để truyền hình

ảnh, hỗ trợ hiển thị giao diện người dùng cũng như gia tăng tương tác người dùng vớithiết bị biên thông qua cảm biến chạm

¢ Hộp nhựa mica: Là thành phan cuối cùng để hoàn thiện sản phẩm, giúp cố định các

thành phần phần cứng khác, gia tăng tính thẩm mĩ đồng thời bảo vệ các thành phần

nhạy cảm như mach module RC522 và bo mach Raspberry pi 4.

4.1.2 Phan mềm hệ thong

Dé hệ thống vận hành một cách chính xác va thỏa yêu cầu đặt ra, nhóm dé xuất xây dựngcác khối phần mềm với các chức năng đặc thù khác nhau, đảm nhận các nhiệm vụ riêng biệt

theo từng bộ phận Hình 4.3 thể hiện tổng thể các sơ đồ khối phần mềm cùng các mối quan

hệ liên kết giữa các khối Rõ nhất có thể thấy ở máy chủ đám mây, ta thấy các khối Backend,

Frontend và Database Ở thiết bị biên, ta có các khối Facial Processes, Cloud communication,

RFID Handler, GUI và cuối cùng là Planning

Hinh 4.3: Téng quan thiét ké phan mém

* Facial Processes: Khối thực hiện các tác vụ liên quan đến thị giác máy tính Bao gồm

28

Trang 39

phát hiện khuôn mặt, tiền xử lý hình ảnh, nhận diện khuôn mặt, lưu trữ và khai thác

các dữ liệu này.

¢ RFID Handler: Đóng vai trò là thiết bi chủ trong giao thức SPI, nó vận hành quá trình

đọc và gửi mã ID từ thẻ từ của người dùng đến khối Facial Processes cho mục đích đối

chứng, nhận diện và điểm danh Ngoài ra cũng gửi dữ liệu này đến khối Planning chocác tác vụ khác như hiển thị lên UI, gửi lên máy chủ đám mây,

* Cloud Comunication: Nhận dữ liệu từ các khối khác, nó đóng vai trò như gateway để

truyền dữ liệu lên máy chủ đám mây, trong đó có dữ liệu nhận diện và dữ liệu điểm

danh từ Facial Processes Ngoài ra còn nhận bộ dữ liệu nhận diện từ máy chủ đám mây

để cung cấp cho mục đích nhận diện của khối Facial Processes

* Planning: Khối đảm nhiệm việc lập lịch và vận hành các khối khác, dựa vào các tín

hiệu gửi và nhận để vận hành máy trạng thái bên trong nó.

» GUI: Truyền nhận dữ liệu va tín hiệu điều khiển với các khối khác Nó hiển thị giao

diện, cho phép người dùng tương tác, điều khiển thiết bị biên

* Cloud Database: Lưu trữ dữ liệu nhận diện và điểm danh, cung cấp các mối quan hệ

dữ liệu cho quản lý và hiển thị của hệ thống

* Backend: Phan xử lý chính của máy chủ đám mây, gửi và nhận dữ liệu, đồng thời phânphối dữ liệu đến thiết bị biên, Web và App

* Frontend: Vận hành trên nền tang máy chủ đám mây, nó cung cấp web và app giúp

người dùng có khả năng theo dõi quá trình điểm danh

4.2 Quy trình vận hành của thiết bị biên

4.2.1 Quy trình hoạt động chung

Quá trình vận hành của thiết bị được điều khiển bằng các máy trạng thái của khối

Plan-ning, dựa vào tín hiệu phản hồi từ các khối, nó đưa ra các lệnh điều khiển nhằm tiếp tục quá

trình vận hành, tạo ra vòng lặp khép kín giữa các khối Cụ thể mối liên kết giữa các khối với

Planning như bang 4.1 sau:

29

Trang 40

Bang 4.1: Tín hiệu truyền nhận từ các khối đến Planning

Facial Processes Ket qua nhận diện, dữ liệu

nhận diện trích xuất được

Kích hoạt trích xuât, nhận diện khuôn mặt, tải dữ liệu

nhận diện.

Cloud Communication Tín hiệu gửi dữ liệu nhận

diện, dữ liệu điểm danh lên

máy chủ đám mây.

Tín hiệu báo hoàn thành tải

xuống dữ liệu nhận diện

gian, thông số môi trường,

Tùy chọn tương tác của người

dùng với thiết bị

thông tin lớp học.

Sử dụng Qt Framework (C++), giao diện phần mềm điểm danh được triển khai trên màn

hình cảm ứng gắn trực tiếp trên thiết bị biên GUI (Graphical User Interface) được thiết kế

để thể hiện quy trình người dùng tương tác với thiết bị biên, quá trình này gắn liền với cách

vận hành của hệ thống, chính vì thế, nhóm sẽ trình bày đồng thời hai khối GUI và Planning

để dễ dàng mô tả quy trình, trực quan và thống nhất Hình ảnh 4.4 là sơ đồ hoạt động của hệ

thống, dưới đây, nhóm sẽ mô tả cụ thể các bước tuần tự theo chiều từ trên xuống:

* Bước đầu, thiết bị biên yêu cầu người dùng hiện diện khuôn mặt trước camera đồng

thời quẹt thẻ để tiến hành điểm danh Trong trường hợp người dùng quên thẻ, có thể

lựa chọn chỉ điểm danh bằng khuôn mặt (sau khi điểm danh, người dùng sẽ được phân

loại là điểm danh bằng khuôn mặt)

» Ty mã ID đầu vào sau khi người dùng quet thẻ, thiết bị biên sẽ xác thực người dùng có

thuộc lớp học hay không bằng cách truy vấn vào cơ sở dữ liệu nội bộ Từ đó có hànhđộng phù hợp cho người dùng tiếp tục điểm danh hay không

s Trong giai đoạn đầu, khi dữ liệu khuôn mặt chưa đủ để nhận diện, người dùng sẽ được

yêu cầu cung cấp đặc trưng khuôn mặt, đặc trưng này được trích xuất tự động bởi thiết

bị biên, người dùng có quyển lựa chọn không cung cấp Quá trình ban đầu này, người

dùng sẽ được phân loại là điểm danh bằng thẻ RFID.

* Sau này, khi dif liệu nhận diện đã đủ, thiết bị biên sẽ tiến hành các giai đoạn phát hiện,

nhận diện khuôn mặt và đối chiếu ID nhận diện được dự đoán này với ID của thé RFID

30

Ngày đăng: 06/12/2024, 15:27