đồ án 1 traffic object detection

45 0 0
Tài liệu đã được kiểm tra trùng lặp
đồ án 1 traffic object detection

Đ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

Đồng thời, nhóm nghiên cứu sẽ trình bày các công nghệ sử dụng và phương pháp xây dựng ứng dụng tích hợp mô hình đã được huấn luyện ở trên với mong muốn đánh giá tính khả thi và tiềm năng

Trang 1

NĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

Trang 2

ĐẠI HỌC QUỐC GIA TP HỒ CHÍ MINH

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

KHOA CÔNG NGHỆ PHẦN MỀM

21522441 – Nguyễn Minh Pháp

21520252 – Nguyễn Phước Hưng

ĐỒ ÁN 1

TRAFFIC OBJECT DETECTION

GIẢNG VIÊN HƯỚNG DẪN

TS NGUYỄN TẤN TRẦN MINH KHANG

TP HỒ CHÍ MINH, 2023

Trang 3

1.4 Mục tiêu và phạm vi nghiên cứu 3

1.5 Đóng góp của nghiên cứu 4

1.6 Bố cục của báo cáo 4

Chương 2 PHƯƠNG PHÁP 5

2.1 YOLOv8 5

2.1.1 YOLO 6

2.1.2 Điểm nổi bật của YOLOv8 6

2.2 Mô hình phân loại biển báo giao thông đơn giản 8

Chương 3 KẾT QUẢ THỰC NGHIỆM 11

3.1 Bộ dữ liệu 11

3.1.1 Obstacle detection Computer Vision Project [4] 11

3.1.2 Vietnamese traffic sign dataset [5] 11

3.2 Kết quả thực nghiệm 12

3.2.1 YOLOv8 12

3.2.2 Mô hình phân loại biển báo 15

Chương 4 TRIỂN KHAI ỨNG DỤNG 19

4.1 Công nghệ sử dụng 19

Trang 4

4.2.3 Thiết kế giao diện 24

4.2.4 Thiết kế Back-end API 29

Ảnh submit Google Play 36

sSource code Github 36

Trang 5

DANH MỤC HÌNH

Hình 1 Đầu ra và đầu vào của bài toán TOD [1] 3

Hình 2 Cấu trúc của YOLOv8 [1] 5

Hình 3 Minh họa phương pháp anchor box [2] 6

Hình 4 Từ anchor box đến bounding box [3] 7

Hình 5 Hình ảnh bàn cờ đã được Mosaic Augmentation [1] 8

Hình 6: Cấu trúc mô hình phân lớp đơn giản 10

Hình 7 Một số hình ảnh từ bộ dữ liệu [4] 11

Hình 8 Hình ảnh từ bộ dữ liệu Vietnamese traffic sign dataset [5] 12

Hình 9: Phân bố đối tượng có trong tập train 13

Hình 10: Đánh giá mô hình theo từng lớp trên bốn độ đo: Precision, Recall, Precision-recall, F1 (Trái sang phải, trên xuống dưới) 14

Hình 11: Confusion matrix mô hình YOLOv8nano trên tập test 15

Hình 21: Giao diện danh sách video của người dung 26

Hình 22: Giao diện loading khi mới khởi động ứng dụng 27

Hình 23: Giao diện phát hiện đối tượng thời gian thực 28

Hình 24: Cấu trúc phần mềm Traffic Object Detection 29

Hình 25: Các module có trong phần mềm lõi 30

Hình 26: Cấu trúc vận hành phần mềm lõi 31

Trang 6

Hình 27: Hình submit Google Play 36Hình 28: Github Front-end 36Hình 29: Github Back-end 37

Trang 7

DANH MỤC BẢNG

Bảng 1: Kết quả thực nghiệm trên từng lớp 13Bảng 2: Kết quả đánh giá mô hình phân lớp đơn giản 16

Trang 8

DANH MỤC TỪ VIẾT TẮT

Project

Trang 9

TÓM TẮT

