[자율주행] 보행자 위치 예측 알고리즘 위경도 기반 평가 문제
현업 자율주행 프로젝트에서 자동차 대 보행자 위험 예측을 하게 되었다. 위험 예측을 위해 보행자의 실시간 위치 데이터를 가지고 다음 위치를 예측하는 것이 선행되어야 했다. 그래서 물리적 기반 및 이동패턴 기반 알고리즘 4가지 정도를 사용해 위치를 예측했고 알고리즘 평가를 했다. 데이터가 적은데도 불구하고 압도적으로 좋은 성능이 나왔다. 현업 개발자들에게 데이터와 성능에 대해서 공유를 했다. 알고리즘 성능에 대해 공유 받은 선임 개발자중 한 분이 작은 양의 데이터를 가지고 한 현재 테스트의 성능 수치가 말이 안된다고 했다. (이유에 대해서는 추가적인 공부가 필요) 그러며 내게 다양한 케이스와 더 많은 양의 데이터를 통한 테스트를 요청했다. 성능은 큰 변화가 없었다. 선임 개발자는 현재 상황에서 알고리즘 및 데이터를 다시 검증이 필요하다고 했다.
알고리즘 테스트 및 성능 평가 환경
- 기준 데이터 - Carla Simulator에서 출발지 5곳 도착지 4곳을 랜덤으로 선택해 보행자를 30초씩 10번 움직여 추출한 데이터 (위경도 및 시각)
- 확장 데이터 - 위경도 및 시각을 통해 생성된 보행자 속도, 가속도, 각속도, 방향각, x축 속도, y축 속도, x축 가속도, y축 가속도 데이터
- 알고리즘 - 물리적 기반 및 이동패턴 기반 알고리즘 사용
- 알고리즘 평가 - 보행자 예측 위경도 기반 RMSE (Root Mean Square Error)로 평가
발견한 문제
검증 과정에서 RMSE 입력 값 문제가 있다는 걸 발견했다. 위경도에서 보행자의 이동은 소수점 단위의 변화량을 갖는다. 그러다보니 RMSE의 분자는 0.0000012와 같은 값 갖게 되고 분모는 37.33424234, 127.3432523 같은 37 및 126이상의 값을 가지게 된다. 분자가 소수라는 것과 분자보다 분모가 항상 압도적으로 크다는 점 때문에 0에 수렴하는 값이 나온 것이었다.
해결 방안
위경도로 알고리즘을 성능을 평가하면 언제나 0에 수렴하는 값이 나오기에 현실적으로 보행자에게 더 적합한 값으로 변환 하기로 했다. 위경도를 보행자가 실제로 움직인 거리 Meter단위로 haversine 식을 사용해 변환했다. Meter단위로 변경된 실제 값과 예측 값을 RMSE에 입력값으로 사용했으며, 기존에 위경도를 사용했을 때보다 더 정확한 성능 평가가 이루어진다는 걸 확인할 수 있었다.