HD Map 제작을 위한 항공 사진 기반 3D 모델링

미래의 도로가 뻗어있는 지점은 자율주행이라 말하여도 어색하지 않게 되었다. 이 지점에 도달하기 위해서는 여러 관문을 통과해야 하는데, 이 중 하나가 바로 HD Map이다.

보통의 지도는 사람이 보고 이해하기 위한 것이기 때문에 사람에게 전달할 특징들을 갖추고 있어야 한다면, HD Map은 기계를 위한 것이기 때문에 더 정확하고 구체적이며, 분명해야 한다. 여기에는 도로의 연결 정보는 물론 차선의 개수와 종류, 차선 간의 연결 정보와 주행 중에 위치를 특정할 수 있는 노면의 특징과 기호, 신호등이나 표지판과 같은 도로 시설물 정보를 포함한다.

그런데 이들 정보의 양은 기존 내비게이션에서 흔히 사용하던 지도에 비해 훨씬 많고, 종류도 다양하여 이전과 같은 방식으로는 HD Map을 구축할 수 없다는 것을 깨닫게 되었다. 네이버랩스는 AI 역량과 항공 사진 처리 역량을 결합하여, 도시 단위 대규모 지역의 항공 사진과 모바일 매핑 시스템(MMS)이 수집한 데이터를 유기적으로 통합하는 하이브리드 HD매핑 기술을 공개한 바 있다.

모바일 매핑 시스템(MMS)이 도로의 구체적인 정보를 취득하여 HD Map을 완성한다면, 항공 사진으로 구성한 3차원 모델은 MMS가 바라보지 못하는 전체적인 균형을 갖춘 지도의 바탕을 마련해 준다. 이 글에서는 항공 사진에 기반한 도시 규모의 3차원 모델을 구축하는 주요 과정을 소개하고자 한다.

사진 측량

항공 사진에 기반한 3차원 모델의 구축은 사진 측량(Photogrammetry) 기술이 필요하다. 사진 측량을 간단히 설명하면, 사진을 이용해 현실 세계(3D)를 측량하는 것이다. 다시 말해 촬영한 항공 사진 영상(2D)을 다시 3D의 현실 세계로 복원하는 작업이라고 할 수 있다. 그럼 어떻게 2D 사진에서 3D로 복원할 수 있는가? 바로 시차(Disparity)를 이용하는 것이다. 아래 <그림 1>에는 동일한 대상을 왼쪽에서 촬영한 사진과 오른쪽에서 촬영한 사진이 있다. 두 사진을 겹쳐 보면 카메라와 가까울수록 변화량(시차)이 크고, 카메라와 멀수록 변화량이 작다.

이 변화량의 크기를 이용해 2장 이상의 2D 사진으로 3D를 복원할 수 있으며, <그림 1>의 우측 하단과 같이 3차원으로 표현할 수 있다. 즉, 항공 사진에서 카메라와 가까우면 건물의 옥상이 대상이 될 수 있고, 카메라와 멀면 지면이 될 수 있다.

<그림 1>

이렇게 2D 사진에서 3D로 복원하는 원리를 이해한다면, 사진의 자세가 매우 중요한 요소임을 알 수 있다. <그림 2>에서 보는 것처럼 사진의 자세가 잘못되었을 때 다른 3D 위치로 복원될 수 있기 때문이다. 그래서 사진의 자세를 정확하게 보정하는 작업이 필수적이다.

<그림 2>

네이버랩스는 수천 장의 항공 사진을 <그림 3>의 절차로 3D 실세계로 복원하였다.

<그림 3>

먼저 <그림 4>와 같이 수천 장의 사진들에서 동일한 지점을 연결한다. 이를 사진 정합(Image Matching)이라 하고, 이렇게 사진들의 연결성이 있어야 사진들의 자세를 정확하게 추정(Estimation) 할 수 있다.

<그림 4>

사진들을 연결한 다음 단계로 사진들의 정확한 자세를 추정한다. 이를 광속 조정법(BA: Bundle Adjustment)이라 하며, 이 기술은 사진 측량에서 대단히 중요한 부분을 차지한다. 네이버랩스는 사진 수천 장의 자세를 정확히 추정하는 대용량 BA을 수행하여 정확한 자세를 추정할 수 있었다. BA를 시각적으로 나타낸 것이 <그림 5>이다. 각각의 사진들은 다른 자세를 취하고 있지만 BA를 통해 사진이 정확한 자세로 정렬되는 것을 알 수 있다. 이를 최적화(Optimization) 단계라고도 할 수 있다.

<그림 5>

BA 수행 시 네이버랩스는 다음 조건을 추가한다. 바로 지상기준점(GCP: Ground Control Point)이다. 지상기준점이란 촬영 대상 지역의 일부 지점을 3D로 측량한 위치이다. 왜 GCP가 필요한가? 현실 세계(3D)는 사전에 정의되어 있는 좌표계가 있다. 네이버랩스는 실제 지구 위치(지구 곡률)에 따라 3D로 복원하기 위해 GCP에 제한 조건을 두어 BA를 수행하였다. <그림 6>에서는 GCP에 따라서 어떻게 BA가 수행되는지 간략하게 나타내었다.

<그림 6>

이렇게 항공 사진의 자세를 정렬하면, 지면의 입체적 구조를 계산할 수 있다.

DSM 처리

앞서 설명한 것처럼 시차(Disparity)를 이용해 영상에 투영된 물체와의 거리를 계산할 수 있다. 자세를 추정한 사진으로부터 일반적으로 많이 사용하는 SIFT, SURF 매칭점을 이용하면 점 단위의 공간 좌표를 계산할 수 있지만, 특징점(Feature)이 없거나 부족한 지점, 그리고 반복 패턴으로 오매칭이 잦은 지점까지도 3D 모델을 만들기 위해서는 'Dense Matching' 알고리즘이 필요하다.

먼저, <그림 7>에서 보는 것처럼 한 사진(Master)의 각 픽셀(x, y)에 대해 거리(Depth = Disparity)를 바꿔가며 각 Depth마다 인접 사진들(Slave)과 얼마나 유사한지를 수치화해서 비용 볼륨(Cost Volume)을 구성한다.

<그림 7>

매칭 비용(Matching Cost)을 수치화하는 방법으로는 AD(Absolute Difference), SAD(Sum of Absolute Difference), NCC(Normalized Cross-Correlation), Census(from SGM), DAISY 등의 방법이 있다. 이렇게 채워진 3D 비용 볼륨은 다양한 노이즈를 포함하여, 각 픽셀들이 인접 4 혹은 8 방향으로 영향을 주고받으면서 가장 안정적인 거리 값을 찾기 위해 전역 최적화 기법(Global optimization)을 적용한다. 많이 사용되는 전역 최적화 기법에는 신뢰 전파(Belief Propagation), SGM(Semi Global Matching), Graph Cut 등이 있다. 그런데, 디지털로 촬영된 영상 한 장으로는 이산적인(Discrete) 형태의 Depth밖에 구할 수 없기 때문에, 다른 위치에서 동일 지역을 촬영한 다수의 영상으로부터 추정된 Dense Matching 결과를 취합해 연속적인 3차원 디지털 표면(DSM = Digital Surface Model)을 생성한다.

서울시 3D 모델 구축

이상의 과정을 통해 2019년 서울시 전역의 DSM을 완성했다. <그림 8>은 DSM의 높이에 따라 다른 색상(Pseudo-Color)를 입혀 표현한 것이며, <그림 9>는 DSM을 3D 모델로 완성하여 항공사진으로 텍스처까지 처리한 것이다.

네이버랩스는 2020년에도 새로 촬영한 사진을 토대로 서울시 3D 모델과 HD Map을 갱신할 계획이며, HD Map의 수명 주기를 효과적으로 관리하는 방법도 함께 마련해 나갈 예정이다.

<그림8>

<그림 9>

Related Articles

VIDEOS