REMI Lab강의 노트

Radar Signal Processing R21

21장 사례: micro-Doppler 행동 인식

표적 거리에서 신호를 뽑는 이유

이 사례는 왜 데이터 큐브 전체가 아니라 표적이 있는 range bin의 신호만 분류하고, 그 신호는 어떻게 만들어지는가?

이 사례는 FMCW 데이터 큐브 전체를 한 번에 분류하지 않는다. 송신 chirp로 dechirp한 beat 신호에 fast-time(빠른 시간) 축의 거리 FFT를 해 거리 압축 프레임을 만들고, 사람 표적이 있는 range bin에서 복소 slow-time 신호를 뽑은 뒤, 그 신호의 STFT로 활동을 분류한다. 큐브 전체를 입력으로 두면 탐지, 추적, 연관(association)의 오차가 모두 분류기에 섞인다. 그러면 행동 인식이 틀렸을 때 움직임 모양을 뽑지 못해서인지 표적의 range bin을 놓쳐서인지 가를 수 없다.

여기서는 시뮬레이터가 표적 거리를 안다고 가정하고, 그 range bin에서 뽑은 slow-time 신호만 분류기에 넘긴다. 그래서 모델은 사람의 움직임이 만든 micro-Doppler 모양만 배우고, 분류가 틀리면 그 원인을 움직임을 가르는 단계로 좁힐 수 있다.

이 설정에는 실제 시스템의 어려움 일부가 빠져 있다. 실제 처리 흐름에서는 탐지와 추적이 표적 거리를 추정해야 하고, range bin 추정 오차가 스펙트로그램을 바로 바꾼다. 이 사례는 그 단계에 앞서 micro-Doppler의 모양과 분류기의 일반화를 먼저 확인한다.

신호 생성 흐름

시뮬레이터는 다음 순서로 학습 입력을 만든다. 몸의 운동학에서 시간에 따른 분절의 위치와 속도를 계산하고, 이를 보행자 산란점으로 펼친 뒤 산란점마다 FMCW beat 신호를 합성한다. 그 beat 신호에 fast-time 축의 거리 FFT를 하면 표적 둘레의 거리 압축 프레임이 생긴다. 여기서 시뮬레이터가 아는 표적 range bin을 골라 시간 순서로 쌓으면 1차원 복소 slow-time 신호가 되고, 이 신호를 STFT하면 스펙트로그램 한 장이 된다. 이 스펙트로그램이 행동 인식 분류기의 입력이다.

그림에서 ▶를 누를 때마다 이 순서의 한 단계가 걷는 사람 한 명의 신호에 적용된다. 거리 압축 프레임에서 표적 range bin을 고르고, 그 bin의 값을 chirp마다 모아 slow-time 신호를 만들고, STFT 윈도우를 그 신호 위에서 밀며 스펙트로그램의 열을 하나씩 채운다.

다음 절의 산란점 모형으로 만든 걷는 사람(10.4 m에서 1.2 m/s로 다가옴)의 신호이고, range bin은 3 m 간격이다. ①의 붉은 막대가 표적 range bin, ②의 붉은 띠가 지금의 STFT 윈도우이다.

표적은 range bin 하나(9 m) 안에 머물므로, 그 bin의 값만 모아도 몸 전체의 에코가 들어온다. PRF 10 kHz로 1.6 s를 모은 slow-time 신호는 샘플 16,000개이고, 256샘플 윈도우를 64샘플씩 밀면 스펙트로그램의 열 247개가 생긴다. 실제 데이터셋은 이 스펙트로그램을 128 × 128로 바꾸어 분류기에 넣는다.

보행자 산란점 모델

시뮬레이터는 사람을 분절 10개로 나눈 운동학 모형을 더 단순한 산란점 모델로 바꾸어 쓴다. 이 모델은 사람을 점 하나로 두지 않고 몸통(torso), 머리(head), 팔다리(limb)에 해당하는 여러 산란점으로 나눈다. 산란점마다 RCS 가중치, 위상 중심, 시간에 따른 위치가 있다.

산란점들은 걷는 동안 같은 속도로 움직이지 않는다. 몸통은 거의 등속 운동을 하지만, 팔과 다리의 산란점은 사인 운동을 따라 몸통보다 빠르거나 느리다. 이 속도 차이가 스펙트로그램에서 따로 보이는 ridge, 곧 micro-Doppler 구조를 만든다. walk, run, wave는 주로 팔다리 산란점이 만드는 ridge의 위치, 폭, 주기성으로 갈린다.

아래 그림은 시뮬레이터의 모형을 더 줄인 것이다. 몸통과 머리는 1.2 m/s로 레이다에 다가가고, 손, 무릎, 발은 어깨나 엉덩이에 매달려 진자처럼 흔들리는 곧은 팔다리 위의 점이다. 팔다리의 각도가 ϕ(t)=Asin⁡(2πt/T)\phi(t)=A\sin(2\pi t/T)로 바뀌면 경첩에서 ρ\rho만큼 떨어진 점의 속도는 v+ρ ϕ˙cos⁡ϕv + \rho\,\dot\phi\cos\phi이고, 보행 주기 TT는 1 s이다. 발의 진폭은 한 주기에 한 번 발이 멈추도록(v=ρA 2π/Tv=\rho A\,2\pi/T) 정했다. 그림에서 ▶를 누를 때마다 시간이 보행 주기의 1/16(62.5 ms)씩 흐르고, 그때의 자세, 산란점마다의 시선 속도, 그 속도가 놓이는 스펙트로그램의 열이 함께 그려진다.

점의 색은 산란점(검정 몸통, 회색 머리, 보라 손, 초록 무릎, 붉은 발)이고, ③의 선은 그 시각까지의 시선 속도, 점은 지금 시각의 값이다. 스펙트로그램은 표적 range bin의 slow-time 신호(PRF 10 kHz, Hann 256샘플, hop 64샘플)로 계산했다.

몸통의 점은 1.2 m/s의 한 줄에 머물고, 손은 0.45–1.95 m/s, 무릎은 0.60–1.80 m/s, 발은 0–2.40 m/s 사이를 오르내리며 스펙트로그램의 ridge를 따라 그린다. 이 모형에서 모든 속도는 이어진 곡선이고, 발은 땅에 닿은 순간 0이 되었다가 다음 걸음에서 몸통의 두 배까지 빨라진다. 이처럼 레이다에 비친 사람은 밝은 점 하나가 아니라 서로 다르게 움직이는 산란점들의 합이고, 행동 인식은 이 합이 만드는 시간-주파수 구조를 학습한다.