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

(Đồ án tốt nghiệp) xây dựng hệ thống phát hiện xâm nhập và thông báo cho người sử dụng qua tin nhắn telegram bằng học sâu

59 19 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 đề Xây dựng hệ thống phát hiện xâm nhập và thông báo cho người sử dụng qua tin nhắn telegram bằng học sâu
Tác giả Đặng Ngọc Sơn
Người hướng dẫn ThS. Lê Thị Minh Châu
Trường học Đại học Sư phạm Kỹ thuật Thành phố Hồ Chí Minh
Chuyên ngành Công nghệ thông tin
Thể loại Đồ án tốt nghiệp
Năm xuất bản 2023
Thành phố Tp. Hồ Chí Minh
Định dạng
Số trang 59
Dung lượng 2,45 MB

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

Nội dung

Và cuối cùng em cũng xin được gửi lời cảm ơn đến những người người dùng đã gắn bó, những đàn anh, đàn chị đã chia sẻ kinh nghiệm và những kiến thức và nhất là trong thời gian thực hiện

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ

CHÍ MINH

ĐỒ ÁN TỐT NGHIỆP NGÀNH CÔNG NGHỆ THÔNG TIN

XÂY DỰNG HỆ THỐNG PHÁT HIỆN XÂM NHẬP VÀ THÔNG BÁO CHO NGƯỜI SỬ DỤNG QUA TIN

NHẮN TELEGRAM BẰNG HỌC SÂU

GVHD: ThS LÊ THỊ MINH CHÂU SVTH: ĐẶNG NGỌC SƠN

SKL009803

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM

KHOA CÔNG NGHỆ THÔNG TIN

KHOÁ LUẬN TỐT NGHIỆP KỸ SƯ KỸ THUẬT DỮ LIỆU

GIÁO VIÊN HƯỚNG DẪN ThS LÊ THỊ MINH CHÂU

KHOÁ 2018 – 2022

Trang 3

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA CÔNG NGHỆ THÔNG TIN

BỘ MÔN HỆ THỐNG THÔNG TIN

KHÓA LUẬN TỐT NGHIỆP

Xây dựng hệ thống phát hiện xâm nhập và thông báo cho người sử dụng qua tin nhắn

telegarm bằng học sâu.

SINH VIÊN THỰC HIỆN:

Đặng Ngọc Sơn: 18133046

GIÁO VIÊN HƯỚNG DẪN:

Thạc sĩ Lê Thị Minh Châu

Trang 4

KHOA CNTT Độc lập - Tự do - Hạnh phúc

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN

Họ và tên Sinh viên 1 : MSSV 1:

Họ và tên Sinh viên 2 : MSSV 2: Ngành: Kỹ thuật dữ liệu

2 Ưu điểm:

Trang 5

Tp Hồ Chí Minh, ngày tháng năm 2023

Giáo viên hướng dẫn (Ký & ghi rõ họ tên)

ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA CNTT Độc lập - Tự do - Hạnh phúc

PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN

Họ và tên Sinh viên 1 : MSSV 1:

Họ và tên Sinh viên 2 : MSSV 2: Ngành: Kỹ thuật dữ liệu

2 Ưu điểm:

Trang 6

Tp Hồ Chí Minh, ngày tháng năm 2023

Giáo viên phản biện (Ký & ghi rõ họ tên)

Trang 7

LỜI CẢM ƠN

Em xin chân thành cảm ơn quí thầy cô đã giúp đỡ em thực hiện đề tài này.

Đặc biệt cô Lê Thị Minh Châu đã tận tình hướng dẫn, giúp đỡ, chỉ bảo nhóm

trong suốt thời gian thực hiện tiểu luận chuyên ngành Đồng thời nhóm cũng xin trân trọng cảm ơn những tình cảm quí báu mà các thầy cô trong trường Đai Học

sư phạm kỹ thuật TPHCM đã truyền đạt cho nhóm, những kinh nghiệm, kỹ thuật và cách thức trong việc xây dựng đề tài này Và cuối cùng em cũng xin được gửi lời cảm ơn đến những người người dùng đã gắn bó, những đàn anh, đàn chị đã chia sẻ kinh nghiệm và những kiến thức và nhất là trong thời gian thực hiện đề tài, để đề tài có thể hoàn thành một cách thành công nhất Song, do còn nhiều hạn chế đề tài nhóm xây dựng không tránh khỏi những thiếu sót Rất mong được thầy cô và các người dùng đóng góp ý kiến để hệ thống ngày càng hoàn thiện và được đưa vào sử dụng.

