컴퓨터 비전

[컴퓨터 비전] MAP 관점에서 이해하는 칼만 필터 - 수학적인 표현 (1)

🐋 Growth Whale 2025. 3. 12. 17:32

1. 칼만 필터란?

칼만 필터는 루돌프 칼만(Rudolf E. Kalman)이 개발한 필터라고 할 수 있다. 그럼 필터란 무엇일까?

 

필터란?

필터는 노이즈가 섞인 측정 값에서 정확한 값을 찾기 위해서 사용되는 도구이다. 

 

예를 들어서 실제 GPS나 IMU 센서의 경우, 센서 값을 측정할 때 기계적 진동이나 외부 환경(빛, 전파)의 간섭으로 노이즈가 무조건 발생하게 된다. 그렇기 때문에 해당 센서 값을 제대로 사용하기 위해서는 노이즈를 걷어내고 정확한 값을 추정해야 된다. 이를 위해서 칼만필터를 사용하는 것이다. 그러기에 이름 또한 필터라고 붙혀졌다. 

 

이런 이유로 칼만 필터는 위치 추정 (GPS), 객체 추정 등 다양한 분야에서 사용된다. 특히나 내가 있는 3차원 비전 분야나 SLAM 분야에서는 IMU 센서값으로 움직임을 추정하는 경우에 많이 사용되는 것으로 알고 있다. 

 

그럼 칼만 필터는 어떤 방식으로 노이즈를 제거하는 걸까? 

 

관측값과 예측값을 이용한 추정

칼만 필터는 쉽게 말하면 "현재의 센서 데이터값(관측값)과 이전 상태를 이용한 예상한 데이터값(예측값)을 적절히 조합해서 최적의 값을 얻는 방법"이다. 걸음 수를 측정하는 센서가 있다고 했을 때를 예를 들어서 쉽게 설명해 보자.

 

걸음 수를 측정하는 센서가 있고 우리는 10초 동안 걸음 수 값을 얻는다고 가정해보자. 

 

그럼 우선적으로 우리는 평균적으로 1초에 2걸음씩 걷는다는 사전 정보가 존재한다. 그럼 우리는 이 정보를 통해 10초 동안 20 걸음을 걷는다고 예상할 수 있다. 그리고 센서에서는 18 걸음을 걸었다고 측정 되었다. 하지만 해당 값에는 잘못 센서가 인식해서 할 가능성이 존재한다. 그럼 우리는 이 값들을 적절히 조절해서 19 걸음을 얻었다고 할 수 있다. 이를 예측값, 관측값, 추정값과 연관되어 생각하면 아래와 같다. 

 

예측값 관측값 추정값
사전 지식을 통해 얻은 예상값  센서에서 얻은 값 (노이즈 포함) 예측값과 관측값을 통해 얻은 최적값
20 걸음 (1초당 2걸음 걷는다는 사전 정보) 18 걸음 19 걸음 

 

 

2. 칼만 필터의 수학적 표현

칼만 필터가 예측값과 측정값을 적절히 섞어서 추정치를 얻는다고 했다. 그럼 수학적으로 어떻게 이런 개념을 표현할 수 있을까? 이를 위해서 확률 개념을 사용한다. 

 

이를 확률적으로 표현하기 위해서는 3가지를 수학적으로 정의 되어야 된다. 

 

1. 값의 확률적 표현

2. 예측값, 측정값의 표현

2. 적절히 섞는 다는 것의 표현

 

3. 가우시안 분포를 이용한 값 표현 

칼만 필터에서는 값을 표현할 때, 가우시안 분포를 이용해서 표현한다. 즉 "단일 값"이 아니라 어느 정도 오차 범위를 포함한 확률 분포로 값을 표현한다. 

 

수식으로 표현하면 아래와 같다. 

 

위의 걸음수를 예를 들면, 10초 동안의 걸음 수는 평균 19걸음(평균)이고, 오차가 앞뒤로 1 걸음(분포) 난다. 이런 식으로 표현하는 것이다. 

 

 이런 식으로 가우시안 분포를 통해 예측값, 측정값, 추정값이 표현된다. 

 

4. 예측 값, 측정 값의 표현

모든 값들이 가우시안 분포로 표현되는 것을 알게 되었다. 그럼 예측 값과 측정 값은 어떻게 표현되는 걸까? 

 

이를 알기 전에 상태(State)측정(Measurement) 용어를 알고 있어야 된다. 

상태는 실제 노이즈가 제거된 값을 나타내며, 측정은 노이즈가 포함된 실제 측정된 값을 나타낸다. 그러므로 예측값은 이전 상태 값에서 어떤 사전 원리를 통해서 얻은 현재 상태 값이고, 추정 값은 예측한 현재 상태와 측정을 적절히 섞은 현재 상태라고 보면 된다. 

 

- 예측 값 : 이전 상태에서 예측한 현재 상태

- 측정 값 : 측정

- 추정 값 : 예측 값과 측정 값을 적절히 섞어서 얻은 현재 상태 

 

상태 전이 방정식

그럼 여기서 또 궁금한 게 존재한다. 어떤 수학적 표현으로 이전 상태에서 현재 상태를 예측할 수 있을 까? 여기서 사용하는 게 상태 전이 방정식(State Transition Equation)이다. 

 

상태 전이 방정식은 아래와 같이 표현한다. 

 

구체적인 예

 

어렵다. 구체적인 예로 설명해보자. 자동차가 일직선 도로를 달리고, 위치와 속도 모델을 구한다고 하자. 그럼 상태는 위치(x)와 속도(v)로 표현될 수 있다. 이를 벡터로 표현하면 아래와 같다. 

 

