Professional Documents
Culture Documents
Hà Nội,2022
LỜI MỞ ĐẦU
Phát hiện khuôn mặt là một trong những lĩnh vực mới của xử lý ảnh. Và ngày nay
được sử dụng rộng rãi trong nhiều lĩnh vực của đời sống như nhận dạng trong lĩnh vực
thương mại, hay phát hiện trong lĩnh vực an ninh, hay trong xử lý video, hình ảnh.
Với sự phát triển không ngừng của khoa học và công nghệ, đặc biệt là với những
chiếc điện thoại thông minh (smarphone) ngày càng hiện đại và được sử dụng phổ
biến trong đời sống con người đã làm cho lượng thông tin thu được bằng hình ảnh
ngày càng tăng. Theo đó, lĩnh vực xử lý ảnh cũng được chú trọng phát triển, ứng dụng
rộng rãi trong đời sống xã hội hiện đại. Không chỉ dừng lại ở việc chỉnh sửa, tăng chất
lượng hình ảnh mà với công nghệ xử lý ảnh hiện nay chúng ta có thể giải quyết các
bài toán nhận dạng chữ viết, nhận dạng dấu vân tay, nhận dạng khuôn mặt... Một
trong những bài toán được nhiều người quan tâm nhất của lĩnh vực xử lý ảnh hiện nay
đó là nhận dạng khuôn mặt (Face Recognition).
Có rất nhiều ứng dụng trong bài toán nhận dạng khuôn mặt bên cạnh đó bài toán nhận
dạng đeo khẩu trang đang vô cùng hữu ích trong tình hình dịch bệnh hiện tại. Như
chúng ta đã biết, tình hình dịch bệnh vẫn đang tiếp diễn gây ảnh hưởng không nhỏ tới
đời sống của chúng ta, vì vậy việc phòng bệnh là rất cần thiết. Việc đeo khẩu trang nơi
công cộng đã góp phần hạn chế được sự lây lan của dịch bệnh Covid 19 trên toàn cầu.
Tuy nhiên không ít người không thực hiện việc đeo khẩu trang này. Do đó, bài toán
nhận dạng đeo khẩu trang tự động đóng vai trò quan trọng việc giám sát người dân
thực hiện đúng của Nhân chủ trương, chính sách của Nhà nước trong việc đeo khẩu
trang nơi công cộng.
Trong bài tập lớn này nhóm em đã thực hiện đề tài FACE MASK DETECTOR
(nhận diện khuôn mặt). Dưới sự hướng dẫn của thầy Võ Lê Cường, nhóm em đã hoàn
thành bài tập lớn, tuy nhiên trong quá trình thực hiện đề tài, nhóm em vẫn còn nhiều
sai sót và mong muốn nhận được sự góp ý của thầy để có thể thực hiện bài tập lớn tốt
hơn cũng như học hỏi được nhiều kiến thức hơn trong học phần Trí tuệ nhân tạo.
Chúng em xin chân thành cảm ơn!
MỤC LỤC
PHẦN 1: Tìm hiểu về Keras/Tensorflow và OpenCV.........................................7
I. Tìm hiểu về Keras/Tensorflow.................................................................7
1. Keras.........................................................................................................7
1.1 Tổng quan về Keras............................................................................7
1.2 Đặc trưng........................................................................................7
1.3 Lợi ích của Keras............................................................................7
2. Tensorflow............................................................................................8
2.1 Tổng quan...........................................................................................8
2.2 Ưu điểm...........................................................................................8
2.3 Kiến trúc Tensorflow......................................................................8
2.4 Thuật toán TensorFlow.......................................................................9
II. Tìm hiểu về Open Cv..............................................................................10
1. Opencv là gì?......................................................................................10
2. Ứng dụng thực tế của Open Cv..........................................................10
3. Những ngôn ngữ nên sử dụng để lập trình opencv hiệu quả..............10
III. Môi trường triển khai..........................................................................11
1. Giới thiệu về Google Colab................................................................11
2. Google Colab có ưu điểm:..................................................................11
3. Thao tác cơ bản trên Google Colab....................................................12
IV. Mạng MobilenetV2.............................................................................13
4.1 . Giới thiệu.......................................................................................13
4.2 . Mô hình kiến trúc mạng Mobile Net.............................................13
4.3 . Depthwise Separable Convolution................................................14
PHẦN 2: THỰC HIỆN ĐỀ TÀI.........................................................................16
1. Tổng quan về đề tài.................................................................................16
2. Thuật toán của chương trình...................................................................16
3. Thuật toán huấn luyện mô hình..............................................................17
4. Thuật toán phát hiện người đeo khẩu trang trong thời thực...................18
5. Kết quả....................................................................................................18
DANH MỤC HÌNH ẢNH
Hình 1.1: Tổng quan về Keras..............................................................................6
Hình 1.2: Khởi chạy Colab.................................................................................11
Hình 1.3: Một chương trình ví dụ.......................................................................12
Hình 1.4. Mô hình mạng MobileNet...................................................................13
Hình 1.5. Depthwise convolution........................................................................14
Hình 1.6. Pointwise Convolution........................................................................14
Hình 1.7. Convolution truyền thống (Trái), Depthwise separable convolution
với BN và ReLU (Phải).......................................................................................14
Hình 2.1. Cấu trúc chương trình........................................................................15
Hình 2.2. Thuật toán huấn luyện mô hình..........................................................16
Hình 2.3. Thuật toán phát hiện người đeo khẩu trang trong thời gian thực......17
PHÂN CÔNG CÔNG VIỆC
Pointwise Convolution là một kiểu tích chập sử dụng một nhân 1x1: một nhân lặp lại
qua từng điểm đơn lẻ. Kernel này có độ sâu bằng nhiều kênh mà hình ảnh đầu vào có.
Cấu trúc chương trình gồm 3 bước được thực hiện như sau:
• Tập dữ liệu phục vụ quá trình thử nghiệm cuối cùng - Testing set (chiếm
20%);
• Tập dữ liệu phục vụ quá trình huấn luyện (chiếm 80%), trong đó tập dữ liệu
huấn luyện này sẽ tiếp tục được chia thành 2 thành phần trai Training set
(chiếm 80% của tập huấn luyện) và Validation set (chiếm 20% của tập huấn
luyện) để kiểm thử độ chính xác của mô hình trong quá trình huấn luyện. Trong
quá trình thu thập dữ liệu, điều kiện về ánh sang của bức ảnh cũng làm ảnh
hưởng tới tọ mô hình sau này.
Bước 2: Sử dụng nguồn dữ liệu đã thu thập được ở bước 1 để huấn luyện mô
hình dựa trên mô hình mạng mobilenetv2
Bước 3: Phát hiện người đeo khẩu trang hay không. Bước này sẽ tiến hành so
sánh dữ liệu được trích xuất từ camera (sau khi đã được xử lý dữ liệu đầu vào)
với dữ liệu đã được huấn luyện để trích xuất kết quả
3. Thuật toán huấn luyện mô hình
Hình 2.3. Thuật toán phát hiện người đeo khẩu trang trong thời gian thực
Để phát hiện khuôn mặt, nhóm tác giả sử dụng thuật toán phát hiện khuôn mặt Viola-
Jones. Sau khi ảnh được cắt từ video, nó sẽ được định dạng lại kích thước giống với
kích thước của dữ liệu trong mô hình huấn luyện. Sau đó, ảnh này sẽ được chuyển đổi
thành những tham số có định danh giống mô hình mẫu. Khi đó các tham số sinh ra
được từ tập dữ liệu huấn luyện sẽ được sử dụng để thẩm định lại tính thích hợp của
mô hình trên tập dữ liệu của hình ảnh vừa được trích xuất. Dựa vào kết quả thu được
ta tiến hành hiển thị lên màn hình kết quả người dân có đeo khẩu trang hay không.
5. Kết quả
Tài liệu tham khảo
[1]https://www.researchgate.net/publication/
316184205_MobileNets_Efficient_Convolutional_Neural_Networks_for_Mobil
e_Vision_Applications
[2] https://viblo.asia/p/tim-hieu-ve-opencv-Do754NrXZM6
[3] https://www.simplilearn.com/keras-vs-tensorflow-vs-pytorch-article
[4] https://www.hindawi.com/journals/wcmc/2022/1536318/
[5] https://phamdinhkhanh.github.io/2020/09/19/MobileNet.html
[6] https://trituenhantao.io/lap-trinh/lam-quen-voi-google-colab/
[7] https://developers.google.com/vision/documentation/face-detection-concepts
[8] https://blog.roboflow.com/how-to-train-mobilenetv2-on-a-custom-dataset/
[9] https://www.mygreatlearning.com/blog/viola-jones-algorithm/
[10]https://paperswithcode.com/method/mobilenetv2#:~:text=MobileNetV2%20is
%20a%20convolutional%20neural,are%20between%20the%20bottleneck%20layers.
KẾT LUẬN
Trong báo cáo trên giới thiệu cơ bản Keras/Tensorflow ,Open Cv và quá trình
thực hiện đề tài Nhận diện khuôn mặt sử dụng ngôn ngữ Python cua nhóm.Qua quá
trình học tập và tìm hiểu, cùng với sự dẫn dắt nhiệt tình của thầy Võ Lê Cường nhóm
em đã hoàn thành Bài Tập Lớn theo đúng tiến độ đề ra và đạt được kết quả như mong
muốn. Sau Bài Tập Lớn này thì các thành viên đã hiểu rõ hơn về việc sử dụng ngôn
ngữ Python cũng như ứng dụng AI vào thực tế cuộc sống.Tuy đã cố gắng và nỗ lực để
hoàn thành đề tài nhưng do thời gian và kiến thức có hạn nên trong quá trình thực
hiện, chúng em không thể tránh khỏi sai sót và hạn chế. Vì vậy, chúng em kính mong
nhận được sự cảm thông, ý kiến đóng góp và sự giúp đỡ của thầy để đề tài của em
được hoàn thiện hơn.
Chúng em xin trân thành cảm ơn thầy!