Ultralytics YOLO27:

Xuất chú thích LabelMe sang YOLO và Ultralytics Platform#

LabelMe là công cụ gán nhãn ảnh ngoại tuyến với một ứng dụng Python mã nguồn mở. Không có kết nối LabelMe trực tiếp hoặc API key nào cần cấu hình trong Ultralytics Platform. Toàn bộ quy trình tích hợp được thực hiện cục bộ: gán nhãn trong LabelMe, chuyển đổi chú thích JSON của LabelMe sang định dạng YOLO bằng LabelMe Toolkit, rồi tải ZIP kết quả lên làm dataset trên Platform.

1. Gán nhãn ảnh trong LabelMe#

Cài đặt LabelMe bằng ứng dụng desktop hoặc gói Python mã nguồn mở, sau đó mở thư mục chứa ảnh. LabelMe lưu chú thích của mỗi ảnh trong một tệp JSON tương ứng.

Đối với quy trình phát hiện YOLO trong hướng dẫn này, hãy vẽ hình chữ nhật quanh từng đối tượng và gán tên class. Hướng dẫn bắt đầu với LabelMe trình bày cách mở ảnh, vẽ hình và lưu chú thích, còn hướng dẫn dataset LabelMe hướng dẫn xem xét và chuẩn bị một dataset đã gán nhãn hoàn chỉnh.

Thư mục nguồn của bạn cần chứa ảnh và các tệp JSON của LabelMe:

your_dataset/
├── image_001.jpg
├── image_001.json
├── image_002.jpg
└── image_002.json

2. Cài đặt LabelMe Toolkit#

Cài đặt LabelMe Toolkit theo hướng dẫn cài đặt toolkit của LabelMe. Toolkit và các tệp xuất của toolkit chạy cục bộ.

Cần có LabelMe Pro để xuất dữ liệu

export-to-yolo thuộc LabelMe Pro Toolkit và cần đăng nhập LabelMe để tải trình cài đặt. Đây là yêu cầu của sản phẩm LabelMe; bạn có thể tải ZIP tạo ra lên bất kỳ gói Platform nào.

Xác minh cài đặt, sau đó liệt kê mọi nhãn có trong dataset nguồn:

labelmetk --version
labelmetk list-labels your_dataset/

Kiểm tra đầu ra trước khi xuất. Các nhãn không có trong --class-names sẽ bị bỏ qua, và thứ tự bạn cung cấp sẽ trở thành thứ tự ID class YOLO.

3. Xuất sang định dạng YOLO#

Chạy export-to-yolo với thư mục nguồn và danh sách tên class được phân tách bằng dấu phẩy:

labelmetk export-to-yolo your_dataset/ --class-names crack,normal

Thay crack,normal bằng các nhãn mà list-labels trả về. LabelMe ghi kết quả vào your_dataset.export/:

your_dataset.export/
├── classes.txt
├── images/
│   ├── image_001.jpg
│   └── image_002.jpg
└── labels/
    ├── image_001.txt
    └── image_002.txt

classes.txt giữ nguyên tên class theo thứ tự được sử dụng trong các tệp nhãn YOLO. Hãy giữ tệp này ở thư mục gốc của bản xuất.

Quy trình này tạo dataset phát hiện

LabelMe Toolkit xuất hình chữ nhật dưới dạng bounding box YOLO. Toolkit cũng chuyển các đa giác và mask thành bounding box căn chỉnh theo trục, vì vậy export-to-yolo không bảo toàn hình học phân đoạn. Hãy vẽ hình chữ nhật khi chuẩn bị dataset phát hiện bằng quy trình này.

4. Tạo tệp ZIP#

Nén nội dung của your_dataset.export/, không nén thư mục chứa các nội dung đó. Trên macOS hoặc Linux:

cd your_dataset.export
zip -r ../your_dataset.zip classes.txt images labels

Trên Windows PowerShell:

Compress-Archive -Path .\your_dataset.export\* -DestinationPath .\your_dataset.zip

Mở tệp ZIP trước khi tải lên và xác nhận classes.txt, images/ và labels/ nằm ở thư mục gốc. Thư mục bao bên ngoài your_dataset.export/ sẽ khiến Platform không tìm thấy danh sách class ở thư mục gốc.

5. Tải lên Ultralytics Platform#

  1. Mở Settings > Integrations > LabelMe.
  2. Nhấp vào Upload export.
  3. Tải your_dataset.zip lên và hoàn tất tạo dataset.
  4. Chờ quá trình xử lý hoàn tất, sau đó xem lại ảnh, class và chú thích.
  5. Chỉnh sửa chú thích, huấn luyện model và triển khai model trong cùng một workspace.

Nhập dataset LabelMe vào Ultralytics Platform

LabelMe và quá trình xuất sang YOLO hoàn toàn ngoại tuyến. Chỉ tệp ZIP bạn chọn trong hộp thoại tải lên mới được gửi đến Platform.

Khắc phục sự cố#

  • Các class có tên class0, class1 và các tên tiếp theo: xác nhận classes.txt có trong thư mục gốc của tệp ZIP.
  • Thiếu một số chú thích: chạy lại labelmetk list-labels your_dataset/ và thêm mọi nhãn cần thiết vào --class-names.
  • Đa giác bị chuyển thành box: đây là hành vi đã được ghi nhận của export-to-yolo trong LabelMe; công cụ chuyển các hình không phải hình chữ nhật thành bounding box.
  • Dataset không có ảnh: xác nhận thư mục images/ đã xuất được đưa vào tệp ZIP.
  • Platform không tìm thấy class: xóa mọi thư mục bên ngoài khỏi tệp lưu trữ để classes.txt, images/ và labels/ trở thành các mục ở cấp cao nhất.

Để xem toàn bộ quy trình cục bộ, hãy tham khảo hướng dẫn huấn luyện YOLO và tài liệu tham khảo export-to-yolo của LabelMe.

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

  • Không. LabelMe và quá trình xuất chạy cục bộ; chỉ ZIP bạn tải lên mới được gửi đến Platform. Lệnh export-to-yolo thuộc LabelMe Pro Toolkit, vốn là yêu cầu của LabelMe, nhưng ZIP tạo ra có thể được tải lên bất kỳ gói Platform nào.

  • Không thể với quy trình này. LabelMe Toolkit chuyển đa giác và mask thành bounding box căn chỉnh theo trục, vì vậy kết quả luôn là dataset phát hiện. Hãy vẽ hình chữ nhật khi chuẩn bị dữ liệu cho lần xuất này.

  • Platform đọc tên class từ classes.txt ở thư mục gốc của tệp ZIP. Nén nội dung của thư mục xuất, không nén chính thư mục đó, để classes.txt, images/ và labels/ trở thành các mục ở cấp cao nhất.

  • Chỉ những nhãn được truyền vào --class-names, theo thứ tự bạn liệt kê. Trước tiên, chạy labelmetk list-labels và thêm mọi nhãn bạn muốn giữ lại.

Người đóng góp

Bình luận