TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

44 314 6
TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Đ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

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MÔN KỸ THUẬT MÁY TÍNH - VIỄN THƠNG BÁO CÁO TIỂU LUẬN NHẬN DIỆN BIỂN BÁO GIAO THÔNG BẰNG YOLOv5 NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN THÔNG Sinh viên: VÕ TRẦN CHƯƠNG MSSV: 18161193 VŨ HUY HOÀNG MSSV: 18161225 TP HỒ CHÍ MINH – 6/2021 TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH KHOA ĐIỆN ĐIỆN TỬ BỘ MƠN KỸ THUẬT MÁY TÍNH - VIỄN THƠNG BÁO CÁO TIỂU LUẬN NHẬN DIỆN BIỂN BÁO GIAO THÔNG BẰNG YOLOv5 NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN THÔNG Sinh viên: VÕ TRẦN CHƯƠNG MSSV: 18161193 VŨ HUY HOÀNG MSSV: 18161225 Hướng dẫn: PGS.TS TRƯƠNG NGỌC SƠN TP HỒ CHÍ MINH – 6/2021 Stt BẢNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Nội dung thực Nhận xét Nhận xét tổng quát: ……………………………………………………………………………………… ……………………………………………………………………………………… ……………………………………………………………………………………… LỜI CẢM ƠN Trước tiên nhóm chúng em xin dành lời cảm ơn chân thành đến Thầy Cô khoa Điện - Điện tử truyền đạt, cung cấp cho chúng em kiến thức cần thiết để vận dụng thực tiễn đề tài Và đặc biệt PGS.TS Trương Ngọc Sơn tận tình hướng dẫn, giúp đỡ cho chúng em suốt trình thực tiểu luận, thầy nhiệt tình hướng dẫn giai đoạn cần làm, cần chuẩn bị cách để tiếp cận nghiên cứu đề tài hiệu Do kiến thức bị giới hạn nên q trình thực tiểu luận chúng em khơng thể tránh khỏi sai sót Kính mong thầy dẫn thêm để nhóm rút kinh nghiệm, hồn thành tốt tiểu luận mơn học Chúng em xin chân thành cảm ơn ! MỤC LỤC LỜI CẢM ƠN DANH MỤC HÌNH ẢNH .6 CHƯƠNG GIỚI THIỆU .7 1.1 GIỚI THIỆU 1.2 MỤC TIÊU CỦA ĐỀ TÀI 1.3 GIỚI HẠN ĐỀ TÀI .8 1.4 PHƯƠNG PHÁP NGHIÊN CỨU 1.5 BỐ CỤC ĐỀ TÀI CHƯƠNG 2: CƠ SỞ LÝ THUYẾT .9 2.1 KIẾN TRÚC MẠNG YOLO 2.2 GRID SYSTEM 10 2.3 KHÁI NIỆM VỀ CHỈ SỐ IOU VÀ THUẬT TOÁN NON-MAX SUPPRESSION 13 2.4 GÁN NHÃN CÁC MẪU 14 2.5 HÀM MẤT MÁT 16 2.6 NGÕ RA 17 2.7 THUẬT TOÁN YOLOV5 18 2.8 CẤU TRÚC NHẬN DIỆN VẬT THỂ CỦA YOLOV5 .18 2.9 ĐẶC ĐIỂM CỦA YOLOV5 VỚI CÁC PHIÊN BẢN TRƯỚC CỦA YOLO .19 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG NHẬN DIỆN TRÊN VIDEO 20 3.1 CHUẨN BỊ FOLDER TRAINING DATA 20 3.2 THIẾT LẬP MÔI TRƯỜNG ĐỂ HUẤN LUYỆN VÀ NHẬN DẠNG BIỂN BÁO GIAO THÔNG 25 3.3 TRAINING 29 CHƯƠNG KẾT QUẢ 31 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 37 5.1 KẾT LUẬN .37 5.1.1 ƯU ĐIỂM 37 5.1.2 NHƯỢC ĐIỂM 37 5.2 HƯỚNG PHÁT TRIỂN 37 PHỤ LỤC .39 TÀI LIỆU THAM KHẢO .41 DANH MỤC HÌNH ẢNH HÌNH 2-1 SƠ ĐỒ KIẾN TRÚC MẠNG YOLO8 HÌNH 2-2 CÁC LAYER TRONG MẠNG DARKNET-539 HÌNH 2-3 CHUYỂN CÁC LỚP FULLY CONNECTED CUỐI THÀNH CÁC LỚP TÍCH CHẬP 10 HÌNH 2-4 VỊ TRÍ VÀ THƠNG TIN CỦA VẬT THỂ ĐƯỢC DUY TRÌ ĐẾN LÚC CUỐI CÙNG 11 HÌNH 2-5 MƠ TẢ GRID SYSTEM TRONG BÀI TỐN NHẬN DIỆN BIỂN BÁO12 HÌNH 2-6 MƠ TẢ CHỈ SỐ IOU13 HÌNH 2-7 TÂM CỦA VẬT THỂ TRÙNG NHAU VÀ CÙNG NẰM TRONG GRID15 HÌNH 2-8 THUẬT TỐN ĐƯỢC ÁP DỤNG Ở NGÕ RA16 HÌNH 2-9 CẤU TRÚC NHẬN DIỆN VẬT THỂ CỦA YOLOV517 HÌNH 3-1 MỘT SỐ BIỂN BÁO TRONG TỆP TRAIN CỦA IMAGES22 HÌNH 3-2 CẤU TRÚC THƯ MỤC FILE IMAGES VÀ LABELS22 HÌNH 3-3 TẠO CÁC LABELS CHO CÁC BIỂN BÁO23 HÌNH 3-4 GẮN NHÃN HÌNH ẢNH VỚI MAKESENE.AI23 HÌNH 3-5 XUẤT FILE CHỨA CÁC NHÃN CỦA CÁC BIỂN BÁO24 HÌNH 3-6 CÁC TỆP TEXT DOCUMENT TRONG FOLDER LABELS24 HÌNH 3-7 CÁC VERSION CỦA YOLOV529 HÌNH 3-8 QUÁ TRÌNH HUẤN LUYỆN TRÊN YOLOV530 HÌNH 4-1 BIỂN BÁO GIAO THƠNG ĐƯỢC CẮT RA TỪ VIDEO.MP431 HÌNH 4-2 NHẬN DẠNG CÁC LABELS CỦA BIỂN BÁO BẰNG VIDEO32 HÌNH 4-3 ĐƯỜNG DẪN XUẤT KẾT QUẢ VIDEO32 HÌNH 4-4 KẾT QUẢ NHẬN DIỆN ĐƯỢC BIỂN BÁO ĐI THẲNG VÀ RẼ PHẢI33 HÌNH 4-5 KẾT QUẢ NHẬN DIỆN ĐƯỢC BIỂN BÁO ĐI THẲNG VÀ RẼ TRÁI33 HÌNH 4-6 HÌNH BIỂN BÁO: RẼ PHẢI, RẼ TRÁI, ĐI THẲNG, CẤM ĐI NGƯỢC CHIỀU34 HÌNH 4-7 BIỂN BÁO R305, ĐI THẲNG VÀ RẼ PHẢI, RẼ TRÁI, GIỚI HẠN 30 KM/H35 HÌNH 4-8 BIỂN BÁO ĐƯỜNG ƯU TIÊN, CẢNH BÁO, ĐI CHẬM, GIỚI HẠN 60 KM/H35 HÌNH 4-9 BIỂN BÁO CẤM NGƯỜI ĐI BỘ, ĐƯỜNG CHIỀU, CẤM DỪNG ĐỖ XE36 HÌNH 4-10 BIỂN BÁO NGƯỜI KHUYẾT TẬT, CẤM RẼ TRÁI, VÒNG XOAY, W207.A36 CHƯƠNG GIỚI THIỆU 1.1 Giới thiệu Với phát triển mạnh mẽ công nghệ 4.0, Artificial Intelligence (trí tuệ nhân tạo) hay cụ thể Machine Learning (máy học) bước phát triển không ngừng Các ứng dụng lĩnh vực ngày áp dụng nhiều vào đời sống người như: Robot giúp việc, hệ thống dịch thuật, chatbox, phân loại sản phẩm,… Mạng Nơron học sâu (Deep learning Network) lĩnh vực nghiên cứu thuật tốn, chương trình máy tính để máy tính học tập đưa dự đốn người Nó ứng dụng vào nhiều ứng dụng khác khoa học, kỹ thuật, lĩnh vực đời sống khác ứng dụng phân loại phát đối tượng Một ví dụ điển hình CNN (Convolutional Neural Network) áp dụng để nhận dạng tự động, tìm hiểu mẫu phân biệt từ ảnh cách xếp chồng liên tiếp lớp lên nhiều ứng dụng, CNN coi trình phân loại ảnh mạnh thúc đẩy công nghệ lĩnh vực thị giác máy tính, làm địn bẩy cho q trình học máy Nhưng bên cạnh đó, để phân loại đối tượng cơng nghệ CNN tiêu tốn cực lớn tài nguyên băng thông, nhớ khả xử lý phần cứng Để giảm thiểu tài ngun tiêu hao này, thuật tốn, mơ hình giải thuật theo thời gian đời ngày nhiều có mơ hình YOLOv5 cho toán phân loại vật thể, cụ thể ứng dụng vào đề tài “Phân loại biển báo giao thơng” 1.2 Mục tiêu đề tài - Tìm hiểu Deep Learning ứng dụng - Hiểu rõ sở lý thuyết, kiến trúc mô hình YOLO cho tốn nhận diện vật thể - Sử dụng thư viện hỗ trợ, môi trường ảo để thực thi mơ hình 1.3 Giới hạn đề tài Trong đề tài nhận biết 20 loại biển báo khác Hệ thống dừng lại việc nghiên cứu, chưa thể áp dụng thị trường 1.4 Phương pháp nghiên cứu - Thu thập tài liệu, tham khảo ứng dụng liên quan có trước - Dựa kiến thức học cách huấn luyện mạng nơ-ron - Đọc thêm tài liệu tra cứu mạng - Tham khảo ý kiến thực theo hướng dẫn giảng viên 1.5 Bố cục đề tài - Chương 1: Tổng quan Ở chương này, trình bày mục tiêu, giới hạn đề tài, phương pháp nghiên cứu, bố cục đặt vấn đề - Chương 2: Cơ sở lý thuyết Ở chương này, trình bày hình thành phát triển Yolo va thuật toán Yolov5 - Chương 3: Thiết kế hệ thống Ở chương này, trình bày sơ đồ hoạt động, thiết kế phần mềm, chức hoạt động phần mềm - Chương 4: Kết thực Ở chương này, trình bày kết đạt sau thiết kế thi công - Chương 5: Kết luận hướng phát triển Ở chương tổng kết lại, trình bày ưu điểm, khuyết điểm trình nghiên cứu hướng phát triển đề tài # parameters nc: 20 # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple # anchors anchors: [116,90, 156,198, 373,326] [30,61, 62,45, 59,119] [10,13, 16,30, 33,23] # P5/32 # P4/16 # P3/8 # YOLOv5 backbone backbone: # [from, number, module, args] [[-1, 1, Focus, [64, 3]], # 0-P1/2 [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 [-1, 3, BottleneckCSP, [128]], [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 [-1, 9, BottleneckCSP, [256]], [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 [-1, 9, BottleneckCSP, [512]], [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 [-1, 1, SPP, [1024, [5, 9, 13]]], ] # YOLOv5 head head: [[-1, 3, BottleneckCSP, [1024, False]], [-1, 1, Conv, [512, 1, 1]], 29 # [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 6], 1, Concat, [1]], # cat backbone P4 [-1, 3, BottleneckCSP, [512, False]], # 13 [-1, 1, Conv, [256, 1, 1]], [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 4], 1, Concat, [1]], # cat backbone P3 [-1, 3, BottleneckCSP, [256, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], # 18 (P3/8-small) [-2, 1, Conv, [256, 3, 2]], [[-1, 14], 1, Concat, [1]], # cat head P4 [-1, 3, BottleneckCSP, [512, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], # 22 (P4/16-medium) [-2, 1, Conv, [512, 3, 2]], [[-1, 10], 1, Concat, [1]], # cat head P5 [-1, 3, BottleneckCSP, [1024, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], [[], 1, Detect, [nc, anchors]], # 26 (P5/32-large) # Detect(P5, P4, P3) ] Download file coco128.yaml chỉnh sửa tên nhãn lớp, sau đổi tên file thành custom_data.yaml lưu file thư mục data google colab train: /traindata/images/train/ val: /traindata/images/val/ # number of classes nc: 20 # class names 30 names: [ 'Left', 'Right', 'Stop' , 'Straight' , 'Straight_Ri ght' , 'Straight_Left' , 'R305' , 'P.112' , 'Slow' , 'Limit_3 0' , 'Limit_60' , 'Main road' , 'Dangerous' , 'Roundabout' , 'Cross Road , 'No Left Turn','Disabled Person' , 'No parking' , 'Two Way' , 'W.207a'] 3.3 Training Tiếp theo để xác định cấu hình kiến trúc mơ hình YOLOv5 ta viết tệp cấu hình mơ hình cho custom object detector Chọn base model (mơ hình sở) nhỏ nhất, nhanh YOLOv5 YOLOv5 đề xuất versions theo hình 3-7 Hình 3-7 Các version YOLOv5 APtest biểu thị kết máy chủ COCO test-dev2017, tất kết AP khác, biểu thị độ xác val2017, size(pixels) 640 Params (M) biến thu nhận chương trình FLOPs thước hiệu suất máy tính Với data custom_data.yaml files, ta sẵn sàng để huấn luyện, để bắt đầu huấn luyện, ta chạy the training command theo tùy chọn sau: - img: xác định kích thước hình ảnh đầu vào - batch: số ảnh để load vào (16-32) lần - epochs: số lần học - data: đặt đường dẫn đến tệp yaml 31 - cfg: định cấu hình mơ hình - weights: định đường dẫn tùy chỉnh đến weights - name: tên kết - nosave: lưu điểm kiểm tra cuối - cache: hình ảnh nhớ cache để train nhanh Tiến hành huấn luyện nhận dạng biển báo giao thơng YOLOv5 thể hình 3-8 python train.py img 640 batch 10 epochs 2000 data cus tom_data.yaml weights yolov5s.pt nosave cache Hình 3-8 Quá trình huấn luyện YOLOv5 32 CHƯƠNG KẾT QUẢ Nhận diện biển báo giao thông cách quay video Đầu tiên quay lại hình ảnh biển báo giao thơng hình 4-1 Hình 4-1 Biển báo giao thông cắt từ video.mp4 Upload video.mp4 vào google colab để lưu lại xuất kết dự đoán YOLOv5 !python detect.py weights runs/train/exp/weights/last.pt -img 640 conf 0.25 source /video.mp4 Hình 4-2 thể YOLOv5 nhận dạng labels biển báo video 33 Hình 4-2 Nhận dạng labels biến báo video Sau kết lưu lại ta vào đường dẫn yolov5runsdectect hình 4-3 để xem kết nhận diện Hình 4-3 Đường dẫn xuất kết video Kết cắt từ video.mp4 thể hình 4-4,5,6,7,8,9,10 34 Hình 4-4 Kết nhận diện biển báo thẳng rẽ phải Hình 4-5 Kết nhận diện biển báo thẳng rẽ trái 35 Hình 4-6 Hình biển báo: rẽ phải, rẽ trái, thẳng, cấm ngược chiều cắt từ video.mp4 36 Hình 4-7 Biển báo R305(cho phép người bộ), thẳng rẽ phải, rẽ trái, giới hạn 30km/h Hình 4-8 Biển báo đường ưu tiên, cảnh báo, chậm, giới hạn 60km/h 37 Hình 4-9 Biển báo cấm người bộ, chiều, nơi giao nhau, cấm dừng đỗ xe Hình 4-10 Biển báo người khuyết tật, cấm rẽ trái, vòng xoay, W207.a (đường giao không ưu tiên) 38 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận 5.1.1 Ưu điểm Bước đầu xây dựng mơ hình huấn luyện để phát nhận dạng đối tượng biển báo cách sử dụng thuật toán mạng YOLOv5 để hỗ trợ việc phát nhận dạng biển báo Sử dụng Google Colab – Platform mạnh mẽ để build train mơ hình học máy, học sâu giúp tiết kiệm tối đa thời gian GPU cung cấp Google Kết nhận diện, xác suất mơ hình image classification dự báo cho biển báo giao thơng xác tương đối ổn định Độ tin cậy trung bình hệ thống dự đoán với 20 class từ 70% trở lên Kết trình phụ thuộc nhiều vào trình thu thập liệu huấn luyện, phát hiện, nhận dạng 5.1.2 Nhược điểm Do thời gian tìm hiểu xây dựng hệ thống kiến thức hạn chế, thử với 20 loại biển báo khác thêm vào đề tài lĩnh vực nghiên cứu lớn nên hệ thống hoạt động dừng mức nghiên cứu, chưa thể đưa áp dụng thực tế chưa đầy đủ chức để tới tay người dùng Cần có thêm thời gian nghiên cứu để hồn thiện chương trình hơn, tìm thêm nhiều nguồn hình ảnh biển báo giao thơng khác mạng để huấn luyện nhận dạng nhiều biển báo khác, bên cạnh ứng dụng đề tài vào thực tiễn 5.2 Hướng phát triển Dựa vào phát triển công nghệ mạnh mẽ tương lai sử dụng phiên YOLO nhiều mạng khác Single Shot 39 Detector, RentiaNet, CenterNet,…để huấn luyện nhận dạng nhiều nhóm biển báo giao thơng cách xác nhanh gọn nhằm: - Cải tiến chất lượng huấn luyện phát ảnh biển báo - Mở rộng sở liệu biển báo giao thông - Cải tiến phương pháp giải trường hợp biển báo bị hư hỏng bị chồng lấp - Nâng cấp hoàn thiện khả hệ thống trở thành hệ thống nhận dạng đưa cảnh báo tức thời cho người tham gia giao thông chương trình hồn chỉnh 40 PHỤ LỤC Trích dẫn source code chương trình đề tài: !git clone https://github.com/ultralytics/yolov5 # clone rep o %cd yolov5 %pip install -qr requirements.txt # install dependencies import torch from IPython.display import Image, clear_output # to display images clear_output() print(f"Setup complete Using torch {torch. version } ({tor ch.cuda.get_device_properties(0).name if torch.cuda.is_availa ble() else 'CPU'})") torch 1.5.0+cu101 _CudaDeviceProperties(name='Tesla P100PCIE-16GB', major=6, minor=0, total_memory=16280MB, multi_processor_count=56) # Download Custom Dataset from Roboflow # Replace [YOUR LINK HERE] !unzip -q /traindata.zip -d / # parameters nc: 20 # number of classes depth_multiple: 0.33 # model depth multiple width_multiple: 0.50 # layer channel multiple # anchors anchors: [116,90, 156,198, 373,326] # P5/32 [30,61, 62,45, 59,119] # P4/16 [10,13, 16,30, 33,23] # P3/8 # YOLOv5 backbone backbone: # [from, number, module, args] [[-1, 1, Focus, [64, 3]], # 0-P1/2 [-1, 1, Conv, [128, 3, 2]], # 1-P2/4 [-1, 3, BottleneckCSP, [128]], [-1, 1, Conv, [256, 3, 2]], # 3-P3/8 [-1, 9, BottleneckCSP, [256]], [-1, 1, Conv, [512, 3, 2]], # 5-P4/16 [-1, 9, BottleneckCSP, [512]], [-1, 1, Conv, [1024, 3, 2]], # 7-P5/32 41 [-1, 1, SPP, [1024, [5, 9, 13]]], ] # YOLOv5 head head: [[-1, 3, BottleneckCSP, [1024, False]], # [-1, 1, Conv, [512, 1, 1]], [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 6], 1, Concat, [1]], # cat backbone P4 [-1, 3, BottleneckCSP, [512, False]], # 13 [-1, 1, Conv, [256, 1, 1]], [-1, 1, nn.Upsample, [None, 2, 'nearest']], [[-1, 4], 1, Concat, [1]], # cat backbone P3 [-1, 3, BottleneckCSP, [256, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], # [-2, 1, Conv, [256, 3, 2]], [[-1, 14], 1, Concat, [1]], # cat head P4 [-1, 3, BottleneckCSP, [512, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], # medium) [-2, 1, Conv, [512, 3, 2]], [[-1, 10], 1, Concat, [1]], # cat head P5 [-1, 3, BottleneckCSP, [1024, False]], [-1, 1, nn.Conv2d, [na * (nc + 5), 1, 1]], # large) [[], 1, Detect, [nc, anchors]], # Detect(P5, ] 18 (P3/8-small) 22 (P4/16- 26 (P5/32P4, P3) train: /traindata/images/train/ val: /traindata/images/val/ # number of classes nc: 20 # class names names: [ 'Left', 'Right', 'Stop' , 'Straight' , 'Straight_Ri ght','Straight_Left' , 'R305' , 'P.112' , 'Slow' , 'Limit_30' , 'Limit_60' , 'Main road' , 'Dangerous' , 'Roundabout' , 'Cr oss Road , 'No Left Turn','Disabled Person' , 'No parking' , 'Two Way' , 'W.207a'] python train.py img 640 batch 10 epochs 2000 data cus tom_data.yaml weights yolov5s.pt nosave cache !python detect.py weights runs/train/exp/weights/last.pt -img 640 conf 0.25 source /video.mp4 42 TÀI LIỆU THAM KHẢO [1] Joseph Redmon, Santosh Divvalay, Ross Girshick, Ali Farhadiy, You Only Look Once: Unified, Real-Time Object Detection, University of Washington, 2016 [2] Yi-Qi Huang, Jia-Chun Zheng, Shi-Dan Sun, Cheng-Yi Chen, Optimized YOLOv3 Algorithm and Its Application in Traffic Flow Detections, 2020 [3] Vũ Hữu Tiệp, “Machine Learning bản”, Nhà xuất khoa học kỹ thuật, 2016 [4] Tsung-Yi Lin, Piotr Dollár, Ross Girshick, Kaiming He, Bharath Hariharan, Serge Belongie, Feature Pyramid Networks for Object Detectio, Facebook AI Research (FAIR), Cornell University and Cornell Tech, 2017 [5] Shu Liu, Lu Qi, Haifang Qin, Jianping Shi, Jiaya Jia, Path Aggregation Network for Instance Segmentation, The Chinese University of Hong Kong, Peking University, SenseTime Research, YouTu Lab, Tencent, 2018 [6] Joseph Redmon, Ali Farhadi, YOLOv3: An incremental Improvement, University of Washington, 2018 [7] Mykola, GTSRB - German Traffic Sign Recognition Benchmark, https://www.kaggle.com/meowmeowmeowmeowmeow/gtsrb-german-traffic-sign, 2018 [8] Mì AI, Dữ liệu biển báo giao thông Việt Nam, https://miai.vn/thu-vien-mi-ai/, 2021 43 ... ĐIỆN ĐIỆN TỬ BỘ MƠN KỸ THUẬT MÁY TÍNH - VIỄN THÔNG BÁO CÁO TIỂU LUẬN NHẬN DIỆN BIỂN BÁO GIAO THÔNG BẰNG YOLOv5 NGÀNH CÔNG NGHỆ KỸ THUẬT ĐIỆN TỬ - VIỄN THÔNG Sinh viên: VÕ TRẦN CHƯƠNG MSSV: 18161193... huấn luyện YOLOv5 32 CHƯƠNG KẾT QUẢ Nhận diện biển báo giao thông cách quay video Đầu tiên quay lại hình ảnh biển báo giao thơng hình 4-1 Hình 4-1 Biển báo giao thông cắt từ video.mp4 Upload video.mp4... 4-2 NHẬN DẠNG CÁC LABELS CỦA BIỂN BÁO BẰNG VIDEO32 HÌNH 4-3 ĐƯỜNG DẪN XUẤT KẾT QUẢ VIDEO32 HÌNH 4-4 KẾT QUẢ NHẬN DIỆN ĐƯỢC BIỂN BÁO ĐI THẲNG VÀ RẼ PHẢI33 HÌNH 4-5 KẾT QUẢ NHẬN DIỆN ĐƯỢC BIỂN BÁO

