Способы и системы для определения компьютером наличия объектов
METHODS AND SYSTEMS FOR COMPUTER TO DETERMINE PRESENCE OF OBJECTS

Область техники, к которой относится изобретение
[0001] Настоящая технология относится к компьютерным способам и системам для определения наличия объектов и, в частности, к способам и системам для определения наличия объектов вокруг самоуправляемого транспортного средства.
Уровень техники
[0002] В уровне техники предложены и реализованы компьютерные навигационные системы, способные содействовать навигации транспортного средства и/или управлению транспортным средством. Известны различные системы такого рода: от простых решений на основе определения местоположения по карте, таких как компьютерные системы помощи водителю при навигации на маршруте от пункта отправления до пункта назначения, до более сложных решений, таких как компьютеризированные и/или автономные системы вождения.
[0003] Некоторые из этих систем реализованы в виде широко известной системы круиз-контроля. В этом случае компьютерная система, установленная на транспортном средстве, поддерживает заданную пользователем скорость движения транспортного средства. Некоторые системы круиз-контроля реализуют систему интеллектуального управления дистанцией, позволяя пользователю задавать расстояние до идущего впереди автомобиля (например, выбирать значение, выраженное в количестве транспортных средств). В дальнейшем компьютерная система регулирует скорость транспортного средства по меньшей мере частично в зависимости от его приближения к впереди идущему транспортному средству на заранее заданное расстояние. Некоторые из систем круиз-контроля дополнительно оснащены системой предупреждения столкновений, которая при обнаружении транспортного средства (или другого препятствия) перед движущимся транспортным средством замедляет или останавливает его.
[0004] Некоторые из наиболее передовых систем обеспечивают полностью автономное движение транспортного средства без непосредственного участия оператора (т.е. водителя) в управлении. Эти автономные транспортные средства содержат компьютерные системы, способные ускорять, замедлять, останавливать, перестраивать в другой ряд и самостоятельно парковать транспортное средство.
[0005] Одна из основных технических проблем, возникающих при реализации вышеупомянутых компьютерных систем, заключается в способности компьютерной системы, установленной на транспортном средстве, обнаруживать объект вблизи транспортного средства, например, движущееся впереди транспортное средство, которое может представлять опасность для данного транспортного средства и требовать принятия компьютерной системой мер, таких как торможение или иное изменение скорости, остановка или перестроение в другой ряд. В частности, проблема обнаружения объекта заключается не столько в двухальтернативном обнаружении (наличия или отсутствия объекта), сколько в скорости анализа и в точности обнаружения, особенно в предотвращении ложноотрицательных результатов, когда система не выявляет объект, в действительности существующий впереди транспортного средства или рядом с ним.
[0006] Важность этой проблемы иллюстрируется следующим гипотетическим сценарием. Предположим, что самоуправляемое или полуавтономное транспортное средство движется по маршруту. Ребенок (или взрослый или домашнее животное и т.п.) бежит перед транспортным средством. Предполагается, что компьютерная система, управляющая транспортным средством, должна быстро обнаружить наличие такого объекта и выполнить корректирующие действия с тем, чтобы избежать столкновения. Разумеется, что чем быстрее компьютерная система обнаружит наличие объекта, тем больше останется времени для определения корректирующего действия и для выдачи команды транспортному средству на выполнение корректирующего действия.
[0007] Известно несколько способов обнаружения объектов.
[0008] В патенте США №9530062 (Nguyen Nguyen et al., выдан 27.12.2016, передан компании Volkswagen AG) описана устанавливаемая на транспортном средстве система для оценки границы полосы движения на основе приподнятых маркеров проезжей части дороги, отмечающих эту границу. Устанавливаемая на транспортном средстве система содержит камеру для получения данных изображений, касающихся отражающих и неотражающих приподнятых маркеров проезжей части дороги, процессор обработки изображений для обработки кадров данных изображений, зафиксированных камерой, лидарный детектор для получения лидарных данных, касающихся отражающих приподнятых маркеров проезжей части дороги, и процессор лидара для обработки кадров лидарных данных, зафиксированных лидарным детектором. Процессор обработки изображений формирует первую вероятностную модель для границы полосы движения, а процессор лидара формирует вторую вероятностную модель для границы полосы движения. Бортовая система объединяет первую вероятностную модель и вторую вероятностную модель, формирует объединенную вероятностную модель и оценивает границу полосы движения на основе объединенной вероятностной модели.
[0009] В патенте США №9710714 (выдан 18.07.2017, Chen et al., передан компании Nokia Technologies OY) описаны прием данных облака точек и сегментация плоскости земли. Двумерное изображение сегментированной плоскости земли формируют на основе значений интенсивности сегментированной плоскости земли. Возможные разделительные линии определяют на основе интенсивности в сформированном двумерном изображении. Принимают данные изображения, которыми дополняют сформированное двумерное изображение. Возможные разделительные линии в принятых данных изображения определяют на основе возможных разделительных линий в зафиксированном двумерном изображении. На основе набора разделительных линий двумерного изображения и принятых данных изображения выбирают фрагменты изображения. Формируют карты признаков, содержащие фрагменты изображения, выбранные из зафиксированного двумерного изображения и принятых данных. Затем субдискретизируют набор карт признаков, а на основе набора карт признаков формируют вектор признаков. Из сформированного вектора признаков определяют разделительные линии.
[00010] В международной публикации WO 2016/100814 (Giering et al., опубликована 23.06.2016) описан способ, включающий в себя объединение мультимодальных данных датчиков от множества датчиков с различными модальностями. В мультимодальных данных датчиков обнаруживают по меньше мере одну интересующую область. При обнаружении по меньшей мере одной интересующей области в мультимодальных данных датчиков выделяют один или несколько интересующих фрагментов. В отношении одного или нескольких интересующих фрагментов в дальнейшем применяют модель, использующую глубокую сверточную нейронную сеть. Для получения результата постобработки для одного или нескольких интересующих фрагментов выполняют постобработку результата применения модели. Выводят индикацию восприятия результата постобработки.
[00011] В международной публикации WO 2016/122969 (Ratcliffe, опубликована 04.08.2016) описана система помощи водителю транспортного средства, содержащая систему экспертной оценки для объединения информации, полученной из различных источников данных. Источники данных могут соответствовать условиям, связанным как с транспортным средством в целом, так и с внешними элементами. Система экспертной оценки отслеживает и оценивает информацию от источников данных в соответствии с набором правил путем преобразования каждого значения данных в значение метрики, определения веса для каждой метрики, присвоения метрике определенного веса и формирования взвешенной метрики, соответствующей каждому значению данных. Система экспертной оценки сравнивает каждую взвешенную метрику (или линейную комбинацию метрик) с одним или несколькими пороговыми значениями. Результаты сравнения обеспечивают оценку вероятности возникновения одной или нескольких дорожных ситуаций.
Раскрытие изобретения
[00012] Разработчикам настоящей технологии известны транспортные средства (компьютеризированные или самоуправляемые транспортные средства), оснащенные несколькими датчиками, такими как первый датчик (камера и т.п.) и второй датчик (контрольно-измерительный прибор на основе лидара).
[00013] Варианты осуществления настоящей технологии разработаны на основе понимания разработчиками того, что может быть полезно дополнять данные трехмерного облака точек (такие как данные лидара) для конкретной области релевантными данными из полученного фотоизображения. Кроме того, разработчики установили, что основная проблема «сопоставления» информации двумерного изображения с данными трехмерного облака точек (такими как данные лидара) заключается в том, что проекция данных лидара (трехмерная) на зафиксированное изображение (двумерное) или наоборот по определению является неточной. Объекты, которые могут находиться далеко друг от друга в трехмерном пространстве (и, следовательно, взаимно не связанные), могут отображаться близко друг к другу в двумерной проекции и, следовательно, представлять «шумовую» информацию по отношению к объекту привязки в трехмерном пространстве.
[00014] В общем случае варианты осуществления настоящей технологии относятся к использованию двух сверточных нейронных серей (CNN, Convolutional Neural Networks) для определения релевантной информации двумерного фотоизображения для релевантной области данных трехмерного облака точек (таких как данные лидара). В известном смысле не имеющие ограничительного характера варианты осуществления настоящей технологии относятся к использованию информации фотоизображения (например, цвета, интенсивности и т.д.) для «раскрашивания» (т.е. дополнения) информации, представленной трехмерными данными облака точек (такими как данные лидара).
[00015] Следует отметить, что основным аспектом не имеющих ограничительного характера вариантов осуществления настоящей технологии является совместная «калибровка» фотоизображения и данных трехмерного облака точек (таких как данные лидара). Иными словами, не имеющие ограничительного характера варианты осуществления настоящей технологии в общем случае позволяют выявить заданную область фотоизображения, которая в целом соответствует заданным областям облака лидара.
[00016] Согласно первому аспекту настоящей технологии, предложен способ определения объекта, который может присутствовать рядом с транспортным средством, содержащим первый датчик, способный фиксировать изображение окружающей зоны, второй датчик, способный фиксировать данные трехмерного облака точек окружающей зоны, и процессор, соединенный с первым и вторым датчиками и имеющий доступ к выполняемым компьютером командам, при выполнении которых процессор осуществляет следующие действия: прием от первого датчика изображения, зафиксированного первым датчиком; обработка изображения для формирования тензора изображения, характеризующего информацию, содержащуюся в изображении; прием от второго датчика указания на данные трехмерного облака точек, зафиксированные вторым датчиком; обработка данных трехмерного облака точек для формирования тензора данных трехмерного облака точек, характеризующего информацию, содержащуюся в данных трехмерного облака точек, включая по меньшей мере часть данных трехмерного облака точек, содержащую информацию о по меньшей мере одном объекте-кандидате; анализ тензора изображения для выявления релевантной части данных в информации изображения, соответствующей по меньшей мере одному объекту-кандидату; объединение тензора данных трехмерного облака точек с релевантной частью тензора изображения, связанной с релевантной частью данных в информации изображения, для формирования объединенного тензора, связанного с окружающей зоной; и сохранение объединенного тензора с целью его использования алгоритмом машинного обучения (MLA, Machine Learning Algorithm) для определения наличия объекта в окружающей зоне.
[00017] В некоторых вариантах осуществления способ дополнительно включает в себя обучение алгоритма машинного обучения, что предусматривает обработку алгоритмом обучающего набора, содержащего по меньшей мере:
[00018] изображение;
[00019] данные трехмерного облака точек;
[00020] указание на наличие по меньшей мере одного объекта-кандидата в качестве цели обучения,
[00021] при этом результатом обучения является способность алгоритма машинного обучения с использованием объединенного тензора прогнозировать возможное наличие объекта рядом с транспортным средством.
[00022] В некоторых вариантах осуществления способа указание на наличие по меньшей мере одного объекта содержит указание на класс из набора заранее заданных классов для по меньшей мере одного объекта.
[00023] В некоторых вариантах осуществления способа алгоритм машинного обучения представляет собой первый алгоритм машинного обучения, а обработка данных трехмерного облака точек для формирования тензора данных трехмерного облака точек, характеризующего информацию, содержащуюся в данных трехмерного облака точек, включая по меньшей мере один объект-кандидат, включает в себя:
[00024] обработку данных трехмерного облака точек сверточной нейронной сетью для формирования тензора трехмерного облака точек.
[00025] В некоторых вариантах осуществления способ перед обработкой сверточной нейронной сетью дополнительно включает в себя предварительную обработку данных трехмерного облака точек, предусматривающую:
[00026] разделение данных трехмерного облака точек на множество двумерных слоев;
[00027] добавление дополнительного слоя, обеспечивающего по меньшей мере один аналитический признак, относящийся к соответствующей трехмерной части данных трехмерного облака точек; при этом
[00028] обработка данных трехмерного облака точек для формирования тензора данных трехмерного облака точек включает в себя обработку множества двумерных слоев и дополнительного слоя.
[00029] В некоторых вариантах осуществления способа по меньшей мере один аналитический признак содержит количество точек в соответствующей области данных трехмерного облака точек, и/или «высоту» точки, и/или интенсивность точек.
[00030] В некоторых вариантах осуществления способа обработка множества двумерных слоев и дополнительного слоя включает в себя формирование двух тензоров:
W×H×C
[00031] первый тензор L∈R,
[00032] где
[00033] L - тензор признаков;
[00034] W и Н - пространственные размеры;
[00035] С - количество признаков,
[00036] и второй тензор
[00037] где
[00038]  - тензор запросов;
[00039] W и H- пространственные размеры;
[00040] М - количество признаков.
[00041] В некоторых вариантах осуществления способа обработка изображения для формирования тензора изображения, характеризующего информацию, содержащуюся в изображении, включает в себя обработку изображения с использованием сверточной нейронной сети.
[00042] В некоторых вариантах осуществления способа тензор изображения включает в себя два тензора:
W'×H'×D
[00043] первый тензор V∈R
[0044] где
[00045] V - тензор значений;
[00046] W' и H' - пространственные размеры;
[00047] D - количество признаков,
[00048] и
W'×H'×M
[00049] второй тензор K∈R
[00050] где
[00051] K - тензор ключей;
[00052] W' и Н' - пространственные размеры;
[00053] М - количество признаков.
[00054] В некоторых вариантах осуществления способа тензор K используется алгоритмом «внимания» для формирования весовых коэффициентов.
[00055] В некоторых вариантах осуществления способа тензор V взвешивается с использованием весовых коэффициентов, сформированных при осуществлении расчетов согласно алгоритму «внимания».
[00056] В некоторых вариантах осуществления способа обработка данных трехмерного облака точек для формирования тензора данных трехмерного облака точек, характеризующего информацию, содержащуюся в данных трехмерного облака точек, включая по меньшей мере один объект-кандидат, включает в себя обработку данных трехмерного облака точек с использованием первой сверточной нейронной сети для формирования тензора трехмерного облака точек, а обработка изображения для формирования тензора изображения, характеризующего информацию, содержащуюся в изображении, включает в себя обработку изображения с использованием второй сверточной нейронной сети.
[00057] В некоторых вариантах осуществления способ дополнительно включает в себя обучение первой сверточной нейронной сети и второй сверточной нейронной сети на основе полученного алгоритмом машинного обучения прогноза, используемого для расчета функции потерь.
[00058] В некоторых вариантах осуществления способа прогноз дополнительно содержит указание на предсказанную ориентацию.
[00059] В некоторых вариантах осуществления способа функция потерь по меньшей мере частично основана на предсказанной ориентации.
[00060] В некоторых вариантах осуществления способа обучение включает в себя формирование параметра коррекции ориентации, который основан на предсказанной ориентации и на фактической ориентации по меньшей мере одного объекта.
[00061] В некоторых вариантах осуществления способ дополнительно включает в себя использование алгоритма машинного обучения для прогнозирования параметра наличия, который связан с объектом-кандидатом и представляет собой указание на его наличие или указание на его отсутствие.
[00062] В некоторых вариантах осуществления способ дополнительно включает в себя использование алгоритма машинного обучения для прогнозирования параметра наличия, который связан с по меньшей мере одним объектом-кандидатом и представляет собой указание на класс объектов из набора заранее заданных классов, связанный с по меньшей мере одним объектом-кандидатом.
[00063] В некоторых вариантах осуществления способа параметр наличия содержит параметры размеров трехмерного параллелепипеда и координаты его центральной точки.
[00064] В некоторых вариантах осуществления способа
[00065] тензор изображения содержит два тензора:
W'×H'×D
[00066] первый тензор V∈R,
[00067] где
[00068] V - тензор значений;
[00069] W' и Н'- пространственные размеры;
[00070] D - количество признаков,
[00071] и
W'×H'×M
[00072] второй тензор K∈R,
[00073] где
[00074] K - тензор ключей;
[00075] W' и Н' - пространственные размеры;
[00076] М - количество признаков,
[00077] при этом тензор данных трехмерного облака точек содержит:
W×H×C
[00078] первый тензор L∈R,
[00079] где
[00080] L - тензор признаков;
[00081] W и H - пространственные размеры;
[00082] С - количество признаков,
[00083] и второй тензор
[00084] где
[00085]  - тензор запросов;
[00086] W и Н - пространственные размеры;
[00087] М - количество признаков.
[00088] В некоторых вариантах осуществления способа
[00089] определение соответствующей области данных изображения включает в себя определение запроса для заданного запроса  из тензора запросов; при этом
[00090] объединение тензора данных трехмерного облака точек с релевантной частью тензора изображения для формирования объединенного тензора включает в себя:
[00091] расчет для заданного запроса q значения скалярного произведения вектора запроса и вектора ключа ωj=<q, Kj>;
[00092] преобразование значения скалярного произведения векторов в преобразованный вектор
[00093] использование преобразованного вектора в качестве веса для вектора признаков изображения путем расчета взвешенной суммы вектора значений
i
i
[00094] конкатенацию взвешенной суммы F=[L, ν] для формирования объединенного тензора из тензора данных трехмерного облака точек и релевантной части тензора изображения.
W×H×(C+D)
[00095] В некоторых вариантах осуществления способ дополнительно включает в себя повторение определения соответствующей области для каждого значения запроса q с целью формирования объединенного тензора F∈R.
[00096] В некоторых вариантах осуществления способа первый датчик представляет собой камеру, а второй датчик представляет собой лидар.
[00097] В некоторых вариантах осуществления способ дополнительно включает в себя выполнение калибровки первого датчика и второго датчика таким образом, что процессор способен определять заданную область изображения, соответствующую заданной области трехмерного облака точек.
[00098] В некоторых вариантах осуществления способ дополнительно включает в себя определение заранее заданной области данных трехмерного облака точек, которая, возможно, содержит по меньшей мере один объект-кандидат.
[00099] В соответствии с другим аспектом настоящей технологии предложен процессор электронного устройства, имеющий доступ к
[000100] первому датчику, способному фиксировать изображение окружающей зоны,
[000101] второму датчику, способному фиксировать данные трехмерного облака точек окружающей зоны,
[000102] и имеющий доступ к выполняемым компьютером командам, при выполнении которых процессор осуществляет следующие действия:
[000103] прием от первого датчика изображения, зафиксированного первым датчиком;
[000104] обработка изображения для формирования тензора изображения, характеризующего информацию, содержащуюся в изображении;
[000105] прием от второго датчика указания на данные трехмерного облака точек, зафиксированные вторым датчиком;
[000106] обработка данных трехмерного облака точек для формирования тензора данных трехмерного облака точек, характеризующего информацию, содержащуюся в данных трехмерного облака точек, включая по меньшей мере часть данных трехмерного облака точек, содержащую информацию о по меньшей мере одном объекте-кандидате;
[000107] анализ тензора изображения для выявления релевантной части данных в информации изображения, соответствующей по меньшей мере одному объекту-кандидату;
[000108] объединение тензора данных трехмерного облака точек с релевантной частью тензора изображения, связанной с релевантной частью данных в информации изображения, для формирования объединенного тензора, связанного с окружающей зоной;
[000109] сохранение объединенного тензора с целью его использования алгоритмом машинного обучения для определения наличия объекта в окружающей зоне.
[000110] В контексте настоящего описания термин «сервер» означает компьютерную программу, выполняемую соответствующими аппаратными средствами и способную принимать запросы (например, от клиентских устройств) через сеть и выполнять эти запросы или инициировать их выполнение. Аппаратные средства могут быть реализованы в виде одного физического компьютера или одной компьютерной системы, тем не менее, это не является существенным для настоящей технологии. В настоящем контексте выражение «сервер» не означает, что каждая задача (например, принятая команда или запрос) или некоторая определенная задача принимается, выполняется или запускается одним и тем же сервером (т.е. одними и теми же программными и/или аппаратными средствами). Это выражение означает, что любое количество программных средств или аппаратных средств может принимать, отправлять, выполнять или запускать выполнение любой задачи или запроса, либо результатов любых задач или запросов. Все эти программные и аппаратные средства могут представлять собой один сервер или несколько серверов, при этом оба эти случая подразумеваются в выражении «по меньшей мере один сервер».
[000111] В контексте настоящего описания термин «электронное устройство» означает любое компьютерное аппаратное средство, способное выполнять программы, подходящие для решения конкретной задачи. В контексте настоящего описания термин «электронное устройство» подразумевает, что устройство может функционировать в качестве сервера для других электронных устройств и клиентских устройств, тем не менее, это не является обязательным для настоящей технологии. Таким образом, некоторыми (не имеющими ограничительного характера) примерами электронных устройств являются персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует понимать, что в настоящем контексте тот факт, что устройство функционирует в качестве электронного устройства, не означает, что оно не может функционировать в качестве сервера для других электронных устройств. Использование выражения «электронное устройство» не исключает использования нескольких клиентских устройств для приема, отправки, выполнения или инициирования выполнения любой задачи или запроса, либо результатов любых задач или запросов или шагов любого описанного здесь способа.
[000112] В контексте настоящего описания термин «клиентское устройство» означает любое компьютерное аппаратное средство, способное выполнять программы, подходящие для решения конкретной задачи. В контексте настоящего описания термин «клиентское устройство» в общем случае связан с пользователем клиентского устройства. Таким образом, некоторыми (не имеющими ограничительного характера) примерами клиентских устройств являются персональные компьютеры (настольные компьютеры, ноутбуки, нетбуки и т.п.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что в данном контексте устройство, функционирующее как клиентское устройство, также может функционировать как сервер для других клиентских устройств. Использование выражения «клиентское устройство» не исключает использования нескольких клиентских устройств для приема, отправки, выполнения или инициирования выполнения любой задачи или запроса либо результатов любых задач или запросов, либо шагов любого описанного здесь способа.
[000113] В контексте настоящего описания выражение «информация» включает в себя информацию любого рода или вида, допускающую ее сохранение в базе данных. Таким образом, информация включает в себя аудиовизуальные произведения (изображения, фильмы, звукозаписи, презентации и т.д.), данные (данные о местоположении, числовые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы и т.д., но не ограничивается ими.
[000114] В контексте настоящего описания выражение «программный компонент» включает в себя обозначение программного обеспечения (подходящего для определенных аппаратных средств), необходимого и достаточного для выполнения соответствующей функции или нескольких функций.
[000115] В контексте настоящего описания выражение «носитель компьютерной информации» (также называется «носителем информации») означает носители любого рода и вида, в том числе ОЗУ, ПЗУ, диски (CD-ROM, DVD, гибкие диски, жесткие диски и т.д.), USB-накопители, твердотельные накопители, накопители на магнитных лентах и т.д. Для формирования носителя компьютерной информации может быть объединено множество элементов, в том числе два или более элементов носителя информации одного вида и/или два или более элементов носителя информации различных видов.
[000116] В контексте настоящего описания термин «база данных» означает любой структурированный набор данных, независимо от его конкретной структуры, программного обеспечения для управления базой данных или компьютерных аппаратных средств для хранения этих данных, их применения или обеспечения их использования иным способом. База данных может располагаться в тех же аппаратных средствах, где реализован процесс, обеспечивающий хранение или использование информации, хранящейся в базе данных, либо база данных может располагаться в отдельных аппаратных средствах, таких как специализированный сервер или множество серверов.
[000117] В контексте настоящего описания числительные «первый» «второй», «третий» и т.д. используются лишь для указания различия между существительными, к которым они относятся, но не для описания каких-либо определенных взаимосвязей между этими существительными. Например, следует понимать, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо определенного порядка, типа, хронологии, иерархии или классификации, в данном случае, серверов, а также что их использование (само по себе) не подразумевает наличие «второго сервера» в любой ситуации. Кроме того, как встречается в настоящем описании в другом контексте, ссылка на «первый» элемент и «второй» элемент не исключает того, что эти два элемента в реальности могут быть одним и тем же элементом. Таким образом, например, в некоторых случаях «первый» сервер и «второй» сервер могут представлять собой один и тот же элемент программных и/или аппаратных средств, а в других случаях- различные элементы программных и/или аппаратных средств.
[000118] Каждый вариант реализации настоящей технологии относится к по меньшей мере одной из вышеупомянутых целей и/или аспектов, но не обязательно ко всем ним. Следует понимать, что некоторые аспекты настоящей технологии, связанные с попыткой достижения вышеупомянутой цели, могут не соответствовать этой цели и/или могут соответствовать другим целям, явным образом здесь не упомянутым.
[000119] Дополнительные и/или альтернативные признаки, аспекты и преимущества вариантов осуществления данной технологии содержатся в дальнейшем описании, приложенных чертежах и формуле изобретения.
Краткое описание чертежей
[000120] Эти и другие признаки, аспекты и преимущества настоящей технологии поясняются в дальнейшем описании, приложенной формуле изобретения и следующих чертежах.
[000121] На фиг. 1 представлена схема примера компьютерной системы для реализации некоторых вариантов осуществления систем и/или способов согласно настоящей технологии.
[000122] На фиг. 2 представлена сетевая вычислительная среда, пригодная для использования с некоторыми вариантами осуществления настоящей технологии.
[000123] На фиг. 3 представлен процесс приема процессором изображения от первого датчика компьютерной системы, представленной на фиг. 1.
[000124] На фиг. 4 представлен процесс приема процессором данных трехмерного облака точек, зафиксированных вторым датчиком компьютерной системы, представленной на фиг. 1.
[000125] На фиг. 5 представлен первый этап процесса обработки изображения и первый этап процесса обработки данных трехмерного облака точек в компьютерной системе, представленной на фиг. 1.
[000126] На фиг. 6 представлен второй этап процесса обработки изображения (т.е. дальнейшей обработки обработанного изображения) и второй этап процесса обработки данных трехмерного облака точек (т.е. дальнейшей обработки обработанных данных трехмерного облака точек).
[000127] На фиг. 7 представлен процесс использования объединенного тензора, соответствующий не имеющим ограничительного характера вариантам осуществления настоящей технологии.
[000128] На фиг. 8 приведена блок-схема способа, соответствующего не имеющим ограничительного характера вариантам осуществления настоящей технологии, выполняемого в системе, представленной на фиг. 1.
Осуществление изобретения
[000129] Представленные в данном описании примеры и условный язык предназначены для лучшего понимания принципов настоящей технологии, а не для ограничения ее объема до таких специально приведенных примеров и условий. Очевидно, что специалисты в данной области техники способны разработать различные способы и устройства, которые здесь явно не описаны и не показаны, но осуществляют принципы настоящей технологии в пределах ее существа и объема.
[000130] Кроме того, чтобы способствовать лучшему пониманию, дальнейшее описание может содержать упрощенные варианты реализации настоящей технологии. Специалисту в данной области должно быть очевидно, что различные варианты осуществления данной технологии могут быть значительно сложнее.
[000131] В некоторых случаях также приводятся полезные примеры модификаций настоящей технологии. Они лишь способствуют пониманию, но не определяют объем или границы данной технологии. Представленный перечень модификаций не является исчерпывающим и специалист в данной области способен разработать другие модификации в пределах объема настоящей технологии. Кроме того, если в некоторых случаях модификации не описаны, это не означает, что они невозможны и/или что описание содержит единственный вариант реализации того или иного элемента настоящей технологии.
[000132] Кроме того, описание принципов, аспектов и вариантов реализации настоящей технологии, а также их конкретные примеры, предназначены для охвата их структурных и функциональных эквивалентов, независимо от того, известны они в настоящее время или будут разработаны в будущем. Например, специалистам в данной области техники должно быть очевидно, что любые описанные структурные схемы соответствуют концептуальным представлениям иллюстративных принципиальных схем, реализующих принципы настоящей технологии. Аналогично, должно быть очевидно, что любые блок-схемы, схемы процессов, диаграммы изменения состояния, псевдокоды и т.п. соответствуют различным процессам, которые могут быть представлены в пригодной для чтения компьютером среде и выполняться с использованием компьютера или процессора, независимо от того, показан такой компьютер или процессор в явном виде или нет.
[000133] Функции различных элементов, представленных на иллюстрациях, в том числе любого функционального блока, обозначенного как «процессор», могут быть осуществлены с использованием специализированных аппаратных средств, а также аппаратных средств, способных выполнять соответствующие программы. В случае использования процессора эти функции могут быть выполнены одним выделенным процессором, одним совместно используемым процессором или множеством отдельных процессоров, некоторые из которых могут использоваться совместно. Кроме того, явное использование термина «процессор» или «контроллер» не следует трактовать как указание исключительно на аппаратные средства, способные выполнять программное обеспечение; оно может подразумевать, помимо прочего, аппаратные средства цифрового сигнального процессора (DSP, Digital Signal Processor), сетевой процессор, специализированную интегральную схему (ASIC, Application Specific Integrated Circuit), программируемую логическую схему (FPGA, Field Programmable Gate Array), ПЗУ для хранения программного обеспечения, ОЗУ и энергонезависимое ЗУ. Кроме того, могут быть предусмотрены и другие обычные и/или заказные аппаратные средства.
[000134] В данном документе программные модули или просто модули, реализуемые программными средствами, могут быть представлены в виде любого сочетания элементов блок-схемы или других элементов, указывающих на выполнение шагов процесса и/или содержащих текстовое описание. Такие модули могут выполняться показанными явно или подразумеваемыми аппаратными средствами.
[000135] Далее с учетом вышеизложенных принципов рассмотрены некоторые не имеющие ограничительного характера примеры, иллюстрирующие различные варианты осуществления аспектов настоящей технологии.
[000136] На фиг. 1 представлена компьютерная система 100, пригодная для использования с некоторыми вариантами осуществления настоящей технологии и содержащая различные элементы аппаратных средств, в том числе один или несколько одноядерных или многоядерных процессоров, которые совместно представлены процессором 110, твердотельный накопитель 120, память 130, которая может представлять собой ОЗУ или память любого другого вида. Связь между различными элементами компьютерной системы 100 может быть осуществлена через одну или несколько внутренних шин и/или внешних шин (не показаны), таких как шина PCI, универсальная последовательная шина (USB), шина FireWire стандарта IEEE 1394, шина SCSI, шина Serial-ATA и т.д., с которыми различные аппаратные элементы соединены электронными средствами. Согласно вариантам осуществления настоящей технологии твердотельный накопитель 120 хранит программные команды для определения наличия объекта, пригодные для загрузки в память 130 и выполнения процессором 110. Например, программные команды могут входить в состав управляющего приложения транспортного средства, выполняемого процессором 110. Следует отметить, что компьютерная система 100 может содержать дополнительные и/или опциональные элементы (не показаны), такие как модули передачи данных по сети, модули определения местоположения и т.д.
[000137] На фиг. 2 представлена сетевая вычислительная среда 200, пригодная для использования с некоторыми вариантами осуществления систем и/или способов согласно настоящей технологии. Сетевая вычислительная среда 200 содержит электронное устройство 210, связанное с транспортным средством 220 или с пользователем (не показан), который может управлять транспортным средством 220, и сервер 235, связанный с электронным устройством 210 через сеть 245 связи (например, сеть Интернет и т.п., как более подробно описано ниже). Кроме того, сетевая вычислительная среда 200 при необходимости может содержать спутник (не показан) глобальной навигационной спутниковой системы (GPS), передающий сигнал GPS электронному устройству 210 или и/или принимающий сигнал GPS от электронного устройства 210. Следует понимать, что настоящая технология не ограничена системой GPS и может использовать технологию определения местоположения, отличную от системы GPS. Следует отметить, что спутник системы GPS может вовсе отсутствовать.
[000138] Транспортное средство 220, с которым связано электронное устройство 210, может представлять собой любое транспортное средство для отдыха или перевозки грузов, такое как автомобиль для личного или коммерческого использования, грузовой автомобиль, мотоцикл и т.д. Транспортное средство может управляться пользователем или представлять собой самоуправляемое транспортное средство. Следует отметить, что не накладывается каких-либо ограничений на конкретные параметры транспортного средства 200, такие как производитель транспортного средства, модель транспортного средства, год выпуска транспортного средства, масса транспортного средства, размеры транспортного средства, распределение веса транспортного средства, площадь поверхности транспортного средства, высота транспортного средства, вид трансмиссии (например, привод на два или четыре колеса), вид шин, тормозная система, топливная система, пробег, идентификационный номер транспортного средства, рабочий объем двигателя и т.д.
[000139] На реализацию электронного устройства 210 не накладывается каких-либо ограничений. Электронное устройство 210 может быть реализовано, например, в виде блока управления двигателем транспортного средства, центрального процессора транспортного средства, автомобильного навигатора (например, TomTom™, Garmin™), планшета, персонального компьютера, встроенного в транспортное средство 220, и т.д. Следует отметить, что электронное устройство 210 может быть постоянно связано или не связано с транспортным средством 220. В качестве дополнения или альтернативы, электронное устройство 210 может быть реализовано в устройстве беспроводной связи, таком как мобильный телефон (например, смартфон или радиотелефон). В некоторых вариантах осуществления электронное устройство 210 содержит дисплей 270.
[000140] Электронное устройство 210 может содержать все элементы компьютерной системы 100, представленной на фиг. 1, или только некоторые из них. В некоторых вариантах осуществления электронное устройство 210 представляет собой бортовое компьютерное устройство и содержит процессор 110, твердотельный накопитель 120 и память 130. Иными словами, электронное устройство 210 содержит аппаратные средства и/или программное обеспечение и/или встроенное программное обеспечение либо их сочетание для определения наличия объекта рядом с транспортным средством 220, как более подробно описано ниже.
[000141] Согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии, электронное устройство 210 дополнительно содержит или имеет доступ к первому датчику 230, способному фиксировать изображение окружающей зоны 250, и ко второму датчику 240, способному фиксировать данные трехмерного облака точек окружающей зоны 250. Первый датчик 230 и второй датчик 240 функционально связаны с процессором 110 и способны передавать полученную информацию процессору 110 для ее последующей обработки, как более подробно описано ниже.
[000142] В некотором не имеющем ограничительного характера примере первый датчик 230 содержит камеру. На реализацию камеры не накладывается каких-либо особых ограничений. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии камера может быть реализована, например, в виде черно-белой камеры с разрешением, достаточным для обнаружения объектов на заранее заданных расстояниях приблизительно до 30 м (тем не менее, без выхода за пределы объема настоящего изобретения могут быть использованы камеры с другим разрешением и дальностью действия). Камера может быть установлена с внутренней стороны в верхней части ветрового стекла транспортного средства 220, тем не менее, без выхода за пределы объема настоящего изобретения возможны и другие места ее размещения, в том числе заднее окно, боковые окна, передний капот, крыша, передняя решетка радиатора или передний бампер транспортного средства 220. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии первый датчик 230 может быть помещен в специальный кожух (не показан), установленный сверху транспортного средства 220.
[000143] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии первый датчик 230 может быть реализован в виде множества камер. Например, множество камер может содержать камеры в количестве, достаточном для фиксации панорамного изображения окружающей зоны 250.
[000144] В некоторых вариантах осуществления настоящей технологии камера (одна или несколько камер, в виде которых реализован первый датчик 230) способна фиксировать заранее заданную часть окружающей зоны 250 вокруг транспортного средства 220. В некоторых вариантах осуществления настоящей технологии камера способна фиксировать изображение (или последовательность изображений), соответствующее приблизительно 90 градусам расположенной вокруг транспортного средства 220 окружающей зоны 250 вдоль траектории движения транспортного средства 220.
[000145] В других вариантах осуществления настоящей технологии камера способна фиксировать изображение (или последовательность изображений), соответствующее приблизительно 180 градусам расположенной вокруг транспортного средства 220 окружающей зоны 250 вдоль траектории движения транспортного средства 220. В других вариантах осуществления настоящей технологии камера способна фиксировать изображение (или последовательность изображений), соответствующее приблизительно 360 градусам расположенной вокруг транспортного средства 220 окружающей зоны 250 вдоль траектории движения транспортного средства 220 (иными словами, всю окружающую зону вокруг транспортного средства 220).
[000146] В не имеющем ограничительного характера примере первый датчик 230 может быть реализован в виде камеры, поставляемой компанией FLIR Integrated Imaging Solutions Inc., 12051 Riverside Way, Richmond, ВС, V6W 1K7, Canada. Очевидно, что первый датчик 230 может быть реализован в виде любого другого подходящего оборудования.
8
[000147] В не имеющем ограничительного характера примере второй датчик 240 содержит лидар (лазерную систему обнаружения и измерения дальности). Лидар расшифровывается как лазерная система обнаружения и измерения дальности (LIDAR, LIght Detection And Ranging). Предполагается, что специалисту в данной области понятны особенности функционирования лидара, тем не менее, в общем случае, передатчик (не показан) второго датчика 240, реализованного в виде лидара, отправляет лазерный импульс, а фотоны отражаются обратно в приемник (не показан) второго датчика 240, реализованного в виде лидара. Фотоны, попадающие в приемник, собираются с использованием оптической системы и подсчитываются как функция времени. В дальнейшем процессор 110 может рассчитать дальность перемещения фотонов (в прямом и обратном направлениях) с учетом скорости света (приблизительно 3×10 м/с). Фотоны могут отражаться от большого количества различных окружающих транспортное средство 220 элементов, таких как частицы (аэрозоли или молекулы) в атмосфере, другой автомобиль, неподвижные объекты или возможные препятствия перед транспортным средством 220.
[000148] В не имеющем ограничительного характера примере второй датчик 240 может быть реализован в виде датчика на основе лидара, например датчика, поставляемого компанией Velodyne LiDAR, Inc., 5521 Hellyer Avenue, San Jose, CA 95138, United States of America. Очевидно, что второй датчик 240 может быть реализован в виде любого другого подходящего оборудования.
[000149] В некоторых вариантах осуществления настоящей технологии второй датчик 240 может быть реализован в виде множества датчиков на основе лидара, например, трех или любого другого подходящего количества датчиков. В некоторых вариантах осуществления настоящей технологии второй датчик 240 (реализованный в виде одного или нескольких датчиков на основе лидара) может находиться в вышеупомянутом кожухе (отдельно не показан), размещенном на крыше транспортного средства 220.
[000150] В тех вариантах осуществления настоящей технологии, в которых второй датчик 240 реализован в виде нескольких датчиков на основе лидара, помещенных в кожух (не показан), пространственное расположение нескольких датчиков на основе лидара может учитывать конкретную техническую конфигурацию нескольких датчиков на основе лидара, конфигурацию кожуха, погодные условия (например, частые дожди, снег и другие факторы) региона, в котором используется транспортное средство 220, и т.д.
[000151] В некоторых вариантах осуществления настоящей технологии первый датчик 230 и второй датчик 240 откалиброваны таким образом, что для изображения, зафиксированного первым датчиком 230, и трехмерного облака точек, зафиксированного вторым датчиком 240, процессор 110 способен определить область изображения, соответствующую заданной области трехмерного облака точек. Эта калибровка может быть выполнена при изготовлении и/или при настройке транспортного средства 220 или в любой удобный последующий момент времени. Иными словами, калибровка может быть выполнена при модернизации транспортного средства с использованием первого датчика 230 и второго датчика 240 в соответствии с предлагаемыми здесь не имеющими ограничительного характера вариантами осуществления настоящей технологии. В качестве альтернативы, калибровка может быть выполнена при оснащении транспортного средства первым датчиком 230 и вторым датчиком 240 в соответствии с предлагаемыми здесь не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[000152] В некоторых вариантах осуществления настоящей технологии сеть 245 связи представляет собой сеть Интернет. В других, не имеющих ограничительного характера вариантах осуществления изобретения сеть связи может быть реализована в виде любой подходящей локальной сети (LAN, Local Area Network), глобальной сети (WAN, Wide Area Network), частной сети связи и т.п. Очевидно, что варианты осуществления сети связи приведены исключительно в иллюстративных целях. Реализация линии связи (отдельно не обозначена) между электронным устройством 210 и сетью 245 связи зависит, среди прочего, от реализации электронного устройства 210. Только в качестве примера, не имеющего ограничительного характера, в тех вариантах осуществления настоящей технологии, в которых электронное устройство 210 реализовано в виде устройства беспроводной связи, такого как смартфон или автомобильный навигатор, линия связи может быть реализована в виде линии беспроводной связи. Примерами линий беспроводной связи являются канал сети связи 3G, канал сети связи 4G и т.п. Кроме того, в сети 245 связи может быть использовано беспроводное соединение с сервером 235.
[000153] В некоторых вариантах осуществления настоящей технологии сервер 235 реализован в виде обычного компьютерного сервера и может содержать все элементы компьютерной системы 100, представленной на фиг. 1, или только некоторые из них. В одном, не имеющем ограничительного характера примере сервер 235 реализован в виде сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™, тем не менее, он может быть реализован и с использованием любых других подходящих аппаратных средств, прикладного программного обеспечения и/или встроенного программного обеспечения либо их сочетания. В представленных не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 235 представляет собой один сервер. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии (не показаны) функции сервера 235 могут быть распределены между несколькими серверами.
[000154] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии процессор 110 устройства 210 может быть связан с сервером 235 для приема одного или нескольких обновлений. Обновления могут представлять собой обновления программного обеспечения, обновления карт, обновления маршрутов, обновления данных о погоде и т.д. Кроме того, в некоторых вариантах осуществления настоящей технологии процессор 110 может быть способен передавать серверу 235 некоторые рабочие данные, такие как пройденные маршруты, данные о дорожном движении, рабочие характеристики и т.д. Все данные, передаваемые между транспортным средством 220 и сервером 235, или только некоторые из них могут быть зашифрованы и/или обезличены.
[000155] Процессор 110 соединен с первым датчиком 230 и вторым датчиком 240 для приема от них данных изображения. Процессор 110 имеет доступ к выполняемым компьютером командам (хранящимся, например, в твердотельном накопителе 120 или в памяти 130), при выполнении которых процессор 110 осуществляет следующие действия:
(а) прием от первого датчика 230 изображения, зафиксированного первым датчиком 230;
(б) обработка изображения для формирования тензора изображения, характеризующего информацию, содержащуюся в изображении; (в) прием от второго датчика 240 указания на данные трехмерного облака точек, зафиксированные вторым датчиком 240; (г) обработка данных трехмерного облака точек для формирования тензора данных трехмерного облака точек, характеризующего информацию, содержащуюся в данных трехмерного облака точек, включая по меньшей мере часть данных трехмерного облака точек, содержащую информацию о по меньшей мере одном объекте-кандидате; (д) анализ тензора изображения для выявления части данных в информации изображения, соответствующей по меньшей мере одному объекту-кандидату; (е) объединение тензора данных трехмерного облака точек с релевантной частью тензора изображения, связанной с релевантной частью данных в информации изображения, для формирования объединенного тензора, связанного с окружающей зоной; (ж) сохранение объединенного тензора с целью его использования алгоритмом машинного обучения для определения наличия объекта в окружающей зоне 250.
[000156] Ниже более подробно описана каждая из этих функций процессора 110. Сначала приведено функциональное описание процесса, а затем описание не имеющих ограничительного характера примеров математических формул, которые могут быть реализованы процессором 110 для выполнения различных расчетов.
[000157] Прием изображения, зафиксированного первым датчиком 230
[000158] На фиг. 3 представлен процесс, выполняемый процессором 110 для приема изображения 310 от первого датчика 230. В некоторых вариантах осуществления настоящей технологии изображение 310 фиксируется в виде обычного RGB-изображения. В некоторых вариантах осуществления настоящей технологии, в которых первый датчик 230 реализован в виде нескольких камер, прием отображения 310 может представлять собой прием нескольких RGB-изображений.
[000159] Следует отметить, что изображение 310 (или множество изображений) состоит из множества пикселей, схематично показанных в элементе 320 на фиг. 3.
[000160] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии процесс приема изображения 310 может выполняться непрерывно. В других вариантах осуществления настоящей технологии процесс приема изображения 310 может выполняться через заранее заданные интервалы времени, например, через каждые 2 мс или через любой другой подходящий интервал времени.
[000161] Прием от второго датчика 240 указания на данные трехмерного облака точек, зафиксированные вторым датчиком 240
[000162] На фиг. 4 представлен процесс, выполняемый процессором 110 для приема данных 410 трехмерного облака точек, зафиксированных вторым датчиком 240.
[000163] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии процесс приема данных 410 трехмерного облака точек может выполняться непрерывно. В других вариантах осуществления настоящей технологии процесс приема данных 410 трехмерного облака точек может выполняться через заранее заданные интервалы времени, например, через каждые 2 мс или через любой другой подходящий интервал времени.
[000164] Первый этап обработки данных трехмерного облака точек для формирования тензора данных трехмерного облака точек, характеризующего информацию, содержащуюся в данных трехмерного облака точек, включая по меньшей мере часть данных трехмерного облака точек, содержащую информацию о по меньшей мере одном объекте-кандидате, и обработки изображения для формирования тензора изображения, характеризующего информацию, содержащуюся в изображении, а именно, этап предварительной обработки данных трехмерного облака точек и изображения
[000165] На фиг. 5 приведен первый этап процесса 502 обработки изображения 310 и первый этап процесса 504 обработки данных 410 трехмерного облака точек. В общем случае процесс 502 и процесс 504 можно рассматривать в качестве «предварительной обработки» изображения 310 и данных 410 трехмерного облака точек, соответственно.
[000166] При выполнении процесса 502 процессор 110 предварительно обрабатывает изображение 310 путем применения алгоритма 510 предварительной обработки для получения обработанного изображения 514. В некоторых вариантах осуществления настоящей технологии, в которых первый датчик 230 реализован в виде нескольких камер, алгоритм 510 предварительной обработки может включать в себя объединение нескольких зафиксированных изображений 310 в одно изображение, представляющее собой обработанное изображение 514. Этот алгоритм 510 предварительной обработки может включать в себя обычные процессы для преобразования нескольких изображений в панорамный вид. В этих вариантах осуществления настоящей технологии обработанное изображение 414 представляет собой панорамный вид окружающей зоны 250.
[000167] В качестве дополнения или альтернативы, процессор 110 может предварительно обрабатывать изображение 310 для извлечения релевантной части изображения с цель получения обработанного изображения 514. В этом случае алгоритм 510 предварительной обработки может представлять собой алгоритм на основе компьютерного зрения и анализа. Например, процессор 110 может извлекать часть изображения 310, соответствующую только области перед транспортным средством 220. В качестве альтернативы процессор может извлекать из изображения 310 часть, соответствующую области перед транспортным средством 220 и сбоку от него.
[000168] Иными словами, предварительная обработка изображения 310 может включать в себя извлечение «видимой» части окружающей зоны 250, находящейся «перед» транспортным средством 220 (т.е. области в направлении движения транспортного средства 220, в которой на пути движения транспортного средства 220 может находиться объект). В этих альтернативных вариантах осуществления настоящей технологии обработанное изображение 514 содержит извлеченную часть изображения 310, соответствующую заранее заданной части окружающей зоны 250, которая, как правило, заранее задается на основе релевантности описанным ниже процессам вследствие возможного наличия информации об объектах, расположенных на траектории движения транспортного средства 220.
[000169] При выполнении процесса 504 процессор 110 обрабатывает данные 410 трехмерного облака точек для получения обработанных данных 516 трехмерного облака точек. В некоторых вариантах осуществления настоящей технологии процессор 110 с применением алгоритма 512 предварительной обработки обрабатывает данные трехмерного облака точек путем формирования «вида с высоты птичьего полета» для данных трехмерного облака точек с тем, чтобы сформировать обработанные данные 516 трехмерного облака точек. Этот процесс может быть реализован с использованием известных технологий. В некоторых вариантах осуществления настоящей технологии определяется «центральная точка» вида с высоты птичьего полета, т.е. расположенная в центре точка (для вида сверху на горизонтальной и вертикальной оси).
[000170] Второй этап обработки данных трехмерного облака точек для формирования тензора данных трехмерного облака точек, характеризующего информацию, содержащуюся в данных трехмерного облака точек, включая по меньшей мере часть данных трехмерного облака точек, содержащую информацию о по меньшей мере одном объекте-кандидате, и обработки изображения для формирования тензора изображения, характеризующего информацию, содержащуюся в изображении, а именно, этап последующей обработки обработанных данных трехмерного облака точек и обработанного изображения
[000171] На фиг. 6 представлен процесс 602 для второго этапа обработки изображения 310 (т.е. для последующей обработки обработанного изображения 514) и процесс 604 для второго этапа обработки данных 410 трехмерного облака точек (т.е. для последующей обработки обработанных данных 516 трехмерного облака точек).
[000172] В общем случае процесс 602 и процесс 604 можно рассматривать как «последующую обработку», соответственно, изображений 310 (а именно, как дальнейшую обработку обработанного изображения 514) и данных 410 трехмерного облака точек (а именно, как дальнейшую обработку обработанных данных 516 трехмерного облака точек).
[000173] При выполнении процесса 602 соответствующая часть изображения 310 (например, обработанное изображение 514) обрабатывается первой сверточной нейронной сетью 612, обученной с использованием совокупности последовательных фильтров для сжатия информации, для каждого пикселя обработанного изображения 514 и создания двух карт признаков, а именно матрицы 620 ключей и матрицы 622 значений.
[000174] В общем случае, в матрице 622 значений закодирована информация, содержащаяся в соответствующем заданном пикселе. Матрица 620 ключей указывает, содержит ли заданный пиксель изображения 310 информацию, полезную для дополнения заданной области данных трехмерного изображения (т.е. для дополнения сведений о содержащемся в ней объекте).
[000175] В некоторых вариантах осуществления настоящей технологии матрица 620 создана в соответствии с парадигмой «внимания» для формирования векторов признаков. Иными словами, матрица 620 ключей выполняет функции «указателя» или «средства привлечения внимания» для конкретной области (пикселя) изображения 310, полезной для дополнения заданной области данных 410 трехмерного облака точек (т.е. содержащегося в ней объекта).
[000176] При выполнении процесса 604 соответствующая часть обработанных данных 516 трехмерного облака точек обрабатывается второй сверточной нейронной сетью 614, которая на основе обработанных данных 516 трехмерного облака точек способна формировать матрицу 642 признаков и матрицу 644 запросов. В по меньшей мере некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии процесс формирования матрицы 642 признаков и матрицы 644 запросов может быть реализован следующим образом.
[000177] Процессор 100 сначала применяет трехмерную сетку 646 в отношении обработанных данных 516 трехмерного облака точек с тем, чтобы разделить обработанные данные 516 трехмерного облака точек на множество двумерных слоев 610. Трехмерная сетка 646 имеет горизонтальный шаг 648 и вертикальный шаг 650. Горизонтальный шаг 648 может составлять, например, 10 см. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии размер горизонтального шага 648 выбирается для обеспечения баланса между эффективностью обработки и точностью выходных данных. Например, меньшее значение горизонтального шага 648 обеспечивает более высокую точность, но меньшую скорость обработки (при одной и той же вычислительной мощности процессора 110). Большее значение горизонтального шага 648 обеспечивает меньшую точность выходных данных, но большую скорость обработки (при одной и той же вычислительной мощности процессора 110). Точное значение горизонтального шага 648 может быть определено оператором сервера 235.
[000178] Вертикальный шаг 650 может составлять, например, 0,5 м. Точное значение вертикального шага 650 может быть выбрано, например, оператором сервера 235 на основе нескольких факторов. В частности, далее описано конкретное применение способов и процессов. Например, в вариантах осуществления настоящей технологии, направленных на определение объекта (такого как человек, другое транспортное средство или подобный объект, сравнимый по высоте с транспортным средством 220), который может представлять собой препятствие, может применяться вертикальный шаг 650, равный 0,5 м. В других вариантах осуществления настоящей технологии, направленных на определение расположенного ближе к земле объекта (например, разделительной линии, бордюра и т.п.), может применяться вертикальный шаг 650, равный 0,1 м.
[000179] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии процессор 110 также добавляет дополнительный слой, обеспечивающий по меньшей мере один аналитический признак, относящийся к соответствующей трехмерной части данных 410 трехмерного облака точек. Согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии, этот по меньшей мере один аналитический признак может представлять собой по меньшей мере одно из следующего: количество точек в соответствующей области данных 410 трехмерного облака точек, «высоту» (выраженную с использованием координат и т.п.) точки в соответствующей области данных 410 трехмерного облака точек, интенсивность точек в соответствующей области данных 410 трехмерного облака точек и т.п. В варианте осуществления, представленном на фиг. 6, показаны два дополнительных слоя 660.
[000180] После обработки второй сверточной нейронной сетью 614 матрица 644 запросов содержит несколько векторов (т.е. тензор данных трехмерного облака), каждый из которых определяет конкретную область (столбец) обработанных данных 516 трехмерного облака точек и матрицу 642 признаков, содержащую информацию, связанную с конкретной областью обработанных данных 516 трехмерного облака точек. Это схематически показано на фиг. 6 с использованием области 670. Конкретная область 670 обработанных данных 516 трехмерного облака точек (которая также может рассматриваться как «блок» или «параллелепипед») обрабатывается для получения соответствующего тензора данных трехмерного облака. Следует отметить, что конкретная область 670 характеризуется размером и центральной точкой (не показаны на фиг. 6).
[000181] Анализ тензора изображения для выявления части данных в информации изображения, соответствующей по меньшей мере одному объекту-кандидату
[000182] В дальнейшем процессор 110 использует матрицу 642 признаков, матрицу 644 запросов, матрицу 620 ключей и матрицу 622 значений для эффективного дополнения конкретной области информации, содержащейся в первоначальных данных 410 трехмерного облака точек, релевантной информацией, содержащейся в соответствующей части изображения 310.
[000183] Важно отметить, что согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии описанные здесь процессы направлены на то, чтобы процессор 110 выбирал релевантную информацию, содержащуюся в изображении 310, для дополнения данных 410 трехмерного облака точек. Следует отметить, что информация, содержащаяся в данных 410 трехмерного облака точек, является «трехмерной» по своему характеру, а информация, содержащаяся в изображении 310, является «двумерной». Иными словами, объекты, которые находятся «далеко» друг от друга в трехмерном пространстве и взаимно не связаны, могут отображаться близко друг к другу в двумерной проекции и, следовательно, рассматриваться как связанные (но в действительности представлять собой «шум», поскольку не имеют отношения друг к другу).
[000184] Цель не имеющих ограничительного характера вариантов осуществления настоящей технологии заключается в определении только тех частей изображения 310, которые фактически являются релевантными и могут «дополнять» информацию, содержащуюся в данных 410 трехмерного облака точек.
[000185] В общем случае можно сказать, что в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии процессор 110 формирует объединенный тензор на основе первого вектора, сформированного первой сверточной нейронной сетью 61 (т.е. матрицы 620 ключей и матрицы 622 значений), и второго вектора, сформированного второй сверточной нейронной сетью 614 (т.е. матрицы 644 запросов). Иными словами, можно сказать, что объединенный тензор характеризует (а) объединенную информацию, содержащуюся в релевантной области данных 410 трехмерного облака точек, и (б) соответствующую релевантную информацию, содержащуюся в изображении 310.
[000186] В частности, процессор 110 формирует для каждого пикселя изображения 310 скалярное произведение (могут быть использованы и другие виды обработки) заданного запроса из матрицы 644 запросов и каждого вектора 620 ключей. В результате получается несколько весов, каждый из которых характеризует часть изображения 310, соответствующую заданной области данных 410 трехмерного облака точек.
[000187] В некоторых вариантах осуществления настоящей технологии процессор 110 может применять логистическую функцию «softmax» для преобразования весовых коэффициентов в дискретное распределение, которое фактически реализует «маску весов». В дальнейшем маска весов может быть применена в отношении матрицы 622 значений для получения релевантной взвешенной информации, соответствующей заданной области данных 410 трехмерного облака точек.
[000188] Иными словами, описанная выше операция обеспечивает множество масок, при этом каждый квадрант маски обеспечивает вес, указывающий на то, обеспечивает ли соответствующий пиксель изображения 310 релевантную информацию для запроса из матрицы 644 запросов (или, иными словами, для соответствующей области данных 410 трехмерного облака точек).
[000189] Если релевантная область данных 410 трехмерного облака точек содержит, например, данные, характеризующие дерево или человека, маска может выглядеть следующим образом:
[000190] Единица (1) обозначает релевантную информацию в соответствующем изображении 310, а ноль (0) обозначает «шум» (шум согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии означает информацию, не имеющую отношения к заданной части данных 410 трехмерного облака точек).
[000191] Математические формулы
[000192] В некоторых вариантах осуществления настоящей технологии для обработки релевантной части обработанных данных 516 трехмерного облака точек при выполнении процесса 604 вторая сверточная нейронная сеть 614 обрабатывает множество двумерных слоев и дополнительный слой (или несколько дополнительных слоев), например, один или оба дополнительных слоя 660, путем формирования тензора данных трехмерного облака точек, который содержит два тензора (т.е. вышеупомянутые матрицу 642 признаков и матрицу 644 запросов, соответственно):
W×H×C
[000193] первый тензор L∈R, где
[000194] L - тензор признаков;
[000195] W и Н - пространственные размеры;
[000196] С - количество признаков;
[000197] и второй тензор  где
[000198]  - тензор запросов;
[000199] W и Н - пространственные размеры;
[000200] М - количество признаков.
[000201] В некоторых вариантах осуществления настоящей технологии для обработки релевантной части изображения 310 при выполнении процесса 602 первая сверточная нейронная сеть 612 обрабатывает обработанное изображение 514 путем формирования тензора изображения, который содержит два тензора (т.е. вышеупомянутые матрицу 622 значений и матрицу 620 ключей):
W'×H'×D
[000202] первый тензор V∈R, где
[000203] V -тензор значений;
[000204] W' и Н' - пространственные размеры;
[000205] D - количество признаков;
W'×H'×M
[000206] и второй тензор K∈R, где
[000207] K - тензор ключей;
[000208] W' и Н' - пространственные размеры;
[000209] М - количество признаков.
[000210] В некоторых вариантах осуществления настоящей технологии определение соответствующей области изображения 310 включает в себя определение запроса для заданного запроса  из тензора запросов. Таким образом, шаг объединения тензора данных трехмерного облака точек с релевантной частью тензора изображения для формирования объединенного тензора включает в себя:
[000211] расчет для заданного запроса q значения скалярного произведения вектора запроса и вектора ключа ωj=<q, Kj>;
[000212] преобразование значения скалярного произведения векторов в преобразованный вектор
[000213] использование преобразованного вектора в качестве веса для вектора признаков изображения путем расчета взвешенной суммы значений
i
j
[000214] конкатенацию взвешенной суммы F=[L, ν] с целью формирования объединенного тензора из тензора данных трехмерного облака точек и релевантной части тензора изображения.
W×H×(C+D)
[000215] Шаг определения соответствующей области может быть повторен для каждого значения запроса q с целью формирования объединенного тензора F∈R
[000216] Сохранение объединенного тензора и его использование
[000217] Объединенный тензор, сформированный согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии, может быть сохранен, например, в запоминающем устройстве (не показано), связанном с сервером 235. Сохраненный объединенный тензор может быть использован алгоритмом 280 машинного обучения (MLA), выполняемым сервером 235, для обучения определению и/или для определения наличия объекта в окружающей зоне 250.
[000218] На реализацию алгоритма 280 машинного обучения не накладывается каких-либо особых ограничений. Например, алгоритм 280 машинного обучения может быть реализован в виде нейронной сети (NN, Neural Network). В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии нейронная сеть может быть обучена с использованием метода градиентного спуска для создания дополненной трехмерной матрицы, имеющей шаг, больший шага исходной сетки (т.е. больше горизонтального шага 648 и вертикального шага 650). Например, такой больший шаг может составлять 80×80 см.
[000219] На фиг. 7 приведена более подробная схема не имеющих ограничительного характера вариантов осуществления процесса использования объединенного тензора.
[000220] На фиг. 7 представлен алгоритм 280 машинного обучения. В частности, на фиг. 7 представлен этап обучения алгоритма 280 машинного обучения. Алгоритм 280 машинного обучения принимает множество 702 обучающих наборов. Множество 702 обучающих наборов может, например, содержать первый обучающий набор 705, содержащий изображение 310, данные 410 трехмерного облака точек и признак 704 наличия по меньшей мере одного объекта-кандидата в качестве цели обучения.
[000221] Изображение 310 и данные 410 трехмерного облака точек представляют собой исходные данные, принятые от первого датчика 230 и второго датчика 240. Признак 704 наличия по меньшей мере одного объекта-кандидата представляет собой контрольный признак, указывающий на фактическое наличие объекта-кандидата на изображении 310. Эта информация может быть предоставлена, например, экспертами (не показаны). Разумеется, признак 704 наличия по меньшей мере одного объекта может быть сформирован любыми другими подходящими средствами. Например, для распознавания объектов на изображении 310 и использования распознанных объектов в качестве контрольного признака может быть применен другой алгоритм машинного обучения (не показан), основанный на алгоритмах машинного зрения.
[000222] В качестве дополнения и/или альтернативы, первый обучающий набор 705 может содержать указание 710 на объединенный тензор (или на множество объединенных тензоров), сформированный для изображения 310 и данных 410 трехмерного облака точек, как описано выше. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии указание 710 на объединенный тензор может отсутствовать. В этом случае объединенный тензор может быть сформирован при выполнении процедуры обучения. Несмотря на то, что показан только один экземпляр первого обучающего набора 705, множество 702 обучающих наборов может содержать несколько дополнительных обучающих наборов 706, содержащих информацию, схожую по структуре с информацией первого обучающего набора 705.
[000223] Следует отметить, что некоторые примеры, представленные во множестве 702 обучающих наборов, представляют собой «положительные примеры», обучающие алгоритм 280 машинного обучения определять наличие возможного объекта (т.е. объекта-кандидата), а некоторые примеры представляют собой «отрицательные примеры», обучающие алгоритм 280 машинного обучения определять отсутствие возможного объекта (т.е. отсутствие объекта-кандидата).
[000224] В процессе обучения алгоритм 280 машинного обучения формирует формулу 740 прогнозирования, позволяющую обучать алгоритм 280 машинного обучения прогнозированию возможного наличия объекта рядом с транспортным средством 220 с использованием объединенного тензора, сформированного на этапе использования алгоритма 280 машинного обучения.
[000225] Ниже более подробно описано обучение в соответствии с по меньшей мере некоторыми не имеющими ограничительного характера вариантами осуществления настоящей технологии. На основе объединенного тензора алгоритм 280 машинного обучения создает прогноз 742 для каждой ячейки дополненной трехмерной матрицы. Прогноз 742 содержит по меньшей мере два компонента: прогноз 744 наличия объекта-кандидата (т.е. присутствует ли объект заданного класса в заданной ячейке дополненной трехмерной матрицы) и ориентацию 746 объекта (для тех ячеек, для которых алгоритм 280 машинного обучения предсказал наличие объекта-кандидата). Следует отметить, что в некоторых вариантах осуществления настоящей технологии возможны один или несколько из следующих классов: человек, велосипедист, автомобиль, дерево и т.д. Следует также отметить, что для некоторых классов прогнозов ориентация 746 объекта может быть исключена из рассмотрения. Например, для человека или велосипедиста ориентация 746 объекта может быть исключена из рассмотрения.
[000226] В качестве альтернативы или дополнения, в некоторых вариантах осуществления настоящей технологии прогноз 742 может содержать параметры размеров трехмерного параллелепипеда, который может быть сформирован вокруг объекта-кандидата, и координаты его центральной точки. Трехмерный параллелепипед может соответствовать описанной выше конкретной области 670.
[000227] В процессе обучения алгоритм 280 машинного обучения формирует множество экземпляров прогноза 742 (т.е. один для каждой из ячеек дополненной трехмерной матрицы). В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии алгоритм 280 машинного обучения формирует вектор (который, например, может быть реализован в виде тензора), кодирующий объект (и класс объекта в по меньшей мере некоторых из не имеющих ограничительного характера вариантах осуществления настоящей технологии), ориентацию объекта и, при необходимости, размер и центральную точку параллелепипеда.
[000228] В дальнейшем алгоритм 280 машинного обучения формирует прогноз для известного набора (например, помеченного экспертом) из изображения 310 и данных 410 трехмерного облака точек. Отмеченное фактическое положение объектов-кандидатов используют для расчета функции потерь, указывающей на расхождение между прогнозом и фактическим положением объектов-кандидатов (которое может включать в себя все следующие параметры или только некоторые из них: ориентация объекта, размер параллелепипеда и центральная точка параллелепипеда).
[000229] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии выходные данные функции потерь используются в качестве обратной связи для обучения первой сверточной нейронной сети 612 и второй сверточной нейронной сети 614. Иными словами, можно сказать, что первая сверточная нейронная сеть 612 и вторая сверточная нейронная сеть 614 обучаются обеспечивать максимальную точность прогноза алгоритма машинного обучения.
[000230] Обработка на этапе использования
[000231] После обучения первой сверточной нейронной сети 612, второй сверточной нейронной сети 614 и алгоритма 280 машинного обучения (момент, когда первая сверточная нейронная сеть 612, вторая сверточная нейронная сеть 614 и алгоритм 280 машинного обучения оказываются достаточно обученными, определяют с использованием обычных способов проверки, известных в области обучающих алгоритмов машинного обучения) первая сверточная нейронная сеть 612, вторая сверточная нейронная сеть 614 и алгоритм 280 машинного обучения принимают изображение 310 для этапа использования и данные 410 трехмерного облака точек для этапа использования и обрабатывают их для определения объекта-кандидата, присутствующего в окружающей зоне 250 транспортного средства 220. Как описано выше, в не имеющих ограничительного характера вариантах осуществления настоящей технологии информация, доступная из данных 410 трехмерного облака точек, дополняется релевантной информацией, доступной на изображении 310. В результате возможно более точное определение наличия объекта-кандидата в окружающей зоне 250. В качестве дополнения или альтернативы, это позволяет ускорять определение наличия объекта-кандидата в окружающей зоне 250.
[000232] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии результаты обработки первой сверточной нейронной сети 612, второй сверточной нейронной сети 614 и алгоритма 280 машинного обучения представляют собой прогноз наличия объекта из заданного класса объектов (заданный класс представляет собой один из множества заранее определенных классов). В этих вариантах осуществления настоящей технологии указание на наличие объекта заданного класса обеспечивает процессор 110. Процессору 110 могут быть доступны различные программные процедуры для выполнения различных действий на основе класса объекта.
[000233] Например, в зависимости от того, является объект в окружающей зоне 250 другим транспортным средством или человеком, возможны различные процедуры. В результате выполнения этих процедур транспортное средство 220 может замедляться, останавливаться, перестраиваться в другой ряд, увеличивать скорость и т.п. Очевидно, что на конкретную процедуру и соответствующее действие транспортного средства 220 не накладывается каких-либо особых ограничений, при этом они зависят от конкретного варианта реализации настоящей технологии.
[000234] Описание способа
[000235] Описанная выше архитектура позволяет выполнять способ прогнозирования наличия объекта в окружающей зоне 250 транспортного средства 220. На фиг. 8 представлена блок-схема способа 800, выполняемого процессором 110 электронного устройства 210 в по меньшей мере некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии. Следует отметить, что в по меньшей мере некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии способ 800 может полностью или частично выполняться сервером 235.
[000236] Шаг 802: прием от первого датчика изображения, зафиксированного первым датчиком
[000237] На шаге 802 процессор 110 принимает от первого датчика 230 изображение 310, зафиксированное первым датчиком 230.
[000238] Процесс приема изображения 310 подробно описан выше со ссылкой на фиг. 3.
[000239] Шаг 804: обработка изображения для формирования тензора изображения, характеризующего информацию, содержащуюся в изображении
[000240] На шаге 804 процессор 110 обрабатывает изображение 310 для формирования тензора изображения, характеризующего информацию, содержащуюся в изображении.
[000241] Процесс формирования тензора изображения подробно описан выше со ссылкой на фиг. 5 и 6.
[000242] Шаг 806: прием от второго датчика указания на данные трехмерного облака точек, зафиксированные вторым датчиком
[000243] На шаге 806 процессор 100 принимает от второго датчика 240 указание на данные 410 трехмерного облака точек, зафиксированные вторым датчиком 240.
[000244] Процесс приема данных 410 трехмерного облака точек, зафиксированных вторым датчиком 240, подробно описан выше со ссылкой на фиг. 4.
[000245] Шаг 808: обработка данных трехмерного облака точек для формирования тензора данных трехмерного облака точек, характеризующего информацию, содержащуюся в данных трехмерного облака точек, включая по меньшей мере часть данных трехмерного облака точек, содержащую информацию о по меньшей мере одном объекте-кандидате
[000246] На шаге 808 процессор 110 обрабатывает данные 410 трехмерного облака точек 410 для формирования тензора данных трехмерного облака точек, характеризующего информацию, содержащуюся в данных трехмерного облака точек, включая по меньшей мере часть данных трехмерного облака точек, содержащую информацию о по меньшей мере одном объекте-кандидате.
[000247] Процесс формирования тензора данных трехмерного облака точек подробно описан выше со ссылкой на фиг. 5 и 6.
[000248] Шаг 810: анализ тензора изображения для выявления части данных в информации изображения, соответствующей по меньшей мере одному объекту-кандидату
[000249] На шаге 810 процессор 110 анализирует тензор изображения для выявления части данных в информации изображения, соответствующей по меньшей мере одному объекту-кандидату.
[000250] Процесс анализа тензора изображения описан выше со ссылкой на фиг. 6.
[000251] Шаг 812: объединение тензора данных трехмерного облака точек с релевантной частью тензора изображения, связанной с релевантной частью данных в информации изображения, для формирования объединенного тензора, связанного с окружающей зоной
[000252] На шаге 812 процессор 110 объединяет тензор данных трехмерного облака точек с релевантной частью тензора изображения, связанной с релевантной частью данных в информации изображения, для формирования объединенного тензора, связанного с окружающей зоной 250.
[000253] Процесс объединения тензора данных трехмерного облака точек с релевантной частью тензора изображения, связанной с релевантной частью данных в информации изображения, с целью формирования объединенного тензора описан выше со ссылкой на фиг. 6.
[000254] Шаг 814: сохранение объединенного тензора с целью его использования алгоритмом машинного обучения для определения наличия объекта в окружающей зоне
[000255] На шаге 814 процессор 110 сохраняет объединенный тензор с целью его использования алгоритмом машинного обучения для определения наличия объекта в окружающей зоне.
[000256] Специалисту в данной области техники должны быть очевидны изменения и усовершенствования описанных ранее вариантов осуществления настоящей технологии. Предшествующее описание приведено лишь в качестве примера, а не для ограничения объема настоящего изобретения. Объем охраны данной технологии определяется исключительно объемом приложенной формулы изобретения.