Lidar

Lidar란 무엇인가요?

꼭 알아야 할 3가지 사항

Lidar(“Light Detection and Ranging”의 약어) 센서는 레이다와 소나 같은 거리 측정 센서입니다. 이 센서는 물체에서 반사되는 레이저 펄스를 방사하여 센서 주변의 구조를 인식할 수 있습니다. 센서는 반사광 에너지를 기록하여 물체까지의 거리를 파악하고 이를 토대로 주변에 대한 2차원 및 3차원 표현을 생성합니다. Lidar는 여러 업계에서 인식 시스템 개발을 위한 주요 센서 중 하나로 부상하고 있습니다. Lidar는 객체 검출, 의미론적 분할 같은 3차원 인식 워크플로와 지도작성, SLAM(동시적 위치추정 및 지도작성), 경로 계획 같은 내비게이션 워크플로를 가능하게 만듭니다.

Lidar가 중요한 이유

자율 시스템은 카메라, IMU, 레이다 등의 다양한 센서를 활용하여 환경을 인식합니다. Lidar는 주변에 대해 매우 정확하고 구조적인 3차원 정보를 제공함으로써 다른 센서의 단점을 극복할 수 있습니다. 이러한 장점 덕분에 Lidar 센서는 주류 인식 시장에 도입될 수 있었습니다.

자동차 몇 대가 보이는 주행 시나리오의 포인트 클라우드 데이터.

도로 장면의 Lidar 포인트 클라우드.

이처럼 Lidar가 시장에서 채택된 주된 이유로는 다음 세 가지가 있습니다.

  • 저비용 Lidar. 거리, 크기, 강인성 등의 특징이 향상된 저비용 Lidar가 도입되면서 비교적 수익이 적은 산업 애플리케이션에도 Lidar 기술의 보급이 증가하고 있습니다.
  • 정확한 3차원 데이터. Lidar는 레이다나 소나 등의 기타 거리 측정 센서에 비해 더 높은 정확도로 주변에 관한 고밀도 3차원 정보를 포인트 클라우드로 수집합니다. 이는 3차원 복원의 정밀도를 개선합니다.
  • Lidar 처리 알고리즘. 의미론적 분할, 객체 검출 및 추적, Lidar 카메라 데이터 융합, Lidar SLAM과 같은 Lidar 처리 워크플로의 최근의 발달로 인해 업계는 개발 워크플로에 Lidar를 추가할 수 있게 되었습니다. MATLAB과 같은 툴을 활용하면 Lidar 처리 알고리즘을 개발하고 적용할 수 있습니다.

Lidar 애플리케이션

Lidar는 자율주행부터 지구과학에 이르는 다양한 산업에 활용되고 있습니다. 애플리케이션은 Lidar 탑재 플랫폼을 기준으로 크게 세 가지로 분류할 수 있습니다.

  • 항공 Lidar
  • 지상 Lidar
  • 실내 Lidar

항공 Lidar

항공 Lidar는 UAV(무인 항공기) 또는 항공기에 탑재된 Lidar 센서입니다. 항공 Lidar는 대규모 지형을 나타내는 3차원 포인트 클라우드 데이터를 수집하여 이를 Lidar 매핑, 특징 추출, 지형 분류 및 기타 활용 사례에 사용할 수 있습니다.

Lidar를 탑재하고 비행 중인 드론의 이미지.

항공 Lidar 센서.

건물과 나무가 있는 항공 포인트 클라우드 데이터.

 항공 Lidar 데이터.

다음과 같은 항공 Lidar 애플리케이션의 예가 있습니다.

  • 농업: Lidar 기술은 농업에서 경작 지역을 매핑하고 농장과 집수 지역의 정확한 지형을 식별하는 데 널리 사용되고 있습니다.
  • 도시 계획: Lidar는 어떤 지역의 DSM(수치 표면 모델) 또는 DCM(수치 도시 모델)을 생성하는 데 사용되어 도시를 설계하거나 기존 도시의 신규 인프라를 구축하는 데 도움이 될 수 있습니다.
  • 지질 매핑: Lidar를 사용하여 지구 표면의 3차원 지도를 생성하고 이를 광업, 정밀 임업, 석유 및 가스 탐사 등의 애플리케이션에 활용할 수 있습니다.
  • 항공 항법 및 경로 계획: 이제 Lidar는 주변을 자율적으로 비행하며 실시간 3차원 데이터를 수집하는 UAV에 사용됩니다.

