Tải bản đầy đủ (.docx) (35 trang)

(TIỂU LUẬN) hệ THỐNG mở KHÓA cửa tự ĐỘNG sử DỤNG NHẬN DẠNG KHUÔN mặt 2

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.43 MB, 35 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO ĐỒ ÁN
PBL5 - KỸ THUẬT MÁY TÍNH

HỆ THỐNG MỞ KHĨA CỬA TỰ
ĐỘNG SỬ DỤNG NHẬN DẠNG
KHUÔN MẶT
GIẢNG VIÊN HƯỚNG DẪN: TS. Bùi Thị Thanh Thanh

STT NHÓM: 49
HỌ VÀ TÊN SINH VIÊN
Nguyễn Mạnh Đức
Ngô Lê Gia Hưng
Quách Minh Nhật

ĐÀ NẴNG, 06/2022


Báo cáo đồ án PBL5 - Kỹ thuật máy tính

TĨM TẮT ĐỒ ÁN
Với sự phát triển của công nghệ ngày nay, việc tự động hóa cho ngơi nhà là một
trong những vấn đề cấp thiết. Nhóm chúng em đề xuất và tiến hành xây dựng đồ án với
đề tài “Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt” để mang lại sự
thuận tiện trong việc ra vào ngơi nhà và tiết kiệm thời gian mở khóa thủ cơng. Nhóm
đã ứng dụng các cơng nghệ trí tuệ nhân tạo trong việc phân tích và xử lý hình ảnh, API
từ Django REST Framework trong việc giao tiếp giữa server và ứng dụng di động,
ESP8266, ESP32 Cam để chụp ảnh, xây dựng ứng dụng di động với React Native để
hiển thị camera thời gian thực, lịch sử các lần nhận diện và điều khiển đóng mở cửa.


Sau khi tiến hành và thực hiện đề tài, hệ thống đã sử dụng ổn và hiệu quả. Tuy nhiên,
vẫn còn một số thiếu sót. Trong thời gian đến, nhóm sẽ cố gắng hồn thiện sản phẩm
tốt nhất có thể.

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính

BẢNG PHÂN CƠNG NHIỆM VỤ
Sinh viên

Ngơ Lê Gia
Hưng

Qch Minh
Nhật

Nguyễn
Mạnh Đức


Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính

DANH MỤC HÌNH ẢNH
Hình 1: Sơ đồ tổng quan hệ thống
Hình 2: Sơ đồ hoạt động tổng quan

Hình 3: Mơ hình RESTful API
Hình 4: Sơ đồ hoạt động RESTful API
Hình 5: Django REST Framework
Hình 6: Sơ đồ hệ thống nhận diện khn mặt
Hình 7: Loss function
Hình 8: Norm 1 và norm 2 trong khơng gian hai chiều
Hình 9: Logo React Native
Hình 10: Biểu đồ Usecase
Hình 11: Cơ sở dữ liệu
Hình 12: Bộ dữ liệu
Hình 13: Ảnh được crop cụ thể của đối tượng
Hình 14: Vector các ảnh
Hình 15: Kết quả nhận diện khn mặt
Hình 16: Kết quả 50 lần test
Hình 17: Giao diện đăng nhập
Hình 18: Giao diện đăng ký
Hình 19: Giao diện màn hình chính
Hình 20: Giao diện xem camera và điều khiển cửa
Hình 21: Giao diện danh sách lịch sử các lần nhận diện
Hình 22: Giao diện chi tiết lịch sử nhận diện
Hình 23: Giao diện thơng tin người dùng

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính

MỤC LỤC

TĨM TẮT ĐỒ ÁN .................................................................................................................

BẢNG PHÂN CƠNG NHIỆM VỤ ........................................................................................
DANH MỤC HÌNH ẢNH ......................................................................................................
MỤC LỤC ..............................................................................................................................
CHƯƠNG 1: TỔNG QUAN ................................................................................................
1. Giới thiệu ..........................................................................................................................
1.1
Giới thiệu sản phẩm: .............................................................................
1.2

