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

VIOLA JONES ALGORITHM ANALYSIS AND APPLICATION FOR FACE DETECTION AND RECOGNITION WITH THE HIGHEST ACCURACY

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

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CƠ KHÍ – BỘ MÔN CƠ ĐIỆN TỬ
**********

VIOLA-JONES ALGORITHM ANALYSIS AND
APPLICATION FOR FACE DETECTION AND
RECOGNITION WITH THE HIGHEST
ACCURACY

Giảng viên hướng dẫn:
TS.Nguyễn Trung Kiên/TS. Tào Ngọc Linh
Sinh viên thực hiện:
Trịnh Đình Triển
- 20181790
Lê Thu Thủy
- 20185411
Nguyễn Thị Phương Anh - 20183683

Hà Nội:27/8/2021


MỤC LỤC
1. Introduction ....................................................................................................................... 4
2. Methodology ...................................................................................................................... 6
2.1. Viola-Jones Algorithm ................................................................................................ 6
2.2. Face detection .............................................................................................................. 7
2.3. Face Recognition System ............................................................................................ 8
2.2.1. Setting Data .............................................................................................................. 8
2.2.2. Pre-Procesing ........................................................................................................... 9
2.2.3. Face Recognition .................................................................................................... 10
3. Result And Discussion..................................................................................................... 11


3.1. Ảnh hưởng của các thông số nhận diện: ................................................................... 11
3.1. Effects of identification parameters: ......................................................................... 11
Xét trong trường hợp ảnh có nhiều người .................................................................... 16
3.2. Khả năng nhận diện đối tượng .................................................................................. 17
4. Conclusion ....................................................................................................................... 18
References ........................................................................................................................... 19
Bibliography ........................................................................................................................ 19
APPENDIX A...................................................................................................................... 20
SOFT WARE ................................................................................................................... 20
APPENDIX B ...................................................................................................................... 20
FACE DETECTION IN REAL-TIME ............................................................................ 20
FACE DETECTION IN IMAGE ..................................................................................... 20
APPENDIX C ...................................................................................................................... 21
SETTING DATA ............................................................................................................. 21
TRAINING DATA .......................................................................................................... 22
FACE RECOGNITION ................................................................................................... 23
APPENDIX RESULT ......................................................................................................... 24


DANH MỤC BẢNG BIỂU HÌNH ẢNH
Hình 1: Các tập đặc trưng cơ bản [10] (LU Wen-Yao, 2019) ............................................... 6
Hình 2: Sơ đồ Cascade Classifire [11] (Alpika Gupta, 2015) ............................................... 7
Hình 3: Sơ đồ thuật tốn tìm kiếm khn mặt trong ảnh ...................................................... 7
Hình 4: Quá trình nhận diện .................................................................................................. 8
Hình 5: Sơ đồ giai đoạn tạo và đào tạo dữ liệu ..................................................................... 9
Hình 6: Thu nhận ảnh và tiền xử lý ....................................................................................... 9
Hình 7: Sơ đồ quá trình nhận diện khn mặt ..................................................................... 10
Hình 8: Thời gian tìm kiếm khn mặt trong thời gian thực .............................................. 13
Hình 9: Thời gian trung bình tìm kiếm khn mặt.............................................................. 13
Hình 10: Mẫu ảnh đúng ảnh sai ........................................................................................... 13

Hình 11: Độ chính xác khi thay theo góc camera ............................................................... 14
Hình 12: Độ chính xác phát hiện khuôn mặt trong hai điều kiện ánh sáng......................... 15
Hình 13:Thời gian trung bình tìm kiếm ............................................................................... 15
Hình 14: Kết quả phát hiện khn mặt trên ảnh có nhiều người ........................................ 16
Hình 15: Dữ liệu .................................................................................................................. 17
Hình 16: Khả năng nhận diện đối tượng ............................................................................. 18
Hình 17: Xmapp .................................................................................................................. 20
Hình 18: Python ................................................................................................................... 20
Hình 19: Kích thước vùng ảnh chứa khn mặt nhỏ nhất mà thuật tốn tìm kiếm được ... 25
Hình 20: Góc camera chính diện ......................................................................................... 25
Hình 21: Góc camera 450..................................................................................................... 26
Hình 22: Góc camera 30o..................................................................................................... 26
Bảng 1: Các trường hợp phát hiện khuôn mặt ..................................................................... 12
Bảng 2: Thống Kê Số Lượng Khuôn Mặt Đúng Sai Theo Góc Camera ............................. 14
Bảng 3: Phát hiện khn mặt trong bức ảnh có nhiều khn mặt ....................................... 16
Bảng 4: Thời gian tìm kiếm khn mặt ............................................................................... 24
Bảng 5: Thời gian tìm kiếm tại các góc camera .................................................................. 24
Bảng 6: Thời gian tìm kiếm trong các điều kiện ánh sáng .................................................. 24
Bảng 7: Số ảnh đúng sai trong các trường hợp góc camera ................................................ 25


VIOLA-JONES ALGORITHM ANALYSIS AND APPLICATION FOR FACE
DETECTION AND RECOGNITION WITH THE HIGHEST ACCURACY
Nguyen Thi Phuong Anh1, Le Thu Thuy2 and Trinh Dinh Trien3
1. Hanoi University of Science And Technology, HA NOI, VIET NAM;
, ,

Abstract. Tìm kiếm và nhận diện khn mặt là bài tốn vơ cùng quan trọng trong lĩnh vực Computer Vison, được
áp dụng phổ biến trong đời sống ngày nay. Rất nhiều các lĩnh vực ghi nhận đóng góp quan trọng của bài tốn nhận
diện như hệ thống giám sát an ninh - quản lý xã hội, hỗ trợ tìm kiếm người mất tích hay đặc biệt trong thời kỳ Covid

hiện nay việc áp dụng nhận diện khn mặt truy tìm các F0 sẽ hỗ trợ giảm tải phần lớn công việc khoanh vùng dịch
của Đảng và Nhà Nước Việt Nam. Nhận thấy tầm quan trọng của bài toán , nghiên cứu áp dụng thuật toán ViolaJones giải quyết hai bài tốn tìm kiếm và nhận diện khuôn mặt trong thời gian thực trong các điều kiện mơi trường
cụ thể đi sâu phân tích từng khía cạnh, yếu tố ảnh hưởng của môi trường đến hệ thống nhận diện. Nghiên cứu đưa ra
hướng áp dụng nhằm nâng cao tốc độ tìm kiếm và tính chính xác của hệ thống nhận diện dựa trên thuật toán ViolaJones với độ chính xác trung bình lên tới 85.3% và gần như đạt tuyệt đối 99% trong điều kiện thuận lợi.
Facial detection and recognition is a very significant question in the field of computer vision. Which is commonly
applied in daily life. Many areas recognize the important contribution of the identification problem such as a security
monitoring system - social management, supporting the search for missing people or especially in the current Covid
era, the application of facial recognition to trace F0 will help to reduce the load of most of the work of the Party and
the government of Vietnam. Recognizing the importance of the problem, the Viola-Jones algorithm applied research
to solve two real-time facial search and recognition problems in specific environmental conditions that analyze each
aspect and factor affecting the environment on the identification system. The study aims to improve the search speed
and accuracy of the Viola-Jones algorithm-based identification system with an average accuracy of up to 85.3% and
almost 99% absolute under favorable conditions.
Keywords: Viola-Jones algorithm, Face Detection, Face Recognition, Haar-Like Cascade

