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

biển báo giao thông sử dụng deep learning

60 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Nhận Diện Biển Báo Giao Thông Sử Dụng Deep Learning
Tác giả Trần Quang Duy, Trương Thị Diễm Trinh, Nguyễn Quang Lực, Nguyễn Ngọc Tri Tuấn, Nguyễn Mậu Anh
Người hướng dẫn TS. Phạm Việt Cường
Trường học Đại Học Quốc Gia TP. Hồ Chí Minh
Chuyên ngành Thị Giác Máy
Thể loại Bài tập lớn
Năm xuất bản 2020
Thành phố TP. HỒ CHÍ MINH
Định dạng
Số trang 60
Dung lượng 1,58 MB

Cấu trúc

  • 1. GIỚI THIỆU (0)
    • 1.1 Tổng quan (8)
    • 1.2 Tình hình nghiên cứu trong và ngoài nước (0)
    • 1.3 Nhiệm vụ bài tập lớn (9)
  • 2. CƠ SỞ LÝ THUYẾT THUẬT TOÁN YOLOv4 (0)
    • 2.1 Phương pháp tăng cường dữ liệu sử dụng trong YOLOv4 (10)
    • 2.2 Kiến trúc mô hình (0)
    • 2.3 Phương pháp đánh giá (0)
  • 3. XÂY DỰNG MÔ HÌNH PHÁT HIỆN BIỂN BÁO GIAO THÔNG (0)
    • 3.1 Sơ đồ khối tổng quát (39)
    • 3.2 Tập dữ liệu huấn luyện (39)
    • 3.3 Tiền xử lý và tăng cường dữ liệu (43)
    • 3.4 Thực hiện huấn luyện mô hình (44)
  • 4. KẾT QUẢ THỰC HIỆN (51)
    • 4.1 Kết quả huấn luyện (51)
    • 4.2 Kết quả dự đoán trên hình ảnh (53)
    • 4.3 Kết quả dự đoán trên video (55)
    • 4.4 Kết quả hiện thực trên Raspberry Pi 4 (56)
  • 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN (0)
    • 5.1 Kết luận (0)
    • 5.2 Hướng phát triển (59)

Nội dung

CƠ SỞ LÝ THUYẾT THUẬT TOÁN YOLOv42.1 Phương pháp tăng cường dữ liệu sử dụng trong YOLOv4- Định nghĩa:Tăng cường dữ liệu Data Augmentation là một kỹ thuật hiệu quả để gia tăng chấtlượng m

GIỚI THIỆU

Tổng quan

Thị giác máy tính là một ngành khoa học đã xuất hiện từ lâu và vẫn phát triển đến bây giờ Trong những năm gần đây, với sự bùng nổ của học máy (Machine Learning – ML), học sâu (Deep Learning – DL), Thị giác máy tính càng phát triển một cách mạnh mẽ hơn Điển hình là sự xuất hiện của mạng nơ-ron tích chập (Convolutional Neural Network - CNN) giúp giải quyết các bài toán về nhận diện, phân loại, khôi phục ảnh… một cách hiệu quả.

Với sự phát triển mạnh mẽ này, nhiều nghiên cứu về DL trong Thị giác máy đã được thực hiện và gặt hái nhiều kết quả tốt Nhiều ứng dụng Thị giác máy thực tế đã được triển khai áp dụng các thuật toán DL như nhận diện khuôn mặt, nhận diện làn đường ứng dụng cho xe tự hành, nhận diện biển báo giao thông,…

Nhận diện biển báo giao thông là một trong những bài toán thực tế nhận được nhiều sự quan tâm từ các nhà nghiên cứu cũng như cộng đồng Nhận diện biển báo giao thông đã được nghiên cứu từ lâu và nhiều phương pháp tiếp cận khác nhau đã được đề xuất để giải quyết bài toán này Giải quyết tốt bài toán này sẽ góp phần phát triển các ứng dụng xe tự hành hiện nay Đó cũng là lý do nhóm em chọn nhận diện biển báo giao thông làm đề tài Bài tập lớn môn học Thị giác máy.

H ì nh 1-1 Nh ậ n di ệ n bi ể n báo giao thông

