KHOA CÔNG NGHỆ THÔNG TIN ---o0o---LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC HỆ THỐNG NHẬN DẠNG KHUÔN MẶT THỜI GIAN THỰC VỚI XỬ LÝ SONG SONG TRONG MÔI TRƯỜNG CỤM MÁY TÍNH PHÂN HỆ 01: KHAI ỨNG DỤNG NHẬ
Trang 1KHOA CÔNG NGHỆ THÔNG TIN
-o0o -LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
HỆ THỐNG NHẬN DẠNG KHUÔN MẶT THỜI GIAN THỰC VỚI XỬ LÝ SONG SONG TRONG
MÔI TRƯỜNG CỤM MÁY TÍNH
PHÂN HỆ 01:
KHAI ỨNG DỤNG NHẬN DẠNG KHUÔN MẶT THỜI GIAN THỰC TRÊN HỆ THỐNG TÍNH TOÁN SONG SONG PHÂN CỤM”
Cần Thơ, 2011
Trang 2KHOA CÔNG NGHỆ THÔNG TIN
-o0o -LUẬN VĂN TỐT NGHIỆP ĐẠI HỌC
HỆ THỐNG NHẬN DẠNG KHUÔN MẶT THỜI GIAN THỰC VỚI XỬ LÝ SONG SONG TRONG
MÔI TRƯỜNG CỤM MÁY TÍNH
PHÂN HỆ 01:
“BIỂU DIỄN DỮ LIỆU TRONGMÁY TÍNH CỤC BỘ VÀ TRIỂN
KHAI ỨNG DỤNG NHẬN DẠNG KHUÔN MẶT THỜI GIAN THỰC TRÊN HỆ THỐNG TÍNH TOÁN SONG SONG PHÂN CỤM”
Có thể tìm hiểu luận văn tại:
Thư viện Khoa Công nghệ thông tin và Truyền thông, Trường Đại học CầnThơ
Trang 3Một số thuật ngữ Các chữ viết tắt Các hình ảnh
Trang 4 Eigenface: khuôn mặt riêng
AdaBoost: giải thuật phân lớp dữ liệu
Eigenvector: vector đặc trưng
Valuevector: giá trị vector
Send: thủ tục gửi dữ liệu
Trang 5 SVM: Support Vector Machine.
LDA: Linear Discriminant Analysis
HMM: Hidden Markov Model
PCA: Principal Component Analysis
SVM: Support Vector Machines
KNN: K-Nearest Neighbor
AAM: Active Appearance Model
SISD: Single Instruction Stream, a Single Data Stream
SIMD: Single Instruction Stream, Multiple Data Stream
MISD: Multiple Instruction Stream, a Single Data Stream
MIMD: Multiple Instruction Stream, Multiple Data Stream
SPMD: Single Program Multiple Data
MPI: Message Passing Interface
NND: Nearest Neighbor Distance
Trang 6Contents
Hình 1-1: công nghệ nhận dạng mống mắt 19
Hình 1-2: Các giải pháp bảo mật 20
Hình 1-3: Các ứng dụng mở rộng cho hệ thống nhận dạng 21
Hình 1-4: Các khó khăn của việc nhận dạng mặt người: 23
Hình 2-1: Các công nghệ sinh trắc học 30
Hình 2-2: Hệ thống nhận dạng và xác minh khuôn mặt 31
Hình 2-3 : Hình ảnh tích hợp 36
Hình 2-4: Diện tích của hình chữ nhật R được tính bằng L4-L2-L3+L1 36
Hình 2-5 : Các loại đặc trưng mở rộng của Haar-like cơ sở 37
Hình 2-6 : Các khu vực màu đen tương ứng với đặc trưng haar-like 37
Hình 2-7: Mô hình phân tần kết hợp các bộ phân loại yếu để xác định khôn mặt 38
Hình 2-8: Kết hợp các bộ phân loại yếu thành bộ phân loại mạnh 40
Hình 2-9 : Quá trình xữ lý và biến đổi hình ảnh 41
Hình 2-10: Hệ thống xác định vị trí khuôn mặt người (Face detection system) 41
Hình 2-11 : Hình vẽ mô tả hướng của các vector riêng 43
Hình 2-12 : Cấu trúc của eigenvector 44
Hình 2-13: Hình ảnh khuôn mặt và sự kết hợp các Eigenface 45
Hình 2-14: Kiến trúc SISD 49
Hình 2-15: Kiến trúc SIMD 50
Hình 2-16: Kiến trúc MISD 51
Hình 2-17: Kiến trúc MIMD 52
Hình 2-18: Mô hình chia sẽ không gian bộ nhớ 53
Hình 2-19: Mô hình truyền thông điệp 53
Hình 2-20: Công nghệ Cluster 55
Hình 3-1: Hệ thống nhận dạng và xác minh khuôn mặt 61
Hình 3-2: Quá trình nhận dạng khuôn mặt 62
Hình 3-3 Lưu đồ phân loại 64
Hình 3-4: Mô hình nhận dạng khuôn mặt thời gian thực 65
Hình 3-5: Rút trích đặc trưng dữ liệu khuôn mặt bằng PCA 65
Trang 7Hình 3-8: Biểu diển các Eigenvecto khuôn mặt lên máy tính 68
Hình 3-9: Mô hình detection face với Cascade Boosting 69
Hình 3-10: Tập ảnh học gồm 6 ảnh 71
Hình 3-11: Data.xml lưu trữ những khuôn mặt vừa được huấn luyện 71
Hình 3-12: Code minh họa phát hiện khuôn mặt 73
Hình 3-13: Giao diện chương trình phát hiện khuôn mặt 74
Hình 3-14: Code minh họa huấn luyện khuôn mặt 75
Hình 3-15: Hệ thống Cluster có hai ứng dụng hoạt động song song trên mỗi node 78
Hình 3-16: Hệ thống Cluster độc lập chứa hai ứng dụng khác nhau 79
Hình 3-17: Hai node active được dự phòng bởi node Passive 79
Hình 3-18: Mô hình Cluster được triển khai 80
Hình 3-19 : Mô phỏng hệ thốngmáy tính trước khi chạy ứng dụng nhận dạng 89
Hình 3-20 : Hệ thống phát hiện khuôn mặt 89
Hình 3-21 : Mô phỏng kết quả nhận dạng của ứng dụng được song song hóa 90
Hình 3-22 : Mô phỏng máy tính khi chạy ứng dụng nhận dạng 90
hình 3-23 : Mô phỏng kết quả và thời gian nhận dạng 91
Trang 8Tóm tắt 16
Abtract 17
CHƯƠNG I: 18
TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG KHUÔN MẶT 18
1 Mô tả bài toán 18
2 Lịch sử giải quyết vấn đề 23
3 Nội dung nghiên cứu 24
3.1 Mục tiêu cần đạt được 24
3.2 Nhiệm vụ nghiên cứu 24
3.4 Phương pháp nghiên cứu 25
4 Phạm vi ứng dụng 25
4.1 Phạm vi lý thuyết 25
4.2 Phạm vi ứng dụng 26
5 Hướng tiếp cận và hướng giải quyết 26
5.1 Hướng tiếp cận 26
5.2 Cách giải quyết 27
6 Bố cục luận văn 28
Chương II 30
CƠ SỞ LÝ THUYẾT 30
Một số khái niệm liên quan đến nhận dạng khuôn mặt 30
1.1 Hệ thống sinh trắc học 30
1.2 Hệ thống nhận dạng khuôn mặt 31
1.3 Hệ thống nhận dạng tĩnh-tĩnh, tĩnh-động, động-động 32
1.3.1 Hệ thống nhận dạng tĩnh-tĩnh 32
1.3.2 Hệ thống nhận dạng tĩnh-động 32
1.3.3 Hệ thống nhận dạng động-động 32
2 Tổng quan về máy học 32
3 Giải thuật phát hiện khuôn mặt (FACE DETECTOR ALGORITHM) 35
3.1 Mô tả giải thuật 35
Trang 93.2.3 Phân lớp đặc trưng (Haar Feature Classifier) 37
3.2.4 Phân loại (Cascade) 37
3.3 Phương pháp Adaboost 38
3.3.1 Giới thiệu 38
3.3.2 Thuật toán Adaboost 39
3.3.3 Dò tìm khuôn mặt 40
4 Rút trích đặc trưng với PCA 41
4.1 Cơ sở lý thuyết 41
4.2 Sự diển giải bằng hình học 42
4.3 Kỹ thuật rút trích đặc trưng của PCA 43
5 Huấn luyện khuôn mặt với Eigenfaces 44
5.2 Các bước tạo ra Eigenfaces 45
6 Nhận dạng khuôn mặt 47
6.1 Giải thuật PCA cải tiến 47
7.1 Phương pháp PCA cải tiến (PCA cục bộ) 47
7.1.1 Trong quá trình rút trích đặc trưng: 47
7.1.2 Trong quá trình nhận dạng 48
7.2 So sánh PCA truyền thống và PCA cải tiến 48
8 Tính toán song song [chi tiết được đề cập trong phân hệ PH03 của bạn Võ Văn Vủ] 49 46
8.1 Khái niệm hệ thống tính toán song song 49
8.2 Nền tảng tính toán song song 49
8.3 Một số mô hình lập trình song song thông dụng 52
8.3.1 Mô hình chia sẻ không gian bộ nhớ 52
8.3.2 Mô hình truyền thông điệp 53
8.4 Cách thức xây dựng một chương trình song song 54
9 Cụm máy tính (Cluster) 54
9.1 Giới thiệu 55
9.2 Định nghĩa Cluster 55
9.3 Các ưu điểm của Cluster 56
9.4 Các thành phần của Cluster 57
Trang 10NỘI DUNG VÀ KẾT QUẢ NGHIÊN CỨU 61
1 Giới thiệu về bài toán 61
2 Xác định giải thuật nhận dạng đễ tiến hành đề ra phương pháp biểu diễn dữ liệu và định dạng khuôn mặt trong máy tính 63
3 Qui trình xây dựng tập dữ liệu huấn luyện 65
3.1 Mô hình tổng quát hệ thống 65
3.2 Chi tiết qui trình rút trích đặc trưng dữ liệu khuôn mặt bằng PCA 65
4 Thu thập dữ liệu ảnh khuôn mặt 66
5 Biểu diễn dữ liệu khuôn mặt trong máy tính cục bộ 68
6 Lập trình rút trích các đặc trưng khuôn mặt và lưu trữ 68
6.1 Xác định vị trí khuôn mặt từ ảnh nguồn đầu vào 68
6.2 Rút trích đặc trưng khuôn mặt và lưu trữ 69
6.4 Giới thiệu và chương trình 72
6.4.1 OpenCV (chi tiết được đề cập trong phân hệ PH02 của bạn Võ Đông Nhất) 72
6.4.2 Chương trình 73
7 Nghiên cứu nguyên lý lập trình song song (chi tiết được đề cập trong phân hệ PH03 của bạn Võ Văn Vủ) 76
7.1 Định nghĩa lập trình song song 76
7.2 Tại sao phải dùng lập trình song song 76
7.3 Những lưu ý khi lập trình song song 77
7.4 Các mô hình lập trình song song thông dụng 78
8 Nghiên cứu và xây dựng hệ thống tính toán song song phân cụm (Cluster) 78
8.1 Các cấu trúc thường gặp của Cluster 78
8.2 Từng bước xây dựng hệ thống xử lý song song phân cụm (Cluster) 79
8.2.1 Mô hình Cluster được triển khai 79
8.3 Cài đặt chương trình hệ thống ở các cluster node, trình tự thực thi 82
9 Triển khai bại toán nhận dạng thời gian thực trên hệ thống tính toán song song cụm máy tính (Cluster) và đánh giá hiệu suất hệ thống 88
9.1 Triển khai bài toán nhận dạng thời gian thực trên hệ thống tính toán song song trên cụm máy tính cụm máy tính(Cluster): 88 9.2 Đánh giá hiệu suất của hệ thống khi triển khai ứng dụng nhận dạng thời gian thực
Trang 1111 Tăng tốc độ xử lý hệ thống với tính toán song song (Tham khảo phân hệ PH03 của
Võ Văn Vủ) 91
CHƯƠNG IV: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 92
1 Kết luận 92
1.1 Kết quả đạt được của cả nhóm 92
1.2 Kết quả đạt được của cá nhân 92
1.3 Hạn chế 92
2 Hướng phát triển 93
TÀI LIỆU THAM KHẢO 94
Trang 12Luận văn “Nhận dạng khuôn mặt thời gian thực kết hợp với xữ lý song song trong môi trường cụm máy tính ” là một khó khăn thách thức to lớn đối với bản thân chúng em Trong quá trình thực hiện chúng em đã gặp rất nhiều khó khăn Nhưng được sự giúp đỡ, chỉ dạy tận tình của thầy Phan Thượng Cang đã giúp chúng em hoàn thành được luận văn của mình.
Trước tiên em xin cảm ơn thầy Phan Thượng Cang đã cho chúng em những đề tài hay mang tính thực tế rất cao, thầy đã giúp chúng em hiểu nhiều hơn về việc thực hiện nhận dạng một khuôn mặt là như thế nào, cách thức để so sánh những hình ảnh được thu từ nhiều nguồn khác nhau, củng như những phương pháp hổ trợ nhận dạng khuôn mặt như: PCA, LDA, SVM, 3D, ACI Và biết cách sử dụng thư viện OpenCV để nhận dạng khuôn mặt.
Chúng em xin cám ơn tất cả thầy cô trường Đại Học Cần Thơ, đặc biệt là các thầy cô khoa công nghệ thông tin và truyền thông đã tận tình chỉ dạy, truyền đạt những kiến thức quí báo giúp chúng em dần tích lũy và hoàn thiện kỹ năng của mình.
Sau cùng chúng con xin gửi lòng biết ơn sâu sắc và sự kính trong đến ông bà, cha mẹ, cùng toàn thể gia đình những người đã nuôi dạy chúng con trưởng thành như ngày hôm nay.
Mặc dù cố gắng hết sức, song chắc chắn luận văn không khỏi những thiếu sót Chúng em rất mong được sự thông cảm và chỉ bảo tận tình của quí thầy cô cùng các bạn sinh viên
Cuối cùng, em xin chân thành cảm ơn Khoa Công Nghệ Thông Tin và Truyền Thông Trường Đại học Cần Thơ đã tạo mọi điều kiện về cơ sở vật chất cho chúng em hoàn thành đề tài luận văn này
Trân trọng.
TP.Cần Thơ, 04/05/2011 Sinh viên thực hiện:
Huỳnh Thiên Dương, MSSV:1071512
Trang 13
Cần Thơ, ngày… tháng… năm 2010
Cán bộ hướng dẫn,
Ths Phan Thượng Cang
NHẬN XÉT CỦA CÁN BỘ PHẢN BIỆN
Trang 14
Cần Thơ, ngày… tháng… năm 2010
Cán bộ phản biện,
Ts Lê Quyết Thắng
Trang 15
Cần Thơ, ngày… tháng… năm 2010
Cán bộ phản biện,
Trang 16Tóm tắt
Trong những năm gần đây, công nghệ thông tin ngày càng phát triển, người ta chú ý
và quan tâm nhiều hơn trong lĩnh vực công nghệ tri thức và trí tuệ nhân tạo Trong đó,các công trình nghiên cứu và ứng dụng về nhận dạng khuôn mặt người luôn được ưutiên phát triển và đánh giá cao Tuy nhiên, việc ứng dụng trong thực tế còn nhiều hạnchế bởi tính hiệu quả và tốc độ của nó Hiện nay, người ta đã sử dụng nhiều phươngpháp để nhận dạng mặt người như : SVM, LDA , HMM, PCA,….Mỗi phương phápđiều có ưu và nhược điểm riêng Vấn đề đặt ra là làm sao lựa chọn một phương pháptối ưu nhất cho từng công việc Phương pháp PCA được lựa chọn cho việc phát triển
ứng dụng “Nhận dạng khuôn mặt với thời gian thực” bởi hệ thống đòi hỏi tốc độ
nhận dạng phải rất nhanh Tuy nhiên, PCA chưa thực sự chính xác cho nên chúng tôi
đã áp dụng phương pháp PCA cải tiến để làm tăng độ chính xác Song, khi triển khaiứng dụng trên thực tế trên máy tính cục bộ thì tốc độ nhận dạng chưa nhanh bởi chiếmnhiều tài nguyên và khả năng xử lý Vì thế, chúng em đã phát triển ứng dụng nhậndạng khuôn mặt theo hướng song song trên môi cụm máy tính để công việc được thựchiện nhanh chóng hơn và hiệu quả hơn Đề tài được chúng em thực hiện với các côngviệc như sau:
Thu thập và biểu diễn dữ liệu khuôn mặt trong máy tính
Xây dựng hệ thống nhận dạng khuôn mặt thời gian thực
Tăng tốc độ xử lý của hệ thống nhận dạng khuôn mặt với tính toán song song
Triển khai ứng dụng nhận dạng trên hệ thống tính toán song song phân cụm
Trang 17In recent years, information technology is more develop than before, people noted andhad being more attention in the field of knowledge technology and artificialintelligence In particular, the researching and application of face recognition hasalways been a priority for development and appreciation However, the applying infact is still restricted by the efficiency and speedly There are many methods for facerecognition, such as SVM, LDA, HMM, PCA, Each method has advantages anddisadvantages of its own The problem is how to choose an optimal method for each
job We chosen PCA method to develop application about “Facial recognition with real time” because the system require about speed is very quickly However, PCA is
not really accurate, so we have applied the PCA method improvement to increase theaccuracy But, face recognition system processed slowly in local computer because itused a lot of resources and required powerful processor Therefore, we have developedthis application parallelization in cluster to easier and fater This thesis has done by uswith the works as follows:
Collect and represent data in the computer face
Develop face recognition system in real time
Increase the processing speed of face recognition system for parallel computing
Deploying applications on the system identify parallel computing cluster
Trang 20CHƯƠNG I:
TỔNG QUAN VỀ BÀI TOÁN NHẬN DẠNG KHUÔN MẶT
1 Mô tả bài toán
Hiện nay, cùng với sự phát triển của xã hội, vấn đề an ninh bảo mật đang được yêu cầukhắc khe tại mọi quốc gia trên thế giới Các hệ thống nhận dạng con người được ra đờivới độ tin cậy ngày càng cao Một trong các bài toán nhận dạng con người rất đượcquan tâm hiện nay là nhận dạng khuôn mặt Vì nhận dạng khuôn mặt là cách mà conngười sử dụng để phân biệt nhau Bên cạnh đó, ngày nay việc thu thập, xử lý thông tinqua ảnh để nhận biết đối tượng đang được quan tâm và ứng dụng rộng rãi Với phươngpháp này, chúng ta có thể thu nhận được nhiều thông tin từ đối tượng mà không cầntác động nhiều đến đối tượng nghiên cứu Sự phát triển của khoa học máy tính tạo môitrường thuận lợi cho bài toán nhận dạng mặt người từ ảnh số Các hệ thống nhận dạngoffline đã ra đời và có độ tin cậy cao, tuy nhiên các hệ thống nhận dạng online bằngcamera lại chưa đáp ứng được nhiều Vì thế, em đã nghiên cứu và xây dựng nên mộtchương trình nhận dạng khuôn mặt thời gian thực có khả năng xử lý online và offline
để minh chứng và đáp ứng cho nhu cầu thực tế
Hệ thống này đòi hỏi ở khả năng xử lý một lượng khổng lồ các hình ảnh thu về định
kỳ từ các camera và yêu cầu thời gian phân tích nhận dạng phải nhanh chóng Xuấtphát từ thực tế đó, công nghệ cụm máy tính (Cluster) được xem như là một giải phápkhả thi để giải quyết những đòi hỏi trên Clustering là một kiến trúc nhằm đảm bảonâng cao khả năng sẵn sàng cho các hệ thống mạng máy tính Clustering cho phép sửdụng nhiều máy chủ kết hợp với nhau tạo thành một cụm có khả năng chịu đựng hay
chấp nhận sai sót (fault-tolerant) nhằm nâng cao độ sẵn sàng của hệ thống mạng.
Cluster là một hệ thống bao gồm nhiều máy tính mạnh hay máy chủ được kết nối vớinhau theo dạng song song hay phân tán và được sử dụng như một tài nguyên thốngnhất Nếu một máy chủ ngừng hoạt động do bị sự cố hoặc để nâng cấp, bảo trì, thì toàn
bộ công việc mà máy chủ này đảm nhận sẽ được tự động chuyển sang cho một máychủ khác (trong cùng một cluster) mà không làm cho hoạt động của hệ thống bị ngắt
hay gián đoạn Quá trình này gọi là “fail-over”; và việc phục hồi tài nguyên của một máy tính trong hệ thống (cluster) được gọi là “fail-back”.
Việc nghiên cứu xây dựng hệ thống nhận dạng khuôn mặt thời gian thực với côngnghệ điện toán lưới nhằm giải quyết các vấn đề trên được nhanh chóng và hiệu quả.Hơn thế nửa, bài toán nhận dạng khuôn mặt người còn có ý nghĩa hết sức quan trọng,
Trang 21trí tuệ nhân tạo như : nhận dạng dấu vân tay; nhận dạng chữ viết tay; nhận dạng giọng
nói…Vì thế, đó là lý do mà chúng em thực hiện đề tài nghiên cứu “Nhận dạng khuôn mặt với thời gian thực kết hợp với xử lý song song trong môi trường điện toán lưới”
Nhận dạng mặt người – công nghệ không thể thay thế:
Nếu như công nghệ nhận dạng giọng nói phù hợp với các ứng dụng call-center vànhược điểm của nó là tiếng ồn, không phù hợp với nơi công cộng đông người thì côngnghệ nhận dạng chữ ký cũng gây nhiều phiền phức cho người sử dụng vì khó duy trìđược chữ ký giống nhau ngay trong cùng một thời điểm Trong khi đó, công nghệnhận dạng vân tay hiện đã được dùng khá phổ biến, nhưng cũng có nhược điểm là bịảnh hưởng bởi độ ẩm da và đặc biệt sẽ không chính xác cao với người có tay hay tiếpxúc với hoá chất Bên cạnh đó, nhận dạng bằng vân tay còn có những hạn chế về việcgiả mạo, thậm chí kẻ gian có thể sử dụng tay của người khác để xác thực Còn côngnghệ nhận dạng mống mắt là một công nghệ có nhiều ưu điểm về độ chính xác cũngnhư khả năng chống giả mạo Việc xác thực, nhận dạng trong công nghệ này dựa trên
sơ đồ mạch máu trong võng mạc mắt Sơ đồ này rất ít thay đổi kể từ lúc mới sinh chotới khi già và đặc biệt là, khi chết, hệ thống sơ đồ mạch máu này sẽ biến mất Vì thế,không thể dùng người chết để xác thực cho việc truy cập trái phép Tuy nhiên, côngnghệ này lại bị tác động bởi nhiều yếu tố khác như độ rộng của mắt, lông mi, kính đeo
và khó triển khai phổ biến trên diện rộng do độ phức tạp của các thiết bị
Hình 1-1: công nghệ nhận dạng mống mắt
Trong khi đó, mặc dù độ chính xác không là phải ưu điểm nổi bật của công nghệ nhậndạng mặt người song không giống với những phương pháp khác, nhận dạng mặt người
là công nghệ nhận dạng không cần đến sự tiếp xúc trực tiếp giữa đối tượng và thiết bị
thu nhận (tính “non-intrusive”) Thay vào đó, công nghệ này mang tính theo dõi, giám
sát và rất thuận tiện cho những ứng dụng bảo vệ mục tiêu, chống khủng bố tại nhữngđiểm công cộng đông người Đây cũng là ưu điểm nổi trội của nhận dạng mặt người
mà các công nghệ nhận dạng khác khó có thể có được
Trang 22Hình 1-2: Các giải pháp bảo mật
Các phương pháp nhận dạng mặt người:
Phương pháp nhận dạng hiện nay có 2 loại:
Nhận dạng dựa trên các đặc trưng của các phần tử trên khuôn mặt (Featurebased face recognition)
Nhận dạng dựa trên xét tổng thể khuôn mặt (Appearance based facerecognition)
Ngoài ra còn có một số loại nhận dạng sử dụng mô hình về khuôn mặt, một số phươngpháp được dùng cho loại này:
Nhận dạng 2D: Elastic Bunch Graph, Active Appearance Model
Nhận dạng 3D: 3D Morphable Model
Nhận dạng dựa trên các đặc trưng khuôn mặt:
Đâ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ìnhhọ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,…), và mối quan hệ giữa chúng (như khoảng cách của hai mắt, khoảng cách củahai lông mày,…)
Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng để nhận biếtkhuôn mặt Hơn nữa 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ị xoayhoặc ánh sáng thay đổi
Trang 23thước nhỏ thì các đặc tính sẽ khó phân biệt do đó khó tính toán được các đặc trưng trênkhuôn mặt.
Nhận dạng dựa trên xét toàn diện khuôn mặt:
Nhận dạng đựa trên toàn diện khuôn mặt, có nghĩa mình sẽ không đi xét đến từngthành phần đặc trưng trên khuôn mặt nữa… Mình sẽ xem khuôn mặt là một khônggian cụ thể và mình tìm những đặc trưng, những đặc điểm chính trên không gian đó.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 RxC là mộtvector trong không gian RxC chiều Ta sẽ xây dựng một không gian mới có chiều nhỏhơn sao cho khi biểu diễn trong không gian đó các đặc điểm chính của một khuôn mặtkhông bị mất đi Trong không gian đó, các ảnh của cùng một người sẽ được tập trunglạ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 sử dụng là trong hướng tiếp cận này:
PCA (Principle Components Analysis)
LDA (Linear Discriminant Analysis)
Trong nội dung nghiên cứu của đề tài, chúng em tập trung tìm hiểu và xây dựng hệthống nhận dạng khuôn mặt theo phương pháp PCA
Một số ứng dụng cho hệ thống nhận dạng khuôn mặt:
Mặc dù hiện tại ở Việt Nam, việc triển khai giải pháp nhận dạng mặt người trong cácứng dụng đời sống hàng còn nhiều hạn chế, đặc biệt là vấn đề xây dựng một CSDLảnh công dân Tuy nhiên, trên thế giới đã có nhiều nước sử dụng giải pháp này :
Hình 1-3: Các ứng dụng mở rộng cho hệ thống nhận dạng.
Các ứng dụng cho phòng chóng tội phạm: Giúp các cán bộ công an có thể phát hiệntội phạm bị truy nã hay giám sát những đối tượng đã có tiền án tiền sự ở những nơicông cộng, đông người
Trang 24 Các ứng dụng đăng nhập: Có thể cho phép người dùng hợp pháp có thể truy cậpvào một hệ thống an ninh Ví dụ như: hệ thống login vào hệ điều hành, hệ thống đăngnhập vào một webside.
Các ứng dụng về xác nhận thông tin: Khi chúng ta phát hiện một người nào đó,nhưng không biết gì về họ Chúng ta có thể xác định được thông tin của họ từ ảnh lấy
từ một máy ảnh hay một điện thoại di động gửi đến hệ thống máy tính có cài chươngtrình nhận dạng để phân tích và kiểm tra Tương lai có thể được ứng dụng trong bộmáy tìm kiếm như google, bing, msn như : Tìm kiếm một trận đấu có Ronaldo thamgia, tìm kiếm một bộ phim có Thành Long đóng, tìm kiếm một video clip có Lee MinHo…
Kinh doanh thương mại điện tử: Với sự tiến bộ của khoa học công nghệ, nhiều hìnhthức kinh doanh thương mại xuất hiện, đặc biệt là thương mại điện tử Việc buôn bán
và trao đổi giữa hai bên đối tác không cần diễn ra trực tiếp (mặt đối mặt), mà chỉ cầnqua mạng với hình ảnh của người đại diện Tuy nhiên bên cạnh đó sẽ có nhiều mặttiêu cực trên hình thức kinh doanh này, đó là các vụ lừa đảo, giả mạo, giả danh Ứngdụng giúp biết được đối tác của mình là thật hay giả
Hệ thống điểm danh, chấm công nhân viên: Hiện nay trong các khu công nghiệphay những công ty sản xuất lớn có hàng ngàn công nhân vào ra mỗi ngày Ứng dụng
có thể giúp chúng ta nhận ra từng nhân viên của công ty
Ngăn chặn xuất/nhập cảnh bất hợp pháp: Một số người không được xuất/nhập cảnhvào nước, song họ cố tình khai gian giấy tờ để xuất/nhập cảnh bất hợp pháp Ứng dụng
có thể ngăn chặn được sự gian lận này (hiện nay cơ quan xuất nhập cảnh của Mỹ đã ápdụng)
Ứng dụng trên máy kỹ thuật số Canon: Hãng này cho sản xuất một thế hệ máy ảnhmới có thể phát hiện được khuôn mặt người cho kết quả hình ảnh đẹp hơn
Những thách thức của bài toán nhận dạng khuôn mặt:
Hướng của khuôn mặt đối với máy ảnh hay camera như : nhìn thẳng, nhìn nghiênghay từ trên xuống Cùng trong một ảnh có nhiều khuôn mặt với nhiều tư thế khácnhau
Sự có mặt của các chi tiết không phải là đặc trưng của khuôn mặt người như: Râu,kính mắt, khẩu trang,…
Các nét mặt (facial expression) như vui, buồn, giận dữ hay ngạc nhiên
Trang 25Mặt người bị che khuất bởi các đối tượng trong hình ảnh.
Hình 1-4: Các khó khăn của việc nhận dạng mặt người:
(A) hình ảnh bị chói bởi ánh sáng; (B) hình ảnh có màu da gần giống như màu nền; (C) hình ảnh khuôn mặt nghiên; (D) hình ảnh có nhiều râu che phủ; (F) hình ảnh phát họa hay hình vẽ; (G) hình ảnh có các khuôn mặt quay theo hướng
khác nhau;(H) hình ảnh có khuôn mặt mắt kính
2 Lịch sử giải quyết vấn đề
Trong mười năm qua, nhận dạng khuôn mặt là một trong những lĩnh vực phổ biếntrong các nghiên cứu về thị giác máy tính và trí tuệ nhân tạo Vấn đề về nhận dạngkhuôn mặt đã được nghiên cứu từ năm 1960 Hệ thống nhận dạng khuôn mặt đầu tiênđáp ứng được yêu cầu xác định các đặc trưng chính của khuôn mặt như mắt, tai, mũi,miệng, môi, chân mài trên bức ảnh Và tính toán khoảng cách, tỷ lệ và độ sai khác củacác điểm tương ứng với dữ liệu cần cần đối chiếu Năm 1970, Goldstein, Harmon andLesk sử dụng 21 điểm chủ động như: màu tóc, độ dày của môi cho việc nhận dạng.Vấn đề với hai hướng giải quyết ở trên là đo lường khoảng cách và xác định vị trí bằngcách thủ công Năm 1988, Kirby and Sirovich đã áp dụng phương pháp PCA, một kỹthuật sử dụng đại số tuyến tính Đây chính là cột mốc quan trong cho quá trình nhậndạng sau này Năm 1991, Turk and Pentland đã khám phá ra kỹ thuật sử dụngeigenfaces, khám phá này mở đầu cho các ứng dụng nhận dạng thời gian thực Tuynhiên, ứng dụng đầu tiên cho nghiên cứu của Turk and Pentland mãi đến 2/2001 mớichương trình ứng dụng Chương trình này có thể hổ trợ cho phát hiện một người ở nơicông cộng hay nơi riêng tư Ngày nay, nhận dạng khuôn mặt củng đã đang được rấtquan tâm và đánh giá cao
Trang 263 Nội dung nghiên cứu
3.1 Mục tiêu cần đạt được
Nhận dạng khuôn mặt là một bài toán khó và đã được nghiên cứu với nhiều giải phápkhác nhau nhưng kết quả đạt được vẫn còn hạn chế Một giải pháp trọn vẹn và toàndiện cho vấn đề này đòi hỏi vừa phải có khả năng xử lý tốt đáp ứng thời gian thực vàđồng thời có khả năng đảm bảo độ chính xác và hiệu quả khi có sự thay đổi của môitrường và đối tượng quan sát: điều kiện ánh sáng, hướng, tư thế sắc thái, khuôn mặt, vàcác thành phần phụ kèm như: râu, kính, nốt ruồi, vết sẹo, v.v Đó là tất cả những vấn
đề đặt ra để tiếp tục nghiên cứu
Mục đích của đề tài là đề xuất cải tiến phương pháp nhận dạng khuôn mặt theo phươngpháp PCA làm tăng tốc độ và hiệu quả Từ đó, ứng dựng xây dựng hệ thống giám sát
tự động nhận diện khuôn mặt kết hợp với xử lý song song và triển khai trên Cluster.Việc sử dụng phương pháp PCA cải tiến để nhận dạng khuôn mặt giúp cho việc nhậndạng được chính xác hơn và loại bỏ những trường hợp lỗi của phương pháp PCAtruyền thống như : phát hiện các đặc trưng không phải khuôn mặt, tìm khuôn mặt gầnnhất trong quá trình nhận dạng
Tuy nhiên, do hệ thống này được sử dụng để giám sát ở những nơi đông người vì vậy
sẽ có một lượng lớn hình ảnh hay video được gửi về từ các camera hay bộ cảm biếntheo thời gian thực Điều này vượt quá khả năng lưu trữ, truyền nhận tập tin cũng như
xử lý nhận dạng của một máy tính cục bộ Đối ngược với mô hình tính toán truyềnthống trên máy tính cục bộ, mô hình cụm máy tính chỉ sử dụng máy tính cá nhân nhưgiao diện giữa người sử dụng và các node xử lý Sức mạnh tính toán của cụm máy tínhđược triển khai thông qua mạng cục bộ, kết hợp với công nghệ song song Điều đócung cấp cho chúng ta một giải pháp hữu hiệu để giải quyết những trở ngại cho bàitoán trên
3.2 Nhiệm vụ nghiên cứu
Tập trung vào việc nghiên cứu, phân tích và đánh giá các giải thuật nhận dạng khuônmặt theo hướng tiếp cận thống kê như : PCA, HMM, LDA, SVM Bên cạnh đó, cầnphải tìm hiểu và bổ sung một số giải thuật heuristic và giải thuật song song nhằm đềxuất một giải thuật tối ưu phù hợp với tính toán lưới
Lựa chọn và sử dụng phương pháp nhận dạng khuôn mặt với PCA cải tiến cho ứngdụng nhận dạng, bởi yêu cầu về tốc độ và hiệu quả Sau đó tiến hành cài đặt thửnghiệm trên mô hình máy tính cục bộ
Trang 27Xác định những thách thức và giải pháp khi xử lý nhận dạng trên tập dữ liệu lớn liêntục được gửi về từ các camera giám sát Đặc biệt, nghiên cứu công nghệ điện toán đámlưới để hỗ trợ đầy đủ một kiến trúc phân tán và mô tả cách công nghệ này được sửdụng để giải quyết bài toán nhận dạng
Tiếp tục bổ sung và hoàn chỉnh ứng dụng nhận dạng khuôn mặt với mô hình tính toánphân cụm Công việc sẽ tự động phân phát tính toán nhận dạng đến node trên cụm máytính Hoàn chỉnh hệ thống nhận dạng khuôn mặt với hai ứng dụng : ứng dụng tuần tựtrên máy cục bộ và ứng dụng song song trên cụm máy tính Từ đó đánh giá tính hiệuquả và khả năng ứng dụng trong lĩnh vực khác
3.4 Phương pháp nghiên cứu
Thu thập, tổng hợp và đánh giá các kết quả nghiên cứu có liên quan đến lĩnh vựccủa đề tài như: nhận dạng khuôn mặt 2D, công nghệ tri thức, máy học, tính toánsong song, tính toán hiệu năng cao, điện toán lưới
Kế thừa có chọn lọc các kết quả nghiên cứu trước đó, đặc biệt hướng đến các phầnmềm tự do, phần mềm mã nguồn mở
Cải tiến, bổ sung và đưa ra các giải pháp mới hướng đến mục tiêu đề ra
Cài đặt, kiểm thử , đánh giá so sánh kết quả đạt được
Phân chia thời gian, công việc hợp lý trong quá trình làm luận văn Lên kế hoạch vàbáo cáo tiến độ làm việc của các thành viên trong nhóm, từ đó xem xét và điềuchỉnh tiến độ cho phù hợp
Trong quá trình làm việc có sự giúp đỡ lẫn nhau giữa các thành viên trong nhóm,đồng thời tranh thủ sự quan tâm giúp đỡ của giáo viên hướng dẫn
4 Phạm vi ứng dụng
4.1 Phạm vi lý thuyết
Các nghiên cứu và ứng dụng trong thị giác máy tính và trí tuệ nhân tạo
Lý thuyết tổng quan về thư viện OpenCV
Các giải thuật nhận dạng khuôn mặt
Tìm hiểu về thuật toán máy học và nhận dạng
Lý thuyêt về MPI
Lý thuyết về Cluster
Cách thức phát triển ứng dụng theo hướng song song hóa và triển khai Cluster
Trang 284.2 Phạm vi ứng dụng
Tìm hiểu về cách thức sử dụng các hàm của thư viện mã nguồn mở OpenCV 2.1.0
Xây dựng máy dò tìm khuôn mặt dựa theo trên giải thuật máy học Face Detector
Nghiên cứu cách thức rút trích đặc trưng và huấn luyện ảnh của PCA Từ đó xâydựng một máy học đễ huấn luyện ảnh
Cách thức nhận dạng bằng phương pháp PCA và xây dựng máy nhận dạng để nhậndạng ảnh đối chiếu
Phát triển ứng dụng theo hướng PCA cải tiến theo luật NND
Song song hóa chương trình nhận dạng
Triển khai ứng dụng trên môi trường Clutser
5 Hướng tiếp cận và hướng giải quyết.
5.1 Hướng tiếp cận
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 đếnngày nay là ảnh màu , video , hay camera 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ếpcậ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ữngmộ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ạikhuô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 đặctrư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ìmcá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 đặctrư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
Hướng tiếp cận dựa trên diện mạo (Phương pháp học): Trái ngược hẳn với so khớpmẫ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 Phương pháp này được chúngtôi áp tiếp cận để triển khai trong đề tài
Trang 295.2 Cách giải quyết
Đây là một đề tài lớn cần có sự phối hợp chặt chẽ giữa các thành viên trong nhóm
và sự giúp đở tận tình của thầy Phan Thượng Cang Nội dung công việc được phânthành những phân hệ cụ thể như sau:
Thời lượng
PH01
Biểu diển dữliệu khuônmặt trongmáy tính vàtriển khaiứng dụngnhận dạngtrên hệ thốngtính toánsong songphân
cụm(Cluster)
1 Nghiên cứu bài toán nhận dạngkhuôn mặt
2 Xác định giải thuật nhận dạng, đểtiến hành đề ra phương pháp biểudiễn dữ liệu khuôn mặt trong máytính
3 Thu thập dữ liệu ảnh khuôn mặt,lập trình rút trích các đặc trưngkhuôn mặt và lưu trữ
4 Nghiên cứu nguyên lý lập trìnhsong song
5 Nghiên cứu và xây dựng hệ thốngtính toán song song phân cụm(Cluster)
6 Triển khai bài toán nhận dạng thờigian thực trên hệ thống cụm máytính (Cluster) Sau đó, đánh giáhiệu suất hệ thống
04tháng
PH02 Xây dựng hệ
thống nhậndạng khuônmặt thờigian thực
1 Nghiên cứu bài toán nhận dạngkhuôn mặt
2 Đánh giá và lựa chọn giải thuậtnhận dạng
3 Phân tích và thiết kế ứng dụngnhận dạng thời gian thực
4 Lập trình ứng dụng nhận dạngkhuôn mặt thời gian thực với dữ
Võ Đông Nhất
04tháng
Trang 30liệu đầu vào từ PH01.
5 Cải tiến giải thuật và chương trình
đễ tăng độ chính xác cho hệ thốngnhận dạng
6 Triển khai thử nghiệm vào thục tế
PH03
Tăng tốc độ
xử lý hệthống nhậndạng khuônmặt với tínhtoán songsong
1 Nghiên cứu bài toán nhận dạngkhuôn mặt
2 Nghiên cứu lập trình song song vàthiết lập môi trường
3 Nghiên cứu giải thuật nhận dạng
đã cải tiến từ phân hệ PH02
4 Song song hóa bài toán nhận dạngkhuôn mặt và lập trình song song
5 Thử nghiệm ứng dụng trên máytính cục bộ và cụm máy tính đãxây dựng trong PH01
6 Đánh giá kết quả của việc songsong hóa
Võ Văn Vủ
04tháng
6 Bố cục luận văn
Nội dung của quyển báo cáo luận văn gồm 04 chương:
Chương 1: Giới thiệu tổng quan về bài toán nhận dạng khuôn mặt:
Giới thiệu tổng quan về đề tài và sự cần thiết của việc nghiên cứu đề tài này, đồng thờicũng nêu lên mục tiêu, các phương pháp nghiên cứu và hướng tiếp cận Cuối cùng lànêu lên tổng quan về nội dung của từng chương trong quyển luận văn này
Chương 2: Cơ sở lý thuyết:
Trình bày các khái niệm chính trong đề tài như: khái niệm về máy học và những thuậttoán lien quan; mô tả về thuật toán dò tìm khuôn mặt (face detector algorithm);kỹthuật rút trich đặc trưng với PCA huấn luyện khuôn mặt với Eigenfaces; kỹ thuậtnhận dạng khuôn mặt với PCA; mô hình truyền thông điệp MPI; kỹ thuật song songquá bài toán nhận dạng khuôn mặt; cách thức triển khai ứng dụng song song trên môitrường cụm máy tính Đồng thời còn đưa ra một cái nhìn tổng quát về hệ thống nhận
Trang 31dạng khuôn mặt thời gian thực với xử lý song song trên lưới điện toán hoạt động nhưthế nào.
Chương 3: Nội dung và kết quả nghiên cứu:
Trong chương này chúng em tập trung vào mô tả dữ liệu và đi chi tiết vào từng phân
hệ như: mô tả bài toán, thiết kế chương trình, giải thuật ứng dụng, các cải tiến
Chương 4: Kết quả và hướng phát triển:
Tổng kết những kết quả đạt được và những mặt hạn chế của đề tài, đồng thời địnhhướng phát triển hệ thống trong tương lai
Chương II
Trang 32Về cơ bản, có thể chia ra làm 2 kỹ thuật nhận dạng sinh trắc học khác nhau:
Dựa trên hành vi của con người: nhận dạng giọng nói (voice), chữ viết
(handwritting), chữ ký (written signature)
Dựa trên đặc điểm cơ thể: nhận dạng khuôn mặt (face), mống mắt (iris), võng mạc
(retina), vân tay (Fingerprint), tĩnh mạch lòng bàn tay (Hand vein), dấu chỉ tay(Hand Geometry), trình tự ADN
Trang 33Hệ thống sinh trắc học là một hệ thống được thiết kế để xác minh và nhận dạng mộtngười dựa vào những đặc trưng sinh học duy nhất của người đó.
1.2 Hệ thống nhận dạng khuôn mặt
Hệ thống nhận dạng khuôn mặt là một hệ thống được thiết kế để tìm thông tin của mộtngười Kỹ thuật nhận dạng là kiểm tra sự phù hợp dựa trên phép so sánh một-nhiều cụthể là tìm ra một người là ai trong số những người đã được lưu trữ trong hệ thống dựavào thông tin khuôn mặt
Hệ thống xác minh hay xác thực khuôn mặt là một hệ thống được thiết kế để xác minhthông tin của một người Kỹ thuật xác minh là kiểm tra sự phù hợp trên phép so sánhmột-một cụ thể là đối chiếu thông tin mới nhận về một người với thông tin đã lưu trữ
về người này có khớp hay không dựa trên thông tin khuôn mặt
Sau đây, chúng em xin đưa ra 2 trường hợp xác minh và nhận dạng để minh chứng chotính hiệu quả và phạm vi ứng dụng của nó (Hình 3-1)
Hình 2-2: Hệ thống nhận dạng và xác minh khuôn mặt
Xác minh có nghĩa là một hình ảnh sẽ được đối chiếu với chỉ 1 hình ảnh trong cơ sở
dữ liệu (tỉ lệ 1:1) Ví dụ như, một hình ảnh của tổng thống Bush sẽ được đối chiếu vớimột hình ảnh trong cơ sở dữ liệu của nhà trắng để xác minh xem đó có phải là Bush.Còn nhận dạng có nghĩa là một hình ảnh sẽ được đối chiếu với tất cả các hình ảnhtrong cơ sở dữ liệu để tìm ra đối tượng (tỉ lệ 1:N) Ví dụ như, hình ảnh của trùm khủng
bố Bin Laden sẽ được đối chiếu với tất cả tập ảnh trong cơ sở dữ liệu tội phạm khủng
bố để tìm ra Bin Laden
1.3 Hệ thống nhận dạng tĩnh-tĩnh, tĩnh-động, động-động
1.3.1 Hệ thống nhận dạng tĩnh-tĩnh
Hệ thống nhận dạng tĩnh-tĩnh là hệ thống được thiết kế bằng cách sử dụng các ảnh tĩnhlàm mẫu để nhận dạng khuôn mặt người trong ảnh tĩnh Kỹ thuật nhận dạng này kiểm
Trang 34tra sự phù hợp dựa trên phép so sánh một-nhiều như hệ thống nhận dạng nói chung ởtrên.
1.3.2 Hệ thống nhận dạng tĩnh-động
Hệ thống nhận dạng tĩnh-động là hệ thống được thiết kế bằng cách sử dụng các ảnhtĩnh làm mẫu để nhận dạng khuôn mặt người trong ảnh động Kỹ thuật nhận dạng nàykiểm tra sự phù hợp dựa trên phép so sánh một-nhiều như hệ thống nhận dạng nóichung ở trên Song ảnh cần kiểm tra là các khung ảnh động trong các đoạn phim từ cácmáy camera Kỹ thuật này dĩ nhiên không thể chính xác vì chuyển động của mặt ngườitrong đoạn phim khá phức tạp, song thể hiện trong ảnh tĩnh để huấn luyện lại ít
1.3.3 Hệ thống nhận dạng động-động
Hệ thống nhận dạng động-động là hệ thống được thiết kế bằng cách sử dụng các ảnhđộng làm mẫu để nhận dạng khuôn mặt người trong ảnh động Kỹ thuật nhận dạng nàykiểm tra sự phù hợp dựa trên phép so sánh một-nhiều như hệ thống nhận dạng nóichung ở trên Tuy nhiên kỹ thuật này chính xác hơn kỹ thuật sử dụng trong hệ thốngnhận dạng tĩnh-động do sự chuyển động phức tạp của khuôn mặt người củng đượchuấn luyện bằng các khung ảnh động
2 Tổng quan về máy học
Máy học (Marchine Learning) là việc biến đổi dữ liệu thô mà chúng ta gọi là huấnluyện như : hình ảnh , âm thanh, nhiệt độ… sang dạng thông tin cơ bản Dữ liệu huấnluyện phải có các đặc trưng Sau khi huấn luyện dữ liệu, máy tính có thể trả lời các câuhỏi về dữ liệu như: Xác định được đâu là khuôn mặt người trong bức ảnh hay video, sosánh sự khác biệt của dữ liệu ảnh này với dữ liệu ảnh khác Máy tính làm những việc
ấy thông qua các nguyên tắc và các phương pháp Thật may mắn với OpenCV chúng
ta được hổ trợ các phương pháp và giải thuật huấn luyện rất mạnh
Mahalanobis
Phép đo đa chiều Đo lường khoảng cách không gian dữliệu bằng chia hiệp phương sai của dữ liệu Nếu là matrận hiệp phương sai thì sữ dụng phép đo khoảng cáchEuclidean Tổng quát, ta có cách tính cho ma trận Hiệpphương sai bởi paramter sau trong thư viện OpenCV :cvCalcCovarMatrix
Trang 35được phát minh bởi Steinhaus K-means là giải thuậtnằm trong cxcore của OpenCV mà khơng cĩ ở MLlibrary Bởi vì, K-means được phát triển từ rất sớm
Normal/Nạve Bayes
classiier
Phương pháp xác định các thành phần độc lập Tuynhiên, kết quả đạt được lại rất cao Thực hiện chủ yếuqua hai phương thức chính: Huấn luyện (Train) và dựđốn (predict) trong parameter:CvNormalBayesClassifier
Decision trees
Là phương pháp phân lớp dữ liệu rất nhanh, chia nhỏ dữliệu theo mơ hình cây – cây quyết định Việc tìm kiếmthơng qua thủ tục tìm kiếm đệ quy cho cả 2 nhánh trái vàphải của cây
Boosting
Xây dựng các bộ dị tìm đễ tạo ra các bộ phân loại mạnh
từ sự kết hợp tuyến tính của bộ phân loại yếu hơn , mỗi
bộ phân loại được tao ra bao gồm các đặc trưng Các bộ
dị tìm Boosting như : Adaboost, LPBoost, TotalBoost ,BrownBoost, MadaBoost, Any Boost Được dùng phổbiến nhất là Adaboost vì kết quả tìm kiếm đạt được là rấtnhanh
Random Trees
Một rừng cây quyết định bao gồm nhiều cây quyết định.Mổi cây quyết định xây dựng với tối đa các chiều sâu.Trong thời gian học, mỗi nút của cây quyết định cĩ thểtách biến từ tập hợp ngẩu nhiên của dữ liệu, mỗi cây cĩ
1 giá trị trọng lượng (weighted) Thuật tốn này rất hiệuquả bởi việc tính hồi quy các giá trị trung bình của mỗicây.Cấu trúc parameter của nĩ CvRTParams trong thưviện OpenCV
Trang 36Face detector /
Haar classiier
Giải thuật này được xây dựng cho các ứng dụng tìmkiếm đối tượng một cách thông minh và nhanh chóng.Các đặc trưng khuôn mặt người đã được quy định sẳntrong thư viện OpenCV qua các file xml và áp dụng lýthuyết Viola-Jones Classifier đễ phân loại dữ liệu .Phương pháp này củng được chúng tôi triển khai trongnội dung nghiên cứu
Expectation
maximization (EM)
là một kỹ thuật phân cụm phổ biến Nóliên quan đến việc lặp đi lặp lại nhiều đến việc lấy nhiềukhả năng (“trung bình” hoặc "dự đoán") đoán được
mô hình hiện tại của bạn và sau đó điều chỉnh mô hình
đó để tối đa hóa cơ hội Trong OpenCV, thuật toán EMđược thực hiện trong CvEM {} lớp và đễ chọn một hỗnhợp của Gaussians vào dữ liệu Bởi vì người sử dụngcung cấp các thông số của Gaussians, thuật toán tương
Là một mạng lưới đa phân lớp, phương pháp phân lớp
dữ liệu rất mạnh, đặc biệt là trong nhận dạng chữ viết.Tuy nhiên , đây củng là phương pháp khá chậm vì nó tối
Trang 37(MLP) giữa các nút phân lớp trong các tầng Trong thư viện
OpenCV , được triển khai trong lớp CvANN_MLP{}
và ví dụ phần nhận dạng chữ viết qua file :
…/opencv/samples/c/letter_recog.cpp
Machine
(SVM)
Thuật toán máy hỗ trợ vector(SVM) thường hiệu quả
nhất trong các loại dữ liệu có số chiều lớn (ảnh của dữliệu biểu diễn gene,protein, tế bào),với ý tường làchuyển tập mẫu từ không gian biểu diễn Rn của chúngsang một không gian Rd có số chiều lớn hơn Trongkhông gian Rd, tìm một siêu phẳng tối ưu để phân hoạchtập mẫu này dựa trên phân lớp của chúng, cũng có nghĩa
là tìm ra miền phân bố của từng lớp trong không gian Rn
để từ đó xác định được phân lớp của một mẫu cần nhậndạng Kỹ thuật này được thực hiện trong lớp CvSVM{}của thư viện OpenCV
Qua quá trình nghiên cứu và tìm hiểu chúng em quyết định chọn giải thuật phát hiệnkhuôn mặt (Face detector /Haar classiier) với nhiều ưu điểm nổi trội là thông minh,nhanh chóng, mặt khác làm giảm tỉ lệ lỗi trong quá trình phát hiện khuôn mặt
3 Giải thuật phát hiện khuôn mặt (FACE DETECTOR ALGORITHM)
3.1 Mô tả giải thuật
Thuật toán nhận diện khuôn mặt này được đề xuất bởi Viola và Jones được sử dụnglàm cơ sở thiết kế của chúng tôi Thuật toán áp dụng việc tìm kiếm khuôn mặt ngườithông qua các đặc trưng Haar-like.Mỗi đối tượng trên hình ảnh sẽ được kiểm tra vàquét qua và cho ra một hình chữ nhật chứa khuôn mặt ứng viên trên đó Việc quét thuđược nhiều đặc trưng Haar-like khác nhau, mỗi Haar-like lại được phân lớp thànhnhiều lớp Các lớp nảy sẽ được đối chiếu với giá trị đặc trưng là khuôn mặt ngườiđược quy định qua các file xml của thư viện OpenCV Cụ thể như sau :
Hình chữ nhật với các tính năng đơn giản, được gọi là đặc trưng Haar-like
Một hình ảnh tích hợp được kiểm tra các đặc trưng nhanh chóng
Sử dụng phương pháp dò tìm khuôn mặt nhanh AdaBoost
Phân loại cascaded để kết hợp với các đặc trưng
3.2 Các định nghĩa liên quan
Trang 383.2.1 Hình ảnh tích hợp( Integral Image)
Đây là khái niệm chỉ tổng giá trị pixel của hình ảnh gốc, giá trị mà tại vị trí (x,y) bất
kỳ nào bằng tồng số pixel của phẩn hình chử nhật bên trên và bên trái của điếm (x,y).Cấu trúc của hình ảnh tích hợp như sau (Hình 1):
Hình 2-3 : Hình ảnh tích hợp
Các khu vực bóng mờ đại diện cho tổng các điểm ảnh lên đến vị trí (x, y) của hình ảnh
Nó cho thấy một hình ảnh 3 × 3 và hình ảnh tích pixel đại diện
Hình 2-4: Diện tích của hình chữ nhật R được tính bằng L4-L2-L3+L1
Một phương pháp rút trích các đặc trưng thích hợp cho Adaboost là phép biến đổiHaar-like Phép biến đổi Haar-like được bằng cách tính độ trên lệch giữa các miềnhình học có ba loại đặc trưng hình học sau :
Trang 39Hình 2-5 : Các loại đặc trưng mở rộng của Haar-like cơ sở
3.2.3 Phân lớp đặc trưng (Haar Feature Classifier)
Việc phân lớp các đặc trưng Haar-like sữ dụng các hình chữ nhật riêng lẽ để tính cácgiá trị đặc trưng Thực hiện công việc này bắng cách tính diện tích cùa các hình chữnhật và kết quả được cộng lại với nhau Một vài Haar-like được kết hợp với các đặctrưng được quy định sẵn đễ đối chiếu
Hình 2-6 : Các khu vực màu đen tương ứng với đặc trưng haar-like
3.2.4 Phân loại (Cascade)
Với lý thuyết phát hiện khuôn mặt của Viola and Jones, việc loại bỏ các đối tượngkhông phù hợp được thực hiện nhanh chóng qua các giai đoạn (Hình 4) Viola và Jones dùng AdaBoost kết hợp các bộ phân loại yếu sử dụng các đặc trưngHaar-like theo mô hình phân tầng (cascade) như sau:
Trang 40Hình 2-7: Mô hình phân tần kết hợp các bộ phân loại yếu để xác định khôn mặt
Trong đó, hk là các bộ phân loại yếu, được biểu diễn như sau:
x: cửa sổ con cần xét
Ok: ngưỡng (O = teta)
fk: giá trị của đặc trưng Haar-like
pk: hệ số quyết định chiều của phương trình
3.3 Phương pháp Adaboost
3.3.1 Giới thiệu
AdaBoost là một bộ phân loại mạnh phi tuyến phức dựa trên hướng tiếp cận boostingđược Freund và Schapire đưa ra vào năm 1995 Adaboost cũng hoạt động trên nguyêntắc kết hợp tuyến tính các weak classifiers để hình thành một strong classifier
Là một cải tiến của tiếp cận boosting, AdaBoost sử dụng thêm khái niệm trọng số(weight) để đánh dấu các mẫu khó nhận dạng Trong quá trình huấn luyện, cứ mỗi