[go: up one dir, main page]

RU2800694C2 - Method for predicting the trajectory of an agent near an unmanned vehicle based on the ranking - Google Patents

Method for predicting the trajectory of an agent near an unmanned vehicle based on the ranking Download PDF

Info

Publication number
RU2800694C2
RU2800694C2 RU2021115369A RU2021115369A RU2800694C2 RU 2800694 C2 RU2800694 C2 RU 2800694C2 RU 2021115369 A RU2021115369 A RU 2021115369A RU 2021115369 A RU2021115369 A RU 2021115369A RU 2800694 C2 RU2800694 C2 RU 2800694C2
Authority
RU
Russia
Prior art keywords
agent
trajectory
library
unmanned vehicle
feature vector
Prior art date
Application number
RU2021115369A
Other languages
Russian (ru)
Other versions
RU2021115369A (en
Inventor
Борис Константинович Янгель
Юрий Александрович Биктаиров
Original Assignee
Общество с ограниченной ответственностью «Яндекс Беспилотные Технологии»
Filing date
Publication date
Application filed by Общество с ограниченной ответственностью «Яндекс Беспилотные Технологии» filed Critical Общество с ограниченной ответственностью «Яндекс Беспилотные Технологии»
Priority to EP22154048.7A priority Critical patent/EP4095812A1/en
Priority to US17/667,854 priority patent/US20220388532A1/en
Publication of RU2021115369A publication Critical patent/RU2021115369A/en
Application granted granted Critical
Publication of RU2800694C2 publication Critical patent/RU2800694C2/en

Links

Abstract

FIELD: unmanned vehicles.
SUBSTANCE: invention relates to computer-implemented methods and systems for controlling an unmanned vehicle, in particular to methods and systems for predicting the trajectory of an agent, such as a pedestrian or a human-controlled vehicle, in the vicinity of an unmanned vehicle. The method includes predicting the trajectory of the agent near the unmanned vehicle. This is done by: receiving sensor data indicative of the current situation in the vicinity of the unmanned vehicle; generating a feature vector of the current situation based at least in part on the sensor data; searching the pre-built library feature vector bank to identify the resulting feature vector from the pre-built bank that is most relevant to the current situation feature vector, where each library feature vector in the pre-built bank is associated with an observed trajectory; and predicting the agent's trajectory based on the resulting feature vector. The method also includes planning a vehicle action based on the agent's predicted trajectory and controlling the vehicle in accordance with the planned action.
EFFECT: increases road safety during operation.
20 cl, 6 dwg

Description

Область техники, к которой относится изобретениеThe field of technology to which the invention relates

[0001] Настоящая технология относится к реализуемым компьютером способам и системам для управления беспилотным транспортным средством, и более конкретно к способам и системам для прогнозирования траектории агента, такого как пешеход или управляемое человеком транспортное средство, вблизи беспилотного транспортного средства.[0001] The present technology relates to computer-implemented methods and systems for controlling an unmanned vehicle, and more particularly to methods and systems for predicting the trajectory of an agent, such as a pedestrian or a human-controlled vehicle, in the vicinity of an unmanned vehicle.

Уровень техникиState of the art

[0002] Беспилотные транспортные средства представляют собой транспортные средства, которые могут автономно двигаться по частным и/или общественным местам. Используя систему датчиков, которые обнаруживают местоположение и/или окружение транспортного средства, логика внутри транспортного средства или связанная с ним управляет скоростью, силовой установкой, торможением и рулевым управлением транспортного средства на основании обнаруживаемого датчиком местоположения и окружения беспилотного транспортного средства.[0002] Unmanned vehicles are vehicles that can autonomously move around private and/or public areas. Using a system of sensors that detect the location and/or surroundings of the vehicle, logic within or associated with the vehicle controls the speed, propulsion, braking, and steering of the vehicle based on the location and surroundings of the unmanned vehicle detected by the sensor.

[0003] В беспилотном транспортном средстве могут использоваться различные системы датчиков, такие как, не ограничиваясь, системы камер, радарные системы и системы LIDAR. Различные системы датчиков могут использоваться для сбора различной информации и/или информации в различных форматах о местоположении и окружении беспилотного транспортного средства. Например, системы камер могут использоваться для сбора данных изображения об окружении беспилотного транспортного средства. В другом примере системы LIDAR могут использоваться для получения данных облака точек для построения трехмерных картографических представлений окружения и других потенциальных объектов, расположенных вблизи беспилотного транспортного средства.[0003] A variety of sensor systems may be used in an unmanned vehicle, such as, but not limited to, camera systems, radar systems, and LIDAR systems. Different sensor systems may be used to collect different information and/or information in different formats about the location and surroundings of the unmanned vehicle. For example, camera systems can be used to collect image data about the surroundings of an unmanned vehicle. In another example, LIDAR systems can be used to acquire point cloud data to build 3D mapping representations of the environment and other potential objects located in the vicinity of an unmanned vehicle.

[0004] Одна из проблем, связанных с управлением беспилотным транспортным средством, состоит в правильном прогнозирование движения агентов, таких как пешеходы или транспортные средства, управляемые человеком. Общая безопасность движения и комфорт пассажира могут непосредственно зависеть от способности к точному выполнению такого прогнозирования. Если такое прогнозирование является неверным, возможно, что это может привести к резким маневрам или даже к столкновению.[0004] One of the problems associated with driving an unmanned vehicle is correctly predicting the movement of agents such as pedestrians or human-driven vehicles. Overall traffic safety and passenger comfort can directly depend on the ability to accurately make such predictions. If such a prediction is incorrect, it is possible that this could lead to abrupt maneuvers or even a collision.

[0005] Проблема прогнозирования движения также остается одной из самых сложных проблем в разработках, связанных с автономным управлением, в основном из-за высокой вариативности возможного будущего поведения агента с учетом текущей ситуации на момент прогнозирования. Двумя явлениями, ответственными за вариативность, являются мультимодальность, вызванная неопределенностью намерения агента (например, повернуть направо или двигаться вперед) и неопределенность в реализации определенного намерения (например, в какую полосу движения следует повернуть).[0005] The problem of motion prediction also remains one of the most difficult problems in developments related to autonomous control, mainly due to the high variability in the possible future behavior of an agent, given the current situation at the time of prediction. The two phenomena responsible for variability are multimodality, caused by the ambiguity of the agent's intention (for example, turn right or move forward) and uncertainty in the implementation of a certain intention(For example, which lane to turn into.

[0006] Чтобы быть полезной в процессе автономного управления в реальном времени, система прогнозирования движения должна обеспечивать эффективные способы описания и количественной оценки этой неопределенности, такие как вычисление наиболее вероятных траекторий для агента и их вероятностей или оценка относительной вероятности для определенной траектории. Она также не должна уделять особого внимания физически невозможным траекториям, поскольку они могут в некотором смысле запутать систему, обрабатывающую прогнозы.[0006] To be useful in a real-time autonomous driving process, a motion prediction system must provide efficient ways to describe and quantify this uncertainty, such as calculating the most likely trajectories for an agent and their probabilities, or estimating the relative probability for a particular trajectory. It also should not pay much attention to physically impossible trajectories, since they can in some way confuse the system that processes the forecasts.

Раскрытие изобретенияDisclosure of invention

[0007] Реализации раскрытой технологии прогнозируют движение агентов, таких как пешеходы и транспортные средства, управляемые человеком, вблизи беспилотного транспортного средства. Такие прогнозы следует делать с малой задержкой и избегать прогнозирования неправдоподобных траекторий агентов. В соответствии с различными реализациями раскрытой технологии это достигается за счет использования заранее созданного банка траекторий, содержащего векторы признаков, которые связаны с ранее наблюдавшимися траекториями агентов. Беспилотное транспортное средство собирает данные датчиков, указывающие на текущую ситуацию вблизи беспилотного транспортного средства. Эти данные датчиков используются для формирования данных ситуации, которые отображаются на вектор признаков, указывающий на текущую ситуацию. Затем в заранее созданном банке траекторий выполняется поиск векторов признаков, которые являются релевантными (например, будучи пространственно близкими) к вектору признаков, представляющему текущую ситуацию, и траектория, связанная с соответствующим вектором признаков из банка траекторий, используется для прогнозирования траектории агента.[0007] Implementations of the disclosed technology predict the movement of agents, such as pedestrians and human-driven vehicles, in the vicinity of an unmanned vehicle. Such forecasts should be made with a low delay and avoid predicting implausible agent trajectories. In accordance with various implementations of the disclosed technology, this is achieved by using a pre-created trajectory bank containing feature vectors that are associated with previously observed agent trajectories. The unmanned vehicle collects sensor data indicative of the current situation in the vicinity of the unmanned vehicle. This sensor data is used to generate situation data that is mapped to a feature vector indicative of the current situation. Then, the pre-built trajectory bank is searched for feature vectors that are relevant (eg, being spatially close) to the feature vector representing the current situation, and the trajectory associated with the corresponding feature vector from the trajectory bank is used to predict the agent's trajectory.

[0008] Поскольку прогнозируемая траектория выбирается из заранее созданного банка траекторий из фактических наблюдаемых траекторий агентов, прогнозируемая траектория будет физически правдоподобной. Кроме того, за счет эффективного преобразования задачи прогнозирования траектории агента в своего рода задачу поиска вычислительная сложность прогнозирования траектории агента значительно снижается по сравнению с попыткой формирования прогноза с нуля. Это может привести к уменьшению задержки при прогнозировании траектории агентов. Соответственно, реализации раскрытой технологии усовершенствуют работу беспилотных транспортных средств.[0008] Since the predicted trajectory is selected from a pre-created trajectory bank of the actual observed trajectories of the agents, the predicted trajectory will be physically plausible. In addition, by effectively transforming the agent trajectory prediction problem into a kind of search problem, the computational complexity of agent trajectory prediction is significantly reduced compared to trying to generate a prediction from scratch. This can lead to a decrease in the delay in predicting the trajectory of agents. Accordingly, implementations of the disclosed technology will improve the operation of unmanned vehicles.

[0009] В соответствии с одним аспектом настоящего изобретения технология реализована в способе управления беспилотным транспортным средством. Способ включает в себя прогнозирование посредством вычислительного устройства, связанного с беспилотным транспортным средством, траектории агента вблизи беспилотного транспортного средства. Это выполняется путем: приема данных датчиков, указывающих на текущую ситуацию вблизи беспилотного транспортного средства, от датчика, связанного с беспилотным транспортным средством; формирования вектора признаков текущей ситуации по меньшей мере частично на основании данных датчиков; поиска в заранее созданном банке библиотечных векторов признаков для идентификации результирующего вектора признаков из заранее созданного банка, который наиболее релевантен вектору признаков текущей ситуации, при этом каждый библиотечный вектор признаков в заранее созданном банке связан с наблюдаемой траекторией; и прогнозирования траектории агента по меньшей мере частично на основании результирующего вектора признаков. Способ также включает в себя планирование посредством вычислительного устройства действия беспилотного транспортного средства по меньшей мере частично на основании прогнозируемой траектории агента, и управление беспилотным транспортным средством в соответствии с запланированным действием.[0009] In accordance with one aspect of the present invention, the technology is implemented in a method for controlling an unmanned vehicle. The method includes predicting, by means of a computing device associated with the unmanned vehicle, the trajectory of an agent in the vicinity of the unmanned vehicle. This is done by: receiving sensor data indicative of the current situation in the vicinity of the unmanned vehicle from a sensor associated with the unmanned vehicle; generating a feature vector of the current situation based at least in part on the sensor data; searching the pre-built library feature vector bank to identify the resulting feature vector from the pre-built bank that is most relevant to the current situation feature vector, each library feature vector in the pre-built bank being associated with an observed trajectory; and predicting the agent's trajectory at least in part based on the resulting feature vector. The method also includes planning, by means of the computing device, the action of the unmanned vehicle based at least in part on the predicted trajectory of the agent, and controlling the unmanned vehicle in accordance with the planned action.

[00010] В некоторых реализациях формирование вектора признаков текущей ситуации включает в себя использование заранее обученной нейронной сети для формирования вектора признаков текущей ситуации. В некоторых из этих реализаций использование заранее обученной нейронной сети включает в себя обеспечение карты признаков, представляющей ракурсы вида с высоты птичьего полета текущей ситуации вблизи беспилотного транспортного средства, по меньшей мере частично на основании данных датчиков в качестве входных данных для заранее обученной нейронной сети. В некоторых реализациях карта признаков центрирована на агенте и имеет ориентацию, основанную на ориентации агента.[00010] In some implementations, generating the current situation feature vector includes using a pre-trained neural network to generate the current situation feature vector. In some of these implementations, using a pretrained neural network includes providing a feature map representing bird's eye view angles of the current situation in the vicinity of the unmanned vehicle based at least in part on sensor data as input to the pretrained neural network. In some implementations, the feature map is agent-centered and has an orientation based on the agent's orientation.

[00011] В некоторых реализациях поиск в заранее созданном банке библиотечных векторов признаков включает в себя выполнение приблизительного поиска ближайшего соседа. В некоторых из этих реализаций заранее созданный банк библиотечных векторов признаков включает в себя указатель, основанный на иерархическом графе тесного мира, доступном для передвижения, а выполнение приблизительного поиска ближайшего соседа включает в себя обход иерархического графа тесного мира, доступного для передвижения.[00011] In some implementations, searching a pre-created library feature vector bank includes performing an approximate nearest neighbor search. In some of these implementations, the library's pre-built feature vector bank includes a pointer based on a traversable hierarchical cramped world graph, and performing an approximate nearest neighbor search involves traversing the traversable hierarchical cramped world graph.

[00012] В некоторых реализациях поиск в заранее созданном банке библиотечных векторов признаков включает в себя формирование ранжированного списка векторов признаков из заранее созданного банка. В некоторых из этих реализаций формирование ранжированного списка векторов признаков включает в себя ранжирование библиотечных векторов признаков по меньшей мере частично на основании меры релевантности библиотечных векторов признаков к текущему вектору признаков ситуации.[00012] In some implementations, searching a pre-created library feature vector bank includes generating a ranked list of feature vectors from the pre-created bank. In some of these implementations, generating a ranked list of feature vectors includes ranking the library feature vectors at least in part based on a measure of the relevance of the library feature vectors to the current situation feature vector.

[00013] В некоторых реализациях результирующий вектор признаков включает в себя библиотечный вектор признаков, наиболее близкий к текущему вектору признаков ситуации.[00013] In some implementations, the resulting feature vector includes the library feature vector closest to the current situation feature vector.

[00014] В соответствии с другими аспектами настоящего раскрытия предложен способ формирования банка библиотечных векторов признаков для использования при прогнозировании траектории агента вблизи используемого беспилотного транспортного средства. Способ включает в себя: прием на сервере множества выборок наблюдений, причем каждая выборка наблюдений получена посредством датчика на беспилотном транспортном средстве, собирающем данные, причем каждая выборка наблюдений включает в себя данные о траектории наблюдаемого агента вблизи беспилотного транспортного средства, собирающего данные, за заданный период времени; осуществление выборки на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов; формирование на сервере библиотечного вектора признаков для каждой траектории в библиотеке траекторий агентов; сбор на сервере банка библиотечных векторов признаков по меньшей мере частично на основании библиотечных векторов признаков; и отправку банка библиотечных векторов признаков в вычислительное устройство, связанное с используемым беспилотным транспортным средством.[00014] In accordance with other aspects of the present disclosure, a method is provided for generating a bank of library feature vectors for use in predicting the trajectory of an agent in the vicinity of an unmanned vehicle being used. The method includes: receiving at the server a plurality of observation samples, each observation sample obtained by a sensor on the data-acquisition unmanned vehicle, each observation sample including data on the trajectory of the observed agent near the data-acquisition unmanned vehicle for a given period time; fetching at the server at least a first portion of the plurality of observation samples to obtain a library of agent trajectories; formation on the server of a library feature vector for each trajectory in the library of agent trajectories; collecting, at the server of the library feature vectors, at least in part based on the library feature vectors; and sending the library feature vector bank to a computing device associated with the unmanned vehicle being used.

[00015] В некоторых реализациях этого аспекта выборка на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов включает в себя кластеризацию траекторий агентов по меньшей мере из первой части множества выборок наблюдений в множество кластеров, причем каждый кластер во множестве кластеров содержит аналогичные траектории агентов. Случайным образом выбирается кластер из множества кластеров, и случайным образом выбирается траектория агента из выбранного кластера.[00015] In some implementations of this aspect, sampling at the server at least a first portion of a plurality of observation samples to obtain a library of agent trajectories includes clustering agent trajectories from at least a first portion of a plurality of observation samples into a plurality of clusters, where each cluster in the plurality of clusters comprises similar agent trajectories. A cluster is randomly selected from a set of clusters, and the agent's trajectory is randomly selected from the selected cluster.

[00016] В некоторых реализациях сбор на сервере банка библиотечных векторов признаков дополнительно включает в себя формирование указателя библиотечных векторов признаков в банке библиотечных векторов признаков. В некоторых из этих реализаций формирование указателя библиотечных векторов признаков включает в себя формирование графа близости библиотечных векторов признаков. В некоторых реализациях граф близости включает в себя иерархический граф тесного мира, доступный для передвижения.[00016] In some implementations, collecting the library feature vector bank server further includes generating an index of the library feature vectors in the library feature vector bank. In some of these implementations, generating the library feature vector index includes generating a proximity graph of the library feature vectors. In some implementations, the proximity graph includes a hierarchical roamable close world graph.

[00017] В некоторых реализациях формирование на сервере библиотечного вектора признаков для каждой траектории в библиотеке траекторий агентов включает в себя использование нейронной сети для формирования библиотечного вектора признаков из каждой траектории в библиотеке траекторий агентов.[00017] In some implementations, server generation of a library feature vector for each trajectory in the agent trajectory library includes using a neural network to generate a library feature vector from each trajectory in the agent trajectory library.

[00018] В некоторых реализациях каждая выборка наблюдения дополнительно включает данные о ситуации, окружающей наблюдаемого агента. Кроме того, способ дополнительно включает в себя: использование по меньшей мере второй части множества выборок наблюдений для обучения первой нейронной сети для формирования первых векторов признаков на основании входных данных ситуаций в окружении наблюдаемые агенты; и использование по меньшей мере второй части множества выборок наблюдений для совместного обучения второй нейронной сети для формирования вторых векторов признаков на основании входных данных траекторий наблюдаемых агентов. Первые векторы признаков и вторые векторы признаков будут близкими, когда траектория наблюдаемого агента соответствует ситуации в окружении этого наблюдаемого агента.[00018] In some implementations, each observation sample further includes data about the situation surrounding the observed agent. In addition, the method further includes: using at least a second part of the plurality of observation samples to train the first neural network to generate the first feature vectors based on the input data of situations in the environment of the observed agents; and using at least a second part of the plurality of observation samples to jointly train the second neural network to generate second feature vectors based on the observed agent trajectory inputs. The first feature vectors and the second feature vectors will be close when the trajectory of the observed agent corresponds to the situation in the environment of this observed agent.

[00019] В соответствии с дополнительным аспектом настоящего изобретения технология реализована на сервере. Сервер включает в себя процессор и память, соединенную с процессором, причем память содержит запрограммированные команды, которые при выполнении процессором побуждают процессор: осуществлять доступ на сервере к множеству выборок наблюдений, причем каждая выборка наблюдений получена датчиком на беспилотном транспортном средстве, собирающем данные, причем каждая выборка наблюдений включает в себя данные о траектории наблюдаемого агента вблизи беспилотного транспортного средства, собирающего данные, в течение заданного периода времени; осуществлять выборку на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов; формировать на сервере библиотечный вектор признаков для каждой траектории в библиотеке траекторий агентов; собирать на сервере банк библиотечных векторов признаков по меньшей мере частично на основании библиотечных векторов признаков; и обеспечить банк библиотечных векторов признаков вычислительному устройству, связанному с беспилотным транспортным средством.[00019] In accordance with a further aspect of the present invention, the technology is implemented on a server. The server includes a processor and a memory coupled to the processor, the memory containing programmed instructions that, when executed by the processor, cause the processor to: the sample of observations includes data on the trajectory of the observed agent near the unmanned vehicle collecting data during a given period of time; fetch at the server at least a first portion of the plurality of observation samples to obtain a library of agent trajectories; form on the server a library feature vector for each trajectory in the agent trajectory library; collect on the server a bank of library feature vectors based at least in part on the library feature vectors; and provide a bank of library feature vectors to a computing device associated with the unmanned vehicle.

[00020] В некоторых реализациях память включает в себя запрограммированные команды, которые при выполнении процессором побуждают процессор осуществлять выборку на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агента посредством: кластеризации траекторий агента из по меньшей мере первой части множества выборок наблюдений во множество кластеров, причем каждый кластер во множестве кластеров содержит аналогичные траектории агента; осуществлять случайный выбор кластера из множества кластеров; и осуществлять случайный выбор траектории агента из выбранного кластера.[00020] In some implementations, the memory includes programmed instructions that, when executed by the processor, cause the processor to fetch at the server at least a first portion of a plurality of observation samples to obtain a library of agent trajectories by: clustering agent trajectories from at least a first portion of a plurality of observation samples into a plurality of clusters, each cluster in the plurality of clusters containing similar agent trajectories; to randomly select a cluster from a plurality of clusters; and perform a random selection of the agent's trajectory from the selected cluster.

[00021] В соответствии с еще одним аспектом настоящего изобретения технология реализована в беспилотном транспортном средстве. Беспилотное транспортное средство включает в себя по меньшей мере один датчик. Беспилотное транспортное средство дополнительно включает в себя вычислительное устройство, включающее в себя процессор и память. Память сохраняет запрограммированные команды, которые при выполнении процессором побуждают вычислительное устройство прогнозировать траекторию движения агента вблизи беспилотного транспортного средства посредством: приема данных датчиков, указывающих на текущую ситуацию вблизи беспилотного транспортного средства от по меньшей мере одного датчика; формирования вектора признаков текущей ситуации по меньшей мере частично на основании данных датчиков; поиска в заранее созданном банке библиотечных векторов признаков для определения результирующего вектора признаков из заранее созданного банка, который наиболее релевантен вектору признаков текущей ситуации, при этом каждый библиотечный вектор признаков в заранее созданном банке связан с наблюдаемой траекторией; и прогнозирования траектории агента по меньшей мере частично на основании результирующего вектора признаков. Память дополнительно сохраняет запрограммированные команды, которые при выполнении процессором побуждают вычислительное устройство планировать действие беспилотного транспортного средства по меньшей мере частично на основании прогнозируемой траектории агента, и управлять беспилотным транспортным средством в соответствии с запланированным действием. В некоторых реализациях беспилотное транспортное средство представляет собой беспилотный автомобиль.[00021] In accordance with another aspect of the present invention, the technology is implemented in an unmanned vehicle. The unmanned vehicle includes at least one sensor. The unmanned vehicle further includes a computing device including a processor and a memory. The memory stores programmed instructions that, when executed by the processor, cause the computing device to predict the trajectory of an agent in the vicinity of the unmanned vehicle by: receiving sensor data indicative of the current situation in the vicinity of the unmanned vehicle from at least one sensor; generating a feature vector of the current situation based at least in part on the sensor data; searching the pre-created library feature vector bank to determine the resulting feature vector from the pre-created bank that is most relevant to the current situation feature vector, each library feature vector in the pre-created bank being associated with an observed trajectory; and predicting the agent's trajectory at least in part based on the resulting feature vector. The memory further stores programmed instructions that, when executed by the processor, cause the computing device to plan the action of the unmanned vehicle based at least in part on the predicted trajectory of the agent, and to control the unmanned vehicle in accordance with the planned action. In some implementations, the unmanned vehicle is an unmanned vehicle.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS

[00022] Эти и другие признаки, аспекты и преимущества настоящей технологии станут более понятными из нижеследующего описания, приложенной формулы изобретения и сопровождающих чертежей, на которых:[00022] These and other features, aspects, and advantages of the present technology will become more apparent from the following description, the appended claims, and the accompanying drawings, in which:

[00023] На Фиг. 1 показана принципиальная схема примерной компьютерной системы для использования в некоторых реализациях систем и/или способов настоящей технологии.[00023] In FIG. 1 is a schematic diagram of an exemplary computer system for use in some implementations of the systems and/or methods of the present technology.

[00024] На Фиг. 2 показана сетевая вычислительная среда, включающая в себя беспилотное транспортное средство, подходящая для использования с некоторыми реализациями настоящей технологии.[00024] In FIG. 2 shows a networked computing environment including an unmanned vehicle suitable for use with some implementations of the present technology.

[00025] На Фиг. 3 показан общий вид ситуации, в которой могут использоваться различные реализации раскрытой технологии.[00025] In FIG. 3 shows a general view of a situation in which various implementations of the disclosed technology may be used.

[00026] Фиг. 4 представляет собой блок-схему, изображающую примерный сценарий прогнозирования траектории агента в соответствии с различными реализациями раскрытой технологии.[00026] FIG. 4 is a flowchart depicting an exemplary agent trajectory prediction scenario in accordance with various implementations of the disclosed technology.

[00027] На Фиг. 5 показана блок-схема способа формирования банка траекторий и модели машинного обучения, используемых в способе прогнозирования траектории агента в соответствии с различными реализациями раскрытой технологии.[00027] In FIG. 5 shows a flowchart of a trajectory bank generation method and machine learning model used in an agent trajectory prediction method in accordance with various implementations of the disclosed technology.

[00028] На Фиг. 6 показана блок-схема способа прогнозирования траектории агента в соответствии с различными реализациями раскрытой технологии.[00028] In FIG. 6 shows a flow diagram of a method for predicting an agent's trajectory in accordance with various implementations of the disclosed technology.

Осуществление изобретенияImplementation of the invention

[00029] Ниже со ссылкой на сопровождающие чертежи будут более полно описаны различные примерные реализации раскрытой технологии. Однако настоящая технология может быть реализована во многих различных формах, и ее не следует рассматривать как ограниченную примерными реализациями, изложенными в данном документе. На чертежах размеры и относительные размеры слоев и областей могут быть увеличены для ясности. Во всем документе аналогичные ссылочные позиции относятся к аналогичным элементам.[00029] Various exemplary implementations of the disclosed technology will be more fully described below with reference to the accompanying drawings. However, the present technology may be implemented in many different forms and should not be construed as being limited to the exemplary implementations set forth herein. In the drawings, the sizes and relative sizes of layers and regions may be enlarged for clarity. Throughout the document, like reference numerals refer to like elements.

[00030] Приведенные в данном документе примеры и условные формулировки предназначены главным образом для помощи читателю в понимании принципов настоящей технологии, а не для ограничения ее объема такими конкретно приведенными примерами и условиями. Следует понимать, что специалисты в данной области смогут разработать различные конфигурации, которые, хоть они и не описаны в данном документе явным образом, тем не менее реализуют принципы настоящей технологии и включены в ее сущность и объем.[00030] The examples and conventions provided herein are intended primarily to assist the reader in understanding the principles of the present technology, and not to limit its scope to such specific examples and terms. It should be understood that those skilled in the art will be able to devise various configurations which, although not expressly described herein, nevertheless implement the principles of the present technology and are included within its spirit and scope.

[00031] Кроме того, в целях упрощения понимания в нижеследующем описании реализации настоящей технологии могут быть описаны в относительно упрощенном виде. Специалистам в данной области будет понятно, что различные реализации настоящей технологии могут иметь большую сложность.[00031] In addition, for ease of understanding, in the following description, implementations of the present technology may be described in a relatively simplified manner. Those skilled in the art will appreciate that various implementations of the present technology may be more complex.

[00032] В некоторых случаях также может быть изложено то, что рассматривается в качестве полезных примеров модификаций настоящей технологии. Это делается лишь для облегчения понимания и, опять же, не для определения объема или установления границ настоящей технологии. Эти модификации не представляют собой исчерпывающий перечень, и специалист в данной области может осуществлять другие модификации, тем не менее не выходя за рамки объема настоящей технологии. Кроме того, случаи, когда примеры модификаций не приведены, не следует понимать таким образом, что модификации невозможны и/или что описанное является единственным способом реализации такого элемента настоящей технологии.[00032] In some cases, what are considered useful examples of modifications to the present technology may also be set forth. This is only done to facilitate understanding and, again, not to define the scope or delimitation of the present technology. These modifications are not intended to be an exhaustive list, and other modifications may be made by one skilled in the art without departing from the scope of the present technology. In addition, cases where examples of modifications are not given should not be understood to mean that modifications are not possible and/or that what is described is the only way to implement such an element of the present technology.

[00033] Следует понимать, что, хотя в данном документе могут использоваться понятия «первый», «второй», «третий» и т.д. для описания различных элементов, эти элементы не должны ограничиваться этими понятиями. Эти понятия используются для различения одного элемента от другого. Таким образом, первый элемент, описанный ниже, можно было бы назвать вторым элементом без отступления от замысла настоящего изобретения. В контексте настоящего документа понятие «и/или» включает в себя любые и все комбинации одного или более связанных перечисленных элементов.[00033] It should be understood that although the terms "first", "second", "third", etc., may be used in this document. to describe the various elements, these elements should not be limited to these concepts. These concepts are used to distinguish one element from another. Thus, the first element described below could be called the second element without departing from the spirit of the present invention. As used herein, "and/or" includes any and all combinations of one or more of the related listed elements.

[00034] Следует понимать, что когда элемент упоминается как «соединенный» или «связанный» с другим элементом, он может быть непосредственно соединен или связан с другим элементом, или могут присутствовать промежуточные элементы. Напротив, когда элемент упоминается как «непосредственно соединенный» или «непосредственно связанный» с другим элементом, промежуточные элементы отсутствуют. Другие слова, используемые для описания взаимосвязи между элементами, следует интерпретировать аналогичным образом (например, «между» или «непосредственно между», «смежный» или «непосредственно смежный» и т.д.).[00034] It should be understood that when an element is referred to as "connected" or "associated" with another element, it may be directly connected to or associated with another element, or intermediate elements may be present. In contrast, when an element is referred to as "directly connected" or "directly connected" to another element, there are no intermediate elements. Other words used to describe the relationship between elements should be interpreted in a similar way (eg "between" or " directly between", "adjacent" or "immediately adjacent", etc.).

[00035] Используемая в настоящем документе терминология предназначена только для описания конкретных примерных реализаций и не предназначена для ограничения настоящей технологии. Используемые здесь формы единственного числа подразумевают включение и форм множественного числа, если контекст явно не указывает иное. Кроме того, следует понимать, что понятия «содержит» и/или «содержащий при использовании в данном описании, указывают на наличие упомянутых признаков, целых чисел, этапов, операций, элементов и/или компонентов, но не исключают наличие или добавление одного или более других признаков, целых чисел, этапов, операций, элементов, компонентов и/или их групп.[00035] The terminology used herein is only intended to describe specific exemplary implementations and is not intended to limit the present technology. The singular forms used herein are intended to include the plural forms, unless the context clearly indicates otherwise. In addition, it should be understood that the terms "comprises" and/or "comprising" when used in this description indicate the presence of the mentioned features, integers, steps, operations, elements and/or components, but do not exclude the presence or addition of one or more other signs, integers, stages, operations, elements, components and/or their groups.

[00036] Функции различных элементов, показанных на чертежах, включая любой функциональный блок, отмеченный как «процессор», могут быть обеспечены за счет использования специализированного аппаратного обеспечения, а также аппаратного обеспечения, способного выполнять программное обеспечение. При обеспечении процессором функции могут быть обеспечены одним специализированным процессором, одним совместно используемым процессором или множеством отдельных процессоров, некоторые из которых могут быть совместно используемыми. В некоторых реализациях настоящей технологии процессор может быть процессором общего назначения, например центральным процессором (CPU), или процессором, предназначенным для определенной цели, например цифровым сигнальным процессором (DSP). Кроме того, явное использование термина «процессор» не должно толковаться как относящееся исключительно к аппаратному обеспечению, способному выполнять программное обеспечение, и может неявно включать в себя, не ограничиваясь, специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ROM) для хранения программного обеспечения, оперативное запоминающее устройство (RAM) и энергонезависимое запоминающее устройство. Также может быть включено другое аппаратное обеспечение, традиционное и/или специализированное.[00036] The functions of the various elements shown in the drawings, including any functional unit labeled "processor", may be provided through the use of dedicated hardware as well as hardware capable of executing software. When provided by a processor, the functions may be provided by a single dedicated processor, a single shared processor, or a plurality of individual processors, some of which may be shared. In some implementations of the present technology, the processor may be a general purpose processor, such as a central processing unit (CPU), or a processor dedicated to a specific purpose, such as a digital signal processor (DSP). In addition, explicit use of the term "processor" should not be construed as referring solely to hardware capable of executing software, and may implicitly include, but is not limited to, application specific integrated circuit (ASIC), field programmable gate array (FPGA), DC a memory device (ROM) for storing software, random access memory (RAM) and non-volatile storage device. Other hardware, conventional and/or specialized, may also be included.

