Ultralytics Documentos: Utilizaci贸n de YOLO11 con SAHI para la inferencia fragmentada
Bienvenido a la documentaci贸n de Ultralytics sobre c贸mo utilizar YOLO11 con SAHI (Slicing Aided Hyper Inference). Esta completa gu铆a pretende proporcionarle todos los conocimientos esenciales que necesitar谩 para implementar SAHI junto con YOLO11. Profundizaremos en qu茅 es SAHI, por qu茅 la inferencia en rodajas es fundamental para las aplicaciones a gran escala y c贸mo integrar estas funcionalidades con YOLO11 para mejorar el rendimiento de la detecci贸n de objetos.
Introducci贸n a SAHI
SAHI (Slicing Aided Hyper Inference) es una innovadora biblioteca dise帽ada para optimizar los algoritmos de detecci贸n de objetos en im谩genes a gran escala y de alta resoluci贸n. Su funci贸n principal consiste en dividir las im谩genes en fragmentos manejables, ejecutar la detecci贸n de objetos en cada fragmento y, a continuaci贸n, unir los resultados. SAHI es compatible con diversos modelos de detecci贸n de objetos, incluida la serie YOLO , por lo que ofrece flexibilidad al tiempo que garantiza un uso optimizado de los recursos inform谩ticos.
Observa: Inferencia con SAHI (Slicing Aided Hyper Inference) utilizando Ultralytics YOLO11
Caracter铆sticas principales de SAHI
- Integraci贸n perfecta: SAHI se integra sin esfuerzo con los modelos de YOLO , lo que significa que puede empezar a cortar y detectar sin necesidad de modificar mucho el c贸digo.
- Eficiencia de recursos: Al dividir las im谩genes grandes en partes m谩s peque帽as, SAHI optimiza el uso de la memoria, lo que le permite ejecutar una detecci贸n de alta calidad en hardware con recursos limitados.
- Alta precisi贸n: SAHI mantiene la precisi贸n de detecci贸n empleando algoritmos inteligentes para fusionar cuadros de detecci贸n superpuestos durante el proceso de cosido.
驴Qu茅 es la inferencia rebanada?
La inferencia por cortes consiste en subdividir una imagen grande o de alta resoluci贸n en segmentos m谩s peque帽os (cortes), detectar objetos en esos cortes y, a continuaci贸n, recomponerlos para reconstruir la ubicaci贸n de los objetos en la imagen original. Esta t茅cnica es inestimable en situaciones en las que los recursos inform谩ticos son limitados o cuando se trabaja con im谩genes de muy alta resoluci贸n que, de otro modo, podr铆an provocar problemas de memoria.
Ventajas de la inferencia fragmentada
-
Menor carga computacional: Los cortes de imagen m谩s peque帽os se procesan m谩s r谩pido y consumen menos memoria, lo que permite un funcionamiento m谩s fluido en hardware de gama baja.
-
Calidad de detecci贸n preservada: Dado que cada corte se trata de forma independiente, no se reduce la calidad de la detecci贸n de objetos, siempre que los cortes sean lo suficientemente grandes como para capturar los objetos de inter茅s.
-
Mayor escalabilidad: La t茅cnica permite escalar m谩s f谩cilmente la detecci贸n de objetos a trav茅s de diferentes tama帽os y resoluciones de im谩genes, lo que la hace ideal para una amplia gama de aplicaciones, desde im谩genes por sat茅lite hasta diagn贸sticos m茅dicos.
YOLO11 sin SAHI | YOLO11 con SAHI |
---|---|
Instalaci贸n y preparaci贸n
Instalaci贸n
Para empezar, instala las 煤ltimas versiones de SAHI y Ultralytics:
Importar m贸dulos y descargar recursos
A continuaci贸n se explica c贸mo importar los m贸dulos necesarios y descargar un modelo YOLO11 y algunas im谩genes de prueba:
from sahi.utils.file import download_from_url
from sahi.utils.yolov8 import download_yolov8s_model
# Download YOLO11 model
model_path = "models/yolo11s.pt"
download_yolov8s_model(model_path)
# Download test images
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
"demo_data/small-vehicles1.jpeg",
)
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/terrain2.png",
"demo_data/terrain2.png",
)
Inferencia est谩ndar con YOLO11
Instanciar el modelo
Puede instanciar un modelo YOLO11 para la detecci贸n de objetos de la siguiente manera:
from sahi import AutoDetectionModel
detection_model = AutoDetectionModel.from_pretrained(
model_type="yolov8",
model_path=yolov8_model_path,
confidence_threshold=0.3,
device="cpu", # or 'cuda:0'
)
Realizar una predicci贸n est谩ndar
Realiza la inferencia est谩ndar utilizando una ruta de imagen o una imagen numpy.
from sahi.predict import get_prediction
# With an image path
result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)
# With a numpy image
result = get_prediction(read_image("demo_data/small-vehicles1.jpeg"), detection_model)
Visualizar resultados
Exporte y visualice los cuadros delimitadores y las m谩scaras previstos:
Inferencia en rodajas con YOLO11
Realice la inferencia por cortes especificando las dimensiones de los cortes y las relaciones de solapamiento:
from sahi.predict import get_sliced_prediction
result = get_sliced_prediction(
"demo_data/small-vehicles1.jpeg",
detection_model,
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)
Tratamiento de los resultados de las predicciones
SAHI proporciona un PredictionResult
que puede convertirse en varios formatos de anotaci贸n:
# Access the object prediction list
object_prediction_list = result.object_prediction_list
# Convert to COCO annotation, COCO prediction, imantics, and fiftyone formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]
result.to_imantics_annotations()[:3]
result.to_fiftyone_detections()[:3]
Predicci贸n por lotes
Para la predicci贸n por lotes en un directorio de im谩genes:
from sahi.predict import predict
predict(
model_type="yolov8",
model_path="path/to/yolo11n.pt",
model_device="cpu", # or 'cuda:0'
model_confidence_threshold=0.4,
source="path/to/dir",
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)
Ya est谩. Ahora est谩 equipado para utilizar YOLO11 con SAHI tanto para la inferencia est谩ndar como para la rebanada.
Citas y agradecimientos
Si utiliza SAHI en su trabajo de investigaci贸n o desarrollo, cite el documento original de SAHI y mencione a los autores:
@article{akyon2022sahi,
title={Slicing Aided Hyper Inference and Fine-tuning for Small Object Detection},
author={Akyon, Fatih Cagatay and Altinuc, Sinan Onur and Temizel, Alptekin},
journal={2022 IEEE International Conference on Image Processing (ICIP)},
doi={10.1109/ICIP46576.2022.9897990},
pages={966-970},
year={2022}
}
Extendemos nuestro agradecimiento al grupo de investigaci贸n SAHI por crear y mantener este recurso inestimable para la comunidad de visi贸n por computador. Para obtener m谩s informaci贸n sobre SAHI y sus creadores, visite el repositorio SAHI GitHub.
PREGUNTAS FRECUENTES
驴C贸mo puedo integrar YOLO11 con SAHI para la inferencia rebanada en la detecci贸n de objetos?
La integraci贸n de Ultralytics YOLO11 con SAHI (Slicing Aided Hyper Inference) para la inferencia rebanada optimiza sus tareas de detecci贸n de objetos en im谩genes de alta resoluci贸n particion谩ndolas en rebanadas manejables. Este enfoque mejora el uso de la memoria y garantiza una alta precisi贸n de detecci贸n. Para empezar, necesita instalar las bibliotecas ultralytics y sahi:
A continuaci贸n, descargue un modelo YOLO11 e im谩genes de prueba:
from sahi.utils.file import download_from_url
from sahi.utils.yolov8 import download_yolov8s_model
# Download YOLO11 model
model_path = "models/yolo11s.pt"
download_yolov8s_model(model_path)
# Download test images
download_from_url(
"https://raw.githubusercontent.com/obss/sahi/main/demo/demo_data/small-vehicles1.jpeg",
"demo_data/small-vehicles1.jpeg",
)
Para obtener instrucciones m谩s detalladas, consulte nuestra gu铆a sobre la inferencia en rebanadas.
驴Por qu茅 utilizar SAHI con YOLO11 para la detecci贸n de objetos en im谩genes de gran tama帽o?
El uso de SAHI con Ultralytics YOLO11 para la detecci贸n de objetos en im谩genes de gran tama帽o ofrece varias ventajas:
- Menor carga computacional: Los fragmentos m谩s peque帽os se procesan m谩s r谩pido y consumen menos memoria, lo que permite ejecutar detecciones de alta calidad en hardware con recursos limitados.
- Precisi贸n de detecci贸n mantenida: SAHI utiliza algoritmos inteligentes para fusionar las cajas superpuestas, preservando la calidad de la detecci贸n.
- Escalabilidad mejorada: Al escalar las tareas de detecci贸n de objetos a distintos tama帽os y resoluciones de imagen, SAHI resulta ideal para diversas aplicaciones, como el an谩lisis de im谩genes de sat茅lite y el diagn贸stico m茅dico.
Obtenga m谩s informaci贸n sobre las ventajas de la inferencia rebanada en nuestra documentaci贸n.
驴Puedo visualizar los resultados de las predicciones cuando utilizo YOLO11 con SAHI?
S铆, puede visualizar los resultados de las predicciones cuando utilice YOLO11 con SAHI. A continuaci贸n se explica c贸mo exportar y visualizar los resultados:
from IPython.display import Image
result.export_visuals(export_dir="demo_data/")
Image("demo_data/prediction_visual.png")
Este comando guardar谩 las predicciones visualizadas en el directorio especificado y, a continuaci贸n, podr谩 cargar la imagen para verla en su cuaderno o aplicaci贸n. Para obtener una gu铆a detallada, consulte la secci贸n Inferencia est谩ndar.
驴Qu茅 funciones ofrece SAHI para mejorar la detecci贸n de objetos en YOLO11 ?
SAHI (Slicing Aided Hyper Inference) ofrece varias funciones que complementan Ultralytics YOLO11 para la detecci贸n de objetos:
- Integraci贸n perfecta: SAHI se integra f谩cilmente con los modelos YOLO , requiriendo m铆nimos ajustes de c贸digo.
- Eficiencia de recursos: Particiona im谩genes grandes en trozos m谩s peque帽os, lo que optimiza el uso de memoria y la velocidad.
- Alta precisi贸n: al fusionar eficazmente los cuadros de detecci贸n superpuestos durante el proceso de cosido, SAHI mantiene una alta precisi贸n de detecci贸n.
Para comprenderlo mejor, lea las principales caracter铆sticas de SAHI.
驴C贸mo se gestionan los proyectos de inferencia a gran escala con YOLO11 y SAHI?
Para gestionar proyectos de inferencia a gran escala utilizando YOLO11 y SAHI, siga estas pr谩cticas recomendadas:
- Instale las bibliotecas necesarias: Aseg煤rese de que dispone de las 煤ltimas versiones de ultralytics y sahi.
- Configure la inferencia por cortes: Determine las dimensiones de corte y las relaciones de solapamiento 贸ptimas para su proyecto espec铆fico.
- Ejecutar predicciones por lotes: Utilice las capacidades de SAHI para realizar predicciones por lotes en un directorio de im谩genes, lo que mejora la eficiencia.
Ejemplo de predicci贸n por lotes:
from sahi.predict import predict
predict(
model_type="yolov8",
model_path="path/to/yolo11n.pt",
model_device="cpu", # or 'cuda:0'
model_confidence_threshold=0.4,
source="path/to/dir",
slice_height=256,
slice_width=256,
overlap_height_ratio=0.2,
overlap_width_ratio=0.2,
)
Para obtener informaci贸n m谩s detallada, visite nuestra secci贸n sobre Predicci贸n por lotes.