Aprimorando aplicações de visão computacional com visualizações
Aprenda como transformar dados de aplicações de visão computacional em gráficos fáceis de entender usando o pacote Python da Ultralytics para obter melhores insights.

A cada minuto, quantidades enormes de dados são criadas, desde terminais de aeroportos e estações de trem até shopping centers. À medida que a IA se torna mais utilizada, muitos desses dados agora são analisados e decompostos. 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 digerir.
Isto é especialmente verdade quando se trata de aplicações de visão computacional. A Computer vision é um ramo da artificial intelligence (AI) que ajuda as máquinas a interpretar e compreender informação visual do mundo circundante, como imagens e vídeos. Embora os modelos de IA de visão, como o Ultralytics YOLO11, possam ajudar a analisar esses dados visuais para obter informações, a visualização de dados ajuda a colocar essa informação num formato que é fácil de compreender.
Simplificando, a visualização de dados preenche a lacuna entre dados brutos e um entendimento real usando gráficos analíticos significativos. No mundo atual orientado por dados, isso é fundamental, pois não basta que as máquinas apenas executem tarefas; precisamos que elas contem uma história.
Essa necessidade de narrar histórias é exatamente o motivo pelo qual a visualização de dados está a crescer, com o mercado preparado para atingir $18.36 billion até 2030. Anteriormente, explorámos como a visão computacional pode fornecer valiosos business insights. Hoje, vamos dar um passo em frente, percorrendo como gerar gráficos analíticos claros e perspicazes para aplicações de visão computacional utilizando o pacote Ultralytics. Vamos começar!

Fig 1. Um exemplo de visualização de dados com base nos resultados do YOLO11.
Uma visão geral da visualização de dados em aplicações de visão computacional#
A visualização de dados em aplicações de visão computacional envolve a transformação dos resultados de computer vision tasks, tais como a deteção e o rastreio de objetos, em gráficos ou painéis fáceis de compreender. Estes elementos visuais ajudam a identificar padrões e tendências, especialmente quando se trabalha com grandes volumes de filmagens de vídeo.
Por exemplo, em vez de analisar manualmente horas de vídeo de vigilância, um gráfico de linhas simples 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 razões principais pelas quais a visualização de dados é útil:
-
Simplifica dados complexos: Milhares de detecções de objetos podem ser esmagadoras, mas visualizações como gráficos de barras ou de pizza tornam mais fácil ver o panorama geral, por exemplo, quais objetos aparecem com mais frequência.
-
Revela tendências: Gráficos de linha e de barra ajudam a identificar padrões ao longo do tempo, como quando e onde o tráfego de pedestres tende a aumentar.
-
Economiza tempo: Em vez de analisar cada quadro de vídeo, os gráficos podem destacar rapidamente detalhes importantes, como picos repentinos na atividade de veículos ou aparições incomuns de objetos em zonas restritas.
-
Melhora a comunicação: Recursos visuais facilitam o compartilhamento de insights com públicos não técnicos, ajudando todos a entender os resultados de forma mais clara.
Diferentes tipos de visualizações de dados#
Diferentes tipos de gráficos analíticos podem transformar os resultados da visão computacional em elementos visuais claros e fáceis de compreender. Digamos que estás a trabalhar numa computer vision application que deteta pessoas e veículos em imagens de vigilância. Neste caso, um gráfico de linhas é excelente para mostrar como o número de deteções muda ao longo do tempo, como o rastreio de picos de tráfego de pedestres ao longo do dia.
Da mesma forma, gráficos de barras são úteis quando você deseja comparar o número de diferentes tipos de objetos detectados, como ver se aparecem mais carros, bicicletas ou pedestres no vídeo. Gráficos de pizza, por outro lado, mostram a porcentagem que cada tipo de objeto representa do total de detecções. Cada gráfico tem seu próprio uso e ajuda a tornar dados complexos de visão computacional mais fáceis de interpretar e compartilhar.

