ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
---------------------------------------
NGUYỄN VĂN THƠ
XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
SỬ DỤNG RASPBERRY PI VÀ OPENCV
C
C
R
UT.L
D
Chuyên ngành : Kỹ thuật điện tử
Mã số: 8520203
TÓM TẮT LUẬN VĂN THẠC SĨ
Đà Nẵng – Năm 2020
Công trình được hoàn thành tại
TRƯỜNG ĐẠI HỌC BÁCH KHOA
Người hướng dẫn khoa học: TS. Nguyễn Duy Nhật Viễn
Phản biện 1: TS. Ngô Minh Trí
Phản biện 2: TS. Ngô Văn Sỹ
C
C
R
UT.L
D
Luận văn sẽ được bảo vệ trước Hội đồng chấm Luận văn tốt
nghiệp thạc sĩ kỹ thuật điện tử tại Trường Đại học Bách khoa vào
ngày 25 tháng 10
Có thể tìm hiểu luận văn tại:
Trung tâm Học liệu và truyền thông, Trường Đại học Bách khoa - ĐHĐN
Thư viện Khoa Điện tử - viễn thông, Trường Đại học Bách khoa - ĐHĐN
1
MỞ ĐẦU
1. Tính cấp thiết của đề tài
Nhận dạng mặt người (Face recognition) là một lĩnh vực
nghiên cứu của ngành Computer Vision, và cũng được xem là một
lĩnh vực nghiên cứu của ngành Biometrics (tương tự như nhận dạng
vân tay – Fingerprint recognition, hay nhận dạng mống mắt -Iris
recognition). Xét về nguyên tắc chung, nhận dạng mặt có sự tương
đồng rất lớn với nhận dạng vân tay và nhận dạng mống mắt, tuy
nhiên sự khác biệt nằm ở bước trích chọn đặt trưng (feature
extraction) của mỗi lĩnh vực. Trong khi nhận dạng vân tay và mống
mắt đã đạt tới độ chín, tức là có thể áp dụng trên thực tế một cách
rộng rãi thì nhận dạng mặt người vẫn còn nhiều thách thức và vẫn là
một lĩnh vực nghiên cứu thú vị với nhiều người. So với nhận dạng
vân tay và mống mắt, nhận dạng mặt có nguồn dữ liệu phong phú
hơn (bạn có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clip nào
liên quan tới con người trên mạng) và ít đòi hỏi sự tương tác có kiểm
soát hơn (để thực hiện nhận dạng vân tay hay mống mắt, dữ liệu
input lấy từ con người đòi hỏi có sự hợp tác trong môi trường có
kiểm soát).
Nhận dạng khuôn mặt được ứng dụng rất rộng rãi trong đời
sống hằng ngày của con người, như các hệ thống bảo mật, an ninh,
giám sát, quản lý vào ra, tìm kiếm thông tin, ứng dụng trong mạng xã
hội như Facebook, google… Vì vậy nhận dạng khuôn mặt được
nhiều nhóm nghiên cứu, công ty công nghệ lớn trên thế giới quan
tâm. Thêm nữa cùng với sự ra đời và phát triển bùng nổ của khoa
học máy tính, nhận dạng khuôn mặt đang đòi hỏi nhiều yêu cầu cao
về kết quả, độ tin cậy, tính bảo mật.
C
C
R
UT.L
D
Hiện nay, tất cả các thuật toán nhận diện khuôn mặt được phát
2
triển phần lớn đều dựa trên nền tảng hệ thống xử lý tín hiệu số DSP
(Digital Signal Processing) với lượng tài nguyên tính toán rất lớn và
giá thành cao, vì vậy khó có thể tích hợp vào các hệ thống nhận dạng
yêu cầu giá thành thấp. Để giải quyết vấn đề này, luận văn hướng
đến nghiên cứu nhận dạng khuôn mặt trên máy tính nhúng Raspberry
Pi, với đặc trưng là tài nguyên tính toán giới hạn nhỏ gọn, giá thành
thấp nhưng vẫn đảm bảo độ chính xác.
Khi trí tuệ nhân tạo AI và Internet vạn vật (IoT) đang phát
triển mạnh mẽ, cùng với đó là các thiết bị thông minh ngày càng
có sẵn cho người tiêu dùng, nhu cầu về một hệ thống kết nối nhận
dạng khuôn mặt với các tiện ích thông minh trở nên phổ biến thì
máy tính nhúng Raspberry là một trong những lựa chọn phù hợp
và hiệu quả cao.
C
C
R
UT.L
2. Mục đích nghiên cứu
Luận văn xây dựng hệ thống nhận dạng khuôn mặt trên máy
tính nhúng Raspberry Pi 3 sử dụng thư viện mã nguồn mở OpenCV.
Thông qua việc nghiên cứu lý thuyết và thực nghiệm hệ thống nhận
dạng khuôn mặt, luận văn đưa ra khảo sát đánh giá về độ chính xác
cũng như tính đáp ứng thời gian thực, từ đó luận văn hướng đến triển
khai hệ thống nhận dạng ứng dụng trong thực tiễn.
D
3. Đối tượng và phạm vi nghiên cứu
Lý thuyết tổng quan về hệ thống nhận dạng khuôn mặt.
Phương pháp để nhận dạng và phân lớp đối tượng ứng dụng
trong nhận dạng khuôn mặt.
Lý thuyết tổng quan về máy tính nhúng Raspberry Pi và
thư viện xử lý ảnh OpenCV
chập
Thuật toán nhận dạng khuôn mặt sử dụng mạng Neural tích
3
Các tiêu chí đánh giá hiệu năng của hệ thống nhận dạng
khuôn mặt: tỉ lệ nhận dạng đúng, thời gian nhận dạng.
4. Phương pháp nghiên cứu
Luận văn được nghiên cứu theo phương pháp thu thập dữ liệu
kết hợp giữa lý thuyết và thực nghiệm, theo thứ tự sau:
Thu thập tài liệu nghiên cứu, bao gồm tài liệu lý thuyết và
thực nghiệm.
Tìm hiểu, khảo sát cơ sở vật chất, kỹ thuật và công nghệ,
thiết bị sẵn có, linh kiện phù hợp có mặt trên thị trường.
Xây dựng mô hình tổng quan về nhận dạng khuôn mặt trên
hệ thống nhúng (kit Raspberry Pi).
Thao tác thử nghiệm các thuật toán trực tiếp trên phần cứng.
Xây dựng bản demo hệ thống nhận dạng khuôn mặt
C
C
R
UT.L
5. Ý nghĩa khoa học và thực tiễn của đề tài
Luận văn thực hiện lại các nghiên cứu từ các tài liệu, bài báo
cáo khoa học về kỹ thuật nhận dạng khuôn mặt dựa trên nền tảng
OpenCV và Raspberry Pi. Kết quả luận văn sẽ là tài liệu tham khảo
để rút ra ưu điểm và những hạn chế của phương pháp nhận dạng
khuôn mặt trên hệ thống nhúng Raspberry Pi. Trên cơ sở đó có thể
sử dụng Raspberry Pi để ứng dụng vào các hệ thống điều khiển, quản
lý, giám sát, an ninh…
D
6. Bố cục luận văn
Luận văn được chia ra làm 4 chương như sau:
Chương 1: Tổng quan về hệ thống nhận dạng khuôn mặt
Phân tích tổng quan hệ thống nhận dạng khuôn mặt, tình hình
phát triển của kỹ thuật này cũng như tóm tắt sơ lược về các phương
pháp, kỹ thuật nhận dạng khuôn mặt.
Chương 2: Kỹ thuật trích chọn đặc trưng và phương pháp
4
phân lớp ứng dụng trong nhận dạng khuôn mặt
Tập trung phân tích lý thuyết cho hệ thống từ mức tổng quan
đến chi tiết từng thuật toán. Ở chương này, Luận văn trình bày lý
thuyết chung cho từng kỹ thuật ứng dụng trong luận văn: kỹ thuật
phân tích thành phần chính PCA, kỹ thuật huấn luyện bằng phương
pháp đối sánh và phương pháp máy vector hỗ trợ SVM, phương pháp
mạng Neural nhân tạo.
Chương 3: Hệ thống nhận dạng khuôn mặt trên máy tính
nhúng Raspberry Pi 3
Trình bày các kiến thức tổng quan về Raspberry Pi 3 và thư
viện mã nguồn mở OpenCV, quy trình thực hiện nhận dạng khuôn
mặt thực hiện trên Raspberry Pi.
Chương 4: Thực nghiệm và đánh giá hệ thống
Trình bày hệ thống nhận dạng khuôn mặt thực nghiệm, đánh
giá hiệu năng của hệ thống. Từ đó rút ra kết luận và hướng phát triển
của đề tài
Luận văn được thực hiện dựa trên các nguồn tài liệu tham
khảo được thu thập từ nhiều nguồn khác nhau: các bài báo trong các
tạp chí hoặc hội thảo khoa học chuyên ngành, các báo cáo khoa học,
cơ sở dữ liệu Đồ án và Luận văn tại các trường Đại học, được trích
dẫn trong suốt luận văn và danh mục tài liệu được liệt kê cụ thể ở
phần Tài liệu tham khảo.
D
C
C
R
UT.L
5
CHƯƠNG 1
TỔNG QUAN VỀ HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
1.1. Giới thiệu chương
1.2. Tổng quan về hệ thống nhận dạng khuôn mặt
1.2.1. Các vấn đề liên quan
1.2.2. Kiến trúc tổng quát của hệ thống nhận dạng khuôn mặt
Nhận dạng khuôn mặt là một kiểu nhận dạng trực quan, khuôn
mặt được xem là một đối tượng với sự thay đổi của ánh sáng, tư thế,
cảm xúc sẽ được xác định dựa trên ảnh hai chiều. Nhiệm vụ của hệ
thống nhận dạng khuôn mặt là xử lý tự động thông tin từ các hình
ảnh đầu vào và đưa ra quyết định về thông tin khuôn mặt. Trong đề
tài này, cấu trúc của hệ thống nhận dạng khuôn mặt được thực hiện
theo quy trình như hình sau:
C
C
R
UT.L
Image
D
Phát hiện
khuôn mặt
Trích xuất
đặc trưng
Nhận dạng
khuôn mặt
Dữ liệu
khuôn
mặt
Hình 1.1. Kiến trúc tổng quan của hệ thống nhận dạng khuôn mặt
Chức năng từng khối mô tả cụ thể như sau:
Phát hiện khuôn mặt: Hệ thống nhận dạng khuôn mặt đầu
tiên bắt đầu với việc định vị khuôn mặt người trong một hình
6
ảnh cụ thể. Mục đích của bước này là xác định xem hình ảnh đầu
vào có chứa khuôn mặt người hay không. Sự thay đổi của ánh
sáng và biểu cảm khuôn mặt có thể ngăn cản việc phát hiện
khuôn mặt thích hợp.. Nhiều kỹ thuật được sử dụng để phát hiện
và định vị hình ảnh khuôn mặt người, ví dụ, máy dò Viola Jones, biểu đồ của gradient định hướng (HOG), và phân tích
thành phần chính (PCA).
Trích xuất đặc trưng: Chức năng chính của bước này là trích
xuất các đặc điểm của hình ảnh khuôn mặt được phát hiện trong
bước đầu tiên. Bước này đại diện cho một khuôn mặt với một tập
hợp các vectơ đặc điểm được gọi là “đặc trưng” mô tả các đặc điểm
nổi bật của hình ảnh khuôn mặt như miệng, mũi và mắt với sự phân
bố hình học của chúng. Mỗi khuôn mặt được đặc trưng bởi cấu trúc,
kích thước và hình dạng cho phép nó được nhận dạng. Một số kỹ
thuật liên quan đến việc trích xuất hình dạng của miệng, mắt hoặc
mũi để xác định khuôn mặt bằng cách sử dụng kích thước và khoảng
cách. HOG, Eigenface, phân tích thành phần độc lập (ICA), phân
tích phân biệt tuyến tính (LDA), biến đổi tính năng bất biến tỷ lệ
(SIFT), bộ lọc gabor, lượng tử hóa pha cục bộ (LPQ) và kỹ thuật
mẫu nhị phân cục bộ (LBP) được sử dụng rộng rãi để trích xuất các
đặc trưng của khuôn mặt.
Nhận dạng khuôn mặt: Bước này xem xét các đặc trưng
được trích xuất trong bước trích xuất đặc trung và so sánh nó với
các khuôn mặt đã biết được lưu trữ trong cơ sở dữ liệu cụ thể.
Trong bước nhận dạng, một khuôn mặt thử nghiệm được so sánh
với một tập hợp các khuôn mặt trong dữ liệu có sẵn nhằm tìm ra
khuôn mặt phù hợp nhất. Trong bước nhận dạng, một khuôn mặt
kiểm tra được so sánh với các khuôn mặt đã biết trong cơ sở dữ liệu
để đưa ra quyết định.
D
C
C
R
UT.L
7
1.2.3. Những khó khăn, thách thức của hệ thống nhận dạng
khuôn mặt
1.2.4. Những ứng dụng hệ thống nhận dạng khuôn mặt
1.3. Kết luận chương
D
C
C
R
UT.L
8
CHƯƠNG 2
KỸ THUẬT TRÍCH CHỌN ĐẶC TRƯNG VÀ PHƯƠNG PHÁP
PHÂN LỚP ỨNG DỤNG TRONG NHẬN DẠNG KHUÔN MẶT
2.1. Giới thiệu chương
2.2. Kỹ thuật phát hiện khuôn mặt bằng thuật toán Haar
2.2.1. Tổng quan về các đặc trưng Haar-like
2.2.2. Mô hình phân tầng Cascade of Classifiers
2.3. Các phương pháp nhận dạng khuôn mặt
2.3.1. Nhận dạng dựa trên đặc trưng giữa các phần tử
(Feature Based)
2.3.1.1 Phương pháp dùng biến đổi Gabor Wavelet và mạng Neural
2.3.1.2. Phương pháp SVM
2.3.2. Nhận dạng dựa trên xét toàn diện khuôn mặt
2.3.2.1. Nhận dạng bằng PCA
2.3.2.2. Phương pháp LDA
2.4. Kỹ thuật trích chọn đặc trưng PCA
2.4.1. Giới thiệu về phương pháp PCA
2.4.2. Thuật toán PCA
2.5. Phương pháp đối sánh trong nhận dạng
2.6. Phương pháp máy vector hỗ trợ
2.7. Phương pháp mạng Neural tích chập
2.7.1. Nhận dạng khuôn mặt sử dụng mạng neural tích chập
C
C
R
UT.L
D
Hình 2.12. Kiến trúc cơ bản một mạng neural tích chập (CNN)
9
Hình 2.13. Mạng neural ứng dụng trong phân loại đối tượng
2.7.2. Lớp tích chập
2.7.3. Lớp tinh chỉnh đơn vị tuyến tính (ReLU layer)
2.7.4. Pooling layer
2.7.5. Lớp kết nối hoàn chỉnh (The Fully connected layer)
2.7.6. Hàm mất mát (Loss function)
2.8. Kết luận chương
D
C
C
R
UT.L
10
CHƯƠNG 3
XÂY DỰNG HỆ THỐNG NHẬN DẠNG KHUÔN MẶT
TRÊN MÁY TÍNH NHÚNG RASPBERRY PI 3
3.1. Giới thiệu chương
Trong chương này sẽ giới thiệu về máy tính nhúng Raspberry
Pi 3, thư viện mã nguồn mỡ OpenCV và ngôn ngữ Python. Trình bày
quy trình thiết kế hệ thống nhận dạng khuôn mặt trên Raspberry Pi
và các thuật toán thực hiện phát hiện, nhận dạng khuôn mặt được sử
dụng trong hệ thống.
3.2. máy tính nhúng Raspberry Pi 3
3.2.1. Giới thiệu chung
3.2.2. Cấu trúc phần cứng
3.2.3. Hệ điều hành
3.2.4. Ưu, nhược điểm
3.3. Ngôn ngữ Python
3.3.1. Giới thiệu Python
3.3.2. Các chức năng chính của Python
3.4. thư viện OpenCV
3.4.1. Giới thiệu OpenCV
3.4.2. Tổ chức thư viện OPENCV
3.5. Quy trình xây dựng hệ thống nhận dạng khuôn mặt
3.5.1. Sơ đồ chức năng hệ thống nhận dạng khuôn mặt
C
C
R
UT.L
D
Hình 3.5. Sơ đồ quá trình nhận dạng khuôn mặt trên Raspberry Pi 3
11
C
C
R
UT.L
D
Hình 3.6. Sơ đồ chức năng của hệ thống
Quy trình được thực hiện gồm 3 giai đoạn như sau:
Giai đoạn 1: Phát hiện khuôn mặt và thu thập dữ liệu
Phát hiện khuôn mặt là phần có ý nghĩa quan trọng trong hệ
thống nhận dạng khuôn mặt, hệ thống sử dụng phương pháp mạng
neural tích chập nối tầng đa nhiệm (Multi-Task Cascaded
Convolutional Networks: MTCNN) để thực hiện quá trình phát hiện
và cân chỉnh khuôn mặt.
Giai đoạn 2: Trích xuất đặc trưng
Hình ảnh khuôn mặt sau khi được phát hiện và cân chỉnh được
nhúng qua một mạng Neural tích chập CNN. Hệ thống sử dụng
model MobileFaceNets thực hiện trích xuất đặc trưng khuôn mặt.
12
Giai đoạn 3: Nhận dạng khuôn mặt
Ảnh người cần nhận dạng được thu thập bởi Camera, sau đó
quá trình xử lý ảnh khuôn mặt được thực hiện tương tự như giai
đoạn 1 và giai đoạn 2. Hình ảnh sau xử lý cũng được trích xuất
các đặc trưng và được so sánh với cơ sở dữ liệu trong hệ thống.
Nếu xác thực được danh tính khuôn mặt thì hệ thống sẽ xuất kết
quả ID cho khuôn mặt.
Hệ thống ứng dụng phương pháp nhận dạng khuôn mặt sử
dụng mạng Siamese neural network với kỹ thuật học một lần (One
shot learning).
3.5.2. Phát hiện khuôn mặt sử dụng mạng neural tích chập
nối tầng đa nhiệm (MTCNN)
C
C
R
UT.L
3.5.2.1. Giới thiệu
3.5.2.2. Cấu trúc mạng MTCNN cho nhận diện
D
Hình 3.7. Kiến trúc mạng MTCNN
13
C
C
R
UT.L
Hình 3.8. Các bước phát hiện và cân chỉnh khuôn mặt sử dụng
MTCNN
D
3.5.3. Mã hóa và nhận dạng khuôn mặt
Hình 3.9. Quy trình mã hóa khuôn mặt sử dụng mạng
Neural tích chập
14
Hình 3.10. Kết quả mã hóa khuôn mặt thành vecto 128 chiều
C
C
R
UT.L
3.6. Kết luận chương
D
15
CHƯƠNG 4
THỰC NGHIỆM VÀ ĐÁNH GIÁ HỆ THỐNG
4.1. Giới thiệu chương
Trong chương này sẽ giới thiệu về hệ thống thực nghiệm được
xây dựng. Quá trình lựa chọn cơ sở dữ liệu cũng như tiêu chí đánh
giá chất lượng của hệ thống nhận dạng. Từ kết quả thực hiện trực
tiếp trên tập dữ liệu xây dựng để đưa ra đánh giá hiệu quả và chất
lượng của hệ thống thực nghiệm.
4.2. Kết quả thực hiện hệ thống
Hệ thống nhận dạng bao gồm hai phần riêng biệt. Đầu tiên là
C
C
R
UT.L
phần đăng ký thông tin, trong phần này giao diện đăng ký được hiển
thị để thực hiện đăng lý thông tin cá nhân, hình ảnh khuôn mặt tương
D
ứng với thông tin đó. Phần 2 là quá trình nhận dạng của hệ thống, tại
phần này, hệ thống thực hiện quá trình nhận dạng và thông tin ID
được hiển thị
Sau khi khởi tạo giao diện đăng ký, các thông tin như trên giao
diện được đăng ký cho một đối tượng. Hình ảnh khuôn mặt có thể
được chọn từ dữ liệu có sẵn hoặc đăng ký hình ảnh trực tiếp từ
camera.
16
C
C
R
UT.L
Hình 4.2. Quá trình đăng ký từ những hình ảnh có sẵn
D
Hình 4.3. Quá trình đăng ký hình ảnh trực tiếp từ camera
17
Sau khi thực hiện đăng ký xong cho các đối tượng, hệ thống
khởi tạo chương trình nhận dạng. Giao diện nhận dạng được hiển thị
như hình 4.5. Trên giao diện hiển thị thông tin của đối tượng bao
gồm họ tên, tỷ lệ trùng khớp, khuôn mặt và thời gian hệ thống nhận
dạng được.
C
C
R
UT.L
D
Hình 4.5. Giao diện nhận dạng khuôn mặt
Hình 4.6. Hệ thống nhận dạng nhiều đối tượng cùng lúc
18
4.3. Đánh giá hệ thống
4.3.1. Tiêu chí đánh giá
Bảng 4.1. Ma trận confusion matrix
Kết quả
Nhãn
P
N
T
True positive (TP)
False positive (FP)
F
False negative (FN)
True negative (TN)
Các tham số trong bảng được hiểu như sau:
TP (True Positives): là tổng số nhãn P được nhận dạng đúng
là P
C
C
R
UT.L
FP (False Positives): là tổng số nhãn N được nhận dạng là P
TN (True Negatives): là tổng số nhãn N được nhận dạng
D
đúng là N
FN (False Negatives): là tổng số nhãn P được nhận dạng là
N
Để đánh giá hiệu suất nhận dạng, độ tin cậy và độ chính xác
của các thuật toán được phát triển, các tiêu chí đánh giá sau đây được
sử dụng:
RC =
TP
TP + FN
, PR =
TPR
TP
TP + FP
TP
TP FN
, ACC =
, TNR
TP + TN
TP + TN + FP + FN
TN
TN+FP
(4.1)
Trong đó:
RC (recall) - Tỉ lệ nhận dạng đúng
PR (precision) - Độ tin cậy
Acc (Accuracy) - Độ chính xác: Tham số này là sự dung hòa
- Xem thêm -