Ngày đăng: 25/12/2021, 23:01

Hình ảnh liên quan

BẢNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5
BẢNG NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN Xem tại trang 4 của tài liệu.
Hình 2-1. Sơ đồ kiến trúc mạng YOLO. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 2.

1. Sơ đồ kiến trúc mạng YOLO Xem tại trang 11 của tài liệu.
Hình 2-2 Các layer trong mạng Darknet-53. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 2.

2 Các layer trong mạng Darknet-53 Xem tại trang 12 của tài liệu.
Hình 2-4 Vị trí và thông tin của vật thể được duy trì đến lúc cuối cùng. (Để đơn giản, trong hình trên không vẽ số chiều của lớp tích chập). - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 2.

4 Vị trí và thông tin của vật thể được duy trì đến lúc cuối cùng. (Để đơn giản, trong hình trên không vẽ số chiều của lớp tích chập) Xem tại trang 14 của tài liệu.
Hình 2-3 Chuyển các lớp Fully Connected cuối thành các lớp tích chập. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 2.

3 Chuyển các lớp Fully Connected cuối thành các lớp tích chập Xem tại trang 14 của tài liệu.
Qua đó, grid system sẽ chia hình gốc thành số grid tương đương với kích thước của lớp cuối (không đề cập đến số chiều), như ví dụ trên lớp cuối có kích thước 3 x 3 vậy ta sẽ chia hình gốc thành 3 x 3 grid (đường kẻ đậm) - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

ua.

đó, grid system sẽ chia hình gốc thành số grid tương đương với kích thước của lớp cuối (không đề cập đến số chiều), như ví dụ trên lớp cuối có kích thước 3 x 3 vậy ta sẽ chia hình gốc thành 3 x 3 grid (đường kẻ đậm) Xem tại trang 15 của tài liệu.
Hình 2-6 Mô tả chỉ số IoU. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 2.

6 Mô tả chỉ số IoU Xem tại trang 16 của tài liệu.
Xét ví dụ với hình 2-7 bên dưới, cô gái và chiếc xe đều nằm cùng chung 1 grid. Khi đó, y sẽ được gán như sau y = [1, 120, 20, 20 , 120 , 1 , 0 , 1 , 90, 50 ,  90 , 20 , 0 , 1]  - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

t.

ví dụ với hình 2-7 bên dưới, cô gái và chiếc xe đều nằm cùng chung 1 grid. Khi đó, y sẽ được gán như sau y = [1, 120, 20, 20 , 120 , 1 , 0 , 1 , 90, 50 , 90 , 20 , 0 , 1] Xem tại trang 18 của tài liệu.
Hình 2-8 Thuật toán được áp dụng ở ngõ ra (a): Với mỗi grid, lấy 2 bounding box có pc cao nhất. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 2.

8 Thuật toán được áp dụng ở ngõ ra (a): Với mỗi grid, lấy 2 bounding box có pc cao nhất Xem tại trang 20 của tài liệu.
Hình 2-9 Cấu trúc nhận diện vật thể của YOLOv5. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 2.

9 Cấu trúc nhận diện vật thể của YOLOv5 Xem tại trang 21 của tài liệu.
- Xác định cấu hình và kiến trúc mô hình YOLOv5. - Huấn luyện a custom YOLOv5 Detector. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

c.

định cấu hình và kiến trúc mô hình YOLOv5. - Huấn luyện a custom YOLOv5 Detector Xem tại trang 23 của tài liệu.
Bảng 3.1 Danh sách 20 biển báo giao thông khác nhau - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Bảng 3.1.

Danh sách 20 biển báo giao thông khác nhau Xem tại trang 24 của tài liệu.
Hình 3-1 Một số biển báo trong tệp train của images. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 3.

1 Một số biển báo trong tệp train của images Xem tại trang 25 của tài liệu.
Nếu có hình ảnh chưa được gắn nhãn, trước tiên sẽ cần phải gắn nhãn chúng chỉ cần tải lên những hình ảnh muốn chú thích, chú thích hình ảnh và xuất nhãn như hình 3-3. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

