Nhận dạng mặt người dựa trên mạng feed forward và đặc trưng PCA
Trang 1B CÔNG TH Ộ ƯƠ NG
TR ƯỜ NG Đ I H C CÔNG NGHI P HÀ N I Ạ Ọ Ệ Ộ
KHOA CÔNG NGH THÔNG TIN Ệ
Trang 2L I NÓI Đ U Ờ Ầ
Trước sự phát triển của khoa học kỹ thuật, ngành điều khiển học và tự động hóa đã có những bước tiến lớn Điều khiển học và tự động hóa ngày càng đóng vai trò quan trọng trong việc tăng năng xuất lao động, giảm giá thành, tăng sự ổn định chất lượng của sản phẩm.
Trong xã hội công nghiệp ngày nay, việc ứng dụng các robot tự hành, các cánh tay máy,…có khả năng hoạt động độc lập ngày càng phổ biến Để có khả năng thông minh đó, chúng phải có khả năng nhìn, nhận dạng các tình huống, xử lý tình huống như như con người… Đáp ứng nhu cầu đó, xử lý ảnh đã tham gia vào điều khiển học
và tự động hóa Dữ liệu về hình ảnh có lượng thông tin lớn và chính xác hơn các loại
dữ liệu từ các cảm biến khác Điều này giúp cho việc giải quyết các vấn đề trong lĩnh vực điều khiển tự động dễ dàng hơn.
Một trong những bài toán về xử lý ảnh phổ biến hiện nay là nhận dạng khuôn mặt người 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 nhận dạng 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ật sự và rất nhiều của con người.
Góp phần tìm hiểu về vấn đề này chúng em thực hiện đề tài “Nhận dạng mặt người dựa trên mạng Feed-forward và đặc trưng PCA” trên tập ảnh gồm các ảnh
mặt người với độ sáng tối và góc chụp khác nhau.
Chúng em xin chân thành cảm ơn!
Trang 3LỜI CẢM ƠN
Chúng em xin chân thành cảm ơn Ban Giám Hiệu trường Đại học Công Nghiệp
Hà Nội, Ban chủ nhiệm khoa Khoa Học Máy Tính, cùng với các thầy cô giảng dạy Các thầy cô đã truyền đạt cho tôi những kiến thức quý báu trong thời gian qua để hoàn thành tốt được khoá học.
Xin chân thành cảm ơn thầy Trần Chí Kiên, người đã tận tình giúp đỡ, hướng dẫn chúng em trong quá trình thực hiện đề tài này
Do thời gian và kiến thức còn nhiều hạn chế đề tài còn nhiều thiếu sót, kính mong quý thầy cô đóng góp ý kiến để đề tài hoàn thiện hơn.
Trang 4MỤC LỤC
L I NÓI Đ U Ờ Ầ 1
L I C M N Ờ Ả Ơ 2
Danh sách hình 5
Ch ươ ng 1 Gi i thi u ớ ệ 6
1.1 Gi i thi u v bài toán nh n d ng m t ng ớ ệ ề ậ ạ ặ ườ 6 i 1.2 M c đích c a đ tài ụ ủ ề 9
1.3 Ph m vi đ tài ạ ề 9
1.4 Đóng góp c a đ tài ủ ề 9
1.5 C u trúc đ án ấ ồ 9
Ch ươ ng 2: M ng feed-forward ạ 10
2.1 Gi i thi u v m ng neural feed-forward ớ ệ ề ạ 10
2.2.1 Perceptron c b n ơ ả 10
2.2.2 M ng feed-forward ạ 11
2.2 M ng feed-forward trong matlab ạ 12
Ch ươ ng 3: Gi i thi u v thu t toán PCA ớ ệ ề ậ 15
3.1 Thu t toán PCA ậ 15
3.2 Thu t toán PCA trong nh n d ng m t ng ậ ậ ạ ặ ườ 20 i 3.2.1 Bi u di n l i nh khuôn m t ể ễ ạ ả ặ 21
3.2.2 Tìm nh trung bình và nh trung bình chu n hóa ả ả ẩ 21
3.2.3 Tính ma tr n hi p ph ậ ệ ươ ng sai 22
3.2.4 Không gian khuôn m t riêng ặ 23
3.2.5 B ướ c nh n di n nh ậ ệ ả 24
Ch ươ ng 4 Cài đ t và th c nghi m ặ ự ệ 25
4.1 Thu t toán nh n d ng m t ng ậ ậ ạ ặ ườ 25 i 4.2 M t s giao di n chính c a ch ộ ố ệ ủ ươ ng trình 26
4.3 K t qu th c nghi m ế ả ự ệ 26
4.4 Đánh giá và th o lu n ả ậ 26
4.5 K t lu n ế ậ 26
Tài li u tham kh o ệ ả 27
Trang 5Danh sách từ viết tắt
Trang 6Danh sách hình
Trang 7Ch ươ ng 1 Gi i thi u ớ ệ
Trang 8Gi i thi u v bài toán nh n d ng m t ng ớ ệ ề ậ ạ ặ ườ i
Sinh tr c h c đ ắ ọ ượ ử ụ c s d ng trong quá trình xác th c ng ự ườ ằ i b ng cách s d ng các đ c tr ng c a con ng ử ụ ặ ư ủ ườ ể i đ xác minh ho c ặ
nh n d ng Có r t nhi u lo i h th ng sinh tr c h c nh nh n ậ ạ ấ ề ạ ệ ố ắ ọ ư ậ
di n d u vân tay, nh n di n và phát hi n khuôn m t, nh n di n ệ ấ ậ ệ ệ ặ ậ ệ
m ng m t…Các đ c tr ng sinh h c này này th ố ắ ặ ư ọ ườ ng đ ượ ử ụ c s d ng cho nh n d ng ng ậ ạ ườ i trong h th ng giám sát ho c nh n d ng ệ ố ặ ậ ạ
t i pham L i th c a vi c s d ng đ c tr ng sinh h c trong ộ ợ ế ủ ệ ử ụ ặ ư ọ
nh n d ng đó là chúng r t khó có th thay đ i theo th i gian và ậ ạ ấ ể ổ ờ
là các đ c tr ng đ c nh t c a m i ng ặ ư ộ ấ ủ ỗ ườ i.
M t h th ng nh n di n khuôn m t là m t ng d ng máy tính, có kh năng ộ ệ ố ậ ệ ặ ộ ứ ụ ả
nh n d ng và xác minh m t ng ậ ạ ộ ườ ừ ộ ả i t m t nh s ho c t khung video trong ố ặ ừ video
Các pha trong m t h th ng nh n di n khuôn m t ộ ệ ố ậ ệ ặ :
Trang 9Đ xây d ng m t h th ng nh n d ng m t, cũng không h đ n gi n, b ể ự ộ ệ ố ậ ạ ặ ề ơ ả ướ c đ u ầ tiên c n th c hi n là ầ ự ệ face detection, t c là phát hi n ph n nh m t trong d li u ứ ệ ầ ả ặ ữ ệ
đ u vào (CSDL nh, video …) và c t l y ph n nh m t đ th c hi n nh n d ng ầ ả ắ ấ ầ ả ặ ể ự ệ ậ ạ (Face cropping), b ướ c th hai là ti n x lý nh ( ứ ề ử ả Preprocessing) bao g m các ồ
b ướ c căn ch nh nh ( ỉ ả Face image alignment) và chu n hóa ánh sáng ( ẩ Illumination normalization) ( đây đang nói t i các nh có góc nhìn th ng), ti p đ n là b ở ớ ả ẳ ế ế ướ c trích ch n đ c tr ng ( ọ ặ ư Feature extraction), b ở ướ c này m t ph ộ ươ ng pháp trích
ch n đ c tr ng nào đó (m u nh phân c c b – Local Binary Pattern – LBP, Gabor ọ ặ ư ẫ ị ụ ộ wavelets, …) sẽ đ ượ ử ụ c s d ng v i nh khuôn m t đ trích xu t các thông tin đ c ớ ả ặ ể ấ ặ
tr ng cho nh, k t qu là m i nh sẽ đ ư ả ế ả ỗ ả ượ c bi u di n d ể ễ ướ ạ i d ng m t vector đ c ộ ặ
tr ng, b ư ướ c ti p theo là b ế ướ c nh n d ng hay phân l p, t c là xác đ nh danh tính ậ ạ ớ ứ ị hay nhãn c a nh – đó là nh c a ai b ủ ả ả ủ Ở ướ c phân l p, th ớ ườ ng thì ph ươ ng pháp
k-nearest neighbor sẽ đượ ử ụ c s d ng, ngoài ra có th s d ngể ử ụ SVM (Support Vector
Machine) tuy nhiên không mang l i hi u qu cao D li u cho m t h th ng ạ ệ ả ữ ệ ộ ệ ố
nh n d ng m t đ ậ ạ ặ ượ c chia làm 3 t p: t p hu n luy n ( ậ ậ ấ ệ Training set), t p tham ậ chi u ( ế reference set hay gallery set) và t p đ nh n d ng ( ậ ể ậ ạ probe set hay query
set, đôi khi còn g i là ọ test set) Trong nhi u h th ng, t p training trùng v i t p ề ệ ố ậ ớ ậ reference T p training g m các nh đ ậ ồ ả ượ c dùng đ hu n luy n (hay h c), thông ể ấ ệ ọ
th ườ ng t p này đ ậ ượ c dùng đ sinh ra m t không gian con ( ể ộ projection subspace)
là m t ma tr n và ph ộ ậ ươ ng pháp hay đ ượ ử ụ c s d ng là PCA (Principal Component Analysis), WPCA (Whitened PCA), LDA (Linear Discriminant Analysis), KPCA
(Kernel PCA) T p reference g m các nh đã bi t danh tính đậ ồ ả ế ượ c chi u ế
(projected) vào không gian con b ở ướ c training B ướ c training nh m 2 m c đích: ằ ụ
gi m s chi u ( ả ố ề Dimension reduction) c a các vector đ c tr ng (Feature vector) ủ ặ ư
vì các vector này th ườ ng có đ dài khá l n (vài nghìn t i vài trăm nghìn) nên n u ộ ớ ớ ế
đ nguyên thì vi c tính toán sẽ r t r t lâu, th hai là làm tăng tính phân bi t gi a ể ệ ấ ấ ứ ệ ữ các nh khác l p (đ nh danh khác nhau), ngoài ra có th làm gi m tính phân bi t ả ớ ị ể ả ệ
gi a các nh thu c v m t l p (tùy theo ph ữ ả ộ ề ộ ớ ươ ng pháp, ví d nh ụ ư Linear
Discriminant Analysis LDA- còn g i là ọ Fisher Linear Discriminant
Analysis-Fisherface là m t phộ ươ ng pháp làm vi c v i t p Training mà m i đ i t ệ ớ ậ ỗ ố ượ ng có nhi u nh m t các đi u ki n khác nhau) Sau khi th c hi n chi u t p ề ả ặ ở ề ệ ự ệ ế ậ
Reference vào không gian con, h th ng l u l i k t qu là m t ma tr n v i m i ệ ố ư ạ ế ả ộ ậ ớ ỗ
c t c a ma tr n là m t vector t ộ ủ ậ ộ ươ ng ng v i nh (đ nh danh đã bi t) đ th c ứ ớ ả ị ế ể ự
hi n nh n d ng (hay phân l p) Nh n d ng (hay phân l p) đ ệ ậ ạ ớ ậ ạ ớ ượ c th c hi n v i ự ệ ớ
t p các nh kh o sát, sau khi ti n x lý xong, m i nh sẽ đ ậ ả ả ề ử ỗ ả ượ c áp d ng ph ụ ươ ng pháp trích ch n đ c tr ng (nh v i các nh thu c t p training và Reference) và ọ ặ ư ư ớ ả ộ ậ
đ ượ c chi u vào không gian con Ti p đ n vi c phân l p sẽ d a trên ph ế ế ế ệ ớ ự ươ ng pháp k-NN, đ nh danh c a m t nh c n xác đ nh sẽ đ ị ủ ộ ả ầ ị ượ c gán là đ nh danh c a ị ủ
Trang 10nh có kho ng cách (distance) g n v i nó nh t đây c n l u ý là m i nh là
H th ng quan sát, theo dõi và b o v ệ ố ả ệ
Th căn c ẻ ướ c, ch ng minh th nhân dân (Face Indentification) ứ ư
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 ề
ng d ng trong video phone.
Phân lo i trong l u tr hình nh trong đi n tho i di đ ng ạ ư ữ ả ệ ạ ộ
Ki m tra tr ng thái ng ể ạ ườ i lái xe có ng g t, m t t p trung hay không, và h tr ủ ậ ấ ậ ỗ ợ thông báo khi c n thi t ầ ế
Trong lĩnh v c thi t k đi u khi n robot ự ế ế ề ể
Ph ươ ng pháp nh n di n khuôn m t ng ậ ệ ặ ườ i:
D a vào nh ng đ c đi m c a ph ự ữ ặ ể ủ ươ ng pháp nh n di n khuôn m t ng ậ ệ ặ ườ i trên
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 khuôn
m t thành các lu t Thông th ặ ậ ườ ng các lu t mô t m i quan h gi a các đ c ậ ả ố ệ ữ ặ
Trang 11H ướ ng ti p c n d a trên so m u kh p: Dùng các m u chu n c a khuôn m t ế ậ ự ẫ ớ ẫ ẩ ủ ặ
ng ườ i (các m u này đ ẫ ượ ự c l a ch n 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 đ ặ ư ặ ẫ ả ượ c 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 nh ng d li u nh đ a vào và các m u dùng đ xác đ nh khuôn m t ữ ữ ữ ệ ả ư ẫ ể ị ặ
ng ườ i.
H ướ ng ti p c n d a trên di n m o: Trái ng ế ậ ự ệ ạ ượ c h n v i so m u kh p, 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 Hay 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 ọ
u và nh c đi m
So v i các công ngh khác ớ ệ
Trong s các kỹ thu t ố ậ sinh tr c h c ắ ọ , nh n d ng khuôn m t có th không ph i là ậ ạ ặ ể ả
ph ươ ng pháp đáng tin c y và hi u qu nh t Tuy nhiên, m t trong nh ng l i th ậ ệ ả ấ ộ ữ ợ ế quan tr ng là nó không đòi h i s h p tác c a các đ i t ọ ỏ ự ợ ủ ố ượ ng th nghi m Các h ử ệ ệ
th ng thi t k đ ố ế ế ượ ắ c l p đ t t i các sân bay, khu chung c , và nh ng n i công ặ ạ ư ữ ơ
c ng khác có th xác đ nh các cá nhân gi a đám đông, mà không b sót m t ai ộ ể ị ữ ỏ ộ Sinh tr c h c khác nh d u vân tay, quét m ng m t, và nh n d ng gi ng nói ắ ọ ư ấ ố ắ ậ ạ ọ không th th c hi n đ ể ự ệ ượ c đi u này ề
Các thách th c ứ
Nh n d ng khuôn m t còn r t xa m i có th đ t đ n m c đ hoàn h o, ngoài ra ậ ạ ặ ấ ớ ể ạ ế ứ ộ ả cũng r t khó đ th c hi n ph ấ ể ự ệ ươ ng pháp này trong các đi u ki n nh t đ nh ề ệ ấ ị Ralph Gross, m t nhà nghiên c u t i Vi n Mellon Robotics Carnegie, mô t m t ộ ứ ạ ệ ả ộ
tr ng i liên quan đ n các góc nhìn c a khuôn m t: "Nh n d ng khuôn m t đã ở ạ ế ủ ặ ậ ạ ặ
th c hi n đ ự ệ ượ c khá t t phía m t tr ố ở ặ ướ c và phía chênh l ch 20 đ , nh ng ngay ệ ộ ư sau khi b n đi v phía góc khu t, thì nó có v n đ " ạ ề ấ ấ ề
Các đi u ki n khác mà nh n d ng khuôn m t không làm vi c t t bao g m thi u ề ệ ậ ạ ặ ệ ố ồ ế ánh sáng, đeo kính mát, tóc dài, ho c các đ i t ặ ố ượ ng mà m t ph n khuôn m t b ộ ầ ặ ị che, và các hình nh đ phân gi i th p M t b t l i nghiêm tr ng là nhi u h ả ộ ả ấ ộ ấ ợ ọ ề ệ
th ng sẽ kém hi u qu n u bi u hi n khuôn m t khác nhau Ngay c m t n ố ệ ả ế ể ệ ặ ả ộ ụ
c ườ ớ i l n, cũng có th làm cho h th ng gi m tính hi u qu Ngoài ra còn có s ể ệ ố ả ệ ả ự không th ng nh t trong các b d li u đ ố ấ ộ ữ ệ ượ ử ụ c s d ng b i các nhà nghiên c u ở ứ
Trang 12Đ phân gi i th p: nh thu đ ộ ả ấ ả ượ ừ c t các camera giám sát th ườ ng có kích th ướ c và
ch t l ấ ượ ng r t r t th p, các k t qu nghiên c u v lĩnh v c này còn ch a nhi u ấ ấ ấ ế ả ứ ề ự ư ề
Nh n di n khuôn m t d a trên video: v i s phát tri n c a các ph ậ ệ ặ ự ớ ự ể ủ ươ ng ti n ệ multimedia, thông tin m t ng ặ ườ i trong các d li u video là vô cùng nhi u, tuy ữ ệ ề nhiên h u h t các ph ầ ế ươ ng pháp nh n d ng v n làm vi c v i nh tĩnh trích xu t ậ ạ ẫ ệ ớ ả ấ
t d li u video, ch a có ph ừ ữ ệ ư ươ ng pháp t t t n d ng h t u th c a d li u ố ậ ụ ế ư ế ủ ữ ệ video.
Các h th ng l n: các c s d li u nh khuôn m t đ ệ ố ớ ơ ở ữ ệ ả ặ ượ c test b i các nhà nghiên ở
c u còn khá nh (vài trăm t i vài ch c nghìn nh m t), tuy nhiên trên th c t ứ ỏ ớ ụ ả ặ ự ế các CSDL có th r t l n, ví d CSDL nh khuôn m t c a c nh sát có th ch a ể ấ ớ ụ ả ặ ủ ả ể ứ
Người thực hiện đề tài này nhằm mục đích:
- Tìm hiểu các thuật toán nhận djang và xử lí ảnh màu, cấu trúc ảnh màu.
- Nâng cao kỹ năng thiết kế và lập trình bằng ngôn ngữ Matlab.
- Rèn luyện kỹ năng nghiên cứu, tìm hiểu tài liệu.
1.2 Phạm vi đề tài
Với thờ gian có hạn nên việc nghiên cứu giới hạn trong:
- Nghiên cứu cấu trúc ảnh màu, lệnh xử lí trên Matlab.
Trang 13- Nghiên cứu giải thuật và thực hiện phần mềm trên Matlab.
- Giới thiệu về nhận dạng mặt người.
- Giới thiệu về mạng truyền thẳng feed-forward.
- Giới thiệu về thuật toán PCA.
- Cài đặt và thực nghiệm.
Trang 14Chương 2: Mạng feed-forward
2.2.1 Perceptron c b n ơ ả
M t m ng n -ron độ ạ ơ ượ ấc c u thành b i các n -ron đ n l đở ơ ơ ẻ ượ ọc g i là
các perceptron Nên trước tiên ta tìm hi u xem perceptron là gì đã r i ti n t i ể ồ ế ớ
mô hình c a m ng n -ron sau N -ron nhân t o đủ ạ ơ ơ ạ ượ ấ ảc l y c m h ng t n -ứ ừ ơron sinh h c nh hình mô t bên dọ ư ả ưới:
Hình 2.1 Nơ-ron sinh học
Như hình trên, ta có thể thấy một nơ-ron có thể nhận nhiều đầu vào và cho ra một kết quả duy nhất Mô hình của perceptron cũng tương tự như vậy:
Hình 2.2 Mô hình perceptron
M t perceptron sẽ nh n m t ho c nhi u đ u ộ ậ ộ ặ ề ầ x vào d ng nh phân và cho ra m t ạ ị ộ
k t qu ế ả o d ng nh phân duy nh t Các đ u vào đ ạ ị ấ ầ ượ c đi u ph i t m nh h ề ố ầ ả ưở ng b i ở các tham s tr ng l ố ọ ượ ng t ươ ng ng ứ w c a nó, còn k t qu đ u ra đ ủ ế ả ầ ượ c quy t đ nh ế ị
d a vào m t ng ự ộ ưỡ ng quy t đ nh ế ị b nào đó:
Trang 152.2.2 Mạng feed-forward
Mạng NN - feed-forward là sự kết hợp của của các tầng perceptron hay còn
được gọi là perceptron đa tầng (multilayer perceptron) như hình vẽ bên dưới:
Hình 2.3 Neural Network.
Một mạng NN sẽ có 3 kiểu tầng:
Tầng vào (input layer): Là tầng bên trái cùng của mạng thể hiện cho các
đầu vào của mạng
Tầng ra (output layer): Là tầng bên phải cùng của mạng thể hiện cho các
đầu ra của mạng
Tầng ẩn (hidden layer): Là tầng nằm giữa tầng vào và tầng ra thể hiện
cho việc suy luận logic của mạng
Lưu ý rằng, một NN chỉ có 1 tầng vào và 1 tầng ra nhưng có thể có nhiều tầng ẩn
Trang 16Hình 2.4 NN - 2 hidden layer
Trong mạng NN, mỗi nút mạng là một sigmoid nơ-ron nhưng hàm kích hoạt củachúng có thể khác nhau Tuy nhiên trong thực tế người ta thường để chúng cùngdạng với nhau để tính toán cho thuận lợi
Ở mỗi tầng, số lượng các nút mạng (nơ-ron) có thể khác nhau tuỳ thuộc vào bàitoán và cách giải quyết Nhưng thường khi làm việc người ta để các tầng ẩn có
số lượng nơ-ron bằng nhau Ngoài ra, các nơ-ron ở các tầng thường được liên
kết đôi một với nhau tạo thành mạng kết nối đầy đủ (full-connected network).
Khi đó ta có thể tính được kích cỡ của mạng dựa vào số tầng và số nơ-ron
2.2 Mạng feed-forward trong matlab
có chứa một nơron thôi
Sau đây là cấu trúc của net: