Melhorar aplicações de visão computacional com visualizações
Aprende a transformar dados de aplicações de visão computacional em gráficos fáceis de compreender utilizando o pacote Python da Ultralytics para obter melhores insights.

A cada minuto, são criadas enormes quantidades de dados, desde terminais de aeroporto e estações de comboio até centros comerciais. À medida que a IA é utilizada de forma mais abrangente, muitos desses dados são agora analisados e processados. No entanto, por vezes, os resultados destes modelos de IA podem dificultar a identificação de padrões ou a compreensão de tendências de relance. É aqui que a visualização de dados ajuda — transforma resultados complexos em informações claras e fáceis de assimilar.
Isto é especialmente verdade no caso das aplicações de visão computacional. A visão computacional é um ramo da inteligência artificial (AI) que ajuda as máquinas a interpretar e compreender informações visuais do mundo à sua volta, como imagens e vídeos. Embora os modelos de IA de visão, como o Ultralytics YOLO11, possam ajudar a analisar estes dados visuais para obter informações, a visualização de dados ajuda a apresentar essas informações num formato fácil de compreender.
Em termos simples, a visualização de dados estabelece uma ligação entre os dados brutos e a compreensão efetiva através de gráficos analíticos significativos. No mundo atual orientado por dados, isto é essencial, porque não basta que as máquinas executem tarefas — precisamos que contem uma história.
Essa necessidade de contar histórias é precisamente a razão pela qual a visualização de dados está a ganhar popularidade, com o mercado a deverá atingir $18,36 mil milhões até 2030. Anteriormente, explorámos como a visão computacional pode fornecer informações empresariais valiosas. Hoje, vamos um passo além, mostrando como gerar gráficos analíticos claros e informativos 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 transformar os resultados de tarefas de visão computacional, como a deteção e o rastreamento de objetos, em gráficos ou dashboards fáceis de compreender. Estas visualizações ajudam a identificar padrões e tendências, especialmente ao trabalhar com grandes volumes de vídeo.
Por exemplo, em vez de rever manualmente horas de vídeo de vigilância, um simples gráfico de linhas que apresente o número de carros ou pessoas detetados ao longo do tempo pode destacar rapidamente as horas de maior movimento ou os períodos invulgarmente calmos.
Eis algumas razões principais pelas quais a visualização de dados é útil:
-
Simplifica dados complexos: Milhares de deteções de objetos podem ser difíceis de processar, mas visualizações como gráficos de barras ou circulares facilitam a compreensão do panorama geral, como, por exemplo, quais os objetos que aparecem com maior frequência.
-
Revela tendências: Os gráficos de linhas e de barras ajudam a identificar padrões ao longo do tempo, como quando e onde o fluxo de pessoas tende a aumentar.
-
Poupa tempo: Em vez de rever cada fotograma do vídeo, os gráficos podem destacar rapidamente detalhes importantes, como aumentos repentinos na atividade de veículos ou o aparecimento de objetos invulgares em zonas restritas.
-
Melhora a comunicação: As visualizações facilitam a partilha de informações com públicos não técnicos, ajudando todos a compreender melhor os resultados.
Diferentes tipos de visualizações de dados#
Diferentes tipos de gráficos analíticos podem transformar os resultados de visão computacional em visualizações claras e fáceis de compreender. Imagina que estás a trabalhar numa aplicação de visão computacional que deteta pessoas e veículos em imagens de videovigilância. Neste caso, um gráfico de linhas é excelente para mostrar como o número de deteções muda ao longo do tempo, como ao acompanhar os picos de fluxo de pessoas durante o dia.
De forma semelhante, os gráficos de barras são úteis quando queres comparar o número de diferentes tipos de objetos detetados, como verificar se aparecem mais carros, bicicletas ou peões no vídeo. Já os gráficos circulares mostram que percentagem do total de deteções corresponde a cada tipo de objeto. Cada gráfico tem a sua própria utilidade e ajuda a tornar os dados complexos de visão computacional mais fáceis de interpretar e partilhar.

