Ir para o conteúdo

Segmentação de Instâncias e Tracking usando Ultralytics YOLO26 🚀

O que é Segmentação de Instância?

Segmentação de instância é uma tarefa de visão computacional que envolve identificar e delinear objetos individuais em uma imagem no nível do pixel. Ao contrário da segmentação semântica, que apenas classifica pixels por categoria, a segmentação de instância rotula exclusivamente e delineia precisamente cada instância de objeto, tornando-a crucial para aplicações que exigem compreensão espacial detalhada, como imagens médicas, direção autônoma e automação industrial.

Ultralytics YOLO26 oferece poderosas capacidades de segmentação de instâncias que permitem a detecção precisa de limites de objetos, mantendo a velocidade e eficiência pelas quais os modelos YOLO são conhecidos.

Existem dois tipos de rastreamento de segmentação de instâncias disponíveis no pacote Ultralytics:

  • Segmentação de Instância com Objetos de Classe: Cada objeto de classe recebe uma cor única para uma separação visual clara.

  • Segmentação de Instâncias com Tracks de Objetos: Cada track é representado por uma cor distinta, facilitando a identificação e o rastreamento em frames de vídeo.



Assista: Segmentação de Instâncias com Rastreamento de Objetos usando Ultralytics YOLO26

Amostras

Segmentação de InstânciaSegmentação de Instância + Rastreamento de Objetos
Segmentação de Instâncias da UltralyticsSegmentação de Instâncias da Ultralytics com Rastreamento de Objetos
Segmentação de Instâncias da Ultralytics 😍Segmentação de Instâncias da Ultralytics com Rastreamento de Objetos 🔥

Segmentação de instâncias usando Ultralytics YOLO

# Instance segmentation using Ultralytics YOLO26
yolo solutions isegment show=True

# Pass a source video
yolo solutions isegment source="path/to/video.mp4"

# Monitor the specific classes
yolo solutions isegment classes="[0, 5]"
import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("isegment_output.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Initialize instance segmentation object
isegment = solutions.InstanceSegmentation(
    show=True,  # display the output
    model="yolo26n-seg.pt",  # model="yolo26n-seg.pt" for object segmentation using YOLO26.
    # classes=[0, 2],  # segment specific classes, e.g., person and car with the pretrained model.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()

    if not success:
        print("Video frame is empty or video processing has been successfully completed.")
        break

    results = isegment(im0)

    # print(results)  # access the output

    video_writer.write(results.plot_im)  # write the processed frame.

cap.release()
video_writer.release()
cv2.destroyAllWindows()  # destroy all opened windows

InstanceSegmentation Argumentos

Aqui está uma tabela com o InstanceSegmentation argumentos:

ArgumentoTipoPadrãoDescrição
modelstrNoneCaminho para um arquivo de modelo Ultralytics YOLO.
regionlist'[(20, 400), (1260, 400)]'Lista de pontos que definem a região de contagem.

Também pode tirar partido de track argumentos dentro do InstanceSegmentation solução:

ArgumentoTipoPadrãoDescrição
trackerstr'botsort.yaml'Especifica o algoritmo de rastreamento a ser usado, por exemplo, bytetrack.yaml ou botsort.yaml.
conffloat0.1Define o limite de confiança para detecções; valores mais baixos permitem que mais objetos sejam rastreados, mas podem incluir falsos positivos.
ioufloat0.7Define o limite de Intersecção sobre União (IoU) para filtrar detecções sobrepostas.
classeslistNoneFiltra os resultados por índice de classe. Por exemplo, classes=[0, 2, 3] rastreia apenas as classes especificadas.
verboseboolTrueControla a exibição dos resultados de rastreamento, fornecendo uma saída visual dos objetos rastreados.
devicestrNoneEspecifica o dispositivo para inferência (por exemplo, cpu, cuda:0 ou 0). Permite que os usuários selecionem entre CPU, uma GPU específica ou outros dispositivos de computação para a execução do modelo.

Além disso, os seguintes argumentos de visualização estão disponíveis:

ArgumentoTipoPadrãoDescrição
showboolFalseSe True, exibe as imagens ou vídeos anotados em uma janela. Útil para feedback visual imediato durante o desenvolvimento ou teste.
line_widthint or NoneNoneEspecifica a largura da linha das caixas delimitadoras. Se None, a largura da linha é ajustada automaticamente com base no tamanho da imagem. Fornece personalização visual para clareza.
show_confboolTrueExibe o score de confiança para cada detecção junto com o rótulo. Dá uma ideia da certeza do modelo para cada detecção.
show_labelsboolTrueExibe rótulos para cada detecção na saída visual. Fornece compreensão imediata dos objetos detectados.

Aplicações de Segmentação de Instâncias

A segmentação de instâncias com YOLO26 tem inúmeras aplicações no mundo real em diversas indústrias:

Gestão de Resíduos e Reciclagem

O YOLO26 pode ser usado em instalações de gestão de resíduos para identificar e classificar diferentes tipos de materiais. O modelo pode segmentar resíduos plásticos, papelão, metal e outros recicláveis com alta precisão, permitindo que sistemas de triagem automatizados processem resíduos de forma mais eficiente. Isso é particularmente valioso considerando que apenas cerca de 10% dos 7 bilhões de toneladas de resíduos plásticos gerados globalmente são reciclados.

Veículos Autônomos

Em carros autônomos, a segmentação de instâncias ajuda a identificar e rastrear pedestres, veículos, sinais de trânsito e outros elementos da estrada no nível do pixel. Essa compreensão precisa do ambiente é crucial para decisões de navegação e segurança. O desempenho em tempo real do YOLO26 o torna ideal para essas aplicações sensíveis ao tempo.

Imagem Médica

A segmentação de instâncias pode identificar e delinear tumores, órgãos ou estruturas celulares em exames médicos. A capacidade do YOLO26 de delinear precisamente os limites dos objetos o torna valioso para diagnósticos médicos e planejamento de tratamento.

Monitoramento de Canteiros de Obras

Em canteiros de obras, a segmentação de instâncias pode rastrear máquinas pesadas, trabalhadores e materiais. Isso ajuda a garantir a segurança, monitorando as posições dos equipamentos e detectando quando os trabalhadores entram em áreas perigosas, ao mesmo tempo em que otimiza o fluxo de trabalho e a alocação de recursos.

Nota

Para qualquer dúvida, sinta-se à vontade para colocar as suas questões na Seção de Problemas do Ultralytics ou na seção de discussão mencionada abaixo.

FAQ

Como faço para realizar a segmentação de instâncias usando Ultralytics YOLO26?

Para realizar a segmentação de instâncias usando Ultralytics YOLO26, inicialize o modelo YOLO com uma versão de segmentação do YOLO26 e processe quadros de vídeo através dele. Aqui está um exemplo de código simplificado:

import cv2

from ultralytics import solutions

cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"

# Video writer
w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))
video_writer = cv2.VideoWriter("instance-segmentation.avi", cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))

