Tải bản đầy đủ (.doc) (32 trang)

Đồ án tốt nghiệp - Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (723.58 KB, 32 trang )

Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

LỜI CẢM ƠN
Em xin chân thành cảm ơn các thầy, các cô khoa Công nghệ Thông tin
Trường Đại học Dân lập Hải Phòng đã tận tình dạy dỗ, truyền đạt cho chúng em
nhiều kiến thức quý báu.
Em xin tỏ lòng biết ơn sâu sắc đến thầy Th.s Ngô Trường Giang, người đã
tận tình giúp đỡ và truyền đạt nhiều kinh nghiệm để đề tài có thể được thực hiện
và hoàn thành.
Xin chân thành cảm ơn các bạn trong khoa Công Nghệ Thông Tin, Đại Học
Dân Lập Hải Phòng đã giúp đỡ, động viên tôi rất nhiều trong quá trình thực hiện
đề tài.
Em xin trân trọng cảm ơn!
Hải Phòng, tháng 08 năm 2007.
Sinh viên

Lê Hồng Chuyên

Lê Hồng Chuyên _ CT701

Trang: 1


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

MỤC LỤC
LỜI CẢM ƠN...................................................................................................1


CHƯƠNG 1: TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT...........................3
1.1. Giới thiệu....................................................................................................3
1.2. Một số lĩnh vực ứng dụng phát hiện khuôn mặt.........................................3
1.3. Một số phương pháp xác định khuôn mặt người........................................4
1.4. Khó khăn và thách thức trong bài toán xác định khuôn mặt.......................5
CHƯƠNG 2: PHÁT HIỆN KHUÔN MẶT SỬ DỤNG ADABOOST.................6
2.1. Giới thiệu....................................................................................................6
2.2. Trích chọn đặc trưng cho AdaBoost...........................................................7
2.3. Thuật toán ADABOOST.............................................................................9
2.4. Bộ dò tìm phân tầng Adaboost..................................................................11
2.5. Huấn luyện dò tìm khuôn mặt...................................................................13
2.6. Dò tìm khuôn mặt.....................................................................................13
CHƯƠNG 3: PHÁT HIỆN KHUÔN MẶT SỬ DỤNG MẠNG NƠRON.........15
3.1. Tổng quan về mạng nơron nhân tạo..........................................................15
3.2. Huấn luyện dò tìm khuôn mặt...................................................................23
3.3. Quá trình dò tìm khuôn mặt......................................................................24
CHƯƠNG 4: CÀI ĐẶT ỨNG DỤNG................................................................26
4.1. Môi trường TEST......................................................................................26
4.2. Một số giao diện chính..............................................................................26
4.3. Kết quả......................................................................................................29
4.4. Nhận xét....................................................................................................30
KẾT LUẬN.....................................................................................................31
TÀI LIỆU THAM KHẢO..............................................................................32

Lê Hồng Chuyên _ CT701

Trang: 2


Đồ án tốt nghiệp


CHƯƠNG 1:

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

TỔNG QUAN VỀ PHÁT HIỆN KHUÔN MẶT

1.1. Giới thiệu
Xác định 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ư: tòa nhà, cây cối, cơ thể, …

1.2. Một số lĩnh vực ứng dụng phát hiện khuôn mặt
Phát hiện khuôn mặt đã được ứng dụng trong rất nhiều lĩnh vực:
- Hệ thống tương tác giữa người và máy: giúp những người bị tật hoặc
khiếm khuyết có thể trao đổi. Những người dùng ngôn ngữ tay có thể giao
tiếp với những người bình thường. Những người bị bại liệt thông qua một
số ký hiệu nháy mắt có thể biểu lộ những gì họ muốn, …. Đó là các bài
toán điệu bộ của bàn tay (hand gesture), điệu bộ khuôn mặt, …
- Nhận dạng người A có phải là tội phạm truy nã hay không? Giúp cơ quan
an ninh quản lý tốt con người. Công việc nhận dạng có thể ở trong môi
trường bình thường cũng như trong bóng tối (sử dụng camera hồng ngoại).
- Hệ thống quan sát, theo dõi và bảo vệ. Các hệ thống camera sẽ xác định
đâu là con người và theo dõi con người đó xem họ có vi phạm gì không, ví
dụ xâm phạm khu vực không được vào, ….
- Thẻ căn cước, chứng minh nhân dân (Face dentification).
- Điều khiển vào ra: văn phòng, công ty, trụ sở, máy tính,…. Kết hợp thêm
vân tay và hốc mắt. Cho phép nhân viên được ra vào nơi cần thiết, hay mỗi
người sẽ đăng nhập máy tính cá nhân của mình mà không cần nhớ tên

đăng nhập cũng như mật khẩu mà chỉ cần xác định thông qua khuôn mặt.
- An ninh sân bay, xuất nhập cảnh (hiện nay cơ quan xuất nhập cảnh Mỹ đã
áp dụng). Dùng để xác thực người xuất nhập cảnh và kiểm tra có phải là
nhân vật khủng bố không.

Lê Hồng Chuyên _ CT701

Trang: 3


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

- Tương lai sẽ phát triển các loại thẻ thông minh có tích hợp sẵn đặc trưng
của người dùng trên đó, khi bất cứ người dùng khác dùng để truy cập hay
xử lý tại các hệ thống sẽ được yêu cầu kiểm tra các đặc trưng khuôn mặt
so với thẻ để biết nay có phải là chủ thẻ hay không.
- Tìm kiếm và tổ chức dữ liệu liên quan đến con người thông qua khuôn mặt
người trên nhiều hệ cơ sở dữ liệu lưu trữ thật lớn, như internet, các hãng
truyền hình, …. Ví dụ: tìm các đoạn video có tổng thống Bush phát biểu,
tìm các phim có diễn viên Thành Long đóng, tìm các trận đá banh có
Ronaldinho đá.
- Một số hãng sản xuất máy chụp ảnh đã ứng dụng bài toán xác định khuôn
mặt người vào máy chụp ảnh thế hệ mới để cho kết quả hình ảnh đẹp hơn.

