Pull to refresh

Comments 22

Звучит круто. Но откуда она додумывает мелкие детали, которых просто нет на картинке низкого разрешения? В примерах это крючки вешалок в магазине или непонятные шевроны на чердаке домика слева, которые либо неразличимы, либо их вообще нет на исходной картинке.
Тоже об этом подумал. Больше похоже на самообман. Мол, нейросети неким волшебным образом, за счёт обучения на куче материала «додумают» недостающие детали. Но в реальности мы сталкиваемся именно с тем, что пытаемся получить информацию «из ниоткуда». До тех пор пока шаблоны в сети будут подходящими картинка будет приемлемой, но когда возникнет артефакт избавиться от него будет невозможно. Ну или избавление в одном месте будет порождать артефакты в другом.

Чёртов мобильный хабр — попытался прокрутить страницу наверх до статьи, а она решила обновиться и стёрла комментарий.


В общем, смысл такого рода нейросеток в том, что им на вход подаются не только картинка 640×480, но и полноценные текстуры из памяти видеокарты, положение моделек в сцене (чтобы разделять грани смежных объектов), materialId и прочая. По сути — перекладывание работы с блоков растеризации на тензорные ядра.


Но хотелось бы видеть не только картинки "before/after/target", но и попиксельную разницу между "after" и "target" через вычитание.
Впрочем, надо оригинал почитать, может, я что-то неправильно понял.

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

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


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

Тут нет ничего не возможного, если в нейросеть впихнуть достаточно данных. Для одной картинки. Проблема в том, что мы видели как нейросети апскейлят и раскрашивают старые фильмы. Результат может быть хорош, но заметные артефакты проскакивают регулярно и все проекты улучшения фильмов используют ручную доводку. Подозреваю, что это неустранимый недостаток для простых нейросетей (не полноценного ИИ).
А смысл замещать работу блоков растеризации? РОПов на любой видеокарте и так «кот наплакал» в сравнении с числом и площадью других блоков.
Какая-то брехня. Как он шрифт на стене дорисовал из такой каши пикселей?image
Ну так это нейросеть. В неё напихали кучу ракурсов высококачественной картинки и она теперь знает чему соответствует эта каша.
Так в том и дело, что в ролике этого места в высоком разрешении нет.

А в обучающей выборке — есть.

At inference time, our neural network takes as input the rendering attributes (color, depth map and dense motion vectors per frame) of both current and multiple previous frames, rendered at a low resolution. The output of the network is a high-resolution color image corresponding to the current frame. The network is trained with supervised learning. At training time, a reference image that is rendered at the high resolution with anti-aliasing methods, paired with each low-resolution input frame, is provided as the target image for training optimization.


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


Вот откуда. С таким же успехом можно было просто пронумеровать кадры и сопоставить картинку высокого разрешения с номером.
Ну я же цитату из оригинального поста привел не случайно. Там с каждым выходным (в большом разрешении) сопоставляются серия кадров в малом разрешении и еще доп атрибуты моделей (цвета, глубина и векторы движения). Так что переводчик очень сильно все упростил.
При всем уважении — не утверждают они такого в цитируемом тексте. Только то, что на вход сети подают помимо картинки низкого разрешения и предыдущих кадров (что нужно для обеспечения стабильности и плавности работы с видеопотоком) еще другую информацию, которую можно вытащить из движка.

Нейросеть видела что там написано на этапе обучения и по памяти восстановила, я так понял. Тоже обратил внимание на этот текст. Вот если бы текст был динамическим т.е. менялся каждый раз (допустим это часть головоломки в квесте), интересно как в таком случае она справилась?

Нейросеть-это когда персонажу глаз на ж@пе нарисовали, потому что там складка ткани очень похожая. а тут слишком все чистенько.

Это генеративные таким балуются. Тут другое.
Напоминает DLSS от Nvidia где обучали модели по игре, но в DLSS2 они утверждают что одна модель может апсемплить даже ранее неизвестные игры.
Решение очень красивое и открывающее перспективы. Иной взгляд на проблему. Действительно, возможно в каких-то случаях вероятно будет эффективнее дорисовывать кадр нейросетью.

Единственный вопрос насколько метод в этой статье отличается/способен конкурировать с Nvidia DLSS2, который уже в продакшене.

Sign up to leave a comment.

Articles