Chúng em xin chân thành cảm ơn !

ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM

KHOA CNTT Độc lập - Tự do - Hạnh phúc

ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP

Họ và tên Sinh viên 1: Đặng Ngọc

Sơn Họ và tên Sinh viên 2:

MSSV 1: 18133046MSSV 2:

Thời gian làm luận văn: Từ: Đến:

Chuyên ngành: Kỹ thuật dữ liệu

Tên luận văn: XÂY DỰNG HỆ THỐNG PHÁT HIỆN XÂM NHẬP VÀ THÔNGBÁO CHO NGƯỜI SỬ DỤNG QUA TIN NHẮN TELEGRAM BẰNG HỌC SÂU

GV hướng dẫn: ThS Lê Thị Minh Châu

NHIỆM VỤ CỦA LUẬN VĂN:

Nhiệm vụ 1: Rèn luyện kỹ năng tổng hợp và kiến thức đã học.

Trang 8

Nhiệm vụ 3: Làm chủ và sử dụng được những công nghệ: Darknet, YOLOv4,

Google Colaboratory, OpenCV

Nhiệm vụ 4: Hoàn thiện hệ thống phát hiện xâm nhập và thông báo cho người sử

dụng qua tin nhắn telegram bằng học sâu giúp người dùng phát hiện ra đối tượng xâmnhập vào vùng không an toàn và báo cáo kịp thời đến người sử dụng hệ thống

Đề cương viết luận văn:

Trang 9

1 23/8-12/09 - Nghiên cứu công nghệ Hoàn thành

- Hoàn thiện mô tả đề tài.

2 13/09 - 26/09 - Nghiên cứu Google Hoàn thành

Colaboratory.

- Chạy thử Google Colaboratory.

3 27/09-03/10 - Tìm hiểu Darknet Hoàn thành

6 25/10 – 7/11 - Tối ưu camera trên hệ Hoàn thành

thống.

- Tối ưu các bounding box.

7 8/11 – 22/11 - Hoàn thành hệ thống Hoàn thành

Trang 10

- Chuẩn bị file thuyết trình

(Ký & ghi rõ họ tên)

Trang 11

MỤC LỤC

PHẦN 1: MỞ ĐẦU 2

TRÌNH BÀY TÍNH CẤP THIẾT CỦA ĐỀ TÀI 2

MỤC ĐÍCH CỦA ĐỀ TÀI 2

ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 2

PHẦN 2: NỘI DUNG 3

CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG 3

1.1 PHÂN TÍCH HIỆN TRẠNG 3

1.2 PHÂN TÍCH YÊU CẦU: 3

CHƯƠNG 2: TỔNG QUAN VỀ YOLO 5

2.1 GIỚI THIỆU VỀ NEURAL NETWORK [1] 5

2.2 GIỚI THIỆU VỀ YOLO 7

2.3 LỊCH SỬ PHÁT TRIỂN 9

2.4 KIẾN TRÚC YOLO 10

2.5 THUẬT TOÁN YOLO 12

2.6 OUTPUT CỦA YOLO [3] 15

2.7 ANCHOR BOX [4] 17

2.8 THUẬT TOÁN NON-MAXIMUM SUPPRESSION(NMS) [8] 18

2.9 DỰ BÁO TRÊN NHIỀU FEATURE MAP [4] 20

2.10 HÀM LOSS FUNCTION [4] 20

2.11 ỨNG DỤNG CỦA YOLO 22

2.12 TỔNG KẾT 22

CHƯƠNG 3: HUẤN LUYỆN YOLOv4 23

3.1 TẬP DỮ LIỆU 23

3.2 CẤU HÌNH ĐỂ HUẤN LUYỆN 24

Trang 12

CHƯƠNG 4: XÂY DỰNG HỆ THỐNG 33

4.1 THIẾT KẾ HỆ THỐNG 33

4.2 TẠO RA BOTCHAT TELEGRAM [11] 34

4.3 XÂY DỰNG HỆ THỐNG YOLODETECT 35

