Với sự phát triển của khoa học và công nghệ ngày càng cao, đặc biệt là với những chiếc điện thoại thông minh ngày càng hiện đại và được sủ dụng phổ biến trong đời sống con người đã làm cho lượng thông tin thu thập được bằng hình ảnh ngày càng tăng. Theo đó lĩnh vực xử lý ảnh cũng được chú trọng phát triển, ứng dụng rộng rãi trong đời sống. Không chỉ dừng lại ở việc chỉnh sửa, tăng chất lượng hình ảnh mà với công nghệ xử ly ảnh hiện nay chúng ta có thể giải quyết các bài toán nhận diện chữ viết, nhận diện dấu vân tay nhận diện khuôn mặt… Một trong những bài toán được quan tâm nhất của lĩnh vực xử lý ảnh hiện nay là nhận diện khuôn mặt (Face Recognition). Khuôn mặt đóng vai trò quan trọng trong quá trình giao tiếp giữa người với người, nó mang một lượng thông tin giàu có như tuổi tác, giới tính, cảm xúc… đặc biệt là xác nhận xem đối tượng có quen biết hay không. Do đó bài toán nhận diện khuôn mặt đóng vai trò quan trọng trong nhiều lĩnh vực đời sống hàng ngày của con người như hệ thống giám sát, xử lý vào ra, tìm kiếm thông tin một người nào đó, an ninh và bảo mật. Có rất nhiều phương pháp nhận diện khuôn mặt tuy nhiên dù ít hay nhiều những phương pháp này đang vấp phải những thử thách về độ sáng hướng nghiên, kích thước ảnh, hay ảnh hưởng của tham số môi trường. Bài toán nhận diện khuôn mặt (Face Recognition) gồm nhiều bài toán khác nhau như: phát hiện (face detection), đánh dấu (facial landmarking), trích chọn đặc trưng (feature extraction), gán nhãn, phân lớp (classification). Có hai phương pháp nhận diện phổ biến hiện nay là nhận diện dựa trên đặc đặc trưng của các phần tử khuôn mặt như biến đổi Gabor Wavelet và mạng Newral, SVM… và nhận dạng dựa trên xét tổng thể toàn khuôn mặt như phương pháp PCA, LDA, LFA. Trong đó PCA là thuật toán 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.
Trang 1TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN
- -
ĐỒ ÁN TỐT NGHIỆP
Đề tài Nghiên cứu, xây dựng ứng dụng nhận diện khách
hàng bằng khuôn mặt
Giảng viên hướng dẫn: Ths Nguyễn Thị Hồng Hoa Sinh viên thực hiện: Nguyễn Thị Huyền Trang
Mã sinh viên: 191241029 Lớp: Công nghệ thông tin 1 Khoá: 60
Hà Nội, tháng 05 – 2023
Trang 2TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN
- -
ĐỒ ÁN TỐT NGHIỆP
Đề tài Nghiên cứu, xây dựng ứng dụng nhận diện khách
hàng bằng khuôn mặt
Giảng viên hướng dẫn: Ths Nguyễn Thị Hồng Hoa Sinh viên thực hiện: Nguyễn Thị Huyền Trang
Mã sinh viên: 191241029 Lớp: Công nghệ thông tin 1 Khoá: 60
Hà Nội, tháng 05 – 2023
Trang 3Em xin chân thành cảm ơn các thầy cô trong khoa Công nghệ thông tin đã nhiệt tình dạy bảo và tạo điều kiện tốt nhất trong suốt thời gian học tập tại trường
Do khả năng và thời gian hạn chế, kinh nghệm thực tế chưa nhiều nên không tránh khỏi những thiếu sót Em rất mong nhận được những ý kiện nhận xét và sự chỉ bảo từ các thầy cô
Cuối cùng em xin được gửi tới các thầy cô, các anh chị cùng toàn thể các bạn một lời chúc tốt đẹp nhất, lời chúc sức khoẻ, thịnh vượng và phát triển Chúc các thầy cô đạt được nhiều thành công hơn nữa trong sự nghiệp trồng người
Em xin chân thành cảm ơn
Hà Nội, tháng 05 năm 2023
Sinh viên
Nguyễn Thị Huyền Trang
Trang 4MỤC LỤC
MỞ ĐẦU 8
1 Lý do chọn đề tài 8
2 Mục đích của đề tài 8
3 Đối tượng và phạm vi nghiên cứu 9
CHƯƠNG 1: TỔNG QUAN CÔNG NGHỆ 10
1.1 Tìm hiểu về thư viện OpenCV 10
1.1.1 Cấu trúc tổng quan 10
1.1.2 Ưu nhược điểm của OpenCV 10
1.2 Ngôn ngữ lập trình Python 11
1.2.1 Ưu điểm 11
1.2.2 Nhược điểm 11
1.3 Công cụ hỗ trợ 11
CHƯƠNG 2: GIỚI THIỆU BÀI TOÁN NHẬN DẠNG KHUÔN MẶT 13
2.1 Bài toán nhận diện mặt người 13
2.2 Tổng quan kiến trúc của một hệ thống nhận diện khuôn mặt người 13
2.2.1 Các bước xử lý 13
2.2.2 Dữ liệu cho một hệ thống nhận diện khuôn mặt 15
2.3 Face Detection 16
2.3.1 Bài toán: 16
2.3.2 Hướng tiếp cận dựa trên tri thức (knowledge-based) 16
2.3.3 Hướng tiếp cận dựa trên các đặc trưng không đổi (feature invariant) 17
2.3.4 Hướng tiếp cận dựa trên phương pháp đối sánh mẫu (template matching) 17
2.3.5 Hướng tiếp cận dựa trên diện mạo (appearance based) 17
2.4 Bài toán nhận dạng khuôn mặt-sử dụng Eigenfaces 18
2.4.1 Thuật toán PCA và ứng dụng trong nhận diện mặt người 19
2.4.2 Tìm Eigenfaces 21
2.4.3 So sánh khoảng cách 25
CHƯƠNG 3: CHƯƠNG TRÌNH CÀI ĐẶT VÀ KẾT QUẢ 26
3.1 Phân tích thiết kế hệ thống 26
3.1.1 Phân tích 26
3.1.2 Thiết kế chức năng 26
3.1.3 Thiết kế cơ sở dữ liệu 28
3.1.4 Thiết kế giao diện 29
3.2 Một số đoạn code chức năng 30
3.3 Kết quả thực nghiệm 31
KẾT LUẬN VÀ KIẾN NGHỊ 37
Trang 5DANH MỤC TÀI LIỆU THAM KHẢO 38
Trang 6DANH MỤC HÌNH ẢNH
Hình 1.1: Các thành phần của thư viện OpenCV 10
Hình 2.1: Hệ thống nhận diện khuôn mặt 13
Hình 2.2: Các bước chính trong một hệ thống nhận diện khuôn mặt 14
Hình 2.3: Sơ đồ khối trích chọn đặc trưng sử dụng Eigenfaces 18
Hình 2.4: Mô hình đặc trưng thuật toán PCA 20
Hình 3.1: Sơ đồ mức ngữ cảnh của hệ thống 26
Hình 3.2: Sơ đồ khối thực hiện chương trình 27
Trang 7DANH MỤC BẢNG BIỂU
Bảng 3.1: Bảng đối tượng 28
Trang 8MỞ ĐẦU
1 Lý do chọn đề tài
chiếc điện thoại thông minh ngày càng hiện đại và được sủ dụng phổ biến trong đời sống con người đã làm cho lượng thông tin thu thập được bằng hình ảnh ngày càng tăng Theo
đó lĩnh vực xử lý ảnh cũng được chú trọng phát triển, ứng dụng rộng rãi trong đời sống Không chỉ dừng lại ở việc chỉnh sửa, tăng chất lượng hình ảnh mà với công nghệ xử ly ảnh hiện nay chúng ta có thể giải quyết các bài toán nhận diện chữ viết, nhận diện dấu vân tay nhận diện khuôn mặt…
Một trong những bài toán được quan tâm nhất của lĩnh vực xử lý ảnh hiện nay là nhận diện khuôn mặt (Face Recognition) Khuôn mặt đóng vai trò quan trọng trong quá trình giao tiếp giữa người với người, nó mang một lượng thông tin giàu có như tuổi tác, giới tính, cảm xúc… đặc biệt là xác nhận xem đối tượng có quen biết hay không Do đó bài toán nhận diện khuôn mặt đóng vai trò quan trọng trong nhiều lĩnh vực đời sống hàng ngày của con người như hệ thống giám sát, xử lý vào ra, tìm kiếm thông tin một người nào đó, an ninh và bảo mật Có rất nhiều phương pháp nhận diện khuôn mặt tuy nhiên
dù ít hay nhiều những phương pháp này đang vấp phải những thử thách về độ sáng hướng nghiên, kích thước ảnh, hay ảnh hưởng của tham số môi trường
Bài toán nhận diện khuôn mặt (Face Recognition) gồm nhiều bài toán khác nhau như: phát hiện (face detection), đánh dấu (facial landmarking), trích chọn đặc trưng (feature extraction), gán nhãn, phân lớp (classification) Có hai phương pháp nhận diện phổ biến hiện nay là nhận diện dựa trên đặc đặc trưng của các phần tử khuôn mặt như biến đổi Gabor Wavelet và mạng Newral, SVM… và nhận dạng dựa trên xét tổng thể toàn khuôn mặt như phương pháp PCA, LDA, LFA Trong đó PCA là thuật toán 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
2 Mục đích của đề tài
- Tìm hiểu về thư viện OpenCV
- Nghiên cứu phương pháp trích chọn đặc trưng Eigenfaces
- Tìm hiểu phương pháp xác định khuôn mặt (Face Detection)
- Nghiên cứu phương pháp phân tích thành phần chính (Principal Component Analysis – PCA)
Trang 93 Đối tượng và phạm vi nghiên cứu
Trang 10CHƯƠNG 1: TỔNG QUAN CÔNG NGHỆ
1.1 Tìm hiểu về thư viện OpenCV
1.1.1 Cấu trúc tổng quan
Phần CV bao gồm các thư viện cơ bản về xử lý ảnh và các giải thuật về thị giác máy
tính MLL là bộ thư viện về các thuật toán học máy, bao gồm rất nhiều bộ phân cụm và phân loại thống kê HighGUI chứa đựng những thủ tục vào ra, các chức năng về lưu trữ cũng như đọc các file ảnh và video Cxcore chứa các cấu trúc dữ liệu cơ bản (ví dụ cấu trúc XML, các cây dữ liệu…) CvAux bao gồm cả thư viện cho việc phát hiện, theo dõi
và nhận dạng đối tượng (khuôn mặt, mắt…)
1.1.2 Ưu nhược điểm của OpenCV
Ưu điểm:
Đây là thư viện đầu tiên, tiên phong hỗ trợ cho thị giác máy tính, được sử dụng nhiều vào các công nghệ học máy, do tích hợp hiệu suất nhanh và hỗ trợ đa ngôn ngữ, phù hợp với mọi lập trình viên
OpenCV cung cấp hơn 2500 thuật toán hiện đại xen lẫn cổ điển Bằng cách sử dụng thư viện này, người dùng có thể thực hiện các tác vụ như trích xuất mô hình, lượt bỏ, theo dõi chuyển động,…
Được sử dụng rộng rãi
Trong cộng đồng sử dụng OpenCV rộng lớn, người dùng có thể yêu cầu được hỗ trợ hoặc trợ giúp, chia sẻ những kinh nghiệm và giải pháp của mình với những người khác Đây là một cách rất tốt giúp người dùng có thể giao lưu, học hỏi thêm những kiến thức
về OpenCV trong cộng đồng
OpenCV cung cấp sự hiệu quả trong các thuật toán để xử lý các chương trình thời gian thực Hơn nữa, bộ công cụ này được thiết kế với hiệu năng đặc biệt, cho phép tận dụng khả năng tăng tốc phần cứng và hệ thống đa lõi để triển khai hiệu quả
Hình 1.1: Các thành phần của thư viện OpenCV
Trang 12Cách dễ nhất để kết hợp Qt Designer và Python là thông qua liên kết PyQt Để cài đặt PyQt, chỉ cần nhập nội dung sau vào dòng lệnh:
python3 -m venv venv
source venv/bin/activate # or "call venv\Scripts\activate.bat" on Windows
python3 -m pip install PyQt5
PyQt5 là Python interface của Qt, kết hợp của ngôn ngữ lập trình Python và thư viện
Qt, là một thư viện bao gồm các thành phần giao diện điều khiển (widgets , graphical
control elements) Hỗ trợ sử dụng giao diện thiết kế trên Qt Designer trong Pycharm
Pycharm có ưu điểm:
Cài đặt PyCharm rất dễ dàng
PyCharm là một IDE dễ sử dụng
Có rất nhiều plugin hữu ích và phím tắt hữu ích trong PyCharm
PyCharm tích hợp các tính năng của thư viện và IDE như tự động hoàn thành và tô màu
Nó cho phép xem mã nguồn trong một cú nhấp chuột
Tiết kiệm thời gian phát triển phần mềm
Tính năng đánh dấu lỗi trong code giúp nâng cao hơn nữa quá trình phát triển Cộng đồng các nhà phát triển Python vô cùng lớn và chúng ta có thể giải quyết các thắc mắc/ nghi ngờ của mình một cách dễ dàng
Nhược điểm của Pycharm:
PyCharm không miễn phí và phiên bản Professional của nó khá đắt
Tính năng tự điền (auto-complete) sẽ không tốt cho các lập trình viên newbie
Nó có thể gây ra sự cố trong khi sửa chữa các công cụ như venv
Trang 13CHƯƠNG 2: GIỚI THIỆU BÀI TOÁN NHẬN DẠNG
KHUÔN MẶT
2.1 Bài toán nhận diện mặt người
Hệ thống nhận dạng mặt người là một hệ thống nhận vào là một ảnh, một đoạn video (một dòng các hình ảnh liên tục) hoặc bằng webcam Qua xử lý, tính toán hệ thống xác định được vị trí mặt người (nếu có) trong ảnh và xác định là người nào trong số những người mà hệ thống đã được biết (qua quá trình học) hoặc là người lạ
2.2 Tổng quan kiến trúc của một hệ thống nhận diện khuôn mặt người
2.2.1 Các bước xử lý
Bao gồm 4 bước xử lý sau:
- Phát hiện khuôn mặt (Face Detection)
- Phân đoạn khuôn mặt (Face Alignment hay Segmentation)
Hình 2.1: Hệ thống nhận diện khuôn mặt Hình 2.1: Hệ thống nhận diện khuôn mặt
Trang 14- Trích chọn đặc trưng (Feature Extracttion)
- Nhận diện (Recognition) hay Phân lớp khuôn mặt (Face Classification)
Hình 2.2: Các bước chính trong một hệ thống nhận diện khuôn mặt
Phát hiện khuôn mặt (Face Detection) là dò tìm, định vị những vùng (vị trí) mà khuôn mặt có thể xuất hiện trong ảnh hoặc video Các vùng này sẽ được tách riêng để xử lý Phân đoạn khuôn mặt (Face Alignment hay Segmentation) sẽ xác định vị trí mắt, mũi, miệng và các thành phần khác của khuôn mặt và chuyển kết quả này cho bước trích chọn đặc trưng (Feature Extracttion) Ở bước này, bằng phương pháp trích chọn điểm nào đó (mẫu nhị phân cục bộ - Local Binary Pattern - LBP, Garbo 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 từ các thông tin về các thành phần trên khuôn mặt, kết quả là mỗi ảnh sẽ được biểu diến dưới dạng vector đặc trưng (feature vector) Những vector đặc trưng này sẽ là dữ liệu đầu vào cho một mô hình đã được huấn luyện trước để nhận diện khuôn mặt (Recognition) hay phân lớp khuôn mặt (Face Clasaification), ở đây sẽ xác định danh tính hay nhãn của ảnh, xác định
đó là ai Ở bước này, phương pháp k-láng giềng gần (k-nearest neighbor: k-NN) sẽ được
sử dụng
Bên cạnh những bước chính nêu trên chúng ta còn có thể áp dụng thêm một số các bước khác như tiền xử lý (Preprocessing), hậu xử lý nhằm làm tăng độ chính xác cho hệ thống Ví dụ, sau bước phát hiện khuôn mặt (Face Detection) ta có thể thực hiện bước tiền xử lý (Preprocessing) bao gồm các bước căn chỉnh ảnh (Face image alignment) và chuẩn hoá ánh sáng (Illumination normalization)
Do một số thông số như: tư thế khuôn mặt, độ sáng, điều kiện ánh sáng… phát hiện khuôn mặt (Face Detection) được đánh giá là bước khó khăn và quan trọng nhất so với các bước còn lại của hệ thống Tuy nhiên, trong phạm vi đồ án này, không tập trung tìm
Trang 15hiểu bước phát hiện khuôn mặt mà chỉ tập trung chủ yếu vào bước nhận diện khuôn mặt
(Recognition)
2.2.2 Dữ liệu cho một hệ thống nhận diện khuôn 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)
- 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 - learning), 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), WPC (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: thứ nhất giảm số chiều (dimension reduction) của các vector đặc điểm (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 (discriminative) 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)
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 khuôn 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 probe - tập để nhận dạng, sau khi tiền xử lý xong, mỗi ảnh sẽ được áp dụng phương
pháp trích chọn đặc điểm (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 ảnh có khoảng cách (distance) gần với nó nhất Ở đây cần lưu ý là mỗi ảnh là một vector nên có thể dùng khái niệm hàm khoảng cách giữa hai vector để đo sự khác biệt giữa các ảnh
Trang 162.3 Face Detection
2.3.1 Bài toán
Phát hiện khuôn mặt người (Face Detection) là một kỹ thuật máy tính để xác định các
vị trí và các kích thước của các khuôn mặt người trong các ảnh bất kỳ (ảnh kỹ thuật số) nếu có
Kỹ thuật này nhận biết các đặc trưng của khuôn mặt và bỏ qua những thứ khác, như: tòa nhà, cây cối, cơ thể
Có nhiều nghiên cứu tìm phương pháp xác định khuôn mặt người, từ ảnh xám đến ảnh màu
Dựa vào tính chất của các phương pháp xác định mặt người trên ảnh, các phương pháp này được chia thành bốn loại chính, tương ứng với bốn hướng tiếp cận khác nhau
1 Hướng tiếp cận dựa trên tri thức (knowledge-based)
2 Hướng tiếp cận dựa trên các đặc trưng không đổi (feature invariant)
3 Hướng tiếp cận dựa trên phương pháp đối sánh mẫu (Template matching)
4 Hướng tiếp cận dựa trên diện mạo (appearance-based)
Ngoài ra cũng có rất nhiều nghiên cứu mà phương pháp xác định mặt người không chỉ dựa vào một hướng mà có liên quan đến nhiều hướng Trong phạm vi đồ án môn học này, chỉ giới thiệu tổng quan các hướng tiếp cận để xác định khuôn mặt người trong ảnh
2.3.2 Hướng tiếp cận dựa trên tri thức (knowledge-based)
Trong hướng tiếp cận này, các luật sẽ phụ thuộc rất lớn vào tri thức của những tác giả nghiên cứu về bài toán xác định khuôn mặt người Đây là hướng tiếp cận dạng top-down
Dễ dàng xây dựng các luật cơ bản để mô tả các đặc trưng của khuôn mặt và các quan hệ tương ứng.Ví dụ, một khuôn mặt thường có hai mắt đối xứng nhau qua trục thẳng đứng
ở giữa khuôn mặt và có một mũi, một miệng
Một vấn đề khá phức tạp khi dùng hướng tiếp cận này là làm sao chuyển từ tri thức con người sang các luật một cách hiệu quả Nếu các luật này quá chi tiết thì khi xác định
có thể xác định thiếu các khuôn mặt có trong ảnh, vì những khuôn mặt này không thể thỏa mãn tất cả các luật đưa ra Nhưng các luật tổng quát quá thì có thể chúng ta sẽ xác định nhầm một vùng nào đó trên thực tế không phải là khuôn mặt nhưng lại xác định là khuôn mặt Và cũng khó khăn mở rộng yêu cầu từ bài toán để xác định các khuôn mặt
có nhiều tư thế khác nhau
Một số nghiên cứu áp dụng phương pháp này từ rất sớm như: Kanade 1973, G Yang
1994 và Kotropoulos 1997
Trang 172.3.3 Hướng tiếp cận dựa trên các đặc trưng không đổi (feature invariant)
Đây là hướng tiếp cập theo kiểu bottom-up Các tác giả cố gắng tìm các đặc trưng không thay đổi của khuôn mặt người để xác định khuôn mặt người Dựa trên nhận xét thực tế, con người dễ dàng nhận biết các khuôn mặt và các đối tượng trong các tư thế khác nhau và điều kiện ánh sáng khác nhau, thì phải tồn tại các thuộc tính hay đặc trưng không thay đổi Có nhiều nghiên cứu đầu tiên xác định các đặc trưng khuôn mặt rồi chỉ
ra có khuôn mặt trong ảnh hay không Các đặc trưng như mắt, mũi, miệng, đường viền của tóc được trích bằng phương pháp xác định cạnh Trên cơ sở các đặc trưng này, xây dựng một mô hình thống kê để mô tả quan hệ của các đặc trưng này và xác định sự tồn tại của khuôn mặt trong ảnh Một vấn đề của thuật toán theo hướng tiếp cận này đó
là cần phải điều chỉnh cho phù hợp với điều kiện ánh sáng, nhiễu, bị che khuất Đôi khi bóng của một khuôn mặt sẽ tạo thêm cạnh mới, mà cạnh này lại rõ ràng hơn cạnh thật
sự của khuôn mặt, gây ra sự nhầm lẫn khi xác định khuôn mặt
Các công trình sử dụng hướng tiếp cận này có thể kể đến như: K.C.Yow và R.Cipolla
là rất dễ cài đặt, nhưng không hiệu quả khi tỷ lệ, tư thế và hình dáng thay đổi Nhiều độ phân giải, đa tỷ lệ, các mẫu con và các mẫu biến dạng được xem xét thành bất biến về
tỷ lệ và hình dáng
I.Craw 1992 đã áp dụng một mẫu cứng trong khi A Lanitis 1995 sử dụng một mẫu
có thể biến dạng trong bước phát hiện khuôn mặt
2.3.5 Hướng tiếp cận dựa trên diện mạo (appearance based)
Trái ngược hẳn với hướng tiếp cận dựa trên đối sánh mẫu, các mô hình (hay các mẫu) được học từ một tập ảnh huấn luyện trước đó Sau đó hệ thống (mô hình) sẽ xác định khuôn mặt người Do phương pháp này thường dùng một mô hình máy học nên còn được gọi là phương pháp dựa trên máy học (machine learning-based)
Sau đó hệ thống sẽ tồng hợp tất cả các đặc trưng của khuôn mặt con người như: mắt, mũi, miệng thành một vector riêng
Có nhiều mô hình máy học được áp dụng trong hướng tiếp cận này: Eigenface (M.Turk và A.Pentland 1991), Mô hình dựa trên phân phối (K.K.Sung and T.Poggio 1998) Mjang Neural (H.Rowley 1998), Support Vector Machine (E.Osuna et al 1997)
Trang 18Phân lớp Bayes (H.Schneiderman và T Kanade 1998) Mô hình Markov ẩn (A Rajagopalan etal 1998) và các mô hình tăng cường (Adaboost của P Viola và M Jones 2001; Float Boost do StanZ Li và Zhen Qiu Zhang 2004)
Hướng tiếp cận dựa trên diện mạo (appearance-based) được lựa chọn để thực hiện phát hiện khuôn mặt người trong ảnh
2.4 Bài toán nhận dạng khuôn mặt-sử dụng Eigenfaces
Eigenfaces là một trong các phương pháp phổ biến nhất trong bài toán nhận dạng
khuôn mặt Ý tưởng của Eigenface là đi tìm một không gian có số chiều nhỏ hơn để mô
tả mỗi khuôn mặt, từ đó sử dụng vector trong không gian thấp này như là feature vector cho việc thực hiện classification Điều đáng nói là một bức ảnh khuôn mặt có kích thước khoảng 200 × 200 sẽ có số chiều là 40k - là một số cực lớn, trong khi đó, feature vector thường chỉ có số chiều bằng vài trăm
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
Ưu điểm của phương pháp này là biểu diễn được toàn bộ ảnh và có độ nén rất tốt (loại
bỏ nhiễu và dư thừa)
Hình 2.3: Sơ đồ khối trích chọn đặc trưng sử dụng Eigenfaces
Trang 192.4.1 Thuật toán PCA và ứng dụng trong nhận diện mặt người
a Giới thiệu chung về thuật toán
Phân tích thành phần chính gọi tắt là PCA là một thuật toán được sử dụng để tạo ra một ảnh mới từ ảnh ban đầu Ảnh mới này có kích thước nhỏ hơn nhiều so với ảnh ban đầu nhưng vẫn mang những đặc trưng cơ bản nhất của ảnh cần nhận dạng
PCA không cần quan tâm đến việc tìm ra các đặc điểm cụ thể của thực thể cần nhận dạng và mối quan hệ giữa các đặc điểm đó Tất cả các chi tiết đó đều được thể hiện ở ảnh mới được tạo ra từ PCA
Ư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 phải xác định các thành phần và mối quan hệ giữ các thành phần đó
- Có thể thực hiện tốt với các ảnh có độ phân giải cao, do PCA sẽ thu ảnh gốc thành một ảnh có kích thước nhỏ hơn
- PCA có thể kết hợp với các phương pháp khác như Non, Support Vector Machine… để mang lại hiệu quả nhận dạng cao hơn
Nhược điểm của phương pháp PCA:
- Phân loại theo chiều lớn nhất của tập véc-tơ 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 nhất cho bài toán nhận dạng khuôn mặt
- PCA rất nhạy cảm với nhiễu
b Ứng dụng trong bài toán nhận diện khuôn mặt
Trong bài toán nhận dạng mặt người, PCA là thuật toán nhận dạng ảnh dựa trên những nét tổng thể của khuôn mặt, ta sẽ áp dụng thuật toán này để thực hiện công việc tìm một khuôn mặt giống với khuôn mặt cho trước với kích thước nhỏ hơn và chỉ mang những nét đặc trưng của khuôn mặt
Đặc trưng PCA: Mục tiêu của phương pháp PCA 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” Phương pháp PCA
sẽ giữ lại K thuộc tính mới (Feature extraction) từ N các thuộc tính ban đầu (feature selection) (K < N)