SlideShare a Scribd company logo
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Đồ án tốt nghiệp
XÂY DỰNG HỆ THỐNG NHẬN DIỆN
KHUÔN MẶT
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
CHƯƠNG 1. TỔNG QUAN BÀI TOÁN NHẬN DIỆN KHUÔN MẶT
1.1. Bài toán nhận dạng mặt người và những khó khăn
1.1.1. Bài toán nhận dạng mặt người
Hệ thống nhận dạng mặt người là một hệ thống nhận vào là một ảnh
hoặc một đoạn video (một dòng các hình ảnh liên tục). Qua xử lý, tính toán
hệ thống xác định được vị trí mặt người (nếu có) trong ảnh và xác định là
người nào trong số những người mà hệ thống đã được biết (qua quá trình
học) hoặc là người lạ.[1].
Hình 0.1 Hệ thống nhận dạng mặt người
1.1.2. Những khó khăn của hệ thống nhận dạng khuôn mặt
Bài toán nhận dạng mặt người là bài toán đã được nghiên cứu từ
những năm 70. Tuy nhiên, đây là một bài toán khó nên những nghiên cứu
hiện tại vẫn chưa đạt được những kết quả mong muốn. Chính vì thế, vấn đề
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
này vẫn đang được nhiều nhóm trên thế giới quan tâm nghiên cứu. Khó
khăn của bài toán nhận dạng mặt người có thể kể đến như sau:
a) Tư thế chụp, góc chụp: Ảnh chụp khuôn mặt có thể thay đổi rất
nhiều bởi vì góc chụp giữa camera và khuôn mặt. Chẳng hạn như: chụp
thẳng, chụp chéo bên trái 45o hay chụp chéo bên phải 45o, chụp từ trên
xuống, chụp từ dưới lên, v.v… Với các tư thế khác nhau, các thành phần
trên khuôn mặt như mắt, mũi, miệng có thể bị khuất một phần hoặc thậm
chí khuất hết.
b) Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: Các
đặc trưng như: râu mép, râu hàm, mắt kính, v.v… có thể xuất hiện hoặc
không. Vấn đề này làm cho bài toán càng trở nên khó hơn rất nhiều.
c) Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt con người
có thể làm ảnh hưởng đáng kể lên các thông số của khuôn mặt. Chẳng hạn,
cùng một khuôn mặt một người, nhưng có thể sẽ rất khác khi họ cười hoặc
sợ hãi, v.v…
d) Sự che khuất: Khuôn mặt có thể bị che khuất bởi các đối tượng
khác hoặc các khuôn mặt khác.
e) Hướng của ảnh (pose variations): Các ảnh khuôn mặt có thể biến
đổi rất nhiều với các góc quay khác nhau của trục camera. Chẳng hạn chụp
với trục máy ảnh nghiêng làm cho khuôn mặt bị nghiêng so với trục của
ảnh.
f) Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau
về: chiếu sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại,
v.v…), ảnh có chất lượng thấp ảnh hưởng rất nhiều đến chất lượng ảnh
khuôn mặt.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
g) Aging condition: Việc nhận dạng ảnh mặt thay đổi theo thời gian
còn là một vấn đề khó khăn, ngay cả đối với khả năng nhận dạng của con
người.
h) Các hệ thống cực lớn (very large scale systems): Các CSDL ảnh
mặt được test bởi các nhà nghiên cứu còn khá nhỏ (vài trăm tới vài chục
nghìn ảnh mặt), tuy nhiên trên thực tế các CSDL có thể rất lớn, ví dụ CSDL
ảnh mặt của cảnh sát của một đất nước có thể chứa từ hàng triệu tới hơn 1
tỷ ảnh…
1.1.3. Tổng quan kiến trúc của một hệ thống nhận dạng mặt người
Một hệ thống nhận dạng mặt người thông thường bao gồm bốn bước xử lý
sau:
- Phát hiện khuôn mặt (Face Detection).
- Phân đoạn khuôn mặt (Face Alignment hay Segmentation).
- Trích chọn đặc trưng (Feature Extraction).
- Nhận dạng (Recognition) hay Phân lớp khuôn mặt (Face
Classification).
Hình 1.2 Các bước chính trong hệ thống nhận dạng khuôn mặt
Phát hiện khuôn mặt dò tìm, định vị những vùng (vị trí) có thể là
khuôn mặt xuất hiện trong ảnh hoặc các frame video. Các vùng này sẽ được
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
tách riêng để xử lý. Phân đoạn khuôn mặt sẽ xác định vị trí mắt mũi, miệng
và các thành phần khác của khuôn mặt và chuyển kết quả này cho bước
trích chọn đặc trưng. Ở bước trích chọn đặc trưng, bằng một phương pháp
trích chọn đặc điểm nào đó (mẫu nhị phân cục bộ-Local Binary Pattern-
LBP, Gabor wavelets…) sẽ được sử dụng với ảnh mặt để trích xuất các
thông tin đặc trưng cho ảnh từ các thông tin về các thành phần trên khuôn
mặt, kết quả là mỗi ảnh sẽ được biểu diễn dưới dạng một vector đặc trưng
(feature vector). Những vectơ đặc trưng này sẽ là dữ liệu đầu vào cho một
mô hình đã được huấn luyện trước để nhận dạng khuôn mặt (Face
Recognition) hay phân lớp khuôn mặt (Face Lớpifition), tức là xác định
danh tính (identity) hay nhãn của ảnh-đó là ảnh của ai. Ở bước nhận dạng
khuôn mặt (Face Recognition), thường thì phương pháp k-láng giềng gần
(k-nearest neighbor: kNN) sẽ được sử dụng.
Bên cạnh những bước chính nêu trên, chúng ta còn có thể áp dụng
thêm một số bước khác như tiền xử lý, hậu xử lý nhằm làm tăng độ chính
xác cho hệ thống. Ví dụ, sau bước phát hiện khuôn mặt, ta có thể thực hiện
bước tiền xử lý (Preprocessing) bao gồm các bước căn chỉnh ảnh (face
image alignment) và chuẩn hóa ánh sáng (illumination normalization).
Do một số thông số như: tư thế khuôn mặt, độ sáng, điều kiện ánh
sáng, v.v… phát hiện khuôn mặt được đánh giá là bước khó khăn và quan
trọng nhất so với các bước còn lại của hệ thống. Tuy nhiên, trong phạm vi
đồ án này, không tập trung tìm hiểu bước phát hiện khuôn mặt mà chỉ tập
trung chủ yếu vào bước nhận dạng khuôn mặt.
Dữ liệu cho một hệ thống nhận dạng mặt được chia làm 3 tập: tập
huấn luyện (training set), tập tham chiếu (reference set haygallery set) và
tập để nhận dạng (probeset hay query set, đôi khi còngọi là test set). Trong
nhiều hệ thống, tập training trùng với tập reference. Tập training gồm các
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
ảnh được dùng để huấn luyện (hay học-learning), thông thường tập này
được dùng để sinh ra một không gian con (projection subspace) là một ma
trận và phương pháp hay được sử dụng là PCA (Principal Component
Analysis), WPCA (Whitened PCA), LDA (Linear Discriminant Analysis),
KPCA (Kernel PCA). Tập reference gồm các ảnh đã biết danh tính được
chiếu (projected) vào không gian con ở bước training. Bước training nhằm
2 mục đích: giảm số chiều (dimension reduction) của các vector đặc điểm
(feature vector) vì các vector này thường có độ dài khá lớn (vài nghìn tới
vài trăm nghìn) nên nếu để nguyên thì việc tính toán sẽ rất rất lâu, thứ hai là
làm tăng tính phân biệt (discriminative) giữa các ảnh khác lớp (định danh
khác nhau), ngoài ra có thể làm giảm tính phân biệt giữa các ảnh thuộc về
một lớp (tùy theo phương pháp, ví dụ như Linear Discriminant Analysis
LDA- còn gọi là Fisher Linear Discriminant Analysis-Fisherface là một
phương pháp làm việc với tập training mà mỗi đối tượng có nhiều ảnh mặt
ở các điều kiện khác nhau). Sau khi thực hiện chiếu tập reference vào
không gian con, hệ thống lưu lại kết quả là một ma trận với mỗi cột của ma
trận là một vectơ tương ứng với ảnh (định danh đã biết) để thực hiện nhận
dạng (hay phân lớp). Nhận dạng (hay phân lớp) được thực hiện với tập các
ảnh probe, sau khi tiền xử lý xong, mỗi ảnh sẽ được áp dụng phương pháp
trích chọn đặc điểm (như với các ảnh thuộc tập training và reference) và
được chiếu vào không gian con. Tiếp đến việc phân lớp sẽ dựa trên phương
pháp k-NN, định danh của một ảnh cần xác định sẽ được gán là định danh
của ảnh có khoảng cách (distance) gần với nó nhất. Ở đây cần lưu ý là mỗi
ảnh là một vector nên có thể dùng khái niệm hàm khoảng cách giữa hai
vector để đo sự khác biệt giữa các ảnh.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
1.1.4. Ngôn ngữ lập trình
Để giải quyết bài toán nhận dạng khuôn mặt sử dụng thư viện
OpenCV, chúng ta có thể sử dụng các ngôn ngữ lập trình như: .NET C#,
VB, IronPython, Java, C++…
Trong đồ án này ngôn ngữ lập trình được sử dụng là Python viết trên
phần mềm Pycharm.
1.2. Các bài toán khác nhau về dữ liệu khuôn mặt và một số lĩnh vực
ứng dụng
1.2.1. Một số bài toán nhận dạng khuôn mặt
Có nhiều lớp bài toán khác nhau liên quan đến dữ liệu khuôn mặt.
Một trong số 4 bài toán phổ biến nhất dựa trên nhu cầu thực tế cần áp dụng
đó là:
Nhận diện khuôn mặt (face identification): Đây là bài toán match
one-many. Bài toán này sẽ trả lời cho câu hỏi “người này là ai?” bằng cách
nhận dữ liệu đầu vào là ảnh khuôn mặt và đầu ra là nhãn tên người trong
ảnh. Tác vụ này thường được áp dụng trong các hệ thống chấm công, hệ
thống giám sát công dân, hệ thống camera thông minh tại các đô thị.
Xác thực khuôn mặt (face verification): Đây là bài toán match one-
one. Bài toán này trả lời cho câu hỏi “có phải 2 ảnh đầu vào là cùng một
người không?” Kết quả đầu ra sẽ là yes hoặc no. Bài toán thường được
dùng trong các hệ thống bảo mật. Xác thực khuôn mặt trên điện thoại là
một bài toán như vậy.
Tìm kiếm khuôn mặt đại diện (face clustering): Đơn giản chỉ cần tính
ra trung bình của các ảnh khuôn mặt để thu được centroid image. Tính
điểm tương đồng giữa trọng tâm với toàn bộ khuôn mặt còn lại để thu được
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
khuôn mặt đặc trưng nhất giống nhất với gốc. Tương tự như vậy cũng có
thể tìm ra khuôn mặt đặc trưng nhất của nam, nữ các quốc gia.
Hình 0.2 Gương mặt đặc trưng các quốc gia
Tìm kiếm khuôn mặt tương đương (face similarity): Thuật toán này
khá đơn giản, chỉ cần đo lường ảnh upload lên với các ảnh sẵn có và chọn
ra một cái gần giống nhất.
1.2.2. Một số lĩnh vực ứng dụng nhậndiện khuôn mặt
Xác định khuôn mặt đã được ứng dụng nhiều trong các lĩnh vực:
* Hệ thống tương tác giữa người và máy (điều kiển máy tính qua các
cử động của khuôn mặt).
* Hệ thống nhận dạng người (giúp cho các cơ quan an ninh quản lý
tốt con người).
* Hệ thống quan sát, bảo vệ, quản lý việc ra vào cho các cơ quan và
công ty.
* Hệ thống trợ giúp lái xe, hệ thống phân tích cảm xúc trên khuôn
mặt, và hệ thống nhận dạng khuôn mặt cho các máy ảnh kỹ thuật số...
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
1.3. Một số phương pháp nhận diện khuôn mặt
1.3.1. Bài toán xác định mặt người
Nhận dạng khuôn mặt người (Face Detection) là một kỹ thuật máy
tính để xác định các vị trí và các kích thước của các khuôn mặt người trong
các ảnh bất kỳ (ảnh kỹ thuật số) nếu có. Kỹ thuật này nhận biết các đặc
trưng của khuôn mặt và bỏ qua những thứ khác, như: tòa nhà, cây cối, cơ
thể
Có nhiều nghiên cứu tìm phương pháp xác định khuôn mặt người, từ
ảnh xám đến ảnh màu. Dựa vào tính chất của các phương pháp xác định
mặt người trên ảnh, các phương pháp này được chia thành bốn loại chính,
tương ứng với bốn hướng tiếp cận khác nhau.
- Hướng tiếp cận dựa trên tri thức (knowledge-based) [2].
- Hướng tiếp cận dựa trên các đặc trưng không đổi
(feature invariant).
- Hướng tiếp cận dựa trên phương pháp đối sánh mẫu
(Template matching).
- Hướng tiếp cận dựa trên diện mạo (appearance-based).
Ngoài ra cũng có rất nhiều nghiên cứu mà phương pháp xác định mặt
người không chỉ dựa vào một hướng mà có liên quan đến nhiều hướng.
Trong phạm vi đồ án môn học này, chỉ giới thiệu tổng quan các hướng tiếp
cận để xác định khuôn mặt người trong ảnh.
1.3.2. Hướng tiếp cận dựa trên tri thức (knowledge-based)
Trong hướng tiếp cận này, các luật sẽ phụ thuộc rất lớn vào tri thức
của những tác giả nghiên cứu về bài toán xác định khuôn mặt người. Đây là
hướng tiếp cận dạng top-down. Dễ dàng xây dựng các luật cơ bản để mô tả
các đặc trưng của khuôn mặt và các quan hệ tương ứng. Ví dụ, một khuôn
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
mặt thường có hai mắt đối xứng nhau qua trục thẳng đứng ở giữa khuôn
mặt và có một mũi, một miệng.
Hình 0.3 Nhận dạng dựa trên tri thức
Một vấn đề khá phức tạp khi dùng hướng tiếp cận này là làm sao
chuyển từ tri thức con người sang các luật một cách hiệu quả. Nếu các luật
này quá chi tiết thì khi xác định có thể xác định thiếu các khuôn mặt có
trong ảnh, vì những khuôn mặt này không thể thỏa mãn tất cả các luật đưa
ra. Nhưng các luật tổng quát quá thì có thể chúng ta sẽ xác định nhầm một
vùng nào đó trên thực tế không phải là khuôn mặt nhưng lại xác định là
khuôn mặt. Và cũng khó khăn mở rộng yêu cầu từ bài toán để xác định các
khuôn mặt có nhiều tư thế khác nhau.
Một số nghiên cứu áp dụng phương pháp này từ rất sớm như:
Kanade 1973, G. Yang 1994 và Kotropoulos 1997.[1]
1.3.3. Hướng tiếp cận dựa trên các đặc trưng không đổi (feature invariant)
Đây là hướng tiếp cập theo kiểu bottom-up. Các tác giả cố gắng tìm
các đặc trưng không thay đổi của khuôn mặt người để xác định khuôn mặt
người. Dựa trên nhận xét thực tế, con người dễ dàng nhận biết các khuôn
mặt và các đối tượng trong các tư thế khác nhau và điều kiện ánh sáng khác
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
nhau, thì phải tồn tại các thuộc tính hay đặc trưng không thay đổi. Có nhiều
nghiên cứu đầu tiên xác định các đặc trưng khuôn mặt rồi chỉ ra có khuôn
mặt trong ảnh hay không. Các đặc trưng như lông mày, mắt, mũi, miệng,
và đường viền của tóc được trích bằng phương pháp xác định cạnh. Trên cơ
sở các đặc trưng này, xây dựng một mô hình thống kê để mô tả quan hệ của
các đặc trưng này và xác định sự tồn tại của khuôn mặt trong ảnh. Một vấn
đề của thuật toán theo hướng tiếp cận này đó là cần phải điều chỉnh cho
phù hợp điều kiện ánh sáng, nhiễu, và bị che khuất. Đôi khi bóng của một
khuôn mặt sẽ tạo thêm cạnh mới, mà cạnh này lại rõ ràng hơn cạnh thật sự
của khuôn mặt, gây ra sự nhầm lẫn khi xác định các khuôn mặt.
Các công trình sử dụng hướng tiếp cận này có thể kể như: K. C. Yow
và R. Cipolla 199, T. K. Leung 1995.[1]
1.3.4. Hướng tiếp cận dựa trên phương pháp đối sánh mẫu (Template
matching)
Trong phương pháp đối sánh mẫu, các mẫu chuẩn của khuôn mặt
(thường là khuôn mặt được chụp thẳng) sẽ được xác định trước hoặc xác
định các tham số thông qua một hàm. Từ một ảnh đưa vào, tính các giá trị
tương quan so với các mẫu chuẩn về đường viền khuôn mặt, mắt, mũi và
miệng. Thông qua các giá trị tương quan này mà các tác giả quyết định có
hay không tồn tại khuôn mặt trong ảnh. Hướng tiếp cận này có lợi thế là rất
dễ cài đặt, nhưng không hiệu quả khi tỷ lệ, tư thế và hình dáng thay đổi.
Nhiều độ phân giải, đa tỷ lệ, các mẫu con và các mẫu biến dạng được xem
xét thành bất biến về tỷ lệ và hình dáng.
I.Craw 1992 đã áp dụng một mẫu cứng trong khi A. Lanitis 1995 sử
dụng một mẫu có thể biến dạng trong bước phát hiện khuôn mặt.[1]
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 0.4 Nhận dạng dựa trên phương pháp đối sánh mẫu
1.3.5. Hướng tiếp cận dựa trên diện mạo (appearance-based)
Trái ngược hẳn với hướng tiếp cận dựa trên đối sánh mẫu, các mô
hình (hay các mẫu) được học từ một tập ảnh huấn luyện trước đó. Sau đó
hệ thống (mô hình) sẽ xác định khuôn mặt người. Do phương pháp này
thường dùng một mô hình máy học nên còn được gọi là phương pháp dựa
trên máy học (machine learning-based).
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 0.5 Tập ảnh dùng để huấn luyện mặt người
Sau đó hệ thống sẽ tổng hợp tất cả các đặc tinh của khuôn mặt con
người như: mắt, mũi, miệng ... thành một vector riêng.
Có nhiều mô hình máy học được áp dụng trong hướng tiếp cận này:
Eigenface (M. Turk và A. Pentland 1991), Mô hình dựa trên phân phối (K.
K. Sung and T. Poggio 1998). Mojang Neural (H. Rowley 1998), Support
Vector Machine (E. Osuna et al 1997). Phân lớp Bayes (H. Schneiderman
và T. Kanade 1998). Mô hình Markov ẩn (A. Rajagopalan et al 1998) và
các mô hình tăng cường (Adaboost của P. Viola và M. Jones 2001;
FloatBoost do Stan Z. Li và Zhen Qiu Zhang 2004).[1]
Trên đây là giới thiệu tổng quan bốn hướng tiếp cận để xác định khuôn mặt
người trong ảnh và trong đồ án này, hướng tiếp cận dựa trên diện mạo
(appearance-based) được lựa chọn để thực hiện phát hiện khuôn mặt người
trong ảnh.
1.4. Hướng tiếp cận được thử nghiệm trong đồ án
Trong đề tài xác định khuôn mặt người, em sẽ đi theo hướng tiếp
cận dựa trên diện mạo. Cụ thể là em sẽ trình bày phương pháp tiêu biểu của
phương pháp máy học đó là: Mạng Nơ-ron
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
1.4.1. Mạng Nơ-ron nhân tạo
Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản(hay còn
gọi là nơ-ron) hoạt động song song và được nối với nhau bằng các liên kết
nơ-ron. Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho tính kích
hoạt hay ức chế của các nơron
1.4.2. Ứng dụng của mạng Nơ-ron trong bàitoán xác định khuôn mặt
Mạng Nơ-ron được áp dụng rộng rãi và tương đối thành công trong
các bài toán nhận dạng mẫu như: Nhận diện kí tự ( nhận diện chữ viết), đối
tượng (object) , điều khiển robot …Một trong những ưu điểm của mạng nơ-
ron là tính khả thi của hệ thống học là cơ sở dữ liệu mẫu đa dạng và phức
tạp vì vậy khả năng phát hiện khuôn mặt rất lớn.Tuy nhiên điều trở ngại là
các kiến trúc mạng đều quá lớn ,vì vậy khi áp dụng vào trường hợp cụ thể
phải xác định rõ ràng số lượng tầng ,số lượng node , tỉ lệ … cho từng
trường hợp.
Theo đánh giá của các chuyên gia thì phương pháp xác định mặt
người bằng mang nơ-ron của Rowel đối với ảnh xám là tốt nhất. Một mạng
đa tầng được dùng để học các mẫu khuôn mặt và không phải là khuôn mặt
từ các ảnh tương ứng ( dựa trên quan hệ về cường độ và mặt không gian
của các điểm ảnh). Đây cũng là phương pháp mạng nơ-ron mà em sẽ trình
bày cụ thể trong các chương sau của luận văn.
1.4.3. Cácbước xác định khuôn mặt dựa trên mạng Nơ-ron
Hệ thống xác định khuôn mặt thực hiện các bước chính sau :
 Ước lượng vị trí: việc dùng tiếp cận máy học, cụ thể là
mạng Nơ-ron, đòi hỏi việc huấn luyện mẫu. Để giảm số lượng biến
đổi trong ảnh huấn luyện dương, ảnh được canh biên với các ảnh
khác để cực tiểu hoá các biến đổi vị trí đặc trưng khuôn mặt. Khi thi
hành chương trình, ta không biết chính xác các vị trí đặc trưng khuôn
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
mặt, do đó không thể dùng chúng để định vị các ứng viên khuôn mặt
tiềm năng. Thay vậy, ta dò tìm toàn diện ở mọi vị trí và tỷ lệ để tìm
mọi vị trí ứng viên. Các cải tiến dò tìm toàn diện làm cho thuật toán
nhanh hơn, với tỷ lệ dò tìm giảm 10% đến 30%.
 Tiền xử lý: để giảm các biến đổi gây ra do chiếu sáng
hay camera, ảnh được tiền xử lý với các thuật toán chuẩn như cân
bằng lược đồ để cải thiện độ sáng và độ tương phản trong ảnh. Sau
đó ta tiến hành phân mảnh ảnh và rút trích các đặc trưng quan trọng
của khuôn mặt, đồng thời tiến hành phân tích độ nhạy để lọc bỏ các
thông tin dư thừa.
 Dò tìm: các khuôn mặt tiềm năng đã chuẩn hoá về vị trí,
tư thế, và độ sáng trong hai bước đầu tiên được khảo sát để xác định
chúng có thực sự là khuôn mặt hay không. Quyết định này được thực
hiện bằng mạng Nơ-ron đã huấn luyện với nhiều ảnh mẫu khuôn mặt
và không khuôn mặt.
 Quyết định: Kết hợp nhiều mạng để có được một quyết
định khách quan nhất. Mỗi mạng học những điều khác nhau từ dữ
liệu huấn luyện, và đưa ra các lỗi khác nhau. Các quyết định của
chúng có thể kết hợp dùng một số phương thức đơn giản khác, làm
tăng độ chính xác dò tìm khuôn mặt và ngăn chặn lỗi.
1.5. Kết luận chương 1
Nhận dạng khuôn mặt là một bài toán lâu đời và được nghiên cứu
rộng rãi trong khoảng hơn 30 năm trở lại đây. Bài toán nhận dạng khuôn
mặt có thể áp dụng rộng rãi trong nhiều lĩnh vực khác nhau. Các ứng dụng
liên quan đến nhận dạng khuôn mặt có thể kể như: Hệ thống phát hiện tội
phạm, hệ thống theo dõi nhân sự trong một đơn vị, hệ thống tìm kiếm thông
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
tin trên ảnh, video dựa trên nội dung, … có rất nhiều phương pháp nhận
diện khuôn mặt, xét thấy phương pháp nhận diện theo hướng tiếp cận dựa
trên diện mạo (appearance-based) tổng hợp tất cả các đặc tính của khuôn
mặt con người như: mắt, mũi, miệng ... thành một vector riêng có hiệu suất
nhận dạng cao, tính ứng dụng rộng rãi, nhiều bộ dữ liệu theo mô hình này
được sử dụng cho bài toán nhận diện.
Hiện nay, bài toán nhận dạng khuôn mặt gặp nhiều thách thức, ví dụ
như hệ thống camera công cộng, chụp hình vui chơi thì ảnh mặt nhận được
có thể bị che khuấn một phần, ảnh chụp không chính diện hay chất lượng
ảnh không tốt, những yếu tố này ảnh hưởng không nhỏ đến các thuật toán
nhận dạng khuôn mặt. Có nhiều thuật toán khắc phục điều này, họ sử dụng
một số kỹ thuật như xác định nhiều điểm chính trên khuôn mặt, lấy những
chi tiết nhỏ hay sử dụng các phương pháp Học Sâu. Thuật toán Facenet là
một trong số những thuật toán phổ biến hiện nay, FaceNet sẽ học cách ánh
xạ từ ảnh khuôn mặt vào không gian Euclide compact với khoảng cách đo
được tương ứng với độ tương đồng của khuôn mặt. Thuật toán này có thể
tạo ra vector đặc trưng và nhúng vào bài toán nhận dạng khuôn mặt, kiểm
tra khuôn mặt và phân cụm khuôn mặt.
CHƯƠNG 2. MTCNN VÀ THUẬT TOÁN FACENET TRONG PHÁT
HIỆN VÀ NHẬN DIỆN KHUÔN MẶT
2.1. Tổng quan Neural Network
2.1.1. Giới thiệu mạng Neural
Mạng Neural là một mô hình xử lý thông tin mô phỏng theo cách thức
xử lý thông tin của các hệ Neural sinh học của sinh vật. Mạng Neural được
xây dựng nên từ một số lượng lớn các phần tử (Neural) kết nối với nhau
thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất
để giải quyết một vấn đề cụ thể nào đó. Mô hình mạng Neural giống như
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
bộ não con người, được học bởi kinh nghiệm (thông qua huấn luyện), có
khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những
tri thức đó trong việc dự đoán các dữ liệu chưa biết.
Hình 2.2.1 Cấu trúc mạng Neural
Các thành phần cơ bản của một Neural nhân tạo bao gồm:
- Input : Các tín hiệu đầu vào của Neural thể hiện thuộc tính của dữ
liệu, các tín hiệu này thường được đưa vào dưới dạng một vector.
- Trọng số liên kết (Connection Weights): Mỗi liên kết được thể
hiện bởi một trọng số liên kết. Trọng số liên kết giữa tín hiệu vào
thứ j với Neural k thường được kí hiệu là wkj. Thông thường, các
trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi
tạo mạng và được cập nhật liên tục trong quá trình học mạng.
- Hàm tổng (Summation) : Tính tổng trọng số của tất cả các tín hiệu
đầu vào được đưa vào mỗi Neural.
- Hàm truyền (Transfer function): Hàm này được dùng để giới hạn
phạm vi đầu ra của mỗi Neural. Nó nhận đầu vào là kết quả của
hàm tổng và ngưỡng.
- Output: Là tín hiệu đầu ra của một Neural, với mỗi Neural sẽ có
tối đa là một đầu ra.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Xét về mặt toán học, cấu trúc của một Neural k, được mô tả bằng cặp
biểu thức sau:
1
w
p
k kj j
j
u x

 
 (1.1)
 
k k k
y f u b
  (1.2)
Trong đó:
- x1, x2, ..., xp: là các tín hiệu vào.
- (wk1, wk2,..., wkp) là các trọng số liên kết của Neural thứ k.
- uk là hàm tổng.
- bk là độ lệch trong quá trình truyền.
- f là hàm truyền.
- yk là tín hiệu đầu ra của Neural.
Như vậy Neural nhân tạo nhận các tín hiệu đầu vào, xử lý (nhân các
tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả
tới hàm truyền), và cho một tín hiệu đầu ra ( là kết quả của hàm truyền).
2.1.2. Phân loại
a) Mạng thần kinh nhân tạo (ANN)
ANN ra đời xuất phát từ ý tưởng mô phỏng bộ não con người. Mạng
thần kinh nhân tạo (ANN), là một nhóm gồm nhiều perceptron hoặc
neural ở mỗi lớp. ANN còn được gọi là mạng Neural Feed-Forward vì các
đầu vào chỉ được xử lí theo hướng chuyển tiếp.
Mạng thần kinh nhân tạo là một trong những biến thể đơn giản nhất
của mạng neural. Chúng truyền thông tin theo một hướng, qua các nút đầu
vào khác nhau, cho đến khi nó đến được nút đầu ra.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.2 Hoạt động của ANN
ANN bao gồm 3 lớp - Đầu vào, Ẩn và Đầu ra. Lớp đầu vào chấp
nhận các tín hiệu đầu vào, lớp ẩn xử lý các tín hiệu đầu vào và lớp đầu ra
tạo ra kết quả. Về cơ bản, mỗi lớp cố gắng tìm hiểu các trọng lượng nhất
định.
ANN có thể được sử dụng để giải quyết các vấn đề liên quan đến:
 Dữ liệu dạng bảng
 Dữ liệu hình ảnh
 Dữ liệu văn bản
Ưu điểm:
 Mạng nơron nhân tạo có khả năng học bất kỳ hàm phi tuyến nào. Do
đó, những mạng này thường được biết đến với cái tên Phương
pháp xấp xỉ hàm phổ quát . ANN có khả năng tìm hiểu các trọng số
ánh xạ bất kỳ đầu vào nào với đầu ra.
 Lưu trữ thông tin trên toàn bộ mạng.
 Khả năng làm việc với kiến thức chưa hoàn thiện.
 Có khả năng chịu lỗi.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
 Có bộ nhớ phân tán.
Nhược điểm:
Với bài toán phân loại ảnh bằng ANN, bước đầu tiên là chuyển ảnh 2
chiều thành vectơ 1 chiều trước khi huấn luyện mô hình. Điều này có ba
nhược điểm:
 Số lượng các thông số có thể huấn luyện tăng lên đáng kể với sự gia
tăng kích thước của hình ảnh.
Hình 2.2.2 ANN: Phân loại hình ảnh
Trong trường hợp trên, nếu kích thước của hình ảnh là 224 x 224, thì
số lượng tham số có thể tra được ở lớp ẩn đầu tiên chỉ với 4 nơ-ron là
602.112.
 ANN làm mất các tính năng không gian của hình ảnh. Các tính năng
không gian đề cập đến sự sắp xếp của các pixel trong một hình ảnh.
 ANN không thể nắm bắt thông tin tuần tự trong dữ liệu đầu vào được
yêu cầu để xử lý dữ liệu trình tự.
b) Mạng thần kinh tái tạo (RNN)
Sự khác biệt giữa RNN và ANN từ quan điểm kiến trúc:
 Một ràng buộc lặp trên lớp ẩn của ANN chuyển thành RNN.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.2.3 RNN và ANN
Mạng thần kinh tái tạo (RNN) có một kết nối lặp lại ở trạng thái
ẩn. Ràng buộc lặp này đảm bảo rằng thông tin tuần tự được ghi lại trong dữ
liệu đầu vào. RNN lưu đầu ra của các nút xử lý và đưa kết quả trở lại mô
hình (không chuyển thông tin chỉ theo một hướng). Đây là cách mô hình
được cho là học cách dự đoán kết quả của một lớp. Mỗi nút trong mô hình
RNN hoạt động như một ô nhớ, tiếp tục tính toán và thực hiện các hoạt
động. Nếu dự đoán của mạng không chính xác, thì hệ thống sẽ tự học và
tiếp tục làm việc để hướng tới dự đoán chính xác trong quá trình nhân
giống ngược.
Chúng ta có thể sử dụng mạng thần kinh tái tạo để giải quyết các vấn
đề liên quan đến:
 Dữ liệu chuỗi thời gian
 Dữ liệu văn bản
 Dữ liệu âm thanh
Ưu điểm:
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
 RNN ghi nhớ từng thông tin theo thời gian. RNN chỉ hữu ích
trong dự đoán chuỗi thời gian vì tính năng ghi nhớ các đầu vào
trước đó. Đây được gọi là trí nhớ ngắn hạn dài hạn.
 RNN còn được sử dụng với các lớp phức hợp để mở rộng vùng
lân cận pixel hiệu quả.
Nhược điểm:
 Các RNN sâu (RNN với một số lượng lớn các bước thời gian)
cũng gặp phải vấn đề Gradient biến mất và các vấn đề bùng nổ.
 Huấn luyện một RNN là một nhiệm vụ rất khó khăn.
 RNN không thể xử lý các chuỗi rất dài nếu sử dụng tanh hoặc
relu làm hàm kích hoạt.
c) Mạng thần kinh tích chập (Convolutional Neural Network - CNN)
Mạng thần kinh tích chập (CNN) là một trong những mô hình phổ
biến nhất được sử dụng hiện nay. Mạng thần kinh tích chập có kiến trúc
khác với Mạng thần kinh thông thường. Mạng thần kinh bình thường
chuyển đổi đầu vào thông qua hàng loạt các tầng ẩn. Mỗi tầng là một tập
các nơ-ron và các tầng được liên kết đầy đủ với các nơ-ron ở tầng trước đó.
Và ở tầng cuối cùng sẽ là tầng kết quả đại diện cho dự đoán của mạng.
Mạng thần kinh tích chập được chia thành 3 chiều: rộng, cao, và sâu. Các
nơ-ron trong mạng không liên kết hoàn toàn với toàn bộ nơ-ron tầng trước
chỉ liên kết tới một vùng nhỏ. Cuối cùng, một tầng đầu ra được tối giản
thành véc-tơ của giá trị xác suất.
CNN gồm hai thành phần:
 Phần tầng ẩn hay phần rút trích đặc trưng: trong phần này, mạng sẽ
tiến hành tính toán hàng loạt phép tích chập và phép hợp nhất (pooling)
để phát hiện các đặc trưng. Ví dụ: nếu ta có hình ảnh con ngựa vằn, thì
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
trong phần này mạng sẽ nhận diện các sọc vằn, hai tai, và bốn chân của
nó.
 Phần phân lớp: tại phần này, một lớp với các liên kết đầy đủ sẽ đóng
vai trò như một bộ phân lớp các đặc trưng đã rút trích được trước đó.
Tầng này sẽ đưa ra xác suất của một đối tượng trong hình.
Ưu điểm:
 Độ chính xác rất cao trong các vấn đề nhận dạng hình ảnh.
 Tự động phát hiện các tính năng quan trọng mà không cần bất kỳ sự
giám sát của con người.
 Chia sẻ trọng lượng.
 Dễ thiết kế mô hình nhận dạng nhanh
Nhược điểm:
 CNN không mã hóa vị trí và hướng của đối tượng.
 Thiếu khả năng bất biến trong không gian đối với dữ liệu đầu vào.
