Область техники, к которой относится изобретение
[1] Настоящая технология относится к реализованной посредством компьютера обработке данных, а более конкретно, к способам и системам для обработки данных лидарных (LIDAR) датчиков.
Уровень техники
[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-алгоритма. Другими словами, их способность минимизировать показатель ошибки может быть ограничена, что может приводить, например, к искажению объектов во всестороннем представлении данной сцены.
[11] Разработчики настоящей технологии создают модифицированную ICP-инфраструктуру, которая должна реализовываться посредством электронного устройства для слияния облаков трехмерных точек, предоставленных посредством лидарных систем. Вообще говоря, модифицированная ICP-инфраструктура, заданная разработчиками настоящей технологии, может реализовываться посредством электронного устройства в качестве одной или более реализованных посредством компьютера процедур, которые вместе приводят к выполнению модифицированного ICP-алгоритма посредством электронного устройства. Эта модифицированная ICP-инфраструктура включает в себя часть или все из следующего: (i) этап инициализации, (ii) этап фильтрации, (iii) этап согласования, (iv) этап оценки преобразования и (v) этап успешного достижения критериев завершения.
[12] В ходе этапа инициализации модифицированной ICP-инфраструктуры, электронное устройство может быть выполнено с возможностью начинать выполнение модифицированного ICP-алгоритма посредством "инициализации" преобразования между парой захваченных облаков трехмерных точек. Другими словами, в ходе этапа инициализации, электронное устройство может быть выполнено с возможностью, в некотором смысле, строить "исходное предположение" касательно правила преобразования для слияния пары захваченных облаков трехмерных точек. В некоторых случаях, в ходе этапа инициализации, электронное устройство может быть выполнено с возможностью отображать оба захваченных облака трехмерных точек в общем трехмерном пространстве.
[13] В ходе этапа фильтрации модифицированной ICP-инфраструктуры, электронное устройство может быть выполнено с возможностью (i) анализировать каждую пару захваченных облаков трехмерных точек и (ii) отфильтровывать по меньшей мере некоторые точки данных из каждой пары захваченных облаков трехмерных точек. Следует отметить, что фильтрация точек данных данного зарегистрированного облака трехмерных точек может быть полезной для практических целей, поскольку скорость передачи данных современных лидарных систем может снижать производительность вычислений электронного устройства.
[14] Следует отметить, что типичная лидарная система может захватывать, в ходе одного сканирования, между 30000 и 150000 точек данных. Тем не менее, посредством выполнения этапа фильтрации, электронное устройство может быть выполнено с возможностью отфильтровывать большое число этих точек данных таким образом, чтобы определять "фильтрованное" облако трехмерных точек, которое должно использоваться в ходе следующего этапа модифицированной ICP-инфраструктуры. Например, данное фильтрованное облако трехмерных точек может включать в себя между 5% и 15% точек данных из соответствующего захваченного облака трехмерных точек.
[15] Следует отметить, что электронное устройство может быть выполнено с возможностью определять соответствующий "нормальный вектор" или просто "нормаль" для соответствующих точек данных захваченного облака трехмерных точек. Тем не менее, некоторые из этих нормалей могут неправильно вычисляться (по нескольким причинам, включающим в себя, например, неопределенность в геометрической информации позиционирования по меньшей мере некоторых точек данных захваченного облака трехмерных точек). Как результат, фильтрованное облако трехмерных точек включает в себя меньшее число точек данных, чем соответствующее зарегистрированное облако трехмерных точек, поскольку по меньшей мере некоторые точки данных в соответствующем захваченном облаке трехмерных точек могут иметь нормали с высокой неопределенностью, которые должны отфильтровываться. Предпочтительно отфильтровывать такие точки данных, поскольку неправильно вычисленные нормали могут оказывать отрицательное влияние на точность этапа оценки преобразования.
[16] Разработчики настоящей технологии создают способы и устройства для улучшения этапа фильтрации. По меньшей мере в некоторых вариантах осуществления настоящей технологии, электронное устройство может быть выполнено с возможностью выполнять этап фильтрации на основе нормальной оценки и нормальной ковариации точек данных в захваченном облаке трехмерных точек.
[17] Типично, нормаль для данной точки данных захваченного облака трехмерных точек может оцениваться посредством электронного устройства с помощью способа разложения по сингулярным значениям (SVD) при одновременном использовании определенного числа соседних точек данных около данной точки данных. Тем не менее, в некоторых случаях, некоторые из этих соседних точек данных могут дискретизироваться из поверхности, отличной от соответствующей поверхности данной точки данных, для которой вычисляется нормаль. Например, эти случаи могут возникать, когда данная точка данных расположена около границы соответствующей поверхности. В таких случаях, использование SVD-способа при одновременном использовании соседних точек данных из другой поверхности может приводить к вычислению, посредством электронного устройства, нормального вектора для данной точки данных, который не описывает фактическую соответствующую поверхность, на которой расположена данная точка данных.
[18] Тем не менее, разработчики настоящей технологии выяснили, что такая оценка нормалей с помощью SVD-способов не учитывает ошибки измерения лидарной системы при захвате точек данных захваченного облака трехмерных точек. Другими словами, разработчики настоящей технологии выяснили, что координаты точек данных в захваченном облаке трехмерных точек не являются точными или иным образом смещаются и подвергаются ошибке измерения в ходе их захвата посредством лидарной системы.
[19] Следовательно, по меньшей мере в некоторых вариантах осуществления настоящей технологии разработчики настоящей технологии создают способы и устройства, в которых нормальный ковариационный фильтр (NCF) используется в ходе этапа фильтрации, который обеспечивает возможность электронному устройству учитывать неопределенность в координатах точек данных в захваченных облаках трехмерных точек. Электронное устройство с использованием NCF трактует неопределенность в координатах точек данных в захваченных облаках трехмерных точек в качестве случайных гауссовых переменных. Следует отметить, что ошибка измерения лидарной системы может аппроксимироваться посредством сферы со среднеквадратическим отклонением.
[20] Следует отметить, что этап фильтрации модифицированной ICP-инфраструктуры может выполняться посредством электронного устройства для каждой пары захваченных облаков трехмерных точек. Как результат, электронное устройство в силу этого может быть выполнено с возможностью определять (i) первое фильтрованное облако трехмерных точек из первого захваченного облака трехмерных точек и (ii) второе фильтрованное облако трехмерных точек из второго захваченного облака трехмерных точек.
[21] В ходе этапа согласования модифицированной ICP-инфраструктуры, электронное устройство может быть выполнено с возможностью определять пары точек данных, причем данная пара точек данных включает в себя (i) первую точку данных из первого фильтрованного облака трехмерных точек и (ii) вторую точку данных из второго фильтрованного облака трехмерных точек, которая соответствует надлежащей первой точке данных. Например, этап согласования может выполняться посредством электронного устройства с использованием kD-дерева посредством выбора ближайшей точки во втором фильтрованном облаке трехмерных точек к первой точке данных из первого фильтрованного облака трехмерных точек.
[22] Разработчики настоящей технологии выяснили, что ограничение того, какие согласованные пары точек данных должны использоваться во время процесса слияния, может быть вычислительно полезным для электронного устройства. В связи с этим, разработчики настоящей технологии создают способы и устройства для улучшения этапа согласования посредством выполнения "подэтапа отклонения выбросов".
[23] Вообще говоря, в ходе подэтапа отклонения выбросов, электронное устройство может быть выполнено с возможностью идентифицировать набор "выбросов" или, другими словами, набор первоначально согласованных пар точек данных, в которых соответствующие точки данных с очень небольшой вероятностью должны соответствовать друг другу. Следует отметить, что разработчики настоящей технологии изобрели средство для идентификации таких выбросов. Например, разработчики настоящей технологии идентифицировали "геометрический критерий", который может способствовать идентификации таких выбросов.
[24] Следует отметить, что этот геометрический критерий зависит от геометрии самой лидарной системы. Например, некоторые лидарные системы могут реализовываться как вращающиеся лидарные системы, имеющие множество вертикально смежных источников излучения. Множество вертикально смежных источников излучения соответствуют надлежащим уровням вращающейся лидарной системы, которые иногда упоминаются как "кольца" вращающейся лидарной системы. Предполагается, что по меньшей мере в некоторых вариантах осуществления настоящей технологии, геометрический критерий может извлекаться из геометрических характеристик вращающейся лидарной системы: т.е. геометрический критерий может извлекаться из (i) углового приращения лидарного азимутального вращения и (ii) угловых расстояний с шагом между его соответствующими кольцами.
[25] В контексте настоящего описания изобретения, этот геометрический критерий может упоминаться как "отклонитель геометрических соответствий". Этот геометрический критерий может удовлетворяться, когда расстояние между (i) первой точкой данных из первого фильтрованного облака трехмерных точек и (ii) второй точкой данных из второго фильтрованного облака трехмерных точек ниже порогового значения на основе геометрии. Это пороговое значение на основе геометрии в настоящем описании изобретения может упоминаться как "наибольшее расстояние между соседними лучами". Другими словами, если фактическое расстояние "точка-точка" (такое как, например, евклидово расстояние) между второй точкой данных и первой точкой данных в первоначально согласованной паре превышает "наибольшее расстояние между соседними лучами" первой точки данных, эта первоначально согласованная пара отклоняется из последующей обработки. С другой стороны, следует отметить, что "наибольшее расстояние между соседними лучами" для первой точки данных может определяться посредством электронного устройства и зависит от геометрии лидарной системы, используемой для того, чтобы захватывать первую точку данных.
[26] В ходе этапа оценки преобразования модифицированной ICP-инфраструктуры электронное устройство выполнено с возможностью оценивать правило преобразования для того, чтобы объединять первое облако трехмерных точек со вторым облаком трехмерных точек. Например, электронное устройство может быть выполнено с возможностью оценивать правило преобразования посредством выполнения равномерно взвешенной линеаризованной оптимизации по методу наименьших квадратов с показателем "точка-плоскость". Следует отметить, что другие схемы взвешивания могут использоваться посредством электронного устройства для согласованных пар точек данных. Также следует отметить, что хотя показатель "точка-плоскость", в общем, является более полезным, чем показатель "точка-точка", показатель "точка-точка" также может использоваться, без отступления от объема настоящей технологии.
[27] В ходе этапа успешного достижения критериев завершения модифицированной ICP-инфраструктуры, электронное устройство может выполнять определенное число итераций (например, итераций ICP-алгоритма) до тех пор, пока не достигаются одно или более пороговых значений завершения. Например, одно или более пороговых значений завершения могут включать в себя пороговое значение касательно (i) абсолютной величины преобразования, (ii) относительной величины преобразования и (iii) общего числа итераций.
[28] В первом широком аспекте настоящей технологии предусмотрен реализованный посредством компьютера способ обработки данных лидарных датчиков. Способ осуществляется посредством электронного устройства, функционально соединенного с лидарным датчиком. Способ содержит прием, посредством электронного устройства из лидарного датчика, первого набора данных, имеющего множество первых точек данных. Данная первая точка данных из множества первых точек данных (i) представляет соответствующие координаты в трехмерном пространстве и (ii) ассоциирована с соответствующим нормальным вектором из множества нормальных векторов. Способ содержит определение, посредством электронного устройства, параметра неопределенности для данной первой точки данных на основе нормальной ковариации нормального вектора данной первой точки данных. Нормальная ковариация учитывает ошибку измерения лидарного датчика при определении соответствующих координат данной первой точки данных. Ошибка измерения лидарного датчика влияет на вычисление нормального вектора. Способ содержит, в ответ на параметр неопределенности, составляющий выше предварительно определенного порогового значения, исключение, посредством электронного устройства, данной первой точки данных из множества первых точек данных, за счет этого определяя фильтрованное множество первых точек данных. Способ содержит использование, посредством электронного устройства, фильтрованного множества первых точек данных, вместо множества первых точек данных, для слияния первого набора данных лидарного датчика со вторым набором данных лидарного датчика.
[29] В некоторых вариантах осуществления способ дополнительно содержит прием посредством электронного устройства из лидарного датчика второго набора данных, имеющего множество вторых точек данных. Данная вторая точка данных из множества вторых точек данных (i) представляет соответствующие координаты в трехмерном пространстве и (ii) ассоциирована с соответствующим нормальным вектором из другого множества нормальных векторов. Способ дополнительно содержит определение, посредством электронного устройства, другого параметра неопределенности для данной второй точки данных на основе нормальной ковариации нормального вектора данной второй точки данных. Нормальная ковариация учитывает ошибку измерения лидарного датчика при определении соответствующих координат данной второй точки данных. Ошибка измерения лидарного датчика влияет на вычисление нормального вектора данной второй точки данных. Способ дополнительно содержит, в ответ на параметр неопределенности, составляющий выше предварительно определенного порогового значения, исключение, посредством электронного устройства, данной второй точки данных из множества вторых точек данных, за счет этого определяя фильтрованное множество вторых точек данных. Способ дополнительно содержит использование, посредством электронного устройства, фильтрованного множества вторых точек данных, вместо множества вторых точек данных, для слияния первого набора данных лидарного датчика со вторым набором данных лидарного датчика.
[30] В некоторых вариантах осуществления способ дополнительно содержит определение, посредством электронного устройства, нормальной ковариации нормального вектора данной первой точки данных с учетом неопределенности в соответствующих координатах данной первой точки данных.
[31] В некоторых вариантах осуществления способа, неопределенность аппроксимируется в качестве случайной гауссовой переменной.
[32] В некоторых вариантах осуществления способа, ошибка измерения лидарного датчика аппроксимируется посредством сферы со среднеквадратическим отклонением.
[33] В некоторых вариантах осуществления способа, использование фильтрованного множества первых точек данных содержит использование, посредством электронного устройства, фильтрованного множества первых точек данных вместо множества первых точек данных в ходе этапа согласования ICP-алгоритма.
[34] В некоторых вариантах осуществления способа, использование фильтрованного множества первых точек данных содержит оценку, посредством электронного устройства, правила преобразования между первым набором данных и вторым набором данных.
[35] В некоторых вариантах осуществления способа, правило преобразования заключается в выводе ICP-алгоритма.
[36] В некоторых вариантах осуществления способа, лидарный датчик смонтирован на беспилотный автомобиль (SDC).
[37] В некоторых вариантах осуществления способ дополнительно содержит использование, посредством электронного устройства, объединенных первого и второго наборов данных для управления работой SDC.
[38] Во втором широком аспекте настоящей технологии, предусмотрено электронное устройство для обработки данных лидарных датчиков. Электронное устройство функционально соединяется с лидарным датчиком. Электронное устройство выполнено с возможностью принимать, из лидарного датчика, первый набор данных, имеющий множество первых точек данных. Данная первая точка данных из множества первых точек данных (i) представляет соответствующие координаты в трехмерном пространстве и (ii) ассоциирована с соответствующим нормальным вектором из множества нормальных векторов. Электронное устройство выполнено с возможностью определять, посредством электронного устройства, параметр неопределенности для данной первой точки данных на основе нормальной ковариации нормального вектора данной первой точки данных. Нормальная ковариация учитывает ошибку измерения лидарного датчика при определении соответствующих координат данной первой точки данных. Ошибка измерения лидарного датчика влияет на вычисление нормального вектора. Электронное устройство выполнено с возможностью, в ответ на параметр неопределенности, составляющий выше предварительно определенного порогового значения, исключать данную первую точку данных из множества первых точек данных, за счет этого определяя фильтрованное множество первых точек данных. Электронное устройство выполнено с возможностью использовать фильтрованное множество первых точек данных, вместо множества первых точек данных, для слияния первого набора данных лидарного датчика со вторым набором данных лидарного датчика.
[39] В некоторых вариантах осуществления электронное устройство дополнительно выполнено с возможностью принимать, из лидарного датчика, второй набор данных, имеющий множество вторых точек данных. Данная вторая точка данных из множества вторых точек данных (i) представляет соответствующие координаты в трехмерном пространстве и (ii) ассоциирована с соответствующим нормальным вектором из другого множества нормальных векторов. Электронное устройство дополнительно выполнено с возможностью определять, посредством электронного устройства, другой параметр неопределенности для данной второй точки данных на основе нормальной ковариации нормального вектора данной второй точки данных. Нормальная ковариация учитывает ошибку измерения лидарного датчика при определении соответствующих координат данной второй точки данных. Ошибка измерения лидарного датчика влияет на вычисление нормального вектора данной второй точки данных. Электронное устройство дополнительно выполнено с возможностью, в ответ на другой параметр неопределенности, составляющий выше предварительно определенного порогового значения, исключать данную вторую точку данных из множества вторых точек данных, за счет этого определяя фильтрованное множество вторых точек данных. Электронное устройство дополнительно выполнено с возможностью использовать фильтрованное множество вторых точек данных, вместо множества вторых точек данных, для слияния первого набора данных лидарного датчика со вторым набором данных лидарного датчика.
[40] В некоторых вариантах осуществления электронное устройство дополнительно выполнено с возможностью: определять нормальную ковариацию нормального вектора данной первой точки данных с учетом неопределенности в соответствующих координатах данной первой точки данных.
[41] В некоторых вариантах осуществления электронного устройства неопределенность аппроксимируется в качестве случайной гауссовой переменной.
[42] В некоторых вариантах осуществления электронного устройства ошибка измерения лидарного датчика аппроксимируется посредством сферы со среднеквадратическим отклонением.
[43] В некоторых вариантах осуществления электронного устройства использование фильтрованного множества первых точек данных содержит выполнение электронного устройства с возможностью использовать фильтрованное множество первых точек данных вместо множества первых точек данных в ходе этапа согласования ICP-алгоритма.
[44] В некоторых вариантах осуществления электронного устройства использование фильтрованного множества первых точек данных содержит выполнение электронного устройства с возможностью оценивать правило преобразования между первым набором данных и вторым набором данных.
[45] В некоторых вариантах осуществления электронного устройства правило преобразования заключается в выводе ICP-алгоритма.
[46] В некоторых вариантах осуществления электронного устройства лидарный датчик смонтирован на беспилотный автомобиль (SDC).
[47] В некоторых вариантах осуществления электронное устройство дополнительно выполнено с возможностью использовать объединенные первый и второй наборы данных для управления работой SDC.
[48] В третьем широком аспекте настоящей технологии, предусмотрен реализованный посредством компьютера способ обработки данных лидарных датчиков. Способ осуществляется посредством электронного устройства, функционально соединенного с лидарным датчиком. Лидарный датчик включает в себя множество вертикально разнесенных лазеров. Лидарный датчик является вращающимся вокруг вертикально протягивающейся оси. Способ содержит прием, посредством электронного устройства из лидарного датчика, индикатора данных лидарных датчиков, включающих в себя первый набор данных, имеющий множество первых точек данных, и второй набор данных, имеющий множество вторых точек данных. Каждая из множества первых точек данных и каждая из множества вторых точек данных представляет соответствующие координаты в трехмерном пространстве и ассоциирована с соответствующим нормальным вектором из множества нормальных векторов. Способ содержит согласование, посредством электронного устройства, по меньшей мере, части множества первых точек данных, по меньшей мере, с частью множества вторых точек данных, за счет этого определяя множество пар. Данная одна из множества пар включает в себя (i) данную первую точку данных и (ii) данную вторую точку данных. Данная первая точка данных и данные вторые точки данных отделяются посредством фактического расстояния "точка-точка". Способ содержит, для данной одной из множества пар, определение, посредством электронного устройства, конкретного для пары параметра фильтрации посредством следующего: (i) задание, для данной первой точки данных, набора соседних точек, причем набор соседних точек ассоциирован с поднабором лазеров из множества лазеров, вертикально смежных с данным лазером, который способствует формированию данной первой точки, и причем поднабор лазеров способствует формированию набора соседних точек; (ii) вычисление расстояний между соседними лучами между данной первой точкой данных и соответствующей одной из набора соседних точек, причем данное расстояние между соседними лучами представляет линейное расстояние между данной первой точкой данных и соответствующей одной из набора соседних точек; и (iii) в ответ на фактическое расстояние "точка-точка", составляющее выше наибольшего расстояния между соседними лучами, определение конкретного для пары параметра фильтрации как положительного. Способ содержит, в ответ на положительный конкретный для пары параметр, исключение данной одной из множества пар из последующей обработки, за счет этого задавая уменьшенное множество пар. Способ содержит обработку, посредством электронного устройства, уменьшенного множества пар для слияния первого набора данных и второго набора данных.
[49] В некоторых вариантах осуществления способа первый набор данных и второй набор данных захвачены в ходе фаз последовательного сканирования лидарного датчика.
[50] В некоторых вариантах осуществления способа набор сформированных соседних точек содержит четыре соседних точки.
[51] В некоторых вариантах осуществления способа четыре соседних точки содержат две точки вертикально выше данной первой точки данных и две точки вертикально ниже данной первой точки данных.
[52] В некоторых вариантах осуществления способа вычисление расстояний между соседними лучами содержит: (i) определение, посредством электронного устройства, данного диагонального вектора между данной первой точкой данных и соответствующей одной из набора соседних точек в первой системе координат; и (ii) вычисление, посредством электронного устройства, соответствующего расстояния между соседними лучами посредством проецирования данного диагонального вектора на отражающую поверхность, ортогональную к направлению лазерного тракта.
[53] В некоторых вариантах осуществления способа вычисление расстояний между соседними лучами основано на следующем уравнении:
,
где dk,l является данным расстоянием между соседними лучами между данной первой точкой pk данных и соответствующей соседней точкой pl, где pk,l является данным диагональным вектором между данной первой точкой pk данных и соответствующей соседней точкой pl, и где nk является нормальным вектором данной первой точки pk данных.
[54] В некоторых вариантах осуществления способа данная первая точка данных и набор соседних точек задают сегмент единичной сферы.
[55] В некоторых вариантах осуществления способ дополнительно содержит аппроксимацию пространственных координат данной первой точки данных на единичной сфере посредством плоскости аппроксимации.
[56] В некоторых вариантах осуществления способа плоскость аппроксимации основана на таком допущении, что лазерные лучи, сформированные посредством множества лазеров, являются параллельными.
[57] В некоторых вариантах осуществления способа вычисление расстояний между соседними лучами основано на угловом приращении азимутального вращения и угловых расстояниях с шагом между вертикально разнесенными лазерами.
[58] В некоторых вариантах осуществления способа обработка уменьшенного множества пар содержит оценку, посредством электронного устройства, правила преобразования между первым набором данных и вторым набором данных.
[59] В некоторых вариантах осуществления способа правило преобразования заключается в выводе ICP-алгоритма, выполняемого посредством электронного устройства.
[60] В некоторых вариантах осуществления способа лидарный датчик монтируется на беспилотный автомобиль (SDC).
[61] В некоторых вариантах осуществления способ дополнительно содержит использование объединенных первого набора данных и вторых наборов данных для управления работой SDC.
[62] В четвертом широком аспекте настоящей технологии предусмотрен реализованный посредством компьютера способ обработки данных лидарных датчиков. Способ осуществляется посредством электронного устройства, функционально соединенного с лидарным датчиком. Лидарный датчик включает в себя множество вертикально разнесенных лазеров. Лидарный датчик является вращающимся вокруг вертикально протягивающейся оси. Способ содержит прием, посредством электронного устройства из лидарного датчика, индикатора данных лидарных датчиков, включающих в себя первый набор данных, имеющий множество первых точек данных, и второй набор данных, имеющий множество вторых точек данных. Каждая из множества первых точек данных и каждая из множества вторых точек данных представляет соответствующие координаты в трехмерном пространстве и ассоциирована с соответствующим нормальным вектором из множества нормальных векторов. Способ содержит согласование, посредством электронного устройства, по меньшей мере, части множества первых точек данных, по меньшей мере, с частью множества вторых точек данных, за счет этого определяя множество пар. Данная одна из множества пар включает в себя (i) данную первую точку данных и (ii) данную вторую точку данных. Данная первая точка данных и данные вторые точки данных отделяются посредством фактического расстояния "точка-точка". Способ содержит, для данной одной из множества пар, определение наибольшего расстояния между соседними лучами из множества расстояний между соседними лучами посредством следующего: (i) вычисление расстояний между соседними лучами между данной первой точкой данных и соответствующей одной из набора соседних точек, причем набор соседних точек ассоциирован с поднабором лазеров из множества лазеров, вертикально смежных с данным лазером, который способствует формированию данной первой точки, и причем поднабор лазеров способствует формированию набора соседних точек, и причем данное расстояние между соседними лучами представляет линейное расстояние между данной первой точкой данных и соответствующей одной из набора соседних точек; и (ii) идентификация, посредством электронного устройства, наибольшего расстояния между соседними лучами из множества расстояний между соседними лучами. Способ содержит, в ответ на наибольшее расстояние между соседними лучами, составляющее выше фактического расстояния "точка-точка", исключение данной одной из множества пар из последующей обработки, за счет этого задавая уменьшенное множество пар. Способ содержит обработку, посредством электронного устройства, уменьшенного множества пар для слияния первого набора данных и второго набора данных.
[63] В пятом широком аспекте настоящей технологии предусмотрено электронное устройство для обработки данных лидарных датчиков. Электронное устройство функционально соединяется с лидарным датчиком. Лидарный датчик включает в себя множество вертикально разнесенных лазеров. Лидарный датчик является вращающимся вокруг вертикально протягивающейся оси. Электронное устройство выполнено с возможностью принимать, из лидарного датчика, индикатор данных лидарных датчиков, включающих в себя первый набор данных, имеющий множество первых точек данных, и второй набор данных, имеющий множество вторых точек данных. Каждая из множества первых точек данных и каждая из множества вторых точек данных представляет соответствующие координаты в трехмерном пространстве и ассоциирована с соответствующим нормальным вектором из множества нормальных векторов. Электронное устройство выполнено с возможностью согласовывать, по меньшей мере, часть множества первых точек данных, по меньшей мере, с частью множества вторых точек данных, за счет этого определяя множество пар. Данная одна из множества пар включает в себя (i) данную первую точку данных и (ii) данную вторую точку данных, причем данная первая точка данных и данные вторые точки данных отделены посредством фактического расстояния "точка-точка". Электронное устройство выполнено с возможностью, для данной одной из множества пар, определять конкретный для пары параметр фильтрации посредством следующего: (i) задание, для данной первой точки данных, набора соседних точек, причем набор соседних точек ассоциирован с поднабором лазеров из множества лазеров, вертикально смежных с данным лазером, который способствует формированию данной первой точки, причем поднабор лазеров способствует формированию набора соседних точек; (ii) вычисление расстояний между соседними лучами между данной первой точкой данных и соответствующей одной из набора соседних точек, причем данное расстояние между соседними лучами представляет линейное расстояние между данной первой точкой данных и соответствующей одной из набора соседних точек; (iii) в ответ на фактическое расстояние "точка-точка", составляющее выше наибольшего расстояния между соседними лучами, определение конкретного для пары параметра фильтрации как положительного. Электронное устройство выполнено с возможностью, в ответ на положительный конкретный для пары параметр, исключать данную одну из множества пар из последующей обработки, за счет этого задавая уменьшенное множество пар. Электронное устройство выполнено с возможностью обрабатывать уменьшенное множество пар для слияния первого набора данных и второго набора данных.
[64] В некоторых вариантах осуществления электронного устройства первый набор данных и второй набор данных захвачены в ходе фаз последовательного сканирования лидарного датчика.
[65] В некоторых вариантах осуществления электронного устройства набор сформированных соседних точек содержит четыре соседних точки.
[66] В некоторых вариантах осуществления электронного устройства четыре соседних точки содержат две точки вертикально выше данной первой точки данных и две точки вертикально ниже данной первой точки данных.
[67] В некоторых вариантах осуществления электронного устройства выполнение электронного устройства с возможностью вычислять расстояния между соседними лучами содержит выполнение электронного устройства с возможностью: (i) определять данный диагональный вектор между данной первой точкой данных и соответствующей одной из набора соседних точек в первой системе координат; и (ii) вычислять соответствующее расстояние между соседними лучами посредством проецирования данного диагонального вектора на отражающую поверхность, ортогональную к направлению лазерного тракта.
[68] В некоторых вариантах осуществления электронное устройство, выполненное с возможностью вычислять расстояния между соседними лучами, выполнено с возможностью использовать следующее уравнение:
,
где dk,l является данным расстоянием между соседними лучами между данной первой точкой pk данных и соответствующей соседней точкой pl, где pk,l является данным диагональным вектором между данной первой точкой pk данных и соответствующей соседней точкой pl, и где nk является нормальным вектором данной первой точки pk данных.
[69] В некоторых вариантах осуществления электронного устройства данная первая точка данных и набор соседних точек задают сегмент единичной сферы.
[70] В некоторых вариантах осуществления электронное устройство дополнительно выполнено с возможностью аппроксимировать пространственные координаты данной первой точки данных на единичной сфере посредством плоскости аппроксимации.
[71] В некоторых вариантах осуществления электронного устройства плоскость аппроксимации основана на таком допущении, что лазерные лучи, сформированные посредством множества лазеров, являются параллельными.
[72] В некоторых вариантах осуществления электронное устройство выполнено с возможностью вычислять расстояния между соседними лучами на основе углового приращения азимутального вращения и угловых расстояний с шагом между вертикально разнесенными лазерами.
[73] В некоторых вариантах осуществления электронного устройства выполнение электронного устройства с возможностью обрабатывать уменьшенное множество пар содержит выполнение электронного устройства с возможностью оценивать правило преобразования между первым набором данных и вторым набором данных.
[74] В некоторых вариантах осуществления электронного устройства правило преобразования заключается в выводе ICP-алгоритма, выполняемого посредством электронного устройства.
[75] В некоторых вариантах осуществления электронного устройства лидарный датчик монтируется на беспилотный автомобиль (SDC).
[76] В некоторых вариантах осуществления электронное устройство 210 дополнительно выполнено с возможностью использовать объединенный первый набор данных и вторые наборы данных для управления работой SDC.
[77] В контексте настоящего описания изобретения "сервер" представляет собой компьютерную программу, которая выполняется на соответствующих аппаратных средствах и допускает прием запросов (например, из клиентских устройств) по сети и выполнение этих запросов либо инструктирование выполнения этих запросов. Аппаратные средства могут реализовываться как один физический компьютер или одна физическая компьютерная система, но ни одно из означенного не должно обязательно иметь место относительно настоящей технологии. В настоящем контексте, использование выражения "сервер" не имеет намерение означать то, что каждая задача (например, принимаемые инструкции или запросы) или любая конкретная задача должна приниматься, выполняться или инструктироваться для выполнения посредством идентичного сервера (т.е. идентичного программного обеспечения и/или аппаратных средств); оно имеет намерение означать то, что любое число программных элементов или аппаратных устройств может быть предусмотрено при приеме/отправке, выполнении или инструктировании для выполнения любой задачи или запроса либо результатов любой задачи или запроса; и все это программное обеспечение и аппаратные средства могут представлять собой один сервер либо несколько серверов, причем все из означенного включается в выражение "по меньшей мере один сервер".
[78] В контексте настоящего описания изобретения "электронное устройство" представляет собой любые компьютерные аппаратные средства, которые допускают выполнение программного обеспечения, соответствующего рассматриваемой релевантной задаче. В контексте настоящего описания изобретения термин "электронное устройство" подразумевает, что устройство может функционировать в качестве сервера для других электронных устройств и клиентских устройств; тем не менее, это не должно обязательно иметь место относительно настоящей технологии. Таким образом, некоторые (неограничивающие) примеры электронных устройств включают в себя персональные компьютеры (настольные компьютеры, переносные компьютеры, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует понимать, что в настоящем контексте тот факт, что устройство функционирует в качестве электронного устройства, не означает того, что оно не может функционировать в качестве сервера для других электронных устройств. Использование выражения "электронное устройство" не исключает использование нескольких клиентских устройств при приеме/отправке, выполнении или инструктировании для выполнения любой задачи или запроса либо результатов любой задачи или запроса, или этапов любого способа, описанного в данном документе.
[79] В контексте настоящего описания изобретения "клиентское устройство" представляет собой любые компьютерные аппаратные средства, которые допускают выполнение программного обеспечения, соответствующего рассматриваемой релевантной задаче. В контексте настоящего описания изобретения, в общем, термин "клиентское устройство" ассоциирован с пользователем клиентского устройства. Таким образом, некоторые (неограничивающие) примеры клиентских устройств включают в себя персональные компьютеры (настольные компьютеры, переносные компьютеры, нетбуки и т.д.), смартфоны и планшеты, а также сетевое оборудование, такое как маршрутизаторы, коммутаторы и шлюзы. Следует отметить, что устройство, выступающее в качестве клиентского устройства в настоящем контексте, не исключается из выступания в качестве сервера для других клиентских устройств. Использование выражения "клиентское устройство" не исключает использование нескольких клиентских устройств при приеме/отправке, выполнении или инструктировании для выполнения любой задачи или запроса либо результатов любой задачи или запроса, или этапов любого способа, описанного в данном документе.
[80] В контексте настоящего описания изобретения выражение "информация" включает в себя информацию вообще любого характера или вида, допускающую сохранение в базе данных. Таким образом, информация включает в себя, но не только, аудиовизуальные произведения (изображения, фильмы, звукозаписи, презентации и т.д.), данные (данные местоположения, числовые данные и т.д.), текст (мнения, комментарии, вопросы, сообщения и т.д.), документы, электронные таблицы и т.д.
[81] В контексте настоящего описания изобретения выражение "программный компонент" имеет намерение включать в себя программное обеспечение (соответствующее конкретному аппаратному контексту), которое является необходимым и достаточным для того, чтобы осуществлять конкретную упоминаемую функцию(и).
[82] В контексте настоящего описания изобретения выражение "компьютерные носители хранения информации" (также называемые "носителями хранения данных") имеет намерение включать в себя носители вообще любого характера и вида, в том числе, без ограничения, RAM, ROM, диски (CD-ROM, DVD, гибкие диски, накопители на жестких дисках и т.д.), флэш-накопители, твердотельные накопители, накопители на ленте и т.д. Множество компонентов могут комбинироваться, чтобы формировать компьютерные носители хранения информации, включающие в себя два или более компонентов носителей идентичного типа и/или два или более компонентов носителей различных типов.
[83] В контексте настоящего описания изобретения "база данных" представляет собой любую структурированную совокупность данных, независимо от ее конкретной структуры, программного обеспечения управления базами данных или компьютерных аппаратных средств, на которых данные сохраняются, реализуются или становятся доступными иными способами для использования. База данных может постоянно размещаться в идентичных аппаратных средствах с процессом, который сохраняет или использует информацию, сохраненную в базе данных, либо она может постоянно размещаться в отдельных аппаратных средствах, таких как выделенный сервер или множество серверов.
[84] В контексте настоящего описания изобретения слова "первый", "второй", "третий" и т.д. использованы в качестве прилагательных только для целей обеспечения различения существительных, которые они модифицируют, друг от друга, а не для целей описания конкретных взаимосвязей между этими существительными. Таким образом, например, следует понимать, что использование терминов "первая база данных" и "третий сервер" не имеет намерение подразумевать конкретный порядок, тип, хронологию, иерархию или ранжирование (например) относительно сервера, и их использование не имеет намерение (непосредственно) подразумевать то, что "второй сервер" должен обязательно существовать в любой данной ситуации. Дополнительно, как пояснено в данном документе в других контекстах, ссылка на "первый" элемент и "второй" элемент не исключает того, что два элемента представляют собой идентичный фактический элемент реального мира. Таким образом, например, в некоторых случаях, "первый" сервер и "второй" сервер могут представлять собой идентичные программные и/или аппаратные компоненты, в других случаях они могут представлять собой различные программные и/или аппаратные компоненты.
[85] Реализации настоящей технологии имеют по меньшей мере одну из вышеуказанных целей и/или аспектов, но не обязательно имеют все из них. Следует понимать, что некоторые аспекты настоящей технологии, которые получены в результате попытки достигать вышеуказанной цели, могут не удовлетворять этой цели и/или могут удовлетворять другим целям, не изложенным конкретно в данном документе.
[86] Дополнительные и/или альтернативные признаки, аспекты и преимущества реализаций настоящей технологии должны становиться очевидными из нижеприведенного описания, прилагаемых чертежей и прилагаемой формулы изобретения.
Краткое описание чертежей
[87] Эти и другие признаки, аспекты и преимущества настоящей технологии должны становиться более понятными при рассмотрении нижеприведенного описания, прилагаемой формулы изобретения и прилагаемых чертежей, на которых:
[88] Фиг. 1 иллюстрирует принципиальную схему примерной компьютерной системы для реализации конкретных вариантов осуществления систем и/или способов настоящей технологии.
[89] Фиг. 2 иллюстрирует сетевую вычислительную среду, подходящую для использования с некоторыми реализациями настоящей технологии.
[90] Фиг. 3 иллюстрирует процедуру получения лидарных данных, выполняемую посредством процессора электронного устройства сетевой вычислительной среды по фиг. 2, а более конкретно, процедуру для приема данных облака трехмерных точек, захваченных посредством одного из датчиков транспортного средства, присутствующих в сетевой вычислительной среде по фиг. 2.
[91] Фиг. 4 иллюстрирует процесс фильтрации для данной захваченной точки данных данного захваченного облака трехмерных точек лидарной системы по фиг. 2, в соответствии по меньшей мере с некоторыми вариантами осуществления настоящей технологии.
[92] Фиг. 5 иллюстрирует визуальное представление расстояния между соседними лучами как определено посредством электронного устройства по фиг. 1, в соответствии по меньшей мере с некоторыми вариантами осуществления настоящей технологии.
[93] Фиг. 6 является принципиальной блок-схемой последовательности операций способа обработки данных лидарных датчиков в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[94] Фиг. 7 является принципиальной блок-схемой последовательности операций другого способа обработки данных лидарных датчиков в соответствии с неограничивающими вариантами осуществления настоящей технологии.
[95] Кроме того, приложение A прилагается после раздела "Подробное описание". Приложение A содержит статью, предоставляющую информацию по меньшей мере относительно некоторых аспектов настоящей технологии, описанных в данном документе, и/или дополнительных аспектов настоящей технологии. Приложение A и информация, составляющая его часть, прилагаются в качестве справочных сведений и должны удаляться из заявки до публикации заявки в качестве патента.
[96] Кроме того, приложение B прилагается после раздела "Подробное описание". Приложение B содержит плакат, предоставляющий информацию по меньшей мере относительно некоторых аспектов настоящей технологии, описанных в данном документе, и/или дополнительных аспектов настоящей технологии. Приложение B и информация, составляющая его часть, прилагаются в качестве справочных сведений и должны удаляться из заявки до публикации заявки в качестве патента.
Подробное описание изобретения
[97] Примеры и условный язык, изложенный в данном документе, преимущественно имеют намерение помогать читателю в понимании принципов настоящей технологии, а не ограничивать ее объем такими конкретно изложенными примерами и условиями. Следует принимать во внимание, что специалисты в данной области техники могут разрабатывать различные компоновки, которые, хотя и не описаны или показаны явно в данном документе, тем не менее, осуществляют принципы настоящей технологии и включаются в пределы ее сущности и объема.
[98] Кроме того, в качестве помощи в понимании, нижеприведенное описание может описывать относительно упрощенные реализации настоящей технологии. Специалисты в данной области техники должны понимать, что различные реализации настоящей технологии могут иметь большую сложность.
[99] В некоторых случаях, также может быть изложено то, что считается полезными примерами модификаций настоящей технологии. Это осуществляется просто в качестве помощи в понимании и, кроме того, не должно не задавать объем или излагать ограничения настоящей технологии. Эти модификации не представляют собой исчерпывающий список, и специалисты в данной области техники могут вносить другие модификации при одновременном пребывании в пределах объема настоящей технологии. Дополнительно, если примеры модификаций не изложены, не следует интерпретировать это таким образом, что модификации невозможны, и/или таким образом, что то, что описывается, представляет собой единственный способ реализации этого элемента настоящей технологии.
[100] Кроме того, все утверждения в данном документе, излагающие принципы, аспекты и реализации технологии, а также их конкретные примеры, имеют намерение охватывать их конструктивные и функциональные эквиваленты независимо от того, являются они известными в настоящее время или разрабатываются в будущем. Таким образом, например, специалисты в данной области техники должны признавать, что блок-схемы в данном документе представляют концептуальные виды иллюстративной схемы, осуществляющей принципы настоящей технологии. Аналогично, следует принимать во внимание, что все блок-схемы последовательности операций, блок-схемы, схемы переходов состояния, псевдокод и т.п. представляют различные процессы, которые могут представляться большей частью на машиночитаемых носителях, и в силу этого выполняются посредством компьютера или процессора, независимо от того, показан или нет в явной форме такой компьютер или процессор.
[101] Функции различных элементов, показанных на чертежах, включающих в себя все функциональные блоки, помеченные как "процессор", могут предоставляться с помощью специализированных аппаратных средств, а также аппаратных средств, допускающих выполнение программного обеспечения, в ассоциации с надлежащим программным обеспечением. При предоставлении посредством процессора, функции могут предоставляться посредством одного специализированного процессора, посредством одного совместно используемого процессора или посредством множества отдельных процессоров, некоторые из которых могут совместно использоваться. Кроме того, явное использование термина "процессор" или "контроллер" не должно истолковываться как означающее исключительно аппаратные средства, допускающие выполнение программного обеспечения, и может неявно включать в себя, без ограничений, аппаратные средства процессора цифровых сигналов (DSP), сетевой процессор, специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA), постоянное запоминающее устройство (ROM) для сохранения программного обеспечения, оперативное запоминающее устройство (RAM) и энергонезависимое устройство хранения. Также могут быть включены другие аппаратные средства, традиционные и/или специализированные.
[102] Программные модули или просто модули, которые подразумеваются как программные, могут представляться в данном документе в качестве любой комбинации элементов блок-схемы последовательности операций способа или других элементов, указывающих выполнение этапов процесса, и/или текстового описания. Такие модули могут выполняться посредством аппаратных средств, которые показаны явно или неявно.
[103] С учетом этих основных принципов, далее рассматриваются некоторые неограничивающие примеры, чтобы иллюстрировать различные реализации аспектов настоящей технологии.
[104] При обращении первоначально к фиг. 1, показана компьютерная система 100, подходящая для использования с некоторыми реализациями настоящей технологии, причем компьютерная система 100 содержит различные аппаратные компоненты, включающие в себя один или более одно- или многоядерных процессоров, совместно представленных посредством процессора 110, твердотельный накопитель 120, запоминающее устройство 130, которое может представлять собой оперативное запоминающее устройство или любой другой тип запоминающего устройства. Связь между различными компонентами компьютерной системы 100 может осуществляться посредством одной или более внутренних и/или внешних шин (не показаны) (например, посредством PCI-шины, универсальной последовательной шины, шины по стандарту IEEE1394 Firewire, шины SCSI, шины Serial ATA и т.д.), с которыми электронно соединяются различные аппаратные компоненты. Согласно вариантам осуществления настоящей технологии, твердотельный накопитель 120 сохраняет программные инструкции, подходящие для загрузки в запоминающее устройство 130 и выполняемые посредством процессора 110 для определения присутствия объекта. Например, программные инструкции могут представлять собой часть управляющего приложения транспортного средства, выполняемого посредством процессора 110. Следует отметить, что компьютерная система 100 может иметь дополнительные и/или необязательные компоненты, такие как модуль 140 сетевой связи для связи, через сеть связи (например, сеть 245 связи, проиллюстрированную на фиг. 2), с другими электронными устройствами и/или серверами, модули локализации (не проиллюстрирован) и т.п.
[105] Фиг. 2 иллюстрирует сетевое компьютерное окружение 200, подходящее для использования с некоторыми вариантами осуществления систем и/или способов настоящей технологии. Сетевое компьютерное окружение 200 содержит электронное устройство 210, ассоциированное с транспортным средством 220 или ассоциированное с пользователем (не проиллюстрирован), который может управлять транспортным средством 220, сервер 235, поддерживающий связь с электронным устройством 210 через сеть 245 связи (например, через Интернет и т.п., как подробнее описывается ниже в данном документе). Опционально, сетевое компьютерное окружение 200 также может включать в себя GPS-спутник (не проиллюстрирован), передающий и/или принимающий GPS-сигнал в/из электронного устройства 210. Следует понимать, что настоящая технология не ограничена GPS и может использовать технологию позиционирования, отличную от GPS. Следует отметить, что GPS-спутник может вообще опускаться.
[106] Транспортное средство 220, с которым ассоциировано электронное устройство 210, может содержать любое туристическое или перевозное транспортное средство, такое как личный или коммерческий автомобиль, грузовик, мотоцикл и т.п. Транспортное средство может представлять собой управляемое пользователем или безоператорное транспортное средство. Следует отметить, что конкретные параметры транспортного средства 220 не являются ограничивающими, причем эти конкретные параметры включают в себя: производителя транспортных средств, модель транспортного средства, год изготовления транспортного средства, вес транспортного средства, габариты транспортного средства, распределение веса транспортного средства, площадь поверхности транспортного средства, высоту транспортного средства, тип приводной передачи (например, 2x или 4x), тип шин, тормозную систему, топливную систему, пробег, идентификационный номер транспортного средства и рабочий объем двигателя.
[107] Реализация электронного устройства 210 не ограничена конкретным образом, но в качестве примера, электронное устройство 210 может реализовываться как блок управления двигателем транспортного средства, CPU транспортного средства, навигационное устройство транспортного средства (например, навигационное устройство транспортного средства TomTom™, навигационное устройство транспортного средства Garmin™), планшетный компьютер, персональный компьютер, встроенный в транспортное средство 220, и т.п. Таким образом, следует отметить, что электронное устройство 210 может или не может быть постоянно ассоциировано с транспортным средством 220. Дополнительно или альтернативно, электронное устройство 210 может реализовываться в устройстве беспроводной связи, таком как мобильный телефон (например, смартфон или радиотелефон). В конкретных вариантах осуществления электронное устройство 210 имеет дисплей 270.
[108] Электронное устройство 210 может содержать часть или все компоненты компьютерной системы 100, проиллюстрированной на фиг. 1. В конкретных вариантах осуществления электронное устройство 210 представляет собой бортовое компьютерное устройство и содержит процессор 110, твердотельный накопитель 120 и запоминающее устройство 130. Другими словами, электронное устройство 210 содержит аппаратные средства и/или программное обеспечение, и/или микропрограммное обеспечение либо комбинацию вышеозначенного для определения присутствия объекта вокруг транспортного средства 220, как подробнее описано ниже.
[109] В соответствии с неограничивающими вариантами осуществления настоящей технологии, электронное устройство 210 дополнительно содержит или имеет доступ ко множеству датчиков 230. Согласно этим вариантам осуществления, множество датчиков 230 могут содержать датчики, обеспечивающие различные реализации настоящей технологии. Примеры множества датчиков включают в себя, но не только: камеры, лидарные системы и радарные системы и т.д. Каждый из множества датчиков 230 функционально соединяется с процессором 110 для передачи такой захваченной информации в процессор 110 для ее обработки, как подробнее описывается ниже в данном документе.
[110] Каждый или некоторые из множества датчиков 230 могут монтироваться в салоне, в верхнем участке ветрового стекла транспортного средства 220, но другие местоположения находятся в пределах объема настоящего раскрытия сущности, в том числе заднее окно, боковые окна, передний капот, крыша, решетка радиатора или передний бампер транспортного средства 220. В некоторых неограничивающих вариантах осуществления настоящей технологии каждый или некоторые из множества датчиков 230 могут монтироваться в выделенном кожухе (не проиллюстрирован), смонтированном на верхушке транспортного средства 220.
[111] Дополнительно, пространственное размещение каждого или некоторых из множества датчиков 230 может проектироваться с учетом их конкретной технической конфигурации, конфигурации кожуха, погодных условий области, в которой должно использоваться транспортное средство 220 (таких как частый дождь, снег и другие пункты), и т.п.
[112] В некоторых неограничивающих вариантах осуществления настоящей технологии множество датчиков содержат, по меньшей мере, первый датчик 240 и второй датчик 260. В этих вариантах осуществления как первый датчик 240, так и второй датчик 260 могут быть выполнены с возможностью захватывать данные облака трехмерных точек окружающей области 250 транспортного средства 220. В этом отношении, каждый из первого датчика 240 и второго датчика 260 может содержать лидарный измерительный прибор.
[113] Лидар означает оптическое обнаружение и дальнометрию. Предполагается, что специалисты в данной области техники должны понимать функциональность лидарного измерительного прибора, но вкратце, передающее устройство (не проиллюстрировано) одного из первого датчика 240 и второго датчика 260, реализованного в качестве лидара, отправляет лазерный импульс, и световые частицы (фотоны) рассеиваются обратно в приемное устройство (не проиллюстрировано) одного из первого датчика 240 и второго датчика 260, реализованного в качестве лидарного измерительного прибора. Фотоны, которые возвращаются в приемное устройство, собираются с помощью телескопа и подсчитываются в качестве функции от времени. С использованием скорости света (~3×108 м/с) процессор 110 затем может вычислять то, насколько далеко перемещены фотоны (при полном обходе). Фотоны могут рассеиваться с отражением от многих различных объектов, окружающих транспортное средство 220, таких как другие частицы (аэрозоли или молекулы) в атмосфере, другие автомобили, стационарные объекты или потенциальные преграды перед транспортным средством 220.
[114] В конкретном неограничивающем примере, каждый из первого датчика 240 и второго датчика 260 может реализовываться как лидарные системы, которые могут иметь тип, предлагаемый компанией Velodyne LiDAR, Inc. 5521 Hellyer Avenue, Сан-Хосе, CA 95138, США. Следует четко понимать, что первый датчик 240 и второй датчик 260 могут реализовываться в любом другом подходящем оборудовании.
[115] Тем не менее, в неограничивающих вариантах осуществления настоящей технологии первый датчик 240 и второй датчик 260 не должны реализовываться на основе идентичного лидарного датчика, по сути, соответствующие технические характеристики первого датчика 240 могут отличаться от технических характеристик второго датчика 260.
[116] В некоторых вариантах осуществления настоящей технологии первый датчик 240 и второй датчик 260 могут размещаться в вышеуказанном кожухе (не проиллюстрирован отдельно), расположенном на крыше транспортного средства 220. Дополнительно, в неограничивающих вариантах осуществления настоящей технологии множество датчиков 230 могут содержать большее число лидарных датчиков, к примеру, три или любое другое подходящее число. В этих вариантах осуществления все лидарные датчики, наряду с первым датчиком 240 и вторым датчиком 260, могут размещаться в вышеуказанном кожухе (не проиллюстрирован отдельно).
[117] В неограничивающих вариантах осуществления настоящей технологии первый датчик 240 и второй датчик 260 калибруются таким образом, что для первого облака трехмерных точек, захваченного посредством первого датчика 240, и второго облака трехмерных точек, захваченного посредством второго датчика 260, процессор 110 выполнен с возможностью идентифицировать перекрывающиеся области посредством слияния первого облака трехмерных точек и второго облака трехмерных точек. Эта калибровка может выполняться во время изготовления и/или настройки транспортного средства 220. Альтернативно, в любое подходящее время после этого; или, другими словами, калибровка может выполняться во время модернизации транспортного средства 220 за счет первого датчика 240 и второго датчика 260 в соответствии с неограничивающими вариантами осуществления настоящей технологии, предполагаемыми в данном документе. Альтернативно, калибровка может выполняться во время оснащения транспортного средства 220 первым датчиком 240 и вторым датчиком 260 в соответствии с неограничивающими вариантами осуществления настоящей технологии, предполагаемыми в данном документе.
[118] В некоторых неограничивающих вариантах осуществления настоящей технологии каждый из первого датчика 240 и второго датчика 260 может представлять собой соответствующие вращательные лидарные системы (или иногда называются "вращающимися лидарными системами"), каждая из которых работает со своей предварительно определенной частотой сканирования. Соответственно, в этих неограничивающих вариантах осуществления процессор 110 может быть выполнен с возможностью синхронизировать, например, первый датчик 240 со вторым датчиком 260 посредством регулирования ассоциированных частот сканирования таким образом, что в данный момент времени, первый датчик 240 и второй датчик 260 находятся в идентичной угловой позиции относительно своих соответствующих вертикальных центральных осей. За счет этого, процессор 110 выполнен с возможностью инструктировать первому датчику 240 и второму датчику 260 собирать трехмерные данные, указывающие идентичную сцену окружающей области 250 транспортного средства 220.
[119] В некоторых неограничивающих вариантах осуществления настоящей технологии синхронизация первого датчика 240 и второго датчика 260 может инициализироваться, посредством процессора 110, в числе прочего, в течение периодов технического обслуживания транспортного средства 220; в моменты трогания с места транспортного средства 220; или в ходе работы транспортного средства 220 с определенной периодичностью.
[120] Также предполагается, что множество датчиков 230 дополнительно могут содержать другие датчики (не проиллюстрированы), такие как камеры, радары, датчики с блоком инерциальных измерений (IMU) и т.п.
[121] В некоторых неограничивающих вариантах осуществления настоящей технологии сеть 245 связи представляет собой Интернет. В альтернативных неограничивающих вариантах осуществления сеть 245 связи может реализовываться как любая подходящая локальная вычислительная сеть (LAN), глобальная вычислительная сеть (WAN), частная сеть связи и т.п. Следует четко понимать, что реализации для сети связи предназначаются только для целей иллюстрации. То, как реализуется линия связи (без отдельной ссылки с номером) между электронным устройством 210 и сетью 245 связи, должно зависеть, в числе прочего, от того, как реализуется электронное устройство 210. Просто в качестве примера, а не в качестве ограничения, в тех вариантах осуществления настоящей технологии, в которых электронное устройство 210 реализуется как устройство беспроводной связи, такое как смартфон или навигационное устройство, линия связи может реализовываться как линия беспроводной связи. Примеры линий беспроводной связи включают в себя, но не только, сетевую 3G-линию связи, сетевую 4G-линию связи и т.п. Сеть 245 связи также может использовать беспроводное соединение с сервером 235.
[122] В некоторых вариантах осуществления настоящей технологии сервер 235 реализуется как традиционный компьютер-сервер и может содержать часть или все компоненты компьютерной системы 100 по фиг. 1. В одном неограничивающем примере, сервер 235 реализуется как сервер Dell™ PowerEdge™ под управлением операционной системы Windows Server™ Microsoft™, но также может реализовываться в любых других подходящих аппаратных средствах, программном обеспечении и/или микропрограммном обеспечении либо в комбинации вышеозначенного. В проиллюстрированных неограничивающих вариантах осуществления настоящей технологии сервер 235 представляет собой один сервер. В альтернативных неограничивающих вариантах осуществления настоящей технологии (не проиллюстрированы) функциональность сервера 235 может распределяться и может реализовываться через несколько серверов.
[123] В некоторых неограничивающих вариантах осуществления настоящей технологии процессор 110 электронного устройства 210 может поддерживать связь с сервером 235, чтобы принимать одно или более обновлений. Обновления могут представлять собой, но не только, обновления программного обеспечения, обновления карт, обновления маршрутов, обновления прогноза погоды и т.п. В некоторых вариантах осуществления настоящей технологии процессор 110 также может быть выполнен с возможностью передавать на сервер 235 определенные рабочие данные, такие как проезжаемые маршруты, данные трафика, данные рабочих характеристик и т.п. Некоторые или все данные, передаваемые между транспортным средством 220 и сервером 235, могут шифроваться и/или анонимизироваться.
[124] В описании, предусмотренном в настоящем документе, когда определенные процессы и этапы способа выполняются посредством процессора 110 электронного устройства 210, следует четко понимать, что такие процессы и этапы способа могут выполняться только посредством процессора 110, совместно (т.е. распределяться) между процессором 110 и сервером 235 либо только посредством сервера 235. Другими словами, когда настоящее описание упоминает процессор 110 или электронное устройство 210, выполняющее определенные процессы или этапы способа, это должно явно охватывать процессы или этапы, выполняемые посредством процессора 110, посредством сервера 235 либо объединенно выполняемые посредством процессора 110 и сервера 235.
[125] Со ссылкой на фиг. 3, проиллюстрирован процесс 300 (также называется "процедурой 300 получения лидарных данных"), выполняемый посредством электронного устройства 210 для формирования лидарных данных 310, захваченных посредством вращательной лидарной системы транспортного средства 220 (например, первого датчика 240). В некоторых неограничивающих вариантах осуществления настоящей технологии процесс 300 может выполняться непрерывно. В других вариантах осуществления настоящей технологии процесс 300 может реализовываться с предварительно определенными интервалами, к примеру, каждые 2 миллисекунды или с любым другим подходящим временным интервалом.
[126] Следует отметить, что по мере того, как транспортное средство 220 движется по дороге 302, электронное устройство 210 выполнено с возможностью получать лидарные данные 310 из вращательной лидарной системы, которые представляют объекты в окружающей области 250 транспортного средства 220.
[127] Вообще говоря, лидарные данные 310 получаются посредством электронного устройства 210 в форме множества захваченных облаков трехмерных точек (не пронумерованы), включающих в себя: первое захваченное облако 312 трехмерных точек, второе захваченное облако 332 трехмерных точек, n-ое захваченное облако 332 трехмерных точек и т.д. Следует отметить, что данное захваченное облако трехмерных точек содержит большое число точек данных, зарегистрированных посредством вращательной лидарной системы в ходе соответствующего сканирования окружающей области 250.
[128] Чтобы лучше иллюстрировать это, рассмотрим пример первого захваченного облака 312 трехмерных точек, полученного посредством электронного устройства 210 в момент t1 времени. Первое захваченное облако 312 трехмерных точек содержит большое число точек данных, захваченных за счет них посредством вращательной лидарной системы в ходе первого сканирования окружающей области 250. Например, первое захваченное облако 312 трехмерных точек может включать в себя 30000 захваченных точек данных, 50000 захваченных точек данных, 150000 захваченных точек данных и т.п., которые представляют объекты в окружающей области 250.
[129] Одна из захваченных точек данных первого захваченного облака 312 трехмерных точек представляет собой захваченную точку 314 данных. Данные, указывающие захваченную точку 314 данных, могут включать в себя пространственные координаты захваченной точки 314 данных в трехмерном пространстве, определенные/захваченные посредством вращательной лидарной системы. Предполагается, что дополнительные данные могут быть ассоциированы с захваченной точкой 314 данных. Например, один или более дополнительных параметров, таких как, например, расстояние, интенсивность и/или угол, а также другие параметры, могут быть ассоциированы с захваченной точкой 314 данных, как известно в данной области техники.
[130] Предполагается, что вращательная лидарная система может захватывать соответствующее захваченное облако трехмерных точек с соответствующим временным шагом в то время, когда транспортное средство 220 движется. Такой временной шаг в некоторых случаях может соответствовать интервалу времени, который требуется для вращательной лидарной системы с тем, чтобы выполнять сканирование окружающей области 250. Такой временной шаг также может соответствовать интервалу времени, который требуется для вращательной лидарной системы с тем, чтобы выполнять полное вращение вокруг своей азимутальной оси.
[131] Например, после того как вращательная лидарная система выполняет первое сканирование окрестностей, вращательная лидарная система может предоставлять в электронное устройство 210, в момент t1, первое захваченное облако 312 трехмерных точек. В идентичном примере, после того как вращательная лидарная система выполняет второе сканирование окрестностей, вращательная лидарная система может предоставлять в электронное устройство 210, в момент t2, захваченное облако 322 трехмерных точек. В идентичном примере, после того как вращательная лидарная система выполняет n-ое сканирование окрестностей, вращательная лидарная система может предоставлять в электронное устройство 210, в момент tn, n-ое захваченное облако 332 трехмерных точек.
[132] В целом, можно сказать, что по мере того, как транспортное средство 220 движется по дороге 302, электронное устройство 210 может быть выполнено с возможностью получать из вращательной лидарной системы транспортного средства 220 лидарные данные 310. Лидарные данные 310 могут содержать в числе прочего множество облаков трехмерных точек, которые захвачены посредством вращательной лидарной системы в ходе соответствующих сканирований окружающей области 250.
[133] В некоторых вариантах осуществления настоящей технологии электронное устройство 210 может быть выполнено с возможностью объединять множество захваченных облаков трехмерных точек. Например, посредством слияния множества зарегистрированных облаков трехмерных точек, электронное устройство 210 может быть выполнено с возможностью формировать трехмерное представление в форме карты окружающей области 250 транспортного средства 220. Такое трехмерное представление в форме карты окружающей области 250 может использоваться посредством электронного устройства 210 для управления работой транспортного средства 220 при движении по дороге 302.
[134] С этой целью электронное устройство 210 может быть выполнено с возможностью выполнять одну или более технологий слияния облаков трехмерных точек. По меньшей мере, в некоторых вариантах осуществления настоящей технологии электронное устройство 210 может быть выполнено с возможностью объединять данную пару захваченных облаков трехмерных точек из лидарных данных 310 посредством выполнения итеративного алгоритма ближайших точек (ICP).
[135] Вообще говоря, ICP-алгоритм выполнен с возможностью минимизировать расстояние между парой облаков трехмерных точек. Обычно, во время выполнения ICP-алгоритма, одно облако трехмерных точек упоминается как "целевое" или "опорное" облако трехмерных точек, в то время как другое облако трехмерных точек упоминается как "исходное" облако трехмерных точек. Цель ICP-алгоритма состоит в том, чтобы поддерживать целевое облако трехмерных точек фиксированным и идентифицировать "правило преобразования", которое, при применении к исходному облаку трехмерных точек, должно приводить к слиянию друг с другом пары облаков трехмерных точек.
[136] Типично, ICP-алгоритм включает в себя следующие этапы, выполняемые итеративно:
- инициализация процесса слияния посредством выполнения "исходного предположения" касательного того, как пара зарегистрированных трехмерных облаков должна быть расположена в идентичном трехмерном пространстве;
- выбор и/или фильтрация зарегистрированных облаков трехмерных точек, для определения того, какие точки данных должны использоваться для следующего этапа ICP-алгоритма;
- согласование выбранных/фильтрованных точек данных, за счет этого определяя соответствия между точками данных из целевого облака трехмерных точек и точками данных из исходного облака трехмерных точек;
- назначение показателя ошибки; и
- минимизация показателя ошибки посредством применения одного из правил преобразования.
[137] Предполагается, что в некоторых случаях, электронное устройство 210 может быть выполнено с возможностью выполнять взвешивание некоторых согласованных пар точек данных и/или отклонять другие согласованные пары точек данных до минимизации показателя ошибки.
[138] Следует отметить, что электронное устройство 210 может быть выполнено с возможностью оценивать одно или более правил преобразования, которые могут использоваться для оценки показателя ошибки при а соответствующей итерации ICP-алгоритма. Следовательно, можно сказать, что посредством итеративного применения оцененных правил преобразования для того, чтобы минимизировать показатель ошибки между соответствующими парами точек данных из пары облаков трехмерных точек, электронное устройство 210 инструктирует исходному облаку трехмерных точек проходить через множество "промежуточных позиций" в "конечную позицию", в которой выбранные и согласованные пары точек данных практически объединяются.
[139] Некоторые примеры известных способов выполнения ICP-алгоритма описываются в статье, озаглавленной "Efficient Variants of the ICP Algorithm", написанной авторами Szymon Rusinkiewicz и Marc Levoy и опубликованной Стэнфордским университетом; содержимое которой полностью содержится в данном документе по ссылке.
[140] Следует отметить, что (i) выбор/фильтрация точек данных и (ii) согласование соответствующих точек данных оказывают важное влияние на эффективность ICP-алгоритма, выполняемого посредством электронного устройства 210 для слияния пары облаков трехмерных точек.
Модифицированный этап выбора
[141] В первом широком аспекте настоящей технологии, разработчики настоящей технологии создают способы и устройства для улучшения этапа выбора/фильтрации точек данных во время ICP-алгоритма. Другими словами, по меньшей мере, в некоторых вариантах осуществления настоящей технологии электронное устройство 210 выполнено с возможностью выполнять модифицированный ICP-алгоритм, в ходе которого конкретный тип фильтрации точек данных используется для повышения эффективности процедуры слияния между парой облаков трехмерных точек.
[142] Во-первых, фильтрация точек данных может обеспечивать возможность электронному устройству 210 выполнять слияние облаков трехмерных точек быстрее. Следует отметить, что традиционные лидарные системы могут предоставлять данное захваченное облако трехмерных точек, имеющее большое число захваченных точек данных, как упомянуто выше (например, между 30000 и 150000 зарегистрированных точек данных). В связи с этим, учет каждой из этих захваченных точек данных во время выполнения ICP-алгоритма может снижать производительность вычислений электронного устройства 210.
[143] Во-вторых, следует отметить, что электронное устройство 210 может быть выполнено с возможностью оценивать и использовать нормальные векторы или просто "нормали", ассоциированные с соответствующими захваченными точками данных, для выполнения одного или более этапов ICP-алгоритма. Тем не менее, нормали, по меньшей мере, для некоторых захваченных точек данных могут неправильно вычисляться (ошибочно оцениваться) по множеству причин. Например, данная нормаль может неправильно вычисляться вследствие ненадлежащего выбора соседних захваченных точек данных: т.е. данная нормаль для данной захваченной точки данных может оцениваться на основе соседних захваченных точек данных, которые не расположены на поверхности, идентичной поверхности данной захваченной точки данных. Такое неправильное вычисление типично возникает, когда данная захваченная точка данных расположена около границы поверхности, на которой она расположена. Как результат, захваченные точки данных, имеющие ошибочно оцененные нормали, должны отфильтровываться из следующих этапов ICP-алгоритма, поскольку такие ошибочно оцененные нормали могут оказывать отрицательное влияние на точность этапа оценки преобразования ICP-алгоритма.
[144] Тем не менее, разработчики настоящей технологии выяснили, что в дополнение к ненадлежащему выбору соседних захваченных точек данных во время оценки данной нормали данной зарегистрированной точки данных, другие причины могут приводить к тому, что электронное устройство 210 ошибочно оценивает данную нормаль данной захваченной точки данных. Например, разработчики настоящей технологии выяснили, что электронное устройство 210 может ошибочно оценивать данную нормаль данной захваченной точки данных вследствие ошибочного захвата данной захваченной точки данных посредством лидарной системы. Более конкретно, разработчики настоящей технологии выяснили, что электронное устройство 210 может ошибочно оценивать данную нормаль данной захваченной точки данных вследствие ошибочного измерения пространственных координат данной захваченной точки данных посредством лидарной системы.
[145] Другими словами, разработчики настоящей технологии выяснили, что пространственные координаты данной захваченной точки данных подвергаются "ошибке измерения", приписываемой непосредственно лидарной системе в ходе захвата. Следовательно, если данная захваченная точка данных ассоциирована с ошибочными пространственными координатами, то электронное устройство 210 с большой вероятностью должно ошибочно оценивать нормаль для этой данной захваченной точки данных.
[146] Как результат, разработчики настоящей технологии создают конкретный тип реализованного посредством компьютера фильтра точек данных, который должен использоваться в ходе этапа фильтрации ICP-алгоритма и который учитывает неопределенность в пространственных координатах захваченных точек данных посредством трактовки этой неопределенности в качестве случайных гауссовых переменных. В контексте настоящего описания изобретения, этот реализованный посредством компьютера фильтр точек данных упоминается как "нормальный ковариационный фильтр" (NCF).
[147] Разработчики настоящей технологии выяснили, что использование NCF в ходе этапа фильтрации ICP-алгоритма обеспечивает возможность (i) сокращать число захваченных точек данных в некоторых или каждом облаке трехмерных точек, которые должны объединяться, что обеспечивает возможность ускорения выполнения ICP-алгоритма, и (ii) отфильтровывать захваченные точки данных с ошибочно зарегистрированными пространственными координатами, приводящие к соответствующим неправильно вычисленным нормалям, что обеспечивает возможность уменьшения отрицательных эффектов на точность этапа оценки преобразования ICP-алгоритма.
[148] Далее подробнее описывается то, как электронное устройство 210 выполнено с возможностью реализовывать NCF, и то, как электронное устройство 210 выполнено с возможностью фильтровать данное захваченное облако трехмерных точек через NCF.
Фильтрация зарегистрированного облака трехмерных точек посредством использования NCF
[149] Далее подробнее поясняется то, как электронное устройство 210 выполнено с возможностью фильтровать данное захваченное облако трехмерных точек для определения соответствующего фильтрованного облака трехмерных точек, со ссылкой на одну данную захваченную точку данных из данного захваченного облака трехмерных точек. Со ссылкой на фиг. 4, проиллюстрирован процесс 400 фильтрации для данной захваченной точки 401 данных данного захваченного облака трехмерных точек. Тем не менее, следует отметить, что электронное устройство 210 может быть выполнено с возможностью выполнять процесс 400 фильтрации, описанный в данном документе ниже, для соответствующих захваченных точек данных из данного захваченного облака трехмерных точек для определения того, должны они или нет быть включены в соответствующее фильтрованное облако трехмерных точек.
[150] Как проиллюстрировано на фиг. 4, электронное устройство 210 может быть выполнено с возможностью идентифицировать набор захваченных точек 402 данных, которые дискретизируются из данного захваченного облака трехмерных точек таким образом, что они находятся около данной захваченной точки 401 данных.
[151] В некоторых вариантах осуществления настоящей технологии электронное устройство 210 может использовать данные, указывающие набор захваченных точек 402 данных во время выполнения SVD-алгоритма модифицированного этапа фильтрации ICP-алгоритма. Вообще говоря, электронное устройство 210 может быть выполнено с возможностью вводить в SVD-алгоритм данные, представляющие набор захваченных точек 402 данных. Например, предполагается, что электронное устройство 210 может быть выполнено с возможностью вводить в SVD-алгоритм матрицу D, причем:
где k является числом захваченных точек данных в наборе захваченных точек 402 данных. В связи с этим, матрица D, введенная в SVD-алгоритм, представляет пространственные координаты k числа захваченных точек данных в наборе захваченных точек 402 данных. Для большей прозрачности следует отметить, что такое обозначение, как Di,j должно означать запись i,j из матрицы D, а обозначение Di должно означать столбец i матрицы D при подсчете с нуля.
[152] Посредством ввода матрицы D в SVD-алгоритм, электронное устройство 210 может принимать, в ответ на него, вывод из SVD-алгоритма, такой как:
,
где U, S и V являются компонентами матрицы SVD-алгоритма, и где матрицы U и V являются ортогональными матрицами, представляющими совокупность базисных векторов, и где S представляет, в некотором смысле, "влияние" точек данных в пространстве, представленном посредством Vi векторов из матрицы V. Дополнительные подробности относительно матриц U, S и V предоставляются в приложениях A и B.
[153] Следует отметить, что в случаях, если записи матрицы D представляют собой случайные переменные, V2 также может включать в себя случайные переменные. Разработчики настоящей технологии предполагают то, что записи матрицы D могут представлять собой случайные гауссовы переменные. Дополнительно, следует отметить, что V2 из матрицы V соответствует нормальному вектору 406 оцененной плоскости 404, как проиллюстрировано на фиг. 4. Кроме того, V0 и V1 из матрицы V представляют произвольные векторы, ограниченные таким образом, чтобы формировать левостороннюю систему V0, V1 и V2 координат. Кроме того, разработчики настоящей технологии предполагают то, что S2 представляет меру неплоскостности оцененной плоскости 404.
[154] Предполагается, что электронное устройство 210 может быть выполнено с возможностью оценивать ковариацию нормального вектора V2 (например, нормали плоскости) посредством распространения технологии неопределенности. Вообще говоря, распространение неопределенности (или распространение ошибки) означает влияние неопределенности в переменных на неопределенность в функции, которая основана на них. Когда переменные представляют собой значения экспериментальных измерений, например, как в этом случае, пространственные координаты захваченных точек данных, они имеют неопределенности вследствие ограничений измерения (например, связанной с измерительным прибором ошибки измерения лидарной системы), которые распространяются вследствие комбинации переменных в соответствующей функции.
[155] Таким образом, можно сказать, что электронное устройство 210 может быть выполнено с возможностью оценивать ковариацию нормального вектора V2 (нормального вектора 406) посредством распространения технологии неопределенности через следующее:
,
где является ковариацией матрицы D и вычисляется следующим образом:
,
и где функция f в уравнении (3) является последовательностью вычислений, которые электронное устройство 210 может быть выполнено с возможностью выполнять, чтобы давать в результате V2 из матрицы D, где I является единичной матрицей, и где ошибка измерения лидарной системы аппроксимируется посредством сферы со среднеквадратическим отклонением ξ.
[156] Следует отметить, что аппроксимация ошибки измерения лидарной системы через сферу со среднеквадратическим отклонением ξ означает то, что пространственные координаты данной захваченной точки данных могут быть расположены в соответствующей сфере со среднеквадратическим отклонением ξ. Предполагается, что значение ξ может получаться от изготовителя лидарной системы.
[157] Тем не менее, следует отметить, что ковариация V2 (т.е. ) находится в системе координат лидарной системы. Следовательно, электронное устройство 210 может быть выполнено с возможностью выполнять этап совмещения таким образом, что имеет совмещение с V2, так что:
,
где матрица C является ковариацией V2 в нормально-совмещенной системе координат (например, в системе координат, заданной посредством V0, V1 и V2), и где Q и Q-1 являются матрицами, используемыми для выполнения совмещения, или другими словами, матрицами, указывающими преобразование между исходной системой координат (например, системой координат лидарной системы) и нормально-совмещенной системой координат.
[158] Электронное устройство 210 может быть выполнено с возможностью использовать данный элемент матрицы C для выполнения процесса принятия решений касательно того, должна или нет данная захваченная точка 401 данных отфильтровываться/исключаться из фильтрованного облака трехмерных точек. Более конкретно, электронное устройство может быть выполнено с возможностью сравнивать элемент C2,2 из матрицы C, чтобы определять то, должна или нет отфильтровываться данная захваченная точка 401 данных. С этой целью электронное устройство 210 может быть выполнено с возможностью сравнивать C2,2 с пороговым значением cT:
,
где cT является предварительно определенным пороговым значением, и где C2,2 является элементом матрицы С.
[159] Следует отметить, что C2,2 представляет распределение потенциальных нормальных векторов, для данной захваченной точки 401 данных, проецируемой на ось, совмещенную с V2. Следует отметить, что конус 408, проиллюстрированный на фиг. 4, включает в себя множество потенциальных нормальных векторов, которые могут определяться на основе, в числе прочего, набора захваченных точек 402 данных, причем пространственные координаты набора захваченных точек 402 данных, соответственно, попадают в сферы со среднеквадратическим отклонением ξ (например, с учетом ошибки измерения лидарной системы). В связи с этим, это означает то, что C2,2 может быть значением, представляющим степень, до которой потенциальные нормальные векторы могут отклоняться от нормального V2 в конусе 408. Можно также сказать, что C2,2 связано с углом 410 конуса 408. Следует отметить, что пороговое значение cT может быть предварительно определено оператором электронного устройства 210. Например, пороговое значение cT может получаться через управляемые данными технологии оптимизации.
[160] Следовательно, предполагается, что если значение C2,2 для данной захваченной точки 401 данных выше порогового значения cT, электронное устройство 210 может быть выполнено с возможностью исключать данную захваченную точку 401 данных из последующей обработки, поскольку данная захваченная точка 401 данных ассоциирована со значением неопределенности нормали, которое является слишком высоким (например, выше порогового значения cT).
[161] Как упомянуто выше, электронное устройство 210 может быть выполнено с возможностью вычислять матрицу C для каждой захваченной точки данных из данного захваченного облака трехмерных точек, аналогично тому, как электронное устройство 210 вычисляет матрицу C для данной захваченной точки 401 данных. Следовательно, электронное устройство 210 может быть выполнено с возможностью вычислять значение C2,2 для каждой захваченной точки данных из данного захваченного облака трехмерных точек и может сравнивать его с пороговым значением cT, аналогично тому, как электронное устройство 210 выполнено с возможностью вычислять значение C2,2 для данной захваченной точки 401 данных и сравнивать его с пороговым значением cT.
[162] Следовательно, электронное устройство 210 может быть выполнено с возможностью отфильтровывать, из данного захваченного облака трехмерных точек, набор исключенных захваченных точек данных с наибольшими значениями неопределенности нормали посредством сравнения соответствующих значений C2,2 с пороговым значением cT, с учетом неопределенности в соответствующих пространственных координатах, вызываемой посредством ошибки измерения лидарной системы.
[163] Как результат, посредством применения вышеуказанного процесса 400 фильтрации к соответствующим захваченным точкам данных, электронное устройство 210 выполнено с возможностью получать первое фильтрованное облако трехмерных точек из первого захваченного облака трехмерных точек, которое включает в себя данные точки с точными нормальными векторами. Электронное устройство 210 затем может быть выполнено с возможностью использовать первое фильтрованное облако трехмерных точек, вместо первого захваченного облака трехмерных точек, в ходе следующих этапов ICP-алгоритма. Следует отметить, что, по меньшей мере, некоторые аспекты настоящей технологии, связанной с процессом 400 фильтрации, поясняются подробнее в приложениях A и B настоящего описания изобретения. Предполагается, что электронное устройство 210 может быть выполнено с возможностью определять второе фильтрованное облако трехмерных точек на основе второго захваченного облака трехмерных точек аналогично тому, как электронное устройство 210 выполнено с возможностью определять первое фильтрованное облако трехмерных точек на основе первого зарегистрированного облака трехмерных точек.
Модифицированный этап согласования
[164] Во втором широком аспекте настоящей технологии, разработчики настоящей технологии создают способы и устройства для улучшения этапа согласования ICP-алгоритма. Другими словами, по меньшей мере, в некоторых вариантах осуществления настоящей технологии электронное устройство 210 выполнено с возможностью выполнять модифицированный ICP-алгоритм, в ходе которого геометрическая информация относительно лидарной системы, которая захватывает слияние двух облаков трехмерных точек, используется для отклонения, по меньшей мере, некоторых пар точек данных. Такое отклонение, по меньшей мере, некоторых пар точек данных может обеспечивать возможность электронному устройству 210 повышать эффективность процедуры слияния между двумя облаками трехмерных точек.
[165] Следует отметить, что в некоторых вариантах осуществления электронное устройство 210 может быть выполнено с возможностью выполнять этот модифицированный этап согласования ICP-алгоритма для первого фильтрованного облака трехмерных точек и второго фильтрованного облака трехмерных точек, как описано выше, вместо первого захваченного облака трехмерных точек и второго захваченного облака трехмерных точек. Тем не менее, в альтернативных неограничивающих вариантах осуществления настоящей технологии может выполняться только один из модифицированных этапов (т.е. либо модифицированный этап фильтрации, либо модифицированный этап согласования).
[166] Опционально, предполагается, что электронное устройство 210 может быть выполнено с возможностью выполнять этот модифицированный этап согласования ICP-алгоритма для фильтрованных облаков трехмерных точек, которые фильтрованы посредством электронного устройства 210 в ходе этапа выбора ICP-алгоритма способом, отличным от того, что описывается выше: т.е. электронное устройство 210 может быть выполнено с возможностью выполнять этот модифицированный этап согласования для облаков трехмерных точек, определенных любым подходящим способом для данного варианта применения.
[167] Вообще говоря, цель выполнения модифицированного этапа согласования посредством электронного устройства 210 состоит в том, чтобы (i) определять пары согласованных пар точек данных (также называемых "соответствиями") и (ii) "отклонять" некоторые из этих пар таким образом, чтобы повышать эффективность процедуры слияния.
[168] Следовательно, можно сказать, что электронное устройство 210 может быть выполнено с возможностью использовать первое фильтрованное облако трехмерных точек и второе фильтрованное облако трехмерных точек для согласования точек данных с соответствующими парами таким образом, что каждая пара включает в себя (i) данную первую точку данных из первого фильтрованного облака трехмерных точек и (ii) данную вторую точку данных из второго фильтрованного облака трехмерных точек. За счет этого, электронное устройство 210 может быть выполнено с возможностью определять соответствия между двумя фильтрованными облаками трехмерных точек.
[169] Электронное устройство 210 может определять начальные соответствия между точками данных множеством способов. В одном примере, электронное устройство 210 может быть выполнено с возможностью определять начальные пары точки данных на основе кратчайшего расстояния между ними. В другом примере, электронное устройство 210 может быть выполнено с возможностью определять пары точек данных, не только на основе кратчайшего расстояния между ними, но также и на основе анализа соответствующих нормальных векторов.
[170] Тем не менее, независимо от того, как электронное устройство 210 выполнено с возможностью определять начальные пары точек данных между первым фильтрованным облаком трехмерных точек и вторым фильтрованным облаком трехмерных точек (например, начальные соответствия), электронное устройство 210 может быть выполнено с возможностью использовать отклонитель геометрических соответствий (GCR) для "отклонения", по меньшей мере, некоторых начальных пар точек данных, за счет этого определяя уменьшенное множество пар точек данных, которые должны использоваться в ходе следующего этапа ICP-алгоритма.
[171] Как упомянуто выше, GCR может удовлетворяться, когда расстояние между точками данных данной начальной пары точек данных ниже порогового значения на основе геометрии. Пороговое значение на основе геометрии может упоминаться в данном документе как расстояние между соседними лучами. Как должно становиться очевидным из нижеприведенного подробного описания в данном документе, по меньшей мере, в некоторых вариантах осуществления настоящей технологии пороговое значение на основе геометрии может быть самым большим расстоянием между соседними лучами из набора расстояний между соседними лучами, определенных для данной точки данных. Далее описывается то, как электронное устройство 210 может быть выполнено с возможностью определять это пороговое значение на основе геометрии.
[172] Предполагается, что электронное устройство 210 может быть выполнено с возможностью определять множество начальных пар (начальных соответствий) между двумя облаками трехмерных точек, а затем может быть выполнено с возможностью использовать, по меньшей мере, одно расстояние между соседними лучами для соответствующих начальных пар, чтобы определять уменьшенное множество пар между двумя облаками трехмерных точек. Например, электронное устройство 210 может быть выполнено с возможностью определять:
,
где M является уменьшенным множеством пар, является множеством начальных пар (до отклонения, по меньшей мере, некоторых начальных пар), является данной начальной парой из множества начальных пар, является данной первой точкой данных из первого облака трехмерных точек и находится в данной начальной паре , и является данной второй точкой данных из второго облака трехмерных точек и находится в данной начальной паре .
[173] Следует отметить, что IsInlier может представлять собой реализованную посредством компьютера процедуру, выполняемую посредством электронного устройства 210, и использует пороговое значение на основе геометрии для определения того, должна или нет данная начальная пара рассматриваться как "невыброс" и в силу этого должна включаться в уменьшенное множество пар, либо того, должна или нет данная начальная пара рассматриваться как "выброс" и в силу этого должна исключаться из уменьшенного множества пар. Следовательно, можно сказать, что IsInlier, в некотором смысле, представляет собой реализованный посредством компьютера "тест", который электронное устройство 210 может использовать для определения уменьшенного множества пар. Следует отметить, что IsInlier-тест описывается подробнее в приложениях A и B.
[174] Чтобы лучше иллюстрировать IsInlier-тест, следует отметить, что данная одна из множества начальных пар характеризуется посредством следующего:
,
где является евклидовым расстоянием между точками данных в данной начальной паре. Предполагается, что расстояние "точка-точка" между точками данных в данной начальной паре может соответствовать евклидову расстоянию между этими точками данных.
[175] В связи с этим, можно сказать, что IsInlier-тест придерживается следующей логики:
,
где данное d(pk,pl), или вкратце dk,l, является данным расстоянием между соседними лучами для первой данной точки pk данных из данной начальной пары . Другими словами, уравнение (9) означает то, что цель IsInlier-теста, выполняемого посредством электронного устройства 210, состоит в том, чтобы сравнивать (i) евклидово расстояние между начальной парой точек данных с верхним пределом числа расстояний между соседними лучами для первой точки pk данных. Другими словами, цель IsInlier-теста, выполняемого посредством электронного устройства 210, состоит в том, чтобы сравнивать (i) расстояние "точка-точка" между начальной парой точек данных с самым большим из определенного числа расстояний между соседними лучами для первой точки pk данных.
[176] Чтобы лучше иллюстрировать это, далее следует обратиться к фиг. 5, иллюстрирующему процедуру 500 для определения порогового значения на основе геометрии (например, самого большого из определенного числа расстояний между соседними лучами) для данной первой точки данных из данной начальной пары. Как видно на чертеже 5, допустим, что первая точка 512 данных соответствует первой точке данных. Как описано выше, также допустим, что в ходе модифицированного этапа согласования, электронное устройство 210 спаривает первую точку 512 данных с данной второй точкой данных из другого облака трехмерных точек, и что евклидово расстояние (расстояние "точка-точка") между этой начальной парой точек и данных является таким, как задано посредством уравнения (8).
[177] В связи с этим, электронное устройство 210 может быть выполнено с возможностью определять пороговое значение на основе геометрии для первой точки 512 данных для выполнения IsInlier-теста для начальной пары точек и данных. С этой целью, электронное устройство 210 может быть выполнено с возможностью идентифицировать соседние точки данных (также упоминаемые в данном документе как "соседние точки данных" или "соседние узлы") из первого облака трехмерных точек относительно первой точки 512 данных.
[178] Как проиллюстрировано на фиг. 5, эти соседние точки данных являются первыми точками 522, 532, 542 и 552 данных. Таким образом, можно сказать, что первая данная точка 512 (pk) данных может иметь четыре соседних узла, обозначаемые как pl, где l∈{0…3}. Другими словами, соседние точки данных включают в себя первую точку 522 (pl=0) данных, первую точку 532 (pl=1) данных, первую точку 542 (pl=2) данных и первую точку 552 (pl=3) данных.
[179] Следует отметить, что эти соседние точки 522, 532, 542 и 552 данных формируются посредством лазеров вращательной лидарной системы, которые являются вертикально смежными с лазером, формирующим первую данную точку 512 (pk) данных. Например, соседние точки 522 и 532 данных регистрируются через первый данный лазер, который формирует лучи 520 и 530, первая точка 512 (pk) данных регистрируется через второй данный лазер, который формирует луч 510, и соседние точки 542 и 552 данных регистрируются через третий данный лазер, который формирует лучи 550.
[180] Традиционно, следует отметить, что для вращательных лидарных систем, уровень каждого лазера вращательной лидарной системы называется "кольцом", так что если pk является частью кольца rj, соседние точки pl, где l∈{0…3} данных находятся на смежных кольцах rj-1 и rj+1. Другими словами, первый данный лазер соответствует кольцу 580, второй данный лазер соответствует кольцу 581, и третий данный лазер соответствует кольцу 582.
[181] Кроме того, следует отметить, что (i) "левые" соседние точки 522 (pl=0) и 552 (pl=3) данных захватываются при предыдущем приращении лидарного азимутального вращения, (ii) первая точка 512 (pk) данных захватывается при текущем приращении лидарного азимутального вращения, и (iii) "правые" соседние точки 532 (pl=1) и 542 (pl=2) данных захватываются при следующем приращении лидарного азимутального вращения.
[182] Следует отметить, что электронное устройство 210 может быть выполнено с возможностью получать угловые расстояния между первой точкой 512 (pk) данных и каждой из соседних точек 522, 532, 542 и 552 данных. Например, для калиброванной вращательной лидарной системы, электронное устройство 210 может быть выполнено с возможностью получать параметры калибровки, такие как: ϕ, представляющее собой угловое приращение азимутального вращения лидарной системы, и и , представляющие собой угловые расстояния с шагом между кольцами (от кольца 581 до кольца 580 и от кольца 581 до кольца 582, соответственно).
[183] Можно сказать, что первая точка 512 (pk) данных и соседние узлы 522, 532, 542 и 552 (pl, где l∈{0…3}) могут представляться на сегменте единичной сферы. Другими словами, первая точка 512 (pk) данных и соседние точки 522, 532, 542 и 552 данных задают сегмент единичной сферы. Этот сегмент может аппроксимироваться посредством плоскости 502 на фиг. 5, в свою очередь при условии параллельных соседних лучей. Следует отметить, что такая аппроксимация допускает то, что вертикально смежные лазерные лучи 510, 520, 530 и 550 являются параллельными. Разработчики настоящей технологии выяснили, что такое допущение допустимо для параметров калибровки, составляющих около нулевых значений, к примеру, для и .
[184] Следует отметить, что диагональный вектор pk,l между первой точкой 512 (pk) данных и данным соседним узлом pl на плоскости 502 задается следующим образом:
,
где u и v являются унитарными векторами, и где u совмещается на плоскости 502 с направлением азимутального вращения лидарной системы, и где v является перпендикулярным u и совмещается на плоскости 502 с вертикальным направлением. Другими словами, u и v задают оси абсцисс и ординат рамки координат pk,l. Дополнительная информация относительно того, как электронное устройство 210 может быть выполнено с возможностью определять векторы u и v, описывается подробнее в приложениях A и B.
[185] Например, электронное устройство 210 может быть выполнено с возможностью определять, посредством использования уравнения 10, (i) для соседней точки 522 данных (pl=0) соответствующий диагональный вектор 540 (pk,l=0), (ii) для соседней точки 522 данных (pl=3) соответствующий диагональный вектор 541 (pk,l=3) и т.д. Следует отметить, что диагональные векторы (pk,l=1 и pk,l=2) для соседней точки 532 (pl=1) данных и для соседней точки 542 (pl=2) данных, соответственно, не иллюстрируются на фиг. 5 только для простоты иллюстрации.
[186] После того как диагональный вектор pk,l для данной соседней точки pl данных определяется посредством электронного устройства 210, электронное устройство 210 может определять расстояние dk,l между соседними лучами между (i) первой точкой 512 pk данных и (ii) соответствующей соседней точкой pl данных через следующее:
,
где dk,l является проецированием соответствующего диагонального вектора pk,l на отражающую поверхность 504, которое является ортогональным к нормали nk вдоль направления пролета лазерного луча. Следует отметить, что электронное устройство 210 может быть выполнено с возможностью использовать информацию относительно нормального вектора, ассоциированного с первой точкой 512 pk данных, и/или данного нормального вектора, ассоциированного с любой из соседних точек данных, в качестве нормали nk в уравнении (12).
[187] Другими словами, электронное устройство 210 может быть выполнено с возможностью определять, через уравнение (12), число расстояний между соседними лучами для первой точки 512 pk данных, которые включают в себя: (i) расстояние 528 между соседними лучами для соседней точки 522 pl=0 данных, (i) расстояние 558 между соседними лучами для соседней точки 522 pl=3 данных и т.д. Следует отметить, что расстояния и между соседними лучами не иллюстрируются на фиг. 5 только для простоты иллюстрации.
[188] Электронное устройство 210 затем может быть выполнено с возможностью идентифицировать наибольшее из четырех расстояний , и между соседними лучами в качестве из уравнения (9). Другими словами, электронное устройство 210 может быть выполнено с возможностью идентифицировать наибольшее из четырех расстояний , и между соседними лучами в качестве порогового значения на основе геометрии для первой точки 512 pk данных.
[189] Затем электронное устройство 210 может использовать уравнение (9) для определения того, выше или ниже расстояние "точка-точка" между первой точкой 512 данных и данной второй точкой данных геометрического порогового значения для первой точки 512 pk данных.
[190] Следует отметить, что, по меньшей мере, некоторые аспекты настоящей технологии поясняются подробнее в приложениях A и B настоящего описания изобретения.
Отклонение пар точек данных посредством использования GCR
[191] Чтобы лучше иллюстрировать это, допустим, что (расстояние "точка-точка" между данной начальной парой точек данных) ниже геометрического порогового значения для первой точки 512 pk данных (наибольшего из четырех расстояний , и между соседними лучами). В таком случае, электронное устройство 210 может быть выполнено с возможностью сохранять данную начальную пару точек данных для последующей обработки.
[192] Теперь допустим, что (расстояние "точка-точка" между данной начальной парой точек данных) выше порогового значения на основе геометрии для первой точки 512 pk данных (наибольшего из четырех расстояний , и между соседними лучами). В таком случае, электронное устройство 210 может определять то, что расстояние "точка-точка" между данной начальной парой точек данных является слишком большим, и в силу этого электронное устройство 210 может быть выполнено с возможностью исключать данную начальную пару точек данных из последующей обработки.
[193] В некоторых вариантах осуществления настоящей технологии электронное устройство 210 может быть выполнено с возможностью осуществлять способ 600 обработки данных лидарных датчиков, как проиллюстрировано на фиг. 6. В других вариантах осуществления электронное устройство 210 может быть выполнено с возможностью осуществлять способ 700 обработки данных лидарных датчиков, как проиллюстрировано на фиг. 7. Далее поочередно поясняется то, как электронное устройство 210 может быть выполнено с возможностью осуществлять способы 600 и способы 700.
Этап 602 - прием из лидарного датчика первого набора данных, имеющего множество первых точек данных
[194] Способ 600 начинается на этапе 602 за счет выполнения электронного устройства 210 с возможностью принимать первый набор данных из лидарного датчика, который имеет множество первых точек данных. Например, первый набор данных может включать в себя первое захваченное облако трехмерных точек, как упомянуто выше. Следует отметить, что этот первый набор данных захватывается посредством лидарного датчика, и он может смещаться посредством ошибки измерения непосредственно лидарного датчика.
[195] Также следует отметить, что данная первая точка данных из множества первых точек данных представляет соответствующие пространственные координаты в трехмерном пространстве. Данная первая точка данных также ассоциирована с соответствующим нормальным вектором из множества нормальных векторов. Например, соответствующая одна из множества первых точек данных может быть ассоциирована с соответствующим одним из множества нормальных векторов.
[196] Предполагается, что лидарный датчик может монтироваться на беспилотном автомобиле (SDC), таком как, например, транспортное средство 220, проиллюстрированное на фиг. 2.
Этап 604 - определение, посредством электронного устройства, параметра неопределенности для данной первой точки данных на основе нормальной ковариации нормального вектора данной первой точки данных, которая учитывает ошибку измерения лидарного датчика при определении соответствующих координат данной первой точки данных.
[197] Способ 600 переходит к этапу 604 за счет выполнения электронного устройства 210 с возможностью определять параметр неопределенности для данной первой точки данных на основе нормальной ковариации нормального вектора данной первой точки данных, причем эта нормальная ковариация учитывает ошибку измерения лидарного датчика при определении соответствующих пространственных координат данной первой точки данных.
[198] Предполагается, что параметр неопределенности для данной первой точки данных может соответствовать значению C2,2 для данной первой точки данных и может получаться через вышеприведенное уравнение (5).
[199] Следует отметить, что для того, чтобы определять значение C2,2, электронное устройство 210 может быть выполнено с возможностью оценивать (например, ковариацию нормального вектора 406) посредством распространения технологии неопределенности, обобщенно представленной в уравнениях (3) и (4) Следует отметить, что оценка зависит от ошибки измерения лидарной системы во время определения пространственных координат захваченных точек данных (см. уравнение (4)). После того как электронное устройство 210 оценивает , электронное устройство 210 может быть выполнено с возможностью совмещать его с нормальным вектором V2: т.е. электронное устройство 210 выполнено с возможностью выполнять этап совмещения для , как задано в уравнении (5). Результат этапа совмещения, выполняемого посредством электронного устройства 210, дает в результате матрицу C, которая является ковариацией V2 в нормально-совмещенной системе координат (например, в системе координат, заданной посредством V0, V1 и V2). Электронное устройство 210 затем может быть выполнено с возможностью идентифицировать значение C2,2 из матрицы C в качестве параметра неопределенности для данной первой точки данных.
[200] В некоторых вариантах осуществления электронное устройство 210 может быть выполнено с возможностью определять нормальную ковариацию нормального вектора данной первой точки данных с учетом неопределенности в соответствующих координатах данной первой точки данных. Предполагается, что неопределенность может аппроксимироваться в качестве случайной гауссовой переменной. Дополнительно предполагается, что ошибка измерения лидарного датчика может аппроксимироваться посредством сферы со среднеквадратическим отклонением (см. уравнение (4)).
Этап 606 - в ответ на параметр неопределенности, составляющий выше предварительно определенного порогового значения, исключение данной первой точки данных из множества первых точек данных
[201] Способ 600 переходит к этапу 606 за счет выполнения электронного устройства 210 с возможностью, в ответ на параметр неопределенности для данной первой точки данных, составляющий выше предварительно определенного порогового значения, исключать данную первую точку данных из множества первых точек данных.
[202] Например, предварительно определенное пороговое значение может соответствовать пороговому значению cT из уравнения (7). Следует отметить, что, если параметр неопределенности (например, C2,2) для данной первой точки данных выше порогового значения cT, электронное устройство 210 может быть выполнено с возможностью исключать данную первую точку данных из последующей обработки во время ICP-алгоритма.
[203] Следовательно, посредством выполнения этапа 608, электронное устройство 210 может быть выполнено с возможностью определять фильтрованное множество первых точек данных на основе первого множества точек данных. Можно также сказать, что электронное устройство 210 в силу этого выполнено с возможностью определять первое фильтрованное облако трехмерных точек на основе первого захваченного облака трехмерных точек.
Этап 608 - использование фильтрованного множества первых точек данных, вместо множества первых точек данных, для слияния первого набора данных лидарного датчика со вторым набором данных лидарного датчика
[204] Способ 600 переходит к этапу 608 за счет выполнения электронного устройства 210 с возможностью использовать фильтрованное множество первых точек данных (определенное в ходе этапа 606), вместо множества первых точек данных (принимаемых в ходе этапа 602), для слияния первого набора данных лидарного датчика со вторым набором данных лидарного датчика.
[205] В некоторых вариантах осуществления предполагается, что электронное устройство 210 может быть выполнено с возможностью использовать фильтрованное множество первых точек данных, вместо множества первых точек данных, в ходе этапа согласования ICP-алгоритма. Например, электронное устройство может быть выполнено с возможностью оценивать правило преобразования между первым набором данных и вторым набором данных в ICP-алгоритме на основе первого фильтрованного множества первых точек данных. Предполагается, что правило преобразования может заключаться в выводе ICP-алгоритма.
[206] Помимо этого, в некоторых вариантах осуществления настоящей технологии электронное устройство 210 также может использовать объединенные первый и второй наборы данных для управления работой SDC.
[207] Как упомянуто выше, электронное устройство 210 может быть выполнено с возможностью осуществлять способ 700, который подробнее описывается далее.
Этап 702 - прием из лидарного датчика индикатора данных лидарных датчиков, включающих в себя первый набор данных, имеющий множество первых точек данных, и второй набор данных, имеющий множество вторых точек данных
[208] Способ 700 начинается на этапе 702 за счет выполнения электронного устройства 210 с возможностью принимать, из лидарного датчика, индикатор данных лидарных датчиков, включающих в себя первый набор данных, имеющий множество первых точек данных, и второй набор данных, имеющий множество вторых точек данных.
[209] Следует отметить, что каждая из множества первых точек данных и каждая из множества вторых точек данных представляет соответствующие пространственные координаты в трехмерном пространстве и ассоциирована с соответствующим нормальным вектором из множества нормальных векторов.
[210] Следует отметить, что первый набор данных и второй набор данных (например, включающие в себя первое облако трехмерных точек и второе облако трехмерных точек), возможно, захвачены в ходе фаз последовательного сканирования лидарного датчика.
Этап 704 - согласование, по меньшей мере, части множества первых точек данных, по меньшей мере, с частью множества вторых точек данных, за счет этого определяя множество пар
[211] Способ 700 переходит к этапу 704 за счет выполнения электронного устройства 210 с возможностью согласовывать, по меньшей мере, часть множества первых точек данных, по меньшей мере, с частью множества вторых точек данных, за счет этого определяя множество пар.
[212] Например, посредством выполнения этого согласования, электронное устройство 210 может быть выполнено с возможностью определять множество начальных пар, как упомянуто выше. Это означает то, что электронное устройство 210 может быть выполнено с возможностью определять , как задано в уравнении (7), где является множеством начальных пар (до отклонения, по меньшей мере, некоторых начальных пар).
[213] Следует отметить, что данная одна из множества этих начальных пар включает в себя (i) данную первую точку данных и (ii) данную вторую точку данных, и причем данная первая точка данных и данные вторые точки данных отделяются посредством фактического расстояния "точка-точка". Например, данная одна из множества этих начальных пар может задаваться как , что представляет данную начальную пару из множества начальных пар. Данная начальная пара включает в себя (i) данную одну из первого множества точек данных из первого облака трехмерных точек и (ii) соответствующую одну из множества вторых точек данных из второго облака трехмерных точек. В этом примере, фактическое расстояние "точка-точка" между и может задаваться как евклидово расстояние между ними (см. уравнение (8)). Следовательно, предполагается, что фактическое расстояние "точка-точка" может быть евклидовым расстоянием между соответствующей начальной парой точек данных в трехмерном пространстве.
[214] Следует отметить, что электронное устройство 210 может быть выполнено с возможностью выполнять такое согласование множеством способов. Например, электронное устройство 210 может быть выполнено с возможностью выполнять согласование другим способом для данной заявки.
Этап 706 - для данной одной из множества пар, определение конкретного для пары параметра фильтрации
[215] Способ 700 переходит к этапу 706 за счет выполнения электронного устройства 210 с возможностью определения конкретного для пары параметра фильтрации для данной одной из множества (начальных) пар, которые определяются в ходе этапа 704.
[216] Например, электронное устройство 210 может быть выполнено с возможностью определять конкретный для пары параметр фильтрации как положительный для данной начальной пары точек данных, если расстояние "точка-точка" (например, евклидово расстояние между начальной парой точек данных) выше порогового значения на основе геометрии для данной начальной пары точек данных.
[217] Предполагается, что электронное устройство 210 может быть выполнено с возможностью определять конкретный для пары параметр фильтрации посредством задания/идентификации, для данной второй точки данных в данной начальной паре, набора соседних точек данных (например, см. первые точки 522, 532, 542 и 552 данных на фиг. 5). Например, этот набор соседних точек ассоциирован с поднабором лазеров из множества лазеров, вертикально смежных с данным лазером, который способствует формированию данной первой точки данных из данной начальной пары. Как пояснено выше, этот поднабор лазеров способствует формированию набора соседних точек данных.
[218] По меньшей мере, в некоторых вариантах осуществления настоящей технологии набор соседних точек данных может содержать четыре соседних точки данных. Например, как проиллюстрировано на фиг. 5, четыре соседних точки данных могут содержать две точки данных вертикально выше данной первой точки данных и две точки данных вертикально ниже данной первой точки данных (например, расположенные на верхнем кольце и на нижнем кольце относительно кольца данной второй точки данных, соответственно).
[219] В некоторых вариантах осуществления предполагается, что данная первая точка данных и набор соседних точек задают сегмент единичной сферы. Также предполагается, что плоскость аппроксимации, сформированная посредством электронного устройства 210, может быть основана на таком допущении, что лазерные лучи, сформированные посредством множества лазеров, являются параллельными.
[220] Как пояснено выше, можно сказать, что первая точка 512 (pk) данных и соседние точки 522, 532, 542 и 552 (pl, где l∈{0…3}) данных могут представляться на сегменте единичной сферы. Другими словами, первая точка 512 (pk) данных и соседние точки 522, 532, 542 и 552 данных задают сегмент единичной сферы. Этот сегмент может аппроксимироваться посредством плоскости 502 на фиг. 5, в свою очередь при условии параллельных соседних лучей. Следует отметить, что такая аппроксимация допускает то, что вертикально смежные лазерные лучи 510, 520, 530 и 550 являются параллельными. Разработчики настоящей технологии выяснили, что такое допущение допустимо для параметров калибровки, составляющих около нулевых значений, к примеру, для и .
[221] Предполагается, что электронное устройство 210 может быть выполнено с возможностью вычислять расстояния между соседними лучами между данной первой точкой 512 данных и соответствующей одной из набора соседних точек 522, 532, 542 и 552. Данное расстояние dk,l между соседними лучами представляет линейное расстояние между данной первой точкой 512 данных и соответствующей одной из набора соседних точек (pl).
[222] Предполагается, что для того, чтобы вычислять вычисление расстояний между соседними лучами, электронное устройство 210 может быть выполнено с возможностью формировать (i) данный диагональный вектор pk,l между данной первой точкой 512 pk данных и соответствующей одной из набора соседних точек pl в первой системе координат (унитарные векторы u и v) и (ii) вычислять соответствующее расстояние dk,l между соседними лучами посредством проецирования данного диагонального вектора pk,l на отражающую поверхность 504, ортогональную к направлению лазерного тракта.
[223] Например, электронное устройство 210 может быть выполнено с возможностью вычислять расстояния , и между соседними лучами через уравнение (12).
[224] Дополнительно предполагается, что электронное устройство 210 может вычислять расстояния между соседними лучами между данной первой точкой 512 данных и набором соседних точек на основе углового приращения азимутального вращения и угловых расстояний с шагом между вертикально разнесенными лазерами (например, ϕ и θ).
[225] Затем предполагается, что электронное устройство 210 может быть выполнено с возможностью идентифицировать наибольшее расстояние между соседними лучами из всех расстояний между соседними лучами (в этом случае, из , и ). Затем предполагается, что электронное устройство 210 может быть выполнено с возможностью определять, в ответ на фактическое расстояние "точка-точка", составляющее выше наибольшего расстояния между соседними лучами, то, что конкретный для пары параметр фильтрации должен быть положительным.
Этап 708 - в ответ на положительный конкретный для пары параметр, исключение данной одной из множества пар из последующей обработки
[226] Способ 700 переходит к этапу 708 за счет выполнения электронного устройства 210 с возможностью отбрасывать/исключать данную одну из множества (начальных) пар (в вышеприведенных примерах начальную пару, включающую в себя и ) из последующей обработки. Электронное устройство 210 в силу этого выполнено с возможностью задавать уменьшенное множество пар (например, с исключением, по меньшей мере, начальной пары и ).
Этап 710 - обработка сокращенного поднабора пар для слияния первого набора данных и второго набора данных
[227] Способ 700 переходит к этапу 710 за счет выполнения электронного устройства 210 с возможностью обрабатывать уменьшенное множество пар для слияния первого набора данных и второго набора данных.
[228] В некоторых вариантах осуществления электронное устройство 210 может быть выполнено с возможностью (в качестве части обработки уменьшенного множества пар) оценивать правило преобразования между первым набором данных и вторым набором данных. Например, правило преобразования может заключаться в выводе ICP-алгоритма, выполняемого посредством электронного устройства.
[229] Помимо этого, электронное устройство 210 может быть выполнено с возможностью использовать объединенные первый и второй наборы данных для управления работой транспортного средства 220.
[230] Модификации и улучшения вышеописанных реализаций настоящей технологии могут становиться очевидными для специалистов в данной области техники. Вышеприведенное описание должно быть примерным, а не ограничивающим. В силу этого объем настоящей технологии имеет намерение быть ограниченным исключительно посредством объема прилагаемой формулы изобретения.
Использование: изобретение относится к реализованной посредством компьютера обработке данных, а более конкретно к способам и системам для обработки данных лидарных (LIDAR) датчиков. Сущность: способ включает в себя (i) прием из лидарного датчика первого набора данных, имеющего множество первых точек данных, представляющих соответствующие координаты и ассоциированных с соответствующими нормальными векторами, (ii) определение параметра неопределенности для данной первой точки данных на основе нормальной ковариации нормального вектора данной первой точки данных, причем нормальная ковариация учитывает ошибку измерения лидарного датчика при определении соответствующих координат данной первой точки данных, (iii) в ответ на параметр неопределенности, составляющий выше предварительно определенного порогового значения, исключение данной первой точки данных из множества первых точек данных, (iv) использование фильтрованного множества первых точек данных вместо множества первых точек данных, для слияния первого набора данных лидарного датчика со вторым набором данных лидарного датчика. Технический результат: повышение уровня точности для сходимости ICP-алгоритма, улучшение этапа фильтрации, снижение искажения объектов во всестороннем представлении сцены. 2 н. и 18 з.п. ф-лы, 7 ил.
1. Реализованный посредством компьютера способ обработки данных лидарных (LIDAR) датчиков, причем способ осуществляется посредством электронного устройства, функционально соединенного с лидарным датчиком, при этом способ содержит этапы, на которых:
- принимают, посредством электронного устройства из лидарного датчика, первый набор данных, имеющий множество первых точек данных,
причем данная первая точка данных из множества первых точек данных (i) представляет соответствующие координаты в трехмерном пространстве и (ii) ассоциирована с соответствующим нормальным вектором из множества нормальных векторов;
- определяют, посредством электронного устройства, параметр неопределенности для данной первой точки данных на основе:
нормальной ковариации нормального вектора данной первой точки данных,
причем нормальная ковариация учитывает ошибку измерения лидарного датчика при определении соответствующих координат данной первой точки данных, причем ошибка измерения лидарного датчика влияет на вычисление нормального вектора;
- в ответ на параметр неопределенности, составляющий выше предварительно определенного порогового значения, исключают, посредством электронного устройства, данную первую точку данных из множества первых точек данных,
за счет этого определяя фильтрованное множество первых точек данных; и
- используют, посредством электронного устройства, фильтрованное множество первых точек данных, вместо множества первых точек данных, для слияния первого набора данных лидарного датчика со вторым набором данных лидарного датчика.
2. Способ по п. 1, при этом способ дополнительно содержит этапы, на которых:
- принимают, посредством электронного устройства из лидарного датчика, второй набор данных, имеющий множество вторых точек данных,
причем данная вторая точка данных из множества вторых точек данных (i) представляет соответствующие координаты в трехмерном пространстве и (ii) ассоциирована с соответствующим нормальным вектором из другого множества нормальных векторов;
- определяют, посредством электронного устройства, другой параметр неопределенности для данной второй точки данных на основе:
нормальной ковариации нормального вектора данной второй точки данных,
причем нормальная ковариация учитывает ошибку измерения лидарного датчика при определении соответствующих координат данной второй точки данных, причем ошибка измерения лидарного датчика влияет на вычисление нормального вектора данной второй точки данных;
- в ответ на другой параметр неопределенности, составляющий выше предварительно определенного порогового значения, исключают, посредством электронного устройства, данную вторую точку данных из множества вторых точек данных,
за счет этого определяя фильтрованное множество вторых точек данных; и
- используют, посредством электронного устройства, фильтрованное множество вторых точек данных вместо множества вторых точек данных, для слияния первого набора данных лидарного датчика со вторым набором данных лидарного датчика.
3. Способ по п. 1, при этом способ дополнительно содержит этап, на котором:
- определяют, посредством электронного устройства, нормальную ковариацию нормального вектора данной первой точки данных с учетом неопределенности в соответствующих координатах данной первой точки данных.
4. Способ по п. 3, в котором неопределенность аппроксимируется в качестве случайной гауссовой переменной.
5. Способ по п. 1, в котором ошибка измерения лидарного датчика аппроксимируется посредством сферы со среднеквадратическим отклонением.
6. Способ по п. 1, в котором использование фильтрованного множества первых точек данных содержит этап, на котором используют, посредством электронного устройства, фильтрованное множество первых точек данных вместо множества первых точек данных в ходе этапа согласования ICP-алгоритма.
7. Способ по п. 6, в котором использование фильтрованного множества первых точек данных содержит этап, на котором:
- оценивают, посредством электронного устройства, правило преобразования между первым набором данных и вторым набором данных.
8. Способ по п. 7, в котором правило преобразования заключается в выводе ICP-алгоритма.
9. Способ по п. 1, в котором лидарный датчик смонтирован на беспилотный автомобиль (SDC).
10. Способ по п. 9, при этом способ дополнительно содержит этап, на котором:
- используют, посредством электронного устройства, объединенные первый и второй наборы данных для управления работой SDC.
11. Электронное устройство для обработки данных лидарных (LIDAR) датчиков, причем электронное устройство функционально соединено с лидарным датчиком, причем электронное устройство выполнено с возможностью:
- принимать, из лидарного датчика, первый набор данных, имеющий множество первых точек данных,
причем данная первая точка данных из множества первых точек данных (i) представляет соответствующие координаты в трехмерном пространстве и (ii) ассоциирована с соответствующим нормальным вектором из множества нормальных векторов;
- определять, посредством электронного устройства, параметр неопределенности для данной первой точки данных на основе:
нормальной ковариации нормального вектора данной первой точки данных,
причем нормальная ковариация учитывает ошибку измерения лидарного датчика при определении соответствующих координат данной первой точки данных, причем ошибка измерения лидарного датчика влияет на вычисление нормального вектора;
- в ответ на параметр неопределенности, составляющий выше предварительно определенного порогового значения, исключать данную первую точку данных из множества первых точек данных,
за счет этого определяя фильтрованное множество первых точек данных; и
- использовать фильтрованное множество первых точек данных вместо множества первых точек данных, для слияния первого набора данных лидарного датчика со вторым набором данных лидарного датчика.
12. Электронное устройство по п. 11, при этом электронное устройство дополнительно выполнено с возможностью:
- принимать, из лидарного датчика, второй набор данных, имеющий множество вторых точек данных,
причем данная вторая точка данных из множества вторых точек данных (i) представляет соответствующие координаты в трехмерном пространстве и (ii) ассоциирована с соответствующим нормальным вектором из другого множества нормальных векторов,
- определять, посредством электронного устройства, другой параметр неопределенности для данной второй точки данных на основе:
нормальной ковариации нормального вектора данной второй точки данных,
причем нормальная ковариация учитывает ошибку измерения лидарного датчика при определении соответствующих координат данной второй точки данных, причем ошибка измерения лидарного датчика влияет на вычисление нормального вектора данной второй точки данных;
- в ответ на другой параметр неопределенности, составляющий выше предварительно определенного порогового значения, исключать данную вторую точку данных из множества вторых точек данных,
за счет этого определяя фильтрованное множество вторых точек данных; и
- использовать фильтрованное множество вторых точек данных вместо множества вторых точек данных, для слияния первого набора данных лидарного датчика со вторым набором данных лидарного датчика.
13. Электронное устройство по п. 11, при этом электронное устройство дополнительно выполнено с возможностью:
- определять нормальную ковариацию нормального вектора данной первой точки данных с учетом неопределенности в соответствующих координатах данной первой точки данных.
14. Электронное устройство по п. 13, в котором неопределенность аппроксимируется в качестве случайной гауссовой переменной.
15. Электронное устройство по п. 11, в котором ошибка измерения лидарного датчика аппроксимируется посредством сферы со среднеквадратическим отклонением.
16. Электронное устройство по п. 11, в котором использование фильтрованного множества первых точек данных содержит электронное устройство, выполненное с возможностью использовать фильтрованное множество первых точек данных вместо множества первых точек данных в ходе этапа согласования ICP-алгоритма.
17. Электронное устройство по п. 6, в котором использование фильтрованного множества первых точек данных содержит выполнение электронного устройства с возможностью:
- оценивать правило преобразования между первым набором данных и вторым набором данных.
18. Электронное устройство по п. 17, в котором правило преобразования заключается в выводе ICP-алгоритма.
19. Электронное устройство по п. 11, в котором лидарный датчик смонтирован на беспилотный автомобиль (SDC).
20. Электронное устройство по п. 19, при этом электронное устройство дополнительно выполнено с возможностью:
- использовать объединенные первый и второй наборы данных для управления работой SDC.
ЗДАНИЕ ДЛЯ КОМПЬЮТЕРНОГО ЦЕНТРА, ОБОРУДОВАННОЕ УСТРОЙСТВАМИ ДЛЯ ЭФФЕКТИВНОГО ОХЛАЖДЕНИЯ | 2009 |
|
RU2507560C2 |
Nick Schneider et al, RegNet: Multimodal sensor registration using deep neural networks | |||
Автомобиль-сани, движущиеся на полозьях посредством устанавливающихся по высоте колес с шинами | 1924 |
|
SU2017A1 |
Походная разборная печь для варки пищи и печения хлеба | 1920 |
|
SU11A1 |
Redondo Beach, CA, USA | |||
pp | |||
ПРОТЕЗ НИЖНЕЙ КОНЕЧНОСТИ | 1923 |
|
SU1803A1 |
US 20190072965 A1, 07.03.2019 | |||
WO 2018195999 A1, 01.11.2018 | |||
Способ создания трека пути движения для автономного движения подвижного объекта и способ осуществления автономного движения подвижного объекта по треку пути движения | 2018 |
|
RU2691679C1 |
СПОСОБ И СИСТЕМА ОБНАРУЖЕНИЯ И СОПРОВОЖДЕНИЯ ДВИЖУЩИХСЯ ОБЪЕКТОВ НА ОСНОВЕ ДАННЫХ ТРЕХМЕРНОГО ДАТЧИКА | 2016 |
|
RU2656711C2 |
Авторы
Даты
2022-01-19—Публикация
2020-01-20—Подача