1. Trang chủ
  2. » Luận Văn - Báo Cáo

Face mask detection report

29 3 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Nhận Diện Người Đeo Khẩu Trang
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh Trường Đại Học Bách Khoa
Chuyên ngành Điện – Điện Tử
Thể loại Báo cáo luận văn tốt nghiệp
Thành phố Thành Phố Hồ Chí Minh
Định dạng
Số trang 29
Dung lượng 759,94 KB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

1 BÁO CÁO LUẬN VĂN TỐT NGHIỆP NHẬN DIỆN NGƯỜI ĐEO KHẨU TRANG DÙNG RASPBERRY PI 3 B+ ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN VIỄN THÔNG o0o 2 Lời cảm ơn 3 MỤ.

Trang 1

BÁO CÁO LUẬN VĂN TỐT NGHIỆP

NHẬN DIỆN NGƯỜI ĐEO KHẨU TRANG DÙNG RASPBERRY PI 3 B+

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC BÁCH KHOA

KHOA ĐIỆN – ĐIỆN TỬ

BỘ MÔN VIỄN THÔNG

-o0o -

Trang 2

Lời cảm ơn

Trang 3

MỤC LỤC

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI NHẬN DIỆN NGƯỜI ĐEO KHẨU TRANG 6

1.1 Tính cấp thiết của đề tài 6

1.2 Đối tượng và phạm vi nghiên cứu 7

1.2.1 Đối tượng 7

1.2.2 Phạm vi nghiên cứu 7

1.3 Nhiệm vụ của đề tài 8

CHƯƠNG 2 LÝ THUYẾT VỀ DEEP LEARNING 9

2.1 Lớp tích chập thông thường 9

2.2 Lớp tích chập Depthwise Seperable 10

2.3 Mô hình mạng Mobilenet 12

2.3.1 Mạng MobileNet v1 12

2.3.2 Mạng MobileNet v2 14

2.4 Mô hình SSD 14

CHƯƠNG 3 THIẾT LẬP VÀ KẾT NỐI RASPBEERY PI 3 17

3.1 Giới thiệu về Raspberry Pi 3 model B+ 20

3.2 RPI Camera Error! Bookmark not defined 3.3 Thiết lập RPI và RPI camera 21

CHƯƠNG 4 XÂY DỰNG HỆ THỐNG NHẬN DIỆN NGƯỜI ĐEO KHẨU TRANG TRÊN RASPBERRY PI 3 24

4.1 Sơ đồ khối của hệ thống 24

4.1.1 Quy trình thực thi của hệ thống 24

4.1.2 Quy trình xây dựng hệ thống 25

4.2 Huấn luyện mô hình nhận diện người đeo khẩu trang 26

4.2.1 Chuẩn bị dữ liệu Error! Bookmark not defined 4.2.2 Cài đặt thông số huấn luyện Error! Bookmark not defined 4.3 Lựa chọn mô hình phát hiện gương mặt Error! Bookmark not defined 4.4 Nhúng mô hình đã huấn luyện lên Raspberry Pi 3 27

CHƯƠNG 5 KẾT QUẢ THỰC HIỆN VÀ ĐÁNH GIÁ MÔ HÌNH 28

5.1 Kết quả thực nghiệm của hệ thống 28

5.2 Ưu điểm, nhược điểm của hệ thống 28

Trang 4

CHƯƠNG 6 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 28 Tài liệu tham khảo 29

Danh sách hình vẽ

Hình 2.2 Ảnh ngõ ra khi thực hiện tích chập thông thường 10 Hình 2.3 Ảnh ngõ ra khi thực hiện tích chập depthwise 10 Hình 2.4 Thực hiện tích chập pointwise, biến đổi ảnh thành 1 channel

Trang 5

Danh mục viết tắt

CNN Convolutional Neural Network Mạng nơ ron tích chập

SSD Single Shot MultiBox Detector Mô hình nhận diện

IoU Intersection of Union Tỷ lệ giao nhau giữa 2 khung

hình

Trang 6

CHƯƠNG 1 GIỚI THIỆU ĐỀ TÀI NHẬN DIỆN NGƯỜI ĐEO KHẨU TRANG

Chương 1 nhằm mục đích giới thiệu đề tài Chương này giới thiệu tính câp thiết của đề tài, mục tiêu, nhiệm vụ và đối tượng nghiên cứu của đề tài này

1.1 Tính cấp thiết của đề tài

Virus Corona mới năm 2019 (còn gọi là Covid-19) là chủng virus hô hấp mới, chưa từng xuất hiện ở người và có nguồn gốc xuất phát ở Vũ Hán Theo số liệu ngày 29/8/2020 của Wikipedia, tại Việt Nam có 1040 ca nhiễm, trong đó có 676 người đã bình phục và 32

ca tử vong Vius này được đánh giá là nguy hiểm và có nguy cơ lây nhiễm cao Việc phòng chống lây lan trong cộng đồng đóng vai trò quan trọng Theo khuyến cáo của Bộ Y tế, mang khẩu trang là một trong những biện pháp phòng chống lây lan virus Corona Theo

đó, nếu như người mang virus và người chưa mang virus đều không mang khẩu trang, nguy

cơ lây nhiễm rất cao Tuy nhiên, nếu cả hai người khẩu trang, nguy cơ lây nhiễm là rất thấp (Như hình 1.1)

Hình 1.1 Tầm quan trọng của việc đeo khẩu trang [1]

Trang 7

Việt Nam là một nước có khí hậu nhiệt đới, nhiệt độ thường ở mức cao (khoảng 25°-35°) Việc đeo khẩu trang thường gây nóng hoặc khó chịu dẫn đến nhiều người không

có ý thức tự đeo khẩu trang khi ở nơi công cộng Hiện nay ở nhiều tỉnh thành đã thực hiện việc phạt tiền từ 100.000-300.000 đồng đối với những người không đeo khẩu trang nơi công cộng (công viên, đường phố, phương tiện công cộng ) Tuy nhiên ở những nơi như công sở, trường học, việc kiểm soát còn gặp nhiều khó khăn do thiếu nhân lực, thiếu độ chính xác hoặc việc thực hiện đeo khẩu trang một cách đối phó

Trí tuệ nhân tạo, cụ thể là Computer Vision hiện nay trở nên ngày càng phổ biến Thay vì sử dụng việc giám sát bằng sức người, các hệ thống máy học có độ chính xác cao

và tiết kiệm hơn Convolutional Neural Network (CNN) là một trong những mô hình Deep Learning tiên tiến được sử dụng rộng rãi trong bài toán nhận diện, phân lớp Trên tinh thần nghiên cứu, phát triển ứng dụng sử dụng máy học kết hợp với nhu cầu thực tiễn, đề tài sử dụng mô hình cải tiến của mạng CNN để nhận diện người có đeo khẩu trang hay không

Đề tài góp phần nâng cao ý thức của cộng đồng, đồng thời đẩy lùi dịch bệnh

1.2 Đối tượng và phạm vi nghiên cứu

1.2.1 Đối tượng

Đề tài nghiên cứu cấu trúc và hoạt động của CNN, mô hình MobileNet, mạng SSD ứng dụng mô hình MobileNet vào bài toán nhận dạng người đeo khẩu trang Tìm hiểu cách kết nối và thực thi mô hình trên Raspberry Pi 3 Model B+, sử dụng Raspberry Pi trong bài toán nhận diện người đeo khẩu trang

1.2.2 Phạm vi nghiên cứu

Đề tài nghiên cứu thiết kế một hệ thống nhận diện người đeo khẩu trang bằng camera được xử lý bằng Raspberry Pi Việc nhận diện tập trung vào phân biệt người xuất hiện trong vùng quan sát của camera có đeo khẩu trang hay không

Trang 8

1.3 Nhiệm vụ của đề tài

Các công việc cần thực hiện trong đề tài là :

- Tìm hiểu về Deep Learning, các thuật toán liên quan đến CNN trong bài toán nhận dạng vật thể

- Tìm hiểu và sử dụng Raspberry trong bài toán nhận dạng

- Thiết kế một hệ thống nhận dạng người đeo khẩu trang

- Đánh giá mô hình, ưu nhược điểm của mô hình

- Đưa ra các phương pháp cải tiến và kết luận

Trang 9

CHƯƠNG 2 LÝ THUYẾT VỀ DEEP LEARNING

Chương 2 trình bày một số lý thuyết về deep learning được sử dụng trong đề tài Phần 2.1, 2.2 trình bày về các loại tích chập thông thường và tích chập depthwise separable Phần 2.3 trình bày mô hình mạng mobileNet và phần 2.4 giới thiệu về mô hình SSD

2.1 Lớp tích chập thông thường

Đây là phép tính quan trọng trong CNN Ta thực hiện phép tích chập bằng cách trượt kernel/filter theo kiểu dữ liệu đầu vào Tại mỗi vị trí, ta tiến hành phép nhân ma trận

và tính tổng để đưa vào feature map Feature map này chính là một ma trận 3 chiều, trong

đó bao gồm những con số (parameter)

Tại lớp tích chập, các thông số được sử dụng bao gồm:

- Stride (S) : Số pixel bạn dịch chuyển ở mỗi lần trượt

- Padding (P) :Tăng thêm một số hàng và cột ( thường có giá trị bằng 0) để tránh

việc giảm kích thước ở output cũng như để lấy thông tin ở các pixel ngoài cùng Có

2 loại padding là “valid” tức là padding = 0 và “same” tức là padding để kích thước ngõ ra bằng kích thước ngõ vào

- filters (nc) : Số filter được sử dụng ở mỗi layers

- f : kích thước của mỗi filter là f *f

Hình 2.1 Các thông số của conv layers

Giả sử ảnh đầu vào có kích thước 12x12x3, khi thực hiện 1 phép tích chập có cửa

số 5x5 lên ảnh đó với padding = 0 và stride = 1 Nếu chỉ xét trên chiều dài và rộng của ảnh thì quá trình chập là (12x12) → (5x5) → (8x8) Cửa sổ lướt qua toàn bộ ảnh, mối lần thực hiện 25 phép nhân và trả về 1 điểm ảnh Vì padding =0 nên ngõ ra là (8x8) Tuy nhiên, ảnh đầu vào có 3 chiều, do đó thay vì thực hiện 25 phép nhân, ta phải thực hiện 75 phép nhân cho mỗi lần kernel dịch chuyển Giả sử ta sử dụng 256 kernel, vậy ngõ ra sẽ là 8x8x256

Trang 10

Để tạo ra được ngõ ra này, ta phải thực hiện 256x5x5x8x8x 3= 1,228,800 phép nhân Đây

là một con số vô cùng lớn, do đó mạng nơ ron thông thường không thể sử dụng trong các

mô hình nhúng [2]

Hình 2.2 Ảnh ngõ ra khi thực hiện tích chập thông thường Nguồn Viblo

Hình 2.2 mô tả quá trình thực hiện tích chập thông thường Phần tiếp theo chúng ta

sẽ hiểu rõ hơn sự tối ưu của mạng nơ ron sử dụng tích chập Depthwise Seperable thay vì

sử dụng tích chập thông thường

2.2 Lớp tích chập Depthwise Seperable

Thực hiện phép chập depthwise Seperable tức là thực hiện lần lượt phép chập Depthwise và phép chập pointwise Ta thực hiện ví dụ tương tự như mục 3.1 với ảnh đầu vào có kích thước 12x12x3 Đầu tiên, thực hiện chập depthwise bằng cách sử dụng 3 kernel 5x5x1 Ở đây, mỗi kernel sẽ thực hiện phép chập với mỗi channel của ảnh đầu vào, cho ra output 8x8x1, gộp các kết quả lại, chúng ta thu được ảnh đầu ra 8x8x3.[2]

