칼만 필터가 불확실성 하에서 시스템 상태를 추정하는 방식을 탐구하세요. Ultralytics 활용한 객체 추적에 이를 적용하여 AI 정밀도를 향상시키는 방법을 배우세요.
칼만 필터(KF) 는 시간에 따른 동적 시스템의 상태를 추정하기 위해 사용되는 재귀적 수학적 알고리즘이다. 루돌프 E. 칼만(Rudolf E. Kálmán)이 처음 제안한 이 기법은 불확실하거나 부정확하거나, 흔히 "잡음"이라 불리는 무작위 변동을 포함하는 데이터를 처리하는 데 필수적이다. 칼만 필터는 시간에 따라 관측된 일련의 측정값들(통계적 부정확성을 포함)을 결합함으로써, 단일 측정값만을 기반으로 한 것보다 더 정밀한 미지 변수 추정값을 산출합니다. 기계 학습(ML) 및 인공 지능(AI) 분야에서 이 필터는 예측 모델링을 위한 핵심 도구로 작용하며, 불규칙한 데이터 포인트를 매끄럽게 처리하여 진정한 근본 추세를 드러냅니다.
이 알고리즘은 예측과 업데이트 (수정이라고도 함)라는 두 단계의 주기로 작동합니다. 기본 시스템이 선형이며 잡음이 가우시안 분포 (종형 곡선)를 따른다고 가정합니다.
칼만 필터는 원래 제어 이론과 항공 우주 항법에서 비롯되었지만, 현재는 현대 컴퓨터 비전(CV) 파이프라인에서 보편적으로 사용된다.
표준 칼만 필터와 통계적 인공지능에서 발견되는 그 변형 및 대안을 구분하는 것이 유용하다:
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 에이전트가 입력 스트림의 순간적 결함에 반응하기보다 가장 가능성이 높은 현실을 기반으로 작동하도록 보장합니다. 이러한 신뢰성은 공항 운영모니터링부터 정밀 산업 자동화에 이르기까지 안전이 최우선인 응용 분야에서 가장 중요합니다.