Fig. 2. Exemplos de gráficos analíticos.
Gerar gráficos analíticos para obter informações sobre visão computacional#
Agora que explorámos o que é a visualização de dados e por que razão são importantes os diferentes tipos de gráficos analíticos, vamos analisar mais detalhadamente como utilizar a solução de Analytics da Ultralytics para visualizar os resultados das previsões do teu modelo de visão computacional. Antes de apresentarmos o processo passo a passo, vamos analisar as ferramentas e opções de configuração para treinar e utilizar o pacote Ultralytics e modelos como o YOLO11.
O pacote Python da Ultralytics facilita o treino de modelos, a deteção de objetos, a execução de previsões e a visualização de resultados. Para começar a utilizá-lo, precisas de um ambiente de programação. Eis três opções simples:
-
Interface de linha de comandos (CLI): É uma ferramenta básica, apenas de texto, onde podes escrever comandos para executar o teu código. Não tem uma interface visual e interages com ela escrevendo instruções num terminal ou numa linha de comandos.
-
Jupyter Notebooks: É um ambiente de programação interativo onde podes escrever, executar e testar pequenos blocos de código (chamados "células"), um de cada vez. Apresenta os resultados diretamente abaixo de cada célula, facilitando a compreensão do que está a acontecer passo a passo. É especialmente útil para aprendizagem e experimentação.
-
Google Colab: Esta opção é uma versão gratuita e baseada na nuvem do Jupyter Notebooks que é executada no teu navegador. Não requer qualquer configuração no teu computador e dá-te acesso a GPUs gratuitas para um processamento mais rápido.
Estas ferramentas são excelentes para começar rapidamente, mas também podes integrar a Ultralytics em Ambientes de Desenvolvimento Integrado (IDEs), como o Visual Studio Code (VS Code), ou em pipelines de produção. Para conheceres mais opções, consulta a documentação oficial da Ultralytics.
Passo 1: Configurar o ambiente#
Depois de escolheres o teu ambiente preferido, o passo seguinte é configurá-lo para executar previsões e visualizar os resultados. Podes utilizar qualquer um dos ambientes mencionados acima, dependendo daquele com que te sentes mais à vontade.
Se estiveres a trabalhar no Google Colab, tem em atenção que este utiliza um CPU por predefinição, o que pode tornar o desempenho mais lento. Para acelerar o processamento, muda para uma GPU acedendo ao menu "Runtime", selecionando "Change runtime type" e definindo o acelerador de hardware como GPU (idealmente uma T4).
Para preparar o teu ambiente, terás de instalar o pacote Python da Ultralytics utilizando o comando indicado abaixo. Em ferramentas baseadas em notebooks, como o Colab ou o Jupyter, não te esqueças de adicionar um ponto de exclamação (!) antes do comando.
pip install ultralyticsPasso 2: Transferir um ficheiro de vídeo#
Em seguida, precisamos de um vídeo para trabalhar. Podes transferir facilmente um de um site gratuito de vídeos de stock, 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 conjunto de dados COCO, consegue reconhecer objetos comuns, como pessoas, carros e bicicletas.
Neste tutorial, vamos utilizar um vídeo de manuseamento de bagagem num terminal de aeroporto movimentado. Podes utilizar o mesmo vídeo ou escolher outro que se adeque ao teu projeto.

