You are on page 1of 8

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ THÔNG TIN 1


————————————————

Báo cáo Nhập Môn Công Nghệ Phần Mềm


Chủ đề: Phát hiện người đeo khẩu trang

Họ và tên sinh viên: Trương Như Đạt B19DCAT039


Nguyễn Hải Long B19DCAT115
Nguyễn Gia Huy B19DCAT087
Giảng viên giảng dạy: Đào Thị Thuý Quỳnh

Hà Nội, Ngày 30 tháng 5 năm 2022


Mục lục
1. Giới thiệu 1

2. Các thư viện cần thiết 1


2.1. Pytorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
2.2. Mạng neural Reset18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3. Các bước phát triển 3


3.1. Cấu trúc chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3.2. Thuật toán của chương trình . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
3.2.1. Thuật toán huấn luyện mô hình phát triển đeo khẩu trang . . . . . . . . . . . . . . . . 4

4. Các nguồn tài liệu tham khảo 7

1. Giới thiệu
• Kể từ khi ca bệnh đầu tiên được phát hiện tại thành phố Vũ Hán, Trung Quốc đến nay, đại dịch
COVID-19 đã lan rộng ra toàn cầu, gây ảnh hưởng nghiêm trọng đến tất cả lĩnh vực. Do vậy, WHO đã
khuyến nghị nhiều biện pháp góp phần ngăn ngừa sự lây lan của dịch bệnh, trong đó có biện pháp
đeo khẩu trang ở nơi công cộng. Đeo khẩu trang tại nơi công cộng trở thành điều bắt buộc ở nhiều
quốc gia Để kiểm soát việc đeo khẩu trang tại nơi công cộng (sân bay, bệnh viện,. . . ) hoặc nơi làm việc,
nhiều công ty, đơn vị quản lý đã sử dụng hệ thống phát hiện người đeo khẩu trang và người không
đeo để có biện pháp cảnh báo, nhắc nhở kịp thời. Ngoài ra việc kiểm soát này có thể sử dụng để truy
vết kịp thời nếu có ca bệnh liên quan. Hệ thống trên cần một công nghệ đáp ứng được hiệu suất tốt về
mặt thời gian và độ chính xác. Hệ thống sẽ phát hiện và cảnh báo nếu như bạn không đeo khẩu trang
ở nơi đông người.

2. Các thư viện cần thiết


2.1. Pytorch
[1] Pytorch là gì ?

• Pytorch chính là một framework hỗ trợ Deep Learning được phát triển bởi Facebook. (Bên cạnh
Amazon, Google hay Apple, Facebook được biết đến là đơn vị công nghệ đầu tư rất nhiều nguồn
lực cho việc phát triển trí tuệ nhân tạo).
• Phát triển Pytorch với mã nguồn mở Facebook đã tạo được một cộng đồng chia sẻ rất lớn. Với
nguồn tài nguyên rộng lớn trên cộng đồng này các vấn đề mà bạn đang mắc phải có thể đã có ai
đó giải quyết và được chia sẻ lên cộng đồng, hãy dành một chút thời gian để tìm kiếm.
• Việc nhiều người sử dụng Pytorch cũng như Tensorflow hay Keras để giải quyết các bài toán về
Deep Learning, đã làm chúng trở thành những framework phổ biến nhất hiện nay. Đặc biệt phải
kể đến lĩnh vực nghiên cứu, các nhà phát triển hay tác giả hầu như ưu tiên sử dụng Pytorch giúp
triển khai các bài toán của mình bởi Pytorch dễ dàng giúp chúng bạn debug và Visuallize cùng
với đó là cơ chế Dynamic Graphs cho phép giảm thời gian huấn luyện mô hình.

[2] Những lợi ích khi dùng Pytorch

• Tập hợp nhiều Pythonic trong tự nhiên.

1
• Có TouchScript được xem là một tập hợp con của Python. Tập hợp này giúp triển khai các ứng
dụng vào quy mô sản xuất từ đó mở rộng quy mô. Đồng thời khi nói đến việc xây dựng các
nguyên mẫu với tốc độ nhanh, sử dụng Pytorch được ưu tiên hơn so với Tensorflow vì nó nhẹ
hơn.
• ...

2.2. Mạng neural Reset18


[1] Kiến trúc mạng Resnet Cho nên giải pháp mà ResNet đưa ra là sử dụng kết nối "tắt" đồng nhất để
xuyên qua một hay nhiều lớp. Một khối như vậy được gọi là một Residual Block, như trong hình sau :

ResNet gần như tương tự với các mạng gồm có convolution, pooling, activation và fully-connected
layer. Ảnh bên trên hiển thị khối dư được sử dụng trong mạng. Xuất hiện một mũi tên cong xuất phát
từ đầu và kết thúc tại cuối khối dư. Hay nói cách khác là sẽ bổ sung Input X vào đầu ra của layer, hay
chính là phép cộng mà ta thấy trong hình minh họa, việc này sẽ chống lại việc đạo hàm bằng 0, do vẫn
còn cộng thêm X. Với H ( x ) là giá trị dự đoán, F ( x ) là giá trị thật (nhãn), chúng ta muốn H ( x ) bằng
hoặc xấp xỉ F ( x ). Việc F(x) có được từ x như sau: x → Weight1 → ReLU → Weight2
Giá trị H(x) có được bằng cách: F ( x ) + x → ReLU

[2] Các phiên bản

2
3. Các bước phát triển
3.1. Cấu trúc chương trình
[1] Thu thập dữ liệu: Bộ dữ liệu được sử dụng trong bài bao gồm 811 ảnh người đeo khẩu trang và 701
người không đeo khẩu trang

Huấn luyện mô Phát hiện người


Thu thập dữ liệu
hình mạng nơron đeo khẩu trang

[2] Sử dụng bộ dữ liệu đã được thu thập ở trên. Đưa vào huấn luyện mô hình mạng neural tích chập CNN
với cấu trúc mạng dựa trên Resnet18

[3] Phát hiện người đó có đeo khẩu trang hay không

3
3.2. Thuật toán của chương trình
3.2.1. Thuật toán huấn luyện mô hình phát triển đeo khẩu trang

Bắt đầu Xây dựng các lớp cho mô hình

Import các thư viện cần thiết Biên dịch mô hình

Tạo đường dẫn tới thư mục


Huấn luyện mô hình
dữ liệu và xác định thông số

Xử lý tiền dữ liệu Cho ra dự đoán

Xử lý dữ liệu Kết thúc

[1] Import các thư viện cần thiết

[2] Tiền xử lý dữ liệu

4
• Việc tiền xử lý dữ liệu nhằm đưa tất cả các ảnh về cùng kích thước, sau đó các ảnh này sẽ được
chuyển đổi để phục vụ cho quá trình xử lý ảnh ở bước sau. Cụ thể chúng ta cần tạo ta 1 class
Dataset và chuẩn hoá ảnh về dạng Tensor với size 224,224

• ...

[3] Xây dựng các lớp cho mô hình Trong bài này chúng ta sẽ implement lại mang reural Resnet18 và thay
lớp đầu ra cuối cùng theo mong muốn. Vì đầu ra của chúng ta sẽ là đeo khẩu trang hoặc không đeo
khẩu trang nên output sẽ là 2, bên cạnh đó chúng ta sẽ sử dụng CrossEntoryLoss và thuật toán tối ưu
tốt nhất hiện nay là Adam với learning rate là 10−3

5
[4] Kiểm tra

6
4. Các nguồn tài liệu tham khảo
• https://onetech.vn/blog/pytorch-la-gi-13470

• https://pyimagesearch.com/2018/02/26/face-detection-with-opencv-and-deep-learning/

5. Code colab
[1] File code colab

[2] Foler chứa ảnh test

[3] Folder dataset cho train

You might also like