Nội dung bài viết
© 2025 AI VIET NAM. All rights reserved.
Tác giả: AI VIET NAM (AI VIET NAM)
Keywords: Object Detection Dataset Split, Chia Dữ Liệu Ảnh, Train Validation Test, Bounding Box
Khi làm Object Detection, khá nhiều bạn xử lý ảnh trước, rồi tạo nhãn bounding box sau. Nhưng đến lúc chia dataset, thường nảy ra câu hỏi: “Tại sao phải chia theo ảnh và kèm theo toàn bộ bbox của ảnh đó? Tại sao không chia riêng từng bbox để mô hình học nhiều mẫu hơn?” Đây là điểm quan trọng quyết định chất lượng mô hình, nhất là khi làm các dự án liên quan đến nhận diện nhiều đối tượng trong một bối cảnh.
Trong Object Detection, đơn vị dữ liệu không phải là bbox, mà là một ảnh cùng toàn bộ bbox có trong ảnh đó. Lý do:
Mỗi bbox nằm trong một ảnh cụ thể, gắn với ánh sáng, góc chụp, độ nhiễu, background và mối quan hệ giữa các vật thể. Nếu tách riêng bbox khỏi ảnh gốc, mô hình mất đi bối cảnh – là yếu tố quan trọng để phân biệt vật thể và nhiễu.
Những kiến trúc phổ biến như:
đều nhận đầu vào là một ảnh và một danh sách các bbox đi kèm. Không mô hình nào huấn luyện dựa trên từng bbox riêng lẻ.
Nếu chia bbox theo từng nhãn, khả năng cao cùng một bức ảnh lại xuất hiện cả ở train và validation/test. Điều này khiến mô hình “ghi nhớ” ảnh thay vì học khả năng tổng quát hóa.
Khi chia theo bbox, các ảnh chứa nhiều bbox sẽ vô tình bị chia cắt, dẫn đến:
Kết quả: mô hình đánh giá sai lệch, metric không ổn định.
Giả sử bạn có ảnh chụp khu chợ với 10 người, 5 xe máy, 2 chó, 1 biển hiệu. Nếu chia theo bbox:
Mô hình sẽ nhìn thấy ảnh ở validation giống hệt ảnh train, dẫn đến đánh giá không đúng chất lượng thật. Trong khi đó, chia theo ảnh đảm bảo:
Trong dự án thực tế, quy trình Dataset Management thường nằm trong phần chuẩn bị dữ liệu (gần với những gì học trong Data Engineering – ETL hoặc CV trong Module 9). Mục tiêu là tạo ra:
Nhiều đội thực hiện chuẩn hóa dataset bằng các công cụ như:
Mỗi format đều xây dựng dựa trên nguyên tắc ""một ảnh – nhiều bbox"", cho thấy đây là cấu trúc chuẩn từ góc độ kỹ thuật.
Việc hiểu cách chia dataset liên quan đến các nhóm kiến thức như:
Những nhóm kiến thức này giải thích lý do tại sao bối cảnh ảnh và cấu trúc dữ liệu lại quan trọng với mô hình detection.
1. Có thể chia dataset detection theo từng bbox không? Không, vì bbox không thể tách khỏi ảnh.
2. Cùng một ảnh có được xuất hiện ở train và validation không? Không, điều này gây rò rỉ dữ liệu.
3. Chia theo ảnh có làm giảm dữ liệu không? Không, chỉ là thay đổi cách tổ chức dữ liệu.
4. Nếu một ảnh có nhiều lớp, việc chia theo ảnh có ảnh hưởng cân bằng lớp không? Có, nhưng có thể xử lý bằng kỹ thuật augmentation hoặc sampling.
Q1. Con số 0 thì học nổi không? Ans: Chỉ cần bạn có thời gian học. Điều quan trọng nhất không phải giỏi hay không, mà là có học đều mỗi ngày. Kiến thức – tài liệu – môi trường đã có team lo. Nếu bạn không có thời gian thì nên cân nhắc.
Q2. Ai dạy AIO? Ans: Đội admin dạy toàn bộ. Admin trực tiếp hướng dẫn và hỗ trợ mọi câu hỏi của bạn trong suốt quá trình học.
Q3. Admin có “xịn” không? Ans: Admin đều là người làm nghề thật, mỗi người một cách dạy. Quan trọng là bạn cảm thấy hợp cách truyền đạt. Admin không dám nói xịn, chỉ dạy bằng hết sức.
Q4. AIO có gì khác những nơi khác? Ans: AIO không phải trung tâm. Đây là dự án học tập cộng đồng, được cải tiến qua từng khóa. Tinh thần của AIO: Cùng nhau học – cùng nhau khổ – cùng nhau lớn. Nếu hợp tinh thần đó, bạn sẽ thấy phù hợp.