KR20230074395A - 고충실도 데이터 기반 멀티모달 시뮬레이션 - Google Patents

고충실도 데이터 기반 멀티모달 시뮬레이션 Download PDF

Info

Publication number
KR20230074395A
KR20230074395A KR1020220011480A KR20220011480A KR20230074395A KR 20230074395 A KR20230074395 A KR 20230074395A KR 1020220011480 A KR1020220011480 A KR 1020220011480A KR 20220011480 A KR20220011480 A KR 20220011480A KR 20230074395 A KR20230074395 A KR 20230074395A
Authority
KR
South Korea
Prior art keywords
vehicle
data
sensor data
environment
synthetic
Prior art date
Application number
KR1020220011480A
Other languages
English (en)
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 KR20230074395A publication Critical patent/KR20230074395A/ko

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0231Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means
    • G05D1/0246Control of position or course in two dimensions specially adapted to land vehicles using optical position detecting means using a video camera in combination with image processing means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/02Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
    • B60W40/04Traffic conditions
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0011Planning or execution of driving tasks involving control alternatives for a single driving scenario, e.g. planning several paths to avoid obstacles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/772Determining representative reference patterns, e.g. averaging or distorting patterns; Generating dictionaries
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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
    • B60W40/00Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models
    • B60W40/02Estimation or calculation of non-directly measurable driving parameters for road vehicle drive control systems not related to the control of a particular sub unit, e.g. by using mathematical models related to ambient conditions
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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/00Details 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/08Interaction between the driver and the control system
    • B60W50/14Means for informing the driver, warning the driver or prompting a driver intervention
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0015Planning or execution of driving tasks specially adapted for safety
    • B60W60/0016Planning or execution of driving tasks specially adapted for safety of the vehicle or its occupants
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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/00Drive control systems specially adapted for autonomous road vehicles
    • B60W60/001Planning or execution of driving tasks
    • B60W60/0027Planning or execution of driving tasks using trajectory prediction for other traffic participants
    • 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
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/89Radar or analogous 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
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/89Radar or analogous systems specially adapted for specific applications for mapping or imaging
    • G01S13/895Side looking radar [SLR]
    • 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
    • G01S13/00Systems using the reflection or reradiation of radio waves, e.g. radar systems; Analogous systems using reflection or reradiation of waves whose nature or wavelength is irrelevant or unspecified
    • G01S13/88Radar or analogous systems specially adapted for specific applications
    • G01S13/93Radar or analogous systems specially adapted for specific applications for anti-collision purposes
    • G01S13/931Radar or analogous 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
    • 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
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/0088Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots characterized by the autonomous decision making process, e.g. artificial intelligence, predefined behaviours
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0257Control of position or course in two dimensions specially adapted to land vehicles using a radar
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0268Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means
    • G05D1/027Control of position or course in two dimensions specially adapted to land vehicles using internal positioning means comprising intertial navigation means, e.g. azimuth detector
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/44Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components
    • G06V10/443Local feature extraction by analysis of parts of the pattern, e.g. by detecting edges, contours, loops, corners, strokes or intersections; Connectivity analysis, e.g. of connected components by matching or filtering
    • G06V10/449Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters
    • G06V10/451Biologically inspired filters, e.g. difference of Gaussians [DoG] or Gabor filters with interaction between the filter responses, e.g. cortical complex cells
    • G06V10/454Integrating the filters into a hierarchical structure, e.g. convolutional neural networks [CNN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/82Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/50Context or environment of the image
    • G06V20/56Context or environment of the image exterior to a vehicle by using sensors mounted on the vehicle
    • G06V20/58Recognition of moving objects or obstacles, e.g. vehicles or pedestrians; Recognition of traffic objects, e.g. traffic signs, traffic lights or roads
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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/00Details 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/0001Details of the control system
    • B60W2050/0002Automatic control, details of type of controller or control system architecture
    • B60W2050/0004In digital systems, e.g. discrete-time systems involving sampling
    • B60W2050/0005Processor details or data handling, e.g. memory registers or chip architecture
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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/00Details 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/0001Details of the control system
    • B60W2050/0019Control system elements or transfer functions
    • B60W2050/0028Mathematical models, e.g. for simulation
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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/00Details 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/08Interaction between the driver and the control system
    • B60W50/14Means for informing the driver, warning the driver or prompting a driver intervention
    • B60W2050/146Display means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • B60W2420/403Image sensing, e.g. optical camera
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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
    • B60W2420/00Indexing codes relating to the type of sensors based on the principle of their operation
    • B60W2420/40Photo, light or radio wave sensitive means, e.g. infrared sensors
    • B60W2420/408Radar; Laser, e.g. lidar
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/402Type
    • B60W2554/4029Pedestrians
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60WCONJOINT 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
    • B60W2554/00Input parameters relating to objects
    • B60W2554/40Dynamic objects, e.g. animals, windblown objects
    • B60W2554/404Characteristics
    • 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/10Image acquisition modality
    • G06T2207/10032Satellite or aerial image; Remote sensing
    • G06T2207/10044Radar image

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Multimedia (AREA)
  • Human Computer Interaction (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Health & Medical Sciences (AREA)
  • Electromagnetism (AREA)
  • General Health & Medical Sciences (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Medical Informatics (AREA)
  • General Engineering & Computer Science (AREA)
  • Molecular Biology (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Business, Economics & Management (AREA)
  • Game Theory and Decision Science (AREA)
  • Traffic Control Systems (AREA)
  • Navigation (AREA)
  • Radar Systems Or Details Thereof (AREA)

Abstract

차량에 대한 가설적 주행 시나리오를 나타내는 고충실도 합성 센서 데이터를 생성하기 위한 방법이 제공된다. 기술하는 일부 방법은 제1 경로를 횡단하는 환경내 차량의 작동과 연관된 센서 데이터에 액세스하는 단계를 포함한다. 시뮬레이션 차량의 작동은 제1 경로와는 상이한 제2 경로를 따라 그리고 복수의 시뮬레이션 에이전트가 포함된 시뮬레이션으로 시뮬레이션 환경에서 합성 주행 시나리오를 따라 시뮬레이션된다. 시스템 및 컴퓨터 프로그램 제품도 제공된다.

Description

고충실도 데이터 기반 멀티모달 시뮬레이션{HIGH FIDELITY DATA-DRIVEN MULTI-MODAL SIMULATION}
자율 주행 차량은 차량 및 주변 환경에 대한 센서 데이터를 산출하는 다수의 센서를 포함할 수 있다. LiDAR(Light Detection And Ranging) 센서는 펄스 광파(pulsed light wave)를 주변 환경에 방출할 수 있고 검출기를 사용하여 환경내 대상체에 의해 반사된 광으로부터 정보를 결정할 수 있다. 마찬가지로, RADAR(Radio Detection And Ranging) 센서는 방출기가 전파(radio wave)를 방출한 후 환경내 대상체에 의해 반사된 전파로부터 대상체 정보를 결정할 수 있다. 자율 주행 차량은 LiDAR 및 RADAR 정보를 사용하여 환경을 통과하는 경로를 횡단할 수 있다.
도 1은 자율 주행 시스템의 하나 이상의 컴포넌트를 포함한 차량이 구현될 수 있는 예시적인 환경이다.
도 2는 자율 주행 시스템을 포함하는 차량의 하나 이상의 시스템의 도면이다.
도 3은 도 1 내지 도 2의 하나 이상의 디바이스 및/또는 하나 이상의 시스템의 컴포넌트들의 도면이다.
도 4a는 자율 주행 시스템의 특정 컴포넌트들의 도면이다.
도 4b는 신경망의 구현예의 도면이다.
도 4c 및 도 4d는 CNN의 예시적인 연산을 예시하는 도면이다.
도 4e는 적대적 생성 네트워크(GAN, generative adversarial network)의 일례를 나타내는 도면이다.
도 5a 내지 도 5c는 고충실도 데이터 기반 멀티모달 시뮬레이션 프로세스의 구현예를 나타내는 도면이다.
도 6은 고충실도 데이터 기반 멀티모달 시뮬레이션 프로세스의 흐름도이다.
이하의 설명에서는, 설명 목적으로 본 개시에 대한 완전한 이해를 제공하기 위해 다수의 특정 세부 사항들이 제시된다. 그렇지만, 본 개시내용에 의해 기술되는 실시예들이 이러한 특정 세부 사항들이 없더라도 실시될 수 있음이 명백할 것이다. 일부 경우에, 본 개시의 양태들을 불필요하게 모호하게 하는 것을 피하기 위해 잘 알려진 구조들 및 디바이스들은 블록도 형태로 예시되어 있다.
시스템들, 디바이스들, 모듈들, 명령어 블록들, 데이터 요소들 등을 나타내는 것들과 같은, 개략적인 요소들의 특정 배열들 또는 순서들이 설명의 편의를 위해 도면들에 예시되어 있다. 그렇지만, 본 기술 분야의 통상의 기술자라면 도면들에서의 개략적인 요소들의 특정 순서 또는 배열이, 그러한 것으로 명시적으로 기술되지 않는 한, 프로세스들의 특정 프로세싱 순서 또는 시퀀스, 또는 프로세스들의 분리가 필요하다는 것을 암시하는 것으로 의미되지 않음을 이해할 것이다. 게다가, 도면에 개략적인 요소를 포함시키는 것은, 그러한 것으로 명시적으로 기술되지 않는 한 일부 실시예에서, 그러한 요소가 모든 실시예들에서 필요하다는 것 또는 그러한 요소에 의해 표현되는 특징들이 다른 요소들에 포함되지 않을 수 있거나 다른 요소들과 결합되지 않을 수 있다는 것을 암시하는 것으로 의미되지 않는다.
게다가, 2 개 이상의 다른 개략적인 요소 사이의 연결, 관계 또는 연관을 예시하기 위해 실선 또는 파선 또는 화살표와 같은 연결 요소들이 도면에서 사용되는 경우에, 임의의 그러한 연결 요소들의 부재는 연결, 관계 또는 연관이 존재하지 않을 수 있음을 암시하는 것으로 의미되지 않는다. 환언하면, 요소들 사이의 일부 연결들, 관계들 또는 연관들은 본 개시를 모호하게 하지 않기 위해 도면들에 도시되어 있지 않다. 추가적으로, 예시의 용이성을 위해, 요소들 사이의 다수의 연결들, 관계들 또는 연관들을 나타내기 위해 단일의 연결 요소가 사용될 수 있다. 예를 들어, 연결 요소가 신호들, 데이터 또는 명령어들(예를 들면, "소프트웨어 명령어들")의 통신을 나타내는 경우에, 본 기술 분야의 통상의 기술자라면 그러한 요소가, 통신을 수행하는 데에 필요할 수 있는, 하나 또는 다수의 신호 경로(예를 들면, 버스)를 나타낼 수 있다는 것을 이해할 것이다.
제1, 제2, 제3 등의 용어들이 다양한 컴포넌트들을 기술하는 데 사용되지만, 이러한 요소들이 이러한 용어들에 의해 제한되어서는 안된다. 제1, 제2, 제3 등의 용어들은 하나의 요소를 다른 요소와 구별하는 데만 사용된다. 예를 들어, 기술된 실시예들의 범위를 벗어나지 않으면서, 제1 접촉은 제2 접촉이라고 지칭될 수 있고, 유사하게 제2 접촉은 제1 접촉이라고 지칭될 수 있다. 제1 접촉과 제2 접촉은 둘 다 접촉이지만, 동일한 접촉은 아니다.
본원에 기술된 다양한 실시예들에 대한 설명에서 사용되는 전문용어는 단지 특정한 실시예들을 기술하기 위한 목적에서 포함되며, 제한하는 것으로 의도되지 않는다. 다양한 기술된 실시예들에 대한 설명 및 첨부된 청구항들에서 사용되는 바와 같이, 단수 형태들("a", "an" 및 "the")은 복수 형태들도 포함하는 것으로 의도되고, 문맥이 달리 명확히 나타내지 않는 한, "하나 이상" 또는 "적어도 하나"와 상호 교환 가능하게 사용될 수 있다. "및/또는"이라는 용어가, 본원에서 사용되는 바와 같이, 연관된 열거된 항목들 중 하나 이상의 항목의 임의의 및 모든 가능한 조합들을 지칭하고 포괄한다는 것이 또한 이해될 것이다. "포함한다(includes)", 포함하는(including), 포함한다(comprises)" 및/또는 "포함하는(comprising)"이라는 용어들이, 본 설명에서 사용될 때, 언급된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 명시하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 컴포넌트, 및/또는 이들의 그룹들의 존재 또는 추가를 배제하지 않는다는 것이 추가로 이해될 것이다.
본원에서 사용되는 바와 같이, "통신" 및 "통신하다"라는 용어들은 정보(또는, 예를 들어, 데이터, 신호들, 메시지들, 명령어들, 커맨드들 등에 의해 표현되는 정보)의 수신, 접수, 송신, 전달, 제공 등 중 적어도 하나를 지칭한다. 하나의 유닛(예를 들면, 디바이스, 시스템, 디바이스 또는 시스템의 컴포넌트, 이들의 조합들 등)이 다른 유닛과 통신한다는 것은 하나의 유닛이 직접 또는 간접적으로 다른 유닛으로부터 정보를 수신하고/하거나 다른 유닛으로 정보를 전송(예를 들면, 송신)할 수 있음을 의미한다. 이것은 본질적으로 유선 및/또는 무선인 직접 또는 간접 연결을 지칭할 수 있다. 추가적으로, 송신되는 정보가 제1 유닛과 제2 유닛 사이에서 수정, 프로세싱, 중계 및/또는 라우팅될 수 있을지라도 2 개의 유닛은 서로 통신하고 있을 수 있다. 예를 들어, 제1 유닛이 정보를 수동적으로 수신하고 정보를 제2 유닛으로 능동적으로 송신하지 않을지라도 제1 유닛은 제2 유닛과 통신하고 있을 수 있다. 다른 예로서, 적어도 하나의 중간 유닛(예를 들면, 제1 유닛과 제2 유닛 사이에 위치하는 제3 유닛)이 제1 유닛으로부터 수신되는 정보를 프로세싱하고 프로세싱된 정보를 제2 유닛으로 송신하는 경우 제1 유닛은 제2 유닛과 통신하고 있을 수 있다. 일부 실시예에서, 메시지는 데이터를 포함하는 네트워크 패킷(예를 들면, 데이터 패킷 등)을 지칭할 수 있다.
본원에서 사용되는 바와 같이, "~ 경우"라는 용어는, 선택적으로, 문맥에 따라 "~할 때", 또는 "~시에" 또는 "~라고 결정하는 것에 응답하여", "~을 검출하는 것에 응답하여" 등을 의미하는 것으로 해석된다. 유사하게, 문구 "~라고 결정되는 경우" 또는 "[언급된 조건 또는 이벤트]가 검출되는 경우"는, 선택적으로, 문맥에 따라, "~라고 결정할 시에", "~라고 결정하는 것에 응답하여", "[언급된 조건 또는 이벤트]를 검출할 시에", "[언급된 조건 또는 이벤트]를 검출하는 것에 응답하여" 등을 의미하는 것으로 해석된다. 또한, 본원에서 사용되는 바와 같이, "갖는다"(has, have), "갖는(having)" 등의 용어들은 개방형(open-ended) 용어들인 것으로 의도된다. 게다가, 문구 "~에 기초하여"는, 달리 명시적으로 언급되지 않는 한, "~에 적어도 부분적으로 기초하여"를 의미하는 것으로 의도된다.
그 예가 첨부 도면들에 예시되어 있는 실시예들에 대해 이제 상세하게 언급될 것이다. 이하의 상세한 설명에서, 다양한 기술된 실시예들에 대한 완전한 이해를 제공하기 위해 수많은 특정 세부 사항들이 기재된다. 그렇지만, 다양한 기술된 실시예들이 이러한 특정 세부 사항들이 없더라도 실시될 수 있다는 것이 본 기술 분야의 통상의 기술자에게 명백할 것이다. 다른 경우에, 실시예들의 양태들을 불필요하게 모호하게 하지 않기 위해 잘 알려진 방법들, 절차들, 컴포넌트들, 회로들, 및 네트워크들은 상세히 기술되지 않았다.
일반적 개관
일부 양태 및/또는 실시예에서, 본원에 기술하는 시스템, 방법 및 컴퓨터 프로그램 제품은 고충실도 데이터 기반 멀티모달 시뮬레이션 프로세스를 포함 및/또는 구현한다. 환경내 차량의 작동과 연관된 센서 데이터에 액세스된다. 차량은 차량의 작동 동안 환경을 통과하는 제1 경로를 횡단한다. 차량의 작동과 연관된 센서 데이터에 기초하여 합성 센서 데이터 및 시뮬레이션 환경이 생성된다. 시뮬레이션 환경은 실제 데이터에 기초하며 합성 환경적 조건(synthetic environment condition)을 시뮬레이션하도록 구성된다. 합성 센서 데이터를 사용하여 시뮬레이션 환경에서 합성 주행 시나리오(synthetic driving scenario)가 시뮬레이션된다. 합성 주행 시나리오를 시뮬레이션하는 것은, 시뮬레이션 환경에서 시뮬레이션 에이전트의 동작을 시뮬레이션하는 것과, 제1 경로와는 상이한 제2 경로를 따라 그리고 시뮬레이션 에이전트를 포함한 시뮬레이션으로 시뮬레이션 차량의 작동을 시뮬레이션하는 것을 포함한다. 시뮬레이션 에이전트는 예컨대 또 다른 자율 주행 차량일 수 있다. 합성 주행 시나리오를 시뮬레이션하는 것은 환경내 차량의 작동 동안 존재하는 하나 이상의 환경적 조건과는 상이한 0개 이상의 환경적 조건을 합성 주행 시나리오에서 시뮬레이션하는 것을 포함한다.
일부 실시예에서, 자율 주행 차량과 같은 차량은 차량 및 해당 환경에 대한 센서 데이터를 산출하는 다수의 센서를 포함할 수 있다. 본원에 기술하는 기술은 이 데이터 센서를 사용하여, 차량에 대한 합성 주행 시나리오를 나타내는 고충실도 합성 센서 데이터를 생성한다. 특히, 이미지 데이터, LiDAR(Light Detection And Ranging, 라이더), 및 차량의 센서에 의해 산출되는 기타 센서 데이터는 신규한 차량 궤적 및 관점(viewpoint)에 대한 합성 센서 데이터를 생성하기 위하여 보간되거나 다른 식으로 수정된다. 일부 예에서, 센서 데이터는 주행 시나리오(driving scenario)를 나타내는 합성 센서 데이터를 생성하기 위하여 새로운 대상체(예컨대, 차량 또는 보행자)를 나타내는 데이터 또는 기존의 대상체에 대한 새로운 행동(behavior) 또는 특성으로 증강된다. 기상 조건, 도로 조건, 및/또는 시각(time-of-day)과 같은 센서 데이터가 나타내는 환경적 조건도 합성 센서 데이터를 생성하기 위해 수정될 수 있다. 생성되면, 합성 센서 데이터는 가설적(또는 합성) 주행 시나리오를 통해 차량의 작동을 시뮬레이션하는 데 사용될 수 있다.
본원에 기술하는 시스템, 방법, 및 컴퓨터 프로그램 제품의 구현예에 의해, 신규한 주행 시나리오를 위해 실제 센서 데이터를 사용하여 고충실도 합성 센서 데이터를 생성함으로써 자율 주행 차량 시스템의 개발 및 테스트를 용이하게 하는 기술이 가능하다. 특히, 에지 케이스(예컨대, 안전이 중요한) 주행 시나리오에 대한 센서 데이터는 차량을 운전하여 이러한 데이터를 수집하는 비용이나 위험 없이 생성될 수 있다. 또한 실제 센서 데이터를 활용하여, 시뮬레이션으로 전체 시나리오를 재구성하는 복잡성을 피하고, 모델에 의존하여 센서 데이터를 근사화하는 시스템에 비해 더 높은 충실도를 달성한다. 본원에 기술하는 기술은 또한 이미지 및 라이더 방식과 같은 여러 방식으로 일관된 센서 데이터를 생성할 수 있으므로, 단일 방식으로 데이터를 생성하는 시스템에 비해 보다 사실적인 시뮬레이션이 가능하다.
이제 도 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), 라이더 센서들(202b), 레이더(RADAR, Radio Detection And Ranging) 센서들(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(traffic light data, 교통 신호등 데이터) 데이터를 생성한다. 일부 실시예에서, TLD 데이터를 생성하는 카메라(202a)는, 카메라(202a)가 가능한 한 많은 물리적 대상체들에 관한 이미지들을 생성하기 위해 넓은 시야를 갖는 하나 이상의 카메라(예를 들면, 광각 렌즈, 어안 렌즈, 대략 120도 이상의 시야각을 갖는 렌즈 등)를 포함할 수 있다는 점에서, 카메라들을 포함하는 본원에 기술된 다른 시스템들과 상이하다.
라이더 센서들(202b)은 버스(예를 들면, 도 3의 버스(302)와 동일하거나 유사한 버스)를 통해 통신 디바이스(202e), 자율 주행 차량 컴퓨트(202f), 및/또는 안전 제어기(202g)와 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 라이더 센서들(202b)은 광 방출기(예를 들면, 레이저 송신기)로부터 광을 송신하도록 구성된 시스템을 포함한다. 라이더 센서들(202b)에 의해 방출되는 광은 가시 스펙트럼 밖에 있는 광(예를 들면, 적외선 광 등)을 포함한다. 일부 실시예에서, 작동 동안, 라이더 센서들(202b)에 의해 방출되는 광은 물리적 대상체(예를 들면, 차량)와 조우하고 라이더 센서들(202b)로 다시 반사된다. 일부 구현예에서, 라이더 센서들(202b)에 의해 방출되는 광은 광이 조우하는 물리적 대상체들을 투과하지 않는다. 라이더 센서들(202b)은 광 방출기로부터 방출된 광이 물리적 대상체와 조우한 후에 그 광을 검출하는 적어도 하나의 광 검출기를 또한 포함한다. 일부 실시예에서, 라이더 센서들(202b)과 연관된 적어도 하나의 데이터 프로세싱 시스템은 라이더 센서들(202b)의 시야에 포함된 대상체들을 나타내는 이미지(예를 들면, 포인트 클라우드, 결합된 포인트 클라우드(combined point cloud) 등)를 생성한다. 일부 예들에서, 라이더 센서(202b)와 연관된 적어도 하나의 데이터 프로세싱 시스템은 물리적 대상체의 경계들, 물리적 대상체의 표면들(예를 들면, 표면들의 토폴로지) 등을 나타내는 이미지를 생성한다. 그러한 예에서, 이미지는 라이더 센서들(202b)의 시야 내의 물리적 대상체들의 경계들을 결정하는 데 사용된다.
레이더 센서들(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), 라이더 센서들(202b), 레이더 센서들(202c), 마이크로폰들(202d), 자율 주행 차량 컴퓨트(202f), 안전 제어기(202g), 및/또는 DBW 시스템(202h)과 통신하도록 구성된 적어도 하나의 디바이스를 포함한다. 예를 들어, 통신 디바이스(202e)는 도 3의 통신 인터페이스(314)와 동일하거나 유사한 디바이스를 포함할 수 있다. 일부 실시예에서, 통신 디바이스(202e)는 차량 대 차량(vehicle-to-vehicle, V2V) 통신 디바이스(예를 들면, 차량들 간의 데이터의 무선 통신을 가능하게 하는 디바이스)를 포함한다.
자율 주행 차량 컴퓨트(202f)는 카메라들(202a), 라이더 센서들(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), 라이더 센서들(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 circuitry)가 사용된다. 따라서, 본원에 기술된 실시예들은, 달리 명시적으로 언급되지 않는 한, 하드웨어 회로와 소프트웨어의 임의의 특정 조합으로 제한되지 않는다.
메모리(306) 및/또는 저장 컴포넌트(308)는 데이터 스토리지 또는 적어도 하나의 데이터 구조(예를 들면, 데이터베이스 등)를 포함한다. 디바이스(300)는 데이터 스토리지 또는 메모리(306) 또는 저장 컴포넌트(308) 내의 적어도 하나의 데이터 구조로부터 정보를 수신하는 것, 그에 정보를 저장하는 것, 그에게로 정보를 통신하는 것, 또는 그에 저장된 정보를 검색하는 것을 할 수 있다. 일부 예들에서, 정보는 네트워크 데이터, 입력 데이터, 출력 데이터, 또는 이들의 임의의 조합을 포함한다.
일부 실시예에서, 디바이스(300)는 메모리(306)에 그리고/또는 다른 디바이스(예를 들면, 디바이스(300)와 동일하거나 유사한 다른 디바이스)의 메모리에 저장된 소프트웨어 명령어들을 실행하도록 구성된다. 본원에서 사용되는 바와 같이, "모듈"이라는 용어는, 프로세서(304)에 의해 그리고/또는 다른 디바이스(예를 들면, 디바이스(300)와 동일하거나 유사한 다른 디바이스)의 프로세서에 의해 실행될 때, 디바이스(300)(예를 들면, 디바이스(300)의 적어도 하나의 컴포넌트)로 하여금 본원에 기술된 하나 이상의 프로세스를 수행하게 하는 메모리(306)에 그리고/또는 다른 디바이스의 메모리에 저장된 적어도 하나의 명령어를 지칭한다. 일부 실시예에서, 모듈은 소프트웨어, 펌웨어, 하드웨어 등으로 구현된다.
도 3에 예시된 컴포넌트들의 수 및 배열은 예로서 제공된다. 일부 실시예에서, 디바이스(300)는 도 3에 예시된 것보다, 추가적인 컴포넌트들, 더 적은 컴포넌트들, 상이한 컴포넌트들, 또는 상이하게 배열된 컴포넌트들을 포함할 수 있다. 추가적으로 또는 대안적으로, 디바이스(300)의 컴포넌트 세트(예를 들면, 하나 이상의 컴포넌트)는 디바이스(300)의 다른 컴포넌트 또는 다른 컴포넌트 세트에 의해 수행되는 것으로 기술된 하나 이상의 기능을 수행할 수 있다.
이제 도 4a를 참조하면, 자율 주행 차량 컴퓨트(400)("AV 스택"이라고도 함)의 예시적인 블록도가 예시된다. 예시하는 바와 같이, 자율 주행 차량 컴퓨트(400)는 인지 시스템(402)(때때로 인지 모듈이라고 지칭됨), 계획 시스템(planning system)(404)(때때로 계획 모듈이라고 지칭됨), 로컬화 시스템(localization systme)(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) 등에 의해), 또는 컴퓨터 소프트웨어 및 컴퓨터 하드웨어의 조합으로 구현된다. 또한, 일부 실시예에서 자율 주행 차량 컴퓨트(400)는 원격 시스템(예를 들어, 원격 AV 시스템(114)과 동일하거나 유사한 자율 주행 차량 시스템, 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템(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)은 적어도 하나의 라이더 센서(예를 들어, 라이더 센서(202b))에 의해 생성된 적어도 하나의 포인트 클라우드와 연관된 라이더 데이터를 수신한다. 특정 예에서, 로컬화 시스템(406)은 다수의 라이더 센서로부터 적어도 하나의 포인트 클라우드와 연관된 데이터를 수신하고 로컬화 시스템(406)은 포인트 클라우드 각각에 기초하여 결합된 포인트 클라우드를 생성한다. 이들 예에서, 로컬화 시스템(406)은 적어도 하나의 포인트 클라우드 또는 결합된 포인트 클라우드를 데이터베이스(410)에 저장된 영역의 2D 및/또는 3D 맵과 비교한다. 그런 다음, 로컬화 시스템(406)은 로컬화 시스템(406)이 적어도 하나의 포인트 클라우드 또는 결합된 포인트 클라우드를 맵과 비교하는 것에 기초하여 영역내 차량의 위치를 결정한다. 일부 실시예에서, 맵은 차량의 운행 이전에 생성된 영역의 결합된 포인트 클라우드를 포함한다. 일부 실시예에서, 맵은, 제한 없이, 도로 기하학적 특성들의 고정밀 맵, 도로망 연결 특성들을 기술하는 맵, 도로 물리적 특성들(예컨대, 교통 속력, 교통량, 차량 교통 차선과 자전거 타는 사람의 수, 차선 폭, 차선 교통 방향, 또는 차선 마커 유형 및 위치, 또는 이들의 조합)을 기술하는 맵, 및 도로 특징부, 예컨대, 횡단보도, 교통 표지판 또는 다양한 유형의 다른 주행 신호들의 공간적 위치들을 기술하는 맵을 포함한다. 일부 실시예에서, 맵은 인지 시스템에 의해 수신된 데이터에 기초하여 실시간으로 생성된다.
다른 예에서, 로컬화 시스템(406)은 GPS 수신기에 의해 생성된 GNSS(Global Navigation Satellite System) 데이터를 수신한다. 일부 예에서, 로컬화 시스템(406)은 영역내 차량의 위치와 연관된 GNSS 데이터를 수신하고 로컬화 시스템(406)은 영역내 차량의 위도 및 경도를 결정한다. 이러한 예에서, 로컬화 시스템(406)은 차량의 위도 및 경도에 기초하여 영역내 차량의 위치를 결정한다. 일부 실시예에서, 로컬화 시스템(406)은 차량의 위치와 연관된 데이터를 생성한다. 일부 예에서, 로컬화 시스템(406)은 로컬화 시스템(406)이 차량의 위치를 결정하는 것에 기초하여 차량의 위치와 연관된 데이터를 생성한다. 그러한 예에서, 차량의 위치와 연관된 데이터는 차량의 위치에 대응하는 하나 이상의 의미론적 특성(semantic properties)과 연관된 데이터를 포함한다.
일부 실시예에서, 제어 시스템(408)은 계획 시스템(404)으로부터 적어도 하나의 궤적과 연관된 데이터를 수신하고 제어 시스템(408)은 차량의 작동을 제어한다. 일부 예에서, 제어 시스템(408)은 계획 시스템(404)으로부터 적어도 하나의 궤적과 연관된 데이터를 수신하고 제어 시스템(408)은 파워트레인 제어 시스템(예를 들어, DBW 시스템(202h), 파워트레인 제어 시스템(204) 등), 조향 제어 시스템(예컨대, 조향 제어 시스템(206)), 및/또는 브레이크 시스템(예컨대, 브레이크 시스템(208))이 작동하게 하기 위하여 제어 신호를 생성 및 전송함으로써 차량의 작동을 제어한다. 일 예에서, 궤적이 좌회전을 포함하는 경우, 제어 시스템(408)은 조향 제어 시스템(206)이 차량(200)의 조향 각도를 조정하게 하여 차량(200)이 좌회전하게 하는 제어 신호를 전송한다. 추가적으로 또는 대안적으로, 제어 시스템(408)은 차량(200)의 다른 디바이스(예를 들어, 헤드라이트, 방향 지시등, 도어록, 윈드실드 와이퍼 등)로 하여금 상태를 변경하게 하는 제어 신호를 생성 및 전송한다.
일부 실시예에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 및/또는 제어 시스템(408)은 적어도 하나의 머신 러닝 모델(예를 들어, 적어도 하나의 멀티레이어 퍼셉트론(MLP, multilayer perceptron), 적어도 하나의 컨볼루션 신경망(CNN, convolutional neural network). 적어도 하나의 순환 신경망(RNN, recurrent neural network), 적어도 하나의 자동 인코더, 적어도 하나의 변환기 등)을 구현한다. 일부 예에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 및/또는 제어 시스템(408)은 적어도 하나의 머신 러닝 모델을, 단독으로 또는 전술한 시스템 중 하나 이상과의 조합으로 구현한다. 일부 예에서, 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406), 및/또는 제어 시스템(408)은 적어도 하나의 머신 러닝 모델을, 파이프라인(예를 들어, 환경내 위치한 하나 이상의 대상체를 식별하기 위한 파이프라인 등)의 일부로서 구현한다. 머신 러닝 모델의 구현예의 일례가 도 4b 내지 도 4d와 관련하여 이하에 포함된다.
데이터베이스(410)는 인지 시스템(402), 계획 시스템(404), 로컬화 시스템(406) 및/또는 제어 시스템(408)에 대해 송수신되거나 이들에 의해 업데이트되는 데이터를 저장한다. 일부 예들에서, 데이터베이스(410)는, 작동에 관련된 데이터 및/또는 소프트웨어를 저장하고 자율 주행 컴퓨트(400)의 적어도 하나의 시스템을 사용하는 저장 컴포넌트(예를 들어, 도 3의 저장 컴포넌트(308)와 동일하거나 유사한 저장 컴포넌트)를 포함한다. 일부 실시예에서, 데이터베이스(410)는 적어도 하나의 영역의 2D 및/또는 3D 맵과 연관된 데이터를 저장한다. 일부 예에서, 데이터베이스(410)는 도시의 일부, 다수의 도시의 다수의 부분, 다수의 도시, 카운티, 주(state), 국가(State)(예를 들어, 나라)의 2D 및/또는 3D 맵과 연관된 데이터를 저장한다. 이러한 예에서, 차량(예를 들어, 차량(102) 및/또는 차량(200)과 동일하거나 유사한 차량)은 하나 이상의 주행 가능한 영역(예를 들어, 단일 차선 도로, 다중 차선 도로, 고속도로, 뒷길, 오프로드 트레일 등)를 따라 주행할 수 있고, 적어도 하나의 라이더 센서(예를 들어, 라이더 센서(202b)와 동일하거나 유사한 라이더 센서)로 하여금 적어도 하나의 라이더 센서의 시야에 포함된 대상체를 나타내는 이미지와 연관된 데이터를 생성하게 할 수 있다.
일부 실시예에서, 데이터베이스(410)는 복수의 디바이스를 통해 구현될 수 있다. 일부 예에서, 데이터베이스(410)는 차량(예를 들어, 차량(102) 및/또는 차량(200)과 동일하거나 유사한 차량), 자율 주행 차량 시스템(예를 들어, 원격 AV 시스템(114)과 유사하거나 동일한 자율 주행 차량 시스템), 플릿 관리 시스템(예를 들어, 도 1의 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템), V2I 시스템(예를 들어, 도 1의 V2I 시스템(118)과 동일하거나 유사한 V2I 시스템) 등에 포함된다.
이제 도 4b를 참조하면, 머신 러닝 모델의 구현예의 도면이 예시된다. 보다 구체적으로, CNN(420)의 구현예의 도면이 예시된다. 예시를 위해, CNN(420)에 대한 다음 설명은 인지 시스템(402)에 의한 CNN(420)의 구현예에 관한 것이다. 그러나, 일부 예에서 CNN(420)(예를 들어, CNN(420)의 하나 이상의 컴포넌트)은 계획 시스템(404), 로컬화 시스템(406), 및/또는 제어 시스템(408)과 같이, 인지 시스템(402)과는 상이하거나 또는 이에 추가된 다른 시스템에 의해 구현되는 것이 이해될 것이다. CNN(420)은 여기에 설명하는 특정 피처(feature)를 포함하지만, 이들 피처는 예시의 목적으로 제공되며 본 개시내용을 제한하는 것을 의도하지 않는다.
CNN(420)은 제1 컨볼루션 레이어(422), 제2 컨볼루션 레이어(424), 및 컨볼루션 레이어(426)를 포함하는 복수의 컨볼루션 레이어를 포함한다. 일부 실시예에서, CNN(420)은 서브샘플링 레이어(428)(풀링 레이어(pooling layer)라고도 지칭됨)을 포함한다. 일부 실시예에서, 서브샘플링 레이어층(428) 및/또는 다른 서브샘플링 레이어는 업스트림 시스템의 차원 미만의 차원(즉, 노드의 수)를 갖는다. 업스트림 레이어의 차원 미만의 차원을 갖는 서브샘플링 레이어(428)에 의해, CNN(420)은 초기 입력 및/또는 업스트림 레이어의 출력과 연관된 데이터의 양을 통합함으로써, CNN(420)이 다운스트림 컨볼루션 연산을 수행하는 데 필요한 계산량을 감소시킨다. 추가적으로 또는 대안적으로, 서브샘플링 레이어(428)가 적어도 하나의 서브샘플링 함수(도 4c 및 4d와 관련하여 후술함)와 연관(예를 들어, 수행하도록 구성)됨으로써, CNN(420)은 초기 입력과 연관된 데이터의 양을 통합한다.
인지 시스템(402)은 인지 시스템(402)이 제1 컨볼루션 레이어(422), 제2 컨볼루션 레이어(424), 및 컨볼루션 레이어(426) 각각과 연관된 각각의 입력 및/또는 출력을 제공하는 것에 기초해서 컨볼루션 연산을 수행하여 각각의 출력을 생성한다. 일부 예에서, 인지 시스템(402)은 인지 시스템(402)이 제1 컨볼루션 레이어(422), 제2 컨볼루션 레이어(424), 및 컨볼루션 레이어(426)에 대한 입력으로서 데이터를 제공하는 것에 기초하여 CNN(420)을 구현한다. 이러한 예에서, 인지 시스템(402)은 인지 시스템(402)이 하나 이상의 상이한 시스템(예컨대, 차량(102)과 동일하거나 유사한 차량의 하나 이상의 시스템, 원격 AV 시스템(114)과 동일하거나 유사한 원격 AV 시스템, 플릿 관리 시스템(116)과 동일하거나 유사한 플릿 관리 시스템, V2I 시스템(118)과 동일하거나 유사한 V2I 시스템 등)로부터 데이터를 수신하는 것에 기초하여, 제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)은 인지 시스템(402)이 CNN(420)에 입력을 제공하기 전에 CNN(420)에 제공된 입력과 연관된 데이터를 프로세싱한다. 예를 들어, 인지 시스템(402)은 인지 시스템(402)이 센서 데이터(예를 들어, 이미지 데이터, 라이더 데이터, 레이더 데이터 등)를 정규화하는 것에 기초하여 CNN(420)에 제공된 입력과 연관된 데이터를 프로세싱한다.
일부 실시예에서, CNN(420)은 인지 시스템(402)이 각 컨볼루션 레이어와 연관된 컨볼루션 연산을 수행하는 것에 기초하여 출력을 생성한다. 일부 예에서, CNN(420)은 인지 시스템(402)이 각 컨볼루션 레이어 및 초기 입력과 연관된 컨볼루션 연산을 수행하는 것에 기초하여 출력을 생성한다. 일부 실시예에서, 인지 시스템(402)은 출력을 생성하고 출력을 완전 연결된 레이어(430)로서 제공한다. 일부 예에서, 인지 시스템(402)은 컨볼루션 레이어(426)의 출력을 완전 연결 레이어(430)로서 제공하고, 여기서 완전 연결 레이어(420)는 F1, F2 . . . FN으로 지칭되는 복수의 피처 값들과 연관된 데이터를 포함한다. 이 예에서, 컨볼루션 레이어(426)의 출력은 예측을 나타내는 복수의 출력 피처 값과 연관된 데이터를 포함한다.
일부 실시예에서, 인지 시스템(402)은 인지 시스템(402)이 복수의 예측 중에서 정확한 예측이 될 가장 높은 가능성과 연관되는 피처 값을 식별하는 것에 기초하여 복수의 예측 중에서 예측을 식별한다. 예를 들어, 완전 연결 레이어(430)가 피처 값 F1, F2, … FN을 포함하고, F1이 가장 큰 피처 값인 경우, 인지 시스템(402)은 F1과 연관된 예측을 복수의 예측 중에서 정확한 예측인 것으로 식별한다. 일부 실시예에서, 인지 시스템(402)은 예측을 생성하기 위해 CNN(420)을 트레이닝한다. 일부 예에서, 인지 시스템(402)은 인지 시스템(402)이 CNN(420)에 예측과 연관된 트레이닝 데이터를 제공하는 것에 기초하여 예측을 생성하기 위해 CNN(420)을 트레이닝한다.
이제 도 4c 및 도 4d를 참조하면, 인지 시스템(402)에 의한 CNN(440)의 예시적인 연산의 도면이 예시된다. 일부 실시예에서, CNN(440)(예를 들어, CNN(440)의 하나 이상의 컴포넌트)은 CNN(420)(예를 들어, CNN(420)의 하나 이상의 컴포넌트)(도 4b 참조)과 동일하거나 유사하다.
단계 450에서, 인지 시스템(402)은 이미지와 연관된 데이터를 CNN(440)에 대한 입력으로서 제공한다(단계 450). 예를 들어, 예시하는 바와 같이, 인지 시스템(402)은 이미지와 연관된 데이터를 CNN(440)에 제공하는데, 여기서 이미지는 2D 어레이에 저장된 값으로 표현되는 그레이스케일 이미지이다. 일부 실시예에서, 이미지와 연관된 데이터는 컬러 이미지와 연관된 데이터를 포함할 수도 있고, 컬러 이미지는 3D 어레이에 저장된 값으로 표현된다. 추가적으로 또는 대안적으로, 이미지와 연관된 데이터는 적외선 이미지, 레이더 이미지 등과 연관된 데이터를 포함할 수 있다.
단계 455에서, CNN(440)은 제1 컨볼루션 함수를 수행한다. 예를 들어, CNN(440)은 CNN(440)이 이미지를 나타내는 값을, 제1 컨볼루션 레이어(442)에 포함된 하나 이상의 뉴런(명시적으로 도시하지 않음)에 대한 입력으로서 제공하는 것에 기초하여 제1 컨볼루션 함수를 수행한다. 이 예에서, 이미지를 나타내는 값은 이미지의 영역(수용 필드(receptive field)라고도 함)을 나타내는 값에 대응할 수 있다. 일부 실시예에서, 각각의 뉴런은 필터(명시적으로 도시하지 않음)와 연관된다. 필터(커널이라고도 함)는 뉴런에 대한 입력으로서 제공되는 값에 사이즈가 대응하는 값의 어레이로 표현 가능하다. 일 예에서, 필터는 에지(예를 들어, 수평선, 수직선, 직선 등)를 식별하도록 구성될 수 있다. 연속적인 컨볼루션 레이어에서, 뉴런과 연관된 필터는 연속적으로 더 복잡한 패턴(예를 들어, 호, 대상체 등)을 식별하도록 구성될 수 있다.
일부 실시예에서, CNN(440)은 CNN(440)이 제1 컨볼루션 레이어(442)에 포함된 하나 이상의 뉴런의 각각에 대한 입력으로서 제공된 값을 하나 이상 뉴런의 각각에 대응하는 필터의 값과 곱하는 것에 기초하여 제1 컨볼루션 함수를 수행한다. 예를 들어, CNN(440)은 제1 컨볼루션 레이어(442)에 포함된 하나 이상의 뉴런 각각에 대한 입력으로서 제공된 값을 하나 이상의 뉴런 각각에 대응하는 필터의 값과 곱하여 출력으로서 단일 값 또는 값의 어레이를 생성할 수 있다. 일부 실시예에서, 제1 컨볼루션 레이어(442)의 뉴런의 집합적 출력이 컨볼루션 출력(convolved output)으로 지칭된다. 일부 실시예에서, 각각의 뉴런이 동일한 필터를 갖는 경우, 컨볼루션 출력은 피처 맵으로 지칭된다.
일부 실시예에서, CNN(440)은 제1 컨볼루션 레이어(442)의 각 뉴런의 출력을 다운스트림 레이어의 뉴런에 제공한다. 명확성을 위해, 업스트림 레이어는 데이터를 상이한 레이어(다운스트림 레이어라고 함)에 전송하는 레이어일 수 있다. 예를 들어, CNN(440)은 제1 컨볼루션 레이어(442)의 각 뉴런의 출력을 서브샘플링 레이어의 대응하는 뉴런에 제공할 수 있다. 일 예에서, CNN(440)은 제1 컨볼루션 레이어(442)의 각 뉴런의 출력을 제1 서브샘플링 레이어(444)의 대응하는 뉴런에 제공한다. 일부 실시예에서, CNN(440)은 다운스트림 레이어의 각 뉴런에 제공된 모든 값의 집계(aggregate)에 바이어스 값을 추가한다. 예를 들어, CNN(440)은 제1 서브샘플링 레이어(444)의 각 뉴런에 제공된 모든 값의 집계에 바이어스 값을 추가한다. 이러한 예에서, CNN(440)은 각 뉴런에 제공된 모든 값의 집계 및 제1 서브샘플링 레이어(444)의 각 뉴런과 연관된 활성화 함수에 기초하여 제1 서브샘플링 레이어(444)의 각 뉴런에 제공할 최종 값을 결정한다.
단계 460에서, CNN(440)은 제1 서브샘플링 함수를 수행한다. 예를 들어, CNN(440)은 CNN(440)이 제1 컨볼루션 레이어(442)에 의해 출력된 값을 제1 서브샘플링 레이어(444)의 대응하는 뉴런에 제공하는 것에 기초하여 제1 서브샘플링 함수를 수행할 수 있다. 일부 실시예에서, CNN(440)은 집계 함수에 기초하여 제1 서브샘플링 함수를 수행한다. 일 예에서, CNN(440)은 CNN(440)이 주어진 뉴런에 제공되는 값들 중에서 최대 입력을 결정하는 것에 기초하여 제1 서브샘플링 함수를 수행한다(최대 풀링 함수라고 지칭됨). 다른 예에서, CNN(440)은 CNN(440)이 주어진 뉴런에 제공되는 값들 중에서 평균 입력을 결정하는 것에 기초하여 제1 서브샘플링 함수를 수행한다(평균 풀링 함수라고 지칭됨). 일부 실시예에서, CNN(440)은 CNN(440)이 제1 서브샘플링 레이어(444)의 각각의 뉴런에 값을 제공하는 것에 기초하여 출력을 생성하는데, 출력은 서브샘플링 컨볼루션 출력(subsampled convolved output)이라고도 지칭된다.
단계 465에서, CNN(440)은 제2 컨볼루션 함수를 수행한다. 일부 실시예에서, CNN(440)은 전술한 CNN(440)이 제1 컨볼루션 함수를 수행하는 방식과 유사한 방식으로 제2 컨볼루션 함수를 수행한다. 일부 실시에서, CNN(440)은 CNN(440)이 제1 서브샘플링 레이어(444)에 의해 출력된 값을, 제2 컨볼루션 레이어(446)에 포함된 하나 이상의 뉴런(명시적으로 도시하지 않음)에 대한 입력으로서 제공하는 것에 기초하여 제2 컨볼루션 함수를 수행한다. 일부 실시예에서, 제2 컨볼루션 레이어(446)의 각각의 뉴런은 전술한 바와 같이 필터와 연관된다. 제2 컨볼루션 레이어(446)와 연관된 필터는 전술한 바와 같이 제1 컨볼루션 레이어(442)와 연관된 필터보다 더 복잡한 패턴을 식별하도록 구성될 수 있다.
일부 실시예에서, CNN(440)은 CNN(440)이 제2 컨볼루션 레이어(446)에 포함된 하나 이상의 뉴런의 각각에 대한 입력으로서 제공된 값을 하나 이상 뉴런의 각각에 대응하는 필터의 값과 곱하는 것에 기초하여 제2 컨볼루션 함수를 수행한다. 예를 들어, CNN(440)은 제2 컨볼루션 레이어(446)에 포함된 하나 이상의 뉴런 각각에 대한 입력으로서 제공된 값을 하나 이상의 뉴런 각각에 대응하는 필터의 값과 곱하여 출력으로서 단일 값 또는 값의 어레이를 생성할 수 있다.
일부 실시예에서, CNN(440)은 제2 컨볼루션 레이어(446)의 각 뉴런의 출력을 다운스트림 레이어의 뉴런에 제공한다. 예를 들어, CNN(440)은 제1 컨볼루션 레이어(442)의 각 뉴런의 출력을 서브샘플링 레이어의 대응하는 뉴런에 제공할 수 있다. 일 예에서, CNN(440)은 제2 컨볼루션 레이어(442)의 각 뉴런의 출력을 제2 서브샘플링 레이어(448)의 대응하는 뉴런에 제공한다. 일부 실시예에서, CNN(440)은 다운스트림 레이어의 각 뉴런에 제공된 모든 값의 집계에 바이어스 값을 추가한다. 예를 들어, CNN(440)은 제2 서브샘플링 레이어(448)의 각 뉴런에 제공된 모든 값의 집계에 바이어스 값을 추가한다. 이러한 예에서, CNN(440)은 각 뉴런에 제공된 모든 값의 집계 및 제2 서브샘플링 레이어(448)의 각 뉴런과 연관된 활성화 함수에 기초하여 제2 서브샘플링 레이어(448)의 각 뉴런에 제공할 최종 값을 결정한다.
단계 470에서, CNN(440)은 제2 서브샘플링 함수를 수행한다. 예를 들어, CNN(440)은 CNN(440)이 제2 컨볼루션 레이어(446)에 의해 출력된 값을 제2 서브샘플링 레이어(448)의 대응하는 뉴런에 제공하는 것에 기초하여 제2 서브샘플링 함수를 수행할 수 있다. 일부 실시예에서, CNN(440)은 CNN(440)이 집계 함수를 사용하는 것에 기초하여 제2 서브샘플링 함수를 수행한다. 일 예에서, CNN(440)은 전술한 CNN(440)이 주어진 뉴런에 제공되는 값들 중 최대 입력 또는 평균 입력을 결정하는 것에 기초하여 제1 서브샘플링 함수를 수행한다. 일부 실시예에서, CNN(440)은 CNN(440)이 제2 서브샘플링 레이어(448)의 각각의 뉴런에 값을 제공하는 것에 기초하여 출력을 생성한다.
단계 475에서, CNN(440)은 제2 컨볼루션 레이어(448)의 각 뉴런의 출력을 완전 연결 레이어(449)에 제공한다. 예를 들어, CNN(440)은 제2 서브샘플링 레이어(448)의 각 뉴런의 출력을 완전 연결 레이어(449)에 제공하여 완전 연결 레이어(449)가 출력을 생성하게 한다(예를 들어, 출력(480)을 제공하게 한다). 일부 실시예에서, 완전 연결 레이어(449)은 예측(분류라고도 지칭됨)과 연관된 출력을 생성하도록 구성된다. 예측은 CNN(440)에 입력으로서 제공된 이미지에 포함된 대상체가 대상체, 대상체의 세트 등을 포함한다는 표시(indication)를 포함할 수 있다. 일부 실시예에서, 인지 시스템(402)은 하나 이상의 동작을 수행하고 그리고/또는 예측과 연관된 데이터를 본원에 기술하는 상이한 시스템에 제공한다.
이제 도 4e를 참조하면, 적대적 생성 네트워크(GAN, generative adversarial network)(482)의 일례를 나타내는 도면이 도시된다. 예를 들어, GAN을 사용하여 실제 데이터를 수정하고 주어진 환경적 조건에 대한 시뮬레이션 데이터(simulated data)를 생성할 수 있다. 보다 실제적인 생성기를 트레이닝하기 위해 "판별기 상실(discriminator loss)"이 사용된다. 생성기(484)(예를 들어, CNN 생성기)는 랜덤 노이즈(486)를 처리하고 조건 임베딩(488)을 사용하여 생성된 센서 데이터(490)를 작성한다. 판별기(492)(예를 들어, CNN 판별기)는 생성된 센서 데이터(490) 및 실제 센서 데이터(494)(예를 들어, 라이더 및 레이더 센서로부터)를 사용하여, 판별기 상실(496)을 식별한다(예를 들어, 실제 또는 가짜 데이터를 식별).
이제 도 5a 내지 도 5c를 참조하면, 고충실도 데이터 기반의 멀티모달 시뮬레이션을 위한 프로세스의 자율 주행 차량 시뮬레이션 시스템(500)의 구현예의 도면이 예시된다. 일부 실시예에서, 자율 주행 차량 시뮬레이션 시스템(500)은 합성 주행 시나리오(synthetic driving scenario)의 생성에 사용될 수 있다. 시나리오는, 디바이스(300)를 트레이닝하기 위한 시뮬레이션을 지원하고 디바이스(300)가 환경에서 안전하게 작동하는 것을 가능하게 하기 위해 시뮬레이션 환경(simulated environment)에서 사용될 수 있다.
도 5a를 참조하면, 기준 센서 데이터(506)를 생성하기 위해 사전프로세서(preprocessor)(504)에 의해 실제 드라이브 로그(502)가 사용된다. 자율 주행 차량 시뮬레이션 시스템(500)의 목적은 프로세스(508)에 필요한 기준 센서 데이터(506)를 포함한 기본 데이터를 생성하는 것이다.
실제 드라이브 로그(502)는 예를 들어 차량(200)의 작동 동안 수집된 차량(200)에 대한 것과 같은, 라이더 데이터, 카메라 데이터, 및 포즈 데이터를 포함한다. 라이더 데이터는 라이더 센서(202b)가 펄스 광파를 주변 환경 및 환경내 대상체에 전달하는 데 사용된 후 환경내 대상체에 의해 반사된 광으로부터 검출기가 수집한 정보를 포함한다. 카메라 데이터는 차량(200)의 적어도 하나의 카메라(202a)로부터 인지 시스템(402)(및 자율 주행 시스템(202))에 의해 캡처된 이미지 데이터를 포함한다. 포즈 데이터는 차량(200)이 가리키는 방향(일반적으로 주변 환경내 대상체를 향함)을 포함하는 차량(200)에 대한 위치 및 방향 데이터를 포함한다.
사전프로세서(504)에 의해 생성되는 기준 센서 데이터(506)는 포인트 클라우드 데이터, 이미지 프레임, 및 소스 포즈 데이터를 포함한다. 전술한 바와 같이, 포인트 클라우드 데이터는 라이더 센서(202b)의 시야에 포함된 대상체를 나타내는 결합된 포인트 클라우드일 수 있다. 이미지 프레임은 각각의 차량에 대한, 차량(200)의 카메라(202a)에 의해 캡처된 이미지의 완전한 시퀀스를 포함한다. 소스 포즈 데이터는 차량(200)에 대한 포즈 정보를 포함한다. 포인트 클라우드 데이터, 이미지 프레임, 및 소스 포즈 데이터는 예를 들어 정보를 시간별로 매칭시키기 위해 기준 센서 데이터(506)에 상관될 수 있다. 이 때 이 시간 기반 정보는 프로세스(508)에 대한 입력으로서 기능할 수 있다.
도 5b를 참조하면, 기준 센서 데이터(506)를 사용하여 합성 드라이브 로그 데이터(540)를 생성하기 위한 프로세스(508)가 예시된다. 전술한 바와 같이, 기준 센서 데이터(506)는 포인트 클라우드 데이터, 이미지 프레임, 및 소스 포즈 데이터를 포함한다. 일부 실시예에서, 프로세스(508)는 보간기(514), 증강기(516), 및 환경 어댑터(518)를 포함하는 적어도 3개의 모듈을 사용한다. 모듈(514, 516, 518)이 도 5b에 별개의 모듈로 도시되고 있지만, 모듈들의 하나 이상의 피처가 병렬로 또는 동시에 발생할 수 있음을 알아야 한다. 예를 들어, 보간기(514)에 의해 수행되는 보간은 환경 어댑터(518)가 합성 환경적 조건(534)에 기초하여 합성 드라이브 로그 데이터(540)를 적응시키는 동안 발생할 수 있다. 이러한 프로세싱은 도 5b에 도시하지 않은 결합된 모듈에 의해 달성될 수 있다.
보간기(514)는 기준 센서 데이터(506) 및 차량 궤적 데이터(520)를 입력으로서 사용한다. 보간기(514)는 상이한 유형의 데이터 사이의 관계에 기초하여 기준 센서 데이터(506)에서 정보를 보간할 수 있다. 관계는 차량의 위치, 방향(또는 포즈) 간의 관계와 같은 공간적 관계, 및 시간적(시간 기반) 관계를 포함할 수 있다. 보간은 제1 경로의 적어도 일부(예를 들어, 차량이 이전에 이동한 경로)와 제2 경로의 적어도 일부(예를 들어, 프로세스(508)에서 합성 드라이브 로그 데이터(540)를 포함한 합성 센서 데이터를 생성하기 위한 대상) 사이에서 발생할 수 있다. 일부 실시예에서, 보간기(514)는 라이더 보간기(522)(예를 들어, 라이더 포인트 클라우드에서 인접 포인트들 사이를 보간함) 및 이미지 보간(524)(예를 들어, 연속적인 이미지 프레임들 사이를 보간함)을 포함한다.
증강기(516)는 3D 자산 스토어(526) 및 새로운 대상체 및 행동(528)으로부터의 정보를 사용하여 라이더 및 이미지를 증강한다. 증강은 차량에 의해 이미 알려져 있지 않은(또는 안전하게 달성 가능한/운행 가능한) 주행 시나리오를 생성할 필요가 있기 때문에 프로세스(508)의 주요 부분이다. 이들 추가 유형의 환경적 사례는 이들 유형의 사례가 발생할 수 있는 실세계 상황에 차량이 노출되기 전에 시뮬레이터가 차량(200)을 가르칠 수 있는 것이다. 일부 실시예에서, 증강기(516)는 라이더 증강기(530)(예를 들어, 라이더 포인트 클라우드에 포함하는 라이더 정보를 증강) 및 이미지 증강기(532)(예를 들어, 새로운 3D 대상체를 추가하기 위해 이미지 프레임을 증강)를 포함한다.
환경 어댑터(518)는 환경적 조건(534)에 기초하여 주행 시나리오를 적응시킨다. 환경적 조건은 예를 들어 기상 조건, 도로 조건, 시각(time-of-day) 등의 상이한 유형을 포함할 수 있다. 환경적 조건은 프로세스(508)에 의해 변경되는데, 그래서 합성 드라이브 로그 데이터(540)는 차량(200)이 아직 주행하지 않은 조건의 유형을 포함하도록 확장될 수 있다. 예를 들어 눈이 쌓여 이미 도로 상태가 상당히 악화된 상태에서 밤중에 눈보라 속을 주행하는 환경적 조건이 일례일 수 있다(예를 들어, 최근에 제설되었다면 미끄러울 수 있는 도로, 또는 아직 제설되지 않았다면 눈이 많이 쌓였거나 눈이 덮인 도로). 이러한 상황에서 도로를 따라 주차된 실제 자동차들은 눈으로 덮일 수 있으며, 눈으로 인한 반사율 변화로 인해 라이더 기능이 저하될 수 있다. 일부 실시예에서, 환경 어댑터(518)는 라이더 환경 어댑터(536)(예를 들어, 환경적 변화에 기초하여 라이더 정보를 적응시킴) 및 이미지 환경 어댑터(532)(예를 들어, 이미지에 눈(snow)을 추가하는 것과 같이 환경적 변화에 기초하여 이미지를 증강함)를 포함한다.
이제 도 5c를 참조하면, 프로세스(550)는 시뮬레이션된 자율 주행 차량 컴퓨트(552)에 합성 드라이브 로그 데이터(540)를 사용하는 방법을 보여준다. 구체적으로, 프로세스(508)에 의해 산출된 상이한 환경적 변화들을 나타내는 시나리오는 시뮬레이터에 의해 차량(200)에 대한 새로운 유형의 주행 시나리오를 시뮬레이션하는 데 사용될 수 있다. 이들 새로운 시나리오는 차량(200)이 실제 세계에서 유사한 조건들을 안전하게 운행하기 위한 준비로 생성 및 시뮬레이션될 수 있다. 일례는 차량(200)이 눈 조건이 없는 유사한 경로를 안전하게 운행하는 방법을 이미 알고 있다면, 차량에 눈 관련 조건을 도입하는 것이다.
이제 도 6을 참조하면, 도 6은 고충실도 데이터 기반의 멀티모달 시뮬레이션 프로세스(600)의 흐름도가 예시된다. 일부 실시예에서, 프로세스(600)와 관련하여 설명하는 단계들 중 하나 이상은 자율 주행 차량 시뮬레이션 시스템(500)에 의해 (예를 들어, 완전히, 부분적으로, 등등의 방식으로) 수행된다. 추가적으로 또는 대안적으로, 일부 실시예에서 프로세스(600)와 관련하여 설명한 하나 이상의 단계는 자율 차량 시뮬레이션 시스템(500)과 별도의 또는 이를 포함하는 다른 디바이스 또는 디바이스 그룹에 의해 (예를 들어, 완전히, 부분적으로, 등등의 방식으로) 수행된다.
602에서, 환경내 차량(예를 들어, 차량(200))의 작동과 연관된 센서 데이터에 액세스된다. 차량은 차량의 작동 동안 환경을 통과하는 제1 경로를 횡단한다. 예를 들어, 경로는 대상체(104a-104n) 주위의 경로일 수 있다. 센서 데이터는 예를 들어 차량의 적어도 하나의 센서(예를 들어, 라이더 센서(202b) 및 레이더 센서(202c))에 의해 산출된 이미지 데이터 및 라이더 데이터를 포함할 수 있으며, 여기서 합성 센서 데이터를 생성하는 것은 합성 주행 시나리오를 나타내는 이미지 데이터, 라이더 데이터, 및 레이더 데이터를 생성하는 것을 포함한다. 일부 실시예에서, 차량이 환경을 통해 제1 경로를 횡단할 때 환경내 차량의 작동과 연관된 센서 데이터에 액세스하는 것은, 적어도 하나의 포인트 클라우드와 연관된 라이더 데이터, 적어도 하나의 이미지와 연관된 이미지 데이터, 또는 적어도 하나의 레이더 포인트 클라우드와 연관된 레이더 데이터 중 적어도 하나에 액세스하는 것을 포함하고, 라이더 데이터, 이미지 데이터, 또는 레이더 데이터는 차량이 환경을 통과하는 제1 경로를 횡단할 때 환경내 차량의 작동 동안 생성된다. 예를 들어, 라이더 센서(202b) 및 레이더 센서(202c)에 의해 캡처된 데이터에 액세스될 수 있으며, 여기서 데이터는 영역(108)을 통해 차량(102)이 이동하는 시나리오를 나타낸다.
604에서, 차량(예컨대, 차량(200))의 작동과 연관된 센서 데이터에 기초하여 합성 센서 데이터 및 시뮬레이션 환경이 생성된다. 시뮬레이션 환경은 실제 데이터(예컨대, 복수의 차량(200)의 자율 주행 시스템(202)에 의해 수집됨)에 기초하며, 합성 환경적 조건을 시뮬레이션하도록 구성된다. 일부 실시예에서, 합성 센서 데이터를 생성하는 것은: 차량의 작동과 연관된 센서 데이터(예컨대, 차량(200)의 센서(202b 및 202c)로부터의 데이터)에 기초하여 합성 센서 데이터를 생성하는 것을 포함한다. 합성 주행 시나리오에 포함될 적어도 하나의 대상체(예컨대, 나무나 건물과 같은 정적 대상체, 보행자나 차량과 같은 동적 대상체)를 나타내는 데이터에 액세스된다. 대상체는 몇 가지 예를 들면 예컨대 다른 차량(주차 상태 또는 이동 상태) 또는 보행자일 수 있다. 차량의 작동과 연관된 센서 데이터는 자전거와 같이 이전에 시나리오에서 고려되지 않은 새로운 대상체와 같은 적어도 하나의 대상체를 나타내는 데이터로 증강된다. 일부 실시예에서, 적어도 하나의 대상체는 자전거 또는 움직이는 대상체와 같은 동적 대상체를 포함한다. 일부 실시예에서, 적어도 하나의 대상체를 나타내는 데이터는 동적 대상체에 대한 모션 데이터를 포함하고, 모션 데이터는 적어도 하나의 대상체에 대한 궤적 데이터 및 보행자에 대한 사지 움직임 데이터(limb movement data)를 포함한다(예컨대, 보행자가 팔을 흔들며 걷거나 단순히 걷고 다리를 움직이는 경우). 일부 실시예에서, 합성 센서 데이터를 생성하는 것은, 합성 주행 시나리오에 포함될 적어도 하나의 환경적 조건(예를 들어, 기상 조건, 도로 조건, 및 시각 중 하나 이상)의 표시를 수신하는 것을 포함한다. 센서 데이터(합성 주행 시나리오에 사용됨)는, 자전거의 존재, 눈(snow)의 존재, 또는 이전에 차량에 의해 고려되지 않은 조건의 존재에 기초하여 시나리오를 수정하는 것과 같이 적어도 하나의 환경적 조건에 기초하여 수정된다. 일부 실시예에서, 환경적 조건은 예를 들어 기상 조건 또는 시각의 변경 없이 차량(200)에 의해 고려될 대상체를 추가하여, 입력 드라이브 로그와 상이하지 않다. 예를 들어, 적어도 하나의 환경적 조건에 기초하여 센서 데이터를 수정하는 것은 적어도 하나의 환경적 조건에 기초하여 센서 데이터를 수정하도록 구성된 적어도 하나의 신경망(예를 들어, 적대적 생성 네트워크 또는 신경 스타일 전달)으로 센서 데이터를 프로세싱하는 것을 포함할 수 있다.
일부 실시예에서, 센서 데이터를 수정하는 것은 관계(예를 들어, 차량의 위치, 방향 또는 "포즈" 사이의 관계와 같은 공간적 관계, 또는 시간적 관계)에 기초하여 센서 데이터를 보간하는 것을 포함할 수 있다. 합성 센서 데이터를 생성하기 위해 제1 경로의 적어도 일부와 제2 경로의 적어도 일부 사이에 관계가 존재한다. 일례로, 제1 경로와 제2 경로는 경로의 구간(예컨대 겹치는 구간)에서 동일할 수 있다. 그러나 센서 데이터는 제2 경로가 제1 경로로부터 특정 거리를 두고 있는 경우와 같이 경로차에 기초하여 결정될 수 있다.
606에서, 합성 센서 데이터를 사용하여, 시뮬레이션 환경에서의 합성 주행 시나리오(synthetic driving scenario)가 시뮬레이션된다. 합성 주행 시나리오를 시뮬레이션하는 것은 환경내 차량의 작동 동안 존재하는 하나 이상의 환경적 조건과는 상이한 0개 이상의 환경적 조건을 합성 주행 시나리오에서 시뮬레이션하는 것을 포함한다. 합성 주행 시나리오는 예를 들어 상이한 조명 조건, 상이한 기상 조건, 및/또는 상이한 시각에서 만날 수 있는 대상체의 조합과 같이, 차량이 작동 중에 이제 만날 시나리오를 나타낼 수 있다.
608에서, 복수의 시뮬레이션 에이전트(simulated agent)의 동작이 시뮬레이션 환경에서 시뮬레이션된다. 시뮬레이션 에이전트는 예를 들어 시뮬레이션이 실행되고 있는 자율 주행 차량의 인스턴스, 또는 다른 자율 주행 차량일 수 있다. 시뮬레이션 환경은 환경 및/또는 기타 조건의 변화에 대한 반응으로 차량이 만들어내는 방향 및 속도의 변화를 포함하여 시뮬레이션 환경에서 차량이 어떻게 작동할 수 있는지 결정할 수 있다.
610에서, 제1 경로와는 상이한 제2 경로를 따라 복수의 시뮬레이션 에이전트를 포함한 시뮬레이션으로 시뮬레이션 차량의 작동이 시뮬레이션된다. 일부 실시예에서, 시뮬레이션 차량의 작동을 시뮬레이션하는 것은 예를 들어 시나리오의 변화에 직면할 때 차량이 방향 및/또는 속도를 변경할 수 있는지 확인할 기회가 있는 경우와 같이 복수의 시뮬레이션 에이전트와 동일한 경로를 사용하는 것을 포함한다. 일부 실시예에서, 시뮬레이션 차량의 작동을 시뮬레이션하는 것은, 예컨대 차량이 주차된 자동차 또는 보행자 주위에서 다른 경로를 취하는 경우 어떤 일이 발생하는지 확인하기 위해, 에이전트가 삽입되지 않은 상이한 경로를 사용하는 것을 포함한다.
일부 실시예에서, 프로세스(600)는 환경적 조건에 기초하여 대상체를 필터링하는 단계를 더 포함한다. 예를 들어, 센서 데이터에 기초하여 환경내 적어도 하나의 대상체가 검출된다. 적어도 하나의 대상체가 정적 대상체인지 동적 대상체인지가 결정된다. 적어도 하나의 대상체가 동적 대상체라는 결정에 응답하여, 적어도 하나의 대상체와 연관된 데이터가 센서 데이터로부터 필터링된다. 대상체는 눈으로 덮인 주차된 자동차, 또는 현재의 기상 조건 또는 시각 하에서 차량에 안전 문제를 일으킬 가능성이 없는 도로 옆에 있는(예컨대, 나무에 기대어 놓은) 정지 상태의 자전거일 수 있다.
전술한 설명에서, 본 개시내용의 양태 및 실시예는 구현마다 달라질 수 있는 다수의 특정 세부 사항들을 참조하여 기술되었다. 따라서, 상세한 설명 및 도면들은 제한적인 의미보다는 예시적인 의미로 간주되어야 한다. 본 발명의 범위의 유일한 독점적인 지표, 및 출원인이 본 발명의 범위이도록 의도한 것은, 본 출원에서 특정 형태로 나오는 일련의 청구항의 문언적 등가 범위이며, 그러한 청구항이 나오는 특정 형태는 임의의 후속 보정을 포함한다. 그러한 청구항들에 포함된 용어들에 대한 본원에서 명시적으로 기재된 임의의 정의들은 청구항들에서 사용되는 그러한 용어들의 의미를 결정한다. 추가적으로, 전술한 설명 및 이하의 청구항들에서 "더 포함하는"이라는 용어가 사용될 때, 이 문구에 뒤따르는 것은 추가적인 단계 또는 엔티티, 또는 이전에 언급된 단계 또는 엔티티의 서브단계/서브엔티티일 수 있다.

Claims (13)

  1. 방법에 있어서,
    적어도 하나의 프로세서를 사용하여, 환경내 차량의 작동과 연관된 센서 데이터에 액세스하는 단계 - 상기 차량은 상기 차량의 작동 동안 상기 환경을 통과하는 제1 경로를 횡단함 -;
    상기 적어도 하나의 프로세서를 사용하여, 상기 차량의 작동과 연관된 센서 데이터에 기초하여 합성 센서 데이터(synthetic sensor data) 및 시뮬레이션 환경(simulated environment)을 생성하는 단계 - 상기 시뮬레이션 환경은 실제 데이터에 기초하고 합성 환경적 조건(synthetic environment condition)을 시뮬레이션하도록 구성됨 -; 및
    상기 적어도 하나의 프로세서 및 상기 합성 센서 데이터를 사용하여, 상기 시뮬레이션 환경에서 합성 주행 시나리오(synthetic driving scenario)를 시뮬레이션하는 단계
    를 포함하고,
    상기 합성 주행 시나리오를 시뮬레이션하는 단계는:
    상기 시뮬레이션 환경에서 복수의 시뮬레이션 에이전트(simulated agent)의 동작을 시뮬레이션하는 단계, 및
    상기 제1 경로와는 상이한 제2 경로를 따라 그리고 상기 복수의 시뮬레이션 에이전트를 포함한 시뮬레이션으로 시뮬레이션 차량(simulated vehicle)의 작동을 시뮬레이션하는 단계를 포함하고,
    상기 합성 주행 시나리오를 시뮬레이션하는 단계는, 상기 환경내 상기 차량의 작동 동안 존재하는 하나 이상의 환경적 조건과는 상이한 0개 이상의 환경적 조건을 상기 합성 주행 시나리오에서 시뮬레이션하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 시뮬레이션 차량의 작동을 시뮬레이션하는 단계는 상기 복수의 시뮬레이션 에이전트와 동일한 경로를 사용하는 단계를 포함하는, 방법.
  3. 제1항에 있어서, 상기 시뮬레이션 차량의 작동을 시뮬레이션하는 단계는 에이전트가 삽입되지 않은 상이한 경로를 사용하는 단계를 포함하는, 방법.
  4. 제1항에 있어서, 상기 차량이 차량의 작동 동안 상기 환경을 통과하는 제1 경로를 횡단할 때에 상기 환경내 차량의 작동과 연관된 센서 데이터에 액세스하는 단계는:
    적어도 하나의 포인트 클라우드와 연관된 라이더(LiDAR, Light Detection And Ranging) 데이터, 적어도 하나의 이미지와 연관된 이미지 데이터, 또는 적어도 하나의 레이더(RADAR, Radio Detection And Ranging) 포인트 클라우드와 연관된 레이더 데이터 중 적어도 하나에 액세스하는 단계를 포함하고,
    상기 라이더 데이터, 이미지 데이터, 또는 레이더 데이터는 상기 차량이 상기 환경을 통과하는 제1 경로를 횡단할 때에 상기 환경내 차량의 작동 동안 생성되는, 방법.
  5. 제1항에 있어서, 상기 센서 데이터는 상기 차량의 적어도 하나의 센서에 의해 산출된 이미지 데이터와 라이더 데이터를 포함하고, 상기 합성 센서 데이터를 생성하는 것은, 상기 합성 주행 시나리오를 나타내는 이미지 데이터, 라이더 데이터, 및 레이더 데이터를 생성하는 단계를 포함하는, 방법.
  6. 제1항에 있어서, 상기 합성 센서 데이터를 생성하는 단계는:
    상기 차량의 작동과 연관된 센서 데이터에 기초하여 합성 센서 데이터를 생성하는 단계를 포함하고, 이 단계는:
    상기 합성 주행 시나리오에 포함될 적어도 하나의 대상체를 나타내는 데이터에 액세스하는 단계; 및
    상기 적어도 하나의 대상체를 나타내는 데이터로 상기 센서 데이터를 증강하는 단계를 포함하는, 방법.
  7. 제6항에 있어서, 상기 적어도 하나의 대상체는 동적 대상체를 포함하고, 상기 적어도 하나의 대상체를 나타내는 데이터는 상기 동적 대상체에 대한 모션 데이터를 포함하고, 상기 모션 데이터는 상기 적어도 하나의 대상체에 대한 궤적 데이터 및 보행자에 대한 사지 움직임 데이터를 포함하는, 방법.
  8. 제1항에 있어서, 상기 합성 센서 데이터를 생성하는 단계는:
    상기 합성 주행 시나리오에 포함될 적어도 하나의 환경적 조건의 표시(indication)를 수신하는 단계; 및
    적어도 하나의 환경적 조건에 기초하여 상기 센서 데이터를 수정하는 단계를 포함하는, 방법.
  9. 제8항에 있어서, 상기 적어도 하나의 환경적 조건에 기초하여 상기 센서 데이터를 수정하는 단계는:
    적어도 하나의 환경적 조건에 기초하여 상기 센서 데이터를 수정하도록 구성된 적어도 하나의 신경망으로 상기 센서 데이터를 프로세싱하는 단계를 포함하는, 방법.
  10. 제8항에 있어서, 상기 센서 데이터를 수정하는 단계는:
    상기 제1 경로의 적어도 일부와 상기 제2 경로의 적어도 일부 사이의 관계에 기초해 상기 센서 데이터를 보간하여 상기 합성 센서 데이터를 생성하는 단계를 포함하는, 방법.
  11. 제1항에 있어서,
    상기 센서 데이터에 기초하여, 상기 환경내 적어도 하나의 대상체를 검출하는 단계;
    적어도 하나의 대상체가 정적 대상체인지 동적 대상체인지를 결정하는 단계; 및
    적어도 하나의 대상체가 동적 대상체라는 결정에 응답하여, 상기 센서 데이터로부터 적어도 하나의 대상체와 연관된 데이터를 필터링하는 단계를 더 포함하는, 방법.
  12. 시스템에 있어서,
    적어도 하나의 프로세서; 및
    명령어를 저장한 적어도 하나의 컴퓨터 판독 가능 매체를 포함하고,
    상기 명령어는 상기 적어도 하나의 프로세서에 의해 실행될 때에, 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제11항 중 어느 한 항에 기재된 방법을 수행하게 하는, 시스템.
  13. 명령어를 저장한 적어도 하나의 비일시적 컴퓨터 판독 가능 매체에 있어서,
    상기 명령어는 상기 적어도 하나의 프로세서에 의해 실행될 때에, 상기 적어도 하나의 프로세서로 하여금 제1항 내지 제11항 중 어느 한 항에 기재된 방법을 수행하게 하는, 적어도 하나의 비일시적 컴퓨터 판독 가능 매체.
KR1020220011480A 2021-11-19 2022-01-26 고충실도 데이터 기반 멀티모달 시뮬레이션 KR20230074395A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/531,482 2021-11-19
US17/531,482 US20230159033A1 (en) 2021-11-19 2021-11-19 High fidelity data-driven multi-modal simulation

Publications (1)

Publication Number Publication Date
KR20230074395A true KR20230074395A (ko) 2023-05-30

Family

ID=86144553

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220011480A KR20230074395A (ko) 2021-11-19 2022-01-26 고충실도 데이터 기반 멀티모달 시뮬레이션

Country Status (5)

Country Link
US (1) US20230159033A1 (ko)
KR (1) KR20230074395A (ko)
CN (1) CN116149309A (ko)
DE (1) DE102022102187A1 (ko)
GB (1) GB2613038A (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11334762B1 (en) * 2017-09-07 2022-05-17 Aurora Operations, Inc. Method for image analysis

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10831202B1 (en) * 2017-09-01 2020-11-10 Zoox, Inc. Onboard use of scenario description language
US10782693B2 (en) * 2017-09-07 2020-09-22 Tusimple, Inc. Prediction-based system and method for trajectory planning of autonomous vehicles
US10739775B2 (en) * 2017-10-28 2020-08-11 Tusimple, Inc. System and method for real world autonomous vehicle trajectory simulation
US10860018B2 (en) * 2017-11-30 2020-12-08 Tusimple, Inc. System and method for generating simulated vehicles with configured behaviors for analyzing autonomous vehicle motion planners
CN109446690B (zh) * 2018-11-07 2024-01-23 安徽江淮汽车集团股份有限公司 Ldw功能检测方法
US20220266959A1 (en) * 2019-07-12 2022-08-25 Michael Skinner Personal watercraft and systems and apparatuses for use therewith
US11551414B2 (en) * 2019-12-02 2023-01-10 Woven Planet North America, Inc. Simulation architecture for on-vehicle testing and validation
CN111339649B (zh) * 2020-02-20 2022-02-08 西南交通大学 一种采集车辆轨迹数据的仿真方法、系统及设备
DE102020202650A1 (de) * 2020-03-02 2021-09-02 Psa Automobiles Sa Computerimplementiertes Verfahren zur Routenberechnung für ein autonom fahrendes Kraftfahrzeug, Verfahren zum Fahren eines autonom fahrenden Kraftfahrzeugs, Computerprogrammprodukt sowie Kraftfahrzeug
US11731652B2 (en) * 2020-12-15 2023-08-22 Woven Planet North America, Inc. Systems and methods for reactive agent simulation

Also Published As

Publication number Publication date
US20230159033A1 (en) 2023-05-25
DE102022102187A1 (de) 2023-05-25
CN116149309A (zh) 2023-05-23
GB2613038A (en) 2023-05-24

Similar Documents

Publication Publication Date Title
KR102628736B1 (ko) 딥 러닝 기반 카메라 교정
KR102595886B1 (ko) 매핑에서의 향상된 시맨틱 라벨링을 위한 멀티 모달 분할 네트워크
KR102657921B1 (ko) 융합된 이미지를 사용한 엔드 투 엔드 시스템 트레이닝
KR20230023530A (ko) 신뢰할 수 없는 맵 주석 입력들을 사용하는 센서 데이터의 시맨틱 주석 달기
KR20230120974A (ko) 레이더를 사용하여 로컬화 및 차선 검출을 위한 연석 기반의 특징 추출
KR20230051035A (ko) Radar와 lidar 융합을 사용한 대상체 검출
KR20230074395A (ko) 고충실도 데이터 기반 멀티모달 시뮬레이션
WO2023249857A1 (en) Semi-closed loop rollouts for data augmentation
KR102631148B1 (ko) 센서 데이터를 사용하여 자동으로 교통 신호 검출
US11400958B1 (en) Learning to identify safety-critical scenarios for an autonomous vehicle
US20240127579A1 (en) Identifying new classes of objects in environments of vehicles
US11967159B2 (en) Semantic annotation of sensor data with overlapping physical features
US20240078790A1 (en) Enriching later-in-time feature maps using earlier-in-time feature maps
US11675362B1 (en) Methods and systems for agent prioritization
US20230373529A1 (en) Safety filter for machine learning planners
US20240123996A1 (en) Methods and systems for traffic light labelling via motion inference
US20230209253A1 (en) Autonomous vehicle with microphone safety
US20240025452A1 (en) Corridor/homotopy scoring and validation
KR20230110145A (ko) 아이트래커 디바이스 및 라이다 포인트 클라이드 데이터를 사용하는 목표 결정
KR20230140517A (ko) 차량 루트 상의 대상체 횡단의 예측 및 제어
WO2024086056A1 (en) Identifying new classes of objects in environments of vehicles
KR20230167292A (ko) 융합된 합성 및 카메라 이미지들을 사용한 자율 주행 차량에서의 움직임 예측
WO2024081259A1 (en) Region of interest detection for image signal processing
WO2024081373A1 (en) Generating agents relative to a simulated autonomous vehicle
GB2619614A (en) Control parameter based search space for vehicle motion planning

Legal Events

Date Code Title Description
E902 Notification of reason for refusal