Tổng quan nghiên cứu

Phân vùng và phân tích kết cấu ảnh đóng vai trò nền tảng trong các hệ thống thị giác máy tính hiện đại, từ xử lý hình ảnh y tế như chụp cắt lớp CT, cộng hưởng từ MRI đến camera giám sát giao thông và kiểm tra khuyết tật bề mặt công nghiệp. Trong các phương pháp trích xuất đặc trưng kết cấu, ma trận đồng hiện mức xám (Gray Level Co-occurrence Matrix - GLCM) là công cụ thống kê bậc hai mang lại độ chính xác cao nhờ khả năng nắm bắt tương quan không gian giữa các cặp điểm ảnh. Tuy nhiên, việc tính toán GLCM trên phần mềm thuần túy (CPU) tiêu tốn rất nhiều tài nguyên và độ trễ lớn, khó đáp ứng các ứng dụng đòi hỏi thời gian thực xử lý từ 24 đến 30 khung hình trên giây.

Nghiên cứu của tác giả Tống Lê Minh Châu, dưới sự hướng dẫn khoa học của Tiến sĩ Trương Công Dung Nghi tại Trường Đại học Bách Khoa – Đại học Quốc gia Thành phố Hồ Chí Minh (thực hiện từ tháng 06/2016 đến tháng 06/2017), tập trung giải quyết bài toán tăng tốc phần cứng bằng cách thiết kế lõi IP (Intellectual Property) tính toán ma trận GLCM hoàn chỉnh trên nền vi mạch khả trình FPGA Altera Cyclone IV EP4CE115. Mục tiêu trọng tâm của đề tài là xây dựng kiến trúc phần cứng xử lý linh hoạt theo từng khối ảnh con kích thước 32x32 điểm ảnh với độ sâu mức xám 8-bit (từ 0 đến 255), hỗ trợ tùy biến 4 khoảng cách không gian (1, 2, 3, 4 điểm ảnh), 4 góc quét (0 độ, 45 độ, 90 độ, 135 độ) và 4 kích thước ma trận ngõ ra (8x8, 16x16, 32x32, 64x64).

Hệ thống vận hành ổn định tại tần số xung nhịp 125 MHz trên kit phát triển Altera DE2-115. Kết quả thực nghiệm cho thấy lõi IP hoàn thành chu trình tính toán một ma trận GLCM 8x8 cho khối ảnh con 32x32 chỉ trong 2.304 chu kỳ xung nhịp (tương đương 18,43 microgiây), mở ra giải pháp tăng tốc phần cứng hiệu quả cao cho các hệ thống nhúng thông minh và xử lý ảnh chuyên dụng.

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

Khung lý thuyết áp dụng

Nghiên cứu xây dựng trên nền tảng lý thuyết phân tích kết cấu ảnh (Texture Analysis) và mô hình ma trận đồng hiện mức xám được Haralick đề xuất. Kết cấu không thể xác định tại một điểm ảnh đơn lẻ mà được đặc trưng bởi quy luật phân bố không gian của các mức xám trong một vùng lân cận cục bộ. Ma trận GLCM $P(i, j | d, \theta)$ biểu diễn tần suất xuất hiện đồng thời của hai điểm ảnh có giá trị mức xám lần lượt là $i$ và $j$, cách nhau một khoảng cách $d$ theo hướng góc $\theta$. Từ ma trận này, các đặc trưng thống kê mô tả kết cấu then chốt được trích xuất gồm:

  • Entropy (Độ hỗn loạn): Đo lường mức độ phức tạp và ngẫu nhiên của phân bố mức xám trong vùng ảnh.
  • Energy (Năng lượng / Angular Second Moment): Thể hiện độ đồng nhất cục bộ thông qua tổng bình phương các phần tử GLCM.
  • Contrast (Độ tương phản): Xác định mức độ sai lệch và biến thiên cường độ sáng giữa các cặp điểm ảnh lân cận.
  • Homogeneity (Tính đồng nhất): Đánh giá mức độ tập trung của các giá trị ma trận xung quanh đường chéo chính.

Về mặt kiến trúc phần cứng, nghiên cứu áp dụng lý thuyết thiết kế mạch số mức truyền thanh ghi (RTL - Register-Transfer Level), mô hình máy trạng thái hữu hạn (FSM) và kỹ thuật đệm dữ liệu song song (Dual-buffer RAM). Kiến trúc phần cứng phân tách thành 4 khối xử lý chính: khối đệm ảnh con (GLCM Image Buffer), khối điều khiển đọc quét tọa độ (Gray Control Read), khối chuẩn hóa mức xám (GLCM Normalize) và khối tích lũy ma trận kết quả (GLCM Result).

