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.json2. 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ộ.
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,normalThay 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.txtclasses.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.
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 labelsTrên Windows PowerShell:
Compress-Archive -Path .\your_dataset.export\* -DestinationPath .\your_dataset.zipMở tệp ZIP trước khi tải lên và xác nhận rằng classes.txt, images/ và 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#
- Mở Settings > Integrations > LabelMe.
- Nhấp vào Upload export.
- Tải
your_dataset.ziplên và hoàn tất việc tạo dataset. - Chờ xử lý hoàn tất, sau đó xem xét các ảnh, lớp và chú thích.
- Chỉnh sửa chú thích, train model và deploy model từ cùng một workspace.

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,class1và tiếp tục như vậy: xác nhận rằngclasses.txtcó ở 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-yolotrong 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/và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-yololà 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/và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ạylabelmetk list-labelstrước và bao gồm mọi nhãn bạn muốn giữ lại.