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.
- Lisensi
- Kode MIT, bobot MIT. Penggunaan komersial
Instalasi
YOLOv7 tidak memerlukan komponen tambahan selain paket dasar.
pip install libreyoloPrediksi
Bobot diunduh dari Hugging Face saat pertama kali digunakan dan disimpan dalam cache lokal.
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)libreyolo predict model=LibreYOLO7b.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 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
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO7b.pt")model.train(data="my-dataset.yaml", epochs=300, imgsz=640, batch=16, lr0=0.01)libreyolo train model=LibreYOLO7b.pt data=my-dataset.yaml \ epochs=300 imgsz=640 batch=16 lr0=0.01from 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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO7b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreYOLO7b.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: didukung | Detection to TFLite: tidak didukung | Detection to CoreML: tidak didukung | Detection 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.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO7b.pt")model.export(format="onnx", imgsz=640)model.export(format="tensorrt", imgsz=640, half=True)libreyolo export model=LibreYOLO7b.pt format=onnx imgsz=640libreyolo export model=LibreYOLO7b.pt format=tensorrt imgsz=640 half=Truefrom 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.
| Berkas | Input (piksel) | Lisensi bobot |
|---|---|---|
| Detection | ||
| LibreYOLO7b.pt | 640 | 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
- YOLOv7, MultimediaTechLab
- Lisensi upstream
- MIT
- Sumber upstream
- github.com/MultimediaTechLab/YOLO
- 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.