Usando o YOLO26 com SAHI para Inferência Fatiada#
Este guia mostra como usar o YOLO26 com o SAHI (Slicing Aided Hyper Inference). Vamos nos aprofundar no que o SAHI é, por que a inferência fatiada é crítica para aplicações em grande escala e como integrar essas funcionalidades com o YOLO26 para um desempenho aprimorado de detecção de objetos.
Introdução ao SAHI#
SAHI (inferência hiperassistida por fatiamento) é uma biblioteca inovadora projetada para otimizar algoritmos de detecção de objetos em imagens de grande escala e alta resolução. Sua principal funcionalidade consiste em dividir as imagens em fatias gerenciáveis, executar a detecção de objetos em cada fatia e, em seguida, reunir os resultados. O SAHI é compatível com vários modelos de detecção de objetos, incluindo a série YOLO, oferecendo flexibilidade e garantindo o uso otimizado dos recursos computacionais.
Watch: How to use SAHI with Ultralytics YOLO26 to Detect Small Objects | Slicing Aided Hyper Inference 🚀
Principais recursos do SAHI#
- Integração perfeita: o SAHI integra-se facilmente aos modelos YOLO, permitindo que você comece a fatiar e detectar sem precisar modificar muito o código.
- Eficiência de recursos: ao dividir imagens grandes em partes menores, o SAHI otimiza o uso de memória, permitindo executar detecções de alta qualidade em hardware com recursos limitados.
- Alta precisão: o SAHI mantém a precisão da detecção usando algoritmos inteligentes para mesclar caixas de detecção sobrepostas durante o processo de reunião.
O que é inferência fatiada?#
A inferência fatiada refere-se à prática de subdividir uma imagem grande ou de alta resolução em segmentos menores (fatias), realizar a detecção de objetos nesses segmentos e, em seguida, recompilar as fatias para reconstruir as localizações dos objetos na imagem original. Essa técnica é inestimável em cenários nos quais os recursos computacionais são limitados ou quando se trabalha com imagens de resolução extremamente alta que, de outra forma, poderiam causar problemas de memória.
Benefícios da inferência fatiada#
-
Menor carga computacional: fatias de imagem menores são processadas mais rapidamente e consomem menos memória, permitindo uma operação mais fluida em hardware de baixo desempenho.
-
Qualidade de detecção preservada: como cada fatia é tratada de forma independente, não há redução na qualidade da detecção de objetos, desde que as fatias sejam grandes o suficiente para capturar os objetos de interesse.
-
Maior escalabilidade: a técnica permite dimensionar mais facilmente a detecção de objetos entre diferentes tamanhos e resoluções de imagem, tornando-a ideal para uma ampla variedade de aplicações, desde imagens de satélite até diagnósticos médicos.
| YOLO26 without SAHI | YOLO26 with SAHI |
|---|---|
![]() | ![]() |
Instalação e preparação#
Instalação#
Para começar, instale as versões mais recentes do SAHI e da Ultralytics:
pip install -U ultralytics sahiImportar módulos e baixar recursos#
Veja como baixar algumas imagens de teste:
from sahi.utils.file import download_from_url
# 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",
)Inferência padrão com YOLO26#
Instanciar o modelo#
Você pode instanciar um modelo YOLO26 para detecção de objetos da seguinte forma:
from sahi import AutoDetectionModel
detection_model = AutoDetectionModel.from_pretrained(
model_type="ultralytics",
model_path="yolo26n.pt",
confidence_threshold=0.3,
device="cpu", # or 'cuda:0'
)Realizar a predição padrão#
Realize a inferência padrão usando um caminho de imagem.
from sahi.predict import get_prediction
result = get_prediction("demo_data/small-vehicles1.jpeg", detection_model)
result.export_visuals(export_dir="demo_data/", hide_conf=True)Visualizar resultados#
Exporte e visualize as caixas delimitadoras e máscaras previstas:
from PIL import Image
# Open the predicted image
processed_image = Image.open("demo_data/prediction_visual.png")
# Display the predicted image
processed_image.show()Inferência fatiada com YOLO26#
Realize a inferência fatiada especificando as dimensões das fatias e as proporções de sobreposição:
from PIL import Image
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,
)
# Export results
result.export_visuals(export_dir="demo_data/", hide_conf=True)
# Open the predicted image
processed_image = Image.open("demo_data/prediction_visual.png")
# Display the predicted image
processed_image.show()Processar resultados da predição#
O SAHI fornece um objeto PredictionResult, que pode ser convertido em vários formatos de anotação:
# Access the object prediction list
object_prediction_list = result.object_prediction_list
# Convert to COCO annotation and COCO prediction formats
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]Predição em lote#
Para realizar predições em lote em um diretório de imagens:
from sahi.predict import predict
predict(
model_type="ultralytics",
model_path="yolo26n.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,
)Agora você está pronto para usar YOLO26 com SAHI tanto para inferência padrão quanto para inferência fatiada.
Citações e agradecimentos#
Se você usar o SAHI em seu trabalho de pesquisa ou desenvolvimento, cite o artigo original do SAHI e reconheça os 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}
}Agradecemos ao grupo de pesquisa do SAHI por criar e manter este recurso inestimável para a comunidade de visão computacional. Para obter mais informações sobre o SAHI e seus criadores, visite o repositório do SAHI no GitHub.
Perguntas frequentes#
A integração do Ultralytics YOLO26 com o SAHI (inferência hiperassistida por fatiamento) para inferência fatiada otimiza suas tarefas de detecção de objetos em imagens de alta resolução, dividindo-as em fatias gerenciáveis. Essa abordagem melhora o uso de memória e garante alta precisão de detecção. Para começar, você precisa instalar as bibliotecas ultralytics e sahi:
pip install -U ultralytics sahiEm seguida, baixe as imagens de teste:
from sahi.utils.file import download_from_url # 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", )Para obter instruções mais detalhadas, consulte nosso guia de inferência fatiada.
Usar SAHI com o Ultralytics YOLO26 para detecção de objetos em imagens grandes oferece vários benefícios:
- Menor carga computacional: fatias menores são processadas mais rapidamente e consomem menos memória, tornando viável executar detecções de alta qualidade em hardware com recursos limitados.
- Precisão de detecção mantida: o SAHI usa algoritmos inteligentes para mesclar caixas sobrepostas, preservando a qualidade da detecção.
- Maior escalabilidade: ao dimensionar as tarefas de detecção de objetos entre diferentes tamanhos e resoluções de imagem, o SAHI torna-se ideal para várias aplicações, como análise de imagens de satélite e diagnósticos médicos.
Saiba mais sobre os benefícios da inferência fatiada em nossa documentação.
Sim, você pode visualizar os resultados da predição ao usar YOLO26 com SAHI. Veja como exportar e visualizar os resultados:
from PIL import Image result.export_visuals(export_dir="demo_data/", hide_conf=True) processed_image = Image.open("demo_data/prediction_visual.png") processed_image.show()Este comando salvará as predições visualizadas no diretório especificado. Em seguida, você poderá carregar a imagem para visualizá-la em seu notebook ou aplicativo. Para obter um guia detalhado, consulte a seção sobre inferência padrão.
O SAHI (inferência hiperassistida por fatiamento) oferece vários recursos que complementam o Ultralytics YOLO26 na detecção de objetos:
- Integração perfeita: o SAHI integra-se facilmente aos modelos YOLO, exigindo ajustes mínimos no código.
- Eficiência de recursos: ele divide imagens grandes em fatias menores, otimizando o uso de memória e a velocidade.
- Alta precisão: ao mesclar efetivamente as caixas de detecção sobrepostas durante o processo de reunião, o SAHI mantém uma alta precisão de detecção.
Para entender melhor, leia sobre os principais recursos do SAHI.
Para lidar com projetos de inferência de grande escala usando YOLO26 e SAHI, siga estas práticas recomendadas:
- Instale as bibliotecas necessárias: verifique se você tem as versões mais recentes de ultralytics e sahi.
- Configure a inferência fatiada: determine as dimensões ideais das fatias e as proporções de sobreposição para seu projeto específico.
- Execute predições em lote: use os recursos do SAHI para realizar predições em lote em um diretório de imagens, melhorando a eficiência.
Exemplo de predição em lote:
from sahi.predict import predict predict( model_type="ultralytics", model_path="path/to/yolo26n.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 obter etapas mais detalhadas, visite nossa seção sobre predição em lote.

