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 1BỘ 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 2TRƯỜ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 3TRƯỜ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 4KHOA 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 7LỜ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 8Nhiệ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 91 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 11MỤ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 12CHƯƠ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 13DANH 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 14Hì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 15PHẦ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 16PHẦ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 17Tí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 18CHƯƠ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 21Hì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 23Ngoà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 24YOLOv4 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 25Hiệ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 262.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 27Hì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 282.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 29Hì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)