Thiết kế SOPC cho ứng dụng nhận dạng mặt người dùng phân tích thành phần chính (PCA) và lượng tử hóa vector (VQ) - Pdf 25

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TRẦN THỊ ĐIỂM
THIẾT KẾ SOPC CHO ỨNG DỤNG NHẬN DẠNG
MẶT NGƯỜI DÙNG PHÂN TÍCH THÀNH PHẦN
CHÍNH (PCA) VÀ LƯỢNG TỬ HÓA VECTOR (VQ)

Chuyên ngành: Vật Lý Điện Tử-Hướng Kỹ Thuật
Mã số: 60 44 03
LUẬN VĂN THẠC SĨ VẬT LÝ VÔ TUYẾN VÀ ĐIỆN TỬ- KỸ THUẬT NGƯỜI HƯỚNG DẪN KHOA HỌC:
PGS.TS. NGUYỄN HỮU PHƯƠNG

THÀNH PHỐ HỒ CHÍ MINH-NĂM 2009

1
MỤC LỤC

MỤC LỤC 1
GIỚI THIỆU ĐỀ TÀI 4
CHƯƠNG 1: TỔNG QUAN BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI 7

CHƯƠNG 3: CÔNG CỤ SOPC BUILDER 16
3.1. KHÁI NIỆM SOPC 16
3.2. SOPC BUILDER 16
3.3. AVALON BUS 16
3.3.1. Avalon bus module 16
3.3.2. Các thiết bị ngoại vi Avalon 17
3.4 COMPONENT TRONG SOPC 17
CHƯƠNG 4: HỆ THỐNG SOPC CHO ỨNG DỤNG NHẬN DẠNG MẶT
NGƯỜI 18
4.1. THUẬT TOÁN PHẦN CỨNG CHO ỨNG DỤNG NHẬN DẠNG MẶT
NGƯỜI 18
4.1.1. Tập dữ liệu 18
4.1.2. Tìm mặt trung bình 19
4.1.3. Tính sự sai lệch giữa từng mặt người và mặt trung bình 19
4.1.4. Tìm trị riêng và vector riêng 19
4.1.5. Thực hiện phép quay PCA 20
4.1.6. Tính khoảng cách Euclide 21
4.2. HỆ THỐNG SOPC CHO ƯNG DỤNG NHẬN DẠNG MẶT NGƯỜI 22
Toàn bộ hoạt động của khối tính trung bình được mô tả cụ thể trong hình 4.4. 23
Hình 4.4: Sơ đồ khối tính trung bình 23
Hình 4.5: Sơ đồ khối tính độ dư thừa 23
Hình 4.6: Sơ đồ khối bộ nhân 24
4.2.2. Mạch tính khoảng cách Euclide và tìm vị trí trung khớp nhất 24
CHƯƠNG 5: KẾT QUẢ THỰC NGHIỆM 26
5.1. KẾT QUẢ THUẬT TOÁN PCA ĐƯỢC KIỂM NGHIỆM TRÊN PHẦN
MỀM 26
5.2. KẾT QUẢ THỰC NGHIỆM TRÊN PHẦN CỨNG 26
5.2.1. Kết quả tổng hợp và phân tích mạch 26
5.2.2. Một số kết quả kiểm nghiệm trên phần cứng 27


trước và sau khi thiết kế IC (Integrated Circuit).
Ngày nay với sự ra đời của công nghệ SoC (System On Chip) đã tăng cường
khả năng xử lý cũng như tích hợp hệ thống trên một chip cho các ứng dụng phức
tạp. SoC tích hợp các khối phần cứng riêng rẽ vào một Chip với kiến trúc hoạt động
song song và độc lập nhau [1][2]. Do đó, luồng dữ liệu sẽ được xử lý song song dẫn
đến tốc độ hệ thống được tăng lên. Bản chất của SoC là sử dụng CPU nhúng như
một trung tâm xử lý phát các tín hiệu để điều khiển các bộ gia tốc (hay các khối xử
lý riêng rẽ) hoạt động. Ở đây CPU chỉ đóng vai trò phát tín hiệu điều khiển mà
không xử lý dữ liệu nên tốc độ hệ thống được cải thiện rất đáng kể. Đặc điểm này
được xem là điểm khác biệt lớn giữa một SoC và một máy tính cá nhân (PC). Ngoài
ra, hệ thống SoC còn có giá thành thấp, tiết kiệm diện tích và mức tiêu thụ công
suất thấp. Một hệ thống SoC được nghiên cứu trong đề tài là hệ thống SoPC được
tích hợp trên FPGA. Một số ưu điểm của một hệ thống SoPC trên FPGA so với một
máy tính cá nhân:
9 Tiết kiệm điện năng
9 Tốc độ xử lý và cấu hình nhanh
9 Nhỏ, gọn, ít chiếm diện tích Trần Thị Điểm