u.

có hình ảnh chưa được gắn nhãn, trước tiên sẽ cần phải gắn nhãn chúng chỉ cần tải lên những hình ảnh muốn chú thích, chú thích hình ảnh và xuất nhãn như hình 3-3 Xem tại trang 26 của tài liệu.
Hình 3-3 Tạo các labels cho các biển báo. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 3.

3 Tạo các labels cho các biển báo Xem tại trang 26 của tài liệu.
Hình 3-5 Xuất file chứa các nhãn của các biển báo. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 3.

5 Xuất file chứa các nhãn của các biển báo Xem tại trang 27 của tài liệu.
Hình 3-6 Các tệp Text Document trong folder labels. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 3.

6 Các tệp Text Document trong folder labels Xem tại trang 27 của tài liệu.
Tiếp theo để xác định được cấu hình và kiến trúc mô hình YOLOv5 ta viết một tệp cấu hình mô hình cho custom object detector - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

i.

ếp theo để xác định được cấu hình và kiến trúc mô hình YOLOv5 ta viết một tệp cấu hình mô hình cho custom object detector Xem tại trang 32 của tài liệu.
- cfg: chỉ định cấu hình mô hình - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

cfg.

chỉ định cấu hình mô hình Xem tại trang 33 của tài liệu.
Đầu tiên quay lại những hình ảnh biển báo giao thông như hình 4-1. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

