1. Trang chủ
  2. » Luận Văn - Báo Cáo

Thiết kế hệ thống giám sát thông minh dựa trên việc phát hiện và nhận dạng khuôn mặt

109 58 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 109
Dung lượng 3,98 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong luận văn này trình bày về một hệ thống phát hiện khuôn mặt nhanh và chính xác, có thể đạt được tốc độ xử lý trên 10 hình ảnh có kích thước trung bình trong một giây với tỷ lệ phát

Trang 1

*

LÊ ĐÌNH NGỌC

THIẾT KẾ HỆ THỐNG GIÁM SÁT THÔNG MINH DỰA TRÊN VIỆC PHÁT HIỆN VÀ NHẬN DẠNG

Trang 2

3… TS HỒ VĂN KHƯƠNG (Chủ tịch hội đồng)

Xác nhận của Chủ tịch Hội đồng đánh giá LV và Trưởng Khoa quản lý chuyên ngành sau khi luận văn đã được sửa chữa (nếu có)

Trang 3

NHIỆM VỤ LUẬN VĂN THẠC SĨ

Họ tên học viên : LÊ ĐÌNH NGỌC MSHV: 12214211

Ngày tháng năm sinh : 08/08/1989 Nơi sinh: Bình Phước

Chuyên ngành : Kỹ thuật điện tử Mã ngành: 60 52 70

I TÊN ĐỀ TÀI: THIẾT KẾ HỆ THỐNG GIÁM SÁT THÔNG MINH DỰA TRÊN VIỆC PHÁT HIỆN VÀ NHẬN DẠNG KHUÔN MẶT

II NHIỆM VỤ VÀ NỘI DUNG:

Tìm hiểu cơ sở lý thuyết về các thuật toán phát hiện, xử lý, nhận dạng khuôn mặt

 Xây dựng ứng dụng bảo mật bằng cách phát hiện, xử lý hình ảnh, nhận dạng khuônmặt người trên Kit Raspberry Pi 2

III NGÀY GIAO NHIỆM VỤ: 30/9/2014

IV NGÀY HOÀN THÀNH NHIỆM VỤ: 13/07/2015

V CÁN BỘ HƯỚNG DẪN: TS Trương Công Dung Nghi

Trang 4

LỜI CÁM ƠN!

Em xin được gửi lời cảm ơn chân thành đến các thầy cô khoa Điện – Điện

Tử, các thầy, Cô Phòng Đào Tạo Sau Đại Học Bách Khoa TP.HCM đã giúp đỡ và giảng dạy Em trong quá trình học cao Học Tại Trường Đại Học Bách Khoa TP HCM

Để có thể hoàn thành được luận văn này, đó là sự giúp đỡ, giảng dạy nhiệt tình, hết sức của tất cả các Thầy, Cô trong suốt quá trình học của Em tại Trường Đại Học Bách Khoa TP HCM

Em xin gửi lời cảm ơn sâu sắc đến Cô Trương Công Dung Nghi Người đã

tận tình chia sẻ, hướng dẫn, chỉ bảo Em trong suốt một năm qua để Em có thể hoàn thành được luận văn này đúng hạn Nhờ sự hướng dẫn tận tình của cô, Em đã có được nhiều kiến thức bổ ích trong một lĩnh vực hoàn toán mới lạ đối với Em trước khi thực thực hiện luận văn này Một lần nữa Em xin chân thành cảm ơn đến cô

Sau cùng, em xin kính chúc quý Thầy Cô trong khoa Điện – Điện Tử, các thầy, cô Phòng Đào Tạo Sau Đại Học Bách Khoa TP.HCM thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau

Sinh Viên

Lê Đình Ngọc

Trang 5

TÓM TẮT LUẬN VĂN

Phát hiện và Nhận dạng mặt người là một trong những vấn đề rất thách thức trong lĩnh vực thị giác máy tính và máy học Các công trình nghiên cứu gần đây đã nâng khá cao độ chính xác của hệ thống phát hiện và nhận dạng khuôn mặt Trong luận văn này trình bày về một hệ thống phát hiện khuôn mặt nhanh và chính xác, có thể đạt được tốc độ xử lý trên 10 hình ảnh có kích thước trung bình trong một giây với tỷ lệ phát hiện đúng có thể đạt tới 95% bằng cách kết hợp các đặc trưng Haar Like với thuật toán AdaBoost và mô hình phân tầng Cascade Điều này cho phép hệ thống có thể phát hiện khuôn mặt từ camera thời gian thực Sau đó, áp dụng thuật toán PCA để trích rút đặc trưng đưa vào phục vụ quá trình nhận dạng Hệ thống phát hiện, nhận dạng khuôn mặt được thực hiện trên kit Rasperi Pi 2, với ngôn ngữ

mã nguồn mỡ Open CV Các chức năng của hệ thống phát hiện và nhận dạng khuôn mặt bao gồm:

 Phát hiện, nhận dạng khuôn mặt từ camera

 Cảnh báo khi có đối tượng xâm nhập trái phép

 Đăng nhập kiểm soát người dùng

Qua kiểm tra thực nghiệm, hệ thống cho sự chính xác lên đến 97% ở điều kiện ánh sáng tốt Tuy nhiên với điều kiện ánh sáng thấp, khuôn mặt bị nghiêng, hay che một phần hệ thống chưa đạt được kết quả tốt như mong đợi

Trang 6

ABSTRACT

Face detection and identification is a very challenging problem in the field of computer vision and machine learning The recent study has increased quite high accuracy of face detection and recognition system.This thesis presents the face detection and recognition system that, can achieve a processing speed of over 10 images in one second and the detection rate can reach 95 % by combining the Haar characteristics and AdaBoost algorithm Such a system can detect faces from cameras in real time The PCA algorithm is then applied for face recognition The face detection and recognition system is performed on Raspberry Pi 2 board

Through experimental tests, the system accurate up to 97% in good lighting conditions However, with low lighting conditions, faces tilted, or cover part systems have not achieved good results as expected

Trang 7

LỜI CAM ĐOAN

Tôi xin cam đoan đây là công trình nghiên cứu được hoàn thành bởi bản thân tôi với

sự hướng dẫn của Cô Trương Công Dung Nghi Các số liệu có nguồn gốc rõ ràng

và tuân thủ đúng nguyên tắc Các kết quả thực nghiệm do tôi tìm hiểu, thu thập một cách trung thực khách quan phù hợp với thực nghiệm

Tp HCM Ngày … Tháng …Năm…….

Sinh Viên

Trang 8

MỤC LỤC

BẢNG THUẬT NGỮ 5

Danh sách các thuật ngữ dùng trong luận văn 5

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI 6

1.1 Giới Thiệu Đề Tài 6

1.2 Phạm vi đề tài 7

1.3 Phương pháp nghiên cứu 8

1.4 Giới hạn đề tài 8

CHƯƠNG 2: TÌNH HÌNH NGHIÊN CỨU VÀ LÝ THUYẾT TỔNG QUAN LIÊN QUAN ĐẾN ĐỀ TÀI 9

2.1 Tình Hình Nghiên Cứu Nhận Dạng Khuôn Mặt Người 9

2.2 Tổng quát hệ thống nhận dạng khuôn mặt 10

CHƯƠNG 3: TỔNG QUAN VỀ CÁC PHƯƠNG PHÁP PHÁT HIỆN VÀ NHẬN DẠNG KHUÔN MẶT 15

3.1 Các phương pháp phát hiện khuôn mặt người 15

3.1.1 Phương pháp phát hiện khuôn mặt dựa trên hình ảnh khuôn mặt 15

3.1.2 Phương pháp nhận dạng khuôn mặt dựa trên cấu trúc hình học của khuôn mặt 20

3.2 Các phương nhận dạng khuôn mặt người 23

3.2.1 Nhận dạng dựa trên các đặc trưng khuôn mặt 23

3.2.2 Nhận dạng dựa trên xét toàn diện khuôn mặt 23

CHƯƠNG 4: GIẢI THUẬT ADABOOST CHO VIỆC PHÁT HIỆN KHUÔN MẶT 25

4.1 Tổng quan về Adaboost 25

4.2 Lý do lựa chọn phương pháp Adaboost 25

4.3 Giải thuật Adaboost 25

4.4 Đặc trưng Haar like 28

4.4.1 Xây dựng bộ phân lớp yếu từ những đặc trưng Haar 31

4.4.2 Xếp tầng các bộ phân lớp (Cascade of Boosted Classifiers) 31

CHƯƠNG 5: NHẬN DẠNG KHUÔN MẶT BẰNG PHƯƠNG PHÁP PCA 36

5.1 Phương Pháp PCA (Principle Components Analysis) 36

5.2 Trích rút đặc trưng 38

5.3 Nhận dạng khuôn mặt bằng các EIGENFACES 43

Trang 9

CHƯƠNG 6: THIẾT KẾ, XÂY DỰNG HỆ THỐNG GIÁM SÁT THÔNG

MINH BẰNG VIỆC NHẬN DẠNG KHUÔN MẶT TRÊN KIT RASPBERRY

PI 2 44

6.1 Mục tiêu đặt ra 44

6.2 Sơ đồ giải thuật 45

6.2.1 Lưu Đổ Giải Thuật Tổng quát 45

6.2.2 Lưu đồ phát hiện khuôn mặt 48

6.3 Phát hiện khuôn mặt và thu thập hình ảnh 50

CHƯƠNG 7: KẾT QUẢ THỰC HIỆN 55

7.1 Môi trường thực nghiệm 55

7.2 Kết quả thực nghiệm 55

CHƯƠNG 8: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 60

8.1 Kết luận 60

8.2 Hướng phát triển 61

PHỤ LỤC 62

CHƯƠNG 9: XÂY DỰNG CHƯƠNG TRÌNH NHẬN DẠNG MẶT NGƯỜI 62

9.1 Giới Thiệu Về Open Cv 62

9.2 Vì sao lựa chọn opencv? 64

9.3 Cấu trúc và nội dung OpenCV 64

9.4 Các Hàm I/O Trong Opencv 66

9.5 Hướng Dẫn cài đặt thư viện OPEN CV trên Window 70

CHƯƠNG 10: GIỚI THIỆU KIT RASPBERRY PI 2 VÀ CÁCH CÀI ĐẶT THƯ VIỆN OPEN CV TRÊN KIT RASPBERRY PI 2 80

10.1 Giới thiệu kit Raspberry PI 2 80

10.2 Cài đặt hệ điều hành raspberry PI 2 84

CHƯƠNG 11: TÀI LIỆU THAM KHẢO 102

Trang 10

LỜI MỞ ĐẦU

Nhận dạng khuôn mặt là một trong những nghiên cứu trong lĩnh vực thị giác máy tính và nhận dạng mẫu Nhận dạng khuôn mặt là một khái niệm được phát triển vào những năm 60 của thế kỷ trước Khi đó, người ta phải dùng tới những phương pháp tính toán thủ công để xác định vị trí, khoảng cách và các bộ phận trên khuôn mặt Về sau, vào cuối thập niên 80, kỹ thuật nhận diện khuôn mặt dần được cải thiện khi M Kirby và L Sirovich phát triển phương pháp tìm mặt riêng (eigenface)

sử dụng phương pháp phân tích thành phần chính (PCA), một cột mốc mới trong ngành công nghệ nhận diện khuôn mặt Ngày nay, công nghệ nhận diện khuôn mặt

đã được nghiên cứu và phát triển trong nhiều lĩnh vực như trong việc điều tra tội phạm, kiểm tra hành khách ở sân bay, xác thực truy cập vào hệ thống, giám sát hệ thống vv

Nhận dạng khuôn mặt người (Face recognition) là một lĩnh vực nghiên cứu của ngành sinh trắc học như nhận dạng vân tay – Fingerprint recognition, hay nhận dạng mống mắt – Iris recognition 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 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 và còn nhiều hạn chế

Hiện nay có rất nhiều các các phương pháp nhận dạng khác nhau được xây dựng để nhận dạng một người cụ thể trong thế giới thực Tuy nhiên việc nhận dạng được một người trong thế giới thực là vô cùng khó khăn, bởi vì để nhận dạng được

ta phải xây dựng được tập cơ sở dữ liệu đủ lớn và 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 một chương trình sử dụng phương pháp nhận dạng có độ chính xác cao mà khối lượng và thời gian tính toán lại ít Để giải quết vấn đề trên có một phương pháp cho phép phân tích các thành phần chính của khuôn mặt, giảm bớt số thành phần không cần thiết tạo ra hiệu quả tính toán nhanh mà vẫn đảm bảo được độ chính xác Đó là phương pháp Principal Components Analysis (PCA) hay còn gọi là: “phân tích các thành phần chính” Và luận văn tập trung nghiên cứu phương pháp PCA để nhận dạng mặt người

Trang 11

Nội dung luận văn gồm 8 chương:

Chương 1: Mở đầu

Chương 2: Lý thuyết tổng quan các và tình hình nghiên cứu liên quan đến đề tài Chương 3: Sử dụng giải thuật Adaboost để phát hiện khuôn mặt nhanh

Chương 4 Giải thuật nhận dạng khuôn mặt bằng phương pháp PCA

Chương 5: Xây dựng một chương trình demo phát hiện mặt người sử dụng thư viện

mã nguồn mở Opencv và phần mềm Visual c ++

Chương 6: Giới thiệu kit Raspberry pi 2 và cách cài đặt thư viện Open Cv trên kit

Raspberry pi 2

Chương 7:Thiết kế, xây dựng hệ thống giám sát thông minh bằng việc nhận dạng

khuôn mặt trên kit Raspberry pi 2

Chương 8: Kết luận và hướng phát triển

Trang 12

False alarm Là tỉ lệ nhận dạng sai của các bộ phân loại

Feature

(đặc trưng)

Các thông tin giúp nhận biết đối tượng

Haar-like feature Các đặc trưng của đối tượng trong ảnh Các đặc trưng này

thường được định nghĩa bằng các tính toán với tổng điểm ảnh của một vùng nào đó trên bức ảnh

Hit rate Là tỉ lệ nhận dạng đúng của các bộ phân loại

Max false alarm Đạt được tỉ lệ sai này thì bộ phân loại được xây dựng

thành công, tỉ lệ sai này là một giá trị bé, có thể chấp nhận được trong bài toán phân loại

Weak classifier

(bộ phân loại yếu)

Bộ phân loại đơn giản có độ chính xác khoảng 50%

Trang 13

CHƯƠNG 1: GIỚI THIỆU ĐỀ TÀI

1.1 Giới Thiệu Đề Tài

Trong nhiều năm qua, có rất nhiều công trình nghiên cứu về bài toán phát hiện, nhận dạng mặt người Các nghiên cứu đi từ bài toán đơn giản, từ việc nhận dạng một mặt người trong ảnh đen trắng cho đến mở rộng cho ảnh màu và có nhiều mặt người trong ảnh Đến nay các bài toán phát hiện, nhận dạng mặt người đã mở rộng với nhiều miền nghiên cứu như nhận dạng khuôn mặt, định vị khuôn mặt, theo dõi mặt người hay nhận dạng cảm xúc con người dựa vào khuôn mặt và đã được ứng dụng rộng rãi trong nhiều lĩnh vực của đời sống như nhận dạng trong lĩnh vực thương mại, an ninh, phát hiện tội phạm trong lĩnh vực an ninh, hay trong lĩnh vực xử lý video, hình ảnh

Vì vậy, nghiên cứu hệ thống phát hiện, nhận dạng khuôn mặt là một trong những lĩnh vực thiết yếu, quan trọng của xử lý ảnh Một hệ thống phát hiện, nhận dạng khuôn mặt gồm có nhiều khối khác nhau, trong đó có 3 khối chính là: Khối phát hiện khuôn mặt, khối xử lý, căn chỉnh hình ảnh khuôn mặt, khối nhận dạng khuôn mặt

FACE DETECTION

DATABASE OF ENROLLED USER (Cơ sở

dữ liệu của tập ảnh mẫu)

FACE DETECTION (Phát hiện khuôn mặt) Video

FACE ALIGNMENT (Căn chỉnh hình ảnh khuôn mặt)

FEATURE EXTRACTION (Trích rút đặc trưng khuôn mặt)

FEATURE MATCHING(So sánh với tập ảnh mẫu đã được huấn luyện)

ID, Nhận Dang Khuôn Mặt

Hình 1 1 Sơ đồ khối hệ thống nhận dạng tổng quát

Phát hiện khuôn mặt chiếm phần quan trọng trong hệ thống nhận dạng Vì nếu hông thể phát hiện được khuôn mặt thì sẽ không có dữ liệu để nhận dạng được Đã có rất nhiều phương pháp được đưa ra cho vấn đề phát hiện khuôn mặt Và một trong những phương pháp được quan tâm, mang lại hiệu quả cao hiện nay là phương pháp AdaBoost Phương pháp AdaBoost có thể đạt được tốc độ xử lý trên 10 hình ảnh có kích thước trung bình trong một giây với tỷ lệ phát hiện đúng có thể đạt tới 95% Tốc

độ này cho phép phát hiện khuôn mặt thời gian thực Sau hi phát hiện khuôn mặt khối

xử lý ảnh sẽ tiến hành chuẩn hóa hình ảnh để đưa vào khối nhận dạng hình ảnh Hiện nay có rất nhiều phương pháp nhận dạng khác nhau được xây dựng để phát hiện và nhận dạng khuôn mặt nhằm tìm ra một phương pháp tối ưu và khắc phục những khó

Trang 14

khan mà lĩnh vực này đang gặp phải Trên thực tế các phương pháp nhận dạng mặt ra làm 3 loại

- Phương pháp tiếp cận toàn cục (global, như Eigenfaces-PCA, LDA)

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

- Phương pháp lai (hybrid, là sự kết hợp của hai phương pháp toàn cục và local feature)

Trong đó, PCA là phương pháp trích rút đặc trưng nhằm giảm số chiều của ảnh, mang lại hiệu quả tốt trong bài toán nhận dạng khuôn mặt

Vì vậy việc kết hợp phương pháp phát hiện khuôn mặt AdaBoost và phương pháp nhận dạng khuôn mặt PCA mang lại hiệu quả cao hơn cho hệ thống nhận dạng khuôn mặt bởi nó hoạt động ổn định, tỷ lệ chính xác cao hơn Và luận văn này tập trung tìm hiểu, xây dựng một hệ thống phát hiện, nhận dạng khuôn mặt bằng cách kết hợp hai phương pháp AdaBoost và PCA

1.2 Phạm vi đề tài

- Tìm hiểu bài toán phát hiện và nhận dạng khuôn mặt, đưa ra cái nhìn tổng quát về

hệ thống phát hiện, nhận dạng khuôn mặt, những hướng tiếp cận chính trong những nghiên cứu hiện nay

- Tập trung vào việc nghiên cứu giải thuật Adaboost [5] để phát hiện khuôn mặt khuôn mặt trong ảnh, video Từ đấy lưu khuôn mặt tìm được vào CƠ SỞ DỮ LIỆU

để phục vụ cho các mục đích xây dưng hệ thống giám sát thông minh

- Tìm hiểu về phương pháp nhận dạng khuôn mặt dựa trên PCA [8] và những vấn đề

cơ bản về phương pháp PCA

- Tìm hiểu Kit Raspberry Raspberry Pi2, cài đặt hệ điều hành Rabian, thư viện Open

CV lên kit

- Xây dựng hệ thống nhận dạng khuôn mặt trên Kit Raspberry Raspberry pi2 với sự

hỗ trợ ngôn ngữ mã nguồn mở Open CV của Intel

- Tìm hiểu xây dựng chương trình phát hiện, nhận dạng mặt người trong ảnh, video được thời gian thực.Mục tiêu đề tài

- Chọn ra phương pháp giải thuật tối ưu để giải quyết bài toán nhận dạng khuôn mặt trên hình ảnh động, video thời gian thực, đề cập đến những vấn đề như việc thu nhận, xử lý phát hiện và nhận dạng trên hình ảnh độngXây dựng chương trình Demo để phát hiện, nhận dạng mặt người trong video thời gian thực

Trang 15

- Áp dụng giải thuật để phát hiện khuôn mặt trên Raspberry pi 2

- Áp dụng giải thuật trích rút đặc trưng PCA để nhận dạng khuôn mặt trên kit Raspberry Pi2

- Xây dựng hệ thống nhận dạng khuôn mặt trên kit Raspberry pi2 có các chế độ sau:

o Chế độ huấn luyện

o Chế độ nhận dạng

o Chế độ thêm, xóa ảnh trong cơ sở dữ liệu

o Cảnh báo trên màn hình, phát tín hiệu tại ngõ ra của kit khi phát hiện xâm nhập của người không có trong cơ sở dữ liệu

o Phân biệt được người và ảnh của người

o Nhận dạng được người khi đeo kính và không đeo kính là giống nhau

- Đưa ra được các kết quả thực nghiệm, những điểm còn hạn chế của hệ thống.Luận ánXây dựng hệ thống giám sát thông minh đáp ứng tốt nhu cầu thực tiễn với kit Raspberry pi 2 và các thiết bị phần cứng

1.3 Phương pháp nghiên cứu

- Tham khảo các giải thuật liên quan đã được đề xuất trong các công trình nghiên cứu Đánh giá ưu điểm và hạn chế của từng thuật toán để chọn lọc và áp dụng cho việc nghiên cứu

- Kế thừa và kết hợp các thế mạnh của các thuật toán và cải tiến một số bước để thuật toán giải quyết hiệu quả bài toán đặt ra

- Xây dựng chương trình phát hiện, nhận dạng mặt người trong ảnh, video So sánh kết quả đạt được với kết quả của các công trình nghiên cứu trước đó để đánh giá mức độ hiệu quả của giải thuật

1.4 Giới hạn đề tài

- Luận ánLuận án chỉ phát hiện và nhận dạng khuôn mặt sau đó điều khiển tín hiệu ngoại vi bằng cách xuất một tín hiệu điện áp ở ngõ ra, để có thể điều khiển thiết bị khác như chuông báo.vv

- Luận án chỉ chạy trên kit Raspberry pi2 kết hợp với thư viện mã nguồn mỡ OPEN

CV [9], vì vậy nó mang nhiều tính chất nghiên cứu hơn so với việc ứng dụng thực

tế Để ứng dụng vào thực tế cần xây dựng thiết bị phần cứng phù hợp hơn để có thể lắp đặt như một hệ thống bảo mật an toàn, giám sát và tương tác với người dùng dễ dàng hơn

Trang 16

CHƯƠNG 2: TÌNH HÌNH NGHIÊN CỨU VÀ LÝ THUYẾT TỔNG QUAN LIÊN

QUAN ĐẾN ĐỀ TÀI

2.1 Tình Hình Nghiên Cứu Nhận Dạng Khuôn Mặt Người

Mặc dù có hơn 20 năm nghiên cứu sâu rộng, số lượng lớn các bài báo đăng trên các tạp chí và hội nghị dành riêng cho lĩnh vực này Nhưng nhận diện khuôn mặt vẫn

là một vấn đề còn nhiều khó khăn, thách thức vẫn chưa được giải quyết triệt để

Những khó khăn mà lĩnh vực nhận diện khuôn mặt đang gặp phải chủ yếu là do điều kiện chụp khó khăn như ánh sáng, góc chụp, sự chuyển động của cơ thể và do các yếu tố khác như lão hóa, nét mặt…vv Ngày nay các lĩnh vực nghiên cứu thị giác máy tính, xử lý và phân tích ảnh, nhận dạng mẫu, học máy đang được kết hợp với nhau nhằm thúc đẩy các ứng dụng có độ tin cậy cao và khả thi hơn trong thực tế

Các nhà nghiên cứu từ tầm nhìn máy tính, phân tích hình ảnh và xử lý, nhận dạng mẫu, học máy và các khu vực khác đang làm việc cùng nhau, thúc đẩy chủ yếu bởi một số ứng dụng thực tế có thể

Ngày nay, hệ thống nhận diện khuôn mặt được triển khai khá rộng rãi ở Mỹ, vốn trước kia chỉ dành cho các cơ quan thực thi pháp luật của nước này Chính phủ

Mỹ hiện đang ứng dụng công nghệ này để đảm bảo an ninh quốc gia thông qua việc nhận diện khuôn mặt kẻ tội phạm ngay khi chúng xuống sân bay và loại bỏ những lá phiếu gian lận thông qua việc xác định khuôn mặt người đi bầu cử Một ứng dụng khác rất tiềm năng là việc xác thực rút tiền từ máy rút tiền tự động ATM, một giải pháp bảo mật hứa hẹn sẽ trở nên phổ biến trong tương lai gần

Trên lĩnh vực điện thoại di động, ứng dụng nhận diện khuôn mặt để mở máy đã có trong hệ điều hành Android 4.x, thành quả thu được của Google sau thắng lợi trong cuộc chiến bằng sáng chế trước các đối thủ cạnh tranh Cùng thời điểm đó, Apple cũng

đã tiết lộ bằng sáng chế khóa và mở khóa các dòng sản phẩm của hãng ứng dụng công nghệ nhận diện khuôn mặt, tuy nhiên, đến khi iOS 6 ra đời, tính năng này vẫn mất hút Tuy nhiên, người dùng iOS vẫn có thể tải về ứng dụng bên thứ ba có tính năng tương

tự mang tên FaceVault

Tháng 6/2012, việc mạng xã hội Facebook mua lại công ty nhận diện khuôn mặt

Face.com đã tạo ra những hy vọng nhất định cho các công ty hoạt động trong lĩnh vực này Trước đó, Google và Sony cũng đã ứng dụng công nghệ nhận diện khuôn mặt trong các phần mềm của họ, tương ứng là Picasa và Picture Motion Browser Tất nhiên, tất cả mới chỉ dừng lại ở việc tạo sự thuận tiện cho người sử dụng

Trang 17

Hình 2 1 ứng dụng nhận dạng khuôn mặt cho bảo mật để sử dụng ATM

Hiện nay đã có rất nhiều các bài báo khoa học với nhiều phương pháp nhận dạng khuôn mặt được đưa ra Mỗi mô hình nghiên cứu tập trung giải quyết những vấn

đề khó khăn mà lĩnh vực nhận dạng khuôn mặt đang gặp phải trong mà khi kết hợp lại với nhau có thể tạo ra một hệ thống nhận dạng có sự tin cậy cao có thể ứng dụng trong thực tế cũng như trong việc chế tạo robot

2.2 Tổng quát hệ thống nhận dạng khuôn mặt

Nhiệm vụ của hệ thống nhận dạng mặt người là xử lý tự động thông tin từ các ảnh để tìm ra độ tương tự giữa các khuôn mặt và đưa ra quyết định về tính đồng nhất giữa chúng Cấu trúc của hệ thống nhận dạng mặt người được thể hiện như hình sau:

Trang 18

FACE DETECTION

DATABASE OF ENROLLED USER (Cơ sở

dữ liệu của tập ảnh mẫu)

FACE DETECTION (Phát hiện khuôn mặt) Video

FACE ALIGNMENT (Căn chỉnh hình ảnh khuôn mặt)

FEATURE EXTRACTION (Trích rút đặc trưng khuôn mặt)

FEATURE MATCHING(So sánh với tập ảnh mẫu đã được huấn luyện)

ID, Nhận Dang Khuôn Mặt

Hình 2 2 Sơ đồ khối hệ thống nhận dạng tổng quát.

- Tập ảnh mẫu: Là những ảnh được chuẩn bị trước gồm những ảnh có chứa một

khuôn mặt gọi là những ảnh khuôn mặt và những ảnh bất kỳ không chứa khuôn mặt nào gọi là những ảnh không-phải-là-mặt Những ảnh khuôn mặt được chuẩn hóa thống nhất về vị trí và kích thước; những đặc trưng trên khuôn mặt như mắt, miệng thường được dóng ngang hàng nhau

- Tách khuôn mặt (FD): Đây là một khâu quan trọng trong quá trình nhận dạng

khuôn mặt có nhiệm vụ xác định vị trí, kích cỡ của một hoặc nhiều khuôn mặt từ ảnh chụp từ đó tách ra phần mặt Phần ảnh mặt đươc tách ra thường nhỏ hơn nhiều

so với ảnh chụp ban đầu, nó sẽ là các khuôn mặt cần tìm và sử dụng cho bước nhận dạng

- Tiền xử lý (Pre-Processing): Chức năng này để chuẩn hóa ảnh cần tìm giúp cho việc

tìm kiếm được hiệu quả hơn Các công việc trong bước tiền xử lý có thể là: Chuẩn hóa kích cỡ giữa ảnh trong CƠ SỞ DỮ LIỆU và ảnh cần tìm, hiệu chỉnh độ sáng tối của ảnh, khử nhiễu, chuẩn hóa về vị trí, tư thế ảnh khuônmặt

- Trích rút đặc trưng (FE): Ở bước này một phương pháp trích chọn đặc điểm nào đó

(Local Binary Pattern – LBP, Gabor wavelets …) sẽ được sử dụng với ảnh mặt để trích xuất các thông tin đặc trưng của ảnh, kết quả là mỗi ảnh sẽ được biểu diễn dưới dạng một vector đặc trưng (feature vector) Các vector này sẽ được sử dụng để phục vụ cho quá trình so sánh nhận dạng ảnhmặt cần tìm và ảnh mặt trong CƠ SỞ

DỮ LIỆU

- Nhận dạng (Regconization): Thực hiện việc chiếu các ảnh cần nhận dạng vào

không gian vector đặc trưng tạo ra các vector khuôn mặt trong không gian đặc trưng, sau đó so sánh khoảng cách giữa các vector này với vector của tập ảnh mẫu (cũng chiếu vào không gian đặc trưng) để chọn ra ảnh thuộc tập training gần với nó

Trang 19

nhất Ở bước này các hàm khoảng cách: euclidean, mahalanobis, cosine angle

distance

2.3 Những khó khăn và thách thức đối với bài toán nhận dạng khuôn mặt

Việc nhận dạng khuôn mặt người có những khó khăn nhất định như:

- Hướng (pose) của khuôn mặt đối với máy ảnh, như: nhìn thẳng, nhìn nghiêng hay nhìn từ trên xuống Cùng trong một ảnh có thể có nhiều khuôn mặt ở những tư thế khác nhau

- Sự có mặt của các chi tiết không phải là đặc trưng riêng của khuôn mặt người, như: râu quai nón, mắt kính, …

- Biểu cảm trên khuôn mặt (facial expression) khác nhau như: vui, buồn, ngạc nhiên, Sự biểu cảm có thể làm thay đổi đáng kể các đặc trưng và thông số của khuôn mặt, ví dụ như khuôn mặt của cùng một người sẽ rất khác khi người đấy cười, tức giận hay sợ hãi …

- Mặt người bị che khuất bởi các đối tượng khác có trong ảnh

- Khoảng cách khuôn mặt đến vị trí camera Với một hệ thống giám sát thông minh thật khó để nhận dạng chính xác một đối tượng với khoảng cách từ xa

- Ảnh có phông nền quá phức tạp

Các ứng dụng của hệ thống nhận dạng mặt người

Nhận dạng mặt người thường được dùng trong giám sát video, giao tiếp người máy và quản lý cơ sở dữ liệu ảnh… Các ứng cơ bản của nhận dạng mặt người có thể kể đến là:

Xác minh tội phạm

Dựa vào ảnh của một người, nhận dạng xem người đấy có phải là tội phạm hay

không bằng cách so sách với các ảnh tội phạm đang được lưu trữ Hoặc có thể sử

Hình 2 3 Ảnh được chụp ở điều kiện sáng khác nhau

Trang 20

dụng camera để phát hiện tội phạm trong đám đông Ứng dụng này giúp cơ quan an ninh quản lý con người tốt hơn

Camera chống trộm

Các hệ thống camera sẽ nhận dạng đâu là con người và theo dõi xem con người đó có làm gì phạm pháp không, ví dụ như lấy trộm đồ, xâm nhập bất hợp pháp vào một khu vực nào đó

Bảo mật

Các ứng dụng về bảo mật rất đa dạng, một trong số đó là công nghệ nhận dạng mặt người của laptop, công nghệ này cho phép chủ nhân của máy tính chỉ cần ngồi trước máy là có thể đăng nhập được Để sử dụng công nghệ này, người dùng phải

sử dụng một webcam để chụp ảnh khuôn mặt của mình và cho máy “học” thuộc các đặc điểm của khuôn mặt giúp cho quá trình đăng nhập sau này

Lưu trữ khuôn mặt

Nhận dạng mặt người có thể được ứng dụng trong các trạm rút tiền tự động (ATM) để lưu trữ khuôn mặt của người rút tiền Hiện nay có những người bị người khác lấy trộm thẻ ATM và mã PIN, và bị rút tiền trộm, hoặc có những chủ tài khoản

đi rút tiền nhưng lại báo với ngân hàng là bị mất thẻ và bị rút tiền trộm Nếu lưu trữ được khuôn mặt của người rút tiền, ngân hàng có thể đối chứng và xử lý dễ dàng hơn

- Tìm kiếm và tổ chức dữ liệu liên quan đến con người thông qua khuôn mặt người trên nhiều hệ cơ sở dữ liệu lưu trữ thật lớn, như internet, các hãng truyền hình,

… Ví dụ: tìm các đoạn video có tổng thống Bush phát biểu, tìm các phim có diễn viên Lý Liên Kiệt đóng, tìm các trận đá bóng có Ronaldo đá, …

- Kiểm tra trạng thái người lái xe có ngủ gật, mất tập trung hay không, và hỗ trợ thông báo khi cần thiết

Trang 21

- Tương lai sẽ phát triển các loại thẻ thông minh có tích hợp sẵn đặc trưng của người dùng trên đó, khi bất cứ người dùng khác dùng để truy cập hay xử lý tại các hệ thống sẽ được yêu cầu kiểm tra các đặc trưng khuôn mặt so với thẻ để biết nay có phải là chủ thẻ hay không

- Hãng máy chụp hình Canon đã ứng dụng bài toán nhận dạng khuôn mặt người vào máy chụp hình thế hệ mới để cho kết quả hình ảnh đẹp hơn, nhất là khuôn mặt người

