Hiện nay, vấn đề an ninh là một trong những vấn đề được quan tâm hàng đầu trên thế giới. Bài toán nhận dạng vì vậy được quan tâm rất nhiều. Trong vấn đề nhận dạng con người, đã có nhiều phương pháp được đưa ra và có độ chính xác cao.
Các bài toán nhận dạng được áp dụng theo 2 con đường là nhận dạng offline và nhận dạng online.
Nhận dạng offline: Đối tượng thu thập thành các file dữ liệu và được chuyển về trung tâm. tại đố các số liệu sẽ được phân tích xử lý, thời gian xử lý không yêu cầu quá khắt khe.
Nhận dạng online: đối tượng thu thập và xử lý trực tiếp tại hiện trường. thời gian xử lý luôn được yêu cầu khắt khe để có thể bám theo đối tượng.
Một bài toán nhận dạng con người đang phổ biến hiện nay:
- Nhận dạng vân tay
- Nhận dạng bàn tay
- Nhận dạng vân mắt
- sử dụng thẻ xác nhận
Các phương án đã qua thời gian dài phát triển nên có dộ chính xác cáo. tuy nhiên nó cũng có hạn chế.
Với sự phát triển của khoa học máy tính, vấn đề nhận dạng khuôn mặt được quan tâm và yêu cầu của đồ án như sau:
Xây dựng một hệ thống nhận dạng mặt người online với đầu vào là ảnh khuôn mặt người cần nhận dạng, được thu thập bằng camera số, đầu ra là kết quả nhận dạng cho khuôn mặt đó.
Để có thể xử lý được bài toán trên, đồ án đề xuất hướng tiếp cận là xử dụng các kỹ thuật xử lý ảnh số. các ảnh số được thu thập bằng camera số và xử lý thông qua máy tính PC
Bài toán nhận dạng mặt người online là kết hợp của 2 bài toán:
- Bài toán xác định mặt người trong ảnh số
- Bài toán nhận dạng mặt người
Nội dung đồ án:
- CHương 1: Trình bày yêu cầu đối với đầu vào và đầu ra, thời gian thực hiện của hệ thống
Chương 2: Trình bày về ảnh số, xử lý ảnh số, ứng dụng của ảnh số trong tác và nhận dạng mặt người, các phương pháp hiện có và lựa chọn phương án để giải quyết yêu cầu đề ra.
Chương 3: Nói về quá trình thiết kế, thi công các phần của đồ án
Chương 4: kết quả, giao diện chương trình, các trường hợp đúng, các trường hợp sai và phân tích các trường hợp sai
Chương 5: trình bày các kết quả đã đạt được, các tồn tài và hướng phát triển của đồ án
Chương 6: các tài liệu tham khảo
59 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2996 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Nghiên cứu xây dựng hệ thống nhận dạng mặt người online, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ể mang lại hiệu quả nhận dạng cao
hơn.
2. Phân tích hệ thống và các cơ sở lý thuyết
- 15 -
Nhược ñiểm của PCA:
- PCA phân loại theo chiều phân bố lớn nhất của tập vec-tơ. Tuy nhiên, không
phải bao giờ chiều phân bố lớn nhất lại mang lại hiệu quả cao nhất cho nhận
dạng. ðây là nhược ñiểm cơ bản của PCA.
- PCA rất nhạy với nhiễu, vì vậy nhiệm vụ tiền xử lý (lọc nhiễu, chuẩn hóa,…)
ñòi hỏi phải thực hiện rất kỹ
2.5.2.2. Nhận dạng bằng LDA
Tương tự như PCA, LDA (Linear Discriminants Analysis) cũng là một phương
pháp nhận dạng theo hướng tiếp cận Apprearance Based.
Mục ñích của LDA là tìm ra một không gian mới ñể tách rời các nhóm ảnh với
nhau. Không gian ñó ñược tạo bởi các vec-tơ không nhất thiết phải trực giao từng ñôi
một.
Trong không gian tạo ra từ LDA, các ảnh trong cùng một nhóm sẽ gần nhau, và các
nhóm khác nhau sẽ cách xa nhau. LDA khắc phục ñược nhược ñiểm của PCA, ñó là
“không phải hướng biến thiên mạnh nhất luôn mang thông tin nhận dạng cao nhất”.
ðối với một nhóm, gọi dwithin là khoảng cách lớn nhất các phần tử trong nhóm ñó,
và dbetween là khoảng cách bé nhất từ tâm của nhóm ñó tới tâm của các nhóm khác.
Mục tiêu của LDA là trong không gian mới, ta có dwithin bé nhất và dbetween lớn nhất.
ðể tính các khoảng cách dwithin, dbetween, ta dựa trên tính toán mối tương quan của
các thành viên trong một nhóm và sự tương quan giữa các nhóm với nhau. Các mối
tương quan này thể hiện qua các ma trận scatter.
Các Hình 2.9 và Hình 2.10 minh họa cho tư tưởng của phương pháp LDA.
(a) Các ñiểm trong không gian khi chiếu lên
một trục bị lẫn với nhau
(b) Các ñiểm ñó chiếu lên một trục khác. ðây
là mục tiêu của phương pháp LDA.
Hình 2.9. Phân loại với LDA
2. Phân tích hệ thống và các cơ sở lý thuyết
- 16 -
(a) Kết quả phân loại tốt khi khoảng cách dwithin bé
nhất và khoảng cách dbetween lớn nhất.
(b) Kết quả phân loại không tốt.
Hình 2.10. Phân loại dựa trên between và within theo LDA.
Ma trận scatter biểu diễn within-class là:
w
1 1
( )( )
jNC
j j T
i j i j
j i
S µ µ
= =
= Γ − Γ −∑∑ (2.4)
Với jiΓ là vec-tơ thứ i trong nhóm thứ j, jµ là trung bình của nhóm thứ j, C là số
nhóm, jN là số phần tử trong nhóm j.
Ma trận scatter biểu diễn between-class là:
1
( )( )
C
T
b j j
j
S µ µ µ µ
=
= − −∑ (2.5)
Với µ là trung bình của tất cả các nhóm.
Không gian tạo ra bởi phương pháp LDA là một tập các vec-tơ
[ ]1 2W W ,W ,...,Wd= ñược xác ñịnh bởi công thức:
argmax
T
b
T
W w
W S W
W
W S W
= (2.6)
Ưu ñiểm của phương pháp:
- LDA mang hầu hết các ưu ñiểm của phương pháp PCA, ñồng thời khắc phục
ñược nhược ñiểm cơ bản của PCA.
Nhược ñiểm của phương pháp:
- LDA ñòi hỏi một khối lượng tính toán rất lớn. Nếu ảnh có kích thước 200 200× ,
thì ma trận biểu diễn bS , wS sẽ có kích thước là 40000 40000× . Hiện nay vẫn
chưa có cách tính nhanh phương pháp LDA.
- LDA cũng nhạy với nhiễu giống như PCA, ñiều này ñòi hỏi nhiệm vụ tiền xử lý
ảnh phải ñược thực hiện kỹ lưỡng.
2. Phân tích hệ thống và các cơ sở lý thuyết
- 17 -
Qua phân tích ưu nhược ñiểm của từng phương pháp nhận dạng, với ñiều kiện ảnh
ñầu vào có kích thước là 600 800× , thời gian xử lý ngắn, ta lựa chọn phương pháp
PCA ñể nhận dạng. PCA có nhiệm vụ tạo ra vec-tơ ñặc tính dùng cho việc nhận dạng.
2.6. Nội dung phương pháp PCA
Trong nhận dạng mặt người, khi sử dụng PCA, ta coi một ảnh xám R C× pixels là
một vec-tơ trong không gian N R C= × chiều.
Không gian mới ñược tạo ra bởi PCA ñược cấu thành từ K vec-tơ ñơn vị có chiều là
N ,N R C<< × . Mỗi vec-tơ ñược gọi là một Eigenface.
Phép biến ñổi:
1 1
2 2
N K
= → =
a w
a w
A W
a w
⋮ ⋮
với K N≪
Theo công thức:
= ⋅W T A (2.7)
Với T là ma trận chuyển ñổi. T có kích thước là K N×
- Gọi M là số ảnh ñầu vào, mỗi ảnh ñã ñược chuyển thành một vec-tơ N chiều. Ta
có tập hợp ñầu vào 1 2{ , ,..., }M=X x x x (
N
i ∈x ℝ ).
- Trung bình của các vec-tơ ñầu vào (tâm của tập hợp ñầu vào):
1
1 M
i
iM =
= ∑x x (2.8)
- Sai lệch so với tâm:
i iΦ = −x x (2.9)
- Gọi 1 2[ , ,..., ]M= Φ Φ ΦA , ta có covariance matrix của A:
1
1 M T T
i i
iM =
= Φ Φ = ⋅∑C A A (2.10)
- Gọi các giá trị riêng của C là 1 2, ,..., Nλ λ λ sắp xếp theo thứ tự giảm dần, tương
ứng với N vec-tơ riêng 1 2, , , Nu u u… . Các vec-tơ riêng này trực giao từng ñôi
một. Mỗi vec-tơ riêng iu ñược gọi là một eigenface. Tập hợp vec-tơ ban ñầu
ñược biểu diễn trong không gian tạo bởi N eigenface theo mô tả sau:
1 1 2 2
1
...
N
N N i i
i
w w w w
=
− = + + + =∑x x u u u u (2.10)
- Chọn lấy K vec-tơ riêng u tương ứng với K giá trị riêng λ lớn nhất. Ta có:
2. Phân tích hệ thống và các cơ sở lý thuyết
- 18 -
ɵ
1 1 2 2
1
...
K
K K i i
i
w w w w
=
− = + + + =∑x x u u u u với K N≪ (2.11)
Véc-tơ các hệ số khai triển 1 2[ , ,..., ]Kw w w chính là biểu diễn mới của ảnh ñược tạo ra
trong không gian PCA. Ảnh mới xˆ vẫn giữ ñược các ñặc ñiểm chính của khuôn mặt
ñầu vào. Véc-tơ 1 2[ , ,..., ]Kw w w ñược tính theo công thức sau:
11
2 2 ( ) ( )
T
T
T
T
K K
w
w
w
= − = ⋅ −
u
u
x x U x x
u
⋮ ⋮
(2.12)
Vấn ñề cần giải quyết ở ñây là ma trận covariance T= ⋅C A A có kích thước 2N .
Với N = 200 × 200 = 40000, khối lượng tính toán sẽ rất lớn. Do ñó, ñể tính ñược các
eigenface mà không cần phải tính cả ma trận C, người ta ñưa ra phương pháp tính
nhanh dựa vào tính vec-tơ riêng và giá trị riêng của ma trận T= ⋅L A A có kích thước
M×M, với M là số ảnh ñầu vào. Ta có thể chứng mình như sau: gọi iv , iµ lần lượt là
vec-tơ riêng và giá trị riêng của ma trận L:
T
i i iµ⋅ ⋅ = ⋅A A ν ν (2.13)
Nhân cả 2 vế với A ta có:
T
i i iµ⋅ ⋅ ⋅ = ⋅ ⋅A A A ν A ν (2.14)
Ta thấy i⋅A ν chính là vec-tơ riêng của
T= ⋅C A A , ứng với giá trị riêng iµ .
2.7. Sơ ñồ khối và nhiệm vụ từng khối trong hệ thống
2.7.1. Sơ ñồ khối phần cứng
Sơ ñồ các khối phần cứng của hệ thống như sau:
Hình 2.11. Mô hình phần cứng của hệ thống
2. Phân tích hệ thống và các cơ sở lý thuyết
- 19 -
Trong khuôn khổ của ñồ án, ảnh số của ñối tượng ñược thu thập thông qua một
webcam. Tín hiệu webcam truyền về PC là một luồng hình ảnh với tốc ñộ 25 hình/s
theo kênh truyền thông qua cổng USB. Khối thu thập ảnh có chức năng lấy ra một
hình ảnh trong ñó có chứa ñối tượng cần nhận dạng. MATLAB sẽ ñiều khiển toàn bộ
quá trình thu nhận từng luồng và giữ lại ảnh cần chọn.
MATLAB cho phép chúng ta ñiều khiển quá trình hoạt ñộng và truyền dữ liệu của
camera có kết nối với máy tính theo các chuẩn khác nhau. ðể ñiều khiển thiết bị,
MATLAB sẽ thông qua driver Windows API (Application Programming Interface) ñể
tác ñộng tới các phần cứng kết nối với máy tính. Thư viện chuyên dụng Image
Acquisition Toolbox của MATLAB ñược thiết kế riêng dành cho mục ñích ñiều khiển
thiết bị và thu nhận ảnh.
Chức năng ñiều khiển của MATLAB thông qua thư viện Image Acquisition Toolbox
ñược minh họa trên Hình 2.12
Hình 2.12: Thu thập hình ảnh từ webcam theo các chuẩn khác nhau bằng thư viện Image Acquisition
Toolbox của MATLAB
Từ Hình 2.12 ta thấy khối thu thập ảnh và xử lý ảnh ñược kết nối với nhau thông
qua Image Acquisition Toolbox.
Luồng tín hiệu ñược truyền về PC và ñược MATLAB thu nhận. Cơ chế lấy ảnh theo
luồng tín hiệu của MATLAB ñược thể hiện trong Hình 2.13.
2. Phân tích hệ thống và các cơ sở lý thuyết
- 20 -
Hình 2.13: Luồng dữ liệu ảnh và thu nhận frame ảnh bằng MATLAB
Luồng tín hiệu theo chuẩn USB ñược truyền lên liên tục khi có lệnh start từ máy
tính ñiều khiển Webcam hoạt ñộng. Mỗi frame là một ảnh. Dữ liệu sẽ ñược ghi vào bộ
nhớ bắt ñầu từ khi có lệnh Trigger và kết thúc quá trình lưu bởi lệnh Acquisition stop.
Khi ta cần lấy một ảnh, thời gian giữa Trigger và Acquisition Stop sẽ có chiều dài
bằng 1 frame. Khi ñó ta sẽ có ảnh cần chụp. Các tín hiệu Trigger và Acquisition có thể
ñược ñiều khiển tự ñộng (automatic) hoặc bằng tay (manual). ðồ án lựa chọn phương
pháp manual, các lệnh Trigger và Acquisition ñược ñiều khiển bởi người sử dụng.
2.7.2. Sơ ñồi khối phần mềm:
Phần mềm chủ yếu là ñược viết ñối với khối Xủ lý ảnh số.
Tiền xử lý
Trích chọn ñặc
tính
Thu thập và
tách mặt người
trong ảnh
Cơ sở
dữ liệu
Phân loại, nhận
dạng
Xử lý kết quả
Ảnh cần
nhận dạng
Ảnh ñược
chuẩn hóa
Vec-tơ
ñặc tính
Xử lý ảnh số
Hình 2.14. Sơ ñồ khối phần mềm hệ thống nhận dạng mặt người
2. Phân tích hệ thống và các cơ sở lý thuyết
- 21 -
2.7.2.1. Cơ sở dữ liệu
Các ảnh mẫu ñược chọn và ñược xử lý qua hai bước Tiền xử lý và Trích chọn ñặc
tính. Các vec-tơ ñặc tính của các ảnh học ñược lưu vào cơ sở dữ liệu, sử dụng ñể ñối
chiếu với các ñối tượng mới cần nhận dạng.
Ảnh ñối tượng cần nhận dạng cũng ñược xử lý qua các bước trên. Qua bước xử lý
Phân loại và nhận dạng, vec-tơ ñặc tính của ảnh ñầu vào sẽ ñược so sánh lần lượt với
vec-tơ ñặc tính của từng ảnh học trong cơ sở dữ liệu ñể ñưa ra kết quả nhận dạng.
Trong ñồ án này, cơ sở dữ liệu ñược dùng là hai bộ ảnh:
- Bộ ảnh thứ nhất ñược download từ thư viện của trường ñại học Cambridge, ảnh
khuôn mặt ñược cắt thủ công bằng chương trình Photoshop 7.0. ðộ phân giải
của các ảnh là 220×170 pixels và ñược lưu trong ổ cứng máy PC với ñịnh dạng
JPEG.
- Bộ thứ hai là ảnh ñược chụp trực tiếp bằng webcam, ñược tách ra từ khối thu
thập ảnh của hệ thống. Ảnh ñược tách có ñộ phân giải 310×250 pixels, lưu trong
ổ cứng máy PC dưới ñịnh dạng JPEG.
2.7.2.2. Thu thập và tách mặt người trong ảnh
Ảnh ñược chụp bằng Webcam kỹ thuật số, ñược mã hóa thành file ảnh dạng
JPEG có kích thước 600×800 pixel, hệ màu RGB 24 bits. Chương trình MATLAB
ñiều khiển việc thu thập ảnh, hình ảnh ñược xử lý, hiển thị lên màn hình PC và lưu trữ
trong bộ nhớ máy tính. Nhiệm vụ của khối là sau khi thu thập ñược ảnh, tự ñộng tách
mặt người ra khỏi ảnh số.
2.7.2.3. Tiền xử lý
Nhiệm vụ của khối: tách mặt ra khỏi ảnh và chuẩn hóa.
ðầu vào của khối: hóa ảnh ñầu vào, là các ảnh ñược trích trực tiếp từ webcam (có
ñộ phân giải là 800×600 pixel, ảnh màu RGB 24 bits).
ðầu ra của khối: Ảnh mặt người ñược tách khỏi nền và ñược chuẩn hóa.
Chức năng của khối gồm:
- Tách mặt người ra khỏi ảnh.
- Chuẩn kích thước về 310×250 pixel.
- Căn tư thế thẳng ñứng (xoay ngang theo ñường nối hai mắt).
- Chuẩn ánh sáng
- Chuẩn mức xám
- Lọc nhiễu
2.7.2.4. Trích chọn vec-tơ ñặc tính
Nhiệm vụ của khối là tạo ra vec-tơ ñặc tính mang những ñặc tính riêng của khuôn
mặt cần nhận dạng. Số chiều của vec-tơ ñặc tính phải nhỏ hơn rất nhiều so với tín hiệu
ñầu vào.
2. Phân tích hệ thống và các cơ sở lý thuyết
- 22 -
ðầu vào của khối: ảnh sau khi ñã qua tiền xử lý.
ðầu ra của khối: vec-tơ ñặc tính ñược tính bằng phương pháp PCA.
- Các bước tiến hành trích chọn ñặc tính với PCA:
1. Tạo một tập S gồm M ảnh (ảnh học). Mỗi ảnh có kích thước R C× . Mỗi
ảnh ñược chuyển thành một vec-tơ N R C= × chiều.
{ }1 2 3, , ,..., MS = Γ Γ Γ Γ (2.15)
2. Tính ảnh trung bình Ψ của tập hợp trên.
1
1 M
i
iM =
Ψ = Γ∑ (2.16)
3. Tính sai lệch của các ảnh ñầu vào so với trung bình
i iΦ = Γ −Ψ (2.17)
4. Tìm tập hợp gồm M vec-tơ trực giao, u , biểu diễn chiều phân bố mạnh
nhất của tập dữ liệu Φ . Tập hợp các vec-tơ u ñược gọi là eigenface của
tập dữ liệu học.
5. Xây dựng các ảnh mới kω theo M vec-tơ u
[ ]1 2
( )
, ,...,
T
k k k
T
M
uω
ω ω ω
= Γ −Ψ
Ω =
(2.18)
Cuối cùng, ta có kω là vec-tơ ñặc tính của ảnh thứ k trong tập cơ sở dữ liệu ñầu
vào.
Ảnh mới cần nhận dạng, Γ , sẽ ñược trích chọn vec-tơ ñặc tính theo công thức:
( )Tkuω = Γ −Ψ (2.19)
2.7.2.5. Phân loại, nhận dạng
Khối này có chức năng ñối chiếu vec-tơ ñặc tính ñược tạo ra với cơ sở dữ liệu, từ ñó
ñưa ra ñược kết quả nhận dạng. Trong bài toán, kết quả nhận dạng là “ñã ñược biết”
hay là “chưa ñược biết”.
Khối này có thể ñược thực hiện theo nhiều phương pháp khác nhau như khoảng
cách Euclides, mạng nơ-ron, SVM,…
Khoảng cách Euclides là phương pháp ñơn giản nhất, nó có kết quả tốt ñối với các
ñối tượng tạo thành các nhóm cách xa nhau. Trong ñồ này, ta sử dụng phương pháp
2. Phân tích hệ thống và các cơ sở lý thuyết
- 23 -
này ñể nhận dạng. Vec-tơ ñặc tính của ñối tượng cần nhận dạng sẽ ñược so sánh lần
lượt với vec-tơ ñặc tính của từng ảnh mẫu ñã ñược học trước ñó. Các khoảng cách
ngắn nhất ñược lưu lại. Nếu khoảng cách ngắn nhất nhỏ hơn một ngưỡng cho phép, ta
xác nhận rằng ñối tượng “ñã ñược biết ñến”.
Việc nhận dạng trên ñược thực hiện qua công thức sau:
{ }min , 1,k k Mε ω ω= − = (2.20)
Nếu thresholdε ≤ , ta xác nhận ảnh Γ là “ñã ñược biết”.
Nếu thresholdε > , ta xác nhận ảnh Γ là “chưa ñược biết”.
Trong ñó threshold là giá trị của ngưỡng nhận biết. Giá trị này ñược ñiều chỉnh cho
từng bộ cơ sở dữ liệu.
Nếu kết quả nhận dạng là ñối tượng “ñã ñược biết”, hệ thống sẽ tìm ñến một file
dữ liệu chứa các thông tin về ñối tượng vừa tìm ñược. Các thông tin ñó sẽ ñược hiển
thị trên giao diện của chương trình.
Chương 2 ñã trình bày về các khối của hệ thống và phương án giải quyết cho từng
khối. Chương 3 sẽ thể hiện quá trình vận dụng các phương án ñó vào hệ thống. Các
bước thiết kế và kết quả triển khai vào hệ thống sẽ ñược trình bày chi tiết cho từng
khối.
3. Thiết kế chi tiết và triển khai hệ thống
- 24 -
Chương 3. Thiết kế chi tiết và triển khai hệ thống
3.1. Thu thập và tách mặt người trong ảnh
ðầu vào của khối: ảnh lấy ñược từ Webcam.
ðầu ra của khối: Ảnh người cần nhận dạng ñược tách khỏi nền.
Khối này sử dụng phương pháp trừ ảnh ñể tách ñối tượng.
Cho ảnh nền X và ảnh chứa ñối tượng Y có cùng kích thước 600×800.
Ảnh kết quả của phép trừ ảnh là I.
Xét pixel có tọa ñộ 0 0( , )x y , ta có:
0 0 0 0
0 0
0 0 0 0
1 ( , ) ( , )
( , )
0 ( , ) ( , )
khi X x y Y x y
I x y
khi X x y Y x y
ε
ε
− >
=
− ≤
(3.1)
Kết quả của phép trừ ảnh là một ảnh nhị phân. Khu vực chứa ñối tượng sẽ có màu
trắng (giá trị bằng 1), và khu vực còn lại sẽ có màu ñen (giá trị bằng 0). Tuy nhiên, do
sự thay ñổi cường ñộ sáng ở một mức ñộ nào ñó giữa ảnh nền và ảnh chứa ñối tượng,
ảnh sẽ có nhiều nhiễu.
Lọc nhiễu:
- Lọc các nhiễu (các vùng màu trắng không có ñối tượng) có diện tích bé. Vùng
chứa ñối tượng luôn là vùng có diện tích tích lớn nhất.
- Lọc các vùng ñen bên trong khu vực chứa ñối tượng.
(a)
(b)
(c)
(d)
(e)
Hình 3.1. Quá trình thu thập và tách ñối tượng khỏi ảnh. a. - Ảnh nền, b- Ảnh chưa ñối tượng, c. Kết
quả trừ ảnh, d. Mặt nạ sau khi lọc nhiễu, e – ðối tượng ñược tách khỏi nền.
3. Thiết kế chi tiết và triển khai hệ thống
- 25 -
3.2. Chuẩn hóa ảnh
- ðầu vào: Ảnh ñối tượng sau khi ñã ñược tách ở khâu thu thập.
- ðầu ra: Ảnh có kích thước cố ñịnh (310×250 pixels), bao trọn khuôn mặt ñối
tượng, ñược xoay thẳng và ñược cân bằng sáng.
3.2.1. Cắt và xoay chuẩn ảnh:
ðể thực hiện nhiệm vụ tìm khung khuôn mặt mà xoay chuẩn, ñồ án sử dụng phương
pháp tìm tâm 2 mắt ñể xác ñịnh vị trí khuôn mặt.
ðể xác ñịnh vùng mắt, ta nhận thấy mắt là một vùng có ánh sáng tối nằm ở một khu
vực riêng trên khuôn mặt, xung quanh là vùng màu da. Do ñó, ta sử dụng phương pháp
tách vùng ñể tìm ra vùng chứa mắt. Phương pháp phân ngưỡng ñược sử dụng.
Các bước thực hiện:
Hình 3.2. Khối chuẩn hóa ảnh
3. Thiết kế chi tiết và triển khai hệ thống
- 26 -
a – Xác ñịnh tâm mắt
Ta thấy, số pixel quy ñịnh gương mặt có tỉ lệ gần như không ñổi so với tổng số
pixel (ñiều này do ta ñã quy ñịnh chặt chẽ ñiều kiện biên).
Ảnh chứa ñối tượng Lược ñồ mức xám của ảnh
Hình 3.3. Xác ñịnh vùng mắt bằng phân tích lược ñồ mức xám
Ta thấy khu mực chứa màu mắt khá nổi bật trong lược ñồ mức xám. Nhận thấy tỉ lệ
của vùng da và nền so với tổng số pixel luôn nằm trong một khoảng cố ñịnh, do ñó ta
có thể tính ñược ngưỡng của vùng màu mắt.
Do diện tích của vùng mắt là nhỏ hơn rất nhiều so với vùng tóc, nên ta sử dụng
chương trình lọc ñể bỏ ñi các vùng có diện tích lớn. Vùng có diện tích lớn hơn ngưỡng
sẽ ñược thay thế bằng giá trị 0 (màu ñen). Qua khảo sát, ñồ án lựa chọn ngưỡng ñó là
1000 pixels.
Việc ñặt ngưỡng thông thường sẽ sinh ra các vùng nhiễu có diện tích bé. ðể lọc các
vùng này, ta cũng sử dụng hàm lọc giống như trên nhưng chỉ ñể lọc với các vùng có
diện tích bé hơn ngưỡng. Qua khảo sát, ñồ án lựa chọn ngưỡng ñó là 100 pixels.
Sau khi lọc nhiễu, ta có kết quả như sau:
Ảnh mặt nạ sau khi ñặt
ngưỡng tách màu mắt
Ảnh mặt nạ sau khi ñược lọc
nhiễu.
Vùng mắt ñược tách
Hình 3.4. Quá trình ñặt ngưỡng tách vùng mắt.
Sau khi tách ñược vùng mắt, sử dụng phương pháp tìm tâm của một vùng, ta có
ñược tâm của mắt như sau:
3. Thiết kế chi tiết và triển khai hệ thống
- 27 -
Hình 3.5. Xác ñịnh tâm mắt của ñối tượng
Tìm ñược tâm 2 mắt, từ ñây ta có thể thực hiện phép xoay ảnh và tách ñược vùng
mặt như mong muốn.
b – Xoay ảnh và tắt khung mặt
Từ tọa ñộ tâm 2 mắt, ta xác ñịnh góc nghiêng α của khuôn mặt so với phương
thẳng ñứng. Nếu 05α > , ta sẽ thực hiện phép xoay ảnh.
α
α
Hình 3.6. Xác ñịnh góc nghiêng của khuôn mặt dựa trên tâm mắt.
Giả sử tại tâm 2 mắt có tọa ñộ tương ứng là (x1,y1) và (x2,y2) khi ñó ta có:
2 1
2 1
y
x
y
tg
x
α
−
=
−
(3.2)
Xoay chuẩn ñổi tượng thực chất là một phép biến ñổi hệ tọa ñộ. Giả sử ảnh f ban
ñầu ở trong hệ tạo ñộ (w,z), thông qua phép biến ñổi T ta ñược ảnh f’ trong hệ tọa ñộ
(x, y);
( ){ }( , ) ,x y T w z= (3.3)
Phương pháp biến ñổi phổ biến hay ñược dùng là phương pháp affine transform
theo phương pháp này thì:
3. Thiết kế chi tiết và triển khai hệ thống
- 28 -
[ ] [ ] [ ]
11 12
21 22
31 32
0
1 1 1 0
1
t t
x y w z w z t t
t t
= ⋅ = ⋅
T (3.4)
Các phép chuyển ñổi thông thường có thể là: scale, rotation translation,…
ðối với mỗi phương pháp có ma trận T khác nhau, trong trường hợp xoay ảnh thì ma
trận T tương ứng sẽ là:
cos sin 0
sin cos 0
0 0 1
α α
α α
= −
T (3.5)
Tương ứng với phương trình toán học:
cos sin
sin cos
x w z
y w z
α α
α α
= −
= +
(3.6)
Sau khi xoay, tọa ñộ của các ñiểm trong ảnh cũ sẽ bị dịch chuyển ñi theo công thức
trên. Trong hệ tọa ñộ mới, ta có ñược khuôn mặt theo tư thế thẳng ñứng và hai tâm
mới tương ứng với mắt của ñối tượng. Từ ñây, ta có ñược khung ñể tách phần mặt
mong muốn ra khỏi ảnh.
Kết quả thực hiện như sau:
01α =
09α =
Hình 3.7. Xoay chuẩn ñối tượng theo góc α
3. Thiết kế chi tiết và triển khai hệ thống
- 29 -
c) Chuẩn sáng ảnh
ðể kiểm tra mức sáng, ta kiểm tra biểu ñồ mức xám của ảnh và sử dụng thuật toán
san bằng mức xám (histogram equalization). Ảnh sau khi ñược san bằng mức xám thì
mức xám của ảnh sẽ phân bố ñều từ 0-255.
(a)
0 50 100 150 200 250
0
500
1000
1500
b)
(b)
(c)
0 50 100 150 200 250
0
500
1000
1500
2000
d)
(d)
Hình 3.8. Kết quả cân bằng mức xám, biểu ñồ sau khi mức xám phân bố ñều hơn so với ban ñầu.
3.3. Trích chọn ñặc tính bằng phương pháp PCA
Các khâu trong quá trình trích chọn ñặc tính:
- ðầu vào: Ảnh ñã ñược chuẩn hóa
- ðầu ra: vec-tơ ñặc tính của ảnh ñầu vào.
ðể có ñược vec-tơ ñặc tính, ta cần phải qua 2 giai ñoạn:
Giai ñoạn 1: Tạo ra các eigenfaces thông qua quá trình học các ảnh mẫu.
Giai ñoạn 2: Chiếu vec-tơ ảnh cần nhận dạng vào không gian eigenface. Các vec-tơ
ñặc tính của ảnh ñầu vào là phép chiếu tử ảnh ban ñầu vào không gian tạo bởi các
eigenface.
Quá trình trích chọn ñặc tính ñược thể hiện qua lưu ñồ sau:
3. Thiết kế chi tiết và triển khai hệ thống
- 30 -
Khối
Trích chọn
ñặc tính
Hình 3.9. Sơ ñồ bên trong khối Trích chọn ñặc tính sử dụng PCA
3.3.1. Quá trình học
Mô hình ñược xây dựng và kiểm nghiệm trên 2 bộ dữ liệu:
- Bộ 1: Ảnh ñược download từ bộ dữ liệu ảnh mẫu ORL của Cambridge
University Engineering Department. Bộ dữ liệu lựa chọn có 20 người, ảnh ñược
cắt thủ công, mỗi người 5 ảnh. Trong số 5 ảnh của mỗi người ta chọn ngẫu nhiên
2 ảnh ñể tạo bộ số liệu học, và 3 ảnh còn lại ñể kiểm tra mô hình. Trong bộ ảnh
này, các ảnh học ñược xếp vào cùng một thư mục, có ñánh số thứ tự.
- Bộ 2: Bộ thu thập trực tiếp từ hệ thống webcam ñược thiết kế trong khuôn khổ
của ñồ án. Người chụp ñứng cách webcam khoảng 1m, tư thế tương ñối ngay
ngắn. Số người ñược thu thập là 6 người, mỗi người có 5 ảnh ñể xây dựng mô
hình. Ảnh ñể kiểm tra mô hình cũng ñược lấy trực tiếp từ webcam. Trong bộ ảnh
này, ảnh ñược xếp theo nhóm. Các ảnh của cùng một người ñược xếp chung vào
một thư mục. Những người khác nhau sẽ ñược ñặt trong các thư mục khác nhau.
Trong mỗi thư mục có một file dữ liệu chứa thông tin về người có ảnh ñặt trong
thư mục ñó. Các thư mục ñược ñánh số theo thứ tự.
3. Thiết kế chi tiết và triển khai hệ thống
- 31 -
Các khuôn mặt trong trong bộ dữ liệu 1 ñược cắt thủ công . Tư thế của mỗi khuôn
mặt là ngẫu nhiên và chưa ñược căn chỉnh. Các ảnh chưa ñược chuẩn sáng và san bằng
mức xám.
Trong bộ cơ sở dữ liệu 2, các ảnh ñều ñã ñược căn chỉnh về tư thế thẳng ñứng. Các
ảnh cũng chưa ñược chuẩn sáng và san bằng mức xám.
Tất cả các ảnh học của mỗi bộ ñược liệt kê và ñược thể hiện trên các Hình 3.10 (a)
và Hình 3.10(b) sau:
Hình 3.10 (a). Các ảnh học của bộ dữ liệu 1
3. Thiết kế chi tiết và triển khai hệ thống
- 32 -
(b)
Hình 3.10 (b). Các ảnh học của bộ dữ liệu 2.
3.3.1.1. Chuẩn hóa ma trận ảnh
Chuẩn hóa vec-tơ là khâu ñầu tiên cần thực hiện khi sử dụng thuật toán PCA. Sự
phân bố của một vec-tơ trong không gian ñược thể hiện qua trung bình (mean) và
chuẩn (standart) của vec-tơ ñó.
Cho vec-tơ [ ]1 2, ,..., Nx x x=X , trung bình và chuẩn của vec-tơ X ñược tính như sau:
1
2
1
1
( )
( )
( )
1
N
i
i
N
i
i
mean x
N
x
std
N
=
=
= =
−
=
−
∑
∑
X X
X
X
(3.7)
Theo công thức trên, từ một ảnh Γ ban ñầu, ta có trung bình Γ và chuẩn
( )std Γ của Γ .
Phép chuẩn hóa ma trận ảnh ñược thực hiện theo công thức sau:
3. Thiết kế chi tiết và triển khai hệ thống
- 33 -
( , )
'( , )
( )
x y
x y
std
Γ − Γ
Γ =
Γ
(3.8)
trong ñó, 'Γ là ma trận ảnh ñã ñược chuẩn hóa, (x, y) là tọa ñộ ñiểm ảnh.
Kết quả quá trình chuẩn hóa ñược thể hiện như sau:
Ảnh ñầu vào Ảnh sau chuẩn hóa
Hình 3.11. Chuẩn hóa ma trận ảnh
3.3.1.2. Tính trung bình tập ảnh ñầu vào
Khâu này cho ta xác ñịnh ñược gốc tọa ñộ của không gian vec-tơ biểu diễn các ảnh.
Ảnh trung bình ñược tính bằng trung bình cộng của tất cả các ảnh. Ảnh trung bình này
thể hiện những ñiểm giống nhau nhất giữa tất cả các khuôn mặt.
Gọi số ảnh học là N, mỗi ảnh có kích thước R C× .
{ }1 2 3, , ,..., MS = Γ Γ Γ Γ (3.9)
Trung bình N ảnh trên ñược tính theo công thức:
1
1 M
i
iM =
Ψ = Γ∑ (3.10)
Kết quả thực hiện trên 2 bộ dữ liệu:
Trung bình tập ảnh học của bộ 1 Trung bình tập ảnh học của bộ 2
Hình 3.12. Trung bình ảnh của các tập dữ liệu học.
Sau khi tính ñược ảnh trung bình của bộ ảnh học, các ảnh ñầu vào sẽ ñược so
sánh với ảnh trung bình này. Ảnh mới sẽ chứa những ñiểm khác nhau giữa ảnh ñầu
3. Thiết kế chi tiết và triển khai hệ thống
- 34 -
vào so với các ảnh còn lại. Ta có tập vec-tơ ñầu vào mới sau khi so sánh với trung
bình:
1 2[ , ,..., ]
, 1,
M
i i i M
= Φ Φ Φ
Φ = Γ −Ψ =
A
(3.11)
3.3.1.3. Tính eigenface
Ma trận Covariance (covariance matrix) thể hiện sự tương quan của từng vec-tơ
ñối với các vec-tơ còn lại trong không gian.
Cho 2 vec-tơ N chiều [ ]1 2, ,..., Nx x x=X và [ ]1 2, ,..., Ny y y=Y . Ta có tương quan
giữa 2 vec-tơ trên ñược tính theo công thức:
1
( )( )
cov( , )
1
N
i i
i
x y
N
=
− −
=
−
∑ X Y
X Y
(3.12)
Nếu hai véc tơ ñã ñược chuẩn hóa trước, ứng với 0, 0= =X Y , ta có:
1 1cov( , ) ( )
1 1
N
i i
Ti
x y
N N
== = ⋅
− −
∑
X Y X Y
(3.13)
Cho một tập M vec-tơ N chiều 1 2[ , ,..., ]MΦ Φ Φ , xếp thành một ma trận A kích
thước N M× , ta có covariance của ma trận A là một ma trận C có kích thước N N× ,
phần tử ( , )C i j ñược tính như sau:
( , ) cov( , )i jC i j = Φ Φ (3.13)
Vec-tơ riêng (eigenvector) và giá trị riêng (eigenvalue) :
Cho ma trận vuông N N×∈C ℝ , vec-tơ riêng u và giá trị riêng λ khi và chỉ khi:
λ⋅ = ⋅C u u (3.14)
Eigenface:
Theo lý thuyết, eigenface chính là các vec-tơ riêng u ứng với các giá trị riêng v có
giá trị lớn nhất của ma trận covariance:
1
1 M T T
i i
iM =
= Φ Φ = ⋅∑C A A
ðể tính nhanh các eigenface này, người ta chuyển sang tính toán với ma trận
T= ⋅L A A . Lựa chọn K vec-tơ riêng v ứng với K giá trị riêng lớn nhất của L. Ta có
3. Thiết kế chi tiết và triển khai hệ thống
- 35 -
công thức chuyển ñổi: = ⋅u A v . Các giá trị riêng của L cũng chính là các giá trị riêng
của C
Gọi các giá trị riêng của L là: { }1 2, ,..., Mλ λ λ λ= sắp xếp theo thứ tự giảm dần.
K giá trị riêng lớn nhất ñược lựa chọn theo công thức:
1
1
K
i
i
M
i
i
λ
ε
λ
=
=
≥
∑
∑
(3.15)
Trong ñó, ε là ngưỡng chọn. ðồ án lựa chọn 0,97ε =
Kết quả tính eigenface cho 2 bộ số liệu như sau:
Bộ 1: Theo công thức (3.15), 34 giá trị riêng cần tìm ñược thể hiện trên Hình 3.13.
10 20 30 40 50 60 70 80
0
5
10
15
x 10
4
Hình 3.13. Biều ñồ giá trị riêng của covariance matrix. Chọn 34 giá
trị riêng ñầu tiên ñể trích chọn ñặc tính.
Trong hình trên, các giá trị riêng biến thiên rất nhanh về 0. Tổng giá trị của 34 giá
trị riêng ñầu tiên chiếm hơn 97% tổng giá trị tất cả các giá trị riêng tìm ñược.
34 eigenface tương ứng với 34 giá trị riêng trên ñược thể hiện trên Hình 3.14 sau:
3. Thiết kế chi tiết và triển khai hệ thống
- 36 -
Hình 3.14. 34 eigenfaces tìm ñược.
Bộ 2: Theo công thức (3.15), 26 giá trị riêng cần tìm ñược thể hiện trên Hình 3.15.
10 20 30 40 50 60 70
0
0.5
1
1.5
2
2.5
x 10
5
Hình 3.15. Biều ñồ giá trị riêng của covariance matrix. Chọn 26 giá
trị riêng ñầu tiên ñể trích chọn ñặc tính.
Tương tự bộ 1, các giá trị riêng tìm ñược cũng biến thiên rất nhanh về 0. Tổng giá
trị 26 giá trị riêng ñầu tiên chiếm hơn 97% tổng giá trị tất cả các giá trị riêng tìm ñược.
Do ñó ta chọn 26 giá trị riêng ñầu tiên.
3. Thiết kế chi tiết và triển khai hệ thống
- 37 -
26 eigenface tương ứng với 26 giá trị riêng trên ñược thể hiện qua Hình 2.16
Hình 3.16. 26 eigenfaces tìm ñược.
Qua các Hình 3.14 và Hình 3.16, ta có thể thấy ñược sự biến thiên của các
eigenface tìm ñược.Các eigenface ñầu tiên rất rõ rệt, ñặc trưng cho chiều biến thiên
mạnh nhất của bộ dữ liệu học. Các eigenface sau “nhạt” dần, thể hiện cho các hướng
biến thiên giảm dần của bộ dữ liệu học. Các eigenface cuối cùng tương ứng với các giá
trị riêng gần bằng 0. Số lượng eigenface quyết ñịnh số chiều của vec-tơ ñặc tính.
Các eigenface tìm ñược là các vec-tơ tạo ra không gian mới ñể thực hiện nhiệm vụ
trích chọn ñặc tính. Vec-tơ ñặc tính của ñối tượng cần nhận dạng chính là hình chiếu
của ảnh ñầu vào lên không gian mới này. Từ ñây, các mô hình nhận dạng sẽ ñược áp
dụng ñể mang lại hiệu quả nhận dạng cao mà vẫn ñáp ứng ñược yêu cầu về thời gian
xử lý của hệ thống.
3.3.2. Quá trình tạo ñặc tính
Cho ảnh ñầu vào Γ .
Trong không gian ñược tạo bởi K eigenface, ảnh Γ sẽ ñược thể hiện bởi các hệ số
[ ]1 2, ,..., Kw w wω = ñược tính theo công thức sau:
3. Thiết kế chi tiết và triển khai hệ thống
- 38 -
( )Tkuω = Γ −Ψ (3.16)
Trong ñó, Ψ là trung bình các ảnh học ñã ñược tính trong phần học.
Trong không gian eigenface này, ảnh mới ′Γ sẽ ñược biểu diễn bởi công thức sau:
1 1 2 2 ... K Kw w w′Γ = Ψ + ⋅ + ⋅ + + ⋅u u u (3.17)
Trong ñó { }1 2, ,..., Ku u u u= là các eigenface.
Sai số ′Γ −Γ càng nhỏ thì lượng thông tin bị mất khi trích chọn ñặc tính càng nhỏ,
ñiều ñó có nghĩa là vec-tơ ñặc tính tạo ra có chất lượng tốt..
Theo công thức trên, kết quả thu ñược trên 2 bộ số liệu ñược minh họa trong Hình
3.17 sau:
Bộ 1
Bộ 2
Ảnh ñầu vào Ảnh tái tạo từ các vec-tơ ñặc tính.
Hình 3.17. Khôi phục ảnh từ các vec-tơ ñặc tính
Từ Hình 3.17 ta thấy, ảnh ñược khôi phục lại từ vec-tơ ñặc tính trong không gian
mới hầu như không bị mất thông tin. Từ ñây là có thể ñánh giá ñược chất lượng các
vec-tơ ñặc tính ñược tạo ra là tốt.
3. Thiết kế chi tiết và triển khai hệ thống
- 39 -
3.4. Quá trình nhận dạng
- ðầu vào: Vec-tơ ñặc tính của ảnh chứa ñối tượng cần nhận dạng
- ðầu ra: Trả lời ñối tượng “ñã ñược nhận biết” hay “chưa ñược biết”.
Quá trình nhận dạng ñược thực hiện bằng cách so sánh khoảng cách giữa vec tơ ñặc
tính của ảnh cần nhận dạng và vec-tơ ñặc tính của từng ảnh học, tìm ra ảnh học gần
với ảnh cần nhận dạng nhất. Nếu khoảng cách bé nhất ñó bé hơn một ngưỡng xác ñịnh,
ta kết luận là ñối tượng ñã ñược nhận biết.
Tập ảnh học { }1 2 3, , ,..., MS = Γ Γ Γ Γ lần lượt ñược chiếu vào không gian eigenface,
vec-tơ ñặc tính của các ảnh học lần lượt là: 1 2, ,..., Mω ω ω . Ảnh chứa ñối tượng cần
nhận dạng Γ , chiếu vào không gian eigenface ta ñược vec-tơ ñặc tính ω . Ta cần tìm
ảnh XΓ trong cơ sở dữ liệu học có khoảng cách ngắn nhất tới ñối tượng cần nhận dạng
theo công thức sau:
argminX k
ω
ω ω ω= −
Xσ ω ω= −
(3.18)
Nếu σ ε< , ñối tượng ñã ñược biết ñến, là người XΓ trong cơ sở dữ liệu học.
Nếu σ ε≥ , ñối tượng chưa ñược biết ñến.
Ảnh ñầu vào Ảnh tách ñược
61.6σ =
66.7σ =
94.8σ =
Các kết quả gần với ñối tượng nhất tương ứng với các giá trị σ
Hình 3.18. Nhận dạng theo khoảng cách Euclide.
Sau khi thiết kế và triển khai hệ thống, ñồ án sẽ ñi tới nhiệm vụ thiết kế giao diện và
kiểm tra sự hoạt ñộng của hệ thống. Các thiết bị lựa chọn, ngôn ngữ lập trình và các
3. Thiết kế chi tiết và triển khai hệ thống
- 40 -
chương trình tự viết sẽ ñược trình bày trong chương 4. Ngoài ra, chương 4 sẽ trình bày
về giao diện chương trình, các chức năng, cách sử dụng giao diện, các kết quả nhận
dạng cho từng bộ số liệu và phân tích các trường hợp dẫn ñến kết quả nhận dạng sai.
4. Các kết quả triển khai hệ thống và áp dụng
- 41 -
Chương 4. Các kết quả triển khai hệ thống và áp
dụng
4.1. Lựa chọn thiết bị và công cụ lập trình
Các thiết bị sử dụng trong triển khai hệ thống như sau:
4.1.1. Camera
- Tên Camera: Webcam Tako 10.
- ðặc ñiểm:
o Kết nối với máy tính theo chuẩn USB.
o Tốc ñộ truyền: 25 hình/s
o ðộ phân giải: 600×800 pixel, có thể ñiều chỉnh.
4.1.2. PC
Cấu hình máy:
- Chip Pentium IV 2.4GHz
- DDRAM 512GB
4.1.3. Công cụ lập trình
- Tên chương trình: MATLAB version 7.0.4 R2004
- Các thư viện:
o Image Acquisition Toolbox Version 1.8
o Image Processing Toobox, Version 5.0.2
4.2. Các hàm sử dụng
ðể phục vụ cho các tính toán và mô phỏng thuật toán, trong khuôn khổ ñồ án ñã có
nhiều hàm và chương trình ñược tự xây dựng. Các hàm và chương trình này ñược viết
bằng ngôn ngữ MATLAB. Một số hàm thư viện khác của MATLAB cũng ñược sử
dụng trong ñồ án sẽ ñược giới thiệu trong phần tài liệu tham khảo.
4.2.1. Khối tách ảnh ñối tượng
function res = SubImages(im,ba,thresh)
% Tru anh voi nen
% Input:
% + im: ảnh ñầu vào chứa ñối tượng.
% + ba: ảnh nền
% + thresh: ngưỡng trừ ảnh
% Output:
% + res: Kết quả của phép trừ ảnh
4. Các kết quả triển khai hệ thống và áp dụng
- 42 -
function res = OuterBox(x,T)
% Tạo mặt nạ ñối tượng
% + Lọc nhiễu
% + Bỏ phần chứa thân người
% Input:
% + x : ảnh cần xử lý (kết quả của phép trừ ảnh)
% + T : Thông số của hàm
% Ouput:
% + Ảnh ñã ñược xử lý
function res = FFE(im,ba)
% Face Frame Extraction
% Tách vùng chứa ñối tượng ra khỏi ảnh
% Input:
% + im: Ảnh ñầu vào
% + ba: Ảnh nền
% Output:
% + res: Ảnh chứa ñối tượng tách
4.2.2. Khối tiền xử lý
function [L1,L2, R1, R2] = LeftRight(im)
% Tìm tâm 2 mắt
% Input:
% +im: ảnh ñã ñược tách sau khối FFE.
% Output:
% + L1, L2: Tọa ñộ tâm mắt trái
% + R1, R2: Tọa ñộ tâm mắt phải
function res = RotTrans(im)
% Xoay và tách ñối tượng dựa vào ñường nối tâm 2 mắt
% Input:
% + anh sau ham FFE (Face Frame Extraction)
% Output:
% + res: Ảnh có kích thước không ñổi,
% bao trọn khuôn mặt ñối tượng.
4.2.3. Khối trích chọn ñặc tính
function [x,M] = PCA_input()
% ðọc dữ liệu ảnh cho quá trình học.
% Input:
% + Ảnh tại một thư mục mặc ñịnh của chương trình.
% Output:
% + x: Tập ảnh học
% + M: Số lượng ảnh.
function res = pre_processing(x)
% Khối tiền xử lý: Chuẩn hóa ánh sáng, san bằng mức xám và
% lọc nhiễu ảnh vào.
% Input:
% + Tập ảnh học
% Output:
% + res: Tập ảnh sau khi ñược tiền xử lý.
4. Các kết quả triển khai hệ thống và áp dụng
- 43 -
function S = normalization(x)
% Chuẩn hóa ma trận ñiểm ảnh
% Input:
% + Tập ảnh học ñã qua bước tiền xử lý
% Output:
% + S: Tập ảnh sau khi chuẩn hóa và
% ñược chuyển vào ma trận S.
function [res1, MEAN] = average(S)
% Tính ảnh trung bình, xác ñịnh sai lệch của từng ảnh học
% so với ảnh trung bình
% Input:
% + Ma trận tạo bởi các ảnh học sau bước chuẩn hóa
% (normalization)
% Output:
% + MEAN: Ảnh trung bình
% + res1: sai lệch của các ảnh so với ảnh trung bình
function [A,u,phi] = eigen(x)
% Tính các eigenface, ma trận chuyển ñổi và
% biểu diễn của các ảnh học trong không gian mới.
% Input:
% + Tập ảnh học sau khi ñược chuẩn hóa và
% và tính sai lệch so với ảnh trung bình.
% Output:
% + A : Ma trận chuyển ñổi
% + u : Tập các eigenface
% + phi: Biểu diễn của các ảnh học trong không gian
% eigenface (vec-tơ ñặc tính của các ảnh học)
4.2.4. Khối nhận dạng:
function [correct, MATCH1, MATCH2, MATCH3] = recognition(im)
% Nhận dạng
% Input:
% + ảnh chứa ñối tượng
% Output:
% + correct: Cho biết kết quả nhận dạng. correct nhận các giá
% trị 0 hoặc 1.
% correct = 0 ==> ảnh chưa ñược biết ñến.
% correct = 1 ==> ảnh ñã ñược biết ñến.
% + MATCH1, MATCH2, MATCH3: thứ tự 3 người trong
% tập ảnh học gần với ñối tượng nhất
function [name, age, offical_im] = info(K)
% ðọc thông tin về ñối tượng ñã nhận dạng ñược
% Input:
% + K: Số thứ tự của ảnh học gần với ñối tượng nhất.
% Output:
% + name: Tên của ñối tượng.
% + age : Tuổi của ñối tượng.
% + official_im: Ảnh ñại diện của ñối tượng.
4. Các kết quả triển khai hệ thống và áp dụng
- 44 -
4.3. Giao diện
Giao diện ñược thực hiện trên GUI (Graphical User Interface), trên nền MATLAB
version 7.0.4 R2004. Hiện tại, ñể chạy giao diện này ta phải thông qua MATLAB.
Các kết quả nhận dạng ñối tượng “ñã ñược nhận biết” và “chưa ñược nhận biết” sẽ
lần lượt ñược thể hiện trong các Hình 4.1 và Hình 4.2.
Hình 4.1. Giao diện chương trinh, với kết quả là nhận dạng ñược ñối tượng.
4. Các kết quả triển khai hệ thống và áp dụng
- 45 -
Hình 4.2. Giao diện chương trinh, với kết quả là không nhận dạng ñược ñối tượng.
Giao diện với 3 phần: phần hiển thị ñầu vào, phần hiển thị kết quả và panel ñiều
khiển.
Panel hiển thị ñầu vào:
- Input: Sau khi chọn Open File (với nhập ảnh từ CSDL có sẵn) hoặc Snapshot
(ñối với ảnh nhập trực tiếp từ webcam), ảnh chứa ñối tượng sẽ ñược hiển thị ở
ñây.
Panel hiển thị kết quả:
- Detected Image: Hiển thị khuôn mặt ñã ñược tách và xoay chuẩn.
- Comparision Result: Hiển thị 3 ảnh thuộc CSDL gần với ảnh cần nhận dạng
nhất, với Comp. Index là khoảng cách σ tương ứng. Comp.Index có màu xanh là
giá trị σ bé nhất.
- Recognition Result: Hiển thị kết quả nhận dạng.
o Nếu giá trị σ bé nhất bé hơn ngưỡng, kết quả sẽ là hình ảnh người ñược
nhận dạng và thông tin về người ñó (tên, tuổi). Nếu giá trị σ bé nhất lớn
hơn ngưỡng, kết quả trả lời là unknown face.
Panel ñiều khiển CONTROL PANEL có chức năng:
- ðiều khiển truy nhập dữ liệu. Có 2 chế ñộ là online bằng Camera, và offline
bằng file trong CSDL.
- Update CSDL, tạo CSDL mới.
4. Các kết quả triển khai hệ thống và áp dụng
- 46 -
- ðiều khiển quá trình học và lưu trữ dữ liệu.
Cho thực hiện nhập ảnh cần nhận dạng, có 2 chế ñộ ñể lựa chọn: lấy ảnh trực tiếp từ
camera và lấy ảnh từ file ñặt trong bộ nhớ PC.
- Lấy ảnh trực tiếp từ camera:
o Chọn phím Open Cam ñể mở Camera, lúc này phím Snapshot ñược kích
hoạt.
o Chọn phím Snapshot ñể lấy ảnh từ Camera.
- Lấy ảnh từ file: chọn phím Open File ñể chọn file.
ðể thực hiện nhận dạng, chọn phím Recognize.
Khi cần cập nhật hoặc học dữ liệu mới, ta sử dụng phím Learn Data.
Thực hiện tạo dữ liệu mới, chọn phím CreateData. Khi chọn phím này, chương
trình sẽ chuyển ñến của sổ Create Data:
Hình 4.3. Cửa sổ Create Data.
Tại của sổ Create Data, ta có các phím lựa chọn:
- Mở camera (Open Cam)
- Lựa chọn nền (Get Background)
- Chụp ảnh mới (Snapshot).
- Tách khuôn mặt (Extract)
- Lưu ảnh (Save Pic)
4. Các kết quả triển khai hệ thống và áp dụng
- 47 -
4.2. Kết quả nhận dạng
4.2.1. Test với bộ dữ liệu có sẵn
Với cơ sở dữ liệu là bộ mẫu có sẵn có 20 người, mỗi người có 5 ảnh, mỗi người
ñược chọn 2 ảnh học và 3 ảnh ñể test. Sau khi khảo sát, ngưỡng nhận dạng ñược
chọn là 100. Do chỉ có 2 ảnh học cho mỗi người, nên với bộ dữ liệu này ta chỉ ñưa
ra 2 người gần với ñối tượng nhất
Kết quả nhận dạng như sau:
- Kiểm tra với ñầu vào là các ảnh học:
Số ảnh: 40.
Nhận dạng ñúng: 40, tỉ lệ 100%
- Kiểm tra với các ảnh khác:
Số ảnh: 60
Nhận dạng ñúng: 53, tỉ lệ 88,3%.
Các ñối tượng có kết quả nhận dạng ñúng ñược chia là 2 trường hợp:
- Ảnh dễ nhận dạng: Kết quả nhận dạng là 2 ảnh trong CSDL học của ñúng người
ñó. Giá trị nhận dạng ứng với 2 ảnh tìm ñược ñều nhỏ hơn ngưỡng.
- Ảnh khó nhận dạng: Giá trị nhận dạng bé nhất nhỏ hơn ngưỡng nhận dạng và
ảnh trong CSDL học ứng với giá trị nhận dạng ñó ñúng là của ñối tượng. Giá trị
nhận dạng bé thứ 2 lớn hơn ngưỡng nhận dạng.
Các trường hợp nhận dạng ñúng trên ñược thể hiện trong các Hình 4.4 và Hình 4.5.
(a)
(b) 86σ =
(c) 91σ =
Hình 4.4. Kết quả nhận dạng ñúng, trường hợp “dễ nhận dạng”. a - ảnh cần nhận dạng, b,c – 2 ảnh
gần nhất với ñối tượng và các giá trị nhận dạng tương ứng.
(a)
(b) 71σ =
(c) 122σ =
Hình 4.5. Kết quả nhận dạng ñúng,trường hợp “khó nhận dạng”. a - ảnh cần nhận dạng, b,c – 2 ảnh
gần nhất với ñối tượng và các giá trị nhận dạng tương ứng.
4. Các kết quả triển khai hệ thống và áp dụng
- 48 -
Với các trường hợp sai:
- Sai hoàn toàn, mặc dù người trong ảnh ñã ñược học, nhưng trong các kết quả
ñưa ra không có cái nào trùng với người ñó.
- Sai do vượt ngưỡng: Ảnh ứng với giá trị nhận dạng nhỏ nhất của ñúng ñối tượng
cần nhận dạng, tuy nhiên giá trị nhận dạng lại lớn hơn ngưỡng.
Nguyên nhân dẫn ñến kết quả sai là do nét mặt và tư thế của người chụp ảnh biến
ñổi rất nhiều so với ảnh gốc (ví dụ, há miệng, nhăn nhó,...), và một số ảnh bị sai do
trang phục của người cần nhận dạng.
Các trường hợp trên sẽ ñược minh họa trong các Hình 4.6 và Hình 4.7.
118σ =
131σ =
(a) (b) (c)
Hình 4.6. Một số trường hợp nhận dạng sai hoàn toàn: (a) - ảnh gốc trong CSDL, (b) - ảnh ñầu
vào có “nhiễu” (hàng trên - ảnh nét mặt biến ñổi mạnh, hàng dưới - ảnh ñội mũ), (c) – ảnh nhận
dạng
(a)
(b) 123σ =
Hình 4.7. .Kết quả nhận dạng sai do vượt ngưỡng, a - ảnh cần nhận dạng, b - ảnh tương ứng với giá
trị nhận dạng bé nhất.
4. Các kết quả triển khai hệ thống và áp dụng
- 49 -
4.2.2. Test với bộ dữ liệu ñược lấy từ webcam hệ thống.
Bộ mẫu test ñược chụp trực tiếp từ webcam với 120 ảnh cho 6 người, mỗi người 20
ảnh. Với boọ dữ liệu này, kết quả sẽ ñưa ra 3 người trong ảnh học gần nhất với ñối
tượng. Qua khảo sát, ngưỡng nhận dạng sử dụng cho bộ 2 là 100.
Mỗi người ñược cho học 5 ảnh.
Kết quả nhận dạng như sau:
- Kiểm tra với ñầu vào là các ảnh học:
Số ảnh: 30,
Nhận dạng ñúng: 30, tỉ lệ 100%
- Kiểm tra với các ảnh khác:
Số ảnh: 90
nhận dạng ñúng: 82, tỉ lệ 91,11%.
Cũng giống như bộ 1, các trường hợp nhận dạng ñúng cũng ñược chia ra làm hai
trường hợp là “dễ nhận dạng” và “khó nhận dạng”. Hai trường hợp này sẽ ñược minh
họa trên Hình 4.8 và Hình 4.9
(a)
(b) 61σ =
(c) 88σ =
Hình 4.8. Kết quả nhận dạng ñúng,trường hợp “dễ nhận dạng”. a - ảnh cần nhận dạng, b,c – 2 ảnh
gần nhất với ñối tượng và các giá trị nhận dạng tương ứng.
(a)
(b) 98σ =
(c) 111σ =
Hình 4.9. Kết quả nhận dạng ñúng,trường hợp “khó nhận dạng”. a - ảnh cần nhận dạng, b,c – 2 ảnh
gần nhất với ñối tượng và các giá trị nhận dạng tương ứng.
Với trường hợp “khó nhận dạng”, ñể tăng ñộ tin cậy ta cần kết hợp thêm với các
phương pháp khác (ví dụ như so sánh lông mày, so sánh khoảng cách mắt, …). Các
phương án kết hợp này sẽ ñược trình bày ở phần hướng phát triển của ñồ án.
4. Các kết quả triển khai hệ thống và áp dụng
- 50 -
Với các kết quả nhận dạng sai, tương tự như bộ 1, cũng ñược phân thành 2 trường
hợp là “sai hoàn toàn” và “sai do vượt ngưỡng”.Những nguyên nhân chủ yếu là:
- Tư thế của người cần nhận dạng như mặt quá nghiêng, ñứng cách camera không
ñúng cự ly yêu cầu (1m).
- Trạng thái khuôn mặt của người chụp thay ñổi mạnh so với mẫu học (nhắm mắt,
cau mày,...)
- Các trường hợp Can not detect là do: chương trình không phát hiện ñược vùng
mắt ñối tượng khi ñối tượng nhắm mắt hoặc nghiêng mặt với ñộ nghiêng lớn,
dẫn ñến vị trí 2 mắt trong ảnh không còn cân ñối trong vùng mặt.
Các trường hợp sai ñược mô tả trong Hình 4.10 và Hình 4.11
(a)
(b)
(c)
113σ =
(d)
119σ =
(e)
130σ =
(f)
Hình 4.10. Trường hợp nhận dạng sai do vượt ngưỡng. a - ảnh chứa ñối tượng, b – ðối tượng ñược
tách khỏi nền, c - Ảnh sử dụng ñể nhận dạng, d,e,f – Ảnh trong CSDL học tương ứng với 3 giá trị nhận
dạng σ bé nhất.
(a)
(b)
(c)
117σ =
(d)
135σ =
(e)
180σ =
(f)
Hình 4.11. Trường hợp nhận dạng sai hoàn toàn do ñối tuợng ñứng quá gần camera a- ảnh ñầu vào,
b- ñối tượng ñược tách khỏi nền, c,d,e- ảnh dùng cho nhận dạng và các kết quả gần nhất.
4. Các kết quả triển khai hệ thống và áp dụng
- 51 -
Can not detect Unknow face
Can not detect Unknow face
(a) (b) (c) (d)
Hình 4.12. Các trường hợp nhận dạng sai hoàn toàn của bộ dữ liệu 2. a - Ảnh ñầu vào (khuôn mặt
quá lớn, nghiêng mặt quá nhiều, nhắm mắt), b – ðối tượng ñược tách khỏi nền, c - Ảnh ñể nhận dạng,
d - Kết quả nhận dạng.
Như vậy, ta có ñánh giá tổng thể như sau: kết quả nhận dạng ñối với bộ 2 là cao hơn
so với bộ 1, lý do là do bộ 2 có ñối tượng ít hơn, ñược chụp trong ñiều kiện biên ñã
hạn chế, tiền xử lý ñược áp dụng mạnh hơn so với bộ 1.
Sau các bước ñặt vấn ñề, phân tích, thiết kế, thi công và kiểm tra hoạt ñộng của hệ
thống, ñồ án sẽ tổng kết lại toàn bộ quá trình ñã thực hiện trên.
Chương 5 trình bày về các kết quả ñã ñạt ñược, tìm hiểu các tồn tại và ñề xuất các
hướng phát triển của ñồ án dựa trên việc khắc phục những tồn tại trên. Cạnh ñó,
chương 5 sẽ ñề xuất các hướng ứng dụng của hệ thống trong hai trường hợp nhận dạng
online và nhận dạng offline.
5. Kết luận và hướng phát triển
- 52 -
Chương 5. Kết luận và hướng phát triển
Với các kết quả ñã ñược trình bày ở các chương trên, qua thời gian thực hiện, ñồ án
ñã ñạt ñược một số kết quả sau:
- Nắm ñược các vấn ñề cơ bản của ảnh số và xử lý ảnh số
- Sử dụng thành thạo phần mềm MATLAB và ứng dụng của MATLAB trong thu
thập ảnh số và xử lý ảnh số.
- Nắm ñược các ñặc ñiểm của một bài toán nhận dạng nói chung và nhận dạng
khuôn mặt nói riêng.
- Tìm hiểu ñược một số phương pháp nhận dạng mặt người, nắm ñược ưu nhược
ñiểm của từng phương pháp. Test thử thành công trên các bộ số liệu mẫu.
- Xây dựng ñược hệ thống thu thập và nhận dạng ảnh số sử dụng PC và phần mềm
MATLAB.
- Giải quyết và phối hợp ñược 2 bài toán: Human Face Detecting và Human Face
Recognition: Bài toán tách mặt, tách các ñối tượng ñặc biệt (mắt, lông mày,…),
PCA, LDA, …
- Nắm ñược quy trình phân tích, thiết kế, triển khai một ñồ án nói riêng và một
công việc phức hợp nói chung.
Tuy ñã ñạt ñược một số kết quả nhất ñịnh nhưng trong ñồ án vẫn còn một số tồn tại
như:
- Chương trình ñang cần phải thông qua MATLAB và PC ñể thực hiện
- Số lượng người nhận dạng còn ít.
- Chương trình tách mặt chưa ñáp ứng ñược với ñối tượng có tư thế bất kỳ, các
ñối tượng có tóc phủ mắt, trang phục ñặc biệt (ñeo kính, ñội mũ,…).
- Quá trình trích chọn ñặc tính sử dụng PCA nên mang những nhược ñiểm của
phương pháp PCA. Nhược ñiểm lớn nhất của PCA là không phải trong mọi
trường hợp thì hướng biến thiên mạnh nhất cũng mang nhiều thông tin nhận
dạng nhất
- Thuật toán nhận dạng dựa trên mô hình khoảng cách ngắn nhất chưa thực sự ưu
việt.
- Chương trình chưa xử lý hiệu quả ñối với trường hợp nhận dạng sai do vượt
ngưỡng, các trường hợp mà ñối tượng có tâm trạng thay ñổi mạnh so với mẫu
học (cau có, há miệng,…)
- Quá trình tách mặt và nhận dạng còn phụ thuộc rất nhiều vào ñiều kiện ánh sáng,
môi trường xung quanh.
Từ những tồn tại trên ta có thể xác ñịnh ñược một số hướng phát triển của ñề tài như
sau:
5. Kết luận và hướng phát triển
- 53 -
Hướng phát triển:
- Mở rộng số lượng người cần nhận dạng
- Giải quyết mở rộng các khả năng xử lý của chương trình với các trường hợp
thay ñổi tư thế, trạng thái cảm xúc của ñối tượng và giảm thiểu ảnh hưởng của
phục trang.
- Thử nghiệm, phối hợp các mô hình nhận dạng khác nhau (mạng nơ-rôn,
SVM,…) và các phương pháp nhận dạng ảnh khác (LDA, ICA,…) ñể mang lại
ñộ tin cậy cao hơn cho hệ thống.
- Quy ñịnh ánh sáng tại những nơi có sử dụng hệ thống ñể giảm thiểu sai số nhận
dạng do cường ñộ sáng thay ñổi.
- “Nhúng” hệ thống xuống các hệ vi xử lý ñể ta có ñược một thệ thống chuyên
dụng và không phải phụ thuộc vào PC hay MATLAB.
Với những kết quả ñã ñạt ñược, các tồn tại và phương hướng giải quyết ñã nêu, hệ
thống hoàn thiện có thể ñược ứng dụng vào thực tế. Dựa trên những vấn ñề hiện nay,
ñồ án ñề xuất một số hướng ứng dụng cho hệ thống thu thập và nhận dạng mặt người
như sau:
Nhận dạng online:
- Theo dõi kín ñáo ñối tượng vào ra các khu vực ñặc biệt. Với các phương pháp
hiện có (vân tay, bàn tay, …), ñối tượng luôn chủ ñộng tiếp xúc với thiết bị nhận
dạng. Với hệ thống nhận dạng qua khuôn mặt, có thể thu thập và nhận dạng
ñược ñối tượng một cách kín ñáo.
- Sử dụng ñể kiểm soát vào ra các khu vực có nhiều người ra vào, các ñịa ñiểm
công cộng như sân bay, nhà ga, rạp chiếu phim,… Các phương pháp nhận dạng
khác ñã trình bày thường chỉ sử dụng trong các trường hợp ñặc biệt, số lượng
người ra vào ñược hạn chế (vân tay, bàn tay,…) hoặc phải là thành viên ñặc biệt
ñược cấp thẻ (sử dụng thẻ). Nhận dạng mặt người bằng camera số sẽ giúp cho
người quản lý kiểm soát ñược người vào ra, và khách hàng cũng không bị làm
phiền bởi việc bắt buộc phải kiểm tra vân tay,…
- Kết hợp với thẻ ñể tăng tính an toàn trong các dịch vụ như rút tiền tự ñộng. Sự
kết hợp này có thể hạn chế ñược việc ăn cắp thẻ. Người rút tiền ngoài việc phải
sử dụng thẻ, hệ thống còn ñối chiếu giữa khuôn mặt người ñang rút tiền với
những người ñược phép sử dụng tài khoản ñó. Việc kiểm tra khuôn mặt này sẽ
ñược thực hiện kín ñáo mà không gây phiền nhiễu cho khách hàng.
- Kết hợp với các phương pháp khác ñể có ñược các hệ thống khóa thông minh có
ñộ tin cậy cao.
- …
5. Kết luận và hướng phát triển
- 54 -
Nhận dạng offline:
- Phát hiện ra trong cơ sở dữ liệu các thông tin gần giống với ñối tượng cần xác
ñịnh nhất, trong trường hợp không có số liệu khác như vân tay, bàn tay,… Trong
ñiều kiện không có ñược ñầy ñủ các bộ số liệu vân tay, thì sử dụng nhận dạng
bằng khuôn mặt sẽ giúp nhà ñiều tra khoang vùng ñược ñối tượng.
- Kiểm tra người những người ra vào trong một thời gian như trong ngày, trong
tuần,… Người quản lý tại một thời ñiểm muốn kiểm tra những người ñã vào ra
một khu vực nào ñó (nhà riêng, cơ quan, …), hệ thống sẽ thực hiện việc nhận
dạng tự ñộng dựa trên các hình ảnh ñã thu thập từ trước ñó.
- 55 -
Tài liệu tham khảo
[1] Gonzalez R C., Wood R.E., “Digital Image Processing Using Matlab”, Prentice
Hall, 2004.
[2] Lương Mạnh Bá , Nguyễn Thanh Thủy. “Nhập môn xử lý ảnh số”, ðại học Bách
khoa Hà Nội, 2000
[3] Phạm Thế Bảo, Nguyễn Thành Nhựt, Cao Minh Thịnh, Trần Anh Tuấn, Phan Phúc
Doãn. “Tổng quan các phương pháp xác ñịnh khuôn mặt người”.
[4] Ilker Atalay – Computer Engineer M.Sc. “Face Recognition Using Eigenfaces”,
Istanbul Technical University , January 1996
[5] M. Tunk and A. Pentland. “Face recognition using eigenfaces”, Proc. of IEEE
Conference on Computer vision and Partten Recognition, pp.586-591, June 1991
[6] Lindsay I. Smith. “A tutorial on Principal Components Analysis”, February 26,
2002
[7] Alla Eleyan, Hasan Demirel. “PCA and LDA based Neural Networks for Human
Face Recognition”, Eastern Mediterranean University Northern Cyprus, 2007.
[8] Kamran Etemad ,Rama Chellappa. “Discriminant analysis for recognition of
human face images”, Department of Electrical Engineering and Center for
Automation Research, University of Maryland, College Park,Maryland, 1996
[9] A. Hossein Sahoolizadeh, B. Zargham Heidari, and C. Hamid Dehghan. “A New
Face Recognition Method using PCA, LDA and Neural Network”, Proceeding of
world Academy of Science, Engineering and Technology, Vol 31, 2008.
[10] Michelle M. Mendonça , Juliana G. Denipote, “Illumination Normalization
Methods for Face Recognition”, Universidade de São Paulo, 2006.
[11] Martin D. Levine, Maulin R. Gandhi, Jisnu Bhattacharyya. “Image Normalization
for Illumination Compensation in Facial Images”, Department of Electrical &
Computer Engineering & Center for Intelligent Machines McGill University,
Montreal, Canada, 2004.
[12] P. Campadelli, R. Lanzarotti G. Lipori. “Automatic Facial Feature Extraction for
Face Recognition”, University of Milan, Italy, 2008.
[13] Vo Dinh Minh Nhat, SungYoung Lee. “Image-based Subspace Analysis for Face
Recognition”, Kyung Hee University Korea, 2008.
[14] D. Sidibe, P. Montesinos, S. Janaqi. “A simple and efficient eye detection method
in color images”, LGI2P/EMA - Ales School of Mines, 2007
[15] Các tài liệu về Matlab tại:
Các file đính kèm theo tài liệu này:
- Nghiên cứu xây dựng hệ thống nhận dạng mặt người online.pdf