Qua hoạt động của 3 loại mô hình mạng neraul ta thấy được các ưu
nhược điểm của từng loại mô hình. Với mỗi loại có mỗi đặc điểm riêng và
trong đó nổi trội về mảng nhận diện hình ảnh là mô hình CNN với khả
năng dễ thiết kế nhận dạng nhanh, độ chính xác cao là lựa chọn phù hợp
cho bài toán nhận diện mà chúng ta cần giải quyết. Để thấy rõ hơn về sự
hoạt động của CNN ta đi phân tích chi tiết hơn về cấu trúc và hoạt động
để thấy rõ sự tối ưu của mô hình mạng này.
2.1.3. Cấu trúc mạng thần kinh tích chập (CNN )
Convolutional Neural Network (CNN) là một trong những thuật toán
học sâu chính để nhận dạng vật thể, nhận dạng hình ảnh,…
Để nhận diện được vật thể, mô hình CNN sẽ học dữ liệu và kiểm tra
liên tục để đạt được kết quả nhận diện tốt nhất. Mỗi ảnh input đầu vào sẽ
được máy tính coi như 1 mảng các pixel phụ thuộc vào độ phân giải của
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
chúng và cũng tùy vào ảnh màu hay ảnh đen trắng mà số lớp của ảnh cũng
khác nhau, cách xử lý cũng khác nhau. Quá trình CNN xử lý và học dữ liệu
sẽ bao gồm 1 số lớp như sau: Lớp tích chập (Convolutional Layer), Lớp
kích hoạt phi tuyến ReLU (Rectified Linear Unit), Lớp lấy mẫu (Pooling
Layer) và Lớp kết nối đầy đủ (Fully-connected Layer), được thay đổi về số
lượng và cách sắp xếp để tạo ra các mô hình huấn luyện phù hợp cho từng
bài toán khác nhau.
Hình 2.4 Cấu trúc mạng tích chập CNN
a) Lớp tích chập (Convolutional layer)
Đây là thành phần quan trọng nhất trong mạng CNN, cũng là nơi thể
hiện tư tưởng xây dựng sự liên kết cục bộ thay vì kết nối toàn bộ các điểm
ảnh. Các liên kết cục bộ này được tính toán bằng phép tích chập giữa các
giá trị điểm ảnh trong một vùng ảnh cục bộ với các bộ lọc – filters – có
kích thước nhỏ.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.5 Nguyên lý bộ lọc tích chập
Bộ lọc được sử dụng là một ma trận có kích thước 3x3. Bộ lọc này
được dịch chuyển lần lượt qua từng vùng ảnh đến khi hoàn thành quét toàn
bộ bức ảnh, tạo ra một bức ảnh mới có kích thước nhỏ hơn hoặc bằng với
kích thước ảnh đầu vào.
Kích thước này được quyết định tùy theo kích thước các khoảng
trắng được thêm ở viền bức ảnh gốc và được tính theo công thức sau:
𝑂 =
𝑖+2∗𝑝−𝑘
𝑠
+ 1 (1.3)
Trong đó:
O: kích thước ảnh đầu ra.
i: kích thước ảnh đầu vào.
p: kích thước khoảng trắng phía ngoài viền của ảnh gốc.
k: kích thước bộ lọc.
s: bước trượt của bộ lọc.
Kết quả cuối cùng bước này sẽ cho ra output như thế nào? Bước
convolution này để tìm đặc trưng ảnh như viền,….
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.6 Kết quả xử lý sau lớp tích chập
b) Lớp lấy mẫu( Pooling Layer)
Mục đích của pooling rất đơn giản, nó làm giảm số hyperparameter
mà ta cần phải tính toán, từ đó giảm thời gian tính toán, tránh overfitting.
Loại pooling ta thường gặp nhất là max pooling, lấy giá trị lớn nhất trong
một pooling window.
Pooling hoạt động gần giống với convolution, nó cũng có 1 cửa sổ
trượt gọi là pooling window, cửa sổ này trượt qua từng giá trị của ma trận
dữ liệu đầu vào (thường là các feature map trong convolutional layer), chọn
ra một giá trị từ các giá trị nằm trong cửa sổ trượt (với max pooling ta sẽ
lấy giá trị lớn nhất).
Hình 2.7 : Xử lý Max Pooling
c) Lớp kết nối đầy đủ( Fully Connected module)
Trong mạng Neural, các Neural input sẽ được kết nối với các Neural
khác trong mạng với 1 trọng số cụ thể. Từ input đầu vào, qua các Neural
trung gian sẽ tìm được kết quả đầu ra phù hợp. Nếu kết quả chưa đạt tối ưu,
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
mạng Neural sẽ lan truyền ngược để tìm lại trọng số weight ở mỗi Neural
sao cho kết quả đạt được là tối ưu.
Hình 2.2.8 Fully Connected Layer
Sự ra đời của mạng CNN đã giải quyết các vấn đề còn lại của các
mạng Neural nhân tạo truyền thống học thông tin trong ảnh. Do sử dụng
các liên kết đầy đủ giữa các điểm ảnh vào node, các mạng Neural nhân tạo
truyền thẳng (Feedforward Neural Network) bị hạn chế rất nhiều bởi kích
thước của ảnh, ảnh càng lớn thì số lượng liên kết càng tăng nhanh và kéo
theo sự bùng nổ khối lượng tính toán. Ngoài ra sự liên kết đầy đủ này cũng
là sự dư thừa khi với mỗi bức ảnh, các thông tin chủ yếu thể hiện qua sự
phụ thuộc giữa các điểm ảnh với những điểm xung quanh nó mà không
quan tâm nhiều đến các điểm ảnh ở cách xa nhau. Mạng CNN ra đời với
kiến trúc thay đổi, có khả năng xây dựng liên kết chỉ sử dụng một phần cục
bộ trong ảnh kết nối đến node trong lớp tiếp theo thay vì toàn bộ ảnh như
trong mạng nơ-ron truyền thẳng.
2.2. Phát hiện khuôn mặt bằng MTCNN
Mạng nơ-ron tích chập CNN (Convolutional Neural Networks) là mô
hình học sâu (Deep Learning) hiệu quả, được dùng trong nhiều bài toán
phát hiện và nhận diện khuôn mặt, phân tích video, ảnh MRI,….Với những
ưu điểm trong hoạt động phân tích hình ảnh của mạng CNN nhận thấy
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
được những điều trên nên phát triển thêm mô hình “Mạng thần kinh kết nối
đa tác vụ được xếp tầng” gọi tắt MTCNN. Mạng MTCNN được phát triển
từ CNN. Về mặt cấu trúc MTCNN bao gồm 3 mạng CNN (Convolutional
Neural Networks) xếp chồng và đồng thời hoạt động khi phát hiện và xác
định khuôn mặt. Mỗi mạng CNN trong MTCNN có cấu trúc và vai trò khác
nhau trong việc phát hiện khuôn mặt. Kết quả dữ liệu đầu ra của MTCNN
là véc-tơ đặc trưng biểu diễn cho vị trí khuôn mặt được xác định trong bức
ảnh (mắt, mũi, miệng, …)
MTCNN hoạt động theo 3 bước với 3 mạng nơ-ron riêng cho mỗi
bước (P-Net, R-Net và O-Net). Khi sử dụng, MTCNN sẽ cho phép tạo ra
nhiều bản sao của hình ảnh đầu vào, với các kích thước khác nhau để làm
dữ liệu đầu vào.
Mô hình này cho phép xác định khuôn mặt ở nhiều góc độ khác
nhau, ít bị ảnh hưởng bởi ánh sáng của môi trường xung quanh và nhận
diện ngay cả trong trường hợp một phần khuôn khuôn mặt bị che khuất.
Phát hiện khuôn mặt và các điểm trên mặt như mắt, mũi,…Phát hiện
khuôn mặt và căn chỉnh trong là một thách thức lớn do nhiều tư thế, ánh
sáng khác nhau. Với Deep Learning trên nền tảng MTCNN, chúng ta hoàn
toàn có thể nhận dạng, định vị chính xác khuôn mặt và các điểm trên khuôn
mặt như mắt, mũi,…
Thuật toán tốc độ tính toán nhanh, hiệu quả do MTCNN đã được rất
nhiều tác giả nghiên cứu và nâng cao độ chính xác. Điển hình với công bố
của mình, nhóm tác giả Rong Xie, Qingyu Zhang đã so sánh đánh giá
phương pháp MTCNN với các phương pháp khác để thấy được sự ưu việt
với công bố “A Method of Small Face Detection Based on CNN” [9].
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.9 So sánh phương pháp MTCNN
Thuật toán MTCNN sử dụng mạng hiệu chuẩn để hiệu chỉnh khuôn
mặt sau khi phát hiện khuôn mặt. Nó bao gồm nhiều mô hình với số lượng
tính toán lớn, bỏ qua các liên kết nội tại giữa các nội giới hạn hồi quy của
khuôn mặt và vị trí của khuôn mặt. Thuật toán MTCNN là một thuật toán
nhận diện khuôn mặt đa tác vụ, thực hiện nhận diện khuôn mặt và điểm đặc
trưng khuôn mặt. Qua phân tích so sánh của tác giả, ta có thể nhận ra tốc độ
xử lý dữ liệu của thuật toán là khá cao, có thể đáp ứng yêu cầu hệ thống của
mình. Chúng ta có thể biểu diễn nguyên lý hoạt động MTCNN như hình
dưới :
Hình 2.2.10 Nguyên lý hoạt động MTCNN
MTCNN hoạt động theo 3 bước và mỗi bước có một mạng Neural
(CNN) riêng biệt gồm: P-Net, R-Net, O-Net. Tại mỗi bước sẽ thực hiện
quá trình xử lý riêng với kết quả là có thể phát hiện khuôn mặt trong ảnh
đầu vào nhanh và chính xác. Với mỗi bức ảnh đầu vào, nó sẽ tạo ra nhiều
bản sao của hình ảnh đó với các kích thước khác nhau.Sau đây chúng ta sẽ
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
lần lượt đi sâu và phân tích cấu tạo, nguyên lý hoạt động của từng mạng xử
lý, từ đó có cái nhìn tổng quan nhất về thuật toán MTCNN.
2.2.1. Kiến trúc P-Net
Hình 2.2.11 Chi tiết kiến trúc P-Net
Có thể thấy ở đây, P-Net là một mạng dạng FCN - Fully
convolutional network. Nhiệm vụ của nó là xác định các window ảnh bao
gồm mặt người nhưng lại lấy nhiều, nhanh và thiếu chính xác. Output đầu
ra gồm có:
 Face lớpificationcó shape (1x1x2).
 BBox regressioncó shape (1x1x4).
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.2.12 Quá trình xử lý mạng P-Net
Đầu tiên cần chuyển một hình ảnh vào chương trình. Tạo một kim
tự tháp hình ảnh, để phát hiện các khuôn mặt ở tất cả các kích thước khác
nhau. Nói cách khác, tạo các bản sao khác nhau của cùng một hình ảnh
với các kích thước khác nhau để tìm kiếm các khuôn mặt có kích thước
khác nhau trong hình ảnh.
Đối với mỗi bản sao được chia tỷ lệ, chúng ta có một hạt nhân 12 x
12 giai đoạn 1 sẽ đi qua mọi phần của hình ảnh, quét các khuôn mặt. Nó
bắt đầu ở góc trên cùng bên trái, một phần của hình ảnh từ (0,0) đến
(12,12). Phần này của hình ảnh được chuyển đến P-Net, nó sẽ trả về tọa
độ của một hộp giới hạn nếu nhận thấy một khuôn mặt. Sau đó, sẽ lặp lại
quá trình đó với các phần (0 + 2a, 0 + 2b) đến (12 + 2a, 12 + 2b), dịch
chuyển nhân 12 x 12 2pixel sang phải hoặc xuống cùng một lúc. Sự dịch
chuyển của 2pixel được gọi là sải chân, hoặc số lượng pixel mà nhân di
chuyển mỗi lần.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.2.13 Ví dụ xử lý mạng P-Net
Bước 2, giúp giảm độ phức tạp của tính toán mà không làm giảm
đáng kể độ chính xác. Vì các khuôn mặt trong hầu hết các hình ảnh đều
lớn hơn đáng kể so với 2 pixel, nên rất khó xảy ra trường hợp hạt nhân sẽ
bỏ lỡ một khuôn mặt chỉ vì nó dịch chuyển 2 pixel. Đồng thời, máy tính
(hoặc bất kỳ máy nào đang chạy mã này) sẽ có một phần tư số lượng hoạt
động để tính toán, giúp chương trình chạy nhanh hơn và tốn ít bộ nhớ
hơn.
Nhược điểm duy nhất là phải tính toán lại tất cả các chỉ số liên
quan đến sải chân. Ví dụ, nếu hạt nhân phát hiện một khuôn mặt sau khi
di chuyển một bước sang bên phải, chỉ mục đầu ra sẽ cho chúng ta biết
góc trên cùng bên trái của hạt nhân đó là (1,0). Tuy nhiên, vì sải chân là 2
nên ta phải nhân chỉ số với 2 để có tọa độ chính xác: (2,0).
Mỗi hạt nhân sẽ nhỏ hơn so với một hình ảnh lớn, vì vậy sẽ có thể
tìm thấy các khuôn mặt nhỏ hơn trong hình ảnh có tỷ lệ lớn hơn. Tương
tự, kernel sẽ lớn hơn so với hình ảnh có kích thước nhỏ hơn, vì vậy nó có
thể tìm thấy các khuôn mặt lớn hơn trong hình ảnh có tỷ lệ nhỏ hơn.
Sau khi truyền vào hình ảnh, cần tạo nhiều bản sao được chia tỷ lệ
của hình ảnh và chuyển vào mạng thần kinh đầu tiên P-Net và thu thập
đầu ra của nó.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.2.14 Đầu ra cho mẫu P-Net
Trọng số và độ lệch của P-Net đã được đào tạo để nó xuất ra một
hộp giới hạn tương đối chính xác cho mỗi hạt nhân 12 x 12. Tuy nhiên,
mạng tự tin hơn về một số hộp so với những hộp khác. Do đó, cần phân
tích cú pháp đầu ra P-Net để có được danh sách các mức độ tin cậy cho
mỗi hộp giới hạn và xóa các hộp có độ tin cậy thấp hơn (tức là các hộp
mà mạng không chắc chắn có chứa một khuôn mặt)
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.2.15 Chuẩn hóa tọa độ hạt nhân bằng cách nhân với tỷ lệ
Sau khi chọn ra các hộp với độ tin cậy cao hơn, phải chuẩn hóa hệ
tọa độ, chuyển đổi tất cả các hệ tọa độ thành hình ảnh thực tế, “chưa được
chia tỷ lệ”. Hầu hết các hạt nhân nằm trong một hình ảnh thu nhỏ, tọa độ
của chúng sẽ dựa trên hình ảnh nhỏ hơn.
NMS được tiến hành trước tiên bằng cách sắp xếp các hộp giới hạn
(và các hạt nhân 12 x 12 tương ứng của chúng) theo độ tin cậy hoặc điểm
số của chúng. Trong một số mô hình khác, NMS lấy hộp giới hạn lớn
nhất thay vì hộp giới hạn mà mạng tin tưởng nhất.
Sau đó, tính diện tích của từng nhân, cũng như diện tích chồng
chéo giữa từng nhân và nhân có điểm cao nhất. Các hạt nhân trùng lặp
nhiều với hạt nhân điểm cao sẽ bị xóa. Cuối cùng, NMS trả về một danh
sách các hộp giới hạn "còn tồn tại".
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.2.16 Sự triệt tiêu không tối đa
Tiến hành NMS một lần cho mỗi hình ảnh được chia tỷ lệ, sau đó
một lần nữa với tất cả các hạt nhân còn sót lại từ mỗi tỷ lệ. Điều này giúp
loại bỏ các hộp giới hạn thừa, cho phép thu hẹp tìm kiếm xuống một hộp
chính xác cho mỗi mặt.
Sau đó, chuyển đổi tọa độ hộp giới hạn thành tọa độ của hình ảnh
thực tế. Ngay bây giờ, tọa độ của mỗi hộp giới hạn là một giá trị từ 0 đến
1, với (0,0) là góc trên cùng bên trái của hạt nhân 12 x 12 và (1,1) là góc
dưới cùng bên phải (xem bảng trên). Bằng cách nhân tọa độ với chiều
rộng và chiều cao của hình ảnh thực tế, chúng ta có thể chuyển đổi tọa độ
hộp giới hạn thành tọa độ hình ảnh chuẩn, có kích thước thực.
Hình 2.17 Hộp giới hạn
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Trong hình ảnh này, hộp màu đỏ đại diện cho hạt nhân 24 x 24,
được thay đổi kích thước trở lại hình ảnh ban đầu. Có thể tính toán chiều
rộng và chiều cao của kernel: 1500–200 = 300, 1800–500 = 300 (Lưu ý
rằng chiều rộng và chiều cao không nhất thiết phải là 12. Đó là đang sử
dụng tọa độ của kernel trong bản gốc hình ảnh. Chiều rộng và chiều cao
nhận được ở đây là chiều rộng và chiều cao của hạt nhân khi được thu
nhỏ trở lại kích thước ban đầu.) Sau đó, nhân tọa độ hộp giới hạn với 300:
0,4x300 = 120, 0,2x300 = 60, 0,9x300 = 270, 0,7x300 = 210. Cuối cùng,
thêm tọa độ trên cùng bên trái của hạt nhân để có tọa độ của hộp giới hạn:
(200 + 120, 500 + 60) và (200 + 270, 500 + 210) hoặc (320,560) và
(470,710).
Vì các hộp giới hạn có thể không phải là hình vuông, sau đó định
hình lại các hộp giới hạn thành hình vuông bằng cách kéo dài các cạnh
ngắn hơn (nếu chiều rộng nhỏ hơn chiều cao, mở rộng nó sang một bên;
nếu chiều cao nhỏ hơn chiều rộng, mở rộng nó theo chiều dọc).
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
2.2.2. Kiến trúc R-Net
Hình 2.2.18 Chi tiết kiến trúc R-Net
Quá trình xử lý R-Net. Tất cả các cửa sổ chứa khuôn mặt từ tầng P-
Net sẽ được sàng lọc bằng cáchđưa vào một CNN R-Net để tiếp tục loại bỏ
một số lượng lớn các cửa sổ không chứa khuôn mặt. Sau đó thực hiện hiệu
chuẩn với vector hồi quy và thực hiện hợp nhất các cửa sổ xếp chồng nhau
tại một vùng.
Hình 2.19 Quá trình xử lý mạng R-Net
Dưới đây là quá trình xử lý của mạng R-Net. Từ ảnh sau quá trình xử
lý P-Net, quá trình lọc được xử lý và đưa ra ảnh sau xử lý đã loại bỏ được
đáng kể vùng không chứa khuôn mặt.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.20 Ví dụ xử lý mạng R-Net
2.2.3. Kiến trúc O-Net
Hình 2.21 Chi tiết kiến trúc O-Net
Quá trình xử lý O-Net. Tầng này tương tự như tầng R-Net, nó sử
dụng CNN chi tiết nhất - Mạng đầu ra (O-Net) để lọc kết quả một lần nữa
và đánh dấu vị trí năm điểm chính trên khuôn mặt. Những cửa sổ chứa
khuôn mặt sau khi đi qua tầng 3 là khuôn mặt được phát hiện.
Trước khi có thể vượt qua các hộp giới hạn từ R-Net, trước tiên
phải đệm bất kỳ hộp nào nằm ngoài giới hạn. Sau đó, sau khi thay đổi
kích thước các hộp thành 48 x 48 pixel, có thể chuyển các hộp giới hạn
vào O-Net.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Kết quả đầu ra của O-Net hơi khác so với P-Net và R-Net. O-Net
cung cấp 3 đầu ra: tọa độ của ô giới hạn (ra [0]), tọa độ của 5 mốc mặt (ra
[1]), và mức độ tin cậy của mỗi ô (ra [2]).
Một lần nữa, loại bỏ các hộp có mức độ tin cậy thấp hơn và chuẩn
hóa cả tọa độ hộp giới hạn và tọa độ mốc mặt. Cuối cùng, chạy qua NMS
cuối cùng. Tại thời điểm này, chỉ nên có một hộp giới hạn cho mọi khuôn
mặt trong hình ảnh.
Hình 2.22 Quá trình xử lý O-Net
Như vậy sau khi xử lý, thuật toán đưa ra 3 kết quả đầu ra khác nhau
bao gồm: xác suất của khuôn mặt nằm trong đường bao, tọa độ của đường
bao khuôn mặt và tọa độ của các mốc trên khuôn mặt (vị trí mắt, mũi,
miệng).
Nhận diện thông qua MTCNN có hiệu suất tốt, có thể định vị chính
xác khuôn mặt và tốc độ cũng nhanh hơn, ngoài ra, MTCNN cũng có thể
phát hiện trong thời gian thực tế.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
2.3. Nhận diện khuôn mặt với thuật toán FaceNet
2.3.1. Khái quát về FaceNet
Facenet là một mạng thần kinh sâu được sử dụng để trích xuất các
đặc điểm từ hình ảnh khuôn mặt của một người. Nó được xuất bản vào năm
2015 bởi các nhà nghiên cứu của Google, Schroff et al.
Hầu hết các thuật toán nhận diện khuôn mặt trước facenet đều tìm
cách biểu diễn khuôn mặt bằng một véc tơ nhúng thông qua một lớp cổ
chai có tác dụng giảm chiều dữ liệu.
Tuy nhiên hạn chế của các thuật toán này đó là số lượng chiều nhúng
tương đối lớn (thường >= 1000) và ảnh hưởng tới tốc độ của thuật toán.
Thường chúng ta phải áp dụng thêm thuật toán PCA để giảm chiều dữ liệu
để giảm tốc độ tính toán.
Hàm loss function chỉ đo lường khoảng cách giữa 2 bức ảnh. Như
vậy trong một đầu vào huấn luyện chỉ học được một trong hai khả năng là
sự giống nhau nếu chúng cùng 1 lớp hoặc sự khác nhau nếu chúng khác lớp
mà không học được cùng lúc sự giống nhau và khác nhau trên cùng một
lượt huấn luyện.
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:
Mạng cơ sở áp dụng một mạng nơ-ron tích chập (CNN) và giảm
chiều dữ liệu xuống chỉ còn 128 chiều. Do đó quá 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.
Phân tích và so sánh, đánh giá bởi các nhà khoa học cho thấy thuật
toán Facenet độ chính xác khá cao, ứng dụng vào nhiều ứng dụng. Công bố
”Face Recognition Algorithm Bias: Performance Differences on Images of
Children and Adults”[7] của nhóm tác giả Nisha Srinivas, Karl Ricanek,
Dana Michalski đã cho thấy ứng dụng của thuật toán vào phân tích sự khác
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
nhau giữa trẻ em và người lớn. Thuật toán có thể được training từ nhiều
nguồn dataset nâng cao độ chính xác có thể thấy tính tiện lợi của thuật toán.
Để thấy được sự vượt trội của thuật toán, nhóm tác giả Ivan William, De
Rosal Ignatius Moses Setiadi , Eko Hari Rachmawanto đã so sánh, đánh giá
với các phương pháp khác với đề tài “Face Recognition using FaceNet
(Survey, Performance Test, and Comparison)”[8] để thấy tính vượt trội về
độ chính xác so với phương pháp PCA,…
FaceNet cung cấp khả năng nhúng thống nhất cho các tác vụ nhận
dạng, xác minh và phân cụm khuôn mặt. Nó ánh xạ mỗi hình ảnh khuôn
mặt vào một không gian euclide sao cho khoảng cách trong không gian đó
tương ứng với khuôn mặt, tức là hình ảnh của một người sẽ được đặt gần
hơn với tất cả các hình ảnh khác của người đó so với hình ảnh của bất kỳ
người nào khác có trong tập dữ liệu.
Đầu tiên ta sẽ tìm hiểu cách biểu diễn khuôn mặt khi xử lý hình ảnh.
Khi xử lý, khuôn mặt sẽ được biểu diễn dưới dạng vector để quá trình nhận
dạng, so sánh toán học trở nên dễ dàng. Nói đến việc nhận dạng, xác định
khuôn mặt này là của ai, cần tính độ giống, khác nhau giữa các khuôn mặt
chúng ta lấy được. Và nói về độ giống, khác nhau, để đơn giản, nên quy về
bài toán tính khoảng cách giữa các vector.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.23 FaceNet process
Bài toán đặt ra là tìm cách chuyển từ khung hình khuôn mặt sang
vector sao cho ảnh hai khuôn mặt gần nhau thì 2 vector tương ứng cũng
phải có khoảng cách gần nhau. Ảnh 2 khuôn mặt khác nhau thì 2 vector
tương ứng cũng phải xa nhau hơn. Như sơ đồ trên, mô hình sử dụng Triplet
Loss.
2.3.2. Thuật toán Triplet Loss trong Facenet
Triplet là bộ ba thông số bao gồm: 1 ảnh mặt của 1 người bất kỳ
(query), 1 ảnh mặt khác của người đó (positive), 1 ảnh mặt của người khác
(negative). Với việc huấn luyện mô hình như thế, chúng ta sẽ có thêm
thông tin về mối quan hệ giữa các ảnh, điều này giúp mô hình phù hợp hơn
nhiều với bài toán.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 2.24 Triplet Loss
Để mô hình dễ hiểu hơn khi huấn luyện để có thể tạo ra các vector
như ý, cần sử dụng bộ ba thông số trở nên hiệu quả. Và hàm loss của mô
hình sẽ có dạng như sau:
𝑙(𝑝𝑖, 𝑝𝑖
+
, 𝑝𝑖
−) = 𝑚𝑎𝑥{0, 𝑔 + 𝐷(𝑓(𝑝𝑖),𝑓(𝑝𝑖
+)) − 𝐷(𝑓(𝑝),𝑓(𝑝𝑖
−))}
(1.4)
Với:
- f(p) là vector biểu diễn p
- D là khoảng cách giữa 2 vector
Cần huấn luyện để cho hàm trên càng lớn càng tốt. Điều này có
nghĩa là mô hình sẽ cố gắng học sao cho càng ngày, nó càng giảm khoảng
cách giữa 2 vector f(pi) (Query Image) và f(pi+) (Positive Image), và tăng
khoảng cách giữa Query Image và Negative Image. Đây là điều chúng ta
đang muốn mô hình học được.
Cụ thể hơn, cần tính được hàm Loss. Chúng ta cần một ảnh xi
a của
một người tiến gần những ảnh khác xi
p (positive) của người đó trong bộ
dataset hơn là những ảnh của người khác xi
n (negative), được đại diện bới
hệ số khoảng cách α, cụ thể:
∥ 𝑥𝑖
𝑎
− 𝑥𝑖
𝑝
∥2
2
+𝛼 <∥ 𝑥𝑖
𝑎
− 𝑥𝑖
𝑛
∥2
2
∀(𝑥𝑖
𝑎
, 𝑥𝑖
𝑝
, 𝑥𝑖
𝑛
) ∈ 𝜏 (1.5)
Từ đó tính được hàm Loss:
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
𝐿 = ∑ ||
𝑁
𝑖 [∥ 𝑓(𝑥𝑖
𝑎) − 𝑓(𝑥𝑖
𝑝
) ∥2
2
−∥ 𝑓(𝑥𝑖
𝑎) − 𝑓(𝑥𝑖
𝑛) ∥2
2
+𝛼] (1.6)
Như vậy khi áp dụng triplet loss vào các mô hình convolutional
neural network chúng ta có thể tạo ra các biểu diễn vector tốt nhất cho
mỗi một bức ảnh. Những biểu diễn vector này sẽ phân biệt tốt các ảnh
Negative rất giống ảnh Positive. Và đồng thời các bức ảnh thuộc cùng
một label sẽ trở nên gần nhau hơn trong không gian chiếu euclidean.
FaceNet sử dụng CNN bằng cách dùng hàm f(x) và nhúng hình ảnh
x vào không gian Euclidean d chiều sao cho khoảng cách giữa các hình
ảnh của 1 người không phụ thuộc vào điều kiện bên ngoài, khoảng cách
giữa các khuôn mặt giống nhau (của cùng một người là nhỏ) trong khi
khoảng cách giữa các ảnh khác nhau sẽ có khoảng cách lớn. FaceNet sử
dụng một mạng CNN và cho phép giảm số chiều dữ liệu của véc-tơ đặc
trưng (thường sử dụng là 128 chiều). Do đó, cho phép tăng tốc độ huấn
luyện và xử lý mà độ chính xác vẫn được đảm bảo. Đối với thuật toán
FaceNet, hàm loss function sử dụng hàm triplet loss cho phép khắc phục
hạn chế của các phương pháp nhận dạng trước đây, quá trình huấn luyện
cho phép học được đồng thời: Sự giống nhau giữa hai bức ảnh (nếu hai
bức ảnh cùng một lớp) và sự khác nhau giữa hai bức ảnh (nếu chúng
không cùng một lớp).
2.4. Kết luận chương 2
Chương 2 đã trình bày các mô hình mạng neraul trong Deep learning
và thuật toán chính được sử dụng trong hệ thống, từ việc nghiên cứu và so
sánh giữa các phương pháp với nhau, lựa chọn được phương pháp tối ưu.
MTCNN là một công cụ phát hiện khuôn mặt mạnh mẽ cung cấp
điểm số phát hiện cao. Nó là viết tắt của Multi-task Cascaded Convolutions
Networks. Đó là một phương pháp tiếp cận dựa trên học tập sâu hiện đại.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
MTCNN là một giải pháp nhẹ nhất có thể. Trước tiên, xây dựng một máy
dò MTCNN và cung cấp một mảng numpy làm đầu vào cho chức năng phát
hiện khuôn mặt dưới giao diện của nó. Tải hình ảnh đầu vào bằng OpenCV
trong khối mã sau. Hàm phát hiện khuôn mặt trả về một mảng đối tượng
cho các khuôn mặt được phát hiện. Đối tượng trả về lưu trữ tọa độ của các
khuôn mặt được phát hiện trong khóa hộp.
Xác định phương pháp chính là thuật toán Facenet trong nhận diện
khuôn mặt. Thuật toán này đã cải thiện được đồng thời độ chính xác và tốc
độ nhờ áp dụng output shape thấp và hàm triple loss hiệu quả.
CHƯƠNG 3. XÂY DỰNG HỆ THỐNG NHẬN DIỆN KHUÔN MẶT
3.1. Giới thiệu bài toán
Hình 3.1 Sơ đồ ngữ cảnh hệ thống
Để giải quyết bài toán nhận diện điểm khuôn mặt, hệ thống nhận
dạng khuôn mặt được phát triển áp dụng phương pháp mạng nơ-ron. Hệ
thống theo phương pháp tiếp cận dựa trên khuôn mặt và bao gồm hai giai
đoạn, cụ thể là giai đoạn huấn luyện và nhận diện. Giai đoạn huấn luyện cơ
sở biểu diễn cho các hình ảnh trong miền quan tâm (đó là hình ảnh tham
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
khảo) và chuyển chúng thành hình ảnh biểu diễn huấn luyện. Các hình ảnh
huấn luyện đại diện của mỗi hình ảnh được lưu trữ trong thư viện. Giai
đoạn nhận dạng sẽ chuyển hình ảnh đầu dò sang mô hình hình ảnh thăm dò
bằng cách sử dụng các cơ sở biểu diễn và sau đó khớp các hình ảnh tham
chiếu được lưu trữ trong thư viện để xác định hình mặt.
Để giải quyết bài toán khâu chuẩn bị dữ liệu huấn luyện là hết sức
quan trọng. Quá trình huấn luyện được tóm tắt ngắn gọn như dướiđây:
Hình 3.2 Lưu đồ quá trình nhận diện khuôn mặt
Chi tiết về quá trình nhận diện được một khuôn mặt từ ảnh đầu vào dựa vào
những tấm ảnh đã huấn luyện trước đó.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Quá trình thực hiện gồm các bước nhỏ sau:
Bước 1: Tiếp nhận ảnh mẫu cần nhận dạng (Lớp 1)
Bước 2: Bắt đầu phân lớp Triple Loss: Lớp 1 và lớp 29
Bước 3: Tiếp tục phân lớp và hiệu chỉnh thông số của network sao cho
khoảng cách giữa lớp 1 với nhau là gần nhất, lớp 1 với các lớp khác là xa nhất.
Bước 4: Xác định danh tính. Sau khi phân lớp, ta đã có thông số khoảng
cách của ảnh mẫu so với các lớp đã training, danh tính chính là ảnh có hệ số
khoảng cách nhỏ nhất ( Lớp 1).
Hình 3.3 Quá trình nhận dạng khuôn mặt
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
3.2. Xử lý dữ liệu training
3.2.1. Gán nhãn, phát hiện biên và đặc trưng khuôn mặt
Bước 1: Tách biên vùng chứa khuôn mặt
Bước đầu tiên trong việc giảm số các biến đổi trong ảnh khuôn mặt
là tách biên các khuôn mặt này với khuôn mặt khác. Việc tách biên này sẽ
làm giảm các biến đổi về vị trí, hướng, và tỷ lệ các khuôn mặt. Việc tách
biên được tính trực tiếp từ các ảnh. Và nó tạo ra không gian ảnh khuôn mặt
tối thiểu. Cường độ ảnh khuôn mặt có thể biến đổi nhiều, làm cho một số
khuôn mặt khó tách biên với nhau. Ta dùng giải pháp gán nhãn thủ công
các mẫu khuôn mặt. Cụ thể là vị trí hai mắt, đỉnh mũi, hai góc và trung tâm
miệng của mỗi khuôn mặt.
Bước 2: Tách biên giữa các khuôn mặt.
Sau bước 1, dữ liệu sẽ được dùng để tách biên các khuôn mặt với
khuôn mặt khác. Trước hết định nghĩa tách biên giữa hai tập điểm đặc
trưng. Đó là phép quay, biến đổi tỷ lệ, và dịch chuyển để làm cực tiểu
hoá tổng bình phương khoảng cách giữa từng cặp đặc trưng tương ứng.
Trong không gian hai chiều, một phép biến đổi toạ độ như vậy có thể được
viết dưới dạng sau:
(
𝑥′
𝑦′) = (
𝑠 ⋅ 𝑐𝑜𝑠 𝜃 −𝑠 ⋅ 𝑐𝑜𝑠 𝜃
𝑠 ⋅ 𝑠𝑖𝑛 𝜃 𝑠 ⋅ 𝑐𝑜𝑠 𝜃
)⋅ (
𝑥
𝑦) + (
𝑡𝑥
𝑡𝑦
) = (
𝑎 −𝑏 𝑡𝑥
𝑏 𝑎 𝑡𝑦
) ⋅ (
𝑥
𝑦
1
) (2.1)
Khi có hai hay nhiều hơn cặp điểm đặc trưng phân biệt, hệ các
phương trình tuyến tính có thể được giải bằng phương pháp đảo ngược giả.
Gọi ma trận bên trái là A , vector là T, và bên phải là B, khi đó lời giải:
T = (AT A)-1(AT B) (2.2)
Lời giải đảo ngược giả đưa ra phép biến đổi T làm cực tiểu tổng bình
phương khác biệt giữa tập toạ độ x’i, y’i và phiên bản đã biến đổi của xi,
yi.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Bước 3: Tách biên tập các điểm đặc trưng
- Khởi tạo F , vector sẽ là vị trí trung bình của mỗi
đặc trưng gán nhãn trên mọi khuôn mặt, với một số vị trí đặc
trưng ban đầu. Trong trường hợp tách biên các khuôn mặt
thẳng, các đặc trưng này là vị trí mong muốn của hai mắt, đỉnh
mũi, hai góc và trung tâm miệng của mỗi khuôn mặt trong cửa
sổ đầu vào.
- Cập nhật F bằng việc lấy trung bình các vị trí
đặc trưng đã tách biên F’i cho mỗi khuôn mặti.
- Toạđộ đặc trưng trong F được quay, dịch chuyển
và biến đổi để phù hợp với một số toạ độ chuẩn. Toạ độ chuẩn
là toạ độ được dùng làm giá trị khởi tạo cho F .
Bước 4: Quay về Bước 2.
Thuật toán hội tụ trong vòng năm lần lặp, tạo cho mỗi khuôn mặt
phép biến đổi để ánh xạ nó gần về vị trí chuẩn, và tách biên với mọi khuôn
mặt khác. Khi đã biết các tham số để tách biên khuôn mặt, ảnh có thể được
lấy mẫu lại dùng nội suy song tuyến tính. Khuôn mặt chuẩn và phân phối
của các vị trí đặc trưng được trả về.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Hình 3.4 Mẫu chuẩn và tách đặc trưng
3.2.2. Tiền xử lý ảnh Training
Sau khi tách biên các khuôn mặt, vẫn còn một nguồn biến đổi
chính (không kể biến đổi về bản chất giữa các khuôn mặt). Biến đổi này
gây ra do độ sáng và các đặc tính máy ảnh, dẫn đến các ảnh có độ sáng
tươi hay kém, hoặc ảnh có độ tương phản kém.
Ta xử lý vấn đề này bằng tiếp cận xử lý ảnh đơn giản. Kỹ thuật
tiền xử lý trước hết cân bằng các giá trị mật độ trên toàn cửa sổ. Lập hàm
hàm biến đổi tuyến tính giá trị mật độ trong vùng tròn trong cửa sổ. Các
điểm ảnh bên ngoài hình tròn có thể là nền. Nếu mật độ của pixel (x,y) là
I(x,y), khi đó cách biến đổi tuyến tính này được tham số hoá bởi a, b, c
với:
(𝑥 𝑦 1) ⋅ (
𝑎
𝑏
𝑐
) = 𝐼(𝑥, 𝑦) (2.3)
Việc chọn cách biến đổi này là tuỳ ý. Nó có thể biểu diễn các khác
biệt về độ sáng trên toàn ảnh. Các biến đổi được giới hạn là tuyến tính để
số tham số ít và việc tạo lập hàm nhanh chóng. Tập hợp với mọi pixel trên
toàn cửa sổ hình tròn ta được phương trình ma trận ràng buộc, và được giải
bằng phương pháp đảo ngược giả. Phương trình tuyến tính này sẽ xấp xỉ
toàn bộ độ sáng của mỗi phần của cửa sổ, và bị trừ đi với cửa sổ để cân
bằng biến đổi về độ sáng. Tiếp theo, cân bằng lược đồ, ánh xạ không tuyến
tính các giá trị mật độ để mở rộng miền cường độ trong cửa sổ. Lược đồ
được tính với các pixel trong vùng tròn trong cửa sổ. Việc này bù cho các
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
khác biệt trong việc thu nhận đầu vào camera, và cũng cải thiện độ tương
phản trong một số trường hợp.
Hình 3.5 Tiền xử lý ảnh
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
3.2.3. Ảnh huấn luyện nhận dạng
- Ảnh chứa khuôn mặt( Positive Image)
Để dùng mạng Neural phân loại cửa sổ là khuôn mặt hay không, ta
cần các mẫu huấn luyện cho mỗi tập. Với các mẫu chứa khuôn mặt , ta
dùng kỹ thuật đã trình bày trong phần trên để tách biên các ảnh khuôn mặt
trong đó một số đặc điểm đặc trưng đã gán nhãn bằng tay. Sau khi tách
biên, các khuôn mặt được co về một kích thước, vị trí và hướng đồng nhất
trong cửa sổ 20x20 pixel.
Áp dụng ở mỗi vị trí pixel và ở mỗi tỉ lệ trong chóp ảnh, tiếp tục dò
tìm khuôn mặt ở vị trí và tỉ lệ trung bình. Ngoài ra để cho bộ dò tìm mạnh
hơn với các biến đổi không đáng kể trong khuôn mặt, chúng được quay với
một lượng ngẫu nhiên ( tối đa 10º).
- Ảnh huấn luyện không chứa khuôn mặt
Cần nhiều ảnh không chứa khuôn mặt để huấn luyện bộ dò tìm
khuôn mặt, vì sự đa dạng của ảnh không chứa khuôn mặt lớn hơn nhiều so
với ảnh chứa khuôn mặt. Một lớp ảnh không chứa khuôn mặt là các ảnh
phong cảnh chẳng hạn cây, núi, và toà nhà.
Thu thập tập không khuôn mặt đặc trưng là việc khó. Hầu như bất kỳ
ảnh nào cũng có thể được xem như là mẫu không khuôn mặt; không gian
ảnh không khuôn mặt lớn hơn không gian ảnh khuôn mặt. Tiếp cận thống
kê máy học cho rằng nên huấn luyện mạng neural trên cùng phân bố ảnh
mà mạng thấy khi chạy. Với bộ dò tìm khuôn mặt, số mẫu khuôn mặt là
15,000 là một số thích hợp.
Tuy nhiên, tập đại diện ảnh phong cảnh chứa gần 150,000,000 cửa
sổ, và việc huấn luyện trên một cơ sở dữ liệu khuôn mặt có kích thước lớn
như vậy là rất khó. Phần tiếp theo mô tả việc huấn luyện trên một cơ sở dữ
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
liệu khuôn mặt này.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
3.2.4. Huấn luyện phát hiện khuôn mặt
Hệ thống hoạt động theo hai giai đoạn: trước hết áp dụng tập bộ dò
tìm dựa trên mạng neural vào ảnh, và sau đó dùng bộ phân xử để kết hợp
các đầu ra. Các bộ dò tìm riêng lẻ khảo sát mỗi vị trí trong ảnh ở một vài tỷ
lệ, tìm vị trí có thể chứa khuôn mặt. Sau đó bộ phân tích sẽ hợp các dò tìm
từ các mạng riêng lẻ và loại trừ các dò tìm chồng lấp.
Thành phần đầu tiên của hệ thống là mạng neural nhận đầu vào là
vùng 20x20 (pixels) của ảnh và tạo đầu ra trong khoảng 1 đến -1, biểu thị
có hay không có khuôn mặt. Để dò tìm mọi khuôn mặt trong ảnh, mạng
được áp dụng ở mọi vị trí trong ảnh. Để dò tìm các khuôn mặt lớn hơn kích
thước cửa sổ, ảnh đầu vào được giảm kích thước nhiều lần, và áp dụng bộ
dò tìm ở mỗi kích thước. Mạng có một số bất biến với vị trí và kích thước.
Số bất biến xác định số tỷ lệ và vị trí nó được dùng. Với bài này, ta áp dụng
bộ lọc ở mọi vị trí điểm ảnh, và giảm tỷ lệ xuống ở mỗi bước phân tích ảnh
tứ phân.
Sau khi cửa sổ 20x20 pixel được trích ra từ một vị trí và tỷ lệ nào đó
trong ảnh nhập, nó được tiền xử lý. Window sau khi tiền xử lý được truyền
qua mạng neural. Mạng có các liên kết chặt chẽ đến các tầng nhập. Vùng
thu nhận của các đơn vị ẩn được cho trong Hình 3.5. Window đầu vào được
Hình 3.6 Thuật toán dò tìm khuôn mặt
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
chia thành các mảnh nhỏ, 4 vùng 10x10 (pixels), 16 vùng 5x5 (pixels), và 6
vùng chồng lấp 20x5 (pixels). Mỗi vùng có liên kết đầy đủ với một đơn vị
ẩn. Dù hình vẽ cho thấy một đơn vị ẩn cho mỗi vùng con đầu vào, nhưng
các đơn vị này có thể được tái tạo.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Với thử nghiệm sau, ta dùng mạng với hai và ba tập các đơn vị ẩn
này. Hình dáng của các vùng connày được chọn để cho phép các đơn vị ẩn
dò tìm các đặc trưng cho việc dò tìm khuôn mặt. Cụ thể, các sọc ngang cho
phép các đơn vị ẩn dò tìm các đặc trưng như miệng, cặp mắt, trong khi các
đơn vị ẩn với vùng tiếp thu hình vuông có thể dò tìm các đặc trưng như
từng mắt, mũi, hai góc của miệng. Các thử nghiệm cho thấy rằng hình dạng
chính xác của các vùng này không quan trọng, quan trọng là đầu vào được
chia thành các vùng nhỏ thay vì dùng các kết nối hoàn toàn với toàn bộ đầu
vào. Mạng có một đầu ra giá trị thực, chỉ định window có chứa khuôn mặt
hay không.
3.3. Kết quả thực nghiệm
Trong đồ án này, sử dụng bộ dữ liệu huấn luyện gồm hình ảnh của 9 sinh
viên với số lượng ảnh của mỗi sinh viên là khác nhau, dao động từ 10 đến 50 ảnh
cho mỗi sinh viên. Máy tính với bộ xử lý Intel ® core ™ i7-7500U. Thời gian
xử lý được ghi nhận như sau:
- Thời gian huấn luyện: thời gian cho cả quá trình phát hiện khuôn mặt,
trích xuất đặc trưng và huấn luyện bộ dữ liệu là 2231,3 giây (» 37,2 phút).
- Thời gian nhận diện: thời gian trung bình cho một bức ảnh bao gồm
phát hiện khuôn mặt, căn chỉnh và nhận diện phụ thuộc vào số lượng khuôn mặt
xuất hiện trong hình. Với ảnh có chứa duy nhất một khuôn mặt, thời gian mất
khoảng 5 giây. Với ảnh chứa 10 khuôn mặt, mất khoảng 8 giây. Sau đây là một
số kết quả thu được từ hệ thống nhận diện khuôn mặt dựa trên mô hình MTCNN
và kỹ thuật Triplet Loss của thuật toán FaceNet.
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
3.3.1. Trường hợp nhận diện duy nhất một người
Hình 3.7 Ảnh một người dùng trong khung nhận diện
Với trường hợp chỉ nhận diện một người thông qua ảnh 2d, thời gian
real-time thực cho phát hiện và hiển thị thông tin chưa đến 5s. Đạt hiệu suất
nhận diện ở mức cao khoảng trên 90%. Độ chính xác là do khi nhận diện
qua ảnh 2D thường là ảnh tĩnh không bị ảnh hưởng bởi độ sáng, góc
nghiêng, biểu cảm khuôn mặt. Khoảng cách của các điểm mốc không bị
không bị thay đổi. Ở bước training dữ liệu cũng là bộ hình ảnh 2D nên
phần nhận dạng này đạt hiệu quả chính xác cao.
Thử nghiệm thêm một số trường hợp khác ta thu được bảng với kết
quả như sau:
Tên đối
tượng
Số ảnh huấn
luyện của 1 đối
tượng
Tỷ lệ Nhận dạng
đúng.
Subject 01 1 96.08%
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Subject 02 2 75.50%
Subject 03 3 60.43%
Subject 04 4 70.33%
Subject 05 5 80%
Subject 06 6 86%
Subject 07 7 90.33%
Subject 08 8 93%
Subject 09 9 98.03%
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
3.3.2. Nhận diện ảnh nhiều người
Hình 3.8 Từ 2 người trong ảnh nhận diện
Hình 3.9 Nhiều người cùng một khung ảnh
Ở trường hợp này độ khó tăng lên, vì các khuôn mặt người có thể có
vài điểm tương đồng, nhầm lẫn. Với hình ảnh này có nhiều người dùng
trong khung nhận diện thì tốc độ phát hiện và nhận diện là 5s. Nhưng hiệu
suất đạt trên 60% .
3.3.3. Nhận diện thông qua video
Hình ảnh không thể nhận diện được ngay, cần thời gian phân tích do
có sự chuyển động và biểu cảm thay đổi góc mặt, ảnh hưởng quá trình nhận
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
diện, bởi khi dữ liệu được training ban đầu là ảnh tĩnh 2D. Tỉ lệ thấp dưới
60% nhưng vẫn có thể nhận dạng ra người dùng.
3.4. Đánh giá
Mạng nơ-ron tích chập xếp tầng đa nhiệm MTCNN cho phép xác
định khuôn mặt ở nhiều góc nghiêng khác nhau, ngay cả trong trong điều
kiện thiếu sáng và một phần khuôn mặt bị che khuất. Trong bài báo này,
chúng tôi đã đề xuất giải pháp điểm danh tự động dùng mô hình MTCNN
nhằm phát hiện khuôn mặt, đồng thời kết hợp kỹ thuật Triplet Loss để nhận
diện đối tượng. Kỹ thuật căn chỉnh khuôn mặt cũng được áp dụng nhằm gia
tăng độ chính xác của nhận diện. Kết quả thực nghiệm trên hệ thống.
Ưu điểm:
- Về khả năng phát hiện khuôn mặt, hệ thống phát hiện khá tốt hầu
hết các trường hợp, kể cả trong điều kiện thiếu sáng, góc nghiêng,…
- Về khả năng nhận dạng, hệ thống đạt kết quả từ 80-95% đối với các
khuôn mặt thẳng và điều kiện ánh sáng thích hợp, đạt 70-85% đối với các
khuôn mặt nghiêng hoặc thiếu sáng.
- Về khả năng loại trừ các khuôn mặt “unknown”, kết quả đạt
khoảng 50-60% khuôn mặt lạ được phát hiện trong quá trình thử nghiệm.
- Tuy chưa hoàn chỉnh trong video khả năng nhận diện thấp hơn so
với ảnh 2D nhưng vẫn có thể nhận diện được người dùng ở một số góc
chính diện.
Nhược điểm:
Chức năng nhận diện thông qua video chưa được hoàn chỉnh do tác
động của cử chỉ, hành động,biểu cảm,góc nghiêng, độ sáng… độ chính xác
bị giảm đi đáng kể và xảy ra tình trạng không thể nhận diện trong khoảng
thời gian thay đổi.
Giải pháp cải thiện:
Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149
Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149
Tìm thuật toán giảm độ sai số khi training dữ liệu.
Phương pháp nhận dạng mặt có thể chia tiếp cận theo tiêu chí sau:
- Nhận dạng với dữ liệu đầu vào là ảnh tĩnh
- Nhận dạng bằng phương pháp nhận dạng 3D
(vì việc bố trí nhiều camera 2D sẽ cho dữ liệu 3D và đem lại
kết quả tốt hơn, đáng tin cậy hơn).
Giải pháp hữu hiệu ở đây chính là cần training bổ sung, kết hợp với
dữ liệu sẵn có để tăng hiệu quả nhận dạng từ đó giúp hệ thống chạy ổn định
và chính xác hơn.
3.5. Kết luận chương 3
Hệ thống: “Chống giả mạo bằng ảnh/video trong nhận diện khuôn
mặt (face anti spoofing)” đã xây dựng tương đối thành công. Về mặt thực
nghiệm, đã phân tích và mô phỏng được quy trình xác định và nhận diện
khuôn mặt. Chương trình cho thấy được người thực hiện báo cáo đã xây
dựng được mô hình nhận dạng, nắm được các thuật toán xử lý hình, bộ dữ
liệu, các công nghệ máy học sâu. Ngoài ra, giúp mọi người hiểu thêm về
một phương pháp trong bài toán nhận diện khuôn mặt, có thể ứng dụng về
sau cho một số hệ thống khác.