1. Introduction
Sự phát triển không ngừng của xã hội hiện tượng dân số thế giới ngày một gia tăng đã đặt ra một bài tốn cho hệ thống
chính quyền các quốc gia về xác định danh tính của từng đối tượng trong xã hội để lưu trữ bảo mật thông tin cá nhận,
quản lý, tìm kiếm và xác thực thơng tin nhanh chóng và kịp thời. Chính vì vậy mà việc giải quyết bài tốn nhận diện
mặt người trở nên vơ cùng quan trọng đối với mỗi quốc gia trên thế giới. Các lĩnh vực đời sống xã hội ghi nhận tầm
quan trọng của nhận diện mặt người dễ thấy như xác nhận thơng tin, danh tính, truy tìm nhưng người bênh truyền
nhiễm, tội phạm trong cộng đồng xã hội, bảo mật thông tin quan trọng của nhà nước hay các thông tin các nhân trên
các nền tảng xã hội. Không chỉ được ứng dụng vào quản lý xã hội nhận diện mặt người còn được sử dụng phổ biến trên
các nền tảng xã hội mà chúng ta có thể dẽ dàng bắt gặp như các tính năng gắn thẻ của facebook hay gắn các biểu tượng,
icon trên mặt của tiktok,…
The continuous development of the world population phenomenon has posed a problem for the system of national
authorities to identify each object in society to store the security of personal information, govern, search and
authenticate information quickly and immediately. That’s why the solution of the question is the reason for the
resolution of the problem. Human face recognition has become very important for every country in the world. The fields
of social life recognize the importance of recognizing conspicuous human faces such as confirming information,

identity, tracing but infectious advocates, crimes in the social community, the security of important information of the
state, or the information of individuals on social platforms. Not only is it used in social management to identify people's
faces, but it is also commonly used on social platforms, but we can easily come across such as facebook's tagging
features or attaching icons and icons of TikTok,...
Nhận diện khuôn mặt là một phần nghiên cứu vô cùng quan trọng trong lĩnh vực thị giác máy tính khởi đầu là nghiên
cứu của Bledsoe vào những năm 60 của thế kỷ XIX 1 (Mankar2, 2012). Vào những ngày đầu tiên phương thức dùng
để xác định gương mặt là trích xuất ra một landmark face – vùng biên của gương mặt được xác định bằng các chấm
trên ảnh bằng các thuật tốn cổ điển như SVM, K-NN, Nạve Bayes, Random Forest, MLP [2] (Shahrin Azuan Nazeer


and Marzuki Khalid Telekom Research & Development Sdn. Bhd., 2009). Cùng với sự phát triển của học sâu, trí tuệ
nhân tạo ngày càng nhiều các thuật toán mới ra đời thừa kế và phát triển dựa trên các thuật toán đời đầu với khả năng
tính tốn nhanh, giảm thời gian tìm kiếm xác nhận khn mặt như sử dụng mạng neurol tích chập (CNN) xử lý tìm
kiếm thơng qua các lớp tế bào thần kinh ẩn 3 (Saad ALBAWI, 2017) hay phân tích thành phần chính (Principal
Component Analysis - PCA) trích xuất khn mặt riêng tương ứng của từng đối tượng, giảm chiều dữ liệu của ảnh đầu
vào 4 (Brian S. Everitt & David C. Howel John Wiley & Sons, 2005). Tuy nhiên theo thống kê các thí nghiệm thực
hiện các phương pháp một cách độc lập không mang lại kết quả cao về hiệu suất cũng như tính chính xác khi tìm kiếm.
Các thơng số thể hiện mức tối ưu của thuật toán dao động từ 70-90% [5]. (Narayan T. Deshpande, 2017). Ví dụ, sử
dụng PCA có hiệu quả 72% [5] (Narayan T. Deshpande, 2017). Kết quả nhận diện phụ thuộc rất nhiều vào các tác động
từ bên ngoài như nhiễu, ánh sáng, góc camera, trang phục như mũ hay nón của đối tượng, mức độ đầy đủ của khn
mặt dẫn đến sai sót của thuật tốn trong q trình nhận diện. Sự sai sót khi trong q trình nhận diện có thể gây ra ảnh
hưởng rất lớn đối với hệ thống.
Facial recognition was a significant part of the field of computer vision that began with the Bledsoe search in the 1960s.
In the early days, the method used to identify faces was to extract a landmark face – the boundary of the face was
determined by the dots on the image using classical algorithms such as SVM, K-NN, Nave Bayes, Random Forest,
MLP. Along with the development of deep learning, artificial intelligence is increasingly inherited and developed based
on early algorithms with the ability to calculate quickly, reducing the time it takes to search for facial confirmation
such as using a built-in neural network (CNN) that processes searches through layers of hidden neurons[3] or
component analysis. Principal Component Analysis (PCA) extracts the corresponding individual faces of each subject,
reducing the data dimension of the input image [4]. However, statistically, experiments, by executing methods

independently, do not yield high results in terms of performance or precision in research. Parameters representing the
optimum level of the algorithm are in the range of 70-90% [5]. For example, using PCA is 72% effective[5]. The result
of identification depends a lot on external impacts such as noise, light, camera angle, costumes such as the subject's
hat or hat, the fullness of the face leading to errors of the algorithm in the identification process. Mistakes in the
identification process can have enormous implications for the system.
Bên cạnh các yếu tố ảnh hưởng của môi trường thời gian tìm kiếm cũng là một khía cạnh vơ cùng quan trọng cần thiết
xét đến đối với mỗi thuật toán. Các thuật tốn trước Viola-Jones như SVM, K-NN, Nạve Bayes, Random Forest, MLP
tìm kiếm dựa trên ngun lý trích xuất biên của khuôn mặt bằng cách xem xét từng điểm pixel của ảnh đầu vào. Dễ
dàng nhận thấy việc xem xét từng điểm ảnh tạo nên khối lượng tính tốn vô cùng lớn đặc biệt là đối với các ảnh đầu
vào có kích thước lớn trên 1000 x 1000 pixel. Khối lượng tính tốn lớn gây ra ảnh hưởng vơ cùng lớn đối với tốc độ
tìm kiếm nhận diện.
In addition to the influences of the research, the time environment is also an extremely important aspect needed for
each algorithm. Pre-Viola-Jones algorithms such as SVM, K-NN, Nave Bayes, Random Forest, MLP search are based
on the principle of extracting the edge of the face by looking at each pixel point of the input image. It is easy to see that
the examination of each pixel constitutes the computing volume, particularly for large input images of more than 1000
x 1000 pixels. The large volume of computation has a huge impact on the speed of the search for identity.
Để giảm thiểu tối đa sự ảnh hưởng của mơi trường đến kết quả của q trình nhận diện và gia tăng tốc độ thời gian tìm
kiếm năm 2001 Paul Viola và Michael Jones đã đề xuất một thuật toán mới kết hợp sử dụng các đặc trưng Haar với bộ
xếp loại phân tầng tạo thành thuật toán Viola-Jones [4] (Mehul K Dabhi1, 2015). Thuật toán Viola-Jones mở đầu cho
hướng tiếp cận mới đối với lĩnh vực tìm kiếm nhận diện khuôn mặt người. Phương pháp tiếp cận xử lý tìm kiếm với
từng vùng ảnh thay vì xem xét đến từng điểm ảnh như các thuật toán trước đó. Dựa trên cách tiếp cận mới tốc độ tìm
kiếm của thuật toán gia tăng rất nhiều lần so với thuật tốn trước. Độ chính xác của phương pháp trong tìm kiếm lên tới
95% [6] (Arwa M. Basbrain1, 2017). Nghiên cứu khai thác các tính năng vượt trội của phương pháp ứng dụng xây
dựng, cải thiện tính chính xác hệ thống tìm kiếm và nhận diện khn mặt trong thời gian thực .
To minimize the impact of the environment on the results of the identification process and speed up the search time in
2001 Paul Viola and Michael Jones proposed a new algorithm that combined the use of Haar characteristics with the
stratified ratings that form the Viola-Jones algorithm [6]. The Viola-Jones algorithm opens the way for a new approach
to human facial recognition search. The search processing approach with each image area instead of looking at each
pixel as previous algorithms. Based on the new approach, the search speed of the algorithm increased a lot compared
to the previous one. The accuracy of the method in search is up to 95% [7]. The study harnesses the outstanding features

of the built-in application method, improving search system accuracy and facial recognition in real-time.


