IOAI 2025 — Phân đoạn ngữ nghĩa radar

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Output
Điểm: 2200 (p) Thời gian: 1.0s Bộ nhớ: 256M Input: bàn phím Output: màn hình

Mô tả bài toán


Khái niệm khoảng cách (range), góc phương vị (azimuth), góc ngẩng (elevation) và vận tốc (velocity) trong radar.


Trực quan hóa một mẫu radar (1.mat.pt) trong tập huấn luyện: 6 heatmap đặc trưng + bản đồ nhãn ngữ nghĩa.

Radar là công nghệ then chốt trong truyền thông không dây và có nhiều ứng dụng thực tiễn (xe tự lái, giám sát, y tế...). Nguyên lý cơ bản: ăng-ten phát tín hiệu rồi thu lại các tín hiệu phản xạ từ vật thể trong môi trường. Bằng cách xử lý các tín hiệu phản xạ này, hệ thống có thể ước lượng khoảng cách (range), góc phương vị (azimuth), góc ngẩng (elevation)vận tốc (velocity) của vật thể.

Trong thực tế, tín hiệu radar bị nhiễu nặng và lẫn phản xạ từ rất nhiều vật thể không phải mục tiêu. Ví dụ trong môi trường trong nhà, ngoài người cần phát hiện, radar còn bắt phản xạ từ tường, ghế, vali... Bài toán này yêu cầu bạn xây dựng mô hình AI thực hiện phân đoạn ngữ nghĩa (semantic segmentation) trên dữ liệu radar trong nhà: với mỗi pixel của bản đồ radar, mô hình phải dự đoán nó là nền hay thuộc về một trong bốn loại vật thể (vali, ghế, người, tường).

Dữ liệu

Tín hiệu radar được tiền xử lý thành các heatmap mã hoá cường độ tín hiệu nhận được tại các vị trí và hướng khác nhau. Có hai loại heatmap: tĩnh (static) làm nổi bật phản xạ từ vật thể đứng yên, và động (dynamic) làm nổi bật thay đổi do vật thể chuyển động. Với ba cặp trục (range-azimuth, range-elevation, range-velocity) và mỗi cặp đều có bản tĩnh + bản động, mỗi mẫu có tổng cộng 6 heatmap.

Mỗi mẫu là một tensor 7 × 50 × 181 lưu trong tệp .mat.pt, trong đó trục 50 là số bin khoảng cách, trục 181 là số bin góc/vận tốc (tương ứng -90° đến +90°; các bin vận tốc cũng được ánh xạ sang dải này để hiển thị thống nhất). Mọi cường độ heatmap đã chuẩn hoá về [0, 1].

Sáu kênh đầu (chỉ số 0-5) là các heatmap đầu vào:

Kênh Nội dung
0 Heatmap tĩnh range-azimuth
1 Heatmap động range-azimuth
2 Heatmap tĩnh range-elevation
3 Heatmap động range-elevation
4 Heatmap tĩnh range-velocity
5 Heatmap động range-velocity

Kênh thứ 7 (chỉ số 6) là bản đồ nhãn ngữ nghĩa ground truth, lưu ở dạng range-azimuth — đây cũng là đại lượng cần dự đoán. Mỗi pixel nhận một trong các giá trị:

Giá trị Ý nghĩa
-1 Nền (không có mục tiêu)
0 Vali
1 Ghế
2 Người
3 Tường

Quy mô: 1800 mẫu huấn luyện (training_set), 500 mẫu validation (validation_set), 500 mẫu test (test_set).

Lưu ý về tệp dữ liệu. Toàn bộ .mat.pt (~1.4 GB) quá lớn để đính kèm trên LQDOJ. Bạn cần tải dữ liệu gốc từ kho chính thức:

https://github.com/IOAI-official/IOAI-2025/tree/main/Individual-Contest/Radar

Để hỗ trợ tự đánh giá ở local, hệ thống có sẵn:

  • ioai25radar_baseline.ipynb — notebook baseline của ban tổ chức (cách tải dữ liệu, một mạng CNN nhỏ và pipeline huấn luyện).
  • figures.zip — hình minh hoạ heatmap mẫu và các trục range/azimuth/elevation/velocity.
  • ground_truth_val.csv — nhãn đúng của tập validation để bạn tự chấm thử trước khi nộp.

Bài nộp

Đầu vào của mô hình là tensor 6 × 50 × 181; đầu ra là bản đồ nhãn 50 × 181 với mỗi pixel thuộc {-1, 0, 1, 2, 3}.

Bạn nộp một tệp zip chứa test_answer.csv với header:

filename, pixel_0, pixel_1, ..., pixel_9049

(50 × 181 = 9050 pixel, duỗi phẳng theo thứ tự hàng). Mỗi dòng tương ứng một mẫu test:

  • filename: tên tệp mẫu dạng <id>.mat.pt (ví dụ 1.mat.pt).
  • pixel_0 ... pixel_9049: nhãn dự đoán cho từng pixel, số nguyên trong {-1, 0, 1, 2, 3}.

Thứ tự dòng không quan trọng, miễn là mỗi mẫu test xuất hiện đúng một lần.

Tiêu chí chấm

Chấm theo độ chính xác pixel có trọng số, ưu tiên các pixel mục tiêu hơn pixel nền:

  • Pixel nền (-1) đoán đúng: 1 điểm.
  • Pixel không phải nền đoán đúng: 50 điểm.
  • Điểm được chuẩn hoá về [0, 1] bằng cách chia cho điểm tối đa lý thuyết (mọi pixel đều đúng):
\[ \text{Score} = \frac{|C_{0,\text{correct}}| \cdot 1 + |C_{1,\text{correct}}| \cdot 50}{|C_0| \cdot 1 + |C_1| \cdot 50} \]

trong đó \(C_0\) là tập pixel nền theo ground truth, \(C_1\) là tập pixel không phải nền, và \(C_{*,\text{correct}}\) là phần đoán đúng tương ứng.

Ví dụ. Ground truth \(3 \times 3\):

\[ \begin{bmatrix} -1 & -1 & -1 \\ 1 & 2 & 3 \\ -1 & -1 & -1 \end{bmatrix} \]

Dự đoán:

\[ \begin{bmatrix} -1 & 1 & -1 \\ -1 & 2 & -1 \\ -1 & 3 & -1 \end{bmatrix} \]

có 4 pixel -1 đúng và 1 pixel 2 đúng, được \(4 \cdot 1 + 1 \cdot 50 = 54\) trên tối đa \(6 \cdot 1 + 3 \cdot 50 = 156\), tức là \(54/156 \approx 0{,}346\).

Mức tham khảo của ban tổ chức: baseline 0,67, top 0,90.

Nguồn: IOAI 2025 — Individual Contest, Radar.

Tệp

Bình luận

Mới nhất
Tải bình luận...

Không có bình luận nào.

Kỳ thi: