YOLO Vision 2026:

Documentação da Ultralytics: Usando YOLO26 com SAHI para Inferência Fatiada#

Abrir SAHI para Inferência Fatiada no Colab

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.

SAHI tiled inference for small objects

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 SAHIYOLO26 with SAHI
YOLO26 without SAHIYOLO26 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 sahi

Importar 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]
Formatos de exportação adicionais

PredictionResult também pode converter detecções para objetos imantics e FiftyOne com result.to_imantics_annotations() e result.to_fiftyone_detections(). Estes métodos requerem os respectivos pacotes, por isso instala-os primeiro com pip install imantics fiftyone.

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:

Citação
@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 sahi

Em 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:

  1. Instale as Bibliotecas Necessárias: Garanta que você tenha as versões mais recentes do ultralytics e do sahi.
  2. Configure a Inferência Fatiada: Determine as dimensões das fatias e as taxas de sobreposição ideais para o seu projeto específico.
  3. 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.

Comentários