Traffic Object Detection (TOD) là bài toán phát hiện các đối tượng phổ biến xuất hiện trong các tình huống giao thông thường Bài toán là tiền đề cho các ứng dụng hỗ trợ người lái, phương tiện giao thông tự vận hành Các đối tượng giao thông phổ biến xuất hiện trong các tình huống giao thông thường bao gồm xe ô tô, xe máy, người đi bộ, xe đạp, phương tiện giao thông công cộng Ngoài ra, bài toán TOD cũng có thể được mở rộng để phát hiện các đối tượng giao thông khác, chẳng hạn như biển báo giao thông, đèn tín hiệu, v.v Ở bài nghiên cứu này, nhóm nghiên cứu đã tiến hành thực nghiệm phương pháp YOLOv8 trên bộ dữ liệu Obstacle Detection Computer Vision Project (ODCVP) nhằm đánh giá khả năng của phương pháp trên bài toán TOD Đồng thời, nhóm nghiên cứu sẽ trình bày các công nghệ sử dụng và phương pháp xây dựng ứng dụng tích hợp mô hình đã được huấn luyện ở trên với mong muốn đánh giá tính khả thi và tiềm năng áp dụng bài toán TOD trên các thiết bị di động

Trang 10

Chương 1 MỞ ĐẦU

1.1 Động lực nghiên cứu

Trong những năm gần đây, các phương tiện tự hành (self-driving) hoặc các ứng dụng hỗ trợ người lái (driver assist) bằng phương pháp máy học đã và đang được xem xét ứng dụng vào đời sống thực tiễn dưới dạng tích hợp vào cái thiết bị hỗ trợ Trong đó, bài toán Traffic object detection (TOD) là một trong những bài toán chính được sử dụng làm công nghệ nền trong nhiều hệ thống hỗ trợ người lái hiện nay Ở Việt Nam, các ứng dụng hỗ trợ người lái vẫn chưa phát triển một cách rõ rệt so với toàn cầu do một số điểm đặc biệt trong giao thông Việt Nam Theo thống kê từ bộ công an, trong năm 2022 trên cả nước xảy ra 11.448 vụ tai nạn, làm chết 6.384 người, bị thương 7.804 người Tuy giảm 35,15% so với cùng kỳ nằm 2019, giao thông Việt Nam vẫn được đánh giá là nguy hiểm và mất trật tự trong khu vực cũng như trên toàn thế giới với các ngách, ngõ hẻm ngoằn nghèo, các đoạn đường thiếu chỉ dẫn hoặc ùn tắc liên tục do mật đô giao thông dày đặc Do đó, việc áp dụng các hệ thống phương tiện tự hành (self-driving) trong giao thông Việt Nam gặp nhiều thách thức do từ nhiều yếu tố cố hữu của giao thông Việt Nam, đã kể như trên Nhằm giải quyết vấn đề đó, nhóm nghiên cứu đã tiến hành thực nghiệm nhằm đánh giá phương pháp YOLOv8 hiện tại trên bộ dữ liệu về giao thông Việt Nam

1.2 Phát biểu bài toán

Với bài toán TOD, đầu vào của bài toán là một bức ảnh, đầu ra của bài toán là tọa độ và kích thước của các vật thể

Trang 11

Đầu vào Đầu ra

Hình 1 Đầu ra và đầu vào của bài toán TOD [1]

1.3 Thách thức

Là một bài toán detection, TOD kế thừa những thách thức cổ điển của bài toán object detection Bên cạnh đó, bài toán cũng mang đến những thách thức mới bao gồm:

• Yêu cầu về tốc độ xử lý: Để có thể đáp ứng được yêu cầu ứng dụng trong việc hỗ trợ người lái hoặc tự lái, mô hình cần phải có khả năng xử lý thời gian thực (real-time) nhằm phát hiện và cảnh báo kịp thời với sự thay đổi liên tục, đặc biệt là trong giao thông Việt Nạm thì vấn đề này càng phải được đặt nặng

• Vấn đề dữ liệu đặc thù: do bài toán liên quan đến giao thông nên mỗi quốc gia, mỗi khu vực sẽ có các quy định, phương tiện, văn hóa giao thông khác nhau Do đó chỉ có thể sử dụng dữ liệu cục bộ trong khu vực nhất dịnh để huấn luyện và kiển tra mô hình Bên cạnh đó, mỗi khu vực, quốc gia đều có một số loại phương tiện cũng như biển báo giao thông phù hợp với địa hình hoặc cơ sở hạ tâng chiếm phần lớn trong tổng số lượng tham gia giao thông, từ đó dữ liệu thu thập được thường sẽ mất cân bằng về một hoặc một số lớp nhất định, từ đó làm ảnh hưởng đến độ chính xác tổng thể của mô hình

1.4 Mục tiêu và phạm vi nghiên cứu

- Mục tiêu: Đánh giá mô hình YOLOv8 phát hiện đối tượng đối với bài toán TOD và ứng dụng bài toán vào thực tiễn

- Phạm vi: Nghiên cứu tập trung vào hiệu quả mô hình YOLOv8 dựa trên hiện trạng giao thông Việt Nam

Trang 12

1.5 Đóng góp của nghiên cứu

Nội dung cuốn báo cáo trình bày phương pháp nhóm nghiên cứu đã sử dụng để đánh giá cũng như các bước triển khai ứng dụng

1.6 Bố cục của báo cáo

Phần còn lại của báo cáo được trình bày theo bố cục như sau:

CHƯƠNG 2 – PHƯƠNG PHÁP: Phân tích phương pháp được nhóm chạy thực

nghiệm và ứng dụng vào báo cáo

CHƯƠNG 3 – THỰC NGHIỆM: Các bước tiến hành thực nghiệm trên bộ dữ

liệu nhóm tìm được và kết quả thực nghiệm

CHƯƠNG 4 – TRIỂN KHAI ỨNG DỤNG: Mô tả phần mềm, các công nghệ sử dụng, và ứng dụng của phần mềm sử dụng các phương pháp đã được nhóm tiến hành nghiên cứu lên các vấn đề hiện tại

CHƯƠNG 5 – KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN: Nhóm nghiên cứu sẽ

trình bày thành quả đạt được cũng như các hướng phát triển tiếp theo nhằm gia tăng hiệu quả trên bài toán TOD

Trang 13

Chương 2 PHƯƠNG PHÁP

Nhóm nghiên cứu đã sử dụng một model YOLOv8 để xác định các đối tượng thuộc 10 lớp Đối với các đối tượng có nhãn là “biển báo giao thông”, đối tượng sẽ được cắt ra từ ảnh gốc và đưa qua một bộ phân loại biển báo giao thông đơn giản để phân loại thành các lớp đặc trưng chi tiêt

Hình 2 Cấu trúc của YOLOv8 [1]

Trang 14

YOLOv8 là một mô hình được xây dựng trên nền phương pháp YOLO ứng dụng trong bài toán phát hiện đối tượng, phân lớp đối tượng và phân vùng ảnh YOLOv8 được phát triển bởi ultralytic, là tác giả của YOLOv5, và tích hợp rất nhiều kiến trúc mới cũng như những phương pháp thử nghiệm tiên tiến hiện tại Do sử dụng các phương pháp thử nghiệm, YOLOv8 hiện tại vẫn đang trong giai đoạn phát triển và liên tục thay đổi các hướng nghiên cứu khác nhau

2.1.1 YOLO

YOLO (you only look once) là một tập các model được xây dựng trên một ý tưởng cố định: mô hình chỉ thực hiện một lần lan truyền xuôi (forward propagation) cho toàn bộ quá trình tạo bounding box và phân loại lớp đối tượng (Hình 2) Do đó, các mô hình YOLO có tốc độ xử lý vượt trội hơn so với các mô hình SOTA khác, từ đó được ứng dụng nhiều trong các thiết bị yêu cầu xử lý thời gian thực

2.1.2 Điểm nổi bật của YOLOv8

2.1.2.1 Anchor free detection

Khác biệt lớn nhất của YOLOv8 so với các phương pháp YOLO trước đây là việc loại bỏ phương pháp anchor box truyền thống, thay vào đó sử dụng anchor free detection

Hình 3 Minh họa phương pháp anchor box [2]

Trang 15

Anchor box là một phương pháp trong đó các anchor box sẽ được định nghĩ trước với các kích thước cố định theo từng lớp đối tượng khác nhau Khi mô hình lan truyền xuôi, các anchor box sẽ được khởi tạo trên toàn bộ bề mặt của bức ảnh (Hình 3)

Các anchor box sau đó được đánh giá confident score, từ đó chọn ra lớp có xác suất lớn nhất và cao hơn threshold định sẵn để thực hiện việc tinh chỉnh anchor box thành bounding box (Hình 4) Việc tinh chỉnh bao gồm việc sử dụng Non-maximun suppression và IoU để giảm bớt các bounding box trùng và tính toán offset biến đổi bounding box tốt hơn

Hình 4 Từ anchor box đến bounding box [3]

Phương pháp anchor box tuy đã cải tiến độ chính xác của các mô hình object detection rất nhiều nhưng vẫn có những mặt hạn chế nhất định:

• Việc tổng quát hóa hình dạng của các anchor box theo các class khiến mô hình khó nhận diện các đối tượng có hình dạng bị biến đổi / đặc biệt • Số lượng anchor box được khởi tạo dư thừa quá nhiều so với số lượng

đối tượng phát hiện được

Ở YOLOv8, anchor box đã được loại bỏ thay vào đó là phương pháp anchor free detection Trong phương pháp anchor free detection, các bounding box được

Trang 16

khởi tạo không theo anchor và được phân loại từ tâm bounding box (khác với anchor box khi bounding box được xác định từ một offset từ một anchor box gần đó)

Hình 5 Hình ảnh bàn cờ đã được Mosaic Augmentation [1]

2.2 Mô hình phân loại biển báo giao thông đơn giản

Sau khi sử dụng model YOLOv8 để phát hiện các đối tượng có trong ảnh, các đối tượng thuộc lớp biển báo sau đó được cắt và phân loại bằng một mô hình phân loại hình ảnh đơn giản

Trang 17

Mô hình này sử dụng kiến trúc mạng nơ-ron hai nhánh để phân loại hình ảnh Mỗi nhánh xử lý các đặc điểm hình ảnh ở các mức độ không gian khác nhau Các đặc điểm được trích xuất từ mỗi nhánh được kết hợp và đưa qua các lớp phi tuyến tính và lớp dropout để tăng cường khả năng phân biệt của mô hình Lớp cuối cùng là một lớp tuyến tính tạo ra dự đoán phân loại cho 58 lớp

Kiến trúc mô hình bao gồm: • Nhánh 1:

o Khối conv1: Tích chập 2D với 32 bộ lọc, kích thước hạt nhân 3, padding 1

o Khối relu1: Kích hoạt ReLU

o Khối maxpool1: Tính toán max pooling 2D với kích thước hạt nhân 2 o Khối conv2: Tích chập 2D với 64 bộ lọc, kích thước hạt nhân 3,

padding 1

o Khối relu2: Kích hoạt ReLU

o Khối maxpool2: Tính toán max pooling 2D với kích thước hạt nhân 2 • Nhánh 2:

o Khối conv1b: Tích chập 2D với 64 bộ lọc, kích thước hạt nhân 5, padding 2

o Khối relu1b: Kích hoạt ReLU

o Khối maxpool1b: Tính toán max pooling 2D với kích thước hạt nhân 2

o Khối conv2b: Tích chập 2D với 128 bộ lọc, kích thước hạt nhân 5, padding 2

o Khối relu2b: Kích hoạt ReLU

o Khối maxpool2b: Tính toán max pooling 2D với kích thước hạt nhân 2

• Kết hợp đặc điểm:

o Ghép nối đặc điểm từ cả hai nhánh o Phẳng hóa đặc điểm thành một vector • Các lớp phi tuyến tính và dropout:

o Lớp dropout: Loại bỏ một số kết nối ngẫu nhiên để chống lại sự quá khớp

o Lớp GELU: Kích hoạt GELU o Lớp ReLU3: Kích hoạt ReLU • Phân loại:

o Lớp tuyến tính: Tạo ra dự đoán phân loại cho 58 lớp

Trang 18

za

Hình 6: Cấu trúc mô hình phân lớp đơn giản

Trang 19

Chương 3 KẾT QUẢ THỰC NGHIỆM 3.1 Bộ dữ liệu

3.1.1 Obstacle detection Computer Vision Project [4]

Bộ dữ liệu có 9183 ảnh gồm: 7855 ảnh train (85%), 865 ảnh validation (9%), và 463 ảnh test (5%) Trong đó có 10 lớp: xe đạp, xe buýt, xe con, chó, cột điện, xe máy , con người , biển báo giao thông, cây và hố Bộ dữ liệu được dung cho nhiều bài toán như tự động hóa phương tiện giao thông, bảo an, hỗ trợ người khuyết tật, vận chuyển bằng drone và các phưogn tiện robot… [4]

