You are on page 1of 30

BỘ GIÁO DỤC & ĐÀO TẠO CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

TRƯỜNG ĐH BÁCH KHOA HÀ NỘI Độc lập – Tự do - Hạnh phúc


NHIỆM VỤ
ĐỒ ÁN THIẾT KẾ

Họ và tên sinh viên: ...................................................................


...................................................................
...................................................................
Khóa………… Trường Điện-Điện tử Ngành: KS ĐK & TĐH
1. Tên đề tài:
……………………………………………………………………………
2. Nội dung đề tài:
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
3. Cán bộ hướng dẫn:
Phần Họ tên cán bộ
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
……………………………………………………………………………
4. Thời gian giao đề tài:.............................................
5. Thời gian hoàn thành:……………………………
Ngày...... tháng …...năm 2022
LÃNH ĐẠO BỘ MÔN CÁN BỘ HƯỚNG DẪN

SINH VIÊN THỰC HIỆN


(Ký và ghi rõ họ tên)

2
Lời mở đầu

Bất cứ ai ngày nay đều quan tâm đến bảo mật và an ninh cho ngôi nhà của
chính mình. Trước đây người ta chủ yếu sử dụng các khóa cơ khí, loại khóa này
gặp vấn đề lớn đó là tính bảo mật không cao thường dễ dàng bị phá bởi các loại
chìa khóa đa năng. Tuy nhiên trong những năm gần đây khi công nghệ phát triển
và việc sử dụng IoT ngày càng tăng thì khóa kỹ thuật số ra đời và phát triển phổ
biến để từng bước thay thế cho khóa cơ khí.
Khóa kỹ thuật số không yêu cầu tác động vật lý mà dùng các công nghệ
như nhận dạng tần số vô tuyến (RFID)hay xác thực vân tay, khuôn mặt, giọng
nói, sử dụng mật khẩu…Những thông tin sinh trắc học của mỗi người thường là
duy nhất chính vì vậy tạo ra sự bảo vệ cực kỳ an toàn cho ngôi nhà của người sử
dụng. Là sinh viên của trường kỹ thuật chúng em nhận thấy đây là xu hướng hiện
nay. Vì thế chúng em muong muốn tìm hiểu và phát triển một sản phẩm theo xu
hướng này để ứng dụng trong cuộc sống.
Dựa vào những gì đã tìm hiểu và được học nhóm chúng em quyết định
chọn đề tài “Sử dụng ESP32 CAM thiết kế khóa cửa nhận diện khuôn mặt”.
Hệ thống này đơn giản, dễ dàng lắp đặt và sử dụng, sẽ giúp người dùng bảo vệ
ngôi nhà của mình tốt hơn.
Trong quá trình thực hiện đề tài này, do vốn kiến thức còn hạn chế nên
không tránh khỏi những thiếu sót. Vì thế nhóm rất mong có được sự đóng góp ý
kiến, phê bình và hướng dẫn thêm từ thầy để nhóm có thể hoàn thiện đề tài của
mình hơn.
Cuối cùng em xin chân thành cảm ơn thầy Ths. Lê Công Cường đã giúp
đỡ nhóm rất nhiều trong quá trình tìm hiểu, thiết kế và hoàn thành đồ án thiết kế
này.
Hà Nội, ngày tháng năm 2022
Sinh viên thực hiện

3
Mục lục

Lời mở đầu ............................................................................................................ 3


Mục lục .................................................................................................................. 4
Danh mục hình ảnh .............................................................................................. 6
CHƯƠNG 1. Tổng quan về hệ thống nhận diện khuôn mặt............................ 7
1.1 Xác thực sinh trắc học ................................................................................ 7
1.2 Hệ thống xử lý ảnh ..................................................................................... 7
1.2.1 Một số khái niệm cơ bản trong xử lý ảnh ................................... 8
1.2.2 Các bước cơ bản trong xử lý ảnh .............................................. 10
1.3 Hệ thống nhận diện khuôn mặt ................................................................ 11
1.3.1 Nguyên lý hoạt động ................................................................. 12
1.3.2 Thuật toán ................................................................................. 12
1.3.3 Ưu điểm và nhược điểm ............................................................ 14
CHƯƠNG 2. Thiết kế hệ thống......................................................................... 15
2.1 Giới các linh kiện chính của hệ thống ...................................................... 15
2.1.1 Module ESP32 CAM ................................................................ 15
2.1.2 Module 1 Relay với Opto cách ly kích H/L 5VDC .................. 16
2.1.3 Khóa điện tử LY-03 .................................................................. 17
2.1.4 Cảm biến chuyển động PIR HC-SR501.................................... 18
2.2 Sơ dồ khối của hệ thống ........................................................................... 18
2.3 Thiết kế mạch PCB .................................................................................. 20
2.3.1 Mạch nạp code .......................................................................... 20
2.3.2 Mạch relay................................................................................. 21
2.3.3 Mạch nguồn............................................................................... 21
2.3.4 Led báo và header ..................................................................... 22
2.3.5 Mạch PCB ................................................................................. 23
CHƯƠNG 3. Triển khai hệ thống..................................................................... 24
3.1 Thiết lập wifi cho hệ thống ...................................................................... 24
3.2 Hiện thị hình ảnh và nhận diện khuôn mặt .............................................. 25
3.3 Gửi thông báo lên telegram ...................................................................... 28
CHƯƠNG 4. Kết luận và hướng phát triển..................................................... 30
4.1 Kết luận .................................................................................................... 30
4.2 Hạn chế..................................................................................................... 30

4
4.3 Hướng phát triển ...................................................................................... 30
Tài liệu tham khảo ............................................................................................. 31

5
Danh mục hình ảnh

Hình 1-1 Quá trình xử lý ảnh ................................................................................. 8


