СПОСОБ ГЕНЕРАЦИИ ТРЁХМЕРНЫХ ОБЛАКОВ ТОЧЕК Российский патент 2021 года по МПК G06N3/08 

Описание патента на изобретение RU2745445C1

ОБЛАСТЬ ТЕХНИКИ

Настоящее техническое решение относится к области вычислительной техники, в частности, к компьютерно-реализованному способу обучения нейросетевой модели для генерации трехмерных облаков точек.

УРОВЕНЬ ТЕХНИКИ

Сбор и разметка трехмерных облаков точек часто представляет собой нетривиальную задачу.

Существующие наборы данных имеют ограниченный размер и разнообразие. В тоже время, для обучения глубоких нейронных сетей требуются большие массивы данных. Здесь возникает потребность в том, чтобы генерировать синтетические данные облаков точек.

Методы генерации трехмерных облаков точек можно разделить на условные и безусловные.

При безусловной генерации нейронная сеть создает новое облако точек из вектора случайного шума. Так, в работе [1] предлагается использовать генеративные состязательные нейронные сети.

Недостатком работы является то, что модель не позволяет генерировать облака точек высокого разрешения.

В условных методах облако точек создается на основе входного объекта. Так, в работах [2] и [3], в качестве входного объекта, авторы рассматривают изображения.

Недостатком такого подхода является то, что для обучения таких моделей требуются изображения.

В предлагаемом техническом решении устраняются вышеуказанные недостатки, а также нейросетевая модель может генерировать трехмерные облака точек безусловно.

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

Технической проблемой, на решение которой направлено заявленное техническое решение, является создание компьютерно-реализованного способа обучения нейросетевой модели для генерации трехмерных облаков точек.

Технический результат заключается в создании более плотных и качественных трехмерных облаков точек.

В предпочтительном варианте реализации заявлен компьютерно-реализованный способ обучения нейросетевой модели для генерации трехмерных облаков точек, содержащий этапы, на которых:

генерируют облако точек путем совмещения нескольких автокодировщиков и нескольких генеративно-состязательных сетей;

на вход каждого автокодировщика подают облако точек, которое кодируют в вектор в скрытом пространстве,

генеративно-состязательные сети, обучаются на случайном векторе в скрытом пространстве;

на вход каждого декодировщика подают сгенерированный вектор, который декодируют в матрицу, на выходе каждого декодировщика получают облако точек;

отличающийся тем, что все автокодировщики и все генеративно-состязательные сети совмещаются в иерархическую структуру, связываясь оператором удваивания количества точек.

ОПИСАНИЕ ЧЕРТЕЖЕЙ

Реализация изобретения будет описана в дальнейшем в соответствии с прилагаемыми чертежами, которые представлены для пояснения сути изобретения и никоим образом не ограничивают область изобретения. К заявке прилагаются следующие чертежи:

Фиг. 1 иллюстрирует обучение кодировщика.

Фиг. 2 иллюстрирует обучение декодировщика.

Фиг. 3 иллюстрирует обучение автокодировщика.

Фиг. 4 иллюстрирует обучение генеративно-состязательных сетей.

Фиг. 5 иллюстрирует блок-схему предлагаемого технического решения.

Фиг. 6 иллюстрирует пример работы автокодировщика.

Фиг. 7 иллюстрирует пример работы предлагаемого технического решения.

ДЕТАЛЬНОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ

В приведенном ниже подробном описании реализации изобретения приведены многочисленные детали реализации, призванные обеспечить отчетливое понимание настоящего изобретения. Однако, квалифицированному в предметной области специалисту, будет очевидно каким образом можно использовать настоящее изобретение, как с данными деталями реализации, так и без них. В других случаях хорошо известные методы, процедуры и компоненты не были описаны подробно, чтобы не затруднять понимание особенностей настоящего изобретения.

Кроме того, из приведенного изложения будет ясно, что изобретение не ограничивается приведенной реализацией. Многочисленные возможные модификации, изменения, вариации и замены, сохраняющие суть и форму настоящего изобретения, будут очевидными для квалифицированных в предметной области специалистов.

Настоящее изобретение направлено на обеспечение компьютерно-реализованного способа обучения нейросетевой модели для генерации трехмерных облаков точек.