1.3. Một số phương pháp xác định khuôn mặt người
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, chúng ta có thể phân chia các phương pháp này thành

bốn hướng tiếp cận 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.
- Hướng tiếp cận dựa trên đặc trưng không thay đổi: Mục tiêu các thuật
toán đi tìm các đặc trưng mô tả cấu trúc khuôn mặt người mà các đặc trưng
này sẽ không thay đổi khi tư thế khuôn mặt, vị trí đặt thiết bị thu hình hoặc
điều kiện ánh sáng thay đổi.
- 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).
- 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 học ở đây được học từ một tập ảnh huấn luyện cho trước. Sau

Lê Hồng Chuyên _ CT701

Trang: 4


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

đó hệ thống 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.

1.4. Khó khăn và thách thức trong bài toán xác định khuôn mặt
Việc xác định khuôn mặt người có những khó khăn nhất định:
- Hướng (pose) của khuôn mặt đối với máy ảnh, như: nhìn thẳng, nhìn

nghiêng hay nhìn từ trên xuống. Cùng trong một ảnh có thể có nhiều
khuôn mặt ở những tư thế khác nhau.
- Sự có mặt của các chi tiết không phải là đặc trưng riêng của khuôn mặt
người, như: râu quai nón, mắt kính, ….
- Các nét mặt (facial expression) khác nhau trên khuôn mặt, như: vui, buồn,
ngạc nhiên, ….
- Mặt người bị che khuất bởi các đối tượng khác có trong ảnh.
- Điều kiện ảnh, đặc biệt là về độ sáng và chất lượng ảnh, chất lượng thiết bị
thu hình.
- Trục tọa độ của máy ảnh so với ảnh.
- Nhiều khuôn mặt có vùng da dính lẫn nhau.
Các khó khăn trên chứng tỏ rằng bất cứ thuật toán nào dùng để xác định
khuôn mặt người cũng sẽ không thể tránh khỏi một số khiếm khuyết nhất định.
Để đánh giá và so sánh các phương pháp xác định mặt người, người ta thường
dựa trên các tiêu chí sau:
- Tỷ lệ xác định chính xác là tỷ lệ số lượng các khuôn mặt người được xác
định đúng từ hệ thống khi sử dụng một phương pháp để xây dựng so với
số lượng khuôn mặt người thật sự có trong các ảnh (detection rate).
- Số lượng xác định nhầm là số lượng vùng trong ảnh không phải là khuôn
mặt người mà hệ thống xác định nhầm là khuôn mặt người (false
positives).
- Thời gian thực hiện là thời gian để máy tính xác định khuôn mặt người
trong ảnh (running time).

Lê Hồng Chuyên _ CT701

Trang: 5


Đồ án tốt nghiệp


Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

CHƯƠNG 2: PHÁT HIỆN KHUÔN MẶT SỬ DỤNG
ADABOOST
2.1. Giới thiệu
Bài toán dò tìm khuôn mặt nhanh trên ảnh là bài toán quan trọng vì quá
trình nhận dạng đối tượng sẽ thiếu chính xác nếu như thiếu bước dò tìm và định
vị được đối tượng. Bài toán dò tìm khuôn mặt nhanh có ý nghĩa rất quan trọng
trong việc nhận dạng, theo vết các đối tượng chuyển động trong các đoạn video
hay camera.
2.1.1.

Các hướng tiếp cận dò tìm khuôn mặt nhanh

- Hướng dò tìm khuôn mặt trên ảnh màu dựa trên sự phân tích màu sắc của
vùng da. Mặc dù việc xử lý khá nhanh nhưng hướng này có giới hạn chỉ
xử lý trên ảnh màu và thường nhạy cảm với ánh sáng, thường chỉ sử dụng
làm các bước tiền xử lý cho các hướng khác.
- Hướng dò tìm khuôn mặt dựa trên đặc trưng bất biến của khuôn mặt
người. Thành công nhất trong dò tìm khuôn mặt người trong thời gian thực
là phương pháp ASM (Active shape Models).
- Hướng dò tìm khuôn mặt dựa trên thông tin hình ảnh gồm mạng nơ-ron,
các hướng thống kê (SVM, AdaBoost…). Phương pháp SVM và mạng
nơ-ron cũng đạt được kết quả cao trong thời gian khá nhanh song cũng chỉ
vài ảnh trong một giây nên khó có thể áp dụng trong việc nhận dạng thời
gian thực. Riêng phương pháp AdaBoost cho kết quả khả quan vì có thể
xử lý đến khoảng 15-20 khung hình trong một giây.
2.1.2.


Hướng tiếp cận theo AdaBoost

- Phương pháp dò tìm AdaBoost dựa trên ý tưởng xây dựng các bộ dò tìm
yếu mặc dù độ chính xác không cao nhưng có thời gian xử lý rất nhanh.
Tuy nhiên khi kết hợp các bộ dò tìm lại có thể đạt độ chính xác cao.
- Phương pháp AdaBoost sử dụng kết hợp các đặc trưng vốn dĩ tính toán rất
nhanh, thích hợp cho việc dò tìm trong thời gian thực.

Lê Hồng Chuyên _ CT701

Trang: 6


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

- Các bộ phân loại AdaBoost có thể xây dựng phân tầng với độ phức tạp xử
lý từ thấp đến cao, nhằm loại nhanh các ứng viên xấu (không phải mặt
người) vốn dĩ nhiều hơn nhiều các ứng viên là mặt nguời để cho bộ phân
loại phức tạp hơn chỉ còn lại ít ứng viên chưa bị loại.

