Saiba como transformar dados de aplicações de visão por computador em gráficos fáceis de compreender utilizando o pacote Ultralytics Python para obter melhores informações.
Saiba como transformar dados de aplicações de visão por computador em gráficos fáceis de compreender utilizando o pacote Ultralytics Python para obter melhores informações.
A cada minuto, enormes quantidades de dados são criadas, desde terminais de aeroportos e estações de trem até shoppings. À medida que a IA se torna mais amplamente utilizada, muitos desses dados são agora analisados e detalhados. Mas, às vezes, os resultados desses modelos de IA podem dificultar a identificação de padrões ou a compreensão de tendências rapidamente. É aí que a visualização de dados ajuda - ela transforma saídas complexas em insights claros e fáceis de assimilar.
Isto é especialmente verdade quando se trata de aplicações de visão por computador. A visão computacional é um ramo da inteligência artificial (IA) que ajuda as máquinas a interpretar e compreender a informação visual do mundo circundante, como imagens e vídeos. Enquanto os modelos de IA de visão, como o Ultralytics YOLO11podem ajudar a analisar esses dados visuais para obter informações, a visualização de dados ajuda a colocar essas informações num formato fácil de compreender.
Simplificando, a visualização de dados preenche a lacuna entre dados brutos e compreensão real, usando gráficos analíticos significativos. No mundo atual orientado por dados, isso é fundamental porque não basta que as máquinas apenas executem tarefas - precisamos que elas contem uma história.
Essa necessidade de contar histórias é exatamente a razão pela qual a visualização de dados está a crescer, com o mercado a atingir 18,36 mil milhões de dólares até 2030. Anteriormente, explorámos a forma como a visão computacional pode fornecer valiosas informações comerciais. Hoje, vamos dar um passo adiante, explicando como gerar gráficos analíticos claros e perspicazes para aplicações de visão computacional usando o pacote Ultralytics . Vamos começar!

A visualização de dados em aplicações de visão computacional envolve a transformação dos resultados de tarefas de visão computacional, como detecção e rastreamento de objetos, em gráficos ou painéis fáceis de entender. Esses recursos visuais ajudam a identificar padrões e tendências, especialmente ao trabalhar com grandes volumes de filmagens de vídeo.
Por exemplo, em vez de revisar manualmente horas de vídeo de vigilância, um simples gráfico de linhas mostrando o número de carros ou pessoas detectadas ao longo do tempo pode destacar rapidamente os horários de pico ou períodos incomumente tranquilos.
Aqui estão algumas das principais razões pelas quais a visualização de dados é útil:
Diferentes tipos de gráficos analíticos podem transformar os resultados da visão computacional em visuais claros e fáceis de entender. Digamos que você esteja trabalhando em uma aplicação de visão computacional que detecta pessoas e veículos em imagens de vigilância. Nesse caso, um gráfico de linhas é ótimo para mostrar como o número de detecções muda ao longo do tempo, como rastrear picos no tráfego de pedestres ao longo do dia.
Da mesma forma, os gráficos de barras são úteis quando você deseja comparar o número de diferentes tipos de objetos detectados, como ver se mais carros, bicicletas ou pedestres aparecem no vídeo. Os gráficos de pizza, por outro lado, mostram qual porcentagem cada tipo de objeto representa do total de detecções. Cada gráfico tem seu próprio uso e ajuda a tornar os dados complexos de visão computacional mais fáceis de interpretar e compartilhar.

