1. 서론
SLAM(Simultaneous Localization And Mapping)은 주변 환경에 대하여 지도를 제작하고 이를 활용하여 자신의 위치를 추정하는 기법이다[1]. 최근 SLAM은 증강/가상현실, 자율주행 등 여러 산업 분야에서 다양하게 활용되고 있다. 특히 증강/가상현실 분야에서 실감있는 콘텐츠를 사용자에게 제공하기 위하여 정확한 위치추정 기술은 필수적이며, SLAM 기술이 널리 활용되고 있다. 정확한 위치 추정을 위하여 SLAM에 카메라, LiDAR, IMU등 여러 종류 센서를 활용하려는 시도가 있어왔으나 여러 센서를 함께 활용하기에는 각 센서의 비용이 크다는 단점이 존재한다. 이를 극복하기 위해 하드웨어가 비교적 저렴한 Monocular SLAM[2]에 대하여 활발히 연구되고 있다.
Monocular SLAM이 좋은 성능을 보이기 위해서는 지도의 빠른 초기화, 특징점이 많은 환경에서 동작시키는 것이 중요하고 이러한 환경이 갖추어지지 않으면 좋은 성능이 나타나기 어려웠다. 이러한 성능의 한계를 개선하기 위하여 여러 가지 연구가 진행되었으며, 지도 초기화를 개선하려는 연구[3], 특징점 뿐만 아니라 특징선까지 활용하여 SLAM에 적용하려는 연구[4]등이 제안되었다. 최근 지도의 빠른 초기화와 특징점과 특징선을 모두 활용한 기법이 제안되어 다양한 환경에서도 안정적인 성능을 나타내게 되었다[5].
한편 대규모 공간에 대한 SLAM의 수요가 최근 증가하고 있다. 그러나 지금까지 활발히 연구되었던 SLAM은 단일 사용자를 주요 사용 대상으로 간주하여, 대규모 공간에 대해서 혼자 지도를 생성하는 것은 한계가 있다. 이러한 한계를 극복하기 위하여 협업 SLAM에 대한 연구 [6-9]가 과거 진행되어 왔다. 그러나 지도 제작 시 상대방의 시작위치를 알아야 한다는 점, 단안카메라가 아닌 스테레오 카메라 등을 활용해야 하는 점 등 여러 가지 제약조건들로 인해 실용적으로 사용되기에는 어려움이 있었다. 이러한 어려움을 극복하고자 [10]과 같은 연구가 제안되었다. [10]은 다른 기존 연구들과는 달리 영상지도 간의 3차원 유사성 변환을 통해 지도를 정렬하는 기법을 제안하였다. 이는 지도의 크기가 달라도 정렬이 되는 이점이 존재하였다. 그러나 [10]은 특징점만을 활용한 SLAM 시스템에 적용할 수 있게 제안되었다. [11]의 경우 Visual SLAM을 통해 획득한 공간 지도의 완성도를 평가하는 연구를 진행하였다. 대규모 공간에 대해 다수 사용자가 지도를 제작한다면 지도의 완성도가 낮을 수 있기 때문에 관련 연구가 진행되고 있는 추세이다.
정확하고 환경에 강인한 사용자 위치 추정을 위해서는 특징점 뿐만 아니라 특징선을 활용하는 것이 매우 중요하다. 따라서 본 논문에서는 [5]를 기반으로 하여 다수 사용자가 지도를 제작할 경우에 대해 특징점과 특징선 정보를 모두 활용하여 지도 병합이 가능한 시스템을 제안한다. 대규모 공간에 대해 여러 명의 사용자가 지도를 동시에 제작 할 경우, 중첩 영역이 발생하면 BoW(Bag-of-Words)방식을 통해 중첩을 감지한다. 중첩이 발생했을 경우 각 지도간의 3차원 닮음 변환(similarity transform)을 특징점과 특징선 정보를 함께 활용하여 계산한다. 계산한 3차원 닮음 변환 정보를 활용하여 지도를 정렬하고 병합하는 과정을 거친다. 이로 인한 장점은 지도의 초기화가 빠르기 때문에 빠른 위치추정을 수행할 수 있고, 특징점과 특징선을 함께 사용했기 때문에 특징점이 많이 추출되지 않는 상황에서도 정확한 위치추정이 가능하다. 또한 대규모 지역에 대해서 다수 사용자가 지도를 동시에 만들 수 있기 때문에 효율적인 지도 제작이 가능하다.
본 논문의 구성은 다음과 같다. 2장에서 관련연구에 대해서 설명한다. 3장에서 제안하는 시스템의 구축 과정을 설명한다. 그리고 4장에서는 제안한 시스템으로 실험한 결과를 기존의 시스템들과 비교하여 성능을 평가하고 5장에서 결론을 맺는다.
2. 관련연구
2.1 특징점과 특징선을 동시에 사용하는 단안 카메라 SLAM
지도 융합은 SLAM 시스템에서 생성되는 키프레임(keyframe)과 3차원 기하 정보가 정밀한 위치정보를 가질수록 수월하다. 단안 카메라 기반의 다양한 SLAM 연구가 존재하였지만 우리는 그 중 SLAM을 구성하는 요소들을 강화시켜 더욱 정밀한 지도를 생성하는 기법[5]을 토대로 연구를 수행하였다. 해당 기법의 경우 초기화 과정에서 기존 매칭 쌍이 존재하는 영상에서 검출된 점들에 대해서만 호모그래피 (homography) 혹은 에피폴라 기하학(epipolar ge-ometry)을 적용하는 것이 아닌, 프레임 사이 가상의 영상에서 특징점을 생성한 후 행렬 분해(matrix fac-torization)의 방법을 통해 강인하게 초기화 과정을 수행한다. 또한 추적과 3차원 기하정보 생성 단계에서 특징점의 정보 뿐만 아니라 특징선 정보까지 추가로 사용하여 실내와 같이 특징점 정보가 검출하기 어려운 곳에서도 강인하게 동작한다. 마지막으로 기존 양끝 점으로 선을 표현하여 6개의 매개변수를 사용하던 선 표현 방법대신, 플리커 좌표계에서 선을 표현하는 방법을 사용하여 매개변수의 수를 5개로 줄여 SLAM의 그래프 최적화 단계에서 비용이 줄어들어 효과적이다.
2.2 협업 SLAM
협업 SLAM은 대규모 공간에 대한 효율적인 영상지도 제작을 위해 필수적인 기술이다. [6]의 경우 하나의 지도를 참조하여 다수 사용자들이 하나의 지도를 공유 및 확장하는 기법으로 사용자들이 서로의 시작 위치를 알고 있는 상황에서만 사용 가능한 한계가 존재한다. 이러한 문제를 해결하기 위하여 다수 사용자가 따로 지도를 생성하고 이를 정렬하는 연구[7-9]가 제안되었다. 하지만 해당 연구는 로봇이 지도를 생성하는 과정만을 가정하였으며, 3차원 공간을 2차원 평면으로 간주하여 지도 정렬을 진행하였다. 또한 스테레오 카메라 사용환경 기반이기 때문에 지도의 크기(Scale)값에 대한 고려는 되지 않았다. 이러한 문제를 해결하기 위해 다수 Monocular 영상지도에 대한 융합 기법[10]이 제안되었다. 이 방법의 경우 BoW 기법을 기반으로 지도의 겹치는 부분을 검색한 후 매칭된 특징점들 쌍의 관계를 통해 두 지도를 하나의 일정한 크기로 정합한다. 또한 이 과정에서 중복되는 특징점의 정보들은 제거하여 생성된 하나의 지도를 더욱 가볍게 만들었다. 본 논문에서는[10]과 달리 빠르고 정확한 위치추정을 위하여 특징 점과 특징선을 활용하여 실내와 같이 질감 정보가 부족한 곳에서도 잘 동작하는 SLAM으로 제작한 지도 병합 방법을 제안한다.
3. 본론
Fig. 1은 제안하는 지도 병합 방법의 전체적인 흐름도를 나타낸다.
Fig. 1. Flowchart for the proposed system.
SLAM A와 B가 한 공간에 대하여 동시에 동작한다고 가정했을 시, SLAM A로 만들어진 지도와 SLAM B로 만들어진 지도에서 중첩이 일어난 부분을 감지하는데 BoW 기법을 활용한다. BoW 기법은 SLAM B의 현재 프레임과 중첩이 발생한 SLAM A 의 프레임들을 병합 후보군으로 간주하고 3차원 점과 3차원 선을 활용하여 지도를 통합하기 위한 3차원 닮음 변환(Sim3)을 계산한다. 계산된 3차원 닮음 변환을 정상치(inlier)의 개수를 통해 정확한 유사도가 계산되었는지 판단한다. 정확한 유사도가 계산되지 않았을 경우, 이전 단계로 돌아가 다시 유사도를 계산한다. 정확한 유사도가 계산되었을 경우 이를 바탕으로 두 개의 SLAM 지도를 정렬하고 두 지도간의 겹치는 3차원 점과 3차원 선을 병합하여 하나의 SLAM 지도로 생성한다.
3.1 BoW를 활용한 SLAM 지도의 중첩 영역 감지
BoW는 특징점과 특징선 기반 모두 수행 가능하나, 본 논문에서는 특징점 기반의 BoW 기법만을 사용하였다. 그 이유는 특징점이 특징선보다 더 많은 수가 검출되고, 기존에 특징점 기반의 BoW 방법을 사용한 연구[2]에서 성능이 검증되었기 때문이다. SLAM 지도를 구성하는 프레임들의 특징점들은 사전에 수많은 영상에서 클러스터링이 수행된 클러스터에 의해 visual word로 표현된다. 각 프레임의 이미지들은 visual word의 히스토그램, 즉, BoW로 표현되어 SLAM 지도의 BoW 데이터베이스에 저장된다. SLAM B의 현재 프레임의 BoW가 SLAM A 지도의 BoW 데이터베이스에 질의(query)되어 중첩이 발생한 SLAM A 지도의 프레임들을 병합 후보로 골라낸다.
3.2 두 지도의 3차원 닮음 변환(Similarity Transfor- mation) 계산
SLAM B의 현재 프레임과 BoW기법을 수행하여 발견한 병합 후보 프레임들 사이에 점과 선을 매칭한다. 매칭쌍이 일정 개수 이상인 경우에 [12]를 사용하여 3차원 닮음 변환을 계산한다. 구해진 3차원 닮음 변환은 정상치(inlier)의 개수를 구하여 검증 과정(식 (1)∼(4))을 거친다.
(1)에서 SLAM B의 현재 프레임에서 관측되는 \(i\)번째 3차원 점을 카메라 좌표계로 변환하고\(\left(X_{B(i)}\right)\)3차원 닮음 변환(S)을 적용한 뒤 SLAM A의 병합 후보 프레임의 영상에 투영한다.(\(\Pi\)는 투영 함수) [2] 에서 해밍 거리를 활용하여 인덱스를 계산하는 방법 이 검증되었고, 이진기술자(binary descriptor)를 사용하기 때문에 투영된 위치에 존재하는 \(j\)번째 2차원 특징점\(\left(x_{A(j)}\right)\)과 기술자(descriptor)의 해밍 거리를 계산한다.(d는 해밍 거리를 계산하는 함수) 이때, 가장 작은 해밍 거리를 가지는 인덱스를 \(j\)*라 한다. 이번에는 SLAM A의 병합 후보 프레임에서 관측되는 \(j\)*번째 3차원 점으로 반대 방향으로 같은 과정을 수행한다.(식 (2)) 이렇게 구해진 SLAM B의 현재 프레임의 2차원 점의 인덱스를 \(i\)*라 한다. 이때, \(i\)와 \(i\)*가 같은 경우 정상치라고 판단할 수 있다.
\(j^{*}=\underset{j}{\operatorname{argmin}} d\left(x_{A(j)}, \Pi\left(S, X_{B(i)}\right)\right)\) (1)
\(i^{*}=\underset{i}{\operatorname{argmin}} d\left(x_{B(i)}, \Pi\left(S^{-1}, X_{A\left(j^{*}\right)}\right)\right)\) (2)
특징점과 마찬가지로, 같은 과정을 특징선을 사용하여 수행하여 p와 p*가 같은 경우 정상치라고 판단한다.(식 (3)∼(4)) (3)에서 SLAM B의 현재 프레임에서 관측되는 p번째 3차원 선을 카메라 좌표계로 변환하고(LB(p)) 3차원 닮음 변환(S)을 적용한 뒤 SLAM A의 병합 후보 프레임의 영상에 투영한다. (투영함수 \(\Pi\)) 투영된 위치에 존재하는 q번째 2차원 특징선(\(l\)A(q))과 기술자의 해밍 거리를 계산한다.(해 밈거리 계산함수 d) 이때, 가장 작은 해밍 거리를 가지는 인덱스를 q* 라 하고 SLAM B의 병합 후보 프레임에서 관측되는 q*번째 3차원 점으로 반대 방향으로 같은 과정을 수행한다.(식 (4)) 이렇게 구해진 SLAM B의 현재 프레임의 2차원 선의 인덱스를 p*라 하고, p와 p*가 같은 경우 정상치라고 판단한다.
\(q^{*}=\underset{q}{\operatorname{argmin}} d\left(l_{A(q)}, \Pi\left(S, L_{B(p)}\right)\right)\) (3)
\(p^{*}=\underset{p}{\operatorname{argmin}} d\left(l_{A(p)}, \Pi\left(S^{-1}, L_{B\left(q^{*}\right)}\right)\right)\) (4)
위와 같은 과정을 통해 정상치라 판단된 점과 선이 일정 개수 이상일 경우 3차원 닮음 변환이 정상적으로 계산되었다 가정하고, 구해진 3차원 닮음 변환을 지도 병합에 사용한다.
Fig. 2. 3D similarity calculation between SLAM A and B.
3.3 계산된 3차원 닮음 변환을 활용하여 지도 정렬 및 지도 병합 수행
3.2절에서 계산된 3차원 닮음 변환 관계를 바탕으로 지도 정렬과 지도 병합을 수행한다. SLAM B 지도의 요소들(프레임, 3차원 점, 3차원 선)에 계산된 3차원 닮음 변환이 적용되어 SLAM A 지도에서 중첩이 발생한 프레임을 기준으로 정렬된다. 이때, SLAM A의 중첩된 프레임에서 발견되는 3차원 점과 3차원 선이 SLAM B의 현재 프레임에 투영된 후 매칭쌍을 탐색해 겹치는 점과 선을 찾아낸다. 정렬된 SLAM B 지도에서 겹치는 점과 선을 제외하고 그 외의 프레임, 3차원 점, 3차원선을 SLAM A에 추가하여 병합 된 지도를 완성한다.
4. 실험 결과 및 고찰
4.1 구현환경
본 논문에서는 c++로 구현된 시스템을 Interl Core i7-7700HQ(2.80GHz), 16GB램 환경에서 실험하였다. 제안된 시스템은 [10]을 기반으로 만들어 졌다. 우리는 만들어 지는 두 SLAM지도를 그래프기반 최적화 툴인 g2o 프레임워크[13]를 사용하여 최적화하였다. 사용된 특징점은 ORB이며 우리가 실험에 사용할 때 적당하다고 판단되는 3000개를 프레임 당 검출할 특징점의 개수로 선택하였다. 또한, 특징선의 경우 LSD 선 검출기[14]를 사용하여 선을 검출하였으며 그 기술자는 LBD[14]를 사용하여 실험하였다. 실험은 TUM-seq의 fr2_desk, fr2_xyz, fr3_str_texture_far의 총 3개 데이터셋을 활용하였다.
4.2 실험결과
Table 1은 single map과 merged map을 ground truth와 비교한 결과이다. single map은 [10]의 시스템으로 3개의 데이터셋을 실행한 결과이다. 기존 시스템과 제안 시스템의 Trajectory 정확성을 비교했을 때 성능차이가 거의 없게 하는 것이 본 실험의 목표이다. Merged map은 제안한 시스템으로 3개의 데이터셋을 실행한 결과이다. 2개의 데이터셋에서는 Single map의 에러가 조금 더 작은 결과를 보였으나 1개의 데이터셋 에서는 merged map의 에러가 조금 더 작았다. 에러의 단위가 작기 때문에 성능 차이는 미미하였고, 단일 SLAM으로 제작한 지도와 여러명의 사용자가 함께 제작한 지도가 유사한 성능을 나타내는 결과를 확인할 수 있었다. Table 2는 single map과 merged map의 생성 시간을 비교한 결과이다. single map에 비해 merged map의 지도 생성 시간이 다소 감소되는 결과를 확인할 수 있었다. Fig. 3, 4, 5는 각각의 데이터셋으로 trajectory error를 시각화 한 그림이다. 빨간색일수록 에러값이 높은 경향을 띄고, 파란색으로 내려갈수록 에러값이 낮다는 의미이다. Fig. 6, 7, 8는 두 SLAM 지도가 병합되어 생성된 결과 이미지이다.
Table 1. Comparison of Absolute Pose Error RMSE(m)
Table 2. Comparison of Map Generation Time(s)
Fig. 3. trajectory error map on fr2_desk (left:single map, right: merged map).
Fig. 4. trajectory error map on fr2_xyz (left:single map, right: merged map).
Fig. 5. trajectory error map on fr3_str_texture_far (left:single map, right: merged map).
Fig. 6. merged map result on fr2_desk.
Fig. 7. merged map result on fr2_xyz.
Fig. 8. merged map result on fr3_str_texture_far.
5. 결론
본 논문에서는 우리는 추가 특징으로 선을 사용한 단안카메라 기반 SLAM에서 생성된 지도들을 하나의 지도로 만드는 지도 융합 연구를 제안한다. 최근 단안카메라 기반 SLAM에서 특징점이 검출이 잘 되지 않는 환경에서 선 정보까지 추가적으로 추출하여 시스템을 동작시키기 때문에, 우리는 점뿐만 아니라 선 정보까지 포함한 시스템에서 지도 간 융합을 한다. 제안하는 방법을 사용하는 경우 3차원 좌표계에서 각 지도 간 유사성 변환 행렬을 계산하기 때문에서도 다른 크기를 가지는 지도를 하나의 지도로 정렬이 가능하다. 또한, 제안하는 방법에서 융합된 지도의 중복된 정보를 제거하기 때문에 융합된 지도사이 크기의 부하를 줄인다. 본 논문에서는 동일 시간대에 동일 공간에 대하여 지도를 제작할 경우에 대하여 효과적인 지도 병합 방법을 제안하였으나, 향후 다른 시간대에 동일 공간에 대해 효율적으로 지도를 제작할 수 있도록 연구가 수행되어야 한다.
Fig. 9. scene on fr2_desk dataset.
Fig. 10. scene on fr2_xyz dataset.
Fig. 11. scene on fr3_str_texture_far
References
- Y.M. Lee and Y.D. Seo, "Vision-Based SLAM in Augmented/Mixed Reality," Journal of Korea Multimedia Society, Vol. 13, No. 3, pp. 12-20, 2009.
- R. Mur-Artal, J.M.M. Montiel, and J.D. Tardos, "ORB-SLAM: A Versatile and Accurate Monocular SLAM System," IEEE Transactions on Robotics, Vol. 31, No. 5, pp. 1147-1163, 2015. https://doi.org/10.1109/TRO.2015.2463671
- C. Tang, O. Wang, and P. Tan, "Gslam: Initialization-robust Monocular Visual Slam via Global Structure-from-motion," Proceeding of IEEE International Conference on 3D Vision, pp. 155-164, 2017.
- A. Pumarola, A. Vakhitov, A. Agudo, A. Sanfeliu, and F. Moreno-Noguer, "PL-SLAM: Real-time Monocular Visual SLAM with Points and Lines," Proceeding of IEEE International Conference on Robotics and Automation, pp. 4503-4508, 2017.
- S.J. Lee and S.S. Hwang "Elaborate Monocular Point and Line SLAM with Robust Initialization," Proceedings of the IEEE International Conference on Computer Vision, pp. 1121-1129, 2019.
- J.W. Fenwick, P.N. Newman, and J.J. Leornard, "Cooperative Concurrent Mapping and Localization," Proceeding of the 2002 IEEE International Conference on Intelligentm, pp. 1810-1817, 2002
- M. Ballesta, A. Gil, O. Reinoso, M. Julia, and L.M. Jim, "Multi-robot Map Alignment in Visual SLAM," Article in WSEAS Transactions on Systems, Vol. 9, pp. 213-222, 2010.
- X.S. Zhou and S.I. Roumeliotis. "Multirobot Slam with Unknown Initial Corrspondence: The Robot Rendezvous Case," Proceedings of the 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems, pp. 1785-1792, 2006.
- D. Fox, J. Ko, K. Konolige, B. Limketkai, D. Schulz, and B. Stewart, "Distributed Multiro-bot Exploration and Mapping," Proceedings of the 2nd Canadian Conference on Computer and Robot Vision, pp. 1325-1339, 2005.
- J.W. Kam, H.S. Kim, S.J. Lee, and S.S. Hwang "A Method of Map Fusion for Multiple Monocular Slam," A 31th Workshop of Image Processing and Understanding, 2019.
- H.S. Kim, J.W. Kam, and S.S. Hwang "An Evaluation System to Determine the Completeness of a Space Map Obtained by Visual SLAM," Journal of Korea Multimedia Society, Vol. 22, No. 4, pp. 417-423, 2019. https://doi.org/10.9717/KMMS.2019.22.4.417
- B.K.P. Horn, "Closed-form Solution of Absolute Orientation using Unit Quaternions," Journal of the Optical Society of America A, Vol. 4, No. 4, pp. 629-642, 1987. https://doi.org/10.1364/josaa.4.000629
- R. Kuemmerle, G. Grisetti, H. Strasdat, K. Konolige, and W. Burgard, "G2o: A General Framework for Graph Optimization," IEEE International Conference on Robotics and Automation, pp. 3607-3613, 2011.
- R.G.V. Gioi, J. Jakubowicz, J.M. Morel, and G. Randall, "LSD: A Line Segment Detector with a False Detection Control," IEEE Transactions on Pattern Analysis and Machine Intelligence, pp. 722-732, 2008. https://doi.org/10.1109/TPAMI.2008.300
- L. Zhang and R. Koch. "An Efficient and Robust Line Segment Matching Approach based on LBD Descriptor and Pairwise Geometric Consistency," Journal of Visual Communication and Image Representation, Vol. 24, No. 7, pp. 794-805, 2013. https://doi.org/10.1016/j.jvcir.2013.05.006