Explore como o Filtro de Kalman estima os estados do sistema em condições de incerteza. Aprenda a usá-lo para rastreamento de objetos com Ultralytics para melhorar a precisão da IA.
Um filtro de Kalman (KF) é um algoritmo matemático recursivo utilizado para estimar o estado de um sistema dinâmico ao longo do tempo. Originalmente introduzida por Rudolf E. Kálmán, esta técnica é essencial para processar dados que são incertos, imprecisos ou contêm variações aleatórias, frequentemente referidas como «ruído». Ao combinar uma série de medições observadas ao longo do tempo contendo imprecisões estatísticas, o Filtro de Kalman produz estimativas de variáveis desconhecidas que são mais precisas do que aquelas baseadas em uma única medição. Nos campos de aprendizado de máquina (ML) e inteligência artificial (IA), ele atua como uma ferramenta crítica para modelagem preditiva, suavizando pontos de dados irregulares para revelar a verdadeira tendência subjacente.
O algoritmo opera num ciclo de duas etapas: previsão e atualização (também conhecida como correção). Ele pressupõe que o sistema subjacente é linear e que o ruído segue uma distribuição gaussiana (curva em forma de sino).
Embora tenha origem na teoria de controlo e na navegação aeroespacial, o Filtro de Kalman é agora omnipresente nas modernas pipelines de visão computacional (CV).
É útil diferenciar o Filtro de Kalman padrão das suas variações e alternativas encontradas na IA estatística:
No Ultralytics , os filtros Kalman são integrados diretamente nos algoritmos de rastreamento. Não é necessário escrever as equações manualmente; pode aproveitá-las ativando os modos de rastreamento. A Ultralytics permite gerir conjuntos de dados e treinar modelos que podem ser facilmente implementados com esses recursos de rastreamento.
Aqui está um exemplo conciso usando Python realizar o rastreamento com YOLO26, onde o rastreador subjacente aplica automaticamente a filtragem de Kalman para suavizar os movimentos da caixa delimitadora:
from ultralytics import YOLO
# Load the latest YOLO26 model
model = YOLO("yolo26n.pt")
# Run tracking on a video source
# The 'botsort' tracker uses Kalman Filters internally for state estimation
results = model.track(source="traffic_video.mp4", tracker="botsort.yaml")
# Process results
for result in results:
# Access the tracked IDs (assigned and maintained via KF logic)
if result.boxes.id is not None:
print(f"Tracked IDs in frame: {result.boxes.id.cpu().numpy()}")
Na implementação no mundo real, os dados raramente são perfeitos. As câmaras sofrem de desfocagem de movimento e os sensores sofrem ruído de sinal . O Filtro de Kalman atua como um sofisticado mecanismo de limpeza de dados dentro do ciclo de decisão. Ao refinar continuamente as estimativas, ele garante que os agentes de IA operem com base na realidade mais provável , em vez de reagir a cada falha momentânea no fluxo de entrada. Essa confiabilidade é fundamental para aplicações críticas para a segurança, desde o monitoramento das operações aeroportuárias até a automação industrial precisa.