YOLO Vision 2026:

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 đi kèm 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ộ quá trình tích hợp đều chạy cục bộ: gán nhãn trong LabelMe, chuyển đổi các chú thích JSON của LabelMe sang định dạng YOLO bằng LabelMe Toolkit, rồi tải tệp ZIP kết quả lên dưới dạng dataset trên Platform.

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

Cài đặt LabelMe bằng ứng dụng desktop hoặc package Python mã nguồn mở, sau đó mở thư mục chứa các ả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 detection 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 lớp. Hướng dẫn bắt đầu với LabelMe trình bày cách mở ảnh, vẽ hình dạng và lưu chú thích, còn hướng dẫn dataset LabelMe trình bày cách xem xét và chuẩn bị một dataset đã được gán nhãn hoàn chỉnh.

Thư mục nguồn của bạn cần chứa các ảnh và 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 nó đều chạy cục bộ.

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

export-to-yolo là một phần của LabelMe Pro Toolkit và để tải installer, bạn cần đăng nhập LabelMe. Đây là yêu cầu của sản phẩm LabelMe; tệp ZIP kết quả có thể được tải lên bằng bất kỳ gói Platform nào.

Xác minh quá trình cài đặt, sau đó liệt kê mọi label được tìm thấy trong dataset nguồn:

labelmetk --version
labelmetk list-labels your_dataset/

Xem xét output trước khi xuất. Các label bị bỏ qua khỏi --class-names sẽ không được xử lý, và thứ tự bạn cung cấp sẽ trở thành thứ tự ID lớp 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 lớp đượ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 label do 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 lớp theo cùng thứ tự được sử dụng trong các tệp label YOLO. Giữ tệp này ở thư mục gốc của dữ liệu xuất.

Quy trình này tạo một dataset detection

LabelMe Toolkit xuất các hình chữ nhật dưới dạng bounding box YOLO. Toolkit cũng thu gọn polygon và mask thành các bounding box căn theo trục, vì vậy export-to-yolo không giữ lại hình học segmentation. Hãy vẽ hình chữ nhật khi chuẩn bị dataset detection bằng quy trình này.

4. Tạo tệp lưu trữ ZIP#

Nén nội dung của your_dataset.export/, không nén thư mục bao quanh chúng. 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 rằng classes.txt, images/labels/ nằm ở thư mục gốc của tệp. Một thư mục bao ngoài your_dataset.export/ sẽ khiến Platform không tìm thấy danh sách lớp 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 việc tạo dataset.
  4. Chờ xử lý hoàn tất, sau đó xem xét các ảnh, lớp và chú thích.
  5. Chỉnh sửa chú thích, train modeldeploy model từ cùng một workspace.

Nhập dataset LabelMe vào Ultralytics Platform

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

Khắc phục sự cố#

  • Các lớp được đặt tên là class0, class1 và tiếp tục như vậy: xác nhận rằng classes.txt có ở 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à đưa mọi label bắt buộc vào --class-names.
  • Polygon đã trở 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 dạng không phải hình chữ nhật thành bounding box.
  • Dataset không có ảnh: xác nhận rằng thư mục images/ đã xuất được đưa vào tệp ZIP.
  • Platform không tìm thấy các lớp: xóa mọi thư mục bên ngoài khỏi archive để classes.txt, images/labels/ là các mục cấp cao nhất.

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

FAQ#

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

  • Không với quy trình này. LabelMe Toolkit thu gọn các đa giác và mặt nạ thành hộp bao căn chỉnh theo trục của chúng, vì vậy kết quả luôn là tập dữ liệu phát hiện. Hãy vẽ hình chữ nhật khi chuẩn bị dữ liệu cho quá trình xuất này.

  • Platform đọc tên lớp từ classes.txt ở thư mục gốc của tệp ZIP. Hãy nén nội dung của thư mục xuất, chứ không phải bản thân thư mục đó, để classes.txt, images/labels/ là các mục cấp cao nhất.

  • Chỉ những nhãn được chuyển tới --class-names, theo thứ tự bạn liệt kê chúng. Hãy chạy labelmetk list-labels trước và bao gồm mọi nhãn bạn muốn giữ lại.

Những người đóng góp

Bình luận