Konsep inti

Empat gagasan menjelaskan setiap model di LibreYOLO: task yang dikerjakan, family asalnya, ukuran dalam family tersebut, dan tier dukungan family itu. Nama berkas checkpoint mengenkode tiga hal pertama.

Skema nama berkas
Libre<FAMILY><size>[-<task>].pt
Task kanonis
17
Tier dukungan
Unggulan, Inti, Didukung, Hanya inferensi, Museum, Tingkat saudara

Task

Task adalah yang dikembalikan model. LibreYOLO memiliki tujuh belas nama task kanonis, dan setiap nama menunjuk kolom pada objek Results yang membawa output-nya.

TaskMengembalikan
detectBounding box sejajar sumbu dengan kelas dan confidence
segmentMask per instance, satu mask per objek terdeteksi
semanticSatu label kelas per piksel, tanpa pemisahan instance
panopticSatu label tidak tumpang tindih per piksel, menggabungkan thing yang dapat dihitung dengan stuff amorf
poseKeypoint per instance, dengan baris yang selaras dengan bounding box
classifyProbabilitas atas kumpulan label untuk seluruh gambar
obbOriented bounding box dengan sudut rotasi
pointSatu koordinat gambar per deteksi, bukan bounding box
depthMap inverse-depth relatif padat
normalKolom surface-normal vektor satuan padat
edgeMap probabilitas edge padat
restoreGambar RGB hasil restorasi untuk deblurring, denoising, atau super-resolution
matteMap foreground lunak dari 0 hingga 1 untuk penghapusan latar belakang
ocrQuad teks beserta transkrip dalam urutan baca
embedVektor ternormalisasi L2 yang dot product-nya mengukur kecocokan
gazeArah pandang per wajah terdeteksi
meshTubuh 3D berpose per orang terdeteksi

Nama tersebut muncul dalam metadata checkpoint dan nama berkas. Alias yang umum diterima di semua tempat yang menerima task dan dinormalisasi sebelum proses lain: detection dan det menjadi detect, keypoints menjadi pose, cls menjadi classify, deblur, denoise, dan super-resolution semuanya menjadi restore, sedangkan face-recognition dan reid menjadi embed. Nama yang tidak dikenal memunculkan error, bukan kembali ke default secara diam-diam.

segment, semantic, dan panoptic adalah tiga task berbeda, bukan tiga kata untuk hal yang sama. Instance mask, label per piksel, dan map gabungan thing-plus-stuff memiliki ground truth, metrik, dan kolom hasil berbeda.

Family model

Family adalah satu lineage arsitektur dengan kode pemuatan, preprocessing, dan postprocessing sendiri. Setiap family mendeklarasikan identifier FAMILY seperti yolo9, rfdetr, atau dfine, task yang didukung, serta resolusi input untuk setiap ukuran yang disediakan.

LibreYOLO() adalah factory, bukan kelas. Berdasarkan path, factory memuat berkas, mengidentifikasi family dari metadata checkpoint atau, jika gagal, dari kunci tensor itu sendiri, lalu mengembalikan instance model family tersebut. Karena itu, mengganti detektor hanya memerlukan perubahan satu baris: objek yang dihasilkan menyediakan antarmuka predict, train, val, dan export yang sama serta mengembalikan jenis Results yang sama.

Cantumkan family
# Task, ukuran, dan resolusi input untuk setiap family terdaftar.libreyolo models
Satu model
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO9t.pt") print(model.family, model.size, model.task)print(model.input_size)print(model.nb_classes, model.names[0])
Pilih task
from libreyolo import LibreYOLO # Alias dinormalisasi pada batas API: "keypoints" diselesaikan menjadi# "pose", "det" menjadi "detect", "semantic-segmentation" menjadi "semantic".model = LibreYOLO("LibreYOLO9t.pt", task="det")print(model.task)

Family yang melayani lebih dari satu task biasanya menerbitkan checkpoint terpisah per task, sering dengan kumpulan ukuran berbeda untuk masing-masing; beberapa family memakai satu artefak bersama untuk dua task runtime. Dalam kedua kasus, task yang didukung merupakan list tetap. Meminta task di luar list memunculkan error yang mencantumkan task didukung, bukan memuat pendekatan perkiraan.

List lengkap beserta benchmark per family dan bobot terbitan tersedia di semua model.

Ukuran

