대용량 데이터의 시각화 지원
공학부 시각화 팀
지난 몇 년간, 당사의 시각화 엔지니어링 팀은 Hovermap 에서 수집한 데이터로부터 통찰력을 제공하기 위한 소프트웨어를 개발해 왔습니다. 수집된 방대한 데이터와 그 다양한 활용 분야로 인해, Hovermap 고객들의 사용자 경험을 극대화하기 위해 수많은 기술적 요구 사항을 충족해야 하는 포인트 클라우드 시각화 도구가 필요하게 되었습니다. 이 연재 기사에서는 Emesent의 시각화 소프트웨어를 제공하기 위해 팀이 고려한 사항과 개발한 혁신적인 솔루션에 대해 자세히 다룹니다.
시각화 엔지니어링 팀은 3D 게임, 건축 및 엔지니어링 소프트웨어에 사용되는 언리얼 테크놀로지스( 3D )의 개발자 도구인 언리얼 엔진(Unreal Engine)을 활용해 시각화 애플리케이션 개발을 시작했습니다. 여기에는 포인트 클라우드 데이터를 표시하는 데 사용할 수 있는 LiDAR 포인트 클라우드 플러그인이 포함됩니다. 이 플러그인은 옥트리(Octree) 공간 분할 기법과 포인트 예산(point budget)을 결합하여 포인트 클라우드 내의 모든 포인트 중에서 표시할 최적의 포인트를 선택합니다. 포인트 예산은 렌더러나 그래픽 처리 장치(GPU)가 감당할 수 있는 범위 내에서 표시되는 포인트 수를 제한합니다.
이 방식을 채택할 때의 장점 중 하나는, 수십억 개의 점을 탐색할 때조차 현재 뷰포트에 표시된 소수의 점들만 렌더링하며, 그중에서도 시각적으로 가장 중요한 점들만 선별하여 렌더링한다는 점입니다. 따라서 이 데이터를 탐색하는 동안에도 매우 높은 상호작용성을 갖춘 프레임 속도를 유지할 수 있습니다.
이 기법의 단점은 알고리즘이 관련성이 있거나 중요하다고 판단한 데이터만을 분석한다는 점입니다. 포인트 예산이 낮을수록 이러한 알고리즘의 판단이 최종 결과에 미치는 영향이 커집니다. 이를 해결할 수 있는 방법도 있는데, 예를 들어 더 큰 포인트 크기를 사용하여 포인트를 표면으로 블렌딩하는 방식이 있습니다. 하지만 이는 본질적으로 합성된 데이터일 뿐, “실제” 데이터는 아닙니다.
Hovermap 데이터의 경우, 매우 고밀도인 포인트 클라우드를 생성하기 때문에 별도의 합성 과정 없이도 세부 정보가 충분히 확보되므로 이 작업은 필요하지 않습니다. 따라서 프로젝트를 시작한 이래로, 저희는 고밀도 데이터를 처리할 수 있도록 플러그인을 지속적으로 확장해 왔습니다.
초기 확장 기능 중 하나는 당사의 ‘ SLAM ’ 처리 소프트웨어에서 생성되는 포인트 속성에 대한 지원을 추가한 것이었습니다. 강도, 시간, 링 번호, 범위 및 트루 컬러 속성을 표시할 수 있도록 지원 기능을 포함시켰습니다.
또 다른 목표는 단일 프레임 렌더링 할당량을 1억 포인트로 극대화하는 것이었는데, 이는 언리얼의 기본 제공 성능을 훨씬 뛰어넘는 수준이었다.
Hovermap Emesent의 멀티 프레임 렌더링을 실행하기 전에 스캔하세요.
Emesent의 시각화 애플리케이션에 포함된 멀티프레임 렌더링 기능을 통해 사용자는 수십억 개의 데이터 포인트로 구성된 Hovermap 데이터셋을 신속하게 탐색할 수 있습니다.
하지만 이는 요구 사항을 충족하지 못했습니다. ‘ Hovermap ’는 수십억 개에 달하는 데이터 포인트를 포함하고 있으므로, 최종 출력물을 처리하기 위해서는 다른 접근 방식이 필요했습니다.
모든 점을 전체 프레임으로 렌더링할 수 있도록, 우리는 ‘멀티 프레임 렌더링(Multi-Frame Rendering)’이라 부르는 시스템을 개발했습니다. 이 개념을 바탕으로, 여러 GPU 프레임에 걸쳐 이미지를 구성하도록 렌더러를 수정했습니다. 이를 적용하기 위해 알고리즘은 먼저 옥트리를 탐색하여 시각적으로 가장 관련성이 높은 노드(점의 집합)를 찾은 다음, 해당 노드에 태그를 지정하고 렌더링합니다. 그런 다음 알고리즘은 옥트리를 다시 탐색하여, 아직 렌더링되지 않은 시각적으로 두 번째로 중요한 노드들을 찾습니다. 이 과정은 더 이상 남은 점이 없을 때까지 반복됩니다.
각 프레임은 깊이 정보를 활용해 합성되며, 이를 통해 10억 개든 100억 개든 모든 점을 포함한 최종 프레임이 생성됩니다. 이 이미지들을 통해 볼 수 있듯이, Hovermap 데이터의 밀도는 정말 놀라울 정도이며, 이제 저희 뷰어 내에서 이를 표시할 수 있습니다. 렌더링 시간은 점 수와 렌더링 하드웨어에 따라 달라지지만, 전반적으로 매우 빠르며, 멀티 프레임 렌더링을 사용하면 10억 개의 점을 단 몇 초 만에 렌더링할 수 있습니다.
이러한 접근 방식을 통해 사용자들은 수십억 개의 데이터 포인트를 포함하는 Hovermap 데이터셋을 신속하게 탐색하고, 수집된 실제 데이터를 그대로 반영하는 고품질 이미지를 손실 없이 빠르게 렌더링할 수 있게 될 것입니다.
이 시리즈의 다음 기사에서는 사용자 인터페이스를 구축하는 방법을 살펴보겠습니다. 게시 일정을 확인하시려면 LinkedIn에서 저희를 팔로우해 주세요.