Filtro de Kalman (KF)
Descubra como os filtros de Kalman optimizam a estimativa de estado em IA, localização, fusão de sensores, robótica e muito mais, mesmo com dados ruidosos.
O Filtro de Kalman (KF) é um poderoso algoritmo utilizado para estimar o estado de um sistema dinâmico a partir de uma série de medições incompletas e ruidosas. Desenvolvido por Rudolf E. Kálmán, o seu objetivo original era a navegação aeroespacial, mas desde então tornou-se fundamental em muitos domínios, incluindo a robótica, a economia e, especialmente, a visão por computador (CV). O filtro funciona num ciclo de duas etapas: primeiro prevê o estado futuro do sistema e a incerteza dessa previsão e, em seguida, actualiza a sua estimativa incorporando uma nova medição. Este processo permite-lhe produzir uma estimativa suave e precisa do estado de um objeto, como a sua posição e velocidade, mesmo quando os dados do sensor são imprecisos.
Como funcionam os filtros de Kalman na IA e na visão computacional
No contexto da IA, os filtros de Kalman são utilizados de forma mais proeminente no seguimento de objectos. Depois de um modelo de deteção de objectos como o Ultralytics YOLO identificar objectos numa imagem, é utilizado um filtro de Kalman para prever as suas posições na imagem seguinte. Esta previsão baseia-se num modelo de movimento, que normalmente assume uma velocidade constante ou uma aceleração constante.
Quando chega o quadro seguinte, o modelo de deteção fornece novas medidas (ou seja, novas coordenadas da caixa delimitadora ). O Filtro de Kalman executa então o seu passo de "atualização", corrigindo a sua previsão inicial com base nestes novos dados. Este processo é altamente eficaz por várias razões:
- Redução de ruído: Suaviza as detecções de vibrações, resultando em trajectórias de seguimento mais estáveis.
- Tratamento de oclusão: Se um detetor deixar de ver um objeto durante alguns fotogramas (por exemplo, um carro passa por trás de uma árvore), o filtro pode continuar a prever a sua posição, permitindo que o localizador volte a identificar o objeto quando este reaparecer.
- Estimativa de estado: Fornece uma compreensão mais abrangente do estado de um objeto para além da sua posição atual, incluindo a sua velocidade. Pode saber mais sobre os conceitos fundamentais nesta introdução visual detalhada aos Filtros de Kalman.
A capacidade do filtro para processar medições recursivamente torna-o computacionalmente eficiente e ideal para inferência em tempo real. Muitos algoritmos de rastreio populares, como o SORT (Simple Online and Realtime Tracking) e o ByteTrack, utilizam um Filtro de Kalman como componente central de previsão de movimento. Os modelos Ultralytics, como o YOLO11, utilizam esses rastreadores no seu modo de rastreio.
Aplicações no mundo real
Os filtros de Kalman são parte integrante de inúmeros sistemas modernos. Eis alguns exemplos:
- Veículos autónomos: Nos veículos autónomos, os filtros de Kalman são essenciais para a fusão de sensores. Os dados de vários sensores, como câmaras, GPS, LiDAR e IMUs, são todos ruidosos e têm diferentes taxas de atualização. O filtro combina estes dados para produzir uma estimativa única, altamente precisa e fiável da posição do veículo, da velocidade e da trajetória de outros objectos na estrada. Isto é fundamental para uma navegação segura e para a tomada de decisões nas nossas soluções de IA no sector automóvel.
- Seguimento de peões para uma vigilância inteligente: Os sistemas de segurança utilizam frequentemente o seguimento de objectos para monitorizar espaços públicos. Depois de um modelo YOLO detetar os peões, um localizador baseado no filtro de Kalman atribui a cada pessoa uma identificação única e segue-a através da vista da câmara. Isto permite aplicações como a contagem automática de objectos, a deteção de anomalias e a gestão de filas. A capacidade de previsão do filtro garante que o rasto de uma pessoa não se perde, mesmo que esta seja temporariamente obstruída por outras pessoas ou objectos, uma caraterística fundamental para melhorar a vigilância inteligente.
Conceitos e distinções relacionados
É importante diferenciar o filtro de Kalman de termos relacionados:
- Filtro de Kalman alargado (EKF): O filtro de Kalman padrão assume que a dinâmica do sistema é linear. No entanto, muitos sistemas do mundo real (como um carro em movimento) são não-lineares. O EKF estende o Filtro de Kalman para lidar com sistemas não lineares, linearizando o modelo em cada passo de tempo.
- Filtro de Kalman sem excentricidade (UKF): Para sistemas altamente não lineares em que a linearização do EKF é insuficiente, o UKF fornece uma alternativa mais precisa sem a necessidade de computar Jacobianos, como explicado nesta introdução ao Filtro de Kalman sem Escala.
- Filtros de partículas: São outra alternativa para sistemas não-lineares e não-Gaussianos e são frequentemente utilizados em robótica para localização e mapeamento. Ao contrário dos filtros de Kalman, representam distribuições de probabilidade utilizando um conjunto de amostras aleatórias (partículas).
Na estrutura do Ultralytics, pode encontrar o filtro de Kalman implementado como um utilitário para os nossos algoritmos de rastreio. Bibliotecas como a OpenCV também fornecem a sua própria implementação do filtro de Kalman, que é amplamente utilizado em projectos de visão computacional.