More Related Content

What's hot

Đề cương thông tin địa lý GIS
Đề cương thông tin địa lý GISĐề cương thông tin địa lý GIS
Đề cương thông tin địa lý GIS
Ngô Doãn Tình
 
Đề tài: Nhận dạng đối tượng sử dụng thuật toán AdaBoost, HOT
Đề tài: Nhận dạng đối tượng sử dụng thuật toán AdaBoost, HOTĐề tài: Nhận dạng đối tượng sử dụng thuật toán AdaBoost, HOT
Đề tài: Nhận dạng đối tượng sử dụng thuật toán AdaBoost, HOT
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Bài giảng xử lý ảnh xử lý và nâng cao chất lượng ảnh
Bài giảng xử lý ảnh   xử lý và nâng cao chất lượng ảnhBài giảng xử lý ảnh   xử lý và nâng cao chất lượng ảnh
Bài giảng xử lý ảnh xử lý và nâng cao chất lượng ảnh
jackjohn45
 
Hệ thống giám sát nhận diện khuôn mặt
Hệ thống giám sát nhận diện khuôn mặtHệ thống giám sát nhận diện khuôn mặt
Hệ thống giám sát nhận diện khuôn mặt
GMO-Z.com Vietnam Lab Center
 
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
MasterCode.vn
 
Luận văn: Xây dựng website quản lý nhà hàng, HOT
Luận văn: Xây dựng website quản lý nhà hàng, HOTLuận văn: Xây dựng website quản lý nhà hàng, HOT
Luận văn: Xây dựng website quản lý nhà hàng, HOT
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Luận văn Thạc sĩ Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng opencv
Luận văn Thạc sĩ Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng opencvLuận văn Thạc sĩ Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng opencv
Luận văn Thạc sĩ Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng opencv
Dịch vụ viết thuê Luận Văn - ZALO 0932091562
 
Laravel
LaravelLaravel
LaravelHoc Vu
 
Nhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmNhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềm
Trần Gia Bảo
 
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTTSlide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Hiệu Nguyễn
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
Nguyễn Anh
 
Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...
Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...
Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...
GMO-Z.com Vietnam Lab Center
 
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đĐề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Bao cao da lap trinh manh
Bao cao da lap trinh manhBao cao da lap trinh manh
Bao cao da lap trinh manh
Bồ Công Anh
 
Giáo trình xử lý ảnh
Giáo trình xử lý ảnhGiáo trình xử lý ảnh
Giáo trình xử lý ảnhTùng Trần
 
KHMT_NguyenDinhVietAnh.pptx
KHMT_NguyenDinhVietAnh.pptxKHMT_NguyenDinhVietAnh.pptx
KHMT_NguyenDinhVietAnh.pptx
VanhVanh8
 
Bai giang atbmtt
Bai giang atbmtt Bai giang atbmtt
Bai giang atbmtt Hà Vũ
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
Trung Thanh Nguyen
 
Báo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềmBáo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềmRiTa15
 

What's hot (20)

Đề cương thông tin địa lý GIS
Đề cương thông tin địa lý GISĐề cương thông tin địa lý GIS
Đề cương thông tin địa lý GIS
 
Đề tài: Nhận dạng đối tượng sử dụng thuật toán AdaBoost, HOT
Đề tài: Nhận dạng đối tượng sử dụng thuật toán AdaBoost, HOTĐề tài: Nhận dạng đối tượng sử dụng thuật toán AdaBoost, HOT
Đề tài: Nhận dạng đối tượng sử dụng thuật toán AdaBoost, HOT
 
Bài giảng xử lý ảnh xử lý và nâng cao chất lượng ảnh
Bài giảng xử lý ảnh   xử lý và nâng cao chất lượng ảnhBài giảng xử lý ảnh   xử lý và nâng cao chất lượng ảnh
Bài giảng xử lý ảnh xử lý và nâng cao chất lượng ảnh
 
Hệ thống giám sát nhận diện khuôn mặt
Hệ thống giám sát nhận diện khuôn mặtHệ thống giám sát nhận diện khuôn mặt
Hệ thống giám sát nhận diện khuôn mặt
 
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
Bài 8: Triển khai bảo mật sử dụng chính sách nhóm (Group policy) - Giáo trình...
 
Luận văn: Xây dựng website quản lý nhà hàng, HOT
Luận văn: Xây dựng website quản lý nhà hàng, HOTLuận văn: Xây dựng website quản lý nhà hàng, HOT
Luận văn: Xây dựng website quản lý nhà hàng, HOT
 
Luận văn Thạc sĩ Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng opencv
Luận văn Thạc sĩ Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng opencvLuận văn Thạc sĩ Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng opencv
Luận văn Thạc sĩ Xây dựng ứng dụng phát hiện khuôn mặt trong ảnh sử dụng opencv
 
Laravel
LaravelLaravel
Laravel
 
Nhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềmNhập môn công nghệ phần mềm
Nhập môn công nghệ phần mềm
 
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTTSlide Báo Cáo Đồ Án Tốt Nghiệp CNTT
Slide Báo Cáo Đồ Án Tốt Nghiệp CNTT
 
Cơ bản về visual basic
Cơ bản về visual basicCơ bản về visual basic
Cơ bản về visual basic
 
Đồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềmĐồ án kiểm thử phần mềm
Đồ án kiểm thử phần mềm
 
Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...
Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...
Ứng dụng NLP vào việc xác định ý muốn người dùng (Intent Detection) và sửa lỗ...
 
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đĐề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
Đề tài: Xây dựng hệ thống Chatbots tự động, HAY, 9đ
 
Bao cao da lap trinh manh
Bao cao da lap trinh manhBao cao da lap trinh manh
Bao cao da lap trinh manh
 
Giáo trình xử lý ảnh
Giáo trình xử lý ảnhGiáo trình xử lý ảnh
Giáo trình xử lý ảnh
 
KHMT_NguyenDinhVietAnh.pptx
KHMT_NguyenDinhVietAnh.pptxKHMT_NguyenDinhVietAnh.pptx
KHMT_NguyenDinhVietAnh.pptx
 
Bai giang atbmtt
Bai giang atbmtt Bai giang atbmtt
Bai giang atbmtt
 
Bài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giảiBài tập mẫu C và C++ có giải
Bài tập mẫu C và C++ có giải
 
Báo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềmBáo cáo đồ án môn công nghệ phần mềm
Báo cáo đồ án môn công nghệ phần mềm
 

More from DV viết đề tài trọn gói Zalo/Tele: 0973.287.149

Khóa Luận Thực Trạng Hoạt Động Dịch Vụ Du Lịch Đầm Phá Tại Khu Vực Quảng Lợi....
Khóa Luận Thực Trạng Hoạt Động Dịch Vụ Du Lịch Đầm Phá Tại Khu Vực Quảng Lợi....Khóa Luận Thực Trạng Hoạt Động Dịch Vụ Du Lịch Đầm Phá Tại Khu Vực Quảng Lợi....
Khóa Luận Thực Trạng Hoạt Động Dịch Vụ Du Lịch Đầm Phá Tại Khu Vực Quảng Lợi....
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Luận văn Hoàn Thiện Pháp Luật Về Quyền Của Người Đồng Tính.docx
Luận văn Hoàn Thiện Pháp Luật Về Quyền Của Người Đồng Tính.docxLuận văn Hoàn Thiện Pháp Luật Về Quyền Của Người Đồng Tính.docx
Luận văn Hoàn Thiện Pháp Luật Về Quyền Của Người Đồng Tính.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Khóa Luận Nâng Cao Hiệu Quả Giải Quyết Tranh Chấp Thương Mại Bằng Trọng Tài V...
Khóa Luận Nâng Cao Hiệu Quả Giải Quyết Tranh Chấp Thương Mại Bằng Trọng Tài V...Khóa Luận Nâng Cao Hiệu Quả Giải Quyết Tranh Chấp Thương Mại Bằng Trọng Tài V...
Khóa Luận Nâng Cao Hiệu Quả Giải Quyết Tranh Chấp Thương Mại Bằng Trọng Tài V...
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Tải FREE Đề Tài khóa Luận Tốt Nghiệp Khoa Học Về Hiệp Định TPP.docx
Tải FREE Đề Tài khóa Luận Tốt Nghiệp Khoa Học Về Hiệp Định TPP.docxTải FREE Đề Tài khóa Luận Tốt Nghiệp Khoa Học Về Hiệp Định TPP.docx
Tải FREE Đề Tài khóa Luận Tốt Nghiệp Khoa Học Về Hiệp Định TPP.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Khóa Luận Chuyên Ngành Ngôn Ngữ Anh Khoa Ngoại Ngữ.docx
Khóa Luận Chuyên Ngành Ngôn Ngữ Anh Khoa Ngoại Ngữ.docxKhóa Luận Chuyên Ngành Ngôn Ngữ Anh Khoa Ngoại Ngữ.docx
Khóa Luận Chuyên Ngành Ngôn Ngữ Anh Khoa Ngoại Ngữ.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Chuyên đề Kế toán chi phí sản xuất và tính giá thành sản phẩm xây lắp tại Côn...
Chuyên đề Kế toán chi phí sản xuất và tính giá thành sản phẩm xây lắp tại Côn...Chuyên đề Kế toán chi phí sản xuất và tính giá thành sản phẩm xây lắp tại Côn...
Chuyên đề Kế toán chi phí sản xuất và tính giá thành sản phẩm xây lắp tại Côn...
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Danh Sách Đề Tài Luật Thương Mại theo luật doanh nghiệp 2020.docx
Danh Sách Đề Tài Luật Thương Mại theo luật doanh nghiệp 2020.docxDanh Sách Đề Tài Luật Thương Mại theo luật doanh nghiệp 2020.docx
Danh Sách Đề Tài Luật Thương Mại theo luật doanh nghiệp 2020.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Tiểu Luận Phương Pháp Nghiên Cứu Khoa Học Khoa Y Dược.docx
Tiểu Luận Phương Pháp Nghiên Cứu Khoa Học Khoa Y Dược.docxTiểu Luận Phương Pháp Nghiên Cứu Khoa Học Khoa Y Dược.docx
Tiểu Luận Phương Pháp Nghiên Cứu Khoa Học Khoa Y Dược.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Đề Tài Yếu Tổ Ảnh Hưởng Đến Thái Độ Môi Trường Và Ý Định Mua Sản Phẩm Xanh.docx
Đề Tài Yếu Tổ Ảnh Hưởng Đến Thái Độ Môi Trường Và Ý Định Mua Sản Phẩm Xanh.docxĐề Tài Yếu Tổ Ảnh Hưởng Đến Thái Độ Môi Trường Và Ý Định Mua Sản Phẩm Xanh.docx
Đề Tài Yếu Tổ Ảnh Hưởng Đến Thái Độ Môi Trường Và Ý Định Mua Sản Phẩm Xanh.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Báo Cáo Chiến Lược Pr Để Tăng Độ Nhận Diện Thương Hiệu Cho Công Ty Solarbk.docx
Báo Cáo Chiến Lược Pr Để Tăng Độ Nhận Diện Thương Hiệu Cho Công Ty Solarbk.docxBáo Cáo Chiến Lược Pr Để Tăng Độ Nhận Diện Thương Hiệu Cho Công Ty Solarbk.docx
Báo Cáo Chiến Lược Pr Để Tăng Độ Nhận Diện Thương Hiệu Cho Công Ty Solarbk.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Báo Cáo Nâng Cao Hiệu Quả Kinh Doanh Của Công Ty Thiết Bị Điện, 9 điểm.docx
Báo Cáo Nâng Cao Hiệu Quả Kinh Doanh Của Công Ty Thiết Bị Điện, 9 điểm.docxBáo Cáo Nâng Cao Hiệu Quả Kinh Doanh Của Công Ty Thiết Bị Điện, 9 điểm.docx
Báo Cáo Nâng Cao Hiệu Quả Kinh Doanh Của Công Ty Thiết Bị Điện, 9 điểm.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Luận Văn Phân Tích Tình Hình Tài Chính Của Công Ty Cổ Phần Icd Tân Cảng.docx
Luận Văn Phân Tích Tình Hình Tài Chính Của Công Ty Cổ Phần Icd Tân Cảng.docxLuận Văn Phân Tích Tình Hình Tài Chính Của Công Ty Cổ Phần Icd Tân Cảng.docx
Luận Văn Phân Tích Tình Hình Tài Chính Của Công Ty Cổ Phần Icd Tân Cảng.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Đồ Án Pháp Luật Về Chia Tài Sản Chung Của Vợ Chồng Khi Ly Hôn.docx
Đồ Án Pháp Luật Về Chia Tài Sản Chung Của Vợ Chồng Khi Ly Hôn.docxĐồ Án Pháp Luật Về Chia Tài Sản Chung Của Vợ Chồng Khi Ly Hôn.docx
Đồ Án Pháp Luật Về Chia Tài Sản Chung Của Vợ Chồng Khi Ly Hôn.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
The marketing strategies to attract customers and students of nghi cambridge ...
The marketing strategies to attract customers and students of nghi cambridge ...The marketing strategies to attract customers and students of nghi cambridge ...
The marketing strategies to attract customers and students of nghi cambridge ...
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Tiểu luận Trách nhiệm xã hội của doanh nghiệp với lao động khuyết tật.docx
Tiểu luận Trách nhiệm xã hội của doanh nghiệp với lao động khuyết tật.docxTiểu luận Trách nhiệm xã hội của doanh nghiệp với lao động khuyết tật.docx
Tiểu luận Trách nhiệm xã hội của doanh nghiệp với lao động khuyết tật.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Khóa Luận Hoàn Thiện Quản Trị Kênh Phân Phối Tại Công Ty Dầu Nhờn Pvoil.docx
Khóa Luận Hoàn Thiện Quản Trị Kênh Phân Phối Tại Công Ty Dầu Nhờn Pvoil.docxKhóa Luận Hoàn Thiện Quản Trị Kênh Phân Phối Tại Công Ty Dầu Nhờn Pvoil.docx
Khóa Luận Hoàn Thiện Quản Trị Kênh Phân Phối Tại Công Ty Dầu Nhờn Pvoil.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Khóa Luận Hoàn Thiện Qui Trình Phục Vụ Buffet Sáng Tại Nhà Hàng Epice.docx
Khóa Luận Hoàn Thiện Qui Trình Phục Vụ Buffet Sáng Tại Nhà Hàng Epice.docxKhóa Luận Hoàn Thiện Qui Trình Phục Vụ Buffet Sáng Tại Nhà Hàng Epice.docx
Khóa Luận Hoàn Thiện Qui Trình Phục Vụ Buffet Sáng Tại Nhà Hàng Epice.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Đề tài Đánh Giá Hiệu Quả Sản Xuất Kinh Doanh Công Ty Phân Bón Sơn Trang.docx
Đề tài Đánh Giá Hiệu Quả Sản Xuất Kinh Doanh Công Ty Phân Bón Sơn Trang.docxĐề tài Đánh Giá Hiệu Quả Sản Xuất Kinh Doanh Công Ty Phân Bón Sơn Trang.docx
Đề tài Đánh Giá Hiệu Quả Sản Xuất Kinh Doanh Công Ty Phân Bón Sơn Trang.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Đề tài Chiến Lược Truyền Thông Trên Kỹ Thuật Số Cho Dòng Sản Phẩm Sữa Rửa Mặ...
Đề tài Chiến Lược Truyền Thông Trên  Kỹ Thuật Số Cho Dòng Sản Phẩm Sữa Rửa Mặ...Đề tài Chiến Lược Truyền Thông Trên  Kỹ Thuật Số Cho Dòng Sản Phẩm Sữa Rửa Mặ...
Đề tài Chiến Lược Truyền Thông Trên Kỹ Thuật Số Cho Dòng Sản Phẩm Sữa Rửa Mặ...
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 
Đề Tài Pháp Luật Về Hợp Đồng Mua Bán Nhà Ở Hình Thành Trong Tương Lai.docx
Đề Tài Pháp Luật Về Hợp Đồng Mua Bán Nhà Ở Hình Thành Trong Tương Lai.docxĐề Tài Pháp Luật Về Hợp Đồng Mua Bán Nhà Ở Hình Thành Trong Tương Lai.docx
Đề Tài Pháp Luật Về Hợp Đồng Mua Bán Nhà Ở Hình Thành Trong Tương Lai.docx
DV viết đề tài trọn gói Zalo/Tele: 0973.287.149
 

