A A A A Автор Тема: DStation  (Прочитано 7379 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн blackhazАвтор темы

  • *****
  • Сообщений: 2 486
  • Благодарностей: 44
  • Максим
    • Сообщения от blackhaz
DStation
« : 30 Мар 2013 [05:36:58] »
Давненько я не писал на форуме! Погряз в бытовых делах и работе, ребёнок подрастает - затянуло меня в последнее время…

Вниманию любителей поснимать представляю своё небольшое творение - DStation (от Deconvolution Station). Некоторые уже использовали альфа-версии, и помогали давить баги и усовершенствовать алгоритм. (Юра, Саша - вам огромное спасибо. Без вас я бы не справился.) Прогу я начал писать ещё в 2010, релиз всё время откладывал, т.к. надеялся напечатать сперва бумагу, описывающую алгоритм. После некоторых переписок с JBAA и ещё одним журналом, я понял, что у меня просто нет времени на какую-либо бюрократию. Бумагу приняли, но хотели чтобы я полностью переделал её под читателей. Поэтому софт отправляется в свободное плавание, под либеральной лицензией BSD, с полностью открытыми исходниками. А бумага - в Интернет.   

Итак, DStation - это экспериментальная "площадка" с GUI для тестирования всяких малоизвестных алгоритмов деконволюции. Один из алогоритмов разработан мной на основе метода, описанного в старом MIT-овском учебнике, J. S. Lim, “Two-dimensional signal and image processing,” Prentice Hall, (1990). Я назвал его "Usatov Atmospheric" (далее - UA). Описание этого алгортима находится здесь:

https://raw.github.com/blackhaz/DStation/master/doc/DStation.pdf     

Вкратце и по-русски:

Алгоритм UA состоит из двух частей. Первая часть основана на работе Лима. Наглядная иллюстрация - рис. 1 (ссылка на PDF сверху.) Лима предложил, что исходное изображение F любого объекта состоит из двух компонентов: высокочастотный сигнал FH и низкочастотный сигнал FL. Если каждый из этих компонентов (в частотном их представлении) умножить на некоторую сглаживающую функцию B, то получится получаемое изображение G - это уравнение 3. При этом, низкочастотный сиганл FL - плавная функция. Теперь пропустим каждую из частей этого уравнения через сглаживающий фильтр S - это может быть медианный фильтр или обычный average blur. При этом, фильтр S почти полностью уберёт высокочастотную составляющую и оставит только низкочастотный FL сигнал, который почти не изменится - при некоторых параметрах S. Имея представление о составляющей FL, можно использовать уравнение 6, т.е. можно найти сглаживающую функцию B, что приведёт к варианту слепой деконволюции. Есть несколько способов узнать на что похожа FL. Например, можно взять похожее изображение, или изображение, которое имеет желаемый ЧКХ, и использовать его как опору для построения функции B. Этот метод описан Лимом и доступен в DStation под названием Lim (Reference Image). Один из примеров использования - это взять изображение фрактала и использовать его как опору (reference) для деконволюции астрономических изображений. Весьма забавные результаты!

Моим дополнением в этой части становится получение FL через функцию soft-knee компрессора, который обычно применяется в звуковой индустрии. При этом сглаженное полученное изображение S[|G|] пропускается через компрессор для получения FL (уравнение 10). На этом этапе мы получаем полностью законченный вариант слепой деконволюции. Этот вариант метода называется в DStation просто Usatov. 

Вторая часть метода UA основана на работе Фрида по моделированию атмосферной турбулентности. DStation строит ЧКХ предполагаемого сглаживания атмосферой (уравнение 12), на основе D и F телескопа, длины волны и r0 (параметр Фрида). Объяснять бумагу Фрида я в этом посте не буду. Из обоих частей возьмём геометрическое среднее и получим метод UA - уравнение 13. В PDF есть несколько примеров деконволюции полученного мной изображения Луны на балконе в 10" Максутов-Кассегрен. Также, дистрибутивы DStation будут распространяться с прекрасным исходным изображением Юпитера, полученным Жан-Люком Довернье в обсерватории Pic Du Midi, и пресетом (набором установок) для DStation, чтобы у вас была возможность посмотреть как алгоритм справляется с этим исходником.

Алгоритм работы с методом UA описан здесь:

https://github.com/blackhaz/DStation/blob/master/doc/Algorithm%20Workflow.pdf     

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

- Работает практически на любых OS где есть ImageMagick: FreeBSD, Linux, Windows и OSX.
- Дополнительные алгоритмы деконволюции: Atmospheric MTF (деконволюция только при помощи "атмосферной" ЧКХ) и External Filter (с загружаемым внешним фильтром).
- Методы применения полученных функций B - т.е. сами процессы деконволюции: Wiener, Constrained Least Squares (CLS), Schaefer Inverse Filter, Van Cittert, Sine Relaxed Lucy Richardson, Maximum A Posteriori (MAP), Regularized Lucy-Richardson, Schaefer с внешним частотным эквалайзером и Landweber. (Всё написано мной с нуля, поэтому могут быть некоторые ошибки, которые нам ещё предстоит выловить.)
- Anti-artifact буфферы.
- Работа с 16- и 32-битными изображениями.
- Базовая пост-обработка - нормализация, яркость/контраст. Гистограмма, статистика, supersampling с возможность настроек фильтров индивидуально на upsampling и downsampling. 
- Batch обработка. (Полезно для лунных мозаик.)
- Блинкование.

Все исходники лежат здесь:
https://github.com/blackhaz/DStation

Код на этом этапе - спагетти, прототип. Кто может помочь работать - пожалуйста, пишите. DStation использует библиотеку ImageMagick для работы с разными графическими форматами - TIFF, PNG, и т.д. Версия для OSX предполагает наличие ImageMagick, а для Windows - библиотека зашита в EXE для удобства.

Может кто-нибудь из альфа-тестеров сможет добавить свои результаты в качестве начала обсуждения?

Завтра (уже сегодня) скомпилирую версию под Windows. 

 
« Последнее редактирование: 30 Мар 2013 [18:13:51] от blackhaz »


Оффлайн Yuri_18

  • *****
  • Сообщений: 2 046
  • Благодарностей: 395
  • Юрий
  • Награды Неоднократный победитель конкурса астрофото
    • Сообщения от Yuri_18
    • Astronominsk
Re: DStation
« Ответ #1 : 30 Мар 2013 [07:19:00] »
Ну, наконец-то... :)