Trang 11

Hình 2.3 Ảnh ngõ ra khi thực hiện tích chập depthwise Nguồn Viblo

Để thu được ngõ ra có chiều 8x8x256 như ví dụ ở phần 2.1, tiếp theo cần tăng số lượng channel lên là 256 Đây là nhiệm vụ của tích chập pointwise, nó được đặt tên như vậy vì

nó sử dụng các kernel 1x1 để thực hiện phép chập với từng điểm dữ liệu kernel sẽ có số lượng bằng số lượng channels của ảnh đầu vào với mục đích thu được 1 channel của ảnh đầu ra Ở ví dụ này, kernel sẽ là 1x1x3, sau khi chập ouput sẽ là 8x8x1 như hình 2.4

Hình 2.4 Thực hiện tích chập pointwise, biến đổi ảnh thành 1 channel

Trang 12

Tiếp theo tạo ra 256 kernel 1x1x3, ta sẽ được ảnh đầu ra là 8x8x256 như hình 2.5

Hình 2.5 Sử dụng tích chập pointwise với 256 kernels, ngõ ra là ảnh với 256 kernel Như vậy, sau khi thực hiện 2 phép chập với cùng một ngõ vào và ngõ ra, ta so sánh

số phép nhân cần thực hiện để thấy được đặc điểm nổi bật của tích chập depthwise separable so với tích chập thông thường Đối với tích chập thông thường, thực hiện chập

256 kernel 5x5x3 trên 8x8 điểm của ảnh đầu vào, nghĩa là thực hiện 256x3x5x5x8x8 = 1,228,800 phép nhân Đối với tích chập depthwise separable, khi thực hiện phép chập depthwise, sử dụng 3 kernels 5x5x1, kernel dịch chuyển 8 x8 lần, nghĩa là thực hiện 3x5x5x8x8 = 4,800 phép nhân Khi thực hiện chập pointwise, chúng ta có 256 kernel 1x1x3 dịch chuyển 8x8 lần, tức là 256x1x1x3x8x8= 49,152 phép nhân Tổng cộng cả 2 giai đoạn

là 53,952 phép nhân Số 53,953 nhỏ hơn 1,228,800 rất nhiều, do đó mô hình mạng sẽ nhẹ hơn và khả năng thực hiện nhanh hơn rất nhiều lần so với các phép nhân convolution thông thường

2.3 Mô hình mạng Mobilenet

2.3.1 Mạng MobileNet v1

Ở mô hình mạng MobileNet v1, ta sử dụng các lớp tích chập depthwise Seperable, một tích chập tối ưu hơn so với tích chập thông thường như đã trình bày ở phần 2.2 Ở mô hinh này, lớp tích chập depthwise sử dụng những filter đơn lẻ cho từng kênh ngõ vào (input channel) Lớp tích chập pointwise sử dụng tích chập 1x1 để kết hợp các ngõ ra của lớp tích

Trang 13

chập depthwise Lớp tích chập thông thường thực hiện cả việc lọc và kết hợp input trong một lần Lớp tích chập depthwise separable chia nó ra làm 2 giai đoan, một giai đoạn riêng cho việc lọc và một giai đoạn riêng cho việc kết hợp Điều này đã giúp mang lại hiệu quả lớn trong việc giảm số lượng tính toán và kích thước mô hình [3]

Ngoài ra, cấu trúc mạng này còn sử dụng một hàm kích hoạt là RELU 6, hàm này tương tự như hàm RELU, tuy nhiên giúp loại bỏ việc hàm kích hoạt có giá trị ban đầu quá lớn Công thức tổng quát là y= min (max(0,x), 6)

Hình 2.6 Đồ thị biểu diễn hàm RELU6

