You are on page 1of 15

Face Recognition GVHD Trần Khải Thiện

BỘ GIÁO DỤC VÀ ĐÀO TẠO

TRƯỜNG ĐẠI HỌC NGOẠI NGỮ - TIN HỌC TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

-----Ω-----

BÁO CÁO ĐỒ ÁN: CƠ SỞ TRÍ TUỆ NHÂN TẠO

ĐỀ TÀI:

ĐIỂM DANH BẰNG NHẬN KHUÔN


MẶTNHẬN DIỆN KHUÔN MẶT
GIÁO VIÊN HƯỚNG DẪN: TH.S TRẦN KHẢI THIỆN

SINH VIÊN THỰC HIỆN:


PHAN NHƯ HẢI LƯU – 17DH110419
HUỲNH THIỆN CHÍ – 17DH110123
TRƯƠNG NGUYỄN LONG THỊNH – 17DH111114
HỨA LINH QUANG – 17DH111099

TP.HỒ CHÍ MINH, ngày 05 tháng 12 năm 2019


Face Recognition GVHD Trần Khải Thiện

MỤC LỤC

LỜI MỞ ĐẦU ............................................................................................................................................... 3

Lý do chọn đề tài....................................................................................................................................... 3

Mục đích của đề tài ................................................................................................................................... 4

NHẬN XÉT CỦA GIẢNG VIÊN ................................................................................................................ 5

CHƯƠNG I: GIỚI THIỆU ........................................................................................................................... 6

1. Bài toán nhận dạng mặt người. ......................................................................................................... 6

2. Những khó khăn của hệ thống nhận dạng khuôn mặt. ...................................................................... 7

3. Ngôn ngữ lập trình ............................................................................................................................ 8

CHƯƠNG II: TỔNG QUAN VỀ XỬ LÝ ẢNH........................................................................................... 8

CHƯƠNG III: CÔNG CỤ VÀ THƯ VIỆN................................................................................................ 10

1. Ngôn ngữ Python ............................................................................................................................ 10

2. Thư viện OpenCV ........................................................................................................................... 11

3. Các ứng dụng của OpenCV ............................................................................................................ 11

4. Chức năng OpenCV ........................................................................................................................ 12

CHƯƠNG IV: XÂY DỰNG CHƯƠNG TRÌNH ....................................................................................... 13

2
Face Recognition GVHD Trần Khải Thiện

LỜI MỞ ĐẦU
Lý do chọn đề tài

Công nghệ nhận diện sinh trắc học càng ngày càng trở nên quen thuộc trong cuộc

sống. Ví dụ : dấn vân tay, khuôn mặt, mống mắt, đốt ngón tay ….. Các nhà khoa

học đã tìm ra những tính năng độc đáo. Bằng sự so sánh số học, nó giúp chúng ta

thuận tiện trong việc nhận diện các đặc điểm cá nhân, giúp tiết kiện thời gian và

nâng cao tính bảo mật.

Hệ thống nhận dạng khuôn mặt là một ứng dụng máy tính tự động xác định hoặc

nhận dạng một người nào đó từ một bức hình ảnh kỹ thuật số hoặc một khung hình

video từ một nguồn video. Một trong những cách để thực hiện điều này là so sánh

các đặc điểm khuôn mặt chọn trước từ hình ảnh và một cơ sở dữ liệu về khuôn

mặt. Hệ thống này thường được sử dụng trong các hệ thống an ninh và có thể được

so sánh với các dạng sinh trắc học khác như các hệ thống nhận dạng vân tay hay

tròng mắt.

3
Face Recognition GVHD Trần Khải Thiện

Nhận dạng khuôn mặt là một trong nhiều thành tự hay ho mà nghiên cứu AI đã

mang lại cho thế giới. Đây là một chủ đề gây tò mò cho nhiều tín đồ công nghệ -

những người muốn có một sự hiểu biết cơ bản về cách mọi thứ hoạt động. Chúng

ta hãy ngâm mình vào chủ đề, để xem mọi thứ hoạt động như thế nào.

Mục đích của đề tài

- Xây dựng một phần mềm ứng dụng nhận dạng khuôn mặt.

- Tìm hiểu rõ hơn về machine learning và thư viện OpenCv.

- Tìm hiểu các phương pháp xác định khuôn mặt (Face Detection).

4
Face Recognition GVHD Trần Khải Thiện

NHẬN XÉT CỦA GIẢNG VIÊN

..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................
..................................................................................................................................

5
Face Recognition GVHD Trần Khải Thiện

CHƯƠNG I: GIỚI THIỆU

1. Bài toán nhận dạng mặt người.

Nhận dạng mặt người (Face recognition) là một lĩnh vực nghiên cứu của ngành

Computer Vision, và cũng được xem là một lĩnh vực nghiên cứu của ngành

Biometrics (tương tự như nhận dạng vân tay – Fingerprint recognition, hay nhận

dạng mống mắt – Iris recognition). Xét về nguyên tắc chung, nhận dạng mặt có sự