Downloaded by ANH LE (bachvan14@gmail.com) máy 1.2 Tình hình nghiên cứu trong và ngoài nước

Nhận diện biển báo giao thông là bài toán nhận diện vật thể Bài toán này có hai cách tiếp cận chính: đó là sử dụng Single-stage Detection và Two-stage Detection Với Two- stage Detection, bài toán được chia thành hai bài toán nhỏ: phát hiện vật thể và phân loại vật thể đó Một số mạng CNN tiêu biểu được nghiên cứu để giải quyết bài toán Two-stage Detection có thể kể đến như R-CNN, Fast

R-CNN, Faster R-CNN,… Trong khi đó, hướng tiếp cận Single-stage Detection xem bài toán nhận diện vật thể là bài toán end-to-end, nhận đầu vào là hình ảnh và cho đầu ra là kết quả dự đoán thông qua một tầng xử lý Ví dụ điển hình cho hướng tiếp cận Single Stage là các mô hình YOLO, YOLOv1,

YOLOv2, YOLOv3 và đặc biệt là YOLOv4 vừa được nghiên cứu gần đây.

Trong đề tài này, nhóm chúng em quyết định sử dụng mô hình YOLOv4, là mô hình YOLO mới nhất, để nhận diện biển báo giao thông Mô hình YOLOv4 là một trong những mô hình có độ chính xác cao và tốc độ xử lý nhanh nhất hiện nay.

H ì nh 1-2 Many stage và single stage (one stage) detection cho bài toán nh ậ n di ệ n v ậ t th ể

1.3 Nhiệm vụ bài tập lớn

Khi thực hiện đề tài Bài tập lớn này, nhóm em đã đề ra các mục tiêu như sau:

• Thu thập dữ liệu hình ảnh về biển báo giao thông ở đường phố TP Hồ Chí Minh.

• Huấn luyện mô hình YOLOv4 nhận diện biển báo giao thông trên hình ảnh.

• Thực hiện nhận diện biển báo giao thông trên video.

• Thực hiện nhận diện biển báo giao thông trên máy tính nhúng Raspberry Pi.Đánh giá kết quả thực hiện.

Nhiệm vụ bài tập lớn

Khi thực hiện đề tài Bài tập lớn này, nhóm em đã đề ra các mục tiêu như sau:

• Thu thập dữ liệu hình ảnh về biển báo giao thông ở đường phố TP Hồ Chí Minh.

• Huấn luyện mô hình YOLOv4 nhận diện biển báo giao thông trên hình ảnh.

• Thực hiện nhận diện biển báo giao thông trên video.

• Thực hiện nhận diện biển báo giao thông trên máy tính nhúng Raspberry Pi.Đánh giá kết quả thực hiện.

CƠ SỞ LÝ THUYẾT THUẬT TOÁN YOLOv4

Phương pháp tăng cường dữ liệu sử dụng trong YOLOv4

a) Gi ớ i thi ệ u v ề tăng cườ ng d ữ li ệ u

Tăng cường dữ liệu (Data Augmentation) là một kỹ thuật hiệu quả để gia tăng chất lượng mô hình AI bằng cách tạo thêm nhiều mẫu dữ liệu huấn luyện thông qua các phép biến đổi đơn giản, “làm méo” thông tin đầu vào nhưng không thay đổi thông tin đầu ra, trên các mẫu dữ liệu đã có.

Thông thường kỹ thuật này được áp dụng trên dữ liệu có nhãn cho các bài toán học có giám sát (Supervised Learning).

Khi số lượng mẫu huấn luyện của một mô hình Deep Learning quá ít hoặc mô hình Deep Learning sử dụng quá phức tạp so với lượng dữ liệu có được, sẽ xảy ra hiện tượng quá khớp

(Overfitting) Augmentation là một kỹ thuật giúp làm giảm hiện tượng này trong quá trình huấn luyện các mô hình AI.

Khi huấn luyện mô hình AI, mô hình chủ yếu học được những đặc trưng dễ nhận thấy của đối tượng Điều này có thể là một bất lợi khi mô hình chỉ thực hiện tốt với ảnh đầu vào có đầy đủ các phần đặc trưng đã được huấn luyện đó Với những ảnh bị mất một số phần của vật thể, mô hình khó có thể vận hành tốt được Như vậy, các kỹ thuật Data Augmentation có thể khắc phục vấn đề này khi tạo ra tập dữ liệu có độ khó cao hơn với các kỹ thuật mới như: Random Erase, CutOut, Grid Mask,… b) M ộ t s ố phương pháp tăng cườ ng d ữ li ệ u ph ổ bi ế n

- Flip: Lật ảnh theo trục hoành, trục tung Ý nghĩa của ảnh/vật thể cần được giữ nguyên.

- Rotation: Xoay ảnh, vật thể theo góc ngẫu nhiên.

- Random crop: Cắt ngẫu nhiên một phần ảnh/vật thể Ý nghĩa của ảnh/vật thể cần được giữ nguyên.

- Color shift: Chuyển đổi màu của ảnh/vật thể bằng cách thay đổi giá trị các kênh màu R, G, B.

Downloaded by ANH LE (bachvan14@gmail.com) máy - Noise addition: Thêm nhiễu vào ảnh Một số loại nhiễu có thể kể đến như nhiễu

Gauss, nhiễu nhân, nhiễu do nén ảnh.

- Information loss: Cắt bỏ một phần thông tin ảnh/ vật thể.

- Contrast change: Thay đổi độ tương phản của ảnh. máy - Transitional: Dịch chuyển vị trí của vật thể cần nhận diện trong ảnh đầu vào.

- Scale: Chuyển đổi kích thước hình ảnh. c) Các phương pháp tăng cườ ng s ử li ệ u s ử d ụ ng trong hu ấ n luy ệ n YOLOv4

Khi huấn luyện mô hình YOLOv4, những kỹ thuật tăng cường dữ liệu sau thường được áp dụng để tăng độ khó cho tập dữ liệu.

- Random Erase: Thay thế một vùng hình ảnh bằng giá trị ngẫu nhiên hoặc giá trị pixel trung bình Kỹ thuật này góp phần giảm hiện tượng overfitting và giúp huấn luyện mô hình có thể nhận diện vật thể khi chỉ nhìn thấy một phần của vật thể đó.

- Hue: Thay đổi màu sắc của ảnh ngẫu nhiên.

Downloaded by ANH LE (bachvan14@gmail.com) máy H ì nh 2-3 Hue Augmentation máy

- Exposure: Thay đổi độ phơi sáng của ảnh Độ phơi sáng được xác định bằng lượng pixel đen hay trắng được thêm vào các kênh màu của ảnh Gá trị exposure càng cao, phương sai càng lớn, tạo hiệu ứng ảnh bị cháy sáng.

- Grid mask: Hình ảnh được phủ lưới các ô đen (giá trị pixcel bằng 0).

- Saturation: Thay đổi độ bão hòa màu của ảnh.

Downloaded by ANH LE (bachvan14@gmail.com) máy - MixUp: Chồng hai hay nhiều ảnh lên nhau với độ mờ (Opacity) nhất định.

- Cutmix: Kết hợp tấm ảnh bằng cách cắt một phần tấm ảnh và dán chúng lên tấm ảnh tăng cường (the augmented image) Phần cắt của tấm ảnh này buộc model phải đưa ra các dự đoán dựa trên một số đặc trưng nhất định.

H ì nh 2-7 Mixup và Cutmix Augmentation

- Mosaic: Tăng cường dữ liệu Mosaic kết hợp 4 hình ảnh huấn luyện vào một tấm theo các tỷ lệ nhất định Đây là kĩ thuât tăng cường dữ liệu mới nhất trongYolov4 so với các phiên bản trước đó Điều này cho phép máy sẽ học cách xác định đối tượng ở quy mô nhỏ hơn bình thường, nó cũng khuyết khích khoanh vùng các loại hình ảnh khác nhau trong các phần khác nhau của một khung hình. máy H ì nh 2-8 Mosaic Augmentation

Downloaded by ANH LE (bachvan14@gmail.com) máy 2.2 Kiến trúc mô hình a) T ổ ng quan v ề thu ậ t toán YOLO