# Init InstanceSegmentation
isegment = solutions.InstanceSegmentation(
    show=True,  # display the output
    model="yolo26n-seg.pt",  # model="yolo26n-seg.pt" for object segmentation using YOLO26.
)

# Process video
while cap.isOpened():
    success, im0 = cap.read()
    if not success:
        print("Video frame is empty or processing is complete.")
        break
    results = isegment(im0)
    video_writer.write(results.plot_im)

cap.release()
video_writer.release()
cv2.destroyAllWindows()

Saiba mais sobre segmentação de instâncias no guia Ultralytics YOLO26.

Qual é a diferença entre segmentação de instâncias e rastreamento de objetos no Ultralytics YOLO26?

A segmentação de instâncias identifica e delimita objetos individuais dentro de uma imagem, atribuindo a cada objeto um rótulo e uma máscara únicos. O track de objetos estende isso ao atribuir IDs consistentes aos objetos em quadros de vídeo, facilitando o track contínuo dos mesmos objetos ao longo do tempo. Quando combinados, como na implementação do YOLO26, você obtém recursos poderosos para analisar o movimento e o comportamento de objetos em vídeos, mantendo informações de limite precisas.

Por que devo usar o Ultralytics YOLO26 para segmentação de instâncias e rastreamento em vez de outros modelos como Mask R-CNN ou Faster R-CNN?

Ultralytics YOLO26 oferece desempenho em tempo real, precisão superior e facilidade de uso em comparação com outros modelos como Mask R-CNN ou Faster R-CNN. O YOLO26 processa imagens em uma única passagem (detecção de estágio único), tornando-o significativamente mais rápido, mantendo alta precisão. Ele também oferece integração perfeita com a Plataforma Ultralytics, permitindo que os usuários gerenciem modelos, conjuntos de dados e pipelines de treinamento de forma eficiente. Para aplicações que exigem velocidade e precisão, o YOLO26 oferece um equilíbrio ideal.

Existem conjuntos de dados fornecidos pela Ultralytics adequados para treinar modelos YOLO26 para segmentação de instâncias e rastreamento?

Sim, a Ultralytics oferece vários conjuntos de dados adequados para treinar modelos YOLO26 para segmentação de instâncias, incluindo COCO-Seg, COCO8-Seg (um subconjunto menor para testes rápidos), Package-Seg e Crack-Seg. Esses conjuntos de dados vêm com anotações em nível de pixel necessárias para tarefas de segmentação de instâncias. Para aplicações mais especializadas, você também pode criar conjuntos de dados personalizados seguindo o formato Ultralytics. Informações completas sobre os conjuntos de dados e instruções de uso podem ser encontradas na documentação de Conjuntos de Dados da Ultralytics.



📅 Criado há 2 anos ✏️ Atualizado há 5 dias
glenn-jocherRizwanMunawarRizwanMunawarpderrengerleonnilUltralyticsAssistantMatthewNoyceIvorZhu331

Comentários