Вход в систему

SmartdeblurФотографы, возликуйте! Российский разработчик Владимир Южиков добился того, что оказалось не по силам самой Adobe. Этот программист воплотил в своем продукте SmartDeblur весьма сложный алгоритм Blind Deconvolution (слепой обратной свертки), благодаря которому данная утилита позволяет "вытягивать" очень размытые, расфокусированные снимки, возвращая их к жизни!

Реанимация фото

Сегодня в интернете можно найти две версии утилиты SmartDeblur - платную и бесплатную. Платную версию SmartDeblur 2.1 для Windows можно скачать на сайте разработчика (http://smartdeblur.net, размер 10 Мб). Она быстрее и более функциональна, но оставляет на обработанном снимке защитный слой, так называемый "водяной знак" (для его снятия нужно приобрести у автора электронный ключ).

В то время как SmartDeblur 2.0 beta менее функциональна, ее возможности урезаны, но она позволяет сохранить результат обработки фото в формате PNG. Правда, в версии SmartDeblur 2.0 beta (www.downloadcrew.com/article/28922-smartdeblur) максимальное разрешение обрабатываемых фотографий ограничено размером 1200x1200 пикселей, а максимальный размер PSF (траекторий смазывания) ограничен размером 120x120 пикселей.

После завершения итерации PSF-траектория отображается в правом верхнем углу интерфейса - Kernel Prevew & Tuning. Несмотря на то, что размер обработанного фото меньше оригинала, этого достаточно, чтобы распечатать "реанимированный" снимок в виде четкой фотографии 10x15.

К тому же SmartDeblur 2.0 beta не требует инсталляции, т.е. может исполняться на любом компьютере под ОС Windows просто с флэшки, а ее размер ~ чуть больше 9 Мб (ее еще можно найти в недрах Сети).

Однако сразу отмечу, что работа утилиты довольно ресурсоемка. Обработка фотографии с разрешением 1000x1000 пикселей отбирает более 1 Гб оперативной памяти и даже на современных многоядерных процессорах выполняется в течение нескольких минут. А "тяжелые" снимки обрабатываются значительно дольше.

Системные требования

Операционная система: Windows ХР, Vista, 7, 8 (32 или 64 бит, рекомендуется 64 бит для обработки больших изображений)

Процессор: 1 ГГц или выше.

Оперативная память: 2 Гб или более.

Дисковое пространство: 500 Мб или более.

Размер изображения: до 36 Мп для 64-разрядных ОС и до 15 Мп для 32-битных ОС.

Основные изменения в коммерческой версии SmartDeblur коснулись не только улучшения интерфейса, но и функциональных возможностей:

1. Поддержка больших изображений (до 36 Мп на 64-битной ОС и до 15 Мп на 32-битной).

2. Увеличение скорости за счет оптимизаций и использования Intel IPP в качестве FFT.

3. Возможность редактирования полученного Kernel (траектории смаза).

Например, если результат автоматического определения искажения не дал приемлемого результата, то вы можете открыть Kernel Editor и вручную отредактировать полученную траекторию смаза.

Как это работает?

Если у вас в школе было туговато с математикой, можете эту главу смело пропустить.
Итак, основная задача программы SmartDeblur заключается в том, чтобы рассчитать траекторию смаза PSF, как некую функцию F (х,у). По сути, нам нужно рассчитать траекторию смаза, не имея ничего, кроме смазанного изображения! До этого момента в математике существовала операция применения искажающей функции к другой функции под названием "свертки" (Convolution). А что если применить эту операцию в обратном направлении? В данном случае - к изображению (группа фото на рис. 1).
Фото Smartdeblur

smartdeblur-фото 2Для решения этой задачи математиками был разработан итерационный подход к построению ядра искажения методом покоординатного спуска. Затем был создан сложнейший алгоритм, в котором параметры функции PSF выбираются так, чтобы получаемое приближение максимально соответствовало реальному изображению с большими областями более-менее постоянной яркости.

Эти области заканчиваются объектами с резкими и средними перепадами яркости. При этом траектория смаза оказывается
наиболее приближенной к реальной - в виде минимально размытой линии. По завершении итераций остается только выполнить "обратную свертку" (деконволюцию) и восстановить исходное изображение.

Приступаем к обработке

Приступаем к обработке
Интерфейс программы очень прост и состоит из двух вкладок, расположенных сверху - "Main" и "Settings" (рис. 2). Первая служит для просмотра изображения. Вторая является панелью управления. Вы можете выполнить следующие операции:

File - открыть/сохранить изображение;

Zoom - управление масштабированием;

Blur Parameters - позволяет выбрать тип размытия и выполнения основных операций над размытыми изображениями;

Kernel Preview & Tuning - просмотр пути смаза и его тонкая настройка для изменения параметров размытия;

Settings/General - выбор размера изображения и другие настройки;

Settings/Deconvolution - выбор метода свертки (влияет на качество снимка и скорость обработки).

Во вкладке настроек можно поменять метод финальной обработки на более качественный (фильтр Тихонова). Там по умолчанию стоит "Medium-Quality" и "Wiener" (фильтр Винера) для большей скорости работы и меньшего потребления памяти.

Теперь приступаем к обработке фотографии. Сразу сообщу, что приведенные мной параметры SmartDeblur - не догма. Я подобрал их опытным путем. Причем в разных случаях смаза на фотографии получается разный результат. Поэтому рекомендую всегда немного поэкспериментировать с настройками программы.

ШАГ 1. Открываем файл или перетаскиваем его. В настоящее время поддерживаются форматы JPEG, PNG, TIFF и BMP. Изображение будет загружено и отображено в экране программы. В разделе "Blur Parameters" по умолчанию для параметра "Defect type" оставляем значение "Autodetect Blur". Ползунок "Smooth" выставляем на 70% (рис. 3).
Ползунок "Smooth"
ШАГ 2. В разделе "Kernel Preview & Tuning" ползунок "Kernel Size" ставим на показатель 50x50.

ШАГ 3. Жмем кнопку "Analyze Blur" и ждем несколько минут. Если вы изменили параметр "Smooth", то нажмите зеленую птичку "Apply new Smooth".

ШАГ 4. Сохраняем результат, нажав на иконку "дискеты".

Для лучшего результата можно изменить параметры обработки. Например, выбрав во вкладке "Settings" тип фильтра "Tikhonov". Или изменить тип дефекта -"Defect type". Есть три варианта:

Auto-detect Blur -программа автоматически определяет дрожание фотокамеры;

Out-of- Focus blur -размытие из-за неправильного фокуса;

Gaussian Blur - как правило, это размытие, созданное искусственно в редакторах Photoshop, Gimp и т.д.

Более подробную инструкцию (на английском) можно найти на сайте разработчика утилиты (там же есть и показательные примеры) - http://smartdeblur.net/tutorial.html
Реанимация поврежденных снимковКак видно на этой иллюстрации (рис. 4), утилита SmartDeblur весьма эффективна при реанимации поврежденных, размытых снимков документации, и может быть полезна даже при распознании автомобильных номеров, зафиксированных, например, видеорегистратором.

А это уже реальная фотография (рис. 5) до и после обработки в SmartDeblur 2.0 beta. Как показала практика, расфокусированные снимки (в данном случае, в результате ошибки автотофокуса цифровой камеры Panasonic DMC-FZ18) великолепно реанимируются с параметрами: Kernel Size = 50, Smooth = 70%, Region = Right half of image. Обработанный снимок выглядит существенно лучше и уже идеален для домашнего фотоальбома, например в формате отпечатка 10x15 см.
Реальное фото до и после обработки в SmartDeblur 2.0 beta
Поэтому не удаляйте смазанные и расфокусированные фотографии. Компьютерные технологии способны вернуть их к жизни. И это только первые шаги в области восстановления визуальной информации!

Послесловие

Когда Vladimir Yuzhikov (Владимир Южиков) опубликовал на сайте habrahabr.ru результаты работы SmartDeblur и в нескольких статьях рассказал о принципе работе алгоритма "слепой деконволюции", автору посыпался вал писем. Это вынудило Владимира ответить читателям: "После публикации двух предыдущих статьей мне пришло (и продолжает приходить) большое количество писем с просьбой восстановить номера машин на кадрах с камер видеонаблюдения, когда весь номер занимает площадь несколько пикселей. Я этим не занимаюсь! SmartDeblur этого тоже делать не умеет. Это задача совсем другого рода, а именно Super-Resolution, когда из нескольких изображений малого разрешения получается изображение высокого разрешения с новыми деталями, которых не было на исходных данных. Может быть, когда-нибудь я ей и займусь, но точно не в ближайшее время".