Bối cảnh và vấn đề nghiên cứu

Ùn tắc giao thông tại các đô thị hiện nay đang gia tăng nhanh chóng, gây lãng phí thời gian, tiêu tốn nhiên liệu và ảnh hưởng tiêu cực đến môi trường cũng như trật tự an toàn xã hội. Nguyên nhân xuất phát từ sự gia tăng nhanh về số lượng phương tiện cá nhân, cơ sở hạ tầng giao thông chưa đáp ứng kịp thời, công tác quản lý phương tiện công cộng còn bất cập và việc phân luồng lưu thông tại các nút giao cắt chưa thực sự tối ưu.

Trong thực tế quản lý giao thông, việc đo lường lưu lượng và phân loại phương tiện phần lớn vẫn được thực hiện bằng các phương pháp thủ công hoặc thiết bị cơ học. Những giải pháp này bộc lộ nhiều điểm hạn chế: tiêu tốn nguồn nhân lực lớn, độ chính xác không đồng đều, tốc độ cập nhật chậm và không thể cung cấp dữ liệu tức thời phục vụ công tác điều phối luồng xe liên tục. Đứng trước thực trạng đó, đồ án tốt nghiệp của sinh viên Phạm Ngọc Việt tập trung giải quyết bài toán tự động hóa quy trình nhận diện, phân loại và đếm lưu lượng phương tiện thông qua thị giác máy tính và học sâu.

Mục tiêu và nhiệm vụ nghiên cứu của đề tài được xác định cụ thể như sau:

  1. Xây dựng và phát triển một ứng dụng trí tuệ nhân tạo có khả năng tự động nhận diện và phân loại phương tiện giao thông trên video thành 9 nhóm đối tượng chi tiết.
  2. Ứng dụng mô hình học sâu YOLOv8 (trọng tâm là phiên bản YOLOv8x) kết hợp với thuật toán theo dõi đa đối tượng ByteTrack để duy trì định danh (ID) phương tiện qua từng khung hình.
  3. Thiết kế và cài đặt thuật toán đếm xe chuyên biệt cho hai kịch bản không gian giao thông: tuyến đường một chiều/hai chiều và các nút giao cắt phức tạp, hỗ trợ xuất dữ liệu thống kê ra tệp bảng tính Excel.
  4. Xây dựng một ứng dụng dạng trang web (Web Application) để thử nghiệm hệ thống, trực quan hóa luồng xử lý và đánh giá độ chính xác thực tế.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: 9 nhóm phương tiện giao thông đường bộ cơ bản, gồm: ô tô cá nhân dưới 13 chỗ (Car), xe taxi (Taxi), xe chở khách từ 13 đến dưới 30 chỗ (Coach), xe buýt công cộng (Bus), xe tải nhẹ/xe van/bán tải (LGV - Light Goods Vehicle), xe tải nặng 2 trục lớn hoặc 3-4 trục (HGV - Heavy Goods Vehicle), xe tải đầu kéo/xe cẩu/xe từ 5 trục (VHGV - Very Heavy Goods Vehicle), xe máy (Motorcycle) và xe đạp (Bicycle).
  • Phạm vi không gian: Khảo sát tập trung tại các nút giao thông và các tuyến đường một chiều hoặc hai chiều cụ thể trong đô thị, nơi có camera giám sát được bố trí ở các góc quay chiến lược.
  • Phạm vi thời gian: Dữ liệu video thực nghiệm được tác giả thu thập trong khoảng thời gian từ cuối tháng 7 đến tháng 8 năm 2023, bao gồm cả khung giờ thấp điểm và khung giờ cao điểm để phản ánh sự biến động của mật độ phương tiện.

Cơ sở lý thuyết và phương pháp nghiên cứu

Nền tảng lý thuyết của đồ án được xây dựng dựa trên các nhánh chuyên môn của Trí tuệ nhân tạo (AI), Học máy (Machine Learning) và Thị giác máy tính (Computer Vision):

  • Phát hiện đối tượng (Object Detection): Tác giả tổng hợp sự phát triển từ các mô hình trích xuất vùng ứng viên hai giai đoạn như R-CNN, Fast R-CNN, Faster R-CNN đến các mô hình một giai đoạn có tốc độ xử lý thời gian thực như SSD, RetinaNet và đặc biệt là họ mô hình YOLO (You Only Look Once). YOLO tiếp cận bài toán phát hiện đối tượng theo hướng bài toán hồi quy (regression), chia hình ảnh đầu vào thành lưới ô (grid cells) và dự đoán trực tiếp tọa độ hộp bao (bounding box) cùng phân phối xác suất phân lớp. Cấu trúc đầu ra của véc-tơ dự đoán được xác định theo công thức: $$\text{Kích thước đầu ra} = (n_{\text{class}} + 5) \times n_{\text{anchor}}$$ Trong đó, 5 tham số cơ bản gồm xác suất chứa vật thể ($P_c$), tọa độ tâm hộp bao ($b_x, b_y$), kích thước chiều rộng và chiều cao ($b_w, b_h$), kết hợp cùng chỉ số giao cắt trên hợp (IoU - Intersection over Union) để xác định hộp bao chính xác nhất.
  • Theo dõi đa đối tượng (Multiple Object Tracking - MOT): Đồ án làm rõ thách thức của bài toán tracking khi phải giải quyết các vấn đề che khuất một phần hoặc toàn bộ, đối tượng ra khỏi tầm nhìn rồi xuất hiện lại, hiện tượng tráo đổi định danh (ID switch) và sự giao cắt quỹ đạo chuyển động. Tác giả lựa chọn thuật toán ByteTrack của nhóm nghiên cứu ByteDance. ByteTrack theo dõi đối tượng thông qua kỹ thuật theo dõi điểm đặc trưng (feature point tracking) kết hợp cùng mô hình phát hiện YOLO, duy trì chỉ số hiệu năng MOTA đạt trên 80 điểm và tốc độ xử lý đạt trên 30 khung hình/giây (FPS), đồng thời vận hành ổn định trong các điều kiện biến đổi ánh sáng.
  • Phương pháp thu thập và xử lý dữ liệu: Nghiên cứu chú trọng vào tính đa dạng và chuẩn hóa dữ liệu để hạn chế hiện tượng quá khớp (overfitting). Các video gốc được thu thập từ thực tế giao thông, sau đó trích xuất thành chuỗi khung hình, cắt và chuẩn hóa kích thước, tiến hành gán nhãn thủ công (annotation) định dạng chuẩn YOLO thông qua phần mềm LabelImg.
Thành phần lý thuyết / Kỹ thuật Công cụ / Thuật toán áp dụng Vai trò trong hệ thống
Phát hiện đối tượng (Detection) YOLOv8 (yolov8n, yolov8s, yolov8m, yolov8x) Định vị tọa độ và phân loại 9 nhóm phương tiện
Theo dõi đối tượng (Tracking) ByteTrack Gán định danh ID duy nhất và duy trì quỹ đạo qua các frame
Đếm lưu lượng (Counting) Thuật toán vạch ảo (Virtual Line/Crossing) Đếm số lượng theo chiều di chuyển và theo nhánh nút giao
Xử lý video & Dữ liệu OpenShot Video Editor, LabelImg Cắt khung hình, tiền xử lý và gán nhãn dữ liệu
Nền tảng dịch vụ & Giao diện Flask API, Python, OpenCV, HTML/CSS/JS Xử lý luồng dữ liệu, điều phối API và hiển thị kết quả demo

Thiết kế và triển khai hệ thống

Hệ thống được thiết kế theo mô hình xử lý đường ống (pipeline) khép kín, kết nối từ tầng thu nhận dữ liệu đến tầng hiển thị người dùng:

  1. Kiến trúc luồng xử lý (Data Processing Pipeline):

    • Đầu vào (Input): Video giao thông được tải lên từ người dùng hoặc luồng video quay từ camera quan sát.
    • Xử lý thị giác máy tính: Thư viện OpenCV đọc từng khung hình (frame). Khung hình được đưa qua mạng nơ-ron YOLOv8x để dự đoán vị trí hộp bao và nhãn của 9 loại phương tiện.
    • Liên kết và theo dõi đối tượng: Các hộp bao phát hiện được chuyển tiếp tới thuật toán ByteTrack để đối sánh với các đối tượng ở khung hình liền kề, cập nhật vị trí điểm đặc trưng và giữ nguyên ID định danh phương tiện.
    • Logic thuật toán đếm: Thiết lập các đường ranh giới ảo trên khung hình. Khi tâm hộp bao của một ID phương tiện di chuyển cắt qua đường ranh giới theo hướng quy định (áp dụng riêng cho đường một chiều, hai chiều hoặc các nhánh tại nút giao thông), biến đếm của lớp phương tiện tương ứng sẽ tự động tăng lên 1 đơn vị. Dữ liệu đếm theo từng frame được lưu trữ lại.
    • Đầu ra (Output): Khung hình được vẽ đè thông tin nhận diện (hộp bao, nhãn, ID, số đếm) để hiển thị trực quan; đồng thời hệ thống tổng hợp toàn bộ kết quả thành tệp bảng tính Excel phục vụ công tác lưu trữ và phân tích nghiệp vụ.
  2. Công nghệ và môi trường cài đặt:

    • Ngôn ngữ lập trình chính: Python.
    • Thư viện AI và thị giác máy tính: OpenCV, TensorFlow, PyTorch/Ultralytics (hỗ trợ triển khai YOLOv8).
    • Giao diện và API: Flask Framework đóng vai trò xây dựng dịch vụ web backend, cung cấp các endpoint định dạng RESTful (hỗ trợ phương thức GET, POST nhận và trả dữ liệu JSON/tệp tin). Giao diện frontend được xây dựng bằng HTML, CSS và JavaScript để trình chiếu video và bảng số liệu thống kê.

Nội dung chính theo từng chương

Mở đầu

Phần mở đầu trình bày tính cấp thiết của đề tài trong bối cảnh quá tải hạ tầng giao thông đô thị và sự phát triển mạnh mẽ của công nghệ thị giác máy tính. Tác giả nêu rõ mục tiêu nghiên cứu, phạm vi ứng dụng và định hướng sử dụng trí tuệ nhân tạo để thay thế các phương thức thu thập lưu lượng thủ công tốn kém.

Chương 1: Tổng quan cơ sở lý thuyết

Chương 1 cung cấp hệ thống lý thuyết nền tảng về Trí tuệ nhân tạo và Học sâu. Tác giả trình bày chi tiết về mạng nơ-ron tích chập (CNN), nguyên lý trích xuất đặc trưng hình ảnh và quá trình phát triển của các thuật toán phát hiện vật thể (R-CNN, Fast R-CNN, Faster R-CNN, SSD, YOLO). Nội dung chương đi sâu vào cơ chế hoạt động của YOLO (từ việc chia grid cell, gán anchor box, cấu trúc véc-tơ đầu ra đến hàm mất mát), phân tích bản chất bài toán Multiple Object Tracking (MOT) và nguyên lý của ByteTrack. Đồng thời, chương 1 giới thiệu vai trò của việc xây dựng dữ liệu và kiến trúc ứng dụng web với Flask framework.

Chương 2: Phân tích bài toán nhận diện và đếm phương tiện giao thông

Chương 2 tập trung phân tích bài toán thực tế. Tác giả tiến hành mổ xẻ thực trạng giao thông tại các nút giao, chỉ ra các nhược điểm của phương pháp kiểm đếm truyền thống (sai số do con người, tốc độ chậm, không cập nhật liên tục). Chương này phân tích chi tiết tiêu chuẩn nhận diện hình thái của 9 nhóm phương tiện đường bộ (Car, Taxi, Bus, Coach, LGV, HGV, VHGV, Motorcycle, Bicycle) dựa trên kích thước, số trục, chức năng chở hàng/khách và các dấu hiệu nhận dạng đặc thù (mũ taxi, thùng xe tải). Đồng thời, tác giả luận giải lý do lựa chọn mô hình YOLO và thuật toán ByteTrack dựa trên các tiêu chí: tốc độ xử lý thời gian thực, khả năng tích hợp qua API với hệ thống camera hiện có, độ chính xác phân lớp và khả năng mở rộng.

Chương 3: Thực nghiệm, kết quả và phân tích

