Trường Đại học Bách khoa – ĐHĐN Tóm tắt–Ngày nay, nhận dạng khuôn mặt được ứng dụng rộng rãi trong nhiều lĩnh vực của đời sống như nhận diện trong lĩnh vực thương mại, phát hiện tội phạ
Trang 2LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Người hướng dẫn khoa học: TS Phạm Minh Tuấn
Đà Nẵng - Năm 2017
Trang 3LỜI CAM ĐOAN
Tôi cam đoan luận văn “Nghiên cứu kỹ thuật nhận dạng khuôn mặt người Xây dựng hệ thống camera chống trộm” này là công trình nghiên cứu của riêng tôi
Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được công bố trong bất kỳ công trình nào khác Luận văn này được thực hiện trên cơ sở nghiên cứu lý thuyết và dưới sự hướng dẫn khoa học của TS Phạm Minh Tuấn
Tác giả
Mai Xuân Phú
Trang 4NGHIÊN CỨU KỸ THUẬT NHẬN DẠNG KHUÔN MẶT NGƯỜI XÂY DỰNG
HỆ THỐNG CAMERA CHỐNG TRỘM
Học viên: Mai Xuân Phú Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01 Khóa: K31 Trường Đại học Bách khoa – ĐHĐN
Tóm tắt–Ngày nay, nhận dạng khuôn mặt được ứng dụng rộng rãi trong nhiều
lĩnh vực của đời sống như nhận diện trong lĩnh vực thương mại, phát hiện tội phạm, xử
lý video,…Hiện nay có rất nhiều các phương pháp khác nhau được xây dựng để nhận diện một người cụ thể Tuy nhiên để nhận diện được một người trong thế giới thực ta phải xây dựng được tập cơ sở dữ liệu đủ lớn Việc xử lý dữ liệu lớn này đòi hỏi phải nhanh và chính xác Nhiệm vụ đặt ra là nghiên cứu và xây dựng chương trình sử dụng phương pháp nhận diện có độ chính xác cao và thời gian tính toán ít nhất Eigenfaces
là phương pháp khá nổi tiếng và hiệu quả trong quá trình làm giảm số thuộc tính của tập dữ liệu đầu vào
Từ khóa – phát hiện khuôn mặt, theo vết khuôn mặt, nhận diện khuôn mặt,
eigenfaces, trích rút đặc trưng
FACE RECOGNITION RESEARCHING
ESTABLISHING A CAMERA SECURITY SYSTEM Abstract – Nowadays, face recognition is widely used in many fields of life such
as recognition in commercial field, crime detection, video processing, etc There are many diffirent methods were be built to recognize a particular person However, to recognize a person in real life, we have to build a large enough database The data processing requires the quick and accuration The assignment is research and building the program with high precision along withthe minimum of time Eigenfaces is well known the quite effective method in the process of the dimensional reduction of input data
Keyworks – face detection, video tracking,face recoginion, eigenfaces, feature
extraction
Trang 5MỤC LỤC
MỞ ĐẦU 1
1 Tính cấp thiết của đề tài 1
2 Mục tiêu nghiên cứu 1
3 Đối tượng và phạm vi nghiên cứu 2
4 Phương pháp nghiên cứu 2
5 Bố cục luận văn 2
CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN 3
1.1 TỔNG QUAN SINH TRẮC HỌC 3
1.2 BÀI TOÁN NHẬN DẠNG KHUÔN MẶT 3
1.2.1 Nhận dạng dựa trên các đặc trưng khuôn mặt 5
1.2.2 Nhận dạng dựa trên xét toàn bộ khuôn mặt 6
1.2.3 Điểm mạnh và hạn chế của công nghệ nhận dạng khuôn mặt 7
1.3 HỆ THỐNG CAMERA GIÁM SÁT 7
1.4 GIỚI THIỆU VỀ OPENCV 8
1.4.1 Các ứng dụng của OpenCV 9
1.4.2 Chức năng của OpenCV 9
1.4.3 Cấu trúc OpenCV 9
1.4.4 Thư viện EmguCV 10
CHƯƠNG 2 KỸ THUẬT NHẬN DẠNG KHUÔN MẶT 11
2.1 PHÁT HIỆN KHUÔN MẶT 11
2.1.1 Đặc trưng Haar-like 11
2.1.2 Thuật toán tăng tốc Adaboost 13
2.2 THEO VẾT KHUÔN MẶT THEO TRÌNH TỰ VIDEO 16
2.3 NHẬN DẠNG KHUÔN MẶT 17
2.3.1 Tiền xử lý 17
2.3.2 Trích rút đặc trưng 17
2.3.3 Nhận dạng khuôn mặt 22
2.3.4 Ví dụ Eigenface 22
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG CAMERA AN NINH 25
3.1 PHÂN TÍCH THIẾT KẾ HỆ THỐNG 25
3.1.1 Xác định yêu cầu 25
3.1.2 Biểu đồ ca sử dụng 26
3.1.3 Cơ sở dữ liệu 27
Trang 63.1.4 Sơ đồ lớp 28
3.1.5.Chức năng phát hiện khuôn mặt người 29
3.1.6 Chức năng cảnh báo âm thanh khi phát hiện ra khuôn mặt 30
3.2 KẾT QUẢ CHẠY CHƯƠNG TRÌNH 31
3.2.1.Giao diện chương trình chính 31
3.2.2 Giao diện chương trình nhận dạng khuôn mặt 32
3.2.3 Giao diện chương trình tạo tập huấn luyện 32
3.2.4 Giao diện các tùy chỉnh 34
3.3 KẾT QUẢ THỰC NGHIỆM 34
3.3.1 Chức năng phát hiện khuôn mặt 34
3.3.2 Chức năng theo vết khuôn mặt 36
3.3.3 Chức năng nhận dạng khuôn mặt 36
3.4 NHẬN XÉT 38
KẾT LUẬN VÀ KIẾN NGHỊ 39 TÀI LIỆU THAM KHẢO
PHỤ LỤC
Trang 7LDA : Linear Discriminant Analysis
OCR : Optical Character Recognition
PCA : Principal Component Analysis
Trang 83.5 Sơ đồ thuật toán cảnh báo âm thanh khi phát hiện khuôn mặt 30
3.7 Giao hiện chương trình khi nhận dạng khuôn mặt 32 3.8 Giao diện chương trình khi tạo tập huấn luyện 33
Trang 9MỞ ĐẦU
1 Tính cấp thiết của đề tài
Thừa hưởng những thành tựu của nền khoa học kỹ thuật phát triển Nhận diện khuôn mặt là một công nghệ được ứng dụng rộng rãi trong đời sống hằng ngày của con người như các hệ thống giám sát tại các tòa nhà, sân bay, trạm ATM, hệ thống chấm công, camera chống trộm, xác thực danh tính,….có rất nhiều các phương pháp nhận dạng khuôn mặt để nâng cao hiệu suất tuy nhiên dù ít hay nhiều thì những phương pháp này đang gặp phải những khó khăn, thử thách như về độ sáng, hướng nghiêng, kích thước hình ảnh, hay ảnh hưởng của tham số môi trường
Hiện nay các phương pháp nhận dạng khuôn mặt được chia thành nhiều hướng theo các tiêu chí khác nhau Trên thực tế người ta chia phương pháp nhận dạng khuôn mặt thành ba loại: phương pháp tiếp cận toàn cục (Global, như Eigenfaces-PCA, Fisherfaces-LDA), phương pháp tiếp cận dựa trên các đặc điểm cục bộ (Local Feature Based, như LBP, Gabor Wavelets) và phương pháp lai (Hybrid, là sự kết hợp của hai phương pháp tiếp cận toàn cục và phương pháp tiếp cận dựa trên các đặc điểm cục bộ).Trong đó, Eigenfaces là phương pháp trích rút đặc trưng nhằm giảm số chiều của ảnh tuy đơn giản nhưng mang lại hiệu quả tốt Hệ thống hoạt động ổn định và có tính thích nghi cao khi dữ liệu đầu vào thay đổi nhiều
Hệ thống camera giám sát ngày nay đã trở lên phổ biến và đang được sử dụng rộng rãi trong nhiều lĩnh vực với mục đích hỗ trợ an ninh cho các công ty, ngân hàng, cửa hàng, , nhưng các camera này chỉ có khả năng lưu trữ các dữ liệu video và chúng
ta cần thuê các nhân viên quan sát và phát hiện khi có người nào đó xâm nhập Phương pháp này không hiệu quả, tốn kém chi phí, thời gian và phụ thuộc nhiều vào yếu tố con người, khó khăn trong việc tìm kiếm dữ liệu
Với mong muốn đưa ra một cái nhìn tổng quan về phương pháp nhận dạng khuôn mặt, vận dụng phương pháp nhận dạng khuôn mặt dùng Eigenfaces để xây dựng hệ
thống camera an ninh Tôi chọn đề tài "Nghiên cứu kỹ thuật nhận dạng khuôn mặt
người Xây dựng hệ thống camera chống trộm" làm đề tài tốt nghiệp
2 Mục tiêu nghiên cứu
Tìm hiểu các phương pháp nhận dạng khuôn mặt người vận dụng xây dựng hệ thống camera chống trộm
Để hoàn thành mục tiêu đặt ra, cần thực hiện các nhiệm vụ sau:
- Tìm hiểu phương pháp xác định khuôn mặt người;
- Tìm hiểu phương pháp theo vết đối tượng;
- Tìm hiểu phương pháp nhận dạng khuôn mặt người;
Trang 10- Xây dựng hệ thống camera chống trộm
3 Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
- Phương pháp xác định khuôn mặt người
- Phương pháp theo vết đối tượng
- Phương pháp nhận dạng khuôn mặt
3.2 Phạm vi nghiên cứu
- Tập trung tìm hiểu các kỹ thuật nhận dạng khuôn mặt người
- Ứng dụng kỹ thuật nhận dạng khuôn mặt người xây dựng hệ thống camera chống trộm
4 Phương pháp nghiên cứu
4.1 Nghiên cứu lý thuyết
- Thu thập, tìm hiểu, phân tích các tài liệu vềnhận dạng khuôn mặt
- Tìm hiểu các phương pháp nhận dạng khuôn mặt
- Nghiên cứu các công cụ xây dựng hệ thống
4.2 Nghiên cứu thực nghiệm
- Thu thập dữ liệu thực tế
- Trích rút các thuộc tính đặc trưng từ dữ liệu thực tế
- Phân tích yêu cầu của chương trình
- Thiết kế hệ thống và triển khai xây dựng chương trình
- Kiểm thử và đánh giá kết quả
5 Bố cục luận văn
Nội dung của luận văn gồm các nội dung chính sau đây:
Chương 1.Giới thiệu tổng quan
Nội dung chương này giới thiệu bài toán nhận dạng khuôn mặt, ứng dụng của bài toán vào thực tế và những hạn chế của nhận dạng khuôn mặt Hệ thống camera giám sát và thư viện mã nguồn mở OpenCV
Chương 2.Nhận dạng khuôn mặt bằng Eigenface
Nội dung chương này trình bày việc xây dựng một hệ thống nhận dạng bao gồm việc phát hiện ra khuôn mặt, theo vết khuôn mặt, trích rút các đặc trưng và nhận dạng khuôn mặt sử dụng Eigenfaces
Chương 3 Xây dựng hệ thống camera chống trộm
Nội dung chương 3 tập trung phân tích yêu cầu của hệ thống, xác định các chức năng chính, xây dựng sơ đồ của các hoạt động chính của ứng dụng, tiến hành cài đặt ứng dụng
Trang 11CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN
Bài toán nhận dạng khuôn mặt đang được rất nhiều sự quan tâm của các nhà nghiên cứu vì tính ứng dụng trong cuộc sống Nhận dạng khuôn mặt không phải là bài toán mới nhưng nó vẫn là một thách thức lớn vì một bài toán nhận dạng mặt người chứa nhiều các bài toán khác như: phát hiện mặt người (face detection), đánh dấu (facial landmarking), rút trích đặc trưng (feature extraction), gán nhãn, phân lớp (classification) Ngoài ra, ảnh khuôn mặt trong thực tế chứa đựng nhiều vấn đề như: độ sáng, độ nhòe/mờ, độ nhiễu, độ phân giải, góc ảnh
1.1 TỔNG QUAN SINH TRẮC HỌC
Sinh trắc học hay Công nghệ sinh trắc học (tiếng Anh: Biometric) là công nghệ
sử dụng những thuộc tính vật lý, đặc điểm sinh học riêng của mỗi cá nhân như vân tay, mống mắt, khuôn mặt để nhận diện
Mỗi người có một đặc điểm sinh học duy nhất Dữ liệu sinh trắc học của từng cá nhân sẽ được thu nhận từ các thiết bị như vân tay sẽ được thu từ máy đọc dấu vân tay, hình ảnh khuôn mặt sẽ được chụp từ camera Các dữ liệu sinh trắc học này sẽ được so sánh với cơ sở dữ liệu được xây dựng trước đó để thực hiện việc xác thực hay xác minh danh tính của một người cụ thể
Dữ liệu sinh trắc lý tưởng của người cần phải có những đặc tính cơ bản sau:
- Tính tổng quát: Mỗi người đều được thể hiện bởi đặc tính này
- Tính duy nhất: Không thể tồn tại hai người có những đặc tính giống nhau
- Tính thường xuyên: Là sự độc lập của thuộc tính đối với thời gian
- Tính thu thập được: Các đặc tính được thu thập một cách đơn giản, nhanh
chóng và có thể chi tiết hóa
Ngày nay, các ứng dụng dựa trên đặc điểm sinh trắc học được sử dụng rộng rãi trong đời sống bởi ưu điểm việc sử dụng các đặc tính này vào nhận diện là chúng không thể bị lãng quên hay mất và có độ chính xác, tin cậy cao
1.2 BÀI TOÁN NHẬN DẠNG KHUÔN MẶT
Nhận dạng khuôn mặt (Face Recognition) là một phương pháp sinh trắc để xác định hoặc xác minh một cá nhân nào đó bằng cách so sánh dữ liệu hình ảnh chụp trực tiếp hoặc hình ảnh kỹ thuật số với bản ghi được lưu trữ cho người đó.Nó được xem là một lĩnh vực nghiên cứu của ngành Biometrics (tương tự như nhận dạng vân tay – Fingerprint Recognition, hay nhận dạng mống mắt – Iris Recognition) Xét về nguyên tắc chung, nhận dạng khuôn mặt có sự tương đồng rất lớn với nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự khác biệt nằm ở bước trích chọn đặt trưng (feature
Trang 12extraction) của mỗi lĩnh vực Trong khi nhận dạng vân tay và mống mắt đã đạt tới độ chín, tức là có thể áp dụng trên thực tế một cách rộng rãi thì nhận dạng khuôn mặt người vẫn còn nhiều thách thức và vẫn là một lĩnh vực nghiên cứu thú vị với nhiều người.So với nhận dạng vân tay và mống mắt, nhận dạng khuôn mặt có nguồn dữ liệu phong phú hơn (chúng ta có thể nhìn thấy mặt người ở bất cứ tấm ảnh, video clip nào liên quan tới con người trên mạng) và ít đòi hỏi sự tương tác có kiểm soát hơn (để thực hiện nhận dạng vân tay hay mống mắt, dữ liệu input lấy từ con người đòi hỏi có sự hợp tác trong môi trường có kiểm soát)
Các hệ thống nhận dạng khuôn mặt thường được sử dụng cho các mục đích an ninh, giám sát như kiểm soát an ninh tại tòa nhà, sân bay, máy ATM, tra cứu thông tin của tội phạm, phát hiện tội phạm ở nơi công cộng, lập chỉ mục cho video, hình ảnh, tái tạo khuôn mặt và các ứng dụng thẻ thông minh Công nghệ nhận dạng ngày càng được ứng dụng rộng rãi trong cuộc sống
Bên cạnh những thành công đã được ghi nhận thì nhận dạng khuôn mặt cũng còn gặp nhiều khó khăn như về độ sáng, hướng nghiêng, kích thước hình ảnh, diện mạo, biểu hiện cảm xúc của khuôn mặt hay ảnh hưởng của tham số môi trường
Để xây dựng một hệ thống nhận dạng khuôn mặt có đầu vào của hệ thống là một hình ảnh kỹ thuật số hay một khung hình video từ một nguồn video Đầu ra là xác định hoặc xác minh người ở trong bức hình hoặc trong video đó là ai Hướng tới mục tiêu này chúng ta thường chia thủ tục nhận dạng khuôn mặt gồm ba bước: Phát hiện khuôn mặt, trích rút đặc trưng và nhận dạng khuôn mặt
Hình 1.1.Hệ thống nhận dạng khuôn mặt
Phát hiện khuôn mặt (Face Detection): Chức năng chính của bước này là phát hiện ra khuôn mặt xem nó có xuất hiện ở trong một bức hình hay một đoạn video hay không? Tỉ lệ phát hiện ra khuôn mặt phụ thuộc nhiều vào điều kiện về độ sáng, hướng khuôn mặt, biểu hiện cảm xúc trên khuôn mặt hay các yếu tố môi trường khác Để hệ thống nhận dạng hoạt động đạt hiệu quả cao thì hình ảnh khuôn mặt sau khi được phát hiện cần chuẩn hóa về kích thước, ánh sáng
Trích rút đặc trưng (Feature Extraction): Sau khi phát hiện ra khuôn mặt trong bức ảnh, chúng ta tiến hành trích rút những đặc trưng của khuôn mặt Bước này trích xuất ra một vector đặc trưng đại diện cho một khuôn mặt Nó phải đảm bảo được tính duy nhất của một khuôn mặt
Trang 13Nhận dạng khuôn mặt (Face Recognition): Với hình ảnh đầu vào sau khi phát hiện ra khuôn mặt, trích rút các đặc trưng của khuôn mặt và đem so sánh các đặc trưng này với cơ sở dữ liệu khuôn mặt
Bài toán nhận dạng khuôn mặt được ứng dụng nhiều trong các lĩnh vực đời sống đặc biệt ở những lĩnh vực công nghệ cao, yêu cầu về an ninh, bảo mật Do đó để hệ thống nhận dạng khuôn mặt hoạt động mạnh mẽ với tốc độ và độ tin cậy thì có rất nhiều các phương pháp về nhận dạng khuôn mặt được đưa ra Các phương pháp có thể được phân loại theo các tiêu chí khác nhau như nhận dạng với dữ liệu ảnh đầu vào là ảnh tĩnh 2D (Elastic Bunch Graph, Active Appearance Model) Phương pháp này là phổ biến nhất và tương lai sẽ là 3D (3D Morphable Model) Tuy nhiên trên thực tế người ta hay chia phương pháp nhận dạng khuôn mặt ra thành 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 (Feature Base Face Recognition)
- Nhận dạng dựa trên xét tổng thể toàn khuôn mặt (Appearance Based Face Recognition)
1.2.1 Nhận dạng dựa trên các đặc trưng khuôn mặt
Hướng tiếp cận này đầu tiên sẽ xử lý ảnh đầu vào để xác định và trích xuất các đặc trưng trên khuôn mặt như mắt, mũi, miệng và các điểm khác Sau đó tính toán các mối quan hệ hình học giữa các điểm trên khuôn mặt, hình ảnh đầu vào sẽ chuyển thành một vector có các tính năng hình học Các phương pháp nhận dạng khuôn mẫu tiêu chuẩn được áp dụng để so khớp khuôn mặt với các số đo
Trước đây nhận dạng khuôn mặt chủ yếu dựa vào kỹ thuật này Các kỹ thuật trích rút đặc trưng phức tạp hơn sử dụng cho các khuôn mẫu bị biến dạng như là phương pháp biến đổi Hough, toán tử đối xứng Reisfeld, bộ lọc Graf và các toán tử hình thái Tuy nhiên tất cả các phương pháp tiếp cận này còn mang tính chất cảm tính, dựa vào kinh nghiệm như là hạn chế không gian tìm kiếm với các ràng buộc hình học, có một dung sai nhất định cho các mô hình vì chúng không bao giờ có thể hoàn toàn phù hợp với cấu trúc hình ảnh
Ư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ết khuô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 cho kết quả tốt trong các điều kiện không có kiểm soát
Nhược điểm của phương pháp này là cài đặt thuật toán phức tạp do việc xác định mối quan hệ giữa các đặc tính, đòi hỏi các thuật toán phức tạp và phương pháp này sẽ hoạt động không hiệu quả khi kích thước hình ảnh nhỏ vì rất khó phân biệt được các đặc tính
Trang 141.2.2 Nhận dạng dựa trên xét toàn bộ khuôn mặt
Nội dụng chính của hướng tiếp cận này là xem mỗi ảnh có kích thước R x C là một vector trong không gian có R x C chiều Ta 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 trên khuôn mặt không bị mất đi Trong không gian đó các ảnh của cùng một người sẽ được tập trung lại thành một nhóm gần nhau và cách xa so với các nhóm khác Hai phương pháp thường được sử dụng trong hướng tiếp cận này là:
- PCA (Principle Components Analysis)
- LDA (Linear Discriminant Analysis)
a Principal Components Analysis - PCA
Mục tiêu của PCA là “giảm số chiều” của 1 tập vector sao cho vẫn đảm bảo được
“tối đa thông tin quan trọng nhất” Phương pháp PCA sẽ giữ lại K thuộc tính “mới” từ
M các thuộc tính ban đầu (K<M)
* Ưu điểm của phương pháp PCA:
- Tìm được các đặc tính tiêu biểu của đối tượng cần nhận dạng mà không cần xác định các đặc tính và mối quan hệ giữa các đặc tính này
- Thuật toán có thể thực hiện tốt với các hình ảnh có độ phân giải cao
- PCA có thể kết hợp được với các phương pháp như mạng nơron (Neural Network), Support Vector Machine,…, để mang lại hiệu quả nhận dạng cao
* Nhược điểm của phương pháp PCA:
- PCA phân loại theo chiều phân bố lớn nhất của tập vector Tuy nhiên, chiều phân
bố lớn nhất không phải lúc nào cũng mang lại hiệu quả tốt cho bài toán nhận dạng
- PCA rât nhạy với nhiễu như điều kiện ánh sáng, hướng nghiêng và biểu hiện cảm xúc trên khuôn mặt
b.Linear Discriminant Analysis– LDA
Mục tiêu của LDA là thực hiện giảm chiều trong khi vẫn giữ càng nhiều các thông tin phân biệt giữa các lớp càng tốt.Tìm hướng dọc theo đó các lớp được phân cách tốt nhất Thực hiện bằng cách xem xét các tán xạ trong các lớp và gữa các lớp.Nó
có khả thay đổi hình ảnh từ những biến đổi do các nguồn khác nhau như ánh sáng
Hình 1.2 Vector chiếu tối đa hóa sự phân chia vô hướng
Trang 15* Ưu điểm của phương pháp LDA
- Thuật toán có thể thực hiển tốt với số lượng mẫu lớn
* Nhược điểm của phương pháp LDA
- Thuật toán gặp phải vấn đề khi tổng số mẫu huấn luyện ít hơn so với kích thước của không gian đặc trưng
1.2.3 Điểm mạnh và hạn chế của công nghệ nhận dạng khuôn mặt
a Điểm mạnh
Nhận dạng khuôn mặt có một số lợi thế hơn so với các phương pháp sinh trắc học khác Một trong số đó được nêu sau đây: Hầu như tất cả các công nghệ đều đòi hỏi một số hành động tự nguyện của người sử dụng, tức là người sử dụng cần đặt tay lên tay để lấy dấu tay hoặc phải đứng ở vị trí cố định trước camera để nhận dạng mống mắt hoặc võng mạc Tuy nhiên, nhận dạng khuôn mặt có thể được thực hiện thụ động, hình ảnh mặt có thể được chụp từ xa bằng máy ảnh Điều này đặc biệt có lợi cho các mục đích an ninh và giám sát
Hơn nữa, thu thập dữ liệu nói chung có nhiều vấn đề đối với các sinh trắc học khác: Các kỹ thuật dựa vào vân tay có thể bị vô hiệu nếu mô biểu bì bị hư hỏng theo cách nào đó như bị đứt tay, thâm tím Mống mắt và võng mạc đòi hỏi thiết bị đắt tiền
và quá nhạy cảm với bất kỳ chuyển động của cơ thể Nhận dạng giọng nói dễ bị ảnh hưởng bởi tiếng ồn nền ở những nơi công cộng và thăng giáng âm thanh trên đường dây điện thoại hoặc băng ghi âm Chữ ký có thể được sửa đổi hoặc giả mạo Tuy nhiên, hình ảnh khuôn mặt có thể dễ dàng có được với một vài máy ảnh cố định không tốn kém
Cuối cùng, các công nghệ đòi hỏi nhiều cá nhân sử dụng cùng một thiết bị để nắm bắt đặc điểm sinh học của họ, có khả năng làm cho người sử dụng tiếp xúc với vi trùng và tạp chất từ người dùng khác Tuy nhiên, nhận diện khuôn mặt là hoàn toàn không xâm nhập và không mang lại bất kỳ nguy cơ sức khỏe như vậy
b Hạn chế
Khuôn mặt người thay đổi theo thời gian, biểu hiện cảm xúc ở các thời điểm khác nhau và chịu ảnh hường bởi các yêu tố khác như ánh sáng môi trường, hướng khuôn mặt so với camera, bị che khuất Các yếu tố này làm cho việc nhận dạng khuôn
mặt không được chính xác
1.3 HỆ THỐNG CAMERA GIÁM SÁT
Xuất hiện từ những năm 1940, ban đầu hệ thống camera giám sát được dùng vào mục đích quân sự Từ đó đến nay, trải qua 3 thế hệ, từ camera tương tự, đến camera kỹ thuật số và giờ đây là camera IP, hệ thống camera giám sát đã trở nên phổ biến và đang được sử dụng rộng rãi trong nhiều lĩnh vực.Trong giao thông, người ta lắp đặt
Trang 16các camera giám sát ở các ngã ba, ngã tư, đường hầm, nhà ga và các vị trí quan trọng
để giám sát giao thông, cảnh báo tình trạng ùn tắc, phát hiện các vi phạm luật giao thông của các phương tiện… Trong các bảo tàng, người ta sử dụng hệ thống camera trong việc giám sát các vật trưng bày để tránh trường hợp bị mất cắp Tại các vùng nhạy cảm về an ninh, các hệ thống giám sát được thiết lập để có thể cảnh báo kịp thời những hành vi khả nghi liên quan đến khủng bố, trộm cắp, hỏa hoạn…
Hệ thống camera giám sát có thể được thực hiện thủ công, bán tự động, hoặc hoàn toàn tự động Trong các hệ thống giám sát video thủ công truyền thống, các luồng video được quan sát bởi các giám sát viên trong thời gian thực, cho phép họ can thiệp nhanh chóng nếu có một sự kiện quan tâm được phát hiện Việc xử lý trực tiếp của tất cả các luồng video là rất khó khăn do số lượng camera được triển khai nhiều cùng với một lượng lớn dữ liệu thu nhận từ chúng Chính vì vậy, dữ liệu video đã được lưu trữ lại trên các phương tiện truyền thông kỹ thuật số trong một khoảng thời gian xác định, chúng được tái sử dụng để truy vấn, trích xuất thông tin hữu ích khi cần thiết như nhận dạng hoặc tìm kiếm bằng chứng
Tuy nhiên, khi số lượng camera tăng lên đáng kể thì rõ ràng đây là một nhiệm vụ hết sức khó khăn để một giám sát viên có thể theo dõi đầy đủ tất cả các đối tượng trong hệ thống, điều này dẫn đến khả năng bỏ sót các cảnh quan trọng tại các camera tăng lên Nguyên nhân chính là sự mất tập trung của giám sát viên vào camera ngay tại thời điểm xảy ra sự việc, bởi hầu hết thời gian trong quá trình giám sát không có sự kiện đặc biệt nào xảy ra nên sau một thời gian theo dõi các hình ảnh mà không có vấn
đề gì xảy ra, cơn buồn ngủ, sự mệt mỏi và sự giảm mức độ cảnh giác thường gây ra các sai sót trong việc phát hiện sự kiện quan trọng
Hơn nữa, khi cần truy vấn hoặc trích rút thông tin với các dữ liệu đã lưu trữ, đặc biệt là đối với các cơ quan an ninh chính phủ như cảnh sát, tìm kiếm một người nào đó quan tâm trong hàng trăm hoặc hàng ngàn giờ video ghi lại từ nhiều camera, phải cần một lượng lớn các cán bộ thực thi trong nhiều giờ hoặc nhiều ngày để thực hiện, việc dành quá nhiều nhân lực trong thời gian dài sẽ dẫn lãng phí về thời gian và tài chính Chính vì vậy, vấn đề giám sát tự động là nhiệm vụ hàng đầu trong hệ thống giám sát bằng camera nhằm hỗ trợ tối đa con người trong việc điều khiển, giám sát, giảm thiểu các sai sót không đáng có, đồng thời qua đó cũng giải phóng sức lao động của các giám sát viên
1.4 GIỚI THIỆU VỀ OPENCV
OpenCV là một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (Computer Vision), xử lý ảnh và máy học, và các tính năng tăng tốc GPU trong hoạt động thời gian thực
Trang 17OpenCV được phát hành theo giấy phép BSD, do đó nó hoàn toàn miễn phí cho
cả học thuật và thương mại Nó có các Interface C++, C, Python, Java và hỗ trợ Windows, Linux, Mac OS, iOS và Android OpenCV được thiết kế để tính toán hiệu quả và với sự tập trung nhiều vào các ứng dụng thời gian thực Được viết bằng tối ưu hóa C/C++, thư viện có thể tận dụng lợi thế của xử lý đa lõi
1.4.1 Các ứng dụng của OpenCV
- Hình ảnh street view
- Kiểm tra và giám sát tự động
- Robot và xe hơi tự lái
- Phân tích hình ảnh y tế
- Tìm kiếm và phục hồi hình ảnh/video
- Phim - cấu trúc 3D từ chuyển động
1.4.2 Chức năng của OpenCV
- Image/video I/O, xử lý, hiển thị (core, imgproc, highgui)
- Phát hiện các vật thể (objdetect, features2d, nonfree)
- Geometry-based monocular or stereo computer vision (calib3d, stitching)
- Computational photography (photo, video, superres)
- Machine learning & clustering (ml, flann)
- CUDA acceleration (gpu)
CV
Các hàm và thủ tục làm việc với file ảnh, file video
Trang 181.4.4 Thư viện EmguCV
Thư viện EmguCV là một cross flatform NET cho phép gọi ra các tính năng của OpenCV từ môi trường NET, đây có thể coi một bộ thư viện xử lý hình ảnh rất hiệu quả dành cho ngôn ngữ lập trình C#
Ngoài C#, EmguCV còn có khả năng tương thích với các ngôn ngữ lập trình khác như: VC ++, VB NET, Iron Python,
Bộ Wrapper này ngoài có thể được biên dịch bởi Visual Studio thì cũng có thể được biên dích bởi Unity hay Xamarin Studio và hoạt động trên các môi trường khác nhau như Windows, Linux, Android, IOS và thậm chí là cả Windows Phone
Trang 192.1 PHÁT HIỆN KHUÔN MẶT
Như đã trình bày ở trên thì bước đầu tiên của hệ thống nhận dạng khuôn mặt cần thực hiện là phát hiện khuôn mặt Đây là chủ đề được quan tâm nhiều nhất trong lĩnh vực thị giác máy tính Có rất nhiều các phương pháp được đưa ra như sử dụng Template Matching, Neural Networks, Haar-like, …Tuy nhiên, phương pháp phát hiện khuôn mặt dựa trên các đặc trưng Haar-like được sử dụng nhiều nhất Phương pháp này được cho là đơn giản và kết quả phát hiện là tương đối cao, lên tới trên 98%
2.1.1 Đặc trưng Haar-like
Đặc trưng Haar-like được sử dụng trong việc nhận dạng đối tượng trong ảnh số, được phát biểu bởi Viola & Jones gồm 4 đặc trưng cơ bản để xác định một đối tượng trong một hình ảnh Mỗi đặc trưng Haar-like là sự kết hợp gồm 2 hoặc 3 khối hình chữ nhật mang giá trị “đen” hoặc “trắng” Những khối hình chữ nhật này thể hiện sự liên
hệ tương quan giữa các bộ phận trong ảnh mà bản thân từng giá trị pixel không thể diễn đạt được
Hình 2.1 Đặc trưng theo cạnh
Trang 20Hình 2.2 Đặc trưng theo đường
Hình 2.3 Đặc trưng theo xung quanh tâm
Hình 2.4 Đặc trưng theo đường chéo
Dựa theo các đặc trưng trên, giá trị của đặc trưng Haar-like được xây dựng bởi
độ chênh lệch giữ tổng các pixel của các vùng đen so với tổng pixel của các vùng trắng theo công thức như sau:
f(x) = Tổng vùng đen(các mức xám của pixel) - Tổng vùng trắng(các mức xám
của pixel)
Như vậy để tính giá trị đặc trưng Haar-like cần phải thực hiện tính toán tổng các vùng pixel trên ảnh Điều này làm cho chi phí của bài toán lớn không thể đáp ứng các tính năng theo thời gian thực Do vậy Viola & Jones đề xuất ra khái niệm Integral Image (ảnh tích phân) để giảm thiểu chi phí cho bài toán tính giá trị của các đặc trưng Haar-like để bài toán có thể xử lý với thời gian thực
Ảnh tích phân là một khái niệm được sử dụng rất nhiều trong thị giác máy tính
Trang 21Các đặc dạng chữ nhật có thể được tính toán rất nhanh sử dụng một phép biểu diễn
trung gian là ảnh tích phân Ảnh tích phân ở vị trí (x,y) được tính bằng tổng các giá trị pixel của vùng từ vị trí (0,0) đến vị trí (x-1, y-1) Việc tính toán đơn giản là việc
thực hiện phép cộng các số nguyên nên tốc độ thực hiện được tối ưu hóa
Hình 2.5.Cách tính Integral Image của ảnh
𝑃(𝑥, 𝑦) = ∑ 𝑖(𝑥′, 𝑦′)
𝑥 ′ ≤𝑥,𝑦 ′ ≤𝑦
Tổng các điểm nằm trong hình chữ nhật A4 có thể được tính toán theo 4 mảng tham chiếu Giá trị của ảnh tích phân tại điểm P1 là tổng các điểm ảnh trong hình chữ nhật A1 Giá trị tại điểm P2 là A1 + A2, tại điểm P3 là A1 + A3 và tại P4 là A1 + A2 + A3 + A4 Tổng trong A4 được tính bằng giá trị tại P4 cộng giá trị tại P1 trừ đi giá trị tại P2
2.1.2 Thuật toán tăng tốc Adaboost
Thuật toán tăng tốc Adaboost là thuật toán máy học được cải tiến từ thuật toán
Trang 22Boosting Với ưu điểm khả năng giải quyết bài toán nhanh chóng, cài đặt đơn giản và
dễ dàng, không có các tham số để điều chỉnh và không cần tri thức về bộ học yếu do
đó thuật toán tăng tốc Adaboost được sử dụng nhiều trong các ứng dụng về nhận dạng
a Tiếp cận Boosting
Boosting là kĩ thuật nâng cao độ chính xác cho các thuật toán máy học Năm
1989, Schaire đã đưa ra các chứng minh đầu tiên về thuật toán boosting Và một năm sau đó Freund đã phát triển thuật toán boosting một cách hiệu quả hơn rất nhiều, mặc
dù vẫn còn nhiều hạn chế trong thực tế và chỉ tối ưu trong một số trường hợp Các thực nghiệm đầu tiên với thuật toán boosting được thực hiện bởi Drucker, Schapire và Simard trong chương trình nhận dạng ký tự quang học (OCR - Optical Character Recognition) Mãi đến năm 1995 thuật toán AdaBoost mới chính thức được công bố bởi Freund và Schapire
Nguyên lý cơ bản của thuật toán Boosting là kết hợp các bộ phân loại yếu (weak classifiers) thành một bộ phân loại mạnh (strong classifier) Trong đó bộ phân loại yếu
là các bộ phát hiện đơn giản chỉ cần có độ chính xác trên 50% Bằng cách này, chúng
ta nói bộ phát hiện đã được “boost”
Xét một bài toán phát hiện 2 lớp (mẫu cần nhận dạng sẽ được phân vào 1 trong 2 lớp) với D là tập huấn luyện gồm có n mẫu Trước tiên, chúng ta sẽ chọn ngẫu nhiên ra
n 1 mẫu từ tập D (n 1 <n) để tạo tập D1 Sau đó, chúng ta sẽ xây dựng “weak classifier”
đầu tiên C1 từ tập D1 Tiếp theo, chúng ta xây dựng tập D2 để huấn luyện bộ phân loại C2 D2 sẽ được xây dựng sao cho một nửa số mẫu của nó được phân loại đúng bởi C1
và nửa còn lại bị phân loại sai bởi C1 Bằng cách này, D2 chứa đựng những thông tin
bổ sung cho C1 Bây giờ chúng ta sẽ xây huấn luyện C2 từ D2
Tiếp theo, chúng ta sẽ xây dựng tập D3 từ những mẫu không được phân loại tốt bởi sự kết hợp giữa C1 và C2: những mẫu còn lại trong D mà C1 và C2 cho kết quả khác nhau Như vậy, D3 sẽ gồm những mẫu mà C1 và C2 hoạt động không hiệu quả Sau cùng, chúng ta sẽ huấn luyện bộ phân loại C3 từ D3 Bây giờ chúng ta đã có
một “strong classifier”: sự kết hợp C1, C2 và C3
Khi tiến hành nhận dạng một mẫu X, kết quả sẽ được quyết định bởi sự thỏa thuận của 3 bộ C1, C2 và C3: Nếu cả C1 và C2 đều phân X vào cùng một lớp thì lớp này chính là kết quả phân loại của X; ngược lại, nếu C1 và C2 phân X vào 2 lớp khác nhau, C3 sẽ quyết định X thuộc về lớp nào
b Adaboost
AdaBoost (Adaptive Boost) là một bộ phân loại phi tuyến mạnh cải tiến từ thuật
toán Boosting, giúp đẩy nhanh việc tạo ra bộ phân loại mạnh (strong classifier) bằng cách chọn các đặc trưng tốt Haar-Like trong bộ phân loại yếu (weak classifier) và kết
Trang 23hợp chúng lại tuyến tính để hình thành một bộ phân loại mạnh (strong classifier) bằng cách sử dụng các trọng số (weight) để đánh dấu các mẫu khó nhận dạng Cho trước
một vài thuật toán học yếu, người ta áp dụng kỹ thuật tăng cường để tạo ra thuật toán học mạnh hơn Adaboost là thuật toán cho phép ta có thể làm được điều trên Gồm có
2 giai đoạn chính như sau:
Giai đoạn 1: Tạo ra các giả định yếu (weak hypotheses) từ các thuật toánhọc yếu
Giai đoạn 2: Tạo ra các thuật toán học mạnh từ các giả định yếu
Với một tập dữ liệu huấn luyện, một giả định yếu được khởi tạo như sau:
Đầu vào(Input): Cho một tập dữ liệu huấn luyện, N cặp (x i , y i ), x i là các vector
đặc trưng Haar, y i là giá trị đầu ra mong muốn luôn luôn mang giá trị bằng +1 hoặc
-1(trong đó +1 là đối tượng (object), -1 không phải là đối tượng(background)), và số
lượng vòng lặp là T
Đầu ra(Output): Tồn tại một hàm có thể được sử dụng để phân lớp các đặc trưng
của vector x
Nếu fT(x) < 0 thì x được phân lớp là -1
Nếu fT(x) > 0 thì x được phân lớp là +1
- Khởi tạo: Cho trọng số Wi = 1
𝑁
- Lặp: For t = 1,2,3 …, tính giả định (hypothesis) h t , trọng số tốt (goodness) 𝛼𝑡,
và đồng thời cập nhật lại các trọng số W 1 , W 2 , , W N theo các bước sau:
Bước 1: Chọn ngẫu nhiên một tập con S t trong tập dữ liệu huấn luyện Trong
trường hợp này chính là trọng số W n
Bước 2: Tính toán giả định h t bằng cách sử dụng bộ phân lớp yếu cho S t
Bước 3: Tính toán sai số của trọng số huấn luyện 𝜀𝑡 của h t
𝜀𝑡 = ∑ 𝑦𝑖≠ℎ𝑡(𝑥𝑖)𝑃𝑖Bước 3.1: Nếu 𝜀𝑡> 0.5 thì quay lại bước lặp
Bước 3.2: Nếu 𝜀𝑡 = 0 thì đây không phải là một phân lớp yếu Khi đó nên tăng thêm số lượng mẫu huấn luyện
Bước 4: Tính toán trọng số tốt 𝛼𝑡 của h t
𝛼𝑡 = 1
2ln
1 − 𝜀𝑡
𝜀𝑡Bước 5: Cập nhật lại trọng số
Trang 24Trong đó Zt là thừa số chuẩn hóa sao cho ∑𝑖𝑊𝑖 = 1
𝜀𝑇 = ∑ 𝑤𝑟𝑜𝑛𝑔(𝑓𝑇, 𝑥𝑖, 𝑦𝑖)
𝑁 𝑖=1
𝑁
2.2 THEO VẾT KHUÔN MẶT THEO TRÌNH TỰ VIDEO
Theo vết đối tượng thời gian thực là một công đoạn trong rất nhiều ứng dụng thị giác máy tính Một trong những mục tiêu của theo vết đối tượng là để “hiểu” được những chuyển động của đối tượng, “hiểu” những thông tin về đối tượng gồm vị trí trong không gian, vận tốc chuyển động và những đặc trưng vật lý khác
Mức khó khăn của vấn đề phụ thuộc vào loại đối tượng muốn phát hiện và theo vết Nếu như chỉ có một vài đặc trưng chẳng hạn như màu sắc … được dùng để biểu diễn đối tượng, thì khá dễ dàng xác định tất cả các pixel cùng màu với đối tượng Nhưng thực tế hoàn toàn khác, ví dụ như một người cụ thể sẽ có đầy đủ các chi tiết và thông tin nhiễu chẳng hạn như các tư thế và sự chiếu sáng khác nhau, khó phát hiện, nhận diện và theo vết
Hầu hết các khó khăn này nảy sinh từ khả năng biến động của ảnh video bởi vì các đối tượng video thường là các đối tượng chuyển động Khi đối tượng chuyển động qua vùng quan sát của camera, hình ảnh về đối tượng có thể thay đổi Sự thay đổi này đến từ 3 nguồn chính: thay đổi tư thế đối tượng, sự biến dạng của đối tượng, thay đổi
về độ chiếu sáng, và sự che khuất một phần hay toàn bộ đối tượng
Theo vết đối tượng là giám sát các thay đổi theo không gian và thời gian của đối tượng trong suốt chuỗi ảnh, bao gồm sự hiện diện, vị trí, kích thước, hình dáng… của đối tượng Quy trình theo vết đối tượng gồm các bước sau:
- Phát hiện đối tượng
- Phân vùng
- Theo vết đối tượng
Việc theo vết khuôn mặt được trình bày trong nội dung của luận văn này sử dụng
so sánh hai khung hình, có thể so sánh khung hình hiện tại với hình nền chúng ta chụp ban đầu khi chúng ta bật camera hoặc khung hình trước đó
Trang 25Để theo vết khuôn mặt chúng ta sử dụng cách so sánh vị trí của khuôn mặt trong
2 frame liên tiếp nhau Nếu một phát hiện trong thời điểm t quá gần với một trạng thái
đã có tại thời điểm t-1 thì nó sẽ được xem là trùng với đối tượng đó Một cách gần đúng, ta giả định những phát hiện này xuất phát từ đối tượng đã có từ thời điểm t-1 trước đó Có một khoảng cách được gọi là delta khi một khuôn mặt được so sánh trong
2 frame liên tiếp mà gần nhau nhất thì được coi là cùng khuôn mặt Nếu khoảng cách này vượt qua giá trị delta thì nó là hai khuôn mặt khác nhau Ngoài ra do lo sợ sự xuất
hiện của hai khuôn mặt liên tiếp nhưng của của người khác nhau, ta tính thêm một thông số nữa là tỉ lệ khuôn mặt nếu vị trí gần nhau rồi và tỉ lệ khuôn mặt trước và sau nằm trong khoảng 85-100%
2.3.2 Trích rút đặc trưng
Trích rút đặc trưng là kỹ thuật sử dụng các thuật toán để lấy ra những thông tin mang những đặc điểm riêng biệt của một người Quá trình này phải đảm bảo về hiệu năng tính toán và lưu trữ của máy Quá trình này bao gồm: giảm số chiều, trích đặc trưng, chọn lọc đặc trưng Giảm số chiều là một nhiệm vụ quan trọng trong bất cứ hệ thống nhận dạng nào Hiệu năng của một bộ phân lớp phụ thuộc vào số lượng ảnh mẫu, số đặc trưng và độ phức tạp của bộ phân lớp Tỷ lệ lỗi của một bộ phân lớp có thể không tăng khi các đặc trưng tăng Tuy nhiên khi thêm các đặc trưng có thể giảm hiệu năng của bộ phân lớp Điều này có thể xảy ra khi số lượng mẫu học nhỏ hơn so với số lượng đặc trưng Một cách giải quyết vấn đề này là số lượng mẫu học cho một lớp gấp 10 lần số đặc trưng Do đó việc giữ số lượng đặc trưng nhỏ nhất có thể là rất
đặc trưng
Nhận dạng khuôn mặt
Trang 26quan trọng Giảm số đặc trưng bộ phân lớp sẽ nhanh hơn và chiếm ít bộ nhớ hơn Hơn nữa một bộ đặc trưng lớn có thể gây ra lỗi khi chứa những đặc trưng không cần thiết,
dư thừa Số lượng đặc trưng phải được chọn lựa cẩn thận Quá ít hoặc quá nhiều nó cũng sẽ ảnh hưởng nhiều đến kết quả của hệ thống nhận dạng Có rất nhiều các phương pháp trích rút đặc trưng để nhận dạng khuôn mặt như Principle Components Analysis, Linear Discriminant Analysis, Semi-supervised Discriminant Analysis
Principle Components Analysis – PCA một phương pháp hiệu quả được công bố
vào năm 1901 bởi Karl Pearson Mục tiêu của phương pháp này là giảm số chiều của một tập vector sao cho vẫn đảm bảo được tối đa thông tin quan trọng nhất Tuy nhiên việc làm này chưa chắc là tốt nhất vì chúng ta không biết chính xác được đặc trưng nào quan trọng hơn Hoặc trong trường hợp xấu nhất, lượng thông tin mà mỗi thành phần mang là như nhau, bỏ đi thành phần nào cũng dẫn đến việc mất một lượng thông tin lớn Tuy nhiên, nếu chúng ta có thể biểu diễn các vector dữ liệu ban đầu trong một
hệ cơ sở mới mà trong hệ cơ sở mới đó, tầm quan trọng giữa các thành phần là khác nhau rõ rệt, thì chúng ta có thể bỏ qua những thành phần ít quan trọng nhất
Hình 2.8 Quá trình trích trút đặc trưng
Tập ảnh học
Vector đặc trưng Ảnh đầu
Trang 27a Thuật toán PCA
Không gian mới được tạo bởi được tạo bởi PCA được cấu thành từ K vector đơn
vị có chiều là N Mỗi vector được gọi là Eigenfaces
Phép biến đổi:
𝐴 = [
𝑎1
𝑎2
𝑎3
𝑤𝐾] 𝑣ớ𝑖 𝐾 ≪ 𝑁
Theo công thức: W = T.A
Với T là ma trận chuyển đổi, T có kích thước K x N
Gọi M là số ảnh đầu vào, mỗi ảnh được chuyển thành vector N chiều Ta có tập hợp đầu vào X = {x1, x2, x3, …., xM}
Trung bình của các vector đầu vào theo công thức:
Gọi các giá trị riêng của C là 𝜆1, 𝜆2, … , 𝜆𝑁 sắp xếp theo thứ tự giảm dần, tương
ứng với N vector riêng u 1 ,u 2 , , u N Các vector riêng này trực giao từng đôi một Mỗi vector riêng u i được gọi là một eigenface Tập hợp các vector ban đầu được biểu diễn trong không gian tạo bởi N eigenface theo mô tả:
Trang 28tạo ra trong không gian PCA Ảnh mới vẫn giữ được các đặc điểm chính so với ảnh đầu vào Vector [w1,w2,…,wK] được tính theo công thức
[
𝑤1
𝑤2
𝑤3
𝑤𝐾]
= [
𝑢1𝑇
𝑢2𝑇
𝑢3𝑇
𝑢𝐾𝑇] Φ
Vấn đề cần giải quyết ở đây là ma trận C = A.AT có kích thước N2 Lấy ví dụ một bức ảnh có kích thước là 100 x 100 thì N = 100 x 100 = 104 Khối lượng tính toán sẽ rất lớn, yêu cầu các hệ thống xử lý mạnh mẽ và không phù hợp với các bài toán thời gian thực
Do đó để tính được các eigenfaces mà không cần tính cả ma trận C, người ta đưa
ra phương pháp tính nhanh dựa vào vector riêng (eigenvector) và giá trị riêng (eigenvalue) của ma trận L = AT.A có kích thước M x M với M là số ảnh đầu vào Ta
có thể chứng minh như sau:
Gọi 𝜐𝑖, 𝜇𝑖 lần lượt là các vector riêng và giá trị riêng của ma trận L:
AT.A.vi = 𝜐𝑖, 𝜇𝑖Nhân cả 2 vế với A ta có:
A.AT.A.vi = 𝐴 𝜐𝑖, 𝜇𝑖
Ta thấy A.vi chính là vector riêng của C = A.AT ứng với giá trị riêng 𝜇𝑖
b Áp dụng PCA vào trích chọn vector đặc tính
Mỗi bức ảnh về khuôn mặt được coi như là một vector Nếu bức ảnh có kích
thước w x h pixel thì không gian chứa vector này có số chiều N = w x h Mỗi pixel
được mã hóa bởi một thành phần của vector Cấu trúc của vector được tạo từ ảnh có thể được hình dung như sau:
Khâu quan trọng nhất trong bài toán nhận dạng đó chính là trích chọn vector đặc tính
Các bước để trích chọn vector đặc tính phục vụ cho việc nhận dạng:
Bước 1:
Tạo một tập S gồm M ảnh (ảnh học) Mỗi ảnh có kích thước R x C Mỗi ảnh
Trang 29được chuyển thành một vector N = R x C chiều Biểu diễn mọi ảnh Mi thành vector Γ𝑖
𝑆 = (Γ1, Γ2, … , Γ𝑀) Bước 2:
Tính vector khuôn mặt trung bình theo công thức:
Tìm tập gồm M vector trực giao, u, biểu diễn chiều phân bố mạnh nhất của tập
dữ liệu S Tập các vector u được gọi là eigenfaces của tập dữ liệu học
c Thuật toán Kernel – PCA
Phương pháp PCA là một phương pháp được sử dụng khá phổ biến và tương đối hiệu quả để biến đổi từ dữ liệu có thuộc tính lớn và nhiễu nhưng có độ tương quan với nhau thành một bộ dữ liệu có số chiều nhỏ hơn dựa trên các phép biến đổi tuyến tính Tuy nhiên trong nhiều ứng dụng thực tế, hiệu quả của phương pháp này chưa thật sự tốt vì nền tảng thuật toán xây dựng dựa trên dữ liệu tuyến tính Hiện nay phương pháp hàm nhân đã được dùng để tăng khả năng áp dụng PCA khi giải quyết các bài toán phi tuyến Phương pháp này đã được Scholkhof và đồng nghiệp của ông đưa ra với tên gọi
là Kernel – PCA
Phương pháp này thực hiện biến đổi phi tuyến trên hệ tọa độ bằng cách tìm các phần tử cơ bản có liên hệ phi tuyến với các giá trị đầu vào Giải xử giá trị đầu vào là xk nằm trong không gian Rm với k = 1, 2,3,…,n Chúng ta có thể tính được ma trận hiệp
phương sai (covariance matrix) cho các giá trị đầu vào
𝐶(𝑥𝑖, 𝑥𝑗) = ∑𝑛 (𝑥𝑖− 𝜇𝑖)(𝑥𝑗 − 𝜇𝑗)
𝑖,𝑗=0
𝑛 − 1Sau đó giải hệ phương trình để tìm giá trị đặc trưng 𝜆 và vector đặc trưng
𝜆𝑐 = 𝐶𝑣
Trang 30Ý tưởng cơ bản của phương pháp này là các tính toán tương tự cũng có thể được thực hiện trong không gian tích vô hướng F có liên gian tới không gian giá trị đầu vào thông qua một biến đổi phi tuyến Φ : Rm F và x X Ta có thể biểu diễn ma trận
hiệp phương sai trong không gian F như sau, giả sử dữ liệu đã được chuyển về tâm của trục tọa độ:
𝐶 (Φ(𝑥𝑖), Φ(𝑥𝑗)) = ∑𝑛 (Φ(𝑥𝑖)Φ(𝑥𝑗)𝑇)
𝑖,𝑗=0
𝑛 − 1Tương tự chúng ta có thể tính được các giá trị đặc trưng tương tự như với PCA truyền thống với hàm nhân có dạng như sau:
𝐾𝑖,𝑗 = 〈Φ(𝑥𝑖)Φ(𝑥𝑗)𝑇〉
2.3.3 Nhận dạng khuôn mặt
Sau khi trích chọn được vector đặc tính, chúng ta cần đối chiếu vector này với cơ
sở dữ liệu, từ đó đưa ra kết quả nhận dạng Để thực hiện việc phân loại có rất nhiều
phương pháp như khoảng cách Euclid, Mahalandobis, mạng Noron, SVM, … Trong đó Euclid là phương pháp đơn giản nhất Nó cho kết quả tốt đối với trường hợp đối tượng
đã được tạo thành các nhóm cách xa nhau Vector đặc tính của đối tượng cần nhận dạng sẽ được so sánh lần lượt với các vector đặc tính của từng ảnh mẫu trong tập các ảnh học Các khoảng cách ngắn nhất sẽ được lưu lại
𝜀𝑘 = ‖Ω − Ω𝑘‖ 𝑣ớ𝑖 𝑘 = 1, 2,3 … , 𝑀 Trong đó Ω𝑘 là vector của mặt thứ k trong cơ sở dữ liệu Nếu 𝜀𝑘 nhỏ hơn một
threshold được xác định trước thì bức ảnh được nhận dạng là mặt thứ k trong cơ sở
Eigenface thực ra chính là PCA Các Eigenfaces chính là các Eigenvectors ứng với các trị riêng lớn nhất của ma trận hiệp phương sai
Thử nghiệm trên bộ cơ sở dữ liệu Yale Face Database Các bức ảnh trong thí nghiệm này đã được căn chỉnh cho cùng với kích thước và khuôn mặt nằm trọn vẹn trong một hình chữ nhật có kích thước 116 x 98 pixel Có tất cả 15 người khác nhau, mỗi người có 11 bức ảnh được chụp ở các điều kiện ánh sáng và cảm xúc khác nhau,