2.2. Trích chọn đặc trưng cho AdaBoost
Một phương pháp chọn đặc trưng thích hợp cho AdaBoost là phép biến đổi
Haar-like. Phép biến đổi Haar-like dựa trên ý tưởng rất đơn giản, đặc trưng được
tính bằng độ chênh lệch giữa tổng các miền hình học. Có 3 tập hợp miền hình
học chính như sau:

Hình 2-1: Các miền hình học đặc trưng Haar-like
Giả sử miền đen là dương và miền trắng là âm thì đặc trưng Haar-let tính

bằng tổng giá trị pixel các ô đen trừ cho tổng giá trị các pixel các ô trắng. Cách
tính nhanh phương pháp Haar-like dựa trên đạo hàm ảnh bậc nhất ii(x,y) của ảnh
i(x,y). Đạo hàm ii(x,y) của ảnh i(x,y) chính là tổng giá trị các pixel tính từ gốc
trái trên đến (x,y) :

ii ( x, y ) = ∑ ∑ i ( x' , y ' )
x '≤ x y '≤ y

Lê Hồng Chuyên _ CT701

(2.1)

Trang: 7


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

Hình 2-2: Ý nghĩa hình học của đạo hàm ảnh

Việc tính toán đạo hàm ảnh được thực hiện rất nhanh bằng việc cộng lũy tích
như sau:
s(x,y) = s(x,y-1) + i(x,y)
(2.2)
ii(x,y) = ii(x-1,y) + s(x,y)
(2.3)
trong đó s(x,y) là tổng của cột x tính từ đầu dòng đến vị trí (x,y). Sau khi có
được đạo hàm ảnh, ta chỉ việc tính giá trị một ô chữ nhật bằng cách như sau:
chẳng hạn ô chữ nhật D ta có val(D) = val(ABCD) – val(AC) – val(AB) +

val(A) , do đó nếu tính theo tọa độ (x,y) ta có phương trình sau:
sr = (ii(x,y) + ii(x-W,y-L)) – (ii(x-W,y) + ii(x,y-L))

(2.4)

Hình 2-3: Cách tính giá trị một ô đặc trưng

Lê Hồng Chuyên _ CT701

Trang: 8


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

Cuối cùng, việc tính các đặc trưng Haar-like chỉ còn là trừ giá trị tổng các ô
chữ nhật được tính như trên.

2.3. Thuật toán ADABOOST
Xét bài toán hai lớp, mẫu huấn luyện bao gồm M bộ (xi,yi) đã được gán
nhãn, với i ∈ {1,2,..,M} trong đó yi ∈ {+1,-1} là nhãn và xi ∈ Rn là các mẫu
huấn luyện. Trong AdaBoost, một bộ phân loại mạnh hơn được xây dựng dựa
trên sự kết hợp tuyến tính giữa M bộ phân loại yếu hơn:
M

H M ( x ) = ∑ hm ( x )

(2.5)


m −1

Các bộ phân loại yếu hơn có thể mang các giá trị thực, hm(x) ∈ R. Phân
loại của x được quyết định bằng hàm H(x) = sign[HM(x)], trong đó độ lớn |
HM(x)| cho ta độ tin cậy. Mỗi mẫu được kết hợp với một trọng số. Trong quá
trình học, các trọng số sẽ được cập nhật động nhấn mạnh các phân loại mạnh
trước đó bị phân loại sai. Tuy nhiên, quá trình cập nhật trọng số chỉ cần thiết đối
với thuật toán AdaBoost trước đây. Đối với các thuật toán AdaBoost cải tiến gần
đây, quá trình này có thể được thay thế bằng một hàm tối ưu hóa. Lỗi xảy ra khi
H (x) ≠ y hay yHM(x) < 0. Lề của mẫu (x, y) qua hàm h(x) ∈ R trên tập các mẫu
huấn luyện được định nghĩa là yh(x). Lề có thể được xem là số đo độ tin cậy của
giá trị đoán trước của h. Lỗi phân lớp của HM có biên trên là:
J ( H M ) = ∑ e − yi H M ( xi )

(2.6)

Thuật toán AdaBoost xây dựng hàm h(x) bằng cách giảm tối đa (2.6).
Cho:
M −1

H M −1 ( x) = ∑ hm ( x) ,

(2.7)

m −1

HM(x) tốt nhất cho phân loại mạnh HM(x) = HM - 1(x) + hm(x)
Là hàm dẫn tới giá trị nhỏ nhất:
Hm = arg min J(H (x) h (x))
và hàm có giá trị nhỏ nhất được chứng minh là:


Lê Hồng Chuyên _ CT701

(2.8)

Trang: 9


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

P( y = + 1 | x, ω ( M −1) )
1
hM ( x) = log
2
P( y = − 1 | x, ω ( M −1) )

(2.9)

với ω(M-1) là trọng số tại thời điểm M.
Dùng công thức P(y| x,ω) = P(x| y,ω) P(y) và cho

P( x | y = +1, ω )
1
LM ( x) = log
2
P( x | y = −1, ω )

T=


1
P ( y = +1) 
log
2 
P ( y = −1) 

(2.10)

(2.11)

chúng ta có được hM (x) = LM(x) – T. LM được học ra từ các mẫu của cả hai
phân lớp. Ngưỡng T được xác định bằng tỉ lệ log của các xác suất trước đó.
Ta có một phương pháp để tính phương trình (2.11), ứng dụng khi học các
bộ phân lớp tối ưu. Vì rút ra một bộ phân loại yếu trong một miền không gian
nhiều chiều là công việc quan trọng, sau đây một mô hình thống kê học theo
từng giai đoạn dựa trên vài đặc điểm vô hướng. Một đặc điểm vô hướng j của x
được tính bằng một phép biến đổi từ không gian dữ liệu n chiều thành đường
thẳng thực zj(x) ∈ Z. Một đặc điểm có thể là hệ số, hay nói trong xử lý ảnh là
phép biến đổi vi ba tín hiệu. Nếu phương pháp tìm kiếm ước lượng được sử
dụng như phép biến đổi zj(x) đơn giản được xem là toạ độ thứ j của x. Một danh
sách K đặc điểm ứng cử viên có thể được tạo: Z ={ zj(x), …, zK(x)}.
Giả sử Z là một tập rất hoàn chỉnh, tập các phân lớp yếu có thể có cho bài
toán phân lớp yếu tối ưu có thể được lập như sau: Trước tiên, tại giai đoạn M,
khi M-1 đặc điểm của z(1), z(2), …, z(M-1) đã được chọn và trọng số cho là ωM-1,
chúng ta có xấp xỉ p(x|y, ωM-1)) bằng cách dùng phân bố của M đặc điểm:
p(x|y, ωM-1) ≈ p(z(1), z(2), …, z(M-1), zk, |y, ωM-1)
(2.12)
= p(z(1)|y, ωM-1) p(z(2) |y, z(1), ωM-1)…


Lê Hồng Chuyên _ CT701

Trang: 10


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

p(z(M-1)|y, z(1), z(2), …, z(M-2), ωM-1)
p(zk, |y, z(1), z(2), …, z(M-1), ωM-1)

(2.13)

Bởi vì Z là tập rất hoàn chỉnh, phép xấp xỉ vẫn tốt đối với tập M đủ lớn khi
M đặc điểm được chọn thích hợp.
Ghi chú: p(zm|y, z(1), z(2), …, z(m-1)) thực ra là p(zm|y, ω(m-1)) bởi vì ω(m) chứa
thông tin về toàn bộ quá trình tạo ω và bao gồm các thành phần lệ thuộc trên
z(1), z(2), …, z(m-1). Vì vậy, chúng ra có:
p(x|y, ωM-1) ≈ p(z(1)| y, ω(0)) p(z(2)| y, ω(1))…
p(z(M-1)| y, ω(M-2)) p(zk| y, ω(M-1))

(2.14)

Mật độ xác suất p(zk| y, ω(M-1)) cho phân lớp dương y = +1 và phân lớp âm
y = -1 có thể phỏng đoán được từ histogram tính được qua đánh giá công nhận
trọng số của các ví dụ huấn luyện sử dụng các trọng số ω(M-1).
Cho :
L(kM ) ( x ) =


P ( z k | y = +1, ω ( M −1) )
,
P ( z k | y = −1, ω ( M −1) )



hk( M ) ( x) =

{

1 (M )
Lk ( x ) − T
2

}

(2.15)

chúng ta rút ra được tập hợp các phân lớp yếu hơn như sau:

{

Γ ( M ) ( x) = hk( M ) ( x) | ∀k

}

(2.16)

2.4. Bộ dò tìm phân tầng Adaboost
Với một bộ dò tìm c do phương pháp AdaBoost huấn luyện được, ta có thể

dò tìm với một độ chính xác nhất định và một tốc độ nhất định. Nếu như cần
phải chính xác cao thì bộ dò tìm phải bao gồm nhiều đặc trưng, điều đó kéo theo
tốc độ dò tìm sẽ giảm.

Lê Hồng Chuyên _ CT701

Trang: 11


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

Nếu sử dụng bộ dò tìm kết hợp F={ci} với nhiều bộ dò tìm cơ bản fi khác
nhau cũng rơi vào tình trạng tương tự. Để có được độ chính xác cao, hoặc cần
phải có số lượng lớn các bộ dò tìm, hoặc mỗi bộ dò tìm cần phải có nhiều đặc
trưng, hoặc cả hai, thì đồng thời cũng sẽ làm cho tốc độ giảm đi. Một hướng
khắc phục nhược điểm này là sử dụng bộ dò tìm phân tầng T={t i}. Bộ dò tìm
phân tầng bao gồm nhiều tầng, mỗi tầng ti = {cj} là một bộ dò tìm kết hợp với số
lượng các bộ dò tìm khác nhau nên có tốc độ và độ chính xác khác nhau. Khi dò
tìm tất cả các khuôn mặt trong ảnh, tất cả các cửa sổ con W 0={wi,j,s} với các kích
thước s khác nhau tại các tọa độ (i,j) sẽ được kiểm tra xem có phải là mặt người
hay không. Qua mỗi tầng ti, Wi = ti(Wi-1) trong đó |Wi|<<|Wi-1| do qua mỗi tầng,
các cửa sổ không phải ứng viên sẽ bị loại sớm. Điều này cho phép chúng ta xây
dựng các tầng sao cho: càng về sau độ phức tạp của các tầng càng lớn trong khi
các tầng càng thấp thì độ phức tạp càng đơn giản và phải loại được nhiều ứng
viên, nhưng tỷ lệ loại sai phải thấp.

Hình 2-4: Minh hoạ bộ dò tìm phân tầng
Xét mỗi tầng tk = {ci} ta có tỷ lệ loại sai của tk được tính như sau:

K

F =∏f i
i =1

(2.17)

Trong đó fi chính là tỷ lệ loại sai ứng với bộ dò tìm c i và K chính là số bộ
dò tìm của tầng tk. Tương tự, độ chính xác của tầng tk được tính như sau :
Lê Hồng Chuyên _ CT701

Trang: 12


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh
K

D =∏
di

(2.18)

