Ir para o conteúdo

Análise usando Ultralytics YOLO26

Introdução

Este guia fornece uma visão geral abrangente de três tipos fundamentais de visualizações de dados: gráficos de linhas, gráficos de barras e gráficos de pizza. Cada seção inclui instruções passo a passo e trechos de código sobre como criar essas visualizações usando Python.



Assista: Como gerar Gráficos Analíticos usando Ultralytics | Gráficos de Linha, Gráficos de Barra, Área e Gráficos de Pizza

Amostras Visuais

Gráfico de LinhasGráfico de BarrasGráfico de Setores
Gráfico linear YOLO para rastreamento de objetosGráfico de barras YOLO para contagens de detecçãoGráfico circular YOLO para distribuição de classes

Por que os gráficos são importantes?

  • Gráficos de linhas são ideais para rastrear mudanças em períodos curtos e longos e para comparar mudanças para vários grupos durante o mesmo período.
  • Gráficos de barras, por outro lado, são adequados para comparar quantidades entre diferentes categorias e mostrar relações entre uma categoria e seu valor numérico.
  • Por fim, os gráficos de pizza são eficazes para ilustrar proporções entre categorias e mostrar partes de um todo.

Analytics usando Ultralytics YOLO

yolo solutions analytics show=True

# Pass the source
yolo solutions analytics source="path/to/video.mp4"

# Generate the pie chart
yolo solutions analytics analytics_type="pie" show=True

# Generate the bar plots
yolo solutions analytics analytics_type="bar" show=True