Trang 22

CHƯƠNG 3: CÁC PHƯƠNG PHÁP PHÁT HIỆN VÀ NHẬN D chH

KHUÔN MẶT

Phát hiện khuôn mặt người là một kỹ thuật máy tính để nhận dạng các vị trí và kích thước của các khuôn mặt người trong các ảnh bất kì và bỏ qua những thứ khác như: tòa nhà, cây cối, cơ thể …

Đây là một khâu quan trọng trong hệ thống nhận dạng khuôn mặt Trong nhiều năm qua, có rất nhiều công trình nghiên cứu về bài toán nhận dạng mặt người Các nghiên cứu đi từ bài toán đơn giản, từ việc nhận dạng một mặt người trong ảnh đen trắng cho đến mở rộng cho ảnh mầu và có nhiều mặt người trong ảnh Đến nay các bài toán nhận dạng mặt người đã mở rộng với nhiều miền nghiên cứu như nhận dạng khuôn mặt, định vị khuôn mặt, theo dõi mặt người hay nhận dạng cảm xúc mặt người…

Phát hiện mặt người trong ảnh là phần đầu tiên của một hệ thống nhận dạng mặt người Các hệ thống nhận dạng khuôn mặt được bắt đầu xây dựng từ những năm 1970, tuy nhiên do còn hạn chế về các luật nhận dạng mặt người nên chỉ được

áp dụng trong một số ứng dụng như nhận dạng thẻ căn cước Nó chỉ được phát triển mạnh mẽ từ những năm 1990 khi có những tiến bộ trong công nghệ video và ngày nay thì các ứng dụng của nhận dạng mặt người đã trở nên phổ biến trong cuộc sống

3.1 Các phương pháp phát hiện khuôn mặt người

Dựa vào tính chất của các phương pháp phát hiện mặt người trên ảnh, các phương pháp phát hiện khuôn mặt được chia thành 2 nhóm phương pháp chính, tương ứng với hai hướng tiếp cận khác nhau bao gồm:

- Những phương pháp dựa trên hình ảnh khuôn mặt

- Những phương pháp dựa trên cấu trúc khuôn mặt

3.1.1 Phương pháp phát hiện khuôn mặt dựa trên hình ảnh khuôn mặt

Những phương pháp này tìm cách huấn luyện một bộ phân lớp có khả năng phân biệt tốt những cửa sổ chứa khuôn mặt và những cửa sổ không chứa khuôn mặt bằng việc học trên một một tập những ảnh mẫu cho trước

Phương pháp dựa trên hình ảnh khuôn mặt áp dụng các kỹ thuật theo hướng xác suất thống kê và học máy để tìm những đặc tính liên quan của khuôn mặt và không phải là khuôn mặt Các đặc tính đã được học ở trong hình thái các mô hình phân bố hay các tham số của một hàm số nên có thể dùng các đặc tính này để nhận

Trang 23

dạng khuôn mặt người Đồng thời, bài toán giảm số chiều thường được quan tâm để tăng hiệu quả tính toán cũng như hiệu quả nhận dạng khuôn mặt

3.1.1.1 Adaboost

AdaBoost được giới thiệu đầu tiên vào năm 1995 bởi hai nhà nghiên cứu Freund và Schapire [3] Được đánh giá là phương phát tiếp cận nhanh nhất trong các thuật toán học máy Nó thường được kết hợp với các mô hình cascade of classifiers để tăng tốc độ phát hiện khuôn mặt trong ảnh Tư tưởng của thuật toán adaboost đấy là kết hợp các bộ phân loại yếu thành một bộ phân loại mạnh Trong quá trình xây dựng, bộ phân loại yếu tiếp theo sẽ được xây dựng dựa trên các đánh giá về các bộ phân loại yếu trước, cuối cùng các bộ phân loại yếu sẽ được kết hợp

để trở thành bộ phân loại mạnh

Viola và Jones [1] dùng AdaBoost kết hợp cascade để nhận dạng khuôn mặt người với các đặc trưng dạng Haar-like Tốc độ xử lý khá nhanh và tỷ lệ chính xác hơn 80% Ngoài ra Schneiderman và Kanade dùng wavelet để trích đặc trưng, sau đấy cũng xây dựng hệ thống học với Adaboost, dựa trên xác suất để nhận dạng khuôn mặt người Tỷ lệ chính xác trên của phương pháp này lên đến 90%

Ảnh gốc

Tính các đặc trưng nhanh từ nhiều tỉ lệ Integral Image

Các hàm Haar cơ bản

Ước lượng các đặc trưng

Điều chỉnh thông số Adaboost

Chọn đặc trưng

Số lượng lớn các đặc trưng

Cấu trúc phân tầng

(Cascade of

classifier)

Một tập nhỏ các đặc trưng

Quyết định kết quả

Trang 24

Mạng Neural rất hay được sử dụng trong các bài toán nhận dạng mẫu, nhận dạng mặt người cũng có thể xem là một bài toán nhận dạng với hai loại mẫu (mặt người hoặc không phải mặt người) và như vậy có thể sử dụng mạng Neural khá hiệu quả kể cả khi các mẫu khuôn mặt có độ phức tạp cao Tuy nhiên, một điều trở ngại

đó là các kiến trúc mạng đều có tính tổng quát cao, do đó, khi áp dụng ta phải tính toán rõ số lượng tầng, số lượng node, tỷ lệ học … cho từng trường hợp cụ thể

Chuẩn bị tập ảnh huấn luyện mẫu

Việc huấn luyện được thực hiện trên một tập lớn những ảnh khuôn mặt, trong

đó những điểm đặc trưng trên khuôn mặt được gán nhãn bằng tay Vị trí của những điểm đặc trưng này được lấy trung bình trên toàn bộ tập ảnh huấn luyện, và được khớp với những điểm nhận dạng trước Mỗi ảnh huấn luyện sau đó được dóng thẳng hàng với vị trí trung bình thu được Quá trình này được lặp lại để thu được bộ dữ liệu khuôn mặt mẫu chuẩn Để xây dựng bộ dữ liệu ảnh không-phải-là-mặt, chiến lược boostrapping được áp dụng

Việc phát hiện khuôn mặt sử dụng mạng nơron được thực hiện lần lượt theo hai bước chính:

Phát hiện khuôn mặt sử dụng bộ lọc dựa trên mạng nơron

Đầu vào của bước này là một ảnh vuông kích thước 20x20, đầu ra của mạng nơron

là một giá trị thực trong khoảng -1 đến +1

Trang 25

Hình 3.2 Bộ phát hiện khuôn mặt dựa trên mạng nơron

Ảnh đầu vào ban đầu được phân tích thành những ảnh theo mô hình kim tự tháp để có thể phát hiện được những khuôn mặt có kích thước lớn hơn kích thước

cơ sở Bước này cho lại tỷ lệ phát hiện rất cao (nếu như tập ảnh huấn luyện được chuẩn bị kỹ lưỡng), tuy nhiên tỷ lệ phát hiện sai còn khá lớn

Kết hợp những phát hiện trùng lặp

Để có thể giảm đựợc tỷ lệ phát hiện sai, hai mạng nơron được huấn luyện độc lập với những tham số đầu vào khác nhau (tập ảnh huấn luyện khác nhau, trọng số khởi đầu khác nhau …)

Mặc dù mỗi mạng nơron độc lập có tỷ lệ phát hiện sai cao, nhưng những phát hiện sai thường khác nhau với mỗi mạng nơron Do đó, việc kết hợp kết quả của hai mạng nơron bằng một chiến lược quyết định đơn giản sẽ cho phép cải thiện đáng kể kết quả phát hiện Thông thường, một cửa sổ quét chỉ được coi là khuôn mặt nếu như cả hai mạng nơron đều phát hiện ra nó

3.1.1.3 Mô hình Markov ẩn

Mô hình Markov ẩn đã được Samaria và Young [7] áp dụng đầu tiên trong việc phát hiện khuôn mặt Nguyên tắc của phương pháp là phân chia khuôn mặt thành những vùng khác nhau như: trán, mắt, mũi, miệng và cằm và tìm cách phát hiện lần lượt những đặc trưng này

Mô hình HMM thường được áp dụng trên một chuỗi những tín hiệu 1 chiều liên tục (vector đặc trưng) Tuy nhiên các ảnh số sử dụng làm đầu vào thường được biểu diễn bằng một ma trận 2 chiều Để khắc phục sự không nhất quán này, một cửa

sổ có kích thước ngang bằng đúng kích thước ngang của ảnh được cho quét từ trên

Trang 26

