(Đồ án hcmute) 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

58 16 0
(Đồ án hcmute) 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

Đ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

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 Tp.Hồ Chí Minh 2023 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM KHOA CÔNG NGHỆ THÔNG TIN ĐẶNG NGỌC SƠN - 18133046 Đề Tài: 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 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 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 xâm nhập thông báo cho người sử dụng qua tin nhắn telegarm 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 TP HỒ CHÍ MINH – 2023 ĐH SƯ PHẠM KỸ THUẬT TP.HCM XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc KHOA CNTT ******* ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Họ tên Sinh viên : MSSV 1: Họ tên Sinh viên : MSSV 2: Ngành: Kỹ thuật liệu Tên đề tài: Họ tên Giáo viên hướng dẫn: Ths Lê Thị Minh Châu NHẬN XÉT: Về nội dung đề tài khối lượng thực hiện: Ưu điểm: ………………………………………………………… … ……………………………………………………………………………… …… Khuyết điểm .………………… Đề nghị cho bảo vệ hay không ? Đánh giá loại : Điểm : 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 Độc lập - Tự - Hạnh phúc KHOA CNTT ******* ******* PHIẾU NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN Họ tên Sinh viên : MSSV 1: Họ tên Sinh viên : MSSV 2: Ngành: Kỹ thuật liệu Tên đề tài: Họ tên Giáo viên phản biện: Ths Nguyễn Thành Sơn NHẬN XÉT: Về nội dung đề tài khối lượng thực hiện: Ưu điểm: ………………………………………………………… …….……………………………………………………………………………… …… Khuyết điểm .………………… Đề nghị cho bảo vệ hay không ? Đánh giá loại : Điểm : Tp Hồ Chí Minh, ngày tháng Giáo viên phản biện (Ký & ghi rõ họ tên) năm 2023 LỜI CẢM ƠN Em xin chân thành cảm ơn q thầy giúp đỡ em thực đề tài Đặc biệt cô Lê Thị Minh Châu tận tình hướng dẫn, giúp đỡ, bảo nhóm suốt thời gian thực tiểu luận chuyên ngành Đồng thời nhóm xin trân trọng cảm ơn tình cảm q báu mà thầy cô trường Đai Học sư phạm kỹ thuật TPHCM truyền đạt cho nhóm, kinh nghiệm, kỹ thuật cách thức việc xây dựng đề tài Và cuối em xin gửi lời cảm ơn đến người người dùng gắn bó, đàn anh, đàn chị chia sẻ kinh nghiệm kiến thức thời gian thực đề tài, để đề tài có thể hoàn thành cách thành cơng Song, cịn nhiều hạn chế đề tài nhóm xây dựng không tránh khỏi thiếu sót Rất mong thầy cô người dùng đóng góp ý kiến để hệ thống ngày hoàn thiện đư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 KHOA CNTT XÃ HỘI CHỦ NGHĨA VIỆT NAM Độc lập - Tự - Hạnh phúc ******* ******* ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP Họ tên Sinh viên 1: Đặng Ngọc Sơn MSSV 1: 18133046 Họ tên Sinh viên 2: MSSV 2: Thời gian làm luận văn: Từ: Đến: Chuyên ngành: Kỹ thuật 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ÔNG BÁ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ỹ tổng hợp kiến thức học Nhiệm vụ 2: Rèn luyện tư tính tự chủ công việc Nhiệm vụ 3: Làm chủ sử dụng công nghệ: Darknet, YOLOv4, Google Colaboratory, OpenCV Nhiệm vụ 4: Hoàn thiện hệ thống phát xâm nhập thông báo cho người sử dụng qua tin nhắn telegram học sâu giúp người dùng phát đối tượng xâm nhập vào vùng không an toàn 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: Phần MỞ ĐẦU • Tính cấp thiết đề tài • Mục đích đề tài • Đối tượng phạm vi nghiên cứu Phần NỘI DUNG • Khảo sát trạng • Tổng quan YOLO • Huấn luyện YOLOv4 • Xây dựng hệ thống Phần KẾT LUẬN • Kết đạt • Ưu điểm • Nhược điểm • Hướng phát triển đề tài KẾ HOẠCH THỰC HIỆN STT Thời gian 23/8-12/09 Công việc - Nghiên cứu cơng nghệ Ghi Hồn thành - Hồn thiện mơ tả đề tài 13/09 - 26/09 - Nghiên cứu Google Hoàn thành Colaboratory - Chạy thử Google Colaboratory 27/09-03/10 - Tìm hiểu Darknet Hồn thành - Tìm liệu cho hệ thống 04/10-10/10 - Tìm hiểu YOLO Hồn thành - Tìm hiểu OpenCV 11/10-24/10 - Huấn luyện Google Hoàn thành Colaboratory - Hoàn thành YOLODETECT 25/10 – 7/11 - Tối ưu camera hệ Hoàn thành thống - Tối ưu bounding box 8/11 – 22/11 - Hoàn thành hệ thống Hoàn thành 23/11–26/11 - Viết báo cáo Hoàn thành - Chuẩn bị file thuyết trình Ý kiến giáo viên hướng dẫn (Ký ghi rõ họ tên) Tp.Hồ Chí Minh, ngày tháng năm 2023 Người viết đề cương (Ký & ghi rõ họ tên) MỤC LỤC PHẦN 1: MỞ ĐẦU TRÌNH BÀY TÍNH CẤP THIẾT CỦA ĐỀ TÀI MỤC ĐÍCH CỦA ĐỀ TÀI ĐỐI TƯỢNG VÀ PHẠM VI NGHIÊN CỨU 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 1.2 PHÂN TÍCH YÊU CẦU: CHƯƠNG 2: TỔNG QUAN VỀ YOLO 2.1 GIỚI THIỆU VỀ NEURAL NETWORK[1] 2.2 GIỚI THIỆU VỀ YOLO 2.3 LỊCH SỬ PHÁT TRIỂN 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 3.3 SỬ DỤNG GOOGLE COLABORATORY ĐỂ HUẤN LUYỆN[10] 24 Hình 35: Biểu đồ cho trình huấn luyện Quá trình huấn luyện hoàn thành với mAP lên đến 78% avg loss = 24.7803 4000 vòng lặp Với số mơ hình xem thành cơng 32 CHƯƠNG 4: XÂY DỰNG HỆ THỐNG 4.1 THIẾT KẾ HỆ THỐNG Hình 36: Hình ảnh pipeline hệ thống Hệ thống phát xâm nhập thông báo cho người sử dụng qua tin nhắn telegram học sâu thực qua bước: • Bước 1: Đọc liệu từ camera thể hình thơng qua thư viện OpenCV python Thư viện cho phép người dùng sử dụng để xử lý hình ảnh, phát triển ứng dụng đồ họa thời gian thực Tại hệ thống em sử dụng OpenCV để mở camera để sử dụng theo thời gian thực • Bước 2: Người sử dụng định nghĩa vùng nguy hiểm cho khung hình mở từ bước • Bước 3: Xác định đối tượng cần phát Ở hệ thống em chọn đối tượng người • Bước 4: Sử dụng YOLO để phát đối tượng từ camera Nếu YOLO phát đối tượng phải cần tìm tâm đối tượng • Bước 5: Kiểm tra xem tâm đối tượng vừa tìm bước có nằm vùng nguy hiểm vẽ bước hay khơng 33 • Bước 6: Nếu bước tâm đối tượng nằm vùng chọn bước thơng báo hình gửi thông báo đến telegram đến người dùng 4.2 TẠO RA BOTCHAT TELEGRAM[11] Ở hệ thống em muốn có đối tượng vào vùng nguy hiểm có thể thông báo đến người dùng cách nhanh chống để xử lý Hiện có nhiều mạng xã hội đánh giá cao có nhiều người sử dụng em chọn Telegram làm mạng xã hội để YOLO thơng báo tới người dùng lý sau: • Tính ổn định cao • Dễ dàng tạo bot khơng cần thơng qua bên thứ • Là mạng xã hội dành riêng cho nhắn tin • Token tồn lâu mạng xã hội khác • Không có điều kiện ràng buộc tạo bot Hình 37: Tạo kết nối botchat Telegram Để tạo botchat Telegram em không cần thông qua bên thứ ba mà cần gọi bot có sẵn tảng “BotFather” (hay gọi bot cha) Hình 38: Tạo botchat tảng mạng xã hội Telegram 34 Sau tạo đặt tên cho botchat em sử dụng hệ thống “BotFather” gửi thông tin bot Trong đó có token botchat thứ em cần để kết nối botchat đến tài khoản người dùng Hình 39: Token botchat gửi sau tạo bot Botchat kết nối thông qua thư viện có sẵn python “telegram” Em có thêm vào đó câu lệnh có đối tượng xâm nhập vào vùng nguy hiểm botchat gửi tin nhắn thông qua chat_id người sử dụng với nội dung ảnh kèm theo đó dịng thích “Có xâm nhập, nguy hiểm!” Lưu ý với token botchat chat_id người dùng thứ cần bảo mật khơng nên để lộ bên ngồi 4.3 XÂY DỰNG HỆ THỐNG YOLODETECT 4.3.1 Xác định đối tượng: YOLO muốn xác định đối tượng em cần phải trả lại cho nó đọc file cfg weight Đó file em dùng để huấn luyện file trả sau huấn luyện hoàn thành Hình 40: Thêm file nhận sau huấn luyện để sử dụng Sau YOLO đọc file weight em xác định đối tượng 35 Hình 41: Thiết lặp loại bỏ bounding box không phù hợp Hình ảnh từ camera đưa vào chuyển lại thành frame residual blocks chia lại thành lưới với kích thước 416x416 để thời gian xác định đối tượng diễn nhanh Khi thực xác định đối tượng thông qua YOLO sinh nhiều bounding box cho đối tượng cần xác định em sử dụng thuật toán NMS để bỏ bớt bounding box thừa giữ lại bouding box bao quanh đối tượng Ở em chọn nms_threshold 0,4 chọn ngưỡng tin tưởng conf_threshold 0,5 Những ngưỡng người dùng chọn cho tốc độ xử lý cho nhanh 36 Hình 42: Tùy chỉnh ngưỡng conf_threshold nms_threshold Sau lọc bounding box chọn bouding box bao quanh đối tượng phù hợp em vẽ bounding box đó để xác định đối tượng Hình 43: Vẽ bounding box lọc lên đối tượng Trong vẽ bouding box em có thêm vào label tên đối tượng mặc định “person” Vì số lý đối tượng đưa tay vào vùng nguy hiểm họ chưa đến vùng nguy hiểm bouding box bao quát hết đối tượng gây việc xác định nhầm lẫn nên em thêm hàm centroid để xác định tâm đối tượng Khi điểm centroid nằm vùng nguy hiểm tương đương với việc trọng tâm đối tượng bước vào vùng nguy hiểm từ đó có thể xác định đối tượng cần cảnh báo 4.3.2 Cảnh báo: Như trình bày trên, điểm centroid đối tượng vào vùng nguy hiểm có thơng báo Ở em chọn hai thông báo bao gồm thông báo xuất hình với dịng chữ “warning!!!” màu đỏ thơng báo bao gồm hình ảnh kèm văn gửi đến tài khoản telegram người sử dụng 37 Hình 44: Thiết lặp thơng báo cho hệ thống Khi có đối tượng vùng nguy hiểm, thông báo tài khoản telegram người sử dụng gửi liên tục với thời gian giây lần đến đối tượng khỏi vùng nguy hiểm 4.3.3 Mở camera tạo vùng nguy hiểm: Để mở camera em sử dụng hai thư viện OpenCV imutils Hình 45: Logo OpenCV Trong trình sử dụng OpenCV em sử dụng nhiều camera để kiểm tra nhận thấy: • OpenCV có thể mở tất camera kết nối đến • OpenCV ổn đinh mức 45 khung hình giây (45FPS) 38 • Khi sử dụng dòng máy ảnh để làm kiểm tra, số dòng máy (Fujifilm XT5, Canon R6) OpenCV kết nối mà khơng mở hình ảnh Chỉ lên hình đen Vì nguyên nhân em sử dụng thêm thư viện imutils để có thể hỗ trợ thêm Khi sử dụng camera có lý khiến cho camera bị thay đổi khung hình (mưa bão, gió lớn có người tác động, …) Vì em cho người sử dụng sử dụng hệ thống vẽ lại khung hình vùng nguy hiểm để có thể kiểm sốt cách tốt Hình 46: Sự kiện chuột để vẽ vùng nguy hiểm hệ thống Ở em sử dụng kiện chuột để người sử dụng đánh dấu điểm vùng nguy hiểm chuột trái lưu nó vào points Những điểm người sử dụng đánh dấu có màu đỏ Tiếp theo đó em sử dụng hàm polylines vẽ kết nối điểm người dùng Các đường vẽ có màu xanh dương Hệ thống em xây dựng để phù hợp với tất người nên việc người dùng người lớn tuổi hay thị giác khó nối điểm cuối đến điểm đầu để kết thúc chọn vùng nguy hiểm Từ đó em chọn cách người sử dụng muốn kết thúc vùng chọn cần ấn phím “d”, kết thúc hàm detect sử dụng Và muốn tắt hệ thống cần ấn phím “q” 39 Hình 47: Thêm nút ấn thuận tiện thao tác 4.4 TRIỂN KHAI HỆ THỐNG VÀ KẾT QUẢ Khi mở hệ thống, hình xuất cửa sổ camera Hình 48: Cửa sổ hệ thống Tiếp theo ta vẽ chọn vùng nguy hiểm cách nhấn chuột trái kết thúc nút “d” Vì hệ thống em muốn thuận tiện cho người lớn tuổi nên em chọn nút “d” để kết thúc trình vẽ vùng chọn thay chọn vào điểm đầu 40 Hình 49: Cửa sổ hệ thống người dung vẽ vùng nguy hiểm Khi kết thúc vẽ vùng nguy hiểm lúc hệ thống bắt đầu xác định đối tượng Khi tâm đối tượng vào vùng nguy hiểm kết cuối nhận cảnh báo xuất hình Hình 50: Cảnh báo xuất góc bên trái sổ hệ thống 41 Bên cạnh cảnh báo xuất hình tài khoản Telegram người sử dụng có tin nhắn từ botchat để cảnh báo cho người dùng Hình 51: Cảnh báo tin nhắn qua Telegram cho người sử dụng 42 PHẦN 3: KẾT LUẬN KẾT QUẢ ĐẠT ĐƯỢC Em xây dựng hệ thống phát xâm nhập thông báo cho người sử dụng qua tin nhắn telegram học sâu với tốc độ nhanh độ xác tương đối cao Tối ưu cách phù hợp có thể thực mở tất loại máy ảnh khác cần thông qua địa ip kết nối trược tiếp Sử dụng tối ưu GPU miễn phí Google Colaboratory để xử lý model huấn luyện kiểm tra thành công với liệu đưa vào Tạo hệ thống phù hợp dễ dàng sử dụng người lứa tuổi ƯU ĐIỂM Ưu điểm hệ thống: • Hệ thống phát xác đối tượng • Tốc độ xử lí gửi tin nhắn nhanh • Dễ dàng sử dụng cho người NHƯỢC ĐIỂM Nhược điểm hệ thống: • Hệ thống hoạt động tốt nơi có ánh sáng tốt, tối khả xác định đối tượng giảm dần • Vì sử dụng thuật tốn NMS nên đơi thơng số nms_threshold chọn không tinh chỉnh không bao phủ hết đối tượng • Telegram tảng mạng xã hội người dùng Việt Nam HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI Hướng phát triển nhóm: • Tối ưu hóa thuật toán NMS để có thể nhận xác định bouding box phù hợp 43 • Thêm vào hệ thống phần điều chỉnh ánh sáng để tránh việc thiếu sáng làm hệ thống không xác định đối tượng • Tạo thêm botchat tảng mạng xã hội khác 44 DANH MỤC TÀI LIỆU THAM KHẢO [1] Neural Network gì? Ứng dụng thực tế mạng thần kinh (meeyland.com) [2] Phân loại neural network – Quang Tran's Blogs (wordpress.com) [3] Tìm hiểu YOLO toán real-time object detection (viblo.asia) [4] Khoa học liệu (phamdinhkhanh.github.io) [5] Residual Block Explained | Papers With Code [6] Object detection: Bounding box regression with Keras, TensorFlow, and Deep Learning - PyImageSearch [7] Hiểu độ đo IoU nhận diện thực thể - Trí tuệ nhân tạo (trituenhantao.io) [8] Non Maximum Suppression: Theory and Implementation in PyTorch (learnopencv.com) [9] Tìm hiểu YOLO tốn real-time object detection (viblo.asia) [10] quangnhat185/darknet_for_colab: Darknet repository for training YOLOv4 on Google Colab with Custom Dataset (github.com) [11] How to Create a Telegram Bot | Toptal [12] How To Create Telegram Bot Step by Step | Part1:bot token - YouTube [13] Google Colab [14] pjreddie/darknet: Convolutional Neural Networks (github.com) 45 S K L 0

Ngày đăng: 10/10/2023, 15:17

Tài liệu cùng người dùng

Tài liệu liên quan