# Generate the area plots
yolo solutions analytics analytics_type="area" show=True
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))
out = cv2.VideoWriter(
    "analytics_output.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

# Initialize analytics object
analytics = solutions.Analytics(
    show=True,  # display the output
    analytics_type="line",  # pass the analytics type, could be "pie", "bar" or "area".
    model="yolo26n.pt",  # path to the YOLO26 model file
    # classes=[0, 2],  # display analytics for specific detection classes
)

# Process video
frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame

        # print(results)  # access the output

        out.write(results.plot_im)  # write the video file
    else:
        break

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

Analytics Argumentos

Aqui está uma tabela que descreve os argumentos de Analytics:

ArgumentoTipoPadrãoDescrição
modelstrNoneCaminho para um arquivo de modelo Ultralytics YOLO.
analytics_typestr'line'Tipo de gráfico, ou seja, line, bar, area, ou pie.

Também pode aproveitar diferentes track argumentos no Analytics 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.

Adicionalmente, os seguintes argumentos de visualização são suportados:

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.

Conclusão

Compreender quando e como usar diferentes tipos de visualizações é crucial para uma análise de dados eficaz. Gráficos de linha, gráficos de barras e gráficos de pizza são ferramentas fundamentais que podem ajudá-lo a transmitir a história dos seus dados de forma mais clara e eficaz. A solução Ultralytics YOLO26 Analytics oferece uma maneira simplificada de gerar essas visualizações a partir dos seus resultados de detect de objetos e tracking, tornando mais fácil extrair insights significativos dos seus dados visuais.

FAQ

Como crio um gráfico de linha usando o Ultralytics YOLO26 Analytics?

Para criar um gráfico de linha usando o Ultralytics YOLO26 Analytics, siga estes passos:

  1. Carregue um modelo YOLO26 e abra seu arquivo de vídeo.
  2. Inicializar o Analytics classe com o tipo definido como "line".
  3. Itere através de frames de vídeo, atualizando o gráfico de linhas com dados relevantes, como contagens de objetos por frame.
  4. Salvar o vídeo de saída exibindo o gráfico de linhas.

Exemplo:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para obter mais detalhes sobre a configuração do Analytics classe, visite o Análise usando Ultralytics YOLO26 seção.

Quais são os benefícios de usar o Ultralytics YOLO26 para criar gráficos de barras?

Usar o Ultralytics YOLO26 para criar gráficos de barras oferece vários benefícios:

  1. Visualização de Dados em Tempo Real: Integre perfeitamente os resultados da detecção de objetos em gráficos de barras para atualizações dinâmicas.
  2. Facilidade de Uso: API simples e funções tornam direto implementar e visualizar dados.
  3. Personalização: Personalize títulos, rótulos, cores e muito mais para atender aos seus requisitos específicos.
  4. Eficiência: Lidar eficientemente com grandes quantidades de dados e atualizar gráficos em tempo real durante o processamento de vídeo.

Use o exemplo a seguir para gerar um gráfico de barras:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="bar",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para saber mais, visite a seção Gráfico de Barras no guia.

Por que devo usar o Ultralytics YOLO26 para criar gráficos de pizza em meus projetos de visualização de dados?

O Ultralytics YOLO26 é uma excelente escolha para criar gráficos de pizza porque:

  1. Integração com Detecção de Objetos: Integre diretamente os resultados da detecção de objetos em gráficos de pizza para obter insights imediatos.
  2. API Amigável: Simples de configurar e usar com o mínimo de código.
  3. Personalizável: Várias opções de personalização para cores, rótulos e muito mais.
  4. Atualizações em Tempo Real: Manipule e visualize dados em tempo real, o que é ideal para projetos de análise de vídeo.

Aqui está um exemplo rápido:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="pie",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para obter mais informações, consulte a seção Gráfico de Pizza no guia.

O Ultralytics YOLO26 pode ser usado para track objetos e atualizar visualizações dinamicamente?

Sim, o Ultralytics YOLO26 pode ser usado para track objetos e atualizar visualizações dinamicamente. Ele suporta o rastreamento de múltiplos objetos em tempo real e pode atualizar várias visualizações como gráficos de linha, gráficos de barras e gráficos de pizza com base nos dados dos objetos rastreados.

Exemplo para rastrear e atualizar um gráfico de linhas:

import cv2

from ultralytics import solutions

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

w, h, fps = (int(cap.get(x)) for x in (cv2.CAP_PROP_FRAME_WIDTH, cv2.CAP_PROP_FRAME_HEIGHT, cv2.CAP_PROP_FPS))

out = cv2.VideoWriter(
    "ultralytics_analytics.avi",
    cv2.VideoWriter_fourcc(*"MJPG"),
    fps,
    (1280, 720),  # this is fixed
)

analytics = solutions.Analytics(
    analytics_type="line",
    show=True,
)

frame_count = 0
while cap.isOpened():
    success, im0 = cap.read()
    if success:
        frame_count += 1
        results = analytics(im0, frame_count)  # update analytics graph every frame
        out.write(results.plot_im)  # write the video file
    else:
        break

cap.release()
out.release()
cv2.destroyAllWindows()

Para saber mais sobre a funcionalidade completa, consulte a seção Rastreamento.

O que diferencia o Ultralytics YOLO26 de outras soluções de detect de objetos como OpenCV e TensorFlow?

O Ultralytics YOLO26 se destaca de outras soluções de detect de objetos como OpenCV e TensorFlow por várias razões:

  1. De ponta Precisão: O YOLO26 oferece precisão superior em tarefas de detect de objetos, segment e classificação.
  2. Facilidade de Uso: A API amigável permite uma implementação e integração rápidas sem codificação extensa.
  3. Desempenho em Tempo Real: Otimizado para inferência de alta velocidade, adequado para aplicações em tempo real.
  4. Aplicações Diversas: Suporta várias tarefas, incluindo rastreamento de múltiplos objetos, treinamento de modelos personalizados e exportação para diferentes formatos como ONNX, TensorRT e CoreML.
  5. Documentação Abrangente: Extensa documentação e recursos de blog para guiar os usuários em cada etapa.

Para comparações e casos de uso mais detalhados, explore o nosso Blog da Ultralytics.



📅 Criado há 1 ano ✏️ Atualizado há 2 dias
glenn-jocherRizwanMunawarMatthewNoycelakshanthadUltralyticsAssistantIvorZhu331

Comentários