Độ chồng lấn IoU của hai hộp
Trong bài toán phát hiện vật thể, IoU (Intersection over Union) đo mức chồng lấn giữa hộp
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: python-basics, ai-bounding-box.
Nội dung đề bài
Mô tả bài toán
Trong bài toán phát hiện vật thể, IoU (Intersection over Union) đo mức chồng lấn giữa hộp dự đoán và hộp thật. Nó bằng diện tích phần giao chia cho diện tích phần hợp, và là cơ sở để đánh giá dự đoán đúng hay trùng lặp.
Yêu cầu
Viết hàm iou_boxes(box_a, box_b) với mỗi hộp là [x1, y1, x2, y2] (góc trên-trái và dưới-phải, x1 < x2, y1 < y2) và trả về IoU dạng số thực.
Quy ước nộp bài
Nộp hàm iou_boxes trong solution.py. Hệ thống gọi hàm trực tiếp và so với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- box_a: danh sách bốn số nguyên [x1, y1, x2, y2].
- box_b: danh sách bốn số nguyên [x1, y1, x2, y2].
Output
Một số thực bằng inter / union với union = area_a + area_b - inter.
Ràng buộc
- Phần giao theo mỗi trục dùng max(0, ...); hộp rời nhau cho IoU bằng 0.
- Nếu hộp suy biến (diện tích không dương) khiến hợp không dương, ném ValueError.
- Dùng Python thuần hoặc NumPy, không cần thư viện khác.
Ví dụ 1
Input
iou_boxes(box_a=[0, 0, 10, 10], box_b=[5, 5, 15, 15])
Output
0.14285714285714285
Ví dụ 2
Input
iou_boxes(box_a=[0, 0, 4, 4], box_b=[0, 0, 4, 4])
Output
1.0
Giải thích
Với box_a = [0, 0, 10, 10] và box_b = [5, 5, 15, 15], giao là hình 5x5 diện tích 25, mỗi hộp diện tích 100, hợp là 175, nên IoU = 25 / 175 = 0.14285714285714285.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
