제주도에서 진행한 IPIU2020에서 네이버는 실내/실외 HD map을 주제로 워크샵과 함께 실내/실외 HD map으로 위치인식 챌린지를 진행한다는 일정을 공개하였습니다. 저희는 이때부터 챌린지에 참여한다는 계획을 세웠고, 3월 처음 데이터 셋이 공개되어 본격적으로 대회에 참여했습니다.
앞서 네이버 챌린지에 대해 잘 모르실분들을 위해서 간단하게 설명해드리겠습니다. 해당 챌린지에서 사용해야할 데이터셋은 실내(판교 현대백화점 1/B1)는 4만장, 실외(여의도/판교)는 12만장으로 구성된 large-scale dataset으로 구성되어 있으며, 각 영상들은 Lidar(3d point) 정보가 담긴 파일들이 영상과 같은 갯수로 구성되어집니다. 실내는 랜덤한 2,500장에 대한 영상만, 실외는 50개의 test set 속 연속적인 50개의 영상 중 마지막 영상만(즉, 50개의 영상)에서 Quaternion(qw, qx, qy, qz / 각도), Translate(tx, ty, tz / 좌표)를 추론하는 것이 목적입니다.
해당 챌린지는 large-scale dataset이기에 다운로드 받는 것부터 어려움이 있었습니다. SSD를 새로 구매하고 설치는 것 부터 다운로드에 2~3일, 압축 해제에 2~3일이 걸렸으며, 다운로드 도중 파일이 깨진 영상들이 존재하여 다시 다운로드를 받기도 했습니다. 만약에 dataset의 위치를 잘못 선정하여 재 구축을 했다면 또 다시 많은 시간을 허비했겠지만, 초반에 위치를 잘선정하여 마지막까지 변동없이 사용 할 수 있었습니다.
챌린지를 위한 데이터 구축을 한 후, 위치 인식을 적용하기 위해서 방법론을 서베이 했습니다. 직접 사용해야 하기 때문에, 이전보다 자세히 논문을 보니 이해를 위해서는 정말 많이 부족하다는 점을 알았습니다. 예를 들자면 비전 기반 위치 인식을 위해서는 descriptor를 이용해서 DB 속 유사한 영상을 찾아 위치를 인식하거나 Visual odometry/tracking와 loop close, Bundle adjustment를 이용해서 맵을 그리며 위치를 인식하거나 혹은 직접 depth(3d point)를 이용하는 방법등 방법론 속 기초가 되어야하는 방법들도 이해를 해야 했습니다. 또한 직접 적용하면서 parameter 설정으로 성능이 안나오는 상황도 많았습니다. 그런 경우 논문에서 실험적인 결과에 대한 리포팅을 잘읽어 보고 상황에 맞게 parameter를 재설정하니 성능이 복원되는 경우도 있었습니다.
큰 데이터를 활용하다보니 실험을 위해서는 효율적인 스케쥴링이 필요했습니다. 솔직히 이번 챌린지에 참여하면서 많이 아쉬웠던 점입니다. 한 에폭을 도는데 많으면 하루가 걸리는 경우가 있다보니 데이터에 문제가 있거나, 다른 이유로 다시 디버깅을 해야하는 상황이 발생합니다…. 하루를 날리게 되는 상황이다보니… 다시 생각해도 정말 많이 아쉬운 것 같습니다… 다른 연구원님들은 꼭 서브 샘플링하셔서 검증하시고 하시면 좋겠습니다.
이번 챌린지는 실내/실외 각 3등을 차지하며 마무리 짓게 되었습니다. 정말 좋은 동료들과 교수님을 만나 기대도 안한 결과를 얻어 좋았습니다. 동료들과 교수님께 정말 많이 미안하고 감사드립니다.