i=
1

Trong đó di là độ chính xác của ứng với bộ dò tìm c i. Đồng thời cũng với
cách tính này, ta có thể tính được độ chính xác của toàn bộ các tầng T={ti} là:
|T |


|T |

|t i |

i =1

i =1

j =1

G =∏Di =∏
∏c ij

(2.19)

Vậy khi cho trước một tỷ lệ loại sai D và độ chính xác là F, ta có thể huấn
luyện tầng bộ phân loại t sao cho t có tỷ lệ loại sai là D và đô chính xác là F. Và
lặp lại quá trình huấn luyện tầng ta được bộ huấn luyện gồm nhiều tầng với độ
chính xác G hoặc số tầng n như mong muốn.

2.5. Huấn luyện dò tìm khuôn mặt
- Dữ liệu huấn luyện: Tập A gồm các ảnh là khuôn mặt, tập B gồm các ảnh
không là khuôn mặt (B>>A).
- Trích chọn các đặc trưng của ảnh.
- Tiến hành xử lí tập ảnh huấn luyện bằng Histogram và nhận dạng biên
CANNY
- Áp dụng bộ huấn luyện phân tầng.

2.6. Dò tìm khuôn mặt

Việc dò tìm khuôn mặt trong ảnh qua bộ phân tầng đã huấn luyện gặp một
vấn đề là số sửa sổ với các kích thước khác nhau quá lớn. Để khắc phục vấn đề
này, phương pháp dò theo kiến trúc tháp được áp dụng như sau: xét ảnh s kích
thước (wxh) , step = 0 , hệ số co scale = 1.2
 Lặp trong khi kích thước (w x h) còn lớn hơn cửa sổ ảnh mặt người huấn
luyện (w0 x h0):
- Duyệt toàn bộ các vị trí (x,y) cửa sổ với kích thước (w 0 x h0) , với mỗi vị
trí tiến hành:
− Áp dụng bộ dò tìm phân tầng để xác định có phải mặt người hay
không
Lê Hồng Chuyên _ CT701

Trang: 13


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

− Nếu là mặt người tại vị trí (x,y) thì thực tế mặt người tại vị trí
(x*scalestep, y*scalestep) và kích thước cửa sổ là (w0*scalestep,
h0*scalestep)
- Gán w1 = w / scale và h1 = h / scale
- Thu nhỏ ảnh từ kích thước (w x h) đến (w1 x h1)
- Gán w = w1 và h = h1
- step = step + 1
Nhận xét :
Hệ số co scale quyết định độ mịn của các cửa sồ dò tìm, nếu như scale càng
nhỏ (≥1 ) thì càng có nhiều cửa sổ dò tìm nên càng chính xác hơn.
Áp dụng thuật toán dò theo kiến trúc tháp như trên ta có thể dò tìm tất cả

các khuôn mặt ở tất cả các vị trí, song kích thước dò tìm ở mỗi bước như sau :
- Bước 1 : kích thước từ (w0, h0) đến (w0*scale,h0*scale)
- Bước 2 : kích thước từ (w0*scale,h0*scale) đến (w0*scale2,h0*scale2)
- ………….
- Bước n : kích thước từ (w0*scalen-1,h0*scalen-1) đến (w0*scale,h0*scale)

Lê Hồng Chuyên _ CT701

Trang: 14


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

CHƯƠNG 3: PHÁT HIỆN KHUÔN MẶT
SỬ DỤNG MẠNG NƠRON
3.1. Tổng quan về mạng nơron nhân tạo
3.1.1.

Khái niệm

Là một đơn vị tính toán có nhiều đầu vào và một đầu ra, mỗi đầu vào đến
từ một synapse. Đặc trưng của nơ-ron là một hàm kích hoạt phi tuyến chuyển
đổi tổ hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra. Hàm
kích hoạt này đảm bảo tính chất phi tuyến cho tính toán của mạng nơ-ron.

Hình 3-1: Mô hình một nơ-ron nhân tạo
3.1.2.


Các thành phần của nơron nhân tạo

3.1.2.1. Synapse
Là một thành phần liên kết giữa các nơ-ron, nó nối đầu ra của nơ-ron lớp
này với đầu vào của một nơ-ron trong lớp khác. Đặc trưng của synapse là một
trọng số mà mỗi tín hiệu đi qua đều được nhân với trọng số này. Các trọng số
synapse chính là các tham số tự do cơ bản của mạng nơ-ron, có thể thay đổi
nhằm thích nghi với môi trường xung quanh.

Lê Hồng Chuyên _ CT701

Trang: 15


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

3.1.2.2. Bộ cộng
Bộ cộng để tính tổng các tín hiệu đầu vào của nơ-ron, đã được nhân với các
trọng số synapse tương ứng, phép toán được mô tả ở đây tạo nên một bộ hợp
tuyến tính.
3.1.2.3. Hàm truyền
Hàm kích hoạt hay còn gọi hàm kích hoạt phi tuyến, chuyển đổi một tổ
hợp tuyến tính của tất cả các tín hiệu đầu vào thành tín hiệu đầu ra. Hàm kích
hoạt này đảm bảo tính chất phi tuyến cho tính toán mạng nơ-ron. Nó được xem
như là một hàm giới hạn, nó giới hạn phạm vi biên độ cho phép tín hiệu đầu ra
trong một khoảng giá trị hữu hạn. Một số hàm truyền (kích hoạt ) cơ bản trong
mạng nơ-ron được trình bày ở bảng 3.1.
 Mạng nơ-ron nhân tạo :

Là một hệ thống bao gồm nhiều phần tử xử lý đơn giản (hay còn gọi là
nơ-ron) tựa như nơ-ron thần kinh của não người, hoạt động song song và được
nối với nhau bởi các liên kết nơ-ron. Mỗi liên kết kèm theo một trọng số nào đó,
đặc trưng cho tính kích hoạt hoặc ức chế giữa các nơ-ron.
Có thể xem các trọng số là phương tiện để lưu trữ thông tin dài hạn trong
mạng nơ-ron và nhiệm vụ của quá trình huấn luyện (học) của mạng là cập nhật
các trọng số khi có thêm thông tin về mẫu học, hay nói một cách khác, các trọng
số đều được điều chỉnh sao cho dáng điệu vào ra của mạng sẽ mô phỏng hoàn
toàn phù hợp với môi trường đang xem xét.

Lê Hồng Chuyên _ CT701

Trang: 16


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

Bảng 3.1: Một số hàm kích hoạt.
Tên hàm
1. hardlim
2. hardlims
3. purelin
4. Satlin
5. satlins
6. tansig
7. poslin
8. compet
9. logsig


3.1.3.

a=0
a=1
a = -1
a=1
a=n
a=0
a=n
a=1
a = -1
a=n
a=1
a=

Công thức
với n < 0
với n ≥ 0
với n < 0
với n ≥ 0
với n < 0
với 0 ≤ n ≤ 1
với n > 1
với n < 0
với 0 ≤ n ≤ 1
với n > 1

en − e−n
1 + e −n


a=0
với n < 0
a=n
với n ≥ 0
a = 1 với nơ-ron có n lớn nhất
a = 0 với các nơ-ron còn lại
a=

1
1 + e −n

Mô hình cơ bản của mạng nơron

Hình 3-2: Sơ đồ đơn giản về một mạng nơ-ron nhân tạo
Lê Hồng Chuyên _ CT701

Trang: 17


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

Mô hình mạng nơ-ron ở trên gồm 3 lớp: lớp nhập (input), lớp ẩn và lớp
xuất (output). Mỗi nút trong lớp nhập nhận giá trị của một biến độc lập và
chuyển vào mạng.
Dữ liệu từ tất cả các nút trong lớp nhập được tích hợp – ta gọi là tổng trọng
hóa – và chuyển kết quả cho các nút trong lớp ẩn. Gọi là “ẩn” vì các nút trong
lớp này chỉ liên lạc với các nút trong lớp nhập và lớp xuất, và chỉ có người thiết

kế mạng mới biết lớp này (người sử dụng không biết lớp này).
Các nút trong lớp xuất nhận các tín hiệu tổng trọng hóa từ các nút trong lớp
ẩn. Mỗi nút trong lớp xuất tương ứng với một biến phụ thuộc.
3.1.4.

Xây dựng mạng nơron

Về cơ bản ta có thể hiểu mạng nơ-ron là một đồ thị có hướng. Trong đó
các đỉnh của đồ thị là các nơ-ron và các cạnh của đồ thị là các liên kết giữa các
nơ-ron.
h1
g1
x

h2

f
g2

h3
Vì vậy để xây dựng một mạng nơ-ron ta xây dựng một đồ thị có hướng: số
đỉnh của đồ thị bằng số nơ-ron trong mạng, giá trị của các cạnh chính là trọng số
liên kết nơ-ron.
3.1.4.1. Giải thuật xây dựng mạng nơron đơn giản
Input: Cho :
• Mạng nơ-ron có num_layer lớp (với num_layer>1).
• Mỗi lớp có num_of_layer nơ-ron (num_of_layer>=1).
• Trọng số w liên kết nơ-ron ngẫu nhiên trong khoảng (-a,a).
Output: Mạng nơ-ron nhân tạo.
Kiểu dữ liệu: chọn lưu dữ kiểu mảng :

int num_layer;
int num_of_layer[num_layer];
Lê Hồng Chuyên _ CT701

Trang: 18


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

float w[i][j][k]; với 2<=i<=num_layer, 1<=j,k<=num_of_layer[] ,
Thuật toán:
- Bước 1: Chọn lớp i=2 là lớp bắt đầu (ngay sau lớp input).
- Bước 2: Chọn lớp i là lớp hiện thời.
- Bước 3 : Tại lớp đang xét i , xét nơ-ron thứ j .
- Bước 4: Thực hiện khởi tạo ngẫu nhiên trọng số kết nối với nơ-ron k của
lớp i-1 trong khoảng (-a,a).
w(i,j,k)=random(-a,a) (trọng số kết nối của nơ-ron thứ j của layer[i] với
nơ-ron thứ k của layer[i-1] )
- Bước 5: Nếu k <= num_of_layer[i-1] quay lại “Bước 4”, ngược lại thực
hiện “Bước 6”.
- Bước 6: Nếu j<=num_of_layer[i] quay lại “Bước 3”, ngược lại thực hiện
“Bước 7”.
- Bước 7: Nếu i<=num_layer quay lại “Bước 3”. ngược lại kết thúc.
3.1.5.

Huấn luyện mạng nơron

3.1.5.1. Phương pháp học

- Mạng nơ-ron nhân tạo phỏng theo việc xử lý thông tin của bộ não người,
do vậy đặc trưng cơ bản của mạng là có khả năng học, khả năng tái tạo các
hình ảnh và dữ liệu khi đã học. Trong trạng thái học thông tin được lan
truyền theo hai chiều nhiều lần để học các trọng số.
- Quá trình học hay còn gọi là quá trình huấn luyện là một quá trình mà
trong các tham số tự do (các trọng số liên kết) được điều chỉnh nhằm mục
đích thích nghi với môi trường. Đối với vấn đề học cho mạng mạng nơ-ron
người ta thường quan tâm tới 3 yếu tố chính, đó là:
- Quy tắc học: phương thức nền tảng cho việc thay đổi trọng số liên kết.
- Mô hình học: cách thức mạng nơ-ron quan hệ với môi trường trong quá
trình học.
- Thuật toán học: các bước tiến hành cụ thể cho một quá trình học.

Lê Hồng Chuyên _ CT701

Trang: 19


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

- Có 3 kiểu học chính, mỗi kiểu học tương ứng với một nhiệm vụ học trừu
tượng. Đó là học có giám sát (có mẫu), học không giám sát và học tăng
cường. Thông thường loại kiến trúc mạng nào cũng có thể đáp ứng được
yêu cầu của thực tế.
 Học có giám sát.
Một thành phần không thể thiếu của phương pháp này là sự có mặt của một
người thầy (ở bên ngoài hệ thống) như ta thấy ở hình 3-4 . Người thầy này có
kiến thức về môi trường thể hiện qua một tập hợp các cặp đầu vào - đầu ra đã

được biết trước. Hệ thống học (ở đây là mạng nơ-ron) sẽ phải tìm cách thay đổi
các tham số bên trong của mình (các trọng số và các ngưỡng) để tạo nên một
ánh xạ có khả năng ánh xạ các đầu vào thành các đầu ra mong muốn. Sự thay
đổi này được tiến hành nhờ việc so sánh giữa đầu ra thực sự và đầu ra mong
muốn.
 Học không giám sát.
Trong học không có giám sát, ta được cho trước một số dữ liệu x và hàm
chi phí cần được cực tiểu hóa có thể là một hàm bất kỳ của dữ liệu x và đầu ra
của mạng, f – hàm chi phí được quyết định bởi phát biểu của bài toán. Phần lớn
các ứng dụng nằm trong vùng của các bài toán ước lượng như mô hình hóa
thống kê, nén, lọc (filtering), phân nhóm (clustering).
Môi trường

Đầu vào trạng thái
của môi trường

Thầy giáo
Đầu ra
mong muốn

Hệ thống
học

Đầu ra thực
sự



Sai số


Hình 3-3: Mô hình học có giám sát

Lê Hồng Chuyên _ CT701

Trang: 20


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

 Học tăng cường.
Dữ liệu x thường không được tạo trước mà được tạo ra trong quá trình một
agent tương tác với môi trường. Tại mỗi thời điểm t, agent thực hiện hành động
yt và môi trường tạo một quan sát xt với một chi phí tức thời Ct, theo một quy
trình động nào đó (thường là không được biết). Mục tiêu là một sách lược lựa
chọn hành động để cực tiểu hóa một chi phí dài hạn nào đó, nghĩa là chi phí tích
lũy mong đợi. Quy trình hoạt động của môi trường và chi phí dài hạn cho mỗi
sách lược thường không được biết, nhưng có thể ước lượng được. Mạng nơ-ron
nhân tạo thường được dùng trong học tăng cường như một phần của thuật toán
toàn cục. Các bài toán thường được giải quyết bằng học tăng cường là các bài
toán điều khiển, trò chơi và các nhiệm vụ quyết định tuần tự (sequential decision
making) khác.
3.1.5.2. Thuật toán học
 Thuật toán học của mạng nơ-ron một lớp( perceptron ).
Xét trường hợp perceptron sử dụng hàm kích hoạt ngưỡng:

+1,

output =

−1,



d

∑v w
i

i

>t

i =1

(3.1)

d

∑v w
i =1

i

≤t

i

Nếu ta cho w0= -t và v0=1, ta có thể viết lại


+1,

output =
−1,



d

∑v w
i

i =0

i

d

∑v w
i =0

i

i

>0
≤0

 d


= sign∑vi wi 
 i =0


(3.2)

Thuật toán:
Thuật toán học của perceptron hay mạng nơ-ron một lớp gồm 3 bước
chính:
Bước 1: Khởi tạo:
khởi tạo trọng số w (0 hoặc ngẫu nhiên).
Lê Hồng Chuyên _ CT701

Trang: 21


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

