Usando YOLO26 com SAHI para inferência por recortes#
Este guia mostra como usar YOLO26 com SAHI (Inferência Hiper com Auxílio de Recortes). Vamos explorar em profundidade o que é SAHI, por que a inferência por recortes é essencial para aplicações em grande escala e como integrar essas funcionalidades ao YOLO26 para melhorar o desempenho da detecção de objetos.
Introdução ao SAHI#
SAHI (Inferência Hiper com Auxílio de Recortes) é uma biblioteca inovadora desenvolvida 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 recortes menores e gerenciáveis, executar a detecção de objetos em cada recorte e, em seguida, reunir os resultados. O SAHI é compatível com diversos modelos de detecção de objetos, incluindo a série YOLO, oferecendo flexibilidade e garantindo o uso otimizado dos recursos computacionais.
Assista: Como usar SAHI com Ultralytics YOLO26 para detectar objetos pequenos | Inferência com auxílio de recortes 🚀
Principais recursos do SAHI#
- Integração perfeita: o SAHI se integra facilmente aos modelos YOLO, permitindo começar a recortar imagens e detectar objetos sem grandes alterações no código.
- Eficiência de recursos: ao dividir imagens grandes em partes menores, o SAHI otimiza o uso de memória e permite 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 a combinação dos resultados.
O que é inferência por recortes?#
Inferência por recortes é a prática de subdividir uma imagem grande ou de alta resolução em segmentos menores (recortes), realizar a detecção de objetos nesses segmentos e, em seguida, recombiná-los para reconstruir as localizações dos objetos na imagem original. Essa técnica é muito valiosa em situações nas quais os recursos computacionais são limitados ou quando se trabalha com imagens de resolução extremamente alta, que poderiam causar problemas de memória.
Benefícios da inferência por recortes#
-
Menor carga computacional: recortes menores são mais rápidos de processar e consomem menos memória, permitindo uma operação mais fluida em hardware de baixo desempenho.
-
Qualidade de detecção preservada: como cada recorte é tratado de forma independente, a qualidade da detecção de objetos não diminui, desde que os recortes sejam grandes o suficiente para capturar os objetos de interesse.
-
Maior escalabilidade: a técnica permite escalar a detecção de objetos com mais facilidade para imagens de diferentes tamanhos e resoluções, tornando-a ideal para uma ampla variedade de aplicações, desde imagens de satélite até diagnósticos médicos.
| YOLO26 sem SAHI | YOLO26 com 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
# Baixar imagens de teste
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 desta forma:
from sahi import AutoDetectionModel
detection_model = AutoDetectionModel.from_pretrained(
model_type="ultralytics",
model_path="yolo26n.pt",
confidence_threshold=0.3,
device="cpu", # 'cuda:0'
)Executar uma previsão padrão#
Execute a inferência padrão usando o caminho de uma 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 os resultados#
Exporte e visualize as caixas delimitadoras e máscaras previstas:
from PIL import Image
# Abrir a imagem prevista
processed_image = Image.open("demo_data/prediction_visual.png")
# Exibir a imagem prevista
processed_image.show()Inferência por recortes com YOLO26#
Execute a inferência por recortes especificando as dimensões dos recortes 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,
)
# Exportar resultados
result.export_visuals(export_dir="demo_data/", hide_conf=True)
# Abrir a imagem prevista
processed_image = Image.open("demo_data/prediction_visual.png")
# Exibir a imagem prevista
processed_image.show()Lidar com os resultados das previsões#
O SAHI fornece um objeto PredictionResult, que pode ser convertido em vários formatos de anotação:
# Acessar a lista de previsões de objetos
object_prediction_list = result.object_prediction_list
# Converter para os formatos de anotação e previsão COCO
result.to_coco_annotations()[:3]
result.to_coco_predictions(image_id=1)[:3]Previsão em lote#
Para fazer previsõ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", # '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 por recortes.
Citações e agradecimentos#
Se você usar SAHI em seu trabalho de pesquisa ou desenvolvimento, cite o artigo original sobre SAHI e dê crédito aos 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 esse recurso tão valioso para a comunidade de visão computacional. Para saber mais sobre o SAHI e seus criadores, visite o repositório do SAHI no GitHub.
Perguntas frequentes#
Integrar Ultralytics YOLO26 ao SAHI (Inferência Hiper com Auxílio de Recortes) para inferência por recortes otimiza as tarefas de detecção de objetos em imagens de alta resolução, dividindo-as em recortes 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 # Baixar imagens de teste 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 por recortes.
Usar SAHI com Ultralytics YOLO26 para detectar objetos em imagens grandes oferece vários benefícios:
- Menor carga computacional: recortes menores são mais rápidos de processar 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 escalar as tarefas de detecção de objetos para diferentes tamanhos e resoluções de imagem, o SAHI se torna 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 por recortes em nossa documentação.
Sim, você pode visualizar os resultados das previsões 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 previsões visualizadas no diretório especificado; em seguida, você poderá carregar a imagem para vê-la no notebook ou aplicativo. Para ver um guia detalhado, consulte a seção sobre inferência padrão.
SAHI (Inferência Hiper com Auxílio de Recortes) oferece vários recursos que complementam Ultralytics YOLO26 na detecção de objetos:
- Integração perfeita: o SAHI se integra facilmente aos modelos YOLO e exige pouquíssimos ajustes no código.
- Eficiência de recursos: o SAHI divide imagens grandes em recortes menores, otimizando o uso de memória e a velocidade.
- Alta precisão: ao mesclar eficazmente caixas de detecção sobrepostas durante a combinação dos resultados, o SAHI mantém alta precisão de detecção.
Para entender melhor, leia sobre os principais recursos do SAHI.
Para lidar com projetos de inferência em larga escala usando YOLO26 e SAHI, siga estas práticas recomendadas:
- Instalar as bibliotecas necessárias: garante que tens as versões mais recentes de ultralytics e sahi.
- Configurar a inferência em fatias: determina as dimensões ideais das fatias e as proporções de sobreposição para o teu projeto específico.
- Executar predições em lote: usa os recursos do SAHI para fazer predições em lote num diretório de imagens, o que melhora 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", # '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 veres etapas mais detalhadas, visita a nossa secção sobre Predição em lote.

