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: Nhận diện khuôn mặt real-time với mô hình Facenet và ứng dụng IoT platform

79 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

Nội dung

Trong đó thì phương pháp nhận diện khuôn mặt ngày càng chứng tỏ sự hiệu quả cũng như sự tiện lợi và được áp dụng với nhiều mục đích khác nhau, ví dụ: hệ thông gán nhãn tự động của Facebo

Trang 1

ĐẠI HỌC QUOC GIA TP HO CHÍ MINHTRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

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

PHẠM KIM THÀNH

VŨ NHÂN NGHĨA

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

NHAN DIỆN KHUÔN MAT REAL-TIME VỚI MÔ HÌNH

FACENET VÀ ỨNG DỤNG IOT PLATFORM

REAL-TIME FACE RECOGINTION WITH FACENET

ARCHITECTURE AND IOT PLATFORM

KỸ SƯ NGANH KỸ THUAT MAY TÍNH

Trang 2

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

TRUONG DAI HOC CONG NGHE THONG TIN

KHOA KỸ THUAT MAY TÍNH

PHAM KIM THÀNH - 16521129

VŨ NHÂN NGHĨA - 16520820

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

NHAN DIỆN KHUÔN MAT REAL-TIME VỚI MO HINH FACENET VA UNG DUNG IOT PLATFORM

REAL-TIME FACE RECOGINTION WITH FACENET

ARCHITECTURE AND IOT PLATFORM

KY SƯ NGANH KỸ THUAT MAY TÍNH

GIANG VIEN HUONG DAN PGS.TS VU DUC LUNG

Trang 3

THONG TIN HỘI DONG CHAM KHÓA LUẬN TOT NGHIỆP

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

01 năm 2021 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, chúng em xin chân thành cảm ơn Ban giám hiệu, quý Thầy Cô của trườngĐại Học Công Nghệ Thông Tin, đặc biệt là các thầy cô trong Khoa Kỹ Thuật Máy Tính đã tậntình giảng dạy, hết lòng truyền đạt kiến thức, kinh nghiệm quý báo cho chúng em trong suốt

thời gian qua.

Với những kiến thức được thầy cô trong khoa Kỹ thuật Máy tính truyền dạy trong suốt

4 năm qua, nhóm em đã có thể tự tin làm một đề tài với nhiều mang kiến thức khác nhau và

có cả những kiến thức mới Bên cạnh đó, dé có thể hoàn thành tốt dé tai là sự chỉ dan tận tâmcủa thầy PGS.TS Vũ Đức Lung và thầy ThS Phan Đình Duy Chúng em xin chân thành bày

tỏ sự biết ơn sâu sắc đến thầy Thạc sĩ Phan Đình Duy và Phó Giáo Sư Tiến Sĩ Vũ Đức Lung

~ Khoa Kỹ Thuật Máy Tính đã tận tình và giúp đỡ chúng em trong quá trình thực hiện đề tài

Chúc quý thầy cô khoa Kỹ thuật Máy tính — trường Dai học Công nghệ Thông tin luôn

đi đầu trong công tác giáo dục đại học ở trường và là người định hướng tận tâm cho nhiều thế

hệ sinh viên Cảm ơn thầy cô đã luôn đồng hành và dẫn dắt sinh viên chúng em từ những ngàymới bước chân vào giảng đường đại học cho đến nay Đó là cả một hành trình dài và nhiều bài

học quý giá mà chúng em học được.

Cuối lời, một lần nữa xin gửi quý thầy cô lời biết ơn chân thành nơi chúng em! Chúcthầy Duy (Th§ Phan Đình Duy) và thầy Lung (PGS.TS Vũ Đức Lung) gặt hái nhiều thànhcông hơn nữa trong công tác giảng dạy tại khoa và gia đình nhiều sức khỏe!

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

Sinh viên thực hiện:

Phạm Kim Thành

Vũ Nhân Nghĩa Khoa Kỹ Thuật Máy Tính Lớp MTCL.2 2016

Trang 5

MỤC LỤC

Chương 1 TONG QUAN DE TÀI

1.1 Các công nghệ hiện nay

1.2 _ Các nghiên cứu tương tỰ: - cty 8

1.3 Giải pháp đề xudt cccceccccssccscssssesssssseessssseessssssecessssseseessseessssseeesessseeseessees 01.4 Mục tiêu và giới hạn đề tai cccccsseecsssssseeccssssecesssssscessssescsssssecessseessessees 1LAL Mục tiêu của đề tài ii 11.4.2 Giới hạn của dé tải ii 21.5 _ Ý nghĩa thực tiễn của đề tài 222cccccctcrccrrvrrrrrrrrrrrrrrrrcee 21.6 _ Cấu trúc của báo cáo Khóa ii n 2Chương 2 CƠ SỞ LÝ THUYÊT 2 222¿+22EE+++tEEEESEtEEEEEE2tEEEEEErrrrrkrcer 3

2.1 _ Thị giác máy tính — Computer Vision -+- + << +s£+++++ceesr+ 3

2.2.3 Regression(Bài toán hồi quy) cvccccc+ecvccvvvccrrrrrrrr 9

2.2.4 Un-Supervised Learning - 5c + c+st+tstetererrkrkerrrrre 9 2.2.5 Classification (Bài toán phân loại) . -¿- 5 + <+sccccexecs+ 9

Trang 6

2.2.6 Clustering (Bài toán gom nhóm) + ¿+ + + +c++x+x+eexer+ 20

2.2.7 Dimensionality reduction(Bài toán giảm chiều của dữ liệu)

2.3 CNN - Convolutional Neural ÑetwOrk -c 5c cccceceteeeeree 20

2.4.1 Facenet [4] cc Sàn TH HH HH rệt 29

