Выбрать главу

А у нашего нейродисплея допустимая зона достаточно большая. На выставках по два-три человека одновременно смотрят. Кто по центру, тот вообще классно видит, кто сбоку — чуть похуже (у границы экрана заметно, что есть два раздельных изображения). Отошел подальше — вообще видно прекрасно.

А у вас были еще какие-нибудь проекты с использованием GPU? Нейросетей на GPU?

— Были еще две задачи, связанные с 3D. Во-первых, проекционная система, в которой объем также был виден без очков. В ней использовались четыре проектора, находившиеся на расстоянии нескольких метров от специального экрана. Поскольку проекторы были разнесены по горизонтали на десятки сантиметров, при сведении в одну область экрана возникали трапецеидальные искажения. Для их компенсации был разработан специальный алгоритм. На каждый проектор по очереди выводился тестовый прямоугольник, фиксировавшийся камерой. Изображение анализировалось программой, определявшей координаты углов прямоугольника, а затем рассчитывались координаты плоскости, на которую нужно спроецировать изображение для компенсации искажений. После этого на проекторы выводились результаты наложения исходных изображений на соответствующие плоскости, полученные с помощью DirectX.

Вторая задача была связана с преобразованием обычных фильмов в объемные. В мире существует несколько компаний, которые могут это делать, но только с помощью оператора-человека. Нам удалось разработать алгоритмы, позволяющие с неплохим качеством преобразовывать 2D в 3D в реальном времени. Здесь тоже не обошлось без GPU и DirectX.

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

В прошлом году у меня на ВМиК была дипломница, Маша Карасева, мы с ней решали задачу восстановления структуры плазмы в установках ТОКАМАК по видеоизображению. Она, правда, использовала OpenGL, и скорость там была, конечно, не такая высокая, как в DirectX, но основные принципы те же самые.

Задача такова: по снимку плазмы, имеющей форму тора, нужно установить ее внутреннюю структуру. Задачи такого типа называются обратными: нам известен результат, и нужно узнать, при каких условиях он получен. Прямая задача проста: каждый слой плазмы светится по-разному, и если нам известно сечение плазмы, можно построить набор вложенных тороидальных поверхностей с заданной прозрачностью и потом «нарисовать» полученный объект, например с помощью OpenGL. Нас же интересовала обратная задача — получение сечения плазмы. Для ее решения сечение в начальный момент формировалось случайным образом, и по нему решалась прямая задача — получение «фотографии» плазмы. Построенное изображение сравнивалось с реальным, вычислялись отличия, сечение корректировалось, и так далее, до достижения необходимой точности.

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

Кстати, я считаю, что вообще многие задачи, родственные томографии, естественным образом ложатся на карту. На кафедре математической физики факультета ВМиК группа профессора А. В. Гончарского занималась проблемами вычислительной диагностики, в том числе и контролем печатных плат. Платы уже давно стали многослойными, и если появлялся брак во внутренних слоях, его невозможно было увидеть. Платы просвечивали под разными углами и решали задачу томографии: восстанавливали структуру каждого слоя. И дальше уже смотрели, какова толщина дорожек, конфигурация и пр. Расчеты проводили еще на БЭСМ-6, и алгоритм работал часами. А на GPU можно делать контроль практически в реальном времени.

Кстати, мы с коллегами разработали венчурный проект, осуществление которого может помочь обогнать зарубежных производителей, не догоняя их. Речь идет об объемном телевизоре. Дело в том, что сейчас практически нет стереоконтента, а уж телевизионное стереовещание — дело будущего. Наш стереотелевизор сможет принимать обычные программы, преобразовывать их в реальном времени в объемные, проводить необходимые расчеты и выводить изображения на стереоэкран. Примитивный прототип такой системы был создан нами пару лет назад на обычном компьютере, в который вставили карту TV-тюнера и подключили к нейродисплею. Видеокарта вполне справлялась и с преобразованием 2D в 3D, и с расчетами изображений для нейродисплея. Дело осталось за малым — доработать алгоритмы, зашить их в чипы, а главное — найти венчурного капиталиста, кто бы все это финансировал…