uwb radar 신호 움직이는 물체 위치 측정 예제
본 포스트는 uwb radar 신호에서 움직이는 물체의 위치를 측정하는 예제를 싣고 있다. csv파일로 저장된 radar 신호를 읽어, python으로 구현하였다.
움직이는 물체 측정 원리
저장된 uwb radar 신호와 uwb radar 송출 signature 신호와의 상관관계 분석을 위해 Cross Correlation을 사용한 후, Background Subtraction을 사용하여 배경 신호와 움직이는 물체의 신호를 분리해 낸다. 그 후 CA-CFAR를 사용하여 threshold를 생성해 움직이는 물체의 위치를 측정한다.
def main():
csvfile = open('uwb_signal.csv')
if csvfile is None:
return
bg = bgs(bg_stack_cnt=20,alpha=0.2)
xcorrel = crosscorrelation(signature)
cfar = cacfar(window_size=50,guard_size=50,pfa=1e-7,scale=20)
painter = cdrawsignal((20,3))
uwb_signal = csv.reader(csvfile)
for line in uwb_signal:
frame = [float(x) for x in line]
frame = frame[100:950]
# cross correlation
xframe = xcorrel.do(frame)
# background subtraction...
moving = bg.update(xframe)
# threshold
threshold = cfar.get_thresholds(moving)
painter.draw(frame=xframe[0:800],
moving=moving[0:800],threshold=threshold[0:800])
csvfile.close()
움직이는 물체 위치 측정
cross correlation을 거친 uwb radar 신호, 움직이는 물체의 신호, Threshold는 아래와 같다. 붉은색의 Threshold 보다 큰 파란색의 움직이는 신호 위치에 움직이는 물체가 있다고 볼 수 있다.
관련 글
UWB Radar 거리 측정 원리
cross-correlation을 사용한 신호 상관 관계 테스트 및 source code
신호에서 배경 제거(background subtraction)를 통한 움직이는 물체의 위치
검출
간단한 cfar 알고리즘에 대해
안녕하세요! uwb 관련해서 졸업논문을 작성하고 있는 학생입니다. 코드를 보다가 궁금한 점이 몇가지 있어 연락드리고 싶습니다. 혹시 가능할까요?
답글삭제안녕하세요. 궁금하신 점은 댓글로 부탁드립니다. 감사합니다.
삭제