Mục tiêu: ...............................................................................................

1.3

Các vấn đề cần giải quyết .....................................................................

CHƯƠNG 2: GIẢI PHÁP ....................................................................................................
2. Các giải pháp ....................................................................................................................
2.1
Sơ đồ tổng quan của hệ thống ...............................................................
2.2

Sơ đồ hoạt động tổng quan ...................................................................

2.3

Linh kiện sử dụng .................................................................................

2.4

Giải pháp truyền thông .........................................................................


2.5

Giải pháp phát hiện và nhận diện khuôn mặt .......................................

2.5.1

Tổng quan về hệ thống nhận diện:............

2.5.2

Face Detector ............................................

2.5.3

Face Encoder ............................................

2.5.4

Face identifier ..........................................

2.6

Giải pháp ứng dụng di động ................................................................

2.6.1

Bài tốn ....................................................

2.6.2


Cơng nghệ sử dụng ..................................

2.6.3

Biểu đồ usecase hệ thống .........................

2.6.4

Server .......................................................

CHƯƠNG 3: KẾT QUẢ ....................................................................................................
3. Tổng quan kết quả đạt được ...........................................................................................
3.1
Kết quả thực tế ...................................................................................
3.1.1

Quá trình thực hiện và kết quả phân tích

3.1.2

Ứng dụng di động ....................................

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ...................................................
4. Kết luận và hướng phát triển ..........................................................................................
4.1
Đánh giá sản phẩm ..............................................................................
4.2

Hướng phát triển ................................................................................


LỜI CẢM ƠN .....................................................................................................................
Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng


Báo cáo đồ án PBL5 - Kỹ thuật máy tính
TÀI LIỆU THAM KHẢO................................................................................................. 27

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng


Báo cáo đồ án PBL5 - Kỹ thuật máy tính

CHƯƠNG 1: TỔNG QUAN
1.Giới thiệu
1.1 Giới thiệu sản phẩm:
Hiện nay, cùng với sự phát triển của xã hội, vấn đề an ninh bảo mật đang được yêu
cầu khắt khe tại mọi quốc gia trên thế giới. Các hệ thống xác định, nhận dạng khuôn mặt
trong việc bảo mật trong ngôi nhà đang sống và vô cùng cần thiết. Dựa vào nhu cầu ấy,
nhóm em phát triển sản phẩm đáp ứng nhu cầu bảo mật tin cậy cho việc mở khóa cửa tự
động bằng khuôn mặt. Giúp những người chủ ngôi nhà thuận tiện, tiết kiệm thời gian và
chi phí để có một sản phẩm giúp giải quyết những vấn đề về bảo mật.

1.2 Mục tiêu:
Xây dựng hệ thống nhận diện khuôn mặt thông qua việc thu thập dữ liệu từ ESP32
Cam. Mơ hình sẽ nhận diện khn mặt từ ESP32 Cam, so sánh với dữ liệu có sẵn để đưa
ra kết quả, từ kết quả thu được tiến hành mở khóa cửa.
1.3 Các vấn đề cần giải quyết
• Xử lý và lắp nối các thiết bị phần cứng.
• Xử lý ảnh từ Camera của ESP32 và dữ liệu trước đó.

• Kết nối và cài đặt ESP8266
• Xây dựng hệ thống phân tích và nhận diện khn mặt
• Lập trình và viết mã nguồn cho các chức năng
• Ghép nối các phần và chạy thử từ đó điều chỉnh mơ hình
Vấn đề

Phần cứng

Phát hiện khn mặt

Nhận diện khn mặt

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Ứng dụng

Server

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính

CHƯƠNG 2: GIẢI PHÁP
2.Các giải pháp
2.1 Sơ đồ tổng quan của hệ thống


Hình 1: Sơ đồ tổng quan hệ thống
Hệ thống bao gồm ESP8266 và ESP32 Cam dùng để chụp ảnh, thiết bị smart
phone dùng tương tác và hiển thị kết quả và Django REST Framework để thiết lập
Server. Thông qua mạng khơng dây, điện thoại và ESP32 Cam có thể giao tiếp với
Server bằng API. API này được lập trình dựa trên Django REST Framework.
2.2 Sơ đồ hoạt động tổng quan

Hình 2: Sơ đồ hoạt động tổng quan
Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính
2.3 Linh kiện sử dụng
Tên linh kiện

ESP8266

ESP32 Cam

Module
ULN2003

Module CP2102


Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính


1 x ESP8266
1 x ESP32 Cam
1 x Module ULN2003
1 x Mô hình cửa
1 x Module CP2102
1 x Nguồn

Bảng 3: Bảng kê chi phí đồ án
2.4 Giải pháp truyền thơng
• Restful API:
RESTful API là một tiêu chuẩn dùng trong việc thiết kế API cho các ứng dụng web
(thiết kế Web services) để tiện cho việc quản lý các resource. Nó chú trọng vào tài nguyên
hệ thống (tệp văn bản, ảnh, âm thanh, video, hoặc dữ liệu động…), bao gồm các trạng thái
tài nguyên được định dạng và được truyền tải qua HTTP.

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính
Hình 3: Mơ hình RESTful API
• Các thành phần của 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.
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,… đến một URL
để xử lý dữ liệu.

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.

Chức năng quan trọng nhất của REST là quy định cách sử dụng các HTTP
method (như GET, POST, PUT, DELETE…) và cách định dạng các URL cho ứng dụng
web để quản các resource. RESTful không quy định logic code ứng dụng và không giới
hạn bởi ngôn ngữ lập trình ứng dụng, bất kỳ ngơn ngữ hoặc framework nào cũng có thể
sử dụng để thiết kế một RESTful API.
• Phương thức RESTful hoạt động:

Hình 4: Sơ đồ hoạt động RESTful API
Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính
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.






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): Xố một Resource

Những phương thức hay hoạt động này thường được gọi là CRUD tương ứng với

Create, Read, Update, Delete – Tạo, Đọc, Sửa, Xóa.


Giới thiệu về Django REST Framework:

Hình 5: Django REST Framework
Django REST Framework là một framework được cài vào Django, có đầy đủ
chức năng, đủ sức mạnh để tạo ra các Web APIs mạnh mẽ nhằm làm cầu nối cho các hệ
thống khác nhau như giữa các client với server. Client ở đây là web, mobile, tablet,…
server ở đây là Django, database MySQL,…
Django REST Framework hỗ trợ giao thức truyền tải dữ liệu HTTP thông qua
các phương thức như Post, Get, Put, Delete.

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính
2.5 Giải pháp phát hiện và nhận diện khuôn mặt
2.5.1 Tổng quan về hệ thống nhận diện:

Hình 6: Sơ đồ hệ thống nhận diện khuôn mặt
2.5.2 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 model chính đó là MTCNN.
MTCNN 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.
MTCNN có 3 lớp mạng khác biệt, tượng trưng cho 3 stage chính là P-Net, R-Net
Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt



Báo cáo đồ án PBL5 - Kỹ thuật máy tính
và O-Net. Đầu vào của MTCNN là 1 bức ảnh một người hoặc một tập thể. Đầu ra của
MTCNN là vị trí khn mặt và các điểm trên mặt như: mắt, mũi, miệng…
2.5.3 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.
SIAM NETWORK: Là kiến trúc mạng mà khi bạn đưa vào mơ hình 2 bức ảnh,
sau đó mơ hình sẽ trả lời câu hỏi: 2 bức hình đó có thuộc về cùng một người hay khơng?
Thay vì dự đốn trực tiếp bức ảnh đó là thuộc về ai, thì sẽ nhận vào 2 bức ảnh và nói
xem nó có cùng một loại hay khơng?
Ví dụ: muốn phân loại người A với một bức ảnh, ta chỉ cần đưa bức ảnh của
người A đó cùng với bức ảnh chụp được cần phân loại, khi 2 bức ảnh đi qua model thì sẽ
trả về kết quả xem chúng có cùng người hay khác loại với nhau.
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
LOSS FUNCTION: Với 2 vectơ tương ứng với biểu diễn của 2 ảnh input, ta đưa
vào hàm loss function để đo lường sự khác biệt giữa chúng. Thông thường hàm loss
function là một hàm chuẩn bậc 2.

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính
Hình 7: Loss function
( 1, 2) = || ( 1) − ( 2)||22