tương đồng rất lớn với nhận dạng vân tay và nhận dạng mống mắt, tuy nhiên sự

khác biệt nằm ở bước trích chọn đặt trưng (feature extraction) của mỗi lĩnh vực.

Trong khi nhận dạng vân tay và mống mắt đã đạt tới độ chín, tức là có thể áp dụng

trên thực tế một cách rộng rãi thì nhận dạng mặt người vẫn còn nhiều thách thức và

vẫn là một lĩnh vực nghiên cứu thú vị với nhiều người. So với nhận dạng vân tay

và mống mắt, nhận dạng mặt có nguồn dữ liệu phong phú hơn (bạn có thể nhìn

thấy mặt người ở bất cứ tấm ảnh, video clip nào liên quan tới con người trên mạng)

và ít đòi hỏi sự tương tác có kiểm soát hơn (để thực hiện nhận dạng vân tay hay

mống mắt, dữ liệu input lấy từ con người đòi hỏi có sự hợp tác trong môi trường có

kiểm soát).

6
Face Recognition GVHD Trần Khải Thiện

2. Những khó khăn của hệ thống nhận dạng khuôn mặt.

Bài toán nhận dạng mặt người là bài toán đã được nghiên cứu từ những năm

70.Tuy nhiên, đây là một bài toán khó nên những nghiên cứu hiện tạivẫn chưa đạt

được những kết quả mong muốn. Chính vì thế, vấn đề này vẫn đang được nhiều

nhóm trên thế giới quan tâm nghiên cứu. Khó khăn của bài toán nhận dạng mặt

ngườicó thể kể đến như sau:

a.Tư thế chụp, góc chụp: Ảnh chụp khuôn mặt có thể thay đổi rất nhiều bởi

vì góc chụp giữa camera và khuôn mặt. Chẳng hạn như: chụp thẳng, chụp chéo bên

trái 45 độ hay chụp chéo bên phải 45 độ, chụp từ trên xuống, chụp từ dưới lên,

v.v... Với các tư thế khác nhau, các thành phần trên khuôn mặt như mắt, mũi,

miệng có thể bị khuất một phần hoặc thậm chí khuất hết.

b.Sự xuất hiện hoặc thiếu một số thành phần của khuôn mặt: Các đặc trưng

như: râu mép, râu hàm, mắt kính, v.v... có thể xuất hiện hoặc không. Vấn đề này

làm cho bài toán càng trở nên khó hơn rất nhiều.

c.Sự biểu cảm của khuôn mặt: Biểu cảm của khuôn mặt con người có thể

làm ảnh hưởng đáng kể lên cácthông số của khuôn mặt. Chẳnghạn, cùng một

khuôn mặt một người, nhưng có thể sẽ rất khác khi họcười hoặc sợ hãi, v.v...

d.Sự che khuất: Khuôn mặt có thể bị che khuất bởi các đối tượng khác hoặc

các khuôn mặt khác.

7
Face Recognition GVHD Trần Khải Thiện

e.Hướng của ảnh(pose variations): Các ảnh khuôn mặt có thể biến đổi rất

nhiều với các góc quay khác nhau của trục camera. Chẳng hạn chụp với trục máy

ảnh nghiênglàm cho khuôn mặt bị nghiêng so với trục của ảnh.

f.Điều kiện của ảnh: Ảnh được chụp trong các điều kiệnkhác nhau về: chiếu

sáng, về tính chất camera (máy kỹ thuật số, máy hồng ngoại, v.v...), ảnh có chất

lượng thấp ảnh hưởng rất nhiều đến chất lượng ảnh khuôn mặt.

3. Ngôn ngữ lập trình

Để giải quyết bài toán nhận dạng khuôn mặt sử dụng thư viện OpenCV, chúng ta

có thể sử dụng các ngôn ngữ lập trình như:.NET C#, VB, IronPython, Java, C++...

Trong đồ án này ngôn ngữ lập trình được sử dụng là Python và sử dụng thư viện

OpenCV,

CHƯƠNG II: TỔNG QUAN VỀ XỬ LÝ ẢNH

Con người thu nhận thông tin qua các giác quan, trong đó thị giác đóng vai trò

quan trọng nhất. Những năm trở lại đâyvới sự phát triển của phần cứng máy tính,

xử lý ảnh và đồ họa đã phát triển một cách mạnh mẽ và có nhiều ứng dụng trong

cuộc sống. Xử lý ảnh và đồ họa đóng vai trò quan trọng trong tương tác người

máy.

8
Face Recognition GVHD Trần Khải Thiện

Quá trình xử lý ảnh được xem như là quá trình thao tác ảnh đầu vào nhằm cho ra

kết quả mong muốn. Kết quả đầu ra của một quá trình xử lý ảnh có thể là một ảnh

“tốt hơn” hoặc một kết luận.

Ảnh có thể xem là tập hợp các điểm ảnh và mỗi điểm ảnhđược xem như là đặc

trưng cường độ sáng hay một dấu hiệu nào đótại một vị trí nào đó của đối tượng

trong không gian và nó có thể xem như một hàm n biến P(c1, c2, ..., cn). Do đó,

ảnh trong XLAcó thể xem như ảnh n chiều.Sơ đồ tổng quát của một hệ thống xử lý

ảnh.

9
Face Recognition GVHD Trần Khải Thiện

CHƯƠNG III: CÔNG CỤ VÀ THƯ VIỆN

1. Ngôn ngữ Python

Python là một ngôn ngữ lập trình bậc cao cho các mục đích lập trình đa năng, do

Guido van Rossum tạo ra và lần đầu ra mắt vào năm 1991. Python được thiết kế

với ưu điểm mạnh là dễ đọc, dễ học và dễ nhớ. Python là ngôn ngữ có hình thức rất

sáng sủa, cấu trúc rõ ràng, thuận tiện cho người mới học lập trình. Cấu trúc của

Python còn cho phép người sử dụng viết mã lệnh với số lần gõ phím tối thiểu. Vào

tháng 7 năm 2018, Van Rossum đã từ chức Leader trong cộng đồng ngôn ngữ

Python sau 30 năm lãnh đạo. Python hoàn toàn tạo kiểu động và dùng cơ chế cấp

phát bộ nhớ tự động; do vậy nó tương tự như Perl, Ruby, Scheme, Smalltalk, và

Tcl. Python được phát triển trong một dự án mã mở, do tổ chức phi lợi nhuận

Python Software Foundation quản lý. Ban đầu, Python được phát triển để chạy trên

nền Unix. Nhưng rồi theo thời gian, Python dần mở rộng sang mọi hệ điều hành từ

MS-DOS đến Mac OS, OS/2, Windows, Linux và các hệ điều hành khác thuộc họ

Unix. Mặc dù sự phát triển của Python có sự đóng góp của rất nhiều cá nhân,

nhưng Guido van Rossum hiện nay vẫn là tác giả chủ yếu của Python. Ông giữ vai

trò chủ chốt trong việc quyết định hướng phát triển của Python.

10
Face Recognition GVHD Trần Khải Thiện

2. Thư viện OpenCV

OpenCV là một thư viện mã nguồn mở hàng đầu cho thị giác máy tính (computer

vision), xử lý ảnh và máy học, và các tính năng tăng tốc GPU trong hoạt động thời

gian thực. OpenCV được phát hành theo giấy phép BSD, do đó nó hoàn toàn miễn

phí cho cả học thuật và thương mại. Nó có các interface C++, C, Python, Java và

hỗ trợ Windows, Linux, Mac OS, iOS và Android. OpenCV được thiết kế để tính

toán hiệu quả và với sự tập trung nhiều vào các ứng dụng thời gian thực. Được viết

bằng tối ưu hóa C/C++, thư viện có thể tận dụng lợi thế của xử lý đa lõi. Được sử

dụng trên khắp thế giới, OpenCV có cộng đồng hơn 47 nghìn người dùng và số

lượng download vượt quá 6 triệu lần. Phạm vi sử dụng từ nghệ thuật tương tác, cho

đến lĩnh vực khai thác mỏ, bản đồ trên web hoặc công nghệ robot.

3. Các ứng dụng của OpenCV

OpenCV đang được sử dụng rộng rãi trong các ứng dụng bao gồm:

 Hình ảnh street view

 Kiểm tra và giám sát tự động

 Robot và xe hơi tự lái

 Phân tích hình ảnh y tế

 Tìm kiếm và phục hồi hình ảnh/video

 Phim - cấu trúc 3D từ chuyển động

11
Face Recognition GVHD Trần Khải Thiện

 Nghệ thuật sắp đặt tương tác

4. Chức năng OpenCV

 Image/video I/O, xử lý, hiển thị (core, imgproc, highgui)

 Phát hiện các vật thể (objdetect, features2d, nonfree)

 Geometry-based monocular or stereo computer vision (calib3d,

stitching, videostab)

 Computational photography (photo, video, superres)

 Machine learning & clustering (ml, flann)

 CUDA acceleration (gpu)

12
Face Recognition GVHD Trần Khải Thiện

CHƯƠNG IV: XÂY DỰNG CHƯƠNG TRÌNH

Thêm các thư viện và API vào:

Vào thư mục khuôn mặt và mã hóa tất cả những khuôn mặt:

Thư mục “faces”:

Mã hóa một khuôn mặt cho tên tập tin

13
Face Recognition GVHD Trần Khải Thiện

Tìm thấy tất cả các khuôn mặt trong một hình ảnh và nhãn cụ thể nếu họ biết họ là

ai:

14
Face Recognition GVHD Trần Khải Thiện

Kết quả:

15

You might also like