2. Methodology
2.1. Viola-Jones Algorithm
Phương pháp kết hợp sử dụng đặc trưng Haar – Like và bộ phân loại mạnh của thuật toán Adabosst tạo thành bộ lọc
Haar – Like Cascade có cấu trúc phân tầng như Hình 2. Bộ lọc tiếp c ận xử lý bằng một ô cửa sổ quét. Khi quét vùng
ảnh, bộ lọc Haar-Cascade sẽ dựng lên các hàng rào cản ℎ𝑖 rồi tiến hành lọc vùng ảnh. Thuật toán sẽ sử dụng một đặc
trưng Haar phù hợp để vượt qua một rào cản ℎ𝑖 . Nếu một ℎ𝑖 trong bộ lọc không thỏa mãn ô cửa sổ sẽ dừng lọc và dịch
chuyển sang vùng ảnh kế tiếp. Ngược lại nếu vượt qua tất cả các rào cản ℎ𝑖 vùng ảnh tại ô của sổ quét sẽ là vùng ảnh
thuộc khn mặt. Số lần qt tồn bộ bức ảnh đầu vào theo hai chiều (x,y) [8] (Wang, 2014). Số lần quét xấp xỉ 10000
lần cho một bức ảnh.
The combined method using Haar - Like features and strong classifiers of the Adabosst algorithm forms a Haar - Like
Cascade filter with a hierarchical structure as shown in Figure 2. The approach filter is processed by a scanning
window. When scanning the image area, the Haar-Cascade filter will erect barriers h_i and then filter the image area.
The algorithm will use a suitable Haar feature to overcome a barrier ℎ𝑖 . If a hi in the filter does not satisfy the
windowpane, the filter stops and moves to the next image area. Conversely, if all barriers are overcome, the image area
in the box of the scan window will be the image area of the face. Several scans of the entire input image in two
dimensions (x,y) [8]. The number of scans is approximately 10000 times per image.
Để vượt qua rào cản thuật toán sử dụng đặc trưng Haar – Like, mỗi đặc trưng tương ứng với một rào cản ℎ𝑖 . Các đặc
trưng Haar-Like là sự kết hợp của hai hoặc ba hình chữ nhật đen trắng được chia thành bốn tập đặc trưng cơ bản như
Hình 1 9 (Vikram K, 2017), gồm đặc trưng đường, đặc trưng cạnh, đăc trưng xung quanh tâm và đặc trưng đường chéo.
To overcome the algorithmic barrier using the Haar-Like feature, each feature corresponds to a barrier ℎ𝑖 . Haar-Like
features are combinations of two or three black-and-white rectangles divided into four basic feature sets as shown in
Figure 1 [9], including line features, edge features, center around features, and diagonal features.

a, Tập đặc trưng đường

b, Tập đặc trưng cạnh


c,Tập đặc trung
xung quanh tâm
Hình 1: Các tập đặc trưng cơ bản [10] (LU Wen-Yao, 2019)

d, Đặc trưng
đường chéo

Kích thước cơ bản của cửa sổ ban đầu là được coi là 24 x 24 để xác định hoặc đánh giá các tính năng trong hình ảnh đã
cho. Các thơng s ố khác nhau như vị trí, loại và tỷ lệ của các đối tượng địa lý Haar nếu được xem xét, sau đó tính tốn
1.60.000 tính năng nên được thực hiện, đó là thực tế là khơng thể. Các tính năng tốt nhất trong số 1.60.000 tính năng
này có được tìm thấy bằng cách sử dụng kỹ thuật Adaboost, một thuật toán cho máy học. Ada boost xác định một bộ
phân loại mạnh có thể là sự kết hợp tuyến tính của các bộ phân loại yếu . F (x) = α1F1 (x) + α2F (x) +… .. [9] (Vikram
K, 2017).
The basic window size was originally considered to be 24x24 to determine or evaluate the characteristics in the given
image. The various parameters like position, type, and scale of the Haar features are considered, then the calculation
of 1,60,000 features should be done which is impossible practically. The best features among these 1,60,000 features
have been found using the Adaboost algorithm technique which is an algorithm for machine learning. These could be
weak classifiers. Ada boost determines a powerful grader that can be the linear combination of these weak graders.
F(x) = α1F1(x) + α2F(x) + …..
Phương Pháp tìm kiếm được áp dụng cho ảnh Bitmap, kích thước ảnh khơng nhỏ hơn 24 x 24 pixel. Dựa trên các
ngun lý tìm kiếm của thuật tốn Viola-Jones, nghiên cứu áp dụng phương pháp xử lý bài toán tìm kiếm khn mặt
trong thời gian thực và nhận diện trong thời gian thực.
The search method is applied to bitmap images, the image size is a minimum of 24 x 24 pixels. Based on the ViolaJones algorithm's research principles, the study applies the method to address the problem of real-time facial research
and real-time recognition.


Hình 2: Sơ đồ Cascade Classifire [11] (Alpika Gupta, 2015)
2.2. Face detection
Nghiên cứu giải quyết bài tốn tìm kiếm mặt người theo mơ tả bởi sơ đồ thuật tốn Hình 3. Sơ đồ thuật tốn ứng dụng
tìm kiếm trong cả hai trường hợp đầu vào là ảnh và trong thời gian thực. Trong q trình tìm kiếm khn mặt, ảnh đầu

vào trước khi được đẩy vào bộ lọc Haar-Like sẽ trải qua tiền xử lý gồm thay đổi kích thước ảnh và chuyển ảnh sang
màu xám.
The study solves the problem of human facial research as described by the algorithm diagram in Figure 3. The
algorithm diagram of the search application in both seizure cases is a picture and in real-time. During the facial search,
the entry photo before being pushed into the Haar-Like filter will be preprocessed including resizing the image and
converting the image to gray.

Hình 3: Sơ đồ thuật tốn tìm kiếm khn mặt trong ảnh
Theo như mơ phỏng của nhóm nghiên c ứu đối với một bức ảnh chứa nhiều người và có những vùng khn mặt khơng
rõ thơng tin độ tương phản với nền ảnh thấp thì bước tiền xử lý đóng vai trị vơ cùng quan trọng, ảnh hưởng lớn đến kết
quả tìm kiếm thu được của thuật tốn. Đối với ảnh đầu vào có kích thước nhỏ hoặc kích thước vùng ảnh chứa khn
mặt nhỏ dưới 24 x 24 pixel độ chính xác kết quả của quá trình tìm kiếm bị giảm mạnh, xảy ra lỗi nhận diện. Để tránh
sai sót ưu tiên đưa kích thước vùng khuôn mặt lên trên 60 x 60 pixel. Đây là kích thước tối thiểu mà các sai sót bắt đầu
đạt ngưỡng tối thiểu. Ảnh sau khi thay đổi kích thước sẽ được chuyển sang mức xám rồi đẩy vào bộ lọc Haar – Like
Cascade. Đối với ảnh đầu vào là ảnh xám độ chính xác của kết quả đầu ra đạt lớn nhất. Kết thúc quá trình tìm kiếm
vùng ảnh chứa khuôn mặt sẽ được phân tách và khoanh vùng. Đầu vào của thuật tốn có thể là ảnh thơng thường hoặc
ảnh trong thời gian thực.


According to the team's simulation of a photo that contains many people and has unknown facial areas that contrast
with the low background, the preprocessing step plays a very important role, greatly affecting the search results
obtained by the algorithm. For small input images or image area sizes containing faces less than 24 x 24 pixels the
accuracy of the results of the search is drastically reduced, an identification error occurs. To avoid errors, the priority
is to increase the surface size above 60 x 60 pixels. This is the minimum size at which the errors begin to reach the
minimum threshold. The image after resizing will be moved to gray and then pushed into the Haar - Like Cascade filter.
For the input image is the gray image the accuracy of the output achieves the greatest. At the end of the search for the
image area containing the face will be separated and zoned. The input of the algorithm can be a regular photo or a
photo in real-time.
Đối với xử lý trong thời gian thực, nghiên cứu sử dụng webcam độ phân giải 1280 x 720 để thu ảnh trong thời gian
thực sau đó đẩy vào thuật tốn tiến hành tìm kiếm, phân tách vùng ảnh.

For real-time processing, the analysis uses a webcam that has a resolution of 1280 x 720 to capture real-time images
and then pushes through the algorithm that performs the searches, separating the image area.
2.3. Face Recognition System
Q trình nhận diện khn mặt trong thời gian thực phân thành ba cơng đoạn chính như sơ đồ Hình 4 bao gồm tạo và
đào tạ o bộ dữ liệu, tiền xử lý ảnh đầu vào trong thời gian thực và cuối cùng là nhận diện đối tượng có trong ảnh đầu
vào.
The recognition process in the time implementation is divided into three main stages as shown in Figure 4, including
the creation and training of the dataset, the input of the preprocessed image into the time execution, and finally the
print recognition object. the first image.

Hình 4: Quá trình nhận diện
2.2.1. Setting Data
Cơng đoạn đầu tiên xây dựng hệ thống nhận diện khuôn mặt là tạo và đào tạo bộ dữ liệu cứa các đối tượng cần nhận
diện trong thời gian thực. Bộ dữ liệu gồm 100 ảnh xám ứng với một đối tượng cần nhận diện.
The first step in building the facial recognition system is to create and form a data set of objects that have to be
recognized in real-time. The data set consists of 100 grey images corresponding to a target object.
Thông qua việc sử dụng phần mềm Xampp và webcam nhóm nghiên c ứu xây dựng thuật toán tạo bộ dữ liệu đầu vào
cho hệ thống nhận diện.Ảnh đầu vào thu nhận trong thời gian thực bằng webcam sau khi lọc qua bộ lọc Haar-Like sẽ
chỉ giữ lại thành phần chính cần nhận diện của đối tượng là vùng ảnh chứa khuôn mặt. Khuôn mặt đã khoanh vùng
được trích xuất dưới dạng ảnh bitmap, định dạng ảnh jpg và thêm vào bộ cơ sở dữ liệu. Q trình lọc ảnh giúp giảm bớt
các thơng tin khơng c ần thiết có trong dữ liệu đầu vào chỉ dữ lại thơng tin chính ở đây là khn mặt của đối tượng để
thuận tiện cho quá trình đào tạo dữ liệu.


Using the XAMPP software and webcam, the search team creates an algorithm to create an input dataset for the
reconnaissance system. The input image is acquired in real-time via webcam after filtering through the Haar-Like filter.
keep only the primary recognition component of the object, which is the image area containing the face. The area faces
are extracted in the form of bitmaps, jpg pictures and added to the database. The image filtering process reduces the
amount of unnecessary information in the input data. Only the primary information here is the face of the object to
facilitate the data formation process.

Sau khi Tạo được bộ dữ liệu chứa khuôn mặt của các đối tượng cần nhận diện, hệ thống tiến hành đào tạo bộ dữ liệu
đầu vào. Kết thúc giai đoạn, hệ thống thu được thư viện nhận diện recognizer.yml. Quá trình được thể hiện thơng qua
sơ đồ thuật tốn Hình 5.
After creating a data set containing the faces of the objects to be recognized, the system conducts the formation of the
input data set. At the end of the stage, the system gets the library recognizer.yml. The process is illustrated using the
algorithm diagram from Figure 5.

Hình 5: Sơ đồ giai đoạn tạo và đào tạo dữ liệu
2.2.2. Pre-Procesing
Hệ thống nhận diện thông qua webcam thu nhận ảnh đầu vào trong thời gian thực. Cần đảm bảo trong giai đoạn này
Webcam có thể bắt được hình ảnh tốt nhất khuôn mặt của đối tượng nhận diện.
The recognition system via webcam captures input images in real-time. It is necessary to ensure that in this stage the
Webcam can capture the best image of the face of the identified object.

Hình 6: Thu nhận ảnh và tiền xử lý
Ảnh đầu vào sẽ trải qua giai đoạn tiền xử lý bao gồm đọc ma trận điểm ảnh và chuyển ảnh sang mức xám trước khi
được đẩy vào công đoạn nhận diện khn mặt có trong bức ảnh. Tiền xử lý đưa ảnh đầu vào về điều kiện thuận lợi để
dễ dàng tiến hành lọc vùng khuôn mặt trong ảnh. Giai đoạn tiền xử lý không phải giai đoạn quan trọng nhất trong cả


q trình nhận diện ảnh, tuy nhiên nếu khơng có giai đoạn tiền xử lý, hệ thống sẽ không thể tiến hành trích xuất vùng
ảnh chứa khn mặt đưa ra đối chiếu nhận diện với thư viện recognizer.
The input image will go through a pre-processing stage including reading the pixel matrix and converting the image
to gray level before being pushed into the face recognition process in the image. Pre-processing provides the input
image under favorable conditions to easily filter the facial area of the image. The pre-processing stage is not the most
important in the whole image recognition process, but without the pre-processing stage, the system will not be able to
proceed to extract the image area containing the face for recognition comparison interface with the recognizer library.
2.2.3. Face Recognition
Đến với công đoạn cuối cùng của hệ thống nhận diện khuôn mặt trong thời giai thực là nhận diện và gắn thẻ tên tương
ứng của đối tượng.

Cơng đoạn gồm ba q trình là trích xuất vùng ảnh chứa khn mặt, nhận diện khn mặt đã được trích xuất và lấy
thơng tin đối tượng trong ảnh gắn lên vùng khn mặt. Q trình thực hiện dựa trên sơ đồ Hình 7. Ảnh đầu vào trong
thời gian thực được lọc vùng ảnh chứa khuôn mặt bằng thuật toán Vioal-Jones. Vùng ảnh sau khi lọc được đưa ra so
sánh đối chiếu với thư viện dữ liệu do hệ thống đào tạo, khn mặt trích xuất trong thơi gian thực sau khi so sánh đối
chiếu với các đối tượng trong bộ dữ liệu chuẩn. N ếu khuôn mặt cần nhận diện có trong bộ dữ liệu tiêu chuẩn hệ thống
sẽ tiến hành trích xuất thơng tin c ủa đối tượng ở đây là tên của đối tượng đưa lên giao diện nhận diện của hệ thống.
The final phase of the face recognition system in real-time consists of identifying and labeling the corresponding name
of the object.
The three-step process involves extracting the image area containing the face, detecting the extracted face, and
obtaining the object information from the image attached to the face area. The process of implementation is based on
the diagram. The input image in real-time is filtered by the Viola-Jones algorithm. The image area after filtering is
compared with the data library trained by the system, the face is extracted in real-time after comparing with the objects
in the standard data set. If the face to be recognized is in the standard data set, the system will extract the object's
information here, which is the name of a human and put it on the system's recognition interface.

Hình 7: Sơ đồ quá trình nhận diện khn mặt
Thuật tốn Viola-Jones được ứng dụng trong cả hai cơng đoạn của q trình nhận diện là tạo-đào tạo bộ dữ liệu là nhận
diện khuôn mặt. Có thể thấy vai trị cốt yếu của thuật tốn trong tốn bộ hệ thống được xây dựng. Chính vì vậy, tính
chính xác và thời gian nhận diện của hệ thống được quyết định bởi thuật toán Viola-Jones.
The Viola-Jones algorithm is applied in both stages of the recognition process, training the dataset, which is face
recognition. It is possible to find that the essential role of the algorithm in all systems is built. Therefore, the accuracy
and recognition time of the system is determined by the Viola-Jones algorithm.


3. Result And Discussion
Các số liệu sau đây cho thấy kết quả phát hiện khuôn mặt bằng cách sử dụng thuật toán Viola Jones.
The following figures show the results of facial detection using the Viola-Jones algorithm
3.1. Ảnh hưởng của các thơng số nhận diện:
3.1. Effects of identification parameters:
Sau khi tìm hiểu và phân tích về thời gian thực hiện việc phát hiện khuôn mặt, nghiên cứu đi đến các trường hợp cụ thể

khi phát hiện khuôn mặt với các điều kiện khác nhau. Độ chính xác của phát hiện khn mặt được xem là cải thiện hơn
khi thu được bằng cách tối đa hóa số lượng ảnh mà được sử dụng làm tham chiếu phù hợp với khuôn mặt và hình ảnh
khn mặt thử nghiệm có cùng điều kiện. Ngồi ra tại thời điể m nhận dạng khuôn mặt được thực hiện bằng webcam
khơng nên có q nhiều nhiễu. Các ứng dụng được xây dựng ở nghiên cứu có thể phát hiện được ngay cả khi khuôn
mặt của đối tượng có thay đổi so với dữ liệu đầu vào cụ thể như khi sử dụng kính mắt, điều kiện ánh sáng mờ, ánh sáng
kém. Bảng 1 dưới đây cho ta cái nhìn trực quan và bao quát về phạm vi hoạt động của việc phát hiện khuôn mặt bằng
phương pháp Viola-Jones.
Following the study and analysis, the time necessary to detect the size, the study focuses on specific cases when detecting
faces with different conditions. The accuracy of facial detection is seen as better when obtained by maximizing the
number of photos that are used as matching references to faces and test face images with the same conditions. Also
during facial recognition carried out by webcam should not be too much noise. The applications integrated into the
study were detectable even when the subject's face changed from specific input data, such as when using glasses, low
light conditions, poor lighting. Table 1 below provides an intuitively comprehensive overview of the scope of facial
detection using the Viola-Jones method.
Xét góc nghiêng λ, thuật tốn có thể phát hiện khn mặt với các góc nghiêng khác nhau, khi khn mặt thẳng góc và
khi quay mặt đi một góc xác định nào đó, việc phát hiện khn mặt là hồn tồn có thể thực hiện được. Khi khn mặt
thẳng góc với camera, độ chính xác của thuật tốn gần như tuyệt đối khoảng 99% với tốc độ phát hiện ra khn mặt
nhanh chóng chỉ với 0.2 giây. Khi quay mặt đi một góc q lớn khiến cho khn mặt khơng đầy đủ thông tin, khuôn
mặt không được phát hiện ra nữa (Bảng 1). Tại góc quay là 45°, nhiễu xuất hiện nhiều, việc phát hiện khn mặt khơng
cịn đạt độ chính xác như khi thẳng góc nữa.
Considering the tilt angle λ, the algorithm can detect faces with different tilt angles, when the face is perpendicular and
when the face is turned to a certain angle, face detection is completely possible. . When the face is perpendicular to the
camera, the precision of the algorithm is nearly 99% with a rapid face detection speed of only 0.2 seconds. When the
face is rotated at an excessive angle, making the face incomplete, the face is no longer detected (Table 1). At a 45°
angle, noise appears heavily, face detection is not as accurate as in a straight line.
Xét về độ tối B, khuôn mặt của đối tượng được phát hiện ngay cả trong trường hợp thiếu sáng như khi chỉ có một nguồn
sáng là cửa sổ chiếu ngang mặt, và khi kéo rèm c ửa tạo một ánh sáng rất yếu. Như vậy, thuật toán phát hiện vẫn hoạt
động được trong điều kiện ánh sáng không tốt.
In terms of B-darkness, the subject's face is detected even in low-light cases such as when only one light source is a
window that hits across the face, and when pulling the curtains creates a very weak light. This means that the detection

algorithm always works under poor lighting conditions.
Xét về kích thước thực của vùng ảnh chứa khuôn mặt s, vùng ảnh chứa khn mặt có thể được phát hiện khi kích thước
khơng nhỏ hơn biên 24 x 24 pixel. Các sai sót quả q trình tìm kiếm đạt ngưỡng tối thiểu khi kích thước các vùng ảnh
chứa khn mặt đạt trên 60 x 60 pixel. Trong quá trình tìm hiến ưu tiên đưa kích thước ảnh đầu vào thỏa mãn ngưỡng
kích thước 60 x 60 pixel cho vùng ảnh chứa khn mặt để kết quả tìm kiếm đạt tốt nhât.
In terms of the actual size of the image area containing the face s, the image area containing the face can be detected
when the size is not less than the margin of 24 x 24 pixels. Lookup errors reach the burning threshold when the size of
the image areas containing the face exceeds 60 x 60 pixels. During the search, priority is given to bringing the input
image size to meet the size threshold of 60 x 60 pixels in the image area containing the face to achieve the best search
results.


Xét về vùng bị khuất C, khn mặt có thể được phát hiện ngay cả khi bị che khuất miễn là đường viền giống như đường
viền khuôn mặt. V ới C<50%, thuật tốn vẫn thực hiện chính xác, tuy nhiên nếu C quá lớn, cụ thể C lớn hơn khoảng
50%, khuôn mặt đối tượng bị che khuất quá nhiều, dẫn đến tình trạng khơng phát hiện được.
Concerning the area of obscuration C, the face can be detected even when it is obscured as long as the contour
resembles the contour of the face. With C<50%, the algorithm is always accurate, but if C is too large, specifically C
is approximately 50% larger, the subject's face is too obscure, leading to the undetectable state.
Mắt đóng một vai trị quan trọng để phát hiện mặt trước và mặt vì nó làm giảm khn mặt phát hiện dương tính giả.
Mặt khác, thiết kế được đề xuất tiêu thụ ít thời gian hơn và phát hiện mắt chính xác như trong Bảng 1. Khi lộ nửa mặt
phía trên chứa mắt, thuật tốn có thể phát hiện ra khn mặt cịn cũng với nửa mặt bên dưới khi khơng có mắt, việc
phát hiện khn mặt xảy ra sai sót và khơng phát hiện được.
The eye plays an important role in detecting the front and face as it reduces the face that detects false positives.
Furthermore, the proposed design consumes less time and provides accurate eye detection, as shown in Table 1. When
exposing the upper half of the face containing the eye, the algorithm can detect the face and also the lower half of the
face when there are no eyes, the detection of the face occurs flawed and undetectable.
Bảng 1: Các trường hợp phát hiện khn mặt
Tiêu chuẩn
Góc nghiêng, λ


Hình

Kết quả
Tìm thấy

Tiêu chuẩn
Vùng bị khuất, C

Mất

Độ sáng tối, B

Tìm thấy

Hình

Kết quả
Tìm thấy

Mất

Kích thước thực
vùng ảnh khn mặt,
s

Tìm thấy

Ảnh hưởng của góc nghiêng camera:
Influence of camera angle:
Thời gian thực hiện thuật tốn: Hình 8 và Hình 9 cho thấy thời gian thực hiện thuật tốn để phát hiện khn mặt. Chúng

ta có thể dễ dàng thấy được là dù khi camera chính diện hay quay góc đều thu được kết quả rằng thời gian thực hiện
việc phát hiện khuôn mặt rất nhanh chưa tới 0.2s. Trong đó có sự khác biệt rõ rệt về các góc quay với nhau, đứng đầu
về tốc độ phát hiện khn mặt đó là trường hợp với camera chính diện với thời gian trung bình là khoảng 0.08s, theo
sau nó là camera nghiêng góc 30° và lâu nhất là camera nghiêng góc 45° thực hiện thuật toán mất khoảng 0.16s, tương
ứng với thời gian phát hiện tăng lên 100%. Bên cạnh đó đơi khi vẫn xảy ra sự thay đổi về thứ tự tốc độ phát hiện như
trong lần thứ 2 thực hiện, thời gian của camera nghiêng góc 30° lại ngắn nhất, đến camera chính diện và camera nghiêng
góc 45°. Bảng 2 thống kê cụ thể số lượng khuôn mặt phát hiện đúng và phát hiện sai theo từng trường hợp của góc
camera.
Execution time of the algorithm: Figures 8 and 9 show the time necessary to run a face detection algorithm. It is simple
to see that if the camera faces or rotates the corner, the result is that the time to make the facial detection is less than
0.2 seconds. There are marked differences in angles of rotation with each other, topping the speed of facial detection
that is the case with the front camera with an average time of about 0.08s, followed by a 30° angle tilt camera and the
longest being the 45° angle tilt camera that performs the algorithm takes about 0.16s, corresponding to the detection
time increased by 100%. Besides, sometimes there is a change in the order of detection speed as in the second time, the
time of the camera tilting the angle of 30° is the shortest, to the front camera and the camera tilts the angle of 45°.
Table 2 indicates the number of sides that detect the camera angle on a case-by-case
Độ chính xác thuật tốn với góc camera khác nhau: Kết thúc quá trình tìm kiếm trong thời gian thực, ảnh thu về được
chia thành hai loại ảnh đúng và sai như Hình 10. sau đó tiến hành thống kê số lượng ảnh đúng ảnh sai minh họa bởi
Bảng 2 và Hình 11.


Algorithm accuracy with different camera angles: At the end of the search in real-time, the resulting image is divided
into two types of right and wrong photos such as Figure 10 then conducts statistics on the number of correct photos
illustrated by Table 2 and Figure 11.

Hình 8: Thời gian tìm kiếm khn mặt trong thời gian thực

Hình 9: Thời gian trung bình tìm kiếm khn mặt

Mẫu ảnh


Đúng/Sai
Đúng

Giải thích tính đúng sai
-