Hình 2.7 Cấu trúc mạng MobileNet v1

Trang 14

2.3.2 Mạng MobileNet v2

Mạng MobileNet v2 sử dụng các cấu trúc của mạng Mobile Net v1 như depthwise Separable, Relu6 đồng thời sử dụng thêm một số kỹ thuật như lớp dư ngược (inverted Residual) và tuyến tính “cổ chai” ( linear bottleneck) như sơ đồ 2.8

Hình 2.8 Cấu trúc mạng Mobile Net V2 Tiền đề của lớp dư ngược là các feature map có thể được mã hóa trong không gian con có chiều thấp và các kích hoạt phi tuyến dẫn đến mất thông tin dù chúng có khả năng làm tăng độ phức tạp khi thưc hiện Các nguyên tắc này đã dẫn đến hướng thiết kế mới 2.4 Mô hình SSD (Single Shot MultiBox Detector)

Cũng giống như các kiến trúc nhận diện vật thể khác, đầu vào của SSD là tọa độ bounding box của vật thể và nhãn của vật thể chứa trong bounding box Điểm giúp cải thiện tốc độ của SSD model là mô hình sử dụng một mạng neural duy nhất Cách tiếp cận của nó dựa trên việc nhận diện vật thể trong các feature map có độ phân giải khác nhau

Mô hình sẽ tạo ra một lưới các ô vuông gọi là grid cells trên các feature map, mỗi ô được gọi là một cell và từ tâm của mỗi cell xác điịnh một tập hợp các boxes mặc định (default

Trang 15

boxes) để dự đoán khung hình có khả năng bao quanh vật thể Tại thời điểm dự báo, mạng neural sẽ trả về 2 giá trị đó là : Phân phối xác suất nhãn và bounding box về đúng với các giá trị ground truth input của mô hình ( gồm nhãn và offsets bounding box)

Mô hình kết hợp nhiều các feature map với những độ phân giải khác nhau giúp phát hiện được những vật thể đa dạng kích thước và hình dạng Trong mô hình SSD, tất cả quá trình phát hiện vật thể và phân loại vật thể được thực hiện trong cùng một mạng Tóm gọn lại, mô hình SSD sẽ kết hợp 2 bước:

- Trích xuất các feature map từ mạng CNN

- Áp dụng convolutional filters ( hoặc kernel filters) để phát hiện vật thể trên các feaature map có độ phân giải (revolution) khác nhau

Một số định nghĩa:

- Scale: Tỷ lệ chiều dài (h) và chiều rộng (w) của khung hình gốc Scale sẽ kết hợp

với aspect ratio để nhận được các khung hình có tỉ lệ cạnh w/ h khác nhau

- Aspect ratio : Tỷ lệ cạnh, được đo bằng tỷ lệ w/h để xác định hình dạng tương đối

của khung hình bao chứa vật thể

- bounding box: khung hình bao chứa vật thể được xác định qua quá trình huấn luyện

- ground truth box : Khung hình được xác định trước từ bộ dữ liệu thông qua tọa độ

(cx, xy, w, h) giúp xác định vật thể

- IoU: Tỷ lệ Intersection of Union là tỷ lệ đo lường mức độ giao nhau giữa 2 khung

hình (thường là khung hình dự báo và khung hình ground truth) để nhằm xác định

2 khung hình overlap không Tỷ lệ này được tính dựa trên phần diện tích giao nhau gữa 2 khung hình với phần tổng diện tích giao nhau và không giao nhau giữa chúng

-

Trang 16

Hình 2.9 Mô tả IoU

- Positive matching prediction: Khung dự báo (predict box) là vùng có vật thể là

đúng, được xác định dựa trên tỷ lệ IoU >0.5 giữa predict box với ground truth box

- Negative matching prediction : Khung được dự báo (predicted box) là vùng không

chứa vật thể là đúng, cũng được xác định dựa trên IoU < 0.5 giữa predicted box với ground truth box

