Mục tiêu của nghiên cứu này là phát triển một hệ thống nhận diện biển báo giao thôngdựa trên mô hình YOLOv5, nhằm cải thiện khả năng nhận diện và hiểu biết về biểnbáo giao thông trong mô
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP.HCM
Trang 2ĐIỂM SỐ
ĐIỂM
NHẬN XÉT
Ký tên
Trang 3MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 2
1.1 Giới thiệu YOLOv5 2
1.1.1 Backbone 3
1.1.2 Neck 4
1.1.3 Head 6
1.2 Các kỹ thuật Tăng cường dữ liệu trong YOLOv5 7
CHƯƠNG 2: THIẾT KẾ MÔ HÌNH NHẬN DIỆN BIỂN BÁO GIAO THÔNG 8
2.1 Quá trình tạo tập dữ liệu 8
2.2 Đặc điểm của tập dữ liệu 10
CHƯƠNG 3: KẾT QUẢ VÀ THẢO LUẬN 11
3.1 Kết quả huấn luyện 11
3.2 Kết quả nhận diện biển báo 12
KẾT LUẬN 15
TÀI LIỆU THAM KHẢO 16
Trang 4MỞ ĐẦU
Trong một hệ thống giao thông phức tạp, việc nhận diện và hiểu biết về biển báo giaothông đóng vai trò quan trọng trong việc đảm bảo an toàn và tuân thủ quy tắc giaothông Trí tuệ nhân tạo (AI) đã trở thành công cụ mạnh mẽ để giúp tự động hóa quátrình nhận diện biển báo Đề tài này tập trung vào việc áp dụng mô hình YOLOv5 đểnhận diện biển báo giao thông một cách chính xác và hiệu quả
Mục tiêu của nghiên cứu này là phát triển một hệ thống nhận diện biển báo giao thôngdựa trên mô hình YOLOv5, nhằm cải thiện khả năng nhận diện và hiểu biết về biểnbáo giao thông trong môi trường thực tế Phạm vi của nghiên cứu bao gồm xây dựngmột tập dữ liệu đa dạng về biển báo giao thông, huấn luyện mô hình YOLOv5, vàđánh giá hiệu suất của hệ thống nhận diện
Nhận diện biển báo giao thông không chỉ đóng vai trò quan trọng trong việc cải thiện
an toàn giao thông mà còn giúp tăng cường hiệu quả của hệ thống giao thông Bằngviệc áp dụng mô hình YOLOv5, chúng ta có thể xây dựng hệ thống nhận diện biển báogiao thông nhanh chóng và chính xác, giúp giảm nguy cơ tai nạn và tạo ra môi trườnggiao thông an toàn hơn cho cộng đồng
Trang 5CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Giới thiệu YOLOv5
YOLO (You Only Look Once) được giới thiệu lần đầu bởi Joseph Redmon vào năm
2015 với mục tiêu cung cấp một phương pháp nhanh chóng và hiệu quả để nhận diệnđối tượng trong hình ảnh YOLO đặc biệt nổi bật vì khả năng dự đoán tất cả các đốitượng trong một lần duy nhất, thay vì phải chạy qua nhiều bước như các mô hình khác(ví dụ như R-CNN) YOLOv5 (phát triển bởi Ultralytics) là một phiên bản khôngchính thức nhưng rất phổ biến vì tính hiệu quả và dễ sử dụng
Mô hình YOLOv5 bao gồm ba phần chính:
Backbone: Phần này sử dụng một mạng học sâu (deep learning network) chịu
trách nhiệm trích xuất các đặc trưng từ hình ảnh đầu vào
Neck: Là phần trung gian giữa backbone và head, có nhiệm vụ kết hợp các đặc
trưng từ các tầng khác nhau
Head: Phần cuối của mô hình, nơi thực hiện dự đoán các bounding boxes và
phân loại các đối tượng trong hình ảnh
Trang 7 Hnh 2: Cấu trúc module C3 và BottleNeck
Ở cuối phần backbone là khối SPP (Spatial Pyramid Pooling) YOLOv5 phiên bản mớihơn thay thế khối SPP thành SPPF (SPP-Fast) SPPF gồm lớp ConvBNSiLU ở đầu, balớp max-pooling k5, s1, p2 liên tiếp được ghép nối với nhau rồi qua một lớpConvBNSiLU:
Hnh 3: Khối SPPF
1.1.2 Neck
Là phần trung gian giữa backbone và head, có nhiệm vụ kết hợp các đặc trưng từ cáctầng khác nhau YOLOv5 sử dụng cấu trúc CSP-PAN Cấu trúc này gồm các lớpUpsample và C3 Lớp Upsample ngược với lớp MaxPooling, làm tăng kích thướckhông gian của đặc trưng ảnh Kết hợp với các lớp backbone để ghép các đặc trưngảnh ở nhiều độ phân giải khác nhau, giúp nhận diện được các vật thể có kích thướckhác nhau
Trang 9Phần này kết hợp các đặc trưng ảnh đã được xử lý ở nhiều mức độ phân giải ở khốiNeck để dự đoán bounding box, lớp, điểm tin cậy của đối tượng trên ảnh.
Hnh 5: Khối Head
Hàm Loss của mô hình được tính bởi công thức:
L = λ box L box + λ obj L obj + λ cls L cls
Trang 10Trong đó, λ box, λ obj, λ cls lần lượt là trọng số ứng với các loss hộp, loss vật thể và lossphân loại.
1.2 Các kỹ thuật Tăng cường dữ liệu trong YOLOv5
Các kỹ thuật Tăng cường dữ liệu trong YOLOv5 được sử dụng để giảm overfitting.Một số kỹ thuật bao gồm:
Mosaic Augmentation: Ghép bốn bức ảnh thành một.
Copy-paste Augmentation: sao chép và dán (copy và paste) các vật thể từ một
hình ảnh sang một vị trí ngẫu nhiên trên hình ảnh khác
Random Affine Transform: là kỹ thuật tăng cường dữ liệu bằng cách áp dụng
các biến đổi ngẫu nhiên như xoay, dịch chuyển, co giãn và xoay trục tọa độ chohình ảnh
MixUp Augmentation: Lấy tổ hợp tuyến tính của hai bức ảnh để ghép chúng
thành một
HSV Augmentation: Thay đổi ngẫu nhiên sắc độ, tương phản, độ sáng
Trang 11CHƯƠNG 2: THIẾT KẾ MÔ HÌNH NHẬN DIỆN BIỂN BÁO GIAO THÔNG 2.1 Quá trình tạo tập dữ liệu
Tập dữ liệu được xây dựng từ các video quay lại các biển báo giao thông trên một sốcon đường ở thành phố Hồ Chí Minh Các video này sau đó được xử lý thành từngkhung hình riêng lẻ bằng cách trích xuất ảnh từ video với tần suất phù hợp (5 ảnh/giây)
để đảm bảo tính đa dạng về ngữ cảnh và vị trí Mỗi khung hình chứa ít nhất một hoặcnhiều biển báo giao thông, giúp tạo ra một tập dữ liệu phong phú cho quá trình nhận
diện Tổng cộng thu được 800 bức ảnh khác nhau cho 10 loại biển báo Tập dữ liệu
được gán nhãn bằng công cụ Roboflow Đây là một công cụ dùng để quản lý, gánnhãn, tiền xử lý và tạo tập dữ liệu cho các mô hình học máy
Hnh 6: Mười loại biển báo trong tập dữ liệu B7ng 1: B7ng các loại biển báo trong tập dữ liệu
Có khúc cua phải
phía trước
đường không ưutiên (hẻm phải)
53
Có khúc cua trái
phía trước
đường không ưutiên (hẻm trái)
Trang 12Để tăng số lượng ảnh trong tập dữ liệu, kỹ thuật Tăng cường dữ liệu được áp dụng.Đây là một kỹ thuật mở rộng tập dữ liệu bằng cách biến đổi hình ảnh gốc, giúp môhình học được nhiều đặc trưng hơn và hoạt động tốt hơn trên các tình huống thực tế.Các phép biến đổi sử dụng:
- Làm mờ: lên tới 1 pixel
Qua quá trình Tăng cường dữ liệu, thu được 1880 bức ảnh, trong đó 1620 bức ảnhdùng để huấn luyện, 180 dùng để kiểm tra và 80 dùng để test
Hnh 7: Tập 7nh sau Tăng cường dữ liệu
Trang 132.2 Đặc điểm của tập dữ liệu
Tập dữ liệu bao gồm các hình ảnh biển báo giao thông được quay chụp từ nhiềukhoảng cách và góc độ khác nhau nhằm đảm bảo tính đa dạng và tính ứng dụng của
Sự đa dạng của tập dữ liệu đảm bảo rằng mô hình học được khả năng nhận diện trong
cả trường hợp lý tưởng lẫn tình huống phức tạp, phản ánh thực tế ứng dụng
2.3 Lựa chọn thông số cho quá trình huấn luyện
Mô hình được lựa chọn để nhận diện là YOLOv5s – là phiên bản nhỏ gọn củaYOLOv5 với khoảng 7.2 triệu trọng số, phù hợp cho bài toán nhận diện thời gian thựcnhờ hiệu suất cao và tốc độ nhanh Các thông số dùng để huấn luyện mô hình gồm:
- Kích thước ảnh đầu vào: 640x640 Đây là kích thước yêu cầu của YOLOv5s
- Batch size: 50 ảnh Giúp tăng tốc độ huấn luyện trên GPU trong khi vẫnđảm bảo độ chính xác
- Số epoch: 100 lần Đủ để mô hình hội tụ và học đầy đủ các đặc trưng từ tập
dữ liệu
Trang 14CHƯƠNG 3: KẾT QUẢ VÀ THẢO LUẬN
3.1 Kết quả huấn luyện
Kết quả huấn luyện của mô hình nhận dạng biển báo giao thông được thể hiện qua các
đồ thị bên dưới:
Hnh 9: Đồ thị các thông số của mô hnh trong quá trnh huấn luyện
train/val box_loss: Đo độ chính xác trong việc dự đoán các bounding box của
đối tượng (biển báo giao thông) so với các giá trị thực tế Đường cong giảmnhanh ở những epoch đầu tiên, sau đó giảm dần và ổn định khi mô hình hội tụvào vị trí chính xác của các đối tượng
train/val obj_loss: Đo lường khả năng mô hình nhận diện sự hiện diện của đối
tượng trong mỗi bounding box Loss này giảm dần chứng tỏ mô hình học cáchphân biệt các vùng chứa biển báo với các vùng không chứa biển báo
train/val cls_loss: Đo lường độ chính xác trong việc phân loại đối tượng vào
các lớp biển báo giao thông cụ thể Loss này giảm chứng tỏ mô hình ngày càngphân biệt rõ hơn các loại biển báo giao thông
Precision: Là tỷ lệ giữa số lượng dự đoán đúng đối tượng và tổng số đối tượng
được dự đoán Precision của mô hình cao (0.85)
Trang 15 Recall: Là tỷ lệ giữa số lượng dự đoán đúng đối tượng và tổng số đối tượng
thực tế Giá trị này cao (0.85) chứng tỏ mô hình ít khi bỏ sót các đối tượng
mAP và mAP0.95: Là trung bình độ chính xác theo các ngượng IoU khác
nhau Các chỉ số này cao (mAP = 0.95, mAP:0.95 = 0.6) thể hiện mô hình cókhả năng nhận diện chính xác và đầy đủ các đối tượng
3.2 Kết quả nhận diện biển báo
Kết quả nhận diện biển báo trên tập kiểm tra cho thấy, mô hình nhận diện rất tốt cácbiển báo trong ảnh, với độ tin cậy cao Một số hình có các biển báo khó nhận biết bằngmắt thường, mô hình vẫn nhận diện được với độ tin cậy thấp hơn (0.2 – 0.3) Tuynhiên, vẫn có một số hình mà mô hình nhận diện biển báo chưa chính xác, ví dụ nhưbiển báo giao nhau với đường không ưu tiên (hẻm trái) vì số lượng ảnh trong tập dữliệu ít (27 ảnh) Đôi khi mô hình nhầm lẫn giữa các cặp biển: cấm dừng - cấm đậu xe
và cấm đi ngược chiều - hướng đi phải tránh Do các biển báo có nhiều đặc điểm giốngnhau; số lượng ảnh thu thập chưa đủ để trích xuất đặc trưng mà phân biệt giữa các biểnbáo ấy
Trang 18KẾT LUẬN
Trong bài báo cáo này, chúng tôi đã tập trung vào việc nghiên cứu và áp dụng mô hìnhYOLOv5 trong việc nhận diện biển báo giao thông Qua quá trình nghiên cứu và thựchiện, chúng tôi đã đạt được những kết quả quan trọng và đáng chú ý
Chúng tôi đã xây dựng một hệ thống nhận diện biển báo giao thông dựa trên mô hìnhYOLOv5, với tập dữ liệu được lấy từ một số con đường ở TP.HCM Kết hợp với kỹthuật Tăng cường dữ liệu để tăng số lượng ảnh, cải thiện khả năng nhận diện và tổngquát hóa của mô hình
Kết quả đánh giá của mô hình trên tập dữ liệu kiểm tra đã cho thấy độ chính xác của
mô hình cao, đồng thời mô hình cũng thể hiện khả năng tổng quát hóa tốt trên các tìnhhuống thực tế, nhưng có một số trường hợp mô hình không thể nhận diện đúng chínhxác được loại biển báo Còn nhầm lẫn giữa các biển báo giống nhau, do tập dữ liệuchưa đủ đa dạng
Từ kết quả nghiên cứu và thực hiện, chúng tôi nhận thấy sự tiềm năng và ứng dụngrộng rãi của mô hình YOLOv5 trong việc nhận diện vật thể, đặc biệt là trong lĩnh vựcnhận diện biển báo giao thông Công trình này đánh dấu bước tiến quan trọng trongviệc áp dụng trí tuệ nhân tạo vào giải quyết các vấn đề thực tiễn trong giao thông và antoàn đường bộ
Trang 19TÀI LIỆU THAM KHẢO
[1] Ultralytics, “Architecture Summary,” Ultralytics.com, 2023
grid-sensitivity (accessed Nov 28, 2024)
https://docs.ultralytics.com/yolov5/tutorials/architecture_description/#43-eliminate-[2] “Overview of model structure about YOLOv5 · Issue #280 ·
ultralytics/yolov5,” GitHub https://github.com/ultralytics/yolov5/issues/280[3] Ultralytics, “YOLOv5,” docs.ultralytics.com, Dec 12, 2023
https://docs.ultralytics.com/models/yolov5/
[4] “Create a Project | Roboflow Docs,” Roboflow.com, Jul 10, 2024 https://docs.roboflow.com/datasets/create-a-project (accessed Nov 28, 2024)
Trang 20PHỤ LỤC
# clone YOLOv5 repository
!git clone https://github.com/ultralytics/yolov5
# install dependencies as necessary
!pip install roboflow
from roboflow import Roboflow
rf = Roboflow(api_key="14oNkN7sUzR8pJLW3aN9")
project = workspace(rf "remo-ekoh3").project("bien-bao-copy")version = project.version( )4
dataset = version.download("yolov5")
# train yolov5s on custom data for 100 epochs
Trang 21from utils.plots import plot_results # plot results.txt as
# print out an augmented training example
Image(filename='/kaggle/working/yolov5/runs/train/
yolov5s_results/train_batch0.jpg' width=900)
# run interfere and display the result
%cd /yolov5/
!python detect.py weights
runs/train/yolov5s_results/weights/best.pt img 640 conf 0.35source {dataset.location}/test/images/
LINK VIDEO BÁO CÁO