chọn tốc độ học µ.
Bước 2 : Học
Với mỗi mẫu (x,t) trong tập học.
Tính y=f(x, w).
Nếu y!=t thay đổi vectơ trọng số w với:
w(mới (cũ)+ µ(t-y)x;
Bước 3: lặp lại bước 2 cho tất cả các mẫu.
 Thuật toán học của mạng nơ-ron nhiều lớp
(back-Propagation -- Lan truyền ngược ).
Huấn luyện mạng nơ-ron nhiều chiều MLP :

- Là quá trình thay đổi giá trị của w để mạng biểu diễn được dữ liệu học.
- Là sự khác nhau giữa giá trị thật hàm mẫu và kết quả dự đoán của mạng
gọi là lỗi (học có giám sát).
- Hàm lỗi là hàm n+1 biến. Nếu vẽ trong không gian n+1 chiều thì có một
mặt là lỗi.
- Quá trình huấn luyệnsẽ tìm ra wi* để lỗi nhỏ nhất
Thuật toán:
Xét mạng nơ-ron 3 lớp : input, hiden và output.
Hàm kích hoạt các nơ-ron : logistic (sigmoid).

g ( x) =

1
1 + e −x

(3.3)

- Bước 1: Khởi tạo trọng số w ngẫu nhiên nhỏ.
- Bước 2 : Chọn lớp đầu vào x và đính nó vào lớp đầu vào .
- Bước 3 : Truyền sự kích hoạt qua trọng số đến khi kich hoạt các nơ-ron
đầu ra.
- Bước 4: Tính đạo hàm riêng “δE” theo trọng số cho lớp xuất. sử dụng
GRADIENT của hàm lỗi .
- Bước 5: Tính đạo hàm riêng “δE” theo trọng số cho lớp ẩn.
Lê Hồng Chuyên _ CT701

Trang: 22


Đồ án tốt nghiệp


Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

- Bước 6: Cập nhật tất cả trọng số theo Wi=W(i-1)-µ(δE/ δ Wi)
- Bước 7: Quay lai “Bước 2” cho đến “Bước 6” cho tất cả các mẫu.

3.2. Huấn luyện dò tìm khuôn mặt
Hệ thống hoạt động theo hai giai đoạn: trước hết áp dụng tập bộ dò tìm dựa
trên mạng nơ-ron vào ảnh, và sau đó dùng bộ kiểm tra để kết hợp các đầu ra.
Các bộ dò tìm riêng lẻ khảo sát mỗi vị trí trong ảnh ở một vài tỷ lệ, tìm vị trí có
thể chứa khuôn mặt. Sau đó bộ kiểm tra hợp các dò tìm từ các mạng riêng lẻ và
loại trừ các dò tìm bị lặp. Thành phần đầu tiên của hệ thống là mạng nơ-ron
nhận đầu vào là vùng 20x20 (pixels) của ảnh và tạo đầu ra trong khoảng
1 đến -1, biểu thị có hay không có khuôn mặt. Để dò tìm mọi khuôn mặt trong
ảnh, mạng được áp dụng ở mọi vị trí trong ảnh. Để dò tìm các khuôn mặt lớn
hơn kích thước cửa sổ, ảnh đầu vào được giảm kích thước nhiều lần, và áp dụng
bộ dò tìm ở mỗi kích thước. Mạng có một số bất biến với vị trí và kích thước.
Số bất biến xác định số tỷ lệ và vị trí nó được dùng. Với bài này, ta áp dụng bộ
lọc ở mọi vị trí điểm ảnh, và giảm tỷ lệ xuống 1.2 ở mỗi bước phân tích ảnh tứ
phân.
Sau khi cửa sổ 20x20 pixel được trích ra từ một vị trí và tỷ lệ nào đó trong
ảnh nhập, nó được tiền xử lý dùng các bước hiệu chỉnh độ sáng và cân bằng
lược đồ. Cửa sổ sau khi tiền xử lý được truyền qua mạng nơ-ron. Cửa sổ đầu vào
được chia thành các mảnh nhỏ, 4 vùng 10x10 (pixels), 16 vùng 5x5 (pixels), và
6 vùng chồng lấp 20x5 (pixels). Mỗi vùng có liên kết đầy đủ với một đơn vị ẩn.
Hình dáng của các vùng con này được chọn để cho phép các đơn vị ẩn dò tìm
các đặc trưng cho việc dò tìm khuôn mặt. Cụ thể, các sọc ngang cho phép các
đơn vị ẩn dò tìm các đặc trưng như miệng, cặp mắt, trong khi các đơn vị ẩn với
vùng tiếp thu hình vuông có thể dò tìm các đặc trưng như từng mắt, mũi, của
miệng. Các thử nghiệm cho thấy rằng hình dạng chính xác của các vùng này

không quan trọng, quan trọng là đầu vào được chia thành các vùng nhỏ thay vì
dùng các kết nối hoàn toàn với toàn bộ đầu vào. Tương tự các mẫu liên kết đầu
vào thường được dùng trong việc nhận dạng tiếng nói và ký tự. Mạng có một
đầu ra giá trị thực, chỉ định cửa sổ có chứa khuôn mặt hay không.

Lê Hồng Chuyên _ CT701

Trang: 23


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

3.3. Quá trình dò tìm khuôn mặt

Tập mẫu không
phải khuôn mặt

Tập mẫu khuôn
mặt

Canh biên mẫu
khuôn mặt

Tiền xử lí tập mẫu học

Huấn luyện dò
tìm khuôn mặt
thẳng


Ảnh thử nghiệm
có khuôn mặt

Lấy tất cả các cửa sổ
cùng với vị trí trên ảnh

Tiền xử lí các cửa sổ

Xác minh cửa sổ
có phải là khuôn
mặt hay không

Đúng

Loại bỏ cửa
Sai sổ vì không
phải khuôn
mặt

Giữ lại vị trí các mẫu là
khuôn mặt

Kết hợp các khuôn mặt
mà vị trí trùng lặp

Các khuôn mặt
tại các vị trí
khác nhau


Hình 3-4: Sơ đồ luồng xử lí các bước chính trong vấn đề dò tìm khuôn mặt

Lê Hồng Chuyên _ CT701

Trang: 24


Đồ án tốt nghiệp

Tìm hiểu một số phương pháp phát hiện khuôn mặt trong ảnh

Mô tả lưu đồ:
- Bước 1: Tiếp nhận ảnh đầu vào có chứa các khuôn mặt.
- Bước 2: Đánh dấu các vị trí có khả năng là các khuôn mặt trên ảnh.
Đây là bước để loại đa số những vị trí không phải là khuôn mặt, chỉ
giữ lại một số ít những vị trí có khả năng là khuôn mặt.
- Bước 3: Thực hiện chuẩn hóa dữ liệu tại những nơi đã đánh dấu ở
bước 2 bằng các phương pháp: cân bằng lược đồ để cải thiện độ sáng
và độ tương phản
- Bước 4: Kiểm tra những vị trí đã được chuẩn hóa ở bước 3 có thật sự
là khuôn mặt hay không? Công việc này được thực hiện bởi mạng
nơ-ron đã được huấn luyện với nhiều ảnh mẫu là khuôn mặt và không
khuôn mặt.
- Bước 5: Đưa ra quyết định đâu là khuôn mặt. Việc làm này được thực
hiện bằng việc kết hợp nhiều mạng và một số heuristic đơn giản.

Lê Hồng Chuyên _ CT701

Trang: 25



×