5
9 Thời gian khởi động nhanh và có thể khởi động lại dễ dàng.
Nhận dạng nói chung và nhận dạng mặt người nói riêng là những ứng dụng
khá phổ biến đã và đang được nghiên cứu rất rộng rãi. Nhiều thuật toán khác nhau
đã ra đời để cải tiến chất lượng của kỹ thuật nhận dạng [16] như: Neural Network,
Hidden Markov Model, PCA (Principle Component Analysis), ICA (Independent
Component Analysis)…Tuy nhiên các thuật toán này hầu hết đều được mô phỏng
và chạy trên các phần mềm: Matlab, Visual C++. Ngoài ra để áp dụng thực tế hầu
hết các thuật toán này được lập trình và khởi động cùng với một hệ thống máy tính

Chương này trình bày các kết quả thực nghiệm cho cả phần cứng và phần
mềm.
Chương 6: Kết luận và hướng phát triển của đề tài. Trần Thị Điểm

7
CHƯƠNG 1: TỔNG QUAN BÀI TOÁN NHẬN
DẠNG MẶT NGƯỜI

1.1. TỔNG QUAN BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI
Nhận dạng nói chung, nhận dạng mặt người nói riêng là một bài toán đã và
đang được nghiên cứu rất rộng rãi. Các nghiên cứu đi từ bài toán đơn giản, mỗi ảnh
chỉ có một khuôn mặt người nhìn thẳng vào thiết bị thu hình và đầu ở tư thế thẳng
đứng trong ảnh trắng đen. Cho đến bài toán mở rộng với nhiều trường hợp phức tạp
hơn như ảnh màu, nhiều khuôn mặt trong cùng một ảnh, nhiều tư thế thay đổi trong
ảnh… Không những thế bài toán còn mở rộng cả phạm vi nghiên cứu: từ môi
trường xung quanh khá đơn giản (trong phòng thí nghiệm) cho đến môi trường xung
quanh rất phức tạp (như trong thực tế).
1.2. CÁC PHƯƠNG PHÁP NHẬN DẠNG MẶT NGƯỜI
1.2.1. Mô hình Markov ẩn (Hidden Markov Model)
Mô hình Markov ẩn phân loại đặc điểm mặt dựa vào các thuộc tính của chuỗi
Markov. Một chuỗi các biến ngẫu nhiên được lấy ra dựa vào các giá trị pixel tương
ứng tạo ra chuỗi Markov nếu xác suất hệ thống ở trong trạng thái X
n+1
ứng với thời
điểm n+1 phụ thuộc vào xác suất hệ thống ở trong trạng thái này ứng với thời điểm
n. Trong chuỗi Markov sự chuyển dời từ trạng thái này sang trạng thái khác có thể
xảy ra, nhưng kết quả của các kí tự ngõ ra mới là quyết định. Mặc khác, trong mô

giới hạn kích thước của tập dữ liệu bằng việc đưa vào các biệt số tiêu chuẩn [11].
LDA cực đại hoá tỷ số ph
ương sai giữa các lớp (between-class) và phương sai
trong một lớp (within-class) trong bất kỳ tập dữ liệu nào. Vì vậy phương pháp này
đảm bảo sự phân tách tối đa.
1.2.6. Independent Component Analysis (ICA)
Phân tích thành phần độc lập là trường hợp tổng quát của phân tích thành phần
chính [10]. Bài toán phân tích thành phần chính dựa vào mối quan hệ giữa những
pixel trong tập dữ liệu, những xác suất bậc cao xem như không chứa nhiều thông tin
và được bỏ qua. Tuy nhiên, trong bài toán nhận dạng những thông tin quan trọng có
thể chứa trong những mối quan hệ xác suất bậc cao của những pixels trong ảnh. Để
tìm ra không gian nhạy với những xác suất bậc cao, phương pháp ICA đã ra đời.
ICA trích những thành phần chính của thông tin tối ưu bằng phép biến đổi qua Trần Thị Điểm

9
những neural từ hàm sigmoidal.
1.3. CÁC BƯỚC THỰC HIỆN BÀI TOÁN NHẬN DẠNG MẶT NGƯỜI
Quá trình nhận dạng chia làm 2 phần [7] như hình 1.1 và hình 1.2. Trong đó:
X: tập dữ liệu gồm nhiều tấm ảnh khác nhau của nhiều đối tượng khác nhau. Tập
ảnh này được sắp xếp lại vào trong một ma trận X với mỗi ảnh tương ứng với một
vector cột.
X
mean
: ảnh trung bình của tập dữ liệu
X
%
: Ma trận chứa giá trị trừ giữa ảnh trung bình với từng ảnh trong tập dữ liệu X.

~
=
)(
)(
)(
0
20
10
G
PPd
PPd
PPd
M
X
~
X
p
1
p
2
p
g
p

Hình 1.2: Quá trình nhận dạng [7]
Trần Thị Điểm

Trần Thị Điểm

11
CHƯƠNG 2: PHÂN TÍCH THÀNH PHẦN CHÍNH

Phân tích thành phần chính là một kỹ thuật phân tích biến đổi được nghiên cứu
khá rộng rãi và biết đến nhiều. Thuật toán này lần đầu tiên được giới thiệu bởi
Pearson (1901), và được phát triển một cách độc lập bởi Hotelling (1933) [12].
Giống như những phương pháp phân tích biến đổi, thuật toán này không được sử
dụng rộng rãi cho tới khi kỹ thuật máy tính ra đời. Ý tưởng chính của thuật toán
phân tích thành phần chính là giảm số chiều của tập dữ liệu có sự tương quan lớn
giữa các biến. Mặc dù giảm số chiều của biến nhưng vẫn duy trùy sự biến đổi nhiều
nhất có thể của tập dữ liệu ban đầu. Đặc điểm của những biến mới này là không còn
đặc tính tương quan giữa chúng. Một đặc điểm khác của các biến là chúng được sắp
xếp để một vài biến đầu tiên nhất thể hiện hầu những đặc trưng của tất cả các biến
ban đầu. Trong PCA độ dư thừa có thể đo được bởi sự tương quan giữa các phần tử
dữ liệu. Mối tương quan thực hiện dựa trên cơ sở thống kê bậc 2. Thực chất của
PCA là giải quyết bài toán tìm trị riêng và vector riêng cho ma trận đối xứng.
2.1. THÀNH PHẦN CHÍNH
Trong phép biến đổi PCA, vector x được đưa về giá trị trung tâm bằng cách trừ
với giá trị trung bình của nó. Giá trị trung bình được ước lượng từ các mẫu
x(1),x(2),x(3),….x(T). Sau khi đã trung tâm hóa các mẫu, x sẽ được biến đổi tuyến
tính thành vector y với m hệ số (m<n), vì vậy độ dư thừa được quy vào mối tương
quan và sẽ bị loại bỏ. Tất cả quá trình trên được thực hiện bằng việc quay hệ thống
tọa độ trực giao làm cho các hệ số của x trong hệ tọa độ mới không còn trực giao.
Cùng lúc đó, sự biến đổi hình chiếu của x lên hệ trục tọa độ mới được cực đại hóa.
Trục tọa độ thứ nhất (thành phần chính thứ nhất) biểu diễn sự thay đổi lớn nhất, trục
thứ 2 (thành phần chính thứ hai) đáp ứng với sự sai khác lớn nhất theo hướng vuông

(2.1)
Rút giảm ta được:
(2.2)

=
=
m
k
km
lpt
1
/100
Trong đó l
k
: trị riêng thứ k
m: số m thành phần chính đầu tiên.
P: p biến trong tập dữ liệu cần trích đặc trưng
s
ij
: là biến của tập dữ liệu ban đầu.
Theo thực tế khảo sát phương pháp này chọn số thành phần chính cần loại bỏ là
khoảng 70% đến 90%.
2.2.2. Phương pháp dựa trên kích thước của những biến trong những thành
phần chính
Phương pháp trước được áp dụng cho trường hợp ma trận hiệp biến hoặc ma
trận tương quan. Phương pháp này đặt ra được áp dụng đặc biệt cho trường hợp ma
trận tương quan. Ý tưởng của quy luật là nếu tất cả các thành phần của tập dữ liệu
đầu là độc lập thì những thành phần chính của chúng có cùng một trục biến đổi và
có sự biến đổi là đơn vị. Vì vậy những thành phần chính khác có sự biến đổi nhỏ
hơn 1 sẽ chứa ít thông tin hơn những thành phần ở trục gốc, hay ta hoàn toàn có thể

, ta tính trung bình của tập hợp đó, ta có:

1
1
M
n
n
M
=
Ψ


(2.3)
Sự khác biệt giữa mỗi ảnh so với trị trung bình của nó:

ii
Φ
=Γ −Ψ (2.4)
2.3.3 Tạo ma trận hiệp phương sai
Khi dữ liệu đưa vào là hai chiều thì ma trận hiệp phương sai được tạo ra là ma
trận hai chiều. Nếu khi dữ liệu đưa vào là n chiều thì ma trận hiệp phương sai được
tạo ra sẽ là n chiều. Tất cả các phần tử không nằm trên đường chéo là các đại lương
dương, và với kì vọng là cả hai biến x và y cùng tăng lên. Tập hợp một số lượng lớn
các vector là đối tượng chính của PCA. Mục đích là tìm trong tập dữ liệu vector
trực giao mà nó diễn tả sự phân bố của dữ liệu. Vector riêng thứ k của ma trận
m
UTrần Thị Điểm

1
.
M
TT
nn
n
CA
M
=
=ΦΦ=

A
(2.6)
A=[
12
, , ,
M
ΦΦ Φ
].
V
ới ma trận
2.3.4. Tìm các trị riêng và vector riêng tương ứng
Ma trận hiệp phương sai là ma trận vuông, ta có thể tìm được các vector
riêng trương ứng với các trị riêng cho ma trận này dựa vào các bước đã được trình
bày ở phần trên. Không gian được tạo nên từ các vector riêng được gọi là không
gian con của tập ảnh huấn luyện
2.3.5. Xác định các thành phần và vector đặc trưng
Đây là giai đoạn nén dữ liệu và làm giảm số chiều của dữ liệu. Ta xác định các
vector riêng từ ma trận hiệp phương sai và bước tiếp theo là sắp xếp các trị riêng
theo thứ tự từ lớn đến nhỏ. Các vector riêng ứng với các trị riêng lớn nhất được

Trần Thị Điểm

16
CHƯƠNG 3: CÔNG CỤ SOPC BUILDER

3.1. KHÁI NIỆM SOPC
System on Programmable chip (SoC) là một ý tưởng về sự tích hợp tất cả
mọi thành phần của một hệ thống vào một mạch tích hợp (IC). Mạch này có thể bao
gồm cả các chức năng số, tương tự, hoặc cả hai. Ứng dụng điển hình cho ý tưởng
này là các hệ thống nhúng. Các SoC có ưu điểm là giá thành thấp và đơn giản. Thiết
bị logic khả trình (PLD: Programmable logic device) là một thiết bị được tạo ra từ
các cổng logic, có khả năng lập trình được để tạo các ứng dụng khác nhau. Từ ý
tưởng trên, thuật ngữ SoPC (system on programmable chip) ra đời. Toàn bộ thiết kế
hệ thống sẽ được tạo trên một thiết bị logic khả trình (PLD). Lĩnh vực này thường
ứng dụng để thử nghiệm các hệ thống trước khi chế tạo các IC.
3.2. SOPC BUILDER
SoPC Builder là một công cụ phần mềm để tạo các hệ thống SoPC của hãng
Altera [18]. SoPC Builder cung cấp một môi trường đồ họa và chuẩn hóa cho việc
tạo ra một thiết kế hệ thống trên chip bao gồm các thành phần như CPU, giao tiếp
bộ nhớ, các thiết bị ngoài chuẩn và cả các thiết bị ngoài do người dùng tự định
nghĩa. SoPC Builder còn cho phép người dùng tuỳ chọn giao tiếp với các thành
phần độc lập của module hệ thống. SoPC sẽ kết nối tất cả các thành phần này lại và
tạo ra một module hệ thống duy nhất, tự động tạo ra các kết nối cần thiết để nối các
thiết bị lại với nhau
3.3. AVALON BUS
Avalon bus là một kiến trúc bus giản đơn, được thiết kế để kết nối các vi xử lý
nhúng và các thiết bị ngoại vi trong một hệ thống trên chip khả trình (SoPC).

ra giao diện liên kết giữa component và Avalon bus. Tùy vào chức năng, thiết kế
của ta có thể là một thiết bị ngoại vi chủ hoặc là một thiết bị ngoại vi slave. Do đó,
nó cần ít nhất một cổng slave hoặc một cổng master.
Trần Thị Điểm

18
CHƯƠNG 4: HỆ THỐNG SOPC CHO ỨNG DỤNG
NHẬN DẠNG MẶT NGƯỜI

4.1. THUẬT TOÁN PHẦN CỨNG CHO ỨNG DỤNG NHẬN DẠNG MẶT
NGƯỜI
Toàn bộ thuật toán cho hệ thống nhận dạng mặt người được mô tả theo hình
4.1.

Hình 4.1: Thuật toán phần cứng cho hệ thống nhận dạng mặt người
Nguyên tắc hoạt động
Bước 1: Từ tập ảnh đầu vào (lấy từ camera hoặc tập dữ liệu có sẵn) ta tìm ảnh
trung bình cho toàn bộ tập dữ liệu.
Bước 2: Thực hiện việc chuẩn hóa tập ảnh đầu vào và ảnh cần nhận dạng bằng cách
trừ với ảnh trung bình để tìm ra sự sai lệch.
Bước 3: Thực hiện phép chiếu để tìm ra các giá trị tương ứng của từng mặt người.
Bước này được thực hiện bằng cách nhân sự sai lệch với những hệ số eigenfaces
tương ứng.
Bước 4: Để tìm ra đối tượng cần nhận dạng ta sử dụng khoảng cách Euclide kết hợp
với thuật toán Winner Take All thông qua lưu đồ thuật giải Vector Quantization.
4.1.1. Tập dữ liệu
Tập dữ liệu được xây dựng trên cơ sở tham khảo các tập dữ liệu chuẩn như:

+++
=
NNN
hba
hba
hba
M
m
1
222
111
MMMM
r
(4.1)
Với : M là số ảnh của tập dữ liệu
N
aaa ,,
2
,
1
L là giá trị pixel của từng điểm ảnh trong một mặt người có N
pixel.
4.1.3. Tính sự sai lệch giữa từng mặt người và mặt trung bình
Sau khi tìm được mặt trung bình đại diện cho toàn bộ tập dữ liệu ta tiến hành
bước trừ giá trị từng mặt người cho giá trị trung bình tương ứng theo công thức
(4.2):


Sau khi trừ giá trị của từng mặt người với giá trị mặt trung bình ta được một
tập dữ liệu mới gồm những giá trị sai lệnh của mặt người với giá trị mặt trung bình.
Ta gọi tập dữ liệu mới này là A.
4.1.4. Tìm trị riêng và vector riêng
Phần trọng tâm của thuật toán PCA là tìm những vector riêng ứng với những trị Trần Thị Điểm

20
riêng được tính từ ma trận L=A
T
A. Có rất nhiều thuật toán để tìm trị riêng vector
riêng [14]. Nhưng do tính chất của ma trận L là một ma trận đối xứng nên ở đây tác
giả dùng thuật toán Jacobi [14] để tìm trị riêng, vector riêng. Sơ đồ thuật toán
Jacobi được cho như sau:

Hình 4.2: Sơ đồ tổng quát cho thuật toán Jacobi

4.1.5. Thực hiện phép quay PCA Trần Thị Điểm

21
Ứng với những vector riêng có trị riêng lớn nhất ta dữ lại những vector này.
Những vector này sẽ xây dựng nên một không gian đặc trưng mới hay còn gọi là
không gian mặt. Công thức (4.3) thực hiện phép biến đổi này như sau:
U=A.V (4.3)
Với: U là không gian mặt

Khoảng cách Euclide bình phương giữa hai Vector được tính theo công thức
(4.6). Trong đó, X
i
và T
i,j
là thành phần thứ i tương ứng của X và T
j
, k là số chiều
của X và T
j
, codeword có d
j
nhỏ nhất được xem là trùng khớp nhất.
(4.6)
2
1
,
)(

=
−=
k
i
ijij
XTd
Từ công thức (4.5) chúng ta thấy, mạch tính khoảng cách Manhattan đơn giản
nhưng làm giảm chất lượng kết quả mong muốn [5]. Ngược lại từ công thức (4.6)
chúng ta thấy rằng để tính toán khoảng cách Euclide bình phương cần k phép trừ và
k phép nhân. Vì phần cứng để thực hiện phép nhân cần nhiều cổng logic, nên phần
cứng tổng thể của (4.6) khá lớn, nhưng lại cho kết quả VQ tốt hơn. Tùy thuộc vào

4.2.1.3. Khối nhân ma trận Trần Thị Điểm

24

Hình 4.6: Sơ đồ khối bộ nhân
4.2.2. Mạch tính khoảng cách Euclide và tìm vị trí trung khớp nhất

Hình 4.7: Sơ đồ mạch khối thiết kế vector quantization
Nguyên tắc hoạt động Trần Thị Điểm

Trích đoạn HƯỚNG PHÁT TRIỂ N
Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status