Зарегистрировано: 316




Помощь  Карта сайта

Текст дня

Василий Розанов. Апокалипсис нашего времени

Василий Розанов Апокалипсис нашего времени No 1 К ЧИТАТЕЛЮ Мною с 15 ноября будут печататься двухнедельные или ежемесячные выпуски под общим заголовком: "Апокалипсис нашего времени". Заглавие, не требующее объяснении, ввиду событий, носящих не мнимо апокалипсический характер, но действительно ..
Дальше..

Фото дня

M31_Flea3_Sigma70-300_f95/4_L_95x32sec_bin1

M31_Flea3_Sigma70-300_f95/4_L_95x32sec_bin1

M31, 10.2015, Flea3 bin1 L, Sigma70-300 f95/4, 48min(95x32sec) , SW Star adventurer


Для добавления вашего собственного контента, а также для загрузки текстов целиком, загрузки текстов без разбиения на страницы, загрузки книг без разбиения на тексты, необходима авторизация. Если вы зарегистрированы на сайте, введите свой логин и пароль. Если нет, пожалуйста, пройдите регистрацию



Calibrate_f.jpg
Опубликовано в: Блог: Астрофото - как это работает?
Клуб: Обработка астрофото. Cъемка, сложение, постобработка
<--Астрофото
<--Любительская астрономия (ЛА)
Сайт: Публичные рубрики
Клуб: Астрофото
<--Любительская астрономия (ЛА)

0





Калибровка без дарков по двум лайтам. Устранение горячих пикселей и увеличение SNR снимка
/pterodactilus vulgaris/
11.12.2019


От автора.
Данная статья еще не закончена. Возможно, если вы заглянете сюда еще раз, обнаружите что-то новое.

Технология, описанная в этой статье, реализована в программе PGMania

Upd. Feb.2016

Calibrating astro images using two "lights" without any "darks" or "bias" files. Complete elimination of hot pixels and garbage from astro images. Increasing Signal to Noise Ratio (SNR) in astro images



Вместо предисловия:

Ну не нравится мне снимать дарки. Возни много, результат часто никакой. Так что, прошу прощения, если кого обидел этим текстом.


Как позже оказалось, этим текстом я все таки обидел модератора астрофорума(?). Он закрыл мою публикацию на астрофоруме с формулировкой: "Закрою тему по причине того что всё равно ничего таким методом не получится."

Что случилось дальше, см. в 1-м комментарии к этому тексту. Оставим это на совести руководства астрофорума.


Вступление

После вхождения и погружения в тему обработки "классического" дипская, изучения накопленного астро-собществом многолетнего опыта и попыток осмыслить происходящее в этой области, к ней накопилось много вопросов. Готовых ответов никто не давал, да их и не было, потому пришлось изобретать свой велосипед и, в общем, это завершилось удачно. Никто, кроме автора, за идею не пострадал, а у сообщества появилась альтернативная рабочая методика обработки астро фотографий.

Итак, ниже скриншот с небольшим фрагментом кадра "до" и "после" процесса.

Removing hot pixels and garbage from image. Image calibrating without dark files


Собственно, понятие калибровки в данном случае не совсем уместно. Больше подходит термин "очистка" снимков. Калибровка подразумевает выравнивание снимков в серии перед сложением. Тут этот этап намеренно опущен, чтобы не уходить от основного вопроса. Но поскольку калибровка звучит более значимо и привычно, будем использовать его.

В результате процесса мы получаем удаление горячих пикселей, значительное увеличение контраста и отношения сигнал/шум (SNR) используемых лайтов. Случайный, т.е. несистемный шум со снимков также успешно убирается. Это треки спутников, космики, мусор и пр.

Обработка снимков в серии производится попарно. Сама серия снимков после подобной обработки будет нуждаться в выравнивании по опорным звездам относительно мастер снимка. Эту операцию нужно проводить отдельно, до или после их обработки по описанной методике . Важно, что все процессы производятся без использования темновых(dark) и офсет(bias) кадров. Флэты(flat) могут понадобиться, но это довольно индивидуально.

В процессе калибровки мы используем любые 2 лайта из серии. Порядок их следования значения не имеет. Большое значение имеет совпадение полезного сигнала на калибруемых в паре снимках и тщательность их совмещения по этому сигналу.

На выходе также получаем 2 обработанных лайта. Важно, что в процессе участвуют всего 2 кадра с полезным сигналом. Лайты должны быть изначально, еще при съемке, слегка смещены в координатах сенсора относительно друг друга с точки зрения полезного сигнала. Конкретное смещение не лимитируется, но 2-10 px и больше - это нормально. Основным критерием при выборе смещения должна быть уникальность мусора в кадре в данной точке в координатах сенсора. Это все, что нам нужно.

Далее совмещаем лайты по полезному сигналу например по звездам. Сдвигаем и, если надо, вращаем, масштабируем первый лайт относительно второго, добиваясь максимального совпадения. В PGMania это делается как вручную, так и автоматичеки, в нескольких вариантах.

Манипуляции с подвижками лайтов, их вращением или масштабированием должны быть запомнены, т.к. в процессе калибровки их придется делать неоднократно. Алгоритм калибровки состоит из выделения шумовой составляющей и ее вычитания из снимков пары. Всего алгоритм содержит до 10 шагов, состоящих только из операций вычитания и исключения. Некоторые операции содержат промежуточные смещения снимков между собой на величину исходного смещения сигнала в координатах сенсора.

Еще одно очень важное замечание!

Все операции в статье описаны в терминах Photoshop и проводились над 16 битными tiff файлами. Это значит, что встретив в тексте такую строку L1-L2=N1, имеется ввиду следующее:

Берем лайт 1 и делаем его нижним слоем L1 в PS. Берем лайт 2 и делаем его верхним слоем L2. Нижний слой имеет режим наложения "обычный". Верхний слой имеет режим наложения "вычитание". Оба слоя имеют прозрачность 100%, если не оговорено другое.

Результатом является сведение слоев L1 и L2. В приведенных в аттаче примерах слои не сведены(!). Это сделано для того, чтобы вы могли видеть не только результат, но и процесс.
Попытки подвести под все это строго математические термины в отрыве от применяемых в конкретном ПО математических операций и используемых форматов данных бессмысленны.

Я не преследовал цели описывать процессы в строго математических или логических терминах, например, в применении к 16/32/64 bpp или к int/double/float. Конкретика реализации описанных ниже алгоритмов в разных программах и на разных платформах, наверняка потребует "локализации" самих алгоритмов и адаптации под используемые библиотеки. Например, используя C# я в своих программах оперирую структурами ImageMagick, а вы на C++ используете DCRAW. И как тут быть?
Соответственно, и примеры, приведенные в аттаче к статье, демонстрируются в виде файлов Photoshop (CS6), при этом суть лежит на поверхности.

Для воспроизведения методики на базе ваших собственных файлов, кроме уверенного владения Photoshop, вам потребуется аккуратность и много терпения. Алгоритм довольно трудоемкий для "ручного" воспроизведения.

Вроде, с присказкой все.

Итак, начнем

Имеем 2 лайта: L1 и L2.


1.Вычитаем L2 из L1. Полезный сигнал уничтожается, остается разница шумов N1=L1-L2. Результатом является файл N1.
2.Из L1 вычитаем N1. Результатом является файл Stage1.
Повторяем то же самое, меняя местами L1 и L2:
3.Вычитаем L1 из L2. Полезный сигнал уничтожается, остается разница шумов N2=L2-L1. Результатом является файл N2.
4.Из L2 вычитаем N2. Результатом является файл Stage2.
На этом можно бы и остановиться, благо картинка выглядит вполне чистой. Но.
На файлах Stage1 и Stage2 основная часть совпадающего шума, горячих пикселей и тепловых шумов матрицы будет убрана. Но останутся немногие горячие пиксели и мусор, "привязанные" к конкретному лайту, а также случайные шумы. Нам надо и от них тоже избавиться.
5.Совмещаем N1 и N2, при этом смещаем N2 относительно N1 на те же значения, что и при совмещении лайтов L1 и L2, но с обратным знаком. Иными словами, выравниваем кадры по краям исходных лайтов или совмещаем по остаткам полезного сигнала. Горячие пиксели при этом должны погаснуть. Далее в тексте имеется ввиду смещенный N2.
6.Вычитаем N2 из N1 и получаем взаимоуничтожение постоянных горячих пикселей при остающихся случайных горячих пикселях и мусоре, "привязанных" к одному из лайтов, а также случайный шум разности лайтов. Результатом является файл Stage3.
7.Теперь поменяем местами N1 и N2 в шаге 6, т.е. из N2 вычитаем N1, получаем еще один вариант взаимоуничтожения постоянных горячих пикселей, при остающихся горячих пикселях, "привязанных" к другому лайту и случайная составляющая шума разности лайтов c обратным знаком(файл Stage4).
8.Из файла Stage2 (шаг 4) вычитаем файл Stage4 (шаг 7). Результатом будет файл Stage5, очищенный уже и от "привязанных" к конкретному лайту (L2) горячих пикселей.


Следует заметить, что при неточном совпадении сигнала на лайтах, в Stage5 могут появиться призраки от разницы сигнала в
лайтах, отнесенные на величину смещения лайтов относительно друг друга. Это не страшно. Позже они убир аются. Но если полезные сигналы имеют заметную разницу, на последней стадии процесса на их месте призраков в Stage5 проявится эта разность, похожая на новые горячие пиксели в виде светлых точек, серпиков и т.д. Поэтому, в данной технологии важно, чтобы полезный сигнал на лайтах был по возможности
полностью идентичным.

Файл Stage5 будет содержать лайт L2, полностью свободный от горячих пикселей. При этом шум становится чуть более контрастным. Если попытаться проделать тоже самое с Stage3 и Stage1, получим идентичный Stage5 результат Stage6, но уже для лайта L1.

Иллюстрация пройденных этапов(Stage5 в качестве Result):

Removing hot pixels and garbage from image. Image calibrating without dark files. Stages

Полученный вариант не плох, но не идеален. Слишком шумно. Кроме того, на результатах наблюдается проникновение уникального сигнала с одного лайта на другой лайт, но в негативе. Немного доработаем методу, избавимся от призраков и теней.


9. На Stage5 накладываем Stage4. Результатом является файл Stage7 - очищенная от следов негатива с другого лайта Stage5. Это откалиброванный Lite2, готовый к выходу.
10. На Stage6 накладываем Stage3. Результатом является файл Stage8 - очищенная от следов негатива с другого лайта Stage6. Это откалиброванный Lite1, готовый к выходу.


В итоге нам удалось получить практически полностью очищенные от горячих пикселей и мусора 2 лайта с радикально уменьшенными шумами.

Сигнал, присутствующий только на одном лайте гасится, и в другой лайт почти не попадает. "Эхо" второго лайта, с уникальным сигналом с него, все же присутствует, ослабленное на порядки, но никак не мешает калибровке и последующему сложению. Это уже вполне рабочий способ устранения горячих пикселей и случайного шума, который можно эффективно применять на практике.

Итоговый результат в сравнении с исходным лайтом в полном масштабе и по всему кадру:

Removing hot pixels and garbage from image. Image calibrating without dark files. Before and after

Применение на практике:

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

Removing hot pixels and garbage from image. Image calibrating without dark files. Before and after



Внимание!

Описанная в данной статье технология обработки данных (далее "технология") охраняется законом об авторском праве. ГК РФ от 18.12.2006 N 230-ФЗ - Часть 4, Глава 70, Ст.1255-1302, и Глава 77, Ст. 1542-1551.

Без письменного соглашения с автором технологии законом запрещается:

-полное или частичное использование технологии в любых программах, устройствах или комплексах, предназначенных для обработки данных.
-упоминания или ссылки на детали, полностью или частично раскрывающие технологию, без указания авторства или ссылки на первоисточник
-полная или частичная публикация технологии или ее части в интернете, СМИ или в иных изданиях


(C)2015-2016, Eugene Trifonoff. aka p.v.
Saint-Petersburg, Russia
pterodactilus@rambler.ru