4.4 TRIỂN KHAI HỆ THỐNG VÀ KẾT QUẢ 40

PHẦN 3: KẾT LUẬN 43

1 KẾT QUẢ ĐẠT ĐƯỢC 43

2 ƯU ĐIỂM 43

3 NHƯỢC ĐIỂM 43

4 HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 43

DANH MỤC TÀI LIỆU THAM KHẢO 45

Trang 13

DANH MỤC HÌNH ẢNH

Hình 1: Hình ảnh mô phỏng mạng nơ-ron nhân tạo 5

Hình 2: Kiến trúc mạng nơ-ron nhân tạo 6

Hình 3: Logo của YOLO 8

Hình 4: Kết quá dự đoán của YOLO trên các bức ảnh vẽ 9

Hình 5: Kiến trúc của YOLO 10

Hình 6: Các layer trong mạng Darknet-53 11

Hình 7: Residual block được thể hiện trên một bức ảnh 12

Hình 8: Bounding box màu vàng bao quanh xe hơi 13

Hình 9: Công thức ước lượng Bounding box từ Anchor box 13

Hình 10: Công thức tính IOU 14

Hình 11: Công thức output của YOLO 15

Hình 12: Kiến trúc một output của YOLO 16

Hình 13: Hình ảnh xác định Anchor box của một vật thể 17

Hình 14: hai vật thể bị trùng mid point và cùng thuộc 1 cell 18

Hình 15: Từ đầu có 3 bounding box bao quanh chiếc xe sau khi sử dụng NMS đã giảm xuống còn 1 19

Hình 16: Các feature map kích thước 416x416 có output lần lượt là 13x13, 26x26, 52x52 20

Hình 17: Công thức hàm loss function 21

Hình 18: Hình ảnh dữ liệu dùng để huấn luyện 23

Hình 19: Logo của Google Colaboratory 25

Hình 20: Kết nối Google Colaboratory và Google Drive 25

Hình 21: Hình ảnh mở GPU trên Google Colaboratory 26

Hình 22: Hình ảnh kiểm tra GPU được Google Colaboratory cho phép sử dụng 26

Hình 23: Địa chỉ lưu và thay đổi đầu vào của dữ liệu 27

Hình 24: Sử dụng source code có sẵn để cài đặt 27

Hình 25: Lấy dữ liệu bằng file bash 27

Trang 14

Hình 27: Cấu hình lại file Makelife cho phù hợp với các thông số 28

Hình 28: Nơi lưu trữ các file trong quá trình huấn luyện 28

Hình 29: Sử dụng file bash để tải file pre-traind 28

Hình 30: Bắt đầu huấn luyện 29

Hình 31: Các thông số bên trong quá trình huấn luyện 29

Hình 32: File log của quá trình huấn luyện sau khi hoàn thành 30

Hình 33: Chạy thử file weight tốt nhất với hình có sẵn 30

Hình 34: Kết quả quá trình chạy thử 31

Hình 35: Biểu đồ cho quá trình huấn luyện 32

Hình 36: Hình ảnh pipeline của hệ thống 33

Hình 37: Tạo kết nối botchat Telegram 34

Hình 38: Tạo botchat trên nền tảng mạng xã hội Telegram 34

Hình 39: Token của botchat được gửi về sau khi tạo bot 35

Hình 40: Thêm 2 file nhận được sau khi huấn luyện để sử dụng 35

Hình 41: Thiết lặp loại bỏ các bounding box không phù hợp 36

Hình 42: Tùy chỉnh các ngưỡng conf_threshold và nms_threshold 37

Hình 43: Vẽ bounding box đã lọc lên đối tượng 37

Hình 44: Thiết lặp thông báo cho hệ thống 38

Hình 45: Logo của OpenCV 38

Hình 46: Sự kiện chuột để vẽ vùng nguy hiểm trên hệ thống 39

Hình 47: Thêm nút ấn thuận tiện thao tác 40

Hình 48: Cửa sổ hệ thống 40

Hình 49: Cửa sổ hệ thống được người dung vẽ vùng nguy hiểm 41

Hình 50: Cảnh báo xuất hiện ở góc trên bên trái của sổ hệ thống 41

Hình 51: Cảnh báo tin nhắn qua Telegram cho người sử dụng 42