Ukuran adalah varian dalam family, ditulis sebagai kode huruf kecil yang ditempel langsung pada prefix family. Huruf yang umum adalah n untuk nano, t untuk tiny, s untuk small, m untuk medium, l untuk large, dan x untuk xlarge, tetapi kode bersifat khusus family dan beberapa family memakai hal lain: kode nama backbone seperti r50 atau r101 ketika ukuran adalah depth ResNet, kode compound-scaling seperti b0 hingga b3, atau nama yang mengidentifikasi satu checkpoint terbitan. YOLOv9 menggunakan c untuk compact ketika family lain memakai l.

Ukuran juga menetapkan resolusi input, dan pada family dengan beberapa task, resolusi dapat berbeda per task. Keduanya dibaca dari family, tidak pernah diasumsikan; libreyolo models mencetaknya.

Nama berkas checkpoint

Setiap berkas bobot terbitan mengikuti satu skema:

Libre<FAMILY><size>[-<task>].pt

Prefix family merupakan string tetap per family, ukuran memakai huruf kecil dan ditempel tanpa separator, sedangkan suffix task diawali tanda hubung. Deteksi tidak memakai suffix, mengikuti konvensi checkpoint YOLO sejak awal, sehingga LibreYOLO9t.pt adalah detektor dan LibreRFDETRn-seg.pt adalah model segmentation dari family yang sama.

TaskSuffix
detect
segment-seg
semantic-sem
panoptic-panoptic
pose-pose
classify-cls
gaze-gaze
obb-obb
point-point
depth-depth
edge-edge
normal-normal
restore-restore
matte-matte
ocr-ocr
embed-embed
mesh-mesh

Family tanpa task tanpa-suffix dapat mewajibkan suffix, sehingga nama tanpa suffix bukan checkpoint valid baginya. Family yang menerbitkan bobot hasil pelatihan pada dataset selain default menambahkan nama dataset sebagai suffix lanjutan, dan varian tersebut tetap menjadi bagian nama repositori tempat berkas diunduh.

Tiga tier berada di luar skema ini. Family promptable segmentation, family vision-language, dan detektor open-vocabulary tidak terdaftar ke factory checkpoint dan tidak menghasilkan berkas Libre<FAMILY><size>.pt. Prefix mereka menamai snapshot Hugging Face yang diunduh atau checkpoint promptable, dan kapitalisasi merek upstream sengaja dipertahankan di sana.

Cara task ditentukan

Ketika beberapa sinyal dapat menentukan task, semuanya diperiksa dalam urutan tetap dan sinyal pertama yang tersedia menang: argumen task yang diberikan, lalu task dalam metadata checkpoint, kemudian suffix task pada nama berkas, dan akhirnya task default family. Hasil diperiksa terhadap task yang didukung family sebelum model dibangun, sehingga ketidakcocokan gagal saat pemuatan, bukan menghasilkan output salah kemudian.

Tier dukungan

Family didaftarkan tepat ke satu tier. Tier adalah pernyataan tentang perhatian engineering, bukan akurasi: tier menjelaskan tempat fitur baru diterapkan lebih dahulu dan hal yang dijaga tetap berfungsi.

TingkatArtinya
UnggulanFitur dirancang dan divalidasi penuh pada GPU di sini terlebih dahulu
IntiDetektor inti yang dapat dilatih. Fitur mengikuti family unggulan dalam gelombang rilis yang sama
DidukungFamily pendukung yang dapat dilatih. Dijaga tetap hijau dalam CI, fitur diterapkan secara oportunistis
Hanya inferensiPrediksi, validasi, dan ekspor. Fitur pelatihan tidak berlaku
MuseumPameran beku. Hanya perbaikan bug
Tingkat saudaraAntarmuka produk terpisah dengan factory dan kontraknya sendiri

Setiap halaman model memuat tingkat family pada header. Dua family unggulan adalah YOLOv9 untuk detektor CNN dan RF-DETR untuk detektor transformer; mulailah dari sana kecuali ada alasan untuk memilih yang lain.

Hanya inferensi menyatakan yang tidak ada, yaitu loop pelatihan dalam LibreYOLO. Prediksi, validasi, dan ekspor jika didukung family tetap berfungsi. Memanggil train() pada family tersebut memunculkan NotImplementedError yang menyebutkan alasannya.

Diverifikasi dengan LibreYOLO v1.5.0.