Hình 1-2 Điểm ảnh trong ảnh trắng đen ................................................................ 9
Hình 1-3 Điểm ảnh trong ảnh màu ......................................................................... 9
Hình 1-4 Ví dụ độ phân giải của ảnh ..................................................................... 9
Hình 1-5 Hệ màu RGB ......................................................................................... 10
Hình 1-6 Các bước cơ bản trong xử lý ảnh .......................................................... 10
Hình 1-7 Các điểm trên khuôn mặt ...................................................................... 12
Hình 1-8 Nhận dạng 3D ....................................................................................... 14
Hình 2-1 Module ESP32 CAM ............................................................................ 15
Hình 2-2 Sơ đồ chân module ESP32 CAM ......................................................... 16
Hình 2-3 Module 1 Relay với Opto cách ly kích H/L 5VDC .............................. 17
Hình 2-4 Khóa điện tử LY-03 .............................................................................. 18
Hình 2-5 Cảm biến PIR HC-SR501 ..................................................................... 18
Hình 2-6 Sơ đồ khối của hệ thống........................................................................ 19
Hình 2-7 Sơ đồ mạch của hệ thống ...................................................................... 19
Hình 2-8 Kết nối các linh kiện trong thực tế ........................................................ 20
Hình 2-9 Mạch nạp code ...................................................................................... 20
Hình 2-10 Mạch relay .......................................................................................... 21
Hình 2-11 Mạch nguồn ........................................................................................ 22
Hình 2-12 Led báo ............................................................................................... 22
Hình 2-13 Header ................................................................................................. 22
Hình 2-14 Mạch PCB ........................................................................................... 23
Hình 3-1 Mô hình hoạt động của Smartconfig .................................................... 24
Hình 3-2 App trên IOS ......................................................................................... 25
Hình 3-3 Esp32 CAM kết nối wifi thành công .................................................... 25
Hình 3-4 Mô ta hoạt động của nhận diện ............................................................. 26
Hình 3-5 IP thu được sau khi tải code lên ............................................................ 26
Hình 3-6 Các tùy chỉnh của web .......................................................................... 27
Hình 3-7 Hình ảnh thực tế một thành viên trong nhóm ....................................... 27
Hình 3-8 Thao tác tạo bot trên telegram .............................................................. 28
Hình 3-9 Tin nhắn được bot gửi đến người dùng ................................................ 29

6
CHƯƠNG 1. Tổng quan về hệ thống nhận diện khuôn mặt

1.1 Xác thực sinh trắc học


Sinh trắc học (hay Biometrics) là các đặc điểm thể chất và hành vi có thể
đo lường cho phép thiết lập và xác minh danh tính của một cá nhân.
Xác thực sinh trắc học là một hình thức bảo mật đo lường và đối sánh các
tính năng sinh trắc học của người dùng để xác minh rằng một người đang cố
gắng truy cập vào một hệ thống, thiết bị cụ thể được phép làm như vậy. Đặc điểm
sinh trắc học là các đặc điểm vật lý và sinh học dành riêng cho một cá nhân và có
thể dễ dàng so sánh với các đặc điểm được phép lưu trong cơ sở dữ liệu. Nếu các
tính năng sinh trắc học của một người dùng đang cố gắng truy cập vào một hệ
thống, thiết bị khớp với các tính năng của một người dùng được phê duyệt thì
quyền truy cập vào thiết bị sẽ được cấp. Xác thực sinh trắc học hiện nay rất phát
triển dùng rất phổ biến như kiểm soát các điểm truy cập cửa ra vào, bảo mật
trong điện thoại thông minh và máy tính.
Một số loại xác thực sinh trắc học phổ biến hiện nay có thể kể đến đó
chính là:
- Quét vân tay: Đây là loại xác thực sinh trắc học phổ biến nhất hiện nay. Khi đặt
ngón tay lên trên phần cảm biến vân tay, thiết bị sẽ quét hình ảnh ngón tay và
đưa vào hệ thống xử lý. Hệ thống này chuyển dữ liệu vừa nhận sang dạng số rồi
đối chiếu các đặc điểm của vân tay đó với dữ liệu đã được lưu trữ trong hệ thống.
Nếu khớp thì thì lớp khóa hay bảo mật sẽ được mở.
- Nhận diện khuôn mặt: Hệ thống nhận dạng khuôn mặt là một ứng dụng máy
tính tự động xác định hoặc nhận dạng một người nào đó từ một bức hình ảnh kỹ
thuật số hoặc một khung hình video từ một nguồn video. Một trong những cách
để thực hiện điều này là so sánh các đặc điểm khuôn mặt chọn trước từ hình ảnh
và một cơ sở dữ liệu về khuôn mặt.
- Nhận diện qua mắt: Cơ chế nhận diện mống mắt của thiết bị (hoặc bộ cảm biến)
được thực hiện nhờ một máy chiếu bước sóng nhìn thấy được hoặc tia (hay
camera) hồng ngoại tầm gần (Near Infrared – NIR) vào mắt người. Mục đích của
việc chiếu tia đặc biệt này vào mắt nhằm giúp xác định chính xác vị trí của từng
bộ phận của mắt (đồng tử, mí mắt, lông mi…) và chi tiết cấu trúc của mống mắt
để so sánh với dữ liệu được phê duyệt trước đó.
1.2 Hệ thống xử lý ảnh
Con người thu nhận thông tin qua các giác quan, trong đó thị giác đóng
vai trò quan trọng nhất. Những năm trở lại đây với sự phát triển của phần cứng
máy tính, xử lý ảnh và đồ họa đã phát triển một cách mạnh mẽ và có nhiều ứng
dụng trong cuộc sống. Xử lý ảnh và đồ họa đóng vai trò quan trọng trong tương
tác người máy.
Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm
cho ra kết quả mong muốn. Kết quả đầu ra của một quá trình xử lý một kết luận.