Trang 15

PHẦN 1: MỞ ĐẦU TRÌNH BÀY TÍNH CẤP THIẾT CỦA ĐỀ TÀI

Trong những năm gần đây, các ngành công nghiệp ngày càng phát triển kéotheo nhu cầu xây dựng tăng cao Và vấn đề an toàn lao động được các nhà đầu tưđặt lên hàng đầu Bên cạnh đó ở các bệnh viện có những bệnh nhân không thể làmchủ được hành động của bản thân mà có thể đi vào những tụ điện hay leo trèo quacác lầu cao không có vật chắn Từ đó, nhóm nhận thấy cần có một hệ thống đểquản lý các đối tượng bằng một hệ thống thông qua camera, khi các đối tượng đivào các vùng cấm hay những vùng nguy hiểm sẽ thông báo kịp thời đến mạng xãhội telegram của người dùng tránh các rũi ro không cần thiết

MỤC ĐÍCH CỦA ĐỀ TÀI

Với những kiến thức đã được học từ sự truyền đạt của các giảng viên trongmôi trường đại học, đề tài lần này mà nhóm chọn thể thực hiện là một cơ hội đểnhững thành viên trong nhóm có dịp tổng hợp lại kiến thức, cùng rèn luyện, traođổi, bổ sung kiến thức cho nhau Quá trình tìm hiểu và xây dựng đề tài cũng là một

cơ hội để cho các thành viên tích cực trao đổi thông tin với các thầy cô hướng dẫn,tiếp nhận những kinh nghiệm và kỹ năng từ những anh chị đi trước và người dùng

bè xung quanh Thực hiện đề tài này là một phần trong quá trình đánh giá năng lựccủa sinh viên và hoàn thành chương trình học Qua lần thực hiện đề tài này, nhómthực hiện đề tài mong muốn xây dựng được hệ thống có thể thông báo đến người

sử dụng qua telegram khi có đối tượng đi vào cùng nguy

ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU

• Xây dựng một hệ thống phát hiện xâm nhập và thông báo cho người sửdụng qua tin nhắn telegram bằng học sâu

• OpenCV: Dùng cho mục đích kết nối trực tiếp đến camera cần sử dụng

• Google Colaboratory: Dùng làm môi trường để training dữ liệu

• Thuật toán YOLOv4: Dùng để detect các đối tượng

• Darknet: Dùng để training dữ liệu thông qua Google Colaboratory

Trang 16

PHẦN 2: NỘI DUNG CHƯƠNG 1: KHẢO SÁT HIỆN TRẠNG 1.1 PHÂN TÍCH HIỆN TRẠNG

Trước khi tiến hành việc thực hiện đề tài, em thực hiện đã khảo sát các cách đểgiảm thiểu tình trạng đối tượng xâm nhập vào vùng không an toàn ở những bệnhviện và ở những công trình trong và ngoài nước Nhìn chung các cách ở nhữngnước đang phát triển hầu như sử dụng bằng con người, ngoài ra ở một số nướcchưa có cách để khắc phục Một số nước phát triển sẽ có camera ở các công trình

và bệnh viện, một số ít trong đó đã có hệ thống phát hiện đối tượng

Qua quá trình tìm hiểu và khảo sát đối với các hệ thống phát hiện đối tượngnhóm có nhận xét sau:

Ưu điểm:

• Có thể phát hiện kịp thời và ngăn cản đối tượng khi xuất hiện ở các vùng nguy hiểm

Hạn chế:

• Tiêu tốn nhiều vào nguồn nhân lực để phát hiện

• Không phát huy hết công dụng của những camera

Dựa trên khảo sát và phân tích như trên, em đã đề ra những điều mà cần

tiếp thu học hỏi cũng như cải tiến áp dụng vào việc xây hệ thống của mình:

• Cần tạo ra một hệ thống phát hiện và thông báo kịp thời

• Hệ thống sẽ thay đổi vị trí nguy hiểm do người sử dụng chỉ định

• Hệ thống sẽ thông báo liên tục đến telegram người sử dụng đến khi đối tượng ra khỏi vùng nguy hiểm

1.2 PHÂN TÍCH YÊU CẦU:

Dựa trên kết quả của phân tích hiện trạng thực tế hiện nay của lĩnh vực, nhóm

