ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
ĐÀO VŨ CHIẾN
PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH
THEO HƯỚNG TIẾP CẬN THÀNH PHẦN
LUẬN VĂN THẠC SĨ
NGÀNH CÔNG NGHỆ THÔNG TIN
Hà Nội – 2011
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
ĐÀO VŨ CHIẾN
PHÁT HIỆN MẶT NGƯỜI TRONG ẢNH
THEO HƯỚNG TIẾP CẬN THÀNH PHẦN
Ngành : Công nghệ thông tin
Chuyên ngành : Hệ thống thông tin
Mã số : 60 48 05
LUẬN VĂN THẠC SĨ NGÀNH CÔNG NGHỆ THÔNG TIN
Ngƣời hƣớng dẫn khoa học: PGS. TS. Đỗ Năng Toàn
Hà Nội – 2011
MỤC LỤC
PHẦN MỞ ĐẦU 1
DANH SÁCH TỪ VIẾT TẮT 3
CHƢƠNG 1 KHÁI QUÁT VỀ XỬ LÝ ẢNH VÀ PHÁT HIỆN MẶT NGƢỜI
TRONG ẢNH 4
1.1 Khái quát về xử lý ảnh 4
1.1.1 Xử lý ảnh là gì? 4
1.1.2 Các vấn đề cơ bản trong xử lý ảnh 4
1.1.2.1 Một số khái niệm cơ bản 4
1.1.2.2 Nắn chỉnh biến dạng 5
1.1.2.3 Khử nhiễu 6
1.1.2.4 Chỉnh mức xám 6
1.1.2.5 Trích chọn đặc điểm 6
1.1.2.6 Nhận dạng 7
1.1.2.7 Nén ảnh 10
1.2 Phát hiện mặt ngƣời trong xử lý ảnh 10
1.2.1 Bài toán 10
1.2.2 Những khó khăn của bài toán phát hiện khuôn mặt 11
1.2.2.1 Tƣ thế, góc chụp 11
1.2.2.2 Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt 11
1.2.2.3 Sự biểu cảm của khuôn mặt 12
1.2.2.4 Sự che khuất: 12
1.2.2.5 Điều kiện của ảnh 13
CHƢƠNG 2 PHÁT HIỆN MẶT NGƢỜI TRONG ẢNH THEO HƢỚNG TIẾP CẬN
THÀNH PHẦN 15
2.1 Sử dụng kỹ thuật PCA 15
2.1.1 Các khái niệm cơ bản 15
2.1.1.1 Độ lệch chuẩn 15
2.1.1.2 Phƣơng sai 16
2.1.1.3 Hiệp phƣơng sai 16
2.1.1.4 Ma trận hiệp phƣơng sai 17
2.1.1.5 Ma trận đại số 17
2.1.1.5.1 Eigenvector (Vectơ riêng) 18
2.1.1.5.2 Eigenvalue (Giá trị riêng) 18
2.1.2 Kỹ thuật phân tích thành phần chính (PCA–Principal Components
Analysis) 19
2.1.2.1 Phƣơng pháp 19
2.1.2.2 Eigenface 25
2.1.2.3 Triển khai 25
2.2 Phƣơng pháp sử dụng đặc trƣng Haar kết hợp Adaboost 28
2.2.1 Adaboost 28
2.2.2 Đặc trƣng Haar 31
2.2.3 Hệ thống xác định vị trí khuôn mặt trong ảnh 34
2.3 Dựa trên đặc trƣng không thay đổi 35
2.3.1 Các đặc trƣng khuôn mặt 35
2.3.2 Kết cấu 39
2.3.3 Sắc màu của da 40
2.3.4 Đa đặc trƣng 40
2.4 Dựa trên so khớp mẫu 43
2.4.1 Xác định các mẫu trƣớc 44
2.4.2 Các mẫu bị biến dạng 48
CHƢƠNG 3 CHƢƠNG TRÌNH THỬ NGHIỆM 50
3.1 Bài toán 50
3.2 Hƣớng nghiên cứu 50
3.2.1 Phân loại thành phần khuôn mặt 50
3.2.2 Cấu trúc các bộ nhận dạng 51
3.3 Phân tích, thiết kế 51
3.4 Giao diện và cách sử dụng 54
3.5 Kết quả thử nghiệm 55
3.5.1 Góc chụp so với hƣớng ống kính 55
3.5.2 Kích thƣớc khuôn mặt 57
3.5.3 Các kết quả thực nghiệm khác 57
PHẦN KẾT LUẬN 59
1
PHẦN MỞ ĐẦU
Hơn một thập kỷ vừa qua, thế giới đã chứng kiến sự xuất hiện của rất
nhiều công trình nghiên cứu về bài toán xác định khuôn mặt ngƣời, từ ảnh
đen trắng, xám đến ảnh màu, từ ảnh tĩnh đến những dữ liệu ảnh thu nhận
đƣợc từ camera nhƣ ngày hôm nay. Phát hiện khuôn mặt trong ảnh số là
vấn đề đang đƣợc quan tâm và phát triển. Nhiều hƣớng tiếp cận, nhiều
phƣơng pháp đƣợc nghiên cứu và đề xuất để phát hiện khuôn mặt trong
ảnh hoặc chuỗi ảnh. 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 đen trắng. Cho đến ngày hôm nay bài toán mở rộng cho
ảnh màu, có nhiều khuôn mặt trong cùng một ảnh, có nhiều tƣ thế thay đổi
trong ảnh. Không những vậy mà còn mở rộng cả phạm vi 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 tự nhiên) nhằm đáp ứng nhu cầu thật
sự và rất nhiều của con ngƣời.
Bài toán xác định khuôn mặt ngƣời (Face Detection) là một phần
quan trọng trong bài toán nhận dạng mặt ngƣời, một bài toán liên quan đến
rất nhiều ứng dụng trong thực tế đời sống. Sau đây là một số ứng dụng đã
và đang đƣợc thiết kế:
Hệ thống phát hiện tội phạm: camera đƣợc đặt tại một số điểm công
cộng nhƣ: siêu thị, nhà sách, trạm xe buýt, sân bay, Khi phát hiện đƣợc sự
xuất hiện của các đối tƣợng là tội phạm, hệ thống sẽ gởi thông điệp về cho
trung tâm xử lý.
Hệ thống theo dõi nhân sự trong một đơn vị: giám sát giờ ra vào
của từng nhân viên và chấm công.
Hệ thống giao tiếp ngƣời máy: thay thế việc tƣơng tác giữa ngƣời
và máy theo những cách truyền thống nhƣ: Bàn phím, chuột, thay vào đó
là sử dụng các giao tiếp trực quan: Biểu cảm khuôn mặt, dấu hiệu, cử chỉ
bằng tay (visual input, visual interaction).
Hệ thống tìm kiếm thông tin trên ảnh, video dựa trên nội dung (chỉ
mục theo ngƣời). Chẳng hạn nhƣ: Đài truyền hình Việt Nam (VTV) có một
kho dữ liệu video tin tức khá lớn cần tìm kiếm nhanh những đoạn video
nào có G. Bush hoặc Bin Laden.
2
Các hệ thống bảo mật dựa trên thông tin trắc sinh học: Mặt ngƣời,
vân tay, thay vì xác nhận mật khẩu, khoá,
Đề tài đƣợc tổ chức thành ba chƣơng với nội dung:
Chƣơng 1. Khái quát về xử lý ảnh và phát phát hiện mặt ngƣời
trong ảnh: Giới thiệu tổng quan về các khái niệm căn bản trong lĩnh vực
xử lý ảnh và của bài toán phát hiện mặt ngƣời trong ảnh, xác định bài toán
và những khó khăn gặp phải khi giải quyết bài toán này.
Chƣơng 2. Phát hiện mặt ngƣời trong ảnh theo hƣớng tiếp cận
thành phần: Giới thiệu một số kĩ thuật phát hiện mặt ngƣời trong ảnh theo
hƣớng tiếp cận thành phần.
Chƣơng 3. Chƣơng trình thử nghiệm: Xác định yêu cầu của bài
toán, phân tích thiết kế và giới thiệu chức năng chính, cài đặt thử nghiệm
một chƣơng trình phát hiện mặt ngƣời trong ảnh theo hƣớng tiếp cận
thành phần.
3
DANH SÁCH TỪ VIẾT TẮT
PCA
Principal Components Analysis
SVM
Support vector machine
SAT
Summed Area Table
RSAT
Rotated Summed Area Table
CART
Classification and Regression Trees
SGLD
Self-Guided Langevin Dynamics
QMF
Query Management Facility
PDM
Point Distribution Model
ASM
Active Shape Model
4
CHƢƠNG 1
KHÁI QUÁT VỀ XỬ LÝ ẢNH
VÀ PHÁT HIỆN MẶT NGƢỜI TRONG ẢNH
1.1 Khái quát về xử lý ảnh
1.1.1 Xử lý ảnh là gì?
Con ngƣời thu nhận thông tin qua các giác quan, trong đó thị giác
đóng vai trò quan trọng nhất. Những năm trở lại đây với sự phát triển của
phần cứng máy tính, xử lý ảnh và đồ hoạ đó phát triển một cách mạnh mẽ
và có nhiều ứng dụng trong cuộc sống. Xử lý ảnh và đồ hoạ đóng một vai
trò quan trọng trong tƣơng tác ngƣời máy.
Quá trình xử lý ảnh đƣợc xem nhƣ là quá trình thao tác ảnh đầu vào
nhằm cho ra kết quả mong muốn. Kết quả đầu ra của một quá trình xử lý
ảnh có thể là một ảnh “tốt hơn” hoặc một kết luận.
Hình 1.1: Mô hình quá trình xử lý ảnh
Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnh đƣợc xem
nhƣ là đặc trƣng cƣờng độ sáng hay một dấu hiệu nào đó tại một vị trí nào
đó của đối tƣợng trong không gian và nó có thể xem nhƣ một hàm n biến
P(c
1
, c
2
, , c
n
). Do đó, ảnh trong xử lý có thể xem nhƣ n chiều.
1.1.2 Các vấn đề cơ bản trong xử lý ảnh
1.1.2.1 Một số khái niệm cơ bản
Ảnh và điểm ảnh: Điểm ảnh đƣợc xem nhƣ là dấu hiệu hay cƣờng
độ sáng tại một toạ độ trong không gian của đối tƣợng và ảnh đƣợc xem
nhƣ là một tập hợp các điểm ảnh.
Mức xám, màu: Là số các giá trị có thể có của các điểm ảnh
của ảnh.
5
1.1.2.2 Nắn chỉnh biến dạng
Ảnh thu nhận thƣờng bị biến dạng do các thiết bị quang học và
điện tử.
Hình 1.2: Mô hình việc nắn chỉnh biến dạng
Để khắc phục ngƣời ta sử dụng các phép chiếu, các phép chiếu
thƣờng đƣợc xây dựng trên tập các điểm điều khiển.
Giả sử (P
i
, P
'
i
)
n
i 1
có n các tập điều khiển
Tìm hàm f: P
i
f(P
i
) sao cho:
Giả sử ảnh bị biến đổi chỉ bao gồm: Tịnh tiến, quay, tỷ lệ, biến dạng
bậc nhất tuyến tính. Khi đó hàm f có dạng:
f (x, y) = (a
1
x + b
1
y + c
1
, a
2
x + b
2
y + c
2
)
Ta có:
Để cho φ → min
6
Giải hệ phƣơng trình tuyến tính tìm đƣợc a
1
, b
1
, c
1
Tƣơng tự tìm đƣợc a
2
, b
2
, c
2
Xác định đƣợc hàm f
1.1.2.3 Khử nhiễu
Có 2 loại nhiễu cơ bản trong quá trình thu nhận ảnh
- Nhiễu hệ thống: Nhiễu có quy luật có thể khử bằng các phép biến
đổi.
- Nhiễu ngẫu nhiên: Vết bẩn không rõ nguyên nhân → khắc phục
bằng các phép lọc.
1.1.2.4 Chỉnh mức xám
Nhằm khắc phục tính không đồng đều của hệ thống gây ra. Thông
thƣờng có 2 hƣớng tiếp cận:
- Giảm số mức xám: Thực hiện bằng cách nhóm các mức xám gần
nhau thành một bó. Trƣờng hợp chỉ có hai mức xám thì chính là chuyển về
ảnh đen trắng. Ứng dụng: In ảnh màu ra máy in đen trắng.
- Tăng số mức xám: Thực hiện nội suy ra các mức xám trung gian
bằng kỹ thuật nội suy. Kỹ thuật này nhằm tăng cƣờng độ mịn cho ảnh
1.1.2.5 Trích chọn đặc điểm
Các đặc điểm của đối tƣợng đƣợc trích chọn tuỳ theo mục đích nhận
dạng trong quá trình xử lý ảnh. Có thể nêu ra một số đặc điểm của ảnh
sau đây:
- Đặc điểm không gian: Phân bố mức xám, phân bố xác suất, biên
độ, điểm uốn
7
- Đặc điểm biến đổi: Các đặc điểm loại này đƣợc trích chọn bằng
việc thực hiện lọc vùng (zonal filtering). Các bộ vùng đƣợc gọi là “mặt nạ
đặc điểm” (feature mask) thƣờng là các khe hẹp với hình dạng khác nhau
(chữ nhật, tam giác, cung tròn, )
- Đặc điểm biên và đƣờng biên: Đặc trƣng đƣờng biên của đối
tƣợng rất hữu ích trong việc trích chọn các thuộc tính bất biến và đƣợc
dùng khi nhận dạng đối tƣợng. Các đặc điểm này có thể đƣợc trích chọn
nhờ toán tử gradient, toán tử la bàn, toán tử Laplace, toán tử “chéo không”
(zero crossing),
Việc trích chọn hiệu quả các đặc điểm giúp cho việc nhận dạng các
đối tƣợng ảnh chính xác, với tốc độ tính toán cao và dung lƣợng nhớ lƣu
trữ giảm xuống.
1.1.2.6 Nhận dạng
Xét trên phƣơng diện tổng quát, nhận dạng đối tƣợng là một công
việc đƣợc thực hiện hàng ngày của những sinh vật sống và là khả năng vốn
có và cần thiết của sinh vật để thích nghi với môi trƣờng. Công việc này
đƣợc thực hiện trong trong những tình huống khác nhau nhƣ là tìm kiếm
nguồn thức ăn, di trú, phát hiện ra thú dữ hay là để nhận biết những ngƣời
bạn v v một cách rất hiệu quả. Nhận dạng đối tƣợng đƣợc xem nhƣ là một
khái niệm nhận thức rộng nó có thể là một nhiệm vụ rất đơn giản, ví dụ nhƣ
khi một vi sinh vật biến mất khỏi môi trƣờng không đủ độ pH, hay là
những nhiệm vụ phức tạp đòi hỏi khả năng suy luận, mô tả và hiểu biết
nhất định, ví dụ khi một ngƣời phải tìm một cái kéo từ ngăn thứ hai đếm từ
dƣới lên của một cái tủ.
Nhận dạng tự động (automatic recognition), mô tả đối tƣợng, phân
loại và phân nhóm các mẫu là những vấn đề quan trọng trong thị giác máy,
đƣợc ứng dụng trong nhiều ngành khoa học khác nhau. Tuy nhiên, một câu
hỏi đặt ra là: Mẫu (pattern) là gì? Watanabe, một trong những ngƣời đi đầu
trong lĩnh vực này đã định nghĩa: “Ngƣợc lại với hỗn loạn (chaos), mẫu là
một thực thể (entity), đƣợc xác định một cách ang áng (vaguely defined) và
có thể gán cho nó một tên gọi nào đó”. Ví dụ mẫu có thể là ảnh của vân tay,
ảnh của một vật nào đó đƣợc chụp, một chữ viết, khuôn mặt ngƣời hoặc
một ký đồ tín hiệu tiếng nói. Khi có một mẫu nào đó, để nhận dạng hoặc
phân loại mẫu đó có thể:
8
Hoặc phân loại có mẫu (supervised classification), chẳng hạn phân
tích phân biệt (discriminant analyis), trong đó mẫu đầu vào đƣợc
định danh nhƣ một thành phần của một lớp đã xác định.
Hoặc phân loại không có mẫu (unsupervised classification hay
clustering) trong đó các mẫu đƣợc gán vào các lớp khác nhau dựa
trên một tiêu chuẩn đồng dạng nào đó. Các lớp này cho đến thời
điểm phân loại vẫn chƣa biết hay chƣa đƣợc định danh.
Những ứng dụng của các hệ thống nhận dạng mẫu nói chung và hệ
thống nhận dạng trong xử lý ảnh với dữ liệu hình ảnh là rất lớn và bao trùm
một phạm vi rộng lớn của cuộc sống. Sau đây là một số ví dụ trong một vài
hoạt động chuyên ngành:
Nông nghiệp:
Phân tích cây trồng.
Đánh giá đất trồng.
Thiên văn học:
Phân tích ảnh chụp từ kính viễn vọng.
Tự động hoá quang phổ học.
Sinh học:
Tự động hoá tế bào học.
Đặc trƣng của các nhiễm sắc thể.
Các nghiên cứu di truyền học.
Quản lý công dân:
Phân tích và điều khiển luồng giao thông.
Định mức sự tăng trƣởng của thành phố.
Quản lý kinh tế:
Dự đoán thị trƣờng chứng khoán.
Phân tích hiệu suất của doanh nghiệp.
Kỹ thuật:
Phát hiện lỗi trong những sản phẩm đƣợc chế tạo.
9
Nhận dạng ký tự.
Nhận dạng tiếng nói.
Những hệ thống dẫn đƣờng tự động.
Phân tích sự ô nhiễm.
Địa chất:
Phân loại các loại đá.
Ƣớc lƣợng những tài nguyên khai thác.
Phân tích nguồn tài nguyên địa chất sử dụng những hình ảnh
vệ tinh.
Phân tích địa chấn.
Y học:
Phân tích điện tâm đồ.
Phân tích điện não đồ.
Phân tích những hình ảnh nội khoa.
Quân sự:
Phân tích ảnh chụp không gian.
Phát hiện và phân loại các sóng ra đa và sóng siêu âm.
Tự động phát hiện mục tiêu.
Bảo mật:
Phát hiện các dấu vân tay.
Những hệ thống giám sát và báo động.
Trong các ứng dụng rõ ràng là không thể chỉ dùng có một cách tiếp
cận đơn lẻ để phân loại “tối ƣu” do vậy cần sử dụng cùng một lúc nhiều
phƣơng pháp và cách tiếp cận khác nhau. Do vậy, các phƣơng thức phân
loại tổ hợp hay đƣợc sử dụng khi nhận dạng và nay đã có những kết quả có
triển vọng dựa trên thiết kế các hệ thống lai bao gồm nhiều mô hình
kết hợp.
Việc giải quyết bài toán nhận dạng trong những ứng dụng mới, nảy
sinh trong cuộc sống không chỉ tạo ra những thách thức về thuật giải, mà
còn đặt ra những yêu cầu về tốc độ tính toán. Đặc điểm chung của tất cả
10
những ứng dụng đó là những đặc điểm đặc trƣng cần thiết thƣờng là nhiều,
không thể do chuyên gia đề xuất, mà phải đƣợc trích chọn dựa trên các thủ
tục phân tích dữ liệu.
1.1.2.7 Nén ảnh
Nhằm giảm thiểu không gian lƣu trữ. Thƣờng đƣợc tiến hành theo cả
hai cách khuynh hƣớng là nén có bảo toàn và không bảo toàn thông tin.
Nén không bảo toàn thì thƣờng có khả năng nén cao hơn nhƣng khả năng
phục hồi thì kém hơn. Trên cơ sở hai khuynh hƣớng, có 4 cách tiếp cận cơ
bản trong nén ảnh:
- Nén ảnh thống kê: Kỹ thuật nén này dựa vào việc thống kê tần suất
xuất hiện của giá trị các điểm ảnh, trên cơ sở đó mà có chiến lƣợc mã hoá
thích hợp. Một ví dụ điển hình cho kỹ thuật mã hoá này là *.TIF
- Nén ảnh không gian: Kỹ thuật này dựa vào vị trí không gian của
các điểm ảnh để tiến hành mã hoá. Kỹ thuật lợi dụng sự giống nhau của các
điểm ảnh trong các vùng gần nhau. Ví dụ cho kỹ thuật này là mã
nén *.PCX
- Nén ảnh sử dụng phép biến đổi: Đây là kỹ thuật tiếp cận theo
hƣớng nén không bảo toàn và do vậy, kỹ thuật thƣờng nến hiệu quả hơn.
*.JPG chính là tiếp cận theo kỹ thuật nén này.
- Nén ảnh Fractal: Sử dụng tính chất Fractal của các đối tƣợng ảnh,
thể hiện sự lặp lại của các chi tiết. Kỹ thuật nén sẽ tính toán để chỉ cần lƣu
trữ phần gốc ảnh và quy luật sinh ra ảnh theo nguyên lý Fractal.
1.2 Phát hiện mặt ngƣời trong xử lý ảnh
1.2.1 Bài toán
Phát hiện khuôn mặt ngƣời (Face Detection) là một kỹ thuật máy
tính để xác định các vị trí và các kích thƣớc của các khuôn mặt ngƣời trong
các ảnh bất kỳ (ảnh kỹ thuật số). Kỹ thuật này nhận biết các đặc trƣng của
khuôn mặt và bỏ qua những thứ khác, nhƣ: Toà nhà, cây cối, cơ thể, …
Phát hiện khuôn mặt đƣợc coi nhƣ một giai đoạn quan trọng trong hệ
thống nhận dạng khuôn mặt. Việc xác định chính xác vị trí và kích thƣớc
các khuôn mặt trong ảnh là một trong những yếu tố quyết định để giai đoạn
kiểm tra xem khuôn mặt vừa tìm thấy là ai đƣợc chính xác.
11
1.2.2 Những khó khăn của bài toán phát hiện khuôn mặt
Bài toán nhận dạng mặt ngƣời là bài toán đã đƣợc nghiên cứu từ
những năm 70. Tuy nhiên, đây là một bài toán khó nên những nghiên cứu
hiện tại vẫn chƣa đạt đƣợc kết quả mong muốn. Chính vì thế vấn đề này
vẫn đang đƣợc nhiều nhóm trên thế giới quan tâm nghiên cứu. Khó khăn
của bài toán nhận dạng mặt ngƣời nói chung và bài toán phát hiện khuôn
mặt nói riêng có thể kể nhƣ sau:
1.2.2.1 Tƣ thế, góc chụp
Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi vì góc chụp giữa
camera và khuôn mặt. Chẳng hạn nhƣ: chụp thẳng, chụp nghiêng, chụp từ
trên xuống, chụp từ dƣới lên, Với các tƣ thế khác nhau, các thành phần
trên khuôn mặt nhƣ mắt, mũi, miệng có thể bị khuất một phần hoặc thậm
chí khuất hết.
Hình 1.3: Hƣớng mặt nghiêng
Hình 1.4: Máy ảnh đặt phía trên và sau lƣng ngƣời chụp
1.2.2.2 Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt
Các đặc trƣng nhƣ: Râu mép, râu hàm, mắt kính, có thể xuất hiện
hoặc không. Vấn đề này làm cho bài toán càng trở nên khó hơn rất nhiều.
12
Hình 1.5: Ngƣời đeo kính đen và đội mũ
1.2.2.3 Sự biểu cảm của khuôn mặt
Biểu cảm của khuôn mặt ngƣời có thể làm ảnh hƣởng đáng kể lên
các thông số của khuôn mặt. Chẳng hạn, cùng một khuôn mặt một ngƣời,
nhƣng có thể sẽ rất khác khi họ cƣời hoặc sợ hãi,
Hình 1.6: Một khuôn mặt biểu cảm phức tạp
1.2.2.4 Sự che khuất:
Khuôn mặt có thể bị che khuất bởi các đối tƣợng khác hoặc các
khuôn mặt khác.
Hình 1.7: Khuôn mặt bị che khuất một phần
13
1.2.2.5 Điều kiện của ảnh
Ảnh đƣợc chụp trong các điều kiện khác nhau về: chiếu sáng, về tính
chất camera (máy kỹ thuật số, máy hồng ngoại, ) ảnh hƣởng rất nhiều đến
chất lƣợng ảnh khuôn mặt.
Hình 1.8: Ảnh chụp trong nhà
Hình 1.9: Ảnh chụp ngoài trời
Hình 1.10: Ảnh chụp ngƣợc sáng
14
Hình 1.11: Ảnh bị chói do đèn
Một vài ví dụ cho việc các hệ thống phát hiện và nhận dạng mặt
ngƣời hoạt động không hiệu quả:
Vào năm 2001, Sở cảnh sát Tampa đã lắp đặt một hệ thống camera
có gắn phần mềm nhận diện khuôn mặt tại quận Ybor City vốn nổi tiếng về
các hoạt động về đêm nhằm giảm bớt tỉ lệ tội phạm trong khu vực này.
Nhƣng kế hoạch này đã hoàn toàn thất bại, và nó bị đình chỉ vào năm 2003
do thiếu hiệu quả. Bởi những ngƣời sống trong khu vực này đã đeo mặt nạ
và thực hiện hành vi phạm tội khiến cho camera không thể nhận diện đƣợc
bất kỳ ai.
Sân bay Logan ở Boston cũng đã nhờ những ngƣời tình nguyện thực
hiện hai bài kiểm tra hệ thống nhận diện khuôn mặt riêng biệt tại các điểm
chốt an ninh của sân bay. Sau một khoảng thời gian kiểm tra 3 tháng, kết
quả thu đƣợc thật đáng thất vọng. Theo nhƣ Trung tâm thông tin bảo mật
điện tử, hệ thống này chỉ đạt tỉ lệ chính xác là 61.4%, buộc các nhà quản lý
sân bay phải tính đến những lựa chọn an ninh khác.
15
CHƢƠNG 2
PHÁT HIỆN MẶT NGƢỜI TRONG ẢNH
THEO HƢỚNG TIẾP CẬN THÀNH PHẦN
2.1 Sử dụng kỹ thuật PCA
2.1.1 Các khái niệm cơ bản
Phần này giới thiệu về các khái niệm toán học sẽ đƣợc sử dụng trong
PCA. Các khái niệm đó bao gồm: Độ lệch chuẩn (Standard deviation),
phƣơng sai (variance), hiệp phƣơng sai (covariance), vec tơ riêng
(eigenvector), giá trị riêng (eigenvalue).
2.1.1.1 Độ lệch chuẩn
Để hiểu độ lệch chuẩn, chúng ta cần một tập dữ liệu. Giả sử
ta có tập:
X = [1 2 4 6 12 15 25 45 68 67 65 98]
X là ký hiệu đại diện cho tập số, mỗi số riêng biệt đƣợc ký hiệu X
i
(Ví dụ X
3
= 4). Phần tử đầu tiên là X
1
và n là số lƣợng phần tử của tập hợp.
Khi đó trung bình của mẫu có công thức:
n
X
X
n
i
i
1
X
Là ký hiệu trung bình của mẫu, tuy nhiên trung bình mẫu không
nói lên đƣợc nhiều điều ngoại trừ cho ta biết nó là một điểm giữa. Ví dụ với
hai tập dữ liệu
[0 8 12 20] và [8 9 11 12]
Có trung bình mẫu bằng nhau nhƣng lại khá khác nhau. Sự khác biệt
ở đây chính là khoảng cách của dữ liệu. Và độ lệch chuẩn là đại lƣợng để
đo khoảng cách này. Ta có thể hiểu độ lệch chuẩn là khoảng cách trung
bình từ trung bình mẫu đến các điểm của dữ liệu.
Ta có công thức:
)1(
)(
1
2
n
XX
s
n
i
i
i
16
Tập hợp 1
X
()
()
2
0
8
12
20
-10
-2
2
10
100
4
4
100
Total
208
Divided by (n-1)
69.33
Square Root
8.3266
Tập hợp 2
X
i
(
)
(
)
2
8
9
11
12
-2
-1
1
2
4
1
1
4
Total
10
Divided by (n-1)
3.333
Square Root
1.8257
Ta có thể dễ dàng nhận thấy tập dữ liệu 1 có độ lệch chuẩn lớn hơn
có khoảng cách lớn hơn tập dữ liệu 2.
2.1.1.2 Phƣơng sai
Phƣơng sai là một đại lƣợng khác dùng để đo khoảng cách của dữ
liệu. Ta có công thức:
.
)1(
)(
1
2
2
n
XX
s
n
i
i
Dễ thấy phƣơng sai chính là bình phƣơng độ lệch chuẩn.
2.1.1.3 Hiệp phƣơng sai
Ta thấy rằng 2 đại lƣợng độ lệch chuẩn và phƣơng sai chỉ sử dụng
đƣợc trong 1 chiều. Trong thực tế dữ liệu có thể có rất nhiều chiều. Một ví
dụ đơn giản ta có dữ liệu về cân nặng và điểm số của toàn bộ sinh viên
trong lớp K15-T4. Đối với dữ liệu này, độ lệch chuẩn và phƣơng sai chỉ
tính đƣợc trên từng chiều riêng biệt và ta không thấy đƣợc mối liên hệ giữa
2 chiều này.
17
Tƣơng tự phƣơng sai, hiệp phƣơng sai là đại lƣợng đo sự biến thiên
giữa 2 chiều. Nếu tính hiệp phƣơng sai giữa 1 chiều với chính nó ta đƣợc
phƣơng sai của chiều đó. Nếu tập dữ liệu có 3 chiều x, y, z ta có thể tính
hiệp phƣơng sai của từng cặp chiều (x, y), (y, z), (z, x). Công thức của hiệp
phƣơng sai tƣơng tự công thức của phƣơng sai. Công thức của phƣơng sai
đƣợc khai triển nhƣ sau:
)1(
)()(
)var(
1
n
XXXX
X
i
N
I
Và công thức của hiệp phƣơng sai:
)1(
)()(
),cov(
1
n
YYXX
YX
i
N
I
i
Từ công thức hiệp phƣơng sai ta thấy, nếu cov(X, Y) dƣơng thì X, Y
đồng biến, cov(X, Y) âm thì X, Y nghịch biến, nếu bằng 0 thì X, Y độc lập.
2.1.1.4 Ma trận hiệp phƣơng sai
Hiệp phƣơng sai đó sự biến thiên giữa 2 chiều, do đó đối với tập dữ
liệu có n chiều ta có
2)!*2(
!
n
n
giá trị hiệp phƣơng sai khác nhau. Để thuận
tiện cho việc tính toán ta biểu diễn các giá trị này thông qua một ma trận
gọi là ma trận hiệp phƣơng sai. Định nghĩa của ma trận nhƣ sau:
)),cov(,(
,, jijiji
nxn
DimDimccC
Trong đó
nxm
C
là 1 ma trận với n hàng, n cột và Dim
x
là chiều thứ
x. Ví dụ ma trận hiệp phƣơng sai của 1 tập dữ liệu có 3 chiều x, y, z:
=
(, )
(, )
(, )
,
(, )
(, )
(, )
(, )
(, )
2.1.1.5 Ma trận đại số
Phần này giới thiệu về 2 khái niệm là nền tảng đƣợc sử dụng trong
PCA đó là vector riêng (eigenvector) và giá trị riêng (eigenvalue).
2
2
3
1
1
3
=
11
5
2
2
3
1
3
2
=
12
8
= 4
3
2
Hình 2.1: Ví dụ về 1 non-eigenvector và 1 eigenvector
18
2
3
2
=
6
4
2 3
2 1
6
4
=
24
16
= 4
6
4
Hình 2.2: Ví dụ về 1 eigenvector có tỉ lệ khác vẫn 1 là eigenvector
2.1.1.5.1 Eigenvector (Vectơ riêng)
Ta có thể nhân 2 ma trận với điều kiện kích cỡ phù hợp và
eigenvector là 1 trƣờng hợp đặc biệt của phép nhân này. Quan sát 2 phép
nhân ma trận với vector trên hình (2.1). Ở ví dụ thứ nhất vector kết quả
không phải là một bội số của vector gốc trong khi ở ví dụ thứ 2 vector kết
quả bằng 4 lần vector gốc. Ta thấy rằng vector
3
2
trong ví dụ 2.2 biểu diễn
1 mũi tên từ điểm (0, 0) đến điểm (3, 2) và ma trận còn lại đƣợc hiểu là ma
trận chuyển đổi. Nếu ta nhân ma trận này về bên trái của vector thì vector
mới nhận đƣợc chính là vector cũ bị tịnh tiến đi một lƣợng. Đó là tính biến
đổi của vector riêng.
Các tính chất của vector riêng:
Chỉ các ma trận vuông (n x n) mới có vector riêng.
Không phải mọi ma trận vuông đều có vector riêng.
Nếu 1 ma trận vuông (n x n) có vector riêng thì sẽ có n vector
riêng.
Nếu nhân vector riêng với 1 số thì kết quả sau khi nhân với ma
trận chuyển đổi, vector kết quả vẫn là vector ban đầu
Tất cả các vector riêng của 1 ma trận đều trực giao với nhau
2.1.1.5.2 Eigenvalue (Giá trị riêng)
Giá trị riêng là một khái niệm liên quan chặt chẽ đến vector riêng.
Thực tế chúng ta đã thấy 1 giá trị riêng trong hình 2.1. Chú ý trong cả 2 ví
dụ trên, số đƣợc nhận với 2 vector riêng bằng nhau và bằng 4; 4 đƣợc gọi là
giá trị riêng ứng với 1 vector riêng (2 vector riêng trong 2 ví dụ trên là
tƣơng đƣơng nhau). Giá trị riêng và vector riêng luôn đi với nhau thành
một cặp.
19
2.1.2 Kỹ thuật phân tích thành phần chính (PCA–Principal
Components Analysis)
2.1.2.1 Phƣơng pháp
Giả sử ta có các quan sát về p biến ngẫu nhiên. Chúng ta tìm hiểu,
nhƣ sự cố gắng để đơn giản tình hình, xem lúc nào thì có thể tìm đƣợc p
biến mới
p
, ,,
21
không tƣơng quan với nhau và có thể biểu diễn tuyến
tính qua các biến cũ. Dĩ nhiên là chúng ta phải đòi hỏi sự thay đổi biến số
này không làm mất thông tin về các biến ban đầu. Phân tích thành phần
chính là một phƣơng pháp nhằm mục đích nhƣ vậy. Nó dựa vào phân tích
cấu trúc của ma trận hiệp phƣơng sai của vector ngẫu nhiên X thông qua
việc phân tích các tổ hợp tuyến tính của các thành phần của nó. Mục tiêu cơ
bản của phân tích thành phần chính là:
Rút gọn số liệu.
Biểu diễn và giải thích tập số liệu.
Việc phân tích các thành phần chính thƣờng phát hiện ra các mối
quan hệ tiềm ẩn trong các thành phần và cho phép ta giải thích các mối
quan hệ đó. Hơn nữa, việc phân tích các thành phần chính là một giai đoạn
trung gian của các nghiên cứu khác, ví dụ nhƣ phân tích hồi quy, phân tích
nhân tố thông qua các thành phần chính.
Một vấn đề đƣợc đặt ra của việc phân tích thành phần chính là số
thành phần chính chủ yếu, hay nói cách khác là cần phải giữ lại bao nhiêu
thành phần chính giải thích các vấn đề liên quan tới thành phần chính.
Thông thƣờng các thành phần chính ứng với các giá trị riêng
i
rất
nhỏ (
i
0
) không đóng vai trò gì trong phân tích số liệu và ta có thể loại
đi. Theo ngôn ngữ về sự khôi phục thông tin về các số liệu ban đầu dựa
trên các dự báo tuyến tính của các thành phần
p
XX , ,
1
của vector X dựa
trên các thông tin về quan sát các thành phần chính
p
YY , ,
1
ta chỉ cần giữ lại
k thành phần chính nếu
p
k
1
1
đủ lớn ( Ví dụ:
% 97%,95
).
Dựa vào cấu trúc của các thành phần chính, ngƣời ta có thể giải thích
vai trò của các biến X
i
trong các thành phần chính đó và từ đó có một sự lý
giải về vai trò của các nhân tố trong tự nhiên và xã hội.
20
PCA là một công cụ thống kê đã đƣợc xây dựng trong các ứng dụng
nhận dạng mặt ngƣời và nén ảnh, ngoài ra PCA còn là một công cụ đƣợc sử
dụng phổ biến trong việc tìm mẫu cho dữ liệu nhiều chiều.
Các bước thực hiện:
Bƣớc 1: Chuẩn bị dữ liệu.
Ví dụ:
x
y
Data =
2.5
0.5
2.2
1.9
3.1
2.3
2
1
1.5
1.1
2.4
0.7
2.9
2.2
3.0
2.7
1.6
1.4
1.6
0.9
Bƣớc 2: Trừ dữ liệu cho kỳ vọng
x
y
Data Adjust =
.69
1.31
.39
.09
1.29
.49
.19
81
31
71
.49
-1.21
.99
.29
1.09
.79
31
81
31
-1.01
21
Hình 2.3: Mô tả dữ liệu đầu vào trên mặt phẳng 2 chiều
Bƣớc 3: Tính ma trận hiệp phƣơng sai
=
. 616555556 . 615444444
. 615444444 . 716555556
Bƣớc 4: Tính các vector riêng (eigenvector) và giá trị riêng
(eigenvalue)
=
. 0490833989
1.28402771
=
.735178656
. 677873399
.677873399
.735178656
Bƣớc 5: Chọn thành phần chính
o Ta giữ lại k vector riêng với k giá trị k riêng lớn nhất, thể hiện
bằng vector đặc trƣng ( feature vector ).
FeatureVector = ( eigenvector
1
, , eigenvector
k
)
Trong ví dụ