Обновить

Комментарии 27

Свободные нейросетевые инструменты GFPGAN и Real-ESRGAN радикально решают проблему восстановления резкости изображения, как минимум в «художественной» области.

Это вообще не повод делать из себя "дурачка", который ничего не знает и не умеет. Или повод?

Я не вижу сферы применения описанного в этой статье метода повышения резкости изображения. Если для восстановления фотографии, то нейросетевые инструменты дадут результат, сравнимый с оригиналом, ну, может, ещё чуть приукрасят. Если для использования в какой-нибудь автоматизированной системе обработки изображений, то, раз уж упомянут «специальный математический аппарат», хотелось бы увидеть формулы, по которым выполняются преобразования.

То есть повод. Ну каждому своё. Я вот не стремлюсь быть "дурачком". Почему? Упомянутые нейросети не с неба упали, их написали не "дурачки". А начинали они с простых и очень понятных вещей, типа этой. Формулы же можете вывести из описания итерации сами, по сути это решение нелинейного уравнения методом Ньютона для изображений.

Предобработка перед обработкой нейросетями для лучшего результата

Тут суть имхо не в GIMPе, а в разложении деблюра на простейшие операции с изображением. Такое можно поворачивать и в фотошопе, и в Nuke, и в AfterEffects и другом софте.

Например, этот метод можно превратить в шейдер и деблюрить видео в реалтайме и/или больших разрешениях. Для современной видеокарты такие операции — пыль. Плюс его можно впихивать во всякие ПЛИС и контроллеры с дефицитом вычислительных ресурсов.

Для обычных ситуаций сейчас конечно лучше использовать нейронки, ещё лучше — граф из нейронок в каком‑нибудь ComfyUI. Практика показывает, что наилучшие результаты происходят при комбинации традиционного подхода и нейронок. Но такая комбинация требует танцев с бубном.

Речь в статье не за "можно" или "не можно", а за сделанный непосредственно итерационный процесс в GIMP. Этот процесс сделан. В статье расписано, как он сделан. Можно или не можно его сделать в других редакторах - это проблемы или не проблемы этих самых других редакторов.

Как раз ищу какие-то инструменты, чтобы улучшить старые отсканированные фото, побробовал Real-ESRGAN - он просто не работает, то есть он увеличивает размер фото но это всё что он делает, фото получается с замыленными частями, экспозицию увеличивает так, что детали пропадают местами, короче пользы от него 0. А с увеличением размера фотошоп справляется на порядок лучше.

По поводу фотошопа: Недавно наткнулся на исследовательскую работу, оформленную кодом: https://github.com/ImageProcessing-ElectronicPublications/imgavir . Имеется и "инструмент" (CLI). Хотелось бы иметь сравнение таки с фотошопом, но последнего никогда не имел, да и не планирую (ось "слегка" не та). Как бы провести сравнение?

Нет.

Нейронка неизбежно добавит то, чего не было в оригинале

А если Filters > Enhance > Sharpen (Unsharp Mask) filter? Так хуже результат?

Вы получите первую итерацию из списка. Первая итерация менее плоха, чем пятая?

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

Но! Всё "слегка" хуже, ежели неизвестен размер фильтра размытия (не удалось угадать), или размытие вовсе не Гауссово, а смаз, например.

НЛО прилетело и опубликовало эту надпись здесь

???

Не понял, к чему "это".

А если бы была бесконечная разрядность цвета, можно восставновить полностью оригинал?

Да кто же его знает. Теоретически это решение нелинейного уравнения методом Ньютона для изображений вида:

B = blur(I, r)

где B - имеющееся изображение, r - предполагаемый радиус размытия, blur - предполагаемый метод размытия, а I - искомое изображение.

Сразу видим два "ньюанса": r и blur - предполагаемые, а не известные.

А так по Ньютону в большинстве случаев решение сходится, но не всегда. Но дробные значения яркостей (как минимум float) потребуют прилично так памяти. И надо же не одно изображение в таком виде хранить: размытое (Bk), "серую разность" (Gk), предыдущую итерацию (Ik-1) и текущую итерацию (Ik).

Лет 15 назад мы на форуме обсуждали тему со свёрткой изображения с некоей матрицей для восстановления исходного изображения. Тогда родилась идея - н-р идентифицировать какой-то точечный объект на снимке, который превратился в пятно от нерезкости либо полоску от шевелёнки, и уже по нему составить мвтрицу для свёртки. Шевелёнка была особенно актуальна во времена плёнки и плохом освещении, т.е. фонари в кадре, звёзды...

По мойму на Хабре была подобная статья несколько лет назад

Поиск ничего не даёт. Если и была, то всё-равно что и нет, не отыскать.

Восстановление расфокусированных и смазанных изображений. Повышаем качество
Представляю вашему вниманию заключительную статью из трилогии «Восстановление расфокусированных и см...
habr.com

А ещё в фотошопе была функция Camera Shake Reducion, предназначенная для удаления смаза с фоток.

Исправление смазанных фотографий в новой версии Photoshop
На конференции Adobe MAX 2011 состоялась демонстрация некоторых возможностей следующей версии редакт...
habr.com

Там сначала выбираешь небольшой участок изображения, на котором отчётливо видно, как размыт какой‑либо объект. По этому участку оно вычисляло ядро свёртки, по которому, с его точки зрения, было размыто изображение. Причём, нехилого такого размера — можно и 300×300 пикселей сделать. Это могло быть и радиальное размытие, и размытие в движении, даже по сложной траектории, а не просто по прямой. Ещё, по‑моему, можно было загрузить своё ядро из картинки.

И вот далее по этому ядру свёртки оно пыталось деблюрить картинку. В принципе работало, но не то что бы прям хорошо. На 4 с минусом.

Была ещё фишка, что для разных участков картинки можно было указать/вычислить разное ядро, и оно к разным частям применяло разный деблюр, плавно переходя от одного ядра к другому.

По мойму на Хабре была подобная статья несколько лет назад

2012 год :D

С возрастом время течёт всё быстрее и быстрее!

Хотелось бы увидеть сравнение результатов при разрядности 8, 16 и fp32 бит на канал. И что будет, если заблюренная картинка будет предварительно закодирована в JPEG и снова открыта. Потому что из RAW, даже с шумом, вытаскивать исходные данные куда проще, чем из перешакаленного JPEG/H264 с кубиками.

Мясо из котлет не восстановишь ИМХО, JPEG убьёт идею на корню

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации