DINO-DETR
DINO-DETR, yang dipublikasikan IDEA Research dengan nama DINO, memadukan pelatihan contrastive denoising dengan mixed query selection di atas sparse attention milik Deformable DETR. LibreYOLO menyediakan tiga ukuran untuk deteksi, khusus inferensi.
- Task
- detection
- Ukuran
- r50, r50s5, swinl at 800 px
- Instalasi
pip install libreyolo- Tier dukungan
- Hanya inferensi, sejak v. Hanya prediksi, validasi, dan ekspor. Fitur pelatihan tidak berlaku.
- Lisensi
- Kode Apache-2.0, bobot Apache-2.0. Penggunaan komersial
Instalasi
DINO-DETR tidak memerlukan extra opsional. Semua yang diimpornya sudah tersedia di instalasi dasar, memakai core multi-scale deformable attention pure-PyTorch yang sama dengan family Deformable DETR di LibreYOLO.
pip install libreyoloMemasang libreyolo[hub-kernels] bersifat opsional. Begitu paket kernels
tersedia, LibreYOLO mengambil kernel multi-scale deformable attention yang sudah
dikompilasi dari Hugging Face Hub saat runtime dan memakainya sebagai pengganti
core pure-PyTorch; LIBREYOLO_HUB_KERNELS=0 mematikannya kembali.
Prediksi
Bobot diunduh dari Hugging Face saat pertama kali dipakai lalu disimpan di cache lokal.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreDINODETRr50.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreDINODETRr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueObjek Results yang dikembalikan sama dengan yang dikembalikan setiap family,
jadi mengganti detektor dengan yang lain hanya butuh perubahan satu baris.
conf dan max_det menyaring query selection; iou tetap diterima demi
keseragaman API tetapi tidak berpengaruh, karena decoder-nya adalah set
predictor tanpa langkah NMS. Lihat
prediksi untuk source, streaming dan penanganan hasil.
Di LibreYOLO, DINO-DETR hanya untuk inferensi. Upstream melatihnya dengan
contrastive denoising dan Hungarian matching; resep itu tidak diimplementasikan
di sini, jadi train() memunculkan NotImplementedError.
Varian
Tiga checkpoint, semuanya pada resolusi input yang sama. r50 dan r50s5
memakai backbone ResNet-50 yang sama dan berbeda pada jumlah skala feature map
yang masuk ke decoder, empat berbanding lima. swinl mengganti backbone-nya
dengan Swin-L dan juga mengambil lima skala.
Validasi
val() mengembalikan dictionary berisi key metrics/ yang mencakup presisi,
recall, mAP 50 dan mAP 50-95, diukur terhadap dataset apa pun dalam format yang
dipakai saat pelatihan.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDINODETRr50.pt") # val() mengembalikan dict biasa, bukan objekmetrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])print(metrics["metrics/precision"], metrics["metrics/recall"])libreyolo val model=LibreDINODETRr50.pt data=my-dataset.yamlEkspor
| Task | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: didukung | Detection to TorchScript: didukung | Detection to ExecuTorch: didukung | Detection to TensorRT: didukung | Detection to OpenVINO: didukung | Detection to Paddle: tidak didukung | Detection to MNN: tidak didukung | Detection to RKNN: tidak didukung | Detection to ncnn: tidak didukung | Detection to TFLite: tidak didukung | Detection to CoreML: tidak didukung | Detection to Core AI: tidak didukung |
Artefak hasil ekspor dimuat kembali lewat LibreYOLO() berdasarkan sufiks
berkasnya, jadi berkas .onnx atau .engine berperilaku seperti checkpoint dan
mengembalikan Results yang sama. Ekspor mencantumkan argumen
yang diterima setiap format.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDINODETRr50.pt")model.export(format="onnx", imgsz=800)model.export(format="tensorrt", imgsz=800, half=True)libreyolo export model=LibreDINODETRr50.pt format=onnx imgsz=800libreyolo export model=LibreDINODETRr50.pt format=tensorrt imgsz=800 half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # Factory-nya memilih berdasarkan sufiks berkas, jadi artefak hasil ekspor# dimuat seperti checkpoint biasa dan mengembalikan objek Results yang sama.model = LibreYOLO("LibreDINODETRr50.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoint
Semua berkas bobot yang dipublikasikan untuk family ini.
| Berkas | Input (piksel) | Lisensi bobot |
|---|---|---|
| Detection | ||
| LibreDINODETRr50.pt | 800 | apache-2.0 |
| LibreDINODETRr50s5.pt | 800 | apache-2.0 |
| LibreDINODETRswinl.pt | 800 | apache-2.0 |
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
- DINO-DETR, IDEA Research
- Lisensi upstream
- Apache-2.0
- Sumber upstream
- github.com/IDEA-Research/DINO
- Kode LibreYOLO
- MIT
- Bobot
- Apache-2.0, dipublikasikan ulang di huggingface.co/LibreYOLO
- Interpretasi
- Apache-2.0 is a permissive license, so these weights can be used in commercial and closed-source products. It asks you to keep its license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. It places no obligation on your own application code, and weights you train yourself on your own data are yours. The three checkpoints come from the authors' Google Drive release rather than a Hugging Face model card, and the upstream repository does not attach a license to the checkpoint files individually, so the redistribution basis is the repository-level Apache-2.0 declaration rather than a checkpoint-specific grant.
Ketiga checkpoint resminya berasal dari folder rilis Google Drive milik para penulis, bukan dari model card Hugging Face. Repositori upstream mendeklarasikan Apache-2.0 di tingkat repositori tetapi tidak melampirkan berkas lisensi maupun metadata lisensi pada checkpoint itu sendiri, jadi dasar redistribusinya adalah deklarasi tingkat repositori tersebut, bukan pemberian lisensi khusus per checkpoint. Setiap mirror LibreYOLO menyertakan teks lisensi Apache-2.0 upstream secara verbatim beserta catatan yang menjelaskan hal ini.
Sitasi
@misc{zhang2022dino,
title={DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection},
author={Hao Zhang and Feng Li and Shilong Liu and Lei Zhang and Hang Su and Jun Zhu and Lionel M. Ni and Heung-Yeung Shum},
year={2022},
eprint={2203.03605},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
@inproceedings{li2022dn,
title={Dn-detr: Accelerate detr training by introducing query denoising},
author={Li, Feng and Zhang, Hao and Liu, Shilong and Guo, Jian and Ni, Lionel M and Zhang, Lei},
booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
pages={13619--13627},
year={2022}
}
@inproceedings{
liu2022dabdetr,
title={{DAB}-{DETR}: Dynamic Anchor Boxes are Better Queries for {DETR}},
author={Shilong Liu and Feng Li and Hao Zhang and Xiao Yang and Xianbiao Qi and Hang Su and Jun Zhu and Lei Zhang},
booktitle={International Conference on Learning Representations},
year={2022},
url={https://openreview.net/forum?id=oMI9PjOb9Jl}
}Disalin dari blok sitasi penulis di github.com/IDEA-Research/DINO#bibtex.