YOLO được viết tắt từ "You Only Look Once", tạm dịch là "Bạn chỉ nhìn một lần". Thuật toán YOLO xem bài toán nhận diện vật thể là một bài toán Single-stage Detection trên toàn bộ bức ảnh, sử dụng trực tiếp các pixel của ảnh để dự đoán các khung (bounding box) cùng với xác suất phân loại vật thể Như vậy việc chỉ sử dụng Single-stage Detection, thuật toán YOLO giúp giảm số lượng phép toán, tăng tốc độ xử lý và có thể đáp ứng bài toán thời gian thực tốt.

- Grid System: Ý tưởng của việc thực hiện Grid System xuất phát từ việc thay vì thực hiện các lớp Fully Connected ở cuối mô hình thì các lớp này sẽ được chuyển thành các lớp tích chập như các lớp phía trước trong bài toán phân loại vật thể Khi đó ở lớp cuối cùng thay cho lớp fully connected có kích thước (số classes, 1) thành một lớp tích chập có kích thước 3 chiều (1, 1, số classes).

Việc chuyển đổi này không làm ảnh hưởng đến kết quả dự đoán mà còn thể hiện được rằng hoàn toàn có thể phân loại vật thể bằng các phép toán tích chập với kết quả dự đoán nằm ở lớp tích chập cuối cùng và còn ưu việt hơn khi vẫn giữ được vị trí của vật thể Việc chuyển đổi diễn ra như sau: Ví dụ, hình ảnh chứa vật cần phân loại có kích thước 14 x 14 x

3, sau khi thực hiện các bước tích chập nhận được lớp tích chập cuối cùng có kích thước 1 x

1 x 4, chính lớp tích chập mang kết quả phân loại vật thể. máy

H ì nh 2-9 chuy ể n các l ớ p Fully Connected cu ố i thành các l ớ p tích ch ậ p

Downloaded by ANH LE (bachvan14@gmail.com) máy Để chứng minh vị trí vật thể không thay đổi và vẫn có thể xác định được qua lớp cuối ta giả sử hình ảnh đang xét có kích thước 27 x 27 x 3 được chia thành 3 x 3 grid như hình dưới, vị trí của vật thể nằm ở ô có đánh màu, sau khi thực hiện các bước tích chập, ta thu được lớp tích chập cuối cùng có kích thước 3 x 3 x 30.

H ì nh 2-10 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)

Ta có thể thấy sau khi thực hiện tích chập dữ liệu và vị trí của vật thể được duy trì cho đến lớp cuối cùng, và ở ô màu tương ứng mang kết quả phân loại của vật thể Như vậy ta vừa có thể phân loại vật thể vừa xác định được vị trí của vật thể.

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) Tại đó mỗi grid sẽ mang 3 thông tin chính: Grid có đang chứa vật thể hay không, tọa độ của các bounding box (gồm tọa độ x, y của góc trên bên trái và chiều dài, chiều rộng của bounding box), xác suất phân loại vật thể Xét hình 2-

11, giả sử chúng ta cần nhận diện biển báo cấm vượt quá 30km/h, mặc dù biển báo không nằm trọn trong một grid nhưng thuật toán sẽ chỉ xác định tâm vật thể (hình tròn trong hình dưới) và tâm vật thể nằm ở grid nào thì grid đó sẽ được xác định tồn tại vật thể Ma trận của 1 grid như sau: [p c , b x , b y , b h ,b w , c 1 , c 2 , c 3 , ]. máy H ì nh 2-11 Mô t ả grid system trong bài toán nh ậ n di ệ n bi ể n báo

Downloaded by ANH LE (bachvan14@gmail.com) máy sua:

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

Chỉ số IoU (Intersection over Union) cho ta biết tỉ lệ trùng vào nhau của 2 box được tính như ıoU  ьo ∩   ∪ ьo B  B

Trong đó A ∩ B là phần giao nhau

(Intersection) của box A và box B, A ∪ B là phần chung của

2 box (Union) bằng tổng diện tích của 2 box trừ đi phần giao nhau Việc xác định IoU giúp tính toán khả năng nhận diện chính xác vật thể, trong đó box A thường là các anchor box (hay groundtruth bounding box) được gán nhãn ở pha huấn luyện và box B là bounding box của hệ thống xác định ở pha kiểm tra Tính toán IoU để đánh giá mô hình đã nhận diện vật thể đúng hay chưa. máy H ì nh 2-12 Minh h ọ a công th ứ c tính IoU

XÂY DỰNG MÔ HÌNH PHÁT HIỆN BIỂN BÁO GIAO THÔNG

Sơ đồ khối tổng quát

Để thực hiện xây dựng mô hình nhận diện biển báo giao thông, nhóm chúng em xây dựng sơ đồ khối tổng quát của hệ thống như sau:

H ì nh 3-1 Sơ đồ kh ố i t ổ ng quát h ệ th ố ng nh ậ n di ệ n bi ể n báo giao thông

Tập dữ liệu huấn luyện

Nhóm em đã thực hiện thu thập dữ liệu biển báo giao thông ở đường phố TP Hồ Chí Minh và đã thu được hơn 3600 tấm hình, và chia thành 12 loại biển báo như sau:

H ì nh 3-2 12 nhóm bi ể n báo giao thông c ầ n nh ậ n di ệ n máy

Loại biển báo giao thông Số lượng thu thập được Hình ảnh minh họa

Cấm các loại phương tiện (ô tô, mô tô, xe tải)

Cấm dừng và đỗ xe 908

Các loại biển cấm khác 453

Nguy hiểm: có trẻ em 340

Các biển báo nguy hiểm khác

Hiệu lệnh hướng đi vòng sang phải

Downloaded by ANH LE (bachvan14@gmail.com) máy

B ả ng 3-1 Tên và s ố lượ ng các lo ạ i bi ển báo đã thu thậ p

Trong quá trình thực hiện, nhóm em thu thập hình ảnh biển báo giao thông vào cả thời gian ban ngày và ban đêm với mục tiêu huấn luyện mô hình Deep Learning có thể dự đoán tốt vào cả ban ngày và ban đêm với các điều kiện về ánh sáng, nhiễu,… khác nhau Trong những hình ảnh thu thập được này, một phần hình ảnh được cắt ra từ các video quay liên tục với mục đích thu được hình ảnh biển báo từ các góc độ khác nhau, phù hợp với thực tế.

H ì nh 3-3 M ộ t s ố hình ả nh trong t ậ p d ữ li ệ u hu ấ n luy ệ n

Sau khi thu thập, các hình ảnh sẽ được xác định tọa độ của bounding box và gán nhãn trên đó bằng phần mềm labelImg Kết quả trả về sau khi gán nhãn là một file txt chứa số thứ tự nhãn và tọa độ tâm và chiều rộng, chiều cao của các bounding box.

Hiệu lệnh có vòng xuyến

Các biển hiệu lệnh khác

Downloaded by ANH LE (bachvan14@gmail.com) máy

B ả ng 3-2 S ử d ụ ng ph ầ n m ềm LabelImg để gán nhãn d ữ li ệ u

B ả ng 3-3 S ố th ứ t ự nhãn và các thông s ố bounding box theo đị nh d ạ ng YOLO

Tiền xử lý và tăng cường dữ liệu

Với dữ liệu đã thu thập, nhóm em thực hiện tiền xử lý bằng cách loại bỏ những hình ảnh quá mờ, những ảnh có biển báo quá nhỏ và những ảnh bị chói sáng.

Nhóm thiết lập các phương pháp tăng cường dữ liệu như sau:

Thực hiện huấn luyện mô hình

Google Colab hay Colaboratory là sản phẩm của Google Research cho phép chạy các dòng code python qua trình duyệt nhằm phục vụ các nhu cầu về giáo dục và nghiên cứu Google Colab cũng không yêu cầu cài đặt cấu hình cho máy tính mà các tài nguyên CPUs, GPUs, TPUs đều được cung cấp hoàn toàn miễn phí Tuy nhiên vì tính miễn phí, Google Colab giới hạn thời gian sử dụng trong vòng 12 tiếng.

Trên môi trường Google Colab cũng có cài đặt sẵn một số thư viện dành cho Deep Learning phổ biến như PyTorch, TensorFlow, Keras,OpenCV Ngoài ra, ưu điểm của Google Colab là có thể kết nối với Google Drive để đọc và lưu dữ liệu nên rất tiện dụng.

Chính vì nhiều ưu điểm như vậy, trong đề tài đồ án của mình, nhóm chúng tôi sử dụng Google Colab để huấn luyện cho tập dữ liệu của mình.

Có nhiều nền tảng Deep Learning hỗ trợ việc huấn luyện mô hình YOLOv4 như Darknet, Tensorflow, PyTorch,… Nhóm chúng em chọn Darknet là nền tảng huấn luyện mô hình trong đề tài này Darknet là một nền tảng huấn luyện mạng nơ-ron mã nguồn mở được viết bằng ngôn ngữ C và công cụ hỗ trợ tính toán CUDA Darknet giúp việc huấn luyện YOLOv4 nhanh, dễ cài đặt và hỗ trợ tính toán bằng GPUs. b) Các k ỹ thu ậ t s ử d ụ ng trong hu ấ n luy ệ n

Trong nhiều bài toán Machine Learning, chúng ta cần sử dụng các thuật toán lặp để tìm

Downloaded by ANH LE (bachvan14@gmail.com) máy ra nghiệm, ví dụ như Gradient Descent Nhìn chung, hàm mất mát giảm dần khi số vòng lặp tăng lên.

Early stopping tức dừng thuật toán trước khi hàm mất mát đạt giá trị quá nhỏ, giúp tránh overfitting. máy

Khi thực hiện huấn luyện mô hình YOLOv4, ta đã tách tập dữ liệu ban đầu thành các tập Training và Validation Quá trình huấn luyện sẽ tính toán chỉ số mAP và giá trị hàm mất mát trên cả hai tập dữ liệu này Khi giá trị hàm mất mát trên tập Validation có xu hướng tăng lên, ta có thể dừng việc huấn luyện mô hình lại và chọn sử dụng trọng số huấn luyện tại điểm dừng lại này Kỹ thuật này giúp hạn chế hiện tượng Overfitting Khi huấn luyện YOLOv4, phiên bản tốt nhất của trọng số làm cho validation error nhỏ nhất sẽ được lưu lại và cập nhật ở file “*-best.weights” Do đó ta có thể sử dụng trọng số ở điểm Early Stopping này cho việc dự đoán dữ liệu thực tế.

- Kỹ thuật Learning rate scheduler:

Thông số learning rate quyết định mức độ cập nhật của trọng số dựa vào batch dữ liệu hiện tại.

Learning rate thường được chọn ở khoảng 0.0001 đến 0.01.

H ì nh 3-6 Ví d ụ v ề vi ệc thay đổ i giá tr ị leaning rate

Khi bắt đầu huấn luyện, mô hình bắt đầu học với trọng số khởi tạo ngẫu nhiên, do đó learning rate cần được cài đặt ở giá trị lớn Qua quá trình huấn luyện, mô hình ngày càng tiến gần tới điểm cực tiểu hàm mất mát, do đó learning rate cần được đặt ở giá trị nhỏ hơn để đạt đến điểm này Kỹ thuật thay đổi giá trị của learning rate trong quá trình huấn luyện được gọi là Learning rate scheduler.

Downloaded by ANH LE (bachvan14@gmail.com) máy

H ì nh 3-7 Ví d ụ v ề Step Scheduler máy

Khi thực hiện huấn luyện mô hình YOLOv4 cho bài toán nhận diện biển báo giao thông, kỹ thuật Learning rate scheduler được sử dụng là Steps scheduler với bước giảm là 0.2 và 0.1 tại lần lặp thứ 10000 và 15000 Các thông số này được cài đặt ở file cấu hình mạng YOLOv4 “custom-yolov4- detector.cfg” như hình sau:

H ì nh 3-8 Cài đặ t thông s ố learning rate scheduler ở file c ấ u hình m ạ ng YOLOv4

Trên những bộ dữ liệu đơn giản, rất dễ phân biệt, mô hình có thể đối mặt với hiện tượng “early overfit” do những lợi thế ban đầu của dữ liệu là khá lớn Do đó kỹ thuật burn- in (warm-up) learning rate sẽ được sử dụng trong trường hợp này Khi đó, giá trị learning rate sẽ tăng dần từ 0 đến một giá trị cố định trong những lần lặp huấn luyện đầu.