Оффлайн blackhazАвтор темы

  • *****
  • Сообщений: 2 486
  • Благодарностей: 44
  • Максим
    • Сообщения от blackhaz
Re: DStation
« Ответ #2 : 30 Мар 2013 [14:13:08] »
Билд для FreeBSD:
http://www.trafyx.com/dstation-0_5_alpha5_freebsd.tar.gz
(Требует наличия ImageMagick с HDRI, Quantum Level >=16 и Qt 4)

Билд для Windows:
https://github.com/blackhaz/DStation/blob/master/builds/dstation-0_5_alpha5-win.zip?raw=true

Билд для OSX:
http://trafyx.com/dstation-0_5_alpha5-osx.zip

История изменений:
https://github.com/blackhaz/DStation/blob/master/VERSIONS


Юпитер из Pic Du Midi + Preset:
https://github.com/blackhaz/DStation/blob/master/doc/Jupiter_Pic_Du_Midi.zip?raw=true
(Это НЕ то изображение, которое поставляется с Win билдом!)

Использование:

- Запустите DStation.
- В меню File, Open Image, откройте исходный FITS файл с Юпитером.
- В меню Preset, Open Preset, откройте D-файл с пресетом (настройками).
- Нажмите кнопку "Deconvolve" в правом нижнем углу, или меню File, Deconvolve.

Для блинкования нажмите и удерживайте кнопку blink.

Описание главных настроек (вкладка Primary) этого пресета:

