Comments 33
Мне одному показалось, что это идентичные картинки? 0_о
Даже URL у них совпадает.
А Вы сделайте с помощью нейросети следующее:

Исходная картинка -> Сжатая -> Восстановленная -> Сжатая ->
Сжатая -> Восстановленная ->
Сжатая -> Восстановленная ->
Сжатая -> Восстановленная ->


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

Реально сделать более наглядно? Выделить области, где потеряна информация, продемонстрировать на изображениях с большим разрешением и т.д.
В данном случае нейросеть работает как архив, перегруппировывая данные. Ухудшение вы получите если плохо ее обучить. А цель автора я так понимаю, как раз и заключалась в том, чтобы доказать наличие возможность сжатия/восстановления информации без больших потерь данных.
Смысл ваших просьб показать плохой вариант, лично мне не понятен. Если вас интересует, можно ли это сделать плохо? То ответ да.
Справа этот мужчина переодетый женщиной выглядит примерно минуты на две старше.
На глаз видно, что правая картинка как бы чуть чётче (заметно по завиткам сверху).

p.s. я правильно понял, что комментарии свелись к обсуждению картинок, т.к. формулы и матрицы в статье никто не понял? :)
В качестве функции активации нейронных элементов F может использоваться как линейная, так и нелинейная функции

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

1) Давайте сразу учтем, что уж коль png срабатывает без потерь по этой картинке с коэффициентом сжатия 74%, то нет никакого смысла применять любой алгоритм сжатия с потерями, который отработает хуже (в статье заявлено сжатие 77%).

2) Поэтому, предлагаю выложить в комментариях образцы, подвергшиеся сжатию со степенью <20%. Это позволит наглядно оценить характер вносимых алгоритмом искажений, и сделать выводы о пригодности данного алгоритма «в реальной жизни».

Пока подробно не вникал в суть, но сразу замечания по оформлению:
1. Нечитаемые формулы из ворда. (Хотя бы крупнее их сделать, местами линии просто пропали, а лучше нормальные формулы в TeX сделать)
2. Кривые отсканированные картинки. (Неужели сложно перерисовать — это 15 минут).
Хоть и обвиняют русскоязычные блоги в неблагодарности по отношению к автору, но в данном случае всё-таки я бы сделал замечание автору за сильный перекос статьи в сторону ненужных теоретических подробностей.
Вместо этого следовало:
1. Взять несколько примеров сжимаемых картинок (природа, портрет, рисунок, белый/розовый шум) и ужать их как можно сильнее, чтобы понять как и насколько вылезающие артефакты соотносятся с исходным изображением.
2. Объяснить почему для реализации был выбран именно Clojure — не имею ничего против, но почему не Python, C#, Haskell или, простигосподи, Malbolge? С какими сложностями при реализации пришлось столкнуться? Какова производительность в зависимости от размера исходника? Кстати, большой плюс за дублирование реализации на Java — это более user friendly, пока что.
3. Прокомментировать свой вклад в тему — то ли он впервые применил рециркуляционные НС для сжатия изображений, то ли просто взял готовый алгоритм и реализовал его на любимом языке.

Извиняюсь за наезд, просто сам с детства сталкиваюсь с тем что кроме того что нужно добиться результата, нужно уметь правильно его преподносить.
И ещё — не мелковаты ли блоки 3х3 пикселя? :) Может стоило наоборот экстремальные варианты взять типа 128х128 и более?
Only those users with full accounts are able to leave comments. Log in, please.