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

ĐỒ án cơ sở 5 đề tài NGHIÊN cứu và xây DỰNG hệ THỐNG điểm DANH BẰNG NHẬN DIỆN GƯƠNG 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 (2.93 MB, 50 trang )

ĐẠI HỌC ĐÀ NẴNG

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

ĐỒ ÁN CƠ SỞ 5
ĐỀ TÀI: NGHIÊN

CỨU VÀ XÂY DỰNG HỆ THỐNG
ĐIỂM DANH BẰNG NHẬN DIỆN GƯƠNG MẶT

Sinh viên thực hiện

: CHU VĂN HOÀNG
: LÊ THỊ THÙY LINH

Giảng viên hướng dẫn

: THS.PHAN TRỌNG THANH

Đà nẵng, tháng 8 năm 2020

- 17IT3
- 17IT3


ĐẠI HỌC ĐÀ NẴNG

KHOA CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

ĐỒ ÁN CƠ SỞ 5
ĐỀ TÀI: NGHIÊN



CỨU VÀ XÂY DỰNG HỆ THỐNG
ĐIỂM DANH BẰNG NHẬN DIỆN GƯƠNG MẶT

Đà Nẵng, tháng 8 năm 2020


LỜI CẢM ƠN
Lời đầu tiên, chúng em xin cảm ơn đến tồn thể các q thầy cơ giáo khoa
Cơng nghệ thông tin và truyền thông. Những người đã luôn đồng hành cùng chúng em
trong những năm bước vào ngưỡng Đại học, giúp chúng em học cách tự lập và tự mình
tìm tịi những thứ mới và định hướng trong học tập
Chúng em cũng xin gửi lời cảm ơn đến Thầy Phan Trọng Thanh, thầy đã giúp
đỡ chúng em trong việc giải đáp và tìm hiểu các thơng tin liên quan đến học phần mà
chúng em gặp nhiều vướng mắc, từ đó đưa ra hướng giải quyết để chúng em có thể
chọn được một đề tài phù hợp với khả năng của mình.
Kiến thức là vơ hạn mà sự tiếp nhận kiến thức của bản thân mỗi người luôn tồn
tại những hạn chế nhất định. Do đó, trong q trình hồn thành bài báo cáo này, chắc
chắn không tránh khỏi những thiếu sót. Chúng em rất mong nhận được những góp ý
đến từ thầy để bài viết được hồn thiện hơn.
Kính chúc thầy sức khỏe và thành công trên con đường sự nghiệp giảng dạy.


NHẬN XÉT
(Của giảng viên hướng dẫn)

…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………

…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
…………………………………………………………………………………………
………………………………………………………………………………


MỞ ĐẦU
AI – Artificial Intelligence là khoa học làm cho máy móc trở nên thơng minh, với
mục tiêu cuối cùng là cho phép người máy sở hữu những khả năng tương tự như con
người. Trên thực tế, AI đã có tác động đáng kể đến cuộc sống của chúng ta, bằng cách
như cải thiện sức khỏe, an toàn và năng suất của con người. Ví dụ, ứng dụng AI vào
việc nhận dạng giọng nói giúp chúng ta điều khiển các thiết bị thơng minh dễ dàng
hơn, phân tích video thơng minh giúp đường phố của chúng ta an toàn hơn.
Việc triển khai công nghệ AI rất quan trọng để thúc đẩy chất lượng và phạm vi của các
ứng dụng IoT nói chung. Các công nghệ AI được tùy biến cao cho các nhiệm vụ riêng
lẻ và mỗi ứng dụng đòi hỏi nghiên cứu chuyên ngành và cấu trúc chuyên biệt. Deep
Learning, một hình thức học máy dựa trên các bộ dữ liệu được đào tạo đã tạo điều
kiện cho nhận dạng mẫu nâng cao trong hình ảnh, video và nhận dạng đối tượng / hoạt
động. Các thuật tốn của nó có thể được áp dụng rộng rãi cho một loạt các ứng dụng
dựa trên nhận dạng mẫu.



DANH MỤC HÌNH
Hình 1: Face Recognition............................................................................................11
Hình 2: Guido van Rossum - Nhà sáng lập Python......................................................12
Hình 3: Ngơn ngữ Python............................................................................................13
Hình 4 Thơng tin sinh viên..........................................................................................14
Hình 5 Thơng tin ngày giờ điểm danh.........................................................................15
Hình 6 Quá trình xử lý ảnh..........................................................................................15
Hình 7 OpenCV...........................................................................................................17
Hình 8 Tensorflow.......................................................................................................18
Hình 9 Biểu đồ lượt star và repos trên github sử dụng TF...........................................18
Hình 10 Thống kê nhu cầu tensorflow của các nhà tuyển dụng...................................19
Hình 11 Matplotlib......................................................................................................19
Hình 12 Scikit-learn.....................................................................................................20
Hình 13 Phương pháp truyền thống.............................................................................22
Hình 14 Nhận diện 3D.................................................................................................23
Hình 15 Tìm kiếm khn mặt đại diện (face clustering)..............................................25
Hình 16 Facenet...........................................................................................................26
Hình 17 Triple loss......................................................................................................27
Hình 18 Fretrain model................................................................................................28
Hình 19 Mơ hình MTCNN..........................................................................................28
Hình 20 12-calibration-net...........................................................................................29
Hình 21 24-calibraton-net............................................................................................29
Hình 22 48-calibration-net...........................................................................................30
Hình 23 MTCNN.........................................................................................................30
Hình 24 P-Net.............................................................................................................. 31
Hình 25 R-Net.............................................................................................................32
Hình 26 O-Net.............................................................................................................33
Hình 27 Kết quả thuật tốn..........................................................................................34
Hình 28 Sơ đồ hệ thống...............................................................................................35
Hình 29 Tạo mơi trường cho Project...........................................................................36

Hình 30 Data Collection..............................................................................................37
Hình 31Cắt ảnh (Data Collection)...............................................................................38
Hình 32 Lưu hình ảnh vào thư mục với tên thư mục tương ứng với Name..................39
Hình 33 Find face and crop..........................................................................................39
Hình 34 Train Facenet.................................................................................................39
Hình 35 Lưu file your_model.pkl vào thư mục models...............................................41
Hình 36 Giao diện khi đã được train............................................................................42
Hình 37: Face Recognition..........................................................................................44
Hình 38 GUI system....................................................................................................45


DANH MỤC CỤM TỪ VIẾT TẮT
STT

Cụm từ

Viết tắt

1

MTCNN

Multi-task Cascaded Convolutional
Networks


Mục Lục
CHƯƠNG 1 : GIỚI THIỆU......................................................................................10
1.1


Giới thiệu về đề tài........................................................................................10

1.2

Vấn đề cần giải quyết...................................................................................10

1.3

Đề xuất nội dung thực hiện..........................................................................11

1.4

Chức năng dự kiến.......................................................................................11

CHƯƠNG 2 : NGHIÊN CỨU TỔNG QUAN..........................................................12
2.1 Tổng quan về Python.......................................................................................12
2.1.1 Giới thiệu..................................................................................................12
2.1.2 Đặc điểm...................................................................................................13
2.2 Tổng quan về SQLite.......................................................................................14
2.2.1 SQLite là gì................................................................................................14
2.2.2 Chức năng chính của SQLite...................................................................14
2.3 Tổng quan về quá trình xử lý ảnh..................................................................15
2.3.1 Xử lý ảnh là gì ?........................................................................................15
2.3.2 Các quá trình xử lý ảnh............................................................................15
2.4 Tổng quan về các thư viện cài đặt..................................................................17
2.4.1 OpenCV.....................................................................................................17
2.4.2 Tensorflow.................................................................................................18
2.4.3 Matplotlib..................................................................................................19
2.4.4 Pillow..........................................................................................................19
2.4.5 Scipy...........................................................................................................20

