FCN

Un clasificador denso píxel a píxel que sustituye las capas totalmente conectadas de un detector por convoluciones, de modo que produce un mapa de clases a resolución completa en lugar de bounding boxes. LibreYOLO lo incluye solo para segmentación semántica.

Tareas
semantic
Tamaños
r50, r101 at 520 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.
Proyecto original
FCN de PyTorch, BSD-3-Clause. Artículo, fuente
Licencias
Código BSD-3-Clause, pesos BSD-3-Clause. Uso comercial

Instalación

FCN no necesita ningún extra opcional. Todo lo que importa está en la instalación base.

bash
pip install libreyolo

Predicción

Los pesos se descargan de Hugging Face en el primer uso y se guardan en la caché local.

Python
from libreyolo import LibreYOLO, SAMPLE_IMAGE model = LibreYOLO("LibreFCNr50.pt")result = model(SAMPLE_IMAGE, save=True) mask = result.semantic_maskprint(mask.data.shape)   # (H, W) ids de claseprint(mask.classes)      # ids de clase presentes en la imagen, ordenados
CLI
libreyolo predict model=LibreFCNr50.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=True

La segmentación semántica devuelve un id de clase por píxel, no bounding boxes, así que result.semantic_mask lleva un array (H, W) en .data y la lista de ids de clase presentes en la imagen en .classes. conf, iou y max_det se aceptan por paridad de API pero no tienen ningún efecto: el modelo asigna una clase a cada píxel por argmax, sin umbral de confianza ni paso de NMS. Consulta predicción para fuentes, streaming y manejo de resultados.

Variantes

Dos profundidades de ResNet, ambas con una entrada fija de 520 px. El grafo de inferencia de la biblioteca es el FCN con ResNet dilatada de torchvision, no la red FCN-8s basada en VGG con conexiones skip del paper original.

LibreYOLO no entrena FCN: train() lanza NotImplementedError para esta familia, algo que el nivel de soporte de arriba marca como solo inferencia. Los dos checkpoints publicados son los propios pesos de torchvision entrenados en COCO, convertidos para el cargador de LibreYOLO.

Validación

val() devuelve metrics/mIoU y metrics/pixel_accuracy, medidos contra cualquier dataset en el formato con el que entrenaste.

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

Exportación

TareaONNXTorchScriptExecuTorchTensorRTOpenVINOPaddleMNNRKNNncnnTFLiteCoreMLCore AI
semanticsemantic to ONNX: compatiblesemantic to TorchScript: compatiblesemantic to ExecuTorch: no compatiblesemantic to TensorRT: compatiblesemantic to OpenVINO: compatiblesemantic to Paddle: no compatiblesemantic to MNN: no compatiblesemantic to RKNN: no compatiblesemantic to ncnn: no compatiblesemantic to TFLite: no compatiblesemantic to CoreML: no compatiblesemantic to Core AI: no compatible

Un artefacto exportado se vuelve a cargar con LibreYOLO() según su extensión de archivo, así que un archivo .onnx o .engine se comporta como un checkpoint y devuelve el mismo Results. Exportación enumera los argumentos que acepta cada formato.

Python
from libreyolo import LibreYOLO model = LibreYOLO("LibreFCNr50.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)
CLI
libreyolo export model=LibreFCNr50.pt format=onnxlibreyolo export model=LibreFCNr50.pt format=tensorrt half=True
Usar el archivo exportado
from 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("LibreFCNr50.onnx")result = model(SAMPLE_IMAGE) print(result.semantic_mask.data.shape)

Checkpoints

Todos los archivos de pesos publicados de esta familia.

ArchivoEntrada (px)Licencia de los pesos
semantic
LibreFCNr50.pt520bsd-3-clause
LibreFCNr101.pt520bsd-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
FCN, 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 and these weights can be used in commercial and closed-source products. It asks you to keep the copyright notice, license text and a non-endorsement clause with any copy you redistribute. LibreYOLO's inference graph is torchvision's dilated-ResNet FCN, not the original VGG-based FCN-8s skip-fusion network from the paper. The two published checkpoints are torchvision's official COCO-trained weights; their separate LibreYOLO Hugging Face mirrors carry BSD-3-Clause on an implied basis disclosed by torchvision rather than an explicit checkpoint-specific grant, and torchvision's own documentation notes that pretrained-model terms can depend on the training data, leaving that determination to the user.

Verificado con LibreYOLO v1.5.0. Las tablas de compatibilidad, los checkpoints y las cifras de rendimiento de esta página se generan a partir de la biblioteca publicada y los pesos publicados; no se escriben a mano.