Chương 1. Động lực nghiên cứu. Phát biểu bài toán. Thách thức.
Mục tiêu và phạm vi nghiên cứu. Đóng góp của nghiên cứu. Bố cục của báo cáo. PHƯƠNG PHÁP.
Điểm nổi bật của YOLOv8. Mô hình phân loại biển báo giao thông đơn giản. KẾT QUẢ THỰC NGHIỆM. Bộ dữ liệu.
Obstacle detection Computer Vision Project [4]. Vietnamese traffic sign dataset [5]. Kết quả thực nghiệm. Mô hình phân loại biển báo.
TRIỂN KHAI ỨNG DỤNG. Công nghệ sử dụng. Thiết kế ứng dụng. Thiết kế chức năng.
Thiết kế database. Thiết kế giao diện. Thiết kế Back-end API. Cấu trúc ứng dụng.
Phần mềm vỏ. Hướng dẫn cài đặt. Cài đặt môi trường. Xây dựng phần mềm.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN. Hướng phát triển. 33 TÀI LIỆU THAM KHẢO. 36 Ảnh submit Google Play.
36 sSource code Github. 36 DANH MỤC HÌNH Hình 1. Đầu ra và đầu vào của bài toán TOD [1]. Cấu trúc của YOLOv8 [1].
Minh họa phương pháp anchor box [2]. Từ anchor box đến bounding box [3]. 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. Một số hình ảnh từ bộ dữ liệu [4].
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.
20 Hình 14: Android NDK [8]. 22 Hình 18: Cơ sở dữ liệu cho chức năng đăng nhập và lưu trữ video. 23 Hình 19: Logo ứng dụng. 24 Hình 20: Giao diện màn hình chính ứng dụng.
25 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 Hình 27: Hình submit Google Play. 36 Hình 28: Github Front-end.
36 Hình 29: Github Back-end. 37 DANH MỤC BẢNG Bả ng 1: Kết quả thực nghiệm trên từng lớp. 13 Bả ng 2: Kết quả đánh giá mô hình phân lớp đơn giản. 16 DANH MỤC TỪ VIẾT TẮT Từ viết tắt Từ nguyên gốc TOD Traffic Object Detection ODCVP Obstacle Detection Computer Vision Project 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. Ở 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. Độ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. 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.
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ể. 2 Đầu vào Đầu ra Hình 1. Đầu ra và đầu vào của bài toán TOD [1]. 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.
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. Đó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. 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. 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.
Cấu trúc của YOLOv8 [1] 5 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. 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.
Điểm nổi bật của YOLOv8 2. 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. Minh họa phương pháp anchor box [2]. 6 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. 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 7 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 đó) 2.
Mosaic Augmentation Mosaic Augmentation là quá trình tạo ra các ảnh đặc biệt được cắt ghét từ các bộ dữ liệu huấn luyện.