Yolo 비전 선전
선전
지금 참여하기
용어집

칼만 필터 (KF)

칼만 필터가 불확실성 하에서 시스템 상태를 추정하는 방식을 탐구하세요. Ultralytics 활용한 객체 추적에 이를 적용하여 AI 정밀도를 향상시키는 방법을 배우세요.

칼만 필터(KF) 는 시간에 따른 동적 시스템의 상태를 추정하기 위해 사용되는 재귀적 수학적 알고리즘이다. 루돌프 E. 칼만(Rudolf E. Kálmán)이 처음 제안한 이 기법은 불확실하거나 부정확하거나, 흔히 "잡음"이라 불리는 무작위 변동을 포함하는 데이터를 처리하는 데 필수적이다. 칼만 필터는 시간에 따라 관측된 일련의 측정값들(통계적 부정확성을 포함)을 결합함으로써, 단일 측정값만을 기반으로 한 것보다 더 정밀한 미지 변수 추정값을 산출합니다. 기계 학습(ML)인공 지능(AI) 분야에서 이 필터는 예측 모델링을 위한 핵심 도구로 작용하며, 불규칙한 데이터 포인트를 매끄럽게 처리하여 진정한 근본 추세를 드러냅니다.

칼만 필터의 작동 원리

이 알고리즘은 예측과 업데이트 (수정이라고도 함)라는 두 단계의 주기로 작동합니다. 기본 시스템이 선형이며 잡음이 가우시안 분포 (종형 곡선)를 따른다고 가정합니다.

  1. 예측: 필터는 물리적 모델을 사용하여 현재 상태를 시간적으로 앞으로 투영합니다. 예를 들어, 물체가 일정한 속도로 움직이고 있다면, 필터는 표준 운동학 방정식을 기반으로 그 다음 위치를 예측합니다. 이 단계는 또한 해당 예측과 관련된 불확실성을 추정합니다.
  2. 업데이트: 센서로부터 새로운 측정값이 도착하면 필터는 예측 상태와 관측 데이터를 비교합니다. 칼만 이득에의해 결정되는 가중 평균을 계산하여 불확실성이 적은 값(예측 또는 측정값)에 더 큰 신뢰도를 부여합니다. 그 결과 정제된 상태 추정값이 도출되며, 이는 다음 주기의 기준선 역할을 합니다.

컴퓨터 비전 및 인공지능의 응용 분야

칼만 필터는 원래 제어 이론과 항공 우주 항법에서 비롯되었지만, 현재는 현대 컴퓨터 비전(CV) 파이프라인에서 보편적으로 사용된다.

  • 물체 추적: 가장 일반적인 사용 사례입니다. YOLO26과 같은 탐지 모델이 동영상 프레임에서 물체를 식별하면 정적 스냅샷을 제공합니다. 이동 경로를 파악하기 위해 BoT-SORT와 같은 추적기는 칼만 필터를 활용하여 프레임 간 탐지 결과를 연결합니다. 물체가 일시적으로 가려져(시야에서 차단되어) 물체가 일시적으로 가려질 경우(시야에서 차단될 경우), 필터는 물체의 이전 속도를 활용해 위치를 예측함으로써 시스템이 "track"을 잃거나 ID를 전환하는 것을 방지합니다.
  • 로봇공학에서의 센서 융합: 로봇공학에서 기계는 여러 잡음이 있는 센서를 활용해 주행해야 합니다. 배송 로봇은 GPS(편차가 발생할 수 있음), 휠 인코더(미끄러질 수 있음), IMU (잡음이 있음)를 사용할 수 있습니다. 칼만 필터는 이러한 서로 다른 입력값들을 융합하여 주행을 위한 단일하고 신뢰할 수 있는 좌표를 제공하며, 이는 자율주행 차량의 안전한 운행에 필수적입니다.

관련 개념 구분하기

표준 칼만 필터와 통계적 인공지능에서 발견되는 그 변형 및 대안을 구분하는 것이 유용하다:

  • 칼만 필터 vs. 확장 칼만 필터(EKF): 표준 칼만 필터는 시스템이 선형 방정식(직선)을 따른다고 가정합니다. 그러나 드론이 선회하는 것과 같은 실제 움직임은 종종 비선형적입니다. 확장 칼만 필터는 각 단계에서 미분을 사용하여 시스템 동역학을 선형화함으로써 이 문제를 해결하여 복잡한 궤적에 적합하게 만듭니다.
  • 칼만 필터 대 입자 필터: 칼만 필터는 가우시안 분포 가정에 의존하는 반면, 입자 필터는 확률 분포를 표현하기 위해 무작위 표본 집합(입자)을 사용합니다. 입자 필터는 비가우시안 잡음에 대해 더 유연하지만, 현저히 더 많은 계산 능력이 필요하여 실시간 추론 속도에 영향을 미칠 수 있습니다.

구현 예시

Ultralytics 칼만 필터가 추적 알고리즘에 직접 통합됩니다. 수동으로 방정식을 작성할 필요가 없으며, 추적 모드를 활성화하여 이를 활용할 수 있습니다. Ultralytics 데이터셋을 관리하고 모델을 훈련할 수 있으며, 이러한 추적 기능을 갖춘 모델을 손쉽게 배포할 수 있습니다.

다음은 Python 사용하여 YOLO26로 추적을 Python 간결한 예시입니다. 여기서 기본 추적기는 칼만 필터링을 자동으로 적용하여 바운딩 박스 움직임을 부드럽게 합니다:

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()}")

데이터 품질의 중요성

실제 현장 적용에서는 데이터가 완벽한 경우가 거의 없습니다. 카메라는 모션 블러 현상이 발생하고, 센서는 신호 노이즈를 경험합니다. 칼만 필터는 의사 결정 루프 내에서 정교한 데이터 정제 메커니즘 역할을 수행합니다. 지속적인 추정값 정교화를 통해 AI 에이전트가 입력 스트림의 순간적 결함에 반응하기보다 가장 가능성이 높은 현실을 기반으로 작동하도록 보장합니다. 이러한 신뢰성은 공항 운영모니터링부터 정밀 산업 자동화에 이르기까지 안전이 최우선인 응용 분야에서 가장 중요합니다.

Ultralytics 커뮤니티 가입

AI의 미래에 동참하세요. 글로벌 혁신가들과 연결하고, 협력하고, 성장하세요.

지금 참여하기