СПОСОБЫ И СИСТЕМЫ ДЛЯ ОПРЕДЕЛЕНИЯ КОМПЬЮТЕРОМ НАЛИЧИЯ ДИНАМИЧЕСКИХ ОБЪЕКТОВ
METHODS AND SYSTEMS FOR DETERMINING THE PRESENCE OF DYNAMIC OBJECTS BY A COMPUTER

Область техники, к которой относится изобретение
[1] Настоящая технология относится к компьютерным способам и системам для определения наличия объектов на основе данных датчика и, в частности к способам и системам для определения наличия движущихся объектов вокруг самоуправляемого транспортного средства.
Уровень техники
[2] В известных решениях предложены и реализованы компьютерные навигационные системы, способствующие навигации и/или управлению транспортным средством. Известны различные системы такого рода: от простых решений, основанных на определении местоположения на карте и использующих компьютерную систему для помощи водителю в навигации на маршруте от пункта отправления до пункта назначения, до более сложных решений, таких как компьютеризированные и/или автономные системы вождения.
[3] Некоторые из этих систем реализованы в виде широко известной системы круиз-контроля. В этом случае компьютерная система, установленная на транспортном средстве, поддерживает заданную пользователем скорость движения транспортного средства. Некоторые системы круиз-контроля реализуют систему интеллектуального управления дистанцией, позволяя пользователю задавать расстояние до идущего впереди автомобиля (например, выбирать значение, выраженное в количестве транспортных средств). В дальнейшем компьютерная система регулирует скорость транспортного средства, по меньшей мере частично, в зависимости от его приближения к впереди идущему транспортному средству на заранее заданное расстояние. Некоторые из систем круиз-контроля дополнительно оснащены системой предупреждения столкновений, которая при обнаружении транспортного средства (или другого препятствия) перед движущимся транспортным средством замедляет или останавливает его.
[4] Некоторые из наиболее передовых систем обеспечивают полностью автономное движение транспортного средства без непосредственного участия оператора (т.е. водителя) в управлении. Такие автономные транспортные средства содержат компьютерные системы, способные ускорять, замедлять, останавливать, перестраивать в другой ряд и самостоятельно парковать транспортное средство.
[5] Одна из основных технических проблем, возникающих при реализации вышеупомянутых компьютерных систем, заключается в способности компьютерной системы обнаруживать объекты вокруг транспортного средства, например, другое транспортное средство впереди транспортного средства с установленной компьютерной системой, которое может представлять опасность для данного транспортного средства и требовать принятия компьютерной системой упреждающих мер, таких как торможение или иное изменение скорости, остановка или перестроение в другой ряд. В частности, проблема обнаружения объекта заключается не только в двоичном обнаружении (наличие или отсутствие объекта), но и в определении его скорости и в точности, связанной с таким анализом и обнаружением (особенно в предотвращении ложноотрицательных результатов, когда система не определяет объект, в действительности присутствующий впереди или рядом с транспортным средством).
[6] Важность этой проблемы иллюстрируется следующим гипотетическим сценарием. Можно предположить, что самоуправляемое или частично автономное транспортное средство движется по маршруту. Ребенок (или взрослый, домашнее животное и т.д.) бежит впереди транспортного средства. От управляющей транспортным средством компьютерной системы требуется быстро обнаружить наличие объекта и выполнить корректирующие действия, чтобы избежать столкновения. Разумеется, что чем быстрее компьютерная система обнаруживает наличие объекта, тем больше времени она имеет для определения корректирующего действия и выдачи команды транспортному средству на выполнение этого корректирующего действия.
[7] Известно несколько способов обнаружения объектов.
[8] В патентной заявкеUS 20180308250 A1«System and Method for Vehicle Position and Velocity Estimation Based on Camera and Lidar Data»(TuSimple, опубликована 25 октября 2018 г.)описано оценивание положения и скорости транспортного средства на основе данных камеры и лидара. Конкретный вариант осуществления способа включает в себя: прием от подсистемы автономного транспортного средства входных данных об объекте, содержащих данные изображения из устройства формирования изображения и данные расстояния из устройства измерения расстояния; определение двумерного (2D) положения близкого объекта рядом с автономным транспортным средством с использованием данных изображения, полученных от устройства формирования изображения; отслеживание трехмерного (3D) положения близкого объекта с использованием данных о расстоянии, полученных от устройства измерения расстояния во множестве циклов, и формирование данных отслеживания; определение 3D-положения близкого объекта с использованием 2D-положения, данных о расстоянии, полученных от устройства измерения расстояния, и данных отслеживания; определение скорости близкого объекта с использованием 3D-положения и данных отслеживания; и вывод 3D-положения и скорости близкого объекта относительно автономного транспортного средства.
[9] В патенте US9110163B2«Lidar-based classification of object movement»(Uber Technologies Inc., выдан 18 августа 2015 г.) описано, что в системах машинного зрения перемещение объекта часто оценивается путем применения технологий анализа изображения к видимым изображениям с учетом перспективы и параллакса. Точность таких способов может оказаться ограниченной вследствие оптических эффектов, таких как блики и тени. При этом могут быть доступными данные лидара (например, используемые для избегания препятствий при автоматической навигации), которые могут использоваться в качестве высокоточного источника данных для такой оценки. Соответствующие лидарные точки из облака лидарных точек могут быть отображены на вокселы из трехмерного пространства вокселов и кластеры вокселов могут быть определены в качестве объектов. Перемещение лидарных точек со временем может быть классифицировано и соответствующие объекты могут быть классифицированы как перемещающиеся или неподвижные на основе классификации лидарных точек, связанных с объектом. Эта классификация способна обеспечивать точные результаты, поскольку вокселы в трехмерном пространстве вокселов при оценке с течением времени обеспечивают четко различимые состояния.
Раскрытие изобретения
[10] Целью настоящего изобретения является устранение по меньшей мере некоторых недостатков известных решений. Варианты осуществления настоящей технологии способны обеспечить и/или расширить арсенал подходов и/или способов достижения целей в настоящей технологии.
[11] Разработчики настоящей технологии выявили по меньшей мере одну техническую проблему, связанную с известными решениями.
[12] Разработчики считают, что требуется обнаруживать динамические объекты в окружающей зоне транспортного средства так, чтобы можно было избежать опасных сценариев путем уведомления водителя или с использованием компьютера, инициирующего выполнение транспортным средством корректирующего действия.
[13] Разработчикам настоящей технологии известно, что установленный на автономных транспортных средствах лидарный датчик позволяет получать данные и формировать трехмерные облака точек, указывающие на части объектов в окружающей зоне транспортного средства, позволяя «видеть» объекты, не обнаруженные другим датчиком, или обнаруживать объект с большей точностью.
[14] Разработчики обнаружили, что оценивание движения между двумя циклами сканирования лидара представляет собой сложную задачу. Вследствие разреженности и неоднородности облаков лидарных точек, а также вследствие отсутствия информации о внешнем виде обнаружение объектов и оценка скорости динамических объектов могут быть чрезвычайно затруднены.
[15] Кроме того, в некоторых случаях алгоритм машинного обучения (MLA, Machine Learning Algorithm) может оказаться не знакомым или не обученным на конкретных объектах, которые могут появляться на дороге, например, на вездеходах, трехколесных транспортных средствах или препятствиях других видов. В таких случаях, поскольку алгоритм MLA неспособен распознать объект, корректирующие действия некоторых видов могут оказаться не выполненными автономным транспортным средством.
[16] Настоящая технология позволяет обнаруживать любой динамический объект и определять его расчетную скорость в окружающей зоне транспортного средства, где этот динамический объект (или несколько объектов) может быть обнаружен без его классификации, т.е. без прогнозирования его класса, что позволяет обнаруживать динамические объекты, на которых алгоритм MLA не был предварительно обучен.
[17] В отличие от некоторых известных подходов, в настоящей технологии одометрическая информация транспортного средства используется для компенсации собственного движения, вместо его прогнозирования, что позволяет обеспечить более точное представление движения.
[18] В некоторых не имеющих ограничительного характера вариантах осуществления изобретения настоящая технология позволяет обрабатывать неограниченную последовательность облаков лидарных точек, что позволяет обнаруживать динамические объекты в реальном времени. Благодаря обнаружению динамических объектов в реальном времени, алгоритм MLA способен прогнозировать будущее положение и скорость динамических объектов, в результате чего электронное устройство получает возможность управлять автономным транспортным средством для выполнения корректирующих действий в реальном времени.
[19] Согласно первому аспекту настоящей технологии реализован выполняемый электронным устройством компьютерный способ определения набора динамических объектов на основе данных датчика, полученных датчиком, установленным на транспортном средстве. Электронное устройство связано с датчиком для получения от него данных датчика. Электронное устройство способно выполнять алгоритм MLA, обученный обнаружению объектов на основе данных датчика. Способ включает в себя: прием данных датчика, относящихся к окружающей зоне транспортного средства; формирование алгоритмом MLA набора векторов признаков окружающей зоны на основе данных датчика; прием данных о транспортном средстве, указывающих на местоположение транспортного средства на карте; формирование алгоритмом MLA на основе набора векторов признаков и данных о транспортном средстве тензора, включающего в себя сеточное представление окружающей зоны; формирование алгоритмом MLA на основе этого тензора маски подвижности, указывающей на ячейки сетки, занятые по меньшей мере одним потенциальным объектом в сетке, и маски скорости, указывающей на скорость, связанную с по меньшей мере одним потенциальным объектом в сетке; и определение алгоритмом MLA на основе маски подвижности и маски скорости набора динамических объектов в окружающей зоне транспортного средства.
[20] В некоторых вариантах осуществления способа датчик представляет собой лидарный датчик, а данные датчика содержат набор облаков лидарных точек, каждое из которых связано с соответствующей отметкой времени, при этом данные о транспортном средстве содержат набор одометрических параметров, каждый из которых связан с соответствующей отметкой времени.
[21] В некоторых вариантах осуществления способа одометрические параметры включают в себя по меньшей мере одно из следующего: передачу, частоту вращения колес, параметры блока инерциальных измерений (IMU, Inertial Measurement Unit), положение регулятора подачи топлива, угол поворота и скорость.
[22] В некоторых вариантах осуществления способа формирование набора векторов признаков включает в себя разделение подмножества облаков лидарных точек из набора облаков лидарных точек на соответствующие наборы вокселов и применение слоев вокселов к соответствующим наборам вокселов для получения набора векторов признаков.
[23] В некоторых вариантах осуществления способа тензор представляет собой трехмерное тензорное представление, а способ перед формированием трехмерного тензорного представления дополнительно включает в себя формирование набора четырехмерных тензорных представлений на основе набора векторов признаков, при этом формирование трехмерного тензорного представления включает в себя компоновку множества четырехмерных тензорных представлений для получения трехмерного тензорного представления.
[24] В некоторых вариантах осуществления способа сервер выполняет второй алгоритм MLA, основанный на рекуррентной нейронной сети (RNN, Recurrent Neural Network), при этом трехмерное тензорное представление является скорректированным трехмерным тензорным представлением, а формирование скорректированного трехмерного тензорного представления включает в себя корректировку трехмерного тензорного представления на основе набора одометрических параметров для получения трехмерного тензорного представления.
[25] В некоторых вариантах осуществления способа сервер выполняет третий алгоритм MLA, основанный на остаточной нейронной сети (ResNet, Residual Neural Network), а маска подвижности и маска скорости формируются третьим алгоритмом MLA.
[26] В некоторых вариантах осуществления способа он дополнительно включает в себя определение четвертым алгоритмом MLA на основе набора динамических объектов процедуры управления, содержащей команды для изменения направления транспортного средства и/или для изменения скорости транспортного средства.
[27] В некоторых вариантах осуществления способа он дополнительно включает в себя отправку сервером процедуры управления транспортному средству.
[28] В некоторых вариантах осуществления способа динамические объекты из набора динамических объектов не связаны с классом.
[29] В некоторых вариантах осуществления способа набор динамических объектов содержит первый динамический объект первого класса второй динамический объект второго класса.
[30] В некоторых вариантах осуществления способа определение алгоритмом MLA на основе маски подвижности и маски скорости набора динамических объектов в окружающей зоне транспортного средства выполняется независимо от класса объекта из набора динамических объектов.
[31] В некоторых вариантах осуществления способа определение алгоритмом MLA на основе маски подвижности и маски скорости набора динамических объектов в окружающей зоне транспортного средства дополнительно включает в себя определение алгоритмом MLA прогнозируемой скорости для объекта из набора динамических объектов.
[32] В некоторых вариантах осуществления способа такое определение выполняется в первый момент времени, а способ дополнительно включает в себя прогнозирование алгоритмом MLA будущего положения объекта из набора динамических объектов во второй момент времени, более поздний, чем первый момент времени.
[33] В некоторых вариантах осуществления способа будущее положение прогнозируется, по меньшей мере частично, на основе прогнозируемой скорости.
[34] В некоторых вариантах осуществления способа электронное устройство установлено на транспортном средстве или расположено вне транспортного средства и связано с ним через сеть связи.
[35] Согласно другому аспекту настоящей технологии реализовано электронное устройство. Электронное устройство содержит процессор, машиночитаемый физический носитель информации, содержащий команды для выполнения по меньшей мере алгоритма MLA, обученного для обнаружения объектов на основе данных датчика, и интерфейс связи для связи с датчиком, установленным на транспортном средстве. Процессор при выполнении команд способен: получать через интерфейс связи данные датчика, собранные датчиком и относящиеся к окружающей зоне транспортного средства; формировать с использованием алгоритма MLA набор векторов признаков окружающей зоны на основе данных датчика; получать данные о транспортном средстве, указывающие на местоположение транспортного средства на карте; формировать с использованием алгоритма MLA на основе набора векторов признаков и данных о транспортном средстве тензор, включающий в себя сеточное представление окружающей зоны; формировать с использованием алгоритма MLA на основе этого тензора маску подвижности, указывающую на ячейки сетки, занятые по меньшей мере одним потенциальным объектом в сетке, и маску скорости, указывающую на скорость, связанную с по меньшей мере одним потенциальным объектом в сетке; и определять с использованием алгоритма MLA на основе маски подвижности и маски скорости набор динамических объектов в окружающей зоне транспортного средства.
[36] В некоторых вариантах осуществления электронного устройства оно установлено на транспортном средстве или расположено вне транспортного средства.
[37] Согласно еще одному аспекту настоящей технологии реализован компьютерный способ определения наличия динамического объекта на основе данных датчика, полученных установленным на транспортном средстве датчиком. Способ выполняется электронным устройством, связанным с датчиком для получения от него данных датчика и выполняющим алгоритм MLA, обученный для обнаружения объектов на основе данных датчика. Способ включает в себя: прием данных датчика, относящихся к окружающей зоне транспортного средства; формирование алгоритмом MLA набора векторов признаков окружающей зоны на основе данных датчика; прием данных о транспортном средстве, указывающих на местоположение транспортного средства на карте; формирование алгоритмом MLA на основе набора векторов признаков и данных о транспортном средстве тензора, включающего в себя сеточное представление окружающей зоны; формирование алгоритмом MLA на основе этого тензора маски подвижности, указывающей на ячейки сетки, занятые по меньшей мере одним потенциальным объектом в сетке, и маски скорости, указывающей на скорость, связанную с по меньшей мере одним потенциальным объектом в сетке; определение алгоритмом MLA на основе маски подвижности и маски скорости вероятности наличия динамического объекта в окружающей зоне транспортного средства.
[38] В некоторых вариантах осуществления способа электронное устройство установлено на транспортном средстве или расположено вне транспортного средства.
[39] В контексте настоящего описания термин «сервер» означает компьютерную программу, выполняемую соответствующими аппаратными средствами и способную принимать запросы (например, от клиентских устройств) через сеть и выполнять эти запросы или инициировать их выполнение. Аппаратные средства могут быть реализованы в виде одного компьютера или одной компьютерной системы, что не существенно для этой технологии. В настоящем контексте выражение «сервер» не означает, что каждая задача (например, принятая команда или запрос) или некоторая конкретная задача принимается, выполняется или запускается одним и тем же сервером (т.е. одними и теми же программными и/или аппаратными средствами). Это выражение означает, что любое количество программных средств или аппаратных средств может принимать, отправлять, выполнять или запускать выполнение любой задачи или запроса либо результатов любых задач или запросов. Все эти программные и аппаратные средства могут представлять собой один сервер или несколько серверов, причем оба эти случая подразумеваются в выражении «по меньшей мере один сервер».
[40] В контексте настоящего описания термин «электронное устройство» означает любое компьютерное аппаратное средство, способное выполнять программы, подходящие для решения поставленной задачи. В контексте настоящего описания термин «электронное устройство» подразумевает, что устройство может функционировать в качестве сервера для других электронных устройств и клиентских устройств, тем не менее, это не обязательно для настоящей технологии. Таким образом, некоторые (не имеющие ограничительного характера) примеры электронных устройств включают в себя персональные компьютеры (настольные, ноутбуки, нетбуки и т.п.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Должно быть понятно, что в настоящем контексте тот факт, что устройство функционирует в качестве электронного устройства, не означает, что оно не может функционировать в качестве сервера для других электронных устройств. Выражение «электронное устройство» не исключает использования нескольких клиентских устройств для приема, отправки, выполнения или инициирования выполнения любой задачи или запроса либо результатов любых задач или запросов, либо шагов любого описанного здесь способа.
[41] В контексте настоящего описания термин «клиентское устройство» означает любое компьютерное аппаратное средство, способное выполнять программы, подходящие для решения поставленной задачи. В контексте настоящего описания термин «клиентское устройство» в общем случае связан с пользователем клиентского устройства. Таким образом, некоторые (не имеющие ограничительного характера) примеры клиентских устройств включают в себя персональные компьютеры (настольные, ноутбуки, нетбуки и т.п.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что в данном контексте устройство, функционирующее как клиентское устройство, также может функционировать как сервер для других клиентских устройств. Использование выражения «клиентское устройство» не исключает использования нескольких клиентских устройств для приема, отправки, выполнения или инициирования выполнения любой задачи или запроса либо результатов любых задач или запросов, либо шагов любого описанного здесь способа.
[42] В контексте настоящего описания выражение «информация» включает в себя информацию любого рода или вида, допускающую хранение в базе данных. Таким образом, информация включает в себя аудиовизуальные произведения (изображения, фильмы, звукозаписи, презентации и т.д.), данные (данные о местоположении, числовые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы и т.д., но не ограничивается ими.
[43] В контексте настоящего описания выражение «программный компонент» включает в себя обозначение программного обеспечения (подходящего для определенных аппаратных средств), необходимого и достаточного для выполнения конкретной функции или нескольких функций.
[44] В контексте настоящего описания выражение «носитель компьютерной информации» (также называется «носителем информации») означает носители любого рода и вида, включая ОЗУ, ПЗУ, диски (CD-ROM, DVD, гибкие диски, жесткие диски и т.д.), USB-накопители, твердотельные накопители, накопители на магнитных лентах и т.д. Для формирования носителя компьютерной информации может быть объединено множество элементов, включая два или более элементов носителя информации одного вида и/или два или более элементов носителя информации различных видов.
[45] В контексте настоящего описания термин «база данных» означает любой структурированный набор данных, независимо от его конкретной структуры, программного обеспечения для управления базой данных или компьютерных аппаратных средств для хранения этих данных, их применения или обеспечения их использования иным способом. База данных может располагаться в тех же аппаратных средствах, где реализован процесс, обеспечивающий хранение или использование информации, хранящейся в базе данных, либо база данных может располагаться в отдельных аппаратных средствах, таких как специализированный сервер или множество серверов.
[46] В контексте настоящего описания числительные «первый» «второй», «третий» и т.д. используются лишь для указания различия между существительными, к которым они относятся, но не для описания каких-либо определенных взаимосвязей между этими существительными. Например, должно быть понятно, что использование терминов «первый сервер» и «третий сервер» не подразумевает какого-либо определенного порядка, типа, хронологии, иерархии или классификации, в данном случае, серверов, а также что их использование (само по себе) не подразумевает наличие «второго сервера» в любой ситуации. Кроме того, как встречается в настоящем описании в другом контексте, ссылка на «первый» элемент и «второй» элемент не исключает того, что эти два элемента в действительности могут быть одним и тем же элементом. Таким образом, например, в некоторых случаях «первый» сервер и «второй» сервер могут представлять собой один элемент программных и/или аппаратных средств, а в других случаях - различные элементы программных и/или аппаратных средств.
[47] Каждый вариант осуществления настоящей технологии относится к по меньшей мере одной из вышеупомянутых целей и/или аспектов, но не обязательно ко всем ним. Должно быть понятно, что некоторые аспекты настоящей технологии, связанные с попыткой достижения вышеупомянутой цели, могут не соответствовать этой цели и/или могут соответствовать другим целям, явным образом здесь не упомянутым.
[48] Дополнительные и/или альтернативные признаки, аспекты и преимущества вариантов осуществления настоящей технологии содержатся в дальнейшем описании, в приложенных чертежах и в формуле изобретения.
Краткое описание чертежей
[49] Эти и другие признаки, аспекты и преимущества настоящей технологии содержатся в дальнейшем описании, в приложенной формуле изобретения и на следующих чертежах.
[50] На фиг. 1 схематически представлен пример компьютерной системы для реализации некоторых вариантов осуществления систем и/или способов согласно настоящей технологии.
[51] На фиг. 2 представлена сетевая компьютерная среда, пригодная для использования с некоторыми вариантами осуществления настоящей технологии.
[52] На фиг. 3 схематически представлено множество компьютерных процедур, где приведены общие принципы обработки по меньшей мере части данных датчика и данных о транспортном средстве процессором 110 электронного устройства 210.
[53] На фиг. 4 схематически представлена соответствующая не имеющим ограничительного характера вариантам осуществления настоящей технологии процедура получения данных, зафиксированных частью из множества датчиков.
[54] На фиг. 5 схематически представлена соответствующая не имеющим ограничительного характера вариантам осуществления настоящей технологии процедура кодирования вокселов, выполняемая представленным на фиг. 1 процессором электронного устройства.
[55] На фиг. 6 схематически представлена соответствующая не имеющим ограничительного характера вариантам осуществления настоящей технологии процедура одометрической коррекции, выполняемая представленным на фиг. 1 процессором электронного устройства.
[56] На фиг. 7 схематически представлена соответствующая не имеющим ограничительного характера вариантам осуществления настоящей технологии процедура оценивания скорости, выполняемая представленным на фиг. 1 процессором электронного устройства.
[57] На фиг. 8 приведена блок-схема соответствующего не имеющим ограничительного характера вариантам осуществления настоящей технологии способа определения наличия набора динамических объектов, выполняемого в представленной на фиг. 1 системе.
Осуществление изобретения
[58] Представленные в данном описании примеры и условный язык предназначены для обеспечения лучшего понимания принципов настоящей технологии, а не для ограничения ее объема до таких специально приведенных примеров и условий. Очевидно, что специалисты в данной области техники способны разработать различные способы и устройства, которые явно не описаны и не показаны, но реализуют принципы настоящей технологии в пределах ее существа и объема.
[59] Кроме того, чтобы способствовать лучшему пониманию, последующее описание может содержать упрощенные варианты реализации настоящей технологии. Специалистам в данной области должно быть понятно, что другие варианты осуществления настоящей технологии могут быть значительно сложнее.
[60] В некоторых случаях приводятся полезные примеры модификаций настоящей технологии. Они способствуют пониманию, но также не определяют объем или границы настоящей технологии. Представленный перечень модификаций не является исчерпывающим и специалист в данной области может разработать другие модификации в пределах объема настоящей технологии. Кроме того, если в некоторых случаях модификации не описаны, это не означает, что они невозможны и/или что описание содержит единственно возможный вариант реализации того или иного элемента настоящей технологии.
[61] Более того, описание принципов, аспектов и вариантов реализации настоящей технологии, а также их конкретные примеры предназначены для охвата их структурных и функциональных эквивалентов, независимо от того, известны они в настоящее время или будут разработаны в будущем. Например, специалистам в данной области техники должно быть очевидно, что любые описанные структурные схемы соответствуют концептуальным представлениям иллюстративных принципиальных схем, реализующих принципы настоящей технологии. Также должно быть очевидно, что любые блок-схемы, схемы процессов, диаграммы изменения состояния, псевдокоды и т.п. соответствуют различным процессам, которые могут быть представлены на машиночитаемом физическом носителе информации и могут выполняться компьютером или процессором, независимо от того, показан такой компьютер или процессор явно или нет.
[62] Функции различных элементов, показанных на чертежах, включая любой функциональный блок, обозначенный как «процессор», могут быть реализованы с использованием специализированных аппаратных средств, а также аппаратных средств, способных выполнять соответствующее программное обеспечение. Если используется процессор, эти функции могут выполняться одним выделенным процессором, одним совместно используемым процессором или множеством отдельных процессоров, некоторые из которых могут использоваться совместно. Кроме того, явное использование термина «процессор» или «контроллер» не должно трактоваться как указание исключительно на аппаратные средства, способные выполнять программное обеспечение, и может подразумевать, помимо прочего, аппаратные средства цифрового сигнального процессора (DSP), сетевой процессор, специализированную интегральную схему (ASIC), программируемую вентильную матрицу (FPGA), ПЗУ для хранения программного обеспечения, ОЗУ и энергонезависимое ЗУ. Также могут подразумеваться другие аппаратные средства, общего назначения и/или заказные.
[63] Программные модули или просто модули, реализация которых предполагается в виде программных средств, могут быть представлены здесь в виде любого сочетания элементов блок-схемы или других элементов, указывающих на выполнение шагов процесса и/или содержащих текстовое описание. Такие модули могут выполняться аппаратными средствами, показанными явно или подразумеваемыми.
[64] Далее с учетом вышеизложенных принципов рассмотрены некоторые не имеющие ограничительного характера примеры, иллюстрирующие различные варианты реализации аспектов настоящей технологии.
Компьютерная система
[65]
[66] На фиг. 1 представлена компьютерная система 100, пригодная для использования с некоторыми вариантами осуществления настоящей технологии и содержащая различные элементы аппаратных средств, включая один или несколько одно- или многоядерных процессоров, коллективно представленных процессором 110, твердотельный накопитель 120, память 130, которая может представлять собой ОЗУ или память любого другого вида. Связь между элементами компьютерной системы 100 может осуществляться через одну или несколько внутренних и/или внешних шин (не показаны) (таких как шина PCI, универсальная последовательная шина (USB), шина FireWire стандарта IEEE 1394, шина SCSI, шина Serial-ATA и т.д.), с которыми различные аппаратные элементы соединены электронным образом. Согласно вариантам осуществления настоящей технологии, твердотельный накопитель 120 хранит программные команды, пригодные для загрузки в память 130 и выполнения процессором 110 с целью определения наличия объекта. Например, программные команды могут входить в состав управляющего приложения транспортного средства, выполняемого процессором 110. Следует отметить, что компьютерная система 100 может содержать дополнительные и/или не обязательные элементы (не показаны), такие как модули передачи данных по сети, модули определения местоположения и т.д.
Сетевая компьютерная среда
[67]
[68] На фиг. 2 представлена сетевая компьютерная среда 200, пригодная для использования с некоторыми вариантами осуществления систем и/или способов согласно настоящей технологии. Сетевая компьютерная среда 200 содержит электронное устройство 210, связанное с транспортным средством 220 или с пользователем (не показан), который может управлять транспортным средством 220, сервер 215, связанный с электронным устройством 210 через сеть 245 связи (например, через сеть Интернет и т.п., как более подробно описано ниже). Сетевая компьютерная среда 200 также может содержать спутник системы GPS (не показан), передающий и/или принимающий сигнал GPS электронному устройству 210 или от него. Должно быть понятно, что настоящая технология не ограничивается системой GPS и может использовать технологию определения местоположения, отличную от системы GPS. Следует отметить, что спутник GPS может вовсе отсутствовать.
[69] Транспортное средство 220, с которым связано электронное устройство 210, может представлять собой любое транспортное средство для отдыха или перевозок, например, автомобиль для индивидуального или коммерческого использования, грузовой автомобиль, мотоцикл и т.д. Транспортное средство может управляться пользователем или представлять собой самоуправляемое транспортное средство. Следует отметить, что не накладывается каких-либо ограничений на конкретные параметры транспортного средства 200, такие как производитель транспортного средства, модель транспортного средства, год выпуска транспортного средства, масса транспортного средства, размеры транспортного средства, распределение массы транспортного средства, площадь поверхности транспортного средства, высота транспортного средства, вид трансмиссии (например, привод на два или четыре колеса), вид шин, тормозная система, топливная система, пробег, идентификационный номер транспортного средства, рабочий объем двигателя и т.д.
[70] На реализацию электронного устройства 210 не накладывается каких-либо ограничений. Например, электронное устройство 210 может быть реализовано в виде блока управления двигателем транспортного средства, центрального процессора транспортного средства, навигационного устройства транспортного средства (например, TomTom™, Garmin™), планшета, персонального компьютера, встроенного в транспортное средство 220, и т.д. Следует отметить, что электронное устройство 210 может быть постоянно связано или не связано с транспортным средством 220. Дополнительно или в качестве альтернативы, электронное устройство 210 может быть реализовано в устройстве беспроводной связи, таком как мобильный телефон (например, смартфон или радиотелефон). В некоторых вариантах осуществления изобретения электронное устройство 210 содержит дисплей 270.
[71] Электронное устройство 210 может содержать некоторые или все элементы компьютерной системы 100, представленной на фиг. 1. В некоторых вариантах осуществления изобретения электронное устройство 210 представляет собой бортовое компьютерное устройство и содержит процессор 110, твердотельный накопитель 120 и память 130. Иными словами, электронное устройство 210 содержит аппаратные средства и/или прикладное программное обеспечение и/или встроенное программное обеспечение либо их сочетание для определения наличия объекта вокруг транспортного средства 220, как более подробно описано ниже.
[72] Согласно не имеющим ограничительного характера вариантам осуществления настоящей технологии, электронное устройство 210 содержит или имеет доступ к множеству 230 датчиков. Множество 230 датчиков содержит первый датчик 232, способный фиксировать изображение окружающей зоны 250, и второй датчик 234, способный фиксировать облако лидарных точек окружающей зоны 250. Первый датчик 232 и второй датчик 234 функционально связаны с процессором 110 для передачи зафиксированной информации в процессор 110 для обработки, как более подробно описано ниже.
[73] В некоторых вариантах осуществления настоящей технологии электронное устройство 210 дополнительно содержит или имеет доступ к третьему датчику 236, способному фиксировать радиолокационные данные об окружающей зоне 250 и функционально связанному с процессором 110 для передачи зафиксированной информации в процессор 110 для обработки.
Множество датчиков
[74]
[75] Первый датчик
[76] В некотором не имеющем ограничительного характера примере первый датчик 232 содержит камеру. На реализацию камеры не накладывается каких-либо особых ограничений. Например, в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии камера может быть реализована в виде черно-белой камеры с разрешением, достаточным для обнаружения объектов на заранее заданных расстояниях приблизительно до 30 м (тем не менее без выхода за границы настоящего изобретения могут использоваться камеры с другим разрешением и другой дальностью действия). Камера может устанавливаться с внутренней стороны на верхней части ветрового стекла транспортного средства 220, но в пределах объема настоящего изобретения также возможны и другие места, включая заднее окно, боковые окна, передний капот, крышу, переднюю решетку радиатора или передний бампер транспортного средства 220. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии первый датчик 232 может быть расположен в специальном кожухе (не показан), установленном сверху транспортного средства 220.
[77] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии первый датчик 232 может быть реализован в виде множества камер. Например, множество камер может содержать достаточное количество камер, чтобы фиксировать панорамное изображение окружающих зон 250.
[78] В некоторых вариантах осуществления настоящей технологии камера (одна или несколько камер, в виде которых реализован первый датчик 232) способна фиксировать заранее заданную часть окружающей зоны 250 вокруг транспортного средства 220. В некоторых вариантах осуществления настоящей технологии камера способна фиксировать изображение (или последовательность изображений), соответствующее сектору приблизительно в 90 градусов расположенной вокруг транспортного средства 220 окружающей зоны 250 вдоль траектории перемещения транспортного средства 220.
[79] В других вариантах осуществления настоящей технологии камера способна фиксировать изображение (или последовательность изображений), соответствующее сектору приблизительно в 180 градусов расположенной вокруг транспортного средства 220 окружающей зоны 250 вдоль траектории перемещения транспортного средства 220. В других вариантах осуществления настоящей технологии камера способна фиксировать изображение (или последовательность изображений), соответствующее сектору приблизительно в 360 градусов расположенной вокруг транспортного средства 220 окружающей зоны 250 вдоль траектории перемещения транспортного средства 220 (иными словами, всю окружающую зону вокруг транспортного средства 220).
[80] В некотором не имеющем ограничительного характера примере первый датчик 232 может быть реализован в виде камеры, поставляемой компанией FLIR Integrated Imaging Solutions Inc.,12051 Riverside Way, Richmond, BC, V6W 1K7, Canada (Канада). Очевидно, что первый датчик 232 может быть реализован в виде любого другого подходящего оборудования.
[81] Второй датчик
-
8
[82] В некотором не имеющем ограничительного характера примере второй датчик 234 содержит лидар лазерную систему обнаружения и измерения дальности (LIDAR,LIghtDetectionAndRanging). Предполагается, что специалисту в данной области понятно функционирование лидара, тем не менее, вкратце, передатчик (не показан) второго датчика 234, реализованного в виде лидара, отправляет лазерный импульс и отраженные фотоны возвращаются в приемник (не показан) второго датчика 234, реализованного в виде лидара. Фотоны, попавшие в приемник, собираются с использованием оптической системы и подсчитываются в виде функции времени. Затем с учетом скорости света (~3⋅10 м/с) процессор 110 может рассчитать дистанцию перемещения фотонов (в прямом и обратном направлении). Фотоны могут отражаться в обратном направлении от большого количества различных окружающих транспортное средство 220 элементов, таких как частицы в атмосфере (аэрозоли или молекулы), другой автомобиль, неподвижные объекты или потенциальные препятствия впереди транспортного средства 220.
[83] В некотором не имеющем ограничительного характера примере второй датчик 234 может быть реализован в виде датчика на основе лидара, поставляемого компаниейVelodyne LiDAR, Inc., 5521 Hellyer Avenue, San Jose, CA 95138, USA (США). Очевидно, что второй датчик 234 может быть реализован в виде любого другого подходящего оборудования.
[84] В некоторых вариантах осуществления настоящей технологии второй датчик 234 может быть реализован в виде множества датчиков на основе лидара, например, трех или любого другого подходящего количества датчиков. В некоторых вариантах осуществления настоящей технологии второй датчик 234 (реализованный в виде одного или нескольких датчиков на основе лидара) может находиться в вышеупомянутом кожухе (отдельно не показан), расположенном на крыше транспортного средства 220.
[85] В тех вариантах осуществления настоящей технологии, где второй датчик 234 реализован в виде нескольких датчиков на основе лидара, расположенных в кожухе (не показан), пространственное расположение нескольких датчиков на основе лидара может учитывать техническую конфигурацию нескольких датчиков на основе лидара, конфигурацию кожуха, погодные условия (например, частые дожди, снег и другие явления) региона, где должно использоваться транспортное средство 220, и т.д.
[86] Третий датчик
[87] В некотором не имеющем ограничительного характера примере третий датчик 236 содержит радиолокатор. Вкратце, радиолокатор представляет собой прибор для обнаружения, использующий радиоволны с целью определения дальности, угла и/или скорости объектов. Радиолокатор содержит передатчик, генерирующий электромагнитные волны, антенну, используемую для передачи и приема электромагнитных волн, приемник и процессор для определения свойств обнаруженных объектов. В других вариантах осуществления настоящей технологии может быть предусмотрена отдельная антенна для приема радиоволн и отдельная антенна для передачи радиоволн. Процессор, используемый для определения свойств окружающих объектов, может представлять собой процессор 110.
[88] В некоторых вариантах осуществления настоящей технологии третий датчик 236 может содержать радиолокационные датчики большого радиуса действия, среднего радиуса действия и малого радиуса действия. В не имеющем ограничительного характера примере радиолокационный датчик большого радиуса действия может быть использован для адаптивного круиз-контроля, автоматического аварийного торможения и предупреждения о столкновении впереди, а радиолокационные датчики среднего и малого радиуса действия могут быть использованы для помощи при парковке, для предупреждения о движении транспорта в пересекающем направлении, для помощи на соединениях дорог и для обнаружения в «слепой зоне».
[89] В некотором не имеющем ограничительного характера примере третий датчик 236 может быть реализован в виде датчика, поставляемого компаниейRobert Bosch GmbH, Robert-Bosch-Platz 1, 70839 Gerlingen, Germany (Германия). Очевидно, что третий датчик 236 может быть реализован в виде любого другого подходящего оборудования.
[90] В некоторых вариантах осуществления настоящей технологии первый датчик 232 и второй датчик 234 могут быть откалиброваны так, что для изображения, зафиксированного первым датчиком 232, и облака лидарных точек, зафиксированного вторым датчиком 234, процессор 110 способен определять область изображения, соответствующую этой области облака лидарных точек, зафиксированного вторым датчиком 234. В некоторых вариантах осуществления настоящей технологии первый датчик 232, второй датчик 234 и третий датчик 236 откалиброваны так, что для изображения, зафиксированного первым датчиком 232, облака лидарных точек, зафиксированного вторым датчиком 234, и радиолокационных данных, зафиксированных третьим датчиком 236, процессор 110 способен определять область изображения, соответствующую этой области облака лидарных точек и радиолокационных данных.
[91] Таким образом, третий датчик 236 может обеспечить дополнительную информацию для данных, полученных первым датчиком 232 и/или вторым датчиком 234. В качестве не имеющего ограничительного характера примера было показано, что в некоторых случаях радиолокационный датчик может работать лучше лидара в определенных погодных условиях, таких как туман, дождь, снег и пыль. Кроме того, радиолокационный датчик может точно определять относительную скорость движения транспорта или скорость движущегося объекта с использованием доплеровского сдвига частоты. Таким образом, третий датчик 236 может быть использован в сочетании с первым датчиком 232, в сочетании со вторым датчиком 234 или в сочетании с первым датчиком 232 и вторым датчиком 234. В некоторых вариантах осуществления настоящей технологии третий датчик 236 может использоваться только временно, например в сложных погодных условиях.
[92] Другие датчики
[93] Транспортное средство 220 дополнительно содержит или имеет доступ к другим датчикам 238. Другие датчики 238 включают в себя один или несколько датчиков из числа блока IMU, прибора глобальной навигационной спутниковой системы (ГЛОНАСС), радиолокаторов скорости хода, ультразвуковых сонаров, одометрических датчиков, включая акселерометры и гироскопы, механических датчиков наклона, магнитного компаса и других датчиков, обеспечивающих работу транспортного средства 220.
[94] В не имеющем ограничительного характера примере блок IMU может быть закреплен на транспортном средстве 220 и содержать три гироскопа и три акселерометра для предоставления данных о вращательном движении и о прямолинейном движении транспортного средства 220, которые могут быть использованы для расчета перемещения и положения транспортного средства 220.
[95] Такая калибровка может выполняться во время изготовления и/или настройки транспортного средства 220 или в любой удобный последующий момент времени. Иными словами, калибровка может выполняться во время модернизации транспортного средства 220 с использованием первого датчика 232, второго датчика 234 и третьего датчика 236 в соответствии с предлагаемыми здесь не имеющими ограничительного характера вариантами осуществления настоящей технологии. В качестве альтернативы, калибровка может выполняться во время оснащения транспортного средства 220 первым датчиком 232, вторым датчиком 234 и третьим датчиком 236 в соответствии с предлагаемыми здесь не имеющими ограничительного характера вариантами осуществления настоящей технологии.
[96] Сеть связи
[97] В некоторых вариантах осуществления настоящей технологии сеть 245 связи представляет собой сеть Интернет. В альтернативных не имеющих ограничительного характера вариантах осуществления изобретения сеть связи может быть реализована в виде любой подходящей локальной сети (LAN, Local Area Network), глобальной сети (WAN, Wide Area Network), частной сети связи и т.п. Очевидно, что варианты осуществления сети связи приведены только в иллюстративных целях. Реализация линии связи (отдельно не обозначена) между электронным устройством 210 и сетью 245 связи зависит,среди прочего, от реализации электронного устройства 210. Только в качестве примера, не имеющего ограничительного характера, в тех вариантах осуществления настоящей технологии, где электронное устройство 210 реализовано в виде устройства беспроводной связи, такого как смартфон или навигационное устройство, линия связи может быть реализована в виде беспроводной линии связи. Примеры беспроводных линий связи включают в себя канал сети связи 3G, канал сети связи 4G и т.п. В сети 245 связи также может использоваться беспроводное соединение с сервером 215.
Сервер
[98]
[99] В некоторых вариантах осуществления настоящей технологии сервер 215 реализован в виде традиционного компьютерного сервера и может содержать некоторые или все элементы компьютерной системы 100, представленной на фиг. 1. В одном не имеющем ограничительного характера примере сервер 215 реализован в виде сервера Dell™ PowerEdge™, работающего под управлением операционной системы Microsoft™ Windows Server™, но он также может быть реализован с использованием любых других подходящих аппаратных средств, прикладного программного обеспечения и/или встроенного программного обеспечения либо их сочетания. В представленных не имеющих ограничительного характера вариантах осуществления настоящей технологии сервер 215 представляет собой один сервер. В других не имеющих ограничительного характера вариантах осуществления настоящей технологии (не показаны) функции сервера 215 могут быть распределены между несколькими серверами.
[100] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии процессор 110 устройства 210 может быть связан с сервером 215 для получения одного или нескольких обновлений. Обновления могут представлять собой обновления программного обеспечения, обновления карт, обновления маршрутов, обновления погодных данных и т.д. В некоторых вариантах осуществления настоящей технологии процессор 110 также может быть способным отправлять серверу 215 некоторые рабочие данные, такие как пройденные маршруты, данные о дорожном движении, рабочие характеристики и т.д. Некоторые или все данные, передаваемые между транспортным средством 220 и сервером 215, могут быть зашифрованы и/или обезличены.
[101] Процессору 110 сервера 215 доступны один или несколько алгоритмов 217 MLA.
Обзор алгоритмов MLA
[102]
[103] Известно много различных видов алгоритмов MLA. В частности, известны алгоритмы MLA трех видов: основанные на обучении с учителем алгоритмы MLA, основанные на обучении без учителя алгоритмы MLA и основанные на обучении с подкреплением алгоритмы MLA.
[104] Процесс алгоритма MLA с обучением с учителем основан на целевой или выходной переменной (или зависимой переменной), которая должна прогнозироваться на основе набора предикторов (независимых переменных). С использованием этого набора переменных алгоритм MLA (во время обучения) формирует функцию, преобразующую входные данные в требуемые выходные данные. Процесс обучения продолжается до достижения алгоритмом MLA требуемого уровня точности на проверочных данных. В качестве примеров основанных на обучении с учителем алгоритмов MLA можно привести регрессию, дерево решений, «случайный лес», логистическую регрессию и т.д.
[105] В алгоритме MLA с обучением без учителя для прогнозирования не используется целевая или выходнаяпеременная. Такие алгоритмы MLA применяются для выделения в совокупности переменных различных групп, что широко используется для разделения клиентов на различные группы для проведения целевых мероприятий. В качестве примеров основанных на обучении без учителя алгоритмов MLA можно привести априорный алгоритм и алгоритм вида «k-средних».
[106] Алгоритм MLA с обучением с подкреплением обучается принимать конкретные решения. Во время обучения алгоритм MLA самостоятельно непрерывно обучается в обучающей среде путем проб и ошибок. Алгоритм MLA обучается на основе прошлого опыта и пытается получить наилучшие возможные знания для принятия точных решений. В качестве примера алгоритма MLA с обучением с подкреплением можно привести марковский процесс принятия решений.
[107] Должно быть понятно, что алгоритмы MLA различных видов с различными структурами или топологиями могут использоваться для различных задач. Алгоритмы MLA одного конкретного вида включают в себя искусственные нейронные сети (ANN, Artificial Neural Network), также известные как нейронные сети (NN, Neural Network).
[108] Нейронные сети
[109] В общем случае сеть NN состоит из взаимосвязанных групп искусственных «нейронов», которые обрабатывают информацию с использованием коннекционного подхода. Сети NN используются для моделирования сложных взаимосвязей между входными и выходными данными (без фактической информации об этих взаимосвязях) или для поиска закономерностей в данных. Сети NN сначала адаптируются на этапе обучения, когда они обеспечиваются известным набором входных данных и информацией для адаптации сети NN с целью формирования корректных выходных данных (для ситуации, в отношении которой выполняется попытка моделирования). На этом этапе обучения сеть NN адаптируется к изучаемой ситуации и изменяет свою структуру так, чтобы она была способна обеспечить адекватные предсказанные выходные данные для входных данных в новой ситуации (на основе того, что было изучено). Таким образом, вместо попытки определения сложных статистических распределений или математических алгоритмов для данной ситуации, сеть NN пытается предоставить «интуитивный» ответ на основе «восприятия» ситуации. Таким образом, сеть NN представляет собой некоторого рода обученный черный ящик, который может быть использован в ситуациях, когда содержимое ящика не имеет значения, а важно лишь то, что этот ящик предоставляет адекватные ответы для входных данных.
[110] Сети NN широко используются во многих таких ситуациях, где важно лишь получать выходные данные на основе входных данных и менее важна или вовсе не важна информация о том, как получаются выходные данные. Например, сети NN широко используются для оптимизации распределения веб-трафика между серверами и при обработке данных, включая фильтрацию, кластеризацию, разделение сигналов, сжатие, формирование векторов и т.п.
[111] Глубокие нейронные сети
[112] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии алгоритм сеть NN может быть реализована в виде глубокой нейронной сети. Очевидно, что сети NN могут быть отнесены к различным классам сетей NN и один из этих классов содержит сети RNN.
[113] Рекуррентные нейронные сети
[114] Сети RNN адаптированы для использования их «внутренних состояний» (сохраненного воспоминания) с целью обработки последовательностей входных данных. Благодаря этому сети RNN хорошо подходят для таких задач, как распознавание несегментированного рукописного текста и распознавания речи. Этими внутренними состояниями сетей RNN можно управлять и они называются «стробируемыми» состояниями или «стробируемыми» воспоминаниями.
[115] Также следует отметить, что сети RNN могут быть отнесены к различным подклассам сетей RNN. Например, сети RNN включают в себя сети с долгой краткосрочной памятью (LSTM, Long Short-Term Memory), управляемые рекуррентные блоки (GRU, Gated Recurrent Unit), двунаправленные сети RNN (BRNN, Bidirectional RNN) и т.д.
[116] Сети LSTM представляют собой системы глубокого обучения, способные обучаться выполнению задач, в известном смысле, требующих «воспоминаний» о событиях, которые ранее произошли в течение очень коротких дискретных временных шагов. Топологии сетей LSTM могут изменяться в зависимости от конкретных задач, которым они должны обучаться. Например, сети LSTM могут обучаться выполнению задач, где между событиями возникают относительно большие задержки или где события происходят одновременно с низкими и высокими частотами. Сети RNN с особыми управляемыми механизмами называются блоками GRU. В отличие от сетей LSTM, в блоках GRU нет «выходных вентилей» и, следовательно, они имеют меньше параметров, чем сети LSTM. Сети BRNN могут содержать скрытые слои нейронов, соединенных в противоположных направлениях, что позволяет использовать информацию из прошлых и из будущих состояний.
[117] Остаточная нейронная сеть (ResNet)
[118] В качестве другого примера сети NN, которая может быть использована для реализации не имеющих ограничительного характера вариантов осуществления настоящей технологии, можно привести остаточную нейронную сеть (ResNet).
[119] Глубокие сети естественным образом объединяют признаки и классификаторы низкого/среднего/высокого уровня в сквозной многослойной архитектуре, а «уровни» признаков могут быть дополнены некоторым количеством наложенных друг на друга слоев (глубиной).
[120] В кратком изложении можно сказать, что реализация по меньшей мере части алгоритмов 217 MLA в контексте настоящей технологии может быть разделена на два основных этапа: этап обучения и этап использования. Сначала алгоритм MLA обучается на этапе обучения. Заем, когда алгоритму MLA известно, какие предполагаются входные данные и какие должны выдаваться выходные данные, этот алгоритм MLA выполняется с реальными данными на этапе использования.
[121] 3D-карта
[122] В некоторых вариантах осуществления настоящей технологии процессор 110 способен получать данные, представляющие собой 3D-карту (не показана). 3D-карта может быть использована транспортным средством 220 для прогнозируемого движения по дороге, позволяя автономному транспортному средству подтверждать свое местоположение на дороге 402 и обеспечивая для автономного транспортного средства информацию об окружающей среде и о некоторых окружающих объектах на дороге 402. Должно быть понятно, что на характер дороги 402 не накладывается каких-либо ограничений. Дорога 402 может представлять собой любую дорогу, по которой транспортное средство может перемещаться во время выполнения процедуры получения данных (не показана на фиг. 2). В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии 3D-карта может содержать один или несколько ориентиров на дороге 402, таких как границы дороги, полосы движения, дорожные знаки, столбы и светофоры, которые могут помочь при навигации или при распознавания объекта.
Множество компьютерных процедур
[123]
[124] Процессор 110 способен выполнять множество 300 компьютерных процедур, включая процедуру 400 получения данных, процедуру 500 кодирования вокселов или просто воксельную процедуру 500, процедуру 600 одометрической коррекции и процедуру 700 оценивания скорости. Ниже со ссылками на фиг. 3-8 описано выполнение процессором 110 множества 300 компьютерных процедур. Процессор 110 способен осуществлять доступ и выполнять множество алгоритмов MLA с целью выполнения по меньшей мере некоторых процедур из множества 300 компьютерных процедур.
[125] На фиг. 3 представлена схема множества 300 компьютерных процедур, где приведены общие принципы обработки по меньшей мере части данных датчиков и параметров 432 транспортного средства процессором 110 электронного устройства 210. В частности, на фиг. 3 представлены входные и выходные данные компьютерных процедур для обнаружения набора 745 динамических объектов.
t
[126] Процессор 110 способен выполнять процедуру 400 получения данных с целью получения данных от по меньшей мере части множества 230 датчиков, формируя таким образом данные датчиков, содержащие,среди прочего, облако 412 лидарных точек и параметры 432 транспортного средства для каждого момента времени . Ниже со ссылками на фиг. 4 более подробно описано выполнение процессором 110 процедуры 400 получения данных.
[127] Процессор 110 способен выполнять воксельную процедуру 500 на основе данных датчиков, содержащих облако 412 лидарных точек, формируя таким образом трехмерное тензорное представление 590. Ниже со ссылками на фиг. 5 более подробно описано выполнение процессором 110 воксельной процедуры 500.
[128] Процессор 110 способен выполнять процедуру 600 одометрической коррекции на основе (а) трехмерного тензорного представления 590 и (б) параметров 432 транспортного средства, формируя таким образом скорректированное трехмерное тензорное представление 690. Ниже со ссылками на фиг. 6 более подробно описано выполнение процессором 110 процедуры 600 одометрической коррекции.
[129] Процессор 110 способен выполнять процедуру 700 оценивания скорости на основе скорректированного трехмерного тензорного представления 690, формируя таким образом набор 745 динамических объектов. Далее со ссылками на фиг. 7 более подробно описано выполнение процессором 110 процедуры 700 оценивания скорости.
[130] Процессор 110 способен выполнять процедуру обучения для обучения по меньшей мере части алгоритмов 217 MLA. Ниже более подробно описано выполнение процессором 110 процедуры обучения.
[131] Ниже более подробно описана процедура 400 получения данных (см. фиг. 4), соответствующая не имеющим ограничительного характера вариантам осуществления настоящей технологии.
Процедура получения данных
[132]
[133] Для выполнения процедуры 400 получения данных транспортное средство 220 перемещается по дороге 402, а электронное устройство 210 способно с использованием по меньшей мере части множества 230 датчиков получать данные датчиков, относящиеся к объектам в окружающей зоне 250 транспортного средства 220.
[134] В общем случае, процедура 400 получения данных предназначена для получения, среди прочего,для каждого временного шага: (а) облака 412 лидарных точек и (б) параметров 432 транспортного средства.
[135] В контексте настоящей технологии по меньшей мере часть множества 230 датчиков содержит по меньшей мере второй датчик 234.
[136] Облако лидарных точек
[137] Транспортное средство 220 перемещается по дороге 402, а электронное устройство 210 способно инициировать получение вторым датчиком 234 данных об окружающей зоне 250 транспортного средства 220 в различных местах на дороге 402.
[138] Электронное устройство 210 получает данные об окружающей зоне 250 транспортного средства 220 в различных местах на дороге 402 в виде облака 412 лидарных точек.
[139] В общем случае, облако 412 лидарных точек представляет собой набор лидарных точек в виде трехмерного облака точек, где лидарная точка 414 представляет собой точку в трехмерном пространстве, указывающую на по меньшей мере часть поверхности объекта на дороге 402. В некоторых вариантах осуществления настоящей технологии возможна послойная организация облака 412 лидарных точек, где точки в каждом слое сгруппированы в эллипсы, а начальные точки всех эллиптических слоев ориентированы сходным образом.
[140] Лидарная точка 414 в облаке 412 лидарных точек связана с лидарными параметрами 416. В не имеющем ограничительного характера примере лидарные параметры 416 могут включать в себя расстояние, интенсивность и угол, а также другие параметры, относящиеся к информации, которая может быть получена лидарным датчиком.
t
[141] Второй датчик 234 может получать облако лидарных точек на каждом временном шаге  во время движения транспортного средства 220, получая таким образом набор 410 облаков лидарных точек.
[142] Предполагается, что в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии транспортное средство 220 получает изображение с использованием первого датчика 232 и радиолокационные данные с использованием третьего датчика 236.
[143] Данные о транспортном средстве
[144] Другие датчики 238 способны получать параметры 432 транспортного средства. В некоторых вариантах осуществления настоящей технологии электронное устройство 210 способно инициировать получение параметров 432 транспортного средства по меньшей мере частью других датчиков 238. В других вариантах осуществления настоящей технологии другие датчики 238 могут получать параметры 432 транспортного средства независимо от электронного устройства 210 и отправлять ему параметры 432 транспортного средства.
[145] В общем случае, параметры 432 транспортного средства включают в себя параметры, указывающие на местоположение транспортного средства 220. Местоположение транспортного средства 220 может быть дополнено информацией на 3D-карте (не показана).
[146] В контексте настоящей технологии параметры 432 транспортного средства используются для корректировки данных, полученных множеством 230 датчиков, так, чтобы они были представлены в единой системе координат, поскольку транспортное средство 220 может перемещаться с различными скоростями и выполнять различные маневры во время получения каждого набора 410 облаков лидарных точек.
[147] В не имеющем ограничительного характера примере параметры 432 транспортного средства включают в себя широту, долготу, передачу, частоту вращения колес, значения из блока IMU (т.е. компоненты линейного ускорения и компоненты угловой скорости транспортного средства 220), положение регулятора подачи топлива, угол поворота и скорость, а также другие параметры, относящиеся к движению транспортного средства 220 по дороге 402.
[148] В не имеющем ограничительного характера примере другие параметры из числа параметров 432 транспортного средства могут включать в себя отметку времени и любые другие параметры, которые могут быть полезными для обработки облака 412 лидарных точек, например, погодные условия и т.п.
t
[149] Процедура 400 получения данных для каждого момента времени  выдает облако 412 лидарных точек и параметры 432 транспортного средства.
[150] Таким образом, когда транспортное средство 220 перемещается по дороге 402 в течение некоторого периода времени, процедура 400 получения данных получает набор 410 облаков лидарных точек и набор 430 параметров транспортного средства.
[151] Ниже более подробно описана воксельная процедура 500 (см. фиг. 5), выполняемая электронным устройством 210 и соответствующая не имеющим ограничительного характера вариантам осуществления настоящей технологии.
t
[152] Воксельная процедура 500 описана для одного облака 412 лидарных точек из набора 410 облаков лидарных точек, полученного для момента времени .
[153] Следует отметить, что воксельная процедура 500 может выполняться электронным устройством 210 непрерывно для каждого облака 412 лидарных точек из набора 410 облаков лидарных точек.
Воксельная процедура
[154]
[155] Воксельная процедура 500 получает облако 412 лидарных точек в качестве входных данных.
[156] В общем случае, воксельная процедура 500 предназначена для выполнения следующих действий: (а) разделение облака 412 лидарных точек с получением набора 510 вокселов; (б) применение набора слоев вокселов к набору 510 вокселов для получения набора 540 векторов признаков; (в) формирование четырехмерного тензорного представления 580 на основе набора 540 векторов признаков.
[157] Разделение на вокселы
[158] Воксельная процедура 500 разделяет облако 412 лидарных точек на набор 510 вокселов путем применения процедуры 505 вокселизации.
[159] Вкратце, воксел представляет собой элемент регулярной сетки в трехмерном пространстве, а положение воксела определяется относительно других вокселов. Вокселы могут быть явно представлены координатами их вершин.
D
H
W
D
H
W
D
H
W
[160] В представленном здесь варианте осуществления изобретения все вокселы 512 из набора 510 вокселов расположены равномерно. В не имеющем ограничительного характера примере набор 510 вокселов может охватывать трехмерное пространство в диапазоне D, H, W вдоль осей Z, Y, X, соответственно, а каждый воксел 512 может иметь размер v, v и v, соответственно. Набор 510 вокселов соответствует трехмерной сетке вокселов размером D=D/v, H=H/v, W=W/v, где предполагается, что значения D, H ,W кратны значениям v, v, v.
[161] Каждый воксел 512 из набора 510 вокселов содержит соответствующее подмножество 515 лидарных точек из облака 412 лидарных точек. Должно быть понятно, что плотность лидарных точек в каждом соответствующем подмножестве 515 лидарных точек может быть различной из-за таких факторов, как расстояние, преграды, относительное расположение объекта и неравномерная выборка.
[162] Воксельная процедура 500 группирует лидарные точки согласно соответствующему вокселу 512 из набора 510 вокселов, в котором они расположены.
[163] Случайная выборка.
[164] В некоторых вариантах осуществления настоящей технологии воксельная процедура 500 может выполнять случайную выборку 520 из облака 412 лидарных точек. Воксельная процедура 500 выполняет случайную выборку 520 точек для уменьшения объема используемой памяти, повышения эффективности и снижения неравномерности плотности лидарных точек в вокселах с целью уменьшения смещения выборки. В не имеющем ограничительного характера примере воксельная процедура 500 может выбирать вокселы (не показано) из набора 510 вокселов, содержащие лидарные точки в количестве, превышающем заранее заданный порог, и выбирать заранее заданное количество точек из этих вокселов.
[165] Слои скомпонованных вокселов.
[166] Воксельная процедура 500 выполняет кодирование 522 признаков скомпонованного воксела для воксела 512 из набора 510 вокселов, обеспечивающее кодирование взаимодействий точек в вокселе 512 и позволяющее представить воксел 512 в виде вектора 542 признаков, содержащего описательную информацию о форме объектов в окружающей зоне 250 транспортного средства 220. В общем случае, в векторе 542 признаков воксела 512 закодированы пространственные и геометрические свойства содержащегося в нем соответствующего подмножества 515 лидарных точек.
[167] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии воксельная процедура 500 может обрабатывать воксел 512 из набора 510 вокселов путем дополнения каждой лидарной точки в вокселе 512 относительным смещением, отсчитываемым от локального среднего значения воксела 512.
[168] В общем случае, каждый воксел преобразуется через полносвязную сеть (FCN, Fully Connected Network) слоев в пространство признаков (не показано), где информация из каждой точки объединяется так, чтобы форма поверхности, содержащейся в вокселе 512, кодировалась в соответствующем векторе 542 признаков. В некоторых вариантах осуществления настоящей технологии сеть FCN может состоять из линейного слоя, слоя пакетной нормализации (BN, Batch Normalization) и слоя кусочно-линейного преобразования (ReLU, Rectifier Linear Unit).
[169] Воксельная процедура 500 выдает соответствующий вектор 542 признаков для воксела 512 из набора 510 вокселов с целью получения набора 540 векторов признаков для набора 510 вокселов. Следует отметить, что в некоторых вариантах осуществления настоящей технологии по меньшей мере один воксел в наборе 510 вокселов может быть пустым (т.е. не содержать лидарных точек). В таких случаях этот по меньшей мере один воксел может не обрабатываться или может быть заменен указанием на то, что он пустой.
[170] Каждый соответствующий вектор 542 признаков из набора 540 векторов признаков описывает локальную область сцены, зафиксированной в данных датчиков.
[171] Тензорное представление
[172] Воксельная процедура 500 обрабатывает набор 540 векторов признаков с целью получения четырехмерного тензорного представления 580. Поскольку набор 510 вокселов содержит только непустые вокселы, вектор 542 признаков связан с пространственными координатами этого непустого воксела. Воксельная процедура 500 обрабатывает (см. поз. 530) набор 540 векторов признаков с целью получения четырехмерного тензорного представления 580, соответствующего разреженному тензорному представлению набора 540 векторов признаков.
[173] В не имеющем ограничительного характера примере четырехмерное тензорное представление 580 набора 540 векторов признаков может иметь размер C × D' × H' × W'.
[174] Воксельная процедура 500 компонует признаки четырехмерного тензорного представления 580 с целью получения трехмерного тензорного представления 590.
[175] Воксельная процедура 500 выдает трехмерное тензорное представление 590.
[176] Ниже со ссылками на фиг. 6 более подробно описана процедура 600 одометрической коррекции, выполняемая электронным устройством 210.
Процедура одометрической коррекции
[177]
[178] Процедура 600 одометрической коррекции получает в качестве входных данных трехмерное тензорное представление 590.
[179] В общем случае, процедура 600 одометрической коррекции предназначена для обработки трехмерного тензорного представления 590, содержащего вокселизированное представление окружающей зоны транспортного средства 220, с целью сохранения геометрического соответствия между ячейками и текущей локальной координатной системой транспортного средства 220.
[180] Процедура 600 одометрической коррекции обрабатывает трехмерное тензорное представление 590 на основе параметров 432 транспортного средства, чтобы скомпенсировать собственное движение множества 230 датчиков, т.е. для компенсации движения множества 230 датчиков во время выполнения процедуры 400 получения данных в окружающей зоне 250 транспортного средства 220.
[181] В некоторых вариантах осуществления настоящей технологии процедура 600 одометрической коррекции выполняется сетью RNN. Процедура 600 одометрической коррекции получает скрытый тензор и с использованием одометрической информации применяет аффинное преобразование между предыдущим и текущим кадрами, сохраняя выравнивание скрытого тензора состояния и представления вида с высоты птичьего полета текущего облака точек.
[182] Процедура 600 одометрической коррекции обрабатывает трехмерное тензорное представление 590 на основе параметров 432 транспортного средства и выполняет двумерные свертки с целью получения скорректированного трехмерного тензорного представления 690.
[183] Процедура 600 одометрической коррекции выдает скорректированное трехмерное тензорное представление 690.
[184] Следует отметить, что в некоторых вариантах осуществления настоящей технологии процедура 600 одометрической коррекции может быть выполнена сетью GRU RNN или сетью LSTM RNN.
[185] Ниже со ссылкой на фиг. 7 более подробно описана процедура 700 оценивания скорости, выполняемая электронным устройством 210.
Процедура оценивания скорости
[186]
[187] Процедура 700 оценивания скорости получает в качестве входных данных скорректированное трехмерное тензорное представление 690.
[188] В общем случае процедура 700 оценивания скорости предназначена для обработки скорректированного трехмерного тензорного представления 690 с целью получения сеточного представления 730 набора 745 динамических объектов в окружающей зоне 250 транспортного средства 220, при этом сеточное представление 730 включает в себя маску 740 сегментации и маску 750 скорости.
[189] Маска 740 сегментации окружающей зоны 250 представляет собой маску, указывающую на наличие по меньшей мере одного динамического объекта 747 в ячейке сеточного представления 730 окружающей зоны 250.
[190] Маска 750 скорости окружающей зоны 250 представляет собой маску, указывающую соответствующую расчетную скорость 757 для каждого динамического объекта маски 740 сегментации в ячейке.
[191] Процедура 700 оценивания скорости может выполняться сетью ResNet. В некоторых вариантах осуществления настоящей технологии сеть ResNet может представлять собой 18-слойную сеть ResNet. В других вариантах осуществления настоящей технологии сеть ResNet может представлять собой 34-слойную сеть ResNet.
[192] Процедура 700 оценивания скорости масштабирует скорректированное трехмерное тензорное представление 690 в соответствии с размером H сетки и присоединяет два отдельных блока, включающих в себя несколько сверток, пакетных нормализаций и блоков ReLU, для получения маски 740 сегментации и маски 750 скорости.
Процедура обучения
[193]
[194] Сервер 215 способен обучать один или несколько алгоритмов 217 MLA.
[195] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии обучение одного или нескольких алгоритмов 217 MLA может быть реализовано следующим образом. Обучающий набор данных может содержать большое количество (например, свыше 80000) сцен с помеченными человеком автомобилями и пешеходами на трехмерной сцене. Набор данных может содержать 32 облака лазерных лидарных точек для каждой ячейки. Описанная выше процедура присвоения метки может быть использована для присвоения метки всем сценам с динамическим заполнением сетки.
[196] Для обучения может быть использована следующая функция потерь:
L
1
[197] Для сегментации потеря кросс-энтропии может быть взвешена по классу. Потери скорости определяются значением потерь Smooth , которое рассчитывается отдельно для двух координат. Потери скорости рассчитываются только для ячеек с доступным контрольным значением. В результате модель способна формировать правильные прогнозы для динамических объектов без контрольных значений и определять общее движение объектов.
Корректирующие действия
[298]
[199] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии выходные данные процедуры 700 оценивания скорости (маска 740 сегментации и/или маска 750 скорости) предоставляются процессору 110. Процессору 110 могут быть доступны различные программные процедуры для выполнения различных действий в зависимости от класса объекта.
[200] Например, возможны различные процедуры в зависимости от наличия другого транспортного средства или человека в окружающей зоне 250. В результате выполнения различных процедур транспортное средство 220 может замедляться, останавливаться, перестраиваться в другой ряд, увеличивать скорость и т.п. Очевидно, что на конкретную процедуру и соответствующее действие транспортного средства 220 не накладывается каких-либо особых ограничений, они зависят от конкретного варианта реализации настоящей технологии.
[201] Описание способа
[202] Описанная со ссылками на фиг. 1-7 архитектура позволяет выполнять способ прогнозирования наличия объекта в окружающей зоне 250 транспортного средства 220.
[203] На фиг. 8 представлена блок-схема способа 800, выполняемого процессором 110 электронного устройства 210 по меньшей мере в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии. Следует отметить, что по меньшей мере в некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии способ 800 может частично или полностью выполняться сервером 215.
[204] Способ 800 начинается с шага 802.
[205] Шаг 802: прием данных датчика, относящихся к окружающей зоне транспортного средства.
[206] На шаге 802 транспортное средство 220 перемещается по дороге 402, а электронное устройство 210 с использованием второго датчика 234 получает для каждого момента времени облако 412 лидарных точек с целью получения набора 410 облаков лидарных точек.
[207] Способ 800 продолжается на шаге 804.
[208] Шаг 804: прием данных о транспортном средстве, указывающих на местоположение транспортного средства на карте.
[209] На шаге 804 во время перемещения по дороге 402 электронное устройство 210 с использованием других датчиков 238 получает для каждого облака 412 лидарных точек параметры 432 транспортного средства с целью получения набора 430 параметров транспортного средства.
[210] Способ 800 продолжается на шаге 806.
[211] Шаг 806: формирование набора векторов признаков окружающей зоны на основе данных датчика.
[212] На шаге 806 электронное устройство 210 на основе набора 410 облаков лидарных точек формирует набор 540 векторов признаков.
[213] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 210 перед формированием набора 540 векторов признаков может выполнять процедуру 505 вокселизации с целью формирования набора 510 вокселов. В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 210 может выполнять случайную выборку 520 из набора 510 вокселов.
[214] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 210 применяет процедуру 522 кодирования признаков скомпонованного воксела для каждого воксела 512 из набора 510 вокселов с целью получения набора 540 векторов признаков.
[215] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 210 обрабатывает набор 540 векторов признаков с целью получения четырехмерного тензорного представления 580. Воксельная процедура 500 компонует признаки четырехмерного тензорного представления 580 с целью получения трехмерного тензорного представления 590.
[216] Способ 800 продолжается на шаге 808.
[217] Шаг 808: формирование тензора, включающего в себя сеточное представление окружающей зоны, на основе набора векторов признаков и данных о транспортном средстве.
[218] На шаге 808 электронное устройство 210 на основе трехмерного тензорного представления 590 и набора параметров 432 транспортного средства формирует скорректированное трехмерное тензорное представление 690 для компенсации собственного движения множества 230 датчиков во время получения набора 410 облаков лидарных точек.
[219] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 210 осуществляет доступ к сети RNN для формирования скорректированного трехмерного тензорного представления 690.
[20] Способ 800 продолжается на шаге 810.
[221] Шаг 810: формирование маски подвижности, указывающей на ячейки сетки, занятые по меньшей мере одним потенциальным объектом в сетке, и маски скорости, указывающей на скорость, связанную с по меньшей мере одним потенциальным объектом в сетке, на основе тензора.
[222] На шаге 810 электронное устройство 210 на основе скорректированного трехмерного тензорного представления 590 формирует сеточное представление 730, включающее в себя маску 740 сегментации и маску 750 скорости.
[223] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 210 может осуществлять доступ к сети ResNet для обработки скорректированного трехмерного тензорного представления 690 с целью получения сеточного представления 730, включающего в себя маску 740 сегментации и маску 750 скорости.
[224] Способ 800 продолжается на шаге 812.
[225] Шаг 812: определение набора динамических объектов в окружающей зоне транспортного средства на основе маски подвижности и маски скорости.
[226] На шаге 812 электронное устройство 210 на основе маски 740 сегментации и маски 750 скорости определяет набор 745 динамических объектов, при этом каждый динамический объект 747 имеет соответствующую расчетную скорость 757.
[227] Способ 800 продолжается на шаге 814.
[228] Шаг 814: определение процедуры управления, содержащей команды для изменения направления транспортного средства и/или изменения скорости транспортного средства, на основе набора динамических объектов.
[229] На шаге 814 электронное устройство 210 определяет процедуру управления (не показана) на основе сеточного представления 730, включающего в себя маску 740 сегментации и маску 750 скорости.
[230] В некоторых не имеющих ограничительного характера вариантах осуществления настоящей технологии электронное устройство 210 осуществляет доступ к алгоритму MLA для прогнозирования будущих траекторий набора 745 динамических объектов.
[231] Способ 800 продолжается на шаге 816.
[232] Шаг 816: отправка процедуры управления транспортному средству.
[233] На шаге 816 электронное устройство 210 отправляет транспортному средству 220 процедуру управления для управления транспортным средством 220.
[234] На этом способ 800 завершается.
[235] Специалистам в данной области техники должно быть очевидно, что по меньшей некоторые варианты осуществления настоящей технологии преследуют цель расширения арсенала технических решений определенной технической проблемы, а именно, обнаружения движущихся объектов вблизи самоуправляемого транспортного средства без их классификации (т.е. без обучения алгоритма MLA для каждого конкретного класса движущихся объектов, подлежащих обнаружению). В результате возможно более точное обнаружение движущихся объектов вблизи самоуправляемых транспортных средств, включая объекты тех классов, обучение по которым не проводилось.
[236] Очевидно, что не все упомянутые в данном описании технические эффекты должны присутствовать в каждом варианте осуществления настоящей технологии. Например, возможны варианты осуществления настоящей технологии, когда пользователь не получает некоторые из этих технических эффектов, или другие варианты реализации, когда пользователь получает другие технические эффекты либо технический эффект отсутствует.
[237] Некоторые из этих шагов и передаваемых или принимаемых сигналов хорошо известны в данной области техники и по этой причине опущены в некоторых частях описания для упрощения. Сигналы могут передаваться или приниматься с использованием оптических средств (таких как волоконно-оптическое соединение), электронных средств (таких как проводное или беспроводное соединение) и механических средств (например, основанных на давлении, температуре или любом другом подходящем физическом параметре).
[238] Для специалиста в данной области могут быть очевидными возможные изменения и усовершенствования описанных выше вариантов осуществления настоящей технологии. Предшествующее описание приведено лишь в иллюстративных целях, а не для ограничения объема изобретения. Объем охраны настоящей технологии определяется исключительно объемом приложенной формулы изобретения.