Область техники, к которой относится изобретение
[0001] Настоящая технология относится к реализуемым компьютером способам и системам для управления беспилотным транспортным средством, и более конкретно к способам и системам для прогнозирования траектории агента, такого как пешеход или управляемое человеком транспортное средство, вблизи беспилотного транспортного средства.
Уровень техники
[0002] Беспилотные транспортные средства представляют собой транспортные средства, которые могут автономно двигаться по частным и/или общественным местам. Используя систему датчиков, которые обнаруживают местоположение и/или окружение транспортного средства, логика внутри транспортного средства или связанная с ним управляет скоростью, силовой установкой, торможением и рулевым управлением транспортного средства на основании обнаруживаемого датчиком местоположения и окружения беспилотного транспортного средства.
[0003] В беспилотном транспортном средстве могут использоваться различные системы датчиков, такие как, не ограничиваясь, системы камер, радарные системы и системы LIDAR. Различные системы датчиков могут использоваться для сбора различной информации и/или информации в различных форматах о местоположении и окружении беспилотного транспортного средства. Например, системы камер могут использоваться для сбора данных изображения об окружении беспилотного транспортного средства. В другом примере системы LIDAR могут использоваться для получения данных облака точек для построения трехмерных картографических представлений окружения и других потенциальных объектов, расположенных вблизи беспилотного транспортного средства.
[0004] Одна из проблем, связанных с управлением беспилотным транспортным средством, состоит в правильном прогнозирование движения агентов, таких как пешеходы или транспортные средства, управляемые человеком. Общая безопасность движения и комфорт пассажира могут непосредственно зависеть от способности к точному выполнению такого прогнозирования. Если такое прогнозирование является неверным, возможно, что это может привести к резким маневрам или даже к столкновению.
[0005] Проблема прогнозирования движения также остается одной из самых сложных проблем в разработках, связанных с автономным управлением, в основном из-за высокой вариативности возможного будущего поведения агента с учетом текущей ситуации на момент прогнозирования. Двумя явлениями, ответственными за вариативность, являются мультимодальность, вызванная неопределенностью намерения агента (например, повернуть направо или двигаться вперед) и неопределенность в реализации определенного намерения (например, в какую полосу движения следует повернуть).
[0006] Чтобы быть полезной в процессе автономного управления в реальном времени, система прогнозирования движения должна обеспечивать эффективные способы описания и количественной оценки этой неопределенности, такие как вычисление наиболее вероятных траекторий для агента и их вероятностей или оценка относительной вероятности для определенной траектории. Она также не должна уделять особого внимания физически невозможным траекториям, поскольку они могут в некотором смысле запутать систему, обрабатывающую прогнозы.
Раскрытие изобретения
[0007] Реализации раскрытой технологии прогнозируют движение агентов, таких как пешеходы и транспортные средства, управляемые человеком, вблизи беспилотного транспортного средства. Такие прогнозы следует делать с малой задержкой и избегать прогнозирования неправдоподобных траекторий агентов. В соответствии с различными реализациями раскрытой технологии это достигается за счет использования заранее созданного банка траекторий, содержащего векторы признаков, которые связаны с ранее наблюдавшимися траекториями агентов. Беспилотное транспортное средство собирает данные датчиков, указывающие на текущую ситуацию вблизи беспилотного транспортного средства. Эти данные датчиков используются для формирования данных ситуации, которые отображаются на вектор признаков, указывающий на текущую ситуацию. Затем в заранее созданном банке траекторий выполняется поиск векторов признаков, которые являются релевантными (например, будучи пространственно близкими) к вектору признаков, представляющему текущую ситуацию, и траектория, связанная с соответствующим вектором признаков из банка траекторий, используется для прогнозирования траектории агента.
[0008] Поскольку прогнозируемая траектория выбирается из заранее созданного банка траекторий из фактических наблюдаемых траекторий агентов, прогнозируемая траектория будет физически правдоподобной. Кроме того, за счет эффективного преобразования задачи прогнозирования траектории агента в своего рода задачу поиска вычислительная сложность прогнозирования траектории агента значительно снижается по сравнению с попыткой формирования прогноза с нуля. Это может привести к уменьшению задержки при прогнозировании траектории агентов. Соответственно, реализации раскрытой технологии усовершенствуют работу беспилотных транспортных средств.
[0009] В соответствии с одним аспектом настоящего изобретения технология реализована в способе управления беспилотным транспортным средством. Способ включает в себя прогнозирование посредством вычислительного устройства, связанного с беспилотным транспортным средством, траектории агента вблизи беспилотного транспортного средства. Это выполняется путем: приема данных датчиков, указывающих на текущую ситуацию вблизи беспилотного транспортного средства, от датчика, связанного с беспилотным транспортным средством; формирования вектора признаков текущей ситуации по меньшей мере частично на основании данных датчиков; поиска в заранее созданном банке библиотечных векторов признаков для идентификации результирующего вектора признаков из заранее созданного банка, который наиболее релевантен вектору признаков текущей ситуации, при этом каждый библиотечный вектор признаков в заранее созданном банке связан с наблюдаемой траекторией; и прогнозирования траектории агента по меньшей мере частично на основании результирующего вектора признаков. Способ также включает в себя планирование посредством вычислительного устройства действия беспилотного транспортного средства по меньшей мере частично на основании прогнозируемой траектории агента, и управление беспилотным транспортным средством в соответствии с запланированным действием.
[00010] В некоторых реализациях формирование вектора признаков текущей ситуации включает в себя использование заранее обученной нейронной сети для формирования вектора признаков текущей ситуации. В некоторых из этих реализаций использование заранее обученной нейронной сети включает в себя обеспечение карты признаков, представляющей ракурсы вида с высоты птичьего полета текущей ситуации вблизи беспилотного транспортного средства, по меньшей мере частично на основании данных датчиков в качестве входных данных для заранее обученной нейронной сети. В некоторых реализациях карта признаков центрирована на агенте и имеет ориентацию, основанную на ориентации агента.
[00011] В некоторых реализациях поиск в заранее созданном банке библиотечных векторов признаков включает в себя выполнение приблизительного поиска ближайшего соседа. В некоторых из этих реализаций заранее созданный банк библиотечных векторов признаков включает в себя указатель, основанный на иерархическом графе тесного мира, доступном для передвижения, а выполнение приблизительного поиска ближайшего соседа включает в себя обход иерархического графа тесного мира, доступного для передвижения.
[00012] В некоторых реализациях поиск в заранее созданном банке библиотечных векторов признаков включает в себя формирование ранжированного списка векторов признаков из заранее созданного банка. В некоторых из этих реализаций формирование ранжированного списка векторов признаков включает в себя ранжирование библиотечных векторов признаков по меньшей мере частично на основании меры релевантности библиотечных векторов признаков к текущему вектору признаков ситуации.
[00013] В некоторых реализациях результирующий вектор признаков включает в себя библиотечный вектор признаков, наиболее близкий к текущему вектору признаков ситуации.
[00014] В соответствии с другими аспектами настоящего раскрытия предложен способ формирования банка библиотечных векторов признаков для использования при прогнозировании траектории агента вблизи используемого беспилотного транспортного средства. Способ включает в себя: прием на сервере множества выборок наблюдений, причем каждая выборка наблюдений получена посредством датчика на беспилотном транспортном средстве, собирающем данные, причем каждая выборка наблюдений включает в себя данные о траектории наблюдаемого агента вблизи беспилотного транспортного средства, собирающего данные, за заданный период времени; осуществление выборки на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов; формирование на сервере библиотечного вектора признаков для каждой траектории в библиотеке траекторий агентов; сбор на сервере банка библиотечных векторов признаков по меньшей мере частично на основании библиотечных векторов признаков; и отправку банка библиотечных векторов признаков в вычислительное устройство, связанное с используемым беспилотным транспортным средством.
[00015] В некоторых реализациях этого аспекта выборка на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов включает в себя кластеризацию траекторий агентов по меньшей мере из первой части множества выборок наблюдений в множество кластеров, причем каждый кластер во множестве кластеров содержит аналогичные траектории агентов. Случайным образом выбирается кластер из множества кластеров, и случайным образом выбирается траектория агента из выбранного кластера.
[00016] В некоторых реализациях сбор на сервере банка библиотечных векторов признаков дополнительно включает в себя формирование указателя библиотечных векторов признаков в банке библиотечных векторов признаков. В некоторых из этих реализаций формирование указателя библиотечных векторов признаков включает в себя формирование графа близости библиотечных векторов признаков. В некоторых реализациях граф близости включает в себя иерархический граф тесного мира, доступный для передвижения.
[00017] В некоторых реализациях формирование на сервере библиотечного вектора признаков для каждой траектории в библиотеке траекторий агентов включает в себя использование нейронной сети для формирования библиотечного вектора признаков из каждой траектории в библиотеке траекторий агентов.
[00018] В некоторых реализациях каждая выборка наблюдения дополнительно включает данные о ситуации, окружающей наблюдаемого агента. Кроме того, способ дополнительно включает в себя: использование по меньшей мере второй части множества выборок наблюдений для обучения первой нейронной сети для формирования первых векторов признаков на основании входных данных ситуаций в окружении наблюдаемые агенты; и использование по меньшей мере второй части множества выборок наблюдений для совместного обучения второй нейронной сети для формирования вторых векторов признаков на основании входных данных траекторий наблюдаемых агентов. Первые векторы признаков и вторые векторы признаков будут близкими, когда траектория наблюдаемого агента соответствует ситуации в окружении этого наблюдаемого агента.
[00019] В соответствии с дополнительным аспектом настоящего изобретения технология реализована на сервере. Сервер включает в себя процессор и память, соединенную с процессором, причем память содержит запрограммированные команды, которые при выполнении процессором побуждают процессор: осуществлять доступ на сервере к множеству выборок наблюдений, причем каждая выборка наблюдений получена датчиком на беспилотном транспортном средстве, собирающем данные, причем каждая выборка наблюдений включает в себя данные о траектории наблюдаемого агента вблизи беспилотного транспортного средства, собирающего данные, в течение заданного периода времени; осуществлять выборку на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов; формировать на сервере библиотечный вектор признаков для каждой траектории в библиотеке траекторий агентов; собирать на сервере банк библиотечных векторов признаков по меньшей мере частично на основании библиотечных векторов признаков; и обеспечить банк библиотечных векторов признаков вычислительному устройству, связанному с беспилотным транспортным средством.
[00020] В некоторых реализациях память включает в себя запрограммированные команды, которые при выполнении процессором побуждают процессор осуществлять выборку на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агента посредством: кластеризации траекторий агента из по меньшей мере первой части множества выборок наблюдений во множество кластеров, причем каждый кластер во множестве кластеров содержит аналогичные траектории агента; осуществлять случайный выбор кластера из множества кластеров; и осуществлять случайный выбор траектории агента из выбранного кластера.
[00021] В соответствии с еще одним аспектом настоящего изобретения технология реализована в беспилотном транспортном средстве. Беспилотное транспортное средство включает в себя по меньшей мере один датчик. Беспилотное транспортное средство дополнительно включает в себя вычислительное устройство, включающее в себя процессор и память. Память сохраняет запрограммированные команды, которые при выполнении процессором побуждают вычислительное устройство прогнозировать траекторию движения агента вблизи беспилотного транспортного средства посредством: приема данных датчиков, указывающих на текущую ситуацию вблизи беспилотного транспортного средства от по меньшей мере одного датчика; формирования вектора признаков текущей ситуации по меньшей мере частично на основании данных датчиков; поиска в заранее созданном банке библиотечных векторов признаков для определения результирующего вектора признаков из заранее созданного банка, который наиболее релевантен вектору признаков текущей ситуации, при этом каждый библиотечный вектор признаков в заранее созданном банке связан с наблюдаемой траекторией; и прогнозирования траектории агента по меньшей мере частично на основании результирующего вектора признаков. Память дополнительно сохраняет запрограммированные команды, которые при выполнении процессором побуждают вычислительное устройство планировать действие беспилотного транспортного средства по меньшей мере частично на основании прогнозируемой траектории агента, и управлять беспилотным транспортным средством в соответствии с запланированным действием. В некоторых реализациях беспилотное транспортное средство представляет собой беспилотный автомобиль.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[00022] Эти и другие признаки, аспекты и преимущества настоящей технологии станут более понятными из нижеследующего описания, приложенной формулы изобретения и сопровождающих чертежей, на которых:
[00023] На Фиг. 1 показана принципиальная схема примерной компьютерной системы для использования в некоторых реализациях систем и/или способов настоящей технологии.
[00024] На Фиг. 2 показана сетевая вычислительная среда, включающая в себя беспилотное транспортное средство, подходящая для использования с некоторыми реализациями настоящей технологии.
[00025] На Фиг. 3 показан общий вид ситуации, в которой могут использоваться различные реализации раскрытой технологии.
[00026] Фиг. 4 представляет собой блок-схему, изображающую примерный сценарий прогнозирования траектории агента в соответствии с различными реализациями раскрытой технологии.
[00027] На Фиг. 5 показана блок-схема способа формирования банка траекторий и модели машинного обучения, используемых в способе прогнозирования траектории агента в соответствии с различными реализациями раскрытой технологии.
[00028] На Фиг. 6 показана блок-схема способа прогнозирования траектории агента в соответствии с различными реализациями раскрытой технологии.
Осуществление изобретения
[00029] Ниже со ссылкой на сопровождающие чертежи будут более полно описаны различные примерные реализации раскрытой технологии. Однако настоящая технология может быть реализована во многих различных формах, и ее не следует рассматривать как ограниченную примерными реализациями, изложенными в данном документе. На чертежах размеры и относительные размеры слоев и областей могут быть увеличены для ясности. Во всем документе аналогичные ссылочные позиции относятся к аналогичным элементам.
[00030] Приведенные в данном документе примеры и условные формулировки предназначены главным образом для помощи читателю в понимании принципов настоящей технологии, а не для ограничения ее объема такими конкретно приведенными примерами и условиями. Следует понимать, что специалисты в данной области смогут разработать различные конфигурации, которые, хоть они и не описаны в данном документе явным образом, тем не менее реализуют принципы настоящей технологии и включены в ее сущность и объем.
[00031] Кроме того, в целях упрощения понимания в нижеследующем описании реализации настоящей технологии могут быть описаны в относительно упрощенном виде. Специалистам в данной области будет понятно, что различные реализации настоящей технологии могут иметь большую сложность.
[00032] В некоторых случаях также может быть изложено то, что рассматривается в качестве полезных примеров модификаций настоящей технологии. Это делается лишь для облегчения понимания и, опять же, не для определения объема или установления границ настоящей технологии. Эти модификации не представляют собой исчерпывающий перечень, и специалист в данной области может осуществлять другие модификации, тем не менее не выходя за рамки объема настоящей технологии. Кроме того, случаи, когда примеры модификаций не приведены, не следует понимать таким образом, что модификации невозможны и/или что описанное является единственным способом реализации такого элемента настоящей технологии.
[00033] Следует понимать, что, хотя в данном документе могут использоваться понятия «первый», «второй», «третий» и т.д. для описания различных элементов, эти элементы не должны ограничиваться этими понятиями. Эти понятия используются для различения одного элемента от другого. Таким образом, первый элемент, описанный ниже, можно было бы назвать вторым элементом без отступления от замысла настоящего изобретения. В контексте настоящего документа понятие «и/или» включает в себя любые и все комбинации одного или более связанных перечисленных элементов.
[00034] Следует понимать, что когда элемент упоминается как «соединенный» или «связанный» с другим элементом, он может быть непосредственно соединен или связан с другим элементом, или могут присутствовать промежуточные элементы. Напротив, когда элемент упоминается как «непосредственно соединенный» или «непосредственно связанный» с другим элементом, промежуточные элементы отсутствуют. Другие слова, используемые для описания взаимосвязи между элементами, следует интерпретировать аналогичным образом (например, «между» или «непосредственно между», «смежный» или «непосредственно смежный» и т.д.).
[00035] Используемая в настоящем документе терминология предназначена только для описания конкретных примерных реализаций и не предназначена для ограничения настоящей технологии. Используемые здесь формы единственного числа подразумевают включение и форм множественного числа, если контекст явно не указывает иное. Кроме того, следует понимать, что понятия «содержит» и/или «содержащий при использовании в данном описании, указывают на наличие упомянутых признаков, целых чисел, этапов, операций, элементов и/или компонентов, но не исключают наличие или добавление одного или более других признаков, целых чисел, этапов, операций, элементов, компонентов и/или их групп.
[00036] Функции различных элементов, показанных на чертежах, включая любой функциональный блок, отмеченный как «процессор», могут быть обеспечены за счет использования специализированного аппаратного обеспечения, а также аппаратного обеспечения, способного выполнять программное обеспечение. При обеспечении процессором функции могут быть обеспечены одним специализированным процессором, одним совместно используемым процессором или множеством отдельных процессоров, некоторые из которых могут быть совместно используемыми. В некоторых реализациях настоящей технологии процессор может быть процессором общего назначения, например центральным процессором (CPU), или процессором, предназначенным для определенной цели, например цифровым сигнальным процессором (DSP). Кроме того, явное использование термина «процессор» не должно толковаться как относящееся исключительно к аппаратному обеспечению, способному выполнять программное обеспечение, и может неявно включать в себя, не ограничиваясь, специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ROM) для хранения программного обеспечения, оперативное запоминающее устройство (RAM) и энергонезависимое запоминающее устройство. Также может быть включено другое аппаратное обеспечение, традиционное и/или специализированное.
[00037] Программные модули или просто модули или блоки, которые подразумеваются как программное обеспечение, могут быть представлены в данном документе в виде любого сочетания элементов блок-схемы или других элементов, указывающих на выполнение этапов процесса и/или текстовое описание. Такие модули могут выполняться аппаратным обеспечением, которое показано в явном или неявном виде. Кроме того, следует понимать, что модуль может включать в себя, например, но не ограничиваясь, логику компьютерной программы, команды компьютерной программы, программное обеспечение, стек, микропрограммное обеспечение, аппаратные схемы или их сочетание, которые обеспечивают требуемые возможности.
[00038] В контексте настоящего описания «база данных» представляет собой любой структурированный набор данных, независимо от его конкретной структуры, программного обеспечения для управления базой данных или компьютерного аппаратного обеспечения, на котором данные хранятся, реализуются или иным образом обеспечиваются для использования. База данных может находиться на том же аппаратном обеспечении, что и процесс, который хранит или использует информацию, сохраненную в базе данных, или она может находиться на отдельном аппаратном обеспечении, таком как специализированный сервер или множество серверов.
[00039] Настоящая технология может быть реализована в виде системы, способа и/или компьютерного программного продукта. Компьютерный программный продукт может включать в себя машиночитаемый носитель данных (или носители), сохраняющий машиночитаемые программные команды, которые при выполнении процессором побуждают процессор выполнять аспекты раскрытой технологии. Машиночитаемый носитель данных может быть, например, электронным запоминающим устройством, магнитным запоминающим устройством, оптическим запоминающим устройством, электромагнитным запоминающим устройством, полупроводниковым запоминающим устройством или любым подходящим их сочетанием. Неисчерпывающий перечень более конкретных примеров машиночитаемого носителя данных включает в себя: переносной компьютерный диск, жесткий диск, оперативную память (RAM), постоянную память (ROM), флэш-память, оптический диск, карту памяти, дискету, носитель с механическим или визуальным кодированием (например, перфокарту или штрих-код) и/или любое их сочетание. В контексте настоящего документа машиночитаемый носитель данных следует рассматривать как постоянный машиночитаемый носитель. Он не должен рассматриваться как непостоянный сигнал, такой как радиоволны или другие свободно распространяющиеся электромагнитные волны, электромагнитные волны, распространяющиеся по волноводу или другим средам передачи (например, световые импульсы, проходящие по оптоволоконному кабелю), или электрические сигналы, передаваемые по проводам.
[00040] Следует понимать, что машиночитаемые программные команды могут быть загружены в соответствующие вычислительные или обрабатывающие устройства с машиночитаемого носителя данных или на внешний компьютер или внешнее запоминающее устройство через сеть, например Интернет, локальную сеть, глобальную сеть и/или беспроводную сеть. Сетевой интерфейс в вычислительном/обрабатывающем устройстве может принимать машиночитаемые программные команды через сеть и пересылать машиночитаемые программные команды для хранения на машиночитаемом носителе данных в соответствующем вычислительном или обрабатывающем устройстве.
[00041] Машиночитаемые программные команды для выполнения операций по настоящему изобретению могут быть инструкциями ассемблера, машинными инструкциями, инструкциями микропрограммного обеспечения, данными конфигурации для интегральной схемы или либо исходным кодом, либо объектным кодом, написанным на любом сочетании из одного или более языков программирования. Машиночитаемые программные команды могут выполняться полностью на компьютере пользователя, частично на компьютере пользователя, в виде автономного пакета программного обеспечения, частично на компьютере пользователя и частично на удаленном компьютере, или полностью на удаленном компьютере или сервере. В последнем случае удаленный компьютер может быть соединен с компьютером пользователя через сеть любого типа.
[00042] Все утверждения в данном документе, излагающие принципы, аспекты и реализации настоящей технологии, а также ее конкретные примеры, подразумевают охват как их структурных, так и функциональных эквивалентов, независимо от того, известны ли они в настоящее время или будут разработаны в будущем. Таким образом, например, специалистам в данной области будет понятно, что любые блок-схемы в данном документе представляют концептуальные виды иллюстративной схемы, реализующей принципы настоящей технологии. Аналогичным образом, следует понимать, что любые блок-схемы, блок-схемы процессов, схемы переходов состояний, псевдокод и тому подобное представляют различные процессы, которые могут быть, по существу, представлены в машиночитаемых программных командах. Эти машиночитаемые программные команды могут быть переданы процессору или другому программируемому устройству обработки данных для формирования механизма, так что команды, которые выполняются через процессор компьютера или другого программируемого устройства обработки данных, образуют средство для реализации функций/действий, указанных в блок-схеме и/или блоке или блоках блок-схемы. Эти машиночитаемые программные команды также могут храниться на машиночитаемом носителе данных, который может управлять компьютером, программируемым устройством обработки данных и/или другими устройствами, чтобы они функционировали определенным образом, так что машиночитаемый носитель данных, на котором сохранены команды, включают в себя изделие, включающее в себя команды, которые реализуют аспекты функции/действия, указанные в блок-схемах, блок-схемах процессов, схемах перехода состояний, псевдокоде и тому подобном.
[00043] Машиночитаемые программные команды также могут быть загружены в компьютер, другое программируемое устройство обработки данных или другие устройства, чтобы вызвать выполнение ряда функциональных этапов на компьютере, другом программируемом устройстве или других устройствах для формирования реализуемого компьютером процесса, таким образом, что команды, которые выполняются на компьютере, другом программируемом устройстве или другом устройстве, реализуют функции/действия, указанные в блок-схемах, блок-схемах процессов, схемах переходов состояний, псевдокоде и тому подобном.
[00044] В некоторых альтернативных реализациях функции, указанные в блок-схемах, блок-схемах процессов, схемах переходов состояний, псевдокоде и тому подобном, могут происходить вне порядка, указанного на чертежах. Например, два блока, последовательно показанные на блок-схеме, могут фактически выполняться, по существу, одновременно, или блоки могут иногда выполняться в обратном порядке, в зависимости от задействованной функциональности. Также следует отметить, что каждая из функций, отмеченных на чертежах, и сочетания таких функций могут быть реализованы специализированными аппаратными системами, которые выполняют указанные функции или действия, или сочетаниями специализированных аппаратных средств и компьютерных команд.
[00045] Установив эти основные положения, теперь рассмотрим некоторые неограничивающие примеры, иллюстрирующие различные реализации аспектов настоящего изобретения.
Компьютерная система
[00046] На Фиг. 1 показана компьютерная система 100. Компьютерная система 100 может представлять собой многопользовательский компьютер, однопользовательский компьютер, портативный компьютер, планшетный компьютер, смартфон, встроенную систему управления или любую другую компьютерную систему, которая известна в настоящее время или будет разработана позже. Кроме того, следует понимать, что некоторые или все компоненты компьютерной системы 100 могут быть виртуализированными и/или облачными. Как показано на Фиг. 1, компьютерная система 100 включает в себя один или более процессоров 102, память 110, интерфейс 120 памяти и сетевой интерфейс 140. Эти системные компоненты соединены между собой через шину 150, которая может включать в себя одну или более внутренних и/или внешних шин (не показаны) (например, шину PCI, универсальную последовательную шину, шину Firewire IEEE 1394, шину SCSI, шину Serial-ATA. и т.д.), с которыми соединены электронными средствами различные компоненты аппаратного обеспечения.
[00047] Память 110, которая может быть памятью с произвольным доступом или памятью любого другого типа, может содержать данные 112, операционную систему 114 и программу 116. Данные 112 могут быть любыми данными, которые служат входными данными или выходными данными любой программы в компьютерной системе 100. Операционная система 114 представляет собой операционную систему, такую как MICROSOFT WINDOWS или LINUX. Программа 116 может быть любой программой или набором программ, которые включают в себя запрограммированные команды, которые могут выполняться процессором для управления действиями, выполняемыми компьютерной системой 100.
[00048] Интерфейс 120 памяти используется для соединения запоминающих устройств, таких как запоминающее устройство 125, с компьютерной системой 100. Одним типом запоминающего устройства 125 является твердотельный накопитель, который может использовать узел интегральной схемы для постоянного хранения данных. Другой тип запоминающего устройства 125 - представляет собой жесткий диск, такой как электромеханическое устройство, которое использует магнитное запоминающее устройство для сохранения и извлечения цифровых данных. Аналогичным образом, запоминающее устройство 125 может быть оптическим приводом, устройством чтения карт, которое принимает съемную карту памяти, такую как SD-карта, или устройством флэш-памяти, которое может быть соединено с компьютерной системой 100, например, через универсальную последовательную шину (USB).
[00049] В некоторых реализациях компьютерная система 100 может использовать хорошо известные технологии виртуальной памяти, которые позволяют программам компьютерной системы 100 вести себя так, как если бы они имели доступ к большому непрерывному адресному пространству, вместо доступа к множеству меньших пространств хранения, таких как как память 110 и запоминающее устройство 125. Таким образом, хотя показано, что данные 112, операционная система 114 и программы 116 постоянно находятся в памяти 110, специалистам в данной области техники будет понятно, что эти элементы не обязательно полностью одновременно содержатся в памяти 110.
[00050] Процессоры 102 могут включать в себя один или более микропроцессоров и/или других интегральных схем. Процессоры 102 выполняют программные команды, сохраненные в памяти 110. Когда компьютерная система 100 запускается, процессоры 102 могут изначально выполнять процедуру загрузки и/или программные команды, составляющие операционную систему 114.
[00051] Сетевой интерфейс 140 используется для соединения компьютерной системы 100 с другими компьютерными системами или сетевыми устройствами (не показаны) через сеть 160. Сетевой интерфейс 140 может включать в себя сочетание аппаратного и программного обеспечения, которое позволяет осуществлять связь в сети 160. В некоторых реализациях сетевой интерфейс 140 может быть беспроводным сетевым интерфейсом. Программное обеспечение в сетевом интерфейсе 140 может включать в себя программное обеспечение, которое использует один или более сетевых протоколов для связи по сети 160. Например, сетевые протоколы могут включать в себя TCP/IP (Протокол управления передачей/протокол Интернет).
[00052] Следует понимать, что компьютерная система 100 является лишь примером, и что раскрытая технология может использоваться с компьютерными системами или другими вычислительными устройствами, имеющими другие конфигурации.
Сетевая вычислительная среда
[00053] На Фиг. 2 показана сетевая вычислительная среда 200, подходящая для использования с некоторыми неограничивающими реализациями настоящей технологии. Сетевая вычислительная среда 200 включает в себя вычислительное устройство 210, связанное с транспортным средством 220 и/или связанное с пользователем (не показан), который связан с транспортным средством 220 (таким как оператор транспортного средства 220). Сетевая вычислительная среда 200 также включает в себя сервер 235, осуществляющий связь с вычислительным устройством 210 через сеть 240 связи (например, Интернет и тому подобное).
[00054] По меньшей мере в некоторых неограничивающих реализациях настоящей технологии вычислительное устройство 210 соединено с возможностью осуществления связи с системами управления транспортного средства 220. Вычислительное устройство 210 может быть конфигурировано и выполнено с возможностью управления различными операционными системами транспортного средства 220, включая, но не ограничиваясь, ЭБУ (блок управления двигателем), системы рулевого управления, тормозные системы, и системы сигнализации и освещения (т.е. фары, стоп-сигналы и/или указатели поворота). В такой реализации транспортное средство 220 может быть беспилотным транспортным средством.
[00055] В некоторых неограничивающих реализациях настоящей технологии сетевая вычислительная среда 200 может включать в себя спутник GPS (не показан), передающий и/или принимающий сигнал GPS на вычислительное устройство 210/с него. Следует понимать, что настоящая технология не ограничена GPS и может использовать технологию определения местоположения, отличную от GPS. Следует отметить, что спутник GPS можно вообще не использовать.
[00056] Транспортное средство 220, с которым связано вычислительное устройство 210, может быть любым транспортным средством для отдыха или иного, таким как частный или коммерческий автомобиль, грузовой автомобиль, мотоцикл и тому подобное. Хотя транспортное средство 220 изображено как наземное транспортное средство, это может быть не так во всех без исключения неограничивающих реализациях настоящей технологии. Например, в некоторых неограничивающих реализациях настоящей технологии транспортное средство 220 может быть водным транспортным средством, таким как лодка, или летательным аппаратом, таким как беспилотный летательный аппарат.
[00057] Транспортное средство 220 может быть управляемым пользователем или беспилотным транспортным средством. В некоторых неограничивающих реализациях настоящей технологии предполагается, что транспортное средство 220 может быть реализовано в виде беспилотного автомобиля (SDC). Транспортное средство 220 может быть полностью автономным транспортным средством или частично автономным транспортным средством, в котором водитель-человек управляет некоторыми аспектами работы транспортного средства, в то время как другие аспекты (например, «автопилот» на шоссе) автоматизированы. Следует отметить, что конкретные параметры транспортного средства 220 не являются ограничивающими, причем эти конкретные параметры включают в себя, например: производителя транспортного средства, модель транспортного средства, год выпуска транспортного средства, вес транспортного средства, размеры транспортного средства, распределение веса транспортного средства, площадь поверхности транспортного средства, высоту транспортного средства, тип трансмиссии (например, 2x или 4x), тип колес, тормозную систему, топливную систему, пробег, идентификационный номер транспортного средства, объем двигателя или другие характеристики или параметры транспортного средства.
[00058] Согласно настоящей технологии реализация вычислительного устройства 210 не ограничена конкретно. Например, вычислительное устройство 210 может быть реализовано в виде блока управления двигателем транспортного средства, CPU транспортного средства, навигационного устройства транспортного средства (например, TomTom™, Garmin™), планшетного компьютера, персонального компьютера, встроенного в транспортное средство 220, и тому подобного. Таким образом, следует отметить, что вычислительное устройство 210 может быть или может не быть постоянно связано с транспортным средством 220. В качестве Дополнения или альтернативы, вычислительное устройство 210 может быть реализовано в устройстве беспроводной связи, таком как мобильный телефон (например, смартфон или радиотелефон). В некоторых реализациях вычислительное устройство 210 имеет дисплей 270.
[00059] Вычислительное устройство 210 может включать в себя некоторые или все компоненты компьютерной системы 100, изображенные на Фиг.1, в зависимости от конкретной реализации. В некоторых реализациях вычислительное устройство 210 является устройством бортового компьютера и включает в себя процессоры 102, запоминающее устройство 125 и память 110. Другими словами, вычислительное устройство 210 включает в себя аппаратное обеспечение и/или программное обеспечение и/или микропрограммное обеспечение, или их сочетание для обработки данных, как будет более подробно описано ниже.
[00060] В некоторых неограничивающих реализациях настоящей технологии сеть 240 связи представляет собой Интернет. В альтернативных неограничивающих реализациях настоящей технологии сеть 240 связи может быть реализована в виде любой подходящей локальной сети (LAN), глобальной сети (WAN), частной сети связи и тому подобного. Следует явным образом понимать, что реализации для сети 240 связи приведены лишь в целях иллюстрации. Между вычислительным устройством 210 и сетью 240 связи предусмотрен канал связи (отдельно не пронумерованный), реализация которого будет зависеть, среди прочего, от того, каким образом реализовано вычислительное устройство 210. Лишь в качестве примера, а не ограничения, в тех неограничивающих реализациях настоящей технологии, в которых вычислительное устройство 210 реализовано в виде устройства беспроводной связи, такого как смартфон или навигационное устройство, канал связи может быть реализован в виде линии беспроводной связи. Примеры линий беспроводной связи могут включать в себя, не ограничиваясь, линию связи сети 3G, линию связи 4G и тому подобное. Сеть 240 связи также может использовать беспроводное соединение с сервером 235.
[00061] В некоторых реализациях настоящей технологии сервер 235 реализован в виде компьютерного сервера и может включать в себя некоторые или все компоненты компьютерной системы 100 по Фиг.1. В одном неограничивающем примере сервер 235 реализован в виде сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™, но также может быть реализован в любом другом подходящем аппаратном обеспечении, программном обеспечении и/или микропрограммном обеспечении или в их сочетании. В изображенных неограничивающих реализациях настоящей технологии сервер 235 является одиночным сервером. В альтернативных неограничивающих реализациях настоящей технологии функциональные возможности сервера 235 могут быть распределены и могут быть реализованы через множество серверов (не показаны).
[00062] В некоторых неограничивающих реализациях настоящей технологии процессоры 102 вычислительного устройства 210 могут осуществлять связь с сервером 235 для приема одного или более обновлений. Такие обновления могут включать в себя, не ограничиваясь, обновления программного обеспечения, обновления карт, обновления маршрутов, обновления погоды и тому подобное. В некоторых неограничивающих реализациях настоящей технологии вычислительное устройство 210 также может быть выполнено с возможностью передачи на сервер 235 определенных рабочих данных, таких как пройденные маршруты, данные дорожного движения, данные производительности и тому подобное. Некоторые или все такие данные, передаваемые между транспортным средством 220 и сервером 235, могут быть зашифрованы и/или анонимизированы.
[00063] Следует отметить, что вычислительное устройство 210 может использовать различные датчики и системы для сбора информации об окружении 250 транспортного средства 220. Как видно на Фиг.2, транспортное средство 220 может быть оборудовано множеством систем 280 датчиков. Следует отметить, что различные системы датчиков из множества систем 280 датчиков могут использоваться для сбора различных типов данных в отношении окружения 250 транспортного средства 220.
[00064] В одном примере множество систем 280 датчиков может включать в себя различные оптические системы, включая, среди прочего, одну или более систем датчиков типа камеры, которые установлены на транспортном средстве 220 и соединены с возможностью осуществления связи с процессорами 102 вычислительного устройства 210. Вообще говоря, одна или более систем датчиков типа камеры могут быть выполнены с возможностью сбора данных изображения о различных частях окружения 250 транспортного средства 220. В некоторых случаях данные изображения, обеспечиваемые одной или более системами датчиков типа камеры, могут использоваться вычислительным устройством 210 для выполнения процедур обнаружения объектов. Например, вычислительное устройство 210 может быть выполнено с возможностью ввода данных изображения, обеспечиваемых одной или более системами датчиков типа камеры, в нейронную сеть обнаружения объектов (ODNN), которая обучена локализовать и классифицировать потенциальные объекты в окружении 250 транспортного средства 220.
[00065] В другом примере множество систем 280 датчиков может включать в себя одну или более систем датчиков типа радара, которые установлены на транспортном средстве 220 и соединены с возможностью осуществления связи с процессорами 102. Вообще говоря, одна или более систем датчиков типа радара могут быть выполнены с возможностью использования радиоволн для сбора данных о различных частях окружения 250 транспортного средства 220. Например, одна или более систем датчиков типа радара могут быть выполнены с возможностью сбора данных радара о потенциальных объектах в окружении 250 транспортного средства 220, причем такие данные потенциально представляют удаление объектов от системы датчиков типа радара, ориентацию объектов, скорость движения и/или скорость объектов и тому подобное.
[00066] В дополнительном примере множество систем 280 датчиков может включать в себя одну или более систем LIDAR, которые установлены на транспортном средстве 220 и соединены с возможностью осуществления связи с процессорами 102. Вообще говоря, система LIDAR выполнена с возможностью сбора данных об окружении 250 транспортного средства 220, используемых, например, для построения многомерной карты объектов в окружении 250 транспортного средства 220. Система LIDAR может быть установлена или предусмотрена в качестве дополнительного оборудования на транспортном средстве 220 в различных местах и/или в различных конфигурациях для сбора информации об окружении 250 транспортного средства 220.
[00067] Например, в зависимости от реализации транспортного средства 220 и системы LIDAR, система LIDAR может быть установлена на внутренней, верхней части лобового стекла транспортного средства 220. Тем не менее, в объем настоящего изобретения входят и другие места для установки лидарной системы, в том числе на заднем окне, боковых окнах, переднем капоте, крыше, передней решетке, переднем бампере или сбоку транспортного средства 220.
[00068] В контексте настоящей технологии вычислительное устройство 210 выполнено с возможностью обнаружения одного или более объектов в окружении 250 транспортного средства 220 на основании данных, полученных от одной или более систем камер и одной или более систем LIDAR. Например, вычислительное устройство 210, выполненное с возможностью обнаружения определенного объекта в окружении 250 транспортного средства 220, может быть выполнено с возможностью идентификации данных LIDAR и данных камеры, связанных с определенным объектом, формирования «встраивания», представляющего признаки, связанные с определенным объектом, и обнаружения объекта путем формирования ограничительной рамки для объекта.
Прогнозирование траектории агента
[00069] Реализации раскрытой технологии прогнозируют движение агентов (то есть других участников дорожной ситуации), окружающих беспилотное транспортное средство, таких как пешеходы и транспортные средства, управляемые человеком. Как и в случае с любым транспортным средством, беспилотному транспортному средству требуется время, чтобы изменить свою скорость. Внезапные изменения скорости и ускорения, вызванные неправильным прогнозированием траектории движения агента, могут быть некомфортными для пассажиров беспилотного транспортного средства. В некоторых случаях неверное прогнозирование движения агентов могут привести даже к столкновениям. Таким образом, модуль планирования движения беспилотного транспортного средства должен иметь хорошее представление о том, где могут находиться ближайшие агенты через несколько секунд, чтобы он мог осуществлять планирование для беспилотного транспортного средства с сохранением безопасного расстояния. Модуль планирования движения также может извлечь большую пользу из понимания того, когда ситуация по своей природе является мультимодальной, и вероятно множество различных вариантов будущего. В таких ситуациях беспилотное транспортное средство может проявлять особую осторожность, пока ситуация не прояснится.
[00070] В соответствии с различными реализациями раскрытой технологии одним из способов описания будущего движения агента является его представление в виде вероятностей для возможных будущих траекторий агента (например, в виде распределения вероятностей по возможным траекториям) на основании информации о ситуации, доступной на момент прогнозирования.
[00071] Для практического использования в беспилотном транспортном средстве эти вероятности должны вычисляться с малой задержкой, чтобы прогнозирование можно было быстро изменить на основании новой информации, такой как внезапное изменение ускорения агента, а подсистема планирования беспилотного транспортного средства могла оперативно получать информацию об изменении ситуации. Кроме того, должен быть возможен эффективный доступ к ожидаемым и наиболее вероятным будущим положениям агентов, чтобы подсистема планирования могла использовать эту информацию в режиме реального времени. Кроме того, должен существовать удобный способ количественной оценки будущей неопределенности и возможной мультимодальности.
[00072] Неограничивающие варианты осуществления настоящей технологии направлены на выполнение прогнозирования будущей траектории агента путем ранжирования возможных будущих траекторий на основании показателя, представляющего вероятность того, что агент будет следовать каждой траектории из заданного набора возможных будущих траекторий. Различные реализации раскрытой технологии используют дискриминационный подход, используя для прогнозирования способы машинного обучения на основании показателей в сочетании со способами приблизительного поиска ближайшего соседа. В соответствии с различными реализациями прогнозы траекторий выбираются путем оценки заранее подготовленного словаря (также называемого «библиотека» или «банк») траекторий, например репрезентативного поднабора траекторий агентов, наблюдаемых в реальной жизни системой распознавания беспилотного транспортного средства. Банк траекторий может быть заранее обработан в автономном режиме. Это означает, что во время работы беспилотного транспортного средства объем и сложность вычислений для прогнозирования будущей траектории агента существенно снижены. Во время работы беспилотное транспортное средство кодирует ситуацию, окружающую беспилотное транспортное средство или агента, и выполняет прогнозирование, используя способы приблизительного поиска ближайшего соседа в банке траекторий. Кроме того, в некоторых реализациях при прогнозировании могут использоваться методы оценки Монте-Карло.
[00073] На Фиг. 3 и 4 показан обзор ситуации, в которой могут использоваться различные реализации раскрытой технологии. В примере, показанном на Фиг. 3, беспилотное транспортное средство 302 (в данном случае беспилотный автомобиль) движется в ситуации 304. Агент 306 (в данном случае пешеход) также движется в ситуации 304. Беспилотное транспортное средство 302 использует различные датчики (например, LIDAR, радар, камеры и т.д. - не показаны) для сбора информации о ситуации, и использует хорошо известные методы, такие как алгоритмы распознавания объектов машинного зрения, для обработки входных данных датчиков для формирования набора карт признаков ситуации, представляющих различные аспекты ситуации. В некоторых реализациях эти карты признаков могут представлять элементы ситуации в виде видов сверху или с высоты птичьего полета. В некоторых реализациях эти карты признаков используют одну и ту же опорную рамку. Например, карты характеристик могут быть сформированы таким образом, чтобы интересующий агент располагался в центре карты во время прогнозирования, а ось Y карты была совмещена с ориентацией агента. Каждая из этих карт признаков представляет некоторый аспект ситуации, такой как местоположение полосы движения или пешеходного перехода, присутствие агента, скорость или ускорение в конкретный момент времени, доступность полосы движения, вызванная состояниями светофоров, и/или другие аспекты, которые могут быть обнаружены с использованием датчиков в беспилотном транспортном средстве 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, соответственно. Сочетание статической карты признаков и этих зависимых от времени карт признаков может использоваться для представления текущей ситуации с беспилотным транспортным средством.
[00075] Как показано на Фиг. 4, на основании собранной информации вычислительное устройство (не показано), связанное с беспилотным транспортным средством, будет пытаться прогнозировать будущую траекторию агента на протяжении следующих нескольких секунд в модуле 400 прогнозирования траектории агента. Для выполнения этого прогнозирования статическая карта 404 признаков ситуации может быть объединена с зависящими от времени картами 406 признаков ситуации, используя функцию 408 объединения. В некоторых реализациях функция 408 объединения может объединять карту 404 признаков статической ситуации и зависящие от времени карты 406 признаков ситуации, хотя следует понимать, что могут использоваться и другие функции объединения. Сочетание карт признаков ситуации, формируемое функцией 408 объединения, затем используется в качестве входных данных для обученной модели 402 машинного обучения, такой как заранее обученная искусственная нейронная сеть, которая формирует вектор 410 признаков, представляющий текущую ситуацию вблизи беспилотного транспортного средства.
[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-ближайшего соседа, или поиск может быть выполнен с использованием другого известного или разработанного позже алгоритма поиска.
[00077] Этот поиск вектора 410 признаков в заранее созданном банке 412 дает набор оценок 416 релевантности для набора библиотечных векторов признаков. Эти оценки релевантности могут, например, быть основаны на пространственном удалении (например, евклидовом расстоянии) библиотечных векторов признаков от вектора 410 признаков, или на других мерах релевантности. Эти меры релевантности могут, в некоторых реализациях, представлять вероятность того, что агент будет следовать будущей траектории, соответствующей библиотечному вектору признаков. Как только эти оценки релевантности вычислены, наиболее релевантный вектор признаков библиотеки может быть выбран в качестве «результирующего» вектора 418 признаков, и прогнозируемая траектория 420 агента может быть основана на траектории агента, соответствующей результирующему вектору 418 признаков. В некоторых реализациях набор библиотечных векторов признаков может быть ранжирован в соответствии с их оценками релевантности, и это ранжирование может использоваться для выбора результирующего вектора 418 признаков, который будет использован для прогнозирования траектории агента. В некоторых реализациях, в которых оценка релевантности представляет вероятность того, что агент следует траектории, соответствующей библиотечному вектору признаков, для выбора результирующего вектора 418 признаков, который будет использоваться для прогнозирования траектории агента, могут использоваться способы Монте-Карло.
[00078] Как только результирующий вектор 418 признаков выбран, прогнозирование траектории агента может быть основано на траектории агента из банка траекторий, который соответствует результирующему вектору 418 признаков. В некоторых реализациях результирующий вектор 418 признаков может быть основан на более чем одном из библиотечных векторов признаков, и прогнозируемая траектория 420 агента может быть основана на более чем одной траектории агента из банка траекторий. В некоторых реализациях описанный выше способ прогнозирования может повторяться для каждого интересующего агента, обнаруженного в ситуации. В некоторых реализациях мультимодальность может быть обработана путем расширения модели машинного обучения для формирования мультимодальных выходных данных в виде множества векторов признаков и весовых коэффициентов, а затем сопоставления векторов признаков для каждого режима, при этом результаты, возможно, будут агрегированы по режимам.
[00079] Как только прогнозируемая траектория 420 агента подготовлена, прогнозируемая траектория 420 агента может быть отправлена в подсистему 430 планирования, связанную с беспилотным транспортным средством. Подсистема планирования будет учитывать прогнозируемую траекторию для агента при планировании действий беспилотного транспортного средства, и управление беспилотным транспортным средством будет осуществляться в соответствии с этими действиями.
[00080] Как будет понятно из приведенного выше описания с обращением к Фиг. 3 и 4, прогнозирование траектории агента использует заранее обученную модель машинного обучения, такую как заранее обученная нейронная сеть, для формирования векторов признаков, представляющих текущую ситуацию, на основании карт признаков. Кроме того, в заранее созданном банке траекторий выполняется поиск библиотечных векторов признаков, которые являются релевантными к этим векторам признаков текущей ситуации, причем библиотечные векторы признаков связаны с возможными траекториями для агента. Таким образом, в соответствии с различными реализациями раскрытой технологии используются способ формирования банка траекторий в автономном режиме и модель машинного обучения. Блок-схема такого способа описана с обращением к Фиг. 5.
[00081] Способ 500 разделен на две основных секции: секцию 502 обучения модели машинного обучения; и секцию 504 формирования банка траектории. Секция 502 обучения модели машинного обучения совместно обучает две модели машинного обучения, такие как искусственные нейронные сети, включая первую модель машинного обучения, которая формирует векторы признаков текущей ситуации на основе карт признаков, и вторую модель машинного обучения, которая формирует векторы признаков в том же пространстве признаков, что и векторы признаков, сформированные первой моделью машинного обучения на основании наблюдаемых траекторий агентов. Как описано выше, первая модель машинного обучения используется при управлении беспилотным транспортным средством. Вторая модель машинного обучения используется в автономном режиме при формировании банка траекторий. В некоторых реализациях и первая, и вторая модели машинного обучения могут представлять собой сверточные нейронные сети (CNN).
[00082] В блоке 510 секции 502 обучения модели машинного обучения принимается набор данных беспилотного транспортного средства, или осуществляется доступ к нему из базы данных. Набор данных беспилотного транспортного средства, как правило, включает в себя большой объем данных, собранных многочисленными беспилотными транспортными средствами за несколько месяцев или даже лет.В некоторых реализациях набор данных включает в себя выборки наблюдений, в которых записаны показания датчиков от таких датчиков, как LIDAR, радар, камеры и т.д., которые связаны с беспилотным транспортным средством. Показания датчиков собираются за период времени, в течение которого работает транспортное средство, и с заданной частотой (например, 10 выборок в секунду).
[00083] В блоке 512 обучающие данные, включающие в себя обучающие ситуации и обучающие траектории, подготавливаются из набора данных беспилотного транспортного средства. Движущиеся агенты, такие как транспортные средства или пешеходы, которые наблюдались беспилотным транспортным средством в движении в течение более заданного периода времени (например, пяти секунд), используются в качестве целей прогнозирования и их траекторий в течение заданного периода времени (например, пяти секунд), и с заданной частотой выборки (например, пять выборок в секунду) используются в качестве проверочных данных для обучения моделей машинного обучения. Каждая ситуация также включает в себя данные истории за заданный период времени (например, три секунды) до данных, которые будут использоваться в качестве проверочных данных. Ситуации включают в себя данные карты статических признаков ситуации и данные карты признаков, зависящих от времени. В некоторых реализациях данные датчиков будут обрабатываться для формирования данных карты признаков для ситуации в виде видов сверху или с высоты птичьего полета, имеющих соответствующий опорный кадр. В некоторых реализациях этот опорный кадр может помещать цель прогнозирования (то есть агента) в центр данных карты признаков и может ориентировать данные карты признаков таким образом, чтобы ось Y карт была совмещена с ориентацией цели прогнозирования.
[00084] Следует понимать, что подготовка обучающих ситуаций и обучающих траекторий, например, описанная с обращением к блоку 512, может быть выполнена перед выполнением секции 502 обучения модели машинного обучения. Если это так, то блок 512 может быть исключен, и обучающие ситуации и обучающие траектории могут быть приняты, или к ним может быть осуществлен доступ, из базы данных, а не из показаний датчиков, на которых они основаны.
[00085] В блоке 514 обучающие ситуации и обучающие траектории используются для совместного обучения первой и второй моделей машинного обучения на основании проверочных данных траекторий агента и соответствующих данных ситуации. Обучение выполняется таким образом, что первая модель машинного обучения формирует векторы признаков текущей ситуации на основании карт признаков из данных ситуации, а вторая модель машинного обучения формирует векторы признаков на основании траекторий агентов. Модели машинного обучения обучаются таким образом, что векторы признаков, формируемые первой и второй моделями машинного обучения, находятся в общем скрытом пространстве и будут пространственно близки, если наблюдаемая траектория агента, вводимая во вторую модель машинного обучения, соответствует картам признаков из данной ситуации, которые вводятся в первую модель машинного обучения. Векторы признаков, формируемые первой и второй моделями машинного обучения, будут пространственно далеки, когда такого соответствия нет.
[00086] В блоке 516 полностью обученная первая модель машинного обучения отправляется или иным образом передается в модуль прогнозирования траектории агентов беспилотного транспортного средства, а полностью обученная вторая модель машинного обучения отправляется или иным образом передается в секцию 504 формирования банка траекторий, как описано ниже.
[00087] В блоке 520 секции 504 формирования банка траекторий наблюдаемые траектории агентов в реальных ситуациях принимаются, или к ним осуществляется доступ (например, из базы данных) секцией 504 формирования банка траекторий. В некоторых реализациях эти траектории агентов основаны на данных датчиков от датчиков на беспилотных транспортных средствах, таких как LIDAR, радар и камеры. В некоторых реализациях снимки камеры, совмещенные с данными LIDAR и радара, охватывают заданный период времени (например, пять секунд) с заданной частотой сбора данных датчиком (например, 10 выборок датчика в секунду).
[00088] В блоке 522 осуществляется выборка наблюдаемых траекторий агентов для получения библиотеки траекторий агентов. При выборке из наблюдаемых реальных траекторий агентов каждая из траекторий в библиотеке траекторий агентов будет физически правдоподобной, поскольку тот или иной агент следовал ей по меньшей мере один раз. Это все же сохраняет возможную проблему с чрезмерным представлением в библиотеке траекторий с высокой вероятностью, таких как стационарные траектории или равномерное движение вперед, а также возможное недостаточное представление или исключение необычных траекторий, которые тем не менее должны быть представлены. Для решения этой проблемы в некоторых реализациях выборка может осуществляться сначала путем применения процедуры кластеризации к наблюдаемым траекториям агентов, а затем путем осуществления выборки сначала путем случайного выбора кластера (или указателя кластеров), а затем случайного выбора траектории в выбранном кластере. При применении этого метода кластеризации траектории, имевшие ранее высокую вероятность, не будут отбираться столь часто, что делает индуктированное распределение траекторий из выборки намного ближе к однородному. В некоторых реализациях для кластеризации используется мини-пакетный алгоритм K-средних, такой как описанный в Sculley, D., “Web-scale k-means clustering”, Proceedings of the 19th International Conference on World Wide Web, 1177-1178, 2010, с евклидовым расстоянием в пространстве траекторий. Этот алгоритм кластеризации работает быстро и дает результаты, которые могут достаточно хорошо работать на практике. Следует понимать, что могут использоваться и другие известные алгоритмы кластеризации, такие как кластеризация с полной связью, и они могут обеспечивать более однородные распределения.
[00089] В блоке 524 библиотечный вектор признаков траекторий формируется для каждой из траекторий в библиотеке траекторий агентов. В некоторых реализациях это выполняется с использованием обученной модели машинного обучения, такой как обученная искусственная нейронная сеть, которая была обучена и обеспечена секцией 502 обучения модели машинного обучения, описанной выше. Как обсуждалось выше, эта модель машинного обучения обучена для формирования вектора признаков при наличии введенной траектории. Библиотечные векторы признаков траекторий связаны с траекториями агентов, на основании которых они были сформированы.
[00090] В блоке 526 выполняется сбор библиотечных векторов признаков траекторий для формирования банка траекторий библиотечных векторов признаков. В некоторых реализациях это может быть сделано путем формирования указателя библиотечных векторов признаков, что значительно ускорит поиск библиотечных векторов признаков при использовании банка траекторий. Поскольку в процессе поиска будет выполняться поиск библиотечных векторов признаков, которые пространственно близки к целевому вектору, представляющему текущую ситуацию для беспилотного транспортного средства, одной структурой, которая может использоваться для упомянутого указателя, является граф близости. Как хорошо известно специалистам в данной области техники, граф близости представляет собой граф, в котором две вершины соединены ребром, если вершины пространственно близки друг к другу с использованием заданной метрики расстояния. В соответствии с некоторыми реализациями, одним из хорошо известных типов графа близости является иерархический граф тесного мира, доступный для движения. Способы построения такого графа и его использования для выполнения приближенного поиска K-ближайшего соседа описаны, например, в публикации Malkov и Yashunin, ссылка на которую приведена выше. Следует понимать, что также могут использоваться и другие известные или разработанные позже способы формирования указателя и/или другие способы формирования указателя, основанные на графах близости.
[00091] В блоке 528 банк траекторий отправляется или иным образом передается в модуль прогнозирования траектории агентов беспилотного транспортного средства. Модуль прогнозирования траектории агентов обычно выполняется на вычислительном устройстве, связанном с беспилотным транспортным средством, и он описан ниже с обращением к Фиг. 6.
[00092] Следует понимать, что секция 502 обучения модели машинного обучения и секция 504 формирования банка траекторий могут выполняться «в автономном режиме» на сервере или другом вычислительном устройстве перед использованием обученной модели машинного обучения и/или банка траекторий, которые они формируют при использовании на беспилотном транспортном средстве. Кроме того, секция 502 обучения модели машинного обучения и секция 504 формирования банка траекторий могут выполняться на разных вычислительных устройствах и в разное время.
[00093] Поскольку набор траекторий фиксирован заранее, его можно ограничить, чтобы он содержал только физически правдоподобные траектории агентов. Это может упростить задачу моделирования для моделей машинного обучения и предотвратить формирование совершенно неверных прогнозов в областях проблемного пространства, в которых качество прогнозирования является низким. В некоторых реализациях набор траекторий может быть обогащен траекториями, соответствующими сложным маневрам, таким образом гарантируя, что такие маневры могут быть спрогнозированы и обработаны.
[00094] Кроме того, путем создания банка траекторий с указателем можно выполнять прогнозирование путем оценки потенциальных решений. В вычислительном отношении это намного проще, чем формирование прогноза с нуля. Таким образом, формулируя задачу прогнозирования траекторий агентов как задачу оценки, можно повысить качество прогнозирования при сохранении малой задержки, связанной с выполнением прогнозов.
[00095] На Фиг. 6 показана блок-схема способа 600 прогнозирования траекторий агента в соответствии с различными реализациями раскрытой технологии. В некоторых реализациях способ 600 реализован в виде модуля прогнозирования траектории агентов, выполняемого на вычислительном устройстве, связанном с беспилотным транспортным средством.
[00096] В блоке 602 принимаются данные датчиков от датчиков, связанных с беспилотным транспортным средством. Данные датчиков могут включать в себя данные от датчиков, таких как LIDAR, радар, камеры, и других датчиков, используемых в беспилотном транспортном средстве, и могут представлять текущую ситуацию вблизи беспилотного транспортного средства в течение заданного периода времени перед прогнозированием траектории агента.
[00097] В блоке 604 данные датчиков обрабатываются для формирования данных карты признаков для ситуации в виде видов сверху или с высоты птичьего полета, имеющих соответствующий опорный кадр. В некоторых реализациях этот опорный кадр может помещать агента, для которого создается прогноз траектории, в центр данных карты признаков (например, используя центр ограничивающей рамки для агента в качестве центра карт признаков) и может ориентировать данные карты признаков таким образом, чтобы ось Y карт была совмещена с ориентацией агента.
[00098] В блоке 606 вектор признаков, представляющий текущую ситуацию, формируется на основании данных карты признаков для ситуации. В некоторых реализациях это может быть сделано с использованием заранее обученной модели машинного обучения, такой как искусственная нейронная сеть, которая сопоставляет данные карты признаков для ситуации с вектором признаков. Эта заранее обученная модель машинного обучения может быть обучена и обеспечена секцией 502 обучения модели машинного обучения, описанной выше с обращением к Фиг. 5.
[00099] В блоке 608 в заранее созданном банке траекторий библиотечных векторов 414 признаков, в котором каждый из библиотечных векторов признаков представляет возможную траекторию для агента, выполняется поиск векторов признаков, которые относятся к вектору признаков, представляющему текущую ситуацию. В некоторых реализациях это может принимать форму вычисления оценки релевантности для набора библиотечных векторов признаков. В некоторых реализациях поиск может быть выполнен с использованием приблизительного поиска K-ближайшего соседа, в котором может быть использован, например, заранее построенный иерархический граф тесного мира, доступный для движения (транспортного средства) такой как описанный в публикации Malkov и Yashunin, ссылка на которую приведена выше. Следует понимать, что могут быть использованы другие известные или разработанные позже алгоритмы или способы поиска K-ближайшего соседа, или поиск может быть выполнен с использованием другого известного или разработанного позже алгоритма сопоставления или поиска.
[000100] Этот поиск может сформировать набор оценок релевантности для набора библиотечных векторов признаков. Эти оценки релевантности могут, например, быть основаны на пространственном расстоянии между библиотечными векторами признаков и вектором признаков, представляющих текущую ситуацию, или на других мерах релевантности. После того, как эти оценки релевантности вычислены, в качестве результирующего вектора признаков можно выбрать наиболее релевантный библиотечный вектор признаков. В некоторых реализациях набор библиотечных векторов признаков может быть ранжирован в соответствии с их оценками релевантности, образуя ранжированный список. Этот ранжированный список может использоваться для выбора результирующего вектора признаков, который будет использоваться для прогнозирования траектории агента.
[000101] В блоке 610 траектория агента прогнозируется на основании траектории агента из банка траекторий, который соответствует результирующему вектору признаков. В некоторых реализациях способ прогнозирования, описанный выше, может повторяться для каждого интересующего агента, который обнаруживается вблизи беспилотного транспортного средства.
[000102] В блоке 612 прогнозируемая траектория может быть отправлена в подсистему планирования, связанную с беспилотным транспортным средством. В некоторых реализациях подсистема планирования выполняется на том же вычислительном устройстве, что и модуль прогнозирования траектории агентов. Подсистема планирования учитывает прогнозируемую траекторию для агента при планировании действий беспилотного транспортного средства. В блоке 614 осуществляется управление беспилотным транспортным средством в соответствии с этими запланированными действиями.
[000103] Специалистам в данной области техники могут стать очевидными модификации и усовершенствования вышеописанных реализаций настоящей технологии. Вышеприведенное описание предназначено для того, чтобы быть примерным, а не ограничивающим. Поэтому предполагается, что объем настоящей технологии ограничен лишь объемом прилагаемой формулы изобретения.
Изобретение относится к реализуемым компьютером способам и системам для управления беспилотным транспортным средством (ТС), в частности к способам и системам для прогнозирования траектории агента, такого как пешеход или управляемое человеком ТС, вблизи беспилотного ТС. Способ включает в себя прогнозирование траектории движения агента вблизи беспилотного ТС. Это выполняется путем: приема данных датчика, указывающих на текущую ситуацию вблизи беспилотного ТС; формирования вектора признаков текущей ситуации по меньшей мере частично на основании данных датчика; поиска в заранее созданном банке библиотечных векторов признаков для идентификации результирующего вектора признаков из заранее созданного банка, который наиболее релевантен к вектору признаков текущей ситуации, при этом каждый библиотечный вектор признаков в заранее созданном банке связан с наблюдаемой траекторией; и прогнозирования траектории агента на основании результирующего вектора признаков. Способ также включает в себя планирование действия ТС на основании прогнозируемой траектории агента и управление ТС в соответствии с запланированным действием. Повышается безопасность дорожного движения при эксплуатации. 4 н. 16 з.п. ф-лы, 6 ил.
1. Способ управления беспилотным транспортным средством, причем способ содержит этапы, на которых:
прогнозируют посредством вычислительного устройства, связанного с беспилотным транспортным средством, траекторию агента вблизи беспилотного транспортного средства путем:
приема данных датчика, указывающих на текущую ситуацию вблизи беспилотного транспортного средства, от датчика, связанного с беспилотным транспортным средством;
формирования вектора признаков текущей ситуации по меньшей мере частично на основании данных датчика;
поиска в заранее созданном банке библиотечных векторов признаков для идентификации результирующего вектора признаков из заранее созданного банка, который наиболее релевантен вектору признаков текущей ситуации, при этом каждый библиотечный вектор признаков в заранее созданном банке связан с наблюдаемой траекторией; и
прогнозирования траектории агента по меньшей мере частично на основании результирующего вектора признаков;
планирования посредством вычислительного устройства действия беспилотного транспортного средства по меньшей мере частично на основании прогнозируемой траектории агента;
и
управляют беспилотным транспортным средством согласно запланированному действию.
2. Способ по п. 1, в котором формирование вектора признаков текущей ситуации содержит использование заранее обученной нейронной сети для формирования вектора признаков текущей ситуации.
3. Способ по п. 2, в котором использование заранее обученной нейронной сети содержит этап, на котором обеспечивают карту признаков, представляющую ракурсы вида с высоты птичьего полета текущей ситуации вблизи беспилотного транспортного средства, по меньшей мере частично на основании данных датчика в качестве входных данных для заранее обученной нейронной сети.
4. Способ по п. 3, в котором карта признаков центрирована на агенте и имеет ориентацию, основанную на ориентации агента.
5. Способ по п. 1, в котором поиск в заранее созданном банке библиотечных векторов признаков содержит этап, на котором выполняют приблизительный поиска ближайшего соседа.
6. Способ по п. 5, в котором заранее созданный банк библиотечных векторов признаков включает в себя указатель на основании иерархического графа тесного мира, доступного для движения, и в котором выполнение приблизительного поиска ближайшего соседа содержит этап, на котором выполняют обход иерархического графа тесного мира, доступного для движения.
7. Способ по п. 1, в котором результирующий вектор признаков содержит библиотечный вектор признаков, который наиболее близок к вектору признаков текущей ситуации.
8. Способ по п. 1, в котором поиск в заранее созданном банке библиотечных векторов признаков содержит этап, на котором формируют ранжированный список векторов признаков из заранее созданного банка.
9. Способ по п. 8, в котором формирование ранжированного списка векторов признаков содержит этап, на котором ранжируют библиотечные векторы признаков по меньшей мере частично на основании меры релевантности библиотечных векторов признаков к вектору признаков текущей ситуации.
10. Способ формирования банка библиотечных векторов признаков для использования при прогнозировании траектории агента вблизи используемого беспилотного транспортного средства, причем способ содержит этапы, на которых:
принимают на сервере множество выборок наблюдений, причем каждая выборка наблюдений получена датчиком на беспилотном транспортном средстве, собирающем данные, причем каждая выборка наблюдений включает в себя данные о траектории наблюдаемого агента вблизи беспилотного транспортного средства, собирающего данные, в течение заданного периода времени;
осуществляют выборку на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов;
формируют на сервере библиотечный вектор признаков для каждой траектории в библиотеке траекторий агентов;
собирают на сервере банк библиотечных векторов признаков по меньшей мере частично на основании библиотечных векторов признаков и
отправляют банк библиотечных векторов признаков на вычислительное устройство, связанное с используемым беспилотным транспортным средством.
11. Способ по п. 10, в котором осуществление выборки на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов содержит этапы, на которых:
кластеризуют траектории агентов по меньшей мере из первой части множества выборок наблюдений во множество кластеров, причем каждый кластер во множестве кластеров содержит аналогичные траектории агентов;
выбирают случайным образом кластер из множества кластеров и
выбирают случайным образом траекторию агента из выбранного кластера.
12. Способ по п. 10, в котором сборка на сервере банка библиотечных векторов признаков дополнительно содержит этап, на котором формируют указатель библиотечных векторов признаков в банке библиотечных векторов признаков.
13. Способ по п. 12, в котором формирование указателя библиотечных векторов признаков содержит этап, на котором формируют граф близости библиотечных векторов признаков.
14. Способ по п. 13, в котором граф близости содержит иерархический граф тесного мира, доступный для движения.
15. Способ по п. 10, в котором формирование на сервере библиотечного вектора признаков для каждой траектории в библиотеке траекторий агентов содержит этап, на котором используют нейронную сеть для формирования библиотечного вектора признаков из каждой траектории в библиотеке траекторий агентов.
16. Способ по п. 10, в котором каждая выборка наблюдений дополнительно включает в себя данные о ситуации, окружающей наблюдаемого агента, и при этом способ дополнительно содержит этапы, на которых:
используют по меньшей мере вторую часть множества выборок наблюдений для обучения первой нейронной сети для формирования первых векторов признаков на основании входных данных ситуаций, окружающих наблюдаемых агентов; и
используют по меньшей мере вторую часть множества выборок наблюдений для совместного обучения второй нейронной сети для формирования вторых векторов признаков на основании входных данных траекторий наблюдаемых агентов; и
при этом первые векторы признаков и вторые векторы признаков будут близкими, если траектория наблюдаемого агента соответствует ситуации, окружающей этого наблюдаемого агента.
17. Сервер, содержащий:
процессор;
память, соединенную с процессором, причем память содержит запрограммированные команды, которые при выполнении процессором побуждают процессор:
осуществлять доступ на сервере к множеству выборок наблюдений, причем каждая выборка наблюдений собрана датчиком в беспилотном транспортном средстве, собирающем данные, причем каждая выборка наблюдений включает в себя данные о траектории наблюдаемого агента вблизи беспилотного транспортного средства, собирающего данные, в течение заданного периода времени;
осуществлять выборку на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов;
формировать на сервере библиотечный вектор признаков для каждой траектории в библиотеке траекторий агентов;
собирать на сервере банк библиотечных векторов признаков по меньшей мере частично на основании библиотечных векторов признаков; и
передавать банк библиотечных векторов признаков на вычислительное устройство, связанное с беспилотным транспортным средством.
18. Сервер по п. 17, в котором память содержит запрограммированные команды, которые при выполнении процессором побуждают процессор осуществлять выборку на сервере по меньшей мере первой части множества выборок наблюдений для получения библиотеки траекторий агентов путем:
кластеризации траекторий агентов по меньшей мере из первой части множества выборок наблюдений во множество кластеров, причем каждый кластер во множестве кластеров содержит аналогичные траектории агентов;
случайного выбора кластера из множества кластеров и
случайного выбора траектории агента из выбранного кластера.
19. Беспилотное транспортное средство, содержащее:
по меньшей мере один датчик;
вычислительное устройство, включающее в себя процессор и память, причем память сохраняет запрограммированные команды, которые при выполнении процессором побуждают вычислительное устройство:
прогнозировать траекторию агента вблизи беспилотного транспортного средства путем:
приема данных датчика, указывающих на текущую ситуацию вблизи беспилотного транспортного средства, от по меньшей мере одного датчика;
формирования вектора признаков текущей ситуации по меньшей мере частично на основании данных датчика;
поиска в заранее созданном банке библиотечных векторов признаков для идентификации результирующего вектора признаков из заранее созданного банка, который наиболее релевантен к вектору признаков текущей ситуации, при этом каждый библиотечный вектор признаков в заранее созданном банке связан с наблюдаемой траекторией; и
прогнозирования траектории агента по меньшей мере частично на основании результирующего вектора признаков;
планирования действия беспилотного транспортного средства по меньшей мере частично на основании прогнозируемой траектории агента;
и
управлять беспилотным транспортным средством согласно запланированному действию.
20. Беспилотное транспортное средство по п. 19, содержащее беспилотный автомобиль.
YURIY BIKTAIROV ET AL: "PRANK: motion Prediction based on RANKing", согласно ARXIV.ORG опубл | |||
Машина для добывания торфа и т.п. | 1922 |
|
SU22A1 |
Способ регенерирования сульфо-кислот, употребленных при гидролизе жиров | 1924 |
|
SU2021A1 |
СИСТЕМА ДИНАМИЧЕСКОГО ВЕДЕНИЯ И СПОСОБ АВТОМАТИЧЕСКОГО УПРАВЛЕНИЯ С ПРИМЕНЕНИЕМ ТРЕХМЕРНЫХ ВРЕМЯПРОЛЕТНЫХ КАМЕР | 2015 |
|
RU2699177C2 |
CN 111114543 B, 03.07.2020 | |||
US 9911346 B2, 06.03.2018. |
Авторы
Даты
2023-07-26—Публикация
2021-05-28—Подача