YOLOv3
YOLOv3 es el detector Darknet-53 que añadió la predicción multiescala y los clasificadores logísticos independientes a la línea YOLO. LibreYOLO lo conserva como una pieza de museo congelada y solo de inferencia, en tamaños tiny, base y SPP.
- Tareas
- detection
- Tamaños
- t, b, spp at 416 to 608 px
- Instalación
pip install libreyolo- Nivel de compatibilidad
- Museo, desde v. Pieza de exposición congelada. Solo se corrigen errores.
- Licencias
- Código MIT, pesos Public domain (Darknet "YOLO LICENSE"). Uso comercial
Instalación
YOLOv3 no necesita ningún extra más allá del paquete base.
pip install libreyoloPredicción
Esta familia es solo de inferencia: train() lanza NotImplementedError, así
que esta página no tiene sección de entrenamiento. Predicción, validación y
exportación sí están soportadas. 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("LibreYOLO3b.pt")result = model(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)libreyolo predict model=LibreYOLO3b.pt source=https://raw.githubusercontent.com/LibreYOLO/libreyolo/release/libreyolo/assets/parkour.jpg save=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # La variante SPP añade un bloque de spatial pyramid pooling antes de las# cabezas de detección y funciona con su propio tamaño de entrada nativo.model = LibreYOLO("LibreYOLO3spp.pt")result = model(SAMPLE_IMAGE)El objeto Results devuelto es el mismo que devuelve cada familia, así que
cambiar a otro detector es un cambio de una línea. conf filtra el umbral de
confianza e iou el umbral de NMS, aplicados por escala antes de fusionar los
boxes de las tres cabezas. Consulta predicción para fuentes,
streaming y manejo de resultados.
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 valides.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO3b.pt")metrics = model.val(data="my-dataset.yaml") print(metrics["metrics/mAP50-95"])print(metrics["metrics/mAP50"])libreyolo val model=LibreYOLO3b.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: compatible | Detection to TensorRT: compatible | Detection to OpenVINO: compatible | Detection to Paddle: no compatible | Detection to MNN: no compatible | Detection to RKNN: no compatible | Detection to ncnn: compatible | Detection to TFLite: no compatible | Detection to CoreML: no compatible | Detection to Core AI: compatible |
Un artefacto exportado se vuelve a cargar a través de LibreYOLO() por su
sufijo de archivo, así que un archivo .onnx o .engine se comporta como un
checkpoint y devuelve el mismo Results. Ejecutar el grafo en un runtime
desnudo, sin LibreYOLO instalado, también está soportado, pero entonces el
preprocesamiento y el postprocesamiento corren de tu cuenta.
from libreyolo import LibreYOLO model = LibreYOLO("LibreYOLO3b.pt")model.export(format="onnx")model.export(format="tensorrt", half=True)libreyolo export model=LibreYOLO3b.pt format=onnxlibreyolo export model=LibreYOLO3b.pt format=tensorrt half=Truefrom libreyolo import LibreYOLO, SAMPLE_IMAGE # La factoría enruta según el sufijo del archivo, así que un artefacto# exportado se carga como cualquier checkpoint y devuelve el mismo objeto Results.model = LibreYOLO("LibreYOLO3b.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 | ||
| LibreYOLO3t.pt | 416 | other |
| LibreYOLO3b.pt | 416 | other |
| LibreYOLO3spp.pt | 608 | other |
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
- YOLOv3, Joseph Redmon
- Licencia del proyecto original
- Public domain (Darknet "YOLO LICENSE")
- Fuente del proyecto original
- github.com/pjreddie/darknet
- Código de LibreYOLO
- MIT
- Pesos
- Public domain (Darknet "YOLO LICENSE"), republicados en huggingface.co/LibreYOLO
- Interpretación
- Darknet's bundled NOTICE quotes its own license in full: "Darknet is public domain. Do whatever you want with it." That covers both the architecture and the pretrained weights LibreYOLO converts from it, with no attribution requirement and no restriction on commercial use. LibreYOLO's own code around this architecture is MIT.