+-----------------------------------------------------------------------+
|                             HOST (MATLAB)                             |
+-----------------------------------+-----------------------------------+
                                    | UART Protocol (115200 bps)
                                    v
+-----------------------------------+-----------------------------------+
|                        GLCM TOP MODULE (FPGA)                         |
|                                                                       |
|  +-----------------------------------------------------------------+  |
|  |             UART Controller & GLCM Interface Decoder            |  |
|  +--------------------------------+--------------------------------+  |
|                                   |                                   |
|                                   v                                   |
|  +--------------------------------+--------------------------------+  |
|  |                      GLCM Core (125 MHz)                        |  |
|  |                                                                 |  |
|  |  +------------------------+        +-------------------------+  |  |
|  |  | GLCM Sub-image Buffer  |------->|    Gray Control Read    |  |  |
|  |  | (Dual-RAM 1024x8 bits) |        |  (16 Quỹ đạo quét d, θ) |  |  |
|  |  +------------------------+        +------------+------------+  |  |
|  |                                                 |               |  |
|  |                                                 v               |  |
|  |  +------------------------+        +------------+------------+  |  |
|  |  |      GLCM Result       |<-------|     GLCM Normalize      |  |  |
|  |  | (RAM 4096x10 bits +1)  |        |  (8x8, 16x16, 32x32...) |  |  |
|  |  +------------------------+        +-------------------------+  |  |
|  +-----------------------------------------------------------------+  |
+-----------------------------------------------------------------------+

Phương pháp nghiên cứu

Nghiên cứu sử dụng phương pháp thực nghiệm kết hợp mô phỏng kiểm thử đa tầng từ phần mềm đến phần cứng.

  • Dữ liệu và phân rã mẫu kiểm thử: Tập dữ liệu đầu vào sử dụng các ảnh chuẩn mức xám 8-bit (256 mức xám, từ 0 đến 255) có kích thước chuẩn $640 \times 480$ điểm ảnh (tổng cộng 307.200 điểm ảnh). Ảnh gốc được phân rã thành tập hợp 300 khối ảnh con kích thước cố định $32 \times 32$ điểm ảnh (1.024 điểm ảnh mỗi khối). Phương pháp chọn mẫu chia khối đảm bảo quét toàn diện toàn bộ không gian ảnh mà không làm mất thông tin biên cục bộ.
  • Công cụ và phương pháp phân tích: Phần cứng được mô tả bằng ngôn ngữ Verilog HDL chuẩn IEEE 1364-2001. Quá trình kiểm tra tính đúng đắn được thực hiện qua 4 giai đoạn độc lập:
    1. Mô phỏng chức năng khối GLCM Process bằng công cụ Synopsys VCS trên hệ điều hành Linux Fedora với hệ thống kịch bản C-Shell (csh scripts) và testbench tự động.
    2. Mô phỏng toàn bộ hệ thống tích hợp (UART Interface + GLCM IP Core) trên môi trường VCS.
    3. Kiểm tra giao tiếp truyền nhận trên môi trường ứng dụng thực tế thông qua MATLAB UIs và Altera Control Panel trên Windows OS.
    4. Tổng hợp và nạp thực tế lên chip FPGA Altera Cyclone IV EP4CE115 bằng phần mềm Quartus II 9.0, kết nối truyền dữ liệu nối tiếp song công (Full-duplex UART) với máy tính Host ở tốc độ Baudrate 115.200 bps.
  • Timeline nghiên cứu: Thực hiện xuyên suốt trong 12 tháng, tập trung vào tối ưu hóa tài nguyên phần cứng và đối sánh dữ liệu dạng bit-true giữa kết quả tính toán của FPGA với mô hình phần mềm MATLAB.

Kết quả nghiên cứu và thảo luận

Những phát hiện chính

