Báo cáo 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

38 0 0
Tài liệu đã được kiểm tra trùng lặp
Báo cáo 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

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

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 1

TRƯỜ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 2

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 3

LỜI CẢM ƠN

Em xin chân thành cảm ơn cô giáo, Ths Nguyễn Thị Hồng Hoa – giảng viên khoa Công nghệ thông tin đã tận tâm và nhiệt tình dạy bảo trong suốt quá trình học và làm đồ án tốt nghiệp, cô đã dành nhiều thời gian để tận tình chỉ bảo, hướng dẫn, định hướng cho em thực hiện đồ án, giúp em học hỏi những kinh nghiệm quý báu và đã đạt được những thành quả nhất định

Em 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 4

MỤ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

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

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 5

DANH MỤC TÀI LIỆU THAM KHẢO 38

Trang 6

DANH 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 7

DANH MỤC BẢNG BIỂU

Bảng 3.1: Bảng đối tượng 28

Trang 8

MỞ ĐẦ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 9

3 Đối tượng và phạm vi nghiên cứu

Trang 10

CHƯƠ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 11

Nhược điểm:

Các thư viện chỉ hỗ trợ một tính năng cụ thể và duy nhất cho một công việc của người dùng Đây là điểm hạn chế của OpenCV khi các công cụ hiện nay luôn ưu tiên cho việc đa dạng hóa các tính năng, giúp người thuận tiện hơn trong việc phát triển

1.2 Ngôn ngữ lập trình Python

1.2.1 Ưu điểm

Dễ đọc và dễ học Giảm chi phí bảo trì

Tránh tác hại từ lỗi phần mềm Khả năng ứng dụng rộng rãi Quản lý bộ nhớ

Đơn giản và nhanh chóng Mã hoá không đồng bộ

Tích hợp với các ngôn ngữ khác Tích hợp ứng dụng doanh nghiệp

1.2.2 Nhược điểm

Tốc độ thực thi chậm Tiêu thụ bộ nhớ lớn

Không thích hợp cho phát triển trò chơi và thiết bị di động Hạn chế của nhà phát triển

Phát hiện lỗi trong mã Quyền truy cập CSDL Hạn chế thiết kế Khó kiểm tra

1.3 Công cụ hỗ trợ

Qt Designer: một công cụ có thể nhanh chóng xây dựng giao diện người dùng đồ họa với các widget từ khung Qt GUI Nó cung cấp cho bạn một giao diện kéo và thả đơn giản để bố trí các thành phần như nút, trường văn bản, hộp tổ hợp và hơn thế nữa Qt Designer tạo ra ui các tệp Đây là một định dạng dựa trên XML đặc biệt để lưu trữ các widget của bạn dưới dạng cây Bạn có thể tải các tệp này trong thời gian chạy hoặc dịch chúng sang ngôn ngữ lập trình như C ++ hoặc Python Nhiều người thích sử dụng Qt Designer cùng với Python vì nó là một ngôn ngữ động có lợi cho việc tạo mẫu nhanh

Trang 12

Cá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 13

CHƯƠ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ặtHì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 15

hiể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 16

2.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 17

2.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 199, T.K.Leung 1995.

2.3.4 Hướng tiếp cận dựa trên phương pháp đối sánh mẫu (template matching)

Trong phương pháp đối sánh mẫu, các mẫu chuẩn của khuôn mặt (thường là khuôn mặt được chụp thẳng) sẽ được xác định trước hoặc xác định các tham số thông qua một hàm Từ một ảnh đưa vào, tính các giá trị tương quan so với các mẫu chuẩn về đường viền khuôn mặt, mắt, mũi và miệng Thông qua các giá trị tương quan này mà các tác giả quyết định có hay không tồn tại khuôn mặt trong ảnh Hướng tiếp cận này có lợi thế 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 18

Phâ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 19

2.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)

Ngày đăng: 05/06/2024, 01:32