7
Hình 1-1 Quá trình xử lý ảnh

Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh được xem như
là đặc trưng cường độ sáng hay một dấu hiệu nào đó tại một vị trí nào đó của đối
tượng trong không gian và nó có thể xem như một hàm n biến P(c1, c2, …, cn).
Do đó, ảnh trong xử lý ảnh có thể xem như ảnh n chiều.
Các vấn đề của xử lý ảnh:
- Thu nhận ảnh, chụp ảnh và số hóa ảnh.
+ Hệ thống chụp ảnh và tín hiệu ảnh.
+ Hệ thống số hóa ảnh: lấy mẫu, lượng tử hóa.
- Phân tích ảnh và thị giác máy tính.
+ Cải thiện nâng cấp ảnh, sửa lỗi, khôi phục ảnh.
+ Phân tách đặc trưng: tách biên, phân vùng ảnh.
+ Biểu diễn và xử lý đặc trưng hình dạng đối tượng ảnh.
+ Nhận dạng đối tượng ảnh, phân tích cảnh và hiểu cảnh.
- Mã hóa, nén ảnh.
+ Các phương pháp nén và các chuẩn nén.
1.2.1 Một số khái niệm cơ bản trong xử lý ảnh
1.2.1.1. Điểm ảnh
Gốc của ảnh (ảnh tự nhiên) là ảnh liên tục về không gian và độ sáng. Để
xử lý được bằng máy tính, ảnh cần phải được số hóa. Số hóa ảnh là sự biến đổi
gần đúng một ảnh liên tục thành một tập điểm phù hợp với ảnh thật về vị trí
(không gian) và độ sáng (mức xám). Khoảng cách giữa các điểm ảnh đó được
thiết lập sao cho mắt người không phân biệt được ranh giới giữa chúng. Mỗi
một điểm như vậy gọi là điểm ảnh (PEL: Picture Element) hay gọi tắt là Pixel.
Trong khuôn khổ ảnh hai chiều, mỗi pixel ứng với cặp tọa độ (x, y).
Điểm ảnh (Pixcel) là một phần tử của ảnh số tại tọa độ (x, y) với độ xám
hoặc màu nhất định. Kích thước và khoảng cách giữa các điểm ảnh đó được chọn
thích hợp sao cho mắt người cảm nhận sự liên tục về không gian và mức xám
(hoặc màu) của ảnh số gần như ảnh thật. Mỗi một phần tử trong ma trận được gọi
là một phần tử ảnh.

8
Hình 1-2 Điểm ảnh trong ảnh trắng đen

Hình 1-3 Điểm ảnh trong ảnh màu

1.2.1.2. Độ phân giải


Độ phân giải (Resolution) là thước đo chi tiết rõ ràng nhỏ nhất trong ảnh,
được tính là số điểm ảnh trên một đơn vị khoảng cách.

Hình 1-4 Ví dụ độ phân giải của ảnh

9
Như ảnh trên chúng ta thấy rằng tuy cùng kích thước nhưng độ phân giải
khác nhau, và độ phân giải càng thấp thì càng mờ. Như ảnh 1 sẽ được hiểu là
chiểu rộng có 175 điểm ảnh và chiều cao có 256 điểm ảnh.
1.2.1.3. Mức xám
Mức xám của điểm ảnh là cường độ sáng của nó được gán bằng giá trị số
tại điểm đó.
- Các thang mức xám thông thường: 16, 32, 64, 128, 256 (Mức 256 là mức phổ
dụng. Nguyên nhân là từ kỹ thuật máy tính dùng 1 byte (8bit) để biểu diễn mức
xám. Mức xám dùng 1 byte biểu diễn, 28 = 256, tức là từ 0 đến 255).
- Ảnh đen trắng: Là ảnh có hai màu đen, trắng (không chứa màu khác) với mức
xám ở các điểm ảnh có thể khác nhau.
- Ảnh nhị phân: Ảnh chỉ có hai mức đen trắng phân biệt, tức là mỗi điểm ảnh của
ảnh nhị phân chỉ có thể là 0 hoặc 1.
- Ảnh màu: Trong khuôn khổ lý thuyết 3 màu (Red, Blue, Green) để tạo nên thế
giới màu, người ta thường dùng 3 byte để mô tả mức màu, khi đó các giá trị màu:
28*3 = 224 ≈ 16,7 triệu màu.

Hình 1-5 Hệ màu RGB

1.2.2 Các bước cơ bản trong xử lý ảnh

Hình 1-6 Các bước cơ bản trong xử lý ảnh

Sơ đồ này bao gồm các phần sau:


- Phần thu nhận ảnh (Image Acquisition). Ảnh có thể nhận qua camera màu hoặc
đen trắng. Camera thường dùng là loại quét dòng; ảnh tạo ra có dạng hai chiều.
Chất lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, môi trường (ánh

10
sáng, thời tiết).
- Tiền xử lý (Image Processing): Sau bộ thu nhận, ảnh có thể bị nhiễu, độ tương
phản thấp nên cần đưa vào bộ tiền xử lý để nâng cao chất lượng. Chức năng
chính của bộ tiền xử lý là lọc nhiễu, nâng độ tương phản để làm ảnh rõ, nét hơn.
- Phân đoạn (Segmentation) hay phân vùng ảnh: là tách một ảnh đầu vào thành
các vùng thành phần để biểu diễn phân tích, nhận dạng ảnh. Ví dụ: để nhận dạng
chữ (hoặc mã vạch) trên phong bì thư cho mục đích phân loại bưu phẩm, cần chia
các câu, chữ, về địa chỉ hoặc tên người thành các từ, các chữ, các số (hoặc các
vạch) riêng biệt để nhận dạng. Đây là phần phức tạp khó khăn nhất trong xử lý
ảnh và cũng dễ gây lỗi, làm mất độ chính xác của ảnh. Kết quả nhận dạng ảnh
phụ thuộc rất nhiều vào công đoạn này.
- Biểu diễn ảnh (Image Representation): Đầu ra ảnh sau phân đoạn chứa các điểm
ảnh của vùng ảnh (ảnh đã phân đoạn) cộng với mã liên kết với các vùng lân cận.
Việc chọn các tính chất để thể hiện ảnh gọi là trích chọn đặc trưng (Feature
Selection) gắn với việc tách các đặc tính của ảnh dưới dạng các thông tin định
lượng hoặc làm cơ sở để phân biệt lớp đối tượng này với đối tượng khác trong
phạm vi ảnh nhận được. Ví dụ: trong nhận dạng ký tự trên phong bì thư, chúng ta
miêu tả các đặc trưng của từng ký tự giúp phân biệt ký tự này với ký tự khác.
- Nhận dạng ảnh và nội suy ảnh (Image Recognition and Interpretation): Nhận
dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu được bằng cách so
sánh với mẫu chuẩn đã được học (hoặc lưu từ trước). Nội suy là phán đoán theo ý
nghĩa trên cơ sở nhận dạng. Ví dụ: một loạt chữ số và nét gạch ngang trên phong
bì thư có thể được nội suy thành mã điện thoại. Có nhiều cách phân loại ảnh khác
nhau về ảnh. Theo lý thuyết về nhận dạng, các mô hình toán học về ảnh được
phân theo hai loại nhận dạng ảnh cơ bản:
+ Nhận dạng theo tham số.
+ Nhận dạng theo cấu trúc.
Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng
trong khoa học và công nghệ là nhận dạng ký tự (chữ in, chữ viết tay, chữ ký
điện tử), nhận dạng văn bản (text), nhận dạng vân tay, nhận dạng mã vạch, nhận
dạng mặt người…
- Cơ sở tri thức (Knowledge Base): Như đã nói ở trên, ảnh là một đối tượng khá
phức tạp về đường nét, độ sáng tối, dung lượng điểm ảnh, môi trường để thu ảnh
phong phú kéo theo nhiễu. Trong nhiều khâu xử lý và phân tích ảnh ngoài việc
đơn giản hóa các phương pháp toán học đảm bảo tiện lợi cho xử lý, người ta
mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh theo cách của con người.
Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo các phương pháp trí
tuệ con người. Vì vậy, ở đây các cơ sở tri thức được phát huy.
1.3 Hệ thống nhận diện khuôn mặt
Hệ thống nhận diện khuôn mặt hay nhận dạng khuôn mặt là một loại ứng
dụng có khả năng xác định được hình ảnh khuôn mặt của một người nào đó dựa
trên các đặc điểm mà cơ sở dữ liệu đã lưu trữ trước đó.

