Báo cáo - Đồ án kỹ thuật máy tính - Công nghệ Website | Đại học Bách Khoa, Đại học Đà Nẵng

Báo cáo - Đồ án kỹ thuật máy tính - Công nghệ Website | Đại học Bách Khoa, Đại học Đà Nẵng giúp sinh viên tham khảo, ôn luyện và phục vụ nhu cầu học tập của mình cụ thể là có định hướng, ôn tập, nắm vững kiến thức môn học và làm bài tốt trong những bài kiểm tra, bài tiểu luận, bài tập kết thúc học phần, từ đó học tập tốt và có kết quả cao cũng như có thể vận dụng tốt những kiến thức mình đã học

TRƯỜNG ĐẠI HỌC BÁCH
KHOA KHOA CÔNG NGHỆ
THÔNG TIN
BÁO CÁO
PBL5 - ĐỒ ÁN KỸ THUẬT MÁY TÍNH
HỆ THỐNG ĐIỂM DANH LỚP HỌC DÙNG NHẬN DIỆN
GƯƠNG MẶT
Cán bộ doanh nghiệp hướng dẫn: Trần Phương Nam – B.A.P
Giảng viên đồng hướng dẫn: TS. Ninh Khánh Duy
STT NHÓM: 24
HỌ VÀ TÊN SINH VIÊN
LỚP HỌC PHẦN ĐỒ ÁN
CHÂU TRƯỜNG LONG 18N14B
TRẦN CHÍ MINH 18N14B
LÊ ANH TUẤN 18N14B
HỒ NGUYÊN VŨ 18N14B
ĐÀ NẴNG, 06/2021
TÓM TẮT ĐỒ ÁN
Hiện nay, với tốc độ phát triển nhanh chống của công nghệ thông tin được
ứng dụng rộng rãi trong nhiều lĩnh vực của hội. Trong đó hệ thống tự động hóa
một phần không thể thiếu.
Ở các trưởng học hiện nay, việc điểm danh trước mỗi giờ học không còn xa lạ.
Nhưng nó diễn ra một các thủ công, vì là thủ công nên mất khá nhiều thời gian 10 -15
phút cho việc điểm danh. Nắm bắt được yếu điểm đó nên ý tưởng cho việc điểm danh
tự động rất cần thiết.
Để xây dựng được hệ thống đó chúng ta cần các thành phần riêng biệt để xử
từng công việc một. Như camera cho việc ghi hình, server cho việc xử điểm danh,
sở dữ liệu cho việc lưu trữ một mobile app giao diện hoàn chỉnh để giáo viên
hoặc giảng viên có thể quản lý được.
Từ các hệ thống con đó, yêu cầu truyền thông kết nối giữa chúng củng một
vấn đề nan giải các hệ thống con này hoạt động nên các nền tảng riêng biệt. Do đó
giải pháp ở đây là sẽ cung cấp các API (giao diện lập trình ứng dụng) cho các hệ thống
con có thể kết nối với nhau.
Cuối cùng xin chân thành cảm ơn thầy TS. Ninh Khánh Duy anh Trần
Phương Nam Công ty B.A.P đã nhiệt tình hướng dẫn, gợi ý những giải pháp tuyệt
vời để chúng em có thể hoàn thành được dự án này.
BẢNG PHÂN CÔNG NHIỆM V
Sinh viên thực hiện Các nhiệm v Kết quả
Châu Trường Long
-Face Detection – Haarcascade , MTCNN
-Face Encoder – Facenet
-Face Identifier – SVM, KNN, FAISS
-Backend API – Django
-Raspberry Server – Camera
-Data Agumentation
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
Trần Chí Minh
-Mockup GUI
-Mobile App
-API Connection
-SRS Document
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
Lê Anh Tuấn
-Crawl Data
-Mockup GUI
-Mobile App
-API Connection
-Sequence Diagram
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
Hồ Nguyên Vũ
-Database – MySQL (Using)
-Database – MongoDB – NoSQL (Tested)
-API – Django
-Usecase Diagram
-API document
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
Đã hoàn thành
MỤC LỤC
1. GIỚI THIỆU........................................................................................................6
2. GIẢI PHÁP..........................................................................................................6
2.1. TỔNG QUAN HỆ THỐNG....................................................................................6
2.2. GIẢI PHÁP PHẦN CỨNG.....................................................................................7
2.3. GIẢI PHÁP TRUYỀN THÔNG..............................................................................8
2.3.1. Kết nối có dây............................................................................................8
2.3.2. RESTful API...............................................................................................8
2.4. GIẢI PHÁP PHẦN MỀM......................................................................................9
2.4.1. Tổng quan về hệ thống nhận diện...............................................................9
2.4.2. Face encoder..............................................................................................9
2.4.3. Face detector............................................................................................12
2.4.4. Face identifier..........................................................................................12
2.4.5. Database..................................................................................................13
2.4.6. Raspberry.................................................................................................13
2.4.7. Server.......................................................................................................14
2.4.8. Mobile......................................................................................................17
3. KẾT QU...........................................................................................................27
3.1. KẾT QUẢ NHẬN DIỆN......................................................................................27
3.2. KẾT QUẢ API................................................................................................28
3.3. KẾT QUẢ MOBILE...........................................................................................29
4. KẾT LUẬN.........................................................................................................33
5. TÀI LIỆU THAM KHẢO.................................................................................33
MỤC LỤC HÌNH ẢNH
Hình 1. Tổng quan hệ thống...........................................................................................6
Hình 2. Raspberry pi 3...................................................................................................7
Hình 3. Camera..............................................................................................................7
Hình 4. Hệ thống nhận diện...........................................................................................9
Hình 5. Facenet layers [11]..........................................................................................10
Hình 6. Siam network..................................................................................................11
Hình 7. Triple loss........................................................................................................11
Hình 8. Face detection.................................................................................................12
Hình 9. Database diagram............................................................................................13
Hình 10. Mouckup.......................................................................................................18
Hình 11. Mô hình MVVM [10]....................................................................................18
Hình 12. Sơ đồ thành phần [10]...................................................................................19
Hình 13. Cấu trúc thư mục...........................................................................................20
Hình 14. Usecase.........................................................................................................22
Hình 15. Đăng ký sequence.........................................................................................23
Hình 16. Đăng nhập sequence......................................................................................23
Hình 17. Điểm danh sequence.....................................................................................24
Hình 18. Quản lý học sinh sequence............................................................................25
Hình 19. Xem lịc sử sequence......................................................................................26
Hình 20. Lấy lại mật khẩu sequence............................................................................26
Hình 21. 512 chiều.......................................................................................................28
Hình 22. 128 chiều.......................................................................................................28
Hình 23. Login.............................................................................................................30
Hình 24. Màn hình chính.............................................................................................31
Hình 25. Điểm danh.....................................................................................................31
Hình 26. Thống kê kết quả điểm danh.........................................................................32
Hình 27. Giao diện khác..............................................................................................33
1. Giới thiệu
Hiện nay rất nhiều loại hệ thống chấm công điểm danh tự động khác nhau
như: vân tay, thẻ từ, đặc biệt trong đó hệ thống nhận diện gương mặt sử dụng các
mô hình deep learning.
Các hệ thống này thường được đặt trước cửa ra vào, cự ly gần. Do đó dự án này sẽ
phát triển hệ thống chấm công dùng nhận diện gương mặt cung cấp các giải pháp
nghiệp vụ để quản lý thông qua mobile app.
2. Giải pháp
2.1. T ng quan hệ th ng
Hình 1. Tổng quan hệ thống
- Để giải quyết bài toán phức tạp: Từ một hệ thống lớn phức tạp, sẽ đi chia hệ thống
đó thành các hệ thống con nhỏ hơn, đơn giản hơn mỗi hệ thống đó sẽ đảm nhận
một phần công việc khác nhau.
- Như ở sơ đồ trên có thể thấy nó gồm 4 hệ thống con:
Raspberry server
Main server
Mobile app
Database
2.2. Gi i pháp ph n c ng
Tên linh kiện Hình ảnh Mô t
Raspberry Pi 3
Hình 2. Raspberry pi 3
-Raspberry Pi có các thành phần
chính như:
1. CPU ARM Cortex-A53
Quadcore 1.2GHz
2. GPU
3. RAM 1GB
4. Khe cắm thẻ microSD
5. Wifi 802.11n
6. Bluetooth 4.1
7. 4 cổng USB
-Hệ điều hành: Raspbian 64 bit
Camera
Hình 3. Camera
-Camera xiami
-Độ phân giải: 1080P
-Kết nối: USB, Wifi
2.3. Gi i pháp truy n thông
2.3.1. Kết nối có dây
- Camera kết nối với raspberry thông qua cổng dây USB
- Raspberry kết nối với server thông dây enthernet
2.3.2. RESTful API
API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo
đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần
khác. API thể trả về dữ liệu bạn cần cho ứng dụng của mình những kiểu dữ
liệu phổ biến như JSON hay XML [8].
REST (REpresentational State Transfer) một dạng chuyển đổi cấu trúc dữ liệu,
một kiểu kiến trúc để viết API. sử dụng phương thức HTTP đơn giản để tạo cho
giao tiếp giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xửmột số thông
tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một
URL để xử lý dữ liệu [8].
RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng
web để quản các resource. RESTful một trong những kiểu thiết kế API được sử
dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với
nhau [8].
REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên
sẽ sử dụng những phương thức HTTP riêng [8]:
GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
POST (CREATE): Tạo mới một Resource.
PUT (UPDATE): Cập nhật thông tin cho Resource.
DELETE (DELETE): Xoá một Resource.
2.4. Gi i pháp ph n m m
2.4.1. Tổng quan về hệ thống nhận diện
Hình 4. Hệ thống nhận diện
2.4.2. Face encoder
- Face encoder: là một module trong hệ thống được dùng để trích xuất đặc trưng
của một gương mặt có trong bức ảnh.
- Sử dụng model facenet để đi trích xuất đặc trưng. Facenet gồm có hai thành
phần chính đó là siam network và triple loss function
- Layers của Facenet [11]:
𝟐
- Siam network:
Hình 5. Facenet layers [11]
Siam network [9] với tên đầy đủ Siamese Neural Network, dựa trên một
mạng nơron tích chập (CNN) đã lược bỏ đi output layer. Kiến trúc mạng này
sinh ra với mục đích giải quyết bài toán liệu từ hai bức ảnh chứa mặt người
chụp trong hoàn cảnh khác nhau thì có phải cùng một người không.
Siam network được ứng dụng cho các bài toán thực tế như: điểm danh,
chấm công, hay mở chức năng mở khóa điện thoại bằng gương mặt,
Siam network được giới thiệu lần đầu trong bài báo [1] “DeepFace: Closing
the Gap to Human-Level - Yaniv Taigman. elt.”
Input của mạng Siam hai bức ảnh bất kì, Output hai vector đặc trưng
của bức ảnh. vector đặc trưng biểu diễn dạng số học nên thể sử
dụng chúng để kiểm tra xem độ tương đồng giữa các bức ảnh bằng cách đưa
vào một loss function. Hàm loss thường được dùng là một norm bậc 2.
Công thức Norm bậc 2 có dạng: ||𝒇 𝒙
(
𝟏
)
𝒇(𝒙
𝟐
)||
𝟐
Hình 6. Siam network
- Triple loss function [9]:
Triple loss sử dụng một khái niệm gọi anchor. Cụ thể trong hệ thống này
sẽ anchor image. Anchor image này sẽ các bức ảnh gốc của sinh viên
như ảnh thẻ 3x4, nói chúng bức ảnh này là cố định.
Như tên của loss function này triple n sẽ cần đến 3 bức ảnh: một
anchor, hai là positive và ba là negative.
Hình 7. Triple loss
Mục tiêu tối thiểu hóa khoảng cách giữa 2 ảnh khi chúng negative
tối đa hóa khoảng cách khi chúng là positive. Thật ra có thể hiểu đơn giản là
triple loss có thể kết hợp từ hai norm loss function. Do đó công thức là:
𝑛
ℒ(𝐀, 𝐏, 𝐍) = ∑ max (||𝑓(𝐀 ) 𝑓(𝐏 ||𝑓(𝐀 ) 𝑓(𝐍 + 𝛼, 0)
𝑖 𝑖
)||
2
𝑖 𝐢
)||
2
2 2
𝑖=0
Do đó khi đưa lần lượt bộ ba hình ảnh vào train model thì model sẽ học
được cả trường hợp sai lẫn đúng.
2.4.3. Face detector
- Face detection một module trong hệ thống dùng để xác định các gương mặt
có trong bức ảnh và đánh dấu bằng bounding box.
- Sử dụng hai model chính đó là Haarcascade và MTCNN.
Hình 8. Face detection
2.4.4. Face identifier
- Face identifier là một module trong hệ thống dùng để nhận dạng một gương mặt
đó là ai hay thuộc về một nhãn nào đó, sau khi đã trích xuất được đặc trưng của
gương mặt thành vector 128 chiều hoặc 512 chiều.
- Sử dụng ba classifier model SVM, KNN FAISS (Facebook AI Similarity
Search)
- SVM [12] một thuật toán giám sát, thể sử dụng cho cviệc phân loại
hoặc đệ quy. Tuy nhiên được sử dụng chủ yếu cho việc phân loại. Trong
thuật toán này, chúng ta vẽ đồi thị dữ liệu là các điểm trong n chiều ( ở đây n
số lượng các tính năng bạn có) với giá trị của mỗi tính năng sẽ là một phần liên
kết. Sau đó chúng ta thực hiện tìm "đường bay" (hyper-plane) phân chia các
lớp. Hyper-plane chỉ hiểu đơn giản 1 đường thẳng có thể phân chia các
lớp ra thành hai phần riêng biệt.
Support Vectors hiểu một cách đơn giản là các đối tượng trên đồ thị tọa độ quan
sát, Support Vector Machine là một biên giới để chia hai lớp tốt nhất.
- KNN (K-Nearest Neighbors) [13] một trong những thuật toán học giám
sát đơn giản nhất được sử dụng nhiều trong khai phá dữ liệu học máy. Ý
tưởng của thuật toán này không học một điều từ tập dữ liệu học (nên
KNN được xếp vào loại lazy learning), mọi tính toán được thực hiện khi nó cần
dự đoán nhãn của dữ liệu mới.
Lớp (nhãn) của một đố
i tượng dữ liệu mới thể dự đoán từ các lớp (nhãn) của k hàng xóm gần
nhất.
- Facebook AI Similarity Search (FAISS) [14] một thư viện sử dụng
similiarity search cùng với clustering các vector. Faiss được nghiên cứu và phát
triển bởi đội ngũ Facebook AI Research; được viết trong C++ đóng gói trên
môi trường Python. Bộ thư viện bao gồm các thuật toán tìm kiếm vector đa
chiều trong similarity search
2.4.5. Database
- Database sử dụng là dạng truy vấn có cấu trúc SQL, trên nền tảng MySQL.
Hình 9. Database diagram
2.4.6. Raspberry
- Raspberry là thành phần phần cứng kết nối trực tiếp với camera. Để có thể điều
khiển được camera thì raspberry bắt buộc phải có một module server chạy trong
nhằm cung cấp các API cho các thành phần khác trong hệ thống thể kết
nối đến.
- Xây dựng API cho raspberry sẽ sử dụng django framework, restful API.
http://host:port/raspberry/camera/open/<int:id>/
Method: GET
Parameters: <int:id> “id của camera”
Function: Mở camera sẵn sàng cho việc ghi hình
http://host:port/raspberry/camera/capture/
Method: GET
Parameters: None
Function: Đọc frame từ camera
http://host:port/raspberry/camera/close/
Method: GET
Parameters: None
Function: Tắt camera
2.4.7. Server
- Server thành phần chính cực kỳ quan trọng trong hệ thống. sẽ cũng cấp
các API chính cho toàn bộ hệ thống, các API này sẽ được gọi phía client
mobile app.
- Xây dựng API cho server sẽ sử dụng django framework, restful API. Các API
chia theo các chức năng của cùng một đối tượng.
Account (5 APIs)
http://host:port/account/login/
Method: POST
Parameters: None
Function: Đăng nhập
http://host:port/account/password/update/
Method: PUT
Parameters: None
Function: Đổi mật khẩu
http://host:port/account/password/reset/<str:email>/
Method: GET
Parameters: <str:email> “email”
Function: Gửi yêu cầu reset mật khẩu
http://host:port/account/password/reset/<str:email_b64>/<str:toke
n>/
Method: GET, POST
Parameters:
<str:email_b64>
“email
hóa
base
64”,
<str:token> “chuỗi ngẫu nhiên”
| 1/34

Preview text:

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO
PBL5 - ĐỒ ÁN KỸ THUẬT MÁY TÍNH
HỆ THỐNG ĐIỂM DANH LỚP HỌC DÙNG NHẬN DIỆN GƯƠNG MẶT
Cán bộ doanh nghiệp hướng dẫn: Trần Phương Nam – B.A.P
Giảng viên đồng hướng dẫn: TS. Ninh Khánh Duy STT NHÓM: 24
LỚP HỌC PHẦN ĐỒ ÁN
HỌ VÀ TÊN SINH VIÊN CHÂU TRƯỜNG LONG 18N14B TRẦN CHÍ MINH 18N14B LÊ ANH TUẤN 18N14B HỒ NGUYÊN VŨ 18N14B ĐÀ NẴNG, 06/2021 TÓM TẮT ĐỒ ÁN
Hiện nay, với tốc độ phát triển nhanh chống của công nghệ thông tin và được
ứng dụng rộng rãi trong nhiều lĩnh vực của xã hội. Trong đó hệ thống tự động hóa là
một phần không thể thiếu.
Ở các trưởng học hiện nay, việc điểm danh trước mỗi giờ học không còn xa lạ.
Nhưng nó diễn ra một các thủ công, vì là thủ công nên mất khá nhiều thời gian 10 -15
phút cho việc điểm danh. Nắm bắt được yếu điểm đó nên ý tưởng cho việc điểm danh
tự động rất cần thiết.
Để xây dựng được hệ thống đó chúng ta cần các thành phần riêng biệt để xử lý
từng công việc một. Như camera cho việc ghi hình, server cho việc xử lý điểm danh,
cơ sở dữ liệu cho việc lưu trữ và một mobile app giao diện hoàn chỉnh để giáo viên
hoặc giảng viên có thể quản lý được.
Từ các hệ thống con đó, yêu cầu truyền thông kết nối giữa chúng củng là một
vấn đề nan giải vì các hệ thống con này hoạt động nên các nền tảng riêng biệt. Do đó
giải pháp ở đây là sẽ cung cấp các API (giao diện lập trình ứng dụng) cho các hệ thống
con có thể kết nối với nhau.
Cuối cùng xin chân thành cảm ơn thầy TS. Ninh Khánh Duy và anh Trần
Phương Nam – Công ty B.A.P đã nhiệt tình hướng dẫn, gợi ý những giải pháp tuyệt
vời để chúng em có thể hoàn thành được dự án này.
BẢNG PHÂN CÔNG NHIỆM VỤ
Sinh viên thực hiện Các nhiệm vụ Kết quả
-Face Detection – Haarcascade , MTCNN  Đã hoàn thành -Face Encoder – Facenet  Đã hoàn thành
-Face Identifier – SVM, KNN, FAISS  Đã hoàn thành Châu Trường Long -Backend API – Django  Đã hoàn thành -Raspberry Server – Camera  Đã hoàn thành -Data Agumentation  Đã hoàn thành -Mockup GUI  Đã hoàn thành -Mobile App  Đã hoàn thành Trần Chí Minh -API Connection  Đã hoàn thành -SRS Document  Đã hoàn thành -Crawl Data  Đã hoàn thành -Mockup GUI  Đã hoàn thành Lê Anh Tuấn -Mobile App  Đã hoàn thành -API Connection  Đã hoàn thành -Sequence Diagram  Đã hoàn thành -Database – MySQL (Using)  Đã hoàn thành
-Database – MongoDB – NoSQL (Tested)  Đã hoàn thành Hồ Nguyên Vũ -API – Django  Đã hoàn thành -Usecase Diagram  Đã hoàn thành -API document  Đã hoàn thành MỤC LỤC 1.
GIỚI THIỆU........................................................................................................6 2.
GIẢI PHÁP..........................................................................................................6 2.1.
TỔNG QUAN HỆ THỐNG............ ................... ................... ............... ...............6 2.2.
GIẢI PHÁP PHẦN CỨNG....... ........ ........... .......... ........ ........... ........ .......... ....7 2.3.
GIẢI PHÁP TRUYỀN THÔNG............ .................................................................8
2.3.1. Kết nối có dây............................................................................................8
2.3.2. RESTful API...............................................................................................8
2.4.
GIẢI PHÁP PHẦN MỀM. .................... ................ .................... ................ ........9
2.4.1. Tổng quan về hệ thống nhận diện...............................................................9
2.4.2. Face encoder..............................................................................................9
2.4.3. Face detector............................................................................................12
2.4.4. Face identifier..........................................................................................12
2.4.5. Database..................................................................................................13
2.4.6. Raspberry.................................................................................................13
2.4.7. Server.......................................................................................................14
2.4.8. Mobile......................................................................................................17
3.
KẾT QUẢ...........................................................................................................27 3.1.
KẾT QUẢ NHẬN DIỆN......................................................................................27 3.2.
KẾT QUẢ API................................................................................................28 3.3.
KẾT QUẢ MOBILE............ ................... .............. ................... ................... ...29 4.
KẾT LUẬN.........................................................................................................33 5.
TÀI LIỆU THAM KHẢO.................................................................................33 MỤC LỤC HÌNH ẢNH
Hình 1. Tổng quan hệ thống...........................................................................................6
Hình 2. Raspberry pi 3...................................................................................................7
Hình 3. Camera..............................................................................................................7
Hình 4. Hệ thống nhận diện...........................................................................................9
Hình 5. Facenet layers [11]..........................................................................................10
Hình 6. Siam network..................................................................................................11
Hình 7. Triple loss........................................................................................................11
Hình 8. Face detection.................................................................................................12
Hình 9. Database diagram............................................................................................13
Hình 10. Mouckup.......................................................................................................18
Hình 11. Mô hình MVVM [10]....................................................................................18
Hình 12. Sơ đồ thành phần [10]...................................................................................19
Hình 13. Cấu trúc thư mục...........................................................................................20
Hình 14. Usecase.........................................................................................................22
Hình 15. Đăng ký sequence.........................................................................................23
Hình 16. Đăng nhập sequence......................................................................................23
Hình 17. Điểm danh sequence.....................................................................................24
Hình 18. Quản lý học sinh sequence............................................................................25
Hình 19. Xem lịc sử sequence......................................................................................26
Hình 20. Lấy lại mật khẩu sequence............................................................................26
Hình 21. 512 chiều.......................................................................................................28
Hình 22. 128 chiều.......................................................................................................28
Hình 23. Login.............................................................................................................30
Hình 24. Màn hình chính.............................................................................................31
Hình 25. Điểm danh.....................................................................................................31
Hình 26. Thống kê kết quả điểm danh.........................................................................32
Hình 27. Giao diện khác..............................................................................................33 1. Giới thiệu
Hiện nay có rất nhiều loại hệ thống chấm công và điểm danh tự động khác nhau
như: vân tay, thẻ từ, đặc biệt trong đó là hệ thống nhận diện gương mặt sử dụng các mô hình deep learning.
Các hệ thống này thường được đặt trước cửa ra vào, cự ly gần. Do đó dự án này sẽ
phát triển hệ thống chấm công dùng nhận diện gương mặt và cung cấp các giải pháp
nghiệp vụ để quản lý thông qua mobile app. 2. Giải pháp 2.1. Tổ ng quan hệ thố ng
Hình 1. Tổng quan hệ thống
- Để giải quyết bài toán phức tạp: Từ một hệ thống lớn phức tạp, sẽ đi chia hệ thống
đó thành các hệ thống con nhỏ hơn, đơn giản hơn mỗi hệ thống đó sẽ đảm nhận
một phần công việc khác nhau.
- Như ở sơ đồ trên có thể thấy nó gồm 4 hệ thống con:  Raspberry server  Main server  Mobile app  Database 2.2. Giả i pháp phầ n cứ ng Tên linh kiện Hình ảnh Mô tả
-Raspberry Pi có các thành phần chính như: 1. CPU ARM Cortex-A53 Quadcore 1.2GHz 2. GPU Raspberry Pi 3 3. RAM 1GB 4. Khe cắm thẻ microSD 5. Wifi 802.11n Hình 2. Raspberry pi 3 6. Bluetooth 4.1 7. 4 cổng USB
-Hệ điều hành: Raspbian 64 bit -Camera xiami Camera -Độ phân giải: 1080P -Kết nối: USB, Wifi Hình 3. Camera 2.3. Giả i pháp truyề n thông 2.3.1. Kết nối có dây
- Camera kết nối với raspberry thông qua cổng dây USB
- Raspberry kết nối với server thông dây enthernet 2.3.2. RESTful API
API (Application Programming Interface) là một tập các quy tắc và cơ chế mà theo
đó, một ứng dụng hay một thành phần sẽ tương tác với một ứng dụng hay thành phần
khác. API có thể trả về dữ liệu mà bạn cần cho ứng dụng của mình ở những kiểu dữ
liệu phổ biến như JSON hay XML [8].
REST (REpresentational State Transfer) là một dạng chuyển đổi cấu trúc dữ liệu,
một kiểu kiến trúc để viết API. Nó sử dụng phương thức HTTP đơn giản để tạo cho
giao tiếp giữa các máy. Vì vậy, thay vì sử dụng một URL cho việc xử lý một số thông
tin người dùng, REST gửi một yêu cầu HTTP như GET, POST, DELETE, vv đến một
URL để xử lý dữ liệu [8].
RESTful API là một tiêu chuẩn dùng trong việc thiết kế các API cho các ứng dụng
web để quản lý các resource. RESTful là một trong những kiểu thiết kế API được sử
dụng phổ biến ngày nay để cho các ứng dụng (web, mobile…) khác nhau giao tiếp với nhau [8].
REST hoạt động chủ yếu dựa vào giao thức HTTP. Các hoạt động cơ bản nêu trên
sẽ sử dụng những phương thức HTTP riêng [8]:
 GET (SELECT): Trả về một Resource hoặc một danh sách Resource.
 POST (CREATE): Tạo mới một Resource.
 PUT (UPDATE): Cập nhật thông tin cho Resource.
 DELETE (DELETE): Xoá một Resource. 2.4. Giả i pháp phầ n mề m
