Dome-DETR
Spesialis objek sangat kecil yang dibangun di atas D-FINE: head kepadatan menentukan lokasi objek, attention encoder dibatasi pada window yang memuatnya, dan jumlah query ditentukan dari kepadatan tersebut alih-alih dibuat tetap. LibreYOLO mendukungnya untuk deteksi.
- Task
- detection
- Ukuran
- s, m, l at 800 px
- Instalasi
pip install libreyolo- Tier dukungan
- Didukung, sejak v1.5.0. Model pendukung yang dapat dilatih: CI dijaga tetap lulus, fitur ditambahkan saat ada kesempatan.
- Lisensi
- Kode Apache-2.0, bobot unclear, not redistributed. Penggunaan komersial
Instalasi
Dome-DETR tidak memerlukan extra opsional. Semua yang diimpornya tersedia dalam instalasi dasar.
pip install libreyoloPrediksi
Tidak ada yang dapat diunduh otomatis. LibreYOLO tidak menghosting bobot ini, sehingga alurnya adalah mengambil checkpoint upstream, mengonversinya satu kali, lalu memuat berkas hasil konversi berdasarkan path. Lisensi menjelaskan alasannya.
# LibreYOLO tidak menghosting bobot Dome-DETR, sehingga checkpoint# diambil dari repository upstream dan dikonversi satu kali.hf download RicePasteM/Dome-DETR --include 'best_ckpts_dome_2026/*' \ --local-dir dome-ckpts python weights/convert_domedetr_weights.py \ dome-ckpts/best_ckpts_dome_2026/dome-s-visdrone_converted.pth \ LibreDOMEDETRs-visdrone.pt --size s --variant visdronefrom libreyolo import LibreYOLO # Gunakan path lokal, bukan nama polos. Tidak ada yang diunduh untuk family ini.model = LibreYOLO("LibreDOMEDETRs-visdrone.pt")result = model("drone-frame.jpg", save=True) for box in result.boxes: print(result.names[int(box.cls)], box.conf, box.xyxy)libreyolo predict model=LibreDOMEDETRs-visdrone.pt source=drone-frame.jpg save=Truefrom libreyolo import LibreYOLO # Tidak ada checkpoint COCO, sehingga kelas berasal dari dataset yang dipakai# untuk melatih bobot dan dibaca dari metadata checkpoint.aitod = LibreYOLO("LibreDOMEDETRs-aitod.pt")print(aitod.model.names) # 9 kelas AI-TOD-V2 visdrone = LibreYOLO("LibreDOMEDETRs-visdrone.pt")print(visdrone.model.names) # 12 kelas VisDroneObjek Results yang dikembalikan sama seperti yang dikembalikan setiap family,
sehingga mengganti detector hanya memerlukan perubahan satu baris. conf dan
max_det memfilter pemilihan query. iou diterima demi paritas API, tetapi
tidak berpengaruh karena decoder adalah set predictor tanpa langkah NMS. Lihat
prediksi untuk sumber, streaming, dan penanganan hasil.
Dua kemampuan dinonaktifkan untuk family ini. Capture CUDA graph dinonaktifkan karena jumlah query PAQI bergantung pada data, sehingga bentuk forward pass berubah dari satu gambar ke gambar lain. Perubahan seperti ini tidak dapat ditampung oleh graph capture. Augmentasi waktu pengujian berjalan pada satu ukuran persegi tetap, sehingga permintaan TTA multi-scale tidak berpengaruh.
Varian
Ada tiga ukuran, s, m, dan l, semuanya pada 800 kali 800. Ukuran memilih backbone, sedangkan dataset asal bobot memilih kedalaman decoder dan anggaran query, sehingga kode ukuran saja tidak mengidentifikasi sebuah graph. Bobot AI-TOD-V2 memilih antara 300 dan 1500 query per gambar, bobot VisDrone antara 250 dan 500, dan model large menjalankan empat lapisan decoder pada AI-TOD-V2 dibandingkan dengan enam pada VisDrone.
Dome-DETR adalah D-FINE dengan tiga tambahan. DeFE memprediksi peta kepadatan. MWAS menggunakan peta tersebut untuk membatasi attention encoder pada window yang benar-benar memuat objek, alih-alih melakukan attention di semua tempat. PAQI menentukan ukuran set query dari kepadatan yang sama, bukan mendekode 300 query tetap. Peningkatan terpusat pada objek yang paling kecil dan menyempit saat ukurannya bertambah. Ablation upstream sendiri mengubah AP pada objek yang sangat kecil dari 14.0 menjadi 17.8, sedangkan AP pada objek sedang hanya berubah dari 45.4 menjadi 46.4. Perlakukan model ini sebagai pendamping D-FINE untuk gambar udara, drone, dan remote sensing, bukan sebagai penggantinya.
LibreYOLO tidak memublikasikan baris benchmark untuk family ini karena tidak ada checkpoint yang dipublikasikan untuk diukur.
Pelatihan
Dome-DETR dapat dilatih. Pelatihan menjalankan objective upstream secara penuh: loss D-FINE ditambah supervisi kepadatan dan jumlah DeFE, dengan query padding yang dikeluarkan dari term klasifikasi serta mask attention denoising per gambar agar padding dari satu gambar tidak bocor ke gambar lain.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDOMEDETRs-visdrone.pt")model.train(data="my-dataset.yaml", epochs=160, imgsz=800, batch=4, lr0=2e-4)libreyolo train model=LibreDOMEDETRs-visdrone.pt data=my-dataset.yaml \ epochs=160 imgsz=800 batch=4 lr0=2e-4libreyolo train model=LibreDOMEDETRs-visdrone.pt data=my-dataset.yaml \ epochs=160 device=0,1 batch=4Konfigurasi mewarisi resep D-FINE dan mengubah hal yang diperlukan MWAS.
imgsz adalah 800, lr0 adalah 2e-4, grup parameter backbone diskalakan
dengan backbone_lr_mult=0.1, dan multi_scale dipaksa nonaktif karena window
MWAS mengharuskan input tetap habis dibagi stride 8. Nilai default batch
adalah 4, bukan 16 seperti D-FINE. PAQI mengisi setiap batch hingga selebar
anggota terlebarnya, sehingga penggunaan memori mengikuti gambar tersibuk dalam
batch, bukan rata-ratanya.
Ada satu batasan akurasi yang perlu dinyatakan dengan jelas. Upstream melatih
selama 160 epoch pada MultiStepLR(milestones=[80, 120], gamma=0.8), sedangkan
nilai default ini menjalankan schedule flat-cosine D-FINE selama 160 epoch yang
sama. Schedule tersebut belum direproduksi di sini, begitu pula angka AP dari
makalah. Karena itu, baca angka tersebut sebagai hasil penulis upstream, bukan
janji bahwa resep ini akan mencapainya. Gunakan schedule upstream jika tujuannya
adalah mencocokkan makalah.
Lihat pelatihan untuk dataset, augmentasi, multi-GPU, dan logger.
Validasi
val() mengembalikan dictionary yang menggunakan nama metrik sebagai key dan
mencetak hasil per kelas saat verbose dibiarkan aktif.
from libreyolo import LibreYOLO model = LibreYOLO("LibreDOMEDETRs-visdrone.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreDOMEDETRs-visdrone.pt data=my-dataset.yamlValidasi berjalan terhadap dataset Anda sendiri dalam format yang digunakan saat pelatihan. Gate validasi COCO milik library tidak berlaku di sini karena tidak ada checkpoint COCO untuk family ini yang dapat diukur terhadapnya.
Ekspor
Ekspor tidak didukung untuk format apa pun, dan permintaan ekspor akan memunculkan error alih-alih menghasilkan berkas.
Penyebabnya adalah PAQI. Komponen ini menentukan jumlah query per gambar dari proposal yang difilter berdasarkan kepadatan dan loop suppression adaptif kepadatan yang greedy, sehingga panjang output decoder menjadi properti input, bukan graph. Tracing memasukkan jumlah apa pun yang kebetulan dihasilkan gambar tracing, sehingga menciptakan artefak yang diam-diam mengembalikan hasil salah untuk setiap gambar lain. Formulasi statis harus menguraikan suppression itu untuk seluruh 250 hingga 1500 kandidat. Mengubahnya menjadi top-k tetap justru akan menghapus recall objek sangat kecil yang menjadi tujuan family ini. Jika memerlukan detection transformer yang dapat diekspor, gunakan D-FINE.
Checkpoint
Tidak ada yang dapat dicantumkan. LibreYOLO tidak memublikasikan bobot Dome-DETR,
dan nama dengan bentuk LibreDOMEDETR<size>-<dataset>.pt tidak akan mengarah ke
unduhan.
Upstream memublikasikan enam checkpoint, yaitu s, m, dan l untuk masing-masing
dari dua dataset: AI-TOD-V2 dengan 9 kelas dan VisDrone dengan 12 kelas. Tidak
ada checkpoint COCO, sehingga nama berkas kanonis selalu memuat akhiran dataset,
dan nama kelas disimpan dalam metadata checkpoint, bukan berasal dari konstanta
family. Meminta LibreDOMEDETRs.pt tanpa akhiran langsung memunculkan pesan yang
menyebutkan dua nama berkas sebenarnya dan perintah konversinya, alih-alih
mencoba unduhan yang akan menghasilkan 404.
weights/convert_domedetr_weights.py melakukan konversi. Skrip ini membangun
ulang graph LibreYOLO, memuat tensor upstream ke dalamnya, dan menolak menulis
apa pun jika satu key saja hilang, tidak diharapkan, atau memiliki bentuk yang
salah. Dengan demikian, berkas hasil konversi merupakan kecocokan persis atau
tidak dibuat sama sekali. Arahkan skrip ke .pth upstream serta teruskan ukuran
dan varian:
python weights/convert_domedetr_weights.py \
dome-ckpts/best_ckpts_dome_2026/aitod-s-best.pth \
LibreDOMEDETRs-aitod.pt --size s --variant aitodUntuk kesetiaan numerik, weights/parity_domedetr.py membandingkan port ini
dengan implementasi upstream pada keenam checkpoint dan melaporkan
max_abs_diff == 0.0 untuk pred_logits maupun pred_boxes, setelah lebih
dulu memeriksa mask window MWAS bit demi bit, kemudian secara terpisah
membandingkan setiap term loss dengan criterion upstream. Perjelas cakupannya:
ini adalah skrip manual yang memerlukan checkout upstream dan checkpoint yang
dipublikasikan tersedia di disk, lalu dijalankan secara manual. Skrip ini bukan
bagian dari continuous integration dan tidak ada job CI yang mereproduksinya.
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
- Dome-DETR, The Dome-DETR Authors
- Lisensi upstream
- unclear, not redistributed
- Sumber upstream
- github.com/RicePasteM/Dome-DETR
- Kode LibreYOLO
- MIT
- Bobot
- unclear, not redistributed, didistribusikan oleh penulisnya. LibreYOLO tidak menghosting atau mencerminkannya.
- Interpretasi
- The code and the weights part company here. The upstream repository is Apache-2.0, permissive and safe for commercial and closed-source use, and LibreYOLO's own port is MIT, so nothing restricts the architecture or the training code. The weights are the unresolved part: the upstream model card carries no license field in its metadata, and its prose states that the project is Apache-2.0 while also restricting the material to academic research purposes only. Those two readings do not agree, and the stricter one is not a grant to redistribute, so LibreYOLO mirrors nothing for this family and hosts no checkpoint. Download the six upstream checkpoints yourself and convert them with weights/convert_domedetr_weights.py, and read the upstream terms before using them for anything commercial. Weights you train yourself on your own data derive from no upstream checkpoint and are yours.
Bobot menjadi alasan family ini tidak dicerminkan. Model card upstream tidak memiliki field lisensi dalam metadatanya, sedangkan prosanya menyatakan bahwa proyek ini berlisensi Apache-2.0 sambil membatasi materi hanya untuk tujuan penelitian akademis. Kedua tafsir itu tidak sejalan, dan tafsir yang lebih ketat bukanlah izin redistribusi. Karena itu, LibreYOLO menautkan repository upstream alih-alih menyalin berkas, sambil menunggu klarifikasi. Pertimbangan yang sama juga mengatur YOLO-NAS di sini.
Kode adalah persoalan terpisah dengan jawaban yang lebih jelas. Repository upstream berlisensi Apache-2.0, port LibreYOLO berlisensi MIT, dan bobot yang Anda latih sendiri pada data Anda tetap menjadi milik Anda.
Sitasi
Dome-DETR dipublikasikan pada ACM Multimedia 2025 dengan judul "Dome-DETR: DETR with Density-Oriented Feature-Query Manipulation for Efficient Tiny Object Detection". Preprint tersedia di arxiv.org/abs/2505.05741. Penulis tidak memublikasikan blok BibTeX dalam repository mereka, sehingga tidak ada blok yang direproduksi di sini alih-alih dirangkai secara manual.