SLAM 기술면접 질문 100선

4개의 분야로 나눠져있습니다 - General, LiDAR SLAM, Visual SLAM, System design, Coding interview questions (Live / implementation). 각각의 분야는 10-25개의 메인 질문으로 이뤄져있으며, 후속 질문 또는 비슷하지만 다른 형태의 질문이 있을 수 있습니다. 난이도는 무작위입니다.

General

  1. 3D Rotation을 표현하는데에는 어떤 방법들이 있나요?
    • SO(3) matrix, Quaternion, Axis-angle, Euler angle의 차이점을 설명해주세요
    • Gimbal lock은 어떤 문제를 일으키나요?
    • SO(3) 매트릭스의 수학적 전제 조건이 어떻게 되나요?
  2. SE(3) 매트릭스의 구조에 대해 설명해주세요.
    • SE(3) 매트릭스에서 가장 아랫단 row인 [0,0,0,1]은 무슨 뜻을 가지나요?
  3. SLAM에서 쓸 수 있는 센서에는 어떤게 있을까요?
  4. SLAM에서 비선형 최적화는 왜 하나요?
    • Visual-SLAM에서 비선형 모델을 가진 부분에 어떤 것들이 있나요?
    • LiDAR SLAM에서 비선형 모델을 가진 부분에 어떤 것들이 있나요?
  5. 비선형 최적화 방법에는 어떤 것들이 있나요?
  6. Loop closure가 무엇인가요? 어떻게 하는건가요?
  7. Motion model과 observation model이 무엇인가요?
  8. RANSAC에 대해 설명해주세요.
  9. Robust kernel (또는 M-estimator)에 대해 설명해주세요.
  10. Kalman filter와 Particle filter에 대해서 설명해주세요.
    • Kalman filter와 Extended Kalman filter의 차이는 무엇인가요?
  11. Filter-based SLAM과 Graph-based SLAM의 차이를 설명해주세요.
  12. Information matrix, 또는 covariance matrix란 무엇일까요?
  13. Schur complement는 무엇일까요?
  14. LU, Cholesky, QR, SVD, Eigenvalue decomposition의 차이가 무엇인가요?
    • SLAM에서는 어떤 방식을 자주 사용하고, 어떤 상황에서 이를 사용하나요?
  15. Least squares optimization을 왜 할까요?
    • Maximum-a-posteriori (MAP)와 Maximum likelihood (MLE) 문제가 SLAM에 어떻게 적용되는지 설명해주세요.
  16. SLAM을 수행할 때 map의 표현 방식에는 어떤게 있을까요?
    • SLAM으로 생성한 지도를 기반으로 Planning을 수행하려면 어떤 형태의 지도를 고르실래요?
    • Sparse mapping과 Dense mapping의 차이와 장단점을 설명하세요.
  17. Lie group과 lie algebra를 설명해주세요.
    • Exp / Log map이 무엇인가요?
  18. 여러개의 map을 하나로 합치려면 어떻게 해야할까요?
  19. Inverse depth parameterization이 무엇인가요?
  20. Pose graph optimization에 대해 설명해주세요.
  21. Drift란 무엇인가요?
    • Scale drift는 무엇인가요?
  22. SLAM에서 연산량을 줄이는 방법에는 어떤게 있을까요?
    • Keyframe 방식이란 무엇일까요?
  23. Relocalization이란 무엇인가요?
    • Loop closure detection과 어떤 점이 다를까요?
  24. Marginalization이 무엇인가요?
  25. IMU pre-integration이란 무엇인가요?

 