- Khi x1, x2 là cùng 1 người:
|| ( 1) − ( 2)||22 Phải là một giá trị nhỏ.

- Khi x1, x2 là 2 người khác nhau:
|| ( 1) − ( 2)||22 Phải là một giá trị lớn.

TRIPLE LOSS: Ta chọn 3 bức ảnh trong đó sẽ có 1 bức ảnh làm chính (Anchor
Image), bên cạnh đó sẽ có 1 bức ảnh giống (Positive) và một bức ảnh khác (Negative)
với bức ảnh Anchor. Kí hiệu lần lượt là A,P,N.
Hàm loss function 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. Như vậy chúng ta cần lựa chọn các bộ 3
ảnh sao cho:



Ảnh Anchor và Positive khác nhau nhất: cần lựa chọn để khoảng cách
d(A,P) lớn. Điều này cũng tương tự như bạn lựa chọn một ảnh của mình hồi nhỏ so với
hiện tại để thuật tốn học khó hơn. Nhưng nếu nhận biết được thì nó sẽ thông minh hơn.



Ảnh Anchor và Negative giống nhau nhất: cần lựa chọn để khoảng cách
d(A,N) nhỏ. Điều này tương tự như việc thuật toán phân biệt được ảnh của một người anh

em giống bạn với bạn.
Triplot loss function luôn lấy 3 bức ảnh làm input và trong mọi trường hợp ta kì
vọng:

( , ) < ( , ) (1)


Hàm loss function cũ:

|| ( ) − ( )||22 − || ( ) − ( )||22 ≤ 0

Mục tiêu giảm thiểu các trường hợp hợp mơ hình nhận diện sai ảnh Negative
thành Postive nhất có thể.Vậy để loại bỏ ảnh hưởng của các trường hợp nhận diện đúng
Negative và Positive lên hàm loss function. Ta sẽ điều chỉnh giá trị đóng góp của nó vào
hàm loss function về 0.

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính
( , , )=∑

=0

(|| ( ) − ( )||

2
2

2
2

− || ( ) − ( )||

+ , 0)


Khi áp dụng Triple loss ta có thể tạo ra các biểu diễn vectơ tốt nhất cho mỗi bức
ảnh, phân biệt các ảnh Negative rất giống ảnh Positive. Và ta luôn phải xác định (A,P)
thuộc cùng một người và N được chọn ngẫu nhiên từ người khác.
THUẬT TỐN FACENET: Facenet chính là một dạng siam network có tác
dụng biểu diễn các bức ảnh trong một không gian Euclide n chiều (thường là 128 hoặc
512) sao cho khoảng cách giữa các vector embedding càng nhỏ, mức độ tương đồng
giữa chúng càng lớn.
Các thuật toán nhận diện trước đây đều biểu diễn khuôn mặt bằng một vector
embedding thơng qua một layer bottle neck có tác dụng giảm chiều dữ liệu. Hạn chế của
các thuận toán trước đây là:



Số lượng chiều embedding tương đối lớn (thường >= 1000) và ảnh hưởng
tới tốc độ của thuật toán

❖ Hàm loss function chỉ đo lường khoảng cách giữa 2 bức ảnh

Facenet đã giải quyết cả 2 vấn đề trên bằng các hiệu chỉnh nhỏ nhưng mang lại
hiệu quả lớn:

❖ Base network áp dụng một mạng convolutional neural network và giảm
chiều dữ liệu xuống chỉ cịn 128 chiều. Do đó q trình suy diễn và dự báo nhanh hơn và
đồng thời độ chính xác vẫn được đảm bảo.



Sử dụng loss function là hàm triplot loss có khả năng học được đồng thời
sự giống nhau giữa 2 bức ảnh cùng nhóm và phân biệt các bức ảnh khơng cùng nhóm.
Do đó hiệu quả hơn rất nhiều so với các phương pháp trước đây.

2.5.4 Face identifier
Face identifier là một quá trình mà 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 khoảng cách Euclid để đo khoảng cách giữa các vector và cho ra nhãn,
xác định gương mặt.
KHƠNG GIAN EUCLIDE N-CHIỀU: Khơng gian vectơ (hay cịn gọi là khơng
gian tuyến tính) là một tập hợp của các đại lượng gọi là vector, một đại lượng có thể cộng

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính
và nhân bởi một số, được gọi là vô hướng.
Một không gian vector n-chiều với các khái niệm về khoảng cách và góc thỏa
mãn các quan hệ Euclide được gọi là không gian Euclide n-chiều
Sau này, Siam network dựa trên base network là một Convolutional neural
network đã được loại bỏ output layer có tác dụng encoding ảnh thành vector embedding.
CHUẨN NORM CỦA VECTOR:

❖ Khái niệm:

Trong không gian một chiều, việc đo khoảng cách giữa hai điểm đã rất quen thuộc:

lấy trị tuyệt đối của hiệu giữa hai giá trị đó.
Trong khơng gian hai chiều, tức mặt phẳng, chúng ta thường dùng khoảng cách
Euclid để đo khoảng cách giữa hai điểm. Khoảng cách này chính là cái chúng ta thường
nói bằng ngơn ngữ thông thường là đường chim bay.
Đôi khi, để đi từ một điểm này tới một điểm kia, con người chúng ta không thể đi
bằng đường chim bay được mà còn phụ thuộc vào việc đường đi nối giữa hai điểm có

dạng như thế nào nữa.
Việc đo khoảng cách giữa hai điểm dữ liệu nhiều chiều, tức hai vector, là rất cần
thiết trong Machine Learning. Chúng ta cần đánh giá xem điểm nào là điểm gần nhất của
một điểm khác; chúng ta cũng cần đánh giá xem độ chính xác của việc ước lượng. Đó là
lý do norm ra đời.
Để xác định khoảng cách khoảng cách giữa 2 vector y và z. Người ta thường áp
dụng một hàm số vào vector hiệu của chúng là x = y - z. Tuy nhiên, một hàm số dùng để
đo các vector cần một số tính chất đặc biệt:
-

-

f(x) ≥ 0. Dấu bằng xảy ra ⇔x = 0

f(αx) = |α|f(x), ∀α ∈ R
f(x1) + f(x2) ≥ f(x1+x2), ∀x1,x2 ∈ Rn

❖ Một số chuẩn thường dùng:

Giả sử các vectors x=[x1;x2;…;xn], y=[y1;y2;…;yn]
Với p là một số bất kỳ không nhỏ hơn 1, hàm số sau đây:
||x||p = ( |x1|p + |x2|p + …|xn|p )

1/p

Vậy, khi:
- p = 2 ta có norm 2 ( đường màu xanh trên đồ thị)
- p = 1 ta có norm 1 là tổng các trị tuyệt đối của từng phần tử của x (đường
màu
Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt



Báo cáo đồ án PBL5 - Kỹ thuật máy tính
đỏ)

Hình 8: Norm 1 và norm 2 trong không gian hai chiều
2.5.5 Các pretrain model
Hầu hết khi xây dựng một thuật tốn nhận diện khn mặt sẽ khơng cần phải train lại
mơ hình facenet mà tận dụng lại các mơ hình pretrain sẵn có. Bạn sẽ khơng cần phải tốn
thời gian và cơng sức nếu khơng có đủ tài ngun và dữ liệu. Đó cũng là lý do tơi cho rằng
việc xây dựng mơ hình nhận diện khn mặt ở thời điểm hiện tại rất dễ dàng.

Những mơ hình pretrain được huấn luyện trên các dữ liệu lên tới hàng triệu ảnh.
Do đó có khả năng mã hóa rất tốt các bức ảnh trên khơng gian 128 chiều. Việc cịn lại
của chúng ta là sử dụng lại mơ hình, tính tốn embedding véc tơ và huấn luyện
embedding véc tơ bằng một classifier đơn giản để phân loại classes.


Một số bộ dữ liệu public về face

Hai bộ dữ liệu về face phổ biến nhất, được sử dụng nhiều trong các bài báo và
nghiên cứu về face recognition.
CASIA-WebFace: Bộ dữ liệu bao gồm gần 500k ảnh được thu thập từ khoảng
10 nghìn người.
VGGFace2: Bộ dữ liệu gồm khoảng 3 triệu ảnh được thu thập từ gần 9 nghìn
người.


Một số pretrain model phổ biến
Model name

20180408-102900
20180402-114759

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính
Bảng 4: Các pretrain model phổ biến
2.6 Giải pháp ứng dụng di động
2.6.1 Bài toán
Xây dựng ứng dụng di động để tương tác với Server và ESP8266 giúp điều khiển
cửa đóng mở.
Người sử dụng có thể thơng qua ứng dụng để điều khiển cửa, xem camera với
thời gian thực, quản lý và xem lịch sử những lần nhận diện.
2.6.2 Công nghệ sử dụng
-

React Native là framework chính để phát triển ứng dụng di động.

-

Webview để xem camera realtime qua ip của ESP32Cam.

-

Ứng dụng di động lấy dữ liệu từ các URL remote từ REST APIs của Server.

-

Firebase Authentication: Quản lý đăng ký đăng nhập tài khoản.


-

AsyncStorage: Lưu trữ data vào bộ nhớ khi mất internet.

Hình 9: Logo React Native

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính
2.6.3 Biểu đồ usecase hệ thống

Hình 10: Biểu đồ Usecase
2.6.4 Server
Bảng API:
STT
1
2
3
4
5

URL
Door/Doors
Door/ Doors/<int:pk>/
Door/ image_upload
Door/Command_to_ESP
Door/ Image_To_Androi
Bảng 5: Bảng danh sách các API


Cơ sở dữ liệu:

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính

Hình 11: Cơ sở dữ liệu

Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khn mặt


Báo cáo đồ án PBL5 - Kỹ thuật máy tính

CHƯƠNG 3: KẾT QUẢ
3.Tổng quan kết quả đạt được
Sau quá trình xây dựng PBL5 với những mục tiêu cũng như những vấn đề đặt ra
ban đầu, nhóm đã cố gắng hồn thiện sản phẩm đúng với yêu cầu và thời gian đặt ra của
đề tài với các nội dung như sau:
- Nắm được kiến thức cơ bản về kỹ thuật máy tính.
- Nắm được các kiến thức về phát hiện và nhận diện khuôn mặt để điều khiển
Camera.
- Tương ứng với những kết quả nhận diện được người dùng có thể điều khiển,
xem và quản lý camera để đóng mở cửa
3.1 Kết quả thực tế
3.1.1 Quá trình thực hiện và kết quả phân tích và nhận diện khn mặt
Q trình xây dựng mơ hình:



Cài đặt thư viện và các phần mềm cần thiết:









Tải và cài đặt CUDA
Cài đặt Visual Studio
Tải thư viện OpenCV
Tải thư viện Tensorflow
Tải pretrain model

Chuẩn bị dữ liệu: Thu thập dữ liệu dataset từ các bạn trong lớp học, có

kích thước và size ảnh bất kì. Mỗi bạn 30 bức ảnh. Ảnh chụp khuôn mặt, gốc mặt khác
nhau, chỉ có 1 khn mặt cụ thể, rõ rang của bạn đó trong bức ảnh. Đặt tên folder chứa
ảnh của từng bạn bằng tên của chính bạn đó.

Hình 12: Bộ dữ liệu
Nhóm 49 – Hệ thống mở khóa cửa tự động sử dụng nhận dạng khuôn mặt


×