Ảnh tìm kiếm có chứa đầy đủ khn mặt
Khơng bị mất hay thiếu một phần của
khn mặt

-

Ảnh tìm kiếm sai do khơng chứa đầy đủ
khn mặt cần tìm
Mất một hay nhiều phần củ khn mặt

Sai
-

Hình 10: Mẫu ảnh đúng ảnh sai


Bảng 2: Thống Kê Số Lượng Khuôn Mặt Đúng Sai Theo Góc Camera
STT
1
2
3

ẢNH


PHÁT HIỆN KHN MẶT
Ảnh đúng
Ảnh sai
Tổng
497
3
500
399
101
500
383
117
500
Độ Chính Xác Trung Bình = 85.3%

Cammera Chính Diện
Camera Nghiêng 30o
Camera Nghiêng 45o

ĐỘ CHÍNH XÁC
99.4%
79.8%
76.6%

Hình 11: Độ chính xác khi thay theo góc camera
Độ chính xác của phát hiện khn mặt là tỷ số của tổng số ảnh mà khuôn mặt được phát hiện chính xác so với tồn bộ
ảnh thu được (bao gồm cả ảnh phát hiện sai). Từ việc kiểm tra các hình ảnh của khn mặt, bằng phương pháp viola
jones, số lượng hình ảnh mà đã phát hiện thành cơng khuôn mặt chiếm tỷ lệ lên tới 99% khi mặt và camera chính diện
nhau như trên Bảng 2. Một trong những nguyên nhân khiến không phát hiện khuôn mặt là ánh sáng trong ảnh quá tối

nên thông tin của khuôn mặt khi phát hiện khơng chính xác. Ngồi lý do là ánh sáng quá tối thì độ phân tán của ánh
sáng cũng ảnh hưởng rất lớn đến kết quả phát hiện khn mặt. Sự chênh lệch về độ chính xác của việc phát hiện khn
mặt theo các góc camera khác nhau được thể hiện một cách rõ nét qua Hình 11. với ba biểu đồ ứng với ba trường hợp
của góc camera lần lượt là chính diện, nghiêng góc 30, nghiêng góc 45.
Facial detection accuracy is the ratio between the total number of images detected and the entire resulting image
(including the incorrect detection photo). From examining the images of the face, by the viola jones method, the number
of images that have successfully detected the face accounts for up to 99% when the face and camera face each other as
in Table 2. One reason the face is not detected is that the light in the photo is too dark so the information from the face
when it is detected is incorrect. Apart from the reason that the light is too dark, light scattering also significantly affects
the results of facial detection. The difference in the accuracy of detecting faces at different camera angles is clearly
shown in Shape 8 with three charts corresponding to the three cases of the camera angle, respectively, the face, tilting
angle 30, tilting angle 45.
Ảnh hưởng điều kiện ánh sáng khác nhau:
Different light conditions
Điều kiện ánh sáng được xét đến là khi ánh sáng tốt nhưng phân tán và điều kiện trái ngược là ánh sáng kém và tập
trung vào đối tượng.
The lighting condition is considered when the light is good but dispersed and the opposite condition is poor light and
focuses on the object.
Khi đo thời gian trong hai điều kiện của ánh sáng, ở cả ba trường hợp ứng với ba góc camera, Hình 13 chỉ ra rằng
trường hợp ánh sáng tốt và phân tán có thời gian thực hiện thuật tốn dài kéo dài hơn. Đó là về thời gian thực hiện thuật
toán, một kết quả trái ngược được thể hiện rõ khi tính tốn độ chính xác của việc phát hiện khn mặt như trong Hình
12. Thời gian thực hiện trong điều kiện ánh sáng tốt và phân tán kéo dài hơn nhưng cho một kết quả chính xác hơn rất
nhiều so với điều kiện ánh sáng kém và tập trung.
When measuring time in two conditions of light, in all three cases corresponding to the three camera angles, Figure 13
indicates that where good light and dispersion have a longer algorithm execution time. It is about the time of
implementation of the algorithm, a contrarian result that is clearly shown when calculating the accuracy of the detection


of the face as in Figure 12. The duration of implementation in good lighting and dispersion conditions lasts longer but
gives a much more accurate result than poor lighting and focused conditions.


Hình 12: Độ chính xác phát hiện khn mặt trong hai điều kiện ánh sáng

Hình 13:Thời gian trung bình tìm kiếm
Như vậy, điều kiện ánh sáng tốt và phân tán có độ chính xác cao sẽ được ứng dụng với các cơng việc u cầu việc chính
xác và ánh sáng tốt có thể bố trí dễ dàng như trong việc điểm danh học sinh, chấm công bằng nhận diện khuôn mặt…
Cịn với cơng việc u cầu thời gian ngắn, thực hiện thuật tốn nhanh chóng mà khơng u cầu q cao về độ chính
xác, phát hiện khn mặt trong điều kiện ánh sáng kém và tập trung là một sự lựa chọn tốt.
In this way, good lighting and high-precision dispersion conditions will be applied to jobs that require precision and
good lighting that can be arranged quickly as in student identification, the punctuation of facial recognition. For a
quick job, the rapid execution of algorithms without too much precision, the detection of faces in poor lighting
conditions, and the development is a good choice.


Xét trong trường hợp ảnh có nhiều người
Bảng 3 cho thấy kết quả mơ phỏng đầu tiên với ảnh nhóm gồm nhiều khn mặt. Chúng ta có thể quan sát thấy rằng có
một số lượng lớn các khn mặt được phát hiện chính xác trong kết quả thu được từ thuật tốn Viola Jones. Do đó, tỉ
lệ chính xác là tương đối cao. Khi tăng kích thước hình ảnh lên, lượng khuôn mặt phát hiện cũng tăng nhưng đồng thời
số lượng tín hiệu dương tính giả cũng tăng theo và cũng tốn nhiều thời gian để thực hiện thuật toán hơn. Trong tất c ả
các trường hợp, tỉ lệ phát hiện chính xác cũng đều trên 75%. Với S là kích thước của ảnh, thay đổi S với các giá trị khác
nhau và tăng lên.
Table 3 presents the first simulation result with a multifaceted group image. One can observe that there are a large
number of faces that are detected properly in the results obtained from the algorithm of Viola-Jones. As a result, there
is a relatively high level of accuracy. As the image size increases, the number of faces detected also increases, but at
the same time, the number of false-positive signals increases and also takes longer to implement the algorithm. In all
instances, the accuracy rate was above 75%. If S corresponds to the size of the picture, change S to different values
and increase.

S= 720 x 540 pixel
S= 1000x750 pixel

S= 2000x1500 pixel
Hình 14: Kết quả phát hiện khn mặt trên ảnh có nhiều người
Bảng 3: Phát hiện khuôn mặt trong bức ảnh có nhiều khn mặt
True Positives (TP):
False Positives (FP):
False Negatives (FN):
Precision (P):
Simulation time (t):

S= 720 x 540
18
1
6
75,0%
0.56785s

S= 1000x750
20
5
4
83,3%
0.32108s

S= 2000x1500
23
9
1
95,6%
1.08874s


Như vậy, sau khi qua công đoạn tiền xử lý cơ bản nhất là thay đổi kích thước hình ảnh, độ chính xác của thuật toán đã
tăng lên rõ rệt từ 75% lên tới 95%, và vẫn cịn một số khn mặt khơng đầy đủ dù có tăng kích thước hình ảnh như nào
thì vẫn khơng thể phát hiện được.
Thus, after the most basic preprocessing stage of changing the image size, the accuracy of the algorithm has increased
markedly from 75% to 95%, and there are still some incomplete faces no matter how the image size is increased.
Ngồi cơng đoạn tiền xử lý là thay đổi kích thước hình ảnh, các phương án tiền xử lý khác cũng có thể cải thiện độ
chính xác như xóa phơng nền, chỉnh sửa độ tương phản, tăng độ rõ nét của ảnh, chỉnh độ sáng của hình ảnh… Công
đoạn tiền xử lý không phải là bước quan trọng nhất của thuật tốn nhưng nó góp phần rất lớn trong việc cải thiện độ
chính xác, tăng số khn mặt phát hiện đúng.
In addition to the pre-processing stage of changing the image size, other preprocessing options can also improve
accuracy such as removing the background, editing contrast, increasing the clarity of the image, adjusting the
brightness of the image ... Preprocessing is not the most important step of the algorithm but it contributes greatly to
improving accuracy, increasing the number of correctly detected faces.


