KR102319036B1 - 자율 주행 차량을 위한 포인트 클라우드 고스트 효과 검출 시스템 - Google Patents

자율 주행 차량을 위한 포인트 클라우드 고스트 효과 검출 시스템 Download PDF

Info

Publication number
KR102319036B1
KR102319036B1 KR1020197036973A KR20197036973A KR102319036B1 KR 102319036 B1 KR102319036 B1 KR 102319036B1 KR 1020197036973 A KR1020197036973 A KR 1020197036973A KR 20197036973 A KR20197036973 A KR 20197036973A KR 102319036 B1 KR102319036 B1 KR 102319036B1
Authority
KR
South Korea
Prior art keywords
point cloud
frame
voxel
grid map
points
Prior art date
Application number
KR1020197036973A
Other languages
English (en)
Other versions
KR20200096409A (ko
Inventor
리 유
펭페이 유안
용 샤오
룬신 헤
시유 송
Original Assignee
바이두닷컴 타임즈 테크놀로지(베이징) 컴퍼니 리미티드
바이두 유에스에이 엘엘씨
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 바이두닷컴 타임즈 테크놀로지(베이징) 컴퍼니 리미티드, 바이두 유에스에이 엘엘씨 filed Critical 바이두닷컴 타임즈 테크놀로지(베이징) 컴퍼니 리미티드
Publication of KR20200096409A publication Critical patent/KR20200096409A/ko
Application granted granted Critical
Publication of KR102319036B1 publication Critical patent/KR102319036B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • G06T17/05Geographic models
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO 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
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/89Lidar systems specially adapted for specific applications for mapping or imaging
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO 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
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO 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
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/4802Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00 using analysis of echo signal for target characterisation; Target signature; Target cross-section
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO 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
    • G01S7/00Details of systems according to groups G01S13/00, G01S15/00, G01S17/00
    • G01S7/48Details of systems according to groups G01S13/00, G01S15/00, G01S17/00 of systems according to group G01S17/00
    • G01S7/4808Evaluating distance, position or velocity data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/04Texture mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/0002Inspection of images, e.g. flaw detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2200/00Indexing scheme for image data processing or generation, in general
    • G06T2200/04Indexing scheme for image data processing or generation, in general involving 3D image data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30168Image quality inspection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/56Particle system, point based geometry or rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2004Aligning objects, relative positioning of parts

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Software Systems (AREA)
  • Computer Graphics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Geometry (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Electromagnetism (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Architecture (AREA)
  • Quality & Reliability (AREA)
  • Traffic Control Systems (AREA)
  • Navigation (AREA)
  • Control Of Driving Devices And Active Controlling Of Vehicle (AREA)
  • Image Generation (AREA)
  • Image Analysis (AREA)

Abstract

일 실시형태에서, 시스템은 포인트 클라우드의 초기 프레임에 기초하여 점용 그리드 맵을 생성한다. 시스템은 포인트 클라우드의 하나 이상의 후속 프레임을 수신한다. 시스템은 속 프레임마다에 대해, 후속 프레임에 기초하여 점용 그리드 맵을 업데이트하고, 업데이트에 기초하여 하나 이상의 이상 복셀을 식별하고, 이상 복셀이 벽체에 속하는지 여부를 확정하고, 이상 복셀이 벽 객체에 속한다고 확정된 것에 응답하여, 이상 복셀을 후속 프레임에 대한 고스트 효과 복셀로 표기한다.

Description

자율 주행 차량을 위한 포인트 클라우드 고스트 효과 검출 시스템
본 발명의 실시형태는 전반적으로 자율 주행 차량의 작동에 관한 것으로, 보다 구체적으로는, 자율 주행 차량(ADV)에 사용되는 포인트 클라우드 고스트 효과 검출 시스템에 관한 것이다.
자율 주행 모드로 운행(예를 들어, 무인 운전)되는 차량은 승객(특히는 운전자)을 일부 운전 관련 직책에서 해방시킬 수 있다. 자율 주행 모드로 운행될 경우, 차량은 차량용 센서를 사용하여 각 위치로 네비게이팅할 수 있으므로, 차량을 최소한의 인간-기계 상호 작용 또는 아무런 승객도 없이 주행하도록 허용한다.
모션 계획 및 제어는 자율 주행의 핵심 작동이나, 종래의 모션 계획 작동은 주로 상이한 타입 차량의 특징 차이에 관계없이 곡률 및 속도에 따라, 지정된 경로를 완료하는 난이도를 추정한다. 동일한 모션 계획 및 제어는 모든 유형의 차량에 적용되므로 일부 경우에는 부정확하고 원활하지 못할 수 있다.
고화질(HD) 3차원(3D) 포인트 클라우드 맵은 자율 주행 차량에 있어서 매우 중요하고, 또한 포인트 클라우드 등록(point cloud registration) 시스템은 포인트 클라우드 데이터에 따라 HD 3D포인트 클라우드 맵을 구축하는 중점이며, 고정밀도를 구비한 HD 3D포인트 클라우드 맵은 자율 주행 차량(ADV) 모션 계획의 핵심이다.
그러나, 맵 구조의 성능 및 정확도에 영향을 미치는 여러 문제점이 존재한다. 우선 현재 포인트 클라우드 등록 알고리즘은 위치 추정을 위한 GPS 신호에 크게 의존하여 맵을 구축하는데, 이는 예를 들어 고층 빌딩이 즐비한 도시 거리나 울창한 숲에서 미터 레벨의 에러 범위를 갖거나 GPS 바운스를 구비한 신호를 기록한다. 또는 예를 들어, 터널 또는 차고에서 GPS가 신호를 완전히 기록하지 못할 수 있다. 다음으로, 포인트 클라우드의 등록은 계산 상 복잡할 수 있는데, 예를 들어, 이는 큰 맵 영역에 있어서는 도전적이며 시간이 소요된다.
이 밖에, 등록된 HD 3D포인트 클라우드 맵의 정확도는, 포인트 클라우드의 품질 또는 포인트 클라우드의 스플라이싱에 의해 결정될 수 있다. 포인트 클라우드 맵이 예를 들어 포인트 클라우드의 스플라이싱으로 인한 고스트 이미지를 갖는 경우, HD 3D포인트 클라우드 맵의 정확도가 손상될 수 있다. 높은 정확도를 보장하기 위해서는 고스트 효과에 대해 포인트 클라우드 맵 평가를 희망한다.
제1 양태에서, 본 발명의 실시형태는, 자율 주행 차량(ADV)을 위한, 포인트 클라우드에서 고스트 효과를 식별하는 컴퓨터 구현 방법에 있어서, 포인트 클라우드의 초기 프레임에 기초하여 점용 그리드 맵을 생성하는 단계; 상기 포인트 클라우드의 하나 이상의 후속 프레임을 수신하는 단계; 와 상기 후속 프레임 중 각 프레임에 대해, 상기 후속 프레임에 기초하여 점용 그리드 맵을 업데이트하고, 상기 업데이트에 기초하여 하나 이상의 이상 복셀을 식별하고, 상기 이상 복셀이 벽 객체에 속하는지 여부를 확정하고, 상기 이상 복셀이 벽 객체에 속한다고 확정된 것에 응답하여, 상기 이상 복셀을 후속 프레임에 대한 고스트 효과 복셀로 표기하는 단계를 포함하는 컴퓨터 구현 방법을 제공한다.
제2 양태에서, 본 발명의 실시형태는, 명령이 저장된 비 일시적 기계 판독 가능 매체에 있어서, 상기 명령이 프로세서에 의해 실행될 경우 프로세서가 동작을 수행하도록 하고, 상기 동작은, 포인트 클라우드의 초기 프레임에 기초하여 점용 그리드 맵을 생성하는 동작; 상기 포인트 클라우드의 하나 이상의 후속 프레임을 수신하는 동작; 과 상기 후속 프레임 중 각 프레임에 대해, 상기 후속 프레임에 기초하여 점용 그리드 맵을 업데이트하고, 상기 업데이트에 기초하여 하나 이상의 이상 복셀을 식별하고, 상기 이상 복셀이 벽 객체에 속하는지 여부를 확정하고, 상기 이상 복셀이 벽 객체에 속한다고 확정된 것에 응답하여, 상기 이상 복셀을 후속 프레임에 대한 고스트 효과 복셀로 표기하는 동작을 포함하는 비 일시적 기계 판독 가능 매체를 제공한다.
제3 양태에서, 본 발명의 실시형태는, 프로세서; 및 명령을 저장하기 위해 상기 프로세서에 연결된 메모리를 포함하는 데이터 처리 시스템에 있어서, 상기 명령이 상기 프로세서에 의해 실행될 경우 상기 프로세서가 동작을 수행하도록 하고, 상기 동작은, 포인트 클라우드의 초기 프레임에 기초하여 점용 그리드 맵을 생성하는 동작; 상기 포인트 클라우드의 하나 이상의 후속 프레임을 수신하는 동작; 과 상기 후속 프레임 중 각 프레임에 대해, 상기 후속 프레임에 기초하여 점용 그리드 맵을 업데이트하고, 상기 업데이트에 기초하여 하나 이상의 이상 복셀을 식별하고, 상기 이상 복셀이 벽 객체에 속하는지 여부를 확정하고, 상기 이상 복셀이 벽 객체에 속한다고 확정된 것에 응답하여, 상기 이상 복셀을 후속 프레임에 대한 고스트 효과 복셀로 표기하는 동작을 포함하는 데이터 처리 시스템을 제공한다.
본 발명의 실시형태는 각 도면에서 예시로서 비제한적인 방식으로 도시되며, 도면 중 동일한 부호는 유사한 구성 요소를 대신 지칭한다.
도 1은 일 실시형태에 따른 네트워킹 시스템의 블록도이다.
도 2는 일 실시형태에 따른 자율 주행 차량의 예시를 도시하는 블록도이다.
도 3a 내지 도 3b는 일 실시형태에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 도시하는 블록도이다.
도 4는 일 실시형태에 따른 HD 맵 생성 엔진의 예시를 도시하는 블록도이다.
도 5는 일 실시형태에 따른 HD 맵 생성 시스템의 예시를 도시하는 블록도이다.
도 6은 일 실시형태에 따른 HD 맵 생성 시스템을 위한 파이프라인의 예시를 도시하는 블록도이다.
도 7a는 일 실시형태에 따른 폐쇄 루프를 구비하는 맵 영역의 도면이다.
도 7b는 일 실시형태에 따른 LIDAR 이미지의 2차원 평면도를 도시하는 사진이다.
도 8은 일 실시형태에 따른 방법의 예시를 도시하는 흐름도이다.
도 9는 일 실시형태에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 도시하는 블록도이다.
도 10은 일 실시형태에 따른 실시간 HD 맵 생성 모듈의 예시를 도시하는 블록도이다.
도 11a는 일 실시형태에 따른 실시간 HD 맵 생성 파이프라인의 예시를 도시하는 흐름도이다.
도 11b는 일 실시형태에 따른 폐쇄 루프 위치 추정의 예시를 도시하는 흐름도이다.
도 12는 일 실시형태에 따른 다층 감지기의 예시를 도시한다.
도 13은 일 실시형태에 따른 타겟 맵의 예시를 도시한다.
도 14는 일 실시형태에 따른 방법의 예시를 도시하는 흐름도이다.
도 15는 일 실시형태에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 도시하는 블록도이다.
도 16은 일 실시형태에 따른 RGB 포인트 클라우드 모듈의 예시를 도시하는 블록도이다.
도 17은 일부 실시형태에 따른 RGB 포인트 클라우드 동기화 방법의 예시를 도시하는 블록도이다.
도 18은 일 실시형태에 따른 방법의 예시를 도시하는 흐름도이다.
도 19는 일 실시형태에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 도시하는 블록도이다.
도 20은 일 실시형태에 따른 맵 파티션 모듈의 예시를 도시하는 블록도이다.
도 21은 일 실시형태에 따른 도로 표시 추출의 예시를 도시하는 흐름도이다.
도 22는 일 실시형태에 따른 도로 표시 포인트의 검색을 추출하는 예시를 도시한다.
도 23은 일 실시형태에 따른 도로 커브(road curb) 추출의 예시를 도시하는 흐름도이다.
도 24는 일 실시형태에 따른 도로 커브 추출의 예시를 도시한다.
도 25는 일 실시형태에 따른 맵 파티션의 예시를 도시한다.
도 26a 및 도 26b는 일부 실시형태에 따른 방법의 예시를 도시하는 흐름도이다.
도 27은 일 실시형태에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 도시하는 블록도이다.
도 28은 일 실시형태에 따른 고스트 효과 엔진의 예시를 도시하는 블록도이다.
도 29는 일 실시형태에 따른 고스트 효과 검출의 예시를 도시하는 흐름도이다.
도 30은 일 실시형태에 따른 방법의 예시를 도시하는 흐름도이다.
도 31은 일 실시형태에 따른 데이터 처리 시스템을 도시하는 블록도이다.
아래에서 논의되는 상세한 설명을 참조하여 본 발명의 다양한 실시형태 및 양태를 설명하며, 첨부된 도면은 다양한 실시형태를 도시한다. 아래 설명과 도면은 본 발명에 대한 설명이며, 본 발명을 한정하려는 것으로 해석되어서는 안된다. 본 발명의 다양한 실시형태에 대한 전반적인 이해를 제공하기 위해 많은 특정 세부사항을 설명한다. 그러나, 어떤 경우에는, 본 발명의 실시형태에 대한 간결한 논의를 제공하기 위해 공지되었거나 통상적인 세부사항들에 대한 설명은 생략한다.
본문에서 "일 실시형태" 또는 "실시형태"에 대한 언급은 상기 실시형태와 결합하여 설명된 특정된 특징, 구조 또는 특성이 본 발명의 적어도 일 실시형태에 포함될 수 있음을 의미한다. 본 명세서의 각 부분에 나타나는 문구 "일 실시형태에서"는 전부 동일한 실시형태를 지칭하는 것은 아니다.
본 명세서에서 HD 맵 또는 HD 포즈와 같은 "HD" 또는 "고화질"에 대한 인용은 매우 높은 정확도 수준을 구비하는 맵 또는 포즈를 가리킨다. 예를 들어, HD 맵은 센티미터 또는 수십 센티미터의 정확도 수준을 가질 수 있다.
GPS 신호가 미약하거나 GPS 신호가 없는 경우 라지 맵 영역에서 나타나는 문제 및 계산의 복잡성 문제를 해결하기 위해, 맵 영역의 토폴리지 정보(예를 들어, 폐쇄 루프)를 사용하여 상기 라지 맵 영역을 보다 작은 파티션으로 분할한다. 다음, 컴퓨팅 클러스터(예를 들어, Hadoop 클러스터)의 각 노드에서 별도로(예를 들어, 병렬로 계산) 각 파티션을 계산함으로써, 각 노드의 계산 부하를 이용하여 전체 계산의 복잡성을 감소시킨다. 이 밖에, 토폴리지 정보는 GPS 신호가 미약하거나 GPS 신호가 없는 경우의 포인트 클라우드 등록을 개선한다.
제1 양태에 따르면, 자율 주행 차량(ADV)의 포인트 클라우드를 등록하는 시스템을 개시한다. 시스템은, LIDAR 센서를 구비한 ADV로부터 복수의 포인트 클라우드 및 대응되는 포즈를 수신하고, 상기 LIDAR 센서는 맵으로 드로잉될 주행 가능한 영역의 포인트 클라우드를 캡처하되, 상기 포인트 클라우드는 제1 좌표계에 대응된다. 시스템은 포인트 클라우드에 의해 캡처된 주행 가능한 루프 정보에 기반하여 포인트 클라우드 및 대응되는 포즈를 하나 또는 복수의 루프 파티션으로 분할하고, 각 루프 파티션에 대해, 포인트 클라우드를 등록하기 위해 루프 파티션에 대응되는 포인트 클라우드에 최적화 모델을 적용하되, 포인트 클라우드를 제1 좌표계로부터 제2 좌표계(예를 들어, UTM 좌표계와 같은 글로벌 좌표계 또는 절대 좌표계)로 변환시키는 것을 포함한다. 시스템은 포즈 그래프 알고리즘을 사용하여 하나 또는 복수의 루프 파티션을 함께 병합시키되, 병합된 포인트 클라우드의 파티션을 이용하여 ADV 주변의 운전 환경을 감지한다.
제2 양태에 따르면, 시스템은 ADV의 하나 또는 복수의 LIDAR 센서로부터 포인트 클라우드 프레임 스트림을 실시간으로 수신하고, 또한 대응되는 포즈를 실시간으로 수신한다. 시스템은 프레임 스트림의 각 프레임 중 포인트의 기하학적 형상 또는 공간적 속성에 기반하여, 프레임 스트림을 위한 각 프레임의 세그먼트 정보를 추출하되, 세그먼트 정보는, 제1 포즈에 대응되는 적어도 제1 프레임의 하나 또는 복수의 세그먼트를 포함한다. 시스템은 세그먼트 정보에 기반하여 프레임 스트림을 등록한다. 시스템은 프레임 등록에 기반하여 프레임 스트림을 위한 제1 포인트 클라우드 맵을 생성한다.
제3 양태에 따르면, 시스템은 ADV의 하나 또는 복수의 LIDAR 센서에 의해 캡처된 복수의 포인트 클라우드를 수신하고, 또한 대응되는 포즈를 수신한다. 시스템은 ADV의 하나 또는 복수의 이미지 캡처 센서로부터 복수의 RGB(레드, 블루, 및 그린) 이미지를 수신하고, RGB 포인트 클라우드를 획득하기 위해 RGB 이미지와 포인트 클라우드를 동기화한다. 시스템은 RGB 포인트 클라우드로부터 특징을 추출하되, 상기 특징은 RGB 포인트 클라우드의 컨텍스트 정보 및 공간 정보를 포함한다. 시스템은 추출된 특징에 기반하여 RGB 포인트 클라우드를 등록하고, RGB 포인트 클라우드의 등록에 기반하여 포인트 클라우드 맵을 생성한다.
제4 양태에 따르면, 시스템은, ADV에 의해 네비게이팅된 도로를 식별하되, 상기 도로는 하나 또는 복수의 LIDAR 센서에 의한 하나 또는 복수의 포인트 클라우드를 통해 캡처된 것이다. 상기 시스템은 포인트 클라우드로부터 식별된 도로의 도로 표시 정보를 추출하되, 상기 도로 표시 정보는 식별된 도로의 하나 또는 복수의 도로 표시를 나타낸다. 시스템은 도로 표시에 기반하여 도로를 하나 또는 복수의 도로 파티션으로 분할하고, 도로 파티션에 기반하여 포인트 클라우드 맵을 생성하되, 포인트 클라우드 맵을 사용하여 ADV 주변의 운전 환경을 나타낸다.
제5 양태에 따르면, 시스템은 포인트 클라우드의 초기 프레임에 기반하여 점용 그리드 맵을 생성한다. 시스템은 포인트 클라우드의 하나 또는 복수의 후속 프레임을 수신하고, 후속 프레임 중 각각에 대해, 시스템은 후속 프레임에 기반하여 점용 그리드 맵을 업데이트한다. 시스템은 상기 업데이트에 기반하여 하나 또는 복수의 비정상(이상) 복셀을 식별하고, 비정상 복셀이 벽 객체에 속하는지 여부를 확정하며, 비정상 복셀이 벽 객체에 속하는 것으로 확정된 것에 응답하여 비정상 복셀을 후속 프레임의 고스트 효과 복셀로 표시한다.
도 1은 본 발명의 일 실시형태에 따른 자율 주행 차량 네트워크 구성을 도시하는 블록도이다. 도 1을 참조하면, 네트워크 구성(100)은 네트워크(102)를 통해 하나 또는 복수의 서버(103) 내지 서버(104)에 통신적으로 연결될 수 있는 자율 주행 차량(101)을 포함한다. 하나의 자율 주행 차량이 도시되어 있지만, 복수의 자율 주행 차량이 네트워크(102)를 통해 상호 연결될 수 있으며 및/또는 서버(103 내지 104)에 연결될 수 있다. 네트워크(102)는 유선 또는 무선의 근거리 통신망(LAN), 인터넷과 같은 광역 통신망(WAN), 셀룰러 네트워크, 위성 네트워크 또는 이들의 조합과 같은 임의의 유형의 네트워크일 수 있다. 서버(103 내지 104)는 네트워크 또는 클라우드 서버, 애플리케이션 서버, 백엔드 서버 또는 이들의 조합과 같은 임의의 유형의 서버 또는 서버 클러스터일 수 있다. 서버(103 내지 104)는 데이터 분석 서버, 콘텐츠 서버, 교통 정보 서버, 지도 및 관심지점(MPOI) 서버 또는 위치 서버 등일 수 있다.
자율 주행 차량은 자율 주행 모드에 처할 수 있도록 구성된 차량을 가리키며, 상기 자율 주행 모드에서 차량은 운전자로부터의 입력이 극히 적거나 전혀 없는 경우 내비게이트되어 환경을 통과한다. 이러한 자율 주행 차량은 차량 작동 환경과 관련된 정보를 검출하도록 구성된 하나 또는 복수의 센서를 갖는 센서 시스템을 포함할 수 있다. 상기 차량 및 그에 관련된 제어기는, 검출된 정보를 사용하여 내비게이트되어 상기 환경을 통과한다. 자율 주행 차량(101)은 수동 모드, 전체 자율 주행 모드 또는 부분적 자율 주행 모드에서 작동될 수 있다.
일 실시형태에서, 자율 주행 차량(101)은 감지 및 계획 시스템(110), 차량 제어 시스템(111), 무선 통신 시스템(112), 사용자 인터페이스 시스템(113), 정보 오락 시스템(114) 및 센서 시스템(115)을 포함하나 이에 한정되지 않는다. 자율 주행 차량(101)은 일반 차량에 포함되는 엔진, 휠, 핸들, 변속기 등과 같은 일부 일상적 부재를 더 포함할 수 있으며, 상기 부재는 차량 제어 시스템(111) 및/또는 감지 및 계획 시스템(110)에 의해 예를 들어, 가속 신호 또는 명령, 감속 신호 또는 명령, 스티어링 신호 또는 명령, 브레이킹 신호 또는 명령 등과 같은 다양한 통신 신호 및/또는 명령을 사용하여 제어할 수 있다.
부재(110 내지 115)는 인터커넥터, 버스, 네트워크 또는 이들의 조합을 통해 서로 통신적으로 연결될 수 있다. 예를 들어, 부재(110 내지 115)는 제어기 근거리 통신망(CAN) 버스를 통해 서로 통신적으로 연결될 수 있다. CAN 버스는 호스트가 없는 응용에서 마이크로 제어기와 장치가 서로 통신하는 것을 허용하도록 설계된 차량 버스 기준이다. 이는 초기에 자동차 내의 다중 전기 배선을 위해 설계된 메시지 기반 프로토콜이지만 많은 다른 환경에서도 사용된다.
아래 도 2를 참조하면, 일 실시형태에서, 센서 시스템(115)은 하나 또는 복수의 카메라(211), 위성항법시스템(GPS) 유닛(212), 관성 측정 유닛(IMU)(213), 레이더 유닛(214) 및 라이다(LIDAR) 유닛(215)을 포함하나 이에 한정되지 않는다. GPS 시스템(212)은 자율 주행 차량의 위치에 관한 정보를 제공하기 위해 작동될 수 있는 트랜시버를 포함할 수 있다. IMU 유닛(213)은 관성 가속도에 기반하여 자율 주행 차량의 위치와 정방향 변화를 감지할 수 있다. 레이더 유닛(214)은 무선 전기 신호로 자율 주행 차량의 현지 환경 내에서 객체를 감지하는 시스템을 표시할 수 있다. 일부 실시형태에서, 감지 객체를 제외하고, 레이더 유닛(214)은 또한 감지 객체의 속도 및/또는 직진 방향을 감지할 수 있다. LIDAR 유닛(215)은 레이저로 자율 주행 차량이 속한 환경에서의 객체를 감지할 수 있다. 다른 시스템 부재를 제외한 외, LIDAR 유닛(215)은 하나 또는 복수의 레이저원, 레이저 스캐너 및 하나 또는 복수의 탐지기를 더 포함할 수 있다. 카메라(211)는 자율 주행 차량 주변 환경의 이미지를 수집하는 하나 또는 복수의 장치를 포함할 수 있다. 카메라(211)는 스틸 카메라 및/또는 비디오 카메라일 수 있다. 예를 들어, 카메라는 회전 및/또는 경사진 플랫폼에 설치되어 기계적으로 이동될 수 있다.
센서 시스템(115)은 소나 센서(sonar sensor), 적외선 센서, 스티어링 센서, 스로틀 센서(throttle sensor), 브레이킹 센서 및 오디오 센서(예를 들어, 마이크로폰)와 같은 다른 센서를 더 포함할 수 있다. 오디오 센서는 자율 주행 차량 주변의 환경으로부터 소리를 수집하도록 구성될 수 있다. 스티어링 센서는 핸들, 차량의 휠 또는 이들의 조합의 스티어링 각도를 감지하도록 구성될 수 있다. 스로틀 센서 및 브레이킹 센서는 차량의 스로틀 위치와 브레이킹 위치를 각각 감지하도록 구성될 수 있다. 어떤 경우에는, 스로틀 센서 및 브레이킹 센서는 통합적 스로틀/브레이킹 센서로 통합될 수 있다.
일 실시형태에서, 차량 제어 시스템(111)은 스티어링 유닛(201), 스로틀 유닛(202)(가속 유닛으로도 지칭됨) 및 브레이크 유닛(203)을 포함하나 이에 한정되지 않는다. 스티어링 유닛(201)은 차량의 방향 또는 직진 방향을 조정하는데 사용된다. 스로틀 유닛(202)은 모터 또는 엔진의 속도를 제어하는데 사용되며, 모터 또는 엔진의 속도는 더 나아가 차량의 속도 및 가속도를 제어한다. 브레이크 유닛(203)은 마찰 제공에 의해 차량의 휠 또는 타이어를 감소시킴으로써 차량을 감속시킨다. 도 2에 도시된 부재는 하드웨어, 소프트웨어 또는 이들의 조합으로 구현될 수 있음을 유의해야 한다.
도 1을 다시 참조하면, 무선 통신 시스템(112)은 자율 주행 차량(101)과 장치, 센서, 다른 차량 등과 같은 외부 시스템의 통신을 허용한다. 예를 들어, 무선 통신 시스템(112)은 하나 또는 복수의 장치와 직접 무선으로 통신하거나 네트워크(102)를 통한 서버(103 내지 104)와 통신하는 통신 네트워크를 통해 무선으로 통신할 수 있다. 무선 통신 시스템(112)은 임의의 셀룰러 통신 네트워크 또는 무선 근거리 통신망(WLAN)을 사용할 수 있으며, 예를 들어, WiFi를 사용하여 다른 부재 또는 시스템과 통신한다. 무선 통신 시스템(112)은 예를 들어 적외선 링크, 블루투스 등을 사용하여 장치(예를 들어, 승객의 이동 장치, 디스플레이 장치, 차량(101) 내의 스피커)와 직접 통신할 수 있다. 사용자 인터페이스 시스템(113)은 차량(101) 내에서 실시되는 주변 장치의 일부일 수 있으며, 예를 들어, 키보드, 터치 스크린 디스플레이 장치, 마이크로폰 및 스피커 등을 포함한다.
자율 주행 차량(101)의 기능 중의 일부 또는 전부는, 감지 및 계획 시스템(110)에 의해 제어되거나 관리될 수 있다. 감지 및 계획 시스템(110)은 필요한 하드웨어(예를 들어, 프로세서, 메모리, 저장 기기) 및 소프트웨어(예를 들어, 운영 체제, 계획 및 루트 안배 순서)를 포함하여, 센서 시스템(115), 제어 시스템(111), 무선 통신 시스템(112) 및/또는 사용자 인터페이스 시스템(113)으로부터 정보를 수신하고 수신된 정보를 처리하며, 출발점으로부터 목적 지점까지의 루트 또는 경로를 계획하고, 이어서 차량이 계획 및 제어 정보에 기반하여 주행하도록 한다. 대체 가능하게, 감지 및 계획 시스템(110)은 차량 제어 시스템(111)과 함께 통합될 수 있다.
예를 들어, 승객으로서 사용자는 예를 들어 사용자 인터페이스를 통해 코스의 출발 위치 및 목적지를 지정할 수 있다. 감지 및 계획 시스템(110)은 코스 관련 데이터를 획득한다. 예를 들어, 감지 및 계획 시스템(110)은 MPOI 서버로부터 위치와 루트 정보를 획득할 수 있으며, 상기 MPOI 서버는 서버(103 내지 104)의 일부일 수 있다. 위치 서버는 위치 서비스를 제공하며, 또한 MPOI 서버는 지도 서비스 및 어느 위치의 POI를 제공한다. 대체 가능하게, 해당 유형의 위치와 MPOI 정보는 감지 및 계획 시스템(110)의 영구 저장 장치에 로컬로 캐싱될 수 있다.
자율 주행 차량(101)이 루트에 따라 이동할 경우, 감지 및 계획 시스템(110)은 교통 정보 시스템 또는 서버(TIS)로부터 실시간 교통 정보를 획득할 수도 있다. 서버(103 내지 104)는 제3자 엔티티에 의해 작동을 수행할 수 있음을 유의해야 한다. 대체 가능하게, 서버(103 내지 104)의 기능은 감지 및 계획 시스템(110)과 함께 통합될 수 있다. 실시간 교통 정보, MPOI 정보 및 위치 정보 및 센서 시스템(115)에 의해 검출 또는 감지된 실시간 현지 환경 데이터(예를 들어, 장애물, 객체, 주변 차량)에 기반하여, 감지 및 계획 시스템(110)은 최적 루트를 계획할 수 있고, 또한 계획한 루트에 따라, 예를 들어 제어 시스템(111)에 의해 차량(101)을 주행하여 안적적 및 고효율적으로 지정된 목적지에 도착한다.
서버(103)는 다양한 클라이언트에 대한 데이터 분석 서비스를 수행하기 위한 데이터 분석 시스템일 수 있다. 일 실시형태에서, 데이터 분석 시스템(103)은 데이터 수집기(121) 및 기계 학습 엔진(122)을 포함한다. 데이터 수집기(121)는 다양한 차량(자율 주행 차량 또는 인류 운전자가 운전하는 일반 차량)으로부터 주행 통계 데이터(123)를 수집한다. 주행 통계 데이터(123)는 상이한 시점에서 차량의 센서에 의해 포착된, 송신된 주행 명령(예를 들어, 스로틀 명령, 브레이킹 명령 및 스티어링 명령) 및 차량의 응답(예를 들어, 속도, 가속도, 감속도, 방향)을 나타내는 정보를 포함한다. 주행 통계 데이터(123)는 예를 들어, 루트(출발 위치 및 목적지 위치를 포함함), MPOI, 도로 조건, 기상 조건 등과 같은 상이한 시점에서의 주행 환경을 설명하는 정보를 더 포함할 수 있다. 주행 통계 데이터(123)는 운전 환경을 나타내기 위해 차량에 장착된 LIDAR 센서에 의해 캡처된 포인트 클라우드 이미지, IMU 및 GPS 센서에 의해 캡처된, 차량의 위치 및 배향을 나타내는 대응되는 포즈와 같은 포인트 클라우드 정보를 더 포함할 수 있다.
주행 통계 데이터(123)에 기반하여 기계 학습 엔진(122)은 다양한 목적을 위해 규칙, 알고리즘 및/또는 예측 모델(124)의 집합을 생성 또는 트레이닝한다. 일 실시형태에서, 알고리즘(124)은 번들 조정(bundle adjustment) 알고리즘, 교류 방향 곱셈기(ADMM) 알고리즘, 이미지 분할 알고리즘(예를 들어, 에지 검출, 모션 검출 등), 동기화 위치 추정 및 매핑(SLAM) 알고리즘, 딥 러닝 신경망 모델을 포함할 수 있다.
알고리즘(124)은 자율 주행 기간에 실시간으로 사용하기 위해 ADV에 업로드될 수 있거나, 또는 서버(103)의 다른 모듈(예를 들어, HD 맵 생성 엔진(125))에 의해 사용될 수 있다. 일 실시형태에서, HD 맵 생성 엔진(125)은 ADV에 의해 수집된 포인트 클라우드를 등록하고, 등록된 포인트 클라우드에 기반하여 HD 맵을 생성할 수 있다. HD 맵 생성 엔진(125)은 서버(103)의 일부로서 도시되었으나 일부 실시형태에서, 엔진(125)은 서버(104)의 일부일 수 있다.
도 3a 및 도 3b는 일 실시형태에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 도시하는 블록도이다. 시스템(300)은 도 1의 자율 주행 차량(101)의 일부로 구현될 수 있으며, 감지 및 계획 시스템(110), 제어 시스템(111) 및 센서 시스템(115)을 포함하나 이에 한정되지 않는다. 도 3a 내지 도 3b를 참조하면, 감지 및 계획 시스템(110)은 포지셔닝 유닛(localization module)(301), 감지 모듈(302), 예측 모듈(303), 결정 모듈(304), 계획 모듈(305), 제어 모듈(306) 및 라우팅 모듈(307)을 포함하나 이에 한정되지 않는다.
모듈(301 내지 307) 중의 일부 또는 전부는 소프트웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 이러한 모듈은 영구 저장 장치(352)에 설치될 수 있고, 메모리(351)에 로딩될 수 있으며, 또한 하나 또는 복수의 프로세서(미도시)에 의해 실행될 수 있다. 이러한 모듈 중의 일부 또는 전부는, 도 2의 차량 제어 시스템(111)의 일부 또는 전부 모듈에 통신적으로 연결될 수 있거나 이들과 함께 통합될 수 있다. 모듈(301 내지 307) 중의 일부는 함께 통합 모듈로 통합될 수 있다.
포지셔닝 유닛(301)은 자율 주행 차량(300)의 현재 위치(예를 들어, GPS 유닛(212)을 이용함)를 확정하고 사용자의 코스 또는 루트와 관련되는 임의의 데이터를 관리한다. 포지셔닝 유닛(301)(지도 및 루트 모듈로도 지칭됨)은 사용자의 코스 또는 루트와 관련되는 임의의 데이터를 관리한다. 사용자는 예를 들어 사용자 인터페이스를 통해 로그인하고 코스의 시작 위치 및 목적지를 지정할 수 있다. 포지셔닝 유닛(301)은 지도 및 루트 정보(311)와 같은 자율 주행 차량(300)에 관하여 다른 어셈블리와 통신하여 코스 관련 데이터를 획득한다. 예를 들어, 포지셔닝 유닛(301)은 위치 서버 및 지도 및 POI(MPOI) 서버로부터 위치 및 루트 정보를 획득할 수 있다. 위치 서버는 위치 서비스를 제공하고, 또한 MPOI 서버는 지도 서비스 및 어느 위치의 POI를 제공하며, 이들은 지도 및 루트 정보(311)의 일부 캐시로 사용될 수 있다. 자율 주행 차량(300)이 루트에 따라 이동할 경우, 포지셔닝 유닛(301)도 교통 정보 시스템 또는 서버로부터 실시간 교통 정보를 획득할 수 있다.
센서 시스템(115)에 의해 제공된 센서 데이터 및 포지셔닝 유닛(301)에 의해 획득된 위치 추정 정보에 기반하여, 감지 모듈(302)은 주변 환경에 대한 감지를 확정한다. 감지 정보는 일반 운전자가 운전자 정주행의 차량 주위에서 감지한 물건을 표시할 수 있다. 감지는 예를 들어, 객체 형태를 이용한 차선 구성, 신호등 신호, 다른 차량의 상대 위치, 행인, 건축물, 횡단 보도 또는 다른 교통 관련 표시판(예를 들어, 정지 표시판, 양보 표시판) 등을 포함할 수 있다. 차선 구성은 예를 들어 차선의 형상(예를 들어, 직선 또는 회전), 차선의 폭, 도로 중의 차선 개수, 단방향 차선 또는 쌍방향 차선, 머징 차선 또는 분류 차선, 출구 차선 등과 같은 하나 또는 복수의 차선을 설명하는 정보를 포함한다.
감지 모듈(302)은 하나 또는 복수의 카메라에 의해 수집된 이미지를 처리하고 분석하기 위해 컴퓨터 시각 시스템 또는 컴퓨터 시각 시스템의 기능을 포함할 수 있으며, 이로써 자율 주행 차량 환경 중의 객체 및/또는 특징을 식별한다. 상기 객체는 교통 신호, 도로 커브, 다른 차량, 행인 및/또는 장애물 등을 포함할 수 있다. 컴퓨터 시각 시스템은 객체 식별 알고리즘, 비디오 추적 및 다른 컴퓨터 시각 기술을 사용할 수 있다. 일부 실시형태에서, 컴퓨터 시각 시스템은 환경 지도를 작성하여 객체를 추적하고 객체의 속도를 추정할 수 있다. 감지 모듈(302)은 또한 레이더 및/또는 LIDAR의 다른 센서에 의해 제공된 다른 센서 데이터에 기반하여 객체를 검출할 수 있다.
각각의 객체에 대해, 예측 모듈(303)은 상기 객체가 상기 상황에서 어떤 행동을 취할지를 예측하되, 어느 시점에 감지된 운전 환경의 감지 데이터에 기반하여 맵/루트 정보(311)와 교통규칙(312)의 집합에 따라 상기 예측을 수행한다. 예를 들어, 객체가 반대 방향의 차량이고 현재 운전 환경이 십자도로를 포함하면, 예측 모듈(303)은 상기 차량이 앞으로 직진할지 아니면 회전할지를 예측한다. 감지 데이터가 십자도로에 신호등이 없다고 나타낼 경우, 예측 모듈(303)은 차량이 십자도로에 진입하기 이전에 가능하도록 완전히 정지해야 함을 예측할 수 있다. 감지 데이터가 차량이 현재 좌회전만 가능한 차선 도는 우회전만 가능한 차선에 있다고 나타낼 경우, 예측 모듈(303)은 차량이 보다 가능하도록 좌회전 또는 우회전할 것으로 각각 예측할 수 있다.
각각의 객체에 대해, 결정 모듈(304)은 객체를 어떻게 처리할 것인지에 관하여 결정한다. 예를 들어, 특정 객체(예를 들어, 교차 루트 중의 다른 차량) 및 객체를 설명하는 메타데이터(예를 들어, 속도, 방향, 회전 각도)에 대해, 결정 모듈(304)은 상기 객체와 어떻게 마주칠 것인가(예를 들어, 추월, 양보, 정지, 초과)를 결정한다. 결정 모듈(304)은 교통 규칙 또는 주행 규칙(312)과 같은 규칙 세트에 따라 이러한 결정을 내릴 수 있으며, 상기 규칙 세트는 영구 저장 장치(352)에 저장될 수 있다.
라우팅 모듈(307)은 출발점으로부터 종점까지의 하나 또는 복수의 루트 또는 경로를 제공하도록 구성된다. 시작 위치로부터 목적지 위치까지의 주어진 코스(예를 들어, 사용자로부터 수신된)에 대해, 라우팅 모듈(307)은 루트 및 지도 정보(311)를 획득하며, 시작 위치로부터 목적지 위치까지 도착하는 모든 가능한 루트 또는 경로를 결정한다. 시작 위치로부터 목적지 위치까지 도착하는 루트 중 각각에 대해, 라우팅 모듈(307)은 지형도의 형태로 기준선을 생성할 수 있다. 기준선은 다른 차량, 장애물 또는 교통 상황과 같은 다른 사물로부터의 어떠한 간섭이 없는 이상적인 루트 또는 경로를 가리킨다. 즉, 도로에 다른 차량, 행인 또는 장애물이 존재하지 않으면, ADV는 정확하거나 엄격하게 기준선을 준수해야 한다. 다음, 지형도는 결정 모듈(304) 및/또는 계획 모듈(305)에 제공된다. 다른 모듈에 의해 제공된 다른 데이터(예를 들어, 포지셔닝 유닛(301)로부터의 교통 상황, 감지 모듈(302)에 의해 감지된 주행 환경 및 예측 모듈(303)에 의해 예측된 교통 상황)에 따라, 결정 모듈(304) 및/또는 계획 모듈(305)은 최적 루트 중의 하나를 선택 및 수정하기 위해 모든 가능한 루트를 검사한다. ADV를 제어하기 위한 실제 경로 또는 루트는 라우팅 모듈(307)에 의해 제공된 기준선과 비슷하면서 상이할 수 있으며, 이는 상기 시간점의 특정된 주행 환경에 의존한다.
감지된 객체 중의 각각의 결정에 기반하여, 계획 모듈(305)은 라우팅 모듈(307)에 의해 제공된 기준선을 기초로 하여 자율 주행 차량에 대해 경로 또는 루트 및 주행 파라미터(예를 들어, 거리, 속도 및/또는 회전 각도)를 계획한다. 즉, 주어진 객체에 대해, 결정 모듈(304)은 상기 객체에 대해 무엇을 할 것인지를 결정하고, 계획 모듈(305)은 어떻게 할 것인지를 결정한다. 예를 들어, 주어진 객체에 대해, 결정 모듈(304)은 상기 객체를 초과하는 것을 결정할 수 있으며, 계획 모듈(305)은 상기 객체의 좌측 또는 우측에서 초과하는지를 결정할 수 있다. 계획 및 제어 데이터는 계획 모듈(305)에 의해 생성되며, 차량(300)이 다음 이동 순환(예를 들어, 다음 루트/경로 구간)에서 어떻게 이동할 것인지를 설명하는 정보를 포함한다. 예를 들어, 계획 및 제어 데이터는 차량(300)이 시간당 30 마일(mph)의 속도로 10 미터를 이동한 다음 25 mph의 속도로 우측 차선으로 이동하도록 지시할 수 있다.
계획 및 제어 데이터에 기반하여, 제어 모듈(306)은, 계획 및 제어 데이터에 의해 한정된 루트 또는 경로에 따라, 적절한 명령 또는 신호를 차량 제어 시스템(111)으로 송신하여 자율 주행 차량을 제어 및 운전한다. 상기 계획 및 제어 데이터는 충족한 정보를 포함하여, 경로 또는 루트에 따라 상이한 시간점에서 적절한 차량 설치 또는 차량 파라미터(예를 들어, 스로틀, 브레이킹 및 스티어링 명령)를 사용하여 차량이 루트 또는 경로의 제1점으로부터 제2점으로 운전하도록 한다.
일 실시형태에서, 복수의 계획 주기(주행 주기로도 지칭됨)(예를 들어, 100 밀리초(ms)의 시간 간격에서)에서 계획 단계를 수행한다. 계획 주기 또는 주행 주기 중 각각에 대하여, 계획 데이터 및 제어 데이터에 기반하여 하나 또는 복수의 제어 명령을 송신할 것이다. 즉, 각각의 100 ms에 대해, 계획 모듈(305)은 다음 루트 구간 또는 경로 구간을 계획하며, 예를 들어, 목표 위치와 ADV가 목표 위치에 도달하기까지 수용되는 시간을 포함한다. 대체 가능하게, 계획 모듈(305)은 구체적인 속도, 방향 및/또는 스티어링각 등을 더 지정할 수 있다. 일 실시형태에서, 계획 모듈(305)은 다음 예정 시간대(예를 들어, 5초)에 대해 루트 구간 또는 경로 구간을 계획한다. 각각의 계획 주기에 대해, 계획 모듈(305)은 사전 주기 중 계획한 목표 위치에 기반하여 현재 주기(예를 들어, 이어진 5초)의 목표 위치를 계획한다. 다음, 제어 모듈(306)은 현재 주기의 계획 데이터 및 제어 데이터에 기반하여 하나 또는 복수의 제어 명령(예를 들어, 스로틀 명령, 브레이킹 명령, 스티어링 제어 명령)을 생성한다.
결정 모듈(304)과 계획 모듈(305)은 통합 모듈로 통합될 수 있음을 유의해야 한다. 결정 모듈(304)/계획 모듈(305)은 항법시스템 또는 항법시스템의 기능을 포함하여 자율 주행 차량의 주행 경로를 결정할 수 있다. 예를 들어, 항법시스템은 자율 주행 차량이 하기와 같은 경로에 따라 이동하는데 영향을 미치기 위한 일련의 속도 및 직진 방향을 결정할 수 있다. 즉 상기 경로는 자율 주행 차량이 기본적으로 감지되는 장애물을 피하면서 최종 목적지까지의 차선 기반 경로에 따라 직진하도록 하는 경로이다. 목적지는 사용자 인터페이스 시스템(113)에 의해 수행되는 사용자 입력에 따라 설정될 수 있다. 항법시스템은 자율 주행 차량이 주행하는 동시에 주행 경로를 동적으로 업데이트할 수 있다. 항법시스템은 GPS 시스템 및 하나 또는 복수의 지도로부터의 데이터를 합병하여 자율 주행 차량의 주행 경로를 결정한다.
도 4는 일 실시형태에 따른 HD 맵 생성 엔진의 예시를 도시하는 블록도이다. HD 맵 생성 엔진은 포인트 클라우드를 등록하고 포인트 클라우드 등록에 기반하여 HD 맵을 생성할 수 있다. 도 4를 참조하면, HD 맵 생성 엔진(125)은 포인트 클라우드 수신기 모듈(401), 포인트 클라우드 다운 샘플링 모듈(403), 루프(loop) 정보 결정기 모듈(405), 파티션 모듈(407), 최적화 솔버 모듈(409), 결합기 모듈(411)과 같은 복수의 모듈을 포함할 수 있다. 이러한 모듈 중 일부 또는 전부는 더 적은 모듈로 통합되거나 더 많은 모듈로 분할될 수 있음에 유의해야 한다.
포인트 클라우드 수신기 모듈(401)은, 포인트 클라우드(예를 들어, ADV의 LIDAR 센서에 의해 캡처된 LIDAR 이미지) 및 대응되는 포즈(예를 들어, 위치 및 배향)를 수신할 수 있다. 상기 예시에서, 포인트 클라우드는 특정 시점에서 LIDAR 장치에 의해 캡처된 한 그룹의 데이터 포인트를 가리킨다. 각 데이터 포인트는 모두 데이터 포인트의 위치 정보(예를 들어, x, y 및 z 좌표)와 연관된다. 포인트 클라우드 다운 샘플링 모듈(403)(이는 선택적일 수 있음)은 공간적이거나 시간적으로 포인트 클라우드를 다운 샘플링할 수 있다. 루프 정보 결정기 모듈(405)은 지리적 루프를 형성하는 주행 가능한 영역에 대응되는 한 그룹의 포인트 클라우드에 대해 폐쇄 루프(loop closure)가 존재하는지 여부를 확정할 수 있다. 파티션 모듈(407)은 폐쇄 정보 또는 블록 파티션 정보에 기반하여, 하나 또는 복수의 주행 가능한 영역을 하나 또는 복수의 파티션으로 분할할 수 있다. 최적화 솔버 모듈(409)은 최적화 알고리즘(도 4의 알고리즘(415) 또는 도 1의 알고리즘(124)의 일부인 번들 조정 또는 ADMM 알고리즘 등)을 파티션에 대응되는 포인트 클라우드 및 포즈에 적용하여, 정확한 HD LIDAR 포즈를 생성할 수 있다. 결합기 모듈(411)은 HD 맵을 생성하기 위해 복수의 파티션을 함께 병합시킬 수 있다. 등록은 맵 영역으로 드로잉하기 위한 포인트 클라우드 데이터의 정합을 가리킨다.
도 5는 일 실시형태에 따른 HD 맵 생성 시스템의 예시를 도시하는 블록도이다. HD 맵 생성 시스템(500)은 HD 맵 생성 개요를 도시한다. HD 맵 생성 시스템(500)은 도 1의 HD 맵 생성 엔진(125)의 일부일 수 있다. 도 5를 참조하면, 일 실시형태에서, HD 맵 생성 시스템(500)은 포인트 클라우드 등록 서브 시스템(501) 및 HD 맵 생성 서브 시스템(502)을 포함한다. 포인트 클라우드 등록 서브 시스템(501)은(예를 들어, 각각 IMU(213), GPS 유닛(212) 및 LIDAR 유닛(215)으로부터) IMU 신호, GPS 신호 및 LIDAR 이미지(503)를 입력으로서 수신하고, 수신된 입력에 기반하여 HD 포즈(504)를 생성한다(또는 LIDAR 이미지(503)에 대해 포즈를 정합한다). 다음, HD 맵 생성 서브 시스템(502)은 LIDAR 이미지(503) 및 HD 포즈(504)을 입력으로서 수신하고, 이러한 입력에 기반하여 HD 맵(505)을 생성할 수 있다.
도 6은 일 실시형태에 따른 HD 맵 생성 시스템을 위한 파이프라인의 예시를 도시하는 블록도이다. 파이프라인(600)은 HD 맵 생성 시스템(예를 들어, 도 5의 시스템(500)) 또는 HD 맵 생성 엔진(예를 들어, 도 4의 엔진(125))을 위한 파이프라인일 수 있다. 도 6을 참조하면, 일 실시형태에서, 파이프라인(600)은 다운 샘플링 프로세스(601), 분할 프로세스(602), Hadoop 및 메시지 전달 인터페이스(MPI)병렬 등록 프로세스(603), 포즈 그래프 정합 프로세스(604) 및 포즈 조정 프로세스(605)를 포함하나 이에 한정되지 않는다. 이러한 동작(601 내지 605) 중 일부는 상이한 처리 노드에 의해 직렬, 병렬 또는 파이프라인의 방식으로 수행될 수 있으며, 이는 맵 생성 시스템에 의해 할당될 수 있다. 상이한 프로세스에 대해 하기와 같이 설명한다.
파이프라인의 입력은 원 포인트 클라우드일 수 있으며, 이들의 포즈는, 하나 또는 복수의 ADV에 장착된 LIDAR 센서에 의해 태스크 시나리오에서 수집된 것이다. 일반적으로, 입력은 수만 또는 수십만 개의 최적화 또는 정합할 LIDAR 포즈를 포함한다. 파이프라인(600)을 위한 입력 포인트의 개수를 최소화하기 위해, 다운 샘플링 프로세스(601)는 연속적인 방식을 통해 공간적 및/또는 시간적으로 포즈를 다운 샘플링한다.
일 실시형태에서, 프로세스(601)는 공간적으로 포인트 클라우드를 다운 샘플링할 수 있다. 예를 들어, 프로세스(601)는 공간 슬라이딩 윈도우를 결정할 수 있되, 슬라이딩 윈도우는 기설정된 반경을 갖는 원형 윈도우일 수 있다. 다음, 프로세스(601)는 추가 처리를 위해 공간 윈도우 내의 모든 포인트 클라우드에 대해 하나의 LIDAR 포인트 클라우드 및 대응되는 포즈를 식별할 수 있다. 다른 실시형태에서, 프로세스(601)는 추가 처리를 위해 식별되지 않은 다른 LIDAR 포인트 클라우드 및 이에 대응되는 포즈를 처리할 수 있다. 일 실시형태에서, 관심 공간 영역(예를 들어, 슬라이딩 윈도우의 중심 영역)에 기반하여 하나의 LIDAR 포인트 클라우드를 식별할 수 있다.
다른 실시형태에서, 프로세스(601)는 시간적으로 포인트 클라우드를 다운 샘플링할 수 있다. 예를 들어, 프로세스(601)는 각각의 공간 슬라이딩 윈도우(예를 들어, 타임 스탬프를 사용)에 대해 하나의 시계열의 LIDAR 포인트 클라우드를 추적하기 위해 시간 슬라이딩 윈도우를 결정할 수 있다. 다음, 프로세스(601)는 추가 처리를 수행하기 위해 각각의 시계열에 기반하여 하나의 LIDAR 포인트 클라우드 및 이에 대응되는 포즈를 식별할 수 있다. 예를 들어, 두개의 시계열(즉, 두개의 시간 클러스터(cluster))가 존재하는 경우, 프로세스(601)는 두개의 시계열 중 각각에 대해 포인트 클라우드 및 대응되는 포즈를 유지한다. ADV가 빨간 신호등에 정지된 시나리오에 있어서, 시간적으로 포인트 클라우드를 다운 샘플링하는 것은 특히 유용하다. 이 경우, 정지된 ADV는 하나의 시계열과 거의 동일한 LIDAR 프레임을 캡처할 수 있으나 하나의 LIDAR 포인트 클라우드만 유용하다. 따라서, 다운 샘플링은, 추가 처리를 위해 상기 빨간 신호등에 대해 포인트 클라우드와 유사한 상기 시계열 중 복수의 LIDAR 포인트 클라우드를 캡처하는 대신, 추가 처리를 위해 상기 시계열에서 하나의 LIDAR 포인트 클라우드를 식별한다. 따라서, 다운 샘플링은 중복되거나 유사한 포인트 클라우드 데이터의 개수를 줄이고 파이프라인의 입력 데이터를 최적화한다. 다음, 프로세스(602)를 통해 다운 샘플링된 포인트 클라우드를 분할한다.
일 실시형태에서, 분할 프로세스(602)는 하나 또는 복수의 컴퓨터 시각 알고리즘(예를 들어, 에지 검출 및/또는 이미지 분할 알고리즘)에 기반하여 폐쇄 루프 정보를 확정한다. 예를 들어, 프로세스(602)는 코너 검출(corner detection) 알고리즘을 사용하여 특징 또는 이미지 에지를 검출할 수 있다. 코너 검출 알고리즘(예를 들어, Harris코너 검출기)은 LIDAR 이미지(예를 들어, 포인트 클라우드)로부터 특징을 추출하고 추론할 수 있다. 다음, 프로세스(602)는 대응되는 포즈, 검출된 특징 및/또는 차량의 시간 및 속도 정보의 집합(이는 차량의 위치를 예측할 수 있음)의 조합에 기반하여 하나 또는 복수의 루프를 검출하고 추적할 수 있다. 다른 실시형태에서, 도로 윤곽 또는 도로 윤곽의 특징에 기반하여 도로 폐쇄 루프를 확정한 후, 프로세스(602)는 폐쇄 루프 정보에 기반하여 포인트 클라우드를 하나 또는 다수 그룹의 포인트 클라우드로 분할함으로써 한 그룹의 포인트 클라우드가 루프에 대응되도록 한다.
일 실시형태에서, 검출된 루프가 기설정된 임계값보다 큰 영역에 걸쳐지면, 분할 프로세스(602)는 공간 분할을 루프 파티션에 적용하고 추가로 루프 파티션을 두개 또는 두개 이상의 블록 파티션으로 분할할 수 있다. 이에 따라, 각 파티션의 계산 부하는 기설정된 임계값을 초과하지 않게 된다. 일 실시형태에서, 루프는 복수의 기설정된 공간 영역으로 분할된다. 다음, 분할된 포인트 클라우드는 Hadoop 및 메시지 전달 인터페이스(MPI)를 통해 프로세스(603) 중 노드 클러스터를 통해 병렬로 등록될 수 있다.
포인트 클라우드 등록은, 포인트 클라우드와 참조 포즈 또는 참조 포인트 클라우드를 정합하는 것을 의미한다. 각 루프 파티션 또는 블록 파티션에 있어서, 파티션 중의 포인트 클라우드를 정합하기 위해, 이러한 포인트 클라우드에 대한 HD LIDAR 포즈를 생성하도록 상기 파티션에 대응되는 포인트 클라우드에 최적화 알고리즘을 적용한다. 예를 들어, 프로세스(603)는 반복 최근점(ICP) 알고리즘을 한 그룹의 포인트 클라우드에 적용할 수 있다. ICP는 두개 포인트 클라우드 간의 차이를 최소화하기 위한 알고리즘임에 유의해야 한다. ICP는 일반적으로 상이한 스캔에 따라 2D 또는 3D 표면을 재구성한다. ICP에 있어서, 하나의 포인트 클라우드는 고정된 상태로 유지(예를 들어, 참조)되고 다른 포인트 클라우드는 상기 참조와 가장 잘 매칭되도록 변환된다. 상기 알고리즘은 에러 메트릭(예를 들어, 매칭 페어의 좌표 사이 제곱 차이의 총계, 또는 다른 포인트 클라우드로부터 참조 포인트 클라우드 까지의 거리)을 최소화하는데 필요한 변환(예를 들어, 수평 이동 및 회전)을 반복적으로 수정한다.
예를 들어, 대응되는 LIDAR 포즈를 갖는 포인트 클라우드 i에 있어서, 변환 행렬(예를 들어,
Figure 112019129036274-pct00001
, 여기서, ti는 수평 이동이고, Ri는 회전 변환임)에 대응되는 LIDAR 포즈(x, y, z,(디플렉션, 피치 및 롤))는 포인트 클라우드 i를 상대 좌표계(차량에 대한)로부터 유니버설 가로 메르카토르(UTM) 좌표계에 투영할 수 있다. 다음, 투영 방정식은
Figure 112019129036274-pct00002
이고, 여기서, xk는 한 그룹의 포인트 클라우드 i 중 임의의 포인트이며, ti는 수평 이동이고, Ri는 회전 변환이다.
각 파티션에 있어서, 프로세스(603)는 포인트 클라우드의 포즈에 기반하여 관련 포인트 클라우드 페어(또는 프레임 페어)를
Figure 112019129036274-pct00003
로 식별할 수 있으며, 여기서, 페어
Figure 112019129036274-pct00004
는 포인트 클라우드 i 및 포인트 클라우드 j의 페어를 나타낸다. 다음 두개의 포인트 클라우드 페어 사이의 포인트를
Figure 112019129036274-pct00005
로 한정할 수 있으며, 여기서, xk는 LIDAR 포인트 클라우드 인덱스 I 중 포인트이고, xl는 LIDAR 포인트 클라우드 인덱스 j 중 포인트이며, 여기서,
Figure 112019129036274-pct00006
는. 그리고 상기에 기반하여 최적화할 번들 조정(BA) 식이 하기와 같다.
Figure 112019129036274-pct00007
..(P)
여기서,
Figure 112019129036274-pct00008
는 포인트
Figure 112019129036274-pct00009
의 노름 벡터이다.
상기 식(P)은 최적화 알고리즘(예를 들어, Levenberg Marquardt(LM) 알고리즘)을 통해 해결할 수 있으나, 그 복잡성은 대략 O(m^3)이며, 여기서 m은 프레임 페어의 개수이다. LM 알고리즘은 국소 최소값을 검색하여 비선형 최소 제곱 곡선 피팅 문제를 해결한다. 일 실시형태에서, 식(P)은 하나 또는 복수의 서브 문제로 세분될 수 있고, 이러한 서브 문제에 최적화 알고리즘(예를 들어, ADMM 알고리즘)을 적용하여 별도로 해결할 수 있다. 일 실시형태에서, 노드 클러스터를 사용하여 이러한 서브 문제를 병렬로 해결한다. 예를 들어, 주어진 프레임 페어
Figure 112019129036274-pct00010
에 있어서, m번째 프레임 페어의 i번째 포인트 클라우드의 포즈 변환 행렬은
Figure 112019129036274-pct00011
이며, 여기서, 위 첨자는 프레임 페어 m의 서브 집합의 인덱스를 나타내고, 아래 첨자는 한 그룹의 포인트 클라우드 P 중포인트 클라우드 i의 인덱스를 나타낸다. 다음, 병렬 파이프라인에 기반하여 최적화될 번들 조정식은 다음과 같다.
Figure 112019129036274-pct00012
(
Figure 112019129036274-pct00013
)
여기서,
Figure 112019129036274-pct00014
이고,
Figure 112019129036274-pct00015
이며,
Figure 112019129036274-pct00016
이다.
상기 예시에서, 노드 클러스터의 하나 또는 복수의 노드를 통해 최적화 알고리즘을 수행할 수 있으며, 예를 들어, 각 노드는 하나의 프레임 페어를 처리한다. 일 실시형태에서, 이러한 프레임 페어에 대응되는 타임 스탬프에 기반하여 프레임 페어가 연관되는지 여부를 확정할 수 있다. 예를 들어, 연속적인 타임 스탬프 또는 시간 임계값 내의 프레임 페어는 연관된 프레임 페어일 수 있다. 다른 실시형태에서, 폐쇄 루프 정보에 기반하여 연관된 프레임 페어를 확정할 수 있다. 예를 들어, 별도의 타임 스탬프를 갖지만 동일하거나 유사한 위치와 일치하는 두개의 프레임은 연관되는 프레임(예를 들어, 폐쇄 루프)일 수 있다. 이 경우, 두개의 프레임의 포인트 클라우드는 기본적으로 유사하거나 매칭되어야 한다. 포즈가 각 파티션에 대해 정합되거나 등록되면, 프로세스(604)를 통해 이러한 파티션을 함께 병합시킬 수 있다.
일 실시형태에서, 포즈 그래프 정합 프로세스(604)는 포즈 그래프 정합 알고리즘(예를 들어, 동기화 위치 추정 및 매핑(SLAM) 알고리즘)에 기반하여 각각의 파티션을 더욱 큰 맵 파티션에 병합시킬 수 있다. 일 실시형태에서, 나란히 파티셔닝하기 위한 중첩 영역을 서로 접속시킴으로써 중첩 영역이 한 그룹의 출력만 필요하게 된다. 예를 들어, 중첩 영역이 두개의 영역에 공통인 루트인 경우, 한 그룹의 중첩 루트만 필요하게 된다.
일 실시형태에서, 포즈 조정 프로세스(605)는 또한 이러한 포즈를 개선하거나 UTM 좌표계로 조정할 수 있다. 예를 들어, 상기와 같이 하나의 포즈를 다른 포즈 및 포인트 클라우드를 정합하기 위한 참조 포즈라고 가정하면, 프로세스(605)는 최종 포즈를 적용하여 조정함으로써, UTM 좌표계에 매핑하기 위한 전체 에러를 감소시킬 수 있다. 예를 들어, 프로세스(605)는 최적화 알고리즘을 적용하기 전과 후의 대응되는 포즈를 비교함으로써 GPS 신뢰 수준에 대해 입력된 LIDAR 포즈를 분석한다. 최대 신뢰도로 식별된(복수의) 포즈(예를 들어, 수신된 포즈와 산출된 HD 포즈 사이의 차이가 임계값보다 작음)는 포즈 조정을 위해 유지된다. 다음, 식별된 포즈에 기반하여 모든 포즈에 강체 변환(rigid body transformation)을 적용한다. 강체 변환은 변환할 객체의 형상 및 크기를 유지하는 변환이다. 여기서, 회전 변환 또는 반사 변환은 강체 변환이나 스케일링은 강체 변환이 아니다. 마지막으로, 조정된 포즈를 갖는 포인트 클라우드를 사용하여 고화질(HD) 3D포인트 클라우드 맵을 생성한다. 일 실시형태에서, 3D포인트 클라우드 맵을 평면도를 구비한 2D 위치 추정 맵으로 변환될 수 있다.
도 7a는 일 실시형태에 따른 폐쇄 루프를 구비하는 맵 영역의 도면이다. 도 7a를 참조하면, 폐쇄 루프(701)는 단일 도로(예를 들어, 원형) 또는 두개 또는 두개 이상의 도로의 조합에 의해 형성된 루프일 수 있다. 도 7a에 도시된 바와 같이, 폐쇄 루프(701)는 고속도로 및 도로의 조합에 의해 형성된 루프이며, 고속도로 및 도로 양자는 모두 주행 가능한 도로이다. 일 실시형태에서, 폐쇄 루프는 가장 작은 주행 가능한 루프이다. 여기서, 폐쇄 루프(701)는 길이 방향으로 연장되어 폐쇄 루프(701)를 통과하는 복수의 다른 섹션을 포함하나, 폐쇄 루프(701)는 폐쇄 루프 내의 다른 도로를 포함하거나 포함하지 않을 수 있다. 다시 말하면, 폐쇄 루프 중 포인트 클라우드의 포즈를 정합하는데 필요한 계산 부하의 임계값에 기반하여 폐쇄 루프(701)(획득할 도로 분기)를 식별할 수 있다. 일 실시형태에서, 폐쇄 루프를 둘러싸는 공간 영역의 임계값에 기반하여 폐쇄 루프를 식별한다.
도 7b는 일 실시형태에 따른 LIDAR 이미지의 2차원 평면도의 사진이다. 도 7b를 참조하면, 2D 평면도는 HD 3D포인트 클라우드 맵으로부터 생성된 위치 추정 맵의 일부일 수 있다. 여기서, 도 7b의 2D 평면도 LIDAR 맵은 도 7a의 위치(703)의 뷰에 대응될 수 있다.
도 8은 일 실시형태에 따른 방법의 예시를 도시하는 흐름도이다. 프로세스(800)는 소프트웨어, 하드웨어 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 예를 들어, 프로세스(800)는 자율 주행 차량의 맵 생성 엔진(예를 들어, 서버(103)의 HD 맵 생성 엔진(125))에 의해 수행될 수 있다. 도 8을 참조하면, 블록 (801)에서, 프로세싱 로직은, LIDAR 센서를 구비한 ADV로부터 복수의 포인트 클라우드 및 대응되는 포즈를 수신하고, 상기 LIDAR 센서는 맵으로 드로잉될 주행 가능한 영역의 포인트 클라우드를 캡처하되, 여기서, 이러한 포인트 클라우드 페어는 제1 좌표계에 대응된다. 블록 (802)에서, 프로세싱 로직은, 포인트 클라우드에 의해 캡처된 주행 가능한 루프 정보에 기반하여, 이러한 포인트 클라우드 및 대응되는 포즈를 하나 또는 복수의 루프 파티션으로 분할한다. 블록 (803)에서, 루프 파티션 중 각각에 대해, 포인트 클라우드를 등록하기 위해, 루프 파티션에 대응되는 포인트 클라우드에 최적화 모델을 적용하되, 프로세싱 로직은, 포인트 클라우드를 제1 좌표계에서 제2 좌표계로 변환하는 것을 포함한다. 블록 (804)에서, 프로세싱 로직은 포즈 그래프 알고리즘을 사용하여 하나 또는 복수의 루프 파티션을 함께 병합시키되, 병합된 포인트 클라우드 파티션을 이용하여 ADV 주변의 운전 환경을 감지한다.
일 실시형태에서, 수신된 포인트 클라우드를 시간 슬라이딩 윈도우에 따라 시간적으로 다운 샘플링하고, 수신된 포인트 클라우드를 기설정된 공간 반경을 갖는 공간 윈도우에 따라 공간적으로 다운 샘플링한다. 다른 실시형태에서, 주행 가능한 루프 정보는 폐쇄 루프 포인트를 포함하고, 상기 폐쇄 루프 포인트는 도로 윤곽에 기반하여, 주행 가능한 도로의 폐쇄 루프를 식별한다.
일 실시형태에서, 루프 파티션을 위한 복수의 포인트 클라우드 및 대응되는 포즈가, 기설정된 공간 영역보다 큰 공간 영역에 걸쳐지면, 프로세싱 로직은 루프 파티션을 기설정된 공간 영역보다 작거나 같은 복수의 블록 파티션으로 분할한다. 일 실시형태에서, 최적화 모델을 적용하는 단계는, 번들 조정 최적화 모델에 기반하여 반복 최근점 문제를 해결하여 루프 파티션을 위한 포인트 클라우드를 등록하는 단계를 포함하고, 이는 루프 파티션의 포인트 클라우드 및 대응되는 포즈 중 각각을 상대 좌표계로부터 UTM 좌표계에 투영하고, 루프 파티션에 대해 관련되는 프레임을 페어링하고, 포즈 페어에 대한 최적화 문제를 해결하여 루프 파티션에 대해 투영된 포인트 클라우드를 등록하는 것을 포함한다.
일 실시형태에서, 교류 방향 곱셈기(ADMM) 최적화 프레임워크를 통해 각 루프 파티션의 최적화 문제를 병렬로 해결한다. 다른 실시형태에서, 파티션을 함께 병합시키는 단계는 두개 또는 두개 이상의 루프 파티션을 위한 중첩 루트를 식별하고, 두개 또는 두개 이상의 루프 파티션의 중첩 루트를 함께 병합시키며, 두개 또는 두개 이상의 루프 파티션을 함께 병합시키는 단계를 포함한다.
일 실시형태에서, 프로세싱 로직은 또한 병합된 파티션의 특징 간의 차이가 최소화되도록 병합된 파티션의 포즈에 포즈 조정 알고리즘을 적용한다. 다른 실시형태에서, 포즈 조정 알고리즘을 적용하는 단계는 병합된 파티션의 포즈에 강체 변환을 적용하는 단계를 포함하고, 상기 강체 변환은 임계값을 초과하는 신뢰도를 갖는 포즈에 기반하여 결정된 것이다.
도 9는 일 실시형태에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 도시하는 블록도이다. 시스템(900) 은 도 1의 자율 주행 차량(101)의 일부로 구현될 수 있으며, 감지 및 계획 시스템(110), 제어 시스템(111) 및 센서 시스템(115)을 포함하나 이에 한정되지 않는다. 도 3a의 시스템(300)과 유사하게, 시스템(900)의 감지 및 계획 시스템(110)은 포지셔닝 유닛(301), 감지 모듈(302), 예측 모듈(303), 결정 모듈(304), 계획 모듈(305), 제어 모듈(306) 및 라우팅 모듈(307)을 포함하나 이에 한정되지 않는다. 이 밖에, 시스템(900)은 실시간 맵 생성 모듈(308)을 포함한다.
모듈(301 내지 308) 중의 일부 또는 전부는 소프트웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 이러한 모듈은 영구 저장 장치(352)에 설치될 수 있고, 메모리(351)에 로딩될 수 있으며, 또한 하나 또는 복수의 프로세서(미도시)에 의해 실행될 수 있다. 이러한 모듈 중의 일부 또는 전부는 도 2의 차량 제어 시스템(111)의 일부 또는 전부 모듈에 통신적으로 연결될 수 있거나 이들과 함께 통합될 수 있다. 모듈(301 내지 308) 중의 일부는 함께 통합 모듈로 통합될 수 있다.
현재, ADV에 장착된 고화질 LIDAR 센서의 대량의 포인트에서 ADV를 통해 포인트 클라우드를 수신하는 것은, 대량의 포인트로 인해 대량의 계산 및 메모리 코스트이 발생한다는 기술적 문제가 존재한다. 이 밖에, 고화질 LIDAR 센서는 제한된 시야로 인해 부분적 객체를 관찰할 수 있거나 또는 다른 LIDAR 프레임에서 시야 내의 객체가 다른 객체에 의해 차단될 수 있다. 이 밖에, SLAM과 같은 기술로 인해 SLAM가 추정된 HD 포즈에서 시간이 지남에 따라 드리프트될 수 있다. 일부 실시형태의 기술적 해결수단은 계산 및 메모리 코스트를 감소키는 동시에 SLAM 드리프트를 감소시킨다.
도 10은 일 실시형태에 따른 실시간 HD 맵 생성 모듈의 예시를 도시하는 블록도이다. 실시간 HD 맵 생성 모듈은 포인트 클라우드를 등록하고, 포인트 클라우드 등록에 기반하여 실시간으로 HD 맵을 생성할 수 있다. 도 10을 참조하면, 일 실시형태에서, 실시간 HD 맵 생성 모듈(308)은 예를 들어, 수신기 서브 모듈(1001), 세그먼트 정보 추출 서브 모듈(1003), 프레임 등록/위치 추정 서브 모듈(1005), 맵 생성 서브 모듈(1007), 특징 정보 추출 서브 모듈(1009) 및 폐쇄 루프 검출 서브 모듈(1011) 등 복수의 서브 모듈을 포함할 수 있다. 수신기 서브 모듈(1001)은 ADV의 하나 또는 복수의 LIDAR 센서로부터 LIDAR 이미지 프레임 스트림(예를 들어, 포인트 클라우드 프레임 스트림)을 포함할 수 있다. 서브 모듈(1001)은 또한 ADV로 구성된 IMU 및 GPS 유닛으로부터 포즈 정보를 수신할 수 있으며, 세그먼트 정보 추출 서브 모듈(1003)은 각 LIDAR 이미지 프레임에서 하나 또는 복수의 세그먼트를 추출할 수 있고, 프레임 등록/위치 추정 서브 모듈(1005)은 세그먼트 정보에 기반하여 프레임을 등록하거나 위치 추정할 수 있으며, 맵 생성 서브 모듈(1007)은 프레임 등록에 기반하여 HD 3D포인트 클라우드 맵을 생성할 수 있고, 특징 정보 추출 서브 모듈(1009)은 추출된 각 세그먼트에서 특징을 추출할 수 있으며, 폐쇄 루프 검출 서브 모듈(1011)은 추출된 특징에 기반하여 폐쇄 루프를 검출할 수 있다. 이러한 모듈 중 일부 또는 전부는 필요한 특정 구성에 따라 더 적은 모듈로 통합되거나 더 많은 모듈로 분할될 수 있음에 유의해야 한다.
도 11a는 일 실시형태에 따른 실시간 HD 맵 생성 파이프라인의 예시를 도시하는 흐름도이다. 파이프라인(1100)은 실시간 맵 생성 모듈(도 10의 모듈(308) 등)에 의해 실행되는 파이프라인일 수 있다. 도 11a를 참조하면, 일 실시형태에서, 파이프라인(1100)은 세그먼트 추출 프로세스(1102), 세그먼트 기반 등록 프로세스(1103), 특징 추출 프로세스(1104), 루프 검출 프로세스(1105) 및 포인트 기반 등록 프로세스(1107)를 포함하나 이에 한정되지 않는다.
도 11a를 참조하면, 일 실시형태에서, 파이프라인(1100)은, ADV의 LIDAR 센서로부터 초기 프레임(1101)(예를 들어, 제1 LIDAR 포인트 클라우드 프레임)을 수신한다. 다음, 세그먼트 추출 프로세스(1102)는, 수신된 프레임에서 세그먼트를 수신한다. 세그먼트는 포인트 클라우드, 슈퍼 포인트 또는 두드러진 이미지 영역( 또는 복셀)의 클러스터 즉, 각 표면, 객체, 윤곽 또는 객체의 자연적 부분에 대응되는 영역을 가리킴에 유의해야 한다. 프레임에서 검출된 객체의 구조 정보를 사용하여 이러한 세그먼트 또는 슈퍼 포인트 객체를 추출할 수 있다. 일 실시형태에서, 세그먼트는 세그먼트 타입으로 분류된다. 예시적인 세그먼트 타입 또는 객체 타입은 원주체 객체, 평면 패치 객체(patch object)일 수 있거나, 특별한 기하학적 형상 및 공간적 속성을 갖는 임의의 기하학적 형상의 식별 가능한 객체일 수 있다. 포인트 클라우드 특징은 예를 들어 포인트 클라우드로 표시된 객체의 강도, 텍스처 또는 근접도 등 세그먼트 추출에 사용될 수 있다. 세그먼트 추출 프로세스는 세그먼트를 추출하기 위해 복수의 알고리즘(이는 도 9의 알고리즘/모델(313)의 일부임)을 포인트 클라우드에 적용한다. 예를 들어, 세그먼트 추출 프로세스는 이미지 분할 알고리즘(예를 들어, 에지 검출, 이중 클러스터링, 영역 성장 또는 분수령 변환 알고리즘 등)을 적용하여 LIDAR 프레임에서 세그먼트를 추출한다.
추출된 세그먼트에 기반하여, 세그먼트 기반 등록 프로세스(1103)는 각 세그먼트 타입 프레임의 제한된 포인트 집합을 이용하고 ICP와 같은 최적화 알고리즘(이는 도 9의 알고리즘/모델(313)의 일부임)을 적용하여, 버퍼링 중인 이전의 가장 근접되는 프레임과 동일한 세그먼트 타입에서 매칭을 검색한다. 초기 프레임이 유일한 프레임(예를 들어, 제1 프레임)인 경우, 초기 프레임을 참조 프레임으로 구축할 수 있고, 초기 프레임을 위한 대응되는 포즈는 참조 포즈일 수 있다.
일 실시형태에서, 특징 추출 프로세스(1104)는 현재 프레임의 각 세그먼트로부터 특징 또는 특징 표현을 추출하고, 루프 검출 프로세스(1105)는 추출된 특징과 이전 프레임의 특징을 비교한다. 특징 추출은 차원 축소 프로세스이고, 여기서, 초기 설정된 세그먼트는 처리를 위해 한 그룹의 특징으로 간소화되는 동시에 여전히 정확하고 완전하게 원 세그먼트를 설명한다. 특징의 예시는 세그먼트(예를 들어, 패턴)의 평활도, 선형성 및 포인트의연속성을 포함한다. 상기 비교가 기설정된 임계값(예를 들어, 개수 또는 백분율)을 초과하는 복수의 매칭 특징을 제공하는 경우, 폐쇄 루프가 검출된다. 여기서, 이전 시야와 상이하여 객체는 현재 시야에서 차단되거나 부분적으로 보일 수 있으므로 세그먼트를 비교하는 것이 아니라 특징을 비교한다. 일 실시형태에서, 특징은 고유값에 기반한 특징을 포함하고, 고유값에 기반한 특징은 선형성, 평탄도, 산란, 전체 분산(omni variance)(예를 들어, 부피점 분포 특징) 등 특징을 포함할 수 있다.
일 실시형태에서, 추출된 세그먼트는 타겟 맵에 저장될 수 있고, 세그먼트 또는 세그먼트 정보는 세그먼트의 특징 추출에 사용될 수 있다. 다른 실시형태에서, 프로세스(1105)는 최근접 이웃 탐색, 비감독 기계 학습 알고리즘의 기계 학습 알고리즘(이는 도 9의 알고리즘/모델(313)의 일부임)을 적용하여 두개의 세그먼트가 매칭되는지 여부를 확정할 수 있다. 매칭되는 경우, 세그먼트는 후보 세그먼트 페어이다. 이러한 후보 세그먼트 페어에 기반하여, 기하학적 일관성 추정 알고리즘을 추정함으로써 이러한 세그먼트 사이의 변환(예를 들어, 변환 행렬)을 확정할 수 있다.
다음, 변환 행렬을 사용하여 검출된 폐쇄 루프의 확실성을 검증할 수 있다. 다른 실시형태에서, 기계 학습 모델(예를 들어, 딥 러닝 신경망)을 사용하여 현재 프레임과 이전에 수신된 임의의 프레임 사이에 특징 매칭이 존재하는지 여부를 확정할 수 있다. 예시적인 딥 러닝 신경망은 3개의 층을 포함하는 도 12의 다층 감지기(MLP, 1200)일 수 있다. 입력층은 현재 프레임 및 이전 프레임으로부터 추출된 특징을 수신하고, 히든층은 입력된 각각을 출력층에 연결하고, 출력층은 세그먼트 매칭의 확률을 지시하는 확률 출력 지시기를 갖는다. 도 12의 MLP(1200)는 각각 입력층 및 히든층 중의 4개의 입력 노드 및 4개의 히든 노드만을 도시하였으나, 임의의 개수의 노드로 구현될 수 있다.
기계 학습 모델은 신경망(완전 연결, 로컬 연결 또는 이들의 조합), 서포트 벡터 머신(SVM), 선형 회귀, k-최근접 이웃, 나이브 베이즈, k-평균값 및 랜덤 포레스트 모델을 포함할 수 있으나 이에 한정되지 않는다. 신경망은 임무에 특정된 규칙을 이용하여 프로그래밍하지 않고, 예시(예를 들어, 입력/출력 시나리오를 이용한 트레이닝)를 고려하여 학습하고 임무를 수행하는 기계 학습 모델이다. 신경망은 일련의 히든층 또는 내부층 중 큰 신경 단위 또는 뉴런 집합에 기반한 계산 방법이고, 각 히든층은 한 그룹의 뉴런으로 구성되며, 여기서 각 뉴런은 이전 층 내의 하나 또는 복수의 뉴런에 연결되고, 단일층 내의 뉴런은 완전히 독립적으로 기능할 수 있으며 상기 층의 다른 뉴런과 임의의 연결을 공유하지 않을 수 있다. 신경망은 명시적으로 프로그래밍되는 것이 아니라 자아 학습 및 트레이닝되는 것이다.
도 11a를 참조하면, 프로세스(1106)는 상기 스트림 처리를 위한 추가 프레임이 존재하는지 여부를 확정하고, 존재하면 프로세스(1106)는 프로세스(1102)로 분기하며, 그렇지 않으면 프로세스(1106)는 프로세스(1107)로 진입된다. 프로세스(1107)는 상기 스트림 중 연속적인 프레임의 포인트 클라우드에 기반하여 종래의 ICP 알고리즘을 적용함으로써 프레임 스트림의 포인트 클라우드 등록을 수행한다. 여기서, 초기 단계에서는 프레임 투 프레임(Frame-to-Frame)의 기초상에서 프로세스(1102 내지 1105)을 상기 스트림의 프레임에 반복적으로 적용할 수 있다.
도 11b는 일 실시형태에 따른 폐쇄 루프 위치 추정의 예시를 도시하는 흐름도이다. 도 11a의 루프 검출 프로세스(1105)를 통해 동작(1110)을 수행할 수 있다. 도 11b를 참조하면, 폐쇄 루프(1111) 검출 시, 타겟 맵 또는 세그먼트 맵 생성 프로세스(1112)는, 루프의 프레임에 대해 추출된 이전 세그먼트에 기반하여 타겟 맵을 생성할 수 있다. 세그먼트 맵 또는 타겟 맵은 프레임의 세그먼트 리스트를 저장하는 데이터베이스, 구조 또는 클라스 객체일 수 있다. 이러한 세그먼트는 세그먼트에 대응되는 복수의 포인트로서 저장될 수 있다. 도 13은 일 실시형태에 따른 타겟 맵의 예시를 도시한다. 다시 도 11b를 참조하면, 타겟 맵 및 도 11a의 프로세스(1104)에 의해 수행되는 이전 등록 결과에 기반하여, 프로세스(1113)는 초기 포즈에 대해 최상의 후보 포즈를 검색함으로써 초기 포즈를 업데이트한다. 일 실시형태에서, 업데이트된 초기 포즈에 기반하여, 프로세스(1113)는 등록 결과에 추가로 적용할 변환을 결정하기 위해 반복적인 방법을 초기 포즈 및 등록 결과에 적용함으로써, SLAM에 의한 드리프트를 감소시킨다. 이 경우, 폐쇄 루프가 초기 포즈의 위치 및 방향에 대해 제2 지시를 제공하므로, SLAM 드리프트를 감소시킬 수 있다. 예시된 반복적인 방법은 랜덤 샘플 컨센서스 알고리즘(RANSAC)일 수 있다. RANSAC는 비정상 데이터 포인트를 포함하는 한 그룹의 관측 데이터에 따라 모델을 피팅하는 반복적인 방법으로서, 이 경우 피팅할 모델에 영향을 미치지 않는 비정상 데이터 포인트를 부여해야 한다. 포인트 클라우드가 등록되면 등록 결과를 사용하여 HD포인트 클라우드 맵을 생성할 수 있다.
도 14는 일 실시형태에 따른 방법의 예시를 도시하는 흐름도이다. 프로세스(1400)는 소프트웨어, 하드웨어 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 예를 들어, 프로세스(1400)는 자율 주행 차량의 맵 생성 모듈(예를 들어, 도 9의 실시간 맵 생성 모듈(308))에 의해 수행될 수 있다. 도 14를 참조하면, 블록 (1401)에서, 프로세싱 로직은, ADV의 하나 또는 복수의 LIDAR 센서로부터 포인트 클라우드의 프레임 스트림 및 대응되는 포즈를 실시간으로 수신한다. 블록 (1402)에서, 프로세싱 로직은 프레임 스트림의 각 프레임 내 포인트 기하학적 형상 또는 공간적 속성에 기반하여 상기 프레임의 세그먼트 정보를 추출하되, 세그먼트 정보는 제1 포즈에 대응되는 적어도 제1 프레임의 하나 또는 복수의 세그먼트를 포함한다. 블록 (1403)에서, 프로세싱 로직은 세그먼트 정보에 기반하여 프레임 스트림을 등록한다. 블록 (1404)에서, 프로세싱 로직은 프레임 등록에 기반하여 프레임 스트림에 따라 제1 포인트 클라우드 맵을 생성한다.
일 실시형태에서, 프로세싱 로직은 또한 각 프레임의 각 세그먼트로부터 제1 프레임 및 제2 프레임의 특징을 포함한 하나 또는 복수의 특징을 추출한다. 프로세싱 로직은, 추출된 제1 프레임 및 제2 프레임의 특징에 기반하여 제1 프레임 및 제2 프레임 사이의 폐쇄 루프를 검출하고, 제1 프레임과 제2 프레임 사이의 폐쇄 루프가 검출된 것에 응답하여, 프로세싱 로직은 프레임 등록에 기반하여 제2 프레임에 대해 위치 추정하고, 제2 포인트 클라우드 맵을 생성하기 위해 위치 추정 및 프레임 등록에 기반하여 제1 포즈를 업데이트한다.
다른 실시형태에서, 제1 프레임과 제2 프레임 사이의 폐쇄 루프를 검출하는 단계는, 비감독 기계 학습 알고리즘을 제1 프레임 및 제2 프레임의 세그먼트의 특징에 적용하여, 두개의 세그먼트가 매칭되는지 여부를 확정하는 단계를 포함한다. 다른 실시형태에서, 제1 프레임과 제2 프레임 사이의 폐쇄 루프를 검출하는 단계는, RANSAC 알고리즘을 제1 프레임 및 제2 프레임에 적용하여, 두개의 세그먼트가 매칭되는지 여부를 확정하는 단계를 더 포함한다. 다른 실시형태에서, 비감독 기계 학습 알고리즘은 최근접 이웃 탐색을 포함한다.
다른 실시형태에서, 프레임 투 프레임의 기초상에서, 각 프레임의 각 세그먼트로부터 특징을 실시간으로 추출하고, 제2 프레임은 현재 프레임을 포함한다. 다른 실시형태에서, 하나의 프레임의 기초상에서 프레임 스트림을 실시간으로 등록한다.
일 실시형태에서, 프레임의 세그먼트 정보를 추출하는 단계는, 프레임을 위한 하나 또는 복수의 세그먼트를 저장하기 위해 이미지 분할 알고리즘을 프레임에 적용하여, 프레임을 위한 하나 또는 복수의 세그먼트를 추출하고 세그먼트 맵을 생성하는 단계를 포함한다. 일 실시형태에서, 세그먼트 정보는 원주체 객체, 하나 또는 복수의 평면 패치 객체(patch object) 또는 하나 또는 복수의 매끄러운 표면 객체의 하나 또는 복수의 세그먼트를 포함한다.
하나의 실시형태에서, 세그먼트 정보에 기반하여 프레임 스트림을 등록하는 단계는, 세그먼트 정보에 기반하여 이전 프레임 및 후속 프레임의 복수의 세그먼트를 식별하는 단계; 복수의 세그먼트에 대응되는 복수의 포인트를 식별하는 단계; 및 복수의 포인트에 반복 최근점(ICP) 알고리즘을 적용하여 프레임 등록을 위한 복수의 포인트 중 가장 근접되는 포인트 사이의 거리를 최소화하는 단계를 포함한다.
일 실시형태에서, 프로세싱 로직은 또한 반복 최근점(ICP) 알고리즘을 상기 프레임 스트림 중 각 프레임의 포인트에 적용하여 프레임 스트림을 등록한다. 일 실시형태에서, 특징은 세그먼트를 위한 선형성, 평탄도, 산란 및/또는 전체 분산의 정보를 포함한다. 일 실시형태에서, 특징은 하나 또는 복수의 고유값에 기반한 특징을 포함한다.
도 15는 일 실시형태에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 도시하는 블록도이다. 시스템(1500)은 감지 및 계획 시스템(110), 제어 시스템(111) 및 센서 시스템(115)을 포함하나 이에 한정되지 않는 도 1의 자율 주행 차량(101)의 일부로서 구현될 수 있다. 도 3a의 시스템(300)과 유사하게, 시스템(1500)의 감지 및 계획 시스템(110)은 포지셔닝 유닛(301), 감지 모듈(302), 예측 모듈(303), 결정 모듈(304), 계획 모듈(305), 제어 모듈(306) 및 라우팅 모듈(307)을 포함하나 이에 한정되지 않는다. 이 밖에, 시스템(1500)은 RGB 포인트 클라우드 모듈(309)을 포함한다.
모듈(301 내지 309) 중의 일부 또는 전부는 소프트웨어, 하드웨어 또는 이들의 조합으로 구현될 수 있다. 예를 들어, 이러한 모듈은 영구 저장 장치(352)에 설치될 수 있고, 메모리(351)에 로딩될 수 있으며, 또한 하나 또는 복수의 프로세서(미도시)에 의해 실행될 수 있다. 이러한 모듈 중의 일부 또는 전부는 도 2의 차량 제어 시스템(111)의 일부 또는 전부 모듈에 통신적으로 연결될 수 있거나 이들과 함께 통합될 수 있다. 모듈(301 내지 309) 중의 일부는 함께 통합 모듈로 통합될 수 있다.
포인트 클라우드 및 ADV의 이미지 장치에 의해 캡처된 RGB 이미지의 방법을 사용하여 추가 정보(예를 들어, 컬러)를 포인트 클라우드에 추가한다. 예를 들어, RGB 이미지는, LIDAR 센서가 캡처할 수 없는 환경의 컨텍스트 정보 및 컬러 정보를 관측할 수 있다. 따라서, RGB 이미지와 포인트 클라우드 이미지를 함께 통합함으로써, 특히 LIDAR 포인트 클라우드 이미지(예를 들어, 관목이 존재하는 도로(예를 들어, LIDAR 이미지를 이용하여 분리할 수 없는 공간 특징))만 기반으로 분리될 수 없는 환경의 경우 맵 생성 정확도를 향상시킬 수 있다.
도 16은 일 실시형태에 따른 RGB 포인트 클라우드 모듈의 예시를 도시하는 블록도이다. RGB 포인트 클라우드 모듈은, 특징에 기반한 HD 맵 생성을 위한 RGB/포인트 클라우드 특징을 생성하기 위해, RGB 이미지와 포인트 클라우드 이미지를 통합/동기화할 수 있다. 도 16을 참조하면, 일 실시형태에서, RGB 포인트 클라우드 모듈(309)은, 예를 들어 수신기 서브 모듈(1601), 동기화 서브 모듈(1603), 특징 추출 서브 모듈(1605), 등록 서브 모듈(1607) 및 맵 생성 서브 모듈(1607) 등 복수의 서브 모듈을 포함할 수 있다. 수신기 서브 모듈(1601)은, ADV의 하나 또는 복수의 LIDAR 센서로부터 복수의 LIDAR 포인트 클라우드 이미지 또는 프레임을 수신할 수 있고, 또한 ADV에 장착된 이미지 캡처 장치로부터 복수의 RGB 이미지 또는 프레임을 수신할 수 있다. 동기화 서브 모듈(1603)은, 이러한 이미지가 캡처될 때의 타임 스탬프에 기반하여 포인트 클라우드와 RGB 이미지를 동기화할 수 있다.
특징 추출 서브 모듈(1605)은 RGB 클라우드 포인트로부터 특징 벡터를 추출할 수 있다. 특징 벡터는 프레임을 위한 포인트 클라우드 및 RGB 이미지의 특징을 포함할 수 있다. 등록 모듈은 RGB /포인트 클라우드 특징에 따라 포인트 클라우드를 등록할 수 있다. 다른 실시형태에서, 등록 서브 모듈(1607)은 최적화 알고리즘을 사용하여 포인트 클라우드를 등록할 수 있고, 상기 최적화 알고리즘은 RGB 정보를 구비하며, 상기 RGB 정보와 포인트 클라우드는 최적화 알고리즘의 코스트 함수에 함께 통합된다. 맵 생성 서브 모듈(1607)은 이러한 등록에 기반하여 맵을 생성할 수 있다. RGB 포인트 클라우드 모듈(309)이 ADV의 감지 및 계획 시스템(110)의 일부로서 도시되었으나, RGB 포인트 클라우드 모듈(309)은 도 1의 서버(103)의 HD 맵 생성 엔진(125)의 일부 및/또는 이와 함께 통합될 수 있다. 이러한 모듈 중 일부 또는 전부는 특정된 적용에 따라 더 적은 모듈로 통합되거나 더 많은 모듈로 분할될 수 있음에 유의해야 한다.
이미지 캡처 장치(예를 들어, 카메라)에 의해 캡처된 이미지가 LIDAR 센서 캡처 주파수와 상이한 주파수에 놓일 수 있으므로, 제1 동작은 RGB 이미지와 적합한 포인트 클라우드를 동기화하는 것이다. 동기화는 물리적 동기화를 포함할 수 있고, 물리적 동기화는, 카메라 센서를 물리적 위치에 설치하여, 카메라 센서가 동기화할 LIDAR 센서 유닛의 입체 뷰와 동일하거나 거의 유사한 뷰를 캡처하도록 하는 것을 포함할 수 있다. 예를 들어, 파노라마 카메라(예를 들어, 복수의 카메라로 구성)를 회전하는 LIDAR 센서 유닛에 장착하여 카메라가 LIDAR 센서 유닛에 대응되는 뷰를 갖는RGB 이미지를 캡처할 수 있도록 한다.
유사하게, 플래시 LIDAR 센서에 있어서, 입체뷰 카메라는 플래시 LIDAR 유닛 근처에 장착되어 RGB 이미지를 캡처할 수 있고, 이는 플래시 LIDAR 센서 유닛의 뷰에 대응되는 입체뷰를 갖는다. 다른 실시형태에서, LIDAR 센서 유닛 및 카메라는 오프라인으로 정렬되도록 설정된다. 다른 실시형태에서, 동기화는 타임 스탬프를 사용하여 시간 동기화를 수행하는 것을 포함할 수 있다. 예를 들어, RGB 프레임과 정확한 포인트 클라우드를 매칭시킨다. 예를 들어, 시간 정보 제공기에 의해 제공되는 타임 스탬프는, LIDAR 유닛이 이미지 프레임을 캡처할 때 이미지 프레임과 연관될 수 있다. 일 실시형태에서, 타임 스탬프는 밀리 초 정확도의 임계값을 갖는다.
유사하게, 카메라 유닛은 이미지 프레임을 캡처할 수 있고, 시간 정보 제공기는 캡처 시간을 이용하여 이미지 프레임에 타임 스탬프를 추가할 수 있다. 시간 정보 제공기는 LIDAR와 이미지 캡처 장치 간에서 공유될 수 있다. 일 실시형태에서, 시간 정보 제공기는 계산 시스템의 CPU에 의해 제공되는 로컬 실시간 클록(RTC)이다. 다른 실시형태에서, 시간 정보 제공기는 네트워크를 통해 외부 소스(예를 들어, 시간 서버에 의한 원자 시계)와 주기적으로 동기화된다. 다른 실시형태에서, 시간 정보 제공기는 GPS 신호와 동기화된다.
포인트 클라우드 및 RGB 는 모두 타임 스탬프와 연관되므로, 다른 주파수에서 수신된 포인트 클라우드 및 RGB 이미지를 정렬할 수 있다. 예를 들어, 5 헤르츠 내지 20 헤르츠로 포인트 클라우드를 캡처하고, 대략 60 헤르츠로 RGB 이미지를 캡처하면, 각 포인트 클라우드 프레임은 그의 타임 스탬프에 기반하여 RGB 이미지와 연관될 수 있다. 상기 예시에서, 각각의 포인트 클라우드는 포인트 클라우드 이미지의 타임 스탬프에 가장 근접되는 타임 스탬프의 RGB 이미지를 식별함으로써 적어도 하나의 RGB 이미지와 연관될 수 있다. 연관되지 않은 RGB 이미지는 포인트 클라우드와의 통합/동기화에 사용되지 않으며, 폐기될 수 있다. 일 실시형태에서, RGB 이미지의 타임 스탬프가 대응되는 포인트 클라우드 이미지의 시간 임계값 내에 있는 한, 임의의 RGB 이미지는 상기 포인트 클라우드와 연관될 수 있다. 다른 실시형태에서, RGB 이미지 캡처 주파수가 대응되는 포인트 클라우드 캡처 주파수보다 작으면, 수신된 포인트 클라우드 프레임 중 일부 포인트 클라우드 프레임은 RGB 이미지와 동기화되지 않을 수 있다. 이 경우, RGB 포인트 클라우드는 이전 버전과 호환 가능해야 한다. 즉 특징 추출에는 영향을 미치지 않는다. 특징 추출에는 RGB 정보만 고려된다. 다른 실시형태에서, 이미지 캡처 장치의 RGB 이미지 캡처 주파수를 조정함으로써, LIDAR 센서 유닛과 유사한 주파수로 이미지를 캡처할 수 있다.
RGB 이미지 프레임과 포인트 클라우드 프레임이 동기화되면, LIDAR 프레임의 해당 포인트와 RGB 이미지의 하나 또는 복수의 픽셀이 동기화된다. 도 17은 일부 실시형태에 따른 RGB 포인트 클라우드 동기화의 예시를 도시하는 블록도이다. 도 17을 참조하면, 도 17은 복수의 픽셀을 갖는 RGB 이미지에 적층된 복수의 포인트 클라우드(1701 내지 1709)를 도시한다. LIDAR 이미지와 비교한 RGB 이미지의 해상도(또는 픽셀 밀도)에 따라, 공간 근접도에 기반하여 포인트 클라우드의 포인트를 단일 RGB 픽셀 또는 RGB 픽셀의 클러스터에 매핑할 수 있다. 예를 들어, RGB 컬러 특징에 따라, 포인트(1701)가 픽셀(1711)(별 형상)에 매핑되거나 포인트(1703)가 픽셀( 1713)(매화 형상)에 매핑될 수 있다. 다른 예시에서, 포인트 클라우드와 RGB 사이의 해상도 차이에 따라, 포인트(1705)를 단일 픽셀(1715)에 매핑하거나 포인트(1707)를 픽셀(1717)(사각형 형상)에 매핑하거나 임의의 형상의 픽셀(1719)에 매핑할 수 있다.
일 실시형태에서, 포인트 클라우드의 포인트와 연관될 수 있는 RGB 픽셀에 있어서, 특징 추출 서브 모듈(예를 들어, 도 16의 특징 추출 서브 모듈(1605))은 RGB 픽셀로부터 컨텍스트 및 위치 정보를 표시하는 특징을 추출하고, 동시에 하층 포인트 클라우드에서 공간 분포 및 기하적 특징을 나타내는 정보를 추출할 수 있다. 상기와 유사하게, 복수의 알고리즘을 통해 a와 같은 특징을 추출할 수 있다. 공간 분포의 예시는 3D 특징 중 각각에 대한 확률 분포를 포함한다. 다음, RGB 포인트 클라우드의 특징 벡터 컨텍스트 특징을 생성하기 위해 직렬 연결될 수 있는 상기 2가지 타입의 특징의 예시는, 적어도 컬러 모드 및 하나의 LIDAR 프레임 내지 다음 LIDAR 프레임(예를 들어, 이들은 두개의 상이한 프레임의 동일한 객체임)의, 동일한 컨텍스트를 갖는 두개의 객체가 이러한 객체가 관련성이 있음을 지시하는 높은 확률을 갖도록 이러한 컬러 모드의 복잡성을 포함한다. 위치 정보의 예시는 적어도 인접된 포인트의 인접 정보를 포함한다. 예를 들어, 하나의 특징(예를 들어, 에지)과 추출된 다른 특징(예를 들어, 다른 에지)의 이격된 거리가 먼 경우, 이들은 상이한 것으로 인정된다.
일 실시형태에서, 생성된 특징 벡터를 사용하여 포인트 클라우드에 대해 특징에 기반한 등록을 수행할 수 있다. 예를 들어, RGB 코스트 요소를 갖는 ICP 알고리즘은 RGB 포인트 클라우드의 서브 집합(예를 들어, 특징 벡터의 서브 집합)에 적용되어, 후보 포인트 매칭을 위한 RGB 포인트 클라우드를 최적화함으로써 포인트 클라우드를 위한 HD 포즈를 생성하고, 특징에 기반한 등록 결과를 사용하여 포인트 클라우드 맵을 생성할 수 있다. 다른 실시형태에서, RANSAC 알고리즘과 같은 휴리스틱 알고리즘(이는 도 15의 알고리즘/모델(313)의 일부임)은 특징에 기반하여 등록하기 위해 특징에 적용될 수 있다. 여기서, 대량의 이상치 특징이 존재하는 경우(예를 들어, 이는 등록을 위한 매칭 페어의 특징을 구비하지 않음)에도 RANSAC 알고리즘은 포인트 클라우드를 등록할 수 있다.
다른 실시형태에서, RGB 포인트 클라우드에 대해 RGB 포인트에 기반한 제2 등록을 수행할 수 있다. 여기서, 후보 포인트 매칭을 위한 포인트 클라우드를 최적화하기 위해, RGB 코스트 요소를 갖는 ICP 알고리즘을 모든 RGB 포인트 클라우드에 적용함으로써 HD 포즈를 생성한다. 예를 들어, 코스트 요소는 최소화를 위해 픽셀의 RGB 컬러 정보의 평균값을 병합할 수 있다. 다른 실시형태에서, 4개의 채널(R, G, B 및 깊이) 정보(예를 들어, 3개의 채널은 RGB 요소)를 갖는 RGB 포인트 클라우드를 최적화할 수 있다. 다음, RGB 포인트에 기반한 등록 결과를 사용하여 포인트 클라우드 맵을 생성할 수 있다.
도 18은 일 실시형태에 따른 방법의 예시를 도시하는 흐름도이다. 프로세스(1800)는 소프트웨어, 하드웨어 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 예를 들어, 프로세스(1800)는 도 16의 RGB 포인트 클라우드 모듈(309)과 같은 RGB 포인트 클라우드 모듈에 의해 수행될 수 있다. 도 18을 참조하면, 블록 (1801)에서, 프로세싱 로직은, ADV의 하나 또는 복수의 LIDAR 센서에 의해 캡처된 복수의 포인트 클라우드 및 대응되는 포즈를 수신한다. 블록 (1802)에서, 프로세싱 로직은 ADV의 하나 또는 복수의 이미지 캡처 센서로부터 복수의 RGB 이미지를 수신한다. 블록 (1803)에서, 프로세싱 로직은, RGB 포인트 클라우드를 획득하기 위해 RGB 이미지와 포인트 클라우드를 동기화시킨다. 블록 (1804)에서, 프로세싱 로직은 RGB 포인트 클라우드로부터 특징을 추출하되, 상기 특징은 RGB 포인트 클라우드의 컨텍스트 정보 및 공간 정보를 포함한다. 블록 (1805)에서, 프로세싱 로직은 추출된 특징에 기반하여 RGB 포인트 클라우드를 등록한다. 블록 (1806)에서, 프로세싱 로직은 RGB 포인트 클라우드의 등록에 기반하여 포인트 클라우드 맵을 생성한다.
일 실시형태에서, RGB 포인트 클라우드를 획득하기 위해 RGB 이미지와 포인트 클라우드를 동기화시키는 단계는, 각 포인트 클라우드에 대해 포인트 클라우드의 타임 스탬프를 결정하는 단계; 복수의 RGB 이미지로부터 포인트 클라우드의 타임 스탬프의 시간 임계값 내에 있는 타임 스탬프의 RGB 이미지에 대해 위치 확정하는 단계; 및 하나 또는 복수의 픽셀과 포인트 클라우드의 하나 또는 복수의 포인트를 연관시켜 RGB 이미지와 포인트 클라우드를 연관시키는 단계를 포함한다. 다른 실시형태에서, RGB 포인트 클라우드로부터 특징을 추출하는 단계는, RGB 이미지 및 관련된 포인트 클라우드의 컨텍스트 정보 및 공간 정보에 기반하여 특징을 추출하는 단계를 포함한다.
일 실시형태에서, 컨텍스트 정보는 특징의 컬러 모드 및 컬러 모드의 복잡성을 포함하고, 공간 정보는 이러한 특징의 포인트의 위치와 관련된 정보를 포함한다. 일 실시형태에서, 추출된 특징에 기반하여 포인트 클라우드를 등록하는 단계는, 최적화 알고리즘을 복수의 클라우드 포인트에 적용하는 단계를 포함한다. 일 실시형태에서, 최적화 알고리즘은 반복 최근점(ICP) 알고리즘을 포함한다.
일 실시형태에서, 프로세싱 로직은, 또한 이상치 특징을 위해 RANSAC 알고리즘을 추출된 특징에 적용한다. 일 실시형태에서, 프로세싱 로직은, 또한 포인트에 기반하여 등록하기 위해, RGB 포인트 클라우드에 기반하여 포인트 클라우드를 등록한다. 일 실시형태에서, 포인트에 기반하여 등록하는 단계는, RGB에 기반한 ICP 알고리즘을 등록된 포인트 클라우드에 적용하는 단계를 포함하되, 여기서RGB 정보는 ICP 알고리즘의 코스트 함수에 통합된다.
도 19는 본 발명의 일부 실시형태에 따른 자율 주행 차량 네트워크 구성을 도시하는 블록도이다. 도 19를 참조하면, 네트워크 구성(1900)은 네트워크(102)를 통해 하나 또는 복수의 서버(103) 내지 서버(104)에 통신적으로 연결될 수 있는 자율 주행 차량(101)을 포함한다. 도 1과 유사하게, 서버(103 내지 104)는 네트워크 또는 클라우드 서버, 애플리케이션 서버, 백엔드 서버 또는 이들의 조합과 같은 임의의 유형의 서버 또는 서버 클러스터일 수 있다. 서버(103 내지 104)는 데이터 분석 서버, 콘텐츠 서버, 교통 정보 서버, 맵 및 관심지점(MPOI) 서버 또는 위치 서버 등일 수 있다. 일 실시형태에서, 서버(103)는 맵 파티션 엔진(126)을 포함한다. 이 밖에, 알고리즘/모델(124)은 도로 표시 및 커브 포인트를 추출하기 위해 복수의 알고리즘/모델을 추출할 수 있다. 맵 서버(104)에 의해 제공된 맵(또는 HD 맵 생성 엔진(125)에 의해 생성된 맵)에서 사용될 경우, 엔진(126)은 추출된 도로 표시 및 커브 포인트에 기반하여 상기 맵을 하나 또는 복수의 부분으로 분할한다.
다음, 자율 주행 기간에 ADV에 의해 실시간으로 사용되도록, 맵을 한 부분씩 ADV에 업로드할 수 있다. 엔진(126)은 서버(103)의 일부로서 도시되었으나, 일부 실시형태에서, 엔진(126)은 서버(104)의 일부일 수 있다. 다른 실시형태에서, 엔진(126)은 도 3a의 감지 및 계획 시스템(110)의 일부와 같은 ADV(101)의 일부일 수 있다. 예를 들어, 맵은 ADV(101)에 의해 실시간으로 생성될 수 있으며, 맵 파티션 엔진(예를 들어, 엔진(126))은 맵을 ADV(101)로부터 한 부분씩 서버(103/104)에 업로드할 부분으로 분할할 수 있다.
도 20은 일 실시형태에 따른 맵 파티션 엔진의 예시를 도시하는 블록도이다. 맵 파티션 엔진(126)은 맵의 도로 및 커브를 추출하고 상기 추출에 기반하여 맵을 분할할 수 있다. 도 20을 참조하면, 일 실시형태에서, 맵 파티션 엔진(126)은 도로 식별기 모듈(2001), 도로 표시 추출 모듈(2003), 커브 특징 추출 모듈(2005), 라벨러 모듈(2007), 곡선 생성 모듈(2009) 및 파티션 모듈(2011)과 같은 복수의 모듈을 포함할 수 있다.
도로 식별기 모듈(2001)은 포인트 클라우드 맵 내의 도로를 식별할 수 있고, 도로 표시 추출 모듈(2003)은 식별된 도로로부터 도로 표시를 추출할 수 있으며, 커브 특징 추출 모듈(2005)은 식별된 도로에 대해 커브 특징을 추출할 수 있고, 라벨러 모듈(2007)은 커브 특징과 관련된 커브 포인트를 표시할 수 있으며, 곡선 생성 모듈(2009)은 커브 포인트를 표시하는 곡선을 생성할 수 있고, 파티션 모듈(2011)은 식별된 도로 표시 및 커브 곡선에 기반하여 맵을 분할할 수 있다.
도 21은 일 실시형태에 따른 도로 표시 추출의 예시를 도시하는 흐름도이다. 흐름도(2100)는 도 20의 도로 식별기 모듈(2001) 및/또는 도로 표시 추출 모듈(2003)에 의해 수행될 수 있다. 일 실시형태에서, 도로 포인트 클라우드를 식별하기 전에, 맵 글로벌 정적 포인트 클라우드 맵(GSPCM) 생성 프로세스를 통해 포인트 클라우드를 처리한다. 생성 프로세스는, 예를 들어 맵 생성을 위해 정적 객체만 남기는 등 맵의 생성을 위해 임의의 동적 객체를 제거한다. 상이한 시간에 지리적 위치를 적어도 두번 캡처함으로써 동적 객체를 검출할 수 있다. 다음, 이미지 분할 알고리즘을 사용하여 정적 객체 및 동적 객체를 식별할 수 있다. 2회의 재방문에서 변경된 특징을 갖는 이미지 세그먼트는 동적 객체로 표시될 수 있으므로, 맵 생성을 위해 제거된다. 다음, 맵 생성 프로세스는 글로벌 리얼월드 맵, 예를 들어 GPS 장치에 사용되는 맵과 유사한 맵을 생성할 수 있다. 일 실시형태에서, 맵 생성은 정적 프레임 포인트에 변환을 적용하여 GSPCM을 획득한다. 다음, 노면 포인트 및 도로 표시를 추출하기 이전에 GSPCM을 포인트 클라우드의 2차원(2D) 그리드(또는 블록)로 분할한다. 예시된 변환은 다음과 같을 수 있다.
Figure 112019129036274-pct00017
여기서, Ti는 제i 프레임 변환 행렬을 나타내고,
Figure 112019129036274-pct00018
는 제i 프레임의 제j 포인트를 나타내며, M은 제i 프레임을 위한 포인트의 개수를 나타내고, N은 포인트 클라우드 프레임의 총 개수를 나타낸다.
도 21을 참조하면, 일 실시형태에서, 흐름도(2100)는 포인트 클라우드(2101)를 수신한다. 포인트 클라우드(2101)는 GSPCM의 2D 그리드의 포인트 클라우드 블록일 수 있다. 다음, 프로세스(2103)는 포인트 클라우드(2101)로부터 지면 포인트를 추출할 수 있다. 일 실시형태에서, 포인트 클라우드(2101)의 포인트의 높이 정보에 기반하여 지면 포인트를 추출할 수 있다. 예를 들어, 프로세스(2103)는 포인트 클라우드로부터 최저 높이를 갖는 단일 포인트를 식별할 수 있다. 다음, 식별된 최저 높이의 기설정된 임계값 내의 높이를 갖는 포인트를 지면 포인트로 식별한다. 다른 실시형태에서, 차량 부근의 지면 픽셀의 평균 높이를 확정한다. 다음, 지면 포인트는 상기 평균 높이의 기설정된 임계값 내에 있는 것으로 확정된다.
일부 실시형태에서, 평탄한 객체 또는 평면(예를 들어, 노면)을 식별하기 위해, 식별된 지면 포인트에 기반하여 RANSAC와 같은 피팅 알고리즘을 포인트 클라우드에 적용한다. RANSAC는 비정상 포인트의 제거에 유리하다. RANSAC와 같은 피팅 알고리즘을 반복적으로 적용하고, 매회 피팅 후, 비정상 포인트를 폐기하며 나머지 포인트에 피팅 알고리즘을 다시 적용하여, 하나 또는 복수의 평면을 가능한 지평면으로서 획득할 수 있다. 다음, 아래와 같은 포인트를 노면 포인트로서 사용할 수 있다. 이러한 포인트는 Z축(포인트 클라우드를 캡처하는 LIDAR 센서 유닛의 수직 축선)에 평행되는 법선 방향 및 최대 면적을 갖는 단일 평면을 나타낸다.
노면 포인트에 기반하여, 일 실시형태에서, 프로세스(2105)는 노면 포인트에 따라 강도 구배
Figure 112019129036274-pct00019
를 계산한다. 강도 구배는 이미지의 강도값(예를 들어, 이미지 중 임의의 두개의 가장 근접되는 포인트)의 방향 변화이다. 일 실시형태에서, 강도 구배를 계산하는 단계는, 중간값 필터와 같은 필터를 노면 포인트에 적용하는 단계를 포함한다. 중간값 필터 또는 중간값 강도 필터는, 이미지의 구배를 더 잘 강조하기 위해 포인트 클라우드 이미지로부터 노이즈를 제거하는 필터이다. 노면 포인트로부터 소금 강도 노이즈 및 후추 강도 노이즈를 제거하기 위해 중간값 필터를 노면 포인트에 적용할 수 있다. 예시적인 중간값 필터는 아래와 같은 알고리즘을 적용할 수 있다. 1) 각 포인트에 대해, 상기 포인트 주변의 기설정된 근방 크기 내에 위치한 인접된 포인트를 식별한다. 상기 인접된 포인트는 2D 또는 3D 또는 임의의 차원의 KD 트리를 사용하여 식별할 수 있다. 2) 이들의 강도값에 의해, 식별된 인접된 포인트를 정렬한다. 3) 다음, 상기 강도값에 의한 정렬에 따라 상기 포인트에 중간값 강도값을 할당한다.
일 실시형태에서, 강도 구배를 계산하는 단계는, 각 포인트 및 이에 인접된 포인트의 강도값에 기반하여 강도 방향을 확정하는 단계를 포함한다. 각 포인트에 대해 강도 방향 또는 x 방향 및 y 방향에서의 강도의 방향 도함수를 계산할 수 있다. 다음, 방향 도함수에 기반하여 구배의 진폭값 및 방향을 계산할 수 있다. 다른 실시형태에서, 각 포인트의 인접된 포인트에 최소 제곱법을 적용하여 구배를 추정할 수 있다. 다음, 방향 도함수 및 추정된 구배에 기반하여 강도 구배를 추정할 수 있다.
이어서, 강도 구배(예를 들어, 진폭값)에 기반하여 클러스터(cluster) 알고리즘(예를 들어, k-평균값 클러스터 알고리즘 )을 사용하여 구배 포인트를 두개의 카테고리로 클러스터링할 수 있되, 여기서, 제1 클러스터는 기설정된 임계값보다 높은 진폭값을 갖는 노면 포인트에 대해 클러스터링하는 것이고, 제2 클러스터는 기설정된 임계값 또는 제2 기설정된 임계값보다 작은 진폭값을 갖는 모든 다른 포인트에 대해 클러스터링을 수행하는 것이다. 여기서, 제1 클러스터 중의 포인트는 노면 포인트이다.
프로세스(2107)에 있어서, 제1 클러스터 중 각 포인트는 도로 표시 포인트를 추출하기 위해 시드 포인트로 사용될 수 있다. 하나의 실시형태에 따르면, 도 22를 통해 도로 표시 포인트를 추출하기 위한 검색의 예시를 도시할 수 있다. 도 21 및 도 22를 참조하면, 일 실시형태에서, 포인트 P는 제1 클러스터 중 시드 포인트의 예시일 수 있다. 포인트 P에 기반하여, 프로세스(2107)는 거리 P의 기설정된 임계값 거리 내의 포인트 P0를 확정할 수 있는데, 이는 P와 동일한(또는 상반되는) 강도 구배 방향을 갖는다. 다음, 프로세스(2107)는 P 내지
Figure 112019129036274-pct00020
를 따라 모든 포인트를 도로 표시 포인트로 식별 및 분류한다. 도 22의 예시를 참조하면, 포인트 P1는 P와 P0 사이에 위치하고, 상기 예시에서 P 및 P0는 상반되는 방향 강도 구배를 갖는다. P1이 P와 P0 사이에 위치하므로 P1을 도로 표시 포인트로 식별 및 표시한다. 프로세스(2107)는 제1 클러스터의 모든 포인트가 소진될 때까지 제1 클러스터 중 포인트를 사용하여 반복적으로 수행될 수 있다. 따라서, 제1 클러스터에 기반한 시드 포인트는 도로 표시 포인트를 효과적으로 성장시킨다. 다음, 프로세스(2109)는 도로 표시 포인트를 도로 표시 추출 결과로서 캡처한다.
도 23은 일 실시형태에 따른 도로 커브 추출된 예시를 도시하는 흐름도이다. 흐름도(2300)는 커브(예를 들어, 도로의 좌측 경계 및 우측 경계)에 속하는 포인트 클라우드로부터 포인트를 추출하기 위해 도 20의 커브 특징 추출 모듈(2005)에 의해 수행될 수 있다. 도 23을 참조하면, 흐름도(2300)는 포인트 클라우드(2301)를 수신한다. 동작 (2303)에 있어서, 포인트 클라우드의 각 포인트로부터 복수의 특징을 추출할 수 있다. 이러한 특징은 고도로 상관된 특징, 강도 특징 및 다중 스케일 방향 차이 특징 등을 포함할 수 있다. 하나의 실시형태에 따르면, 도 24에는 다중 스케일 방향 차이 특징을 추출하는 예시가 도시되어 있다.
도 23 내지 도 24를 참조하면, 아래와 같은 방식으로 다중 스케일 방향성 차이 특징을 추출할 수 있다. 1) 각 포인트(예를 들어, P)에 대해, 작은 근방 반경 r, 큰 근방 반경 R을 설정하고, 각각 대응되는 반경 근방 내에서 포인트 집합
Figure 112019129036274-pct00021
또는
Figure 112019129036274-pct00022
Figure 112019129036274-pct00023
또는
Figure 112019129036274-pct00024
를 식별한다. 여기서,
Figure 112019129036274-pct00025
중의 포인트는
Figure 112019129036274-pct00026
중의 포인트를 포함할 수 있다. 2) 이어서, 각각 두개의 법선 벡터
Figure 112019129036274-pct00027
Figure 112019129036274-pct00028
(미도시)을 획득하기 위해, 주성분 분석(PCA) 알고리즘과 같은 통계학 알고리즘을 두개의 포인트 집합에 적용할 수 있고, 여기서 법선 벡터는 평면의 임의의 포인트일 수 있으며, 상기 평면은 대응되는 포인트 집합을 통해 추정하고, 법선 벡터는 상기 평면의 표면 직교(예를 들어, 수직)되는 방향을 갖는다. 3) 다음,
Figure 112019129036274-pct00029
Figure 112019129036274-pct00030
사이에서 각도 θ(미도시)를 계산하되, 여기서 각도 θ는 포인트 P에 대한 다중 스케일 방향 차이 특징일 수 있다. 주성분 분석(PCA)은 직교 변환을 사용하여 한 그룹의 관측 결과를 한 그룹의 선형 비상관 변수(주성분으로 지칭됨)의 값으로 변환시키는 통계 프로세스임에 유의해야 한다. 법선 벡터는 주성분에 수직인 방향을 갖는 벡터로 계산될 수 있다. 다른 실시형태에서, 포인트 클라우드에 감독된 기계 학습 알고리즘을 적용하여 특징을 추출하고 포인트 클라우드 이미지 내에서 도로 커브를 식별할 수 있다.
일 실시형태에서, 확정된 지면의 높이에 기반하여 포인트 클라우드에 대한 높이 관련 특징 또는 높이값을 확정할 수 있다. 이 밖에, 높이 분포 분산(예를 들어,
Figure 112019129036274-pct00031
Figure 112019129036274-pct00032
) 사이의 높이차를 계산할 수 있다. 여기서, 분산은 대응되는 포인트 집합의 높이와 그 평균 높이의 제곱 편차를 예상한 것이다.
일 실시형태에서, 동작 (2305)는 나이브 베이즈 분류기 알고리즘을 사용하여 포인트 클라우드로부터 초기 커브 포인트를 추출할 수 있다. 예를 들어, 각 포인트에 대해, 나이브 베이즈 분류기 알고리즘은
Figure 112019129036274-pct00033
Figure 112019129036274-pct00034
를 포함하는 5차원 특징 집합을 사용하여 상기 포인트를 커브 포인트 카테고리 및 비커브 포인트 카테고리로 분류할 수 있다. 커브 포인트 카테고리는 초기 커브 포인트로 사용될 수 있다.
일 실시형태에서, 초기 커브 포인트의 인접된 포인트에 기반하여 각 초기 커브 포인트의 방향 특성 또는 방향 특징을 계산할 수 있다. 예를 들어, 하기와 같은 방법으로 방향 특성을 계산할 수 있다. 1) 모든 초기 커브 포인트를 포함하는 KD 트리를 생성한다. 2) KD 트리를 사용하여 각 초기 커브 포인트의 k개의 근방 포인트를 검색한다. 3) 각 초기 커브 포인트의 근방 포인트에 대해 주성분 분석 (PCA)을 수행하여 근방 포인트의 메인 방향을 획득하되, 여기서 메인 방향은 상기 포인트의 방향 특징이다.
일 실시형태에서, 커브 표시 생성에 대해 계산된 방향 특징에 기반하여 초기 커브 포인트에 포인트의 클러스터 또는 그룹화를 수행할 수 있다. 예를 들어, 하나의 실시형태에 따르면, 아래 동작 (1 내지 5)을 통해 초기 커브 포인트의 클러스터를 수행할 수 있다. 1) 클러스터의 반경 r', 방향각 임계값 at 및 높이차 임계값 et를 초기화하고; 모든 커브 포인트를 "클러스터링하지 않음"으로 초기화하며; 빈 시드 포인트 큐
Figure 112019129036274-pct00035
및 빈 클러스터 용기
Figure 112019129036274-pct00036
를 초기화하고; 모든 초기 커브 포인트를 사용하여 KD 트리를 구성한다. 2) "클러스터링하지 않음"의 초기 커브 포인트에서 임의로 포인트를 선택하여 성장할 초기 시드 포인트
Figure 112019129036274-pct00037
로 하고, 시드 포인트
Figure 112019129036274-pct00038
의 라벨을
Figure 112019129036274-pct00039
(예를 들어, 커브 포인트)로 초기화하며, 시드 포인트
Figure 112019129036274-pct00040
를 클러스터 용기
Figure 112019129036274-pct00041
에 삽입(또는 푸시)하고, 이를 "클러스터링 중"으로 설정한다. 3) 근방 중 각 포인트
Figure 112019129036274-pct00042
에 대해, KD 트리를 사용하여 시드 포인트
Figure 112019129036274-pct00043
의 반경
Figure 112019129036274-pct00044
내에 있는 근방 포인트 집합을 획득한다.
Figure 112019129036274-pct00045
Figure 112019129036274-pct00046
사이의 각도가 at보다 작고 또한 이들 사이의 높이차가 et보다 작으면,
Figure 112019129036274-pct00047
는 시드 포인트 큐
Figure 112019129036274-pct00048
및 클러스터 용기
Figure 112019129036274-pct00049
에 삽입(푸시)될 수 있고,
Figure 112019129036274-pct00050
의 라벨은
Figure 112019129036274-pct00051
와 동일한 라벨로 설정될 수 있으며,
Figure 112019129036274-pct00052
는 "클러스터링 중"으로 설정될 수 있다. 4) 큐
Figure 112019129036274-pct00053
가 비어있지 않을 경우, 큐의 헤드에서 하나의 포인트를 팝업시키고, 상기 포인트를 새로운 시드 포인트로 하며, 동작(2))로부터 다시 동작이 시작된다. 큐가 비어있을 경우, 커브 포인트 클러스터 성장이 종료되고 동작(1))로부터 다시 동작이 시작된다. 5) 모든 포인트가 모두 "클러스터링 중"으로 설정될 때까지 동작(1 내지 4)을 반복할 수 있다. 다음, 커브 포인트의 클러스터를 도로 블록의 분할에 사용할 수 있다.
일 실시형태에서, 각 클러스터의 클러스터 특징을 계산하여 커브 포인트의 클러스터를 개선할 수 있다. 다음, 개선된 커브 포인트의 클러스터는 도로 블록의 분할에 사용될 수 있다. 계산할 클러스터 특징의 예시는
Figure 112019129036274-pct00054
, 길이
Figure 112019129036274-pct00055
(예를 들어, 클러스터를 통해 형성된 포인트의 거리) 및/또는 각 클러스터를 위한 복수의 포인트
Figure 112019129036274-pct00056
를 포함할 수 있다. 다음, 클러스터 특징에 대해 설정된 기설정된 규칙을 만족하지 않는 클러스터를 제거함으로써 이러한 클러스터를 개선할 수 있다. 규칙의 예시는
Figure 112019129036274-pct00057
일 수 있고, 여기서
Figure 112019129036274-pct00058
는 각각 기설정된 차원 임계값, 기설정된 클러스터 최소 포인트 길이 및 기설정된 최소 개수이다.
일 실시형태에서, 포인트의 공분산 행렬의 특징값
Figure 112019129036274-pct00059
을 획득하기 위해, 주성분 분석(PCA) 알고리즘을 클러스터 중의 포인트에 적용하여 특징
Figure 112019129036274-pct00060
을 계산할 수 있다. 다음, 아래 공식을 통해 특징
Figure 112019129036274-pct00061
을 계산할 수 있다.
Figure 112019129036274-pct00062
,
Figure 112019129036274-pct00063
,
Figure 112019129036274-pct00064
일 실시형태에서, 동작 (2307)에 대해, 추출된 커브 포인트(도 20의 곡선 생성 모듈(2009))를 통해 하나 또는 복수의 Cubic Bezier 곡선을 생성하여 하나 또는 복수의 커브 라인을 표시할 수 있는데, 그 공식은 다음과 같다.
Figure 112019129036274-pct00065
여기서, P0, P1, P2 및 P3은 상수이다.
생성된 하나 또는 복수의 커브 곡선에 기반하여 도로의 커브 경계를 식별할 수 있다. 식별된 도로 커브 경계에 기반하여 (도 20의 파티션 모듈(2011)을 통해) 도로를 분할할 수 있다. 일 실시형태에서, 그 후 커브 경계 및/또는 도로 표시 포인트에 기반하여 도로를 분할하되, 여기서, 커브 경계는 도로 경계, 예를 들어 차량이 도로에서 주행하는 방향에 평행되는 경계이다.
도 25는 일 실시형태에 따른 맵 파티션의 예시를 도시한다. 상기와 같이, 추출된 도로 표시 포인트 및 추출된 커브 포인트/곡선에 기반하여 도로를 분할할 수 있다. 예를 들어, 추출된 도로 표시 포인트에 기반하여 도로 표시 포인트에 Euclidean 클러스터 알고리즘을 적용하여, 포인트의 기설정된 거리 및/또는 경계 임계값에 기반하여 도로 표시 포인트를 함께 클러스터링할 수 있다. 다음, 하나 또는 복수의 클러스터를 함께 그룹화하고 도로 표시 타입으로 분류할 수 있다. 기설정된 한 그룹의 타입에 기반하여 클러스터를 분류할 수 있다. 도로 표시의 타입은 지브라 도로 표시, 횡단보도 표시, 도로 교차로 표시 등을 포함할 수 있다.
일 실시형태에서, 각 클러스터 사이의 거리 임계값, 및 각 클러스터 중의 포인트를 통해 형성된 라인의 길이 임계값에 기반하여, 상기 클러스터를 하나의 타입으로 분류할 수 있다. 예를 들어, 지브라 크로싱 타입에 있어서, 클러스터의 경계 크기가 제1 기설정 임계값(예를 들어, 도 25에 도시된 지브라 크로싱 표시 중 점선과 같이, 짧은 점선은 하나의 클러스터일 수 있음)보다 작으면, 지브라 클러스터의 중심 포인트를 확정한다. 다음, 지브라 크로싱 표시를 가로지르는 중심선을 생성하기 위해 Euclidean 클러스터 알고리즘을 사용하여 다른 주변 클러스터의 중심 포인트를 그룹화할 수 있다. 지브라 크로싱(및/또는 다른 도로 표시)의 중심선에 기반하여 지브라 크로싱 블록(예를 들어, 도 25의 도로 블록(2))을 식별한다.
다음, 지브라 크로싱 블록에 기반하여 다른 도로 블록(예를 들어, 도로 블록(1) 및 도로 블록(3))을 분할할 수 있다. 예를 들어, 도 25를 참조하면, 도로 블록(2)에 기반하여 도로 블록(2)의 지브라 크로싱의 중심선에서 도로 블록(1)을 분할할 수 있다. 도로 블록(2)에 기반하여 도로 블록(2)의 다른 지브라 크로싱의 다른 중심선에서 도로 블록(3)을 분할할 수 있다. 따라서, 도로 표시 포인트 및 커브 포인트/곡선에 기반하여 맵을 블록 파티션으로 분할할 수 있다. 다음, 서버가 차량에 대해 맵 업그레이드를 수행하거나 차량으로부터 맵을 다운로드해야 하는 경우, 분할된 블록별로 업그레이드/다운로드 처리를 수행할 수 있다.
도 26a 및 도 26b는 일부 실시형태에 따른 방법의 예시를 도시하는 흐름도이다. 프로세스(2600) 및 프로세스(2650)는 소프트웨어, 하드웨어 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 예를 들어, 프로세스(2600) 및 프로세스(2650)는 도 20의 맵 파티션 엔진(126)에 의해 수행될 수 있다. 도 26a를 참조하면, 블록 (2601)에서, 프로세싱 로직은 ADV에 의해 안내된 도로를 식별하되, 상기 도로는 하나 또는 복수의 LIDAR 센서로부터의 하나 또는 복수의 포인트 클라우드에 의해 캡처된다. 블록 (2602)에서, 프로세싱 로직은 포인트 클라우드로부터 식별된 도로의 도로 표시 정보를 추출하되, 도로 표시 정보는 식별된 도로의 하나 또는 복수의 도로 표시를 나타낸다. 블록 (2603)에서, 프로세싱 로직은 도로 표시에 기반하여 도로를 하나 또는 복수의 도로 구획으로 파티셔닝한다. 블록 (2604)에서, 프로세싱 로직은 도로 구획에 기반하여 포인트 클라우드 맵을 생성하되, 상기 포인트 클라우드 맵을 이용하여 ADV 주변의 운전 환경을 감지한다.
일 실시형태에서, 포인트 클라우드 맵은 정적 포인트 클라우드 맵을 포함하고, 상기 정적 포인트 클라우드 맵은 포인트 클라우드 맵 중 하나 또는 복수의 동적 객체를 제거하여 생성되며, 상기 동적 객체는 동일한 위치의 상이한 시점에서 두개 또는 복수의 포인트 클라우드 관측 결과를 수집하고 두개 또는 복수의 포인트 클라우드 관측 결과 사이의 차이를 검출함으로써 제거된다. 일 실시형태에서, 도로를 식별하는 단계는, 표고 임계값(elevation threshold)을 포인트 클라우드에 적용하여 가능한 복수의 지면 포인트를 추출하는 단계, 피팅 알고리즘을 적용하여 하나 또는 복수의 평면 객체를 도로 객체로서, 가능한 지면 포인트에 피팅하는 단계, 및 LIDAR 센서의 수직축의 방향과 근접한 법선 방향을 갖는 가장 큰 표면적을 갖는 평면 객체를 도로 객체로 선택하는 단계를 포함한다.
다른 실시형태에서, 프로세싱 로직은 또한 도로 객체에 대응되는 포인트 클라우드를 노면 포인트로 식별한다. 다른 실시형태에서, 도로 표시를 추출하는 단계는 필터를 적용하여 노면 포인트에 대한 노이즈를 제거하는 단계, 노면 포인트 클라우드의 방향 구배를 확정하는 단계, 및 노면 포인트 클라우드를 도로 표시 포인트 및 다른 노면 포인트로 분할하기 위해, 방향 구배의 기설정된 임계값에 기반하여 노면 포인트 클라우드에 k-평균값 클러스터 알고리즘을 적용하는 단계를 포함한다. 다른 실시형태에서, 도로 표시는 적어도 횡단보도를 위한 표시를 포함하고, 횡단보도를 위한 표시에 기반하여 도로를 분할한다.
도 26b를 참조하면, 블록 (2651)에서, 프로세싱 로직은 도로 커브를 표시하는 포인트 클라우드로부터 커브 특징을 추출한다. 블록 (2652)에서, 프로세싱 로직은 커브 특징에 기반하여 도로의 커브 경계를 식별한다. 블록 (2653)에서, 프로세싱 로직은 포인트 클라우드 중 커브 경계에 대응되는 포인트를 표시(라벨링)한다. 블록 (2654)에서, 프로세싱 로직은 도로 표시 및 표시된 도로 커브 포인트에 기반하여 도로를 하나 또는 복수의 도로 구획으로 파티셔닝한다.
일 실시형태에서, 포인트 클라우드를 위한 커브 특징을 추출하는 단계는, 도로 커브를 식별하기 위해 포인트 클라우드 중 각 포인트에 대해, 하나 또는 복수의 다중 스케일 방향 차이 특징을 추출하는 단계를 포함한다. 다른 실시형태에서, 커브 특징에 기반하여 도로의 커브 경계를 식별하는 단계는, 포인트 클라우드 중 각 포인트에 대해, 추출된 특징에 기계 학습 알고리즘을 적용하여 상기 포인트를 초기 커브 포인트로 식별하는 단계; 및 각 초기 커브 포인트에 대해, 초기 커브 포인트의 하나 또는 복수의 방향 특징을 확정하고, 초기 커브 포인트에 기반하여 포인트 클러스터를 생성하고, 포인트 클러스터의 하나 또는 복수의 특성을 확정하며, 하나 또는 복수의 특성이 기설정된 조건을 만족하면 포인트 클러스터를 커브 경계의 일부로 식별하는 단계를 포함한다. 다른 실시형태에서, 프로세싱 로직은 또한 포인트 클러스터 중 각 포인트를 표시하는 곡선을 생성하고, 곡선은 Cubic Bezier 곡선을 포함하며, 도로 표시 및 생성된 Cubic Bezier 곡선에 기반하여 도로를 하나 또는 복수의 도로 구획으로 파티셔닝한다.
도 27은 일 실시형태에 따른 자율 주행 차량과 함께 사용되는 감지 및 계획 시스템의 예시를 도시하는 블록도이다. 도 27을 참조하면, 네트워크 구성(2700)은 네트워크(102)를 통해 하나 또는 복수의 서버(103) 내지 서버(104)에 통신적으로 연결될 수 있는 자율 주행 차량(101)을 포함한다. 도 19와 유사하게, 서버(103 내지 104)는 네트워크 또는 클라우드 서버, 애플리케이션 서버, 백엔드 서버 또는 이들의 조합과 같은 임의의 유형의 서버 또는 서버 클러스터일 수 있다. 서버(103 내지 104)는 데이터 분석 서버, 콘텐츠 서버, 교통 정보 서버, 맵 및 관심지점(MPOI) 서버 또는 위치 서버 등일 수 있다. 일 실시형태에서, 서버(103)는 고스트 효과 엔진(127)을 포함한다. 고스트 효과 엔진(127)은 포인트 클라우드 프레임 중 고스트 이미지를 검출할 수 있다.
임의의 두개의 연속적인 프레임 중의 객체가 갑자기 나타나거나 갑자기 사라지면, 상기 연속적인 포인트 클라우드 프레임에서 포인트 클라우드의 고스트 효과(또는 고스트 효과, 그림자)를 식별할 수 있다. 객체가 갑자기 나타나거나 갑자기 사라지는 이유는, 포인트 클라우드의 일부를 함께 병합할 때 오류가 발생되거나 빠르게 이동하는 객체를 캡처하거나 객체를 반사할 때 정밀도가 낮기 때문이다. 예를 들어, 연속적인 프레임에서 갑자기 나타나거나 갑자기 사라지는 객체는 고스트 객체로 간주해야 하며 상기 포인트 클라우드 맵으로부터 이러한 고스트 객체를 제거해야 한다. HD 맵의 높은 정확도를 보장하는 것이 매우 중요하므로, HD 맵 생성 및/또는 HD 맵 검증을 위한 포인트 클라우드의 정확도를 평가하기 위해 포인트 클라우드 중 고스트 객체를 식별하는 것은 매우 중요하다.
도 28은 일 실시형태에 따른 고스트 효과 엔진의 예시를 도시하는 블록도이다. 고스트 효과 엔진(127)은 고스트 이미지를 갖는 프레임을 표시하기 위해 포인트 클라우드 중 복수의 프레임을 수신할 수 있다. 표시된 프레임을 생성된 맵에 따라 제거하거나 및/또는 표시된 프레임을 사용하여 맵 검증을 수행할 수 있다. 도 28을 참조하면, 일 실시형태에서, 엔진(127)은 예를 들어, 프레임 수신기 모듈(2801), 점용 그리드 맵 생성 모듈(2803), 비정상 복셀 식별기 모듈(2805), 벽 복셀 식별기 모듈(2807), 상태 변화 식별기 모듈(2809) 및 표시/폐기 모듈(2811)과 같은 복수의 모듈을 포함한다. 이러한 모듈 중 일부 또는 전부는 더 적은 모듈에 통합될 수 있다.
프레임 수신기 모듈(2801)은 맵 서버(예를 들어, 도 27의 서버(104))로부터 포인트 클라우드 중의 복수의 프레임을 수신할 수 있다. 점용 그리드 맵 생성 모듈(2803)은 3차원(3D) 점용 그리드 맵을 생성하되, 여기서 포인트 클라우드 프레임은 상기 3D점용 그리드 맵에 투영될 수 있다. 여기서, 점용 그리드 맵은 복수의 복셀(VOXELS)을 포함하고, 각 복셀은 모두 점용 확률 예를 들어, 복셀이 객체에 의해 점유된 확률을 포함한다. 비정상 복셀 식별기 모듈(2805)은 3D점용 그리드 맵 중의 비정상 복셀을 식별할 수 있다. 비정상 복셀은 갑작스런 상태 변환(예를 들어, 점용 상태로부터 자유 상태로의 변환 또는 자유 상태로부터 점유 상태로의 변환)을 갖는 복셀을 의미한다. 벽 복셀 식별기 모듈(2807)은 기설정된 임계값보다 큰 확률을 갖는, 벽 객체를 표시하는 복셀을 식별할 수 있다. 상태 변화 식별기 모듈(2809)은 복셀의 상태 변화를 식별할 수 있다. 표시/폐기 모듈(2811)은 이후의 맵 생성 및/또는 맵 검증을 위해 비정상 복셀을 표시하거나 및/또는 대응되는 포인트 클라우드를 표시할 수 있다.
도 29는 일 실시형태에 따른 고스트 효과 검출의 예시를 도시하는 흐름도이다. 흐름도(2900)는 고스트 효과 엔진(예를 들어, 도 28의 엔진(127))에 의해 수행될 수 있다. 도 29를 참조하면, 동작 (2901)에 있어서, 엔진(127)은 3D점용 그리드 맵을 초기화한다. 3D 점용 그리드는 복셀 또는 3D 유닛을 포함하고, 여기서 각 복셀은 복셀이 점유된 확률값을 포함한다. 초기화 후, 초기 포인트 클라우드 프레임에 기반하여 3D점용 그리드 맵에 적용 광선 투사 동작을 적용하여 3D점용 그리드 맵 중의 각 복셀의 점용 상태를 초기화한다. 여기서 초기 포인트 클라우드 프레임 및/또는 후속 프레임은 예를 들어, 이전에 SLAM 타입 알고리즘을 사용하여 정합되는 등 사전에 등록된 것임에 유의해야 한다.
일 실시형태에서, 포인트 클라우드가 입체뷰를 갖는 경우, 차량의 위치로부터 광선을 투사할 수 있다. 다른 실시형태에서, 포인트 클라우드가 조감뷰를 갖는 경우, 최상부로부터 광선을 투사할 수 있다. 광선 투사 동작은 광선이 LIDAR 센서의 뷰와 유사한 뷰를 통과하도록 한다. 광선은 일부 복셀을 통과할 수 있고, 일부 복셀에서 종료될 수 있다. 광선이 복셀을 통과하면, 상기 복셀은 "자유" 상태를 갖는다. 광선이 복셀에서 정지하면, 상기 복셀은 "점용" 상태를 갖는다. 광선이 복셀을 통과하지 않고 또한 상기 복셀에서 종료되지 않으면, 상기 복셀은 "미지" 상태를 갖는다. "점용된" 복셀 중 각각은 모두 확률값을 포함할 수 있고, 이는 복셀이 "점용"되는 확률을 지시한다.
동작 (2902)에 있어서, 후속 프레임을 수신하면, 엔진(127)은 후속 프레임에 기반하여 3D점용 그리드 맵을 업데이트한다. 초기 프레임과 유사하게, 후속 프레임을 3D점용 그리드 맵에 투사하기 위해 후속 프레임에 광선 투사 동작(예를 들어, 광선 추적 알고리즘 )을 적용할 수 있다. 다음, 아래와 같은 베이즈 공식을 사용하여 후속적인 광선 투사를 기반으로 각 복셀의 확률값을 업데이트할 수 있다.
Figure 112019129036274-pct00066
여기서,
Figure 112019129036274-pct00067
는 시간 t에서의 관측 결과의 복셀이 시간 t에서의 점용 확률을 나타내고,
Figure 112019129036274-pct00068
는 모든 이전 관측 결과를 고려한 상황하에서 시간 t에서의 관측 결과에 따른 복셀이 시간 t에서의 점용 확률을 나타내며,
Figure 112019129036274-pct00069
는 모든 이전 관측 결과를 고려한 상황하에서 복셀이 시간 t-1에서의 점용 확률을 나타낸다.
동작 (2903)에 있어서, 엔진(127)은 그리드 맵 중 각 복셀의 상태 변화를 결정한다. 그리드 맵의 각 복셀은 아래 상태 변화 중 하나를 포함할 수 있다.
A: "자유"→□ "자유"
B: "점용"→□ "점용"
C: "미지"→□ "미지"
D: "미지"→□ "자유"
E: "미지"→□ "점용"
F: "자유"→□ "점용"
G: "점용"→□ "자유".
동작 (2904)에 있어서, 엔진(127)은 비정상적인 상태 변화를 갖는 복셀을 식별한다. 예를 들어, 비정상적인 상태 변화는 상태 변화 F: "자유"→"점용" 및 상태 변화 G: "점용"→"자유"를 포함한다. 복셀의 점용 확률의 변화가 기설정된 임계값보다 큰 경우, 예를 들어, 점용 확률의 차이(예를 들어, 증가 또는 감소)가 기설정된 임계값보다 크면, 비정상적인 상태 변화를 식별할 수 있다.
이 밖에, 벽형 객체에 속하는 복셀을 식별할 수 있다. 예를 들어, 포인트 클라우드 프레임에 객체 검출 알고리즘(예를 들어, 이미지 분할, 에지 검출, 기계 학습 신경망 등)을 적용하여 벽 복셀 또는 벽형 객체에 대응되는 복셀을 추출할 수 있다. Cartesian 좌표계에서, 벽 객체는 평탄한 객체를 포함할 수 있고, 상기 평탄한 객체는 z축에 수직되는 평면의 법선 방향 또는 x-y 평면에 평행되는 평면의 법선 방향을 갖는다. 평탄한 벽형 객체만 설명하였으나, 벽 객체는 임의의 형상 또는 크기를 가질 수 있다. 식별된 벽 객체에 기반하여 대응되는 벽 복셀을 식별할 수 있다.
다음, 고스트 효과를 갖는 복셀을, 벽 복셀을 갖는 비정상 복셀로 식별할 수 있다. 다음, 고스트 효과 복셀을 표시한 후 후속 맵 생성 및/또는 맵 검증에서 표시된 복셀 및/또는 프레임을 제거할지 여부를 고려할 수 있다. 예를 들어, 일 실시형태에서, 프레임의 고스트 효과 복셀의 계수가 기설정된 임계값보다 큰 경우, 포인트 클라우드 맵 생성에서 상기 프레임을 제거한다.
동작 (2905)에 있어서, 엔진(127)은 처리할 추가 프레임이 존재하는지 여부를 확정한다. 존재하면 동작 (2902)에서 다시 동작을 시작하고, 그렇지 않으면 동작 (2906)에서 동작을 종료한다.
도 30은 일 실시형태에 따른 방법의 예시를 도시하는 흐름도이다. 프로세스(3000)는 소프트웨어, 하드웨어 또는 이들의 조합을 포함할 수 있는 프로세싱 로직에 의해 수행될 수 있다. 예를 들어, 프로세스(3000)는 고스트 효과 엔진(예를 들어, 도 28의 엔진(127))에 의해 수행될 수 있다. 도 30을 참조하면, 블록 (3001)에서, 프로세싱 로직은 포인트 클라우드의 초기 프레임에 기반하여 점용 그리드 맵을 생성한다. 블록 (3002)에서, 프로세싱 로직은 포인트 클라우드의 하나 또는 복수의 후속 프레임을 수신한다. 블록 (3003)에서, 후속 프레임 중 각각에 대해, 프로세싱 로직은 후속 프레임에 기반하여 점용 그리드 맵을 업데이트한다. 블록 (3004)에서, 프로세싱 로직은 상기 업데이트에 기반하여 하나 또는 복수의 비정상 복셀을 식별한다. 블록 (3005)에서, 프로세싱 로직은 비정상 복셀이 벽 객체에 속하는지 여부를 확정한다. 블록 (3006)에서, 비정상 복셀이 벽 객체에 속하는 것으로 확정된 것에 응답하여, 프로세싱 로직은 비정상 복셀을 후속 프레임의 고스트 효과 복셀로 표시한다.
일 실시형태에서, 프로세싱 로직은 또한 광선 추적 알고리즘을 사용하여 초기 프레임 또는 후속 프레임을 점용 그리드 맵에 투영한다. 다른 실시형태에서, 초기 프레임 또는 후속 프레임을 점용 그리드 맵에 투영하는 단계는, 점용 그리드 맵 중 각 복셀의 점용 상태를 확정하는 단계를 포함하고, 여기서 점용 상태는 자유, 점용 또는 미지 중 하나이다. 다른 실시형태에서, 업데이트에 기반하여 하나 또는 복수의 비정상 복셀을 식별하는 단계는, 점용 그리드 맵 중 각 복셀에 대해, 복셀의 점용 상태의 변화를 검출하고, 점용 상태가 자유로부터 점용으로 변화되거나 점용으로부터 자유로 변화되면 상기 복셀을 비정상으로 식별하는 단계를 포함한다.
일 실시형태에서, 베이즈 알고리즘을 적용하여 후속 프레임을 기반으로 점용 그리드 맵을 업데이트하되, 여기서 점용 그리드 맵은 점용 확률을 나타내는 복셀을 포함한다. 일 실시형태에서, 비정상 복셀이 벽 객체에 속하는지 여부를 확정하는 단계는, 비정상 복셀이 평탄한 표면의 속성을 갖는 객체에 속하는지 여부를 식별하는 단계를 포함하고, 상기 평탄한 표면은 수직되는 z축에 직교되는 법선을 갖는다. 일 실시형태에서, 프로세싱 로직은 또한 프레임의 고스트 효과 복셀의 개수가 임계값보다 큰 경우, 포인트 클라우드 맵으로부터 상기 프레임을 제거한다.
상술한 설명에서 도시되고 설명된 부재 중 일부 또는 전부는 소프트웨어, 하드웨어 또는 이들의 조합에서 구현될 수 있음에 유의해야 한다. 예를 들어, 해당 부재는 영구 저장 장치 중의 소프트웨어에 설치 및 저장되도록 구현될 수 있으며, 상기 소프트웨어는 프로세서(미도시)를 통해 메모리에 로딩되고 메모리에서 실행되어 본 발명에 따른 프로세스 또는 작동을 구현할 수 있다. 대체 가능하게, 해당 부재는 전용 하드웨어(예를 들어, 집적 회로(예를 들어, 전용 집적 회로 또는 ASIC), 디지털 신호 프로세서(DSP) 또는 필드 프로그래머블 게이트 어레이(FPGA)에 프로그래밍 또는 임베디드되는 실행 가능 코드로 구현될 수 있으며, 상기 실행 가능 코드는 애플리케이션으로부터의 대응되는 구동 순서 및/또는 운영 체제에 의해 액세스될 수 있다. 이밖에, 해당 부재는 하나 또는 복수의 특정 명령을 통해 소프트웨어 부재에 의해 액세스될 수 있는 명령 세트의 일부로서 프로세서 또는 프로세서 코어에서 특정 하드웨어 논리로 구현될 수 있다.
도 31은 본 발명의 일 실시형태와 함께 사용될 수 있는 데이터 처리 시스템의 예시를 도시하는 블록도이다. 예를 들어, 시스템(1500)은 예를 들어, 도 4의 HD 맵 생성 엔진(125), 도 5의 HD 맵 생성 시스템(500), 도 6의 파이프라인(600), 도 10의 실시간 맵 생성 모듈(308), 도 15의 RGB 포인트 클라우드 모듈(309), 도 19의 맵 파티션 엔진(126), 도 27의 고스트 효과 엔진(127), 도 3a의 감지 및 계획 시스템(110) 또는 도 1의 서버(103 내지 104) 중 임의의 하나와 같은, 상기 임의의 프로세스 또는 방법을 수행하는 임의의 데이터 처리 시스템을 나타낼 수 있다. 시스템(1500)은 다양한 부재를 포함할 수 있다. 이러한 부재는 집적 회로(IC), 집적 회로의 일부, 개별 전자 장치, 또는 회로기판(예를 들어, 컴퓨터 시스템의 마더보드 또는 삽입카드)에 적용되는 다른 모듈로 구현될 수 있거나 다른 방식으로 컴퓨터 시스템의 랙 내에 통합된 부재로 구현될 수 있다.
또한 시스템(1500)은 컴퓨터 시스템의 많은 부재의 높은 수준의 투시도를 나타내기 위한 것을 목적으로 함에 유의해야 한다. 그러나, 일부 실시형태는 부가적인 부재를 가질 수 있으며, 이밖에, 다른 실시형태는 도시된 부재의 상이한 구성을 가질 수 있음을 이해해야 할 것이다. 시스템(1500)은 데스크톱 컴퓨터, 랩톱 컴퓨터, 태블릿 PC, 센서, 휴대 전화, 미디어 플레이어, 개인 휴대 정보 단말기(PDA), 스마트 워치, 개인 커뮤니케이터, 게임 장치, 네트워크 라우터 또는 허브, 무선 액세스 포인트(wireless access point, AP) 또는 리피터, 셋톱 박스 또는 이들의 조합을 나타낼 수 있다. 이밖에, 단일 기계 또는 시스템만 도시되어 있지만, 용어 "기계" 또는 "시스템"은 또한 하나(또는 복수 개)의 명령 집합을 독립적으로 또는 공동으로 실행하여 본문에서 논의된 어느 하나 또는 다수의 방법을 수행하는 기계 또는 시스템의 어떠한 집합을 포함하도록 이해되어야 한다.
일 실시형태에서, 시스템(1500)은 버스 또는 인터커넥터(1510)에 의해 연결되는 프로세서(1501), 메모리(1503) 및 장치(1505 내지 1508)를 포함한다. 프로세서(1501)는 단일 프로세서 코어 또는 복수의 프로세서 코어를 포함하는 단일 프로세서 또는 복수의 프로세서를 나타낼 수 있다. 프로세서(1501)는 마이크로 프로세서, 중앙처리장치(CPU) 등과 같은 하나 또는 복수의 일반 프로세서를 표시할 수 있다. 보다 구체적으로, 프로세서(1501)는 복합 명령 집합 컴퓨터(Complex Instruction Set Computing, CISC) 마이크로 프로세서, 축소 명령 집합 컴퓨터(Reduced Instruction Set Computing, RISC) 마이크로 프로세서, 훨씬 긴 명령 컴퓨터(Very Long Instruction Word, VLIW) 마이크로 프로세서 또는 다른 명령 집합을 구현하는 프로세서, 또는 명령 집합 조합을 구현하는 프로세서일 수 있다. 프로세서(1501)는 또한, 전용 집적 회로(ASIC), 셀룰러 또는 베이스밴드 프로세서, 필드 프로그래머블 게이트 어레이(FPGA), 디지털 신호 프로세서(DSP), 네트워크 프로세서, 그래픽 프로세서, 통신 프로세서, 암호화 프로세서, 코프로세서(co-processor), 임베디드 프로세서, 또는 명령을 처리할 수 있는 임의의 다른 유형의 논리와 같은 하나 또는 복수의 전용 프로세서일 수 있다.
프로세서(1501)(초 저전압 프로세서와 같은 저전력 멀티 코어 프로세서 소켓일 수 있음)는 상기 시스템의 다양한 부재와 통신하기 위한 마스터 처리 장치 및 중앙 허브로서 기능할 수 있다. 이러한 프로세서는 시스템 온 칩(SoC)으로 구현될 수 있다. 프로세서(1501)는 본문에서 논의된 작동과 단계를 수행하기 위한 명령을 실행하도록 구성된다. 시스템(1500)은 선택 가능한 그래픽 서브시스템(1504)과 통신하는 그래픽 인터페이스를 더 포함할 수 있고, 그래픽 서브시스템(1504)은 디스플레이 제어기, 그래픽 프로세서 및/또는 디스플레이 장치를 포함할 수 있다.
프로세서(1501)는 메모리(1503)와 통신할 수 있고, 메모리(1503)는 일 실시형태에서 주어진 양의 시스템 스토리지를 제공하기 위해 복수의 메모리 장치에 의해 구현될 수 있다. 메모리(1503)는 랜덤 액세스 메모리(RAM), 동적 RAM(DRAM), 동기화 DRAM(SDRAM), 정적 RAM(SRAM), 또는 다른 유형의 저장 장치와 같은 하나 또는 복수의 휘발성 메모리(또는 메모리) 장치를 포함할 수 있다. 메모리(1503)는 프로세서(1501) 또는 어떠한 다른 장치에 의해 실행되는 명령 시퀀스를 포함하는 정보를 저장할 수 있다. 예를 들어, 다양한 운영 체제, 장치 드라이버, 펌웨어(예를 들어, 입력/출력 베이스 시스템 또는 BIOS) 및/또는 애플리케이션의 실행 가능 코드 및/또는 데이터는 메모리(1503)에 로딩될 수 있고 프로세서(1501)에 의해 실행될 수 있다. 운영 체제는 로봇 운영 체제(Robotic Operating System, ROS), Microsoft®회사의 Windows® 운영 체제, 애플회사의 MacOS®/iOS®, Google®회사의 Android®, LINUX, UNIX, 또는 다른 실시간 또는 임베디드 운영 체제와 같은 임의의 유형의 운영 체제일 수 있다.
시스템(1500)은 네트워크 인터페이스 장치(1505), 선택 가능한 입력 장치(1506), 및 다른 선택 가능한 IO장치(1507)를 포함하는 장치(1505 내지 1508)와 같은 IO장치를 더 포함할 수 있다. 네트워크 인터페이스 장치(1505)는 무선 트랜시버 및/또는 네트워크 인터페이스 카드(NIC)를 포함할 수 있다. 상기 무선 트랜시버는 WiFi 트랜시버, 적외선 트랜시버, 블루투스 트랜시버, WiMax트랜시버, 무선 셀룰러폰 트랜시버, 위성 트랜시버(예를 들어, 위성항법시스템(GPS) 트랜시버) 또는 다른 무선주파수 트랜시버 또는 이들의 조합일 수 있다. NIC는 이더넷 카드일 수 있다.
입력 장치(1506)는 마우스, 터치 패드, 터치 센시티브 스크린(디스플레이 장치(1504)와 통합될 수 있음), 포인터 장치(스타일러스와 같음) 및/또는 키보드(예를 들어, 물리적 키보드 또는 터치 센시티브 스크린의 일부로서 디스플레이되는 가상 키보드)를 포함할 수 있다. 예를 들어, 입력 장치(1506)는 터치 스크린에 연결되는 터치 스크린 제어기를 포함할 수 있다. 터치 스크린 및 터치 스크린 제어기는, 예를 들어, 다양한 터치 센시티브 기술(전기용량, 전기저항, 적외선 및 표면 탄성파 기술을 포함하지만 이에 한정되지 않음) 중의 어느 하나, 및 다른 근접 센서 어레이 또는 터치 스크린과의 터치를 결정하기 위한 하나 또는 복수의 점의 다른 소자를 사용하여 그 접촉과 이동 또는 중단을 검출할 수 있다.
IO장치(1507)는 오디오 장치를 포함할 수 있다. 오디오 장치는 음성 인식, 음성 복사, 디지털 기록 및/또는 전화 기능과 같은 음성 지원 기능을 추진하기 위해 스피커 및/또는 마이크로폰을 포함할 수 있다. 다른 IO장치(1507)는 범용직렬버스(universal serial bus, USB) 포트, 병렬 포트, 직렬 포트, 프린터, 네트워크 인터페이스, 버스 브리지(예를 들어, PCI-PCI 브리지), 센서(예를 들어, 가속도계 운동 센서, 자이로스코프, 자력계, 광센서, 컴퍼스, 근접 센서 등) 또는 이들의 조합을 더 포함할 수 있다. 장치(1507)는 이미지 처리 서브시스템(예를 들어, 카메라)을 더 포함할 수 있으며, 상기 이미지 처리 서브시스템은 카메라 기능(예를 들어, 사진 및 비디오 클립을 기록함)을 추진하기 위한 전하결합장치(CCD) 또는 상보성 금속산화물 반도체(CMOS) 광학 센서와 같은 광학 센서를 포함할 수 있다. 일부 센서는 센서 허브(미도시)를 통해 인터커넥터(1510)에 연결될 수 있는 반면, 키보드 또는 열 센서와 같은 다른 장치는 시스템(1500)의 구체적 구성 또는 설계에 따라 임베디드 제어기(미도시)에 의해 제어될 수 있다.
데이터, 애플리케이션, 하나 또는 복수의 운영 체제 등과 같은 정보에 대한 영구 저장을 제공하기 위해, 대용량 저장 장치(미도시)도 프로세서(1501)에 연결될 수 있다. 다양한 실시형태에서, 보다 얇고 보다 가벼운 시스템 설계를 구현하고 또한 시스템 응답성을 개선하기 위해, 이러한 대용량 저장 장치는 솔리드 스테이트 장치(SSD)를 통해 구현될 수 있다. 그러나, 다른 실시형태에서, 대용량 저장 장치는 주로 하드 디스크 드라이브(HDD)를 사용하여 구현될 수 있으며, 여기서 비교적 적은 량의 SSD 저장 장치는 전원 차단 사건 기간에 컨텍스트 상태 및 다른 이러한 유형의 정보의 비휘발성 저장을 구현하기 위해 SSD 캐시로서 작용하며, 이로써 시스템 활동이 다시 작동될 경우 빠른 전원 공급을 구현하도록 할 수 있다. 이밖에, 플래시 장치는 예를 들어, 직렬 주변 장치 인터페이스(SPI)를 통해 프로세서(1501)에 연결될 수 있다. 이러한 플래시 장치는 시스템의 BIOS 및 기타 펌웨어를 포함하는 시스템 소프트웨어의 비휘발성 저장을 제공할 수 있다.
저장 장치(1508)는 본문에 설명된 임의의 하나 또는 다수의 방법 또는 기능을 수행하는 하나 또는 복수의 명령 집합 또는 소프트웨어(예를 들어, 모듈, 유닛 및/또는 논리(1528))가 포함되는 컴퓨터 액세스 가능 저장 매체(1509)(기계 판독 가능 저장 매체 또는 컴퓨터 판독 가능 매체라고도 함)를 포함할 수 있다. 처리 모듈/유닛/논리(1528)는 예를 들어, 도 4의 HD 맵 생성 엔진(125), 도 5의 HD 맵 생성 시스템(500), 도 6의 파이프라인(600), 도 10의 실시간 맵 생성 모듈(308), 도 15의 RGB 포인트 클라우드 모듈(309), 도 19의 맵 파티션 엔진(126), 도 27의 고스트 효과 엔진(127), 도 3a의 감지 및 계획 시스템(110) 또는 도 1의 서버(103 내지 104) 중 임의의 하나와 같은 상기 임의의 부재를 나타낼 수 있다. 처리 모듈/유닛/논리(1528)는 또한 데이터 처리 시스템(1500), 메모리(1503) 및 프로세서(1501)에 의해 실행되는 기간에 메모리(1503) 내 및/또는 프로세서(1501) 내에 완전하게 또는 적어도 일부가 체류될 수 있으며, 데이터 처리 시스템(1500), 메모리(1503) 및 프로세서(1501)도 기계 액세스 가능 저장 매체를 구성한다. 처리 모듈/유닛/논리(1528)는 또한 네트워크를 통해 네트워크 인터페이스 장치(1505)에 의해 전송되거나 수신될 수 있다.
컴퓨터 판독 가능 저장 매체(1509)는 또한 상술한 일부 소프트웨어 기능을 영구적으로 저장하는데 사용될 수 있다. 예시적 실시형태에서, 컴퓨터 판독 가능 저장 매체(1509)는 단일 매체로서 예시되었지만, 용어 "컴퓨터 판독 가능 저장 매체"는 상기 하나 또는 복수의 명령 집합을 저장하는 단일 매체 또는 복수의 매체(예를 들어, 집중식 또는 분산식 데이터베이스 및/또는 관련 캐시 및 센서)를 포함하는 것으로 간주해야 한다. 용어 "컴퓨터 판독 가능 저장 매체"는 또한 명령 집합을 저장하거나 코딩할 수 있는 어떠한 매체를 포함하는 것으로 간주해야 하며, 상기 명령 집합은 기계에 의해 실행되고 또한 상기 기계가 본 발명의 어느 하나 또는 다수의 방법을 수행하도록 한다. 따라서, 용어 "컴퓨터 판독 가능 저장 매체"는 솔리드 스테이트 메모리 및 광학 매체와 자성 매체, 또는 어떠한 다른 비일시적 기계 판독 가능 매체를 포함하지만 이에 한정되지 않는 것으로 간주해야 한다.
본문에 설명된 처리 모듈/유닛/논리(1528), 부재 및 다른 특징은 개별 하드웨어 부재로 구현될 수 있거나 하드웨어 부재(예를 들어, ASICS, FPGA, DSP 또는 유사한 장치)의 기능에 통합될 수 있다. 이밖에, 처리 모듈/유닛/논리(1528)는 하드웨어 장치 내의 펌웨어 또는 기능 회로로 구현될 수 있다. 이밖에, 처리 모듈/유닛/논리(1528)는 하드웨어 장치와 소프트웨어 부재의 어떠한 조합으로 구현될 수 있다.
유의해야 할 것은, 시스템(1500)이 데이터 처리 시스템의 다양한 부재를 갖는 것으로 도시되어 있지만, 부재를 상호 연결하는 어떠한 특정 구조 또는 방식을 나타내도록 의도되지 않았는데, 이는 이러한 세부 사항과 본 발명의 실시형태가 밀접한 관계가 없기 때문이다. 더 이해해야 할 것은, 보다 적은 부재 또는 가능하게 보다 많은 부재를 갖는 네트워크 컴퓨터, 휴대용 컴퓨터, 휴대용 전화, 센서 및/또는 다른 데이터 처리 시스템도 본 발명의 실시형태와 함께 사용될 수 있다.
전술한 상세한 설명의 일부는 컴퓨터 메모리 내의 데이터 비트에 대한 연산의 알고리즘 및 부호 표시에 따라 나타난다. 이러한 알고리즘의 설명과 표시는 데이터 처리 분야의 당업자가 작업 내용을 본 분야의 다른 기술자에게 가장 효과적으로 전달하기 위해 사용되는 방식이다. 본문에서, 알고리즘은 통상적으로 바라는 결과를 초래하는 일관된 동작 시퀀스인 것으로 간주된다. 이러한 작동은 물리량에 대해 물리적으로 작동 및 제어해야 하는 작동을 가리킨다.
그러나 모든 이러한 유사한 용어는 적절한 물리량과 관련되도록 의도된 것이며, 단지 이러한 양에 응용되기 위한 간편한 표기일 뿐이다. 비정상 논의에서 달리 명시되지 않는 한, 명세서 전체에서, 용어(청구범위에 기술된 용어와 같음)를 이용하여 진행한 논의는 컴퓨터 시스템 또는 유사 전자 계산 장치의 동작 및 처리를 지칭하는 것으로 이해해야 하며, 상기 컴퓨터 시스템 또는 전자 계산 장치는 컴퓨터 시스템의 레지스터 및 메모리 내의 물리(전자)량으로 표시되는 데이터를 조절하고, 상기 데이터를 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 유형의 정보 저장 장치, 전송 또는 디스플레이 장치 내 유사하게 물리량으로 표시되는 다른 데이터로 변환시킨다.
본 발명의 실시형태는 또한 본문에서의 동작을 수행하기 위한 장치에 관한 것이다. 이러한 컴퓨터 프로그램은 비일시적 컴퓨터 판독 가능 매체에 저장된다. 기계 판독 가능 매체는 기계(예를 들어, 컴퓨터)에 의해 판독 가능한 형태로 정보를 저장하기 위한 임의의 메커니즘을 포함한다. 예를 들어, 기계 판독 가능(예를 들어, 컴퓨터 판독 가능) 매체는 기계(예를 들어, 컴퓨터) 판독 가능 저장 매체(예를 들어, 판독 전용 메모리("ROM"), 랜덤 액세스 메모리("RAM"), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 장치)를 포함한다.
전술한 도면에 도시된 프로세스 또는 방법은 하드웨어(예를 들어, 회로, 전용 논리 등), 소프트웨어(예를 들어, 비일시적 컴퓨터 판독 가능 매체에 구현됨) 또는 이들의 조합을 포함하는 처리 논리에 의해 수행될 수 있다. 상기 프로세스 또는 방법이 일부 순차적 동작에 의해 설명되었지만, 상기 작동 중 일부는 상이한 순서에 따라 수행될 수 있음을 이해해야 한다. 이밖에, 일부 작동은 순차적이 아니라 병렬로 수행될 수 있다.
본 발명의 실시형태는 임의의 특정 프로그래밍 언어를 참조하여 설명된 것이 아니다. 다양한 프로그래밍 언어를 사용하여 본문에 기술된 바와 같이 본 발명의 실시형태의 교시를 구현할 수 있음을 이해해야 한다.
상기 명세서에서, 본 발명의 구체적인 예시적 실시형태를 참조하여 본 발명의 실시형태를 설명한다. 청구범위에 기술된 본 발명의 보다 광범위한 사상 및 범위를 벗어나지 않으면서 본 발명에 대해 다양한 수정을 진행할 수 있음은 자명한 것이다. 따라서, 본 명세서와 도면은 한정적 의미가 아닌 설명적 의미로 이해되어야 한다.

Claims (21)

  1. 자율 주행 차량(ADV)을 위한, 포인트 클라우드에서 고스트 효과를 식별하는 컴퓨터 구현 방법에 있어서,
    포인트 클라우드의 초기 프레임에 기초하여 점용 그리드 맵을 생성하는 단계;
    상기 포인트 클라우드의 하나 이상의 후속 프레임을 수신하는 단계;
    상기 후속 프레임 중 각 프레임에 대해,
    상기 후속 프레임에 기초하여 점용 그리드 맵을 업데이트하고,
    상기 업데이트에 기초하여 하나 이상의 이상 복셀을 식별하고,
    상기 이상 복셀이 벽 객체에 속하는지 여부를 확정하고,
    상기 이상 복셀이 벽 객체에 속한다고 확정된 것에 응답하여, 상기 이상 복셀을 후속 프레임에 대한 고스트 효과 복셀로 표기하는 단계; 및
    상기 초기 프레임 또는 상기 후속 프레임을 상기 점용 그리드 맵 상에 투영하는 단계를 포함하고,
    상기 초기 프레임 또는 상기 후속 프레임을 점용 그리드 맵에 투영하는 단계는, 상기 점용 그리드 맵 중 각 복셀의 점용 상태를 확정하는 단계를 포함하고, 상기 점용 상태는 자유, 점용 및 미지 중 하나 이며,
    상기 업데이트에 기초하여 하나 이상의 이상 복셀을 식별하는 단계는,
    상기 점용 그리드 맵 중 각 복셀에 대해, 상기 복셀의 점용 상태의 변화를 검출하는 단계; 및
    상기 점용 상태가 자유에서 점용으로 또는 점용에서 자유로 변화되면, 상기 복셀을 이상으로 식별하는 단계를 포함하는, 컴퓨터 구현 방법.
  2. 제1항에 있어서,
    상기 초기 프레임 또는 상기 후속 프레임을 상기 점용 그리드 맵 상에 투영하는 단계는,
    광선 추적 알고리즘을 사용하여 상기 초기 프레임 또는 상기 후속 프레임을 상기 점용 그리드 맵 상에 투영하는 단계를 더 포함하는 컴퓨터 구현 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서,
    베이즈 알고리즘을 적용하여 후속 프레임에 기초하여 상기 점용 그리드 맵을 업데이트하되, 상기 점용 그리드 맵은 점용 확률을 나타내는 복셀을 포함하는 컴퓨터 구현 방법.
  6. 제1항에 있어서,
    상기 이상 복셀이 벽 객체에 속하는지 여부를 확정하는 단계는, 상기 이상 복셀이 평탄한 표면의 속성을 갖는 객체에 속하는지 여부를 식별하는 단계를 포함하고, 상기 평탄한 표면은 수직된 z축에 직교되는 법선을 갖는 컴퓨터 구현 방법.
  7. 제1항에 있어서,
    프레임의 고스트 효과 복셀의 개수가 임계값보다 큰 경우, 포인트 클라우드 맵으로부터 프레임을 제거하는 단계를 더 포함하는 컴퓨터 구현 방법.
  8. 명령이 저장된 비 일시적 기계 판독 가능 매체에 있어서,
    상기 명령이 프로세서에 의해 실행될 경우 프로세서가 동작을 수행하도록 하고, 상기 동작은,
    포인트 클라우드의 초기 프레임에 기초하여 점용 그리드 맵을 생성하는 동작;
    상기 포인트 클라우드의 하나 이상의 후속 프레임을 수신하는 동작;
    상기 후속 프레임 중 각 프레임에 대해,
    상기 후속 프레임에 기초하여 점용 그리드 맵을 업데이트하고,
    상기 업데이트에 기초하여 하나 이상의 이상 복셀을 식별하고,
    상기 이상 복셀이 벽 객체에 속하는지 여부를 확정하고,
    상기 이상 복셀이 벽 객체에 속한다고 확정된 것에 응답하여, 상기 이상 복셀을 후속 프레임에 대한 고스트 효과 복셀로 표기하는 동작; 및
    상기 초기 프레임 또는 상기 후속 프레임을 상기 점용 그리드 맵 상에 투영하는 동작을 포함하고,
    상기 초기 프레임 또는 상기 후속 프레임을 점용 그리드 맵에 투영하는 동작은, 상기 점용 그리드 맵 중 각 복셀의 점용 상태를 확정하는 동작을 포함하고, 상기 점용 상태는 자유, 점용 및 미지 중 하나이며,
    상기 업데이트에 기초하여 하나 이상의 이상 복셀을 식별하는 동작은,
    상기 점용 그리드 맵 중 각 복셀에 대해, 상기 복셀의 점용 상태의 변화를 검출하는 동작; 및
    상기 점용 상태가 자유에서 점용으로 또는 점용에서 자유로 변화되면, 상기 복셀을 이상으로 식별하는 동작을 포함하는, 비 일시적 기계 판독 가능 매체.
  9. 제8항에 있어서,
    상기 초기 프레임 또는 상기 후속 프레임을 상기 점용 그리드 맵 상에 투영하는 동작은,
    광선 추적 알고리즘을 사용하여 상기 초기 프레임 또는 상기 후속 프레임을 상기 점용 그리드 맵 상에 투영하는 동작을 더 포함하는 비 일시적 기계 판독 가능 매체.
  10. 삭제
  11. 삭제
  12. 제8항에 있어서,
    베이즈 알고리즘을 적용하여 후속 프레임에 기초하여 상기 점용 그리드 맵을 업데이트하되, 상기 점용 그리드 맵은 점용 확률을 나타내는 복셀을 포함하는 비 일시적 기계 판독 가능 매체.
  13. 제8항에 있어서,
    상기 이상 복셀이 벽 객체에 속하는지 여부를 확정하는 동작은, 상기 이상 복셀이 평탄한 표면의 속성을 갖는 객체에 속하는지 여부를 식별하는 동작을 포함하고, 상기 평탄한 표면은 수직된 z축에 직교되는 법선을 갖는 비 일시적 기계 판독 가능 매체.
  14. 제8항에 있어서,
    프레임의 고스트 효과 복셀의 개수가 임계값보다 큰 경우, 포인트 클라우드 맵으로부터 프레임을 제거하는 동작을 더 포함하는 비 일시적 기계 판독 가능 매체.
  15. 프로세서; 및
    명령을 저장하기 위해 상기 프로세서에 연결된 메모리를 포함하는 데이터 처리 시스템에 있어서,
    상기 명령이 상기 프로세서에 의해 실행될 경우 상기 프로세서가 동작을 수행하도록 하고, 상기 동작은,
    포인트 클라우드의 초기 프레임에 기초하여 점용 그리드 맵을 생성하는 동작;
    상기 포인트 클라우드의 하나 이상의 후속 프레임을 수신하는 동작;
    상기 후속 프레임 중 각 프레임에 대해,
    상기 후속 프레임에 기초하여 점용 그리드 맵을 업데이트하고,
    상기 업데이트에 기초하여 하나 이상의 이상 복셀을 식별하고,
    상기 이상 복셀이 벽 객체에 속하는지 여부를 확정하고,
    상기 이상 복셀이 벽 객체에 속한다고 확정된 것에 응답하여, 상기 이상 복셀을 후속 프레임에 대한 고스트 효과 복셀로 표기하는 동작; 및
    상기 초기 프레임 또는 상기 후속 프레임을 상기 점용 그리드 맵 상에 투영하는 동작을 포함하고,
    상기 초기 프레임 또는 상기 후속 프레임을 점용 그리드 맵에 투영하는 동작은, 상기 점용 그리드 맵 중 각 복셀의 점용 상태를 확정하는 동작을 포함하고, 상기 점용 상태는 자유, 점용 및 미지 중 하나이며,
    상기 업데이트에 기초하여 하나 이상의 이상 복셀을 식별하는 동작은,
    상기 점용 그리드 맵 중 각 복셀에 대해, 상기 복셀의 점용 상태의 변화를 검출하는 동작; 및
    상기 점용 상태가 자유에서 점용으로 또는 점용에서 자유로 변화되면, 상기 복셀을 이상으로 식별하는 동작을 포함하는, 데이터 처리 시스템.
  16. 제15항에 있어서,
    상기 초기 프레임 또는 상기 후속 프레임을 상기 점용 그리드 맵 상에 투영하는 동작은,
    광선 추적 알고리즘을 사용하여 상기 초기 프레임 또는 상기 후속 프레임을 상기 점용 그리드 맵 상에 투영하는 동작을 더 포함하는 데이터 처리 시스템.
  17. 삭제
  18. 삭제
  19. 제15항에 있어서,
    베이즈 알고리즘을 적용하여 후속 프레임에 기초하여 상기 점용 그리드 맵을 업데이트하되, 상기 점용 그리드 맵은 점용 확률을 나타내는 복셀을 포함하는 데이터 처리 시스템.
  20. 제15항에 있어서,
    상기 이상 복셀이 벽 물체에 속하는지 여부를 확정하는 동작은, 상기 이상 복셀이 평탄한 표면의 속성을 갖는 객체에 속하는지 여부를 식별하는 동작을 포함하고, 상기 평탄한 표면은 수직된 z축에 직교되는 법선을 갖는, 데이터 처리 시스템.
  21. 제15항에 있어서,
    프레임의 고스트 효과 복셀의 개수가 임계값보다 큰 경우, 포인트 클라우드 맵으로부터 프레임을 제거하는 동작을 더 포함하는 데이터 처리 시스템.
KR1020197036973A 2019-01-30 2019-01-30 자율 주행 차량을 위한 포인트 클라우드 고스트 효과 검출 시스템 KR102319036B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2019/073972 WO2020154968A1 (en) 2019-01-30 2019-01-30 A point clouds ghosting effects detection system for autonomous driving vehicles

Publications (2)

Publication Number Publication Date
KR20200096409A KR20200096409A (ko) 2020-08-12
KR102319036B1 true KR102319036B1 (ko) 2021-10-28

Family

ID=71840757

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197036973A KR102319036B1 (ko) 2019-01-30 2019-01-30 자율 주행 차량을 위한 포인트 클라우드 고스트 효과 검출 시스템

Country Status (6)

Country Link
US (1) US11315317B2 (ko)
EP (1) EP3711030A4 (ko)
JP (1) JP7029479B2 (ko)
KR (1) KR102319036B1 (ko)
CN (1) CN111771229B (ko)
WO (1) WO2020154968A1 (ko)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111797650B (zh) * 2019-04-09 2024-02-27 广州文远知行科技有限公司 障碍物的识别方法、装置、计算机设备和存储介质
US11703577B2 (en) * 2020-08-14 2023-07-18 Baidu Usa Llc Recalibration determination system for autonomous driving vehicles with multiple LiDAR sensors
CN112543938B (zh) * 2020-09-29 2022-02-08 华为技术有限公司 占据栅格地图的生成方法和装置
CN112559654A (zh) * 2020-11-27 2021-03-26 广州极飞科技有限公司 电子地图的生成方法、装置和通信系统
CN112711034B (zh) * 2020-12-22 2022-10-14 中国第一汽车股份有限公司 物体检测方法、装置及设备
CN112669373B (zh) * 2020-12-24 2023-12-05 北京亮道智能汽车技术有限公司 一种自动化标注方法、装置、电子设备及存储介质
CN112329749B (zh) * 2021-01-05 2021-04-27 新石器慧通(北京)科技有限公司 点云的标注方法及标注设备
WO2022152361A1 (en) * 2021-01-12 2022-07-21 Sandvik Mining And Construction Oy Underground worksite model generation
CN113592891B (zh) * 2021-07-30 2024-03-22 华东理工大学 无人车可通行域分析方法及导航栅格地图制作方法
US11954914B2 (en) * 2021-08-02 2024-04-09 Nvidia Corporation Belief propagation for range image mapping in autonomous machine applications
US20230043061A1 (en) * 2021-08-06 2023-02-09 Beijing Qingzhouzhihang Technology Co., LTD. System and method for 3d multi-object tracking in lidar point clouds
CN113781652B (zh) * 2021-08-16 2024-04-12 西北大学 一种基于能量密度区域收缩的多层次概率重建方法
US11915436B1 (en) * 2021-08-30 2024-02-27 Zoox, Inc. System for aligning sensor data with maps comprising covariances
TWI833122B (zh) * 2021-10-22 2024-02-21 中光電智能機器人股份有限公司 空間靜態地圖建構方法及系統
CN116012540A (zh) * 2021-10-22 2023-04-25 中光电智能机器人股份有限公司 空间静态地图建构方法及系统
CN113989451B (zh) * 2021-10-28 2024-04-09 北京百度网讯科技有限公司 高精地图构建方法、装置及电子设备
WO2023134873A1 (en) * 2022-01-17 2023-07-20 Telefonaktiebolaget Lm Ericsson (Publ) Three-dimensional scanning of an environment having reflective surfaces
CN114384492B (zh) * 2022-03-24 2022-06-24 北京一径科技有限公司 用于激光雷达的点云处理方法及装置、存储介质
CN114384491B (zh) * 2022-03-24 2022-07-12 北京一径科技有限公司 用于激光雷达的点云处理方法及装置、存储介质
JP2023149113A (ja) * 2022-03-30 2023-10-13 株式会社神戸製鋼所 異常判定方法、異常時の処理方法、情報処理装置、溶接システム、およびプログラム
CN115033586B (zh) * 2022-08-11 2022-11-04 上海伯镭智能科技有限公司 一种矿场路边界的感知及众包地图更新方法
CN115469292B (zh) * 2022-11-01 2023-03-24 天津卡尔狗科技有限公司 环境感知方法、装置、电子设备和存储介质
CN115719354B (zh) * 2022-11-17 2024-03-22 同济大学 基于激光点云提取立杆的方法与装置
CN117292140B (zh) * 2023-10-17 2024-04-02 小米汽车科技有限公司 点云数据的处理方法、装置、车辆及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009204615A (ja) 2007-02-16 2009-09-10 Mitsubishi Electric Corp 道路地物計測装置、地物識別装置、道路地物計測方法、道路地物計測プログラム、計測装置、計測方法、計測端末装置、計測サーバ装置、作図装置、作図方法、作図プログラムおよび作図データ
JP2017016359A (ja) 2015-06-30 2017-01-19 セコム株式会社 自律移動ロボット
JP2019502214A (ja) 2015-11-04 2019-01-24 ズークス インコーポレイテッド 物理的環境の変化に応答して自律車両をナビゲートするための適応マッピング

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010024212A1 (ja) * 2008-08-29 2010-03-04 三菱電機株式会社 俯瞰画像生成装置、俯瞰画像生成方法および俯瞰画像生成プログラム
KR102238693B1 (ko) * 2014-06-20 2021-04-09 삼성전자주식회사 포인트 클라우드에서 특징 영역을 추출하는 방법 및 장치
US9369689B1 (en) * 2015-02-24 2016-06-14 HypeVR Lidar stereo fusion live action 3D model video reconstruction for six degrees of freedom 360° volumetric virtual reality video
US11095869B2 (en) * 2015-09-22 2021-08-17 Fyusion, Inc. System and method for generating combined embedded multi-view interactive digital media representations
CN105260988B (zh) * 2015-09-09 2019-04-05 百度在线网络技术(北京)有限公司 一种高精地图数据的处理方法和装置
CN105446338B (zh) * 2015-12-21 2017-04-05 福州华鹰重工机械有限公司 云辅助自动驾驶方法及系统
JP2017129375A (ja) * 2016-01-18 2017-07-27 株式会社Ihi 画像処理装置、画像処理方法、および画像処理プログラム
US10162362B2 (en) * 2016-08-29 2018-12-25 PerceptIn, Inc. Fault tolerance to provide robust tracking for autonomous positional awareness
JP7090597B2 (ja) * 2016-09-28 2022-06-24 トムトム グローバル コンテント ベスローテン フエンノートシャップ 位置特定基準データを生成及び使用する方法及びシステム
CN113008263B (zh) * 2016-11-01 2024-04-30 松下电器(美国)知识产权公司 数据生成方法及数据生成装置
EP3324209A1 (en) * 2016-11-18 2018-05-23 Dibotics Methods and systems for vehicle environment map generation and updating
US11295458B2 (en) * 2016-12-01 2022-04-05 Skydio, Inc. Object tracking by an unmanned aerial vehicle using visual sensors
US10304256B2 (en) * 2016-12-13 2019-05-28 Indoor Reality Inc. Point cloud cleaning method
KR20190091366A (ko) * 2016-12-23 2019-08-05 모빌아이 비젼 테크놀로지스 엘티디. 부과된 책임 제약이 있는 항법 시스템
US10445928B2 (en) * 2017-02-11 2019-10-15 Vayavision Ltd. Method and system for generating multidimensional maps of a scene using a plurality of sensors of various types
US10007269B1 (en) * 2017-06-23 2018-06-26 Uber Technologies, Inc. Collision-avoidance system for autonomous-capable vehicle
CN109215067B (zh) * 2017-07-03 2023-03-10 百度(美国)有限责任公司 基于cnn和crf模型生成高分辨率3-d点云
CN109214248B (zh) * 2017-07-04 2022-04-29 阿波罗智能技术(北京)有限公司 用于识别无人驾驶车辆的激光点云数据的方法和装置
CN108460791A (zh) * 2017-12-29 2018-08-28 百度在线网络技术(北京)有限公司 用于处理点云数据的方法和装置
CN108320329B (zh) * 2018-02-02 2020-10-09 维坤智能科技(上海)有限公司 一种基于3d激光的3d地图创建方法
CN108986061B (zh) * 2018-06-28 2019-09-20 百度在线网络技术(北京)有限公司 三维点云道路数据融合方法、装置及存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009204615A (ja) 2007-02-16 2009-09-10 Mitsubishi Electric Corp 道路地物計測装置、地物識別装置、道路地物計測方法、道路地物計測プログラム、計測装置、計測方法、計測端末装置、計測サーバ装置、作図装置、作図方法、作図プログラムおよび作図データ
JP4344869B2 (ja) * 2007-02-16 2009-10-14 三菱電機株式会社 計測装置
JP2017016359A (ja) 2015-06-30 2017-01-19 セコム株式会社 自律移動ロボット
JP2019502214A (ja) 2015-11-04 2019-01-24 ズークス インコーポレイテッド 物理的環境の変化に応答して自律車両をナビゲートするための適応マッピング

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Azim, et al. "Detection, classification and tracking of moving objects in a 3D environment." 2012 IEEE Intelligent Vehicles Symposium. IEEE(2012)*

Also Published As

Publication number Publication date
EP3711030A1 (en) 2020-09-23
EP3711030A4 (en) 2020-09-30
US11315317B2 (en) 2022-04-26
CN111771229A (zh) 2020-10-13
WO2020154968A1 (en) 2020-08-06
US20210327128A1 (en) 2021-10-21
JP7029479B2 (ja) 2022-03-03
KR20200096409A (ko) 2020-08-12
JP2021516183A (ja) 2021-07-01
CN111771229B (zh) 2023-11-21

Similar Documents

Publication Publication Date Title
KR102319065B1 (ko) 자율 주행 차량을 위한 실시간 지도 생성 시스템
KR102379295B1 (ko) 자율 주행 차량을 위한 rgb 포인트 클라우드 기반의 맵 생성 시스템
KR102319036B1 (ko) 자율 주행 차량을 위한 포인트 클라우드 고스트 효과 검출 시스템
KR102334641B1 (ko) 자율 주행 차량을 위한 맵 파티셔닝 시스템
KR102376709B1 (ko) 자율 주행 차량을 위한 포인트 클라우드 등록 시스템
CN111771206B (zh) 用于自动驾驶车辆的地图分区系统

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant