Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 1
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
phát triển và được đánh giá cao. Đã có các hệ thống nhận dạng mặt người dựa trên
các phương pháp dò tìm với mạng nơron nhân tạo, SVM và nhận dạng mặt người
dựa trên phương pháp mạng nơron nhân tạo, ICA, SVM…Các ứng dụng vừa nêu
trên mặc dù được dựa trên các lý thuyết khá cổ điển như HMM, nơron nhưng ứng
dụng thực tế thì chưa được nhiều vì giới hạn về tốc độ.
Hệ thống nhận dạng khuôn mặt người vốn có phạm vi ứng dụng lớn nên việc
phát triển hệ thống nhận dạng khuôn mặt người theo các phương pháp mới có ý
nghĩa hết sức quan trọng, đó là lý do tôi chọn đề tài:
“NGHIÊN CỨU VÀ XÂY DỰNG HỆ THỐNG NHẬN DẠNG MẶT NGƯỜI
DỰA TRÊN ADABOOST”
Để có hệ thống nhận dạng khuôn mặt với chất lượng tốt trong thời gian khá
nhanh, tôi đã tiếp cận mô hình học AdaBoost làm công cụ xử lý chính cho việc dò
tìm mặt người dựa vào thông tin trên khuôn mặt và hai phương pháp PCA và LDA
để nhận dạng.
Đề tài được tổ chức thành 7 chương với nội dung:
Chương 1: Phát biểu bài toán
Chương 2: Dò tìm khuôn mặt theo phương pháp AdaBoost
Chương 3: Tổng quan về PCA và LDA
Chương 4: Ứng dụng phương pháp PCA và LDA nhận dạng mặt người.
Chương 5: Cài đặt chương trình
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 4
MỤC LỤC
Trang
Chương 1 6
TỔNG QUAN VỀ BÀI TOÁN 6
3.1.1.1. Vector riêng và trị riêng 22
3.2.1.2. Ma trận chéo hóa 23
3.2.2. Kỳ vọng và phương sai trong thống kê đa chiều 23
3.1.2.1. Kỳ vọng 23
3.2.2.2. Phương sai trong thống kê đa chiều 23
3.3. Sơ lược về PCA và LDA 25
3.4. Trích rút đặc trưng từ không gian khuôn mặt theo PCA, LDA 27
Chương 4 30
ỨNG DỤNG PHƯƠNG PHÁP PCA VÀ LDA TRONG NHẬN DẠNG KHUÔN MẶT NGƯỜI .30
4.1. Eigenface là gì? 30
4.2. Rút trích đặc trưng chính thông qua các eigenfaces 30
4.3. Thuật toán PCA 36
4.4. Thuật toán LDA 37
4.5. PCA và LDA phân lớp một ảnh khuôn mặt 38
Chương 5 43
CÀI ĐẶT CHƯƠNG TRÌNH 43
5.1. Giới thiệu 43
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 5
5.2. Các module của chương trình 43
5.3. Giao diện màn hình và hướng dẫn sử dụng 55
5.4. Nhận xét 55
TÀI LIỆU THAM KHẢO 56
nhận dạng này kiểm tra sự phù hợp dựa trên phép so sánh một nhiều như hệ thống
nhận dạng nói chung ở trên, song ảnh cần kiểm tra là các khung ảnh động trong các
đoạn phim từ các máy camera. Kĩ thuật này dĩ nhiên không thể chính xác vì chuyển
động của mặt người trong phim khá phức tạp song thể hiện trong ảnh tĩnh để huấn
luyện lại ít. Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 7
Hệ thống nhận dạng động – động
Hệ thống nhận dạng động – động là hệ thống được thiết kế bằng cách sử dụng
các ảnh động làm mẫu để nhận dạng khuôn mặt người trong ảnh động. Kĩ thuật
nhận dạng này kiểm tra sự phù hợp dựa trên phép so sánh một nhiều như hệ thống
nhận dạng chung nói trên. Tuy nhiên, kĩ thuật này chính xác hơn kĩ thuật sử dụng
trong hệ thống nhận dạng tĩnh – động do sự chuyển động phức tạp của khuôn mặt
người cũng được huấn luyện bằng các khung ảnh động.
1.2. Những khó khăn trong bài toán nhận dạng khuôn mặt
Những biến đổi quá lớn giữa các ảnh khuôn mặt khác nhau từ một người cần
nhận dạng gồm trạng thái cảm xúc trên khuôn mặt, ánh sáng và các thay đổi vị trí
của khuôn mặt
Giới hạn về số ảnh cần thiết cho việc nhận dạng, tập học không thể bao quát
được tất cả các biến đổi có thể có trên khuôn mặt của một người cần nhận dạng
trong thế giới thực.
1.3. Các hướng tiếp cận chính trong lĩnh vực nhận dạng khuôn mặt
1.3.1. Các công trình nghiên cứu về phương pháp dò tìm và nhận dạng khuôn
mặt
Bài toán nhận dạng khuôn mặt cần xác định hai vấn đề chính: dùng thông tin
nào để nhận dạng (chân mày, cặp mắt, mũi, môi, tai, hay kết hợp các thông tin trên).
Và dùng phương pháp nào để huấn luyện cho máy nhận dạng dùng nguồn thông tin
khuôn mặt, áp dụng các chiến lược đa cấp để tối ưu hóa tốc độ.
ZhenQui Zhang, Long Zhu, Stan Z.Li và HongJiang Zhang (2001) sử
dụng phương pháp AdaBoost để dò tìm khuôn mặt trong thời gian thực với nhiều
góc nhìn khác nhau.
1.3.2. Hướng tiếp cận trong luận văn
Trong bài luận văn tốt nghiệp này đã sử dụng hai phương pháp đó là: phương
pháp PCA (phân tích thành phần chính) và phương pháp LDA (Phân tích biệt số
tuyến tính) để nhận dạng khuôn mặt.
Việc cô lập khuôn mặt trong ảnh đầu vào (ảnh chứa khuôn mặt – cửa sổ chứa
khuôn mặt) được thực hiện với phương pháp dò tìm khuôn mặt trong ảnh dùng
AdaBoost. Hình dưới mô phỏng các thao tác trong hệ thống nhận dạng mặt người.
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 9 Hình 1: Sơ đồ hệ thống nhận dạng khuôn mặt
1.4 Thu thập dữ liệu
Cơ sở dữ liệu ảnh khuôn mặt gồm nhiều người được thu thập từ nhiều nguồn
khác nhau.
Tập huấn luyện bộ dò tìm (phát hiện) khuôn mặt được lấy từ trang web
http://www.ai.mit.edu/projects/cbcl của trung tâm CBCL thuộc trường đại học MIT.
Tập ảnh gồm hai bộ ảnh như sau: ảnh huấn luyện (gồm khoảng trên 2000 mặt người
và trên 4000 không phải mặt người) và ảnh thử nghiệm.
Cơ sở dữ liệu ảnh để nhận dạng khuôn mặt:
- Cho PCA: gồm 30 người, được chụp từ webcam và lấy từ các ảnh của các
bạn sinh viên lớp 46TH.
- Cho LDA: gồm 20 người, mỗi người bao gồm khoảng 10-15 ảnh khác nhau.
Nhận xét về tập mẫu dữ liệu: Hầu hết các khuôn mặt xuất hiện trong ảnh là
tục nhau trên một mảng số thực nhiều chiều hay chính là vector có kích thước
250x250:
), ,,(
6250011
xxxx =
. Đây là cách bố trí cho phương pháp PCA và LDA.
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 11
Chương 2
DÒ TÌM KHUÔN MẶT NHANH THEO PHƯƠNG PHÁP ADABOOST
2.1. Giới thiệu
Dò tìm đối tượng là bài toán cơ bản và quan trọng trong lĩnh vực thị giác máy
tính. Việc cô lập khuôn mặt trong ảnh đầu vào (ảnh chứa khuôn mặt) được thực
hiện với phương pháp AdaBoost.
Dò tìm khuôn mặt nhanh theo phương pháp AdaBoost là một bài toán quan
trọng vì là quá trình nhận dạng đối tượng sẽ thiếu chính xác nếu như thiếu bước dò
tìm và định vị được đối tượng.
2.1.1. Các vấn đề trong việc dò tìm khuôn mặt nhanh
Bản thân việc dò tìm khuôn mặt trên ảnh đã có nhiều vấn đề như:
o Biến đổi mặt phẳng ảnh (quay, hướng vv… của khuôn mặt)
o Biến đổi độ sáng và ngữ cảnh
o Biến đổi nền
o Biến đổi hình dáng (các sắc thái khuôn mặt khác nhau)
2.1.2. Các hướng tiếp cận dò tìm khuôn mặt
o Hướng dò tìm khuôn mặt trên ảnh màu dựa trên sự phân tích màu sắc
của vùng da. Mặc dù việc xử lý khá nhanh nhưng hướng này có giới hạn chỉ
xử lý trên ảnh màu và thường nhạy cảm với ảnh, thường chỉ sử dụng làm
các bước tiền xử lý cho các hướng khác.
o Hướng dò tìm khuôn mặt dựa trên đặc trưng chủ yếu dựa vào các đặc
Hình 2- Các miền hình học đặc trưng Haar-like
Giả sử miền đen là dương và miền trắng là miền âm thì đặc trưng Haar-like
tính bằng tổng giá trị pixel của các ô đen trừ cho tổng giá trị pixel của các ô trắng.
1. Đặc trưng cạnh
(a)
(d)
(b)
(c)
2. Đặc trưng đường
(a) (b) (c) (d) (e) (f) (g) (h)
3. Đặc trưng tâm
(a) (b)
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 13
Hình 3- Haar Feature cơ bản
Trong hình 3.2a và 3.2b, giá trị của feature cho bởi 1 ảnh bằng hiệu số giữa
tổng các điểm ảnh thuộc 2 vùng hình chữ nhật sáng và tối. Trong hình 3.2c thì giá
trị feature bằng tổng các điểm ảnh trong hai vùng hình chữ nhật bên ngoài trừ cho
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 14
Hình 4- Haar Feature cho mặt người
Trong quá trình huấn luyện, số lượng xử lý trên các Haar Feature là rất lớn,
việc tính tổng các điểm ảnh cho bởi từng feature làm cho thời gian xử lý tăng đáng
kể. Để khắc phục điều này, Viola và Jones đã đưa ra khái niệm Integral Image để
tính toán nhanh cho các feature cơ bản.
Integral image
Cách tính nhanh phương pháp Haar-like dựa trên đạo hàm ảnh bậc nhất ii(x,y)
của ảnh i(x,y). Đạo hàm ii(x,y) của ảnh i(x,y) chính là tổng giá trị các pixel tính từ
góc trái trên đến (x,y):
(
)
(
)
∑
∑
≤ ≤
=
xx yy
yxiyxii
' '
',',Hình 5- Ý nghĩa hình học của đạo hàm ảnh
Việc tính toán đạo hàm ảnh được thực hiện rất nhanh bằng việc cộng tích lũy
như sau:
(
)
(
)
(
)
)(AvalABvalACvalABCDvalDVal +−−=
, do đó nếu tính theo tọa độ
(
)
yx,
ta
có phương trình sau:
(
)
(
)
(
)
(
)
(
)
(
)
LyxiiyWxiiLyWxiiyxiis
r
−+−−−−+= ,,,,
1
và nửa còn lại bị phân loại sai bởi C
1
. Bằng cách này,
D
2
chứa đựng những thông tin bổ sung cho C
1
. Bây giờ chúng ta sẽ xây dựng huấn
luyện C
2
từ D
2
.
Tiếp theo, chúng ta sẽ xây dựng tập D
3
từ những mẫu không được phân loại
tốt bởi sự kết hợp giữa C
1
và C
2
: những mẫu còn lại trong D mà C
1
và C
2
cho kết
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 16
quả khác nhau. Như vậy, D
ngược lại, nếu C
1
và C
2
phân X vào 2 lớp khác nhau, C
3
sẽ quyết định X thuộc về
lớp nào.
Hình 7- Boosting
2.3.2. AdaBoost (Adaptive Boost)
AdaBoost là một tiếp cận boosting được Freund và Schapire đưa ra vào năm
1995. AdaBoost cũng hoạt động trên nguyên tắc kết hợp tuyến tính các weak
classifiers để có một strong classifier.
Là một cải tiến của tiếp cận boosting, AdaBoost sử dụng thêm khái niệm trọng
số (weigth) để đánh dấu các mẫu khó nhận dạng. Trong quá trình huấn luyện, cứ
mỗi weak classifier được xây dựng, thuật toán sẽ tiến hành cập nhật lại trọng số để
chuNn bị cho việc xây dựng weak classifier kế tiếp: tăng trọng số của các mẫu bị
nhận dạng sai và giảm trọng số của các mẫu được nhận dạng đúng bởi weak
classifier vừa được xây dựng. Bằng cách này, các weak classifier sau có thể tập
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 17
trung vào các mẫu mà các weak classifiers trước đó chưa làm tốt. Sau cùng, các
weak classifiers sẽ được kết hợp tùy theo mức độ “tốt” của chúng để tạo dựng nên
strong classifier.
Có thể hình dung một cách trực quan như sau: để biết một ảnh có phải là mặt
người hay không, ta hỏi T người (tương đương với T weak classifiers xây dựng từ T
vòng lặp của boosting), đánh giá của mỗi người (tỉ lệ sai dưới 50%). Sau đó, ta sẽ
i trọng sốCập nhật lạ
i trọng số( )
=
∑
=
n
k
kk
xhsignxH
1
)(
αĐồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 18
Các weak classifiers h
: hàm lượng giá vector đặc trưng của mẫu
• p
k
: hệ số quyết định chiều của bất phương trình
Công thức trên có thể được diễn giải như sau: nếu giá trị vector đặc trưng của
mẫu cho bởi hàm lượng giá của bộ phân loại vượt qua một ngưỡng cho trước thì
mẫu object (đối tượng cần nhận dạng), ngược lại là background (không phải đối
tượng nhận dạng).
Thuật toán AdaBoost: 1. Cho một tập huấn luyện gồm n mẫu có đánh dấu
(
)
11
, yx
,
(
-
Với mỗi đặc trưng trong vector đặc trưng, xây dựng một weak
classifier h
j
với ngưỡng và
j
θ
lỗi
j
ε
(
)
∑
−=
kkjktj
yxhW
,
ε
-
Chọn ra h
j
với
j
ε
nhỏ nhất, được h
t
.
{
,1
(,
)(,
α
α
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 19
Quá trình huấn luyện bộ phân loại được thực hiện bằng một vòng lặp mà ở mỗi
bước lặp, thuật toán sẽ chọn ra một weak classifier h
t
thực hiện việc phân loại với
lỗi
t
ε
nhỏ nhất (do đó sẽ là bộ phân loại tốt nhất) để bổ sung vào strong classifier.
Mỗi khi chọn được 1 bộ phân loại h
t
, AdaBoost sẽ tính giá trị
t
α
theo công thức ở
trên,
t
α
cũng được chọn trên nguyên tắc làm giảm thiểu giá trị lỗi
H(x), và mức độ đóng góp càng lớn thì nó càng có vai trò quan trọng trong H(x).
- Trong công thức tính
t
α
:
−
=
j
j
t
ε
ε
α
1
ln
2
1
Dễ thấy giá trị
t
α
tỉ lệ nghịch với
−
=
j
j
t
ε
ε
α
1
ln
2
1
o Z
t
: hệ số dùng để đưa W
t+1, k
về đoạn [0,1] ( normalization factor)
4. Strong classifier xây dựng được
( )
=
∑
yxH ≠
hay
(
)
0<xyH
. Lề của mẫu
(
)
yx,
qua hàm
(
)
Rxh ∈
trên tập các mẫu huấn luyện được định nghĩa là
(
)
xyh
. Lề có thể được xem là các số
đo độ tin cậy của giá trị đoán trước của h. Lỗi phân lớp của H
M
có biên trên là:
(
)
(
)
∑
−
=
i
(
)
xhxHxH
mMM
+=
−
1
là hàm dẫn tới giá trị nhỏ nhất:
(
)
(
)
)(minarg
1
xhxHJh
M
h
M
τ
τ
+=
−
và hàm có giá trị nhỏ nhất được chứng minh là:
(
)
(
)
( )
( )
1
và cho
),1(
),1(
log
2
1
)(
ω
ω
−=
+=
=
yxP
yxP
xL
M
−=
+=
=
)1(
)1(
log
2
classifiers có thể là MxN, tức là với 1100 mẫu và 53130 features thì hệ thống sẽ
phải chọn được 1 weak classifier trong số 1100 x 53130 = 58443000 weak
classifiers trong mỗi vòng boosting.
AdaBoost được thiết kế để có thể chọn nhanh các features, cũng là chọn nhanh
các weak classifiers.
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 22
Chương 3
TỔNG QUAN VỀ PCA VÀ LDA
3.1. Giới thiệu về việc nhận dạng khuôn mặt người
Mặc dù việc nhận dạng mặt người là một vấn đề thuộc về mặt thị giác, có một
số phương pháp lạm dụng chức năng này. Chúng ta khai thác một số mô hình trên
và đưa ra mô hình nhận dạng dựa vào cách tiếp cận lý thuyết thông tin, tìm kiếm
những thông tin quan trọng nhất trong nhóm mặt người; nó sẽ phân biệt rất tốt giữa
các khuôn mặt với nhau. Phương pháp này chuyển đổi những ảnh mặt người thành
các chuỗi ảnh mang nét đặc trưng, chúng là các thành phần chính của dãy huấn
luyện ban đầu của những ảnh mặt người. Việc nhận dạng được thực hiện bằng cách
chiếu bức ảnh mới vào không gian con được trải rộng bởi không gian mặt và sau đó
phân loại mặt người bằng cách so sánh vị trí của nó trong không gian mặt người với
vị trí các cá thể đã biết trước. Việc học và nhận dạng ảnh mặt người mới chính là
phần kiểm chứng quan trọng của phương pháp này. Việc nhận dạng mặt người dưới
những điều kiện thay đổi là nhờ huấn luyện hướng nhìn đặc trưng (góc nhìn thẳng,
góc nhìn 45
0
) lợi điểm của phương pháp hơn các phương pháp nhận dạng mặt
người khác là tốc độ, sự đơn giản, khả năng học , sự thay đổi từ từ của mặt người.
3.2. Sơ lược về toán đại số tuyến tính trong thống kê
3.2.1. Vector riêng, trị riêng và sự chéo hóa của ma trận
3.1.1.1. Vector riêng và trị riêng
*
(3)
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 23
Khi đó
λ
được gọi là trị riêng của f, và vector f được gọi là vector riêng của f,
hay của T, ứng với giá trị riêng
λ
. Ma trận T với kích thước
n
n
×
sẽ có tối đa n trị
riêng và n vector riêng tương ứng. Một ma trận T khả nghịch đảo sẽ có đủ n trị
riêng (kể cả trị riêng bội) và n vector riêng tương ứng.
3.2.1.2. Ma trận chéo hóa
Ma trận vuông T gọi là có dạng chéo nếu tất cả các phần tử không nằm trên
đường chéo chính của nó đều bằng không, nghĩa là
njijiT
ij
,1:,,,0 ≠∀=
.
Ma trận vuông T gọi là chéo hóa được nếu tồn tại một ma trận vuông không
suy biến C sao cho C
-1
TC là ma trận chéo hóa.
Nếu ta có C là một ma trận có các cột là các vector cơ sở đã được chuNn hoá
của không gian R
Khi đó kỳ vọng của biến ngẫu nhiên X cũng là một vector n chiều, trong thống
kê, kỳ vọng E[X] của một biến ngẫu nhiên X có thể được ước lượng bằng trung
bình mẫu
X
, và được tính bằng công thức:
∑
=
=
M
i
i
X
M
X
1
1
(7)
trong đó M là tổng số mẫu có trong thống kê.
3.2.2.2. Phương sai trong thống kê đa chiều
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 24
Hiệp phương sai là độ đo sự biến thiên cùng nhau của hai biến ngẫu nhiên
(phân biệt với phương sai là độ đo mức độ phân tán của một biến ngẫu nhiên xung
quanh giá trị kỳ vọng).
Hai biến có xu hướng thay đổi cùng nhau (nghĩa là, khi một biến có giá trị cao
hơn giá trị kỳ vòng thì biến kia có xu hướng cũng cao hơn giá trị kỳ vọng), thì hiệp
phương sai giữa hai biến này có giá trị dương. Mặt khác, nếu một biến nằm trên giá
trị kì vọng còn biến kia có xu hướng nằm dưới giá trị kì vọng, thì hiệp phương sai
p ph
ươ
ng sai c
ủ
a chúng b
ằ
ng 0.
Đ
ó là do khi có s
ự
độ
c l
ậ
p
th
ố
ng kê,
(
)
(
)
µν
=⋅=⋅ YEXEYXE )(
(10)
Thay thế vào dạng thứ hai của công thức hiệp phương sai ở trên, ta có
0),(
=
C
Trong ví dụ trên ta thấy, các phần tử nằm trên đường chéo (từ trái sang phải, từ
trên xuống dưới) lần lượt là phương sai tương ứng của các biến này. Một điểm khác
là từ
(
)
(
)
abba ,cov,cov =
nên ma trận chéo hóa đối xứng qua đường chéo chính.
Đồ án tốt nghiệp: Xây dựng hệ thống nhận dạng mặt người
SVTH: Nguyễn Thị Hương Lý – 46TH1 –ĐH Nha Trang Trang 25
Định nghĩa: Ma trận hiệp phương sai của tập hợp m biến ngẫu nhiên là một ma
trận vuông hạng
(
)
mm×
mà mỗi phần tử c
ij
của ma trận là hiệp phương sai giữa hai
thành phần x
i
và x
j
là độc lập hay không phụ thuộc lẫn nhau. ( )( )
Tất cả 2 giải thuật đều được gọi là những phương pháp phân tích không gian
con. Một ảnh hai chiều
Γ
(m
×
n) có thể được xem như một vector (hay một điểm)
trong không gian N chiều (
nmN
×
=
). Và công việc của các giải thuật là tìm cách
để tối ưu các vector không gian mặt, làm giảm số chiều của vector để phục vụ cho
việc xử lý nhanh hơn. Dưới đây là mô hình nhận dạng.