2.4.6 Scikit-learn................................................................................................20
2.5 Hệ thống nhận diện gương mặt.......................................................................20
2.5.1 Các ứng dụng phổ biến.............................................................................20
2.5.2 Các loại hệ thống xác thực........................................................................21
2.5.3 Các phương pháp xác thực gương mặt..................................................22
2.5.4 Các bài toán khác nhau về Face...............................................................24
2.5.5 Thuật toán nhận dạng Facenet................................................................25
2.5.6 Các pretrain model facenet......................................................................27
2.6 MTCNN............................................................................................................28
2.6.1 Tổng quan về thư viện..............................................................................28
2.5.2 Cấu trúc CNNs..........................................................................................29
2.6.3 Cách thức hoạt dộng.................................................................................30
CHƯƠNG 3: SƠ ĐỒ HỆ THỐNG...........................................................................35
CHƯƠNG 4 : TRIỂN KHAI XÂY DỰNG..............................................................36


4.1 Khởi tạo enviroment dự án mới trên Anaconda............................................36
4.2 Cài đặt thư viện................................................................................................36
4.3 Chuẩn bị ảnh khuôn mặt để train (Data Collection).....................................37
4.4 Training dữ liệu...............................................................................................39
4.5 Nhận dạng gương mặt.....................................................................................43
4.6 Giao diện hệ thống...........................................................................................45
CHƯƠNG 5 : KẾT LUẬN........................................................................................46
TÀI LIỆU THAM KHẢO.........................................................................................47


CHƯƠNG 1 : GIỚI THIỆU
1.1 Giới thiệu về đề tài
Đề tài : Tìm hiểu, nghiên cứu và thực hiện xây dựng hệ thống nhận diện gương mặt
Bối cảnh thực hiện đề tài:

Ngày nay, cùng với những tiến bộ vượt bậc của khoa học kỹ thuật nói chung,
bộ mơn khoa học xử lý ảnh đã và đang thu được những thành tựu lớn lao và chứng tỏ
vai trị khơng thể thiếu với những ứng dụng sâu rộng trong khoa học kỹ thuật cũng như
đời sống xã hội. Một bộ phận của khoa học xử lý ảnh là lĩnh vực thị giác máy tính hiện
đang thu hút rất nhiều sự quan tâm của các nhà nghiên cứu xử lý ảnh với mục tiêu xây
dựng nên một thế giới trong đó hệ thống thị giác kỳ diệu của con người có thể được
mơ phỏng bởi các hệ thống máy tính, đem lại khả năng cảm nhận bằng thị giác cho các
hệ thống về môi trường xung quanh. Mơ ước về một hệ thống máy tính có thể hồ
nhập vào thế giới con người với đầy đủ các giác quan trong đó thị giác đóng vai trị
quan trọng đang dần dần được hiện thực hố với những đóng góp nghiên cứu của các
nhà khoa học trên phạm vi toàn thế giới.
Đồng thời việc phát triển của các thiết bị phần cứng cả về phƣơng diện thu
nhận, hiển thị, tốc độ xử lý đã mở ra nhiều hướng mới cho công nghệ xử lý ảnh. Nó có
thể giải quyết các bài tốn như giám sát tự động phục vụ trong cơ quan, ngân hàng,
kho bạc, ... hoặc trong việc giám sát giao thông tự động, phục vụ tại bãi đỗ xe, trạm
thu phí tự động hoặc việc phát hiện và nhận dạng mặt người phục vụ trong công tác
quân sự, an ninh.
1.2 Vấn đề cần giải quyế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ề khn 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.
Từ đó thu thập, phân tích các tài liệu về nhận dạng khn mặt, tìm hiểu các
phương pháp nhận dạng khn mặt, nghiên cứu các công cụ xây dựng hệ thống




1.3 Đề xuất nội dung thực hiện
Đối với đề tài Tìm hiểu, nghiên cứu và thực hiện xây dựng hệ thống nhận diện
gương mặt. Việc hệ thống có thể nhận dạng chính xác là một việc quan trọng. Đối với
đề tài này, chúng em thực hiện xây dựng hệ thống nhận diện gương mặt sử dụng Deep
learning với khả năng “Nhận dạng gương mặt nhanh chóng và chính xác”.
Với hệ thống này, chúng em sẽ sử dụng các thư viện được cung cấp bởi PIP
trong python và sử dụng Visual Studio Code để lập trình.

Hình 1: Face Recognition

1.4 Chức năng dự kiến
Hệ thống có khả năng lấy dữ liệu gương mặt (Data collection), training dữ liệu
gương mặt vừa lấy được và cuối cùng là chức năng chính nhận diện gương mặt (Face
recognition).


CHƯƠNG 2 : NGHIÊN CỨU TỔNG QUAN
2.1 Tổng quan về Python
2.1.1 Giới thiệu

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.
Python hồn tồn tạo kiểu động và dùng cơ chế cấp phát bộ nhớ tự động.
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.
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.


Hình 2: Guido van Rossum - Nhà sáng lập Python

2.1.2 Đặc điểm
Python luôn được biết đến với các đặc điểm sau đâu: 
-

Cú pháp rất tường minh, dễ đọc.

-

Các khả năng tự xét mạnh mẽ.

-

Hướng đối tượng trực giác.

-

Cách thể hiện tự nhiên mã thủ tục.

-


Hồn tồn mơ-đun hóa, hỗ trợ các gói theo cấp bậc.

-

Xử lý lỗi dựa theo ngoại lệ.

-

Kiểu dữ liệu động ở mức rất cao.

-

Các thư viện chuẩn và các mơ-đun ngồi bao qt hầu như mọi việc.

-

Phần mở rộng và mô-đun dễ dàng viết trong C, C++.

-

Có thể nhúng trong ứng dụng như một giao diện kịch bản (scripting interface).

-

Python mạnh mẽ và thực hiện rất nhanh.


Hình 3: Ngơn ngữ Python


Python là một ngơn ngữ lập trình cấp cao có thể đáp ứng phần lớn u cầu của lập
trình viên:
-

Python thích hợp với các chương trình lớn hơn cả AWK và Perl.

-

Python được sử dụng để lập trình Web. Nó có thể được sử dụng như một ngơn
ngữ kịch bản.

-

Python được thiết kế để có thể nhúng và phục vụ như một ngôn ngữ kịch bản để
tuỳ biến và mở rộng các ứng dụng lớn hơn.

-

Python được tích hợp sẵn nhiều cơng cụ và có một thư viện chuẩn phong phú,
Python cho phép người dùng dễ dàng tạo ra các dịch vụ Web, sử dụng các
thành phần COM hay CORBA, hỗ trợ các loại định dạng dữ liệu Internet như
email, HTML, XML và các ngôn ngữ đánh dấu khác. Python cũng được cung
cấp các thư viện xử lý các giao thức Internet thơng dụng như HTTP, FTP,…

-

Python có khả năng giao tiếp đến hầu hết các loại cơ sở dữ liệu, có khả năng xử
lý văn bản, tài liệu hiệu quả, và có thể làm việc tốt với các công nghệ Web
khác.


-

Python đặc biệt hiệu quả trong lập trình tính tốn khoa học nhờ các công cụ
Python Imaging Library, pyVTK, MayaVi 3D Visualization Toolkits, Numeric
Python, ScientificPython,…

-

Python có thể được sử dụng để phát triển các ứng dụng desktop. Lập trình
viên có thể dùng wxPython, PyQt, PyGtk để phát triển các ứng dụng giao diện


đồ họa (GUI) chất lượng cao. Python còn hỗ trợ các nền tảng phát triển phần
mềm khác như MFC, Carbon, Delphi, X11, Motif, Tk, Fox, FLTK, …
-

Python cũng có sẵn một unit testing framework để tạo ra các bộ test (test
suites).

2.2 Tổng quan về SQLite
2.2.1 SQLite là gì
SQLite là một thư viện phần mềm mà triển khai một SQL Database Engine,
không cần máy chủ, khơng cần cấu hình, khép kín và nhỏ gọn. Nó là một cơ sở dữ
liệu, khơng cần cấu hình, có nghĩa là giống như các cơ sở dữ liệu khác mà bạn khơng
cần phải cấu hình nó trong hệ thống của mình.
2.2.2 Chức năng chính của SQLite
- Dùng để lưu trữ thơng tin bao gồm Mã SV ,tên ,… thông tin của sinh viên

Hình 4 Thơng tin sinh viên



Hình 5 Thơng tin ngày giờ điểm danh

