Vehicle Detection
🚗

Vehicle Detection

Data Source
Project
Expertise
Object Detection
YOLOv8n
Date
For more information, please follow the Github Link: vehicle-detection

1. Tổng quan dự án (Project Overview)

Dự án tập trung vào việc xây dựng một hệ thống tự động nhận diện và phân loại các phương tiện giao thông trong môi trường thực tế tại Việt Nam.
  • Bài toán cốt lõi: Xác định vị trí (Bounding Box) và gán nhãn loại phương tiện từ dữ liệu video/hình ảnh trích xuất từ camera giám sát.
  • Đối tượng nhận diện: Gồm 8 nhóm chính thường gặp: Xe máy, xe hơi, xe tải, xe buýt, xe cứu hỏa, xe van, xe đạp và xe container.
  • Công nghệ sử dụng: Ngôn ngữ Python, thư viện OpenCVPyTorch và Framework Ultralytics.
  • Mô hình triển khai: Ứng dụng Web sử dụng Flask Framework chạy trên phần cứng Macbook Air M1.
notion image

2. Mục tiêu dự án (Project Objectives)

Dự án được thực hiện nhằm giải quyết các mục tiêu sau:
  • Nghiên cứu và ứng dụng mô hình YOLOv8n: Đây là phiên bản Nano nhẹ nhất, tối ưu cho các thiết bị có tài nguyên hạn chế nhưng vẫn đảm bảo tốc độ xử lý thời gian thực.
  • So sánh hiệu năng: Thực nghiệm đối chứng giữa phương pháp học sâu hiện đại (YOLOv8n) và phương pháp học máy truyền thống (HOG + SVM) để thấy rõ sự tiến hóa của công nghệ thị giác máy tính.
  • Hướng tới giao thông thông minh: Cung cấp cơ sở lý thuyết và thực nghiệm cho việc đếm lưu lượng xe, hỗ trợ điều khiển đèn tín hiệu linh hoạt và giám sát các hành vi vi phạm (đi ngược chiều, đỗ sai quy định).

3. Đánh giá kết quả

Phân tích Learning Curves

Hệ thống sử dụng hai loại biểu đồ mất mát (Loss) để chẩn đoán trạng thái của mô hình qua 50 vòng lặp (epochs).
a. Box Loss Learning Curve (Tổn thất định vị)
notion image
Biểu đồ trên thể hiện sự biến thiên của hàm mất mát về vị trí khung bao (Box Loss) trên tập huấn luyện (Train) và tập kiểm thử (Validation) qua 50 epochs. Trục tung biểu thị giá trị Loss, còn trục hoàng biểu thị số lượng Epoch.
Nhận xét: Cả Train Loss và Validation Loss đều cho thấy xu hướng giảm đều đặn rõ rệt. Giá trị Loss giảm nhanh trong 10 epochs đầu tiên và tiếp tục giảm dần với thấp độ chậm hơn trong các epoch tiếp theo.
  • Giai đoạn đầu (Epoch 1-40): Đường Validation Loss (nét đứt) luôn duy trì ở mức thấp hơn so với Train Loss (nét liền). Đây là hiện tượng thường gặp trong các mô hình YOLO. Điều này có thể lý giải do kỹ thuật điều chuẩn (Regularization) được áp dụng trong quá trình huấn luyện, nhưng không áp dụng trong quá trình kiểm thử. Hoặc có thể do Training Loss được đo lường trong suốt mỗi epoch, trong khi Validation Loss được đo lường sau mỗi epoch. Điều này ngụ ý rằng các giá trị Training Loss được đo lường sớm hơn nửa epoch so với Validation Loss.
  • Giai đoạn cuối (Epoch 41-50): Hai đường bắt đầu giao nhau. Train Loss tiếp tục giảm xuống mức 1.0, trong khi đó Validation Loss có xu hướng đi ngang ở ngưỡng xấp xỉ 1.01.