Fig 2. Exemplos de gráficos analíticos.
Gerando gráficos analíticos para obter insights de visão computacional#
Agora que explorámos o que é a visualização de dados e porque é que diferentes tipos de gráficos analíticos são importantes, vamos analisar mais de perto como utilizar a Ultralytics Analytics solution para visualizar os resultados das previsões do teu modelo de visão computacional. Antes de percorrermos o processo passo a passo, vamos dar uma vista de olhos às ferramentas e opções de configuração para treinar e utilizar o pacote Ultralytics e modelos como o YOLO11.
O pacote Python Ultralytics facilita o treinamento de modelos, detecção de objetos, execução de previsões e visualização de resultados. Para começar com ele, você precisará de um ambiente de codificação. Aqui estão três opções simples:
-
Interface de Linha de Comando (CLI): É uma ferramenta básica, apenas de texto, onde você pode digitar comandos para executar seu código. Ela não possui uma interface visual, e você interage com ela digitando instruções em um terminal ou prompt de comando.
-
Jupyter Notebooks: É um ambiente de codificação interativo onde você pode escrever, executar e testar pequenos blocos de código (chamados de "células") um por vez. Ele mostra os resultados diretamente abaixo de cada célula, tornando fácil entender o que está acontecendo passo a passo. É especialmente útil para aprendizado e experimentação.
-
Google Colab: Esta opção é uma versão gratuita e baseada na cloud do Jupyter Notebooks que é executada no teu browser. Não requer qualquer configuração no teu computador e dá-te acesso a GPUs gratuitos para um processamento mais rápido.
Estas ferramentas são ótimas para começar rapidamente, mas os utilizadores também podem integrar o Ultralytics em Ambientes de Desenvolvimento Integrados (IDEs) como o Visual Studio Code (VS Code) ou em pipelines de produção. Para mais opções, explora a Ultralytics documentation oficial.
Passo 1: Configurar o ambiente#
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 você estiver trabalhando no Google Colab, tenha em mente que ele usa uma CPU por padrão, o que pode diminuir o desempenho. Para acelerar as coisas, mude para uma GPU indo ao menu "Runtime", selecionando "Change runtime type" e definindo o acelerador de hardware para GPU (idealmente uma T4).
Para preparares o teu ambiente, precisas de instalar o Ultralytics Python package utilizando o comando mencionado abaixo. Em ferramentas baseadas em blocos de notas como o Colab ou o Jupyter, certifica-te de que adicionas um ponto de exclamação (!) antes do comando.
pip install ultralyticsPasso 2: Baixando um arquivo de vídeo#
Em seguida, vamos precisar de um vídeo para trabalhar. Podes descarregar um facilmente de um site de stock gratuito como o Pexels. Certifica-te de que escolhes um vídeo que inclua objetos que o Ultralytics YOLO11 consiga detetar. Como o modelo foi pré-treinado no COCO dataset, ele consegue reconhecer objetos comuns como pessoas, carros e bicicletas.
Para este tutorial, vamos utilizar um vídeo de baggage handling num terminal de aeroporto movimentado. Podes utilizar o mesmo vídeo ou escolher um diferente que se adeqúe ao teu projeto.