xuống dưới cùng của ảnh Vùng ảnh trong cửa sổ được đưa vào mô hình HMM để

xử lý như một vector 1 chiều Các cửa sổ quét có thể phủ lên nhau để tránh bỏ qua những đặc trưng quan trọng trên khuôn mặt

Hình 3.3 Phương pháp phát hiện khuôn mặt dựa trên mô hình Markov ẩn.

3.1.1.4 Máy vector hỗ trợ

Máy vector hỗ trợ là một kỹ thuật được Osuna [8] áp dụng để thực hiện phát hiện khuôn mặt Phương pháp này rất hiệu quả với những bộ dữ liệu lớn cỡ hàng nghìn mẫu

Nguyên tắc chung của phương pháp là tìm ra những mặt phẳng quyết định làm cực đại ranh giới giữa lớp khuôn mặt và lớp không-phải-là-mặt Một trong những giới hạn đơn giản có thể được sử dụng chính là khoảng cách giữa những điểm gần nhất giữa hai lớp Những điểm này cho phép nhận dạng đường ranh giới giữa hai lớp khuôn mặt và không-phải-là-mặt

Trang 27

Hình 3.4 Ranh giới giữa hai lớp mặt và không-phải-là mặt nhận dạng bởi máy vector hỗ trợ

3.1.2 Phương pháp phát hiện khuôn mặt dựa trên cấu trúc hình học của

khuôn mặt

Với cách tiếp cận dựa trên cấu trúc hình học của khuôn mặt, các nhà nghiên cứu tìm cách giải quyết bài toán phát hiện khuôn mặt dựa trên những đặc trưng đặc trưng trên khuôn mặt cũng như cấu trúc hình học giữa chúng

Những phương pháp đi theo hướng tiếp cận này có thể được chia làm hai nhóm:

- Nhóm những phương pháp trên-xuống: Khuôn mặt được xem xét một cách tổng thể, hướng tiếp cận này đã được sử dụng trong những nghiên cứu của Yang và Huang, và của Lanitis

- Nhóm những phương pháp dưới-lên: Hướng tiếp cận này cố gắng tìm ra tất cả những đặc trưng đặc trưng của khuôn mặt hiện diện trong hình ảnh, sau đó kết hợp thành từng nhóm đặc trưng để biểu diễn nên khuôn mặt dựa vào những kiến thức cho trước về cấu trúc khuôn mặt Các nhà nghiên cứu Leung và Sumi đã xây dựng hệ thống của họ theo cách này

Trang 28

3.1.2.1 Những Phương Pháp Từ Trên Xuống (Top-Down)

Phần lớn trong số những phương pháp này sử dụng dấu hiệu về màu sắc của

da thịt con người để tìm kiếm khuôn mặt trong ảnh Bên cạnh đó, các phương pháp còn kết hợp sử dụng những giải thuật phân vùng như thuật toán lan tỏa vùng, thuật toán lọc trường ngẫu nhiên Gibbs, … để tách các khuôn mặt ra khỏi nền

Màu sắc da thịt của con người là một trong những dấu hiệu được nhận biết đầu tiên trong hệ thống nhãn quang của con người Ưu điểm của phương pháp là việc phát hiện có thể được thực hiện rất nhanh Tuy nhiên phương pháp cũng còn nhiều hạn chế:

- Màu sắc da thịt con người thu nhận trong ảnh rất đa dạng, tùy theo chủng tộc, điều kiện ánh sáng, …

- Màu sắc cũng không phải là dấu hiệu đặc trưng của riêng khuôn mặt, trong ảnh

có thể có nhiều vùng nền có màu tương tự, những bộ phận khác của cơ thể cũng

Những nghiên cứu của họ chỉ ra rằng, mặc dù màu sắc da thịt con người có

sự khác biệt giữa các ví dụ, nhưng sự khác biệt này chủ yếu nằm ở tham số cường

độ sáng chứ không phải ở dấu hiệu màu sắc Họ sử dụng một phân bố Gaussian để

mô hình sự phân bố của màu sắc đặc trưng cho da thịt con người

Tất cả các điểm ảnh được kiểm tra, nếu phản hồi của chúng lớn hơn một ngưỡng nào đó thì chúng sẽ được coi là có màu sắc da thịt con người Cuối cùng, những vùng có lớn hơn 70% điểm ảnh có màu sắc da thịt sẽ đựoc coi là một khuôn mặt

3.1.2.1.2 Phương pháp phát hiện khuôn mặt của Saber và Tekalp sử dụng bộ

lọc trường ngẫu nhiên Gibbs

Phương pháp này sử dụng bộ lọc trường ngẫu nhiên Gibbs để thực hiện phân vùng ảnh Sau khi phân vùng, mỗi vùng được xấp xỉ với một hình ellipse Khoảng cách giữa đường ellipse với biên của vùng được nhận dạng bằng cách sử dụng phép

đo khoảng cách Hausdorff Nếu khoảng cách này lớn hơn một ngưỡng nhận dạng trước, vùng đó sẽ bị loại bỏ

Trang 29

Với những vùng còn lại, một thủ tục tìm kiếm đặc trưng đặc trưng sẽ được thực hiện để nhận dạng xem vùng đó có thật sự là khuôn mặt hay không

3.1.2.2 Những Phương Pháp Từ Dưới Lên (Bottom-Up)

Tư tưởng chính của phương pháp là tìm ra những đặc trưng đặc trưng và bất biến của khuôn mặt Những đặc trưng này phải bất biến với các tham số như tỷ lệ,

tư thế chụp, điều kiện ánh sáng, … Những đặc trưng đặc trưng được quan tâm nhất là: hai mắt, mũi, miệng và đường mép tóc Thông thường những đặc trưng này được tách bằng việc sử dụng những bộ phát hiện biên

Hướng tiếp cận từ dưới lên gồm hai bước:

Bước 1: cố gắng tìm ra tất cả những đặc trưng đặc trưng của khuôn mặt hiện diện trong ảnh

Bước 2: nhóm những đặc trưng này dựa trên những quan hệ về cấu trúc hình học, từ

- Phương pháp của Leung sử dụng phép đối chiếu đồ thị ngẫu nhiên bằng việc áp dụng một tập những bộ lọc Gaussian và so sánh với một đồ thị mẫu biểu diễn khuôn mặt (Việc so sánh cũng thường được thực hiện thông qua một giá trị ngưỡng đơn giản)

- Yow và Cipolla sử dụng một tập các bộ lọc để chọn ra những đặc trưng cạnh như vùng đuôi mắt, khóe miệng, … và chỉ giữ lại những đặc trưng có những thuộc tính nhất định (chẳng hạn như đặc trưng phải có hai cạnh song song…) Những đặc trưng còn lại sẽ được liên kết với nhau để xây dựng mô hình khuôn mặt

- Một phương pháp khác sử dụng dấu hiệu màu sắc do Cai và Goshtasby đề xuất

Họ phát hiện khuôn mặt bằng cách kiểm tra sự hiện diện của những đặc trưng có màu khác với màu da thịt trên những vùng da thịt đã được tìm thấy

Trang 30

3.2 Các phương nhận dạng khuôn mặt người

Có hai phương pháp nhận dạng phổ biến hiện nay là:

- Nhận dạng dựa trên đặc trưng của các phần tử trên khuôn mặt: Biển đổi

Sóng Wavelet (Gabor Wavelet) và Mạng Nơron (Neural Network) [5],

Support Vector Machine (SVN)

- Nhận dạng dựa trên xét tổng thể toàn khuôn mặt: Phương pháp Phân tích

thành phần chính (Principal Component Analysis – PCA), phương pháp Phân tích sự khác biệt tuyến tính (Linear Discriminant Analysis – LDA), phương pháp Phân tích đặc điểm vùng (Local Feature Analysis – LFA) Nhận dạng khuôn mặt dùng Eigenfaces [4] và mạng Nơron [5] mang lại hiệu quả nhận dạng cao bởi nó hoạt động ổn định và có tính thích nghi cao

- Phương pháp lai (hybrid) là sự kết hợp của hai phương pháp toàn cục và local

feature)

Hiện nay các phương pháp nhận dạng mặt 3D cũng đang được phát triển cho sự bảo mật cao, chính xác hơn so với nhận diện trên ảnh tĩnh 2D

3.2.1 Nhận dạng dựa trên các đặc trưng khuôn mặt

- Đây là phương pháp nhận dạng khuôn mặt dựa trên việc xác định các đặc trưng hình học của các chi tiết trên một khuôn mặt (như vị trí, diện tích, hình dạng của mắt, mũi, miệng, …), và mối quan hệ giữa chúng (như khoảng cách của hai mắt, khoảng cách của hai lông mày, …)

- Ưu điểm của phương pháp này là nó gần với cách mà con người sử dụng để nhận biế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 có thể cho kết quả tốt trong các trường hợp ảnh có nhiều nhiễu như bị nghiêng, bị xoay hoặc ánh sáng thay đổi

- 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 Mặt khác, với các ảnh kích thước bé thì các đặc tính sẽ khó phân biệt do đó khó tính toán được các đặc trưng trên khuôn mặt

3.2.2 Nhận dạng dựa trên xét toàn diện khuôn mặt

Nhận dạng đựa trên toàn diện khuôn mặt, có nghĩa mình sẽ không đi xét đến từng thành phần đặc trưng trên khuôn mặt nữa… Mình sẽ xem khuôn mặt là một không gian cụ thể và mình tìm những đặc trưng, những đặc điểm chính trên không gian đó

Trang 31

Nội dung chính của hướng tiếp cận này là xem mỗi ảnh có kích thước RxC là một vector trong không gian RxC chiều Ta sẽ xây dựng một không gian mới có chiều nhỏ hơn sao cho khi biểu diễn trong không gian đó các đặc điểm chính của một khuôn mặ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 các nhóm khác

Hai phương pháp thường được sử dụng là trong hướng tiếp cận này:

o PCA (Principle Components Analysis)

o LDA (Linear Discriminant Analysis)

Với những ưu điểm trên, trong luận văn này ưu tiên xây dựng hệ thống theo hướng nhận dạng dựa trên xét toàn diện khuôn mặt bằng giải thuật PCA Phương pháp này cho phép nhận dạng chính xác đến 98% khi chụp ảnh ở điều kiện tốt

Trang 32

CHƯƠNG 4: GIẢI THUẬT ADABOOST CHO VIỆC PHÁT HIỆN KHUÔN MẶT

4.1 Tổng quan về Adaboost

Giải thuật AdaBoost được giới thiệu đầu tiên vào năm 1995 bởi hai nhà nghiên cứu Freund và Schapire [3] Giải thuật do họ đưa ra đã giải quyết được rất nhiều khó khăn thực tế của những giải thuật boosting trước đó

Năm 2001, trong bài báo mang tên “Robust real-time object detection”, hai nhà nghiên cứu Paul Viola và Micheal Jones [1] đã đề xuất việc áp dụng giải thuật AdaBoost trong việc phát hiện đối tượng nói chung Những nghiên cứu của họ đã đưa đến việc xây dựng thành công hệ thống phát hiện khuôn mặt có tốc độ phát hiện được coi là nhanh nhất hiện nay trong khi vẫn bảo đảm một tỷ lệ phát hiện cao

4.2 Lý do lựa chọn phương pháp Adaboost

Mục tiêu của Luận án này là tìm hiểu và xây dựng một chương trình cho phép phát hiện khuôn mặt trên hình tĩnh cũng như trên hình động (phát lại từ các tệp tin video hay thu nhận trực tiếp từ các thiết bị camera) Tốc độ phát hiện khuôn mặt là một tiêu chí quan trọng hàng đầu, tuy nhiên tỷ lệ phát hiện đúng của phương pháp cũng phải được bảo đảm ở một mức nhất định Do đó phương pháp lựa chọn cần có tốc độ phát hiện nhanh mà vẫn bảo đảm được mức độ chính xác cần thiết Phương pháp phát hiện khuôn mặt nhanh dựa trên giải thuật AdaBoost đáp ứng tốt nhất những yêu cầu này

Phương pháp AdaBoost có thể đạt được tốc độ xử lý trên 10 hình ảnh có kích thước trung bình trong một giây với tỷ lệ phát hiện đúng có thể đạt tới 95% Tốc độ này cho phép phát hiện khuôn mặt thời gian thực

Phương pháp phát hiện khuôn mặt nhanh dựa trên giải thuật AdaBoost có thể coi là sự kết hợp giữa cả hai hướng tiếp cận, nó sử dụng giải thuật AdaBoost cho việc xây dựng bộ phân lớp mạnh bằng việc huấn luyện và kết hợp những bộ phân lớp yếu trên một tập ảnh mẫu ban đầu Những tiêu chí được sử dụng trong bộ phân lớp mạnh cuối cùng có liên quan gián tiếp đến những đặc trưng đặc trưng trên khuôn mặt

4.3 Giải thuật Adaboost

Mô hình giải thuật:

Trang 33

2 Khởi tạo trọng số ban đầu cho tất cả các mẫu: với m là số mẫu đúng (ứng với object

và y = 1) và l là số mẫu sai (ứng với background và y = -1)

𝑍𝑡: Hệ số dùng để đưa 𝑊𝑡+1 về đoạn [0,1] (normalization factor)

4 Strong classifier được xây dựng:

𝐻(𝑥) = 𝑑ấ𝑢(∑𝑇 ∝𝑡 ℎ𝑡(𝑥)

Trang 34

Sơ Đồ Khối

Hình 4 2 Sơ đồ khối thuật toán nhận dạng Adaboost

Qúa trình huấn luyện bộ phân loại sẽ thực hiện bằng một vòng lặp mà ở mỗi bước lặp, thuật toán sẽ chọn ra bộ phân loại yếu h(t) Bộ phân loại yếu này sẽ thực hiện phân loại các mẫu ảnh khuôn mặt đầu vào với lỗi nhỏ nhất Và tập hợp nhiều bộ phân loại yếu h-(t) sẽ cho ta một bộ phân loại mạnh Sau mỗi lần tính được một bộ phân loại yếu h(t), thuật toán Adaboost sẽ tiến hành cập nhật lại giá trị 𝜶𝒕 nhằm giảm thiểu giá trị lỗi 𝜺𝒋

∝𝒕=𝟏

𝟐𝐥𝐧 (

𝟏 − 𝜺𝒋

𝜺𝒋 ) 𝑯(𝒙) = 𝒅ấ𝒖 (∑ ∝𝒕 𝒉𝒕(𝒙)

Khởi tạo tập đặc trưng ban đầu

Xác định các đặc trưng trong từng mẫu, xây dựng các

bộ phân loại yếu tương ứng

Đặc trưng haar-like

Tính toán giá trị lỗi cho mỗi đặc trưng

False alarm ≤

max false alarm

Tập các mẫu và trọng số Tập các mẫu

Trang 35

Sau khi tính được các giá trị ∝𝒕, Adaboost sẽ tiến hành cập nhật trọng số của các mẫu bằng cách tăng trọng số cho các mẫu nhận dạng sai (mặt người mà lại phân loại không phải mặt người, không phải mặt người mà lại phân loại thành mặt người…) giảm trọng số cho các mẫu mà h(t) phân loại đúng

𝑤𝑡+1,𝑘 =𝑤𝑡,𝑘

𝑍𝑡 × {

𝑒−𝛼 𝑡, ℎ𝑡(𝑥𝑘) = 𝑦𝑘

𝑒𝛼𝑡, ℎ𝑡(𝑥𝑘) ≠ 𝑦𝑘Bằng cách này các bộ phân loại yếu h(t) xây dựng sau sẽ ưu tiên vào các mẫu mà bộ phân loại yếu h(t) trước đó nhận dạng sai

4.4 Đặc trưng Haar like

Viola và Jones dùng 4 đặc trưng cơ bản [1] để xác định khuôn mặt người Mỗi đặc trưng Haar–like là sự kết hợp của hai hay ba hình chữ nhật "trắng" hay "đen" như trong hình sau:

Những đặc trưng cạnh: Gồm 2 hình chữ nhật Giá trị của những đặc trưng này được

tính bằng chênh lệch giữa tổng của các điểm ảnh trong hai vùng chữ nhật Hai vùng này có cùng hình dạng và kích thước, nằm ngang nhau hoặc nằm dọc

Hình 4 3 Các đặc trưng cạnh Haar like

Những đặc trưng đường: Gồm 3 hình chữ nhật Giá trị của chung được tính bằng

cách tính tổng giá trị của các điểm ảnh trong hai hình chữ nhật hai bên và trừ đi tổng giá trị của các điểm ảnh trong hình chữ nhật ở giữa Những hình chữ nhật này cũng

có kích thước và hình dạng giống nhau

Hình 4 4 Hình các đặc trưng đường Haar like

Những đặc trưng đường chéo: Gồm 4 hình chữ nhật Giá trị của nó chính là chênh

lệch giữa những cặp hình chữ nhật theo đường chéo

Trang 36

Hình 4 5 Các đặc trưng đường chéo Haar like

Đặc trưng bao quanh

Hình 4 6 Các đặc trưng bao quanh Haar like

Lợi ích của các đặc trưng Haar-like là nó diễn đạt được tri thức về các đối tượng trong ảnh (bởi vì nó biểu diễn mối liên hệ giữa các bộ phận của đối tượng), điều mà bản thân từng điểm ảnh không diễn đạt được Để tính giá trị các đặc trưng haar-like, ta tính sự chênh lệch giữa tổng của các pixel của các vùng đen và các vùng trắng như trong công thức sau:

f(x) = Tổngvùng đen(pixel) - Tổngvùng trắng(pixel) (4.4.1)

Như vậy ta có thể thấy rằng, để tính các giá trị của đặc trưng Haar-like, ta phải tính tổng của các vùng pixel trên ảnh Nhưng để tính toán các giá trị của các đặc trưng Haar-like cho tất cả các vị trí trên ảnh đòi hỏi chi phí tính toán khá lớn, không đáp ứng được cho các ứng dụng đòi hỏi tính run-time Do đó Viola và Jones [1] đưa ra một khái niệm gọi là Integral Image để tính toán nhanh cho khác feature cơ bản Sau này, Lienhart [10] kế thừa gọi Integral Image là SAT – Summed Area Table và đưa ra thêm khái niệm RSAT – Rotated Summed Area Table dùng để tính toán nhanh cho các đặc trưng xoay 1 góc 45o Integral Image là một mảng 2 chiều với kích thước bằng với kích của ảnh cần tính các đặc trưng Haar-like, với mỗi phần tử của mảng này được tính bằng cách tính tổng của điểm ảnh phía trên (dòng-1) và bên trái (cột-1) của nó Bắt đầu từ vị trí trên, bên trái đến vị trí dưới, phải của ảnh, việc tính toán này đơn thuần chỉ đựa trên phép cộng số nguyên đơn giản, do đó tốc độ thực hiện rất nhanh

Hình 4 7 Cách tính Integral Image của ảnh

P(x, y)

Trang 37

𝑃(𝑥, 𝑦) = ∑𝑥′ ≤𝑥,𝑦 ′ ≤𝑦𝑖(𝑥′, 𝑦′) (4.4.2)

Sau khi đã tính được Integral Image, việc tính tổng điểm ảnh của một vùng bất kỳ nào đó trên ảnh thực hiện rất đơn giản theo cách sau: (Giả sử ta cần tính tổng điểm ảnh của vùng D như trong hình 11):

D = A + B + C + D – (A+B) – (A+C) + A (4.4.3)

Với A + B + C + D chính là giá trị tại điểm P4 trên Integral Image, tương tự như vậy A+B là giá trị tại điểm P2, A+C là giá trị tại điểm P3, và A là giá trị tại điểm P1 Vậy ta có thể viết lại biểu thức tính D ở trên như sau:

𝐷 = (𝑥4, 𝑦4) − (𝑥2, 𝑦2) − (𝑥3, 𝑦3) + (𝑥1, 𝑦1) (4.4.4)

Hình 4 8: Ví dụ cách tính nhanh tổng các điểm ảnh của vùng D trên ảnh

Hình 4 9: Ví dụ cách tính nhanh tổng điểm ảnh của vùng D trên ảnh với các đặc

trưng xoay 45°Với các đặc trưng Haar-like xoay 45o Integral Image tại một điểm (x, y) được tính

theo công thức (4.4.1)

Tổng pixel của một vùng bất kỳ trên ảnh vẫn

được tính theo cách sau:

D = A + B + C + D – (A+B) – (A+C) + A

Như vậy tổng các điểm ảnh trong một hình chữ

nhật (kể cả trường hợp xoay 45º) bất kì đều có thể

được tính nhanh dựa trên integral image tại 4 đỉnh

Trang 38

Đặt H và W là kích thước chiều dài và chiều cao của cửa sổ

w và h là kích thước của một loại đặc trưng trong cửa sổ đó X, Y là hệ số chia lớn nhất của cửa sổ ứng với đặc trưng này

2

1

1 w X H h Y W

2

1

1 z X H z Y W

Y

4.5 Xây dựng bộ phân lớp yếu từ những đặc trưng Haar

Một bộ phân lớp yếu là một bộ quyết định xem một ảnh đầu vào thuộc vào lớp ảnh khuôn mặt hay ảnh không-phải-là mặt dựa trên một tiêu chí nào đó Bộ phân lớp yếu không cần phải đưa ra quyết định với độ chính xác cao mà chỉ cần tốt hơn so với sự lựa chọn ngẫu nhiên là đủ

Phản hồi của một đặc trưng Haar được nhận dạng chính bằng giá trị chênh lệch giữa tổng giá trị các điểm ảnh trong những vùng lân cận (giữa những vùng trắng và vùng đen) Các nhà nghiên cứu hy vọng rằng việc sử dụng những phản hồi đơn giản này có thể cho phép họ phân biệt được những ảnh khuôn mặt và không-phải-là-mặt

Một bộ phân lớp yếu có thể được xây dựng bằng cách sử dụng phản hồi f icủa một đặc trưng Haar và một giá trị ngưỡng tối ưu j Giá trị ngưỡng tối ưu phải làm cho số lượng những mẫu bị phân lớp sai là nhỏ nhất

trong đó x là một ảnh mẫu và pj dùng để chỉ chiều của bất đẳng thức

4.6 Xếp tầng các bộ phân lớp (Cascade of Boosted Classifiers)

Tư tưởng chung của phương pháp này là tìm cách loại bỏ nhanh chóng phần lớn những cửa sổ quét không chứa khuôn mặt mà vẫn giữ được tất cả (hoặc gần như toàn bộ) những khuôn mặt có trong ảnh

Trang 39

Cascade of Boosted Classifiers là mô hình phân tầng với mỗi tầng là một mô hình AdaBoost sử dụng bộ phân lớp yếu là cây quyết định với các đặc trưng Haar-Like Trong quá trình huấn luyện, bộ phân lớp phải duyệt qua tất cả các đặc trưng của mẫu trong tập huấn luyện Việc này tốn rất nhiều thời gian Tuy nhiên, trong các mẫu đưa vào, không phải mẫu nào cũng thuộc loại khó nhận dạng, có những mẫu background rất dễ nhận ra (gọi đây những mẫu background đơn giản) Đối với những mẫu này, chỉ cần xét một hay một vài đặc trưng đơn giản là có thể nhận dạng được chứ không cần xét tất cả các đặc trưng Nhưng đối với các bộ phân loại thông thường thì cho dù mẫu cần nhận dạng là dễ hay khó nó vẫn phải xét tất cả các đặc trưng mà nó rút ra được trong quá trình học Do đó, chúng tốn thời gian xử lý một cách không cần thiết

Hình 4 10 Xếp tầng các bộ phân lớp yếu

Mô hình Cascade of Classifiers được xây dựng nhằm rút ngắn thời gian xử lý, giảm thiểu nhận dạng lầm (false alarm) cho bộ phân loại Cascade trees gồm nhiều tầng (stage hay còn gọi là layer), mỗi tầng là một mô hình AdaBoost với bộ phân lớp yếu là các cây quyết định Một mẫu để được phân loại là đối tượng thì nó cần phải đi qua hết tất cả các tầng Ở những tầng đầu tiên, bộ phân lớp thường chỉ gồm một số những đặc trưng đặc trưng nhất Nhờ vậy, có thể loại bỏ nhanh chóng phần lớn những mẫu không chứa khuôn mặt Các tầng sau được huấn luyện bằng những mẫu âm negative (không phải mặt người) mà tầng trước nó nhận dạng sai, tức là nó sẽ tập trung học từ các mẫu background khó hơn, do đó sự kết hợp các tầng AdaBoost này lại sẽ giúp bộ phân loại giảm thiểu nhận dạng lầm Với cấu trúc này, những mẫu background dễ nhận dạng sẽ

bị loại ngay từ những tầng đầu tiên, giúp đáp ứng tốt nhất thời gian xử lý và vẫn duy trì được hiệu quả phát hiện khuôn mặt

Về cơ bản, từ ảnh gốc ban đầu, hệ thống sẽ chia ảnh thành vô số vùng nhỏ để tính các đặc trưng, sau đấy đưa các đặc trưng Tiếp theo, chương trình sẽ xác định các vùng khả quan (các ứng viên) có thể là khuôn mặt, cuối cùng các ứng viên này sẽ được đưa vào một bộ phân loại để tiến hành xác định ứng viên nào là mặt người

Trang 40

Ví Dụ mô phỏng về phát hiển j khuôn mặt

Bước 1: Tính giá trị haar cho ảnh

Cho 1 tập ảnh gồm 6976 ảnh, 2429 ảnh khuôn mặt và 4547 ảnh không phải khuôn mặt

Ngày đăng: 26/01/2021, 14:53

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w