СПОСОБ АСИНХРОННОЙ РЕПРОЕКЦИИ ИЗОБРАЖЕНИЯ 3D-СЦЕНЫ
METHOD FOR ASYNCHRONOUS REPROJECTION OF 3D-SCENE IMAGE

Область техники
Изобретение относится к обработке изображений 3D-сцен, в частности, к способу асинхронной репроекции в системе виртуальной или дополненной реальности.
Уровень техники
В системах виртуальной или дополненной реальности (virtual/augmented reality, VR/AR) развлекательного, информационного, учебного, научного, производственного и т.п. назначения, предъявляются весьма высокие требования к качеству и скорости формирования изображения и вывода его на дисплей. От таких систем требуется не только почти мгновенный отклик на любое движение игрока (например, поворот головы или взмах руки), но и обеспечение стабильно высокой частоты вывода кадров. Если в обычных (не VR/AR) компьютерных играх обычно достаточно обеспечить частоту вывода кадров 30 кадров в секунду (frames per second, fps), а частота 60 fps считается уже прекрасным показателем, то для современных VR/AR-устройств минимально приемлемым значением является частота 90 fps.
Следует отметить, что для комфорта пользователя частота вывода кадров должна быть стабильной и не должна меняться на протяжении всей игры. Ее падение, например, до 30 fps в обычной игре на мониторе или телевизоре, скорее всего, останется для большинства пользователей незамеченным, но в системах VR/AR даже кратковременное снижение частоты вывода кадров может привести к нарушению эффекта погружения, поскольку изображение начинает дергаться, отставать от движений пользователя, вызывая неприятные ощущения, вплоть до тошноты (VR-sickness) [1].
Современные головные дисплеи (head-mounted display, HMD), такие как Oculus Rift или HTC Vive, поддерживают специальные технологии (в целом называемые технологиями репроекции), призванные сглаживать падение скорости рендеринга 3D-сцен при увеличении сложности формируемого изображения. Эти технологии позволяют искусственно повышать частоту вывода кадров на экран дисплея с целью улучшения пользовательского опыта (user experience), снижения требований к компьютерному оборудованию и предоставления дополнительной свободы разработчикам прикладных программ для таких систем.
Известен способ репроекции, именуемый чередующейся репроекцией или синхронной временнóй репроекцией (Interleaved Reprojection в SteamVR или Synchronous Timewarp в Oculus SDK) [1], в котором при обнаружении того, что система не в состоянии обеспечить частоту рендеринга 90 fps, эта частота снижается до 45 fps и система формирует промежуточные кадры, используя в качестве основы предыдущий кадр и путем 2D-трансформации поворачивая его на угол, на который за это время повернулась голова пользователя. При этом частота вывода кадров сохраняется равной 90 fps. Основными недостатками такого способа являются возможность реагирования только на поворот головы пользователя, но не на ее смещение, и дискретное (в два раза) снижение частоты рендеринга даже в том случае, если системе не хватает, например, всего 5% или 10% производительности 3D-движка. Кроме того, в момент включения/выключения репроекции пользователь замечает ощутимое «вздрагивание» изображения.
Известен также способ репроекции, именуемый асинхронной временнóй репроекцией (Asynchronous Reprojection в SteamVR или Asynchronous Timewarp (ATW) в Oculus SDK) [2], [3], в котором система формирует промежуточные кадры, используя в качестве основы предыдущий кадр и путем 2D-трансформации поворачивая его на угол, на который за это время повернулась голова пользователя, подобно тому, как это делается при чередующейся или синхронной репроекции, но этот процесс реализован в отдельном, не зависящем от 3D-движка, потоке. Если 3D-движок в нужный для поддержания необходимой частоты вывода кадров (90 fps) момент времени выдает сформированный кадр, то он выводится на экран дисплея, а если 3D-движок не успевает выполнить рендеринг, то на экран выводится результат репроекции предыдущего результата рендеринга. Это позволяет отказаться от искусственного ограничения частоты рендеринга 3D-движка, позволяя ему формировать кадры с той частотой, на которую он способен, и уменьшить количество «искусственных» кадров. Тем не менее, основным недостатком такого способа остается возможность реагирования только на поворот головы пользователя, но не на ее перемещение в пространстве.
Кроме того, известен способ репроекции, именуемый асинхронной пространственной репроекцией (Asynchronous Spacewarp (ASW) в Oculus SDK) [4], [5], в котором система формирует промежуточные кадры с учетом перемещения головы пользователя, игровых контроллеров, камеры и персонажей игры в пространстве. Для этого используются данные карты глубины (depth map) последнего сформированного 3D-движком кадра, из которой алгоритм ASW извлекает информацию о пространственном соотношении положений различных элементов изображения. Это позволяет не только смещать точку обзора согласно движению пользователя, но и имитировать смещение одних предметов относительно других в промежуточном кадре. Тем не менее, поскольку в ASW используется лишь карта глубины последнего кадра, а не полная 3D-модель, алгоритм не имеет информации об отдаленных элементах 3D-сцены, скрытых за более близкими объектами, поэтому при формировании промежуточного кадра неизбежны дефекты изображения (артефакты) в зонах, открывающихся взору пользователя при смещении объектов. Кроме того, алгоритм ASW имеет проблемы, связанные с обработкой полупрозрачных поверхностей и с применением технологий сглаживания (anti-aliasing).
В патентных документах US2015002542A1, US20150029218A1, US20160343172A1, US2016335806A1, US2017345217A1 описан способ повышения частоты кадров при демонстрации 3D-сцены путем асинхронной пространственной репроекции с использованием вертикального и/или горизонтального сдвига отдельных пикселей или групп пикселей в зависимости от изменения положения головы наблюдателя. Принцип расчета такого сдвига не раскрыт.
В патентных документах WO2017210111A1, US2017345220A1 описан способ повышения частоты кадров при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя даунсэмплинг карты глубины и сдвиг вершин полигонов исходного изображения в зависимости от глубины этих вершин.
В патентных документах US20120206452A1, US9122053B2 описан способ наложения изображения виртуального объекта на изображение реального мира в системе дополненной реальности. Положение изображения виртуального объекта на дисплее определяется с учетом положения границ виртуального объекта на карте глубины реального мира.
В патентных документах US9240069B1, WO2017003769A1 описан способ уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя заполнение «пустых» областей, возникающих при репроекции, различными способами (равномерное закрашивание, размытие и т.п.).
В патентных документах EP3051525A1, US9904056B2 описан способ повышения частоты кадров при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя раздельное формирование заднего плана 3D-сцены и переднего плана 3D-сцены основного кадра и формирование промежуточных кадров, в которых задний план 3D-сцены подвергается репроекции в зависимости от изменения положения головы наблюдателя и на него накладывается передний план 3D-сцены из основного кадра.
В патентных документах US20170155885A1, US9832451B2 описан способ снижения скорости видеопотока при демонстрации 3D-сцены путем асинхронной пространственной репроекции, в котором сначала формируется оригинальный левый кадр и из него путем репроекции формируется правый кадр, затем формируется оригинальный правый кадр и из него путем репроекции формируется левый кадр. «Пустые» области, возникающие при репроекции, заполняются с использованием «исторической» информации соответствующих старых кадров. Принцип расчета такого заполнения не раскрыт.
В патентных документах US20170213388A1, US9978180B2, WO2017131977A1 описан способ повышения частоты кадров при демонстрации 3D-сцены путем асинхронной пространственной репроекции в зависимости от изменения положения головы наблюдателя, включающий в себя гомографическое (например, аффинное) преобразование и сдвиг пикселей. Принцип расчета такого сдвига не раскрыт.
В патентных документах US9858637B1, WO2018022250A1 описан способ уменьшения задержки отображения 3D-сцены путем асинхронной пространственной репроекции в зависимости от изменения положения головы наблюдателя, скорости и ускорения такого движения. Принцип реализации репроекции не раскрыт.
В патентных документах US2017018121A1, US10089790B2 описан способ уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя заполнение «пустых» областей, возникающих при репроекции, различными способами (равномерное закрашивание, размытие и т.п.).
В патентных документах US2017004648A1, US2017200304A1, US9607428B2, US10083538B2 описан способ уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя заполнение «пустых» областей, возникающих при репроекции, различными способами (равномерное закрашивание, размытие и т.п.) с переменным шагом координатной сетки.
В патентных документах US2017243324A1, WO2017147178A1 упоминается синхронная и асинхронная пространственная и угловая репроекция изображения 3D-сцены. Способы репроекции не раскрыты.
В патентных документах US2017374341A1, US10129523B2, WO2017222838A1 описан способ пространственной репроекции изображения 3D-сцены с заполнением «пустых» областей с учетом карты глубины, которая может быть загрублена с целью повышения быстродействия алгоритма.
В патентных документах US2017374343A1, US10114454B2 также описан способ пространственной репроекции изображения 3D-сцены с заполнением «пустых» областей с учетом карты глубины, которая может быть загрублена с целью повышения быстродействия алгоритма.
В патентных документах US2018165878A1, US10043318B2, WO2018106898A1 описан способ пространственной репроекции изображения 3D-сцены с использованием интерполяции, алгоритм которой не раскрыт.
В патентных документах US2018061121A1, WO2018039586A1 упоминается синхронная и асинхронная репроекция изображения 3D-сцены. Алгоритмы репроекции не раскрыты.
В патентном документе WO2018064287A1 описан способ уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем асинхронной пространственной репроекции, включающий в себя заполнение «пустых» областей, возникающих при репроекции, различными способами (равномерное закрашивание, размытие и т.п.).
В патентных документах US2018275748A1, WO2018183026A1 описан способ уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем репроекции, при которой сцена разделена на уровни по глубине и смещение выполняется для разных уровней раздельно.
В патентных документах US2018322688A1, WO2018204092A1 описан способ репроекции для уменьшения задержки реагирования на перемещение наблюдателя при демонстрации 3D-сцены путем нелинейного преобразования изображения. Алгоритмы такого преобразования не раскрыты.
В известных технических решениях качество репроецированного изображения при использовании способа ASW в системах VR/AR с шестью степенями свободы (Six Degrees of Freedom, 6DoF) оказывается недостаточным из-за наличия артефактов. В частности, требуется существенно снизить заметность искажений репроецированного изображения, появляющихся у границ объектов при использовании способа ASW.
Раскрытие изобретения
Данное изобретение представляет собой способ комбинированной асинхронной ATW/ASW репроекции в системах рендеринга 3D-сцен с шестью степенями свободы перемещения наблюдателя, далее обозначенный 6ATSW для краткости. Способ репроекции согласно изобретению предполагает выявление характерных визуальных признаков изображения 3D-сцены, определение их весовых значений и глубины, формирование низкополигональной сетки, наложенной на изображение 3D-сцены, и последующую выборочную деформацию изображения 3D-сцены (собственно, репроекцию) путем смещения узлов низкополигональной сетки в зависимости от весовых значений и глубины визуальных признаков изображения.
Изобретение позволяет уменьшить искажения изображения, появляющиеся у границ объектов при репроекции, за счет оптимизации направления и величины смещения узлов низкополигональной сетки с учетом направлений характерных визуальных признаков изображения 3D-сцены, их весовых значений и глубины в 3D-сцене.
Кроме того, изобретение позволяет обеспечить требуемую частоту кадров изображения 3D-сцены на дисплее за счет репроекции с высоким качеством изображения, предотвращая негативный пользовательский опыт, например, головную боль, головокружение, тошноту и другие проявления «виртуальной морской болезни» (VR sickness).
Кроме того, изобретение позволяет уменьшить объем данных изображения 3D-сцены, передаваемых по каналу связи в единицу времени, без заметного увеличения искажений репроецированного изображения.
В изобретении реализован способ обработки изображения 3D-сцены, включающий в себя следующие шаги:
(1) принимают данные цветности и данные глубины исходного изображения 3D-сцены для ракурса А;
(2) на основе данных цветности определяют визуальные признаки изображения 3D-сцены и их весовые значения, а на основе данных глубины определяют их глубину;
(3) формируют низкополигональную сетку для репроекции;
(4) выполняют репроекцию изображения 3D-сцены для ракурса Б, отличного от ракурса А, путем смещения узлов низкополигональной сетки в зависимости от весовых значений и глубины визуальных признаков изображения.
Данные цветности и данные глубины могут быть представлены в любой приемлемой форме, например, в виде кадров композитных многослойных изображений, в которых данные цветности могут содержаться в одном слое, а данные глубины – в другом слое такого изображения. Тем не менее, представление этих данных в виде кадров не обязательно. В частности, эти данные могут быть представлены в виде произвольных массивов данных соответствующей размерности или вовсе могут иметь распределенную структуру (т.е. эти данные не должны быть обязательно сосредоточены в одном месте до их приема в обработку). Источником таких данных может быть 3D-движок, 3D-камера (например, подобная Intel RealSense), компьютерное устройство памяти, диск Blue Ray или любое другое устройство для формирования или хранения последовательности изображений 3D-сцен.
Следует отметить, что в примерах осуществления изобретения, описанных в этом документе, массивы данных имеют вид двумерной матрицы и называются «кадрами» и «картами». Тем не менее, должно быть понятно, что термины «кадр» и «карта» не ограничивают изобретение и использованы лишь в качестве иллюстративного примера, упрощающего понимание сущности изобретения.
Визуальные признаки изображения 3D-сцены представляют собой характерные особенности изображения, влияющие на результат репроекции. В частности, такими признаками являются физические границы объектов в 3D-сцене, контрастные (по цвету и/или по яркости) границы областей изображения (например, в изображениях типа «зебра» или «шахматное поле») и градиенты (например, градиент безоблачного закатного неба). Каждый визуальный признак характеризуется весовыми значениями вдоль заранее заданных направлений и глубиной той области изображения, которая относится к этому признаку (например, глубиной пикселя или группы пикселей). Например, для изображения темной решетки с прямоугольными ячейками в окне на фоне светлого неба при нормальной ориентации кадра весовые значения границы между краем вертикального прута решетки и окружающим воздухом будут максимальными для вертикального направления, не слишком значительными для наклонных направлений +45° и –45° к горизонту и минимальными для горизонтального направления. Весовые значения и глубина визуальных признаков изображения могут составлять массив данных соответствующей размерности для удобства их дальнейшей обработки.
Низкополигональная сетка для репроекции представляет собой сетку, содержащую сравнительно небольшое количество ячеек. Должно быть понятно, что в ортогональной системе координат разумнее всего использовать ортогональную сетку, образующую квадраты, хотя это и не единственный вариант низкополигональной сетки для данного изобретения. Каждая ячейка низкополигональной сетки связана с областью исходного изображения 3D-сцены, таким образом, что при смещении узла низкополигональной сетки (т.е. при деформации ячейки низкополигональной сетки) деформируется и соответствующая область исходного изображения 3D-сцены.
Данные глубины исходного изображения 3D-сцены могут быть подвергнуты нормированию до шага (2) для ускорения вычислительных операций. Размер исходного изображения 3D-сцены может быть уменьшен до шага (2) для снижения влияния шумов исходного изображения на дальнейшую обработку изображения согласно алгоритму.  При уменьшении размера исходного изображения 3D-сцены может применяться MIP-текстурирование. При уменьшении размера исходного изображения 3D-сцены данные цветности и данные глубины могут подвергаться усреднению и/или фильтрации.
Оптимальный размер низкополигональной сетки может быть определен до шага (3). Размер массива весовых значений и глубины каждого визуального признака может быть уменьшен до размера низкополигональной сетки до шага (4). При уменьшении размера массива весовых значений и глубины весовые значения каждого визуального признака могут подвергаться усреднению, а глубина каждого визуального признака – взвешиванию с использованием весовых значений. Усреднение и взвешивание для каждого элемента массива весовых значений и глубины может выполняться по смежным с ним элементам этого массива данных.
Визуальные признаки изображения могут определяться по множеству направлений, включая вертикальное и горизонтальное направления, а также по меньшей мере два наклонных направления. Например, это могут быть два упомянутых выше наклонных направления +45° и –45° к горизонту или четыре наклонных направления +30°, +60°, –30° и –60° к горизонту.
Визуальные признаки изображения могут определяться с применением обычно используемых для подобных целей математических методов, например, путем выполнения операции свертки. В качестве альтернативы, визуальные признаки изображения могут определяться с применением нейронной сети, обученной на характерных примерах изображений.
Оптимальное смещение вершин узлов низкополигональной сетки может определяться с применением обычно используемых для подобных целей математических операций, например, методом наименьших квадратов. В качестве альтернативы, смещение вершин узлов низкополигональной сетки может определяться с применением нейронной сети, обученной на характерных примерах изображений.
В одном из вариантов осуществления изобретения на шаге (1) дополнительно принимается вектор движения каждого пикселя исходного изображения 3D-сцены, содержащий направление и скорость движения. Такой вектор может, например, формироваться 3D-движком и может передаваться вместе с данными цветности и данными глубины изображения. Учет вектора движения позволяет повысить точность репроекции при работе с динамическими объектами в 3D-сцене. В этом случае до шага (4) для каждого элемента массива весовых значений и глубины на основе вектора движения определяются параметры движения в каждом направлении каждого визуального признака изображения, релевантного этому элементу. Далее на шаге (4) репроекция изображения 3D-сцены выполняется с учетом этих параметров движения. Параметры движения могут включать в себя значения скорости, ускорения (первой производной скорости), вращения вокруг по меньшей мере одной оси, а также, при необходимости, изменения размера (например, деформации и/или масштабирования).
В изобретении также реализован способ обеспечения частоты кадров изображения 3D-сцены в устройстве демонстрации изображения, включающий в себя следующие шаги:
(1) получают кадр исходного изображения 3D-сцены из устройства формирования изображения;
(2) выполняют обработку исходного изображения 3D-сцены согласно любому из описанных выше вариантов;
(3) демонстрируют наблюдателю кадр репроецированного изображения 3D-сцены до получения следующего кадра изображения 3D-сцены из устройства формирования изображения.
Устройство демонстрации изображения может представлять собой любое устройство, обеспечивающее демонстрацию изображения на двумерном экране. Экран при этом может быть плоским, выпуклым или вогнутым. Примерами такого устройства могут служить дисплеи, телевизоры, мониторы, плазменные панели, проекционные системы и т.п. В иллюстративном варианте реализации изобретения устройство демонстрации изображения представляет собой головной дисплей или очки дополненной реальности.
Устройство формирования изображения может представлять собой любое устройство, обеспечивающее формирование или хранение последовательности изображений 3D-сцен, например, 3D-движок, 3D-камеру (например, подобную Intel RealSense), компьютерное устройство памяти, диск Blue Ray и т.п.
Репроекция изображения 3D-сцены может выполняться с учетом данных трекинга наблюдателя, которые могут представлять собой прогнозные данные о положении и ориентации головы наблюдателя в заранее заданный момент времени в будущем. Заранее заданный момент времени в будущем может быть максимально приближен к моменту демонстрации наблюдателю исходного или репроецированного изображения 3D-сцены при обеспечении заранее заданной частоты вывода кадров. В современных системах VR/AR приемлемой считается частота вывода кадров, приблизительно равная 90 fps.
Наблюдателю можно демонстрировать каждый кадр исходного изображения 3D-сцены без проверки возраста данных трекинга наблюдателя, а кадр репроецированного изображения 3D-сцены можно демонстрировать только в тех случаях, когда скорость формирования 3D-движком кадров исходного изображения 3D-сцены недостаточна для обеспечения заранее заданной частоты вывода кадров.
В альтернативном варианте наблюдателю можно демонстрировать либо кадр исходного изображения 3D-сцены, либо кадр репроецированного изображения 3D-сцены, в зависимости от того, какой из них соответствует более свежим данным трекинга наблюдателя, при обеспечении заранее заданной частоты вывода кадров.
Формирование репроецированного изображения 3D-сцены можно задерживать таким образом, чтобы использовать наиболее свежие данные трекинга наблюдателя и формировать репроецированный кадр возможно ближе к моменту демонстрации наблюдателю, поддерживая при этом заранее заданную частоту вывода кадров. Это позволяет дополнительно уменьшить искажения репроецированного изображения на границах объектов 3D-сцены.
Репроекцию можно выполнять в отношении изображений для левого и правого глаза наблюдателя синхронно или асинхронно, при этом выбор синхронного или асинхронного режима можно предоставить наблюдателю, который может определить свои предпочтения опытным путем. В альтернативном варианте синхронный или асинхронный режим может быть выбран в зависимости от конфигурации устройства демонстрации изображения, в том числе, автоматически.
Краткое описание чертежей
На фиг. 1 проиллюстрирован пример реализации способа репроекции 6ATSW согласно данному изобретению.
На фиг. 2 представлена блок-схема алгоритма способа репроекции 6ATSW согласно данному изобретению.
На фиг. 3 проиллюстрировано соотношение размеров карты RGBA1 (1024×1024 пикселя) и карты RGBA4 (32×32 пикселя, где каждый пиксель соответствует области исходного изображения размером 32×32 пикселя).
На фиг. 4 условно показана структура пикселя карты RGBA3 согласно данному изобретению.
На фиг. 5 проиллюстрирован принцип усреднения для обеспечения связности преобразования согласно данному изобретению.
На фиг. 6 условно показан один вариант взаимодействия потоков обработки данных при рендеринге и репроекции согласно данному изобретению.
На фиг. 7 условно показан другой вариант взаимодействия потоков обработки данных при рендеринге и репроекции согласно данному изобретению.
На фиг. 8 условно показан еще один вариант взаимодействия потоков обработки данных при рендеринге и репроекции согласно данному изобретению.
На фиг. 9 представлены кадры с наложенной на них низкополигональной сеткой – исходное изображение (слева) и репроецированное изображение (справа).
На фиг. 10 представлен фрагмент кадра репроецированного изображения с фиг. 9 в увеличенном виде, дополнительно подвергнутого геометрическим предыскажениям (дисторсии).
На фиг. 11 представлены упрощенные (схематические) изображения фрагментов кадров исходного изображения (слева) и репроецированного изображения (справа), соответствующих изображению на фиг. 10.
На фиг. 12 представлено наложение сеток репроекции изображений с фиг. 11 (до и после репроекции) для иллюстрации смещения узлов сетки и характерных визуальных признаков изображения в результате работы алгоритма 6ATSW согласно изобретению.
Осуществление изобретения
Далее приведено описание иллюстративного примера реализации изобретения, относящееся преимущественно к системам виртуальной или дополненной реальности  развлекательного, информационного, учебного, научного, производственного и другого назначения. Такие системы являются наиболее вероятными, хотя и не единственными вариантами применения способа согласно изобретению. Принципы обработки изображения 3D-сцены для уменьшения искажений изображения, появляющихся у границ объектов при репроекции, повышения частоты кадров и/или снижения объема данных в канале передачи изображения могут быть использованы в любых других системах, связанных с построением и демонстрацией изображений 3D-сцены со смещением ракурса (точки наблюдения). Примерами таких систем могут быть CAD/CAM-системы, научные системы пространственного моделирования (в частности, в области органического синтеза и биотехнологий), графические системы тренажеров для водителей автомобилей, судоводителей, пилотов, операторов строительной техники, операторов подъемно-транспортного оборудования и т.п. При этом такие системы не обязательно являются системами виртуальной или дополненной реальности, т.е. у них может быть иной уровень и иные механизмы иммерсивности.
На фиг. 1 приведен иллюстративный пример реализации способа репроекции 6ATSW, в котором оригинальный кадр (в данном случае с размером изображения 1024×1024 пикселей) путем агрегирования данных цвета и глубины изображения преобразуют в композитную карту, условно обозначенную RGBA1 (также с размером изображения 1024×1024 пикселей), размер которой затем подвергают уменьшению (в данном примере – до размера 256×256 пикселей) и получают промежуточную композитную карту, условно обозначенную RGBA2, которую затем подвергают анализу изображения с целью выявления характерных визуальных признаков (далее для краткости иногда называемых просто признаками) и получают карту признаков, условно обозначенную RGBA3, размер которой затем подвергают уменьшению (например, до размера 32×32 пикселя) с получением карты признаков, условно обозначенной RGBA4, которую преобразуют в карту узлов, условно обозначенную RGBA5 (размером 33×33 пикселя), называемую также картой преобразования, на основе которой выполняют преобразование изображения оригинального кадра (т.е. его репроекцию) с получением репроецированного кадра (с размером изображения 1024×1024 пикселей). Специалисту должно быть понятно, что указанные выше численные значения выбраны исключительно с иллюстративной целью, чтобы способствовать лучшему пониманию сути данного изобретения, и что на практике эти значения могут быть другими.
Алгоритм способа репроекции 6ATSW в виде блок-схемы представлен на фиг. 2.
На шаге 11 определяется оптимальный шаг сетки, используемой в дальнейшем при репроекции изображения, и оптимальное разрешение изображения, подвергаемого анализу с целью выявления характерных визуальных признаков. При определении шага сетки учитываются параметры системы VR/AR – разрешение дисплея, дисторсия линз VR/AR-гарнитуры и т.п.
Задача репроекции, решаемая алгоритмом 6ATSW, подразумевает использование настолько быстрого способа формирования изображения для промежуточного кадра, насколько это возможно при выполнении требования к качеству сформированного изображения. Одним из наиболее быстрых способов является проекция изображения на низкополигональную сетку с последующим смещением вершин этой сетки в зависимости от перемещения пользователя. Оптимальная величина шага сетки представляет собой компромисс, поскольку уменьшение шага сетки повышает качество изображения (уменьшает артефакты), но увеличивает вычислительную нагрузку системы VR/AR, а увеличение шага сетки снижает качество изображения вследствие того, что в каждую ячейку сетки попадает большее количество объектов с разной глубиной расположения в 3D-сцене. В общем случае, шаг сетки может задаваться пользователем, исходя из его личных предпочтений, или определяться системой VR/AR на основе сопоставления производительности системы и уровня сложности 3D-сцен.
Например, если разрешение по горизонтали кадра, сформированного 3D-движком, составляет 1024 пикселей, а пользователь желает использовать сетку с размером ячейки 40 пикселей по горизонтали, то оптимальная величина шага сетки может быть определена из ряда значений 1024, 512, 256, 128, 64, 32, 16 и т.д. Наиболее близким к 40 пикселям является значение 32 пикселя из этого ряда. Величина шага сетки по вертикали определяется на основе форм-фактора (т.е. соотношения размеров сторон) исходного кадра. В большинстве случаев сетка имеет квадратную ячейку, но в некоторых вариантах реализации изобретения сетка может иметь ячейку, форма которой отличается от квадратной. Например, она может представлять собой прямоугольник с отношением сторон 1:1,5, 3:4 и т.д. При использовании неортогональной системы координат сетка может иметь ячейки непрямоугольной формы.
Предпочтительно выполнять анализ изображения меньшего размера, чем размер исходного изображения карты RGBA1. Это позволяет исключить или снизить влияние на репроекцию мелких элементов изображения, не имеющих критического значения, а также шумов и погрешностей на границах объектов. Кроме того, это ускоряет обработку и снижает потребление вычислительных ресурсов системы VR/AR. Предпочтительно применять кратное уменьшение размера исходного изображения. В других вариантах реализации изобретения такое уменьшение размера может быть некратным и может выполняться любым подходящим способом, известным специалистам в данной области техники.
В некоторых вариантах реализации изобретения анализ изображения может выполняться на карте RGBA1, размер которой равен размеру исходного изображения. Это может быть приемлемым для систем VR/AR с дисплеями сравнительно низкого разрешения.
Размер изображения, подвергаемого анализу, в общем случае должен быть больше шага низкополигональной сетки, используемой при формировании репроецированного кадра (т.е. анализ должен выполняться на изображении большего разрешения, чем шаг сетки репроекции). Соотношение размера изображения для анализа и шага сетки репроекции может быть кратным. В примере на фиг. 1 размер изображения для анализа превышает размер низкополигональной сетки в 8 раз.
Выбор размера изображения, подвергаемого анализу, на шаге 11 может выполняться с учетом MIP-текстурирования, выполняемого графической подсистемой системы VR/AR. Принципы MIP-текстурирования хорошо известны специалистам (например, см. [6]), поэтому их подробное описание опущено для краткости.
Определение указанных выше параметров обычно выполняется один раз при инициализации или при настройке системы VR/AR перед работой. Тем не менее, в некоторых случаях алгоритм может предусматривать изменение этих параметров уже в ходе работы системы VR/AR, например, вручную – по желанию пользователя или автоматически – при изменении характера изображения 3D-сцен.
На шаге 12 в обработку поступают входные данные алгоритма – карта цветности (color map) и карта глубины (depth map), сформированные 3D-движком системы VR/AR.
На шаге 13 выполняется нормирование карты глубины, в общем случае, поступающей от 3D-движка в формате с плавающей запятой, с приведением ее к формату, в котором каждый пиксель глубины описан одним байтом. Это позволяет ускорить обработку данных и/или снизить вычислительную нагрузку аппаратных средств системы VR/AR. Тем не менее, этот шаг является опциональным и может быть исключен в некоторых вариантах реализации изобретения.
На шаге 14 выполняется объединение данных карты цветности и карты глубины в композитную карту RGBA1, где каналы RGB содержат информацию о цвете и яркости (красный (red), зеленый (green), синий (blue)), а канал A – информацию о глубине изображения. Упомянутое выше нормирование карты глубины позволяет реализовать карту RGBA1 в стандартном 32-битовом формате пикселей, где в канале А информация о прозрачности заменена на информацию о глубине изображения.
На шаге 15 выполняется приведение исходного изображения к размеру, определенному на шаге 11, с получением карты RGBA2.
Далее на шаге 16 выполняется анализ изображения и формируется карта признаков RGBA3. Более подробно действия на шаге 16 описаны далее.
На шаге 17 выполняется уменьшение размера карты признаков RGBA3 с получением карты признаков RGBA4, размер которой соответствует определенному на шаге 11 шагу сетки, используемой в дальнейшем при репроекции изображения.
На шаге 18 на основе карты признаков формируется репроецированный кадр. Более подробно действия на шаге 17 описаны далее и проиллюстрированы на фиг. 9–12.
На шаге 19 сформированный кадр выводится на дисплей для демонстрации наблюдателю.
На фиг. 3–5 приведен иллюстративный пример карт RGBA4 и RGBA5. На фиг. 3 проиллюстрировано соотношение размеров карты RGBA1 (1024×1024 пикселя), равного размеру исходного кадра, и карты RGBA4 (32×32 пикселя) с фиг. 1, где каждый пиксель карты RGBA4 соответствует области исходного кадра размером 32×32 пикселей. Специалисту должно быть понятно, что в различных вариантах реализации изобретения размер карты RGBA1 может быть иным, например, 1920×1024, 1920×1080, 1920×1200, 1920×1600, 1920×1920 пикселей и т.д., в зависимости от разрешения применяемого дисплея и производительности 3D-движка в системе VR/AR, и что размер 1024×1024 пикселя выбран лишь для простоты изложения иллюстративного варианта реализации изобретения.
В иллюстративном примере на фиг. 3 исходная карта RGBA1 была подвергнута изменению размера (downsampling) с получением промежуточной карты RGBA2, при этом каждый пиксель карты RGBA2 размером 256×256 пикселей содержит некоторое усредненное значение цвета и глубины для области размером 4×4 пикселя исходной карты RGBA1. Алгоритмы усреднения значений цвета и глубины хорошо известны специалистам, поэтому их подробное описание опущено для краткости. Достаточно упомянуть о том, что такое усреднение может являться простым арифметическим усреднением, усреднением с применением взвешивающих коэффициентов или нелинейным усреднением, и что при этом могут использоваться соответствующие фильтры (например, фильтры Чебышева, Ланцоша, эллиптические фильтры и т.п.). Выбор тех или иных способов усреднения может зависеть, например, от степени усреднения (т.е. от степени изменения размера исходной карты RGBA1), характера изображения, производительности аппаратных ресурсов, доступных для выполнения этой операции, степени их загрузки другими процессами и т.д.
На основе карты RGBA2 была сформирована карта RGBA3 признаков, каждый пиксель которой содержит информацию о том, как должна вести себя каждая соответствующая область размером 4×4 пикселя исходного кадра при формировании репроецированного изображения, т.е. в каком направлении и в какой степени должна сместиться соответствующая вершина сетки репроекции. Карта признаков содержит результаты анализа изображения по нескольким направлениям. Определение характерных визуальных признаков на изображении 3D-сцены с учетом цвета пикселей и карты глубины может выполняться с учетом градиента цвета пикселей в канале RGB и максимального значения яркости пикселей в канале A карты RGBA2 вдоль каждого направления.
В одном примере реализации изобретения градиент цвета пикселей в канале RGB может учитываться в отношении восьми соседних пикселей и результаты анализа изображения по нескольким направлениям могут содержать векторную сумму градиентов. В другом примере реализации изобретения градиент может учитываться в отношении не только соседних, но и более отдаленных пикселей и результаты анализа изображения по нескольким направлениям могут содержать взвешенную векторную сумму градиентов, в которой вклад пикселей на разном удалении определяется взвешивающим коэффициентом.
В одном примере реализации изобретения максимальное значение яркости пикселей в канале A может выбираться из значений яркости каждого пикселя и восьми соседних пикселей.
В еще одном примере реализации изобретения анализ изображения может выполняться с использованием обученной нейронной сети. Могут быть применимы и другие методы анализа изображения, например, подобные описанным в публикации [7].
Характерные визуальные признаки в контексте данного изобретения концептуально основаны на признаках Хаара [8]. В частности, такими признаками являются физические границы объектов в 3D-сцене, контрастные (по цвету и/или по яркости) границы областей изображения (например, в текстурах типа «зебра» или «шахматное поле») и градиенты (например, градиент безоблачного закатного неба).
Для выделения признаков также могут использоваться разнообразные известные методы, например, методы Sobel, Canny, Prewitt, Roberts, методы нечеткой логики и т.п.
В иллюстративном примере реализации изобретения характерные визуальные признаки на изображении анализируются по четырем направлениям: двум основным – горизонтальному и вертикальному направлениям и двум дополнительным – диагонали 1 и диагонали 2. В других случаях количество направлений при анализе признаков может быть иным, в частности, вместо двух дополнительных направлений (например, диагоналей, которые условно могут быть расположены под углом 45° к осям координатной сетки) может быть использовано четыре дополнительных направления (которые условно могут быть расположены с шагом 30° к осям координатной сетки). Увеличение количества направлений при анализе признаков повышает точность репроекции, но требует бóльших вычислительных ресурсов (в частности, большего быстродействия и большего объема памяти оборудования системы VR/AR). Поэтому выбор количества направлений носит компромиссный характер и может зависеть от ряда параметров системы VR/AR, в частности, ее от ее назначения, от характеристик дисплеев, от характера 3D-сцен и т.д.
На карте RGBA3 для каждого пикселя указан вес (W) признаков и глубина (D) для каждого направления. В иллюстративном примере реализации изобретения вес и глубина для четырех направлений содержатся в следующих каналах: R – горизонтальная граница; G – вертикальная граница; B – диагональ 1; A – диагональ 2 (фиг. 4). Специалисту должно быть понятно, что в других случаях количество каналов и распределение данных по ним могут быть иными.
Таким образом, каждый пиксель карты RGBA3 содержит информацию о градиенте цвета в канале RGB вдоль каждого анализируемого направления и о яркости в канале A соответствующего пикселя карты RGBA2.
Специалисту также должно быть понятно, что в различных вариантах реализации изобретения количество пикселей в карте RGBA2 и в карте RGBA3 может быть иным. Увеличение размера карт RGBA2 и RGBA3 (т.е. количества пикселей в них по вертикали и горизонтали) повышает точность репроекции, но требует бóльших вычислительных ресурсов (в частности, большего быстродействия и большего объема памяти оборудования системы VR/AR). Поэтому выбор размера этих карт носит компромиссный характер и может зависеть от ряда параметров системы VR/AR, в частности, ее от ее назначения, от характеристик дисплеев, от производительности системы и т.д.
Для использования на дальнейших шагах алгоритма 6ATSW карта RGBA3 преобразуется в карту RGBA4, размер которой определен на шаге 11. В иллюстративном примере согласно фиг. 1 и фиг. 3 карта RGBA3 подверглась уменьшению размера с 256×256 пикселей до 32×32 пикселя с получением карты RGBA4.
Следует отметить, что двухступенчатое загрубление данных (первое при преобразовании исходной карты RGBA1 в карту RGBA2 и второе при преобразовании карты RGBA3 в карту RGBA4) обеспечивает лучшее соотношение точности репроекции и скорости работы алгоритма 6ATSW, чем однократное загрубление данных с соответствующим коэффициентом при преобразовании карты RGBA3 в карту RGBA4. Например, преобразование исходной карты (RGBA1) размером 1024×1024 пикселя в промежуточную карту (RGBA2) размером 256×256 пикселей, формирование карты границ (RGBA3) размером 256×256 пикселей и ее последующее преобразование в карту границ (RGBA4) размером 32×32 пикселя (см. фиг. 1), как правило, предпочтительней, чем преобразование исходной карты (RGBA1) размером 1024×1024 пикселя в карту границ (RGBA3) размером 1024×1024 пикселя с последующим формированием из нее карты границ (RGBA4) размером 32×32 пикселя.
При уменьшении размера карты RGBA3 с 256×256 пикселей до 32×32 пикселя с получением карты RGBA4 значения веса (W) признаков были усреднены по соседним пикселям (например, по четырем или восьми соседним пикселям), а значения глубины (D) признаков были усреднены по соседним пикселям (например, по четырем или восьми соседним пикселям) со взвешиванием весами (W) признаков этих пикселей.
Подобно карте RGBA3, каждый пиксель карты RGBA4 содержит информацию о характерных визуальных признаках, выявленных на изображении, и о весах этих признаков. Для перехода от этой информации к данным о том, в каком направлении и в какой степени должна сместиться вершина низкополигональной сетки при репроекции, карта RGBA4 была преобразована в карту узлов RGBA5.
Для этого на карту RGBA4 была наложена координатная сетка таким образом, чтобы узлы координатной сетки (условно обозначены окружностями на фиг. 5) были расположены в центре пикселей карты RGBA4. Как видно из фиг. 5, размер этой координатной сетки по обеим координатам на единицу превышает размер карты RGBA4. Если размер карты RGBA4 в общем случае составляет N×M, то размер второй координатной сетки составляет (N+1)×(M+1). При наложении координатной сетки на карту RGBA4 размером 32×32 пикселя, показанную в иллюстративном примере на фиг. 3, размер этой координатной сетки составляет 33×33 ячейки.
Координатная сетка размером 33×33 ячейки определяет размер карты узлов (RGBA5), называемой также картой преобразования и используемой при формировании репроецированного изображения. Каждый пиксель карты преобразования содержит информацию о том, как должна сместиться вершина каждой соответствующей области исходного кадра при формировании репроецированного изображения.
Для обеспечения связности преобразования значение каждого пикселя карты RGBA5 может быть усреднено (blur) по смежным пикселям карты RGBA4. На фиг. 5 проиллюстрирован принцип такого усреднения, где пиксель карты RGBA5 (выделен перекрестной штриховкой) усреднен по четырем пикселям карты RGBA4 (выделены линейной наклонной штриховкой). При этом специалисту должно быть понятно, что на краях и в углах карты RGBA4 действуют краевые ограничения и что в этом случае усреднение либо выполняется по двум пикселям карты RGBA4 (на краях), либо отсутствует вовсе (в углах). Алгоритмы усреднения значений хорошо известны специалистам, поэтому их подробное описание опущено для краткости. Достаточно упомянуть о том, что такое усреднение может являться простым арифметическим усреднением, усреднением с применением взвешивающих коэффициентов или нелинейным усреднением с использованием соответствующих фильтров (например, фильтров Чебышева, Ланцоша, эллиптических фильтров и т.п.).
В результате преобразования исходного кадра на основе карты RGBA5 формируется репроецированный кадр, который выводится на дисплей для демонстрации его наблюдателю. При формировании репроецированного кадра к каждой области изображения исходного кадра применяется преобразование, определяемое соответствующим пикселем карты RGBA5, при этом каждая вершина области размером 32×32 пикселя исходного кадра смещается в зависимости от геометрического положения признаков в 3D-сцене, попавших в эту область, т.е. область деформируется в соответствии со смещением точки зрения наблюдателя. Смещение вершин этой области вызывает деформацию изображения в этой области, которая реализуется алгоритмами, известными специалистам в данной области техники. Достаточно упомянуть о том, что такая деформация может обеспечиваться, например, путем применения аффинного преобразования или других подходящих математических средств.
Следует отметить, что на смещение вершин этой области может влиять также и движение объектов в 3D-сцене, определяемое сценарием действия в 3D-сцене и не зависящее от смещения точки зрения наблюдателя. Специалисту должно быть очевидно, что для повышения качества репроекции алгоритм может учитывать это движение объектов наряду со смещением точки зрения наблюдателя. Для учета этого движения используется вектор движения каждого пикселя исходного изображения 3D-сцены, содержащий направление и скорость движения, как это описано ранее.
Репроекция согласно данному изобретению имеет асинхронный характер. Иными словами, формирование изображения для каждого глаза выполняется в два потока – первый поток относится к рендерингу 3D-сцены, второй поток – к выполнению репроекции 3D-сцены. Если к моменту времени, когда для поддержания требуемой частоты вывода кадров следует вывести новый кадр, рендеринг нового оригинального кадра не завершен, вместо него выводится репроецированный кадр, т.е. наиболее свежий оригинальный кадр, подвергнутый репроекции. Оригинальным в данном документе называется кадр, сформированный в потоке рендеринга, а репроецированным – кадр, сформированный в потоке репроекции. Каждый поток выполняется со своей скоростью, обусловленной параметрами соответствующего процесса – сложностью 3D-сцены, быстродействием трекинга, выделенными этому процессу вычислительными ресурсами и т.д. Скорость этих потоков может отличаться как в среднем, так и в текущем значении, т.е. скорость может не оставаться постоянной, а может зависеть, например, от сложности 3D-сцены.
В зависимости от способа вывода изображения на экран дисплея для левого и правого глаза пользователя, порядок, в котором исходные кадры для левого и правого глаза пользователя запрашиваются от 3D-движка и направляются на репроекцию, а репроецированные кадры выводятся на экран, может отличаться. Если в дисплее системы VR/AR использован одновременный вывод кадров для левого и правого глаза пользователя, например, если дисплей один, а для левого и правого глаза выделены, соответственно, его левая и правая половины, и изображение выводится на экран по строкам (horizontal scan line), то репроекции подвергаются одновременно кадры для левого и правого глаза. В этом случае репроецированные кадры 3D-сцены относятся к одному моменту времени.
Если в дисплее системы VR/AR использован попеременный вывод кадров для левого и правого глаза пользователя, например, если для каждого глаза предназначен отдельный дисплей или если дисплей один, но изображение в его левой и правой половинах выводится на экран последовательно по столбцам (vertical scan line), то кадры для левого и правого глаза могут подвергаться репроекции независимо друг от друга. В этом случае в качестве основы для репроекции используется наиболее свежий кадр, сформированный 3D-движком для соответствующего глаза, т.е. пока выполняется репроекция кадра для левого глаза, 3D-движок может успеть сформировать новый кадр для правого глаза, который будет использован непосредственно или в качестве основы для репроекции для правого глаза. В этом случае репроецированные кадры 3D-сцены относятся к разным моментам времени.
На фиг. 6 и 7 проиллюстрированы два варианта реализации данного изобретения, в котором шаги 11–16 алгоритма репроекции (фиг. 2) выполняются в потоке рендеринга, а шаг 17 – в потоке репроекции. При этом длительность каждого действия показана условно, без соблюдения масштаба, тем не менее, специалисту должно быть понятно, что длительность репроекции в большинстве случаев существенно меньше длительности рендеринга.
1
2
В одном варианте реализации изобретения каждый сформированный в потоке рендеринга оригинальный кадр может выводиться на дисплей безусловно, т.е. без проверки актуальности данных трекинга, на основе которых сформирован этот кадр. В частности, в примере на фиг. 6 в качестве кадра N выводится оригинальный кадр, сформированный с учетом более старых данных трекинга (полученных в момент времени t), а не репроецированный кадр, сформированный на основе предыдущего оригинального кадра, но с учетом более свежих данных трекинга (полученных в момент времени t).
2
1
В другом варианте реализации изобретения на дисплей может выводиться либо оригинальный кадр, либо репроецированный кадр, в зависимости от того, какой из них сформирован с учетом более свежих данных трекинга. В частности, в примере на фиг. 7 в качестве кадра N выводится репроецированный кадр, сформированный на основе предыдущего оригинального кадра, но с учетом более свежих данных трекинга (полученных в момент времени t), а не оригинальный кадр, сформированный с учетом более старых данных трекинга (полученных в момент времени t).
3
2
В еще одном варианте реализации изобретения та часть алгоритма репроекции, в которой используются данные трекинга, может принудительно задерживаться с таким расчетом, чтобы сформировать репроецированный кадр возможно ближе к моменту вывода этого кадра на дисплей. Это позволяет выполнять репроекцию на самых свежих данных трекинга и за счет этого повысить качество репроецированного изображения. В частности, в примере на фиг. 8 шаг 17 выполняется с задержкой, позволяющей использовать данные трекинга, полученные момент времени t, вместо данных трекинга, полученных в момент времени t. Такой подход к репроекции, условно названный ALAP-репроекцией (as last as possible) может быть реализован подобно ALAP-рендерингу, описанному в более ранней заявке PCT/RU2014/001019 этого же заявителя.
Следует отметить, что во всех примерах на фиг. 6–8 в качестве кадра N+1 выводится репроецированный кадр, поскольку свежий оригинальный кадр к моменту начала вывода кадра N+1 еще не сформирован.
Репроекция выполняется на основе данных трекинга наблюдателя, в частности, данных о положении и ориентации головы наблюдателя. Для того чтобы обеспечить минимальную задержку реагирования системы VR/AR на движение головы наблюдателя, репроекция в данном изобретении может выполняться на основе прогнозных данных о положении и ориентации головы наблюдателя в заранее определенный момент времени в будущем. Такое прогнозирование может производиться путем экстраполяции текущих данных трекинга наблюдателя с учетом исторических данных трекинга. Подробности реализации такого прогнозирования раскрыты в более ранней заявке PCT/IB2017/058068 этого же заявителя, все содержание которой включено в данный документ посредством ссылки.
Следует отметить, что рендеринг 3D-сцены также выполняется на основе данных трекинга наблюдателя и он также может быть основан на прогнозных данных о положении и ориентации головы наблюдателя в заранее определенный момент времени в будущем. При этом горизонт прогнозирования в потоке рендеринга и в потоке репроекции может быть одинаковым или может отличаться. В частности, поскольку репроекция 3D-сцены обычно представляет собой более быстрый процесс, чем рендеринг полной 3D-сцены, горизонт прогнозирования в потоке репроекции может быть ближе, чем в потоке рендеринга. Это позволяет повысить точность прогнозирования положения наблюдателя и, следовательно, точность репроекции.
Также следует отметить, что асинхронная репроекция может выполняться в отношении изображений для левого и правого глаза наблюдателя независимо. В качестве альтернативы, асинхронная репроекция может синхронизироваться в отношении изображений для левого и правого глаза, оставаясь асинхронной относительно соответствующих потоков рендеринга изображений для левого и правого глаза наблюдателя. Такая синхронизация изображений для левого и правого глаза может применяться, например, при синхронном выводе левого и правого кадров, обусловленном конструкцией дисплея, как упомянуто в описании ранее. Предпочтительный режим такой синхронизации может определяться алгоритмически или он может вводиться на основе эксперимента, например, в соответствии с личными предпочтениями пользователя системы VR/AR.
Далее работа алгоритма репроекции 6ATSW проиллюстрирована на фиг. 9–12.
На фиг. 9 представлены кадры с изображением 3D-сцены наложенной на них низкополигональной сеткой – исходное изображение (слева) и репроецированное изображение (справа). Кадры повернуты и расположены в ряд для большей наглядности. На фиг. 10 представлен фрагмент кадра репроецированного изображения с фиг. 9 в увеличенном виде. Следует отметить, что изображение на фиг. 10. было дополнительно подвергнутого геометрическим предыскажениям (дисторсии) для компенсации искажений, связанных с особенностями оптики головного дисплея. В данном случае для упрощения понимания проиллюстрировано строго вертикальное изменение положения головы пользователя без ее поворота. На фиг. 11 представлены упрощенные (схематические) изображения фрагментов кадров исходного изображения (слева) и репроецированного изображения (справа), соответствующих изображению на фиг. 10. Сравнение изображений на фиг. 11 позволяет ясно увидеть деформацию сетки (т.е. смещение ее узлов) и соответствующее изменение изображения, с которым эта сетка связана.
На фиг. 12 представлено наложение сеток репроекции левого и правого изображений с фиг. 11 (до и после репроекции) для иллюстрации смещения узлов сетки и характерных визуальных признаков изображения в результате работы алгоритма 6ATSW согласно изобретению. Серым цветом (А) показано положение сетки репроекции до смещения ее узлов (т.е. соответствующее левому изображению с фиг. 11), а черным цветом (Б) показано положение сетки репроекции после смещения ее узлов (т.е. соответствующее правому изображению с фиг. 11). Смещение узлов обозначено отрезками с кружками на концах (Д). Смещение признаков проиллюстрировано на примере положения признаков, соответствующих обрешетке кровли (вверху) и балки (внизу), при этом серым цветом (В) показано положение этих признаков до смещения узлов сетки репроекции, а черным цветом (Г) – их положение после смещения узлов. Стрелками обозначено направление смещения признаков.
За счет применения при репроекции весов признаков по заранее заданным направлениям алгоритм обеспечивает смещение узлов сетки репроекции в таком направлении и на такое расстояние, чтобы артефакты репроекции на границах признаков (в частности, на границах разноудаленных объектов в 3D-сцене) были минимальными. Например, смещение вдоль контрастной границы в текстуре типа «зебра» практически не вызывает появления артефактов, поэтому весовой коэффициент такого признака в этом направлении будет близок к нулю, что позволит сместить узел сетки репроекции в преимущественно другом направлении, в частности, чтобы избежать появления артефактов на границе с другой текстурой (с другим характерным направлением) или с градиентной областью изображения. Это позволяет сохранять целостность восприятия 3D-сцены наблюдателем, обеспечивая при этом требуемую частоту кадров.
Таким образом, данное изобретение позволяет выполнять репроекцию с достаточной скоростью, чтобы обеспечивать поддержание частоты вывода кадров в системе VR/AR, например, не менее 90 fps, и в то же время с достаточным качеством формирования промежуточных кадров, чтобы не разрушать эффект присутствия и не вызывать дискомфорта у большинства пользователей.
Следует отметить, что в некоторых вариантах реализации изобретения размер кадра после рендеринга может быть несколько бóльшим размера фактически демонстрируемого пользователю кадра. Это может быть связано с желательностью некоторого «запаса» размера изображения для корректного выполнения дисторсии, необходимой для различных головных дисплеев, оптические характеристики которых могут различаться. В некоторых вариантах реализации изобретения этот «запас» может быть использован при репроекции согласно данному изобретению. Тем не менее, такой «запас» не может быть значительным, поскольку он приводит к непроизводительной загрузке вычислительных ресурсов, усугубляя их дефицит, преодоление которого является задачей данного изобретения.
Кроме того, следует отметить, что в приведенном выше описании отражены лишь те действия, которые наиболее существенны для достижения цели изобретения. Специалисту понятно, что для функционирования системы VR/AR следует выполнить и другие необходимые действия, например, подключение оборудования, его инициализацию, запуск соответствующего программного обеспечения, передачу и прием команд и подтверждений, обмен служебными данными, синхронизацию и т.п., описание которых опущено для краткости изложения.
Также следует отметить, что описанный выше способ может быть реализован с использованием программного и аппаратного обеспечения. Оборудование и алгоритмы для обеспечения трекинга наблюдателя описаны в более ранних заявках PCT/IB2017/058068, PCT/RU2014/001019 этого же заявителя. Алгоритмы репроекции согласно данному изобретению могут выполняться программным, аппаратным или комбинированным программно-аппаратным образом. В частности, в качестве оборудования для выполнения описанного выше способа могут применяться вычислительные средства общего назначения и/или специализированные, включая центральные процессорные устройства (CPU), сигнальные процессоры (DSP), программируемые логические микросхемы (FPGA), специализированные микросхемы (ASICs) и т.п.
Обработка данных в описанном выше способе может быть сосредоточена в одном вычислительном средстве или она может выполняться распределенным образом в нескольких вычислительных средствах. Например, поток рендеринга на фиг. 6–8 может выполняться в одном вычислительном средстве, а поток репроекции может выполняться в другом вычислительном средстве. Специалисту в данной области техники должно быть понятно, что этот пример не является исчерпывающим и что распределение вычислительной нагрузки по устройствам аппаратного обеспечения может быть реализовано различным образом без отклонения от существа данного изобретения.
Устройства, способы и их части, упомянутые в описании и чертежах, относятся к одному или нескольким определенным вариантам реализации изобретения, если они упоминаются со ссылкой на числовое позиционное обозначение, или ко всем вариантам реализации изобретения, в которых возможно их применение, если они упоминаются без ссылки на числовое позиционное обозначение.
Устройства и их части, упомянутые в описании, чертежах и формуле изобретения, представляют собой программно-аппаратные средства, при этом аппаратные части одних устройств могут отличаться, частично совпадать или полностью совпадать с аппаратными частями других устройств, если иное не указано в явном виде. Аппаратные части устройств могут располагаться в различных частях других устройств, если иное не указано в явном виде. Программные части (модули) могут быть реализованы в виде программного кода, содержащегося в запоминающем устройстве.
Последовательность действий в описании способа носит иллюстративный характер и в различных вариантах реализации изобретения эта последовательность может отличаться от описанной при условии сохранения выполняемой функции и достигаемого результата.
Признаки данного изобретения могут сочетаться в различных вариантах реализации изобретения, если они не противоречат друг другу. Описанные выше варианты реализации изобретения приведены исключительно с иллюстративной целью и не предназначены для ограничения объема настоящего изобретения, определяемого формулой изобретения. Все разумные модификации, модернизации и эквивалентные замены в составе, конструкции и принципе действия настоящего изобретения, выполненные в пределах его сущности, входят в объем данного изобретения.
Следует также отметить, что приведенное выше описание примера реализации изобретения относится к применению способа в системах виртуальной или дополненной реальности развлекательной направленности, прежде всего в компьютерных играх. Вместе с тем, этот способ в полной мере применим в любой другой области для решения задач, связанных с адаптивным формированием промежуточных кадров на основе анализа изображения с выявлением границ разноудаленных объектов.
В частности, описанный выше способ может быть с успехом применен для формирования изображения в системах 3D-рендеринга учебного, научного или производственного назначения (например, в тренажерах для астронавтов, пилотов воздушных судов, операторов беспилотных транспортных средств, водителей автотранспортных средств, судоводителей, машинистов подъемных кранов, экскаваторов, проходческих щитов, добывающих комбайнов и т.д.), ныне существующих или тех, что будут разработаны в будущем.
Список непатентных источников
1. Артем Клиновицкий. Автооптимизация виртуальной реальности или в чем разница между репроекцией, timewarp и spacewarp. Habr: Pixonic, 24.08.2017 https://habr.com/company/pixonic/blog/336140/
2. Timewarp. XinReality, Virtual Reality and Augmented Reality Wiki https://xinreality.com/wiki/Timewarp/
3. Michael Antonov. Asynchronous Timewarp Examined. Oculus developer blog, 02.03.2015 https://developer.oculus.com/blog/asynchronous-timewarp-examined/
4. Asynchronous Spacewarp. XinReality, Virtual Reality and Augmented Reality Wiki https://xinreality.com/wiki/Asynchronous_Spacewarp/
5. Dean Beeler, Ed Hutchins, Paul Pedriana. Asynchronous Spacewarp. Oculus developer blog, 10.11.2016 https://developer.oculus.com/blog/asynchronous-spacewarp/
6. Mipmap. Wikipedia, the free encyclopedia https://en.wikipedia.org/wiki/Mipmap/
th
7. Brian A. Barsky, Michael J. Tobias, Daniel R. Horn, Derrick P. Chu. Investigating occlusion and discretization problems in image space blurring techniques. Proceedings of Conference: Vision, Video, and Graphics, VVG 2003, University of Bath, UK, July 10–11, 2003
8. Haar-like feature. Wikipedia, the free encyclopedia https://en.wikipedia.org/wiki/Haar-like_feature/