FOMO
FOMO adalah pelokal titik berbasis grid: setiap sel pada grid beresolusi rendah diklasifikasikan sebagai background atau pusat objek, tanpa regresi bounding box. LibreYOLO mendukungnya untuk task titik.
- Task
- point
- Ukuran
- Instalasi
pip install libreyolo- Tier dukungan
- Didukung, sejak v. Model pendukung yang dapat dilatih: CI dijaga tetap lulus, fitur ditambahkan saat ada kesempatan.
- Lisensi
- Kode MIT, bobot MIT. Penggunaan komersial
Instalasi
FOMO tidak memerlukan extra selain paket dasar.
pip install libreyoloPrediksi
Tidak seperti semua family lain di situs ini, bobot LibreFOMO tidak diunduh
otomatis. LibreYOLO("LibreFOMOs-point.pt") mencari berkas tersebut di disk
dan memunculkan ValueError yang menyebutkan namanya alih-alih mengambilnya
dari Hugging Face. Unduh checkpoint dari organisasi LibreYOLO
lebih dulu dan muat berdasarkan path lokal, atau latih sendiri (lihat Pelatihan
di bawah).
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Bobot LibreFOMO tidak diunduh otomatis (lihat Checkpoint di bawah).# Arahkan ini ke checkpoint yang telah diunduh secara lokal.model = LibreYOLO("./LibreFOMOs-point.pt")result = model(SAMPLE_IMAGE, save=True) for point in result.points: print(point.cls, point.conf, point.xy)libreyolo predict model=./LibreFOMOs-point.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueHasil memuat payload points, bukan boxes. Setiap baris adalah
x, y, class, confidence, yang tersedia sebagai result.points.data atau
melalui accessor .xy, .xyn, .cls, dan .conf. Tidak ada ambang batas
iou untuk ditetapkan karena tidak ada box yang perlu di-suppress.
predict(..., nms_radius=1) mengontrol jarak minimum dalam jumlah sel grid agar
dua deteksi sama-sama bertahan, dan nama berkas harus memuat akhiran task FOMO
-point agar dikenali loader. Lihat prediksi untuk sumber,
streaming, dan penanganan hasil.
Varian
Tiga ukuran, s, m, dan l, menggunakan backbone bergaya MobileNetV2 yang
makin lebar pada resolusi input tetap yang juga makin besar, masing-masing di
belakang satu head klasifikasi 1x1. Family ini tidak memiliki tabel benchmark
di sini. Ukuran berkas checkpoint dalam tabel di bawah adalah indikator
per ukuran paling jelas yang saat ini dipublikasikan.
Pelatihan
from libreyolo import LibreYOLO model = LibreYOLO("./LibreFOMOs-point.pt")model.train( data="my-dataset.yaml", epochs=40, batch=32, lr0=3e-4,)# imgsz harus diteruskan: CLI memakai nilai default 640, sedangkan checkpoint s# hanya menerima resolusi native 96.libreyolo train model=./LibreFOMOs-point.pt data=my-dataset.yaml imgsz=96 epochs=40 batch=32 lr0=3e-4imgsz bukan pilihan bebas. Nilainya default ke resolusi native checkpoint
yang dimuat, dan meneruskan nilai lain memunculkan ValueError yang menyebutkan
ukuran yang diharapkan. Ukurannya adalah 96 untuk s, 192 untuk m, dan 224
untuk l. CLI menetapkan imgsz default ke 640, sehingga perintah
libreyolo train harus mengaturnya secara eksplisit agar cocok dengan
checkpoint.
Jika pengaturan lain dibiarkan apa adanya, trainer berjalan selama 40 epoch
dengan batch 32 memakai Adam pada lr0=3e-4, tanpa weight decay, dan kelas
foreground diberi bobot 100 kali kelas background dalam loss cross-entropy per
sel karena hampir setiap sel grid adalah background dalam adegan biasa. EMA dan
mixed precision sama-sama nonaktif secara default. Augmentasi geometris maupun
warna yang digunakan di bagian lain LibreYOLO juga tidak diterapkan: mosaic,
mixup, HSV jitter, flip, rotasi, translasi, dan shear semuanya nol.
Ini adalah jalur yang digunakan untuk melatih checkpoint LibreFOMO yang dipublikasikan, dari nol pada COCO.
Lihat pelatihan untuk dataset dan logger.
Validasi
val() mengarahkan eksekusi ke validator tingkat grid yang dibuat untuk family
ini. Di samping key point matching metrics/precision, metrics/recall, dan
metrics/mAP@ yang sama dengan task titik lain, validator menyapu ambang batas
confidence dan nilai nms_radius, lalu memublikasikan kombinasi F1 terbaik pada
metrics/grid_F1, metrics/grid_precision, metrics/grid_recall, dan
metrics/grid_mean_distance. Ambang batas dan radius yang menghasilkannya
tersedia pada decode/threshold dan decode/nms_radius.
from libreyolo import LibreYOLO model = LibreYOLO("./LibreFOMOs-point.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/grid_F1"])print(metrics["metrics/grid_precision"], metrics["metrics/grid_recall"])libreyolo val model=./LibreFOMOs-point.pt data=my-dataset.yamlEkspor
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| point | point to ONNX: didukung | point to TorchScript: didukung | point to ExecuTorch: didukung | point to TensorRT: didukung | point to OpenVINO: didukung | point to Paddle: tidak didukung | point to MNN: tidak didukung | point to RKNN: tidak didukung | point to ncnn: didukung | point to TFLite: tidak didukung | point to CoreML: tidak didukung | point to Core AI: didukung |
Artefak hasil ekspor dapat dimuat kembali melalui LibreYOLO() berdasarkan
akhiran berkasnya, sehingga berkas .onnx atau .engine berperilaku seperti
checkpoint dan mengembalikan Results yang sama. Menjalankan graph pada runtime
polos tanpa LibreYOLO juga didukung, tetapi preprocessing dan postprocessing
harus ditulis sendiri.
from libreyolo import LibreYOLO model = LibreYOLO("./LibreFOMOs-point.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=./LibreFOMOs-point.pt format=onnxfrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Factory merutekan berdasarkan akhiran berkas, sehingga artefak hasil ekspor dimuat# seperti checkpoint lain dan mengembalikan objek Results yang sama.model = LibreYOLO("./LibreFOMOs-point.onnx")result = model(SAMPLE_IMAGE) print(result.points.xy)Checkpoint
Semua berkas bobot yang dipublikasikan untuk family ini. Tidak satu pun diunduh
secara otomatis. Ambil berkas yang diinginkan dari halaman Hugging Face yang
ditautkan dan teruskan path lokalnya ke LibreYOLO().
| Berkas | Input (piksel) | Lisensi bobot |
|---|---|---|
| point | ||
| LibreFOMOs-point.pt | mit | |
| LibreFOMOm-point.pt | mit | |
| LibreFOMOl-point.pt | mit | |
Setiap berkas di atas saat ini tersedia di organisasi LibreYOLO dan diunduh saat pertama kali digunakan.
Lisensi
Periksa lisensi di repositori Hugging Face untuk bobot tertentu yang diunduh. Setiap checkpoint di organisasi LibreYOLO memiliki lisensi, dan lisensinya tidak selalu sama dalam satu family. Repositori tersebut adalah sumber resmi. Ringkasan di bawah menjelaskan ketentuan yang berlaku saat halaman ini terakhir diverifikasi.
Ini adalah deskripsi lisensi yang terlibat, bukan nasihat hukum. Jika jawabannya penting secara komersial, baca sendiri lisensinya dan mintalah nasihat dari penasihat hukum Anda.
- Karya asli
- FOMO (Faster Objects, More Objects), Edge Impulse
- Lisensi upstream
- MIT
- Sumber upstream
- docs.edgeimpulse.com/docs/edge-impulse-studio/learning-blocks/object-detection/fomo-object-detection-for-constrained-devices
- Kode LibreYOLO
- MIT
- Bobot
- MIT, dipublikasikan ulang di huggingface.co/LibreYOLO
- Interpretasi
- FOMO is a technique Edge Impulse introduced through a blog post and its product documentation, not a code release, so there is no upstream repository or license to inherit. LibreYOLO's architecture is an original MobileNetV2-style reimplementation of the published description, and the LibreFOMO checkpoints are trained from scratch on COCO, so both the code and these weights are MIT, LibreYOLO's own. They are also not auto-downloaded: LibreYOLO("LibreFOMOs-point.pt") looks for that file locally and raises rather than fetching it, so get the checkpoint from the Hugging Face repository first. The name FOMO and the technique it describes remain Edge Impulse's.
Tidak ada repository kode upstream untuk FOMO yang dapat ditautkan. Edge Impulse menjelaskan teknik ini melalui posting blog dan dokumentasi produknya, tetapi belum merilis kode pelatihan atau inferensi FOMO. Arsitektur dan pelatihan di sini adalah implementasi LibreYOLO sendiri atas deskripsi yang dipublikasikan, dan checkpoint LibreFOMO yang dipublikasikan dilatih dari nol pada COCO. Karena itu, kode dan bobot ini sama-sama berlisensi MIT milik LibreYOLO. Nama FOMO dan teknik yang dijelaskannya tetap milik Edge Impulse.