Trong các bài toán về thị giác máy tính như nhận diện đối tượng (object detection), giai đoạn chuẩn bị dữ liệu đóng vai trò cực kỳ quan trọng. Dữ liệu huấn luyện phải được gán nhãn chính xác để mô hình học được vị trí và loại đối tượng trong ảnh. Công cụ LabelImg chính là một trong những phần mềm mã nguồn mở phổ biến nhất giúp bạn thực hiện công việc gán nhãn này một cách trực quan, nhanh chóng và chính xác.
LabelImg là một phần mềm gán nhãn ảnh dạng GUI (giao diện đồ họa), được viết bằng Python và sử dụng thư viện Qt. Công cụ này hỗ trợ định dạng nhãn Pascal VOC (dạng XML) và YOLO (dạng TXT), rất phổ biến trong cộng đồng machine learning và deep learning. Nếu bạn đang huấn luyện mô hình YOLOv8 hoặc Faster R-CNN, việc sử dụng LabelImg là bước đầu tiên không thể thiếu để xây dựng bộ dữ liệu chất lượng cao.
Cài đặt LabelImg trên máy tính của bạn
Trước khi sử dụng LabelImg để gán nhãn dữ liệu ảnh, bạn cần cài đặt phần mềm này vào máy. Có nhiều cách để cài LabelImg, nhưng cách đơn giản nhất là dùng Git và Python.
Đầu tiên, bạn cần cài đặt Git và Python nếu máy bạn chưa có. Sau đó, thực hiện các bước sau trong terminal hoặc command line:
git clone https://github.com/tzutalin/labelImg.git cd labelImg pip install -r requirements/requirements-linux-python3.txt # Nếu dùng Linux pip install -r requirements/requirements-win-python3.txt # Nếu dùng Windows python labelImg.py
Sau khi chạy lệnh cuối cùng, cửa sổ LabelImg sẽ mở ra và bạn có thể bắt đầu gán nhãn.
Giao diện và các chức năng chính của LabelImg
Sau khi khởi động, LabelImg sẽ hiển thị giao diện với các nút chức năng quen thuộc như: Open Dir (mở thư mục chứa ảnh), Create RectBox (vẽ khung), Save (lưu nhãn), và lựa chọn định dạng nhãn VOC hoặc YOLO. Giao diện trực quan cho phép bạn sử dụng chuột để chọn vùng chứa đối tượng, đặt tên lớp (class name), và gán nhãn nhanh chóng qua các phím tắt như:
- W: Vẽ bounding box mới
- Ctrl+S: Lưu nhãn
- A/D: Di chuyển giữa các ảnh
Đây là công cụ rất thuận tiện khi bạn cần gán nhãn cho hàng trăm hoặc hàng ngàn bức ảnh.
Gán nhãn dữ liệu cho định dạng YOLO
Nếu bạn đang huấn luyện mô hình như YOLOv8, bạn nên chọn định dạng YOLO để gán nhãn. Sau khi mở ảnh, bạn chọn đối tượng trong ảnh, vẽ bounding box xung quanh, đặt tên lớp (label), rồi nhấn Save. Mỗi ảnh sẽ có một file .txt đi kèm, chứa thông tin: class_id x_center y_center width height, tất cả đều được chuẩn hóa (giá trị từ 0 đến 1).
Bạn nên đảm bảo tất cả các ảnh đều có nhãn đầy đủ và không có lỗi đánh máy trong tên lớp. Ngoài ra, nên tạo một file classes.txt chứa danh sách tất cả các lớp, để thống nhất khi training mô hình.
Lưu ý khi gán nhãn dữ liệu ảnh
Khi sử dụng LabelImg để gán nhãn dữ liệu ảnh, cần tuân thủ một số nguyên tắc để đảm bảo chất lượng dữ liệu:
- Bounding box phải khớp sát với đối tượng, không bao quá rộng hay quá hẹp.
- Không gán nhãn những đối tượng bị mờ, khuất hoặc không rõ ràng.
- Giữ tên lớp thống nhất, tránh viết sai chính tả (ví dụ: “car” và “Car” là hai lớp khác nhau).
- Luôn lưu nhãn sau mỗi ảnh để tránh mất dữ liệu.
Kết luận
LabelImg là công cụ không thể thiếu khi xây dựng bộ dữ liệu cho bài toán nhận diện đối tượng bằng deep learning. Với khả năng hỗ trợ định dạng YOLO và giao diện dễ dùng, LabelImg giúp bạn tiết kiệm hàng giờ đồng hồ trong việc gán nhãn dữ liệu. Dù bạn là người mới hay đã có kinh nghiệm, việc sử dụng LabelImg một cách đúng đắn sẽ giúp tăng chất lượng mô hình đáng kể.
Sau khi hoàn tất quá trình gán nhãn, bạn có thể tiếp tục bước tiếp theo là huấn luyện mô hình nhận diện đối tượng như YOLOv8. Nếu bạn chưa biết cách làm, hãy tham khảo bài viết Hướng dẫn sử dụng YOLOv8 để nhận diện đối tượng để tiếp tục xây dựng pipeline AI hoàn chỉnh.

