фотохроника
Jul. 26th, 2012 09:09 pm![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)

Давно прусь от Проскудина-Горского и слежу за эпопеей цифровой реставрации его работ. Очередная веха - передача общественному проекту результатов своей работы по реставрации братьями Константином и Владимиром Ходаковскими. Они сводили цветоделённые слои не только в пространстве, но и во времени (напомню, что Сергей Михайлович делал через разноцветные светофильтры три снимка подряд, и если объект съемки за это время успевал сместиться, то на скомбинированном цветном снимке он оставлял разноцветные "хвосты"). Результаты получились - просто фантастические!. Например, толпа всадников, которая на оригинальной реставрации выглядела как разноцветная мозаика, тут предстаёт просто в студийном качестве.

И ещё немного на смежную тему восстановления расфокусированных фотоизображений. Когда-то я считал, что это, даже теоретически, невозможно. Казалось, что расфокусированный объектив (или дёрганье фотоаппарата во время съёмки) создаёт изображение, принципиально не возвращаемое в "исходно-правильный" вид, и в математическом смысле попытка восстановления такого изображения примерно аналогична попытке восстановить слагаемые из суммы. Операция хотя и возможная, но совершенно неоднозначная. Потом я узнал про совместную статистическую обработку изображений (можно погуглить bayesian image super resolution), потом появилась камера Lytro, и вот совсем недавно я наткнулся на опенсорсный(!) проект нашего соотечественника(!!), который вполне успешно справляется с этой, казалось бы нерешаемой, задачей. С опять же фантастическими результатами.
Было:

Стало:

P.S. К своему стыду, математику процесса я понял не вполне, даже прочитав описание медленно, и два раза :(

no subject
Date: 2012-07-26 09:40 pm (UTC)Сигналы можно обрабатывать или во временнОй области (time-domain), или в частотной (frequency-domain). Чтобы поднять высокие частоты во временнОй области (например у записанного звука), это должен быть слегка дифференцирующий фильтр. Если делать это же в частотной области - надо выполнить преобразование Фурье (перейти в частотную область) и усилить в полученном спектре гармоники с большими номерами (высокочастотные). Потом для исправленного спектра выполняем обратное преобразование фурье и получаем опять сигнал во временной области (типа звук).
То же самое и с изображениями, но там после Фурье-преобразования получается пространственный спектр (двумерный к тому же, как и картинка). То есть первая гармоника - это синусоида с периодом на весь поперечник изображения, вторая гармоника - синус два периода в поперечнике картинки и тд.
Но при работе с сигналами критическое значение играет шум, потому что если мы при обработке спектра вместе с полезным сигналом усилим слабые, но многочисленные гармоники шума, то в итоге получим ерунду.
Поэтому параллельно нужен шумодав или оптимальный фильтр.
Такой фильтр, грубо говоря, смотрит на амплитуду каждой гармоники в спектре, сравнивает её величину с шумом (профиль которого в диапазоне частот мы должны знать заранее) и, если эта гармоника выше шума, что-то с ней дальше делает.
Если у нас искажённое изображение и мы знаем пространственную искажающую функцию, то ничто не мешает взять обратную функцию в качестве фильтра, прогнать через него изображение (удобно в частотной области с фурье-преобразованием) и получить исправленный оригинал. Но критическим ограничением здесь является величина шума на восстанавливаемом изображении - потому что тем гармоникам сигнала, которые утонули до уровня шума, доверять нельзя, и восстанавливать их бессмысленно. То есть неоптимальным фильтром как бы можно усилить все гармоники вместе с шумом, но в итоге получится разноцветная рябь, поэтому нужен фильтр обязательно оптимальный, реагирующий на соотношение сигнал/шум в каждой точке спектра.
Поэтому даже если нам точно известна искажающая функция, шум всё равно ограничит качество восстановления.
no subject
Date: 2012-07-26 09:47 pm (UTC)Люди просто педантично собирают алгоритмы ДПФ, публикуемые в разных умных журналах, и вставляют их в эту библиотеку. Когда я с ней столкнулся, там в ридми было написано нечто вроде "добавлен алгоритм для такой-то размерности массива, мы сами не до конца поняли, как он работает, но работает круто" :)
no subject
Date: 2012-07-27 06:28 pm (UTC)