u.

tiên quay lại những hình ảnh biển báo giao thông như hình 4-1 Xem tại trang 34 của tài liệu.
Hình 4-2 Nhận dạng các labels của biến báo bằng video. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 4.

2 Nhận dạng các labels của biến báo bằng video Xem tại trang 35 của tài liệu.
Hình 4-3 Đường dẫn xuất kết quả video. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 4.

3 Đường dẫn xuất kết quả video Xem tại trang 35 của tài liệu.
Hình 4-4 Kết quả nhận diện được biển báo đi thẳng và rẽ phải. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 4.

4 Kết quả nhận diện được biển báo đi thẳng và rẽ phải Xem tại trang 36 của tài liệu.
Hình 4-5 Kết quả nhận diện được biển báo đi thẳng rẽ trái. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 4.

5 Kết quả nhận diện được biển báo đi thẳng rẽ trái Xem tại trang 36 của tài liệu.
Hình 4-6 Hình biển báo: rẽ phải, rẽ trái, đi thẳng, cấm đi ngược chiều được cắt ra từ video.mp4. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 4.

6 Hình biển báo: rẽ phải, rẽ trái, đi thẳng, cấm đi ngược chiều được cắt ra từ video.mp4 Xem tại trang 37 của tài liệu.
Hình 4-7 Biển báo R305(cho phép người đi bộ), đi thẳng và rẽ phải, rẽ trái, giới hạn 30km/h. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 4.