2.3 Tổng quan về quá trình xử lý ảnh
2.3.1 Xử lý ảnh là gì ?
Xử lý ảnh (XLA) là đối tượng nghiên cứu của lĩnh vực thị giác máy, là quá
trình biến đổi từ một ảnh ban đầu sang một ảnh mới với các đặc tính và tuân theo ý
muốn của người sử dụng. Xử lý ảnh có thể gồm q trình phân tích, phân lớp các đối
tượng, làm tăng chất lượng, phân đoạn và tách cạnh, gán nhãn cho vùng hay quá trình
biên dịch các thơng in hình ảnh của ảnh.


2.3.2 Các quá trình xử lý ảnh

Hình 6 Quá trình xử lý ảnh

2.3.2.1 Phần thu nhận ảnh (Image Acquisition)
Ảnh có thể nhận qua camera màu hoặc đen trắng. Thường ảnh nhận qua camera
là ảnh tương tự (loại camera ống chuẩn CCIR với tần số 1/25, mỗi ảnh 25 dịng), cũng
có loại camera đã số hoá (như loại CCD – Charge Coupled Device) là loại photodiode
tạo cường độ sáng tại mỗi điểm ảnh.
Camera thường dùng là loại quét dòng ; ảnh tạo ra có dạng hai chiều. Chất
lượng một ảnh thu nhận được phụ thuộc vào thiết bị thu, vào môi trường (ánh sáng,
phong cảnh).
2.3.2.2 Tiền xử lý (Image Processing)
Sau bộ thu nhận, ảnh có thể nhiễu độ tương phản thấp nên cần đưa vào bộ tiền
xử lý để nâng cao chất lượng. Chức năng chính của bộ tiền xử lý là lọc nhiễu, tăng độ
tương phản để làm ảnh rõ hơn, nét hơn.
2.3.2.3 Phân đoạn (Segmentation) hay phân vùng ảnh
Phân vùng ảnh là tách một ảnh đầu vào thành các vùng thành phần để biểu diễn

phân tích, nhận dạng ảnh. Ví dụ: để nhận dạng chữ (hoặc mã vạch) trên phong bì thư
cho mục đích phân loại bưu phẩm, cần chia các câu, chữ về địa chỉ hoặc tên người
thành các từ, các chữ, các số (hoặc các vạch) riêng biệt để nhận dạng. Đây là phần
phức tạp khó khăn nhất trong xử lý ảnh và cũng dễ gây lỗi, làm mất độ chính xác của
ảnh. Kết quả nhận dạng ảnh phụ thuộc rất nhiều vào công đoạn này.
2.3.2.4 Biễu diễn ảnh (Image Representation)
Đầu ra ảnh sau phân đoạn chứa các điểm ảnh của vùng ảnh (ảnh đã phân đoạn)
cộng với mã liên kết với các vùng lân cận. Việc biến đổi các số liệu này thành dạng
thích hợp là cần thiết cho xử lý tiếp theo bằng máy tính. Việc chọn các tính chất để thể


hiện ảnh gọi là trích chọn đặc trưng (Feature Selection) gắn với việc tách các đặc tính
của ảnh dưới dạng các thông tin định lượng hoặc làm cơ sở để phân biệt lớp đối tượng
này với đối tượng khác trong phạm vi ảnh nhận được.
2.3.2.5 Nhận dạng và nội suy ảnh(Image Recognition and Interpretation)
Nhận dạng ảnh là quá trình xác định ảnh. Quá trình này thường thu được bằng
cách so sánh với mẫu chuẩn đã được học (hoặc lưu) từ trước. Nội suy là phán đoán
theo ý nghĩa trên cơ sở nhận dạng. Có nhiều cách phân loại ảnh khác nhau về ảnh.
Theo lý thuyết về nhận dạng, các mô hình tốn học về ảnh được phân theo hai loại
nhận dạng ảnh cơ bản:
− Nhận dạng theo tham số.
− Nhận dạng theo cấu trúc.
Một số đối tượng nhận dạng khá phổ biến hiện nay đang được áp dụng trong khoa học
và công nghệ là: nhận dạng ký tự (chữ in, chữ viết tay, chữ ký điện tử), nhận dạng văn
bản (Text), nhận dạng vân tay, nhận dạng mã vạch, nhận dạng mặt người…
2.3.2.6 Cơ sở trí thức(Knowledge Base)
Như đã nói ở trên, ảnh là một đối tượng khá phức tạp về đường nét, độ sáng tối,
dung lượng điểm ảnh, môi trường để thu ảnh phong phú kéo theo nhiễu. Trong nhiều
khâu xử lý và phân tích ảnh ngồi việc đơn giản hóa các phương pháp tốn học đảm
bảo tiện lợi cho xử lý, người ta mong muốn bắt chước quy trình tiếp nhận và xử lý ảnh