11
Mỗi khuôn mặt đều có nhiều điểm mốc, những phần lồi lõm tạo nên các
đặc điểm của khuôn mặt. Các hệ thống nhận diện gương mặt định nghĩa những
điểm này là những điểm nút. Mỗi mặt người có khoảng 80 điểm nút. Có thể nhận
diện một số điểm nút như sau:
- Khoảng cách giữa hai mắt.
- Chiều rộng của mũi.
- Độ sâu của hốc mắt.
- Hình dạng của xương gò má.
- Độ dài của xương hàm…

Hình 1-7 Các điểm trên khuôn mặt

1.3.1 Nguyên lý hoạt động


Trước khi có thể sử dụng công nghệ này, chúng ta đều phải trải qua bước
lưu trữ thông tin trên cơ sở dữ liệu để hệ thống có thể so sánh. Sau khi các đặc
điểm đã được mã hóa thì chúng sẽ được lưu vào một nơi phù hợp. Khi cần thiết
thì hệ thống sẽ quét và so sánh.
Các hệ thống công nghệ trên khuôn mặt có thể khác nhau, nhưng nhìn
chung, chúng có xu hướng hoạt động theo một số bước như sau:
Người dung sẽ tiến đến gần camera được bố trí sẵn -> Camera sẽ quét
toàn bộ khuôn mặt -> Công nghệ sẽ tiến hành bóc tách khuôn mặt ra khỏi cảnh
vật xung quanh -> Tại đây hệ thống sẽ tiến hành phân tích các đặc điểm của
khuôn mặt, các đặc tính sẽ được xử lý dưới dạng các thuật toán và công thức, dữ
liệu sẽ được gửi về nơi lưu trữ có liên quan nhất -> Sau đó hệ thống sẽ tiến hành
so sánh dữ liệu vừa phân tích với các dữ liệu có sẵn -> Khi tỉ lệ trùng khớp gần
như hoàn toàn thì thiết bị sẽ được mở.
1.3.2 Thuật toán
Một số thuật toán nhận dạng khuôn mặt xác định các đặc điểm khuôn mặt
bằng cách trích xuất các ranh giới, hoặc đặc điểm, từ một hình ảnh khuôn mặt

12
của đối tượng. Từ đó các thuật toán sẽ trích xuất được các thông tin, và những
tính năng này sau đó được sử dụng để tìm kiếm các hình ảnh khác với các tính
năng phù hợp. Trong trường hợp sử dụng để nhận diện, cần phải lưu lại thông tin
khuôn mặt để ghi nhớ trước. Các thuật toán sẽ đơn giản hóa một tập các hình ảnh
khuôn mặt và sau đó nén dữ liệu khuôn mặt, chỉ lưu dữ liệu hình ảnh nào là hữu
ích cho việc nhận dạng khuôn mặt. Khi đó, muốn nhận diện sẽ so sánh hình ảnh
mấu với các dữ liệu khuôn mặt đã lưu.
Các thuật toán nhận dạng có thể được chia thành hai hướng chính, là hình
học, đó là nhìn vào tính năng phân biệt, hoặc trắc quang (đo sáng), là sử dụng
phương pháp thống kê để 'chưng cất' một hình ảnh thành những giá trị và so sánh
các giá trị với các mẫu để loại bỏ chênh lệch.
Các thuật toán nhận dạng phổ biến bao gồm Principal Component
Analysis (Phép phân tích thành phần chính) sử dụng các khuôn mặt riêng, Linear
Discriminate Analysis (Phân tích biệt tuyến tính), Elastic Bunch Graph
Matching sử dụng thuật toán Fisherface, các mô hình Markov ẩn, Multilinear
Subspace Learning (Luyện nhớ không gian con đa tuyến) sử dụng đại diện cơ
căng, và theo dõi liên kết động thần kinh.
1.3.2.1. Nhận dạng 3D
Một xu hướng mới nổi lên, tuyên bố cải thiện được độ chính xác, là nhận
dạng khuôn mặt ba chiều. Kỹ thuật này sử dụng các cảm biến 3D để nắm bắt
thông tin về hình dạng của khuôn mặt. Thông tin này sau đó được sử dụng để xác
định các tính năng đặc biệt trên bề mặt của một khuôn mặt, chẳng hạn như các
đường viền của hốc mắt, mũi và cằm.
Một lợi thế của nhận dạng khuôn mặt 3D là nó không bị ảnh hưởng bởi
những thay đổi trong ánh sáng như các kỹ thuật khác. Nó cũng có thể xác định
một khuôn mặt từ một loạt các góc nhìn, trong đó có góc nhìn nghiêng. Các điểm
dữ liệu ba chiều từ một khuôn mặt cải thiện lớn độ chính xác cho nhận dạng
khuôn mặt. Nghiên cứu 3D được tăng cường bởi sự phát triển của các bộ cảm
biến tinh vi giúp nắm bắt hình ảnh chụp khuôn mặt 3D được tốt hơn. Các cảm
biến hoạt động bằng cách chiếu ánh sáng có cấu trúc lên gương mặt. Hàng chục
hoặc nhiều hơn nữa các bộ cảm biến hình ảnh này có thể được đặt lên trên cùng
một con chip CMOS-mỗi cảm biến sẽ thu một phần khác nhau của hình ảnh.
Ngay cả một kỹ thuật 3D hoàn hảo cũng có thể gặp khó khăn bởi các sắc
thái biểu cảm trên gương mặt. Để đạt được mục tiêu đó một nhóm tại Technion
(viện công nghệ Israel tại Haifa) đã áp dụng các công cụ từ hình học metric để
giải quyết các biểu lộ cảm xúc như phép đẳng cự Một công ty có tên Vision
Access tạo ra một giải pháp vững chắc cho nhận dạng khuôn mặt 3D. Công ty
này sau đó đã được mua lại bởi công ty truy cập sinh trắc học Bioscrypt Inc.
Công ty đã phát triển một phiên bản được gọi là 3D FastPass.

13
Hình 1-8 Nhận dạng 3D

1.3.2.2. Phân tích kết cấu da


Một xu hướng mới nổi sử dụng các chi tiết hình ảnh của da, được chụp
trong các hình ảnh kỹ thuật số hoặc máy scan tiêu chuẩn. Kỹ thuật này được gọi
là phân tích kết cấu da, đưa các đường đặc trưng, hình dạng, và các điểm nốt trên
làn da của một người vào một không gian toán học.
Các thử nghiệm đã chỉ ra rằng với việc bổ sung các phân tích cấu trúc của
da, hiệu quả trong việc nhận ra khuôn mặt có thể tăng 20-25 phần trăm.
1.3.3 Ưu điểm và nhược điểm
Trong số các kỹ thuật sinh trắc học, nhận dạng khuôn mặt có thể không
đáng tin cậy và hiệu quả nhất. Tuy nhiên, một trong những lợi thế quan trọng là
nó không đòi hỏi sự hợp tác của các đối tượng thử nghiệm. Các hệ thống thiết kế
được lắp đặt tại các sân bay, khu chung cư, và những nơi công cộng khác có thể
xác định các cá nhân giữa đám đông, mà không bỏ sót một ai. Sinh trắc học khác
như dấu vân tay, quét mống mắt, và nhận dạng giọng nói không thể thực hiện
được như vậy.
Mặc dù nhận dạng khuôn mặt đã thực hiện được khá tốt ở phía mặt trước
và phía chênh lệch 20 độ, nhưng ngay sau khi bạn đi về phía góc khuất, thì nó có
vấn đề.
Một số điều kiện có thể ảnh hưởng tới tính chính xác của phương pháp
như:
- Thiếu ánh sáng, đeo kính mát, tóc dài, hoặc một phần khuôn mặt bị che.
- Hình ảnh độ phân giải thấp.
- Hệ thống sẽ kém hiệu quả nếu biểu hiện khuôn mặt khác nhau.

14
CHƯƠNG 2. Thiết kế hệ thống

2.1 Giới các linh kiện chính của hệ thống


Dưới đây là những linh kiện chính của hệ thống.
2.1.1 Module ESP32 CAM
Module ESP32 CAM phát triển trên nền vi điều khiển trung tâm là ESP32
SoC kết hợp với camera OV2640, được sử dụng rộng rãi trong các ứng ruyền
hình ảnh, xử lý ảnh qua Wifi, Bluetooth hoặc các ứng dụng IoT.

Hình 2-1 Module ESP32 CAM

Thông số kỹ thuật:
- Module: ESP32-CAM
- Kiểu: Dip-16
- Kích thước: 27 x 40,5 x 4,5 mm
- SPI Flash: Mặc định 32Mbit
- RAM: Internal520KB + PSRAM 4M bên ngoài
- Bluetooth: tiêu chuẩn Bluetooth4.2BR / EDR và BLE
- Wifi: 802.11 b/g/n/e/i
- Giao diện hỗ trợ: UART, SPI, I2C, PWM
- Hỗ trợ thẻ TF: Hỗ trợ tối đa 4G
- Cổng IO: 9
- Tốc độ cổng giao tiếp: 115200 bps mặc định
- Định dạng đầu ra hình ảnh: JPEG (chỉ được hỗ trợ bởi OV2640), BMP
- Phạm vi phổ: 2412 ~ 2484 MHz
- Dạng ăng ten: ăng-ten PCB trên bo mạch, đạt được 2dBi
- Truyền tín hiệu:
+ 802.11b: 17 ± 2 dBm (@ 11Mbps)
+ 802.11g: 14 ± 2 dBm (@ 54Mbps)

15
+ 802.11n: 13 ± 2 dBm (@ MCS7)
- Độ nhạy
+ CCK, 1 Mb/giây: -90dBm
+ CCK, 11 Mb/giây: -85dBm
+ 6 Mb/giây (1/2 BPSK): -88dBm
+ 54 Mbps (3/4 64-QAM): -70dBm
+ MCS7 (65 Mb/giây, 72,2 Mb/giây): -67dBm
- Tiêu thụ năng lượng
+ Tắt đèn flash: 180mA @ 5V
+ Bật đèn flash và điều chỉnh độ sáng tối đa: 310mA @ 5V
+ Sleep Deep: Mức tiêu thụ điện năng thấp nhất có thể đạt 6mA @ 5V
+ Modem-bed: lên tới 20mA @ 5V
+ Sleep Light: lên tới 6,7mA@5V
- Bảo vệ: WPA / WPA2 / WPA2-Enterprise / WPS
- Phạm vi cung cấp điện: 5V
- Nhiệt độ hoạt động: -20°C ~ 85°C
- Môi trường lưu trữ: -40°C ~ 90°C, <90% rh