다음과 같은 MATLAB®을 사용한 항공 Lidar 처리 예제를 살펴볼 수 있습니다.

지상 Lidar

지상 Lidar에는 두 가지 유형, 즉 고정형 지상 Lidar와 이동형 Lidar가 있습니다.

  • 고정형 지상 Lidar는 고정된 플랫폼에 탑재되는 Lidar입니다. 토지 측량, 도로 측량, 위상 매핑, DEM(수치 표고 지도) 생성, 농업 및 기타 애플리케이션에 널리 활용되고 있습니다. 고정형 지상 Lidar는 상세하고 근접한 데이터 수집이 필요한 애플리케이션에 적합합니다.
  • 이동형 Lidar는 자동차나 트럭 같은 이동형 플랫폼에 부착된 지상 Lidar를 가리킵니다. 이동형 Lidar의 가장 중요한 애플리케이션은 자율주행입니다. 차량에 탑재된 Lidar는 주변의 3차원 포인트 클라우드 데이터를 수집하며, 인식 및 내비게이션 워크플로에도 사용됩니다. 이러한 워크플로에 대해서는 아래 섹션에서 자세히 설명합니다. 
자동차 위에 탑재된 여러 대의 Lidar.

이동형 Lidar 센서.

자동차와 나무가 있는 도로 시나리오의 포인트 클라우드 데이터.

이동형 Lidar 데이터.

다음과 같은 MATLAB을 사용한 지상 Lidar 처리 예제를 살펴볼 수 있습니다.

실내 Lidar

Lidar는 이동 로봇에 탑재하여 실내 로보틱스 애플리케이션에 널리 활용되고 있습니다. 3차원 Lidar 외에 2차원 Lidar나 레이저 스캐너도 Lidar 스캐닝이나 매핑 등 실내 로보틱스 애플리케이션에 활용되고 있습니다. 주변의 깊이 정보를 수집하고 활용 사례에 맞게 추가로 처리합니다.

실내 Lidar 센서.

실내 Lidar 센서.

실내 Lidar 데이터의 스크린샷.

실내 Lidar 데이터.

실내 Lidar는 흔히 다음과 같은 분야에 사용됩니다.

  • Lidar 매핑 및 SLAM: 2차원 또는 3차원 Lidar를 사용하여 2차원 또는 3차원 SLAM 및 매핑을 생성할 수 있습니다.
  • 장애물 검출, 충돌 경고, 회피: 2차원 Lidar는 장애물 검출에 널리 사용됩니다. 이 데이터를 더욱 활용하여 충돌 경고를 생성하거나 장애물을 회피할 수 있습니다.

다음과 같은 MATLAB을 사용한 지상 Lidar 처리 예제를 살펴볼 수 있습니다.

MATLAB의 Lidar 포인트 클라우드 처리

MATLAB 및 Point Cloud Toolbox™는 Lidar 포인트 클라우드 처리 작업을 간소화할 수 있습니다. 전용 툴과 함수가 갖춰진 MATLAB을 사용하면 3차원 데이터 유형, 데이터의 희소성, 데이터에 있는 유효하지 않은 포인트, 큰 잡음 등 Lidar 데이터 처리에서 흔히 직면하게 되는 문제를 극복할 수 있습니다.

실시간 Lidar 데이터와 기록된 Lidar 데이터를 MATLAB에 가져오고 Lidar 포인트 클라우드 처리 워크플로를 구현하며 C/C++ 및 CUDA® 코드를 생성하여 프로덕션으로 배포할 수 있습니다.

Lidar 포인트 클라우드 처리를 위해 MATLAB에서 제공하는 중요한 기능에 대해서는 아래 섹션에서 설명합니다.

Lidar 데이터 스트리밍, 읽기 및 쓰기

MATLAB에서 센서 데이터를 처리할 때 첫 번째 단계는 데이터를 MATLAB 작업 공간으로 가져오는 것입니다. 다음과 같은 작업을 수행할 수 있습니다.

  • 실시간 데이터 스트리밍: Velodyne Lidar Hardware Support Package를 사용하여 Velodyne 센서로부터, 그리고 Ouster Lidar Hardware Support Package를 사용하여 Ouster 센서로부터 스트리밍할 수 있습니다.
  • 저장된 포인트 클라우드 읽기: PCD, PLY, PCAP(Velodyne, Ouster, Hesai Pandar), Ibeo data container, LAS, LAZ 등 다양한 파일 형식으로 읽을 수 있습니다.
  • 포인트 클라우드 쓰기: PCD, PLY, LAS, LAZ 등 다양한 파일 형식으로 쓸 수 있습니다.
  • Lidar 포인트 클라우드 데이터 시뮬레이션: 이 작업을 통해 알고리즘과 워크플로를 실제 시스템에 배포하기 전에 테스트할 수 있습니다. MATLAB에서는 처리 알고리즘 테스트를 위한 센서 파라미터를 정의하여 시뮬레이션 환경에서 3차원 또는 2차원 Lidar 데이터를 합성할 수 있습니다. Point Cloud Toolbox, UAV Toolbox, Automated Driving Toolbox에는 Lidar 포인트 클라우드를 시뮬레이션할 수 있는 Lidar 센서 모델이 있습니다.
Lidar 센서 모델:

Velodyne® Lidar 센서의 실시간 Lidar 데이터 스트리밍.

3차원 Lidar 데이터 시뮬레이션.

Lidar 포인트 클라우드 전처리

Lidar 데이터를 전처리하여 데이터 품질을 개선하고 데이터에서 기본 정보를 추출할 수 있습니다. Point Cloud Toolbox는 다운샘플링, 중앙값 필터링, 정렬, 변환 및 포인트 클라우드에서 특징을 추출하는 기능을 제공합니다.

Lidar 카메라 보정

MATLAB을 통한 Lidar 카메라 보정으로 Lidar-카메라 변환을 추정함으로써 카메라와 Lidar 데이터를 융합할 수 있습니다. 또한 Lidar 포인트 클라우드 내의 색 정보를 융합하고, Lidar와 같은 장소에 배치된 카메라의 2차원 경계 상자를 사용하여 Lidar 내의 3차원 경계 상자를 추정할 수 있습니다.

Lidar 카메라 보정기 앱의 스크린샷.

Lidar 카메라 보정기 앱.

딥러닝을 사용한 Lidar

MATLAB으로 객체 검출 및 의미론적 분할에 대한 딥러닝 알고리즘을 Lidar 데이터에 적용할 수 있습니다.

  • MATLAB에서 단 몇 줄의 코드로 PointSeg 및 SqueezeSegV2 등 Lidar 데이터로 사전 훈련된 의미론적 분할 모델을 가져올 수 있습니다. 자신만의 딥러닝 모델을 훈련시키고 평가하며 배포할 수도 있습니다.
  • MATLAB을 사용하면 PointPillars 및 ComplexYolo-V4 신경망 같은 강건한 검출기를 설계하고 훈련하며 평가할 수 있습니다. Lidar 포인트 클라우드에서 객체 주위의 방향성이 있는 경계 상자를 검출하고 피팅할 수 있습니다.
  • Point Cloud Toolbox의 다중 센서 레이블 지정기 앱은 포인트 클라우드 레이블 지정 작업을 간소화할 수 있습니다. 객체 검출 및 의미론적 분할을 위해 동일한 장면을 수집하는 여러 센서에서 얻은 비디오, 영상 시퀀스, Lidar 포인트 클라우드에서 ground truth 데이터에 레이블을 지정하고, 내장 또는 사용자 지정 알고리즘을 적용하여 레이블 지정을 자동화하고, 자동화 알고리즘 성능을 평가할 수 있습니다.
트럭과 자동차에 레이블이 지정된 포인트 클라우드의 자차량 보기.

포인트 클라우드의 의미론적 분할

포인트 클라우드에서의 객체 추적

MATLAB으로 종단간 객체 추적 워크플로에 들어가는 여러 도메인을 통합할 수 있습니다. Lidar 포인트 클라우드 데이터를 읽고 전처리하여 딥러닝을 적용해 객체를 검출하고 사전에 정의된 추적기를 사용하여 객체를 추적하며 그것을 타겟 하드웨어에 배포할 수 있습니다.

