Tải bản đầy đủ (.pdf) (38 trang)

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

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.65 MB, 38 trang )

<span class="text_page_counter">Trang 1</span><div class="page_container" data-page="1">

<b>TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI KHOA CÔNG NGHỆ THÔNG TIN </b>

------

<b>ĐỒ ÁN TỐT NGHIỆP Đề tài</b>

<b>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 </b>

<b>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 </b>

<b>Lớp: Công nghệ thơng tin 1 Khố: 60 </b>

<i><b>Hà Nội, tháng 05 – 2023 </b></i>

</div><span class="text_page_counter">Trang 2</span><div class="page_container" data-page="2">

<b>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 </b>

<b>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 </b>

<b>Lớp: Cơng nghệ thơng tin 1 Khố: 60 </b>

<i><b>Hà Nội, tháng 05 – 2023 </b></i>

</div><span class="text_page_counter">Trang 3</span><div class="page_container" data-page="3">

<b>LỜI CẢM ƠN</b>

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

</div><span class="text_page_counter">Trang 4</span><div class="page_container" data-page="4">

<b>MỤC LỤC</b>

<b><small>MỞ ĐẦU ... 8 </small></b>

<b><small>1. Lý do chọn đề tài ... 8 </small></b>

<b><small>2. Mục đích của đề tài ... 8 </small></b>

<b><small>3. Đối tượng và phạm vi nghiên cứu ... 9 </small></b>

<b><small>CHƯƠNG 1: TỔNG QUAN CƠNG NGHỆ ... 10 </small></b>

<b><small>1.1. Tìm hiểu về thư viện OpenCV... 10 </small></b>

<b><small>CHƯƠNG 2: GIỚI THIỆU BÀI TOÁN NHẬN DẠNG KHN MẶT ... 13 </small></b>

<b><small>2.1. Bài tốn nhận diện mặt người ... 13 </small></b>

<b><small>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 </small></b>

<b><small>2.2.1. Các bước xử lý ... 13 </small></b>

<b><small>2.2.2. Dữ liệu cho một hệ thống nhận diện khuôn mặt ... 15 </small></b>

<b><small>2.3. Face Detection ... 16 </small></b>

<b><small>2.3.1. Bài toán: ... 16 </small></b>

<b><small>2.3.2. Hướng tiếp cận dựa trên tri thức (knowledge-based) ... 16 </small></b>

<b><small>2.3.3. Hướng tiếp cận dựa trên các đặc trưng không đổi (feature invariant) ... 17 </small></b>

<b><small>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 </small></b>

<b><small>2.3.5. Hướng tiếp cận dựa trên diện mạo (appearance based) ... 17 </small></b>

<b><small>2.4. Bài tốn nhận dạng khn mặt-sử dụng Eigenfaces. ... 18 </small></b>

<b><small>2.4.1. Thuật toán PCA và ứng dụng trong nhận diện mặt người ... 19 </small></b>

<b><small>3.1.3. Thiết kế cơ sở dữ liệu ... 28 </small></b>

<b><small>3.1.4. Thiết kế giao diện ... 29 </small></b>

<b><small>3.2. Một số đoạn code chức năng ... 30 </small></b>

<b><small>3.3. Kết quả thực nghiệm ... 31 </small></b>

<b><small>KẾT LUẬN VÀ KIẾN NGHỊ ... 37 </small></b>

</div><span class="text_page_counter">Trang 5</span><div class="page_container" data-page="5">

<b><small>DANH MỤC TÀI LIỆU THAM KHẢO ... 38 </small></b>

</div><span class="text_page_counter">Trang 6</span><div class="page_container" data-page="6">

<b>DANH MỤC HÌNH ẢNH </b>

<b>Hình 1.1: Các thành phần của thư viện OpenCV ... 10 </b>

<b>Hình 2.1: Hệ thống nhận diện khn mặt ... 13 </b>

<b>Hình 2.2: Các bước chính trong một hệ thống nhận diện khn mặt ... 14 </b>

<b>Hình 2.3: Sơ đồ khối trích chọn đặc trưng sử dụng Eigenfaces ... 18 </b>

<b>Hình 2.4: Mơ hình đặc trưng thuật tốn PCA ... 20 </b>

<b>Hình 3.1: Sơ đồ mức ngữ cảnh của hệ thống ... 26 </b>

<b>Hình 3.2: Sơ đồ khối thực hiện chương trình ... 27</b>

</div><span class="text_page_counter">Trang 7</span><div class="page_container" data-page="7">

<b>DANH MỤC BẢNG BIỂU </b>

<b>Bảng 3.1: Bảng đối tượng... 28 </b>

</div><span class="text_page_counter">Trang 8</span><div class="page_container" data-page="8">

<b>MỞ ĐẦU</b>

<b>1. Lý do chọn đề tài</b>

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 tố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). Khn mặt đóng vai trị quan trọng trong q 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 tốn nhận diện khn 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 khn 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 tốn nhận diện khn 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ể tồn khn mặt như phương pháp PCA, LDA, LFA. Trong đó PCA là thuật tố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.