3.2. Khả năng nhận diện đối tượng
Ngoài những kết quả của phát hiện khuôn mặt, việc nhận dạng khuôn mặt cũng được nghiên cứu và mô phỏng và thu
được kết quả như Hình 16. Dễ thấy, khi nhận diện chính diện sự chính xác rất cao, khơng bị nhiễu, cả trong trường hợp
có kính hoặc khơng có kính.
In addition to facial detection results, facial recognition is also investigated and simulated, and results are obtained
such as Figure 16. Remarkably, when the face is very precise, there is no interference, both in the case of glass and
without glass.
Với dữ liệu đầu vào là đối tượng được phát hiện đang đeo kính và khuôn mặt không biểu cảm đặc biệt nào, kết quả của
nhận diện khn mặt thu được vấn chính xác ngay cả khi đeo kính, buộc tóc (Hình 16b,c), bỏ kính và thả tóc (Hình
16a) hay là đang làm các biểu cảm khác (Hình 16d,e). Dựa trên thực nghiệm mơ phỏng, kết quả thu được chỉ ra rằng
góc 45 là biên của q trình tìm kiếm và cũng chính là biên của nhận diện khi ứng dụng bởi thuật toán viola-jones (Hình
16f,g,h).
With input data that was found to be wearing glasses and a face with no distinctive expressions, the results of facial
recognition were accurate even when wearing glasses, tying hair (Figure 16b,c), removing glasses, and releasing hair
(Figure 16a) or doing other expressions (Figure 16d, e). Based on simulation experiments, the results indicate that

angle 45 is the margin of the search process and is also the margin of identification when applied by the viola-jones
algorithm (Figure 16f,g,h).
Nhìn chung, trong các trường hợp nhỏ xét đến như ở Hình 16 gồm 8 trường hợp bng tóc, khơng bng tóc, đeo kính,
bỏ kính và biểu c ảm khác dữ liệu ban đầu, số trường hợp mà chức năng nhận diện đối tượng thực hiện đúng chiếm 7/8
trưởng hợp. Chỉ có trường hợp khi góc nghiêng quá lớn, không phát hiện được khuôn mặt tức là độ chính xác 87,5%.
Tuy nhiên lại xuất hiện tình trạng dương tính giả ở Hình 16g.
In general, in small cases considered as in Figure 16, there are 8 cases of hair letting go, not letting go of hair, wearing
glasses, removing glasses and other expressions of the original data, the number of cases where the function of
identifying the object correctly accounts for 7/8 of the case. It is only when the inflation is too large that the face is not
detected, that is, with an accuracy of 87.5%. However, Figure 16g contains false positives.

Hình 15: Dữ liệu


Hình 16: Khả năng nhận diện đối tượng

4. Conclusion
Bài nghiên cứu đã trình bày chi tiết, cụ thể về việc phát hiện khuôn mặt và nhận diện khuôn mặt người bằng việc sử dụng thuật toán
Viola-jones và xây dựng được chương trình thử nghiệm để đánh giá kết quả của thuật toán, từ thực nghiệm bài báo thu được một số
kết quả cũng như đánh giá về tính chính xác của thuật toán.
The paper detailed, specific about the detection of faces and human facial recognition using the Viola-jones algorithm and developed
an experimental program to evaluate the results of the algorithm, from experimental paper obtained some results as well as an
assessment of the accuracy of the algorithm.














Các kết quả đạt được cho thấy độ chính xác của thuật tốn tương đối cao khoảng trên 95% phát hiện đúng, thời gian thực
hiện thuật tốn nhanh chóng. Thuật tốn Viola Jone đã cải thiện được thời gian tìm kiếm cũng như độ chính xác và góc
biên khn mặt so với các phương pháp trước đây.
Phát hiện khuôn mặt vẫn thu được kết quả chính xác với tốc độ tương đối khi thay đổi các điều kiện ngoại cảnh cụ thể
hơn về góc nghiêng, độ tương phản,…
Về chức năng nhận diện đối tượng cũng đạt được độ chính xác tốt với dữ liệu đầu vào không quá lớn và tốc độ nhanh cụ
thể hơn về góc nghiêng, các biểu cảm khác của khn mặt và đeo kính hay bỏ kính,…
Tuy nhiên, thuật tốn vẫn tồn đọng một số nhược điểm như với điều kiện ánh sáng khơng phù hợp, chất lượng và kích
thước hình ảnh không tốt… dẫn đến việc phát hiện khuôn mặt khơng chính xác.
Nhằm cải thiện khả năng hoạt động của chương trình và thuật tốn, một số hướng đi mới cho bài nghiên cứu này
như:Tích hợp Viola-jone với các thuật toán khác chằng hạn PCA, ANN, CNN cho hệ thống nhận diện gia tăng độ chính
xác. Bổ sung thêm các tính năng và cơng đoạn tiền xử lý ảnh để thu được kết quả chính xác hơn.
The results showed that the accuracy of the algorithm is relatively high about 95% of the correct detection, the time of
implementation of the algorithm is fast. The Viola Jone algorithm has improved search time as well as accuracy and
angle of the face compared to previous methods.
Facial detection always achieves precise results at a relative rate by changing more specific external conditions in terms
of tilt angle, contrast,...
In terms of object recognition function also achieves good accuracy with not too large input data and faster speeds more
specific in terms of angle of tilt, other facial expressions, and wearing glasses or removing glasses,...
However, the algorithm still has some disadvantages such as inappropriate lighting conditions, poor image quality, and
size... This leads to incorrectly detected facial.
To improve the performance of programs and algorithms, some new directions for this study such as Integrating Violajones with other algorithms such as PCA, ANN, CNN for an enhanced identification system. Add functionality and
preprocessing to get more precise results.



References
1.
2.

Sujata G. Bhele1 and V. H. Mankar2: A Review Paper on Face Recognition Techniques. Volume 1, Issue 8, October 2012.
Shahrin Azuan Nazeer and Marzuki Khalid Telekom Research & Development Sdn. Bhd : PCA-ANN Face Recognition System
based on Photometric Normalization Techniques, 2009.
Saad AL-ZAWI: Understanding of a Convolutional Neural Network. Saad ALBAWI, Tareq Abed MOHAMMED, 2017.
Brian S. Everitt & David C. Howel John Wiley & Sons, Ltd, Chichester: Principal Component Analysis, 2005.
Narayan T. Deshpande, Dr. S. Ravishankar: Detection and Recognition using Viola-Jones algorithm and Fusion of PCA and
ANN, 2017.
Mehul K Dabhi1, Bhavna K Pancholi: Face Detection System Based on Viola-Jones Algorithm 2015.
Arwa M. Basbrain1,2(&), John Q. Gan1, and Adrian Clark1: Accuracy Enhancement of the Viola-Jones Algorithm for Thermal
Face DetectionGan1, and Adrian Clark1, 2017., 2017.
Yi-Qing Wang: An Analysis of the Viola-Jones Face Detection Algorithm, 2014.
Vikram K, Dr.S.Padmavathi: FACIAL PARTS DETECTION USING VIOLA-JONES ALGORITHM, 2017.
LU Wen-Yao, YANG Ming: Face Detection Based on Viola-Jones Algorithm Applying Composite Features, 2019.

3.
4.
5.
6.
7.
8.
9.
10.
11.

Alpika Gupta, 2Dr. Rajdev Tiwari: Face Detection Using Modified Viola-Jones Algorithm, 2015.


