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

Traffic Sign detection using YOLOV4

60 1,4K 44

Đ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

Định dạng
Số trang 60
Dung lượng 5,71 MB

Nội dung

xây dựng mô hình nhận diện biển báo giao thông sử dụng mạng nơ ron tích chập, phát hiện biển báo thời gian thực với mô hình YOLOv4. Viết lý thuyết CNN, yolov4, thực hiện và đánh giá mô hình. Lý thuyết về các tham số khi xây dựng một mô hình CNN hiệu quả. Thu thập dữ liệu biển báo Việt Nam, ngoài ra sử dụng tập GSTRB để training cho mô hình

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA ĐIỆN – ĐIỆN TỬ BỘ MÔN VIỄN THÔNG -o0o - BÁO CÁO ĐỒ ÁN MÔN HỌC NHẬN DIỆN BIỂN BÁO GIAO THÔNG Giảng viên hướng dẫn: Sinh viên thực hiện: TP HỒ CHÍ MINH, THÁNG 03 NĂM 2020 : : MỤC LỤC CHƯƠNG : TỔNG QUAN ĐỀ TÀI NHẬN DIỆN BIỂN BÁO GIAO THƠNG 1.2 Tình hình nghiên cứu nước 1.3 Tóm tắt q trình thực đề tài CHƯƠNG 2: CƠ SỞ LÝ THUYẾT MẠNG CNN VÀ THUẬT TOÁN YOLO 2.1 Deep Learning .7 2.2 Neural Network .8 2.3 Convolutional Neural Network 11 2.3.1 Tổng quát 11 2.3.2 Lớp tích chập (Convolutional Layer) .12 2.3.3 Lớp tổng hợp (Pooling layer) 14 2.3.4 Lớp kết nối đầy đủ (Fully Connected Layer) 15 2.3.5 Softmax 15 2.3.6 Batch Normalization 16 2.4 Thuật toán YOLO 17 2.4.1 Sơ lược thuật toán YOLO 17 2.4.2 Thuật toán YOLOv4 24 CHƯƠNG XÂY DỰNG MƠ HÌNH CNN PHÂN LOẠI BIỂN BÁO GIAO THÔNG TRÊN ẢNH 33 3.1 Sơ đồ khối tổng quát 33 3.2 Dataset 34 3.3 Tiền xử lí phân chia liệu .37 : 3.4 Định nghĩa mô hình .38 3.5 Huấn luyện thuật toán 42 CHƯƠNG XÂY DỰNG MƠ HÌNH PHÁT HIỆN BIỂN BÁO GIAO THÔNG TRÊN VIDEO 43 4.1 Sơ đồ khối tổng quát 43 4.2 Dataset 44 4.3 Huấn luyện thuật toán .47 4.3.1 Cài đặt thông số huấn luyện 47 4.3.2 Google Colab .48 4.3.3 Huấn luyện liệu .48 CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN NHẬN DIỆN BIỂN BÁO GIAO THÔNG 55 5.1 Kết luận 55 5.2 Hướng phát triển 56 TÀI LIỆU THAM KHẢO 58 : BẢNG KÍ HIỆU SỬ DỤNG TRONG ĐỒ ÁN Kí hiệu Ý nghĩa s Stride: số pixel dịch chuyển p lần trượt Padding: số hàng số cột tăng nc thêm lớp tích chập Số filter sử dụng lớp f*f H W Kí hiệu y Ý nghĩa Scaling factor hay scaling β parameter layer Shifitng factor hay offset ε layer Smoothing factor để tránh việc tích chập chia làm vơ nghía, thường có Kích thước filter yi giá trị nhỏ Đầu batch bw ci normalization Chiều rộng box Xác suất xuất vật thể Chiều dài lớp tích chập Chiều rộng lớp tích chập D pc bx Số chiều lớp tích chập Xác suất grid xét chứa vật thể Tọa độ x góc phía bên trái by box Tọa độ y góc phía bên bh µB box Chiều cao box Giá trị kì vọng thực nghiệm B tính tốn mini-batch B Độ lệch chuẩn thực nghiệm m tính tốn mini-batch B Số lượng instance mini-batch B Giá trị đầu vào thứ i minibatch sau chuẩn hóa tâm không S i B thứ i grid Tổng số grid ảnh Mẫu thứ i Số box : CHƯƠNG : TỔNG QUAN ĐỀ TÀI NHẬN DIỆN BIỂN BÁO GIAO THƠNG Chương trình bày tình hình nghiên cứu ngồi nước đề tài nhận diện biển báo giao thơng Từ đưa lí chọn đề tài tóm tắt q trình thực 1.1 Đặt vấn đề Trong vài năm trở lại đây, Artificial Intelligence (trí tuệ nhân tạo) hay cụ thể Machine Learning ( Máy học) phát triển Ứng dụng AI đa dạng ảnh hưởng tích cực đến đời sống như: Ơ tơ tự lái, hệ thống dịch tự động, chatbox tự động trả lời,… Hiện nay, có nhiều nghiên cứu tốn nhận diện biển báo, hệ thống từ đơn giản đến phức tạp, sử dụng nhiều thuật toán khác Do đó, dễ dàng việc thực đánh giá thuật tốn 1.2 Tình hình nghiên cứu ngồi nước Đối với tốn phân loại biển báo giao thông, tức nhận diện ảnh thuộc loại biển báo Đối với ngõ vào, ta phân loại vào class định Đây tốn phân lớp (Classification) Có nhiều thuật tốn để phân lớp liệu, từ cổ điển đến đại Nhưng mạng Nơ- ron tích chập đánh giá thuật tốn hiệu quả, tránh tác động từ mơi trường, nhiễu, thay đổi khoảng cách ảnh đến camera Trong đề tài này, mục tiêu đặt xây dựng mơ hình nhận diện biển báo giao thơng ảnh video Từ so sánh hiệu mơ hình khác Với tốn nhận diện biển báo, gồm hai toán lớn phát phân loại vật thể Có nhiều cách để phân loại vật thể bao gồm R-CNN, Fast R-CNN, Faster R-CNN : số thuật toán khác Trong đó, thuật tốn YOLO (You Only Look Once) xem vượt trội mặt thời gian đáp ứng thời gian thực tốt khả nhận diện đánh giá thấp R-CNN series khả nhận diện xác nằm khả chấp nhận Trong đề tài đồ án này, sử dụng thuật toán YOLO YOLOv4 để nhận diện biển báo giao thơng, YOLOv4 có đáp ứng thời gian thực không khác so với YOLOv3 cho kết nhận diện xác 1.3 Tóm tắt q trình thực đề tài Việc đề tài chia thành nhiều giai đoạn, giai đoạn thực cơng việc trình bày phần mục lục Chi tiết cho giai đoạn sau:  Tìm hiểu Deep Learning ứng dụng  Nghiên cứu xây dựng mơ hình CNN, YOLO  Tham khảo cách sử dụng thư viện môi trường ảo Lựa chọn thư viện phù hợp  Thu thập tiền xử lý liệu Phân chia dataset thành tập training, tập validation tập test  Xây dựng mơ hình phân loại mơ hình nhận diện biển báo giao thông : CHƯƠNG 2: CƠ SỞ LÝ THUYẾT MẠNG CNN VÀ THUẬT TOÁN YOLO Chương đưa lý thuyết Deep Learning, mạng Neural Network thuật toán YOLO Để thực việc phân loại phát biển báo giao thông, việc vận dụng kỹ thuật chứng minh hiệu Phần 2.1 giới thiệu nhanh kỹ thuật Deep Learning Phần 2.2 trình bày mạng Neural Network từ đưa sở để trình bày thuật toán Convolutional Neural Network phần 2.3 Phần 2.4 trình bày thuật tốn YOLO, mơ hình CNN để phát vật thể cách nhanh chóng hiệu 2.1 Deep Learning Deep Learning(Học sâu) nhánh nhỏ Machine Learning(Máy học), bắt nguồn từ thuật toán Neural Network Tuy nhiên, gần Deep Learning mang lại nhiều thành tựu kĩ thuật nhờ vào phát triển Big Data(Dữ liệu lớn), với tập liệu lớn giúp phát triển mạng Neural Network sâu với khả dự đốn xác cao (Hình 1.1) Bắt nguồn từ loại hình kinh doanh internet truyền thống tìm kiếm web quảng cáo Deep Learning ngày tạo nhiều lợi ích sống ngày Ví dụ lĩnh vực y tế, việc phân tích hình ảnh X-quang ứng dụng vào Deep Learning để nghiên cứu dự đoán khả mang bệnh người khám Và đặc biệt Deep Learning ứng dụng xe tự hành để dự đoán tình giao thơng : Hình 2.1 Quan hệ liệu khả dự đoán thuật toán Nguồn: Coursera Các ứng dụng khác áp dụng Neuron Network khác nhau: Các ứng dụng Đoán giá nhà Quảng cáo online Xe tự hành Nhận diện giọng nói Máy dịch Nhận diện vật thể Neural Network áp dụng Standard Neural Network Custom, Hybrid Neural Network Current Neural Network Convolutional Neural Network 2.2 Neural Network Neural Network mạng lưới gồm nhiều lớp lấy cảm hứng từ neuron người Ở đó, lớp để đưa đặc tính vật cần dự đoán vào gọi Input Layer Và layer cuối mang kết dự đoán gọi Output Layer Một mạng neuron có khơng có lớp Input Layer Output Layer gọi Hidden Layer, Hidden Layer giúp cho tỉ lệ dự đốn xác cao nhiên việc huấn luyện tốn nhiều thời gian dung lượng Mỗi Layer tập hợp nhiều node, node lớp sau kết nối với toàn node lớp trước : Mỗi node hidden layer output layer thực công việc sau: Liên kết với tất node layer trước với hệ số w riêng Mỗi node có hệ số bias b riêng Từ w,b biểu thị mối quan hệ node trước node sau Hình 2.2 Mối quan hệ ngõ vào ngõ node Node phía có đầu vào X1,X2, trọng số w1,w2 Ngõ y kết hàm phi tuyến hàm tuyến tính Hàm phi tuyến g cịn gọi hàm kích hoạt (activation) giúp tăng khả học mạng neural Các hàm phi kích hoạt thường sử dụng là: Sigmoid: Giá trị ngõ chuyển khoảng [0,1] công thức:  ( x)  1  e x Hàm sigmoid cho ngõ có giá trị ngõ vào lớn ngõ ngõ vào Ở thời gian đầu hàm sigmoid ưa chuộng sử dụng, nhiên sau hàm ln dương nên lấy gradient, hàm khó hội tụ Mặt khác hàm sigmoid dễ bị bão hịa khơng có gradient đầu vào nhỏ Vì vậy, sau hàm sigmoid sử dụng lớp tích chập cuối cần tính binary cross-entropy loss Tanh: Giá trị ngõ chuyển khoảng [-1,1] khiến có tính chất tâm khơng (zero-centered), theo cơng thức: Khi đó, ngõ ngõ vào lớn ngõ -1 ngõ vào nhỏ Hàm Tanh với tính chất tâm khơng giúp liệu phân bố quanh điểm 0, lấy đạo hàm có phần dương phần âm giúp việc hội tụ trở nên tốt 10 : Hình 4.1: Một số hình tập liệu đường phố Thành phố Hồ Chí Minh Hình 4.2 Một hình bị chèn nhiễu muối tiêu Sau thu thập, ảnh xác định tọa độ anchor box gán nhãn phần mềm labelImg Kết trả sau gán nhãn file txt chứa nhãn tọa độ cần thiết anchor box 46 : Hình 4.3 Gán nhãn hình labelImg file txt trả chứa liệu nhãn tọa độ anchor box BẢNG 4.1 NHÃN VÀ CÁC LOẠI BIỂN BÁO TRONG BÀI TOÁN NHẬN DIỆN 0:Đường cấm 1:Cấm ngược chiều 2:Cấm ô tô 3:Cấm ô tô rẽ phải 4:Cấm ô tô rẽ trái 5:Cấm dừng đỗ xe 6:Cấm đỗ xe 7:Cấm rẽ trái 8.Cấm rẽ trái rẽ phải 9.Cấm quay đầu 10.Cấm ô tô quay đầu 11.Cấm đỗ xe ngày lẻ 47 : 12.Cấm đỗ xe ngày chẵn 13.Cấm ô tô khách ô tô tải 14.Tốc độ tối đa cho phép 15.Cấm người 16.Hạn chế chiều cao 17.Hạn chế trọng lượng xe 18.Phía cấp điện 19.Giao với đường không ưu tiên 20.Trẻ em 21.Đi chậm 22.Nguy hiểm khác 23.Hướng phải vòng qua trái 24.Nơi giao chạy theo vịng xuyến 4.3 Huấn luyện thuật tốn 4.3.1 Cài đặt thơng số huấn luyện Có nhiều tham số sử dụng thuật toán YOLOv4 nhiên đề cập đến số tham số quan trọng ảnh hưởng lớn đến trình huấn luyện, tham số lại giữ mặc định theo cấu hình tác giả Batch size: Nhóm chúng tơi chọn batch size với kích thước 64 Các trọng số cập nhập với gradient trung bình batch Iterations: Số lần lặp nhóm chọn 50000 lần lặp tương ứng với 50000 lần cập nhập tham số Tuy nhiên hàm Loss trở nên bão hịa, q trình lặp dừng lại Learning rate decay: Tốc độ học khởi tạo 0.001 với decay 0.005 Momentum: Momentum đặt với giá trị 0.949 Input size: Kích thước ảnh ngõ vào resize lại thành 68 x 68 x 48 : 4.3.2 Google Colab Google Colab hay Colaboratory sản phẩm Google Research cho phép chạy dòng code python qua trình duyệt nhằm phục vụ nhu cầu giáo dục nghiên cứu Google Colab không yêu cầu cài đặt cấu hình cho máy tính mà tài nguyên CPUs, GPUs, TPUs cung cấp hoàn toàn miễn phí Tuy nhiên tính miễn phí, Google Colab giới hạn thời gian sử dụng vòng 12 tiếng Trên mơi trường Google Colab có cài đặt sẵn số thư viện dành cho Deep Learning phổ biến PyTorch, TensorFlow, Keras,OpenCV Ngoài ra, ưu điểm Google Colab kết nối với Google Drive để đọc lưu liệu nên tiện dụng Chính nhiều ưu điểm vậy, đề tài đồ án mình, nhóm chúng tơi sử dụng Google Colab để huấn luyện cho tập liệu 4.3.3 Huấn luyện liệu Như nói trên, sử dụng Google Colab để huấn luyện cho mơ hình Đầu tiên, cần truy cập vào Google Colab theo đường dẫn url sau: "https://colab.research.google.com" tạo new notebook để chuẩn bị huấn luyện liệu Hình 4.2 : Giao diện Google Colab Để sử dụng tối đa nguồn tài nguyên Google Colab, thực thay đổi runtime type từ CPU sang GPU 49 : Hình 4.3: Thay đổi runtime type Google Colab để sử dụng GPU Tiếp theo để sử dụng tập tin tải lên từ Google Drive ta thực liên kết Google Colab với Google Drive dịng lệnh sau: Hình 4.4: Liên kết Google Drive với Google Colab Tải mã nguồn darknet YOLO drive để tạo thư mục backup giúp lưu trọng số sau lần lặp giúp tránh bị kill sau 12 Nếu sau 12 bị Google Colab kill tồn q trình huấn luyện, cần lấy lại file trọng số lưu sẵn folder backup để tiếp tục huấn luyện Hình 4.5: Tải mã nguồn darknet cho YOLO từ github tác giả Sau tải mã nguồn darknet, Google Drive xuất thư mục darknet Trong thư mục data darknet, ta thực xóa tồn data cũ tác giả tải data biển báo 50 : giao thông với file txt gán nhãn cho hình vào thư mục Trong thư mục darknet, ta quan tâm thêm file Với "Make" ta thay đổi GPU = CUDNN=1 để sử dụng GPU từ Google Colab Với file "yolov4-custom.cfg" thư mục cfg ta thay đổi tham số số lớp đề cập phần Tạo file data chứa liệu tập tin để huấn luyện gồm:  file train (train.txt) validation (vali.txt) chia ngẫu nhiên tập liệu vào file  file yolo.names chứa tên nhãn  số classes cần huấn luyện  file backup Hình 4.6: File yolo.data (bên trái) yolo.names (bên phải) Biên dịch mã nguồn darknet, tải pretrain weight tác giả tiến hành huấn luyện 51 : Hình 4.7: Biên dịch mã nguồn, tải pretrain weight tiến hành huấn luyện 4.3.4 Chuyển đổi từ mơ hình YOLOv4 sang mơ hình Keras Trong lúc đồ án thực hiện, Open CV chưa hỗ trợ hàm Mish YOLOv4 Vì cần chuyển đổi từ mơ hình YOLOv4 sang mơ hình Keras định nghĩa hàm Mish Keras đỡ phức tạp việc thay đổi source code OpenCV Hàm Mish định nghĩa sau: Hình 4.4 Định nghĩa hàm Mish Trong với lớp tích chập định nghĩa hàm DarknetConv2D Các lớp tích chập sử dụng hàm kích hoạt Leaky ReLU định nghĩa hàm DarknetConv2D_BN_Leaky (Hàm DarknetConv2D có áp dụng Batch Normalization với hàm kích hoạt Leaky ReLU) Các lớp tích chập sử dụng hàm kích hoạt hàm Mish 52 : định nghĩa hàm Darknet_Conv2D_BN_Mish (Hàm DarknetConv2D có áp dụng Batch Normalization với hàm kích hoạt Mish) Hình 4.5 Định nghĩa cho lớp tích chập mơ hình YOLOv4 Với đầu vào DenseNet thực khối DenseBlock định nghĩa hàm darknet_body resblock_body 53 : Hình 4.6 Định nghĩa cho DenseNet lớp đầu vào Sau định nghĩa hàm trên, thực chuyển đổi lớp tích chập mơ hình config Yolov4 sang mơ hình Keras 54 : Hình 4.12 Chuyển đổi mơ hình Yolov4.cfg sang mơ hình Keras 55 : CHƯƠNG KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN NHẬN DIỆN BIỂN BÁO GIAO THÔNG Chương đưa nhận xét mơ hình huấn luyện, phần 5.1 so sánh mơ hình Baseline, VGG16, Baseline với Normalization độ xác đưa kết dự đốn mơ hình YOLOv4 5.1 Kết luận 5.1.1 Thuật toán phân loại biển báo Sau huấn luyện kiểm tra mơ hình Baseline, VGG16, Baseline với Normalization , đưa bảng đo độ xác sau: Độ xác Baseline VGG16 Baseline BatchNorm Tập huấn luyện 97,56% 98,84% 99,5% Tập kiểm định 93,55 % 95,36% 99,6% Tập kiểm tra 89,97% 91,75% 98,76% Từ bảng kết luận, mơ hình baseline sử dụng batch normalization mơ hình cho hiệu tốt 5.1.2 Thuật toán phát biển báo Sau thực huấn luyện liệu Độ sai lệch mơ hình cịn lại : 0.2544 Độ xác (AP) tập kiểm tra: 79.34% Độ xác khơng cao liệu đa phần lấy nội thành Thành phố Hồ Chí Minh, đa số biển cấm đỗ xe, cấm dừng đỗ, cấm ngược chiều, hướng phải vòng sai trái thường sử dụng 56 : nên với biển tập kiểm tra cho kết dự đốn xác Cịn biển xuất biển trẻ em, phía cấp điện xuất tập liệu nên cho kết không xác Kết chạy mơ hình ảnh đường phố Việt Nam Mơ hình nhận diện xác biển “Cấm dừng đỗ xe” với xác suất dự đoán 0.99, biển báo giao với đường sắt bên không nằm tập huấn luyện Hình 5.1 Kết mơ hình ảnh 5.2 Hướng phát triển Mặc dù thuật toán phân loại phát biển báo giao thông đạt độ xác tương đối cao, việc áp dụng vào hệ thống thực tế chưa thực tốt Việc kết hợp thuật toán phân loại phát biển báo giao thơng cịn chưa thể kết 57 : hợp hoàn chỉnh Trong giới hạn mặt kiến thức thời gian thực hiện, tồn nhiều khuyết điểm cho đề tài đồ án Để phát triển đề tài luận văn này, chúng tơi có đề xuất sau: - Sử dụng camera chuyên dụng để thu thập thêm liệu, hỗ trợ việc huấn luyện mơ - hình tốt Sử dụng máy có cấu hình GPU tốt cho phép tăng tốc độ huấn luyện tăng số lớp - nhận diện Xây dựng app điện thoại, cho phép người dùng tra cứu thông tin biển báo - thông qua ảnh chụp thời gian thực Bên cạnh phần mềm, xây dựng phần cứng để gắn vào phương tiện ô tô, - xe gắn máy Xây dựng liệu lớn với thời điểm liệu lấy vào ban đêm ánh sang yếu Trên định hướng phát triển cho để tài nhận diện biển báo giao thông đồ án 58 : TÀI LIỆU THAM KHẢO [1] Vũ Hữu Tiệp,(2016), “Machine Learning bản”, Nhà xuất khoa học kỹ thuật [2] Mathew D.Zeiler and Robs Fergus,(2014), “Visualizing and Understanding Convolutiona Networks, NewYork [3] Thor Pham Blog, (2018), "Tìm hiểu thư viện Keras Deep Learning", thorphamblog.github.io [4] M Boulares and M Jemni, “Mobile sign language translation system for deaf community,” in Proceedings of the International Cross-Disciplinary Conference on Web Accessibility, W4A ’12, (New York, NY, USA), pp 37:1–37:4, ACM, 2012 [5] INI Benchmark Website (05/2019), Dataset of GTRSB, http://benchmark.ini.rub.de [6] Johannes Stallkamp, Marc Schlipsing, Jan Salmen, Christian Igel (05/2019), Electronic Research Data Archive (University of Copenhagen), https://sid.erda.dk [7] Diganta Misra (2019), “Mish: A Self Regulized Non-Monotonic Neural Activation Function”, arxiv.org [8] Joseph Redmon, Santosh Divvala, Ross Girshick, Ali Farhadi, (2016) "You Only Look Once: Unified, Real-Time Object Detection", University of Washington, Allen Institute for AI, Facebook AI Research [9] Alexey Bachkovskiy, Chien-Yao Wang, Hong-Yuan Mark Liao,(2020), "YOLOv4: Optimal Speed and Accuracy of Object Detection", Institute of Information science Academia Sinica [10] Sik-Ho Tsang,(2018) "Review: DenseNet - Dense Convolution Network (Image Classification)", towardsdatascience.com [11] Joseph Redmon, Ali Farhadi,(2018) "YOLOv3: An incremental Improvement" , University of Washington [12] Tsung-Yi Lin, Piotr Dollár, Ross Girshick, Kaiming He, Bharath Hariharan, Serge Belongie, (2017) "Feature Pyramid Networks for Object Detection", Facebook AI Research (FAIR), Cornell University and Cornell Tech [13] Shu Liu, Lu Qi, Haifang Qin, Jianping Shi, Jiaya Jia,(2018) "Path Aggregation Network for Instance Segmentation", The Chinese University of Hong Kong, Peking University, SenseTime Research, YouTu Lab, Tencent 59 : 60

Ngày đăng: 16/10/2020, 17:35

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w