Chương 3 là phần cốt lõi trình bày toàn bộ quá trình thực nghiệm:

  • Chuẩn bị dữ liệu: Thu thập các đoạn video thực tế, sử dụng OpenShot Video Editor để cắt video thành chuỗi hình ảnh, dùng LabelImg để gán nhãn từng khung hình thành các tệp nhãn tương ứng. Dữ liệu được chia thành hai tập huấn luyện (train) và kiểm thử (test).
  • Thực nghiệm mô hình phát hiện: Tác giả tiến hành huấn luyện thử nghiệm trên các biến thể mô hình YOLOv8 với cùng bộ dữ liệu, bao gồm YOLOv8n, YOLOv8s, YOLOv8m và YOLOv8x. Quá trình theo dõi biểu đồ suy giảm hàm mất mát (Loss) và chỉ số độ chính xác trung bình (mAP) được ghi nhận chi tiết qua từng epoch. Đối với mô hình YOLOv8x, tác giả thực hiện hai giai đoạn huấn luyện: giai đoạn đầu với 120 epoch, sau đó bổ sung và làm sạch dữ liệu gán nhãn, tinh chỉnh siêu tham số và huấn luyện lại với 150 epoch.
  • Thực nghiệm bài toán đếm: Áp dụng mô hình đã huấn luyện kết hợp ByteTrack vào hai cảnh quay kiểm thử: cảnh Box_C70 (phân loại 5 nhóm xe) và cảnh giao thông thực tế tại Việt Nam (phân loại đầy đủ 9 nhóm xe). Kết quả đếm tự động được đối sánh trực tiếp với kết quả đếm thủ công bằng mắt thường.
  • Xây dựng ứng dụng demo: Triển khai mã nguồn lên nền tảng website Flask, cho phép người dùng đưa video đầu vào và nhận lại video trực quan kèm bảng số liệu thống kê xuất định dạng Excel.

Chương 4: Kết luận và hướng phát triển

Chương 4 tổng kết các kết quả đạt được của đồ án về mặt mô hình lý thuyết lẫn sản phẩm ứng dụng. Tác giả chỉ ra các hạn chế còn tồn tại và vạch ra các hướng nghiên cứu mở rộng trong tương lai.

Kết quả và đóng góp

Nghiên cứu đạt được các kết quả thực nghiệm định lượng rõ ràng được ghi nhận trong văn bản báo cáo và nhận xét của cán bộ hướng dẫn:

  • Độ chính xác nhận diện và đếm: Hệ thống hoàn thành mục tiêu đề ra, đạt độ chính xác lên đến 90% so với kết quả kiểm đếm thực tế bằng mắt thường trên các đoạn video thử nghiệm tại Việt Nam.
  • Đánh giá và so sánh mô hình: Tác giả đã tiến hành đối sánh hiệu năng giữa các phiên bản YOLOv8 (yolov8n, yolov8s, yolov8m, yolov8x). Mô hình YOLOv8x sau khi được tinh chỉnh tham số và bổ sung thêm dữ liệu huấn luyện ở mức 150 epoch đã cho thấy sự cải thiện rõ rệt về điểm số mAP và độ ổn định của ma trận nhầm lẫn (Confusion Matrix) so với mốc huấn luyện 120 epoch.
Kịch bản kiểm thử Số lớp phương tiện (Classes) Phương pháp kiểm chứng Độ chính xác đạt được
Cảnh thực nghiệm Box_C70 5 lớp phương tiện cơ bản So sánh kết quả tự động với đếm tay thủ công Đạt độ khớp cao trên từng lớp xe
Cảnh video thực tế Việt Nam 9 lớp phương tiện chi tiết So sánh kết quả tự động với đếm tay thủ công Đạt độ chính xác xấp xỉ 90%
  • Giải pháp và kiến nghị tác giả đề xuất:
    • Ứng dụng hệ thống vào các nút giao thông trọng điểm để tự động hóa việc thu thập dữ liệu lưu lượng xe, giảm thiểu chi phí và nguồn nhân lực đo đạc thủ công.
    • Tích hợp thông tin lưu lượng theo thời gian thực vào các trung tâm điều hành giao thông đô thị nhằm hỗ trợ điều tiết chu kỳ đèn tín hiệu, phát hiện các điểm nghẽn và đưa ra phương án phân luồng từ xa.
    • Sử dụng số liệu thống kê tải trọng phương tiện (thông qua tỷ lệ xe tải nhẹ, xe tải nặng, xe đầu kéo) làm căn cứ khoa học cho công tác quy hoạch, duy tu và nâng cấp cơ sở hạ tầng cầu đường.
  • Đóng góp của đồ án:
    • Xây dựng một tập dữ liệu ảnh giao thông thực tế tại Việt Nam được phân chia chi tiết thành 9 lớp đối tượng, giải quyết được bài toán phân biệt các phương tiện có hình thái tương đồng nhưng tải trọng khác biệt (như tách biệt ô tô con và taxi; phân loại xe tải nhẹ LGV, xe tải nặng HGV và xe tải cỡ lớn VHGV).
    • Tích hợp thành công mô hình phát hiện state-of-the-art YOLOv8x với thuật toán ByteTrack và xây dựng hoàn chỉnh thuật toán đếm xe qua vạch ảo tại nút giao thông.
    • Đóng gói toàn bộ giải pháp thành một ứng dụng web demo hoàn chỉnh, hỗ trợ xuất báo cáo thống kê phục vụ công tác giám sát.