đã xác định được các yêu cầu chức năng nghiệp vụ cần được xây dựng để đảm bảotiêu chuẩn chất lượng và tạo nên những điểm mới trước khi tiến hành xây dựng đềtài:

3

Trang 17

Tính toán:

• Tính toán vị trí của đối tượng tiếp xúc với vùng nguy hiểm Kết quả:

• Đưa ra thông báo kịp thời đến người dùng

Trang 18

CHƯƠNG 2: TỔNG QUAN VỀ YOLO 2.1 GIỚI THIỆU VỀ NEURAL NETWORK[1]

Trước tiên muốn hiểu về YOLO và cách thức hoạt động của YOLO chúng tacần hiểu về mạng Neural Network là gì

Neural Network hay còn được gọi là Mạng nơ-ron nhân tạo Đây là chuỗinhững thuật toán được đưa ra dựa vào việc bắt chước cách thức hoạt động từ não

bộ con người nhằm tìm kiếm các mối quan hệ cơ bản trong tập hợp các dữ liệu Nóicách khác, đây được xem là hệ thống các tế bào thần kinh nhân tạo

Hình 1: Hình ảnh mô phỏng mạng nơ-ron nhân tạo.

2.1.1 Kiến trúc mạng Neutal Network [1]

Mạng Neural Network là sự kết hợp của những tầng perceptron (perceptron đatầng) và thường bao gồm 3 kiểu tầng:

• Tầng vào (tầng input layer): Nằm bên trái cùng, thể hiện cho đầu vào của mạng

• Tầng ẩn (tầng hidden layer): Nằm giữa, thể hiện quá trình suy luận logic của mạng

5

Trang 19

• Tầng ra (tầng output layer): Nằm bên phải cùng, thể hiện đầu ra của mạng.

Hình 2: Kiến trúc mạng nơ-ron nhân tạo.

Mỗi nút mạng trong mạng Neural Network là một sigmoid nơ-ron nhưng chúnglại có hàm kích hoạt khác nhau Tùy vào bài toán hoặc cách giải quyết mà có thể sốlượng nút mạng ở mỗi tầng sẽ không giống nhau Những nơ-ron ở tầng thường liênkết đôi với nhau, việc này giúp tạo thành mạng có kết nối đầy đủ nhất Khi đó từtầng và số nơ-ron, người ta có thể tính toán được kích cỡ của mạng

2.1.2 Thuộc tính của mạng Neural Network [2]

Cũng như con người, mạng Neural Network có thể giải quyết vấn đề và ápdụng kỹ năng đó vào các tập dữ liệu lớn nên mạng Neural Networkk thường cónhững thuộc tính mạnh mẽ có thể kể đến như:

• Học tập thích ứng: Dựa trên kiến thức có được từ trước, mạng nơ-ron

sẽ mô hình hóa các mối quan hệ phức tạp và phi tuyến tính từ đó xây dựng thêm

Trang 20

• Tự tổ chức: Mạng nơ-ron có khả năng phân cụm và phân loại lượng dữ liệu khổng lồ.

• Hoạt động theo thời gian thực: Mạng có thể cung cấp những câu trả lời của con người theo thời gian thực

• Khả năng chịu lỗi: Mạng nơ-ron có thể tự điền vào chỗ trống khi các phần quan trọng của mạng bị mất hoặc thiếu

2.1.3 Phân loại Neural Network [1]

Vì những mục đích khác nhau mà mạng Neural Network được phân thành nhiều loại khác nhau Những mạng được sử dụng phổ biến hiện nay có thể kể đến như:

• The Perceptron: Là mạng được xem là đơn giản và lâu đời nhất Đây được xem là nền tảng của những mạng nơ-ron khác

• Multilayer Perceptron (MPL): Đây thực ra là một dạng Perceptron nhưng phức tạp hơn

• Convolutional Neural Network (CNN): Là mạng nơ-ron tích chập cókiến trúc và cách sử dụng như MPL Thường được dùng để nhận dạng hình ảnh hoặcthị giác máy tính

• Recurrent Neural Network (RNN): Là mạng nơ-ron hồi quy Thường

được dùng để tìm pattern liên tục của dữ liệu và dự đoán stock data