Agora que já explorámos o que é a visualização de dados e porque é que os diferentes tipos de gráficos analíticos são importantes, vamos analisar mais detalhadamente como utilizar a soluçãoUltralytics Analytics para visualizar os resultados das previsões do seu modelo de visão por computador. Antes de percorrermos o processo passo a passo, vejamos as ferramentas e as opções de configuração para treinar e utilizar o pacote Ultralytics e modelos como o YOLO11.
O pacote Ultralytics Python facilita o treino de modelos, a detect objectos, a execução de previsões e a visualização de resultados. Para começar a utilizá-lo, é necessário um ambiente de codificação. Aqui estão três opções simples:
Estas ferramentas são óptimas para começar rapidamente, mas os utilizadores também podem integrar Ultralytics em ambientes de desenvolvimento integrado (IDEs) como o Visual Studio Code (VS Code) ou em pipelines de produção. Para obter mais opções, explore a documentação oficial Ultralytics .
Depois de escolher seu ambiente preferido, o próximo passo é configurá-lo para executar previsões e visualizar os resultados. Você pode usar qualquer um dos ambientes mencionados acima, dependendo do que for mais confortável para você.
Se estiver a trabalhar no Google Colab, lembre-se de que este utiliza uma CPU por predefinição, o que pode tornar o desempenho mais lento. Para acelerar o processo, mude para uma GPU indo ao menu "Tempo de execução", selecionando "Alterar tipo de tempo de execução" e definindo o acelerador de hardware para GPU (idealmente um T4).
Para preparar o seu ambiente, terá de instalar o pacoteUltralytics Python utilizando o comando mencionado abaixo. Em ferramentas baseadas em notebook, como Colab ou Jupyter, certifique-se de adicionar um ponto de exclamação (!) antes do comando.
pip install ultralyticsDe seguida, precisamos de um vídeo para trabalhar. Pode facilmente descarregar um vídeo de um site de stock gratuito como o Pexels. Certifique-se de que escolhe um vídeo que inclua objectos YOLO11 consiga detect. Como o modelo é pré-treinado no conjunto de dadosCOCO , ele pode reconhecer objetos comuns, como pessoas, carros e bicicletas.
Para este tutorial, usaremos um vídeo de manuseio de bagagem em um terminal de aeroporto movimentado. Você pode usar o mesmo vídeo ou escolher um diferente que se adapte ao seu projeto.

