Link to this sectionLabelbox Entegrasyonu#
Ultralytics Platform doğrudan Labelbox NDJSON dışa aktarımlarını okur. Yapıştırılacak bir anahtar, açık tutulacak bir bağlantı veya sürdürülecek bir dönüştürme betiği yoktur; Labelbox'tan dışa aktar, dosyayı yükle ve etiketlerin normal bir Platform veri kümesi olarak gelir.
Link to this sectionLabelbox'tan İçe Aktar#
- Labelbox'tan dışa aktar. Aktarmak istediğin etiketleme projesini veya kataloğu aç ve Data Rows sekmesine git. All seçeneğini seç, Export data öğesine tıkla, dahil edilecek alanları seç ve onayla. Bir projeden değil de Katalog'dan mı dışa aktarıyorsun? Export labels from project seçeneğini etkinleştir ve projeyi seç, aksi takdirde dosya hiç ek açıklaması olmadan gelir.
- Dosyayı indir. Labelbox dışa aktarma işlemini arka plan işi olarak çalıştırır. Bildirimler bölümünden takip et ve
.ndjsondosyasını kaydetmek için tamamlandığında Download düğmesine tıkla. - Platform'a yükle. Yeni bir veri kümesi oluştur ve
.ndjsondosyasını yükle veya dosyaya doğrudan bir bağlantı yapıştır. Ayrıca Settings > Integrations > Labelbox bölümünden de başlayabilirsin. - Eğit. İşlem tamamlandığında, diğer tüm Platform veri kümelerinde olduğu gibi ek açıklamaları düzenle ve eğit.
CVAT ve Label Studio aksine, seçilecek bir biçim yoktur; Labelbox'ın kendi dışa aktarımı desteklenen biçimdir.
Link to this sectionSDK ile Dışa Aktar#
Labelbox ayrıca, yinelenebilir bir boru hattı için daha kolay yol olan Python SDK'sında dışa aktarma görevini sunar. Görevi akışa al ve satır başına bir JSON nesnesi yaz:
import json
import labelbox
client = labelbox.Client(api_key="YOUR_LABELBOX_API_KEY")
export_task = labelbox.ExportTask.get_task(client, "YOUR_EXPORT_TASK_ID")
export_task.wait_till_done() # streaming a task that isn't COMPLETE raises
with open("dataset.ndjson", "w") as f:
f.writelines(json.dumps(data_row.json) + "\n" for data_row in export_task.get_buffered_stream())NDJSON, satır başına bir JSON nesnesidir. json.dump(list_of_rows, f) bunun yerine tek bir dizi yazar ve Platform, JSON nesnesi olmayan herhangi bir satırı atlar; içe aktarma hiçbir veri satırı bulamaz. Yukarıdaki döngüyü kullan veya "\n".join(json.dumps(r) for r in rows) ifadesini kullan.
Link to this sectionNeler İçe Aktarılır#
Platform, Labelbox biçimini kendi başına tanır ve sınırlayıcı kutuları ile çokgenleri eşleşen YOLO görev türüne eşler:
| Labelbox Etiketi | İçe Aktarılan |
|---|---|
| Sınırlayıcı kutu | Detect |
| Çokgen | Segment |
| Segmentasyon maskesi, nokta, çoklu çizgi, ilişki, sınıflandırma | Henüz değil |
Each object's name becomes the class name — so a "name": "Dog" annotation imports as the class Dog, not its lowercase value — and pixel coordinates are normalized against the media_attributes dimensions in the export. A catalog export with no annotations imports as an unlabeled image dataset, ready to label in Platform's annotation editor.
Tek bir veri satırı, Platform'un okuduğu alanlarla sınırlandırılmış olarak şu şekildedir:
{
"data_row": {
"external_id": "000000000307.jpg",
"row_data": "https://storage.labelbox.com/...?Expires=...&Signature=..."
},
"media_attributes": { "height": 480, "width": 640, "mime_type": "image/jpeg" },
"projects": {
"<project-id>": {
"labels": [
{
"annotations": {
"objects": [
{
"name": "Dog",
"annotation_kind": "ImageBoundingBox",
"bounding_box": { "top": 200.0, "left": 407.0, "height": 172.0, "width": 176.0 }
}
]
}
}
]
}
}
}Dışa aktarımdaki diğer her şey (embeddings, metadata_fields, attachments, project_details) yoksayılır. Gömme verilerini dışa aktarırken seçimini kaldırmaya değer: örnek bir dışa aktarımda, Platform'un gerçekten okuduğu alanlar beşte birlik bir paya sahipken, bunlar dosyanın yaklaşık beşte dördünü oluşturuyordu.
Bugün yalnızca sınırlayıcı kutular ve çokgenler okunur ve bunlar yalnızca nesne ek açıklamalarından okunur; görüntü düzeyindeki sınıflandırmalar dışa aktarımın başka bir yerinde yer alır ve atlanır. Tamamen segmentasyon maskesi (fırça) aracı, noktalar, çoklu çizgiler veya sınıflandırmalarla etiketlenmiş bir proje, görüntülerini içe aktarır ancak hiçbir ek açıklama içe aktarmaz ve herhangi bir hata oluşmaz. Bunu veri kümesi sayfasında fark edebilirsin: etiketlerini koruyan içe aktarılan bir veri kümesi, görüntü sayısının yanında bir etiketli ve ek açıklama sayısı gösterirken, bunları kaybeden bir veri kümesi hiçbirini göstermez.
Bir Labelbox dışa aktarımı, pikselleri gömmek yerine her görüntüye imzalı URL ile başvurur ve bu imzaların süresi dolar. Platform, başlamadan önce bir örneği inceleyerek görüntüleri bu URL'lerden indirir, bu nedenle bağlantılarının tümünün süresi dolmuş bir dışa aktarım hemen başarısız olur ve nedenini söyler; Labelbox'tan yeniden dışa aktar ve yeni dosyayı yükle. Yalnızca kısmen süresi dolmuş bir dışa aktarım, hala ulaşabildiği görüntüleri içe aktarır ve geri kalanını atlar, bu nedenle dışa aktardıktan kısa süre sonra yükle.
Hem sınırlayıcı kutular hem de çokgenler içeren bir dışa aktarım, segment veri kümesi olarak içe aktarılır ve bir segment veri kümesi yalnızca çokgen geometrisi taşır; kutu ek açıklamaları eğitim için kullanılmaz veya sürüm dışa aktarımlarına dahil edilmez. Her ikisine de ihtiyacın varsa kutuları ve çokgenleri ayrı Labelbox projeleri olarak dışa aktar. Çokgenlerin okunabilmesi için ayrıca en az üç nokta gereklidir.