Для обучения нейросетевой модели для генерации синтетических трехмерных облаков точек используется набор данных ShapeNet. Обучение нейросетевой модели может проходить как на отдельных классах объектов (самолет, стул, стол, машина и диван), так и на всех классах одновременно.

В качестве входных данных для нейросетевой модели используется набор данных облаков точек. Каждое облако представляет из себя матрицу размера N×3, где N - количество точек.

В качестве выходных данных получают синтетическое облако точек.

Для получения синтетических облаков точек, в заявленном способе, совмещают между собой несколько нейросетевых моделей, а именно автокодировщик и генеративно-состязаетльные сети.

Автокодировщик представляет из себя нейросетевую модель, состоящую из двух нейронных сетей: кодировщика Е (Фиг. 1) и декодировщика D (Фиг. 2). Целью автокодировщика является обучение Е и D таким образом, чтобы результат выполнения функции D(E(x)) был близок к х по метрике псевдо дистанции Чамфера, где х - это входное облако точек.

Кодировщик принимает на вход облако точек, которое в программе представляется как матрица из чисел размера (N×3), где N - количество точек. Каждая точка это вектор размерности 3. Кодировщик состоит из 5-ти линейных слоев, в котором каждый линейный слой - это линейное преобразование входного вектора: умножение его на матрицу весов.

Линейные слои представляют из себя матрицы весов размеров 3×64, 64×128, 128×128, 128×256, 256×128 соответственно. Между линейными слоями присутствуют так называемые слои

LeakyReLU функция текучей исправленной линейной модульной активации, где любое входное значение меньше чем ноль умножается на фиксированный масштабный коэффициент.

После всех слоев нейронной сети каждая точка стала иметь размерность 128. Таким образом, матрица данных начинает иметь размер (N×128), где N - количество точек в облаке. Далее применяется функция максимума по количеству точек. Другими словами, из матрицы размером N×128 получается вектор размера 128, состоящий из максимальных значений столбцов.

Декодировщик состоит из трехлинейных слоев с матрицами весов 128×256, 256×256, 256×3N соответственно. На выходе получается вектор размера 3N. Далее этот вектор делится на 3 части и составляется в матрицу размера 3×N. Итоговая матрица представляет из себя облако точек на выходе.

Для того, чтобы понять, насколько различаются два облака точек, которые были поданы на вход кодировщика и получены на выходе декодировщика, необходимо задать функцию потерь. В предложенном решении используется псевдо дистанция Чамфера (Chamfer pseudo-distance), которая суммирует квадраты расстояний между точками из одного множества и ближайшими к ней точками из другого множества.

Здесь S1 и S2 представляют из себя два облака точек. Для каждой точки из одного облака считается расстояние до ближайшей точки в другом облаке. Так в первом слагаемом для каждой точки х из облака S1 находится расстояние до ближайшей точки у из облака S2. Все расстояния суммируются. Во втором слагаемом для каждой точки х из облака S2 находится расстояние до ближайшей точки у из облака S1. Все расстояния также суммируются.

Обучение автокодировщика происходит путем минимизации псевдо дистанции Чамфера (Фиг. 3) между входным облаком точек и облаком точек на выходе декодировщика. Параметрами минимизации выступают матрицы весов кодировщика и декодировщика.

Генеративные состязательные нейронные сети - это нейросетевая модель проиллюстрированная на Фиг. 4. Она состоит из двух нейронных сетей: генератора и дискриминатора. Целью генератора является генерация синтетических объектов. В качестве входа генератор принимает вектор, состоящий из случайных чисел из нормального распределения. В качестве выхода генератор выдает объект, схожий по структуре с объектами в обучающей выборке.

Генератор представляет из себя нейронную сеть, состоящую из двух линейных слоев с матрицами весов размера 128×256 и 256×128 соответственно. Каждый линейный слой представляет из себя линейное преобразование входа.

Цель дискриминатора отличить настоящие объекты (объекты из обучающей выборки) от объектов, созданных генератором. Дискриминатор представляет из себя нейронную сеть, состоящую из трех линейных слоев с матрицами весов размера 128×256, 256×512 и 512×1 соответственно. На выходе дискриминатор выдает класс объекта: real или fake. Класс real обозначает объекты из обучающей выборки. Класс fake - объекты, полученные от генератора.

Во время обучения цель генератора - "обмануть" дискриминатор, т.е. сделать так, чтобы он ошибся в предсказаниях. С другой стороны, цель дискриминатора - научиться отличать реальные объекты от сгенерированных.

Во время обучения цель дискриминатора - научиться отличать реальные объекты от сгенерированных. Цель генератора - обмануть дискриминатор, т.е. сделать так, чтобы он ошибся в предсказаниях и не смог отличить реальные объекты от сгенерированных. Во время обучения эти две нейросети соревнуются друг с другом. Они обучаются одновременно. В конце обучения генератор становится "сильнее" дискриминатора и может его обмануть. Это будет означать, что генератор создает реалистичные объекты, которые трудно отличить настоящих объектов (объектов из обучающей выборки).

Для того, чтобы сделать компоненту генерации, необходимо совместить использование авто кодировщика и генеративных состязательных сетей Для этого строится модель следующего вида (Фиг. 4). Автокодировщик (402, 404) обучается отдельно на облаках точек. На вход он принимает облако точек (401). На выходе из кодировщика получается вектор в скрытом пространстве (403). На выходе из декодировщика получается облако точек (405), близкое к (401) по псевдо дистанции Чамфера. Пример входа (601) и выхода (602) из автокодировщика представлен на Фиг. 6.

В скрытом пространстве происходит обучение генеративных состязательных нейронных сетей. Генератор (407) принимает на вход вектор случайных значений (406) и переводит его в скрытое пространство (408). Дискриминатор (409) принимает два объекта: выход генератора (408) и вектор для реального объекта (403).

После обучения генератора и дискриминатора генератор начинает выдавать вектора, которые близки к векторам для реальных объектов. Если эти вектора подавать на вход декодировщику (404), то на выходе из него получится облако точек, схожее с настоящим.

В предлагаемом решении схему, предложенную в предыдущем пункте, повторяют несколько раз для разных разрешений, где под разрешением имеется в виду разное количество точек.

Для этого вводится операция x = U(x) (502), которая удваивает количество точек в облаке х (Фиг. 5). Удвоение количества точек на каждой итерации пирамиды Лапласа позволяет поэтапно увеличивать плотность облака точек. В начале генерируеют облака, содержащие 512 точек, затем из них получаем 1024, далее 2048. Таким образом, финальное облако точек становится плотным и высокого качества.

Предположим, есть облако точек Xk-1, полученное на шаге k-1 (501). Необходимо получить облако точек Xk (504) на шаге к. Другими словами, увеличить количество точек в 2 раза. Для этого применяется оператор U (502) удваивания количества точек. Далее применяется схема, показанная на Фиг. 4.

Рассмотрим пример, работы заявленного технического решения, проиллюстрированного на Фиг. 7.

На вход генератора (702) подается вектор случайных значений (701). Данный вектор переводят в скрытое пространство, где генератор и дискриминатор обучаются. После обучения, вектор подают на вход декодировщика (708) и получают облако точек. В тоже время вектор, удваивается посредством оператора удвоения (713) и переходит в следующую нейросетевую модель (706-708), состоящую из автокодировщика и генеративно-состязательных сетей, и проходит все, вышеописанные этапы, последующие вектора также удваиваются (714) и переходят в следующую нейросетевую модель (710-712). Таким образом, получается иерархическая структура всех автокодировщиков и генеративно-состязательных сетей, которые связываются посредством оператора удвоения количества точек. На выходе каждой из моделей получается более плотное и качественное облако точек.

На каждом шаге к имеют возможность как кодировать и декодировать облако точек, а также генерировать новое облако благодаря наличию генератора внутри схемы. Сгенерированные облака точек могут быть использованы для расширения обучающих выборок при обучении нейросетевых моделей для других задач. Например, пусть решается задача классификации облаков точек на два класса: стол и стул. В наборе данных ShapeNet всего 7509 столов и 5778 стульев. Если использовать сгенерированные облака точек, то этот набор можно увеличить до 20000 облаков точек в каждом классе. Это существенно повысит качество работы нейросети.

Далее будет представлена общая схема вычислительного устройства, обеспечивающего обработку данных, необходимую для реализации заявленного решения.