Em seguida, podemos importar as bibliotecas necessárias e carregar o vídeo de entrada.
Começaremos por importar o OpenCV (cv2), que é uma biblioteca muito utilizada para trabalhar com imagens e vídeo em visão computacional. Também vamos importar a biblioteca Ultralytics , que nos ajuda a executar a deteção de objectos e a gerar análises a partir do vídeo.
Em seguida, tentaremos abrir o arquivo de vídeo especificando seu caminho. Certifique-se de substituir "path/to/video.mp4" pelo local real do seu arquivo de vídeo baixado.
Além disso, o trecho de código abaixo inclui uma verificação simples para garantir que o vídeo seja carregado corretamente. Se o caminho estiver errado ou o arquivo estiver corrompido, o programa irá parar e mostrar uma mensagem de erro: "Erro ao ler o arquivo de vídeo".
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"Em seguida, configuraremos um gravador de vídeo para salvar a saída. Quando executarmos a análise, esta parte do código criará um novo arquivo de vídeo que registra os gráficos atualizados gerados a partir de cada quadro do vídeo original.
No trecho de código abaixo, primeiro extraímos as propriedades principais do vídeo de entrada - sua largura, altura e quadros por segundo (fps). Esses valores são retirados diretamente do vídeo e convertidos em números inteiros para garantir que estejam no formato correto para escrever a saída.
Em seguida, usamos a função cv2.VideoWriter para criar um novo arquivo de vídeo, chamado "analytics_output.avi" (você pode renomeá-lo conforme necessário). O vídeo é salvo usando o formato MJPG, que é um método comum de compressão de vídeo. A resolução de saída é definida como 1280×720 pixels, independentemente do tamanho original do vídeo.
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),
)Agora, vamos configurar a solução Ultralytics Analytics para gerar gráficos a partir do vídeo. Pode escolher a forma como os dados são apresentados, como um gráfico de linhas, de tartes, de áreas ou de barras, e qual o modeloYOLO a utilizar. Neste exemplo, utilizaremos o modelo leve "yolo11n.pt" e mostraremos os resultados como um gráfico de área.
analytics = solutions.Analytics(
show=True,
analytics_type="area",
model="yolo11n.pt",
)A parte final do código executa um loop que processa o vídeo um frame de cada vez. Cada frame é passado para a ferramenta de análise, que atualiza o gráfico em tempo real. O gráfico atualizado é então gravado no vídeo de saída. Se um frame não puder ser lido, o loop é interrompido. Depois que todos os frames são processados, o vídeo é salvo e todas as janelas abertas são fechadas.
frame_count = 0
while cap.isOpened():
success, im0 = cap.read()
if success:
frame_count += 1
results = analytics(im0, frame_count)
out.write(results.plot_im)
else:
break
cap.release()
out.release()
cv2.destroyAllWindows()Finalmente, vamos juntar tudo. Com apenas algumas linhas de código extra, podemos gerar dois vídeos de saída: um que mostra os resultados dadeteção de objectos YOLO11 com caixas delimitadoras e etiquetas, e outro que mostra os gráficos analíticos em tempo real.
Para fazer isso, configuraremos duas instâncias de VideoWriter - uma para salvar o vídeo de previsão e outra para a análise. Esta versão do código inclui rastreamento de objetos e geração de gráficos, para que você possa ver os resultados da detecção juntamente com os insights visuais.
Aqui está o código abrangente, juntamente com exemplos das saídas de previsão e análise.
import cv2
from ultralytics import YOLO, solutions
# Load model and video
model = YOLO('yolo11n.pt')
cap = cv2.VideoCapture('path/to/video.mp4')
assert cap.isOpened(), "Error opening video"
# Get properties
w, h = int(cap.get(3)), int(cap.get(4))
fps = cap.get(5)
analytics_res = (1280, 720)
# Writers for prediction and analytics videos
out_pred = cv2.VideoWriter('output_predictions.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, (w, h))
out_ana = cv2.VideoWriter('output_analytics.avi', cv2.VideoWriter_fourcc(*'MJPG'), fps, analytics_res)
# Analytics setup
analytics = solutions.Analytics(show=True, analytics_type="area", model='yolo11n.pt')
# Process frames
frame_count = 0
while cap.isOpened():
ret, frame = cap.read()
if not ret:
break
frame_count += 1
pred_frame = model.track(frame, persist=True)[0].plot()
out_pred.write(pred_frame)
resized = cv2.resize(pred_frame, analytics_res)
out_ana.write(analytics(resized, frame_count).plot_im)
cap.release(), out_pred.release(), out_ana.release(), cv2.destroyAllWindows()Quando o código acima é executado com sucesso, ele irá gerar dois vídeos de saída. O ficheiro “output_predictions.avi” mostrará os resultados da detecção de objetos com caixas delimitadoras e rótulos, enquanto o “output_analytics.avi” exibirá os gráficos de análise em tempo real com base nas detecções.

Aqui está um frame da saída de análise com base nas previsões. Usando o gráfico de área, podemos obter insights como flutuações na contagem de malas ao longo do tempo, como um pico em torno do frame 268, indicando movimento de malas ou atividade nessa parte do vídeo.

Aqui estão algumas aplicações de visão computacional no mundo real onde a visualização de dados tem um impacto significativo:
Com o pacote Ultralytics , pode facilmente transformar as imagens de vídeo em gráficos claros e perspicazes que revelam o que está a acontecer, como por exemplo, o número de pessoas ou objectos que aparecem ao longo do tempo. Em vez de rever manualmente horas de vídeo, pode gerar resumos visuais que destacam os principais padrões e tendências, facilitando a ação rápida. Quer seja em hospitais, lojas de retalho ou instalações fabris, estes gráficos transformam resultados complexos de IA em informações que qualquer pessoa pode compreender e utilizar.
Quer saber mais sobre IA? Explore o nosso repositório GitHub, conecte-se com a nossa comunidade e consulte as nossas opções de licenciamento para dar o pontapé de saída no seu projeto de visão computacional. Saiba mais sobre inovações como a IA na indústria transformadora e a visão computacional na indústria da logística nas nossas páginas de soluções.