ICRA 2023 - 포스터 (Day 2)

Loosely-Coupled Localization Fusion System Based on Track-To-Track Fusion with Bias Alignment

  • Localization 시스템은 다양한 이유로 오차를 만들어냄.
    • 센서 캘리브레이션이 잘 안되면 calibration error
    • 지도를 기반으로 위치를 추정하는데 지도가 부정확하면 map bias error
    • INS와 같은 시스템에서는 drift error
  • 시간이 지날수록 누적되는 에러를 reference 시스템과 비교해 bias를 추적함. 추적한 bias를 기반으로 target 시스템의 bias를 수정할 수 있음.

 


Mapping with only the Ground

  • 바닥 아스팔트 노면만 바라보며 수행하는 visual odometry.
  • 이미지 추출 -> 키포인트 검출 -> 바닥평면으로 투영 -> 이후 기본적인 VO 파이프라인 사용
  • 루프클로저가 사용될 경우 정확도가 꽤 좋음
  • 루프클로저를 사용하지 않을 경우 drift가 누적됨
    • 특히, 회전할 때 누적이 많이 됨
  • 하지만 테스트 해본 공간이 겨우 3m x 2m 라서 큰 공간에서 동작할지 확신할 수 없음.

 


Structure PLP-SLAM: Efficient Sparse Mapping and Localization using Point, Line and Plane for Monocular, RGB-D and Stereo Cameras

  • Line Segment Detection (LSD)로 선을 검출해서 2가지 용도로 사용한다.
    • Point-Line map 생성 (Geometry)
    • Instance planar segmentation 이미지 생성 (Semantics)
  • 두개를 퓨전하면 Line-Planar map이 생성된다.

 


Object-based SLAM utilizing unambigous pose parameters considering general symmetry types

  • 서울대에서 나온 연구
  • Object-based SLAM을 할 때는 각각의 object의 pose를 아는 것이 중요하다.
    • 하지만, 종종 symmetry를 가진 물체들은 방향을 정의하기 어렵기 때문에 pose를 구하기 어려울 수 있다. 2. Contribution 파트를 보면…
    • [Asymmetry] 물체는 6dof 포즈를 바로 추정할 수 있다
    • [Discrete symmetry] 물체는 2개의 평면으로 ambiguous pose가 나타난다
    • [Continuous symmetry] 물체는 z축 기준으로 빙빙 돌려도 모두 똑같이 생겼기 때문에 무한개의 ambiguous pose가 생긴다.
  • Multiple hypothesis tracking을 통해 특정 object가 asymmetry/discrete symmetry/continuous symmetry인지 구분을 할 수 있다.
  • 이후, 각각의 타입에 맞춘 factor graph 최적화 방법을 제안한다.
  • 내가 드렸던 질문으로는 object label마다 asymmetry/discrete/continuous 클래스를 나눠놓으면 무거운 multiple hypothesis 연산을 하지 않아도 되는데 왜 이 방법을 사용하셨는지 여쭤봤다.
    • 제시해주신 답으로는 ‘같은 object class임에도 디자인에 따라 symmetry가 생길수도 있기 때문에, symmetry를 기준으로 여러 object class를 학습하는건 효율적이지 않다. 특히나 새로운 디자인이 나오면 재학습 해야하는 경우도 생긴다’ 라고 하셨다.

 


Towards View-invariant and Accurate Loop Detection Based on Scene Graph

  • Semantic graph를 통해서 loop closure를 할 수 있는 descriptor를 생성하는 연구.
  • Illumination이나 appearance가 바뀌어도 잘 동작한다는 장점이 있다.

 


Zero-shot Active Visual Search (ZAVIS): Intelligent Object Search for Robotic Assistants

  • 고려대 최성준 교수님 랩실 연구
  • Active visual search (AVS) 방법론에 대한 연구
  • 방법론:
    • Scan landmark: 라이다와 PTZ 카메라를 이용해서 semantic view 생성
      • Open-set detector를 사용해서 사전에 학습되지 않은 class의 물체도 검출한다.
      • ‘Unknown’ class를 검출했을 때, 유저 프롬프트 정보에 대해 CLIP 기반 text-image matching을 통해 실제 class를 찾아낸다.
    • Waypoint generation: Semantic uncertainty (vision-language model의 text-image matching의 entropy)와 pre-trained language model의 common sense knowledge를 바탕으로 한 cost function을 통해 waypoint 생성
      • COMET ATOMIC 2020이라는 common sense knowledge 데이터셋이 있다고 함.

 