7 Biển báo R305(cho phép người đi bộ), đi thẳng và rẽ phải, rẽ trái, giới hạn 30km/h Xem tại trang 38 của tài liệu.
Hình 4-8 Biển báo đường ưu tiên, cảnh báo, đi chậm, giới hạn 60km/h. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 4.

8 Biển báo đường ưu tiên, cảnh báo, đi chậm, giới hạn 60km/h Xem tại trang 38 của tài liệu.
Hình 4-10 Biển báo người khuyết tật, cấm rẽ trái, vòng xoay, W207.a (đường giao nhau không ưu tiên). - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 4.

10 Biển báo người khuyết tật, cấm rẽ trái, vòng xoay, W207.a (đường giao nhau không ưu tiên) Xem tại trang 39 của tài liệu.
Hình 4-9 Biển báo cấm người đi bộ, đi 2 chiều, nơi giao nhau, cấm dừng và đỗ xe. - TIỂU LUẬN NHẬN DIỆN BIỂN báo GIAO THÔNG BẰNG YOLOv5

Hình 4.

9 Biển báo cấm người đi bộ, đi 2 chiều, nơi giao nhau, cấm dừng và đỗ xe Xem tại trang 39 của tài liệu.

Mục lục

    DANH MỤC HÌNH ẢNH

    1.2 Mục tiêu của đề tài

    1.3 Giới hạn đề tài

    1.4 Phương pháp nghiên cứu

    1.5 Bố cục đề tài

    CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

    2.1 Kiến trúc mạng Yolo

    2.3 Khái niệm về chỉ số IoU và thuật toán Non-max suppression

    2.4 Gán nhãn các mẫu

    2.8 Cấu trúc nhận diện vật thể của YOLOv5