Bibliography
Alpika Gupta, 2. R. (2015). Face Detection Using Modified Viola-Jones Algorithm.
Arwa M. Basbrain1, 2. ,. (2017). Accuracy Enhancement of the Viola-Jones Algorithm for Thermal Face Detection.
Brian S. Everitt & David C. Howel John Wiley & Sons, L. C. (2005). Principal Component Analysis.
LU Wen-Yao, Y. M. (2019). Face Detection Based on Viola-Jones Algorithm Applying Composite Features.
Mankar2, S. G. (2012). A Review Paper on Face Recognition Techniques.
Mehul K Dabhi1, B. K. (2015). Face Detection System Based on Viola-Jones Algorithm.
Narayan T. Deshpande, D. S. (2017). Face Detection and Recognition using Viola-Jones algorithm and Fusion of PCA and ANN.
Saad ALBAWI, T. A.-Z. ( 2017). Understanding of a Convolutional Neural Network.
Shahrin Azuan Nazeer and Marzuki Khalid Telekom Research & Development Sdn. Bhd., U. T. (2009). PCA-ANN Face Recognition
System based on Photometric Normalization Techniques.
Vikram K, D. (2017). FACIAL PARTS DETECTION USING VIOLA-JONES ALGORITHM.
Wang, Y.-Q. (2014). An Analysis of the Viola-Jones Face Detection Algorithm.

Đánh giá đóng góp thành viên trong nhóm:
BẢNG ĐÁNH GIÁ KẾT QUẢ THÀNH VIÊN NHÓM
STT
1
2
3

Họ và tên
Nguyễn Thị Phương
Anh
Lê Thu Thủy
Trịnh Đình Triển
Tổng

MSSV

20183683

Phần trăm cơng việc
33.3%

Chữ Ký
Anh

20185411
20181790

33.3%
33.3%
100%

Thủy
Triển


APPENDIX A
SOFT WARE

Hình 17: Xmapp

Hình 18: Python

APPENDIX B
(FACE DETECTION)
FACE DETECTION IN REAL-TIME
import cv2

import numpy as np
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_fron
talface_default.xml')
cap = cv2.VideoCapture(0)
print(cap)
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray)
for(x,y,w,h) in faces:
cv2.rectangle(frame, (x,y), (x+w,y+h), (0,255,0), 2)
cv2.imshow("Face detected",frame)
print("ok1")
if cv2.waitKey(1) & 0xFF == ord('q'):
#

print("ok")
break
cap.release()
cv2.destroyAllWindows()
FACE DETECTION IN IMAGE
from PIL import Image


import cv2
import time
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_fron
talface_default.xml')
image = cv2.imread('image')
image = resize(image, (2000, 750))

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray)
for (x, y, w, h) in faces:
cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2)
cv2.imshow("Face detected", image)
cv2.imwrite("newimage.jpg", image)

APPENDIX C
(FACE RECOGNITION SYSTEM)
SETTING DATA
import cv2
import numpy as np
import pymysql
import os

connection = pymysql.connect(host="localhost", user="root", passwd="", datab
ase="face_detected")
cursor = connection.cursor()
def insert(id, name):
# queries for inserting values

insert1 = "INSERT INTO people(ID, NAME) VALUES('" +str(id) + "','" + str(
name) + "');"
#executing the quires

cursor.execute(insert1)

#commiting the connection then closing it.

connection.commit()

connection.close()
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_fron
talface_default.xml')
cap = cv2.VideoCapture(0)
#insert to db


id = input("Enter your ID: ")
name = input("Enter your Name: ")
insert(id,name)
sampleNum = 0;
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray)
for(x,y,w,h) in faces:
cv2.rectangle(frame, (x,y), (x+w,y+h), (0,255,0), 2)
if not os.path.exists('dataset'):
os.mkdir('dataset')
sampleNum += 1
cv2.imwrite('dataset/image_.' + str(id) + "." + str(sampleNum)+'.jpg',
gray[y:y+h, x:x+w])
cv2.imshow('frame', frame)
cv2.waitKey(10)
if sampleNum > 100:
break;
cap.release()
cv2.destroyAllWindows()
TRAINING DATA
import cv2

import numpy as np
import os
# import PIL as Image
import PIL.Image
recognizer = cv2.face.LBPHFaceRecognizer_create()
# print(recognizer)
path = 'dataset'
def getImageWithId(path):
#

#

imagePaths = [os.path.join(path, f) for f in os.listdir(path)]
print(imagePaths)
faces = []
IDs = []
for imagePath in imagePaths:
faceImg = PIL.Image.open(imagePath).convert('L')
faceNp = np.array(faceImg, 'uint8')
print(faceNp)
Id = int(imagePath.split('.')[1])
faces.append(faceNp)
IDs.append(Id)
cv2.imshow("Training",faceNp)
cv2.waitKey(10)


return faces, IDs
faces, Ids = getImageWithId(path)
recognizer.train(faces,np.array(Ids))

if not os.path.exists('recognizer'):
os.mkdir('recognizer')
recognizer.save("recognizer/trainingData.yml")
cv2.destroyAllWindows()
FACE RECOGNITION
import cv2
import numpy as np
import os
import pymysql
import PIL.Image
face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_fron
talface_default.xml')
recognizer = cv2.face.LBPHFaceRecognizer_create()
recognizer.read('recognizer/trainingData.yml')
def getProfile(id):
connection = pymysql.connect(host="localhost", user="root", passwd="", dat
abase="face_detected")
#
if connection:
#

#

print("ok")
cursor = connection.cursor()
query = "SELECT * FROM people WHERE ID=" + str(id)
print(query)
cursor.execute(query)
profile = None
for row in cursor:

profile = row

connection.commit()
connection.close()
return profile
print(getProfile("2"))
cap = cv2.VideoCapture(0)
fontface = cv2.FONT_HERSHEY_SIMPLEX
while(True):
ret, frame = cap.read()
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
faces = face_cascade.detectMultiScale(gray)
for(x,y,w,h) in faces:


cv2.rectangle(frame, (x,y), (x+w,y+h), (0,255,0), 2)
roi_gray = gray[y:y+h, x: x+w]
id,confidence = recognizer.predict(roi_gray)
print(id,confidence)
profile = getProfile(id)
#

print(profile)
print("" + str(profile[1]))
if profile!=None :
cv2.putText(frame,""+ str(profile[1]),(x+10,y+h+30),fontface,1,(0,

255,0),2)
else:
cv2.putText(frame,"Unknow",(x+10,y+h+30),fontface,1,(0,0,255),2)

cv2.imshow('Image',frame)
if(cv2.waitKey(1) == ord('q')):
break;
cap.release()
cv2.destroyAllWindows()

APPENDIX RESULT
Bảng 4: Thời gian tìm kiếm khn mặt

THỜI GIAN CHẠY THUẬT TỐN TRONG CÁC TRƯỜNG HỢP
Góc camera

Lần 1

Lần 2

Lần 3

Lần 4

Lần 5

camera chính diện

0.061015165

0.073738132

0.066802301


0.073353848

0.070431626

camera nghiêng 30⁰

0.085695829

0.072070611

0.088803732

0.103405595

0.084216974

camera nghiêng 45⁰

0.133344102

0.147578654

0.195470603

0.139560621

0.156345234

Bảng 5: Thời gian tìm kiếm tại các góc camera


THỜI GIAN CHẠY THUẬT TOÁN TRONG TRƯỜNG HỢP ÁNH SÁNG PHÂN TÁN
Ánh sáng phân tán

Lần 1

Lần 2

Lần 3

Lần 4

Lần 5

camera chính diện

0.061015165

0.073738132

0.066802301

0.073353848

0.070431626

camera nghiêng 30⁰

0.085695829

0.072070611


0.088803732

0.103405595

0.084216974

camera nghiêng 45⁰

0.133344102

0.147578654

0.195470603

0.139560621

0.156345234

Bảng 6: Thời gian tìm kiếm trong các điều kiện ánh sáng

THỜI GIAN CHẠY THUẬT TỐN TRUNG BÌNH TRONG CÁC TRƯỜNG HỢP
Điều kiện ánh sáng

Ánh sáng tốt, Phân Tán
Ánh Sáng kém, Tập trung

camera chính diện
0.08315454
0.049728284


camera nghiêng 30o
0.08686855
0.065197715

camera nghiêng 45o
0.154459843
0.076088318


Bảng 7: Số ảnh đúng sai trong các trường hợp góc camera

THỐNG KÊ ẢNH ĐÚNG ẢNH SAI
Camerachính diện
Số ảnh đúng
Số ảnh sai
Tổng ảnh

Camera nghiêng 30

Camera nghieng 45

497

399

383

3


101

117

500

500

500

Hình 19: Kích thước vùng ảnh chứa khn mặt nhỏ nhất mà thuật tốn tìm kiếm được

Hình 20: Góc camera chính diện


×