Documentação da Ultralytics: Usando YOLO26 com SAHI para Inferência Fatiada#
Bem-vindo à documentação da Ultralytics sobre como usar o YOLO26 com o SAHI (Slicing Aided Hyper Inference). Este guia completo visa fornecer a você todo o conhecimento essencial necessário para implementar o SAHI junto com o YOLO26. Vamos nos aprofundar no que é o SAHI, por que a inferência fatiada é fundamental para aplicações em larga escala e como integrar essas funcionalidades ao YOLO26 para um desempenho aprimorado de detecção de objetos.
Introdução ao SAHI#
O SAHI (Slicing Aided Hyper Inference) é uma biblioteca inovadora projetada para otimizar algoritmos de detecção de objetos para imagens de alta resolução e em larga escala. Sua funcionalidade principal consiste em dividir imagens em fatias gerenciáveis, executar a detecção de objetos em cada fatia e, em seguida, unir os resultados. O SAHI é compatível com uma gama de modelos de detecção de objetos, incluindo a série YOLO, oferecendo flexibilidade enquanto garante o uso otimizado de recursos computacionais.
Watch: How to use SAHI with Ultralytics YOLO26 to Detect Small Objects | Slicing Aided Hyper Inference 🚀
Principais Recursos do SAHI#
- Integração Contínua: O SAHI integra-se facilmente aos modelos YOLO, o que significa que você pode começar a fatiar e detectar sem muitas modificações no código.
- Eficiência de Recursos: Ao dividir imagens grandes em partes menores, o SAHI otimiza o uso da memória, permitindo que você execute detecções de alta qualidade em hardware com recursos limitados.
- Alta Precisão: O SAHI mantém a precisão da detecção empregando algoritmos inteligentes para mesclar caixas de detecção sobrepostas durante o processo de uniã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), conduzindo a detecção de objetos nessas fatias e, em seguida, recompilando as fatias para reconstruir as localizações dos objetos na imagem original. Essa técnica é inestimável em cenários onde os recursos computacionais são limitados ou ao trabalhar com imagens de altíssima resolução que poderiam levar a problemas de memória.
Benefícios da Inferência Fatiada#
-
Carga Computacional Reduzida: Fatias de imagem menores são mais rápidas de processar e consomem menos memória, permitindo uma operação mais fluida em hardwares de entrada.
-
Qualidade de Detecção Preservada: Como cada fatia é tratada independentemente, 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.
-
Escalabilidade Aprimorada: A técnica permite que a detecção de objetos seja escalada mais facilmente em diferentes tamanhos e resoluções de imagens, tornando-a ideal para uma ampla gama 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 o YOLO26#
Instanciar o Modelo#
Você pode instanciar um modelo YOLO26 para detecção de objetos assim:
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 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 preditas:
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 o YOLO26#
Realize a inferência fatiada especificando as dimensões das fatias e as taxas 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()Manipulando Resultados de 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 predição 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,
)Você está agora pronto para usar o YOLO26 com o SAHI para inferência tanto padrão quanto fatiada.
Citações e Agradecimentos#
Se você usar o SAHI em seu trabalho de pesquisa ou desenvolvimento, por favor 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}
}Estendemos nossos agradecimentos ao grupo de pesquisa SAHI por criar e manter este recurso inestimável para a comunidade de visão computacional. Para mais informações sobre o SAHI e seus criadores, visite o repositório GitHub do SAHI.
FAQ#
Como posso integrar o YOLO26 ao SAHI para inferência fatiada na detecção de objetos?#
Integrar o YOLO26 da Ultralytics ao SAHI (Slicing Aided Hyper Inference) para inferência fatiada otimiza suas tarefas de detecção de objetos em imagens de alta resolução, particionando-as em fatias gerenciáveis. Essa abordagem melhora o uso da 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 instruções mais detalhadas, consulte nosso guia de Inferência Fatiada.
Por que devo usar o SAHI com o YOLO26 para detecção de objetos em imagens grandes?#
Usar o SAHI com o YOLO26 da Ultralytics para detecção de objetos em imagens grandes oferece vários benefícios:
- Carga Computacional Reduzida: Fatias menores são mais rápidas 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.
- Escalabilidade Aprimorada: Ao escalar tarefas de detecção de objetos através de 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.
Posso visualizar os resultados da predição ao usar o YOLO26 com o SAHI?#
Sim, você pode visualizar os resultados da predição ao usar o YOLO26 com o SAHI. Veja como você pode 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, e você poderá então carregar a imagem para vê-la em seu notebook ou aplicação. Para um guia detalhado, confira a seção de Inferência Padrão.
Quais recursos o SAHI oferece para melhorar a detecção de objetos do YOLO26?#
O SAHI (Slicing Aided Hyper Inference) oferece vários recursos que complementam o YOLO26 da Ultralytics para detecção de objetos:
- Integração Contínua: O SAHI integra-se facilmente aos modelos YOLO, exigindo ajustes mínimos de código.
- Eficiência de Recursos: Ele particiona imagens grandes em fatias menores, o que otimiza o uso da memória e a velocidade.
- Alta Precisão: Ao mesclar efetivamente caixas de detecção sobrepostas durante o processo de união, o SAHI mantém alta precisão de detecção.
Para uma compreensão mais profunda, leia sobre os principais recursos do SAHI.
Como lido com projetos de inferência em larga escala usando o YOLO26 e o SAHI?#
Para lidar com projetos de inferência em larga escala usando o YOLO26 e o SAHI, siga estas melhores práticas:
- Instale as Bibliotecas Necessárias: Garanta que você tenha as versões mais recentes do ultralytics e do sahi.
- Configure a Inferência Fatiada: Determine as dimensões das fatias e as taxas de sobreposição ideais para o 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, o que melhora a eficiência.
Exemplo para 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 passos mais detalhados, visite nossa seção sobre Predição em Lote.