More from DV viết đề tài trọn gói Zalo/Tele: 0973.287.149 (20)

Khóa Luận Thực Trạng Hoạt Động Dịch Vụ Du Lịch Đầm Phá Tại Khu Vực Quảng Lợi....
Khóa Luận Thực Trạng Hoạt Động Dịch Vụ Du Lịch Đầm Phá Tại Khu Vực Quảng Lợi....Khóa Luận Thực Trạng Hoạt Động Dịch Vụ Du Lịch Đầm Phá Tại Khu Vực Quảng Lợi....
Khóa Luận Thực Trạng Hoạt Động Dịch Vụ Du Lịch Đầm Phá Tại Khu Vực Quảng Lợi....
 
Luận văn Hoàn Thiện Pháp Luật Về Quyền Của Người Đồng Tính.docx
Luận văn Hoàn Thiện Pháp Luật Về Quyền Của Người Đồng Tính.docxLuận văn Hoàn Thiện Pháp Luật Về Quyền Của Người Đồng Tính.docx
Luận văn Hoàn Thiện Pháp Luật Về Quyền Của Người Đồng Tính.docx
 
Khóa Luận Nâng Cao Hiệu Quả Giải Quyết Tranh Chấp Thương Mại Bằng Trọng Tài V...
Khóa Luận Nâng Cao Hiệu Quả Giải Quyết Tranh Chấp Thương Mại Bằng Trọng Tài V...Khóa Luận Nâng Cao Hiệu Quả Giải Quyết Tranh Chấp Thương Mại Bằng Trọng Tài V...
Khóa Luận Nâng Cao Hiệu Quả Giải Quyết Tranh Chấp Thương Mại Bằng Trọng Tài V...
 
Tải FREE Đề Tài khóa Luận Tốt Nghiệp Khoa Học Về Hiệp Định TPP.docx
Tải FREE Đề Tài khóa Luận Tốt Nghiệp Khoa Học Về Hiệp Định TPP.docxTải FREE Đề Tài khóa Luận Tốt Nghiệp Khoa Học Về Hiệp Định TPP.docx
Tải FREE Đề Tài khóa Luận Tốt Nghiệp Khoa Học Về Hiệp Định TPP.docx
 
Khóa Luận Chuyên Ngành Ngôn Ngữ Anh Khoa Ngoại Ngữ.docx
Khóa Luận Chuyên Ngành Ngôn Ngữ Anh Khoa Ngoại Ngữ.docxKhóa Luận Chuyên Ngành Ngôn Ngữ Anh Khoa Ngoại Ngữ.docx
Khóa Luận Chuyên Ngành Ngôn Ngữ Anh Khoa Ngoại Ngữ.docx
 
Chuyên đề Kế toán chi phí sản xuất và tính giá thành sản phẩm xây lắp tại Côn...
Chuyên đề Kế toán chi phí sản xuất và tính giá thành sản phẩm xây lắp tại Côn...Chuyên đề Kế toán chi phí sản xuất và tính giá thành sản phẩm xây lắp tại Côn...
Chuyên đề Kế toán chi phí sản xuất và tính giá thành sản phẩm xây lắp tại Côn...
 
Danh Sách Đề Tài Luật Thương Mại theo luật doanh nghiệp 2020.docx
Danh Sách Đề Tài Luật Thương Mại theo luật doanh nghiệp 2020.docxDanh Sách Đề Tài Luật Thương Mại theo luật doanh nghiệp 2020.docx
Danh Sách Đề Tài Luật Thương Mại theo luật doanh nghiệp 2020.docx
 
Tiểu Luận Phương Pháp Nghiên Cứu Khoa Học Khoa Y Dược.docx
Tiểu Luận Phương Pháp Nghiên Cứu Khoa Học Khoa Y Dược.docxTiểu Luận Phương Pháp Nghiên Cứu Khoa Học Khoa Y Dược.docx
Tiểu Luận Phương Pháp Nghiên Cứu Khoa Học Khoa Y Dược.docx
 
Đề Tài Yếu Tổ Ảnh Hưởng Đến Thái Độ Môi Trường Và Ý Định Mua Sản Phẩm Xanh.docx
Đề Tài Yếu Tổ Ảnh Hưởng Đến Thái Độ Môi Trường Và Ý Định Mua Sản Phẩm Xanh.docxĐề Tài Yếu Tổ Ảnh Hưởng Đến Thái Độ Môi Trường Và Ý Định Mua Sản Phẩm Xanh.docx
Đề Tài Yếu Tổ Ảnh Hưởng Đến Thái Độ Môi Trường Và Ý Định Mua Sản Phẩm Xanh.docx
 
Báo Cáo Chiến Lược Pr Để Tăng Độ Nhận Diện Thương Hiệu Cho Công Ty Solarbk.docx
Báo Cáo Chiến Lược Pr Để Tăng Độ Nhận Diện Thương Hiệu Cho Công Ty Solarbk.docxBáo Cáo Chiến Lược Pr Để Tăng Độ Nhận Diện Thương Hiệu Cho Công Ty Solarbk.docx
Báo Cáo Chiến Lược Pr Để Tăng Độ Nhận Diện Thương Hiệu Cho Công Ty Solarbk.docx
 
Báo Cáo Nâng Cao Hiệu Quả Kinh Doanh Của Công Ty Thiết Bị Điện, 9 điểm.docx
Báo Cáo Nâng Cao Hiệu Quả Kinh Doanh Của Công Ty Thiết Bị Điện, 9 điểm.docxBáo Cáo Nâng Cao Hiệu Quả Kinh Doanh Của Công Ty Thiết Bị Điện, 9 điểm.docx
Báo Cáo Nâng Cao Hiệu Quả Kinh Doanh Của Công Ty Thiết Bị Điện, 9 điểm.docx
 
Luận Văn Phân Tích Tình Hình Tài Chính Của Công Ty Cổ Phần Icd Tân Cảng.docx
Luận Văn Phân Tích Tình Hình Tài Chính Của Công Ty Cổ Phần Icd Tân Cảng.docxLuận Văn Phân Tích Tình Hình Tài Chính Của Công Ty Cổ Phần Icd Tân Cảng.docx
Luận Văn Phân Tích Tình Hình Tài Chính Của Công Ty Cổ Phần Icd Tân Cảng.docx
 
Đồ Án Pháp Luật Về Chia Tài Sản Chung Của Vợ Chồng Khi Ly Hôn.docx
Đồ Án Pháp Luật Về Chia Tài Sản Chung Của Vợ Chồng Khi Ly Hôn.docxĐồ Án Pháp Luật Về Chia Tài Sản Chung Của Vợ Chồng Khi Ly Hôn.docx
Đồ Án Pháp Luật Về Chia Tài Sản Chung Của Vợ Chồng Khi Ly Hôn.docx
 
The marketing strategies to attract customers and students of nghi cambridge ...
The marketing strategies to attract customers and students of nghi cambridge ...The marketing strategies to attract customers and students of nghi cambridge ...
The marketing strategies to attract customers and students of nghi cambridge ...
 
Tiểu luận Trách nhiệm xã hội của doanh nghiệp với lao động khuyết tật.docx
Tiểu luận Trách nhiệm xã hội của doanh nghiệp với lao động khuyết tật.docxTiểu luận Trách nhiệm xã hội của doanh nghiệp với lao động khuyết tật.docx
Tiểu luận Trách nhiệm xã hội của doanh nghiệp với lao động khuyết tật.docx
 
Khóa Luận Hoàn Thiện Quản Trị Kênh Phân Phối Tại Công Ty Dầu Nhờn Pvoil.docx
Khóa Luận Hoàn Thiện Quản Trị Kênh Phân Phối Tại Công Ty Dầu Nhờn Pvoil.docxKhóa Luận Hoàn Thiện Quản Trị Kênh Phân Phối Tại Công Ty Dầu Nhờn Pvoil.docx
Khóa Luận Hoàn Thiện Quản Trị Kênh Phân Phối Tại Công Ty Dầu Nhờn Pvoil.docx
 
Khóa Luận Hoàn Thiện Qui Trình Phục Vụ Buffet Sáng Tại Nhà Hàng Epice.docx
Khóa Luận Hoàn Thiện Qui Trình Phục Vụ Buffet Sáng Tại Nhà Hàng Epice.docxKhóa Luận Hoàn Thiện Qui Trình Phục Vụ Buffet Sáng Tại Nhà Hàng Epice.docx
Khóa Luận Hoàn Thiện Qui Trình Phục Vụ Buffet Sáng Tại Nhà Hàng Epice.docx
 
Đề tài Đánh Giá Hiệu Quả Sản Xuất Kinh Doanh Công Ty Phân Bón Sơn Trang.docx
Đề tài Đánh Giá Hiệu Quả Sản Xuất Kinh Doanh Công Ty Phân Bón Sơn Trang.docxĐề tài Đánh Giá Hiệu Quả Sản Xuất Kinh Doanh Công Ty Phân Bón Sơn Trang.docx
Đề tài Đánh Giá Hiệu Quả Sản Xuất Kinh Doanh Công Ty Phân Bón Sơn Trang.docx
 
Đề tài Chiến Lược Truyền Thông Trên Kỹ Thuật Số Cho Dòng Sản Phẩm Sữa Rửa Mặ...
Đề tài Chiến Lược Truyền Thông Trên  Kỹ Thuật Số Cho Dòng Sản Phẩm Sữa Rửa Mặ...Đề tài Chiến Lược Truyền Thông Trên  Kỹ Thuật Số Cho Dòng Sản Phẩm Sữa Rửa Mặ...
Đề tài Chiến Lược Truyền Thông Trên Kỹ Thuật Số Cho Dòng Sản Phẩm Sữa Rửa Mặ...
 
Đề Tài Pháp Luật Về Hợp Đồng Mua Bán Nhà Ở Hình Thành Trong Tương Lai.docx
Đề Tài Pháp Luật Về Hợp Đồng Mua Bán Nhà Ở Hình Thành Trong Tương Lai.docxĐề Tài Pháp Luật Về Hợp Đồng Mua Bán Nhà Ở Hình Thành Trong Tương Lai.docx
Đề Tài Pháp Luật Về Hợp Đồng Mua Bán Nhà Ở Hình Thành Trong Tương Lai.docx
 

