СПОСОБ МОДЕЛИРОВАНИЯ ТРЕХМЕРНОГО ПРОСТРАНСТВА
THREE-DIMENSIONAL SPACE SIMULATION METHOD

Область техники, к которой относится изобретения
Настоящее изобретение относится к моделированию трехмерного пространства. Это изобретение, в частности, но не исключительно, имеет отношение к генерации или обновлению трехмерной модели трехмерного пространства с использованием, данных изображения от устройства захвата изображения.
Уровень техники
В области технического (компьютерного зрения) и робототехники часто бывает необходимо построить представление трехмерного пространства. Построение представления трехмерного пространства позволяет отобразить среду реального мира в виртуальную или цифровую область, где ее могут использовать и где могут манипулировать ею электронные устройства. Например, подвижному роботизированному устройству может потребоваться представление трехмерного пространства, чтобы позволить одновременное определение местонахождения и отображение и, таким образом, навигацию в этой среде. В качестве альтернативы, представление трехмерного пространства может позволить идентифицировать и/или выделить трехмерные модели объектов. Эти модели могут быть использованы для выполнения измерений в среде реального мира и/или использованы для создания трехмерных копий, например, с использованием аддитивной технологической системы (технология послойной печати). Аналогично, определение местонахождения частей человеческого тела в трехмерном пространстве может позволить реализовать новые виды человеко-машинного взаимодействия, создающие возможность манипулировать с виртуальными представлениями объектов с использованием действий в физическом мире.
Известны несколько способов построения представления трехмерного пространства. Например, способ определения структуры по отображению движения и многовидовое стерео – это два способа, которые могут быть использованы для такого представления. Множество способов позволяют выделить элементы из изображений трехмерного пространства, такие как углы и/или кромки, например с использованием алгоритма масштабно-инвариантной трансформации возможностей (Scale Invariant Feature Transforms (SIFT)) и/или алгоритма ускоренного обнаружения признаков (Speeded Up Robust Features (SURF)). Эти выделенные признаки могут быть затем коррелированы от одного изображения к другому для построения трехмерного представления. Некоторые способы, использующие уменьшенное число точек или признаков для генерации представления, называются здесь «разрешенными» способами. Например, эти способы могут использовать от десяти до ста признаков и/или точек для генерации представления. Они могут контрастировать с «плотными» способами, генерирующими представления с использованием многих тысяч или миллионов точек. «Разреженные» способы имеют то преимущество, что их легче осуществить в реальном времени, например, при частоте кадров 30 кадр/с или другой подобной частоте; использование ограниченного числа точек или признаков ограничивает объем обработки данных, необходимый для построения трехмерного представления. Соответственно, труднее осуществить «плотное» отображение трехмерного пространства в реальном времени из-за требований к объему вычислений. Например, часто бывает предпочтительно осуществлять «плотное» отображение трехмерного пространства в режиме «офлайн», например, может потребоваться 10 часов для генерации «плотного» представления на основе данных изображения, соответствующих 30 мин времени.
При генерации представления трехмерного пространства на основе данных от движущегося устройства захвата изображения имеют место проблемы определения позиции и ориентации устройства захвата изображения в пространстве и обработки непредсказуемого движения, например, расширенного «прерывистого» или «петлевого» движения. Например, результатом перемещения по неровной местности или в случае, когда устройство для захвата изображения держат в руке, могут быть частые изменения положения и ориентации устройства для захвата изображения, а также автономное роботизированное устройство может вновь вернуться в ранее «захваченные» места в трехмерном пространстве. Захват данных изображения может также происходить непрерывно во времени, что приводит к большим объемам захваченных данных. Все эти факторы представляют проблему для систем реального мира; многие способы приводят к успеху при ограниченном объеме данных изображения или жестко определенных траекториях захвата данных, но сталкиваются с большими трудностями при построении представления в реальном времени на основе данных от автономного роботизированного устройства или мобильного компьютерного устройства.
В статье «Real-time Large Scale Dense RGB-D SLAM with Volumetric Fusion by T. Whelan, M. Kaess, H. Johannsson, M.F. Fallon, J.J. Leonard and J.B. McDonald», опубликованной в Международном журнале исследований по робототехнике (International Journal of Robotics Research) в 2014 г., определено пространство в области объемных элементов изображения (вокселей (voxel)), где для построения объемной модели используются позиционный граф и облачные срезы. Дескрипторы SURF используются вместе с детектором цикла на основе набора слов для распознавания места.
Аналогично, в заявке WO2014/202258 способ отображения среды, когда генерируют позиционный граф, где каждый узел позиционного графа содержит соответствующий облачный срез.
Сущность изобретения
Согласно одному из аспектов настоящего изобретения предложено устройство для генерации модели трехмерного пространства, содержащее: интерфейс для получения изображения, конфигурированный для получения данных изображения, поступающих от устройства захвата изображения, эти данные изображения представляют результаты наблюдения, когда имеет место относительное перемещение между трехмерным пространством и устройством захвата изображения во времени; и механизм моделирования, конфигурированный для обработки данных изображения, полученных интерфейсом для получения изображения, и для вычисления трехмерной модели трехмерного пространства, где этот механизм моделирования содержит: сегментатор модели, конфигурированный для сегментации трехмерной модели и разбиения ее по меньшей мере на активную и неактивную части на основе по меньшей мере одного свойства модели, где указанный механизм моделирования конфигурирован для использования активных частей трехмерной модели с целью обновления этой модели во времени; и механизм совмещения, конфигурированный для выравнивания активных частей трехмерной модели с неактивными частями трехмерной модели во времени.
Механизм моделирования может быть конфигурирован для вычисления активного кадра модели на основе проекции от активных частей трехмерной модели с целью использования при обновлении трехмерной модели. Например, компонент отслеживания связи кадра с моделью может быть конфигурирован для сравнения активного кадра модели с продуцируемым кадром, получаемым на основе данных изображения, для определения выравнивания активных частей трехмерной модели с данными изображения. Этот компонент отслеживания связи кадра с моделью может быть далее конфигурирован для оценки позиции устройства захвата изображения путем сравнения указанного продуцируемого кадра в текущий момент времени с активным кадром модели в предшествующий момент времени, указанная позиция видеокамеры устройства захвата изображения представляет положение и ориентацию устройства захвата изображения в трехмерном пространстве.
В некоторых случаях механизм совмещения конфигурирован для вычисления неактивного кадра модели на основе проекции от неактивных участков трехмерной модели, определения деформации, выравнивающей активный кадр модели с этим неактивным кадром модели, и обновления трехмерной модели с использованием этой деформации.
Трехмерная модель может содержать модель элементов поверхности. В этом случае каждый элемент поверхности в составе указанной модели элементов поверхности может содержать по меньшей мере данные, определяющие положение рассматриваемого элемента поверхности в трехмерном пространстве, и данные, определяющие вектор нормали к этому элементу поверхности в трехмерном пространстве, где каждый такой элемент поверхности представляет двумерную область в трехмерном пространстве.
Механизм моделирования может быть конфигурирован для сохранения представлений трехмерной модели во времени. В этом случае механизм совмещения может быть конфигурирован для определения, совпадает ли представление трехмерной модели в некий конкретный момент времени с сохраненным представлением трехмерной модели для предшествующего момента времени, и в ответ на положительное определение выравнивает представление трехмерной модели в указанный конкретный момент времени с сохраненным представлением трехмерной модели для предшествующего момента времени. Этот механизм совмещения может также быть конфигурирован для использования графа деформации с целью выравнивания активных частей трехмерной модели с неактивными частями этой трехмерной модели, этот граф деформации вычисляют на основе момента времени инициализации для позиций в составе трехмерной модели, указанный граф деформации обозначает множество соседних точек позиций для конкретной позиции в трехмерном пространстве, которые должны быть использованы для модификации трехмерной модели в рассматриваемой конкретном положении в процессе выравнивания.
В одном из случаев указанное по меньшей мере одно свойство модели представляет собой момент времени генерации модели или момент времени обновления модели для некоего конкретного положения в трехмерной модели, где неактивные части указывают момент времени наблюдения в прошлом, который отличается от текущего момента времени наблюдения более чем на заданную величину.
Согласно второму аспекту настоящего изобретения предложен способ обновления модели трехмерного пространства, содержащий: получение трехмерной модели трехмерного пространства; сегментацию трехмерной модели для разбиения ее по меньшей мере на активные и неактивные части на основе по меньшей мере одного свойства модели; получение данных изображения, представляющих наблюдение трехмерного пространства после перемещения устройства захвата изображения относительно трехмерного пространства; обновление трехмерной модели на основе полученных данных изображения и активных частей трехмерной модели; и совмещение активных частей трехмерной модели с соответствующими неактивными частями этой трехмерной модели, где в процессе этого совмещения происходит выравнивание активных частей трехмерной модели, генерируемых после наблюдения области трехмерного пространства, с неактивными частями модели, генерируемыми после по меньшей мере одного предшествующего наблюдения этой области.
В одном случае процедура обновления трехмерной модели содержит оценку позиции устройства захвата изображения путем сравнения данных для продуцируемого кадра данных изображения с прогнозируемыми данными для кадра модели, этот кадр модели получают из активных частей трехмерной модели для трехмерного пространства. В этом случае процедура совмещения активных частей трехмерной модели с неактивной частью трехмерной модели может содержать определение прогнозируемых отображений трехмерной модели для активных и неактивных частей с использованием позиции устройства захвата изображения, и трансформацию активных частей таким образом, чтобы добиться выравнивания прогнозируемых отображений.
В некоторых примерах данные изображения содержат по меньшей мере данные глубины, указывающие расстояния от устройства захвата изображения до нескольких элементов изображения. В этом случае процедура оценки положения устройства захвата изображения содержит сравнение по меньшей мере данных глубины для продуцируемого кадра данных изображения с прогнозируемыми данными глубины для кадра модели. В этом или других примерах данные изображения могут также содержать по меньшей мере данные цвета для нескольких элементов изображения. В этом случае процедура оценки позиции устройства захвата изображения содержит сравнение по меньшей мере данных цвета для продуцируемого кадра данных изображения с прогнозируемыми данными цвета для кадра модели. В некоторых случаях данные изображения содержат по меньшей мере данные глубины и данные цвета для нескольких элементов изображения. Процедура оценки позиции устройства захвата изображения может далее содержать минимизацию функцию ошибки, где эта функция ошибки представляет собой функцию: геометрической погрешности, получаемой на основе сравнения данных глубины для продуцируемого кадра данных изображения с прогнозируемыми данными глубины для модели, и фотометрической погрешности, получаемой на основе сравнения данных цвета для продуцируемого кадра данных изображения с прогнозируемыми данными цвета для кадра модели.
В рассматриваемом способе процедура совмещения активных частей трехмерной модели с неактивными частями этой трехмерной модели может содержать выполнение совмещения в локальном контуре, если метрический показатель выравнивания между активными частями трехмерной модели для конкретного кадра и неактивными частями трехмерной модели для этого же кадра показывает, что величина несовмещения меньше заданной пороговой величины. Процедура обновления может также содержать сохранение представления трехмерной модели и осуществление совмещения в глобальном контуре, если текущее представление трехмерной модели согласуется с ранее сохраненным представлением трехмерной модели. В этих случаях представление трехмерной модели может представлять собой представление прогнозируемого кадра, а этот прогнозируемый кадр определяют на основе проекции от активных частей трехмерной модели. Процедура совмещения может содержать нежесткое деформирование активных частей трехмерной модели на основе геометрического выравнивания между прогнозируемыми данными кадра для активных и неактивных частей.
Как обсуждается выше, трехмерная модель может содержать модель элементов поверхности, а сегментация трехмерной модели может быть основана на одном или нескольких из следующих факторов: моменте времени генерации модели для некой конкретной позиции в составе трехмерной модели, моменте времени обновления модели для некой конкретной позиции в составе трехмерной модели и найденном расстоянии между рассматриваемой конкретной позицией в составе трехмерной модели и устройством захвата изображения.
Согласно третьему аспекту настоящего изобретения предложено роботизированное устройство, содержащее: по меньшей мере одно устройство захвата изображения, построенное для формирования нескольких кадров, содержащих данные глубины и/или данные цвета, эти данные глубины указывают расстояние от устройства захвата изображения для нескольких элементов изображения; аппаратура в соответствии с одним или несколькими примерами, представленными выше, где интерфейс для получения изображения соединен для осуществления связи с указанным по меньшей мере одним устройством захвата изображения; один или несколько механических приводов для перемещения роботизированного устройства в трехмерном пространстве; и навигационный механизм, построенный для управления одним или несколькими механическими приводами, где этот навигационный механизм конфигурирован для доступа к трехмерной модели, генерируемой механизмом моделирования, с целью навигации роботизированного устройства в трехмерном пространстве.
Согласно четвертому аспекту настоящего изобретения предложено мобильное компьютерное устройство, содержащее: по меньшей мере одно устройство захвата изображения, построенное для регистрации нескольких кадров, содержащих данные глубины и/или данные цвета, эти данные глубины указывают расстояние от устройства захвата изображения до нескольких элементов изображения, и аппаратуру из какого-либо из представленных выше примеров, где интерфейс для получения изображения соединен для осуществления связи по меньшей мере с одним устройством захвата изображения.
Согласно пятому аспекту настоящего изобретения предложен энергонезависимый компьютерный носитель информации с записанными на нем командами, при выполнении которых процессором компьютерное устройство осуществляет способ генерации модели трехмерного пространства, этот способ содержит: получение данных изображения, имеющих в составе несколько кадров, где каждый кадр содержит данные глубины и данные цвета, так что данные глубины указывают расстояние до объекта в трехмерном пространстве от формирователя сигналов изображения, используемого для захвата данных изображения; и вычисление модели трехмерного пространства на основе данных изображения, модель содержит несколько элементов, каждый элемент имеет некоторое положение в трехмерном пространстве, где процедура вычисления содержит: сегментацию модели на активные и неактивные части на основе по меньшей мере одного наблюдаемого параметра для каждой части; для любого конкретного кадра в составе данных изображения: определение оцениваемой позиции формирователя сигналов изображения путем сравнения данных глубины и данных цвета для рассматриваемого конкретного кадра с прогнозируемыми данными глубины и цвета для кадра модели, полученного из активных частей модели; обновление прогнозируемых данных глубины и цвета для этого кадра модели с использованием указанной оценки позиции формирователя сигналов изображения; выравнивание активных частей модели с неактивными частями модели посредством трансформации элементов, ассоциированных по меньшей мере с активными и/или неактивными частями модели; и обновление выровненных активных частей модели с использованием данных глубины и данных цвета для рассматриваемого конкретного кадра. Энергонезависимый компьютерный носитель информации содержит компьютерные команды, при выполнении которых процессором компьютерное устройство осуществляет какой-либо из способов, обсуждаемых выше.
Другие признаки и преимущества настоящего изобретения станут очевидны из последующего описания предпочтительных вариантов изобретения, составленного на основе примеров, подготовленных со ссылками на прилагаемые чертежи.
Краткое описание чертежей
Фиг. 1A представляет упрощенную схему, показывающую первый пример трехмерного пространства;
фиг. 1B представляет упрощенную схему, показывающую второй пример трехмерного пространства;
фиг. 1C представляет упрощенную схему, показывающую имеющиеся степени свободы для примера устройства захвата изображения;
фиг. 2A – 2C представляет упрощенные схемы, показывающие примеры устройств захвата изображения;
фиг. 3 представляет упрощенную схему аппаратуры для генерации модели трехмерного пространства согласно одному из примеров;
фиг. 4 представляет упрощенную схему роботизированного устройства согласно одному из примеров;
фиг. 5 представляет упрощенную схему компонентов механизма моделирования согласно одному из примеров;
фиг. 6A представляет упрощенную схему, показывающую пример данных для трехмерной модели элементов поверхности;
фиг. 6B представляет упрощенную схему, показывающую атрибуты элемента поверхности согласно одному из примеров;
фиг. 7 представляет упрощенную схему, показывающую пример, использующий сохраненные представления и граф деформации;
фиг. 8 представляет логическую схему, показывающую способ обновления модели трехмерного пространства согласно одному из примеров;
фиг. 9 представляет логическую схему, показывающую способ оценки позиции устройства захвата изображения согласно одному из примеров;
фиг. 10 представляет логическую схему, показывающую пример процедуры обработки данных изображения от устройства захвата изображения с целью обновления модели трехмерного пространства; и
фиг. 11 представляет упрощенную схему, показывающую энергонезависимый компьютерный носитель информации согласно одному из примеров.
Подробное описание
Некоторые описываемые здесь примеры позволяют генерировать подробные трехмерные модели или карты трехмерного пространства на основе захваченных данных изображения. Эти примеры позволяют генерировать точную модель такого пространства, даже когда указанные данные изображения являются результатом самых разнообразных траекторий устройства захвата изображения. Например, плотные согласованные и всеобъемлющие модели трехмерного пространства можно генерировать на основе данных от устройств захвата изображения, движущихся по «петлевым» и/или «прерывистым» траекториям, равно как от устройств, движущихся по направляемых и стабильным обращенным вперед траекториям. Более того, некоторые примеры, рассматриваемые здесь, содержат признаки, позволяющие построить эти трехмерные модели с использованием частот кадров, соответствующих режиму реального времени или режиму, близкому к режиму реального времени. Например, некоторые признаки позволяют пошагово осуществлять одновременные локализацию и плотное картирование по принципу кадр за кадром. Это позволяет использовать представленные здесь способы в самых разнообразных электронных устройствах реального мира, от ручных мобильных компьютерных устройств до автономных домашних и/или промышленных роботов. Повышенные точность и стабильность сформированной трехмерной модели также позволяют улучшить взаимодействие между роботизированными устройствами и окружающей их средой, поскольку такие устройства могут пользоваться большим доверием с точки зрения применимости их внутренних представлений.
В некоторых примерах, рассматриваемых здесь, трехмерную модель или карту (или просто «модель») сегментируют и разбивают по меньшей мере на активные и неактивные части на основе по меньшей мере одного свойства или параметра модели. Например, позиционные элементы такой модели могут быть классифицированы в качестве активных или неактивных на основе момента времени модификации модели, например, более старые части модели могут быть классифицированы в качестве неактивных, и/или на основе расстояния от устройства захвата изображения в трехмерном пространстве, например, позиционные элементы, находящиеся на некотором конкретном расстоянии от устройства захвата изображения или в некоторой заданной точке пространства, могут быть классифицированы в качестве неактивных. В этих случаях активные части трехмерной модели используются для обновления этой модели. Это обновление может содержать соединение кадров данных изображения с моделью, например, определение новых позиционных элементов модели на основе данных изображения. Это помогает уменьшить требования к вычислительной мощности, поскольку только подмножество модели пространства может быть использовано в любой конкретный момент времени для обновления модели после новых наблюдений пространства. В дополнение к обновлению модели активные части также могут быть использованы в ходе операции отслеживания, целью которой является определение точного текущего представления местонахождения и ориентации устройства захвата изображения относительно модели. Здесь снова использование только подмножества модели пространства позволяет уменьшить требования к вычислительной мощности по сравнению с отслеживанием на основе полной модели пространства.
Некоторые примеры, описываемые здесь, также осуществляют выравнивание активных и неактивных частей модели. Это позволяет осуществлять так называемые петлевые или контурные траектории, когда устройство захвата изображения повторно посещает или повторно наблюдает какое-либо конкретное место в трехмерном пространстве. Такое выравнивание, которое может быть осуществлено так же часто, как и в режиме кадр за кадром, по мере обработки захваченных данных изображения, помогает поддерживать точность и стабильность модели и предоставляет возможность работать с «петлевыми» и/или «прерывистыми» траекториями устройства захвата изображения. В некоторых случаях такое выравнивание может содержать два аспекта: «локальный петлевой (замкнутый) контур», который пытается выровнять прогнозируемые кадры, генерируемые от каждой из активной и неактивной модели; и «глобальный петлевой (замкнутый) контур», который пытается выровнять некий конкретный кадр данных изображения с представлением ранее обработанного кадра данных изображения. Выравнивание можно осуществить посредством деформирования трехмерной модели, например, путем деформирования пространства. В некоторых случаях такое деформирование может быть нежестким и может использовать граф деформации для применения трансформации к позиционным элементам модели. Это может далее увеличить точность и согласованность модели в трехмерном пространстве, например, путем уменьшения разрывов, составляющих процедуру моделирования и не отражающих трехмерное пространство, которое моделируется. В частности, такой граф деформации может быть разреженным и/или может быть «погружен» в пространство, например, может быть ассоциирован с позиционными элементами модели. Эти способы отличаются от способов, требующих использования позиционного граф, например, вероятностного представления местонахождения и ориентации видеокамеры, используемой для жесткой трансформации независимых ключевых кадров данных изображения.
Фиг. 1A, 1B и 1C упрощенно показывают примеры трехмерного пространства и захвата данных изображения, ассоциированных с этим пространством. Эти примеры представлены для лучшего объяснения некоторых признаков, описываемых здесь, и их не следует рассматривать в качестве ограничений; некоторые признаки были опущены и упрощены для облегчения пояснения.
На фиг. 1A показан первый пример 100 трехмерного пространства 110. Это трехмерное пространство 110 может быть физическим пространством внутри помещения и/или снаружи, например, по меньшей мере частью комнаты или географическим местом. a portion of a room or geographical location. Трехмерное пространство 110 в этом примере 100 содержит несколько физических объектов 115, расположенных в этом трехмерном пространстве. Совокупность этих объектов 115 может, среди прочего, содержать: людей, электронные устройства, мебель, животных, части зданий и сооружений и оборудование. Первый пример 100 показывает также устройство 120 захвата изображения, которое захватывает данные изображения, ассоциированные с трехмерным пространством 110. Такое устройство 120 захвата изображения может содержать видеокамеру, цифрового или аналогового типа, предназначенную для записи данных, получаемых в результате наблюдения трехмерного пространства 110. В некоторых случаях устройство 120 захвата изображения является подвижным, например, может быть построено для захвата изображений различных сцен, соответствующих разным наблюдаемым частям трехмерного пространства 110. Устройство 120 захвата изображения может быть подвижным относительно статичной опоры, например, может содержать приводы для изменения положения и/или ориентации видеокамеры относительно трехмерного пространства 110. В другом случае устройство 120 захвата изображения может представлять собой ручное устройство, управляемое и перемещаемое человеком-пользователем; еще в одном случае устройство 120 захвата изображения может быть соединено с роботизированным устройством, перемещаемым или перемещающимся в трехмерном пространстве 110, например, содержащим автономное воздушное и/или наземное мобильное устройство. Устройство 120 захвата изображения может быть статично или подвижно установлено на таком роботизированном устройстве. Хотя трехмерное пространство 110, представленное на фиг. 1A, показано как имеющее нижнюю поверхность, это совсем не обязательно для всех вариантов реализации, например, среда, где находится устройство, может быть воздушным или внеземным пространством.
На фиг. 1B показан второй пример 130 трехмерного пространства 110. Во втором примере 130 трехмерное пространство 110 представляет собой внешнее пространство, которое может содержать некое место на какой-либо планете. Во втором примере 130 внешнее пространство содержит часть трассы или дороги, вдоль которой расположены несколько придорожных объектов 115. Во втором примере 130 показано мобильное устройство 140, построенное для навигации в трехмерном пространстве 110 с использованием приводов 145. В рассматриваемом примере эти приводы содержат колеса; в других случаях они могут содержать гусеницы, землеройные механизмы, роторы и т.п. Мобильное устройство 140 содержит два устройства 120-A и 120-B захвата изображения. Каждое из этих устройств 120 A, B захвата изображения может захватывать данные изображения разного типа и/или может содержать источник стереоизображения. В одном случае устройство 120-A захвата изображения может захватывать данные глубины, например, с использованием технологии дистанционного измерения, такой как измерения в инфракрасных лучах, ультразвуковые измерения и/или радиолокационные измерения (включая технологии лазерного дальномера (Light Detection and Ranging – LIDAR)), тогда как устройство 120-B захвата изображения осуществляет захват фотометрических данных, например, цветных или полутоновых изображений (или наоборот). В одном случае устройства 120-A, B захвата изображения могут быть подвижными независимо от мобильного устройства 140. В одном случае одно или несколько устройств 120-A, B захвата изображения могут быть установлены на поворотном механизме, например, механизме, который поворачивается по наклонной дуге или поворачивается на 360 градусов, и/или такие устройства могут быть оснащены адаптивной оптикой для захвата панорамного изображения сцены (например, вплоть до полной панорамы на 360 градусов).
Фиг. 1C показывает пример 150 степеней свободы, имеющихся у устройства 120 захвата изображения и мобильного устройства 140. В случае устройства 120 захвата изображения, направление устройства 160 может быть коллинеарным оси объектива или другого устройства для считывания изображения. В качестве примера поворота вокруг одной из трех осей на чертежах показана нормальная ось 170. Аналогично случаю мобильного устройства 140, может быть определено направление выравнивания мобильного устройства 160. Это может указывать направление, куда обращено мобильное устройство, и/или направление перемещения. Также показана нормальная ось 170. Хотя для устройства 120 захвата изображения или мобильного устройства 140 показана только одна нормальная ось, эти устройства могут поворачиваться вокруг любой одной или нескольких осей, показанных схематично по стрелке 150, как описано ниже.
x
y
z
В более общем смысле ориентация и местонахождение устройства захвата изображения могут быть определены в трехмерном пространстве относительно шести степеней свободы: местонахождение может быть определено по каждой из трех координат, например, по координатам [x, y, z], а ориентация может быть определена угловым вектором, представляющим поворот вокруг каждой из трех осей, например, [θ, θ, θ]. В некоторых вариантах устройство захвата изображения может быть ограничено относительно ограниченного подмножества из совокупности этих шести степеней свободы, например, для устройств захвата изображения, установленного на наземном транспортном средстве, размер по оси z может быть постоянным. В некоторых вариантах, таких как мобильное устройство 140, ориентация и местонахождение устройства захвата изображения, соединенного с другим устройством, могут быть определены с учетом ориентации и местонахождения этого другого устройства, например, могут быть определены с учетом ориентации и местонахождения мобильного устройства 140. В рассматриваемых здесь примерах ориентация и местонахождение устройства захвата изображения определены в качестве позиции этого устройства захвата изображения. Эта позиция устройства захвата изображения может изменяться во времени, так что позиция устройства захвата изображения в момент t+1 времени может отличаться от его позиции в момент t времени. В случае ручного мобильного компьютерного устройства, содержащего устройство захвата изображения, позиция может изменяться, когда пользователь перемещает это ручное устройство в трехмерном пространстве 110.
На фиг. 2A, 2B и 2C схематично представлены три неисчерпывающих примера различных конфигураций устройств захвата изображения. В примере 200, показанном на фиг. 2A, устройство 210 захвата изображения конфигурировано для генерации данных 220 изображения. Если устройство 210 захвата изображения представляет собой цифровую видеокамеру, это можно осуществить непосредственно, например, данные 220 изображения могут содержать обработанные данные от формирователя сигналов изображения на основе прибора с зарядовой связью (ПЗС) или на основе комплементарных структур металл-оксид-полупроводник (КМОП (CMOS)). Такие данные 220 изображения можно также генерировать непрямым путем, например, посредством обработки изображений от других источников, такой как преобразование аналоговых сигналов от источников.
t
t
t
В одном случае данные 220 изображения содержат данные изображения, захваченные с течением времени. Один пример 230 этого формата показан на фиг. 2B. В этом случае данные 220 изображения содержат несколько кадров 240. Каждый кадр 240 может относиться к конкретному моменту t времени в пределах периода времени, когда происходит захват изображений в трехмерном пространстве, таком как пространство 110, показанное на фиг. 1, (т.е. F). В такой ситуации данные 220 изображения могут считаться видеоданными. Кадр 240 в общем случае образован двумерным представлением считываемых данных. Например, кадр 240 может содержать двумерную решетку или матрицу записанных величин пикселей в момент t времени. В примере, показанном на фиг. 2B, все кадры 240 в составе данных изображения имеют одинаковые размеры, хотя это не обязательно имеет место во всех примерах. Величины пикселей в составе кадра 230 представляют результаты измерений конкретной части трехмерного пространства. В примере, показанном на фиг. 2B, каждый кадр 240 содержит величины для двух разных форм данных изображения. Первое множество величин относится к данным 250 глубины (например, D). Эти данные глубины могут содержать указание расстояния от устройства захвата изображения, например, величина каждого пикселя или элемента изображения может представлять расстояние от какого-либо участка трехмерного пространства до устройства 210 захвата изображения. Второе множество величин относится к фотометрическим данным 260 (например, данным цвета C). Совокупность этих величин может содержать величины Красных, Зеленых, Синих (Red, Green, Blue (RGB)) пикселей для некоего конкретного разрешения. В других примерах могут быть использованы другие цветовые пространства, и/или фотометрические данные 260 могут содержать монохромные или полутоновые величины пикселей. В одном случае данные изображения могут содержать сжатый поток или файл видеоданных. В этом случае кадры данных изображения могут быть восстановлены из этого потока или файла, например, в виде выходных данных видео декодера. Данные изображения могут быть вызваны из позиций памяти после предварительной обработки потоков или файлов видеоданных.
Устройство 210 захвата изображения, показанное на фиг. 2B может содержать так называемую видеокамеру RGB-D, построенную для захвата как данных 260 цвета в формате RGB, так и данных 250 глубины (“D”). В одном случае видеокамера RGB-D построена для захвата видеоданных во времени. Данные одного или более типов – данные 250 глубины и/или данные RGB, могут быть использованы в любой момент времени. Данные 250 глубины можно генерировать с использованием одного или нескольких способов, известных в технике, таким как способ структурированного излучения, согласно которому инфракрасный лазерный проектор проецирует некий рисунок инфракрасного излучения на наблюдаемую часть трехмерного пространства, изображение которой затем считывают посредством монохромного КМОП-формирователя сигналов изображения. К примерам таких видеокамер относятся видеокамеры линейки Kinect, выпускаемые корпорацией Microsoft, Редмонд, шт. Вашингтон в Соединенных Штатах Америки, видеокамеры линейки Xtion, выпускаемые корпорацией ASUSTeK Computer Inc. из Тайбея, Тайвань, и видеокамеры линейки Carmine, выпускаемые компанией PrimeSense, являющейся дочерней компании корпорации Apple Inc. Из Купертино, шт. Калифорния в США. В некоторых примерах видеокамера RGB-D может быть включена в состав мобильного компьютерного устройства, такого как планшетный компьютер, портативный компьютер или мобильный телефон. В других примерах видеокамера RGB-D может быть использована в качестве периферийного устройства для стационарного компьютерного устройства или может быть встроена в автономное устройство со специализированными процессорными возможностями. В одном случае устройство 210 захвата изображения может быть построено для сохранения данных 220 изображения в присоединенном устройстве для хранения данных. В другом случае устройство 210 захвата изображения может передавать данные 220 изображения присоединенному компьютерному устройству. Это присоединенное компьютерное устройство может быть присоединено непосредственно, например, через универсальную последовательную шину (universal serial bus (USB)), или связано не прямо, например, данные 220 изображения могут быть переданы через одну или несколько компьютерных сетей. Еще в одном случае устройство 210 захвата изображения может быть конфигурировано для передачи данных 220 изображения через одну или нескольких компьютерных сетей для хранения в присоединенном к сети запоминающем устройстве. Данные 220 изображения могут быть сохранены и/или переданы на основе принципа кадр за кадром или на групповой основе, например, несколько кадров могут быть объединены вместе. Данные 250 глубины не обязаны иметь такое же разрешение или частоту кадров, как и фотометрические данные 260. Например, данные 250 глубины могут быть измерены с меньшим разрешением, чем фотометрические данные 260. Одна или несколько операций предварительной обработки также могут быть выполнены над данными 220 изображения прежде, чем они будут использованы в рассматриваемых выше примерах. Возможны также и другие конфигурации, не рассматриваемые здесь.
На фиг. 2C показана другая возможная конфигурация 270 для получения данных 220 изображения. В этом примере используются два устройства захвата изображения: первое устройство 210-A захвата изображения, построенное для захвата данных 220-A изображения, содержащих кадры 280 данных глубины; и второе устройство 210-B захвата изображения, построенное для захвата данных 220-B изображения, содержащих кадры 290 фотометрических данных. Эти каналы данных могут быть обработаны по отдельности в каком-либо компьютерном устройстве или объединены в общем конвейере обработки изображения. Например, конфигурация 270, показанная на фиг. 2C, может быть применена к мобильному устройству 140, представленному на фиг. 1B и имеющему два устройства 120-A и 120-B захвата изображения. В одном случае первое устройство 210-A захвата изображения может быть инфракрасным, ультразвуковым или радиолокационным устройством, построенном для измерения (например, глубины) трехмерного пространства и преобразования результатов измерений в кадры измеренных данных. Второе устройство 210-B захвата изображения может тогда содержать видеокамеру RGB, построенную для захвата кадров 290 данных цвета изображения. Размеры кадров и/или разрешение для данных 280 глубины и фотометрических данных 290 могут различаться, равно как и частота кадров при захвате изображения. В одном случае предварительная обработка может быть применена таким образом, что указанные две группы кадров имеют одинаковые размеры и разрешение. В этом случае данные, показанные на фиг. 2C, могут быть предварительно обработаны таким образом, чтобы они имели вид, показанный на фиг. 2B.
В некоторых случаях устройство захвата изображения может быть построено для выполнения предварительной обработки для генерации данных глубины. Например, аппаратное считывающее устройство может генерировать данные расхождения или данные в форме нескольких стереоизображений, где для обработки этих данных с целью вычисления глубины используются программное обеспечение и/или аппаратура. Аналогично, данные глубины могут в качестве альтернативы исходить от времяпролетной видеокамеры, передающей на выход фазовые изображения, которые могут быть использованы для восстановления информации глубины. При таком подходе для генерации данных глубины, составляющих часть данных 220 изображения, могут быть использованы любые подходящие способы.
t
R1
R1
t
R2
R2
На фиг. 2A, 2B и 2C представлены ряд примеров и, как следует понимать, конфигурации, отличные от конфигураций, показанных на этих чертежах, могут быть использованы для генерации данных 220 изображения с целью использования способов и систем, рассматриваемых ниже. Данные 220 изображения могут содержать какие-либо измеренные входные сигналы датчиков, построенные в виде двумерной формы, представляющей захваченный или записанный вид трехмерного пространства со стороны устройства захвата изображения. Например, эти данные могут содержать, среди всего прочего, что-либо одно – данные глубины или фотометрические данные, данные электромагнитного изображения, данные ультразвукового изображения или радиолокационные данные. В этих случаях может потребоваться только формирователь сигналов изображения, ассоциированный с конкретной формой данных, например, устройство формата RGB без считывания данных глубины. В приведенных выше примерах данные Dглубины могут содержать двумерную матрицу значений глубины. Это может быть представлено в виде полутонового изображения, например, где величина каждого пикселя с координатами [x, y] в кадре, имеющем разрешение (x на y),содержит величину глубины, d, представляющую расстояние от устройства захвата изображения до поверхности в трехмерном пространстве. Фотометрические данные C могут содержать цветное изображение, где величина каждого пикселя с координатами [x, y] в кадре, обладающем разрешением (x на y),содержит вектор [R, G, B] (в формате RGB). В качестве примера, разрешение обоих множеств данных может быть 640 x 480 пикселей. В некоторых случаях данные 220 изображения можно генерировать путем объединения данных из нескольких источников, например, нескольких видеокамер, просматривающих конкретное трехмерное пространство. В некоторых случаях данные 220 изображения не обязательно должны быть видеоданными. Вместо этого они могут содержать последовательность неподвижных изображений, захваченных из различных мест с течением времени с использованием одного или нескольких устройств захвата изображения. В некоторых случаях данные глубины можно генерировать из фотометрических данных, например, по результатам обработки фотометрических данных, представляющих движение устройства захвата изображения в пространстве.
На фиг. 3 показан пример 300 устройства 310 для генерации модели трехмерного пространства. Например, это может быть модель трехмерного пространства 110, показанного на фиг. 1A и 1B. Аппаратура 310 обрабатывает данные 320 изображения. Эти данные 320 изображения можно генерировать, например, посредством какой-либо из конфигураций, показанных на фиг. 2A, 2B и 2C.
Аппаратура, показанная на фиг. 3, содержит интерфейс 330 для получения изображения и механизм 340 моделирования. Этот интерфейс 330 для получения изображения конфигурирован для получения данных 320 изображения. Это могут быть данные изображения, которые активно или ранее генерирует устройство захвата изображения, такое как устройства 120 и 210 захвата изображения, показанные на предыдущих чертежах. Эти данные 320 изображения ассоциированы с наблюдением трехмерного пространства с использованием устройства захвата изображения во времени. Например, данные 320 изображения могут содержать видеоданные, полученные за некоторый конкретный период времени, где в течение этого конкретного периода времени одно или несколько устройств захвата изображения перемещаются вокруг трехмерного пространства. Механизм 340 моделирования конфигурирован для обработки данных 320 изображения, полученных посредством интерфейса 330 для получения изображения, и для вычисления трехмерной модели 350 трехмерного пространства. В этом примере механизм 340 моделирования, в свою очередь, содержит по меньшей мере сегментатор 360 модели и механизм 370 совмещения. Этот сегментатор 360 модели конфигурирован для сегментации трехмерной модели 350 и разбиения ее по меньшей мере на активные и неактивные части на основе по меньшей мере одного свойства модели. Механизм 370 совмещения конфигурирован для выравнивания активных частей трехмерной модели 350 с неактивными частями этой трехмерной модели 350 во времени. Механизм 340 моделирования дополнительно конфигурирован для использования активных частей трехмерной модели 350 с целью обновления этой модели во времени, т.е. неактивные части не используются для обновления модели.
Конфигурация интерфейса 330 для получения изображения может зависеть от реализации. В одном случае интерфейс 330 для получения изображения может содержать аппаратный интерфейс, такой как USB-интерфейс или сетевой интерфейс, и компьютерный программный код, реализующий программные драйверы. В одном случае механизм 340 моделирования может быть конфигурирован для работы с потоковыми данными, принимаемыми через интерфейс 330 для получения изображения. Это может быть случай, когда аппаратура 310 работает с данными изображения в реальном времени. В одном случае интерфейс 330 для получения изображения может быть соединен для осуществления связи с устройством захвата изображения и построен для сохранения данных 320 изображения, принимаемых от устройства захвата изображения в одном или нескольких устройств для постоянного или временного хранения данных, например, кадры данных могут быть скопированы в запоминающее устройство и/или могут быть сохранены в накопителе на жестком диске или в твердотельном запоминающем устройстве. В другом случае данные 320 изображения могут быть сохранены вне аппаратуры 310 в конкретном формате файлов, например, в одном или нескольких файлах, доступных в устройстве для хранения данных. В этом случае интерфейс 330 для получения изображения может использовать или реализовать часть файловой системы с целью по меньшей мере считывать данных из одного или нескольких файлов. Это может быть случай, когда аппаратура 310 работает с ранее записанными данными изображения. Например, данные 320 изображения могут содержать запись пешей прогулки пользователя по зданию, когда соответствующие данные захвачены с использованием ручного устройства, или могут содержать траекторию обзора, по которой автономное устройство движется в географическом пространстве. Можно также представить другие конфигурации, и эти примеры не следует считать исчерпывающими и ограничивающими.
Механизм 340 моделирования может содержать специализированные процессорные электронные устройства и/или может быть реализован посредством компьютерного программного кода, исполняемого процессором по меньшей мере одного компьютерного устройства. В таком случае, как описано ниже со ссылками на фиг. 4, механизм 340 моделирования может содержать одно или несколько встроенных компьютерных устройств. Механизм может содержать по меньшей мере один процессор, работающий по взаимодействии с запоминающим устройством для выполнения компьютерного программного кода, загруженного на компьютерный носитель информации. Этот носитель может содержать твердотельное запоминающее устройство, такое как стираемое программируемое постоянное запоминающее устройство, а компьютерный программный код может содержать встроенное программное обеспечение. В других случаях механизм 340 моделирования может содержать конфигурируемые подходящим образом систему на кристалле, специализированную интегральную схему и/или одну или несколько запрограммированных постоянным образом программируемых пользователем вентильных матриц. В одном случае механизм 340 моделирования может быть реализован посредством компьютерного программного кода и/или специализированных процессорных электронных схем в составе мобильного компьютерного устройства и/или настольного компьютерного устройства. В одном случае механизм 340 моделирования может быть реализован, например, также как в предыдущих случаях или вместо этого, посредством одного или нескольких графических процессорных блоков, выполняющих компьютерный программный код. В некоторых случаях механизм 340 моделирования может быть реализован посредством одной или нескольких функций, выполняемых параллельно, например, на нескольких процессорах и/или ядрах графических процессорных блоков.
Трехмерная модель 350, генерируемая механизмом 340 моделирования, может содержать какую-либо модель или карту, имеющую позиционные элементы, представляющие позиции или местонахождения в трехмерном пространстве, ассоциированные с данными изображения. В некоторых случаях трехмерная модель 350 представляет собой «плотную» модель трехмерного пространства. В этом случае имеет место большое число позиционных элементов, образующих модель, например, сотни тысяч или миллионы элементов. Это можно сравнить с моделью на основе признаков или «разреженной» моделью, в которой могут быть только десятки или сотни выделенных модельных точек. В одном случае позиционные элементы могут быть основаны на модели пространства с использованием объемных элементов (вокселей), где поверхности в пространстве определены относительно величин вокселей в воксельном пространстве с неким конкретным разрешением по трем координатам. В другом случае может быть использована модель элементов поверхности. Эта модель элементов поверхности определена более подробно со ссылками на фиг. 6A и 6B. В модели элементов поверхности ряд расположенных в конкретных позициях ориентированных поверхностей определены в качестве позиционных элементов. Протяженность трехмерной модели 350 может зависеть от наблюдаемой протяженности трехмерного пространства, как это определено в данных 320 изображения.
В одном случае трехмерную модель 350 можно считать «плотной», поскольку величины пикселей в составе данных 320 изображения обработаны и внесли свой вклад в моделирование трехмерного пространства. Например, в «плотном» представлении каждый пиксель изображения может вносить так много информации, как только возможно, в процедуру отслеживания и отображения оценки. Это позволяет трехмерную модель, т.е. полученное в результате представление карты сцены, проецировать назад в устройство захвата синтетического изображения или видеокамеру для реконструкции «плотного» изображения, т.е. изображения с разрешением устройства захвата изображения, где огромное большинство пикселей в составе синтезированного изображения имеют данные, синтезированные на основе информации, сохраненной в модели. Напротив, «разреженная» система, например, применяющая ключевые точки или выделенные признаки, использует только небольшое подмножество величин пикселей из состава данных изображения для генерации изображения. В «разреженном» случае синтезированное изображение не может быть создано при разрешении устройства захвата изображения, поскольку в такой модели недостаточно информации. При таком подходе «плотная» система действует для оценки одной или нескольких поверхностей в трехмерном пространстве с высокой точностью, например, в пределах конкретного допуска в реальной среде. «Плотная» система может считаться аналогичной квантованной непрерывной системе, где «разреженная» система работает на небольших множествах дискретных точек.
t
В некоторых случаях механизм 340 моделирования конфигурирован для работы по принципу кадр за кадром. В одном из вариантов механизм 340 моделирования может быть построен для загрузки последовательных кадров F из состава данных изображения в запоминающее устройство. Эти кадры могут быть сохранены в устройстве хранения данных внутри аппаратуры 310 или получены из внешнего устройства хранения данных посредством интерфейса 330 для получения изображения. В других вариантах механизм 340 моделирования может вызывать один или несколько кадров из состава данных изображения из запоминающего устройства внутри аппаратуры 310. В одном из вариантов часть внутреннего запоминающего устройства может сохранять данные кадров для конкретного момента t времени, причем эти данные могут быть перезаписаны, когда новые данные 320 изображения поступят из устройства захвата изображения через интерфейс 330 для получения изображения. Когда механизм 340 моделирования конфигурирован для работы по принципу кадр за кадром, этот механизм 340 моделирования может быть конфигурирован для обновления трехмерной модели 350 по принципу кадр за кадром. Это может содержать «слияние» конкретного кадра данных 320 изображения с трехмерной моделью 350, т.е. использование данных 320 изображения для модификации и обновления трехмерной модели 350. Это может содержать включение новых позиционных элементов, которые могут быть получены из кадра данных 320 изображения. Некоторые конкретные примеры того, как можно генерировать или обновлять трехмерную модель 350, обсуждаются более подробно ниже. Следует отметить, что обсуждаемые здесь подходы могут быть применены к кадрам данных изображения, которые являются неполными и/или зашумленными.
В одном случае механизм 340 моделирования конфигурирован для отслеживания позиции устройства захвата изображения с использованием данных 320 изображения и трехмерной модели 350. Это не обязано быть связано с фактической позицией какого-либо конкретного устройства захвата изображения; в некоторых вариантах это может быть позицией виртуального устройства захвата изображения, оцениваемой на основе конкретного кадра данных 320 изображения. Например, каждый кадр данных 320 изображения может считаться захваченным с использованием конкретного устройства захвата изображения, находящегося в конкретном месте и имеющего конкретную ориентацию в момент времени, когда был захвачен этот кадр. Когда используются два или более устройства захвата изображения, позицию каждого устройства захвата изображения можно отслеживать с использованием соответствующих данных изображения от каждого устройства захвата изображения. Механизм 340 моделирования может быть конфигурирован для отслеживания конкретного кадра данных 320 изображения относительно трехмерной модели 350. Это может содержать определение того, какая часть трехмерной модели 350 наблюдается в пределах рассматриваемого конкретного кадра данных 320 изображения. Это может быть достигнуто с использованием оценки позиции, генерируемой на основе некоего кадра данных 320 изображения и трехмерной модели 350. В некоторых случаях вместо или наряду с генерацией оценки позиции на основе данных 320 изображения, оценку позиции можно генерировать на основе измеренных данных от внешнего источника. Например, результаты электромеханических измерений от держателя подвижного устройства захвата изображения, такого как механическая рука с управляемыми и/или измеряемыми степенями свободы, можно обрабатывать для определения оценки позиции устройства захвата изображения, соединенного с держателем.
Сегментатор 360 модели может быть конфигурирован для сегментации трехмерной модели 350 путем модификации данных модели. Например, в одном случае конкретный позиционный элемент трехмерной модели 350 может содержать переменную, указывающую, входит ли этот элемент в состав активных частей или в состав неактивных частей модели. В другом случае сегментатор 360 модели может быть конфигурирован для сегментации трехмерной модели 350 в качестве функции, применяемой к модели. Например, трехмерная модель 350 может быть введена на вход сегментатора 360 модели, а этот сегментатор 360 модели может быть конфигурирован для передачи на выход одной или нескольких активных частей и неактивных частей трехмерной модели 350. Здесь может быть использован любой из этих подходов.
P
t
c
p
t
p
t
t
t
Свойство модели, используемое сегментатором 360 модели для сегментации трехмерной модели 350, может указывать уровень достоверности в трехмерной модели 350. Например, сегментатор 360 модели может осуществить сегментацию трехмерной модели 350 на основе одного или более параметров – времени и/или расстояния. В первом случае это свойство модели может представлять собой момент времени генерации модели или момент времени обновления модели для рассматриваемой конкретной позиции в составе этой трехмерной модели. В этом случае неактивные части модели могут указывать момент времени наблюдения в прошлом, отличный от текущего момента времени наблюдения более чем на заданную величину. Например, сегментатор 360 модели может быть построен для обработки данных времени для каждого позиционного элемента, составляющего трехмерную модель 350, с целью разбиения множества позиционных элементов трехмерной модели 350 на два раздельных подмножества – подмножество ϴ, представляющее активные элементы, и подмножество Ψ, представляющее неактивные элементы. С этой целью сегментатор 360 модели может обрабатывать метку t времени для каждого позиционного элемента (например, указание момента времени, когда каждый позиционный элемент был модифицирован последний раз), так что для любого конкретного момента t времени сегментации (например, относящегося к какому-либо конкретному обработанному кадру из состава данных Fизображения), каждый позиционный элемент в составе модели P (где c обозначает координату в трехмерном пространстве), представляет собой позиционный элемент из состава множества ϴ (т.е. ϴ), если t-t <δ, или позиционный элемент из состава множества Ψ (т.е. Ψ), если t-t ≥ δ, где δпредставляет собой некий заданный период времени. Эта форма сегментации или классификации элементов модели постепенно маркирует позиционные элементы, которые не были видны в период δвремени, в качестве неактивных. Здесь можно рассматривать применение временного окна. Как описано выше, механизм моделирования 360 может быть конфигурирован для слияния новых кадров данных изображения с активными частями трехмерной модели 350, где неактивные части модели не используются для отслеживания и/или слияния данных. В этом случае, после выравнивания активных частей и неактивных частей посредством механизм 370 совмещения, выравненные неактивные части могут быть модифицированы таким образом, что они теперь станут активными частями. Например, при выравнивании неактивных частей механизм 370 совмещения может обновить момент времени последней модификации, ассоциированный с каждым позиционным элементам в неактивных частях. Это может иметь то действие, что такие выровненные неактивные части теперь становятся активными после обработки трехмерной модели 350 посредством сегментатора 360 модели. Это позволяет непрерывно отслеживать связь кадра с моделью, а также отслеживать связи от модели к модели, и допускает существование замкнутых контуров, инвариантных относительно точки зрения.
t
В одном случае механизм 340 моделирования конфигурирован для вычисления активного кадра модели на основе проекции от активных частей трехмерной модели 350 с целью использования при обновлении модели. Например, такая проекция может создать двумерную точку зрения или виртуальный кадр, представляющий прогнозируемый вид или наблюдение активных частей трехмерной модели 350. В одном случае активный кадр модели можно генерировать на основе оценки позиции устройства захвата изображения в некий конкретный момент времени. Например, такая оценка позиции может указывать местонахождение и ориентацию точки зрения или виртуального кадра, так что может быть вычислена геометрическая проекция от активных частей трехмерной модели 350. В одном случае прогнозируемые кадры могут быть вычислены для каждого множества данных, составляющего данные 320 изображения. Например, при обработке данных изображения аналогично тому, что показано на фиг. 2B и 2C, каждый активный кадр модели может содержать прогнозируемый кадр данных глубины,, и прогнозируемый кадр фотометрических данных,. Эти кадры могут иметь такое же разрешение, как записанный или захваченный кадр F изображения из состава данных 320 изображения. Использование активного кадра модели описано более подробно со ссылками на фиг. 5 ниже.
Как описано выше, аппаратура 310 может быть построена для генерации трехмерной модели 350 во времени, например, в ходе обработке нескольких кадров из состава записанных данных 320 изображения. В одном случае данные 320 изображения представляют результат наблюдения трехмерного пространства во времени с использованием движущегося устройства захвата изображения; в такой ситуации, в процессе обработки кадров данных 320 изображения посредством механизма 340 моделирования трехмерная модель 350 увеличивается в размерах, например, включает в себя все больше позиционных элементов, представляющих различные участки трехмерного пространства. Более того, механизм 370 совмещения конфигурирован для осуществления выравнивания активных и неактивных частей модели во времени; это может происходить при повторном посещении или повторном наблюдении частей трехмерного пространства, т.е. когда замыкаются «петли» (контуры) перемещения устройства захвата изображения. Это означает, что точность и согласованность трехмерной модели 350 также увеличиваются по мере обработки все большего числа кадров из состава данных 320 изображения.
Можно считать, что на выходе аппаратуры 310 формируется трехмерная модель 350 наблюдаемого трехмерного пространства. Эта модель 350 может содержать по меньшей мере позиционные элементы, определяемые относительно трехмерной системы координат. Каждый позиционный элемент может далее быть ассоциирован с данными, указывающими присутствие сплошных поверхностей в трехмерном пространстве. Например, в модели на основе объемных элементов (вокселей) поверхность может быть представлена в виде нулевой величины или точки пересечения для некой переменной, представляющей свободное пространство; в модели элементов поверхности, позиционные элементы могут быть определены для поверхностей в трехмерном пространстве, в таком случае каждый позиционный элемент может указывать конкретную поверхность в составе модели. В любом случае трехмерная модель 350 наблюдаемого трехмерного пространства может быть использована самыми разнообразными способами. Если аппаратура 310 составляет часть ручного мобильного компьютерного устройства, трехмерная модель 350 может содержать отображение трехмерного пространства после захвата данных изображения, когда устройство движется вокруг пространства. Если аппаратура 310 соединена для осуществления связи с одним или несколькими устройствами захвата изображения, которые установлены неподвижно, но размещены таким образом, чтобы осуществлять панорамный обзор среды, трехмерная модель 350 может быть использована для измерения присутствия объектов, например, таких как объекты 115, показанные на фиг. 1, в пределах пространства. В одном конкретном примере трехмерная модель 350 может быть использована системой интерфейса пользователя для определения местонахождения людей и/или каких-то отдельных частей тела людей, где такое местонахождение может быть использовано в качестве входного сигнала пользователя для интерфейса. В другом примере, трехмерная модель 350 может быть использована в качестве входных данных для конвейера аддитивной технологии, где объекты в модели может генерировать аддитивная технологическая система (система послойного синтеза), например, с использованием определения позиционных элементов в рамках модели. В одном случае трехмерная модель 350 может быть доступна из места, удаленного относительно устройства захвата изображения, где эта модель представляет наблюдение пространства, например, в реальном времени или почти в реальном времени.
На фиг. 4 представлена упрощенная схема, показывающая пример 400 роботизированного устройства 410, построенного для использования способов генерации модели из предшествующего примера с целью навигации в трехмерном пространстве. В одном случае роботизированное устройство 410 может содержать вариант реализации мобильного устройства 140, показанного на фиг. 1. Роботизированное устройство 410, показанное на фиг. 4, содержит устройства 420 захвата изображения, генератор 430 модели, устройство 440 для хранения данных, конфигурированное для сохранения трехмерной модели 450, навигационный механизм 460 и один или несколько механических приводов 470 для перемещения частей роботизированного устройства. На фиг. 4 показано соединение между компонентами роботизированного устройства 410 для осуществления связи между этими компонентами, которое (соединение) будет рассмотрено ниже.
В примере 400 устройство 420 захвата изображения построено для захвата данных изображения, когда роботизированное устройство перемещается в конкретной среде. В одном случае устройство 420 захвата изображения может быть построено для записи нескольких кадров, содержащих данные глубины и/или данные цвета, так что данные глубины указывают расстояния от устройства захвата изображения до нескольких элементов изображения. Каждый кадр в этом случае может быть ассоциирован со своим моментом времени захвата, отличным от моментов времени захвата других кадров. В одном случае устройство 420 захвата изображения может содержать два или более специальных датчиков, например, инфракрасных или ультразвуковых датчиков, конфигурированных для сканирования области пространства, и формирователь сигналов изображения, такой как видеокамера. Здесь применима любая из конфигураций, описанная со ссылками на фиг. 2A, 2B и 2C.
Устройство 420 захвата изображения, показанное на фиг. 4, соединено с генератором 430 модели. В этом случае генератор 430 модели может содержать один из вариантов реализации аппаратуры 310, показанной на фиг. 3, где интерфейс 330 для получения изображения может быть соединен для осуществления связи с устройством 420 захвата изображения. Генератор 430 модели соединен с устройством 440 для хранения данных. При использовании генератор 430 модели конфигурирован для генерации трехмерной модели 450 с применением какого-либо из описываемых здесь способов. Устройство 440 для хранения данных может содержать энергозависимое и/или энергонезависимое устройство для хранения данных, составляющих трехмерную модель 450.
Навигационный механизм 460, показанный на фиг. 4, соединен с устройством 440 для хранения данных и конфигурирован для доступа к трехмерной модели 450, сохраняемой в этом устройстве 440. Навигационный механизм 460 построен для управления одним или несколькими механическими приводами 470 для перемещения роботизированного устройства 410 в среде. В частности, навигационный механизм 460 конфигурирован для доступа к трехмерной модели 450, формируемой генератором 430 модели, например, как описано со ссылками на механизм 340 моделирования, рассмотренный выше, с целью обеспечения навигации роботизированного устройства 410 в среде, например, где трехмерная модель 450 представляет собой модель пространства, содержащего рассматриваемую среду. Совокупность механических приводов 470 может содержать какие-либо подвижные механизмы для механического перемещения, включая колеса, ролики, роторы, пропеллеры, механические руки или ноги и т.п. Такое роботизированное устройство 410 может представлять собой наземное, воздушное и/или морское устройство. В одном случае устройство 420 захвата изображения может быть неподвижно установлено на роботизированном устройстве 410; в такой ситуации оценка позиции устройства 420 захвата изображения эквивалентна оценке позиции роботизированного устройства 410 в рассматриваемой среде. Это позволяет оценку позиции, формируемую генератором 430 модели, использовать также навигационному механизму 460 для определения местонахождения и ориентации роботизированного устройства 410 в среде. В одном случае роботизированное устройство 410 может быть построено для осуществления одной или нескольких функций. Например, роботизированное устройство 410 может быть построено для осуществления функции отображения, определения местонахождения конкретных людей и/или объектов (например, в аварийной или иной экстренной ситуации), перемещения объектов, осуществления оценки или технического обслуживания и т.п. Для осуществления одной или нескольких функций роботизированное устройство 410 может содержать дополнительные компоненты, такие как дополнительные датчики, вакуумные системы и/или механические приводы для взаимодействия со средой.
В другом примере, мобильное компьютерное устройство может содержать по меньшей мере одно устройство захвата изображения, построенное для записи нескольких кадров, содержащих данные глубины и/или данные цвета, где эти данные глубины указывают расстояния от устройства захвата изображения до нескольких элементов изображения, а также мобильное устройство содержит аппаратуру 310 или генератор 430 модели, как описано выше.
На фиг. 5 показан более подробный пример 500 некоторых компонентов механизма моделирования. Например, эти компоненты, среди всего прочего, могут быть в некоторых вариантах использованы в качестве частей механизма 340 моделирования, показанного на фиг. 3, или генератора модели 440, показанного на фиг. 4. Пример 500, представленный на фиг. 5, далее схематично показывает, как эти компоненты могут взаимодействовать для обновления трехмерной модели после приема кадра данных изображения.
t
На фиг. 5 показан интерфейс 505 для получения изображения, соединенный для осуществления связи с компонентом 515 отслеживания связи кадра с моделью и с компонентом 525 слияния модели. Интерфейс 505 для получения изображения может функционировать аналогично функционированию интерфейса 330 для получения изображения, описанному выше. В настоящем примере интерфейс 505 для получения изображения конфигурирован для передачи кадров данных IDизображения компоненту 515 отслеживания связи кадра с моделью и компоненту 525 слияния модели. Эти данные изображения могут содержать текущие кадры, захватываемые в момент t времени и имеющие в составе данные глубины, , и фотометрические данные, . Например, в простейшем случае, рассматриваемые данные могут содержать данные, сохраняемые в двух двумерных матрицах в запоминающем устройстве в момент t времени, например, 640x480 для данных глубины и 640x480x3 для данных цвета. Эти данные могут быть извлечены из индексируемой по времени структуры данных, представляющей захваченные или предварительно записанные данные изображения и/или могут быть предоставлены в потоке видео в режиме реального времени, в каждом случае эти данные относятся к кадру в реальном времени, поступающему в текущий момент по меньшей мере от одного устройства захвата изображения.
Компонент 515 отслеживания связи кадра с моделью соединен для осуществления связи с генератором 520 активного кадра модели. Этот генератор 520 активного кадра модели конфигурирован для вычисления активного кадра модели. Тогда компонент 515 отслеживания связи кадра с моделью конфигурирован для сравнения активного кадра модели, принятого от генератора 520 активного кадра модели, с кадром данных изображения, принятым от интерфейса 505 для получения изображения. Компонент 525 слияния модели конфигурирован для обновления трехмерной модели 530 на основе кадра данных изображения, принятого от интерфейса 505 для получения изображения.
На фиг. 5 также показан сегментатор 535 модели. Он может представлять собой вариант реализации сегментатора 360 модели, описанного со ссылками на фиг. 3. Сегментатор 535 модели построен для разбиения трехмерной модели 530 на две части или два множества: первая часть или множество обозначено здесь как «активные» части 540; а вторая часть или множество обозначено здесь как «неактивные» части 545. Это может содержать применение временного окна к трехмерной модели 530. Как можно видеть на фиг. 5, активные части 540 используются генератором 520 активного кадра модели и компонентом 525 слияния модели. Неактивные части 545 не используются генератором 520 активного кадра модели и компонентом 525 слияния модели.
t-1
t
t
t-1
В частности, генератор 520 активного кадра модели построен для доступа к активным частям 540 для генерации активного кадра модели. Это можно осуществлять на основе проекции от активных частей 540 трехмерной модели. На фиг. 5 активный кадр модели, сформированный генератором 520 активного кадра модели для момента t-1 времени, AMF, принимается компонентом 515 отслеживания связи кадра с моделью вместе с кадром данных изображения для момента t времени, ID, и используется для генерации оценки позиции, P, для устройства захвата изображения, которое, как предполагается, генерирует кадр данных изображения в момент t времени. Как обсуждается ранее, это может представлять фактическое местонахождение и ориентацию устройства захвата изображения или устройства, на котором неподвижно установлено устройство захвата изображения, или это может представлять предполагаемое виртуальное устройство захвата изображения. Последнее может представлять собой случай, в котором при приеме и обработке ряда неподвижных изображений – каждое изображение может быть захвачено своей, отличной от других видеокамерой, но все множество этих изображений может считаться захваченным посредством единственного движущегося устройства захвата изображения. Оценка позиции может содержать переменные значения координат по шести степеням свободы, показанным на фиг. 1C. Активный кадр модели, AMF, может содержать прогнозируемые кадры, в момент t-1 времени, для данных глубины, , и фотометрических данных, .
t
t
t
Оценку позиции в момент t времени, P, передают от компонента 515 отслеживания связи кадра с моделью генератору 520 активного кадра модели. Этот генератор 520 активного кадра модели конфигурирован для использования оценки позиции в момент t времени, P, для определения активного кадра модели в момент t времени, AMF. Это может содержать переменные величины оценки позиции для определения геометрии проекции с использованием позиционных элементов, которые содержат активные части 340 трехмерной модели.
t−1
t
t
t
В одном случае компонент 515 отслеживания связи кадра с моделью может быть конфигурирован для сравнения каждого из прогнозируемых кадров данных глубины и цвета в момент t-1 времени, и , с кадрами данных изображения для момента t времени, и . Процедура этого сравнения может содержать определение, для каждой пары кадров (т.е. для пары данных глубины и пары данных цвета), параметров движения, минимизирующих функцию ошибки между кадрами в каждой паре. Тогда погрешность отслеживания может быть определена как сумма погрешности данных глубины и погрешности фотометрических данных. Эта сумма может представлять собой взвешенную сумму. В одном случае погрешность фотометрических данных может быть умножена на весовой коэффициент, например, для уменьшения вклада этой погрешности по сравнению с погрешностью данных глубины. В одном случае этот коэффициент может быть равен 0.1. Для оценки переменных значений координат для степеней свободы можно использовать функцию наименьших квадратов. Эта оценка может быть использована для определения трансформации, преобразующей оценку позиции в момент t-1 времени, P, в текущую оценку позиции, P. Эта текущая оценка позиции может быть использована для выравнивания данных изображения, ID, с активными частями 540. Это может быть использовано компонентом 525 слияния модели для слияния данных изображения, ID, с активными частями 540.
t
Наряду с генератором 520 активного кадра модели пример 500, показанный на фиг. 5, далее содержит генератор 550 неактивного кадра модели. Этот генератор 550 неактивного кадра модели аналогичен генератору 520 активного кадра модели, но конфигурирован для формирования неактивного кадра модели, IMF, на основе неактивных частей 545 трехмерной модели. Например, неактивный кадр модели может быть вычислен генератором 550 неактивного кадра модели на основе геометрической проекции от неактивных частей 545. В одном случае генератор 520 активного кадра модели и генератор 550 неактивного кадра модели могут быть реализованы посредством общего генератора кадров, конфигурированного для приема активных и неактивных частей модели в виде дифференцированных входных потоков с целью соответственно генерировать активный и неактивный кадры модели. Как описано применительно к активным кадрам модели, каждый неактивный кадр модели может содержать прогнозируемый кадр данных глубины,, и прогнозируемый кадр фотометрических данных, .
t
t
t
t
Показанный на фиг. 5 механизм 560 совмещения построен для приема активного кадра модели, AMF, от генератора 520 активного кадра модели и неактивного кадра модели, IMF, от генератора 550 неактивного кадра модели. В рассматриваемом примере механизм 560 совмещения конфигурирован для сравнения этих двух кадров с целью определения трансформации, которая выравнивает активный кадр модели с неактивным кадром модели. Как показывает стрелка на фиг. 5, эта трансформация может быть затем использована для обновления трехмерной модели 530 с целью выравнивания активных и неактивных частей модели. Эта трансформация может быть использована для применения нежесткой пространственной деформации позиционных элементов для частей обоих типов – активных и неактивных частей. В одном случае может быть применена деформация с использованием графа деформации. Такие деформация и выравнивание могут использовать текущую оценку позиции P. В некоторых случаях для совмещения активного и неактивного кадров модели можно использовать процедуру, аналогичную процедуре, выполняемой компонентом 515 отслеживания связи кадра с моделью. Например, вместо попыток выровнять предыдущий прогнозируемый кадр с кадром из состава вновь принятых данных изображения механизм 560 совмещения конфигурирован для определения трансформации, H, которая выравнивает активные и неактивные кадры. Если осуществляется выравнивание, механизм 560 совмещения может перевести все видимые неактивные позиционные элементы, например, элементы, видимые в неактивном кадре модели, в категорию активных элементов.
Процедура выравнивания или деформации, выполняемая механизмом 560 совмещения, может активизировать замыкание «петлевого» контура, т.е. выравнять позиционные элементы модели, генерируемые на основе вновь принятых данных изображения, с позиционными элементами, соответствующими той же самой области трехмерного пространства, данные изображения которой были ранее сформированы и/или модифицированы на основе ранее принятых данных изображения. Например, без механизма 560 совмещения, когда устройство захвата изображения завершает петлевое движение, например, возвращается к просмотру области пространства, которая уже наблюдалась ранее, предшествующие части модели могут не быть выровнены с новыми частями модели. Такое несовмещение или «дрейф» в модели возникает, поскольку процедура генерации модели использует оценки и старается минимизировать функции ошибок, например, работает недетерминированным образом, так что небольшие погрешности оценок позиций и модели могут накапливаться в процессе генерации модели. Механизм 560 совмещения, показанный на фиг. 5, пытается непрерывно, например, для каждого кадра, совмещать активные части модели в оценке текущего кадра от устройства захвата изображения (т.е. активной модели) с неактивными частями модели в том же самом кадре. Если такое совмещение завершилось успешно, например, на основе метрического показателя выравнивания или требуемого уровня деформации, петля движения устройства захвата изображения замкнулась и более новые активные части оказались выровнены с более старыми неактивными частями, причем вся трехмерная модель 530 может быть нежестко деформирована и помещена в такое место, чтобы отразить такое совмещение. В некоторых случаях механизм 560 совмещения конфигурирован для реактивизации неактивных частей модели, которые были использованы при генерации неактивного кадра модели. Это позволяет осуществлять отслеживание посредством компонента 515 отслеживания связи кадра с моделью и слияние модели посредством компонента 525 слияния модели, чтобы занять место между совмещенными областями модели. Как описано выше, отслеживание и слияние данных осуществляется в областях трехмерной модели 530, наблюдавшиеся в самое последнее время (т.е. в активных частях 540 или областях модели), тогда как более старые части модели, которые не наблюдались в течение некоторого периода времени, могут быть сегментированы посредством сегментатора 535 модели и разбиты на неактивные части 545 или области модели, которые не используются для отслеживания или слияния данных.
На фиг. 6A показано схематичное представление структуры 610 данных, которая может быть использована для сохранения позиционных элементов трехмерной модели. Эта структура 610 данных показана только в качестве примера и не должна рассматриваться в качестве исчерпывающей; другие подходы и форматы для сохранения данных могут быть использованы в зависимости от варианта реализации. В этом примере, трехмерная модель содержит модель элементов поверхности. Модель элементов поверхности содержит дефиниции данных для нескольких элементов поверхности или «сурфелей» (“surfels”), где каждый элемент поверхности представляет собой двумерную область (т.е. поверхность) в трехмерном пространстве. На фиг. 6A показано, что данные открываются дефиницией в списке элементов поверхности, например, “{ surfels: …}. Этот список может быть неупорядоченным списком. В таком случае каждый элемент поверхности в составе модели элементов поверхности содержит по меньшей мере данные, определяющие позицию элемента поверхности в трехмерном пространстве, (т.е. позиционный элемент или компонент) и данные, определяющее вектор нормали к элементу поверхности в трехмерном пространстве (т.е. направление, куда «обращена» поверхность, ассоциированная с рассматриваемым элементом). Это схематично показано на фиг. 6B. Одно описание «сурфелей» можно найти в статье Пфистер, Ханспетер и др. «Сурфели: Элементы поверхности в качестве отображающих примитивов» ("Surfels: Surface elements as rendering primitives" by Pfister, Hanspeter, et al.), опубликованной в трудах 27-й ежегодной конференции по компьютерной графике и интерактивным способам (27th annual conference on computer graphics and interactive techniques, ACM Press/Addison-Wesley Publishing Co., в июле 2000).
x
y
z
x
y
z
x
y
z
x
y
z
t
На фиг. 6B показано схематичное представление элемента поверхности или «сурфеля» 620. Сурфель 620 содержит поверхность, s, в трехмерном пространстве. Этот сурфель занимает положение, p, в трехмерном пространстве. На фиг. 6A это положение определено с использованием трехмерных координат, например, данных “Позиция: p, p, p;” (“Position: p, p, p;”), определяющих координаты x, y и z. В других примерах может быть использована другая система координат. На фиг. 6B сурфель имеет также вектор нормали, n, который определен в трехмерной системе координат. На фиг. 6A это положение определено с использованием трехмерного вектора, например, данных “Нормаль: n, n, n;” (“Normal: n, n, n;”). Направление может быть указано с использованием величин со знаком в составе определения вектора. Пример 610, показанный на фиг. 6A, также содержит дополнительные данные, которые могут быть использованы, в некоторых примерах, для описания элемента поверхности. В рассматриваемом случае поверхность сурфеля представляет собой круг или диск в трехмерном пространстве. В таком случае поверхность, показанная на фиг. 6A и 6B, определена радиусом, r, как это задано в данных в виде “Радиус: r;” (“Radius: r;”). Радиус каждого сурфеля предназначен для представления локальной области поверхности вокруг некой конкретной точки, минимизируя при этом видимые отверстия. В других примерах, для определения поверхности могут быть использованы различные данные, например, с применением разных геометрических определений и/или переменных, указывающих протяженность поверхности в трехмерном пространстве. На фиг. 6A показано, что в рассматриваемом примере определение сурфеля также содержит данные определяющие: цвет поверхности (“Цвет: R, G, B;” (“Colour: R, G, B;”) – в этом случае используется цветовое пространство RGB, однако возможно использование любого известного цветового пространства); весовой коэффициент для сурфеля (“Вес: w;” (“Weight: w;”) – это может быть действительное число, используемое при слиянии результатов новых измерений с сурфелем); момент времени инициализации (“Init_Time: t0;”), указывающий момент времени, когда рассматриваемый сурфель был сформирован впервые; и момент времени последней модификации (“Last_Modified: t;), указывающий момент времени, когда рассматриваемый сурфель был в последний раз обновлен или модифицирован. Сурфель в рамках этого представления может быть объявлен неактивным, если продолжительность промежутка времени с момента, когда этот сурфель был последний раз обновлен или модифицирован (например, имеет величину необработанных данных изображения, ассоциированную с ним для слияния данных) превышает величину δ. Следует понимать, что данные, определяющие атрибуты сурфеля, можно добавлять, модифицировать или исключать в зависимости от варианта реализации. Как показано на фиг. 6A, в списке могут быть определены несколько сурфелей (например, между скобками “{…}” в этом примере).
t
На фиг. 7 показан пример 700 дополнительных признаков механизма 710 совмещения, который может быть использован в некоторых вариантах. Как показано на фиг. 7, механизм 710 совмещения, который может иметь такие же функциональные возможности, как и любой из описанных ранее механизмов совмещения 370 или 560, соединен для осуществления связи с устройством 720 для хранения данных. Это устройство 720 для хранения данных сохраняет представления 730 (“ε”) трехмерной модели во времени. Совокупность этих представлений 730 может содержать представления активных кадров модели, AMF, как они сформированы механизмом моделирования; например, может содержать представление данных глубины, , и фотометрических данных, . В одном случае это представление может быть сжатым и/или субдискретизированным представлением активного кадра модели. Части прогнозируемых видов в активном кадре модели, где нет каких-либо отображенных поверхностей, могут быть заполнены, в некотором случаях, с использованием текущего кадра из состава данных изображения. В некоторых случаях это представление может содержать результат фрактального («папоротникового») кодирования (fern-encoding) активного кадра модели. Такое фрактальное кодирование описано в статье Б.Глокер, Дж.Шоттон, А.Криминиси и С.Изади «Способ релокализации видеокамеры RGB-D в реальном времени с использованием рандомизированных фракталов для кодирования опорных кадров» (Realtime RGB-D camera relocalization via randomized ferns for keyframe encoding by B. Glocker, J. Shotton, A. Criminisi, and S. Izadi), TVCG, Сентябрь 2014. Фракталы кодируют изображение в формате RGB-D в виде строки кодов, построенной из величин двоичных тестов в каждом из каналов RGB-D на множестве фиксированных местонахождений пикселей. Рассматриваемый пример отличается от бумаги в этих прогнозируемых видах в противоположность сохраняемым данным изображения. Каждое представление может содержать данные, ассоциированные с одной или несколькими из следующих позиций: строка фрактального кодирования, субдискретизированный прогнозируемый кадр данных глубины; субдискретизированный прогнозируемый кадр фотометрических данных; оценка текущей позиции; и момент времени инициализации для представления. Субдискретизированный кадр может иметь размер, например, 80 x 60.
t
t
t
t
j
В примере, показанном на фиг. 7, механизм 710 совмещения принимает активный кадр модели, AMF. Затем предпринимается попытка согласовать активный кадр модели, AMF, с одним из представлений 730 в устройстве 720 для хранения данных. Например, можно генерировать новое представление на основе принятого активного кадра AMF модели и сравнить с представлениями 730, сохраняемыми в устройстве 720 для хранения данных, например, такое согласование может быть осуществлено с использованием фрактально кодированного представления. Степень такого согласования может быть указана результатом на выходе функции сравнения, например, ошибка или метрический параметр согласования изображений может указывать степень сходства между сравниваемыми кадрами или представлениями. Например, сравнение может быть выполнено между результатами фрактального кодирования. В этом случае результат фрактального кодирования может содержать двоичный код, где два изображения можно сравнивать путем суммирования «расстояния» между двумя двоичными кодами. Наименьшее расстояние считается «наилучшим» согласованием, и при этом указанное расстояние можно сравнивать с порогом с целью определяется, является ли согласование «хорошим». Активный кадр модели, AMF, может быть субдискретизирован для осуществления согласования, например, фрактальное кодирование может быть выполнено на субдискретизированном кадре. В этом случае величина метрического параметра, указывающая наилучшее согласование, (например, наименьшая величина метрического параметра изображения, указывающая разницу или ошибку) может быть использована для индикации сохраненного представления εсогласования. Это сохраненное представление, наряду с наличием данных, используемых для согласования, (например, результат фрактального кодирования) может содержать представление кадра модели, например, и В одном случае величину метрического параметра изображения для наилучшего согласования можно далее сравнить с заданным порогом для определения, является ли это согласование действительным. Например, даже «наилучшее» согласование может быть плохим фактическим согласованием, например, может иметь высокую погрешность согласования; сравнение с порогом позволяет, таким образом, избежать использования таких плохих согласования. Субдискретизация может быть использована механизмом 710 совмещения, поскольку если найдено относительно «грубое» согласование и оно является правильным, тогда последующие активный и неактивный кадры модели будут близки один к другому в достаточной степени, чтобы позволить осуществить выравнивание, как это показано на фиг. 5, например, они будут выровнены в достаточной степени после замыкания «глобального» петлевого контура, чтобы сделать возможным более прецизионное замыкание «локального» петлевого контура.
t
t
t
j
i
j
В одном случае, если согласование не найдено, например, если согласованный метрический параметр изображения превышает рассматриваемый конкретный порог ошибки, тогда осуществляется совмещение активного кадра модели, AMF, и неактивного кадра модели, например, как показано на фиг. 5. С другой стороны, если «наилучшее» согласование найдено, например, если согласованный метрический параметр изображения также оказывается ниже рассматриваемого конкретного порога ошибки, тогда вызывают согласованное представление εиз устройства720 для хранения данных и дают механизму 710 совмещения доступ к этому представлению. Тогда механизм 710 совмещения конфигурируют для передачи команды осуществить операцию выравнивания, аналогичную той, которая описана применительно к фиг. 5; однако в рассматриваемом случае выравнивание осуществляется между активным кадром модели, AMF, и согласованным представлением ε. Например, компоненты активного кадра модели, например, и , могут быть выровнены с согласованным представлением ε, например, и . В одном случае метрический показатель выравнивания можно вычислить и сравнить с порогом для определения, следует ли осуществить выравнивание, например, для продолжения выравнивания требуется низкий уровень несовмещения по сравнению с заданным порогом. Если выравнивание производить не нужно, механизм 710 совмещения может попытаться осуществить выравнивание активного и неактивного кадров модели, как это описано применительно к фиг. 5. Если нужно выполнять выравнивание, механизм 710 совмещения может быть построен для передачи команды блоку 740 деформирования модели, чтобы осуществить деформацию существующей трехмерной модели 750, например, определить деформацию в трехмерном пространстве, обеспечивающую выравнивание компонентов активного кадра модели с компонентами согласованного представления. В некоторых случаях после такого выравнивания, которое можно считать «замыканием локального петлевого контура», не обновляют активную и неактивную части трехмерной модели. Это можно осуществить, поскольку такое выравнивание улучшает совмещение между активной и неактивной частями, что позволяет осуществить совмещение, показанное на фиг. 5 (например, так что «замыкание локального петлевого контура» может быть успешно выполнено на следующем кадре). Не выполнение обновления частей также делает возможной корректировку или восстановление потенциально неточного выравнивания из последующих операций выравнивания. После такого выравнивания можно также обновить текущую оценку позиции P (например, в форме ) путем применения трансформации к оценке позиции, ассоциированной с представлением (например, H).
В рассматриваемом примере блок 740 деформирования модели построен для доступа к существующей трехмерной модели 750 и деформирования этой модели с использованием графа 760 деформации для генерации выровненной трехмерной модели 770. Граф 760 деформации содержит множество узлов и ребер, ассоциированных с распределенными позиционными элементами существующей трехмерной модели 750. В одном случае каждый узел может содержать: метку времени; координаты положения в трехмерном пространстве; определение трансформации; и указание множества соседей. Соседи каждого узла образуют ребра графа, которые могут быть направленными. При таком подходе граф деформации соединяет части трехмерной модели, влияющие одна на другую в процессе осуществления деформирования. Число соседей может быть ограничено, например, в одном из вариантов – до четырех соседей. Определение трансформации может содержать определение аффинной трансформации, например, представленное матрицей 3 x 3 (инициализируемой в виде матрицы тождественного преобразования или единичной матрицы) и вектором 3 x 1 (инициализируемым в виде нуля) или двумя кватернионами. При осуществлении трансформации определение трансформации для каждого узла может быть оптимизировано в соответствии с набором поверхностных ограничений. При применении деформации идентифицируют множество влияющих узлов в графе для конкретного позиционного элемента трехмерной модели. В соответствии с этим положение позиционного элемента трехмерной модели может быть деформировано на основе взвешенной суммы трансформированных влияющих узлов, например, взвешенной суммы определений трансформации, применяемой к каждому из влияющих узлов в соответствии с расстоянием от положений этих узлов до текущего позиционного элемента. При использовании модели элементов поверхности, например, как это описано применительно к фиг. 6A и 6B, и положение, и нормаль к элементу поверхности могут быть деформированы этим способом. Например, узлы в графе деформации могут быть ассоциированы с элементами поверхности на основе моментов времени инициализации этих узлов. Список этих узлов может быть рассортирован по меткам времени. При поступлении команды на деформирование для элемента поверхности, может быть произведен двоичный поиск в списке узлов для заполнения множества временно близлежащих узлов. Из этого множества выбирают множество из k ближайших узлов для рассматриваемого элемента поверхности на основе величин расстояний. Эти узлы используют затем для деформирования рассматриваемого элемента. Эта процедура протекает быстро и позволяет работать в реальном времени или почти в реальном времени.
t
t
В одном примере граф деформации может быть построен по принципу кадр за кадром. В одном конкретном случае новый граф деформации для трехмерной модели может быть построен для каждого кадра данных изображения (т.е. F или ID). Это может содержать определение связности графа деформации, например, множества соседей для каждого узла графа. В одном случае граф деформации инициализируют с использованием трехмерной модели. Например, положения узлов для кадра могут быть определены на основе положений позиционных элементов в составе трехмерной модели (например, параметр p в модели сурфеля), а метки времени узлов могут быть заданы равными меткам времени позиционных элементов (например, параметр “Init_Time” на фиг. 6A). В одном случае узлы для графа деформации можно генерировать на основе отсчетов, таких как систематические отсчеты позиционных элементов в составе трехмерной модели. Эти отсчеты могут быть равномерно распределены по популяции, вследствие чего пространственная плотность графа деформации зеркально отражает плотность трехмерной модели. Множество узлов, выбранных путем отсчетов, может быть упорядочено на основе меток времени узлов. После этого связность графа деформации может быть определена с использованием информации о времени. В одном случае может быть выбрано множество узлов, соседствующими во времени, например, на основе меток времени узлов. Например, при рассмотрении некоего конкретного узла, который должен иметь четыре соседних узла, в качестве соседей для этого рассматриваемого узла можно выбрать два узла с предшествующими метками времени (в списке с упорядочением по времени) и два узла с последующими метками времени (в этом списке). Это имеет преимущества вычислительной эффективности и предотвращения воздействия некоррелированных по времени областей трехмерной модели одних на другие (например, предотвращения влияния активных областей на неактивные области). Например, граф деформации, ассоциированный с несколькими проходами общего трехмерного пространства, может быть комплексным и запутанным внутри себя, если рассматривать пространственно; однако упорядочение и рассмотрение графа во временной области позволяет сделать указанные несколько проходов раздельно и свободно их выравнивать. Это может контрастировать со сравнительными методами, определяющими связность графа на основе моментов времени позиций, например, в случаях использования графа позиций.
Пример процедуры, которая может быть применена блоком 740 деформирования модели для использования графа 760 деформации с целью деформирования существующей трехмерной модели 750 для генерации деформированной модели 770, будет далее описан более подробно. Блок 740 деформирования модели начинает работу посредством доступа к некоему конкретному позиционному элементу существующей трехмерной модели 750 (например, определение сурфеля, как это описано применительно к фиг. 6A, или другое определение на основе вокселя). В качестве первой операции блок 740 деформирования модели находит положение в графе 760 деформации узла, ближайшего к рассматриваемому конкретному позиционному элементу во времени. Разделение по времени сохраняется в качестве переменной. Далее, блок 740 деформирования модели определяет близлежащие узлы во времени, например, перемещаясь в процессе поиска прочь от указанного разделения по времени для заданного числа узлов. Эти близлежащие узлы могут быть затем рассортированы по расстояниям, например евклидовым расстояниям, относительно местонахождения рассматриваемого конкретного позиционного элемента. После этого заданное число «соседних» узлов, например, с использованием лимита соседних узлов, обсуждаемого выше, может быть затем выбрано в качестве ближайших k узлов. Далее можно генерировать набор весовых коэффициентов для каждого из этих узлов на основе нормированного расстояния между соответствующим узлом и рассматриваемым конкретным позиционным элементом. Можно также определить сумму весовых коэффициентов. Затем в качестве последней операции могут быть использованы определения трансформаций для соседних узлов с применением взвешивания с использованием индивидуальных вычисленных весовых коэффициентов для каждого из соседних узлов, так что такие индивидуальные весовые коэффициенты нормированы по сумме этих весовых коэффициентов. Это может содержать применение переменных для аффинной трансформации, обсуждаемой выше, применительно к рассматриваемому конкретному позиционному элементу для деформации положении и вектора нормали для этого рассматриваемого позиционного элемента. В случае элемента поверхности, показанном на фиг. 6A, другие аспекты рассматриваемого конкретного позиционного элемента остаются теми же самыми (например, могут быть применены к деформированной модели 770).
t
t
t
t
В одном примере выравнивание, выполняемое посредством механизма 370, 510 или 710 совмещения, осуществляется с использованием блока 740 деформирования модели. В рассматриваемом примере это достигается путем оптимизации параметров графа 760 деформации. Эта оптимизация может отражать совмещение поверхностей в трехмерной модели с использованием набора поверхностных соответствий, задаваемого на основе выходных данных механизма 370, 510 или 710 совмещения. Эти поверхностные соответствия могут указывать, что конкретная исходная позиция, имевшая место в первый момент времени, должна во второй момент времени достигнуть или совпасть с конкретной конечной позицией-адресатом. Каждое индивидуальное поверхностное соответствие может быть либо абсолютным (связывающим деформированное положение с абсолютным положением в трехмерном пространстве), либо относительным (связывающим деформированное положение с другим деформированным положением). При выравнивании активного и неактивного кадров (например, как описано со ссылками на фиг. 3 и 5) исходная точка может быть представителем некой точки в пределах активного кадра модели, а конечная точка-адресат может быть представителем точки в пределах неактивного кадра модели, что способствует выравниванию активных и неактивных частей модели. Например, первый момент времени может представлять собой момент времени инициализации для неактивных позиционных элементов модели, используемых для генерации некоего конкретного неактивного кадра модели; второй момент времени может быть моментом времени текущего кадра; исходная точка может представлять собой полученный в результате отсчета позиционный элемент, используемый для генерации активного кадра модели (например, используемый для вычисления кадра ), если смотреть на основе оценки текущей позиции P; а конечная точка-адресат может представлять собой полученный в результате отсчета позиционный элемент, используемый для генерации активного кадра модели (например, используемый для вычисления кадра ), если смотреть на основе оценки текущей позиции Pплюс заданная трансформация, H, в трехмерном пространстве. В этом случае конечная точка-адресат эквивалентна точке в пределах неактивного кадра модели, когда вы применяете заданную трансформацию (H), вычисленную для отображения активных частей модели на неактивные части, например, эта трансформация составляет по меньшей мере часть процедуры выравнивания, выполняемой механизмом 560 совмещения, показанным на фиг. 5. Эти поверхностные соответствия могут быть использованы для применения «замыкания локального петлевого контура». Аналогично, при выравнивании активного кадра с сохраненным представлением (например, как описано применительно к фиг. 7): первый момент времени может представлять собой момент времени инициализации этого сохраненного представления; второй момент времени может представлять собой момент времени текущего кадра; исходная точка может представлять собой полученный в результате отсчета позиционный элемент, используемый для генерации активного кадра модели (например, используемый для вычисления кадра ), если смотреть на основе оценки текущей позиции P; а конечная точка-адресат может представлять собой полученный в результате отсчета позиционный элемент, используемый для генерации активного кадра модели (например, используемый для вычисления кадра ), если смотреть на основе оценки текущей позиции Pплюс заданная трансформация, H, в трехмерном пространстве. Снова, когда заданная трансформация применена к активным частям модели, конечная точка-адресат является представителем выравнивания активных и неактивных моделей. Эти поверхностные соответствия могут быть использованы для применения «замыкания глобального петлевого контура». Эти поверхностные соответствия могут быть вычислены для полученного в результате отсчетов множества пикселей, например, для используемых кадров. В этих случаях выравнивание или совмещение могут содержать разрешение заданной трансформации в трех измерения для множества поверхностных соответствии.
В приведенном выше примере поверхностные соответствия могут быть использованы при вычислении одной или нескольких целевых функций для оптимизации параметров графа деформации. Например, одна целевая функция может содержать функцию ошибки, равную сумме ошибок расстояния между деформированной исходной точкой (например, при применении графа деформации) и конечной точкой-адресатом, эти исходные и конечные точки используются в указанных поверхностных соответствиях. Параметризация трехмерной модели по времени, как описано здесь, позволяет осуществлять нежесткое деформирование нескольких проходов одной и той же части трехмерного пространства для выравнивания, дающего возможность продолжить моделирование и слияние новых данных с повторно посещаемыми областями трехмерной модели. Другая целевая функция может быть использована для «фиксации» («прикалывания») неактивной части трехмерной модели на месте, т.е. для деформирования активных частей модели и трансформации их в неактивные части. Эта целевая функция может содержать функцию ошибки, равную сумме ошибки расстояния между деформированной исходной точкой (например, при применении графа деформации) и недеформированной конечной точкой-адресатом, эта конечная точка-адресат используется в поверхностных соответствиях. Другая целевая функция может также быть использована для удержания ранее совмещенных областей трехмерной модели на месте, т.е. при деформировании другой области карты, может потребоваться ограничить относительные положения ранее совмещенных областей, чтобы оставить их теми же самыми. Эта целевая функция может представлять собой функцию ошибки, равную сумме ошибок расстояния между деформированной исходной точкой (например, при применении графа деформации) и деформированной конечной точкой-адресатом. Эта целевая функция предотвращает замыкания петлевого контура и ассоциированные с этим деформации из-за ранее совмещенных областей трехмерной модели. Функции ошибок могут быть определены для максимизации жесткости заданной трансформации графа деформации (например, путем минимизации метрического показателя расстояния между трансформацией, умноженной на ее транспонированную версию, и единичной матрицей) и для обеспечения плавной деформации (например, на основе метрического показателя расстояния, содержащего соседние трансформации). Одна или несколько из этих описанных здесь функций ошибки могут быть минимизированы (например, в пределах взвешенной суммы) для определения дефиниций трансформаций для графа деформации. Например, для решения системы уравнений в процессорном блоке можно использовать итеративный метод Гаусса-Ньютона вместе с разреженной факторизацией Холесского. Для применения графа деформации к трехмерной модели может быть использован блок графического процессора, если он имеется в рассматриваемом варианте. Это может быть осуществлено параллельно в блоке графического процессора. В некоторых случаях одна или несколько целевых функций могут быть использованы для генерации метрического показателя с целью определения, следует ли осуществить выравнивание. Например, если на «выходе» одной или нескольких целевых функций появляется величина ошибки меньше заданной пороговой величины (например, когда целевая функция сравнивает деформированную исходную точку с конечной точкой-адресатом), тогда выравнивание принято; если величина ошибки больше заданной пороговой величины, тогда выравнивание отклоняется (случай равенства интерпретируется подходящим образом).
Некоторые компоненты аппаратуры, описанные выше, используют фотометрическое и геометрическое отслеживание связи кадра с моделью и слияние поступающих на вход данных изображения для генерации плотной карты или модели трехмерного пространства. Некоторые компоненты далее используют отслеживание от модели к модели или «замыкание локального петлевого контура» для выравнивания частей трехмерной модели, например, частей, представляющих повторные проходы или просмотры области трехмерного пространства. Выравнивание может быть достигнуто с использованием нежесткой пространственной деформации. Некоторые компоненты могут также использовать операцию распознавания места на основе прогнозируемого вида поверхности для разрешения «замыканий глобального петлевого контура». Эти компоненты позволяют генерировать глобально согласованную плотную трехмерную модель, например, с применением сурфелей, без использования графа положений, например, без применения отдельной структуры графа, которая использует модель положений устройства захвата изображения относительно опорных кадров из состава данных изображения. Аппаратура, содержащая эти компоненты, таким образом, способна осуществлять одновременные определение местонахождения и отображение плотной структуры в реальном времени или почти в реальном времени, так что работа является фактически одновременной вместо выполнения ее за две раздельные операции.
На фиг. 8 показан способ 800 обновления модели трехмерного пространства. Этот способ может также применять некоторые обсуждаемые выше операции. В блоке 810 получают данные изображения, представляющие наблюдение трехмерного пространства посредством устройств захвата изображения. Это может содержать, среди прочего, прием кадра данных изображения из потока видео в реальном времени, множества неподвижных изображений и/или видео файла. Эти данные изображения может содержать данные глубины и/или фотометрические данные, например, данные цвета. В блоке 820 вычисляют трехмерную модель трехмерного пространства на основе полученных данных изображения. Если трехмерная модель уже существует, например, частично, эта процедура может содержать получение модели и обновление или добавление данных к модели. Если трехмерная модель еще не существует, процедура может содержать инициализацию модели и самонастройку представления модели. В некоторых случаях блок 820 может содержать операции слияния данных, как описано выше. В блоке 830 трехмерную модель сегментируют или классифицируют для разбиения по меньшей мере на активную и неактивную части на основе по меньшей мере одного свойства модели. Это по меньшей мере одно свойство модели может содержать указание момента времени инициализации или обновления модели и/или геометрический размер, например, расстояние между устройством захвата изображения и сценой, расстояние от заданного положения и/или угол поворота от заданной ориентации.
В блоке 840 выполняется сравнение между активными частями модели и неактивными частями модели. Если данные изображения представляют первое множество данных изображения, захваченных или принятых, на этом этапе может и не быть неактивных частей, так что выравнивание не может быть выполнено, а способ возвращается назад к блоку 810. В этом случае могут быть повторены блоки 810, 820 и 830.
При повторении процедуры в блоке 820 только активные части трехмерной модели, например, после сегментации или разбиения в блоке 830, используются для обновления модели с использованием данных изображения. Блок 820 может содержать определение прогнозируемых кадров или видов активных частей модели и использование их с целью определения позиции устройства захвата изображения для кадра и для слияния второго множества данных изображения с моделью (например, только активные части модели могут быть обновлены после слияния данных).
При повторении процедуры в блоке 810 могут быть получены данные изображения, представляющие наблюдение трехмерного пространства вслед за перемещением устройства захвата изображения. Например, устройство захвата изображения может двигаться и записывать несколько проходов трехмерного пространства, где каждый проход может быть записан из другого множества местонахождений и/или ориентаций. Если данные изображения представляют повторный визит или повторное наблюдение конкретной области трехмерного пространства, затем в блоке 840 могут быть получены активные части модели, соответствующие уже существующим неактивным частям модели. Например, могут существовать вновь созданные элементы модели и ранее созданные элементы модели для общих положений в трехмерном пространстве. В некоторых случаях блок 840 может содержать сравнение прогнозируемых кадров или видов, генерируемых на основе как активных, так и неактивных моделей, и определение трансформации (например, H), отображающей одну в другую. В одном случае результат вычисления одной или нескольких целевых функций из графа деформации, как описано выше, может быть использован в качестве метрического параметра для определения, имеет ли место соответствие в блоке 840. Например, если трансформация определена, а метрический параметр ошибки указывает, что это ведет к более высокой ошибке согласованности модели, тогда способ может вернуться к блоку 810, однако, если метрический параметр меньше заданного порога, способ может перейти к блоку 850.
Если проверка в блоке 840 указывает, что активные и неактивные части соответствуют одна другой, так что кадр на основе одной из этих частей может быть выровнен с кадром на основе другой части без превышения заданной границы ошибки, тогда в блоке 850 активные части обновленной трехмерной модели совмещают с соответствующей неактивной частью трехмерной модели. Это может содержать применение какой-либо заданной трансформации с целью выравнивания активных и неактивных частей. В одном случае это может содержать применение трансформации для выравнивания прогнозируемых изображений или кадров, генерируемых на основе каждых – активных и неактивных частей. С использованием текущей оценки ориентации и местонахождения устройства захвата изображения, например, применяемой с использованием оптимизированного деформирования на основе графа деформации. Процедура совмещения в блоке 850 выравнивает, таким образом, активные части трехмерной модели, генерируемые после наблюдения области трехмерного пространства, с неактивными частями этой модели, сформированными после по меньшей мере одного предшествующего наблюдения этой области. Совмещение в блоке 850 может быть осуществлено только в том случае, если целевая функция, ассоциированная с совмещением, указывает, что выравнивает возможно, например, если метрический показатель ошибки станет ниже заданного порога.
На фиг. 9 показан способ 900 оценки позиции устройств захвата изображения. Этот способ может быть использован в качестве части процедуры, выполняемой в блоке 810 и блоке 820, показанных на фиг. 8. В блоке 910 получают данные изображения. Этот блок может реализовать блок 810. В этом случае данные изображения могут содержать данные изображения. В блоке 920 определяют модель кадра. Модель кадра в этом случае получают на основе активных частей трехмерной модели трехмерного пространства. Например, она может содержать данные, указывающие проекцию или «разбрызгивание» точек модели на заданную плоскость в пределах пространства модели. В блоке 930 позицию устройства захвата изображения используют для генерации оценки данных изображения, полученных в блоке 910. Это осуществляется путем сравнения данных для продуцируемого кадра и указанных данных изображения, например, принятых в блоке 910 от видеокамеры в реальном времени и/или из медиафайла, с прогнозируемыми данными для кадра модели. Например, это может быть осуществлено так, как это описано применительно к компоненту 515 отслеживания связи кадра с моделью, показанному на фиг. 5. Блок 930 может содержать сравнение данных из состава модели кадра для момента t-1 времени с данными кадра изображения для момента t времени. Найденная плоскость, используемая для проецирования или «разбрызгиваемая» точек активных частей модели, может содержать предыдущую оценку положения, например, для момента t-1 времени.
В случае, показанном на фиг. 9, оценка позиции устройства захвата изображения может быть использована на операции совмещения в блоке 850. Это может содержать определение прогнозируемых отображений трехмерной модели для активных и неактивных частей с использованием позиции устройства захвата изображения и трансформацию активных частей таким образом, чтобы прогнозируемые отображения оказались выровнены.
В одном случае данные изображения содержат по меньшей мере данные глубины, указывающие расстояние от устройства захвата изображения до нескольких элементов изображения, а оценка позиции устройства захвата изображения содержит сравнение по меньшей мере данных глубины для продуцируемого кадра указанных данных изображения с прогнозируемыми данными глубины для кадра модели. В дополнение к этому или в качестве альтернативы данные изображения могут содержать по меньшей мере данные цвета для нескольких элементов изображения, а оценка позиции устройства захвата изображения может содержать сравнение по меньшей мере данных цвета для продуцируемого кадра указанных данных изображения с прогнозируемыми данными цвета для кадра модели. В одном случае процедура оценки позиции устройства захвата изображения содержит минимизацию функции ошибки. В этом случае функция ошибки может представлять собой функцию: геометрической погрешности на основе сравнения данных глубины для продуцируемого кадра указанных данных изображения с прогнозируемыми данными глубины для модели и фотометрической погрешности на основе сравнения данных цвета для продуцируемого кадра указанных данных изображения с прогнозируемыми данными цвета для кадра модели. Аналогичная функция ошибки может быть также использована при определении трансформации, совмещающей активные и неактивные части в блоке 850.
В одном примере процедура совмещения активных частей модели с неактивными частями трехмерной модели содержит выполнение совмещения по локальному петлевому контуру, если метрический показатель выравнивания между активными частями трехмерной модели для рассматриваемого конкретного кадра и неактивными частями трехмерной модели для этого рассматриваемого кадра указывает, что величина несовмещения ниже заданного порога. Например, метрический показатель выравнивания может представлять собой целевую функцию, получаемую в результате применения деформации с поверхностными соответствиями, содержащей трансформацию, используемую для отображения активного кадра модели с неактивным кадром модели. Совмещение в локальном петлевом контуре может содержать применение трансформации путем деформирования активных и неактивных частей с использованием графа деформации.
В одном из примеров блок 820 может содержать сохранение представления трехмерной модели. Это может быть фрактально кодированное представление. В этом случае способ 800 может далее содержать осуществление совмещения в глобальном петлевом контуре, если текущее представление трехмерной модели согласуется с ранее сохраненным представлением трехмерной модели. Такое совмещение в глобальном петлевом контуре может содержать деформирование активных и неактивных частей с использованием графа деформации. В этом случае представление трехмерной модели может содержать представление с меньшим разрешением для прогнозируемого кадра, этот прогнозируемый кадр определяют на основе проекции от активных частей трехмерной модели. В случаях, где применяется деформирование, процедура такого деформирования может содержать нежесткое деформирование активных частей трехмерной модели и может быть осуществлена условно на основе геометрического выравнивания данных прогнозируемого кадра для активных и неактивных частей.
В некоторых вариантах трехмерная модель может содержать модель элементов поверхности, например, как описано со ссылками на фиг. 6A и 6B. Сегментация трехмерной модели в блоке 830 может содержать сегментацию трехмерной модели на основе одного или нескольких из следующих параметров: момента времени генерации модели для некой конкретной позиции в составе трехмерной модели; момента времени обновления модели для некой конкретной позиции в составе трехмерной модели; и найденного расстояния между некой конкретной позицией в составе трехмерной модели и устройством захвата изображения.
3
6
2
В некоторых тестовых случаях обнаружено, что совмещение в локальном петлевом контуре осуществляется более часто, чем совмещение в глобальном петлевом контуре (например, в пропорции 10 или 20 к 1). В некоторых случаях совмещение в глобальном петлевом контуре может не осуществляться (например, может быть не нужно, или согласование может быть не найдено). Применение совмещения в локальном петлевом контуре и в глобальном петлевом контуре может зависеть от обрабатываемых данных изображения, например, может зависеть от траектории наблюдения с использованием устройства захвата изображения. В некоторых тестовых случаях: число кадров имело величину порядка 10; число позиционных элементов (например, сурфелей) имело величину порядка 10; и число деформационных узлов и число сохраненных представлений имело величину порядка 10. Время обработки кадра для этих тестовых случаев составляло от 20 до 40 мс, в зависимости от числа позиционных элементов, имеющихся в текущий момент в трехмерной модели. Это соответствует числу кадров, обрабатываемых в секунду, или частоте этих кадров около 30 Гц. В этих тестовых случаях применялась тестовая платформа, использующая процессор Intel Core i7-4930K с тактовой частотой 3.4 ГГц и емкостью запоминающего устройства, равной 32 Гбайт и графический процессор nVidia GeForce GTX 780 Ti с запоминающим устройством емкостью 3 Гбайт.
На фиг. 10 более подробно представлен пример процесса 1000 для обновления трехмерной модели трехмерного пространства. Как можно видеть, процесс 1000 соответствует компонентам, показанным на фиг. 5. В блоке 1005 принимают кадры глубины и цвета от устройства захвата изображения. В блоке 1010 генерируют прогнозируемые кадры на основе активных частей трехмерной модели. Это может содержать обработку дефиниций сурфелей и использование только сурфелей, для которых последняя модифицированная метка времени попадает в конкретное временное окно, например, относительно текущего момента времени. Это может далее содержать использование оценки позиции устройства захвата изображения в момент t-1 времени, например, где позиционные элементы, классифицированные как «активные», проецируют на плоскость, указывающую местонахождение и ориентации области, видимой устройством захвата изображения в момент t-1 времени. В блоке 1015 осуществляют отслеживание связи кадра с моделью. Это может содержать определение оценки позиции для текущего момента времени путем сравнения данных, принятых из блоков 1005 и 1010. В блоке 1020 найденная оценка позиция для текущего момента времени может быть использована для обновления прогнозируемых кадров глубины и цвета, например, для проецирования позиционных элементов, классифицированных как «активные», на плоскость, обозначающую местонахождение и ориентацию области, видимой устройством захвата изображения в момент t времени, как указывает эта текущая оценка позиции.
В блоке 1025 определяют, согласуются ли обновленные прогнозируемые кадры глубины и цвета с какими-либо сохраненными представлениями. Это может содержать сравнения, описываемые со ссылками на фиг. 7. Если найдено согласование с каким-либо конкретным сохраненным представлением, тогда в блоке 1030 определяют, возможно ли совмещение обновленных прогнозируемых кадров глубины и цвета с данными, соответствующими этому найденному конкретному представлению. Это может содержать применение деформации, описываемой со ссылками на блок 740 деформирования модели, показанный на фиг. 7. Если результат на выходе одной или нескольких целевых функций указывает, что деформирование, использующее граф деформации, приводит к ошибке, превосходящей некий заданный порог, имея поверхностные соответствия, привязывающие точки в одном или нескольких обновленных прогнозируемых кадрах к сохраненному соответствию, тогда результат указанного определения может быть отрицательным; в противном случае результат этого определения может быть положительным. Если результат определения в блоке 1030 является отрицательным, например, считается, что невозможно совмещение между сохраненным представлением и обновленными прогнозируемыми кадрами, способ переходит к блоку 1035, где генерируют неактивные кадры модели из состава данных глубины и цвета. Если определение в блоке 1035 является положительным, например, считается, что совмещение между сохраненным представлением и обновленными прогнозируемыми кадрами возможно, тогда трехмерную модель деформируют в блоке 1040. Это может содержать применение оптимизированного графа деформации, где оптимизация ограничена указанными выше поверхностными соответствиями и где эта оптимизация минимизирует одну или несколько функций ошибок для определения дефиниций трансформации, которая должна быть применена узлами графа деформации.
В блоке 1035 генерируют неактивные кадры модели данных глубины и цвета. В блоке 1045 определяют, могут ли обновленные в блоке 1020 прогнозируемые кадры быть совмещены с неактивными кадрами модели, генерируемыми в блоке 1035. В блоке 1045 эффективно определяют, возможно ли совмещение активных частей модели с неактивными частями модели, на основе данных, указывающих прогнозируемые виды, генерируемые для каждой из указанных двух частей в ассоциации с текущей оценкой позиции. Определение в блоке 1045 может быть основано на сравнении двух наборов прогнозируемых видов с использованием способов, применяемых как часть отслеживания связи кадра с моделью в блоке 1015, например, посредством определения геометрической и/или фотометрической погрешности. В одном случае результат на выходе взвешенной функции ошибки, содержащей геометрическую и/или фотометрическую погрешность, может быть использован, среди других метрических показателей для определения в блоке 1045, например, если ошибка ниже заданного порога, совмещение считается возможным. Можно также оценить собственные значения меры ковариантности для функции ошибки, например, в сравнении с неким порогом, для осуществления такого определения. Блок 1045 может также содержать определение трансформации, отображающей прогнозируемые кадры один на другой, например, способом, аналогичным определению трансформации для использования при оценке позиции. Эта трансформация может быть использована для определения, аналогичного определению, осуществляемому в блоке 1030, т.е. может составлять часть поверхностного соответствия, используемого для ограничения оптимизации, где это может вносить вклад в метрический показатель, используемый для определения, возможно ли совмещение моделей.
Если в блоке 1045 получен положительный результат определения, тогда в блоке 1040 осуществляют деформирование активных и неактивных частей модели. Эта процедура может содержать применение трансформации, определяемой как часть процедуры оценки в блоке 1045. Снова блок 1040 может содержать определение набора параметров деформации, например, в качестве результата оптимизации, где эти параметры могут составлять часть графа деформации. Блок 1040 может содержать применение параметров с использованием графа для деформирования точек, составляющих трехмерную модель. Выходные данные от блока 1040 могут задавать все видимые неактивные позиционные элементы, например, те, которые видны в составе неактивные кадры модели, в качестве активных элементов.
Наконец, в блоке 1050 осуществляют слияние кадров глубины и цвета, принимаемых в блоке 1005, с любой деформированной моделью, полученной в результате работы блока 1040. Если результат определения в блоке 1045 является отрицательным, деформирование модели не производится, а может осуществляться слияние данных изображения с недеформированной моделью.
После блока 1050 способ можно повторить для последующего кадра данных изображения, например, вернувшись к блоку 1005, где принимают следующие кадры данных глубины и цвета. Полученная в результате слияния модель с выхода блока 1050 может быть затем использована в блоке 1010 для генерации активных кадров глубины и цвета для пересмотренной модели, например, для отслеживания относительно следующих кадров. После повторения блока 1010 соответствующее представление может быть сохранено для последующего использования в блоке 1025 согласования.
Некоторые описываемые здесь способы строго выравнивают активные области трехмерной модели с неактивными областями этой модели для достижения плотного замыкания локальных петлевых контуров. Это может производиться применительно к некой поверхности при использовании модели элементов поверхности. Если активные части модели отходят слишком далеко от ее неактивных частей для того, чтобы можно было добиться сходимости локального выравнивания, способ замыкания глобального петлевого контура на основе внешнего вида может быть использован для начальной раскрутки деформации с целью нового, повторного выравнивания активных частей модели с нижележащими неактивными частями для плотного замыкания глобального петлевого контура и согласованности модели, например, относительно поверхностей модели.
Некоторые компоненты систем и способы, описываемые здесь, могут быть реализованы посредством компьютерного программного кода, сохраняемого на энергонезависимом носителе информации. На фиг. 11 представлен конкретный пример 1100 системы, содержащей по меньшей мере один процессор 1110, построенный для считывания данных с читаемого компьютером носителя 1120 информации. Система может содержать часть мобильного или роботизированного устройства, как описано выше. Читаемый компьютером носитель 1120 информации содержит множество записанных на этом носителе читаемых компьютером команд 1130. Читаемый компьютером носитель 1120 информации из рассматриваемого примера также конфигурирован для сохранения кадров 1140 данных изображения и дефиниций 1150 элементов поверхности. Эти последние дефиниции 1150 могут представлять собой дефиниции, такие как показано на фиг. 6A. В других примерах компоненты 1130, 1140 и 1150 могут быть сохранены на отдельных носителях информации. Во время работы по меньшей мере один процессор 1110 конфигурирован для загрузки команд 1130 в запоминающее устройство для обработки. Эти команды 1130 сформулированы так, чтобы при их выполнении процессор осуществлял ряд действий. При осуществлении этих действий процессор получает команды 1160 и данные 1140 изображения, содержащие несколько кадров. В этом примере каждый кадр содержит данные глубины и данные цвета, эти данные глубины указывают расстояние от объекта в трехмерном пространстве до формирователя сигналов изображения, используемого для захвата данных изображения. Эти действия далее побуждают процессор вычислить, в соответствии с командой 1170, дефиниции 1150 элементов поверхности, представляющие модель трехмерного пространства на основе данных изображения, эта модель содержит несколько элементов, где каждый элемент имеет некоторую позицию в трехмерном пространстве.
В одном случае команда 1170 содержит по меньшей мере подкоманду для сегментирования модели на активные и неактивные части на основе по меньшей мере одного наблюдаемого параметра для каждой части, такого как момент времени, когда элемент поверхности в дефиниции 1150 был обновлен последний раз. Команда 1170 также содержит подкоманды для определения, для рассматриваемого конкретного кадра в составе данных изображения: оценки позиции формирователя сигналов изображения путем сравнения данных глубины и данных цвета для рассматриваемого конкретного кадра с прогнозируемыми данными глубины и цвета для кадра модели, выведенного из этой модели; обновления прогнозируемых данных глубины и цвета для кадра модели с использованием оценки позиции формирователя сигналов изображения; выравнивания активных частей модели с неактивными частями этой модели путем трансформации элементов, ассоциированных по меньшей мере с одной из активных и неактивных частей модели; и обновления выровненных активных частей модели с использованием данных глубины и данных цвета для рассматриваемого конкретного кадра.
В некоторых примерах, описываемых здесь, проблему генерации или обновления подробной трехмерной модели трехмерного пространства рассматривают с использованием слияния данных по временным окнам в сочетании с отслеживанием связи кадра с моделью и нежестким деформированием. Благодаря введению большого числа небольших локальных замыканий петлевых контуров от модели к модели в сочетании с замыканиями глобальных петель большего масштаба, можно оставаться близко к режиму вероятностного распределения модели или карты и создавать глобально согласованные реконструкции в реальном времени без использования оптимизации графа позиций или этапов пост-обработки. Использование частых нежестких деформаций модели, например, на основе принципа кадр за кадром, улучшает как оценку траектории видеокамеры, так и качество реконструкции поверхности. Такой подход также эффективен, как при протяженных, «коридорного типа», перемещениях видеокамеры, так и при более петлеобразных сложных траекториях сканирования помещения.
Приведенные выше примеры следует рассматривать в качестве иллюстрации. Можно также представить и другие примеры. В одном случае механизм моделирования может быть конфигурирован для применения способов деформирования, описываемых здесь, и/или использования модели элементов поверхности без конкретных признаков сегментатора модели и/или механизма совмещения. Следует понимать, что любой признак, описываемый для какого-либо одного примера, может быть использован отдельно или в сочетании с одним или несколькими другими рассматриваемыми здесь признаками, а также может быть использован в сочетании с одним или несколькими признаками каких-либо других примеров. Более того, не рассмотренные выше эквиваленты и модификации могут быть также использованы без отклонения от объема настоящего изобретения, как он определен прилагаемой формулой изобретения.