KR102503678B1 - 자율주행 시스템을 위한 ndt 지도 데이터의 압축 방법, 장치 및 컴퓨터프로그램 - Google Patents
자율주행 시스템을 위한 ndt 지도 데이터의 압축 방법, 장치 및 컴퓨터프로그램 Download PDFInfo
- Publication number
- KR102503678B1 KR102503678B1 KR1020220025712A KR20220025712A KR102503678B1 KR 102503678 B1 KR102503678 B1 KR 102503678B1 KR 1020220025712 A KR1020220025712 A KR 1020220025712A KR 20220025712 A KR20220025712 A KR 20220025712A KR 102503678 B1 KR102503678 B1 KR 102503678B1
- Authority
- KR
- South Korea
- Prior art keywords
- data
- ndt
- covariance matrix
- map data
- generated
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 101
- 238000004590 computer program Methods 0.000 title claims abstract description 19
- 239000013598 vector Substances 0.000 claims abstract description 166
- 239000011159 matrix material Substances 0.000 claims abstract description 118
- 238000009826 distribution Methods 0.000 claims abstract description 62
- 238000012545 processing Methods 0.000 claims abstract description 61
- 238000007906 compression Methods 0.000 claims description 40
- 230000006835 compression Effects 0.000 claims description 38
- 238000006243 chemical reaction Methods 0.000 claims description 25
- 238000013473 artificial intelligence Methods 0.000 claims description 6
- 238000005516 engineering process Methods 0.000 claims description 4
- 230000009466 transformation Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 17
- 230000008569 process Effects 0.000 description 13
- 230000008901 benefit Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 238000012549 training Methods 0.000 description 4
- 238000013144 data compression Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000007667 floating Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000001151 other effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01S—RADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
- G01S13/00—Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
- G01S13/88—Radar or analogous systems specially adapted for specific applications
- G01S13/89—Radar or analogous systems specially adapted for specific applications for mapping or imaging
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/3082—Vector coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/597—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/26—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
- G01C21/28—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
- G01C21/30—Map- or contour-matching
- G01C21/32—Structuring or formatting of map data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/174—Redundancy elimination performed by the file system
- G06F16/1744—Redundancy elimination performed by the file system using compression, e.g. sparse files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/29—Geographical information databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
- G06N3/0455—Auto-encoder networks; Encoder-decoder networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/05—Geographic models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Remote Sensing (AREA)
- General Physics & Mathematics (AREA)
- Radar, Positioning & Navigation (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Electromagnetism (AREA)
- Instructional Devices (AREA)
- Image Processing (AREA)
- Processing Or Creating Images (AREA)
- Geometry (AREA)
- Computer Graphics (AREA)
- Automation & Control Theory (AREA)
Abstract
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법, 장치 및 컴퓨터프로그램이 제공된다. 본 발명의 다양한 실시예에 따른 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법은 컴퓨팅 장치에 의해 수행되는, 소정의 지역에 대한 3차원 포인트 클라우드를 정규분포 집합으로 모델링함에 따라 생성된 NDT(Normal Distribution Transform) 지도 데이터의 압축 방법에 있어서, 상기 NDT 지도 데이터에 포함된 평균 벡터 데이터를 가공하는 단계, 상기 NDT 지도 데이터에 포함된 공분산 행렬 데이터를 가공하는 단계 및 상기 가공된 평균 벡터 및 상기 가공된 공분산 행렬을 이용하여 압축된 NDT 지도 데이터를 생성하는 단계를 포함한다.
Description
본 발명의 다양한 실시예는 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법, 장치 및 컴퓨터프로그램에 관한 것이다.
차량을 운전하는 사용자들의 편의를 위하여, 각종 센서와 전자 장치 등(예: 차량 운전자 보조 시스템(ADAS: Advanced Driver Assistance System)이 구비되고 있는 추세이며, 특히, 운전자의 개입 없이 주변 환경을 인식하고, 인식된 주변 환경에 따라 스스로 주어진 목적지까지 자동으로 주행하는 차량의 자율 주행 시스템(Autonomous driving System)에 대한 기술 개발이 활발하게 이루어지고 있다.
여기서, 자율주행 차량은 운전자의 개입 없이 주변 환경을 인식하고, 인식된 주변 환경에 따라 스스로 주어진 목적지까지 자동으로 주행하는 자율주행 시스템 기능을 탑재한 차량을 말한다.
운전자에 개입 없이 자율주행 차량의 주행 동작을 제어하기 위해서는 자율주행 차량이 자체적으로 이해할 수 있는 지도가 필요하다. 이와 같이, ‘컴퓨터가 이해할 수 있는 도로 환경 정보를 데이터베이스 형태로 미리 저장해둔 것’을 디지털 지도라 하며, 특히 자율주행용 디지털 지도는 단순 내비게이션 지도보다 더 자세한 정보를 담고 있다는 의미에서 ‘정밀지도’ ‘HD(High Definition)지도’ ‘HAD(Highly Automated Driving)지도’라 한다.
종래에는 이러한 디지털 지도, 정밀 지도로서 3차원 포인트 클라우드(예: 라이다(Lidar), 레이더(Radar), 심도 카메라(Depth camera)를 통해 수집된 포인트 클라우드)를 기반으로 생성된 3차원 포인트 클라우드 지도를 활용하였으나, 3차원 포인트 클라우드 지도의 데이터 크기가 너무 커서 광범위한 영역에 대한 지도를 활용하기 어렵다는 문제가 있다.
본 발명이 해결하고자 하는 과제는 종래의 문제점을 해소하기 위한 목적으로, 소정의 지역에 대한 3차원 포인트 클라우드를 정규분포 집합으로 모델링함에 따라 생성된 NDT 지도 데이터의 표현 방식을 가공하여 압축된 NDT 지도 데이터를 생성함으로써, 자율주행 시스템의 주행영역의 확장성에 대한 제약을 크게 줄이고 안정적인 실시간 동작이 중요한 자율주행의 효율성이 향상시킬 수 있는 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법, 장치 및 컴퓨터프로그램을 제공하는 것이다.
본 발명이 해결하고자 하는 과제들은 이상에서 언급된 과제로 제한되지 않으며, 언급되지 않은 또 다른 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상술한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법은 컴퓨팅 장치에 의해 수행되는, 소정의 지역에 대한 3차원 포인트 클라우드를 정규분포 집합으로 모델링함에 따라 생성된 NDT(Normal Distribution Transform) 지도 데이터의 압축 방법에 있어서, 상기 NDT 지도 데이터에 포함된 평균 벡터 데이터를 가공하는 단계, 상기 NDT 지도 데이터에 포함된 공분산 행렬 데이터를 가공하는 단계 및 상기 가공된 평균 벡터 및 상기 가공된 공분산 행렬을 이용하여 압축된 NDT 지도 데이터를 생성하는 단계를 포함할 수 있다.
다양한 실시예에서, 소정의 지역에 대한 3차원 포인트 클라우드를 격자화 하여 복수의 3차원 격자공간을 생성하는 단계, 상기 생성된 복수의 3차원 격자공간 각각에 대한 평균 벡터를 산출하고, 상기 산출된 평균 벡터를 이용하여 평균 벡터 데이터를 생성하는 단계, 상기 생성된 복수의 3차원 격자공간 각각에 대한 공분산 행렬을 산출하고, 상기 산출된 공분산 행렬을 이용하여 공분산 행렬 데이터를 생성하는 단계 및 상기 생성된 평균 벡터 데이터 및 상기 생성된 공분산 행렬 데이터를 이용하여 상기 소정의 지역에 대한 NDT 지도 데이터를 생성하는 단계를 더 포함할 수 있다.
다양한 실시예에서, 상기 생성된 평균 벡터 데이터는, 상기 생성된 복수의 3차원 격자공간 각각의 중심 위치에 대한 중심 벡터 및 오프셋 벡터를 포함하며, 상기 평균 벡터 데이터를 가공하는 단계는, 상기 중심 벡터의 표현 방식을 변환하는 단계, 상기 오프셋 벡터의 표현 방식을 변환하는 단계 및 상기 변환된 중심 벡터와 상기 변환된 오프셋 벡터의 좌표 값을 이용하여 압축된 평균 벡터 데이터를 생성하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 중심 벡터의 표현 방식을 변환하는 단계는, 상기 중심 벡터를트리 자료 구조의 형태로 변환하되, 상기 트리 자료 구조는 하나 이상의 노드를 포함하며, 상기 하나 이상의 노드가 비선형적 계층 구조를 가지는 것인, 단계를 포함할 수 있다.
다양한 실시예에서, 상기 오프셋 벡터의 표현 방식을 변환하는 단계는, 상기 생성된 복수의 3차원 격자공간 각각의 어느 한 변의 길이를 기준으로 제1 기준 범위를 설정하는 단계 및 상기 생성된 복수의 3차원 격자공간 각각에 대한 오프셋 벡터의 성분을 상기 설정된 제1 기준 범위 내의 값으로 변환하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 생성된 공분산 행렬 데이터는, 상기 생성된 복수의 3차원 격자공간 각각에 포함된 포인트들의 표준편차 및 회전변환 각도를 포함하며, 상기 공분산 행렬 데이터를 가공하는 단계는, 상기 표준편차의 표현 방식을 변환하는 단계, 상기 회전변환 각도의 표현 방식을 변환하는 단계 및 상기 변환된 표준편차 및 상기 변환된 회전변환 각도를 이용하여 압축된 공분산 행렬 데이터를 생성하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 표준편차의 표현 방식을 변환하는 단계는, 상기 생성된 복수의 3차원 격자공간 내의 가장 긴 대각선의 길이를 기준으로 제2 기준 범위를 설정하는 단계 및 상기 생성된 복수의 3차원 격자공간 각각에 대한 표준편차를 상기 설정된 제2 기준 범위 내의 값으로 변환하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 회전변환 각도의 표현 방식을 변환하는 단계는, X축, Y축 및 Z축 각각에 대한 기준 회전 범위를 설정하는 단계 및 상기 회전변환 각도를 상기 설정된 기준 회전 범위 내의 값으로 변환하는 단계를 포함할 수 있다.
다양한 실시예에서, 기 설정된 정합 성능에 기초하여 상기 평균 벡터 데이터 및 상기 공분산 행렬 데이터 각각에 대한 압축 정도를 설정하고, 상기 설정된 압축 정도에 따라 상기 평균 벡터 데이터 및 상기 공분산 행렬 데이터를 가공하되, 동일한 정합 성능이 설정될 경우, 상기 공분산 행렬 데이터의 압축 정도가 상기 평균 벡터 데이터의 압축 정도보다 크거나 같도록 설정되는 것인, 단계를 더 포함할 수 있다.
다양한 실시예에서, 상기 NDT 지도 데이터에 포함된 복수의 객체 각각에 대한 빈도수를 산출하고, 상기 산출된 빈도수에 기초하여, 상기 NDT 지도 데이터 상에 상기 복수의 객체 각각에 대응되는 영역에 대한 평균 벡터 데이터 및 공분산 행렬 데이터의 압축 정도를 설정하는 단계를 더 포함할 수 있다.
다양한 실시예에서, 상기 NDT 지도 데이터에 포함된 복수의 객체 중 상호 인접한 위치에 배치되는 제1 객체와 제2 객체가 동일한 속성을 가지는 경우, 상기 제1 객체와 상기 제2 객체를 하나의 그룹으로 그룹화하는 단계를 더 포함하며, 상기 평균 벡터 데이터를 가공하는 단계는, 상기 하나의 그룹에 포함된 객체들의 평균 벡터 데이터들을 결합하여 하나의 평균 벡터 데이터를 생성하고, 생성된 하나의 평균 벡터 데이터를 가공하는 단계를 포함하고, 상기 공분산 행렬 데이터를 가공하는 단계는, 상기 하나의 그룹에 포함된 객체들의 공분산 행렬 데이터들을 결합하여 하나의 공분산 행렬 데이터를 생성하고, 생성된 하나의 공분산 행렬 데이터를 가공하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 NDT 지도 데이터에 포함된 복수의 객체 중 사전에 설정된 위치관계를 가지는 둘 이상의 객체를 그룹화하는 단계를 더 포함하며, 상기 평균 벡터 데이터를 가공하는 단계는, 상기 하나의 그룹에 포함된 객체들의 평균 벡터 데이터들을 결합하여 하나의 평균 벡터 데이터를 생성하고, 생성된 하나의 평균 벡터 데이터를 가공하는 단계를 포함하고, 상기 공분산 행렬 데이터를 가공하는 단계는, 상기 하나의 그룹에 포함된 객체들의 공분산 행렬 데이터들을 결합하여 하나의 공분산 행렬 데이터를 생성하고, 생성된 하나의 공분산 행렬 데이터를 가공하는 단계를 포함할 수 있다.
다양한 실시예에서, 상기 NDT 지도 데이터를 기 학습된 인공지능 모델의 입력으로 하여 상기 압축된 NDT 지도 데이터를 추출하되, 상기 기 학습된 인공지능 모델은 인코더 및 디코더를 포함하며, 복수의 압축된 NDT 지도 데이터를 학습 데이터로 하여 학습된 모델인, 단계를 포함할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법을 수행하는 컴퓨팅 장치는, 프로세서, 네트워크 인터페이스, 메모리 및 상기 메모리에 로드(load) 되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되, 상기 컴퓨터 프로그램은, 소정의 지역에 대한 3차원 포인트 클라우드를 정규분포 집합으로 모델링함에 따라 생성된 NDT(Normal Distribution Transform) 지도 데이터에 포함된 평균 벡터 데이터를 가공하는 인스트럭션(instruction), 상기 NDT 지도 데이터에 포함된 공분산 행렬 데이터를 가공하는 인스트럭션 및 상기 가공된 평균 벡터 및 상기 가공된 공분산 행렬을 이용하여 압축된 NDT 지도 데이터를 생성하는 인스트럭션을 포함할 수 있다.
상술한 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 컴퓨터프로그램은, 컴퓨팅 장치와 결합되어,
소정의 지역에 대한 3차원 포인트 클라우드를 정규분포 집합으로 모델링함에 따라 생성된 NDT(Normal Distribution Transform) 지도 데이터에 포함된 평균 벡터 데이터를 가공하는 단계, 상기 NDT 지도 데이터에 포함된 평균 벡터 데이터를 가공하는 단계, 상기 NDT 지도 데이터에 포함된 공분산 행렬 데이터를 가공하는 단계 및 상기 가공된 평균 벡터 및 상기 가공된 공분산 행렬을 이용하여 압축된 NDT 지도 데이터를 생성하는 단계를 포함하는 NDT 지도 데이터의 압축 방법을 실행시키기 위하여 컴퓨팅 장치로 판독 가능한 기록매체에 저장될 수 있다.
본 발명의 기타 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
본 발명의 다양한 실시예에 따르면, 소정의 지역에 대한 3차원 포인트 클라우드를 정규분포 집합으로 모델링함에 따라 생성된 NDT 지도 데이터의 표현 방식을 가공하여 압축된 NDT 지도 데이터를 생성함으로써, 자율주행 시스템의 주행영역의 확장성에 대한 제약을 크게 줄이고 안정적인 실시간 동작이 중요한 자율주행의 효율성이 향상시킬 수 있다는 이점이 있다.
본 발명의 효과들은 이상에서 언급된 효과로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
도 1은 본 발명의 일 실시예에 따른 자율주행 시스템을 도시한 도면이다.
도 2는 본 발명의 다른 실시예에 따른 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법을 수행하는 컴퓨팅 장치의 하드웨어 구성도이다.
도 3은 본 발명의 또 다른 실시예에 따른 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법의 순서도이다.
도 4는 다양한 실시예에서, 평균 벡터 데이터를 가공하는 방법을 설명하기 위한 순서도이다.
도 5는 다양한 실시예에서, 공분산 행렬 데이터를 가공하는 방법을 설명하기 위한 순서도이다.
도 6은 다양한 실시예에서, 공분산 행렬 데이터를 타원체(ellipsoid)로 표현한 것을 예시적으로 도시한 도면이다.
도 2는 본 발명의 다른 실시예에 따른 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법을 수행하는 컴퓨팅 장치의 하드웨어 구성도이다.
도 3은 본 발명의 또 다른 실시예에 따른 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법의 순서도이다.
도 4는 다양한 실시예에서, 평균 벡터 데이터를 가공하는 방법을 설명하기 위한 순서도이다.
도 5는 다양한 실시예에서, 공분산 행렬 데이터를 가공하는 방법을 설명하기 위한 순서도이다.
도 6은 다양한 실시예에서, 공분산 행렬 데이터를 타원체(ellipsoid)로 표현한 것을 예시적으로 도시한 도면이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나, 본 발명은 이하에서 개시되는 실시예들에 제한되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하고, 본 발명이 속하는 기술 분야의 통상의 기술자에게 본 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소 외에 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다. 명세서 전체에 걸쳐 동일한 도면 부호는 동일한 구성 요소를 지칭하며, "및/또는"은 언급된 구성요소들의 각각 및 하나 이상의 모든 조합을 포함한다. 비록 "제1", "제2" 등이 다양한 구성요소들을 서술하기 위해서 사용되나, 이들 구성요소들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 구성요소를 다른 구성요소와 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 구성요소는 본 발명의 기술적 사상 내에서 제2 구성요소일 수도 있음은 물론이다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야의 통상의 기술자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또한, 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
명세서에서 사용되는 "부" 또는 “모듈”이라는 용어는 소프트웨어, FPGA 또는 ASIC과 같은 하드웨어 구성요소를 의미하며, "부" 또는 “모듈”은 어떤 역할들을 수행한다. 그렇지만 "부" 또는 “모듈”은 소프트웨어 또는 하드웨어에 한정되는 의미는 아니다. "부" 또는 “모듈”은 어드레싱할 수 있는 저장 매체에 있도록 구성될 수도 있고 하나 또는 그 이상의 프로세서들을 재생시키도록 구성될 수도 있다. 따라서, 일 예로서 "부" 또는 “모듈”은 소프트웨어 구성요소들, 객체지향 소프트웨어 구성요소들, 클래스 구성요소들 및 태스크 구성요소들과 같은 구성요소들과, 프로세스들, 함수들, 속성들, 프로시저들, 서브루틴들, 프로그램 코드의 세그먼트들, 드라이버들, 펌웨어, 마이크로 코드, 회로, 데이터, 데이터베이스, 데이터 구조들, 테이블들, 어레이들 및 변수들을 포함한다. 구성요소들과 "부" 또는 “모듈”들 안에서 제공되는 기능은 더 작은 수의 구성요소들 및 "부" 또는 “모듈”들로 결합되거나 추가적인 구성요소들과 "부" 또는 “모듈”들로 더 분리될 수 있다.
공간적으로 상대적인 용어인 "아래(below)", "아래(beneath)", "하부(lower)", "위(above)", "상부(upper)" 등은 도면에 도시되어 있는 바와 같이 하나의 구성요소와 다른 구성요소들과의 상관관계를 용이하게 기술하기 위해 사용될 수 있다. 공간적으로 상대적인 용어는 도면에 도시되어 있는 방향에 더하여 사용시 또는 동작시 구성요소들의 서로 다른 방향을 포함하는 용어로 이해되어야 한다. 예를 들어, 도면에 도시되어 있는 구성요소를 뒤집을 경우, 다른 구성요소의 "아래(below)"또는 "아래(beneath)"로 기술된 구성요소는 다른 구성요소의 "위(above)"에 놓여질 수 있다. 따라서, 예시적인 용어인 "아래"는 아래와 위의 방향을 모두 포함할 수 있다. 구성요소는 다른 방향으로도 배향될 수 있으며, 이에 따라 공간적으로 상대적인 용어들은 배향에 따라 해석될 수 있다.
본 명세서에서, 컴퓨터는 적어도 하나의 프로세서를 포함하는 모든 종류의 하드웨어 장치를 의미하는 것이고, 실시 예에 따라 해당 하드웨어 장치에서 동작하는 소프트웨어적 구성도 포괄하는 의미로서 이해될 수 있다. 예를 들어, 컴퓨터는 스마트폰, 태블릿 PC, 데스크톱, 노트북 및 각 장치에서 구동되는 사용자 클라이언트 및 애플리케이션을 모두 포함하는 의미로서 이해될 수 있으며, 또한 이에 제한되는 것은 아니다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명한다.
본 명세서에서 설명되는 각 단계들은 컴퓨터에 의하여 수행되는 것으로 설명되나, 각 단계의 주체는 이에 제한되는 것은 아니며, 실시 예에 따라 각 단계들의 적어도 일부가 서로 다른 장치에서 수행될 수도 있다.
종래의 디지털 지도가 가지는 문제를 극복하기 위하여, NDT(Normal Distribution Transform)를 기반으로 3차원 포인트 클라우드를 정규분포 집합으로 모델링함으로써 생성되는 NDT 지도 데이터를 사용할 수 있다. 그러나, 자율주행 시스템의 주행영역이 굉장히 넓은 경우, 그것을 표현한 3차원 포인트 클라우드의 데이터 크기 역시 매우 크기 때문에, 이를 이용하여 만든 NDT 지도 데이터의 크기 또한 클 수밖에 없다는 한계가 있을 수 있다.
이는 자율주행 시스템의 주행영역 확장성에 영향을 미친다. 자율주행 시스템의 주행영역이 확장될수록 NDT 지도 데이터 크기도 커질 것이고, 너무 커진 NDT 지도의 데이터의 크기는 자율주행 시스템의 주행영역을 확장하는데 제한으로 작용하기 때문이다.
이러한 문제점을 해소하기 위한 목적으로, 주행영역 확장성을 확보하고, 실시간으로 동작하는 자율주행 시스템에서 효율적으로 사용할 수 있도록 NDT 지도 데이터를 효과적으로 압축할 수 있는 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법, 장치 및 컴퓨터프로그램을 제안한다. 이하, 도 1 내지 6을 참조하여 본 발명의 다양한 실시예에 따른 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법, 장치 및 컴퓨터프로그램에 대해 설명하도록 한다.
도 1은 본 발명의 일 실시예에 따른 자율주행 시스템을 도시한 도면이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 자율주행 시스템은 컴퓨팅 장치(100), 사용자 단말(200), 외부 서버(300) 및 네트워크(400)를 포함할 수 있다.
여기서, 도 1에 도시된 자율주행 시스템은 일 실시예에 따른 것이고, 그 구성 요소가 도 1에 도시된 실시예에 한정되는 것은 아니며, 필요에 따라 부가, 변경 또는 삭제될 수 있다.
일 실시예에서, 컴퓨팅 장치(100)는 자율주행 차량(10)의 자율주행 제어를 위한 각종 동작을 수행할 수 있다.
이를 위해, 먼저, 컴퓨팅 장치(100)는 자율주행 차량(10)의 위치 및 자세를 측정하는 동작 또는 자율주행 차량(10)의 주변 환경을 인식하는 동작을 수행할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 자율주행 차량(10) 내부에 구비되는 센서(예: 라이다 센서, 레이더 센서, 카메라 센서 등)로부터 센서 데이터를 수집할 수 있고, 수집된 센서 데이터를 활용하여 자율주행 차량(10)의 위치 및 자세를 측정하거나, 자율주행 차량(10)의 주변 환경을 인식할 수 있다.
또한, 컴퓨팅 장치(100)는 자율주행 차량(10)의 자율주행 제어를 위하여, 소정의 지역에 대한 NDT(Normal Distribution Transform) 지도 데이터를 생성 및 저장하되, NDT 지도 데이터에 포함된 정규분포 집합을 가공하여 압축된 NDT 지도 데이터를 생성 및 저장 즉, 데이터의 크기가 작은 NDT 지도 데이터를 생성함으로써, 주행영역 확장성을 확보하고, 실시간으로 동작하는 자율주행 시스템에서 효율적으로 사용할 수 있는 NDT 지도 데이터를 생성할 수 있다. 이에 대해서는 이하 자세하게 후술하도록 한다.
다양한 실시예에서, 컴퓨팅 장치(100)는 네트워크(400)를 통해 사용자 단말(200)과 연결될 수 있으며, 센서 데이터를 분석함에 따라 측정된 자율주행 차량(10)의 위치 및 자세, 인식된 자율주행 차량(10)의 주변 환경 및 생성된 NDT 지도 데이터 등 자율주행과 관련된 각종 정보를 사용자 단말(200)로 제공할 수 있다.
여기서, 사용자 단말(200)은 자율주행 차량(10) 내부에 구비되는 인포테인먼트 시스템일 수 있으나, 이에 한정되지 않고, 휴대성과 이동성이 보장되는 무선 통신 장치로서, 자율주행 차량(10) 내부에 탑승하는 탑승자가 소지할 수 있는 휴대용 단말일 수 있다. 예를 들어, 사용자 단말(200)은 네비게이션, PCS(Personal Communication System), GSM(Global System for Mobile communications), PDC(Personal Digital Cellular), PHS(Personal Handyphone System), PDA(Personal Digital Assistant), IMT(International Mobile Telecommunication)-2000, CDMA(Code Division Multiple Access)-2000, W-CDMA(W-Code Division Multiple Access), Wibro(Wireless Broadband Internet) 단말, 스마트폰(Smartphone), 스마트 패드(Smartpad), 타블렛PC(Tablet PC) 등과 같은 모든 종류의 핸드헬드(Handheld) 기반의 무선 통신 장치를 포함할 수 있으나, 이에 한정되지 않는다.
또한, 여기서, 네트워크(400)는 복수의 단말 및 서버들과 같은 각각의 노드 상호 간에 정보 교환이 가능한 연결 구조를 의미할 수 있다. 예를 들어, 네트워크(400)는 근거리 통신망(LAN: Local Area Network), 광역 통신망(WAN: Wide Area Network), 인터넷(WWW: World Wide Web), 유무선 데이터 통신망, 전화망, 유무선 텔레비전 통신망 등을 포함할 수 있다.
또한, 여기서, 무선 데이터 통신망은 3G, 4G, 5G, 3GPP(3rd Generation Partnership Project), 5GPP(5th Generation Partnership Project), LTE(Long Term Evolution), WIMAX(World Interoperability for Microwave Access), 와이파이(Wi-Fi), 인터넷(Internet), LAN(Local Area Network), Wireless LAN(Wireless Local Area Network), WAN(Wide Area Network), PAN(Personal Area Network), RF(Radio Frequency), 블루투스(Bluetooth) 네트워크, NFC(Near-Field Communication) 네트워크, 위성 방송 네트워크, 아날로그 방송 네트워크, DMB(Digital Multimedia Broadcasting) 네트워크 등을 포함할 수 있으나, 이에 한정되지는 않는다.
일 실시예에서, 외부 서버(300)는 네트워크(400)를 통해 컴퓨팅 장치(100)와 연결될 수 있으며, 컴퓨팅 장치(100)가 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법을 수행하기 위해 필요한 각종 정보 및 데이터(예: 복수의 포인트 클라우드)를 저장 및 관리하거나, 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법을 수행함에 따라 생성되는 각종 정보 및 데이터(예: 압축된 NDT 지도 데이터)를 제공받아 저장 및 관리할 수 있다. 예를 들어, 외부 서버(300)는 컴퓨팅 장치(100)의 외부에 별도로 구비되는 저장 서버일 수 있으나, 이에 한정되지 않는다. 이하, 도 2를 참조하여 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법을 수행하는 컴퓨팅 장치(100)의 하드웨어 구성에 대해 설명하도록 한다.
도 2는 본 발명의 다른 실시예에 따른 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법을 수행하는 컴퓨팅 장치의 하드웨어 구성도이다.
도 2를 참조하면, 본 발명의 다른 실시예에 따른 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법을 수행하는 컴퓨팅 장치(100)는 하나 이상의 프로세서(110), 프로세서(110)에 의하여 수행되는 컴퓨터 프로그램(151)을 로드(Load)하는 메모리(120), 버스(130), 통신 인터페이스(140) 및 컴퓨터 프로그램(151)을 저장하는 스토리지(150)를 포함할 수 있다. 여기서, 도 2에는 본 발명의 실시예와 관련 있는 구성요소들만 도시되어 있다. 따라서, 본 발명이 속한 기술분야의 통상의 기술자라면 도 2에 도시된 구성요소들 외에 다른 범용적인 구성 요소들이 더 포함될 수 있음을 알 수 있다.
프로세서(110)는 컴퓨팅 장치(100)의 각 구성의 전반적인 동작을 제어한다. 프로세서(110)는 CPU(Central Processing Unit), MPU(Micro Processor Unit), MCU(Micro Controller Unit), GPU(Graphic Processing Unit) 또는 본 발명의 기술 분야에 잘 알려진 임의의 형태의 프로세서를 포함하여 구성될 수 있다.
또한, 프로세서(110)는 본 발명의 실시예들에 따른 방법을 실행하기 위한 적어도 하나의 애플리케이션 또는 프로그램에 대한 연산을 수행할 수 있으며, 컴퓨팅 장치(100)는 하나 이상의 프로세서를 구비할 수 있다.
다양한 실시예에서, 프로세서(110)는 프로세서(110) 내부에서 처리되는 신호(또는, 데이터)를 일시적 및/또는 영구적으로 저장하는 램(RAM: Random Access Memory, 미도시) 및 롬(ROM: Read-Only Memory, 미도시)을 더 포함할 수 있다. 또한, 프로세서(110)는 그래픽 처리부, 램 및 롬 중 적어도 하나를 포함하는 시스템온칩(SoC: system on chip) 형태로 구현될 수 있다.
메모리(120)는 각종 데이터, 명령 및/또는 정보를 저장한다. 메모리(120)는 본 발명의 다양한 실시예에 따른 방법/동작을 실행하기 위하여 스토리지(150)로부터 컴퓨터 프로그램(151)을 로드할 수 있다. 메모리(120)에 컴퓨터 프로그램(151)이 로드되면, 프로세서(110)는 컴퓨터 프로그램(151)을 구성하는 하나 이상의 인스트럭션들을 실행함으로써 상기 방법/동작을 수행할 수 있다. 메모리(120)는 RAM과 같은 휘발성 메모리로 구현될 수 있을 것이나, 본 개시의 기술적 범위가 이에 한정되는 것은 아니다.
버스(130)는 컴퓨팅 장치(100)의 구성 요소 간 통신 기능을 제공한다. 버스(130)는 주소 버스(address Bus), 데이터 버스(Data Bus) 및 제어 버스(Control Bus) 등 다양한 형태의 버스로 구현될 수 있다.
통신 인터페이스(140)는 컴퓨팅 장치(100)의 유무선 인터넷 통신을 지원한다. 또한, 통신 인터페이스(140)는 인터넷 통신 외의 다양한 통신 방식을 지원할 수도 있다. 이를 위해, 통신 인터페이스(140)는 본 발명의 기술 분야에 잘 알려진 통신 모듈을 포함하여 구성될 수 있다. 몇몇 실시예에서, 통신 인터페이스(140)는 생략될 수도 있다.
스토리지(150)는 컴퓨터 프로그램(151)을 비 임시적으로 저장할 수 있다. 컴퓨팅 장치(100)를 통해 자율주행 시스템을 위한 NDT 지도 데이터의 압축 프로세스를 수행하는 경우, 스토리지(150)는 자율주행 시스템을 위한 NDT 지도 데이터의 압축 프로세스를 제공하기 위하여 필요한 각종 정보를 저장할 수 있다.
스토리지(150)는 ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리 등과 같은 비휘발성 메모리, 하드 디스크, 착탈형 디스크, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터로 읽을 수 있는 기록 매체를 포함하여 구성될 수 있다.
컴퓨터 프로그램(151)은 메모리(120)에 로드될 때 프로세서(110)로 하여금 본 발명의 다양한 실시예에 따른 방법/동작을 수행하도록 하는 하나 이상의 인스트럭션들을 포함할 수 있다. 즉, 프로세서(110)는 상기 하나 이상의 인스트럭션들을 실행함으로써, 본 발명의 다양한 실시예에 따른 상기 방법/동작을 수행할 수 있다.
일 실시예에서, 컴퓨터 프로그램(151)은 소정의 지역에 대한 3차원 포인트 클라우드를 정규분포 집합으로 모델링함에 따라 생성된 NDT(Normal Distribution Transform) 지도 데이터에 포함된 평균 벡터 데이터를 가공하는 단계, NDT 지도 데이터에 포함된 평균 벡터 데이터를 가공하는 단계, NDT 지도 데이터에 포함된 공분산 행렬 데이터를 가공하는 단계 및 가공된 평균 벡터 및 가공된 공분산 행렬을 이용하여 압축된 NDT 지도 데이터를 생성하는 단계를 포함하는 NDT 지도 데이터의 압축 방법을 수행하도록 하는 하나 이상의 인스트럭션을 포함할 수 있다.
본 발명의 실시예와 관련하여 설명된 방법 또는 알고리즘의 단계들은 하드웨어로 직접 구현되거나, 하드웨어에 의해 실행되는 소프트웨어 모듈로 구현되거나, 또는 이들의 결합에 의해 구현될 수 있다. 소프트웨어 모듈은 RAM(Random Access Memory), ROM(Read Only Memory), EPROM(Erasable Programmable ROM), EEPROM(Electrically Erasable Programmable ROM), 플래시 메모리(Flash Memory), 하드 디스크, 착탈형 디스크, CD-ROM, 또는 본 발명이 속하는 기술 분야에서 잘 알려진 임의의 형태의 컴퓨터 판독가능 기록매체에 상주할 수도 있다.
본 발명의 구성 요소들은 하드웨어인 컴퓨터와 결합되어 실행되기 위해 프로그램(또는 애플리케이션)으로 구현되어 매체에 저장될 수 있다. 본 발명의 구성 요소들은 소프트웨어 프로그래밍 또는 소프트웨어 요소들로 실행될 수 있으며, 이와 유사하게, 실시 예는 데이터 구조, 프로세스들, 루틴들 또는 다른 프로그래밍 구성들의 조합으로 구현되는 다양한 알고리즘을 포함하여, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다. 기능적인 측면들은 하나 이상의 프로세서들에서 실행되는 알고리즘으로 구현될 수 있다. 이하, 도 3 내지 6을 참조하여, 컴퓨팅 장치(100)가 수행하는 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법에 대해 설명하도록 한다.
도 3은 본 발명의 또 다른 실시예에 따른 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법의 순서도이다.
도 3을 참조하면, S110 단계에서, 컴퓨팅 장치(100)는 소정의 지역에 대한 NDT 지도 데이터를 생성할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 소정의 지역에 대한 3차원 포인트 클라우드를 NDT 기술을 기반으로 정규분포 집합으로 모델링함에 따라 NDT 지도 데이터를 생성할 수 있다.
보다 구체적으로, 먼저, 컴퓨팅 장치(100)는 소정의 지역 내에 위치하거나, 소정의 지역 내를 주행하는 자율주행 차량(10)에 구비된 센서(예: 라이다, 레이더 및 카메라 등)를 통해 측정된 3차원 포인트 클라우드를 수집할 수 있고, 수집된 3차원 포인트 클라우드를 격자화 함에 따라 복수의 3차원 격자공간을 생성 즉, 3차원 포인트 클라우드를 소정의 크기의 격자공간 단위로 분할할 수 있다.
이때, 복수의 3차원 격자공간은 일 실시예로 동일한 크기의 정육면체 형상(예: 10cm x 10cm x 10cm 또는 2cm x 2cm x 2cm 등)을 가질 수 있으나, 이에 한정되지 않는다. 다양한 실시예로서 복수의 3차원 격자공간은 직육면체 형상 등을 가질 수 있다.
이후, 컴퓨팅 장치(100)는 복수의 3차원 격자 공간을 정규분포 집합으로 모델링할 수 있다.
예를 들어, 먼저, 컴퓨팅 장치(100)는 복수의 3차원 격자 공간 각각을 정규분포로 모델링함으로써, 복수의 3차원 격자 공간 각각에 대응하는 복수의 정규분포를 생성할 수 있다.
이후, 컴퓨팅 장치(100)는 복수의 정규분포 각각의 위치 정보로서, 복수의 정규분포 각각에 포함된 포인트들의 평균 벡터를 산출할 수 있으며, 산출된 평균 벡터를 이용하여 평균 벡터 데이터를 생성할 수 있다. 여기서, 평균 벡터는 복수의 3차원 격자 공간 각각의 중심 위치에 대한 중심 벡터와 중심 위치로부터 이격된 정도를 가리키는 오프셋 벡터를 포함할 수 있으나, 이에 한정되지 않는다.
이후, 컴퓨팅 장치(100)는 복수의 정규분포 각각의 형태 및 방향에 관한 정보로서, 복수의 정규분포 각각에 포함된 포인트들의 공분산 행렬을 산출하고, 산출된 공분산 행렬을 이용하여 공분산 행렬 데이터를 생성할 수 있다. 그러나, 이에 한정되지 않는다.
이후, 컴퓨팅 장치(100)는 상기의 과정에 따라 생성된 평균 벡터 데이터와 공분산 행렬 데이터를 포함하는 NDT 지도 데이터를 생성할 수 있다.
여기서, 컴퓨팅 장치(100)는 소정의 지역에 대한 센서 데이터를 직접 수집하여 소정의 지역에 대한 NDT 지도 데이터를 직접 생성하는 것으로 설명하고 있으나, 이에 한정되지 않고, 외부의 다른 시스템을 통해 기 생성된 NDT 지도 데이터를 제공받아 이를 이용하는 형태로 구현될 수도 있다.
S120 단계에서, 컴퓨팅 장치(100)는 S110 단계를 거쳐 생성된 NDT 지도 데이터에 포함된 평균 벡터 데이터를 가공함으로써, 압축된 평균 벡터 데이터를 생성할 수 있다.
여기서, 평균 벡터의 경우, 3차원 벡터로서 3개의 값(μx, μy, μz)로 표현되는데, 복수의 3차원 격자공간 각각의 중심 위치의 좌표 값을 cx, cy 및 cz라고 하면, 평균 벡터는 하기의 수학식 1과 같이 표현이 가능하다.
<수학식 1>
여기서, i는 x, y 또는 z, μi는 평균 벡터의 i축 성분 값, ci는 중심 벡터의 i축 성분 값 및 di는 오프셋 벡터(3차원 격자공간의 중심 위치로부터 벗어난 정도를 나타내는 벡터)의 i축 성분 값을 의미할 수 있다.
따라서, 컴퓨팅 장치(100)는 중심 벡터와 오프셋 벡터 각각을 가공함으로써, 압축된 평균 벡터 데이터를 생성할 수 있다.
S130 단계에서, 컴퓨팅 장치(100)는 S110 단계를 거쳐 생성된 NDT 지도 데이터에 포함된 공분산 행렬 데이터를 가공함으로써, 압축된 공분산 행렬 데이터를 생성할 수 있다.
여기서, 각 공분산 행렬 데이터를 하나의 3차원 타원체에 대응시켜 표현할 수 있는데, 상기 3차원 타원체는 3개의 축방향에 따른 길이와 3개의 회전변환 각도로서 특정될 수 있고, 공분산 행렬은 대응되는 3차원 타원체의 3개의 길이 정보 및 3개의 회전변환 각도 정보를 포함할 수 있다. 여기서, 타원체의 축방향에 따른 길이 정보는 후술하는 바와 같이 표준편차를 의미할 수 있다. 따라서, 컴퓨팅 장치(100)는 공분산 행렬 데이터에 대응되는 3차원 타원체의 표준편차와 회전변환 각도 각각을 가공함으로써, 최종적으로 압축된 공분산 행렬 데이터를 생성할 수 있다.
또한, 여기서, 도 3에 도시된 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법은 평균 벡터 데이터에 대한 가공을 수행한 이후 공분산 행렬 데이터에 대한 가공을 수행하는 것으로 도시되어 있으나, 이는 평균 벡터 데이터를 가공하는 과정과 공분산 행렬 데이터를 가공하는 과정을 구분하기 위함일 뿐, 이에 한정되지 않고, 공분산 행렬 데이터에 대한 가공을 먼저 수행하거나, 평균 벡터 데이터와 공분산 행렬 데이터에 대한 가공을 동시에 수행할 수 있다. 이하, 도 4 내지 6을 참조하여, 압축된 평균 벡터 데이터를 생성하는 과정과 압축된 공분산 행렬 데이터를 생성하는 과정을 보다 구체적으로 설명하도록 한다.
도 4는 다양한 실시예에서, 평균 벡터 데이터를 가공하는 방법을 설명하기 위한 순서도이다.
도 4를 참조하면, S210 단계에서, 컴퓨팅 장치(100)는 평균 벡터 데이터에 포함된 중심 벡터의 표현 방식을 변환할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 중심 벡터를 트리 자료 구조의 형태로 변환할 수 있다. 여기서, 트리 자료 구조는 하나 이상의 노드를 포함하며, 하나 이상의 노드가 비선형적 계층 구조를 가지는 것을 의미할 수 있으나, 이에 한정되지 않는다.
일례로, 컴퓨팅 장치(100)는 중심 벡터를 팔진트리(octree) 형태로 변환할 수 있다. 예를 들어, 컴퓨팅 장치(100)는 깊이(depth)가 L인 팔진트리를 이용하여 중심 벡터(x, y, z 좌표 값)을 표현할 수 있다.
통상적으로 자율주행 시스템의 주행 영역의 환경은 지하부터 공중까지 물체들이 균일하게 분포되어 있는 것이 아니라, 지하나 공중 등의 대부분의 공간은 비어 있고, 지상 부분에 건물, 도로 및 나무 등의 지형지물들이 밀집해 있는 형상을 가진다. 따라서, 3차원 격자공간 각각의 중심 위치를 나타내는 중심 벡터를 표현함에 있어서, 중심 벡터의 각 성분(cx, cy 및 cz)을 각각 독립적으로 일정 크기(바이트)를 갖는 데이터(예컨대, 실수)로 표현하지 않고 트리 자료 구조(예: 팔진트리)로 표현함으로써 보다 효율적인 표현이 가능하다는 이점이 있다.
여기서, 벡터를 트리 자료 구조로 변환하는 방법은 다양한 기술들이 공지되어 있고, 이러한 공지 기술들 중 어느 하나를 선택적으로 적용할 수 있는 바, 본 명세서에서는 트리 자료 구조로 변환하는 구체적인 방법에 대해 서술/한정하지 않는다.
S220 단계에서, 컴퓨팅 장치(100)는 오프셋 벡터의 표현 방식을 변환할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 복수의 3차원 격자공간 각각의 한 변의 길이를 기준으로 제1 기준 범위를 설정할 수 있고, 복수의 3차원 격자공간 각각에 대한 오프셋 벡터를 제1 기준 범위 내의 값으로 변환할 수 있다.
여기서, 평균 벡터는 복수의 3차원 격자공간 각각에 포함된 포인트들을 이용하여 산출된 것인 바, 평균 벡터 역시 3차원 격자공간을 벗어날 수 없다. 이를 고려하여, 컴퓨팅 장치(100)는 3차원 격자공간의 길이를 고려하여 제1 기준 범위를 설정할 수 있고, 3차원 격자공간의 길이에 따라 설정된 제1 기준 범위 내의 값으로 오프셋 벡터를 변환할 수 있다. 예컨대 복수의 3차원 격자공간 각각의 한 변의 길이가 l인 정육면체라면, 하기의 수학식 2가 성립한다.
<수학식 2>
여기서, di는 오프셋 벡터(중심에서 벗어난 정도)의 i축 성분 값을 의미할 수 있다.
따라서, 컴퓨팅 장치(100)는 길이 l에 대한 di의 비율이 한정된 범위 내에 있음을 이용하여, 복수의 3차원 격자공간 각각에 대한 오프셋 벡터의 각 성분을 수학식 2에 따른 범위를 대응시켜, 내지 범위 내의 값으로 변환할 수 있다.
한편, 복수의 3차원 격자공간 각각이 직육면체라면, 하기의 수학식 3이 성립한다.
<수학식 3>
여기서, mi은 직육면체의 i축 방향의 길이, di는 오프셋 벡터의 i축 성분 값을 의미할 수 있다. 따라서, 컴퓨팅 장치(100)는 3차원 격자공간이 길이가 mi인 직육면체인 경우에도 정육면체인 경우와 마찬가지로 길이 mi에 대한 di의 비율이 한정된 범위 내에 있음을 이용하여, 복수의 3차원 격자공간 각각에 대한 오프셋 벡터의 각 성분을 수학식 3에 따른 범위를 대응시켜, 내지 범위 내의 값으로 변환할 수 있다.
3차원 격자공간을 구획하는 과정에서 격자공간의 한 변의 길이인 l(또는 mi)이 이미 획득되어 있기 때문에 길이 l(또는 mi)에 대한 오프셋 벡터의 비율만을 특정함으로써 오프셋 벡터를 특정할 수 있고, 오프셋 벡터가 수학식 2 또는 수학식 3에 따른 범위 내의 값이기 때문에 상기 비율이 -1/2 내지 1/2의 유한한 범위 내의 값을 가짐을 이용하여 작은 데이터를 이용해 신뢰가능한 압축을 수행할 수 있다. 예를 들어, 상기의 방법에 따라 오프셋 벡터의 비율을 1바이트(28)로 표현할 경우, 1/256%의 오차 내로 di를 표현할 수 있다.
S230 단계에서, 컴퓨팅 장치(100)는 S210 단계를 거쳐 가공된 평균 벡터 데이터의 중심 위치 좌표 값과 S220 단계를 거쳐 가공된 오프셋 벡터를 이용하여 압축된 평균 벡터 데이터를 생성할 수 있다.
통상적으로 3차원 평균 벡터는 3개의 실수(Real number)로 표현되며, 각 실수를 단정도(single-precision) 부동소수점으로 표현하게 되면 실수당 4바이트로 표현되는 바, 3차원 평균 벡터를 표현하기 위해서는 총 12바이트가 필요하다.
그에 반해, 상기와 같이 깊이가 L인 팔진트리를 이용하여 중심 벡터의 표현 방식을 변환할 경우, 중심 벡터를 표현하는데 필요한 데이터의 크기는 최선의 경우 3차원 격자공간당 약 1/7 바이트(byte)만이 필요하고, 최악의 경우라 하더라도 3차원 격자공간 당 약 L-ceil(log8n)+(1+1/7) 바이트만이 필요하다는 점에서 중심 벡터를 효과적으로 압축시킬 수 있다는 이점이 있다.
또한, 복수의 3차원 격자공간에 대한 오프셋 벡터를 표현함에 있어서, 오프셋 벡터에 대한 정확한 실수 값을 표현하기 위해 수 바이트를 사용하지 않고, 제1 기준 범위 내의 값을 1 바이트만으로 표현할 수 있다는 점에서, 0.5% 미만(1/256 %)의 오차로 오프셋 벡터를 효과적으로 압축시킬 수 있다는 이점이 있다.
도 5는 다양한 실시예에서, 공분산 행렬 데이터를 가공하는 방법을 설명하기 위한 순서도이다.
도 5를 참조하면, S310 단계에서, 컴퓨팅 장치(100)는 표준편차의 표현 방식을 변환할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 복수의 3차원 격자공간 내의 가장 긴 대각선의 길이를 기준으로 제2 기준 범위를 설정할 수 있고, 복수의 3차원 격자공간 각각에 대한 표준편차를 제2 기준 범위 내의 값으로 변환할 수 있다.
여기서, 표준편차는 복수의 3차원 격자공간 각각에 포함된 포인트들을 이용하여 산출된 것인 바, 표준편차 역시 3차원 격자공간을 벗어날 수 없고, 3차원 격자공간의 가장 긴 대각선의 절반 길이와 같거나 작다는 것을 반드시 만족한다. 이를 고려하여, 컴퓨팅 장치(100)는 3차원 격자공간의 가장 긴 대각선의 절반 길이를 이용하여 제2 기준 범위를 설정할 수 있고, 3차원 격자공간의 가장 긴 대각선의 절반 길이에 따라 설정된 제2 기준 범위 내의 값으로 표준편차를 변환할 수 있다.
일 실시예로, 공분산 행렬을 타원체(ellipsoid)로 표현하게 되면, 도 6에 도시된 바와 같이 각각의 축의 길이가 3개의 표준편차로 표현되고, 이 타원체를 회전시킴으로써 임의의 방향의 타원체를 모두 표현할 수 있다. 이때, 타원체의 회전을 통해서 방향을 임의로 설정할 수 있는 바, 하기의 수학식 4와 같은 조건을 설정하더라도 모든 타원체를 표현하는데 문제되지 않는다.
<수학식 4>
여기서, σ1는 공분산 행렬을 타원체로 표현하였을 때 가장 긴 축의 표준편차 값, σ2는 공분산 행렬을 타원체로 표현하였을 때 두번째로 긴 축의 표준편차 값 및 σ3는 공분산 행렬을 타원체로 표현하였을 때 가장 짧은 축의 표준편차 값을 의미할 수 있다.
여기서, 공분산 행렬은 복수의 3차원 격자공간 각각에 포함된 포인트들을 이용하여 산출된 것인 바, 가장 긴 축의 표준편차 값인 σ1는 3차원 격자공간 내의 가장 긴 대각선의 절반 길이와 같거나 작다는 것을 반드시 만족하게 된다. 따라서, 일 실시예로, 복수의 3차원 격자공간 각각의 한 변의 길이가 l인 정육면체라면, 하기의 수학식 5가 성립된다.
<수학식 5>
이를 이용하면 σ1, σ2 및 σ3 각각은 하기의 수학식 6과 같이 표현이 가능하며, 이는 하기의 수학식 7을 만족시킨다.
<수학식 6>
<수학식 7>
따라서, 컴퓨팅 장치(100)는, l은 이미 알고 있는 값이므로 α, β, γ을 특정함으로써 표준편차(σ1, σ2, σ3)를 특정할 수 있고, α, β, γ가 0 내지 1의 유한한 범위 내의 값을 가짐을 이용하여 작은 데이터를 이용해 신뢰가능한 압축을 수행할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 기 설정된 정합 성능에 기초하여 평균 벡터 데이터 및 공분산 행렬 데이터 각각에 대한 압축 정도를 설정하고, 설정된 압축 정도에 따라 평균 벡터 데이터 및 공분산 행렬 데이터를 가공하되, 동일한 정합 성능이 설정될 경우, 공분산 행렬 데이터의 압축 정도가 평균 벡터 데이터의 압축 정도보다 크거나 같도록 설정할 수 있다.
NDT 기반의 정합 기술에 있어서, 형태에 대한 값을 나타내는 표준편차는 회전변환 각도나 평균 벡터에 비해 정합 성능에 영향을 비교적 적게 끼치는 바, 평균 벡터나 회전변환 각도 대비 적극적인 근사(압축)가 가능하다. 따라서, 컴퓨팅 장치(100)는 동일한 정합 성능이 요구되더라도, 표준편차에 대하여 회전변환 각도나 평균 벡터 대비 더 적극적인 근사를 수행할 수 있다. 일례로, β, γ는 각 4비트를 이용해서 1/16 단위로 표현할 수 있고, α는 (통상적으로 사용되는 l의 값을 기준으로) 1바이트를 이용해서 1/256 단위로 표현할 수 있다.
S320 단계에서, 컴퓨팅 장치(100)는 회전변환 각도의 표현 방식을 변환할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 X축, Y축 및 Z축 각각에 대한 기준 회전 범위를 설정할 수 있고, 회전변환 각도를 기준 회전 범위 내의 값으로 변환할 수 있다. 일 예로, X축, Y축 및 Z축은 서로 직교하는 임의의 축일 수 있다.
복수의 정규분포 각각의 회전변환 각도는 3개의 값(θx, θy, θz)으로 표현되는데, x, y, z 각 축에 대한 회전변환을 Rx, Ry, Rz라 할 때, 일반적인 회전 변환은 하기의 수학식 8과 같이 표현될 수 있고, 각각의 회전 범위는 하기의 수학식 9를 만족할 수 있다.
<수학식 8>
<수학식 9>
따라서, 컴퓨팅 장치(100)는 방향에 대한 임의의 실수 값을 표현하는 것 대신, 상기의 수학식 9와 같은 유한한 범위 내의 값으로 필요한 정확도에 따라 표현을 할 수 있다.
S330 단계에서, 컴퓨팅 장치(100)는 S310 단계를 거쳐 가공된 공분산 행렬 데이터의 표준편차와 S320 단계를 거쳐 가공된 공분산 행렬 데이터의 회전변환 각도를 이용하여 압축된 공분산 행렬 데이터를 생성할 수 있다.
즉, 공분산 행렬 데이터는 하기의 수학식 10과 같이 표준편차 정보를 포함하는 행렬(D)과 회전변환 각도 정보를 포함하는 행렬(Q)의 곱으로 표현되는 바, 행렬(D)에 포함된 표준편차와 행렬(Q)에 포함된 회전변환 각도 각각을 압축함으로써, 결과적으로 공분산 행렬 데이터를 압축하는 것이다.
<수학식 10>
여기서, C는 공분산 행렬 데이터, Q는 회전변환 각도 정보를 포함하는 행렬, D는 표준편차 정보를 포함하는 행렬을 의미할 수 있다.
통상적으로 각 3차원 공분산 행렬 데이터는 3X3 대칭 행렬(symmetric matrix)이기 때문에 6개의 실수로 표현되며, 각 실수를 단정도(single-precision) 부동소수점으로 표현하게 되면 실수당 4바이트로 표현되는 바, 3차원 공분산 행렬 데이터를 표현하기 위해서는 총 24바이트가 필요하다.
그에 반해, 상기와 같이 공분산 행렬 데이터의 표준편차를 정확한 실수 값을 표현하기 위해 수 바이트를 사용하지 않고, 유한한 범위 내에서 필요한 정확도에 따라 제2 기준 범위 내의 값으로 더 적은 바이트, 예컨대 총 2 바이트(예: α 1바이트, β, γ 각각 4비트)만으로 표현함으로써, 표준편차를 효과적으로 압축시킬 수 있다는 이점이 있다.
또한, 방향에 대한 임의의 실수 값을 표현하는 것 대신, 유한한 범위 내의 값으로 필요한 정확도에 따라 표현 예를 들어, 8비트는 256개의 값을 표현할 수 있으므로 180도를 충분히 표현할 수 있는 바, 3개의 값(θx, θy, θz) 각각을 예컨대 8비트, 7비트, 9비트로 표현함에 따라 총 3바이트 만으로 표현함으로써, 회전변환 각도를 효과적으로 압축시킬 수 있다는 이점이 있다. 여기서 구체적 수치는 예시적인 것이므로, 본 발명이 이에 제한될 필요는 없다.
다시, 도 3을 참조하면, S140 단계에서, 컴퓨팅 장치(100)는 S120 단계를 거쳐 평균 벡터 데이터를 가공함에 따라 생성된 압축된 평균 벡터 데이터와 S130 단계를 거쳐 공분산 행렬 데이터를 가공함에 따라 생성된 압축된 공분산 행렬 데이터를 이용하여 압축된 NDT 지도를 생성할 수 있다.
즉, NDT 지도 데이터는 정규분포의 집합이고, 각 정규분포는 3차원 평균 벡터 및 3x3 공분산 행렬로 정의되며, 3차원 평균 벡터는 3개의 실수, 공분산 행렬은 6개의 실수로 표현됨에 따라 (단정도(single-precision) 부동소수점으로 표현하게 되면) 총 36바이트의 크기를 갖는데 반해, 본 발명의 다양한 실시예에 따른 NDT 지도 데이터의 압축 방법에 따라 생성되는 압축된 NDT 지도 데이터는 예컨대 약 10바이트의 크기를 갖는다는 점에서 획기적으로 NDT 지도 데이터의 크기를 감소시킬 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 NDT 지도 데이터에 포함된 복수의 객체 각각에 대한 빈도수를 산출하고, 산출된 빈도수에 기초하여 NDT 지도 데이터 상에 복수의 객체 각각에 대응되는 영역에 대한 평균 벡터 데이터 및 공분산 행렬 데이터의 압축 정도를 설정할 수 있고, 설정된 압축 정도에 따라 평균 벡터 데이터 및 공분산 행렬 데이터 각각을 가공할 수 있다.
통상적으로, 자율주행 시스템에서 활용되는 NDT 지도 데이터에 포함된 정규분포들은 임의의 정규분포가 아니라 특정한 경향성을 가진 정규분포들로 구성될 수 있다. 예를 들어, NDT 지도 데이터에 포함된 정규분포는 도로면을 표현하는 것과 건물, 나무 등과 같이 도로 주변의 지형지물들을 표현하는 것이 대다수를 차지한다.
공분산 행렬 데이터의 형태를 중심으로 분석해보면, 일반적으로 도로면이나 건물 표면의 경우 주로 납작한 원판 모양의 타원체 형상을 가지고, 나무나 전봇대 등은 기다란 럭비공 모양의 타원체 형상을 가지며, 그 외에 부분들은 다양한 모양의 타원체 형상을 가진다는 것을 알 수 있다.
또한, 정규분포들은 복수의 3차원 격자공간 각각에 포함된 포인트들을 이용하여 얻은 결과물이기 때문에, 평균 벡터 데이터와 공분산 행렬 데이터 간의 의존성(dependency) 및 공분산 행렬 데이터의 방향과 형태 사이의 의존성이 존재함을 알 수 있다.
즉, 공분산 행렬 데이터가 특정 값일 때 평균 벡터 데이터가 특정 값들을 가질 수 없거나 공분산 행렬 데이터가 특정 값일 때 평균 벡터 데이터가 특정 값을 갖는다는 등 불가능한 조합들이 존재하게 된다.
이를 고려하여, 컴퓨팅 장치(100)는 복수의 3차원 격자공간 각각에 대응되는 정규분포를 이산화(discretization)하여 복수의 객체 각각에 대한 빈도수를 통계적으로 산출하고, 산출한 빈도수에 기초하여 빈도수가 기준 값 이상인 객체에 대응되는 정규분포에 대한 압축 정도를 높게 설정함으로써 자주 나타나는 정규분포를 더 적극적으로 압축하여 더 적은 크기의 데이터로 표현되도록 하고, 빈도수가 기준 값 미만인 객체에 대응되는 정규분포에 대한 압축 정도를 상대적으로 낮게 설정함으로써 비교적 자주 나타나지 않는 정규분포에 대해서는 더 큰 크기의 데이터로 표현되도록 할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 NDT 지도 데이터에 포함된 복수의 객체 중 상호 인접한 위치에 배치되는 제1 객체와 제2 객체가 동일한 속성을 가지는 경우, 제1 객체와 제2 객체를 하나의 그룹으로 그룹화할 수 있고, 하나의 그룹으로 그룹화된 제1 객체와 제2 객체에 대한 정규분포 집합을 통합하여 하나의 평균 벡터 데이터 및 하나의 공분산 행렬 데이터를 생성할 수 있으며, 생성된 하나의 평균 벡터 데이터와 하나의 공분산 행렬 데이터를 가공할 수 있다.
통상적으로 NDT 지도 데이터에 포함된 복수의 정규분포들 중 상호 인접한 정규분포들 간에는 의존성을 가지는 경우가 많다. 예를 들어, 도로면 위에서는 이웃한 정규분포들이 대부분 납작한 원판 모양을 가지고 균일하게 배치되어 있고, 나무나 전봇대의 경우도 기둥을 표현하는 나란한 럭비공 형태의 정규분포들과 바닥을 표현하는 납작한 원판의 정규분포들이 서로 특정한 위치관계를 가지고 배치되어 있다. 따라서, 컴퓨팅 장치(100)는 이러한 점을 고려하여, 동일한 속성(예: 종류) 또는 특정 위치관계를 가지는 정규분포들을 묶어서 하나의 객체로 처리하여 가공함으로써, 보다 강력한 압축을 수행할 수 있다.
다양한 실시예에서, 컴퓨팅 장치(100)는 NDT 지도 데이터를 기 학습된 인공지능 모델의 입력으로 하여 압축된 NDT 지도 데이터를 추출할 수 있다.
여기서, 기 학습된 모델은 인코더 및 디코더를 포함하며, 복수의 압축된 NDT 지도 데이터를 학습 데이터로 하여 학습된 모델, 예를 들어, 오토인코더(autoencoder)일 수 있으나, 이에 한정되지 않는다.
오토인코더는 주어진 데이터를 작은 차원의 데이터인 코드(code)로 변환하는 인코더와, 코드를 이용해서 다시 주어진 데이터로 복원하는 디코더(decoder)로 구성되어 있으며, 수많은 학습 데이터를 학습함으로써 최적의 인코더, 디코더 쌍을 찾는 모델 즉, 수많은 학습 데이터를 학습하는 과정을 통해 자동적으로 통계적인 성질 즉, 전술한 바와 같은 정규집합들 간의 경향성 및/또는 의존성을 이용하여 최적의 인코딩 기법을 찾는 모델이다.
이에, 컴퓨팅 장치(100)는 복수의 압축된 NDT 지도 데이터 즉, 정규분포 또는 정규분포 집합을 설계한 크기의 코드를 학습 데이터로 하여 학습된 인공지능 모델을 통해 NDT 지도 데이터를 가공함으로써, 최적의 인코딩 기법에 따라 압축된 NDT 지도 데이터를 생성할 수 있다.
전술한 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법은 도면에 도시된 순서도를 참조하여 설명하였다. 간단한 설명을 위해 자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법은 일련의 블록들로 도시하여 설명하였으나, 본 발명은 상기 블록들의 순서에 한정되지 않고, 몇몇 블록들은 본 명세서에 도시되고 시술된 것과 상이한 순서로 수행되거나 또는 동시에 수행될 수 있다. 또한, 본 명세서 및 도면에 기재되지 않은 새로운 블록이 추가되거나, 일부 블록이 삭제 또는 변경된 상태로 수행될 수 있다.
이상, 첨부된 도면을 참조로 하여 본 발명의 실시예를 설명하였지만, 본 발명이 속하는 기술분야의 통상의 기술자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며, 제한적이 아닌 것으로 이해해야만 한다.
100 : 컴퓨팅 장치
200 : 사용자 단말
300 : 외부 서버
400 : 네트워크
200 : 사용자 단말
300 : 외부 서버
400 : 네트워크
Claims (15)
- 컴퓨팅 장치에 의해 수행되는, 소정의 지역에 대한 3차원 포인트 클라우드를 정규분포 집합으로 모델링함에 따라 생성된 NDT(Normal Distribution Transform) 지도 데이터의 압축 방법에 있어서,
상기 소정의 지역에 대한 3차원 포인트 클라우드를 격자화하여 복수의 3차원 격자공간을 생성하는 단계;
상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각에 포함된 포인트들의 평균 벡터를 산출하고, 상기 산출된 평균 벡터를 포함하는 평균 벡터 데이터를 생성하는 단계;
상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각에 포함된 포인트들의 공분산 행렬을 산출하고, 상기 산출된 공분산 행렬을 포함하는 공분산 행렬 데이터를 생성하는 단계;
상기 생성된 평균 벡터 데이터 및 상기 생성된 공분산 행렬 데이터를 이용하여 상기 소정의 지역에 대한 NDT 지도 데이터를 생성하는 단계;
상기 생성된 NDT 지도 데이터에 포함된 평균 벡터 데이터를 가공하는 단계;
상기 생성된 NDT 지도 데이터에 포함된 공분산 행렬 데이터를 가공하는 단계; 및
상기 가공된 평균 벡터 데이터 및 상기 가공된 공분산 행렬 데이터를 이용하여 압축된 NDT 지도 데이터를 생성하는 단계를 포함하며,
상기 생성된 평균 벡터 데이터는 상기 생성된 복수의 3차원 격자공간 각각의 중심 위치에 대한 중심 벡터 및 상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각이 상기 중심 위치로부터 이격된 정도를 가리키는 오프셋 벡터를 포함하고,
상기 생성된 공분산 행렬 데이터는 상기 생성된 복수의 3차원 격자공간 각각에 포함된 포인트들의 표준편차 및 상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각의 x, y 및 z축에 대한 회전변환 각도를 포함하는 회전변환 각도 정보를 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 삭제
- 제1항에 있어서,
상기 평균 벡터 데이터를 가공하는 단계는,
상기 중심 벡터의 표현 방식을 변환하는 단계;
상기 오프셋 벡터의 표현 방식을 변환하는 단계; 및
상기 변환된 중심 벡터와 상기 변환된 오프셋 벡터를 이용하여 압축된 평균 벡터 데이터를 생성하는 단계를 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 제3항에 있어서,
상기 중심 벡터의 표현 방식을 변환하는 단계는,
상기 중심 벡터를 트리 자료 구조의 형태로 변환하되, 상기 트리 자료 구조는 하나 이상의 노드를 포함하며, 상기 하나 이상의 노드가 비선형적 계층 구조를 가지는 것인, 단계를 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 제3항에 있어서,
상기 오프셋 벡터의 표현 방식을 변환하는 단계는,
상기 생성된 복수의 3차원 격자공간 각각의 어느 한 변의 길이를 기준으로 제1 기준 범위를 설정하는 단계; 및
상기 생성된 복수의 3차원 격자공간 각각에 대한 오프셋 벡터의 성분을 상기 설정된 제1 기준 범위 내의 값으로 변환하는 단계를 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 제1항에 있어서,
상기 공분산 행렬 데이터를 가공하는 단계는,
상기 표준편차의 표현 방식을 변환하는 단계;
상기 회전변환 각도 정보의 표현 방식을 변환하는 단계; 및
상기 변환된 표준편차 및 상기 변환된 회전변환 각도 정보를 이용하여 압축된 공분산 행렬 데이터를 생성하는 단계를 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 제6항에 있어서,
상기 표준편차의 표현 방식을 변환하는 단계는,
상기 생성된 복수의 3차원 격자공간 내의 대각선의 길이를 기준으로 제2 기준 범위를 설정하는 단계; 및
상기 생성된 복수의 3차원 격자공간 각각에 대한 표준편차를 상기 설정된 제2 기준 범위 내의 값으로 변환하는 단계를 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 제6항에 있어서,
상기 회전변환 각도 정보의 표현 방식을 변환하는 단계는,
X축, Y축 및 Z축 각각에 대한 기준 회전 범위를 설정하는 단계; 및
상기 회전변환 각도 정보를 상기 설정된 기준 회전 범위 내의 값으로 변환하는 단계를 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 제1항에 있어서,
기 설정된 정합 성능 - 상기 기 설정된 정합 성능은 NDT 지도 기반의 정합 기술에 있어서, 상기 소정의 지역에 대하여 생성된 NDT 지도 데이터와 상기 소정의 지역으로부터 실시간 수집되는 3차원 포인트 클라우드를 정합하기 위해 사전에 정의된 정합 수준임 - 에 기초하여 상기 평균 벡터 데이터 및 상기 공분산 행렬 데이터 각각에 대한 압축 정도를 설정하고, 상기 설정된 압축 정도에 따라 상기 평균 벡터 데이터 및 상기 공분산 행렬 데이터를 가공하되, 상기 평균 벡터 데이터와 상기 공분산 행렬 데이터에 대하여 상기 기 설정된 정합 성능이 동일한 경우, 상기 공분산 행렬 데이터의 압축 정도가 상기 평균 벡터 데이터의 압축 정도보다 크거나 같도록 설정되는 것인, 단계를 더 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 제1항에 있어서,
상기 NDT 지도 데이터에 포함된 복수의 객체 각각에 대한 빈도수를 산출하고, 상기 산출된 빈도수에 기초하여, 상기 NDT 지도 데이터 상에 상기 복수의 객체 각각에 대응되는 영역에 대한 평균 벡터 데이터 및 공분산 행렬 데이터의 압축 정도를 설정하는 단계를 더 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 제1항에 있어서,
상기 NDT 지도 데이터에 포함된 복수의 객체 중 상호 인접한 위치에 배치되는 제1 객체와 제2 객체가 동일한 속성을 가지는 경우, 상기 제1 객체와 상기 제2 객체를 하나의 그룹으로 그룹화하는 단계를 더 포함하며,
상기 평균 벡터 데이터를 가공하는 단계는,
상기 하나의 그룹에 포함된 객체들의 평균 벡터 데이터들을 결합하여 하나의 평균 벡터 데이터를 생성하고, 생성된 하나의 평균 벡터 데이터를 가공하는 단계를 포함하고,
상기 공분산 행렬 데이터를 가공하는 단계는,
상기 하나의 그룹에 포함된 객체들의 공분산 행렬 데이터들을 결합하여 하나의 공분산 행렬 데이터를 생성하고, 생성된 하나의 공분산 행렬 데이터를 가공하는 단계를 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 제1항에 있어서,
상기 NDT 지도 데이터에 포함된 복수의 객체 중 사전에 설정된 위치관계를 가지는 둘 이상의 객체를 그룹화하는 단계를 더 포함하며,
상기 평균 벡터 데이터를 가공하는 단계는,
하나의 그룹에 포함된 객체들의 평균 벡터 데이터들을 결합하여 하나의 평균 벡터 데이터를 생성하고, 생성된 하나의 평균 벡터 데이터를 가공하는 단계를 포함하고,
상기 공분산 행렬 데이터를 가공하는 단계는,
하나의 그룹에 포함된 객체들의 공분산 행렬 데이터들을 결합하여 하나의 공분산 행렬 데이터를 생성하고, 생성된 하나의 공분산 행렬 데이터를 가공하는 단계를 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 제1항에 있어서,
상기 NDT 지도 데이터를 기 학습된 인공지능 모델의 입력으로 하여 상기 압축된 NDT 지도 데이터를 추출하되, 상기 기 학습된 인공지능 모델은 인코더 및 디코더를 포함하며, 복수의 압축된 NDT 지도 데이터를 학습 데이터로 하여 학습된 모델인, 단계를 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법. - 프로세서;
네트워크 인터페이스;
메모리; 및
상기 메모리에 로드(load) 되고, 상기 프로세서에 의해 실행되는 컴퓨터 프로그램을 포함하되,
상기 컴퓨터 프로그램은,
소정의 지역에 대한 3차원 포인트 클라우드를 격자화하여 복수의 3차원 격자공간을 생성하는 인스트럭션(instruction);
상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각에 포함된 포인트들의 평균 벡터를 산출하고, 상기 산출된 평균 벡터를 포함하는 평균 벡터 데이터를 생성하는 인스트럭션;
상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각에 포함된 포인트들의 공분산 행렬을 산출하고, 상기 산출된 공분산 행렬을 포함하는 공분산 행렬 데이터를 생성하는 인스트럭션;
상기 생성된 평균 벡터 데이터 및 상기 생성된 공분산 행렬 데이터를 이용하여 상기 소정의 지역에 대한 NDT(Normal Distribution Transform) 지도 데이터를 생성하는 인스트럭션;
상기 생성된 NDT 지도 데이터에 포함된 평균 벡터 데이터를 가공하는 인스트럭션;
상기 생성된 NDT 지도 데이터에 포함된 공분산 행렬 데이터를 가공하는 인스트럭션; 및
상기 가공된 평균 벡터 데이터 및 상기 가공된 공분산 행렬 데이터를 이용하여 압축된 NDT 지도 데이터를 생성하는 인스트럭션을 포함하며,
상기 생성된 평균 벡터 데이터는 상기 생성된 복수의 3차원 격자공간 각각의 중심 위치에 대한 중심 벡터 및 상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각이 상기 중심 위치로부터 이격된 정도를 가리키는 오프셋 벡터를 포함하고,
상기 생성된 공분산 행렬 데이터는 상기 생성된 복수의 3차원 격자공간 각각에 포함된 포인트들의 표준편차 및 상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각의 x, y 및 z축에 대한 회전변환 각도를 포함하는 회전변환 각도 정보를 포함하는,
자율주행 시스템을 위한 NDT 지도 데이터의 압축 방법을 수행하는 컴퓨팅 장치. - 컴퓨팅 장치와 결합되어,
소정의 지역에 대한 3차원 포인트 클라우드를 격자화하여 복수의 3차원 격자공간을 생성하는 단계;
상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각에 포함된 포인트들의 평균 벡터를 산출하고, 상기 산출된 평균 벡터를 포함하는 평균 벡터 데이터를 생성하는 단계;
상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각에 포함된 포인트들의 공분산 행렬을 산출하고, 상기 산출된 공분산 행렬을 포함하는 공분산 행렬 데이터를 생성하는 단계;
상기 생성된 평균 벡터 데이터 및 상기 생성된 공분산 행렬 데이터를 이용하여 상기 소정의 지역에 대한 NDT(Normal Distribution Transform) 지도 데이터를 생성하는 단계;
상기 생성된 NDT 지도 데이터에 포함된 평균 벡터 데이터를 가공하는 단계;
상기 생성된 NDT 지도 데이터에 포함된 공분산 행렬 데이터를 가공하는 단계; 및
상기 가공된 평균 벡터 데이터 및 상기 가공된 공분산 행렬 데이터를 이용하여 압축된 NDT 지도 데이터를 생성하는 단계를 포함하며,
상기 생성된 평균 벡터 데이터는 상기 생성된 복수의 3차원 격자공간 각각의 중심 위치에 대한 중심 벡터 및 상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각이 상기 중심 위치로부터 이격된 정도를 가리키는 오프셋 벡터를 포함하고,
상기 생성된 공분산 행렬 데이터는 상기 생성된 복수의 3차원 격자공간 각각에 포함된 포인트들의 표준편차 및 상기 생성된 복수의 3차원 격자공간 각각에 대응하는 복수의 정규분포 각각의 x, y 및 z축에 대한 회전변환 각도를 포함하는 회전변환 각도 정보를 포함하는 NDT 지도 데이터의 압축 방법을 실행시키기 위하여 컴퓨팅 장치로 판독 가능한 기록매체에 저장된, 컴퓨터프로그램.
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220025712A KR102503678B1 (ko) | 2022-02-28 | 2022-02-28 | 자율주행 시스템을 위한 ndt 지도 데이터의 압축 방법, 장치 및 컴퓨터프로그램 |
EP22209232.2A EP4236323A1 (en) | 2022-02-28 | 2022-11-23 | Method, apparatus and computer program for compressing ndt map data for autonomous driving system |
US18/058,647 US20230273311A1 (en) | 2022-02-28 | 2022-11-23 | Method, apparatus and computer program for compressing ndt map data for autonomous driving system |
CN202211486076.0A CN116662463A (zh) | 2022-02-28 | 2022-11-24 | Ndt地图数据的压缩方法、装置及计算机程序 |
JP2022187490A JP7407473B2 (ja) | 2022-02-28 | 2022-11-24 | 自律走行システムのためのndt地図データの圧縮方法、装置およびコンピュータプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220025712A KR102503678B1 (ko) | 2022-02-28 | 2022-02-28 | 자율주행 시스템을 위한 ndt 지도 데이터의 압축 방법, 장치 및 컴퓨터프로그램 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102503678B1 true KR102503678B1 (ko) | 2023-02-24 |
Family
ID=84361748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220025712A KR102503678B1 (ko) | 2022-02-28 | 2022-02-28 | 자율주행 시스템을 위한 ndt 지도 데이터의 압축 방법, 장치 및 컴퓨터프로그램 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20230273311A1 (ko) |
EP (1) | EP4236323A1 (ko) |
JP (1) | JP7407473B2 (ko) |
KR (1) | KR102503678B1 (ko) |
CN (1) | CN116662463A (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118314221B (zh) * | 2024-06-07 | 2024-08-20 | 安徽全采智能科技有限公司 | 一种道路交通的雷视一体机标定及拼接方法 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100540899B1 (ko) * | 2004-04-29 | 2006-01-11 | 주식회사 엔지스테크널러지 | 지리 정보 데이터를 압축하는 방법 |
KR20210096285A (ko) * | 2018-12-13 | 2021-08-04 | 삼성전자주식회사 | 3차원 메쉬 컨텐트를 압축하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 |
KR20210119524A (ko) * | 2019-03-19 | 2021-10-05 | 소니그룹주식회사 | 포인트 클라우드 기하형상 패딩 |
KR20220002106A (ko) * | 2020-06-30 | 2022-01-06 | 한국전자통신연구원 | 3차원 포인트 클라우드의 점유 지도 압축 방법 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4230132B2 (ja) * | 2001-05-01 | 2009-02-25 | パナソニック株式会社 | デジタル地図の形状ベクトルの符号化方法と位置情報伝達方法とそれを実施する装置 |
JP2009055308A (ja) * | 2007-08-27 | 2009-03-12 | Xanavi Informatics Corp | ベクトルデータ伸張装置、及びベクトルデータ圧縮装置 |
CN103187978A (zh) * | 2011-12-30 | 2013-07-03 | 北京图盟科技有限公司 | 一种矢量地图数据压缩及解压缩的方法和装置 |
JP6647125B2 (ja) * | 2016-04-15 | 2020-02-14 | 株式会社日立産機システム | 位置同定システム |
IL246446B (en) * | 2016-06-23 | 2018-01-31 | Elbit Systems Ltd | Combined display of vector map and scan information |
US11506502B2 (en) * | 2019-07-12 | 2022-11-22 | Honda Motor Co., Ltd. | Robust localization |
-
2022
- 2022-02-28 KR KR1020220025712A patent/KR102503678B1/ko active IP Right Grant
- 2022-11-23 US US18/058,647 patent/US20230273311A1/en active Pending
- 2022-11-23 EP EP22209232.2A patent/EP4236323A1/en active Pending
- 2022-11-24 JP JP2022187490A patent/JP7407473B2/ja active Active
- 2022-11-24 CN CN202211486076.0A patent/CN116662463A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100540899B1 (ko) * | 2004-04-29 | 2006-01-11 | 주식회사 엔지스테크널러지 | 지리 정보 데이터를 압축하는 방법 |
KR20210096285A (ko) * | 2018-12-13 | 2021-08-04 | 삼성전자주식회사 | 3차원 메쉬 컨텐트를 압축하기 위한 방법, 장치 및 컴퓨터 판독 가능한 기록 매체 |
KR20210119524A (ko) * | 2019-03-19 | 2021-10-05 | 소니그룹주식회사 | 포인트 클라우드 기하형상 패딩 |
KR20220002106A (ko) * | 2020-06-30 | 2022-01-06 | 한국전자통신연구원 | 3차원 포인트 클라우드의 점유 지도 압축 방법 |
Also Published As
Publication number | Publication date |
---|---|
CN116662463A (zh) | 2023-08-29 |
US20230273311A1 (en) | 2023-08-31 |
JP2023126113A (ja) | 2023-09-07 |
EP4236323A1 (en) | 2023-08-30 |
JP7407473B2 (ja) | 2024-01-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110411464B (zh) | 三维点云地图生成方法、装置、设备及存储介质 | |
US10262451B1 (en) | View-dependent color compression | |
EP2947630A1 (en) | Method for compressing coordinate data | |
US9473785B2 (en) | Limited error raster compression | |
KR102503678B1 (ko) | 자율주행 시스템을 위한 ndt 지도 데이터의 압축 방법, 장치 및 컴퓨터프로그램 | |
CN114549671A (zh) | 一种网格编码方法及计算机系统 | |
CN111753038B (zh) | 一种地图数据的渲染方法及系统 | |
KR20090097057A (ko) | 메쉬 모델로 구현된 3차원 데이터의 연결정보를 부호화 및복호화 방법 | |
CN116628123A (zh) | 基于空间数据库的动态切片生成方法和系统 | |
CN109974716B (zh) | 地理位置匹配方法及装置、存储介质、服务器 | |
CN111898276A (zh) | 架空线路的模型处理方法、装置、计算机设备和介质 | |
Minu et al. | An efficient squirrel search algorithm based vector quantization for image compression in unmanned aerial vehicles | |
CN113124816B (zh) | 天线工参生成方法、装置、存储介质和计算机设备 | |
Meneghetti et al. | A Proper Orthogonal Decomposition approach for parameters reduction of Single Shot Detector networks | |
JP2024523816A (ja) | 3dマップを圧縮及び圧縮解除するための方法及び装置 | |
CN111382716A (zh) | 数值模式的天气预测方法、装置、计算机设备和存储介质 | |
Jang et al. | Progressive vector compression for high-accuracy vector map data | |
US20140254888A1 (en) | Method and apparatus for encoding assistance data in location technologies | |
KR102621781B1 (ko) | 포인트 클라우드 데이터에서의 지표면 데이터 추출 방법, 장치 및 컴퓨터프로그램 | |
CN116612287B (zh) | 图像识别方法、装置、计算机设备和存储介质 | |
CN113496550B (zh) | 一种dsm的计算方法、装置、计算机设备及存储介质 | |
CN117132738B (zh) | 一种球面离散格网多尺度等距模式量化方法和系统 | |
US12100306B2 (en) | Efficient computer-storage of obstacle data for rendering in a map view | |
US20230354258A1 (en) | Data processing method and apparatus | |
CN110019982B (zh) | 节点坐标的确定方法以及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AMND | Amendment | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |