DOI QR코드

DOI QR Code

GPS와 단안카메라, HD Map을 이용한 도심 도로상에서의 위치측정 및 맵핑 정확도 향상 방안

Method to Improve Localization and Mapping Accuracy on the Urban Road Using GPS, Monocular Camera and HD Map

  • 김영훈 (서울시립대학교 공간정보공학과) ;
  • 김재명 (서경대학교 도시공학과) ;
  • 김기창 (서울시립대학교 공간정보공학과) ;
  • 최윤수 (서울시립대학교 공간정보공학과)
  • Kim, Young-Hun (Department of Geoinformatics, University of Seoul) ;
  • Kim, Jae-Myeong (Department of Urban Planning Engineering, Seokyeong University) ;
  • Kim, Gi-Chang (Department of Geoinformatics, University of Seoul) ;
  • Choi, Yun-Soo (Department of Geoinformatics, University of Seoul)
  • 투고 : 2021.10.07
  • 심사 : 2021.10.22
  • 발행 : 2021.10.31

초록

안전한 자율주행을 위해 정확한 자기위치 측위와 주변지도 생성은 무엇보다 중요하다. 고가의 고정밀위성항법시스템(Global Positioning System, GPS), 관성측정장치(Inertial Measurement Unit, IMU), 라이다(Light Detection And Ranging, LiDAR), 레이더(Radio Detection And Ranging, RADAR), 주행거리측정계(Wheel odometry) 등의 많은 센서를 조합하여 워크스테이션급의 PC장비를 사용하여 센서데이터를 처리하면, cm급의 정밀한 자기위치 계산 및 주변지도 생성이 가능하다. 하지만 과도한 데이터 정합비용과 경제성 부족으로 고가의 장비 조합은 자율주행의 대중화에 걸림돌이 되고 있다. 본 논문에서는 기존 단안카메라를 사용하는 Monocular Visual SLAM을 발전시켜 RTK가 지원되는 GPS를 센서 융합하여 정확성과 경제성을 동시에 확보하였다. 또한 HD Map을 활용하여 오차를 보정하고 임베디드 PC장비에 포팅하여 도심 도로상에서 RMSE 33.7 cm의 위치 추정 및 주변지도를 생성할 수 있었다. 본 연구에서 제안한 방법으로 안전하고 저렴한 자율주행 시스템 개발과 정확한 정밀도로지도 생성이 가능할 것으로 기대한다.

The technology used to recognize the location and surroundings of autonomous vehicles is called SLAM. SLAM standsfor Simultaneously Localization and Mapping and hasrecently been actively utilized in research on autonomous vehicles,starting with robotic research. Expensive GPS, INS, LiDAR, RADAR, and Wheel Odometry allow precise magnetic positioning and mapping in centimeters. However, if it can secure similar accuracy as using cheaper Cameras and GPS data, it will contribute to advancing the era of autonomous driving. In this paper, we present a method for converging monocular camera with RTK-enabled GPS data to perform RMSE 33.7 cm localization and mapping on the urban road.

키워드

1. 서론

자율주행에는 측위, 인지, 판단, 제어기술이 사용된다. 주변의 상태를 살피고 안전한지 판단하고 주행을 하기 위해서 측위와 인지가 선행되어야 한다. 측위와 인지기술을 구현하기 위해 카메라를 주요 센서로 사용하는 Visual SLAM 기술이 빠르게 발전하고 있다(Younes et al., 2017). 단안카메라를 자율주행의 주요 입력센서로 사용하면 저렴한 비용으로 시스템을 단순화할 수 있다(Eade and Drummond, 2006). 그리고 이미지 딥러닝 기술과 함께 사용하여 라이다의 점군에서는 얻을 수 없는 풍부한 주변 정보를 얻을 수 있다. 차량형 블랙박스 크기의 작은 임베디드 장비에 포팅하여 ADAS(Advanced Driver Assistance Systems)와 같은 장비뿐만 아니라(Ziebinski et al., 2017), 배달로봇이나 서빙로봇에도 사용될 수 있다 (Filipenko and Afanasyev, 2018). 또한 정밀도로지도의 생성과 신속한 갱신을 위한 크라우드 센싱(Crowd Sensing) 에도 사용될 수 있다(Qi et al., 2021). 크라우드 센싱은 일반차량에 도로변화탐지 모듈을 탑재하여 도로의 변화 상태를 감지하고 변화상태를 중앙관제소에서 체계적으로 관리하여 신속한 정밀도로지도 갱신을 가능하게 한다. 안전한 자율주행을 위해 신속한 정밀도로지도 갱신에 대한 관심이 나날이 커지고 있지만 관련 연구는 센서의 정확도와 장비의 가격이라는 현실적인 장벽에 부딪혀 더디게 진행되고 있다.

단안카메라를 사용하는 Monocular Visual SLAM의 가능성을 보여준 최초의 연구는 2007년 영국 임페리얼 칼리지의 Davison et al. (2007)의 Mono SLAM이다. 이 연구에서 Davison은 모든 영상 이미지에서 특징점을 추출하여 카메라의 위치를 추적하고 특징점들에 대한 3차원 맵을 생성하였다. 영상 이미지를 사용하여 추출한 특징 점의 위치를 EKF(Extended Kalman Filter)를 사용하여 추적하고 최적화하였다. 그러나 위치 계산과 경로추적 에 시간이 많이 소요되어 실시간성 확보와 정밀한 계산이 어렵다는 단점이 있었다. 같은 해 발표되어 기존의 Visual SLAM의 연구 흐름에 영향을 끼친 기술이 PTAM (Parallel Tracking and Mapping)이다(Klein and Murray, 2007). 실시간 처리성능을 확보하기 위해 위치계산 및 경로추적의 최적화시 KF(Kalman Filter)를 사용하지 않고 Graph 기반의 번들조정(Bundle Adjustment)를 사용 하였다(Strasdat et al., 2012). 또한 구조적으로 카메라의 위치를 추적하는 트랙킹 부분과 특징맵을 생성하는 맵핑 부분을 분리하여 병렬구조로 구성하였다. PTAM은 초기맵 생성시 초기화 과정에서 사용자가 직접 개입하여 이동거리를 계산하고 공간의 스케일을 결정하는 방법을 사용하였다. 이는 자동화가 어렵다는 단점으로 작용하였다. 2015년 Mur-Artal et al. (2015)은 PTAM을 포함한 기존 Visual SLAM을 개선한 ORB-SLAM을 발표하였다. SFM(Structure From Motion)에서 특징점 추출에 사용하는 SIFT(Scale-Invariant Feature Transform) 알고리즘보다 빠르고 유사한 성능을 제공하는 ORB(Oriented FAST and Rotated BRIEF) (Rublee et al., 2011) 알고리즘을 사용하여, 트래킹(Tracking)의 강건성과 정확성을 확보하였다. 그리고 루프 결합(Loop Closure) 기능을 추가하여 정확도를 개선하였다(Ho and Newman, 2007). 초기화시 이미지 사이의 이동거리를 시계열상 이미지에서 추정하는 방법으로 공간의 스케일을 계산하여 사용자의 개입을 배제하였으나 부정확한 스케일로 인하여 SLAM의 결과를 실세계(WGS84-UTM52N)에 적용할 수 없는 문제가 생겼다. 루프결합은 동일 지점을 재방문했을 때 이전 방문 정보를 이용하여 SLAM의 결과를 향상 하는 방법인데 자율주행의 특성상 효용성이 낮았다. 2017년 개선된 ORB-SLAM2를 발표하였으나 단안카메라를 입력센서로 사용했을 때의 문제점은 여전히 개선되지 않았다(Mur-Artal and Tardós, 2017). 단안카메라를 사용하는 Monocular Visual SLAM을 자율주행에 적용 시 다음과 같은 문제점을 해결해야 한다.

① 스케일 모호성(Scale Ambiguity)

SLAM에서 이미지를 통해 3차원공간을 구성하는 기본적인 원리는 에피폴라 기하학(Zhang, 1995)에 기반 한다. 2차원 이미지에서 3차원 공간을 복원하기 위해 카메라와 특징점 사이의 깊이 정보가 필요한데, 다른 시점의 두 대의 카메라에서 얻은 이미지에 삼각측량 기법을 적용하여 구할 수 있다. 직접 두 카메라 사이의 거리를잴수 있는 스테레오 카메라와는 달리 단안카메라를 사용하는 Monocular Visual SLAM(Mur-Artal et al., 2015) 에서는 전후 이미지에서 이동거리를 추정하게 되는데, 스케일이 정확하지 않은 문제가 있다. 그 결과 SLAM에 서 계산된 맵포인트와 카메라 자세 값을 자율주행에 사용할 수 없게 된다.

② 스케일 표류(Scale Drift)에 따른 오차 누적

시계열상의 순차적인 이미지 프레임을 통해 이동거리를 추정하여 계산한 스케일이 표류(drift)하는 문제를 일으킨다(Strasdat et al., 2010). 부정확한 스케일로 인해 SLAM을 통해 경로를 생성할수록 오차가 누적되어 최종 결과가 원래 경로와 큰 차이를 보이게 된다.

③ 순수 회전 처리 실패 (Pure Rotation Fail)로 인한 트랙킹 실패

코너나 교차로와 같이 이동거리 없이 오직 회전만 있는 경우, 에피폴라 기하학 기반의 공간계산이 불가능하여 3D 공간을 복원할 수 없어 트랙킹을 실패하게 된다 (Pirchheim et al., 2013).

본 논문에서는 기존 Monocular Visual SLAM에서 해결하지 못한 스케일 모호성, 스케일 표류에 의한 오차 누적, 순수 회전 처리 실패에 따른 트랙킹 실패 문제를 RTK를 지원하는 GPS 데이터를 센서 융합하여 해결하 였다. 또한 평균 정확도 20 cm의 GPS 위치정보를 이용하여 차량의 이동거리를 알 수 있어 SLAM 정확도를 향상할 수 있었으며 생성된 맵포인트와 경로(Trajectory)를 실세계 좌표로 변환할 수 있었다. 연구를 위하여 Monocular Visual SLAM의 기반으로 ORB-SLAM을 채택하였으며 개선된 알고리즘을 적용하였다

2. 센서정보와 개선된 SLAM 구조

1) 단안 카메라와 GPS 센서 정보

본 연구에 사용한 카메라 센서 정보는 Table1과 같다.

카메라는 글로벌 셔터(Global Shutter)를 지원하는 비전용 카메라를 사용하였다. 글로벌 셔터는 이미지 전체를 동 시간대에 CMOS 센서를 통해 저장을 하므로 이미지 밀림 현상이 없다.이에 반해 롤링 셔터(Rolling Shutter) 는 이미지 상단에서 하단까지 시간 편차를 이용하여 한 줄씩 캡쳐하는 방식으로, 빠르게 이동하는 상태일 경우 이미지 밀림 현상이 발생한다. Visual SLAM에서는 반드시 글로벌 셔터를 지원하는 카메라를 사용하여야 한다.

Table 1. Camera Sensor Specification

OGCSBN_2021_v37n5_1_1095_t0001.png 이미지

RTK를 지원하는 GPS 모듈 정보는 Table 2와 같다.

Table 2. GPS Sensor Specification

OGCSBN_2021_v37n5_1_1095_t0002.png 이미지

GPS는 RTK를 지원하는 ublox사의 zed-f9 모델을 사용하였다. 정지상태일 때 최대 1 cm의 오차를 보일 정도로 매우 정밀한 위치정보를 제공하지만, 이동 상태일 때 는 RTK Rock상태 기준으로 10~50 cm 정도의 정확도를 나타내었다. Fig. 1에서 GPS의 모드에 따른 정확도를 비교하였다. RTK Rock는 RTK 정보를 수신하여 보정을 수행하는 상태이고 No RTK는 RTK정보 미수신으로 보정을 하지 않은 상태, RTK Flow는 RTK Rock과 No RTK 중간상태이다. 본 연구에서 테스트 구간으로 사용한 동탄 테스트 구간을 세 구간으로 나누었을 때 3구간은 도로 좌우측에 고층아파트가 많아 GPS 음영 구역 이다. 본 연구에서는 RTK의 최대 오차를 20 cm로 확인하였다.

OGCSBN_2021_v37n5_1_1095_f0001.png 이미지

Fig. 1. Comparison of RTK Rock, RTK Flow, No RTK Mode.

2) 개선된 SLAM 구조 설명

Fig. 2는 개선된 SLAM의 구조를 나타낸다. 각 단계 별로 GPS 센서 정보를 융합하기 위해 구조를 개선하 였으며, 특히 ⑤ ‘편차 제거 모듈’은 다른 논문에서는 없는 본 논문만의 독특한 구조이다. 개선된 SLAM의 구조는 다음과 같다.

OGCSBN_2021_v37n5_1_1095_f0002.png 이미지

Fig. 2. Advanced SLAM Structure.

① ‘딥러닝 객체 검출(Deep Learning Object Detection) 모듈’은 학습을 위해 Mask R-CNN을 사용하였다(He et al., 2017). 도로 노면과 공중객체 등 도로객체를 대상으로 학습을 하였고 개선된 알고리즘을 테스트하기 위해 딥러닝 객체 검출 결과를 사용하였다.

② ‘초기화(Initialization) 모듈’에서는 카메라와 GPS 센서로부터 수신한 데이터를 이용하여 SLAM의 초기화를 진행하였다. 최초 프레임과 다음 프레임을 이용하여 에피폴라 기하학에 따라 삼각측량기법을 적용하여 카메라 자세와 특징점의 공간좌표인 맵포인트를 생성 하였다. 초기화 진행을 위한 두 프레임 사이의 매치되는 특징점의 최소 개수를 100개로 정의하였다. 초기화가 가능한 두 프레임이 선택되면 SLAM 내부에서 계산된 카메라 위치와 GPS 위치를 상호 변환할 회전행렬 (Rotation Matrix)를 계산하였다. 이 회전행렬을 사용하여 SLAM 최적화 이후 내부에서 계산된 카메라의 경로와 맵포인트를 실세계좌표계로 변환하였다.

③ ‘지역맵핑(Local Mapping) 모듈’에서는 기존 알고리즘을 계승하였다. 경로와 맵포인트가 SLAM 내부 좌표 기준으로 계산되므로 초기화 모듈에서 계산한 회전 행렬을 이용하여 Optimization 모듈에서 실세계좌표로 변환이 가능하기 때문이다.

④ ‘최적화(Optimization) 모듈’에서는 공가시성 (Covisibility)을 충족하는 일정 개수의 키프레임을 모아서 키프레임이 생성될 때마다 로컬번들조정(Local Bundle Adjustment)을 수행한다. (Triggs et al., 1999) 기존 로컬번들조정과 달리 GPS 위치 정보를 노드로 입력하여 속성을 고정으로 하였다. SLAM에서 번들조정은 카메라의 자세와 맵포인트를 동시에 조정하여 최적의 값을 찾아내는 최적화 방법인데 GPS 위치 정보를 고정으로 입력하면 번들조정 시 GPS값을 중심으로 카메라 자세와 맵포인트가 조정된다.

⑤‘편향오차 제거(Bias errorRemoval)모듈’은 HD Map 에 미리 저장된 도로 객체의 좌표를 이용하여 SLAM에 서 계산한 객체의 좌표와 비교하여 편향오차(Bias error) 를 계산하였다. 최적화 결과가 일정한 편차를 가지고 있는 것을 확인하였고 편향오차 정보를 이용하여 SLAM 수행 결과인 맵포인트의 오차를 추가적으로 줄일 수 있었다. 실험결과 5개의 신규객체의 좌표 평균 오류가 보정전 1.003 m에서 보정 후 0.140 m로 0.864 m 감소하였다.

⑥ ‘경로 및 맵 생성(Trajectory and Map Creation) 모듈’은 최종적으로 SLAM에서는 생성한 경로와 맵포인트를 활용하여 자율주행에 사용 가능하도록 하였다.

3. GPS 센서 정보 융합 방법

GPS 센서는 위도(Latitude), 경도(Longitude) 및 고도 (Altitude) 형식으로 위치 데이터를 극좌표계로 제공하는 반면 SLAM은 데카르트 좌표계 형식으로 카메라 위치 데이터를 결정한다. 따라서 먼저 GPS 극좌표계를 SLAM의 데카르트 좌표계로 변환해야 한다.

Fig. 3과 같이 Geographic Library의 LocalCartesian 클래스를 사용하여 위도, 경도 및 고도 형식의 극좌표계 데이터를 데카르트 좌표계 형식으로 변환하였다.

OGCSBN_2021_v37n5_1_1095_f0003.png 이미지

Fig. 3. GPS data transformation from Polar coordinate to Cartesian coordinate system.

극좌표는 기준타원체로 WGS84 (World Geodetic System 1984) 타원체를 사용한다. 원점은 2 cm의 분산 (Variance)으로 계산되는 지구의 질량 중심에 있다. 변환 후 데카르트 좌표의 원점도 지구의 질량 중심에 위치하며 식 (1)과 같이 3D 공간의 새로운 점으로 변환할 수 있다.

\(\left[\begin{array}{l} X \\ Y \\ Z \end{array}\right]=\left[\begin{array}{c} (R * C+h) * \cos (\text { lat }) * \cos (\text { lon }) \\ (R * C+h) * \cos (\text { lat }) * \sin (\text { lon }) \\ (R * S+h) * \sin (\text { lat }) \end{array}\right]\)       (1)

여기서 R은 식 (2)에서 표현된 바와 같이 지구의 적도 반경이고 lat, lon, h는 위도, 경도, 고도이다. 계수 C와 S 는 각각 식 (3)과 (4)에서 주어진다. f는 평탄화 매개변수 로써 지구 타원체의 각각의 반지름 사이의 비율의 차이이다.

R = 378137m       (2)

\(C=\frac{1}{\sqrt{\cos (\text { lat })^{2}+(1-f)^{2} * \sin (\text { lat })^{2}}}\)       (3)

S = (1-f)2*C       (4)

SLAM 수행 이후 SLAM 내부에서 계산된 카메라 자세 값과 맵포인트를 실세계에서 사용하기 위해서는 SLAM 좌표계를 실세계 좌표계인 GPS 데카르트 좌표계(WGS84 UTM52N)로 변환하여야 한다. GPS 극좌표 데이터를 데카르트 좌표계로 변환한 이후에 데카르트 좌표계는 오른손 법칙에 의해 표현된다. X는 전방, Y는 좌측, Z는 상향을 나타낸다. SLAM좌표는 이와 다르게 왼손 법칙에 의해 표현된다. Fig. 4는 SLAM좌표에 사용 되는 카메라 센서의 좌표축 표현과 GPS 센서의 데카르트 좌표축 표현을 나타낸다.

OGCSBN_2021_v37n5_1_1095_f0004.png 이미지

Fig. 4. Axis representation of Camera sensor and GPS sensor.

GPS 데카르트 좌표계와 SLAM 좌표계의 변환 벡터 의 경우 초기 프레임의 SLAM 좌표가 원점에 있으므로 SLAM의 초기 프레임의 GPS를 원점으로 재설정하였다. 따라서 변환벡터는 식 (5)와 같이 표현할 수 있다.

\(t_{\mathrm{GPS} 2 \mathrm{SLAM}}=\left[\begin{array}{l} 0 \\ 0 \\ 0 \end{array}\right]\)       (5)

회전행렬은 첫번째 프레임의 GPS위치 벡터와 SLAM 위치 벡터 사이의 회전을 나타내는 행렬로써 로드리게스 회전 공식(Rodriguesrotation formula)을 사용하여 계산하였다. 회전행렬은 벡터 v에 대해 GPS 위치 벡터(vGPS) 를 각도 θ만큼 시계 방향으로 회전한다. 여기에서 v는 GPS 위치 벡터(vGPS) 및 SLAM 위치 벡터(vSLAM)에 대한 수직 벡터이며 Fig. 5와 같이 교차점 (원점)을 통과한다.

OGCSBN_2021_v37n5_1_1095_f0005.png 이미지

Fig. 5. Axis angle representation for Rodrigues rotation matrix calculation.

\(v=\left(\frac{v_{G P S}}{\left|v_{G P S}\right|}\right) \times\left(\frac{v_{S L A M}}{\left|v_{S L A M}\right|}\right)\)       (6)

회전행렬은 식 (7)에 의해 계산할 수 있다.

R = I + (sinθ)V + (1-cosθ)V2       (7)

여기에서 I는 3×3 단위 행렬이고, sinθ, cosθ, V는 각각 식 (8), (9), (10)에 의해 계산된다.

sinθ=|v|       (8)

\(\cos \theta=\left(\frac{v_{G P S}}{\left|v_{G P S}\right|}\right) \cdot\left(\frac{v_{S L A M}}{\left|v_{S L A M}\right|}\right)\)       (9)

\(V=\left[\begin{array}{ccc} 0 & -v_{3} & v_{2} \\ v_{3} & 0 & -v_{1} \\ -v_{2} & v_{1} & 0 \end{array}\right]\)       (10)

여기서 vi는 벡터 v의 i번째 행의 값이다.

4. GPS 번들조정에 의한 최적화

번들 조정 절차는 g2o 라이브러리나 ceres solver를 사용하여 구현할 수 있다. g2o와 ceres solver는 모두 그래프 기반 비선형 최적화 알고리즘의 구현 라이브러리이다. 본 연구에서는 g2o를 사용하였다. SLAM에서의 번들 조정은 특정한 제약조건을 기반으로 최적의 카메라 자세 값과 맵포인트 위치를 찾아낸다. GPS 데이터를 이용한 제약조건은 Prior Egde로 정의되어 가장 높은 가중치가 부여된다. 번들 조정에 의해 최적화된 객체는 가능한 GPS의 위치에 가깝게 카메라 자세 값과 맵포인트를 동시에 조정한다. Fig. 6은 번들 조정에 대한 프로세스와 제약조건을 도식화한 것이다.

OGCSBN_2021_v37n5_1_1095_f0006.png 이미지

Fig. 6. Optimization using Bundle Adjustment and Constraints.

이렇게 조정된 카메라 포즈를 이용하여 맵포인트를 재투영하고 SLAM좌표계인 맵포인트 좌표를 GPS 좌표계로 변환한다. GPS 번들 조정의 에러함수는 다음 식 (11)과 같이 표현된다.

\(e_{i j}\left(\check{x}_{i}+\Delta x_{i}, \check{x}_{j}+\Delta x_{j}\right)=e_{i j}(\check{x}+\Delta x) \approx e_{i j}+J_{i j} \Delta x\)       (11)

여기에서 xi 는 SLAM의 i번째 프레임의 위치 벡터이다. Δx는 GPS 위치와 SLAM에서 관측된 위치 사이의 차이 값이다. 그리고 Jij 는 i번째 프레임에서 j번째 프레임의 관측치에 관한 자코비안(Jacobian) 행렬이다. 따라서 최적화 함수는 식 (12)와 같이 표현된다.

\(\begin{aligned} F(x)=& \sum_{\in C} e_{i j}\left(\breve{x}_{i}+\Delta x_{i}, \breve{x}_{j}+\Delta x_{j}\right) \\ & \Omega_{i j} e_{i j}\left(\breve{x}_{i}+\Delta x_{i}, \breve{x}_{j}+\Delta x_{j}\right) \end{aligned}\)       (12)

마지막으로 목적함수는 식 (13)과 같이 구할 수 있다.

x*=argminF(x)       (13)

자코비안(Jacobian) 행렬은 식 (14)에서 계산이 된다.

\(J_{i j}=\left|\frac{\partial e_{i j}(\breve{x} \boxplus \Delta x)}{\partial \Delta x}\right|_{\Delta x=0}\)       (14)

GPS 위치정보를 번들조정의 고정값으로 사용하여 카메라 자세값뿐만 아니라 맵포인트의 정확도도 함께 최적화되어 위치 오차를 보정하였다. 이것은 SFM (Structure From Motion) 기술에서 GCP(Ground Control Point)를 고정값으로 설정하여 점군(Point Cloud)를 최적화하는 원리와 같다.

5. 기존 측량점의 HD Map을 이용한 편향오차 제거

번들 조정 최적화 이후 맵포인트를 확인한 결과 Fig. 7과 같이 일정하게 편향된 오차가 존재하는 것을 확인하였다. 이것은 GPS에 높은 가중치를 주어 SLAM을 최적화하였지만 GPS의 값이 이동기준 20 cm 정도의 오차를 가지는 것과 연관이 있다. 편향된 오차가 일정한 패턴이 있으므로 패턴을 구하여 제거하기 위해 기존객체 정보를 이용하였다. HD Map에 정확한 기존 객체의 공간좌표를 알고 있으므로 최적화 후 SLAM에서 계산된 좌표와 HD Map에 미리 측량하여 저장된 정확한 공간 좌표를 비교하여 ΔX, ΔY, ΔZ를 구하였다. 이 값들을 이용하여 번들 조정 최적화 이후 발생하는 일정하게 편향 된 오차를 제거하였다.

OGCSBN_2021_v37n5_1_1095_f0007.png 이미지

Fig. 7. Distribution of coordinate values and survey values of objects calculated as a result of SLAM (a) XYZ 3D Space, (b) ZY Plane, (c) XY Plane, (d) XZ Plane (traffic light coordinates are calculated using a dataset that has driven a total of 21 roads in 3 lanes, 7 times in 1 lane, 8 times in 2 lane, 6 times in 3 lane).

● Ground Truth

● Calculated traffic light coordinates

● Average

편향된 오차(Bias Error)를 제거하는 계산식은 다음과 같다.

Bias Error = {ΔX, ΔY, ΔZ}       (15)

ΔX = SLAM computed X coordinate of an existing object – Existing object HD Map X coordinates        (16)

ΔY = SLAM computed Y coordinate of an existing object – Existing object HD Map Y coordinates       (17)

ΔZ = SLAM computed Z coordinate of an existing object – Existing object HD Map Z coordinates       (18)

Improved new object coordinates = New computed object coordinates in SLAM – Bias Error       (19)

편향오차를 제거하여 향상된 정확도를 Table 3에 비교하였다. 5개 신규객체의 좌표 계산 시 오차 제거 전 1.003 m 의 오차가 제거 후 0.140 m 로 0.864 m 가 감소하였다. 여기서 정밀 측량한 공간좌표(참값)와 SLAM을 통해 최종 계산한 공간좌표 사이의 차이를 유클리디언 거리 (Euclidean Distance)로 표현하고 오차(Error)라 정의하였다. 오차는 또한 개선된 알고리즘을 적용한 SLAM의 정확도를 나타낸다.

Table 3. New object coordinate error before (left) and after (right) removal of bias error

OGCSBN_2021_v37n5_1_1095_t0003.png 이미지

6. 실험환경

본 연구의 성과로 개발된 개선된 알고리즘의 성능을 검증하기 위해 총 거리 2.3 km인 동탄 치동천로와 동탄역 인근을 테스트 구간으로 선정하였다. SLAM의 특성상 최적화 이후의 카메라 자세 값과 맵포인트의 정확도는 함께 상승하게 된다. 카메라 자세 값은 RTK의 위치 값을 참값으로 입력하였으므로 RTK의 정확도에 종속적이다. 맵포인트는 카메라 자세 값을 기준으로 생성된 포인트의 정확도를 나타낸다. 알고리즘의 향상된 성능을 확인하기 위해 맵포인트의 좌표를 계산하여 토털스테이션과 같은 측량기구로 정밀 측량한 참값(Ground Truth)과 비교를 하였다. Fig. 8은 동탄 치동천로의 전체 구간과 정확도 비교를 위해 사용한 신규객체를 표시하였다.

OGCSBN_2021_v37n5_1_1095_f0008.png 이미지

Fig. 8. Test section and new objects near Dongtan Station and Dongtan Chidongcheon-ro.

기존객체 정보를 활용하기 위해 Fig. 9와 같이 교차로 신호등과 유턴, 속도제한 표지판을 테스트 객체로 선정 하였다. ①번 교차로에서는 좌측신호등을 신규객체로 정하고 유턴표지판을 기존객체로 정하였다. ②번 교차로에서는 좌측신호등을 신규객체로, 우측신호등을 기 존객체로 정하였다. ③번 교차로에서는 유턴표지판을 신규객체로, 속도제한표지판을 기존객체로 정하였다. ④번 교차로에서는 좌측신호등을 신규객체로, 유턴표 지판을 기존객체로 정하였다. 마지막으로 ⑤번 교차로 에서는 유턴표지판을 신규객체로 좌측신호등을 기존 객체로 정하였다.

OGCSBN_2021_v37n5_1_1095_f0009.png 이미지

Fig. 9. (a) New-left traffic light, old-U turn ①, (b) New-left traffic light, old-right traffic light ②, (c) New-U turn, old-speed limit sign ③, (d) New-left traffic light, old- U-turn ④, (e) New-U turn, Old-left traffic light ⑤.

편향오차(Bias error)를 계산하기 위해 기존 객체 정보를 신규객체와 함께 선택하였다. 신규객체 주변에 여러 개의 기존객체가 존재하면 신규객체와 가장 거리가 가까운 객체를 기존객체로 선정하였다. 알고리즘 검증의 신뢰성을 높이기 위해 테스트 구간을 총 8회 주행하였다. 주행한 이미지와 GPS, 딥러닝 객체 검출 데이터 셋을 사용하여 1회 주행 시 새로운 객체를 인식한 시점부터 200장의 이전 프레임부터 SLAM을 수행하고 최적화를 진행하였다.

7. 실험결과

테스트 구간에 5개의 검증용 신규객체가 존재하므로 총 8회 주행데이터에서 SLAM 결과를 산출하기 위해 총 40회 SLAM을 실행하였다. Fig. 10은 5개의 신규객체 중 ④번 교차로에 있는 좌측신호등의 좌표를 계산하기 위해 SLAM을 실행한 모습이다. (a), (b), (c)는 전체 테스트 구간에서 SLAM으로 맵핑과 트랙킹을 한 결과이다. 검은 점과 파란 점들은 맵포인트를 나타내고 빨간 선은 GPS와 카메라의 경로를 나타낸다. (d)의 뷰는 전방뷰 (Front View)이며 좌상단에 고층 아파트가 선명하게 표 현된 것을 확인할 수 있다. (e)는 탑뷰(Top View)이며 카메라의 경로(파란 삼각뿔)가 GPS 위치(빨간 사각형)와 일치하여 최적화되어 있는 것을 확인할 수 있다.

OGCSBN_2021_v37n5_1_1095_f0010.png 이미지

Fig. 10. (a)(b)(c)(d)(e) SLAM Results (Map Points, Trajectory), (f)(g)(h) Camera images used in slam.

Table 3의 ΔX, ΔY, ΔZ는 SLAM에서 계산한 기존 유턴 객체의 좌표와 유턴 객체의 참값 좌표와의 차이 값인 편 향오차(Bias error)이다. 이 편향오차를 Table 4의 신규객 체 좌측신호등의 SLAM 좌표에서 빼면 최종적으로 참 값 좌표와의 오차가 산출된다. ①번 신규 좌측신호등의 SLAM 계산 좌표와 참값 측량점과의 오차(Error)가 0.966 m 였지만 기존 유턴객체를 통해 편향오차(Bias error)를 제거한 후 이 오차가 0.327 m 로 줄었다. Table의 모든 값의 단위는 m 이다.

Table 4. Finding the bias of an existing U-turn object

OGCSBN_2021_v37n5_1_1095_t0004.png 이미지

Table 5와 같은 방식으로 ①, ②, ③, ④, ⑤번 신규객체 에 대해 총 8회 주행데이터를 이용하여 SLAM을 수행한 최종 결과가 Table 6부터 Table 10까지이다. ①번 신호등 평균오차는 0.191 m, ②번 신호등 평균오차는 0.177 m, ③번 유턴 평균오차는 0.146 m, ④번 신호등 평균오차는 0.109 m, ⑤번 유턴 평균오차는 0.074 m 이다. Table의 모든 값의 단위는 m이다.

Table 5. ①번 Left traffic light final coordinates and Error after removing the bias of the existing objectOGCSBN_2021_v37n5_1_1095_t0005.png 이미지

Table 6. ① Left traffic light 8 times driving data SLAM result 0.191 m error

OGCSBN_2021_v37n5_1_1095_t0006.png 이미지

Table 7. ② Left traffic light 8 times driving data SLAM result 0.177 m error

OGCSBN_2021_v37n5_1_1095_t0007.png 이미지

Table 8. ③ U-turn 8 times driving data SLAM result 0.146 m error

OGCSBN_2021_v37n5_1_1095_t0008.png 이미지

Table 9. ④ Left traffic light 8 times driving data SLAM result 0.109 m error

OGCSBN_2021_v37n5_1_1095_t0009.png 이미지

Table 10. ⑤ U-turn 8 times driving data SLAM result 0.074 m error

OGCSBN_2021_v37n5_1_1095_t0010.png 이미지

최종 결과를 그래프로 나타내면 Fig. 11과 같다. 신규 객체의 전체 평균오차는 0.139 m이다.

OGCSBN_2021_v37n5_1_1095_f0011.png 이미지

Fig. 11. (a) ①Traffic light SLAM final result, (b) ②Traffic light SLAM final result, (c) ③U-turn SLAM final result, (d) ④Traffic light SLAM final result, (e) ⑤Traffic light SLAM final result, (f) New object 8 times driving data SLAM average final result.

국토지리정보원 고시 제2020-4557호 정밀도로지도 제작 작업규정의 점군 데이터의 위치 정확도 기준에 따라 95% 신뢰구간 평면위치 절대 정확도와 수직위치 절대 정확도를 나타내면 Table 11과 같다. RMSE 평균은 33.7 cm이다.

Table 11. 95% confidence interval absolute accuracy based on location accuracy of point cloud data

OGCSBN_2021_v37n5_1_1095_t0011.png 이미지

8. 결론

본 논문에서는 단안카메라, GPS 센서와 HD Map을 이용하여 SLAM의 성능을 개선하는 방법론에 대해 알아보았다. 단안카메라는 단순한 구조와 저렴한 가격으로 그 동안 자율주행 뿐만 아니라 로봇 연구에서 입력센서로써 많이 활용이 되어 왔다. 하지만 스케일 모호성, 스케일 표류, 순수 회전처리 실패와 같은 단점과 역광, 그림자, 야간 같은 빛의 변화에 민감하다는 특성 때문에 안정적이고 정밀한 SLAM의 수행에 어려움이 있었다. 이러한 문제점을 RTK가 적용된 GPS정보 를Visual SLAM 에 융합하여 극복하였다. 그리고 SLAM 번들 조정 최적화 결과 맵포인트의 좌표가 특정한 편향오차(Bias error) 를 가진다는 것을 확인하였다. 이를 제거하기 위하여 신규 객체의 주변 기존 객체의 HD Map 좌표 정보를 이용하여 편향오차를 구한 후 맵포인트에서 제거하여 정확도를 높였다. 그 결과 평균오차 0.139 m 를 확인하였고 95% 신뢰구간 절대 정확도에서 RMSE 33.7 cm 의 높은 정확도를 가진 개선된 SLAM 알고리즘을 구현하였다. 본 연구결과는 자율주행 뿐만 아니라 HD Map 생성, 갱신에도 활용될 수 있다. 또 하나의 센서로 주목받는 HD Map은 기존 센서의 한계를 극복하고 안전한 자율주행을 가능하도록 하는 지능형 교통체계의 핵심 인프라 기술이다. GPS 센서 융합으로 Monocular Visual SLAM의 문제점을 해결하였지만 GPS의 특성상 지하, 터널, 고층 건물이 많은 도심과 같은 음영구역에서는 높은 정확도를 유지하기 어렵다는 것은 본 연구의 한계점이다. 그리고 편향오차가 0.864 m로 큰 값을 보였다는 점도 한계점으로 지적할 수 있다. 이러한 한계점을 극복하기 위해 향후 IMU 센서와 Stereo Camera를 추가로 적용하여 GPS 센서 데이터 수신이 어려운 터널, 지하도로, 고층 건물이 많은 도심 공간에서도 안정적으로 위치측정과 맵핑을 수행할 수 있는 SLAM에 대한 연구를 진행할 것 이다.

사사

본 연구는 국토교통과학기술진흥원의 “자율주행 지원을 위한 도로변화 신속탐지, 갱신 기술 개발 및 실증 (B145070)”사업의 지원으로 수행되었음.

참고문헌

  1. Davison, A.J., I.D. Reid, N.D. Molton, and O. Stasse, 2007. MonoSLAM: Real-time single camera SLAM, IEEE Transactions on Pattern Analysis and Machine Intelligence, 29(6): 1052-1067. https://doi.org/10.1109/TPAMI.2007.1049
  2. Eade, E. and T. Drummond, 2006. Scalable monocular SLAM, Proc. of 2006 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR '06), New York, NY, USA, Jun. 17-22, vol. 1, pp. 469-476. https://doi.org/10.1109/CVPR.2006.263
  3. Filipenko, M. and I. Afanasyev, 2018. Comparison of various slam systems for mobile robot in an indoor environment, Proc. of 2018 International Conference on Intelligent Systems (IS), Funchal, PT, Sep. 25-27, pp. 400-407. https://doi.org/10.1109/IS.2018.8710464
  4. He, K., G. Gkioxari, P. Dollar, and R. Girshick, 2017. Mask r-cnn. Proc. of the IEEE international conference on computer vision Venice, IT, Oct. 22-29, pp. 2961-2969.
  5. Ho, K.L. and P. Newman, 2007. Detecting loop closure with scene sequences, International Journal of Computer Vision, 74(3): 261-286. https://doi.org/10.1007/s11263-006-0020-1
  6. Klein, G. and D. Murray, 2009. Parallel tracking and mapping on a camera phone, Proc. of 2009 8th IEEE International Symposium on Mixed and Augmented Reality, Orlando, FL, Oct. 19-22, pp. 83-86.
  7. Mur-Artal, R. and J.D. Tardos, 2017. Orb-slam2: An opensource slam system for monocular, stereo, and rgb-d cameras, IEEE Transactions on Robotics, 33(5): 1255-1262. https://doi.org/10.1109/TRO.2017.2705103
  8. Pirchheim, C., D. Schmalstieg, and G. Reitmayr, 2013. Handling pure camera rotation in keyframe-based SLAM, Proc. of IEEE international symposium on mixed and augmented reality (ISMAR), Adelaide, SA, AU, Oct. 1-4, pp. 229-238.
  9. Qin, T., P. Li, and S. Shen, 2018. Vins-mono: A robust and versatile monocular visual-inertial state estimator, IEEE Transactions on Robotics, 34(4): 1004-1020. https://doi.org/10.1109/tro.2018.2853729
  10. Qi, Y., Y. Zhou, Z. Pan, L. Liu, and J. Shi, 2021. Crowd-Sensing Assisted Vehicular Distributed Computing for HD Map Update, Proc. of 2021- IEEE International Conference on Communications, Virtual, Montreal, CA, Jun. 14-23, pp. 1-6.
  11. Rublee, E., V. Rabaud, K. Konolige, and G. Bradski, 2011. ORB: An efficient alternative to SIFT or SURF, Proc. of International conference on computer vision, Barcelona, ES, Nov. 6-13, pp. 2564-2571. https://doi.org/10.1109/ICCV.2011.6126544
  12. Strasdat, H., J. Montiel, and A.J. Davison, 2010. Scale drift-aware large scale monocular SLAM, Robotics: Science and Systems VI, 2(3): 7.
  13. Strasdat, H., J.M. Montiel, and A.J. Davison, 2012. Visual SLAM: why filter?, Image and Vision Computing, 30(2): 65-77. https://doi.org/10.1016/j.imavis.2012.02.009
  14. Triggs, B., P.F. McLauchlan, R.I. Hartley, and A.W. Fitzgibbon, 1999. Bundle adjustment-a modern synthesis, Proc. of 1999 International Workshop on Vision Algorithms, Corfu, GR, Sep. 21-22, pp. 298-372.
  15. Younes, G., D. Asmar, E. Shammas, and J. Zelek, 2017. Keyframe-based monocular SLAM: design, survey, and future directions, Robotics and Autonomous Systems, 98: 67-88. https://doi.org/10.1016/j.robot.2017.09.010
  16. Ziebinski, A., R. Cupek, D. Grzechca, and L. Chruszczyk, 2017. Review of advanced driver assistance systems (ADAS), In American Institute of Physics Conference Series, Thessaloniki, GR, Apr. 21-25, Vol. 1906, No. 1, p. 120002.
  17. Zhang, Z., 1998. Determining the epipolar geometry and its uncertainty: A review, International Journal of Computer Vision, 27(2): 161-195. https://doi.org/10.1023/A:1007941100561
  18. Zhang, Z., R. Deriche, O. Faugeras, and Q.T. Luong, 1995. A robust technique for matching two uncalibrated images through the recovery of the unknown epipolar geometry, Artificial Intelligence, 78(1-2): 87-119. https://doi.org/10.1016/0004-3702(95)00022-4