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

Но вообще хотелось бы чуть больше подробностей по тому, как она это делает.
А то пока описание технологии выглядит как «берем кучу фоток, загружаем их в нейросеть, перемешиваем и смотрим что получилось».
Телепатирую, что имеется в виду следующее: обучение с учителем сделали в виде интерполяционного схождения на выходе первой картинки ко второй, после чего выход как-то сопоставляется со вторым входом (условно говоря, ее просили «сделай первое похожим на второе… а теперь вот это еще более похожим… и еще… и еще...»).
К слову, это до некоторой степени похоже на самовозбуждение нейросети, когда выход нейросети прямо подается на вход, и нейросеть «видит сны», обрабатывая собственные сгенерированные образы. Только в этом случае нейросеть «видела сны», но с каждой итерацией «сон» становился все более «реалистичным». У меня кстати, когда я всматриваюсь в сгенерированную штукатурку справа, возникает именно ощущение, что я вижу кадр из чьего-то сна — из-за такого же обилия мелких несостыковок, при котором видимое все же выглядит реальным.
Заметил на примере игр SQ от Sierra — пятая часть смотрится отлично. А там 320x200 и не полный экран, так что схематичность изображения весьма серьезная. Но мозг дорисовавает те детали, которых не видно на картинке, но они предполагаются там. Фигурка в десяток переливающихся пикселей вполне воспринимается как идущий человек… А в шестой части приплыли — графика стала детальнее в четыре раза, 640x480, супер-VGA и все такое… при этом вызывает настоящее отвращение. Кажется, «зловещая долина» в действии — слишком детально для того, чтобы запустился механизм достраивания изображения, но слишком схематично, чтобы воспринять эту картинку, как годную саму по себе…
У меня подобные ощущения от современных игр. Совсем уж пиксельная графика, честно говоря, мне кажется месивом, а вот игры где-то ранних 00-х — самое то в плане компромисса между схематичностью и реалистичностью. С одной стороны, достаточно детальные модели и текстуры, чтобы это действительно выглядело как люди, машины и кусты, а с другой — достаточно свободы для воображения, дорисовывающего детали. И по последнему пункту современные игры таки проигрывают тем старым — просто потому, что, когда всё такое из себя супер-HD, минимальные "баги" (типа там волос, проходящих насквозь через щеку) тут же бросаются в глаза (а на лоу-поли модельках этого всего не было, т.к. они сами по себе менее детальны).
То же самое и с текстурами, возможно, в связке с моделями. Одно дело — когда на стене из четырех полигонов такая же размазанная текстура, другое — разные унылые HD-моды, которые лепят на ту же стенку из 4 полигонов текстуру 4096x4096. Всё такое супердетальное, но неестественно плоское / треугольное.
Насчёт текстур совершенно не согласен. Ранний 3D — это текстуры с низким разрешением и объекты с маленьким числом вершин, однако разрешение экрана уже было достаточно хорошим, чтобы все эти косяки были прекрасно видны. В результате у мозга нет возможности придумывать недостающие детали: картинка этому придумыванию активно противостоит.
Скажем, меня безмерно огорчала "эволюция" от WarCraft II к WarCraft III: на замену идеально чёткому пиксель-арту пришёл "кубизм" раннего 3D. И если в миссиях при достаточном отдалении моделей и низком разрешении экрана (800x600) всё было более-менее сносно (и даже был бонус — больше анимаций), то ролики на игровом движке неизменно вызывали содрогание.
По сути, 3D в играх я начал воспринимать не как эволюцию задом наперёд именно тогда, когда до игр добрались высокополигональные модели, захват движения, захват мимики и прочее такое.
Аналогично и с 3D-мультфильмами: какое-то время страдал из-за смены технологии, когда 2D уже умер, а 3D ещё не родился. По сути, приближаться по динамичности и сложности к 2D стали только недавно. Даже когда 3D уже начинал позволять делать качественную картинку, "мультяшность" оставалась за рамками возможностей 3D.
меня безмерно огорчала «эволюция» от WarCraft II к WarCraft III: на замену идеально чёткому пиксель-арту пришёл «кубизм» раннего 3D
Ground Control вышедший раньше третьего Варкрафта — кубизма не имел.
Глянул скриншоты. Модельки юнитов хорошие, земля средней паршивости, деревья ужасны. Тут какое дело: для 3D идеально подходят техника, здания и прочие рукотворные вещи, потому что они изначально угловаты и "никзополигональны". Да и фантастический сеттинг позволяет придумывать модели, не слишком заостряя внимание на похожести на привычные предметы окружения.
У Близзарда с Варкрафтом подобной свободы не было: им приходилось рисовать животных и зверей, которые мало того, что имеют много сложных форм, так ещё и обладают безмерным числом степеней свободы: рука — не башня танка. Кроме того, Близзард всегда старался сделать игры максимально доступными, у них даже современные игры отлично работают на ископаемом железе. Думаю, это тоже убавило вершин.
Вот, можете посмотреть результаты: https://drive.google.com/folderview?id=0B3QDURLCBJrBUUtqVFJodkxZMVE
Зернистости некисло добавляет. И было бы интересно глянуть на изначально некачественных картинках, там в исходниках всё-таки довольно высокое качество.
нет, у вас результат классный, но в статье говорится все-же про другое: НС обучили на других изображениях, и она «угадала», что же должно быть в картинке на самом деле, нашла, например, волосы и форму лица для восстановления пиксельного дума.
Это набор энкодеров от Sparse Autoecnoders + линейный слой, восстанавливающий 3 канала центрального пикселя блока. Я пробовал и другие модели, но слишком часто упирался в производительность железа моего домашнего компьютера (особенно 4 GB на GPU очень мало). Вообще, я занимаюсь этим уже как минимум лет 5.
> нет, у вас результат классный, но в статье говорится все-же про другое: НС обучили на других изображениях, и она «угадала», что же должно быть в картинке на самом деле, нашла, например, волосы и форму лица для восстановления пиксельного дума.
И в чём же «другое»? Или Вы считаете, что я как полнейший профан обучал на том же изображении, на котором тестировал? Единственная разница, которая бросается в глаза: мне в голову не приходило заниматься депикселизацией картинки столь низкого разрешения, как голова персонажа в думе, я ориентируюсь в первую очередь на восстановление фич реально существующих или реалистичных объектов.
А вообще мне очень понравились результаты работы вашей программы. Есть ли шанс пощупать ее самостоятельно? Хотя бы готовую обученную сеть?
На вид выглядит как умный шарп.
Было бы интересно увидеть сравнение со всякими другими фильтрами, типа nnedi, eedi, photoshop smart unsharp.
Кстати, первые (4-5-6) части Звездных войн в оригинальной версии, без переделанных на современном уровне сцен, существует только в виде рипа с видеодиска, а это далеко не Full HD.
Фиг вам. С технологией, закрытой за 20-ю патентами-то...
Жалко, конечно. Картинки многообещающие.
Я многие старые игры с фильтрами играю. Дело вкуса. Как минимум, было бы интересно посмотреть.
Оригинал:

Сглаженная версия:

И спросите, какая ему кажется красивее. Боюсь, что он предпочтет, когда вместо его собственной фантазии изображение до высокого качества дорисовывает компьютер. Ососбенно если компьютер этому хорошенько обучить (на сглаженной картинке есть неправильные места типа черных линий на панцыре черепахи, которые алгоритм «понял» неверно)
P.S. А я бы поиграл в Doom с картинкой, обработанной алгоритмом из статьи. Получился бы такой «акварельный » Doom.
А увеличенную в 2х2 или 3х3 раза картинку вполне можно оставить как есть или обработать таким вот простым фильтром. Причем, что будет предпочтительнее, зависит не только от вкуса, но и от контента. Master of Orion 2 я играл без фильтров. Что-то мелкое фильтры то ли съедали, то ли смазывали.
А при монструозном увеличении рожицы получилось «ни туда, ни сюда». Результат может быть хорош для опознания, но не для постоянного лицезрения. Хочется уменьшить обратно (пусть и не во все 9 раз).


К сожалению, у меня нет «ретины». А то было бы еще в четыре раза крупнее.
Этому алгоритму разрешение не важно — он пытается найти отрезки прямых на изображении.
Но мысль моя была не про конкретный фильтр — я его привел только в качестве иллюстрации того, что хороший «улучшайзер», всё же, понравится зрителю (особенно, современному, без ностальгии) больше, чем пикселизация.
И спросите, какая ему кажется красивее
«Кажется красивее» и «является красивее» — это разные вещи. Первое впечатление может быть обманчиво. Дети любят сладкое, для них вкусное==сладкое. Но такая оценка — это поверхностный подход. С возрастом дети начинают любить, например, сыр или оливки или даже кофе без сахара. Чтобы понять и оценить их вкусность — нужно время и больше практики.
Возьмем два варианта марио, один оригинальный (пикселированный), другой — после фильтра. В первом случае пикселированность картинки является сигналом для мозга: «дорисуй!» И дорисовкой картинки занимается мозг с его мощными нейросетями. Получаем великие и красочные миры в воображении игрока. В случае отфильтрованной картинки дорисовывать нечего — картинка вроде четкая и резкая, без пикселизации. Мозгу дорисовывать нечего, и вот теперь если сравнить дорисованную мозгом первую картинку в восприятии игрока и недорисованную вторую — то неизвестно еще, какая окажется красивее. Как по мне — то первая.
И вообще включать воображение — это не тот навык, которому обучают современных детей. Книжек не читают, игры — прорисованные до деталей.
А их вообще целый ворох: https://en.wikipedia.org/wiki/Image_scaling#Pixel_art_scaling_algorithms
Для разных игр оптимальны разные фильтры. 16-цветный Commander Keen отлично смотрится с AdvMAME или HQ, а Sai, SuperSai и SuperEagle оба заметно мутные и находят лишние узоры. С 256-цветными Aladdin или The Lion King наоборот семейство Sai лучше справляется, а AdvMAME и HQ устраивают треугольную лесенку. На некоторых играх типа WarCraft I все фильтры выглядят ужасно...
И это прекрасно, т.к. на такие элементы нельзя будет оформить авторские права, а, значит, использовать их смогут и другие разработчики.
Хотя то, что делают ребята, всё равно впечатляет. Для старых игр (как начали мечтать выше) это не нужно — для них достаточно было бы методов Photozoom (только все равно что-то никто не использует). В кино тоже давно используют нечто подобное. А вот для более сложных вещей штука классная. Вообще, нейросети перспективная вещь.
Использование сверточных нейросетей — полно научных статей на эту тему с описанием конкретных алгоритмов и открытой реализацией. Так что патенты не должны иметь никакой силы.
Кстати, могу сразу сказать, чем подобные алгоритмы плохи — это нестабильность результат и фликинг. Додумывание несуществующих деталей может привести к тому, что на соседних кадрах видео детали будут достроены по-разному. Реальное видео всегда имеет небольшой шум, поэтому после обработки возможны неприятные эффекты.
Тема улучшения качества изображения для одной картинки конечно же не нова, это называется Single Image Super Resolution и вот. Другое дело, здесь это реализовали с помощью нейросети.
Просто столько замечательных саундтреков игр существует только в виде геймрипов, аж жутко становится.
Я даже грустное фан-письмо сегодня написал Jarrid Mendelson'у по поводу саундтрека к Emperor: Battle for Dune (Ordos) в надежде, что он ответит.
Скорее всего тоже должно быть, ну или по крайней мере такое возможно. Ведь по сути изображение — это тоже сигнал, только в двухмерном пространстве. Для обработки картинок и звука используются похожие алгоритмы.
Ну, смотря какой результат вам нужен. Если чтобы прямо восстановить то, что утеряно — нет. А если вам просто хочется больше высоких частот (которых там теперь нет) — можно отзеркалить спектр от частоты среза, и будет звучать… ну… нормально.
Обычно такой фильтр называют bitcrusher (во всяком случае, название закрепилось в куче популярных реализаций). Если у вас есть под рукой DAW (программа для написания музыки) или аудиоредактор с поддержкой VST, возьмите любой биткрашер из гугла и поиграйтесь на свой вкус. Я для своих целей обычно использую dBlue Glitch, например, но это — не только биткрашер, в нем еще много всего.
Смысл такой: берется частота N кГц, и всё, что ниже нее, отражается наверх. Добрались до 2N — отражается еще раз (т.е. исходное, просто поднятое). И еще раз. И еще раз. И так далее, пока не доберемся до половины частоты дискретизации сигнала.
Звук получается таким "хрустящим", но, если отражать от совсем уж низкой частоты, то он становится совсем уж пережеванным (что, впрочем, вполне используют как спецэффект, но на отдельных звуках, а не на всём треке целиком, само собой).
Уточню: эффект в биткрашере может создаваться разный. Можно убавлять битность звука ("по вертикали"), тогда получается что-то вроде экстремальной компрессии и дисторшена, вместе взятых. Можно убавлять частоту дискретизации ("по горизонтали") и интерполировать значения между оставшимися замерами, тогда, естественно, это работает как ФНЧ. А можно при этом не интерполировать значения между оставшимися замерами, а так и тянуть значение амплитуды до следующей сохранившейся точки. Вместо 1 2 3 4 5 6 7 8 9 10 будет 1 1 1 1 5 5 5 5 9 9… Вот последнее — это как раз то, что вам нужно. Эффект в частотной области — описанное мной многократное отзеркаливание.
Если это действительно нейросеть выполнила такое улучшение исключительно по картинке слева, то сразу можно отправить эту нейросеть на сканирование книжек.
Если вы возьмете просто книгу и будете учить нейросеть «видеть» эту книгу в низком разрешении, она будет вычитывать слова, даже словосочетания (если слова стоят рядом). Размер образа распознавания ограничен только глубиной сети. Какая там глубина — ни я, ни вы не знаем.
https://habrahabr.ru/post/189010/
Вот обработало устройство текст, а содержание исказилось. Что делать?
Довольно давно на github лежит код который ресайхит anime по такому же принципу, статья по которой он написан 2014 года.
Нейросеть обучили самостоятельно дополнять изображения