KR20230020934A - 효율적인 차량 크기 추정을 위한 시스템 및 방법 - Google Patents

효율적인 차량 크기 추정을 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20230020934A
KR20230020934A KR1020220097510A KR20220097510A KR20230020934A KR 20230020934 A KR20230020934 A KR 20230020934A KR 1020220097510 A KR1020220097510 A KR 1020220097510A KR 20220097510 A KR20220097510 A KR 20220097510A KR 20230020934 A KR20230020934 A KR 20230020934A
Authority
KR
South Korea
Prior art keywords
orientation
bounding box
points
processor
vehicle
Prior art date
Application number
KR1020220097510A
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 KR20230020934A publication Critical patent/KR20230020934A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/60Analysis of geometric attributes
    • G06T7/62Analysis of geometric attributes of area, perimeter, diameter or volume
    • 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/10Estimation 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 vehicle motion
    • 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
    • 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/02Systems using the reflection of electromagnetic waves other than radio waves
    • G01S17/06Systems determining position data of a target
    • 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/86Combinations of lidar systems with systems other than lidar, radar or sonar, e.g. with direction finders
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/232Non-hierarchical techniques
    • G06F18/2321Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
    • G06F18/23211Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with adaptive number of clusters
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/25Determination of region of interest [ROI] or a volume of interest [VOI]
    • 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
    • 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
    • B60W2530/00Input parameters relating to vehicle conditions or values, not covered by groups B60W2510/00 or B60W2520/00
    • B60W2530/201Dimensions of vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10028Range image; Depth image; 3D point clouds
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30236Traffic on road, railway or crossing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30248Vehicle exterior or interior
    • G06T2207/30252Vehicle exterior; Vicinity of vehicle
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/12Bounding box

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Mechanical Engineering (AREA)
  • Transportation (AREA)
  • Automation & Control Theory (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Electromagnetism (AREA)
  • Remote Sensing (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Geometry (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computer Graphics (AREA)
  • Traffic Control Systems (AREA)

Abstract

경계 상자 생성을 포함할 수 있는 효율적인 차량 크기 추정을 위한 방법들이 제공된다. 설명된 일부 방법들은 포인트 클러스터들의 볼록 껍질들에 대한 접선들에 따라 검출된 포인트 클러스터들을 둘러싼 경계 상자들을 결정하는 단계 및 포인트들과 경계 상자 측면들 사이의 거리들의 연속 함수들을 최소화하는 단계를 포함한다. 그에 따라, 최적합 경계 상자들이 더 효율적이고 신속하게 결정되는 것은 물론 더 정확하게 결정된다. 시스템들 및 컴퓨터 프로그램 제품들이 또한 제공된다.

Description

효율적인 차량 크기 추정을 위한 시스템 및 방법{SYSTEMS AND METHODS FOR EFFICIENT VEHICLE EXTENT ESTIMATION}
현재의 차량 크기(vehicle extent) 추정 방법들은 통상적으로 차량 외측 표면들을 둘러싸는 경계 상자들을 추정하기 위해, LiDAR(light detection and ranging) 측정들과 같은, 원격 감지 측정들을 이용한다. 경계 상자 배향 추정은 전형적으로 비선형 최적화(non-linear optimization) 방법들 및 격자 탐색(grid search) 접근 방식을 통해 달성된다. 그러나 이러한 접근 방식들은 단점들이 있다. 경계 상자들을 측정 포인트들에 형상 피팅(shape fitting)하는 보편화된 접근 방식은, 한 세트의 가능한 상자 배향들 각각에 대해, 경계 상자의 측면들로부터의 포인트들의 평균 거리를 최소화하는 것을 수반한다. 최적의 배향에 대응하는 둘러싼 경계 상자는 포인트 클러스터에 피팅된 형상을 구성한다. 그렇지만, 이 접근 방식은 계산적으로 복잡하고 느리며, 모든 측정 포인트들을 소팅하고 모든 배향에 대해 그들의 거리들을 재계산하는 것을 수반한다.
도 1은 자율 주행 시스템(autonomous system)의 하나 이상의 컴포넌트를 포함하는 차량이 구현될 수 있는 예시적인 환경이다.
도 2는 자율 주행 시스템을 포함하는 차량의 하나 이상의 시스템의 다이어그램이다.
도 3은 도 1 및 도 2의 하나 이상의 디바이스 및/또는 하나 이상의 시스템의 컴포넌트들의 다이어그램이다.
도 4는 자율 주행 시스템의 특정 컴포넌트들의 다이어그램이다.
도 5는 효율적인 차량 크기 추정을 위한 프로세스의 구현의 다이어그램이다.
도 6a 내지 도 6g는 효율적인 차량 크기 추정을 위한 프로세스의 구현에 대한 보다 상세한 다이어그램들이다.
도 7 내지 도 10은 효율적인 차량 크기 추정을 위한 프로세스들의 플로차트들이다.
도 11은 이상(outlying) 데이터 포인트들의 예시적인 거부를 개념적으로 예시한다.
이하의 설명에서는, 설명 목적으로 본 개시내용에 대한 완전한 이해를 제공하기 위해 다수의 특정 세부 사항들이 제시된다. 그렇지만, 본 개시내용에 의해 설명되는 실시예들이 이러한 특정 세부 사항들이 없더라도 실시될 수 있다는 것이 명백할 것이다. 일부 경우에, 본 개시내용의 양태들을 불필요하게 모호하게 하는 것을 피하기 위해 잘 알려진 구조들 및 디바이스들은 블록 다이어그램 형태로 예시되어 있다.
시스템들, 디바이스들, 모듈들, 명령어 블록들, 데이터 요소들 등을 나타내는 것들과 같은, 개략적인 요소들의 특정 배열들 또는 순서들이 설명의 편의를 위해 도면들에 예시되어 있다. 그렇지만, 본 기술 분야의 통상의 기술자라면 도면들에서의 개략적인 요소들의 특정 순서 또는 배열이, 그러한 것으로 명시적으로 설명되지 않는 한, 프로세스들의 특정 프로세싱 순서 또는 시퀀스, 또는 프로세스들의 분리가 필요하다는 것을 암시하는 것으로 의미되지 않는다는 것을 이해할 것이다. 게다가, 도면에 개략적인 요소를 포함시키는 것은, 그러한 것으로 명시적으로 설명되지 않는 한, 모든 실시예들에서 그러한 요소가 필요하다는 것 또는 일부 실시예들에서 그러한 요소에 의해 표현되는 특징들이 다른 요소들에 포함되지 않거나 다른 요소들과 결합되지 않을 수 있다는 것을 암시하는 것으로 의미되지 않는다.
게다가, 2 개 이상의 다른 개략적인 요소 간의 또는 이들 사이의 연결, 관계 또는 연관을 예시하기 위해 실선들 또는 파선들 또는 화살표들과 같은 연결 요소들이 도면들에서 사용되는 경우에, 임의의 그러한 연결 요소들의 부재는 연결, 관계 또는 연관이 존재하지 않을 수 있다는 것을 암시하는 것으로 의미되지 않는다. 환언하면, 본 개시내용을 모호하게 하지 않기 위해 요소들 사이의 일부 연결들, 관계들 또는 연관들이 도면들에 예시되어 있지 않다. 추가적으로, 예시의 편의를 위해, 요소들 사이의 다수의 연결들, 관계들 또는 연관들을 나타내기 위해 단일의 연결 요소가 사용될 수 있다. 예를 들어, 연결 요소가 신호들, 데이터 또는 명령어들(예를 들면, "소프트웨어 명령어들")의 통신을 나타내는 경우에, 본 기술 분야의 통상의 기술자라면 그러한 요소가, 통신을 수행하기 위해 필요하게 될 수 있는, 하나 또는 다수의 신호 경로(예를 들면, 버스)를 나타낼 수 있다는 것을 이해할 것이다.
제1, 제2, 제3 등의 용어들이 다양한 요소들을 설명하는 데 사용되지만, 이러한 요소들이 이러한 용어들에 의해 제한되어서는 안 된다. 제1, 제2, 제3 등의 용어들은 하나의 요소를 다른 요소와 구별하는 데만 사용된다. 예를 들어, 설명된 실시예들의 범위를 벗어나지 않으면서, 제1 접촉은 제2 접촉이라고 지칭될 수 있고, 유사하게 제2 접촉은 제1 접촉이라고 지칭될 수 있다. 제1 접촉과 제2 접촉은 양쪽 모두 접촉이지만, 동일한 접촉은 아니다.
본 명세서에서의 다양한 설명된 실시예들에 대한 설명에서 사용되는 전문용어는 특정 실시예들을 설명하기 위해서만 포함되어 있으며, 제한하는 것으로 의도되지 않는다. 다양한 설명된 실시예들에 대한 설명 및 첨부된 청구항들에서 사용되는 바와 같이, 단수 형태들("한", "어떤" 및 "그")은 복수 형태들도 포함하는 것으로 의도되고, 문맥이 달리 명확히 나타내지 않는 한, "하나 이상" 또는 "적어도 하나"와 상호 교환 가능하게 사용될 수 있다. "및/또는"이라는 용어가, 본 명세서에서 사용되는 바와 같이, 연관된 열거된 항목들 중 하나 이상의 항목의 모든 가능한 조합들을 지칭하고 포괄한다는 것이 또한 이해될 것이다. "포함한다(includes)", 포함하는(including), 포함한다(comprises)" 및/또는 "포함하는(comprising)"이라는 용어들이, 본 설명에서 사용될 때, 언급된 특징들, 정수들, 단계들, 동작들, 요소들, 및/또는 컴포넌트들의 존재를 명시하지만, 하나 이상의 다른 특징, 정수, 단계, 동작, 요소, 컴포넌트, 및/또는 이들의 그룹의 존재 또는 추가를 배제하지 않는다는 것이 추가로 이해될 것이다.
본 명세서에서 사용되는 바와 같이, "통신" 및 "통신하다"라는 용어들은 정보(또는, 예를 들어, 데이터, 신호들, 메시지들, 명령어들, 커맨드들 등에 의해 표현되는 정보)의 수신, 접수, 송신, 전달, 제공 등 중 적어도 하나를 지칭한다. 하나의 유닛(예를 들면, 디바이스, 시스템, 디바이스 또는 시스템의 컴포넌트, 이들의 조합들 등)이 다른 유닛과 통신한다는 것은 하나의 유닛이 직접적으로 또는 간접적으로 다른 유닛으로부터 정보를 수신하고/하거나 다른 유닛으로 정보를 전송(예를 들면, 송신)할 수 있다는 것을 의미한다. 이것은 본질적으로 유선 및/또는 무선인 직접 또는 간접 연결을 지칭할 수 있다. 추가적으로, 송신되는 정보가 제1 유닛과 제2 유닛 사이에서 수정, 프로세싱, 중계 및/또는 라우팅될 수 있을지라도 2 개의 유닛은 서로 통신하고 있을 수 있다. 예를 들어, 제1 유닛이 정보를 수동적으로 수신하고 정보를 제2 유닛으로 능동적으로 송신하지 않을지라도 제1 유닛은 제2 유닛과 통신하고 있을 수 있다. 다른 예로서, 적어도 하나의 중간 유닛(예를 들면, 제1 유닛과 제2 유닛 사이에 위치하는 제3 유닛)이 제1 유닛으로부터 수신되는 정보를 프로세싱하고 프로세싱된 정보를 제2 유닛으로 송신하는 경우 제1 유닛은 제2 유닛과 통신하고 있을 수 있다. 일부 실시예들에서, 메시지는 데이터를 포함하는 네트워크 패킷(예를 들면, 데이터 패킷 등)을 지칭할 수 있다.
본 명세서에서 사용되는 바와 같이, "~ 경우"라는 용어는, 선택적으로, 문맥에 따라 "~할 때", 또는 "~시에" 또는 "~라고 결정하는 것에 응답하여", "~을 검출하는 것에 응답하여" 등을 의미하는 것으로 해석된다. 유사하게, 문구 "~라고 결정되는 경우" 또는 "[언급된 조건 또는 이벤트]가 검출되는 경우"는, 선택적으로, 문맥에 따라, "~라고 결정할 시에", "~라고 결정하는 것에 응답하여", "[언급된 조건 또는 이벤트]를 검출할 시에", "[언급된 조건 또는 이벤트]를 검출하는 것에 응답하여" 등을 의미하는 것으로 해석된다. 또한, 본 명세서에서 사용되는 바와 같이, "갖는다(has, have)", "갖는(having)" 등의 용어들은 개방형(open-ended) 용어들인 것으로 의도된다. 게다가, 문구 "~에 기초하여"는, 달리 명시적으로 언급되지 않는 한, "~에 적어도 부분적으로 기초하여"를 의미하는 것으로 의도된다.
그 예가 첨부 도면들에 예시되어 있는 실시예들에 대해 이제 상세하게 언급될 것이다. 이하의 상세한 설명에서, 다양한 설명된 실시예들에 대한 완전한 이해를 제공하기 위해 수많은 특정 세부 사항들이 제시된다. 그렇지만, 다양한 설명된 실시예들이 이러한 특정 세부 사항들이 없더라도 실시될 수 있다는 것이 본 기술 분야의 통상의 기술자에게 명백할 것이다. 다른 경우에, 실시예들의 양태들을 불필요하게 모호하게 하지 않기 위해 잘 알려진 방법들, 절차들, 컴포넌트들, 회로들, 및 네트워크들은 상세하게 설명되지 않았다.
일부 양태들 및/또는 실시예들에서, 본 명세서에서 설명되는 시스템들, 방법들, 및 컴퓨터 프로그램 제품들은 경계 상자 생성을 포함한 효율적인 차량 크기 추정을 포함하고/하거나 구현한다. 측정 포인트들의 볼록 껍질들은 하나 이상의 포인트가 경계 상자의 한쪽 측면에 가장 가까운 것으로부터 다른 쪽 측면에 가장 가까운 것으로 전환되는 경계 상자 배향들을 식별하는 데 이용된다. 이러한 배향들 사이에서, 경계 상자의 측면들과 포인트들 사이의 국소 최소 거리(local minimum distance)를 산출하는 후보 배향이 결정된다. 전역 최솟값(global minimum)에 대응하는 배향은 이러한 국소 최소 배향들 중에서 선택되어, 측정 포인트들에 가장 적합한 경계 상자 배향을 생성한다.
본 명세서에서 설명되는 시스템들, 방법들, 및 컴퓨터 프로그램 제품들의 구현에 의해, 본 개시내용의 실시예들의 기술들은 이전 시스템들 및 방법들로 가능한 것보다 더 효율적인 차량 크기 추정을 달성한다. 본 개시내용의 실시예들의 프로세스들은 각각의 후보 경계 상자 배향에 대한 포인트 위치들을 재소팅 및 재계산하기보다는 볼록 껍질로부터 경계 상자들을 결정하는 것을 가능하게 하고, 연속적으로 후보 배향들을 최적화하며, 따라서 더 적은 계산 리소스들을 사용한다. 그러한 프로세스들은 또한 모든 측정 포인트들을 활용하고, 따라서 더 높은 헤딩 정확도를 산출하는 것에 의해 다운샘플링으로 인한 정확도 손실을 감소시킨다.
이제 도 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)은 간선 도로(highway), 주간 간선 도로(interstate highway), 공원 도로, 도시 거리 등과 같은 적어도 하나의 명명된 주요 도로(thoroughfare)(본 명세서에서 "도로"라고 지칭됨)를 포함한다. 추가적으로 또는 대안적으로, 일부 예들에서, 구역(108)은 진입로(driveway), 주차장의 섹션, 공터 및/또는 미개발 부지의 섹션, 비포장 경로 등과 같은 적어도 하나의 명명되지 않은 도로를 포함한다. 일부 실시예들에서, 도로는 적어도 하나의 차선(예를 들면, 차량(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)은 자율 주행 시스템, 자율 주행 차량 컴퓨트(autonomous vehicle compute), 자율 주행 차량 컴퓨트에 의해 구현되는 소프트웨어 등을 포함한, 차량의 컴포넌트들의 일부 또는 전부의 설치에 관여하고 있다. 일부 실시예들에서, 원격 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 국제 표준 J3016: 온로드 자동차 자동 운전 시스템에 관한 용어의 분류 및 정의(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)은 본 명세서에서 설명된 환경(100)과 연관된 데이터를 생성하기 위해 자율 주행 시스템(202)에 포함된 하나 이상의 디바이스를 사용한다. 자율 주행 시스템(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 센서들(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)의 시스템의 적어도 하나의 디바이스), 차량(200)의 적어도 하나의 디바이스(예를 들면, 차량(200)의 시스템의 적어도 하나의 디바이스), 및/또는 네트워크(112)의 하나 이상의 디바이스(예를 들면, 네트워크(112)의 시스템의 하나 이상의 디바이스)에 대응한다. 일부 실시예들에서, 차량들(102)의 하나 이상의 디바이스(예를 들면, 차량들(102)의 시스템의 하나 이상의 디바이스), 차량(200)의 하나 이상의 디바이스(예를 들면, 차량(200)의 시스템의 하나 이상의 디바이스) 및/또는 네트워크(112)의 하나 이상의 디바이스(예를 들면, 네트워크(112)의 시스템의 하나 이상의 디바이스)는 적어도 하나의 디바이스(300) 및/또는 디바이스(300)의 적어도 하나의 컴포넌트를 포함한다. 도 3에 도시된 바와 같이, 디바이스(300)는 버스(302), 프로세서(304), 메모리(306), 저장 컴포넌트(308), 입력 인터페이스(310), 출력 인터페이스(312), 및 통신 인터페이스(314)를 포함한다.
버스(302)는 디바이스(300)의 컴포넌트들 간의 통신을 가능하게 하는 컴포넌트를 포함한다. 일부 경우에, 프로세서(304)는 적어도 하나의 기능을 수행하도록 프로그래밍될 수 있는, 프로세서(예를 들면, 중앙 프로세싱 유닛(CPU), 그래픽 프로세싱 유닛(GPU), 가속 프로세싱 유닛(APU) 등), 마이크로폰, 디지털 신호 프로세서(DSP), 및/또는 임의의 프로세싱 컴포넌트(예를 들면, 필드 프로그래머블 게이트 어레이(FPGA), 주문형 집적 회로(ASIC) 등)를 포함한다. 메모리(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(light-emitting diode) 등)를 포함한다.
일부 실시예들에서, 통신 인터페이스(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)의 다른 컴포넌트 또는 다른 컴포넌트 세트에 의해 수행되는 것으로 설명된 하나 이상의 기능을 수행할 수 있다.
이제 도 4를 참조하면, 자율 주행 차량 컴퓨트(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들), 필드 프로그래머블 게이트 어레이들(FPGA들) 등), 또는 컴퓨터 소프트웨어와 컴퓨터 하드웨어의 조합들로 구현된다. 일부 실시예들에서, 자율 주행 차량 컴퓨트(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 시스템) 등에 포함될 수 있다.
이제 도 5를 참조하면, 효율적인 차량 크기 추정을 위한 프로세스의 구현(500)의 다이어그램이 예시되어 있다. 일부 실시예들에서, 이 구현은 인지 시스템(402)을 포함한다. 도 5에 도시된 바와 같이, 인지 시스템(402)은 인근 차량 또는 다른 대상체(104n)를 나타내는, 예컨대, LiDAR 센서들(202b)로부터의 포인트 클러스터와 연관된 데이터를 수신(502)할 수 있다. 인지 시스템(402)은 포인트 클러스터(502)를 둘러싸기 위해 대응하는 경계 상자를 생성(504)한다. 이어서, 인지 시스템(402)은, 각각의 포인트가 어느 경계 상자 측면에 가장 가까운지에 따라, 수신된 포인트들을 2개의 그룹으로 소팅(506)한다. 이어서, 인지 시스템(402)은 이러한 그룹들 각각에 대해 볼록 껍질을 생성(508)하고, 2 개의 소팅된 포인트 그룹이 일정하게 유지되는 배향(θ) 간격들을 결정(510)한다. 예를 들어, 인지 시스템(402)은 모든 포인트가 동일한 경계 상자 측면에 가장 가깝게 유지되는 해당 배향 범위들을 결정하기 위해 상이한 경계 상자 배향을 통해 스위프한다. 도 5의 최좌측 테이블에 나와 있는 바와 같이, 한 포인트가 하나의 측면에 가장 가까운 것으로부터 상이한 측면에 가장 가까운 것으로 전환되는 해당 배향들(θ1, θ2, θ3, ...)은 하나의 그러한 간격의 끝과 다음 그러한 간격의 시작을 표시한다. 이어서 인지 시스템(402)은 국소 최소 배향들, 또는 포인트 클러스터가 배향들의 최근접 경계 상자 측면들로부터 최소 평균 거리에 있는 각각의 배향 간격 내의 배향들을 결정한다(512). 이것은 각각의 배향 간격에 대한 국소 최소 배향 θLM1, θLM2, θLM3, ...을 생성한다. 이어서 전역 최소 배향 θGM은 국소 최소 배향들 θLM1, θLM2, θLM3, ... 중에서 선택(514)되고, 단순히 최저 평균 포인트 거리를 갖는 국소 최소 배향 θLM1, θLM2, θLM3, ...이다. 이 배향 θGM은 최적합(best-fit) 경계 상자의 배향으로서 간주되며, 이 배향 θGM을 갖는 경계 상자는 그에 따라 이 포인트 클러스터를 둘러싸도록 구성될 수 있다.
도 6a 내지 도 6g는 도 5의 구현을 더 상세히 예시하는 다이어그램들이다. 이제 도 6a를 참조하면, 자율 주행 차량(102)은 차량(104)과 같은 인근 대상체의 적어도 하나의 검출된 부분의 위치 값들에 대응하는 이산 포인트들(604)을 검출하기 위해 하나 이상의 LiDAR 센서(202b)를 이용할 수 있다. 특정 시간 간격에서 차량(104)으로부터 검출되는 포인트들(604)의 클러스터는 포인트 클라우드(602)라고 지칭될 수 있다. 포인트 클라우드(602)는 인지 시스템(402)에 의해 수신될 데이터로서 송신된다. 포인트들(604)은 임의의 원하는 위치 정보를 전달할 수 있다. 예를 들어, 포인트들(604)은 임의의 하나 이상의 센서에 의해 결정되는 임의의 2차원 좌표들일 수 있고, 하나 이상의 센서가 배치되는 차량, 예를 들면, 자율 주행 차량(102)과 연관된 기준 점 또는 기준 축을 기준으로 측정될 수 있다. 추가적으로, 차량(104)의 하나 이상의 부분(들)에 대응하는 포인트들(604)의 클러스터가 LiDAR 측정치들의 클러스터인 것으로 여기에서 설명되지만, 포인트들(604)의 클러스터가, 레이더 측정치들, 가시 광 또는 적외선 이미지들과 같은 하나 이상의 이미지로부터 결정되는 위치 값들, 초음파 센서 디바이스(도면들에 별도로 도시되지 않음)로부터의 초음파 측정치들 등과 같은, 임의의 소스 또는 소스들의 조합으로부터 획득되는 위치 정보를 포함할 수 있다는 점에 유의한다.
도 6b를 참조하면, 인지 시스템(402)은 포인트 클라우드(602)의 포인트들(604)을 둘러싸는 초기 경계 상자를 생성한다. 상세하게는, 시스템(402)은 먼저 좌표계에 대해 각도 θ로 배향되는 측면들 LA 및 LB를 갖는 경계 상자(608)를 생성한다. 다양한 예들에서, 각도 θ는, 자율 주행 차량(102)과 연관된 좌표계, 예를 들어, 자율 주행 차량(102)의 중심 축에 대응할 수 있는 기준(610)에 기초한 좌표계와 같은, 임의의 적합한 좌표계를 기준으로 정의된다. 여기서, 각도 θ는, 예를 들면, 0° ≤ θ ≤ 90°로부터 임의로 선택될 수 있고, LA 및 LB는 외측 포인트들(604)에 접하도록 위치될 수 있다. 이러한 방식으로, 초기 경계 상자(608)는 치수들을 갖게 그리고 각각의 포인트(604)를 둘러싸도록 배향되게 생성된다.
도 6b가 경계 상자, 예를 들면, 직사각형의 생성을 예시하지만, 본 개시내용의 실시예들이 임의의 포인트 세트를 둘러쌀 수 있거나 실질적으로 둘러쌀 수 있는 임의의 경계 형상의 생성을 고려한다는 점에 유의한다. 예를 들어, 생성되는 경계 인클로저(bounding enclosure)는 정사각형, 직사각형, 임의의 다각형 등일 수 있다.
도 6c를 참조하면, 인지 시스템(402)은 포인트들(604)을 2 개의 세트로 소팅한다. 하나의 세트는 측면 LB보다 측면 LA에 더 가까운 해당 포인트들(604)을 포함하고, 다른 세트는 측면 LA보다 측면 LB에 더 가까운 해당 포인트들(604)을 포함한다. 예를 들어, LA와 LB 사이의 끼인각을 이등분하고 기준(610)에 대해 각도 θD를 형성하는 라인 LD의 경우, 인지 시스템(402)은 포인트들(604)을 라인 LD의 한쪽에 있는 하나의 세트 및 라인 LD의 다른 쪽에 있는 다른 세트로 소팅한다. 이러한 방식으로, 라인 LD는 포인트들을 제1 세트 또는 제2 세트(예를 들면, 도 6d와 관련하여 아래에서 설명되는, 볼록 껍질 IA 또는 볼록 껍질 IB에 대응함) 중 하나 또는 다른 하나로 소팅하는 데 사용하기 위한 임계 거리를 나타낼 수 있다.
도 6d를 참조하면, 인지 시스템(402)은 이러한 포인트 세트들(604) 각각의 볼록 껍질을 결정한다. 보다 구체적으로, 시스템(402)은 측면 LB보다 측면 LA에 더 가깝게 있는 포인트 세트(604)의 볼록 껍질 IA, 및 측면 LA보다 측면 LB에 더 가깝게 있는 포인트 세트(604)의 볼록 껍질 IB를 결정한다.
도 6e에 도시된 바와 같이, 인지 시스템(402)은 다음으로, 2 개의 포인트 세트(604)가 일정하게 유지되는 배향(θ) 간격들을 결정하기 위해, 볼록 껍질들 IA 및 IB에 대한 접촉(tangency)을 유지하면서 경계 상자 측면들 LA 및 LB를 회전시킨다. 예를 들어, LD가 포인트(604)와 교차하는 해당 배향들 θ1, θ2, ... 또는 전이 배향들을 결정하기 위해, 경계 상자 측면들 LA 및 LB가 볼록 껍질들 IA 및 IB에 대한 접촉을 유지하면서 볼록 껍질들 IA 및 IB를 주위에서 회전된다. 따라서 배향(θ) 간격들은 연속적인 배향들 θ1, θ2 등 사이에 있는 값들이다. 그에 따라, 각각의 배향 간격은 어떤 포인트(604)도 한쪽 측면 LA, LB에 가장 가까운 것으로부터 다른 쪽 측면 LB, LA에 가장 가까운 것으로 전환되지 않는 θ의 범위를 나타낸다.
위에서 설명된 바와 같이, 경계 상자 생성에 대한 이전 접근 방식들은 통상적으로 모든 측정 포인트들을 소팅하고 모든 배향에 대한 그들의 거리들을 재계산하는 것을 수반하였다. M 개의 가능한 배향과 n 개의 데이터 포인트에 대해, 이 접근 방식은
Figure pat00001
정도의 복잡도를 결과한다. 대조적으로, 본 개시내용의 실시예들은 측정 포인트들을 재소팅하고 각각의 배향에 대한 거리들을 재계산하는 것을 피하며, 그 대신에 볼록 껍질들에 대한 접선들을 계산하고(예를 들면, 볼록 껍질 IA의 포인트(604a)의 접선 tan1은 기준(610)에 대해 각도 θ1을 형성하고 볼록 껍질 IB의 포인트(604b)의 접선 tan2는 기준(610)에 대해 각도 θ2를 형성함) 배향 간격들 사이의 전이들에서 하나 이상의 포인트를 포인트 세트들 사이에서 단지 전환한다. 각각의 소팅된 측정 포인트 세트에 대해 접선 계산들 및 볼록 껍질 업데이트들이
Figure pat00002
시간 내에 수행될 수 있으므로, 본 개시내용의 실시예들의 접근 방식들은 단지
Figure pat00003
정도의 복잡도를 결과하여, 계산 오버헤드 및 프로세싱 시간을 감소시킨다.
도 6f를 참조하면, 인지 시스템(402)은 이러한 전이 배향들(620)(θ1, θ2, θ3, ...), 대응하는 경계 상자 배향 간격들(622), 및 각각의 간격에 대한 데이터 포인트 세트들(624)의 테이블 또는 다른 세트를 생성하여, 예컨대, 메모리(306)에 저장한다. 간격에 대한 각각의 데이터 포인트 세트(624)는, 일부 실시예들에서, 포인트들(604)에 기초하고, 제1 볼록 껍질(예를 들면, 도 6d의 볼록 껍질 IA)에 대응하는 제1 데이터 포인트 세트(626) 및 제2 볼록 껍질(예를 들면, 도 6d의 볼록 껍질 IB)에 대응하는 제2 데이터 포인트 세트(628)를 포함한다. 예를 들어, 제1 데이터 포인트 세트(626)는 각각의 데이터 포인트에 대해, 포인트 인덱스 i = 1 내지 n1,1에 대한 x1,1,i 및 y1,1,i와 같은, x 및 y 좌표를 포함할 수 있으며, 여기서 n1,1은 대응하는 경계 상자 간격(622)에 대한 제1 데이터 포인트 세트(626) 내의 데이터 포인트 수를 나타낸다. 제2 데이터 포인트 세트(628)는 각각의 데이터 포인트에 대해, 포인트 인덱스 i = 1 내지 n1,2에 대한 x1,2,i 및 y1,2,i와 같은, x 및 y 좌표를 포함할 수 있으며, 여기서 n1,2는 대응하는 경계 상자 간격(622)에 대한 제2 데이터 포인트 세트(628) 내의 데이터 포인트 수를 나타낸다.
도 6g를 참조하면, 인지 시스템(402)은 각각의 간격에 대한 국소 최소 경계 상자 배향들 θ(예를 들면, 제1 포인트 세트(604)로부터 제1 측면 LA까지의 거리들(예를 들면, 도 6c에 도시된 거리들(640)), 및 제2 포인트 세트(604)로부터 제2 측면 LB까지의 거리들(예를 들면, 도 6c에 도시된 거리들(642))이 최소인, 각각의 배향 간격(632) 내에서의 배향 θ)를 결정한다. 본 개시내용의 일부 실시예들에서, 이것은 포인트들(604)과 그 각자의 측면들 LA, LB 사이의 거리들의 합에 대한 연속 함수 f(θ)를 결정하는 것에 의해 달성된다. 이어서 국소 최소 거리는 각각의 배향 간격 내에서의 f(θ)의 최솟값으로서 결정될 수 있다. 본 개시내용의 실시예들은 거리에 대한 임의의 메트릭, 정의 또는 공식의 사용을 고려한다. 일 예로서, 포인트들(604)과 이들의 경계 상자 측면들 LA, LB 사이의 거리들은 L1 노름 거리 d, 또는 맨해튼 거리로서 정의될 수 있으며, 이는, 아래의 수학식 1에 나와 있는 바와 같이, n 개의 데이터 포인트의 세트에 대한 삼각 합(trigonometric sum)으로서 표현될 수 있으며:
Figure pat00004
여기서 θ는 경계 상자 배향을 나타내고, i는 포인트 인덱스를 나타내며, d(pi)는 포인트 i로부터 그의 대응하는 측면(예를 들면, 측면 LA 및 측면 LB 중에서 더 가까운 측면)까지의 거리를 나타낸다.
고정된 포인트 세트(604)의 경우, X와 Y는 포인트들 pi와 대응하는 측면들 LA 및 LB 사이의 거리들의 척도들이며, 따라서 일정하게 유지된다. 그에 따라, f(θ)는, 그의 도함수를 0으로 설정하는 것, 예를 들면, f’(θ) = 0로 설정하는 것에 의해, 연속적으로 최적화될 수 있다. 따라서, 인지 시스템(402)은, 이상으로부터, θ의 각각의 구간에 대한 각각의 연속 함수(634) f1(θ), f2(θ), f3(θ), ...를 결정할 수 있다. 이어서 인지 시스템(402)은 각각의 구간에 대한 f(θ)의 각각의 국소 최솟값(636)의 배향 θLM1, θLM2, θLM3, ...를 결정할 수 있다. 전역 최소 배향(638)은 그러면 최저 f(θ) 값에 대응하는 θLM 값이다. 이러한 방식으로, 인지 시스템(402)은, 어떤 거리 메트릭이 선택되더라도 그 거리 메트릭에 따라, 최저 전체 거리를 결과하는 경계 상자 배향을 결정하는 것에 의해 최적합 경계 상자를 결정한다. f(θ)는 연속 함수이므로, f(θ)의 국소 및 전역 최솟값들에 대한 정확한 해들이 결정될 수 있으며, 최적합 경계 상자들을 결정할 때 더 높은 정확도를 결과한다.
L1 거리는 위에서 단지 하나의 특정 예로서 이용되며, 본 개시내용의 실시예들은 포인트들과 주변 경계 인클로저 사이의 피팅(fit)을 추정하기에 적합한 임의의 거리 메트릭의 사용을 고려한다. 예를 들어, 유클리드 거리 등과 같은 임의의 다른 거리 측정치가 포인트들(604)과 경계 상자 측면들 LA, LB 사이의 평균 거리를 결정하는 데 이용될 수 있다.
일부 실시예들에서, 위에서 설명된 바와 같이 f(θ)를 최소화하는 것에 대안으로서 또는 추가적으로, 인지 시스템(402)은, 수학식 2에 의해 주어진 바와 같이, 포인트들(604)과 경계 상자 측면들 LA, LB 사이의 평균 거리 f_avg(θ)를 최소화하고:
Figure pat00005
여기서
Figure pat00006
는 제1 포인트 세트(예를 들면, 도 6e에서의 볼록 껍질 IA에 대응할 수 있는, 도 6f에서의 포인트 세트(626)) 내의 총 포인트 수를 나타내고,
Figure pat00007
는 제2 포인트 세트(예를 들면, 도 6e에서의 볼록 껍질 IB에 대응할 수 있는, 도 6f에서의 포인트 세트(628)) 내의 총 포인트 수를 나타낸다. 수학식 2가 수학식 1과 동일한 형태를 취할 수 있고, X와 Y의 값들이 상이하다는 것이 관찰될 수 있다.
이제 도 7을 참조하면, 효율적인 차량 크기 추정을 위한 프로세스(700)의 플로차트가 예시되어 있다. 일부 실시예들에서, 프로세스(700)와 관련하여 설명되는 단계들 중 하나 이상은, 위에서와 같이, 자율 주행 차량(102)에 의해 (예를 들면, 전체적으로, 부분적으로 등) 수행된다. 추가적으로 또는 대안적으로, 일부 실시예들에서, 프로세스(700)와 관련하여 설명되는 하나 이상의 단계는, 위의 계산들 중 일부 또는 전부를 수행하는 원격 서버(예를 들면, 도 1의 원격 AV 시스템(114) 및/또는 플릿 관리 시스템(116)과 동일하거나 유사한 원격 서버)와 같은, 자율 주행 차량(102)과 별개이거나 자율 주행 차량(102)을 포함하는 다른 디바이스 또는 디바이스 그룹에 의해 (예를 들면, 전체적으로, 부분적으로 등) 수행될 수 있다.
도 7을 계속 참조하면, 인지 시스템(402)은 검출된 차량의 적어도 일 부분의 위치 값들에 대응하는 포인트들의 클러스터를 둘러싸는 경계 상자의 적어도 2 개의 측면을 생성한다(블록(702)). 일 예에서, 인지 시스템(402)은, 도 6a 및 도 6b에 도시된 바와 같이, 포인트들(604)의 클러스터(602)를 둘러싸는 경계 상자의 측면들 LA 및 LB를 생성한다.
도 7을 계속 참조하면, 인지 시스템(402)은 포인트 클러스터의 포인트들을 경계 상자의 제1 측면으로부터 일정 거리(예를 들면, 도 6c 및/또는 도 6d에서의 라인 LD에 의해 규정되는 임계 거리) 내에 위치하는 제1 포인트 세트, 및 제2 측면으로부터 해당 거리 내에 위치하는 제2 포인트 세트로 소팅하며(블록(704)), 예를 들어, 한 세트는 한쪽 측면(예를 들면, 도 6d에서의 측면 LA)에 더 가깝게 위치하는 포인트들(예를 들면, 도 6d에서의 볼록 껍질 IA에 대응하는 포인트들)로 구성되고, 다른 포인트 세트(예를 들면, 도 6d에서의 볼록 껍질 IB에 대응하는 포인트들)는 다른 쪽 측면(예를 들면, 도 6d에서의 측면 LB)에 더 가깝게 위치하는 포인트들로 구성된다. 블록(704)에서 수행될 수 있는 포인트들의 예시적인 소팅에 관한 추가 세부 사항들은 도 6c 및/또는 도 6d와 관련하여 위에 제공되어 있다.
도 7을 계속 참조하면, 인지 시스템(402)은, 도 6d를 참조하여 위에서 설명된 바와 같이, 이 제1 포인트 세트에 기초하여 제1 볼록 껍질을 생성하고, 제2 포인트 세트에 기초하여 제2 볼록 껍질을 생성한다(블록(706)). 일 예에서, 인지 시스템(402)은, 도 6d에 도시된 바와 같이, 제1 볼록 껍질 IA 및 제2 볼록 껍질 IB를 생성한다.
도 7을 계속 참조하면, 인지 시스템(402)은 제1 볼록 껍질의 일 부분 및 제2 볼록 껍질의 일 부분에 기초하여 제1 및 제2 포인트 세트들이 일정하게 유지되는 다수의 경계 상자 배향 간격들을 결정한다(블록(708)). 일 예에서, 도 6e를 참조하면, 인지 시스템(402)은 (예를 들면, 기준(610)에 대해 θ = 0°의 배향 내지 θ = 90°의 배향의 범위인) 경계 상자의 각각의 배향에 대한 2 개의 볼록 껍질에 대한 접선들(예를 들면, 도 6e에 도시된 바와 같이, 기준(610)에 대한 접선 각도 θ1을 갖는 tan1 및 기준(610)에 대한 접선 각도 θ2를 갖는 tan2)을 결정하고, 접선들을 사용하여 포인트가 하나의 세트로부터 다른 세트로(예를 들면, 측면 LA와 같은 한쪽 경계 상자 측면에 더 가까운 것으로부터 측면 LB와 같은 다른 쪽 경계 상자 측면에 더 가까운 것으로) 변경되는 간격들을 결정한다. 블록(708)에서 결정되는 경계 상자 배향 간격들은, 예를 들어, 메모리(306)와 같은 메모리에 (예를 들면, 도 6f에 도시된 테이블(618)의 경계 상자 배향 간격들(622)로서 및/또는 도 6g에 도시된 테이블(630)의 경계 상자 배향 간격들(632)로서) 저장된다.
도 7을 계속 참조하면, 인지 시스템(402)은, 블록(708)에서 결정되는 간격들에 대해, 제1 포인트 세트의 각각의 포인트로부터 제1 측면까지의 거리들 및 제2 포인트 세트의 각각의 포인트로부터 제2 측면까지의 거리들을 최소화하는 경계 상자 배향을 결정한다(블록(710)). 도 6f 및 도 6g를 참조하면, 각각의 간격 내에서의 포인트 거리들의 합에 대한 연속 함수가 결정될 수 있다. 따라서 각각의 간격에 대한 이러한 연속 함수들의 국소 최솟값은 각각의 간격의 최적합 배향을 나타내고, 가장 작은 거리를 갖는 최적합 배향은 그러면 전역 최솟값, 또는 전역 최적합 배향(638), 또는 최적합 경계 상자 배향이다.
도 7을 계속 참조하면, 인지 시스템(402)은 이 최적합 경계 상자의 데이터를 차량(102)과 같은 자율 주행 차량의 제어 회로에 제공하며, 이 데이터는 제어 회로로 하여금 자율 주행 차량의 작동을 제어하게 하도록 구성된다(블록(712)). 예를 들어, 인지 시스템(402)은, 운행 지원 등과 같은, 임의의 원하는 목적을 위해 차량(102)의 시스템들에 최적합 경계 상자를 기술한다.
이제 도 8을 참조하면, 경계 상자 배향 간격들(예를 들면, 도 6f의 테이블(618)에 나와 있는 경계 상자 배향 간격들(622) 및/또는 도 6g의 테이블(630)에 나와 있는 경계 상자 배향 간격들(632))을 결정하기 위한 프로세스(800)의 플로차트가 예시되어 있다. 일부 실시예들에서, 프로세스(800)는 도 7과 관련하여 위에서 설명된 블록(708)의 프로세스와 동일하거나 유사하다. 일부 실시예들에서, 프로세스(800)와 관련하여 설명되는 단계들 중 하나 이상은, 위에서와 같이, 자율 주행 차량(102)에 의해 (예를 들면, 전체적으로, 부분적으로 등) 수행된다. 추가적으로 또는 대안적으로, 일부 실시예들에서, 프로세스(800)와 관련하여 설명되는 하나 이상의 단계는, 위의 계산들 중 일부 또는 전부를 수행하는 원격 서버와 같은, 자율 주행 차량(102)과 별개이거나 자율 주행 차량(102)을 포함하는 다른 디바이스 또는 디바이스 그룹에 의해 (예를 들면, 전체적으로, 부분적으로 등) 수행될 수 있다. 프로세스(800)가 복잡도를 증가시키지 않고 볼록 껍질들을 업데이트하는 것을 가능하게 한다는 점에 유의한다. 본 명세서에서 설명되는 바와 같이, 볼록 껍질들에 대한 접선들이 경계 상자 배향 간격들(632)을 결정하는 데 이용된다. 배향 간격들의 끝점들을 정의하는 해당 접선들은 또한 볼록 껍질들을 전환하는 포인트들과 교차하여, 볼록 껍질들에 대한 업데이트들을 초래한다. 포인트 세트들의 편집 및 대응하는 볼록 껍질들의 결정은 그러면 임의의 방식으로, 예컨대, 이로써 참조에 의해 그 전체가 포함되는, Timothy Chan, Dynamic Planar Convex Hull Operations in Near-Logarithmic Amortized Time, 48 J. ACM 1 (2001)에 설명된 프로세스들에 따라, 결정될 수 있다.
도 8을 계속 참조하면, 블록(802)의 실행 이전에, 인지 시스템(402)은 초기 경계 상자를 생성하고, 위에서 도 6c에 예시된 바와 같이 그리고 도 7의 블록들(702, 704, 706)과 관련하여 설명된 바와 같이, 경계 상자의 어느 레그(leg) LA, LB가 더 가까운지에 따라 포인트들(604)을 2 개의 세트로 소팅한다. 인지 시스템(402)은 후속적으로 (도 6d에 예시된 바와 같이) 각각의 포인트 세트(604)에 대한 볼록 껍질을 결정하고, 각각의 볼록 껍질에 대한 볼록 껍질 인덱스 c 및 포인트 인덱스 i를 초기화한다(블록(802)).
도 8을 계속 참조하면, 인지 시스템(402)은 볼록 껍질 c에 대한 포인트 pi의 접선을 계산한다(블록(804)). 일 예에서, 도 6e를 참조하면, 인지 시스템(402)은 기준(610)에 대해 접선 각도 θ1을 형성하는 포인트(604a)의 접선 tan1을 계산한다.
도 8을 계속 참조하면, 인지 시스템(402)은 블록(804)에서 볼록 껍질 c의 포인트 pi에 대해 계산되는 접선에 의해 형성되는 접선 각도가 임계 범위 내에 있는지 여부를 결정한다(블록(806)). 예를 들어, 인지 시스템(402)은, 접선 각도 θ1이 전이 배향(예를 들면, 포인트 pi가 라인 LD를 넘어가 라인 LA에 더 가까운 것으로부터 라인 LB에 더 가까운 것으로 전환할 것으로 예상되는 경계 상자 배향)에 대응하는지 여부를 결정하기 위해, 접선 각도 θ1이 임계 근접도(degree of nearness) 이내로 라인 LD의 각도 θD에 가까운지 여부를 결정할 수 있다.
도 8을 계속 참조하면, 인지 시스템(402)이 블록(806)에서 접선이 임계 범위 내에 있지 않다고 결정하는 경우(블록(806)에서 "아니오"), 인지 시스템(402)은 해당 접선의 각도를 전이 배향에 대응하지 않는 것으로서 폐기한다(블록(808)).
도 8을 계속 참조하면, 인지 시스템(402)이 블록(806)에서 접선이 임계 범위 내에 있다고 결정하는 경우(블록(806)에서 "예"), 인지 시스템(402)은, 이 새로 결정된 전이 포인트를 고려하여, 대응하는 재소팅된 포인트 세트(604)와 함께, 해당 접선의 각도를 전이 배향에 대응하도록 메모리(306)와 같은 메모리에 저장한다(블록 810).
도 8을 계속 참조하면, 블록(808) 또는 블록(810) 이후에, 경우에 따라, 인지 시스템(402)은 볼록 껍질 c가 접선이 계산되어야 하는 다른 포인트를 포함하는지 여부를 결정한다(블록(812)). 일 예에서, 인지 시스템(402)은 볼록 껍질 c의 각각의 포인트를 추적하고, 볼록 껍질 c의 각각의 포인트를 순차적으로 지나가는 것에 의해 블록(812)에서 결정을 수행한다.
도 8을 계속 참조하면, 인지 시스템(402)이 볼록 껍질 c가 접선이 계산되어야 하는 다른 포인트를 포함한다고 결정하는 경우(블록(812)에서 "예"), 인지 시스템(402)은 볼록 껍질 c 상의 다른 포인트를 선택하고 데이터 포인트 인덱스 i를 증분시키며(블록(814)), 존재하는 경우, 다른 전이 배향을 결정하기 위해 제어를 블록(804)으로 넘겨 블록들(804, 806, 808 및/또는 810)에 대해 위에서 설명된 프로세스들을 반복한다.
도 8을 계속 참조하면, 인지 시스템(402)이 볼록 껍질 c가 접선이 계산되어야 하는 다른 포인트를 포함하지 않는다고 결정하는 경우(블록(812)에서 "아니오"), 인지 시스템(402)은 블록들(802, 804, 806, 808, 810, 812, 및/또는 814)에 대해 위에서 설명된 프로세스들에 따라 접선 각도들 및/또는 전이 배향들을 결정하기 위해 다른 볼록 껍질(예를 들면, 도 7의 블록(706)에서 생성되는 볼록 껍질들 중 하나)이 아직 분석되지 않았는지 여부를 결정한다(블록(816)).
도 8을 계속 참조하면, 인지 시스템(402)이 블록들(802, 804, 806, 808, 810, 812, 및/또는 814)에 대해 위에서 설명된 프로세스들에 따라 접선 각도들 및/또는 전이 배향들을 결정하기 위해 다른 볼록 껍질(예를 들면, 도 7의 블록(706)에서 생성되는 볼록 껍질들 중 하나)이 아직 분석되지 않은 채로 있다고 결정하는 경우(블록(816)에서 "예"). 인지 시스템(402)은 분석될 다른 볼록 껍질에 대응하도록 볼록 껍질 인덱스 c를 증분시키고, 데이터 포인트 인덱스 i를 초기화하며, 다른 볼록 껍질에 대한 전이 배향들을 결정하기 위해 제어를 블록(804)으로 넘겨 블록들(804, 806, 808, 및/또는 810)에 대해 위에서 설명된 프로세스들을 반복한다(블록(818)).
도 8을 계속 참조하면, 인지 시스템(402)이 블록들(802, 804, 806, 808, 810, 812, 및/또는 814)에 대해 위에서 설명된 프로세스들에 따라 접선 각도들 및/또는 전이 배향들을 결정하기 위해 어떠한 다른 볼록 껍질(예를 들면, 도 7의 블록(706)에서 생성되는 볼록 껍질들 중 하나)도 아직 분석되지 않은 채로 있지 않다고 결정하는 경우(블록(816)에서 "아니오"), 예를 들면, 도 7의 블록(706)에서 생성되는 볼록 껍질들 양쪽 모두가 분석된 경우, 인지 시스템(402) 블록(810)의 프로세스의 여러 번의 반복에 걸쳐 저장된 전이 각도들(예를 들면, 도 6f의 테이블(618))에 기초하여 경계 상자 배향 간격들의 테이블을 생성한다(블록(820)).
이제 도 9를 참조하면, 차량 크기 추정에 가장 적합한 것을 구성하는 경계 상자의 배향을 결정하기 위한 프로세스(900)의 플로차트가 예시되어 있다. 일부 실시예들에서, 최적합 경계 상자 배향은 (i) 제1 볼록 껍질의 포인트들(예를 들면, 도 6d의 볼록 껍질 IA의 포인트들(604))로부터 경계 상자의 제1 측면(예를 들면, 도 6d의 측면 LA)까지의 거리들 및 (ii) 제2 볼록 껍질의 포인트들(예를 들면, 도 6d의 볼록 껍질 IB의 포인트들(604))로부터 경계 상자의 제2 측면(예를 들면, 도 6d의 측면 LB)까지의 거리들을 최소화하는 경계 상자 배향(예를 들면, 도 6d의 θ)으로서 결정된다. 일부 실시예들에서, 프로세스(900)는 도 7과 관련하여 위에서 설명된 블록(710)의 프로세스와 동일하거나 유사하다. 일부 실시예들에서, 프로세스(900)와 관련하여 설명되는 단계들 중 하나 이상은, 위에서와 같이, 자율 주행 차량(102)에 의해 (예를 들면, 전체적으로, 부분적으로 등) 수행된다. 추가적으로 또는 대안적으로, 일부 실시예들에서, 프로세스(900)와 관련하여 설명되는 하나 이상의 단계는, 위의 계산들 중 일부 또는 전부를 수행하는 원격 서버(예를 들면, 도 1의 원격 AV 시스템(114) 및/또는 플릿 관리 시스템(116)과 동일하거나 유사한 원격 서버)와 같은, 자율 주행 차량(102)과 별개이거나 자율 주행 차량(102)을 포함하는 다른 디바이스 또는 디바이스 그룹에 의해 (예를 들면, 전체적으로, 부분적으로 등) 수행될 수 있다.
도 9를 계속 참조하면, 블록(902)의 실행 이전에, 인지 시스템(402)은, 도 7의 블록들(702, 704, 706, 및 708)과 관련하여 위에서 설명된 방식으로, 볼록 껍질들 내로 소팅되는 포인트 세트들이 일정하게 유지되는 경계 상자 배향 간격들(예를 들면, 도 6f의 테이블(618)에 나와 있는 경계 상자 배향 간격들(622) 및/또는 도 6g의 테이블(630)에 나와 있는 경계 상자 배향 간격들(632))을 결정한다. 예를 들어, 도 6d를 참조하면, 인지 시스템(402)은 (i) 특정 경계 상자 배향 간격 전체에 걸쳐 포인트들(604)이 경계 상자 측면 LB보다 경계 상자 측면 LA에 더 가까운 채로 유지되기 때문에(예를 들면, 포인트들(604)이 라인 LA와 라인 LB사이의 각도를 이등분하는 대각 라인 LD의 동일한 측면에 유지되기 때문에) 볼록 껍질 IA의 포인트들(604)이 볼록 껍질 IA 내로 소팅된 채로 유지되고, (ii) 특정 경계 상자 배향 간격 전체에 걸쳐 포인트들(604)이 경계 상자 측면 LA보다 경계 상자 측면 LB에 더 가까운 채로 유지되기 때문에(예를 들면, 포인트들(604)이 라인 LA와 라인 LB사이의 각도를 이등분하는 대각 라인 LD의 동일한 측면에 유지되기 때문에) 볼록 껍질 IB의 포인트들(604)이 볼록 껍질 IB 내로 소팅된 채로 유지되는 각각의 경계 상자 배향(예를 들면, 도 6d의 θ) 간격을 결정한다.
도 9를 계속 참조하면, 인지 시스템(402)은, 재소팅된 포인트 세트들에 기초하고 각각의 세트의 포인트들과 경계 상자 측면들 사이의 거리(임의의 적합한 메트릭에 의해 정의됨)를 기술하는, 각각의 경계 상자 배향 간격(예를 들면, 도 8의 블록(820)에서 생성되는 테이블에 표현된 각각의 경계 상자 배향 간격)에 대한 연속 함수 f(θ)를 생성한다(블록(902)).
도 9를 계속 참조하면, 인지 시스템(402)은, 각각의 배향 간격에 대해, 경계 상자와 연관된 국소 최소 배향을 결정하며, 국소 최소 배향은 거리 함수 f(θ)가 해당 간격 - 그의 양극단을 포함함 - 내의 최솟값에 도달하는 배향이다(블록(904)). 위에서와 같이, 이것은 각각의 간격에 대해 f'(θ) = 0으로 설정하고 결과적인 방정식을 알려진 방식으로 푸는 것에 의해 달성될 수 있다. 결과는 각각의 세트 내의 포인트들(604)과 그 각자의 경계 상자 측면들 사이의 국소 최소 거리에 대응하는 경계 상자 배향이다.
도 9를 계속 참조하면, 인지 시스템(402)은, 블록(904)에서 결정되는 국소 최소 배향들 중에서, 포인트들(604)에 가장 적합한 경계 상자로 간주되는, 가장 작은 그러한 거리에 대응하는 배향을 선택한다(블록(906)).
이제 도 10을 참조하면, 특정 경계 상자 배향 간격 내에서, (i) 제1 볼록 껍질의 포인트들로부터 경계 상자의 제1 측면까지의 거리들(예를 들면, 볼록 껍질 IA의 포인트들(604)로부터 측면 LA까지의 거리들(640)) 및 (ii) 제2 볼록 껍질의 포인트들로부터 경계 상자의 제2 측면까지의 거리들(예를 들면, 볼록 껍질 IB의 포인트들(604)로부터 측면 LB까지의 거리들(642))을 국소적으로 최소화하는 국소 최소 경계 상자 배향을 결정하기 위한 프로세스(1000)의 플로차트가 예시되어 있다. 일부 실시예들에서, 프로세스(1000)는 도 9와 관련하여 위에서 설명된 블록(904)의 프로세스와 동일하거나 유사하다. 일부 실시예들에서, 프로세스(1000)와 관련하여 설명되는 단계들 중 하나 이상은, 위에서와 같이, 자율 주행 차량(102)에 의해 (예를 들면, 전체적으로, 부분적으로 등) 수행된다. 추가적으로 또는 대안적으로, 일부 실시예들에서, 프로세스(1000)와 관련하여 설명되는 하나 이상의 단계는, 위의 계산들 중 일부 또는 전부를 수행하는 원격 서버(예를 들면, 도 1의 원격 AV 시스템(114) 및/또는 플릿 관리 시스템(116)과 동일하거나 유사한 원격 서버)와 같은, 자율 주행 차량(102)과 별개이거나 자율 주행 차량(102)을 포함하는 다른 디바이스 또는 디바이스 그룹에 의해 (예를 들면, 전체적으로, 부분적으로 등) 수행될 수 있다.
계속해서 도 10을 참조하면, 블록(1002)의 실행 이전에, 인지 시스템(402)은, 볼록 껍질들의 포인트 세트들에 기초하고 (예를 들면, 도 9의 블록(902)과 관련하여 위에서 설명된 바와 같이) 각각의 세트의 포인트들과 인근의 경계 상자 측면 사이의 (임의의 적합한 메트릭에 의해 정의되는) 거리를 기술하는, 경계 상자 간격에 대한 연속 함수 f(θ)를 생성한다. 그러한 연속 함수의 예는 위에서 수학식 1로서 제공되어 있다.
도 10을 계속 참조하면, 인지 시스템(402)은 배향 간격 인덱스 int를 초기화한다(블록(1002)). 일 예에서, 인지 시스템(402)은 배향 간격 인덱스 int를 테이블(618)에 표현된 경계 상자 배향 간격들(622)에 대한 인덱스로서 활용한다.
도 10을 계속 참조하면, 인지 시스템(402)은 해당 배향 간격에 대한 연속 함수 f(θ)의 θ에 대한 도함수를 계산하고(블록(1004)), 이 간격 int 내에서의 f(θ)의 최솟값에 대응하는 배향 θ의 값을 결정하기 위해 블록(1004)에서 계산된 도함수를 영(0)과 동일하게 설정하고 방정식을 푼다(블록(1006)).
도 10을 계속 참조하면, 인지 시스템(402)은, 이 경계 상자 배향 간격 내에서의 f(θ)의 국소 최솟값에 대응하는, 블록(1006)에서 결정되는 θ의 값을 메모리(306)와 같은 메모리에 저장한다(블록(1008)). 일 예에서, 인지 시스템(402)은 국소 최소 배향(예를 들면, θLM1)을 도 6g에 도시된 테이블(630)과 같은 테이블에 엔트리(636)로서 저장한다.
도 10을 계속 참조하면, 인지 시스템(402)은 f(θ)의 국소 최솟값을 결정하기 위해 임의의 추가적인 배향 간격이 아직 프로세싱되지 않은 채로 있는지 여부를 결정한다(블록(1010)). 일 예에서, 인지 시스템(402)은 배향 간격 인덱스 int의 현재 값을 임계 값(예를 들면, 테이블(630)에 저장된 엔트리들을 갖는 간격들의 총수에 대응함)과 비교하는 것에 의해 블록(1010)에서 결정을 내린다.
도 10을 계속 참조하면, 인지 시스템(402)이 f(θ)의 국소 최솟값을 결정하기 위해 추가적인 배향 간격이 아직 프로세싱되지 않은 채로 있다고 결정하는 경우(블록(1010)에서의 "예"), 인지 시스템(402)은 배향 간격 인덱스 int를 증분시킨다(블록(1012)).
도 10을 계속 참조하면, 인지 시스템(402)은 블록(1012)에서 증분된 int의 값에 대응하는 간격에 대한 연속 함수 f(θ)를 검색하고(블록(1014)), 이 간격에 대한 f(θ)의 국소 최솟값에 대응하는 배향 값 θ를 결정하기 위해 제어를 블록(1004)으로 넘겨 블록들(1004, 1006, 1008, 및/또는 1010)에 대해 위에서 설명된 프로세스들을 반복한다.
도 10을 계속 참조하면, 인지 시스템(402)이 f(θ)의 국소 최솟값을 결정하기 위해 어떠한 추가적인 배향 간격도 아직 프로세싱되지 않은 채로 있지 않다고 결정하는 경우(블록(1010)에서의 "아니오"), 프로세스(1000)는 종료된다.
데이터 포인트들(604)을 생성하는 센서들은 다른 대상체들을 부주의하게 검출할 수 있거나, 부정확하거나 그렇지 않으면 원치 않는 데이터를 생성할 수 있다. 따라서 본 개시내용의 실시예들은 또한 이상 데이터 포인트들을 거부하기 위한 방법들 및 프로세스들을 제공할 수 있다. 도 11은 하나의 그러한 예시적인 프로세스를 예시한다. 임의의 방식의 이상치 거부가 고려된다. 일부 실시예들에서, 데이터 포인트 세트들(1100 및 1102)은 본 명세서에서 설명되는 바와 같이 볼록 껍질들, 이들에 대한 접선들, 경계 상자 배향 간격들, 및 최적화된 배향들을 결정하는 데 이용될 수 있다. 추가적으로, 비용 함수 f(θ)에 기여하지 않는, 예를 들면, 결정된 최소 거리를 변경하지 않는, 또는 어떤 임계치 미만으로만 기여하는, 이상 데이터 포인트 세트들(1104, 1106)이 볼록 껍질 접선들의 결정 이전에 거부될 수 있다. 예를 들어, 이산 또는 분리된 포인트 세트들(1104, 1106)은 포인트 세트들(1100, 1102)로부터 공간적으로 분리된 것으로 식별될 수 있고, 그들의 비용 함수들이 결정될 수 있다. 그러한 비용 함수들이, 충분히 작은 포인트 클러스터들의 경우와 같이, 미리 결정된 임계 값 아래로 떨어질 때, 포인트 세트들(1104, 1106)은 본 명세서에서 설명되는 경계 상자 계산 프로세스들에서 무시될 수 있다. 이러한 방식으로, 차량 매연(vehicle exhaust cloud) 등과 같은, 차량에 대응하는 것으로 잘못 간주될 수 있는 포인트들이 적절한 경계 상자들을 결정할 때 무시될 수 있다.
본 개시내용의 다양한 추가적인 예시적인 실시예들은 다음 조항들에 의해 설명될 수 있다:
조항 1. 디바이스로서,
적어도 하나의 프로세서; 및
명령어들을 저장하는 적어도 하나의 메모리를 포함하며, 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 적어도 하나의 프로세서로 하여금:
검출된 차량의 적어도 일 부분에 대응하는 포인트 클러스터를 둘러싸는 경계 상자를 생성하게 하고 - 경계 상자는 제1 측면 및 제2 측면을 포함함 -;
포인트들을 제1 측면으로부터 일정 거리 내에 위치하는 제1 포인트 세트 및 제2 측면으로부터 해당 거리 내에 위치하는 제2 포인트 세트로 소팅하게 하며;
제1 포인트 세트에 기초하여 제1 볼록 껍질을 생성하게 하고 제2 포인트 세트에 기초하여 제2 볼록 껍질을 생성하게 하며;
제1 볼록 껍질의 일 부분 및 제2 볼록 껍질의 일 부분에 기초하여 제1 및 제2 포인트 세트들이 일정하게 유지되는 경계 상자와 연관된 복수의 배향 간격들을 결정하게 하고;
경계 상자와 연관된 복수의 배향 간격들에 기초하여 경계 상자의 배향을 결정하게 하며 - 경계 상자의 배향은 제1 포인트 세트의 각각의 포인트로부터 제1 측면까지의 거리들 및 제2 포인트 세트의 각각의 포인트로부터 제2 측면까지의 거리들을 최소화함 -;
경계 상자의 배향과 연관된 데이터를 자율 주행 차량의 제어 회로에 제공하게 하는 - 배향과 연관된 데이터는 제어 회로로 하여금 자율 주행 차량의 작동을 제어하게 하도록 구성됨 -, 디바이스.
조항 2. 조항 1에 있어서, 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 추가로 적어도 하나의 프로세서로 하여금:
경계 상자와 연관된 전이 배향들을 결정하는 것에 기초하여 제1 및 제2 포인트 세트들이 일정하게 유지되는 경계 상자와 연관된 복수의 배향 간격들을 결정하게 하며, 전이 배향들은 경계 상자의 제1 측면에 더 가까운 상태로부터 경계 상자의 제2 측면에 더 가까운 상태로의 포인트들 중 적어도 하나 포인트의 전이들에 대응하는, 디바이스.
조항 3. 조항 2에 있어서, 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 추가로 적어도 하나의 프로세서로 하여금:
제1 볼록 껍질 또는 제2 볼록 껍질의 적어도 하나의 부분에 접하는 라인들의 배향들을 결정하는 것에 기초하여 전이 배향들을 결정하게 하는, 디바이스.
조항 4. 조항 2 또는 조항 3에 있어서, 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 추가로 적어도 하나의 프로세서로 하여금:
경계 상자와 연관된 복수의 배향 간격들 각각에 대해, 포인트들을 재소팅된 제1 포인트 세트 및 재소팅된 제2 포인트 세트로 재소팅하게 하여, 이에 의해 경계 상자와 연관된 배향 간격들에 대응하는 재소팅된 포인트 세트들을 생성하게 하는, 디바이스.
조항 5. 조항 4에 있어서, 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 추가로 적어도 하나의 프로세서로 하여금:
경계 상자와 연관된 복수의 배향 간격들 각각에 대해, 대응하는 재소팅된 포인트 세트들에 기초하여 적어도 하나의 연속 함수를 생성하게 하는, 디바이스.
조항 6. 조항 4 또는 조항 5에 있어서, 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 추가로 적어도 하나의 프로세서로 하여금:
경계 상자와 연관된 복수의 배향 간격들 각각에 대해, 경계 상자와 연관된 국소 최소 배향을 결정하게 하며, 경계 상자와 연관된 국소 최소 배향은, 경계 상자와 연관된 배향 간격들 내에서, 재소팅된 제1 포인트 세트의 각각의 포인트로부터 제1 측면까지의 거리들 및 재소팅된 제2 포인트 세트의 각각의 포인트로부터 제2 측면까지의 거리들을 국소적으로 최소화하는, 디바이스.
조항 7. 조항 6에 있어서, 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 추가로 적어도 하나의 프로세서로 하여금:
경계 상자와 연관된 복수의 배향 간격들에 기초하여 경계 상자의 배향을 결정하게 하며, 경계 상자의 배향은, 경계 상자의 국소 최소 배향들 중에서, 가장 작은 거리들에 대응하는 배향을 선택하는 것에 기초하여 제1 포인트 세트의 각각의 포인트로부터 제1 측면까지의 거리들 및 제2 포인트 세트의 각각의 포인트로부터 제2 측면까지의 거리들을 최소화하는, 디바이스.
조항 8. 조항 2 내지 조항 7 중 어느 한 조항에 있어서, 명령어들은, 적어도 하나의 프로세서에 의해 실행될 때, 추가로 적어도 하나의 프로세서로 하여금:
복수의 배향 간격들 또는 전이 배향들 중 적어도 하나를 적어도 하나의 메모리에 저장하게 하고;
경계 상자와 연관된 복수의 배향 간격들에 기초하여 경계 상자의 배향을 결정하게 하며, 경계 상자의 배향은 저장된 배향 간격들 또는 전이 배향들 중 적어도 하나에 액세스하는 것에 기초하여 제1 포인트 세트의 각각의 포인트로부터 제1 측면까지의 거리들 및 제2 포인트 세트의 각각의 포인트로부터 제2 측면까지의 거리들을 최소화하는, 디바이스.
조항 9. 조항 1 내지 조항 8 중 어느 한 조항에 있어서, 검출된 차량의 적어도 하나의 부분에 대응하는 포인트 클러스터는 LiDAR(Light Detection And Ranging) 측정치들, Radar(Radio Detection and Ranging) 측정치들, 적어도 하나의 이미지로부터 결정되는 위치 값들, 또는 초음파 측정치들 중 적어도 하나를 포함하는, 디바이스.
조항 10. 조항 1 내지 조항 9 중 어느 한 조항에 있어서, 검출된 차량의 적어도 하나의 부분에 대응하는 포인트 클러스터는 자율 주행 차량과 연관된 기준 점에 대한 2차원 좌표를 포함하고, 경계 상자의 결정된 배향은 자율 주행 차량과 연관된 좌표계에 대한 각도를 포함하는, 디바이스.
조항 11. 방법으로서,
적어도 하나의 프로세서를 사용하여, 대상체의 검출된 부분들의 복수의 위치 값들을 수신하는 단계;
적어도 하나의 프로세서를 사용하여, 경계 인클로저의 제1 측면에 가장 가까운 위치 값들의 제1 세트의 제1 볼록 껍질 및 경계 인클로저의 제2 측면에 가장 가까운 위치 값들의 제2 세트의 제2 볼록 껍질을 결정하는 단계;
적어도 하나의 프로세서를 사용하여, 제1 및 제2 볼록 껍질들의 적어도 일 부분에 기초하여, 각각의 위치 값이 경계 인클로저의 측면들 중 동일한 측면에 가장 가까이 있는 채로 유지되는 경계 인클로저의 배향 간격들을 결정하는 단계;
적어도 하나의 프로세서를 사용하여, 간격들로부터, 경계 인클로저의 에지들과 위치 값들 사이의 최소 거리에 대응하는 경계 인클로저의 배향을 계산하는 단계; 및
적어도 하나의 프로세서를 사용하여, 경계 상자의 결정된 배향을 차량의 제어 회로에 출력하는 단계를 포함하는, 방법.
조항 12. 조항 11에 있어서, 경계 인클로저의 하나의 에지에 가장 가까운 상태로부터 경계 인클로저의 다른 에지에 가장 가까운 상태로의 하나의 위치 값의 전이에 대응하는 경계 인클로저의 배향들에 따라 배향 간격들을 결정하는 단계를 더 포함하는, 방법.
조항 13. 조항 12에 있어서, 계산하는 단계는:
최소 거리 배향 세트를 형성하기 위해, 각각의 배향 간격 내로부터, 대응하는 경계 인클로저의 에지들과 가장 가까운 위치 값들 사이의 최소 거리에 대응하는 해당 배향을 선택하는 단계; 및
최소 거리 배향 세트 중에서, 가장 작은 최소 거리에 대응하는 배향을 선택하는 단계를 더 포함하는, 방법.
조항 14. 조항 13에 있어서, 최소 거리들에 대응하는 해당 배향들을 선택하는 단계는 적어도 하나의 연속 함수에 따라 해당 배향들을 선택하는 단계를 더 포함하는, 방법.
조항 15. 조항 12 내지 조항 14 중 어느 한 조항에 있어서, 배향 간격들을 메모리들 중 적어도 하나에 저장하는 단계를 더 포함하는, 방법.
조항 16. 조항 11 내지 조항 15 중 어느 한 조항에 있어서, 적어도 부분적으로 볼록 껍질들의 쌍들에 접하는 측면들을 갖는 상기 배향들 중의 배향들에 따라 배향 간격들을 결정하는 단계를 더 포함하는, 방법.
조항 17. 조항 11 내지 조항 16 중 어느 한 조항에 있어서, 위치 값들은 LiDAR(Light Detection And Ranging) 측정치들, Radar(Radio Detection and Ranging) 측정치들, 적어도 하나의 이미지로부터 결정되는 위치 값들, 또는 초음파 측정치들 중 적어도 하나를 포함하는, 방법.
조항 18. 조항 11 내지 조항 17 중 어느 한 조항에 있어서, 대상체는 차량, 보행자, 도로의 일 부분, 또는 도로변 대상체 중 적어도 하나를 포함하는, 방법.
조항 19. 조항 11 내지 조항 18 중 어느 한 조항에 있어서, 최소 거리를 변경하지 않는 상기 위치 값들 중의 위치 값들을 거부하는 단계, 및 적어도 부분적으로 거부되지 않은 상기 위치 값들 중의 위치 값들에 따라 경계 인클로저의 배향 간격들을 결정하는 단계를 더 포함하는, 방법.
조항 20. 조항 11 내지 조항 19 중 어느 한 조항에 있어서, 경계 인클로저는 경계 상자인, 방법.
전술한 설명에서, 본 개시의 양태들 및 실시예들은 구현마다 달라질 수 있는 다수의 특정 세부 사항들을 참조하여 기술되었다. 그에 따라, 설명 및 도면들은 제한적인 의미가 아니라 예시적인 의미로 간주되어야 한다. 본 발명의 범위의 유일한 독점적인 지표, 및 출원인들이 본 발명의 범위이도록 의도한 것은, 본 출원에서 특정 형태로 나오는 일련의 청구항들의 문언적 등가 범위이며, 임의의 후속 교정을 포함한다. 그러한 청구항들에 포함된 용어들에 대한 본 명세서에 명시적으로 기재된 임의의 정의들은 청구항들에서 사용되는 그러한 용어들의 의미를 결정한다. 추가적으로, 전술한 설명 및 이하의 청구항들에서 "더 포함하는"이라는 용어가 사용될 때, 이 문구에 뒤따르는 것은 추가적인 단계 또는 엔티티, 또는 이전에 언급된 단계 또는 엔티티의 서브단계/서브엔티티일 수 있다.

Claims (20)

  1. 디바이스에 있어서,
    적어도 하나의 프로세서; 및
    명령어들을 저장하는 적어도 하나의 메모리
    를 포함하며, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 적어도 하나의 프로세서로 하여금:
    검출된 차량의 적어도 일 부분에 대응하는 포인트들의 클러스터를 둘러싸는 경계 상자(bounding box)를 생성하게 하고 - 상기 경계 상자는 제1 측면 및 제2 측면을 포함함 -;
    상기 포인트들을 상기 제1 측면으로부터 일정 거리 내에 위치하는 제1 포인트 세트 및 상기 제2 측면으로부터 상기 거리 내에 위치하는 제2 포인트 세트로 소팅(sort)하게 하며;
    상기 제1 포인트 세트에 기초하여 제1 볼록 껍질(convex hull)을 생성하게 하고 상기 제2 포인트 세트에 기초하여 제2 볼록 껍질을 생성하게 하며;
    상기 제1 볼록 껍질의 일 부분 및 상기 제2 볼록 껍질의 일 부분에 기초하여 상기 제1 및 제2 포인트 세트들이 일정하게 유지되는 상기 경계 상자와 연관된 복수의 배향 간격들을 결정하게 하고;
    상기 경계 상자와 연관된 상기 복수의 배향 간격들에 기초하여 상기 경계 상자의 배향을 결정하게 하며 - 상기 경계 상자의 상기 배향은 상기 제1 포인트 세트의 각각의 포인트로부터 상기 제1 측면까지의 거리들 및 상기 제2 포인트 세트의 각각의 포인트로부터 상기 제2 측면까지의 거리들을 최소화함 -;
    상기 경계 상자의 상기 배향과 연관된 데이터를 자율 주행 차량의 제어 회로에 제공하게 하는 - 상기 배향과 연관된 상기 데이터는 상기 제어 회로로 하여금 상기 자율 주행 차량의 작동을 제어하게 하도록 구성됨 -, 디바이스.
  2. 제1항에 있어서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로 상기 적어도 하나의 프로세서로 하여금:
    상기 경계 상자와 연관된 전이 배향들을 결정하는 것에 기초하여 상기 제1 및 제2 포인트 세트들이 일정하게 유지되는 상기 경계 상자와 연관된 상기 복수의 배향 간격들을 결정하게 하며, 상기 전이 배향들은 상기 경계 상자의 상기 제1 측면에 더 가까운 상태로부터 상기 경계 상자의 상기 제2 측면에 더 가까운 상태로의 상기 포인트들 중 적어도 하나 포인트의 전이들에 대응하는, 디바이스.
  3. 제2항에 있어서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로 상기 적어도 하나의 프로세서로 하여금:
    상기 제1 볼록 껍질 또는 상기 제2 볼록 껍질의 적어도 하나의 부분에 접하는 라인들의 배향들을 결정하는 것에 기초하여 상기 전이 배향들을 결정하게 하는, 디바이스.
  4. 제2항 또는 제3항에 있어서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로 상기 적어도 하나의 프로세서로 하여금:
    상기 경계 상자와 연관된 상기 복수의 배향 간격들 각각에 대해, 상기 포인트들을 재소팅된 제1 포인트 세트 및 재소팅된 제2 포인트 세트로 재소팅하게 하여, 이에 의해 상기 경계 상자와 연관된 상기 배향 간격들에 대응하는 재소팅된 포인트 세트들을 생성하게 하는, 디바이스.
  5. 제4항에 있어서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로 상기 적어도 하나의 프로세서로 하여금:
    상기 경계 상자와 연관된 상기 복수의 배향 간격들 각각에 대해, 상기 대응하는 재소팅된 포인트 세트들에 기초하여 적어도 하나의 연속 함수를 생성하게 하는, 디바이스.
  6. 제4항에 있어서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로 상기 적어도 하나의 프로세서로 하여금:
    상기 경계 상자와 연관된 상기 복수의 배향 간격들 각각에 대해, 상기 경계 상자와 연관된 국소 최소 배향을 결정하게 하며, 상기 경계 상자와 연관된 상기 국소 최소 배향은, 상기 경계 상자와 연관된 상기 배향 간격들 내에서, 상기 재소팅된 제1 포인트 세트의 각각의 포인트로부터 상기 제1 측면까지의 거리들 및 상기 재소팅된 제2 포인트 세트의 각각의 포인트로부터 상기 제2 측면까지의 거리들을 국소적으로 최소화하는, 디바이스.
  7. 제6항에 있어서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로 상기 적어도 하나의 프로세서로 하여금:
    상기 경계 상자와 연관된 상기 복수의 배향 간격들에 기초하여 상기 경계 상자의 상기 배향을 결정하게 하며, 상기 경계 상자의 상기 배향은, 상기 경계 상자의 상기 국소 최소 배향들 중에서, 가장 작은 거리들에 대응하는 배향을 선택하는 것에 기초하여 상기 제1 포인트 세트의 각각의 포인트로부터 상기 제1 측면까지의 거리들 및 상기 제2 포인트 세트의 각각의 포인트로부터 상기 제2 측면까지의 거리들을 최소화하는, 디바이스.
  8. 제2항 또는 제3항에 있어서, 상기 명령어들은, 상기 적어도 하나의 프로세서에 의해 실행될 때, 추가로 상기 적어도 하나의 프로세서로 하여금:
    상기 복수의 배향 간격들 또는 상기 전이 배향들 중 적어도 하나를 상기 적어도 하나의 메모리에 저장하게 하고;
    상기 경계 상자와 연관된 상기 복수의 배향 간격들에 기초하여 상기 경계 상자의 상기 배향을 결정하게 하며,
    상기 경계 상자의 배향은 저장된 상기 배향 간격들 또는 상기 전이 배향들 중 상기 적어도 하나에 액세스하는 것에 기초하여 상기 제1 포인트 세트의 각각의 포인트로부터 상기 제1 측면까지의 거리들 및 상기 제2 포인트 세트의 각각의 포인트로부터 상기 제2 측면까지의 거리들을 최소화하는, 디바이스.
  9. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 검출된 차량의 적어도 하나의 부분에 대응하는 상기 포인트들의 클러스터는 LiDAR(Light Detection And Ranging) 측정치들, Radar(Radio Detection and Ranging) 측정치들, 적어도 하나의 이미지로부터 결정되는 위치 값들, 또는 초음파 측정치들 중 적어도 하나를 포함하는, 디바이스.
  10. 제1항 내지 제3항 중 어느 한 항에 있어서, 상기 검출된 차량의 적어도 하나의 부분에 대응하는 상기 포인트들의 클러스터는 상기 자율 주행 차량과 연관된 기준 점에 대한 2차원 좌표들을 포함하고, 상기 경계 상자의 상기 결정된 배향은 상기 자율 주행 차량과 연관된 좌표계에 대한 각도를 포함하는, 디바이스.
  11. 방법에 있어서,
    적어도 하나의 프로세서를 사용하여, 대상체의 검출된 부분들의 복수의 위치 값들을 수신하는 단계;
    상기 적어도 하나의 프로세서를 사용하여, 경계 인클로저(bounding enclosure)의 제1 측면에 가장 가까운 상기 위치 값들의 제1 세트의 제1 볼록 껍질 및 상기 경계 인클로저의 제2 측면에 가장 가까운 상기 위치 값들의 제2 세트의 제2 볼록 껍질을 결정하는 단계;
    상기 적어도 하나의 프로세서를 사용하여, 상기 제1 및 제2 볼록 껍질들의 적어도 일 부분에 기초하여, 각각의 위치 값이 상기 경계 인클로저의 상기 측면들 중 동일한 측면에 가장 가까이 있는 채로 유지되는 상기 경계 인클로저의 배향 간격들을 결정하는 단계;
    상기 적어도 하나의 프로세서를 사용하여, 상기 간격들로부터, 상기 경계 인클로저의 에지들과 상기 위치 값들 사이의 최소 거리에 대응하는 상기 경계 인클로저의 배향을 계산하는 단계; 및
    상기 적어도 하나의 프로세서를 사용하여, 상기 경계 상자의 상기 결정된 배향을 차량의 제어 회로에 출력하는 단계
    를 포함하는, 방법.
  12. 제11항에 있어서, 상기 경계 인클로저의 하나의 에지에 가장 가까운 상태로부터 상기 경계 인클로저의 다른 에지에 가장 가까운 상태로의 하나의 위치 값의 전이에 대응하는 상기 경계 인클로저의 배향들에 따라 상기 배향 간격들을 결정하는 단계
    를 더 포함하는, 방법.
  13. 제12항에 있어서, 상기 계산하는 단계는:
    최소 거리 배향 세트를 형성하도록, 각각의 배향 간격 내로부터, 상기 대응하는 경계 인클로저의 에지들과 상기 가장 가까운 위치 값들 사이의 상기 최소 거리에 대응하는 해당 배향을 선택하는 단계; 및
    상기 최소 거리 배향 세트 중에서, 가장 작은 상기 최소 거리에 대응하는 상기 배향을 선택하는 단계를 더 포함하는, 방법.
  14. 제13항에 있어서, 상기 최소 거리들에 대응하는 해당 배향들을 선택하는 단계는 적어도 하나의 연속 함수에 따라 해당 배향들을 선택하는 단계를 더 포함하는, 방법.
  15. 제12항 내지 제14항 중 어느 한 항에 있어서, 상기 배향 간격들을 메모리들 중 적어도 하나에 저장하는 단계
    를 더 포함하는, 방법.
  16. 제11항 내지 제14항 중 어느 한 항에 있어서, 적어도 부분적으로 상기 볼록 껍질들의 쌍들에 접하는 측면들을 갖는 상기 배향들 중의 배향들에 따라 상기 배향 간격들을 결정하는 단계
    를 더 포함하는, 방법.
  17. 제11항 내지 제14항 중 어느 한 항에 있어서, 상기 위치 값들은 LiDAR(Light Detection And Ranging) 측정치들, Radar(Radio Detection and Ranging) 측정치들, 적어도 하나의 이미지로부터 결정되는 위치 값들, 또는 초음파 측정치들 중 적어도 하나를 포함하는, 방법.
  18. 제11항 내지 제14항 중 어느 한 항에 있어서, 상기 대상체는 차량, 보행자, 도로의 일 부분, 또는 도로변 대상체 중 적어도 하나를 포함하는, 방법.
  19. 제11항 내지 제14항 중 어느 한 항에 있어서, 상기 최소 거리를 변경하지 않는 상기 위치 값들 중의 위치 값들을 거부하는 단계, 및 적어도 부분적으로 거부되지 않은 상기 위치 값들 중의 위치 값들에 따라 상기 경계 인클로저의 상기 배향 간격들을 결정하는 단계
    를 더 포함하는, 방법.
  20. 제11항 내지 제14항 중 어느 한 항에 있어서, 상기 경계 인클로저는 경계 상자인, 방법.
KR1020220097510A 2021-08-04 2022-08-04 효율적인 차량 크기 추정을 위한 시스템 및 방법 KR20230020934A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202163229370P 2021-08-04 2021-08-04
US63/229,370 2021-08-04
US17/804,522 2022-05-27
US17/804,522 US20230041031A1 (en) 2021-08-04 2022-05-27 Systems and methods for efficient vehicle extent estimation

Publications (1)

Publication Number Publication Date
KR20230020934A true KR20230020934A (ko) 2023-02-13

Family

ID=84540560

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220097510A KR20230020934A (ko) 2021-08-04 2022-08-04 효율적인 차량 크기 추정을 위한 시스템 및 방법

Country Status (5)

Country Link
US (1) US20230041031A1 (ko)
KR (1) KR20230020934A (ko)
CN (1) CN115705061A (ko)
DE (1) DE102022119204A1 (ko)
GB (1) GB2611610A (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US12012122B1 (en) * 2022-04-08 2024-06-18 Zoox, Inc. Object orientation estimator
US20230351765A1 (en) * 2022-04-28 2023-11-02 Toyota Research Institute, Inc. Systems and methods for detecting a reflection artifact in a point cloud

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11017242B2 (en) * 2019-02-19 2021-05-25 Unisys Corporation System and method using complex centroids for detecting object-of-interest speeds from two dimensional pictures
US11527084B2 (en) * 2020-07-10 2022-12-13 Huawei Technologies Co., Ltd. Method and system for generating a bird's eye view bounding box associated with an object
CN113179135B (zh) * 2021-04-23 2023-09-26 河海大学 一种水声传感网中基于信息熵最大化的流体边界提取方法

Also Published As

Publication number Publication date
GB2611610A (en) 2023-04-12
DE102022119204A1 (de) 2023-02-09
CN115705061A (zh) 2023-02-17
GB202211229D0 (en) 2022-09-14
US20230041031A1 (en) 2023-02-09

Similar Documents

Publication Publication Date Title
KR102628736B1 (ko) 딥 러닝 기반 카메라 교정
US11527085B1 (en) Multi-modal segmentation network for enhanced semantic labeling in mapping
KR20230020934A (ko) 효율적인 차량 크기 추정을 위한 시스템 및 방법
KR20230098557A (ko) 중복 로컬화 파이프라인들의 조합된 입력들을 사용하는차량 위치확인
KR20230120974A (ko) 레이더를 사용하여 로컬화 및 차선 검출을 위한 연석 기반의 특징 추출
US20230109909A1 (en) Object detection using radar and lidar fusion
KR20230001498A (ko) 사전 왜곡된 타겟을 사용하는 카메라 정렬 시스템 및 방법
KR102631148B1 (ko) 센서 데이터를 사용하여 자동으로 교통 신호 검출
KR20230037002A (ko) 머신 러닝 기반의 포인트 클라우드 정렬 분류
KR20230113097A (ko) 멀티 센서 이미징 시스템의 범용 센서 성능 및 교정 타겟
US20230227032A1 (en) Vehicle Dynamics Classification for Collision and Loss of Control Detection
US20220414930A1 (en) Geometric intrinsic camera calibration using diffractive optical element
US20240125617A1 (en) Aggregation of Data Representing Geographical Areas
US20230303124A1 (en) Predicting and controlling object crossings on vehicle routes
WO2024144826A1 (en) Vehicle travel path determination
WO2024081246A1 (en) Aggregation of data representing geographical areas
KR20230093158A (ko) 에이전트 우선순위화를 위한 방법 및 시스템
WO2024044079A2 (en) Maintaining intrinsic calibration of cameras with in-body image stabilization systems
KR20230113101A (ko) 내부 교정을 사용한 광학 어셈블리의 능동 정렬
WO2024081259A1 (en) Region of interest detection for image signal processing
KR20220156736A (ko) 종속 가능성 구조체로의 다중 타겟 추적