Hạn chế và hướng nghiên cứu tiếp

Dựa trên phạm vi thực hiện và nội dung trình bày trong đồ án, nghiên cứu còn một số điểm hạn chế:

  • Tập dữ liệu thực nghiệm được thu thập trong một khung thời gian giới hạn (từ cuối tháng 7 đến tháng 8 năm 2023), chưa bao quát được toàn bộ các yếu tố thời tiết cực đoan (như mưa bão lớn, sương mù dày) hoặc điều kiện ánh sáng đêm khuya phức tạp.
  • Ứng dụng web triển khai trên Flask hiện tại dừng lại ở mức độ thử nghiệm demo đơn giản, phục vụ kiểm chứng thuật toán chứ chưa được tối ưu hóa tải cho các hệ thống giám sát diện rộng quy mô thành phố.
  • Tốc độ xử lý của mô hình kích thước lớn như YOLOv8x đòi hỏi tài nguyên tính toán phần cứng cao, gây khó khăn nhất định nếu muốn triển khai trực tiếp trên các thiết bị nhúng (edge devices) đặt tại hiện trường.

Hướng phát triển tiếp theo của đề tài:

  • Tiếp tục mở rộng quy mô bộ dữ liệu huấn luyện, bổ sung thêm nhiều góc quay camera khác nhau, đa dạng hóa điều kiện thời tiết và ánh sáng nhằm nâng cao khả năng tổng quát hóa của mô hình.
  • Tối ưu hóa cấu trúc mô hình hoặc nghiên cứu phương pháp nén mô hình để tăng tốc độ suy luận thời gian thực, đáp ứng yêu cầu xử lý đồng thời nhiều luồng camera độ phân giải cao.
  • Nâng cấp giao diện người dùng và mở rộng tính năng của hệ thống web, tiến tới tích hợp trực tiếp vào hệ thống camera giám sát thông minh sẵn có của các cơ quan quản lý giao thông.

Giá trị tham khảo

Đồ án tốt nghiệp là tài liệu tham khảo có giá trị học thuật và ứng dụng thực tiễn:

  • Đối tượng thụ hưởng: Sinh viên, học viên chuyên ngành Công nghệ thông tin, Khoa học dữ liệu, Trí tuệ nhân tạo và Kỹ thuật giao thông đang nghiên cứu về các bài toán thị giác máy tính, phát hiện và theo dõi đối tượng trên video.
  • Các phần nội dung có giá trị tham khảo cao:
    • Quy trình phân loại và gán nhãn 9 lớp phương tiện: Tiêu chuẩn phân chia chi tiết các loại xe (đặc biệt là các loại xe tải LGV, HGV, VHGV và phân biệt xe cá nhân với xe dịch vụ) cung cấp tài liệu hữu ích cho việc xây dựng bộ dữ liệu giao thông tại các nước đang phát triển.
    • Phương pháp kết hợp YOLOv8x và ByteTrack: Toàn bộ quy trình từ huấn luyện mô hình phát hiện, thiết lập thuật toán theo dõi đến logic đếm phương tiện qua vạch cắt là cơ sở kỹ thuật rõ ràng để sinh viên triển khai các đề tài liên quan đến giám sát an ninh hoặc đếm lưu lượng.
    • Quy trình tinh chỉnh tham số và phân tích thực nghiệm: Các biểu đồ theo dõi hàm Loss, điểm mAP qua các epoch (120 epoch và 150 epoch) cùng phương pháp kiểm thử đối chứng với dữ liệu đếm tay cung cấp phương pháp luận thực nghiệm chặt chẽ cho các nghiên cứu ứng dụng học sâu.