2.4.1. Tổng quan về hệ thống nhận diện
Hình 4. Hệ thống nhận diện 2.4.2. Face encoder
- Face encoder: là một module trong hệ thống được dùng để trích xuất đặc trưng
của một gương mặt có trong bức ảnh.
- Sử dụng model facenet để đi trích xuất đặc trưng. Facenet gồm có hai thành
phần chính đó là siam network và triple loss function - Layers của Facenet [11]:
Hình 5. Facenet layers [11] - Siam network:
 Siam network [9] với tên đầy đủ là Siamese Neural Network, dựa trên một
mạng nơron tích chập (CNN) đã lược bỏ đi output layer. Kiến trúc mạng này
sinh ra với mục đích giải quyết bài toán liệu từ hai bức ảnh chứa mặt người
chụp trong hoàn cảnh khác nhau thì có phải cùng một người không.
 Siam network được ứng dụng cho các bài toán thực tế như: điểm danh,
chấm công, hay mở chức năng mở khóa điện thoại bằng gương mặt, …
Siam network được giới thiệu lần đầu trong bài báo [1] “DeepFace: Closing
the Gap to Human-Level - Yaniv Taigman. elt.”
 Input của mạng Siam là hai bức ảnh bất kì, Output là hai vector đặc trưng
của bức ảnh. Mà vector đặc trưng biểu diễn ở dạng số học nên có thể sử
dụng chúng để kiểm tra xem độ tương đồng giữa các bức ảnh bằng cách đưa
vào một loss function. Hàm loss thường được dùng là một norm bậc 2.
 Công thức Norm bậc 2 có dạng: ||𝒇(𝒙 ) 𝟏 − 𝒇(𝒙𝟐)||𝟐 𝟐 Hình 6. Siam network - Triple loss function [9]:
 Triple loss sử dụng một khái niệm gọi là anchor. Cụ thể trong hệ thống này
