RU2813485C1 - Method of creating full-length animated avatar of person from one image of person, computing device and machine-readable medium for implementation thereof - Google Patents
Method of creating full-length animated avatar of person from one image of person, computing device and machine-readable medium for implementation thereof Download PDFInfo
- Publication number
- RU2813485C1 RU2813485C1 RU2023107624A RU2023107624A RU2813485C1 RU 2813485 C1 RU2813485 C1 RU 2813485C1 RU 2023107624 A RU2023107624 A RU 2023107624A RU 2023107624 A RU2023107624 A RU 2023107624A RU 2813485 C1 RU2813485 C1 RU 2813485C1
- Authority
- RU
- Russia
- Prior art keywords
- texture
- neural
- image
- rgb
- trained
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 108
- 230000001537 neural effect Effects 0.000 claims abstract description 164
- 238000009792 diffusion process Methods 0.000 claims abstract description 60
- 238000005070 sampling Methods 0.000 claims abstract description 12
- 238000012549 training Methods 0.000 claims description 62
- 230000006870 function Effects 0.000 claims description 33
- 239000013598 vector Substances 0.000 claims description 24
- 238000009877 rendering Methods 0.000 claims description 19
- 230000011218 segmentation Effects 0.000 claims description 16
- LJROKJGQSPMTKB-UHFFFAOYSA-N 4-[(4-hydroxyphenyl)-pyridin-2-ylmethyl]phenol Chemical compound C1=CC(O)=CC=C1C(C=1N=CC=CC=1)C1=CC=C(O)C=C1 LJROKJGQSPMTKB-UHFFFAOYSA-N 0.000 claims description 7
- 238000012935 Averaging Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 7
- 238000009738 saturating Methods 0.000 claims description 6
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims description 5
- 239000006185 dispersion Substances 0.000 claims description 3
- 230000004927 fusion Effects 0.000 claims description 3
- 230000001902 propagating effect Effects 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 7
- 238000012545 processing Methods 0.000 abstract description 6
- 238000013473 artificial intelligence Methods 0.000 abstract description 3
- 230000015572 biosynthetic process Effects 0.000 abstract description 3
- 238000010422 painting Methods 0.000 abstract description 2
- 238000003786 synthesis reaction Methods 0.000 abstract description 2
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 238000011161 development Methods 0.000 description 22
- 230000018109 developmental process Effects 0.000 description 22
- 238000013459 approach Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 4
- 239000003086 colorant Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 241000894007 species Species 0.000 description 3
- 230000006837 decompression Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000037237 body shape Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001143 conditioned effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000001802 infusion Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000004984 smart glass Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000009987 spinning Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Abstract
Description
Область техники, к которой относится изобретениеField of technology to which the invention relates
[0001] Настоящее изобретение относится, в общем, к области синтеза и обработки изображений на основе искусственного интеллекта (ИИ) и, в частности, к реализуемому компьютером способу создания анимируемого аватара человека в полный рост из одного изображения этого человека, а также к вычислительному устройству и машиночитаемому носителю для реализации этого способа.[0001] The present invention relates generally to the field of artificial intelligence (AI)-based image synthesis and processing, and in particular to a computer-implemented method for creating a life-size animated avatar of a person from a single image of that person, and to a computing device and a machine-readable medium for implementing this method.
Уровень техникиState of the art
[0002] Одним из драйверов современного роста интереса к фотореалистичным аватарам в полный рост является использование аватаров в полный рост в приложениях виртуальной и дополненной реальности. Помимо реалистичности и точности аватаров, огромное значение имеет простота получения новых персонализированных аватаров. Для этого в ряде работ предлагаются методы восстановления текстурированной 3D модели человека из одного изображения, однако такие модели требуют дополнительных усилий на создание скелета (риггинга) для анимации. Использование дополнительных методов риггинга значительно усложняет процесс получения аватара и часто ограничивает позы, которые можно обрабатывать. В то же время в некоторых из последних методов используются текстурированные параметрические модели человеческого тела с применением дорисовки в текстурном пространстве. Однако существующим текстурным методам не хватает фотореализма и качества рендеринга.[0002] One of the drivers of the current increase in interest in photorealistic full-body avatars is the use of full-body avatars in virtual and augmented reality applications. In addition to the realism and accuracy of avatars, the ease of obtaining new personalized avatars is of great importance. To do this, a number of works propose methods for restoring a textured 3D human model from a single image, however, such models require additional effort to create a skeleton (rigging) for animation. Using additional rigging techniques greatly complicates the process of obtaining an avatar and often limits the poses that can be processed. At the same time, some of the latest methods use textured parametric models of the human body using inpainting in texture space. However, existing texture methods lack photorealism and rendering quality.
[0003] Альтернативой прямому использованию классических RGB текстур является использование отложенного нейронного рендеринга. Такие подходы позволяют создавать аватары человека, определяемые параметрической моделью. Получаемые аватары более фотореалистичны, и их легче анимировать. Однако существующие методы требуют видеопоследовательность для создания аватара. Система StylePeople, также основанная на отложенном нейронном рендеринге и параметрической модели, позволяет создавать аватары из отдельных изображений, однако страдает от низкого качества рендеринга ненаблюдаемых на изображении частей тела.[0003] An alternative to using classic RGB textures directly is to use deferred neural rendering. Such approaches allow the creation of human avatars defined by a parametric model. The resulting avatars are more photorealistic and easier to animate. However, existing methods require a video sequence to create an avatar. The StylePeople system, also based on deferred neural rendering and a parametric model, allows you to create avatars from individual images, but suffers from poor rendering quality of body parts that are not visible in the image.
[0004] В основе многих систем создания аватаров лежат параметрические модели человеческого тела, наиболее популярными из которых являются модель тела SMPL, а также модель SMPL-X, которая дополняет SMPL выражениями лица и артикуляцией рук. Такие модели представляют человеческое тело без одежды и волос. Для добавления одежды и выполнения фотореалистичного рендеринга можно использовать методы, основанные на отложенном нейронном рендеринге (DNR) или полях нейронного излучения (NeRF). В DNR используется многоканальная обучаемая нейронная текстура и сверточная сеть рендерера для реалистичного рендеринга полученных аватаров. Это упрощает анимацию полученного аватара. В NeRF для рендеринга используется выборка вдоль луча в неявном пространстве, что позволяет извлекать точную и согласованную геометрию.[0004] Many avatar creation systems are based on parametric models of the human body, the most popular of which are the SMPL body model, as well as the SMPL-X model, which augments the SMPL with facial expressions and hand articulation. Such models represent the human body without clothes and hair. Methods based on deferred neural rendering (DNR) or neural emission fields (NeRF) can be used to add clothing and perform photorealistic rendering. DNR uses a multi-channel trained neural texture and a convolutional network renderer to realistically render the resulting avatars. This makes it easier to animate the resulting avatar. NeRF renders by sampling along a ray in implicit space, allowing it to extract accurate and consistent geometry.
[0005] В методах создания аватара из одного снимка аватары тела человека реконструируются из одного изображения. В ранних работах это достигалось дорисовкой частичных RGB текстур. Такие методы не позволяли реалистично моделировать аватары с одеждой. В более поздних работах по моделированию тела по одному снимку за основу берутся неявная геометрия и модели яркости, которые прогнозируют непрозрачность и цвет с помощью многослойного персептрона, обуславливаемого векторами признаков, извлекаемых из входного изображения. Хотя такое направление работы часто позволяет восстановить сложные геометрические детали, восстановленная текстура ненаблюдаемых на изображении частей обычно имеет ограниченную реалистичность.[0005] In single-shot avatar generation methods, human body avatars are reconstructed from a single image. In early works this was achieved by adding partial RGB textures. Such methods did not allow realistic modeling of avatars with clothing. More recent work on single-shot body modeling uses implicit geometry and luminance models to predict opacity and color using a multilayer perceptron driven by feature vectors extracted from the input image. Although this line of work can often recover complex geometric details, the reconstructed texture of parts not visible in the image usually has limited realism.
[0006] В системе ARCH для создания подходящих для анимации аватаров используется каноническое пространство с построенным скелетом. ARCH++ улучшает качество получаемых аватаров путем пересмотра основных этапов ARCH. В них также решается проблема ненаблюдаемых на изображении поверхностей путем синтеза вида человека сзади по его виду спереди. PHORHUM улучшает моделирование геометрии путем добавления суждения об освещении сцены и альбедо поверхности. В ICON используются локальные признаки для исключения зависимости восстановленной геометрии от глобальной позы. В этом методе сначала оцениваются отдельные модели из каждого вида, а затем эти модели объединяются с помощью SCANimate. Данный метод использует RGB текстуры, применяемые к реконструированной геометрии, что ограничивает фотореализм рендеринга.[0006] The ARCH system uses canonical space with a constructed skeleton to create avatars suitable for animation. ARCH++ improves the quality of resulting avatars by revising the ARCH milestones. They also solve the problem of unobservable surfaces in the image by synthesizing the rear view of a person from the front view. PHORHUM improves geometry modeling by adding judgment about scene illumination and surface albedo. ICON uses local features to decouple the reconstructed geometry from the global pose. In this method, individual models from each species are first estimated, and then these models are combined using SCANimate. This method uses RGB textures applied to the reconstructed geometry, which limits the photorealism of the rendering.
[0007] Альтернативный подход к получению аватаров из одного снимка заключается в использовании моделей генерации аватаров, как предложено в StylePeople. Авторы исключают необходимость реконструировать ненаблюдаемые на изображении части, используя взаимосопряженность в скрытом пространстве GAN. К сожалению, несовершенство лежащей в их основе генеративной модели часто приводит к неправдоподобному виду ненаблюдаемых частей.[0007] An alternative approach to deriving avatars from a single snapshot is to use avatar generation models as proposed in StylePeople. The authors eliminate the need to reconstruct unobservable parts of the image by exploiting the connectivity in the GAN's latent space. Unfortunately, imperfections in the underlying generative model often lead to implausible appearances of unobservable parts.
[0008] Известной альтернативой генеративным моделям являются диффузионные модели. В области моделирования человека диффузионные модели показали высокую эффективность для решения задачи генерации движений человека. В RODIN диффузионная модель используется для создания аватаров головы без построенного скелета в виде полей нейронного излучения, представленных 2D картами признаков. В TEXTure используются текстовое руководство и предобученная диффузионная модель для создания согласованной с видом RGB текстуры заданной геометрии. Однако, насколько известно авторам изобретения, до настоящего времени диффузионные модели не использовались для создания нейронных текстур для трехмерных объектов.[0008] A well-known alternative to generative models are diffusion models. In the field of human modeling, diffusion models have shown high efficiency for solving the problem of generating human movements. In RODIN, a diffusion model is used to create head avatars without a constructed skeleton in the form of neural radiation fields represented by 2D feature maps. TEXTure uses text guidance and a pre-trained diffusion model to generate an RGB view-consistent texture for a given geometry. However, to the best of the inventors' knowledge, diffusion models have not been used to generate neural textures for 3D objects to date.
Сущность изобретенияThe essence of the invention
[0009] Настоящее изобретение позволяет преодолеть или, по меньшей мере, частично решить одну или более из обсуждавшихся выше проблем предшествующего уровня. Таким образом, предложен новый способ создания фотореалистичных анимируемых аватаров человека из одной фотографии. Чтобы сделать эти аватары пригодными для анимации, используется подход на основе нейронной текстуры вместе с параметрической моделью тела SMPL-X. Предложена новая архитектура для генерации нейронных текстур, в которой текстура содержит как RGB часть, явно выделенную выборкой пикселей из входного изображения, так и дополнительные нейронные каналы, получаемые путем отображения изображения в скрытое векторное пространство и декодирования результата в текстурное пространство. Обучение генерации текстуры с помощью сети рендеринга осуществляется сквозным методом. Для восстановления нейронной текстуры для ненаблюдаемых на изображении частей человеческого тела была разработана диффузионная модель. Такой подход позволяет получать фотореалистичные аватары человека из одиночных изображений. При наличии нескольких изображений нейронные текстуры, соответствующие разным изображениям, можно объединить, а все еще отсутствующие части можно восстановить путем диффузионной дорисовки. Отличие настоящего изобретения от известного уровня техники, включая модель StylePeople, основанную на генеративно-состязательной структуре, для дорисовки текстур человеческого тела, заключается, по меньшей мере, в применении диффузии для дорисовки. Было обнаружено, что использование диффузии уменьшает проблемы с коллапсом обучения и позволяет получать правдоподобные выборки из сложных мультимодальных распределений.[0009] The present invention overcomes or at least partially solves one or more of the prior art problems discussed above. Thus, a new method has been proposed for creating photorealistic animated human avatars from a single photograph. To make these avatars suitable for animation, a neural texture-based approach is used along with the SMPL-X parametric body model. A new architecture is proposed for generating neural textures, in which the texture contains both an RGB part, explicitly extracted by sampling pixels from the input image, and additional neural channels obtained by mapping the image into a latent vector space and decoding the result into texture space. Training texture generation using a rendering network is carried out using an end-to-end method. A diffusion model was developed to recover neural texture for unobservable parts of the human body in the image. This approach makes it possible to obtain photorealistic human avatars from single images. Given multiple images, neural textures corresponding to different images can be combined, and still missing parts can be restored through diffusion inpainting. The difference between the present invention and the prior art, including the StylePeople model, based on a generative adversarial structure, for finishing textures of the human body, is, at least, in the use of diffusion for finishing. The use of diffusion has been found to reduce problems with learning collapse and to produce plausible samples from complex multimodal distributions.
[0010] Таким образом, вклад настоящего изобретения в предшествующий уровень техники включает в себя:[0010] Thus, the contributions of the present invention to the prior art include:
• новый подход к моделированию аватаров людей на основе нейронных текстур, объединяющих компоненты RGB и скрытые компоненты; и• a new approach to modeling human avatars based on neural textures combining RGB components and hidden components; And
• диффузионную модель, адаптированную к нейронным текстурам, которая, как было продемонстрировано и подтверждено экспериментально, способна такие текстуры дорисовывать.• a diffusion model adapted to neural textures, which, as has been demonstrated and confirmed experimentally, is capable of completing such textures.
[0011] Способность предлагаемого способа создавать реалистичные анимируемые аватары из одного изображения или фотографии была продемонстрирована и экспериментально подтверждена. Экспериментальные данные приводятся в конце настоящего описания. Раскрытый способ позволяет получать фотореалистичный анимируемый аватар человека из одного изображения. Например, для иллюстрации, получив одно изображение или фотографию человека спереди, предложенный способ позволит фотореалистично и достоверно восстановить вид человека сзади. Эффективность и точность предложенного метода была продемонстрирована и экспериментально подтверждена на реальных изображениях, взятых из общедоступного набора данных Snapshot People, и на изображениях людей в естественных позах.[0011] The ability of the proposed method to create realistic animated avatars from a single image or photograph has been demonstrated and experimentally verified. Experimental data are given at the end of this description. The disclosed method makes it possible to obtain a photorealistic animated avatar of a person from a single image. For example, for illustration, having received one image or photograph of a person from the front, the proposed method will allow photorealistic and reliable reconstruction of the view of a person from behind. The effectiveness and accuracy of the proposed method was demonstrated and experimentally validated on real images taken from the publicly available Snapshot People dataset and on images of people in natural poses.
[0012] Исходя из вышеизложенного, в первом аспекте настоящего изобретения предложен реализуемый компьютером способ создания анимируемого аватара человека в полный рост из одного изображения человека. Способ включает себя этапы, на которых: получают изображение Irgb человека и расчетную параметрическую модель тела, определяемую значениями параметров позы р и параметров формы s тела человека на изображении, и значениями параметров камеры С, использованных при захвате изображения; на основе параметрической модели тела определяют функцию текстурирования FUV, задающую отображение между каждым наблюдаемым на изображении пикселем тела человека и соответствующими координатами текстуры в текстурном пространстве, причем для всех ненаблюдаемых на изображении пикселей тела человека функция текстурирования дополнительно задает соответствующие координаты текстуры в текстурном пространстве; осуществляют выборку RGB текстуры Trgb тела человека на основе отображения и получают карту Bsmp выбранных пикселей, причем RGB текстура Trgb содержит для каждого наблюдаемого на изображении пикселя тела человека соответствующее значение пикселя, а также содержит одну или несколько ненаблюдаемых текстурных областей, соответствующих координатам текстуры ненаблюдаемых на изображении пикселей тела человека; создают текстуру Tgen тела человека, наблюдаемого на изображении, путем пропускания изображения через обученную сеть кодировщика Е - генератора G; получают нейронную текстуру Т путем конкатенации RGB текстуры Trgb, карты Bsmp выбранных пикселей и созданной текстуры Tgen; осуществляют дорисовку ненаблюдаемых текстурных областей нейронной текстуры Т с помощью обученной диффузионной модели дорисовки; преобразуют растеризованное изображение R аватара человека в полный рост в новой позе с помощью обученного нейронного рендерера θ в рендерное изображение Irend аватара человека в полный рост в новой позе, причем растеризованное изображение R получают из дорисованной нейронной текстуры Tinpainted и отображения, заданного функцией текстурирования FUV, в котором параметрическая модель тела модифицирована на основе параметров целевой позы ptarget и/или параметры камеры модифицированы в параметры целевой камеры Ctarget, причем параметры целевой позы ptarget и/или параметры целевой камеры Ctarget соответствуют упомянутой новой позе аватара человека в полный рост.[0012] Based on the foregoing, a first aspect of the present invention provides a computer-implemented method for creating a full-length animated human avatar from a single image of a person. The method includes the steps of: obtaining an image I rgb of a person and a calculated parametric model of the body, determined by the values of the pose parameters p and the shape parameters s of the human body in the image, and the values of the camera parameters C used in capturing the image; based on the parametric model of the body, a texturing function F UV is determined, which specifies the mapping between each pixel of the human body observed in the image and the corresponding texture coordinates in texture space, and for all pixels of the human body unobserved in the image, the texturing function additionally sets the corresponding texture coordinates in texture space; sample the RGB texture T rgb of the human body based on the display and obtain a map B smp of the selected pixels, wherein the RGB texture T rgb contains for each pixel of the human body observed in the image the corresponding pixel value, and also contains one or more unobserved texture areas corresponding to the texture coordinates unobservable pixels of the human body in the image; create a texture T gen of the human body observed in the image by passing the image through a trained network of encoder E - generator G; obtain a neural texture T by concatenating the RGB texture T rgb , the map B smp of the selected pixels and the generated texture T gen ; carry out additional drawing of unobserved texture areas of the neural texture T using a trained diffusion model of additional drawing; convert the rasterized image R of a full-length human avatar in a new pose using a trained neural renderer θ into a rendered image I rend of a full-length human avatar in a new pose, wherein the rasterized image R is obtained from the completed neural texture T inpainted and the display specified by the texturing function F UV , in which the parametric body model is modified based on target pose parameters p target and/or camera parameters are modified into target camera parameters C target , wherein target pose parameters p target and/or target camera parameters C target correspond to said new human avatar pose in full height.
[0013] В качестве развития первого аспекта изобретения в способе дополнительно осуществляют дорисовку в выбранной RGB текстуре промежутков, не превышающих заданный пороговый размер, путем усреднения соседних пикселей и получения карты Bfill дорисованных пикселей, причем карту Bfill дорисованных пикселей дополнительно используют при конкатенации на этапе получения нейронной текстуры Т.[0013] As a development of the first aspect of the invention, the method additionally performs additional drawing in the selected RGB texture of gaps not exceeding a given threshold size by averaging neighboring pixels and obtaining a B fill map of additional drawn pixels, and the B fill map of additional drawn pixels is additionally used during concatenation at the stage obtaining the neural texture of T.
[0014] В дополнительном развитии первого аспекта изобретения в способе этап дорисовки S125 ненаблюдаемых текстурных областей нейронной текстуры Т выполняют путем добавления гауссового шума к нейронной текстуре Т и последующего итеративного выполнения процедуры удаления шума на нейронной текстуре Т с гауссовым шумом Tnoise раз с помощью обученной диффузионной модели дорисовки до тех пор, пока вместо гауссового шума не появится дорисованная нейронная текстура Tinpainted.[0014] In a further development of the first aspect of the invention, the method step of drawing S125 of unobserved texture regions of the neural texture T is performed by adding Gaussian noise to the neural texture T and then iteratively performing a noise removal procedure on the neural texture T with the Gaussian noise T noise times using a trained diffusion models until the completed neural texture T inpainted appears instead of Gaussian noise.
[0015] В дополнительном развитии первого аспекта изобретения параметрическая модель тела основана на сетке М с фиксированной топологией, управляемой значениями параметров позы р и параметров формы s.[0015] In a further development of the first aspect of the invention, the parametric body model is based on a mesh M with a fixed topology, controlled by the values of the pose parameters p and the shape parameters s.
[0016] В дополнительном развитии первого аспекта изобретения кодировщик Е обученной сети кодировщика Е - генератора G основан на дискриминаторе StyleGAN2 и обучен сжимать изображение Irgb в вектор признаков , и генератор G обученной сети кодировщика Е - генератора G основан на генераторе StyleGAN2 и обучен создавать текстуру Tgen из вектора признаков .[0016] In a further development of the first aspect of the invention, the encoder E of the trained encoder network E - generator G is based on the StyleGAN2 discriminator and is trained to compress the I rgb image into a feature vector , and the generator G of the trained encoder network E - generator G is based on the StyleGAN2 generator and is trained to create texture T gen from a feature vector .
[0017] В дополнительном развитии первого аспекта изобретения отображение создают путем UV-развертки, выполняемой с передним разрезом представления тела человека на изображении.[0017] In a further development of the first aspect of the invention, the display is created by UV unwrapping performed on a front view of the human body in the image.
[0018] В дополнительном развитии первого аспекта изобретения в способе дополнительно находят закрытую область тела человека на изображении Irgb и исключают эту закрытую область при осуществлении выборки RGB текстуры Trgb.[0018] In a further development of the first aspect of the invention, the method further finds an occluded region of the human body in the image I rgb and excludes this occluded region when sampling the RGB texture T rgb .
[0019] В дополнительном развитии первого аспекта изобретения обученная диффузионная модель дорисовки основана на вероятностной модели рассеяния шума (DDPM), имеющей удаляющую шум архитектуру U-Net, обученную дорисовке ненаблюдаемых текстурных областей нейронной текстуры Т для получения дорисованной нейронной текстуры Tinpainted, в которой удаляющая шум архитектура U-Net имеет остаточные блоки BigGAN для повышающей дискретизации и понижающей дискретизации и слои внимания на ряде уровней иерархии признаков удаляющей шум архитектуры U-Net.[0019] In a further development of the first aspect of the invention, the trained diffusion inpainting model is based on a noise dispersion probabilistic model (DDPM) having a noise-removing U-Net architecture trained to inpaint unobserved texture regions of a neural texture T to produce an inpainted neural texture T in which the denoising The noise-removing U-Net architecture has BigGAN residual blocks for upsampling and downsampling and attention layers at a number of levels in the feature hierarchy of the denoising U-Net architecture.
[0020] В дополнительном развитии первого аспекта изобретения обученная диффузионная модель дорисовки дополнительно содержит основанный на векторной квантованной генеративно-состязательной сети (VQGAN) автокодировщик, включающий в себя кодировщик EVQ, обученный кодировать нейронную текстуру Т в скрытое представление нейронной текстуры Т меньшей размерности, вводимое в удаляющую шум архитектуру U-Net, и декодировщик DVQ, обученный декодировать вывод удаляющей шум архитектуры U-Net в дорисованную нейронную текстуру Tinpainted.[0020] In a further development of the first aspect of the invention, the trained diffusion inpainting model further comprises a vector quantized generative adversarial network (VQGAN)-based autoencoder including an E VQ encoder trained to encode the neural texture T into a lower dimensional latent representation of the neural texture T input into a U-Net denoising architecture, and a D VQ decoder trained to decode the output of the U-Net denoising architecture into a T inpainted neural texture.
[0021] В дополнительном развитии первого аспекта изобретения обучение сети кодировщика Е - генератора G, диффузионной модели дорисовки и нейронного рендерера θ осуществляют на двух стадиях обучения:[0021] In a further development of the first aspect of the invention, the training of the encoder network E - generator G, the diffusion model of completion and the neural renderer θ is carried out in two stages of training:
на первой стадии обучения:at the first stage of training:
упомянутую сеть кодировщика Е - генератора G и упомянутый нейронный рендерер θ, основанный на рендеринговой архитектуре U-Net, имеющей блоки ResNet, которые образуют конвейер, обучают сквозным методом на основе наборов многоракурсных изображений, используемых в качестве обучающих данных,said encoder network E - generator G and said neural renderer θ, based on a U-Net rendering architecture having ResNet blocks that form a pipeline, are trained end-to-end based on sets of multi-view images used as training data,
на каждом этапе обучения из множества этапов обучения во время обучения на первой стадии обучения:at each stage of learning from the many stages of learning during learning at the first stage of learning:
выбирают два различных изображения из одного и того же набора из наборов многоракурсных изображений: первое изображение, показывающее человека в позе, имеющей параметры входной позы pinput, используемое в качестве входного изображения, и второе изображение, показывающее человека в позе, имеющей другие параметры целевой позы ptarget, используемое в качестве эталонного изображения (IG),select two different images from the same set of multi-view image sets: a first image showing a person in a pose having input pose parameters p input used as the input image, and a second image showing a person in a pose having different target pose parameters p target , used as the reference image (I G ),
пропускают первое изображение и параметры целевой позы ptarget через конвейер, обучаемый рендерингу рендерного изображения Irend, показывающего аватар человека в позе, имеющей параметры целевой позы ptarget.passing the first image and target pose parameters p target through a pipeline trained to render a render image I rend showing a person's avatar in a pose having target pose parameters p target .
вычисляют на основе, по меньшей мере, рендерного изображения Irend и эталонного изображения IGT значение потерь в соответствии с одной или несколькими из следующих функций потерь: потери L2 различия между рендерным изображением Irend и соответствующим эталонным изображением IGT, потери выученного перцептивного сходства между патчами изображения, LPIPS, между рендерным изображением Irend и соответствующим эталонным изображением IGT, ненасыщающей состязательной потери на основе дискриминатора StyleGAN2 с регуляризацией R1 и потери Dice между спрогнозированной маской сегментации spred и эталонной маской сегментации sGT, calculating, based on at least the render image I rend and the reference image I GT , a loss value in accordance with one or more of the following loss functions: loss L 2 differences between the render image I rend and the corresponding reference image I GT , loss of learned perceptual similarity between image patches, LPIPS, between the render image I rend and the corresponding reference image I GT , a non-saturating adversarial loss based on the StyleGAN2 discriminator with R 1 regularization, and a Dice loss between the predicted segmentation mask s pred and the reference segmentation mask s GT,
вычисляют градиенты на основе значения потерь, иcalculate gradients based on the loss value, and
обновляют параметры сети кодировщика Е - генератора G и нейронного рендерера θ на основе этих градиентов; иupdating the parameters of the encoder network E - generator G and neural renderer θ based on these gradients; And
после того, как значение потерь по одной или нескольким функциям потерь минимизируется, фиксируют выученные параметры сети кодировщика Е - генератора G и нейронного рендерера в и переходят ко второй стадии обучения;after the value of losses according to one or more loss functions is minimized, the learned parameters of the network of encoder E - generator G and neural renderer B are fixed and proceed to the second stage of training;
на второй стадии обучения:at the second stage of training:
диффузионную модель дорисовки, содержащую, по меньшей мере, удаляющую шум архитектуру U-Net, добавляют в конвейер и обучают с использованием обуславливаемого обучения диффузии осуществлять дорисовку ненаблюдаемых текстурных областей нейронной текстуры T, при этомa diffusion inpainting model comprising at least a denoising U-Net architecture is added to the pipeline and trained using conditional diffusion learning to inpaint unobserved texture regions of the neural texture T, wherein
на каждом этапе обучения из множества этапов обучения во время обучения на второй стадии обучения:at each stage of training from the many stages of training during training in the second stage of training:
получают объединенную нейронную текстуру, используемую в качестве эталонной нейронной текстуры, причем объединенную нейронную текстуру получают путем объединения неполных нейронных текстур, полученных из двух или более изображений, охватывающих различные углы обзора и выбранных из одного и того же набора многоракурсных изображений из наборов многоракурсных изображений, используемых в качестве обучающих данных,obtain a pooled neural texture used as a reference neural texture, wherein the pooled neural texture is obtained by combining partial neural textures obtained from two or more images covering different viewing angles and selected from the same set of multi-view images from the sets of multi-view images used as training data,
добавляют гауссов шум к объединенной нейронной текстуре в соответствии со случайным шагом t, где t=[0, Tnoise],add Gaussian noise to the combined neural texture according to a random step t, where t=[0, T noise ],
осуществляют конкатенацию к объединенной нейронной текстуре с добавленным гауссовым шумом неполной нейронной текстуры из неполных нейронных текстур, используемых для получения объединенной нейронной текстуры,concatenate to the combined neural texture with added Gaussian noise the incomplete neural texture from the incomplete neural textures used to obtain the combined neural texture,
пропускают объединенную нейронную текстуру с добавленным гауссовым шумом и с конкатенированной неполной нейронной текстурой через диффузионную модель дорисовки, прогнозирующую для шага t шум, который следует удалить для получения дорисованной объединенной нейронной текстуры,pass the combined neural texture with added Gaussian noise and the concatenated incomplete neural texture through an inpainting diffusion model, which predicts at step t the noise that should be removed to obtain the inpainted combined neural texture,
вычисляют, по меньшей мере, на основе спрогнозированного шума и добавленного гауссового шума значение потерь в соответствии с функцией потери L1,calculating, at least based on the predicted noise and the added Gaussian noise, a loss value in accordance with the loss function L 1 ,
вычисляют градиенты на основе значения потерь, иcalculate gradients based on the loss value, and
обновляют параметры удаляющей шум архитектуры U-Net, используемой для диффузионной дорисовки на основе градиентов; иupdate the parameters of the U-Net denoising architecture used for gradient-based diffusion inpainting; And
после того, как значение потерь минимизируется, осуществляют точную настройку предобученного конвейера путем выполнения множества дополнительных этапов обучения.Once the loss value is minimized, the pretrained pipeline is fine-tuned by performing many additional training steps.
[0022] В дополнительном развитии первого аспекта изобретения точная настройка включает в себя фиксацию весов и смещений нейронного рендерера θ и распространение градиентов из дифференцируемого нейронного рендерера θ в каналы RGB текстуры RGB Trgb причем упомянутые градиенты вычисляют на основе значения потерь, получаемого на первой стадии обучения. Например, нейронная текстура может содержать, как будет подробно описано ниже, 20 или 21 канал. Три из указанных каналов являются каналами RGB, а остальные каналы являются нейронными. В описанном процессе распространения каналы RGB представляются как один или несколько модифицируемых тензоров значений, цвета RGB корректируются путем изменения значений в указанных тензорах с использованием градиентов на основе функции потерь.[0022] In a further development of the first aspect of the invention, fine tuning includes fixing the weights and biases of the neural renderer θ and propagating gradients from the differentiable neural renderer θ to the RGB channels of the RGB T rgb texture, said gradients being calculated based on the loss value obtained in the first stage of training . For example, a neural texture may contain, as will be detailed below, 20 or 21 channels. Three of the specified channels are RGB channels, and the remaining channels are neural. In the described propagation process, RGB channels are represented as one or more modifiable value tensors, RGB colors are adjusted by changing the values in said tensors using gradients based on a loss function.
[0023] В дополнительном развитии первого аспекта изобретения, если в обучаемую диффузионную модель дорисовки дополнительно включен (необязательный) основанный на VQGAN автокодировщик, то основанный на VQGAN автокодировщик дополнительно обучают на первой стадии обучения кодировать нейронные текстуры Т в скрытые представления нейронных текстур Т меньшей размерности и декодировать скрытые представления нейронных текстур Т меньшей размерности путем минимизации значения потерь, вычисляемого по одной или нескольким функциям потерь, используемым на первой стадии обучения, а затем обучение на второй стадии обучения выполняют в скрытом пространстве предобученного основанного на VQGAN автокодировщика.[0023] In a further development of the first aspect of the invention, if an (optional) VQGAN-based autoencoder is further included in the trained inpainting diffusion model, then the VQGAN-based autoencoder is further trained in the first training stage to encode the neural textures T into lower-dimensional latent representations of the neural textures T and decode lower-dimensional latent representations of neural textures T by minimizing a loss value calculated from one or more loss functions used in the first stage of training, and then training in the second stage of training is performed in the latent space of the pretrained VQGAN-based autoencoder.
[0024] В дополнительном развитии первого аспекта изобретения на первой стадии обучения потерю L2 различия и потерю LPIPS вычисляют для всего изображения и дополнительно вычисляют с заданным весом для области изображения, содержащей лицо.[0024] In a further development of the first aspect of the invention, in the first training stage, the L 2 difference loss and the LPIPS loss are calculated for the entire image and are further calculated with a given weight for the region of the image containing the face.
[0025] В дополнительном развитии первого аспекта изобретения объединение основано на взвешенном усреднении, пирамидальном смешивании или смешивании Пуассона нейронных текстур.[0025] In a further development of the first aspect of the invention, the fusion is based on weighted averaging, pyramidal mixing, or Poisson mixing of neural textures.
[0026] В дополнительном развитии первого аспекта изобретения на второй стадии обучения используют прореживание с заданной вероятностью в остаточных блоках удаляющей шум архитектуры U-Net.[0026] In a further development of the first aspect of the invention, the second stage of training uses probability decimation in the residual blocks of the U-Net denoising architecture.
[0027] В дополнительном развитии первого аспекта изобретения наборы многоракурсных изображений содержат изображения людей в различной одежде с различным телосложением, оттенком кожи, разного пола и во множестве различных поз, снятых с разных углов обзора.[0027] In a further development of the first aspect of the invention, sets of multi-angle images contain images of people wearing different clothes, different body types, different skin tones, different genders and in a variety of different poses, taken from different viewing angles.
[0028] В дополнительном развитии первого аспекта изобретения угол обзора определяют как угол между векторами нормалей соответствующей точки сетки М с фиксированной топологией и вектором направления камеры.[0028] In a further development of the first aspect of the invention, the viewing angle is defined as the angle between the normal vectors of the corresponding grid point M with a fixed topology and the camera direction vector.
[0029] Во втором аспекте изобретения предложено вычислительное устройство, содержащее процессор и память, хранящую исполняемые процессором инструкции и параметры, содержащие, по меньшей мере, веса и смещения обученного конвейера сети кодировщика Е - генератора G, диффузионной модели дорисовки, и нейронного рендерера θ, отличающееся тем, что при выполнении процессором исполняемых процессором инструкций процессор побуждает вычислительное устройство выполнять способ создания анимируемого аватара человека в полный рост из одного изображения человека в соответствии с первым аспектом изобретения или любым его развитием.[0029] In a second aspect of the invention, there is provided a computing device comprising a processor and a memory storing processor-executable instructions and parameters containing at least weights and biases of a trained encoder network pipeline E - generator G, a diffusion inflation model, and a neural renderer θ, wherein, when the processor executes processor-executable instructions, the processor causes the computing device to execute a method of creating a life-size animated avatar of a person from a single image of a person in accordance with the first aspect of the invention or any development thereof.
[0030] В дополнительном развитии второго аспекта изобретения вычислительное устройство дополнительно содержит камеру, сконфигурированную для захвата изображения Irgb человека.[0030] In a further development of the second aspect of the invention, the computing device further comprises a camera configured to capture an I rgb image of a person.
[0031] В третьем аспекте изобретения предложен энергонезависимый машиночитаемый носитель, хранящий машиноисполняемые инструкции и параметры, содержащие по меньшей мере веса и смещения обученного конвейера сети кодировщика Е - генератора G, диффузионной модели дорисовки и нейронного рендерера θ, отличающийся тем, что выполнение вычислительным устройством машиноисполняемых инструкций побуждает вычислительное устройство выполнять способ создания анимируемого аватара человека в полный рост из одного изображения человека в соответствии с первым аспектом изобретения или любым его развитием.[0031] In the third aspect of the invention, a non-volatile computer-readable medium is proposed that stores computer-executable instructions and parameters containing at least the weights and biases of a trained encoder network pipeline - generator G, a diffusion model of completion and a neural renderer θ, characterized in that the execution by the computing device of computer-executable The instructions cause the computing device to execute a method of creating a life-size animated human avatar from a single image of a person in accordance with the first aspect of the invention or any development thereof.
Краткое описание чертежейBrief description of drawings
[0032] Представленные выше и другие признаки настоящего изобретения будут подробно описаны в следующем разделе "Подробное описание изобретения" со ссылками на прилагаемые чертежи, на которых:[0032] The above and other features of the present invention will be described in detail in the following section "Detailed Description of the Invention" with reference to the accompanying drawings, in which:
Фиг. 1 - блок-схема реализуемого компьютером способа создания анимируемого аватара человека в полный рост из одного изображения человека в соответствии с первым аспектом настоящего изобретения.Fig. 1 is a flow diagram of a computer-implemented method for creating a full-length animated human avatar from a single image of a person in accordance with the first aspect of the present invention.
Фиг. 2 - неограничивающее схематичное изображение всего конвейера, предложенного для реализуемого компьютером способа создания анимируемого аватара человека в полный рост из одного изображения человека в соответствии с первым аспектом настоящего изобретения.Fig. 2 is a non-limiting schematic diagram of an entire pipeline proposed for a computer-implemented method of creating a full-body animated human avatar from a single image of a person in accordance with the first aspect of the present invention.
Фиг. 3 - неограничивающее схематичное изображение, иллюстрирующее работу и другие детали предлагаемой диффузионной модели дорисовки, содержащей (необязательный) основанный на VQGAN автокодировщик и удаляющую шум архитектуру U-Net, используемые в способе в соответствии с первым аспектом настоящего изобретения; на фигуре показаны детали блока "VQGAN", изображенного на фиг. 1, а также показаны в общем виде стадии обучения и использования удаляющей шум архитектуры U-Net.Fig. 3 is a non-limiting schematic diagram illustrating the operation and other details of a proposed diffusion inpainting model comprising an (optional) VQGAN-based autoencoder and U-Net denoising architecture used in a method in accordance with the first aspect of the present invention; The figure shows details of the "VQGAN" block shown in FIG. 1, and also shows in general the stages of training and use of the U-Net noise-removing architecture.
Фиг. 4 - схематичное изображение неограничивающей реализации архитектуры кодировщика Е из сети кодировщика Е - генератора G, используемой в способе согласно первому аспекту настоящего изобретения для генерации основной части Tgen нейронной текстуры.Fig. 4 is a schematic illustration of a non-limiting implementation of an E encoder architecture from an E encoder-G generator network used in a method according to a first aspect of the present invention for generating a neural texture core portion T gen .
Фиг. 5 - схематичное изображение неограничивающей реализации нейронного рендерера θ, используемого в способе согласно первому аспекту настоящего изобретения для преобразования растеризованного изображения R аватара человека в полный рост в новой позе в рендерное изображение Irend.Fig. 5 is a schematic illustration of a non-limiting implementation of a neural renderer θ used in the method according to the first aspect of the present invention for converting a rasterized full-length human avatar image R in a new pose into a render image I rend .
Фиг. 6 - упрощенное представление этапа объединения нейронных текстур для получения полной нейронной текстуры на основе различных изображений набора многоракурсных изображений, охватывающего различные углы обзора.Fig. 6 is a simplified representation of the neural texture fusion step to obtain a complete neural texture from different images of a multi-view image set covering different viewing angles.
Фиг. 7 - схематичное изображение необязательного этапа обнаружения закрытой области тела человека на изображении Irgb.Fig. 7 is a schematic diagram of an optional step of detecting an occluded region of a person's body in an I rgb image.
Фиг. 8 - иллюстрация анимированных аватаров людей в полный рост в различных позах, созданных способом согласно первому аспекту настоящего изобретения на основе соответствующих одиночных изображений (показанных в левой части фигуры).Fig. 8 is an illustration of animated full-body avatars of people in various poses created by the method according to the first aspect of the present invention based on the corresponding single images (shown on the left side of the figure).
Фиг. 9 - неограничивающее схематичное изображение вычислительного устройства в соответствии со вторым аспектом настоящего изобретения.Fig. 9 is a non-limiting schematic diagram of a computing device in accordance with a second aspect of the present invention.
Подробное описание изобретенияDetailed Description of the Invention
[0033] Диффузионные модели представляют собой вероятностные модели для обучения распределению р(х) путем постепенного удаления шума из нормально распределенной переменной. Такое удаление шума соответствует обучению обратному процессу для фиксированной цепи Маркова длиной Tnoise. В наиболее успешных моделях генерации изображений используется перевзвешенный вариант вариационной нижней границы р(х). Эти модели также можно интерпретировать как удаляющие шум автокодировщики ∈ω(xt,t); t=1,…, Tnoise с общими весами. Такие автокодировщики можно обучить прогнозированию xt-1 с пониженным уровнем шума по сравнению с xt. На данный момент известно, что эти модели удаления шума можно обучать с помощью упрощенной функции потерь:[0033] Diffusion models are probabilistic models for learning the distribution p(x) by gradually removing noise from a normally distributed variable. This noise removal corresponds to learning the inverse process for a fixed Markov chain of length T noise . The most successful image generation models use a reweighted version of the variational lower bound p(x). These models can also be interpreted as noise-removing autoencoders ∈ ω (x t ,t); t=1,…, T noise with common weights. Such autoencoders can be trained to predict x t-1 with reduced noise compared to x t . It is now known that these denoising models can be trained using a simplified loss function:
где Е (математическое ожидание) представляет операцию усреднения, t выбирается равномерно из {1,…, Tnoise}, ∈ - шум из нормального гауссового распределения N(0, 1) со средним значением 0 и дисперсией 1, ∈W - шум, прогнозируемый удаляющей шум U-Net с обучаемыми параметрами w. Обычно, на каждом этапе обучения удаляющая шум U-Net принимает на входе зашумленное изображение xt и количество шагов t, соответствующее количеству добавленного гауссового шума, и прогнозирует шум, который необходимо удалить для получения обесшумленного изображения. Затем вычисляется потеря L1 между добавленным гауссовым шумом и спрогнозированным шумом. Для дорисовки нейронной текстуры предлагаемый способ использует скрытую диффузию, которая, как было показано, эффективна при дорисовке RGB изображений. Используемый в данном описании термин "нейронная текстура" означает, в общем, текстуру, имеющую произвольное количество каналов, значения которых подбираются градиентными методами на основе вычисления функции потерь. Рендеринг такой текстуры в RGB выполняется нейронным рендерером, который преобразует растеризованную 3D модель (то есть сетку) с такой текстурой в RGB изображение.where E (mathematical expectation) represents the averaging operation, t is selected uniformly from {1,…, T noise }, ∈ is noise from the normal Gaussian distribution N(0, 1) with mean 0 and variance 1, ∈ W is noise predicted denoising U-Net with trainable parameters w. Typically, at each training step, the denoising U-Net takes as input a noisy image x t and a number of steps t corresponding to the amount of added Gaussian noise, and predicts the noise that needs to be removed to obtain a denoised image. The loss L 1 between the added Gaussian noise and the predicted noise is then calculated. To complete neural texture inpainting, the proposed method uses latent diffusion, which has been shown to be effective in inpainting RGB images. As used herein, the term "neural texture" generally means a texture having an arbitrary number of channels, the values of which are selected by gradient methods based on the calculation of a loss function. Rendering such a texture to RGB is done by a neural renderer, which converts the rasterized 3D model (i.e. mesh) with such a texture into an RGB image.
[0034] Реализуемый компьютером способ создания анимируемого аватара человека в полный рост из одного изображения этого человека состоит из двух основных частей: компонентов создания аватара и диффузионной модели дорисовки. Такое деление не является обязательным, но используется в данном описании для простоты объяснения. На фиг. 1 показана блок-схема предлагаемого способа. На фиг. 2 показано неограничивающее схематичное изображение всего конвейера, используемого данным способом; в этом представлении диффузионная модель дорисовки схематически представлена блоком "VQGAN", а все остальное, показанное на фиг. 2, соответствует компонентам создания аватара. На фиг. 3 показано неограничивающее схематичное изображение, иллюстрирующее работу и другие детали предлагаемой диффузионной модели дорисовки.[0034] A computer-implemented method for creating a life-size animated avatar of a person from a single image of that person consists of two main parts: avatar generation components and a diffusion augmentation model. This division is optional, but is used in this description for ease of explanation. In fig. 1 shows a block diagram of the proposed method. In fig. 2 shows a non-limiting schematic representation of the entire conveyor used in this method; in this representation, the diffusion model of the inpainting is schematically represented by the "VQGAN" block, and everything else shown in Fig. 2, corresponds to the avatar creation components. In fig. Figure 3 shows a non-limiting schematic diagram illustrating the operation and other details of the proposed diffusion completion model.
[0035] В общем, предлагаемый способ реконструирует нейронную текстуру из входного изображения человека, используя два пути, а затем использует операцию текстурирования и нейронный рендеринг для синтеза правдоподобных изображений аватара, соответствующих человеку в различных позах, и, при необходимости, с разных углов обзора. Последовательность таких правдоподобных изображений может использоваться для анимации аватара. В данном описании модель дорисовки называется "диффузионной моделью дорисовки", так как она обучается на основе вероятностной модели рассеяния шума (DDPM) поверх предобученных компонентов создания аватара.[0035] In general, the proposed method reconstructs a neural texture from an input image of a person using two paths, and then uses a texturing operation and neural rendering to synthesize plausible avatar images corresponding to a person in different poses, and, optionally, from different viewing angles. A sequence of such plausible images can be used to animate an avatar. In this description, the rendering model is referred to as a "diffusion rendering model" because it is trained using a noise dispersion probabilistic model (DDPM) on top of pretrained avatar generation components.
[0036] Способ в соответствии с первым аспектом настоящего изобретения генерирует 3D аватары с построенным скелетом одетых людей с помощью конвейера, включающего в себя, по меньшей мере, сеть кодировщика Е-генератора G, диффузионную модель дорисовки и нейронный рендерер, обучаемых вместе в сквозном режиме. На этапе S100 способ получает в качестве ввода RGB изображение Irgb и параметрическую модель тела. В предпочтительном варианте параметрическая модель тела представляет собой параметрическую модель тела SMPL-X. Однако можно использовать и другие известные параметрические модели тела. Во время обучения модели SMPL-X подгоняются к последовательным изображениям по принципу SMPLifyX с дополнительной потерей Dice сегментации между прогнозируемой маской сегментации и эталонной маской сегментации, что позволяет улучшить согласование силуэтов человека.[0036] The method in accordance with the first aspect of the present invention generates 3D avatars with a built skeleton of clothed people using a pipeline including at least an E-generator encoder network G, a diffusion inflation model and a neural renderer trained together in an end-to-end manner . In step S100, the method receives an RGB image I rgb and a parametric body model as input. In a preferred embodiment, the parametric body model is an SMPL-X parametric body model. However, other known parametric body models can be used. During training, SMPL-X models are fit to sequential images using the SMPLifyX principle with an additional segmentation Dice loss between the predicted segmentation mask and the reference segmentation mask, allowing for improved matching of human silhouettes.
[0037] Более конкретно, в одном варианте осуществления настоящего изобретения используется сетка SMPL-X M(p; s) с фиксированной топологией, управляемая наборами параметров позы р и параметров формы s. На этапе S105 способа определяется функция UV-карты FUV (М (ptarget, s), Ctarget) Для отображения текстуры. Для SMPL-X можно опционально использовать специально созданную UV-развертку с передним разрезом, чтобы избежать сложных для дорисовки швов на виде сзади. Однако могут использоваться и другие типы разрезов. Процесс рендеринга принимает в качестве ввода сетку М и параметры желаемой камеры Ctarget. Для риггинга сетки могут использоваться параметры позы ptarget. Функция текстурирования FUV генерирует UV-карту размером Н × W × 2, где Н и W определяют размер выходного изображения, а для каждого (наблюдаемого или ненаблюдаемого) пикселя заданы текстурные координаты [i, j] на L-канальной текстуре Т. Иными словами, UV-карту можно рассматривать как двухканальную "текстуру", которая указывает, какой тексель (текстурный элемент) соответствует какой вершине модели тела. Следовательно, функция текстурирования FUV может использоваться в растеризаторе R (FUV, Т) для отображения пикселей выходного изображения в признаках текселей нейронной текстуры Т. Таким образом, растеризатор R создает изображение размером Н × W × L.[0037] More specifically, one embodiment of the present invention uses a fixed topology SMPL-X M(p; s) mesh controlled by sets of pose parameters p and shape parameters s. In method step S105, a UV map function F UV (M(p target , s), C target ) for texture mapping is determined. For SMPL-X, you can optionally use a specially created UV-unfolder with a front cut to avoid difficult to finish seams in the rear view. However, other types of incisions may be used. The rendering process takes as input the mesh M and the parameters of the desired camera C target . The pose parameters p target can be used to rig the mesh. The texturing function F UV generates a UV map of size H × W × 2, where H and W determine the size of the output image, and for each (observed or unobserved) pixel the texture coordinates [i, j] are specified on the L-channel texture T. In other words A UV map can be thought of as a two-channel "texture" that indicates which texel (texture element) corresponds to which vertex of the body model. Therefore, the texturing function F UV can be used in the rasterizer R (F UV , T) to map the pixels of the output image into the texel features of the neural texture T. Thus, the rasterizer R produces an image of size H × W × L.
[0038] Параметры растеризатора R можно установить таким образом, чтобы H и W соответствовали высоте и ширине входного RGB изображения Irgb. В этом случае функцию UV-карты FUV можно использовать не только для отображения векторов признаков из нейронной текстуры Т, но и для выборки значений цвета из входного изображения Irgb в текстурное пространство: Trgb=ξ (FUV (М (pinput, s), Cinput), Irgb). Здесь количество каналов L=3, pinput соответствует позе человека в Irgb, a Cinput _ параметры камеры, восстановленные из Irgb. Отображение ξ переносит значение цвета из Irgb в точку текстуры Trgb, определенную посредством FUV, на этапе S110 способа. Эта RGB текстура позволяет явным образом сохранять информацию о высокочастотных деталях и исходных цветах (как будет обсуждаться ниже), которые сложно сохранить при отображении всего изображения в вектор ограниченной размерности. Кроме того, может потребоваться простое заполнение средним значением, чтобы удалить промежутки, появляющиеся на текстуре из-за дискретности сетки выборки. Следовательно, можно применить дорисовку небольших промежутков (например, промежутков, не превышающих заданный пороговый размер в n пикселей, где n равно, например, 20 пикселям или менее, 15 пикселям или менее, 10 пикселям или менее, 5 пикселям или менее, 2 пикселям или даже одному пикселю), например, путем усреднения соседних пикселей для заполнения промежутков в Trgb. Двоичную карту Bsmp выбранных пикселей и двоичную карту Bfill выбранных и дорисованных пикселей можно сохранить для последующего использования при генерации нейронной текстуры.[0038] The parameters of the rasterizer R can be set such that H and W match the height and width of the input RGB image I rgb . In this case, the UV map function F UV can be used not only to display feature vectors from the neural texture T, but also to sample color values from the input image I rgb into texture space: T rgb =ξ (F UV (M (p input , s), C input ), I rgb ). Here the number of channels is L=3, p input corresponds to the human pose in I rgb , and C input is the camera parameters recovered from I rgb . The mapping ξ transfers the color value from I rgb to the texture point T rgb determined by F UV in method step S110. This RGB texture allows you to explicitly preserve information about high-frequency details and original colors (as discussed below), which are difficult to preserve when mapping the entire image to a limited-dimensional vector. Additionally, a simple average padding may be required to remove gaps that appear in the texture due to the discrete sampling grid. Therefore, it is possible to apply padding to small gaps (for example, gaps not exceeding a specified threshold size of n pixels, where n is, for example, 20 pixels or less, 15 pixels or less, 10 pixels or less, 5 pixels or less, 2 pixels, or even one pixel), for example, by averaging neighboring pixels to fill gaps in T rgb . The binary map B smp of the selected pixels and the binary map B fill of the selected and completed pixels can be saved for later use when generating a neural texture.
[0039] Для осуществления выборки RGB текстуры на этапе S110 способа можно использовать следующий неограничивающий алгоритм выборки RGB текстуры с усреднением пикселей, находящихся рядом с промежутком (промежутками):[0039] To perform RGB texture sampling in method step S110, the following non-limiting RGB texture sampling algorithm may be used, averaging pixels adjacent to the gap(s):
Алгоритм 1. Алгоритм выборки RGB текстурыAlgorithm 1. RGB texture sampling algorithm
Требует: RGB (размер × размер × 3)Requires: RGB (size × size × 3)
Требует: UV (размер × размер × 2)Requires: UV (size × size × 2)
# Инициализация текстуры нулями# Initialize texture to zeros
Т ← нули (размер текстуры × размер текстуры × 3)T ← zeros (texture size × texture size × 3)
С ← нули (размер текстуры × размер текстуры)C ← zeros (texture size × texture size)
# Заполнение текселей средним значением соседей# Filling texels with the average of neighbors
для ∀x, y ∈ [0. размер] выполнитьfor ∀x, y ∈ [0. size] execute
(i, j) ← UV [х; у](i, j) ← UV [x; y]
для ∀k, m ∈ [-1, 0, 1] выполнитьfor ∀k, m ∈ [-1, 0, 1] execute
T [i+k, j+m]+=RGB[x; у]T [i+k, j+m]+=RGB[x; y]
С [i+k, j+m]+=1With [i+k, j+m]+=1
закончить дляfinish for
закончить дляfinish for
Т=Т/СT=T/S
# Заполнение точных значений в текселях, для которых дорисовка не требуется# Filling exact values in texels that do not require additional painting
для ∀x, у ∈ [0. размер] выполнитьfor ∀x, y ∈ [0. size] execute
(i, j) ← UV [х; у](i, j) ← UV [x; y]
Т [i, j] ← RGB[x; у]T [i, j] ← RGB[x; y]
закончить дляfinish for
[0040] Представленный выше Алгоритм 1 не следует интерпретировать как единственно возможный алгоритм для выборки RGB текстуры, поскольку специалист в данной области сможет предложить другой алгоритм для реализации таких же или аналогичных функций. Следовательно, приведенный выше Алгоритм 1 следует интерпретировать как неограничивающий пример.[0040] Algorithm 1 presented above should not be interpreted as the only possible algorithm for RGB texture sampling, since one skilled in the art will be able to suggest another algorithm to implement the same or similar functions. Therefore, Algorithm 1 above should be interpreted as a non-limiting example.
[0041] Основной частью нейронной текстуры является Tgen. Она имеет количество каналов L=16 и создается на этапе S115 способа с использованием обученной сети кодировщика Е - генератора G. Следовательно, Tgen=G (Е (Irgb)). Кодировщик Е сжимает входное изображение Irgb в вектор признаков . На фиг. 4 схематически показана неограничивающая реализация архитектуры кодировщика Е. В качестве архитектуры кодировщика Е авторы изобретения адаптировали архитектуру дискриминатора StyleGAN2 с некоторыми модификациями. В частности, на вход сети подаются три ввода: RGB изображение Irgb, маска сегментации S и дополнительный одноканальный шум. Дополнительный одноканальный шум вводится, чтобы обеспечить дополнительную свободу генеративной модели при обучении GAN. Эффективность использования шума в генеративных нейронных сетях была продемонстрирована авторами StyleGAN. Принятые на входе изображения конкатенируются каналами и пропускаются через извлекатель признаков с архитектурой, эквивалентной дискриминатору StyleGAN, состоящему из блоков ResNet. Головной блок модели был модифицирован для вывода вектора признаков размерности 512. Затем этот вектор используется в качестве ввода генератора , и предлагаемый кодировщик обучается в сквозном режиме с помощью этого генератора и рендерера. Генератор имеет архитектуру генератора StyleGAN2 и преобразует вектор признаков в основную часть Tgen нейронной текстуры. Tgen имеет количество каналов L=16, как и в StylePeople.[0041] The main part of the neural texture is T gen . It has a number of channels L=16 and is created in method step S115 using the trained encoder network E - generator G. Therefore, T gen =G (E (I rgb )). Encoder E compresses the input image I rgb into a feature vector . In fig. Figure 4 schematically shows a non-limiting implementation of the E encoder architecture. As the E encoder architecture, the inventors adapted the StyleGAN2 discriminator architecture with some modifications. In particular, three inputs are supplied to the network input: an RGB image I rgb , a segmentation mask S and an additional single-channel noise. Additional single-channel noise is introduced to provide additional freedom to the generative model when training the GAN. The effectiveness of using noise in generative neural networks has been demonstrated by the authors of StyleGAN. The images received as input are concatenated by channels and passed through a feature extractor with an architecture equivalent to the StyleGAN discriminator consisting of ResNet blocks. The head block of the model was modified to output a feature vector of dimension 512. This vector is then used as the generator input , and the proposed encoder is trained end-to-end using this generator and renderer. Generator has a StyleGAN2 generator architecture and transforms a feature vector into the main part of the T gen neural texture. T gen has the number of channels L=16, as in StylePeople.
[0042] Окончательная (но без дорисованных ненаблюдаемых на изображении областей) нейронная текстура Т, используемая в данном способе, имеет размер 256 × 256 × 20 или 256 × 256 × 21. Окончательная нейронная текстура Т получается на этапе S120 способа путем конкатенации RGB текстуры Trgb (256 × 256 × 3), карты Bsmp выбранных пикселей, сгенерированной текстуры Tgen (256 × 256 × 16) и, при необходимости, карты Bfill дорисованных пикселей:[0042] The final (but without additionally drawn unobservable areas in the image) neural texture T used in this method has a size of 256 × 256 × 20 or 256 × 256 × 21. The final neural texture T is obtained at step S120 of the method by concatenating the RGB texture T rgb (256 × 256 × 3), map B smp of selected pixels, generated texture T gen (256 × 256 × 16) and, if necessary, map B fill of completed pixels:
T=Tgen ⊕ Trgb ⊕ Bsmp (2а), илиT=T gen ⊕ T rgb ⊕ B smp (2a), or
T=Tgen ⊕ Trgb ⊕ Bsmp ⊕ Bfill (2b)T=T gen ⊕ T rgb ⊕ B smp ⊕ B fill (2b)
[0043] После получения окончательной нейронной текстуры способ переходит к этапу S125 дорисовки ненаблюдаемых текстурных областей нейронной текстуры Т с помощью обученной диффузионной модели дорисовки для получения Tinpainted. Затем нейронный рендерер θ (R(FUV, Tinpainted)) преобразует на этапе S130 способа растеризованное изображение R. (FUV, Tinpainted) с L каналами в выходное RGB изображение Irend. Нейронный рендерер θ имеет архитектуру U-Net с блоками ResNet. На фиг. 5 схематически представлена неограничивающая реализация нейронного рендерера θ. Нейронный рендерер θ принимает в качестве ввода три изображения: растеризованное изображение R. модели тела SMPL-X с дорисованной нейронной текстурой Tinpaintedf UV-рендер и UV-маску. UV-рендер представляет собой растеризованную 3D модель (т.е. сетку) в виде двухканального изображения, где каждый пиксель является координатой на текстуре, из которой берется соответствующее значение цвета. UV-маска определяет, в каких пикселях UV-рендера координаты текстуры заданы и в каких пикселях UV-рендера координаты текстуры не заданы. В последнем случае пиксели, не имеющие заданных текстурных координат, можно указать в UV-маске, например, значением "0". Каждое входное изображение пропускается через сверточную сеть, состоящую из двух сверток с активацией LeakyReLU и слоев BatchNorm. Выходные признаки конкатенируются и подаются в сеть U-Net, содержащую блоки ResNet. U-Net имеет 3 уровня, связанных конкатенацией признаков. Выход U-Net пропускается через две дополнительные сверточные сети для прогнозирования рендерного RGB изображения Irend аватара и его маски.[0043] After obtaining the final neural texture, the method proceeds to step S125 of inpainting the unobserved texture regions of the neural texture T using the trained diffusion inpainting model to obtain T inpainted . The neural renderer θ (R(F UV , T inpainted )) then converts the rasterized image R (F UV , T inpainted ) with L channels into an output RGB image I rend in method step S130. The neural renderer θ has a U-Net architecture with ResNet blocks. In fig. Figure 5 schematically shows a non-restrictive implementation of the neural renderer θ. The neural renderer θ takes three images as input: a rasterized image R of the SMPL-X body model with a completed neural texture T inpaintedf a UV renderer and a UV mask. A UV render is a rasterized 3D model (i.e. a mesh) in the form of a two-channel image, where each pixel is a coordinate on the texture from which the corresponding color value is taken. The UV mask determines which UV render pixels have texture coordinates and which UV render pixels do not have texture coordinates. In the latter case, pixels that do not have specified texture coordinates can be specified in the UV mask, for example, with the value "0". Each input image is passed through a convolutional network consisting of two LeakyReLU-enabled convolutions and BatchNorm layers. The output features are concatenated and fed into a U-Net network containing ResNet blocks. U-Net has 3 layers connected by feature concatenation. The output of U-Net is passed through two additional convolutional networks to predict the rendered RGB image I rend of the avatar and its mask.
[0044] Таким образом, можно получить растеризованное изображение R из дорисованной нейронной текстуры Tinpainted и отображения, заданного функцией текстурирования FUV, в котором параметрическая модель тела модифицируется на основе параметров целевой позы, и/или параметры камеры модифицируются в параметры целевой камеры Ctarget. Параметры целевой позы ptarget и/или параметры целевой камеры Ctarget соответствуют упомянутой новой позе аватара человека в полный рост. Следует понимать, что во всех материалах настоящего изобретения понятие "новая поза аватара человека в полный рост" включает в себя любые позы аватара человека, которые можно получить, изменив по меньшей мере один параметр из параметров позы и/или по меньшей мере один параметр из параметров камеры. Следовательно, новая поза аватара человека в полный рост, получаемая путем изменения только параметра(ов) камеры, также считается новой позой аватара человека в полный рост, даже если поза человека на изображении осталась неизменной.[0044] Thus, it is possible to obtain a rasterized image R from the completed neural texture T inpainted and the mapping specified by the texturing function F UV , in which the parametric body model is modified based on the parameters of the target pose, and/or the camera parameters are modified into the parameters of the target camera C target . The target pose parameters p target and/or the target camera parameters C target correspond to said new full body human avatar pose. It should be understood that throughout the present invention, the term "new full-length human avatar pose" includes any human avatar poses that can be obtained by changing at least one parameter of the pose parameters and/or at least one parameter of the parameters cameras. Therefore, a new full-body avatar pose of a person obtained by changing only the camera parameter(s) is also considered a new full-body avatar pose of a person, even if the pose of the person in the image remains unchanged.
[0045] Нейронный рендерер обучается вместе с сетью кодировщика Е - генератора G. Следовательно, рендеринг аватара человека в полный рост в новой позе ptarget на основе одного входного RGB изображения Irgb, изображающего человека в позе pinput, может иметь следующую форму:[0045] The neural renderer is trained together with the E-generator encoder network G. Therefore, rendering a full-body avatar of a person in a new pose p target based on a single input RGB image I rgb depicting a person in pose p input can take the following form:
Tinpainted=G (Е (Irgb)) ⊕ ξ (FUV (М (pinput, s), Cinput), Irgb) ⊕ Bsmp (3a), илиT inpainted =G (E (I rgb )) ⊕ ξ (F UV (M (p input , s), C input ), I rgb ) ⊕ B smp (3a), or
Tinpainted=G (Е (Irgb)) ⊕ ξ (FUV (М (pinput, s), Cinput), Irgb) ⊕ Bsmp ⊕ Bfill (3b)T inpainted =G (E (I rgb )) ⊕ ξ (F UV (M (p input , s), C input ), I rgb ) ⊕ B smp ⊕ B fill (3b)
Irend=θ (R (FUV (M (ptarget, s), Ctarget) Tinpainted)) (4)I rend =θ (R (F UV (M (p target , s), C target ) T inpainted )) (4)
[0046] При обучении минимизируются одна или несколько из следующих потерь: потеря L2 различия между рендерным изображением Irend и соответствующим эталонным изображением IGT, потеря LPIPS (Learned Perceptual Image Patch Similarity) выученного (учитываемого) перцептивного сходства между патчами изображения между рендерным изображением Irend и соответствующим эталонным изображением IGT , ненасыщающая состязательная потеря на основе дискриминатора StyleGAN2 с R1-регуляризацией и потеря Dice между спрогнозированной маской сегментации Spred и эталонной маской сегментации SGT. В предпочтительном варианте минимизируется комбинация всех вышеупомянутых функций потерь (см. математическое выражение (5) ниже). Потеря L2 различия и потеря LPIPS вычисляются для всего изображения и могут быть вычислены дополнительно с весом для области с лицом, так как лицо имеет большое значение для человеческого восприятия. Этот вес в предпочтительном варианте равен 0,1, но в других вариантах он может быть больше (например, от 0,11 до 0,2) или меньше (например, от 0,09 до 0,01). Ненасыщающую состязательную потерю можно использовать для того, чтобы сделать Irend более правдоподобным и четким. Эту ненасыщающую состязательную потерю Adv можно использовать с дискриминатором D из StyleGAN2 с R1-регуляризацией. Таким образом, общие потери, используемые в предпочтительном варианте осуществления, могут иметь следующую форму:[0046] During training, one or more of the following losses are minimized: the loss of L 2 differences between the render image I rend and the corresponding reference image I GT , the loss of LPIPS (Learned Perceptual Image Patch Similarity) of the learned perceptual similarity between image patches between the render image I rend and the corresponding reference image I GT , a non-saturating adversarial loss based on the StyleGAN2 discriminator with R 1 -regularization, and a Dice loss between the predicted segmentation mask S pred and the reference segmentation mask S GT . In the preferred embodiment, a combination of all the above loss functions is minimized (see mathematical expression (5) below). The L2 difference loss and LPIPS loss are calculated for the entire image and can be calculated additionally with a weight for the face region, since the face is of great importance for human perception. This weight is preferably 0.1, but in other embodiments it may be greater (eg, 0.11 to 0.2) or smaller (eg, 0.09 to 0.01). The non-saturating adversarial loss can be used to make I rend more believable and clear. This non-saturating Adv adversarial loss can be used with discriminator D from StyleGAN2 with R 1 -regularization. Thus, the total losses used in the preferred embodiment may take the following form:
[0047] Выбор гиперпараметров λ1…5 будет описан ниже.[0047] The selection of hyperparameters λ 1...5 will be described below.
[0048] Для улучшения качества аватара на этапе вывода (inference) могут дополнительно применяться несколько методов. Чтобы улучшить детали текстуры в наблюдаемой на изображении части, можно выполнить несколько (конкретно 64) шагов оптимизации RGB каналов с градиентами из дифференцируемого рендерера для входного изображения. В частности, для этого можно использовать градиенты из нейронного рендерера в, полученные путем сравнения рендерного изображения Irend с входным RGB изображением Irgb. Такие градиенты можно применить к текселям с весами, соответствующими углам между векторами нормалей и направлением камеры, как будет подробно обсуждаться со ссылкой на фиг.5 ниже. Это гарантирует, что будут оптимизироваться только те тексели, которые видны на входном изображении Irgb с приоритетом наиболее фронтальных из них. Потеря L2 различия и потеря LPIPS могут использоваться для запуска согласования цвета, а состязательную потерю Adv с регуляризацией R1, аналогично потере, используемой в математическом выражении (5) общей потери, можно использовать для усиления детализации.[0048] To improve the quality of the avatar at the inference stage, several methods can be additionally applied. To improve the texture details in the observed part of the image, several (specifically 64) optimization steps of the RGB channels with gradients from the differentiable renderer can be performed on the input image. In particular, you can use gradients from the neural renderer to do this, obtained by comparing the render image I rend with the input RGB image I rgb . Such gradients can be applied to texels with weights corresponding to the angles between the normal vectors and the camera direction, as will be discussed in detail with reference to Fig. 5 below. This ensures that only those texels that are visible in the input image I rgb will be optimized, with priority given to the most frontal ones. The L 2 difference loss and LPIPS loss can be used to drive color matching, and the adversarial Adv loss with R 1 regularization, similar to the loss used in the overall loss math expression (5), can be used to enhance granularity.
[0049] Также опционально можно применить линейную корректировку к RGB каналам выхода декодирования VQGAN (фиг. 3), чтобы улучшить согласование цвета между передним и задним видами после стадии дорисовки:[0049] It is also optional to apply a linear adjustment to the RGB channels of the VQGAN decoding output (FIG. 3) to improve color matching between the front and back views after the finishing stage:
Trgb=Trgbα+β (8)T rgb =T rgb α+β (8)
[0050] В этом случае все тексели имеют общие обучаемые параметры альфа и бета, которые можно оптимизировать с помощью градиентов нейронного рендерера, полученных пикселями, наблюдаемыми на входном изображении Irgb. В результате, RGB каналы нейронной текстуры на выходе VQGAN усиливают согласование цвета с выбранной RGB текстурой Trgb. Это позволяет минимизировать шов (швы) после объединения текстур.[0050] In this case, all texels have common alpha and beta trainable parameters, which can be optimized using neural renderer gradients obtained by pixels observed in the input image I rgb . As a result, the RGB channels of the neural texture at the output of the VQGAN enhance the color matching to the selected RGB texture T rgb . This minimizes the seam(s) after merging textures.
[0051] Кроме того, ввиду несовершенства сеток SMPL-X существует проблема несовершенств подгонки SMPL-X, когда пиксели ошибочно выбираются из одной части тела в другую в областях, которые закрывают сами себя (например, руки, расположенные перед телом). Эти несовершенства подгонки SMPL-X могут привести к неправдоподобным рендерам. Для решения этой проблемы во входном изображении Irgb выявляют закрытые области тела человека, включая те области, которые человек сам закрывает на себе, и текстура внутри контура этого перекрытия не выбирается на этапе S110 способа. Невыбранная текстура, содержащаяся в контуре перекрытия, а также все другие ненаблюдаемые текстурные области затем подвергаются дорисовке на этапе S125 способа. Как показано на фиг. 7, в одной реализации может использоваться растеризация с помощью палитры в качестве текстуры для нахождения перекрывающихся областей. В частности, каждой конечности можно назначить отдельный цвет в палитре, а переход между этими конечностями можно сделать плавным с помощью цветового градиента. Это позволяет избежать швов при растеризации. Границы в растеризации палитры можно найти с помощью алгоритма Кэнни или любого другого алгоритма детектора границ, известного в данной области. Затем можно определить контуры человека путем бинарной растеризации SMPL-X. Выводя эти контуры из границ, получают карту закрытой области (закрытых областей) тела человека. Полученную карту затем используют для маскирования областей в UV-рендере. Это позволяет опираться на дорисовку на более поздних этапах конвейера, а не на выборку пикселей в перекрывающихся областях.[0051] Additionally, due to the imperfections of SMPL-X meshes, there is a problem with SMPL-X fitting imperfections where pixels are erroneously selected from one part of the body to another in areas that occlude themselves (eg, arms located in front of the body). These SMPL-X fit imperfections can result in unrealistic renders. To solve this problem, occluded areas of the human body, including those areas that the person occludes on himself, are detected in the input image I rgb , and the texture within the outline of this occlusion is not selected in method step S110. The unselected texture contained in the overlap outline, as well as all other unobservable texture areas, are then further painted in method step S125. As shown in FIG. 7, one implementation may use palette rasterization as a texture to find overlapping areas. In particular, each limb can be assigned a different color in the palette, and the transition between these limbs can be made smooth using a color gradient. This avoids seams when rasterizing. Edges in palette rasterization can be found using Canny's algorithm or any other edge detector algorithm known in the art. The person's contours can then be determined by SMPL-X binary rasterization. By deriving these contours from the boundaries, a map of the closed area(s) of the human body is obtained. The resulting map is then used to mask areas in the UV render. This allows you to rely on finishing later in the pipeline rather than sampling pixels in overlapping areas.
[0052] Обучение выполняется на наборах многоракурсных изображений, таких как наборы кадров видео (или наборы рендеров 3D моделей). В неограничивающей реализации обучения на первой стадии обучения на каждом этапе обучения берутся два разных кадра из одного и того же набора, один служит входным изображением Irgb с параметрами входной позы pinput а другой - целевым изображением с параметрами целевой позы ptarget и/или параметрами целевой камеры Ctarget. Таким образом, эти два изображения имеют различные параметры камеры, а также два различных параметра позы тела одного и того же человека. В одной реализации обучения два кадра можно выбрать из одного и того же набора многоракурсных изображений таким образом, чтобы различия в параметрах позы и/или параметрах камеры между двумя изображениями были больше или равны соответствующему заранее определенному минимальному порогу (порогам) различия, чтобы исключить выборку изображений, имеющих недостаточные различия в параметрах позы и/или параметрах камеры. Конвейеру это важно для обобщения на новые положения камеры С и позы р. Для этого нейронный рендерер θ и сеть кодировщика Е - генератора G обучаются дорисовывать текстурные области, не наблюдаемые в Irgb.[0052] Training is performed on sets of multi-view images, such as sets of video frames (or sets of 3D model renders). In a non-restrictive implementation of learning in the first stage of training, at each stage of training, two different frames are taken from the same set, one serving as the input image I rgb with the input pose parameters p input and the other as the target image with the target pose parameters p target and/or parameters target camera C target . Thus, these two images have different camera parameters, as well as two different body pose parameters of the same person. In one training implementation, two frames may be selected from the same set of multi-view images such that the differences in pose parameters and/or camera parameters between the two images are greater than or equal to the corresponding predetermined minimum difference threshold(s) to eliminate image selection that have insufficient differences in pose parameters and/or camera parameters. This is important for the conveyor to generalize to new positions of camera C and pose p. To do this, the neural renderer θ and the encoder network E - generator G are trained to complete the drawing of texture areas that are not observed in I rgb .
[0053] Хотя нейронный рендерер в и сеть кодировщика Е генератора G обучаются компенсировать небольшое количество ненаблюдаемых текстурных областей, которые могут присутствовать в целевом виде, было обнаружено, что эта возможность в основном ограничена небольшими изменениям в позе тела и/или параметрах камеры. Самый простой способ получить аватар, рендеринг которого можно осуществить под произвольными углами, - это создать его из нескольких изображений путем объединения соответствующих нейронных текстур. Для этого может быть использована простая схема смешивания, схематично показанная на фиг. 6. В частности, предположим, что дано N входных изображений человека с различными параметрами камеры , что дает N нейронных текстур Ti. Эти текстуры естественным образом покрывают разные области тела человека, наблюдаемые на разных входных изображениях. Для объединения этих текстур можно использовать функцию F(T1… TN, λ1… λN), схематически показанную на фиг. 6. λ1 - это вспомогательная информация о текстурной области, наблюдаемой или видимой на соответствующем входном изображении .[0053] Although neural renderer B and encoder network E of generator G are trained to compensate for the small number of unobserved texture regions that may be present in the target view, this capability has been found to be largely limited to small changes in body pose and/or camera parameters. The easiest way to get an avatar that can be rendered at arbitrary angles is to create it from several images by combining the corresponding neural textures. For this purpose, a simple mixing scheme can be used, schematically shown in Fig. 6. In particular, suppose that given N input images man with different camera settings , which gives N neural textures T i . These textures naturally cover different regions of the human body observed in different input images. To combine these textures, you can use the function F(T 1 ... T N , λ 1 ... λ N ), schematically shown in Fig. 6. λ 1 is auxiliary information about the texture region observed or visible in the corresponding input image .
[0054] В качестве вспомогательной информации λ1 могут использоваться углы между векторами нормалей соответствующей точки сетки Mi и вектором направления камеры. Таким образом, λ1 определяет, насколько фронтальной является каждая точка текстуры по отношению к камере. Используя эту информацию, выполняется объединение текстур с выделением наиболее фронтальных пикселей для каждого Ti. Затем текстуры Ti агрегируются с использованием средневзвешенного значения с весами, вычисляемыми как . Фактор τ определяет резкость границ на стыке объединяемых текстур. Следует отметить, что веса можно рассчитывать и другими способами. Таким образом, окончательную объединенную текстуру можно вычислить следующим образом:[0054] The angles between the normal vectors of the corresponding grid point M i and the camera direction vector can be used as auxiliary information λ 1 . Thus, λ 1 determines how frontal each texture point is in relation to the camera. Using this information, texture merging is performed, highlighting the most frontal pixels for each T i . The textures T i are then aggregated using a weighted average with weights calculated as . The factor τ determines the sharpness of the boundaries at the junction of the combined textures. It should be noted that weights can be calculated in other ways. So the final merged texture can be calculated as follows:
[0055] Этот метод позволяет получать аватары из нескольких снимков путем объединения аватаров из одиночных снимков для различных видов. Также могут использоваться более сложные схемы смешивания, такие как пирамидальное смешивание или смешивание Пуассона.[0055] This method allows obtaining avatars from multiple snapshots by combining avatars from single snapshots for different views. More complex mixing patterns such as pyramidal mixing or Poisson mixing can also be used.
[0056] В качестве заключительной части предложенного способа используется диффузионная модель дорисовки, включающая удаляющую шум архитектуру U-Net и, необязательно, основанный на VQGAN автокодировщик. Диффузионную модель дорисовки можно обучить с учителем, где в качестве вводов используются неполные текстуры, основанные на отдельных фотографиях, а в качестве эталонных изображений используются объединенные текстуры, агрегированные из нескольких видов.[0056] The final part of the proposed method uses a diffusion inpainting model incorporating a denoising U-Net architecture and optionally a VQGAN-based autoencoder. A diffusion inpainting model can be trained supervised, using incomplete textures based on individual photographs as inputs, and pooled textures aggregated from multiple views as reference images.
[0057] Важно отметить, что, поскольку распределение правдоподобных ("правильных") полных текстур при предоставленной входной частичной текстуре обычно очень сложное и мультимодальное, авторы настоящего изобретения предложили использовать рабочий подход вероятностной модели рассеяния шума, DDPM, и обучать архитектуру удаляющей шум U-Net вместо прямого преобразования ввода в вывод. Как было описано выше, в неограничивающей реализации нейронная текстура Т имеет разрешение 256×256×20 (без карты Bfill дорисованных пикселей) или 256×256×21 (с картой Bfill дорисованных пикселей). Это влечет высокие требования к памяти во время обучения диффузионной модели. Чтобы уменьшить потребление памяти и улучшить сходимость сети, во-первых, можно уменьшить размер нейронной текстуры с помощью основанного на VQGAN автокодировщика. Как показано на фиг. 2, основанный на VQGAN автокодировщик добавлен в качестве альтернативной ветви для входа нейронного рендерера θ. После предварительного обучения основанного на VQGAN автокодировщика можно точно настроить конвейер от начала до конца, чтобы адаптировать нейронный рендерер θ к артефактам декомпрессии основанного на VQGAN автокодировщика в дорисованной нейронной текстуре Tinpainted. Для обучения основанного на VQGAN автокодировщика более точному восстановлению нейронных текстур можно использовать несколько функций потерь. Для улучшения визуального качества аватара после декомпрессии текстуры можно использовать функции потерь в RGB пространстве. Во время обучения аватар подвергается рендерингу, как описано в представленном выше выражении (4), с дорисованной нейронной текстурой Tinpainted, а затем оптимизируется функция потерь (5). Для дополнительной регуляризации и сохранения свойств нейронной текстуры для всех видов можно использовать дополнительную потерю L2 в пространстве текстуры .[0057] It is important to note that since the distribution of plausible ("correct") full textures given an input partial texture is typically very complex and multimodal, the present inventors proposed to use a working approach of a noise dissipation probabilistic model, DDPM, and train a U-noise removal architecture. Net instead of directly converting input to output. As described above, in a non-limiting implementation, the neural texture T has a resolution of 256x256x20 (without the B fill map of additional pixels) or 256x256x21 (with the B fill map of additional pixels). This entails high memory requirements during training of the diffusion model. To reduce memory consumption and improve network convergence, firstly, the neural texture size can be reduced using a VQGAN-based autoencoder. As shown in FIG. 2, a VQGAN-based autoencoder is added as an alternative branch to the input of the neural renderer θ. After pre-training the VQGAN-based autoencoder, the pipeline can be fine-tuned from start to finish to adapt the neural renderer θ to the VQGAN-based autoencoder's decompression artifacts in the pre-painted neural texture T inpainted . Several loss functions can be used to train a VQGAN-based autoencoder to more accurately restore neural textures. To improve the visual quality of the avatar after texture decompression, loss functions in RGB space can be used. During training, the avatar is rendered as described in expression (4) above, with the T inpainted neural texture added, and then the loss function is optimized (5). To further regularize and preserve neural texture properties across all views, an additional L2 loss in texture space can be used .
[0058] После добавления основанного на VQGAN автокодировщика в конвейер дорисовки нейронной текстуры, как показано на фиг.3 , удаляющая шум архитектура U-Net на основе модели DDPM обучается в скрытом пространстве предварительно обученного основанного на VQGAN автокодировщика. Следовательно, удаляющая шум архитектура U-Net, основанная на модели DDPM, применяется к T0 c=V (T0) размером 64 × 64 × 3, полученному после сжатия нейронной текстуры на основе одного вида кодировщиком VQGAN EVQ. Удаляющую шум архитектуру U-Net, основанную на модели DDPM, можно обучать с механизмом внимания, например, с одним или несколькими слоями внимания. Удаляющую шум архитектуру U-Net обуславливают с помощью EVQ(T0) ⊕ b(B0 fill), где b - билинейное изменение размера в пространственный размер T0 c. Таким образом, конкатенация условия и текстуры Тс, искаженной нормально распределенным (гауссовым) шумом, соответствующим шагу t диффузии, подается в качестве ввода в удаляющую шум архитектуру U-Net. При этом удаляющая шум архитектура U-Net обучается удалять шум из ввода путем минимизации потери LDM (1). Как уже объяснялось выше, потеря LDM может быть основана на функции потери L1.[0058] After adding the VQGAN-based autoencoder to the neural texture completion pipeline, as shown in Figure 3, the DDPM model-based denoising U-Net architecture is trained in the latent space of the pre-trained VQGAN-based autoencoder. Therefore, the noise-removing U-Net architecture based on the DDPM model is applied to T 0 c =V (T 0 ) of size 64 × 64 × 3 obtained after single-view neural texture compression by the VQGAN E VQ encoder. The denoising U-Net architecture based on the DDPM model can be trained with an attention mechanism, such as one or more attention layers. The noise-removing U-Net architecture is conditioned by E VQ (T 0 ) ⊕ b(B 0 fil l), where b is the bilinear resizing to the spatial dimension T 0 c . Thus, the concatenation of the condition and texture T c , distorted by normally distributed (Gaussian) noise corresponding to the diffusion step t, is fed as input to the noise-removing U-Net architecture. In this case, the U-Net denoising architecture is trained to remove noise from the input by minimizing the loss L DM (1). As explained above, the L DM loss can be based on the L 1 loss function.
[0059] Как отмечалось выше, диффузионная модель дорисовки, проиллюстрированная на фиг. 3, обучается с использованием объединенных нейронных текстур (фиг. 6) в качестве эталонных нейронных текстур. В данном случае, объединенные нейронные текстуры могут быть сгенерированы из набора данных 3D-сканов человека. В качестве обучающих данных также можно использовать набор данных многоракурсных фотоснимков людей с хорошим угловым охватом. Как отмечалось выше, удаляющая шум архитектура U-Net восстанавливает текстуру Тс (а именно, ее скрытое представление) из шума на основе условия. Затем текстура Тс преобразуется в восстановленную полноразмерную нейронную текстуру T с помощью декодировщика VQGAN DVQ. Чтобы сохранить все детали входного изображения Irgb, восстановленная нейронная текстура T затем объединяется с входной текстурой T0 с использованием маски , чтобы получить дорисованную нейронную текстуру Tinpainted:[0059] As noted above, the diffusion model of finishing illustrated in FIG. 3 is trained using the concatenated neural textures (Fig. 6) as reference neural textures. In this case, fused neural textures can be generated from a dataset of 3D human scans. You can also use a dataset of multi-view photographs of people with good angular coverage as training data. As noted above, the U-Net denoising architecture recovers the texture T c (namely, its latent representation) from the noise based on the condition. Then the texture T c is converted into a reconstructed full-size neural texture T using the VQGAN D VQ decoder. To preserve all the details of the input image I rgb , the reconstructed neural texture T is then combined with the input texture T 0 using a mask to get the completed neural texture T inpainted :
[0060] Полученная текстура имеет все детали, наблюдаемые на входном изображении , а части человека, не наблюдаемые на входном изображении , восстанавливаются с помощью диффузионной модели дорисовки в скрытом пространстве основанного на VQGAN автокодировщика. На фиг. 8 показаны примеры анимированных аватаров людей в полный рост в различных позах, сгенерированные вышеописанным способом для соответствующих одиночных входных изображений Irgb, показанных в левой части фигуры.[0060] The resulting texture has all the detail observed in the input image , and parts of the person not visible in the input image ,are reconstructed using the latent space diffusion,inpainting model of a VQGAN-based autoencoder. In fig. Figure 8 shows examples of animated full-length human avatars in various poses generated in the manner described above for the corresponding single input images I rgb shown on the left side of the figure.
[0061] На фиг. 9 представлено неограничивающее схематичное изображение вычислительного устройства 50 согласно второму аспекту настоящего изобретения. Следует понимать, что вычислительное устройство 50 может быть сконфигурировано для выполнения вышеописанного способа в соответствии с первым аспектом или в соответствии с любым развитием первого аспекта. Вычислительное устройство 50 содержит процессор 50.1 и память 50.2, в которой хранятся исполняемые процессором инструкции и параметры, включающие, по меньшей мере, веса и смещения обученного конвейера сети кодировщика Е - генератора G, диффузионной модели дорисовки и нейронного рендерера θ. После выполнения исполняемых процессором инструкций процессором 50.1 процессор 50.1 побуждает вычислительное устройство 50 выполнять способ создания анимируемого аватара человека в полный рост из одного изображения этого человека согласно первому аспекту или согласно любому другому развитию первого аспекта.[0061] In FIG. 9 is a non-limiting schematic diagram of a computing device 50 in accordance with a second aspect of the present invention. It should be understood that computing device 50 may be configured to perform the above-described method in accordance with the first aspect or in accordance with any development of the first aspect. The computing device 50 includes a processor 50.1 and a memory 50.2, which stores instructions and parameters executable by the processor, including at least the weights and biases of the trained pipeline of the encoder network E - generator G, the diffusion model of completion and the neural renderer θ. Upon execution of processor executable instructions by processor 50.1, processor 50.1 causes computing device 50 to execute a method of creating a life-size animated avatar of a person from a single image of that person in accordance with the first aspect or any other development of the first aspect.
[0062] Вычислительное устройство 50 может быть любого типа, например, оно может представлять собой, но без ограничения, компьютер общего назначения, специализированный компьютер, компьютерную сеть, ноутбук, смартфон, планшет, смарт-часы, умные очки, гарнитуру AR/VR или другое программируемое устройство. Процессор 50.1 может быть процессором любого типа. Процессор 50.1 может представлять собой, без ограничения, один или несколько из следующих процессоров: процессор общего назначения (например, ЦП), процессор цифровых сигналов (DSP), процессор приложений (АР), графический процессор (GPU), процессор машинного зрения (VPU), выделенный под ИИ процессор (например, нейронный процессор, NPU). Процессор может быть реализован в виде системы на кристалле (SOC), специализированной интегральной схемы (ASIC), программируемой пользователем вентильной матрицы (FPGA) или другого программируемого логического устройства (PLD), дискретного логического элемента, транзисторной логики, дискретных аппаратных компонентов, или любой их комбинации. Процессор может быть разделен на блоки, каждый из которых выполняет один или несколько этапов вышеописанного способа.[0062] The computing device 50 may be of any type, for example, it may be, but is not limited to, a general purpose computer, a specialized computer, a computer network, a laptop, a smartphone, a tablet, a smart watch, smart glasses, an AR/VR headset, or another programmable device. The 50.1 processor can be any type of processor. The processor 50.1 may be, without limitation, one or more of the following processors: a general purpose processor (e.g., CPU), a digital signal processor (DSP), an application processor (AP), a graphics processing unit (GPU), a vision processor (VPU) , a processor dedicated to AI (for example, a neural processor, NPU). The processor may be implemented as a system-on-chip (SOC), application-specific integrated circuit (ASIC), field-programmable gate array (FPGA) or other programmable logic device (PLD), discrete logic gate, transistor logic, discrete hardware components, or any of these combinations. The processor may be divided into units, each of which performs one or more steps of the method described above.
[0063] Память 50.2 может представлять собой, но без ограничения, постоянное запоминающее устройство (ROM) и оперативное запоминающее устройство (RAM). Могут использоваться любые типы RAM и ROM. Вычислительное устройство 5 0 может дополнительно содержать камеру 50.3 любого типа, способную захватывать изображения. Вычислительное устройство 50 может работать на любой операционной системе и может содержать любые другие необходимые программные средства, аппаратно-программные средства и аппаратные средства (например, не показанные блок связи, интерфейс ввода/вывода, камеру, источник питания и т.д.).[0063] Memory 50.2 may be, but is not limited to, read-only memory (ROM) and random access memory (RAM). Any type of RAM and ROM can be used. The computing device 5 0 may further include any type of camera 50.3 capable of capturing images. Computing device 50 may run on any operating system and may include any other necessary software, firmware, and hardware (eg, communications unit, input/output interface, camera, power supply, etc., not shown).
[0064] Специалисту в данной области техники будет понятно, что для удобства и краткости подробного описания рабочего процесса упомянутого вычислительного устройства 50 следует обратиться к соответствующему процессу в описанных выше вариантах осуществления способа. Их детальное описание не повторяется.[0064] One skilled in the art will appreciate that for convenience and brevity the detailed description of the operating process of said computing device 50 should be referred to the corresponding process in the method embodiments described above. Their detailed description is not repeated.
[0065] Далее будут обсуждаться обучающие данные и обучающие данные сетей. Детали, обсуждаемые ниже, не следует рассматривать как ограничение. Вместо этого приведенное ниже описание и неограничивающие примеры можно считать подтверждающими достаточность раскрытия настоящего изобретения в соответствии с настоящей заявкой на патент. Сеть кодировщика Е - генератора G, диффузионная модель дорисовки, нейронный рендерер θ или любой аспект их обучения можно реализовать с использованием библиотек машинного обучения с открытым исходным кодом, например, TensorFlow, Keras, PyTorch и так далее. Обучение может осуществляться офлайн или онлайн. Обучение конвейера сети кодировщика Е - генератора сети G, диффузионной модели дорисовки и нейронного рендерера θ выполнялось на RGB изображениях с разрешением 512×512. Однако разрешение обучающих RGB изображений может быть больше или меньше упомянутого разрешения 512×512. Для каждого входного изображения размером 3 × 512 × 512 генерировалась нейронная текстура размером 21 × 256 × 256. В этой нейронной текстуре первые 16 каналов были сгенерированы генератором G обученной сети кодировщика Е - генератора G, следующие три канала были RGB каналами, а оставшиеся два канала были масками выборки и дорисовки. Генератор G имеет архитектуру StyleGAN2 и принимает в качестве ввода вектор признаков , сгенерированный кодировщиком Е обученной сети кодировщика Е -генератора G. Кодировщик Е имеет архитектуру дискриминатора StyleGAN2 с модифицированной головной частью для вывода вектора длиной 512. Полученную текстуру применяли к модели SMPL-X и подвергали растеризации. Растеризованное изображение имело размер 21×512×512 и подавалось в нейронный рендерер в, имеющий архитектуру U-Net с блоками ResNet. На выходе нейронного рендерера в получали окончательное изображение с разрешением 3 × 512 × 512. Генератор G и нейронный рендерер θ обучали сквозным методом с размером пакета, равным четырем. Однако, размер пакета может быть больше или меньше четырех.[0065] Training data and network training data will be discussed next. The details discussed below should not be construed as limitations. Instead, the following description and non-limiting examples may be taken to demonstrate the sufficiency of the disclosure of the present invention as provided in this patent application. The E-G generator encoder network, the inpainting diffusion model, the θ neural renderer, or any aspect of their training can be implemented using open source machine learning libraries such as TensorFlow, Keras, PyTorch, and so on. Training can be done offline or online. Training of the encoder network pipeline E - network generator G, the diffusion model of repainting and the neural renderer θ was performed on RGB images with a resolution of 512 × 512. However, the resolution of the RGB training images may be greater or less than the aforementioned 512×512 resolution. For each input image of size 3 × 512 × 512, a neural texture of size 21 × 256 × 256 was generated. In this neural texture, the first 16 channels were generated by the G generator of the trained E encoder network - the G generator, the next three channels were RGB channels, and the remaining two channels were sampling and finishing masks. Generator G has a StyleGAN2 architecture and takes a feature vector as input , generated by encoder E of the trained network of encoder E -generator G. Encoder E has a StyleGAN2 discriminator architecture with a modified head to output a vector of length 512. The resulting texture was applied to the SMPL-X model and rasterized. The rasterized image had a size of 21 × 512 × 512 and was fed to the neural renderer, which has a U-Net architecture with ResNet blocks. The output of neural renderer B was a final image with a resolution of 3 × 512 × 512. Generator G and neural renderer θ were trained end-to-end with a batch size of four. However, the packet size may be greater or less than four.
[0066] Для обучения можно использовать комбинацию одной или нескольких функций потерь (в предпочтительном варианте использовались все следующие функции потерь): потерю L2 различия между реконструированным изображением Irend и соответствующим эталонным изображением IGT, потерю выученного перцептивного сходства между патчами изображения (LPIPS) между рендерным изображением Irend и соответствующим эталонным изображением IGT, ненасыщающую состязательную потерю на основе дискриминатора StyleGAN2 с R1-регуляризацией и потерю Dice между маской спрогнозированной сегментации Spred и маской эталонной сегментации SGT. В предпочтительном варианте использовалась взвешенная сумма вышеупомянутых потерь со следующими весами: потеря L2 различия с весом λ1=2,2; потеря LPIPS с весом λ2=1,0; потеря Dice с весом λ3=1,0; состязательная потеря с весом λ4=0,01. Следует отметить, что представленные выше значения весов не следует понимать в ограничительном смысле, так как данный способ вполне может обеспечить достижение технического результата(ов) с модифицированными весами. Такая модификация будет очевидной для специалиста в данной области после прочтения этого раскрытия. Для каждых 16 итераций применялась ленивая регуляризация R1 с весом λ5=0,1. Для вычисления потери LPIPS брали случайные кадры 256 × 256 из изображений размером 512 × 512. Конвейер сети кодировщика Е - генератора G, диффузионная модель дорисовки и нейронный рендерер θ обучались за 100000 шагов с использованием оптимизатора ADAM со скоростью обучения 2е-3[0066] A combination of one or more loss functions can be used for training (in the preferred embodiment, all of the following loss functions were used): loss L 2 of the difference between the reconstructed image I rend and the corresponding reference image I GT , loss of learned perceptual similarity between image patches (LPIPS) between the render image I rend and the corresponding reference image I GT , a non-saturating adversarial loss based on the StyleGAN2 discriminator with R 1 -regularization, and a Dice loss between the predicted segmentation mask S pred and the reference segmentation mask S GT . In the preferred embodiment, a weighted sum of the above losses was used with the following weights: difference loss L 2 with weight λ1=2.2; loss of LPIPS with weight λ 2 =1.0; Dice loss with weight λ 3 =1.0; adversarial loss with weight λ 4 =0.01. It should be noted that the weight values presented above should not be understood in a restrictive sense, since this method may well achieve the technical result(s) with modified scales. Such modification will be apparent to one skilled in the art upon reading this disclosure. For every 16 iterations, lazy regularization R 1 was applied with a weight λ 5 =0.1. To calculate the LPIPS loss, random frames of 256 × 256 were taken from images of size 512 × 512. The encoder network pipeline E - generator G, the diffusion inpainting model and the neural renderer θ were trained in 100,000 steps using the ADAM optimizer with a learning rate of 2e-3
[0067] Основанный на VQGAN автокодировщик обучали сжимать нейронные текстуры до тензоров 6×64×64, состоящих из векторов длиной шесть из обучаемого словаря с 8192 элементами. Сначала основанный на VQGAN автокодировщик обучали за 300000 шагов. Затем конвейер (с добавленным предобученным основанным на VQGAN автокодировщиком) настраивали сквозным методом за дополнительных 20000 шагов, чтобы уменьшить артефакты нейронного рендерера в при обработке нейронных текстур, обработанных основанным на VQGAN автокодировщиком. После этого диффузионную модель дорисовки обучали восстанавливать отсутствующие части текстуры. В диффузионной модели дорисовки использовалась удаляющая шум архитектура U-Net с остаточными блоками BigGAN для повышающей и понижающей дискретизации и со слоями внимания на трех уровнях иерархии признаков. Чтобы дополнительно исключить переобучение, использовалось прореживание с вероятностью 0,5 в остаточных блоках удаляющей шум архитектуры U-Net. Диффузионную модель дорисовки обучали за 50000 итераций с помощью оптимизатора AdamW с размером пакета 128 и скоростью обучения 1,0е-6.[0067] A VQGAN-based autoencoder was trained to compress neural textures to 6x64x64 tensors consisting of vectors of length six from a trained 8192-element dictionary. First, the VQGAN-based autoencoder was trained in 300,000 steps. The pipeline (with the added pretrained VQGAN-based autoencoder) was then tuned end-to-end in an additional 20,000 steps to reduce neural renderer artifacts when processing neural textures processed by the VQGAN-based autoencoder. After this, the diffusion inpainting model was trained to restore the missing parts of the texture. The diffusion inpainting model used a denoising U-Net architecture with BigGAN residual blocks for upsampling and downsampling and with attention layers at three levels of the feature hierarchy. To further eliminate overfitting, decimation was used with probability 0.5 in the residual blocks of the denoising U-Net architecture. The inpainting diffusion model was trained for 50,000 iterations using the AdamW optimizer with a batch size of 128 and a learning rate of 1.0e-6.
[0068] Для обучения конвейера использовались только 2D-изображения, полученные путем рендеринга набора данных Texel. Генератор G сети кодировщик Е - генератор G и нейронный рендерер θ предварительно обучались на 2D-изображениях 13000 человек в различных позах. Было замечено, что различные позы имеют решающее значение для обучения реалистично анимируемых аватаров. Для каждого изображения получали маску сегментации с использованием сегментации Graphonnomy, а параметрическую модель тела SMPL-X подгоняли с помощью SMPLify-X. Для улучшения формы тела подогнанной параметрической модели тела SMPL-X дополнительно использовали потерю Dice сегментации.[0068] Only 2D images obtained by rendering the Texel dataset were used to train the pipeline. Generator G network encoder E - generator G and neural renderer θ were pre-trained on 2D images of 13,000 people in various poses. It has been observed that different poses are critical for training realistically animated avatars. For each image, a segmentation mask was obtained using Graphonnomy segmentation, and the SMPL-X parametric body model was fitted using SMPLify-X. Dice segmentation loss was additionally used to improve the body shape of the fitted SMPL-X parametric body model.
[0069] Для обучения автокодировщика VGQAN и диффузионной модели дорисовки использовались рендеры из набора данных Texel. Из набора данных Texel было получено 3333 скана человека. На них изображены люди в различной одежде, с различным телосложением, оттенком кожи и полом. Каждый скан подвергали рендерингу с 8 различных видов (или углов обзора камеры) для получения многоракурсного набора данных. Рендеры также дорабатывали путем изменения углов обзора камеры и изменения цвета. Таким образом, на каждого человека в наборе данных получали 72 скана. Следует отметить, что для обучения этой модели подходят любые изображения из различных видов, не обязательно полученные из 3D-сканов.[0069] Renders from the Texel dataset were used to train the VGQAN autoencoder and the diffusion inpainting model. From the Texel dataset, 3333 human scans were obtained. They depict people in different clothes, with different body types, skin tones and genders. Each scan was rendered from 8 different views (or camera angles) to create a multi-view dataset. The renders were also refined by changing camera angles and changing colors. Thus, 72 scans were obtained for each person in the data set. It should be noted that any images from different species are suitable for training this model, not necessarily obtained from 3D scans.
[0070] Сгенерированные аватары и их анимации оценивались качественно на наборе данных AzurePeople. Этот набор данных содержит людей в различной одежде, стоящих в естественных позах. Кроме того, обученный конвейер оценивался количественно на общедоступном бенчмарке SnapshotPeople. Он содержит 24 видео, на которых люди вращаются в позе А. Из каждого видео отбирались кадры с видом спереди и сзади, чтобы измерить точность реконструкции вида сзади. Для каждого изображения получали маску сегментации и подгонку SMPL-X, как было описано выше.[0070] The generated avatars and their animations were qualitatively evaluated on the AzurePeople dataset. This dataset contains people wearing various clothes and standing in natural poses. Additionally, the trained pipeline was quantified on the publicly available SnapshotPeople benchmark. It contains 24 videos of people spinning in pose A. From each video, frames from the front and back views were selected to measure the accuracy of the reconstruction of the rear view. For each image, a segmentation mask and SMPL-X fit were obtained as described above.
[0071] Количественные результаты. В следующей таблице 1 представлено количественное сравнение:[0071] Quantitative results. The following Table 1 provides a quantitative comparison:
Таблица 1: Сравнение метрик на бенчмарке SnapshotPeople. Описанный способ сравнивается не только с другими подходами на основе параметрических моделей (StylePeople), но и с подходами, восстанавливающими геометрию и требующими использования дополнительных методов для риггинга (PIFu, Phorhum) или восстановления геометрии в канонической позе (ARCH, ARCH++). Table 1: Comparison of metrics on the SnapshotPeople benchmark. The described method is compared not only with other approaches based on parametric models (StylePeople), but also with approaches that restore geometry and require the use of additional methods for rigging (PIFu, Phorhum) or restoration of geometry in a canonical pose (ARCH, ARCH++).
[0072] Авторы настоящего изобретения сравнили изобретение с различными способами создания аватара из одного изображения, в том числе требующими дополнительных этапов риггинга для анимации. Для ясности приведенная выше таблица 1 разделена на три части. PIFu и PHORHUM восстанавливают 3D-сетку человека в позе, показанной на входном изображении. Это накладывает строгие ограничения на позу человека на входном изображении при желании его анимировать. ARCH и ARCH++ восстанавливают 3D-сетку в каноническом пространстве, на которой легче осуществить риггинг и анимацию. StylePeople и настоящее изобретение основаны на параметрической модели человека, поэтому их легче всего анимировать, и на них не влияют несовершенства риггинга.[0072] The present inventors compared the invention to various methods for creating an avatar from a single image, including those requiring additional rigging steps for animation. For clarity, Table 1 above is divided into three parts. PIFu and PHORHUM reconstruct a 3D mesh of a person in the pose shown in the input image. This places strict restrictions on the pose of the person in the input image if you want to animate it. ARCH and ARCH++ restore the 3D mesh to canonical space, which is easier to rig and animate on. StylePeople and the present invention are based on a parametric human model, so they are the easiest to animate and are not affected by rigging imperfections.
[0073] В публикациях сообщается о ряде метрик для численной оценки сгенерированных аватаров, а именно: многомасштабное структурное сходство (MS-SSIM ↑), пиковое отношение сигнал-шум (PSNR↑), потеря выученного перцептивного сходства между патчами изображения (LPIPS↓). Эти эталонные метрики измеряются на аватарах видов спереди для общедоступного бенчмарка SnapshotPeople. Согласно этим метрикам для вида спереди предлагаемый способ работает наравне с методами без риггинга. Для оценки качества вида сзади (и, следовательно, возможности обобщения в новые виды) сообщаются измерения образования ядра (KID↓). Эта метрика позволяет оценить качество сгенерированных изображений и больше подходит для небольших объемов данных, чем FID. Предложенный способ выдал самое высокое значение KID по сравнению с другими способами. Для оценки показателя реидентификации сохранения идентичности (ReID↓) использовалась мера на основе модели FlipReID для реидентификации человека. Предлагаемый способ дал наилучшие результаты в сохранении идентичности человека между видами спереди и сзади. Для дополнительной проверки качества текстур и измерения структурного сходства в случаях с невыровненными эталонными изображениями использовалась мера глубокого сходства структуры и текстуры изображения Deep Image Structure and Texture Similarity (DISTS↓). В таблице 1 приведены измерения для вида спереди и сзади. Предлагаемый способ выдал наиболее естественно выглядящие аватары для обоих видов.[0073] A number of metrics have been reported for the numerical evaluation of generated avatars, namely: multi-scale structural similarity (MS-SSIM↑), peak signal-to-noise ratio (PSNR↑), loss of learned perceptual similarity between image patches (LPIPS↓). These benchmark metrics are measured on front view avatars for the SnapshotPeople public benchmark. According to these metrics, for the front view, the proposed method performs on par with methods without rigging. To assess the quality of the rear view (and thus the ability to generalize to new views), kernel formation measurements (KID↓) are reported. This metric evaluates the quality of the generated images and is more suitable for small amounts of data than FID. The proposed method produced the highest KID value compared to other methods. A measure based on the FlipReID model of person reidentification was used to estimate the identity preservation reidentification score (ReID↓). The proposed method gave the best results in preserving the identity of a person between front and back views. To further check texture quality and measure structural similarity in cases with unaligned reference images, the Deep Image Structure and Texture Similarity (DISTS↓) measure was used. Table 1 shows measurements for front and rear views. The proposed method produced the most natural-looking avatars for both species.
[0074] При этом предлагаемый способ реалистично реконструирует текстуру ткани одежды на спине (например, складки на брюках), что повышает реалистичность рендеров. Использование всей информации из данного изображения позволяет не копировать ненужные узоры из вида спереди в вид сзади (как это обычно делается методами выравнивания по пикселям при восстановлении текстуры для вида сзади). Использование выбранной RGB текстуры в качестве дополнения к нейронной текстуре позволяет добиться фотореалистичных деталей лица и сохранить высокочастотные детали. Было замечено, что PIFu точно воспроизводит цвет аватара и хорошо восстанавливает геометрию. Однако этот метод не сохраняет высокочастотные детали, из-за чего аватарам не хватает фотореализма. PHORHUM создает очень фотореалистичные аватары, но часто страдает от цветовых сдвигов. Еще одним методологическим недостатком данного подхода является отсутствие априорной информации для тела человека. Поэтому модель может переобучаться на человеческих позах из обучающего набора данных, что может привести к некорректной работе с новыми позами. Аватары, сгенерированные ARCH, содержат сильные цветовые артефакты и подвержены ошибкам восстановления геометрии. ARCH++ значительно улучшает геометрию и качество цвета для вида спереди, но вид сзади по-прежнему страдает от смещения цвета и артефактов. Аватар по методу StylePeople основан на параметрической модели человека и может легко анимироваться без применения сторонних методов или дополнительного риггинга. Однако охват скрытого пространства их модели ограничен, что приводит к переобучению и плохому обобщению для новых людей при выполнении вывода на основе одного вида.[0074] In this case, the proposed method realistically reconstructs the texture of the fabric of clothing on the back (for example, folds on trousers), which increases the realism of renderings. Using all the information from a given image avoids copying unnecessary patterns from the front view to the rear view (as is typically done by pixel alignment methods when reconstructing texture for the rear view). Using a selected RGB texture as a complement to a neural texture allows for photorealistic facial detail while preserving high-frequency detail. PIFu was observed to accurately reproduce avatar color and perform good geometry reconstruction. However, this method does not preserve high-frequency details, causing avatars to lack photorealism. PHORHUM creates very photorealistic avatars, but often suffers from color shifts. Another methodological disadvantage of this approach is the lack of a priori information for the human body. Therefore, the model may be overtrained on human poses from the training dataset, which may lead to incorrect work with new poses. Avatars generated by ARCH contain strong color artifacts and are prone to geometry reconstruction errors. ARCH++ significantly improves the geometry and color quality of the front view, but the rear view still suffers from color shift and artifacts. An avatar using the StylePeople method is based on a parametric human model and can be easily animated without the use of third-party methods or additional rigging. However, the latent space coverage of their model is limited, leading to overfitting and poor generalization to new people when performing inference from a single view.
[0075] В настоящем документе раскрыт новый способ для моделирования человеческих аватаров на основе нейронных текстур, которые объединяют компоненты RGB и скрытые компоненты. Компоненты RGB используются для сохранения высокочастотных деталей, а нейронные компоненты добавляют волосы и одежду к базовой сетке SMPL-X. Использование параметрической модели SMPL-X в качестве основы позволяет легко анимировать полученный аватар. Предлагаемый способ восстанавливает отсутствующие части текстуры с помощью адаптированной диффузионной платформы для дорисовки таких текстур. Таким образом, данный метод позволяет создавать аватары с построенным скелетом, повышая также качество рендеринга ненаблюдаемых на изображении частей тела по сравнению с современными методами реконструкции человеческих моделей без построения скелета.[0075] Disclosed herein is a new method for modeling human avatars based on neural textures that combine RGB components and hidden components. RGB components are used to preserve high-frequency details, and neural components add hair and clothing to the base SMPL-X mesh. Using the SMPL-X parametric model as a basis makes it easy to animate the resulting avatar. The proposed method restores missing parts of the texture using an adapted diffusion platform for completing such textures. Thus, this method allows you to create avatars with a constructed skeleton, also improving the quality of rendering of body parts that are not visible in the image compared to modern methods for reconstructing human models without constructing a skeleton.
[0076] Специалисту будет также понятно, что различные иллюстративные логические блоки и этапы, представленные в вариантах осуществления изобретения, могут быть реализованы электронными аппаратными средствами, компьютерным программным обеспечением или их комбинацией. Выбор реализации этих функций с помощью аппаратных или программных средств зависит от конкретных применений и проектных требований ко всей системе. Специалист в данной области может использовать различные методы для реализации описанных функций для каждого конкретного применения, но не следует считать, что такая реализация выходит за пределы объема вариантов осуществления данного приложения.[0076] One skilled in the art will also appreciate that the various illustrative logical blocks and steps presented in embodiments of the invention may be implemented by electronic hardware, computer software, or a combination thereof. The choice to implement these functions in hardware or software depends on the specific application and design requirements for the overall system. One skilled in the art may use various techniques to implement the described functionality for each particular application, but such implementation should not be considered beyond the scope of embodiments of a given application.
[0077] В настоящем изобретении также предложен энергонезависимый машиночитаемый носитель данных. Машиночитаемый носитель хранит машиноисполняемые инструкции и параметры, включающие в себя, по меньшей мере, веса и смещения обученного конвейера сети кодировщика Е - генератора G, диффузионной модели дорисовки и нейронного рендерера θ, причем выполнение машиноисполняемых инструкций вычислительным устройством (например, описанным выше вычислительным устройством 50) побуждает это вычислительное устройство выполнять способ создания анимируемого аватара человека в полный рост из одного изображения этого человека в соответствии с первым аспектом настоящего изобретения или любым его развитием.[0077] The present invention also provides a non-transitory computer-readable storage medium. The computer-readable medium stores computer-executable instructions and parameters including at least the weights and biases of a trained encoder network pipeline E - generator G, a diffusion infusion model, and a neural renderer θ, wherein the computer-executable instructions are executed by a computing device (e.g., the computing device 50 described above ) causes this computing device to perform a method of creating a life-size animated avatar of a person from a single image of that person in accordance with the first aspect of the present invention or any development thereof.
[0078] Все или некоторые из описанных вариантов осуществления могут быть реализованы с использованием программных средств, аппаратных средств, программно-аппаратных средств или любой их комбинации. При использовании программных средств для реализации вариантов осуществления, эти варианты осуществления могут быть реализованы полностью или частично в виде машиноисполняемых инструкций. При загрузке машинных инструкций и их исполнении на вычислительном устройстве полностью или частично генерируются процедура или функции в соответствии с вариантами осуществления. Машинные инструкции могут храниться на машиночитаемом носителе данных или могут передаваться с машиночитаемого носителя данных на другой машиночитаемый носитель данных. Например, машинные инструкции могут передаваться с веб-сайта, вычислительного устройства, сервера или дата-центра на другой веб-сайт, вычислительное устройство, сервер или дата-центр по проводной линии связи (например, коаксиальному кабелю, оптоволоконному кабелю или цифровой абонентской линии (DSL)) или беспроводной линии связи (например, инфракрасной, радио или СВЧ). Машиночитаемый носитель данных может быть любым подходящим носителем, к которому может осуществлять доступ вычислительное устройство, или устройством хранения данных, например, сервером или дата-центром с интегрированным одним или несколькими пригодными носителями. Подходящим носителем может быть магнитный носитель (например, гибкий диск, жесткий диск или магнитная лента), оптический носитель (например, цифровой видеодиск (DVD)), полупроводниковый носитель (например, твердотельный накопитель (SSD)) или тому подобное.[0078] All or some of the described embodiments may be implemented using software, hardware, firmware, or any combination thereof. When software is used to implement the embodiments, the embodiments may be implemented in whole or in part as computer-executable instructions. When machine instructions are downloaded and executed on a computing device, a procedure or functions are generated, in whole or in part, in accordance with the embodiments. The machine instructions may be stored on a computer-readable storage medium or may be transmitted from a computer-readable storage medium to another computer-readable storage medium. For example, machine instructions may be transmitted from a website, computing device, server, or data center to another website, computing device, server, or data center over a wired communications link (e.g., coaxial cable, fiber optic cable, or digital subscriber line (DSL). DSL)) or wireless communication line (for example, infrared, radio or microwave). A computer-readable storage medium can be any suitable medium that can be accessed by a computing device or data storage device, such as a server or data center integrated with one or more suitable media. Suitable media may be magnetic media (eg, floppy disk, hard disk, or magnetic tape), optical media (eg, digital video disc (DVD)), semiconductor media (eg, solid state drive (SSD)), or the like.
[0079] Также следует отметить, что порядок выполнения этапов раскрытого способа не является строгим, т.е. некоторые (один или несколько) этапы можно поменять местами и/или объединить. Во всех материалах настоящего описания ссылка на элемент в единственном числе не исключает наличия нескольких таких элементов при фактическом осуществлении изобретения, и, наоборот, ссылка на элемент во множественном числе не исключает наличие всего одного такого элемента при фактическом осуществлении изобретения. Любое значение упомянутых выше параметров не следует интерпретировать в ограничительном смысле, напротив, его следует рассматривать как представляющее среднюю точку определенного диапазона, определяемого как средняя точка ± приблизительно до 20%.[0079] It should also be noted that the order of execution of the steps of the disclosed method is not strict, i.e. some (one or more) stages can be swapped and/or combined. Throughout this specification, reference to an element in the singular does not preclude the presence of several such elements in the actual practice of the invention, and, conversely, reference to an element in the plural does not exclude the presence of just one such element in the actual practice of the invention. Any value of the parameters mentioned above should not be interpreted in a restrictive sense, but rather should be considered as representing the midpoint of a certain range, defined as the midpoint ± up to approximately 20%.
[0080] Приведенные выше описания представляют собой всего лишь конкретные реализации настоящего изобретения, но не предназначены для ограничения объема его защиты. Любое изменение или замена, которую сможет легко предусмотреть специалист в данной области техники в рамках объема, раскрытого в данной заявке, должны подпадать под объем охраны данного изобретения. Таким образом, объем защиты настоящего изобретения устанавливается в соответствии с объемом защиты формулы изобретения.[0080] The above descriptions are merely specific implementations of the present invention and are not intended to limit the scope of its protection. Any change or substitution that can be readily contemplated by one skilled in the art within the scope disclosed in this application shall fall within the scope of protection of this invention. Thus, the scope of protection of the present invention is established in accordance with the scope of protection of the claims.
Claims (50)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/IB2023/059427 WO2024095077A1 (en) | 2022-11-02 | 2023-09-25 | Method of generating fullbody animatable person avatar from single image of person, computing device and computer-readable medium implementing the same |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2022128498 Division | 2022-11-02 | 2022-11-02 |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2813485C1 true RU2813485C1 (en) | 2024-02-12 |
Family
ID=
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2720361C1 (en) * | 2019-08-16 | 2020-04-29 | Самсунг Электроникс Ко., Лтд. | Multi-frame training of realistic neural models of speakers heads |
WO2020096403A1 (en) * | 2018-11-09 | 2020-05-14 | Samsung Electronics Co., Ltd. | Textured neural avatars |
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020096403A1 (en) * | 2018-11-09 | 2020-05-14 | Samsung Electronics Co., Ltd. | Textured neural avatars |
RU2720361C1 (en) * | 2019-08-16 | 2020-04-29 | Самсунг Электроникс Ко., Лтд. | Multi-frame training of realistic neural models of speakers heads |
Non-Patent Citations (2)
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kopanas et al. | Point‐Based Neural Rendering with Per‐View Optimization | |
Yifan et al. | Differentiable surface splatting for point-based geometry processing | |
Yariv et al. | Bakedsdf: Meshing neural sdfs for real-time view synthesis | |
Weiss et al. | Volumetric isosurface rendering with deep learning-based super-resolution | |
Kopf et al. | One shot 3d photography | |
US9317970B2 (en) | Coupled reconstruction of hair and skin | |
Weng et al. | Vid2actor: Free-viewpoint animatable person synthesis from video in the wild | |
CN111194550B (en) | Processing 3D video content | |
Rosu et al. | Neural strands: Learning hair geometry and appearance from multi-view images | |
Svitov et al. | Dinar: Diffusion inpainting of neural textures for one-shot human avatars | |
US11727628B2 (en) | Neural opacity point cloud | |
US20230031750A1 (en) | Topologically consistent multi-view face inference using volumetric sampling | |
Kim et al. | Chupa: Carving 3d clothed humans from skinned shape priors using 2d diffusion probabilistic models | |
CN115100334A (en) | Image edge drawing and animation method, device and storage medium | |
Feng et al. | Learning disentangled avatars with hybrid 3d representations | |
Hu et al. | Cloth texture preserving image-based 3D virtual try-on | |
Hu et al. | Humanliff: Layer-wise 3d human generation with diffusion model | |
Figueirêdo et al. | Frame interpolation for dynamic scenes with implicit flow encoding | |
Shaw et al. | Swags: Sampling windows adaptively for dynamic 3d gaussian splatting | |
RU2813485C1 (en) | Method of creating full-length animated avatar of person from one image of person, computing device and machine-readable medium for implementation thereof | |
Hahlbohm et al. | INPC: Implicit Neural Point Clouds for Radiance Field Rendering | |
Sun et al. | Efficient ray sampling for radiance fields reconstruction | |
WO2024095077A1 (en) | Method of generating fullbody animatable person avatar from single image of person, computing device and computer-readable medium implementing the same | |
Hahlbohm et al. | PlenopticPoints: Rasterizing Neural Feature Points for High-Quality Novel View Synthesis. | |
US10922872B2 (en) | Noise reduction on G-buffers for Monte Carlo filtering |