[00037] Программные модули или просто модули или блоки, которые подразумеваются как программное обеспечение, могут быть представлены в данном документе в виде любого сочетания элементов блок-схемы или других элементов, указывающих на выполнение этапов процесса и/или текстовое описание. Такие модули могут выполняться аппаратным обеспечением, которое показано в явном или неявном виде. Кроме того, следует понимать, что модуль может включать в себя, например, но не ограничиваясь, логику компьютерной программы, команды компьютерной программы, программное обеспечение, стек, микропрограммное обеспечение, аппаратные схемы или их сочетание, которые обеспечивают требуемые возможности.[00037] Software modules, or simply modules or blocks that are meant to be software, may be represented herein as any combination of flowchart elements or other elements indicating the execution of process steps and/or textual description. Such modules may be executed by the hardware that is shown explicitly or implicitly. In addition, it should be understood that a module may include, for example, but not limited to, computer program logic, computer program instructions, software, stack, firmware, hardware circuits, or combinations thereof that provide the desired capabilities.

[00038] В контексте настоящего описания «база данных» представляет собой любой структурированный набор данных, независимо от его конкретной структуры, программного обеспечения для управления базой данных или компьютерного аппаратного обеспечения, на котором данные хранятся, реализуются или иным образом обеспечиваются для использования. База данных может находиться на том же аппаратном обеспечении, что и процесс, который хранит или использует информацию, сохраненную в базе данных, или она может находиться на отдельном аппаратном обеспечении, таком как специализированный сервер или множество серверов.[00038] As used herein, a "database" is any structured collection of data, regardless of its particular structure, database management software, or computer hardware on which the data is stored, implemented, or otherwise provided for use. The database may reside on the same hardware as the process that stores or uses the information stored in the database, or it may reside on separate hardware such as a specialized server or multiple servers.

[00039] Настоящая технология может быть реализована в виде системы, способа и/или компьютерного программного продукта. Компьютерный программный продукт может включать в себя машиночитаемый носитель данных (или носители), сохраняющий машиночитаемые программные команды, которые при выполнении процессором побуждают процессор выполнять аспекты раскрытой технологии. Машиночитаемый носитель данных может быть, например, электронным запоминающим устройством, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любым подходящим их сочетанием. Неисчерпывающий перечень более конкретных примеров машиночитаемого носителя данных включает в себя: переносной компьютерный диск, жесткий диск, оперативную память (RAM), постоянную память (ROM), флэш-память, оптический диск, карту памяти, дискету, носитель с механическим или визуальным кодированием (например, перфокарту или штрих-код) и/или любое их сочетание. В контексте настоящего документа машиночитаемый носитель данных следует рассматривать как постоянный машиночитаемый носитель. Он не должен рассматриваться как непостоянный сигнал, такой как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся по волноводу или другим средам передачи (например, световые импульсы, проходящие по оптоволоконному кабелю), или электрические сигналы, передаваемые по проводам.[00039] The present technology may be implemented as a system, method, and/or computer program product. The computer program product may include a computer-readable storage medium (or media) storing computer-readable program instructions that, when executed by a processor, cause the processor to perform aspects of the disclosed technology. The computer-readable storage medium may be, for example, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination thereof. A non-exhaustive list of more specific examples of computer-readable storage media includes: portable computer disk, hard drive, random access memory (RAM), read only memory (ROM), flash memory, optical disk, memory card, floppy disk, mechanically or visually encoded media(For example,punch card or barcode) and/or any combination thereof. In the context of this document, a computer-readable storage medium should be considered as a permanent computer-readable medium. It should not be considered as an intermittent signal such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating along a waveguide or other transmission media. (for example, light pulses passing through a fiber optic cable), or electrical signals transmitted through wires.

[00040] Следует понимать, что машиночитаемые программные команды могут быть загружены в соответствующие вычислительные или обрабатывающие устройства с машиночитаемого носителя данных или на внешний компьютер или внешнее запоминающее устройство через сеть, например Интернет, локальную сеть, глобальную сеть и/или беспроводную сеть. Сетевой интерфейс в вычислительном/обрабатывающем устройстве может принимать машиночитаемые программные команды через сеть и пересылать машиночитаемые программные команды для хранения на машиночитаемом носителе данных в соответствующем вычислительном или обрабатывающем устройстве.[00040] It should be understood that computer-readable program instructions may be downloaded to appropriate computing or processing devices from a computer-readable storage medium or to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and/or a wireless network. A network interface in a computing/processing device may receive computer-readable program instructions via a network and forward the computer-readable program instructions for storage on a computer-readable storage medium in an associated computing or processing device.

[00041] Машиночитаемые программные команды для выполнения операций по настоящему изобретению могут быть инструкциями ассемблера, машинными инструкциями, инструкциями микропрограммного обеспечения, данными конфигурации для интегральной схемы или либо исходным кодом, либо объектным кодом, написанным на любом сочетании из одного или более языков программирования. Машиночитаемые программные команды могут выполняться полностью на компьютере пользователя, частично на компьютере пользователя, в виде автономного пакета программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере, или полностью на удаленном компьютере или сервере. В последнем случае удаленный компьютер может быть соединен с компьютером пользователя через сеть любого типа.[00041] The computer-readable program instructions for performing the operations of the present invention may be assembly instructions, machine instructions, firmware instructions, configuration data for an integrated circuit, or either source code or object code written in any combination of one or more programming languages. The machine-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a stand-alone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer through any type of network.

[00042] Все утверждения в данном документе, излагающие принципы, аспекты и реализации настоящей технологии, а также ее конкретные примеры, подразумевают охват как их структурных, так и функциональных эквивалентов, независимо от того, известны ли они в настоящее время или будут разработаны в будущем. Таким образом, например, специалистам в данной области будет понятно, что любые блок-схемы в данном документе представляют концептуальные виды иллюстративной схемы, реализующей принципы настоящей технологии. Аналогичным образом, следует понимать, что любые блок-схемы, блок-схемы процессов, схемы переходов состояний, псевдокод и тому подобное представляют различные процессы, которые могут быть, по существу, представлены в машиночитаемых программных командах. Эти машиночитаемые программные команды могут быть переданы процессору или другому программируемому устройству обработки данных для формирования механизма, так что команды, которые выполняются через процессор компьютера или другого программируемого устройства обработки данных, образуют средство для реализации функций/действий, указанных в блок-схеме и/или блоке или блоках блок-схемы. Эти машиночитаемые программные команды также могут храниться на машиночитаемом носителе данных, который может управлять компьютером, программируемым устройством обработки данных и/или другими устройствами, чтобы они функционировали определенным образом, так что машиночитаемый носитель данных, на котором сохранены команды, включают в себя изделие, включающее в себя команды, которые реализуют аспекты функции/действия, указанные в блок-схемах, блок-схемах процессов, схемах перехода состояний, псевдокоде и тому подобном.[00042] All statements in this document that set forth the principles, aspects, and implementations of the present technology, as well as specific examples thereof, are intended to cover both their structural and functional equivalents, whether they are currently known or will be developed in the future. . Thus, for example, those skilled in the art will appreciate that any block diagrams herein represent conceptual views of an illustrative circuit that implements the principles of the present technology. Likewise, it should be understood that any flow diagrams, process flow diagrams, state transition diagrams, pseudocode, and the like represent various processes that can be substantially represented in computer readable program instructions. These machine-readable program instructions may be transmitted to a processor or other programmable data processing device to form a mechanism such that the instructions that are executed through the processor of a computer or other programmable data processing device form a means for implementing the functions/actions indicated in the block diagram and/or block or blocks of the flowchart. These computer-readable program instructions may also be stored on a computer-readable storage medium that can control a computer, a programmable data processing device, and/or other devices to function in a certain manner, such that the computer-readable storage medium on which the instructions are stored includes an article of manufacture, including includes instructions that implement aspects of the function/action specified in flowcharts, process flowcharts, state transition diagrams, pseudocode, and the like.

[00043] Машиночитаемые программные команды также могут быть загружены в компьютер, другое программируемое устройство обработки данных или другие устройства, чтобы вызвать выполнение ряда функциональных этапов на компьютере, другом программируемом устройстве или других устройствах для формирования реализуемого компьютером процесса, таким образом, что команды, которые выполняются на компьютере, другом программируемом устройстве или другом устройстве, реализуют функции/действия, указанные в блок-схемах, блок-схемах процессов, схемах переходов состояний, псевдокоде и тому подобном.[00043] Machine-readable program instructions may also be downloaded to a computer, other programmable processing device, or other devices to cause a series of functional steps to be executed on the computer, other programmable device, or other devices to form a computer-implemented process such that the instructions that are executed on a computer, other programmable device, or other device, implement the functions/actions specified in flowcharts, process flowcharts, state transition diagrams, pseudocode, and the like.

[00044] В некоторых альтернативных реализациях функции, указанные в блок-схемах, блок-схемах процессов, схемах переходов состояний, псевдокоде и тому подобном, могут происходить вне порядка, указанного на чертежах. Например, два блока, последовательно показанные на блок-схеме, могут фактически выполняться, по существу, одновременно, или блоки могут иногда выполняться в обратном порядке, в зависимости от задействованной функциональности. Также следует отметить, что каждая из функций, отмеченных на чертежах, и сочетания таких функций могут быть реализованы специализированными аппаратными системами, которые выполняют указанные функции или действия, или сочетаниями специализированных аппаратных средств и компьютерных команд.[00044] In some alternative implementations, functions indicated in flowcharts, process flow diagrams, state transition diagrams, pseudocode, and the like may occur out of the order indicated in the drawings. For example, two blocks shown sequentially in a block diagram may actually be executed substantially simultaneously, or the blocks may sometimes be executed in reverse order, depending on the functionality involved. It should also be noted that each of the functions noted in the drawings, and combinations of such functions, may be implemented by specialized hardware systems that perform said functions or activities, or by combinations of specialized hardware and computer instructions.

[00045] Установив эти основные положения, теперь рассмотрим некоторые неограничивающие примеры, иллюстрирующие различные реализации аспектов настоящего изобретения.[00045] Having established these fundamentals, we now consider some non-limiting examples illustrating various implementations of aspects of the present invention.

Компьютерная системаcomputer system

[00046] На Фиг. 1 показана компьютерная система 100. Компьютерная система 100 может представлять собой многопользовательский компьютер, однопользовательский компьютер, портативный компьютер, планшетный компьютер, смартфон, встроенную систему управления или любую другую компьютерную систему, которая известна в настоящее время или будет разработана позже. Кроме того, следует понимать, что некоторые или все компоненты компьютерной системы 100 могут быть виртуализированными и/или облачными. Как показано на Фиг. 1, компьютерная система 100 включает в себя один или более процессоров 102, память 110, интерфейс 120 памяти и сетевой интерфейс 140. Эти системные компоненты соединены между собой через шину 150, которая может включать в себя одну или более внутренних и/или внешних шин (не показаны) (например, шину PCI, универсальную последовательную шину, шину Firewire IEEE 1394, шину SCSI, шину Serial-ATA. и т.д.), с которыми соединены электронными средствами различные компоненты аппаратного обеспечения.[00046] In FIG. 1 shows computer system 100. Computer system 100 can be a multi-user computer, single-user computer, laptop computer, tablet computer, smartphone, embedded control system, or any other computer system that is currently known or will be developed later. In addition, it should be understood that some or all of the components of computer system 100 may be virtualized and/or cloud-based. As shown in FIG. 1, computer system 100 includes one or more processors 102, memory 110, memory interface 120, and network interface 140. These system components are interconnected via bus 150, which may include one or more internal and/or external buses ( not shown) (eg, PCI bus, Universal Serial Bus, Firewire IEEE 1394 bus, SCSI bus, Serial-ATA bus, etc.) to which various hardware components are electronically connected.

[00047] Память 110, которая может быть памятью с произвольным доступом или памятью любого другого типа, может содержать данные 112, операционную систему 114 и программу 116. Данные 112 могут быть любыми данными, которые служат входными данными или выходными данными любой программы в компьютерной системе 100. Операционная система 114 представляет собой операционную систему, такую как MICROSOFT WINDOWS или LINUX. Программа 116 может быть любой программой или набором программ, которые включают в себя запрограммированные команды, которые могут выполняться процессором для управления действиями, выполняемыми компьютерной системой 100.[00047] Memory 110, which may be random access memory or any other type of memory, may contain data 112, an operating system 114, and program 116. Data 112 may be any data that serves as input to or output from any program on a computer system. 100. Operating system 114 is an operating system such as MICROSOFT WINDOWS or LINUX. Program 116 may be any program or set of programs that includes programmed instructions that can be executed by a processor to control the actions performed by computer system 100.

[00048] Интерфейс 120 памяти используется для соединения запоминающих устройств, таких как запоминающее устройство 125, с компьютерной системой 100. Одним типом запоминающего устройства 125 является твердотельный накопитель, который может использовать узел интегральной схемы для постоянного хранения данных. Другой тип запоминающего устройства 125 - представляет собой жесткий диск, такой как электромеханическое устройство, которое использует магнитное запоминающее устройство для сохранения и извлечения цифровых данных. Аналогичным образом, запоминающее устройство 125 может быть оптическим приводом, устройством чтения карт, которое принимает съемную карту памяти, такую как SD-карта, или устройством флэш-памяти, которое может быть соединено с компьютерной системой 100, например, через универсальную последовательную шину (USB).[00048] Memory interface 120 is used to connect storage devices such as storage device 125 to computer system 100. One type of storage device 125 is a solid state drive that can use an integrated circuit assembly for persistent data storage. Another type of storage device 125 is a hard drive, such as an electromechanical device, that uses a magnetic storage device to store and retrieve digital data. Similarly, storage device 125 can be an optical drive, a card reader that accepts a removable memory card such as an SD card, or a flash memory device that can be connected to computer system 100, such as via a universal serial bus (USB ).

[00049] В некоторых реализациях компьютерная система 100 может использовать хорошо известные технологии виртуальной памяти, которые позволяют программам компьютерной системы 100 вести себя так, как если бы они имели доступ к большому непрерывному адресному пространству, вместо доступа к множеству меньших пространств хранения, таких как как память 110 и запоминающее устройство 125. Таким образом, хотя показано, что данные 112, операционная система 114 и программы 116 постоянно находятся в памяти 110, специалистам в данной области техники будет понятно, что эти элементы не обязательно полностью одновременно содержатся в памяти 110.[00049] In some implementations, computer system 100 may use well-known virtual memory technologies that allow programs of computer system 100 to behave as if they had access to a large, contiguous address space, instead of accessing many smaller storage spaces, such as memory 110 and storage device 125. Thus, while data 112, operating system 114, and programs 116 are shown to reside in memory 110, those skilled in the art will appreciate that these elements are not necessarily contained entirely simultaneously in memory 110.

[00050] Процессоры 102 могут включать в себя один или более микропроцессоров и/или других интегральных схем. Процессоры 102 выполняют программные команды, сохраненные в памяти 110. Когда компьютерная система 100 запускается, процессоры 102 могут изначально выполнять процедуру загрузки и/или программные команды, составляющие операционную систему 114.[00050] Processors 102 may include one or more microprocessors and/or other integrated circuits. Processors 102 execute software instructions stored in memory 110. When computer system 100 starts up, processors 102 may initially execute the boot procedure and/or software instructions that make up operating system 114.

[00051] Сетевой интерфейс 140 используется для соединения компьютерной системы 100 с другими компьютерными системами или сетевыми устройствами (не показаны) через сеть 160. Сетевой интерфейс 140 может включать в себя сочетание аппаратного и программного обеспечения, которое позволяет осуществлять связь в сети 160. В некоторых реализациях сетевой интерфейс 140 может быть беспроводным сетевым интерфейсом. Программное обеспечение в сетевом интерфейсе 140 может включать в себя программное обеспечение, которое использует один или более сетевых протоколов для связи по сети 160. Например, сетевые протоколы могут включать в себя TCP/IP (Протокол управления передачей/протокол Интернет).[00051] Network interface 140 is used to connect computer system 100 to other computer systems or network devices (not shown) via network 160. Network interface 140 may include a combination of hardware and software that allows communication on network 160. In some implementations, network interface 140 may be a wireless network interface. Software at network interface 140 may include software that uses one or more network protocols to communicate over network 160. For example, network protocols may include TCP/IP (Transmission Control Protocol/Internet Protocol).

[00052] Следует понимать, что компьютерная система 100 является лишь примером, и что раскрытая технология может использоваться с компьютерными системами или другими вычислительными устройствами, имеющими другие конфигурации.[00052] It should be understood that computer system 100 is only an example, and that the disclosed technology may be used with computer systems or other computing devices having other configurations.

Сетевая вычислительная средаNetworked Computing Environment

[00053] На Фиг. 2 показана сетевая вычислительная среда 200, подходящая для использования с некоторыми неограничивающими реализациями настоящей технологии. Сетевая вычислительная среда 200 включает в себя вычислительное устройство 210, связанное с транспортным средством 220 и/или связанное с пользователем (не показан), который связан с транспортным средством 220 (таким как оператор транспортного средства 220). Сетевая вычислительная среда 200 также включает в себя сервер 235, осуществляющий связь с вычислительным устройством 210 через сеть 240 связи (например, Интернет и тому подобное).[00053] In FIG. 2 shows a networked computing environment 200 suitable for use with certain non-limiting implementations of the present technology. Networked computing environment 200 includes a computing device 210 associated with vehicle 220 and/or associated with a user (not shown) that is associated with vehicle 220 (such as an operator of vehicle 220). The networked computing environment 200 also includes a server 235 that communicates with the computing device 210 via a communications network 240 (eg, the Internet, and the like).

[00054] По меньшей мере в некоторых неограничивающих реализациях настоящей технологии вычислительное устройство 210 соединено с возможностью осуществления связи с системами управления транспортного средства 220. Вычислительное устройство 210 может быть конфигурировано и выполнено с возможностью управления различными операционными системами транспортного средства 220, включая, но не ограничиваясь, ЭБУ (блок управления двигателем), системы рулевого управления, тормозные системы, и системы сигнализации и освещения (т.е. фары, стоп-сигналы и/или указатели поворота). В такой реализации транспортное средство 220 может быть беспилотным транспортным средством.[00054] In at least some non-limiting implementations of the present technology, computing device 210 is communicatively coupled to control systems of vehicle 220. Computing device 210 can be configured and configured to control various operating systems of vehicle 220, including, but not limited to , ECU (engine control unit), steering systems, braking systems, and signaling and lighting systems (i.e. headlights, brake lights and/or direction indicators). In such an implementation, vehicle 220 may be an unmanned vehicle.

[00055] В некоторых неограничивающих реализациях настоящей технологии сетевая вычислительная среда 200 может включать в себя спутник GPS (не показан), передающий и/или принимающий сигнал GPS на вычислительное устройство 210/с него. Следует понимать, что настоящая технология не ограничена GPS и может использовать технологию определения местоположения, отличную от GPS. Следует отметить, что спутник GPS можно вообще не использовать.[00055] In some non-limiting implementations of the present technology, networked computing environment 200 may include a GPS satellite (not shown) transmitting and/or receiving a GPS signal to computing device 210/from it. It should be understood that the present technology is not limited to GPS and may use a location technology other than GPS. It should be noted that the GPS satellite may not be used at all.

[00056] Транспортное средство 220, с которым связано вычислительное устройство 210, может быть любым транспортным средством для отдыха или иного, таким как частный или коммерческий автомобиль, грузовой автомобиль, мотоцикл и тому подобное. Хотя транспортное средство 220 изображено как наземное транспортное средство, это может быть не так во всех без исключения неограничивающих реализациях настоящей технологии. Например, в некоторых неограничивающих реализациях настоящей технологии транспортное средство 220 может быть водным транспортным средством, таким как лодка, или летательным аппаратом, таким как беспилотный летательный аппарат.[00056] Vehicle 220 with which computing device 210 is associated may be any vehicle, recreational or otherwise, such as a private or commercial vehicle, truck, motorcycle, and the like. Although vehicle 220 is depicted as a ground vehicle, this may not be the case in all non-limiting implementations of the present technology. For example, in some non-limiting implementations of the present technology, vehicle 220 may be a waterborne vehicle, such as a boat, or an aircraft, such as an unmanned aerial vehicle.

[00057] Транспортное средство 220 может быть управляемым пользователем или беспилотным транспортным средством. В некоторых неограничивающих реализациях настоящей технологии предполагается, что транспортное средство 220 может быть реализовано в виде беспилотного автомобиля (SDC). Транспортное средство 220 может быть полностью автономным транспортным средством или частично автономным транспортным средством, в котором водитель-человек управляет некоторыми аспектами работы транспортного средства, в то время как другие аспекты (например, «автопилот» на шоссе) автоматизированы. Следует отметить, что конкретные параметры транспортного средства 220 не являются ограничивающими, причем эти конкретные параметры включают в себя, например: производителя транспортного средства, модель транспортного средства, год выпуска транспортного средства, вес транспортного средства, размеры транспортного средства, распределение веса транспортного средства, площадь поверхности транспортного средства, высоту транспортного средства, тип трансмиссии (например, 2x или 4x), тип колес, тормозную систему, топливную систему, пробег, идентификационный номер транспортного средства, объем двигателя или другие характеристики или параметры транспортного средства.[00057] Vehicle 220 may be a user driven or unmanned vehicle. In some non-limiting implementations of the present technology, it is contemplated that vehicle 220 may be implemented as an unmanned vehicle (SDC). Vehicle 220 may be a fully autonomous vehicle or a partially autonomous vehicle in which the human driver controls some aspects of the vehicle's operation while other aspects ( e.g. " autopilot" on the highway) are automated. It should be noted that the specific parameters of the vehicle 220 are not limiting, and these specific parameters include, for example: vehicle manufacturer, vehicle model, vehicle year, vehicle weight, vehicle dimensions, vehicle weight distribution, area vehicle surface, vehicle height, transmission type (such as 2x or 4x), wheel type, brake system, fuel system, mileage, vehicle identification number, engine size, or other vehicle characteristics or parameters.

[00058] Согласно настоящей технологии реализация вычислительного устройства 210 не ограничена конкретно. Например, вычислительное устройство 210 может быть реализовано в виде блока управления двигателем транспортного средства, CPU транспортного средства, навигационного устройства транспортного средства (например, TomTom™, Garmin™), планшетного компьютера, персонального компьютера, встроенного в транспортное средство 220, и тому подобного. Таким образом, следует отметить, что вычислительное устройство 210 может быть или может не быть постоянно связано с транспортным средством 220. В качестве Дополнения или альтернативы, вычислительное устройство 210 может быть реализовано в устройстве беспроводной связи, таком как мобильный телефон (например, смартфон или радиотелефон). В некоторых реализациях вычислительное устройство 210 имеет дисплей 270.[00058] According to the present technology, the implementation of the computing device 210 is not specifically limited. For example, computing device 210 may be implemented as a vehicle engine control unit, vehicle CPU, vehicle navigation device. (eg, TomTom™, Garmin™), tablet computer, personal computer built into the vehicle 220, and the like. Thus, it should be noted that computing device 210 may or may not be permanently associated with vehicle 220. In addition or alternatively, computing device 210 may be implemented in a wireless communications device such as a mobile phone (e.g., smartphone or wireless phone). ). In some implementations, computing device 210 has a display 270.

[00059] Вычислительное устройство 210 может включать в себя некоторые или все компоненты компьютерной системы 100, изображенные на Фиг.1, в зависимости от конкретной реализации. В некоторых реализациях вычислительное устройство 210 является устройством бортового компьютера и включает в себя процессоры 102, запоминающее устройство 125 и память 110. Другими словами, вычислительное устройство 210 включает в себя аппаратное обеспечение и/или программное обеспечение и/или микропрограммное обеспечение, или их сочетание для обработки данных, как будет более подробно описано ниже.[00059] Computing device 210 may include some or all of the components of computer system 100 depicted in FIG. 1, depending on the particular implementation. In some implementations, computing device 210 is an onboard computer device and includes processors 102, storage 125, and memory 110. In other words, computing device 210 includes hardware and/or software and/or firmware, or a combination thereof, to data processing, as will be described in more detail below.

[00060] В некоторых неограничивающих реализациях настоящей технологии сеть 240 связи представляет собой Интернет. В альтернативных неограничивающих реализациях настоящей технологии сеть 240 связи может быть реализована в виде любой подходящей локальной сети (LAN), глобальной сети (WAN), частной сети связи и тому подобного. Следует явным образом понимать, что реализации для сети 240 связи приведены лишь в целях иллюстрации. Между вычислительным устройством 210 и сетью 240 связи предусмотрен канал связи (отдельно не пронумерованный), реализация которого будет зависеть, среди прочего, от того, каким образом реализовано вычислительное устройство 210. Лишь в качестве примера, а не ограничения, в тех неограничивающих реализациях настоящей технологии, в которых вычислительное устройство 210 реализовано в виде устройства беспроводной связи, такого как смартфон или навигационное устройство, канал связи может быть реализован в виде линии беспроводной связи. Примеры линий беспроводной связи могут включать в себя, не ограничиваясь, линию связи сети 3G, линию связи 4G и тому подобное. Сеть 240 связи также может использовать беспроводное соединение с сервером 235.[00060] In some non-limiting implementations of the present technology, communication network 240 is the Internet. In alternative non-limiting implementations of the present technology, communications network 240 may be implemented as any suitable local area network (LAN), wide area network (WAN), private communications network, and the like. It should be explicitly understood that implementations for communication network 240 are provided for purposes of illustration only. A communication channel (not individually numbered) is provided between computing device 210 and communication network 240, the implementation of which will depend on , among other things, how computing device 210 is implemented. By way of example only, and not limitation, in those non-limiting implementations of the present technology , in which the computing device 210 is implemented as a wireless communication device, such as a smartphone or navigation device, the communication channel may be implemented as a wireless communication link. Examples of wireless links may include, but are not limited to, a 3G network link, a 4G link, and the like. Communication network 240 may also use a wireless connection to server 235.

[00061] В некоторых реализациях настоящей технологии сервер 235 реализован в виде компьютерного сервера и может включать в себя некоторые или все компоненты компьютерной системы 100 по Фиг.1. В одном неограничивающем примере сервер 235 реализован в виде сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™, но также может быть реализован в любом другом подходящем аппаратном обеспечении, программном обеспечении и/или микропрограммном обеспечении или в их сочетании. В изображенных неограничивающих реализациях настоящей технологии сервер 235 является одиночным сервером. В альтернативных неограничивающих реализациях настоящей технологии функциональные возможности сервера 235 могут быть распределены и могут быть реализованы через множество серверов (не показаны).[00061] In some implementations of the present technology, server 235 is implemented as a computer server and may include some or all of the components of computer system 100 of FIG. In one non-limiting example, server 235 is implemented as a Dell™ PowerEdge™ server running the Microsoft™ Windows Server™ operating system, but may also be implemented in any other suitable hardware, software and/or firmware, or combinations thereof. In the depicted non-limiting implementations of the present technology, server 235 is a single server. In alternative non-limiting implementations of the present technology, the functionality of server 235 may be distributed and may be implemented across multiple servers (not shown).

[00062] В некоторых неограничивающих реализациях настоящей технологии процессоры 102 вычислительного устройства 210 могут осуществлять связь с сервером 235 для приема одного или более обновлений. Такие обновления могут включать в себя, не ограничиваясь, обновления программного обеспечения, обновления карт, обновления маршрутов, обновления погоды и тому подобное. В некоторых неограничивающих реализациях настоящей технологии вычислительное устройство 210 также может быть выполнено с возможностью передачи на сервер 235 определенных рабочих данных, таких как пройденные маршруты, данные дорожного движения, данные производительности и тому подобное. Некоторые или все такие данные, передаваемые между транспортным средством 220 и сервером 235, могут быть зашифрованы и/или анонимизированы.[00062] In some non-limiting implementations of the present technology, processors 102 of computing device 210 may communicate with server 235 to receive one or more updates. Such updates may include, but are not limited to, software updates, map updates, route updates, weather updates, and the like. In some non-limiting implementations of the present technology, the computing device 210 may also be configured to transmit to the server 235 certain operational data, such as routes traveled, traffic data, performance data, and the like. Some or all of such data transmitted between vehicle 220 and server 235 may be encrypted and/or anonymized.

[00063] Следует отметить, что вычислительное устройство 210 может использовать различные датчики и системы для сбора информации об окружении 250 транспортного средства 220. Как видно на Фиг.2, транспортное средство 220 может быть оборудовано множеством систем 280 датчиков. Следует отметить, что различные системы датчиков из множества систем 280 датчиков могут использоваться для сбора различных типов данных в отношении окружения 250 транспортного средства 220.[00063] It should be noted that the computing device 210 may use a variety of sensors and systems to collect information about the environment 250 of the vehicle 220. As seen in FIG. 2, the vehicle 220 may be equipped with multiple sensor systems 280. It should be noted that different sensor systems from the plurality of sensor systems 280 may be used to collect different types of data regarding the environment 250 of the vehicle 220.

[00064] В одном примере множество систем 280 датчиков может включать в себя различные оптические системы, включая, среди прочего, одну или более систем датчиков типа камеры, которые установлены на транспортном средстве 220 и соединены с возможностью осуществления связи с процессорами 102 вычислительного устройства 210. Вообще говоря, одна или более систем датчиков типа камеры могут быть выполнены с возможностью сбора данных изображения о различных частях окружения 250 транспортного средства 220. В некоторых случаях данные изображения, обеспечиваемые одной или более системами датчиков типа камеры, могут использоваться вычислительным устройством 210 для выполнения процедур обнаружения объектов. Например, вычислительное устройство 210 может быть выполнено с возможностью ввода данных изображения, обеспечиваемых одной или более системами датчиков типа камеры, в нейронную сеть обнаружения объектов (ODNN), которая обучена локализовать и классифицировать потенциальные объекты в окружении 250 транспортного средства 220.[00064] In one example, a plurality of sensor systems 280 may include various optical systems , including but not limited to one or more camera-type sensor systems that are mounted on vehicle 220 and coupled to processors 102 of computing device 210. Generally speaking, one or more camera-type sensor systems may be configured to collect image data about various parts of the environment 250 of vehicle 220. In some cases, image data provided by one or more camera-type sensor systems may be used by computing device 210 to perform procedures. object detection. For example, computing device 210 may be configured to input image data provided by one or more camera type sensor systems to an object detection neural network (ODNN) that is trained to locate and classify potential objects in the environment 250 of vehicle 220.

[00065] В другом примере множество систем 280 датчиков может включать в себя одну или более систем датчиков типа радара, которые установлены на транспортном средстве 220 и соединены с возможностью осуществления связи с процессорами 102. Вообще говоря, одна или более систем датчиков типа радара могут быть выполнены с возможностью использования радиоволн для сбора данных о различных частях окружения 250 транспортного средства 220. Например, одна или более систем датчиков типа радара могут быть выполнены с возможностью сбора данных радара о потенциальных объектах в окружении 250 транспортного средства 220, причем такие данные потенциально представляют удаление объектов от системы датчиков типа радара, ориентацию объектов, скорость движения и/или скорость объектов и тому подобное.[00065] In another example, the plurality of sensor systems 280 may include one or more radar type sensor systems that are mounted on vehicle 220 and communicatively coupled to processors 102. Generally speaking, one or more radar type sensor systems may be configured to use radio waves to collect data about various parts of the environment 250 of the vehicle 220. For example, one or more radar-type sensor systems can be configured to collect radar data about potential objects in the environment 250 of the vehicle 220, such data potentially representing a distance objects from a system of sensors such as radar, the orientation of the objects, the speed of movement and/or the speed of the objects, and the like.

[00066] В дополнительном примере множество систем 280 датчиков может включать в себя одну или более систем LIDAR, которые установлены на транспортном средстве 220 и соединены с возможностью осуществления связи с процессорами 102. Вообще говоря, система LIDAR выполнена с возможностью сбора данных об окружении 250 транспортного средства 220, используемых, например, для построения многомерной карты объектов в окружении 250 транспортного средства 220. Система LIDAR может быть установлена или предусмотрена в качестве дополнительного оборудования на транспортном средстве 220 в различных местах и/или в различных конфигурациях для сбора информации об окружении 250 транспортного средства 220.[00066] In a further example, a plurality of sensor systems 280 may include one or more LIDAR systems that are mounted on vehicle 220 and coupled to communicate with processors 102. Generally speaking, the LIDAR system is configured to collect data about the environment 250 of the vehicle. means 220 used, for example, to build a multidimensional map of objects in the environment 250 of the vehicle 220. The LIDAR system can be installed or provided as an additional equipment on the vehicle 220 in various locations and / or in various configurations to collect information about the environment 250 of the vehicle funds 220.

[00067] Например, в зависимости от реализации транспортного средства 220 и системы LIDAR, система LIDAR может быть установлена на внутренней, верхней части лобового стекла транспортного средства 220. Тем не менее, в объем настоящего изобретения входят и другие места для установки лидарной системы, в том числе на заднем окне, боковых окнах, переднем капоте, крыше, передней решетке, переднем бампере или сбоку транспортного средства 220.[00067] For example, depending on the implementation of the vehicle 220 and the LIDAR system, the LIDAR system may be installed on the inside, top of the windshield of the vehicle 220. However, other locations for installing the lidar system are within the scope of the present invention, in including on the rear window, side windows, front hood, roof, front grille, front bumper or side of the vehicle 220.

[00068] В контексте настоящей технологии вычислительное устройство 210 выполнено с возможностью обнаружения одного или более объектов в окружении 250 транспортного средства 220 на основании данных, полученных от одной или более систем камер и одной или более систем LIDAR. Например, вычислительное устройство 210, выполненное с возможностью обнаружения определенного объекта в окружении 250 транспортного средства 220, может быть выполнено с возможностью идентификации данных LIDAR и данных камеры, связанных с определенным объектом, формирования «встраивания», представляющего признаки, связанные с определенным объектом, и обнаружения объекта путем формирования ограничительной рамки для объекта.[00068] In the context of the present technology, computing device 210 is configured to detect one or more objects in environment 250 of vehicle 220 based on data received from one or more camera systems and one or more LIDAR systems. For example, computing device 210 configured to detect a specific object in the environment 250 of vehicle 220 may be configured to identify LIDAR data and camera data associated with the specific object, generate an "embedding" representing features associated with the specific object, and object detection by forming a bounding box for the object.

Прогнозирование траектории агентаAgent trajectory prediction

[00069] Реализации раскрытой технологии прогнозируют движение агентов (то есть других участников дорожной ситуации), окружающих беспилотное транспортное средство, таких как пешеходы и транспортные средства, управляемые человеком. Как и в случае с любым транспортным средством, беспилотному транспортному средству требуется время, чтобы изменить свою скорость. Внезапные изменения скорости и ускорения, вызванные неправильным прогнозированием траектории движения агента, могут быть некомфортными для пассажиров беспилотного транспортного средства. В некоторых случаях неверное прогнозирование движения агентов могут привести даже к столкновениям. Таким образом, модуль планирования движения беспилотного транспортного средства должен иметь хорошее представление о том, где могут находиться ближайшие агенты через несколько секунд, чтобы он мог осуществлять планирование для беспилотного транспортного средства с сохранением безопасного расстояния. Модуль планирования движения также может извлечь большую пользу из понимания того, когда ситуация по своей природе является мультимодальной, и вероятно множество различных вариантов будущего. В таких ситуациях беспилотное транспортное средство может проявлять особую осторожность, пока ситуация не прояснится.[00069] Implementations of the disclosed technology predict the movement of agents (ie, other traffic participants) surrounding an unmanned vehicle, such as pedestrians and human-driven vehicles. As with any vehicle, a self-driving vehicle takes time to change its speed. Sudden changes in speed and acceleration caused by incorrect prediction of the agent's trajectory can be uncomfortable for the passengers of an unmanned vehicle. In some cases, incorrect prediction of the movement of agents can even lead to collisions. Thus, the AV motion planning module must have a good idea of where the nearest agents may be in a few seconds so that it can plan for the AV while maintaining a safe distance. The traffic planning module can also greatly benefit from understanding when a situation is inherently multi-modal and many different futures are likely. In such situations, an unmanned vehicle may take extra care until the situation is cleared up.

[00070] В соответствии с различными реализациями раскрытой технологии одним из способов описания будущего движения агента является его представление в виде вероятностей для возможных будущих траекторий агента (например, в виде распределения вероятностей по возможным траекториям) на основании информации о ситуации, доступной на момент прогнозирования.[00070] In accordance with various implementations of the disclosed technology, one way to describe the future movement of an agent is to represent it in terms of probabilities for possible future trajectories agent (for example, in the form of a probability distribution over possible trajectories) based on information about the situation available at the time of forecasting.

[00071] Для практического использования в беспилотном транспортном средстве эти вероятности должны вычисляться с малой задержкой, чтобы прогнозирование можно было быстро изменить на основании новой информации, такой как внезапное изменение ускорения агента, а подсистема планирования беспилотного транспортного средства могла оперативно получать информацию об изменении ситуации. Кроме того, должен быть возможен эффективный доступ к ожидаемым и наиболее вероятным будущим положениям агентов, чтобы подсистема планирования могла использовать эту информацию в режиме реального времени. Кроме того, должен существовать удобный способ количественной оценки будущей неопределенности и возможной мультимодальности.[00071] For practical use in an unmanned vehicle, these probabilities must be calculated with a low delay so that the prediction can be quickly changed based on new information, such as a sudden change in the agent's acceleration, and the planning subsystem of the unmanned vehicle can quickly receive information about the change in the situation. In addition, it must be possible to efficiently access the expected and most probable future positions of agents so that the planning subsystem can use this information in real time. In addition, there should be a convenient way to quantify future uncertainty and possible multimodality.

[00072] Неограничивающие варианты осуществления настоящей технологии направлены на выполнение прогнозирования будущей траектории агента путем ранжирования возможных будущих траекторий на основании показателя, представляющего вероятность того, что агент будет следовать каждой траектории из заданного набора возможных будущих траекторий. Различные реализации раскрытой технологии используют дискриминационный подход, используя для прогнозирования способы машинного обучения на основании показателей в сочетании со способами приблизительного поиска ближайшего соседа. В соответствии с различными реализациями прогнозы траекторий выбираются путем оценки заранее подготовленного словаря (также называемого «библиотека» или «банк») траекторий, например репрезентативного поднабора траекторий агентов, наблюдаемых в реальной жизни системой распознавания беспилотного транспортного средства. Банк траекторий может быть заранее обработан в автономном режиме. Это означает, что во время работы беспилотного транспортного средства объем и сложность вычислений для прогнозирования будущей траектории агента существенно снижены. Во время работы беспилотное транспортное средство кодирует ситуацию, окружающую беспилотное транспортное средство или агента, и выполняет прогнозирование, используя способы приблизительного поиска ближайшего соседа в банке траекторий. Кроме того, в некоторых реализациях при прогнозировании могут использоваться методы оценки Монте-Карло.[00072] Non-limiting embodiments of the present technology are directed to performing agent future trajectory prediction by ranking possible future trajectories based on a metric representing the probability that the agent will follow each trajectory from a given set of possible future trajectories. Various implementations of the disclosed technology use a discriminatory approach, using metric-based machine learning methods in combination with approximate nearest neighbor methods for prediction. According to various implementations, trajectory predictions are selected by evaluating a pre-prepared dictionary (also called a "library" or "bank") of trajectories, such as a representative subset of agent trajectories observed in real life by an unmanned vehicle recognition system. The bank of trajectories can be pre-processed offline. This means that during the operation of an unmanned vehicle, the amount and complexity of calculations for predicting the future trajectory of the agent is significantly reduced. During operation, the unmanned vehicle encodes the situation surrounding the unmanned vehicle or agent and performs prediction using approximate nearest neighbor search methods in the trajectory bank. In addition, in some implementations, Monte Carlo estimation methods may be used in the prediction.

[00073] На Фиг. 3 и 4 показан обзор ситуации, в которой могут использоваться различные реализации раскрытой технологии. В примере, показанном на Фиг. 3, беспилотное транспортное средство 302 (в данном случае беспилотный автомобиль) движется в ситуации 304. Агент 306 (в данном случае пешеход) также движется в ситуации 304. Беспилотное транспортное средство 302 использует различные датчики (например, LIDAR, радар, камеры и т.д. - не показаны) для сбора информации о ситуации, и использует хорошо известные методы, такие как алгоритмы распознавания объектов машинного зрения, для обработки входных данных датчиков для формирования набора карт признаков ситуации, представляющих различные аспекты ситуации. В некоторых реализациях эти карты признаков могут представлять элементы ситуации в виде видов сверху или с высоты птичьего полета. В некоторых реализациях эти карты признаков используют одну и ту же опорную рамку. Например, карты характеристик могут быть сформированы таким образом, чтобы интересующий агент располагался в центре карты во время прогнозирования, а ось Y карты была совмещена с ориентацией агента. Каждая из этих карт признаков представляет некоторый аспект ситуации, такой как местоположение полосы движения или пешеходного перехода, присутствие агента, скорость или ускорение в конкретный момент времени, доступность полосы движения, вызванная состояниями светофоров, и/или другие аспекты, которые могут быть обнаружены с использованием датчиков в беспилотном транспортном средстве 302.[00073] In FIG. 3 and 4 provide an overview of the situation in which various implementations of the disclosed technology may be used. In the example shown in FIG. 3, an unmanned vehicle 302 (in this case, an unmanned vehicle) is moving in situation 304. An agent 306 (in this case, a pedestrian) is also moving in situation 304. Unmanned vehicle 302 uses various sensors (e.g., LIDAR , radar, cameras, etc.). not shown) to gather information about the situation, and uses well-known techniques such as machine vision object recognition algorithms to process sensor inputs to form a set of situation feature maps representing various aspects of the situation. In some implementations, these feature maps may represent the elements of the situation as top or bird's eye views. In some implementations, these feature maps use the same reference frame. For example, feature maps can be generated such that the agent of interest is located in the center of the map during prediction, and the y-axis of the map is aligned with the agent's orientation. Each of these feature maps represents some aspect of the situation, such as the location of a lane or crosswalk, the presence of an agent, speed or acceleration at a particular time, lane availability caused by traffic light conditions, and/or other aspects that can be detected using sensors in the unmanned vehicle 302.

[00074] Карты признаков для аспектов, которые изменяются с течением времени, формируются в течение заданного периода времени. Например, ситуация 304 может быть дискретизирована на протяжении нескольких секунд (например, трех секунд) с фиксированной частотой дискретизации (например, две выборки в секунду). Положения 310, 312, 314 и 316 показаны на Фиг.3 для беспилотного транспортного средства 302 в моменты времени t-3, t-2, t-1, t0, соответственно. Положения 320, 322, 324 и 326 показаны для агента 306 в моменты времени t-3, t-2, t-1, t0, соответственно. Сочетание статической карты признаков и этих зависимых от времени карт признаков может использоваться для представления текущей ситуации с беспилотным транспортным средством.[00074] Feature maps for aspects that change over time are generated over a given period of time. For example, situation 304 can be sampled over several seconds(For example,three seconds) with a fixed sampling rate (for example, two samples per second). Positions 310, 312, 314 and 316 are shown in FIG. 3 for an unmanned vehicle 302 at times t-3,t-2,t-1,t0, respectively. Positions 320, 322, 324 and 326 are shown for agent 306 at times t-3, t-2, t-1, t0, respectively. Combination static feature map and these time dependent feature maps can be used to represent the current situation of the unmanned vehicle.

[00075] Как показано на Фиг. 4, на основании собранной информации вычислительное устройство (не показано), связанное с беспилотным транспортным средством, будет пытаться прогнозировать будущую траекторию агента на протяжении следующих нескольких секунд в модуле 400 прогнозирования траектории агента. Для выполнения этого прогнозирования статическая карта 404 признаков ситуации может быть объединена с зависящими от времени картами 406 признаков ситуации, используя функцию 408 объединения. В некоторых реализациях функция 408 объединения может объединять карту 404 признаков статической ситуации и зависящие от времени карты 406 признаков ситуации, хотя следует понимать, что могут использоваться и другие функции объединения. Сочетание карт признаков ситуации, формируемое функцией 408 объединения, затем используется в качестве входных данных для обученной модели 402 машинного обучения, такой как заранее обученная искусственная нейронная сеть, которая формирует вектор 410 признаков, представляющий текущую ситуацию вблизи беспилотного транспортного средства.[00075] As shown in FIG. 4, based on the collected information, a computing device (not shown) associated with the unmanned vehicle will attempt to predict the agent's future trajectory over the next few seconds in agent trajectory prediction module 400. To perform this prediction, the static situation attribute map 404 can be combined with the time-dependent situation attribute maps 406 using the merge function 408 . In some implementations, the merge function 408 may merge the static situation feature map 404 and the time dependent situation feature maps 406, although it should be understood that other merge functions may be used. The combination of situation feature maps generated by pooling function 408 is then used as input to a trained machine learning model 402, such as a pre-trained artificial neural network, that generates a feature vector 410 representing the current situation in the vicinity of the unmanned vehicle.

[00076] Затем вектор 410 признаков используется для поиска в заранее созданном банке 412 библиотечных векторов 414 признаков, в котором каждый из библиотечных векторов признаков представляет возможную траекторию для агента. В некоторой реализации этот поиск может принимать форму вычисления релевантности набора библиотечных векторов признаков (который может включать в себя все библиотечные векторы признаков) к вектору 410 признаков. В некоторых реализациях этот поиск может быть выполнен с использованием приблизительного поиска K-ближайшего соседа, который может использовать, например, заранее построенный иерархический граф тесного мира, доступный для движения (транспортного средства), такой как описанный в источнике Y. A. Malkov and D. A. Yashunin, “Efficient and robust approximate nearest neighbor search using hierarchical navigable small world graphs,” IEEE Transactions on Pattern Analysis and Machine Intelligence, том 42, №4, стр.824-836, 1 апреля 2020 г.Конечно, следует понимать, что могут быть использованы и другие известные или разработанные позже алгоритмы или способы поиска K-ближайшего соседа, или поиск может быть выполнен с использованием другого известного или разработанного позже алгоритма поиска.[00076] The feature vector 410 is then used to search a pre-created bank 412 of library feature vectors 414, in which each of the library feature vectors represents a possible trajectory for the agent. In some implementation, this search may take the form of calculating the relevance of a set of library feature vectors (which may include all library feature vectors) to feature vector 410. In some implementations, this search may be performed using an approximate K-nearest neighbor search, which may use, for example, a pre-built hierarchical tight-world graph available for movement (vehicle) such as that described in Y. A. Malkov and D. A. Yashunin, “ Efficient and robust approximate nearest neighbor search using hierarchical navigable small world graphs,” IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 42, No. 4, pp. 824-836, April 1, 2020 and other known or later developed K-nearest neighbor search algorithms or methods, or the search may be performed using another known or later search algorithm.

[00077] Этот поиск вектора 410 признаков в заранее созданном банке 412 дает набор оценок 416 релевантности для набора библиотечных векторов признаков. Эти оценки релевантности могут, например, быть основаны на пространственном удалении (например, евклидовом расстоянии) библиотечных векторов признаков от вектора 410 признаков, или на других мерах релевантности. Эти меры релевантности могут, в некоторых реализациях, представлять вероятность того, что агент будет следовать будущей траектории, соответствующей библиотечному вектору признаков. Как только эти оценки релевантности вычислены, наиболее релевантный вектор признаков библиотеки может быть выбран в качестве «результирующего» вектора 418 признаков, и прогнозируемая траектория 420 агента может быть основана на траектории агента, соответствующей результирующему вектору 418 признаков. В некоторых реализациях набор библиотечных векторов признаков может быть ранжирован в соответствии с их оценками релевантности, и это ранжирование может использоваться для выбора результирующего вектора 418 признаков, который будет использован для прогнозирования траектории агента. В некоторых реализациях, в которых оценка релевантности представляет вероятность того, что агент следует траектории, соответствующей библиотечному вектору признаков, для выбора результирующего вектора 418 признаков, который будет использоваться для прогнозирования траектории агента, могут использоваться способы Монте-Карло.[00077] This search of the feature vector 410 in the pre-built bank 412 yields a set of relevance scores 416 for the set of library feature vectors. These relevance scores may, for example, be based on the spatial distance ( eg , Euclidean distance) of the library feature vectors from the feature vector 410, or other measures of relevance. These relevancy measures may, in some implementations, represent the likelihood that an agent will follow a future trajectory corresponding to a library feature vector. Once these relevance scores have been computed, the most relevant library feature vector may be selected as the "outcome" feature vector 418, and the predicted agent trajectory 420 may be based on the agent trajectory corresponding to the resulting feature vector 418. In some implementations, a set of library feature vectors may be ranked according to their relevance scores, and this ranking may be used to select the resulting feature vector 418 to be used to predict the agent's trajectory. In some implementations where the relevance score represents the probability that an agent follows a trajectory corresponding to a library feature vector, Monte Carlo methods may be used to select the resulting feature vector 418 to be used to predict the agent's trajectory.

[00078] Как только результирующий вектор 418 признаков выбран, прогнозирование траектории агента может быть основано на траектории агента из банка траекторий, который соответствует результирующему вектору 418 признаков. В некоторых реализациях результирующий вектор 418 признаков может быть основан на более чем одном из библиотечных векторов признаков, и прогнозируемая траектория 420 агента может быть основана на более чем одной траектории агента из банка траекторий. В некоторых реализациях описанный выше способ прогнозирования может повторяться для каждого интересующего агента, обнаруженного в ситуации. В некоторых реализациях мультимодальность может быть обработана путем расширения модели машинного обучения для формирования мультимодальных выходных данных в виде множества векторов признаков и весовых коэффициентов, а затем сопоставления векторов признаков для каждого режима, при этом результаты, возможно, будут агрегированы по режимам.[00078] Once the resulting feature vector 418 is selected, the agent's trajectory prediction can be based on the agent's trajectory from the trajectory bank that corresponds to the resulting feature vector 418. In some implementations, the resulting feature vector 418 may be based on more than one of the library feature vectors, and the predicted agent trajectory 420 may be based on more than one agent trajectory from the trajectory bank. In some implementations, the prediction method described above may be repeated for each agent of interest found in the situation. In some implementations, multimodality can be handled by extending the machine learning model to generate multimodal output as a set of feature vectors and weights, and then matching the feature vectors for each mode, with the results possibly aggregated by mode.

[00079] Как только прогнозируемая траектория 420 агента подготовлена, прогнозируемая траектория 420 агента может быть отправлена в подсистему 430 планирования, связанную с беспилотным транспортным средством. Подсистема планирования будет учитывать прогнозируемую траекторию для агента при планировании действий беспилотного транспортного средства, и управление беспилотным транспортным средством будет осуществляться в соответствии с этими действиями.[00079] Once the predicted agent trajectory 420 has been prepared, the predicted agent trajectory 420 may be sent to the planning subsystem 430 associated with the unmanned vehicle. The planning subsystem will take into account the predicted trajectory for the agent when planning the actions of the unmanned vehicle, and the control of the unmanned vehicle will be carried out in accordance with these actions.

[00080] Как будет понятно из приведенного выше описания с обращением к Фиг. 3 и 4, прогнозирование траектории агента использует заранее обученную модель машинного обучения, такую как заранее обученная нейронная сеть, для формирования векторов признаков, представляющих текущую ситуацию, на основании карт признаков. Кроме того, в заранее созданном банке траекторий выполняется поиск библиотечных векторов признаков, которые являются релевантными к этим векторам признаков текущей ситуации, причем библиотечные векторы признаков связаны с возможными траекториями для агента. Таким образом, в соответствии с различными реализациями раскрытой технологии используются способ формирования банка траекторий в автономном режиме и модель машинного обучения. Блок-схема такого способа описана с обращением к Фиг. 5.[00080] As will be understood from the above description with reference to FIG. 3 and 4, agent trajectory prediction uses a pretrained machine learning model, such as a pretrained neural network, to generate feature vectors representing the current situation based on feature maps. In addition, the pre-created trajectory bank is searched for library feature vectors that are relevant to these feature vectors of the current situation, the library feature vectors being associated with possible trajectories for the agent. Thus, in accordance with various implementations of the disclosed technology, an offline trajectory bank generation method and a machine learning model are used. A flowchart of such a method is described with reference to FIG. 5.

[00081] Способ 500 разделен на две основных секции: секцию 502 обучения модели машинного обучения; и секцию 504 формирования банка траектории. Секция 502 обучения модели машинного обучения совместно обучает две модели машинного обучения, такие как искусственные нейронные сети, включая первую модель машинного обучения, которая формирует векторы признаков текущей ситуации на основе карт признаков, и вторую модель машинного обучения, которая формирует векторы признаков в том же пространстве признаков, что и векторы признаков, сформированные первой моделью машинного обучения на основании наблюдаемых траекторий агентов. Как описано выше, первая модель машинного обучения используется при управлении беспилотным транспортным средством. Вторая модель машинного обучения используется в автономном режиме при формировании банка траекторий. В некоторых реализациях и первая, и вторая модели машинного обучения могут представлять собой сверточные нейронные сети (CNN).[00081] Method 500 is divided into two main sections: section 502 training machine learning model; and a path bank generation section 504 . The machine learning model training section 502 jointly trains two machine learning models such as artificial neural networks, including a first machine learning model that generates feature vectors of the current situation based on feature maps, and a second machine learning model that generates feature vectors in the same space. features as well as the feature vectors generated by the first machine learning model based on the observed agent trajectories. As described above, the first machine learning model is used in driving an unmanned vehicle. The second machine learning model is used offline when generating a bank of trajectories. In some implementations, both the first and second machine learning models may be Convolutional Neural Networks (CNNs).

[00082] В блоке 510 секции 502 обучения модели машинного обучения принимается набор данных беспилотного транспортного средства, или осуществляется доступ к нему из базы данных. Набор данных беспилотного транспортного средства, как правило, включает в себя большой объем данных, собранных многочисленными беспилотными транспортными средствами за несколько месяцев или даже лет.В некоторых реализациях набор данных включает в себя выборки наблюдений, в которых записаны показания датчиков от таких датчиков, как LIDAR, радар, камеры и т.д., которые связаны с беспилотным транспортным средством. Показания датчиков собираются за период времени, в течение которого работает транспортное средство, и с заданной частотой (например, 10 выборок в секунду).[00082] In block 510 of training section 502 of the machine learning model, a data set of an unmanned vehicle is received or accessed from a database. An unmanned vehicle data set typically includes a large amount of data collected by numerous unmanned vehicles over several months or even years. In some implementations, the data set includes observation samples that record sensor readings from sensors such as LIDAR , radar, cameras, etc. that are associated with an unmanned vehicle. Sensor readings are collected for the period of time during which the vehicle is running and at a given frequency (e.g. 10 samples per second).

[00083] В блоке 512 обучающие данные, включающие в себя обучающие ситуации и обучающие траектории, подготавливаются из набора данных беспилотного транспортного средства. Движущиеся агенты, такие как транспортные средства или пешеходы, которые наблюдались беспилотным транспортным средством в движении в течение более заданного периода времени (например, пяти секунд), используются в качестве целей прогнозирования и их траекторий в течение заданного периода времени (например, пяти секунд), и с заданной частотой выборки (например, пять выборок в секунду) используются в качестве проверочных данных для обучения моделей машинного обучения. Каждая ситуация также включает в себя данные истории за заданный период времени (например, три секунды) до данных, которые будут использоваться в качестве проверочных данных. Ситуации включают в себя данные карты статических признаков ситуации и данные карты признаков, зависящих от времени. В некоторых реализациях данные датчиков будут обрабатываться для формирования данных карты признаков для ситуации в виде видов сверху или с высоты птичьего полета, имеющих соответствующий опорный кадр. В некоторых реализациях этот опорный кадр может помещать цель прогнозирования (то есть агента) в центр данных карты признаков и может ориентировать данные карты признаков таким образом, чтобы ось Y карт была совмещена с ориентацией цели прогнозирования.[00083] In block 512, training data including training situations and training paths is prepared from the unmanned vehicle dataset. Moving agents, such as vehicles or pedestrians, that have been observed by an unmanned vehicle in motion for more than a given period of time (e.g., five seconds) are used as prediction targets and their trajectories over a given period time (for example, five seconds), and at a specified sampling rate (for example, five samples per second) are used as test data for training machine learning models. Each situation also includes historical data for a given period. time (for example, three seconds) to the data to be used as test data. The situations include static situation feature map data and time dependent feature map data. In some implementations, the sensor data will be processed to generate feature map data for the situation in the form of top or bird's eye views having an appropriate reference frame. In some implementations, this reference frame may place the prediction target (ie, the agent) at the center of the feature map data, and may orient the feature map data such that the y-axis of the maps is aligned with the orientation of the prediction target.

[00084] Следует понимать, что подготовка обучающих ситуаций и обучающих траекторий, например, описанная с обращением к блоку 512, может быть выполнена перед выполнением секции 502 обучения модели машинного обучения. Если это так, то блок 512 может быть исключен, и обучающие ситуации и обучающие траектории могут быть приняты, или к ним может быть осуществлен доступ, из базы данных, а не из показаний датчиков, на которых они основаны.[00084] It should be understood that the preparation of training situations and training trajectories, such as described with reference to block 512, may be performed prior to execution of section 502 training of the machine learning model. If so, block 512 may be omitted and training situations and training paths may be received or accessed from the database rather than from the sensors on which they are based.

[00085] В блоке 514 обучающие ситуации и обучающие траектории используются для совместного обучения первой и второй моделей машинного обучения на основании проверочных данных траекторий агента и соответствующих данных ситуации. Обучение выполняется таким образом, что первая модель машинного обучения формирует векторы признаков текущей ситуации на основании карт признаков из данных ситуации, а вторая модель машинного обучения формирует векторы признаков на основании траекторий агентов. Модели машинного обучения обучаются таким образом, что векторы признаков, формируемые первой и второй моделями машинного обучения, находятся в общем скрытом пространстве и будут пространственно близки, если наблюдаемая траектория агента, вводимая во вторую модель машинного обучения, соответствует картам признаков из данной ситуации, которые вводятся в первую модель машинного обучения. Векторы признаков, формируемые первой и второй моделями машинного обучения, будут пространственно далеки, когда такого соответствия нет.[00085] In block 514, training situations and training trajectories are used to jointly train the first and second machine learning models based on the agent trajectory test data and the corresponding situation data. Training is performed in such a way that the first machine learning model generates feature vectors of the current situation based on feature maps from the situation data, and the second machine learning model generates feature vectors based on agent trajectories. Machine learning models are trained in such a way that the feature vectors generated by the first and second machine learning models are in a common latent space and will be spatially close if the observed agent trajectory input to the second machine learning model matches the feature maps from the given situation that are input in the first machine learning model. The feature vectors generated by the first and second machine learning models will be spatially far away when there is no such match.

[00086] В блоке 516 полностью обученная первая модель машинного обучения отправляется или иным образом передается в модуль прогнозирования траектории агентов беспилотного транспортного средства, а полностью обученная вторая модель машинного обучения отправляется или иным образом передается в секцию 504 формирования банка траекторий, как описано ниже.[00086] At block 516, the fully trained first machine learning model is sent or otherwise transmitted to the UAV agent trajectory prediction module, and the fully trained second machine learning model is sent or otherwise transmitted to the trajectory bank generation section 504, as described below.

[00087] В блоке 520 секции 504 формирования банка траекторий наблюдаемые траектории агентов в реальных ситуациях принимаются, или к ним осуществляется доступ (например, из базы данных) секцией 504 формирования банка траекторий. В некоторых реализациях эти траектории агентов основаны на данных датчиков от датчиков на беспилотных транспортных средствах, таких как LIDAR, радар и камеры. В некоторых реализациях снимки камеры, совмещенные с данными LIDAR и радара, охватывают заданный период времени (например, пять секунд) с заданной частотой сбора данных датчиком (например, 10 выборок датчика в секунду).[00087] At block 520 of trajectory bank generation section 504, the observed trajectories of agents in real situations are received or accessed (eg, from a database) by trajectory bank generation section 504. In some implementations, these agent trajectories are based on sensor data from sensors on unmanned vehicles such as LIDAR, radar, and cameras. In some implementations, camera images combined with LIDAR and radar data cover a given time period.(For example,five seconds) with the set frequency of data acquisition by the sensor (e.g. 10 sensor samples per second).

[00088] В блоке 522 осуществляется выборка наблюдаемых траекторий агентов для получения библиотеки траекторий агентов. При выборке из наблюдаемых реальных траекторий агентов каждая из траекторий в библиотеке траекторий агентов будет физически правдоподобной, поскольку тот или иной агент следовал ей по меньшей мере один раз. Это все же сохраняет возможную проблему с чрезмерным представлением в библиотеке траекторий с высокой вероятностью, таких как стационарные траектории или равномерное движение вперед, а также возможное недостаточное представление или исключение необычных траекторий, которые тем не менее должны быть представлены. Для решения этой проблемы в некоторых реализациях выборка может осуществляться сначала путем применения процедуры кластеризации к наблюдаемым траекториям агентов, а затем путем осуществления выборки сначала путем случайного выбора кластера (или указателя кластеров), а затем случайного выбора траектории в выбранном кластере. При применении этого метода кластеризации траектории, имевшие ранее высокую вероятность, не будут отбираться столь часто, что делает индуктированное распределение траекторий из выборки намного ближе к однородному. В некоторых реализациях для кластеризации используется мини-пакетный алгоритм K-средних, такой как описанный в Sculley, D., “Web-scale k-means clustering”, Proceedings of the 19th International Conference on World Wide Web, 1177-1178, 2010, с евклидовым расстоянием в пространстве траекторий. Этот алгоритм кластеризации работает быстро и дает результаты, которые могут достаточно хорошо работать на практике. Следует понимать, что могут использоваться и другие известные алгоритмы кластеризации, такие как кластеризация с полной связью, и они могут обеспечивать более однородные распределения.[00088] In block 522, observed agent trajectories are sampled to obtain a library of agent trajectories. When sampled from observed real agent trajectories, each of the trajectories in the agent trajectory library will be physically plausible, since this or that agent followed it at least once. This still saves the possible problem of over-representing high probability trajectories in the library, such as stationary trajectories or uniform forward motion, as well as the possible under-representation or exclusion of unusual trajectories that should nonetheless be represented. To solve this problem, some implementations may sample first by applying a clustering procedure to the observed agent trajectories, and then by sampling first by randomly selecting a cluster (or an index of clusters) and then randomly selecting a trajectory in the selected cluster. With this clustering method, trajectories that previously had a high probability will not be sampled as often, making the induced distribution of trajectories from the sample much closer to uniform. Some implementations use a mini-batch K-means algorithm for clustering, such as that described in Sculley, D., “Web-scale k-means clustering”, Proceedings of the 19th International Conference on World Wide Web, 1177-1178, 2010, with Euclidean distance in the space of trajectories. This clustering algorithm is fast and produces results that can work quite well in practice. It should be understood that other known clustering algorithms, such as fully connected clustering, may be used and may provide more uniform distributions.

[00089] В блоке 524 библиотечный вектор признаков траекторий формируется для каждой из траекторий в библиотеке траекторий агентов. В некоторых реализациях это выполняется с использованием обученной модели машинного обучения, такой как обученная искусственная нейронная сеть, которая была обучена и обеспечена секцией 502 обучения модели машинного обучения, описанной выше. Как обсуждалось выше, эта модель машинного обучения обучена для формирования вектора признаков при наличии введенной траектории. Библиотечные векторы признаков траекторий связаны с траекториями агентов, на основании которых они были сформированы.[00089] In block 524, a library trajectory feature vector is generated for each of the trajectories in the agent trajectory library. In some implementations, this is done using a trained machine learning model, such as a trained artificial neural network that has been trained and provided by the training section 502 of the machine learning model described above. As discussed above, this machine learning model is trained to generate a feature vector given an input trajectory. The library vectors of trajectory signs are associated with the trajectories of the agents on the basis of which they were formed.

[00090] В блоке 526 выполняется сбор библиотечных векторов признаков траекторий для формирования банка траекторий библиотечных векторов признаков. В некоторых реализациях это может быть сделано путем формирования указателя библиотечных векторов признаков, что значительно ускорит поиск библиотечных векторов признаков при использовании банка траекторий. Поскольку в процессе поиска будет выполняться поиск библиотечных векторов признаков, которые пространственно близки к целевому вектору, представляющему текущую ситуацию для беспилотного транспортного средства, одной структурой, которая может использоваться для упомянутого указателя, является граф близости. Как хорошо известно специалистам в данной области техники, граф близости представляет собой граф, в котором две вершины соединены ребром, если вершины пространственно близки друг к другу с использованием заданной метрики расстояния. В соответствии с некоторыми реализациями, одним из хорошо известных типов графа близости является иерархический граф тесного мира, доступный для движения. Способы построения такого графа и его использования для выполнения приближенного поиска K-ближайшего соседа описаны, например, в публикации Malkov и Yashunin, ссылка на которую приведена выше. Следует понимать, что также могут использоваться и другие известные или разработанные позже способы формирования указателя и/или другие способы формирования указателя, основанные на графах близости.[00090] In block 526, library trajectory feature vectors are collected to form a library trajectory feature vector trajectory bank. In some implementations, this can be done by generating an index of library feature vectors, which will significantly speed up the search for library feature vectors when using the trajectory bank. Since the search will search for library feature vectors that are spatially close to the target vector representing the current situation for the unmanned vehicle, one structure that can be used for said pointer is a proximity graph. As is well known to those skilled in the art, a proximity graph is a graph in which two vertices are connected by an edge if the vertices are spatially close to each other using a given distance metric. According to some implementations, one of the well-known types of proximity graph is a hierarchical moveable close-world graph. Methods for constructing such a graph and using it to perform an approximate search for the K-nearest neighbor are described, for example, in the publication by Malkov and Yashunin, the link to which is given above. It should be understood that other well-known or later developed index generation methods and/or other proximity graph-based index generation methods may also be used.

[00091] В блоке 528 банк траекторий отправляется или иным образом передается в модуль прогнозирования траектории агентов беспилотного транспортного средства. Модуль прогнозирования траектории агентов обычно выполняется на вычислительном устройстве, связанном с беспилотным транспортным средством, и он описан ниже с обращением к Фиг. 6.[00091] At block 528, the trajectory bank is sent to or otherwise transmitted to the agent trajectory prediction module of the unmanned vehicle. The agent trajectory prediction module is typically executed on the computing device associated with the unmanned vehicle and is described below with reference to FIG. 6.

[00092] Следует понимать, что секция 502 обучения модели машинного обучения и секция 504 формирования банка траекторий могут выполняться «в автономном режиме» на сервере или другом вычислительном устройстве перед использованием обученной модели машинного обучения и/или банка траекторий, которые они формируют при использовании на беспилотном транспортном средстве. Кроме того, секция 502 обучения модели машинного обучения и секция 504 формирования банка траекторий могут выполняться на разных вычислительных устройствах и в разное время.[00092] It should be understood that the machine learning model training section 502 and the path bank generation section 504 may be performed "offline" on a server or other computing device prior to using the trained machine learning model and/or the path bank they generate when used on unmanned vehicle. In addition, the machine learning model training section 502 and the path bank generation section 504 may be executed on different computing devices and at different times.

[00093] Поскольку набор траекторий фиксирован заранее, его можно ограничить, чтобы он содержал только физически правдоподобные траектории агентов. Это может упростить задачу моделирования для моделей машинного обучения и предотвратить формирование совершенно неверных прогнозов в областях проблемного пространства, в которых качество прогнозирования является низким. В некоторых реализациях набор траекторий может быть обогащен траекториями, соответствующими сложным маневрам, таким образом гарантируя, что такие маневры могут быть спрогнозированы и обработаны.[00093] Since the set of trajectories is fixed in advance, it can be limited to contain only physically plausible agent trajectories. This can simplify the modeling task for machine learning models and prevent completely wrong predictions from being made in areas of the problem space where prediction quality is poor. In some implementations, the set of trajectories may be enriched with trajectories corresponding to complex maneuvers, thus ensuring that such maneuvers can be predicted and processed.

[00094] Кроме того, путем создания банка траекторий с указателем можно выполнять прогнозирование путем оценки потенциальных решений. В вычислительном отношении это намного проще, чем формирование прогноза с нуля. Таким образом, формулируя задачу прогнозирования траекторий агентов как задачу оценки, можно повысить качество прогнозирования при сохранении малой задержки, связанной с выполнением прогнозов.[00094] In addition, by creating a bank of trajectories with a pointer, it is possible to perform prediction by evaluating potential solutions. Computationally, this is much easier than generating a forecast from scratch. Thus, by formulating the problem of predicting the trajectories of agents as an estimation problem, it is possible to improve the quality of forecasting while maintaining a small delay associated with the implementation of forecasts.

[00095] На Фиг. 6 показана блок-схема способа 600 прогнозирования траекторий агента в соответствии с различными реализациями раскрытой технологии. В некоторых реализациях способ 600 реализован в виде модуля прогнозирования траектории агентов, выполняемого на вычислительном устройстве, связанном с беспилотным транспортным средством.[00095] In FIG. 6 shows a flowchart of a method 600 for predicting agent trajectories in accordance with various implementations of the disclosed technology. In some implementations, method 600 is implemented as an agent trajectory prediction module running on a computing device associated with an unmanned vehicle.

[00096] В блоке 602 принимаются данные датчиков от датчиков, связанных с беспилотным транспортным средством. Данные датчиков могут включать в себя данные от датчиков, таких как LIDAR, радар, камеры, и других датчиков, используемых в беспилотном транспортном средстве, и могут представлять текущую ситуацию вблизи беспилотного транспортного средства в течение заданного периода времени перед прогнозированием траектории агента.[00096] At block 602, sensor data is received from sensors associated with the unmanned vehicle. The sensor data may include data from sensors such as LIDAR, radar, cameras, and other sensors used in the unmanned vehicle and may represent the current situation in the vicinity of the unmanned vehicle for a predetermined period of time before predicting the agent's trajectory.

[00097] В блоке 604 данные датчиков обрабатываются для формирования данных карты признаков для ситуации в виде видов сверху или с высоты птичьего полета, имеющих соответствующий опорный кадр. В некоторых реализациях этот опорный кадр может помещать агента, для которого создается прогноз траектории, в центр данных карты признаков (например, используя центр ограничивающей рамки для агента в качестве центра карт признаков) и может ориентировать данные карты признаков таким образом, чтобы ось Y карт была совмещена с ориентацией агента.[00097] In block 604, the sensor data is processed to generate feature map data for the situation in the form of top or bird's eye views having an appropriate reference frame. In some implementations, this reference frame may place the agent for which the trajectory is being generated at the center of the feature map data (e.g., using the center of the agent's bounding box as the center of the feature maps) and may orient the feature map data so that the map's y-axis is aligned with the agent's orientation.

[00098] В блоке 606 вектор признаков, представляющий текущую ситуацию, формируется на основании данных карты признаков для ситуации. В некоторых реализациях это может быть сделано с использованием заранее обученной модели машинного обучения, такой как искусственная нейронная сеть, которая сопоставляет данные карты признаков для ситуации с вектором признаков. Эта заранее обученная модель машинного обучения может быть обучена и обеспечена секцией 502 обучения модели машинного обучения, описанной выше с обращением к Фиг. 5.[00098] In block 606, a feature vector representing the current situation is generated based on the feature map data for the situation. In some implementations, this can be done using a pre-trained machine learning model such as an artificial neural network that maps feature map data to a feature vector situation. This pre-trained machine learning model may be trained and provided by the training section 502 of the machine learning model described above with reference to FIG. 5.

[00099] В блоке 608 в заранее созданном банке траекторий библиотечных векторов 414 признаков, в котором каждый из библиотечных векторов признаков представляет возможную траекторию для агента, выполняется поиск векторов признаков, которые относятся к вектору признаков, представляющему текущую ситуацию. В некоторых реализациях это может принимать форму вычисления оценки релевантности для набора библиотечных векторов признаков. В некоторых реализациях поиск может быть выполнен с использованием приблизительного поиска K-ближайшего соседа, в котором может быть использован, например, заранее построенный иерархический граф тесного мира, доступный для движения (транспортного средства) такой как описанный в публикации Malkov и Yashunin, ссылка на которую приведена выше. Следует понимать, что могут быть использованы другие известные или разработанные позже алгоритмы или способы поиска K-ближайшего соседа, или поиск может быть выполнен с использованием другого известного или разработанного позже алгоритма сопоставления или поиска.[00099] At block 608, a pre-built library feature vector trajectory bank 414, in which each of the library feature vectors represents a possible trajectory for the agent, is searched for feature vectors that are related to the feature vector representing the current situation. In some implementations, this may take the form of calculating a relevance score for a set of library feature vectors. In some implementations, the search may be performed using an approximate K-nearest neighbor search, which may use, for example, a pre-built hierarchical cramped-world graph available for movement (vehicle) such as that described in Malkov and Yashunin, referenced above. It should be understood that other known or later developed K-nearest neighbor search algorithms or methods may be used, or the search may be performed using another known or later matching or search algorithm.

[000100] Этот поиск может сформировать набор оценок релевантности для набора библиотечных векторов признаков. Эти оценки релевантности могут, например, быть основаны на пространственном расстоянии между библиотечными векторами признаков и вектором признаков, представляющих текущую ситуацию, или на других мерах релевантности. После того, как эти оценки релевантности вычислены, в качестве результирующего вектора признаков можно выбрать наиболее релевантный библиотечный вектор признаков. В некоторых реализациях набор библиотечных векторов признаков может быть ранжирован в соответствии с их оценками релевантности, образуя ранжированный список. Этот ранжированный список может использоваться для выбора результирующего вектора признаков, который будет использоваться для прогнозирования траектории агента.[000100] This search may generate a set of relevance scores for a set of library feature vectors. These relevance scores may, for example, be based on the spatial distance between the library feature vectors and the feature vector representing the current situation, or other measures of relevance. Once these relevance scores have been computed, the most relevant library feature vector can be selected as the resulting feature vector. In some implementations, a set of library feature vectors may be ranked according to their relevance scores, forming a ranked list. This ranked list can be used to select the resulting feature vector to be used to predict the agent's trajectory.

[000101] В блоке 610 траектория агента прогнозируется на основании траектории агента из банка траекторий, который соответствует результирующему вектору признаков. В некоторых реализациях способ прогнозирования, описанный выше, может повторяться для каждого интересующего агента, который обнаруживается вблизи беспилотного транспортного средства.[000101] In block 610, the agent's trajectory is predicted based on the agent's trajectory from the trajectory bank that corresponds to the resulting feature vector. In some implementations, the prediction method described above may be repeated for each agent of interest that is found in the vicinity of the unmanned vehicle.

[000102] В блоке 612 прогнозируемая траектория может быть отправлена в подсистему планирования, связанную с беспилотным транспортным средством. В некоторых реализациях подсистема планирования выполняется на том же вычислительном устройстве, что и модуль прогнозирования траектории агентов. Подсистема планирования учитывает прогнозируемую траекторию для агента при планировании действий беспилотного транспортного средства. В блоке 614 осуществляется управление беспилотным транспортным средством в соответствии с этими запланированными действиями.[000102] At block 612, the predicted trajectory may be sent to a planning subsystem associated with the unmanned vehicle. In some implementations, the planning subsystem runs on the same computing device as the agent trajectory prediction module. The planning subsystem takes into account the predicted trajectory for the agent when planning the actions of an unmanned vehicle. At block 614, the unmanned vehicle is controlled in accordance with these planned actions.

[000103] Специалистам в данной области техники могут стать очевидными модификации и усовершенствования вышеописанных реализаций настоящей технологии. Вышеприведенное описание предназначено для того, чтобы быть примерным, а не ограничивающим. Поэтому предполагается, что объем настоящей технологии ограничен лишь объемом прилагаемой формулы изобретения. [000103] Modifications and improvements to the above-described implementations of the present technology may become apparent to those skilled in the art. The above description is intended to be exemplary and not limiting. Therefore, it is intended that the scope of the present technology be limited only by the scope of the appended claims.

Claims (59)

1. Способ управления беспилотным транспортным средством, причем способ содержит этапы, на которых:1. A method for controlling an unmanned vehicle, the method comprising the steps of: прогнозируют посредством вычислительного устройства, связанного с беспилотным транспортным средством, траекторию агента вблизи беспилотного транспортного средства путем:by means of a computing device associated with the unmanned vehicle, the trajectory of the agent near the unmanned vehicle is predicted by: приема данных датчика, указывающих на текущую ситуацию вблизи беспилотного транспортного средства, от датчика, связанного с беспилотным транспортным средством;receiving sensor data indicative of a current situation in the vicinity of the unmanned vehicle from a sensor associated with the unmanned vehicle; формирования вектора признаков текущей ситуации по меньшей мере частично на основании данных датчика;generating a feature vector of the current situation based at least in part on the sensor data; поиска в заранее созданном банке библиотечных векторов признаков для идентификации результирующего вектора признаков из заранее созданного банка, который наиболее релевантен вектору признаков текущей ситуации, при этом каждый библиотечный вектор признаков в заранее созданном банке связан с наблюдаемой траекторией; иsearching the pre-built library feature vector bank to identify the resulting feature vector from the pre-built bank that is most relevant to the current situation feature vector, each library feature vector in the pre-built bank being associated with an observed trajectory; And прогнозирования траектории агента по меньшей мере частично на основании результирующего вектора признаков;predicting the agent's trajectory at least in part based on the resulting feature vector; планирования посредством вычислительного устройства действия беспилотного транспортного средства по меньшей мере частично на основании прогнозируемой траектории агента;planning, by means of the computing device, the action of the unmanned vehicle based at least in part on the predicted trajectory of the agent; иAnd управляют беспилотным транспортным средством согласно запланированному действию.control the unmanned vehicle according to the planned action. 2. Способ по п. 1, в котором формирование вектора признаков текущей ситуации содержит использование заранее обученной нейронной сети для формирования вектора признаков текущей ситуации.2. The method according to claim. 1, in which the generation of the vector of features of the current situation contains the use of a pre-trained neural network to generate a vector of features of the current situation. 3. Способ по п. 2, в котором использование заранее обученной нейронной сети содержит этап, на котором обеспечивают карту признаков, представляющую ракурсы вида с высоты птичьего полета текущей ситуации вблизи беспилотного транспортного средства, по меньшей мере частично на основании данных датчика в качестве входных данных для заранее обученной нейронной сети.3. The method of claim 2, wherein using the pretrained neural network comprises providing a feature map representing bird's eye view angles of the current situation in the vicinity of the unmanned vehicle based at least in part on sensor data as input. for a pretrained neural network. 4. Способ по п. 3, в котором карта признаков центрирована на агенте и имеет ориентацию, основанную на ориентации агента.4. The method of claim 3, wherein the feature map is agent-centered and has an orientation based on the agent's orientation. 5. Способ по п. 1, в котором поиск в заранее созданном банке библиотечных векторов признаков содержит этап, на котором выполняют приблизительный поиска ближайшего соседа.5. The method of claim 1, wherein the search in a pre-created library feature vector bank comprises the step of performing an approximate nearest neighbor search. 6. Способ по п. 5, в котором заранее созданный банк библиотечных векторов признаков включает в себя указатель на основании иерархического графа тесного мира, доступного для движения, и в котором выполнение приблизительного поиска ближайшего соседа содержит этап, на котором выполняют обход иерархического графа тесного мира, доступного для движения.6. The method of claim 5, wherein the pre-created library feature vector bank includes a pointer based on a hierarchical cramped world graph available for movement, and wherein performing an approximate nearest neighbor search comprises traversing the hierarchical cramped world graph. available for movement. 7. Способ по п. 1, в котором результирующий вектор признаков содержит библиотечный вектор признаков, который наиболее близок к вектору признаков текущей ситуации.7. The method of claim. 1, wherein the resulting feature vector contains a library feature vector that is closest to the feature vector of the current situation. 8. Способ по п. 1, в котором поиск в заранее созданном банке библиотечных векторов признаков содержит этап, на котором формируют ранжированный список векторов признаков из заранее созданного банка.8. The method according to claim. 1, in which the search in a pre-created bank of library feature vectors includes the step of generating a ranked list of feature vectors from a pre-created bank. 9. Способ по п. 8, в котором формирование ранжированного списка векторов признаков содержит этап, на котором ранжируют библиотечные векторы признаков по меньшей мере частично на основании меры релевантности библиотечных векторов признаков к вектору признаков текущей ситуации.9. The method of claim 8, wherein generating the ranked list of feature vectors comprises ranking the library feature vectors at least in part based on a measure of relevance of the library feature vectors to the current situation feature vector. 10. Способ формирования банка библиотечных векторов признаков для использования при прогнозировании траектории агента вблизи используемого беспилотного транспортного средства, причем способ содержит этапы, на которых:10. A method for generating a bank of library feature vectors for use in predicting the trajectory of an agent near a used unmanned vehicle, the method comprising the steps of: принимают на сервере множество выборок наблюдений, причем каждая выборка наблюдений получена датчиком на беспилотном транспортном средстве, собирающем данные, причем каждая выборка наблюдений включает в себя данные о траектории наблюдаемого агента вблизи беспилотного транспортного средства, собирающего данные, в течение заданного периода времени;receiving at the server a plurality of observation samples, each observation sample received by a sensor on the data-acquiring unmanned vehicle, each observation sample including trajectory data of an observed agent in the vicinity of the data-acquiring unmanned vehicle for a predetermined period of time; осуществляют выборку на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов;sampling on the server at least the first part of the plurality of observation samples to obtain a library of agent trajectories; формируют на сервере библиотечный вектор признаков для каждой траектории в библиотеке траекторий агентов;forming on the server a library feature vector for each trajectory in the agent trajectory library; собирают на сервере банк библиотечных векторов признаков по меньшей мере частично на основании библиотечных векторов признаков иcollecting on the server a bank of library feature vectors based at least in part on the library feature vectors, and отправляют банк библиотечных векторов признаков на вычислительное устройство, связанное с используемым беспилотным транспортным средством.sending the bank of library feature vectors to a computing device associated with the unmanned vehicle being used. 11. Способ по п. 10, в котором осуществление выборки на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов содержит этапы, на которых:11. The method according to claim 10, wherein sampling at the server at least the first part of the plurality of observation samples to obtain a library of agent trajectories comprises the steps of: кластеризуют траектории агентов по меньшей мере из первой части множества выборок наблюдений во множество кластеров, причем каждый кластер во множестве кластеров содержит аналогичные траектории агентов;clustering agent trajectories from at least a first part of the plurality of observation samples into a plurality of clusters, each cluster in the plurality of clusters containing similar agent trajectories; выбирают случайным образом кластер из множества кластеров иrandomly choose a cluster from a set of clusters and выбирают случайным образом траекторию агента из выбранного кластера.randomly choose the trajectory of the agent from the selected cluster. 12. Способ по п. 10, в котором сборка на сервере банка библиотечных векторов признаков дополнительно содержит этап, на котором формируют указатель библиотечных векторов признаков в банке библиотечных векторов признаков.12. The method of claim 10, wherein assembling the library feature vector bank at the server further comprises generating an index of the library feature vectors in the library feature vector bank. 13. Способ по п. 12, в котором формирование указателя библиотечных векторов признаков содержит этап, на котором формируют граф близости библиотечных векторов признаков.13. The method of claim 12, wherein generating the library feature vector index comprises generating a proximity graph of the library feature vectors. 14. Способ по п. 13, в котором граф близости содержит иерархический граф тесного мира, доступный для движения.14. The method of claim 13, wherein the proximity graph comprises a hierarchical close-world graph available for movement. 15. Способ по п. 10, в котором формирование на сервере библиотечного вектора признаков для каждой траектории в библиотеке траекторий агентов содержит этап, на котором используют нейронную сеть для формирования библиотечного вектора признаков из каждой траектории в библиотеке траекторий агентов.15. The method of claim 10, wherein generating on the server a library feature vector for each trajectory in the agent trajectory library comprises using a neural network to generate a library feature vector from each trajectory in the agent trajectory library. 16. Способ по п. 10, в котором каждая выборка наблюдений дополнительно включает в себя данные о ситуации, окружающей наблюдаемого агента, и при этом способ дополнительно содержит этапы, на которых:16. The method of claim 10, wherein each sample of observations further includes data about a situation surrounding the agent being observed, and wherein the method further comprises: используют по меньшей мере вторую часть множества выборок наблюдений для обучения первой нейронной сети для формирования первых векторов признаков на основании входных данных ситуаций, окружающих наблюдаемых агентов; иusing at least a second part of the plurality of observation samples to train the first neural network to generate first feature vectors based on input data from situations surrounding the observed agents; And используют по меньшей мере вторую часть множества выборок наблюдений для совместного обучения второй нейронной сети для формирования вторых векторов признаков на основании входных данных траекторий наблюдаемых агентов; иusing at least a second part of the plurality of observation samples to jointly train the second neural network to generate second feature vectors based on the input data of the trajectories of the observed agents; And при этом первые векторы признаков и вторые векторы признаков будут близкими, если траектория наблюдаемого агента соответствует ситуации, окружающей этого наблюдаемого агента.in this case, the first feature vectors and the second feature vectors will be close if the trajectory of the observed agent corresponds to the situation surrounding this observed agent. 17. Сервер, содержащий:17. Server containing: процессор;CPU; память, соединенную с процессором, причем память содержит запрограммированные команды, которые при выполнении процессором побуждают процессор:memory coupled to the processor, the memory containing programmed instructions which, when executed by the processor, cause the processor to: осуществлять доступ на сервере к множеству выборок наблюдений, причем каждая выборка наблюдений собрана датчиком в беспилотном транспортном средстве, собирающем данные, причем каждая выборка наблюдений включает в себя данные о траектории наблюдаемого агента вблизи беспилотного транспортного средства, собирающего данные, в течение заданного периода времени;access at the server a plurality of observation samples, each observation sample collected by a sensor in the data collecting unmanned vehicle, each observation sample including data about the trajectory of the observed agent in the vicinity of the data collecting unmanned vehicle for a predetermined period of time; осуществлять выборку на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов;fetch at the server at least a first portion of the plurality of observation samples to obtain a library of agent trajectories; формировать на сервере библиотечный вектор признаков для каждой траектории в библиотеке траекторий агентов;form on the server a library feature vector for each trajectory in the agent trajectory library; собирать на сервере банк библиотечных векторов признаков по меньшей мере частично на основании библиотечных векторов признаков; иcollect on the server a bank of library feature vectors based at least in part on the library feature vectors; And передавать банк библиотечных векторов признаков на вычислительное устройство, связанное с беспилотным транспортным средством.transfer the bank of library feature vectors to the computing device associated with the unmanned vehicle. 18. Сервер по п. 17, в котором память содержит запрограммированные команды, которые при выполнении процессором побуждают процессор осуществлять выборку на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов путем:18. The server of claim 17, wherein the memory contains programmed instructions that, when executed by the processor, cause the processor to fetch at the server at least a first portion of the plurality of observation samples to obtain a library of agent trajectories by: кластеризации траекторий агентов по меньшей мере из первой части множества выборок наблюдений во множество кластеров, причем каждый кластер во множестве кластеров содержит аналогичные траектории агентов;clustering agent trajectories from at least a first portion of the plurality of observation samples into a plurality of clusters, each cluster in the plurality of clusters containing similar agent trajectories; случайного выбора кластера из множества кластеров иrandom selection of a cluster from a set of clusters and случайного выбора траектории агента из выбранного кластера.random choice of the agent's trajectory from the selected cluster. 19. Беспилотное транспортное средство, содержащее:19. Unmanned vehicle, containing: по меньшей мере один датчик;at least one sensor; вычислительное устройство, включающее в себя процессор и память, причем память сохраняет запрограммированные команды, которые при выполнении процессором побуждают вычислительное устройство:a computing device including a processor and a memory, the memory storing programmed instructions which, when executed by the processor, cause the computing device to: прогнозировать траекторию агента вблизи беспилотного транспортного средства путем:predict the trajectory of an agent near an unmanned vehicle by: приема данных датчика, указывающих на текущую ситуацию вблизи беспилотного транспортного средства, от по меньшей мере одного датчика;receiving sensor data indicative of a current situation in the vicinity of the unmanned vehicle from at least one sensor; формирования вектора признаков текущей ситуации по меньшей мере частично на основании данных датчика;generating a feature vector of the current situation based at least in part on the sensor data; поиска в заранее созданном банке библиотечных векторов признаков для идентификации результирующего вектора признаков из заранее созданного банка, который наиболее релевантен к вектору признаков текущей ситуации, при этом каждый библиотечный вектор признаков в заранее созданном банке связан с наблюдаемой траекторией; иsearching the pre-built library feature vector bank to identify the resulting feature vector from the pre-built bank that is most relevant to the current situation feature vector, each library feature vector in the pre-built bank being associated with an observed trajectory; And прогнозирования траектории агента по меньшей мере частично на основании результирующего вектора признаков;predicting the agent's trajectory based at least in part on the resulting feature vector; планирования действия беспилотного транспортного средства по меньшей мере частично на основании прогнозируемой траектории агента;planning the action of the unmanned vehicle based at least in part on the predicted trajectory of the agent; иAnd управлять беспилотным транспортным средством согласно запланированному действию.drive the unmanned vehicle according to the planned action. 20. Беспилотное транспортное средство по п. 19, содержащее беспилотный автомобиль.20. Unmanned vehicle according to claim 19, containing an unmanned vehicle.
RU2021115369A 2021-05-28 2021-05-28 Method for predicting the trajectory of an agent near an unmanned vehicle based on the ranking RU2800694C2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP22154048.7A EP4095812A1 (en) 2021-05-28 2022-01-28 Method for predicting a trajectory of an agent in a vicinity of a self-driving vehicle based on ranking
US17/667,854 US20220388532A1 (en) 2021-05-28 2022-02-09 Method for predicting a trajectory of an agent in a vicinity of a self-driving vehicle based on ranking

Publications (2)

Publication Number Publication Date
RU2021115369A RU2021115369A (en) 2022-11-28
RU2800694C2 true RU2800694C2 (en) 2023-07-26

Family

ID=

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9911346B2 (en) * 2016-02-04 2018-03-06 Proxy Technologies, Inc. Unmanned vehicle, system and method for correcting a trajectory of an unmanned vehicle
RU2699177C2 (en) * 2014-06-12 2019-09-03 Тераби С.А.С. Dynamic tracking system and automatic control method using three-dimensional time-of-flight cameras
CN111114543B (en) * 2020-03-26 2020-07-03 北京三快在线科技有限公司 Trajectory prediction method and device
US20210150350A1 (en) * 2019-11-15 2021-05-20 Waymo Llc Agent trajectory prediction using vectorized inputs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2699177C2 (en) * 2014-06-12 2019-09-03 Тераби С.А.С. Dynamic tracking system and automatic control method using three-dimensional time-of-flight cameras
US9911346B2 (en) * 2016-02-04 2018-03-06 Proxy Technologies, Inc. Unmanned vehicle, system and method for correcting a trajectory of an unmanned vehicle
US20210150350A1 (en) * 2019-11-15 2021-05-20 Waymo Llc Agent trajectory prediction using vectorized inputs
CN111114543B (en) * 2020-03-26 2020-07-03 北京三快在线科技有限公司 Trajectory prediction method and device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YURIY BIKTAIROV ET AL: "PRANK: motion Prediction based on RANKing", согласно ARXIV.ORG опубл. 22.10.2020, доступ: https://arxiv.org/abs/2010.12007v1 (дата обращения 03.05.2023). *

Similar Documents

Publication Publication Date Title
US11433902B2 (en) Methods and systems for computer-based determining of presence of dynamic objects
US12205030B2 (en) Object detection and property determination for autonomous vehicles
JP7239703B2 (en) Object classification using extraterritorial context
US20220026232A1 (en) System and method for precision localization and mapping
JP7256758B2 (en) LIDAR positioning with time smoothing using RNN and LSTM in autonomous vehicles
JP7086111B2 (en) Feature extraction method based on deep learning used for LIDAR positioning of autonomous vehicles
JP7060625B2 (en) LIDAR positioning to infer solutions using 3DCNN network in self-driving cars
CN112904370B (en) Object Detection Methods for LiDAR Perception
US20180349746A1 (en) Top-View Lidar-Based Object Detection
US20220388547A1 (en) Method for training a machine learning algorithm for predicting an intent parameter for an object on a terrain
EP4095812A1 (en) Method for predicting a trajectory of an agent in a vicinity of a self-driving vehicle based on ranking
RU2743895C2 (en) Methods and systems for computer to determine presence of objects
CN116880462B (en) Automatic driving model, training method, automatic driving method and vehicle
EP4064127A1 (en) Methods and electronic devices for detecting objects in surroundings of a self-driving car
WO2024093321A1 (en) Vehicle position acquiring method, model training method, and related device
CN116776151A (en) Automatic driving model capable of performing autonomous interaction with outside personnel and training method
CN115214708A (en) Vehicle intention prediction method and related device thereof
US12154346B2 (en) Estimating object uncertainty using a pre-non-maximum suppression ensemble
RU2800694C2 (en) Method for predicting the trajectory of an agent near an unmanned vehicle based on the ranking
EP4231044A1 (en) Object detection and state estimation from deep learned per-point radar representations
US11878684B2 (en) System and method for trajectory prediction using a predicted endpoint conditioned network
US12230021B2 (en) System and method for feature visualization in a convolutional neural network
RU2808469C2 (en) Method of controlling robotic vehicle
RU2810934C2 (en) Method for training machine learning algorithm for predicting intent parameter for object on ground for use in unmanned vehicles
EP4517369A1 (en) Systems and methods for processing selected portions of radar data