sẽ là anchor image. Anchor image này sẽ là các bức ảnh gốc của sinh viên
như ảnh thẻ 3x4, nói chúng bức ảnh này là cố định.
 Như tên của loss function này là triple nên sẽ cần đến 3 bức ảnh: một là
anchor, hai là positive và ba là negative. Hình 7. Triple loss
 Mục tiêu là tối thiểu hóa khoảng cách giữa 2 ảnh khi chúng là negative và
tối đa hóa khoảng cách khi chúng là positive. Thật ra có thể hiểu đơn giản là
triple loss có thể kết hợp từ hai norm loss function. Do đó công thức là: 𝑛
ℒ(𝐀, 𝐏, 𝐍) = ∑ max (||𝑓(𝐀𝑖) − 𝑓(𝐏𝑖)||2 − ||𝑓(𝐀𝑖) − 𝑓(𝐍𝐢)||2 + 𝛼, 0) 2 2 𝑖=0
 Do đó khi đưa lần lượt bộ ba hình ảnh vào train model thì model sẽ học
được cả trường hợp sai lẫn đúng. 2.4.3. Face detector
- Face detection là một module trong hệ thống dùng để xác định các gương mặt
có trong bức ảnh và đánh dấu bằng bounding box.
- Sử dụng hai model chính đó là Haarcascade và MTCNN. Hình 8. Face detection 2.4.4. Face identifier
- Face identifier là một module trong hệ thống dùng để nhận dạng một gương mặt
đó là ai hay thuộc về một nhãn nào đó, sau khi đã trích xuất được đặc trưng của
gương mặt thành vector 128 chiều hoặc 512 chiều.
- Sử dụng ba classifier model SVM, KNN và FAISS (Facebook AI Similarity Search)
- SVM [12] là một thuật toán giám sát, nó có thể sử dụng cho cả việc phân loại
hoặc đệ quy. Tuy nhiên nó được sử dụng chủ yếu cho việc phân loại. Trong
thuật toán này, chúng ta vẽ đồi thị dữ liệu là các điểm trong n chiều ( ở đây n là
số lượng các tính năng bạn có) với giá trị của mỗi tính năng sẽ là một phần liên
kết. Sau đó chúng ta thực hiện tìm "đường bay" (hyper-plane) phân chia các
lớp. Hyper-plane nó chỉ hiểu đơn giản là 1 đường thẳng có thể phân chia các
lớp ra thành hai phần riêng biệt.
Support Vectors hiểu một cách đơn giản là các đối tượng trên đồ thị tọa độ quan
sát, Support Vector Machine là một biên giới để chia hai lớp tốt nhất.
- KNN (K-Nearest Neighbors) [13] là một trong những thuật toán học có giám
sát đơn giản nhất được sử dụng nhiều trong khai phá dữ liệu và học máy. Ý
tưởng của thuật toán này là nó không học một điều gì từ tập dữ liệu học (nên
KNN được xếp vào loại lazy learning), mọi tính toán được thực hiện khi nó cần
dự đoán nhãn của dữ liệu mới.
Lớp (nhãn) của một đố
i tượng dữ liệu mới có thể dự đoán từ các lớp (nhãn) của k hàng xóm gần nó nhất.
- Facebook AI Similarity Search (FAISS) [14] là một thư viện sử dụng
similiarity search cùng với clustering các vector. Faiss được nghiên cứu và phát
triển bởi đội ngũ Facebook AI Research; được viết trong C++ và đóng gói trên
môi trường Python. Bộ thư viện bao gồm các thuật toán tìm kiếm vector đa
chiều trong similarity search 2.4.5. Database
- Database sử dụng là dạng truy vấn có cấu trúc SQL, trên nền tảng MySQL.
Hình 9. Database diagram 2.4.6. Raspberry
- Raspberry là thành phần phần cứng kết nối trực tiếp với camera. Để có thể điều
khiển được camera thì raspberry bắt buộc phải có một module server chạy trong
nó nhằm cung cấp các API cho các thành phần khác trong hệ thống có thể kết nối đến.
- Xây dựng API cho raspberry sẽ sử dụng django framework, restful API.  htt
p://host:port/raspberry/camera/open//  Method: GET
 Parameters: “id của camera”
 Function: Mở camera sẵn sàng cho việc ghi hình  htt
p://host:port/raspberry/camera/capture/  Method: GET  Parameters: None
 Function: Đọc frame từ camera  htt
p://host:port/raspberry/camera/close/  Method: GET  Parameters: None  Function: Tắt camera 2.4.7. Server
- Server là thành phần chính cực kỳ quan trọng trong hệ thống. Nó sẽ cũng cấp
các API chính cho toàn bộ hệ thống, các API này sẽ được gọi ở phía client là mobile app.
- Xây dựng API cho server sẽ sử dụng django framework, restful API. Các API
chia theo các chức năng của cùng một đối tượng. Account (5 APIs)  htt p://host:port/account/login/  Method: POST  Parameters: None  Function: Đăng nhập  htt
p://host:port/account/password/update/  Method: PUT  Parameters: None
 Function: Đổi mật khẩu  htt
p://host:port/account/password/reset//  Method: GET  Parameters: “email”
 Function: Gửi yêu cầu reset mật khẩu  htt
p://host:port/account/password/reset//n>/  Method: GET, POST
 Parameters: “email mã hóa base 64”, “chuỗi ngẫu nhiên”