theo cách của con người. Trong các bước xử lý đó, nhiều khâu hiện nay đã xử lý theo
các phương pháp trí tuệ con người. Vì vậy, ở đây các cơ sở tri thức được phát huy.
2.4 Tổng quan về các thư viện cài đặt
2.4.1 OpenCV
OpenCV (Open Computer Vision) là một thư viện mã nguồn mở hàng đầu cho
xử lý về thị giác máy tính, machine learning, xử lý ảnh. OpenCV đươc viết bằng C/C+
+, vì vậy có tốc độ tính tốn rất nhanh, có thể sử dụng với các ứng dụng liên quan đến
thời gian thực. Opencv có các interface cho C/C++, Python Java vì vậy hỗ trợ được
cho Window, Linux, MacOs lẫn Android, iOS 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.
OpenCV có rất nhiều ứng dụng như nhận dạng ảnh, xử lý ảnh, phục hồi
ảnh/video, thực tế ảo, các ứng dụng khác,…


Hình 7 OpenCV

2.4.2 Tensorflow
Thư viện Tensorfow là thư viện mã nguồn mở dùng cho tính tốn số học sử
dụng đồ thị luồng dữ liệu.
Biểu đồ dưới đây cho thấy mức độ phổ biến của thư viện này:

Hình 8 Tensorflow

Tại sao lại là thư viện Tensorflow ?
 Tích hợp sẵn rất nhiều các thư viện machine learning
 Có khả năng tương thích và mở rộng tốt. Được Google phát triển cho machine
learning phục vụ cả nghiên cứu lẫn xây dựng các ứng dụng thực tế
 Phổ biến



Hình 9 Biểu đồ lượt star và repos trên github sử dụng TF

Hình 10 Thống kê nhu cầu tensorflow của các nhà tuyển dụng

2.4.3 Matplotlib
Nó là một thư viện vẽ đồ thị rất mạnh mẽ, hữu ích cho những người làm việc
với Python và NumPy. Module được sử dụng nhiều nhất của Matplotib là Pyplot.
Pyplot cung cấp giao diện như MATLAB nhưng thay vào đó, nó sử dụng Python và nó
là nguồn mở.


Hình 11 Matplotlib

2.4.4 Pillow
Pillow là một fork từ thư viện PIL của Python được sử dụng để xử lý hình ảnh.
So với PIL thì Pillow được cập nhật thường xuyên và đánh giá cao hơn. (PIL đã không
được cập nhật từ năm 2009).
2.4.5 Scipy
Scipy được xây dựng trên nền tảng Numpy, nó đáp ứng mọi nhu cầu về xử lý
mảng cơ bản mà các bạn có thể sử dụng các hàm của Numpy.
2.4.6 Scikit-learn
Scikit-learn (Sklearn) là thư viện mạnh mẽ nhất dành cho các thuật toán học
máy được viết trên ngôn ngữ Python. Thư viện cung cấp một tập các cơng cụ xử lý các
bài tốn machine learning và statistical modeling gồm: classification, regression,
clustering và dimensionality reduction.
Thư viện tập trung vào việc mơ hình hóa dữ liệu. Nó khơng tập trung vào việc
truyền tải dữ liệu, biến đổi hay tổng hợp dữ liệu. Những công việc này dành cho thư
viện Numpy và Pandas.



Hình 12 Scikit-learn