2.2 GIỚI THIỆU VỀ YOLO[3]

YOLO (You Only Look Once) là một mô hình phát hiện các đối tượng bằngcách sử dụng các tính năng được học bởi một mạng Neural Network của tác giảJoseph Redmon Được xem là thuật toán nhanh nhất, đúng như tên gọi, YOLO chỉcần lướt qua bức ảnh một lần là có thể phát hiện đối tượng Đó được xem là ưuđiểm của YOLO nhưng ngược lại, về độ chính xác có thể YOLO không phải làthuật toán tốt nhất hiện nay YOLO còn có thể phát hiện được nhiều vật thể khácnhau trong cùng bức ảnh

7

Trang 21

Hình 3: Logo của YOLO.

Mô hình thống nhất của YOLO có một vài ưu điểm so với các phương pháp phát hiện vật thể truyền thống như sau:

vật thể là một bài toán hồi quy nên ta không cần dùng đến một cơ chế pipeline phức tạp

Ta chỉ đơn giản chạy Neural Network trên một bức ảnh mới tại test time để dự đoándetections Base network của YOLO có tốc độ là 45 fps Điều này giúp ta có thể xử lýstreaming video trong thời gian thực (real-time) với độ trễ nhỏ hơn 25 milliseconds.YOLO đạt được độ chính xác mAP hơn gấp đôi so với các hệ thống real-time khác

• Thứ hai, YOLO lập luận một cách toàn cục về bức ảnh khi đưa ra dựđoán Không giống như các phương pháp cửa sổ trượt hay đề xuất vùng được nhắcđến ở trên, YOLO nhìn vào toàn bộ bức ảnh trong thời gian training và test, vì thế nênnó ngầm hiểu thông tin về ngữ cảnh về các classes cũng như là ngoại hình của chúng

Vì thế background errors của YOLO nhỏ hơn đáng kể so với các phương pháp khác,

ví dụ như Fast R-CNN

Trang 22

• Thứ ba, cũng là điểm mới mẻ nhất: YOLO có khả năng học được cácbiểu diễn có tính tổng quát hóa của vật thể Khi huấn luyện YOLO với những bức ảnhthực và thử bằng những tấm ảnh vẽ (art-work), YOLO có kết quả vượt trội so với cácphương pháp detection hàng đầu khác như DPM hay R-CNN Vì YOLO có tính tổngquát hóa rất cao nên nó ít khi thất bại khi được đưa vào các lĩnh vực mới hay sử dụngcác input bất thường.

Hình 4: Kết quá dự đoán của YOLO trên các bức ảnh vẽ.

9

Trang 23

Ngoài ra ở những bản về sau YOLO còn được chia nhỏ ra các bản để phù hợpvới từng ứng dụng riêng biệt như phục vụ cho đầu vào có độ phân giải lớn, tốc độkhung hình hiển thị trên mỗi giây cao (FPS), xác định riêng cho từng nhóm đốitượng khác nhau cho từng trường hợp khác nhau, …

Từ phiên bản YOLOv1 đến bản YOLOv4 tác giả đã thiết kế nghiêng về tinhchỉnh các thông số còn ở các bản YOLOv5, YOLOv6, YOLOv7 tác giả đã thiết kếsẵn các thông số giúp người dung không đặt nặng vấn đề tinh chỉnh

Nhưng ở những phiên bản YOLOv5, YOLOv6, YOLOv7 lại gây tranh cãi vớingười dùng khi có nhiều bài viết nói rằng khi sử dụng ba phiên bản trên các GPUcó hiệu năng thấp sẽ dễ gặp tình trạng lỗi treo máy Và YOLOv4 được cho là ổnđịnh nhất Chính vì vậy em đã chọn YOLOv4 cho hệ thống của mình

2.4 KIẾN TRÚC YOLO[4]

Kiến trúc của YOLO bao gồm:

• Base network: Có nhiệm vụ trích xuất đặc trưng (Darknet Architecture)

• Extra Layers: Có tác dụng phát hiện vật thể trên feature map của base network

YOLO hoạt động theo cơ chế detect vật thể trên từng vùng ảnh Ảnh được chia

thành S x S ô, ô hay còn gọi là cell Thực ra là chia trong tưởng tượng, không phải