Đồ Án Xây Dựng Hệ Thống Nhận Diện Khuôn Mặt.docx

  • 1. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Đồ án tốt nghiệp XÂY DỰNG HỆ THỐNG NHẬN DIỆN KHUÔN MẶT
  • 2. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 CHƯƠNG 1. TỔNG QUAN BÀI TOÁN NHẬN DIỆN KHUÔN MẶT 1.1. Bài toán nhận dạng mặt người và những khó khăn 1.1.1. Bài toán nhận dạng mặt người Hệ thống nhận dạng mặt người là một hệ thống nhận vào là một ảnh hoặc một đoạn video (một dòng các hình ảnh liên tục). Qua xử lý, tính toán hệ thống xác định được vị trí mặt người (nếu có) trong ảnh và xác định là người nào trong số những người mà hệ thống đã được biết (qua quá trình học) hoặc là người lạ.[1]. Hình 0.1 Hệ thống nhận dạng mặt người 1.1.2. Những khó khăn của hệ thống nhận dạng khuôn mặt Bài toán nhận dạng mặt người là bài toán đã được nghiên cứu từ những năm 70. Tuy nhiên, đây là một bài toán khó nên những nghiên cứu hiện tại vẫn chưa đạt được những kết quả mong muốn. Chính vì thế, vấn đề
  • 3. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 này vẫn đang được nhiều nhóm trên thế giới quan tâm nghiên cứu. Khó khăn của bài toán nhận dạng mặt người có thể kể đến như sau: a) Tư thế chụp, góc chụp: Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi vì góc chụp giữa camera và khuôn mặt. Chẳng hạn như: chụp thẳng, chụp chéo bên trái 45o hay chụp chéo bên phải 45o, chụp từ trên xuống, chụp từ dưới lên, v.v… Với các tư thế khác nhau, các thành phần trên khuôn mặt như mắt, mũi, miệng có thể bị khuất một phần hoặc thậm chí khuất hết. b) Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: Các đặc trưng như: râu mép, râu hàm, mắt kính, v.v… có thể xuất hiện hoặc không. Vấn đề này làm cho bài toán càng trở nên khó hơn rất nhiều. c) Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt con người có thể làm ảnh hưởng đáng kể lên các thông số của khuôn mặt. Chẳng hạn, cùng một khuôn mặt một người, nhưng có thể sẽ rất khác khi họ cười hoặc sợ hãi, v.v… d) Sự che khuất: Khuôn mặt có thể bị che khuất bởi các đối tượng khác hoặc các khuôn mặt khác. e) Hướng của ảnh (pose variations): Các ảnh khuôn mặt có thể biến đổi rất nhiều với các góc quay khác nhau của trục camera. Chẳng hạn chụp với trục máy ảnh nghiêng làm cho khuôn mặt bị nghiêng so với trục của ảnh. f) Điều kiện của ảnh: Ảnh được chụp trong các điều kiện khác nhau về: chiếu sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại, v.v…), ảnh có chất lượng thấp ảnh hưởng rất nhiều đến chất lượng ảnh khuôn mặt.
  • 4. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 g) Aging condition: Việc nhận dạng ảnh mặt thay đổi theo thời gian còn là một vấn đề khó khăn, ngay cả đối với khả năng nhận dạng của con người. h) Các hệ thống cực lớn (very large scale systems): Các CSDL ảnh mặt được test bởi các nhà nghiên cứu còn khá nhỏ (vài trăm tới vài chục nghìn ảnh mặt), tuy nhiên trên thực tế các CSDL có thể rất lớn, ví dụ CSDL ảnh mặt của cảnh sát của một đất nước có thể chứa từ hàng triệu tới hơn 1 tỷ ảnh… 1.1.3. Tổng quan kiến trúc của một hệ thống nhận dạng mặt người Một hệ thống nhận dạng mặt người thông thường bao gồm bốn bước xử lý sau: - Phát hiện khuôn mặt (Face Detection). - Phân đoạn khuôn mặt (Face Alignment hay Segmentation). - Trích chọn đặc trưng (Feature Extraction). - Nhận dạng (Recognition) hay Phân lớp khuôn mặt (Face Classification). Hình 1.2 Các bước chính trong hệ thống nhận dạng khuôn mặt Phát hiện khuôn mặt dò tìm, định vị những vùng (vị trí) có thể là khuôn mặt xuất hiện trong ảnh hoặc các frame video. Các vùng này sẽ được
  • 5. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 tách riêng để xử lý. Phân đoạn khuôn mặt sẽ xác định vị trí mắt mũi, miệng và các thành phần khác của khuôn mặt và chuyển kết quả này cho bước trích chọn đặc trưng. Ở bước trích chọn đặc trưng, bằng một phương pháp trích chọn đặc điểm nào đó (mẫu nhị phân cục bộ-Local Binary Pattern- LBP, Gabor wavelets…) sẽ được sử dụng với ảnh mặt để trích xuất các thông tin đặc trưng cho ảnh từ các thông tin về các thành phần trên khuôn mặt, kết quả là mỗi ảnh sẽ được biểu diễn dưới dạng một vector đặc trưng (feature vector). Những vectơ đặc trưng này sẽ là dữ liệu đầu vào cho một mô hình đã được huấn luyện trước để nhận dạng khuôn mặt (Face Recognition) hay phân lớp khuôn mặt (Face Lớpifition), tức là xác định danh tính (identity) hay nhãn của ảnh-đó là ảnh của ai. Ở bước nhận dạng khuôn mặt (Face Recognition), thường thì phương pháp k-láng giềng gần (k-nearest neighbor: kNN) sẽ được sử dụng. Bên cạnh những bước chính nêu trên, chúng ta còn có thể áp dụng thêm một số bước khác như tiền xử lý, hậu xử lý nhằm làm tăng độ chính xác cho hệ thống. Ví dụ, sau bước phát hiện khuôn mặt, ta có thể thực hiện bước tiền xử lý (Preprocessing) bao gồm các bước căn chỉnh ảnh (face image alignment) và chuẩn hóa ánh sáng (illumination normalization). Do một số thông số như: tư thế khuôn mặt, độ sáng, điều kiện ánh sáng, v.v… phát hiện khuôn mặt được đánh giá là bước khó khăn và quan trọng nhất so với các bước còn lại của hệ thống. Tuy nhiên, trong phạm vi đồ án này, không tập trung tìm hiểu bước phát hiện khuôn mặt mà chỉ tập trung chủ yếu vào bước nhận dạng khuôn mặt. Dữ liệu cho một hệ thống nhận dạng mặt được chia làm 3 tập: tập huấn luyện (training set), tập tham chiếu (reference set haygallery set) và tập để nhận dạng (probeset hay query set, đôi khi còngọi là test set). Trong nhiều hệ thống, tập training trùng với tập reference. Tập training gồm các
  • 6. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 ảnh được dùng để huấn luyện (hay học-learning), thông thường tập này được dùng để sinh ra một không gian con (projection subspace) là một ma trận và phương pháp hay được sử dụng là PCA (Principal Component Analysis), WPCA (Whitened PCA), LDA (Linear Discriminant Analysis), KPCA (Kernel PCA). Tập reference gồm các ảnh đã biết danh tính được chiếu (projected) vào không gian con ở bước training. Bước training nhằm 2 mục đích: giảm số chiều (dimension reduction) của các vector đặc điểm (feature vector) vì các vector này thường có độ dài khá lớn (vài nghìn tới vài trăm nghìn) nên nếu để nguyên thì việc tính toán sẽ rất rất lâu, thứ hai là làm tăng tính phân biệt (discriminative) giữa các ảnh khác lớp (định danh khác nhau), ngoài ra có thể làm giảm tính phân biệt giữa các ảnh thuộc về một lớp (tùy theo phương pháp, ví dụ như Linear Discriminant Analysis LDA- còn gọi là Fisher Linear Discriminant Analysis-Fisherface là một phương pháp làm việc với tập training mà mỗi đối tượng có nhiều ảnh mặt ở các điều kiện khác nhau). Sau khi thực hiện chiếu tập reference vào không gian con, hệ thống lưu lại kết quả là một ma trận với mỗi cột của ma trận là một vectơ tương ứng với ảnh (định danh đã biết) để thực hiện nhận dạng (hay phân lớp). Nhận dạng (hay phân lớp) được thực hiện với tập các ảnh probe, sau khi tiền xử lý xong, mỗi ảnh sẽ được áp dụng phương pháp trích chọn đặc điểm (như với các ảnh thuộc tập training và reference) và được chiếu vào không gian con. Tiếp đến việc phân lớp sẽ dựa trên phương pháp k-NN, định danh của một ảnh cần xác định sẽ được gán là định danh của ảnh có khoảng cách (distance) gần với nó nhất. Ở đây cần lưu ý là mỗi ảnh là một vector nên có thể dùng khái niệm hàm khoảng cách giữa hai vector để đo sự khác biệt giữa các ảnh.
  • 7. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 1.1.4. Ngôn ngữ lập trình Để giải quyết bài toán nhận dạng khuôn mặt sử dụng thư viện OpenCV, chúng ta có thể sử dụng các ngôn ngữ lập trình như: .NET C#, VB, IronPython, Java, C++… Trong đồ án này ngôn ngữ lập trình được sử dụng là Python viết trên phần mềm Pycharm. 1.2. Các bài toán khác nhau về dữ liệu khuôn mặt và một số lĩnh vực ứng dụng 1.2.1. Một số bài toán nhận dạng khuôn mặt Có nhiều lớp bài toán khác nhau liên quan đến dữ liệu khuôn mặt. Một trong số 4 bài toán phổ biến nhất dựa trên nhu cầu thực tế cần áp dụng đó là: Nhận diện khuôn mặt (face identification): Đây là bài toán match one-many. Bài toán này sẽ trả lời cho câu hỏi “người này là ai?” bằng cách nhận dữ liệu đầu vào là ảnh khuôn mặt và đầu ra là nhãn tên người trong ảnh. Tác vụ này thường được áp dụng trong các hệ thống chấm công, hệ thống giám sát công dân, hệ thống camera thông minh tại các đô thị. Xác thực khuôn mặt (face verification): Đây là bài toán match one- one. Bài toán này trả lời cho câu hỏi “có phải 2 ảnh đầu vào là cùng một người không?” Kết quả đầu ra sẽ là yes hoặc no. Bài toán thường được dùng trong các hệ thống bảo mật. Xác thực khuôn mặt trên điện thoại là một bài toán như vậy. Tìm kiếm khuôn mặt đại diện (face clustering): Đơn giản chỉ cần tính ra trung bình của các ảnh khuôn mặt để thu được centroid image. Tính điểm tương đồng giữa trọng tâm với toàn bộ khuôn mặt còn lại để thu được
  • 8. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 khuôn mặt đặc trưng nhất giống nhất với gốc. Tương tự như vậy cũng có thể tìm ra khuôn mặt đặc trưng nhất của nam, nữ các quốc gia. Hình 0.2 Gương mặt đặc trưng các quốc gia Tìm kiếm khuôn mặt tương đương (face similarity): Thuật toán này khá đơn giản, chỉ cần đo lường ảnh upload lên với các ảnh sẵn có và chọn ra một cái gần giống nhất. 1.2.2. Một số lĩnh vực ứng dụng nhậndiện khuôn mặt Xác định khuôn mặt đã được ứng dụng nhiều trong các lĩnh vực: * Hệ thống tương tác giữa người và máy (điều kiển máy tính qua các cử động của khuôn mặt). * Hệ thống nhận dạng người (giúp cho các cơ quan an ninh quản lý tốt con người). * Hệ thống quan sát, bảo vệ, quản lý việc ra vào cho các cơ quan và công ty. * Hệ thống trợ giúp lái xe, hệ thống phân tích cảm xúc trên khuôn mặt, và hệ thống nhận dạng khuôn mặt cho các máy ảnh kỹ thuật số...
  • 9. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 1.3. Một số phương pháp nhận diện khuôn mặt 1.3.1. Bài toán xác định mặt người Nhận dạng khuôn mặt người (Face Detection) là một kỹ thuật máy tính để xác định các vị trí và các kích thước của các khuôn mặt người trong các ảnh bất kỳ (ảnh kỹ thuật số) nếu có. Kỹ thuật này nhận biết các đặc trưng của khuôn mặt và bỏ qua những thứ khác, như: tòa nhà, cây cối, cơ thể Có nhiều nghiên cứu tìm phương pháp xác định khuôn mặt người, từ ảnh xám đến ảnh màu. Dựa vào tính chất của các phương pháp xác định mặt người trên ảnh, các phương pháp này được chia thành bốn loại chính, tương ứng với bốn hướng tiếp cận khác nhau. - Hướng tiếp cận dựa trên tri thức (knowledge-based) [2]. - Hướng tiếp cận dựa trên các đặc trưng không đổi (feature invariant). - Hướng tiếp cận dựa trên phương pháp đối sánh mẫu (Template matching). - Hướng tiếp cận dựa trên diện mạo (appearance-based). Ngoài ra cũng có rất nhiều nghiên cứu mà phương pháp xác định mặt người không chỉ dựa vào một hướng mà có liên quan đến nhiều hướng. Trong phạm vi đồ án môn học này, chỉ giới thiệu tổng quan các hướng tiếp cận để xác định khuôn mặt người trong ảnh. 1.3.2. Hướng tiếp cận dựa trên tri thức (knowledge-based) Trong hướng tiếp cận này, các luật sẽ phụ thuộc rất lớn vào tri thức của những tác giả nghiên cứu về bài toán xác định khuôn mặt người. Đây là hướng tiếp cận dạng top-down. Dễ dàng xây dựng các luật cơ bản để mô tả các đặc trưng của khuôn mặt và các quan hệ tương ứng. Ví dụ, một khuôn
  • 10. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 mặt thường có hai mắt đối xứng nhau qua trục thẳng đứng ở giữa khuôn mặt và có một mũi, một miệng. Hình 0.3 Nhận dạng dựa trên tri thức Một vấn đề khá phức tạp khi dùng hướng tiếp cận này là làm sao chuyển từ tri thức con người sang các luật một cách hiệu quả. Nếu các luật này quá chi tiết thì khi xác định có thể xác định thiếu các khuôn mặt có trong ảnh, vì những khuôn mặt này không thể thỏa mãn tất cả các luật đưa ra. Nhưng các luật tổng quát quá thì có thể chúng ta sẽ xác định nhầm một vùng nào đó trên thực tế không phải là khuôn mặt nhưng lại xác định là khuôn mặt. Và cũng khó khăn mở rộng yêu cầu từ bài toán để xác định các khuôn mặt có nhiều tư thế khác nhau. Một số nghiên cứu áp dụng phương pháp này từ rất sớm như: Kanade 1973, G. Yang 1994 và Kotropoulos 1997.[1] 1.3.3. Hướng tiếp cận dựa trên các đặc trưng không đổi (feature invariant) Đây là hướng tiếp cập theo kiểu bottom-up. Các tác giả cố gắng tìm các đặc trưng không thay đổi của khuôn mặt người để xác định khuôn mặt người. Dựa trên nhận xét thực tế, con người dễ dàng nhận biết các khuôn mặt và các đối tượng trong các tư thế khác nhau và điều kiện ánh sáng khác
  • 11. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 nhau, thì phải tồn tại các thuộc tính hay đặc trưng không thay đổi. Có nhiều nghiên cứu đầu tiên xác định các đặc trưng khuôn mặt rồi chỉ ra có khuôn mặt trong ảnh hay không. Các đặc trưng như lông mày, mắt, mũi, miệng, và đường viền của tóc được trích bằng phương pháp xác định cạnh. Trên cơ sở các đặc trưng này, xây dựng một mô hình thống kê để mô tả quan hệ của các đặc trưng này và xác định sự tồn tại của khuôn mặt trong ảnh. Một vấn đề của thuật toán theo hướng tiếp cận này đó là cần phải điều chỉnh cho phù hợp điều kiện ánh sáng, nhiễu, và bị che khuất. Đôi khi bóng của một khuôn mặt sẽ tạo thêm cạnh mới, mà cạnh này lại rõ ràng hơn cạnh thật sự của khuôn mặt, gây ra sự nhầm lẫn khi xác định các khuôn mặt. Các công trình sử dụng hướng tiếp cận này có thể kể như: K. C. Yow và R. Cipolla 199, T. K. Leung 1995.[1] 1.3.4. Hướng tiếp cận dựa trên phương pháp đối sánh mẫu (Template matching) Trong phương pháp đối sánh mẫu, các mẫu chuẩn của khuôn mặt (thường là khuôn mặt được chụp thẳng) sẽ được xác định trước hoặc xác định các tham số thông qua một hàm. Từ một ảnh đưa vào, tính các giá trị tương quan so với các mẫu chuẩn về đường viền khuôn mặt, mắt, mũi và miệng. Thông qua các giá trị tương quan này mà các tác giả quyết định có hay không tồn tại khuôn mặt trong ảnh. Hướng tiếp cận này có lợi thế là rất dễ cài đặt, nhưng không hiệu quả khi tỷ lệ, tư thế và hình dáng thay đổi. Nhiều độ phân giải, đa tỷ lệ, các mẫu con và các mẫu biến dạng được xem xét thành bất biến về tỷ lệ và hình dáng. I.Craw 1992 đã áp dụng một mẫu cứng trong khi A. Lanitis 1995 sử dụng một mẫu có thể biến dạng trong bước phát hiện khuôn mặt.[1]
  • 12. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 0.4 Nhận dạng dựa trên phương pháp đối sánh mẫu 1.3.5. Hướng tiếp cận dựa trên diện mạo (appearance-based) Trái ngược hẳn với hướng tiếp cận dựa trên đối sánh mẫu, các mô hình (hay các mẫu) được học từ một tập ảnh huấn luyện trước đó. Sau đó hệ thống (mô hình) sẽ xác định khuôn mặt người. Do phương pháp này thường dùng một mô hình máy học nên còn được gọi là phương pháp dựa trên máy học (machine learning-based).
  • 13. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 0.5 Tập ảnh dùng để huấn luyện mặt người Sau đó hệ thống sẽ tổng hợp tất cả các đặc tinh của khuôn mặt con người như: mắt, mũi, miệng ... thành một vector riêng. Có nhiều mô hình máy học được áp dụng trong hướng tiếp cận này: Eigenface (M. Turk và A. Pentland 1991), Mô hình dựa trên phân phối (K. K. Sung and T. Poggio 1998). Mojang Neural (H. Rowley 1998), Support Vector Machine (E. Osuna et al 1997). Phân lớp Bayes (H. Schneiderman và T. Kanade 1998). Mô hình Markov ẩn (A. Rajagopalan et al 1998) và các mô hình tăng cường (Adaboost của P. Viola và M. Jones 2001; FloatBoost do Stan Z. Li và Zhen Qiu Zhang 2004).[1] Trên đây là giới thiệu tổng quan bốn hướng tiếp cận để xác định khuôn mặt người trong ảnh và trong đồ án này, hướng tiếp cận dựa trên diện mạo (appearance-based) được lựa chọn để thực hiện phát hiện khuôn mặt người trong ảnh. 1.4. Hướng tiếp cận được thử nghiệm trong đồ án Trong đề tài xác định khuôn mặt người, em sẽ đi theo hướng tiếp cận dựa trên diện mạo. Cụ thể là em sẽ trình bày phương pháp tiêu biểu của phương pháp máy học đó là: Mạng Nơ-ron
  • 14. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 1.4.1. Mạng Nơ-ron nhân tạo Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản(hay còn gọi là nơ-ron) hoạt động song song và được nối với nhau bằng các liên kết nơ-ron. Mỗi liên kết kèm theo một trọng số nào đó, đặc trưng cho tính kích hoạt hay ức chế của các nơron 1.4.2. Ứng dụng của mạng Nơ-ron trong bàitoán xác định khuôn mặt Mạng Nơ-ron được áp dụng rộng rãi và tương đối thành công trong các bài toán nhận dạng mẫu như: Nhận diện kí tự ( nhận diện chữ viết), đối tượng (object) , điều khiển robot …Một trong những ưu điểm của mạng nơ- ron là tính khả thi của hệ thống học là cơ sở dữ liệu mẫu đa dạng và phức tạp vì vậy khả năng phát hiện khuôn mặt rất lớn.Tuy nhiên điều trở ngại là các kiến trúc mạng đều quá lớn ,vì vậy khi áp dụng vào trường hợp cụ thể phải xác định rõ ràng số lượng tầng ,số lượng node , tỉ lệ … cho từng trường hợp. Theo đánh giá của các chuyên gia thì phương pháp xác định mặt người bằng mang nơ-ron của Rowel đối với ảnh xám là tốt nhất. Một mạng đa tầng được dùng để học các mẫu khuôn mặt và không phải là khuôn mặt từ các ảnh tương ứng ( dựa trên quan hệ về cường độ và mặt không gian của các điểm ảnh). Đây cũng là phương pháp mạng nơ-ron mà em sẽ trình bày cụ thể trong các chương sau của luận văn. 1.4.3. Cácbước xác định khuôn mặt dựa trên mạng Nơ-ron Hệ thống xác định khuôn mặt thực hiện các bước chính sau :  Ước lượng vị trí: việc dùng tiếp cận máy học, cụ thể là mạng Nơ-ron, đòi hỏi việc huấn luyện mẫu. Để giảm số lượng biến đổi trong ảnh huấn luyện dương, ảnh được canh biên với các ảnh khác để cực tiểu hoá các biến đổi vị trí đặc trưng khuôn mặt. Khi thi hành chương trình, ta không biết chính xác các vị trí đặc trưng khuôn
  • 15. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 mặt, do đó không thể dùng chúng để định vị các ứng viên khuôn mặt tiềm năng. Thay vậy, ta dò tìm toàn diện ở mọi vị trí và tỷ lệ để tìm mọi vị trí ứng viên. Các cải tiến dò tìm toàn diện làm cho thuật toán nhanh hơn, với tỷ lệ dò tìm giảm 10% đến 30%.  Tiền xử lý: để giảm các biến đổi gây ra do chiếu sáng hay camera, ảnh được tiền xử lý với các thuật toán chuẩn như cân bằng lược đồ để cải thiện độ sáng và độ tương phản trong ảnh. Sau đó ta tiến hành phân mảnh ảnh và rút trích các đặc trưng quan trọng của khuôn mặt, đồng thời tiến hành phân tích độ nhạy để lọc bỏ các thông tin dư thừa.  Dò tìm: các khuôn mặt tiềm năng đã chuẩn hoá về vị trí, tư thế, và độ sáng trong hai bước đầu tiên được khảo sát để xác định chúng có thực sự là khuôn mặt hay không. Quyết định này được thực hiện bằng mạng Nơ-ron đã huấn luyện với nhiều ảnh mẫu khuôn mặt và không khuôn mặt.  Quyết định: Kết hợp nhiều mạng để có được một quyết định khách quan nhất. Mỗi mạng học những điều khác nhau từ dữ liệu huấn luyện, và đưa ra các lỗi khác nhau. Các quyết định của chúng có thể kết hợp dùng một số phương thức đơn giản khác, làm tăng độ chính xác dò tìm khuôn mặt và ngăn chặn lỗi. 1.5. Kết luận chương 1 Nhận dạng khuôn mặt là một bài toán lâu đời và được nghiên cứu rộng rãi trong khoảng hơn 30 năm trở lại đây. Bài toán nhận dạng khuôn mặt có thể áp dụng rộng rãi trong nhiều lĩnh vực khác nhau. Các ứng dụng liên quan đến nhận dạng khuôn mặt có thể kể như: Hệ thống phát hiện tội phạm, hệ thống theo dõi nhân sự trong một đơn vị, hệ thống tìm kiếm thông
  • 16. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 tin trên ảnh, video dựa trên nội dung, … có rất nhiều phương pháp nhận diện khuôn mặt, xét thấy phương pháp nhận diện theo hướng tiếp cận dựa trên diện mạo (appearance-based) tổng hợp tất cả các đặc tính của khuôn mặt con người như: mắt, mũi, miệng ... thành một vector riêng có hiệu suất nhận dạng cao, tính ứng dụng rộng rãi, nhiều bộ dữ liệu theo mô hình này được sử dụng cho bài toán nhận diện. Hiện nay, bài toán nhận dạng khuôn mặt gặp nhiều thách thức, ví dụ như hệ thống camera công cộng, chụp hình vui chơi thì ảnh mặt nhận được có thể bị che khuấn một phần, ảnh chụp không chính diện hay chất lượng ảnh không tốt, những yếu tố này ảnh hưởng không nhỏ đến các thuật toán nhận dạng khuôn mặt. Có nhiều thuật toán khắc phục điều này, họ sử dụng một số kỹ thuật như xác định nhiều điểm chính trên khuôn mặt, lấy những chi tiết nhỏ hay sử dụng các phương pháp Học Sâu. Thuật toán Facenet là một trong số những thuật toán phổ biến hiện nay, FaceNet sẽ học cách ánh xạ từ ảnh khuôn mặt vào không gian Euclide compact với khoảng cách đo được tương ứng với độ tương đồng của khuôn mặt. Thuật toán này có thể tạo ra vector đặc trưng và nhúng vào bài toán nhận dạng khuôn mặt, kiểm tra khuôn mặt và phân cụm khuôn mặt. CHƯƠNG 2. MTCNN VÀ THUẬT TOÁN FACENET TRONG PHÁT HIỆN VÀ NHẬN DIỆN KHUÔN MẶT 2.1. Tổng quan Neural Network 2.1.1. Giới thiệu mạng Neural Mạng Neural là một mô hình xử lý thông tin mô phỏng theo cách thức xử lý thông tin của các hệ Neural sinh học của sinh vật. Mạng Neural được xây dựng nên từ một số lượng lớn các phần tử (Neural) kết nối với nhau thông qua các liên kết (trọng số liên kết) làm việc như một thể thống nhất để giải quyết một vấn đề cụ thể nào đó. Mô hình mạng Neural giống như
  • 17. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 bộ não con người, được học bởi kinh nghiệm (thông qua huấn luyện), có khả năng lưu giữ những kinh nghiệm hiểu biết (tri thức) và sử dụng những tri thức đó trong việc dự đoán các dữ liệu chưa biết. Hình 2.2.1 Cấu trúc mạng Neural Các thành phần cơ bản của một Neural nhân tạo bao gồm: - Input : Các tín hiệu đầu vào của Neural thể hiện thuộc tính của dữ liệu, các tín hiệu này thường được đưa vào dưới dạng một vector. - Trọng số liên kết (Connection Weights): Mỗi liên kết được thể hiện bởi một trọng số liên kết. Trọng số liên kết giữa tín hiệu vào thứ j với Neural k thường được kí hiệu là wkj. Thông thường, các trọng số này được khởi tạo một cách ngẫu nhiên ở thời điểm khởi tạo mạng và được cập nhật liên tục trong quá trình học mạng. - Hàm tổng (Summation) : Tính tổng trọng số của tất cả các tín hiệu đầu vào được đưa vào mỗi Neural. - Hàm truyền (Transfer function): Hàm này được dùng để giới hạn phạm vi đầu ra của mỗi Neural. Nó nhận đầu vào là kết quả của hàm tổng và ngưỡng. - Output: Là tín hiệu đầu ra của một Neural, với mỗi Neural sẽ có tối đa là một đầu ra.
  • 18. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Xét về mặt toán học, cấu trúc của một Neural k, được mô tả bằng cặp biểu thức sau: 1 w p k kj j j u x     (1.1)   k k k y f u b   (1.2) Trong đó: - x1, x2, ..., xp: là các tín hiệu vào. - (wk1, wk2,..., wkp) là các trọng số liên kết của Neural thứ k. - uk là hàm tổng. - bk là độ lệch trong quá trình truyền. - f là hàm truyền. - yk là tín hiệu đầu ra của Neural. Như vậy Neural nhân tạo nhận các tín hiệu đầu vào, xử lý (nhân các tín hiệu này với trọng số liên kết, tính tổng các tích thu được rồi gửi kết quả tới hàm truyền), và cho một tín hiệu đầu ra ( là kết quả của hàm truyền). 2.1.2. Phân loại a) Mạng thần kinh nhân tạo (ANN) ANN ra đời xuất phát từ ý tưởng mô phỏng bộ não con người. Mạng thần kinh nhân tạo (ANN), là một nhóm gồm nhiều perceptron hoặc neural ở mỗi lớp. ANN còn được gọi là mạng Neural Feed-Forward vì các đầu vào chỉ được xử lí theo hướng chuyển tiếp. Mạng thần kinh nhân tạo là một trong những biến thể đơn giản nhất của mạng neural. Chúng truyền thông tin theo một hướng, qua các nút đầu vào khác nhau, cho đến khi nó đến được nút đầu ra.
  • 19. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.2 Hoạt động của ANN ANN bao gồm 3 lớp - Đầu vào, Ẩn và Đầu ra. Lớp đầu vào chấp nhận các tín hiệu đầu vào, lớp ẩn xử lý các tín hiệu đầu vào và lớp đầu ra tạo ra kết quả. Về cơ bản, mỗi lớp cố gắng tìm hiểu các trọng lượng nhất định. ANN có thể được sử dụng để giải quyết các vấn đề liên quan đến:  Dữ liệu dạng bảng  Dữ liệu hình ảnh  Dữ liệu văn bản Ưu điểm:  Mạng nơron nhân tạo có khả năng học bất kỳ hàm phi tuyến nào. Do đó, những mạng này thường được biết đến với cái tên Phương pháp xấp xỉ hàm phổ quát . ANN có khả năng tìm hiểu các trọng số ánh xạ bất kỳ đầu vào nào với đầu ra.  Lưu trữ thông tin trên toàn bộ mạng.  Khả năng làm việc với kiến thức chưa hoàn thiện.  Có khả năng chịu lỗi.
  • 20. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149  Có bộ nhớ phân tán. Nhược điểm: Với bài toán phân loại ảnh bằng ANN, bước đầu tiên là chuyển ảnh 2 chiều thành vectơ 1 chiều trước khi huấn luyện mô hình. Điều này có ba nhược điểm:  Số lượng các thông số có thể huấn luyện tăng lên đáng kể với sự gia tăng kích thước của hình ảnh. Hình 2.2.2 ANN: Phân loại hình ảnh Trong trường hợp trên, nếu kích thước của hình ảnh là 224 x 224, thì số lượng tham số có thể tra được ở lớp ẩn đầu tiên chỉ với 4 nơ-ron là 602.112.  ANN làm mất các tính năng không gian của hình ảnh. Các tính năng không gian đề cập đến sự sắp xếp của các pixel trong một hình ảnh.  ANN không thể nắm bắt thông tin tuần tự trong dữ liệu đầu vào được yêu cầu để xử lý dữ liệu trình tự. b) Mạng thần kinh tái tạo (RNN) Sự khác biệt giữa RNN và ANN từ quan điểm kiến trúc:  Một ràng buộc lặp trên lớp ẩn của ANN chuyển thành RNN.
  • 21. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.2.3 RNN và ANN Mạng thần kinh tái tạo (RNN) có một kết nối lặp lại ở trạng thái ẩn. Ràng buộc lặp này đảm bảo rằng thông tin tuần tự được ghi lại trong dữ liệu đầu vào. RNN lưu đầu ra của các nút xử lý và đưa kết quả trở lại mô hình (không chuyển thông tin chỉ theo một hướng). Đây là cách mô hình được cho là học cách dự đoán kết quả của một lớp. Mỗi nút trong mô hình RNN hoạt động như một ô nhớ, tiếp tục tính toán và thực hiện các hoạt động. Nếu dự đoán của mạng không chính xác, thì hệ thống sẽ tự học và tiếp tục làm việc để hướng tới dự đoán chính xác trong quá trình nhân giống ngược. Chúng ta có thể sử dụng mạng thần kinh tái tạo để giải quyết các vấn đề liên quan đến:  Dữ liệu chuỗi thời gian  Dữ liệu văn bản  Dữ liệu âm thanh Ưu điểm:
  • 22. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149  RNN ghi nhớ từng thông tin theo thời gian. RNN chỉ hữu ích trong dự đoán chuỗi thời gian vì tính năng ghi nhớ các đầu vào trước đó. Đây được gọi là trí nhớ ngắn hạn dài hạn.  RNN còn được sử dụng với các lớp phức hợp để mở rộng vùng lân cận pixel hiệu quả. Nhược điểm:  Các RNN sâu (RNN với một số lượng lớn các bước thời gian) cũng gặp phải vấn đề Gradient biến mất và các vấn đề bùng nổ.  Huấn luyện một RNN là một nhiệm vụ rất khó khăn.  RNN không thể xử lý các chuỗi rất dài nếu sử dụng tanh hoặc relu làm hàm kích hoạt. c) Mạng thần kinh tích chập (Convolutional Neural Network - CNN) Mạng thần kinh tích chập (CNN) là một trong những mô hình phổ biến nhất được sử dụng hiện nay. Mạng thần kinh tích chập có kiến trúc khác với Mạng thần kinh thông thường. Mạng thần kinh bình thường chuyển đổi đầu vào thông qua hàng loạt các tầng ẩn. Mỗi tầng là một tập các nơ-ron và các tầng được liên kết đầy đủ với các nơ-ron ở tầng trước đó. Và ở tầng cuối cùng sẽ là tầng kết quả đại diện cho dự đoán của mạng. Mạng thần kinh tích chập được chia thành 3 chiều: rộng, cao, và sâu. Các nơ-ron trong mạng không liên kết hoàn toàn với toàn bộ nơ-ron tầng trước chỉ liên kết tới một vùng nhỏ. Cuối cùng, một tầng đầu ra được tối giản thành véc-tơ của giá trị xác suất. CNN gồm hai thành phần:  Phần tầng ẩn hay phần rút trích đặc trưng: trong phần này, mạng sẽ tiến hành tính toán hàng loạt phép tích chập và phép hợp nhất (pooling) để phát hiện các đặc trưng. Ví dụ: nếu ta có hình ảnh con ngựa vằn, thì
  • 23. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 trong phần này mạng sẽ nhận diện các sọc vằn, hai tai, và bốn chân của nó.  Phần phân lớp: tại phần này, một lớp với các liên kết đầy đủ sẽ đóng vai trò như một bộ phân lớp các đặc trưng đã rút trích được trước đó. Tầng này sẽ đưa ra xác suất của một đối tượng trong hình. Ưu điểm:  Độ chính xác rất cao trong các vấn đề nhận dạng hình ảnh.  Tự động phát hiện các tính năng quan trọng mà không cần bất kỳ sự giám sát của con người.  Chia sẻ trọng lượng.  Dễ thiết kế mô hình nhận dạng nhanh Nhược điểm:  CNN không mã hóa vị trí và hướng của đối tượng.  Thiếu khả năng bất biến trong không gian đối với dữ liệu đầu vào. Qua hoạt động của 3 loại mô hình mạng neraul ta thấy được các ưu nhược điểm của từng loại mô hình. Với mỗi loại có mỗi đặc điểm riêng và trong đó nổi trội về mảng nhận diện hình ảnh là mô hình CNN với khả năng dễ thiết kế nhận dạng nhanh, độ chính xác cao là lựa chọn phù hợp cho bài toán nhận diện mà chúng ta cần giải quyết. Để thấy rõ hơn về sự hoạt động của CNN ta đi phân tích chi tiết hơn về cấu trúc và hoạt động để thấy rõ sự tối ưu của mô hình mạng này. 2.1.3. Cấu trúc mạng thần kinh tích chập (CNN ) Convolutional Neural Network (CNN) là một trong những thuật toán học sâu chính để nhận dạng vật thể, nhận dạng hình ảnh,… Để nhận diện được vật thể, mô hình CNN sẽ học dữ liệu và kiểm tra liên tục để đạt được kết quả nhận diện tốt nhất. Mỗi ảnh input đầu vào sẽ được máy tính coi như 1 mảng các pixel phụ thuộc vào độ phân giải của
  • 24. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 chúng và cũng tùy vào ảnh màu hay ảnh đen trắng mà số lớp của ảnh cũng khác nhau, cách xử lý cũng khác nhau. Quá trình CNN xử lý và học dữ liệu sẽ bao gồm 1 số lớp như sau: Lớp tích chập (Convolutional Layer), Lớp kích hoạt phi tuyến ReLU (Rectified Linear Unit), Lớp lấy mẫu (Pooling Layer) và Lớp kết nối đầy đủ (Fully-connected Layer), được thay đổi về số lượng và cách sắp xếp để tạo ra các mô hình huấn luyện phù hợp cho từng bài toán khác nhau. Hình 2.4 Cấu trúc mạng tích chập CNN a) Lớp tích chập (Convolutional layer) Đây là thành phần quan trọng nhất trong mạng CNN, cũng là nơi thể hiện tư tưởng xây dựng sự liên kết cục bộ thay vì kết nối toàn bộ các điểm ảnh. Các liên kết cục bộ này được tính toán bằng phép tích chập giữa các giá trị điểm ảnh trong một vùng ảnh cục bộ với các bộ lọc – filters – có kích thước nhỏ.
  • 25. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.5 Nguyên lý bộ lọc tích chập Bộ lọc được sử dụng là một ma trận có kích thước 3x3. Bộ lọc này được dịch chuyển lần lượt qua từng vùng ảnh đến khi hoàn thành quét toàn bộ bức ảnh, tạo ra một bức ảnh mới có kích thước nhỏ hơn hoặc bằng với kích thước ảnh đầu vào. Kích thước này được quyết định tùy theo kích thước các khoảng trắng được thêm ở viền bức ảnh gốc và được tính theo công thức sau: 𝑂 = 𝑖+2∗𝑝−𝑘 𝑠 + 1 (1.3) Trong đó: O: kích thước ảnh đầu ra. i: kích thước ảnh đầu vào. p: kích thước khoảng trắng phía ngoài viền của ảnh gốc. k: kích thước bộ lọc. s: bước trượt của bộ lọc. Kết quả cuối cùng bước này sẽ cho ra output như thế nào? Bước convolution này để tìm đặc trưng ảnh như viền,….
  • 26. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.6 Kết quả xử lý sau lớp tích chập b) Lớp lấy mẫu( Pooling Layer) Mục đích của pooling rất đơn giản, nó làm giảm số hyperparameter mà ta cần phải tính toán, từ đó giảm thời gian tính toán, tránh overfitting. Loại pooling ta thường gặp nhất là max pooling, lấy giá trị lớn nhất trong một pooling window. Pooling hoạt động gần giống với convolution, nó cũng có 1 cửa sổ trượt gọi là pooling window, cửa sổ này trượt qua từng giá trị của ma trận dữ liệu đầu vào (thường là các feature map trong convolutional layer), chọn ra một giá trị từ các giá trị nằm trong cửa sổ trượt (với max pooling ta sẽ lấy giá trị lớn nhất). Hình 2.7 : Xử lý Max Pooling c) Lớp kết nối đầy đủ( Fully Connected module) Trong mạng Neural, các Neural input sẽ được kết nối với các Neural khác trong mạng với 1 trọng số cụ thể. Từ input đầu vào, qua các Neural trung gian sẽ tìm được kết quả đầu ra phù hợp. Nếu kết quả chưa đạt tối ưu,
  • 27. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 mạng Neural sẽ lan truyền ngược để tìm lại trọng số weight ở mỗi Neural sao cho kết quả đạt được là tối ưu. Hình 2.2.8 Fully Connected Layer Sự ra đời của mạng CNN đã giải quyết các vấn đề còn lại của các mạng Neural nhân tạo truyền thống học thông tin trong ảnh. Do sử dụng các liên kết đầy đủ giữa các điểm ảnh vào node, các mạng Neural nhân tạo truyền thẳng (Feedforward Neural Network) bị hạn chế rất nhiều bởi kích thước của ảnh, ảnh càng lớn thì số lượng liên kết càng tăng nhanh và kéo theo sự bùng nổ khối lượng tính toán. Ngoài ra sự liên kết đầy đủ này cũng là sự dư thừa khi với mỗi bức ảnh, các thông tin chủ yếu thể hiện qua sự phụ thuộc giữa các điểm ảnh với những điểm xung quanh nó mà không quan tâm nhiều đến các điểm ảnh ở cách xa nhau. Mạng CNN ra đời với kiến trúc thay đổi, có khả năng xây dựng liên kết chỉ sử dụng một phần cục bộ trong ảnh kết nối đến node trong lớp tiếp theo thay vì toàn bộ ảnh như trong mạng nơ-ron truyền thẳng. 2.2. Phát hiện khuôn mặt bằng MTCNN Mạng nơ-ron tích chập CNN (Convolutional Neural Networks) là mô hình học sâu (Deep Learning) hiệu quả, được dùng trong nhiều bài toán phát hiện và nhận diện khuôn mặt, phân tích video, ảnh MRI,….Với những ưu điểm trong hoạt động phân tích hình ảnh của mạng CNN nhận thấy
  • 28. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 được những điều trên nên phát triển thêm mô hình “Mạng thần kinh kết nối đa tác vụ được xếp tầng” gọi tắt MTCNN. Mạng MTCNN được phát triển từ CNN. Về mặt cấu trúc MTCNN bao gồm 3 mạng CNN (Convolutional Neural Networks) xếp chồng và đồng thời hoạt động khi phát hiện và xác định khuôn mặt. Mỗi mạng CNN trong MTCNN có cấu trúc và vai trò khác nhau trong việc phát hiện khuôn mặt. Kết quả dữ liệu đầu ra của MTCNN là véc-tơ đặc trưng biểu diễn cho vị trí khuôn mặt được xác định trong bức ảnh (mắt, mũi, miệng, …) MTCNN hoạt động theo 3 bước với 3 mạng nơ-ron riêng cho mỗi bước (P-Net, R-Net và O-Net). Khi sử dụng, MTCNN sẽ cho phép tạo ra nhiều bản sao của hình ảnh đầu vào, với các kích thước khác nhau để làm dữ liệu đầu vào. Mô hình này cho phép xác định khuôn mặt ở nhiều góc độ khác nhau, ít bị ảnh hưởng bởi ánh sáng của môi trường xung quanh và nhận diện ngay cả trong trường hợp một phần khuôn khuôn mặt bị che khuất. Phát hiện khuôn mặt và các điểm trên mặt như mắt, mũi,…Phát hiện khuôn mặt và căn chỉnh trong là một thách thức lớn do nhiều tư thế, ánh sáng khác nhau. Với Deep Learning trên nền tảng MTCNN, chúng ta hoàn toàn có thể nhận dạng, định vị chính xác khuôn mặt và các điểm trên khuôn mặt như mắt, mũi,… Thuật toán tốc độ tính toán nhanh, hiệu quả do MTCNN đã được rất nhiều tác giả nghiên cứu và nâng cao độ chính xác. Điển hình với công bố của mình, nhóm tác giả Rong Xie, Qingyu Zhang đã so sánh đánh giá phương pháp MTCNN với các phương pháp khác để thấy được sự ưu việt với công bố “A Method of Small Face Detection Based on CNN” [9].
  • 29. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.9 So sánh phương pháp MTCNN Thuật toán MTCNN sử dụng mạng hiệu chuẩn để hiệu chỉnh khuôn mặt sau khi phát hiện khuôn mặt. Nó bao gồm nhiều mô hình với số lượng tính toán lớn, bỏ qua các liên kết nội tại giữa các nội giới hạn hồi quy của khuôn mặt và vị trí của khuôn mặt. Thuật toán MTCNN là một thuật toán nhận diện khuôn mặt đa tác vụ, thực hiện nhận diện khuôn mặt và điểm đặc trưng khuôn mặt. Qua phân tích so sánh của tác giả, ta có thể nhận ra tốc độ xử lý dữ liệu của thuật toán là khá cao, có thể đáp ứng yêu cầu hệ thống của mình. Chúng ta có thể biểu diễn nguyên lý hoạt động MTCNN như hình dưới : Hình 2.2.10 Nguyên lý hoạt động MTCNN MTCNN hoạt động theo 3 bước và mỗi bước có một mạng Neural (CNN) riêng biệt gồm: P-Net, R-Net, O-Net. Tại mỗi bước sẽ thực hiện quá trình xử lý riêng với kết quả là có thể phát hiện khuôn mặt trong ảnh đầu vào nhanh và chính xác. Với mỗi bức ảnh đầu vào, nó sẽ tạo ra nhiều bản sao của hình ảnh đó với các kích thước khác nhau.Sau đây chúng ta sẽ
  • 30. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 lần lượt đi sâu và phân tích cấu tạo, nguyên lý hoạt động của từng mạng xử lý, từ đó có cái nhìn tổng quan nhất về thuật toán MTCNN. 2.2.1. Kiến trúc P-Net Hình 2.2.11 Chi tiết kiến trúc P-Net Có thể thấy ở đây, P-Net là một mạng dạng FCN - Fully convolutional network. Nhiệm vụ của nó là xác định các window ảnh bao gồm mặt người nhưng lại lấy nhiều, nhanh và thiếu chính xác. Output đầu ra gồm có:  Face lớpificationcó shape (1x1x2).  BBox regressioncó shape (1x1x4).
  • 31. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.2.12 Quá trình xử lý mạng P-Net Đầu tiên cần chuyển một hình ảnh vào chương trình. Tạo một kim tự tháp hình ảnh, để phát hiện các khuôn mặt ở tất cả các kích thước khác nhau. Nói cách khác, tạo các bản sao khác nhau của cùng một hình ảnh với các kích thước khác nhau để tìm kiếm các khuôn mặt có kích thước khác nhau trong hình ảnh. Đối với mỗi bản sao được chia tỷ lệ, chúng ta có một hạt nhân 12 x 12 giai đoạn 1 sẽ đi qua mọi phần của hình ảnh, quét các khuôn mặt. Nó bắt đầu ở góc trên cùng bên trái, một phần của hình ảnh từ (0,0) đến (12,12). Phần này của hình ảnh được chuyển đến P-Net, nó sẽ trả về tọa độ của một hộp giới hạn nếu nhận thấy một khuôn mặt. Sau đó, sẽ lặp lại quá trình đó với các phần (0 + 2a, 0 + 2b) đến (12 + 2a, 12 + 2b), dịch chuyển nhân 12 x 12 2pixel sang phải hoặc xuống cùng một lúc. Sự dịch chuyển của 2pixel được gọi là sải chân, hoặc số lượng pixel mà nhân di chuyển mỗi lần.
  • 32. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.2.13 Ví dụ xử lý mạng P-Net Bước 2, giúp giảm độ phức tạp của tính toán mà không làm giảm đáng kể độ chính xác. Vì các khuôn mặt trong hầu hết các hình ảnh đều lớn hơn đáng kể so với 2 pixel, nên rất khó xảy ra trường hợp hạt nhân sẽ bỏ lỡ một khuôn mặt chỉ vì nó dịch chuyển 2 pixel. Đồng thời, máy tính (hoặc bất kỳ máy nào đang chạy mã này) sẽ có một phần tư số lượng hoạt động để tính toán, giúp chương trình chạy nhanh hơn và tốn ít bộ nhớ hơn. Nhược điểm duy nhất là phải tính toán lại tất cả các chỉ số liên quan đến sải chân. Ví dụ, nếu hạt nhân phát hiện một khuôn mặt sau khi di chuyển một bước sang bên phải, chỉ mục đầu ra sẽ cho chúng ta biết góc trên cùng bên trái của hạt nhân đó là (1,0). Tuy nhiên, vì sải chân là 2 nên ta phải nhân chỉ số với 2 để có tọa độ chính xác: (2,0). Mỗi hạt nhân sẽ nhỏ hơn so với một hình ảnh lớn, vì vậy sẽ có thể tìm thấy các khuôn mặt nhỏ hơn trong hình ảnh có tỷ lệ lớn hơn. Tương tự, kernel sẽ lớn hơn so với hình ảnh có kích thước nhỏ hơn, vì vậy nó có thể tìm thấy các khuôn mặt lớn hơn trong hình ảnh có tỷ lệ nhỏ hơn. Sau khi truyền vào hình ảnh, cần tạo nhiều bản sao được chia tỷ lệ của hình ảnh và chuyển vào mạng thần kinh đầu tiên P-Net và thu thập đầu ra của nó.
  • 33. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.2.14 Đầu ra cho mẫu P-Net Trọng số và độ lệch của P-Net đã được đào tạo để nó xuất ra một hộp giới hạn tương đối chính xác cho mỗi hạt nhân 12 x 12. Tuy nhiên, mạng tự tin hơn về một số hộp so với những hộp khác. Do đó, cần phân tích cú pháp đầu ra P-Net để có được danh sách các mức độ tin cậy cho mỗi hộp giới hạn và xóa các hộp có độ tin cậy thấp hơn (tức là các hộp mà mạng không chắc chắn có chứa một khuôn mặt)
  • 34. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.2.15 Chuẩn hóa tọa độ hạt nhân bằng cách nhân với tỷ lệ Sau khi chọn ra các hộp với độ tin cậy cao hơn, phải chuẩn hóa hệ tọa độ, chuyển đổi tất cả các hệ tọa độ thành hình ảnh thực tế, “chưa được chia tỷ lệ”. Hầu hết các hạt nhân nằm trong một hình ảnh thu nhỏ, tọa độ của chúng sẽ dựa trên hình ảnh nhỏ hơn. NMS được tiến hành trước tiên bằng cách sắp xếp các hộp giới hạn (và các hạt nhân 12 x 12 tương ứng của chúng) theo độ tin cậy hoặc điểm số của chúng. Trong một số mô hình khác, NMS lấy hộp giới hạn lớn nhất thay vì hộp giới hạn mà mạng tin tưởng nhất. Sau đó, tính diện tích của từng nhân, cũng như diện tích chồng chéo giữa từng nhân và nhân có điểm cao nhất. Các hạt nhân trùng lặp nhiều với hạt nhân điểm cao sẽ bị xóa. Cuối cùng, NMS trả về một danh sách các hộp giới hạn "còn tồn tại".
  • 35. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.2.16 Sự triệt tiêu không tối đa Tiến hành NMS một lần cho mỗi hình ảnh được chia tỷ lệ, sau đó một lần nữa với tất cả các hạt nhân còn sót lại từ mỗi tỷ lệ. Điều này giúp loại bỏ các hộp giới hạn thừa, cho phép thu hẹp tìm kiếm xuống một hộp chính xác cho mỗi mặt. Sau đó, chuyển đổi tọa độ hộp giới hạn thành tọa độ của hình ảnh thực tế. Ngay bây giờ, tọa độ của mỗi hộp giới hạn là một giá trị từ 0 đến 1, với (0,0) là góc trên cùng bên trái của hạt nhân 12 x 12 và (1,1) là góc dưới cùng bên phải (xem bảng trên). Bằng cách nhân tọa độ với chiều rộng và chiều cao của hình ảnh thực tế, chúng ta có thể chuyển đổi tọa độ hộp giới hạn thành tọa độ hình ảnh chuẩn, có kích thước thực. Hình 2.17 Hộp giới hạn
  • 36. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Trong hình ảnh này, hộp màu đỏ đại diện cho hạt nhân 24 x 24, được thay đổi kích thước trở lại hình ảnh ban đầu. Có thể tính toán chiều rộng và chiều cao của kernel: 1500–200 = 300, 1800–500 = 300 (Lưu ý rằng chiều rộng và chiều cao không nhất thiết phải là 12. Đó là đang sử dụng tọa độ của kernel trong bản gốc hình ảnh. Chiều rộng và chiều cao nhận được ở đây là chiều rộng và chiều cao của hạt nhân khi được thu nhỏ trở lại kích thước ban đầu.) Sau đó, nhân tọa độ hộp giới hạn với 300: 0,4x300 = 120, 0,2x300 = 60, 0,9x300 = 270, 0,7x300 = 210. Cuối cùng, thêm tọa độ trên cùng bên trái của hạt nhân để có tọa độ của hộp giới hạn: (200 + 120, 500 + 60) và (200 + 270, 500 + 210) hoặc (320,560) và (470,710). Vì các hộp giới hạn có thể không phải là hình vuông, sau đó định hình lại các hộp giới hạn thành hình vuông bằng cách kéo dài các cạnh ngắn hơn (nếu chiều rộng nhỏ hơn chiều cao, mở rộng nó sang một bên; nếu chiều cao nhỏ hơn chiều rộng, mở rộng nó theo chiều dọc).
  • 37. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 2.2.2. Kiến trúc R-Net Hình 2.2.18 Chi tiết kiến trúc R-Net Quá trình xử lý R-Net. Tất cả các cửa sổ chứa khuôn mặt từ tầng P- Net sẽ được sàng lọc bằng cáchđưa vào một CNN R-Net để tiếp tục loại bỏ một số lượng lớn các cửa sổ không chứa khuôn mặt. Sau đó thực hiện hiệu chuẩn với vector hồi quy và thực hiện hợp nhất các cửa sổ xếp chồng nhau tại một vùng. Hình 2.19 Quá trình xử lý mạng R-Net Dưới đây là quá trình xử lý của mạng R-Net. Từ ảnh sau quá trình xử lý P-Net, quá trình lọc được xử lý và đưa ra ảnh sau xử lý đã loại bỏ được đáng kể vùng không chứa khuôn mặt.
  • 38. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.20 Ví dụ xử lý mạng R-Net 2.2.3. Kiến trúc O-Net Hình 2.21 Chi tiết kiến trúc O-Net Quá trình xử lý O-Net. Tầng này tương tự như tầng R-Net, nó sử dụng CNN chi tiết nhất - Mạng đầu ra (O-Net) để lọc kết quả một lần nữa và đánh dấu vị trí năm điểm chính trên khuôn mặt. Những cửa sổ chứa khuôn mặt sau khi đi qua tầng 3 là khuôn mặt được phát hiện. Trước khi có thể vượt qua các hộp giới hạn từ R-Net, trước tiên phải đệm bất kỳ hộp nào nằm ngoài giới hạn. Sau đó, sau khi thay đổi kích thước các hộp thành 48 x 48 pixel, có thể chuyển các hộp giới hạn vào O-Net.
  • 39. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Kết quả đầu ra của O-Net hơi khác so với P-Net và R-Net. O-Net cung cấp 3 đầu ra: tọa độ của ô giới hạn (ra [0]), tọa độ của 5 mốc mặt (ra [1]), và mức độ tin cậy của mỗi ô (ra [2]). Một lần nữa, loại bỏ các hộp có mức độ tin cậy thấp hơn và chuẩn hóa cả tọa độ hộp giới hạn và tọa độ mốc mặt. Cuối cùng, chạy qua NMS cuối cùng. Tại thời điểm này, chỉ nên có một hộp giới hạn cho mọi khuôn mặt trong hình ảnh. Hình 2.22 Quá trình xử lý O-Net Như vậy sau khi xử lý, thuật toán đưa ra 3 kết quả đầu ra khác nhau bao gồm: xác suất của khuôn mặt nằm trong đường bao, tọa độ của đường bao khuôn mặt và tọa độ của các mốc trên khuôn mặt (vị trí mắt, mũi, miệng). Nhận diện thông qua MTCNN có hiệu suất tốt, có thể định vị chính xác khuôn mặt và tốc độ cũng nhanh hơn, ngoài ra, MTCNN cũng có thể phát hiện trong thời gian thực tế.
  • 40. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 2.3. Nhận diện khuôn mặt với thuật toán FaceNet 2.3.1. Khái quát về FaceNet Facenet là một mạng thần kinh sâu được sử dụng để trích xuất các đặc điểm từ hình ảnh khuôn mặt của một người. Nó được xuất bản vào năm 2015 bởi các nhà nghiên cứu của Google, Schroff et al. Hầu hết các thuật toán nhận diện khuôn mặt trước facenet đều tìm cách biểu diễn khuôn mặt bằng một véc tơ nhúng thông qua một lớp cổ chai có tác dụng giảm chiều dữ liệu. Tuy nhiên hạn chế của các thuật toán này đó là số lượng chiều nhúng tương đối lớn (thường >= 1000) và ảnh hưởng tới tốc độ của thuật toán. Thường chúng ta phải áp dụng thêm thuật toán PCA để giảm chiều dữ liệu để giảm tốc độ tính toán. Hàm loss function chỉ đo lường khoảng cách giữa 2 bức ảnh. Như vậy trong một đầu vào huấn luyện chỉ học được một trong hai khả năng là sự giống nhau nếu chúng cùng 1 lớp hoặc sự khác nhau nếu chúng khác lớp mà không học được cùng lúc sự giống nhau và khác nhau trên cùng một lượt huấn luyện. 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: Mạng cơ sở áp dụng một mạng nơ-ron tích chập (CNN) và giảm chiều dữ liệu xuống chỉ còn 128 chiều. Do đó quá 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. Phân tích và so sánh, đánh giá bởi các nhà khoa học cho thấy thuật toán Facenet độ chính xác khá cao, ứng dụng vào nhiều ứng dụng. Công bố ”Face Recognition Algorithm Bias: Performance Differences on Images of Children and Adults”[7] của nhóm tác giả Nisha Srinivas, Karl Ricanek, Dana Michalski đã cho thấy ứng dụng của thuật toán vào phân tích sự khác
  • 41. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 nhau giữa trẻ em và người lớn. Thuật toán có thể được training từ nhiều nguồn dataset nâng cao độ chính xác có thể thấy tính tiện lợi của thuật toán. Để thấy được sự vượt trội của thuật toán, nhóm tác giả Ivan William, De Rosal Ignatius Moses Setiadi , Eko Hari Rachmawanto đã so sánh, đánh giá với các phương pháp khác với đề tài “Face Recognition using FaceNet (Survey, Performance Test, and Comparison)”[8] để thấy tính vượt trội về độ chính xác so với phương pháp PCA,… FaceNet cung cấp khả năng nhúng thống nhất cho các tác vụ nhận dạng, xác minh và phân cụm khuôn mặt. Nó ánh xạ mỗi hình ảnh khuôn mặt vào một không gian euclide sao cho khoảng cách trong không gian đó tương ứng với khuôn mặt, tức là hình ảnh của một người sẽ được đặt gần hơn với tất cả các hình ảnh khác của người đó so với hình ảnh của bất kỳ người nào khác có trong tập dữ liệu. Đầu tiên ta sẽ tìm hiểu cách biểu diễn khuôn mặt khi xử lý hình ảnh. Khi xử lý, khuôn mặt sẽ được biểu diễn dưới dạng vector để quá trình nhận dạng, so sánh toán học trở nên dễ dàng. Nói đến việc nhận dạng, xác định khuôn mặt này là của ai, cần tính độ giống, khác nhau giữa các khuôn mặt chúng ta lấy được. Và nói về độ giống, khác nhau, để đơn giản, nên quy về bài toán tính khoảng cách giữa các vector.
  • 42. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.23 FaceNet process Bài toán đặt ra là tìm cách chuyển từ khung hình khuôn mặt sang vector sao cho ảnh hai khuôn mặt gần nhau thì 2 vector tương ứng cũng phải có khoảng cách gần nhau. Ảnh 2 khuôn mặt khác nhau thì 2 vector tương ứng cũng phải xa nhau hơn. Như sơ đồ trên, mô hình sử dụng Triplet Loss. 2.3.2. Thuật toán Triplet Loss trong Facenet Triplet là bộ ba thông số bao gồm: 1 ảnh mặt của 1 người bất kỳ (query), 1 ảnh mặt khác của người đó (positive), 1 ảnh mặt của người khác (negative). Với việc huấn luyện mô hình như thế, chúng ta sẽ có thêm thông tin về mối quan hệ giữa các ảnh, điều này giúp mô hình phù hợp hơn nhiều với bài toán.
  • 43. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 2.24 Triplet Loss Để mô hình dễ hiểu hơn khi huấn luyện để có thể tạo ra các vector như ý, cần sử dụng bộ ba thông số trở nên hiệu quả. Và hàm loss của mô hình sẽ có dạng như sau: 𝑙(𝑝𝑖, 𝑝𝑖 + , 𝑝𝑖 −) = 𝑚𝑎𝑥{0, 𝑔 + 𝐷(𝑓(𝑝𝑖),𝑓(𝑝𝑖 +)) − 𝐷(𝑓(𝑝),𝑓(𝑝𝑖 −))} (1.4) Với: - f(p) là vector biểu diễn p - D là khoảng cách giữa 2 vector Cần huấn luyện để cho hàm trên càng lớn càng tốt. Điều này có nghĩa là mô hình sẽ cố gắng học sao cho càng ngày, nó càng giảm khoảng cách giữa 2 vector f(pi) (Query Image) và f(pi+) (Positive Image), và tăng khoảng cách giữa Query Image và Negative Image. Đây là điều chúng ta đang muốn mô hình học được. Cụ thể hơn, cần tính được hàm Loss. Chúng ta cần một ảnh xi a của một người tiến gần những ảnh khác xi p (positive) của người đó trong bộ dataset hơn là những ảnh của người khác xi n (negative), được đại diện bới hệ số khoảng cách α, cụ thể: ∥ 𝑥𝑖 𝑎 − 𝑥𝑖 𝑝 ∥2 2 +𝛼 <∥ 𝑥𝑖 𝑎 − 𝑥𝑖 𝑛 ∥2 2 ∀(𝑥𝑖 𝑎 , 𝑥𝑖 𝑝 , 𝑥𝑖 𝑛 ) ∈ 𝜏 (1.5) Từ đó tính được hàm Loss:
  • 44. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 𝐿 = ∑ || 𝑁 𝑖 [∥ 𝑓(𝑥𝑖 𝑎) − 𝑓(𝑥𝑖 𝑝 ) ∥2 2 −∥ 𝑓(𝑥𝑖 𝑎) − 𝑓(𝑥𝑖 𝑛) ∥2 2 +𝛼] (1.6) Như vậy khi áp dụng triplet loss vào các mô hình convolutional neural network chúng ta có thể tạo ra các biểu diễn vector tốt nhất cho mỗi một bức ảnh. Những biểu diễn vector này sẽ phân biệt tốt các ảnh Negative rất giống ảnh Positive. Và đồng thời các bức ảnh thuộc cùng một label sẽ trở nên gần nhau hơn trong không gian chiếu euclidean. FaceNet sử dụng CNN bằng cách dùng hàm f(x) và nhúng hình ảnh x vào không gian Euclidean d chiều sao cho khoảng cách giữa các hình ảnh của 1 người không phụ thuộc vào điều kiện bên ngoài, khoảng cách giữa các khuôn mặt giống nhau (của cùng một người là nhỏ) trong khi khoảng cách giữa các ảnh khác nhau sẽ có khoảng cách lớn. FaceNet sử dụng một mạng CNN và cho phép giảm số chiều dữ liệu của véc-tơ đặc trưng (thường sử dụng là 128 chiều). Do đó, cho phép tăng tốc độ huấn luyện và xử lý mà độ chính xác vẫn được đảm bảo. Đối với thuật toán FaceNet, hàm loss function sử dụng hàm triplet loss cho phép khắc phục hạn chế của các phương pháp nhận dạng trước đây, quá trình huấn luyện cho phép học được đồng thời: Sự giống nhau giữa hai bức ảnh (nếu hai bức ảnh cùng một lớp) và sự khác nhau giữa hai bức ảnh (nếu chúng không cùng một lớp). 2.4. Kết luận chương 2 Chương 2 đã trình bày các mô hình mạng neraul trong Deep learning và thuật toán chính được sử dụng trong hệ thống, từ việc nghiên cứu và so sánh giữa các phương pháp với nhau, lựa chọn được phương pháp tối ưu. MTCNN là một công cụ phát hiện khuôn mặt mạnh mẽ cung cấp điểm số phát hiện cao. Nó là viết tắt của Multi-task Cascaded Convolutions Networks. Đó là một phương pháp tiếp cận dựa trên học tập sâu hiện đại.
  • 45. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 MTCNN là một giải pháp nhẹ nhất có thể. Trước tiên, xây dựng một máy dò MTCNN và cung cấp một mảng numpy làm đầu vào cho chức năng phát hiện khuôn mặt dưới giao diện của nó. Tải hình ảnh đầu vào bằng OpenCV trong khối mã sau. Hàm phát hiện khuôn mặt trả về một mảng đối tượng cho các khuôn mặt được phát hiện. Đối tượng trả về lưu trữ tọa độ của các khuôn mặt được phát hiện trong khóa hộp. Xác định phương pháp chính là thuật toán Facenet trong nhận diện khuôn mặt. Thuật toán này đã cải thiện được đồng thời độ chính xác và tốc độ nhờ áp dụng output shape thấp và hàm triple loss hiệu quả. CHƯƠNG 3. XÂY DỰNG HỆ THỐNG NHẬN DIỆN KHUÔN MẶT 3.1. Giới thiệu bài toán Hình 3.1 Sơ đồ ngữ cảnh hệ thống Để giải quyết bài toán nhận diện điểm khuôn mặt, hệ thống nhận dạng khuôn mặt được phát triển áp dụng phương pháp mạng nơ-ron. Hệ thống theo phương pháp tiếp cận dựa trên khuôn mặt và bao gồm hai giai đoạn, cụ thể là giai đoạn huấn luyện và nhận diện. Giai đoạn huấn luyện cơ sở biểu diễn cho các hình ảnh trong miền quan tâm (đó là hình ảnh tham
  • 46. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 khảo) và chuyển chúng thành hình ảnh biểu diễn huấn luyện. Các hình ảnh huấn luyện đại diện của mỗi hình ảnh được lưu trữ trong thư viện. Giai đoạn nhận dạng sẽ chuyển hình ảnh đầu dò sang mô hình hình ảnh thăm dò bằng cách sử dụng các cơ sở biểu diễn và sau đó khớp các hình ảnh tham chiếu được lưu trữ trong thư viện để xác định hình mặt. Để giải quyết bài toán khâu chuẩn bị dữ liệu huấn luyện là hết sức quan trọng. Quá trình huấn luyện được tóm tắt ngắn gọn như dướiđây: Hình 3.2 Lưu đồ quá trình nhận diện khuôn mặt Chi tiết về quá trình nhận diện được một khuôn mặt từ ảnh đầu vào dựa vào những tấm ảnh đã huấn luyện trước đó.
  • 47. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Quá trình thực hiện gồm các bước nhỏ sau: Bước 1: Tiếp nhận ảnh mẫu cần nhận dạng (Lớp 1) Bước 2: Bắt đầu phân lớp Triple Loss: Lớp 1 và lớp 29 Bước 3: Tiếp tục phân lớp và hiệu chỉnh thông số của network sao cho khoảng cách giữa lớp 1 với nhau là gần nhất, lớp 1 với các lớp khác là xa nhất. Bước 4: Xác định danh tính. Sau khi phân lớp, ta đã có thông số khoảng cách của ảnh mẫu so với các lớp đã training, danh tính chính là ảnh có hệ số khoảng cách nhỏ nhất ( Lớp 1). Hình 3.3 Quá trình nhận dạng khuôn mặt
  • 48. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 3.2. Xử lý dữ liệu training 3.2.1. Gán nhãn, phát hiện biên và đặc trưng khuôn mặt Bước 1: Tách biên vùng chứa khuôn mặt Bước đầu tiên trong việc giảm số các biến đổi trong ảnh khuôn mặt là tách biên các khuôn mặt này với khuôn mặt khác. Việc tách biên này sẽ làm giảm các biến đổi về vị trí, hướng, và tỷ lệ các khuôn mặt. Việc tách biên được tính trực tiếp từ các ảnh. Và nó tạo ra không gian ảnh khuôn mặt tối thiểu. Cường độ ảnh khuôn mặt có thể biến đổi nhiều, làm cho một số khuôn mặt khó tách biên với nhau. Ta dùng giải pháp gán nhãn thủ công các mẫu khuôn mặt. Cụ thể là vị trí hai mắt, đỉnh mũi, hai góc và trung tâm miệng của mỗi khuôn mặt. Bước 2: Tách biên giữa các khuôn mặt. Sau bước 1, dữ liệu sẽ được dùng để tách biên các khuôn mặt với khuôn mặt khác. Trước hết định nghĩa tách biên giữa hai tập điểm đặc trưng. Đó là phép quay, biến đổi tỷ lệ, và dịch chuyển để làm cực tiểu hoá tổng bình phương khoảng cách giữa từng cặp đặc trưng tương ứng. Trong không gian hai chiều, một phép biến đổi toạ độ như vậy có thể được viết dưới dạng sau: ( 𝑥′ 𝑦′) = ( 𝑠 ⋅ 𝑐𝑜𝑠 𝜃 −𝑠 ⋅ 𝑐𝑜𝑠 𝜃 𝑠 ⋅ 𝑠𝑖𝑛 𝜃 𝑠 ⋅ 𝑐𝑜𝑠 𝜃 )⋅ ( 𝑥 𝑦) + ( 𝑡𝑥 𝑡𝑦 ) = ( 𝑎 −𝑏 𝑡𝑥 𝑏 𝑎 𝑡𝑦 ) ⋅ ( 𝑥 𝑦 1 ) (2.1) Khi có hai hay nhiều hơn cặp điểm đặc trưng phân biệt, hệ các phương trình tuyến tính có thể được giải bằng phương pháp đảo ngược giả. Gọi ma trận bên trái là A , vector là T, và bên phải là B, khi đó lời giải: T = (AT A)-1(AT B) (2.2) Lời giải đảo ngược giả đưa ra phép biến đổi T làm cực tiểu tổng bình phương khác biệt giữa tập toạ độ x’i, y’i và phiên bản đã biến đổi của xi, yi.
  • 49. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Bước 3: Tách biên tập các điểm đặc trưng - Khởi tạo F , vector sẽ là vị trí trung bình của mỗi đặc trưng gán nhãn trên mọi khuôn mặt, với một số vị trí đặc trưng ban đầu. Trong trường hợp tách biên các khuôn mặt thẳng, các đặc trưng này là vị trí mong muốn của hai mắt, đỉnh mũi, hai góc và trung tâm miệng của mỗi khuôn mặt trong cửa sổ đầu vào. - Cập nhật F bằng việc lấy trung bình các vị trí đặc trưng đã tách biên F’i cho mỗi khuôn mặti. - Toạđộ đặc trưng trong F được quay, dịch chuyển và biến đổi để phù hợp với một số toạ độ chuẩn. Toạ độ chuẩn là toạ độ được dùng làm giá trị khởi tạo cho F . Bước 4: Quay về Bước 2. Thuật toán hội tụ trong vòng năm lần lặp, tạo cho mỗi khuôn mặt phép biến đổi để ánh xạ nó gần về vị trí chuẩn, và tách biên với mọi khuôn mặt khác. Khi đã biết các tham số để tách biên khuôn mặt, ảnh có thể được lấy mẫu lại dùng nội suy song tuyến tính. Khuôn mặt chuẩn và phân phối của các vị trí đặc trưng được trả về.
  • 50. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Hình 3.4 Mẫu chuẩn và tách đặc trưng 3.2.2. Tiền xử lý ảnh Training Sau khi tách biên các khuôn mặt, vẫn còn một nguồn biến đổi chính (không kể biến đổi về bản chất giữa các khuôn mặt). Biến đổi này gây ra do độ sáng và các đặc tính máy ảnh, dẫn đến các ảnh có độ sáng tươi hay kém, hoặc ảnh có độ tương phản kém. Ta xử lý vấn đề này bằng tiếp cận xử lý ảnh đơn giản. Kỹ thuật tiền xử lý trước hết cân bằng các giá trị mật độ trên toàn cửa sổ. Lập hàm hàm biến đổi tuyến tính giá trị mật độ trong vùng tròn trong cửa sổ. Các điểm ảnh bên ngoài hình tròn có thể là nền. Nếu mật độ của pixel (x,y) là I(x,y), khi đó cách biến đổi tuyến tính này được tham số hoá bởi a, b, c với: (𝑥 𝑦 1) ⋅ ( 𝑎 𝑏 𝑐 ) = 𝐼(𝑥, 𝑦) (2.3) Việc chọn cách biến đổi này là tuỳ ý. Nó có thể biểu diễn các khác biệt về độ sáng trên toàn ảnh. Các biến đổi được giới hạn là tuyến tính để số tham số ít và việc tạo lập hàm nhanh chóng. Tập hợp với mọi pixel trên toàn cửa sổ hình tròn ta được phương trình ma trận ràng buộc, và được giải bằng phương pháp đảo ngược giả. Phương trình tuyến tính này sẽ xấp xỉ toàn bộ độ sáng của mỗi phần của cửa sổ, và bị trừ đi với cửa sổ để cân bằng biến đổi về độ sáng. Tiếp theo, cân bằng lược đồ, ánh xạ không tuyến tính các giá trị mật độ để mở rộng miền cường độ trong cửa sổ. Lược đồ được tính với các pixel trong vùng tròn trong cửa sổ. Việc này bù cho các
  • 51. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 khác biệt trong việc thu nhận đầu vào camera, và cũng cải thiện độ tương phản trong một số trường hợp. Hình 3.5 Tiền xử lý ảnh
  • 52. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 3.2.3. Ảnh huấn luyện nhận dạng - Ảnh chứa khuôn mặt( Positive Image) Để dùng mạng Neural phân loại cửa sổ là khuôn mặt hay không, ta cần các mẫu huấn luyện cho mỗi tập. Với các mẫu chứa khuôn mặt , ta dùng kỹ thuật đã trình bày trong phần trên để tách biên các ảnh khuôn mặt trong đó một số đặc điểm đặc trưng đã gán nhãn bằng tay. Sau khi tách biên, các khuôn mặt được co về một kích thước, vị trí và hướng đồng nhất trong cửa sổ 20x20 pixel. Áp dụng ở mỗi vị trí pixel và ở mỗi tỉ lệ trong chóp ảnh, tiếp tục dò tìm khuôn mặt ở vị trí và tỉ lệ trung bình. Ngoài ra để cho bộ dò tìm mạnh hơn với các biến đổi không đáng kể trong khuôn mặt, chúng được quay với một lượng ngẫu nhiên ( tối đa 10º). - Ảnh huấn luyện không chứa khuôn mặt Cần nhiều ảnh không chứa khuôn mặt để huấn luyện bộ dò tìm khuôn mặt, vì sự đa dạng của ảnh không chứa khuôn mặt lớn hơn nhiều so với ảnh chứa khuôn mặt. Một lớp ảnh không chứa khuôn mặt là các ảnh phong cảnh chẳng hạn cây, núi, và toà nhà. Thu thập tập không khuôn mặt đặc trưng là việc khó. Hầu như bất kỳ ảnh nào cũng có thể được xem như là mẫu không khuôn mặt; không gian ảnh không khuôn mặt lớn hơn không gian ảnh khuôn mặt. Tiếp cận thống kê máy học cho rằng nên huấn luyện mạng neural trên cùng phân bố ảnh mà mạng thấy khi chạy. Với bộ dò tìm khuôn mặt, số mẫu khuôn mặt là 15,000 là một số thích hợp. Tuy nhiên, tập đại diện ảnh phong cảnh chứa gần 150,000,000 cửa sổ, và việc huấn luyện trên một cơ sở dữ liệu khuôn mặt có kích thước lớn như vậy là rất khó. Phần tiếp theo mô tả việc huấn luyện trên một cơ sở dữ
  • 53. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 liệu khuôn mặt này.
  • 54. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 3.2.4. Huấn luyện phát hiện khuôn mặt Hệ thống hoạt động theo hai giai đoạn: trước hết áp dụng tập bộ dò tìm dựa trên mạng neural vào ảnh, và sau đó dùng bộ phân xử để kết hợp các đầu ra. Các bộ dò tìm riêng lẻ khảo sát mỗi vị trí trong ảnh ở một vài tỷ lệ, tìm vị trí có thể chứa khuôn mặt. Sau đó bộ phân tích sẽ hợp các dò tìm từ các mạng riêng lẻ và loại trừ các dò tìm chồng lấp. Thành phần đầu tiên của hệ thống là mạng neural nhận đầu vào là vùng 20x20 (pixels) của ảnh và tạo đầu ra trong khoảng 1 đến -1, biểu thị có hay không có khuôn mặt. Để dò tìm mọi khuôn mặt trong ảnh, mạng được áp dụng ở mọi vị trí trong ảnh. Để dò tìm các khuôn mặt lớn hơn kích thước cửa sổ, ảnh đầu vào được giảm kích thước nhiều lần, và áp dụng bộ dò tìm ở mỗi kích thước. Mạng có một số bất biến với vị trí và kích thước. Số bất biến xác định số tỷ lệ và vị trí nó được dùng. Với bài này, ta áp dụng bộ lọc ở mọi vị trí điểm ảnh, và giảm tỷ lệ xuống ở mỗi bước phân tích ảnh tứ phân. Sau khi cửa sổ 20x20 pixel được trích ra từ một vị trí và tỷ lệ nào đó trong ảnh nhập, nó được tiền xử lý. Window sau khi tiền xử lý được truyền qua mạng neural. Mạng có các liên kết chặt chẽ đến các tầng nhập. Vùng thu nhận của các đơn vị ẩn được cho trong Hình 3.5. Window đầu vào được Hình 3.6 Thuật toán dò tìm khuôn mặt
  • 55. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 chia thành các mảnh nhỏ, 4 vùng 10x10 (pixels), 16 vùng 5x5 (pixels), và 6 vùng chồng lấp 20x5 (pixels). Mỗi vùng có liên kết đầy đủ với một đơn vị ẩn. Dù hình vẽ cho thấy một đơn vị ẩn cho mỗi vùng con đầu vào, nhưng các đơn vị này có thể được tái tạo.
  • 56. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Với thử nghiệm sau, ta dùng mạng với hai và ba tập các đơn vị ẩn này. Hình dáng của các vùng connày được chọn để cho phép các đơn vị ẩn dò tìm các đặc trưng cho việc dò tìm khuôn mặt. Cụ thể, các sọc ngang cho phép các đơn vị ẩn dò tìm các đặc trưng như miệng, cặp mắt, trong khi các đơn vị ẩn với vùng tiếp thu hình vuông có thể dò tìm các đặc trưng như từng mắt, mũi, hai góc của miệng. Các thử nghiệm cho thấy rằng hình dạng chính xác của các vùng này không quan trọng, quan trọng là đầu vào được chia thành các vùng nhỏ thay vì dùng các kết nối hoàn toàn với toàn bộ đầu vào. Mạng có một đầu ra giá trị thực, chỉ định window có chứa khuôn mặt hay không. 3.3. Kết quả thực nghiệm Trong đồ án này, sử dụng bộ dữ liệu huấn luyện gồm hình ảnh của 9 sinh viên với số lượng ảnh của mỗi sinh viên là khác nhau, dao động từ 10 đến 50 ảnh cho mỗi sinh viên. Máy tính với bộ xử lý Intel ® core ™ i7-7500U. Thời gian xử lý được ghi nhận như sau: - Thời gian huấn luyện: thời gian cho cả quá trình phát hiện khuôn mặt, trích xuất đặc trưng và huấn luyện bộ dữ liệu là 2231,3 giây (» 37,2 phút). - Thời gian nhận diện: thời gian trung bình cho một bức ảnh bao gồm phát hiện khuôn mặt, căn chỉnh và nhận diện phụ thuộc vào số lượng khuôn mặt xuất hiện trong hình. Với ảnh có chứa duy nhất một khuôn mặt, thời gian mất khoảng 5 giây. Với ảnh chứa 10 khuôn mặt, mất khoảng 8 giây. Sau đây là một số kết quả thu được từ hệ thống nhận diện khuôn mặt dựa trên mô hình MTCNN và kỹ thuật Triplet Loss của thuật toán FaceNet.
  • 57. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 3.3.1. Trường hợp nhận diện duy nhất một người Hình 3.7 Ảnh một người dùng trong khung nhận diện Với trường hợp chỉ nhận diện một người thông qua ảnh 2d, thời gian real-time thực cho phát hiện và hiển thị thông tin chưa đến 5s. Đạt hiệu suất nhận diện ở mức cao khoảng trên 90%. Độ chính xác là do khi nhận diện qua ảnh 2D thường là ảnh tĩnh không bị ảnh hưởng bởi độ sáng, góc nghiêng, biểu cảm khuôn mặt. Khoảng cách của các điểm mốc không bị không bị thay đổi. Ở bước training dữ liệu cũng là bộ hình ảnh 2D nên phần nhận dạng này đạt hiệu quả chính xác cao. Thử nghiệm thêm một số trường hợp khác ta thu được bảng với kết quả như sau: Tên đối tượng Số ảnh huấn luyện của 1 đối tượng Tỷ lệ Nhận dạng đúng. Subject 01 1 96.08%
  • 58. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Subject 02 2 75.50% Subject 03 3 60.43% Subject 04 4 70.33% Subject 05 5 80% Subject 06 6 86% Subject 07 7 90.33% Subject 08 8 93% Subject 09 9 98.03%
  • 59. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 3.3.2. Nhận diện ảnh nhiều người Hình 3.8 Từ 2 người trong ảnh nhận diện Hình 3.9 Nhiều người cùng một khung ảnh Ở trường hợp này độ khó tăng lên, vì các khuôn mặt người có thể có vài điểm tương đồng, nhầm lẫn. Với hình ảnh này có nhiều người dùng trong khung nhận diện thì tốc độ phát hiện và nhận diện là 5s. Nhưng hiệu suất đạt trên 60% . 3.3.3. Nhận diện thông qua video Hình ảnh không thể nhận diện được ngay, cần thời gian phân tích do có sự chuyển động và biểu cảm thay đổi góc mặt, ảnh hưởng quá trình nhận
  • 60. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 diện, bởi khi dữ liệu được training ban đầu là ảnh tĩnh 2D. Tỉ lệ thấp dưới 60% nhưng vẫn có thể nhận dạng ra người dùng. 3.4. Đánh giá Mạng nơ-ron tích chập xếp tầng đa nhiệm MTCNN cho phép xác định khuôn mặt ở nhiều góc nghiêng khác nhau, ngay cả trong trong điều kiện thiếu sáng và một phần khuôn mặt bị che khuất. Trong bài báo này, chúng tôi đã đề xuất giải pháp điểm danh tự động dùng mô hình MTCNN nhằm phát hiện khuôn mặt, đồng thời kết hợp kỹ thuật Triplet Loss để nhận diện đối tượng. Kỹ thuật căn chỉnh khuôn mặt cũng được áp dụng nhằm gia tăng độ chính xác của nhận diện. Kết quả thực nghiệm trên hệ thống. Ưu điểm: - Về khả năng phát hiện khuôn mặt, hệ thống phát hiện khá tốt hầu hết các trường hợp, kể cả trong điều kiện thiếu sáng, góc nghiêng,… - Về khả năng nhận dạng, hệ thống đạt kết quả từ 80-95% đối với các khuôn mặt thẳng và điều kiện ánh sáng thích hợp, đạt 70-85% đối với các khuôn mặt nghiêng hoặc thiếu sáng. - Về khả năng loại trừ các khuôn mặt “unknown”, kết quả đạt khoảng 50-60% khuôn mặt lạ được phát hiện trong quá trình thử nghiệm. - Tuy chưa hoàn chỉnh trong video khả năng nhận diện thấp hơn so với ảnh 2D nhưng vẫn có thể nhận diện được người dùng ở một số góc chính diện. Nhược điểm: Chức năng nhận diện thông qua video chưa được hoàn chỉnh do tác động của cử chỉ, hành động,biểu cảm,góc nghiêng, độ sáng… độ chính xác bị giảm đi đáng kể và xảy ra tình trạng không thể nhận diện trong khoảng thời gian thay đổi. Giải pháp cải thiện:
  • 61. Viết thuê đề tài giá rẻ trọn gói - KB Zalo/Tele : 0973.287.149 Luanvanmaster.com – Cần Kham Thảo - Kết bạn Zalo/Tele : 0973.287.149 Tìm thuật toán giảm độ sai số khi training dữ liệu. Phương pháp nhận dạng mặt có thể chia tiếp cận theo tiêu chí sau: - Nhận dạng với dữ liệu đầu vào là ảnh tĩnh - Nhận dạng bằng phương pháp nhận dạng 3D (vì việc bố trí nhiều camera 2D sẽ cho dữ liệu 3D và đem lại kết quả tốt hơn, đáng tin cậy hơn). Giải pháp hữu hiệu ở đây chính là cần training bổ sung, kết hợp với dữ liệu sẵn có để tăng hiệu quả nhận dạng từ đó giúp hệ thống chạy ổn định và chính xác hơn. 3.5. Kết luận chương 3 Hệ thống: “Chống giả mạo bằng ảnh/video trong nhận diện khuôn mặt (face anti spoofing)” đã xây dựng tương đối thành công. Về mặt thực nghiệm, đã phân tích và mô phỏng được quy trình xác định và nhận diện khuôn mặt. Chương trình cho thấy được người thực hiện báo cáo đã xây dựng được mô hình nhận dạng, nắm được các thuật toán xử lý hình, bộ dữ liệu, các công nghệ máy học sâu. Ngoài ra, giúp mọi người hiểu thêm về một phương pháp trong bài toán nhận diện khuôn mặt, có thể ứng dụng về sau cho một số hệ thống khác.