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

Sự gia tăng nhanh chóng của các phương tiện tham gia giao thông đặt ra áp lực lớn đối với công tác giám sát trật tự, điều phối giao thông và xử lý các hành vi vi phạm pháp luật như lấn làn, vượt đèn đỏ hay chạy quá tốc độ trên các tuyến đường cao tốc. Công nghệ xử lý ảnh và thị giác máy tính kết hợp với các giải pháp máy học đã trở thành một hướng tiếp cận then chốt trong việc tự động hóa giám sát giao thông. Tuy nhiên, việc triển khai các thuật toán mạng nơ-ron tích chập (CNN) hiện nay chủ yếu dựa trên các hệ thống máy tính truyền thống sử dụng CPU hoặc GPU công suất lớn. Mô hình tính toán này gặp rào cản lớn về điện năng tiêu thụ, chi phí phần cứng và khả năng mở rộng khi triển khai diện rộng trên mạng lưới camera giao thông thực tế.

Nhằm giải quyết bài toán tối ưu hóa phần cứng, tiết kiệm năng lượng và tăng tốc độ xử lý thời gian thực, việc hiện thực hóa các mô hình học sâu trực tiếp trên nền tảng vi mạch lập trình được (FPGA - Field Programmable Gate Array) và hệ thống vi mạch tích hợp trên chip (SoC) là hướng đi khả thi, mở ra tiềm năng thương mại hóa thành các vi mạch chuyên dụng (IC).

Mục tiêu và nhiệm vụ nghiên cứu cụ thể của đề tài bao gồm:

  1. Nghiên cứu các tài liệu khoa học về việc hiện thực hóa mô hình nhận diện vật thể trên phần cứng FPGA, từ đó lựa chọn kiến trúc phần cứng và mô hình giải thuật phù hợp với nguồn tài nguyên hiện có.
  2. Tìm hiểu nền tảng kit phần cứng DE1-SoC và ngôn ngữ lập trình phần cứng bậc cao OpenCL nhằm phục vụ việc xây dựng, tối ưu hóa các khối tính toán logic tổ hợp trên FPGA.
  3. Nghiên cứu mô hình mạng nhận diện YOLO (You Only Look Once) và các biến thể rút gọn (YOLOv2, YOLOv2-Tiny, Custom YOLO, YOLOv3, Tinier-YOLO) để thiết kế mô hình rút gọn Custom Tinier YOLO tối ưu hóa cho môi trường tài nguyên hạn chế của kit DE1-SoC.
  4. Thu thập, chuẩn hóa và xây dựng bộ dữ liệu huấn luyện (dataset) bao gồm hơn 30.000 hình ảnh cho 3 nhóm phương tiện giao thông phổ biến: xe hơi, xe máy và xe tải; xử lý chuyển đổi dữ liệu đầu vào về dạng ảnh mức xám (grayscale) nhằm giảm tải khối lượng tính toán.
  5. Xây dựng và triển khai chương trình phân luồng xử lý: phần tính toán ma trận nặng được tăng tốc trên vi mạch FPGA của board DE1-SoC, phần điều phối luồng dữ liệu thực thi trên bộ xử lý máy chủ (HPS/máy tính cá nhân); hướng tới mục tiêu độ chính xác nhận diện đạt từ 80% đến 90%.

Đối tượng nghiên cứu là giải thuật nhận diện đối tượng thời gian thực YOLO và phương pháp gia tốc phần cứng trên chip SoC-FPGA. Phạm vi thực nghiệm được giới hạn trên board mạch phát triển Terasic DE1-SoC (Cyclone V SoC 5CSEMA5F31C6) và tập dữ liệu hình ảnh 3 nhóm phương tiện giao thông tại Việt Nam và các bộ dữ liệu mở quốc tế.

Cơ sở lý thuyết và phương pháp