cắt ảnh ra hay thực hiện bất kì bước image-processing nào Bản chất của việc chia ảnh

là việc chia output, target thành dạng matrix AA kích thước S x S Nếu trong ảnh, tâm của vật thể nằm trong cell thứ (i,j) thì output tương ứng nó sẽ nằm trong A[i,j]A[i,j].

Với input shape khác nhau, kiến trúc YOLO cũng có thể tùy biến thành cácphiên bản khác nhau cho phù hợp

Hình 5: Kiến trúc của YOLO.

Trang 24

YOLOv4 sử dụng các Convolutional Layers hay còn gọi là lớp tích chập khiếnnó trở thành một Fully Convolutional Network (FCN) Từ YOLOv3 tác giả đã ápdụng mạng darknet-53 (mạng Feature Extractor) Theo sau đó là một activationLeaky Relu và một batch normalization Tác giả sử dụng mẹo để giảm số lượngtham số cho mô hình bằng cách down sample bằng các filter với kích thước là 2.

Hình 6: Các layer trong mạng Darknet-53.

11

Trang 25

Hiện tại, YOLO hỗ trợ 2 kích thước đầu vào chính là 416x416 và 608x608 Ở mỗi đầu vào sẽ có các layers riêng biệt để phù hợp với shape của input.

• Kích thước đầu vào sẽ quy định kích thước của feature map

• Với input 416x416 các kích thước của feature map lần lượt là 13x13,

Residual blocks là hình ảnh đầu vào được chia thành lưới có kích thước là SxS

và các ô bằng nhau Nhiệm vụ của mỗi ô là phát hiện các vật thể xuất hiện bêntrong chúng

Hình 7: Residual block được thể hiện trên một bức ảnh.

Trang 26

2.5.2 Bounding box regression [6] :

Bounding box regression được sử dụng để dự đoán khi hình ảnh có các biến ngõ ra liên tục

Hình 8: Bounding box màu vàng bao quanh xe hơi.

Mỗi bounding box bao gồm các thuộc tính:

• Các lớp (Người, xe, ) được kí hiệu bằng chữ "c"

• Đường viền tâm box (bx, by)

Hình 9: Công thức ước lượng Bounding box từ Anchor box.

13

Trang 27

Hình chữ nhật nét đứt ở trên là Anchor box có kích thước là (pw, ph) Tọa độ củamột bounding box sẽ được xác định dựa trên đồng thời cả anchor box và cell mà nóthuộc về Điều này giúp kiểm soát vị trí của bounding box dự đoán đâu đó quanh vị trícủa cell và bounding box mà không vượt quá xa ra bên ngoài giới hạn này.

2.5.3 Intersection over union [7] :

Intersection over union (IOU) được sử dụng để đánh giá độ chính xác củaobject detector trên tập dữ liệu cụ thể

Hình 10: Công thức tính IOU.

Trong đó Area of Overlap là diện tích phần giao nhau giữa predicted bounding boxvới grouth-truth bouding box , còn Area of Union là diện tích phần hợp giữa predicted

trong tập huấn luyện Prediction được đánh giá là tốt khi IOU ≥ 0,5

Trang 28

2.6 OUTPUT CỦA YOLO[4]

Output của mô hình là véc tơ bao gồm:

Hình 11: Công thức output của YOLO.

Trong đó:

P 0: xác suất dự báo bounding box có vật thể xuất hiện bên trong

t x , t y: Tọa độ tâm của bounding box

t w , t h: Độ rộng và chiều cao của bounding box

p 1 , p 2 ,…,p c: Véc tơ phân phối xác suất dự báo của n classes

Output được xác định dựa theo số lượng classes theo công thức (n_class+5)

15

Trang 29

Hình 12: Kiến trúc một output của YOLO.

Ở hình ảnh trên ta thấy hình ảnh được chia thành future map gồm13x13 cellbằng nhau Mỗi cell được chia làm 3 anchor box không bằng nhau sao cho tâm củacác anchor box trùng với cell Sinh ra một véc tơ được ghép từ 3 bounding boxes,đó là output của YOLO

VD: Output sẽ bằng 85 khi ta huấn luyện 80 class, và sẽ bằng 255 khi áp dụng

ba anchors/cell (85x3=255)

Ngày đăng: 16/11/2023, 06:01

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w