Kết luận: Từ biểu đồ trên cho ta thấy mô hình thể hiện tốt khả năng định vị đối tượng. Mặc dù tại epoch thứ 40 trở đi, Train Loss bắt đầu thấp hơn Validation Loss. Mặc dù khoảng cách chênh lệch chưa lớn, nhưng đó là dấu hiệu chớm bắt đầu của hiện tượng quá khớp (Overfitting). Overfitting được hiểu là mô hình quá khít với dữ liệu, nó sẽ đúng trên tập training nhưng trên tập test (kiểm thử ) thì kết quả rất tệ. Mô hình này thường có bias nhỏ và variance lớn
b. Classification Loss Learning Curve (Tổn thất phân loại)
notion image
Biểu đồ trên thể hiện sự biến thiên của hàm mất mát phân loại (Classification Loss) – chỉ số đô lường độ chính xác của mô hình trong việc gán nhãn đúng cho đối tượng (ví dụ: xác định đúng là xe hơi, xe buýt, hay xe đạp...).
Nhận xét:
  • Cả hai đường Loss đều giảm rất nhanh trong 5 epochs đầu tiên. Đặc biệt Train Loss giảm mạnh từ mức cao xấp xỉ 3.4 xuống xấp xỉ 1.2, cho thấy mô hình học các đặc trưng phân loại cơ bản rất nhanh.
  • Sự ổn định trong các epoch từ 20 trở đi, cả hai đường đều đi vào trạng thái bão hòa (giảm rất chậm). Cuối quá trình huấn luyện tại epoch thứ 50, cả hai chỉ số đều hội tụ về mức thấp khoảng quanh ngưỡng 0.6-0.7.
  • Khác với biểu đồ Box Loss, ở biểu đồ này Validation Loss (đường nét đứt) luôn duy trì ở mức thấp đáng kể so với Train Loss (đường nét liền) trong suốt 50 epoch.
Kết luận: Việc Validation Loss thấp hơn Train Loss không có dấu hiệu tăng ngược trở lại chứng tỏ mô hình không bị Overfitting.

Confusion Matrix (Ma trận nhầm lẫn).

notion image
Biểu đồ trên minh họa độ chính xác của mô hình phân loại trên tập dữ liệu kiểm thử. Trục hoành biểu thị nhãn thực tế (True Class) và trục trung biểu thị nhãn dự đoán (Predicted Class). Các giá trị ma trận được chuẩn hóa về thang đo [0, 1] phản ánh tỉ lệ phần trăm dự đoán trên từng lớp.
True Positives (Dự đoán chính xác):
Các giá trị trên đường chéo chính thể hiện khả năng định danh đúng của mô hình đối với từng lớp đối tượng.
  • Mô hình thể hiện khả năng định danh đúng của mô hình với các phương tiện có kích thước lớn và hình dáng đặc thù. Cụ thể, lớp xe container đạt độ chính xác tuyệt đối (100%) và xe cứu hỏa là (98%).
  • Đối với các nhóm phương tiện phổ thông duy trì độ ổn định tốt: Xe hơi (94%), xe máy (93%), xe tải (90%) và xe buýt (84%).
  • Còn đối với xe đạp ghi nhận độ chính xác thấp nhất, chỉ đạt 0.59. Điều này chỉ ra rằng mô hình gặp khó khăn trong việc phân loại các đặc trưng của xe đạp so với nền hoặc các đối tượng khác.
Phân tích sai số.
Sự nhầm lẫn giữa các đối tượng:
  • Có sự nhầm lần giữa lớp xe Van và xe hơi, với 17% mẫu xe van bị nhận nhầm thành xe hơi. Nguyên nhân chủ yếu do sự tương đồng cao về đặc điểm hình học và cấu trúc khung xe.
  • Có sự nhầm lẫn giữa xe buýt với các xe khác, đặc biệt là xe buýt bị nhận nhầm thành xe hơi (10%) nhưng con số này cũng ở mức thấp, không ảnh hưởng tới hiệu suất chung.
Tỷ lệ bỏ sót đối tượng (False Negative):
  • Hiện tượng bỏ sót đối tượng xảy ra ở lớp xe đạp, với 27% số lượng xe đạp thực tế bị mô hình gán nhãn là Background (nền).
  • Nguyên nhân: Do xe đạp có tiết diện nhỏ khiến mô hình khó mà tách biên đối tượng khỏi nền ảnh phức tạp hoặc bị che khuất bởi một phần.
Dương tính giả (False Postives):
  • Trong các vùng nền (background) cho thấy khi không có vật thể gì, mô hình lại ảo giác nhận diện ra vật thể.
  • Trong các vùng nền bị trống, có tới 67% trường hợp mô hình nhận nhầm là xe máy và 25% là xe hơi. Điều này cho thấy mô hình khá là nhạy cảm với đặc điểm của xe máy, dẫn đến việc hệ thống nhận diện cả xe máy ở những nơi không có xe.
Tổng Kết & Quan Sát (Observations)
Sự hội tụ của các đường cong Loss (Convergence).
Các đường cong Loss (Box Loss/ Classification Loss) trên cả tập huấn luyện và tập kiểm thử đều cho thấy xu hướng giảm đều và tiệm cận dần về mức thấp nhất. Không có xuất hiện các hiện tượng dao động bất thường, chứng tỏ quá trình huấn luyện diễn ra ổn định qua 50 epochs.
Khoảng cách giữa Train Loss và Validation Loss duy trì ở mức nhỏ. Điều này cho thấy mô hình không chỉ học vẹt dữ liệu huấn luyện mà còn có khả năng suy luận tốt trên tập dữ liệu kiểm thử.
Thông tin từ Ma trận nhầm lẫn.
  • High Recall (Độ nhạy cao): Mô hình thể hiện hiệu suất vượt trội trong việc nhận diện các phương tiện có kích thước lớn và đặc trưng hình học rõ ràng. Cụ thể, độ chính xác đạt mức gần như tuyệt đối đối với xe container (100%), xe cứu hỏa (98%) và rất cao so với xe hơi (94%).
  • Thách thức với lớp nhỏ: Đối với các lớp có kích thước nhỏ như xe đạp, mô hình gặp khó khăn trong việc nhận diện đối tượng khi chỉ đạt 59%. Đây là điểm yếu cần khắc phục bằng việc bổ sung dữ liệu hoặc kỹ thuật lấy mẫu (sampling).
  • Nhưng mặc dù khả năng nhận diện vật thể tốt, mô hình vẫn gặp các vấn đề như “Dương tính giả” (False Postive). Cụ thể các vùng nền trống không có xe, nhưng mô hình thường xuyên nhận nhầm thành xe máy (67%) và xe hơi (25%). Điều nay cho thấy mô hình đang quá nhạy cảm và cần cải thiện khả năng lọc nhiễu.
Box Loss:
  • Sự giảm liên tục của Box Loss qua các epoch phản ánh độ chính xác ngày càng
tăng trong kỹ năng định vị không gian. Các khung bao dự đoán (Bounding Boxes) ngày
càng sát với biên thực tế, đảm bảo đối tượng khoanh vùng chặt chẽ và chính xác.

Các Chỉ Số Hiệu Năng (Performance Metrics).

Metric
Giá trị
Mô tả
mAP@0.5
0.87
Độ chính xác trung bình (mean Average Precision) tại ngưỡng IoU = 0.50. Giá trị 0.87 phản ánh khả năng phát hiện và khoanh vùng đối tượng trong phần lớn các kịch bản thử nghiệm.
Recall
0.86
Tỷ lệ thu hồi (Độ nhạy), cho thấy mô hình tìm được 86% số lượng đối tượng thực tế có trong ảnh. Chỉ số này cao hơn Precision cho thấy ưu thế của mô hình trong việc hạn chế bỏ sót vật thể.
Precision
0.78
Tỷ lệ dự đoán đúng trên tổng số dự đoán dương. Giá trị này thấp hơn Recall cho thây mô hình F1-Scorecòn gặp một số dương tính giả.
F1-Score
0.82
Trung bình điều hòa giữa Precision và Recall. Mức 0.82 cho thấy sự cân bằng tổng thế ở mức khá tốt giữa việc tìm kiếm đối tượng và độ chính xác của dự đoán.
 
Quan Sát (Observations):
  • Hiệu năng tổng thể mạnh mẽ: Giá trị mAP@0.5 đạt 0.87 cho thấy mô hình YOLOv8n có độ tin cây tốt trong bài toán phát hiện phương tiện giao thông, đặc biệt với các lớp phương tiện có kích thước lớn và đặc trưng hình dạng rõ ràng như xe container và xe cứu hỏa.
  • Điểm nổi bật của mô hình hiện tại là chỉ số Recall đạt 0.86, cao đáng kể so với Precision. Điều này cho thấy mô hình có xu hướng nhạy cảm với các đặc trưng ảnh, giúp giảm thiểu tối đa rủi ro bỏ sót đối tượng (False Negatives).
  • Chỉ số Precision chỉ dừng lại ở mức 0.78 phản ánh một sự đánh đổi. Mô hình chấp nhận đưa ra nhiều dự đoán hơn để đảm bảo độ bao phủ, dẫn đến việc gia tăng tỷ lệ dương tính giả (False Postives).
  • Chỉ số F1-Score đạt 0.82 xác nhận rằng dù có sự chênh lệch giữa Precision và Recall, mô hình vẫn duy trì ở mức hiệu suất tốt. Để cải thiện Precision mà không làm giảm Recall, các giải pháp như điều chỉnh ngưỡng Confidence Threshold hoặc lọc dữ liệu nền.