В общем случае устройство содержит такие компоненты, как: один или более процессоров, по меньшей мере одну память, средство хранения данных, интерфейсы ввода/вывода, средство В/В, средства сетевого взаимодействия.

Процессор устройства выполняет основные вычислительные операции, необходимые для функционирования устройства или функциональности одного или более его компонентов. Процессор исполняет необходимые машиночитаемые команды, содержащиеся в оперативной памяти.

Память, как правило, выполнена в виде ОЗУ и содержит необходимую программную логику, обеспечивающую требуемый функционал.

Средство хранения данных может выполняться в виде HDD, SSD дисков, рейд массива, сетевого хранилища, флэш-памяти, оптических накопителей информации (CD, DVD, MD, Blue-Ray дисков) и т.п.Средство позволяет выполнять долгосрочное хранение различного вида информации, например, вышеупомянутых файлов с наборами данных пользователей, базы данных, содержащих записи измеренных для каждого пользователя временных интервалов, идентификаторов пользователей и т.п.

Интерфейсы представляют собой стандартные средства для подключения и работы с серверной частью, например, USB, RS232, RJ45, LPT, COM, HDMI, PS/2, Lightning, FireWire и т.п.

Выбор интерфейсов зависит от конкретного исполнения устройства, которое может представлять собой персональный компьютер, мейнфрейм, серверный кластер, тонкий клиент, смартфон, ноутбук и т.п.

В качестве средств В/В данных в любом воплощении системы, реализующей описываемый способ, должна использоваться клавиатура. Аппаратное исполнение клавиатуры может быть любым известным: это может быть, как встроенная клавиатура, используемая на ноутбуке или нетбуке, так и обособленное устройство, подключенное к настольному компьютеру, серверу или иному компьютерному устройству. Подключение при этом может быть, как проводным, при котором соединительный кабель клавиатуры подключен к порту PS/2 или USB, расположенному на системном блоке настольного компьютера, так и беспроводным, при котором клавиатура осуществляет обмен данными по каналу беспроводной связи, например, радиоканалу, с базовой станцией, которая, в свою очередь, непосредственно подключена к системному блоку, например, к одному из USB-портов. Помимо клавиатуры, в составе средств В/В данных также может использоваться: джойстик, дисплей (сенсорный дисплей), проектор, тачпад, манипулятор мышь, трекбол, световое перо, динамики, микрофон и т.п.

Средства сетевого взаимодействия выбираются из устройства, обеспечивающий сетевой прием и передачу данных, например, Ethernet карту, WLAN/Wi-Fi модуль, Bluetooth модуль, BLE модуль, NFC модуль, IrDa, RFID модуль, GSM модем и т.п.С помощью средств обеспечивается организация обмена данными по проводному или беспроводному каналу передачи данных, например, WAN, PAN, ЛВС (LAN), Интранет, Интернет, WLAN, WMAN или GSM.

Компоненты устройства сопряжены посредством общей шины передачи данных.

В настоящих материалах заявки было представлено предпочтительное раскрытие осуществление заявленного технического решения, которое не должно использоваться как ограничивающее иные, частные воплощения его реализации, которые не выходят за рамки испрашиваемого объема правовой охраны и являются очевидными для специалистов в соответствующей области техники.

[1] - Achlioptas, P., Diamanti, О., Mitliagkas, L, & Guibas, L. (2018, July). Learning Representations and Generative Models for 3D Point Clouds. In International Conference on Machine Learning (pp.40-49).

[2] - Fan, H., Su, H., & Guibas, L. J. (2017). A point set generation network for 3d object reconstruction from a single image. In Proceedings of the IEEE conference on computer vision and pattern recognition (pp. 605-613).

[3] А.Э. Айрапетов, А.А. Коваленко, «Исследование генеративно-состязательных сетей», Политехнический молодежный журнал. 2018. №10

Похожие патенты RU2745445C1

название год авторы номер документа
СПОСОБ СОЗДАНИЯ АНИМИРУЕМОГО АВАТАРА ЧЕЛОВЕКА В ПОЛНЫЙ РОСТ ИЗ ОДНОГО ИЗОБРАЖЕНИЯ ЧЕЛОВЕКА, ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО И МАШИНОЧИТАЕМЫЙ НОСИТЕЛЬ ДЛЯ ЕГО РЕАЛИЗАЦИИ 2023
  • Свитов Давид Вячеславович
  • Гудков Дмитрий Юрьевич
  • Баширов Ренат Маратович
  • Лемпицкий Виктор Сергеевич
RU2813485C1
СИСТЕМА ВОССТАНОВЛЕНИЯ ТРЕХМЕРНОЙ СТРУКТУРЫ ОБРАЗЦА ПОРОДЫ 2018
  • Волхонский Денис Алексеевич
  • Судаков Олег Игоревич
  • Коротеев Дмитрий Анатольевич
  • Муравлева Екатерина Анатольевна
  • Бурнаев Евгений Владимирович
  • Исмаилова Лейла Сабировна
  • Орлов Денис Михайлович
RU2718409C1
СПОСОБ ОБРАБОТКИ ИЗОБРАЖЕНИЙ ОБУЧЕННЫМИ НЕЙРОННЫМИ СЕТЯМИ 2021
  • Бойченко Дмитрий Юрьевич
  • Бырков Игорь Анатольевич
  • Мишин Сергей Александрович
  • Овчинников Игорь Вячеславович
  • Оков Игорь Николаевич
RU2779281C1
НЕЙРОСЕТЕВОЙ ПЕРЕНОС ВЫРАЖЕНИЯ ЛИЦА И ПОЗЫ ГОЛОВЫ С ИСПОЛЬЗОВАНИЕМ СКРЫТЫХ ДЕСКРИПТОРОВ ПОЗЫ 2020
  • Бурков Егор Андреевич
  • Пасечник Игорь Игоревич
  • Лемпицкий Виктор Сергеевич
RU2755396C1
СПОСОБ ФОРМИРОВАНИЯ СИСТЕМЫ УПРАВЛЕНИЯ МОЗГ-КОМПЬЮТЕР 2019
  • Бобе Анатолий Сергеевич
  • Рашков Григорий Вадимович
  • Фастовец Дмитрий Владиславович
RU2704497C1
Способ локального генерирования и представления потока обоев и вычислительное устройство, реализующее его 2020
  • Суворов Роман Евгеньевич
  • Логачева Елизавета Михайловна
  • Лемпицкий Виктор Сергеевич
  • Машихин Антон Евгеньевич
  • Хоменко Олег Игоревич
RU2768551C1
ГЕНЕРАТОРЫ ИЗОБРАЖЕНИЙ С УСЛОВНО НЕЗАВИСИМЫМ СИНТЕЗОМ ПИКСЕЛЕЙ 2021
  • Анохин Иван Александрович
  • Дёмочкин Кирилл Владиславович
  • Хахулин Тарас Андреевич
  • Стеркин Глеб Михайлович
  • Лемпицкий Виктор Сергеевич
  • Корженков Денис Михайлович
RU2770132C1
СПОСОБ ВИЗУАЛИЗАЦИИ 3D ПОРТРЕТА ЧЕЛОВЕКА С ИЗМЕНЕННЫМ ОСВЕЩЕНИЕМ И ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО ДЛЯ НЕГО 2021
  • Севастопольский Артём Михайлович
  • Лемпицкий Виктор Сергеевич
RU2757563C1
СПОСОБ И ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО ДЛЯ ФОРМИРОВАНИЯ ПРАВДОПОДОБНОГО ОТОБРАЖЕНИЯ ТЕЧЕНИЯ ВРЕМЕНИ СУТОЧНОГО МАСШТАБА 2020
  • Стеркин Глеб Михайлович
  • Соловьев Павел Ильич
  • Сильвестров Алексей Сергеевич
  • Харламов Алексей Владиславович
  • Корженков Денис Михайлович
  • Анохин Иван Александрович
  • Хахулин Тарас Андреевич
  • Лемпицкий Виктор Сергеевич
  • Николенко Сергей Игоревич
RU2745209C1
МОДЕЛИРОВАНИЕ ЧЕЛОВЕЧЕСКОЙ ОДЕЖДЫ НА ОСНОВЕ МНОЖЕСТВА ТОЧЕК 2021
  • Григорьев Артур Андреевич
  • Лемпицкий Виктор Сергеевич
  • Захаркин Илья Дмитривич
  • Мазур Кирилл Евгеньевич
RU2776825C1

Иллюстрации к изобретению RU 2 745 445 C1

Реферат патента 2021 года СПОСОБ ГЕНЕРАЦИИ ТРЁХМЕРНЫХ ОБЛАКОВ ТОЧЕК

Изобретение относится к способу обучения нейросетевой модели для генерации трёхмерных облаков точек. Технический результат заключается в генерировании более качественных трехмерных облаков точек. В способе генерируют облако точек путем совмещения нескольких автокодировщиков и нескольких генеративно-состязательных сетей, при этом на вход каждого автокодировщика подают облако точек, которое кодируют в вектор в скрытом пространстве, генеративно-состязательные сети обучаются на векторе случайных значений в скрытом пространстве, где на вход дискриминатора генеративно-состязательной сети подают сгенерированный вектор в скрытом пространстве от генератора генеративно-состязательной сети, а также вектор в скрытом пространстве для реального объекта от кодировщика автокодировщика; на вход каждого декодировщика подают сгенерированный вектор, который сгенерирован в скрытом пространстве от генератора генеративно-состязательной сети после обучения совмещённых автокодировщика и генеративно-состязательной сети, который декодируют в матрицу, на выходе каждого декодировщика получают облако точек; при этом все автокодировщики и все генеративно-состязательные сети совмещаются в иерархическую структуру, повторяя выполнение этапов обучения совмещённых автокодировщика и генеративно-состязательной сети, каждый раз после выполнения которых сгенерированный вектор в скрытом пространстве от генератора генеративно-состязательной сети удваивается, посредством оператора удвоения количества точек, и передается для обучения в следующую нейросетевую модель совмещённых автокодировщика и генеративно-состязательной сети, на выходе которой получают более плотное и качественное облако точек. 7 ил.

Формула изобретения RU 2 745 445 C1

Компьютерно-реализованный способ обучения нейросетевой модели для генерации трёхмерных облаков точек, содержащий этапы, на которых:

генерируют облако точек путем совмещения нескольких автокодировщиков и нескольких генеративно-состязательных сетей, при этом:

на вход каждого автокодировщика подают облако точек, которое кодируют в вектор в скрытом пространстве,

генеративно-состязательные сети обучаются на векторе случайных значений в скрытом пространстве, где на вход дискриминатора генеративно-состязательной сети подают сгенерированный вектор в скрытом пространстве от генератора генеративно-состязательной сети, а также вектор в скрытом пространстве для реального объекта от кодировщика автокодировщика;

на вход каждого декодировщика подают сгенерированный вектор, который сгенерирован в скрытом пространстве от генератора генеративно-состязательной сети после обучения совмещённых автокодировщика и генеративно-состязательной сети, который декодируют в матрицу, на выходе каждого декодировщика получают облако точек;

отличающийся тем, что все автокодировщики и все генеративно-состязательные сети совмещаются в иерархическую структуру, повторяя выполнение этапов обучения совмещённых автокодировщика и генеративно-состязательной сети, каждый раз после выполнения которых сгенерированный вектор в скрытом пространстве от генератора генеративно-состязательной сети удваивается, посредством оператора удвоения количества точек, и передается для обучения в следующую нейросетевую модель совмещённых автокодировщика и генеративно-состязательной сети, на выходе которой получают более плотное и качественное облако точек.

Документы, цитированные в отчете о поиске Патент 2021 года RU2745445C1

Способ формирования архитектуры нейросети для классификации объекта, заданного в виде облака точек, способ ее применения для обучения нейросети и поиска семантически схожих облаков точек 2017
  • Лемпицкий Виктор Сергеевич
  • Клоков Роман Владимирович
RU2674326C2
EP 3396603 B1, 25.12.2019
US 10262243 B2, 16.04.2019
CN 110246166 A, 17.09.2019
PANOS ACHLIOPTAS и др
Переносная печь для варки пищи и отопления в окопах, походных помещениях и т.п. 1921
  • Богач Б.И.
SU3A1

RU 2 745 445 C1

Авторы

Артёмов Алексей Валерьевич

Бурнаев Евгений Владимирович

Волхонский Денис Алексеевич

Игнатьев Савва Викторович

Войнов Олег Ярославович

Егиазарян Ваге Грайрович

Даты

2021-03-25Публикация

2020-01-27Подача