KR20230166129A - 에이전트 궤적 예측 - Google Patents
에이전트 궤적 예측 Download PDFInfo
- Publication number
- KR20230166129A KR20230166129A KR1020237038389A KR20237038389A KR20230166129A KR 20230166129 A KR20230166129 A KR 20230166129A KR 1020237038389 A KR1020237038389 A KR 1020237038389A KR 20237038389 A KR20237038389 A KR 20237038389A KR 20230166129 A KR20230166129 A KR 20230166129A
- Authority
- KR
- South Korea
- Prior art keywords
- graph
- node
- policy
- encoding
- vehicle
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 59
- 238000005070 sampling Methods 0.000 claims abstract description 11
- 239000003795 chemical substances by application Substances 0.000 claims description 95
- 238000009826 distribution Methods 0.000 claims description 20
- 239000013598 vector Substances 0.000 claims description 13
- 238000013528 artificial neural network Methods 0.000 claims description 11
- 230000004931 aggregating effect Effects 0.000 claims description 7
- 238000012549 training Methods 0.000 claims description 7
- 230000007704 transition Effects 0.000 claims description 6
- 230000003542 behavioural effect Effects 0.000 claims description 5
- 230000000306 recurrent effect Effects 0.000 claims description 5
- 230000010076 replication Effects 0.000 claims description 5
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 238000004590 computer program Methods 0.000 abstract description 2
- 238000013527 convolutional neural network Methods 0.000 description 80
- 210000002569 neuron Anatomy 0.000 description 47
- 230000001149 cognitive effect Effects 0.000 description 45
- 230000006870 function Effects 0.000 description 35
- 238000004891 communication Methods 0.000 description 27
- 230000004807 localization Effects 0.000 description 26
- 238000007726 management method Methods 0.000 description 25
- 230000008569 process Effects 0.000 description 25
- 230000015654 memory Effects 0.000 description 20
- 238000013439 planning Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 12
- 230000001133 acceleration Effects 0.000 description 9
- 230000009471 action Effects 0.000 description 9
- 230000002776 aggregation Effects 0.000 description 8
- 238000004220 aggregation Methods 0.000 description 8
- 238000011144 upstream manufacturing Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000006399 behavior Effects 0.000 description 4
- 230000001143 conditioned effect Effects 0.000 description 4
- 238000010801 machine learning Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 235000004522 Pentaglottis sempervirens Nutrition 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 3
- 238000011176 pooling Methods 0.000 description 3
- 230000005236 sound signal Effects 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000010367 cloning Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000003064 k means clustering Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 240000004050 Pentaglottis sempervirens Species 0.000 description 1
- 206010048669 Terminal state Diseases 0.000 description 1
- 238000010521 absorption reaction Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003920 cognitive function Effects 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 238000001429 visible spectrum Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W60/00—Drive control systems specially adapted for autonomous road vehicles
- B60W60/001—Planning or execution of driving tasks
- B60W60/0027—Planning or execution of driving tasks using trajectory prediction for other traffic participants
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W50/0097—Predicting future conditions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
- G06N3/0442—Recurrent networks, e.g. Hopfield networks characterised by memory or gating, e.g. long short-term memory [LSTM] or gated recurrent units [GRU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/0464—Convolutional networks [CNN, ConvNet]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W50/00—Details of control systems for road vehicle drive control not related to the control of a particular sub-unit, e.g. process diagnostic or vehicle driver interfaces
- B60W2050/0001—Details of the control system
- B60W2050/0019—Control system elements or transfer functions
- B60W2050/0022—Gains, weighting coefficients or weighting functions
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B60—VEHICLES IN GENERAL
- B60W—CONJOINT CONTROL OF VEHICLE SUB-UNITS OF DIFFERENT TYPE OR DIFFERENT FUNCTION; CONTROL SYSTEMS SPECIALLY ADAPTED FOR HYBRID VEHICLES; ROAD VEHICLE DRIVE CONTROL SYSTEMS FOR PURPOSES NOT RELATED TO THE CONTROL OF A PARTICULAR SUB-UNIT
- B60W2556/00—Input parameters relating to data
- B60W2556/40—High definition maps
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Molecular Biology (AREA)
- Artificial Intelligence (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Human Computer Interaction (AREA)
- Transportation (AREA)
- Mechanical Engineering (AREA)
- Traffic Control Systems (AREA)
Abstract
에이전트 궤적을 예측하기 위한 방법이 제공되며, 방법은, 맵 피처 및 에이전트 피처를 그래프의 노드 인코딩으로서 인코딩함으로써 장면의 맵에 대응하는 그래프를 생성하는 단계, 및 그래프의 노드에서 나가는 에지에 적용하기 위한 정책을 결정하는 단계를 포함할 수 있다. 기재된 일부 방법은 또한, 정책에 따라 장면에서 타겟 차량에 대한 경로를 샘플링하는 단계, 및 상기 정책에 의해 순회된 상기 샘플링된 경로 및 샘플링된 잠재 변수에 기초하여 궤적 세트를 예측하는 단계를 포함한다. 시스템 및 컴퓨터 프로그램 제품도 또한 제공된다.
Description
관련 출원에 대한 상호참조
본 출원은 2021년 4월 23일에 출원된 "Predicting Agent Trajectories"이라는 명칭의 미국 가특허 출원 번호 제63/179,169호의 35 USC § 119(e) 하의 이익을 주장한다. 전술한 출원의 개시는 모든 목적을 위해 그 전체가 참조에 의해 본원에 포함된다.
미래를 예측하는 데에는 본질적인 불확실성이 있으며, 이는 궤적 예측을 어려운 문제로 만든다. 복잡한 트래픽 장면을 안전하고 효율적으로 탐색하기 위해서는 자율 주행 차량이 주변 차량의 미래 궤적을 정확하게 예측하고 그리하여 자율 주행 차량이 그에 따라 스스로 궤적을 계획할 수 있는 것이 바람직하다.
도 1은 자율 주행 시스템(autonomous system)의 하나 이상의 컴포넌트를 포함하는 차량이 구현될 수 있는 예시적인 환경이다.
도 2는 자율 주행 시스템을 포함하는 차량의 하나 이상의 시스템의 다이어그램이다.
도 3은 도 1 및 도 2의 하나 이상의 디바이스 및/또는 하나 이상의 시스템의 컴포넌트들의 다이어그램이다.
도 4a는 자율 주행 시스템의 특정 컴포넌트들의 다이어그램이다.
도 4b는 신경 네트워크의 구현의 다이어그램이다.
도 4c 및 도 4d는 CNN의 예시적인 작동을 예시하는 다이어그램이다.
도 5는 에이전트 궤적 예측의 예시적인 프로세스를 예시한 블록 다이어그램이다.
도 6은 예시적인 에이전트 궤적 예측 시스템을 예시한 블록 다이어그램이다.
도 7은 예시적인 그래프 인코더를 예시한다.
도 8은 예시적인 HD 맵 및 예시적인 HD 맵에 대응하는 예시적인 방향성 그래프(directed graph)를 예시한다.
도 9는 예시적인 정책 헤더를 예시한다.
도 10은 예시적인 궤적 디코더를 예시한다.
도 11a 내지 도 11c는 각각 차선 그래프 생성기에 의해 생성된 3개의 예시적인 방향성 그래프를 예시한다.
도 12는 본 개시의 구현에 따른 에이전트 컨텍스트와 맵 컨텍스트의 집계를 예시한다.
도 13은 정책 헤더에 사용될 수 있는 예시적인 리워드 모델을 예시한다.
도 14는 에이전트에 대한 궤적을 예측하는 예시적인 프로세스를 예시한다.
도 2는 자율 주행 시스템을 포함하는 차량의 하나 이상의 시스템의 다이어그램이다.
도 3은 도 1 및 도 2의 하나 이상의 디바이스 및/또는 하나 이상의 시스템의 컴포넌트들의 다이어그램이다.
도 4a는 자율 주행 시스템의 특정 컴포넌트들의 다이어그램이다.
도 4b는 신경 네트워크의 구현의 다이어그램이다.
도 4c 및 도 4d는 CNN의 예시적인 작동을 예시하는 다이어그램이다.
도 5는 에이전트 궤적 예측의 예시적인 프로세스를 예시한 블록 다이어그램이다.
도 6은 예시적인 에이전트 궤적 예측 시스템을 예시한 블록 다이어그램이다.
도 7은 예시적인 그래프 인코더를 예시한다.
도 8은 예시적인 HD 맵 및 예시적인 HD 맵에 대응하는 예시적인 방향성 그래프(directed graph)를 예시한다.
도 9는 예시적인 정책 헤더를 예시한다.
도 10은 예시적인 궤적 디코더를 예시한다.
도 11a 내지 도 11c는 각각 차선 그래프 생성기에 의해 생성된 3개의 예시적인 방향성 그래프를 예시한다.
도 12는 본 개시의 구현에 따른 에이전트 컨텍스트와 맵 컨텍스트의 집계를 예시한다.
도 13은 정책 헤더에 사용될 수 있는 예시적인 리워드 모델을 예시한다.
도 14는 에이전트에 대한 궤적을 예측하는 예시적인 프로세스를 예시한다.
이하의 설명에서는, 설명 목적으로 본 개시에 대한 완전한 이해를 제공하기 위해 다수의 특정 세부 사항들이 기재된다. 그렇지만, 본 개시에 의해 기술되는 실시예들이 이러한 특정 세부 사항들이 없더라도 실시될 수 있음이 명백할 것이다. 일부 경우에, 본 개시의 양태들을 불필요하게 모호하게 하는 것을 피하기 위해 잘 알려진 구조들 및 디바이스들은 블록 다이어그램 형태로 예시되어 있다.
시스템들, 디바이스들, 모듈들, 명령어 블록들, 데이터 요소들 등을 나타내는 것들과 같은, 개략적인 요소들의 특정 배열들 또는 순서들이 설명의 편의를 위해 도면들에 예시되어 있다. 그렇지만, 본 기술 분야의 통상의 기술자라면 도면들에서의 개략적인 요소들의 특정 순서 또는 배열이, 그러한 것으로 명시적으로 기술되지 않는 한, 프로세스들의 특정 프로세싱 순서 또는 시퀀스, 또는 프로세스들의 분리가 필요하다는 것을 암시하는 것으로 의미되지 않음을 이해할 것이다. 게다가, 도면에 개략적인 요소를 포함시키는 것은, 그러한 것으로 명시적으로 기술되지 않는 한 일부 실시예들에서, 그러한 요소가 모든 실시예들에서 필요하다는 것 또는 그러한 요소에 의해 표현되는 특징들이 다른 요소들에 포함되지 않을 수 있거나 다른 요소들과 결합되지 않을 수 있다는 것을 암시하는 것으로 의미되지 않는다.
게다가, 2 개 이상의 다른 개략적인 요소 사이의 연결, 관계 또는 연관을 예시하기 위해 실선 또는 파선 또는 화살표와 같은 연결 요소들이 도면들에서 사용되는 경우에, 임의의 그러한 연결 요소들의 부재는 연결, 관계 또는 연관이 존재할 수 없음을 암시하는 것으로 의미되지 않는다. 환언하면, 본 개시를 모호하게 하지 않기 위해 요소들 사이의 일부 연결들, 관계들 또는 연관들이 도면들에 예시되어 있지 않다. 추가적으로, 예시의 편의를 위해, 요소들 사이의 다수의 연결들, 관계들 또는 연관들을 나타내기 위해 단일의 연결 요소가 사용될 수 있다. 예를 들어, 연결 요소가 신호들, 데이터 또는 명령어들(예를 들면, "소프트웨어 명령어들")의 통신을 나타내는 경우에, 본 기술 분야의 통상의 기술자라면 그러한 요소가, 통신을 수행하기 위해 필요하게 될 수 있는, 하나 또는 다수의 신호 경로(예를 들면, 버스)를 나타낼 수 있다는 것을 이해할 것이다.
제1, 제2, 제3 등의 용어들이 다양한 컴포넌트들을 기술하는 데 사용되지만, 이러한 요소들이 이러한 용어들에 의해 제한되어서는 안된다. 제1, 제2, 제3 등의 용어들은 하나의 요소를 다른 요소와 구별하는 데만 사용된다. 예를 들어, 기술된 실시예들의 범위를 벗어나지 않으면서, 제1 접촉은 제2 접촉이라고 지칭될 수 있고, 유사하게 제2 접촉은 제1 접촉이라고 지칭될 수 있다. 제1 접촉과 제2 접촉 둘 모두가 접촉이지만, 동일한 접촉은 아니다.
본원에서의 다양한 기술된 실시예들에 대한 설명에서 사용되는 전문용어는 특정 실시예들을 기술하기 위해서만 포함되어 있으며, 제한하는 것으로 의도되지 않는다. 다양한 기술된 실시예들에 대한 설명 및 첨부된 청구항들에서 사용되는 바와 같이, 단수 형태들("a", "an" 및 "the")은 복수 형태들도 포함하는 것으로 의도되고, 문맥이 달리 명확히 나타내지 않는 한, "하나 이상" 또는 "적어도 하나"와 상호 교환 가능하게 사용될 수 있다. "및/또는"이라는 용어가, 본원에서 사용되는 바와 같이, 연관된 열거된 항목들 중 하나 이상의 항목의 일부 및 모든 가능한 조합을 지칭하고 포함한다는 것이 또한 이해될 것이다. 게다가, "포함한다" 및/또는 "포함하는"이라는 용어는 본 설명에서 사용될 때, 언급된 특징, 정수, 단계, 동작, 요소, 및/또는 컴포넌트의 존재를 명시하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 컴포넌트, 및/또는 그의 그룹의 존재 또는 추가를 배제하지 않는다는 것도 이해될 것이다.
본원에서 사용되는 바와 같이, "통신" 및 "통신하다"라는 용어들은 정보(또는, 예를 들어, 데이터, 신호들, 메시지들, 명령어들, 커맨드들 등에 의해 표현되는 정보)의 수신, 접수, 송신, 전달, 제공 등 중 적어도 하나를 지칭한다. 하나의 유닛(예를 들면, 디바이스, 시스템, 디바이스 또는 시스템의 컴포넌트, 이들의 조합들 등)이 다른 유닛과 통신한다는 것은 하나의 유닛이 직접 또는 간접적으로 다른 유닛으로부터 정보를 수신하고/하거나 다른 유닛으로 정보를 전송(예를 들면, 송신)할 수 있음을 의미한다. 이것은 본질적으로 유선 및/또는 무선인 직접 또는 간접 연결을 지칭할 수 있다. 추가적으로, 송신되는 정보가 제1 유닛과 제2 유닛 사이에서 수정, 프로세싱, 중계 및/또는 라우팅될 수 있을지라도 2 개의 유닛은 서로 통신하고 있을 수 있다. 예를 들어, 제1 유닛이 정보를 수동적으로 수신하고 정보를 제2 유닛으로 능동적으로 송신하지 않을지라도 제1 유닛은 제2 유닛과 통신하고 있을 수 있다. 다른 예로서, 적어도 하나의 중간 유닛(예를 들면, 제1 유닛과 제2 유닛 사이에 위치하는 제3 유닛)이 제1 유닛으로부터 수신되는 정보를 프로세싱하고 프로세싱된 정보를 제2 유닛으로 송신하는 경우 제1 유닛은 제2 유닛과 통신하고 있을 수 있다. 일부 실시예들에서, 메시지는 데이터를 포함하는 네트워크 패킷(예를 들면, 데이터 패킷 등)을 지칭할 수 있다.
본원에서 사용되는 바와 같이, "~ 경우"라는 용어는, 선택적으로, 문맥에 따라 "~할 때", 또는 "~시에" 또는 "~라고 결정하는 것에 응답하여", "~을 검출하는 것에 응답하여" 등을 의미하는 것으로 해석된다. 유사하게, 문구 "~라고 결정되는 경우" 또는 "[언급된 조건 또는 이벤트]가 검출되는 경우"는, 선택적으로, 문맥에 따라, "~라고 결정할 시에", "~라고 결정하는 것에 응답하여", "[언급된 조건 또는 이벤트]를 검출할 시에", "[언급된 조건 또는 이벤트]를 검출하는 것에 응답하여" 등을 의미하는 것으로 해석된다. 또한, 본원에서 사용되는 바와 같이, "갖는다"(has, have), "갖는(having)" 등의 용어들은 개방형(open-ended) 용어들인 것으로 의도된다. 게다가, 문구 "~에 기초하여"는, 달리 명시적으로 언급되지 않는 한, "~에 적어도 부분적으로 기초하여"를 의미하는 것으로 의도된다.
그 예가 첨부 도면에 예시된 실시예가 이제 상세하게 언급될 것이다. 이하의 상세한 설명에서, 다양한 기술된 실시예에 대한 완전한 이해를 제공하기 위해 많은 특정 세부 사항이 기재된다. 그렇지만, 다양한 기술된 실시예들이 이러한 특정 세부 사항들이 없더라도 실시될 수 있다는 것이 본 기술 분야의 통상의 기술자에게 명백할 것이다. 다른 경우에, 실시예의 양태를 불필요하게 모호하게 하지 않기 위해 공지된 방법, 절차, 컴포넌트, 회로, 및 네트워크는 상세히 기술되지 않았다.
일반적 개관
일부 양상 및/또는 실시예에서, 본원에 기술된 시스템, 방법, 및 컴퓨터 프로그램 제품은 에이전트 궤적을 예측하기 위해 장면(scene)의 그래픽 표현을 사용하는 것을 포함하고/하거나 구현한다. 차량(예컨대, 자율 주행 차량)은 주변 에이전트(예컨대, 타겟 차량 또는 보행자)의 미래 궤적을 예측함으로써 트래픽 장면을 통해(예컨대, 환경 내에서) 탐색한다. 고화질 맵 및 에이전트 궤적은 장면을 나타내는 그래프로 인코딩된다. 에이전트 궤적은 개별(discrete) 정책(예컨대, 상태-액션 매핑)에 따라 예측되고, 각각의 궤적에 대하여 컨텍스트가 선택적으로 집계된다(aggregated)(예컨대, 컨텍스트는 차선 그래프 순회(traversal)를 조건으로 함). 예측된 궤적의 종방향 변동성(longitudinal variability)을 감안하기 위해 잠재 변수(latent variable)가 샘플링된다. 장면에서의 각각의 에이전트에 대한 최종 궤적 세트는 정책에 의해 순회된(traversed) 경로(루트) 및 잠재 분포(예컨대, K-평균 클러스터링, 출력 클러스터 중심)를 샘플링함으로써 결정된다.
이들 기술의 장점 중 일부는 차선 그래프 순회에 대한 선택적인 조건부 예측을 포함하며, 이는 (i) 데이터에 따라 발생할 가능성이 있는 대부분의 경로가 생성되도록 루트 측면에서 다양한(diverse), 그리고 (ii) 가장 낮은 오프로드 비율로 정밀하고 장면을 준수하는, 궤적들을 생성한다. 정밀 궤적은 데이터에 따라 발생할 가능성이 있는 경로를 지칭한다. 샘플링된 잠재 변수를 사용하면 모션 프로파일 측면에서 다양한 궤적들을 생성한다. 또한, 본 기술은 개별 궤적을 가진 그래프 기반의 표현을 통해 샘플 효율성을 개선한다. 컨텍스트는 노드에서 구체적으로 캡처되며, 각각의 궤적에 대한 관련 컨텍스트의 포함을 보장한다. 일부 경우에, 기존 기술은 콘볼루션 신경 네트워크(convent) 수용 필드를 사용하여 관련 컨텍스트를 캡처하지 못한다. 또한, 본 기술은 필연적으로 자율 주행 차량의 작동을 가능하게 하는 컴퓨터 기술에 뿌리를 두고 있다. 장면에서의 에이전트 모델이 개선되며, 그 결과 에이전트 행동을 보다 정확하게 예측할 수 있다. 그래프 위치는 운전 불가 영역이 거의 나타나지 않는 운전 가능 위치이므로 모델은 상태 공간 측면에서 효율적이다. 이를 통해 프로세싱 및 메모리 리소스를 포함한 컴퓨팅 리소스를 보다 효율적으로 사용할 수 있다.
이제 도 1을 참조하면, 자율 주행 시스템들을 포함하는 차량들은 물론 그렇지 않은 차량들이 작동되는 예시적인 환경(100)이 예시되어 있다. 예시된 바와 같이, 환경(100)은 차량들(102a 내지 102n), 대상체들(104a 내지 104n), 루트들(106a 내지 106n), 영역(108), 차량 대 인프라스트럭처(vehicle-to-infrastructure, V2I) 디바이스(110), 네트워크(112), 원격 자율 주행 차량(AV) 시스템(114), 플릿 관리 시스템(fleet management system)(116), 및 V2I 시스템(118)을 포함한다. 차량들(102a 내지 102n), 차량 대 인프라스트럭처(V2I) 디바이스(110), 네트워크(112), 자율 주행 차량(AV) 시스템(114), 플릿 관리 시스템(116), 및 V2I 시스템(118)은 유선 연결들, 무선 연결들, 또는 유선 또는 무선 연결들의 조합을 통해 상호연결한다(예를 들면, 통신 등을 위해 연결을 확립한다). 일부 실시예들에서, 대상체들(104a 내지 104n)은 유선 연결들, 무선 연결들 또는 유선 또는 무선 연결들의 조합을 통해 차량들(102a 내지 102n), 차량 대 인프라스트럭처(V2I) 디바이스(110), 네트워크(112), 자율 주행 차량(AV) 시스템(114), 플릿 관리 시스템(116), 및 V2I 시스템(118) 중 적어도 하나와 상호연결한다.
차량들(102a 내지 102n)(개별적으로 차량(102)이라고 지칭되고 집합적으로 차량들(102)이라고 지칭됨)은 상품 및/또는 사람을 운송하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 실시예들에서, 차량들(102)은 네트워크(112)를 통해 V2I 디바이스(110), 원격 AV 시스템(114), 플릿 관리 시스템(116), 및/또는 V2I 시스템(118)과 통신하도록 구성된다. 일부 실시예들에서, 차량들(102)은 자동차들, 버스들, 트럭들, 기차들 등을 포함한다. 일부 실시예들에서, 차량들(102)은 본원에 기술된 차량들(200)(도 2 참조)과 동일하거나 유사하다. 일부 실시예들에서, 일단의 차량들(200) 중의 차량(200)은 자율 주행 플릿 관리자와 연관된다. 일부 실시예들에서, 차량들(102)은, 본원에 기술된 바와 같이, 각자의 루트들(106a 내지 106n)(개별적으로 루트(106)라고 지칭되고 집합적으로 루트들(106)이라고 지칭됨)을 따라 주행한다. 일부 실시예들에서, 하나 이상의 차량(102)은 자율 주행 시스템(예를 들면, 자율 주행 시스템(202)과 동일하거나 유사한 자율 주행 시스템)을 포함한다.
대상체들(104a 내지 104n)(개별적으로 대상체(104)라고 지칭되고 집합적으로 대상체들(104)이라고 지칭됨)은, 예를 들어, 적어도 하나의 차량, 적어도 하나의 보행자, 적어도 하나의 자전거 타는 사람, 적어도 하나의 구조물(예를 들면, 건물, 표지판, 소화전(fire hydrant) 등) 등을 포함한다. 각각의 대상체(104)는 정지해 있거나(예를 들면, 일정 시간 기간 동안 고정 위치에 위치하거나) 이동하고 있다(예를 들면, 속도를 가지며 적어도 하나의 궤적과 연관되어 있다). 일부 실시예들에서, 대상체들(104)은 영역(108) 내의 대응하는 위치들과 연관되어 있다.
루트들(106a 내지 106n)(개별적으로 루트(106)라고 지칭되고 집합적으로 루트들(106)이라고 지칭됨)은 각각 AV가 운행할 수 있는 상태들을 연결하는 행동들의 시퀀스(궤적이라고도 함)와 연관된다(예를 들면, 이를 규정한다). 각각의 루트(106)는 초기 상태(예를 들면, 제1 시공간적 위치, 속도 등에 대응하는 상태) 및 최종 목표 상태(예를 들면, 제1 시공간적 위치와 상이한 제2 시공간적 위치에 대응하는 상태) 또는 목표 영역(예를 들면, 허용 가능한 상태들(예를 들면, 종료 상태들(terminal states))의 부분 공간(subspace))에서 시작된다. 일부 실시예들에서, 제1 상태는 개인 또는 개인들이 AV에 의해 픽업(pick-up)되어야 하는 위치를 포함하고 제2 상태 또는 영역은 AV에 의해 픽업된 개인 또는 개인들이 하차(drop-off)해야 하는 위치 또는 위치들을 포함한다. 일부 실시예들에서, 루트들(106)은 복수의 허용 가능한 상태 시퀀스들(예를 들면, 복수의 시공간적 위치 시퀀스들)을 포함하며, 복수의 상태 시퀀스들은 복수의 궤적들과 연관된다(예를 들면, 이를 정의한다). 일 예에서, 루트들(106)은, 도로 교차로들에서의 회전 방향들을 지시하는 일련의 연결된 도로들과 같은, 상위 레벨 행동들 또는 부정확한 상태 위치들만을 포함한다. 추가적으로 또는 대안적으로, 루트들(106)은, 예를 들어, 특정 목표 차선들 또는 차선 영역들 내에서의 정확한 위치들 및 해당 위치들에서의 목표 속력과 같은, 보다 정확한 행동들 또는 상태들을 포함할 수 있다. 일 예에서, 루트들(106)은 중간 목표들에 도달하기 위해 제한된 룩어헤드 호라이즌(lookahead horizon)을 갖는 적어도 하나의 상위 레벨 행동 시퀀스를 따른 복수의 정확한 상태 시퀀스들을 포함하며, 여기서 제한된 호라이즌 상태 시퀀스들의 연속적인 반복들의 조합은 누적되어 복수의 궤적들에 대응하며 이 복수의 궤적들은 집합적으로 최종 목표 상태 또는 영역에서 종료하는 상위 레벨 루트를 형성한다.
영역(108)은 차량들(102)이 운행할 수 있는 물리적 영역(예를 들면, 지리적 영역)을 포함한다. 일 예에서, 영역(108)은 적어도 하나의 주(state)(예를 들면, 국가, 지방, 국가에 포함된 복수의 주들의 개개의 주 등), 주의 적어도 하나의 부분, 적어도 하나의 도시, 도시의 적어도 하나의 부분 등을 포함한다. 일부 실시예들에서, 영역(108)은 간선 도로, 주간 간선 도로, 공원 도로, 도시 거리 등과 같은 적어도 하나의 명명된 주요 도로(thoroughfare)(본원에서 "도로"라고 지칭됨)를 포함한다. 추가적으로 또는 대안적으로, 일부 예들에서, 영역(108)은 진입로, 주차장의 섹션, 공터 및/또는 미개발 부지의 섹션, 비포장 경로 등과 같은 적어도 하나의 명명되지 않은 도로를 포함한다. 일부 실시예들에서, 도로는 적어도 하나의 차선(예를 들면, 차량(102)에 의해 횡단될 수 있는 도로의 일 부분)을 포함한다. 일 예에서, 도로는 적어도 하나의 차선 마킹과 연관된(예를 들면, 이에 기초하여 식별되는) 적어도 하나의 차선을 포함한다.
차량 대 인프라스트럭처(V2I) 디바이스(110)(때때로 차량 대 인프라스트럭처(V2X) 디바이스라고 지칭됨)는 차량들(102) 및/또는 V2I 인프라스트럭처 시스템(118)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 실시예들에서, V2I 디바이스(110)는 네트워크(112)를 통해 차량들(102), 원격 AV 시스템(114), 플릿 관리 시스템(116), 및/또는 V2I 시스템(118)과 통신하도록 구성된다. 일부 실시예들에서, V2I 디바이스(110)는 RFID(radio frequency identification) 디바이스, 사이니지(signage), 카메라(예를 들면, 2차원(2D) 및/또는 3차원(3D) 카메라), 차선 마커, 가로등, 주차 미터기 등을 포함한다. 일부 실시예들에서, V2I 디바이스(110)는 차량들(102)과 직접 통신하도록 구성된다. 추가적으로 또는 대안적으로, 일부 실시예들에서, V2I 디바이스(110)는 V2I 시스템(118)을 통해 차량들(102), 원격 AV 시스템(114), 및/또는 플릿 관리 시스템(116)과 통신하도록 구성된다. 일부 실시예들에서, V2I 디바이스(110)는 네트워크(112)를 통해 V2I 시스템(118)과 통신하도록 구성된다.
네트워크(112)는 하나 이상의 유선 및/또는 무선 네트워크를 포함한다. 일 예에서, 네트워크(112)는 셀룰러 네트워크(예를 들면, LTE(long term evolution) 네트워크, 3G(third generation) 네트워크, 4G(fourth generation) 네트워크, 5G(fifth generation) 네트워크, CDMA( code division multiple access) 네트워크 등), PLMN(public land mobile network), LAN(local area network), WAN(wide area network), MAN(metropolitan area network), 전화 네트워크(예를 들면, PSTN(public switched telephone network)), 사설 네트워크, 애드혹 네트워크, 인트라넷, 인터넷, 광섬유 기반 네트워크, 클라우드 컴퓨팅 네트워크 등, 이러한 네트워크들의 일부 또는 전부의 조합 등을 포함한다.
원격 AV 시스템(114)은 네트워크(112)를 통해 차량들(102), V2I 디바이스(110), 네트워크(112), 원격 AV 시스템(114), 플릿 관리 시스템(116), 및/또는 V2I 시스템(118)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일 예에서, 원격 AV 시스템(114)은 서버, 서버들의 그룹, 및/또는 다른 유사한 디바이스들을 포함한다. 일부 실시예들에서, 원격 AV 시스템(114)은 플릿 관리 시스템(116)과 동일 위치에 배치된다(co-located). 일부 실시예들에서, 원격 AV 시스템(114)은 자율 주행 시스템, 자율 주행 차량 컴퓨터, 자율 주행 차량 컴퓨터에 의해 구현되는 소프트웨어 등을 포함한, 차량의 컴포넌트들 중 일부 또는 전부의 설치에 관여된다. 일부 실시예들에서, 원격 AV 시스템(114)은 차량의 수명 동안 그러한 컴포넌트들 및/또는 소프트웨어를 유지 관리(예를 들면, 업데이트 및/또는 교체)한다.
플릿 관리 시스템(116)은 차량들(102), V2I 디바이스(110), 원격 AV 시스템(114), 및/또는 V2I 인프라스트럭처 시스템(118)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일 예에서, 플릿 관리 시스템(116)은 서버, 서버들의 그룹, 및/또는 다른 유사한 디바이스들을 포함한다. 일부 실시예들에서, 플릿 관리 시스템(116)은 라이드 셰어링(ridesharing) 회사(예를 들면, 다수의 차량들(예를 들면, 자율 주행 시스템들을 포함하는 차량들 및/또는 자율 주행 시스템들을 포함하지 않는 차량들)의 작동을 제어하는 조직 등)와 연관된다.
일부 실시예들에서, V2I 시스템(118)은 네트워크(112)를 통해 차량들(102), V2I 디바이스(110), 원격 AV 시스템(114), 및/또는 플릿 관리 시스템(116)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, V2I 시스템(118)은 네트워크(112)와 상이한 연결을 통해 V2I 디바이스(110)와 통신하도록 구성된다. 일부 실시예들에서, V2I 시스템(118)은 서버, 서버들의 그룹, 및/또는 다른 유사한 디바이스들을 포함한다. 일부 실시예들에서, V2I 시스템(118)은 지자체 또는 사설 기관(예를 들면, V2I 디바이스(110) 등을 유지 관리하는 사설 기관)과 연관된다.
도 1에 예시된 요소들의 수 및 배열은 예로서 제공된다. 도 1에 예시된 것보다, 추가적인 요소들, 더 적은 요소들, 상이한 요소들 및/또는 상이하게 배열된 요소들이 있을 수 있다. 추가적으로 또는 대안적으로, 환경(100)의 적어도 하나의 요소는 도 1의 적어도 하나의 상이한 요소에 의해 수행되는 것으로 기술된 하나 이상의 기능을 수행할 수 있다. 추가적으로 또는 대안적으로, 환경(100)의 적어도 하나의 요소 세트는 환경(100)의 적어도 하나의 상이한 요소 세트에 의해 수행되는 것으로 기술된 하나 이상의 기능을 수행할 수 있다.
이제 도 2를 참조하면, 차량(200)은 자율 주행 시스템(202), 파워트레인 제어 시스템(204), 조향 제어 시스템(206), 및 브레이크 시스템(208)을 포함한다. 일부 실시예들에서, 차량(200)은 차량(102)(도 1 참조)과 동일하거나 유사하다. 일부 실시예들에서, 차량(102)은 자율 주행 능력을 갖는다(예를 들면, 완전 자율 주행 차량들(예를 들면, 인간 개입에 의존하지 않는 차량들), 고도 자율 주행 차량들(예를 들면, 특정 상황들에서 인간 개입에 의존하지 않는 차량들) 등을, 제한 없이, 포함한, 차량(200)이 인간 개입 없이 부분적으로 또는 완전히 작동될 수 있게 하는 적어도 하나의 기능, 특징, 디바이스 등을 구현한다). 완전 자율 주행 차량들 및 고도 자율 주행 차량들에 대한 상세한 설명에 대해서는, 그 전체가 참고로 포함되는, SAE International’s standard J3016: Taxonomy and Definitions for Terms Related to On-Road Motor Vehicle Automated Driving Systems를 참조할 수 있다. 일부 실시예들에서, 차량(200)은 자율 주행 플릿 관리자 및/또는 라이드 셰어링 회사와 연관된다.
자율 주행 시스템(202)은 카메라들(202a), LiDAR 센서들(202b), 레이더 센서들(202c), 및 마이크로폰들(202d)과 같은 하나 이상의 디바이스들을 포함하는 센서 스위트(sensor suite)를 포함한다. 일부 실시예들에서, 자율 주행 시스템(202)은 보다 많거나 보다 적은 디바이스들 및/또는 상이한 디바이스들(예를 들면, 초음파 센서들, 관성 센서들, GPS 수신기들(아래에서 논의됨), 차량(200)이 주행한 거리의 표시와 연관된 데이터를 생성하는 주행 거리 측정 센서들 등)을 포함할 수 있다. 일부 실시예들에서, 자율 주행 시스템(202)은 자율 주행 시스템(202)에 포함된 하나 이상의 디바이스를 사용하여 본원에서 기술되는 환경(100)과 연관된 데이터를 생성한다. 자율 주행 시스템(202)의 하나 이상의 디바이스에 의해 생성되는 데이터는 차량(200)이 위치하는 환경(예를 들면, 환경(100))을 관측하기 위해 본원에 기술된 하나 이상의 시스템에 의해 사용될 수 있다. 일부 실시예들에서, 자율 주행 시스템(202)은 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f), 및 드라이브 바이 와이어(drive-by-wire, DBW) 시스템(202h)을 포함한다.
카메라들(202a)은 버스(예를 들면, 도 3의 버스(302)와 동일하거나 유사한 버스)를 통해 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f) 및/또는 안전 제어기(202g)와 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 카메라들(202a)은 물리적 대상체들(예를 들면, 자동차들, 버스들, 연석들, 사람들 등)을 포함하는 이미지들을 캡처하기 위한 적어도 하나의 카메라(예를 들면, CCD(charge-coupled device)와 같은 광 센서를 사용하는 디지털 카메라, 열 카메라, 적외선(IR) 카메라, 이벤트 카메라 등)를 포함한다. 일부 실시예들에서, 카메라(202a)는 카메라 데이터를 출력으로서 생성한다. 일부 예들에서, 카메라(202a)는 이미지와 연관된 이미지 데이터를 포함하는 카메라 데이터를 생성한다. 이 예에서, 이미지 데이터는 이미지에 대응하는 적어도 하나의 파라미터(예를 들면, 노출, 밝기 등과 같은 이미지 특성들, 이미지 타임스탬프 등)를 명시할 수 있다. 그러한 예에서, 이미지는 한 형식(예를 들면, RAW, JPEG, PNG 등)으로 되어 있을 수 있다. 일부 실시예들에서, 카메라(202a)는 입체시(stereopsis)(스테레오 비전(stereo vision))를 위해 이미지들을 캡처하도록 차량 상에 구성된(예를 들면, 차량 상에 위치된) 복수의 독립적인 카메라들을 포함한다. 일부 예들에서, 카메라(202a)는 복수의 카메라들을 포함하고, 이 복수의 카메라들은 이미지 데이터를 생성하고 이미지 데이터를 자율 주행 차량 컴퓨터(202f) 및/또는 플릿 관리 시스템(예를 들면, 도 1의 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템)으로 전송한다. 그러한 예에서, 자율 주행 차량 컴퓨터(202f)는 적어도 2 개의 카메라로부터의 이미지 데이터에 기초하여 복수의 카메라들 중 적어도 2 개의 카메라의 시야 내의 하나 이상의 대상체까지의 깊이를 결정한다. 일부 실시예들에서, 카메라들(202a)은 카메라들(202a)로부터 일정 거리(예를 들면, 최대 100 미터, 최대 1 킬로미터 등) 내의 대상체들의 이미지들을 캡처하도록 구성된다. 그에 따라, 카메라들(202a)은 카메라들(202a)로부터 하나 이상의 거리에 있는 대상체들을 인지하도록 최적화된 센서들 및 렌즈들과 같은 특징부들을 포함한다.
일 실시예에서, 카메라(202a)는 시각적 내비게이션 정보를 제공하는 하나 이상의 교통 신호등, 거리 표지판 및/또는 다른 물리적 대상체와 연관된 하나 이상의 이미지를 캡처하도록 구성된 적어도 하나의 카메라를 포함한다. 일부 실시예들에서, 카메라(202a)는 하나 이상의 이미지와 연관된 교통 신호등 데이터를 생성한다. 일부 예들에서, 카메라(202a)는 한 형식(예를 들면, RAW, JPEG, PNG 등)을 포함하는 하나 이상의 이미지와 연관된 TLD 데이터를 생성한다. 일부 실시예들에서, TLD 데이터를 생성하는 카메라(202a)는, 카메라(202a)가 가능한 한 많은 물리적 대상체들에 관한 이미지들을 생성하기 위해 넓은 시야를 갖는 하나 이상의 카메라(예를 들면, 광각 렌즈, 어안 렌즈, 대략 120도 이상의 시야각을 갖는 렌즈 등)를 포함할 수 있다는 점에서, 카메라들을 포함하는 본원에 기술된 다른 시스템들과 상이하다.
LiDAR(Laser Detection and Ranging) 센서들(202b)은 버스(예를 들면, 도 3의 버스(302)와 동일하거나 유사한 버스)를 통해 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f), 및/또는 안전 제어기(202g)와 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. LiDAR 센서들(202b)은 광 방출기(예를 들면, 레이저 송신기)로부터 광을 송신하도록 구성된 시스템을 포함한다. LiDAR 센서들(202b)에 의해 방출되는 광은 가시 스펙트럼 밖에 있는 광(예를 들면, 적외선 광 등)을 포함한다. 일부 실시예들에서, 작동 동안, LiDAR 센서들(202b)에 의해 방출되는 광은 물리적 대상체(예를 들면, 차량)와 조우하고 LiDAR 센서들(202b)로 다시 반사된다. 일부 실시예들에서, LiDAR 센서들(202b)에 의해 방출되는 광은 광이 조우하는 물리적 대상체들을 투과하지 않는다. LiDAR 센서들(202b)은 광 방출기로부터 방출된 광이 물리적 대상체와 조우한 후에 그 광을 검출하는 적어도 하나의 광 검출기를 또한 포함한다. 일부 실시예들에서, LiDAR 센서들(202b)과 연관된 적어도 하나의 데이터 프로세싱 시스템은 LiDAR 센서들(202b)의 시야에 포함된 대상체들을 나타내는 이미지(예를 들면, 포인트 클라우드, 결합된 포인트 클라우드(combined point cloud) 등)를 생성한다. 일부 예들에서, LiDAR 센서(202b)와 연관된 적어도 하나의 데이터 프로세싱 시스템은 물리적 대상체의 경계들, 물리적 대상체의 표면들(예를 들면, 표면들의 토폴로지) 등을 나타내는 이미지를 생성한다. 그러한 예에서, 이미지는 LiDAR 센서들(202b)의 시야 내의 물리적 대상체들의 경계들을 결정하는 데 사용된다.
레이더(radar, Radio Detection and Ranging) 센서들(202c)은 버스(예를 들면, 도 3의 버스(302)와 동일하거나 유사한 버스)를 통해 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f) 및/또는 안전 제어기(202g)와 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 레이더 센서들(202c)은 전파들을 (펄스형으로 또는 연속적으로) 송신하도록 구성된 시스템을 포함한다. 레이더 센서들(202c)에 의해 송신되는 전파들은 미리 결정된 스펙트럼 내에 있는 전파들을 포함한다. 일부 실시예들에서, 작동 동안, 레이더 센서들(202c)에 의해 송신되는 전파들은 물리적 대상체와 조우하고 레이더 센서들(202c)로 다시 반사된다. 일부 실시예들에서, 레이더 센서들(202c)에 의해 전송되는 전파들이 일부 대상체들에 의해 반사되지 않는다. 일부 실시예들에서, 레이더 센서들(202c)과 연관된 적어도 하나의 데이터 프로세싱 시스템은 레이더 센서들(202c)의 시야에 포함된 대상체들을 나타내는 신호들을 생성한다. 예를 들어, 레이더 센서(202c)와 연관된 적어도 하나의 데이터 프로세싱 시스템은 물리적 대상체의 경계들, 물리적 대상체의 표면들(예를 들면, 표면들의 토폴로지) 등을 나타내는 이미지를 생성한다. 일부 예들에서, 이미지는 레이더 센서들(202c)의 시야 내의 물리적 대상체들의 경계들을 결정하는 데 사용된다.
마이크로폰들(202d)은 버스(예를 들면, 도 3의 버스(302)와 동일하거나 유사한 버스)를 통해 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f) 및/또는 안전 제어기(202g)와 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 마이크로폰들(202d)은 오디오 신호들을 캡처하고 오디오 신호들과 연관된(예를 들면, 이를 나타내는) 데이터를 생성하는 하나 이상의 마이크로폰(예를 들면, 어레이 마이크로폰, 외부 마이크로폰 등)을 포함한다. 일부 예들에서, 마이크로폰들(202d)은 트랜스듀서 디바이스들 및/또는 유사 디바이스들을 포함한다. 일부 실시예들에서, 본원에 기술된 하나 이상의 시스템은 마이크로폰들(202d)에 의해 생성되는 데이터를 수신하고 데이터와 연관된 오디오 신호들에 기초하여 차량(200)에 상대적인 대상체의 위치(예를 들면, 거리 등)를 결정할 수 있다.
통신 디바이스(202e)는 카메라들(202a), LiDAR 센서들(202b), 레이더 센서들(202c), 마이크로폰들(202d), 자율 주행 차량 컴퓨터(202f), 안전 제어기(202g), 및/또는 DBW 시스템(202h)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 예를 들어, 통신 디바이스(202e)는 도 3의 통신 인터페이스(314)와 동일하거나 유사한 디바이스를 포함할 수 있다. 일부 실시예들에서, 통신 디바이스(202e)는 차량 대 차량(vehicle-to-vehicle, V2V) 통신 디바이스(예를 들면, 차량들 간의 데이터의 무선 통신을 가능하게 하는 디바이스)를 포함한다.
자율 주행 차량 컴퓨터(202f)는 카메라들(202a), LiDAR 센서들(202b), 레이더 센서들(202c), 마이크로폰들(202d), 통신 디바이스(202e), 안전 제어기(202g), 및/또는 DBW 시스템(202h)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, 자율 주행 차량 컴퓨터(202f)는 클라이언트 디바이스, 모바일 디바이스(예를 들면, 셀룰러 전화, 태블릿 등), 서버(예를 들면, 하나 이상의 중앙 프로세싱 유닛, 그래픽 프로세싱 유닛 등을 포함하는 컴퓨팅 디바이스) 등과 같은 디바이스를 포함한다. 일부 실시예들에서, 자율 주행 차량 컴퓨터(202f)는 본원에 기술된 자율 주행 차량 컴퓨터(400)와 동일하거나 유사하다. 추가적으로 또는 대안적으로, 일부 실시예들에서, 자율 주행 차량 컴퓨터(202f)는 자율 주행 차량 시스템(예를 들면, 도 1의 원격 AV 시스템(114)과 동일하거나 유사한 자율 주행 차량 시스템), 플릿 관리 시스템(예를 들면, 도 1의 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템), V2I 디바이스(예를 들면, 도 1의 V2I 디바이스(110)와 동일하거나 유사한 V2I 디바이스), 및/또는 V2I 시스템(예를 들면, 도 1의 V2I 시스템(118)과 동일하거나 유사한 V2I 시스템)과 통신하도록 구성된다.
안전 제어기(202g)는 카메라들(202a), LiDAR 센서들(202b), 레이더 센서들(202c), 마이크로폰들(202d), 통신 디바이스(202e), 자율 주행 차량 컴퓨터(202f), 및/또는 DBW 시스템(202h)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, 안전 제어기(202g)는 차량(200)의 하나 이상의 디바이스(예를 들면, 파워트레인 제어 시스템(204), 조향 제어 시스템(206), 브레이크 시스템(208) 등)를 작동시키기 위한 제어 신호들을 생성 및/또는 송신하도록 구성된 하나 이상의 제어기(전기 제어기, 전기기계 제어기 등)를 포함한다. 일부 실시예들에서, 안전 제어기(202g)는 자율 주행 차량 컴퓨터(202f)에 의해 생성 및/또는 송신되는 제어 신호들보다 우선하는(예를 들면, 이를 무시하는) 제어 신호들을 생성하도록 구성된다.
DBW 시스템(202h)은 통신 디바이스(202e) 및/또는 자율 주행 차량 컴퓨터(202f)와 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, DBW 시스템(202h)은 차량(200)의 하나 이상의 디바이스(예를 들면, 파워트레인 제어 시스템(204), 조향 제어 시스템(206), 브레이크 시스템(208) 등)를 작동시키기 위한 제어 신호들을 생성 및/또는 송신하도록 구성된 하나 이상의 제어기(예를 들면, 전기 제어기, 전기기계 제어기 등)를 포함한다. 추가적으로 또는 대안적으로, DBW 시스템(202h)의 하나 이상의 제어기는 차량(200)의 적어도 하나의 상이한 디바이스(예를 들면, 방향 지시등, 헤드라이트, 도어록, 윈도실드 와이퍼 등)를 작동시키기 위한 제어 신호들을 생성 및/또는 송신하도록 구성된다.
파워트레인 제어 시스템(204)은 DBW 시스템(202h)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, 파워트레인 제어 시스템(204)은 적어도 하나의 제어기, 액추에이터 등을 포함한다. 일부 실시예들에서, 파워트레인 제어 시스템(204)은 DBW 시스템(202h)으로부터 제어 신호들을 수신하고, 파워트레인 제어 시스템(204)은 차량(200)이 전진하는 것을 시작하게 하고, 전진하는 것을 중지하게 하며, 후진하는 것을 시작하게 하고, 후진하는 것을 중지하게 하며, 한 방향으로 가속하게 하고, 한 방향으로 감속하게 하며, 좌회전을 수행하게 하고, 우회전을 수행하게 하는 등을 한다. 일 예에서, 파워트레인 제어 시스템(204)은 차량의 모터에 제공되는 에너지(예를 들면, 연료, 전기 등)가 증가하게 하거나, 동일하게 유지되게 하거나, 또는 감소하게 하여, 이에 의해 차량(200)의 적어도 하나의 바퀴가 회전하거나 회전하지 않게 한다.
조향 제어 시스템(206)은 차량(200)의 하나 이상의 바퀴를 회전시키도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, 조향 제어 시스템(206)은 적어도 하나의 제어기, 액추에이터 등을 포함한다. 일부 실시예들에서, 조향 제어 시스템(206)은 차량(200)이 좌측 또는 우측으로 방향 전환하게 하기 위해 차량(200)의 전방 2 개의 바퀴 및/또는 후방 2 개의 바퀴가 좌측 또는 우측으로 회전하게 한다.
브레이크 시스템(208)은 차량(200)이 속력을 감소시키게 하고/하거나 정지해 있는 채로 유지하게 하기 위해 하나 이상의 브레이크를 작동시키도록 구성된 적어도 하나의 디바이스를 포함한다. 일부 예들에서, 브레이크 시스템(208)은 차량(200)의 대응하는 로터(rotor)에서 차량(200)의 하나 이상의 바퀴들과 연관된 하나 이상의 캘리퍼(caliper)가 닫히게 하도록 구성되는 적어도 하나의 제어기 및/또는 액추에이터를 포함한다. 추가적으로 또는 대안적으로, 일부 예들에서, 브레이크 시스템(208)은 자동 긴급 제동(automatic emergency braking, AEB) 시스템, 회생 제동 시스템 등을 포함한다.
일부 실시예들에서, 차량(200)은 차량(200)의 상태 또는 조건의 속성들을 측정 또는 추론하는 적어도 하나의 플랫폼 센서(명시적으로 예시되지 않음)를 포함한다. 일부 예들에서, 차량(200)은 GPS(global positioning system) 수신기, IMU(inertial measurement unit), 휠 속력 센서, 휠 브레이크 압력 센서, 휠 토크 센서, 엔진 토크 센서, 조향각 센서 등과 같은 플랫폼 센서들을 포함한다.
이제 도 3을 참조하면, 디바이스(300)의 개략 다이어그램이 예시되어 있다. 예시된 바와 같이, 디바이스(300)는 프로세서(304), 메모리(306), 저장 컴포넌트(308), 입력 인터페이스(310), 출력 인터페이스(312), 통신 인터페이스(314), 및 버스(302)를 포함한다. 일부 실시예들에서, 디바이스(300)는 차량들(102)의 적어도 하나의 디바이스(예를 들면, 차량들(102)의 시스템의 적어도 하나의 디바이스), 및/또는 네트워크(112)의 하나 이상의 디바이스(예를 들면, 네트워크(112)의 시스템의 하나 이상의 디바이스)에 대응한다. 일부 실시예들에서, 차량들(102)의 하나 이상의 디바이스(예를 들면, 차량들(102) 시스템의 하나 이상의 디바이스), 및/또는 네트워크(112)의 하나 이상의 디바이스(예를 들면, 네트워크(112)의 시스템의 하나 이상의 디바이스)는 적어도 하나의 디바이스(300) 및/또는 디바이스(300)의 적어도 하나의 컴포넌트를 포함한다. 도 3에 도시된 바와 같이, 디바이스(300)는 버스(302), 프로세서(304), 메모리(306), 저장 컴포넌트(308), 입력 인터페이스(310), 출력 인터페이스(312), 및 통신 인터페이스(314)를 포함한다.
버스(302)는 디바이스(300)의 컴포넌트들 간의 통신을 가능하게 하는 컴포넌트를 포함한다. 일부 실시예들에서, 프로세서(304)는 하드웨어, 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현된다. 일부 예들에서, 프로세서(304)는 적어도 하나의 기능을 수행하도록 프로그래밍될 수 있는, 프로세서(예를 들면, 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 가속 프로세싱 유닛(APU) 등), 마이크로폰, 디지털 신호 프로세서(DSP), 및/또는 임의의 프로세싱 컴포넌트(예를 들면, FPGA(field-programmable gate array), ASIC(application specific integrated circuit) 등)를 포함한다. 메모리(306)는 프로세서(304)가 사용할 데이터 및/또는 명령어들을 저장하는, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 및/또는 다른 유형의 동적 및/또는 정적 저장 디바이스(예를 들면, 플래시 메모리, 자기 메모리, 광학 메모리 등)를 포함한다.
저장 컴포넌트(308)는 디바이스(300)의 작동 및 사용에 관련된 데이터 및/또는 소프트웨어를 저장한다. 일부 예들에서, 저장 컴포넌트(308)는 하드 디스크(예를 들면, 자기 디스크, 광학 디스크, 광자기 디스크, 솔리드 스테이트 디스크 등), CD(compact disc), DVD(digital versatile disc), 플로피 디스크, 카트리지, 자기 테이프, CD-ROM, RAM, PROM, EPROM, FLASH-EPROM, NV-RAM 및/또는 다른 유형의 컴퓨터 판독 가능 매체를, 대응하는 드라이브와 함께, 포함한다.
입력 인터페이스(310)는 디바이스(300)가, 예컨대, 사용자 입력(예를 들면, 터치스크린 디스플레이, 키보드, 키패드, 마우스, 버튼, 스위치, 마이크로폰, 카메라 등)을 통해, 정보를 수신할 수 있게 하는 컴포넌트를 포함한다. 추가적으로 또는 대안적으로, 일부 실시예들에서, 입력 인터페이스(310)는 정보를 감지하는 센서(예를 들면, GPS(global positioning system) 수신기, 가속도계, 자이로스코프, 액추에이터 등)를 포함한다. 출력 인터페이스(312)는 디바이스(300)로부터의 출력 정보를 제공하는 컴포넌트(예를 들면, 디스플레이, 스피커, 하나 이상의 발광 다이오드(LED) 등)를 포함한다.
일부 실시예들에서, 통신 인터페이스(314)는 디바이스(300)가 유선 연결, 무선 연결, 또는 유선 연결과 무선 연결의 조합을 통해 다른 디바이스들과 통신할 수 있게 하는 트랜시버 유사 컴포넌트(예를 들면, 트랜시버, 개별 수신기 및 송신기 등)를 포함한다. 일부 예들에서, 통신 인터페이스(314)는 디바이스(300)가 다른 디바이스로부터 정보를 수신하고/하거나 다른 디바이스에 정보를 제공할 수 있게 한다. 일부 예들에서, 통신 인터페이스(314)는 이더넷 인터페이스, 광학 인터페이스, 동축 인터페이스, 적외선 인터페이스, RF(radio frequency) 인터페이스, USB(universal serial bus) 인터페이스, Wi-Fi® 인터페이스, 셀룰러 네트워크 인터페이스 등을 포함한다.
일부 실시예들에서, 디바이스(300)는 본원에 기술된 하나 이상의 프로세스를 수행한다. 디바이스(300)는 프로세서(304)가, 메모리(305) 및/또는 저장 컴포넌트(308)와 같은, 컴퓨터 판독 가능 매체에 의해 저장된 소프트웨어 명령어들을 실행하는 것에 기초하여 이러한 프로세스들을 수행한다. 컴퓨터 판독 가능 매체(예를 들면, 비일시적 컴퓨터 판독 가능 매체)는 본원에서 비일시적 메모리 디바이스로서 정의된다. 비일시적 메모리 디바이스는 단일의 물리 저장 디바이스 내부에 위치한 메모리 공간 또는 다수의 물리 저장 디바이스들에 걸쳐 분산된 메모리 공간을 포함한다.
일부 실시예들에서, 소프트웨어 명령어들은 통신 인터페이스(314)를 통해 다른 컴퓨터 판독 가능 매체로부터 또는 다른 디바이스로부터 메모리(306) 및/또는 저장 컴포넌트(308)로 판독된다. 실행될 때, 메모리(306) 및/또는 저장 컴포넌트(308)에 저장된 소프트웨어 명령어들은 프로세서(304)로 하여금 본원에 기술된 하나 이상의 프로세스를 수행하게 한다. 추가적으로 또는 대안적으로, 고정 배선(hardwired) 회로는 본원에 기술된 하나 이상의 프로세스를 수행하기 위해 소프트웨어 명령어들 대신에 또는 소프트웨어 명령어들과 결합하여 사용된다. 따라서, 본원에 기술된 실시예들은, 달리 명시적으로 언급되지 않는 한, 하드웨어 회로와 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
메모리(306) 및/또는 저장 컴포넌트(308)는 데이터 스토리지 또는 적어도 하나의 데이터 구조(예를 들면, 데이터베이스 등)를 포함한다. 디바이스(300)는 데이터 스토리지 또는 메모리(306) 또는 저장 컴포넌트(308) 내의 적어도 하나의 데이터 구조로부터 정보를 수신하는 것, 그에 정보를 저장하는 것, 그에게로 정보를 통신하는 것, 또는 그에 저장된 정보를 검색하는 것을 할 수 있다. 일부 예들에서, 정보는 네트워크 데이터, 입력 데이터, 출력 데이터, 또는 이들의 임의의 조합을 포함한다.
일부 실시예들에서, 디바이스(300)는 메모리(306)에 그리고/또는 다른 디바이스(예를 들면, 디바이스(300)와 동일하거나 유사한 다른 디바이스)의 메모리에 저장된 소프트웨어 명령어들을 실행하도록 구성된다. 본원에서 사용되는 바와 같이, "모듈"이라는 용어는, 프로세서(304)에 의해 그리고/또는 다른 디바이스(예를 들면, 디바이스(300)와 동일하거나 유사한 다른 디바이스)의 프로세서에 의해 실행될 때, 디바이스(300)(예를 들면, 디바이스(300)의 적어도 하나의 컴포넌트)로 하여금 본원에 기술된 하나 이상의 프로세스를 수행하게 하는 메모리(306)에 그리고/또는 다른 디바이스의 메모리에 저장된 적어도 하나의 명령어를 지칭한다. 일부 실시예들에서, 모듈은 소프트웨어, 펌웨어, 하드웨어 등으로 구현된다.
도 3에 예시된 컴포넌트들의 수 및 배열은 예로서 제공된다. 일부 실시예들에서, 디바이스(300)는 도 3에 예시된 것보다, 추가적인 컴포넌트들, 더 적은 컴포넌트들, 상이한 컴포넌트들, 또는 상이하게 배열된 컴포넌트들을 포함할 수 있다. 추가적으로 또는 대안적으로, 디바이스(300)의 컴포넌트 세트(예를 들면, 하나 이상의 컴포넌트)는 디바이스(300)의 다른 컴포넌트 또는 다른 컴포넌트 세트에 의해 수행되는 것으로 기술된 하나 이상의 기능을 수행할 수 있다.
이제 도 4a를 참조하면, 자율 주행 차량 컴퓨터(400)(때때로 "AV 스택"이라고 지칭됨)의 예시적인 블록 다이어그램이 예시되어 있다. 예시된 바와 같이, 자율 주행 차량 컴퓨터(400)는 인지 시스템(402)(때때로 인지 모듈이라고 지칭됨), 계획 시스템(404)(때때로 계획 모듈이라고 지칭됨), 로컬화 시스템(406)(때때로 로컬화 모듈이라고 지칭됨), 제어 시스템(408)(때때로 제어 모듈이라고 지칭됨) 및 데이터베이스(410)를 포함한다. 일부 실시예들에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 제어 시스템(408) 및 데이터베이스(410)는 차량의 자율 주행 내비게이션 시스템(예를 들면, 차량(200)의 자율 주행 차량 컴퓨터(202f))에 포함되고/되거나 구현된다. 추가적으로 또는 대안적으로, 일부 실시예들에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 제어 시스템(408), 및 데이터베이스(410)는 하나 이상의 독립형 시스템(예를 들면, 자율 주행 차량 컴퓨터(400) 등과 동일하거나 유사한 하나 이상의 시스템)에 포함된다. 일부 예들에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 제어 시스템(408), 및 데이터베이스(410)는 본원에 기술된 바와 같이 차량 및/또는 적어도 하나의 원격 시스템에 위치하는 하나 이상의 독립형 시스템에 포함된다. 일부 실시예들에서, 자율 주행 차량 컴퓨터(400)에 포함된 시스템들 중 일부 및/또는 전부는 소프트웨어(예를 들면, 메모리에 저장된 소프트웨어 명령어들), 컴퓨터 하드웨어(예를 들면, 마이크로프로세서, 마이크로컨트롤러, ASIC(application-specific integrated circuit), FPGA(Field Programmable Gate Array) 등), 또는 컴퓨터 소프트웨어와 컴퓨터 하드웨어의 조합으로 구현된다. 일부 실시예들에서, 자율 주행 차량 컴퓨터(400)가 원격 시스템(예를 들면, 원격 AV 시스템(114)과 동일하거나 유사한 자율 주행 차량 시스템, 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템, V2I 시스템(118)과 동일하거나 유사한 V2I 시스템 등)과 통신하도록 구성된다는 것이 또한 이해될 것이다.
일부 실시예들에서, 인지 시스템(402)은 환경에서의 적어도 하나의 물리적 대상체와 연관된 데이터(예를 들면, 적어도 하나의 물리적 대상체를 검출하기 위해 인지 시스템(402)에 의해 사용되는 데이터)를 수신하고 적어도 하나의 물리적 대상체를 분류한다. 일부 예들에서, 인지 시스템(402)은 적어도 하나의 카메라(예를 들면, 카메라들(202a))에 의해 캡처되는 이미지 데이터를 수신하고, 이미지는 적어도 하나의 카메라의 시야 내의 하나 이상의 물리적 대상체와 연관되어 있다(예를 들면, 이를 표현한다). 그러한 예에서, 인지 시스템(402)은 물리적 대상체들(예를 들면, 자전거들, 차량들, 교통 표지판들, 보행자들 등)의 하나 이상의 그룹화에 기초하여 적어도 하나의 물리적 대상체를 분류한다. 일부 실시예들에서, 인지 시스템(402)이 물리적 대상체들을 분류하는 것에 기초하여 인지 시스템(402)은 물리적 대상체들의 분류와 연관된 데이터를 계획 시스템(404)으로 송신한다.
일부 실시예들에서, 계획 시스템(404)은 목적지와 연관된 데이터를 수신하고 차량(예를 들면, 차량들(102))이 목적지를 향해 주행할 수 있는 적어도 하나의 루트(예를 들면, 루트들(106))와 연관된 데이터를 생성한다. 일부 실시예들에서, 계획 시스템(404)은 인지 시스템(402)으로부터의 데이터(예를 들면, 위에서 기술된, 물리적 대상체들의 분류와 연관된 데이터)를 주기적으로 또는 연속적으로 수신하고, 계획 시스템(404)은 인지 시스템(402)에 의해 생성되는 데이터에 기초하여 적어도 하나의 궤적을 업데이트하거나 적어도 하나의 상이한 궤적을 생성한다. 일부 실시예들에서, 계획 시스템(404)은 로컬화 시스템(406)으로부터 차량(예를 들면, 차량들(102))의 업데이트된 위치와 연관된 데이터를 수신하고, 계획 시스템(404)은 로컬화 시스템(406)에 의해 생성되는 데이터에 기초하여 적어도 하나의 궤적을 업데이트하거나 적어도 하나의 상이한 궤적을 생성한다.
일부 실시예들에서, 로컬화 시스템(406)은 한 영역에서의 차량(예를 들면, 차량들(102))의 한 위치와 연관된(예를 들면, 이를 나타내는) 데이터를 수신한다. 일부 예들에서, 로컬화 시스템(406)은 적어도 하나의 LiDAR 센서(예를 들면, LiDAR 센서들(202b))에 의해 생성되는 적어도 하나의 포인트 클라우드와 연관된 LiDAR 데이터를 수신한다. 특정 예들에서, 로컬화 시스템(406)은 다수의 LiDAR 센서들로부터의 적어도 하나의 포인트 클라우드와 연관된 데이터를 수신하고 로컬화 시스템(406)은 포인트 클라우드들 각각에 기초하여 결합된 포인트 클라우드를 생성한다. 이러한 예들에서, 로컬화 시스템(406)은 적어도 하나의 포인트 클라우드 또는 결합된 포인트 클라우드를 데이터베이스(410)에 저장되어 있는 해당 영역의 2차원(2D) 및/또는 3차원(3D) 맵과 비교한다. 로컬화 시스템(406)이 적어도 하나의 포인트 클라우드 또는 결합된 포인트 클라우드를 맵과 비교하는 것에 기초하여 로컬화 시스템(406)은 이어서 해당 영역에서의 차량의 위치를 결정한다. 일부 실시예들에서, 맵은 차량의 운행 이전에 생성되는 해당 영역의 결합된 포인트 클라우드를 포함한다. 일부 실시예들에서, 맵은, 제한 없이, 도로 기하학적 특성들의 고정밀 맵, 도로 네트워크 연결 특성들을 기술하는 맵, 도로 물리적 특성들(예컨대, 교통 속력, 교통량, 차량 교통 차선과 자전거 타는 사람 교통 차선의 수, 차선 폭, 차선 교통 방향, 또는 차선 마커 유형 및 위치, 또는 이들의 조합)을 기술하는 맵, 및 도로 특징부, 예컨대, 횡단보도, 교통 표지판 또는 다양한 유형의 다른 주행 신호들의 공간적 위치들을 기술하는 맵을 포함한다. 일부 실시예들에서, 맵은 인지 시스템에 의해 수신되는 데이터에 기초하여 실시간으로 생성된다.
다른 예에서, 로컬화 시스템(406)은 GPS(global positioning system) 수신기에 의해 생성되는 GNSS(Global Navigation Satellite System) 데이터를 수신한다. 일부 예들에서, 로컬화 시스템(406)은 해당 영역 내에서의 차량의 위치와 연관된 GNSS 데이터를 수신하고 로컬화 시스템(406)은 해당 영역 내에서의 차량의 위도 및 경도를 결정한다. 그러한 예에서, 로컬화 시스템(406)은 차량의 위도 및 경도에 기초하여 해당 영역에서의 차량의 위치를 결정한다. 일부 실시예들에서, 로컬화 시스템(406)은 차량의 위치와 연관된 데이터를 생성한다. 일부 예들에서, 로컬화 시스템(406)이 차량의 위치를 결정하는 것에 기초하여 로컬화 시스템(406)은 차량의 위치와 연관된 데이터를 생성한다. 그러한 예에서, 차량의 위치와 연관된 데이터는 차량의 위치에 대응하는 하나 이상의 시맨틱 특성과 연관된 데이터를 포함한다.
일부 실시예들에서, 제어 시스템(408)은 계획 시스템(404)으로부터 적어도 하나의 궤적과 연관된 데이터를 수신하고 제어 시스템(408)은 차량의 작동을 제어한다. 일부 예들에서, 제어 시스템(408)은 계획 시스템(404)으로부터 적어도 하나의 궤적과 연관된 데이터를 수신하고, 제어 시스템(408)은 파워트레인 제어 시스템(예를 들면, DBW 시스템(202h), 파워트레인 제어 시스템(204) 등), 조향 제어 시스템(예를 들면, 조향 제어 시스템(206)) 및/또는 브레이크 시스템(예를 들면, 브레이크 시스템(208))이 작동하게 하는 제어 신호들을 생성하여 송신하는 것에 의해 차량의 작동을 제어한다. 궤적이 좌회전을 포함하는 예에서, 제어 시스템(408)은 조향 제어 시스템(206)으로 하여금 차량(200)의 조향각을 조정하게 함으로써 차량(200)이 좌회전하게 하는 제어 신호를 송신한다. 추가적으로 또는 대안적으로, 제어 시스템(408)은 차량(200)의 다른 디바이스들(예를 들면, 헤드라이트, 방향 지시등, 도어록, 윈도실드 와이퍼 등)로 하여금 상태들을 변경하게 하는 제어 신호들을 생성하여 송신한다.
일부 실시예들에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 및/또는 제어 시스템(408)은 적어도 하나의 머신 러닝 모델(예를 들면, 적어도 하나의 다층 퍼셉트론(MLP), 적어도 하나의 콘볼루션 신경 네트워크(CNN), 적어도 하나의 순환 신경 네트워크(RNN), 적어도 하나의 오토인코더, 적어도 하나의 트랜스포머(transformer) 등)을 구현한다. 일부 예들에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 및/또는 제어 시스템(408)은 단독으로 또는 위에서 언급된 시스템들 중 하나 이상과 조합하여 적어도 하나의 머신 러닝 모델을 구현한다. 일부 예에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 및/또는 제어 시스템(408)은 파이프라인(예를 들면, 환경에 위치한 하나 이상의 대상체를 식별하기 위한 파이프라인 등)의 일부로서 적어도 하나의 머신 러닝 모델을 구현한다. 머신 러닝 모델의 구현의 예는 도 4b 내지 도 4d와 관련하여 아래에 포함된다.
데이터베이스(410)는 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406) 및/또는 제어 시스템(408)으로 송신되며, 이들로부터 수신되고/되거나 이들에 의해 업데이트되는 데이터를 저장한다. 일부 예들에서, 데이터베이스(410)는 작동에 관련된 데이터 및/또는 소프트웨어를 저장하고 자율 주행 차량 컴퓨터(400)의 적어도 하나의 시스템을 사용하는 저장 컴포넌트(예를 들면, 도 3의 저장 컴포넌트(308)와 동일하거나 유사한 저장 컴포넌트)를 포함한다. 일부 실시예들에서, 데이터베이스(410)는 적어도 하나의 영역의 2D 및/또는 3D 맵과 연관된 데이터를 저장한다. 일부 예들에서, 데이터베이스(410)는 도시의 일 부분, 다수의 도시들의 다수의 부분들, 다수의 도시들, 카운티, 주, 국가(State)(예를 들면, 나라(country)) 등의 2D 및/또는 3D 맵과 연관된 데이터를 저장한다. 그러한 예에서, 차량(예를 들면, 차량들(102) 및/또는 차량(200)과 동일하거나 유사한 차량)은 하나 이상의 운전 가능한 영역(예를 들면, 단일 차선 도로, 다중 차선 도로, 간선도로, 시골 길(back road), 오프로드 트레일 등)을 따라 운전할 수 있고, 적어도 하나의 LiDAR 센서(예를 들면, LiDAR 센서들(202b)과 동일하거나 유사한 LiDAR 센서)로 하여금 적어도 하나의 LiDAR 센서의 시야에 포함된 대상체들을 나타내는 이미지와 연관된 데이터를 생성하게 할 수 있다.
일부 실시예들에서, 데이터베이스(410)는 복수의 디바이스들에 걸쳐 구현된다. 일부 예들에서, 데이터베이스(410)는 차량(예를 들면, 차량들(102) 및/또는 차량(200)과 동일하거나 유사한 차량), 자율 주행 차량 시스템(예를 들면, 원격 AV 시스템(114)과 동일하거나 유사한 자율 주행 차량 시스템), 플릿 관리 시스템(예를 들면, 도 1의 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템), V2I 시스템(예를 들면, 도 1의 V2I 시스템(118)과 동일하거나 유사한 V2I 시스템) 등에 포함될 수 있다.
이제 도 4b를 참조하면, 머신 러닝 모델의 구현의 다이어그램이 예시되어 있다. 보다 구체적으로, 콘볼루션 신경 네트워크(convolutional neural network, CNN)(420)의 구현의 다이어그램이 예시되어 있다. 예시를 위해, CNN(420)에 대한 이하의 설명은 인지 시스템(402)에 의한 CNN(420)의 구현과 관련하여 이루어질 것이다. 그렇지만, 일부 예들에서 CNN(420)(예를 들면, CNN(420)의 하나 이상의 컴포넌트)이, 계획 시스템(404), 로컬화 시스템(406), 및/또는 제어 시스템(408)과 같은, 인지 시스템(402)과 상이하거나 이 이외의 다른 시스템들에 의해 구현된다는 것이 이해될 것이다. CNN(420)이 본원에 기술된 바와 같은 특정 특징들을 포함하지만, 이러한 특징들은 예시 목적으로 제공되며 본 개시를 제한하는 것으로 의도되지 않는다.
CNN(420)은 제1 콘볼루션 계층(422), 제2 콘볼루션 계층(424), 및 콘볼루션 계층(426)를 포함하는 복수의 콘볼루션 계층들을 포함한다. 일부 실시예들에서, CNN(420)은 서브샘플링 계층(428)(때때로 풀링 계층(pooling layer)이라고 지칭됨)을 포함한다. 일부 실시예들에서, 서브샘플링 계층(428) 및/또는 다른 서브샘플링 계층들은 업스트림 시스템의 차원보다 작은 차원(즉, 노드들의 양)을 갖는다. 서브샘플링 계층(428)이 업스트림 계층의 차원보다 작은 차원을 갖는 것에 의해, CNN(420)은 초기 입력 및/또는 업스트림 계층의 출력과 연관된 데이터의 양을 통합하여 이에 의해 CNN(420)이 다운스트림 콘볼루션 연산들을 수행하는 데 필요한 계산들의 양을 감소시킨다. 추가적으로 또는 대안적으로, (도 4c 및 도 4d와 관련하여 아래에서 기술되는 바와 같이) 서브샘플링 계층(428)이 적어도 하나의 서브샘플링 함수와 연관되는(예를 들면, 이를 수행하도록 구성되는) 것에 의해, CNN(420)은 초기 입력과 연관된 데이터의 양을 통합(consolidate)한다.
인지 시스템(402)이 제1 콘볼루션 계층(422), 제2 콘볼루션 계층(424), 및 콘볼루션 계층(426) 각각과 연관된 각자의 입력들 및/또는 출력들을 제공하여 각자의 출력들을 생성하는 것에 기초하여 인지 시스템(402)은 콘볼루션 연산들을 수행한다. 일부 예들에서, 인지 시스템(402)이 제1 콘볼루션 계층(422), 제2 콘볼루션 계층(424), 및 콘볼루션 계층(426)에 대한 입력으로서 데이터를 제공하는 것에 기초하여 인지 시스템(402)은 CNN(420)을 구현한다. 그러한 예에서, 인지 시스템(402)이 하나 이상의 상이한 시스템(예를 들면, 차량(102)과 동일하거나 유사한 차량의 하나 이상의 시스템), 원격 AV 시스템(114)과 동일하거나 유사한 원격 AV 시스템, 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템, V2I 시스템(118)과 동일하거나 유사한 V2I 시스템 등으로부터 데이터를 수신하는 것에 기초하여, 인지 시스템(402)은 제1 콘볼루션 계층(422), 제2 콘볼루션 계층(424), 및 콘볼루션 계층(426)에 대한 입력으로서 데이터를 제공한다. 콘볼루션 연산들에 대한 상세한 설명은 도 4c와 관련하여 아래에 포함된다.
일부 실시예들에서, 인지 시스템(402)은 입력(초기 입력이라고 지칭됨)과 연관된 데이터를 제1 콘볼루션 계층(422)에 제공하고, 인지 시스템(402)은 제1 콘볼루션 계층(422)을 사용하여 출력과 연관된 데이터를 생성한다. 일부 실시예들에서, 인지 시스템(402)은 상이한 콘볼루션 계층에 대한 입력으로서 콘볼루션 계층에 의해 생성되는 출력을 제공한다. 예를 들어, 인지 시스템(402)은 서브샘플링 계층(428), 제2 콘볼루션 계층(424), 및/또는 콘볼루션 계층(426)에 대한 입력으로서 제1 콘볼루션 계층(422)의 출력을 제공한다. 그러한 예에서, 제1 콘볼루션 계층(422)은 업스트림 계층이라고 지칭되고, 서브샘플링 계층(428), 제2 콘볼루션 계층(424) 및/또는 콘볼루션 계층(426)은 다운스트림 계층들이라고 지칭된다. 유사하게, 일부 실시예들에서, 인지 시스템(402)은 서브샘플링 계층(428)의 출력을 제2 콘볼루션 계층(424) 및/또는 콘볼루션 계층(426)에 제공하고, 이 예에서, 서브샘플링 계층(428)은 업스트림 계층이라고 지칭될 것이며, 제2 콘볼루션 계층(424) 및/또는 콘볼루션 계층(426)은 다운스트림 계층들이라고 지칭될 것이다.
일부 실시예들에서, 인지 시스템(402)이 CNN(420)에 입력을 제공하기 전에 인지 시스템(402)은 CNN(420)에 제공되는 입력과 연관된 데이터를 프로세싱한다. 예를 들어, 인지 시스템(402)이 센서 데이터(예를 들면, 이미지 데이터, LiDAR 데이터, 레이더 데이터 등)를 정규화하는 것에 기초하여, 인지 시스템(402)은 CNN(420)에 제공되는 입력과 연관된 데이터를 프로세싱한다.
일부 실시예들에서, 인지 시스템(402)이 각각의 콘볼루션 계층과 연관된 콘볼루션 연산들을 수행하는 것에 기초하여, CNN(420)은 출력을 생성한다. 일부 예들에서, 인지 시스템(402)이 각각의 콘볼루션 계층과 연관된 콘볼루션 연산들을 수행하는 것 및 초기 데이터에 기초하여, CNN(420)은 출력을 생성한다. 일부 실시예들에서, 인지 시스템(402)은 출력을 생성하고 출력을 완전 연결 계층(430)으로서 제공한다. 일부 예들에서, 인지 시스템(402)은 콘볼루션 계층(426)의 출력을 완전 연결 계층(430)으로서 제공하고, 여기서 완전 연결 계층(430)은 F1, F2... FN이라고 지칭되는 복수의 특징 값들과 연관된 데이터를 포함한다. 이 예에서, 콘볼루션 계층(426)의 출력은 예측을 나타내는 복수의 출력 특징 값들과 연관된 데이터를 포함한다.
일부 실시예들에서, 인지 시스템(402)이 복수의 예측들 중에서 정확한 예측일 가능성이 가장 높은 것과 연관된 특징 값을 식별하는 것에 기초하여, 인지 시스템(402)은 복수의 예측들 중에서 예측을 식별한다. 예를 들어, 완전 연결 계층(430)이 특징 값들 F1, F2, ... FN을 포함하고, F1이 가장 큰 특징 값인 경우에, 인지 시스템(402)은 F1과 연관된 예측을 복수의 예측들 중에서 정확한 예측인 것으로 식별한다. 일부 실시예들에서, 인지 시스템(402)은 예측을 생성하도록 CNN(420)을 트레이닝시킨다. 일부 예들에서, 인지 시스템(402)이 예측과 연관된 트레이닝 데이터를 CNN(420)에 제공하는 것에 기초하여, 인지 시스템(402)은 예측을 생성하도록 CNN(420)을 트레이닝시킨다.
이제 도 4c 및 도 4d를 참조하면, 인지 시스템(402)에 의한 CNN(440)의 예시적인 작동의 다이어그램이 예시되어 있다. 일부 실시예들에서, CNN(440)(예를 들면, CNN(440)의 하나 이상의 컴포넌트)은 CNN(420)(예를 들면, CNN(420)의 하나 이상의 컴포넌트)(도 4b 참조)과 동일하거나 유사하다.
단계(450)에서, 인지 시스템(402)은 CNN(440)에 대한 입력으로서 이미지와 연관된 데이터를 제공한다(단계(450)). 예를 들어, 예시된 바와 같이, 인지 시스템(402)은 이미지와 연관된 데이터를 CNN(440)에 제공하고, 여기서 이미지는 2차원(2D) 어레이에 저장되는 값들로서 표현되는 그레이스케일 이미지이다. 일부 실시예들에서, 이미지와 연관된 데이터는 컬러 이미지와 연관된 데이터를 포함할 수 있고, 컬러 이미지는 3차원(3D) 어레이에 저장되는 값들로서 표현된다. 추가적으로 또는 대안적으로, 이미지와 연관된 데이터는 적외선 이미지, 레이더 이미지 등과 연관된 데이터를 포함할 수 있다.
단계(455)에서, CNN(440)은 제1 콘볼루션 함수를 수행한다. 예를 들어, CNN(440)이 이미지를 나타내는 값들을 제1 콘볼루션 계층(442)에 포함된 하나 이상의 뉴런(명시적으로 예시되지 않음)에 대한 입력으로서 제공하는 것에 기초하여, CNN(440)은 제1 콘볼루션 함수를 수행한다. 이 예에서, 이미지를 나타내는 값들은 이미지의 한 영역(때때로 수용 영역(receptive field)이라고 지칭됨)을 나타내는 값들에 대응할 수 있다. 일부 실시예들에서, 각각의 뉴런은 필터(명시적으로 예시되지 않음)와 연관된다. 필터(때때로 커널이라고 지칭됨)는 크기가 뉴런에 대한 입력으로서 제공되는 값들에 대응하는 값들의 어레이로서 표현될 수 있다. 일 예에서, 필터는 에지들(예를 들면, 수평 라인들, 수직 라인들, 직선 라인들 등)을 식별하도록 구성될 수 있다. 연속적인 콘볼루션 계층들에서, 뉴런들과 연관된 필터들은 연속적으로 보다 복잡한 패턴들(예를 들면, 호, 대상체 등)을 식별하도록 구성될 수 있다.
일부 실시예들에서, CNN(440)이 제1 콘볼루션 계층(442)에 포함된 하나 이상의 뉴런 각각에 대한 입력으로서 제공되는 값들을 하나 이상의 뉴런 각각에 대응하는 필터의 값들과 곱하는 것에 기초하여, CNN(440)은 제1 콘볼루션 함수를 수행한다. 예를 들어, CNN(440)은 제1 콘볼루션 계층(442)에 포함된 하나 이상의 뉴런 각각에 대한 입력으로서 제공되는 값들을 하나 이상의 뉴런 각각에 대응하는 필터의 값들과 곱하여 단일 값 또는 값들의 어레이를 출력으로서 생성할 수 있다. 일부 실시예들에서, 제1 콘볼루션 계층(442)의 뉴런들의 집합적 출력은 콘볼루션된 출력(convolved output)이라고 지칭된다. 일부 실시예들에서, 각각의 뉴런이 동일한 필터를 갖는 경우에, 콘볼루션된 출력은 특징 맵(feature map)이라고 지칭된다.
일부 실시예들에서, CNN(440)은 제1 콘볼루션 계층(442)의 각각의 뉴런의 출력들을 다운스트림 계층의 뉴런들에 제공한다. 명료함을 위해, 업스트림 계층은 데이터를 상이한 계층(다운스트림 계층이라고 지칭됨)으로 송신하는 계층일 수 있다. 예를 들어, CNN(440)은 제1 콘볼루션 계층(442)의 각각의 뉴런의 출력들을 서브샘플링 계층의 대응하는 뉴런들에 제공할 수 있다. 일 예에서, CNN(440)은 제1 콘볼루션 계층(442)의 각각의 뉴런의 출력들을 제1 서브샘플링 계층(444)의 대응하는 뉴런들에 제공한다. 일부 실시예들에서, CNN(440)은 다운스트림 계층의 각각의 뉴런에 제공되는 모든 값들의 집계들에 바이어스 값을 가산한다. 예를 들어, CNN(440)은 제1 서브샘플링 계층(444)의 각각의 뉴런에 제공되는 모든 값들의 집계들에 바이어스 값을 가산한다. 그러한 예에서, 각각의 뉴런에 제공되는 모든 값들의 집계들 및 제1 서브샘플링 계층(444)의 각각의 뉴런과 연관된 활성화 함수에 기초하여, CNN(440)은 제1 서브샘플링 계층(444)의 각각의 뉴런에 제공할 최종 값을 결정한다.
단계(460)에서, CNN(440)은 제1 서브샘플링 함수를 수행한다. 예를 들어, CNN(440)이 제1 콘볼루션 계층(442)에 의해 출력되는 값들을 제1 서브샘플링 계층(444)의 대응하는 뉴런들에 제공하는 것에 기초하여, CNN(440)은 제1 서브샘플링 함수를 수행할 수 있다. 일부 실시예들에서, CNN(440)은 집계 함수에 기초하여 제1 서브샘플링 함수를 수행한다. 일 예에서, CNN(440)이 주어진 뉴런에 제공되는 값들 중 최대 입력을 결정하는 것(맥스 풀링 함수(max pooling function)라고 지칭됨)에 기초하여, CNN(440)은 제1 서브샘플링 함수를 수행한다. 다른 예에서, CNN(440)이 주어진 뉴런에 제공되는 값들 중 평균 입력을 결정하는 것(평균 풀링 함수(average pooling function)라고 지칭됨)에 기초하여, CNN(440)은 제1 서브샘플링 함수를 수행한다. 일부 실시예들에서, CNN(440)이 제1 서브샘플링 계층(444)의 각각의 뉴런에 값들을 제공하는 것에 기초하여, CNN(440)은 출력을 생성하며, 이 출력은 때때로 서브샘플링된 콘볼루션된 출력(subsampled convolved output)이라고 지칭된다.
단계(465)에서, CNN(440)은 제2 콘볼루션 함수를 수행한다. 일부 실시예들에서, CNN(440)은 위에서 기술된, CNN(440)이 제1 콘볼루션 함수를 수행한 방식과 유사한 방식으로 제2 콘볼루션 함수를 수행한다. 일부 실시예들에서, CNN(440)이 제1 서브샘플링 계층(444)에 의해 출력되는 값들을 제2 콘볼루션 계층(446)에 포함된 하나 이상의 뉴런(명시적으로 예시되지 않음)에 대한 입력으로서 제공하는 것에 기초하여, CNN(440)은 제2 콘볼루션 함수를 수행한다. 일부 실시예들에서, 위에서 기술된 바와 같이, 제2 콘볼루션 계층(446)의 각각의 뉴런은 필터와 연관된다. 위에서 기술된 바와 같이, 제2 콘볼루션 계층(446)과 연관된 필터(들)는 제1 콘볼루션 계층(442)과 연관된 필터보다 복잡한 패턴들을 식별하도록 구성될 수 있다.
일부 실시예들에서, CNN(440)이 제2 콘볼루션 계층(446)에 포함된 하나 이상의 뉴런 각각에 대한 입력으로서 제공되는 값들을 하나 이상의 뉴런 각각에 대응하는 필터의 값들과 곱하는 것에 기초하여, CNN(440)은 제2 콘볼루션 함수를 수행한다. 예를 들어, CNN(440)은 제2 콘볼루션 계층(446)에 포함된 하나 이상의 뉴런 각각에 대한 입력으로서 제공되는 값들을 하나 이상의 뉴런 각각에 대응하는 필터의 값들과 곱하여 단일 값 또는 값들의 어레이를 출력으로서 생성할 수 있다.
일부 실시예들에서, CNN(440)은 제2 콘볼루션 계층(446)의 각각의 뉴런의 출력들을 다운스트림 계층의 뉴런들에 제공한다. 예를 들어, CNN(440)은 제1 콘볼루션 계층(442)의 각각의 뉴런의 출력들을 서브샘플링 계층의 대응하는 뉴런들에 제공할 수 있다. 일 예에서, CNN(440)은 제1 콘볼루션 계층(442)의 각각의 뉴런의 출력들을 제2 서브샘플링 계층(448)의 대응하는 뉴런들에 제공한다. 일부 실시예들에서, CNN(440)은 다운스트림 계층의 각각의 뉴런에 제공되는 모든 값들의 집계들에 바이어스 값을 가산한다. 예를 들어, CNN(440)은 제2 서브샘플링 계층(448)의 각각의 뉴런에 제공되는 모든 값들의 집계들에 바이어스 값을 가산한다. 그러한 예에서, 각각의 뉴런에 제공되는 모든 값들의 집계들 및 제2 서브샘플링 계층(448)의 각각의 뉴런과 연관된 활성화 함수에 기초하여, CNN(440)은 제2 서브샘플링 계층(448)의 각각의 뉴런에 제공할 최종 값을 결정한다.
단계(470)에서, CNN(440)은 제2 서브샘플링 함수를 수행한다. 예를 들어, CNN(440)이 제2 콘볼루션 계층(446)에 의해 출력되는 값들을 제2 서브샘플링 계층(448)의 대응하는 뉴런들에 제공하는 것에 기초하여, CNN(440)은 제2 서브샘플링 함수를 수행할 수 있다. 일부 실시예들에서, CNN(440)이 집계 함수를 사용하는 것에 기초하여, CNN(440)은 제2 서브샘플링 함수를 수행한다. 일 예에서, 위에서 기술된 바와 같이, CNN(440)이 주어진 뉴런에 제공되는 값들 중 최대 입력 또는 평균 입력을 결정하는 것에 기초하여, CNN(440)은 제1 서브샘플링 함수를 수행한다. 일부 실시예들에서, CNN(440)이 제2 서브샘플링 계층(448)의 각각의 뉴런에 값들을 제공하는 것에 기초하여, CNN(440)은 출력을 생성한다.
단계(475)에서, CNN(440)은 제2 서브샘플링 계층(448)의 각각의 뉴런의 출력을 완전 연결 계층들(449)에 제공한다. 예를 들어, CNN(440)은 제2 서브샘플링 계층(448)의 각각의 뉴런의 출력을 완전 연결 계층들(449)에 제공하여 완전 연결 계층들(449)이 출력을 생성하게 한다. 일부 실시예들에서, 완전 연결 계층들(449)은 예측(때때로 분류라고 지칭됨)과 연관된 출력을 생성하도록 구성된다. 예측은 CNN(440)에 대한 입력으로서 제공되는 이미지에 포함된 대상체가 대상체, 대상체 세트 등을 포함한다는 표시를 포함할 수 있다. 일부 실시예들에서, 인지 시스템(402)은, 본원에 기술된 바와 같이, 하나 이상의 동작들을 수행하고/하거나 예측과 연관된 데이터를 상이한 시스템에 제공한다.
도 5는 에이전트 궤적 예측의 예시적인 프로세스(500)를 예시한 블록 다이어그램이다. 일부 실시예에서, 프로세스(500)는 도 2를 참조하여 기재된 자율 주행 시스템(202)과 동일하거나 유사한 자율 주행 시스템을 사용하여 구현된다(예컨대, 완전히, 부분적으로 등). 일부 실시예에서, 프로세스(500)의 단계들 중 하나 이상은 또다른 디바이스 또는 시스템, 또는 자율 주행 시스템과는 별개이거나 자율 주행 시스템을 포함하는 또다른 그룹의 디바이스들 및/또는 시스템들에 의해 수행된다(예컨대, 완전히, 부분적으로 등). 예를 들어, 프로세스(500)의 하나 이상의 단계는 원격 AV 시스템(114), 차량(102)(예컨대, 차량(102 또는 200)의 자율 주행 시스템(202)), 도 3의 디바이스(300) 및/또는 AV 컴퓨터(400)(예컨대, 도 4a의 AV 컴퓨터(400)의 하나 이상의 시스템)에 의해 수행될 수 있다(예컨대, 완전히, 부분적으로 등). 일부 실시예에서, 프로세스(500)의 단계들은 위에 언급된 시스템 중 임의의 시스템 사이에 서로 협력하여 수행될 수 있다.
일부 실시예에서, 고화질(HD; high definition) 맵 및 에이전트 트랙(예컨대, 이전 에이전트 궤적)이 장면의 그래프 표현을 사용하여 인코딩된다. 장면의 그래프 구조는 궤적의 측방 또는 루트 변동성을 명시적으로 모델링하는 데 활용된다. 그러나 전체 장면 컨텍스트를 단일 벡터로 집계하고 다수의 궤적에 대한 일대다(one-to-many) 매핑을 학습하는 대신, 궤적의 예측은 개별 정책에 의해 방향성 그래프에서 순회된 경로에 기초하여 선택적으로 집계된 컨텍스트를 조건으로 한다. 예를 들어, 샘플링된 경로(502)를 따른 컨텍스트가 집계되고, 샘플링된 경로(502)의 컨텍스트에 기초하여 궤적(504)이 예측된다. 일부 실시예에서, 정책은 선택적으로 집계된 컨텍스트에서 전문가의 액션(실측 자료(ground truth))을 모방하는 상태-액션 매핑이다.
일부 실시예에서, 장면 컨텍스트의 일부(예컨대, 샘플링된 경로(502)를 따르는 컨텍스트)는, 학습된 행동 복제(behavior cloning) 정책(정책은 행동 복제에 의해 학습됨)으로부터 경로 순회를 샘플링함으로써(예컨대, 샘플링된 경로(502)), 각각의 예측에 대하여 선택적으로 집계된다.
각각의 예측에 사용되는 그래프의 서브세트(샘플링된 경로)를 직접 선택함으로써, 궤적 디코더에 대한 표현 요구가 감소될 수 있다. 또한, 확률적 정책은 다양한 샘플링된 경로 세트를 생성하고, 멀티모달 궤적 분포의 측방 변동성을 캡처한다.
일부 실시예에서, 예측은 추가적으로 궤적의 종방향 변동성을 감안하기 위해 샘플링된 잠재 변수를 조건으로 한다. 이는 동일한 경로 순회에 대해서도 개별 궤적의 예측을 가능하게 한다.
도 6은 예시적인 에이전트 궤적 예측 시스템(600)을 예시하는 블록 다이어그램이다. 일부 실시예에서, 에이전트 궤적 예측 시스템(600)은 도 2의 자율 주행 시스템(202), 도 3의 디바이스(300), 또는 도 4a의 자율 주행 차량 컴퓨터(400)에 포함된다. 예시적인 에이전트 궤적 예측 시스템(600)은 그래프 인코더(602), 정책 헤더(604) 및 궤적 디코더(606)를 포함한다. 그래프 인코더(602)는 에이전트 컨텍스트 및 맵 컨텍스트(에이전트 피처 및 맵 피처)를 방향성 그래프의 노드 인코딩으로서 인코딩한다. 예에서, 에이전트 컨텍스트는 에이전트 행동 및 물리적 특징과 같은 각각의 에이전트와 연관된 각자의 속성을 특성화한다. 일부 실시예에서, 에이전트 컨텍스트는 또한, 장면에서 다른 에이전트와의 각자의 에이전트의 관계(예컨대, 소셜 컨텍스트)를 특성화한다. 예에서, 맵 컨텍스트는 운전 가능 영역, 운전 불가 영역, 트래픽 제어 요소(예컨대, 신호등, 정지 신호) 등과 같은 환경의 정적 속성을 특성화한다.
정책 헤더(604)는 그래프 순회에 대한 정책을 학습한다. 정책은 방향성 그래프에서의 상태를 액션에 대한 확률 분포에 매핑하고, 그 다음 그래프 순회에 대한 분포를 생성한다. 정책은 전문가(실측 자료)가 그래프를 순회한 방식에 기초하여 트레이닝된다. 궤적 디코더(606)는 정책 헤더(604)에 의해 학습된 정책에 따른 노드 인코딩 및 샘플링된 잠재 변수에 기초하여 에이전트(예컨대, 장면에서의 타겟 차량)에 대한 궤적 세트를 예측한다. 일부 예에서, 타겟 차량은 예측 궤적 세트가 생성되는 에이전트이다. 그래프 인코더(602)는 차선 그래프 생성기(608), 게이트 순환 유닛(GRU; gated recurrent unit) 인코더(610), 에이전트 노드 어텐션 계층(612) 및 그래프 신경망(GNN; graph neural network) 계층(614)을 더 포함한다. 도 6에 도시된 바와 같이, 최종 노드 인코딩을 갖는 그래프가 그래프 인코더(602)에 의해 생성되어 정책 헤더(604) 및 궤적 디코더(606)에 입력된다. 그래프 인코더(602)는 예시적인 그래프 인코더(602)를 더 도시하는 도 7에서 상세히 기재된다. 정책 헤더(604)는 예시적인 정책 헤더(604)를 더 도시하는 도 9에서 상세히 기재된다. 궤적 디코더(606)는 예시적인 궤적 디코더(606)를 더 도시하는 도 10에서 상세히 기재된다.
장면에서의 에이전트의 미래 궤적은 에이전트의 각자의 과거 궤적 및 장면의 HD 맵을 조건으로 하여 예측된다. 일부 실시예에서, 관심 차량(예컨대, 에이전트의 서브세트)의 미래 궤적은 관심 차량의 과거 궤적, 근처 차량 및 보행자의 과거 궤적, 그리고 장면의 HD 맵을 조건으로 하여 예측된다. 장면은 조감도로 표현되고, 장면의 조감도 표현을 사용하여 예측이 이루어진다. 에이전트의 순간적인 모션 방향을 따라 정렬된 에이전트 중심 참조 프레임이 각자의 에이전트와 연관된 예측에 사용된다. 예를 들어, 도 5를 참조하면, 궤적(504)은 에이전트의 순간적인 모션 방향을 따라 정렬된 에이전트 중심 참조 프레임에 도시되어 있다.
도 7은 예시적인 그래프 인코더(602)를 예시한다. 도 7의 그래프 인코더(602)는 도 6의 그래프 인코더(602)에 대응한다. 그래프 인코더(602)에서, 차선 그래프 생성기(608)는 운전 장면의 고화질(HD) 맵에 기초하여 노드 및 에지를 포함하는 방향성 그래프 를 생성한다. 일부 예에서, 하나의 HD 맵은 하나의 방향성 그래프에 대응한다. 그래프 인코더(602)에 의해 생성된 그래프 구조는 도 11a 내지 도 11c에 관련하여 더 기재된다.
운전 장면의 HD 맵은 도로 지형 및 교통 규칙의 표현을 제공한다. 도 8은 예시적인 HD 맵(802) 및 예시적인 HD 맵(802)에 대응하는 예시적인 방향성 그래프(804)를 예시한다. 도 8에 도시된 바와 같이, 예시적인 HD 맵(802)은 차선(806)(직선 또는 폴리라인으로 표현됨)과 횡단보도 및 정지선(808)(다각형으로 표현됨)을 포함한다. 복수의 에이전트 또는 도로 액터(actor)(810)가 차선(806)에서 운전하고 있다. 차선 중앙선의 네트워크는 트래픽 흐름의 방향 및 각각의 운전자가 따를 수 있는 합법적인 경로 또는 루트를 캡처한다. 차선 중앙선은 그래프(804)에서 노드()로서 표현된다. 각각의 노드가 유사한 길이의 차선 세그먼트를 표현함을 보장하기 위해, 더 긴 차선 중앙선은 고정 길이의 더 작은 세그먼트들로 나누어지거나 분할되고(예컨대, 각각의 세그먼트의 최대 길이는 20 미터임), 각각의 세그먼트는 N 포즈의 세트로 구분된다(discretized)(예컨대, 각각의 폴리라인은 1미터 해상도로 구분됨). 일부 실시예에서, 각각의 세그먼트는 방향성 그래프(804)에서의 노드에 대응한다. 각각의 노드 는 피처 벡처들의 시퀀스 로 표현되며, 각각 , n∈[1,N]이고, 여기서 , 및 는 의 n번째 포즈의 위치 및 요(yaw)이고, 는 포즈가 정지선 또는 횡단보도 상에 놓여있는지 여부를 표시하는 2-D 이진 벡터이다. 따라서, 노드 피처는 차선 중앙선을 따라 기하학적 구조(예컨대, 차선의 윤곽) 뿐만 아니라 트래픽 제어 요소(예컨대, 횡단보도, 정지선)도 모두 캡처한다.
일부 실시예에서, 방향성 그래프(804)에서의 에지는 그래프를 통한 임의의 순회된 경로가 차량이 장면에서 취할 수 있는 합법 루트에 대응하도록 배열된다. 2 가지 유형의 에지가 존재하는데, 즉 후속 에지(successor edge) 및 근위 에지(proximal edge)가 있다. 후속 에지(Esuc)는 노드를 차선을 따라 다음 노드에 연결한다. 일부 예에서, 후속 에지는 이동 방향으로 동일한 차선을 따라 노드를 다음 노드에 연결한다. 주어진 노드는 다수의 후속 에지를 가질 수 있다. 예를 들어, 교차로에서 차선이 다수의 차선으로 분기될 때 노드는 다수의 후속 에지를 갖는다. 마찬가지로, 다수의 노드가 동일한 후속 에지를 가질 수 있다. 예를 들어, 2 개 이상의 차선이 합쳐질 때 다수의 노드는 동일한 후속 에지를 갖는다. 근위 에지(Eprox)는 첫 번째 차선에 있는 노드를 두 번째 차선에 있는 다음 노드에 연결한다. 이 방식으로 근위 에지는 차선 변경을 설명하는 데 사용된다. 예에서, 근위 에지는, 노드가 서로의 거리 임계값 내에 있고 각자의 노드와 연관된 모션 방향이 요 임계값 내에 있을 때, 이웃 차선 노드들 사이를 연결한다. 요 임계값은 다수의 차선이 서로 교차하는 교차로에서 근위 에지가 잘못 할당되지 않음을 보장한다.
일부 실시예에서, 방향성 그래프(804)는 타겟 차량(예컨대, 관심 차량, 예컨대 복수의 에이전트 또는 도로 액터(810) 중 하나) 주위의 HD 맵의 고정 영역 내의 모든 차선 중앙선에 대하여 생성된다. 예를 들어, 타겟 차량 주위에 측방향으로 [-50, 50] 미터 그리고 종방향으로 [-20, 80] 미터의 영역 내의 맵 요소가 방향성 그래프(804)를 생성하는 데 사용될 수 있다.
일부 실시예에서, 장면에서의 에이전트(810)의 과거 궤적이 온보드 검출기 및 다중 객체 추적기로부터 획득된다. 예에서, 에이전트 i의 과거 궤적은 과거 th 시간 스텝에 대한 모션 상태 벡터들의 시퀀스 로서 표현된다. 각각 이며, 여기서 는 BEV(bird's-eye view) 위치 좌표이고, , 및 는 시간 t에서의 에이전트의 속도, 가속도 및 요율(yaw rate)이고, 는 표시자(1의 값은 보행자를 표시하는 반면, 0의 값은 차량을 표시함).
도 6 및 도 7을 다시 참조하면, GRU 인코더(610)는 에이전트 피처, 노드 피처 및 모션 피처를 인코딩하여 노드 인코딩(702), 에이전트 인코딩(704) 및 모션 인코딩(706)을 생성한다. 에이전트 궤적 및 차선 폴리라인 둘 다 정의된 순서로 피처들의 시퀀스를 형성하고, GRU 인코더(610)를 사용하여 독립적으로 인코딩된다. 일부 실시예에서, 타겟 차량 궤적 , 주변 차량 궤적 (타겟 차량 주변의 차량) 및 초기 노드 피처 를 인코딩하기 위해 3개의 GRU 인코더(610)가 제공된다. 3개의 GRU 인코더(610)는 각각 모션 인코딩 (702), 에이전트 인코딩 (704) 및 초기 노드 인코딩 (706)을 출력한다.
일부 실시예에서, 가능한 노드 인코딩은 에이전트 중심 프레임에서의 위치(예컨대, 차선 세그먼트 내의 모든 포인트의 평균 (x,y) 위치), 모션 방향(예컨대, 차선 세그먼트 내의 마지막 포인트와 처음 포인트 사이의 (x,y) 차이; 곡률; 1D CNN을 사용한 중앙선 인코딩; RNN, 차선 폭/도로 경계까지의 측방 거리 및 기타 장면 요소(예컨대, 횡단보도, 정지선, 도로 경계)를 포함한다. 일부 실시예에서, 노드가 횡단보도 상에 놓여있는지 여부를 표시하기 위해 이진 플래그가 사용될 수 있다. 이진 플래그는 인접한 인도를 왼쪽 그리고 별도로 오른쪽으로 표시하는 데 사용될 수 있다. 일부 실시예에서, 오프로드 궤적이 고려되는 경우, 정책이 끝나는 도로 경계에 추가 흡수 노드가 있을 수 있다.
일부 실시예에서, 인코더(610)는 RNN(Recurrent Neural Network) 인코더, 예컨대 LSTM(Long Short-Term Memory Networks) 인코더이다.
에이전트 노드 어텐션 계층(612)은 초기 노드 인코딩을 업데이트한다. 운전자(예컨대, 에이전트)는 다른 운전자(예컨대, 에이전트) 및 보행자와 협력하여 트래픽 장면을 통해 탐색한다. 따라서 주변 에이전트는 타겟 차량의 루트 또는 경로와 상호 작용할 수 있으므로 주변 에이전트는 궤적 예측에 유용한 단서 역할을 한다. 일부 실시예에서, 노드 인코딩은 스케일링된 내적 어텐션(dot product attention)을 사용하여 에이전트 인코딩으로 업데이트된다. 예에서, j에서의 입력과 i에서의 출력 간의 정렬을 캡처하는 함수에 의해 기술되는 피드-포워드 신경망의 출력 스코어를 정규화함으로써 어텐션 가중치(attention weight)가 계산된다. 에이전트 노드 어텐션 계층은 주변 에이전트의 컨텍스트를 고려하는 노드 임베딩을 생성한다. 예에서, 에이전트 노드 어텐션 계층(612)은 각각의 에이전트에 대해 3 개의 벡터(쿼리, 키 및 값)를 계산한다. 노드 인코딩을 에이전트 인코딩으로 업데이트하기 위해, 에이전트의 쿼리 벡터와 다른 모든 에이전트의 키 벡터의 내적이 결정된다.
일부 실시예에서, 각각의 노드의 거리 임계값 내의 근처 에이전트에 대응하는 에이전트 인코딩은 초기 노드 인코딩에 대한 업데이트에 고려된다. 이는 궤적 디코더(606)가 타겟 차량의 예측 궤적과 상호 작용할 수 있는 에이전트에 선택적으로 집중할 수 있게 한다. 키 및 값은 근처 에이전트의 인코딩 을 선형적으로 투영함으로써 획득되며, 쿼리는 를 선형적으로 투영함으로써 획득된다. 일부 실시예에서, 업데이트된 노드 인코딩은 에이전트 노드 어텐션 계층(612)의 출력을 초기 노드 인코딩과 연결(concatenating)함으로써 획득된다.
GNN 계층(614)은 이웃 노드로부터 로컬 컨텍스트를 집계하고 최종 노드 인코딩을 출력한다. 일부 예에서, GNN 계층(614)은 그래프의 노드들 사이에 전달되는 메시지를 통해 그래프의 의존성을 캡처하는 신경 모델(예컨대, GNN)이다. 일부 예에서, GNN은 그래프 대칭(순열 불변)을 유지하는 그래프의 모든 속성(노드, 에지 및 글로벌 컨텍스트)에 대한 최적화 가능한 변환이다. GNN은 노드, 에지 및 컨텍스트 정보와 연관된 초기 노드 인코딩을 갖는 그래프를 입력으로서 취한다. 인코딩은 입력 그래프의 연결성을 변경하지 않고 점진적으로 변환된다. 이러한 방식으로 타겟 차량 주위의 HD 맵의 고정 영역 내 모든 차선 중앙선에 대하여 노드 인코딩을 갖는 방향성 그래프가 생성된다. 일부 실시예에서, GNN 계층(614)은 이웃 노드로부터 로컬 컨텍스트를 집계하는 GCN(graph convolution network) 계층 또는 GAT(graph attention network) 계층이다. 일부 실시예에서, 에이전트 컨텍스트 및 맵 컨텍스트는 도 12와 관련하여 기재된 바와 같이 GCN 네트워크 계층을 사용하여 집계된다. 추가적으로, 일부 실시예에서, 후속 에지 및 근위 에지는 동등하고 양방향인 것으로서 취급되며, 이는 각각의 노드 주위의 모든 방향에서 컨텍스트를 집계하는 것을 가능하게 한다. GNN 계층(614)의 출력은 그래프 인코더(602)에 의해 학습된 최종 노드 인코딩 역할을 한다.
도 9는 예시적인 정책 헤더(604)를 예시한다. 예시적인 정책 헤더(604)는 각각의 노드에서 나가는 에지(outgoing edge)(예컨대, 후속 에지, 근위 에지)에 대한 이산 확률 분포(discrete probability distribution)(908)를 출력하는 데 사용되며, 타겟 차량이 미래에 택할 가장 가능성 높은 루트인, 방향성 그래프(804)(도 8)에서의 경로의 샘플링을 가능하게 한다. 방향성 그래프(804)(도 8)에서의 모든 경로는 타겟 차량에 대한 타당성있는(plausible) 루트에 대응한다. 그러나 모든 루트가 타겟 차량이 택할 루트가 될 가능성이 동일한 것은 아니다. 예를 들어, 교차로에 접근하는 타겟 차량의 과거 모션은 타겟 차량이 직진하기보다는 회전을 준비하고 있음을 표시할 수 있다. 예에서, 천천히 움직이는 차선은 타겟 차량이 동일한 차선을 유지하기보다는 차선을 변경할 가능성을 더 많아지게 한다. 설명의 편의를 위해 정책은 이산 확률 분포로서 기재된다. 그러나 일부 실시예에서 정책 헤더(604)는 리워드 모델(예컨대, 도 13의 리워드 모델(1300))에 따라 그래프 순회에 대한 정책을 학습한다.
정책의 샘플링된 롤아웃이 타겟 차량이 미래에 택할 가능성있는 루트 또는 경로에 대응하도록 정책 이 그래프 순회에 대하여 학습된다. 일부 실시예에서, 롤아웃은 궤적 샘플을 생성하는 정책(예컨대, 상태-액션 매핑)의 시뮬레이션된 결과이다. 정책은 각각의 노드에서 나가는 에지에 대한 이산 확률 분포(908)로서 표현된다. 정책 이 목표 위치에서 종료될 수 있도록 모든 노드로부터 최종 상태까지의 에지가 포함된다. 에지 확률은 정책 헤더(604)에 의해 출력된다. 정책 헤더(604)에서, 타겟 차량에 대한 최종 노드 인코딩(902) 및 모션 인코딩(904)이 방향성 그래프(예컨대, 도 8의 방향성 그래프(804))로부터 획득된다. 정책 헤더(604)는 스코어링(scoring) 계층(906)을 포함한다. 스코어링 계층(906)은 각각의 에지 에 대한 스칼라 스코어를 출력하는 공유 가중치를 갖는 다층 퍼셉트론(MLP; multilayer perceptron) 네트워크를 포함한다. 스칼라 스코어를 계산하기 위한 식 1이 아래에 제공된다:
(1)
따라서 스코어링 함수는 타겟 차량의 모션 뿐만 아니라 특정 에지에서의 에이전트 컨텍스트 및 로컬 장면도 고려한다. 스코어는 그래프 순회에 대한 정책을 출력하기 위해 각각의 노드에서의 모든 나가는 에지에 대해 소프트맥스(softmax) 계층을 사용하여 정규화된다. 정책 분포(908)를 출력하기 위한 식 2가 아래에 제공된다:
(2)
일부 실시예에서, 정책 헤더(604)는 행동 복제를 사용하여 트레이닝된다. 각각의 예측 인스턴스에 대하여, 타겟 차량이 어느 노드를 방문했는지 결정하기 위해 실측 궤적이 사용된다. 일부 실시예에서, 모션 방향이 타겟 차량의 포즈의 요 임계값 내에 있는 노드가 현재 예측에서 고려된다. 에지 는 둘 다의 노드 u 및 v가 방문되는 경우 방문된 것으로 취급된다. 실측 궤적()에 의해 방문된 모든 에지에 대한 에지 확률의 음의 로그 우도가 그래프 순회 정책을 트레이닝하기 위한 손실 함수로서 사용된다. 손실 함수를 출력하기 위한 식 3이 아래에 제공된다:
(3)
다시 도 6을 참조하면, 궤적 디코더(606)는 정책 헤더(604)에 의해 출력된 정책 및 샘플링된 잠재 변수에 따라 그래프 인코더에 의해 출력된 방향성 그래프에서 순회된 경로를 조건으로 하는 예측 궤적을 출력하는 데 사용된다.
도 10은 예시적인 궤도 디코더(606)를 예시한다. 정책 의 샘플링 롤아웃은 최종 노드 인코딩(1006)에 기초하여 타겟 차량에 대한 타당성있는 미래 루트 또는 경로를 산출한다. 일부 실시예에서, 미래 궤적을 예측하기 위한 가장 관련있는 컨텍스트는 이들 루트를 따른다. 예시적인 궤적 디코더(606)는 멀티헤드 어텐션 계층(1002)을 사용하여 샘플링된 루트 또는 경로를 따라 컨텍스트를 선택적으로 집계한다.
일부 실시예에서, 샘플링된 정책 롤아웃(1008)에 대응하는 노드들의 시퀀스 가 주어지면, 예시적인 궤적 디코더(606)는 도 10에 도시된 바와 같이 노드 시퀀스에 대한 맵 및 에이전트 컨텍스트를 집계하기 위해 멀티헤드 스케일링된 내적 어텐션을 사용한다. 타겟 차량의 모션 인코딩은 쿼리를 획득하기 위해 선형으로 투영되며, 노드 피처 는 어텐션을 계산하기 위한 키 및 값을 획득하기 위해 선형으로 투영된다. 멀티헤드 어텐션 계층(1002)은 정책에 따라 순회된 샘플링된 경로를 따라 컨텍스트를 인코딩하는 컨텍스트 벡터 (1010)를 출력한다. 각각의 개별 정책 롤아웃은 개별 컨텍스트 벡터 를 산출하며, 다양한 루트 세트를 따라 궤적의 예측을 가능하게 한다. 루트의 다양성 만으로는 미래 궤적의 멀티모달리티(multimodality)를 설명하지 못한다. 운전자(예컨대, 에이전트)는 계획된 루트를 따라 제동하거나 가속하거나 그리고/또는 상이한 모션 프로파일(예컨대, 위치, 속도 또는/및 가속도)을 따를 수 있다. 일부 실시예에서, 궤도 디코더(606)가 개별 모션 프로파일을 출력할 수 있게 하기 위해, 궤적 예측(1016)은 또한 샘플링된 잠재 변수 (1014)를 조건으로 한다. 루트와 달리, 차량 속도 및 가속도는 연속체(continuum)에 따라 달라진다. 일부 실시예에서, 잠재 변수 (1014)는 연속 분포로부터 샘플링된다. 일부 실시예에서, 잠재 변수 (1014)는 다변량 표준 정규 분포로서 모델링된다.
궤적 을 예측하기 위해, 의 롤아웃이 샘플링되어 를 획득되고, 잠재 분포로부터 이 샘플링된다. 및 는 와 연결되고, , , 는 MLP(1004)를 통해 전달되어 를 출력하며, 이는 시간 스텝에 대한 미래 위치(예컨대, x 및 y 좌표)이다(예컨대, 예측 호라이즌). 를 출력하기 위한 식 4가 아래에 제공된다:
(4)
샘플링 프로세스는 종종 중복일 수 있으며, 유사하거나 반복되는 궤적을 산출한다. 그러나 경량 인코더 및 디코더 헤드는 병렬로 많은 수의 궤적의 샘플링을 가능하게 한다.
궤적 분포의 모드의 최종 세트를 획득하기 위해, K-평균 클러스터링이 사용되어 클러스터 중심을 K 예측의 최종 세트 로서 출력한다.
궤적 디코더(606)는, 궤적 디코더(606)에 의해 출력된 다양한 타당성있는 궤적에 불이익을 주지 않기 위해, 실측 궤적()에 대한 승자 독식(winner-take-all) 평균 변위 오류를 사용하여 트레이닝된다. 손실 함수(예컨대, 회귀 손실)를 출력하기 위한 식 5가 아래에 제공된다:
(5)
궤적 디코더(606)는 식 3과 식 5로부터의 손실을 결합한 다중 작업 손실을 사용하여 종단간 트레이닝된다. 손실 함수를 결합하기 위한 식 6이 아래에 제공된다.
(6)
도 11a 내지 도 11c는 도 6 및 도 7의 차선 그래프 생성기(608)에 의해 생성된 그래프 구조를 갖는 3 개의 예시적인 방향성 그래프를 예시한다. 도 11a의 예에서, 방향성 그래프(1102)는 후속 에지(1108)를 포함하고, 각각의 후속 에지는 차선을 따라 노드를 다음 노드에 연결한다. 따라서, 도 11a의 방향성 그래프(1102)는 노드들 간의 선임자-후임자(predecessor-successor) 연결로 구조화된다. 도 11a의 방향성 그래프 구조(1102)는 차선 변경 또는 불법 기동을 나타내는 에지를 포함하지 않는다. 도 11b의 예에서, 방향성 그래프(1104)는 차선 변경을 위해 인접한 노드를 연결하는 후속 에지(1108B) 및 근위 에지(1110B)를 포함한다. 도 11c의 예에서, 방향성 그래프(1106)는 후속 에지(1108C), 근위 에지(1110C) 및 불법 기동(1112C)(예컨대, 교통 법규를 준수하지 않는 경로)을 나타내는 에지를 포함한다. 방향성 그래프(1106)는 모든 근처의 노드를 연결한다.
도 12는 그래프 콘볼루션을 사용하는 에이전트 컨텍스트 및 맵 컨텍스트의 집계를 예시한다. 도 12에 도시된 바와 같이, "액터-to-차선(Actor-to-Lane)" 컨텍스트 집계(1202)는 에이전트로부터 차선 피처로 실시간 트래픽 정보를 전파한다. 예를 들어, 실시간 트래픽 정보는 에이전트가 점유하고 있는 차선을 포함한다. "차선-to-차선(Lane-to-Lane)" 컨텍스트 집계(1204)는 차선 그래프의 타당성있는 경로를 따라 트래픽 정보를 전파한다. "차선-to-액터(Lane-to-Actor)" 컨텍스트 집계(1206)는 장면으로부터의 최신 차선 정보를 에이전트에 융합한다. "액터-to-액터(Actor-to-Actor)" 컨텍스트 집계(1208)는 에이전트들 간에 실시간 정보를 전파한다. 일부 실시예에서, 컨텍스트는 확장된 콘볼루션을 갖는 GCN(graph convolutional network) 계층을 사용하여 집계된다. 상이한 에지 유형은 상이한 학습가능 가중치로 방향을 인코딩할 수 있다. 이러한 방식으로, 에이전트 컨텍스트가 노드 피처에 인코딩된다. 확장된 그래프 콘볼루션은 차선을 따라 더 긴 거리에 걸쳐 피처를 전파한다.
도 13은 정책 헤더(예컨대, 정책 헤더(604))의 정책 을 결정하는 예시적인 리워드 모델(1300)을 예시한다. 리워드 모델(1300)은 노드 S(1302)와 노드 S'(1304)를 포함하는 상태 공간 및 액션 공간(1303)(에지)을 포함한다. 에지가 선택되면, 다음 노드는 결정론적이다(예컨대, 결정론적 동역학(T(s, A)). 리워드 모델(1300)은 특정 상태가 아니라 특정 상태 전환을 억제하거나 장려하기 위해 사용된다. 리워드 모델은 아래의 식 7로 표현될 수 있다:
(7)
여기서 는 GCN으로부터의 노드 인코딩이다(1310). 다음 노드 S'(1302)는 현재 노드 S(1302)에 에지를 적용함으로써 결정되거나, 이다. 는 에지 타입의 하나의 핫 인코딩이고, e()(1306)는 에지 타입 인코딩(1312)을 획득하는 데 사용되는 완전 연결(FC) 임베딩 계층이다. 소스 노드의 노드 인코딩(1310), 에지 타입 인코딩(1312) 및 목적지 노드 인코딩(1314)은 연결된다(1316). 네트워크(1318)가 연결된 노드 인코딩(1310, 1314) 및 에지 타입 인코딩(1312)에 적용된다. 일부 실시예에서, 네트워크(1318)는 모든 노드들에 대해 공유된 가중치를 갖는 1x1 콘볼루션 계층을 포함한다. 출력은 에지(1303)와 연관된 리워드 값(1320)이다.
리워드 모델(1300)의 트레이닝 동안, 소프트 값 반복을 사용하여 현재 리워드 (1320)에 대한 V(s) 및 Q(s,a)가 추정된다. 예에서, 최대 엔트로피(MaxEnt) 정책이 트레이닝에 사용되고, MaxEnt 정책에 대한 식 8이 아래에 제공된다:
(8)
상태-액션 DW(s, a) 방문 주파수는 pW()에 대하여 계산된다. 역전파는 DGT(s, a) - DW(s, a)로서 계산되며, 여기서 DGT(s, a)는 실측 상태-액션 방문 주파수이다. rW(s, a)가 획득되면, 추론 동안, 정책을 결정하고 정책의 롤아웃을 샘플링하여 그래프를 순회하고 확률을 할당하기 위해 V(s) 및 Q(s,a)의 추정 및 MaxEnt 정책이 반복된다.
위에 기재된 바와 같이, 에지가 선택되면, 다음 노드는 결정론적이다(예컨대, 결정론적 동역학 T(s, a)). 일부 실시예에서, 역학은 리워드 모델에 통합된다. 예를 들어, 궤적을 생성하기 위해 제2 인코더-디코더 모델이 사용된다. 이 예에서 그래프에서의 샘플링된 경로를 따른 각각의 노드에 대해, 노드 피처가 제2 인코더를 사용하여 인코딩된다. 제2 디코더가 제2 인코더로부터 노드 인코딩을 획득하고, 시간이 지남에 따라 중앙선을 따라 그리고 중앙선을 가로질러 속도를 출력한다. 예에서, 속도는 중앙선에 대해 프레네(frenet) 프레임에서 출력된다.
일부 실시예에서, 리워드 모델을 사용하여 다음 노드를 결정할 때 궤적을 생성하기 위한 노드 및 에지를 결정하는 데 고정 모션 프로파일이 사용된다. 고정 모션 프로파일을 사용하여, 차선 중앙선들이 그래프에서의 샘플링된 경로에 대해 연결된다. 중앙선을 결정하기 위해 인접한 또는 불법적인 에지에 대해 평활화 스플라인(smoothing spline)이 사용된다. 일정한 속도 또는 일정한 가속도 모션 프로파일이 궤적을 얻기 위해 사용된다.
일부 실시예에서, 리워드 모델에서 개별 가속도 값이 각각의 액션(예컨대, 에지)에 추가되고 개별 속도가 각각의 상태(예컨대, 노드)에 추가된다. 고정 모션 프로파일 대신에, K 개별 가속도 값이 액션에 포함된다. 실시예에서, 리워드 모델(1300)은 각각의 노드 피처/가속도 값 쌍에 대해 K 값을 출력한다. 가속도 값은 정책에 따라 다음 노드와 함께 샘플링되고, 가속도 값은 중앙선을 따른 궤적을 예측하는데 사용된다.
도 14는 에이전트에 대한 궤적을 예측하는 예시적인 프로세스(1400)를 예시한다. 일부 실시예에서, 프로세스(1400)는 도 2를 참조하여 기재된 자율 주행 시스템(202)과 동일하거나 유사한 자율 주행 시스템을 사용하여 구현된다(예컨대, 완전히, 부분적으로 등). 일부 실시예에서, 프로세스(1400)의 단계들 중 하나 이상은 또다른 디바이스 또는 시스템, 또는 자율 주행 시스템과는 별개이거나 자율 주행 시스템을 포함하는 또다른 그룹의 디바이스들 및/또는 시스템들에 의해 수행된다(예컨대, 완전히, 부분적으로 등). 예를 들어, 프로세스(1400)의 하나 이상의 단계는 원격 AV 시스템(114), 차량(102)(예컨대, 차량(102 또는 200)의 자율 주행 시스템(202)), 도 3의 디바이스(300) 및/또는 AV 컴퓨터(400)(예컨대, 도 4a의 AV 컴퓨터(400)의 하나 이상의 시스템)에 의해 수행될 수 있다(예컨대, 완전히, 부분적으로 등). 일부 실시예에서, 프로세스(1400)의 단계들은 위에 언급된 시스템 중 임의의 시스템 사이에 서로 협력하여 수행될 수 있다.
블록 1402에서, 맵 피처 및 에이전트 피처를 방향성 그래프의 노드 인코딩으로서 인코딩함으로써 방향성 그래프가 생성된다. 일부 실시예에서, 그래프는 맵 피처 및 에이전트 피처를 포함하는 그래프에 대한 노드에 대한 학습된 표현을 포함한다. 그래프를 생성하는 것은 맵 피처 및 에이전트 피처를, 그래프의 각각의 노드에 대한 노드 인코딩으로서 인코딩하는 것을 포함한다. 방향성 그래프는 그래프의 노드에 대한 학습된 표현을 포함한다. 학습된 표현은 맵 피처 및 에이전트 피처를 포함한다.
블록 1404에서, 정책이 결정된다. 그래프의 노드의 나가는 에지에 적용하기 위한 정책이 결정된다. 일부 실시예에서, 정책은 타겟 차량에 대하여 각각의 노드에서 나가는 에지에 대한 확률 분포인 이산 확률 분포이다. 일부 실시예에서, 정책은 리워드 모델에 기초한다. 블록 1406에서, 정책에 따라 장면에서의 타겟 차량에 대해 하나 이상의 경로가 샘플링된다. 블록 1408에서, 정책에 의해 순회된 샘플링된 경로 및 샘플링된 잠재 변수에 기초하여 궤적 세트가 예측된다. 블록 1410에서, 타겟 차량에 대하여 예측된 궤적 세트에 기초하여 AV가 작동된다.
일부 비한정적인 실시예 또는 예에 따르면, 방법에 있어서, 적어도 하나의 프로세서를 사용하여, 맵 피처 및 에이전트 피처를 그래프의 노드 인코딩으로서 인코딩함으로써 장면의 맵에 대응하는 그래프를 생성하는 단계; 상기 적어도 하나의 프로세서를 사용하여, 상기 그래프의 노드에서 나가는 에지에 적용하기 위한 정책을 결정하는 단계; 상기 적어도 하나의 프로세서를 사용하여, 상기 정책에 따라 상기 장면에서 타겟 차량에 대한 경로를 샘플링하는 단계; 상기 적어도 하나의 프로세서를 사용하여, 상기 정책에 의해 순회된 상기 샘플링된 경로 및 샘플링된 잠재 변수에 기초하여 궤적 세트를 예측하는 단계; 및 상기 적어도 하나의 프로세서를 사용하여, 상기 타겟 차량의 궤적 세트에 기초하여 차량을 작동시키는 단계를 포함하는, 방법이 제공된다.
일부 비한정적인 실시예 또는 예에 따르면, 시스템에 있어서, 고해상도 맵 및 에이전트 피처를, 최종 노드 인코딩을 생성하기 위한 그래프로 인코딩하기 위한 그래프 인코더 - 상기 그래프는 노드 및 에지를 포함하며, 상기 노드는 차선 중앙선의 세그먼트를 나타내고, 상기 에지는 노드 사이의 전환을 나타내며, 상기 그래프는 최종 노드 인코딩을 생성하는 데 사용됨 - ; 타겟 차량의 모션 뿐만 아니라 이웃 노드에서의 에이전트 컨텍스트 및 로컬 장면에 기초하여, 샘플링된 그래프 순회에 대한 정책을 학습하기 위한 정책 헤더; 및 상기 정책에 의해 순회된 경로를 따른 노드 인코딩 및 샘플링된 잠재 변수에 기초하여 궤적을 예측하기 위한 궤적 디코더를 포함하는, 시스템이 제공된다.
일부 비한정적인 실시예 또는 예에 따르면, 명령어를 저장한 적어도 하나의 비일시적 저장 매체에 있어서, 상기 명령어는 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금: 맵 피처 및 에이전트 피처를 그래프의 노드 인코딩으로서 인코딩함으로써 장면의 맵에 대응하는 그래프를 생성하고; 상기 그래프의 노드에서 나가는 에지에 적용하기 위한 정책을 결정하고; 상기 정책에 따라 상기 장면에서 타겟 차량에 대한 경로를 샘플링하고; 상기 정책에 의해 순회된 상기 샘플링된 경로 및 샘플링된 잠재 변수에 기초하여 궤적 세트를 예측하고; 상기 타겟 차량의 궤적 세트에 기초하여 차량을 작동시키게 하는 것인, 적어도 하나의 비일시적 저장 매체가 제공된다.
조항 1: 방법에 있어서, 적어도 하나의 프로세서를 사용하여, 맵 피처 및 에이전트 피처를 그래프의 노드 인코딩으로서 인코딩함으로써 장면의 맵에 대응하는 그래프를 생성하는 단계; 상기 적어도 하나의 프로세서를 사용하여, 상기 그래프의 노드에서 나가는 에지에 적용하기 위한 정책을 결정하는 단계; 상기 적어도 하나의 프로세서를 사용하여, 상기 정책에 따라 상기 장면에서 타겟 차량에 대한 경로를 샘플링하는 단계; 상기 적어도 하나의 프로세서를 사용하여, 상기 정책에 의해 순회된 상기 샘플링된 경로 및 샘플링된 잠재 변수에 기초하여 궤적 세트를 예측하는 단계; 및 상기 적어도 하나의 프로세서를 사용하여, 상기 타겟 차량의 궤적 세트에 기초하여 차량을 작동시키는 단계를 포함하는, 방법.
조항 2: 조항 1에 있어서, 각각의 노드가 상기 맵의 차선 중앙선의 세그먼트에 대응하는 것인, 방법.
조항 3: 조항 1 또는 2에 있어서, 스케일링된 내적 어텐션 가중치를 계산함으로써 상기 노드 인코딩을 주변 에이전트 인코딩으로 업데이트하는 단계를 더 포함하는, 방법.
조항 4: 조항 1 내지 3 중 어느 하나에 있어서, 그래프 신경망을 사용하여 이웃 노드로부터의 로컬 컨텍스트를 상기 그래프의 노드 인코딩으로 집계하는 단계를 포함하는, 방법.
조항 5: 조항 1 내지 4 중 어느 하나에 있어서, 상기 나가는 에지에 적용하기 위한 정책은 상기 그래프의 노드에서의 상기 나가는 에지에 대한 이산 확률 분포인 것인, 방법.
조항 6: 조항 1 내지 5 중 어느 하나에 있어서, 상기 정책은 행동 복제를 사용하여 다층 퍼셉트론(MLP)을 트레이닝함으로써 예측되는 것인, 방법.
조항 7: 조항 1 내지 6 중 어느 하나에 있어서, 상기 샘플링된 경로를 따라 컨텍스트를 선택적으로 집계하고, 그리고 상기 정책에 의해 순회된 상기 샘플링된 경로, 상기 집계된 컨텍스트, 및 상기 샘플링된 잠재 변수에 기초하여 상기 궤적 세트를 예측하는 단계를 포함하는, 방법.
조항 8: 조항 7에 있어서, 상기 궤적 세트를 예측하는 단계는: 상기 집계된 컨텍스트 및 상기 샘플링된 잠재 변수를 모션 인코딩과 연결하는 단계; 및 상기 연결된 집계된 컨텍스트 및 상기 샘플링된 잠재 변수를 다층 퍼셉트론에 입력하는 단계를 포함하고, 상기 궤적 세트는 미래의 시간 스텝에서의 예측된 위치를 표시하는 것인, 방법.
조항 9: 시스템에 있어서, 고해상도 맵 및 에이전트 피처를, 최종 노드 인코딩을 생성하기 위한 그래프로 인코딩하기 위한 그래프 인코더 - 상기 그래프는 노드 및 에지를 포함하며, 상기 노드는 차선 중앙선의 세그먼트를 나타내고, 상기 에지는 노드 사이의 전환을 나타내며, 상기 그래프는 최종 노드 인코딩을 생성하는 데 사용됨 - ; 타겟 차량의 모션 뿐만 아니라 이웃 노드에서의 에이전트 컨텍스트 및 로컬 장면에 기초하여, 샘플링된 그래프 순회에 대한 정책을 학습하기 위한 정책 헤더; 및 상기 정책에 의해 순회된 경로를 따른 노드 인코딩 및 샘플링된 잠재 변수에 기초하여 궤적을 예측하기 위한 궤적 디코더를 포함하는, 시스템.
조항 10: 조항 9에 있어서, 상기 정책은 각각의 노드에서의 각각의 에지와 연관된 전환의 이산 확률 분포인 것인, 시스템.
조항 11: 조항 9 또는 10에 있어서, 상기 그래프 인코더는 타겟 차량 궤적, 주변 차량 궤적 및 노드 피처를 인코딩하기 위한 하나 이상의 게이트 순환 유닛을 포함하는 것인, 시스템.
조항 12: 조항 9 내지 11 중 어느 하나에 있어서, 상기 궤적 디코더는 각 정책에 대하여 컨텍스트 벡터를 출력하는 멀티헤드 어텐션 계층을 포함하고, 상기 컨텍스트 벡터는 상기 궤적을 예측하기 위해 모션 인코딩 및 상기 샘플링된 잠재 변수와 결합되는 것인, 시스템.
조항 13: 조항 9 내지 12 중 어느 하나에 있어서, 초기 노드 인코딩은, 상기 최종 노드 인코딩을 생성하기 위해, 스케일링된 내적 어텐션 가중치를 계산함으로써 주변 에이전트 인코딩으로 업데이트되는 것인, 시스템.
조항 14: 조항 9 내지 13 중 어느 하나에 있어서, 상기 그래프 인코더는 그래프 신경망을 사용하여 이웃 노드로부터의 로컬 컨텍스트를 상기 그래프의 최종 노드 인코딩으로 집계하도록 구성되는 것인, 시스템.
조항 15: 명령어를 저장한 적어도 하나의 비일시적 저장 매체에 있어서, 상기 명령어는 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금: 맵 피처 및 에이전트 피처를 그래프의 노드 인코딩으로서 인코딩함으로써 장면의 맵에 대응하는 그래프를 생성하고; 상기 그래프의 노드에서 나가는 에지에 적용하기 위한 정책을 결정하고; 상기 정책에 따라 상기 장면에서 타겟 차량에 대한 경로를 샘플링하고; 상기 정책에 의해 순회된 상기 샘플링된 경로 및 샘플링된 잠재 변수에 기초하여 궤적 세트를 예측하고; 상기 타겟 차량의 궤적 세트에 기초하여 차량을 작동시키게 하는 것인, 적어도 하나의 비일시적 저장 매체.
조항 16: 조항 15에 있어서, 각각의 노드가 상기 맵의 차선 중앙선의 세그먼트에 대응하는 것인, 적어도 하나의 비일시적 저장 매체.
조항 17: 조항 15 또는 16에 있어서, 스케일링된 내적 어텐션 가중치를 계산함으로써 상기 노드 인코딩을 주변 에이전트 인코딩으로 업데이트하는 것을 포함하는, 적어도 하나의 비일시적 저장 매체.
조항 18: 조항 15 내지 17 중 어느 하나에 있어서, 그래프 신경망을 사용하여 이웃 노드로부터의 로컬 컨텍스트를 상기 그래프의 노드 인코딩으로 집계하는 것을 포함하는, 적어도 하나의 비일시적 저장 매체.
조항 19: 조항 15 내지 18 중 어느 하나에 있어서, 상기 나가는 에지에 적용하기 위한 정책은 상기 그래프의 노드에서의 상기 나가는 에지에 대한 이산 확률 분포인 것인, 적어도 하나의 비일시적 저장 매체.
조항 20: 조항 15 내지 19 중 어느 하나에 있어서, 상기 정책은 행동 복제를 사용하여 다층 퍼셉트론(MLP)을 트레이닝함으로써 예측되는 것인, 적어도 하나의 비일시적 저장 매체.
전술한 설명에서, 본 발명의 실시예는 구현마다 달라질 수 있는 수많은 특정 세부 사항을 참조하여 기술되었다. 따라서, 상세한 설명 및 도면은 제한적인 의미보다는 예시적인 의미로 간주되어야 한다. 본 발명의 범위의 유일한 독점적인 지표, 및 출원인이 본 발명의 범위이도록 의도한 것은, 본 출원에서 특정 형태로 나오는 일련의 청구항의 문언적 등가 범위이며, 임의의 후속 보정을 포함한다. 그러한 청구항에 포함된 용어에 대한 본원에서 명시적으로 기술된 임의의 정의는 청구항에서 사용되는 그러한 용어의 의미를 결정한다. 추가적으로, 전술한 설명 및 이하의 청구항에서 "더 포함하는"이라는 용어가 사용될 때, 이 문구에 뒤따르는 것은 추가적인 단계 또는 엔티티, 또는 이전에 언급된 단계 또는 엔티티의 서브-단계/서브-엔티티일 수 있다.
Claims (20)
- 방법에 있어서,
적어도 하나의 프로세서를 사용하여, 맵 피처 및 에이전트 피처를 그래프의 노드 인코딩으로서 인코딩함으로써 장면(scene)의 맵에 대응하는 그래프를 생성하는 단계;
상기 적어도 하나의 프로세서를 사용하여, 상기 그래프의 노드에서 나가는 에지(outgoing edge)에 적용하기 위한 정책을 결정하는 단계;
상기 적어도 하나의 프로세서를 사용하여, 상기 정책에 따라 상기 장면에서 타겟 차량에 대한 경로를 샘플링하는 단계;
상기 적어도 하나의 프로세서를 사용하여, 상기 정책에 의해 순회된 상기 샘플링된 경로 및 샘플링된 잠재 변수에 기초하여 궤적 세트를 예측하는 단계; 및
상기 적어도 하나의 프로세서를 사용하여, 상기 타겟 차량의 궤적 세트에 기초하여 차량을 작동시키는 단계
를 포함하는, 방법. - 청구항 1에 있어서,
각각의 노드가 상기 맵의 차선 중앙선의 세그먼트에 대응하는 것인, 방법. - 청구항 1 또는 청구항 2에 있어서,
스케일링된 내적 어텐션 가중치(scaled dot product attention weight)를 계산함으로써 상기 노드 인코딩을 주변 에이전트 인코딩으로 업데이트하는 단계를 더 포함하는, 방법. - 청구항 1 내지 청구항 3 중 어느 한 항에 있어서,
그래프 신경망을 사용하여 이웃 노드로부터의 로컬 컨텍스트를 상기 그래프의 노드 인코딩으로 집계(aggregating)하는 단계를 포함하는, 방법. - 청구항 1 내지 청구항 4 중 어느 한 항에 있어서,
상기 나가는 에지에 적용하기 위한 정책은 상기 그래프의 노드에서의 상기 나가는 에지에 대한 이산 확률 분포인 것인, 방법. - 청구항 1 내지 청구항 5 중 어느 한 항에 있어서,
상기 정책은 행동 복제를 사용하여 다층 퍼셉트론(MLP; multilayer perceptron)을 트레이닝함으로써 예측되는 것인, 방법. - 청구항 1 내지 청구항 6 중 어느 한 항에 있어서,
상기 샘플링된 경로를 따라 컨텍스트를 선택적으로 집계하고, 그리고 상기 정책에 의해 순회된 상기 샘플링된 경로, 상기 집계된 컨텍스트, 및 상기 샘플링된 잠재 변수에 기초하여 상기 궤적 세트를 예측하는 단계를 포함하는, 방법. - 청구항 7에 있어서,
상기 궤적 세트를 예측하는 단계는:
상기 집계된 컨텍스트 및 상기 샘플링된 잠재 변수를 모션 인코딩과 연결(concatenating)하는 단계; 및
상기 연결된 집계된 컨텍스트 및 상기 샘플링된 잠재 변수를 다층 퍼셉트론에 입력하는 단계
를 포함하고,
상기 궤적 세트는 미래의 시간 스텝에서의 예측된 위치를 표시하는 것인, 방법. - 시스템에 있어서,
고해상도 맵 및 에이전트 피처를, 최종 노드 인코딩을 생성하기 위한 그래프로 인코딩하기 위한 그래프 인코더 - 상기 그래프는 노드 및 에지를 포함하며, 상기 노드는 차선 중앙선의 세그먼트를 나타내고, 상기 에지는 노드 사이의 전환을 나타내며, 상기 그래프는 최종 노드 인코딩을 생성하는 데 사용됨 - ;
타겟 차량의 모션 뿐만 아니라 이웃 노드에서의 에이전트 컨텍스트 및 로컬 장면에 기초하여, 샘플링된 그래프 순회에 대한 정책을 학습하기 위한 정책 헤더; 및
상기 정책에 의해 순회된 경로를 따른 노드 인코딩 및 샘플링된 잠재 변수에 기초하여 궤적을 예측하기 위한 궤적 디코더
를 포함하는, 시스템. - 청구항 9에 있어서,
상기 정책은 각각의 노드에서의 각각의 에지와 연관된 전환의 이산 확률 분포인 것인, 시스템. - 청구항 9 또는 청구항 10에 있어서,
상기 그래프 인코더는 타겟 차량 궤적, 주변 차량 궤적 및 노드 피처를 인코딩하기 위한 하나 이상의 게이트 순환 유닛(gated recurrent unit)을 포함하는 것인, 시스템. - 청구항 9 내지 청구항 11 중 어느 한 항에 있어서,
상기 궤적 디코더는 각 정책에 대하여 컨텍스트 벡터를 출력하는 멀티헤드 어텐션 계층을 포함하고, 상기 컨텍스트 벡터는 상기 궤적을 예측하기 위해 모션 인코딩 및 상기 샘플링된 잠재 변수와 결합되는 것인, 시스템. - 청구항 9 내지 청구항 12 중 어느 한 항에 있어서,
초기 노드 인코딩은, 상기 최종 노드 인코딩을 생성하기 위해, 스케일링된 내적 어텐션 가중치를 계산함으로써 주변 에이전트 인코딩으로 업데이트되는 것인, 시스템. - 청구항 9 내지 청구항 13 중 어느 한 항에 있어서,
상기 그래프 인코더는 그래프 신경망을 사용하여 이웃 노드로부터의 로컬 컨텍스트를 상기 그래프의 최종 노드 인코딩으로 집계하도록 구성되는 것인, 시스템. - 명령어를 저장한 적어도 하나의 비일시적 저장 매체에 있어서,
상기 명령어는 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금:
맵 피처 및 에이전트 피처를 그래프의 노드 인코딩으로서 인코딩함으로써 장면의 맵에 대응하는 그래프를 생성하고;
상기 그래프의 노드에서 나가는 에지에 적용하기 위한 정책을 결정하고;
상기 정책에 따라 상기 장면에서 타겟 차량에 대한 경로를 샘플링하고;
상기 정책에 의해 순회된 상기 샘플링된 경로 및 샘플링된 잠재 변수에 기초하여 궤적 세트를 예측하고;
상기 타겟 차량의 궤적 세트에 기초하여 차량을 작동시키게 하는 것인, 적어도 하나의 비일시적 저장 매체. - 청구항 15에 있어서,
각각의 노드가 상기 맵의 차선 중앙선의 세그먼트에 대응하는 것인, 적어도 하나의 비일시적 저장 매체. - 청구항 15 또는 청구항 16에 있어서,
스케일링된 내적 어텐션 가중치를 계산함으로써 상기 노드 인코딩을 주변 에이전트 인코딩으로 업데이트하는 것을 포함하는, 적어도 하나의 비일시적 저장 매체. - 청구항 15 내지 청구항 17 중 어느 한 항에 있어서,
그래프 신경망을 사용하여 이웃 노드로부터의 로컬 컨텍스트를 상기 그래프의 노드 인코딩으로 집계하는 것을 포함하는, 적어도 하나의 비일시적 저장 매체. - 청구항 15 내지 청구항 18 중 어느 한 항에 있어서,
상기 나가는 에지에 적용하기 위한 정책은 상기 그래프의 노드에서의 상기 나가는 에지에 대한 이산 확률 분포인 것인, 적어도 하나의 비일시적 저장 매체. - 청구항 15 내지 청구항 19 중 어느 한 항에 있어서,
상기 정책은 행동 복제를 사용하여 다층 퍼셉트론(MLP)을 트레이닝함으로써 예측되는 것인, 적어도 하나의 비일시적 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163179169P | 2021-04-23 | 2021-04-23 | |
US63/179,169 | 2021-04-23 | ||
PCT/US2022/026045 WO2022226373A1 (en) | 2021-04-23 | 2022-04-22 | Predicting agent trajectories |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230166129A true KR20230166129A (ko) | 2023-12-06 |
Family
ID=83723186
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237038389A KR20230166129A (ko) | 2021-04-23 | 2022-04-22 | 에이전트 궤적 예측 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20220355825A1 (ko) |
EP (1) | EP4326587A4 (ko) |
KR (1) | KR20230166129A (ko) |
WO (1) | WO2022226373A1 (ko) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP6728495B2 (ja) * | 2016-11-04 | 2020-07-22 | ディープマインド テクノロジーズ リミテッド | 強化学習を用いた環境予測 |
US10942256B2 (en) * | 2017-06-05 | 2021-03-09 | Metawave Corporation | Intelligent metamaterial radar for target identification |
US11975726B1 (en) * | 2020-07-28 | 2024-05-07 | Uatc, Llc | Systems and methods for interaction-based trajectory prediction |
US20240157973A1 (en) * | 2022-06-14 | 2024-05-16 | Woven By Toyota, Inc. | System and method for determining a trajectory for a vehicle |
US20240053166A1 (en) * | 2022-08-15 | 2024-02-15 | GM Global Technology Operations LLC | Methods and systems for generating lane line and road edge data using empiracal path distributions |
DE102022213710A1 (de) | 2022-12-15 | 2024-06-20 | Robert Bosch Gesellschaft mit beschränkter Haftung | Vorhersage der Fortentwicklung einer Szenerie mit Aggregation latenter Repräsentationen |
US20240217548A1 (en) * | 2023-01-04 | 2024-07-04 | Zoox, Inc. | Trajectory prediction for autonomous vehicles using attention mechanism |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11429105B2 (en) * | 2016-06-10 | 2022-08-30 | Duke University | Motion planning for autonomous vehicles and reconfigurable motion planning processors |
US11574122B2 (en) * | 2018-08-23 | 2023-02-07 | Shenzhen Keya Medical Technology Corporation | Method and system for joint named entity recognition and relation extraction using convolutional neural network |
US10814870B2 (en) * | 2018-12-04 | 2020-10-27 | GM Global Technology Operations LLC | Multi-headed recurrent neural network (RNN) for multi-class trajectory predictions |
US20200302250A1 (en) * | 2019-03-22 | 2020-09-24 | Nvidia Corporation | Iterative spatial graph generation |
US11131993B2 (en) * | 2019-05-29 | 2021-09-28 | Argo AI, LLC | Methods and systems for trajectory forecasting with recurrent neural networks using inertial behavioral rollout |
US20210232913A1 (en) * | 2020-01-27 | 2021-07-29 | Honda Motor Co., Ltd. | Interpretable autonomous driving system and method thereof |
-
2022
- 2022-04-22 KR KR1020237038389A patent/KR20230166129A/ko unknown
- 2022-04-22 WO PCT/US2022/026045 patent/WO2022226373A1/en active Application Filing
- 2022-04-22 EP EP22792623.5A patent/EP4326587A4/en active Pending
- 2022-04-22 US US17/727,617 patent/US20220355825A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2022226373A1 (en) | 2022-10-27 |
US20220355825A1 (en) | 2022-11-10 |
EP4326587A4 (en) | 2024-10-23 |
EP4326587A1 (en) | 2024-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220355825A1 (en) | Predicting agent trajectories | |
US20220375129A1 (en) | Deep learning-based camera calibration | |
KR102595886B1 (ko) | 매핑에서의 향상된 시맨틱 라벨링을 위한 멀티 모달 분할 네트워크 | |
US12050660B2 (en) | End-to-end system training using fused images | |
KR20230004212A (ko) | 대상체 검출을 위한 교차 모달리티 능동 학습 | |
CN115705693A (zh) | 用于传感器数据的标注的方法、系统和存储介质 | |
KR102631148B1 (ko) | 센서 데이터를 사용하여 자동으로 교통 신호 검출 | |
US20230294741A1 (en) | Agent importance prediction for autonomous driving | |
WO2024044305A1 (en) | Efficient and optimal feature extraction from observations | |
WO2023249857A1 (en) | Semi-closed loop rollouts for data augmentation | |
CN116892931A (zh) | 用于运载工具的方法、系统和可读介质 | |
CN116265313A (zh) | 用于操作自主运载工具的方法和系统以及计算机可读介质 | |
KR102645980B1 (ko) | 플래너에서 보정된 미래 기동 파라미터 생성 | |
US11634158B1 (en) | Control parameter based search space for vehicle motion planning | |
US20240132112A1 (en) | Path-based trajectory prediction | |
US20230382427A1 (en) | Motion prediction in an autonomous vehicle using fused synthetic and camera images | |
US20230415772A1 (en) | Trajectory planning based on extracted trajectory features | |
US20240025452A1 (en) | Corridor/homotopy scoring and validation | |
US20230391367A1 (en) | Inferring autonomous driving rules from data | |
US20240296681A1 (en) | Training machine learning networks for controlling vehicle operation | |
US20240127579A1 (en) | Identifying new classes of objects in environments of vehicles | |
WO2024073608A1 (en) | Motion forecasting in autonomous vehicles using a machine learning model trained with cycle consistency loss | |
WO2023028437A1 (en) | Selecting minimal risk maneuvers | |
CN117152709A (zh) | 计算机系统、计算机实现的方法和计算机可读介质 | |
WO2024215335A1 (en) | Pre-training machine learning models with contrastive learning |