Câu hỏi thường gặp

1. Đồ án phân loại phương tiện giao thông thành những nhóm cụ thể nào?
Đồ án phân loại phương tiện thành 9 nhóm đối tượng đường bộ cơ bản, bao gồm: xe con dưới 13 chỗ (Car), xe taxi (Taxi), xe chở khách từ 13 đến dưới 30 chỗ (Coach), xe buýt công cộng (Bus), xe tải nhẹ/xe van/bán tải (LGV), xe tải nặng 2 trục lớn hoặc 3-4 trục (HGV), xe tải cỡ lớn/đầu kéo/từ 5 trục (VHGV), xe máy cá nhân (Motorcycle) và xe đạp (Bicycle).

2. Vì sao tác giả lựa chọn thuật toán ByteTrack để giải quyết bài toán theo dõi phương tiện?
ByteTrack được lựa chọn nhờ khả năng theo dõi đa đối tượng (MOT) vượt trội, duy trì chỉ số MOTA đạt trên 80 điểm và tốc độ xử lý trên 30 FPS. Thuật toán sử dụng kỹ thuật theo dõi điểm đặc trưng kết hợp với mạng YOLO, giúp duy trì định danh (ID) ổn định theo thời gian, hạn chế hiện tượng mất dấu khi phương tiện bị che khuất một phần hoặc khi điều kiện ánh sáng thay đổi.

3. Những công cụ và thư viện nào được sử dụng trong quá trình xây dựng dữ liệu và huấn luyện mô hình?
Tác giả sử dụng phần mềm OpenShot Video Editor để trích xuất các đoạn video thực tế thành hình ảnh, sử dụng công cụ LabelImg để gán nhãn thủ công từng khung hình. Quá trình huấn luyện và xây dựng ứng dụng sử dụng ngôn ngữ Python kết hợp cùng các thư viện OpenCV, TensorFlow và framework YOLOv8.

4. Ứng dụng web demo của đồ án được triển khai bằng công nghệ gì và cung cấp những chức năng nào?
Ứng dụng web được xây dựng bằng Flask framework trên nền Python, kết hợp với giao diện người dùng sử dụng HTML, CSS và JavaScript. Ứng dụng cung cấp giao diện tải video đầu vào, xử lý nhận diện và đếm phương tiện theo thời gian thực, trực quan hóa kết quả trên khung hình và cho phép xuất dữ liệu thống kê ra tệp bảng tính Excel.

5. Kết quả độ chính xác của hệ thống khi thử nghiệm trên video giao thông thực tế tại Việt Nam đạt mức bao nhiêu?
Qua quá trình thực nghiệm đối sánh giữa số liệu đếm tự động của hệ thống với kết quả kiểm đếm thủ công bằng mắt thường, mô hình YOLOv8x kết hợp ByteTrack đạt độ chính xác lên đến 90%.

Kết luận

Đồ án tốt nghiệp của sinh viên Phạm Ngọc Việt đã hoàn thành trọn vẹn mục tiêu nghiên cứu thông qua việc xây dựng một hệ thống thị giác máy tính tự động nhận diện, phân loại và đếm 9 nhóm phương tiện giao thông đường bộ. Giải pháp kết hợp giữa mô hình học sâu YOLOv8x và thuật toán theo dõi ByteTrack đã chứng minh hiệu quả thực tế với độ chính xác đạt xấp xỉ 90% so với kiểm đếm thủ công. Hệ thống được đóng gói thành một ứng dụng web demo hoàn chỉnh có khả năng xuất dữ liệu báo cáo dạng Excel, tạo tiền đề vững chắc cho việc ứng dụng công nghệ trí tuệ nhân tạo vào công tác quản lý giao thông đô thị thông minh trong tương lai.