Khóa luận xây dựng trên các nền tảng lý thuyết và công cụ kỹ thuật sau:

  • Lý thuyết mạng nơ-ron tích chập (CNN): Các phép toán cốt lõi bao gồm tích chập ma trận (Convolution với kernel, padding, stride), hàm kích hoạt phi tuyến tính (ReLU, Leaky ReLU với hệ số $\alpha = 0.1$), các lớp giảm mẫu (Max pooling, Average pooling), và tầng liên kết đầy đủ (Dense/Fully Connected).
  • Họ mô hình nhận diện YOLO: Cơ chế nhận diện đơn tầng (single-stage detector) dự đoán trực tiếp tọa độ bounding box $(x, y, w, h)$ và độ tin cậy (confidence score) thông qua việc chia lưới ảnh đầu vào. Đề tài kế thừa các cải tiến của YOLOv2 và YOLOv3 bao gồm chuẩn hóa theo lô (Batch Normalization), kỹ thuật dự đoán độ lệch thông qua cụm hộp neo (Anchor box), và trích xuất đặc trưng đa quy mô (Fine-grained feature/Passthrough layer).
  • Kiến trúc mô hình Tinier-YOLO và Fire Module: Cấu trúc Fire Module gồm phần nén (squeeze layer sử dụng filter $1\times1$) và phần mở rộng (expand layer kết hợp filter $1\times1$ và $3\times3$) nhằm giảm thiểu số lượng tham số mà vẫn đảm bảo độ sâu mạng.
  • Biểu diễn số học và đại số tuyến tính: Định dạng dấu chấm động IEEE 754 đơn chính xác (Single Precision - 32 bit: 1 bit sign, 8 bit exponent, 23 bit mantissa) và nửa chính xác (Half Precision - 16 bit: 1 bit sign, 5 bit exponent, 10 bit mantissa). Thuật toán nhân ma trận tổng quát GEMM ($C = \alpha AB + \beta C$) kết hợp phương pháp biến đổi ma trận im2col và im2row.
  • Môi trường và công cụ phát triển: Framework mã nguồn mở Darknet phục vụ cấu hình và huấn luyện mạng; thư viện OpenBLAS hỗ trợ tính toán đại số tuyến tính; Intel FPGA SDK for OpenCL cho phép biên dịch mã C/C++ bậc cao thành bitstream logic phần cứng; hệ điều hành Linux nhúng chạy trên lõi vi xử lý cứng ARM (HPS).
Thành phần lý thuyết / Kỹ thuật Chi tiết áp dụng trong khóa luận
Framework huấn luyện Darknet (hỗ trợ CPU, GPU và OpenCL)
Định dạng số học Chuẩn IEEE 754 (32-bit Single Precision và 16-bit Half-Precision)
Kỹ thuật đại số tuyến tính GEMM kết hợp chuyển đổi không gian ảnh im2col / im2row
Ngôn ngữ gia tốc phần cứng OpenCL (chia mô hình Host - Kernel, NDRange, Work-group, Work-item)
Nền tảng phần cứng thực thi Terasic DE1-SoC (Altera Cyclone V SoC 5CSEMA5F31C6)

Nguồn dữ liệu huấn luyện được tổng hợp từ hơn 30.000 hình ảnh từ nền tảng Kaggle, Roboflow và tập dữ liệu xe hơi Stanford Car Dataset (hơn 16.000 ảnh từ phòng nghiên cứu AI của Đại học Stanford), sau đó thực hiện lọc bỏ dữ liệu trùng lặp, chuẩn hóa nhãn gán $(c, x, y, w, h)$ và chuyển đổi sang ảnh mức xám kích thước $224\times224$.

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

Hệ thống được thiết kế phân tầng dựa trên kiến trúc phần cứng - phần mềm kết hợp giữa bộ xử lý cứng HPS và khối logic lập trình được FPGA trên kit DE1-SoC:

1. Kiến trúc mô hình Custom Tinier YOLO

Mô hình được tối ưu hóa từ kiến trúc gốc 68 lớp của Tinier-YOLO xuống còn 18 lớp, nhận dữ liệu đầu vào là ảnh mức xám kích thước $224\times224\times1$:

