Bối cảnh và vấn đề nghiên cứu
Tính năng phát hiện làn đường theo thời gian thực giữ vai trò trọng yếu trong các phương tiện tự hành và hệ thống hỗ trợ người lái nâng cao (Advanced Driver Assistance Systems - ADAS), cụ thể là các phân hệ cảnh báo chệch làn đường (Lane Departure Warning System - LDWS) và hỗ trợ giữ làn đường (Lane Keeping Assist System - LKAS). Để nhận diện vạch kẻ đường từ camera quan sát, thuật toán biến đổi Hough (Hough Transform - HT) là một kỹ thuật thị giác máy tính kinh điển nhờ khả năng trích xuất hình học mạnh mẽ ngay cả khi vạch sơn bị đứt quãng, mờ nhạt hoặc chịu ảnh hưởng bởi nhiễu môi trường. Tuy nhiên, thuật toán biến đổi Hough tiêu chuẩn có nhược điểm lớn là độ phức tạp tính toán rất cao do phụ thuộc vào các phép toán lượng giác liên tục, đòi hỏi dung lượng bộ nhớ lớn cho không gian tham số và làm giảm tốc độ xử lý khi triển khai trên phần mềm thông thường. Việc ứng dụng cảm biến quang học độc lập trong điều kiện môi trường ánh sáng phức tạp vẫn đối mặt với giới hạn về tính năng thời gian thực. Do đó, việc thiết kế một kiến trúc phần cứng chuyên dụng trên nền tảng vi mạch khả lập trình (FPGA) nhằm tăng tốc độ xử lý và duy trì độ chính xác cao là vấn đề kỹ thuật trọng tâm của đề tài.
Mục tiêu và nhiệm vụ nghiên cứu của khóa luận được xác định cụ thể như sau:
- Xây dựng hoàn chỉnh chuỗi thuật toán xử lý ảnh số phát hiện làn đường từ luồng dữ liệu video đầu vào, bao gồm các bước tiền xử lý lọc màu, chuyển đổi ảnh xám, phát hiện cạnh Sobel và biến đổi Hough cải tiến.
- Thiết kế và tối ưu kiến trúc biến đổi Hough bằng cách kết hợp bảng tra cứu (Look-Up Table - LUT) để lưu trữ giá trị lượng giác và sử dụng trực tiếp góc gradient độ dốc từ thuật toán Sobel làm góc định hướng, loại bỏ việc duyệt toàn bộ góc quét nhằm giảm thiểu tài nguyên bộ nhớ và độ phức tạp tính toán.
- Mô hình hóa và kiểm chứng chức năng của toàn bộ hệ thống trên môi trường phần mềm Matlab Simulink kết hợp với bộ công cụ Xilinx System Generator (XSG).
- Xuất mã mô tả phần cứng (HDL Netlist) sang phần mềm Xilinx Vivado, thực hiện tổng hợp (Synthesis), thực thi (Implementation) và đóng gói thiết kế khối (Block Design).
- Tích hợp và thử nghiệm thực tế hệ thống trên bo mạch phát triển FPGA Xilinx Virtex-7 VC707 Evaluation Board thông qua giao tiếp ngoại vi tốc độ cao PCIe (Peripheral Component Interconnect Express), đạt độ phân giải khung hình 1024x1024 pixel và tốc độ khung hình đáp ứng thời gian thực.
Về đối tượng và phạm vi nghiên cứu:
- Đối tượng nghiên cứu: Kiến trúc phần cứng xử lý ảnh số thời gian thực phục vụ nhận diện làn đường cho xe tự hành, tập trung vào thuật toán biến đổi Hough tối ưu hóa phần cứng và chuẩn giao tiếp dữ liệu tốc độ cao PCIe.
- Phạm vi không gian: Hệ thống được thiết kế dưới dạng lõi sở hữu trí tuệ (IP Core) trên nền tảng vi mạch FPGA Xilinx Virtex-7 VC707 kết nối với máy tính chủ (Host PC) qua khe cắm PCIe.
- Phạm vi dữ liệu và thời gian: Các thực nghiệm mô phỏng và kiểm tra phần cứng được thực hiện trên tập dữ liệu gồm 10 video giao thông thực tế ghi nhận các điều kiện đường sá khác nhau, hoàn thành vào năm 2022.
Cơ sở lý thuyết và phương pháp
Khóa luận kết hợp cơ sở lý thuyết xử lý ảnh số, lý thuyết mạch số và phương pháp đồng mô phỏng phần cứng - phần mềm (Hardware Co-Simulation).
Về mặt lý thuyết và mô hình toán học:
- Thuật toán chuyển đổi ảnh xám (Gray Scale): Biến đổi dữ liệu ảnh màu RGB 24-bit (8-bit cho mỗi kênh màu R, G, B) thành thang độ xám theo công thức trọng số chuẩn:
$$\text{Gray} = 0.299 \times R + 0.587 \times G + 0.114 \times B$$
- Thuật toán phát hiện cạnh Sobel (Sobel Edge Detection): Sử dụng hai mặt nạ tích chập kích thước $3 \times 3$ gồm mặt nạ dọc $v$ và mặt nạ ngang $h$ để tính toán đạo hàm riêng theo hướng $x$ ($G_x$) và hướng $y$ ($G_y$):
$$v = \begin{bmatrix} -1 & 0 & 1 \ -2 & 0 & 2 \ -1 & 0 & 1 \end{bmatrix}, \quad h = \begin{bmatrix} -1 & -2 & -1 \ 0 & 0 & 0 \ 1 & 2 & 1 \end{bmatrix}$$
Từ $G_x$ và $G_y$, độ lớn gradient ($G_{mag}$) và hướng gradient ($G_{atan}$) được xác định qua biểu thức:
$$G_{mag} = \sqrt{G_x^2 + G_y^2}$$
$$G_{atan} = \arctan\left(\frac{G_y}{G_x}\right)$$
- Thuật toán biến đổi Hough (Hough Transform): Thay vì sử dụng phương trình dạng đoạn thẳng thông thường $y = mx + b$ (vốn gặp điểm kỳ dị khi hệ số góc $m \to \pm\infty$ đối với các đường thẳng đứng), thuật toán biểu diễn đường thẳng qua hệ tọa độ cực Hough Parameter Space (HPS):
$$rho = x \cos(\theta) + y \sin(\theta) \quad (0^\circ \le \theta < 180^\circ)$$
Trong đó, $rho$ là độ dài đoạn vuông góc từ gốc tọa độ đến đường thẳng và $\theta$ là góc giữa pháp tuyến với trục hoành. Trong thuật toán biến đổi Hough truyền thống, mỗi điểm ảnh cạnh sẽ ứng với vô số cặp $(rho, \theta)$. Tuy nhiên, kiến trúc đề xuất tận dụng trực tiếp giá trị hướng gradient $G_{atan}$ thu được từ bộ dò Sobel để gán làm giá trị góc $\theta$. Do đó, mỗi điểm ảnh biên chỉ tương ứng với một đường thẳng duy nhất đi qua nó, giảm thiểu đáng kể số lượng phép tính lượng giác và kích thước không gian tích lũy (Hough accumulator space). Các hàm $\sin(\theta)$ và $\cos(\theta)$ được tính toán thông qua bảng tra cứu LUT tích hợp trên phần cứng.
Phương pháp nghiên cứu thực nghiệm và công cụ triển khai:
- Môi trường thiết kế phần mềm và mô phỏng: Sử dụng Matlab Simulink 2018a kết hợp bộ thư viện Xilinx System Generator 2018.1. Simulink đảm nhận vai trò tiền xử lý luồng video (tách khung hình, trích xuất pixel, tạo tín hiệu đồng bộ) và hậu xử lý (vẽ vạch làn và hành lang di chuyển). Xilinx System Generator cung cấp các khối phần cứng DSP chuẩn (Xilinx Blockset và Reference Blockset) xử lý các kiểu dữ liệu số học Fixed-point, Boolean, cấu trúc thanh ghi, bộ đệm dòng (Line Buffer) và bộ nhớ RAM.
- Phương pháp kiểm chứng: Tiến hành mô phỏng đồng phần cứng (Hardware Co-Simulation) với tệp định dạng bitstream nạp vào FPGA để kiểm tra tính đúng đắn về chức năng và chu kỳ xung nhịp trước khi tổng hợp chi tiết trên phần mềm Vivado Design Suite.
Nguồn dữ liệu thực nghiệm:
Dữ liệu đầu vào gồm các khung hình có độ phân giải $1024 \times 1024$ pixel trích xuất từ 10 chuỗi video thử nghiệm giao thông đường bộ với các kịch bản vạch kẻ nét liền, nét đứt, bề mặt đường có bóng râm và độ tương phản thay đổi.
Thiết kế và triển khai hệ thống phần cứng
Hệ thống được thiết kế theo cấu trúc phân tầng hoàn chỉnh, bao gồm module xử lý trên phần mềm và lõi phần cứng IP Core chuyên dụng.
Kiến trúc module tiền xử lý (Pre Processing) và hậu xử lý (Post Processing)
- Module Pre Processing: Bao gồm khối
Frame To Pixels và module Split control signal. Khối này nhận khung hình màu kích thước $1024 \times 1024 \times 3$ kiểu dữ liệu uint8, chuyển đổi thành dòng dữ liệu tuần tự pixel ufix24 (tdata) kèm theo các tín hiệu điều khiển chuẩn gồm tín hiệu xung hợp lệ tvalid và tín hiệu đánh dấu điểm ảnh đầu tiên của khung hình tuser.
- Module Post Processing: Chứa hàm script function trong Matlab, nhận hai cặp tham số $(rho_l_peak, \theta_l_peak)$ của làn đường bên trái và $(rho_r_peak, \theta_r_peak)$ của làn đường bên phải từ ngõ ra của IP Core để tính toán tọa độ hình học, vẽ lại vạch phân làn và vùng hành lang xe có thể di chuyển trên khung hình hiển thị thông qua khối
Video Viewer.
Thiết kế chi tiết lõi xử lý trung tâm (IP CORE)
Lõi IP Core được chia thành 3 phân khu chức năng: INPUT, ALGORITHM và OUTPUT. Phân khu ALGORITHM chứa toàn bộ chuỗi xử lý số học qua 4 khối logic tuần tự:
| Tên Module |
Chức năng phần cứng |
Thành phần cấu trúc chính |
Độ trễ xử lý (Latency) |
| MASKING |
Nhận diện màu vạch đường (vàng/trắng), đưa pixel vạch đường về giá trị chuẩn (255, 255, 255) |
Các khối Compare_R, Compare_G, Compare_B, khối so sánh Relational (ngưỡng 190), bộ ghép kênh Mux |
5 chu kỳ xung nhịp/pixel ($width \times height + 5$ chu kỳ/khung) |
| GRAY SCALE |
Chuyển đổi dữ liệu ảnh RGB 24-bit thành ảnh mức xám 8-bit |
Các bộ nhân hằng số dấu phẩy cố định (0.299, 0.587, 0.114) và bộ cộng dồn |
6 chu kỳ xung nhịp/pixel ($width \times height + 5$ chu kỳ/khung) |
| SOBEL EDGE DETECTION |
Trích xuất cạnh biên, tính độ lớn $G_{mag}$, hướng $G_{atan}$, lọc vùng quan tâm (ROI) |
Bộ đệm dòng Line Buffer (cửa sổ trượt $3 \times 3$), khối nhân chập Gx/Gy Operation, khối CORDIC ATAN, khối Adjust gatan, Coordinate Counter, Thresholding, ROI Determine |
CORDIC ATAN: 24 chu kỳ; Adjust gatan: 3 chu kỳ; Coordinate Counter: 31 chu kỳ; Thresholding: 7 chu kỳ; ROI: 5 chu kỳ |
| HOUGH TRANSFORM |
Tính toán $rho$, tích lũy không gian HPS và bình chọn tìm giá trị cực đại cho hai vùng |
Bộ tính Calculate rho, bộ tạo địa chỉ Calculate Address HPS, khối nhớ HPS Memory, khối VOTING PROCESS EVEN/ODD, khối VALID CONTROL |
Tìm cặp cực đại $(rho, \theta)$ cho nửa trái và nửa phải khung hình |
Chi tiết các khối xử lý đặc thù trong module Sobel và Hough:
- Bộ đệm dòng (Line Buffer): Sử dụng các khối trễ (
Delay) và thanh ghi (Register) để lưu trữ dữ liệu các dòng quét liên tiếp, tạo cửa sổ trượt $3 \times 3$ cấp cho hai khối nhân chập song song Gx Operation và Gy Operation.
- Khối tính góc Cordic atan và Adjust gatan: Khối
CORDIC ATAN của thư viện Xilinx tính toán góc $\arctan$ thông qua các phép dịch bit và cộng trừ liên tiếp. Ngõ ra góc dạng radian được quy đổi sang độ trong 24 chu kỳ. Do giá trị góc có thể âm, module Adjust gatan so sánh giá trị với $0^\circ$; nếu góc nhỏ hơn $0^\circ$, giá trị sẽ được cộng bù với $180^\circ$ trong 3 chu kỳ để đảm bảo góc $\theta$ luôn nằm trong khoảng $[0^\circ, 180^\circ)$. Tổng chu kỳ tính góc là 28 chu kỳ xung nhịp.
- Khối lọc ROI (Region of Interest): Gồm hai module con
ROI Coordinate (lọc theo giới hạn tọa độ $x, y$) và ROI Orientation (lọc theo ngưỡng định hướng góc), giúp loại bỏ các cạnh giả từ phương tiện xung quanh và môi trường ngoài mặt đường.
Đóng gói hệ thống trên Vivado và giao tiếp ngoại vi
Sau khi kiểm chứng chức năng, toàn bộ mô hình XSG được xuất thành tệp Netlist HDL. Trên phần mềm Vivado Design Suite, IP phát hiện làn đường được tích hợp vào sơ đồ khối (Block Design), kết nối với hệ thống vi xử lý/máy tính chủ thông qua giao tiếp Bus chuẩn AXI (Advanced eXtensible Interface), bộ điều khiển truy xuất bộ nhớ trực tiếp AXI DMA (Direct Memory Access) và giao tiếp ngoại vi PCIe tốc độ cao cắm trực tiếp vào bo mạch FPGA Virtex-7 VC707.
Nội dung chính theo từng chương
Chương 1. GIỚI THIỆU TỔNG QUAN ĐỀ TÀI
Chương 1 trình bày tổng quan về hệ thống ADAS và tính cấp thiết của bài toán nhận diện làn đường thời gian thực. Tác giả phân tích các nghiên cứu tiêu biểu trong lĩnh vực [2]-[8], chỉ ra ưu nhược điểm của các giải pháp biến đổi Hough song song, phương pháp lọc gradient, không gian HPS và việc phân tách phần cứng/phần mềm. Trên cơ sở đó, chương xác định mục tiêu thiết kế kiến trúc phát hiện làn đường trên phần cứng xử lý khung hình $1024 \times 1024$ pixel, hướng đến xung nhịp 150 MHz và tốc độ xử lý vượt trội so với các công bố trước đó.
Chương 2. CƠ SỞ LÝ THUYẾT
Nội dung chương 2 tập trung vào cơ sở toán học và công cụ hỗ trợ thiết kế. Tác giả trình bày chức năng của bộ công cụ Matlab Simulink và Xilinx System Generator trong việc thiết kế DSP trên FPGA bằng mô hình khối logic đồ họa. Các thuật toán nền tảng được định thức chi tiết gồm thuật toán Gray Scale, giải thuật nhân chập phát hiện biên Sobel (các mặt nạ vi phân, công thức tính $G_x, G_y, G_{mag}, G_{atan}$) và nguyên lý ánh xạ điểm - đường thẳng trong không gian tham số Hough $(rho, \theta)$.
Chương 3. THIẾT KẾ HỆ THỐNG ĐỀ XUẤT
Chương 3 là nội dung kỹ thuật trọng tâm, mô tả chi tiết sơ đồ nguyên lý và kiến trúc vi kiến trúc của hệ thống. Tác giả trình bày cấu trúc các khối Pre Processing và Post Processing trên Simulink, tiếp đến là thiết kế chi tiết bên trong IP CORE bằng XSG gồm: module lọc màu MASKING, module GRAY SCALE, module trích xuất biên SOBEL EDGE DETECTION (cấu tạo Line Buffer, các bộ nhân chập Gx/Gy, khối CORDIC, bộ đếm tọa độ, ngưỡng hóa Thresholding kết hợp lọc vùng ROI) và module HOUGH TRANSFORM (tính $rho$ qua bảng LUT, ánh xạ địa chỉ bộ nhớ HPS, cơ chế bình chọn cực đại cục bộ chẵn/lẻ). Phần cuối chương trình bày việc đóng gói IP và tích hợp hệ thống hoàn chỉnh trên Vivado Block Design.
Chương 4. KẾT QUẢ ĐÁNH GIÁ HỆ THỐNG THIẾT KẾ
Chương 4 công bố toàn bộ dữ liệu thực nghiệm thu được từ quá trình mô phỏng đồng phần cứng (Hardware Co-Simulation), phân tích báo cáo tổng hợp và thực thi (Synthesis/Implementation) trên Vivado. Tác giả phân tích các chỉ số xung nhịp, độ trễ thời gian (Timing analysis: WNS, WHS, WPWS), mức tiêu thụ năng lượng và tài nguyên phần cứng (LUT, FF, DSP, BRAM) của riêng lõi IP cũng như toàn bộ Block Design. Kết quả thực nghiệm ứng dụng trên bo mạch FPGA Virtex-7 VC707 qua khe cắm PCIe trên 10 chuỗi video thực tế được đưa ra đối sánh trực tiếp với các công trình nghiên cứu quốc tế trước đó.
Chương 5. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Chương cuối cùng tổng kết các chỉ tiêu kỹ thuật đã hoàn thành so với mục tiêu ban đầu, chỉ rõ những khó khăn gặp phải trong quá trình thiết kế hệ thống phần cứng phức tạp và đề xuất các phương hướng nghiên cứu mở rộng để hoàn thiện giải pháp trong tương lai.
Kết quả và đóng góp
Hệ thống phát hiện làn đường đề xuất đã được thực thi và kiểm nghiệm thành công trên bo mạch phần cứng Xilinx Virtex-7 VC707 Evaluation Board. Các số liệu kỹ thuật thực tế đạt được từ thiết kế như sau:
- Tần số hoạt động cực đại của xung nhịp hệ thống đạt 170 MHz (vượt chỉ tiêu thiết kế ban đầu là 150 MHz).
- Tốc độ xử lý khung hình đạt xấp xỉ 97 FPS đối với ảnh đầu vào có độ phân giải cao $1024 \times 1024$ pixel, đáp ứng vượt mức yêu cầu xử lý thời gian thực thông thường của chuẩn video (30-60 FPS).
- Độ chính xác phát hiện vạch làn đường trung bình đạt khoảng 94% qua thử nghiệm trên 10 video giao thông thực tế với các điều kiện vạch kẻ và bối cảnh khác nhau.
Bảng so sánh chỉ tiêu thiết kế đề xuất với các nghiên cứu liên quan được tác giả tổng hợp trong văn bản:
| Chỉ số kỹ thuật |
Nghiên cứu [2] |
Nghiên cứu [3] |
Nghiên cứu [4] |
Nghiên cứu [5] |
Kiến trúc đề xuất của nhóm |
| Độ phân giải (pixel) |
$1024 \times 768$ |
$640 \times 480$ |
$640 \times 480$ |
$1024 \times 1024$ |
$1024 \times 1024$ |
| Tần số hoạt động (MHz) |
200 |
50 |
200 |
145 |
170 (mục tiêu: 150) |
| Tốc độ xử lý (FPS) |
- |
- |
- |
- |
~97 FPS |
| Độ chính xác (%) |
- |
- |
- |
- |
~94% |
Đóng góp kỹ thuật của đề tài:
- Đề xuất một kiến trúc biến đổi Hough tối ưu hóa phần cứng thông qua việc tận dụng trực tiếp giá trị hướng gradient độ dốc $G_{atan}$ từ bộ lọc Sobel (tính toán bằng khối CORDIC ATAN) làm góc $\theta$, kết hợp bảng tra cứu LUT cho các hàm lượng giác. Giải pháp này loại bỏ hoàn toàn việc tính toán lượng giác tuần tự đa góc, giảm mạnh dung lượng bộ nhớ không gian tham số HPS và triệt tiêu nút thắt cổ chai về tốc độ của biến đổi Hough truyền thống.
- Xây dựng một luồng thiết kế hoàn chỉnh từ mô phỏng thuật toán DSP cấp cao trên Matlab Simulink/XSG đến xuất mã HDL, đóng gói IP Core và tích hợp hệ thống phần cứng hoàn chỉnh chạy qua giao tiếp chuẩn PCIe trên bo mạch hiệu năng cao FPGA Virtex-7 VC707.
Hạn chế và hướng nghiên cứu tiếp
Hạn chế của đề tài được ghi nhận trong văn bản gồm:
- Thiết kế gặp phải một số khó khăn liên quan đến giới hạn chuyên ngành chuyên sâu về phần cứng khi tối ưu hóa đường truyền dữ liệu và tài nguyên bộ nhớ trên FPGA.
- Các giá trị ngưỡng lọc màu trong module MASKING (ngưỡng 190) cũng như các tham số phân vùng tọa độ và góc trong module ROI Determine hiện tại được xác định dựa trên thực nghiệm, chưa tự động thích ứng hoàn toàn nếu môi trường thay đổi độ rọi quá mức hoặc ánh sáng mặt trời chiếu trực diện gay gắt.
Hướng phát triển tiếp theo của nhóm tác giả:
- Tiếp tục tối ưu hóa đường định thời (timing path) và phân bổ tài nguyên phần cứng để nâng cao hơn nữa xung nhịp hoạt động.
- Nghiên cứu cơ chế tự động cân chỉnh ngưỡng nhị phân hóa và ngưỡng nhận diện màu sắc theo thời gian thực để nâng cao độ bền vững của hệ thống dưới các điều kiện thời tiết phức tạp (mưa lớn, ban đêm hoặc chói sáng mạnh).
- Mở rộng kiến trúc để tích hợp thêm các tính năng cảnh báo chệch làn tự động (LDWS) và giao tiếp trực tiếp với bộ điều khiển chấp hành của xe tự hành.
Giá trị tham khảo
Khóa luận là tài liệu tham khảo có giá trị học thuật và kỹ thuật thực tế cho:
- Sinh viên và kỹ sư thuộc các ngành Kỹ thuật Máy tính, Điện tử - Viễn thông, Công nghệ Kỹ thuật Điện tử, Cơ điện tử và Kỹ thuật Điều khiển - Tự động hóa đang thực hiện các đề tài về xử lý ảnh số trên phần cứng, thiết kế vi mạch FPGA và hệ thống nhúng cho xe tự hành.
- Phần đáng tham khảo nhất của tài liệu là phương pháp kết hợp góc gradient $G_{atan}$ của Sobel với bảng LUT để đơn giản hóa thuật toán biến đổi Hough trong Chương 2 và sơ đồ thiết kế chi tiết từng chu kỳ xung nhịp của các module Line Buffer, CORDIC ATAN, Adjust gatan, ROI Determine trong Chương 3. Ngoài ra, quy trình tích hợp hệ thống phần cứng với giao tiếp máy tính chủ qua chuẩn PCIe và phương pháp thực thi Hardware Co-Simulation trong Chương 3, Chương 4 và Phụ lục II cung cấp chỉ dẫn kỹ thuật cụ thể cho việc triển khai ứng dụng thực tế.
Câu hỏi thường gặp
1. Tại sao kiến trúc đề xuất không gặp phải vấn đề độ phức tạp tính toán cao và tốn bộ nhớ như thuật toán biến đổi Hough tiêu chuẩn?
Trong biến đổi Hough tiêu chuẩn, đối với mỗi điểm ảnh biên, hệ thống phải duyệt qua tất cả các giá trị góc $\theta$ có thể có trong dải $[0^\circ, 180^\circ)$ và tính toán hàng loạt phép lượng giác $\sin, \cos$ để tìm $rho$, đòi hỏi một ma trận tích lũy khổng lồ. Kiến trúc trong khóa luận khắc phục điều này bằng hai kỹ thuật: thứ nhất, sử dụng bảng tra cứu LUT để lấy trực tiếp giá trị lượng giác mà không cần tính toán số học thời gian thực; thứ hai, sử dụng trực tiếp góc hướng gradient $G_{atan}$ tính từ bộ phát hiện cạnh Sobel làm góc $\theta$, khiến mỗi điểm ảnh cạnh chỉ tương ứng với một đường thẳng duy nhất và một phiếu bầu duy nhất trong không gian tham số HPS.
2. Module MASKING đóng vai trò gì và xử lý tín hiệu theo nguyên lý nào?
Module MASKING có nhiệm vụ tăng độ chi tiết và làm nổi bật vạch kẻ đường (vốn thường có màu trắng hoặc vàng) trước khi chuyển sang ảnh xám. Module sử dụng các khối Compare_R, Compare_G, Compare_B để so sánh giá trị màu của từng kênh ảnh với ngưỡng thực nghiệm là 190. Nếu thỏa mãn điều kiện là vạch trắng (is_white = 1) hoặc vạch vàng (is_yellow = 1), giá trị của điểm ảnh đó sẽ được chuyển thành giá trị trắng tuyệt đối $(255, 255, 255)$, giúp các module xử lý phía sau nhận diện biên làn đường chuẩn xác hơn. Module này có độ trễ là 5 chu kỳ xung nhịp cho mỗi điểm ảnh.
3. Khối CORDIC ATAN giải quyết vấn đề góc âm như thế nào để đảm bảo dữ liệu hợp lệ cho thuật toán Hough?
Khối CORDIC ATAN của thư viện Xilinx tính toán góc $\arctan$ và trả về giá trị góc (được chuyển đổi sang đơn vị độ). Do đặc tính của hàm $\arctan$, góc tính ra có thể mang giá trị âm (nằm ngoài dải quy ước $[0^\circ, 180^\circ)$ của phương trình Hough). Nhóm tác giả đã thiết kế module Adjust gatan ngay sau khối CORDIC, thực hiện phép so sánh với $0^\circ$; nếu góc nhỏ hơn $0^\circ$, module sẽ cộng thêm $180^\circ$ (góc bù) trong vòng 3 chu kỳ xung nhịp để đưa góc về khoảng giá trị dương hợp lệ.
4. Hệ thống đạt được các chỉ số hiệu năng thực tế nào khi thử nghiệm trên bo mạch FPGA Virtex-7 VC707?
Trên bo mạch FPGA Xilinx Virtex-7 VC707 kết nối qua giao tiếp PCIe, hệ thống hoạt động ổn định ở xung nhịp 170 MHz, xử lý luồng khung hình có độ phân giải $1024 \times 1024$ pixel với tốc độ đạt xấp xỉ 97 FPS và độ chính xác nhận diện làn đường đạt khoảng 94% trên tập 10 video giao thông thực nghiệm.
Kết luận
Khóa luận tốt nghiệp của sinh viên Đinh Phạm Thiên Long và Nguyễn Thị Ngọc Diễm đã thiết kế và hiện thực thành công kiến trúc phần cứng phát hiện làn đường thời gian thực cho xe tự hành trên nền tảng FPGA Xilinx Virtex-7 VC707. Bằng cách tối ưu hóa thuật toán biến đổi Hough thông qua bảng tra cứu LUT và tích hợp góc gradient từ bộ dò biên Sobel, hệ thống đã giải quyết triệt để nút thắt cổ chai về tính toán lượng giác và dung lượng bộ nhớ. Kết quả thực nghiệm đạt xung nhịp 170 MHz, tốc độ xử lý 97 FPS ở độ phân giải $1024 \times 1024$ pixel cùng độ chính xác 94%, khẳng định tính khả thi và hiệu năng cao của giải pháp thiết kế vi mạch chuyên dụng phục vụ các hệ thống hỗ trợ lái xe nâng cao.