FCOS
FCOS détecte les objets pixel par pixel au lieu de s'appuyer sur un ensemble d'ancres prédéfinies, en prédisant une boîte et un score de centerness à chaque position de la carte de caractéristiques. LibreYOLO porte l'implémentation torchvision pour la détection.
- Tâches
- detection
- Tailles
- r50 at 800 px
- Installer
pip install libreyolo- Niveau de support
- Inférence uniquement, depuis v. Prédiction, validation et export uniquement. Les fonctionnalités d'entraînement ne s'appliquent pas.
- Licences
- Code BSD-3-Clause, poids BSD-3-Clause. Usage commercial
Installation
FCOS ne demande aucun extra optionnel. Tout ce qu'il importe fait partie de l'installation de base.
pip install libreyoloPrédire
Les poids sont téléchargés depuis Hugging Face au premier usage, puis mis en cache localement.
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreFCOSr50.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreFCOSr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=TrueL'objet Results renvoyé est celui que renvoient toutes les familles, si bien
que passer à un autre détecteur ne demande qu'une ligne de changement. Appeler
le modèle sans argument de seuil applique les valeurs par défaut publiées par
FCOS, conf=0.2, iou=0.6 et max_det=100 ; passez l'un des trois pour les
remplacer. FCOS conserve une étape finale de NMS sur ses prédictions par pixel.
Voir la prédiction pour les sources, le streaming et le
traitement des résultats.
Variantes
Une seule taille : ResNet-50 avec une pyramide de caractéristiques, la seule variante que cette famille reconnaît.
Valider
val() renvoie un dictionnaire de clés metrics/ couvrant la précision, le
rappel, la mAP 50 et la mAP 50-95, mesurées sur n'importe quel dataset dans le
format avec lequel vous avez entraîné.
from libreyolo import LibreYOLO model = LibreYOLO("LibreFCOSr50.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreFCOSr50.pt data=my-dataset.yamlExporter
| Tâche | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX : pris en charge | Detection to TorchScript : pris en charge | Detection to ExecuTorch : non pris en charge | Detection to TensorRT : non pris en charge | Detection to OpenVINO : pris en charge | Detection to Paddle : non pris en charge | Detection to MNN : non pris en charge | Detection to RKNN : non pris en charge | Detection to ncnn : non pris en charge | Detection to TFLite : non pris en charge | Detection to CoreML : non pris en charge | Detection to Core AI : non pris en charge |
FCOS s'exporte vers ONNX, TorchScript et OpenVINO. FCOS préserve le rapport
d'aspect de la source avant l'exécution du graphe, si bien que LibreYOLO force
dynamic=True pour les chemins ONNX et OpenVINO quelle que soit la valeur
passée, afin de garder le graphe valide pour des formes d'entrée complétées par
padding. Un fichier .onnx exporté se recharge via LibreYOLO() d'après son
extension et renvoie le même Results.
from libreyolo import LibreYOLO model = LibreYOLO("LibreFCOSr50.pt")model.export(format="onnx", imgsz=800)model.export(format="torchscript", imgsz=800)libreyolo export model=LibreFCOSr50.pt format=onnx imgsz=800from libreyolo import LibreYOLO, SAMPLE_IMAGE # La factory s'appuie sur l'extension du fichier, donc un artefact# exporté se charge comme un checkpoint et renvoie le même Results.model = LibreYOLO("LibreFCOSr50.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoints
Tous les fichiers de poids publiés de cette famille.
| Fichier | Entrée (px) | Licence des poids |
|---|---|---|
| Detection | ||
| LibreFCOSr50.pt | 800 | bsd-3-clause |
Tous les fichiers ci-dessus sont actuellement disponibles dans l<link>organisation LibreYOLO</link> et sont téléchargés à la première utilisation.
Licence
Vérifiez la licence dans le dépôt Hugging Face des poids précis que vous téléchargez. Chaque checkpoint de l<link>organisation LibreYOLO</link> en possède une, et elles ne sont pas toujours identiques au sein dune même famille. Ce dépôt fait autorité ; le résumé ci-dessous décrit les conditions applicables lors de la dernière vérification de cette page.
Ceci décrit les licences concernées et ne constitue pas un conseil juridique. Si la réponse a une importance commerciale, lisez vous-même les licences et consultez votre propre avocat.
- Travail d'origine
- FCOS, PyTorch
- Licence du projet d'origine
- BSD-3-Clause
- Source du projet d'origine
- github.com/pytorch/vision
- Code de LibreYOLO
- MIT
- Poids
- BSD-3-Clause, republiés sur huggingface.co/LibreYOLO
- Interprétation
- BSD-3-Clause is a permissive license, so this code can be used in commercial and closed-source products with no obligation on your own application code. It asks only that you keep the copyright notice and disclaimer with any copy you redistribute, and it carries no patent grant. The published checkpoint used for parity testing is not distributed in the LibreYOLO source tree: torchvision's own documentation notes that a pretrained model's terms may depend on its training data, so the Hugging Face mirror ships the BSD text on that implied basis and repeats the caveat rather than issuing an explicit checkpoint-specific grant.
Citation
@inproceedings{tian2019fcos,
title = {{FCOS}: Fully Convolutional One-Stage Object Detection},
author = {Tian, Zhi and Shen, Chunhua and Chen, Hao and He, Tong},
booktitle = {Proc. Int. Conf. Computer Vision (ICCV)},
year = {2019}
}
@article{tian2021fcos,
title = {{FCOS}: A Simple and Strong Anchor-free Object Detector},
author = {Tian, Zhi and Shen, Chunhua and Chen, Hao and He, Tong},
booktitle = {IEEE T. Pattern Analysis and Machine Intelligence (TPAMI)},
year = {2021}
}Copié depuis le bloc de citation des auteurs sur github.com/tianzhi0549/FCOS#citations.