Hình 7 Một số hình ảnh từ bộ dữ liệu [4]

3.1.2 Vietnamese traffic sign dataset [5]

Bộ dữ liệu là tập hợp các hình ảnh giao thông Việt Nam tập trung vào bài toán phát hiện và phân loại biển báo giao thông Bộ dữ liệu bao gồm 58 lớp là mã của các biển báo phổ biến trên đường phố Việt Nam Bộ dữ liệu có tổng cổng 10940 ảnh được chia theo tỉ lệ: 87% train, 7% validate và 6% test

Bộ dữ liệu được nhóm nghiên cứu, xứ lý đưa về bài toán phân lớp nhằm huấn luyện cho mô hình phát hiện biển báo giao thông nhỏ của nhóm.

Trang 20

Hình 8 Hình ảnh từ bộ dữ liệu Vietnamese traffic sign dataset [5]

3.2 Kết quả thực nghiệm 3.2.1 YOLOv8

3.2.1.1 Các điểm số đánh giá

Nhóm nghiên cứu sử dụng mô hình YOLOv8nano đã được pretrain trên bộ dữ liệu COCO2017, fine-tune model về bài toán của nhóm nghiên cứu

Thông số tinh chỉnh: epochs=30

Trang 21

batch=16 dropout=0.5 imgsz=320

optimizer= AdamW(lr=0.000714, momentum=0.9)

Hình 9: Phân bố đối tượng có trong tập train Bảng 1: Kết quả thực nghiệm trên từng lớp

Bicycle 74.4 85.1 83.3 79 Bus 75.6 84.2 85.5 79 Car 71.5 42.5 54.8 53

Electric pole 51 0.93 13.3 1 Motorcycle 79.1 83.6 87.2 81 Person 65.9 50.6 52.4 57 Traffic signs 52.4 56.7 48.5 54 Tree 86.2 47.3 59.5 61 Uncover manhole 68.3 76.3 79.7 72 All 71.4 62.1 65.6 66

Trang 22

Hình 10: Đánh giá mô hình theo từng lớp trên bốn độ đo: Precision, Recall, Precision-recall, F1 (Trái sang phải, trên xuống dưới)

3.2.1.2 Phân tích kết quả

Thông qua kết quả thực nghiệm, nhóm nghiên cứu nhận thấy mô hình đã đạt được kết quả tương đối khả quan khi xét trên độ lớn mô hình (YOLOv8n) Tuy nhiên, mô hình vẫn còn nhiều hạn chế Điển hình như mAP50 của lớp electric pole chỉ chưa tới 1% mặc dù số lượng đối tượng có trong tập train là tương đồng so với các lớp như “Dog” hoặc “traffic sign” (Hình 9) Nguyên nhân dẫn đến việc sụt giảm mAP của lớp “electric pole” có thể được nhìn thấy thông qua hình bên dưới: Mô hình không thể phân biệt các đối tượng thuộc lớp “electric pole” ra khỏi background, từ đó không thể nhận diện được đối tượng trong ảnh (Hình 11)

Trang 23

Hình 11: Confusion matrix mô hình YOLOv8nano trên tập test

Tình trạng không phân biệt được đối tượng ra khỏi background cũng xuất hiện trong các lớp “person”, “tree”, “traffic sign” Sau khi phân tích từ bộ dữ liệu, nhóm nghiên cứu cho rằng nguyên nhân chính là do còn nhiều đối tượng thuộc các lớp nói trên trong bộ dữ liệu chưa được gắn nhãn, từ đó khiến cho một hình nhầm lẫn/khó phân biệt được giữa đối tượng và background

3.2.2 Mô hình phân loại biển báo 3.2.2.1 Đánh giá mô hình

Thông số của mô hình trông quá trình huấn luyện mô hình:

Batch size: 16 Epoch: 10

Optimizer: Adam Image size: 128x128

Loss function: CrossEntropyLoss

Hình ảnh đầu vào được tiền xử lý:

Ngày đăng: 15/05/2024, 09:30

Tài liệu cùng người dùng

Tài liệu liên quan