이 때 t초 후의 상태(위치와 속도)를 예측한다고 가정하면, 속도는 어떤 압력이 없으면 똑같을 것이고, 위치는 속도에 따라서 변화할 것이다. 이를 상태 전이 행렬 A로 표현하면 다음과 같다. 

 

여기서 자동차가 엑셀이나 브레이크를 밟는 행위를 하면 가속도가 있어 위치와 속도가 변화될 것이다. 이를 제어 입력 행렬B로 표현하면 아래와 같다. 

 

w는 마찰과 같은 노이즈로 보면 된다. 상태 전이 방정식으로 자동차의 위치와 속도를 간단하게 표현하면 아래로 표현할 수 있다. 

 

예측된 현재 상태 (예측값) = 이전 상태 + 가속도 입력 + 노이즈

 

이 때 위 예에서는 상태를 벡터로 표현했지만 칼만 필터에서는 가우시안 분포로 표현했다고만 이해하면 된다.

 

측정 방정식

그럼 측정 값은 어떻게 표현될 수 있을 까? 측정 값은 측정 방정식(Measurement Equation)으로 수학적으로 표현된다. 

 

구체적인 예 

 

이것도 자동차의 위치, 속도를 예로 들어보자. 이 때 측정 센서로 GPS를 이용해서 위치 측정할 수 있다고 하자.

 

상태 벡터는 상태 이전 방정식처럼 위치, 속도는 아래처럼 표현할 수 있을 것이다. 

 

이 때 GPS는 위치만 추가한다고 하자. 그럼 측정 행렬은 아래처럼 표현한다. 

 

참고로 실제로 측정 행렬은 1, 0 이외에 측정 단위 변경과 같은 이유로 다양한 실수 값이 사용될 수도 있다.

 

v는 측정 노이즈 값이라고 보면 된다. 이 때 상태 전이 방정식과 마찬가지로 벡터로 표현했지만 칼만 필터에서는 가우시안 분포로 표현했다고만 이해하면 된다.

 

정리해서 측정 방정식을 간단하게 표현하면 아래와 같다.

 

측정 값 = 현재 상태 + 노이즈

 

선형 시스템

칼만 필터에 대한 자료를 찾다 보면 선형시스템이라고 말한다. 이는 칼만 필터에 큰 특징이기 때문에 한번 집고 가려고 한다. 칼만 필터가 선형 시스템이라고 말하는 이유는 바로 앞에 말한 상태 전이 방정식과 측정 방정식이 선형 방정식으로 표현되어서 그렇다.  

 

선현 방정식은 변수가 1차식으로만 구성된 방정식이다. 쉽게 말하면 곱과 덧셈으로만 이루어진 방정식을 말한다. 칼만 필터의 상태 전이 방정식과 측정 방정식을 보면 곱과 덧셈으로 이루어져 있다. 

 

선형 방정식으로 이루어지면 계산이 쉬고 컴퓨터로 처리하기 용이한 장점이 있지만, 복잡한 현실을 표현하지 못하는 단점을 가지고 있다. 그래서 칼만 필터도 정확한 값을 측정하는데 한계가 존재한다. 이를 해결하기 위해서 확장 칼만 필터(EKF)가 존재한다. 기회가 되면 확장 칼만 필터에 대해서도 블로그를 작성해 보겠다.  

 

5. 예측 값과 측정 값을 섞는 표현

이제 마지막만 남았다. 구한 예측 값과 측정 값을 어떻게 섞을 수 있을까? 

 

좀 전에 예측 값과 측정 값은 확률적으로 표현되고, 예측 값이라는 사전 지식을 통해서 측정 값을 섞는다고 표현했다. 사전 지식과 확률이라고 하면 하나가 떠오르지 않는가? 바로 MAP (Maximum A  Posterior) 이다.

 

MAP는 베이즈 정리를 기반으로 사전 지식을 통해서 어떤 상태의 추정하는 기법이다. 칼만 필터도 이 MAP를 이용해서 예측 값과 측정 값을 섞는다. 

 

MAP 수식은 아래와 같다. 

 

이를 칼만 필터 관점에서 해석해보면 다음과 같다. 측정값 z가 주어졌을 때, 현재 상태 x를 찾는 과정, 즉 P(x|z) 확률이 최대가 되는 x를 찾는 과정이다. 이를 테이블로 표현하면 아래와 같다. 

 

MAP 요소 칼만 필터 요소 설명
추정 값 사후확률 (Posterior), 측정값 z가 주어졌을 때, 현재 상태 x가 맞을 확률
예측 값 사전확률 (Prior), 이전 상태에서 현재 상태로 예측할 수 있는 확률 (사전 지식)
측정 값 우도 (Likelihood), 현재 상태 x에서 측정 값이 나올 확률
- 정규화 상수 (Evidence), 확률이 1이 되도록 조정하는 역할

 

이렇게 예측 값과 측정 값을 MAP를 이용해서 서로 합치는 것을 알 수 있다.

 

6. 결론 및 요약

- 칼만 필터는 노이즈가 섞인 측정 값에서 정확한 값을 찾기 위해서 사용되는 도구이다. 

- 칼만 필터는 예측값과 측정값을 적절히 섞어서 추정값을 얻는다. 

 

- 값은 가우시안 분포로 표현한다.

- 예측값은 상태 전이 방정식으로 표현되며, 측정값은 측정 방정식으로 표현되며, 이는 선형 방정식로 구성된다. 

- 예측값과 추정값은 MAP를 이용해서 섞는다.

 

이제 칼만필터가 어떻게 수학적으로 표현되는 지 배웠다. 그럼 다음에는 본격적으로 어떤 과정을 통해서 MAP가 계산되는 지 알아보기로 한다.