COVINS-G: A Generic Back-end for Collaborative Visual-Inertial SLAM

  • 기존의 COVINS 프레임워크를 조금 더 확장한 버전
    • 중앙 서버에서 multi-agent를 사용한 collaborative SLAM을 위한 백엔드 연산을 하는 프레임워크
    • COVINS는 ORB-SLAM3 만 사용할 수 있었고, Multi-agent bundle adjustment를 하느라 연산량이 너무 많았음.
      • BA를 한다는건 모든 keypoint, pose, landmark를 통신으로 보내야하는건데, 통신 부하량도 너무 많았음.
  • COVINS-G는 keyframe의 keypoint 정보와 pose 정보만 송수신함.
    • keypoint 정보를 기반으로 데이터베이스 관리를 하고 loop closure가 가능함.
    • Loop closure를 할 때, 2개의 agent의 trajectory간 absolute scale을 복원할 수 있어야함. 여기서 하나의 트릭을 사용
      • 각각의 agent들의 consecutive frame을 마치 stereo camera처럼 이용해서 동일 landmark를 보고있다고 하면 두개의 trajectory 간의 absolute scale을 알 수 있음. (포스터에서는 17 point algorithm이라고 하지만, 사실 그냥 2개의 stereo camera간의 absolute trajectory를 비교하는 것과 동일함)

 


A Probabilistic Framework for Visual Localization in Ambiguous Scenes

  • (솔직히 잘 모르겠는 연구…)
  • 이미지 상 비슷하게 보이는 오브젝트/뷰가 많은 경우, visual localization을 하기 어렵다 (Problem 섹션 참고)
  • MLP를 이용해서 pose regression을 한다.

 


DytanVO: Joint Refinement of Visual Odometry and Motion Segmentation in Dynamic Environments

 


NoCal: Calibration-Free Semi-Supervised Learning of Odometry and Camera Intrinsics

  • 비디오 시퀀스가 주어졌을 때, 1. NeRF 기반 scene rendering, 2. relative pose estimation (i.e. odometry), 3. camera calibration을 동시에 수행하는 시스템을 제안.
  • 저자들에 의하면 사실 View syenthesis가 잘 되지 않는다고 한다. 하지만 view synthesis를 같이 함으로써 인해 odometry 추정 및 calibration이 꽤 잘 된다고 한다.
  • Camera model은 OpenCV perspective를 사용했다고 한다. 이 이야기를 듣고 나는 differentiable한 camera model을 사용하면 모델 자체가 backprop으로 인해 업데이트가 되며 자동 캘리브레이션이 될 것이라고 조언해줬다.

 


MVTrans: Multi-view Perception of Transparent Objects

 


Swarm-LIO: Decentralized Swam LiDAR-inertial Odometry

 


Robust Incremental Smoothing and Mapping (riSAM)

 


Loc-NeRF: Monte Carlo Localization using Neural Radiance Fields

  • Monte Carlo Localization (i.e. Particle filter 기반 위치 추정 기법)에 NeRF를 섞어본 실험적인 방법
    • Monte Carlo Localization은 보통 이렇게 동작한다: 1. Motion model 기반으로 이동치 추정, 2. 이동 후 위치할 가능성이 있는 곳에 particle을 뿌림, 3. 각각의 particle 마다 observation (보통 LiDAR 스캔)을 지도와 매칭해서 가장 확률이 높은 particle을 정답으로 삼음.
  • Loc-NeRF도 Monte Carlo Localization의 파이프라인을 따라가지만, observation이 NeRF의 novel view rendering을 이용함.
    • 사전에 Scene에 대해서 Neural radiance field를 학습해놓음.
    • 위치 추정을 하기 위해 초기 motion model 값을 기반으로 particle을 뿌림.
    • 각각의 particle마다 (i.e. pose candidate)마다 novel view rendering을 수행 함. 이 때, 모든 픽셀을 다 렌더링하면 너무 오래 걸리기 때문에, 64개의 픽셀만 렌더링을 수행함.
    • 렌더링 된 결과와 실제 카메라에서 나온 결과가 가장 비슷한 particle이 다음 위치가 됨.
  • 기존의 Monte Carlo Localization 기법에 Particle annealing이라는 기법을 함께 사용함.
    • 첫 프레임에서 위치를 찾을 때에는 넓은 공간 속 위치를 찾기 때문에 정확한 위치를 찾을 수 없으나, particle filter가 진행되면서 점점 정답 위치로 수렴해가기 때문에, particle의 수가 많을 필요가 없다.
    • 그렇기 때문에, 초기 iteration에서는 수많은 particle을 뿌려서 위치를 찾되, iteration이 높아질수록 particle의 수를 줄여 실시간 프로세싱이 가능하게 하는 기법 역시 제안한다.

 


Ditto in the House: Building Articulated Models of Indoor Scenes through INteractive Perception

  • Affordance network를 이용해 ‘움직일 수 있는 static object’를 검출한다. 이를 통해 어떤 형태의 state change가 나타날 수 있는지 예상하는 네트워크를 만든다. (e.g. 냉장고 문이 열리고 닫힘)
  • 이런 프로그램을 짤 때 어떤 라이브러리를 썼냐고 물어보니, PCL과 Open3D를 썼다고 한다.

 


Category-level Shape Estimation for Densely Cluttered Objects

  • 다수의 물체들이 서로 엉켜있어 아주 강한 occlusion이 존재할 때, 물체들의 Shape을 계산한다는 연구이다.
    • 이 때, 우리는 ‘어떤 class의 물체들이 있는지’는 알고 있지만, ‘해당 class의 물체들은 모두 길이, 넓이, 높이가 조금씩 다르다’ 라는 전제를 가지고 물체의 형태를 추정한다.
  • 우선 Instance segmentation을 통해 point cloud segmentation을 수행한다.
    • Occlusion이 심하기 때문에, point cloud는 부분적으로만 복원이 될 것이다.
    • Class는 정확하게 추론했다는 전제를 가진다.
  • Segmentation을 통해 추론한 class를 우리가 가지고 있는 물체의 shape template과 비교한다.
  • 3D GCN을 통해 geometric transformation parameter를 추정한다.
    • 이 파라미터들은 길이, 넓이, 높이의 차이를 의미한다.
    • 이 파라미터들을 구하면, 길이/넓이/높이에 맞춰 변형한 shape template을 구할 수 있다.
      • 즉, 실제로 point cloud에서 빈 곳을 채우는게 아니라, 적당히 맞는 길이/넓이/높이를 추정해 shape deformation을 하는 것이라고 볼 수 있다.

 


Category-level Global Camera Pose Estimation with Multi-Hypothesis Point Cloud Correspondence

  • 딥러닝을 사용하지 않고 object를 바라보는 camera pose estimation을 하는 방법을 소개한다.
    • 이 때, 우리가 바라보고 있는 object는 class는 알고 있지만, ground truth 3D model과 다른 형태를 가지고 있는 상황이다.
    • 예를 들어, 우리가 가진 모델은 BMW 520d 자동차의 3D 모델이지만, 실제로 바라보고 있는 자동차는 BMW 320d 일 수 있다는 것이다. 대충 전체 쉐입은 비슷하지만, 디테일 적인 부분에서 다를 수 있다.
  • 3D 모델에서 3D keypoint를 추출해서 매칭을 한 후, affinity matrix라는 것을 통해서 제대로 매칭을 했는지 확인을 한다. 이 후, Least squares를 이용해서 초기 포즈를 추정한 후, Weighted pairwise distance loss를 기반으로 포즈 최적화를 진행한다.

 


Simple-BEV: What Really Matters for Multi-Sensor BEV Perception?

    1. 최신 BEV 생성 방식을 비교하면서 ‘BEV를 생성하는데에 어떤 점들이 중요한가?’를 정리하고, 2. 본인들의 BEV 알고리즘을 소개한다.
  • BEV를 생성하는데에 중요한 점들
    • ‘Predicting semantic map representations from images using pyramid occupancy networks’, ‘Lift, splat, shoot: Encoding images from arbitrary camera rigs by Implicitly unprojecting to 3D’, ‘Translating images into maps’, ‘Learning bird’s eye-view representation from multi-camera images via spatiotemporal transformers’와 저자의 BEV 알고리즘을 비교한다.
      • 위 논문들 사이의 성능 차이는, 사실 논문에 있는 성능 벤치마크에서 이야기하는 것 보다 훨씬 작다 (다들 고만고만하다…)
      • Unweighted splatiing, depth-based splatting, deformable attention과 같은 멋있어보이지만 무거운 알고리즘들보다, 사실 우리가 쓴 bilinear sampling과 같은 가벼운 알고리즘도 성능이 잘 나온다.
    • BEV 모델을 학습할 때, batch size를 키우면 정확도가 높아지는 것을 볼 수 있다.
    • BEV 모델을 학습할 때, 고해상도 이미지를 생성할 경우 정확도가 높아지는 것을 볼 수 있다.
    • BEV 모델을 학습할 때, 더 깊은 backbone을 사용하면 정확도가 높아지는 것을 볼 수 있다.
    • BEV 모델을 학습할 때, augmentation으로 cropping/resizing/camera shuffling을 사용하면 정확도가 높아진다.
      • camera dropout는 도움이 되지 않는다.
    • BEV 모델을 학습할 때, LiDAR와 RADAR 정보를 섞으면 정확도가 많이 올라간다.
      • LiDAR + RADAR 정보를 섞기 위해서는 그냥 단순히 feature에 concatenate하면 된다.

 


BEVFusion: Multi-Task Multi-Sensor Fusion with Unified Bird’s-Eye View Representation

s-Eye View Representation

 


Cerberus: Low-Drift Visual-Inertial-Leg Odometry for Agile Locomotion

 


Cross-Modal Monocular Localization in Prior LiDAR Maps Utilizing Semantic Consistency

  • Semantic LiDAR 지도가 있을 때, 카메라만 가지고 위치를 추정하는 방법이다.
  • 우선 카메라 이미지로부터 semantic segmentation과 ORB-SLAM3를 돌려서 semantic visual map을 생성한다.
    • 여기에 semantic LiDAR map을 가져와서 ICP를 통해서 포즈를 구한다.
  • 내 질문: 실제 3D 공간에서의 LiDAR의 포인트 클라우드 위치와 Visual 포인트 클라우드의 위치가 다르지 않나? 그러면 정합이 잘 안되서 정확도가 잘 안나올텐데.
    • 답변: 그러고보니 그렇네… 근데 실험 결과 보면 잘됨.
    • (ㅋㅋㅋ… 왜 되는지는 모르겠지만 일단 된다 라는 답변…)

 


L-C*: Visual-inertial Loose Coupling for Resilient and Lightweight Direct Visual Localization