Lớp Loại lớp Kích thước bộ lọc / Bước nhảy (Stride) Kích thước đầu vào Kích thước đầu ra
1 Convolutional 16 filters, $3\times3 / 1$ $224\times224\times1$ $224\times224\times16$
2 Maxpool $2\times2 / 2$ $224\times224\times16$ $112\times112\times16$
3 Convolutional 64 filters, $3\times3 / 1$ $112\times112\times16$ $112\times112\times64$
4 Maxpool $4\times4 / 4$ $112\times112\times64$ $28\times28\times64$
5 Convolutional 256 filters, $3\times3 / 1$ $28\times28\times64$ $28\times28\times256$
6 Maxpool $4\times4 / 4$ $28\times28\times256$ $7\times7\times256$
7 Convolutional 64 filters, $1\times1 / 1$ $7\times7\times256$ $7\times7\times64$
8 Convolutional 256 filters, $1\times1 / 1$ $7\times7\times64$ $7\times7\times256$
9 Route Lớp 6 - -
10 Convolutional 256 filters, $3\times3 / 1$ $7\times7\times64$ $7\times7\times256$
... ... ... ... ...
17 Convolutional 24 filters, $1\times1 / 1$ $7\times7\times512$ $7\times7\times24$
18 YOLO Layer Nhận diện đối tượng $7\times7\times24$ Bounding boxes

2. Thiết kế phần mềm và hệ điều hành nhúng

  • Xây dựng môi trường Linux trên DE1-SoC: Quy trình tạo lập bao gồm sinh tệp cấu hình nạp phần cứng .aocx (FPGA programmable bitstream) và tệp nhị phân thô (raw binary file), tạo nạp khởi động preloader-mkpimage.bin, biên dịch bootloader u-boot.img, cấu hình nhân hệ điều hành zImage, cây thiết bị soc_system.dtb, xây dựng hệ thống tệp gốc (root filesystem), tạo kịch bản khởi động u-boot script và cài đặt driver giao tiếp OpenCL trên thẻ nhớ SD.
  • Hiện thực Host Program và Kernel OpenCL:
    • Host Program: Thực thi trên lõi ARM Cortex-A9 thuộc HPS, đảm nhiệm việc đọc và tiền xử lý hình ảnh, phân bổ không gian bộ nhớ toàn cục (Global Memory - SDRAM), sao chép trọng số và dữ liệu đầu vào sang FPGA, sau đó nhận lại ma trận đầu ra để thực hiện giải mã bounding box và tính ngưỡng tin cậy.
    • Kernel Logic: Hiện thực trên khối logic FPGA, thực thi tính toán các lớp tích chập thông qua phép nhân ma trận GEMM song song hóa bằng mô hình NDRange, tối ưu hóa kích thước Work-group và Work-item phù hợp với số lượng khối DSP và phần tử logic (ALM/LUT) của chip Cyclone V.

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

Chương 1: Giới thiệu tổng quan và mục tiêu đề tài

Chương này tập trung trình bày tính cấp thiết của việc áp dụng công nghệ xử lý ảnh và trí tuệ nhân tạo vào công tác điều phối, giám sát an toàn giao thông. Tác giả phân tích các hạn chế cố hữu của hệ thống máy tính truyền thống về công suất tiêu thụ và chi phí, qua đó khẳng định tính khả thi của giải pháp gia tốc trên phần cứng FPGA. Chương này xác định các mục tiêu nghiên cứu cụ thể, cấu trúc phân chia nhiệm vụ xử lý giữa máy chủ và board mạch nhúng SoC-FPGA, cùng chỉ tiêu kỹ thuật cần đạt được.

Chương 2: Cơ sở lý thuyết

Chương 2 cung cấp toàn bộ nền tảng toán học và kiến trúc tính toán của đề tài:

  • Trình bày chi tiết toán tử tích chập 2D, các tham số bước nhảy (stride), phần đệm viền (padding), các hàm kích hoạt phi tuyến (ReLU, Leaky ReLU) và cơ chế lan truyền tiến (feed-forward).
  • Phân tích cấu trúc các lớp trong mạng nơ-ron tích chập (CNN), cơ chế định vị vật thể đơn bước của mô hình YOLO, cách tính chỉ số chồng lấn IoU (Intersection over Union).
  • So sánh các phiên bản kiến trúc: YOLOv1, YOLOv2 (tích hợp Batch Normalization, Anchor Box, Passthrough layer), YOLOv2-Tiny, Custom YOLO, YOLOv3 (Darknet-53) và Tinier-YOLO sử dụng cấu trúc Fire Module.
  • Giới thiệu định dạng số chấm động chuẩn IEEE 754 (Single và Half Precision), thuật toán nhân ma trận GEMM.
  • Trình bày kiến trúc phần mềm OpenCL, mô hình phân cấp luồng tính toán (Global/Local Dimension, Work-group, Work-item), giao tiếp bộ nhớ Host - Device, bộ công cụ Intel FPGA SDK for OpenCL, và cấu trúc phần cứng của kit phát triển Terasic DE1-SoC (Cyclone V SoC S5CSEMA5F31C6).

Chương 3: Phương pháp thực hiện

Chương này mô tả chi tiết toàn bộ quy trình thiết kế và triển khai thực nghiệm:

  • Thiết kế mô hình Custom Tinier YOLO gồm 18 lớp, giảm kích thước ảnh đầu vào về $224\times224$ mức xám.
  • Quy trình thu thập, sàng lọc trùng lặp và đồng bộ hóa nhãn gán cho hơn 30.000 hình ảnh từ Kaggle, Roboflow và Stanford Car Dataset; phân chia đặc trưng chi tiết cho 3 nhóm đối tượng: xe hơi, xe máy và xe tải.
  • Cấu hình tệp tham số mạng trên framework Darknet và thực hiện quá trình huấn luyện mô hình.
  • Quy trình từng bước xây dựng hệ điều hành Linux nhúng trên board DE1-SoC: tạo file bitstream .aocx, preloader, u-boot, kernel zImage, device tree blob, root filesystem, driver OpenCL và cấu trúc phân vùng thẻ nhớ SD card.
  • Thiết kế chi tiết mã nguồn Host program trên ARM HPS và Kernel logic trên FPGA, triển khai kỹ thuật tiền xử lý dữ liệu ma trận im2col và im2row để nạp vào bộ tính toán GEMM.

Chương 4: Kết quả thực hiện

Chương 4 tổng hợp các kết quả thực nghiệm đạt được:

  • Trình bày kết quả huấn luyện mô hình Custom Tinier YOLO trên Darknet, các đồ thị suy giảm hàm mất mát (loss function).
  • Kết quả chạy mô phỏng và giả lập mô hình Custom Tinier YOLO trên môi trường máy tính và trên board DE1-SoC.
  • Kết quả biên dịch tài nguyên phần cứng của Kernel OpenCL, số lượng khối tính toán logic (ALM, LUT, DSP, On-chip memory) tiêu thụ trên chip Cyclone V.
  • Bảng tổng hợp độ chính xác trung bình (AP/mAP), số lượng phép tính (BFLOPS), độ phức tạp và tốc độ xử lý so với các kiến trúc Tiny YOLO khác.

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

1. Kết quả kỹ thuật và số liệu thực nghiệm

  • Xây dựng thành công mô hình mạng rút gọn: Mô hình Custom Tinier YOLO được tối ưu hóa xuống còn 18 lớp với kích thước đầu vào $224\times224\times1$, giảm thiểu đáng kể số lượng tham số so với kiến trúc Tinier-YOLO gốc (68 lớp) và YOLOv2-Tiny (9 lớp nhưng số kênh lớn hơn).
  • Bộ dữ liệu chuẩn hóa: Xây dựng tập dữ liệu gồm hơn 30.000 hình ảnh gán nhãn cho 3 nhóm phương tiện (xe hơi chiếm 40%, xe máy chiếm 40%, và xe tải chiếm 20%), được chuẩn hóa đồng bộ về tọa độ bounding box và mức xám.
  • Hiện thực hóa hệ thống SoC-FPGA: Triển khai thành công hệ điều hành Linux nhúng trên lõi vi xử lý cứng ARM Cortex-A9 và nạp bitstream tăng tốc phần cứng OpenCL trên FPGA của chip Cyclone V SoC.
  • Độ chính xác và hiệu năng tính toán: Mô hình đáp ứng khả năng phát hiện và phân loại đồng thời 3 loại phương tiện giao thông, đạt mục tiêu độ chính xác dự đoán trong khoảng 80% - 90% trên tập dữ liệu kiểm thử.
