KR20220071112A - 자율 주행을 위한 지도 생성 및 관리 방법 그리고 이를 이용한 위치 인식 방법 및 장치 - Google Patents
자율 주행을 위한 지도 생성 및 관리 방법 그리고 이를 이용한 위치 인식 방법 및 장치 Download PDFInfo
- Publication number
- KR20220071112A KR20220071112A KR1020210152332A KR20210152332A KR20220071112A KR 20220071112 A KR20220071112 A KR 20220071112A KR 1020210152332 A KR1020210152332 A KR 1020210152332A KR 20210152332 A KR20210152332 A KR 20210152332A KR 20220071112 A KR20220071112 A KR 20220071112A
- Authority
- KR
- South Korea
- Prior art keywords
- image
- map data
- information
- node
- spherical distance
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 122
- 230000011218 segmentation Effects 0.000 claims description 106
- 230000002194 synthesizing effect Effects 0.000 claims description 21
- 230000009466 transformation Effects 0.000 claims description 5
- 230000015572 biosynthetic process Effects 0.000 claims description 4
- 238000003786 synthesis reaction Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 24
- 238000012545 processing Methods 0.000 description 23
- 230000008569 process Effects 0.000 description 18
- 230000006870 function Effects 0.000 description 14
- 238000005457 optimization Methods 0.000 description 11
- 238000013523 data management Methods 0.000 description 10
- 238000007726 management method Methods 0.000 description 7
- 239000011159 matrix material Substances 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000013144 data compression Methods 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 238000007906 compression Methods 0.000 description 3
- 230000006835 compression Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000014509 gene expression Effects 0.000 description 2
- 238000007493 shaping process Methods 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 229910052704 radon Inorganic materials 0.000 description 1
- SYUHGPGVQRZVTB-UHFFFAOYSA-N radon atom Chemical compound [Rn] SYUHGPGVQRZVTB-UHFFFAOYSA-N 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Images
Classifications
-
- 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
-
- 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/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
- G01C21/165—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments
- G01C21/1656—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
-
- 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/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3807—Creation or updating of map data characterised by the type of data
- G01C21/3815—Road data
-
- 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/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3833—Creation or updating of map data characterised by the source of data
- G01C21/3841—Data obtained from two or more sources, e.g. probe vehicles
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Navigation (AREA)
- Instructional Devices (AREA)
Abstract
자율 주행을 위한 지도 생성 및 관리 방법 그리고 이를 이용한 위치 인식 방법 및 장치가 제공된다. 지도를 생성시, 3차원 공간에 대응하는 3차원 좌표 정보를 2차원 평면에 투영하여 구면 거리 영상을 획득하며, 구면 거리 영상에 대해 의미론적 분할을 수행하여 의미론적 분할 영상을 생성한다. 그리고 구면 거리 영상, 의미론적 분할 영상 그리고 차로의 속성 정보를 포함하는 지도 데이터가 생성된다.
Description
본 개시는 자율 주행에 관한 것으로, 더욱 상세하게 말하자면, 자율 주행을 위한 지도를 생성하고, 생성된 지도를 기반으로 위치를 인식하는 방법 및 장치에 관한 것이다.
자율 주행 차량의 운행을 위해서는 차량이 경로를 계획하고, 매순간의 주행방법(maneuver)을 결정하기 위해, 각 순간마다 정밀한 차량의 위치와 주변의 환경을 알아야 한다. 또한, 이를 위해서는 고정밀 지도와 이를 기반으로 하는 정확한 위치 인식 기술이 반드시 필요하다.
기존의 관련 방법으로는 다음과 같은 것들이 있다. 첫번째, 차로 수준 정밀도로 선의 집합으로 생성된 고해상도 지도(high definition (HD) map) 사용하는 방법이 있다. 이는 차선 인식 및 지도 비교를 통해 위치를 인식하며, 지도 생성시, 주로 점 구름(point cloud) 지도를 사용하여 수작업으로 차로 수준의 지도 데이터를 생성한다. 이에 따라 환경에 대한 모델링이 정확하지 않을 가능성이 상대적으로 높은 문제가 있다. 두번째, 점 구름이라고 하는 3차원 좌표 집합 자체를 지도로 사용하는 방법이 있다. 이 방법에서 ICP(Iterative Closest Point) 방법과 NDT(Normal Distribution Transform) 방법이 주로 사용된다. 이러한 방법은 가장 높은 정밀도를 얻을 수 있으나, 초기값에 민감하며, 고속도로 등의 풍부한 3차원 특징이 없는 상황에서는 위치 인식이 실패할 가능성이 높다. 더욱이, 3차원 점 구름을 저장하기 위해서는 매우 큰 저장 공간이 요구되며, 각 점들을 탐색 및 처리하는데 많은 연산이 요구되는 문제가 있다. 세번째는, 노면 패턴의 강도(intensity)를 기반으로 하는 방법이 있다. 이 방법은 차량의 움직임 및 도로의 형상을 2차원으로 제한함으로써 언덕길 등에서 정확도 저하가 발생하며, 동일한 바닥패턴이 반복되는 구간에서 안정성이 저하될 수 있다. 마지막으로, 노면과 수직인 도로 주변의 패턴을 기반으로 하는 방법으로, RoadDNA라고도 한다. 이 방법은, 3차원 포인트 클라우드에 비하여 저장공간을 절약할 수 있으나, 높이 정보와 노면 정보가 없어 정밀도가 낮아질 수 있다.
본 개시가 해결하고자 하는 과제는 하나의 영상으로 노면의 패턴, 도로 주변의 패턴 그리고 3차원 형상 정보를 형상화하여 지도 데이터를 생성하는 방법 및 장치를 제공하는 것이다.
또한, 본 개시가 해결하고자 하는 과제는 보다 적은 데이터 저장 공간을 사용하는 3차원 고정밀 지도를 생성하는 방법 및 장치를 제공하는 것이다.
또한, 본 개시가 해결하고자 하는 과제는 해당 지도를 이용하여 보다 정밀하게 위치를 인식하는 방법 및 장치를 제공하는 것이다.
본 개시의 일 실시 예에 따르면, 자율 주행을 위한 지도를 생성하는 방법이 제공된다. 상기 방법은, 3차원 공간에 대응하는 3차원 좌표 정보를 획득하는 단계; 상기 3차원 좌표 정보를 2차원 평면에 투영하여 구면 거리 영상을 획득하는 단계; 상기 구면 거리 영상에 대해 의미론적 분할을 수행하여 의미론적 분할 영상을 생성하는 단계; 및 상기 구면 거리 영상, 상기 의미론적 분할 영상 그리고 차로의 속성 정보를 포함하는 지도 데이터를 생성하는 단계를 포함한다.
일 구현 예에서, 상기 의미론적 분할 영상을 생성하는 단계는, 상기 구면 거리 영상에 대해 의미론적 분할을 수행하는 단계; 및 상기 의미론적 분할에 의해 획득된 영상에서 이동 물체를 제거하여, 도로 정보를 포함하는 상기 의미론적 분할 영상을 생성하는 단계를 포함할 수 있다. 이 경우, 상기 도로 정보는 노면의 패턴, 도로 패턴, 도로 주변의 패턴을 포함하는 분할 정보로 사용되며, 상기 차로의 속성 정보는 상기 의미론적 분할 영상에 포함된 상기 분할 정보를 이용하여 획득될 수 있다.
일 구현 예에서, 지도는 그래프 기반 구조로 이루어지고, 상기 그래프를 구성하는 노드별로 상기 지도 데이터가 매핑되며, 상기 노드 사이의 에지 정보는 자세 정보를 포함하며, 상기 자세 정보는 상기 구면 거리 영상의 기울기 또는 상기 의미론적 분할 영상의 기울기를 이용한 움직임 및 자세 추정의 결과일 수 있다.
일 구현 예에서, 상기 지도 데이터를 생성하는 단계는, 지도 데이터 생성 지점에 대응하는 노드의 지도 데이터를 생성한 상태에서, 상기 노드의 주변 노드의 지도 데이터를 획득하는 단계; 및 상기 노드의 지도 데이터와 상기 주변 노드의 지도 데이터를 합성하여 상기 노드에 대한 지도 데이터로 사용하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 지도 데이터를 합성하여 상기 노드에 대한 지도 데이터로 사용하는 단계는, 상기 노드의 구면 거리 영상과 상기 주변 노드의 구면 거리 영상을 합성하는 단계; 상기 노드의 의미론적 분할 영상과 상기 주변 노드의 의미론적 분할 영상을 합성하는 단계; 상기 합성된 의미론적 분할 영상을 기반으로 차로의 속성 정보를 생성하는 단계; 및 상기 합성된 구면 거리 영상, 상기 합성된 의미론적 분할 영상 그리고 상기 차로의 속성 정보를 포함하는 데이터를 상기 노드에 대한 지도 데이터로 사용하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 구면 거리 영상을 합성하는 단계는 각 화소별로 누적되는 값 중에서 중간 값을 선택하는 방식을 기반으로 합성된 구면 거리 영상을 획득할 수 있다. 이 경우, 상기 의미론적 분할 영상을 합성하는 단계는 각 화소별로 누적되는 값 중에서 가장 많은 분포를 가지는 값을 선택하는 방식을 기반으로 합성된 의미론적 분할 영상을 획득할 수 있다.
일 구현 예에서, 상기 구면 거리 영상의 합성과 상기 의미론적 분할 영상의 합성시, 상기 노드의 영상과 상기 주변 노드의 영상을 상기 노드를 기준으로 좌표 변환하고, 화소별로 상기 노드의 영상의 대응하는 화소의 값과 상기 주변 노드의 영상의 대응하는 화소의 값을 누적하여 저장하며, 화소별로 누적된 값들 중에서 하나를 선택하는 것에 의해, 2차원 영상 데이터를 획득하고, 상기 2차원 영상 데이터의 화소별로, 주변 화소의 값과 해당 화소의 값을 비교한 결과를 기반으로 해당 화소의 최종 값을 선택하는 방식으로, 상기 합성이 수행될 수 있다.
일 구현 예에서, 상기 방법은, 상기 지도 데이터를 압축하는 단계를 더 포함할 수 있다. 이 경우, 상기 압축하는 단계는 각 화소별로 상기 구면 거리 영상과 상기 의미론적 분할 영상을 하나의 영상으로 합쳐서 저장하며, 설정 비트로 이루어지는 화소에 대해, 상기 설정 비트 중 제1 비트에 상기 구면 거리 영상의 거리 정보를 위치시키고, 상기 설정 비트 중 제2 비트에 상기 의미론적 분할 영상의 분할 정보를 위치시킬 수 있다.
일 구현 예에서, 상기 압축하는 단계는, 상기 구면 거리 영상과 상기 의미론적 분할 영상을 압축하는 단계; 상기 압축된 구면 거리 영상의 거리 정보를 양자화하고, 상기 양자화된 거리 정보를 화소의 설정 비트 중 상위 비트에 위치시키는 단계; 및 상기 압축된 의미론적 분할 영상의 분할 정보를 양자화하고, 상기 양자화된 분할 정보를 화소의 설정 비트 중 하위 비트에 위치시키는 단계를 포함할 수 있다.
일 구현 예에서, 상기 방법은 상기 지도 데이터를 등록하는 단계를 더 포함할 수 있다. 이 경우, 상기 등록하는 단계는, 상기 생성된 지도 데이터의 주변 좌표에 기존 지도 데이터가 없는 경우에 상기 생성된 지도 데이터를 신규 지도 데이터로 등록하는 단계; 및 상기 생성된 지도 데이터의 주변 좌표에 기존 지도 데이터가 있는 경우에, 상기 생성된 지도 데이터를 기반으로 상기 기존 지도 데이터를 업데이트하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 업데이트하는 단계는, 상기 생성된 지도 데이터를 시간 정보와 함께 추가 지도 데이터로 저장하는 동작을 반복 수행하는 단계; 및 상기 저장된 추가 지도 데이터를 비교하여 설정 시간 동안 서로 상이한 변경 사항이 유지되는 경우에, 상기 추가 지도 데이터를 기반으로 상기 기존 지도 데이터를 업데이트하는 단계를 포함할 수 있다.
일 구현 예에서, 상기 방법은, 상기 지도를 구성하는 그래프를 최적화하는 단계를 더 포함할 수 있다. 상기 최적화하는 단계는 각 노드별로 GPS 데이터를 획득하는 경우 상기 GPS 데이터를 가지는 GPS 노드를 해당 노드에 연결시키고, 상기 그래프에서 루프 폐쇄가 검출되는 경우 대응하는 노드들을 서로 연결시키며, 자세 정보를 사용한 각 노드에 포함되어 있는 차로의 속성 정보를 결합할 수 있다.
본 개시의 다른 실시 예에 따르면, 자율 주행을 위한 지도를 기반으로 위치를 인식하는 방법이 제공된다. 상기 방법은, 현재 노드에서 센서로부터 입력되는 데이터를 기반으로 구면 거리 영상을 획득하고, 상기 구면 거리 영상으로부터 의미론적 분할 영상을 생성하는 단계; GPS 데이터 또는 이전 주행 경로를 기반으로 초기 위치를 획득하는 단계; 상기 초기 위치를 기반으로 상기 지도로부터 지도 데이터를 검색하는 단계; 및 상기 검색된 지도 데이터를 기반으로 현재 위치를 획득하는 단계를 포함하며, 상기 지도의 지도 데이터는 구면 거리 영상, 의미론적 분할 영상 그리고 차로의 속성 정보를 포함한다.
일 구현 예에서, 상기 지도는 그래프 기반 구조로 이루어지고, 상기 그래프를 구성하는 노드별로 상기 지도 데이터가 매핑되며, 상기 노드 사이의 에지 정보는 자세 정보를 포함하며, 상기 자세 정보는 상기 구면 거리 영상의 기울기 또는 상기 의미론적 분할 영상의 기울기를 이용한 움직임 및 자세 추정의 결과일 수 있다.
일 구현 예에서, 상기 현재 위치를 획득하는 단계는, 상기 검색된 지도 데이터에 대한 현재 노드의 자세 정보를 추정하고, 상기 추정된 자세 정보와 상기 현재 노드의 움직임에 따른 자세 정보가 설정 조건을 만족하는 경우에, 상기 지도 데이터를 이용하여 상기 현재 위치를 획득하며, 상기 현재 노드에 GPS 데이터가 있는 경우에 상기 GPS 데이터를 추가적으로 이용하여 상기 현재 위치를 획득할 수 있다.
본 개시의 또 다른 실시 예에 따르면, 위치를 인식하는 장치가 제공된다. 상기 장치는, 인터페이스 장치; 및 상기 인터페이스 장치에 연결되어 위치 인식을 수행하도록 구성된 프로세서를 포함하며, 상기 프로세서는 상기 인터페이스 장치를 통해 입력되는 3차원 공간에 대응하는 3차원 좌표 정보를 2차원 평면에 투영하여 구면 거리 영상을 획득하는 동작; 상기 구면 거리 영상에 대해 의미론적 분할을 수행하여 의미론적 분할 영상을 생성하는 동작; GPS 데이터 또는 이전 주행 경로를 기반으로 초기 위치를 획득하는 동작; 상기 초기 위치를 기반으로 지도로부터 지도 데이터를 검색하는 동작; 및 상기 검색된 지도 데이터를 기반으로 현재 위치를 획득하는 동작을 수행하도록 구성되며, 상기 지도의 지도 데이터는 구면 거리 영상, 의미론적 분할 영상 그리고 차로의 속성 정보를 포함한다.
일 구현 예에서, 상기 지도는 그래프 기반 구조로 이루어지고, 상기 그래프를 구성하는 노드별로 상기 지도 데이터가 매핑되며, 상기 노드 사이의 에지 정보는 자세 정보를 포함하며, 상기 자세 정보는 상기 구면 거리 영상의 기울기 또는 상기 의미론적 분할 영상의 기울기를 이용한 움직임 및 자세 추정의 결과일 수 있다.
일 구현 예에서, 상기 프로세서는 추가적으로, 상기 구면 거리 영상, 상기 의미론적 분할 영상 그리고 차로의 속성 정보를 포함하는 지도 데이터를 생성하는 동작을 수행하도록 구성되며, 상기 프로세서는, 상기 지도 데이터를 생성하는 동작 수행시, 지도 데이터 생성 지점에 대응하는 노드의 지도 데이터를 생성한 상태에서, 상기 노드의 주변 노드의 지도 데이터를 획득하는 동작; 상기 노드의 구면 거리 영상과 상기 주변 노드의 구면 거리 영상을 합성하는 동작; 상기 노드의 의미론적 분할 영상과 상기 주변 노드의 의미론적 분할 영상을 합성하는 동작; 상기 합성된 의미론적 분할 영상을 기반으로 차로의 속성 정보를 생성하는 동작; 및 상기 합성된 구면 거리 영상, 상기 합성된 의미론적 분할 영상 그리고 상기 차로의 속성 정보를 포함하는 데이터를 상기 노드에 대한 지도 데이터로 사용하는 동작을 수행하도록 구성될 수 있다.
일 구현 예에서, 상기 프로세서는 상기 의미론적 분할 영상을 생성하는 동작 수행시, 상기 구면 거리 영상에 대해 의미론적 분할을 수행하는 동작; 및 상기 의미론적 분할에 의해 획득된 영상에서 이동 물체를 제거하여, 도로 정보를 포함하는 상기 의미론적 분할 영상을 생성하는 동작을 수행하도록 구성될 수 있다. 이 경우, 상기 도로 정보는 노면의 패턴, 도로 패턴, 도로 주변의 패턴을 포함하는 분할 정보로 사용되며, 상기 차로의 속성 정보는 상기 의미론적 분할 영상에 포함된 상기 분할 정보를 이용하여 획득될 수 있다.
일 구현 예에서, 상기 지도 데이터는 압축되어 저장 관리되며, 압축시, 각 화소별로 상기 구면 거리 영상과 상기 의미론적 분할 영상을 하나의 영상으로 합쳐서 저장하며, 설정 비트로 이루어지는 화소에 대해, 상기 설정 비트 중 제1 비트에 상기 구면 거리 영상의 거리 정보가 위치되고, 상기 설정 비트 중 제2 비트에 상기 의미론적 분할 영상의 분할 정보가 위치될 수 있다.
실시 예들에 따르면, 하나의 영상으로 노면의 패턴, 도로 주변의 패턴 그리고 3차원 형상 정보를 형상화하여 지도 데이터를 생성할 수 있으므로, 적은 데이터 저장 공간을 사용하여 자율 주행 등을 위한 3차원 고정밀 지도를 제공할 수 있다. 특히, 3차원 공간에 대응하는 3차원 좌표 정보에 대응하는, 구형 평면에 거리 정보 및 의미론적 분할 정보가 투영된 영상과 차로의 속성 정보를 포함하는 지도 데이터를 생성 및 제공할 수 있다.
또한, 형상 정보(구면 거리 영상), 패턴 정보(의미론적 분할 영상) 및 차로의 속성 정보를 하나의 지도 데이터로 생성하고, 이를 기반으로 차량 등의 위치를 용이하게 인식할 수 있으며, 자동으로 생성 및 갱신할 수 있다.
또한, 지도 데이터를 그래프 기반의 노드별로 저장하므로, 생성 및 갱신 등의 관리가 유리하다.
도 1은 본 개시의 실시 예에 따른 3차원 지도를 나타낸 예시도이다.
도 2a 및 도 2b는 본 개시의 실시 예에 따른 노드의 지도 데이터를 나타낸 예시도이다.
도 3은 본 개시의 실시 예에 따른 자율 주행을 위한 지도를 생성하고 지도를 기반으로 위치를 인식하는 전체적인 과정을 나타낸 개념도이다.
도 4는 본 개시의 실시 예에 따른 구면 거리 영상을 획득하는 방법의 흐름도이다.
도 5는 본 개시의 실시 예에 따른 구좌표계를 나타낸 예시도이다.
도 6은 본 개시의 실시 예에 따른 구면 거리 영상을 나타낸 예시도이다.
도 7은 본 개시의 실시 예에 따른 의미론적 분할 영상을 획득하는 방법의 흐름도이다.
도 8은 본 개시의 실시 예에 따른 의미론적 분할 수행에 따른 결과를 나타낸 예시도이다.
도 9는 본 개시의 실시 예에 따른 움직임 및 자세 추정 방법의 흐름도이다.
도 10은 본 개시의 실시 예에 따른 위치 인식 방법의 흐름도이다.
도 11은 본 개시의 실시 예에 따른 자세 그래프를 나타낸 예시도이다.
도 12는 본 개시의 실시 예에 따른 지도 데이터 생성 방법의 흐름도이다.
도 13는 본 개시의 실시 예에 따른 지도 데이터 생성을 나타낸 예시도이다.
도 14는 본 개시의 실시 예에 따라 압축된 지도 데이터를 나타낸 예시도이다.
도 15는 본 개시의 실시 예에 따른 지도 데이터의 최적화를 나타낸 예시도이다.
도 16은 본 개시의 실시 예에 따른 위치 인식 장치의 구조를 나타낸 도이다.
도 17은 본 개시의 실시 예에 따른 지도 데이터 관리 장치의 구조를 나타낸 도이다.
도 18은 본 개시의 실시 예에 따른 방법을 구현하기 위한 컴퓨팅 장치를 설명하기 위한 구조도이다.
도 2a 및 도 2b는 본 개시의 실시 예에 따른 노드의 지도 데이터를 나타낸 예시도이다.
도 3은 본 개시의 실시 예에 따른 자율 주행을 위한 지도를 생성하고 지도를 기반으로 위치를 인식하는 전체적인 과정을 나타낸 개념도이다.
도 4는 본 개시의 실시 예에 따른 구면 거리 영상을 획득하는 방법의 흐름도이다.
도 5는 본 개시의 실시 예에 따른 구좌표계를 나타낸 예시도이다.
도 6은 본 개시의 실시 예에 따른 구면 거리 영상을 나타낸 예시도이다.
도 7은 본 개시의 실시 예에 따른 의미론적 분할 영상을 획득하는 방법의 흐름도이다.
도 8은 본 개시의 실시 예에 따른 의미론적 분할 수행에 따른 결과를 나타낸 예시도이다.
도 9는 본 개시의 실시 예에 따른 움직임 및 자세 추정 방법의 흐름도이다.
도 10은 본 개시의 실시 예에 따른 위치 인식 방법의 흐름도이다.
도 11은 본 개시의 실시 예에 따른 자세 그래프를 나타낸 예시도이다.
도 12는 본 개시의 실시 예에 따른 지도 데이터 생성 방법의 흐름도이다.
도 13는 본 개시의 실시 예에 따른 지도 데이터 생성을 나타낸 예시도이다.
도 14는 본 개시의 실시 예에 따라 압축된 지도 데이터를 나타낸 예시도이다.
도 15는 본 개시의 실시 예에 따른 지도 데이터의 최적화를 나타낸 예시도이다.
도 16은 본 개시의 실시 예에 따른 위치 인식 장치의 구조를 나타낸 도이다.
도 17은 본 개시의 실시 예에 따른 지도 데이터 관리 장치의 구조를 나타낸 도이다.
도 18은 본 개시의 실시 예에 따른 방법을 구현하기 위한 컴퓨팅 장치를 설명하기 위한 구조도이다.
아래에서는 첨부한 도면을 참고로 하여 본 개시의 실시 예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 단수로 기재된 표현은 "하나" 또는 "단일" 등의 명시적인 표현을 사용하지 않은 이상, 단수 또는 복수로 해석될 수 있다.
또한, 본 개시의 실시 예에서 사용되는 제1, 제2 등과 같이 서수를 포함하는 용어는 구성 요소들을 설명하는데 사용될 수 있지만, 구성 요소들은 용어들에 의해 한정되어서는 안 된다. 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 본 개시의 권리 범위를 벗어나지 않으면서 제1 구성 요소는 제2 구성 요소로 명명될 수 있고, 유사하게 제2 구성 요소도 제1 구성 요소로 명명될 수 있다.
이하, 도면을 참조하여 본 개시의 실시 예에 따른 자율 주행을 위한 지도를 생성하고 지도를 기반으로 위치를 인식하는 방법 및 장치에 대하여 설명한다.
도 1은 본 개시의 실시 예에 따른 3차원 지도를 나타낸 예시도이다.
본 개시의 실시 예에서, 자율 주행을 위해 획득되는 3차원 지도를 위한 지도 데이터는 도 1에 예시된 바와 같이, 노드(N) 기반의 그래프 구조로 이루어진다. 여기서는 노드 기반의 그래프 구조를 예를 들어, 포인트 클라우드(point cloud) 지도 위에 표현하였다. 그래프의 노드는 설정 간격마다 위치되며, 특히, 도 1에서와 같이, 교차로를 중심으로 설정 간격마다 생성될 수 있다. 각 노드 사이의 에지(edge) 정보는 노드 사이의 자세(pose) 정보이다.
도 1에 예시된 3차원 지도는 기존의 포인트 클라우드 지도이며, 3차원 형상을 표현하기 위해 수 많은 3차원 포인트들로 이루어진다. 경우에 따라, 포인트의 강도(intensity)와 같은 특징 정보가 각 포인트에 대한 정보에 포함될 수 있다. 이러한 포인트 클라우드 기반의 3차원 지도는 실제 환경을 세부적으로 묘사하여 정밀한 위치 인식이 가능하게 하지만, 데이터 크기가 매우 커서 저장, 관리 및 처리에 큰 어려움이 따른다.
본 개시의 실시 예에서는 각 노드의 지도 데이터는 구형 평면에 거리 정보 및 의미론적 분할 정보가 투영된 영상과 차로의 속성 정보를 포함한다.
도 2a 및 도 2b는 본 개시의 실시 예에 따른 노드의 지도 데이터를 나타낸 예시도이다.
하나의 노드를 중심으로 획득되는 영상과 차로 속정 정보를 형상화하면, 첨부한 도 2a에 예시되어 있는 바와 같다. 이러한 노드의 지도 데이터는 구면 거리 영상((spherical range image), 의미론적 분할(semantic segmentation) 영상, 그리고 차로의 속성 정보를 포함한다.
구면 거리 영상은 도 2b의 (a)에 예시된 바와 같이, 노드 주변의 3차원 포인트 대신에, 3차원 좌표 정보를 구형 평면에 투영하는 것에 의해 획득되는 영상이다. 이러한 구면 거리 영상은 거리 정보를 포함한다. 거리 정보는 예를 들어, 상이한 색상으로 표현될 수 있다.
의미론적 분할 영상은 구면 거리 영상을 의미론적 분할하여 획득되는 영상이다. 영상에서 분할하는 대상은 이동 물체와 도로 정보이며, 이동 물체는 차량, 사람 등을 포함하며, 도로 정보는 도로, 차선, 노면 등을 포함한다. 구면 거리 영상을 의미론적 분할한 다음에 해당 영상에서 이동 물체를 제거하면, 도 2b의 (b)에 예시된 바와 같이, 노면의 패턴, 도로 패턴, 도로 주변의 패턴을 포함하는 영상 즉, 의미론적 분할 영상이 획득된다. 여기서, 노면의 패턴, 도로 패턴, 도로 주변의 패턴을 포함하여, 의미론적 분할 정보라고 통칭할 수 있다.
본 개시의 실시 예에 따른 의미론적 분할 영상은 포인트의 강도 정보와는 달리, 적은 데이터로 텍스처(texture) 정보 및 의미 정보를 함께 표현할 수 있다.
차로의 속성 정보는 의미론적 분할 정보로부터 생성되는 차로의 속성을 나타내는 정보이다. 차로의 속성 정보는 의미론적 분할 정보로부터 획득되는 도로 정보와 차로에 관련된 다양한 부가 정보(예를 들어, 차선 제한 속도, 로드 마크, 등)를 이용하여 획득되며, 도 2b의 (c)에 예시된 바와 같이, 차선별로 제한 속도 등을 포함할 수 있다.
차로의 속성 정보는 차선의 색상 정보로부터 획득되는 정보를 포함할 수 있다. 예를 들어, 카메라로부터 획득되는 영상에서 차선 분할 화소에 대응하는 각 화소의 색상 정보를 계산하여, 차선의 색상 정보를 획득하고, 차선의 색상 정보로부터 지도 생성에 필요한 추가적인 차로 속성을 획득할 수 있다.
본 개시의 실시 예에서, 노드의 지도 데이터는 이러한 구면 거리 영상, 의미론적 분할 영상 그리고 차로의 속성 정보를 포함한다. 특히, 3차원 정보를 2차원 영상으로 표현함으로써 저장되는 데이터 크기가 감소되며, 매우 빠른 연산이 가능할 뿐만 아니라, 3차원 형상으로의 복원도 용이하다. 지도 데이터는 각 노드 별로 상호 독립적이며, 이에 따라 데이터의 검색, 수정 및 관리가 용이하다.
본 개시의 실시 예에서는 위와 같은 지도 데이터를 생성하고, 이를 기반으로 위치를 인식하며, 추가적으로 지도 데이터의 저장 및 최적화를 포함하는 데이터 관리를 수행한다.
도 3은 본 개시의 실시 예에 따른 자율 주행을 위한 지도를 생성하고 지도를 기반으로 위치를 인식하는 전체적인 과정을 나타낸 개념도이다.
본 개시의 실시 예에 따른 과정은 전체적으로 도 3에서와 같이, 위치 인식 부분과 지도 관리 부분으로 크게 나눠져서 수행될 수 있다. 위치 인식 부분에서 센서 데이터를 사용하여 위치 인식 또는 새로운 지도 데이터를 생성한다. 지도 관리 부분에서 지도 데이터 처리 및 최적화가 수행된다.
구체적으로, 위치 인식 부분에서, 예를 들어, 차량이 주행하면서 실시간으로 위치 인식 수행 또는 새로운 지도 데이터 생성이 수행된다. 먼저, LiDAR 또는 카메라 등의 센서로부터 수집되는 3차원 정보를 2차원 평면에 투영한 구면 거리 영상(Spherical Range Image SRI)를 생성하고(S10), 구면 거리 영상에 대해 의미론적 분할을 수행하여 의미론적 분할 영상을 획득한다(S11). 그리고, 구면 거리 영상과 의미론적 분할 영상을 이용하여 차량의 움직임을 추정한다(S12). 이후, 차량의 이동 경로, 이미 생성되어 있는 지도 데이터, 그리고 GPS(global positioning system) 정보를 기반으로 차량의 위치를 획득하는 위치 인식을 수행한다(S13).
위치 인식시, 현재 위치에서 지도 데이터가 없거나 오차가 큰 경우 신규 지도 데이터를 생성한다(S14). 신규 지도 데이터는 또한, 차량이 설정 지역 예를 들어, 교차로를 지나갈 때마다 또는 차량이 주행하면서 설정 간격마다 생성될 수 있다. 이러한 지도 데이터는 위에 기술된 바와 같이, 구면 거리 영상과, 의미론적 분할 영상 그리고 차로의 속성 정보를 포함한다.
지도 관리 부분에서, 위치 인식 부분에서 신규로 생성되는 지도 데이터가 등록된다(S20). 신규 지도 데이터 등록시, 신규 지도 데이터와 기존 지도 데이터를 비교하여 신규 등록 처리를 수행하거나 기존 지도 데이터의 갱신 처리를 수행한다(S21).
저장되는 지도 데이터의 정밀도를 향상하기 위해, 지도 데이터 내의 루프 폐쇄(loop closure)를 검출하고 자세 그래프 최적화를 수행하여(S22~S23), 각 노드의 정밀한 위치를 결정할 수 있다.
그리고, 각 노드에 포함된 차로의 속성 정보는 최적화된 노드의 위치 정보를 사용하여 업데이트될 수 있다(S24). 즉, 최적화된 노도의 위치와 위치를 상호 결합하여 차로 수준의 고해상도 지도 데이터를 갱신한다.
이러한 지도 관리 부분의 과정은 비실시간으로 수행될 수 있다. 또한, 여러 차량에게 지도 데이터를 제공하고 지도 데이터를 수집하기 위해서, 별도의 서버에서 수행되는 것으로 설계될 수 있다.
여기서는 차량의 위치를 인식하는 것을 예로 들어 설명하지만, 반드시 차량의 위치를 인식하는 것에 한정되는 것은 아니다.
다음에는 위에 기술된 바와 같은 각 과정의 구체적인 방법에 대해서 설명한다.
먼저, 구면 거리 영상을 획득하는 방법에 대해 설명한다.
도 4는 본 개시의 실시 예에 따른 구면 거리 영상을 획득하는 방법의 흐름도이다.
본 개시의 실시 예에서, 3차원 공간 정보에 대응하는 3차원 좌표 정보를 2차원 평면에 투영하여 구면 거리 영상을 획득한다. 특히, 본 개시의 실시 예에서는 차량 주변의 모든 방향에 대한 데이터 투영이 가능하도록, 3차원 좌표 정보를 구좌표계(Spherical coordinate system)를 사용하여 2차원 표면에 투영한다. 3차원 좌표 정보는 라이다(LiDAR) 또는 스테레오 카메라(stereo camera) 등의 3차원 공간 정보 취득이 가능한 센서로부터 수집될 수 있으며, 3차원 포인트 클라우드라고도 명명된다.
이를 위해, 3차원 좌표 정보를 획득하고(S100), 3차원 좌표 정보를 구좌표계로 변환한다(S110).
도 5는 본 개시의 실시 예에 따른 구좌표계를 나타낸 예시도이다.
도 5의 구좌표계를 기반으로, 직교 좌표(cartesian coordinate)상의 한 점 가 구좌표계 상의 한 점 으로 변환될 수 있으며(도 5의 (a) 참조), 이를 수식으로 나타내면 다음과 같다.
여기서, 은 거리(range or radial distance)를 나타내고, 는 방위각(azimuth)을 나타내며, 그리고 는 고도(altitude)를 나타낸다. 구 좌표계 상의 점을 2차원 표면에 투영한다(S120). 즉, 구 좌표계상의 한 점 m을 다음 수식을 사용하여 2차원 좌표계의 한 좌표(영상 좌표라고도 명명됨)로 변환한다.
여기서 , 는 각도와 화소 사이의 변환 비례 상수를 나타내며, 연산의 편의를 위해 로 정의될 수 있다. 본 개시의 실시 예에서는, 세로축의 좌표 를 구하기 위해 가 아닌 를 변수로 사용하는 것에 유의한다. 이에 따라, 위의 좌표 변환을 위한 수식(수학식 2)을 간략화할 수 있으며, 또한 가 큰 값의 해상도가 낮아지는 특성을 가진다. 이는 가까이 있는 바닥면이나 높은 건물 등 상대적으로 비중이 낮은 부분의 데이터를 축소하고 영상 데이터의 크기를 줄이는 역할을 한다.
이와 같이, 3차원 포인트 클라우드(3차원 좌표 정보)의 각 점을 위에 기술된 바와 같이 수학식 1 및 수학식 2를 통해 2차원 표면으로 투영시켜 구면 거리 영상을 생성한다(S130).
한편, 구면 거리 영상으로부터 3차원 좌표 정보로의 복원은 다음 역변환식으로부터 간단히 수행될 수 있다.
도 6은 본 개시의 실시 예에 따른 구면 거리 영상을 나타낸 예시도이다.
도 6의 (a)는 구면 거리 영상을 거리에 따라 표현한 영상이며, 여기서 거리에 따라 상이한 색상이 표시될 수 있다. 도 6의 (b)는 및 (c)는 구면 거리 영상에 대응하는 텍스처(texture)를 나타낸다. 구체적으로, 도 6의 (b)는 구면 거리 영상에 대응하는 라이다 센서의 반사되는 신호에 따른 강도(intensity)를 나타낸다. 도 6의 (c)는 구면 거리 영상에 대응하는 카메라 영상(예: 밝기)을 나타낸다.
이와 같이, 구면 거리 영상으로부터 거리 정보와 함께 강도, 밝기 등의 텍스처 정보를 함께 획득할 수 있다. 텍스처 정보는 기상, 조도 등의 영향에 따라 세기가 변화하고 더 많은 저장 공간이 필요한 약점을 갖는다.
본 개시의 실시 예에서는 구면 거리 영상으로부터 획득되는 텍스처 정보 대신에, 의미론적 분할 정보를 사용한다.
다음에는 의미론적 분할 영상을 획득하는 방법에 대해 설명한다.
도 7은 본 개시의 실시 예에 따른 의미론적 분할 영상을 획득하는 방법의 흐름도이다.
본 개시의 실시 예에서, 의미론적 분할은 영상에서 각 화소를 그것이 의미하는 정보의 단위로 분할하는 것이다. 영상의 밝기 정보가 몇 개의 대표적 의미 단위로 분할된다. 이에 따라 환경 변화에 강인하며, 매우 적은 데이터로 저장이 가능하다.
첨부한 도 7에서와 같이, 구면 거리 영상 및 이에 대응하는 텍스처 영상(예를 들어, 도 6의 (b)의 강도 영상)을 입력으로 사용한다(S200). 이러한 입력된 영상들을 이용하여 의미론적 분할을 수행한다(S210). 의미론적 분할 수행시, 심층 신경망(deep neural network)을 사용할 수 있다.
영상에서의 각 화소를 그것이 의미하는 정보의 단위 예를 들어, 이동 물체 정보 및 도로 정보로 분류하여, 의미론적 분할 영상을 획득한다(S220). 여기서, 이동 물체 정보는 차량, 보행자 같은 이동 물체를 나타내며, 도로 정보는 도로, 차선, 노면 표시 등을 나타낸다. 이동 물체 정보는 자율 주행시 장애물 처리에 활용되며, 그 외의 도로 정보는 텍스처 정보로 활용된다.
그리고, 단계(S220)에서 획득된 영상에서 이동 물체를 제거하여 최종적인 의미론적 분할 영상을 획득한다(S230).
도 8은 본 개시의 실시 예에 따른 의미론적 분할 수행에 따른 결과를 나타낸 예시도이다.
도 8의 (a)는 구면 거리 영상을 나타내며, 거리 정보에 따라 상이한 색상으로 표시되는 컬러 영상일 수 있다. 도 8의 (b)는 구면 거리 영상에 대응하는 라이다 센서의 반사되는 신호에 따른 강도(intensity) 영상 즉, 텍스처 영상을 나타낸다. 도 8의 (c)는 구면 거리 영상과 텍스처 영상을 입력으로 하면서 심층 신경망을 사용하여 의미론적 분할을 수행한 결과 영상을 나타낸다. 도 8의 (d)는 도 8의 (c)의 결과 영상에서 이동 물체(차량, 보행자 등)를 제거한 영상을 나타낸다. 여기서, 도로 정보만이 남게 되며, 이는 노면의 패턴, 도로 패턴, 도로 주변의 패턴의 정보로 사용될 수 있다.
이러한 지도 데이터를 기반으로 차량 등의 위치 인식이 수행된다.
먼저, 위치 인식을 위해, 움직임 및 자세 추정을 수행하는 방법에 대해 설명한다.
도 9는 본 개시의 실시 예에 따른 움직임 및 자세 추정 방법의 흐름도이다.
본 개시의 실시 예에서는 구면 거리 영상/의미론적 분할 영상을 이용하여 위치 인식을 수행한다.
지도를 생성하거나 위치를 인식하기 위한 중요한 요소는 차량의 움직이는 경로를 추정하는 움직임 추정(motion estimation)과 지도상의 랜드마크(landmark)로부터 차량의 자세를 추정(pose estimation) 하는 것이다. 연속된 시간에서 수집된 센서 데이터 사이에 발행하는 기하적 변화량을 추정하는 것을 움직임 추정이라고 한다. 서로 다른 센서 또는 서로 다른 시점에서 수집된 변화량을 추정하는 것을 자세 추정이라고 한다. 움직임 추정 및 자세 추정을 위해, 센서 사이의 변환된 거리 및 화전한 각도에 대한 파라미터를 추정(parameter estimation)하는 동일한 문제를 해결해야 한다.
본 개시의 실시 예에서는 구면 거리 영상을 사용하여 단일한 방법으로 자가 움직임 추정 및 지도 데이터 상의 자세를 추정하는 방법을 제공한다.
구체적으로, 구면 거리 영상(또는 의미론적 분할 영상)을 이용하여 자가 움직임 추정(ego-motion estimation) 및 자세 추정을 수행한다. 자가 움직임 추정을 위해, 이전 프레임과 현재 프레임 사이의 영상 변화로부터 얻어지는 움직임을 추정하며, 이를 위해 최적 파라미터를 구하는 방법이 사용될 수 있다.
자가 움직임 추정 및 지도 데이터 상의 자세 추정을 위해, 본 개시의 실시 예에서 추정해야 할 파라미터 는 3차원 공간 상의 이동() 및 회전()이며, 총 6개의 파라미터를 갖는 벡터이다. 설명의 편의상, 추정해야 할 파라미터는 변위에 대한 파라미터라고 명명할 수 있다.
예를 들어, 제1 영상(예: 이전 프레임)의 데이터 가 제2 영상(예: 현재 프레임)의 에 대응(correspondence)된다고 하면, 이는 변환 함수 를 사용하여 로 표현할 수 있고, 두 대응 사이의 잔차(residual)는 다음 수식으로 정의될 수 있다.
이 잔차의 제곱의 합이 최소가 되게 하는 파라미터 값을 구하는 것을 최소자승법(least square minimization)이라고 하며, 이를 수식으로 나타내면 다음과 같다.
이 식의 해를 구하기 위한 다양한 방법이 사용될 수 있다. 본 개시의 실시 예에서는 수렴이 빠르고 잡음에 강인한 M-estimation 방법을 사용하지만, 반드시 이에 한정되는 것은 아니다. M-estimation방법에서, 잡음을 효과적으로 처리하기 위하여 다음과 같이 손실 함수(loss function) 를 사용하여 잔차를 처리한다.
여기서, 는 변환 함수 의 자코비안(Jacobian) 행렬이며, 는 손실 함수의 미분과 잔차의 곱인 로 정의되는 가중치(weight) 행렬이다. 연산자 는 유클리드 공간(Euclidean space)에 대한 정규 합(normal addition) 연산을 나타내며, 지수 사상(exponential map)을 사용하여 계산된다. 손실 함수로는 Huber, Tukey, t-distribution 등이 있으며, 추정 오차가 커지는 영역의 값을 감쇄하는 기능을 한다.
이와 같이, 본 개시의 실시 예에 따르면 필요한 파라미터 추정은 구면 거리 영상의 변환 함수 및 자코비안을 구하는 것을 통해 해결된다.
위의 과정을 통해, 다음과 같이 비교적 간단한 형태의 최종 자코비안 행렬을 획득할 수 있다.
이렇게 자코비안 행렬을 구하면, 위의 수학식 (4), 수학식 (7) 및 수학식(11)을 사용하여 변위에 대한 파라미터를 계산할 수 있다. 한편, 이러한 본 개시의 실시 예에서, 각 화소의 값 로 거리 정보뿐만 아니라, 의미론적 분할 영상을 사용할 수 있다. 수학식 11에서의 첫 번째 항 을 구면 거리 영상의 기울기 대신에, 의미론적 분할 영상의 기울기로 대체할 수 있다.
의미론적 분할 영상 사용시, 별도의 처리가 수행될 수 있다. 의미론적 분할 영상은 각 화소에 대한 대표값을 갖는데, 영상 처리를 위해 적절한 값으로 치환하는 것이 필요하다. 분할 결과의 정밀도를 분석하여 이에 비례하는 값으로 치환하는 것이 정밀도 향상에 도움이 된다. 연산 속도 및 강인성(robustness) 향상을 위해 모든 화소의 값을 계산하는 것 보다는 중요한 화소 만을 선택하는 것이 바람직하다. 먼저 의미론적 분할 결과로부터 이동 물체에 대한 화소는 제거한다. 다음으로 영상의 기울기가 특정 임계치(threshold) 이상인 값을 선택하는데, 가로수의 잎사귀와 같이 높은 공간 주파수를 갖는 화소는 제외한다. 본 개시의 실시 예에서, 3차원 좌표를 처리하기 위한 팔진트리(octree)등의 기법이 필요 없어, 매우 고속으로 데이터 처리가 가능하여 최신의 CPU에서 5ms의 이내의 연산시간에서 0.6% 이하의 파라미터 추정 오차를 기대할 수 있는 매우 효율적인 방법이다.
위에 기술된 바와 같이, 본 개시의 실시 예에 따라, 도 9를 참조하면, 구면 거리 영상 또는 의미론적 분할 영상의 기울기를 획득한다(S300). 그리고 이러한 기울기를 이용하여 자코비안 행렬을 구하고(S310), 자코비안 행렬을 이용하여 위에 기술된 수식(수학식 (4), 수학식 (7) 및 수학식(11))을 기반으로 제1 영상(예: 이전 구면 거리 영상)과 제2 영상(예: 현재 구면 거리 영상) 사이의 잔차가 최소화되도록 하는 파라미터를 추정하여, 3차원 공간 상의 이동 및 회전에 따른 움직임 및 자세를 추정한다(S320). 이러한 추정 과정을 통해 획득된 움직임 및 자세 추정 결과를 설명의 편의상, 자세 정보라고 명명한다. 이후, 자세 정보를 이용하여 위치 인식이 이루어진다.
도 10은 본 개시의 실시 예에 따른 위치 인식 방법의 흐름도이다.
위치 인식시, 이미 생성된 각 노드의 지도 데이터와, 위의 추정 방법에 따라 센서 입력으로부터 획득되는 영상 데이터(구면 거리 영상, 의미론적 분할 영상)에 기반한 움직임 및 자세 추정 결과인 자세 정보 그리고 GPS 정보를 이용한다.
본 개시의 실시 예에서, 지도 그래프 기반으로, 자세 정보를 그래프로 표현한 자세 그래프(pose graph)는 도 11과 같다. 도 11은 본 개시의 실시 예에 따른 자세 그래프를 나타낸 예시도이다.
도 11을 참조하면, 자세 그래프에서, 차량이 주행함에 따라 각 시점에서 차량의 위치에 대응하는 노드(x1, x2, …x6) 사이의 에지 정보는 자세 정보( 1, 2, … 5,) 이다. 임의 노드에서 GPS 데이터가 입력될 수 있다. GPS 데이터가 있을 경우 GPS로부터 취득된 GPS 데이터(좌표 및 고도)를 에지로 갖는 GPS 노드(G1, G2)가 연결될 수 있다. 여기서 M1, 및 M2는 이미 생성된 지도 데이터의 노드를 나타낸다.
도 10을 참조하면, 차량이 주행함에 따라, 센서(LiDAR 또는 카메라 등)으로부터 획득되는 데이터로부터 현시점 즉, 현재 노드에 대한 영상 데이터 즉, 구면 거리 영상 및 의미론적 분할 영상을 획득한다(S400). 이때, 위에 기술된 방법(도 4 내지 도 6에 따른 방법 및 도 7과 도 8에 따른 방법)을 기반으로 구면 거리 영상 및 의미론적 분할 영상을 획득한다. 그리고 영상 데이터(구면 거리 영상 및 의미론적 분할 영상)를 이용하여 자세 정보를 획득한다.
센서 노드 즉, 현재 노드에서 GPS 데이터가 존재하는지를 확인하고, GPS 데이터가 존재하면 GPS 데이터로부터 획득되는 좌표 및 고도를 에지로 갖는 GPS 노드(이러한 노드를 단항 팩터(unary factor)라고도 함)를 현재 노드에 연결한다(S410). 예를 들어, 도 11에서와 같이, 현재 노드가 x1이라고 하면, GPS 데이터가 존재하는 경우, GPS 데이터를 에지로 갖는 GPS 노드 G1을 현재 노드 x1에 연결한다.
그리고, GPS 데이터 또는 이전 주행 경로를 기반으로 대략적인 현재 위치를 획득한다(S420). 획득된 위치를 기반으로 이미 생성되어 있는 지도 데이터를 검색하여 획득된 위치 주변의 지도 데이터를 찾아서 임시 버퍼에 저장한다(S430).
이후, 검색된 지도 데이터에 대한 현재 노드의 자세 정보를 추정한다(S440). 여기서 위에 기술된 추정 방법을 기반으로 움직임 및 자세 추정이 수행될 수 있다.
그리고 지도 데이터에 대해 추정된 자세 정보와 현재 노드의 움직임에 따른 자세 정보의 잔차를 임계값과 비교한다(S450). 예를 들어, 잔차의 합의 평균과 미리 설정된 임계값을 비교하고, 임계값보다 작은 경우에 해당 지도 데이터를 그래프에서 지도 노드로 연결한다(S460). 예를 들어, 도 11에서와 같이, 현재 노드가 x3라고 할 경우, 임계값보다 작은 경우에 대응하는 지도 데이터를 지도 노드 M1을 현재 노드 x3에 연결한다.
이후, GPS 데이터, 지도 데이터를 이용하여 정밀 위치를 획득한다(S470). 즉, 위에 기술된 바와 같이 노드 연결이 이루어지는 지도 그래프(예: 도 11의 자세 그래프)를 기반으로 정밀 위치를 결정한다. 이 경우, 지도 그래프에 대한 최적화가 이루어진 다음에 정밀 위치 결정이 이루어질 수 있다.
한편, 단계(S430)에서, 지도 데이터가 존재하지 않는 경우, 즉, 새로운 경로를 주행하는 경우에는, 도 11에서와 같이, 노드 x1 및 노드 x2와 같이, GPS 노드만이 추가되어 최적화된다.
따라서, 최적화된 그래프 상에서 영상 데이터, GPS 데이터 그리고 지도 데이터를 선택적으로 사용하여 위치 인식이 이루어진다.
센서 노드의 경우 노드들 사이의 오차는 매우 적지만 오차가 누적되어 점차 증가하는 문제가 있으며, GPS는 멀티패스 등의 영향으로 상황에 따라 큰 오차가 발생하기도 한다. 그러나 위에 기술된 바와 같이 그래프를 구성하는 경우, 센서 노드 오차의 증가를 효과적으로 억제하여 새로운 지도를 생성할 때 높은 정밀도로 전역 좌표를 유지할 수 있도록 한다.
다음에는 신규 지도 데이터를 생성하는 방법에 대해 설명한다.
도 12는 본 개시의 실시 예에 따른 지도 데이터 생성 방법의 흐름도이다.
위치 인식 과정에서 지도 노드가 연결되지 않았거나, 연결이 되었더라도 잔차 오차가 클 경우, 지도 데이터를 새로 생성하거나 업데이트할 필요가 있다. 신규 지도 데이터를 생성하는 지점은 루프 폐쇄 검출을 위해 우선적으로 교차로 지역으로 설정된다. 그리고 교차로 이외의 지역에서는 설정된 범위 마다 지도 데이터를 생성한다. 그러나 본 개시는 반드시 이에 한정되지 않는다.
첨부한 도 12에서와 같이, 센서(LiDAR 또는 카메라 등)으로부터 획득되는 데이터로부터 영상 데이터 즉, 구면 거리 영상 및 의미론적 분할 영상을 획득한다(S500). 이때, 위에 기술된 방법(도 4 내지 도 6에 따른 방법 및 도 7과 도 8에 따른 방법)을 기반으로 구면 거리 영상 및 의미론적 분할 영상을 획득한다.
획득된 영상을 기반으로 지도 데이터 생성 지점(예: 교차로)인지를 판단한다(S510). 예를 들어, 교차로 여부를 판단하기 위해서, 심층 신경망을 이용한 이진 판별기(binary classifier)를 사용할 수 있다. 이진 판별기의 입력으로 구면 거리 영상 및 의미론적 분할 영상을 사용할 수 있다.
지도 데이터 생성 지점인 교차로 이외의 지역에서는 설정 범위 마다 지도 데이터를 생성하기로 결정한다(S520). 예를 들어, 이전 지도 데이터가 생성된 후 0~60m 범위에서 이진 판별기의 신뢰도 점수(confidence score)가 가장 높은 지점을 지도 데이터 생성 지점으로 선정하여 신규 지도 데이터를 생성하기로 결정한다.
지도 데이터 생성 지점에서, 정밀도 향상을 위해 지도 데이터를 합성한다. 이를 위해, 먼저 지도 데이터 생성 지점에 대응하는 노드의 주변 노드들의 데이터에 대한 좌표 변환을 수행한다(S530).
도 13는 본 개시의 실시 예에 따른 지도 데이터 생성을 나타낸 예시도이다.
예를 들어, 도 13의 (a)에서, 노드 x3 가 지도 데이터 생성 지점으로 선택된 경우, 주변 노드들의 데이터를 노드 x3을 기준으로 하는 좌표 데이터로 변환한 후 합성한다. 좌표 변환은 각 노드의 에지 정보를 기반으로 수행된다.
좌표 변환된 데이터들을 기반으로 지도 데이터를 합성을 수행한다. 이때, 각 노드들(노드 x3과 그의 주변 노드들)의 구면 거리 영상들끼리 합성을 하고, 의미론적 분할 영상들끼리 합성을 한다.
구면 거리 영상 합성의 경우, 도 13의 (b)와 같이, 합성할 영상과 같은 크기의 볼륨(volume) 을 갖는 3차원 메모리를 사용한다. 각 노드의 데이터는 에지 정보로부터 노드 x3을 기준으로 하는 3차원 좌표로 변환하고, 구면 거리 영상 생성과 같은 방법으로 화소의 위치를 계산한 후(예를 들어, 구좌표계를 사용하여 2차원 표면에 투영하여 위치 획득), 계산된 위치에 대응하는 화소의 볼륨에 해당 값을 차례로 누적한다. 이렇게 볼륨 데이터의 초기화가 완료된다. 그다음, 도 13의 (c)에서와 같이, 각 개별 화소에 대입된 값들을 정렬(sort)하고, 예를 들어 설정 지점(예: 중간)에 위치한 값을 선택하여 2차원 영상 데이터를 생성한다. 여기서, 시간 중간값 필터(temporal median filter)를 사용하여 중간 위치의 값을 선택할 수 있다. 마지막으로, 도 13의 (d)에 예시된 바와 같이, 2차원 영상 데이터에서, 각 영상 화소 와 주변 화소 값을 함께 정렬하여 최대 값, 최소 값 및 중간 값을 구하고, 각 화소 값이 최대 값 또는 최소 값일 경우, 중간 값으로 대체하여 최종적으로 합성된 영상을 구한다 여기서, 적응 중간 값 필터(adaptive median filter)를 사용할 수 있다(S540).
한편, 의미론적 분할 영상의 합성시에도, 위에 기술된 바와 같은 구면 거리 영상 합성과 같은 방법으로 볼륨 데이터의 초기화를 수행한다. 그리고 중간값 필터를 사용하는 대신에, 화소에 대입된 값들 중에서 가장 많은 비중을 차지 하는 값(가장 많이 분포되어 있는 값)을 대표값으로 정의하는 보팅(voting) 방법을 사용하여 2차원 영상 데이터를 생성한다. 그리고 각 영상 화소 와 주변 화소 값을 함께 정렬하여 최대 값, 최소 값 및 중간 값을 구하고, 각 화소 값이 최대 값 또는 최소 값일 경우, 중간 값으로 대체하여 최종적으로 합성된 영상을 구한다.
그리고, 차로의 속성 정보를 획득한다. 자율 주행 차량이 주행하기 위해서는 위치 정보뿐만 아니라, 주행하고자 하는 차로의 속성 정보 역시 요구된다. 본 개시의 실시 예에서는 합성된 의미론적 분할 영상을 이용하여 차로의 속성 정보를 획득한다(S550). 합성된 의미론적 분할 영상은 높은 정밀도로 차선, 도로 경계, 노면 표시 정보를 구분하고 있으므로, 이를 이용하여 차로의 속성 정보를 쉽게 구할 수 있다. 일 예로, 합성된 의미론적 분할 영상에서, 차선 및 도로 경계 정보는 영상 화소를 허프(Hough) 변환 또는 라돈(Radon) 변환 등을 사용하여 선 정보로 변환하고, 이에 대응하는 3차원 좌표를 획득한다. 또한 속도 제한, 주행 방향 등의 노면 표시 정보는 심층 신경망 등의 기존의 분류 기술을 사용하여 분류할 수 있다. 이러한 과정을 통해, 차로의 속성 정보를 획득한다.
이와 같이, 합성된 구면 거리 영상, 합성된 의미론적 분할 영상 그리고 차로의 속성 정보를 포함하는 신규 지도 데이터가 최종적으로 생성된다(S560).
지도 데이터 생성 시점에서만 합성이 필요하기 때문에 지도 데이터를 생성하는 과정은 별도의 프로세스에서 동작되는 것이 바람직하며, 각 화소 데이터는 서로 독립적이기 때문에, 지도 데이터 생성은 현대의 다중 코어 CPU 또는 GPU를 사용하여 매우 효율적으로 구현될 수 있다.
한편, 이러한 지도 데이터의 효율적인 저장 및 관리를 위해, 지도 데이터 압축을 수행할 수 있다.
도 14는 본 개시의 실시 예에 따라 압축된 지도 데이터를 나타낸 예시도이다.
지도 데이터는 그래프의 각 노드별로, 구면 거리 영상, 의미론적 분할 영상, 차로의 속성 정보, 자세 정보를 포함하며, 그리고 지도 데이터를 생성한 시간, GPS 위치 정보(GPS 데이터) 등을 포함한다. 구면 거리 영상 및 의미론적 분할 영상이 데이터 저장 공간의 대부분을 차지한다. 이에 따라 이들 영상을 PNG(Portable Network Graphics), JPEG-LS(Joint Photographic Experts Group-LosSless), JPEG2000, FLIF(Free Lossless Image Format) 등의 무손실 영상 압축(lossless image compression) 방법을 사용하여 1차 압축한다. 예를 들어, 영상의 크기가 가로 세로 각각 2048 및 192일 때 FLIF 압축을 통해 약 200 kB 정도로 축소된다.
그리고 데이터의 크기를 좀더 줄이고, 효율적으로 관리하기 위해, 1차 압축된 두 영상을 하나의 영상으로 합쳐서 저장한다. 이를 위해, 각 화소별로 구면 거리 영상의 데이터와 의미론적 분할 영상의 데이터를 저장한다.
첨부한 도 14의 (a)에 예시된 바와 같이, 각 화소는 설정 비트(예: 16비트) 깊이를 갖도록 설정된다. 구면 거리 영상의 거리 정보는 센티 미터 단위로 양자화(quantization)하여 화소의 하위 비트에 위치시키고(범위(range) 데이터), 의미론적 분할 영상의 일부 정보를 양자화하여 상위 비트에 위치시킨다(의미론적 데이터).
구면 거리 영상의 거리 정보의 경우, 최대 160미터 거리에 대해 센티미터 정밀도를 가짐으로써 충분한 정밀도를 얻을 수 있다. 의미론적 분할 영상에서 차선, 노면표시, 도로 경계 등의 일부 정보(분할 정보)만 샘플링하고 양자화하여 화소의 상위 비트에 위치시킨다.
거리 정보의 데이터 변화량이 분할 정보에 비하여 현저히 높기 때문에 하위 비트에 놓는 것이 더 높은 압축 효율을 기대할 수 있다. 그러나 본 개시는 반드시 이에 한정되지 않는다.
위에 기술된 바와 같이 압축 처리되어 저장되는 구면 거리 영상의 거리 정보와 의미론적 분할 영상의 분할 정보는 간단한 비트 연산을 통해 원래의 영상으로 분리할 수 있다. 도 14의 (b) 내지 (d)에 분리된 영상의 예가 도시되어 있다. 도 14의 (b)는 도 14의 (a)와 같이 저장된 화소별 정보로부터 분리된 구면 거리 영상을 나타내며, 도 14의 (c)는 도 14의 (a)와 같이 저장된 화소별 정보로부터 분리된 의미론적 분할 영상을 나타낸다. 그리고 도 14의 (d)는 도 14의 (b)와 도 14의 (c)를 합성한 최종 결과를 나타낸다.
본 개시의 실시 예에서 제공되는 지도 데이터는 기존의 3차원 좌표로 표현하는 것에 비하여 1/100 이하로 축소되는 것을 기대할 수 있다. 실제 구현 예에서, 1km의 3차원 형상을 위해 10GB 정도의 3차원 포인트 데이터가 생성되며, 10cm 단위의 복셀(voxel)로 표현할 경우 약 500MB 이상의 저장 공간이 필요하다. 그러나 본 개시의 실시 예에 따르면, 5MB 이하의 크기로 더 높은 정밀도로 표현할 수 있었다. 일 예로, 대한 민국의 총 도로 길이는 약 11만km 이므로, 본 개시의 실시 예에 따른 방법을 사용할 경우, 약 500GB 크기로 모든 도로의 3차원 정밀 지도를 표현하는 것이 가능하며, 자율주행 차량이 모든 도로의 3차원 정밀 지도를 탑재하는 것이 가능하다.
이와 같이 압축 처리되는 지도 데이터가 등록되어 사용된다. 지도 데이터 관리 부분(도 2 참조)은 신규 지도 데이터를 받으면, 기존 지도 데이터와 비교하여 신규 지도 데이터로 등록하거나 또는 기존 지도 데이터를 업데이트할지를 판단할 수 있다. 일 예로, 수신된 신규 지도 데이터 주변 좌표에 기존의 지도 데이터가 없는 경우는 해당 신규 지도 데이터를 등록한다. 반면, 기존 지도 데이터가 있는 경우에는 바로 업데이트하지 않고, 일시적인 변경이나 측정 오차인지 판단하고 그 결과에 따라 업데이트를 선택적으로 수행할 수 있다. 이를 위해 기존 지도 데이터가 있는 경우 신규 지도 데이터를 추가 지도 데이터로 시간 정보와 함께 등록한다. 이후, 다른 장치(예: 다른 차량)에서 수집한 데이터가 수신되거나 동일한 경로를 주행하여 해당 지점의 지도 데이터를 반복하여 수신하는 경우, 앞서 시간 정보와 함께 등록된 추가된 지도 데이터들과 비교하여 설정 기간 동안 서로 상이한 변경 사항이 유지되는 상황일 때만 추가된 지도 데이터를 기반으로 기존 지도 데이터의 업데이트를 수행할 수 있다. 지도 데이터 비교는 자세 추정의 잔차를 사용할 수 있다. 또한, 추가 지도 데이터의 최대 개수를 제한하고, 오랫동안 사용되지 않은 데이터는 수시로 폐기하는 것이 바람직하다.
한편, 본 개시의 실시 예에 따른 획득되는 지도 데이터에 대한 최적화가 수행될 수 있다.
도 15는 본 개시의 실시 예에 따른 지도 데이터의 최적화를 나타낸 예시도이다.
본 개시의 실시 예에 따른 지도는 그래프 기반 구조로, 도 15에서와 같이, 자세 그래프 구조를 가진다. 이 경우, 도 15의 (a)에서와 같이, 그래프의 각 노드 및 에지를 생성한다. 구체적인 방법은 위에 설명된 방법을 참조할 수 있으며, 여기서는 상세한 설명을 생략한다. 그리고 GPS 위치 정보를 사용하여 GPS 노드(G)를 그래프에 연결한다. 이때, 노드 M3와 같이, 추가 지도 데이터를 사용하여 여러 개의 GPS 노드가 연결될 수 있다. 반복 주행시 GPS 정보에 대한 오차가 클 경우 GPS 노드를 추가할 수 있다. 이를 통해, 위치 정밀도를 현저히 높일 수 있다.
이러한 자세 그래프에서 정밀도를 높이는 가장 중요한 수단은 노드M2 및 노드 M7과 같은 루프 폐쇄(loop closure)를 검출하고 해당 노드를 연결한 후 그래프를 최적화하는 것이다. 차량의 주행에 있어서 루프 폐쇄는 일반적으로 교차로 지점에서 발생한다. 전술한 바와 같이, 교차로 검출 신뢰도 점수를 사용하여 후보 노드를 선정하고, 후보 노드들 사이의 자세와 잔차를 계산하여 잔차가 임계값 이하일 경우 루프 폐쇄를 결정한다.
마지막으로, 도 15의 (b)와 같이, 최적화된 자세 정보를 사용한 각 노드에 포함되어 있는 차로의 속성 정보를 결합하여 차로 수준의 고해상도 지도를 생성한다. 각 노드의 차로 속성 중 차선 정보는 노드의 자세 정보와 결합하여 지도상의 전역좌표를 갖는 차선 정보로 변환하고, 주변 노드와 비교하여 차선의 교점을 찾는다. 이 교점을 사용하여 차선을 차례로 연결하면 최적화된 지도와 일치하는 차로 수준 고해상도 지도를 생성할 수 있다. 이렇게 생성된 차로 수준의 지도는 별도 지도 레이어로 관리하고, 자율주행 자동차의 경로계획 수립 등에 활용되며, 3차원 지도 데이터의 노드 링크가 최적화될 때 함께 업데이트될 수 있다.
도 16은 본 개시의 실시 예에 따른 위치 인식 장치의 구조를 나타낸 도이다.
첨부한 도 16에서와 같이, 위치 인식 장치(1)는 센서 입력을 기반으로 영상 데이터를 생성하는 영상 데이터 생성부(11), 움직임 및 자세 추정부(12) 및 위치 인식부(13)를 포함하며, 지도 데이터 생성부(14)를 더 포함한다.
영상 데이터 생성부(11)는 센서 입력(3차원 공간 정보에 대응하는 3차원 좌표 정보)를 2차원 평면에 투영하여 구면 거리 영상을 생성하도록 구성된 구면 거리 영상 생성부 및, 구면 거리 영상 및 이에 대응하는 텍스처 영상을 입력으로 하여 의미론적 분할을 수행하여 의미론적 분할 영상을 생성하도록 구성된 의미론적 분할 영상 생성부를 포함한다. 의미론적 분할 영상은 이동 물체 정보가 제거되고 도로 차량 정보를 포함하는 영상일 수 있다.
움직임 및 자세 추정부(12)는 구면 거리 영상 또는 의미론적 분할 영상을 이용하여 움직임 및 자세 추정을 수행하고, 그 결과인 자세 정보를 획득하도록 구성된다.
위치 인식부(13)는 이미 생성된 지도 데이터와, 영상 데이터(구면 거리 영상, 의미론적 분할 영상)에 기반한 움직임 및 자세 추정 결과인 자세 정보 그리고 GPS 정보를 이용하여 위치 인식을 수행하도록 구성된다.
지도 데이터 생성부(14)는 영상 데이터(구면 거리 영상, 의미론적 분할 영상)와 자세 정보 그리고 차로의 속성 정보를 포함하는 지도 데이터를 생성하도록 구성된다.
이러한 각 구성 요소(11~14)는 위에 기술된 대응하는 방법을 구현하도록 구성되므로, 구체적인 기능에 대해서는 위의 설명을 참조한다.
본 개시의 실시 예에 따른 위치 인식 장치(1)는 주행하는 차량 등에 장착되는 형태로 구현되고, 지도 데이터 관리 장치(2)와 연계하여 동작할 수 있다. 예를 들어, 위치 인식 장치(1)는 지도 데이터 관리 장치(2)로부터 기존 지도 데이터를 제공받거나 또는 생성된 지도 데이터를 지도 데이터 관리 장치(2)로 제공할 수 있다. 한편, 지도 데이터 생성부(14)는 위치 인식 장치(1)에 포함되는 형태로 구현되나, 이에 한정되지 않고 지도 데이터 관리 장치(2) 등의 다른 장치에 포함되는 형태로 구현될 수도 있다.
도 17은 본 개시의 실시 예에 따른 지도 데이터 관리 장치의 구조를 나타낸 도이다.
첨부한 도 17에서와 같이, 지도 데이터 관리 장치(2)는 지도 데이터 등록 처리부(21), 지도 데이터 압축 처리부(22), 데이터 저장부(23) 그리고 지도 데이터 최적화 처리부(24)를 포함한다.
지도 데이터 등록 처리부(21)는 지도 데이터를 신규 지도 데이터로 등록하거나 또는 기존 지도 데이터와 비교하여 기존 지도 데이터에 대한 업데이트 처리를 수행하도록 구성된다.
지도 데이터 압축 처리부(22)는 등록되는 지도 데이터를 저장하기 위한 처리(간략하게, 저장 처리라고도 함)를 수행하도록 구성된다. 특히, 지도 데이터 압축 처리부(22)는 지도 데이터를 구성하는 영상 데이터 즉, 구면 거리 영상과 의미론적 분할 영상을 하나의 영상으로 합쳐서 처리한다. 각 화소별로, 구면 거리 영상의 거리 정보를 양자화화여 화소를 구성하는 비트의 상위 비트에 위치시키고, 의미론적 분할 영상의 분할 정보를 샘플링 및 양자화하여 화소를 구성하는 비트의 하위 비트에 위치시킨다. 이러한 저장 처리 이전에 구면 거리 영상과 의미론적 분할 영상을 먼저 압축하고, 압축된 영상들에 대해 위의 저장 처리를 수행할 수 있다.
데이터 저장부(23)는 지도 데이터를 저장하도록 구성된다. 지도는 그래프 기반 구조로 이루어지며, 그래프를 구성하는 각 노드에 대해 지도 데이터가 저장되며, 지도 데이터는 구면 거리 영상, 의미론적 분할 영상, 차로의 속성 정보, 자세 정보를 포함하며, 그리고 지도 데이터를 생성한 시간, GPS 위치 정보 등을 포함한다. 구면 거리 영상 및 의미론적 분할 영상은 위의 저장 처리를 통해 처리된 다음에 저장될 수 있다.
지도 데이터 최적화 처리부(24)는 그래프 기반의 지도 데이터에 대한 최적화 처리를 수행하도록 구성된다.
이러한 각 구성 요소(21~24)는 위에 기술된 대응하는 방법을 구현하도록 구성되므로, 구체적인 기능에 대해서는 위의 설명을 참조한다.
본 개시의 실시 예에 따른 지도 데이터 관리 장치(2)는 예를 들어, 서버 형태로 구현되어, 위치 인식 장치(1)와 연계하여 동작할 수 있다. 예를 들어, 지도 데이터 관리 장치(2)는 위치 인식 장치(1)로부터 신규로 생성되는 지도 데이터를 제공받아 등록, 저장 및 최적화 등을 수행하고, 또는 관리되는 지도 데이터를 위치 인식 장치(1)로 제공할 수 있다.
도 18은 본 개시의 실시 예에 따른 방법을 구현하기 위한 컴퓨팅 장치를 설명하기 위한 구조도이다.
첨부한 도 18에 도시되어 있듯이, 본 개시의 일 실시 예에 따른 방법(위의 실시 예에 기술된 지도 생성 및 관리 그리고 위치 인식을 위한 각각의 방법들)은 컴퓨팅 장치(100)를 이용하여 구현될 수 있다.
컴퓨팅 장치(100)는 프로세서(110), 메모리(120), 입력 인터페이스 장치(130), 출력 인터페이스 장치(140), 저장 장치(150) 및 네트워크 인터페이스 장치(160) 중 적어도 하나를 포함할 수 있다. 각각의 구성 요소들은 버스(bus)(170)에 의해 연결되어 서로 통신을 수행할 수 있다. 또한, 각각의 구성 요소들은 공통 버스(170)가 아니라, 프로세서(110)를 중심으로 개별 인터페이스 또는 개별 버스를 통하여 연결될 수도 있다.
프로세서(110)는 AP(Application Processor), CPU(Central Processing Unit), GPU(Graphic Processing Unit) 등과 같은 다양한 종류들로 구현될 수 있으며, 메모리(120) 또는 저장 장치(150)에 저장된 명령을 실행하는 임의의 반도체 장치일 수 있다. 프로세서(110)는 메모리(120) 및 저장 장치(150) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 이러한 프로세서(110)는 위의 도 1 내지 도 17을 토대로 설명한 기능 및 방법들을 구현하도록 구성될 수 있다. 예를 들어, 프로세서(110)는 영상 데이터 생성부, 움직임 및 자세 추정부, 위치 인식부, 지도 데이터 생성부의 기능을 수행하도록 구현될 수 있다. 또한, 프로세서(110)는 지도 데이터 등록 처리부, 지도 데이터 압축 처리부, 데이터 최적화 처리부의 기능을 수행하도록 구현될 수 있다.
메모리(120) 및 저장 장치(150)는 다양한 형태의 휘발성 또는 비 휘발성 저장 매체를 포함할 수 있다. 예를 들어, 메모리는 ROM(read-only memory)(121) 및 RAM(random access memory)(122)를 포함할 수 있다. 본 개시의 실시 예에서 메모리(120)는 프로세서(110)의 내부 또는 외부에 위치할 수 있고, 메모리(120)는 이미 알려진 다양한 수단을 통해 프로세서(110)와 연결될 수 있다.
입력 인터페이스 장치(130)는 데이터(센서 입력)를 프로세서(110)로 제공하도록 구성되며, 출력 인터페이스 장치(140)는 프로세서(110)로부터의 데이터(지도, 인식된 차량 위치 등)를 출력하도록 구성된다.
네트워크 인터페이스 장치(160)는 유선 네트워크 또는 무선 네트워크를 통해 다른 디바이스(예를 들어, 자율 주행 시스템)와 신호를 송신 또는 수신할 수 있다.
입력 인터페이스 장치(130), 출력 인터페이스 장치(140) 및 네트워크 인터페이스 장치(160)를 포괄하여 "인터페이스 장치"라고도 명명할 수 있다.
이러한 구조로 이루어지는 컴퓨팅 장치(100)는 위치 인식 장치/지도 데이터 관리 장치로 명명되어, 본 개시의 일 실시 예에 따른 위의 방법들을 구현할 수 있다.
또한, 본 개시의 일 실시 예에 따른 방법 중 적어도 일부는 컴퓨팅 장치(100)에서 실행되는 프로그램 또는 소프트웨어로 구현될 수 있고, 프로그램 또는 소프트웨어는 컴퓨터로 판독 가능한 매체에 저장될 수 있다.
또한, 본 개시의 일 실시 예에 따른 방법 중 적어도 일부는 컴퓨팅 장치(100)와 전기적으로 접속될 수 있는 하드웨어로 구현될 수도 있다.
본 개시의 실시 예는 이상에서 설명한 장치 및/또는 방법을 통해서만 구현이 되는 것은 아니며, 본 개시의 실시예의 구성에 대응하는 기능을 실현하기 위한 프로그램, 그 프로그램이 기록된 기록 매체 등을 통해 구현될 수도 있으며, 이러한 구현은 앞서 설명한 실시예의 기재로부터 본 개시가 속하는 기술분야의 전문가라면 쉽게 구현할 수 있는 것이다.
이상에서 본 개시의 실시 예에 대하여 상세하게 설명하였지만 본 개시의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 개시의 기본 개념을 이용한 당업자의 여러 변형 및 개량 형태 또한 본 개시의 권리범위에 속하는 것이다.
Claims (20)
- 자율 주행을 위한 지도를 생성하는 방법으로서,
3차원 공간에 대응하는 3차원 좌표 정보를 획득하는 단계;
상기 3차원 좌표 정보를 2차원 평면에 투영하여 구면 거리 영상을 획득하는 단계;
상기 구면 거리 영상에 대해 의미론적 분할을 수행하여 의미론적 분할 영상을 생성하는 단계; 및
상기 구면 거리 영상, 상기 의미론적 분할 영상 그리고 차로의 속성 정보를 포함하는 지도 데이터를 생성하는 단계
를 포함하는 방법. - 제1항에 있어서,
상기 의미론적 분할 영상을 생성하는 단계는
상기 구면 거리 영상에 대해 의미론적 분할을 수행하는 단계; 및
상기 의미론적 분할에 의해 획득된 영상에서 이동 물체를 제거하여, 도로 정보를 포함하는 상기 의미론적 분할 영상을 생성하는 단계
를 포함하며,
상기 도로 정보는 노면의 패턴, 도로 패턴, 도로 주변의 패턴을 포함하는 분할 정보로 사용되며, 상기 차로의 속성 정보는 상기 의미론적 분할 영상에 포함된 상기 분할 정보를 이용하여 획득되는, 방법. - 제1항에 있어서,
지도는 그래프 기반 구조로 이루어지고, 상기 그래프를 구성하는 노드별로 상기 지도 데이터가 매핑되며, 상기 노드 사이의 에지 정보는 자세 정보를 포함하며,
상기 자세 정보는 상기 구면 거리 영상의 기울기 또는 상기 의미론적 분할 영상의 기울기를 이용한 움직임 및 자세 추정의 결과인, 방법. - 제3항에 있어서,
상기 지도 데이터를 생성하는 단계는
지도 데이터 생성 지점에 대응하는 노드의 지도 데이터를 생성한 상태에서, 상기 노드의 주변 노드의 지도 데이터를 획득하는 단계; 및
상기 노드의 지도 데이터와 상기 주변 노드의 지도 데이터를 합성하여 상기 노드에 대한 지도 데이터로 사용하는 단계
를 포함하는, 방법. - 제4항에 있어서,
상기 지도 데이터를 합성하여 상기 노드에 대한 지도 데이터로 사용하는 단계는,
상기 노드의 구면 거리 영상과 상기 주변 노드의 구면 거리 영상을 합성하는 단계;
상기 노드의 의미론적 분할 영상과 상기 주변 노드의 의미론적 분할 영상을 합성하는 단계;
상기 합성된 의미론적 분할 영상을 기반으로 차로의 속성 정보를 생성하는 단계; 및
상기 합성된 구면 거리 영상, 상기 합성된 의미론적 분할 영상 그리고 상기 차로의 속성 정보를 포함하는 데이터를 상기 노드에 대한 지도 데이터로 사용하는 단계
를 포함하는, 방법. - 제5항에 있어서,
상기 구면 거리 영상을 합성하는 단계는 각 화소별로 누적되는 값 중에서 중간 값을 선택하는 방식을 기반으로 합성된 구면 거리 영상을 획득하며,
상기 의미론적 분할 영상을 합성하는 단계는 각 화소별로 누적되는 값 중에서 가장 많은 분포를 가지는 값을 선택하는 방식을 기반으로 합성된 의미론적 분할 영상을 획득하는, 방법. - 제6항에 있어서,
상기 구면 거리 영상의 합성과 상기 의미론적 분할 영상의 합성시,
상기 노드의 영상과 상기 주변 노드의 영상을 상기 노드를 기준으로 좌표 변환하고, 화소별로 상기 노드의 영상의 대응하는 화소의 값과 상기 주변 노드의 영상의 대응하는 화소의 값을 누적하여 저장하며, 화소별로 누적된 값들 중에서 하나를 선택하는 것에 의해, 2차원 영상 데이터를 획득하고, 상기 2차원 영상 데이터의 화소별로, 주변 화소의 값과 해당 화소의 값을 비교한 결과를 기반으로 해당 화소의 최종 값을 선택하는 방식으로, 상기 합성이 수행되는, 방법. - 제1항에 있어서,
상기 지도 데이터를 압축하는 단계
를 더 포함하며,
상기 압축하는 단계는
각 화소별로 상기 구면 거리 영상과 상기 의미론적 분할 영상을 하나의 영상으로 합쳐서 저장하며, 설정 비트로 이루어지는 화소에 대해, 상기 설정 비트 중 제1 비트에 상기 구면 거리 영상의 거리 정보를 위치시키고, 상기 설정 비트 중 제2 비트에 상기 의미론적 분할 영상의 분할 정보를 위치시키는, 방법. - 제8항에 있어서,
상기 압축하는 단계는
상기 구면 거리 영상과 상기 의미론적 분할 영상을 압축하는 단계;
상기 압축된 구면 거리 영상의 거리 정보를 양자화하고, 상기 양자화된 거리 정보를 화소의 설정 비트 중 상위 비트에 위치시키는 단계; 및
상기 압축된 의미론적 분할 영상의 분할 정보를 양자화하고, 상기 양자화된 분할 정보를 화소의 설정 비트 중 하위 비트에 위치시키는 단계
를 포함하는, 방법. - 제1항에 있어서,
상기 지도 데이터를 등록하는 단계
를 더 포함하고,
상기 등록하는 단계는,
상기 생성된 지도 데이터의 주변 좌표에 기존 지도 데이터가 없는 경우에 상기 생성된 지도 데이터를 신규 지도 데이터로 등록하는 단계; 및
상기 생성된 지도 데이터의 주변 좌표에 기존 지도 데이터가 있는 경우에, 상기 생성된 지도 데이터를 기반으로 상기 기존 지도 데이터를 업데이트하는 단계
를 포함하는, 방법. - 제10항에 있어서,
상기 업데이트하는 단계는
상기 생성된 지도 데이터를 시간 정보와 함께 추가 지도 데이터로 저장하는 동작을 반복 수행하는 단계; 및
상기 저장된 추가 지도 데이터를 비교하여 설정 시간 동안 서로 상이한 변경 사항이 유지되는 경우에, 상기 추가 지도 데이터를 기반으로 상기 기존 지도 데이터를 업데이트하는 단계
를 포함하는, 방법. - 제3항에 있어서,
상기 지도를 구성하는 그래프를 최적화하는 단계
를 더 포함하며,
상기 최적화하는 단계는 각 노드별로 GPS 데이터를 획득하는 경우 상기 GPS 데이터를 가지는 GPS 노드를 해당 노드에 연결시키고, 상기 그래프에서 루프 폐쇄가 검출되는 경우 대응하는 노드들을 서로 연결시키며, 자세 정보를 사용한 각 노드에 포함되어 있는 차로의 속성 정보를 결합하는, 방법. - 자율 주행을 위한 지도를 기반으로 위치를 인식하는 방법으로서,
현재 노드에서 센서로부터 입력되는 데이터를 기반으로 구면 거리 영상을 획득하고, 상기 구면 거리 영상으로부터 의미론적 분할 영상을 생성하는 단계;
GPS 데이터 또는 이전 주행 경로를 기반으로 초기 위치를 획득하는 단계;
상기 초기 위치를 기반으로 상기 지도로부터 지도 데이터를 검색하는 단계; 및
상기 검색된 지도 데이터를 기반으로 현재 위치를 획득하는 단계
를 포함하며,
상기 지도의 지도 데이터는 구면 거리 영상, 의미론적 분할 영상 그리고 차로의 속성 정보를 포함하는, 방법. - 제13항에 있어서,
상기 지도는 그래프 기반 구조로 이루어지고, 상기 그래프를 구성하는 노드별로 상기 지도 데이터가 매핑되며, 상기 노드 사이의 에지 정보는 자세 정보를 포함하며,
상기 자세 정보는 상기 구면 거리 영상의 기울기 또는 상기 의미론적 분할 영상의 기울기를 이용한 움직임 및 자세 추정의 결과인, 방법. - 제14항에 있어서,
상기 현재 위치를 획득하는 단계는,
상기 검색된 지도 데이터에 대한 현재 노드의 자세 정보를 추정하고, 상기 추정된 자세 정보와 상기 현재 노드의 움직임에 따른 자세 정보가 설정 조건을 만족하는 경우에, 상기 지도 데이터를 이용하여 상기 현재 위치를 획득하며, 상기 현재 노드에 GPS 데이터가 있는 경우에 상기 GPS 데이터를 추가적으로 이용하여 상기 현재 위치를 획득하는, 방법. - 위치를 인식하는 장치로서,
인터페이스 장치; 및
상기 인터페이스 장치에 연결되어 위치 인식을 수행하도록 구성된 프로세서
를 포함하며,
상기 프로세서는
상기 인터페이스 장치를 통해 입력되는 3차원 공간에 대응하는 3차원 좌표 정보를 2차원 평면에 투영하여 구면 거리 영상을 획득하는 동작;
상기 구면 거리 영상에 대해 의미론적 분할을 수행하여 의미론적 분할 영상을 생성하는 동작;
GPS 데이터 또는 이전 주행 경로를 기반으로 초기 위치를 획득하는 동작;
상기 초기 위치를 기반으로 지도로부터 지도 데이터를 검색하는 동작; 및
상기 검색된 지도 데이터를 기반으로 현재 위치를 획득하는 동작
을 수행하도록 구성되며, 상기 지도의 지도 데이터는 구면 거리 영상, 의미론적 분할 영상 그리고 차로의 속성 정보를 포함하는, 장치. - 제16항에 있어서,
상기 지도는 그래프 기반 구조로 이루어지고, 상기 그래프를 구성하는 노드별로 상기 지도 데이터가 매핑되며, 상기 노드 사이의 에지 정보는 자세 정보를 포함하며,
상기 자세 정보는 상기 구면 거리 영상의 기울기 또는 상기 의미론적 분할 영상의 기울기를 이용한 움직임 및 자세 추정의 결과인, 장치. - 제16항에 있어서,
상기 프로세서는 추가적으로,
상기 구면 거리 영상, 상기 의미론적 분할 영상 그리고 차로의 속성 정보를 포함하는 지도 데이터를 생성하는 동작
을 수행하도록 구성되며,
상기 프로세서는 상기 지도 데이터를 생성하는 동작 수행시,
지도 데이터 생성 지점에 대응하는 노드의 지도 데이터를 생성한 상태에서, 상기 노드의 주변 노드의 지도 데이터를 획득하는 동작;
상기 노드의 구면 거리 영상과 상기 주변 노드의 구면 거리 영상을 합성하는 동작;
상기 노드의 의미론적 분할 영상과 상기 주변 노드의 의미론적 분할 영상을 합성하는 동작;
상기 합성된 의미론적 분할 영상을 기반으로 차로의 속성 정보를 생성하는 동작; 및
상기 합성된 구면 거리 영상, 상기 합성된 의미론적 분할 영상 그리고 상기 차로의 속성 정보를 포함하는 데이터를 상기 노드에 대한 지도 데이터로 사용하는 동작
을 수행하도록 구성되는, 장치. - 제16항에 있어서,
상기 프로세서는 상기 의미론적 분할 영상을 생성하는 동작 수행시,
상기 구면 거리 영상에 대해 의미론적 분할을 수행하는 동작; 및
상기 의미론적 분할에 의해 획득된 영상에서 이동 물체를 제거하여, 도로 정보를 포함하는 상기 의미론적 분할 영상을 생성하는 동작
을 수행하도록 구성되며,
상기 도로 정보는 노면의 패턴, 도로 패턴, 도로 주변의 패턴을 포함하는 분할 정보로 사용되며, 상기 차로의 속성 정보는 상기 의미론적 분할 영상에 포함된 상기 분할 정보를 이용하여 획득되는, 장치. - 제16항에 있어서,
상기 지도 데이터는 압축되어 저장 관리되며, 압축시, 각 화소별로 상기 구면 거리 영상과 상기 의미론적 분할 영상을 하나의 영상으로 합쳐서 저장하며, 설정 비트로 이루어지는 화소에 대해, 상기 설정 비트 중 제1 비트에 상기 구면 거리 영상의 거리 정보가 위치되고, 상기 설정 비트 중 제2 비트에 상기 의미론적 분할 영상의 분할 정보가 위치되는, 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/532,846 US20220163346A1 (en) | 2020-11-23 | 2021-11-22 | Method and apparatus for generating a map for autonomous driving and recognizing location |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200157663 | 2020-11-23 | ||
KR20200157663 | 2020-11-23 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20220071112A true KR20220071112A (ko) | 2022-05-31 |
Family
ID=81780026
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020210152332A KR20220071112A (ko) | 2020-11-23 | 2021-11-08 | 자율 주행을 위한 지도 생성 및 관리 방법 그리고 이를 이용한 위치 인식 방법 및 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20220071112A (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116309943A (zh) * | 2023-05-24 | 2023-06-23 | 联友智连科技有限公司 | 一种停车场语义地图路网构建方法、装置及电子设备 |
-
2021
- 2021-11-08 KR KR1020210152332A patent/KR20220071112A/ko not_active Application Discontinuation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116309943A (zh) * | 2023-05-24 | 2023-06-23 | 联友智连科技有限公司 | 一种停车场语义地图路网构建方法、装置及电子设备 |
CN116309943B (zh) * | 2023-05-24 | 2023-08-08 | 联友智连科技有限公司 | 一种停车场语义地图路网构建方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10991156B2 (en) | Multi-modal data fusion for enhanced 3D perception for platforms | |
Xia et al. | Geometric primitives in LiDAR point clouds: A review | |
US10437252B1 (en) | High-precision multi-layer visual and semantic map for autonomous driving | |
US10794710B1 (en) | High-precision multi-layer visual and semantic map by autonomous units | |
US9990736B2 (en) | Robust anytime tracking combining 3D shape, color, and motion with annealed dynamic histograms | |
CN114842438B (zh) | 用于自动驾驶汽车的地形检测方法、***及可读存储介质 | |
US11651553B2 (en) | Methods and systems for constructing map data using poisson surface reconstruction | |
WO2018068653A1 (zh) | 点云数据处理方法、装置及存储介质 | |
US10430659B2 (en) | Method and apparatus for urban road recognition based on laser point cloud, storage medium, and device | |
US20220163346A1 (en) | Method and apparatus for generating a map for autonomous driving and recognizing location | |
JP2019527832A (ja) | 正確な位置特定およびマッピングのためのシステムおよび方法 | |
JP6997057B2 (ja) | 不動物体情報から端末位置を推定する装置、プログラム及び方法 | |
AU2020229324B2 (en) | System and method for surface feature detection and traversal | |
KR20220071112A (ko) | 자율 주행을 위한 지도 생성 및 관리 방법 그리고 이를 이용한 위치 인식 방법 및 장치 | |
Quackenbush et al. | Road extraction: A review of LiDAR-focused studies | |
CN116664851A (zh) | 一种基于人工智能的自动驾驶数据提取方法 | |
CN114659513B (zh) | 一种面向非结构化道路的点云地图构建与维护方法 | |
CN116222593A (zh) | 一种露天矿区地图众包采集及构建装置 | |
KR20220151572A (ko) | IPM 이미지와 정밀도로지도(HD Map) 피팅을 통해 노면객체의 변화를 자동으로 판단하고 갱신하는 정밀도로지도 자동갱신 방법 및 시스템 | |
CN111127474B (zh) | 机载LiDAR点云辅助的正射影像镶嵌线自动选取方法及*** | |
CN113137961A (zh) | 移动设备定位***、相关方法、装置及设备 | |
JP2023508276A (ja) | 多重解像度ボクセルにおける共分散を含むマップ | |
KR102664699B1 (ko) | 항공 라이다를 이용한 건물 모델링 방법 및 이를 실행하기 위하여 기록매체에 기록된 컴퓨터 프로그램 | |
Li et al. | Improving Vehicle Localization with Lane Marking Detection Based on Visual Perception and Geographic Information | |
KR102616435B1 (ko) | 지도 갱신 방법 및 이를 실행하기 위하여 기록매체에기록된 컴퓨터 프로그램 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E902 | Notification of reason for refusal |