Fig 3. Um fotograma do vídeo de entrada que mostra o manuseamento de bagagem num terminal de aeroporto.
Passo 3: Importando pacotes#
Em seguida, podemos importar as bibliotecas necessárias e carregar o vídeo de entrada.
Vamos começar por importar o OpenCV (cv2), que é uma biblioteca amplamente utilizada para trabalhar com imagens e vídeos em visão computacional. Também vamos importar a biblioteca Ultralytics, que nos ajuda a executar a deteção de objetos e a generate analytics a partir do vídeo.
Então, tentaremos abrir o arquivo de vídeo especificando seu caminho. Certifique-se de substituir "path/to/video.mp4" pela localização 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 carregue corretamente. Se o caminho estiver incorreto ou o arquivo estiver corrompido, o programa irá parar e mostrar uma mensagem de erro: "Error reading video file."
import cv2
from ultralytics import solutions
cap = cv2.VideoCapture("path/to/video.mp4")
assert cap.isOpened(), "Error reading video file"Passo 4: Preparando o gravador de vídeo#
Em seguida, configuraremos um gravador de vídeo para salvar a saída. Quando executarmos as análises, 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 fragmento de código abaixo, extraímos primeiro as principais propriedades do vídeo de entrada: a sua largura, altura e frames per second (fps). Estes valores são obtidos diretamente do vídeo e convertidos para números inteiros para garantir que estão 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 para 1280×720 pixels, independentemente do tamanho do vídeo original.
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),
)Passo 5: Configurando a solução de Analytics da Ultralytics#
Agora, vamos configurar a Ultralytics Analytics solution para gerar gráficos a partir do vídeo. Podes escolher a forma como os dados são apresentados, tal como um gráfico de linhas, circular, de área ou de barras, e qual o YOLO model a utilizar. Neste exemplo, vamos utilizar o modelo leve "yolo11n.pt" e mostrar os resultados como um gráfico de área.
analytics = solutions.Analytics(
show=True,
analytics_type="area",
model="yolo11n.pt",
)Passo 6: Processando o vídeo de entrada#
A parte final do código executa um loop que processa o vídeo um quadro por vez. Cada quadro é passado para a ferramenta de análise, que atualiza o gráfico em tempo real. O gráfico atualizado é então escrito no vídeo de saída. Se um quadro não puder ser lido, o loop para. Após todos os quadros serem processados, o vídeo é salvo e quaisquer 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()Passo 7: Juntando tudo#
Finalmente, vamos juntar tudo. Com apenas algumas linhas extra de código, conseguimos gerar dois vídeos de saída: um mostrando os resultados de object detection do Ultralytics YOLO11 com caixas delimitadoras e etiquetas, e outro mostrando os gráficos de analítica 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 tanto o rastreamento de objetos quanto a geração de gráficos, para que você possa ver os resultados da detecção ao lado dos insights visuais.
Aqui está o código completo, juntamente com exemplos das saídas de previsão e de 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 for executado com sucesso, ele gerará dois vídeos de saída. O arquivo “output_predictions.avi” mostrará os resultados da detecção de objetos com caixas delimitadoras e rótulos, enquanto “output_analytics.avi” exibirá os gráficos de análise em tempo real com base nas detecções.

Fig 4. Um quadro do arquivo “output_predictions.avi”.
Aqui está um quadro da saída de análise com base nas previsões. Usando o gráfico de área, podemos obter insights como flutuações nas contagens de malas ao longo do tempo, como um pico em torno do quadro 268, indicando movimento de malas ou atividade nessa parte do vídeo.

Fig 5. Previsões do Ultralytics YOLO11 visualizadas como um gráfico de áreas.
Usando gráficos em aplicações de visão computacional do mundo real#
Aqui estão algumas aplicações de visão computacional do mundo real onde a visualização de dados tem um impacto significativo:
-
Healthcare: Os sistemas de visão computacional podem monitorizar a atividade dos pacientes, o movimento dos funcionários e a utilização de equipamentos em tempo real. Isto gera grandes quantidades de dados visuais que, quando visualizados, podem revelar padrões — tais como tempos de pico de ocupação de pacientes ou atrasos nas respostas.
-
Varejo e e-commerce: A IA de visão pode ser usada para rastrear o movimento do cliente, tempo de permanência em frente às prateleiras e interações com produtos. Análises visuais como gráficos de barras ou de pizza podem destacar quais zonas da loja ou itens recebem mais atenção, ajudando os varejistas a otimizar a colocação de produtos e melhorar as conversões.
-
Manufatura: Câmeras equipadas com modelos de visão computacional podem monitorar linhas de montagem para detectar defeitos, violações de segurança ou status do equipamento. A visualização de dados pode mostrar tendências nos tipos de defeito mais comuns ou destacar períodos de tempo com as maiores taxas de erro, permitindo uma tomada de decisão mais rápida e manutenção preventiva.
Principais pontos#
Com o pacote Ultralytics, você pode transformar facilmente filmagens de vídeo em gráficos claros e perspicazes que revelam o que está acontecendo, como rastrear quantas pessoas ou objetos aparecem ao longo do tempo. Em vez de analisar manualmente horas de vídeo, você pode gerar resumos visuais que destacam padrões e tendências principais, tornando mais fácil agir rapidamente. Seja em hospitais, lojas de varejo ou instalações de manufatura, esses gráficos transformam saídas complexas de IA em insights que qualquer pessoa pode entender e usar.
Queres saber mais sobre IA? Explora o nosso GitHub repository, conecta-te com our community e consulta our licensing options para impulsionar o teu projeto de visão computacional. Descobre mais sobre inovações como AI in manufacturing e computer vision in the logistics na nossa página de soluções.






