YOLOv7

YOLOv7 adalah detektor satu tahap berbasis anchor yang head-nya menambahkan offset pengetahuan implisit yang dipelajari sebelum konvolusi akhir. LibreYOLO mendukung satu ukuran yang dipublikasikan untuk deteksi.

Task
detection
Ukuran
b at 640 px
Instalasi
pip install libreyolo
Tier dukungan
Didukung, sejak v. Model pendukung yang dapat dilatih: CI dijaga tetap lulus, fitur ditambahkan saat ada kesempatan.
Proyek upstream
YOLOv7 oleh MultimediaTechLab, MIT. Makalah, sumber
Lisensi
Kode MIT, bobot MIT. Penggunaan komersial

Instalasi

YOLOv7 tidak memerlukan komponen tambahan selain paket dasar.

bash
pip install libreyolo

Prediksi

Bobot diunduh dari Hugging Face saat pertama kali digunakan dan disimpan dalam cache lokal.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreYOLO7b.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
CLI
libreyolo predict model=LibreYOLO7b.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

Objek Results yang dikembalikan sama dengan yang dikembalikan setiap family, jadi mengganti detektor hanya memerlukan perubahan satu baris. conf menetapkan ambang batas confidence dan iou menetapkan ambang NMS yang diterapkan setelah head berbasis anchor didekode. Lihat prediksi untuk sumber, streaming, dan penanganan hasil.

Varian

LibreYOLO menyediakan satu ukuran, b. Upstream menerbitkan satu model YOLOv7, sehingga tidak ada ukuran lain untuk dipilih.

Pelatihan

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO7b.pt")model.train(data="my-dataset.yaml", epochs=300, imgsz=640, batch=16, lr0=0.01)
CLI
libreyolo train model=LibreYOLO7b.pt data=my-dataset.yaml \  epochs=300 imgsz=640 batch=16 lr0=0.01
Warm start dari model baru
from libreyolo import LibreYOLO7 # pretrained=True selalu memuat checkpoint LibreYOLO7b.pt yang dipublikasikan,# terlepas dari bobot yang digunakan untuk membuat instance ini. Membuat kelas# secara langsung, bukan melalui LibreYOLO(), dimulai tanpa bobot yang dimuat.model = LibreYOLO7(None, size="b")model.train(data="my-dataset.yaml", epochs=300, pretrained=True)

pretrained dibaca, berbeda dari argumen bernama sama yang tidak berpengaruh pada beberapa family lain di sini: berikan True untuk melakukan warm start dari checkpoint LibreYOLO7b.pt yang dipublikasikan (diunduh otomatis), atau path maupun nama untuk yang lain. Checkpoint terbitan tersebut memakai COCO 80 kelas, sehingga memintanya pada model yang sudah dibangun ulang untuk jumlah kelas berbeda akan membangun ulang model ke 80 kelas, memuatnya, lalu mentransfer setiap tensor dengan bentuk yang cocok ke jumlah head target setelah jumlah kelas dataset dibaca. resume=True tidak dapat digabungkan dengan pretrained. Jika dibiarkan pada default None, pelatihan berlanjut dari bobot yang digunakan saat model dibuat, atau dari inisialisasi acak jika tidak ada yang dimuat.

Jika pengaturan lain dibiarkan, pelatih berjalan selama 300 epoch pada lr0=0.01 dengan momentum SGD 0.937, warmup 3 epoch, serta assignment SimOTA dan tahap akhir tanpa augmentasi selama 15 epoch yang sama seperti YOLOX, disesuaikan untuk head berbasis anchor. Satu perbedaannya: YOLOX menambahkan penyempurnaan regresi kotak L1 selama epoch akhir tersebut, sedangkan v7 melewatinya karena loss SimOTA v7 tidak memiliki cabang L1 raw-offset untuk disempurnakan.

Lihat pelatihan untuk dataset, augmentasi, multi-GPU, dan logger.

Validasi

val() mengembalikan dictionary dengan key metrics/ yang mencakup presisi, recall, mAP 50, dan mAP 50-95, yang diukur terhadap dataset apa pun dalam format yang digunakan untuk pelatihan.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO7b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])
CLI
libreyolo val model=LibreYOLO7b.pt data=my-dataset.yaml

Ekspor

TaskONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
DetectionDetection to ONNX: didukungDetection to TorchScript: didukungDetection to ExecuTorch: didukungDetection to TensorRT: didukungDetection to OpenVINO: didukungDetection to Paddle: tidak didukungDetection to MNN: tidak didukungDetection to RKNN: tidak didukungDetection to ncnn: didukungDetection to TFLite: tidak didukungDetection to CoreML: tidak didukungDetection to Core AI: didukung

Artefak hasil ekspor dimuat kembali melalui LibreYOLO() berdasarkan sufiks berkasnya, sehingga berkas .onnx atau .engine berperilaku seperti checkpoint dan mengembalikan Results yang sama. Menjalankan graph pada runtime mandiri tanpa memasang LibreYOLO juga didukung, tetapi prapemrosesan dan pascapemrosesannya harus ditulis sendiri.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO7b.pt")model.export(format="onnx", imgsz=640)model.export(format="tensorrt", imgsz=640, half=True)
CLI
libreyolo export model=LibreYOLO7b.pt format=onnx imgsz=640libreyolo export model=LibreYOLO7b.pt format=tensorrt imgsz=640 half=True
Gunakan berkas hasil ekspor
from libreyolo import LibreYOLO, SAMPLE_IMAGE # Factory merutekan berdasarkan sufiks berkas, sehingga artefak hasil ekspor# dimuat seperti checkpoint lain dan mengembalikan objek Results yang sama.model = LibreYOLO("LibreYOLO7b.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)

Checkpoint

Setiap berkas bobot yang dipublikasikan untuk family ini.

BerkasInput (piksel)Lisensi bobot
Detection
LibreYOLO7b.pt640mit

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
YOLOv7, MultimediaTechLab
Lisensi upstream
MIT
Kode LibreYOLO
MIT
Bobot
MIT, dipublikasikan ulang di huggingface.co/LibreYOLO
Interpretasi
MIT is a permissive license, so these weights can be used in commercial and closed-source products. The one standing obligation is to keep the license text and the copyright notice, Kin-Yiu Wong and Hao-Tang Tsui, with any copy you redistribute. It places no condition on your own application code, and a model you train yourself on your own data is yours. The port follows the authors' MIT re-release of YOLOv7, not the GPL-3.0 WongKinYiu/yolov7 repository that carries the same model, so the permissive terms come from the source LibreYOLO actually derives from.

Sitasi

@inproceedings{wang2022yolov7,
      title={{YOLOv7}: Trainable Bag-of-Freebies Sets New State-of-the-Art for Real-Time Object Detectors},
      author={Wang, Chien-Yao and Bochkovskiy, Alexey and Liao, Hong-Yuan Mark},
      year={2023},
      booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
}

Disalin dari blok sitasi penulis di github.com/MultimediaTechLab/YOLO#citations.

Diverifikasi dengan LibreYOLO v1.5.0. Tabel dukungan, checkpoint, dan angka benchmark di halaman ini dihasilkan dari library yang telah dirilis dan bobot yang dipublikasikan, bukan ditulis manual.