Nghiên cứu đã thiết kế và thực thi thành công IP Core tính toán ma trận GLCM với hiệu năng cao, thể hiện qua các chỉ số định lượng cụ thể:

  • Tối ưu hóa thời gian tính toán chu kỳ: Quá trình ghi 1 khối ảnh con $32 \times 32$ vào bộ đệm mất chính xác 1.024 chu kỳ xung nhịp. Quá trình quét và chuẩn hóa cặp điểm ảnh mất 1.024 chu kỳ. Thời gian đọc dữ liệu ma trận ngõ ra phụ thuộc vào kích thước cấu hình: ma trận $8 \times 8$ mất 64 chu kỳ, $16 \times 16$ mất 256 chu kỳ, $32 \times 32$ mất 1.024 chu kỳ và $64 \times 64$ mất 4.096 chu kỳ. Tổng thời gian xử lý hoàn tất một ảnh con cho cấu hình $8 \times 8$ là 2.304 chu kỳ xung nhịp, tương đương 18,43 microgiây tại tần số 125 MHz.
  • Độ chính xác tuyệt đối (Bit-True Accuracy): Đối sánh ma trận kết quả GLCM giữa phần cứng FPGA và phần mềm chuẩn MATLAB trên toàn bộ 300 ảnh con của khung hình $640 \times 480$ đạt độ trùng khớp 100% trên cả 16 chế độ quét kết hợp giữa khoảng cách ($d \in {1, 2, 3, 4}$) và góc hướng ($\theta \in {0^\circ, 45^\circ, 90^\circ, 135^\circ}$).
  • Tiết kiệm tài nguyên phần cứng vượt trội: Thiết kế khai thác hiệu quả tài nguyên chip Altera Cyclone IV EP4CE115 (sở hữu 114.480 Logic Elements). Bộ nhớ RAM lưu trữ ảnh con kép chỉ chiếm $1.024 \times 8 \times 2 = 16.384$ bits; bộ nhớ lưu trữ ma trận kết quả lớn nhất ($64 \times 64$) chỉ chiếm $4.096 \times 10 = 40.960$ bits (do số cặp so sánh tối đa trong ảnh $32 \times 32$ là $31 \times 32 = 992$, thanh ghi 10-bit đáp ứng lưu trữ giá trị đếm tối đa 1.023). Tổng dung lượng RAM nội sử dụng chỉ 57.344 bits, chiếm chưa đầy 1,5% dung lượng bộ nhớ nhúng của vi mạch.
Cấu hình kích thước GLCM Thời gian ghi ảnh (Clocks) Thời gian quét điểm (Clocks) Thời gian đọc GLCM (Clocks) Tổng thời gian (Clocks) Thời gian thực thi ở 125 MHz ($\mu s$)
$8 \times 8$ 1.024 1.024 64 2.304 18,43
$16 \times 16$ 1.024 1.024 256 2.496 19,97
$32 \times 32$ 1.024 1.024 1.024 3.072 24,58
$64 \times 64$ 1.024 1.024 4.096 6.144 49,15

Thảo luận kết quả

Khi mở rộng quy mô xử lý lên toàn bộ khung hình ảnh $640 \times 480$ điểm ảnh (gồm 300 ảnh con $32 \times 32$), thời gian quét thuần túy trên phần cứng FPGA ở cấu hình GLCM $8 \times 8$ chỉ mất 633.600 chu kỳ xung nhịp (khoảng 5,07 mili-giây). Về mặt lý thuyết xử lý số, tốc độ này hoàn toàn đáp ứng các chuẩn video thời gian thực 24 khung hình/giây (yêu cầu xử lý mỗi khung hình dưới 41,67 mili-giây).

Tuy nhiên, trong mô hình thực nghiệm toàn hệ thống kết nối với máy tính Host, tổng thời gian xử lý thực tế bị kéo dài lên khoảng 1,0948 giây cho một khung hình $640 \times 480$. Nguyên nhân trực tiếp là do nút thắt cổ chai tại giao tiếp truyền thông UART 115.200 bps. Để truyền một điểm ảnh 8-bit cùng tọa độ hàng (5-bit) và cột (5-bit), MATLAB cần đóng gói thành 3 frames (3 bytes). Như vậy, 1 ảnh con 1.024 điểm ảnh tiêu tốn $1.024 \times 3 = 3.072$ bytes truyền xuống, và khi nhận kết quả GLCM cần 4 frames cho mỗi phần tử.

Điều này khẳng định rằng lõi IP GLCM đạt hiệu suất xử lý cực cao, và để hiện thực hóa toàn diện trong các hệ thống camera thời gian thực, giao tiếp UART cần được thay thế bằng các bus giao tiếp tốc độ cao như PCIe, AXI4-Stream hoặc Gigabit Ethernet.