Hình 2.10 Cách thức phân chia feature map để nhận diện hình ảnh với kích thước khác

nhau

SSD chỉ sử dụng duy nhất đầu vào là bức ảnh và các ground truth boxes ám chỉ vị trí bounding box các vật thể trong suốt quá trình huấn luyện Trong quá trình phát hiện vật thể, trên mỗi feature map, chúng ta đánh giá các tập hợp nhỏ gồm các default boxes tương ứng với các tỷ lệ cạnh khác nhau (aspect ratio) lên các feature map có kích thước (scales) khác nhau ( chẳng hạn kích thước 8x8 và 4x4 trong hình 2.10 (b) (c)) Đối với mỗi default

box ( các boxes nét đứt trong hình) ta cần dự báo một phân phối xác suất C= (c1, c2,… , cn)

tương ứng với các class C= C , C , … , C Tại thời điểm huấn luyện, đầu tiên chúng ta

Trang 17

cần match default boxes với ground truth boxes sao cho mức độ sai số đo lường được qua

localization loss là nhỏ nhất Sau đó ta sẽ tìm cách tối thiểu hóa sai số của nhãn dự báo

tương ứng với mỗi vật thể được phát hiện trong default boxes thông qua confidence loss

(thường là hàm softmax) Như vậy loss function của object detection sẽ khác với loss

function của các tác vụ image classification ở chỗ có thêm localization loss về sai số vị trí

của predicted boxes so với ground truth boxes

Hình 2.11 Cấu trúc mạng SSD SSD dựa trên tiến trình lan truyền thuận của một kiến trúc chuẩn (chẳng hạn

VGG16) để tạo ra một khối feature map output gồm 3 chiều ở giai đoạn đầu Giai đoạn sau

sẽ thêm những kiến trúc nhận diện vật thể như Extra Feature Layers trong sơ đồ hình 2.11

Các layer của mô hình SSD:

- Input Layer: Nhận input đầu vào là các bức ảnh có kích thước 300x300x3 đối với

kiến trúc SSD300

- Conv5_3 Layer: Chính là base network sử dụng kiến trúc VGG16 nhưng loại bỏ

một số layers fully connected ở cuối cùng Output của layer này là một feature map

có kích thước 38x38x512

- Conv4_3 Layer: Có thể coi như là 1 feature map có kích thước 38x38x512 Trên

feature map này sẽ áp dụng 2 biến đổi chính đó là:

Ngày đăng: 25/03/2023, 09:45

Nguồn tham khảo

Tài liệu tham khảo Loại Chi tiết
[1] TYT Phường Phú Trung ,(2020), “Tầm quan trọng của việc đeo khẩu trang” Sách, tạp chí
Tiêu đề: Tầm quan trọng của việc đeo khẩu trang
Tác giả: TYT Phường Phú Trung
Năm: 2020
[2] Nguyễn Văn Đạt, (20190, “ Separable Convolutions- Toward realtime object detection applications”, viblo Sách, tạp chí
Tiêu đề: Separable Convolutions- Toward realtime object detection applications
Tác giả: Nguyễn Văn Đạt
Nhà XB: viblo
Năm: 2019
[4]Vũ Hữu Tiệp,(2016), “Machine Learning cơ bản”, Nhà xuất bản khoa học và kỹ thuật Sách, tạp chí
Tiêu đề: Machine Learning cơ bản
Tác giả: Vũ Hữu Tiệp
Nhà XB: Nhà xuất bản khoa học và kỹ thuật
Năm: 2016
[5] Phan Đình Khánh (2019), “Model SSD trong Object Detection”, Khang’s blog Sách, tạp chí
Tiêu đề: Model SSD trong Object Detection
Tác giả: Phan Đình Khánh
Năm: 2019
[3] A. Howard, M. Zhu, B. Chen, D. Kalenichenko, W. Wang, T. Weyand, M Khác

TỪ KHÓA LIÊN QUAN

w