TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MÔN CÔNG NGHỆ THÔNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI ỨNG DỤNG THUẬT TOÁN YOLOV5 TRONG NHẬN DIỆN ĐỐI TƯỢNG TRONG XE TỰ LÁI Giảng viê[.]
TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MƠN CƠNG NGHỆ THƠNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: ỨNG DỤNG THUẬT TOÁN YOLOV5 TRONG NHẬN DIỆN ĐỐI TƯỢNG TRONG XE TỰ LÁI Giảng viên hướng dẫn: ThS NGUYỄN LÊ MINH Sinh viên thực hiện: ĐẶNG BÌNH PHƯỚC Lớp : CQ.59.CNTT Khố : 59 Tp Hồ Chí Minh, năm 2022 TRƯỜNG ĐẠI HỌC GIAO THÔNG VẬN TẢI PHÂN HIỆU TẠI TP HỒ CHÍ MINH BỘ MƠN CƠNG NGHỆ THƠNG TIN BÁO CÁO ĐỒ ÁN TỐT NGHIỆP ĐỀ TÀI: ỨNG DỤNG THUẬT TOÁN YOLOV5 TRONG NHẬN DIỆN ĐỐI TƯỢNG TRONG XE TỰ LÁI Giảng viên hướng dẫn: ThS NGUYỄN LÊ MINH Sinh viên thực hiện: ĐẶNG BÌNH PHƯỚC Lớp : CQ.59.CNTT Khố : 59 Tp Hồ Chí Minh, năm 2022 TRƯỜNG ĐẠI HỌC GIAO THƠNG VẬN TẢI CỘNG HỊA XÃ HỘI CHỦ NGHIÃ VIỆT NAM PHÂN HIỆU TẠI THÀNH PHỐ HỒ CHÍ MINH Độc lập – Tự – Hạnh phúc NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP BỘ MÔN: CÔNG NGHỆ THÔNG TIN -*** Mã sinh viên: 5951071079 Họ tên SV: ĐẶNG BÌNH PHƯỚC Khóa: 59 Lớp: CQ.59.CNTT Tên đề tài ỨNG DỤNG THUẬT TOÁN YOLOV5 TRONG NHẬN DIỆN ĐỐI TƯỢNG TRONG XE TỰ LÁI Mục đích, u cầu a Mục tiêu Xây dựng mơ hình Phát Đối Tượng phương tiện giao thông biển báo để đưa cảnh báo cho hệ thống xe tự lái b Yêu cầu Yêu cầu công nghệ - Ngơn ngữ lập trình: Python u cầu chức - Nhận hình ảnh đầu vào - Phát phân loại đối tượng giao thông Yêu cầu phi chức i - Tốc độ xử lý nhanh Yêu cầu tổ chức code - Đơn giản dễ hiểu - Thể rõ ràng kết thuật toán - Thể rõ đầu thuật toán Nội dung phạm vi đề tài a Nội dung Tổng quan tốn Tổng quan cơng nghệ sử dụng Khảo sát toán Thu thập liệu Xây dựng phát triển mơ hình Kiểm thử chạy thử nghiệm b Phạm vi Nghiên cứu Học Sâu Nghiên cứu mơ hình Phát Đối tượng Cơng nghệ, cơng cụ ngơn ngữ lập trình Cơng nghệ sử dụng: Pytorch Cơng cụ lập trình: Jupyter Notebook Ngơn ngữ lập trình: Python Các kết dự kiến đạt ứng dụng Phát phương tiện giao thông Phân loại phương tiện giao thông ii Phát biển báo giao thông Phân loại biển báo giao thông Giảng viên cán hướng dẫn Họ tên: Ngyễn Lê Minh Đơn vị công tác: Trường Đại học Giao thông Vận tải phân hiệu Thành phố Hồ Chí Minh Điện thoại: 0931385579 Ngày Email: nlminh@utc2.edu.vn tháng 03 năm 2021 Đã giao nhiệm vụ TKTN Trưởng BM Công nghệ Thông tin Giảng viên hướng dẫn ThS Trần Phong Nhã Đã nhận nhiệm vụ TKTN Sinh viên: Đặng Bình Phước Ký tên: Điện thoại: Email: 591071079@st.utc2.edu.vn iii LỜI CẢM ƠN Kết thúc năm học đại học, trải qua cảm xúc đời sinh viên đại học, em xin gửi lời cảm ơn chân thành đến Quý Thầy Cô Bộ môn Công nghệ Thông tin – Trường Đại học Giao thơng Vận tải phân hiệu Thành phố Hồ Chí Minh suốt trình học tập em Cảm ơn tận tâm giảng dạy, bảo em khơng kiến thức chuyên ngành mà câu chuyện, học đời sống mà đong đếm Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến thầy Nguyễn Lê Minh, người thầy, người bạn, người cha tận tâm suốt trình học tập phát triển em Người dành nhiều thời gian để giúp đỡ, định hướng cho em suốt năm học đại học Cùng với cỗ vũ, hướng dẫn, góp ý nhiệt tình thầy giúp em có tảng vững cho đồ án tốt nghiệp em Mặc dù nỗ lực trình xây dựng phát triển đồ án, song vấn đề khả năng, tư duy, kinh nghiệm điều kiện vật chất khác hạn, dẫn đến thiếu sót khơng thể tránh khỏi Em kính mong nhận thông cảm từ Quý Thầy Cô mong nhận lời đóng góp đến từ Q Thầy Cơ Cuối cùng, em kính chúc Q Thầy Cơ Bộ môn Công Nghệ Thông Tin dồi sức khoẻ, gặt hái nhiều thành công nghiệp giảng dạy Thầy Cô Em xin chân thành cảm ơn iv NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN Tp Hồ Chí Minh, ngày ….… tháng ….… năm ….… Giảng viên hướng dẫn Nguyễn Lê Minh v MỤC LỤC NHIỆM VỤ THIẾT KẾ TỐT NGHIỆP i LỜI CẢM ƠN iv NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN v MỤC LỤC vi DANH MỤC CHỮ VIẾT TẮT viii BẢNG BIỂU, SƠ ĐỒ, HÌNH VẼ ix CHƯƠNG MỞ ĐẦU 13 1.1.Tổng quan đề tài 13 1.2.Mục tiêu nhiệm vụ nghiên cứu 14 1.3.Phạm vi 14 1.4.Cấu trúc báo cáo thực tập tốt nghiệp 14 CHƯƠNG TỔNG QUAN NHẬN DIỆN ĐỐI TƯỢNG 15 2.1.Tổng quan hình ảnh kĩ thuật số 15 2.1.1 Điểm ảnh 15 2.1.2 Màu ảnh 15 2.1.3 Ảnh 15 2.2.Tổng quan Học sâu 16 2.3.Tổng quan Nhận diện Đối Tượng 18 2.4.Tổng quan thuật toán YOLOv5 19 2.5.Kiến trúc thuật toán YOLOv5 22 2.6.Phép đo đánh giá mơ hình Nhận diện Đối tượng 28 vi 2.6.1 Ma trận nhầm lẫn 28 2.6.2 Precision Recall 29 2.6.3 mAP 30 CHƯƠNG THU THẬP VÀ PHÂN TÍCH DỮ LIỆU 33 3.1.Phương tiện giao thông 33 3.2.Biển báo giao thông 38 3.3.Tín hiệu giao thơng 44 CHƯƠNG HUẤN LUYỆN, ĐÁNH GIÁ VÀ THỬ NGHIỆM MƠ HÌNH 47 4.1.Phương tiện giao thông 47 4.1.1 Huấn luyện mơ hình 47 4.1.2 Đánh giá mô hình 50 4.1.3 Thử nghiệm 52 4.2.Biển báo giao thông 55 4.2.1 Huấn luyện mơ hình 55 4.2.2 Đánh giá mơ hình 57 4.2.3 Thử nghiệm 59 4.3.Tín hiệu giao thông 62 4.3.1 Huấn luyện mơ hình 62 4.3.2 Đánh giá mơ hình 63 4.3.3 Thử nghiệm 64 KẾT LUẬN 68 vii DANH MỤC CHỮ VIẾT TẮT STT Mô tả Ý nghĩa AP Average Precision mAP Mean Average Precision IoT Internet of Things AI Artificial Intelligence CNN Convolution Neural Network CSPNet Cross Stage Partial Network PANet Path Aggregation Network FPN Feature Pyramid Network BottleneckCSP Bottleneck Cross Stage Partial 10 TP True Positive 11 FP False Positive 12 TN True Negative 13 FN False Negative 14 CONV Convolution Ghi viii Hình 4.11: Biểu đồ Precision-Recall mơ hình biển báo giao thơng Tuy có nhiều biển báo có đường Precision-Recall tốt giúp cho AP đạt giá trị cao, nhiên phủ nhận có nhiều Precision-Recall số biển báo cịn thấp, điều hồn tồn chấp nhận số biển báo phần thu thập phân tích cho thấy số lượng cịn Do mơ hình dự đốn biển báo có số lượng biển báo quan trọng, xuất nhiều mơ hình dự đốn tốt Đặng Bình Phước - K59 58 4.2.3 Thử nghiệm Hình 4.12: Ảnh trước (trên) sau (dưới) dự đốn thử nghiệm mơ hình biển báo giao thơng Đặng Bình Phước - K59 59 Hình 4.13: Ảnh trước (trên) sau (dưới) dự đốn thử nghiệm mơ hình biển báo giao thơng Đặng Bình Phước - K59 60 Hình 4.14: Ảnh trước (trên) sau (dưới) dự đoán thử nghiệm mơ hình biển báo giao thơng Đặng Bình Phước - K59 61 4.3 Tín hiệu giao thơng 4.3.1 Huấn luyện mơ hình Hình 4.15: Đồ thị lỗi huấn luyện thử nghiệm trình huấn luyện mơ hình tín hiệu giao thơng Dựa vào độ thị q trình học thấy loại hàm trên tập huấn luyện tập thử nghiệm tiến sát đến giá trị Chứng minh mô hình hoạt động tốt tập liệu, đạt chất lượng cao Đặng Bình Phước - K59 62 4.3.2 Đánh giá mơ hình Hình 4.16: Ma trận nhần lẫn mơ hình tín hiệu giao thơng Dựa vào ma trận nhận thấy, hầu hết tín hiệu giao thơng khơng có tượng nhầm lẫn với nhau, chiếm nhỏ số nhần lẫn với ảnh Đặng Bình Phước - K59 63 Hình 4.17: Biểu đồ Precision-Recall mơ hình tín hiệu giao thơng Phần biểu đồ Precision – Recall có diện tính AP cao loại tín hiệu giao thơng, từ giúp cho mAP@0.5 tức mAP ngưỡng 0.5 đạt giá trị cao 0.882 4.3.3 Thử nghiệm Đặng Bình Phước - K59 64 Hình 4.18: Ảnh tín hiệu giao thơng Việt Nam thử nghiệm Hình 4.19: Ảnh dự đốn tín hiệu giao thơng Việt Nam thử nghiệm Đặng Bình Phước - K59 65 Hình 4.20: Ảnh tín hiệu giao thơng Việt Nam thử nghiệm Hình 4.21: Ảnh dự đốn tín hiệu giao thơng Việt Nam thử nghiệm Đặng Bình Phước - K59 66 Hình 4.22: Ảnh tín hiệu giao thơng Việt Nam thử nghiệm Hình 4.23: Ảnh dự đốn tín hiệu giao thông Việt Nam thử nghiệm Đặng Bình Phước - K59 67 KẾT LUẬN Kết đạt Dựa vào phần lý thuyết mô hình YOLOv5 trình cách đầy đủ dẫn dắt Học sâu, đến mơ hình Neural Network tảng thuật toán xử lý ảnh sau này, sau thành phần mơ hình mạng YOLOv5 kiến trúc mơ hình giúp mơ hình nhận diện, xác định vị trí phân loại đối tượng Qua xây dựng mơ hình cho loại tốn khác phục vụ cho xe tự lái nhận diện phương tiện giao thông, nhận diện biển báo nhận diện tín hiệu giao thơng Vấn đề tồn đọng Do nguồn liệu phù hợp hạn chế, mơ hình khó xây dựng nhận diện phương tiện giao thông nhận diện biển báo cịn số sai sót, độ xác chưa đạt mong muốn Kiến nghị Xây dựng nguồn liệu phù hợp với môi trường Việt Nam Xây dựng mơ hình dựa vào nguồn liệu tăng độ mAP mơ hình 90% Đặng Bình Phước - K59 68 PHỤ LỤC Phụ lục 1: Hướng dẫn cài đặt Source: https://github.com/phuocdangbinh/yolov5_traffic_obstructions Bước 1: Cài đặt python 3.9 Bước 2: Clone github - git clone https://github.com/phuocdangbinh/yolov5_traffic_obstructions.git Bước 3: Cài đặt thư viện cần thiết - Vào thư mục yolov5_traffic_obstructions - Mở terminal folder - Gõ lệnh: pip install -r requirements.txt Phụ lục 2: Hướng dẫn sử dụng Bước 1: Vào thư mục yolov5_traffic_obstructions git clone cài đặt Phụ lục Bước 2: Mở terminal thư mục yolov5_traffic_obstructions Bước 3: Đưa dự đoán câu lệnh python detect.py weights model_for_detect img 640 conf your_conf -source source_want_detect Trong đó: - model_for_detect: mơ hình muốn sử dụng để dự đốn Các mơ hình lưu trữ thư mục weights • yolov5_traffic.pt: dự đốn phương tiện giao thơng • yolov5_traffic_sign.pt: dự đốn biển báo giao thơng • yolov5_traffic_light.pt: dự đốn tín hiệu giao thơng Đặng Bình Phước - K59 69 - source_want_detect: nguồn liệu muốn dự đốn • 0: webcam • img.jpg: hình ảnh • video.mp4: video • path/ : đường dẫn • path/*.jpg: glob • 'https://youtu.be/… : video youtube - your_conf (0 – 1): mức độ tin tưởng mơ hình để đưa nhỏ Ví dụ: dự đốn phương tiện giao thơng, độ tin tưởng 0.25 với hình ảnh test.jpg nằm thư mục yolov5_traffic_obstructions python detect.py weights weights/yolov5_traffic.pt img 640 conf 0.25 -source test.jpg Bước 4: Nhận kết thư mục yolov5_traffic_obstructions/runs/detect/exp* Đặng Bình Phước - K59 70 TÀI LIỆU THAM KHẢO [1] Kaiming He, Xiangyu Zhang, Shaoqing Ren, Jian Sun (13/09/2018), Deep Residual Learning for Image Recognition [2] Xinhao Jiang, Wei Cai, Zhiyong Yang, Peiwei Xu and Qingjiang Dong (2021), IEPet: A Lightweight Multiscale Infrared Environmental Perception Network [3] Mingxing Tan, Quoc V Le (11/09/2020), EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks [4] Joseph Redmon, Ali Farhadi (08/04/2018), YOLOv3: An Incremental Improvement [5] Alexey Bochkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao (23/04/2020), YOLOv4: Optimal Speed and Accuracy of Object Detection [6] Khaled R Ahmed (2021), Smart Pothole Detection Using Deep Learning Based on Dilated Convolution [7] Sergey Ioffe, Christian Szegedy (2/12/2015), Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift [8] Overview of model structure about YOLOv5, https://github.com/ultralytics/yolov5/issues/280, truy cập ngày 10/06/2022 [9] Laughing-q (22/07/2020), Cấu trúc mạng YOLOV5, https://blog.csdn.net/Q1u1NG/article/details/107511465, truy cập ngày 30/05/2022 [10] Series YOLO: #4 Tìm hiểu cấu trúc YOLOv1,v2,v3 v4 – Phần 1, https://devai.info/2021/01/21/series-yolo-4-tim-hieu-cau-truc-yolov1v2v3-va-v4/ , truy cập ngày 22/05/2022 [11] Series YOLO: #4 Tìm hiểu cấu trúc YOLOv1,v2,v3 v4 – Phần 2, https://devai.info/2021/02/24/series-yolo-4-tim-hieu-cau-truc-yolov1v2v3-va-v4phan-2/ , truy cập ngày 23/05/2022 Đặng Bình Phước - K59 71 [12] Giới thiệu deep learning, https://nttuan8.com/gioi-thieu-ve-deep-learning/, truy cập ngày 20/05/2022 [13] Phạm Đình Khánh (2020), YOLO You Only Look Once, https://phamdinhkhanh.github.io/2020/03/09/DarknetAlgorithm.html, truy cập ngày 20/05/2022 [14] Jacob Solawetz (29/06/2020), YOLOv5 New Version - Improvements And Evaluation, https://blog.roboflow.com/yolov5-improvements-and-evaluation/ , truy cập ngày 1/06/20222 [15] Jacob Solawetz, Joseph Nelson (10/06/2020), How to Train YOLOv5 On a Custom Dataset, https://blog.roboflow.com/how-to-train-yolov5-on-a-custom- dataset/, truy cập ngày 15/05/2022 [16] Đánh giá model mAP - Object detection, https://devai.info/2020/12/17/timhieu-mapmean-average-precision-danh-gia-mo-hinh-object-detection-su-dungyolov4/, truy cập ngày 18/05/2022 [17] Thử tìm hiểu mAP – đo lường Object Detection model, https://miai.vn/2021/10/14/thu-tim-hieu-ve-map-do-luong-object-detection-model/, truy cập ngày 18/05/2022 Đặng Bình Phước - K59 72