Đề xuất và khuyến nghị

Dựa trên kết quả thiết kế và hạn chế về băng thông truyền nhận, 4 giải pháp nâng cấp cụ thể được đề xuất:

  1. Nâng cấp chuẩn giao tiếp truyền thông băng thông rộng: Thay thế giao thức nối tiếp UART 115.200 bps bằng giao tiếp PCIe Gen2 x1 hoặc Gigabit Ethernet (băng thông trên 1 Gbps). Đơn vị thực hiện: Nhóm kỹ sư phần cứng và hệ thống nhúng. Mục tiêu: Cắt giảm độ trễ truyền dữ liệu toàn khung hình $640 \times 480$ xuống dưới 5 mili-giây, giúp hệ thống đạt chuẩn thời gian thực 30 khung hình/giây. Thời gian triển khai: 6 tháng.
  2. Tích hợp khối tính toán đặc trưng Haralick trực tiếp trên phần cứng: Thiết kế bổ sung các module DSP tính toán song song 4 chỉ số thống kê (Entropy, Energy, Contrast, Homogeneity) ngay sau khi có ma trận GLCM. Đơn vị thực hiện: Nhóm nghiên cứu xử lý tín hiệu số. Mục tiêu: Trích xuất trực tiếp vector đặc trưng trong vòng 500 chu kỳ xung nhịp, loại bỏ hoàn toàn việc truyền ngược toàn bộ ma trận GLCM về máy tính chủ. Thời gian triển khai: 4 tháng.
  3. Mở rộng kích thước bộ đệm và kiến trúc xử lý song song nhiều luồng (Pipeline Multi-core): Tăng kích thước bộ nhớ đệm hỗ trợ ảnh con $64 \times 64$ điểm ảnh và nhân bản 4 lõi tính GLCM chạy song song trên FPGA. Đơn vị thực hiện: Nhóm thiết kế vi mạch SoC. Mục tiêu: Nâng thông lượng xử lý lên 400%, đáp ứng phân tích video chuẩn Full HD ($1920 \times 1080$). Thời gian triển khai: 9 tháng.
  4. Chuẩn hóa lõi IP theo giao tiếp AXI4/Avalon-MM công nghiệp: Đóng gói thiết kế Verilog HDL thành IP Core độc lập tương thích hoàn toàn với giao tiếp AXI4-Stream của Xilinx hoặc Avalon-MM của Intel FPGA. Đơn vị thực hiện: Kỹ sư kiến trúc hệ thống vi mạch. Mục tiêu: Tích hợp trực tiếp vào các chip hệ thống SoC (như Zynq-7000 hoặc Cyclone V SoC) phục vụ thương mại hóa. Thời gian triển khai: 3 tháng.

Đối tượng nên tham khảo luận văn

Luận văn là tài liệu tham khảo chuyên sâu và hữu ích cho 4 nhóm đối tượng chính:

  • Kỹ sư thiết kế vi mạch và lập trình FPGA (RTL / FPGA Engineers): Nắm bắt phương pháp thiết kế bộ điều khiển FSM, kỹ thuật quản lý bộ nhớ đệm Dual-RAM đa cổng và quy trình kiểm thử Bit-True giữa mô phỏng phần cứng Synopsys VCS với mô hình phần mềm MATLAB.
  • Nhà nghiên cứu và phát triển phần mềm xử lý ảnh y tế (Medical Imaging Researchers): Khai thác giải thuật tính GLCM đa hướng để tăng tốc tiền xử lý phân vùng khối u trên ảnh chụp cắt lớp vi tính CT, ảnh cộng hưởng từ MRI và siêu âm 2D/3D.
  • Kỹ sư phát triển hệ thống thị giác máy tính công nghiệp (Computer Vision Engineers): Ứng dụng lõi IP để phát hiện lỗi bề mặt sản phẩm (gạch men, tấm bán dẫn wafer, dệt may) và phân tích mật độ xe cộ trong camera giao thông thông minh.
  • Giảng viên, học viên cao học và sinh viên ngành Điện tử - Viễn thông, Kỹ thuật Máy tính: Sử dụng làm tài liệu tham khảo chuẩn mực về quy trình hiện thực hóa một giải thuật xử lý tín hiệu số phức tạp thành phần cứng IP Core hoàn chỉnh trên chip bán dẫn.

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