Hình 2-2 Sơ đồ chân module ESP32 CAM

2.1.2 Module 1 Relay với Opto cách ly kích H/L 5VDC


Module nhỏ gọn, có opto và transistor cách ly giúp cho việc sử dụng trở
nên an toàn với board mạch chính, mạch được sử dụng để đóng ngắt nguồn điện
công suất cao AC hoặc DC, có thể chọn đóng khi kích mức cao hoặc mức thấp
bằng Jumper.
Module có 6 chân.
-3 chân để kích.
+ DC+: cấp hiệu điện thế kích tối ưu vào chân này.
+ DC-: nối với cực âm.

16
+ IN: chân tín hiệu, nhận tín hiệu để kích relay.
+ Nếu dùng module đang kích mức ở mức cao và chân IN được cấp điện
thì module sẽ được kích, ngược lại thì không. Tương tự với module đang kích ở
mức thấp.
- 3 chân nối với thiết bị điện công suất cao.
+ COM: nối với nguồn , nối với cực dương nếu là hiệu điện thế một chiều,
nối với dây nóng nếu là hiệu điện thế xoay chiều.
+ NO: nối với chân của thiết bị điện, nối với cực dương nếu là hiệu điện
thế một chiều, nối với dây nóng nếu là hiệu điện thế xoay chiều.
+ NC: không kết nối gì.

Hình 2-3 Module 1 Relay với Opto cách ly kích H/L 5VDC

Thông số kỹ thuật:
- Sử dụng điện áp nuôi 5VDC.
- Dòng tiêu thụ khoảng 80mA/1 relay.
- Điện thế đóng ngắt tối đa: AC250V ~ 10A hoặc DC30V ~ 10A.
- Có đèn báo đóng ngắt trên mỗi Relay.
- Có thể chọn mức tín hiệu kích 0 hoặc 1 qua jumper.
- Kích thước: 5 x 2,6 x 1,9 cm
2.1.3 Khóa điện tử LY-03
Khóa chốt điện từ LY-03 có chức năng hoạt động như một ổ khóa cửa sử
dụng Solenoid để kích đóng mở bằng điện, được sử dụng nhiều trong nhà thông
minh hoặc các loại tủ, cửa phòng, cửa kho…khóa sử dụng điện áp 12VDC, là
loại thường đóng (cửa đóng) với chất lượng tốt, độ bền cao. Khóa chốt điện
từ này có thể sử dụng chung với các mạch chức năng tạo thành một hệ thống
thông minh.

17
Hình 2-4 Khóa điện tử LY-03

Thông số kỹ thuật:
- Vật liệu: Thép không gỉ
- Nguồn điện: 12V DC
- Dòng điện làm việc: 0.8A
- Công suất: 9.6W
- Yêu cầu nguồn cấp: 12VDC/1A
- Kích thước: 54 x 38 x 28 mm
- Thời gian cấp nguồn: Nhỏ hơn 10s
- Trọng lượng: 150g
2.1.4 Cảm biến chuyển động PIR HC-SR501
Cảm biến thân nhiệt chuyển động PIR (Passive infrared sensor) HC-
SR501 được sử dụng để phát hiện chuyển động của các vật thể phát ra bức xạ
hồng ngoại (con người, con vật, các vật phát nhiệt,...), cảm biến có thể chỉnh
được độ nhạy để giới hạn khoảng cách bắt xa gần cũng như cường độ bức xạ của
vật thể mong muốn.

Hình 2-5 Cảm biến PIR HC-SR501

2.2 Sơ dồ khối của hệ thống

18
Hình 2-6 Sơ đồ khối của hệ thống

Nguyên lý hoạt động của hệ thống


- Cảm biến chuyển động phát hiện chuyển động của cửa khi đóng mở gửi tín hiệu
về ESP32 CAM. Camera của module thực hiện nhận dạng hình ảnh và hiển thị
trên web.
- Web cho phép thực hiện tùy chỉnh độ phân giải, độ sáng, màu sắc… của camera
và thực hiện đăng ký khuôn mặt của người dùng.
- ESP32 CAM tiếp nhận dữ liệu khuôn mặt người dùng đăng ký, lưu trữ lại. Khi
có người tiếp hành xác thực khuôn mặt thì tiếp nhận hình ảnh, tiến hành xử lý
theo chương trình đã cài đặt và đối chiếu với dữ liệu đăng ký đã được lưu trữ để
đưa ra tín hiệu tới relay. Ngoài ra còn xử lý tín hiệu từ cảm biến và gửi tín nhắn
đến telegram.
- Telegram là nơi người dùng có thể nhận tín nhắn về có phát hiện chuyển động
của cửa khi có người đóng, mở.
- Relay nhận tín hiệu từ ESP32 CAM để kích mở khóa cửa.
- Khóa cửa thực hiện đóng mở cửa dựa theo kết quả so sánh khuôn mặt với dữ
liệu được đăng ký. Nếu kết quả trả về chính xác như trong dữ liệu thì mở khóa và
ngược lại.

Hình 2-7 Sơ đồ mạch của hệ thống

19
Hình 2-8 Kết nối các linh kiện trong thực tế

2.3 Thiết kế mạch PCB


Mạch PCB hệ thống được thiết kế để thu gọn kích thước của hệ thống với
việc tích hợp mạch nguồn, nạp code và relay vào chung một mạch.
2.3.1 Mạch nạp code

Hình 2-9 Mạch nạp code

Mạch sử dụng CH340C một model của IC Ch340, đây là lại IC được sử
dụng để chuyển đổi tín hiệu USB thành UART.
Thông số kỹ thuật CH340C:
- Giao diện thiết bị USB tốc độ đầy đủ, tương thích USB 2.0.

20
- Tốc độ truyền từ 50bps đến 2Mbps
- Nguồn 5V và 3.3V
- Gói SOP-16
2.3.2 Mạch relay

Hình 2-10 Mạch relay

Mạch relay sử dụng opto cách ly quang PC817 và relay SRD-05VDC-SL-


