СПОСОБ ГЕНЕРАЦИИ ТРЁХМЕРНЫХ ОБЛАКОВ ТОЧЕК
METHOD FOR GENERATING THREE-DIMENSIONAL POINT CLOUDS

ОБЛАСТЬ ТЕХНИКИ
Настоящее техническое решение относится к области вычислительной техники, в частности, к компьютерно-реализованному способу обучения нейросетевой модели для генерации трехмерных облаков точек.
УРОВЕНЬ ТЕХНИКИ
Сбор и разметка трехмерных облаков точек часто представляет собой нетривиальную задачу.
Существующие наборы данных имеют ограниченный размер и разнообразие. В тоже время, для обучения глубоких нейронных сетей требуются большие массивы данных. Здесь возникает потребность в том, чтобы генерировать синтетические данные облаков точек.
Методы генерации трехмерных облаков точек можно разделить на условные и безусловные.
При безусловной генерации нейронная сеть создает новое облако точек из вектора случайного шума. Так, в работе [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