Tiêu chí so sánh YOLOv2-Tiny Custom YOLO Custom Tinier YOLO (Đề tài)
Kích thước đầu vào $416\times416\times3$ $416\times416\times3$ $224\times224\times1$
Tổng số lớp 16 lớp (9 Conv) 15 lớp (8 Conv) 18 lớp (Tích hợp Fire Module)
Kênh dữ liệu đầu vào Ảnh màu RGB (3 kênh) Ảnh màu RGB (3 kênh) Ảnh mức xám Grayscale (1 kênh)
Nền tảng thực thi GPU / CPU máy tính SoC-FPGA DE1-SoC SoC-FPGA DE1-SoC (OpenCL Kernel)
Đối tượng nhận diện 80 lớp (COCO) 80 lớp (COCO) 3 lớp (Xe hơi, Xe máy, Xe tải)

2. Đóng góp khoa học và ứng dụng thực tiễn

  • Đề xuất giải pháp kiến trúc mạng CNN rút gọn kết hợp các ưu điểm của Fire Module (nén tham số) và Fine-grained feature (giữ đặc trưng kích thước nhỏ), giúp mô hình có khả năng thực thi được trong không gian bộ nhớ và tài nguyên logic giới hạn của dòng FPGA tầm trung Cyclone V.
  • Xây dựng hoàn chỉnh luồng công nghệ thiết kế hệ thống nhúng SoC-FPGA sử dụng OpenCL: từ huấn luyện mạng trên Darknet, chuyển đổi thuật toán GEMM ma trận (im2col/im2row), biên dịch bitstream phần cứng đến xây dựng hệ điều hành Linux nhúng và driver điều khiển.

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

1. Hạn chế

  • Giới hạn dữ liệu đầu vào: Để giảm áp lực tính toán lên tài nguyên bộ nhớ phần cứng, hệ thống buộc phải chuyển đổi dữ liệu ảnh màu sang ảnh mức xám, làm mất đi các đặc trưng về màu sắc vốn có thể hỗ trợ phân loại phương tiện trong các điều kiện môi trường phức tạp.
  • Tài nguyên phần cứng kit DE1-SoC: Dung lượng bộ nhớ On-chip và số lượng khối DSP, ALM trên chip Cyclone V S5CSEMA5F31C6 còn hạn chế, dẫn đến việc phải cắt giảm sâu số lượng lớp của mô hình, làm giới hạn khả năng phát hiện các đối tượng phương tiện bị che khuất một phần hoặc có kích thước quá nhỏ.
  • Phân loại chi tiết đối tượng: Tập dữ liệu chỉ tập trung nhận diện các đặc trưng chung của 3 nhóm phương tiện chính, chưa đi sâu phân loại chi tiết các dòng xe chuyên dụng khác.

2. Hướng phát triển

  • Tối ưu hóa sâu hơn mã nguồn Kernel OpenCL bằng cách áp dụng định dạng số chấm động nửa chính xác (Half-Precision IEEE 754 - 16 bit) hoặc định dạng số nguyên cố định (Fixed-point 8-bit quantization) nhằm tăng tốc độ tính toán và giảm băng thông truyền dữ liệu giữa HPS và FPGA.
  • Nghiên cứu mở rộng triển khai trên các dòng kit FPGA có dung lượng phần cứng lớn hơn (như Intel Arria 10, Stratix 10) để có thể chạy mô hình với kích thước ảnh đầu vào lớn hơn và giữ nguyên dữ liệu 3 kênh màu RGB.
  • Tích hợp trực tiếp module camera thu nhận hình ảnh thời gian thực qua cổng Video-in/USB của board mạch và xuất kết quả trực tiếp ra màn hình hiển thị qua cổng VGA Out.

Giá trị tham khảo

Khóa luận là tài liệu tham khảo giá trị cho sinh viên, học viên cao học và các kỹ sư thuộc các chuyên ngành Kỹ thuật Máy tính, Điện tử - Viễn thông, Hệ thống Nhúng và Công nghệ Thông tin. Tài liệu đặc biệt hữu ích cho những ai đang nghiên cứu:

  • Phương pháp thiết kế và tăng tốc các giải thuật học sâu (Deep Learning/CNN) trên phần cứng vi mạch lập trình được (FPGA).
  • Quy trình xây dựng hệ thống nhúng SoC-FPGA kết hợp giữa phần mềm chạy trên Linux (ARM Cortex-A9) và phần cứng tính toán song song sử dụng Intel FPGA SDK for OpenCL.
  • Kỹ thuật tối ưu hóa, rút gọn kiến trúc mô hình nhận diện vật thể YOLO cho các thiết bị biên (Edge AI) có tài nguyên tính toán và bộ nhớ hạn chế.

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

1. Tại sao đề tài lại lựa chọn giải pháp gia tốc mạng nơ-ron trên FPGA thay vì sử dụng GPU hoặc CPU truyền thống?
Việc triển khai các thuật toán thị giác máy tính trên hệ thống máy tính dùng CPU hoặc GPU hiệu năng cao tiêu tốn công suất lớn và chi phí cao khi cần giám sát diện rộng qua nhiều camera. FPGA mang lại khả năng xử lý song song ở mức phần cứng, giảm thời gian đáp ứng, tiết kiệm năng lượng tiêu thụ và mở ra khả năng đóng gói thiết kế thành các vi mạch tích hợp chuyên dụng (IC).

2. Mô hình Custom Tinier YOLO trong khóa luận có cấu trúc như thế nào và khác gì so với Tinier-YOLO gốc?
Mô hình Tinier-YOLO gốc gồm 68 lớp và xử lý ảnh $416\times416$, vượt quá giới hạn bộ nhớ và tài nguyên logic của kit DE1-SoC. Tác giả đã rút gọn cấu trúc xuống còn 18 lớp, nhận ảnh đầu vào mức xám $224\times224\times1$, giữ lại 3 cặp lớp tích chập - max pool ở phần đầu, 2 fire module ở phần thân và các lớp passthrough (route) nhằm đảm bảo mô hình vừa vặn với tài nguyên phần cứng mà vẫn giữ được độ chính xác nhận diện.

3. Khối Fire Module trong kiến trúc mạng đóng vai trò gì?
Fire Module bao gồm 2 phần: phần vắt (squeeze part) sử dụng lớp tích chập với bộ lọc $1\times1$ để nén mạnh số lượng tham số của mạng, và phần mở rộng (expand part) kết hợp giữa bộ lọc $1\times1$ và $3\times3$. Việc sử dụng Fire Module vừa giúp giảm khối lượng tính toán và dung lượng mô hình, vừa duy trì độ sâu cần thiết cho mạng nơ-ron để trích xuất đặc trưng chính xác.

4. Quy trình chuyển đổi thuật toán tích chập sang phần cứng OpenCL được thực hiện ra sao?
Phép tích chập của các lớp CNN được chuyển đổi thành bài toán nhân ma trận tổng quát GEMM ($C = \alpha AB + \beta C$) thông qua phương pháp biến đổi ma trận im2col hoặc im2row. Trên nền tảng OpenCL, các phép tính ma trận này được ánh xạ thành các luồng tính toán song song (work-items) gom nhóm trong các work-groups, thực thi trực tiếp trên các khối tính toán logic (DSP/ALM) của FPGA.

5. Hệ điều hành và luồng dữ liệu trên kit DE1-SoC được tổ chức như thế nào?
Kit DE1-SoC tích hợp hệ thống xử lý cứng HPS (ARM Cortex-A9) chạy hệ điều hành Linux nhúng và khối logic FPGA. Host program chạy trên Linux (HPS) đảm nhận việc tiếp nhận ảnh, tiền xử lý và nạp dữ liệu vào bộ nhớ toàn cục (SDRAM), sau đó phát lệnh kích hoạt Kernel OpenCL trên FPGA để thực hiện tính toán ma trận nặng, cuối cùng thu nhận kết quả từ FPGA để xuất ra vị trí bounding box của phương tiện.

Kết luận

Khóa luận tốt nghiệp đã nghiên cứu và hiện thực hóa thành công hệ thống nhận diện phương tiện giao thông (xe hơi, xe máy, xe tải) trên nền tảng SoC-FPGA DE1-SoC thông qua mô hình rút gọn Custom Tinier YOLO 18 lớp. Bằng việc kết hợp giữa framework Darknet, ngôn ngữ lập trình phần cứng OpenCL và hệ điều hành Linux nhúng, nghiên cứu đã chứng minh tính khả thi của giải pháp gia tốc mạng nơ-ron trên thiết bị biên có tài nguyên hạn chế, đạt độ chính xác dự đoán từ 80% đến 90%. Đây là nền tảng kỹ thuật quan trọng phục vụ cho việc phát triển các hệ thống giám sát giao thông thông minh thời gian thực và tiết kiệm năng lượng.