FCOS
FCOS detecta objetos píxel a píxel en lugar de apoyarse en un conjunto de anchor boxes predefinidos, y predice un box y una puntuación de centerness en cada posición del mapa de características. LibreYOLO porta la implementación de torchvision para detección.
- Tareas
- detection
- Tamaños
- r50 at 800 px
- Instalación
pip install libreyolo- Nivel de compatibilidad
- Solo inferencia, desde v. Solo permite predecir, validar y exportar. Las funciones de entrenamiento no se aplican.
- Licencias
- Código BSD-3-Clause, pesos BSD-3-Clause. Uso comercial
Instalación
FCOS no necesita ningún extra opcional. Todo lo que importa está en la instalación base.
pip install libreyoloPredicción
Los pesos se descargan de Hugging Face en el primer uso y se guardan en la caché local.
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=TrueEl objeto Results devuelto es el mismo que devuelven todas las familias, así
que cambiar a otro detector es un cambio de una línea. Llamar al modelo sin
argumentos de umbral aplica los valores por defecto publicados por el propio
FCOS, conf=0.2, iou=0.6 y max_det=100; pasa cualquiera de los tres para
sobrescribirlos. FCOS mantiene un paso final de NMS sobre sus predicciones por
píxel. Consulta predicción para fuentes, streaming y manejo de
resultados.
Variantes
Un solo tamaño: ResNet-50 con una pirámide de características, la única variante que reconoce esta familia.
Validación
val() devuelve un diccionario de claves metrics/ que cubren precisión,
recall, mAP 50 y mAP 50-95, medidas contra cualquier dataset en el formato con
el que entrenaste.
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.yamlExportación
| Tarea | ONNX | TorchScript | ExecuTorch | TensorRT | OpenVINO | Paddle | MNN | RKNN | ncnn | TFLite | CoreML | Core AI |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Detection | Detection to ONNX: compatible | Detection to TorchScript: compatible | Detection to ExecuTorch: no compatible | Detection to TensorRT: no compatible | Detection to OpenVINO: compatible | Detection to Paddle: no compatible | Detection to MNN: no compatible | Detection to RKNN: no compatible | Detection to ncnn: no compatible | Detection to TFLite: no compatible | Detection to CoreML: no compatible | Detection to Core AI: no compatible |
FCOS exporta a ONNX, TorchScript y OpenVINO. FCOS conserva la relación de
aspecto de la fuente antes de que se ejecute el grafo, así que LibreYOLO fuerza
dynamic=True en las rutas de ONNX y OpenVINO independientemente de lo que se
pase, para mantener el grafo válido con formas de entrada con padding. Un
archivo .onnx exportado se vuelve a cargar con LibreYOLO() según la
extensión del archivo y devuelve el mismo 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 factoría enruta según la extensión del archivo, así que un# artefacto exportado se carga como cualquier checkpoint y devuelve el# mismo objeto Results.model = LibreYOLO("LibreFCOSr50.onnx")result = model(SAMPLE_IMAGE) print(result.boxes.xyxy)Checkpoints
Todos los archivos de pesos publicados de esta familia.
| Archivo | Entrada (px) | Licencia de los pesos |
|---|---|---|
| Detection | ||
| LibreFCOSr50.pt | 800 | bsd-3-clause |
Todos los archivos anteriores existen hoy en la organización de LibreYOLO y se descargan la primera vez que se usan.
Licencia
Comprueba la licencia en el repositorio de Hugging Face de los pesos concretos que descargues. Cada checkpoint de la organización de LibreYOLO incluye una, y no siempre es la misma en toda una familia. Ese repositorio es la fuente autorizada; el resumen siguiente describe qué se aplicaba cuando se verificó esta página por última vez.
Esta es una descripción de las licencias implicadas, no asesoramiento legal. Si la respuesta es importante a nivel comercial, lee las licencias y busca tu propio asesoramiento.
- Trabajo original
- FCOS, PyTorch
- Licencia del proyecto original
- BSD-3-Clause
- Fuente del proyecto original
- github.com/pytorch/vision
- Código de LibreYOLO
- MIT
- Pesos
- BSD-3-Clause, republicados en huggingface.co/LibreYOLO
- Interpretación
- 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.
Cita
@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}
}Copiado del bloque de cita de los autores en github.com/tianzhi0549/FCOS#citations.