MỤC LỤC
Danh mục hình vẽ . iii
Lời nói ñầu. iv
Mở ñầu . 1
Chương 1. ðặt vấn ñề . 4
Chương 2. Phân tích hệ thống và các cơ sở lý thuyết . 6
2.1. Tổng quan về ảnh số và xử lý ảnh số . 6
2.1.1. Ảnh số . 6
2.1.2. Xử lý ảnh số . 7
2.2. Thu thập ảnh số . 9
2.3. Nhận dạng mặt người từ ảnh . 9
2.4. Tách mặt người trong ảnh số . 10
2.4.1. Sử dụng ngưỡng màu. 11
2.4.2. Trừ ảnh với nền không ñổi. 12
2.5. Một số phương pháp tiếp cận với nhận dạng mặt người . 12
2.5.1. Nhận dạng dựa trên mối quan hệ giữa các phần tử (Feature Based). 13
2.5.2. Nhận dạng dựa trên xét toàn diện khuôn mặt (Appearance Based). 13
2.6. Nội dung phương pháp PCA . 17
2.7. Sơ ñồ khối và nhiệm vụ từng khối trong hệ thống . 18
2.7.1. Sơ ñồ khối phần cứng . 18
2.7.2. Sơ ñồi khối phần mềm: . 20
Chương 3. Thiết kế chi tiết và triển khai hệ thống. 24
3.1. Thu thập và tách mặt người trong ảnh. 24
3.2. Chuẩn hóa ảnh . 25
3.2.1. Cắt và xoay chuẩn ảnh: . 25
3.3. Trích chọn ñặc tính bằng phương pháp PCA . 29
3.3.1. Quá trình học. 30
3.3.2. Quá trình tạo ñặc tính . 37
3.4. Quá trình nhận dạng . 39
Chương 4. Các kết quả triển khai hệ thống và áp dụng . 41
4.1. Lựa chọn thiết bị và công cụ lập trình . 41
4.1.1. Camera . 41
4.1.2. PC . 41
4.1.3. Công cụ lập trình. 41
- ii -
4.2. Các hàm sử dụng . 41
4.2.1. Khối tách ảnh ñối tượng . 41
4.2.2. Khối tiền xử lý. 42
4.2.3. Khối trích chọn ñặc tính . 42
4.2.4. Khối nhận dạng: . 43
4.3. Giao diện . 44
4.2. Kết quả nhận dạng . 47
4.2.1. Test với bộ dữ liệu có sẵn . 47
4.2.2. Test với bộ dữ liệu ñược lấy từ webcam hệ thống. . 49
Chương 5. Kết luận và hướng phát triển . 52
Tài liệu tham khảo . 55
59 trang |
Chia sẻ: netpro | Lượt xem: 2611 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đồ án Xây dựng một 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
n, nhiều nhiễu, khối lượng tính toán sẽ lớn và ñòi hỏi
nhiều về cấu hình phần cứng.
2. Phân tích hệ thống và các cơ sở lý thuyết
- 12 -
2.4.2. Trừ ảnh với nền không ñổi
Nội dung của phương pháp này là so sánh ảnh khi có người với ảnh không có
người. Sự chênh lệch mức xám giữa hai ảnh thể hiện sự xuất hiện của ñối tượng.
Hai ñiểm ảnh cùng một vị trí trên hai ảnh, nếu hiệu mức xám giữa chúng lớn hơn
ngưỡng cho phép, ta chấp nhận mức xám tại ñiểm ñó có sự thay ñổi và xác ñịnh ñược
ñối tượng.
(a) Ảnh nền (b) Ảnh mới (c) ðối tượng ñược tách
Hình 2.6. Phương pháp trừ ảnh với nền không ñổi.
Ưu ñiểm của phương pháp:
- Phương pháp ñơn giản, thời gian thực hiện ngắn.
- Chỉ cần thực hiện với ảnh xám.
Nhược ñiểm của phương pháp:
- Phạm vi ứng dụng hẹp, chỉ dùng ñược với nền không ñổi.
- ðiều kiện ánh sáng không ñược thay ñổi nhiều giữa các lần chụp.
Từ phân tích ưu nhược ñiểm của 2 phương pháp trên, với ñiều kiện ñầu vào ñược
quy ñịnh là camera ñặt cố ñịnh, ñiều kiện ánh sáng tốt, ñồ án lựa chọn phương pháp
trừ ảnh ñể tách ñối tượng cần nhận dạng.
Sau khi lựa chọn phương pháp ñể tách mặt người ra khỏi ảnh số, ñồ án sẽ tìm hiểu
về một số phương pháp nhận dạng mặt người hiện nay và ưu nhược ñiểm của từng
phương pháp. Dựa trên các yêu cầu ñầu vào, ñồ án sẽ lựa chọn phương án trong các
phương pháp ñó ñể sử dụng trong việc nhận dạng của hệ thống.
2.5. Một số phương pháp tiếp cận với nhận dạng mặt
người
Hai phương pháp tiếp cận với nhận dạng khuôn mặt hiện nay là: Nhận dạng dựa
trên ñặc trưng của các phần tử trên khuôn mặt (Feature Based Face Recognition), và
nhận dạng dựa trên xét tổng thể toàn khuôn mặt (Appearance Based Face
Recognition).
2. Phân tích hệ thống và các cơ sở lý thuyết
- 13 -
2.5.1. Nhận dạng dựa trên mối quan hệ giữa các phần tử (Feature
Based)
ðây là phương pháp nhận dạng khuôn mặt dựa trên việc xác ñịnh các ñặc trưng
hình học của các chi tiết trên một khuôn mặt (như vị trí, diện tích, hình dạng của mắt,
mũi, miệng, khuôn dạng của khuôn mặt,…), và mối quan hệ giữa chúng (ví dụ khoảng
cách của hai mắt, khoảng cách của hai lông mày, khoảng cách từ mũi tới cằm,…).
Ưu ñiểm của phương pháp:
- Phương pháp này gần với cách mà con người sử dụng ñể nhận biết khuôn mặt .
- Với việc xác ñịnh ñặc tính và các mối quan hệ, phương pháp này có thể cho kết
quả tốt trong các trường hợp ảnh có nhiều nhiễu, ảnh bị nghiêng, bị xoay, ánh
sáng thay ñổi.
Nhược ñiểm của phương pháp:
- Việc một xác ñịnh một lúc nhiều ñặc tính và các mối quan hệ ñòi hỏi các thuật
toán phức tạp.
- Nếu ảnh có ñộ phân giải bé, các mối quan hệ giữa cùng một cặp ñặc tính trên
các khuôn mặt ñều rất sát nhau, ñiều này dẫn ñến kết quả nhận dạng không
chính xác. Với ảnh có ñộ phân giải lớn hơn thì khối lượng tính toán sẽ rất lớn,
ñòi hỏi cao về cấu hình phần cứng.
2.5.2. Nhận dạng dựa trên xét toàn diện khuôn mặt (Appearance
Based)
Nội dung chính của hướng tiếp cận này là xem mỗi ảnh có kích thước R C× là một
vec-tơ trong không gian R C× chiều. Ta sẽ tìm một không gian mới có chiều nhỏ hơn,
sao cho khi ñược biểu diễn trong không gian ñó các ñặc ñiểm chính của một khuôn
mặt vẫn không bị mất ñi. Trong không gian mới ñó, các ảnh của cùng một người sẽ tập
hợp lại thành một nhóm gần nhau và cách xa các nhóm khác.
Hai phương pháp thường ñược dùng hiện nay là PCA (Principle Components
Analysis) và LDA (Linear Discriminant Analysis).
2.5.2.1. Nhận dạng bằng PCA
PCA (Principle Components Analysis) là một thuật toán ñể tạo ra một ảnh mới từ
ảnh ban ñầu. Ảnh mới này có kích thước nhỏ hơn rất nhiều so với ảnh ñầu vào và vẫn
mang những ñặc trưng cơ bản nhất của khuôn mặt cần nhận dạng. PCA không cần
phải quan tâm ñến việc phải tìm ra cụ thể các ñặc ñiểm trên khuôn mặt (mắt, mũi,
miệng…) và các mối quan hệ. Tất cả những chi tiết ñó ñều ñược thể hiện ở ảnh mới
ñược tạo ra từ PCA.
2. Phân tích hệ thống và các cơ sở lý thuyết
- 14 -
Mục tiêu của PCA là ảnh mới ñược tạo ra có kích thước nhỏ nhất và chứa nhiều
nhất các ñặc trưng của ảnh khuôn mặt ñầu vào.
Về bản chất, PCA tìm ra một không gian mới theo hướng biến thiên mạnh nhất của
một tập hợp các vec-tơ trong một không gian cho trước. Trong không gian mới, người
ta hy vọng rằng việc phân loại sẽ mang lại kết quả tốt hơn so với không gian ban ñầu.
Hình 2.7. Không gian mới (u1, u2) theo hướng phân bố mạnh nhất của các vector trong không
gian (x1, x2), tìm theo PCA
Hình 2.8. Phân loại theo PCA
Ưu ñiểm của phương pháp PCA:
- Tìm ñược các ñặc tính tiêu biểu cho một khuôn mặt mà không cần phải xác ñịnh
các thành phần và mối liên hệ giữa các thành phần trên khuôn mặt ñó.
- Thuật toán thực hiện tốt với các ảnh ñầu vào có ñộ phân giải cao, do PCA sẽ thu
gọn ảnh ñầu vào thành một ảnh mới có kích thước rất nhỏ.
- Khối lượng tính toán không nhiều.
- PCA có tính mở và có thể kết hợp ñược với các phương pháp khác (như mạng
nơ-rôn, Support Vector Machine – SVM,…) ñể 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
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