순차적 포인트 클라우드 데이터로부터 추적되는 차량의 스크린샷.

객체 검출 및 추적.

포인트 클라우드 정합 및 SLAM

포인트 클라우드 정합은 동일한 장면에 대한 2개의 3차원 포인트 클라우드를 공통 좌표계에 정렬하는 공정입니다. Point Cloud Toolbox 함수를 사용하여 ICP(반복 최근접점), LOAM(Lidar 주행거리 측정 및 지도작성), NDT(정규분포 변환), FGR(고속 전역 정합), CPD(Coherent Point Drift: 일관적 점 이동) 등의 국소 및 전역 기법을 사용하여 포인트 클라우드를 서로 정합할 수 있습니다. 포인트 클라우드 정합 분석기 앱을 사용하여 대화형 방식으로 포인트 클라우드를 정합하고 다양한 정합 기법의 결과를 비교할 수 있습니다.

SLAM(동시적 위치추정 및 지도작성)은 차량이나 로봇의 위치와 방향을 주변 환경에 대한 상대적인 위치로 계산하는 동시에 해당 환경의 지도를 구축하는 과정입니다. 이 툴박스에서는 포인트 클라우드 데이터를 활용한 그래프 기반 3차원 SLAM을 지원합니다.

포인트 클라우드 정합 분석기 앱

포인트 클라우드 정합 분석기 앱

Lidar 포인트 클라우드 처리에 대한 자세한 정보는 Point Cloud Toolbox 및 Computer Vision Toolbox™를 참조하십시오.

Lidar FAQ

Lidar(light detection and ranging)는 레이저 펄스를 방출하고 물체에서 반사되어 돌아오는 빛 에너지를 기록하여 거리를 측정하는 센서입니다. 이를 통해 주변 환경의 구조를 인식하고 2차원 또는 3차원으로 표현할 수 있습니다.

레이다와 소나 역시 거리 측정 센서이지만, Lidar는 레이저 펄스와 반사된 빛 에너지를 사용하여 거리를 측정하므로 다른 거리 측정 센서보다 높은 정확도로 정밀한 구조 정보와 3차원 정보를 얻을 수 있습니다.

포인트 클라우드는 Lidar 센서로 수집한 데이터 점의 집합으로, 주변 환경의 3차원 구조를 나타냅니다. 포인트 클라우드는 객체 검출, 의미론적 분할, 매핑 등의 애플리케이션에 활용할 수 있도록 처리할 수 있습니다.

Lidar시스템은 사용되는 플랫폼에 따라 세 가지 유형으로 분류됩니다. UAV 또는 항공기에 탑재되는 항공 Lidar, 지상에 고정 설치되거나 이동식으로 사용되는 지상 Lidar, 로보틱스 애플리케이션에서 사용되는 실내 Lidar가 있습니다.

Lidar는 자율주행, 농업 매핑, 도시 계획, 지질 매핑, UAV 내비게이션, 토지 측량, 지형 매핑뿐 아니라 실내 로보틱스의 SLAM, 장애물 검출, 충돌 회피 등에 사용됩니다.

향상된 성능을 갖춘 저비용 Lidar가 등장하면서 시장에서 LiDAR의 도입이 확대되고 있습니다. 또한 Lidar는 정확한 고밀도 3차원 데이터를 포인트 클라우드 형태로 수집할 수 있어 의미론적 분할 및 SLAM과 같은 복잡한 알고리즘을 적용할 수 있습니다.

Lidar 카메라 보정은 카메라로 수집한 영상과 Lidar로 수집한 포인트 클라우드 간의 변환 관계를 구하는 과정입니다. 이를 통해 Lidar 포인트 클라우드에 색상 정보를 융합하고, 동일한 위치에 배치된 카메라에서 얻은 2차원 경계 상자를 사용하여 3차원 경계 상자를 추정할 수 있습니다.

MATLAB에서는 Lidar 데이터 스트리밍 및 읽기, 전처리 및 필터링, Lidar 카메라 보정, 객체 검출 및 의미론적 분할을 위한 딥러닝, 객체 추적, 포인트 클라우드 정합 및 SLAM 등의 작업을 수행할 수 있습니다.

자료

문서, 예제, 비디오 등을 통해 여러분의 지식을 확장할 수 있습니다.