MỤC LỤC
1
Mở đầu
Mọi người có thể dễ dàng nhìn thấy vị trí tất cả các khuôn mặt trong ảnh
và phân biệt được mọi người trong ảnh là người mình đã quen biết hay
không. Tuy nhiên, trong lĩnh vực thị giác máy tính, kỹ thuật máy tính xác
định chính xác vị trí, kích thước khuôn mặt trong một ảnh bất kỳ là một vấn
đề vô cùng khó khăn. Hơn một thập kỷ qua có 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 như ngày hôm nay. 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ực tế
và rất nhiều của con người.
Trong thực tế, các ứng dụng của việc dò tìm và nhận dạng khuôn mặt
người được triển khai trong nhiều lĩnh vực quan trọng, nhất là trong lĩnh vực
an ninh. Tuy nhiên những kết quả đã đạt được hiện nay chỉ có độ chính xác
nhất định, chưa đạt được độ chính xác cao. Ảnh thu được phụ thuộc rất lớn
vào nhiều điều kiện: độ chiếu sáng, khung cảnh xung quanh, quần áo đang
mặc trên người,… Việc tìm ra các tập luật chặt chẽ của khuôn mặt để xác
định vị trí của nó trong ảnh rất khó khăn. Từ các kết quả nghiên cứu cho
thấy nếu tập luật quá chặt chẽ sẽ dò tìm thiếu các khuôn mặt trong ảnh,
ngược lại nếu tập luật đơn giản sẽ dò tìm sai một số vị trí không phải là
khuôn mặt. Bên cạnh đó, cho đến nay việc mô hình hoá gương mặt một cách
tổng quát là một công việc không hề đơn giản. Vẫn chưa có một nghiên cứu
2
nào trả lời chính xác câu hỏi: đâu là đặc trưng thực sự để phân biệt hai
gương mặt với nhau?
Trong phạm vi đề tài đã xây dựng chương trình thực hiện dò tìm vị trí
các khuôn mặt trong ảnh có màu nền phức tạp và nhận dạng ảnh khuôn mặt
dò tìm được bằng phương pháp phân tích thành phần chính (PCA –
Principal Components Analysis). Kết quả nhận dạng chỉ tương đối chính xác
trong tập dữ liệu nhỏ (dưới 20 người) và trong điều kiện môi trường ràng
buộc (trong văn phòng, nhà ở,…). Vì vậy trong thời gian tới em rất mong
được sự đóng góp ý kiến của các thầy, cô giáo và các bạn để đề tài có kết
quả cao hơn, có thể triển khai các ứng dụng trong thực tế.
Trong quá trình thực hiện em xin chân thành cảm ơn thầy giáo đã tận
tình hướng dẫn, chỉ bảo từng nội dung của đề tài, các thầy, cô giáo khoa
Công Nghệ Thông Tin đã có nhiều giúp đỡ chuyên sâu về công nghệ xử lý
ảnh, để em có thể hoàn thành nội dung của đồ án.
4
Chương 1. Giới thiệu bài toán nhận dạng mặt người
Trong thế giới ngày nay, với sự phát triển mạnh mẽ của khoa học kỹ
thuật số và mạng toàn cầu, vấn đề đảm bảo an toàn về thông tin cũng như
vật chất trở nên ngày càng quan trọng. Việc làm giả ảnh, hộ chiếu, giấy tờ
về tài chính, thẻ tín dụng, tem bảo vệ, mã vạch,…. để vượt biên mua vũ khí,
tiến hành các nghiệp vụ ngân hàng, hợp pháp hoá thu nhập.
Phần lớn các hệ thống thông tin hiện nay các thông tin xác thực người
truy cập không đặc trưng cho bản thân họ và chỉ là những gì họ đang sở
hữu: số chứng minh thư nhân dân, chìa khoá, mật mã, thẻ tín dụng hoặc họ
tên. Rõ ràng các thông tin hay vật dụng này không mang tính đặc trưng mà
chỉ mang tính xác thực với người sử dụng, nếu chúng bị đánh cắp hoặc sao
chép thì kẻ trộm hoàn toàn có quyền truy cập và sử dụng hệ thống. Hiện nay
các công nghệ hiện đại đã cho phép việc xác thực dựa vào bản chất của từng
cá nhân.
Nhận dạng gương mặt là một trong số các phương pháp nhận dạng dựa
vào đặc tính sinh lý có nhiều ứng dụng quan trọng và thuận tiện khi sử
dụng. Ngày nay nhận dạng mặt người đã được quan tâm và được coi như là
nhất trong lĩnh vực nhận dạng ảnh. Một gương mặt người không chỉ là đối
tượng ba chiều mà còn là một thực thể mang tính động rất cao. Ngoài ra,
nhận dạng mặt người còn phụ thuộc vào nhiều yếu tố: chất lượng ảnh của
thiết bị thu, nền phức tạp, sự dịch chuyển, xoay theo ba chiều, cảm xúc thể
hiện trên khuôn mặt, Hiện nay chất lượng của các hệ thống dò tìm và nhận
dạng ảnh khuôn mặt người chưa cao. Người ta vẫn chưa tìm ra được phương
pháp trích chọn các đặc trưng của khuôn mặt mà vẫn chỉ sử dụng các đặc
trưng của ảnh. Một số phương pháp được triển khai ứng dụng nhưng tốc độ
6
xử lý, nhận dạng ảnh còn chậm, không đáp ứng thời gian thực. Do đó vẫn
khó có thể triển khai các ứng dụng thực tế.
Đề tài tiến hành xây dựng ứng dụng có thể tự động dò tìm toàn bộ vị trí
các khuôn mặt trong ảnh lớn phục vụ cho quá trình lấy mẫu huấn luyện và
mẫu nhận dạng cho hệ thống nhận dạng mặt người, nhận dạng các khuôn
mặt đã dò tìm được.Việc định vị chính xác vị trí khuôn mặt và tìm một số
điểm đặc trưng trên khuôn mặt có ý nghĩa quyết định đến hiệu quả của hệ
thống nhận dạng mặt người. Từ đó áp dụng vào các ứng dụng thực tế: hệ
thống chống trộm, quản lý nhân công bằng ảnh thẻ,
Cấu trúc điển hình của hệ thống nhận dạng mặt người gồm có 2 bộ phận
chính:
+ Bộ dò tìm (Face Image Detector): có nhiệm vụ xác định vị trí của
gương mặt trong một ảnh bình thường.
+ Bộ phận nhận dạng hay phân lớp gương mặt (Face Recognizer): để xác
định người có gương mặt tương ứng là ai trong cơ sở dữ liệu.
Để xây dựng một hệ thống nhận dạng mặt người thường thực hiện các
bước sau:
1.1: Tiền xử lý (Pre-Processing)
Giai đoạn này để nâng cao chất lượng của ảnh số giúp cho việc phát hiện
vị trí mặt người và quá trình nhận dạng đạt hiệu quả hơn. Các công việc
trong giai đoạn này có thể là: chuẩn hoá kích cỡ ảnh (Image size
Nhận dạng/
Loại bỏ
Tách khuôn mặt
CSDL mặt
người
Cập nhật CSDL
Hình 1.1: Mô hình hệ thống nhận dạng mặt người
9
Chương 2: Một số vấn đề cơ bản về xử lý ảnh số
2.1: Một số khái niệm cơ bản
.Pixel (picture element - điểm ảnh )
Ảnh trong thực tế là một ảnh liên tục về không gian và giá trị độ sáng.
Quá trình thu nhận ảnh số là quá trình số hoá ảnh. Đó là quả trình biến đổi
tín hiệu liên tục thành tín hiệu rời rạc. Một ảnh khi được số hoá là tập hợp
các điểm ảnh, nó được biểu diễn bởi mảng 2 chiều I(n,p) trong đó n- số
dòng, p- số cột. Ta nói ảnh gồm nxp điểm ảnh, ký hiệu I(x, y) là giá trị điểm
ảnh tại vị trí dòng y cột x.
. Ảnh đen trắng, ảnh đa mức xám, ảnh màu
- Ảnh đen trắng, ảnh đa cấp xám: gồm 2 màu (đen, trắng), người ta phân
các mức độ (L) đen trắng như sau:
+L=2: ảnh gồm 2 mức, mức 0 ứng với màu tối, mức 1 ứng với màu sáng.
Ảnh này gọi là ảnh nhị phân. Mỗi điểm ảnh được mã hoá trên 1 bit.
+L>2: Ảnh đa mức xám, việc xác định số mức phụ thuộc vào tiêu chuẩn
lượng hoá, L thường được chọn là 32, 64, 126, 256. Thường sử dụng mức
256, mỗi điểm ảnh được mã hoá bằng 8 bit (2
8
= 256).
- Ảnh màu: ảnh màu là ảnh được tổ hợp từ 3 màu cơ bản: Red (đỏ),
Green (xanh lục), Blue (xanh lơ). Mỗi điểm ảnh gồm 3 thành phần màu cơ
bản:R, G, B. Mỗi màu phân thành L cấp khác nhau (L thường là 256). Như
f(i, j)=(B(i, j), G(i, j), R(i, j)).
Giá trị điểm ảnh tại điểm (i, j) được tính:
f(i,j) = h (B(i, j), G(i, j), R(i, j))= B(i,j)*256
2
+ G(i, j)*256 + R(i, j).
Ví dụ ma trận biểu diễn ảnh màu kích thước 3x3 như sau
=
255) 0, (255, 0) 0, (0, 255) 128, (128,
100) 100, (100, 255) 255, (255, 255) 0, (200,
255,255) (0, 0) 0, (128, 0) 0, (255,
),( yxf
2.3. Phân tích ảnh trên các không gian màu khác nhau
Không gian màu là một chỉ số kỹ thuật của một hệ toạn độ màu 3 chiều
và tập các màu nhỏ thành phần có thể trông thấy được trong hệ thống toạ độ
màu thuộc một gam màu đặc trưng. Ví dụ không gian màu RGB ( Red,
Green, Blue ): là một đơn vị tập các màu thành phần sắp xếp theo hình lập
phương của hệ trục toạ độ đề các.
Mục đích của các không gian màu là cho phép các chỉ số kỹ thuật quy
ước của một số loại màu sắc thích hợp với các màu sắc của một số gam màu
khác. Chúng ta có thể thấy trong mô hình màu này, không gian màu là tập
giá trị màu trong không gian RGB. Do đó ta có thể phân tích ảnh màu theo
từng thành phần cơ bản. Ví dụ dưới đây là một minh hoạ:
Hình 2.2: Phân tích ảnh màu ra 3 thành phần màu R, G, B
. Không gian màu HSL
Mô hình màu HSL (Hue, Saturation, Luminace - sắc màu, độ sáng, độ
bão hoà) được xác định bởi tập hình chóp 6 cạnh đôi của không gian hình
trụ như hình vẽ:
Các màu được xác định theo thứ tự ngược chiều kim đồng hồ: màu đỏ,
màu vàng, màu lục, màu xanh tím, màu lam và màu đỏ tươi.
Cyan
White
Red
YellowGreen
MagentaBlue
Black
H
S
L
Hình 2.3: Mô hình màu HSL
13
Hình 2.4: Các màu trong mô hình HSL
Không gian màu HSL là một không gian màu xây dựng định hướng theo
trực giác của con người về tông màu, sắc độ và sắc thái mỹ thuật nên có tính
dễ sử dụng.
Sắc màu là góc quanh trục đứng của hình chóp 6 cạnh đôi với màu đỏ tại
gốc 0
0
. Sự bão hoà được đo xung quanh trục đứng từ 0 trên trục đến 1 trên
bề mặt. Độ sáng ( lighness)=0 cho màu đen (tại điểm mút thấp nhất của hình
chop 6 cạnh đôi) và =1 cho màu trắng (tại điểm mút cao nhất). Tất cả các
Lam Đỏ tươi
Trắng
C
1
C
2
C
3
Tiêu chuẩn 601 0.2989 0.5866 0.1145
Tiêu chuẩn 709 0.2126 0.7152 0.0722
ITU 0.2220 0.7067 0.0713
Không gian màu này hiện nay được dùng khá nhiều trong phân tích ảnh
màu. Từ một bức ảnh gốc ta có thể phân tích ảnh theo các thành phần cơ
bản. Dưới đây là một ví dụ minh hoạ điều đó.
Hình 2.5: Phân tích ảnh màu ra các thành phần màu Y, Cb, Cr
Các giá trị của Cb và Cr sử dụng phân đoạn tách các điểm ảnh có sắc
màu như màu da người như sau:
{138 < Cr < 178; 299<Cb+ 0.6Cr<215} và 0 ≤ Cb, Cr ≤ 255
15
Chương 3: Dò tìm khuôn mặt trong ảnh
3.1: Một số phương pháp xác định vị trí khuôn mặt
Có nhiều nghiên cứu tìm phương pháp xác định khuôn mặt người, từ ảnh
xám đến ngày nay là ảnh màu. Dựa vào tính chất của các phương pháp xác
định khuôn mặt người trên ảnh. Các phương pháp này được chia làm bốn
hướng tiếp cận chính. Ngoài bốn hướng này, nhiều nghiên cứu có khi liên
quan đến không những một hướng tiếp cận mà có liên quan nhiều hơn một
hướng chính:
- Hướng tiếp cận dựa trên tri thức: Mã hóa các hiểu biết của con người
về các loại khuôn mặt người thành các luật. Thông thường các luật mô tả
quan hệ của các đặc trưng.
đường viền của tóc được trích bằng phương pháp xác định cạnh. Trên cơ sở
các đặc trưng này, xây dựng một mô hình thống kê để mô tả quan hệ của các
đặc trưng này và xác định sự tồn tại của khuôn mặt trong ảnh. Một vấn đề
của các thuật toán theo hướng tiếp cận đặc trưng cần phải điều chỉnh cho
phù hợp điều kiện ánh sáng, nhiễu, và bị che khuất. Đôi khi bóng của khuôn
mặt sẽ tạo thêm cạnh mới, mà cạnh này lại rõ hơn cạnh thật sự của khuôn
mặt, vì thế nếu dùng cạnh để xác định sẽ gặp khó khăn.
- Hướng tiếp cận dựa trên so khớp mẫu: Dùng các mẫu chuẩn của khuôn
mặt người (các mẫu này được chọn lựa và lưu trữ) để mô tả cho khuôn mặt
người hay các đặc trưng khuôn mặt (các mẫu này phải chọn làm sao cho
tách biệt nhau theo tiêu chuẩn mà các tác giả định ra để so sánh). Các mối
tương quan giữa dữ liệu ảnh đưa vào và các mẫu dùng để xác định khuôn
mặt người.
Trong so khớp mẫu, các mẫu chuẩn của khuôn mặt (thường là khuôn mặt
được chụp thẳng) sẽ được xác định trước hoặc xác định các tham số thông
17
qua một hàm. Từ một ảnh đưa vào, tính các giá trị tương quan so với các
mẫu chuẩn về đường viền khuôn mặt, mắt, mũi và miệng. Thông qua các giá
trị tương quan này mà các tác giả quyết định có hay không có tồn tại khuôn
mặt trong ảnh. Hướng tiếp cận này có lợi thế là rất dễ cài đặt, nhưng không
hiệu quả khi tỷ lệ, tư thế, và hình dáng thay đổi. Nhiều độ phân giải, đa tỷ lệ,
các mẫu con, và các mẫu biến dạng được xem xét thành bất biến về tỷ lệ và
hình dáng.
- Hướng tiếp cận dựa trên diện mạo: Trái ngược hẳn với so khớp mẫu,
các mô hình (hay các mẫu) được học từ một tập ảnh huấn luyện trước đó.
Sau đó hệ thống (mô hình) sẽ xác định khuôn mặt người. Một số tác giả còn
gọi hướng tiếp cận này là hướng tiếp cận theo phương pháp học.
Trái ngược với các phưong pháp so khớp mẫu với các mẫu đã được định
nghĩa trước bởi những chuyên gia, các mẫu trong hướng tiếp cận này được
học từ các ảnh mẫu. Một các tổng quát, các phương pháp theo hướng tiếp
- Eigenface (khuôn mặt riêng)
- Hướng tiếp cận dựa trên phân bố
- Mạng Neural
- SVM (Support Vector Machine): dùng huấn luyện để phân loại theo
hàm đa thức. Trong khi các phương pháp huấn luyện mạng (mạng Bayes,
mạng Neural, mạng RBF) đều dùng tiêu chí cực tiểu lỗi huấn luyện (rủi
ro do kinh nghiệm), còn SVM dùng quy nạp (tối thiểu rủi ro cấu trúc),
mục tiêu là làm tối thiểu một bao bên trên lỗi tổng quát.
- Mạng lọc thưa (Sparse Network of Windows)
- Phân loại Bayes
- Mô hình Markov ẩn
- Tiếp cận theo lý thuyết thông tin
3.2: Phương pháp dò tìm khuôn mặt dựa trên sắc màu da
19
3.2.1: Mô tả phương pháp
Mục đích của việc xác định các điểm ảnh màu da người là phân ngưỡng
tách các điểm ảnh thuộc vùng da người trong ảnh. Từ ảnh được phân
ngưỡng ta có thể áp dụng các thuật toán dò tìm để xác định vị trí của khuôn
mặt trong ảnh. Thông thường để giải quyết vấn đề trên, người ta xem xét
một độ đo để đo khoảng cách các điểm ảnh màu đến sắc thái của màu da.
Phương pháp dò tìm khuôn mặt dựa trên sắc màu da gồm có 3 giai đoạn
như sau:
1. Xây dựng mô hình màu da người
2. Phân ngưỡng tách các điểm ảnh màu da người ra khỏi các màu khác
trong ảnh. I(x,y)=1 nếu là màu da, ngược lại bằng 0.
3. Dò tìm các khuôn mặt trong ảnh đã được phân ngưỡng.
Việc dò tìm khuôn mặt trong ảnh đã được phân ngưỡng tương đối đơn
giản. Định nghĩa min_size và max_size là kích thước nhỏ nhất và lớn nhất
của cửa sổ bao khuôn mặt (chỉ dò tìm các khuôn mặt có kích thước trong
khoảng [min_size, max_size]). Ảnh sau khi phân ngưỡng được quét theo
3.2.2: Phạm vi vùng màu da
Một phương thức cơ bản là xây dựng một số điều kiện biên để kiểm tra
một điểm ảnh có thuộc điều kiện đó thì điểm ảnh đó có thể là da người. Có
nhiều cách để xây dựng, có thể thu thập các điểm ảnh mình biết chắc là da
người rồi từ đó xây dựng điều kiện. Có rất nhiều nghiên cứu theo hướng này
và cho kết quả khả quan. Dưới đây là một số công thức thực nghiệm để đánh
giá điểm ảnh có cùng kết quả với màu da người:
>>>
>
>>>
BR &G R & 15|G-R|
(1) 15B} G, min{R, - B} G, max{R,
20B & 40G & 95R
<>
<>
<>
60Cr & 10Cr
(2) 10.3Cb & -60b
522Y & 45
C
* Bảng tra cứu đã được chuẩn hoá
Một vài thuật toán xác định khuôn mặt và theo vết khuôn mặt dùng biểu
đồ để phân đoạn màu da. Thường chỉ dùng duy nhất mặt phẳng màu trong
không gian màu để xử lý. Sau khi huấn luyện, biểu đồ sẽ được chuẩn hoá để
có thể được phân bố xác suất rời rạc:
Norm
cskin
cP
skin
][
)( =
(3).
Với skin(c) là biểu đồ của từng kênh màu, tương ứng với véc tơ màu c và
Norm là các giá trị được chuẩn hóa (tổng của các giá trị của biểu đồ được
chuẩn hoá). Trong không gian màu RGB, nếu dùng cả 3 giá trị R, G, B thì c
∈
[0, 256
3
], số lượng c khoảng 16,7 triệu giá trị. Ta có thể giảm số lượng c
bằng cách dùng phân loại Bayes.
* Phân loại Bayes
23
Từ các mô hình histogram (biểu đồ) da người và không phải da người
qua huấn luyện (công thức 3), ta xây dựng một phân loại điểm ảnh có phải
màu da hay không. Đây là phân loại nhị phân, dựa trên xác suất điều kiện
P(skin|c) theo luật Bayes từ giá trị P
skin
(c) đã có:
(4)
)()|()()|(
¬
nếu tỷ lệ này lớn hơn ngưỡng θ, thì điểm ảnh này có màu là màu da
người.
* Ánh xạ tự tổ chức
Ánh xạ tự tổ chức (Sefl – Organizing Map - SOM) được Kohone đề
xuất, và nó đã trở thành một trong những loại phổ biến hiện nay - mạng
Neural nhân tạo không giám sát. Phương pháp xác định màu da dựa trên cơ
sở SOM có 2 cách: một là chỉ dùng thông tin về màu da, cái thứ 2 là dùng cả
2 thông tin về màu da và thông tin không phải màu da, trên nhiều không
gian màu như: NCC, HSL, HSV để kiểm tra. Theo các kết quả thực nghiệm
thì phương pháp SOM dùng để xác định màu da người cho kết quả không
tốt bằng phương pháp dùng histogram trên không gian màu RGB với tập dữ
liệu [0, 256
3
]. Tuy nhiên phương pháp này không cần nhiều dữ liệu như
phương pháp histogram và hiệu quả về mặt thời gian khi xử lý ảnh trong
thời gian thực.
24
3.2.4: Mô hình phân bố màu da có tham số
* Gauss
Có thể dùng hàm mật độ xác suất (probability density function - pdf)
Gauss có dạng ellipse để mô hình hóa phân bố màu da người do khi quan sát
trên biểu đồ các tác giả thấy phân bố của màu da người gần giống phân bố
Gauss [3], được định nghĩa theo công thức 6.
(6)
)(
1
)(
2
1
n
j
js
c
n
1
1
µ
(7)
∑
=
−−
−
=∑
n
j
T
sjsjs
cc
n
1
))((
1
1
µµ
Với n là tổng số mẫu để huấn luyện màu da người, các mẫu là c
j
. P(c |
skin) là xác suất có thể dùng để xem màu c gần giống màu da người hay
không, hoặc dùng khoảng cách Mahalanobis từ véc tơ màu c đến giá trị