LiDAR SLAM

  1. ICP 알고리즘에 대해 설명해주세요.
    • ICP의 파생 알고리즘 중 어떤 걸 주로 사용하시나요?
  2. Point-to-point metric과 point-to-plane metric 의 차이를 설명해주세요.
  3. 2개의 포인트 클라우드를 정합하기 위해 ICP를 수행했지만 결과가 좋지 않았습니다. 여기에 어떤 이유들이 있을 수 있을까요?
  4. K-D tree에 대해 설명해주세요.
    • 라이다 프로세싱에서 K-D tree를 어떤 방법으로 이용할 수 있을까요?
  5. Octree에 대해 설명해주세요.
  6. 어떤 상황에서 K-D tree를 사용하기 좋을까요? 반대로, 어떤 상황에서 Octree를 사용하기 좋을까요?
  7. Downsampling 이란 무엇이고, 왜 할까요?
    • Voxelization에 대해 설명해주세요.
    • 너무 많은 downsampling을 하면 어떤 일이 생길까요?
  8. 바닥면을 검출하는 방법에는 어떤 것이 있을까요?
    • Plane의 수식을 적어주세요.
  9. Passthrough 필터란 무엇인가요?
  10. 라이다 포인트 클라우드에서 아웃라이어를 제거하는 전처리 기법에는 어떤 것들이 있을까요?
    • Statistical outlier removal (SOR) 필터는 어떻게 동작하나요?
  11. ICP를 수행할 때, initial alignment가 무슨 뜻이고 왜 중요할까요?
  12. 포인트 클라우드에 x,y,z 정보 외로 어떤 정보를 담을 수 있을까요?
  13. LiDAR와 IMU를 함께 사용하면 어떤 점이 좋을까요?
  14. LiDAR point cloud로 loop detection을 하려면 어떤 방법들이 있을까요?
  15. Loop를 찾았습니다. 어떤 방식으로 최적화를 수행하나요?
    • Visual SLAM에서 이야기하는 Bundle adjustment와는 어떤 점들이 다르나요?
  16. Ground plane을 사용해 최적화를 진행하는 LiDAR SLAM의 경우, z-drift가 자주 발생하기도 합니다. 왜 일까요?
  17. LiDAR De-skew가 무엇일까요?
  18. LiDAR SLAM을 수행하는 도중, 주변에 움직이는 객체가 있을 경우 어떤 현상이 발생하나요?
  19. Multi-path 문제가 무엇인가요?
  20. 라이다가 잘 동작하지 않는 환경들에는 어떤 것들이 있을까요?
  21. 라이다의 종류에는 어떤 것들이 있을까요?
  22. 카메라의 정보와 라이다의 정보를 합치는데에는 어떤 방법이 있을까요?
  23. Point cloud, mesh, surfel은 어떻게 다를까요?
  24. Fast Point Feature Histogram (FPFH) descriptor가 무엇일까요?
  25. Point cloud에서의 변화를 감지하는 방법에는 어떤 것들이 있을까요?

 

Visual SLAM

  1. Image projection 과정에 대해서 설명해주세요.
    • Intrisic matrix와 Extrinsic matrix가 무엇일까요?
    • Single view 이미지에서 depth를 추정할 때 어떤 수식을 이용할까요?
  2. 카메라 캘리브레이션은 어떤 것이고, 수행 시 어떤 정보를 얻을 수 있나요?
    • K 매트릭스와 Distortion coefficient의 수식을 적어주세요.
  3. Monocular / Stereo / RGB-D SLAM의 특징을 설명해주세요. 각각 방식의 장점과 단점은 무엇인가요?
    • RGB-D 에서는 depth map을 어떻게 얻어낼까요?
    • Stereo 에서는 depth map을 어떻게 얻어낼까요?
    • Stereo disparity에 대해 설명해주세요.
    • Monocular vslam을 할 때 scale을 어떻게 복원할 수 있을까요?
  4. Bundle adjustment에 대해서 설명해주세요
    • Local bundle adjustment와 global bundle adjustment의 차이가 무엇일까요?
  5. Essential matrix와 Fundamental matrix가 무엇인가요?
    • Essential / Fundamental matrix의 수식을 적어주세요
    • Essential / Fundamental matrix의 degrees of freedom 은 몇개인가요?
    • 5/7/8 point algorithm은 어떤건가요?
  6. Homography matrix가 무엇인가요?
  7. 알고계시는 카메라 모델들에 대해 설명해주세요.
  8. Local feature matching의 과정에 대해 설명해주세요.
    • Keypoint와 descriptor는 어떻게 다른가요?
    • 딥러닝에서 말하는 feature와 SLAM에서 말하는 feature는 어떤게 다른가요?
    • 정확한 feature matching을 만드는 전략에는 어떤 방법들이 있을까요?
  9. Local feature tracking을 하는 방법에 대해 설명해주세요.
    • Motion model로 어떤걸 사용할 수 있을까요?
    • Optical flow 방식 중에 어떤걸 사용할 수 있을까요?
    • Template tracking에 대해 설명해주세요.
    • Optical flow와 direct tracking은 어떤 차이가 있나요?
  10. PTAM, ORB-SLAM, SVO의 특징과 차이점에 대해 설명해주세요.
  11. Visual odometry, Visual-SLAM, Structure-from-Motion (SfM)의 차이는 무엇인가요?
  12. 실시간 VSLAM에서 SIFT를 쓰지 않는 이유는 무엇인가요?
    • SIFT의 대안으로 어떤 것들이 있을까요?
    • 딥러닝 기반 local feature detection을 사용할 경우, 어떤 장점이 있을까요?
  13. Reprojection error란 무엇인가요?
    • Photometric error란 무엇인가요?
  14. Perspective-n-Point (PnP) 문제가 무엇인가요?
    • 2D-3D correspondence가 있을 때, 어떻게 카메라의 pose를 구할 수 있을까요?
  15. Feature-based VSLAM과 Direct VSLAM의 차이가 어떻게 되나요?
  16. 이미지 속 블러를 줄이는 방법엔 어떤 것들이 있을까요?
  17. Covisibility graph란 무엇인가요?
  18. Loop closure detection을 수행할 때 어떻게 하나요?
    • Bag-of-visual-words와 VLAD에 대해 설명해주세요.
    • Bag-of-visual-words를 만드는 방법에 대해 설명해주세요.
    • TF-IDF에 대해 설명해주세요.
  19. Floating-point descriptor와 Binary descriptor는 무슨 차이가 있나요?
    • Feature descriptor distance는 어떤 방식으로 구할 수 있나요?
  20. 좋은 local feature란 무엇일까요?
    • Invariance란 무엇인가요?
  21. 이미지 patch similarity를 구하는 방법엔 어떤게 있나요?
    • SSD, SAD, NCC를 비교해주세요.
  22. Direct linear transform (DLT)에 대해 설명해주세요.
  23. Image pyramid에 대해 설명해주세요.
  24. Line/edge 추출 방식들을 설명해주세요.
  25. Triangulation에 대해 설명해주세요.

 

System design

  1. 4개의 카메라를 전후좌우 설치한 모바일 로봇 시스템이 있습니다. 이를 이용한 실내 맵핑/측위/경로계획이 가능한 시스템을 설계하세요.
  2. 놀이동산에서 사용할 수 있는 키오스크 로봇을 설계하세요.
  3. (미국이나 유럽에서 자주 보이는) 차고에 주차 시 사용 가능한 맵핑/측위 시스템을 설계해보세요.
  4. 주차장에서 사용가능한 맵핑/로컬라이제이션 시스템을 설계해보세요.
  5. 움직이는 관람차에서 사용가능한 증강현실 디바이스를 설계해보세요.
  6. 유동인구가 많은 지하철역에서 사용 가능한 증강현실 디바이스를 설계해보세요.
  7. 물류센서에서 사용할 무인지게차에 탑재될 SLAM 시스템을 설계해보세요. 다수의 지게차가 돌아다니며, 사람도 함께 있습니다.
  8. 공장에서 사용할 모바일 로봇에 탑재될 SLAM 시스템을 설계해보세요. 일정한 조명이 있지만, 코팅 바닥이라 반사가 잦고 공장 설비는 메탈 재질로 되어있어 비쥬얼 피쳐가 적으며 반사가 잦습니다.
  9. 10TB의 리얼월드 데이터가 있습니다. 최대한 모든 환경에서 잘 동작하는 SLAM을 만들기 위해 어떤 개발 파이프라인을 만드실건가요?
  10. 크라우드 소싱 기반 자동 HD-Map 제작 시스템을 설계해보세요.

 

Coding interview questions (Live / implementation)

  1. 다수의 연속된 이미지로부터 panorama image를 만드는 image stitcher를 구현해보세요.
  2. G-ICP 기반의 odometry를 사용해 LiDAR SLAM을 구현하세요. Loop closure가 구현되어야합니다.
  3. FAST keypoint detector를 구현하세요.
  4. 2D-3D correspondence 데이터가 주어졌을 때, camera pose를 구할 수 있는 알고리즘을 구현하세요.
  5. PROSAC 프레임워크를 구현해보세요.
  6. ICP 알고리즘을 구현해보세요.
  7. Feature descriptor의 set이 2쌍 주어졌을 때, brute-force matcher를 구현하세요.
  8. Vector / Matrix container를 구현해보세요. 기본적인 operator들이 동작해야합니다 (e.g. matrix-matrix addition, matrix-matrix multiplication, matrix-vector multiplication)
  9. A* 알고리즘을 구현해보세요.
  10. Matrix multiplication을 가장 빠르게 동작하도록 구현해보세요.
  11. (Live) Two Sum 문제
  12. (Live) Maximum subarray sum 문제
  13. (Live) Product of array except self 문제
  14. (Live) Subarray sum equals k 문제
  15. (Live) Longest common sequence 문제