Khi huấn luyện mô hình YOLOv4, giá trị burn-in được cài đặt bằng 1000 Điều này có nghĩa là learning rate sẽ tăng từ 0 đến 0.001 trong 1000 lần lặp huấn luyện đầu tiên. c) Cài đặ t các thông s ố hu ấ n luy ệ n

Có nhiều tham số được sử dụng trong thuật toán YOLOv4 tuy nhiên ở đây chỉ đề cập đến một số tham số quan trọng ảnh hưởng lớn đến quá trình huấn luyện, các tham số còn lại được giữ mặc định theo cấu hình của tác giả.

- Batch size: 32 Batch size là số lượng ảnh được đưa vào mạng huấn luyện trong 1 lần lặp

(iteration) Batch size được chọn phù hợp với khả năng tính toán của GPU.

- Iterations: 24000 Iterations là số lần lặp huấn luyện, tương ứng với số lân cập nhật trọng số.

Giá trị này được tác giả khuyến khích chọn bằng 2000*num_classes = 2000*12 = 24000.

- Learning rate policy: steps, steps: 10000, 15000, scales: 0.2, 0.1 Những thông số này liên quan đến Learning rate scheduler đã được trình bày ở trên, được chọn thông qua quá trình huấn luyện thực tế.

- Input size: 608 x 608 x 3 Input size là kích thước ảnh ngõ vào, được chọn lớn hơn so

Downloaded by ANH LE (bachvan14@gmail.com) máy với thông số mặc định (416 x 416 x3) vì nhóm muốn giữ lại các biển báo nhỏ không bị giảm kích thước quá nhiều dẫn đến mất nhiều thông tin. máy d) Hu ấ n luy ệ n mô hình

Với những kỹ thuật, thông số đã sử dụng kể trên, nhóm em tiến hành huấn luyện mô hình sử dụng Google Colab để huấn luyện YOLOv4 trên nền tảng Deep Learning Darknet. Các bước thực hiện huấn luyện như sau:

- Bước 1: Đăng nhập vào Google Colab, kết nối vào Google Drive và chọn công cụ hỗ trợ tính toán GPU.

- Bước 2: Tải mã nguồn darknet để huấn luyện mô hình YOLOv4 từ repository https://github.com/roboflow-ai/darknet.git Tải file trọng số đã pretrain.

- Bước 3: Chạy Makefile để khởi tạo môi trường huấn luyện.

- Bước 4: Chỉnh file config cấu trúc mạng và các tham số liên quan như đã trình bày ở phần trên.

- Bước 5: Tạo file obj.data chứa thông tin về địa chỉ dữ liệu cũng như nhãn Bao gồm: + train.txt: chứa đường dẫn đến dữ liệu training

+ val.txt: chứa đường dẫn đến dữ liệu validation

+ obj.names: chứa tên các nhãn

+ backup: đường dẫn folder backup file trọng số

+ classes: số lớp huấn luyện

H ì nh 3-9 N ộ i dung file obj.data (trái) và obj.names (ph ả i)

- Bước 6: Tiến hành huấn luyện.

Mô hình YOLOv4 nhận diện biển báo giao thông được huấn luyện bằng GPU Tesla P100 trong vòng 104 tiếng.

Downloaded by ANH LE (bachvan14@gmail.com) máy

KẾT QUẢ THỰC HIỆN

Kết quả huấn luyện

Sau khi hoàn thành huấn luyện, nhóm em thực hiện đánh giá kết quả bẳng cách tính chỉ số mAP trên tập dữ liệu validation đã được tách riêng so với tập training từ trước.

H ì nh 4-1 K ế t qu ả đánh giá mAP với điể m AP tính theo t ừ ng class

Trong đó, mAP@0.50 là giá trị AP trung bình với IoU threshold = 50% F1-score là

Sử dụng lệnh đánh giá chỉ số mAP do nền tảng darknet cung cấp:

!./darknet detector map data/obj.data cfg/custom-yolov4-detector.cfg backup/custom-yolov4- detector_best.weights

Ta thu được kết quả sau: máy preci sion

Ta có giá trị F1-score và mAP@0.50 đều đạt giá trị cao, điều này có nghĩa mô hình đang thực hiện tốt chức năng của mình.

Downloaded by ANH LE (bachvan14@gmail.com) máy

Kết quả dự đoán trên hình ảnh

Một số hình ảnh dự đoán vào ban ngày:

H ì nh 4-2 K ế t qu ả nh ậ n di ệ n vào ban ngày

Một số hình ảnh dự đoán vào ban đêm: máy

H ì nh 4-3 K ế t qu ả nh ậ n di ện vào ban đêm

Một số hình ảnh dự đoán trên tập dữ liệu khác (tập dữ liệu Zalo AI Challenge):

Downloaded by ANH LE (bachvan14@gmail.com) máy

H ì nh 4-4 K ế t qu ả nh ậ n di ệ n trên t ậ p d ữ li ệ u khác

Kết quả dự đoán trên video

Nhóm em thực hiện chạy chương trình nhận diện biển báo trên card đồ họa GPU Geforce GTX 1650 với dữ liệu video quay biển báo giao thông trên đường phố TP Hồ Chí Minh Kết quả đạt được khá khả quan, FPS đạt đến … Một số hình ảnh mô phỏng trên GPU Geforce GTX 1650: máy

H ì nh 4-5 K ế t qu ả nh ậ n di ệ n trên video

Kết quả hiện thực trên Raspberry Pi 4

Nhóm chúng em thực hiện chạy chương trình nhận diện biển báo trên máy tính nhúng Raspberry Pi 4 với dữ liệu hình ảnh lấy từ trong tập validation Raspberry Pi 4 cho kết quả dự đoán chính xác, tuy nhiên thời gian thực thi khá lâu, lên đến hơn 20s cho một hình ảnh. Một số hình ảnh dự đoán trên Raspberry Pi 4:

Downloaded by ANH LE (bachvan14@gmail.com) máy

H ì nh 4-6 K ế t qu ả nh ậ n di ệ n trên Raspberry Pi 4 máy đánh giá sau:

Downloaded by ANH LE (bachvan14@gmail.com) máy

- Mô hình dự đoán tốt trên hình ảnh ban ngày và ban đêm do dữ liệu training có cả hình ảnh ban ngày và ban đêm với số lượng phù hợp.

- Các loại biển báo thường gặp và có số lượng nhiều hơn trong tập dữ liệu như biển cấm rẽ, biển cấm các loại phương tiện đạt chỉ số confidence score cao hơn những biển báo nguy hiểm, biển báo hiệu lệnh khác.

- Thời gian thực thi mô hình YOLOv4 trên GPU khá nhanh, tuy nhiên do mô hình nặng nên chưa thể nhận diện thời gian thực.

- Mô hình thực hiện tốt trên tập dữ liệu khác (tập Zalo AI Challenge) nhưng confidence score của một số class chưa cao, điều này có thể do tập dữ liệu này và tập dữ liệu do nhóm thu thập có phân phối khác nhau.

- Tốc độ xử lý trên Raspberry Pi chậm do mô hình nặng và khả năng tính toán của Raspberry Pi có hạn.

Như vậy, nhóm em đã hoàn thành được các mục tiêu đề ra khi bắt đầu thực hiện đề tài này.

Nhận diện biển báo giao thông là một bài toán có tính ứng dụng thực tế cao, vì vậy trong tương lai, nhóm em sẽ tiếp tục học tập, tìm hiểu, và nghiên cứu các cách tiếp cận khác, thu thập thêm dữ liệu hình ảnh để nâng cao độ chính xác mô hình Bên cạnh đó, nhóm cũng chú ý tìm hiểu sử dụng mô hình YOLO-tiny để mô hình sau khi huấn luyện có dung lượng thấp, có khả năng thực thi trên các máy tính nhúng, từ đó có thể ứng dụng được trong thực tế.

Ngày đăng: 25/07/2024, 16:09

HÌNH ẢNH LIÊN QUAN

Hình có thể nhận diện vật thể khi chỉ nhìn thấy một phần của vật thể đó. - biển báo giao thông sử dụng deep learning
Hình c ó thể nhận diện vật thể khi chỉ nhìn thấy một phần của vật thể đó (Trang 12)

TRÍCH ĐOẠN

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

TÀI LIỆU LIÊN QUAN