Spatial AI를 만드는 방법 - Rosen 2021 - Advances in Inference and Representation for Simultaneous Localization and Mapping
시작하기 전…
Part 1 - SLAM 추정 효율성에 대한 고찰 - Rosen 2021 - Advances in Inference and Representation for Simultaneous Localization and Mapping을 먼저 읽으시면 좋습니다.
Global representation은 어떤 형태가 적합한가?
현재까지 Point cloud, Occupancy grid map, Mesh, Voxel, surface map 등등 다양한 형태의 global representation을 사용하는 SLAM들이 있었다.
SLAM을 다루는 환경은 정말 다양하다.
- 공간의 크기: 작은 공간에서 큰 공간.
- 센서의 종류: 하나의 센서에서부터 여러개의 이종센서를 사용하는 플랫폼.
- 컴퓨팅 리소스: 마이크로 로봇에서부터 클라우드 서버 스케일의 컴퓨팅 리소스.
- 공간의 종류: 정적인 공간에서부터 자세/형태가 모두 동적인 물체가 있는 공간.
- 다른 알고리즘으로 인한 제약조건: SLAM 이전에 버추얼 센서로써 인지 알고리즘이 돌고 있는지, SLAM 이후에 플래닝 및 기타 판단을 위해 SLAM 지도의 형태가 정해져야하는지.
위와 같이 다양한 환경이 있고, 이러한 환경에서 정확하고, 빠르고, robust하게 돌기 위해서는 다양한 알고리즘을 조합해야하며 이로 인해 다양한 표현법이 있을 수 밖에 없다 (또는, 다양한 표현법이 있을 수 밖에 없었다).
그리고 시장의 기대치는 빠르게 높아져가고 있다. 이제 로봇에서 정적인 공간에 대해 geomtric map을 만들고 위치추정을 하는 기능은 SLAM 알고리즘으로써 가장 기본중의 기본으로 인식된다. 컴퓨팅 보드와 센서의 성능도 날이 갈 수록 발전하고 있기 때문에, 다양한 이종 센서들을 조합해 물체를 인식한다던가, 딥러닝 정보까지 섞는다던가, 동적인 환경에서도 잘 동작한다거나, 변화하는 환경에서도 동작하고, 경로 계획까지 잘 이어지는게 최근 시장이 기대하는 수준이다.
최근에는 semantic perception 정보까지 섞어서 플랫폼이 공간과 상호작용을 할 수 있는 수준까지 깊게 이해하게 만드는 수준인 ‘spatial AI’라는 키워드도 떠오르고 있다.
그렇다면 가장 효율적인 representation은 무엇인가? 가장 안정적이고(reliable), 가장 강인하고(robust), 가장 확실한(certifiable)하며 정확하고(accurate) 가벼운(light-weight) representation은 무엇일까?
Geometric representation
우선 기하학적인 표현법부터 알아보자.
VSLAM에서는 주로 SIFT, SURF, ORB와 같은 sparse feature를 모아 sparse map을 만들었다. ORB-SLAM 처럼 keypoint+descriptor 조합을 사용할 수도 있고, DSO처럼 굳이 그런 조합을 사용하지 않는 방법도 있다. Sparse map은 3D 공간에서 위치 추정을 하는데에는 성공적이나, 물체가 위치한 공간과 아닌 공간을(occupied space) 구분하는데에 있어서는 상당히 취약하기 떄문에 path planning이나 collision-free path 생성에는 좋은 방법이 아니였다.
이를 타파하기 위해 dense representation을 사용해 occupied space를 표현하기 시작했다. Voxblox 처럼 Occupancy grid map / volumentric map을 사용하거나, Kimera처럼 mesh를, DTAM처럼 dense point cloud를, ElasticFusion이나 KinectFusion처럼 truncated signed distance function map(TSDF) 같은 것들이 이와 같은 예시이다.
각각의 장점과 단점들이 있지만, 모든 representation을 꿰뚫는 단점들이 있다.
- Geometry만으로는 공간의 특성을 이해할 수 없다. 물체의 색깔, 촉감, 무게 와 같은 정보는 기하적인 특성만으로는 알 수 없는 것들이다.
- 공간의 특성을 넘어서는 다양한 공간과의 상호작용에서 나타는 정보도 표현할 수 없다. 소리, 온도 같은 것들이다.
- 자연스러운 인간-로봇 상호작용(human-robot interaction)이 불가능하다. 사람은 ‘탁자 위에 컵이 있구나’ 라고 표현하는데에 비해, 로봇의 geometric representation은 pose와 coordinate로 표현할 것이다. 사람과 로봇이 자연스럽게 소통하기 위해서는 인간의 소통방식에 입건한 semantic descriptor가 필요한데, geometric representation에는 이것이 없다.
- Localization을 넘어서는 작업에는 큰 도움이 되지 않는다.
Semantic 정보와 geometry 정보의 조합
2015년 이후 부터 SLAM 커뮤니티에서도 머신러닝 기반의 퍼셉션 모델에 관심을 가지기 시작했다. Object detection이라던지, place recognition 등을 통해서 좀 더 높은 수준의 플래닝 및 액션을 꾀하는 연구가 진행이 되었다. 좀 더 설명하자면, 거실에서 침실로 로봇을 이동해야한다는 task가 있다면 2015년 이전에는 거실의 coordinate에서 침실의 coordinate로 이동하기 위해 occupancy grid map에서 최적경로를 계산했을텐데, 2015년 이후에는 거실을 어떻게 인지하고 침실을 어떻게 인지할지에 대한 연구로 방향을 틀었다는 것이다.
이러한 연구는 결국 Semantic map에 대한 개념을 만들었다. Semantic map은 단순히 object와 place에 대한 정보만 가지면 되었기 떄문에, geometric map 보다 훨씬 더 적은 메모리와 계산량을 소모한다는 장점도 알게 되었다. 그리고 로봇이 만든 지도를 사람이 이전보다 훨씬 더 쉽게 이해할 수 있다는 장점도 알게 되었다.
하지만 semantic 정보를 어떻게 조합해야하는지에 대한 정해진 룰이 없었다. 현재까지도 몇가지 제안된 방법은 있다만, de-facto로 정해진 방법이 없다. 지금까지 정해진건 단 하나 - SLAM 이전에 머신러닝 기반 perception 모델을 돌리고, 그 결과를 마치 버추얼 센서처럼 사용하자는 것만 있다.
하지만 Semantic 정보를 추출하는 object detection이나 semantic segmentation 모델을 버추얼 센서처럼 사용하는건 생각보다 쉽지 않다. 두가지 이유가 있다. 첫번째로는 도메인이 살짝만 달라져도 모델 추론이 완전히 망가진다던지, 아무리봐도 터질일이 없어보이는 경우에도 터지는 경우가 많다. 이 때문에 모델 추론 결과의 uncertainty를 함께 추론하는 연구도 진행되고 있다. 두번째로는 object category는 개별적으로(discrete)하게 분류가 되는데, 이것이 SLAM 추론 내부에서 나타나는 continuous geometry와 엮을 때 굉장히 어려워진다는 것이다. Joint discrete-continuous estimation은 종종 굉장히 큰 문제 (i.e. combinatorially large state spaces)를 만든다.
Latent semantic class와 geomtric landmark를 동시에 추정 (i.e. joint estimation)을 하는 기본적인 수식은 아래와 같다. Y는 semantic 정보를 포함한 모든 measurement, X는 로봇 포즈, L은 landmark를 의미한다. 여기서 새롭게 중요하게 되는 정보가 D 인데, D는 Y와 L 사이의 data association을 의미한다. Semantic class는 continuous하지 않고 discrete한 성질을 띄는데 (i.e. 카테고리 형 분류), 이는 data association을 할 때의 discrete inference한 성질과 잘 맞기 때문에 궁합이 좋다고 볼 수 있다.
위와 같은 문제 정의에 맞춰 여러가지 연구가 진행이 되었다. Bowman 2017 - Probabilistic data association for semantic SLAM 연구에서는 expectation maximization (EM) 방식으로 semantic/geometric 동시 최적화를 진행한다. 두 단계로 이뤄져있는데, 첫번째 단계에서는 semantic class와 geometry 사이의 data association의 확률을 전부 고정해놓고 우선적으로 pose graph optimziation만 진행을 하고, 두번째 단계에서는 로봇 포즈와 랜드마크를 고정한 상태에서 새롭게 semantic/geometric data association을 최적화하는 것이다. 이렇게 함으로써 locall optimal solution에 다다를 수 있다. Sunderhauf 2015 - SLAM-quo vadis? in support of object oriented and semantic SLAM 연구에서는 semantic label의 확률을 최적화 하기도 했고, Doherty 2019 - Multimodal semantic SLAM with probabilistic data association에서는 여러 센서로부터 들어오는 센서 정보를 mixture representation으로, Doherty 2020 - Probabilistic data association with mixture models for robust semantic SLAM에서는 단일 센서로부터 들어오는 센서 정보도 mixture representation으로 다루며 max-mixture 방식을 통해 continuous manifold를 구축하고 최적화를 통해 가장 높은 확률의 data association을 이루는 방법을 소개한다. 위 방법과는 다른 결로 Bernreiter 2019 - Multiple hypothesis semantic mapping for robust data association 연구에서는 여러 가능성을 동시에 트랙킹하며 combinatorial하게 가장 좋은 방식을 찾는 multiple hypothesis tracking 기법을 사용하기도 한다.
Semantic map representation
Semantic map을 만드는 방법에는 어떤 것들이 있을까? 가장 쉬운 방법은 기존에 사용하는 geometric map (e.g. point cloud, mesh)에 semantic label을 추가하는 방법이다. 실제로 SemanticFusion에서는 dense map에 semantic label을 넣고, Kimera에서는 mesh에 semantic label을 넣어 semantic mesh를 만들어낸다.
2010년 초반에는 object-level SLAM도 꽤 많이 연구가 되었다. Object-level SLAM이란 map을 구성하는 요소가 object밖에 없는 경우를 말한다. SLAM++가 대표적인 예시이다. Object 단위로 map을 만든다는건, object를 인식할 수 있어야한다는 것인데, SLAM++가 나왔을 2013년에는 아직 뉴럴넷 기반의 3D object detection이 안정적이지 못했기 때문에, prior shape에 대해 fitting 작업이 주로 진행되었다. 하지만 이후 뉴럴넷 기반의 2D object detection을 거쳐 3D object detection, shape estimation, pose estimation 관련 기법이 많이 연구되면서, 차차 이 기술들을 사용하는 방향으로 트렌드가 바뀌고 있다.
Object 기반 map을 만들때, 가장 쉽게 만드는 방법은 object를 하나의 semantic label이 붙어있는 point landmark로써 다루는 것이다. 하지만 이러한 경우에는 object의 방향이나 경계를 알 수 없기 때문에, 이러한 정보를 담기 위한 다양한 representation이 나오고 있다. Nicholson 2018 - QuadricSLAM: Dual Quadrics from Object Detections as Landmarks in Object-oriented SLAM이나 Superquadric Object Representation for Optimization-based Semantic SLAM과 연구에서는 object를 dual-quadric 형태에 넣음으로써 방향성을 가진 공간으로 다룬다. CubeSLAM에서는 object를 3D object detection의 결과인 3D bounding box로 다루기도 한다. 조금 더 나아가 NodeSLAM: Neural Object Descriptors for Multi-View Shape Reconstruction에서는 뉴럴넷으로 학습한 object descriptor를 기반으로 semantic label을 표현하며, shape과 pose (i.e. geometric)에 대한 부분은 SLAM 기반 최적화를 통해 계산하는 알고리즘을 사용한다.
세상은 절대 가만히 있지 않아 (Static vs dynamic vs semistatic vs deformable world)
SLAM의 기본 전제 중 하나는 ‘세상은 고정되어있다‘ (i.e. static world) 이다. 이러한 전제 하에 SLAM 알고리즘은 엄청난 발전을 이뤘지만, 실제로 SLAM을 돌리려고 하는 환경에서는 환경이 고정되어있지 않은 경우가 생각보다 많다. 지금까지의 SLAM은 움직이는 물체가 있는 경우 아예 그냥 없는 물체 취급을 하며 계산에서 제외해버리는 경우가 많았다. 그렇게 해야지 고정된 물체에 대한 계산을 할 때 outlier 처리를 할 수 있기 때문이다. 하지만 최근 연구에서는 움직이는 객체를 인지하고, 그들만의 dynamics를 측정해서 시간이 지남에 따라 변화하는 공간 (spatio-temporal) 정보를 측정하려는 시도가 이뤄지고 있다.
고정된 세상이라는 전제에서 가장 중요한 문제는 ‘움직인것은 나인가? 아니면 세상인가?‘를 알아내는 것이다. 실제로 세상은 고정되어있는데 로봇이 움직인 것이나, 로봇은 가만히 있는데 세상이 움직인것이나, 로봇의 입장에서는 둘 다 똑같이 보인다 (물론 proprioceptive sensor를 부착하면 풀리는 문제이긴 하지만 말이다). 안정적인 SLAM은 이러한 기하학적 모호함을 해결할 수 있어야할 뿐 더러, 혹시나 모호함 때문에 잘못 추정해도 문제를 발견하면 문제가 없는 상황으로 롤백을 한 후에 다시 제대로 계산을 할 수 있어야한다. 그리고 최대한 잘못 계산하는 것을 줄이기 위해 한번에 잘 계산하는 기능도 필요한데, 이 부분은 Part 1 글에서 설명했던 certifiable algorithm으로 다시 이어진다.
이제 세상이 고정되어있지 않다고 해보자. 세상이 부분적으로만 고정되어있다 - 예를 들어서, 바닥과 건물은 고정되어있고, 사람들은 걸어다니고, 자동차가 굴러다니며, 내 자동차도 굴러다닌다. 이 때 부터는 ‘고정된 물체’와 ‘움직이는 물체’와 ‘나’를 분리시키는 dynamic SLAM을 해야한다. 동적 물체는 정적 환경과 분리되서 인식이 되야하는데, 이를 위해 semantic 정보를 사용하는 경우가 많다. 주로 ‘아마 이런 클래스는 움직일 확률이 높아’ 라는 방식으로 사람, 자전거, 자동차 등을 정적 환경과 분리해서 트랙킹 하기도 한다. 최신 연구들은 이러한 동적 물체들의 속도까지 추정하려는 연구가 진행되고 있다.
이제 세상이 조금씩 변화한다고 해보자. 봄여름가을겨울이 지나면서 가로수의 잎이 떨어지고, 바닥에 쌓이고, 눈이 쌓이고… 뒤에는 건물이 무너지고 새로 지어지고 있다고 해보자. 실내의 환경이라면 가구의 위치를 옮기는 것도 포함될 수 있다. 이러한 시간에 따른 정적 환경의 변화는 다른 시간대에서 동일한 공간을 재관찰해야지만 검출할 수 있다. 시간에 따라 지도가 변화한다는건, SLAM으로 만드는 지도에 대한 representation도 변화할 수 있어야만 (i.e. 업데이트가 가능해야) 한다는 것이다. 그렇다면 지도를 생성할 때 어떤 방식으로 생성해야할 것인가? Rosen 2016 - Towards lifelong feature-based mapping in semi-static environments에서는 map point가 지속적으로 존재하는지에 대해 질문하는 bayesian framework를 제안한다. Krajnik 2017 - Fremen:Frequency map enhancement for long-term mobile robot autonomy in changing environments에서는 지도 속에서 변화할 확률이 높은 부분을 Fourier analysis로 검출하는 방법도 제안한다. Bore 2018 - Detection and tracking of general movable objects in large three-dimensional maps에서는 particle filter를 이용해서 object들의 dynamics를 트랙킹하는 방법을 제안한다. Zeng 2020 - Semantic linking maps for active visual object search에서는 landmark들 간의 semantic 정보에 대해 probabilistic spatial coupling이 가능한 semantic linking map 표현법을 제안한다. 이렇게 다양한 방법을 통해 환경 변화에 대한 연구가 진행이 되고 있는데, 이는 3D HD-Map을 이용해 주행하는 자율주행 차와 같이 안전 문제가 엮일 때 굉장히 중요한 문제가 된다.
이제 세상의 형태가 실시간으로 바뀐다고 해보자. Deformable environment는 환경이 말랑말랑하다는 전제를 가지고 있다. 아쉽게도 SLAM 분야에서 이 분야에 대한 연구는 그렇게 많이 진행되고 있지 않다. DynamicFusion 같은 경우에는 RGB-D 카메라를 이용해서 deformable한 물체의 형태를 dense reconstruction하는 방법을 제안한다. 이 분야의 연구는 주로 의료 쪽 연구에서 하는 경우가 많은데, 예를 들어서 사람의 심장이 두근두근 뛸 때 dense reconstruction을 하면서 형태를 추정하고 카메라의 위치를 추정하는 연구가 있다. 보통 이런 연구에서는 motion 추정을 할 때 기본적인 model이 있어서 (e.g. 사람의 심장은 반복적인 모션 - cyclic motion을 하기 때문에, 이것을 잘 관찰해서 모델로 만들면 t-1, t, t+1 시점에서 어떤 움직임을 할지 추론할 수 있다), 이를 기반으로 형태 추정도 가능하다.
Hierarchical representation
기본적으로 SLAM을 돌리면 point cloud나 occupancy grid map이 나온다. Point cloud에서 모든 point는 동일한 중요성을 가지고, occupancy grid map에서 모든 grid cell은 동일한 중요성을 가진다. Point landmark가 1천만개가 쌓여도, 이 중 navigation에 중요한 point landmark가 어떤건지 알 수 없다. 이게 기본적인 SLAM이 가지는 문제 중 하나였다.
Navigation을 위해 중요한 정보만을 추출해야한다. 이를 위해 abstraction(추상화)과 hierarchy(계층구조) 개념이 생겼다. 예를 들어, 특정 부분의 point landmark들은 책상을 의미한다, 바닥을 의미한다, 벽을 의미한다, 소파를 의미한다, 이런것들로 추상화를 할 수 있다. 그리고 책상,바닥,벽,소파가 모여서 거실을 의미한다 -> 거실과 화장실과 몇개의 방이 모여 하나의 층을 의미한다 -> 여러 층이 모여 건물을 의미한다, 이런 것들로 계층 구조를 가질 수 있다. 이렇게 추상화와 계층구조를 통해 SLAM mapping의 확장성과 효율성이 극대화 된다. 주로 이런 구조를 spatial-semantic hierarchy라고 한다.
Spatial-semantic hierarchy는 사실 현대적인 SLAM 구성이 생기기 이전 - 즉 고전 로봇 맵핑에서 사용되던 topology model과 굉장히 유사하다. Topology model을 빠르게 이해하려면 자동차 내비게이션 지도를 생각하면 된다 - ‘다음 교차로에서 좌회전하세요. 그후 직진하다가 다음 교차로에서 우회전하세요’ 같이 metric한 개념이 없이 연결성에 대한 구조만 가지고 지도를 표현하는 방법이다. Topology model의 정확도는 로봇의 판단 과정에 (decision making, planning) 있어서 아주 중요한 역할을 하는데, 예를 들어 내비게이션에서 좌회전/우회전을 잘못하면 삥 돌아가는 것과 같은 효과를 낼 수 있다. Topological model은 강력하게 abstraction에만 초점을 둔 방법이라고 볼 수 있지만, 엄청나게 가벼운 representation이라는 특징을 가지게 되었고 이러한 특징은 planning과 decision making에 엄청난 도움을 준다. 조금 더 개선 시킨 방법으로는 Mu 2016 - Information-based active SLAM via topological feature graphs에서 사용한 topological feature graph는 geometric landmark와 topology를 결합한 형태인데, graph의 vertex는 geometric feature를 의미하고 edge가 obstacle을 의미하는 방법을 사용한다. Stein 2020 - Enabling topological planning with monocular vision에서는 점점 topology graph를 강화시켜 planning task에 적합하게 만드는 방식을 제안하며, Chaplot 2020 - Neural topological SLAM for visual navigation 논문에서는 vertex는 location을 저장하고 edge에는 traversability를 저장하는 방법으로 topological graph 기법의 정점(?)을 찍었다.
Abstraction과 hierarchy를 동시에 취한 representation인 scene graph는 geometric한 성질과 topological한 성질을 모두 가지고 있다. 이 때문에 전체적으로 topology-only model보다는 훨씬 무겁지만, planning에 있어서는 topology를, localization에 있어서는 geometry를 이용할 수 있다는 장점이 있다. Rosinol 2020 - 3D dynamic scene graph: Actionable spatial perception wiht places, objects, and humans나 Armeni 2019 - 3d scene graph: A structure for unified semantics, 3d space, and camera 논문은 geometric->object->places 와 같이 여러개의 spatial/semantic layer를 통해 abstraction과 hierarchy를 구현하고, 적절한 object class에 맞춰서 dynamics 정보까지 갖춤으로써 scene graph를 구성한다.
딥러닝 중심의 representation
대부분의 semantic SLAM을 보면, 뉴럴넷의 결과를 그대로 믿고 받아쓰는 경우가 많다. 멀티뷰 데이터를 누적하다보면 조금씩 오차가 생길텐데, 그정도는 SLAM backend가 어느정도 보정을 해줄거라는 희망을 가지고 하는 것이다. 근데 사실 이건 소위 ‘블랙박스’, ‘될때까지 튜닝하기’, ‘잘 되길 기도하기’ 방법과 다를 바가 없다. 진정 하나의 perception 시스템으로써 동작하길 바란다면, 로봇 네비게이션을 하는 그 순간에도 새로운 파라미터를 학습해서 개선한다던가, 또는 뉴럴넷의 결과가 보정되야하지 않을까? SLAM이 인식하는 scene geometry와 robot motion을 기반으로 뉴럴넷을 학습할 수도 있을 것이다.
실제로 SLAM의 결과를 뉴럴넷 학습에 사용하기도 한다. Self-supervised learning 기법은 뉴럴넷을 학습에 사용되는 데이터에서 추가적인 정보를 구해내고 그것을 ground truth label 및 학습에 도움되는 auxiliary data로 사용함으로써 학습을 진전시키는 방법이다. SLAM으로 추정한 global representation은 충분히 다양한 뉴럴넷 네트워크를 학습하는데에 필요한 데이터로써 사용될 수 있다.
딥러닝 모델로써 scene에 대한 coarse한 정보를 제공하고, SLAM이 이를 받아 최적화함으로써 기존의 뉴럴넷 결과보다 더욱 좋은 결과를 이끌어낼 수도 있다. SceneCode와 NodeSLAM에서는 object들의 성질을 variational auto-encoder를 사용해서 압축한 vector의 값들에 대해 SLAM 최적화를 함으로써 reconstruction을 수행한다. DeepFactors에서는 depth map을 압축해서 SLAM 최적화 시 depth map 최적화도 함께 수행한다.
뉴럴넷이 backpropagation을 수행하며 내부 파라미터 최적화를 하듯이, SLAM의 backend를 differentiable하게 만들려고 하는 시도도 있다. GradSLAM, BANet, DROID-SLAM과 같이 SLAM 전체를 differentiable하게 만들려고 하는 시스템부터, 최근에는 NeRF도 함께 사용하는 NeRF-SLAM, iMAP, vMAP, NICE-SLAM, NICER-SLAM 등이 있다 (NeRF 관련 논문들은 이 글이 참조하고 있는 논문인 Rosen 2021에는 없다. 이 논문이 나오고 나서 공개된 논문이기 때문).
마지막으로 완전 다른 노선으로 가고 있는 연구도 있다. 바로 SLAM도, 지도도 필요 없이 navigation 자체를 학습하는 방법이다 (이 글을 적고있는 저자의 마음은 찢어집니다… 슬램 소중해…). 센서 값을 인풋으로 받아 단일 네트워크를 거쳐 아웃풋으로 navigation의 결과를 내는 End-to-end learning 기법이다. Zhang 2017 - NeuralSLAM: Learning to explore with external memory는 그래도 occupancy map을 사용해서 navigation을 하지만, Mirowski 2018 - Learning to navigate in cities without a map 연구에서는 아예 지도 자체를 없애버렸다. 위에서 이야기했던 Neural topological SLAM 연구도 사실 지도 없이 navigation을 하는 연구이다. LM-Nav: Robotic Navigation with Large Pre-Trained Models of Language, Vision, and Action에서는 vision-language model을 이용해서 language prompt로 action 커맨드로 받고, visual observation으로 topological 정보만 인식해 navigation을 하는 연구도 있다.
앞으로 연구할 거리는 어떤 것들이 있는가? + 정리
다양한 환경에서 SLAM을 운용하기 위해서는 다양한 센서들이 필요하다. 여러 센서를 조합했을 때 범용적으로 사용할 수 있는 representation이 있을텐데, 기존의 카메라, 라이다, IMU, 소나를 넘어서 이벤트 카메라, 라이트필드 카메라, 압력/토크 센서를 함께 표현할 수 있는 representation이 필요하다.
더욱 다양한 환경을 표현할 수 있는 hierarchical representation도 필요하다. 기존 골자를 잡아두고 환경에 따라 변화할 수 있는 flexibility가 있는 것이 좋을 것이다. 그리고 다양한 환경에 있을 수 있는 개념들에 대한 abstraction이 필요하다.
Data-driven 방식이 발전하면서 semantic 정보를 얻어내는 방식도 model fitting에서 뉴럴네트워크로 바뀌었듯이, 다른 정보들도 뉴럴네트워크로 충분히 얻어낼 수 있을 것이다. 그렇다면 어떤 정보들을 뉴럴넷으로 학습해야할까? 어떤 정보들을 prior로 사용해야할까? 물론 환경에 따라서 무엇을 학습할지는 task-dependent하겠다.
Geometric representation과 topological representation 사이를 자유롭게 오갈 수 있는 방법도 필요하다. 우리가 로봇을 서울에서 뉴욕으로 보내려면 어떤 representation을 사용해야할까? 아마 topological하게 플래닝을 하다가, 어느 순간에는 geometric하게 바뀌어야할 것이다. 이렇게 적절한 시기에 topological constraint와 geometric constraint를 섞을 수 있는 건 navigation에 있어서 큰 도움이 될 것이다. 하지만 geometric model은 메모리를 엄청나게 많이 잡아먹기 때문에, 이를 효율적으로 저장할 방법에 대해 깊게 고민해야한다.
Semantic 정보를 추출할 때 뉴럴네트워크로도 추출하지만, low-level feature를 합성해서 상위단의 개념으로 취합할 수 있다. 예를 들어, ‘바닥+벽+천장을’ 합성하면 ‘방’이 나올 수 있을 것이다. ‘4개의 다리 + 상판’을 취합하면 ‘책상’이 나올 수도 있다. 이렇게 다양한 shape과 appearance를 가지고 있는 물체들에 대해 semantic 정보를 추출해내는 방법에 깊게 고민해야한다.
결국 답은 3개의 키워드로 모인다.
- Long-term autonomy를 어떻게 달성할 것인가?
- 어떻게 해야 SLAM이 실제 세상에서 안정적으로 작동할것인가?
- Lifelong map learning을 어떻게 달성할 것인가?
- 시간이 지나면서 mapping 정확도가 계속 개선되는 시스템을 만들 수 있는가?
- 변화하는 환경에도 적응하는 시스템을 만들 수 있는가?
- SLAM과 딥러닝을 어떻게 잘 섞을 것인가?
- 기존의 model-based state estimation의 장점을 취하면서, 새로운 semantic representation을 적절하게 섞을 수 있는가?