Wavelength: длина волны изображения, 550 nm.
Objective Diameter: 1000 mm (1-метровый телескоп на Pic Du Midi).
Objective Focal Length: 20000 mm
Focal Length Multiplier: 1.0 (без линз Барлоу)
CCD Pixel Size: 4.65 мкм
Filter Size: 10 пикселей (размер сглаживающего фильтра S, подобран экспериментально)
Fried's r0 Parameter: 400mm (параметр Фрида r0, подобран экспериментально)
Noise Estimation: 0.30 (уровень шума, подобран экспериментально)
Compression Ratio: 0.94 (параметр r компрессора, подобран экспериментально - см. уравнение 10 в DStation.pdf)

Пресет использует Wiener как метод фильтрации, алогоритм Usatov, Atmospheric. Пример работы - в аттаче.
« Последнее редактирование: 02 Апр 2013 [01:02:20] от blackhaz »

Оффлайн 1212Lupus

  • *****
  • Сообщений: 3 082
  • Благодарностей: 193
  • Мне стал не очень нравиться этот форум...
    • Сообщения от 1212Lupus
    • http://belastro.net
Re: DStation
« Ответ #3 : 30 Мар 2013 [19:30:39] »
Максим, спасибо -- начинаю разбираться...
Радиоастрономы-любители -- объединяемся!


Если утро наступает в три -
Через два часа уже зажгут фонари.
Уже кончился день, а я только встал,
А я только что встал и уже устал.
(с) НОЛЬ

Оффлайн ROVIAN

  • Модератор
  • *****
  • Сообщений: 40 772
  • Благодарностей: 682
  • RV6LOT Icom IC-775DSP
    • Skype - cometinvestigator
    • Сообщения от ROVIAN
    • Астрономия в Ростове-на-Дону
Re: DStation
« Ответ #4 : 30 Мар 2013 [20:36:27] »
Не открывает, чего то не хватает на компе ?

Error opening image. Exception caught: Magick: UnableToOpenBlob `E:/Documents and Settings/?????????????/??????? ????/DStation/release/jupi_2011_10_14_221642_R_IR.tif': Invalid argument @ error/blob.c/OpenBlob/2517
Done.
80ED+SW0.85/HEQ5/QHY8L/QHY5-II,
203/1000/HEQ5/МРСС/STF-8300/QHY5-II

Hand made от 165 до 450
Canon 5DM2, 5DM4, Nikon 5600 (SY 14/2.8, EF 70-200/4L,ED AF-S NIKKOR 28-300mm)  

Оффлайн Azatot (Павел Николаев)

  • *****
  • Сообщений: 699
  • Благодарностей: 58
  • Мне нравится этот форум!
    • Skype - azatot77
    • Сообщения от Azatot (Павел Николаев)
Re: DStation
« Ответ #5 : 30 Мар 2013 [21:02:35] »
А почему не работает с 24-битными tiff? Или с jpg?

Оффлайн blackhazАвтор темы

  • *****
  • Сообщений: 2 486
  • Благодарностей: 44
  • Максим
    • Сообщения от blackhaz
Re: DStation
« Ответ #6 : 30 Мар 2013 [21:03:55] »
ROVIAN: попробуй избавиться от русских букв в названии.

Azatot: я думаю 24-бит тоже откроет без проблем.

Оффлайн ROVIAN

  • Модератор
  • *****
  • Сообщений: 40 772
  • Благодарностей: 682
  • RV6LOT Icom IC-775DSP
    • Skype - cometinvestigator
    • Сообщения от ROVIAN
    • Астрономия в Ростове-на-Дону
Re: DStation
« Ответ #7 : 30 Мар 2013 [21:08:55] »
а откуда там русские, я пытаюсь запустить тот, что в папке с прогой      jupi_2011_10_14_221642_R_IR
80ED+SW0.85/HEQ5/QHY8L/QHY5-II,
203/1000/HEQ5/МРСС/STF-8300/QHY5-II

Hand made от 165 до 450
Canon 5DM2, 5DM4, Nikon 5600 (SY 14/2.8, EF 70-200/4L,ED AF-S NIKKOR 28-300mm)  

Оффлайн blackhazАвтор темы

  • *****
  • Сообщений: 2 486
  • Благодарностей: 44
  • Максим
    • Сообщения от blackhaz
Re: DStation
« Ответ #8 : 30 Мар 2013 [21:10:04] »
После Documents and Settings в пути - там русские (или какие-то другие, не латинские) буквы.

Оффлайн ROVIAN

  • Модератор
  • *****
  • Сообщений: 40 772
  • Благодарностей: 682
  • RV6LOT Icom IC-775DSP
    • Skype - cometinvestigator
    • Сообщения от ROVIAN
    • Астрономия в Ростове-на-Дону
Re: DStation
« Ответ #9 : 30 Мар 2013 [21:15:19] »
После Documents and Settings в пути - там русские (или какие-то другие, не латинские) буквы.
Всё, понял. Спасибо.  :)
80ED+SW0.85/HEQ5/QHY8L/QHY5-II,
203/1000/HEQ5/МРСС/STF-8300/QHY5-II

Hand made от 165 до 450
Canon 5DM2, 5DM4, Nikon 5600 (SY 14/2.8, EF 70-200/4L,ED AF-S NIKKOR 28-300mm)  

Оффлайн Дмитрий Маколкин

  • *****
  • Сообщений: 12 726
  • Благодарностей: 764
  • *********
    • Skype - dmitrymakolkin
  • Награды Призер конкурса астрофото
    • Сообщения от Дмитрий Маколкин
    • Оптика любительских телескопов
Re: DStation
« Ответ #10 : 30 Мар 2013 [21:22:13] »
Отличная новость!

Тоже потестировал, но давно было дело. Теперь посмотрю с новых позиций, благо материал накопился.
Панорамы Луны в моей галерее:
http://www.makolkin.ru/Gallery/gallery.html
Мои дипы: https://deepskyhosting.com/dvmak

Оффлайн Deimos

  • Модератор
  • *****
  • Сообщений: 17 405
  • Благодарностей: 309
    • Skype - deimos.belastro.net
  • Награды Открытие комет, астероидов, сверхновых звезд, научно значимые исследования.
    • Сообщения от Deimos
    • Белорусская любительская астрономическая сеть
Re: DStation
« Ответ #11 : 31 Мар 2013 [00:08:27] »
Ну начинается... Русские, пробелы...
У природы нет плохой погоды, у неё просто на нас аллергия.

Учение без размышления бесполезно, но и размышление без учения опасно /Конфуций/
Слово есть поступок. /Л. Толстой/

MarkII

  • Гость
Re: DStation
« Ответ #12 : 31 Мар 2013 [09:46:05] »
При попытке загрузить сборку для OSX пишет "Sorry about that, but we can't show files that are this big right now"

Оффлайн kryptonik

  • *****
  • Сообщений: 15 924
  • Благодарностей: 1355
    • Сообщения от kryptonik
Re: DStation
« Ответ #13 : 31 Мар 2013 [12:35:18] »
Некоторые проблемы есть. Может, кому поможет.
1. Русских буковок нигде быть не должно.
2. При открытии картинок или пресетов, программа периодически впадает в задумчивость, но не слетает, надо проявить терпение.
3. При запуске программы надо сначала открыть картинку, а уже потом пресет.

Оффлайн blackhazАвтор темы

  • *****
  • Сообщений: 2 486
  • Благодарностей: 44
  • Максим
    • Сообщения от blackhaz
Re: DStation
« Ответ #14 : 31 Мар 2013 [19:24:39] »
Ding: загрузил OSX билд сюда: http://trafyx.com/dstation-0_5_alpha5-osx.zip

Оффлайн bigol

  • *****
  • Забанен!
  • Сообщений: 4 901
  • Благодарностей: 135
  • ... можешь ты не быть, но гражданином быть обязан
    • Сообщения от bigol
Re: DStation
« Ответ #15 : 31 Мар 2013 [19:52:59] »
Результаты, конечно, очень интересные. Но хотелось бы почитать о примерных значениях различных параметров, в порядке важности. Т.е. "установлено опытным путем" - это хорошо, но было бы здорово дополнить несколько англоязычных слов из всплывающей подсказки каким-то кратеньким мануалом, желательно русскоязычным ;)

Оффлайн blackhazАвтор темы

  • *****
  • Сообщений: 2 486
  • Благодарностей: 44
  • Максим
    • Сообщения от blackhaz
Re: DStation
« Ответ #16 : 31 Мар 2013 [20:55:47] »
Хороший вопрос. Я переведу часть из Algorithm Workflow PDF. Это должно позволить почувствовать как работают эти параметры.

В обычном режиме (фильтрация при помощи Wiener, алогоритм Usatov, Atmospheric) из неизвестных всего четыре параметра:

Filter size (размер фильтра S)
Compression Ratio (параметр компрессора r)
Noise Estimation (расчёт шума, NE)
r0 (параметр Фрида)

При идеальном размере сглаживающего фильтра S, сглаживающая функция будет сглаживать "испорченный" атмосферой или внутренними аберрациями телескопа высокочастотный сигнал, а низкочастотный, нетронутый, оставлять каким он есть. Естественно, знать размер такого фильтра заранее невозможно, поэтому обычно можно начинать с какого-нибудь универсального значения в 10-30 пикселей и смотреть как идёт процесс деконволюции. При слишком маленьком фильтре, испорченный высокочастотный сигнал не будет сглаживаться, поэтому алгоритм будет принимать высокочастотные данные как истинный сигнал, и в результате мы будем иметь плохое изображение. См. первый аттач. Слишком большой фильтр будет излишне сглаживать низкочастотный сигнал, что приведёт к "слабой" функции B, т.е. сила деконволюции будет слабой, если так можно выразиться - см. аттач #2.
           
Compression Ratio r позволяет "фокусировать" процесс восстановления на высоких или низких частотах. При идеальном r, процесс восстановления изображения будет сконцентрирован на важных деталях изображения, например мелких кратерах, фестонах на Юпитере, и т.д. Слишком высокий r будет фокусировать процесс на высокочастотных деталях и оставлять низкочастотные детали нетронутыми - см. аттач #3 (слева). Слишком низкое значение r будет фокусировать процесс на низкочастотных деталях, что приведёт к неестественному изображению - см. аттач #4.     (справа).

Noise Estimate (NE) позволяет регулировать подавление шума в процессе деконволюции. С этим параметром мы уже работаем в обычных алгоритмах, например Lucy-Richardson. Чем выше NE, тем больше шума будет подавляться в изображении. Стоит заметить, что задранным NE можно компенсировать излишек шума, который может быть вызван высоким r.

Параметр Фрида r0 - это расчёт качества изображений (грубо говоря, сиинга). Чем выше r0, тем лучше предполагается был сиинг в момент съемки.

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

Оффлайн bigol

  • *****
  • Забанен!
  • Сообщений: 4 901
  • Благодарностей: 135
  • ... можешь ты не быть, но гражданином быть обязан
    • Сообщения от bigol
Re: DStation
« Ответ #17 : 31 Мар 2013 [22:01:42] »
Спасибо, как раз то что нужно.
Я переведу часть из Algorithm Workflow PDF
Ах вот оно что. А я почитал DStation.pdf, а этот не скачался.
« Последнее редактирование: 31 Мар 2013 [22:08:35] от bigol »

Оффлайн 1212Lupus

  • *****
  • Сообщений: 3 082
  • Благодарностей: 193
  • Мне стал не очень нравиться этот форум...
    • Сообщения от 1212Lupus
    • http://belastro.net
Re: DStation
« Ответ #18 : 31 Мар 2013 [23:16:16] »
Ах вот оно что. А я почитал DStation.pdf, а этот не скачался.
Там кнопку RAW справа нажать нужно...
Радиоастрономы-любители -- объединяемся!


Если утро наступает в три -
Через два часа уже зажгут фонари.
Уже кончился день, а я только встал,
А я только что встал и уже устал.
(с) НОЛЬ

MarkII

  • Гость
Re: DStation
« Ответ #19 : 03 Апр 2013 [11:34:15] »