Ma trận đồng hiện mức xám (GLCM) đóng vai trò gì trong phân loại kết cấu ảnh?
GLCM biểu diễn mối quan hệ không gian bậc hai giữa các cặp điểm ảnh theo khoảng cách và góc quét xác định. Thay vì chỉ thống kê tần suất đơn lẻ như biểu đồ Histogram, GLCM phản ánh chính xác cấu trúc bề mặt, độ thô ráp hay tính tuần hoàn của ảnh, cung cấp cơ sở trích xuất các đặc trưng phân loại quan trọng như Entropy và Contrast.

Tại sao nghiên cứu chọn kích thước ảnh con 32x32 thay vì tính toàn bộ ảnh cùng lúc?
Xử lý theo khối ảnh con $32 \times 32$ (1.024 điểm ảnh) giúp tối ưu hóa dung lượng bộ nhớ RAM nội trên chip FPGA Altera Cyclone IV, chỉ cần 16.384 bits đệm. Kỹ thuật này giúp phân đoạn cục bộ chính xác các vùng đặc trưng khác nhau trong một bức ảnh lớn mà không làm bão hòa tài nguyên logic của vi mạch.

Xung nhịp 125 MHz trên kit Altera DE2-115 mang lại hiệu năng xử lý như thế nào?
Tại tần số 125 MHz, mỗi chu kỳ xung nhịp kéo dài 8 nano-giây. Lõi IP hoàn thành tính toán một ma trận GLCM kích thước $8 \times 8$ trong đúng 2.304 chu kỳ, tương đương tổng thời gian xử lý chỉ mất 18,43 microgiây cho mỗi khối ảnh con, đáp ứng vượt trội yêu cầu xử lý thời gian thực.

Nguyên nhân chính gây trễ hệ thống trong thực nghiệm và cách khắc phục là gì?
Điểm nghẽn nằm ở đường truyền nối tiếp UART với Baudrate 115.200 bps, đòi hỏi 3.072 byte cho mỗi ảnh con từ máy tính xuống FPGA. Để khắc phục, hệ thống cần tích hợp giao tiếp băng thông cao như PCIe hoặc trích xuất trực tiếp đặc trưng Haralick ngay trên FPGA để chỉ gửi về vài byte kết quả thống kê.

Lõi IP GLCM này có thể hỗ trợ những tùy biến cấu hình nào?
Lõi IP hỗ trợ cấu hình động thông qua hệ thống switch phần cứng hoặc tín hiệu điều khiển gồm 4 khoảng cách không gian ($d = 1, 2, 3, 4$ điểm ảnh), 4 hướng quét ($\theta = 0^\circ, 45^\circ, 90^\circ, 135^\circ$) và 4 kích thước ma trận ngõ ra ($8 \times 8, 16 \times 16, 32 \times 32, 64 \times 64$).

Kết luận

  • Đóng góp cốt lõi: Thiết kế và kiểm thử thành công lõi IP tính toán ma trận GLCM hoàn chỉnh trên vi mạch FPGA Altera Cyclone IV EP4CE115 ở tần số 125 MHz.
  • Khả năng tùy biến cao: Hỗ trợ linh hoạt 4 khoảng cách, 4 góc quét và 4 kích thước ngõ ra với độ chính xác đạt 100% so với mô hình toán học MATLAB.
  • Hiệu năng xử lý mạnh mẽ: Thời gian tính toán một khối ảnh $32 \times 32$ chỉ mất 2.304 chu kỳ xung nhịp (18,43 microgiây), tiết kiệm hơn 98,5% dung lượng RAM nội trên chip.
  • Quy trình kiểm thử chuẩn mực: Kết hợp đồng bộ giữa mô phỏng Synopsys VCS trên Linux Fedora và giao diện đối soát MATLAB UIs qua giao tiếp UART trên Windows.
  • Lộ trình phát triển tiếp theo: Trong 3 đến 12 tháng tới, định hướng nghiên cứu sẽ tập trung tích hợp khối tính đặc trưng Haralick trực tiếp và nâng cấp giao tiếp PCIe để thương mại hóa lõi IP trong các thiết bị y tế và camera AI biên.

Các đơn vị nghiên cứu, doanh nghiệp phát triển vi mạch và kỹ sư hệ sinh thái xử lý ảnh nhúng có thể tham khảo trực tiếp cấu trúc RTL và mô hình phối hợp phần cứng - phần mềm của luận văn để áp dụng vào các dự án tăng tốc phần cứng chuyên dụng.