АВТОМАТИЧЕСКАЯ КАЛИБРОВКА СИСТЕМЫ ОТСЧЕТА ДОПОЛНЕННОЙ РЕАЛЬНОСТИ
AUTOMATED CALIBRATION OF REFERENCE FRAME OF AUGMENTED REALITY

Область техники
Настоящее изобретение относится к дополненной реальности, и в частности к одной или нескольким системам, способам, стандартным процедурам и/или методам для автоматической калибровки системы отсчета дополненной реальности.
Уровень техники
Дополненная реальность дополняет или добавляет восприятие реального поля зрения, например видеопотока в реальном времени, посредством наложения виртуальных объектов или носителя в реальное поле обзора. Дополненная реальность предоставляет возможность наложить на реальное поле обзора искусственную информацию, связанную с реальным миром и его объектами. Дополненная реальность хотя и связана, но отличается от виртуальной реальности, которая заменяет реальное поле обзора искусственным полем обзора. Дополненная реальность применяется в таких областях, как развлечения, видеоигры, спортивные соревнования и сотовый телефон.
Кроме того недостатки традиционных подходов станут очевидны специалистам из сравнения таких систем с некоторыми объектами настоящего изобретения, как указано далее в оставшейся части описания со ссылками на прилагаемые чертежи.
Сущность изобретения
Настоящее изобретение описывает одну или несколько систем, способов, стандартных процедур и/или методов автоматической калибровки системы отсчета для дополненной реальности. Одна или несколько систем, способов, стандартных процедур и/или методов могут предоставить возможность для простой и быстрой калибровки системы дополненной реальности, например, посредством автоматически калибрующейся системы отсчета виртуальных объектов и/или камеры.
Один или несколько вариантов осуществления настоящего изобретения описывают способ дополненной реальности, например, исполненной посредством системы обработки данных, имеющей по меньшей мере один процессор. Способ может включать в себя принимающую или формирующую систему координат следящей системы, связанной со следящей системой объекта. Система координат следящей системы может быть связана с реальным трехмерным пространством. Следящая система может отслеживать позицию и ориентацию в реальном трехмерном пространстве реального объекта и камеры. Способ может включать в себя прием из следящей системы данных о первой системе отсчета реального объекта. Первая система отсчета реального объекта может показывать позицию и ориентацию реального объекта относительно системы координат следящей системы. Способ может включать в себя определение второй системы отсчета реального объекта. Вторая система отсчета реального объекта может показывать позицию и ориентацию реального объекта относительно системы координат следящей системы. Способ может включать в себя прием данных о первой системе отсчета виртуального объекта. Виртуальный объект может быть смоделирован в соответствии с реальным объектом. Первая система отсчета виртуального объекта может быть не связана с системой координат следящей системы. Способ может включать в себя определение второй системы отсчета виртуального объекта. Вторая система отсчета виртуального объекта может показывать позицию и ориентацию виртуального объекта относительно системы координат следящей системы. Способ может включать в себя определение преобразования координат виртуального объекта между первой системой отсчета виртуального объекта и системой координат следящей системы. Способ может включать вывод на экран дополненной сцены, включающей вид реального трехмерного пространства, вид реального объекта и одного или нескольких наложенных виртуальных изделий. Преобразование координат виртуального объекта можно применить для определения положения одного или нескольких наложенных виртуальных элементов в дополненной сцене так, чтобы один или несколько виртуальных элементов были связаны с реальным объектом.
Один или несколько вариантов осуществления настоящего изобретения описывают способ дополненной реальности, например, исполненной посредством системы обработки данных, имеющей по меньшей мере один процессор. Способ может включать в себя принимающую или формирующую систему координат следящей системы, связанной со следящей за объектами системой. Система координат следящей системы может быть связана с реальным трехмерным пространством. Следящая система может отслеживать позицию и ориентацию в реальном трехмерном пространстве камеры, которая захватывает реальное трехмерное пространство и печатный маркер. Способ может включать прием из следящей системы данных о системе отсчета камеры. Система отсчета камеры может показывать позицию и ориентацию камеры относительно системы координат следящей системы. Способ может включать принимающую или формирующую систему координат печатного маркера. Система координат печатного маркера может быть связана с реальным трехмерным пространством. Система координат печатного маркера может быть связана с системой координат следящей системы. Способ может включать определение системы отсчета объектива камеры. Система отсчета камеры может показывать позицию и ориентацию объектива камеры относительно системы координат печатного маркера. Способ может включать определение преобразования координат объектива камеры между системой отсчета камеры и системой отсчета объектива камеры. Способ может включать вывод на экран дополненную сцену, включающую вид реального трехмерного пространства и одного или нескольких виртуальных элементов. Преобразование координат объектива камеры можно использовать для изменения (или искажения) одного или нескольких виртуальных элементов в дополненной сцене.
Один или несколько вариантов осуществления настоящего изобретения описывают некоторую систему. Эта система может включать в себя камеру, которая захватывает вид реального трехмерного пространства, включающего реальный объект. Эта система может включать в себя следящую систему, которая отслеживает позицию и ориентацию в реальном трехмерном пространстве реального объекта и камеры. Следящая система может быть выполнена с возможностью задать систему координат следящей системы, и эта система координат следящей системы может быть связана с реальным трехмерным пространством. Система может включать в себя компьютер, соединенный с камерой и следящей системой, и этот компьютер может включать в себя один или несколько блоков памяти. Компьютер может быть сконфигурирован с разработчиком модели виртуального объекта. Разработчик модели виртуального объекта может быть выполнен с возможностью принимать из следящей системы первую систему отсчета реального объекта, при этом первая система отсчета реального объекта может показывать позицию и ориентацию реального объекта в системе координат следящей системы. Разработчик модели виртуального объекта может быть дополнительно выполнен с возможностью вычисления второй системы отсчета реального объекта, при этом вторая система отсчета реального объекта может показывать позицию и ориентацию реального объекта в системе координат следящей системы. Разработчик модели виртуального объекта может быть дополнительно выполнен с возможностью принимать из одного или нескольких блоков памяти первую систему отсчета виртуального объекта, при этом виртуальный объект может быть смоделирован в соответствии с реальным объектом и первая система отсчета виртуального объекта может быть не связана с системой координат следящей системы. Разработчик модели виртуального объекта может быть дополнительно выполнен с возможностью вычислять вторую систему отсчета виртуального объекта, при этом вторая система отсчета виртуального объекта может показывать позицию и ориентацию виртуального объекта в системе координат следящей системы. Разработчик модели виртуального объекта может быть выполнен с дополнительной возможностью вычисления преобразования координат виртуального объекта между первой системой отсчета виртуального объекта и системой координат следящей системы. Разработчик модели виртуального объекта может быть выполнен с дополнительной возможностью создать и хранить в одном или нескольких блоках памяти дополненную сцену, включающую вид реального трехмерного пространства, вид реального объекта и один или несколько наложенных виртуальных элементов. Преобразование координат виртуального объекта можно использовать для определения положения одного или нескольких наложенных виртуальных элементов в дополненной сцене так, чтобы один или несколько виртуальных элементов были связаны с реальным объектом.
Один или несколько вариантов осуществления настоящего изобретения описывают систему обработки данных, которая включает в себя один или несколько блоков памяти, которые хранят программный код, и один или несколько процессорных блоков, соединенных с одним или несколькими блоками памяти. Один или несколько процессорных блоков могут исполнять программный код, сохраненный в одном или нескольких блоках памяти, которые принимают или задают систему координат следящей системы. Система координат следящей системы может быть связана с реальным трехмерным пространством. Следящая система может отслеживать позицию и ориентацию в реальном трехмерном пространстве камеры, которая захватывает реальное трехмерное пространство и печатный маркер. Один или несколько процессорных блоков могут исполнять программный код, сохраненный в одном или нескольких блоках памяти, чтобы принять из следящей системы систему отсчета камеры. Система отсчета камеры может показывать позицию и ориентацию камеры относительно системы координат следящей системы. Один или несколько процессорных блоков могут исполнять программный код, сохраненный в одном или нескольких блоках памяти, чтобы принять или задать систему координат печатного маркера. Система координат печатного маркера может быть связана с реальным трехмерным пространством и с системой координат следящей системы. Один или несколько процессорных блоков могут исполнять программный код, сохраненный в одном или нескольких блоках памяти, чтобы определить систему отсчета объектива камеры. Система отсчета камеры может показывать позицию и ориентацию объектива камеры относительно системы координат печатного маркера. Один или несколько процессорных блоков могут исполнять программный код, сохраненный в одном или нескольких блоках памяти, чтобы определить преобразование координат объектива камеры между системой отсчета камеры и системой отсчета объектива камеры. Один или несколько процессорных блоков могут исполнять программный код, сохраненный в одном или нескольких блоках памяти, чтобы вывести на экран дополненную сцену, включающую вид реального трехмерного пространства и один или несколько виртуальных элементов. Преобразование координат объектива камеры можно использовать для изменения (или искажения) одного или нескольких виртуальных элементов в дополненной сцене.
Эти и другие преимущества, объекты и новые признаки настоящего изобретения, а также подробности изображенного варианта его осуществления будут более понятны из следующего описания и чертежей. Следует понимать, что вышеизложенное общее описание является лишь иллюстративным и не ограничивает заявленное изобретение.
Краткое описание чертежей
Некоторые признаки и преимущества приведены далее в описании, в котором рассмотрены некоторые варианты осуществления, представленные в качестве примера, посредством следующих чертежей.
На фиг. 1 изображена блок-схема иллюстративных устройств, компонентов, программного обеспечения и взаимодействий системы дополненной реальности в соответствии с одним или несколькими вариантами осуществления настоящего изобретения, при этом автоматические методы калибровки системы отсчета, описанные в данном документе, могут быть полезны в такой системе дополненной реальности.
На фиг. 2 изображена блок-схема иллюстративного метода калибровки в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 3 изображена иллюстрация оснастки в виде рейсшины, применяемой в следящей системе по ряду соображений в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 4A изображена иллюстрация примера реального объекта с некоторым числом маркеров отслеживания, прикрепленных или помещенных на реальном объекте в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 4B изображена иллюстрация того, как следящая система может создать представление реального объекта и определить его положение в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 5 изображена иллюстрация того, как программное обеспечение виртуального моделирования может задать новую систему отсчета реального объекта в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 6 изображена иллюстрация того, как программное обеспечение виртуального моделирования может задать новую систему отсчета виртуального объекта в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 7 изображена блок-схема иллюстративного метода калибровки в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 8A изображена иллюстрация примера камеры и системы координат камеры в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 8B изображена иллюстрация того, как следящая система может создать представление камеры и определить его положение в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 8C изображена иллюстрация примера компьютерного планшета со встроенной камерой в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 9A и 9B изображена иллюстрация того, как печатный маркер может предоставить возможность определения системы отсчета объектива камеры.
На фиг. 10A изображена иллюстрация примера дополненной сцены, которая может быть создана в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 10B изображена иллюстрация примера дополненной сцены, которая может быть создана в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 11 изображена схема последовательности операций, которая показывает примеры шагов способа автоматической калибровки системы отсчета дополненной реальности в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 12 изображена схема последовательности операций, которая показывает примеры шагов способа автоматической калибровки системы отсчета дополненной реальности в соответствии с одним или несколькими вариантами осуществления настоящего изобретения.
На фиг. 13 изображена блок-схема примера системы обработки данных, которую можно применить для реализации одного или нескольких вариантов осуществления настоящего изобретения.
Подробное описание
В различных системах дополненной реальности для отслеживания позиции и ориентации камеры и различных объектов реального мира в трехмерном пространстве можно применить следящую систему. Например, следящая система может отслеживать камеру и участок оборудования, который камера наблюдает/захватывает. Различные системы дополненной реальности могут попытаться создать дополненную сцену, которая включает в себя реальную сцену, например, захваченную камерой (включающей различные реальные объекты), и наложенный виртуальный носитель и/или объекты. Чтобы создать дополненную сцену, следящая система может установить виртуальную систему координат и может отслеживать представления реальных объектов или "определять их положение" в этой системе координат. Различные системы дополненной реальности могут попытаться "определить положение" различных виртуальных объектов (например, моделей/объектов CAD) в этой же системе координат, для того чтобы создать дополненную сцену. Виртуальные объекты/модели могут иметь свою собственную произвольную систему отсчета (например, позиции и ориентации в трехмерном пространстве) и, таким образом, чтобы определить положение виртуального объекта в системе координат следящей системы, должно быть определено преобразование координат между системой координат следящей системы и системой отсчета виртуального объекта. Кроме того, если камера (например, камера, захватывающая реальную сцену) перемещается, система дополненной реальности может попытаться изменить вид виртуальных объектов. Для того, чтобы сделать это точно, системе дополненной реальности может быть необходимо отслеживать позицию и ориентацию объектива камеры. Однако следящая система может отслеживать только позицию и ориентацию всей камеры. Различные программы из программного обеспечения (например, совместно с другими частями) можно применить для определения системы отсчета для объектива камеры в системе координат, но эти программы отслеживания объектива из программного обеспечения могут отслеживать объектив в системе координат, установленной самой программой отслеживания объектива из программного обеспечения. Таким образом, чтобы определить положение объектива камеры в системе координат следящей системы, должно быть определено преобразование координат между системой координат следящей системы и системы отсчета объектива. Определение этих преобразований координат (например, для виртуальных объектов и/или для объектива камеры) можно назвать калибровкой системы дополненной реальности или калибровкой систем отсчета.
Следует понимать, что термины "система координат", "система отсчета" и "поза" могут быть применены везде в данном описании и быть связанными. Термин "система координат" может относиться к представлению трехмерного пространства, где система координат включает в себя три плоскости или оси (например, ось X, ось Y, ось Z) и начало отсчета (например, точка пересечения трех осей). Термин "система отсчета" или "отсчетная система" может относиться к местоположению и ориентации в трехмерном пространстве объекта или точки, например, в системе координат. Система отсчета объекта может включать в себя начало отсчета (например, аппроксимированный центр масс) для определения положения объекта и ориентации объекта (например, 3 оси, установленные относительно объекта). Термин "поза" это краткая форма для фразы "позиция и ориентация" и может относиться к позиции (например, X, Y, Z координаты) и ориентации (например, поворот относительно продольной оси, поперечной оси, вертикальной оси) объекта в трехмерном пространстве.
Много систем дополненной реальности могут выполнять калибровку системы дополненной реальности вручную или методом последовательного приближения, например, аппроксимируя систему отсчета виртуальной модели и/или объектива камеры относительно системы координат следящей системы и затем тестируя дополненную сцену, чтобы определить, была ли аппроксимация хорошей. Например, специалист может просто посмотреть на наложение виртуальных объектов в дополненной сцене и сделать вывод, относительно того, появились ли они в своих правильных положениях при разных местоположениях и ориентациях камеры. Для этого процесса ручной калибровки может потребоваться оперирование двенадцатью параметрами, например, шестью параметрами виртуального объекта (например, X, Y, Z координаты и крен, тангаж, рыскание) и шестью параметрами объектива камеры (например, X, Y, Z координаты и крен, тангаж, рыскание). Этот процесс может быть дорогим и/или занимающим много времени, например, может занять много часов (точнее, более 8 часов) для завершения. Даже, когда процесс ручной калибровки завершен, он все еще может не привести к точному решению/калибровки. Например, виртуальный объект, положение которого оказывается определенным соответствующим образом при одной позиции камеры, может оказаться не определенным соответствующим образом при других позициях камеры. Малые ошибки в определении положения виртуального объекта могут привести к большим ошибкам на более крупных реальных объектах. Кроме того, каждый раз, когда система дополненной реальности устанавливается в новую окружающую обстановку или для нового реального объекта или камеры, система дополненной реальности должна быть вручную откалибрована.
Настоящее изобретение описывает одну или несколько систем, способов, стандартных процедур и/или методов автоматической калибровки системы отсчета для дополненной реальности. Одна или несколько систем, способов, стандартных процедур и/или методов могут предоставить возможность простой и быстрой калибровки системы дополненной реальности, например, посредством автоматически калибрующейся системы отсчета виртуальных объектов и/или камеры. Одна или несколько систем, способов, стандартных процедур и/или методов могут предоставить возможность установки системы дополненной реальности в новую окружающую обстановку или на новый реальный объект (например, участок оборудования) в относительно короткое время (например, менее 15 минут) и могут предоставить возможность для точного совмещения наложенного виртуального контента с реальной сценой. Точное совмещение виртуального контента может быть критичным, если система дополненной реальности применяется для дачи указания специалисту выполнить точную задачу, например, просверлить малое отверстие в точно заданном месте. Одна или несколько систем, способов, стандартных процедур и/или методов могут определить и/или вычислить преобразования координат между различными системами отсчета (например, системы координат следящей системы, системы отсчета виртуального объекта и системы отсчета объектива камеры). Настоящее изобретение может описать две основные стандартные процедуры и/или методы калибровки. Первая стандартная процедура и/или метод калибровки может определить и/или вычислить преобразование координат между системой отсчета виртуального объекта (например, модели CAD) и системой координат, связанной со следящей системой. Вторая стандартная процедура и/или метод калибровки может определить и/или вычислить преобразование координат между системой отсчета объектива камеры и системой отсчета всей камеры, как это определено следящей системой. Эти стандартные процедуры и/или методы могут калибровать систему дополненной реальности для быстрого, точного совмещения виртуального контента с видом прямой трансляции реальной сцены.
На фиг. 1 изображена блок-схема примеров устройств, компонентов, программного обеспечения и взаимодействий системы 100 дополненной реальности в соответствии с одним или несколькими вариантами осуществления настоящего изобретения, где автоматические методы калибровки системы отсчета, описанные в данном документе, могут быть полезной в указанной системе дополненной реальности. Система 100 дополненной реальности может включать в себя камеру 102, которая может захватывать и/или передавать видеопоток реальной сцены в реальном времени. Реальная сцена может включать в себя один или несколько реальных объектов, например реальный объект 104. Реальный объект 104 может быть одним из различных объектов, например инструментом, участком оборудования, большим искусственным спутником, блоком управления, панелью управления или многими другими объектами. Камера 102 может быть связанной с компьютером 106, при этом компьютер может интерпретировать и/или обрабатывать информацию (например, потоковое видео), отправленную от камеры, связанной с реальными сценами и/или объектами захваченными камерой.
Система 100 дополненной реальности может включать в себя следящую систему 108. Следящая система 108 может отслеживать "позу" (позицию и ориентацию в трехмерном пространстве) реального объекта 104 и камеры 102 и может передавать эту информацию (например, в реальном времени) в компьютер (например, компьютер 106) или другой компонент. Следящая система 108 может включать в себя различные компоненты, например некоторое количество маркеров отслеживания, некоторое количество измерительных устройств для распознавания маркеров отслеживания и базовое вычислительное устройство, которое может прогнать соответствующее программное обеспечение следящей системы. В одном из примеров каждый маркер может представлять собой маленький шарик (например, 10 миллиметровый шарик) с отражающим покрытием, которое предназначено для отражения определенных длин волн света. В этом примере маркеры можно поместить в различных местах и/или на различных объектах в пространстве реального мира так, чтобы следящая система 108 могла отслеживать позицию и/или ориентацию определенных точек и/или объектов в трехмерном пространстве. Например, несколько (т.е. три или более) маркеров отслеживания можно поместить на реальном объекте 104, и несколько (т.е. три или более) маркеров отслеживания можно поместить на камере 102.
Измерительные устройства следящей системы 108 могут представлять собой камеры, которые предназначены для детектирования местоположения в трехмерном пространстве маркеров отслеживания. Например, каждая камера может представлять собой инфракрасную камеру, которая предназначена для детектирования отражений от различных маркеров отслеживания (например, маркеры отслеживания, помещенные на камере 102 и на реальном объекте 104). Различные измерительные устройства (например, инфракрасные камеры) можно поместить и/или смонтировать в различных местах трехмерного пространства, например некоторое количество (т.е. восемь или более) камер можно смонтировать на стенках комнаты или лаборатории, например смонтировать в таком порядке, чтобы интересующее трехмерное пространство в полной мере было покрыто областями видимости различных камер. Различные измерительные устройства следящей системы 108 могут быть связаны (например, посредством линии связи в реальном времени, такой как Ethernet, WiFi или аналогичной им) с базовым вычислительным устройством, при этом базовое вычислительное устройство, может прогонять соответствующее программное обеспечение следящей системы. Программное обеспечение следящей системы может обработать данные от различных измерительных устройств. Следящая система 108 может быть связана (например, посредством линии связи в реальном времени, такой как Ethernet, WiFi или аналогичной им) с компьютером 106. Компьютер может представлять собой компьютер, связанный с камерой 102. В некоторых вариантах осуществления базовое вычислительное устройство следящей системы 108 может быть тем же вычислительным устройством как и компьютер 106.
В некоторых вариантах осуществления камера 102 может быть встроена в компьютер 106. В некоторых примерах компьютер 106 может представлять собой мобильное устройство, например компьютерный планшет, смартфон, КПК или аналогичное им. В качестве одного конкретного примера компьютер 106 может представлять собой компьютерный планшет (см. фиг. 7C для примера) с интегрированной камерой. Мобильное устройство с интегрированной камерой может предоставить гибкость и свободу движения пользователю. Например, пользователь мог бы видеть дополненную сцену, которая включает в себя реальный объект (например, реальный участок оборудования), и пользователь мог бы ходить вокруг реального объекта, наблюдая разные части и/или углы реального объекта. Кроме того, пользователь может видеть виртуальный контент на экране планшета, который содействует пользователю в выполнении задачи, например, виртуальный контент может включать в себя инструкции, стрелки, аппаратное обеспечение, инструменты или аналогичные им, которые могут инструктировать пользователя, как надо работать на реальном объекте или с ним. Компьютерный планшет в этом примере (например, компьютер 106) может включать в себя программное обеспечение 110 для виртуального моделирования. Компьютерный планшет в этом примере мог быть связан (например, посредством линии связи в режиме реального времени, такой как Ethernet, WiFi или аналогичной им) со следящей системой 108 (например, базовым вычислительным устройством следящей системы).
Компьютер 106 может включать в себя программное обеспечение 110 виртуального моделирования. Программное обеспечение виртуального моделирования может предоставить доступ или загрузить различные виртуальные объекты, например виртуальный объект (ВО) 112. Виртуальные объекты (например, ВО 112) могут быть легко созданы одним из известных способов создания виртуальных и/или автоматически спроектированных (CAD) объектов и/или моделей. Виртуальные/CAD объекты/модели могут быть созданы применением программного обеспечения CAD, например программного обеспечения, в котором применяется векторная графика или нечто аналогичное для изображения объекта, например объекта, смоделированного в соответствии с объектом реального мира. Виртуальные/CAD объекты/модели могут представлять собой объекты 3D, которые учитывают, подробно, различные 3D-свойства реального объекта. Виртуальный объект 112 может представлять собой виртуальное представление реального объекта 104. Компьютер 106 может предоставить доступ или загрузить и другие виртуальные объекты кроме истинных виртуальных объектов, которые представляют реальные объекты в реальном пространстве. В качестве примера, реальный объект 104 может быть участком оборудования, а виртуальный объект 112 может быть виртуальным представлением этого же участка оборудования. Кроме того, следующая группа виртуальных объектов может не иметь никаких двойников в реальном пространстве, например виртуальные объекты могут представлять гипотетические винты, инструменты, провода и т.п., с помощью которых специалисту показывают как обращаться с реальным объектом 104.
Программное обеспечение виртуального моделирования может принять данные (например, поток реальных временных данных) от следящей системы 108, например от координатной системы, заданной следящей системой, от системы отсчета камеры 102 и системы отсчета реального объекта 104. Программное обеспечение виртуального моделирования может выполнять различные стандартные процедуры, методы и т.п., описанные в данном документе, чтобы создать дополненную сцену (например, дополненную сцену 114), к примеру обзор в реальном времени реального пространства, захваченного камерой 102 и дополненного виртуальными объектами. Программное обеспечение виртуального моделирования может выполнять различную калибровку стандартных процедур и/или методов, как описано в данном документе, чтобы совместить системы координат и системы отсчета виртуальных объектов и объектива камеры с системой координат, связанной со следящей системой. Как только калибровка выполнена, программное обеспечение виртуального моделирования может поддерживать корреляцию и/или совмещение между различными виртуальными объектами и живой реальной сценой. Компьютер 106 может включать в себя или быть связанным с индикатором 116, который может вывести на экран пользователю дополненную сцену 114. Программное обеспечение виртуального моделирования может создать дополненную сцену 114 (выведенную на экран дисплея 116), которая показывает виртуальные объекты, помещенные на видеопоток в реальном времени. Программное обеспечение виртуального моделирования может соответствующим образом исказить (например, изменяя 3D-местоположение, 3D-ориентацию, и/или 3D-размер) виртуальные объекты в дополненной сцене, например, в зависимости от позы камеры 102, относительно позы реального объекта 104. Например, если камера 102 отходит дальше от реального объекта 104, один или несколько виртуальных объектов в дополненной сцене могут съежиться. В качестве другого примера, если камера 102 приближается к реальному объекту 104, один или несколько виртуальных объектов будут увеличены. В качестве еще одного примера, если камера 102 перемещается под углом относительно реального объекта 104, один или несколько виртуальных объектов будут поворачиваться соответствующим образом.
На фиг. 2 изображена блок-схема примера одного из методов калибровки, в соответствии с одним или несколькими вариантами осуществления настоящего изобретения. В частности, на фиг. 2 показан метод автоматической калибровки системы отсчета, который можно применить для определения и/или вычисления преобразования координат между системой отсчета виртуальных объектов (например, виртуальных объектов, добавленных к дополненной сцене) и системы отсчета, связанной со следящей системой. Как видно из фиг. 2, следящая система 202 (например, аналогичная следящей системе 108 по фиг. 1) может задать систему координат 204, например, как часть инсталляции следящей системы, осуществляемой специалистом. Система координат следящей системы может включать в себя три оси (например, ось X, ось Y, ось Z) и точку отсчета, в которой эти три оси пересекаются. Следящая система может "поместить" или связать точку отсчета системы координат с конкретной точкой в реальном трехмерном пространстве и может ориентировать систему координат относительно реального трехмерного пространства. В следящей системе можно использовать оснастку в виде рейсшины для задания ее системы координат, например, рейсшину, аналогичную рейсшине 300, показанной на фиг. 3. По фиг. 3 рейсшина 300 может походить на букву "Т" и может включать в себя первую удлиненную составляющую (например, составляющая 302), которую можно обозначить как первая ось (например, ось X), и может включать в себя вторую удлиненную составляющую (например, составляющая 304), которую можно обозначить как вторая ось (например, ось Z). На рейсшине 300 можно также обозначить точку отсчета в точке 306, где первая составляющая 302/ось и вторая составляющая 304/ось пересекаются. Третья, воображаемая ось (например, ось Y) может проходить через точку отсчета 306. В качестве примера, рейсшину 300 можно положить на пол комнаты или лаборатории, а следящий механизм может задать систему ее координат посредством обнаружения рейсшины и/или маркеров отслеживания (например, маркеров отслеживания 308, 310, 312, 314, 316), прикрепленных к рейсшине. Следящая система может задать виртуальную точку отсчета и три виртуальные оси, которые связаны с точкой отсчета и осями как они обозначены при помощи рейсшины 300. Как только система координат следящей системы задана, следящая система может отслеживать реальный объект (например, оснащенный тремя или несколькими маркерами отслеживания) в комнате или лаборатории и определяет его положение в системе координат и ориентацию объекта относительно трех осей.
Из фиг. 2 видно, что следящая система 202 может определить систему отсчета 206, связанного с реальным объектом. Другими словами следящая система 202 может отслеживать реальный объект. Реальный объект может быть аналогичным реальному объекту 104 по фиг. 1, например. Реальный объект может быть одним из многих объектов, например инструментом, участком оборудования, большим искусственным спутником, блоком управления, панелью управления или многими другими объектами. На фиг. 4A показан пример реального объекта 400 - бурозаправочный станок. Для того, чтобы следящая система отслеживала (т.е. определяла систему отсчета) реальный объект 400, несколько (например, три или более) маркеров отслеживания (например, маркеров отслеживания 402, 404, 406) могут быть прикреплены или помещены на реальный объект 400. Для соответствующего отслеживания маркеры отслеживания должны быть помещены соответствующим образом на реальном объекте 400, например, в неколлинеарном несимметричном порядке. Говорят, три или несколько точек коллинеарны, если они лежат на одной прямой линии. Таким образом, неколлинеарное упорядочение маркеров отслеживания означает, что маркеры отслеживания упорядочены так, что не все они лежат на прямой линии. Для соответствующего отслеживания по меньшей мере три неколлинеарные маркеры отслеживания можно поместить на реальном объекте. Более трех маркеров отслеживания можно поместить на реальном объекте, например, для повышения надежности и/или точности вычислений, например, на тот случай, когда обзор одного из маркеров отслеживания закрыт.
Следящая система (например, включающая несколько инфракрасных камер) может детектировать маркеры отслеживания и создавать представление реального объекта и определять его положение в системе координат, заданной следящей системой. На фиг. 4B проиллюстрировано как следящая система может создавать представление реального объекта и определить его положение. Следящая система может детектировать местоположение маркеров отслеживания (например, маркеры 402, 404, 406, а возможно и больше маркеров, не показанных на фиг. 4A) и может создавать точки (например, точки 452, 454, 456 и 458), связанные с соответствующими маркерами отслеживания, и определять их положение в системе координат следящей системы. Из этих точек (т.е. точек 452, 454, 456 и 458) следящая система может определить точку отсчета (т.е. точку 460) и ориентацию (см. на куб и линии ориентации, которые окружают точку 460) для представления реального объекта. Точка отсчета может быть определена путем вычисления центроида (например, центра масс) точек 452, 454, 456 и 458. Ориентация может быть задана соответствующей (или связанной с) ориентацией системы координат следящей системы. Как только следящая система определит систему отсчета (например, точку отсчета/местоположение и ориентацию, связанную с системой координат следящей системы), связанную с реальным объектом, следящая система может передать информацию о позе реального объекта в программное обеспечение виртуального моделирования. Передача информации о позе реального объекта может привести к обновлению в реальном времени, поскольку реальный объект может перемещаться и/или поворачиваться.
Согласно фиг. 2, программное обеспечение 210 виртуального моделирования может задать новую систему отсчета 212 реального объекта. Программное обеспечение 210 виртуального моделирования может быть аналогичным, например, программному обеспечению 110 виртуального моделирования по фиг. 1. Программное обеспечение 210 виртуального моделирования может использовать ту же систему координат, как и та, которая связана со следящей системой. Новая система отсчета 212 реального объекта может указывать другие (по сравнению с системой отсчета 206 реального объекта) точки отсчета на реальном объекте и может определить и/или вычислить некоторые другие точки отсчета. Задание новой системы отсчета реального объекта может предоставить возможность программному обеспечению виртуального моделирования выбрать точки отсчета на реальном объекте, которые будут такими же (или очень близкими) точками отсчета как и на виртуальном объекте (например, модель CAD), который связан с реальным объектом.
На фиг. 5 проиллюстрировано как программное обеспечение виртуального моделирования может задать новую систему отсчета реального объекта, например реального объекта 500. Некоторое число точек отсчета (например, точки 502, 504, 506) могут быть указаны на реальном объекте 500. Эти точки отсчета могут быть указаны специалистом, например, посредством применения оснастки или рейсшины, например, рейсшины, аналогичной рейсшине 300 по фиг. 3. Оснастка или рейсшина может быть выполнена с возможностью отслеживания следящей системой, например, позиция между маркерами отслеживания, прикрепленными к рейсшине, относительно друг друга, может быть определена посредством следящей системы, принимая во внимание достоверный сбор точек. Программное обеспечение виртуального моделирования может использовать данные следящей системы о позиции рейсшины для записи точек отсчета на реальном объекте. В качестве примера, программное обеспечение виртуального моделирования может принять точку на рейсшине за "указатель" (например, кончик продолговатой составляющей рейсшины). Специалист может коснуться указателем различных точек на реальном объекте (например, точек 502, 504, 506), и через рейсшину и следящую систему программное обеспечение виртуального моделирования может захватить или записать эти точки и определить их положение в системе координат, связанной со следящей системой. Чтобы определить новую систему отсчета, точки отсчета должны быть по возможности помещены соответствующим образом на реальном объекте 500, например, в неколлинеарном порядке. По меньшей мере три неколлинеарные точки отсчета можно поместить на реальном объекте. Более трех точек отсчета можно поместить на реальном объекте, например, для повышения надежности и/или точности вычислений. По этим точкам отсчета (например, точкам 502, 504, 506) программное обеспечение виртуального моделирования может определить точку отсчета (например, точку 508) и ориентацию (см. осевые линии, исходящие из точки 508) реального объекта. Точка отсчета может быть определена путем вычисления центроида (например, центра масс) точек 502, 504, 506. Ориентация реального объекта может быть определена посредством размещения двух осей (например, ось X, ось Z), которые тянутся из точки отсчета в плоскости, созданной точками 502, 504, 506.
По фиг. 2 как только новая система отсчета реального объекта 212 задана, программное обеспечение 210 виртуального моделирования, может вычислить поступательные и/или поворотные расхождения между новой системой отсчета 212 реального объекта и системой отсчета 206 реального объекта, определенной посредством следящей системы.
По фиг. 2 программное обеспечение 210 виртуального моделирования может предоставить доступ или загрузить различные виртуальные объекты, например, предварительно разработанные модели CAD. Программное обеспечение 210 виртуального моделирования может определить положение виртуальных объектов в системе координат, связанной со следящей системой, но системе дополненной реальности может быть необходима калибровка перед тем, как соответствующее определение будет работать. Виртуальный объект (например, модель CAD) может иметь свою собственную систему отсчета (например, точку отсчета и три оси ориентации), например тот, который указан, когда виртуальный объект был разработан. Возможен случай (например, для конкретной окружающей обстановки), когда все виртуальные объекты, рассмотренные программным обеспечением виртуального моделирования, могут совместно использовать одну и ту же систему отсчета (например, систему отсчета 214 виртуального объекта). Чтобы определить положение виртуальных объектов в системе координат, связанной со следящей системой, программное обеспечение 210 виртуального моделирования может определить преобразование координат между системой отсчета 214 виртуальных объектов и системой координат 204, связанной со следящей системой. Чтобы откалибровать систему дополненной реальности (например, определить преобразование координат), программное обеспечение 210 виртуального моделирования может использовать виртуальный объект (например, виртуальный объект 112 по фиг. 1), соответствующий реальному объекту (например, реальный объект 104 по фиг. 1), который камера (например, камера 102 по фиг. 1) системы дополненной реальности захватывает. Этот виртуальный объект может иметь систему отсчета 214 виртуального объекта.
Программное обеспечение 210 виртуального моделирования может задать новую систему отсчета 216 виртуального объекта для реального виртуального объекта. Программное обеспечение 210 виртуального моделирования может использовать ту же систему координат, как и та, которая связана со следящей системой. Новая система отсчета 216 виртуального объекта может иметь другую точку отсчета и ориентацию по сравнению с системой отсчета 214 виртуального объекта. Задание новой системы отсчета виртуального объекта может предоставить возможность программному обеспечению виртуального моделирования выбрать точки отсчета на виртуальном объекте, которые являются теми же (или очень близкими) точками отсчета, которые были указаны (как рассмотрено выше) по отношению к соответствующему реальному объекту, и может предоставить возможность совмещения (см. в общем точки 218) новой системы отсчета 212 реального объекта с новой системой отсчета 216 виртуального объекта. Совмещение новой системы отсчета 212 реального объекта (связанной с реальным объектом) с новой системой отсчета 216 виртуального объекта (связанной с виртуальным объектом) может быть достигнуто, например, посредством выбора одних и тех же точек отсчета как на реальном объекте, так и на виртуальном объекте, и посредством выполнения одних и тех же вычислений точки отсчета и ориентации для каждого из них.
На фиг. 6 проиллюстрировано как программное обеспечение виртуального моделирования может задать новую систему отсчета виртуального объекта, например виртуального объекта 600. Следует отметить, что с целью калибровки виртуальный объект 600 может быть виртуальным объектом, смоделированным в соответствии со связанным реальным объектом, который камера системы дополненной реальности захватывает, например реальный объект 500 по фиг. 5. Некоторое число точек отсчета (например, точки 602, 604, 606) могут быть выбраны на реальном объекте 600. Эти точки отсчета могут соответствовать (например, быть в такой же относительной позиции) точкам отсчета, которые были выбраны, указаны и/или записаны, чтобы создать новую систему отсчета реального объекта (см. фиг. 5 и связанное обсуждение). Как и в случае определения системы отсчета реального объекта точки отсчета для определения системы отсчета виртуального объекта могут быть неколлинеарны, и по меньшей мере три неколлинеарные точки отсчета могут быть выбраны на виртуальном объекте. По этим точкам отсчета (например, точкам 602, 604, 606) программное обеспечение виртуального моделирования может определить точку отсчета (например, точку 608) и ориентацию (см. осевые линии, исходящие из точки 608) виртуального объекта. Точка отсчета может быть определена путем вычисления центроида (например, центра масс) точек 602, 604, 606. Ориентация виртуального объекта может быть определена посредством размещения двух осей (например, ось X, ось Z), которые тянутся из точки отсчета в плоскости, созданной точками 602, 604, 606.
Согласно фиг. 2, как только новая система отсчета 216 виртуального объекта задана, программное обеспечение 210 виртуального моделирования может вычислить поступательные и/или поворотные расхождения между новой системой отсчета 216 виртуального объекта и системой отсчета 214, связанной с виртуальным объектом.
Как рассмотрено выше, виртуальный объект, который смоделирован в соответствии с ассоциируемым реальным объектом в трехмерном пространстве, может быть востребован для калибровки системы дополненной реальности, например, чтобы определить новую систему отсчета 216 виртуального объекта, которая может быть связана с новой системой отсчета 212 реального объекта. Однако следует понимать, что как только калибровка завершится, то положение многих других виртуальных объектов может быть определено (например, посредством программного обеспечения виртуального моделирования) в системе координат, связанной со следящей системой. Из фиг. 2 видно как это определение работает. Чтобы определить положение виртуального объекта в системе координат, связанной со следящей системой, должна быть определено преобразование координат (например, преобразование M4, показанное на фиг. 2) между системой 214 отсчета виртуального объекта (например, точкой отсчета и ориентацией) и системой 204 координат, связанной со следящей системой. Преобразование M4 данных не может быть известно до завершения процесса калибровки. В процессе калибровки, как рассмотрено выше, могут быть определены многие другие преобразования координат, которые относятся к преобразованию M4. Как показано на фиг. 2, в процессе калибровки могут быть определены преобразование M1 (т.е. посредством которого следящая система определяет положение отслеживаемых реальных объектов в ее системе координат), преобразование M2 (т.е. поступательные и поворотные расхождения между системой 206 отсчета реального объекта и новой системой 212 отсчета реального объекта) и преобразованием М (т.е. поступательные и поворотные расхождения между системой 214 отсчета виртуального объекта и новой системой 216 отсчета виртуального объекта). Как только преобразования M1, M2 и M3 станут известны, может быть вычислено преобразование M4. Как только преобразование M4 станет известно, положение многих виртуальных объектов можно определить в системе координат, связанной со следящей системой. Кроме того, поскольку информация (например, поза реального объекта) из следящей системы передается в программное обеспечение виртуального моделирования, то если преобразование M1 изменяется (т.е. поза реального объекта в трехмерном пространстве), преобразование M4 может обновляться, например, в режиме реального времени. В связи с этим виртуальные объекты могут перекрываться на реальной сцене, и внешний вид виртуальных объектов может изменяться соответствующим образом, например так, как ассоциируемый реальный объект перемещается по сцене.
Далее представлен один пример метода вычисления преобразования M4 по фиг. 2. Каждое из преобразований (M1, M2, M3, M4), как показано на фиг. 2, может быть представлено матрицей преобразования, например матрицей преобразования 4×4, как это обычно применяется в компьютерной трехмерной графике. Преобразование M1 может быть представлено как матрица преобразования 1, показанная ниже. Преобразование M2 может быть представлено как матрица преобразования 2, показанная ниже. Преобразование M3 может быть представлено как матрица преобразования 3, показанная ниже.
n
n
n
n
n
n
n
n
n
n
n
n
n
n
n
Каждая матрица преобразования может включать в себя поворотный или ориентационный компонент (DCM или "матрица направляющих косинусов") и поступательный или позиционный компонент (v). Например, DCM представляет поворотную матрицу для преобразования M, а V представляет поступательный вектор для преобразования M. Поворотный компонент (DCM) может быть матрицей 3×3, которая представляет изменение ориентации между двумя объектами. DCM компонент может представлять три величины - изменение крена (например, вращение по оси X), изменение тангажа (например, вращение по оси Y), и изменение рыскания (например, вращение по оси Z). Эти три значения могут быть распространены на матрицу 3×3 DCM, чтобы аппроксимировать соответствующим образом на матрицу преобразования M 4×4. Специалист, хорошо знакомый с матрицами преобразования и умножением матриц, должен понимать, что матрица преобразования должна быть заполнена подходящим образом так, чтобы умножение одной матрицы на другую привело к необходимому преобразованию. Поступательный компонент (v) может быть матрицей 1×3 (т.е. 3 числа в вертикальной колонке), которая представляет изменение местоположения двух объектов (например, изменение местоположения точек отсчета двух объектов). Поступательный компонент (v) может включать три значения - изменение 3D-местоположения относительно оси X, изменение 3D-местоположения относительно оси Y и изменение 3D-местоположения относительно оси Z. Когда поворотный компонент (DCM) и поступательный компонент (v) добавлены в матрицу преобразования (M) и компонентом "0001" заполнена нижняя строка (для осуществления операции умножения матриц), то построение матрицы преобразования завершено.
Затем может быть вычислено преобразование M4, как это и показано в 4 ниже, приводящее к преобразованию M4, показанному в 5 ниже.
В некоторых вариантах осуществления однажды вычисленное преобразование M4 остается тем же. Как видно из фиг. 2, как только преобразование M4 вычислено, оно может представлять преобразование из системы отсчета виртуального объекта в систему отсчета реального объекта, определенную следящей системой. Преобразование M4 можно применить для определения положения различных виртуальных объектов в системе координат, связанной со следящей системой, например, размещенных в позе относительно системы отсчета реального объекта, определенной следящей системой. Поскольку информация (например, поза реального объекта) из следящей системы передается в программное обеспечение виртуального моделирования, то если преобразование M1 изменяется (т.е. поза реального объекта в трехмерном пространстве), поза различных виртуальных объектов может обновляться, например, в режиме реального времени.
Согласно фиг. 1 камера 102 может также требовать калибровки перед тем, как система дополненной реальности может исказить, изменить или связать виртуальные объекты в связи с перемещением камеры 102. Трудности и решения, связанные с калибровкой камеры 102, могут быть аналогичными тем, что связаны с калибровкой виртуальных объектов относительно системы координат, связанной со следящей системой, как описано выше. Чтобы достичь точного совмещения между виртуальными объектами и реальной сценой (захваченной камерой 102), программное обеспечение виртуального моделирования может потребовать отслеживание позы объектива камеры 102, а не только корпуса камеры как целого. Различные способы калибровки камер включали длительные измерения и обработку ошибок (например, несколько часов), чтобы вручную оперировать шестью параметрами (например, X, Y, Z, крен, тангаж, рыскание), связанными с объективом камеры. С такими ручными методами точное определение положения объектива камеры не гарантировано даже после завершения калибровки.
На фиг. 7 изображена блок-схема, показывающая пример метода калибровки, в соответствии с одним или несколькими вариантами осуществления настоящего изобретения. В частности, на фиг. 7 показана автоматическая метод калибровки системы отсчета, который можно применить для определения и/или вычисления преобразования координат между системой отсчета камеры, отслеживаемой следящей системой, и системой отсчета объектива камеры. Как видно из фиг. 7, следящая система 702 (например, аналогичная следящей системе 108 по фиг. 1) может задать систему 704 координат, например, как часть инсталляции следящей системы, осуществляемой специалистом (подробнее выше). Следящая система 702 может определить систему 706 отсчета для камеры. Другими словами следящая система 702 может отслеживать камеру. Камера может быть аналогичной камере 102 по фиг. 1, например. Камера может представлять собой независимую камеру или может быть встроена в компьютер, например компьютер, который прогоняет программное обеспечение виртуального моделирования. На фиг. 8A показана иллюстрация камеры 800, приведенной в качестве примера. Для того, чтобы следящая система отслеживала (т.е. определяла систему отсчета) камеру 800, несколько (например, три или более) маркеров отслеживания (например, маркеров отслеживания 802, 804, 806) могут быть прикреплены или помещены на камеру 800. В некоторых вариантах осуществления маркеры отслеживания могут прикрепляться к корпусу самой камеры. В других вариантах осуществления маркеры отслеживания могут прикрепляться к системе 801 координат, которая содержит и/или поддерживает камеру 800, как показано в примере по фиг. 8A. Для соответствующего отслеживания маркеры отслеживания должны быть помещены соответствующим образом на камере 800, например, в неколлинеарном расположении. Для соответствующего отслеживания по меньшей мере три неколлинеарные маркеры отслеживания можно поместить на камере (или в системе отсчета камеры). Более трех маркеров отслеживания можно поместить на камере, например, для повышения надежности и/или точности вычислений, например, на тот случай, когда обзор одного из маркеров отслеживания закрыт.
Следящая система (например, включающая несколько инфракрасных камер) может детектировать маркеры отслеживания на камере (или системе отсчета камеры) и создавать представление камеры и определять его положение в системе координат, заданной следящей системой. На фиг. 8В проиллюстрировано как следящая система может создать представление камеры и определять его положение. Следящая система может детектировать местоположение маркеров отслеживания (например, маркеров 802, 804, 806 и возможно многих других маркеров) и может создавать точки (например, точки 852, 854, 856 и возможно многие другие) соответственно, связанные с маркерами отслеживания, и определять их положение в системе координат следящей системы. Из этих точек (например, точек 852, 854, 856 и возможно других) следящая система может определить точку отсчета (например, точку 860) и ориентацию (см. на куб и линии ориентации, которые окружают точку 860) для представления реального объекта. Точка отсчета может быть определена путем вычисления центроида (например, центра масс) точек 852, 854, 856 и возможно других. Ориентация может быть задана соответствующей (или связанной с) ориентацией системы координат следящей системы. Как только следящая система определит систему отсчета (например, точку отсчета/местоположение и ориентацию, ассоциированную с системой координат следящей системы) камеры, эта следящая система может передать информацию о позе камеры в программу обеспечения виртуального моделирования. Передача информации о позе камеры может привести к обновлению в режиме реального времени, поскольку камера может перемещаться и/или поворачиваться.
В некоторых вариантах осуществления камера может быть встроена в компьютер, например компьютер, который прогоняет программное обеспечение виртуального моделирования. В качестве одного конкретного примера компьютер может представлять собой компьютерный планшет с встроенной камерой. На фиг. 8C показан пример компьютерного планшета 870 со встроенной камерой. Например, первая сторона 874 компьютерного планшета 870 может быть обращена к пользователю 872 и напротив, вторая сторона 876 может быть отвернута от пользователя 872. Камера может быть смонтирована на второй стороне 876, так, что она может захватывать реальный объект (например, реальный объект 880). Если система дополненной реальности соответствующим образом откалибрована, то пользователь 872 может увидеть реальную сцену (включая вид 881 реального объекта 880) на экране компьютерного планшета 870. Экран может также вывести на экран виртуальный контент (например, виртуальный контент 882), наложенный поверх реальной сцены/реального объекта. Для того, чтобы следящая система отслеживала камеру (например, встроенную в компьютерный планшет 870), некоторое число маркеров отслеживания (например, маркеры отслеживания 884, 886, 888) могут быть смонтированы на компьютерном планшете 870. Следовательно, отслеживание камеры может быть выполнено способом, аналогичным рассмотренному выше.
Согласно фиг. 7, программное обеспечение виртуального моделирования 710 может принять переданную информацию от следящей системы 702 о позе/системе отсчета камеры. Однако программному обеспечению виртуального моделирования 710 может потребоваться отслеживание местоположения объектива камеры, вместо корпуса камеры (или системы координат камеры, или компьютерного планшета) как целого. Чтобы определить систему отсчета для объектива камеры, можно применить специальный печатный маркер и связанное с ним программное обеспечение. На фиг. 9A и 9B изображена иллюстрация, которая показывает, как печатный маркер может предоставить возможность определения системы отсчета объектива камеры. Как показано на фиг. 9A, камера 902 может захватывать или записывать реальные компоненты в поле обзора 904 камеры. Специальный печатный маркер 906 можно поместить в поле обзора 904 камеры. Следует понимать, что печатный маркер 906 может быть применен только для калибровки камеры и системы дополненной реальности. Как только программное обеспечение виртуального моделирования будет в состоянии отслеживать объектив камеры, виртуальный маркер 906 может быть удален.
Чтобы откалибровать систему дополненной реальности, печатный маркер 906 можно поместить в поле обзора 904 камеры, например, где-то в трехмерном пространстве комнаты или лаборатории (например, на полу). Печатный маркер 906 может включать в себя различные отметки (например, отметки 908), которые могут показывать систему координат (например, точку отсчета и ориентацию) печатного маркера. Камера 902 может, следовательно, захватить печатный маркер 906 (включающий различные отметки) и может передать эту информацию в компьютер 910 (например, аналогичному компьютеру 106 по фиг. 1). Компьютер 910 может быть тем же самым компьютером, который включает в себя программное обеспечение виртуального моделирования. Компьютер 910 может включать в себя программное обеспечение 912, который связан с печатным маркером 906. Программное обеспечение 912 печатного маркера может принять информацию из камеры 902, включающую информацию о том, как камера "видит" печатный маркер 906, например, как печатный маркер оказался помещенным и ориентированным в поле обзора камеры. Программное обеспечение 912 печатного маркера может, следовательно, обработать эту информацию, чтобы определить систему отсчета (например, точку отсчета и ориентацию) объектива камеры 902, например, систему координат, заданную посредством печатного маркера 906 (и различных отметок 908), в которой объектив определен. В качестве примера и согласно фиг. 9 В с целью калибровки камера 902 и печатный маркер 906 могут быть ориентированы относительно друг друга так, чтобы оси, заданные печатным маркером (например, X, Y, Z) совмещались с вертикальной, горизонтальной и глубинной осью камеры, конкретно объектива камеры.
Согласно фиг. 7, программное обеспечение виртуального моделирования (например, посредством программного обеспечения связанного со специальным печатным маркером) может определить систему отсчета 714 объектива камеры, например, как она соотносится с системой 712 координат, заданной посредством печатного маркера. Для того чтобы соотнести позу объектива камеры с позой различных виртуальных объектов, программное обеспечение виртуального моделирования может определить положение объектива камеры в системе координат, связанной со следящей системой, например, посредством связывания системы отсчета 714 объектива камеры с системой отсчета 706 камеры как целого, как это и делается посредством следящей системы. Однако программное обеспечение 710 виртуального моделирования может быть не в состоянии связать систему отсчета 714 объектива камеры с системой отсчета 706 камеры как одно целое, пока система дополненной реальности не откалибрована, например, потому что система координат 712, заданная посредством печатного маркера, может отличаться от системы координат 704, заданной посредством следящей системы. Таким образом, процесс калибровки может включать в себя совмещение (в общем показанное посредством числа 716) системы 712 координат, заданного посредством печатного маркера, с системой 704 координат, заданной посредством следящей системы. Это совмещение может включать в себя размещение печатного маркера (например, точки отсчета печатного маркера) в том же месте (например, том же месте в трехмерном пространстве на полу комнаты или лаборатории), где и точка отсчета системы координат следящей системы. Совмещение может также включать совмещение оси (например, X, Y, Z) печатного маркера с осями системы координат следящей системы. В связи с этим как только две системы координат будут совмещены, программное обеспечение виртуального моделирования 710 может интерпретировать их как одну систему координат.
Чтобы связать систему отсчета 714 объектива камеры с системой отсчета 706 камеры как одно целое, программное обеспечение 710 виртуального моделирования может определить/вычислить преобразование координат (например, преобразование C3, показанное на фиг. 7). Преобразование C3 данных не может быть известно до завершения процесса калибровки. В процессе калибровки, как рассмотрено выше, могут быть определены многие другие преобразования координат, которые относятся к преобразованию C3. Как показано на фиг. 7, процесс калибровки может определить преобразование C1 (например, посредством которого следящая система определяет положение отслеживаемой камеры в ее системе координат) и преобразование C2 (например, поступательные и поворотные расхождения между системой 712 координат печатного маркера и системой отсчета 714 нового объектива камеры, как определено программным обеспечением, связанным с печатным маркером). Как только преобразования C1 и C2 станут известны, может быть вычислено преобразование C3. Как только преобразование C3 станет известно, камера может перемещаться вокруг и программное обеспечение виртуального моделирования может отслеживать объектив камеры в системе координат следящей системы, даже если печатный маркер больше не появится в поле обзора камеры. Как только информация (например, поза камеры) из следящей системы будет передана программному обеспечению виртуального моделирования, то если преобразование C1 изменится (т.е. поза камеры в трехмерном пространстве), преобразование C3 может быть обновлено, например, в режиме реального времени. В связи с этим виртуальные объекты могут перекрываться на реальной сцене, и внешний вид виртуальных объектов может изменяться соответствующим образом, например так, как движется камера.
Далее представлен один пример метода вычисления преобразования C3 по фиг. 7. Каждое из различных преобразований (C1, C2, C3), как показано на фиг. 7, может быть представлено как матрица преобразования, например, матрица преобразования 4×4, как обычно применяется в компьютерной 3D-графике. Преобразование C1 может быть представлено как матрица преобразования 6, показанная ниже. Преобразование C2 может быть представлено как матрица преобразования 7, показанная ниже.
n
n
n
n
Аналогично матрицам преобразования M, описанным выше, каждая матрица преобразования C, может включать в себя поворотный или ориентационный компонент (DCM) и поступательный или позиционный компонент (v). Затем может быть вычислено преобразование C3, как это и показано в 8 ниже, приводящее к преобразованию C3, показанному в 9 ниже.
Следовательно, согласно фиг. 7, преобразование C3 можно применить для определения положения объектива камеры в системе координат, связанной со следящей системой, например, посредством установления связи позы объектива камеры с позой камеры, что и делает следящая система. Как только информация (например, поза камеры) из следящей системы будет передана программному обеспечению виртуального моделирования и при этом преобразование C1 изменится (т.е. поза камеры в трехмерном пространстве), преобразование C3 может быть обновлено, например, в режиме реального времени. В процессе работы обновление преобразования C3 может быть осуществлено следующим образом. Следящая система 702 может детектировать изменение позы камеры (следящая система обновляет C1). Следящая система 702 может передать информацию о системе отсчета 706 (например, в виде матрицы преобразования) камеры в программное обеспечение виртуального моделирования 710. Программное обеспечение виртуального моделирования может умножить эту систему отсчета/матрицу преобразования на матрицу преобразования C3 для выполнения преобразования C3. Программное обеспечение виртуального моделирования может затем обновить позу различных виртуальных объектов в системе координат, связанной со следящей системой, исходя из изменения позы камеры.
Согласно фиг. 1 программное обеспечение 110 виртуального моделирования может выполнять различные стандартные процедуры, методы и т.п., описанные в данном документе, чтобы создать динамически дополняемую сцену (например, дополненную сцену 114), например обзор в реальном времени реального пространства, захваченного камерой 102 и дополненного динамически изменяемыми виртуальными объектами. Как только калибровка системы дополненной реальности выполнена, как описано выше, программное обеспечение 110 виртуального моделирования может динамически поддерживать корреляцию и/или совмещение между различными виртуальными объектами и живой реальной сценой, включающей один или несколько реальных объектов (например, реальный объект 104). Программное обеспечение 110 виртуального моделирования может поддерживать это совмещение несмотря на то, что камера 102 может перемещаться и поворачиваться вокруг объекта 104 и несмотря на то, что реальный объект 104 может перемещаться и поворачиваться.
Программное обеспечение 110 виртуального моделирования может создать динамически дополненную сцену 114 (например, выведенную на экран дисплея 116), которая показывает виртуальные объекты, помещенные на видеопоток в реальном времени. Программное обеспечение 110 виртуального моделирования может соответствующим образом исказить (например, изменить 3D-местоположение, 3D-ориентацию и/или 3D-размер) виртуальных объектов в дополненной сцене, например, в зависимости от позы камеры 102 и/или позы реального объекта 104. Например, если камера 102 отходит дальше от реального объекта 104, один или несколько виртуальных объектов в дополненной сцене могут съежиться. В качестве другого примера, если камера 102 приближается к реальному объекту 104, один или несколько виртуальных объектов будут увеличены. В качестве еще одного примера, если камера 102 перемещается под углом относительно реального объекта 104, один или несколько виртуальных объектов будут поворачиваться соответствующим образом. Дополненная сцена 114 может быть сохранена (например, мгновенно) в памяти (например, энергозависимом или энергонезависимом блоке памяти) перед выводом дополненной сцены на экран дисплея 116. Дополненный или виртуальный контент, который выведен на экран дисплея 116 и/или задан в дополненной сцене 114, может быть полезен пользователю системы дополненной реальности. Например, пользователь может взаимодействовать с виртуальным контентом и/или получать полезную информацию из дополненного контента. В качестве конкретного примера виртуальные объекты/контент могут предоставить значимую инструктивную информацию специалисту, относящуюся к участку оборудования во время процесса производства.
На фиг. 10A изображена иллюстрация примера дополненной сцены, которая может быть создана в соответствии с одним или несколькими вариантами осуществления настоящего изобретения. Дополненная сцена может включать в себя реальную сцену/окружающую обстановку, захваченную камерой, например часть комнаты 1002 со столом 1004 и реальным объектом 1006 (например, участком оборудования) на столе. Дополненная сцена может включать в себя один или несколько виртуальных объектов, добавленных системой дополненной реальности, описанной в данном документе, например виртуальный объект 1010 (например, модель CAD), который связан с реальным объектом 1006. На фиг. 10A показана только часть (например, вырез) виртуального объекта 1010. Этот вырез может помочь показать, как виртуальный объект 1010 может быть связан с реальным объектом 1006. Однако следует понимать, что в некоторых вариантах осуществления может быть выведен на экран весь виртуальный объект в дополненной сцене. Если камера перемещается, реальная сцена и виртуальные объекты могут перемещаться аналогичным образом. Если реальный объект перемещается, любые виртуальные объекты, которые связаны с реальным объектом, могут перемещаться аналогичным образом. Пример дополненной сцены по фиг. 10A, является одним из примеров показа того, как виртуальные объекты, смоделированные по реальному объекту, могут быть связаны с реальным объектом, например, чтобы откалибровать систему дополненной реальности. В некоторых примерах после того, как калибровка завершена, виртуальный объект, смоделированный по реальному объекту, может не возникать в дополненной сцене. Вместо этого могут появиться многие другие виртуальные объекты, например, оснастки, металлические изделия (например, винты), электропроводка, инструкции и т.п., которые связаны с реальным объектом. Например, эти виртуальные объекты могут предоставить значимую инструктивную информацию специалисту, относительно участка оборудования, например инструкцию, относящуюся к тому, как установить изделие и выполнить задачу (например, такую как сверление отверстия).
На фиг. 10B изображена иллюстрация примера дополненной сцены, которая может быть создана в соответствии с одним или несколькими вариантами осуществления настоящего изобретения. Дополненная сцена может включать в себя реальную сцену/окружающую обстановку, захваченную камерой, например часть комнаты 1052 с реальным объектом 1056 (например, панелью) на столе. Дополненная сцена может включать в себя один или несколько виртуальных объектов, добавленных системой дополненной реальности, описанной в данном документе, например, виртуальный объект 1060, который может быть коробкой или блоком, и различные соответствующие провода, электромонтажные трубы и/или электропроводки. Если камера перемещается, реальная сцена и виртуальные объекты могут перемещаться аналогичным образом. Если реальный объект 1056 перемещается (например, панель), любые виртуальные объекты (например, виртуальный объект 1060), которые связаны с реальным объектом могут перемещаться аналогичным образом. Например, дополненная сцена по фиг. 10B может инструктировать специалиста, как установить блок 1060 на панель 1056.
Конкретные варианты осуществления настоящего изобретения могут лежать в основе одного или нескольких способах автоматической калибровки системы отсчета дополненной реальности. По отношению к различным способам, описанным в данном документе и изображенных в соответствующих чертежах, следует понимать, что в некоторых вариантах осуществления один или несколько шагов, описанных и/или изображенных, можно осуществить в разном порядке. Кроме того, в некоторых вариантах осуществления способ может включать в себя больше или меньше шагов, чем это описано и/или изображено.
На фиг. 11 изображена схема 1100 последовательности операций, которая показывает примеры шагов способа автоматической калибровки системы отсчета дополненной реальности в соответствии с одним или несколькими вариантами осуществления настоящего изобретения. В частности, на фиг. 11 показаны иллюстративные шаги способа автоматической калибровки системы отсчета, которые можно применить для определения и/или вычисления преобразования координат между системой отсчета виртуальных объектов (например, виртуальные объекты, добавленные к дополненной сцене) и системой отсчета, связанной со следящей системой. На шаге 1102 система координат следящей системы задана, например, во время процесса установки следящей системы. На шаге 1104 следящая система может отслеживать или определять систему отсчета реального объекта. Следящая система может также определять преобразование M1 на шаге 1104. Чтобы следящая система отслеживала реальный объект, реальному объекту может потребоваться некоторое количество маркеров отслеживания.
На шаге 1106 программное обеспечение виртуального моделирования может определить новую систему отсчета для реального объекта, например, указанием некоторого числа точек отсчета (например, посредством рейсшины) и расчетной точки отсчета. На шаге 1108 программное обеспечение виртуального моделирования может осуществить преобразование M2 (например, вычислить разность поз между новой системой отсчета реального объекта и системой отсчета реального объекта, определенного следящей системой). На шаге 1110 программное обеспечение виртуального моделирования может предоставить доступ или загрузить виртуальный объект (например, виртуальный объект, смоделированный по реальному объекту) и может определить систему отсчета виртуального объекта. На шаге 1112 программное обеспечение виртуального моделирования может определить новую систему отсчета виртуального объекта, например, указанием на виртуальной модели тех же опорных точек, которые были указаны на реальном объекте, чтобы создать новую систему отсчета реального объекта. По этим точкам может быть вычислена точка отсчета. На шаге 1114 программное обеспечение виртуального моделирования может осуществить преобразование M3 (например, вычислить разность поз между новой системой отсчета виртуального объекта и исходной системой отсчета виртуального объекта). На шаге 1116 программное обеспечение виртуального моделирования может осуществить преобразование M4 (например, посредством умножения между собой матриц преобразования M1, M2 и M3).
На фиг. 12 изображена схема 1200 последовательности операций, которая показывает примеры шагов способа автоматической калибровки системы отсчета дополненной реальности в соответствии с одним или несколькими вариантами осуществления настоящего изобретения. В частности, на фиг. 12 показаны шаги примера способа автоматической калибровки системы отсчета, которые можно применить для определения и/или осуществления преобразования между системой отсчета камеры, определенной следящей системой и системой отсчета объектива камеры. На шаге 1102 система координат следящей системы задана, например, во время процесса установки следящей системы. На шаге 1204 следящая система может отслеживать или определять систему отсчета камеры. Следящая система может также определять преобразование C1 на шаге 1204. Чтобы следящая система отслеживала камеру, камере (или системе отсчета камеры, или планшетному компьютеру) может потребоваться некоторое количество маркеров отслеживания. На шаге 1206 система координат, связанная с печатным маркером, может быть задана, например, посредством печатного маркера и связанного с ним программного обеспечения. Система координат, связанная с печатным маркером, может быть связана с системой координат следящей системы. На шаге 1208 программное обеспечение виртуального моделирования (например, через программное обеспечение, связанное с печатным маркером) может определить систему отсчета объектива камеры, например, относительно системы координат печатного маркера. На шаге 1210 программное обеспечение виртуального моделирования может осуществить преобразование C3 (например, вычислить разность поз между объективом камеры и системой отсчета печатного маркера). Это преобразование может быть (по меньшей мере частично) осуществлено посредством программного обеспечения, связанного с печатным маркером. На шаге 1212 программное обеспечение виртуального моделирования может осуществить преобразование C3 (например, посредством деления матрицы преобразования C1 на матрицу преобразования C2).
Любая из систем и способов, описанных в данном документе, также предполагает вариации, которые включают в себя способ дополненной реальности 100, исполняемый посредством системы обработки данных 100, имеющей по меньшей мере один процессор. Альтернативный способ может включать получение или задание системы координат следящей системы, связанной со следящей системой 108 объекта. Система координат 204 следящей системы связана с реальным трехмерным пространством и отслеживает позицию и ориентацию в реальном трехмерном пространстве реального объекта 104 и камеры 102. По этой схеме система обработки данных 100 также принимает от следящей системы 108 первую систему отсчета 212 реального объекта для реального объекта 104. Первая система отсчета 212 реального объекта показывает позицию и ориентацию реального объекта 104 в системе координат 204 следящей системы.
Далее, система 100 обработки данных определяет вторую систему отсчета 212 реального объекта 104, в котором вторая система отсчета 212 реального объекта показывает позицию и ориентацию реального объекта 104 в системе координат 204 следящей системы. Затем система 100 обработки данных принимает первую систему отсчета 216 виртуального объекта 112, при этом виртуальный объект 112 смоделирован в соответствии с реальным объектом 104 и первая система отсчета 216 виртуального объекта не связана с системой координат 204 следящей системы.
Система 100 обработки данных также определяет вторую систему отсчета 216 виртуального объект 112, при этом вторая система отсчета 216 виртуального объекта показывает позицию и ориентацию виртуального объекта 112 в системы координат 204 следящей системы. Преобразование координат виртуального объекта 112 также осуществляется между первой системой отсчета 216 виртуального объекта и системой координат 204 следящей системой.
Дополненная сцена 114 выводится на экран посредством системы обработки данных 100 и включает в себя вид реального трехмерного пространства, вид реального объекта 104 и один или несколько наложенных виртуальных элементов. В настоящем документе преобразование координат виртуального объекта 112 использовать для определения положения одного или нескольких наложенных виртуальных элементов в дополненной сцене 114 так, чтобы один или несколько виртуальных элементов были связаны с реальным объектом 104.
По еще одной необязательной схеме система 100 обработки данных выполнена с возможностью также определять вторую систему отсчета 212 реального объекта, которая может принять или детектировать три или более неколлинеарных точек на реальном объекте 104. Местоположение трех или более неколлинеарных точек на реальном объекте задано в системе координат 204 следящей системы. Точка отсчета реального объекта 104 определяется путем вычисления центроида трех или более неколлинеарных точек реального объекта. Затем определяется ориентация реального объекта, которая связана с ориентацией первой системы отсчета реального объекта 212. В предпочтительном исполнении вторая система отсчета 216 виртуального объекта определяется посредством приема или показа трех или более неколлинеарных точек на виртуальном объекте 112, при этом местоположение трех или более неколлинеарных точек на виртуальном объекте задано в системе координат 204 следящей системы. После этого, точка отсчета виртуального объекта может быть определена путем вычисления центроида трех или более неколлинеарных точек на виртуальном объекте, которые могут предоставлять дополнительную возможность определения ориентации виртуального объекта.
В других модификациях любых из описанных схем вторая система отсчета 212 реального объекта и вторая система отсчета 216 виртуального объекта связаны, при этом три или более неколлинеарные точки виртуального объекта и три или более неколлинеарные точки реального объекта расположены примерно в тех же местах в системе координат 204 следящей системы. Кроме того, ориентация реального объекта 104 и ориентация виртуального объекта 112 являются примерно одинаковыми в системе координат 204 следящей системы.
В еще одних конфигурациях осуществление преобразования координат виртуального объекта 112 может включать в себя прием или определение первой матрицы преобразования, которая представляет первую систему отсчета реального объекта 212. Может быть также определена вторая матрица преобразования, которая представляет разность позиций и ориентации между первой системой отсчета 212 реального объекта и второй системой отсчета 212 реального объекта. Кроме того, может быть определена третья матрица преобразования, которая представляет разность позиций и ориентации между первой системой отсчета 216 виртуального объекта и второй системой отсчета 216 виртуального объекта. Может быть также вычислена четвертая матрица преобразования, которая представляет преобразование координат виртуального объекта 112. В настоящем документе четвертая матрица преобразования представляет разность позиций и ориентации между первой системой отсчета 216 виртуального объекта и системой координат 204 следящей системы. Четвертая матрица преобразования также вычисляется посредством выполнения умножения первой, второй и третьей матрицы преобразования.
По другой схеме применение преобразования координат виртуального объекта 112, чтобы определить положение одного или нескольких наложенных виртуальных элементов в дополненной сцене 114, может включать прием системы отсчета 216 первого наложенного виртуального элемента. В этой разновидности система отсчета 216 первого виртуального элемента не связана с системой координат 204 следящей системы. Преобразование координат виртуального объекта 112 можно назвать преобразованием системы отсчета 216 первого виртуального элемента в преобразованную систему отсчета, которая связана с системой координат 204 следящей системы. Положение первого наложенного виртуального элемента в дополненной сцене 114 можно определить посредством преобразования системы отсчета.
Система 100 обработки данных может быть выполнена с дополнительной возможностью приема от следящей системы 108 в режиме реального времени информации о позиции и ориентации реального объекта 104. В этой модификации преобразование координат виртуального объекта 112 обновляется исходя из информации, поступающей в реальном времени, и дополненная сцена 114 обновляется посредством обновления положения одного или нескольких наложенных виртуальных элементов таким образом, чтобы они оставались связанными с реальным объектом 104.
Способы, стандартные процедуры и методы настоящего изобретения, включающие иллюстративные способы и стандартные процедуры, изображенные в схемах последовательности операций и блок-схемах разных изображенных вариантов осуществления, могут быть реализованы как программное обеспечение, исполняемое одним или несколькими системами обработки данных, которые запрограммированы так, чтобы системы обработки данных были адаптированы для выполнения части или всех способов, стандартных процедур и/или методов, описанных в данном документе. Каждый блок или условное обозначение в блок-схеме или схеме последовательности операций, указанный в данном документе, может представлять модуль, сегмент или часть машиночитаемого или используемого программного кода, который содержит один или несколько исполняемых инструкций для реализации одной или несколькими системами обработки данных указанной функции или функций. В некоторых альтернативных реализациях настоящего изобретения функция или функции, изображенные в блоках или условных обозначениях блок-схемы или схемы последовательности операций, могут следовать не в том порядке, который указан на чертежах. Например, в некоторых случаях два блока или условных обозначения, показанные последовательно, могут быть исполнены по существу одновременно или блоки иногда могут быть исполнены в обратном порядке в зависимости от включенных функциональных характеристик. Часть или весь компьютерный код может быть загружен в память системы обработки данных перед тем, как система обработки данных исполнит код.
На фиг. 13 изображена блок-схема примера системы 1300 обработки данных, которую можно применить для реализации одного или нескольких вариантов осуществления настоящего изобретения. Например, согласно фиг. 1 компьютер 106 может немедленно выполнить функцию системы обработки данных аналогично системе 1300 обработки данных по фиг. 13. В качестве другого примера программное обеспечение следящей системы, связанное с следящей системой 108, может быть исполнена системой обработки данных, аналогичной системе 1300 обработки данных по фиг. 13. Согласно фиг. 13 система 1300 обработки данных может быть применена для исполнения либо частично, либо полностью, одного или нескольких способов, стандартных процедур и/или решений настоящего изобретения. В некоторых вариантах осуществления настоящего изобретения больше, чем одна система обработки данных может быть применена для реализации способов, стандартных процедур, методов и/или решений, описанных в данном документе.
В примере по фиг. 13 система 1300 обработки данных может включать в себя волоконную линию связи 1302, которая предоставляет связь между компонентами, например процессорным блоком 1304, памятью 1306, постоянным запоминающим устройством 1308, модулем 1310 передачи данных, блоком 1312 ввода/вывода и индикатором 1314. Система шин может быть использована для реализации коммуникационной среды 1302 и может быть в составе одной или нескольких шин, таких как системная шина или шина ввода-вывода. Система шин может быть реализована посредством архитектуры любого подходящего типа, которая обеспечивает передачу данных между разными компонентами или устройствами, подключенными к системе шин.
Процессорный блок 1304 может служить для исполнения инструкций (например, программного обеспечения), который может быть загружен в систему 1300 обработки данных, например, в память 1306. Процессорный блок 1304 может представлять собой набор из одного или нескольких процессоров или может быть многоядерным процессором в зависимости от конкретной реализации. Процессорный блок 1304 может быть реализован посредством одного или нескольких гетерогенных процессорных систем, в котором основной процессор присутствует вместе с вторичными процессорами на одном чипе. В качестве другого иллюстративного примера процессорный блок 1304 может представлять собой симметричную мультипроцессорную систему, содержащую несколько процессоров одного типа.
Память 1306 может быть, например, оперативным запоминающим устройством или любым другим подходящим энергозависимым или энергонезависимым запоминающим устройством. Память 1306 может включать в себя один или несколько слоев кеш-памяти. Постоянное запоминающее устройство 1308 может принимать разные формы в зависимости от конкретной реализации. Например, постоянное запоминающее устройство 1308 может содержать один или несколько компонентов или устройств. Например, постоянное запоминающее устройство 1308 может представлять собой накопитель на жестком диске, твердотельный накопитель, флэш-память или некоторую комбинацию из вышеизложенного.
Инструкции операционной системы могут быть расположены на постоянном запоминающем устройстве 1308. В одном конкретном варианте осуществления операционная система может представлять собой некоторую версию известных операционных систем. Инструкции приложений и/или программ могут быть также расположены на постоянном запоминающем устройстве 1308. Эти инструкции могут быть загружены в память 1306 для исполнения посредством процессорного блока 1304. Например, способы и/или процессы разных вариантов осуществления, описанных в этом документе, можно осуществить процессорным блоком 1304 посредством машиноисполняемых инструкций, которые могут быть загружены в память, такую как память 1306. Эти инструкции называются программным кодом, машиноиспользуемым программным кодом или машиночитаемым программным кодом, который может считываться и исполняться процессором в процессорном блоке 1304.
Дисплей 1314 может предоставить механизм вывода информации пользователю, например, через жидкокристаллический или светодиодный экран или монитор, или другой тип дисплея. Следует понимать, что на всем протяжении этого описания, термин "дисплей" можно применять гибко, относя его либо к физическому дисплею, такому как физический экран, либо к изображению, которое пользователь увидит на экране физического устройства. Блок 1312 ввода-вывода предоставляет возможность для ввода данных из других устройств и вывода данных на другие устройства, которые могут быть подключены к системе 1300 обработки данных. Устройства ввода-вывода могут соединяться с системой либо непосредственно, либо посредством промежуточных контроллеров ввода-вывода.
Модуль 1310 передачи данных может обеспечивать связь с другими системами обработки данных или устройствами, например, через одну сеть или более. Модуль 1310 передачи данных может представлять собой сетевой адаптер. Модуль 1310 передачи данных может предоставить связь путем применения проводных и/или беспроводных линий связи. В некоторых вариантах осуществления модуль передачи данных может включать в себя схему, которая разработана и/или адаптирована для осуществления связи по различным беспроводным стандартам связи, например, стандартам WiFi, стандартам Bluetooth и т.п.
Разные компоненты, приведенные для иллюстрации системы 1300 обработки данных, не предназначены для структурных ограничений на способ, в котором могут быть реализованы разные варианты осуществления. Разные демонстрационные варианты осуществления могут быть реализованы в системе обработки данных, включающей компоненты, которые дополняют или замещают те, что приведены для иллюстрации системы 1300 обработки данных. Другие компоненты, показанные на фиг. 13, могут отличаться от показанных иллюстративных примеров.
Система 1300 обработки данных при этом может быть скомпонована из одного или нескольких блоков памяти, которые хранят машинный код, и одного или нескольких процессорных блоков 1304, соединенных с одним или несколькими блоками 1306 памяти, причем один или несколько процессорных блоков 1304 исполняют машинный код, сохраненный в одном или нескольких блоках 1306 памяти. Машиноисполняемый код принимает или задает данные системы координат 204 следящей системы, ассоциированной со следящей системой 108, 202 объекта. Система координат 204 следящей системы связана с реальным трехмерным пространством, а следящая система 108 отслеживает позицию и ориентацию в реальном трехмерном пространстве камеры 102, которая захватывает реальное трехмерное пространство и печатный маркер (906).
Следящая система 108 принимает данные о системе отсчета камеры 102, и эта система отсчета камеры показывает позицию и ориентацию камеры 102 в системе координат 204 следящей системы. При этом принятые или заданные данные являются системой координат 204 печатного маркера, причем система координат 204 печатные маркера связана с реальным трехмерным пространством. Система координат 204 печатного маркера связана с системой координат 204 следящей системы, и тем самым система отсчета объектива камеры 102 определена. Система отсчета объектива камеры показывает позицию и ориентацию объектива камеры 102 в системе координат печатного маркера.
Осуществляется преобразование координат объектива камеры 102 между системой отсчета камеры 102 и системой отсчета объектива камеры 102, и на экран выводится дополненная сцена 114, включающая вид реального трехмерного пространства и одного или нескольких виртуальных элементов, при этом преобразование координат объектива камеры 102 используется для изменения или искажения одного или нескольких виртуальных изделий в дополненной сцене 114.
Описание всевозможных преимуществ вариантов осуществления представлено с целью иллюстрации и описания и не является исчерпывающим или ограничивающим варианты осуществления. Многие модификации и вариации должны быть понятны специалистам в данной области техники. Кроме того, всевозможные преимущественные варианты осуществления могут предоставить всевозможные преимущества по сравнению с другими преимущественными вариантами осуществления. Выбранный вариант или варианты осуществления описаны для того, чтобы наилучшим образом объяснить принципы вариантов осуществления практического применения и предоставить возможность другим специалистам в данной области техники ознакомиться с описанием различных вариантов осуществления с различными модификациями, которые подходят для конкретного применения.