2.5 Hệ thống nhận diện gương mặt
2.5.1 Các ứng dụng phổ biến
Khi Facebook ra mắt lần đầu tiên vào năm 2004, nó chỉ mới tập trung vào việc
kết nối mọi người. Giờ đây, họ giao cho trí tuệ nhân tạo xử lý cơng việc đó. AI đã trở
thành trung tâm của các sản phẩm của công ty mà một năm trước nhà khoa học AI của
Facebook là Yann LeCun cho rằng, "nếu khơng tìm hiểu kỹ thì mạng xã hội sẽ chỉ là
"rác bụi"".
Vào năm 2018, Apple bắt đầu tích hợp chức năng nhận diện khn mặt trong
các dịng sản phẩm iphone X. Sau đó, một xu hướng các smart phone ứng dụng nhận
diện khuôn mặt ra đời.
Một số ngân hàng ở Autralia bắt đầu ứng dụng xác thực khuôn mặt trong các
giao dịch ATM.
Tại Trung Quốc, hệ thống nhận diện khn mặt được triển khai trên tồn quốc
giúp chấm điểm công dân và đồng thời xác minh nhiều tội phạm lẩn trốn.
Còn tại các cơ quan, hệ thống nhận diện khuôn mặt được nghiên cứu in-house
áp dụng để chấm cơng cho nhân viên.
Nhận diện khn mặt có tính ứng dụng cao. Rất nhiều cơng ty, doanh nghiệp và
quốc gia đang cần.


2.5.2 Các loại hệ thống xác thực
Hầu hết các hệ thống xác thực sẽ dựa trên thông tin sinh trắc để định danh một
người. Các thông tin sinh trắc là những thơng tin duy nhất với mỗi người. Đó có thể là
vân tay, ADN, vân mắt, khuôn mặt (không phẫu thuật thẩm mỹ, hãy thả lỏng khn
mặt nhất có thể, không chu môi, nháy mắt, tạo kiểu cute các thứ), hình dạng, dáng đi,
….
Theo đó, có vơ số các phương pháp xác thực khác nhau, tùy vào việc sử dụng
thông tin sinh trắc nào. Ở Việt Nam thì chắc phổ biến nhất là xác thực bằng vân tay.

Trước đây khi computer vision chưa phát triển thì các hệ thống xác thực bằng
vân tay, bằng vân mắt được áp dụng khá phổ biến. Vài năm gần đây, xác thực bằng
khuôn mặt mới được áp dụng rộng rãi. Xét về độ chính xác thì các hệ thống xác thực
vân tay, vân mắt đáng tin cậy hơn so với nhận diện khuôn mặt vì dữ liệu khơng thay
đổi, trong khi khn mặt một người có thể thay đổi qua thời gian và chịu sự co dãn.
Tuy nhiên hệ thống nhận diện khuôn mặt được ưa chuộng vì q trình xác thực
nhanh, có thể xác thực từ xa, không cần phải tiếp xúc như vân tay, vân mắt. Bạn được
phép nhìn người khác nhưng muốn động chạm thì cần phải được sự xin phép của họ.
2.5.3 Các phương pháp xác thực gương mặt
2.5.3.1 Phương pháp truyền thống
Các phương pháp truyền thống: Xác thực khuôn mặt bằng cách trích xuất ra
một “landmark” cho khn mặt. Nó như là một bản đồ xác định các vị trí cố định trên
khn mặt của một người như mắt, mũi, miệng, lông mày,….


Hình 13 Phương pháp truyền thống

Như vậy ta thấy landmark face đã loại bỏ những phần thông tin không cần thiết
và giữ lại những thơng tin chính. Khi đó mỗi khuôn mặt sẽ được nén thành một véc tơ
n chiều. Thông thường là 68 chiều.
Sử dụng đầu vào là landmark face, áp dụng các thuật toán cổ điển như SVM, kNN, Naive Bayes, Random Forest, MLP, … để phân loại khuôn mặt cho một người.

2.5.3.2 Nhận diện 3D
Kĩ thuật nhận diện 3D sẽ sử dụng không gian 3 chiều để biểu diễn khn mặt.
Từ thơng tin này có thể xác định các đặc trưng khác nhau trên bề mặt khuôn mặt như
các đường countour của mắt, mũi, cằm.
Một lợi thế của nhận diện khuôn mặt 3D là không bị ảnh hưởng bởi những thay
đổi về ánh sáng như các phương pháp 2D. Dữ liệu 3D đã cải thiện đáng kể độ chính
xác của nhận dạng khn mặt.



×