KR20200125731A - 객체 검출 및 특성화를 위한 뉴럴 네트워크들 - Google Patents

객체 검출 및 특성화를 위한 뉴럴 네트워크들 Download PDF

Info

Publication number
KR20200125731A
KR20200125731A KR1020207029163A KR20207029163A KR20200125731A KR 20200125731 A KR20200125731 A KR 20200125731A KR 1020207029163 A KR1020207029163 A KR 1020207029163A KR 20207029163 A KR20207029163 A KR 20207029163A KR 20200125731 A KR20200125731 A KR 20200125731A
Authority
KR
South Korea
Prior art keywords
locations
neural network
input
environment
location
Prior art date
Application number
KR1020207029163A
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 KR20200125731A publication Critical patent/KR20200125731A/ko

Links

Images

Classifications

    • G06N3/0454
    • 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/084Backpropagation, e.g. using gradient descent
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B60VEHICLES IN GENERAL
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R1/00Optical viewing arrangements; Real-time viewing arrangements for drivers or passengers using optical image capturing systems, e.g. cameras or video systems specially adapted for use in or on vehicles
    • 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/0212Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory
    • G05D1/0221Control of position or course in two dimensions specially adapted to land vehicles with means for defining a desired trajectory involving a learning process
    • 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/20Control system inputs
    • 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/20Control system inputs
    • G05D1/22Command input arrangements
    • G06K9/00805
    • 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
    • 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
    • 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
    • B60RVEHICLES, VEHICLE FITTINGS, OR VEHICLE PARTS, NOT OTHERWISE PROVIDED FOR
    • B60R2300/00Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle
    • B60R2300/80Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement
    • B60R2300/8093Details of viewing arrangements using cameras and displays, specially adapted for use in a vehicle characterised by the intended use of the viewing arrangement for obstacle warning

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Artificial Intelligence (AREA)
  • General Engineering & Computer Science (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Mechanical Engineering (AREA)
  • Image Analysis (AREA)
  • Traffic Control Systems (AREA)

Abstract

객체들이 센터링될 가능성이 있는 차량의 환경에서의 위치들을 선택하고 이들 객체들의 특성들을 결정하기 위한, 컴퓨터 저장 매체들 상에서 인코딩되는 컴퓨터 프로그램들을 포함하는, 방법들, 시스템들, 및 장치. 방법들 중 하나는, 차량 외부의 환경을 특성화하는 입력을 수신하는 단계를 포함한다. 환경에서의 복수의 위치들 각각에 대해, 객체의 중심이 위치에 위치될 가능성을 표현하는 각각의 제1 객체 스코어가 결정된다. 제1 객체 스코어들에 기초하여, 각각의 객체들이 센터링될 가능성이 있는 환경에서의 위치들로서 복수의 위치들로부터 하나 이상의 위치들이 선택된다. 선택된 위치들에 센터링될 가능성이 있는 객체들의 객체 특성들이 또한 결정된다.

Description

객체 검출 및 특성화를 위한 뉴럴 네트워크들
관련 출원에 대한 상호 참조
본 출원은 2018년 3월 12일자로 출원된 미국 특허 출원 제15/919,045호에 대한 우선권을 주장하고, 이 미국 특허 출원의 전체가 이로써 참조로 포함된다.
기술분야
본 명세서는 일반적으로 자율 차량들에 관한 것이다.
자율 차량들은 자가 드라이빙(self-driving) 승용차들, 보트들, 및 항공기를 포함한다. 자율 차량들은 다양한 온보드 센서들 및 컴퓨터 시스템들을 사용하여 주변 객체들을 검출하고 그러한 검출들을 사용하여 제어 및 내비게이션 판정들을 행한다.
일부 자율 차량들은, 이미지들 내의 객체 분류를 위한 뉴럴 네트워크(neural network)들을 구현하는 컴퓨터 시스템들을 갖는다. 예를 들어, 온보드 카메라에 의해 캡처된 이미지가 주변 승용차의 이미지일 가능성이 있다는 것을 결정하기 위해 뉴럴 네트워크가 사용될 수 있다.
뉴럴 네트워크들, 또는 간결함을 위해, 네트워크들은, 하나 이상의 입력들로부터 하나 이상의 출력들을 예측하기 위한 동작들의 다수의 레이어(layer)들을 채용하는 머신 학습 모델들이다. 뉴럴 네트워크들은 전형적으로, 입력 레이어와 출력 레이어 사이에 놓여진 하나 이상의 히든 레이어(hidden layer)들을 포함한다. 각각의 레이어의 출력이 네트워크에서의 다른 레이어, 예를 들어, 다음 히든 레이어 또는 출력 레이어에 대한 입력으로서 사용된다.
뉴럴 네트워크의 각각의 레이어는 레이어에 대한 입력에 대해 수행될 하나 이상의 변환 동작들을 특정한다. 일부 뉴럴 네트워크 레이어들은, 뉴런(neuron)들이라고 지칭되는 동작들을 갖는다. 각각의 뉴런은 하나 이상의 입력들을 수신하고, 다른 뉴럴 네트워크 레이어에 의해 수신되는 출력을 생성한다. 종종, 각각의 뉴런은 다른 뉴런들로부터 입력들을 수신하고, 각각의 뉴런은 하나 이상의 다른 뉴런들에 출력을 제공한다.
뉴럴 네트워크의 아키텍처가 어떤 레이어들이 네트워크에 포함되는지 그리고 이들의 특성들뿐만 아니라, 네트워크의 각각의 레이어의 뉴런들이 어떻게 연결되는지를 특정한다. 다시 말해, 아키텍처는 어떤 레이어들이 이들의 출력을 다른 레이어들에 대한 입력으로서 제공하는지 그리고 출력이 어떻게 제공되는지를 특정한다.
각각의 레이어의 변환 동작들은 변환 동작들을 구현하는 소프트웨어 모듈들이 설치된 컴퓨터들에 의해 수행된다. 따라서, 동작들을 수행하는 것으로서 설명되는 레이어는, 레이어의 변환 동작들을 구현하는 컴퓨터들이 동작들을 수행한다는 것을 의미한다.
각각의 레이어는 레이어에 대한 한 세트의 파라미터들의 현재 값들을 사용하여 하나 이상의 출력들을 생성한다. 따라서, 네트워크의 트레이닝은, 입력에 대한 포워드 패스(forward pass)를 연속적으로 수행하는 것, 경사 값(gradient value)들을 컴퓨팅하는 것, 그리고 각각의 레이어에 대한 한 세트의 파라미터들에 대한 현재 값들을 업데이트하는 것을 수반한다. 일단 뉴럴 네트워크가 트레이닝되면, 최종 세트의 파라미터들이 사용되어 생성 시스템에서 예측들을 행할 수 있다.
자율 및 반자율 차량 시스템들이 뉴럴 네트워크에 의해 생성되는 예측들을 사용하여 드라이빙 판정들을 행할 수 있다.
본 명세서는 객체들이 센터링될(centered) 가능성이 있는 차량의 환경에서의 하나 이상의 위치들을 선택하고 이들 객체들의 특성들을 결정하기 위한 기법들을 설명한다.
자율 또는 반자율 차량 상의 시스템이 차량 외부의 환경을 특성화하는 입력을 수신한다. 입력은, 환경에서의 위치들 각각에 대해, 차량의 하나 이상의 센서들에 의해 캡처되는 센서 데이터를 포함한다. 시스템은, 입력으로부터 그리고 위치들 각각에 대해, 객체의 중심이 위치에 위치될 가능성을 표현하는 제1 객체 스코어를 결정한다. 그 후에, 위치들 중 하나 이상은 객체들이 센터링될 가능성이 있는 환경에서의 위치들로서 선택된다. 선택은 객체 스코어들에 기초한다. 다음으로, 차량의 시스템은 각각의 선택된 위치에서의 환경을 특성화하는 피처(feature)들을 획득한다. 최종적으로, 시스템은, 선택된 위치들 각각에 대해 그리고 선택된 위치들의 피처들로부터, 선택된 위치들에 센터링될 가능성이 있는 객체들의 객체 특성들을 결정한다. 이 양태의 다른 실시예들은 대응하는 컴퓨터 시스템들, 장치, 및 하나 이상의 컴퓨터 저장 디바이스들 상에 기록되는 컴퓨터 프로그램들을 포함하는데, 그 각각은 방법들의 액션들을 수행하도록 구성된다.
하나 이상의 컴퓨터들의 시스템이 특정 동작들 또는 액션들을 수행하도록 구성된다는 것은, 시스템이 그것 상에, 동작에 있어서 시스템으로 하여금 동작들 또는 액션들을 수행하게 하는 소프트웨어, 펌웨어, 하드웨어, 또는 이들의 조합을 설치하였다는 것을 의미한다. 하나 이상의 컴퓨터 프로그램들이 특정 동작들 또는 액션들을 수행하도록 구성된다는 것은, 하나 이상의 프로그램들이, 데이터 프로세싱 장치에 의해 실행될 때, 그 장치로 하여금 동작들 또는 액션들을 수행하게 하는 명령어들을 포함한다는 것을 의미한다.
본 명세서에서 설명되는 청구 대상의 특정 실시예들이 다음의 이점들 중 하나 이상을 실현하도록 구현될 수 있다. 자율 또는 반자율 차량의 뉴럴 네트워크 서브시스템이 객체들이 센터링될 가능성이 있는 위치들을 선택하고 이들 객체들의 특성들을 결정할 수 있다. 주어진 센서 데이터에 대해, 뉴럴 네트워크가 한 번에 모두, 즉, 뉴럴 네트워크의 단일 포워드 패스에서 위치들을 선택한다. 이 선택 방법은 반복적으로 위치들을 선택하는 것, 즉, 뉴럴 네트워크의 주어진 포워드 패스에서 단지 하나의 위치만을 선택하는 것보다 선호되는데, 이는 그것이 더 빠르기 때문이다. 모든 위치들이 뉴럴 네트워크의 단일 포워드 패스에서 선택되기 때문에, 이들 위치들에 센터링된 객체들의 객체 특성들이 배치(batch)들로 결정될 수 있다. 이것은 센서 데이터가 캡처되는 시간과 객체 특성들이 결정되는 시간 사이의 레이턴시(latency)를 감소시킨다. 이와 같이, 객체 특성들은 차량의 제어 시스템에 더 신속하게 제공될 수 있는데, 이는 제어 시스템이 더 정확한 드라이빙 판정들을 행하는 것을 가능하게 한다. 상술된 바와 같이 위치들을 선택하고 객체 특성들을 결정하는 것은 또한 차량의 컴퓨팅 리소스들의 더 효율적인 사용을 행한다.
최종적으로, 시스템이 제1 스테이지에서 연산적으로 효율적인 방식으로 객체들이 센터링될 가능성이 있는 위치들을 선택한 후에 제2의 상이한 스테이지에서 이들 객체들의 특성들을 결정하기 때문에, 제2 스테이지는 연산적으로 비용이 더 많이 들고 더 많은 정보에 의존할 수 있다. 이것은 더 정확한 객체 특성 예측들을 발생시킨다.
본 명세서의 청구 대상의 하나 이상의 실시예들의 세부사항들이 아래의 설명 및 첨부 도면들에 제시된다. 청구 대상의 다른 피처들, 양태들 및 이점들은 이 설명, 도면들, 및 청구범위로부터 명백해질 것이다.
도 1은 예시적인 시스템의 다이어그램이다.
도 2는 객체 중심들을 예측하고 객체 특성들을 결정하기 위한 예시적인 프로세스의 흐름도이다.
도 3은 예시적인 뉴럴 네트워크 서브시스템의 다이어그램이다.
도 4는 객체 중심들을 예측하기 위한 뉴럴 네트워크의 예시적인 아키텍처이다.
도 5는 객체 중심들을 선택하기 위한 예시적인 프로세스의 흐름도이다.
도 6은 선택된 위치들에 센터링될 가능성이 있는 객체들의 특성들을 결정하기 위한 뉴럴 네트워크의 예시적인 아키텍처이다.
도 7은 객체 스코어들의 예시적인 출력 맵을 도시한다.
다양한 도면들에서의 동일한 참조 번호들 및 명칭들은 동일한 요소들을 표시한다.
본 명세서는 자율 또는 반자율 차량이 객체들을 검출하고 차량 외부의 환경을 특성화하는 센서 데이터에 기초하여 객체 특성들을 결정하기 위해 뉴럴 네트워크 시스템을 사용할 수 있는 방법을 설명한다. 특히, 뉴럴 네트워크 시스템은 객체의 중심이 환경에서의 특정 위치들에 위치될 가능성을 결정할 수 있다. 위치가 객체의 중심에 대응한다는 것을 특정 신뢰도로 결정한 후에, 뉴럴 네트워크 시스템은 그 객체의 객체 특성들을 결정할 수 있다. 뉴럴 네트워크 시스템은, 몇 가지 예를 들자면, 차량들, 보행자들, 자전거 사용자(bicyclist)들, 또는 차선 마커들을 포함하는, 임의의 클래스의 객체들의 특성들을 검출 및 결정하도록 트레이닝될 수 있다.
도 1은 예시적인 시스템(100)의 다이어그램이다. 시스템(100)은 트레이닝 시스템(110) 및 온보드 시스템(130)을 포함한다.
온보드 시스템(130)은 차량(122)에 온보드되어 물리적으로 위치된다. 차량(122)에 온보드된다는 것은 온보드 시스템(130)이 차량(122)과 함께 이동하는 컴포넌트들, 예를 들어, 전원들, 컴퓨팅 하드웨어, 및 센서들을 포함한다는 것을 의미한다. 도 1의 차량(122)은 자동차로서 예시되어 있지만, 온보드 시스템(130)은 임의의 타입의 차량에 온보드되어 위치될 수 있다. 차량(122)은, 완전 자율 드라이빙 판정들을 알리기 위해 객체 검출들 및 특성들을 사용하는 완전 자율 차량일 수 있다. 차량(122)은 또한, 인간 운전자를 돕기 위해 객체 검출들 및 특성들을 사용하는 반자율 차량일 수 있다. 예를 들어, 차량(122)은 뉴럴 네트워크 시스템이 인간 운전자가 다른 차량과 충돌할 수도 있음을 표시하는 경우 자율적으로 제동을 걸 수 있다.
온보드 시스템(130)은 하나 이상의 센서 서브시스템들(132)을 포함한다. 센서 서브시스템들(132)은, 환경에서 표면들로부터의 전자기 방사의 반사들을 수신하는 컴포넌트들의 조합을 포함한다. 예를 들어, 센서 서브시스템은, 레이저 광의 반사들을 검출하는 라이더 시스템, 라디오 파(radio wave)들의 반사들을 검출하는 레이더 시스템, 가시 광의 반사들을 검출하는 카메라 시스템, 또는 이들 3개의 일부 조합을 포함할 수도 있다. 일부 구현들에서, 하나 이상의 센서 서브시스템들(132)은 오디오 센서들을 포함한다. 예를 들어, 오디오 센서들은 긴급 차량 사이렌들을 검출할 수 있다.
센서 서브시스템들(132)은 입력 센서 데이터(155)를 온보드 뉴럴 네트워크 서브시스템(134)에 제공한다. 입력 센서 데이터(155)는, 데이터의 다수의 채널들을 포함할 수 있고, 여기서 각각의 채널은 반사된 전자기 방사의 상이한 특성을 표현한다. 따라서, 입력 센서 데이터(155)의 다수의 채널들은 동일한 센서로부터의 측정들로부터 생성될 수 있다. 센서 서브시스템들(132)은, 차량(122)이 환경을 통해 이동함에 따라, 미리 결정된 시간 간격들로, 예를 들어, 매 10분의 1초마다, 입력 센서 데이터(155)를 연속적으로 수집한다.
센서 서브시스템들(132), 또는 온보드 뉴럴 네트워크 서브시스템(134), 또는 이들 2개의 일부 조합은 원시 센서 데이터를 입력 센서 데이터(155)의 다수의 채널들로 변환한다. 그렇게 하기 위해, 온보드 시스템(120)은 원시 센서 데이터의 다양한 특성들을 공통 좌표계로 투영할 수 있다.
온보드 뉴럴 네트워크 서브시스템(134)은 하나 이상의 뉴럴 네트워크들을 포함할 수 있다. 예를 들어, 온보드 뉴럴 네트워크 서브시스템(134)은 중심 예측 뉴럴 네트워크 및 객체 특성 뉴럴 네트워크를 포함할 수 있다. 이들 뉴럴 네트워크들 각각이 추후에 더 상세히 논의될 것이다. 온보드 뉴럴 네트워크 서브시스템(134)은 그의 뉴럴 네트워크들의 각각의 레이어의 동작들을 구현한다. 따라서, 온보드 뉴럴 네트워크 서브시스템(134)은, 뉴럴 네트워크들의 아키텍처에 따라 뉴럴 네트워크들의 각각의 레이어의 각각의 동작들을 구현하는 소프트웨어 또는 하드웨어 모듈들을 갖는 하나 이상의 컴퓨팅 디바이스들을 포함한다.
온보드 뉴럴 네트워크 서브시스템(134)은 트레이닝 시스템(110)으로부터 수신되는 모델 파라미터 값들(172)의 콜렉션(collection)을 로딩함으로써 뉴럴 네트워크들의 각각의 레이어의 동작들을 구현할 수 있다. 논리적으로 분리된 것으로서 예시되어 있지만, 모델 파라미터 값들(172) 및 동작들을 수행하는 소프트웨어 또는 하드웨어 모듈들은 실제로, 동일한 컴퓨팅 디바이스 상에 위치될 수도 있거나 또는, 실행되는 소프트웨어 모듈의 경우에, 동일한 메모리 디바이스 내에 저장될 수도 있다.
온보드 뉴럴 네트워크 서브시스템(134)은 뉴럴 네트워크의 하나 이상의 레이어들의 동작들을 구현하기 위해 하드웨어 가속 또는 다른 특수 목적 컴퓨팅 디바이스들을 사용할 수 있다. 예를 들어, 일부 레이어들의 일부 동작들은 고도로 병렬화된 하드웨어에 의해, 예를 들어, 그래픽 프로세싱 유닛 또는 다른 종류의 특수화된 컴퓨팅 디바이스에 의해 수행될 수도 있다. 다시 말해, 각각의 레이어의 모든 동작들이 온보드 뉴럴 네트워크 서브시스템(134)의 중앙 프로세싱 유닛(central processing unit)(CPU)들에 의해 수행될 필요는 없다.
온보드 뉴럴 네트워크 서브시스템(134)은 입력 센서 데이터(155) 및 뉴럴 네트워크들을 사용하여 차량 외부의 환경에 있을 것으로 예측되는 객체들의 객체 특성들(165)을 결정한다. 계획 서브시스템(136)이 객체 특성들(165)을 수신할 때, 계획 서브시스템(136)은 객체 특성들(165)을 사용하여 완전 자율 또는 반자율 드라이빙 판정들을 행할 수 있다. 예를 들어, 계획 서브시스템(136)은 고속도로 상의 다른 차량들에 걸쳐 또는 그 주위에서 내비게이션하기 위한 완전 자율 계획을 생성할 수 있다. 다른 예로서, 계획 서브시스템(136)은 인간 운전자가 제동을 걸기 위한 반자율 추천을 생성할 수 있다.
사용자 인터페이스 서브시스템(138)이 객체 특성들(165)을 수신할 수 있고, 주변 객체들, 예를 들어, 주변 차량들의 위치들을 표시하는 사용자 인터페이스 프리젠테이션을 생성할 수 있다. 예를 들어, 사용자 인터페이스 서브시스템(138)은 차량들에 의해 점유될 가능성이 있는 공간의 영역들의 표현을 포함하는 이미지 또는 비디오 데이터를 갖는 사용자 인터페이스 프리젠테이션을 생성할 수 있다. 그 후에, 온보드 디스플레이 디바이스가 차량(122)의 승객들을 위한 사용자 인터페이스 프리젠테이션을 디스플레이할 수 있다.
온보드 뉴럴 네트워크 서브시스템(134)은 또한 입력 센서 데이터(155)를 사용하여 트레이닝 데이터(123)를 생성할 수 있다. 트레이닝 데이터(123)는 입력 센서 데이터의 상이한 채널들의 투영된 표현들을 포함할 수 있다. 온보드 시스템(130)은 트레이닝 데이터(123)를 오프라인 배치들로 또는 온라인 방식으로, 예를 들어, 그것이 생성될 때마다 연속적으로 트레이닝 시스템(110)에 제공할 수 있다.
트레이닝 시스템(110)은 전형적으로, 하나 이상의 위치들에 수백 또는 수천 개의 컴퓨터들을 갖는 분산 컴퓨팅 시스템일 수 있는 데이터 센터(112) 내에서 호스팅된다.
트레이닝 시스템(110)은, 입력 센서 데이터로부터 객체 예측들을 행하고 객체 특성들을 결정하도록 설계되는 뉴럴 네트워크들의 각각의 레이어의 동작들을 구현할 수 있는 트레이닝 뉴럴 네트워크 서브시스템(114)을 포함한다. 트레이닝 뉴럴 네트워크 서브시스템(114)은, 뉴럴 네트워크들의 아키텍처에 따라 하나 이상의 뉴럴 네트워크들의 각각의 레이어의 각각의 동작들을 구현하는 소프트웨어 또는 하드웨어 모듈들을 갖는 복수의 컴퓨팅 디바이스들을 포함한다.
트레이닝 뉴럴 네트워크들은 일반적으로 온보드 뉴럴 네트워크들과 동일한 아키텍처 및 파라미터들을 갖는다. 그러나, 트레이닝 시스템(110)은 각각의 레이어의 동작들을 컴퓨팅하기 위해 동일한 하드웨어를 사용할 필요가 없다. 다시 말해, 트레이닝 시스템(110)은 CPU들만, 고도로 병렬화된 하드웨어, 또는 이들의 일부 조합을 사용할 수 있다.
트레이닝 뉴럴 네트워크 서브시스템(114)은 모델 파라미터 값들(170)의 콜렉션에 저장되는 현재 파라미터 값들(115)을 사용하여 뉴럴 네트워크들의 각각의 레이어의 동작들을 컴퓨팅할 수 있다. 논리적으로 분리된 것으로서 예시되어 있지만, 모델 파라미터 값들(170) 및 동작들을 수행하는 소프트웨어 또는 하드웨어 모듈들은 실제로 동일한 컴퓨팅 디바이스 상에 또는 동일한 메모리 디바이스 상에 위치될 수도 있다.
트레이닝 뉴럴 네트워크 서브시스템(114)은 입력으로서 트레이닝 예들(123)을 수신할 수 있다. 트레이닝 예들(123)은 자동-라벨링된 트레이닝 데이터(125), 인간-라벨링된 트레이닝 데이터(127), 또는 이들 2개의 일부 조합을 포함할 수 있다. 트레이닝 예들(123) 각각은, 입력 센서 데이터의 상이한 채널들의 표현뿐만 아니라, 입력 센서 데이터에 의해 표현되는 공간의 영역들 내의 객체들의 중심을 표시하는 하나 이상의 라벨들 및 이들 객체들에 대한 특성들을 포함한다.
트레이닝 뉴럴 네트워크 서브시스템(114)은, 각각의 트레이닝 예(123)에 대해, 하나 이상의 객체 예측들(135)을 생성할 수 있고, 여기서 각각의 객체 예측은 객체 검출 및 각각의 검출된 객체에 대한 특성들을 포함한다. 트레이닝 엔진(116)이 객체 예측들(135)을 분석하고 객체 예측들을 트레이닝 예들(123)에서의 라벨들과 비교한다. 둘이 상이한 경우, 에러가 표시된다. 그 후에, 트레이닝 엔진(116)은 적절한 업데이팅 기법을 사용함으로써 업데이팅된 모델 파라미터 값들(145)을 생성한다. 예를 들어, 모델 파라미터들은 개별 모델 파라미터에 대한 에러의 경사를 계산함으로써 업데이팅될 수도 있다. 에러 기여도를 감소시키기 위해, 경사로부터 유도된 값이 파라미터의 현재 값으로부터 감산되거나 또는 그 현재 값에 가산될 수 있다. 이것은 역전파(backpropagation)를 이용하는 확률적 경사 하강법(stochastic gradient descent)으로 알려져 있다. 본 기술분야에 알려져 있는 다른 기법들이 또한 모델 파라미터들을 업데이팅하는 데 사용될 수 있다. 그 후에, 트레이닝 엔진(116)은 업데이팅된 모델 파라미터 값들(145)을 사용하여 모델 파라미터 값들(170)의 콜렉션을 업데이팅할 수 있다.
트레이닝이 완료된 후에, 트레이닝 시스템(110)은 완전 자율 또는 반자율 드라이빙 판정들을 행함에 있어서의 사용을 위해 온보드 시스템(120)에 최종 세트의 모델 파라미터 값들(171)을 제공할 수 있다. 트레이닝 시스템(110)은 온보드 시스템(120)에 대한 유선 또는 무선 연결에 의해 최종 세트의 모델 파라미터 값들(171)을 제공할 수 있다.
도 2는 객체 중심들을 예측하고 객체 특성들을 결정하기 위한 예시적인 프로세스의 흐름도이다. 도 2의 예시적인 프로세스는 도 1의 온보드 뉴럴 네트워크 서브시스템(134)에 의해 수행될 수 있다. 도 2의 예시적인 프로세스는 또한 뉴럴 네트워크들의 트레이닝 동안 트레이닝 뉴럴 네트워크 서브시스템(114)에 의해 수행될 수 있다. 아래에는, 도 2의 예시적인 프로세스가 온보드 뉴럴 네트워크 서브시스템을 참조하여 설명된다.
먼저, 뉴럴 네트워크 서브시스템은 차량의 센서들로부터 차량의 환경을 특성화하는 입력 센서 데이터를 수신한다(210). 입력 센서 데이터는, 라이더 센서에 의해 검출되는 레이저 광의 반사들, 레이더 센서에 의해 검출되는 라디오 파들의 반사들, 카메라에 의해 검출되는 광의 반사들, 또는 이들 3개의 임의의 조합을 포함할 수 있다.
뉴럴 네트워크 서브시스템은, 입력 센서 데이터를, 그것을 중심 예측 뉴럴 네트워크에 제공하기 위한 준비로 프로세싱한다. 예를 들어, 입력 센서 데이터는 투영 평면 상으로 매핑될 수 있는데, 이때 투영 평면에서의 각각의 위치가 차량 주위의 공간의 영역에 대응한다. 시스템은 모든 입력 센서 데이터가 동일한 좌표계 내에 투영되는 한 임의의 적절한 투영을 사용할 수 있다. 예를 들어, 시스템은 하향식 투영(top-down projection) 또는 원근 투영(perspective projection)을 사용할 수 있다. 하향식 투영은 입력 센서 데이터를 차량 자체 위의 위치로부터 차량 주변의 영역 상으로 투영하는 것이다. 따라서, 하향식 투영을 위한 투영 평면은 차량이 놓여진 표면과 실질적으로 평행하다. 원근 투영은 입력 센서 데이터를 차량의 전방, 후방, 또는 측면의 평면 상으로 투영하는 것이다. 시스템은 각각의 투영을 중심 예측 뉴럴 네트워크에 제공될 텐서(tensor)로서 표현할 수 있다.
도 2의 예시적인 프로세스가 온보드 뉴럴 네트워크 서브시스템에 의해 수행되는 경우, 온보드 뉴럴 네트워크 서브시스템은 입력 센서 데이터를 수신하고 대응하는 투영들을 생성할 수 있다. 도 2의 예시적인 프로세스가 트레이닝 뉴럴 네트워크 시스템에 의해 수행되는 경우, 투영들은 이미 온보드 시스템 또는 다른 시스템에 의해 입력 센서 데이터로부터 생성되었을 것이다.
뉴럴 네트워크 서브시스템은 투영된 센서 데이터를 중심 예측 뉴럴 네트워크에 대한 입력으로서 제공한다(220). 중심 예측 뉴럴 네트워크의 아키텍처는 도 4를 참조하여 아래에 더 상세히 설명될 것이다.
뉴럴 네트워크 서브시스템은 중심 예측 뉴럴 네트워크로부터 객체 스코어들의 출력 맵을 수신한다(230). 출력 맵의 투영 평면은 전형적으로, 중심 예측 뉴럴 네트워크에 제공되는 투영된 센서 데이터의 투영 평면과 동일하다. 예를 들어, 뉴럴 네트워크 서브시스템이 중심 예측 뉴럴 네트워크에 투영된 센서 데이터의 원근 투영을 제공하는 경우, 그러면 객체 스코어들의 출력 맵은 통상적으로 원근 맵, 예를 들어, 차량 전방의 평면의 맵일 것이다. 그러나, 다른 구현에서, 중심 예측 뉴럴 네트워크는 하나의 평면, 예를 들어, 원근 평면에서의 다수의 투영들을 다른 평면에서의 투영들, 예를 들어, 하향식 투영으로 변환하도록 트레이닝된다.
출력 맵에서의 각각의 위치는 투영된 센서 데이터에서의 한 포인트에 대응하고, 객체의 중심이 환경에서의 대응하는 위치에 위치될 가능성을 표현하는 수치 스코어와 연관된다. 예를 들어, 중심 예측 뉴럴 네트워크는 스코어들이 0에서부터 1까지의 범위에 있는 스코어들을 갖는 출력 맵을 생성할 수 있고, 여기서 0은 객체가 출력 맵에서의 특정 위치에 센터링될 가능성이 낮음을 표시하고, 여기서 1은 객체가 출력 맵에서의 특정 위치에 센터링될 가능성이 높음을 표시한다.
중심 예측 뉴럴 네트워크는 단일 포워드 패스에서 객체 스코어들의 출력 맵을 생성할 수 있다. 다시 말해, 주어진 투영된 센서 데이터에 대해, 중심 예측 뉴럴 네트워크는 한 번에 하나씩 객체 스코어들을 결정할 필요가 없다; 오히려, 중심 예측 뉴럴 네트워크는 주어진 투영된 센서 데이터에 대한 객체 스코어들을 한 번에 모두 생성할 수 있다. 이것은 객체 검출에 대한 "풀 콘텍스트(full-context)" 접근법이다. 그것은 입력 데이터의 단지 작은 윈도우들만이 어느 때든 검사되는 객체 검출에 대한 "슬라이딩 윈도우(sliding window)" 접근법과 구별가능하다. 풀 콘텍스트 접근법은, 입력 센서 데이터의 전체 콘텍스트에 주의를 기울이는 일 없이는 객체가 무엇인지 말하기가 더 어려운, 장거리에서 객체들을 검출할 때 특히 가치가 있다.
일부 구현들에서, 중심 예측 뉴럴 네트워크는 객체 스코어들의 다수의 출력 맵들을 생성할 수 있다. 이들 구현들에서, 각각의 출력 맵은 상이한 객체 분류, 즉, 상이한 객체 타입에 대응한다. 즉, 특정 출력 맵에서의 각각의 객체 스코어는 특정 분류의 객체의 중심이 출력 맵에서의 연관된 위치에 위치될 가능성을 표현한다. 예를 들어, 하나의 출력 맵은, 보행자의 중심이 연관된 위치에 위치될 가능성을 각각이 표현하는 객체 스코어들을 가질 수 있다. 객체 스코어들이 0에서부터 1까지의 범위에 있는 예를 계속하면, 1의 객체 스코어는 보행자의 중심이 출력 맵에서의 특정 위치에 위치될 가능성이 높음을 표시할 것인 한편, 0의 객체 스코어는 보행자의 중심이 특정 위치에 위치될 가능성이 낮음을 표시할 것이다. 이들 특정 위치들에서의, 차량들 또한 도로 표지(road sign)들과 같은, 다른 분류들의 객체들의 존재만이 단독으로, 높은 객체 스코어를 발생시키는 것은 아닐 것이다.
그 후에, 중심 예측 뉴럴 네트워크는 차량들, 도로 표지들, 및 다른 분류들의 객체들에 대한 별개의 출력 맵들을 생성할 수 있다.
일부 구현들에서, 중심 예측 뉴럴 네트워크는 다수의 투영들을 깊이 차원에서 함께 적층시킴으로써 3차원 출력 맵들을 생성할 수 있다. 중심 예측 뉴럴 네트워크는 또한 보다 고차원 출력 맵들을 생성할 수 있다. 예를 들어, 중심 예측 뉴럴 네트워크는 4차원 출력 맵을 생성할 수 있고, 여기서 4차원은 시간이다. 4차원 출력 맵은, 객체들이 센터링될 가능성이 있지만 위치들이 시간이 지남에 따라 달라질 수 있는 3차원 공간에서의 위치들을 나타낸다.
다음으로, 뉴럴 네트워크 서브시스템은, 출력 맵에서의 수치 객체 스코어들에 기초하여, 객체 중심들이 위치될 가능성이 있는 위치들을 예측한다(240). 일 구현에서, 뉴럴 네트워크 서브시스템은 임계 객체 스코어를 정의한다. 예를 들어, 뉴럴 네트워크 서브시스템은 0.8 이상인 객체 스코어들과 연관된 출력 맵에서의 모든 위치들을 선택할 수 있다. 그러한 경우에, 0.8은 임계 객체 스코어이다. 0.8보다 더 낮은 객체 스코어들과 연관된 위치들은 선택되지 않는다.
일부 경우들에서, 뉴럴 네트워크 서브시스템은 임계 객체 스코어를 초과하는 일부 위치들을 억제할 수도 있다, 즉, 선택하지 않을 수도 있다. 예를 들어, 출력 맵에서의 3개의 인접 위치들은 0.8, 0.8, 및 0.9의 객체 스코어들과 각각 연관될 수도 있다. 0.8 이상인 객체 스코어들과 연관된 위치들이 선택되는 상기의 예를 계속하면, 이들 3개의 인접 위치들 각각이 선택되는데, 이는 각각이 0.8 이상인 객체 스코어와 연관되기 때문이다. 그러나, 위치들이 인접하기 때문에, 이들의 각각의 스코어들이 각각 동일한 객체의 가능성있는 존재로 인한 것일 가능성이 높다. 이것은 위치 사이즈가 작을 때, 예를 들어, 대략 1 픽셀 정도일 때 특히 그러하다. 다시 말해, 3개 모두가 임계 객체 스코어를 충족하더라도 3개의 위치들 중 단지 하나만이 예측된 객체의 중심을 표현할 가능성이 있다. 그러한 경우에, 한 영역에서의 가장 높은 객체 스코어가 선택될 수 있는 한편, 동일한 영역에서의 다른 객체 스코어들은, 이들이 임계 객체 스코어를 초과하더라도, 억제된다. 이 프로세스는 동일한 객체의 다수의 선택들, 즉, 각각이 동일한 객체에 대응하는 다수의 위치들이 선택되는 것을 방지하는 것을 돕는다. 선택된 객체들의 로컬 억제가 도 5를 참조하여 더 상세히 논의될 것이다.
일 구현에서, 뉴럴 네트워크 서브시스템이 객체 중심들이 위치될 가능성이 있는 위치들을 예측한 후에, 센서 서브시스템이 선택된 위치들 중 하나 이상에 포커싱할 수 있도록 이들 선택된 위치들이 센서 서브시스템에 제공된다. 예를 들어, 카메라 시스템의 경우에, 카메라는 하나 이상의 특정 관심 위치들에 포커싱할 수 있다. 그렇게 하면, 작은 영역에서 다수의 객체들을 식별하는 것 - 여기서 그것은 더 넓은 카메라 뷰로는 가능하지 않을 것이다 - 에 도움이 될 수도 있다.
위치들을 선택한 후에, 뉴럴 네트워크 서브시스템은 선택된 위치들에서의 환경을 특성화하는 피처들을 획득한다(250). 일 구현에서, 뉴럴 네트워크 서브시스템은 중심 예측 뉴럴 네트워크로부터 피처들을 수신한다. 다른 구현에서, 그것은 별개의 시스템으로부터 피처들을 수신한다.
환경에서의 임의의 주어진 위치에 대해, 뉴럴 네트워크 서브시스템은 주어진 위치에서의 환경을 특성화하는 다양한 상이한 피처들 중 임의의 것을 획득할 수 있다. 아래에 설명되는 객체 특성 뉴럴 네트워크 및 중심 예측 뉴럴 네트워크가 함께 트레이닝되기 때문에, 중심 예측 뉴럴 네트워크는 그것이 객체 특성 뉴럴 네트워크에 유용한 피처들을 출력하게 하는 파라미터들을 학습한다. 피처들은, 중심 예측 뉴럴 네트워크의 콘볼루션 레이어(convolutional layer)들에 의해 생성되는 입력 센서 데이터의 추상(abstraction)들이다. 예를 들어, 중심 예측 뉴럴 네트워크는 선택된 위치에 센터링될 가능성이 있는 객체의 추정된 스케일을 출력하는 것을 학습할 수 있다.
뉴럴 네트워크 서브시스템은 선택된 위치들의 출력 맵, 선택된 위치들에서의 환경을 특성화하는 피처들, 및 입력 센서 데이터를 객체 특성 뉴럴 네트워크에 제공한다(260). 일 구현에서, 선택된 위치들, 피처들, 및 입력 센서 데이터는 먼저 객체 특성 뉴럴 네트워크에 대한 입력들의 배치들을 반복적으로 준비하는 중간 뉴럴 네트워크에 제공되고, 여기서 각각의 배치에서의 각각의 입력은, 객체가 센터링될 가능성이 있는 위치에 대응한다. 그 후에, 입력들의 배치들이 객체 특성 뉴럴 네트워크에 제공되는데, 이 객체 특성 뉴럴 네트워크는 입력들의 배치들을 프로세싱하여, 각각의 위치에 센터링될 가능성이 있는 객체들에 대한 객체 특성들을 생성한다. 다른 구현에서, 중간 뉴럴 네트워크 및 객체 특성 뉴럴 네트워크는, 입력들의 배치들을 준비하는 것과 이들 입력들의 배치들을 프로세싱하는 것 양측 모두를 하는 단일 뉴럴 네트워크로 조합된다. 객체 특성 뉴럴 네트워크는 단일 포워드 패스에서 모든 객체들에 대한 특성들을 출력하도록 구성된다.
일 구현에서, 객체 특성 뉴럴 네트워크는 각각의 선택된 위치에 센터링될 가능성이 있는 객체를 분류한다. 예를 들어, 가능한 분류들은 "승용차", "보행자", "자전거", "도로 마킹", 및 "도로 표지"를 포함한다. 그의 트레이닝 및 3개의 입력들에 기초하여, 객체 특성 뉴럴 네트워크는 이들 분류들 중 하나를 선택할 수 있다. 객체 특성 뉴럴 네트워크는 각각의 예측된 객체에 대한 바운딩 박스(bounding box)를 또한 정의할 수 있다. 바운딩 박스는, 객체의 경계들 또는 에지들을 식별하는 박스이다. 바운딩 박스는 2차원 또는 3차원일 수 있다. 차량의 디스플레이 인터페이스가 그러한 바운딩 박스를 반자율 차량의 운전자에게 디스플레이할 수 있다. 뉴럴 네트워크 서브시스템은 차량의 내비게이션에의 사용을 위해 차량의 계획 시스템에 바운딩 박스를 또한 제공할 수 있다. 일부 구현들에서, 객체 특성 뉴럴 네트워크는 각각의 객체에 대한 "마스크"를 예측할 수 있다. 마스크는 그것이 각각의 객체에 폼-피팅(form-fit)된다는 점에서 바운딩 박스와는 상이하다. 다시 말해, 그것은 객체의 에지들을 더 가깝게 식별한다. 마스크는 객체를 정의하는 입력 센서 데이터의 부분들을 마킹할 수 있다.
다른 구현에서, 객체 특성 뉴럴 네트워크는 예측된 객체가 차량으로부터 얼마나 멀리 있는지를 결정한다.
객체 특성 뉴럴 네트워크는 다수의 객체들에 대한 특성들을 병렬로 결정할 수 있다.
일단 뉴럴 네트워크 서브시스템이 객체 특성 뉴럴 네트워크로부터 객체 특성들을 수신하면(270), 이들 객체 특성들은 차량을 제어함에 있어서의 사용을 위해 차량의 제어 시스템에 제공될 수 있다. 예를 들어, 객체 특성 뉴럴 네트워크가 특정 객체를 보행자로서 분류하고 보행자가 차량의 전방 범퍼로부터 5 피트에 있다고 결정하는 경우, 제어 시스템은, 이들 특성들에 반응하여, 승용차로 하여금 제동하게 할 수 있다.
도 3은 예시적인 뉴럴 네트워크 서브시스템의 다이어그램이다. 뉴럴 네트워크 서브시스템(320)은 차량 상에 위치될 수 있다. 뉴럴 네트워크 서브시스템(320)은 또한, 오프라인 트레이닝 시스템에 위치되는 트레이닝 뉴럴 네트워크 서브시스템일 수 있다.
뉴럴 네트워크 서브시스템(320)이 차량 상에 위치되는 경우, 그것은 차량의 센서 서브시스템으로부터 입력 센서 데이터(310)를 수신한다. 구체적으로는, 뉴럴 네트워크 서브시스템(320)의 프리프로세싱 모듈(pre-processing module)(322)이 입력 센서 데이터(310)를 수신한다. 프리프로세싱 모듈(322)은, 입력 센서 데이터(310)를, 그것을 중심 예측 뉴럴 네트워크(324)에 제공하기 위한 준비로 프로세싱한다. 특히, 프리프로세싱 모듈(322)은 도 2를 참조하여 설명된 바와 같이 입력 센서 데이터를 원근 투영 평면 또는 하향식 투영 평면 상으로 매핑시킨다. 일부 상황들에서, 프리프로세싱이 요구되지 않을 수도 있다. 예를 들어, 입력 센서 데이터가 카메라 이미지만을 단지 포함하는 경우, 그것은 이미, 중심 예측 뉴럴 네트워크(324)에 의해 프로세싱될 수 있는 형태로 되어 있다.
중심 예측 뉴럴 네트워크(324)는, 프리프로세싱 모듈(322)로부터, 프리프로세싱 모듈(322)에 의해 준비되는 투영된 센서 데이터를 수신한다.
중심 예측 뉴럴 네트워크(324)는 뉴럴 네트워크의 단일 포워드 패스에서 객체 스코어들의 출력 맵을 생성하도록 트레이닝된다. 다시 말해, 주어진 투영된 센서 데이터에 대해, 중심 예측 뉴럴 네트워크(324)는 하나의 객체 스코어를 결정하고 그것을 메모리에 저장하고 반복할 필요가 없다; 오히려, 중심 예측 뉴럴 네트워크(324)는 주어진 투영된 센서 데이터에 대한 객체 스코어들을 한 번에 모두 생성할 수 있다. 이것은 메모리로부터의 데이터를 페치(fetch)하는 것이 시간 집약적이기 때문에 유리하다.
출력 맵의 투영 평면은 통상적으로, 중심 예측 뉴럴 네트워크(324)에 제공되는 투영된 센서 데이터의 투영 평면과 동일하다. 출력 맵에서의 각각의 위치는 투영된 센서 데이터에서의 한 포인트에 대응하고, 객체의 중심이 환경에서의 대응하는 위치에 위치될 가능성을 표현하는 수치 스코어와 연관된다.
도 3에 도시된 뉴럴 네트워크 서브시스템(320)의 구현에서, 중심 예측 뉴럴 네트워크는 선택된 위치들에서의 환경을 특성화하는 피처들을 생성하도록 또한 트레이닝된다. 그러나, 다른 구현들에서, 별개의 모듈 또는 뉴럴 네트워크가 선택된 위치들에서의 환경을 특성화하는 피처들을 생성할 수 있다.
중심 예측 뉴럴 네트워크(324)는 객체 스코어들의 출력 맵을 중심 선택 모듈(326)에 그리고 객체 특성 뉴럴 네트워크(328)에 제공한다.
중심 선택 모듈(326)은 출력 맵에서의 수치 객체 스코어들에 기초하여 객체 중심들이 위치될 가능성이 있는 위치들을 예측한다. 이 선택 프로세스는 도 5를 참조하여 더욱 상세히 설명된다.
중심 선택 모듈(326)은 선택된 위치들을 객체 특성 뉴럴 네트워크(328)에 제공한다. 중심 선택 모듈(326)은 또한 선택된 위치들(340)을 메모리(330)에 기입할 수 있다.
객체 특성 뉴럴 네트워크(328)는 선택된 위치들, 선택된 위치들을 특성화하는 피처들, 및 입력 센서 데이터를 수신한다. 도 3에 도시된 뉴럴 네트워크 서브시스템(320)의 구현에서, 객체 특성 뉴럴 네트워크(328)는 먼저 선택된 위치들, 피처들, 및 입력 센서 데이터로부터의 입력들의 배치들을 준비하고, 여기서 각각의 배치에서의 각각의 입력은 선택된 위치에 대응한다. 그 후에, 선택된 위치들에 센터링될 가능성이 있는 객체들의 객체 특성들은 이들 입력들의 배치들에 기초하여 결정된다. 다른 구현에서, 선택된 위치들, 피처들, 및 입력 센서 데이터는 먼저 객체 특성 뉴럴 네트워크에 대한 입력들의 배치들을 준비하는 중간 뉴럴 네트워크에 제공된다. 그러나, 도 3에 도시된 바와 같이, 이들 2개의 네트워크들은 입력들의 배치들을 준비하는 것과 객체 특성들을 결정하는 것 양측 모두를 하는 단일 객체 특성 뉴럴 네트워크로 조합된다.
객체 특성 뉴럴 네트워크(328)는 한 번에 모두 입력들의 배치들을 프로세싱하고 모든 객체들에 대한 특성들을 병렬로, 즉, 네트워크를 통한 단일 포워드 패스에서 결정하도록 트레이닝된다. 객체 특성들은, 상기에 언급된 바와 같이, 객체 분류들 및 객체 바운딩 박스들을 포함한다. 객체 특성 뉴럴 네트워크(328)는 객체 특성들을 차량의 계획 및 사용자 인터페이스 서브시스템들에 제공하여 차량이 드라이빙 판정들을 행함에 있어서 이들 특성들을 사용할 수 있도록 한다.
도 4는 객체 중심들을 예측하기 위한 중심 예측 뉴럴 네트워크(400)의 예시적인 아키텍처이다.
중심 예측 뉴럴 네트워크(400)는 입력 레이어(410)를 갖는다. 입력 레이어(410)는 투영된 센서 데이터의 텐서들을 수신한다. 도 4가 단지 하나의 입력 레이어만을 도시하고 있지만, 중심 예측 뉴럴 네트워크(400)는 입력 센서 데이터의 다수의 채널들을 수신하기 위한 다수의 입력 레이어들을 가질 수 있고, 여기서 각각의 채널은 상이한 타입의 반사된 전자기 방사, 예를 들어, 가시 광, 레이저 광, 라디오 파들 등을 표현한다.
중심 예측 뉴럴 네트워크(400)는, 예를 들어, 콘볼루션 레이어들(420a, 420b, 440a, 및 440b)과 같은 다수의 콘볼루션 레이어들을 갖는다. 콘볼루션 레이어들은, 투영된 센서 데이터에서의 공간 로컬 상관을 활용하는 뉴런 연결성을 갖는다. 그렇게 하기 위해, 콘볼루션 레이어들은, 하나의 콘볼루션 레이어에서의 뉴런들이 이전 뉴럴 네트워크 레이어에서의 작은 서브세트의 뉴런들로부터만 입력을 수신하는 희소 연결성(sparse connectivity)을 갖는다. 뉴런이 그의 입력을 수신하게 하는 다른 뉴런들은 그 뉴런에 대한 수용 필드를 정의한다.
콘볼루션 레이어들은, 각각의 레이어에 대한 하나 이상의 필터들을 정의하는 하나 이상의 파라미터들을 갖는데, 이때 각각의 필터는 하나 이상의 파라미터들을 갖는다. 콘볼루션 뉴럴 네트워크 레이어는 레이어의 입력과의 각각의 뉴런의 필터의 콘볼루션을 수행함으로써 출력을 생성한다. 콘볼루션은 각각의 뉴런의 필터의 파라미터들과 그 뉴런에 대한 입력들의 내적(dot product)이다. 출력은 그 필터의 활성화 맵이다. 다시 말해, 중심 예측 뉴럴 네트워크(400)는 그것이 투영된 센서 데이터에서의 위치들에서 특정 타입들의 피처들을 검출할 때 활성화되는 필터들을 갖도록 학습, 즉, 트레이닝된다. 모든 필터들에 대한 활성화 맵들을 적층시키면 콘볼루션 뉴럴 네트워크 레이어의 전체 출력을 형성한다. 따라서, 투영된 센서 데이터의 작은 영역에 주의를 기울이고 파라미터들을 동일한 활성화 맵에서의 뉴런들과 공유하는 뉴런의 출력으로서 모든 출력이 해석될 수 있다.
콘볼루션 레이어들은 동일한 출력 채널에서의 모든 뉴런들이 동일한 가중치를 갖도록 가중치 공유를 채용한다. 이것은 투영된 센서 데이터에서 피처들을 검출할 때 변환 불변성(translation invariance)을 제공한다.
중심 예측 뉴럴 네트워크(400)는, 콘볼루션 레이어들 사이에 산재되는 공간-깊이 레이어(space-to-depth layer)(430)를 포함하는 하나 이상의 공간-깊이 레이어들을 또한 가질 수 있다. 공간-깊이 레이어(430)는 2차원 텐서 요소들의 그룹화들을 적층시킴으로써 투영된 센서 데이터의 텐서들에서의 정보를 다수의 3차원 깊이 슬라이스들로 변환한다. 일반적으로, 공간-깊이 레이어는 N x M x 1 입력 텐서에서의 입력 요소들의 G개의 그룹들을 식별하고 입력 요소들을 (N/C) x (M/D) x G 출력 텐서로 변환하고, 여기서 C 및 D는 그룹화들이 얼마나 관련되는지를 표현하는 상수들이고, G는 C x D와 동일하다. 공간-깊이 레이어(430)에 대한 입력이 이미 다수의 깊이 슬라이스들을 포함할 때, 시스템은 공간-깊이 레이어(430)를 깊이 슬라이스들 각각에 적용할 수 있다.
공간-깊이 레이어(430)는 네트워크에서 후속 레이어들의 유효 수용 필드를 증가시키고 투영된 센서 데이터의 공간 차원들을 압축시킨다. 따라서, 각각의 레이어는 보다 작은 필터들을 학습하는데, 이는 뉴럴 네트워크 시스템이 어떠한 정밀도도 손실시키는 일 없이 후속 콘볼루션 레이어들의 동작들을 더 효율적으로 수행하는 것을 가능하게 한다.
중심 예측 뉴럴 네트워크(400)는, 하나 이상의 텐서들을 입력으로서 취하고 텐서들을 깊이 차원에서 연접(concatenate)하는 깊이 연접 레이어(480)를 또한 갖는다. 이 동작은 새로운 텐서를 생성하기 위해 입력 텐서들을 "적층"시키는 것으로서 설명될 수 있다. 예를 들어, 깊이 연접 레이어(480)는 센서 데이터의 다수의 채널들의 입력들을 적층시킬 수 있다.
중심 예측 뉴럴 네트워크(400)는, 객체 중심 예측들을 생성하는 중심 예측 레이어(450)를 또한 포함한다. 중심 예측 레이어(450)에 의해 생성된 객체 중심 예측들은 객체 중심들이 위치될 가능성이 있는 특정 위치들을 식별하는 피처 맵의 형태를 취한다. 피처 맵에서의 각각의 포인트는 객체 중심이 피처 맵에서의 그 포인트에 대응하는 환경에서의 위치에 위치될 가능성을 표현하는 수치 스코어와 연관된다. 중심 예측 레이어(450)에 의해 생성된 스코어들은, 0 내지 1의 범위 외측에 있을 수도 있는 실수들이다. 일부 구현들에서, 중심 예측 레이어(450)는, 객체 중심들이 레이어에 대한 입력에서 검출될 때 활성화되도록 트레이닝된 필터들을 갖는 콘볼루션 레이어이다.
중심 예측 뉴럴 네트워크(400)가 하나 이상의 공간-깊이 레이어들을 갖는 경우, 그것은 또한, 깊이-공간 레이어들(460a 및 460b)을 포함하는 하나 이상의 깊이-공간 레이어들을 가질 수 있다. 깊이-공간 레이어들은 공간-깊이 레이어들에 의해 수행되는 변환을 역으로 행한다. 이들 레이어들은 객체 중심 예측들의 공간 해상도를 증가시키도록 기능한다.
로지스틱 레이어(logistic layer)(470)가 중심 예측 레이어(450)로부터 피처 맵을 수신하고 0 내지 1의 객체 스코어들의 출력 맵을 생성한다. 이전 도면들을 참조하여 설명된 바와 같이, 출력 맵에서의 각각의 위치는 투영된 센서 데이터에서의 한 포인트에 대응하고, 객체의 중심이 환경에서의 대응하는 위치에 위치될 가능성을 표현하는 수치 스코어와 연관된다.
중심 예측 뉴럴 네트워크(400)는 또한 피처 출력 레이어(490)를 갖는다. 피처 출력 레이어(490)는 환경에서의 각각의 위치에 대해 각각의 피처 벡터를 생성하는 최종 콘볼루션 레이어이다. 피처들은 중심 예측 뉴럴 네트워크(400)의 콘볼루션 레이어들에서의 투영된 센서 데이터의 다수의 콘볼루션들의 결과이다.
도 5는 객체 중심들을 선택하기 위한 예시적인 프로세스의 흐름도이다. 편의상, 예시적인 프로세스는 하나 이상의 위치들에 위치될 하나 이상의 컴퓨터들의 시스템에 의해 수행되는 것으로서 설명될 것이다. 예를 들어, 도 3의 중심 선택 모듈(326)은 도 5의 예시적인 프로세스를 수행할 수 있다.
먼저, 시스템은 중심 예측 뉴럴 네트워크로부터 객체 스코어들의 출력 맵을 수신한다(510). 출력 맵에서의 각각의 위치는 투영된 센서 데이터에서의 한 포인트에 대응하고, 객체의 중심이 환경에서의 대응하는 위치에 위치될 가능성을 표현하는 수치 스코어와 연관된다.
다음으로, 시스템은 미리 결정된 임계 객체 스코어를 식별하고, 그 임계 객체 스코어를 충족시키는 객체 스코어들과 연관된 모든 위치들을 미리 선택한다(520). 예를 들어, 중심 선택 모듈은 0.8 이상인 객체 스코어들과 연관된 출력 맵에서의 모든 위치들을 미리 선택할 수 있다. 그러한 경우에, 0.8은 임계 객체 스코어이다. 0.8보다 더 낮은 객체 스코어들과 연관된 위치들은 미리 선택되지 않는다.
미리 선택하는 것 다음에, 출력 맵에서의 위치들의 각각의 N×M 영역에 대해, 시스템은 그 N×M 영역에서 가장 높은 객체 스코어와 연관된 단일의 미리 선택된 위치(있는 경우)를 선택한다(530).
예를 들어, 출력 맵에서의 3개의 인접 위치들은 0.8, 0.8, 및 0.9의 객체 스코어들과 각각 연관될 수도 있다. 상기의 예를 계속하면, 이들 3개의 인접 위치들 각각이 미리 선택되는데, 이는 각각이 0.8 이상인 객체 스코어와 연관되기 때문이다. 그러나, 위치들이 인접하기 때문에, 이들의 각각의 객체 스코어들이 각각 동일한 객체의 가능성있는 존재로 인한 것일 가능성이 높다. 이것은 위치 사이즈가 작을 때, 예를 들어, 대략 1 픽셀 정도일 때 특히 그러하다. 다시 말해, 3개 모두가 임계 객체 스코어를 충족하더라도 3개의 위치들 중 단지 하나만이 예측된 객체의 중심을 표현할 가능성이 있다. 그러한 경우에, 시스템은 영역에서 가장 높은 객체 스코어와 연관된 위치를 선택하는 한편, 그것은, 이들 위치들이 임계 객체 스코어를 초과하는 객체 스코어들과 연관되더라도, 동일한 영역에서 다른 위치들을 선택하는 것을 억제한다(540). 이 프로세스는 동일한 객체의 다수의 선택들을 방지하는 것을 돕는다.
하나의 N×M 영역에서의 위치의 선택은 다른 N×M 영역에서의 위치의 선택에 영향을 주지 않아서, 상이한 영역들에서의 위치들이 동시에 선택될 수 있다. N 및 M은 위치 사이즈 및 전형적인 객체 사이즈에 기초하여 최적화될 수 있다. 예를 들어, 검출된 객체들이 통상적으로 매우 큰 경우, N 및 M이 증가될 수 있다. 다른 한편으로, 검출된 객체들이 통상적으로 매우 작은 경우, N 및 M이 감소될 수 있다.
일 구현에서, N 및 M은 각각 3과 동일한 정수들이고, 출력 맵에서의 각각의 위치는 투영된 센서 데이터에서의 단일 픽셀에 대응한다. 다시 말해, 출력 맵에서의 N×M 영역은 투영된 센서 데이터에서의 픽셀들의 3×3 영역에 대응한다. 다른 구현들에서, N 및 M은 상이하다, 예를 들어, 각각 3 및 4이다.
도 5의 예시적인 프로세스는 객체 스코어들의 출력 맵에서의 모든 N×M 영역들에 대해 병렬로 수행될 수 있다. 이 영역 병렬화는 한 번에 하나씩 위치들을 선택하는 것보다 선호되는데, 이는 그것이 더 빠르기 때문이고, 객체의 억제 효과가 공간적으로 로컬이기 때문에 가능하다. 다시 말해, 동일한 위치에서 다수의 객체들이 반복적으로 검출되어서는 안 되지만, 하나의 위치에서의 하나의 객체의 검출은 상이한 위치에서의 다른 객체의 검출에 영향을 거의 주지 않는다.
일 구현에서, 도 5의 예시적인 프로세스는 객체 특성 뉴럴 네트워크가 각각의 객체에 대한 객체 특성들을 출력한 후에 두 번째로 수행된다. 그렇게 하면 동일한 위치에서 다수의 객체들이 반복적으로 검출되지 않는다는 것을 추가로 보장한다.
도 6은 선택된 위치들에 센터링될 가능성이 있는 객체들의 특성들을 결정하기 위한 객체 특성 뉴럴 네트워크(600)의 예시적인 아키텍처이다. 객체 특성 뉴럴 네트워크(600)는 예측된 객체들에 대한 바운딩 박스들 및 객체 분류들을 결정한다. 바운딩 박스들은, 객체들의 경계들 또는 에지들을 식별하는 박스들이다. 객체 분류들은 객체들의 타입들, 예를 들어, "승용차", "보행자", "자전거", "도로 마킹", 또는 "도로 표지"이다.
도 6에 도시된 구현에서, 중간 뉴럴 네트워크가 입력들의 배치들을 준비하고 이들 배치들을 객체 특성 뉴럴 네트워크(600)에 제공한다. 각각의 배치에서의 각각의 입력은 객체가 센터링될 가능성이 있는 위치에 대응한다. 입력 센서 데이터, 선택된 위치들, 및 선택된 위치들에서의 환경을 특성화하는 피처들을 조합함으로써 입력들의 배치들이 준비된다.
입력 레이어(610a)가 중간 뉴럴 네트워크에 의해 준비된 입력들의 배치를 수신한다. 입력 레이어(610a)에 대한 입력들의 배치는 입력 센서 데이터를 선택된 위치들과 조합함으로써 준비된다. 객체 특성 뉴럴 네트워크(600)는 또한 입력 레이어들(610b 및 610c)을 갖는다. 입력 레이어들(610b 및 610c) 각각은 선택된 위치들을 그 선택된 위치들에서의 환경을 특성화하는 피처들과 조합함으로써 중간 뉴럴 네트워크에 의해 준비된 입력들의 배치를 수신한다.
일부 구현들에서, 객체 특성 뉴럴 네트워크(600)는 다른 입력들을 수신한다. 예를 들어, 객체 특성 뉴럴 네트워크(600)는 중심 예측 뉴럴 네트워크에 의해 수신 및 사용되는 입력 센서 데이터보다 더 높은 해상도로 된 센서 데이터를 수신할 수 있다. 객체 특성 뉴럴 네트워크(600)는 중심 예측 뉴럴 네트워크에 대한 입력 센서 데이터를 수집하는 데 사용되는 것들과는 상이한 센서들에 의해 수집되는 센서 데이터를 또한 수신할 수 있다. 예를 들어, 객체 특성 뉴럴 네트워크(600)는 라이더 데이터를 수신할 수 있는 한편, 중심 예측 뉴럴 네트워크는 카메라 데이터를 수신한다.
객체 특성 뉴럴 네트워크(600)는 콘볼루션 레이어들(620, 640, 670a, 및 670b)을 포함하는 다수의 콘볼루션 레이어들을 갖는다. 4개의 콘볼루션 레이어들이 도 6에 도시되어 있지만, 객체 특성 뉴럴 네트워크(600)는 더 많은 콘볼루션 레이어들을 가질 수 있다. 도 4를 참조하여 설명된 바와 같이, 콘볼루션 레이어들은, 각각의 레이어에 대한 하나 이상의 필터들을 정의하는 하나 이상의 파라미터들을 갖는다. 콘볼루션 레이어는 레이어의 입력과의 각각의 뉴런의 필터의 콘볼루션을 수행함으로써 출력을 생성한다. 콘볼루션은 각각의 뉴런의 필터의 파라미터들과 그 뉴런에 대한 입력들의 내적이다. 출력은 그 필터의 활성화 맵이다. 다시 말해, 객체 특성 뉴럴 네트워크(600)는 그것이 네트워크에 대한 입력에서의 위치들에서 특정 타입들의 피처들을 검출할 때 활성화되는 필터들을 갖도록 학습, 즉, 트레이닝된다. 모든 필터들에 대한 활성화 맵들을 적층시키면 콘볼루션 레이어의 전체 출력을 형성한다. 따라서, 입력의 작은 영역에 주의를 기울이고 파라미터들을 동일한 활성화 맵에서의 뉴런들과 공유하는 뉴런의 출력으로서 모든 출력이 해석될 수 있다.
콘볼루션 레이어들 사이에는 최대 폴링 레이어들(630 및 650)을 포함하는 최대 풀링 레이어들이 산재되어 있다. 최대 풀링 레이어들은 이들의 입력들을 한 세트의 중첩되지 않는 영역들로 분할하고, 각각의 영역에 대해, 최대치를 출력한다. 최대 풀링 레이어들은 객체 특성 뉴럴 네트워크(600)에 대한 입력들의 배치들의 공간 사이즈를 점진적으로 감소시켜 네트워크에서 파라미터들의 수와 연산량을 감소시키도록 기능한다. 이것은 피처의 정확한 위치가 다른 피처들에 비해 그의 대략적인 위치보다 덜 중요하기 때문에 가능하다.
객체 특성 뉴럴 네트워크(600)는, 하나 이상의 텐서들을 입력으로서 취하고 텐서들을 깊이 차원에서 연접하는 깊이 연접 레이어(660)를 또한 갖는다. 이 동작은 새로운 텐서를 생성하기 위해 입력 텐서들을 "적층"시키는 것으로서 설명될 수 있다. 특히, 깊이 연접 레이어(660)는, 입력 레이어들(610b 및 610c)에 의해 수신되는 입력들의 배치들, 및 입력 레이어(610a)에 의해 수신되는 입력들의 프로세싱된 배치를 적층시킨다.
콘볼루션 레이어들(670a 및 670b) 다음에는 완전 연결 레이어(fully-connected layer)들(680a 및 680b)이 각각 있다. 완전 연결 레이어들은 입력 레이어에서의 모든 뉴런을 출력 레이어에서의 모든 뉴런에 연결한다. 완전 연결 레이어들은 선행하는 콘볼루션 레이어들에 의해 검출되는 피처들에 기초하여 객체들의 특성들을 결정하도록 트레이닝된다. 다시 말해, 선행하는 콘볼루션 레이어들이 입력 데이터에서의 특정 위치에서 특정 서브세트의 피처들을 검출하는 경우, 완전 연결 레이어들은, 이들의 트레이닝 및 입력들에 기초하여, 그 특정 위치에서의 객체가 특정 특성들을 갖는다는 것을 결정할 수 있다. 특히, 완전 연결 레이어(680a)는 객체들에 대한 바운딩 박스들을 결정하도록 트레이닝되고, 완전 연결 레이어(680b)는 객체들에 대한 분류들을 결정하도록 트레이닝된다.
객체 특성 뉴럴 네트워크(600)는, 완전 연결 레이어(680b)로부터 객체 분류들을 수신하는 소프트-맥스 레이어(soft-max layer)(690)를 또한 갖는다. 소프트-맥스 레이어(690)는 완전 연결 레이어(680b)로부터 실수들의 벡터들을 수신하고, 여기서 벡터에서의 각각의 실수는 객체가 특정 분류의 것일 가능성을 표시한다. 실수들은 0 내지 1의 범위 외측에 있을 수도 있다. 소프트-맥스 레이어(690)는, 각각의 객체에 대해, 0에서부터 1까지의 객체 분류들의 확률 분포를 생성하도록 트레이닝된다. 예를 들어, 소프트-맥스 레이어(690)는 90% 신뢰도로 특정 객체가 보행자라는 것 그리고 10% 신뢰도로 도로 표지라는 것을 결정할 수도 있다. 이들 신뢰도들은 자율 드라이빙 판정들을 행함에 있어서의 차량에 의한 사용을 위해 차량의 계획 서브시스템에 제공될 수 있다.
도 7은 중심 예측 뉴럴 네트워크, 예를 들어, 도 4의 중심 예측 뉴럴 네트워크(400)에 의해 생성되는 예시적인 출력 맵(700)을 도시한다. 출력 맵(700)에서의 각각의 위치는 작은 박스로 표현된다. 각각의 박스는 중심 예측 뉴럴 네트워크에 제공되는 투영된 센서 데이터에서의 한 포인트에 대응하고, 객체의 중심이 환경에서의 대응하는 위치에 위치될 가능성을 표현하는 수치 객체 스코어와 연관된다. 객체 스코어들은 0 내지 1의 범위에 있다. 0의 객체 스코어는 객체 중심이 환경에서의 대응하는 위치에 위치될 가능성이 낮음을 표시한다. 1의 객체 스코어는 객체 중심이 환경에서의 대응하는 위치에 위치될 가능성이 높음을 표시한다. 출력 맵(700)에서의 단지 작은 서브세트의 위치들만이 객체 스코어들과 연관되지만, 이것은 단지 편의를 위한 것이다. 실제로, 출력 맵(700)에서의 모든 위치는 객체 스코어와 연관될 것이다.
예측된 객체(710)는 출력 맵(700)에 위치된다. 상술된 바와 같이, 특정 위치에서의 높은 객체 스코어는 객체의 중심이 그 위치에 위치될 가능성이 높음을 표시한다. 이와 같이, 0.9의 객체 스코어와 연관된 작은 박스는 예측된 객체(710)의 중심에 대응할 가능성이 있다.
본 명세서에서 설명되는 기능적 동작들 및 청구 대상의 실시예들은 디지털 전자 회로부로, 유형으로 구체화되는(tangibly-embodied) 컴퓨터 소프트웨어 또는 펌웨어로, 본 명세서에 개시된 구조체들 및 이들의 구조적 등가물들을 포함하는 컴퓨터 하드웨어로, 또는 이들의 하나 이상의 것의 조합들로 구현될 수 있다. 본 명세서에서 설명되는 청구 대상의 실시예들은 데이터 프로세싱 장치에 의한 실행을 위해 또는 데이터 프로세싱 장치의 동작을 제어하기 위해, 유형의 비일시적 저장 매체 상에서 인코딩되는 하나 이상의 컴퓨터 프로그램들, 즉, 컴퓨터 프로그램 명령어들의 하나 이상의 모듈들로서 구현될 수 있다. 컴퓨터 저장 매체는 머신 판독가능 저장 디바이스, 머신 판독가능 저장 기판, 랜덤 또는 직렬 액세스 메모리 디바이스, 또는 이들 중 하나 이상의 것의 조합일 수 있다. 대안적으로 또는 부가적으로, 프로그램 명령어들은, 인공적으로 생성된 전파 신호, 예를 들어, 데이터 프로세싱 장치에 의한 실행을 위해 적합한 수신기 장치에의 송신을 위한 정보를 인코딩하도록 생성되는 머신 생성 전기, 광학, 또는 전자기 신호 상에서 인코딩될 수 있다.
용어 "데이터 프로세싱 장치"는 데이터 프로세싱 하드웨어를 지칭하고, 예로서 프로그래밍가능 프로세서, 컴퓨터, 또는 다수의 프로세서들 또는 컴퓨터들을 포함하는, 데이터를 프로세싱하기 위한 모든 종류들의 장치, 디바이스들, 및 머신들을 포괄한다. 장치는 또한, 기성품(off-the-shelf) 또는 맞춤형 병렬 프로세싱 서브시스템들, 예를 들어, GPU 또는 다른 종류의 특수 목적 프로세싱 서브시스템일 수 있거나 또는 이들을 더 포함할 수 있다. 장치는 또한, 특수 목적 로직 회로부, 예를 들어, FPGA(field programmable gate array) 또는 ASIC(application-specific integrated circuit)일 수 있거나 또는 이들을 더 포함할 수 있다. 장치는 임의로, 하드웨어에 부가적으로, 컴퓨터 프로그램들을 위한 실행 환경을 생성하는 코드, 예를 들어, 프로세서 펌웨어를 구성하는 코드, 프로토콜 스택, 데이터베이스 관리 시스템, 운영 체제, 또는 이들 중 하나 이상의 것의 조합을 포함할 수 있다.
프로그램, 소프트웨어, 소프트웨어 애플리케이션, 앱, 모듈, 소프트웨어 모듈, 스크립트, 또는 코드)로 또한 지칭 또는 설명될 수도 있는 컴퓨터 프로그램은 컴파일링된 또는 인터프리팅된 언어들, 또는 선언적 또는 절차적 언어들을 포함하는 임의의 형태의 프로그래밍 언어로 작성될 수 있고, 그것은 독립형 프로그램으로서 또는 모듈, 컴포넌트, 서브루틴, 또는 컴퓨팅 환경에서의 사용에 적합한 다른 유닛으로서 포함하는 임의의 형태로 배치될 수 있다. 프로그램은 파일 시스템 내의 파일에 대응할 수도 있지만, 그러할 필요가 없을 수도 있다. 프로그램은 다른 프로그램들 또는 데이터, 예를 들어, 마크업 언어 문서에 저장되는 하나 이상의 스크립트들을 보유하는 파일의 일 부분에, 문제의 프로그램에 전용되는 단일 파일에, 또는 다수의 조정된 파일들, 예를 들어, 하나 이상의 모듈들, 서브프로그램들, 또는 코드의 부분들을 저장하는 파일들에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치되거나 또는 다수의 사이트들에 걸쳐 분산되고 데이터 통신 네트워크에 의해 상호연결되는 다수의 컴퓨터들 상에서 또는 하나의 컴퓨터 상에서 실행되도록 배치될 수 있다.
본 명세서에서 사용되는 바와 같이, "엔진" 또는 "소프트웨어 엔진"은 입력과는 상이한 출력을 제공하는 소프트웨어 구현 입/출력 시스템을 지칭한다. 엔진은, 라이브러리, 플랫폼, 소프트웨어 개발 키트(software development kit)("SDK"), 또는 객체와 같은, 기능성의 인코딩된 블록일 수 있다. 각각의 엔진은, 하나 이상의 프로세서들 및 컴퓨터 판독가능 매체들을 포함하는 임의의 적절한 타입의 컴퓨팅 디바이스, 예를 들어, 서버들, 모바일 폰들, 태블릿 컴퓨터들, 노트북 컴퓨터들, 음악 플레이어들, 전자책 판독기들, 랩톱 또는 데스크톱 컴퓨터들, PDA들, 스마트 폰들, 또는 다른 고정 또는 휴대용 디바이스들 상에서 구현될 수 있다. 부가적으로, 엔진들 중 2개 이상은 동일한 컴퓨팅 디바이스 상에서, 또는 상이한 컴퓨팅 디바이스들 상에서 구현될 수도 있다.
본 명세서에서 설명되는 프로세스들 및 로직 흐름들은 입력 데이터에 대해 동작하고 출력을 생성함으로써 기능들을 수행하기 위해 하나 이상의 컴퓨터 프로그램들을 실행하는 하나 이상의 프로그래밍가능 컴퓨터들에 의해 수행될 수 있다. 프로세스들 및 로직 흐름들은 또한, 특수 목적 로직 회로부, 예를 들어, FPGA 또는 ASIC에 의해, 또는 특수 목적 로직 회로부와 하나 이상의 프로그래밍된 컴퓨터들의 조합에 의해 수행될 수 있다.
컴퓨터 프로그램의 실행에 적합한 컴퓨터들은 범용 또는 특수 목적 마이크로프로세서들 또는 이들 양측 모두, 또는 임의의 다른 종류의 중앙 프로세싱 유닛에 기초할 수 있다. 일반적으로, 중앙 프로세싱 유닛은 판독 전용 메모리 또는 랜덤 액세스 메모리 또는 이들 양측 모두로부터 명령어들 및 데이터를 수신할 것이다. 컴퓨터의 필수 요소들은, 명령어들을 수행 또는 실행하기 위한 중앙 프로세싱 유닛, 및 명령어들 및 데이터를 저장하기 위한 하나 이상의 메모리 디바이스들이다. 중앙 프로세싱 유닛 및 메모리는 특수 목적 로직 회로부에 의해 보충되거나 또는 그에 포함될 수 있다. 일반적으로, 컴퓨터는 또한, 데이터를 저장하기 위한 하나 이상의 대용량 저장 디바이스들, 예를 들어, 자기, 광자기 디스크들, 또는 광 디스크들을 포함하거나, 또는 이들로부터 데이터를 수신하거나 또는 이들로 데이터를 전송하기 위해 동작적으로 커플링되거나, 또는 이들 양측 모두로 될 것이다. 그러나, 컴퓨터는 그러한 디바이스들을 가질 필요가 없다. 더욱이, 컴퓨터는 다른 디바이스, 예를 들어, 몇 가지만 예로 들자면, 모바일 전화기, 개인 휴대 정보 단말기(personal digital assistant)(PDA), 모바일 오디오 또는 비디오 플레이어, 게임 콘솔, 글로벌 포지셔닝 시스템(Global Positioning System)(GPS) 수신기, 또는 휴대용 저장 디바이스, 예를 들어, 범용 직렬 버스(universal serial bus)(USB) 플래시 드라이브에 내장될 수 있다.
컴퓨터 프로그램 명령어들 및 데이터를 저장하기에 적합한 컴퓨터 판독가능 매체들은, 예로서 반도체 메모리 디바이스들, 예를 들어, EPROM, EEPROM, 및 플래시 메모리 디바이스들; 자기 디스크들, 예를 들어, 내부 하드 디스크들 또는 착탈가능 디스크들; 광자기 디스크들; 및 CD-ROM 및 DVD-ROM 디스크들을 포함하는 모든 형태들의 비휘발성 메모리, 매체들 및 메모리 디바이스들을 포함한다.
사용자와의 상호작용을 제공하기 위해, 본 명세서에서 설명되는 청구 대상의 실시예들은 정보를 사용자에게 디스플레이하기 위한 디스플레이 디바이스, 예를 들어, CRT(cathode ray tube) 또는 LCD(liquid crystal display) 모니터, 및 사용자가 컴퓨터에 입력을 제공할 수 있게 하는 키보드 및 포인팅 디바이스, 예를 들어, 마우스, 트랙볼, 또는 존재 감응형 디스플레이 또는 다른 표면을 갖는 컴퓨터 상에서 구현될 수 있다. 다른 종류들의 디바이스들이 또한 사용자와의 상호작용을 제공하는 데 사용될 수 있고; 예를 들어, 사용자에게 제공되는 피드백은 임의의 형태의 감각 피드백, 예를 들어, 시각 피드백, 청각 피드백, 또는 촉각 피드백일 수 있고; 사용자로부터의 입력은 음향, 음성, 또는 촉각 입력을 포함하는 임의의 형태로 수신될 수 있다. 부가적으로, 컴퓨터는 사용자에 의해 사용되는 디바이스로 문서들을 전송하고 디바이스로부터 문서들을 수신함으로써; 예를 들어, 웹 브라우저로부터 수신된 요청들에 응답하여 사용자의 디바이스 상의 웹 브라우저에 웹 페이지들을 전송함으로써 사용자와 상호작용할 수 있다. 또한, 컴퓨터는, 텍스트 메시지들 또는 다른 형태들의 메시지를, 메시징 애플리케이션을 실행하고 있는 퍼스널 디바이스, 예를 들어, 스마트폰에 전송하고, 리턴으로 사용자로부터 응답 메시지들을 수신함으로써 사용자와 상호작용할 수 있다.
본 명세서는 많은 특정 구현 세부사항들을 포함하지만, 이들은 임의의 발명의 범주에 대한 또는 청구될 수도 있는 것의 범주에 대한 제한들로서 해석되어서는 안 되고, 오히려 특정 발명들의 특정 실시예들에 특정될 수도 있는 피처들의 설명들로서 해석되어야 한다. 별개의 실시예들의 맥락에서 본 명세서에서 설명되는 특정 피처들은 또한 단일 실시예에서 조합하여 구현될 수 있다. 역으로, 단일 실시예의 맥락에서 설명되는 다양한 피처들은 또한 다수의 실시예들에서 별개로 또는 임의의 적합한 하위 조합으로 구현될 수 있다. 더욱이, 피처들은 특정 조합들로 작용하는 것으로서 상술되고 심지어 초기에는 그와 같이 청구될 수도 있지만, 청구된 조합으로부터의 하나 이상의 피처들은 일부 경우들에서 그 조합으로부터 삭제될 수 있고, 청구된 조합이 하위 조합 또는 하위 조합의 변형으로 유도될 수도 있다.
유사하게, 동작들이 특정 순서로 도면들에 도시되어 있지만, 이것은, 바람직한 결과들을 달성하기 위해, 그러한 동작들이 도시된 특정 순서로 또는 순차적인 순서로 수행되는 것, 또는 예시된 모든 동작들이 수행되는 것을 요구하는 것으로서 이해되어서는 안 된다. 특정 상황들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수도 있다. 더욱이, 상술된 실시예들에서의 다양한 시스템 모듈들 및 컴포넌트들의 분리는 모든 실시예들에서 그러한 분리를 요구하는 것으로서 이해되어서는 안 되고, 설명된 프로그램 컴포넌트들 및 시스템들이 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 또는 다수의 소프트웨어 제품들로 패키징될 수 있다는 것이 이해되어야 한다.
청구 대상의 특정 실시예들이 설명되었다. 다른 실시예들이 다음의 청구범위의 범주 내에 있다. 예를 들어, 청구범위에서 열거된 액션들은 상이한 순서로 수행되고 여전히 바람직한 결과들을 달성할 수 있다. 일 예로서, 첨부 도면들에 도시된 프로세스들은 바람직한 결과들을 달성하기 위해 도시된 특정 순서, 또는 순차적인 순서를 반드시 요구하지는 않는다. 특정 일부 경우들에서, 멀티태스킹 및 병렬 프로세싱이 유리할 수도 있다.

Claims (21)

  1. 방법으로서,
    차량 외부의 환경을 특성화하는 입력을 수신하는 단계 - 상기 입력은, 상기 환경에서의 복수의 위치들 각각에 대해, 상기 차량의 하나 이상의 센서들에 의해 캡처되는 센서 데이터를 포함함 -;
    상기 입력으로부터 그리고 상기 환경에서의 복수의 위치들 각각에 대해, 객체의 중심이 상기 위치에 위치될 가능성을 표현하는 각각의 제1 객체 스코어를 결정하는 단계;
    상기 제1 객체 스코어들을 사용하여, 각각의 객체들이 센터링될(centered) 가능성이 있는 상기 환경에서의 위치들로서 상기 복수의 위치들로부터 하나 이상의 위치들을 선택하는 단계;
    상기 선택된 위치들 각각에 대해, 상기 선택된 위치에서의 환경을 특성화하는 피처(feature)들을 획득하는 단계; 및
    상기 선택된 위치들 각각에 대해 그리고 상기 선택된 위치의 피처들로부터, 상기 선택된 위치에 센터링될 가능성이 있는 각각의 객체의 객체 특성들을 결정하는 단계
    를 포함하는, 방법.
  2. 제1항에 있어서,
    상기 차량을 제어함에 있어서의 사용을 위해 상기 차량의 제어 시스템에 대한 입력으로서 상기 객체 특성들을 식별하는 데이터를 제공하는 단계를 더 포함하는, 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 환경에서의 복수의 위치들 각각에 대해 상기 제1 객체 스코어를 결정하는 단계는:
    제1 뉴럴 네트워크를 사용하여 상기 입력을 프로세싱하는 단계를 포함하고,
    상기 제1 뉴럴 네트워크는 상기 입력을 수신하고 상기 입력을 프로세싱하여, 상기 환경에서의 복수의 위치들에 대한 각각의 제1 객체 스코어들을 포함하는 출력 맵을 정의하는 제1 네트워크 출력을 생성하도록 구성되는, 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 환경에서의 복수의 위치들 각각에 대해 상기 제1 객체 스코어를 결정하는 단계는:
    제1 뉴럴 네트워크를 사용하여 상기 입력을 프로세싱하는 단계를 포함하고,
    상기 제1 뉴럴 네트워크는 상기 입력을 수신하고 상기 입력을 프로세싱하여, 다수의 출력 맵들을 정의하는 제1 네트워크 출력을 생성하도록 구성되고, 각각의 출력 맵은, 특정 분류의 객체들의 중심들이 상기 환경에서의 복수의 위치들에 센터링될 가능성들을 표현하는 제1 객체 스코어들을 포함하는, 방법.
  5. 제3항에 있어서,
    상기 출력 맵은 상기 제1 뉴럴 네트워크를 통한 단일 포워드 패스(single forward pass)에서 생성되는, 방법.
  6. 제3항 또는 제5항에 있어서,
    상기 입력은, 2차원, 3차원, 또는 보다 고차원 그리드에서의 각각의 공간 위치에 대응하는 각각의 센서 데이터를 포함하고, 각각의 공간 위치는 상기 환경에서의 복수의 위치들의 각각의 하나의 위치에 대응하고, 상기 네트워크 출력은 상기 그리드에서의 각각의 공간 위치에 대한 각각의 제1 객체 스코어를 포함하는, 방법.
  7. 제6항에 있어서,
    상기 그리드는 2차원이고, 상기 제1 객체 스코어들을 사용하여 상기 하나 이상의 위치들을 선택하는 단계는:
    상기 2차원 그리드의 특정 N×M 영역에서의 공간 위치들로부터, 가장 높은 제1 객체 스코어를 갖는 공간 위치를 선택하는 단계; 및
    상기 2차원 그리드의 특정 N×M 영역에서 다른 공간 위치들 중 임의의 것을 선택하는 것을 억제하는 단계
    를 포함하는, 방법.
  8. 제1항 내지 제7항 중 어느 한 항에 있어서,
    상기 선택된 위치들 각각에 대해 그리고 상기 선택된 위치의 피처들로부터, 상기 선택된 위치에 센터링될 가능성이 있는 객체의 객체 특성들을 결정하는 단계는:
    제2 뉴럴 네트워크를 사용하여 상기 선택된 위치의 피처들을 포함하는 제2 네트워크 입력을 프로세싱하는 단계를 포함하고,
    상기 제2 뉴럴 네트워크는 상기 제2 네트워크 입력을 프로세싱하여, 상기 위치에 센터링될 가능성이 있는 객체의 객체 특성들을 정의하는 제2 네트워크 출력을 생성하도록 구성되는, 방법.
  9. 제8항에 있어서,
    상기 제2 뉴럴 네트워크는 상기 선택된 위치들 중 2개 이상에 대한 프로세싱을 병렬로 수행하도록 구성되는, 방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 객체 특성들은, 상기 객체가 속한 객체 클래스를 포함하는, 방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 객체 특성들은, 상기 객체의 경계들을 식별하는 2차원 또는 3차원 바운딩 박스(bounding box)를 포함하는, 방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 객체 특성들은 상기 차량으로부터의 상기 객체의 거리를 포함하는, 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서,
    상기 객체 특성들은 상기 객체에 대한 마스크를 포함하고, 상기 마스크는 상기 객체를 정의하는 상기 입력의 부분들을 마킹하는, 방법.
  14. 하나 이상의 컴퓨터들, 및 상기 하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금 동작들을 수행하게 하도록 동작가능한 명령어들을 저장하는 하나 이상의 저장 디바이스들을 포함하는 시스템으로서,
    상기 동작들은:
    차량 외부의 환경을 특성화하는 입력을 수신하는 것 - 상기 입력은, 상기 환경에서의 복수의 위치들 각각에 대해, 하나 이상의 센서들에 의해 캡처되는 센서 데이터를 포함함 -;
    상기 입력으로부터 그리고 상기 환경에서의 복수의 위치들 각각에 대해, 객체의 중심이 상기 위치에 위치될 가능성을 표현하는 각각의 제1 객체 스코어를 결정하는 것;
    상기 제1 객체 스코어들을 사용하여, 각각의 객체들이 센터링될 가능성이 있는 상기 환경에서의 위치들로서 상기 복수의 위치들로부터 하나 이상의 위치들을 선택하는 것;
    상기 선택된 위치들 각각에 대해, 상기 선택된 위치에서의 환경을 특성화하는 피처들을 획득하는 것; 및
    상기 선택된 위치들 각각에 대해 그리고 상기 선택된 위치의 피처들로부터, 상기 선택된 위치에 센터링될 가능성이 있는 각각의 객체의 객체 특성들을 결정하는 것
    을 포함하는, 시스템.
  15. 제14항에 있어서,
    상기 환경에서의 복수의 위치들 각각에 대해 상기 제1 객체 스코어를 결정하는 것은:
    제1 뉴럴 네트워크를 사용하여 상기 입력을 프로세싱하는 것을 포함하고,
    상기 제1 뉴럴 네트워크는 상기 입력을 수신하고 상기 입력을 프로세싱하여, 상기 환경에서의 복수의 위치들에 대한 각각의 제1 객체 스코어들을 포함하는 출력 맵을 정의하는 제1 네트워크 출력을 생성하도록 구성되는, 시스템.
  16. 제14항에 있어서,
    상기 환경에서의 복수의 위치들 각각에 대해 상기 제1 객체 스코어를 결정하는 것은:
    제1 뉴럴 네트워크를 사용하여 상기 입력을 프로세싱하는 것을 포함하고,
    상기 제1 뉴럴 네트워크는 상기 입력을 수신하고 상기 입력을 프로세싱하여, 다수의 출력 맵들을 정의하는 제1 네트워크 출력을 생성하도록 구성되고, 각각의 출력 맵은, 특정 분류의 객체들의 중심들이 상기 환경에서의 복수의 위치들에 센터링될 가능성들을 표현하는 제1 객체 스코어들을 포함하는, 시스템.
  17. 제15항에 있어서,
    상기 출력 맵은 상기 제1 뉴럴 네트워크를 통한 단일 포워드 패스에서 생성되는, 시스템.
  18. 제15항 또는 제17항에 있어서,
    상기 입력은, 2차원, 3차원, 또는 고차원 그리드에서의 각각의 공간 위치에 대응하는 각각의 센서 데이터를 포함하고, 각각의 공간 위치는 상기 환경에서의 복수의 위치들의 각각의 하나의 위치에 대응하고, 상기 네트워크 출력은 상기 그리드에서의 각각의 공간 위치에 대한 각각의 제1 객체 스코어를 포함하는, 시스템.
  19. 제18항에 있어서,
    상기 그리드는 2차원이고, 상기 제1 객체 스코어들을 사용하여 상기 하나 이상의 위치들을 선택하는 것은:
    상기 2차원 그리드의 특정 N×M 영역에서의 공간 위치들로부터, 가장 높은 제1 객체 스코어를 갖는 공간 위치를 선택하는 것; 및
    상기 2차원 그리드의 특정 N×M 영역에서 다른 공간 위치들 중 임의의 것을 선택하는 것을 억제하는 것
    을 포함하는, 시스템.
  20. 제14항 내지 제19항 중 어느 한 항에 있어서,
    상기 선택된 위치들 각각에 대해 그리고 상기 선택된 위치의 피처들로부터, 상기 선택된 위치에 센터링될 가능성이 있는 객체의 객체 특성들을 결정하는 것은:
    제2 뉴럴 네트워크를 사용하여 상기 선택된 위치의 피처들을 포함하는 제2 네트워크 입력을 프로세싱하는 것을 포함하고,
    상기 제2 뉴럴 네트워크는 상기 제2 네트워크 입력을 프로세싱하여, 상기 위치에 센터링될 가능성이 있는 객체의 객체 특성들을 정의하는 제2 네트워크 출력을 생성하도록 구성되는, 시스템.
  21. 하나 이상의 컴퓨터 판독가능 저장 매체들로서,
    하나 이상의 컴퓨터들에 의해 실행될 때, 상기 하나 이상의 컴퓨터들로 하여금 제1항 내지 제14항 중 어느 한 항의 방법의 동작들을 수행하게 하는 명령어들을 저장하는, 하나 이상의 컴퓨터 판독가능 저장 매체들.
KR1020207029163A 2018-03-12 2019-03-12 객체 검출 및 특성화를 위한 뉴럴 네트워크들 KR20200125731A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/919,045 US10628686B2 (en) 2018-03-12 2018-03-12 Neural networks for object detection and characterization
US15/919,045 2018-03-12
PCT/US2019/021828 WO2019178082A1 (en) 2018-03-12 2019-03-12 Neural networks for object detection and characterization

Publications (1)

Publication Number Publication Date
KR20200125731A true KR20200125731A (ko) 2020-11-04

Family

ID=65952084

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020207029163A KR20200125731A (ko) 2018-03-12 2019-03-12 객체 검출 및 특성화를 위한 뉴럴 네트워크들

Country Status (6)

Country Link
US (3) US10628686B2 (ko)
EP (1) EP3743854A1 (ko)
JP (1) JP7254823B2 (ko)
KR (1) KR20200125731A (ko)
CN (1) CN111886603B (ko)
WO (1) WO2019178082A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11287820B1 (en) * 2012-02-06 2022-03-29 Waymo Llc System and method for predicting behaviors of detected objects through environment representation

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018176000A1 (en) 2017-03-23 2018-09-27 DeepScale, Inc. Data synthesis for autonomous control systems
US11893393B2 (en) 2017-07-24 2024-02-06 Tesla, Inc. Computational array microprocessor system with hardware arbiter managing memory requests
US11157441B2 (en) 2017-07-24 2021-10-26 Tesla, Inc. Computational array microprocessor system using non-consecutive data formatting
US11409692B2 (en) 2017-07-24 2022-08-09 Tesla, Inc. Vector computational unit
US10671349B2 (en) 2017-07-24 2020-06-02 Tesla, Inc. Accelerated mathematical engine
US11561791B2 (en) 2018-02-01 2023-01-24 Tesla, Inc. Vector computational unit receiving data elements in parallel from a last row of a computational array
US11215999B2 (en) 2018-06-20 2022-01-04 Tesla, Inc. Data pipeline and deep learning system for autonomous driving
US10706499B2 (en) * 2018-06-21 2020-07-07 Canon Kabushiki Kaisha Image processing using an artificial neural network
US11361457B2 (en) 2018-07-20 2022-06-14 Tesla, Inc. Annotation cross-labeling for autonomous control systems
US11636333B2 (en) 2018-07-26 2023-04-25 Tesla, Inc. Optimizing neural network structures for embedded systems
US11562231B2 (en) 2018-09-03 2023-01-24 Tesla, Inc. Neural networks for embedded devices
US11455807B2 (en) * 2018-09-20 2022-09-27 Nvidia Corporation Training neural networks for vehicle re-identification
KR102545105B1 (ko) * 2018-10-10 2023-06-19 현대자동차주식회사 차량용 허위 타겟 판별 장치 및 그의 허위 타겟 판별 방법과 그를 포함하는 차량
CN113039556B (zh) 2018-10-11 2022-10-21 特斯拉公司 用于使用增广数据训练机器模型的系统和方法
US11196678B2 (en) 2018-10-25 2021-12-07 Tesla, Inc. QOS manager for system on a chip communications
US11927668B2 (en) * 2018-11-30 2024-03-12 Qualcomm Incorporated Radar deep learning
US11816585B2 (en) 2018-12-03 2023-11-14 Tesla, Inc. Machine learning models operating at different frequencies for autonomous vehicles
US11537811B2 (en) 2018-12-04 2022-12-27 Tesla, Inc. Enhanced object detection for autonomous vehicles based on field view
US11610117B2 (en) 2018-12-27 2023-03-21 Tesla, Inc. System and method for adapting a neural network model on a hardware platform
US10796571B2 (en) * 2019-01-31 2020-10-06 StradVision, Inc. Method and device for detecting emergency vehicles in real time and planning driving routes to cope with situations to be expected to be occurred by the emergency vehicles
US10762393B2 (en) * 2019-01-31 2020-09-01 StradVision, Inc. Learning method and learning device for learning automatic labeling device capable of auto-labeling image of base vehicle using images of nearby vehicles, and testing method and testing device using the same
US10997461B2 (en) 2019-02-01 2021-05-04 Tesla, Inc. Generating ground truth for machine learning from time series elements
US11567514B2 (en) 2019-02-11 2023-01-31 Tesla, Inc. Autonomous and user controlled vehicle summon to a target
US10956755B2 (en) 2019-02-19 2021-03-23 Tesla, Inc. Estimating object properties using visual image data
US11003945B2 (en) * 2019-05-22 2021-05-11 Zoox, Inc. Localization using semantically segmented images
US11295161B2 (en) 2019-05-22 2022-04-05 Zoox, Inc. Localization using semantically segmented images
DE102019215255A1 (de) * 2019-10-02 2021-04-08 Robert Bosch Gmbh Vorrichtung und Verfahren zum Verarbeiten von Daten eines neuronalen Netzes
US11120280B2 (en) 2019-11-15 2021-09-14 Argo AI, LLC Geometry-aware instance segmentation in stereo image capture processes
KR20210061839A (ko) * 2019-11-20 2021-05-28 삼성전자주식회사 전자 장치 및 그 제어 방법
US11587330B2 (en) * 2019-12-31 2023-02-21 Robert Bosch Gmbh Visual analytics platform for updating object detection models in autonomous driving applications
DE102020203836A1 (de) * 2020-03-25 2021-09-30 Robert Bosch Gesellschaft mit beschränkter Haftung Verfahren zur Bestimmung eines Wertes einer Reglergröße
US11390301B2 (en) * 2020-06-10 2022-07-19 Nvidia Corp. Tensor-based driving scenario characterization
US11550325B2 (en) 2020-06-10 2023-01-10 Nvidia Corp. Adversarial scenarios for safety testing of autonomous vehicles
KR20230051664A (ko) * 2020-08-19 2023-04-18 메타 플랫폼스, 인크. 채널 제약 하드웨어 가속기에 의해 구현되는 신경망을 사용하여 이미지 향상을 수행하기 위한 시스템 및 방법
EP4295282A1 (en) * 2021-02-17 2023-12-27 Telefonaktiebolaget LM Ericsson (publ) Contextual learning at the edge

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5766620B2 (ja) 2012-01-10 2015-08-19 日本電信電話株式会社 物体領域検出装置、方法、及びプログラム
US9202144B2 (en) 2013-10-30 2015-12-01 Nec Laboratories America, Inc. Regionlets with shift invariant neural patterns for object detection
US9373057B1 (en) * 2013-11-01 2016-06-21 Google Inc. Training a neural network to detect objects in images
US9129190B1 (en) * 2013-12-04 2015-09-08 Google Inc. Identifying objects in images
JP5928748B2 (ja) * 2014-07-31 2016-06-01 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 同一種類の複数の認識対象物体が検索対象画像中に存在する場合に、それぞれの認識対象物体の位置および向きを精度良く求める手法
EP3204871A4 (en) 2014-10-09 2017-08-16 Microsoft Technology Licensing, LLC Generic object detection in images
US9665802B2 (en) 2014-11-13 2017-05-30 Nec Corporation Object-centric fine-grained image classification
US9418319B2 (en) 2014-11-21 2016-08-16 Adobe Systems Incorporated Object detection using cascaded convolutional neural networks
EP3079106B1 (en) * 2015-04-06 2022-06-08 DeepMind Technologies Limited Selecting reinforcement learning actions using goals and observations
KR102366402B1 (ko) * 2015-05-21 2022-02-22 엘지전자 주식회사 운전자 보조 장치 및 그 제어방법
US9881234B2 (en) 2015-11-25 2018-01-30 Baidu Usa Llc. Systems and methods for end-to-end object detection
US10078794B2 (en) * 2015-11-30 2018-09-18 Pilot Ai Labs, Inc. System and method for improved general object detection using neural networks
US9424494B1 (en) 2016-01-28 2016-08-23 International Business Machines Corporation Pure convolutional neural network localization
US9830529B2 (en) 2016-04-26 2017-11-28 Xerox Corporation End-to-end saliency mapping via probability distribution prediction
US9928432B1 (en) * 2016-09-14 2018-03-27 Nauto Global Limited Systems and methods for near-crash determination
CN106682697B (zh) * 2016-12-29 2020-04-14 华中科技大学 一种基于卷积神经网络的端到端物体检测方法
CN107220603A (zh) * 2017-05-18 2017-09-29 惠龙易通国际物流股份有限公司 基于深度学习的车辆检测方法及装置
US10310087B2 (en) * 2017-05-31 2019-06-04 Uber Technologies, Inc. Range-view LIDAR-based object detection
US11062461B2 (en) * 2017-11-16 2021-07-13 Zoox, Inc. Pose determination from contact points
US10955851B2 (en) * 2018-02-14 2021-03-23 Zoox, Inc. Detecting blocking objects

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11287820B1 (en) * 2012-02-06 2022-03-29 Waymo Llc System and method for predicting behaviors of detected objects through environment representation

Also Published As

Publication number Publication date
US20200242375A1 (en) 2020-07-30
JP7254823B2 (ja) 2023-04-10
JP2021516806A (ja) 2021-07-08
CN111886603B (zh) 2024-03-15
WO2019178082A1 (en) 2019-09-19
US20190279005A1 (en) 2019-09-12
US11216674B2 (en) 2022-01-04
US11928866B2 (en) 2024-03-12
US10628686B2 (en) 2020-04-21
US20220198807A1 (en) 2022-06-23
CN111886603A (zh) 2020-11-03
EP3743854A1 (en) 2020-12-02

Similar Documents

Publication Publication Date Title
US11928866B2 (en) Neural networks for object detection and characterization
US11783568B2 (en) Object classification using extra-regional context
CN113366495B (zh) 搜索自主车辆传感器数据存储库
CN113366496B (zh) 用于粗略和精细对象分类的神经网络
US11531894B1 (en) Neural networks for object detection
US11783180B1 (en) Object detection neural network
US10366502B1 (en) Vehicle heading prediction neural network
US11544869B2 (en) Interacted object detection neural network
CN113366507B (zh) 训练分类器以检测打开的车门
US11727690B2 (en) Behavior prediction of surrounding agents
EP4060626A1 (en) Agent trajectory prediction using context-sensitive fusion
US20220164350A1 (en) Searching an autonomous vehicle sensor data repository based on context embedding
US11950166B2 (en) Predicting occupancy probabilities of surrounding agents

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application