자율주행 자동차 만들기 - 2019년도 온라인 스터디 링크
2019년 SLAM KR 커뮤니티에서 진행한 자율주행 스터디에 참여하였다.
‘자율 주행 자동차 만들기’라는 책을 기반으로 함께 공부하였다.
Youtube 재생목록을 통해 영상을 확인할 수 있다.
스터디 내용 목차는 다음과 같다.
- 자율주행 개요
- 자율주행을 위한 로컬라이제이션 1 & 2
- 자율주행을 위한 인지
- 딥러닝을 통한 자율주행의 인지
- 예측 및 경로 계획
- 강화학습 기반의 계획 및 제어
- 결정, 계획, 제어
- 자율주행을 위한 클라이언트 시스템
- 자율주행을 위한 클라우드 플랫폼
내 파트
스터디는 참여인원들이 돌아가면서 특정 파트의 발표를 하는 방식으로 진행되었다.
내가 맡은 파트는 ‘자율주행을 위한 인지’ 파트였는데, 사실상 이 챕터의 목적은 ‘딥러닝을 위한 자율주행의 인지’ 방법을 위한 빌드업이였다.
발표를 준비하면서 ‘인지’의 목적은 주로 1. Dynamic 객체와 Static 객체를 분리하는 것, 2. 공간 정보에 semantic 정보를 association하는 것임을 알게 되었다.
내 발표의 주제에는 다음과 같은 토픽이 있었다.
- 딥러닝 이전의 확률적 segmentation 기법들을 통한 이미지 해석
- 스테레오 비전 기반 geometric verification을 통한 dynamic object 분리,
- Optical flow / Scene flow를 이용한 객체 트랙킹
- 기타 객체 트랙킹 기법들
책에서는 이 내용들에 대해 깊게 들어가지 않는데, 이는 최신 딥러닝 기법들의 정확도가 월등히 뛰어나기에 위 방법론을 갈아치울 것이라고 저자들이 판단하였기 때문이다. 나도 안전성을 중요시하는 자율주행 기술 특성상, 딥러닝 기법이 언젠가는 Traditional 기법들을 갈아치울 것이라고 생각한다.
내가 관련 자료와 논문을 찾아봤을 때는 확실히 ‘이 방법이 잘되더라 - 제품을 만들자’라는 느낌보다는 ‘기술적으로 시도해봤다’의 느낌이 강했다. 특히 hand-crafted 방법론들이나 확률적 모델링 방법들은 조금이라도 어려운 환경들이 나타났을 때 굉장히 쉽게 무너졌다. 그런면에 있어서 딥러닝과 같은 Data-driven approach가 확실히 우위를 점하게 되었다. 물론 연산량에 있어서는 딥러닝 기법이 훨씬 많겠지만, GPGPU의 발전, 경량화/양자화 기술의 발전, 그리고 기타 자율주행용 프로세서 및 하드웨어 발전을 고려했을 때, 딥러닝 기법이 언젠가는 traditional 기법들을 갈아치울 것이라고 생각한다 (다만, 이 책에서 보여주는 딥러닝 기법들이 주가 될지는 잘 모르겠다…).
기존 방식들의 논문들을 보았을 때 느낀 점은, 어떠한 어려운 문제가 있을 때 엔지니어링의 관점에서 문제를 정확하게 define하고 하나씩 태클링하는 모습이 인상적이였다. 그에 비해 딥러닝 논문들에서는 대부분 ‘데이터를 모으고, 문제가 해결될때까지 아키텍처를 이런저런 방법으로 바꾸고, 하이퍼파라미터를 이런저런 방법으로 바꿨는데, 결과는 이렇게 잘된다’ 라는 모습이 보였다. 물론 딥러닝 논문들도 나름의 metric을 가지고 성능평가를 가졌지만, 문제의 본질을 자주 생각하게 되었던 것은 기존의 방식이라고 생각되었다.
배운 점
왜 때문이였는지 기억은 잘 나지 않지만, 스터디 후반으로 갔을 때는 잘 참여하지 못했다.
아마 강화학습 부분과 아키텍처 부분이 낯설어서 쫒아가지 못해서였을 것이다.
스터디 초반 부에는 대신 열심히 집중할 수 있었는데, 자율주행에서 사용하는 다양한 센서들에 대해 빠르게 익힐 수 있던 점이 좋았다.
카메라, 라이다, 레이더, INS (IMU + GPS)와 같이 차에 탑재할 수 있는 시스템들, 그리고 실험에서 사용할 수 있는 다양한 GPS 시스템들 (e.g. RTK GPS)등에 대해 알 수 있게 되었다.