<b>2. Mục đích của đề tài</b>

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

</div><span class="text_page_counter">Trang 9</span><div class="page_container" data-page="9">

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

</div><span class="text_page_counter">Trang 10</span><div class="page_container" data-page="10">

<b>CHƯƠNG 1: TỔNG QUAN CƠNG NGHỆ</b>

<b>1.1. Tìm hiểu về thư viện OpenCV</b>

<b>1.1.1. Cấu trúc tổng quan</b>

<b> 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 </b>

<b>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 </b>

và nhận dạng đối tượng (khuôn mặt, mắt…).

<b>1.1.2. Ưu nhược điểm của OpenCV</b>

Ư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ả.

<b>Hình 1.1: Các thành phần của thư viện OpenCV</b>

</div><span class="text_page_counter">Trang 11</span><div class="page_container" data-page="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 ln ư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.

<b>1.2. Ngơn ngữ lập trình Python</b>

<b>1.2.1. Ưu điểm</b>

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ã hố 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

<b>1.2.2. Nhược điểm</b>

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

<b>1.3. Công cụ hỗ trợ </b>

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.

</div><span class="text_page_counter">Trang 12</span><div class="page_container" data-page="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/<i>bin</i>/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

<b>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 </b>

<b>control elements). Hỗ trợ sử dụng giao diện thiết kế trên Qt Designer trong Pycharm. </b>

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 hồ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.

</div><span class="text_page_counter">Trang 13</span><div class="page_container" data-page="13">

<b>CHƯƠNG 2: GIỚI THIỆU BÀI TỐN NHẬN DẠNG KHN MẶT</b>

<b>2.1. Bài tốn nhận diện mặt người</b>

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 tố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ạ.

<b>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</b>

<b>2.2.1. Các bước xử lý</b>

Bao gồm 4 bước xử lý sau:

- Phát hiện khuôn mặt (Face Detection).

- Phân đoạn khn mặt (Face Alignment hay Segmentation).

<b>Hình 2.1: Hệ thống nhận diện khn mặtHình 2.1:Hệ thống nhận diện khn mặt</b>

</div><span class="text_page_counter">Trang 14</span><div class="page_container" data-page="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).

<b>Hình 2.2: Các bước chính trong một hệ thống nhận diện khuôn mặt</b>

Phát hiện khuôn mặt (Face Detection) là dị tìm, định vị những vùng (vị trí) mà khn 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 khn 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 khn 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

</div><span class="text_page_counter">Trang 15</span><div class="page_container" data-page="15">

<i>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 </i>

(Recognition).

<b>2.2.2. Dữ liệu cho một hệ thống nhận diện khuôn mặt </b>

Đượ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 để ngun thì việc tính tố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), ngồ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 khn 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

<i>pháp trích chọn đặc điểm (như với các ảnh thuộc tập training và reference) và được </i>

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.

</div><span class="text_page_counter">Trang 16</span><div class="page_container" data-page="16">

<b>2.3. Face Detection </b>

<b>2.3.1. Bài toán </b>

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 khn 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 khn 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.

<b>2.3.2. Hướng tiếp cận dựa trên tri thức (knowledge-based) </b>

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 tốn xác định khn 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 khn mặt và các quan hệ tương ứng.Ví dụ, một khn mặt thường có hai mắt đối xứng nhau qua trục thẳng đứng ở giữa khn 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 khn mặt có trong ảnh, vì những khn 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 qt q 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à khn mặt nhưng lại xác định là khn 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 khn 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.

</div><span class="text_page_counter">Trang 17</span><div class="page_container" data-page="17">

<b>2.3.3. Hướng tiếp cận dựa trên các đặc trưng không đổi (feature invariant) </b>

Đâ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 khn mặt rồi chỉ ra có khn 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 tố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 khn 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.

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

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 khn 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.

<b>2.3.5. Hướng tiếp cận dựa trên diện mạo (appearance based) </b>

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

</div><span class="text_page_counter">Trang 18</span><div class="page_container" data-page="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.

<b>2.4. Bài tốn nhận dạng khn mặt-sử dụng Eigenfaces. </b>

<b> Eigenfaces là một trong các phương pháp phổ biến nhất trong bài tốn nhận dạng </b>

khn 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 khn 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 khn 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 tồn bộ ảnh và có độ nén rất tốt (loại bỏ nhiễu và dư thừa).

<b>Hình 2.3: Sơ đồ khối trích chọn đặc trưng sử dụng Eigenfaces</b>

</div><span class="text_page_counter">Trang 19</span><div class="page_container" data-page="19">

<b>2.4.1. Thuật toán PCA và ứng dụng trong nhận diện mặt người </b>

a. Giới thiệu chung về thuật tốn.

Phân tích thành phần chính gọi tắt là PCA là một thuật tố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 tốn nhận dạng khn mặt.

- PCA rất nhạy cảm với nhiễu.

b. Ứng dụng trong bài tốn nhận diện khn 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 tố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

<i>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 </i>

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

</div>

×