СПОСОБ (ВАРИАНТЫ) И СИСТЕМА ДЛЯ КАЛИБРОВКИ НЕСКОЛЬКИХ ЛИДАРНЫХ ДАТЧИКОВ
METHOD (OPTIONS) AND SYSTEM FOR CALIBRATING SEVERAL LIDAR SENSORS

Область техники, к которой относится изобретение
[1] Настоящая технология относится к реализованным посредством компьютера способам и системам для калибровки нескольких лидарных датчиков, установленных на беспилотный автомобиль (SDC), с использованием итеративного алгоритма ближайших точек (Iterative Closest Point Algorithm, ICP).
Уровень техники
[2] В предшествующем уровне техники предложены и реализованы несколько компьютерных навигационных систем, которые выполнены с возможностью помощи при навигации и/или управлении транспортным средством. Эти системы варьируются от более базовых решений на основе картографической локализации (т.е. использования компьютерной системы для помощи водителю в осуществлении навигации по маршруту из начального пункта в пункт назначения) до более сложных решений (компьютеризированных и/или автономных от водителя систем вождения).
[3] Некоторые из этих систем реализуются как то, что общеизвестно в качестве системы "оптимального регулирования скорости" (круиз-контроля). В этих системах компьютерная система на борту транспортных средств поддерживает заданную пользователем скорость транспортного средства. Часть системы оптимального регулирования скорости реализует систему "интеллектуального управления дистанцией", за счет которой пользователь может устанавливать дистанцию до потенциального автомобиля впереди (к примеру, выбирать значение, выражаемое в числе транспортных средств), и компьютерная система регулирует скорость транспортного средства по меньшей мере частично на основе транспортного средства, приближающегося к впереди идущему потенциальному транспортному средству в пределах предварительно заданной дистанции. Некоторые системы оптимального регулирования скорости дополнительно оснащаются системой управления столкновениями, причем эти системы, при обнаружении транспортного средства (или другого препятствия) перед движущимся транспортным средством, замедляют или останавливают транспортное средство.
[4] Некоторые усовершенствованные системы предоставляют полностью автономное вождение транспортного средства без прямого управления оператора (т.е. водителя). Эти автономные транспортные средства включают в себя компьютерные системы, которые могут инструктировать транспортное средство ускоряться, тормозить, останавливаться, сменять полосу движения и автоматически парковаться.
[5] Одна из основных технических проблем в реализации вышеуказанных компьютерных систем заключается в способности компьютерной системы обнаруживать объект, присутствующий вокруг SDC, такой как транспортное средство впереди SDC (причем SDC имеет компьютерную систему на борту), причем это впереди идущее транспортное средство может представлять риск/опасность для SDC и может требовать от компьютерной системы принятия корректирующей меры, будь то торможение, либо в иных случаях изменение скорости, остановка или смена полосы движения. На более детализированном уровне сложность обнаружения объектов представляет собой не просто двоичное обнаружение (присутствие или отсутствие объекта), но скорость и точность, ассоциированные с таким анализом и определением (в частности, исключение "ложноотрицательных суждений", за счет чего система не идентифицирует объект, который фактически присутствует впереди или вокруг транспортного средства).
[6] Типичное автономное транспортное средство или беспилотный автомобиль (SDC) сокращенно, содержит множество датчиков для обеспечения возможности SDC захватывать и "понимать" свою окружающую область. Типично используется более одного типа датчиков. Например, данная реализация SDC может включать в себя одну или более камер, один или более лидар и один или более радар.
[7] Таким образом, SDC может принимать данные в форме трехмерных (3D) облаков точек, данной сцены его окружающей области из нескольких лидаров, причем каждое трехмерное облако точек, сформированное посредством соответствующего одного из лидаров, независимо представляет соответствующий участок данной сцены. Каждое трехмерное облако точек типично содержит рассеянные лидарные точки. Дополнительно SDC может комбинировать трехмерные облака точек, сформированные посредством нескольких лидаров, чтобы формировать всестороннее представление данной сцены, например, для целей обнаружения объектов или формирования трехмерной карты. Тем не менее, трехмерные облака точек, соответствующие соответствующим участкам данной сцены, могут не быть подходящими для дополнительного формирования всестороннего представления данной сцены. Например, эти трехмерные облака точек могут не совмещаться друг с другом геометрически, т.е. они могут представляться, например, как наклоненные относительно друг друга. Кроме того, по меньшей мере, два трехмерных облака точек могут включать в себя лидарные точки, представляющие одни и те же объекты (либо их части); в силу этого такие трехмерные облака точек должны точно объединяться, чтобы не допустить необязательной или избыточной информации во всестороннем представлении данной сцены, которая может в конечном счете влиять на общую точность обнаружения объектов в окружающей области SDC.
[8] Для объединения трехмерных данных, представляющих перекрывающиеся объекты в различных участках данной сцены, может использоваться итеративный алгоритм ближайших точек (ICP). ICP-алгоритм типично содержит выполнение следующих этапов: (1) идентификация первого трехмерного облака точек (также называется в данном документе «опорным» или «целевым трехмерным облаком точек») и второго трехмерного облака точек (также называется в данном документе «исходным облаком точек»); (2) для каждой лидарной точки в первом трехмерном  облаке точек, выбор соответствующей лидарной точки во втором трехмерном  облаке точек; (3) минимизация расстояния между лидарными точками посредством применения преобразования (например, перемещения в пространстве или вращения); (4) итеративно повторяются этапы (2) и (3) до достижения предварительно определенного условия. Предварительно определенное условие, например, может быть предварительно определенным пороговым значением показателя ошибки. За счет этого ICP-алгоритм выполнен с возможностью объединять первое трехмерное облако точек со вторым трехмерным облаком точек.
[9] Предусмотрено несколько подходов предшествующего уровня техники к выполнению ICP-алгоритма. Например, выбор соответствующих лидарных точек может выполняться на основе расстояния между лидарными точками в первом трехмерном м облаке точек и соответствующими лидарными точками во втором трехмерном облаке точек. С этой целью ICP-алгоритм может быть выполнен с возможностью итеративно выбирать ближайшие соответствующие лидарные точки и минимизировать расстояние между ними до предварительно определенного порогового значения показателя ошибки. В этом примере показатель ошибки может представлять собой сумму квадратов расстояний между соответствующими точками в трехмерных облаках точек, так называемый показатель "точка-точка" (соответственно, ICP-алгоритм упоминается как разновидность "точка-точка" ICP-алгоритма).
[10] В другом примере, до этапа выбора точек, в каждой точке в первом трехмерном облаке точек, нормаль может быть предварительно определена и как таковая, точки могут выбираться на основе минимального расстояния между данной точкой во втором трехмерном облаке точек и данной плоскостью, заданной посредством нормали, предварительно определенной в соответствующей точке в первом трехмерном облаке точек. Аналогично предыдущему примеру, ICP-алгоритм дополнительно выполняется посредством минимизации, на каждой итерации, расстояния между такими выбранными точками до предварительно определенного значения показателя ошибки. В этом примере, показатель ошибки представляет собой сумму квадратов расстояний между каждой точкой во втором трехмерном облаке точек и соответствующими плоскостями, заданными посредством нормалей, предварительно определенных в каждой точке в первом трехмерном облаке точек, так называемый показатель ошибки "точка-плоскость" (соответственно, ICP-алгоритм упоминается как разновидность "точка-плоскость" ICP-алгоритма). Таким образом, посредством минимизации показателя ошибки, второе трехмерное облако точек объединяется (другими словами, становится совмещенным) с первым трехмерным облаком точек.
[11] Тем не менее, обнаружено, что в определенных вариантах применения способы предшествующего уровня техники выбора соответствующих точек могут не давать в результате требуемый уровень точности сходимости ICP-алгоритма. Другими словами, их способность минимизировать показатель ошибки может быть ограничена, что может приводить, например, к искажению объектов, во всестороннем представлении данной сцены.
[12] Публикация заявки на патент (США) номер: 2018/0188043 A1 (опубликованная 5 июля 2018 и назначенная DeepMap Inc.), озаглавленная "Classification of surfaces as hard/soft for combining data captured by autonomous vehicles for generating high definition maps", раскрывает данные датчиков приема картографической системы высокой четкости из транспортных средств, движущихся по маршрутам, и комбинирует данные, чтобы формировать карту высокой четкости для использования в ведущих транспортных средствах, например, для направления автономных транспортных средств. Граф положений компонуется из собранных данных, при этом каждое положение представляет местоположение и ориентацию транспортного средства. Граф положений оптимизируется, чтобы минимизировать ограничения между положениями. Точкам, ассоциированным с поверхностью, назначается мера доверия, определенная с использованием меры твердости/мягкости поверхности. Фильтр результатов на основе машинного обучения обнаруживает плохие результаты совмещения и предотвращает их ввод в последующую глобальную оптимизацию положений. Инфраструктура совмещения является параллелизуемой для выполнения с использованием параллельной/распределенной архитектуры. «Горячие точки» совмещения обнаруживаются для дополнительной верификации и улучшения. Система поддерживает инкрементные обновления, за счет этого обеспечивая возможность детализаций подграфов для инкрементного улучшения карты высокой четкости для поддержания ее актуальной.
Сущность изобретения
[13] Задача настоящей технологии заключается в том, чтобы улучшать по меньшей мере некоторые неудобства, присутствующие в предшествующем уровне техники.
[14] Разработчики настоящей технологии выяснили, что лидарные датчики работают таким образом, что лидарные точки, рассеянные из вертикальных поверхностей, в общем, имеют гораздо более высокую плотность, чем лидарные точки, рассеянные из горизонтальных поверхностей в качестве примера. В связи с этим, число лидарных точек, представляющих вертикальные поверхности, значительно выше числа лидарных точек, представляющих горизонтальные поверхности. Как результат, совмещение двух трехмерных облаков точек может быть лучше на вертикальных поверхностях и хуже на горизонтальных, или лидарные точки, представляющие вертикальные поверхности во втором трехмерном облаке точек, могут объединяться с лидарными точками, представляющими горизонтальные поверхности в первом трехмерном облаке точек. Это может влиять на общее качество объединения и приводить к объектам, представленным посредством лидарных датчиков, не соответствующим их реальным размерам и местоположениям.
[15] Таким образом, разработчики настоящей технологии создают способы и системы для выполнения ICP-алгоритма, которые направлены, до применения преобразования к соответствующим парам лидарных точек, на назначение им весовых коэффициентов на основе плотности их распределения. Например, лидарным точкам, имеющим повышенную плотность распределения (представляющим вертикальные поверхности), должны назначаться меньшие весовые коэффициенты, в то время как лидарным точкам, имеющим более низкую плотность распределения (представляющим горизонтальные поверхности), должны назначаться большие весовые коэффициенты. Дополнительно на основе назначенных весовых коэффициентов, соответствующие пары лидарных точек в двух трехмерных облаках точек итеративно выбираются с минимизацией показателя ошибки между ними. За счет этого разработчики пытаются совмещать значимость выборки лидарных точек из вертикальных поверхностей с выборкой лидарных точек из горизонтальных поверхностей, которая предположительно должна улучшать сходимость ICP-алгоритма по сравнению со способами предшествующего уровня техники.
[16] В соответствии с одним широким аспектом настоящей технологии предусмотрен способ объединения наборов цифровых данных в многомерном пространстве. Наборы цифровых данных содержат: (i) первый набор данных, имеющий множество первых точек данных, и (ii) второй набор данных, имеющий множество вторых точек данных и множество векторов нормали, причем данная вторая точка данных из множества вторых точек данных ассоциирована с соответствующим вектором нормали из множества векторов нормали. Способ осуществляется посредством электронного устройства. Способ содержит: согласование, посредством электронного устройства, по меньшей мере некоторых из множества первых точек данных по меньшей мере с некоторыми из множества вторых точек данных, за счет этого определяя множество пар, причем данная одна из множества пар включает в себя (i) данную первую точку данных и (ii) данную вторую точку данных; определение, посредством электронного устройства, конкретного для пары значения ошибки для данной одной из множества пар, причем конкретное для пары значение ошибки указывает измерение расстояния для данной одной из множества пар в многомерном пространстве; определение, посредством электронного устройства, весового коэффициента для данной одной из множества пар на основе вектора нормали, ассоциированного с данной второй точкой данных в данной одной из множества пар таким образом, что весовой коэффициент является обратно пропорциональным плотности возникновения вектора нормали в распределении множества векторов нормали; определение, посредством электронного устройства, глобального значения ошибки для второго набора данных в качестве суммы конкретных для пары значений ошибки, взвешенных посредством соответствующих весовых коэффициентов, при этом глобальное значение ошибки представляет собой измерение предварительно определенного показателя ошибки, который следует минимизировать для выполнения объединения наборов цифровых данных в многомерном пространстве.
[17] В некоторых реализациях способа способ дополнительно содержит, до момента  достижения предварительно определенного условия прекращения: итеративную минимизацию, посредством электронного устройства, глобального значения ошибки второго набора данных посредством регулирования начальной позиции второго набора данных относительно первого набора данных в многомерном пространстве, за счет этого итеративно определяя промежуточные позиции второго набора данных относительно первого набора данных в многомерном пространстве, причем последняя промежуточная позиция второго набора данных представляет собой конечную позицию второго набора данных относительно первого набора данных в многомерном пространстве.
[18] В некоторых реализациях способа второй набор данных в конечной позиции по существу объединяется с первым набором данных.
[19] В некоторых реализациях способа способ содержит: определение, посредством электронного устройства, правила преобразования для второго набора данных, чтобы смещаться от начальной позиции к конечной позиции.
[20] В некоторых реализациях способа правило преобразования включает в себя правило перемещения и правило вращения.
[21] В некоторых реализациях способа способ дополнительно содержит до согласования: выбор, посредством электронного устройства, (i) по меньшей мере некоторых из множества первых точек данных из множества первых точек данных и (ii) по меньшей мере некоторых из множества вторых точек данных из множества вторых точек данных.
[22] В некоторых реализациях способа выбор содержит по меньшей мере одно из следующего: применение, посредством электронного устройства, алгоритма равномерной выборки (uniform sampling algorithm) по меньшей мере к одной из множества первых точек данных и множества вторых точек данных; применение, посредством электронного устройства, алгоритма случайной выборки (random sampling algorithm)по меньшей мере к одной из множества первых точек данных и множества вторых точек данных; и применение, посредством электронного устройства, алгоритма распределения векторов нормали (normal-vector-distribution algorithm) по меньшей мере к одной из множества первых точек данных и множества вторых точек данных.
[23] В некоторых реализациях способа согласование содержит: определение, посредством электронного устройства, для данной одной из по меньшей мере некоторых из множества вторых точек данных, ближайшей первой точки данных из по меньшей мере части первого множества точек данных к данной одной из по меньшей мере некоторых из множества вторых точек данных в многомерном пространстве, причем данная одна из по меньшей мере некоторых из множества вторых точек данных и ближайшая первая точка данных образуют одну из множества пар.
[24] В некоторых реализациях способа показатель ошибки представляет собой сумму квадратов расстояний между точками данных в соответствующих одних из множества пар, при этом показатель ошибки представляет собой показатель ошибки "точка-точка".
[25] В некоторых реализациях способа показатель ошибки представляет собой сумму квадратов расстояний между данной второй точкой данных в соответствующей одной из множества пар до плоскости, содержащей данную первую точку данных в соответствующей одной из множества пар, причем плоскость является перпендикулярной вектору нормали, ассоциированному с данной первой точкой данных в соответствующей одной из множества пар, при этом показатель ошибки представляет собой показатель ошибки типа "точка-плоскость".
[26] В некоторых реализациях способа определение весового коэффициента содержит: представление каждого из множества векторов нормали на сфере предварительно определенного размера; вычисление, для данного одного из множества векторов нормали, числа векторов нормали, расположенных в предварительно определенной замкнутой окрестности на сфере; причем данный вектор нормали ассоциирован с данной второй точкой данных в данной одной из множества пар; определение, для данной одной из множества пар, весового коэффициента в качестве обратной величины относительно числа векторов нормали, расположенных в предварительно определенной замкнутой окрестности.
[27] В некоторых реализациях способа, сфера аппроксимируется с помощью многогранника, каждая вершина которого расположена на сфере, и множество векторов нормали распределяются между гранями многогранника на основе близости к своей соответствующей вершине, и определение весового коэффициента содержит: вычисление числа векторов нормали, расположенных на данной грани многогранника, причем данная грань содержит данный вектор нормали, ассоциированный с данной второй точкой данных в данной одной из множества пар; определение, для данной одной из множества пар, весового коэффициента в качестве обратной величины относительно векторов нормали, расположенных в данной грани многогранника.
[28] В некоторых реализациях способа определение весового коэффициента содержит: аппроксимацию распределения множества векторов нормали с нормальным распределением с предварительно определенными параметрами и прогнозирование, с использованием байесовского вывода, плотности возникновения вектора нормали в распределении множества векторов нормали; определение, для данной одной из множества пар, весового коэффициента в качестве обратной величины относительно возникновения векторов нормали вектора нормали в распределении множества векторов нормали.
[29] В некоторых реализациях способа определение, посредством электронного устройства, скорректированного весового коэффициента, если весовой коэффициент находится за пределами предварительно определенного диапазона, причем скорректированный весовой коэффициент представляет собой ближайшее значение к весовому коэффициенту в предварительно определенном диапазоне.
[30] В соответствии с другим широким аспектом настоящей технологии предусмотрен способ выполнения итеративного алгоритма ближайших точек (ICP) для наборов цифровых данных в многомерном пространстве. Наборы цифровых данных содержат (i) первый набор данных, имеющий множество первых точек данных, и (ii) второй набор данных, имеющий множество вторых точек данных и множество векторов нормали, причем данная вторая точка данных из множества вторых точек данных ассоциирована с соответствующим вектором нормали из множества векторов нормали. Способ осуществляется посредством электронного устройства. Способ содержит во время выполнения ICP-алгоритма: определение, посредством электронного устройства, множества пар точек данных на основе по меньшей мере некоторых из множества первых точек данных и по меньшей мере некоторых из множества вторых точек данных, причем данная одна из множества пар включает в себя (i) соответствующую первую точку данных и (ii) соответствующую вторую точку данных; определение, посредством электронного устройства, конкретных для пары значений ошибки для соответствующих одних из множества пар, причем данное конкретное для пары значение ошибки указывает измерение расстояния для соответствующей одной из множества пар в многомерном пространстве, взвешивание, посредством электронного устройства, конкретных для пары значений ошибки посредством соответствующих весовых коэффициентов, за счет этого определяя взвешенные конкретные для пары значения ошибки, причем данный весовой коэффициент для соответствующей одной из множества пар является обратно пропорциональным плотности возникновения вектора нормали второй точки данных в соответствующей одной из множества пар в распределении множества векторов нормали таким образом, что: (i) чем больше множество векторов нормали имеет векторов, которые являются аналогичными вектору нормали второй точки данных в соответствующей одной из множества пар, тем больше взвешенное конкретное для пары значение ошибки, соответствующее одной из множества пар, уменьшается по сравнению с соответствующим конкретным для пары значением ошибки, и (ii) чем меньше множество векторов нормали имеет векторов, которые являются аналогичными вектору нормали второй точки данных в соответствующей одной из множества пар, тем больше взвешенное конкретное для пары значение ошибки, соответствующее одной из множества пар, увеличивается по сравнению с соответствующим конкретным для пары значением ошибки; и определение, посредством электронного устройства, глобального значения ошибки для второго набора данных в качестве суммы взвешенных конкретных для пары значений ошибки, при этом глобальное значение ошибки представляет собой измерение предварительно определенного показателя ошибки, который следует минимизировать во время выполнения ICP-алгоритма.
[31] В соответствии с еще одним другим широким аспектом настоящей технологии предусмотрено электронное устройство. Электронное устройство содержит: процессор; машиночитаемый физический носитель информации, содержащий инструкции, причем инструкции служат для выполнения по меньшей мере итеративного алгоритма ближайших точек (ICP), интерфейс связи для осуществления связи с датчиком, смонтированным на транспортном средстве. Машиночитаемый физический носитель информации сохраняет по меньшей мере: (i) первый набор данных, имеющий множество первых точек данных, и (ii) второй набор данных, имеющий множество вторых точек данных и множество векторов нормали, причем данная вторая точка данных из множества вторых точек данных ассоциирована с соответствующим вектором нормали из множества векторов нормали. Процессор, при выполнении инструкций, выполнен с возможностью: определять множество пар точек данных на основе по меньшей мере некоторых из множества первых точек данных и по меньшей мере некоторых из множества вторых точек данных, причем данная одна из множества пар включает в себя (i) соответствующую первую точку данных и (ii) соответствующую вторую точку данных; определять конкретные для пары значения ошибки для соответствующих одних из множества пар, причем данное конкретное для пары значение ошибки указывает измерение расстояния для соответствующей одной из множества пар в многомерном пространстве, взвешивать конкретные для пары значения ошибки посредством соответствующих весовых коэффициентов, за счет этого определяя взвешенные конкретные для пары значения ошибки, причем данный весовой коэффициент для соответствующей одной из множества пар является обратно пропорциональным плотности возникновения вектора нормали второй точки данных в соответствующей одной из множества пар в распределении множества векторов нормали, определять глобальное значение ошибки для второго набора данных в качестве суммы взвешенных конкретных для пары значений ошибки, причем глобальное значение ошибки представляет собой измерение предварительно определенного показателя ошибки, который следует минимизировать во время выполнения ICP-алгоритма.
[32] В некоторых реализациях электронного устройства процессор до определения множества пар выполнен с возможностью: выбирать (i) по меньшей мере некоторые из множества первых точек данных из множества первых точек данных и (ii) по меньшей мере некоторые из множества вторых точек данных из множества вторых точек данных.
[33] В некоторых реализациях электронного устройства процессор предварительно выполнен с возможностью: применять алгоритм равномерной выборки по меньшей мере к одной из множества первых точек данных и множества вторых точек данных; применять алгоритм случайной выборки по меньшей мере к одной из множества первых точек данных и множества вторых точек данных; и применять алгоритм распределения векторов нормали по меньшей мере к одной из множества первых точек данных и множества вторых точек данных.
[34] В некоторых реализациях электронного устройства для определения данной одной из множества пар процессор выполнен с возможностью определять, для данной одной из по меньшей мере некоторых из множества вторых точек данных, ближайшую первую точку данных из по меньшей мере некоторых из множества первых точек данных к данной одной из по меньшей мере некоторых из множества вторых точек данных.
[35] В некоторых реализациях электронного устройства процессор дополнительно выполнен с возможностью применять один из показателя ошибки "точка-точка" и показателя ошибки "точка-плоскость".
[36] В контексте настоящего описания изобретения "сервер" представляет собой компьютерную программу, которая выполняется на соответствующих аппаратных средствах и допускает прием запросов (например, из клиентских устройств) по сети и выполнение этих запросов либо инструктирование выполнения этих запросов. Аппаратные средства могут реализовываться как один физический компьютер или одна физическая компьютерная система, но ни одно из означенного не должно обязательно иметь место относительно настоящей технологии. В настоящем контексте, использование выражения "сервер" не имеет намерение означать то, что каждая задача (например, принимаемые инструкции или запросы) или любая конкретная задача должна приниматься, выполняться или инструктироваться для выполнения посредством идентичного сервера (т.е. идентичного программного обеспечения и/или аппаратных средств); оно имеет намерение означать то, что любое число программных элементов или аппаратных устройств может быть предусмотрено при приеме/отправке, выполнении или инструктировании для выполнения любой задачи или запроса либо результатов любой задачи или запроса; и все это программное обеспечение и аппаратные средства могут представлять собой один сервер либо несколько серверов, причем все из означенного включается в выражение "по меньшей мере, один сервер".
[37] В контексте настоящего описания изобретения "электронное устройство" представляет собой любые компьютерные аппаратные средства, которые допускают выполнение программного обеспечения, соответствующего рассматриваемой релевантной задаче. В контексте настоящего описания изобретения термин "электронное устройство" подразумевает, что устройство может функционировать в качестве сервера для других электронных устройств и клиентских устройств; тем не менее, это не должно обязательно иметь место относительно настоящей технологии. Таким образом, некоторые (неограничивающие) примеры электронных устройств включают в себя персональные компьютеры (настольные компьютеры, переносные компьютеры, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует понимать, что в настоящем контексте тот факт, что устройство функционирует в качестве электронного устройства, не означает того, что оно не может функционировать в качестве сервера для других электронных устройств. Использование выражения "электронное устройство" не исключает использование нескольких клиентских устройств при приеме/отправке, выполнении или инструктировании для выполнения любой задачи или запроса либо результатов любой задачи или запроса, или этапов любого способа, описанного в данном документе.
[38] В контексте настоящего описания изобретения "клиентское устройство" представляет собой любые компьютерные аппаратные средства, которые допускают выполнение программного обеспечения, соответствующего рассматриваемой релевантной задаче. В контексте настоящего описания изобретения термин "клиентское устройство" ассоциирован с пользователем клиентского устройства. Таким образом, некоторые (неограничивающие) примеры клиентских устройств включают в себя персональные компьютеры (настольные компьютеры, переносные компьютеры, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что устройство, выступающее в качестве клиентского устройства в настоящем контексте, не исключается из выступания в качестве сервера для других клиентских устройств. Использование выражения "клиентское устройство" не исключает использование нескольких клиентских устройств при приеме/отправке, выполнении или инструктировании для выполнения любой задачи или запроса либо результатов любой задачи или запроса, или этапов любого способа, описанного в данном документе.
[39] В контексте настоящего описания изобретения выражение "информация" включает в себя информацию вообще любого характера или вида, допускающую сохранение в базе данных. Таким образом, информация включает в себя, но не только, аудиовизуальные произведения (изображения, фильмы, звукозаписи, презентации и т.д.), данные (данные местоположения, числовые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы и т.д.
[40] В контексте настоящего описания изобретения выражение "программный компонент" имеет намерение включать в себя программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для осуществления конкретной упоминаемой функции(й).
[41] В контексте настоящего описания изобретения выражение "компьютерные носители хранения информации" (также называемые "носителями хранения данных") имеет намерение включать в себя носители вообще любого характера и вида, в том числе, без ограничения, RAM, ROM, диски (CD-ROM, DVD, гибкие диски, накопители на жестких дисках и т.д.), флэш-накопители, твердотельные накопители, накопители на ленте и т.д. Множество компонентов могут комбинироваться, чтобы формировать компьютерные носители хранения информации, включающие в себя два или более компонентов носителей идентичного типа и/или два или более компонентов носителей различных типов.
[42] В контексте настоящего описания изобретения "база данных" представляет собой любую структурированную совокупность данных, независимо от ее конкретной структуры, программного обеспечения управления базами данных или компьютерных аппаратных средств, на которых данные сохраняются, реализуются или становятся доступными иными способами для использования. База данных может постоянно размещаться в идентичных аппаратных средствах с процессом, который сохраняет или использует информацию, сохраненную в базе данных, либо она может постоянно размещаться в отдельных аппаратных средствах, таких как выделенный сервер или множество серверов.
[43] В контексте настоящего описания изобретения слова "первый", "второй", "третий" и т.д. использованы в качестве прилагательных только для целей обеспечения различения существительных, которые они модифицируют, друг от друга, а не для целей описания конкретных взаимосвязей между этими существительными. Таким образом, например, следует понимать, что использование терминов "первая база данных" и "третий сервер" не подразумевает конкретный порядок, тип, хронологию, иерархию или ранжирование (например) относительно сервера, и их использование (непосредственно) не подразумевает то, что "второй сервер" должен обязательно существовать в любой данной ситуации. Дополнительно, как пояснено в данном документе в других контекстах, ссылка на "первый" элемент и "второй" элемент не исключает того, что два элемента представляют собой идентичный фактический элемент реального мира. Таким образом, например, в некоторых случаях "первый" сервер и "второй" сервер могут представлять собой идентичные программные и/или аппаратные компоненты, в других случаях они могут представлять собой различные программные и/или аппаратные компоненты.
[44] Реализации настоящей технологии имеют, по меньшей мере, одну из вышеуказанных целей и/или аспектов, но не обязательно имеют все из них. Следует понимать, что некоторые аспекты настоящей технологии, которые получены в результате попытки достигать вышеуказанной цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, не изложенным конкретно в данном документе.
[45] Дополнительные и/или альтернативные признаки, аспекты и преимущества реализаций настоящей технологии должны становиться очевидными из нижеприведенного описания, прилагаемых чертежей и прилагаемой формулы изобретения.
Краткое описание чертежей
[46] Эти и другие признаки, аспекты и преимущества настоящей технологии должны становиться более понятными при рассмотрении нижеприведенного описания, прилагаемой формулы изобретения и прилагаемых чертежей, на которых:
[47] Фиг. 1 иллюстрирует принципиальную схему примерной компьютерной системы для реализации конкретных вариантов осуществления систем и/или способов настоящей технологии.
[48] Фиг. 2 иллюстрирует сетевую вычислительную среду, подходящую для использования с некоторыми реализациями настоящей технологии.
[49] Фиг. 3 иллюстрирует процедуру получения лидарных данных, выполняемую посредством процессора электронного устройства сетевой вычислительной среды по фиг. 2, а более конкретно, процедуру для приема данных трехмерного облака точек, захваченных посредством одного из датчиков транспортного средства, присутствующих в сетевой вычислительной среде по фиг. 2.
[50] Фиг. 4 схематично изображает сцену окружающей области, представленной посредством двух независимо сформированных, посредством датчиков транспортного средства, присутствующих в сетевой вычислительной среде по фиг. 2, трехмерных облаков точек, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[51] Фиг. 5 схематично иллюстрирует начальную позицию трехмерных облаков точек, представленных в многомерном пространстве, сформированном посредством процессора электронного устройства сетевой вычислительной среды по фиг. 2, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[52] Фиг. 6 иллюстрирует способ для определения, посредством процессора электронного устройства сетевой вычислительной среды по фиг. 2, значений весового коэффициента, назначенных каждому по меньшей мере одному из трехмерных облаков точек, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[53] Фиг. 7 схематично иллюстрирует другой способ для определения, посредством процессора электронного устройства сетевой вычислительной среды по фиг. 2, значений весового коэффициента, назначенных каждому по меньшей мере одному из трехмерных облаков точек, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[54] Фиг. 8 схематично иллюстрирует способ для определения, посредством процессора электронного устройства сетевой вычислительной среды по фиг. 2, соответствий между лидарными точками трехмерных облаков точек в многомерном пространстве по фиг. 5, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[55] Фиг. 9 схематично иллюстрирует другой способ для определения, посредством процессора сетевой вычислительной среды по фиг. 2, соответствий между лидарными точками трехмерных облаков точек в многомерном пространстве по фиг. 5, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[56] Фиг. 10 схематично иллюстрирует способ для определения, посредством процессора электронного устройства сетевой вычислительной среды по фиг. 2, показателя ошибки для объединения соответствующих лидарных точек трехмерных облаков точек в многомерном пространстве по фиг. 5, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[57] Фиг. 11 схематично иллюстрирует слитое представление сцены по фиг. 4, сформированное посредством процессора сетевой вычислительной среды по фиг. 2, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[58] Фиг. 12 иллюстрирует блок-схему последовательности операций способа для объединения, посредством процессора электронного устройства сетевой вычислительной среды по фиг. 2, двух трехмерных облаков точек по фиг. 4, независимо сформированных посредством датчиков транспортного средства, присутствующего в сетевой вычислительной среде по фиг. 2 для предоставления слитого представления по фиг. 11, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
Подробное описание изобретения
[59] Примеры и условный язык, изложенный в данном документе, преимущественно призваны помочь читателю в понимании принципов настоящей технологии, а не ограничивать ее объем такими конкретно изложенными примерами и условиями. Следует принимать во внимание, что специалисты в данной области техники могут разрабатывать различные компоновки, которые, хотя и не описаны или показаны явно в данном документе, тем не менее, осуществляют принципы настоящей технологии и включены в пределы ее сущности и объема.
[60] Кроме того, в качестве помощи в понимании, нижеприведенное описание может описывать относительно упрощенные реализации настоящей технологии. Специалисты в данной области техники должны понимать, что различные реализации настоящей технологии могут иметь большую сложность.
[61] В некоторых случаях, также может быть изложено то, что считается полезными примерами модификаций настоящей технологии. Это осуществляется просто в качестве помощи в понимании и, кроме того, не должно не задавать объем или излагать ограничения настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалисты в данной области техники могут вносить другие модификации при одновременном пребывании в пределах объема настоящей технологии. Дополнительно, если примеры модификаций не изложены, не следует интерпретировать это таким образом, что модификации невозможны, и/или таким образом, что то, что описывается, представляет собой единственный способ реализации этого элемента настоящей технологии.
[62] Кроме того, все утверждения в данном документе, излагающие принципы, аспекты и реализации технологии, а также их конкретные примеры, охватывают их конструктивные и функциональные эквиваленты независимо от того, являются они известными в настоящее время или разрабатываются в будущем. Таким образом, например, специалисты в данной области техники должны признавать, что блок-схемы в данном документе представляют концептуальные виды иллюстративной схемы, осуществляющей принципы настоящей технологии. Аналогично, следует принимать во внимание, что все блок-схемы последовательности операций, блок-схемы, схемы переходов состояния, псевдокод и т.п. представляют различные процессы, которые могут представляться большей частью на компьютерно-читаемых носителях, и в силу этого выполняются посредством компьютера или процессора, независимо от того, показан или нет в явной форме такой компьютер или процессор.
[63] Функции различных элементов, показанных на чертежах, включающих в себя все функциональные блоки, помеченные как "процессор", могут предоставляться с помощью специализированных аппаратных средств, а также аппаратных средств, допускающих выполнение программного обеспечения, в ассоциации с надлежащим программным обеспечением. При предоставлении посредством процессора функции могут предоставляться посредством одного специализированного процессора, посредством одного совместно используемого процессора или посредством множества отдельных процессоров, некоторые из которых могут совместно использоваться. Кроме того, явное использование термина "процессор" или "контроллер" не должно истолковываться как означающее исключительно аппаратные средства, допускающие выполнение программного обеспечения, и может неявно включать в себя, без ограничений, аппаратные средства процессора цифровых сигналов (DSP), сетевой процессор, специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ROM) для сохранения программного обеспечения, оперативное запоминающее устройство (RAM) и энергонезависимое устройство хранения. Также могут быть включены другие аппаратные средства, традиционные и/или специализированные.
[64] Программные модули или просто модули, которые подразумеваются как программные, могут представляться в данном документе в качестве любой комбинации элементов блок-схемы последовательности операций способа или других элементов, указывающих выполнение этапов процесса, и/или текстового описания. Такие модули могут выполняться посредством аппаратных средств, которые показаны явно или неявно.
[65] С учетом этих основных принципов далее рассматриваются некоторые неограничивающие примеры, чтобы иллюстрировать различные реализации аспектов настоящей технологии.
[66] При обращении первоначально к фиг. 1, показана компьютерная система 100, подходящая для использования с некоторыми реализациями настоящей технологии, причем компьютерная система 100 содержит различные аппаратные компоненты, включающие в себя один или более одно- или многоядерных процессоров, совместно представленных посредством процессора 110, твердотельный накопитель 120, запоминающее устройство 130, которое может представлять собой оперативное запоминающее устройство или любой другой тип запоминающего устройства. Связь между различными компонентами компьютерной системы 100 может осуществляться посредством одной или более внутренних и/или внешних шин (не показаны) (например, посредством PCI-шины, универсальной последовательной шины, шины по стандарту IEEE1394 Firewire, шины SCSI, шины Serial ATA и т.д.), с которыми электронно соединяются различные аппаратные компоненты. Согласно вариантам осуществления настоящей технологии, твердотельный накопитель 120 сохраняет программные инструкции, подходящие для загрузки в запоминающее устройство 130 и выполняемые посредством процессора 110 для определения присутствия объекта. Например, программные инструкции могут представлять собой часть управляющего приложения транспортного средства, выполняемого посредством процессора 110. Следует отметить, что компьютерная система 100 может иметь дополнительные и/или необязательные компоненты, такие как модуль 140 сетевой связи для связи, через сеть связи (например, сеть 245 связи, проиллюстрированную на фиг. 2), с другими электронными устройствами и/или серверами, модули локализации (не проиллюстрирован) и т.п.
[67] Фиг. 2 иллюстрирует сетевую компьютерную среду 200, подходящее для использования с некоторыми вариантами осуществления систем и/или способов настоящей технологии. Сетевая компьютерная среда 200 содержит электронное устройство 210, ассоциированное с транспортным средством 220 или ассоциированное с пользователем (не проиллюстрирован), который может управлять транспортным средством 220, сервер 235, поддерживающий связь с электронным устройством 210 через сеть 245 связи (например, через Интернет и т.п., как подробнее описывается ниже в данном документе). Необязательно, сетевая компьютерная среда 200 также может включать в себя GPS-спутник (не проиллюстрирован), передающий и/или принимающий GPS-сигнал в/из электронного устройства 210. Следует понимать, что настоящая технология не ограничена GPS и может использовать технологию позиционирования, отличную от GPS. Следует отметить, что GPS-спутник может вообще опускаться.
[68] Транспортное средство 220, с которым ассоциировано электронное устройство 210, может содержать любое туристическое или перевозное транспортное средство, такое как личный или коммерческий автомобиль, грузовик, мотоцикл и т.п. Транспортное средство может представлять собой управляемое пользователем или безоператорное транспортное средство. Следует отметить, что конкретные параметры транспортного средства 220 не являются ограничивающими, причем эти конкретные параметры включают в себя: производителя транспортных средств, модель транспортного средства, год изготовления транспортного средства, вес транспортного средства, габариты транспортного средства, распределение веса транспортного средства, площадь поверхности транспортного средства, высоту транспортного средства, тип приводной передачи (например, 2x или 4x), тип шин, тормозную систему, топливную систему, пробег, идентификационный номер транспортного средства и рабочий объем двигателя.
[69] Реализация электронного устройства 210 не ограничена конкретным образом, но в качестве примера, электронное устройство 210 может реализовываться как блок управления двигателем транспортного средства, CPU транспортного средства, навигационное устройство транспортного средства (например, навигационное устройство транспортного средства TomTom™, навигационное устройство транспортного средства Garmin™), планшетный компьютер, персональный компьютер, встроенный в транспортное средство 220, и т.п. Таким образом, следует отметить, что электронное устройство 210 может быть или может не быть постоянно ассоциировано с транспортным средством 220. Дополнительно или альтернативно, электронное устройство 210 может реализовываться в устройстве беспроводной связи, таком как мобильный телефон (например, смартфон или радиотелефон). В конкретных вариантах осуществления электронное устройство 210 имеет дисплей 270.
[70] Электронное устройство 210 может содержать часть или все компоненты компьютерной системы 100, проиллюстрированной на фиг. 1. В конкретных вариантах осуществления электронное устройство 210 представляет собой бортовое компьютерное устройство и содержит процессор 110, твердотельный накопитель 120 и запоминающее устройство 130. Другими словами, электронное устройство 210 содержит аппаратные средства и/или программное обеспечение, и/или микропрограммное обеспечение либо комбинацию вышеозначенного для определения присутствия объекта вокруг транспортного средства 220, как подробнее описано ниже.
[71] В соответствии с неограничивающими вариантами осуществления настоящей технологии электронное устройство 210 дополнительно содержит или имеет доступ ко множеству датчиков 230. Согласно этим вариантам осуществления, множество датчиков 230 могут содержать датчики, обеспечивающие различные реализации настоящей технологии. Примеры множества датчиков включают в себя, но не только: камеры, лидарные датчики и радарные датчики, и т.д. Каждый из множества датчиков 230 функционально соединяется с процессором 110 для передачи такой захваченной информации в процессор 110 для ее обработки, как подробнее описывается ниже в данном документе.
[72] Каждый или некоторые из множества датчиков 230 могут монтироваться в салоне, в верхнем участке ветрового стекла транспортного средства 220, но другие местоположения находятся в пределах объема настоящего раскрытия сущности, в том числе заднее окно, боковые окна, передний капот, крыша, решетка радиатора или передний бампер транспортного средства 220. В некоторых неограничивающих вариантах осуществления настоящей технологии каждый или некоторые из множества датчиков 230 могут монтироваться в выделенном кожухе (не проиллюстрирован), смонтированном на верхушке транспортного средства 220.
[73] Дополнительно, пространственное размещение каждого или некоторых из множества датчиков 230 может проектироваться с учетом ее конкретной технической конфигурации, конфигурации кожуха, погодных условий области, в которой должно использоваться транспортное средство 220 (таких как частый дождь, снег и другие пункты), и т.п.
[74] В некоторых неограничивающих вариантах осуществления настоящей технологии множество датчиков содержат по меньшей мере первый датчик 240 и второй датчик 260. В этих вариантах осуществления, как первый датчик 240, так и второй датчик 260 могут быть выполнены с возможностью захватывать данные трехмерного облака точек окружающей области 250 транспортного средства 220. В этом отношении, каждый из первого датчика 240 и второго датчика 260 может содержать лидарный измерительный прибор.
8
[75] Лидар (LiDAR) означает оптическое обнаружение и дальнометрию. Предполагается, что специалисты в данной области техники должны понимать функциональность лидарного измерительного прибора, но вкратце, передающее устройство (не проиллюстрировано) одного из первого датчика 240 и второго датчика 260, реализованного в качестве лидара, отправляет лазерный импульс, и световые частицы (фотоны) рассеиваются обратно в приемное устройство (не проиллюстрировано) одного из первого датчика 240 и второго датчика 260, реализованного в качестве лидарного измерительного прибора. Фотоны, которые возвращаются в приемное устройство, собираются с помощью телескопа и подсчитываются в качестве функции от времени. С использованием скорости света (~3×10 м/с) процессор 110 затем может вычислять то, насколько далеко перемещались фотоны (при полном обходе). Фотоны могут рассеиваться с отражением от многих различных объектов, окружающих транспортное средство 220, таких как другие частицы (аэрозоли или молекулы) в атмосфере, другие автомобили, стационарные объекты или потенциальные преграды перед транспортным средством 220.
[76] В конкретном неограничивающем примере, каждый из первого датчика 240 и второго датчика 260 может реализовываться как лидарный датчик, который может иметь тип, предлагаемый компанией Velodyne LiDAR, Inc. 5521 Hellyer Avenue, Сан-Хосе, CA 95138, США. Следует четко понимать, что первый датчик 240 и второй датчик 260 могут реализовываться в любом другом подходящем оборудовании.
[77] Тем не менее, в неограничивающих вариантах осуществления настоящей технологии первый датчик 240 и второй датчик 260 не должны реализовываться на основе идентичного лидарного датчика, по сути, соответствующие технические характеристики первого датчика 240 могут отличаться от технических характеристик второго датчика 260.
[78] В некоторых вариантах осуществления настоящей технологии первый датчик 240 и второй датчик 260 могут размещаться в вышеуказанном кожухе (не проиллюстрирован отдельно), расположенном на крыше транспортного средства 220. Дополнительно в неограничивающих вариантах осуществления настоящей технологии множество датчиков 230 могут содержать большее число лидарных датчиков, к примеру, три или любое другое подходящее число. В этих вариантах осуществления все лидарные датчики, наряду с первым датчиком 240 и вторым датчиком 260, могут размещаться в вышеуказанном кожухе (не проиллюстрирован отдельно).
[79] В неограничивающих вариантах осуществления настоящей технологии первый датчик 240 и второй датчик 260 калибруются таким образом, что для первого трехмерного облака точек, захваченного посредством первого датчика 240, и второго трехмерного облака точек, захваченного посредством второго датчика 260, процессор 110 выполнен с возможностью идентифицировать перекрывающиеся области посредством объединения первого трехмерного облака точек и второго трехмерного облака точек. Эта калибровка может выполняться во время изготовления и/или настройки транспортного средства 220. Альтернативно, в любое подходящее время после этого; или, другими словами, калибровка может выполняться во время модернизации транспортного средства 220 за счет первого датчика 240 и второго датчика 260 в соответствии с неограничивающими вариантами осуществления настоящей технологии, предполагаемыми в данном документе. Альтернативно калибровка может выполняться во время оснащения транспортного средства 220 первым датчиком 240 и вторым датчиком 260 в соответствии с неограничивающими вариантами осуществления настоящей технологии, предполагаемыми в данном документе. Ниже подробнее описывается то, как калибровка выполняется посредством процессора 110, со ссылкой на фиг. 4-11.
[80] В некоторых неограничивающих вариантах осуществления настоящей технологии первый датчик 240 и второй датчик 260 могут монтироваться на транспортном средстве 220 таким образом, что они оба "наблюдают" одну и ту же сцену окружающей области 250. Другими словами, каждый из первого датчика 240 и второго датчика 260 может представлять собой невращательные лидарные датчики.
[81] В некоторых неограничивающих вариантах осуществления настоящей технологии каждый из первого датчика 240 и второго датчика 260 может представлять собой вращательные лидарные датчики, каждый из которых работает на своей предварительно определенной частоте сканирования. Соответственно, в этих вариантах осуществления, процессор 110 может быть выполнен с возможностью синхронизировать, например, первый датчик 240 со вторым датчиком 260 посредством регулирования ассоциированных частот сканирования таким образом, что в данный момент времени, первый датчик 240 и второй датчик 260 находятся в идентичной угловой позиции относительно своих соответствующих вертикальных центральных осей. За счет этого процессор 110 выполнен с возможностью инструктировать первый датчик 240 и второй датчик 260 собирать трехмерные данные, указывающие одну и ту же сцену окружающей области 250 транспортного средства 220.
[82] В неограничивающих вариантах осуществления настоящей технологии синхронизация первого датчика 240 и второго датчика 260 может инициализироваться, посредством процессора 110, в числе прочего, в течение периодов технического обслуживания транспортного средства 220; в моменты трогания с места транспортного средства 220; или в ходе работы транспортного средства 220 с определенной периодичностью.
[83] В неограничивающих вариантах осуществления настоящей технологии множество датчиков 230 дополнительно могут содержать другие датчики (не проиллюстрированы), такие как камеры, радары, датчики с блоком инерциальных измерений (IMU) и т.п.
[84] В некоторых неограничивающих вариантах осуществления настоящей технологии сеть 245 связи представляет собой Интернет. В альтернативных неограничивающих вариантах осуществления сеть 245 связи может реализовываться как любая подходящая локальная вычислительная сеть (LAN), глобальная вычислительная сеть (WAN), частная сеть связи и т.п. Следует четко понимать, что реализации для сети связи предназначаются только для целей иллюстрации. То, как реализуется линия связи (без отдельной ссылки с номером) между электронным устройством 210 и сетью 245 связи, должно зависеть, в числе прочего, от того, как реализуется электронное устройство 210. Просто в качестве примера, а не в качестве ограничения, в тех вариантах осуществления настоящей технологии, в которых электронное устройство 210 реализуется как устройство беспроводной связи, такое как смартфон или навигационное устройство, линия связи может реализовываться как линия беспроводной связи. Примеры линий беспроводной связи включают в себя, но не только, сетевую 3G-линию связи, сетевую 4G-линию связи и т.п. Сеть 245 связи также может использовать беспроводное соединение с сервером 235.
[85] В некоторых вариантах осуществления настоящей технологии сервер 235 реализуется как традиционный компьютер-сервер и может содержать часть или все компоненты компьютерной системы 100 по фиг. 1. В одном неограничивающем примере, сервер 235 реализуется как сервер Dell™ PowerEdge™ под управлением операционной системы Windows Server™ Microsoft™, но также может реализовываться в любых других подходящих аппаратных средствах, программном обеспечении и/или микропрограммном обеспечении либо в комбинации вышеозначенного. В проиллюстрированных неограничивающих вариантах осуществления настоящей технологии сервер 235 представляет собой один сервер. В альтернативных неограничивающих вариантах осуществления настоящей технологии (не проиллюстрированы), функциональность сервера 235 может распределяться и может реализовываться через несколько серверов.
[86] В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 электронного устройства 210 может поддерживать связь с сервером 235, чтобы принимать одно или более обновлений. Обновления могут представлять собой, но не только, обновления программного обеспечения, обновления карт, обновления маршрутов, обновления прогноза погоды и т.п. В некоторых вариантах осуществления настоящей технологии процессор 110 также может быть выполнен с возможностью передавать на сервер 235 определенные рабочие данные, такие как проезжаемые маршруты, данные трафика, данные рабочих характеристик и т.п. Некоторые или все данные, передаваемые между транспортным средством 220 и сервером 235, могут шифроваться и/или анонимизироваться.
[87] В описании, предусмотренном в настоящем документе, когда определенные процессы и этапы способа выполняются посредством процессора 110 электронного устройства 210, следует четко понимать, что такие процессы и этапы способа могут выполняться только посредством процессора 110, совместно (т.е. распределяться) между процессором 110 и сервером 235 либо только посредством сервера 235. Другими словами, когда настоящее описание упоминает процессор 110 или электронное устройство 210, выполняющее определенные процессы или этапы способа, это должно явно охватывать процессы или этапы, выполняемые посредством процессора 110, посредством сервера 235 либо объединенно выполняемые посредством процессора 110 и сервера 235.
[88] Со ссылкой на фиг. 3 проиллюстрирован процесс 300 (также называемый "процедурой 300 получения лидарных данных"), выполняемый посредством процессора 110, для приема данных 310 трехмерного облака точек, захваченных посредством одного из первого датчика 240 и второго датчика 260. Для простоты, нижеприведенное описание в отношении процедуры 300 получения лидарных данных должно предоставляться только для первого датчика 240, поскольку, согласно неограничивающим вариантам осуществления настоящей технологии выполнение процедуры 300 получения лидарных данных с использованием второго датчика 260 не отличается в достаточной степени.
[89] В некоторых неограничивающих вариантах осуществления настоящей технологии процесс 300 приема данных 310 трехмерного облака точек может выполняться непрерывно. В других вариантах осуществления настоящей технологии процесс 300 приема данных 310 трехмерного облака точек может реализовываться с предварительно определенными интервалами, к примеру, каждые 2 миллисекунды или с любым другим подходящим временным интервалом.
[90] Чтобы выполнять процедуру 300 получения лидарных данных, по мере того, как транспортное средство 220 движется по дороге 302, процессор 110 электронного устройства 210 выполнен с возможностью получать с помощью первого датчика 240 данные 305 датчиков, представляющие объекты в окружающей области 250 транспортного средства 220. Транспортное средство 220 движется по дороге 302, и процессор 110 выполнен с возможностью инструктировать первый датчик 240 получать данные относительно окружающей области 250 транспортного средства 220 в различных местоположениях на дороге 302.
[91] Процессор 110 принимает данные 305 датчиков, представляющие объекты в окружающей области 250 транспортного средства 220 в различных местоположениях на дороге 302, в форме трехмерного облака 312 точек.
[92] Вообще говоря, трехмерное облако 312 точек представляет собой набор лидарных точек в форме трехмерного облака точек, в котором данная лидарная точка 314 представляет собой точку в трехмерном пространстве, указывающую по меньшей мере участок поверхности данного объекта на или вокруг дороги 302. В некоторых неограничивающих вариантах осуществления настоящей технологии трехмерное облако 312 точек может организовываться слоями, причем точки в каждом слое также организуются эллиптическим способом, и считается, что начальные точки всех эллиптических слоев совместно используют аналогичную ориентацию.
1
2
N
[93] Данная лидарная точка 314 в трехмерном облаке 312 точек ассоциирована с лидарными параметрами 316 (проиллюстрированы на фиг. 3 как L, L и L). В качестве неограничивающего примера лидарные параметры 316 могут включать в себя: расстояние, интенсивность и угол, а также другие параметры, связанные с информацией, которая может получаться посредством второго датчика 240. Первый датчик 240 может получать трехмерное облако точек на каждом временном шаге t в то время, когда транспортное средство 220 движется, за счет этого получая набор данных 310 трехмерного облака точек.
[94] Предполагается, что в некоторых неограничивающих вариантах осуществления настоящей технологии транспортное средство 220 также может получать изображения с помощью камеры (не проиллюстрирована) множества датчиков 230 и пополнять трехмерное облако 312 точек данными изображений, полученными из камеры. Процесс для пополнения трехмерного облака 312 точек данными изображений, полученными посредством камеры, описывается в находящейся в совместном владении заявке на патент, озаглавленной "METHODS AND SYSTEMS FOR COMPUTER-BASED DETERMINING OF PRESENCE OF OBJECTS", с присвоенным номером заявки 16/369,865, поданной в Бюро по регистрации патентов и торговых марок США 29 марта 2019 года и имеющей адвокатскую выписку 102351-002; содержимое которой полностью содержится в данном документе по ссылке.
[95] Со ссылкой на фиг. 4, схематично проиллюстрировано трехмерное представление 420 данной сцены 400 окружающей области 250 транспортного средства 220, согласно неограничивающим вариантам осуществления настоящей технологии. В проиллюстрированных вариантах осуществления трехмерное представление 420 данной сцены 400 содержит два участка: первый участок 402 и второй участок 404. Первый участок 402 представляется посредством первого трехмерного облака 440 точек, сформированного посредством первого датчика 240. Второй участок 404 представляется посредством второго трехмерного облака 460 точек, сформированного посредством второго датчика 260. Как первое трехмерное облако 440 точек, так и второе трехмерное облако 460 точек представляют множество объектов, расположенных в сцене 400: например, данный объект 450 (ангар) и другие объекты 470.
[96] В неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью инструктировать первый датчик 240 и второй датчик 260 работать независимо.
[97] Таким образом, из фиг. 4 можно принимать во внимание, что первое трехмерное облако 440 точек и второе трехмерное облако 460 точек представляют, в трехмерном представлении 420, данной объект 450, а также другие объекты 470, "разрываемые" между первым участком 402 и вторым участком 404 трехмерного представления 420. Соответственно, чтобы использовать трехмерное представление 420, например, для обнаружения объектов в данной сцене 400 или компоновки их трехмерной карты, процессор 110 должен быть выполнен с возможностью объединять первое трехмерное облако 440 точек и второе трехмерное облако 460 точек, за счет этого формируя слитое трехмерное представление сцены 400 (например, трехмерное представление 1020, проиллюстрированное на фиг. 11).
[98] Тем не менее, объединение первого трехмерного облака 440 точек и второго трехмерного облака 460 точек может быть ассоциировано с определенными техническими проблемами, которые включают в себя, в числе прочего: (1) первое трехмерное облако 440 точек и второе трехмерное облако 460 точек имеют нарушенное совмещение, например, вследствие того, что первый датчик 240 и второй датчик 260 работают в различных системах координат, и (2) как первое трехмерное облако 440 точек, так и второе трехмерное облако 460 точек включают в себя множество перекрывающихся областей 480.
[99] Вообще говоря, множество перекрывающихся областей 480 включают в себя лидарные точки, которые присутствуют как в первом трехмерном облаке 440 точек, так и во втором трехмерном облаке 460 точек, тем не менее, представляют одни и те же области в сцене 400.
[100] Следовательно, неограничивающие варианты осуществления настоящей технологии разработаны в попытке преодолевать идентифицированные технические проблемы, чтобы обеспечивать то, что соответствующие лидарные точки множества перекрывающихся областей 480 в первом трехмерном облаке 440 точек и втором трехмерном облаке 460 точек могут объединяться с надлежащим уровнем точности. Следовательно, это обеспечивает возможность формирования такого слитого трехмерного представления 1020 сцены 400, обеспечивая более точное обнаружение объектов в ней и компонуя надежную трехмерную карту.
[101] Ниже описывается процесс объединения соответствующих лидарных точек множества перекрывающихся областей 480 в первом трехмерном облаке 440 точек и во втором трехмерном облаке точек со ссылкой на фиг. 5-11.
[102] В этом отношении, согласно неограничивающим вариантам осуществления настоящей технологии процессор 110 может быть выполнен с возможностью выполнять, для первого трехмерного облака 440 точек и второго трехмерного облака 460 точек, итеративный алгоритм ближайших точек (ICP).
[103] Вообще говоря, ICP-алгоритм выполнен с возможностью минимизировать разность между двумя трехмерными облаками точек. В ICP-алгоритме, одно трехмерное облако точек поддерживается фиксированным и называется "целевым" или "опорным" трехмерным облаком точек (в описанных вариантах осуществления настоящей технологии "первым трехмерным облаком 440 точек"), и другое трехмерное облако точек, называемое "исходным облаком" (в описанных вариантах осуществления настоящей технологии "вторым трехмерным облаком 460 точек"), преобразуется таким образом, что оно имеет наилучшее совпадение с целевым трехмерным облаком точек.
[104] Типичный ICP-алгоритм включает в себя следующие этапы, выполняемые итеративно:
- выбор лидарных точек из по меньшей мере одного из первого трехмерного облака 440 точек и второго трехмерного облака 460 точек для объединения (типично, из целевого трехмерного облака точек);
- согласование выбранных лидарных точек, т.е. определение соответствий между лидарными точками, выбранными из одного из первого трехмерного облака 440 точек и второго трехмерного облака 460 точек, выбранного выше, и другого из первого трехмерного облака 440 точек и второго трехмерного облака 460 точек;
- взвешивание определенных соответствующих пар лидарных точек;
- отклонение, на основе предварительно определенных критериев, определенных пар лидарных точек;
- назначение показателя ошибки; и
- минимизация показателя ошибки посредством применения одного из правил преобразования.
[105] В зависимости от подходов к выполнению каждого из вышеприведенных этапов, может быть предусмотрено множество разновидностей ICP-алгоритма, определенные из которых описываются в статье "Efficient Variants of the ICP Algorithm", написанной авторами Szymon Rusinkiewicz и Marc Levoy и опубликованной посредством Стэнфордского университета; содержимое которой полностью содержится в данном документе по ссылке.
[106] В неограничивающих вариантах осуществления настоящей технологии правила преобразования могут включать в себя правило перемещения и правило вращения. Каждое правило преобразования используется в применении соответствующего строгого преобразования второго трехмерного облака 460 точек относительно первого трехмерного облака 440 точек.
[107] Таким образом, можно сказать, что посредством итеративного применения правил преобразования для минимизации показатель ошибки между соответствующими лидарными точками во множестве перекрывающихся областей 480, процессор 110 инструктирует второму трехмерному облаку 460 точек проходить через множество промежуточных позиций в конечную позицию, в которой выбранные пары лидарных точек множества перекрывающихся областей 480 практически объединяются. Другими словами, процессор 110, посредством выполнения ICP-алгоритма, многократно выполняет этапы с применением правил преобразования до тех пор, пока показатель ошибки не достигает предварительно определенного порогового значения ошибки.
[108] Неограничивающие варианты осуществления настоящей технологии изложены в данном документе, чтобы предоставлять способы для определения весовых коэффициентов, для каждого из по меньшей мере одного из первого трехмерного облака 440 точек и второго трехмерного облака 460 точек для дополнительного использования посредством ICP-алгоритма на различных стадиях. Ниже описывается процесс определения весовых коэффициентов со ссылкой на фиг. 5-7.
Определение весовых коэффициентов для лидарных точек
[109] В неограничивающих вариантах осуществления настоящей технологии весовые коэффициенты назначаются на основе весового коэффициента. В неограничивающих вариантах осуществления настоящей технологии весовой коэффициент может указывать частоту (плотность) возникновения векторов нормали, имеющих угловую ориентацию, идентичную угловой ориентации вектора нормали, ассоциированного с данной лидарной точкой в распределении векторов нормали, ассоциированных с лидарными точками данного трехмерного облака точек.
[110] С этой целью, перед выполнением ICP-алгоритма, процессор 110 выполнен с возможностью формировать, как для первого трехмерного облака 440 точек, так и для второго трехмерного облака 460 точек, одно многомерное пространство и затем выполнен с возможностью предварительно вычислять ассоциированные векторы нормали. Таким образом, в неограничивающих вариантах осуществления настоящей технологии сначала процессор 110 выполнен с возможностью проецировать или, другими словами, преобразовывать как первое трехмерное облако 440 точек, так и второе трехмерное  облако 460 точек в одно многомерное пространство, за счет этого формируя их начальную позицию.
[111] Со ссылкой теперь на фиг. 5 схематично проиллюстрирована начальная позиция первого облака 440 трехмерных точек и второго облака 460 трехмерных точек, размещенных в многомерном пространстве 502 для выполнения ICP-алгоритма, согласно неограничивающим вариантам осуществления настоящей технологии.
[112] Хотя в вариантах осуществления по фиг. 5 многомерное пространство 502 проиллюстрировано как трехмерные декартовы координаты, следует четко понимать, что оно, например, может представлять собой четырехмерное пространство или может представлять пространство еще большей размерности в зависимости от числа параметров для описания лидарных точек первого трехмерного облака 440 точек и второго трехмерного облака 460 точек, без отступления от объема настоящей технологии.
[113] Таким образом, в многомерном пространстве 502, проиллюстрированном на фиг. 5, первое трехмерное облако 440 точек представляется посредством первого множества 540 лидарных точек, и второе трехмерное облако 460 точек представляется посредством второго множества 560 лидарных точек.
[114] Кроме того, из фиг. 5 можно принимать во внимание, что данные точки 504, 506, 508 и 510 принадлежат некоторым из множества перекрывающихся областей 480. Таким образом, с практической точки зрения, чтобы формировать слитое трехмерное представление 1020, процессор 110, выполняющий ICP-алгоритм, выполнен с возможностью, посредством применения одного из правила перемещения в пространстве (направление которого проиллюстрировано на фиг. 5, в 512) и правила вращения (направление которого проиллюстрировано на фиг. 5, в 514), минимизировать расстояния между данными точками 504 и 506 и данными точками 508 и 510, соответственно, в силу этого, объединяя их друг с другом.
[115] Дополнительно, в неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью предварительно вычислять, для каждой из первого множества 540 лидарных точек и второго множества 560 лидарных точек, соответствующий вектор нормали. Определенные подходы к вычислению нормалей к лидарным точкам на основе соседних лидарных точек в трехмерном облаке точек, которое может использоваться для выполнения процессора 110 с такой возможностью, описываются в статье "Fast and Accurate Computation of Surface Normals from Range Images", написанной авторами H. Badino, D. Huber, Y. Park и T. Kanade и опубликованной Институтом инженеров по электротехнике и радиоэлектронике; содержимое которой содержится в данном документе по ссылке.
[116] Таким образом, процессор 110 выполнен с возможностью предварительно вычислять первое множество 550 векторов нормали, соответствующее первому множеству 540 лидарных точек, и второе множество 570 векторов нормали, соответствующему второму множеству 560 лидарных точек. В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью формировать только одно из первого множества 550 векторов нормали и второго множества 570 векторов нормали.
[117] После проецирования лидарных точек двух трехмерных облаков точек на многомерное пространство 502 и предварительного вычисления соответствующих векторов нормали, процессор 110 теперь переходит к определению, для каждого из по меньшей мере одного из первого множества 540 лидарных точек и второго множества лидарных точек, ассоциированных значений весового коэффициента. Следует четко понимать, что, в контексте настоящей технологии назначение значения весового коэффициента данной лидарной точке также должно означать назначение идентичного значения весового коэффициента вектору нормали, ассоциированному с данной лидарной точкой.
[118] В неограничивающих вариантах осуществления настоящей технологии, как упомянуто выше, значение весового коэффициента, для данного вектора нормали в соответствующем одном из первого множества 550 векторов нормали и второго множества 570 векторов нормали, определяется в качестве значения, обратно пропорционального плотности возникновения других векторов нормали, имеющих идентичную угловую позицию в распределении соответствующего одного из первого множества 550 векторов нормали и второго множества 570 векторов нормали. Другими словами, значение весового коэффициента, назначенного данному вектору нормали, указывает то, насколько "популярным", с точки зрения своей угловой ориентации, является данный вектор в данном множестве векторов нормали. Чем "более редким" является вектор нормали, тем большее значение весового коэффициента назначается ему и ассоциированной лидарной точке, и наоборот. Аналитически, весовой коэффициент может формулироваться следующим образом:
[119]  , уравнение (1)
[120] где  является данным значением весового коэффициента ϕ для i-ой лидарной точки;
i
n является вектором нормали в i-ой лидарной точке; и
i
является плотностью распределения соседних лидарных точек, в соответствующем множестве лидарных точек, ассоциированных с векторами нормали, имеющими идентичную угловую позицию в качестве n.
[121] Согласно неограничивающим вариантам осуществления настоящей технологии, чтобы формировать распределение векторов нормали из данного множества векторов нормали, процессор 110 выполнен с возможностью представлять каждый из данного множества векторов нормали на сфере предварительно определенных размеров. Такое сферическое представление обеспечивает возможность лучшей визуализации векторов нормали в качестве помощи в том, чтобы разрешать затемнений, которые могут присутствовать первоначально, что, в конечном счете, обеспечивает возможность эффективной кластеризации векторов нормали на основе их угловой ориентации.
[122] Со ссылкой теперь на фиг. 6 проиллюстрировано сферическое представление 600 первого множества 540 лидарных точек и первого множества 550 векторов нормали, ассоциированного с ним, для определения значений весового коэффициента для лидарных точек, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[123] Из фиг. 6 можно принимать во внимание, что каждая из первого подмножества 542 и второго подмножества 544 первого множества 540 лидарных точек различимо представляется, посредством своей плотности, на сфере 602, поскольку они ассоциированы с поверхностями данного объекта 450, на которых соответствующие векторы нормали имеют различные угловые позиции.
[124] Таким образом, процессор 110 может быть выполнен с возможностью определять данное значение весового коэффициента на основе числа векторов нормали, содержащихся в предварительно определенной окрестности 610. Размер предварительно определенной окрестности указывает параметр близости между векторами нормали и может зависеть, в числе прочего, от вычислительной мощности процессора 110.
[125] В проиллюстрированных вариантах осуществления значение весового коэффициента ϕ для данной лидарной точки 604, ассоциированной с данным вектором 606 нормали, определяется на основе данного вектора 612 нормали и другого вектора 614 нормали, расположенного в предварительно определенной окрестности 610 в отношении данного вектора 606 нормали. В связи с этим, данной лидарной точке 604 может назначаться значение весового коэффициента в "1/3".
[126] Из фиг. 6 дополнительно можно принять во внимание, что каждая лидарная точка второго подмножества 544 должна иметь более высокие значения весового коэффициента ϕ, чем значения из первого подмножества 542, поскольку каждый из первого множества 550 векторов нормали, ассоциированных с соответствующей одной из второго подмножества 544, распределяется с меньшим значением плотности и в силу этого является "более редким", в сферическом представлении 600, чем любой из первого множества 550 векторов нормали, ассоциированного с соответствующим одним из первого подмножества 542.
[127] Поскольку использование сферического представления 600 для определения значений весового коэффициента  может быть вычислительно затратным для выполнения процессором 110, в некоторых неограничивающих вариантах осуществления настоящей технологии вместо сферы 602, процессор 110 может использовать ее аппроксимацию для рендеринга кластеризованного представления для данного множества векторов нормали.
[128] В качестве аппроксимации может использоваться многогранник, вершины которого расположены на сфере (например, сфера 602), согласно неограничивающим вариантам осуществления настоящей технологии.
[129] Со ссылкой на фиг. 7 схематично проиллюстрировано двенадцатигранное представление 700 первого множества 540 лидарных точек и первого множества 550 векторов нормали, ассоциированного с ним, на основе правильного двенадцатигранника 702, для определения значений весового коэффициента для лидарных точек, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
i
[130] В проиллюстрированных вариантах осуществления каждая из первого множества 540 лидарных точек распределяется в соответствующую грань правильного двенадцатигранника 702 на основе своей близости к одной из вершин V. В связи с этим, лидарные точки первого подмножества 542 распределены между данными гранями 704 и 706. Дополнительно, каждая из второго подмножества 544 распределена в соответствующую из граней 708, 710 и 712.
[131] Следовательно, на основе двенадцатигранного представления 700, процессор 110 может быть выполнен с возможностью определять данное значение весового коэффициента, для данной одной из первого множества 540 лидарных точек, на основе числа соседних точек в соответствующей грани правильного двенадцатигранника 702. В частности, данное значение весового коэффициента, для данной лидарной точки, может определяться в качестве значения, обратно пропорционального числу соседних точек в соответствующих гранях. Например, каждой одной из первого множества 540 лидарных точек, попадающих в данную грань 704, должно назначаться значение весового коэффициента  в "1/3". Соответственно, каждой одной из первого множества 540 лидарных точек, попадающих в данную грань 706, должно назначаться значение весового коэффициента  в "1/5". В завершение, каждой одной из первого множества лидарных точек, попадающих в одну из данных граней 708, 710 и 712 (принадлежащих второму подмножеству 544), должно назначаться значение весового коэффициента  в "1".
[132] В дополнительных неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью аппроксимировать распределение первого множества 540 лидарных точек (и первого множества 550 векторов нормали, ассоциированного с ним) с использованием одного из стандартных распределений, например, нормального распределения с предварительно определенными параметрами. В этом отношении, процессор 110 может быть выполнен с возможностью применять байесовский вывод, чтобы прогнозировать значение  для данной лидарной точки. Следовательно, на основе прогнозированного значения , процессор 110 может быть дополнительно выполнен с возможностью определять ассоциированное значение весового коэффициента . Другими словами, в соответствии с некоторыми неограничивающими вариантами осуществления настоящей технологии нормальное распределение может использоваться для аппроксимации фактического распределения 540 лидарных точек (и первого множества 550 векторов нормали, ассоциированного с ним). Другими словами, аппроксимация пытается определять плотность первого множества 540 лидарных точек.
[133] Процедура определения значений весового коэффициента , описанная выше со ссылкой на фиг. 6 и 7, также применяется с необходимыми изменениями ко второму множеству 560 лидарных точек и второму множеству 570 векторов нормали, ассоциированному с ним, второго (исходного) трехмерного облака точек 460.
[134] С точки зрения выполнения ICP-алгоритма в некоторых неограничивающих вариантах осуществления настоящей технологии такие определенные соответствующие значения весового коэффициента  могут использоваться на стадии взвешивания соответствующих пар лидарных точек для дополнительного вычисления соответствующего значения показателя ошибки (сценарий 1).
[135] В других неограничивающих вариантах осуществления настоящей технологии такие определенные соответствующие значения весового коэффициента  могут использоваться на стадии выбора лидарных точек, по меньшей мере, из одного из первого трехмерного облака 440 точек и второго трехмерного облака 460 точек (сценарий 2).
[136] Таким образом, нижеприведенное описание в отношении каждой из вышеприведенных стадий выполнения ICP-алгоритма должно предоставляться в свете двух сценариев.
Выбор лидарных точек
[137] Как упомянуто выше, первая стадия выполнения ICP-алгоритма выбирает, посредством процессора 110, лидарные точки, по меньшей мере, из одной из первого множества 540 лидарных точек и второго множества 560 лидарных точек для дополнительного использования.
Сценарий 1
[138] В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью использовать все из первого множества 540 лидарных точек и второго множества 560 лидарных точек. В других неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью избирательно выполнять выборку или избирательно взвешивать лидарные точки.
[139] В других неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью выбирать лидарные точки с использованием алгоритма равномерной выборки. Соответственно, возвращаясь к фиг. 5, в этих вариантах осуществления, из первого множества 540 лидарных точек, например, процессор 110 может быть выполнен с возможностью выполнять выборку больших лидарных точек из первого подмножества 542, чем из второго подмножества 544, вследствие существенно отличающихся чисел лидарных точек, содержащихся в нем.
[140] В еще других неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью выполнять случайную выборку лидарных точек, по меньшей мере, из одного из первого множества 540 лидарных точек и второго множества 560 лидарных точек на каждой итерации выполнения ICP-алгоритма.
[141] В дополнительных неограничивающих вариантах осуществления настоящей технологии выбор лидарных точек может содержать применение, посредством процессора 110, алгоритма распределения векторов нормали. В соответствии с неограничивающими вариантами осуществления настоящей технологии алгоритм распределения векторов нормали выполнен с возможностью выполнять выборку лидарных точек на основе ориентации ассоциированных векторов нормали. Таким образом, посредством применения алгоритма распределения векторов нормали, процессор 110 выполнен с возможностью выполнять выборку тех лидарных точек, ассоциированные векторы нормали которых имеют идентичные угловые позиции в многомерном пространстве 502, в предварительно определенном интервале неопределенности (например, ±5º).
Сценарий 2
[142] В конкретных неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью выполнять выборку каждой из первого множества 540 лидарных точек и второго множества 560 лидарных точек на основе назначенных соответствующих значений весового коэффициента , определенных так, как описано выше со ссылкой на фиг. 6 и 7. Продолжая примеры, приведенные выше в отношении первого множества 540 лидарных точек, после назначения соответствующих значений весового коэффициента , процессор 110 в силу этого выполнен с возможностью выбирать больше лидарных точек из второго подмножества 544, чем из первого подмножества 542.
Согласование лидарных точек
[143] После выборки точек, по меньшей мере, из одного из первого множества 540 лидарных точек и второго множества лидарных точек, процессор 110, выполняющий ICP-алгоритм, дополнительно выполнен с возможностью сопоставлять каждую такую выбранную лидарную точку из второго множества 560 лидарных точек с соответствующей ближайшей одной из первого множества 540 лидарных точек. За счет этого процессор 110 выполнен с возможностью определять пары лидарных точек (также называются в данном документе "соответствиями") из двух множеств лидарных точек. Стадия сопоставления лидарных точек, чтобы формировать пары лидарных точек, в равной мере применяется как к сценарию 1, так и к сценарию 2.
i
i
[144] В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью определять пары лидарных точек на основе кратчайшего расстояния между ними. Как проиллюстрировано на фиг. 8, для данной лидарной точки 806 из второго множества 560 лидарных точек, соответствующая лидарная точка 804 из первого множества 540 лидарных точек определена на основе кратчайшего расстояния между ними в многомерном пространстве 502. Таким образом, данная лидарная точка 806 второго множества 560 лидарных точек и соответствующая одна из первого множества 540 лидарных точек образуют данную пару лидарных точек 802 {p, q}.
i
i
[145] В некоторых неограничивающих вариантах осуществления настоящей технологии данная пара лидарных точек 802 {p, q} могут определяться не только на основе кратчайшего расстояния между данными лидарными точками 804 и 806, но также и на основе совместимости их векторов нормали. В контексте настоящей технологии термин "совместимость векторов нормали" двух данных лидарных точек 804 и 806 должен означать то, что вектор нормали, ассоциированный с данной лидарной точкой 804, имеет угловую позицию, в многомерном пространстве 502, с предварительно определенным угловым пороговым значением (например, 45°).
[146] Соответственно, при определении соответствий в первом множестве 540 лидарных точек для каждой из выбранных одних из второго множества 560 лидарных точек, процессор 110 выполнен с возможностью формировать множество пар лидарных точек 810.
i
i
[147] В других неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью определять соответствия на основе проекционного способа. Ссылаясь на фиг. 9, для данной лидарной точки 906 из второго множества 560 лидарных точек, соответствующая лидарная точка 904 из первого множества 540 лидарных точек определена в качестве проецирования данной лидарной точки на первое множество 540 лидарных точек с точки зрения мнимого наблюдателя 950, расположенного во втором множестве 560 лидарных точек, за счет чего определяется данная пара 902 лидарных точек {p, q}.
[148] Другие подходы к определению соответствий между такими выбранными лидарными точками из второго множества 560 лидарных точек и первого множества 540 лидарных точек могут становиться очевидными для специалистов в данной области техники и, по сути, могут использоваться без отступления от объема настоящей технологии.
Взвешивание соответствий
[149] В неограничивающих вариантах осуществления настоящей технологии после определения соответствий, процессор 110 может быть дополнительно выполнен с возможностью назначать соответствующие значения весового коэффициента каждому из них. Вообще говоря, данный весовой коэффициент, назначенный данной паре лидарных точек, указывает ее значимость при вычислении показателя ошибки.
[150] В неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью определять минимальные и максимальные значения для данного весового коэффициента, за счет этого определяя ассоциированный диапазон для этого. В этом отношении, если данное значение данного весового коэффициента находится за пределами его ассоциированного диапазона, процессор 110 может быть выполнен с возможностью регулировать данное значение до ближайшего одного из максимальных или минимальных значений в ассоциированном диапазоне. Отрегулированное данное значение в силу этого используется для взвешивания соответствий.
Сценарий 1
i
i
i
i
[151] В неограничивающих вариантах осуществления настоящей технологии как упомянуто выше, процессор 110 выполнен с возможностью применять весовой коэффициент , чтобы взвешивать каждую из таких определенных пар лидарных точек {p, q}, соответствующие значения которых определяются так, как изложено выше со ссылкой на фиг. 6 и 7. В этом отношении, процессор 110 выполнен с возможностью назначать, каждой из таких определенных пар лидарных точек {p, q}, значение весового коэффициента , ассоциированного с соответствующей одной из второго множества 560 лидарных точек.
Сценарий 2
i
i
i
i
[152] В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью использовать другие подходы к определению весового коэффициента, включающие в себя назначение весовых коэффициентов на основе расстояния между каждой из пар лидарных точек {p, q} таким образом, что, чем больше расстояние, тем ниже весовой коэффициент; назначение весовых коэффициентов на основе совместимости векторов нормали в каждой из пар лидарных точек {p, q}; и т.п.
[153] В других неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью вообще опускать эту стадия выполнения ICP-алгоритма.
Отклонение резко отклоняющихся значений
i
i
[154] В неограничивающих вариантах осуществления настоящей технологии процессор 110, выполняющий ICP-алгоритм, может быть дополнительно выполнен с возможностью отклонять определенные несогласованные пары лидарных точек {p, q}, так называемые резко отклоняющиеся значения, на основе предварительно определенных критериев. Стадия отклонения резко отклоняющихся значений в равной мере применяется как к сценарию 1, так и к сценарию 2.
i
i
[155] В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью отклонять определенные из пар лидарных точек {p, q} на основе порогового значения расстояния. Например, возвращаясь к фиг. 8, процессор 110 может определять то, что лидарные точки в данной паре 808 лидарных точек расположены с разнесением на большее расстояние, чем пороговое значение расстояния, и в силу этого отклонять ее.
i
i
[156] В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью отклонять определенный процент от худших пар лидарных точек {p, q} на основе соответствующих расстояний между ними.
i
i
i
i
[157] В других неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью отклонять пары лидарных точек {p, q}, включающие в себя лидарные точки, соответствующие границам представленных поверхностей, поскольку такие лидарные точки могут быть ошибочно ассоциированы с парами лидарных точек {p, q}. Например, возвращаясь к фиг. 8, процессор 110 может отклонять соответствия 812 и 814, поскольку лидарные точки, содержащиеся в них, представляют границы поверхности данного объекта 450, и, по сути, они имеют тенденцию формировать ненадлежащие пары лидарных точек.
i
i
[158] На этой стадии выполнения ICP-алгоритма, процессор 110 выполнен с возможностью завершать процесс выбора пар лидарных точек {p, q}, к которому процессор 110 дополнительно выполнен с возможностью применять одно из правил преобразования, за счет этого минимизируя назначенный показатель ошибки, что поясняется непосредственно ниже со ссылкой на фиг. 10.
Назначение показателя ошибки и применение преобразования
Сценарий 1
[159] Со ссылкой теперь на фиг. 10, схематично проиллюстрирован процесс для назначения показателя ошибки, который следует минимизировать для второго множества лидарных точек, которое должно объединяться с первым множеством 540 лидарных точек в многомерном пространстве 502, в соответствии с неограничивающими вариантами осуществления настоящей технологии.
i
i
i
i
"
[160] В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 может быть выполнен с возможностью применять показатель ошибки "точка-точка". В этом отношении, процессор 110 выполнен с возможностью, посредством применения одного из правил преобразования, минимизировать сумму квадратов расстояний между лидарными точками в соответствующих парах лидарных точек {p, q}. Дополнительно, процессор 110 может быть дополнительно выполнен с возможностью рассматривать значения весового коэффициента , предварительно определенные и назначенные каждой из пар лидарных точек {p, q}. Таким образом, функция E1 показателей ошибки "точка-точкаможет аналитически формулироваться следующим образом:
[161]  (уравнение 2)
i
i
где p и q являются значениями координат соответствующих лидарных точек, формирующих данную пару лидарных точек;
i
является соответствующим значением весового коэффициента , назначенного данной паре лидарных точек, заданной посредством уравнения 1; и
T является строгим преобразованием, соответствующим одному из правил преобразования, используемых при данной итерации выполнения ICP-алгоритма.
[162] Например, процессор 110, на одной из вышеуказанных стадий выполнения ICP-алгоритма, может выбирать данную пару 1010 лидарных точек, сформированную из данной одной 1002 из первого множества 540 лидарных точек и другой данной одной 1004 из второго множества 560 лидарных точек. Соответственно, посредством применения показателя ошибки "точка-точка", процессор 110 выполнен с возможностью минимизировать расстояние 1006 между лидарными точками 1002 и 1004 в данной паре 1010 лидарных точек.
"
[163] В других неограничивающих вариантах осуществления настоящей технологии, вместо показателя ошибки "точка-точка", процессор 110 может быть выполнен с возможностью применять показатель ошибки "точка-плоскость". В этих вариантах осуществления, процессор 110 выполнен с возможностью, посредством применения одного из правил преобразования, минимизировать сумму квадратов расстояний между каждой из второго множества 560 лидарных точек и данной плоскостью, содержащей соответствующую одну, в соответствующей паре лидарных точек, из первого множества 540 лидарных точек. В этих вариантах осуществления, данная плоскость является перпендикулярной ассоциированному одному из первого множества 550 векторов нормали. С учетом этого функция E2 показателей ошибки "точка-плоскостьможет формулироваться следующим образом:
[164]  (уравнение 3)
где  является данным вектором расстояния, соединяющим данную одну из второго множества 560 лидарных точек и соответствующую одну, в данной паре лидарных точек, из первого множества 540 лидарных точек, в многомерном пространстве 502; и
является скалярным произведением данного вектора расстояния с вектором нормали в соответствующей одной из первого множества 540 лидарных точек.
[165] Таким образом, в проиллюстрированных вариантах осуществления по фиг. 10, процессор 110, посредством применения показателя ошибки "точка-плоскость", выполнен с возможностью минимизировать расстояние 1008 между лидарными точками 1002 и 1004 в данной паре 1010 лидарных точек.
[166] Соответственно, в неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью итеративно выполнять вышеуказанные стадии ICP-алгоритма с применением одного из правил преобразования, за счет этого минимизируя один из показателя ошибки "точка-точка" и показателя ошибки "точка-плоскость" до соответствующего предварительно определенного порогового значения ошибки. За счет этого, процессор 110 регулирует, в многомерном пространстве 502, начальную позицию второго множества 560 лидарных точек относительно первого множества 540 лидарных точек, за счет этого объединяя, по меньшей мере, некоторые из второго множества 560 лидарных точек, по меньшей мере, с некоторыми из первого множества 540 лидарных точек.
Сценарий 2
[167] В неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью составлять соответствующие функции показателей ошибки способом, аналогичным способу, описанному выше согласно сценарию 1 (т.е. на основе уравнений 2 и 3, соответственно); тем не менее, вместо весового коэффициента , процессор 110 может быть выполнен с возможностью рассматривать другой соответствующий весовой коэффициент или вообще опускать весовой коэффициент. Аналогично сценарию 1, процессор 110 также выполнен с возможностью определять, для каждой составляемой функции показателей ошибки, соответствующее предварительно определенное пороговое значение ошибки.
[168] В неограничивающих вариантах осуществления настоящей технологии, как в сценарии 1, так и в сценарии 2, когда соответствующее предварительно определенное пороговое значение ошибки достигается, процессор 110 прекращает выполнение ICP-алгоритма с выводом конечной позиции второго множества 560 лидарных точек. В этом отношении, конечная позиция второго множества 560 лидарных точек представляет собой позицию второго множества 560 лидарных точек при последней итерации ICP-алгоритма, в которой достигнуто предварительно определенное пороговое значение ошибки.
[169] Таким образом, при итеративном выполнении ICP-алгоритма согласно стадиям, описанным выше относительно фиг. 5-10, и минимизации одного из показателей ошибки до предварительно определенного порогового значения ошибки, процессор 110 выполнен с возможностью формировать слитое трехмерное представление 1020 данной сцены 400, проиллюстрированной на фиг. 11.
[170] Из фиг. 11 можно принимать во внимание, что в слитом трехмерном представлении 1020 данной сцены 400, как первый участок 402, так и его второй участок 404 совмещаются друг с другом, и соответствующие множества перекрывающихся областей 480 практически объединяются друг с другом. Соответственно, данный объект 450 теперь имеет более интегральное визуальное представление, чем визуальное представление, предоставленное посредством трехмерного представления 420, проиллюстрированного на фиг. 4.
[171] Следует четко понимать, что согласно неограничивающим вариантам осуществления настоящей технологии определенные стадии ICP-алгоритма, как описано в отношении сценария 1, могут использоваться для реализации сценария 2, и наоборот.
[172] С учетом архитектуры и примеров, предоставленных выше, можно осуществлять способ для объединения исходного множества лидарных точек (например, второго множества 560 лидарных точек) с целевыми лидарными точками множества (например, первого множества 540 лидарных точек) в одном многомерном пространстве (например, многомерном пространстве 502), согласно неограничивающим вариантам осуществления настоящей технологии. Первое множество 540 лидарных точек и второе множество 560 лидарных точек представляют соответствующие участки трехмерного представления 420 данной сцены 400. Способ 1200 осуществляется посредством процессора 110. Процессор 110, например, может представлять собой часть электронного устройства 210. Процессор 110 выполнен с возможностью выполнять ICP-алгоритм.
[173] В неограничивающем примере, процессор 110 может быть выполнен с возможностью предварительно вычислять, в многомерном пространстве 502, для каждой из первого множества 540 лидарных точек и второго множества 560 лидарных точек, соответственно, первое множество 550 векторов нормали и второе множество 570 векторов нормали, как описано выше относительно фиг. 5.
Этап 1202 - согласование, посредством электронного устройства, по меньшей мере некоторых из множества первых точек данных с по меньшей мере некоторыми из множества вторых точек данных
[174] На этапе 1202, процессор 110 сначала выполнен с возможностью сопоставлять каждую из второго множества 560 лидарных точек с соответствующей одной из первого множества 540 лидарных точек, за счет этого формируя множество пар лидарных точек, как описано выше со ссылкой на фиг. 8 и 9.
[175] В некоторых неограничивающих вариантах осуществления настоящей технологии до формирования множества пар лидарных точек, процессор 110 выполнен с возможностью выбирать, по меньшей мере, некоторые из первого множества 540 лидарных точек и, по меньшей мере, некоторые из второго множества 560 лидарных точек.
[176] В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью использовать для согласования первое множество 540 лидарных точек и второе множество лидарных точек полностью, т.е. без выбора лидарных точек из них.
[177] В других неограничивающих вариантах осуществления настоящей технологии для выбора лидарных точек, процессор 110 выполнен с возможностью применять, по меньшей мере, к одной из первого множества 540 лидарных точек и второго множества 560 лидарных точек, один из алгоритма равномерной выборки, алгоритма случайной выборки и алгоритма распределения векторов нормали, как описано выше в разделе "Выбор лидарных точек".
[178] Способ 1200 дополнительно переходит к этапу 1204.
Этап 1204 - определение, посредством электронного устройства, конкретного для пары значения ошибки для данной одной из множества пар
[179] На этапе 1204, процессор 110 выполнен с возможностью определять, для данной одной из множества пар лидарных точек, причем конкретное для пары значение ошибки указывает показатель расстояния между соответствующими лидарными точками в данной паре лидарных точек в многомерном пространстве 502.
[180] Согласно некоторым неограничивающим вариантам осуществления настоящей технологии данное конкретное для пары значение ошибки, ассоциированное с данной парой лидарных точек, основано на расстоянии наибольшего сближения между соответствующими одними из второго множества 560 лидарных точек и первого множества 540 лидарных точек, формирующими данную пару лидарных точек.
[181] В других неограничивающих вариантах осуществления настоящей технологии данное конкретное для пары значение ошибки основано на расстоянии между соответствующей одной из второго множества 560 лидарных точек и плоскостью, заданной посредством вектора нормали в соответствующей одной из первого множества 540 лидарных точек в данной паре лидарных точек.
[182] В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью, на основе данного конкретного для пары значения ошибки, отклонять резко отклоняющиеся значения отклонения, как описано в разделе "Отклонение резко отклоняющихся значений".
[183] После определения соответствующих конкретных для пары значений ошибки, способ 1200 дополнительно переходит к этапу 1206.
Этап 1206 - определение, посредством электронного устройства, весового коэффициента для данной одной из множества пар на основе вектора нормали, ассоциированного с данной второй точкой данных в данной одной из множества пар
[184] На этапе 1206, процессор 110 выполнен с возможностью, для каждой из множества лидарных пар, определять и назначать ей соответствующее значение предварительно определенного весового коэффициента.
[185] В некоторых неограничивающих вариантах осуществления настоящей технологии предварительно определенный весовой коэффициент представляет собой весовой коэффициент , заданный выше посредством уравнения 1. В частности, данное значение весового коэффициента , определенное для данной лидарной пары, указывает то, насколько популярным является вектор нормали, в соответствующей одной из второго множества 560 лидарных точек в данной паре лидарных точек, в распределении второго множества 570 векторов нормали. Другими словами, данное значение весового коэффициента  является обратно пропорциональным плотности возникновения векторов нормали во втором множестве 570 векторов нормали, имеющем угловую ориентацию, идентичную угловой ориентации вектора нормали, ассоциированного с соответствующей одной из второго множества 560 лидарных точек в данной паре лидарных точек.
[186] Согласно некоторым неограничивающим вариантам осуществления настоящей технологии процессор 110 выполнен с возможностью определять данное значение весового коэффициента  с использованием сферического представления второго множества 560 лидарных точек и, ассоциированного с ним, второго множества 570 векторов нормали, как описано выше со ссылкой на фиг. 6.
[187] В других неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью определять данное значение весового коэффициента  с использованием многогранной аппроксимации для сферического представления по фиг. 6, как описано выше со ссылкой на фиг. 7.
[188] В еще других неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью использовать нормальное распределение с предварительно определенными параметрами, чтобы аппроксимировать фактическое распределение второго множества 560 лидарных точек (и второго множества 570 векторов нормали, ассоциированного с ним). Другими словами, аппроксимация пытается определять параметр  для соответствующей одной из второго множества 560 лидарных точек в данной паре лидарных точек и, на основе этого, определять данное значение весового коэффициента .
[189] В неограничивающих вариантах осуществления настоящей технологии процессор 110 выполнен с возможностью определять максимальное и минимальное значение для весового коэффициента , за счет этого формируя ассоциированный диапазон. Дополнительно процессор 110 выполнен с возможностью регулировать каждое значение весового коэффициента  за пределами ассоциированного диапазона до ближайшего одного из максимального значения и минимального значения. Таким образом, процессор 110 выполнен с возможностью определять отрегулированные значения весового коэффициента .
[190] Способ 1200 дополнительно переходит к этапу 1208.
Этап 1208 - определение, посредством электронного устройства, глобального значения ошибки для второго набора данных в качестве суммы конкретных для пары значений ошибки, взвешенных посредством соответствующих весовых коэффициентов
[191] На этапе 1208 процессор 110 выполнен с возможностью весовой коэффициент, на основе весового коэффициента , каждое из определенных конкретных для пары значений ошибки и вычислять их сумму, за счет этого определяя значение глобального значения ошибки. Аналитически, глобальное значение ошибки представляет собой значение соответствующего одного из показателя ошибки "точка-точка" и показателя ошибки "точка-плоскость", описанных выше в разделе "Назначение показателя ошибки и применение преобразования" и заданных посредством уравнения (2) и (3), соответственно. С этой целью, процессор 110 выполнен с возможностью минимизировать глобальное значение ошибки посредством применения одного из правил преобразования на основе перемещения в пространстве и вращения, соответствующих надлежащим строгим преобразованиям второго множества 560 лидарных точек относительно первого множества 540 лидарных точек в многомерном пространстве 502. Таким образом, процессор 110 выполнен с возможностью смещать, посредством применения одного из правил преобразования, второе множество 560 лидарных точек относительно первого множества 540 лидарных точек в многомерном пространстве 502.
[192] В неограничивающих вариантах осуществления настоящей технологии при итеративном применении вышеуказанных этапов к лидарным точкам из первого множества 540 лидарных точек и второго множества лидарных точек, чтобы минимизировать глобальное значение ошибки, процессор 110 инструктирует второму множеству 560 лидарных точек проходить через множество промежуточных позиций до достижения предварительно определенного условия прекращения, соответствующего конечной позиции второго множества 560 лидарных точек относительно первого множества 540 лидарных точек в многомерном пространстве 502.
[193] В неограничивающих вариантах осуществления настоящей технологии предварительно определенное условие прекращения достигается, когда глобальное значение ошибки равно или меньше предварительно определенного порогового значения ошибки, ассоциированного с соответствующим показателем ошибки.
[194] Таким образом, в неограничивающих вариантах осуществления настоящей технологии конечная позиция второго множества 560 лидарных точек представляет собой позицию второго множества 560 лидарных точек в многомерном пространстве 502, после чего это практически объединяется с первым множеством 540 лидарных точек.
[195] За счет этого процессор 110 выполнен с возможностью формировать слитое трехмерное представление 1020 данной сцены 400. Соответственно, в слитом трехмерном представлении 1020 данной сцены 400, объекты лучше совмещаются относительно друг друга (например, объекты других объектов 470) и имеют более визуально интегральное представление (в качестве данного объекта 450) по сравнению с трехмерным представлением 420.
[196] Способ 1200 на этом завершается.
[197] Модификации и улучшения вышеописанных реализаций настоящей технологии могут становиться очевидными для специалистов в данной области техники. Вышеприведенное описание должно быть примерным, а не ограничивающим. В силу этого объем настоящей технологии ограничивается исключительно посредством объема прилагаемой формулы изобретения.