Fig. 3. Um fotograma do vídeo de entrada que mostra o manuseamento de bagagem num terminal de aeroporto.
Passo 3: Importar pacotes#
Em seguida, podemos importar as bibliotecas necessárias e carregar o vídeo de entrada.
Vamos começar por importar o OpenCV (cv2), uma biblioteca amplamente 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 objetos e a gerar análises a partir do vídeo.
Depois, vamos tentar abrir o ficheiro de vídeo especificando o respetivo caminho. Certifica-te de que substituis "path/to/video.mp4" pela localização real do ficheiro de vídeo transferido.
Além disso, o fragmento de código abaixo inclui uma verificação simples para garantir que o vídeo é carregado corretamente. Se o caminho estiver incorreto ou o ficheiro estiver corrompido, o programa será interrompido e apresentará 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: Preparar o gravador de vídeo#
Em seguida, vamos configurar um gravador de vídeo para guardar o resultado. Quando executarmos as análises, esta parte do código criará um novo ficheiro de vídeo que regista os gráficos atualizados gerados a partir de cada fotograma do vídeo original.
No fragmento de código abaixo, começamos por extrair propriedades essenciais do vídeo de entrada — a sua largura, altura e fotogramas por segundo (fps). Estes valores são obtidos diretamente do vídeo e convertidos em inteiros para garantir que estão no formato correto para escrever o resultado.
Em seguida, utilizamos a função cv2.VideoWriter para criar um novo ficheiro de vídeo, chamado "analytics_output.avi" (podes mudar o nome conforme necessário). O vídeo é guardado utilizando o formato MJPG, um método comum de compressão de vídeo. A resolução de saída é definida como 1280×720 píxeis, 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: Configurar a solução de Analytics da Ultralytics#
Agora, vamos configurar a solução de Analytics da Ultralytics para gerar gráficos a partir do vídeo. Podes escolher como os dados são apresentados, por exemplo, num gráfico de linhas, circular, de áreas ou de barras, bem como qual o modelo YOLO a utilizar. Neste exemplo, vamos utilizar o modelo leve "yolo11n.pt" e apresentar os resultados num gráfico de áreas.
analytics = solutions.Analytics(
show=True,
analytics_type="area",
model="yolo11n.pt",
)Passo 6: Processar o vídeo de entrada#
A parte final do código executa um ciclo que processa o vídeo, um fotograma de cada vez. Cada fotograma é enviado para a ferramenta de Analytics, que atualiza o gráfico em tempo real. O gráfico atualizado é então escrito no vídeo de saída. Se não for possível ler um fotograma, o ciclo é interrompido. Depois de todos os fotogramas serem processados, o vídeo é guardado 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()Passo 7: Juntar tudo#
Por fim, vamos juntar tudo. Com apenas mais algumas linhas de código, podemos gerar dois vídeos de saída: um que mostra os resultados de deteção de objetos do Ultralytics YOLO11 com caixas delimitadoras e etiquetas, e outro que mostra os gráficos de Analytics em tempo real.
Para isso, vamos configurar duas instâncias de VideoWriter — uma para guardar o vídeo de previsões e outra para o Analytics. Esta versão do código inclui o rastreamento de objetos e a geração de gráficos, para que possas ver os resultados da deteção juntamente com as informações visuais.
Eis o código completo, juntamente com exemplos dos resultados das previsões e do Analytics.
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, gera dois vídeos de saída. O ficheiro “output_predictions.avi” mostrará os resultados da deteção de objetos com caixas delimitadoras e etiquetas, enquanto “output_analytics.avi” apresentará os gráficos de Analytics em tempo real com base nas deteções.

Fig. 4. Um fotograma do ficheiro “output_predictions.avi”.
Eis um fotograma do resultado de Analytics com base nas previsões. Utilizando o gráfico de áreas, podemos obter informações como as flutuações no número de malas ao longo do tempo, por exemplo, um pico por volta do fotograma 268, que indica movimento ou atividade de malas nessa parte do vídeo.

Fig. 5. Previsões do Ultralytics YOLO11 visualizadas como um gráfico de áreas.
Utilizar gráficos em aplicações de visão computacional do mundo real#
Eis algumas aplicações de visão computacional do mundo real nas quais a visualização de dados tem um impacto significativo:
-
Cuidados de saúde: Os sistemas de visão computacional podem monitorizar em tempo real a atividade dos pacientes, o movimento do pessoal e a utilização de equipamentos. Isto gera grandes quantidades de dados visuais que, quando visualizados, podem revelar padrões — como os períodos de maior ocupação de pacientes ou atrasos nas respostas.
-
Retalho e comércio eletrónico: A IA de visão pode ser utilizada para acompanhar o movimento dos clientes, o tempo que permanecem em frente às prateleiras e as interações com os produtos. As análises visuais, como gráficos de barras ou circulares, podem destacar quais as zonas da loja ou os artigos que recebem mais atenção, ajudando os retalhistas a otimizar a disposição dos produtos e a melhorar as conversões.
-
Fabrico: As câmaras equipadas com modelos de visão computacional podem monitorizar linhas de montagem para detetar defeitos, violações de segurança ou o estado dos equipamentos. A visualização de dados pode mostrar tendências nos tipos de defeitos mais comuns ou destacar os períodos com as taxas de erro mais elevadas, permitindo uma tomada de decisões mais rápida e uma manutenção preventiva.
Principais conclusões#
Com o pacote Ultralytics, podes transformar facilmente imagens de vídeo em gráficos claros e informativos que revelam o que está a acontecer, como acompanhar quantas pessoas ou objetos aparecem ao longo do tempo. Em vez de rever manualmente horas de vídeo, podes gerar resumos visuais que destacam padrões e tendências importantes, facilitando uma atuação rápida. Seja em hospitais, lojas de retalho ou instalações industriais, estes gráficos transformam resultados complexos de IA em informações que qualquer pessoa consegue compreender e utilizar.
Queres saber mais sobre AI? Explora o nosso repositório no GitHub, liga-te à nossa comunidade e consulta as nossas opções de licenciamento para iniciares o teu projeto de visão computacional. Descobre mais sobre inovações como AI na indústria transformadora e visão computacional no setor da logística nas nossas páginas de soluções.









