KR20210045454A - 트레이닝 데이터를 획득하기 위한 시스템 및 방법 - Google Patents

트레이닝 데이터를 획득하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20210045454A
KR20210045454A KR1020217007900A KR20217007900A KR20210045454A KR 20210045454 A KR20210045454 A KR 20210045454A KR 1020217007900 A KR1020217007900 A KR 1020217007900A KR 20217007900 A KR20217007900 A KR 20217007900A KR 20210045454 A KR20210045454 A KR 20210045454A
Authority
KR
South Korea
Prior art keywords
classifier
vehicle
sensor data
neural network
trigger
Prior art date
Application number
KR1020217007900A
Other languages
English (en)
Other versions
KR102538768B1 (ko
Inventor
안드레아 카르파티
Original Assignee
테슬라, 인크.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 테슬라, 인크. filed Critical 테슬라, 인크.
Priority to KR1020237017871A priority Critical patent/KR102662474B1/ko
Publication of KR20210045454A publication Critical patent/KR20210045454A/ko
Application granted granted Critical
Publication of KR102538768B1 publication Critical patent/KR102538768B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • 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
    • G06K9/00805
    • G06K9/6256
    • G06K9/6273
    • 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
    • G06N3/045Combinations of networks
    • G06N3/0454
    • 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/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • 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/774Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0108Measuring and analyzing of parameters relative to traffic conditions based on the source of data
    • G08G1/0112Measuring and analyzing of parameters relative to traffic conditions based on the source of data from the vehicle, e.g. floating car data [FCD]
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0125Traffic data processing
    • G08G1/0129Traffic data processing for creating historical data or processing based on historical data
    • GPHYSICS
    • G08SIGNALLING
    • G08GTRAFFIC CONTROL SYSTEMS
    • G08G1/00Traffic control systems for road vehicles
    • G08G1/01Detecting movement of traffic to be counted or controlled
    • G08G1/0104Measuring and analyzing of parameters relative to traffic conditions
    • G08G1/0125Traffic data processing
    • G08G1/0133Traffic data processing for classifying traffic situation
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S17/00Systems using the reflection or reradiation of electromagnetic waves other than radio waves, e.g. lidar systems
    • G01S17/88Lidar systems specially adapted for specific applications
    • G01S17/93Lidar systems specially adapted for specific applications for anti-collision purposes
    • G01S17/931Lidar systems specially adapted for specific applications for anti-collision purposes of land vehicles
    • GPHYSICS
    • 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
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V2201/00Indexing scheme relating to image or video recognition or understanding
    • G06V2201/08Detecting or categorising vehicles

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Evolutionary Computation (AREA)
  • Software Systems (AREA)
  • Artificial Intelligence (AREA)
  • Computing Systems (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Chemical & Material Sciences (AREA)
  • Analytical Chemistry (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Remote Sensing (AREA)
  • Electromagnetism (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Evolutionary Biology (AREA)
  • Computer Networks & Wireless Communication (AREA)

Abstract

트레이닝 데이터를 획득하기 위한 방법들 및 시스템들이 설명된다. 예시 방법은 센서를 수신하는 단계 및 센서 데이터에 뉴럴 네트워크를 적용하는 단게를 포함한다. 트리거 분류기는 센서 데이터에 대한 분류기 점수를 결정하기 위하여 뉴럴 네트워크의 중간 결과에 적용된다. 분류기 점수에 적어도 부분적으로 기초하여, 센서 데이터의 적어도 일부를 컴퓨터 네트워크를 통하여 전송할 지 여부 결정이 이루어진다. 긍정 결정에 따라, 센서 데이터는 전송되고 트레이닝 데이터를 발생시키는 데 사용된다.

Description

트레이닝 데이터를 획득하기 위한 시스템 및 방법
본 출원은 "뉴럴 네트워크 트레이닝(NEURAL NETWORK TRAINING)"라는 명칭으로 2108년 9월 14일에 출원된, 그 전체가 참조로 여기에 포함된, 미국 가출원 제62/731,651호의 전체를 참조로 포함한다.
본 출원과 함께 제출된 출원 데이터 시트(Application Data Sheet)에서 외국 또는 국내 우선권 주장이 명시된(identified) 모든 출원은 37 CFR 1.57하에서 그 전체가 참조로 포함된다.
본 개시는 머신 러닝을 위한 기법들 및 시스템들에 관련한다. 보다 더 구체적으로, 본 개시는 트레이닝 데이터의 발생을 위한 기법들에 관련한다.
자율 주행과 같은 어플리케이션에 사용된 딥 러닝 시스템들은 머신 러닝 모델을 트레이닝함으로써 개발된다. 전형적으로, 딥 러닝 시스템의 성능은 모델을 트레이닝하는 데 사용된 트레이닝 세트의 질(quality)에 의하여 적어도 부분적으로 제한된다. 많은 실례들에서, 상당한 리소스가 트레이닝 데이터를 어노테이닝, 선별, 수집하는 데 투자된다. 트레이닝 데이터 세트를 생성하기 위하여 요구된 노력은 상당(significant)할 수 있고, 종종 지루(tedious)하다. 더욱이, 머신 러닝 모델이 개선을 필요로 하는 특정한 사용 사례들(particular use cases)에 대한 데이터를 수집하는 것은 종종 어렵다(difficult).
트레이닝 데이터를 획득하기 위한 방법들 및 시스템들이 설명된다. 예시 방법은 센서를 수신하는 단계 및 센서 데이터에 뉴럴 네트워크를 적용하는 단게를 포함한다. 트리거 분류기는 센서 데이터에 대한 분류기 점수를 결정하기 위하여 뉴럴 네트워크의 중간 결과에 적용된다. 분류기 점수에 적어도 부분적으로 기초하여, 센서 데이터의 적어도 일부를 컴퓨터 네트워크를 통하여 전송할 지 여부 결정이 이루어진다. 긍정 결정에 따라, 센서 데이터는 전송되고 트레이닝 데이터를 발생시키는 데 사용된다.
다음의 도면들 및 연관된 설명들은 본 개시의 실시 예들을 설명하기 위하여 제공되고, 청구항의 범위를 제한하지 않는다. 본 개시의 측면과 많은 수반되는 이점들은, 첨부된 도면들과 연계하여 취해질 때 다음의 상세한 설명에 대한 참조에 의하여 동일한 것이 보다 더 잘 이해됨에 따라 보다 더 손쉽게(readily) 이해되어질 것이다:
도 1a는 도로에서 주행하고 도로에 위치된 타이어를 감지하는 자동차(automobile)를 도시하는 개략도(schematic diagram)이다.
도 1b는 트레이닝 데이터를 발생시키기 위한 시스템의 일 실시 예를 도시하는 블록 다이어그램(block diagram)이다.
도 2는 머신 러닝 모델의 중간 결과에 트리거 분류기를 적용하기 위한 프로세스의 실시 예를 도시하는 흐름도(flow diagram)이다.
도 3는 머신 러닝 모델의 중간 결과를 사용하는 트리거 분류기를 생성하기 위한 프로세스의 실시 예를 도시하는 흐름도이다.
도 4는 센서 데이터를 전송하고 트리거 분류기를 사용하는 잠재적인 트레이닝 데이터를 식별하기 위한 프로세스의 실시 예를 도시하는 흐름도이다.
도 5는 트리거 분류기에 의하여 식별된 사용 사례들에 해당하는 데이터로부터 트레이닝 데이터를 배포하기 위한 프로세스의 실시 예를 도시하는 흐름도이다.
도 6는 센서 데이터를 전송하고 차량 상 분류기의 선택을 실행하기 위한 프로세스의 실시 예를 도시하는 흐름도이다.
도 7는 잠재적인 트레이닝 데이터를 식별하기 위한 딥 러닝 시스템의 실시 예를 도시하는 블록 다이어그램이다.
프로세서에 커플링된 메모리에 의하여 제공된 및/또는 메모리 상에 저장된 명령어들(instructions)을 실행하도록 구성된 프로세서와 같은 프로세서; 컴퓨터 판독 가능한 저장 매체 상에 구현된 컴퓨터 프로그램 제품; 물질의 구성(composition of matter); 시스템; 장치(apparatus); 및/또는 프로세스(process)로서 포함하는 수많은 방식들로 구현(implement)될 수 있는 하나 이상의 혁신들(innovations)이 여기서 설명된다. 본 명세서에서, 이 구현들, 또는 혁신들이 취할 수 있는 임의의 다른 형태(form)는 기법들로서 참조될 수 있다. 일반적으로, 개시된 프로세스들의 단계들(steps)의 순서는 혁신들의 범위 내에서 변경(alter)될 수 있다. 다른 방식으로 언급되지 않는 한, 작업(task)을 수행하도록 구성되는 것으로 설명된 메모리 또는 프로세서와 같은 구성 요소(component)는 작업을 수행하도록 제조된(manufactured) 특정한 구성 요소(specific component) 또는 주어진 시간에 작업을 수행하도록 일시적으로 구성된 일반적인 구성 요소(general component)로 구현될 수 있다. 여기에서 사용된 바와 같이, '프로세서'라는 용어는 컴퓨터 프로그램 명령어들과 같은 데이터를 처리하도록 구성된 하나 이상의 디바이스들(devices), 회로들, 및/또는 프로세싱 코어들(processing cores)을 참조한다.
하나 이상의 혁신들의 하나 이상의 실시예들의 상세한 설명은 혁신들의 원리들(principles)을 도시하는 첨부된 도면들(accompanying figures)에 따라 아래에서 제공된다. 혁신들은 이러한 실시예들과 연결되어 설명되지만, 혁신들은 임의의 실시예로 제한되지 않는다. 혁신들의 범위는 청구항들에 의해서만 오직 제한되고 혁신들은 수많은 대안들, 수정들 및 동등한 것들을 포함(encompass)한다. 수많은 구체적인 세부사항들(specific details)은 혁신들의 철저한(thorough) 이해를 제공하기 위하여 다음의 설명들에 명시(set forth)된다. 이 세부사항들은 예시의 목적을 위하여 제공되고, 혁신들은 이 구체적인 세부사항들(specific details) 중 일부 또는 모두 없이 청구항들에 따라 실시(practice)될 수 있다. 명확함의 목적을 위하여, 혁신들과 관련된 기술 분야들(technical fields)에서 알려진 기술 자료(technical material)는 발명을 불필요하게 불명료(obscure)해지지 않기 위하여 상세히 설명되지 않았다.
개요
이 명세서는 다음의 기술적 과제들(technical problems)을 적어도 다루는(address) 혁신들을 설명한다. 효과적인 머신 러닝 기법들은 근본적인(underlying) 머신 러닝 모델들에게 알리는(inform) 데 사용되는 트레이닝 데이터 세트들에 의존한다. 예를 들어, 뉴럴 네트워크는 예시들의 수천, 수십만, 수백만 등을 사용하여 트레이닝될 수 있다. 트레이닝동안, 이 예시들은 뉴럴 네트워크의 파라미터들(parameters)(예를 들어, 가중치들, 바이어스들, 등)을 조정하는 데 사용될 수 있다. 추가적으로, 이 예시들은 뉴럴 네트워크의 하이퍼파라미터들(예를 들어, 레이어들의 수)을 조정하는데 사용될 수 있다. 그러므로, 트레이닝 데이터에 대한 접근(access)은 이러한 머신 러닝 기법들의 사용 상의 제약(constraint)이다.
더 깊은 뉴럴 네트워크들(deeper neural networks)과 같이 머신 러닝 모델들이 보다 더 복잡해지면서, 큰 트레이닝 데이터 세트의 필요성도 따라서 증가한다. 이 더 깊은 뉴럴 네트워크들은, 더 얕은 뉴럴 네트워크들의(their) 일반화 가능성이 높은 것을 보장하는 보다 더 얕은 뉴럴 네트워크들(shallower neural networks)에 비교될 때, 트레이닝 예시들의 더 큰(greater) 수를 요구할 수 있다. 예를 들어, 뉴럴 네트워크는 트레이닝 데이터에 관하여 매우(highly) 정확(accurate)하도록 트레이닝될 수 있으며, 뉴럴 네트워크는 보이지 않는(unseen) 미래 예시들에 잘 일반화하지 않을 수 있다. 이 예시에서, 뉴럴 네트워크는 트레이닝 데이터에 포함된 추가적인 예시들로부터 이점(benefit)을 얻을 수 있다.
트레이닝 데이터를 획득(obtain)하는 것은 엄청난(enormous) 기술적 장애들(technical hurdles)을 제시할 수 있는 것이 이해될 수 있다. 예를 들어, 특정(certain) 머신 러닝 모델들은 이미지에 포함된 특징들(features) 또는 객체들(objects)을 분류(classify)하는 데 사용될 수 있다. 이 예시에서, 머신 러닝 모델은 제2 객체(예를 들어, 정지 사인(stop sign))로부터 제1 객체(예를 들어, 자동차)를 인식(recognize)하도록 학습(learn)할 수 있다. 이 머신 러닝 모델들의 효율성(effectiveness)은 특징들 또는 객체들의 예시의 개수에 따라 제약될(constrained) 수 있다. 예를 들어, 엔티티(entity)는 거리에서 타고 있는(ridden) 자전거를 인식하는 머신 러닝 모델을 원할 수 있다. 또다른 예시에 따르면, 엔티티는 자동차의 뒤에 운반된(carried) 자전거(bike)를 인식하는 머신 러닝 모델을 원할 수 있다. 이 예시들의 충분한(sufficient) 트레이닝 예시들이 없으면, 머신 러닝 모델은 사용 가능한(usable) 그것의(its) 인식에서 충분하게 정확하지 않을 수 있다. 일반적으로, 엔티티는 특정(certain) 특징들 또는 객체들의 포함(inclusion)을 위하여 사람들(persons)이 이미지에 라벨링(label) 하는 대단한(great) 노력들(efforts)을 소비하도록 요구될 수 있다. 예를 들어, 사람들은 수동으로(manually) 이미지들을 검토(review)해야 할 것이고 그 이후에(then) 특정(certain) 특징들 또는 객체들에 대응하는 것에 따라 이미지들의 일부들에 라벨들을 할당할 수 있다.
한 실시예는 빠르게(rapidly) 트레이닝 데이터를 발생시킴으로써 이러한 문제를 해결하는 방법 및 시스템이다. 한 실시예에서, 트레이닝 데이터는 임의의 원하는 학습 가능한(learnable) 특징의 예시를 포함할 수 있다. 컴퓨터 비전(computer vision)과 관하여, 이미지들에 임의의 원하는 객체 또는 특징의 예시들을 포함하는 트레이닝 데이터는 빠르게 발생될 수 있다. 이 객체들 또는 특징들은 전형적으로(typically) '엣지 케이스들(edge cases)'을 식별하기에 곤란한(tough) 것을 나타낼 수 있다. 예를 들어, 엔티티에 의하여 원해진 복잡한 장면들(scenes)의 이미지들을 포함하는 트레이닝 데이터가 발생될 수 있다. 이 예시에서, 엔티티는 차량들의 앞 또는 뒤에 자전거들(예를 들어, 공공 버스의 프론트 랙(front-rack)에 운반되는 자전거)을 묘사(depict)하는 이미지들을 획득하는 것을 선호할 수 있다.
위에서 설명된 엔티티는 전 세계의 다양한 도로, 또는 그렇지 않으면 가항(navigable) 지역들을 순유(travel about)하는 차량들의 다수(예를 들어, 수천, 수백만)를 활용(leverage)할 수 있다. 이 차량들은 센서들(예를 들어, 카메라들)을 포함하거나 그렇지 않으면 접근을 가질 수 있다. 이 차량들이 순유(travel about)함에 따라, 그들이(they) 센서 정보(sensor information)을 캡쳐(capture)할 수 있다. 예를 들어, 센서 정보는 차량들의 정상적인 작동의 과정(normal course of operation)에서 캡쳐될 수 있다. 센서 정보는 차로 네비게이션과 같은 특정(certain) 자동화된 주행 특징들(driving features)에 대해 차량들에 의하여 사용될 수 있다. 그러나, 일 실시예에서, 시스템은, 머신 러닝 시스템들을 위한 트레이닝 데이터로 사용되는, 엔티티에 의하여 원해지는 객체들 또는 이미지 특징들의 예시들을 차량들이 수집(collect)하도록 허용하는 소프트웨어 및 회로들을 포함한다.
예를 들어, 분류기들(예를 들어, 작은 또는 얕은 뉴럴 네트워크들, 서포트 벡터 머신들(support vector machines), 등)를 차량들 중 적어도 일부에 업로드할 수 있다. 차량들은 정상 작동 동안 센서 정보(예를 들어, 이미지들, 비디오)를 획득할 수 있고, 분류기들은 센서 정보에 표현된 특정한 특징들 또는 객체들(specific features or objects)을 식별하도록 구성될 수 있다. 차량들에 제공되기에 앞서, 이 분류기들은 특정한 이미지 특징들 또는 객체들(specific image features or objects)을 포함하여 이미지들을 분류하도록 트레이닝될 수 있다. 예를 들어, 특정한 이미지 특징 또는 객체들(specific image features or objects)의 예시들의 제한된 수(예를 들어, 백, 천, 등)는 이 분류기들을 트레이닝하는 데 사용될 수 있다. 설명될 바와 같이, 분류기들은 그 이후에(then) 차량들에서 실행하는 머신 러닝 모델의 중간 레이어로부터 정보를 사용하여 센서 데이터를 분류할 수 있다. 예시 머신 러닝 모델은 컨볼루션 네트워크(convolutional network)를 포함할 수 있다. 예시 머신 러닝 모델은, 적어도 부분적으로, 전술된(above-described) 자동화된 주행 특징들을 위해 사용될 수 있다. 그러므로, 분류기들은 기존(existent) 예시 머신 러닝 모델을 활용할 수 있다.
분류기가 분류기들과 연관된 특정한 이미지 특징들 또는 객체들(specific image features or objects)을 인식하는 데 사용될 수 있도록, 이 분류기들 중 다수(multitude)는 차량 내의 컴퓨터 시스템에 업로드 될 수 있다. 특정한(particular) 특징 또는 객체를 포함한 것으로 분류기에 의하여 지정된(designated) 캡쳐된 이미지들은 그 이후에 중앙 서버 시스템(central server system)으로 전송되고 뉴럴 네트워크 시스템들을 위한 트레이닝 데이터로서 사용될 수 있다. 분류기들은 유형적인(typical) 작동에서 차량들에 의해 이미 실행된 기존의(existing) 머신 러닝 모델들을 활용할 수 있기 때문에, 분류기들은 프로세싱 요구사항들의 측면에서(in terms of) 효율적일 수 있다. 추가적으로, 특정(certain) 특징들의 찾아내기 힘든 '엣지 케이스들'의 예시들을 획득할 가능성이 증가하는 이질적인(disparate) 환경들에서 주행되는 많은 수의 차량들이 있을 수 있다. 이 방식에서, 엔티티는 엔티티에게 관심인(interest to the entity) 특정한 이미지 특징들 또는 객체들(specific image features or objects)을 표현하는 센서 정보(예를 들어, 이미지들)를 빠르게 획득할 수 있다.
본 명세서에서, 학습될 특징 또는 객체는 센서 데이터에 캡쳐될 수 있는 임의의 현실 세계의 객체(real-world object), 시나리오, 특징 등을 표현할 수 있다. 예시 객체들 또는 특징들은 도로에 타이어, 터널 출구, 자전거, 도로로 뻗은 가지들을 갖는 나무, 특정한(particular) 방향으로 향해지거나(oriented) 특정한(particular) 행동 또는 기동(maneuver)을 수행하는 차량들, 등을 포함할 수 있다. 더욱이, 여기서 참조는 목적 또는 사용 사례(use case)를 위한 트레이닝 데이터를 식별하는 것으로 만들어진다. 예시 목적 또는 사용 사례는 하나 이상의 객체들, 특징들, 등을 식별하는 것을 포함할 수 있다. 추가적으로, 본 명세서는 이미지들과 같은 센서 정보를 획득하는 차량을 설명하는 동안, 여기서 설명된 특징들이 광범위하게(broadly) 적용 가능(applicable)할 수 있는 것이 이해될 수 있다. 예를 들어, 분류기는 사용자 디바이스들(예를 들어, 스마트 폰들)에 제공되고, 특정한(particular) 이미지 특징들 또는 객체들을 인식하는 데 사용될 수 있다. 또다른 예시에 따르면, 분류기들은 비행기들(airplanes), 무인 항공기들(unmanned aerial vehicles), 무인 차량들(unmanned vehicles) 등에서 사용될 수 있다.
트레이닝 데이터의 발생
특정한(particular) 사용 사례들과 관련 있는(relevant) 추가적인 트레이닝 데이터를 식별하는 것을 위한 뉴럴 네트워크 트레이닝 기법이 개시된다. 추가적인 트레이닝 데이터, 특히 사용 사례를 올바르게(correctly) 분석하기 어려운 데이터를 식별 및 수집함으로써, 딥러닝 시스템(deep learning system)은 그것의 성능(performance)을 개선(improve)하도록 재트레이닝(re-trained)될 수 있다. 예를 들어, 어려운 사용 사례는 식별될 수 있고 데이터가 사용 사례에 기초하여 수집될 수 있다. 그 후, 예전(old) 모델을 능가(outperform)하는 새로운(new) 머신 러닝 모델은 새로 수집된 데이터로 트레이닝 될 수 있다. 다양한 실시 예에서, 기존 머신 러닝 모델은 관련 있는 트레이닝 데이터를 식별하기 위하여 트리거 분류기와 함께 이용(utilize)된다. 그 후에, 관련 있는 트레이닝 데이터는 새로운 트레이닝 데이터를 생성하는 프로세싱을 위하여 다시(back) 전송된다. 일부 실시예에서, 타겟팅된(targeted) 사용 사례의 대표적인 초기 데이터 세트는 생성되고 트리거 분류기를 생성시키는 데 사용된다.
예를 들어, 자율 주행을 위한 딥러닝 시스템은 터널 출구를 식별 및 분석하는 것에 어려움을 가질 수 있다. 트레이닝 데이터 세트는 터널 출구의 긍정 및 부정 예시들(positive and negative examples)과 함께 생성된다. 일부 실시예에서, 트리거 분류기는 기존 머신 러닝 모델의 레이어의 중간 출력을 사용하는 초기 트레이닝 데이터 세트로 트레이닝 된다. 일부 실시예에서, 레이어는 중간 레이어이다. 예를 들어, 트레이닝 세트로부터 데이터는 기존 머신 러닝 모델에 피드(fed)되고 모델의 제2 내지 마지막 레이어의 출력은 트리거 분류기를 트레이닝 하기 위해 입력으로 사용된다. 일부 실시예에서, 트리거 분류기는 배포(deployed)된 딥러닝 어플리케이션으로부터 오프라인(offline) 트레이닝된 서포트 벡터 머신이다. 일단 한번 트레이닝되면, 트리거 분류기는 차량의 자율 주행 시스템 내에서 이미 사용되는 딥러닝 시스템을 따라서 실행(run)하도록 설치 및 배포될 수 있다. 예를 들어, 트리거 분류기는 차량에 트리거 분류기를 다운로드(download) 및 설치(install)하는 무선 네트워크를 통하여 배포될 수 있다. 트리거 분류기는 분류기 점수를 결정하기 위하여 배포된 딥러닝 시스템의 동일 레이어의 중간 출력에 적용(apply)된다. 일부 실시예에서, 트리거 분류기로의 입력은 자율 차량에 의하여 캡쳐된 센서 데이터에, 예를 들어 차량의 카메라들에 의하여 캡쳐된 데이터에, 적용된 컨볼루션 뉴럴 네트워크(CNN)의 레이어의 중간 출력이다.
일부 실시 예에서, 단일(single) 서포트 벡터 머신, 작은 뉴럴 네트워크, 또는 또 다른 적절한 분류기를 사용하여 구현된 트리거 분류기는 이미지의 특정한 위치들(specific locations)에게 및/또는 전체 캡쳐된 이미지에 적용될 수 있다. 예를 들어, 트리거 분류기는 매 장소의 서브셋(subset) 또는 이미지의 단일(single) 장소마다 매번 적용될 수 있다. 트리거 분류기는 동물들, 쇼핑 카트들(shopping carts)과 같은 작은 부분들을 식별하기 위하여, 공간적으로 뉴럴 네트워크의 특징들에 걸쳐 효과적으로 스캔하도록 적용될 수 있다. 일단 한번 적용되면, 트리거 분류기는 분류기 점수를 결정하고, 점수에 따라서 센서 데이터는 식별되고 잠재적으로 유용한(useful) 트레이닝 데이터로 보유된다. 한 예시에 따르면, 트리거 분류기는 얼마나 비슷하게(how likely) 데이터가 터널 출구를 표현하는 지에 기초하여 카메라로부터 센서 데이터를 채점(score)한다. 터널 출구를 비슷하게 표현하고 점수가 높은 센서 데이터는 트레이닝 데이터로 사용되도록 플래그가 지정되고 보유된다. 일부 실시 예에서, 필터들과 같은 트리거 속성들(trigger properties)은, 센서 데이터를 보유하는 데 필요한 컨디션들(conditions), 분류기 점수가 임계(threshold)를 초과하는 상황들(circumstances) 및/또는 분류기 점수를 결정하는 것을 진행하기 위해 충족되어야 하는 컨디션을 결정하기 위하여 트리거 분류기에 적용된다. 예를 들어, 일부 실시 예에서, 센서 데이터는 매 30분마다 한 번 이하와 같이 매 간격(interval)마다 많아도 한번 채점되고 수집된다. 일부 실시 예에서, 분류기 점수는 수집 및 보유되는 센서 데이터에 대한 임계를 초과(exceed)해야 한다. 센서 데이터가 구성된 임계를 충족하는 이벤트에서, 센서 데이터는 보유되고 잠재적인 새로운 트레이닝 데이터로 사용된다. 일 실시 예에서, 센서 데이터는 트레이닝 데이터 시스템을 관리하는 서버에 무선으로 업로드된다.
일부 실시 예에서, 추가적인 메타데이터가 장소, 도로 유형, 차량의 모델, 차량이 왼손 주행인지 오른손 주행인지 여부(whether the vehicle is left-hand drive or right-hand drive), 시각(time of day), 분류기 점수, 마지막으로 전송된 센서 데이터로부터 시간의 길이(the length of time since the last transmitted sensor data), 및/또는 속력, 가속도, 스티어링(steering), 브레이크, 스티어링 각도(steering angle), 등과 같은 차량 컨트롤 파라미터들/작동 컨디션들과 같은 센서 데이터와 함께 수집 및 보유된다. 다양한 실시 예에서, 데이터 및 메타데이터는 특정한(particular) 사용 사례를 위한 딥러닝 시스템의 어플리케이션을 개선하는 것은 새로운 트레이닝 데이터 세트를 생성하기 위해 사용되는 컴퓨터 데이터 서버로 전송된다. 예를 들어, 식별된 터널 출구들과 연관된 보유된 센서 데이터는 트리거 분류기에 의하여 식별되고 터널 출구들을 식별하기 위한 추가적인 트레이닝 데이터를 생성하는 데 사용된다.
일부 실시 예에서, 업로드 이후 센서 데이터는 차량의 자율 주행 특징들을 개선하는 데 사용된 새로운 트레이닝 데이터 세트를 생성하기 위하여 검토(review)되고 어노테이트(annotate)된다. 예를 들어, 데이터는 터널 출구들의 긍정 샘플들(positive samples)로 어노테이트 될 수 있고, 더 많은 사용 사례들을 포함하는 원시 트레이닝 데이터 세트(original training data set)를 보충(supplement)에 사용될 수 있다. 새로운 머신 러닝 모델은 자율 차량 뉴럴 네트워크를 개선하기 위해 새로 선별(curate)된 데이터 세트를 사용하여 트레이닝 되고, 그 이후에 자율 차량 시스템으로 업데이트처럼 차량들에 배포된다. 새로 배포된 머신 러닝 모델은 트리거 분류기에 의하여 타겟팅된 특정한(particular) 사용 사례(예를 들어, 터널 출구)를 감지(detect)하는 개선된 능력을 가진다. 일 실시 예로서, 개선된 모델은 터널 출구들을 식별하기에 있어 개선된 정확도와 성능을 가질 것이다. 사용 사례들의 추가적인 예시들은 특정한(particular) 객체들(예를 들어, 쇼핑 카트들, 동물들, 등), 도로 컨디션들(road conditions), 날씨, 주행 패턴들, 위험 요소들(hazards), 등을 식별하도록 트레이닝된 트리거 분류기들을 포함한다.
다양한 실시 예에서, 트리거 분류기는 자율 주행에 사용되는 딥러닝 시스템의 구성 요소들과 같은, 차량을 위한 핵심(core) 소프트웨어를 업데이트 없이 차량들의 무리(fleet)로 배치 및 개발(develop)될 수 있다. 차량의 기존 뉴럴 네트워크 소프트웨어와 연관되고 이에 연결된 새롭고 업데이트된 트리거 분류기들은, 다른 것들 중 주행, 안전 시스템들, 및 내비게이션(navigation)과 같은 핵심 차량 기능성(functionality)에 거의 임팩트(impact)를 주지 않고 훨씬 더 자주 차량들에 푸시(push)될 수 있다. 예를 들어, 트리거 분류기는 자갈길(cobblestone roads)을 식별하도록 트레이닝 될 수 있고, 차량의 무리(fleet)에 배포될 수 있고, 몇 분 내에 조약돌 도로들의 이미지와 관련된 데이터를 모으기(gather) 시작할 수 있다. 개시된 기법들을 사용하여, 특정한 사용 사례들(specific use cases)에 대한 관련 있는 트레이닝 데이터를 모으는 속력은 차량의 승객들(passengers)이나 운전자(driver)에 또는 차량 작동 진행(ongoing)에 임팩트을 주지 않고 엄청나게(vastly) 개선된다. 새로운 트리거 분류기들은 길고(long) 힘든(laborious) 설치 프로세스 없이 배포될 수 있다. 프로세스는 원격(remote)으로 및 동적으로, 예를 들어 서비스 장소로 차량을 가져오는 것을 요구하는 것 없이 오버-디-에어 업데이트(over-the-air update)를 사용하여, 수행될 수 있다. 이러한 업데이트 이후, 트리거 분류기는 트리거 컨디션들을 충족하는 임의의 것에 대한 캡쳐된 이미지들을 스캔(scan)하기 시작할 수 있고, 그 이후에 미래(future) 트레이닝 데이터 객체들로서 이 컨디션들을 충족하는 이미지들을 업로드할 수 있다.
일부 실시예에서, 센서 데이터는 상이한 디바이스들에 의해 수신 및 전송된다. 예를 들어, 그것의 주변(surroundings)에 관련된 정보를 모으는 것을 위한 센서들을 포함하는 자율 주행 기술이 탑재(equip)된 차량은, 그것의 센서들로부터 센서 데이터를 수신한다. 일부 실시 예에서, 차량에는 자율 주행과 관련된 데이터를 캡쳐하기 위하여, 카메라들, 초음파 센서들(ultrasonic sensors), 레이더 센서들(radar sensors), LiDAR, 및/또는 다른 적절한 센서들과 같은 센서들이 탑재된다. 일부 실시 예에서, 뉴럴 네트워크는 센서 데이터에 적용된다. 예를 들어, 컨볼루션 뉴럴 네트워크(CNN)는 차량의 앞에 도로의 이미지와 같은 수신된 센서 데이터에 적용된다. CNN은 캡쳐된 센서 데이터에 객체를 식별하는 데 사용될 수 있고 뉴럴 네트워크를 적용한 것의 결과는 차량을 컨트롤 하는 것에 사용될 수 있다. 예시 로서, 도로 차로 경계선들은 식별되고, 식별된 차로 경계선들 사이에 차량을 유지(maintain)하는 데 사용된다.
일부 실시 예에서, 트리거 분류기는 센서 데이터에 대한 분류기 점수를 결정하기 위하여 뉴럴 네트워크의 중간 출력에 적용된다. 예를 들어, 레이어의 중간 출력은 센서 데이터에 대한 분류기 점수를 결정하는 트리거 분류기로 피드(fed)된다. 일부 실시 예에서, 뉴럴 네트워크는 다수의(multiple) 중간 레이어들을 포함하고, 트리거 분류기로의 입력을 수신할 특정한(particular) 중간 출력 (및 해당 레이어)은 구성 가능하다. 예를 들어, 트리거 분류기는 두 번째 내지 마지막(the second to last), 세 번째 내지 마지막(the third to last), 네 번째 내지 마지막(the fourth to last) 등인 레이어의 출력을 수신하도록 구성될 수 있다. 일부 실시 예에서, 중간 출력은 뉴럴 네트워크의 중간 레이어들 중 임의의 것으로부터 출력이다. 일부 실시 예에서, 중간 출력은 뉴럴 네트워크의 제1 레이어의 출력일 수 있다. 일부 실시 예에서, 분류기 점수에 적어도 부분적으로 기초하여 센서 데이터의 적어도 일부를 컴퓨터 네트워크를 통하여 전송할 지 여부의 결정이 이루어진다. 예를 들어, 분류기 점수가 추가 사용(further use)을 위한 데이터를 전송하고 센서 데이터를 보유하기 위해 요구된 임계를 초과하는 지 여부에 기초하여 결정이 이루어진다. 일부 실시 예에서, 추가적인 트리거 분류기 컨디션들이 충족되었는지 여부 및 분류기 점수에 기초하여 결정이 이루어진다. 요구된 컨디션들의 예시들은, 차량의 위치, 차량이 주행해온 시간의 양, 차량의 유형, 자율 주행 특징이 최근에 이탈(disengage)되었는 지 여부, 등에 기초하여 캡쳐된 센서 데이터를 필터링하는 데 사용될 수 있다. 다양한 실시 예에서, 요구된 컨디션들 및 점수 임계를 충족하는 센서 데이터는 추가 프로세싱을 위하여 컴퓨터 서버(computer server)로 WiFi 또는 셀룰러 네트워크(cellular network)와 같은 컴퓨터 네트워크를 통하여 전송된다. 일부 실시 예에서, 데이터는 새롭거나 추가적인 트레이닝 데이터 세트를 생성하도록 처리된다. 다양한 실시 예에서, 트레이닝 데이터는 트레이닝 및 검증(validation) 데이터 모두를 포함한다.
예시 블록 다이어그램들(Example Block Diagrams)
도 1a는 도로를 따라 여행하고 그것의 주변으로부터 트레이닝 데이터를 모으는 차량을 설명하는 개략도(schematic diagram)이다. 예시 블록 다이어그램에서, 차량(102)은 도로 주변을 주행하고 있다. 차량(102)은 센서들이 차량(102)에 관한 센서 볼륨(sensor volume)(104)에 관한 정보를 캡쳐하도록 카메라, 레이더, 등과 같은 센서를 포함할 수 있다. 예시 센서(107)는 도 1a에 도시된다. 예를 들어, 차량(102)은 차량(102)의 주변의 이미지들을 획득할 수 있다. 이 획득된 이미지들은 그 후에 주변을 이해하기 위한 노력으로 분석될 수 있다. 예를 들어, 이미지들은 이미지들에 표현된 객체를 명확히(classify)하도록 분석될 수 있다. 이 예시에서, 이미지들은 다른 차량들, 도로 표시들(road markings), 나무 또는 다른 식물 (vegetation), 도로에서 장애물(obstacles in the road), 보행자들(pedestrians), 표지판들(signs), 등을 식별하도록 분석될 수 있다. 아래에서 상세히 설명될 바와 같이, 차량(102)은 센서 정보를 분석하기 위하여 머신 러닝 기법들을 활용할 수 있다. 예를 들어, 하나 이상의 컨볼루션 뉴럴 네트워크들은 예시 센서 볼륨(104)에 포함된 객체들을 명확히 하는 데 사용될 수 있다. 차량(102)에 의하여 사용될 수 있는 딥러닝 시스템(700)의 예시 설명은 도 1B 및 도 7에 관하여 아래에 포함된다.
전술된 머신 러닝 기법들은 센서 정보를 분석하는 데 사용될 수 있는 반면에, 특정(certain) 현실 세계의 객체들 또는 시나리오들은 차량(102)이 정확(accurate)하게 이해하거나 명확히 하기에 어려울 수 있다. 예를 들어, 타이어(106)는 차량(102)이 주행하고 있는 도로 상에 위치하는 것으로 나타난다. 이 타이어(106)를 인식이 가능인 것은 차량(102)의 성능 및 안전을 강화할 수 있다. 예시에 따르면, 타이어(106)가 차량(102)의 경로(path)에 있다면 차량(102)은 타이어(106)의 주위(around)를 탐색(navigate)하기 위한 자동화된 주행 기법들을 수행할 수 있다. 추가적으로, 타이어가 차량(102)의 경로에 있지 않을지라도, 타이어(102)를 인식하는 것이 차량(102)의 자동화된 주행에 여전히(still) 영향을 줄 수 있다. 예를 들어, 다른 차량들이 타이어(106)를 피하기 위하여 차량(102)의 차로로 갑자기(suddenly) 바꿀(veer) 수 있다. 이 예시에서, 타이어(106)를 식별하는 것이 가능인 것은 그러므로 차량(102)의 미래 예측된(predicted) 움직임들(예를 들어, 또 다른 차량이 타이어(106)에 접근함에 따라 사전적으로(preemptively) 속도를 감소)을 알릴 수 있다.
그러므로, 차량(102)이 센서 볼륨(104)에 포함되는 동안 타이어(106)를 정확하게 식별하는 것은 유익(beneficial)할 수 있다. 그러나, 그리고 전술된 바와 같이, 타이어(106)를 식별 가능인 것은 상당한(substantial) 트레이닝 데이터를 요구할 수 있다. 트레이닝 데이터는 다양한 도로들에 있는 모든 구성들의 타이어들의 다수의 이미지들을 포함할 수 있다. 트레이닝 데이터는 상이한 도로들에 상이한 타이어들의 이미지들의 포함(inclusion)에 의하여 강화될 수 있다. 추가적으로, 트레이닝 데이터는 상이한 주행 환경들에서 상이한 도로들에 상이한 타이어들의 이미지들에 의하여 강화될 수 있다. 예를 들어, 상이한 도로들에 눈에 부분적으로 포함된(included) 타이어들의 이미지들을 가지는 것은 유리(advantageous)할 수 있다. 또 다른 예시에 따르면, 먼지가 많은(dusty) 도로에 포함된 수축된(deflated) 타이어들의 이미지를 가지는 것은 유리할 수 있다. 이러한 이미지들에 대한 접근을 얻는(acquire) 것은 좋은(great) 기술적인 문제들(challenges)을 제시할(present) 수 있다.
설명될 바와 같이, 하나 이상의 분류기들은 타이어들을 인식하도록 트레이닝될 수 있다. 예를 들어, 분류기들은 트레이닝 예시들의 제한된 세트를 사용하여 트레이닝 될 수 있다. 이 분류기들은 그 이후에 오버-디-에어(over the air; OTA) 업데이트를 통하여 차량(102)으로 제공될 수 있다. 예를 들어, OTA 업데이트는 차량(102)을 통해 (예를 들어, Wi-Fi를 걸쳐, LTE 네트워크들과 같은 셀룰러 신호들(cellular signals)을 통하여, 등) 무선으로 수신될 수 있다. 분류기는 그 이후에 차량(102)을 획득한 센서 정보를 분석할 수 있다. 분류기가 타이어는 센서 정보(예를 들어, 이미지) 내에 묘사(depict)된 것을 감지하면, 차량(102)은 프로세싱을 위한 외부 시스템(outside system)으로 센서 데이터를 전송할 수 있다. 이 외부 시스템은 타이어들의 트레이닝 데이터 세트들을 생성하는 이러한 수신된 센서 정보들을 집합(aggregate)시킨다. 설명될 바와 같이, 이 트레이닝 데이터 세트들은 그 이후에 차량(102) 상에 실행하는 복잡한 머신 러닝 모델들을 트레이닝하는 데 사용될 수 있다. 이 방식으로, 머신 러닝 모델들 및 그러므로 자동화된 주행 작업들을 수행하는 차량(102)의 능력이 강화될 수 있다.
도 1b는 트레이닝 데이터의 발생을 도시하는 블록 다이어그램이다. 이 도시에서, 센서 데이터(108)는 차량(102)에 의하여 수신되고 있다. 센서 데이터(108)는 도 1에 도시된 타이어(106)를 묘사하는 비디오나 이미지들을 하나 이상 포함할 수 있다. 센서 데이터(108)는 차량(102)에 포함된 하나 이상의 프로세서들의 딥러닝 시스템(700)에 제공될 수 있다. 딥러닝 시스템(700)의 측면들의 예시는 도 1b에 도시된다.
도시된 바에 따라, 딥러닝 시스템(700)은 수신된 센서 데이터(108)를 분석하기 위하여 컨볼루션 뉴럴 네트워크와 같은 예시 머신 러닝 기법들을 사용할 수 있다. 도 2에 설명된 바에 따라, 센서 데이터(108)는 전처리(예를 들어, 정규화(normalized), 필터를 통하여 패스(pass)됨, 등)될 수 있다. 컨볼루션 뉴럴 네트워크는 컨볼루션 레이어들의 다수를 포함할 수 있는 것이 이해될 수 있다. 이 컨볼루션 레이어들은 출력 볼륨들이 생성되는 식으로 컨볼루션 필터들을 적용할 수 있다. 일부 실시 예에서, 하나 이상의 완전히 연결된(fully-connected) 또는 밀집된(dense) 레이어들은 센서 데이터(108)에 포함된 객체들 또는 특징들을 명확하게 하기 위한 최종 레이어들(final layers)로 사용될 수 있다. 예시에 따르면, 하나 이상의 소프트 맥스 레이어들(softmax layers) 또는 독립적인 로지스틱 분류기들(logistic classifier)은 객체들 또는 특징들을 명확하게 하는 데 사용될 수 있다. 이 방식으로, 딥러닝 시스템(700)은 차량(102) 주변의 센서 볼륨(104)에 포함된 현실 세계의 객체들, 시나리오들, 등을 식별할 수 있다. 이 현실 세계 객체들, 시나리오들, 등을 식별하는 것에 기초하여, 차량(102)은 자동화된 주행 작업들을 수행할 수 있다. 그러므로, 차량(102)은 그것의 유형적인 작동에서 컨볼루션 뉴럴 네트워크를 구현할 수 있다.
딥러닝 시스템(700)은 하나 이상의 분류기들을 포함한다. 예를 들어, 분류기 A 내지 분류기 N(110A 내지 110N)는 도 1b에 도시된다. 이 분류기들(110A 내지 110N)은 차량(102)으로 OTA 업데이트들(예를 들어, 차량으로 제공된 주기적인(periodic) 업데이트들)을 통하여 수신되었을 수 있다. 분류기들(110A 내지 110N)을 수신하기에 앞서, 엔티티는 센서 데이터에 표현된 것과 같은 개별 객체들 또는 특징들을 식별하기 위하여 그들을 트레이닝 했을 수 있다. 예를 들어, 분류기 A(110A)는 눈이 오는 장면(snowy scene)을 식별하도록 트레이닝 되었을 수 있다. 또 다른 예시에 따르면, 분류기 N(110N)는 타이어들, 도로 상에 자전거들, 등을 식별하도록 트레이닝 되었을 수 있다. 엔티티는 제한된 트레이닝 데이터를 사용하여 분류기들(110A 내지 110N)를 트레이닝 했을 수 있다. 예를 들어, 분류기 N(110N)는 도로 상에 타이어들의 또는 특정한 유형의 도로(specific type of road) 상에 특정한 유형의 타이어(specific type of tire) 100, 500, 1000 예시들을 사용하여 트레이닝 되었을 수 있다.
도시된 바와 같이, 분류기들(110A 내지 110N)은 예시 머신 러닝 모델(예를 들어, 컨볼루션 뉴럴 네트워크)의 중간 레이어로부터 획득된 정보를 사용할 수 있다. 예를 들어, 특징들(112)은 컨볼루션 뉴럴 네트워크의 중간 레이어로부터 획득될 수 있다. 컨볼루션 뉴럴 네트워크는 센서 데이터에서 객체들 또는 특징들을 명확히 하거나 그렇지 않으면 식별하도록 트레이닝될 수 있기 때문에, 분류기들은 이 기존 능력을 활용할 수 있다. 예시에 따르면, 컨볼루션 뉴럴 네트워크는 현실 세계의 객체들의 지시하는(indicative) 특징들을 학습하기 위하여 컨볼루션 필터들을 적용하도록 학습할 수 있다. 컨볼루션 뉴럴 네트워크는 그 이후에 현실 세계의 객체들의 특정한 카테고리들 또는 클래스들(specific categories or classes)에 대응하여 특징들을 분류할 수 있다.
분류기들(110A 내지 110N)를 트레이닝할 때, 그러므로, 그들은 컨볼루션 뉴럴 네트워크의 중간 레이어로부터 획득된 정보를 사용하여 트레이닝 될 수 있다. 예를 들어, 분류기(110N)는 타이어를 묘사하는 이미지들의 제한된 트레이닝 데이터 세트를 사용하여 트레이닝될 수 있다. 이 예시에서, 이미지들은 예시 컨볼루션 뉴럴 네트워크들로 제공될 수 있다. 컨볼루션 뉴럴 네트워크의 특정한(particular) 중간 레이어에서, 특징들(112)은 분류기(110N)로 제공될 수 있다. 분류기(110N)는 그 후에 타이어를 묘사하는 이미지에 대해 높은 분류기 점수를 할당(assign)하도록 트레이닝 될 수 있다. 분류기(110N)는 타이어를 묘사하지 않는 이미지에 대해 낮은 분류기 점수를 할당하도록 선택적으로(optionally) 트레이닝될 수 있다. 이 방식에서, 분류기(110N)는 차량(102)의 유형적인 작동에서 사용될 수 있는 것으로 위에서 설명된 바와 같은 컨볼루션 뉴럴 네트워크를 활용할 수 있다.
도 1b에 도시된 바와 같이, 분류기들(110A 내지 110N)는 컨볼루션 뉴럴 네트워크의 중간 레이어로부터 특징들(112)을 수신하고 있다. 선택적으로, 분류기들(110A 내지 110N)는 상이한 중간 레이어들로부터 특징들을 사용할 수 있다. 예를 들어, 분류기 N(110N)는 제1 레이어(예를 들어, 레이어 4, 5, 등)로부터 특징들을 사용할 수 있는 반면, 분류기 A(110N)는 제2 레이어(예를 들어, 6, 7, 등)로부터 특징들을 사용할 수 있다. 트레이닝 동안에, 특징들을 수신할 특정 레이어(specific layer)는 각 분류기에 대하여 식별될 수 있다. 예를 들어, 특정한 레이어(specific layer)는 검증 데이터 세트에 관한 해당하는 트레이닝 분류기의 정확도에 기초하여 식별될 수 있다.
도 1a에 도시된 타이어(106)에 관하여, 분류기들(110A 내지 110N) 중 하나는 타이어들을 식별하도록 트레이닝될 수 있다. 예를 들어, 분류기 N(110N)는 타이어들을 식별하기 위하여 트레이닝될 수 있다. 이 예시에서, 분류기 N(110N)는 센서 데이터(108)에 분류기 점수를 할당할 수 있다. 설명된 예시에서, 분류기 N(110N)는 임계 보다 더 큰 분류기 점수(예를 들어, .5, .7, 등)를 할당하고 있다. 차량(102)은 그러므로, 외부 시스템(예를 들어, 트레이닝 데이터 발생 시스템(120))에 센서 데이터(108)를 전송할 수 있다. 예를 들어, 차량은 Wi-Fi, 셀룰러 서비스, 등을 통하여 네트워크(예를 들어, 인터넷)에 걸쳐 센서 데이터(108)를 전송할 수 있다.
그러므로, 외부 시스템(120)은 차량들의 다수로부터 센서 데이터(108)를 수신할 수 있다. 예를 들어, 외부 시스템(120)은, 차량들의(their) 작동의 정상 코스(normal course)에서 타이어들에 근접(proximate)하게 지나갈 수 있는 차량들로부터 타이어들을 묘사하는 이미지들을 수신할 수 있다. 유리하게는, 이 타이어들은 상이한 유형의 것일 수 있고, 수축 또는 부식(decay)된 상태일 수 있고, 상이한 도로 컨디션들에서 표현될 수 있고, 부분적으로 가려지는(occluded) 등 일 수 있다. 분류기들(110A 내지 110N)은 예시에 따르면, 외부 시스템(120)에 센서 데이터(108)의 다수의 전송을 유발(cause)하는 분류기 점수들을 사용할 수 있다. 예를 들어, 시스템(120)에 전송된 이미지들의 일부는 타이어들을 포함하지 않을 수 있다. 일부 실시 예에서, 엔티티는 그러므로 이미지들 중 특정(certain) 것을 빠르게 검토 및 폐기(discard)할 수 있다. 남은 이미지들은 큰 트레이닝 데이터 세트들로 집합되고, 차량에서 실행한 머신 러닝 모델들을 업데이트 하는 데 사용될 수 있다. 예를 들어, 컨볼루션 뉴럴 네트워크는 타이어들을 식별하도록 트레이닝될 수 있다. 선택적으로, 경계 상자들(bounding boxes) 또는 다른 라벨 정보는 집합된 트레이닝 데이터 세트들에 포함된 이미지들에 할당될 수 있다.
일부 실시 예에서, 차량(102)은 차량(102)에 의하여 현재 실행된 것 보다 더 많은 분류기들을 가질 수 있다. 예를 들어, 차량(102)은 50, 75, 100, 분류기들을 가질 수 있다. 그러나, 차량(102)의 작동 동안에, 차량(102)이 분류기들 중 20, 30, 40 또는 이 이상 실행할 수 있다. 예를 들어, 차량(102)은 차량(102)에 의하여 저장된 총 분류기들의 서브셋(subset)에 대한 개별 분류기 점수들을 결정할 수 있다. 선택적으로, 각 분류기는 또 다른 분류기로 교체(swap)되기 전에 특정한(particular) 시간의 주기로 실행할 수 있다.
추가적으로, 차량(102)은 하나 이상의 트리거들에 의존하는 특정(certain) 분류기들을 실행할 수 있다. 예시에 따르면, 차량(102)은 특정(certain) 현실 세계 객체들, 특징들을 가지거나 특정(certain) 시나리오들을 나타내는(exhibit) 대략적인(approximate) 장소들 또는 장소를 식별하는 정보들을 수신할 수 있다. 예를 들어, 차량(102)은 특정(certain) 영역 내에 터널 출구가 있는 것을 식별하는 지도 정보에 접근할 수 있다. 이 예시에서, 차량(102)은 터널 출구들을 식별하는 것과 관련된 분류기는 차량(102)이 터널에 근접한 순간에 실행되는 것을 보장할 수 있다.
또 다른 예시에 따르면, 외부 시스템(120)은 수신된 센서 데이터와 함께 위치 정보를 선택적으로 수신할 수 있다. 그러므로, 외부 시스템(120)은, 임계 수의 차량들이 특정한(particular) 현실 세계 영역에 대해 동일 분류기에 기초하여 센서 데이터를 전송했던 것을 식별할 수 있다. 예시에 따르면, 외부 시스템(120)은 특정한(particular) 진입 차선(on-ramp)이 도로에서 장애물을 가지는 것을 식별할 수 있다. 또 다른 예시에 따르면, 외부 시스템(120)은 특정한(particular) 진입 차선이 도로에서 장애물의 특정(certain) 유형을 가지는 것을 식별할 수 있다. 시스템(120)은 그 후에 특정한(particular) 현실 세계의 영역이 근접했을 때 동일 분류기를 실행하도록 차량들 중 일부에 정보를 전송할 수 있다. 이 방식으로, 시스템(120)은 이 동일 센서에 기반하여 보다 더 많은 수의 트레이닝 데이터를 획득할 수 있다는 것을 보장할 수 있다.
더욱이, 시스템(120)은 전술된 분류기가 임계보다 더 높은 분류기 점수를 할당하지 않는다고 하더라도 센서 데이터를 전송하도록 차량들에게 명령(instruct)할 수 있다. 한 예시에 따르면, 시스템(120)은 현실 세계 위치에서 근접한 임계 수의 차량들로부터 센서 데이터를 수신할 수 있다. 이 예시에서, 시스템(120)은 차량들의(their) 분류기가 임계 보다 더 큰 분류기 점수를 발생시키지 않는다고 하더라도 현실 세계 위치의 임계 거리 내의 임의의 차량들에게 센서 데이터(예를 들어, 이미지들)를 전송하도록 명령할 수 있다. 분류기는 제한된 수의 예시들(예를 들어, 전술한 바와 같이100, 1000)과 트레이닝 세트에 트레이닝 될 수 있기 때문에, 객체에 관한 특정한 차량(particular vehicle)의 각도에 따라서 특정한(particular) 차량의 분류기가 객체를 식별하지 않을 수 있다. 그러나, 센서 데이터는 객체에 대한 탄탄한(robust) 트레이닝 세트를 발생시키는 것에 유용할 수 있다. 예를 들어, 객체는 특정한(particular) 차량에 의해서 획득된 이미지에서는 부분적으로 보일 수 있고, 그러므로 객체를 식별하기 위하여 큰 트레이닝 세트에서 유용할 수 있다. 이 방식으로, 외부 시스템(120)은 분류기를 오버라이드(override)할 수 있고, 특정한(particular) 차량이 센서 데이터를 전송하도록 유발할 수 있다.
외부 시스템(120)이 위치 정보 또는 임의의 식별 정보(identifying information)를 수신하는 모든 상황들(situations)에서, 정보는 익명화(anonymize)될 수 있다고 이해되어야 한다. 추가적으로, 이러한 기법들은 긍정하는 사용자 동의(affirmative user consent)(예를 들어, 옵트-인(opt-in))을 요구할 수 있다.
예시 흐름도들
도 2는 머신 러닝 모델의 중간 결과에 트리거 분류기를 적용하는 것을 위한 프로세스의 실시 예를 도시하는 흐름도이다. 일부 실시 예에서, 도 2의 프로세스는 특정한 사용 사례(particular use case)를 충족하는, 자율 주행을 위한 머신 러닝 모델을 위한 센서들에 의하여 캡쳐된 센서 데이터를 수집 및 보유하는 데 이용된다. 예를 들어, 특정한 사용 사례(particular use case)는 특정(certain) 특징들, 객체들, 시나리오들, 등의 식별과 연관될 수 있다. 일부 실시 예에서, 도 2의 프로세스는 자율 주행 컨트롤이 인가된 지 여부와 관계없이 자율 주행이 인가된 차량에 구현된다. 예를 들어, 센서 데이터는 차량이 인간 운전자(human driver)에 의하여 주행되고 있는 동안에 또는 자율 주행이 이탈(disengage)된 직후 순간들에서 수집될 수 있다. 일부 실시 예에서, 도 2에 의하여 설명된 기법들은 특히 분석하기 어려운 사용사례들에 대하여 트레이닝 데이터 세트를 개선하기 위해 자율 주행의 맥락(context) 외에서(outside) 다른 딥러닝 시스템들에 적용될 수 있다. 다양한 실시 예에서, 트리거 분류기는 사용 사례를 위해 설계(design)된 트레이닝 데이터 및 머신 러닝의 레이어의 중간 출력을 사용하여 트레이닝 되었다.
일부 실시 예에서, 다수의(multiple) 트리거들 및/또는 다수의 분류기들은 다수의 사용 사례들을 위한 센서 데이터를 식별하는 데 함께 사용될 수 있다. 예를 들어, 하나의 트리거는 터널들을, 또 다른 것은 맨홀들(manholes)을, 또 다른 것은 도로에서 갈림길들을, 등을 식별하는 데 사용될 수 있다(For example, one trigger may be used to identify tunnels, another for manholes, another for forks in a road, etc). 일부 실시 예에서, 요구된 컨디션들을 적용 및/또는 분류기 점수를 결정을 위한 트리거 분류기의 기능적인(functional) 구성 요소들은 상이한 트리거들 사이에 공유(shared)된다. 일부 실시 예에서, 각 트리거는 분류기 점수와 비교하기 위한 하나 이상의 임계 메트릭들(threshold metrics), 선택적 바이어스(optional bias), 및 가중 벡터(weighted vector)를 사용하여 명시(specify)된다. 일부 실시 예에서, 시각(time of day), 차량 위치, 도로 유형 등과 같은 추가적인 요구된 컨디션들이 특정한 트리거(particular trigger)를 위하여 명시(specify)된다. 예를 들어, 트리거는 터널의 센서 데이터 새벽(dawn)과 해질녘(dusk)에만 캡쳐되도록 요구할 수 있다. 또 다른 예시 및 중복의(duplicative) 데이터를 감소하는 데 유용한 것으로서, 트리거는 센서 데이터가 차량이 적어도 20분동안 주행되었던 후에만 그리고 최대(at most) 매 30분마다 캡쳐되도록 요구할 수 있다. 다양한 실시 예에서, 트리거 임계(들) 및 요구된 컨디션들은 트리거 분류기를 위해 명시된 속성들(properties)이다.
201에서, 센서 데이터가 수신된다. 예를 들어, 센서들이 탑재된 차량은 센서 데이터를 캡쳐하고 차량에서 실행(run)하는 뉴럴 네트워크에 센서 데이터를 제공한다. 일부 실시 예에서, 센서 데이터는 비전 데이터(vision data), 초음파 데이터, LiDAR 데이터, 또는 다른 적절한 센서 데이터일 수 있다. 예를 들어, 이미지는 높은 동적 범위 전면 카메라(high dynamic range forward-facing camera)에서 캡쳐된다. 또 다른 예시에 따르면, 초음파 데이터는 측면 초음파 센서(side-facing ultrasonic sensor)로부터 캡쳐된다. 일부 실시 예에서, 차량은 데이터를 캡쳐하기 위하여 다수의 센서들이 부착(affix)된다. 예를 들어, 일부 실시 예에서, 여덟의 서라운드 카메라들(surround cameras)은 차량에 부착되고 최대 250미터의 범위까지 차량 주위 시야(visibility)의 360도를 제공한다. 일부 실시 예에서, 카메라 센서들은 넓은 전방 카메라(wide forward camera), 좁은 전방 카메라(narrow forward camera), 후방 카메라(rear view camera), 전방 측향 카메라들(forward looking side cameras), 및/또는 후방 측향 카메라들(rearward looking side cameras)을 포함한다. 일부 실시 예에서, 초음파 및/또는 레이더 센서들은 주변의 세부사항들을 캡쳐하는 데 사용된다. 예를 들어, 열 둘의 초음파 센서들은 단단한(hard) 및 부드러운(soft) 객체들을 모두 감지하기 위해 차량에 부착될 수 있다. 일부 실시 예에서, 전면 레이더(forward-facing radar)는 주변 환경의 데이터를 캡쳐하는 데 이용된다. 다양한 실시 예에서, 레이더 센서들은 폭우(heavy rain), 안개, 먼지, 및 다른 차량들에도 불구하고 주변 세부사항들을 캡쳐하는 것이 가능하다. 다양한 센서들은 차량 주변의 환경을 캡쳐하는 데 사용되고, 캡쳐된 이미지는 딥러닝 분석을 위해 제공된다.
203에서, 센서 데이터는 전처리(pre-processed)된다. 일부 실시 예에서, 하나 이상의 전처리하는 패스들(passes)은 센서 데이터에 관해 수행될 수 있다. 예를 들어, 데이터는 블러링(blurring) 및/또는 얼라이먼트 문제(alignment issues)에 대해 교정(correct), 노이즈(noise)를 제거 등 하도록 전처리될 수 있다. 일부 실시 예에서, 하나 이상의 상이한 필터링 패스들(fitering passes)은 데이터에 관해 수행된다. 예를 들어, 센서 데이터의 상이한 구성 요소들을 밖으로 분리하기 위하여, 고역 통과 필터(high-pass filter)는 데이터에 관해 수행될 수 있고, 저역 통과 필터(low-pass filter)는 데이터에 관해 수행될 수 있다. 다양한 실시 예에서, 203에서 수행된 전처리 단계는 선택적 및/또는 뉴럴 네트워크로 포함(incorporate)될 수 있다.
205에서, 센서 데이터의 딥러닝 분석이 시작된다. 일부 실시 예에서, 딥러닝 분석은 203에서 선택적으로 전처리된 센서 데이터에 관해 수행된다. 다양한 실시 예에서, 딥러닝 분석은 컨볼루션 뉴럴 네트워크(CNN)와 같은 뉴럴 네트워크를 사용하여 수행된다. 다양한 실시 예에서, 머신 러닝 모델은 오프라인(offline)으로 트레이닝되고, 센서 데이터에 관해 추론(inference)을 수행하기 위한 차량에 설치(install)된다. 예를 들어, 모델은 도로 차로 경계선들, 장애물들, 보행자들, 움직이는 차량들, 주차된 차량들, 주행가능한 공간 등을 적절하게 식별하도록 트레이닝될 수 있다. 다양한 실시 예에서, 뉴럴 네트워크는 하나 이상의 중간 레이어들을 포함하는 다수의 레이어들을 포함한다.
207에서, 잠재적인 트레이닝 데이터가 식별된다. 예를 들어, 머신 러닝 모델을 트레이닝하기 위하여 사용될 수 있는 센서 데이터는 딥러닝 분석을 사용하여 분석된 센서 데이터로부터 식별된다. 일부 실시 예에서, 식별된 트레이닝 데이터는 특정한 사용 사례(particular use case)와 관련된 데이터이다. 예를 들어, 가능한 사용 사례들은 곡선 도로(curved road), 진입 차선(on ramp), 진출 차선(off ramp), 터널로의 입구, 터널의 출구, 도로에 장애물, 도로에 갈림길, 도로 차로 경계선들 또는 표시들(road lane lines or markers), 주행 가능한 공간, 도로 신호(road signage), 표지판들의 내용들(contents of signs)(예를 들어, 단어들, 숫자들, 기호들, 등), 및/또는 다른 특징들을 자율 주행에 적합한 것으로 식별하는 것을 수반(involve)할 수 있다. 다양한 실시 예에서, 센서 데이터에서 묘사된 사용 사례는 트리거 분류기 및 딥러닝 분석에 사용된 뉴럴 네트워크의 레이어의 중간 출력을 사용함으로써 식별된다. 예를 들어, 트리거 분류기는 뉴럴 네트워크의 중간 레이어의 출력을 사용하여 분류기 점수를 결정한다. 트리거에 따라 명시되는 요구된 컨디션들을 패스(pass)하고 임계를 초과하는 분류기 점수는 잠재적인 트레이닝 데이터로 식별된다. 다양한 실시 예에서, 임계는 사용 사례의 긍정 예시들을 식별하는 데 이용된다. 예를 들어 보다 더 높은 분류된 점수는 센서 데이터가 사용 사례의 대표인 보다 더 높은 가능성(likelihood)을 가리킨다. 일부 실시 예에서, 분류기 점수는 긍정적인 것(positive one) 및 부정적인 것(negative one) 사이에 수이다. 긍정적인 것(positive one)에 보다 더 가까운 점수는 타겟팅된 사용 사례를 대표할 가능성이 보다 높을(more likely) 수 있다. 다양한 실시 예에서, 시각, 차량 유형, 위치 등과 같은 추가적인 필터들에 의하여 명시된 컨디션들은 타겟팅된 사용 사례를 위한 센서 데이터를 식별하는 데 사용된다.
209에서, 식별된 센서 데이터는 전송된다. 예를 들어, 207에서 식별된 센서 데이터는 추가적인 프로세싱을 위한 컴퓨터 서버로 전송된다. 일부 실시 예에서, 추가적인 프로세싱은 식별된 센서 데이터를 사용하여 트레이닝 세트를 생성하는 것을 포함한다. 다양한 실시 예에서, 센서 데이터는 데이터 센터로 차량으로부터 무선으로, 예를 들어, WiFi또는 셀룰러 연결을 통하여, 전송된다. 일부 실시 예에서, 메타데이터는 센서 데이터를 따라 전송된다. 예를 들어, 메타데이터는 분류기 점수, 시각, 타임스탬프, 위치, 차량의 유형, 속력, 가속도, 브레이크, 자율 주행이 인가되었는 지 여부, 스티어링 각도와 같은 작동 파라미터들 및/또는 차량 컨트롤 등을 포함할 수 있다. 추가적인 메타데이터는 마지막으로 이전에 전송된 센서 데이터 이후의 시간, 차량 유형, 날씨 컨디션들, 도로 컨디션들, 등을 포함한다.
211에서, 데이터의 후처리(post-processing)가 수행된다. 일부 실시 예에서, 상이한 후처리 기법들은 데이터를 표현하기 위해 요구된 데이터의 양을 감소 및/또는 질을 강화(enhance)시키는 데 이용된다. 일부 실시 예에서, 딥러닝 분석의 출력은 다른 센서들에 적용된 딥러닝의 결과와 합쳐진다(merged). 일부 실시 예들에서, 후처리는 상이한 센서 데이터에 관해 수행된 분석을 스무딩 아웃(smooth out)하는 데 사용된다. 처리된 데이터는 차량을 컨트롤하는 데 사용될 수 있다. 데이터와 관련된 추가적인 정보는 211에서 또한 처리될 수 있다. 예를 들어, 자율 주행 특징들이 인가되는 지를 포함하는 자율 주행 시스템의 구성과 같은 정보는 딥러닝 분석과 결합될 수 있다(For example, information such as the configuration of the autonomous driving system, including what autonomous driving features are enabled, may be combined with the deep learning analysis). 다른 정보는 지도, 지형(topography), 및/또는 GPS 데이터와 같은 환경적 데이터 및/또는 차량 작동 및/또는 컨트롤 파라미터들을 포함할 수 있다. 일부 실시 예에서, 후처리는 차량의 주변 환경의 통일된 표현을 생성하기 위해 다른 센서들로부터 데이터에 관해 수행된 딥러닝 분석의 결과를 결합하는 것을 포함할 수 있다. 일부 실시 예에서, 211에서 후처리 단계는 선택적인 단계이다.
213에서, 딥러닝 분석의 결과들은 차량 컨트롤로 제공된다. 예를 들어, 결과들은 자율 주행을 위한 차량을 컨트롤하기 위하여 차량 컨트롤 모듈에 의하여 사용된다. 일부 실시 예에서, 차량 컨트롤은 차량의 스티어링 및/또는 속력을 변조할 수 있다. 다양한 실시 예에서, 차량 컨트롤은 불가할 수 있으나, 205에서 딥러닝 분석의 중간 결과들은 209에서 식별된 센서 데이터를 전송 및 207에서 트레이닝 데이터를 식별하기 위해 이용된다. 이 방법(manner)으로, 딥러닝 분석은 차량이 자율 주행 시스템의 컨트롤 하에 있지 않을 때에도 적합한(suitable) 트레이닝 데이터를 식별 및 보유하는 데 이용될 수 있다. 다양한 실시 예에서, 자율 주행 시스템이 활성화인 때 센서 데이터는 식별되고 보유된다.
도 3은 머신 러닝 모델의 중간 결과를 사용하여 트리거 분류기를 생성하기 위한 프로세스의 실시 예를 도시하는 흐름도이다. 일부 실시 예에서, 도 3의 프로세스는 특정한 사용 사례(particular use case)에 대한 관련 있는 센서 데이터를 보유 및 식별하기 위한 트리거 분류기를 트레이닝하는 데 이용된다. 예를 들어, 그것의 정기적인(regular) 사용 동안 딥러닝 시스템에 의하여 처리된 센서 데이터는 트레이닝 데이터로서 유용한 데이터의 서브셋(subset)을 포함한다. 트리거 분류기는 터널 입구들, 터널 출구들, 도로에 갈림길들, 곡선 도로, 진입 차선들, 및 자율 주행을 위한 딥러닝 시스템의 중간 결과들을 사용하는 자율 주행에 유용한 다른 적절한 특징들과 같은 사용 사례들을 식별하도록 트레이닝될 수 있다. 트리거 분류기와 딥러닝 시스템의 중간 결과들을 이용함으로써, 수집 및 식별의 효율(efficiency)은 매우 개선된다. 다양한 실시 예에서, 트레이닝된 트리거 분류기는 관련 있는 사용 사례들에 대한 잠재적인 트레이닝 데이터를 수집 및 보유하기 위해 배포된 딥러닝 시스템 상의 트리거 속성들에 따라 설치된다. 일부 실시 예에서, 다른 적절한 분류기들이 사용될 수 있음에도 불구하고, 트리거 분류기는 서포트 벡터 머신이다. 예를 들어, 일부 실시 예에서, 트리거 분류기는 뉴럴 네트워크이고 하나 이상의 중간 레이어들을 포함할 수 있다. 일부 실시 예에서, 배포된 딥러닝 시스템은 도 2의 프로세스를 이용한다.
301에서, 트레이닝 데이터는 준비된다. 예를 들어, 특정한 사용 사례(particular use case)의 긍정 및 부정의 예시들은 트레이닝 데이터로서 준비된다. 예시에 따르면, 터널 출구의 긍정 및 부정의 예시들은 수집되고 어노테이트(annotated)된다. 선별되고 어노테이트된 데이터 세트는 트레이닝 세트를 생성하는 데 사용된다. 일부 실시 예에서, 어노테이팅(annotating)은 데이터를 라벨링하는 것을 포함하고 인간 선별자(human curator)에 의하여 수행될 수 있다. 일부 실시 예에서, 데이터의 포맷(format)은 배포된 딥러닝 어플리케이션에 사용된 머신 러닝 모델과 호환 가능(compatible)하다. 다양한 실시 예에서, 트레이닝 데이터는 트레이닝된 모델의 정확도를 테스트하기 위한 검증 데이터를 포함한다.
303에서, 딥러닝 분석이 트레이닝 데이터에 적용된다. 예를 들어, 기존 머신 러닝 모델은 딥러닝 프로세스를 시작하는 데 사용된다. 일부 실시 예에서, 딥러닝 모델은 다수의 레이어들을 갖는 컨볼루션 뉴럴 네트워크(CNN)와 같은 뉴럴 네트워크이다. 일부 실시 예에서, CNN는 셋 이상의 중간 레이어들을 포함할 수 있다. 딥러닝 분석의 예시들은 자율 주행을 위한 뉴럴 네트워크를 포함한다. 다양한 실시 예에서, 딥러닝 분석은 중간 레이어 결과들을 제공하기 위해 뉴럴 네트워크로 301에서 준비된 트레이닝 데이터를 피드함으로써 시작된다.
305에서, 트리거 분류기는 트레이닝된다. 일부 실시 예에서, 트리거 분류기는 작은 뉴럴 네트워크 또는 서포드 벡터 머신이다. 다양한 실시 예에서, 트리거 분류기로 입력은 딥러닝 시스템의 머신 러닝 모델의 첫 번째 또는 중간 레이어(the first or an intermediate layer)의 출력이다. 입력을 위하여 이용되는 특정한 레이어(particular layer)는 구성 가능할 수 있다. 예를 들어, 두 번째 내지 마지막 레이어(the second to last layer), 세 번째 내지 마지막 레이어(the third to last layer), 네 번째 내지 마지막 레이어(the fourth to last layer) 등 첫 번째 레이어(the first layer)에 이르기까지 트리거 분류기를 트레이닝하기 위한 입력으로서 이용될 수 있다. 다양한 실시 예에서, 트레이닝 데이터의 어노테이트된 결과들은 트리거 분류기를 트레이닝하기 위하여 (이미지 데이터와 같은) 원시 데이터(raw data)와 사용된다. 긍정 및 부정 예시들을 사용함으로써, 트리거 분류기는 입력(예를 들어, 센서 데이터로부터 입력)이 터널 출구와 같은 특정한 사용 사례(particular use case)에 매치(match)일 가능성을 식별하도록 트레이닝된다. 일부 실시예에서, 트레이닝된 트리거 분류기의 결과들은 301에서 생성된 검증 데이터 세트를 사용하여 검증된다. 일부 실시 예에서, 트리거 분류기는 차량에 배포된 뉴럴 네트워크에 매치하는 오프라인 뉴럴 네트워크를 사용하여 트레이닝된다.
일부 실시 예에서, 뉴럴 네트워크 출력의 출력은 (원시 이미지와 같은) 입력 데이터의 특징들을 식별하는 특징 벡터이다. 특징들은 원시 데이터에 차량들의 수, 표지판들의 수, 차로들의 수 등을 포함할 수 있다. 레이어들의, 예를 들어, 최종 레이어의 앞에 처리된 레이어들, 중간 출력들은 원시 입력 데이터의 시맨틱 정보(semantic information)를 포함한다. 일부 실시 예에서, 레이어의 중간 출력은 벡터 형태로 표현될 수 있고, 벡터는 최종 레이어의 벡터 출력보다 더 많은 원소들(elements)을 가진다. 예를 들어, 두 번째 내지 마지막 레이어의 출력은 64-원소 벡터일 수 있는 반면에, 뉴럴 네트워크의 최종 출력은 32-원소 벡터일 수 있다. 다양한 실시 예에서, (예를 들어 64-원소 벡터와 같은) 뉴럴 네트워크의 첫 번째 및 중간 레이어들(first and intermediate layers)의 출력은 (예를 들어 32-원소 벡터와 같은) 뉴럴 네트워크의 최종 레이어의 출력보다 원시 입력 데이터와 연관된 시맨틱 정보의 더 많은 양을 포함하고, 그러므로 트리거 분류기를 트레이닝하는 데 사용된다. 일부 실시 예에서, 트리거 분류기를 트레이닝하기 위해 선택된 특정한 레이어(particular layer)는 동적으로 선택될 수 있다. 예를 들어, (보다 먼저(earlier)의 레이어와 같은) 특정한 중간 레이어(particular intermediate layer)는 (최종 레이어에 더 가까운 레이어와 같은) 또 다른 레이어에 비교된 그 특정한 레이어(that particular layer)의 정확도에 개선에 기초하여 선택될 수 있다. 일부 실시 예에서, 특정한 레이어(particular layer)는 레이어를 이용하는 것에 효율에 기초하여 선택된다. 예를 들어 보다 더 작은 출력 벡터를 갖는 레이어는 레이어를 사용한 결과들이 정확도 요구들(demands)을 충족하는 이벤트에서 선택될 수 있다.
일부 실시 예에서, 상이한 중간 레이어들로부터 입력은 하나 초과의 트리거 분류기를 트레이닝하는 데 사용되고 상이한 트레이닝된 분류기들은 또 다른 하나에 비교된다. 정확도와 성능사이에 균형은 다수의 분류기들 중 어느 것을 사용할 지 결정하는 데 사용된다. 예를 들어, 보다 나중의 중간 레이어(later intermediate layer)의 출력은 다른 사용 사례들에 대해 충분한 반면에, 보다 먼저의 중간 레이어(earlier intermediate layer)의 출력은 일부 사용 사례들에 필수적이다. 최적(optimal)의 중간 레이어의 출력은 다수의 트레이닝된 트리거 분류기들을 비교함으로써 결정될 수 있다. 다양한 실시 예에서, 중간 결과를 수신할 뉴럴 네트워크의 레이어는 트리거 분류기 트레이닝 프로세스의 부분으로서 동적으로 선택된다(In various embodiments, which layer of the neural network from which to receive an intermediate result is dynamically selected as part of the trigger classifier training process).
일부 실시 예에서, 트레이닝된 분류기는 바이어스 팩터(bias factor) 및 벡터에 의하여 명시될 수 있다. 예를 들어, 트레이닝된 분류기는 분류기 점수를 결정하기 위하여 바이어스 팩터에 의하여 오프셋인 가중치들의 벡터일 수 있다. 일부 실시 예에서, 벡터의 원소들의 수는 분류기를 트레이닝하기 위한 입력의 원소들의 수 및 사용된 중간 레이어의 출력의 원소들의 수와 동일하다. 예를 들어, 분류기를 트레이닝하는 데 사용된 중간 레이어의 출력이 1024 원소인 이벤트에서, 트리거 분류기를 트레이닝하는 데 사용된 입력 데이터는 1024 원소들이고, 결과 트리거 분류기(resulting trigger classifier)는 바이어스 및 1204 가중 벡터(weighted vector)로 표현될 수 있다. 일부 실시 예에서, 바이어스는 선택적이고 가중 벡터의 원소들에 의하여 고려(take into account)될 수 있다.
307에서, 305에서 트레이닝된 분류기에 대한 트리거 속성들은 결정된다. 예를 들어, 트레이닝된 트리거 분류기에 의하여 결정된 분류기 점수에 비교되는 임계가 결정될 수 있다. 예를 들어, 임계를 초과하는 분류기 점수는 점수와 연관된 원시 입력이 타겟 사용 사례의 긍정 예시일 수 있는 것을 나타낸다. 예를 들어, 터널 출구들을 식별하도록 트레이닝된 트리거 분류기는 분류기 점수를 결정한다. 0.5의 임계를 사용하여, 0.7의 분류기 점수는 데이터가 터널 출구의 대표일 수 있는 것을 나타낸다. 일부 실시 예에서, -1.0의 점수는 부정 예시이고 1.0의 점수는 긍정 예시이다. 분류기 점수는 얼마나 원시 입력이 타겟팅된 사용 사례의 긍정 또는 부정 예시일 수 있을 지를 나타내기 위하여 -1.0 및 1.0사이에 놓인다.
일부 실시 예에서, 트리거 속성들은 트리거 필터들과 같은 요구된 컨디션들을 포함한다. 트리거 필터들은 설명된 컨디션들로 센서 데이터의 보유를 한정(restrict)하는 데 사용되는 필터들이다. 예를 들어, 센서 데이터는 데이터와 연관된 위치에 기초하여 보유를 위해 트리거될 수 있다. 다른 예시들은 도로 유형, 위치, 시각, 주행이 시작된 이후 시간의 길이, 긍정 식별과 마지막 센서 데이터가 트리거된 이후 시간의 길이 등을 포함한다. 다양한 실시 예에서, 트리거 분류기가 센서 데이터를 수집 및 보유하는 데 사용되는 컨디션들을 제한하기 위하여 하나 이상의 트리거 속성들이 명시될 수 있다.
309에서, 트리거 분류기 및 트리거 속성들은 배포된다. 예를 들어, 센서 데이터를 보유하기 위해 분류기를 트리거 하는데 사용되는 트리거 분류기 및 속성들은 딥러닝 시스템에 따라(alongside) 설치된다. 예를 들어, 트리거 분류기 및 속성들은 차량에 무선으로 전송되는 작은 바이너리(binary)로 패키징(package)될 수 있다. 일부 실시 예에서, 패키징된 트리거 분류기 및 속성들은 WiFi 또는 셀룰러 네트워크 연결과 같은 무선 기술을 사용하는 오버-디-에어 업데이트로 전송된다. 일단 한 번 차량에 수신되면, 트리거 분류기 및 속성들은 자율 주행 시스템의 부분으로 설치된다. 일부 실시 예에서, 트리거 분류기만 설치된다. 일부 실시 예에서, 자율 주행을 위한 딥러닝 모델 및 트리거 분류기는 함께 설치된다. 다양한 실시 예에서, 자율 주행 시스템의 머신 러닝 모델은 트리거 분류기를 트레이닝하는 데 사용된 것과 매치한다.
도 4는 트리거 분류기를 사용하여 잠재적인 트레이닝 데이터를 식별하기 위한 프로세스의 실시 예를 도시하는 흐름도이다. 일부 실시 예에서, 트리거 분류기는 딥러닝 시스템과 연계하여 실행(run)된다. 예를 들어, 트리거 분류기를 트레이닝하는 데 사용된 것(one)을 매치하는 머신 러닝 모델을 사용하는 딥러닝 시스템은 자율 주행 시스템의 부분으로 트리거 분류기와 이용된다. 트리거 분류기는 센서데이터가 센서 데이터를 보유하는 것을 정당화(warrant)하는 특정한 사용 사례들(particular use cases)을 충족시키는 지 여부를 식별하기 위하여 딥러닝 시스템에 의하여 적어도 부분적으로 분석된 센서 데이터를 분석한다. 센서 데이터는 그 이후에 컴퓨터 서버로 전송되고, 특정한 사용 사례(particular use case)를 식별하는 데 개선된 성능을 갖는 수정된 머신 러닝 모델을 위한 트레이닝 데이터를 생성하는 데 사용될 수 있다. 사용 사례들의 예시들은 진입 차선, 터널 출구, 도로에 장애물, 도로에 갈림길, 차량들의 특정한 유형들(specific types of vehicles) 등을 식별하는 것을 포함할 수 있다. 일부 실시 예에서, 트리거 파라미터들은 트리거 분류기가 관련 있는 결과를 식별하는 컨디션들을 구성하는 데 사용된다. 일부 실시 예에서, 하나 이상의 트리거 분류기들 및 파라미터들은 하나 이상의 상이한 사용 사례들을 식별하는 데 사용된다. 일부 실시 예에서, 도 4의 프로세스는 도 2의 205, 207, 209, 211, 및/또는 213에서 수행된다. 일부 실시 예에서, 도 4의 프로세스에서 사용된 트리거 분류기는 도 3의 프로세스를 사용하여 트레이닝된다.
401에서, 딥러닝 분석이 시작된다. 예를 들어, 자율 주행 시스템의 딥러닝 분석은 차량에 부착된(attached) 센서들에 의하여 캡쳐된 센서 데이터와 시작된다. 일부 실시 예에서, 시작된 딥러닝 분석은 센서 데이터를 전처리하는 것을 포함한다. 다양한 실시 예에서, 딥러닝 분석은 하나 이상의 중간 레이어들을 포함하는 다수의 레이어들을 갖는 트레이닝된 머신 러닝 모델을 이용한다. 일부 실시 예에서, 임의의 중간 레이어 및 첫 번째 레이어(the first layer and any intermediate layer)의 출력은 중간 출력으로 고려된다. 다양한 실시 예에서, 중간 출력은 최종 출력(예를 들어, 모델의 최종 레이어의 출력)이외의 머신 러닝 모델의 레이어의 출력이다.
403에서, 딥러닝 분석의 하나의 레이어를 사용하는 추론은 완료(complete)된다. 예를 들어, 뉴럴 네트워크는 최종 레이어에 의해 뒤따라지는(followed) 중간 레이어들을 포함하는 다수의 레이어들을 포함한다. 각 레이어의 출력(예를 들어, 중간 결과)는 다음 레이어에 입력으로 피드된다. 일부 실시 예에서, 첫 번째 레이어(the first layer) 및 각 중간 레이어의 출력은 중간 결과로 고려된다. 다양한 실시 예에서, 단일 레이어의 출력을 결정하는 것의 결과는 다음 레이어로 입력으로 사용될 수 있는 벡터이다. 일부 실시 예에서, 뉴럴 네트워크의 첫 번째 레이어(the first layer)로 입력은 이미지 데이터와 같은 센서 데이터이다. 일부 실시예에서, 뉴럴 네트워크는 컨볼루션 뉴럴 네트워크이다.
405에서, 403에서 수행된 레이어 분석의 출력이 뉴럴 네트워크의 최종 레이어의 결과인 지 여부 결정이 이루어진다. 출력이 최종 레이어의 결과가 아닌 이벤트에서, 예를 들어, 출력이 중간 결과인, 프로세싱은 409로 계속(continue)한다. 출력이 뉴럴 네트워크의 최종 레이어의 결과인 이벤트에서, 머신 러닝 모델을 사용하여 수행된 추론은 완료되고 프로세싱은 407로 계속한다. 일부 실시 예에서, 407로 제공된 405에 출력은 특징 벡터이다.
407에서, 센서 데이터에 딥러닝 분석을 수행하는 것의 결과들은 차량 컨트롤에 제공된다. 일부 실시 예에서, 결과들은 전처리된다. 예를 들어, 하나 이상의 상이한 센서들로부터 입력에 대한 하나 이상의 상이한 뉴럴 네트워크들의 결과들은 결합될 수 있다. 일부 실시 예에서, 차량 컨트롤은 차량의 작동을 컨트롤하기 위하여 차량 컨트롤 모듈을 사용하여 구현된다. 예를 들어, 차량 컨트롤은 자율 주행을 위한 차량의 속력, 스티어링, 가속도, 브레이크 등을 변조하는 것이 가능하다. 일부 실시 예에서, 차량 컨트롤은 방향 지시등들(turn signals), 브레이크 등들(brakes lights), 헤드라이트들(headlights)을 인가(enable) 또는 비인가(disable)하거나 및/또는 WiFi 또는 셀룰러 네트워크와 같은 무선 네트워크를 통해 네트워크 메시지를 발신하는 것과 같은 네트워크 컨트롤들을 포함하는 차량의 다른 컨트롤들/신호들을 작동시킬 수 있다. 다양한 실시 예에서, 차량 컨트롤은 예를 들어, 자율 주행 기능이 불가능할 때, 차량을 능동적으로(actively) 컨트롤 가능하게 되지 않을 수 있다. 예를 들어, 401 및 403에 딥러닝 분석은 자율 주행 시스템이 차량을 능동적으로 컨트롤하고 있지 않을 때에도 잠재적인 트레이닝 데이터를 식별하기 위하여 트리거 분류기에 입력으로 결과들을 제공하도록 수행된다.
409에서, 트리거 컨디션들 및 뉴럴 네트워크의 레이어가 트리거 분류기를 적용하기에 적절한 지 여부 결정이 이루어진다. 예를 들어, 트리거 속성들은 트리거 분류기에 적용하기 위해 요구되는 컨디션들을 나타낸다. 컨디션들의 예시들은 마지막 캡쳐 이후의 시간의 길이가 최소 시간의 양을 초과하였는 지 여부, 주행하는 시간의 최소 길이가 경과(elapse)하였는 지 여부, 시각이 특정 범위(certain range)내인지 여부 등을 포함한다. 하루 중 상이한 시간들의 예시들은 새벽, 해질녘, 주간(daytime), 야간(nighttime), 등을 포함할 수 있다. 추가적인 컨디션적인 요구사항들은 위치, 날씨, 도로 컨디션들, 도로 유형, 차량 유형, 자율 주행 특징의 이탈, 스티어링 각도(예를 들어, 스티어링 각도 임계를 초과), 가속도의 변화, 브레이크의 활성화, 또는 다른 적절한 특징들에 기초할 수 있다. 상이한 날씨 컨디션들의 예시들은 눈, 우박(hail), 진눈깨비(sleet), 비, 폭우, 흐림(overcast), 맑음(sunny), 구름(cloudy), 안개(foggy) 등을 포함할 수 있다. 상이한 컨디션들은 트리거 속성들에 의하여 명시될 수 있다. 일부 실시 예에서, 상이한 사용 사례들은 뉴럴 네트워크의 상이한 레이어들의 중간 결과 및 상이한 트리거 속성들을 이용할 수 있다. 예를 들어, 일부 사용 사례들은 뉴럴 네트워크의 후반 레이어(latter layer)의 중간 결과를 사용하여 고품질 결과들을 생산하고 더 효율적일 수 있다. 다른 사용 사례들은 사용 사례들을 충족하는 센서 데이터의 유용한 예시들을 식별하기 위하여 보다 먼저의 중간 결과를 요구할 수 있다. 일부 사례에서, 트리거 분류기를 적용할 컨디션들을 명시하는 데 사용된 트리거 속성들은 AND 및 OR 연산자들과 같은 로직 연산자들 및/또는 다수의 컨디셔널 체크들(multiple conditional checks)을 사용하여 네스티드(nested)될 수 있다.
411에서, 트리거 분류기 점수는 결정된다. 예를 들어, 트리거 분류기 점수는 뉴럴 네트워크의 중간 결과들에 트리거 분류기를 적용함으로써 결정된다. 일부 실시 예에서, 트리거 분류기의 어플리케이션은 센서 데이터와 연관된 분류기 점수를 결정하기 위하여 선택적인 바이어스 및 가중 벡터를 이용한다. 일부 실시 예에서, 트리거 분류기는 뉴럴 네트워크 또는 서포트 벡터 머신이다. 일부 실시 예에서, 트리거 분류기의 성능은 맞춤화(customize)된 인공 지능(AI) 프로세서 상에 분류기를 실행(run)함으로써 개선된다. 예를 들어, AI 프로세서는, 제한된 낭비된 사이클들(limited wasted cycles)로, 다수의 내적들(dot products) 및/또는 매우 적은 사이클에서 두 벡터들에 내적 연산을 수행할 수 있다. 일부 실시 예에서, 결정된 분류기 점수는 센서 데이터가 타겟팅된 사용 사례의 긍정(또는 부정) 예시일 가능성을 표현하는 부동 소수점 수(floating point number)이다. 예를 들어, -1과 +1사이와 같은 특정한 범위(particular range)는 센서 데이터가 타겟팅된 사용 사례의 부정 또는 긍정 예시일 가능성을 표현하는 데 사용될 수 있다.
413에서, 분류기 점수가 임계를 넘는 지 여부 및 요구된 트리거 컨디션들이 충족되는 지 여부 결정이 이루어진다. 예를 들어, 일부 실시 예에서, 분류기 점수는 임계 값에 비교된다. 분류기 점수가 임계 값을 초과하는 이벤트에서, 프로세싱은 415로 계속한다. 분류기 점수가 임계 값을 초과하지 않는 이벤트에서, 프로세싱은 403로 계속한다. 일부 실시 예에서, 추가적인 트리거 요구된 컨디션들은 분류기 점수가 결정된 후에 적용될 수 있다. 예를 들어, 결정된 분류기 점수는 특정 타임 윈도우(certain time window) 내에 이전에 결정된 분류기 점수들에 비교될 수 있다. 또 다른 예시에 따르면, 결정된 분류기 점수가 동일 위치로부터 이전에 결정된 점수들에 비교될 수 있다. 또 다른 예시에 따르면, 센서 데이터는 위치 컨디션 및 시간 컨디션 모두를 충족하도록 요구될 수 있다. 예를 들어, 마지막 10분 내에 동일 위치로부터 최고 점수를 갖는 센서 데이터만이 잠재적인 데이터로 보유될 수 있다. 다양한 실시 예에서, 컨디션들은 센서 데이터를 전송하거나 전송하지 않는 필터로서 기능(function)하는 트리거 속성들을 포함할 수 있다. 일부 실시예에서, 413에 컨디션들은 선택적이고 분류기 점수만이 임계에 비교된다.
일부 실시 예에서, 분리된(separate) 임계는 긍정 및 부정 예시들 모두에 대해 존재한다. 예를 들어, +0.5 및 -0.5의 임계는 잠재적인 트레이닝 데이터로서 승정 및 부정 센서 데이터를 식별하는 데 이용될 수 있다. +0.5와 1.0 사이 분류기 점수들은 긍정 예시들을 식별하는 데 사용되고 -1.0와 -0.5 사이 분류기 점수들은 부정 예시들을 식별하는 데 사용된다. 일부 실시 예에서, 긍정 예시들만이 전송(transmittal)을 위해 보유된다.
415에서, 식별된 센서 데이터는 전송된다. 예를 들어, 식별된 센서 데이터는 그것이 트레이닝 데이터를 생성하는 데 사용되는 컴퓨터 서버(예를 들어, 트레이닝 데이터 발생 시스템(120))로 전송된다. 다양한 실시 예에서, 트레이닝 데이터는 트레이닝 데이터 세트와 검증 데이터 세트를 포함한다. 일부 실시 예에서, 전송된 센서 데이터는 메타데이터를 포함한다. 메타데이터의 예시들은 데이터의 시간, 타임스탬프, 도로 컨디션들, 날씨 컨디션들, 위치, 차량 유형, 차량이 왼손 주행인지 오른손 주행 차량인지 여부, 분류기 점수, 사용 사례, 뉴럴 네트워크의 식별기, 트리거 분류기의 식별기, 자율 주행 시스템과 연관된 펌웨어 버전(firmware version), 또는 다른 차량 및/또는 센서 데이터와 연관된 적절한 메타데이터를 포함할 수 있다. 일부 실시 예에서, 시각은 해질녘, 새벽, 밤, 낮, 보름달(full moon), 일식(solar eclipse) 등과 같은 시간의 기간(period of time)을 나타낼 수 있다. 예를 들어, 트리거 분류기 및/또는 뉴럴 네트워크의 식별기는 분류기 점수를 결정하는 데 사용되고 트리거 분류기를 트레이닝하기 위해 사용된 특정한 트레이닝된 머신 러닝 모델(particular trained machine learning model)을 식별하기 위하여 전송될 수 있다. 일부 실시 예에서, 센서 데이터 및/또는 메타데이터는 전송되기 전에 먼저(first) 압축(compress)된다. 일부 실시예에서, 센서 데이터는 센서 데이터를 보다 더 효과적으로 전달(transfer)하기 위하여 배치(batches)들로 발신된다. 예를 들어, 센서 데이터의 다수의 이미지들의 압축이 수행되고 일련의 센서 데이터(series of sensor data)가 함께 전송된다.
도 5는 트리거 분류기에 의하여 식별된 사용 사례들에 해당하는 데이터로부터 트레이닝 데이터를 생성하기 위한 프로세스의 실시 예를 도시하는 흐름도이다. 예를 들어, 수신된 센서 데이터는 머신 러닝 모델을 트레이닝하기 위한 트레이닝 데이터를 생성시키도록 처리된다. 일부 실시 예에서, 센서 데이터는 트리거 분류기를 이용하는 자율 주행 시스템을 통하여 캡쳐된 주행 데이터에 해당한다. 일부 실시 예에서, 센서 데이터는 도 3의 프로세스를 사용하여 트레이닝된 트리거 분류기에 의하여 도 4의 프로세스를 사용하여 수신된다. 일부 실시 예에서, 센서 데이터는 도로에 갈림길, 진입 차선, 진출 차선, 터널 입구 등의 식별과 같은 특정한 사용 사례들(particular use cases)에 기반하여 캡쳐된 센서 데이터에 해당한다. 일부 실시 예에서, 수신된 센서 데이터는 사용 사례의 긍정 예시들에만 해당한다. 일부 실시 예에서, 센서 데이터는 긍정 및 부정 예시들 모두를 포함한다. 다양한 실시 예에서, 센서 데이터는 분류기 점수, 위치, 시각, 또는 다른 적절한 메타데이터와 같은 메타데이터를 포함한다.
501에서, 트리거 컨디션들을 충족하는 센서 데이터가 수신된다. 예를 들어, 특정한 타겟 사용 사례(particular target use case)에 해당하고 잠재적인 트레이닝 데이터로 사용될 수 있는 센서 데이터가 수신된다. 다양한 실시 예에서, 센서 데이터는 머신 러닝 모델이 입력으로 사용하는 포맷이다(in the format). 예를 들어, 센서 데이터는 원시 또는 처리된 이미지 데이터일 수 있다. 일부 실시 예에서, 데이터는 초음파 센서들, 레이더, LiDAR 센서들 또는 다른 적절한 기술로부터 캡쳐된 데이터이다. 다양한 실시 예에서, 트리거 컨디션들은 도 2 내지 도 4에 관하여 설명된 바와 같은 트리거 속성들 및 트리거 분류기를 사용하여 명시된다.
503에서, 센서 데이터는 트레이닝 데이터로 변환(convert)된다. 예를 들어, 501에서 수신된 센서 데이터는 잠재적으로 유용한 트레이닝 데이터로 식별된 데이터를 포함한다. 일부 실시 예에서, 수신된 센서 데이터는 원격으로 위치한 차량으로부터 데이터를 전송하는 것에 대한 효율성을 개선시키기 위하여 압축되고, 먼저(first) 압축되지 않는다. 일부 실시 예에서, 센서 데이터가 타겟 사용 사례를 정확하게 표현하는 지 여부를 결정하기 위하여 데이터가 검토된다. 예를 들어, 터널 출구의 예시들을 식별하기 위한 타겟팅된 사용 사례는 원시 센서 데이터가 정말로(indeed) 터널 출구의 그것인지 여부를 결정하기 위하여 검토된다. 일부 실시 예에서, 매우 정확한 머신 러닝 모델은 센서 데이터가 타겟팅된 사용 사례를 표현하는 지 여부를 확인(confirm)하는 데 사용된다. 일부 실시 예에서는, 인간이 센서 데이터가 타겟팅된 사용 사례를 표현하는 지 여부를 검토 및 확인한다. 일부 실시 예에서, 트레이닝에 유용한 데이터는 어노테이트된다. 예를 들어, 데이터는 긍정 또는 부정 예시로 표시(mark)될 수 있다. 일부 실시 예에서, 데이터는 타겟 객체에 대해 어노테이트되고, 라벨링될 수 있다. 예를 들어, 차로 표시들, 표지판들, 신호등들(traffic lights) 등은 타겟 사용 사례에 따라 어노테이트될 수 있다. 다양한 실시 예에서, 어노테이션(annotation)은 트레이닝된 머신 러닝 모델의 검증(verification) 및/또는 트레이닝에 사용될 수 있다.
505에서, 503에서 변환된 트레이닝 데이터는 트레이닝 및 검증 데이터 세트들로서 준비된다. 다양한 실시 예에서, 503에서 변환된 센서 데이터는 머신 러닝 모델을 검증하기 위한 트레이닝 및 검증 데이터 세트를 위한 데이터 세트로 준비된다. 일부 실시 예에서, 503의 트레이닝 데이터는 기존의 트레이닝 데이터 세트들로 합쳐진다. 예를 들어, 대부분의 사용 사례들에 대해 적용 가능한 기존 트레이닝 데이터 세트는 특정한 사용 사례(particular use case)의 개선된 적용 범위(coverage)를 위한 새롭게 변환된 트레이닝 데이터와 합쳐진다. 새롭게 변환된 트레이닝 데이터는 특정한 사용 사례(particular use case)를 식별하는 것에서 모델의 정확도를 개선하는 데 유용하다. 일부 실시 예에서, 기존 트레이닝 데이터의 몇몇의 일부들(some portions)은 새로운 트레이닝 데이터로 교체 및/또는 폐기된다.
507에서, 머신 러닝 모델은 트레이닝된다. 예를 들어, 머신 러닝 모델은 505에서 준비된 데이터를 사용하여 트레이닝된다. 일부 실시 예에서, 모델은 컨볼루션 뉴럴 네트워크(CNN)와 같은 뉴럴 네트워크이다. 다양한 실시 예에서, 모델은 다수의 중간 레이어들을 포함한다. 일부 실시 예에서, 뉴럴 네트워크는 다수의 컨볼루션 및 풀링 레이어들(convolution and pooling layers)을 포함하는 다수의 레이어들을 포함한다. 일부 실시 예에서, 트레이닝 보델은 수신된 센서 데이터로부터 생성된 검증 데이터 세트를 사용하여 검증된다.
509에서, 트레이닝된 머신 러닝 모델이 배포된다. 예를 들어, 트레이닝된 머신 러닝 모델은 자율 러닝 시스템을 위해 업데이트로서 차량에 설치된다. 예를 들어, 오버-디-에어 업데이트는 새로운 모델을 설치하는 데 사용될 수 있다. 일부 실시 예에서, 업데이트는 WiFi 또는 셀룰러 네트워크와 같은 무선 네트워크를 사용하여 전송된 펌웨어 업데이트이다. 일부 실시 예에서, 새로운 모델은 새로운 트리거 분류기들을 트레이닝하기 위해 이용된다. 다양한 실시 예에서, 예전(old) 모델에 기초한 기존 트리거 분류기들이 만료(expire)되고 새로운 트리거 분류기들이 새롭게 트레이닝된 모델에 기초하여 배포된다. 일부 실시 예에서, 새로운 머신 러닝 모델은 차량이 서비스될 때 설치된다.
도 6은 차량에 분류기의 선택을 유발하기 위한 프로세스의 실시 예를 도시하는 흐름도이다. 프로세스는 하나 이상의 프로세서들의 차량과 같은 차량에 의하여 선택적으로 구현될 수 있다. 예를 들어, 차량은 분류기의 다수를 저장하였을 수 있다. 이 예시에서, 차량은 프로세싱 리소스들(processing resources)을 보존(conserve)하기 위하여 분류기들의 서브셋을 실행할 수 있다. 예를 들어, 차량은 서브셋만을 위한 분류기 점수들을 결정할 수 있다. 도 1b에 설명된 바와 같이, 차량은 주기적으로 서브셋을 업데이트할 수 있다(예를 들어, 임계 시간의 양 후에 새로운 분류기를 선택함). 일부 실시 예에서, 차량은 차량이 하나 이상의 구체적인 분류기들(specific classifiers)을 실행할 것을 식별하는 외부 시스템(예를 들어, 시스템(120))으로부터 정보를 수신할 수 있다.
블록(601)에서, 차량은 분류기들을 실행한다. 위에서 설명된 바와 같이, 차량은 센서 데이터를 획득할 수 있고, 센서 데이터에 기초하여 분류기 점수들을 결정할 수 있다.
블록(603)에서, 차량은 새로운 분류기를 선택하기 위하여 트리거를 수신한다. 차량은, 적어도 범지구적 위성 네비게이션 시스템(global navigation satellite system; GNSS) 수신기를 통하여 그것의 위치를 모니터링할 수 있다. 일부 실시 예에서, 차량은 지도 정보에 대한 접근을 가질 수 있다. 지도 정보는 트레이닝 데이터를 획득하는 데 유리할 수 있는 특정(certain) 특징들 또는 사용 사례들을 식별할 수 있다. 예시에 따르면, 지도 정보는 터널 출구들을 식별할 수 있다. 또 다른 예시에 따르면, 지도 정보는 부분적으로 가려지거나 숨겨진 샛길(side-road)을 식별할 수 있다. 또 다른 예시에 따르면, 지도 정보는 자전거 차로(bike lane)의 특정한 스타일 또는 형태(particular style or form)(예를 들어, 높은(raised) 또는 오프셋 자전거 차로)의 위치를 식별할 수 있다. 특정한 기능 또는 사용 사례(particular feature or use case)의 근접(예를 들어, 임계 거리 내)일 때, 차량이 결정할 수 있다. 차량은 그 이후에 특정한 특징 또는 사용 사례(particular feature or use case)와 연관된 새로운 분류기를 식별하는 정보를 획득할 수 있다. 이 새로운 분류기는 그 이후에 수신된 센서 데이터를 위한 분류기 점수들을 결정하기 위하여 차량에 의해 실행될 수 있다.
추가적으로, 차량은 외부 시스템으로 위치 정보를 전송할 수 있다. 외부 시스템은 그 이후에 차량이 실행할 하나 이상의 새로운 분류기들에 대하여 차량으로 정보를 전송할 수 있다. 예를 들어, 외부 시스템은 각 분류기와 연관된 고유한 식별기를 전송할 수 있다. 도 1b에서 설명된 바와 같이, 외부 시스템은 적어도 차량들의 특정한 수(particular number)(예를 들어, 1, 3, 10, 20)에서 실행하는 동일 분류기로부터 정보를 수신하였을 수 있다. 이 차량들은 외부 시스템이 그들의 위치에 근접한 특징 또는 사용 사례의 존재를 결정하도록, 서로(each other)의 임계 거리(예를 들어, 반경(radius)) 내에 있었을 수 있다. 그러므로, 외부 시스템은 그것이 위치의 거리 임계 내에 있다면 차량이 동일한 분류기를 실행하도록 명령할 수 있다. 이 방식에서, 외부 시스템은 이 분류기와 연관된 센서 데이터를 획득할 수 있다.
블록(605)에서 차량은 새로운 분류기를 실행한다. 여기서 설명된 바와 같이, 새로운 분류기는 머신 러닝 모델(예를 들어, 컨볼루션 뉴럴 네트워크)의 중간 레이어로부터 정보를 획득할 수 있다. 블록(607)에서, 차량은 그 이후에 분류기 점수들을 결정한다. 블록(609)에서, 차량은 그 이후에 임계를 초과하는 분류기 점수에 기초하여 센서 데이터(예를 들어, 이미지들)을 전송한다. 위에서 설명된 바와 같이, 센서 데이터는 메타데이터와 함께 전송될 수 있다.
도 7는 잠재적인 트레이닝 데이터를 식별하기 위한 딥러닝 시스템의 실시예를 도시하는 블록 다이어그램이다. 예를 들어, 블록 다이어그램은 자율 주행 동안 캡쳐된 센서 데이터의 서브셋이 잠재적인 트레이닝 데이터로 식별되는 자율 주행을 위한 트리거 분류기에 연결된 딥러닝 시스템의 상이한 구성 요소들을 포함한다. 일부 실시 예에서, 딥러닝 시스템은 센서 데이터를 수동적으로(passively) 분석할 수 있고, 딥러닝 시스템의 레이어의 중간 출력은 트리거 분류기로의 입력으로 사용된다. 일부 실시 예에서, 추가적인 트레이닝 데이터를 생성하기 위한 잠재적으로 유용한 센서 데이터를 보유 및 식별하는 동안에도, 딥러닝 시스템은 차량의 작동을 능동적으로 분석 및 컨트롤한다. 일부 실시 예에서, 자율 주행 시스템은 차량의 셀프-주행(self-driving) 또는 운전자-보조의(driver-assisted) 작동을 위해 이용된다. 다양한 실시 예에서, 도 2 내지 도 6의 프로세스들은 도 7에서 설명된 것(one)과 같은 시스템의 구성 요소들 및/또는 딥러닝 시스템을 이용한다.
나타난 예시에서, 딥러닝 시스템(700)은 센서들(701), 이미지 전처리기(703), 딥러닝 네트워크(705), 인공 지능(AI) 프로세서(707), 차량 컨트롤 모듈(709), 네트워크 인터페이스(711), 및 트리거 분류기 모듈(713)을 포함하는 딥러닝 네트워크이다. 다양한 실시 예에서, 상이한 구성 요소들은 의사 소통으로(communicatively) 연결된다. 예를 들어, 센서들(701)로부터 센서 데이터는 이미지 전처리기(703)으로 피드된다. 이미지 전처리기(703)의 처리된 센서 데이터는 AI 프로세서(707)에서 실행(run)하는 딥러닝 네트워크(705)에 피드된다. AI 프로세서(707)에서 실행(run)하는 딥러닝 네트워크(705)의 출력은 차량 컨트롤 모듈(709)에 피드된다. AI 프로세서(707)에서 실행(run)하는 딥러닝 네트워크(705)의 중간 결과들은 트리거 분류기 모듈(713)로 피드된다. 트리거 분류기 모듈(713)에 의한 전송(transmittal)을 위한 보유를 트리거하는 센서 데이터는 네트워크 인터페이스(711)를 통해 발신된다. 일부 실시 예에서, 트리거 분류기 모듈(713)은 AI 프로세서(707)에서 실행(run)한다. 다양한 실시 예에서, 네트워크 인터페이스(711)는 트리거 분류기 모듈(713)의 결과들 및/또는 차량의 자율 작동에 기반하여, 원격 서버들과 의사 소통하는 데(communicate with remote servers), 통화들을 만드는 데(make phone calls), 문자 메시지들을 수신 및/또는 발신하는 데, 트리거 분류기 모듈(713)에 의해 식별된 센서 데이터를 전송하는 데 등에 이용된다. 일부 실시 예에서, 딥러닝 시스템(700)은 적절하게(as appropriate) 추가적인 또는 보다 더 적은 구성 요소들을 포함할 수 있다. 예를 들어, 일부 실시 예에서, 이미지 전처리기(703)는 선택적인 구성요소이다. 또 다른 예시에 따르면, 일부 실시 예에서, (나타나지 않은) 후처리 구성 요소는 출력이 차량 컨트롤 모듈(709)로 제공되기 전에 딥러닝 네트워크(705)의 출력에서 후처리를 수행하는 데 사용된다.
일부 실시 예에서, 센서들(701)은 하나 이상의 센서들을 포함한다. 다양한 실시 예에서, 센서들(701)은 차량으로, 차량의 상이한 위치들에, 및/또는 하나 이상의 상이한 방향들을 향하게 부착될 수 있다. 예를 들어, 센서들(701)은 전면(forward-facing), 후면(rear-facing), 측면(side-facing) 등 방향들로 차량의 앞(front), 옆(sides), 뒤(rear), 및/또는 루프(roof)에 부착될 수 있다. 일부 실시 예에서, 센서들(701)은 높은 동적 범위 카메라들(high dynamic range cameras)과 같은 이미지 센서들일 수 있다. 일부 실시 예에서, 센서들(701)은 비-시각적 센서들(non-visual sesnors)을 포함한다. 일부 실시 예에서, 센서들(701)은 다른 것들 중 레이더, LiDAR, 및/또는 초음파 센서들을 포함한다. 일부 실시 예에서, 센서들(701)은 차량 컨트롤 모듈(709)을 갖는 차량에 장착(mounted)되지 않는다. 예를 들어, 센서들(701)은 센서 데이터를 캡쳐하기 위한 딥러닝 시스템의 부분으로서 포함되고 환경 또는 도로에 부착 및/또는 주변의 차량들에 장착될 수 있다.
일부 실시 예에서, 이미지 전처리기(703)는 센서들(701)의 센서 데이터를 전처리하는 데 사용된다. 예를 들어, 이미지 전처리기(703)는 센서 데이터를 전처리하는 데, 하나 이상의 구성 요소들로 센서 데이터를 나누는(split) 데, 및/또는 하나 이상의 구성 요소들을 후처리 하는 데 사용될 수 있다. 일부 실시 예에서, 이미지 전처리기(703)는 그래픽 처리 장치(graphics processing unit; GPU), 중앙 처리 장치(central processing unit; CPU), 이미지 신호 프로세서, 또는 전문화된 이미지 프로세서(specialized image processor)이다. 다양한 실시 예에서, 이미지 전처리기(703)는 높은 동적 범위 데이터(high dynamic range data)를 처리하기 위한 톤-맵퍼(tone-mapper) 프로세서이다. 일부 실시 예에서, 이미지 전처리기(703)는 인공 지능(AI) 프로세서(707)의 부분으로 구현된다. 예를 들어, 이미지 전처리기(703)는 AI 프로세서(707)의 구성 요소일 수 있다.
일부 실시 예에서, 딥러닝 네트워크(705)는 자율 차량 컨트롤을 구현하기위한 딥러닝 네트워크이다. 예를 들어, 딥러닝 네트워크(705)는 센서 데이터를 사용하여 트레이닝된 컨볼루션 뉴럴 네트워크(CNN)와 같은 인공 뉴럴 네트워크일 수 있고, 그것의 출력은 차량 컨트롤 모듈(709)로 제공된다. 일부 실시 예에서, 딥러닝 네트워크(705)의 뉴럴 네트워크의 복제(duplicate)는 트리거 분류기 모듈(713)의 트리거 분류기를 생성하기 위해 이용된다.
일부 실시 예에서, 인공 지능(AI) 프로세서(707)는 트리거 분류기 모듈(713) 및/또는 딥러닝 네트워크(705)를 실행(run)하기 위한 하드웨어 프로세서이다. 일부 실시 예에서, AI 프로세서(707)는 센서 데이터에 컨볼루션 뉴럴 네트워크(CNN)를 사용하는 추론을 수행하기 위한 전문화된 AI 프로세서이다. 일부 실시 예에서, AI 프로세서(707)는 센서 데이터의 비트 깊이(bit depth)를 위해 최적화된다. 일부 실시 예에서, AI 프로세서(707)는 다른 것들 중 컨볼루션, 내적, 벡터 및/또는 행렬 연산들을 포함하는 뉴럴 네트워크의 연산들과 같은 딥러닝 연산들을 위해 최적화된다. 일부 실시 예에서, AI 프로세서(707)는 그래픽 처리 장치(GPU)를 사용하여 구현된다. 다양한 실시 예에서, AI 프로세서(707)는, 실행될 때 AI 프로세서를 수신된 입력 센서 데이터에 딥러닝 분석을 수행하도록 및 차량을 적어도 부분적으로 자율적으로 작동하는 데 사용된 머신 러닝 결과를 결정하도록 유발하는 명령어들을 갖는 AI 프로세서를 제공하도록 구성된 메모리에 커플링된다. 일부 실시 예에서, AI 프로세서(707)는 분류기 점수를 결정하기 위한 트리거 분류기 모듈(713)로 딥러닝 네트워크(705)의 하나 이상의 레이어들의 중간 결과들을 출력하도록 구성된다.
일부 실시 예에서, 차량 컨트롤 모듈(709)은 인공 지능(AI) 프로세서(707)의 출력을 처리하는 데 및 차량 컨트롤 작동으로 출력을 트랜슬레이트(translate)하는 데 이용된다. 일부 실시 예에서, 차량 컨트롤 모듈(709)은 자율 주행을 위한 차량을 컨트롤하는 데 이용된다. 일부 실시 예에서, 차량 컨트롤 모듈(709)은 차량의 스티어링 및/또는 속력을 조정할 수 있다. 예를 들어, 차량 컨트롤 모듈(709)은 브레이크, 스티어링, 차로들을 변화, 가속, 또 다른 차선으로 합치기 등을 함으로써, 차량을 컨트롤하는 데 사용될 수 있다. 일부 실시 예에서, 차량 컨트롤 모듈(709)은 브레이크 등들(brake lights), 방향 지시등들(turns signals), 헤드라이트(headlights) 등과 같은 차량 조명(vehicle lighting)을 컨트롤하는 데 사용된다. 일부 실시 예에서, 차량 컨트롤 모듈(709)은 차량의 사운드 시스템(vehicle's sound system), 오디오 경고들 재생(playing audio alerts), 마이크 가능하게 하기(enabling a microphone), 경적 가능하게 하기(enabling the horn) 등과 같은 차량 오디오 컨디션들을 컨트롤하는 데 사용된다. 일부 실시 예에서, 차량 컨트롤 모듈(709)은 의도된 목적지의 접근 또는 잠재적인 충돌(potential collision)과 같은 주행 이벤트들의 승객들 및/또는 운전자를 알리기 위한 경고 시스템들을 포함하는 통지 시스템들(notification systems)을 컨트롤하는 데 사용된다. 일부 실시 예에서, 차량 컨트롤 모듈(709)은 차량의 센서들(701)과 같은 센서들을 조정하는 데 사용된다. 예를 들어, 차량 컨트롤 모듈(709)은 방향을 수정(modifying the orientation), 출력 해상도 및/또는 포맷 유형을 변화, 캡쳐 비율(capture rate)을 증가 또는 감소, 동적 범위(dynamic range)를 조정, 카메라의 초점을 조정, 센서를 가능하게 및/또는 불가능하게 하기 등과 같은 하나 이상의 센서들의 파라미터들을 변화하는 데 사용될 수 있다. 일부 실시 예에서, 차량 컨트롤 모듈(709)은 필터들의 주파수 범위를 수정, 특징 및/또는 엣지 감지 파라미터들을 조정, 비트 깊이 및 채널들을 조정(adjusting channels and bit depth) 등과 같은 이미지 전처리기(703)의 파라미터들을 변화하는 데 사용될 수 있다. 다양한 실시 예에서, 차량 컨트롤 모듈(709)은 차량의 셀프-주행 및/또는 운전자-보조의 컨트롤을 구현하는 데 사용된다.
일부 실시 예에서, 네트워크 인터페이스(711)는 음성 데이터를 포함하는 데이터를 수신 및/또는 발신하기 위한 의사 소통 인터페이스이다. 다양한 실시 예에서, 네트워크 인터페이스(711)는 음성 통화들을 연결 및 만들기 위하여, 문자 메시지들을 수신 및/또는 발신하기 위하여, 센서 데이터를 전송하기 위하여, 트리거 분류기들 및 속성들을 포함하는 자율 주행 시스템으로 업데이트들을 수신하기 위하여 등 원격 서버들과 인터페이스하기 위한 셀룰러 또는 무선 인터페이스를 포함한다. 예를 들어, 네트워크 인터페이스(711)는 센서들(701), 이미지 전처리기(703), 딥러닝 네트워크(705), AI 프로세서(707), 차량 컨트롤 모듈(709), 및/또는 트리거 분류기 모듈(713)을 위한 작동 파라미터들 및/또는 명령어들에 대한 업데이트를 수신하는 데 사용될 수 있다. 예를 들어, 딥러닝 네트워크(705)의 머신 러닝 모델은 네트워크 인터페이스(711)를 사용하여 업데이트될 수 있다. 또 다른 예시에 따르면, 네트워크 인터페이스(711)는 이미지 프로세싱 파라미터들과 같은 이미지 전처리기(703)의 작동 파라미터들 및/또는 센서들(701)의 펌웨어를 업데이트하는 데 사용될 수 있다.
일부 실시 예에서, 네트워크 인터페이스(711)는 트리거 분류기 모듈(713)에 의하여 식별된 센서 데이터를 전송하는 데 사용된다. 예를 들어, 연관된 트리거 속성들의 컨디션들을 충족하고 트리거 분류기에 의하여 식별된 특정한 사용 사례(particular use case)를 해당하는 센서 데이터는 원격 컴퓨터 서버와 같은 컴퓨터 서버로 네트워크 인터페이스(711)를 통하여 전송된다. 일부 실시 예에서, 트리거 분류기 및 트리거 속성들은 네트워크 인터페이스(711)를 통하여 업데이트된다. 업데이트된 트리거 분류기 및 트리거 속성들은 트리거 분류기 모듈(713)로 설치되고 특정한 사용 사례(particular use case)에 해당하는 센서 데이터를 보유 및 식별하는 데 사용된다.
일부 실시 예에서, 네트워크 인터페이스(711)는 사고 또는 거의 사고(near-accident)의 이벤트에서 긴급 서비스들(emergency services)과 긴급 연락(emergency contact)을 만드는 데 사용된다. 예를 들어, 충돌의 이벤트에서, 네트워크 인터페이스(711)는 도움을 위한 긴급 서비스들을 연락하는 데 사용될 수 있고, 충돌 세부사항들 및 차량의 위치의 긴급 서비스들을 알릴 수 있다. 다양한 실시 예에서, 네트워크 인터페이스(711)는 예상된 도착 시간 및/또는 목적지 위치를 업데이트 및/또는 검색(retrieve)하기 위하여 달력 정보(calendar information)에 접근하는 것과 같은 자율 주행 특징들을 구현하는 데 사용된다.
일부 실시 예에서, 트리거 분류기 모듈(713)은 특정한 사용 사례(particular use case)에 해당하는 센서 데이터를 보유 및 식별하는 데 이용된다. 예를 들어, 트리거 분류기 모듈(713)은 센서들(701)의 하나 이상의 센서들에 의하여 캡쳐된 데이터에 대한 분류기 점수를 결정한다. 분류기 점수는 임계에 대해 비교되고 원격 컴퓨터 서버로 네트워크 인터페이스(711)를 통화여 전송 및 보유될 수 있다. 일부 실시 예에서, 트리거 분류기 모듈(713)은 분류기 점수를 결정 및/또는 분류기 점수 임계를 충족하는 센서 데이터를 보유하기 위하여 적절한 컨디션들이 충족되었는 지 여부를 결정하기 위하여 트리거 속성들을 이용한다. 일부 실시 예에서, 트리거 분류기 모듈은 서포트 벡터 머신이고 센서들(701)의 센서 데이터의 입력 대표로서 딥러닝 네트워크(705)의 중간 출력을 수신한다. 일부 실시 예에서, 트리거 분류기 모듈(713)은 딥러닝 네트워크(705)의 하나 또는 다수의 레이어의 중간 결과들을 수신하도록 구성된다. 특정한 레이어(particular layer)의 출력은 트리거 속성들 및/또는 트리거 분류기에 의존할 수 있다. 예를 들어, 일부 사용 사례들은 보다 먼저의 중간 결과를 이용할 수 있고, 다른 것들은 보다 나중의 중간 결과를 이용할 수 있다. 일부 실시 예에서, AI 프로세서(707)는 트리거 분류기 모듈(713)의 프로세싱을 수행하는 데 이용될 수 있다. 다양한 실시 예에서, 트리거 분류기 모듈(713)에 의하여 식별된 센서 데이터는 특정한 사용 사례들(particular use cases)을 식별하기 위한 새로운 트레이닝 데이터 세트들을 생성하는 데 사용된다.
설명된 실시 예들의 다양한 측면들, 실시 예들, 구현들 또는 특징들은 분리되어 또는 임의의 조합으로 사용될 수 있다. 설명된 실시 예들의 다양한 측면들은 소프트웨어, 하드웨어 또는 하드웨어 및 소프트웨어의 조합에 의하여 구현될 수 있다. 설명된 실시 예들은 또한 제조 라인을 컨트롤하기 위한 컴퓨터 판독 가능 매체에 컴퓨터 판독 가능 코드로서 또는 제조 작동들을 컨트롤하기 위한 컴퓨터 판독 가능 매체에 컴퓨터 판독 가능 코드로 구현될 수 있다. 컴퓨터 판독 가능 매체는 후에 컴퓨터 시스템에 의하여 판독될 수 있는 데이터를 저장할 수 있는 임의의 데이터 저장 디바이스이다. 컴퓨터 판독 가능 매체의 예시들은 읽기 전용 메모리(read-only memory), 랜덤-액서스 메모리(random-access memory), CD-ROMs, HDDs, DVDs, 자기 테이프(magnetic tape), 및 광학 데이터 저장 디바이스들(optical data storage devices)을 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터 판독 가능 코드가 저장되고 배포된 방식으로 실행되도록 네트워크-커플링된 컴퓨터 시스템들에 걸쳐 또한 배포될 수 있다.
전술한 설명은, 설명의 목적에서, 설명된 실시 예의 현저한 이해를 제공하기 위하여 특정한 명명법(specific nomenclature)을 사용했다. 그러나, 구체적인 세부사항들(specific details)은 설명된 실시 예를 실시하기 위하여 요구되지 않는 것이 기술 분야의 통상의 기술자에게 명백할 것이다. 그러므로, 특정한(specific) 실시 예의 앞의 설명들은 설명 및 도시의 목적에서 제시된다. 그들은 개시된 정밀한(precise) 형태로 설명된 실시 예들을 제한하거나 완전한 것으로 의도되지 않는다. 많은 수정들 및 변경들이 위의 교시들의 관점에서 가능한 것이 기술 분야의 통상의 기술자에게 명백할 것이다.
여기서 설명된 및/또는 도면들에 묘사된 프로세스들, 방법들, 및 알고리즘들 중 각각은 하나 이상의 물리적인 컴퓨팅 시스템들에 의하여 실행되는 코드 모듈들, 하드웨어 컴퓨터 프로세서, 어플리케이션-특정 회로, 및/또는 구체적인 및 특정한 컴퓨터 명령어들을 실행하도록 구성된 전자 하드웨어(electronic hardware configured to execute specific and particular computer instructions)에 의하여 부분적으로 또는 완전히 자동화 및 구현될 수 있는 것이 또한 이해될 것이다. 예를 들어, 컴퓨팅 시스템들은 특정한 컴퓨터 명령어들(specific computer instructions) 또는 특수 목적 컴퓨터들, 특수 목적 회로, 등으로 프로그래밍된 범용 컴퓨터들(예를 들어, 서버들)을 포함할 수 있다. 코드 모듈은 실행 가능한 프로그램으로 컴파일 및 링크(compiled and linked into an executable program), 동적 링크 라이브러리로 설치(installed in a dynamic link library), 해석된 프로그래밍 언어로 작성(written in an interpreted programming language)될 수 있다. 일부 실시 예에서, 특정한 작동들 및 방법들(particular operations and methods)은 주어진 기능(function)에 특정한(specific) 회로에 의하여 수행될 수 있다.
더욱이, 본 개시의 기능성의 특정 실시예들(certain embodiments)은, 어플리케이션-특화 하드웨어(application-specific hardware) 또는 (적절한 전문화된 실행 가능한 명령어들을 이용하는) 하나 이상의 물리적 컴퓨팅 디바이스들은, 예를 들어 연관된 계산들의 복잡도 또는 볼륨으로 인해 기능성을 수행하기 위하여 또는 실질적으로 실시간으로 결과들을 제공하기 위하여 필요한 만큼, 충분히 수학적으로, 계산적으로, 또는 기술적으로 복잡하다. 예를 들어, 비디오는 수백만의 픽셀들을 가지는 각 프레임을 갖는 많은 프레임들을 포함할 수 있고, 구체적으로 프로그래밍된 컴퓨터 하드웨어는 상업적으로(commercially) 합리적인 시간의 양 내에 원하는 이미지 프로세싱 작업을 제공하기 위해 비디오 데이터를 처리하는 데 필수적이다.
코드 모듈들 또는 데이터의 임의의 유형은 하드 드라이브들을 포함하는 물리적 컴퓨터 저장 장치, 솔리드 스테이트 메모리, 랜덤 액세스 메모리(RAM), 읽기 전용 메모리(ROM), 광 디스크, 휘발성 또는 비-휘발성 메모리, 동일 및/또는 유사한 것들의 조합과 같은 비 일시적인 컴퓨터 판독 가능 매체의 임의의 유형에 저장될 수 있다. 일부 실시 예에서, 비 일시적 컴퓨터 판독 가능 매체는 하나 이상의 로컬 프로세싱 및 데이터 모듈, 원격 프로세싱 모듈, 및 원격 데이터 저장소(remote data repository)의 부분일 수 있다. 방법들 및 모듈들(또는 데이터)은 무선 기반의 유선/케이블 기반의 매체들을 포함하는 다양한 컴퓨터 판독 가능 전송 매체들에 발생된 데이터 신호들로서(예를 들어, 반송파(carrier wave) 또는 다른 아날로그 또는 디지털 전파 신호의 일부로서) 또한 전송될 수 있고, 다양한 형태들(예를 들어, 단일 또는 다중화된(multiplexed) 아날로그 신호의 일부로서, 또는 다수의 이산적인(discrete) 디지털 패킷들(packets) 또는 프레임들로서)을 취할 수 있다. 개시된 프로세스들 또는 프로세스 단계들의 결과들은 비 일시적인 유형의(tangible) 컴퓨터 저장장치의 임의의 유형에 영구적으로 또는 다르게 저장될 수 있거나 컴퓨터 판독 가능 전송 매체를 통하여 의사 소통될 수 있다.
여기서 설명된 및/또는 첨부된 도면들에서 묘사된 흐름도들에 임의의 프로세스들, 블록들, 상태들, 단계들, 또는 기능성들은 프로세스에 단계들 또는 특정한 기능들(specific functions)(예를 들어, 로직의(logical) 또는 산술적인(arithmetical))을 구현하기 위한 하나 이상의 실행 가능한 명령어들을 포함하는 코드의 일부들, 세그먼트들 또는 코드 모듈들을 잠재적으로 표현하는 것으로 이해되어야 한다. 다양한 프로세스들, 블록들, 상태들, 단계들, 또는 기능성들은 여기서 제공된 도시적인 예시들을 결합, 재배치, 이에 추가(added to), 이로부터 삭제(deleted from), 수정, 또는 그렇지 않으면 이로부터 변화(changed from)될 수 있다. 일부 실시 예에서, 추가적인 또는 상이한 컴퓨팅 시스템들 또는 코드 모듈들은 여기서 설명된 기능성들 중 모두 또는 일부를 수행할 수 있다. 여기에서 설명된 프로세스들 및 방법들은 임의의 특정한 시퀀스(particular sequence)로 또한 제한되지 않고, 이에 관련한 블록들, 단계들 또는 상태들은 적절한 다른 시퀀스들로 예를 들어, 직렬, 병렬, 또는 일부 다른 방법(manner)으로 수행될 수 있다. 작업들 또는 이벤트들은 개시된 예시 실시 예로부터 제거되거나 이에 추가될 수 있다. 더욱이, 여기서 설명된 실시 예들에 다양한 시스템 구성 요소들의 분리는 도시적인 목적들을 위한 것이고, 모든 실시 예에서 이러한 분리를 요구하는 것으로 이해되지 않아야 한다. 설명된 프로그램 구성 요소들, 방법들 및 시스템들은 일반적으로 다수의 컴퓨터 제품들로 패키징되거나 단일 컴퓨터 제품으로 함께 통합될 수 있는 것으로 이해되어야 한다.
전술한 명세서에서, 하나 이상의 혁신들은 그것들의 구체적인 실시 예들에 대한 참조와 설명되었다. 그러나, 다양한 수정들 및 변화들은 혁신들의 더 넓은 정신 및 범위를 벗어나는 것 없이 거기에 이루어질 수 있는 것은 명백하다. 명세서 및 도면들은, 이에 따라, 제한적인 의미(restrictive sense)라기 보다는 오히려 예시적인 것으로 간주(regard)되어야 한다.
실제로(indeed), 개시의 방법들 및 시스템들은 여러(several) 혁신적인 측면들을 각각 가지고, 상기 측면들 중 하나(no single one of which)가 여기서 개시된 원하는 속성들(desirable attributes)을 위해 요구되거나 전적으로 책임을 지지 않는다는 것이 이해될 것이다. 위에서 설명된 다양한 특징들 및 프로세스들은 또 다른 것(one another)과 독립적으로(independently) 사용될 수 있거나 다양한 방식으로 결합될 수 있다. 모든 가능한 조합들 및 하위 조합들(subcombinations)은 이 개시의 범위 내로 속하도록(fall) 의도된다.
별도의 실시 예의 맥락에서 이 명세서에서 설명된 특정 특징들(certain features)은 또한 단일 실시 예에서 조합으로 구현될 수 있다. 역으로, 단일 실시 예의 맥락에서 설명된 다양한 특징들은 또한 다수의 실시 예들을 별도로 또는 임의의 적합한 하위 조합들로 구현될 수 있다. 더욱이, 특징들은 특정 조합들(certain combinations)으로 위에서 설명될 수 있고 심지어 이렇게 처음에 청구될 수 있음에도 불구하고, 청구된 조합으로부터 하나 이상의 특징들은 조합으로부터 삭제(excise)될 수 있고 청구된 조합은 하위 조합 또는 하위 조합의 변경을 가리키게될(directed) 수 있다. 단일 기능 또는 기능들의 그룹은 각각의 및 모든 실시예에 필수적이거나 불가결한 것은 없다.
다른 것들 중 "할 수 있다(can)", "할 것이다(could)", "일 것 이다(might)", "일 수 있다(may)", "예를 들어," 및 이와 유사한 것과 같은 여기서 사용된 조건부 언어(conditional language)는, 달리 구체적으로 언급되지 않는 한 또는 사용된 문맥 내에서 달리 이해되지 않는다면, 특정(certain) 특징들, 요소들, 및/또는 단계들을 다른 실시 예들은 포함하지 않는 반면에 특정 실시 예들은 포함한다는 것을 전달하도록 일반적으로 의도되는 것으로 이해될 것이다. 그러므로, 이러한 조건부 언어는 특징들, 요소들, 및/또는 단계들이 하나 이상의 실시 예들을 위해 임의의 방식으로 요구되는 것 또는 하나 이상의 실시예들이 저자 입력(author input) 또는 프롬프트(prompting)와 함께 또는 없이 이 특징들, 요소들, 및/또는 단계들이 임의의 특정한 실시 예(particular embodiment)에서 수행될 지 또는 포함될 지 여부를 결정하기 위한 로직을 필수적으로 포함하는 것을 암시하도록 일반적으로 의도되지 않는다. "포함한(comprising)", "포함하는(including)", "가지는(having)" 및 이와 유사한 용어들은 동의어(synonymous)고, 개방형 방식(open-ended fashion)으로 포괄적으로(inclusively) 사용되며, 추가 요소들, 특징들, 행위들, 작동들 등을 배제하지 않는다. 또한, 용어 "또는"은, 예를 들어 요소들의 목록을 연결하는 데 사용될 때 용어 "또는"은 하나, 일부, 또는 목록의 원소들 모두를 의미하도록 (그것의 배타적인(exclusive) 의미로 아니고) 그것의 포괄적인(inclusive) 의미로 사용된다. 게다가, 본 출원 및 첨부된 청구범위에서 사용된 "한", "일", 및 "그(the)"는 달리 명시되지 않는 한 "하나 이상의" 또는 "적어도 하나"를 의미하는 것으로 해석되어야 한다. 유사하게, 작동들이 특정한 순서(particular order)로 도면들에 묘사될 수 있는 반면에, 원하는 결과들을 달성하기 위하여 도시된 작동들 모두가 수행될 필요가 없는 것, 또는 이러한 작동들이 나타난 특정한 순서(particular order)로 또는 순차적인 순서(sequential order)로 수행될 필요가 없는 것이 인식되야 한다. 더욱이, 도면들은 흐름도의 형태로 하나 이상의 예시 프로세스들을 개략적으로 묘사할 수 있다. 그러나, 묘사되지 않은 다른 작동들은 개략적으로 도시된 예시 방법들 및 프로세스들에서 포함될 수 있다. 예를 들어, 하나 이상의 추가적인 작동들은 도시된 작동들 중 임의의 것 사이에, 동시에, 후에 또는 전에 수행될 수 있다. 추가적으로, 작동들은 다른 실시 예들에서 재배치(rearrange) 또는 재배열(reorder)될 수 있다. 특정(certain) 상황들에서, 멀티태스킹 및 병렬 프로세싱은 유리할 수 있다. 더욱이, 위에서 설명된 실시 예에서 다양한 시스템 구성 요소들의 분리는 모든 실시 예에서 이러한 분리를 요구하는 것으로 이해되지 않아야하고, 설명된 프로그램 구성 요소 및 시스템들은 일반적으로 다수의 소프트웨어 제품들로 패키징되거나 단일 소프트웨어 제품으로 함께 통합될 수 있는 것으로 이해되어야 한다. 추가적으로, 다른 실시 예들은 다음의 청구항의 범위 내이다. 일부 경우에, 청구항에 언급(recite)된 행위(action)들이 상이한 순서로 수행될 수 있고 원하는 결과들을 여전히 달성할 수 있다.
따라서, 청구항은 여기에 도시된 실시 예로 제한하도록 의도된 것이 아니라, 여기서 개시된 신규한 특징들 원리들 및 이 개시와 일치하는 가장 넓은 범위에 따른다.

Claims (20)

  1. 방법에 있어서,
    센서 데이터(sensor data)를 수신하는 단계;
    상기 센서 데이터에 뉴럴 네트워크(neural network)를 적용(apply)하는 단계;
    상기 센서 데이터에 대한 분류기 점수(classifier score)를 결정하도록 상기 뉴럴 네트워크의 중간 결과(intermediate result)에 트리거 분류기(trigger classifier)를 적용하는 단계; 및
    상기 분류기 점수에 적어도 부분적으로 기초하여 상기 센서 데이터 중 적어도 일부(portion)를 컴퓨터 네트워크(computer network)를 통하여 전송(transmit)할 지 여부를 결정하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 중간 결과는 상기 뉴럴 네트워크의 중간 레이어(intermediate layer)의 출력인,
    방법.
  3. 제2항에 있어서,
    상기 중간 결과는 상기 뉴럴 네트워크의 두 번째 내지 마지막 레이어(second to last layer)의 출력인,
    방법.
  4. 제1항에 있어서,
    상기 뉴럴 네트워크는 컨볼루션 뉴럴 네트워크(convolutional neural network)인,
    방법.
  5. 제1항에 있어서,
    상기 트리거 분류기는,
    상기 분류기 점수를 결정하는 데 사용된 상기 뉴럴 네트워크에 기초한 머신 러닝 모델(machine learning model)을 사용한 제2 뉴럴 네트워크에 의하여 적어도 부분적으로 분석된(analyzed) 트레이닝 데이터 세트(training data set)를 사용하여 트레이닝되는(trained),
    방법.
  6. 제5항에 있어서,
    상기 트리거 분류기는 입력 벡터(input vector)를 사용하여 트레이닝되고,
    상기 입력 벡터는 상기 제2 뉴럴 네트워크의 레이어의 출력인,
    방법.
  7. 제6항에 있어서,
    상기 제2 뉴럴 네트워크의 상기 레이어는 동적으로(dynamically) 선택된(selected),
    방법.
  8. 제6항에 있어서,
    상기 트리거 분류기는 상기 뉴럴 네트워크를 적용하는 차량(vehicle)에 무선으로(wirelessly) 전송되는,
    방법.
  9. 제1항에 있어서,
    상기 트리거 분류기는 상기 뉴럴 네트워크에 대한 식별된 개선 필요(identified improvement need)에 기초하여 발생된,
    방법.
  10. 제1항에 있어서,
    상기 트리거 분류기는,
    터널 입구(tunnel entrance), 터널 출구(tunnel exit), 도로에서 갈림길(fork in a road), 도로에서 장애물(obstacle in a road), 도로 차로 경계선들(road lane lines), 또는 주행 가능한 공간(drivable space) 중 하나 이상을 식별하는 데 사용되는,
    방법.
  11. 제1항에 있어서,
    상기 분류기 점수에 적어도 부분적으로 기초하여 상기 센서 데이터 중 적어도 상기 일부를 상기 컴퓨터 네트워크를 통하여 전송할 지 여부를 상기 결정하는 단계는,
    임계 값(threshold value)과 상기 분류기 점수를 비교하는 단계
    를 포함하는 방법.
  12. 제1항에 있어서,
    하나 이상의 요구된 컨디션들(required conditions)에 기초하여 상기 트리거 분류기를 적용할 지 여부를 결정하는 단계
    를 더 포함하는 방법.
  13. 제12항에 있어서,
    상기 하나 이상의 요구된 컨디션들은,
    주행하는 시간의 길이(a length of time driving), 상기 트리거 분류기의 마지막 보유된 센서 데이터로부터 최소 시간(minimum time since a last retained sensor data of the trigger classifier), 자율 주행 특징과 관련된 이탈 이벤트(disengagement event associated with an autonomous driving feature), 차량 유형(vehicle type), 스티어링 각도 임계(steering angle threshold), 또는 도로 유형 요구사항(road type requirement) 중 하나 이상에 기초하는,
    방법.
  14. 제1항에 있어서,
    상기 트리거 분류기가 상기 중간 결과를 수신할 상기 뉴럴 네트워크의 특정한 레이어(particular layer)를 명시(specify)하는,
    방법.
  15. 제1항에 있어서,
    분류기 점수, 위치(location), 타임 스탬프(timestamp), 도로 유형, 이전에 전송된 센서 데이터 이후(since a previously transmitted sensor data) 시간의 길이, 또는 차량 유형 중 하나 이상을 식별하는 메타데이터(metadata) 및 상기 센서 데이터 중 적어도 상기 일부를 전송하는 단계
    를 더 포함하는 방법.
  16. 제1항에 있어서,
    차량 속력(vehicle speed), 차량 가속도, 차량 제동 또는 차량 스티어링 각도 중 하나 이상을 식별하는 차량의 작동 컨디션들(operating conditions) 및 상기 센서 데이터 중 적어도 상기 일부를 전송하는 단계
    를 더 포함하는 방법.
  17. 제1항에 있어서,
    가중치들(weights)의 벡터에 의하여 표현된(represented) 상기 트리거 분류기를 상기 컴퓨터 네트워크를 통하여 수신하는 단계
    를 더 포함하는 방법.
  18. 제17항에 있어서,
    상기 트리거 분류기는 바이어스(bias) 및 가중치들의 상기 벡터에 의하여 표현되는,
    방법.
  19. 컴퓨터 프로그램 제품(computer program product)에 있어서,
    상기 컴퓨터 프로그램 제품은 비일시적 컴퓨터 판독 가능한 저장 매체로 구현되고,
    센서 데이터(sensor data)를 수신하는 것;
    상기 센서 데이터에 뉴럴 네트워크(neural network)를 적용(apply)하는 것;
    상기 센서 데이터에 대한 분류기 점수(classifier score)를 결정하도록 상기 뉴럴 네트워크의 중간 결과(intermediate result)에 트리거 분류기(trigger classifier)를 적용하는 것; 및
    상기 분류기 점수에 적어도 부분적으로 기초하여 상기 센서 데이터 중 적어도 일부를 컴퓨터 네트워크를 통하여 전송할 지 여부를 결정하는 것
    을 위한 컴퓨터 명령어들(computer instructions)을 포함하는,
    컴퓨터 프로그램 제품.
  20. 시스템에 있어서,
    차량(vehicle) 상의 센서(sensor);
    인공 지능 프로세서(artificial intelligence processor);
    차량 컨트롤 모듈(vehicle control module);
    상기 센서를 사용하여 캡쳐된 이미지를 수신하고; 상기 캡쳐된 이미지를 처리하며(process); 및 뉴럴 네트워크에 상기 처리된 이미지(processed image)를 제공하도록 구성된 이미지 신호 프로세서(image signal processor);
    상기 인공 지능 프로세서와 커플링된(coupled with) 메모리(memory); - 상기 메모리는 실행될 때(when executed) 상기 인공 지능 프로세서가: 상기 처리된 이미지를 수신하고; 상기 처리된 이미지 상에서 상기 뉴럴 네트워크를 사용한 추론(inference)을 수행(perform)하며; 상기 캡쳐된 이미지에 대응하는 분류기 점수를 결정하도록 사용되는 트리거 분류기에 상기 뉴럴 네트워크의 중간 결과를 제공하고; 및 상기 차량을 적어도 부분적으로 자율적으로(autonomously) 작동시키는 상기 차량 컨트롤 모듈에 상기 뉴럴 네트워크의 간섭 결과(interference result)를 제공하도록 유발하는(cause) 명령어들(instructions)을 상기 인공 지능 프로세서에게 제공하도록 구성됨 - 및
    상기 분류기 점수에 적어도 부분적으로 기초하여 상기 캡쳐된 이미지 중 적어도 일부를 전송하도록 구성된 네트워크 인터페이스
    를 포함하는 시스템


KR1020217007900A 2018-09-14 2019-09-13 트레이닝 데이터를 획득하기 위한 시스템 및 방법 KR102538768B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020237017871A KR102662474B1 (ko) 2018-09-14 2019-09-13 트레이닝 데이터를 획득하기 위한 시스템 및 방법

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862731651P 2018-09-14 2018-09-14
US62/731,651 2018-09-14
PCT/US2019/051121 WO2020056331A1 (en) 2018-09-14 2019-09-13 System and method for obtaining training data

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020237017871A Division KR102662474B1 (ko) 2018-09-14 2019-09-13 트레이닝 데이터를 획득하기 위한 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20210045454A true KR20210045454A (ko) 2021-04-26
KR102538768B1 KR102538768B1 (ko) 2023-06-01

Family

ID=69777876

Family Applications (3)

Application Number Title Priority Date Filing Date
KR1020237017871A KR102662474B1 (ko) 2018-09-14 2019-09-13 트레이닝 데이터를 획득하기 위한 시스템 및 방법
KR1020247013983A KR20240063182A (ko) 2018-09-14 2019-09-13 트레이닝 데이터를 획득하기 위한 시스템 및 방법
KR1020217007900A KR102538768B1 (ko) 2018-09-14 2019-09-13 트레이닝 데이터를 획득하기 위한 시스템 및 방법

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020237017871A KR102662474B1 (ko) 2018-09-14 2019-09-13 트레이닝 데이터를 획득하기 위한 시스템 및 방법
KR1020247013983A KR20240063182A (ko) 2018-09-14 2019-09-13 트레이닝 데이터를 획득하기 위한 시스템 및 방법

Country Status (6)

Country Link
US (1) US20210271259A1 (ko)
EP (1) EP3850549A4 (ko)
JP (2) JP7227358B2 (ko)
KR (3) KR102662474B1 (ko)
CN (1) CN112771548A (ko)
WO (1) WO2020056331A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102416691B1 (ko) * 2021-11-24 2022-07-06 주식회사 마크애니 다중 객체 인식용 기계학습을 위한 다중 데이터셋 기반 학습 장치 및 방법

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020055910A1 (en) 2018-09-10 2020-03-19 Drisk, Inc. Systems and methods for graph-based ai training
IL270540A (en) * 2018-12-26 2020-06-30 Yandex Taxi Llc Method and system for training a machine learning algorithm to recognize objects from a distance
US11483370B2 (en) * 2019-03-14 2022-10-25 Hewlett-Packard Development Company, L.P. Preprocessing sensor data for machine learning
US11983909B2 (en) 2019-03-14 2024-05-14 Hewlett-Packard Development Company, L.P. Responding to machine learning requests from multiple clients
ES2905570T3 (es) 2019-03-19 2022-04-11 2Hfutura Sa Técnica para la recuperación eficiente de datos de personalidad
KR20210050052A (ko) * 2019-10-25 2021-05-07 현대모비스 주식회사 자동차용 센서 통합 모듈
EP3819888B1 (en) * 2019-11-05 2023-12-27 Valeo Comfort and Driving Assistance Vehicle system of a vehicle for detecting and validating an event using a deep learning model
DE102020215656A1 (de) 2020-12-10 2022-06-15 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zum Generieren von Anomalie-Trainingsdaten für ein künstliches Neuronales Netz
WO2022146945A1 (en) * 2020-12-30 2022-07-07 Flir Unmanned Aerial Systems Ulc Systems and methods for learning and finding objects in-the-wild
US20220234622A1 (en) * 2021-01-28 2022-07-28 Drisk, Inc. Systems and Methods for Autonomous Vehicle Control
DE102021201539A1 (de) 2021-02-18 2022-08-18 Zf Friedrichshafen Ag Erzeugung von Trainingsdaten für einen Algorithmus des maschinellen Lernens
EP4047515B1 (en) * 2021-02-19 2023-10-11 Zenseact AB Platform for perception system development for automated driving systems
EP4047514B1 (en) 2021-02-19 2023-10-11 Zenseact AB Platform for perception system development for automated driving system
DE102021204143A1 (de) 2021-04-26 2022-10-27 Volkswagen Aktiengesellschaft Gewinnung eines Sensor-Datensatzes eines Fahrzeugs einer Fahrzeugflotte
EP4082862A1 (en) * 2021-04-29 2022-11-02 Zenseact AB Platform for path planning system development for automated driving system
KR20230021457A (ko) * 2021-08-05 2023-02-14 현대모비스 주식회사 차량의 장애물 감지 시스템 및 방법
GB2611765B (en) * 2021-10-08 2024-01-31 Samsung Electronics Co Ltd Method, system and apparatus for monocular depth estimation
DE102021214334B3 (de) 2021-12-14 2023-06-07 Continental Autonomous Mobility Germany GmbH Fahrzeugdatensystem und Verfahren zur Ermittlung von relevanten bzw. übertragenswerten Fahrzeugdaten eines Umgebungserfassungssensors
EP4231196A1 (en) * 2022-02-17 2023-08-23 Volvo Car Corporation Methods and apparatus for training a machine learning algorithm
WO2023173280A1 (en) * 2022-03-15 2023-09-21 Huawei Technologies Co.,Ltd. System and method for autonomous vehicle motion planner optimisation
DE102022111180A1 (de) 2022-05-05 2023-11-09 Bayerische Motoren Werke Aktiengesellschaft Computer-implementiertes verfahren und vorrichtung zur auslegung einer datensammelkampagne für ein kraftfahrzeug
DE102022111325A1 (de) 2022-05-06 2023-11-09 Bayerische Motoren Werke Aktiengesellschaft Verfahren und vorrichtung zur ermittlung einer fehlfunktion eines kraftfahrzeugs
WO2024072984A1 (en) 2022-09-30 2024-04-04 Tesla, Inc. Actuator and actuator design methodology

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875440B1 (en) * 2010-10-26 2018-01-23 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
KR20180055708A (ko) * 2016-11-16 2018-05-25 삼성전자주식회사 이미지를 처리하는 전자 장치 및 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313467B2 (en) * 2000-09-08 2007-12-25 Automotive Technologies International Inc. System and method for in-vehicle communications
CN101599126B (zh) * 2009-04-22 2012-09-19 哈尔滨工业大学 利用全局互信息加权的支持向量机分类器
US9542626B2 (en) * 2013-09-06 2017-01-10 Toyota Jidosha Kabushiki Kaisha Augmenting layer-based object detection with deep convolutional neural networks
CN105320957B (zh) * 2014-07-10 2022-02-15 腾讯科技(深圳)有限公司 分类器训练方法和装置
US20170046510A1 (en) * 2015-08-14 2017-02-16 Qualcomm Incorporated Methods and Systems of Building Classifier Models in Computing Devices
US10289949B2 (en) * 2015-09-29 2019-05-14 International Business Machines Corporation Incident prediction and response using deep learning techniques and multimodal data
WO2017175282A1 (ja) 2016-04-04 2017-10-12 オリンパス株式会社 学習方法、画像認識装置およびプログラム
US20180004210A1 (en) * 2016-07-01 2018-01-04 nuTonomy Inc. Affecting Functions of a Vehicle Based on Function-Related Information about its Environment
JP2018055259A (ja) * 2016-09-27 2018-04-05 キヤノン株式会社 情報処理装置、情報処理方法及びプログラム
JP2018060268A (ja) * 2016-10-03 2018-04-12 株式会社日立製作所 認識装置および学習システム
US10748075B2 (en) * 2016-10-21 2020-08-18 Stmicroelectronics, Inc. Method and apparatus for energy efficient probabilistic context awareness of a mobile or wearable device user by switching between a single sensor and multiple sensors
JP2018125777A (ja) 2017-02-02 2018-08-09 パナソニックIpマネジメント株式会社 撮像装置、学習サーバ、撮像システム
CN107766876B (zh) * 2017-09-19 2019-08-13 平安科技(深圳)有限公司 驾驶模型训练方法、驾驶人识别方法、装置、设备及介质
CN107818335A (zh) * 2017-10-09 2018-03-20 南京航空航天大学 一种基于多分类器自适应加权的钢轨裂纹识别方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9875440B1 (en) * 2010-10-26 2018-01-23 Michael Lamport Commons Intelligent control with hierarchical stacked neural networks
KR20180055708A (ko) * 2016-11-16 2018-05-25 삼성전자주식회사 이미지를 처리하는 전자 장치 및 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102416691B1 (ko) * 2021-11-24 2022-07-06 주식회사 마크애니 다중 객체 인식용 기계학습을 위한 다중 데이터셋 기반 학습 장치 및 방법

Also Published As

Publication number Publication date
JP2023053031A (ja) 2023-04-12
JP7227358B2 (ja) 2023-02-21
EP3850549A4 (en) 2022-06-15
KR20240063182A (ko) 2024-05-09
KR20230079505A (ko) 2023-06-07
EP3850549A1 (en) 2021-07-21
KR102662474B1 (ko) 2024-04-30
CN112771548A (zh) 2021-05-07
KR102538768B1 (ko) 2023-06-01
JP2021536072A (ja) 2021-12-23
WO2020056331A1 (en) 2020-03-19
US20210271259A1 (en) 2021-09-02

Similar Documents

Publication Publication Date Title
KR102538768B1 (ko) 트레이닝 데이터를 획득하기 위한 시스템 및 방법
KR102618662B1 (ko) 자율 주행을 위한 3차원 특징 예측
KR102605807B1 (ko) 시계열 요소들로부터 머신 러닝을 위한 그라운드 트루스 생성
KR102618700B1 (ko) 시각적 이미지 데이터를 사용하는 오브젝트 특성 추정
US11655893B1 (en) Efficient automatic gear shift using computer vision
US11645779B1 (en) Using vehicle cameras for automatically determining approach angles onto driveways
US20220067406A1 (en) Determining traffic light labels and classification quality from infrastructure signals

Legal Events

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