C 5V, chọn kích tín hiệu mức cao. Ưu điểm của mạch này là cách ly hoàn toàn về
điện giữa vi điều khiển với relay và tải. Điều này sẽ giúp vi điều khiển loại được
một số nhiễu không mong muốn khi hoạt động, dẫn đến mạch hoạt động ổn định
hơn.
Thông số kỹ thuật PC817:
- Dòng điện thuận trên diode để kích mở transistor: 50mA (max=1A)
- Điện áp rơi trên diode 1,2V-1,4V
- Điện áp đánh thủng diode: 6V
- Tổn hao công suất trên diode: 70mW
- Tần số đóng cắt: 80 KHz
- Dòng qua Collector khi hoạt động ổn định: 20mA (max=50mA)
- Điện áp rơi trên transistor: 0,1V-0,2V
- Tiêu hao công suất trên transistor: 150mW
Thông số kỹ thuật SRD-05VDC-SL-C 5V:
- Phân loại: Relay cơ
- Điện áp điều khiển: 5VDC
- Dòng điện tối đa qua tiếp điểm: 10A
2.3.3 Mạch nguồn

21
Hình 2-11 Mạch nguồn

Mạch nguồn sử dụng nguồn 12VDC từ adapter qua LM7805 để giảm áp


xuống 5V, IC này trong mạch dùng nhôm để tản nhiệt. Các tụ được dùng để lọc
nhiễu và lọc nguồn.
Thông số kỹ thuật LM7805:
- Điện áp ngõ ra 5V
- Điện áp ngõ vao 7V- 18VDC
- Dòng ngõ ra trung bình: 500mA (max 1A)
- Nhiệt độ hoạt động: 0°C – 125°C
2.3.4 Led báo và header

Hình 2-12 Led báo

Hình 2-13 Header


22
Mạch led báo để báo hiệu có đang nạp code và 2 header để kết nối module
ESP32 CAM.
2.3.5 Mạch PCB
Dưới đây là mạch PCB có kích thước mạch là 55 x 57 mm với các linh
kiện có trên thị trường.

Hình 2-14 Mạch PCB

23
CHƯƠNG 3. Triển khai hệ thống

3.1 Thiết lập wifi cho hệ thống


Thông thường ta hay lập trình WiFi.begin(ssid, password) để cài đặt tên
và password cho mạch. Tuy nhiên như vậy mỗi khi ta sử dụng wifi khác, thì lại
phải sửa lại wifi trên code và nạp lại chương trình. Điều này khó là bất tiện và hệ
thống khó phát triển ra thị trường.
Có 2 cách để giải quyết vấn đề này là:
- Dùng AP mode: chúng ta có thể dùng ESP32 CAM phát ra wifi sau đó dùng
web browser truy cập vào ip của esp, scan wifi xung quanh chọn và nhập mật
khẩu để chuyển esp thành thiết bị nhận wifi.
- Dùng Smartconfig: sử dụng các gói SDK để các bạn có thể truyền wifi và pass
từ app xuống ESP32 mà không cần phải thao tác gì khác.
Trong hệ thống này nhóm em sử dụng Smartconfig.

Hình 3-1 Mô hình hoạt động của Smartconfig

Tiến trình Smartconfig như sau:


- ESP ở chế độ lắng nghe gói tin UDP.
- Smartphone app gửi các gói tin UDP được mã hóa.
- ESP nhận bản tin, kiểm tra độ dài của mỗi dữ liệu từ đó suy ra từng kí tự, ghép
nối chúng lại sẽ tạo ra 1 chuỗi SSID và PASS.
- ESP chuyển sang STA mode đăng nhập vào mạng wifi với thông tin như trên.
- App nhận được thông tin ESP đăng nhập vào, lưu địa chỉ IP của thiết bị đó lại
để giao tiếp.
Một số hàm được sử dụng khi dùng Smartconfig:
- WiFi.mode(WIFI_AP_STA): chuyển ESP32 sang Station mode (Để chạy
SmartConfig cần chuyển ESP32 sang Station mode).
- WiFi.beginSmartConfig(): start SmartConfig.

24
- WiFi.smartConfigDone(): kiểm tra smartconfig xong hay chưa.

Hình 3-2 App trên IOS

Hình 3-3 Esp32 CAM kết nối wifi thành công

3.2 Hiện thị hình ảnh và nhận diện khuôn mặt


Mô tả hoạt động:
- Nhâ ̣n diê ̣n ảnh vào: camera thực hiê ̣n nhâ ̣n da ̣ng hình ảnh đưa vào với đô ̣ phân
giả thấ p để có thể xử lí phù hơ ̣p với tài nguyên của phầ n cứng.
- Trình duyê ̣t tiế p nhâ ̣n hình ảnh: cho phép thực hiê ̣n đăng kí hoă ̣c xác thực
khuôn mă ̣t của người dùng để mở cửa.
- Xử lí hình ảnh: Sau khi tiế p nhâ ̣n hiǹ h ảnh, tiế n hành xử lí hình ảnh theo các
chương trình cài đă ̣t và đố i chiế u với dữ liê ̣u xem đã có hay chưa.

25
- Đóng mở cửa: Phu ̣ thuô ̣c vào viê ̣c kiể m tra dữ liê ̣u để đố i sánh kế t quả. Nế u kế t
quả trả về chính xác như trong dữ liê ̣u thì có thể mở cửa và ngược lạc. Đồng thời
trên web cũng hiển thị kết quả xác nhận thành công hoặc thất bại.

Hình 3-4 Mô ta hoạt động của nhận diện

Code của hệ thống được chia thành 4 phần 1 code chính cho thiết lập wifi,
xử lý dữ liệu camera và tín hiệu ra module relay, 3 code còn lại dành cho web
page, camera index và camera pins
- 3 thư viện chính được sử dụng để hỗ trợ code là #include "esp_camera.h" ,
#include <WiFi.h>, #include "camera_pins.h"
- ESP32 CAM mà nhóm sử dụng là của AI-THINKER nên sử dụng #define
CAMERA_MODEL_AI_THINKER
- Một số setting trước khi nạp code:
+ Upload Speed: “921600”
+ Flash Frequency: “80MHz”
+ Flash Mode: “QIO”
+ Partition Scheme: “Hue APP (3MB No OTA/1MB SPIFFS)”
+ Core Debug Level: “None”

Hình 3-5 IP thu được sau khi tải code lên

Lấy địa chỉ IP này vào web để truy cập vào trình duyệt phát camera trực
tiếp. Tại đây ta có tùy chỉnh độ phân giải, màu, độ sáng cho camera…

26
Hình 3-6 Các tùy chỉnh của web

Để bắt đầu hiển thị hình ảnh ta bấm start stream, để đăng ký khuôn mặt thì
ta bấm enroll face giữ yên trong một vài giây đến khi trên hình hiển thị khung
màu xanh là được. Người đầu tiên đăng ký tương ứng với subject 0.
Sau khi đã đăng ký xong xong, người dùng muốn xác thực khuôn mặt, nếu
màn hình hiển thị khung xanh thì xác thực chính xác còn hiển thị khung đỏ là xác
thực không đúng.

Hình 3-7 Hình ảnh thực tế một thành viên trong nhóm

27
3.3 Gửi thông báo lên telegram
Telegram Messenger là dịch vụ nhắn tin tức thời và thoại qua IP dựa trên
đám mây. Chúng ta có thể dễ dàng cài đặt nó trong điện thoại thông minh
(Android và iPhone) hoặc máy tính (PC, Mac và Linux). Telegram cho phép bạn
tạo các bot mà bạn có thể tương tác. Bot là các ứng dụng của bên thứ ba chạy bên
trong Telegram. Người dùng có thể tương tác với bot bằng cách gửi cho chúng
tin nhắn, lệnh và yêu cầu nội tuyến.
ESP32 CAM sẽ tương tác với bot Telegram để gửi tin nhắn đến tài khoản
telegram của bạn. Bất cứ khi nào chuyển động được phát hiện, bạn sẽ nhận được
thông báo trong điện thoại thông minh của mình (miễn là bạn có quyền truy cập
Internet).
Để tạo được 1 bot telegram bạn cần tải xuống, cài đặt telegram sau đó mở
app và tìm kiếm botfather và thực hiện các thao tác sau để tạo 1 bot.

Hình 3-8 Thao tác tạo bot trên telegram

Một bot được tạo ra đều có tên (do người dùng tự đặt) và ID, bot token
riêng. Ta sử dụng ID và bot token để tìm và tạo kết nối với bot.
3 thư viện được sử dụng để hỗ trợ code là #include <WiFiClientSecure.h>
#include <UniversalTelegramBot.h>, #include <ArduinoJson.h>
Khi có kết nối wifi thì ESP32 CAM sẽ thực hiện tìm bot và gửi thông báo
đến người dùng “bot started up”. Khi cảm biến chuyển động phát hiện chuyển
động mở cửa sẽ gửi tín hiệu đến cho ESP32 CAM, module sẽ xử lý tín hiệu này
và yêu cầu bot gửi tin nhắn “Motion Detected”.

28
Hình 3-9 Tin nhắn được bot gửi đến người dùng

29
CHƯƠNG 4. Kết luận và hướng phát triển

4.1 Kết luận


Qua quá trình làm đề tài “Sử dụng ESP32 CAM thiết kế khóa cửa nhận
diện khuôn mặt” nhóm đã thu được các kết quả sau:
- Cách làm việc và phối hợp nhóm để đạt được hiệu quả cao.
- Tìm hiểu được các kiến thức liên quan đến xử lý ảnh và lập trình ESP32 CAM.
- Biết cách sử dụng các thư viện hỗ trợ trong lập trình ESP32 CAM.
- Nắm được cơ bản cách sử dụng PlatformIO và thiết kế mạch PCB.
4.2 Hạn chế
Trong quá trình làm đề tài nhóm đã nhận thấy được những hạn chế như:
- Vì là lần đầu sử dụng ESP32 CAM nên kiến thức của nhóm còn hạn chế, sử
dụng các thư viện chưa thành thạo.
- Hệ thống còn yếu khi hiển thị ảnh ở các góc và ánh sáng khác nhau.
- Hệ thống bảo mật kém.
- Quá trình xử lý ảnh còn nhiều vấn đề đặc biệt là trong quá trình làm do 2
camera của ESP32 CAM của nhóm gặp trục trặc nên phần đăng ký, xác thực
khuôn mặt vẫn chưa thể thực hiện được.
- Mô hình xây dựng còn thiếu tính thẩm mĩ , chưa thực sự tối ưu.
4.3 Hướng phát triển
Sau đây nhóm đề xuất một số cải tiến có thể thực hiện trong tương lại đối
với hệ thống:
- Khắc phục các hạn chế còn tồn tại đã kể trên.
- Tăng tính bảo mật cho hệ thống bằng cách thêm các tính năng như quét vân tay,
mật khẩu, thẻ từ, camera 3D…
- Tối ưu hóa hệ thống để có thể thực hiện như sản phẩ m đô ̣c lâ ̣p có thể đươ ̣c cài
đă ̣t thành mô ̣t thiế t bi,̣ có đèn màn hiǹ h hiể n thi ̣hoă ̣c nút bấ m, mà không cầ n sử
du ̣ng tới trình duyê ̣t.
- Phần telegram cải tiến thêm tính năng chụp ảnh, đóng và mở khóa cửa từ xa
qua tin nhắn.
- Tăng độ hiệu quả của camera để hoạt động tốt hơn.

30
Tài liệu tham khảo

[1] https://khuenguyencreator.com/hoc-lap-trinh-mcu/lap-trinh-esp32/
[2] https://viblo.asia/p/tuan-1-gioi-thieu-xu-ly-anh-yMnKMdEQ57P
[3] https://microcontrollerslab.com/esp32-wi-fi-manager-asyncwebserver/
[4]https://www.electroniclinic.com/esp32-cam-face-recognition-door-lock-
system-circuit-and-programming/
[5] https://easyelectronicsproject.com/esp32-projects/esp32cam-face-recognition-
lock/
[6] https://www.techtonions.com/esp32-using-smartconfig/
[7] https://iotcircuithub.com/esp32-cam-telegram-wifi-door-lock/
[8] https://randomnerdtutorials.com/esp32-door-status-telegram/
[9] https://randomnerdtutorials.com/telegram-esp32-motion-detection-arduino/

31

You might also like