2.4.2 „(0011951901916 31

2.4.4 Support Vector Machine (SVM) c-ccccscsceeeece.c 5

2.5 ToT và Google IoT FlatForm ¿6-5-5552 S*+++k+e£ekererkekererre 36

2.5.1 Tổng quan về Internet of Thỉngs - : -c+£525sccz2ccsscee 362.5.2 Tổng quan về Google Flatform -2c+++222vvvvczz++rrrr 37

2.5.3 Firebase: cà LH HH HH HH HH HH 40

2.6 Cơ sở lý thuyết về Server cccccccssssssessssssesesssseesesssssessssssseessssesesssseesenssseeee 40

2.6.1 Giao thức MQÏTT cà creererrrrrrrerrrrrrrerrerrreer 40 2.6.2 Các khải niệm cơ bản trong MQTTT -. - - 5©555+c+c+c<++ 41 2.6.3 HyperText Transfer Protocol (HTTTP) - - s©++s+c+c+ce++ 43

2.6.4 Các thành phần chính của HTTP :¿522vve+czz+zrx 44

Trang 7

Chương 3 PHAN TÍCH THIET KE HE THÔNG -: -:c5s+2 463.1 So dé hệ thống.

3.2.

3.3.

3.3.1 Ngôn ngữ lập trình được sử dụng: ¿+ «c«cexeeeeree 51

3.3.2 Cai đặt môi trường cho KIT

3.3.3 Thiết kế hệ thống LOT ccsccccssssesssssseessssssesesssseessssssecesssseeeesesseeeeessees 53Chương 4 THỰC NGHIỆM VÀ ĐÁNH GIA

4.1 Cài đặt hệ thống: 222cc 22222222 EtEEEEEEtEEErrrrrrrrrrrerrtee 54

4.2 Thời gian delay Kit thực hiện chương trình: - - + +5s++5s< 57

4.3 Thời gian xử lý tao file phân loại với số người tương ứng: 574.4 Thử nghiêm các IoT platform hỗ trợ hệ thống IOT - 59

4.5 Quá trình train Model - ¿c5 t3 St xevveresrvserrverrsrrrrerrrrerrer 6l

4.6 Thử nghiệm model vừa train qua các bộ dữ liệu phô biến: 62

47 Kết quả thử nghiệm 2 phương pháp xác định vị trí khuôn mặt: 64

4.8 _ Đưa dữ liệu lên PlatForm -¿- - 52+ S2 *St*£eErxetsrrterseerrxeerrsesscer 65

4.8.1 Gửi dữ liệu định danh lên Server: -.- ¿+55 <5ss+s+ec+s<esss+ 65

4.8.2 Lấy dữ liệu định danh về phần mềm Java - 674.8.3 Téc độ xử lý dữ liệu của FlatfOrm: ¿- + +<+xerezexerercr+ 67

4.9, Giao diện người dùng ti 67

Chương 5 KET LUẬN VA HƯỚNG PHAT TRIẺN - ¿22552 695.1 _ Kết quả thu được thông qua quá trình thực hiện đề tài khóa luận 695.2 Hướng phát triển của để tài :c222vvcccvcrvvrerrrrvrrrrrrrrreerrvei 69

Trang 8

DANH MỤC HÌNH VẼ

Hình 1-1 Bảng thống kê thời gian ra mắt các loss function - z-+ 9Hình 1-2 Bảng thống kê độ chính xác của từng loss function . - 10

Hình 2-1 Mô tả ảnh dưới góc nhinfcuar máy tính +©s+c++c+cx++ 14

Hình 2-2 Mô hình input và output thông qua xử lý các hàm - 18

Hình 2-3 Ham số regressiOn -2¿©22+++22EE+++2EEEYY+tSEEEEEttEEEErrrrrrkrrrrrrrrree 19

Hình 2-4 Kernel trong CÌNN + tt ng HH TT HH it 21

Hình 2-5 Mô tả cách hoạt động của mỗi kernel với ảnh input - 21Hình 2-6 Tổng quan về mô hình CNN -¿¿-22v2+++z+22EEEvvvrrrrrrrrrrree 22

Hình 2-7 Mô tả các tác vụ extra-supervision và self-supervision hoạt động song

song với việc xử lý bounding box và phân loại ảnh Và cho ra bốn output tương

ứng: phân loại ảnh, box chứa khuôn mặt, năm điểm landmarks và mô hình 3D trên

cùng một bức ảnh [3] ¿- - cece SE 2 **E k2 E E1 11211111121 110101 1 te 25

Hình 2-8 Mô tả tổng quan về cách hoạt động của Retina-face: mô hình kim tự tháp(feature pyramid) được áp dụng vào với mỗi bức ảnh và được xử lý với các module

tương ứng khác nhau [3] ¿ - ¿52 +56+22£S2S*2*‡E2E£EE*E£E£EeEeEeEekexekekerrkekererree 25

Hình 2-9 Phương thức xử lý các pyramid image theo phương thức bottom-up và top

Gown pa(hWAyY cành HH HH HH TT HT HH TT HH HH hi 26

Hình 2-10 Mô hình tổng quan về 3 lớp xử lý p-net, r-net -o net của MTCNN [2] 26Hình 2-11 Sơ đồ CNN của P-netL -ccccccE1 re 27Hình 2-12 Sơ đồ CNN của R-net và O-Net 22222vcccrrecccrrrvrrrrrrrrrrrrree 28Hình 2-13 Sơ đồ CNN của O-net 22::c-222222 2222222211112 crrrrrrrrrree 28Hình 2-16 Y tưởng Siam Network được sử dụng khá phổ biến trong các dé tài nhận

i6n 4010/0017 a 29

Hình 2-17 Triplet loss [4] - + 1k ng it 31

Hình 2-22 Cấu trúc tổng quan của Arcface [7] ssscsssssssssssssssssssteessceesssssessseeeessnneeees 33

Hình 2-23 So sánh mức độ hiệu quả trong việc phân lớp dữ liệu giữa Softmax và

Arcface [7] „34 Hình 2-24 Mô hình phân loại SVM „35

Trang 9

Hình 2-25 Sự gia tăng nhanh chóng của giao tiếp máy — MAY - 37

Hình 2-26 Logo Google Cloud PlatfOrim 5 <3 1v vn ng trên 37

Hình 2-27 Những dich vụ Google Cloud Platform cung cấp . -.: 39 Hình 2-28 Mô hình tổng quan về MQTT ¿+¿©++x++x+2E£+£x++rxezrxrrxeeree 41

Hình 2-29 Sơ đồ hoạt động của HT'TP -¿- 2 ¿+ +E+EE£EE+EE+EE+E£E£EerEerkerxererree 43

Hình 2-30 Gói tin Request chứa các thông tin cần thiết . 5-5 s52 ss2 45 Hình 3-1 Sơ đồ tổng quan quá trình tạo file phân loại SVM -. 46 Hình 3-2 Sơ đồ tổng quan xử lý các tín -¿- +¿©c++2x++x++zxtzrxerreerxeerxrre 41 Hình 3-3 Sơ đồ tổng quan về các bước nhận diện khuôn mặt -. 48

Hình 3-4 Sơ đồ chân của Module ESP32 -2¿ 2 5£+2x++Ex2EEtEE+erxezrxrrreeree 51

Hình 3-5 Thẻ hiện tốc độ xử ly nhận diện khuôn mặt đạt tốc độ tốt với 29 FPS va độ

chính xác lên đến 99Ố% ¿- 2:22: ©2+2+12E1122112111211271121121127112711211211 11.21 xe 54 Hình 3-6 Các gói tin được mã hóa được truyền tải thành công về Firebase từ PC 55 Hình 3-7 Với cấu hình GPU thấp hon, tốc độ xử lý bị ảnh hưởng giảm xuống 15-

18FPS tuy nhiên model và độ chính xác không bị ảnh hưởng nên van đạt 95-98% 55 Hình 3-8 Quá trình gửi thông tin về Firebase thành công tương tự PC 56

Hình 3-9 Kết quả nhận diện khuôn mặt từ Jetson nano đạt FPS khá thấp với 2FPS 56

Hình 3-10 Dinh danh khuôn mặt cùng độ tin cậy 5-5 5+5 ‡+++se++seessesss 57

Hình 4-1 Kết qủa truyền dir liệu về FireBase -2- ¿©c+z22++cs+ezxesrxere 59 Hình 4-2 Kết quả truyền dữ liệu về Database của AWS IOT Core 60 Hình 4-3 Tiến hành train model (1) - -cc+++c+++eetttrktrrrtrrktrrrrrrrkrrrrrrrkeg 61 Hình 4-6 Các File model xuất ra sau khi train bao gom model Mobilenet, 1 file bién đối Arcface và một file lưu loss quá trÌnh - 2-2 2 + x+£k£E£E++E++Ezxrxerxee 62 Hình 4-7 Kết quả kiểm thử (1) với model tại thời điểm epoch 6 ta thu được kết quả

độ chính xác tương ứng với 7 bộ dữ liệu khuôn mặt người . ‹ s«+-«+ 63

Hình 4-8 Kết quả kiểm thử (2) với model tại thời điểm epoch 10 ta thu được kết qua

độ chính xác tương ứng với 7 bộ dữ liệu khuôn mặt người ‹++-«++<+ 63

Hình 4-9 Kết quả gửi dữ liệu lên Firebase ((Ï) << *++v+sskEseeereeeeeeere 65 Hình 4-10 Kết quả gửi dữ liệu lên Firebase (2) - - 5 S1 sisssreeserrske 66

Trang 10

Hình 4-11 Kết quả gửi dữ liệu lên Firebase (3) - 55+ cc+cscsesrereeeecee 66Hình 4-12 Kết quả lấy dữ liệu từ về Java 2222¿222E2zttSEEEEerrrrrkrrrrrrkrcee 67

Hình 4-13 Hình ảnh giao diện đăng nhập - ¿5-5252 522ccs+csccsrzrerxsrx 68

Hình 4-14 Giao diện truy xuất thông tỉn -¿¿©2+++2cvvzretvvvvrrerrvsrreeex 68

Trang 11

DANH MỤC BANG

Bảng 1-1: Bảng thống kê về độ chính xác, số lượng tham số cần thiết và tốc độ xử

lý với các biến thé của MobileFaceNet và ShuffleNet trên 2 bộ dữ liệu LFW và

Trang 12

DANH MỤC TỪ VIẾT TẮT

FPS Frame per second

loT Internet of Things

API Application programming Interface CNN Convolutional Neural Network

DCNN Deep convolutional neural network

GCP Google Cloud Protocol

Trang 13

TÓM TAT KHÓA LUẬN

Hiện nay, các công nghệ nghiên cứu xử lý ảnh đã và đang được quan tâm và

phát triển rất mạnh Đi kèm theo đó là các ứng dụng áp dụng các thành tựu của xử

lý ảnh Một trong những dé tài nồi bật và thu hút nhiều sự chú ý đó là nhận diện — di

khuôn mặt.

Nội dung chính của đề tài sẽ tập trung vào các Deep Convolutional Neural

Network (DCNN) để giải quyết vấn đề Cụ thể nhóm sẽ tạo ra một hệ thống nhậndiện khuôn mặt với độ chính xác > 85% và tốc độ xử lý đạt 5 FPS Từ đó nhóm sẽtiến hành lưu trữ dit liệu hoạt động về loT platform( cụ thể là FireBase thuộc

Google Cloud) Để mở rộng tiện ích cho đề tài, nhóm có thực hiện xây dựng và lắpđặt thêm các cảm biến ngoại vi cho hệ thống để theo dõi đánh giá việc truyền tải dữliệu — cảm biển ngoại vi bao gồm:

- Cảm biến khí ga

- Cảm biến chuyền động

- Cam biến nhiệt độ

- Cảm biến độ âm

Trang 14

MỞ DAU

Hiện nay, các hệ thống IOT dan trở nên quen thuộc và được sử dụng rộng rãi

Tuy vậy van đề về bảo mật luôn được quan tâm hàng đầu, các phương pháp dé nhận

dang định danh thông thường có thể kể đến: vân tay, ADN, vân mắt, khuôn mặt,

Trong đó thì phương pháp nhận diện khuôn mặt ngày càng chứng tỏ sự hiệu quả cũng

như sự tiện lợi và được áp dụng với nhiều mục đích khác nhau, ví dụ: hệ thông gán

nhãn tự động của Facebook, nhận diện khuôn mặt thực hiện các giao dịch ATM ở

Hệ thống nhận diện khuôn mặt được phát triển với nhiều model khác nhau đểphục vụ cho việc tối ưu về thời gian và độ chính xác Ưu điểm của việc xử lý ảnh cóthé ké đến là việc nhận diện theo thời gian thực, không cần tương tác vật lý, Nhượcđiểm, một số model cần lượng dir liệu lớn kèm theo thời gian train dai để ra được mộtmodel hoàn chỉnh, hoặc dữ liệu có thé bị thay đổi theo thời gian do sự co giản củakhuôn mặt Vì những tiện ích và nhược điểm kể trên, nhóm muốn thực hiện train lạimột model đề tối ưu những lợi ích của model cũng như giảm thiểu những bắt lợi khi

train và sử dụng model.

Sau khi tham khảo qua một số bài báo khoa học về Inception v4, Facenet,

MobileFacenet, Arcface, Cosface,

thì các mô hình tao các vector đặc trưng (feature vector) dé thực hiện phân nhóm

nhận diện với 128 chiều dữ liệu Vector này đã được giảm chiều dữ liệu từ vô số chiềuxuống 128 chiều dé phủ hợp với các tiêu chí về thời gian và dữ liệu để so sánh cácvector khác dé thực hiện việc training Vì vậy nhóm dự định sẽ thực hiện một môhình tạo ra 512 điểm ảnh với độ chính xác cao hơn trên nền MobileFaceNet vàPytorch, từ đó so sánh kết quả thực hiện được với mô hình 128 điểm ảnh đã đượcthiết kế trên

Theo [1], Việc định danh khuôn mặt sử dụng Kit IloT JSON TXI dùng model

MobileNet-V2 với 128 chiều dữ liệu có độ chính xác 71.8% với tốc độ định danh

trong 10s.

Trang 15

Chương 1 TONG QUAN DE TÀI

1.1 Cac công nghệ hiện nay

Ngày nay công nghệ nhận dạng khuôn mặt được quan tâm và được coi là

một lĩnh vực quan trọng trong khoa học nhận dạng là do nhu cầu ứng dụng nhận dạng khuôn mặt trong nhiều lĩnh vực như: kinh tế, điều tra tội phạm, bảo mật, Nói một cách dễ hiểu, công nghệ nhận dạng khuôn mặt là công nghệ cho phép nhận dạng một người cụ thé từ ảnh hoặc một đoạn video Cách thức làm việc của công nghệ này

là so sánh hình ảnh khuôn mặt với những hình ảnh sẵn có trong cơ sở dit liệu dé đưa

ra kết quả.

Các thuật toán về xử lý nhận diện khuôn mặt đã và đang được phát triển khá rộng rãi với nhiều hướng giải quyết và thuật toán khác nhau Tuy nhiên có thê khái

quát quá trình xử lý này về 4 bước như sau:

- Xac định vi trí khuôn mặt có trong ảnh.

- Xuat ra các đặc trung của khuôn mặt.

- So sánh với các anh trong bộ dữ liệu.

- _ Xuất ra định đanh khuôn mặt.

Đối với con người, việc nhận diện khuôn mặt diễn ra thường xuyên trong

cuộc sống, con người dễ dàng nhận ra các khuôn mặt cũng như xác định đối tượng

mỗi khi gặp phải đối tượng khác Nhưng dé máy tinh có thé làm được việc tương tự như con người thì cần phải giải quyết rất nhiều bài toán cấp cao và thuật toán xử lý phù hợp dé tiến hành từng bước xử ly Vì vậy các khái niệm machine learning, deep

learning [11] va neural network được sinh ra dé đáp ứng nhu cầu xử lý ảnh của con

người Các neural network luôn được quan tâm và phát triển dé đạt kết quả tốt nhất

về tốc độ xử lý và độ chính xác Mỗi mạng neural network có cách thức xử lý và

cách hoạt động khác nhau Ngoài ra, các yếu tổ của môi trường luôn là van đề cần

được lưu tâm vì gây ảnh hưởng trực tiếp đến kết quả thu được từ các mạng Vì vậy,

xây dựng hệ thống nhận diện khuôn mặt dé hỗ trợ cho hệ thống IoT sẽ gặp nhiều

khó khăn và phức tạp.

Trang 16

1.2 Các nghiên cứu tương tự:

Nhắc đến nhận diện khuôn mặt tức là xử lý và biến đổi ảnh dé thu được khuôn mặt mong muốn trong từng khung hình Vì vậy các thuật toán luôn được

nghiên cứu và phát triên dé phục vụ và tối ưu quá trình xử lý ảnh Ké từ 1991, sự ra đời của các đặc trưng Haar để nhận diện khuôn mặt trở thành nền tảng dé xây dựng

các công nghệ nhận dạng khuôn mặt khác nhau Các lĩnh vực nghiên cứu có thể kể đến là Holistic, Local handcraft, Shallow Learning và Deap Learning

Cac phương thức tiếp cận kể trên đều có các ưu điểm và nhược điểm về khả năng giải quyết bài toán, tốc độ xử lý và độ chính xác Tuy nhiên các mạng Deep

Neural Network ngày càng trở nên phô biến hơn từ khi DeepFace và DeepID ra đời.

Lĩnh vực này mang lại độ chính xác cao hơn so với mong đợi Với các cải thiện từ

phần cứng và đặc biệt là GPU, phương pháp Deep learning [11] tiến dần về việc mô

hình hóa bộ não con người và từ đó mang lại các kết quả tốt hơn Ngoài ra, các mô hình mạng dần được thu gọn về mặt tham số xử lý, dữ liệu cần thiết để train và test

mà vân luôn đạt độ chính xác cao.

Bang 1-1: Bảng thống kê về độ chính xác, số lượng tham số cần thiết và tốc độ xử

lý với các biến thé của MobileFaceNet và ShuffleNet trên 2 bộ dữ liệu LFW va

Trang 17

(MobileFacenet-M và MobileFacenet-S) cũng đạt độ chính xác và tốc độ xử lý tương

tự Ngoài ra MobileFacenet và các dạng rút gọn chỉ sử dụng dưới một triệu tham SỐ.

Ngoài ra, dé các mạng DCNN đạt kết quả cao nhát, thuộc tinh Deep Learning

[11] cần được phát huy và tính toán một cách hiệu quả nhất Chính vì thế Loss function hỗ trợ các mạng tính toán và cập nhập các tham số có khả năng học (learnable

parameter) hay còn gọi là weights trong các mạng DCNN.

Face Identification on MegaFace

CosFace: 82.720

Other models -@ Models with highest Accuracy

Hình 1-1 Bảng thống kê thời gian ra mắt các loss function.

Trang 18

View Accuracy ¥

RANK MODE accuracy * paper CODE RESULT YEAR

2 SV-AM-Softmax 97.2% Support Vector Guided Softmax Loss for Face Recognition @ =a 2018

scan ".x số

Clustering

Hình 1-2 Bang thống kê độ chính xác của từng loss function

Có thể thấy Arcface ra đời cùng thời điểm với Cosface tuy nhiên lại hiểu quả hơnCosface và các phương pháp khác trong việc tính toán và cập nhật loss từ đó cothéphân tách các lớp dữ liệu một cách tối ưu nhất

1.3 Giải pháp đề xuất

Với dữ liệu đầu vào của hệ thống là định dạng video, nhóm tiến hành sử dụngthư viện MTCNN để cắt dữ liệu đầu vào thành dạng ảnh với kích thước 600x600pxxác định chính xác vị trí khuôn mặt Sau đó sử dụng MobileFaceNet để tạo 512 điểmảnh từ dữ liệu đầu ra của MTCNN phục vụ cho việc định danh Tiếp tục, sử dụngArcFace để huấn luyện lại loss của model MobileFaceNet Sau cùng, nhóm dùngSVM để phân loại người dùng và xuất ra định danh

Nhóm sẽ xây dựng một mô hình IoT thu gọn với phần cứng bao gồm: KITNhúng Jetson Nano, Module ESP32 và các module cảm biến ngoại vi Với sự hỗ trợInternet, các thông tin dữ liệu từ phần cứng có thể được truyền tải và lưu trữ lênserver IoT Platform cung cấp các chức năng cần thiết để hỗ trợ triển khai các hệthống IoT một cách dé dàng nhất như: quản lý thiết bị, phan tích dữ liệu, bảo mật,

Vì có nhiều nhà cung cấp IoT platform nên nhóm sẽ thử nghiệm trên các platform

khác nhau: AWS IoT Core, Google IoT Cloud, Firebase Mobile Platform,

Trang 19

Dựa vào các công trình nghiên cứu đã được công bố, nhóm sẽ xây dựng một

mô hình nhận diện khuôn mặt theo một mô hình gồm 4 bước:

Bước 1: Xác định khuôn mặt trong ảnh bằng các bounding box, sau đócắt ảnh khuôn mặt từ các bounding box thu được

Bước 2: Truyền ảnh khuôn mặt đã được cắt qua các lớp mạng neuralnetwork trích xuất vector 512 đặc trưng ảnh (embedding)

Bước 3: So sánh với các embedding từ bộ dữ liệu.

Bước 4: Xuất ra định danh và độ tin cậy

Với cấu trúc mạng MobileFacenet và cập nhập loss bang Arcface, sử dụngpretrained model để xây dựng một ứng dụng phân loại định danh Sau đó tiến hành

tự train một model và thử nghiệm trên các bộ dữ liệu khác nhau và áp dụng vào đề

định danh khuôn mặt.

1.4. Mục tiêu và giới hạn đề tài

1.4.1 Mục tiêu của đề tài

Mục tiêu: thực hiện một mô hình IoT đơn giản để tiếp nhận các thông tin cơbản về thế giới và quản lý thông tin bằng IoT Platform Ngoài ra xây dựng một hệthống nhận diện khuôn mặt và định danh hỗ trợ cho IoT Cụ thể:

Tìm hiểu, khảo sát về các hệ thống IOT platform khác nhau Kết quảmong muốn tìm được một platform thuận tiện cho việc sử dụng cũngnhư truyền đạt và quản lý

Tìm hiểu về các thuật toán xử lý bounding box và nhận diện khuôn mặt.Tìm hiểu và nghiên cứu về các mang neural network tạo thành 512 đặc

trưng ảnh từ các anh input.

Nghiên cứu và tiễn hành tạo file phân loại và định danh

Thử nghiệm mạng với carema đề xử lý real-time

FPS mong muốn đạt từ SFPS

Trang 20

Phạm vi: Thử nghiệm và ứng dụng các thuật toán nhận diện và phân loại

định danh trên dữ liệu thu vào từ camera và truyền thông tin định danh về IOT

platform.

1.4.2 Giới hạn của đề tài

Bài toán gặp một số khó khăn khi train model là dữ liệu cần thiết dé train quálớn, không thé tự thu thập Nhóm sẽ sử dụng một số dữ liệu tự kiếm và dữ liệu cósẵn trên mạng dé tiến hành huấn luyện Cuối cùng là các yếu tố khách quan như thờitiết, mật độ sáng, dữ liệu huấn luyện không đủ sẽ là hạn chế của đề tài khi nhận diện

và detect khuôn mặt Do đó, độ chính xác của hệ thống định danh khuôn mặt theo

thời gian thực chỉ có thể đạt tới 90%

1.5 Ý nghĩa thực tiễn của đề tài

Đề tài này sẽ là một phần quan trọng trong hệ thống quản lý nhân sự, điểm danhhọc sinh, trong tương lai, giải quyết hoàn toàn các yếu tố về con người cũng nhưnhững bat tiện trong việc định danh truyền thống Ngoài ra yếu tố Machine Learning

và Deep Learning [11] có thể áp dụng trên các dữ liệu từ hệ thống IoT đề tạo ra một

hệ thống điều chỉnh các điều kiện xung quanh nơi ở, nơi làm việc, phù hợp với nhu

cầu sử dụng của mỗi người.

1.6 Cấu trúc của báo cáo Khóa luận

Phần còn lại của Khóa luận tốt nghiệp được tổ chức như sau, trong Chương 2nhóm sẽ trình bày những cơ sơ lý thuyết liên quan đến đề tài Khóa luận Chương 3nhóm trình bày chỉ tiết các kiến trúc và phương pháp liên quan đến quy trình xâydựng hệ thống loT, hệ thống nhận dạng khuôn mặt và định danh Chương 4 nhóm sẽtrình bày các thực nghiệm, kết quả thu được từ việc train, test model và đánh giá.Cuối cùng Chương 5 nhóm đưa ra kết luận và hướng phát triển

Trang 21

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

2.1 Thi giác máy tính - Computer Vision

2.1.1 Tổng quan

Trí tuệ nhân tạo và cách mạng công nghiệp 4.0 là những thuật ngữ được

nhắc đến nhiều nhất trong nghiên cứu khoa học hiện nay Máy móc được kết nốivới nhau và ngày càng có những hoạt động gần như con người Trong đó, nhữnghoạt động liên quan đến thị giác đã và đang phát trién mạnh mẽ bởi tính ứng dụngthực tiễn, trực quan, sinh động, Thuật ngữ thị giác máy tính được bắt nguồn từnhững hoạt động của máy tính mô phỏng hoạt động của mắt người và có thể thaythế cho con người trong các công việc quan sát, giám sát, phát hiện vật thẻ, pháthiện chuyển động, phân loại thông qua hình ảnh quan sát được

Thị giác máy tính là một bộ phận quan trọng trong nhóm Trí tuệ nhân tạo.

Hoạt động chính bao gồm các phương pháp thu nhận, xử lý ảnh kỹ thuật số, phân

tích và nhận dạng các hình ảnh, phát hiện các đối tượng, tạo ảnh, siêu phân giải

hình ảnh và nhiều hơn vậy Thị giác máy tính được ứng dụng rộng rãi trong thực

tế cuộc sống của chúng ta Camera được đặt trên nhiều thiết bị như điện thoại, máytính, máy ảnh, ô tô hoặc các hệ thống giám sát, quan sát trong các khu vực ngoàitrời, trong nhà, trong giao thông Có thé thay rang, máy tính đã có được cái nhìngần như một con người qua một số ứng dụng như nhận diện, tìm kiếm, phân loại,phát hiện, trích xuất hình ảnh của các chủ thể tập trung theo nhu cầu của con người.Một trong những hoạt động dễ thấy nhất là nhận diện và trích xuất thông tin củachủ thể Các hệ thống máy móc hiện nay đã có thể phát hiện chính xác gần nhưtuyệt đối nhờ vào các thuật toán, công cụ hỗ trợ, công nghệ áp dụng được nghiêncứu kỹ lưỡng Điều đó góp phần làm cho máy tính ngày càng có một cái nhìn cụthể, chính xác và nhanh chóng hơn bao giờ hết Thị giác máy tính thực sự đã đạtđược những bước tiến rõ rệt trong nghiên cứu khoa học hiện tại Trong báo cáonày, nhóm sẽ tập trung vào những nghiên cứu về phát hiện khuôn mặt, một trong

những ứng dụng quan trọng của Thị giác máy tính.

Trang 22

Hình 2-1 Mô tả ảnh dưới góc nhinfcuar máy tính

Khi con người nhìn vào một bức ảnh họ có thé nhận diện được mọi vật thé,không như điều hầu hết các máy tinh “thay” được Một bức ảnh được thể hiện bằngcác pixel chứa giá trị màu sắc Đối với ảnh xám, máy tính đọc ảnh dưới dạng một

ma trận 1 chiều với các pixel mang các giá trị từ 0-255 Đối với ảnh màu, máy tínhnhận vào một ma trận 3 chiều với mỗi chiều là 1 ma trận pixel chứa giá trị của 3

màu Red — Green — Blue.

Và dé thực hiện việc đọc ghi, tương tác và xử lý trên ảnh, nhóm sử dụng 2thư viện được xây dụng trên nền ngôn ngữ lập trình Python hỗ trợ mạnh mẽ và tốc

độ xử lý tối ưu nhất là Opencv và Pytorch

2.1.2 Thư viện xử lý ảnh Opencv

Thư viện Opencv là một thư viện da nền tảng được sử dụng để phát triển cácứng dụng về thị giác máy tính theo thời gian thực Thư viện này tập trung chủ yếu

về xử lý ảnh, quay video và phân tích các đặc trưng ảnh với các ứng dụng tiêu biểunhư là nhận diện khuôn mặt và nhận diện vat thẻ,

Các đặc trưng của thư viện Opencv:

- Đọc và lưu ảnh.

- Đọc và lưu video.

- _ Xử lý ảnh (lọc ảnh, biến đổi ảnh)

Trang 23

- Tién hành nhận diện các đặc trưng ảnh.

- Nhận diện các đối tượng cụ thé như khuôn mặt, mắt, phương tiện trong ảnh

hoặc video.

- Phân tích video (ước tính chuyền động, theo dõi đối tượng, )

Opencv được phát triển trên ngôn ngữ C++, sau đó, hỗ trợ thêm các ngônngữ Python và Java OpenCV có thể chạy trên nhiều hệ điều hành khác nhau như

Windows, Linux, OSx, FreeBSD, Net BSD, Open BSD,

Các module chính của thư viện Opencv

Cac module sau đây là các module chính của Opencv:

Chức năng lõi (Core functionality):

Module này xử lý các dang data cơ bản như Scalar, point, range, dùng déxây dựng các ứng dụng Opencv Ngoài ra, module này còn bao gồm dạng data

chuỗi đa chiều Mat, được dung dé lưu trử ảnh

Xử lý ảnh:

Module này đảm nhận nhiều hoạt động về xử lý ảnh như là lọc ảnh, biến đồi

các ảnh về hình học, chuyển đổi màu sắc, biểu đồ, wee

Module bao gồm các thuật toán về hình học, hiệu chỉnh âm thanh camera, đo

đạc và ước tính các đối tượng nhất định, và xây dựng các thuộc tính 3D.

Feature2d:

Trang 24

Module này thực hiện các hoạt động liên quan về các khái niệm nhận diện

các đặc trưng va mô tả các đặc trưng đó.

Objdetect:

Phát hiện vật thể và các đối tượng đã định dạng sẵn như là khuôn mặt, mắt,

con người va xe cộ,

Highgui:

Xây dụng các giao điện đơn giản dé dang sử dung

2.1.3 Thư viện Pytorch

Pytorch là một thư viện Machine learning dựa trên ngôn ngữ lập trình

Python, được phát triển dựa trên Torch Torch là thư viện machine learning được

open-sources dựa trên ngôn ngữ LUA Pytorch có 2 đặc trưng chính:

- Xử lý tensor (tương tự kiểu dữ liệu ndarray của Numpy) với sự hỗ trợ của

GPU.

- Tu động phân biệt giữa xây dựng và huấn luyện các neural networks

Sử dụng thư viện Pytorch để xứ lý thay vì các thư viện deep learning python:

- Không giống như Tensorflow, nhóm cần phải khai báo các đỗ thị tính toán

hoàn chỉnh trước khi chạy model, Pytorch cho phép nhóm có thé khai báocác đồ thị tính toán động

- Pytorch cung cấp tốc độ xử lý nhanh gọn và sự linh hoạt cao cho việc

nghiên cứu và xử lý deep learning.

Trang 25

Pytorch sử dụng một kỹ thuật gọi là automatic differentiation dé tính toán sốhọc thuộc đạo hàm của một fuction Khi huấn luyện một model, các biến có thể

được train và hoc (learnable parameter) được gọi tắt là weights sẽ được khởi tạo vớicác giá trị gần bằng 0 nhưng không bằng 0 Sau đó, các tensor được thông qua cáclớp mạng và cập nhật lại các biến weights từ phải sang trái, gọi là kỹ thuật

backward passes Khi có lệnh requires_grad các gradients sẽ được tính toán và tao

thành mô hình train với các input tensor cần thiết Khi có lệnh torch.no grad() thì

việc tính toán các gradients và cập nhật weight sẽ được ngừng và input tensor sẽ

chuyển sang giao đoạn sử dụng model và kiểm thử

Từ đó nhóm có thé phân tách việc đưa tensor từ các input ảnh vào tiến trìnhtrain và quá trình sử dụng và kiểm tra model riêng biệt

Pytorch nn module:

Đây là module để xây dựng neural network của Pytorch Module nn củaPytorch phụ thuộc vào module autograd để xây dụng model và tính toán Quy trình

để train model được tổng quát như sau:

- Khởi tao neural network với các weights dé tính toán

- Tao vòng lặp cho data inputs.

- Tién hành truyền dữ liệu inputs thông qua mang

- So sánh kết quả từ model với kết quả thật tế

- _ Truyén biến gradients ngược vào mạng lưới

-_ Tiến hành cập nhập weight tại từng lớp mạng với công thức sau:

Weight = weight — learning_rate * gradient (2.1)

Trang 26

Dưới góc nhìn của Machine Learning, mọi bài toán đều có input và output, ở

giữa của quy trình đó là một hàm Hàm là một khái niệm toán học khá quen thuộc với

chúng ta Hàm là một tập hợp các quy tắc được dùng đề các phần tử ở tập nguồn đếncác phan tử ở tập đích sao cho mỗi một phan tử ở tập nguồn chi có một và chỉ mộtphan tử ở tập đích Trong đó, một bộ phận nhỏ của hàm, khi tat cả các phan tử của cảhai tập đều là dạng số học, người ta gọi đó là hàm SỐ

Hình 2-2 Mô hình input va output thông qua xử lý các ham

Cùng với sự phát triển của Computer Vision, nhiệm vụ của người làm Machine

Learning ở một mức cơ bản nao đó là giúp máy tính điện tử tìm ra được hàm quan hệ giữa tập input và tap output Machine Learning chia các bài toán ra làm hai loại chính

là Supervised Learning(học có giám sát) và Un-Supervised Learning (học không

giám sát).

2.2.2 Supervised Learning.

Học có giám sát là việc có sẵn một tập nguồn và một tập đích tương ứng đểlàm cơ sở xây dựng ra model mong muốn Tập hợp kết hợp bởi hai tập này được gọi

là tập train Theo thời gian, khi đưa bài toán vào áp dụng thực tế, dữ liệu mới lại được

sử dụng để train lại nhằm cải tiến model hiện tại Điều này chính là mô tả cho khái

niệm học có giám sát.

Các thuật toán nằm trong nhóm các bài toán học có giám sát được chia nhỏ thànhhai phần dựa trên đặc tính của tập đích trong tập train

Trang 27

2.2.3 Regression(Bài toán hồi quy).

Hồi quy là một thuật ngữ rất khó hiểu Hiểu đơn giản thì những cái gì có tínhliên tục và tiếp nối với nhau thì người ta gọi là là hồi quy Vậy khi tập đích trong tậptrain là một tập dữ liệu có dạng liên tục không thể phân thành nhóm mà là một dữliệu cụ thé thì bài toán được xếp vào dạng hồi quy Bài toán tiêu biểu cho dang nàythường được ví dụ là tính toán giá cả của sản phẩm dựa trên thông số trước đó, hoặc

dự đoán biến động tài chính

2.2.5 Classification (Bài toán phân loại).

Khi dữ liệu của tập đích là một nhóm hữu hạn và có thể gắn nhãn được, bàitoán được xếp vào dạng classification Ví dụ hay được sử dụng cho bài toán dạng này

là bài toán gắn nhãn xem một email có phải là spam hay không, hoặc phân loại giữacam và táo hay phân biệt chữ viết tay,

Trang 28

2.2.6 Clustering (Bài toán gom nhóm).

Với bài toán dạng này, ta buộc phải có một tập hợp các categories cho trước.

Dữ liệu nguồn sẽ được Clustering dựa trên các yếu tổ có trong tập hợp categories chotrước Điều này có vẻ tương tự với bài toán ở dang Classification bị bỏ đi tập đíchnhưng trên thực tế thì không chính xác Ví dụ như với bài toán phân loại email làspam nhưng hoàn toàn không có bat kia ai đánh dấu mail là spam hay không Việcphân loại lúc này đơn thuần chỉ dự trên những nhóm email được cho là giống nhau

về cách đặt tên, nguồn gửi, tần suất xuất hiện, nội dung

2.2.7 Dimensionality reduction(Bài toán giảm chiều của dữ liệu)

Bài toán ở dạng này không được quy về các dạng trên mà được thực hiện dướihình thức làm giảm đi số lượng các biến số đầu vào nhằm hạn chế độ phức tạp của

bài toán.

2.3 CNN - Convolutional Neural Network

2.3.1 Dinh nghia.

Convolutional Neural Network (CNNs — Mang no-ron tích chập) là một trong

những mô hình Deep Learning tiên tiến giúp cho chúng ta xây dựng được những hệthống thông minh với độ chính xác cao như hiện nay như hệ thống xử lý ảnh lớn nhưFacebook, Google hay Amazon đã đưa vào sản phẩm của mình những chức năngthông minh như nhận diện khuôn mặt người dùng, phát triển xe hơi tự lái hay dronegiao hàng tự động CNN được sử dụng nhiều trong các bài toán nhận dạng các object

trong ảnh.

2.3.2 Convolutional

Là một cửa số trượt (Sliding Windows) trên một ma trận như mô tả hình dưới:

Trang 29

Convolved Feature

— Hình 2-4 Kernel trong CNN

Các convolutional layer có các parameter(kernel) đã được hoc dé tự điều chỉnh

Convolution hay tích chập là nhân từng phan tử trong ma trận 3x3

Sliding Window hay còn gọi là kernel, filter hoặc feature detect là một ma trận

Hình 2-5 Mô tả cách hoạt động của mỗi kernel với ảnh inj

lấy ra những thông tin chính xác nhất mà không cần chọn các feature Trong hình ảnh

ví dụ trên, ma trận bên trái là một hình ảnh trắng đen được số hóa Ma trận có kích

thước 5x5 và mỗi điểm ảnh có giá trị 1 hoặc 0 là giao điểm của dòng và cột

có kích thước nhỏ như trong ví dụ trên là 3x3 Convolution hay tích chập là nhân từng

phần tử bên trong ma trận 3x3 với ma trận bên trái Kết quả được một ma trận gọi là

Convoled feature được sinh ra từ việc nhận ma trận Filter với ma trận ảnh 5x5 bên

Trang 30

2.3.3 Cấu trúc của mạng CNN.

Mạng CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụngcác ham nonlinear activation như ReLU(Rectified Linear Unit) và tanH dé kích hoạtcác trọng số trong các node Mỗi một lớp sau khi thông qua các hàm kích hoạt sẽ tạo

ra các thông tin trừu tượng hơn cho các lớp tiếp theo Mỗi một lớp sau khi thông qua

các hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo Trong

mô hình mạng truyền ngược (feedforward neural network) thì mỗi neural đầu vào

(input node) cho mỗi neural đầu ra trong các lớp tiếp theo Mô hình này gọi là mạngkết nối đầy đủ (fully connected layer) hay mạng toàn vẹn (affine layer) Còn trong

mô hình CNNs thì ngược lại Các layer liên kết được với nhau thông qua cơ chếconvolution Layer tiếp theo là kết qua convolution từ layer trước đó, nhờ vậy mà ta

có được các kết nói cục bộ Như vậy mỗi neuron ở lớp kế tiếp sinh ra từ kết quả của

filter áp đặt lên một vùng ảnh cục bộ của neuron trước đó.

Mỗi một lớp được sử dụng các filter khác nhau thông thường có hàng trămhàng nghìn filter như vậy và kết hợp kết quả của chúng lại Ngoài ra có một số layerkhác như pooling/subsampling layer dùng để chắt lọc lại các thông tin hữu ích hơn(loại bỏ các thông tin nhiễu) Trong quá trình training mạng CNN tự động học các

giá trị qua các lớp filter dựa vào cách thức mà bạn thực hiện Ví dụ trong tác vụ phân

lớp ảnh, CNNs sẽ có gắng tìm ra thông số tối ưu cho các filter tương ứng theo thứ tựTaw pixel > edges > shapes > facial > high-level features Layer cuối cùng được ding

để phân lớp ảnh

Feature maps

Trang 31

Trong mô hình CNN có 2 khía cạnh cần quan tâm là tính bat biến (LocationInvariance) và tính kết hợp (Compositionality) Với cùng một đối tượng, nếu đốitượng nay được chiếu theo các góc độ khác nhau (translation, rotation, scaling) thì độchính xác của thuật toán sẽ bị ảnh hưởng đáng ké Pooling layer sẽ cho bạn tính batbiến đối với phép dịch chuyền (translation), phép quay (rotation) và phép co giãn(scaling) Tính kết hợp cục bộ cho ta các cấp độ biểu diễn thông tin từ mức độ thấpđến mức độ cao và trừu tượng hơn thông qua convolution từ các filter Đó là lý đo tạisao CNNs cho ra mô hình với độ chính xác rất cao Cũng giống như cách con ngườinhận biết các vật thể trong tự nhiên.

Số các convolution layer: càng nhiều các convolution layer thì

performance càng được cải thiện Sau khoảng 3 hoặc 4 layer, các tác

động bị giảm một cách đáng kể

Filter size: thường filter theo size 5x5 hoặc 3x3

Pooling size: thường là 2x2 hoặc 4x4 cho ảnh đầu vào lớnCách cuối cùng là thực hiện nhiều lần việc train test để chọn ra đượcparam tốt nhất

Deep learning

Việc các mạng CNN ngày càng phát triển đã giúp các bai toán xử lý ảnh đạtđược kết quả mong muốn Tuy nhiên việc con người phải tiếp cận tiền xử lý và sau

đó các mang CNN xuất ra kết qua đã khiến việc hoạt động của CNN trở nên bat tiện

Vi thé Deep learning ra đời giải quyết van đề nay

Trang 32

Khác với machine learning, deep learning là kiến trúc có khả năng tự học, tựtách các đặc trưng từ các anh input, không can sự can thiệp từ con người Ngoài ra,mọi dữ liệu đầu vào đều quan trọng đối với machine learning, với deep learning, trongkhi tác đặc trưng kiến trúc có thé bỏ qua các đặc trưng không cần thiết (nhiễu, nền,

Ví dụ: Trước kia với mỗi ảnh đầu vào, phải xử lý dé tim ra 68 landmarks sau

đó xử ly SVM dé tiến hành phân loại ảnh Với deep learning, chỉ cần phân vùng các

dữ liệu va đưa vào kiến trúc đã được xây dựng, các đặc trưng ảnh sẽ được tự độngtìm và sau đo tiến hành phân loại SVM dựa trên các embedding chứa các đặc trưng

này.

Mặc dù vay, deep learning có những bat cập là cần một lượng lớn dữ liệu đầuvào khổng lồ và cần phải huấn luyện model nhiều lần để đạt kết quả tốt nhất Với mỗi

lần dữ liệu được thông qua các mạng DCNN hệ thống sẽ tự động tính toán các tham

số thích hợp cho từng kernel và cập nhập lại hệ thống Việc xoay vòng dữ liệu sẽ hao

tốn một thời gian dài dé model hoàn thiện

Chính vì thế mà Deep learning trở thành nền tảng dé phát triển các DCNN táchđặc trưng ảnh về sau này

2.3.6 RetinaFace [3]

RetinaFace là một phương pháp nhận diện và phân loại khuôn mặt mà được

thực hiện trong cùng một stage (single-stage design) Retine có thể thực hiện đa tác

vụ khác nhau cùng lúc và xuất ra đồng thời về kết quả phân loại, box chứa khuônmặt, năm điểm landmarks và mô hình 3D với mỗi khuôn mặt nhận vào

Phương pháp bottom-up pathway sẽ tạo ra các lớp ảnh bao gồm ảnh độ phân giải

thấp, độ phân giải cao, đặc trưng ảnh thấp và đặc trưng ảnh cao Mỗi lớp ảnh sẽ được

xử lý từ bottom-up sẽ thông qua lớp convolution 1x1 để giảm chiều dữ liệu và sau

đó được gộp chung với các lớp ảnh phía top-down pathway để thực hiện viêc chuẩn

đoán.

Trang 33

Retina thực hiện nhiều phương thức xử lý pyramid và các tác vụ chạy songsong nên sẽ cho ra kết quả với độ chính xác cao hơn khi nhận diện khuôn mặt Tuynhiên việc các tác vụ cần phải xử lý đồng thời và mô phỏng các đặc trưng theo môhình 3D đã khiến cho tốc độ xử lý của Retina bị giảm đáng kể.

Self-supe

Hình 2-7 Mô tả các tác vu extra-supervision va self-supervision hoạt động song song

với việc xử lý bounding box và phân loại ảnh Và cho ra bốn output tương ứng: phânloại ảnh, box chứa khuôn mặt, năm điểm landmarks và mô hình 3D trên cùng một

Trang 34

MTCNNI2] là viết tắt của Multi-task Cascaded Convolutional Networks Nó

là bao gồm 3 mạng CNN xếp chồng và đồng thời hoạt động khi detect khuôn mặt

Mỗi mạng có cấu trúc khác nhau và đảm nhiệm vai trò khác nhau trong task Đầu ra

của MTCNN [2] là vị trí khuôn mặt và các điểm trên mặt như: mắt, mũi, miệng

Joint Face Detection and Alignment using Multi-task Cascaded Convolutional Networks

Hình 2-10 Mô hình tông quan về 3 lớp xử lý p-net, r-net -o net của MTCNN [2]

Trang 35

MTCNN hoạt động theo 3 bước, mỗi bước cĩ một mạng neural riêng lần lượt

là: P-Net, R-Net và O-net.

Với mỗi bức ảnh đầu vào, nĩ sẽ tạo ra nhiều bản sao của hình ảnh đĩ với các

kích thước khác nhau (phương pháp pyramid image).

Tại P-Net, thuật tốn sử dụng 1 kernel 12x12 chạy qua mỗi bức hình để tìmkiếm khuơn mặt

Sau lớp convolution thứ 3, mạng chia thành 2 lớp Convolution 4-1 đưa ra xác

suất của một khuơn mặt nằm trong mỗi bounding boxes, và Convolution 4-2 cungcấp tọa độ của các bounding boxes

Feed (Input layer)

Cònvolution.kayer 1

PReLu Layer 1

Maxpool layer Convolution Layer 2

PReLu Layer 2

PReLu Layer 3

Convolution 4-1 Convolution 4-2

Hình 2-11 Sơ đồ CNN của P-net

R-Net cĩ cấu trúc tương tự với P-Net Tuy nhiên sử dụng nhiều layer hơn Tạiđây, network sẽ sử dụng các bounding boxes đc cung cấp từ P-Net và tỉnh chỉnh là

tọa độ.

Trang 36

Feed (Input layer)

Feed (Input layer)

PReLu Layer 1

Maxpool layer

Maxpool layer

PReLu Layer 2 PReLu Layer 2

Maxpool layer Maxpool layer

Hình 2-12 So đồ CNN của R-net va O-Net

Tương tự R-Net chia ra làm 2 layers ở bước cuối,cung cấp 2 đầu ra đó là tọa

độ mới của các bounding boxes, cùng độ tin tưởng của nó.

O-Net lấy các bounding boxes từ R-Net làm đầu vào và đánh dau các tọa độcủa các mốc trên khuôn mặt

Ở bước này, thuật toán đưa ra 3 kết quả đầu ra khác nhau bao gồm: xác suấtcủa khuôn mặt nằm trong bounding box, tọa độ của bounding box và tọa độ của cácmốc trên khuôn mặt (vị trí mat, mũi, miệng)

Fully Connected Layer

PReLu Layer 5

Fully connected 3

Hình 2-13 Sơ đồ CNN của O-net

Trang 37

2.4 Các mô hình được thử nghiệm

Sau quá trình tìm hiểu các mô hình nhận diện khuôn mặt phù hợp với phancứng đề ra Nhóm xin trình bày thuật toán của các mô hình nhận diện khuôn mặt vàkiến trúc CNN của từng mô hình

Convolutional Neural Network đã được loại bỏ output layer có tác dụng encode ảnh

thành các vector 128 giá trị đặc trưng

Trang 38

Bảng 2-1: Sơ đồ kiến trúc CNN của Facenet

Layer Zize-in Zize-out Kernel Param FLPS

Trang 39

Mục tiêu của Triplet loss là day khoảng cách giữa 2 vector khác lớp ra xa nhau

và kéo 2 vector cùng định danh lại với nhau.

Độ chính xác của Facenet [4] đạt 99,63% trên lfw [10], sử dụng kiến trúcInception-Inspied và hơn 250,000,000 anh đề train, tuy nhiên kiến trúc quá lớn khôngthể áp dụng vào realtime Lượng data cũng quá lớn nên model này không còn phù

hợp.

2.4.2 MobileFaceNets [9]:

Kiến trúc của MobileFacenet [9] được phát triển dựa theo kiến trúc

MobileNetV2[8].

Nhung khac biét 6 ché MobileFacenet [9] str dụng các lớp bottleneck làm các

khối chính và sử dụng PreLu cho dữ liệu phi tuyến tính sẽ phù hợp với việc nhận diệnkhuôn mặt tốt hơn ReLU Các lớp Bottleneck hỗ trợ giảm chiều dữ liệu và

MobileFacenet còn sử dụng lớp Global Depth-wise Convolution thay cho Global

Average Pooling giúp tăng độ chính xác và giảm chi phí tính toán.

MobileFacenet [9] cơ bản sử dụng 0.99 triệu tham số với ảnh input 112 x 112

Dé giảm việc tính toán đi, có thé giảm kích thước ảnh xuống thành 112 x 96 hoặc 96

x 96 Một phiên bản khác là MobileFaceNet-M ra đời dé giảm thời gian tính toánxuống bằng cách loại bỏ đi lớp convolution 1x1 cuối cùng của MobileFaceNet

Ngày đăng: 02/10/2024, 04:31

TRÍCH ĐOẠN

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN