AstroDrome Live

Оборудование => Компьютеры в астрономии => Тема начата: astrowander от 04 Октябрь 2022, 12:38:34

Название: acmb
Отправлено: astrowander от 04 Октябрь 2022, 12:38:34
Всем привет, давно не виделись! Я за последний год наваял свою программку для обработки дипская, буду благодарен за отзвывы :krasneet:2
https://github.com/astrowander/acmb

Графического интерфейса нет (пока), работает из командной строки. Инструкции по сборке и запуску есть в readme, если непонятно что-то спрашивайте, объясню (и допишу в readme :dd:) Приветствуются отзывы и багрепорты.

Также приведу пару результатов работы проги, никакая другая постобоработка не применялась специально
https://drive.google.com/drive/folders/1l-_9N4-FFcPjHbkC4LQwqxXQXQklUB7B?usp=sharing
Название: Re: acmb
Отправлено: Артём от 04 Октябрь 2022, 14:09:09
Дело хорошее, раз уж автор тут как тут, вот прям отдельная тема тебе)

Пока потыкал буквально чуть-чуть и по ленивому, поэтому пока два вопроса: 1) no aligner - это он не нашел звезд или корреляции между ними на разных снимках? 2) делал стэк дарков без выравнивания из DNG с выходом в TIFF. Получилась цветная дебаеризированная картинка. Потому что DNG? Или так надо? Как делать мастердарк тогда?

Еще хочется минимального индикатора прогресса какого-нибудь)
Название: Re: acmb
Отправлено: astrowander от 04 Октябрь 2022, 14:53:59
1) ты из консоли вызывал или из кода? Вообще похоже, что не запустилось выравнивание, а результат его нужен
2) Я пробовал стекать dng, получается норм. Пришли серии по обоим пунктам, посмотрю)
Название: Re: acmb
Отправлено: astrowander от 04 Октябрь 2022, 15:03:27
2) делал стэк дарков без выравнивания из DNG с выходом в TIFF. Получилась цветная дебаеризированная картинка.
А, я, кажется. понял. При открытии RAW у меня всегда делается дебайеризация, и вычитается цветная картинка из цветной
Название: Re: acmb
Отправлено: Артём от 04 Октябрь 2022, 15:19:50
из консоли
Да

При открытии RAW у меня всегда делается дебайеризация, и вычитается цветная картинка из цветной
Вот это надо потом, после дарков-флэтов делать
Название: Re: acmb
Отправлено: astrowander от 04 Октябрь 2022, 15:59:30
Окей, займусь этим, как будет время:)
Название: Re: acmb
Отправлено: astrowander от 09 Октябрь 2022, 22:32:22
Вот это надо потом, после дарков-флэтов делать
Выпустил новую версию, где именно так и делается.
https://github.com/astrowander/acmb/releases/tag/v0.0.2.1

Команда, чтобы приготовить мастердарк:
acmb --input "C:/Images/Darks/ISO6400_3.2s/" --stack darks --output "C:/Images/Darks/ISO6400_3.2s/masterdark.pgm"
Чтобы вычесть мастердарк из всех лайтов, сложить лайты и сохранить результат:
acmb --input "C:/Images/Sagittarius_ISO6400_3.2s/" --subtract "C:/Images/Darks/ISO6400_3.2s/masterdark.pgm" --stack lights --output "C:/Images/output/sagittarius_new.tif"
Название: Re: acmb
Отправлено: astrowander от 10 Октябрь 2022, 12:53:46
Минутка сравнительного анализа. Проверил, как справятся с одной и той же серией кадров DeepSkyStacker (v4.2.6), Sequator (v1.6.0 и acmb (v0.0.2.1).

Снимал серию в Киргизии в июне этого года, рядом с тем местом, где был в 2009 году, кстати  :dd:.
Параметры кадров: Canon 6D, размеры 5472x3648, фокус 24mm, выдержка 10 sec, ISO 3200, неподвижный штатив, 50 кадров в серии, калибровки нет.

В DSS выставил настройки стекинга аналогичные тем, что используются в acmb: Kappa-Sigma clipping (kappa = 3, iterations = 1), Bisquared alignment, threshold 25%
В Sequator поставил галочку Reduce distortion effects и Auto Brightness

Процессор компьютера intel i7-3770k, 3.4 ГГц, доступно 8 потоков.
DSS справился с задачей за 6 мин 55 секунд, Sequator за 2 мин 14 сек, acmb за 2 мин 33 сек. Немного проигрывает в скорости Sequator'у и значительно выигрывает у dss. Посмотрим теперь на результаты. Полные файлы без какого-либо постпроцессинга, то что выдали сами программы (только у dss поднял яркость немного), по ссылке:
https://drive.google.com/drive/folders/1VrbAOp_WSRm9-gNNKwgI66NWKG55n_Ux?usp=sharing

К посту прикладываю 100% кропы Млечного пути около центра кадра. Sequator хоть и немного быстрее работает, но у него вижу проблемы с выравниванием, звезды значительно разъехались. acmb не справился с выравниванием звёзд только непосредственно за опорой ЛЭП. Конечно, это только одна серия, на других все, возможно, будет по-другому. Но acmb уже вполне себе на уровне с аналогами.

UPD. Прогнал ту же серию через линуксовую версию acmb. Результат тот же, а время работы уже 2 мин 10 сек. Возможно, если под виндой компилировать clang'ом вместо msvc, скорость тоже возрастёт. В целом, простор для оптимизации, ещё, думаю, есть.
Название: Re: acmb
Отправлено: astrowander от 16 Октябрь 2022, 17:44:39
Выпустил новую версию acmb v0.0.2.16, с поддержкой флэтов.
https://github.com/astrowander/acmb/releases/tag/v0.0.2.16

Команда, чтобы приготовить мастерфлэт:
acmb --input "C:/Images/Flats/" --subtract "C:/Images/DarkFlats/masterdarkflat.tif" --subtract --stack flat  --output "C:/Images/Flats/masterflat.tif"

Чтобы вычесть мастердарк из всех лайтов, поделить их на мастерфлэт, сложить лайты и сохранить результат:
acmb --input "C:/Images/Sagittarius_ISO6400_3.2s/" --subtract "C:/Images/Darks/ISO6400_3.2s/masterdark.pgm" --divide "C:/Images/Flats/masterflat.tif" --stack light --output "C:/Images/output/sagittarius_new.tif"

Небольшая ремарка, у параметров ключа "--stack" убраны окончания. Теперь надо писать --stack dark вместо --stack darks, и т. д.

Также у --divide, который делит картинку на мастерфлэт есть опциональный параметр intensity, можно задать от 0 до 100, по дефолту равен 100. Если сделать его меньше, то эффект от деления будет ослаблен. Добавил его, потому что на некоторых моих примерах со стопроцентной интенсивностью края кадра становятся слишком светлыми.
--divide "C:/Images/Flats/masterflat.tif" [intensity = [0..100]
Название: Re: acmb
Отправлено: astrowander от 27 Октябрь 2022, 17:05:27
Опубликована новая версия v0.0.3.5, пока как pre-release.

Что нового: исправлены несколько багов. В том числе тот, где при большом числе входных файлов (больше 50) выскакивала ошибка 'no aligner'. сам на него не наткнулся, пока не снял достаточно длинную серию. Добавлена возможность сресайзить картинку к любому произвольному размеру. Чтобы это сделать, нужно добавить к команде ключ "--resize", после него указать желаемые ширину и высоту. В примере это 1920x1080/

--resize 1920 1080
https://github.com/astrowander/acmb/releases/tag/v0.0.3.5
Название: Re: acmb
Отправлено: Артём от 27 Октябрь 2022, 18:36:16
надо уже враппер с гуями, чтобы популяризировать среди несклонного к скриптованию населения)
Название: Re: acmb
Отправлено: astrowander от 27 Октябрь 2022, 19:30:06
Да, это уже в планах) Наверно через месяц будет
Название: Re: acmb
Отправлено: astrowander от 06 Ноябрь 2022, 16:07:38
https://github.com/astrowander/acmb/releases/tag/v0.0.3.11

Последний релиз перед добавлением графического интерфейса, над которым нужно будет немало попотеть

Что нового:
Ресайз картинок работает быстрее, потому что сделан многопоточным
Добавлен кроп, то есть возможность вырезать прямоугольную область из картинки. Для этого нужно дописать к команде ключ "-crop", координаты левого верхнего угла, и размер прямогуольника

--crop x y width height
Название: Re: acmb
Отправлено: astrowander от 13 Ноябрь 2022, 12:31:23
На Хабре опубликовали мою статью о проекте:
https://habr.com/ru/post/698992/
Название: Re: acmb
Отправлено: astrowander от 27 Ноябрь 2023, 13:26:56
Всем привет! Давно не было обновлений в этой теме, уже больше года прошло. Но всё это время проект был не заброшен. Самые главное обновление: наконец-то есть графический интерфейс! Также, если на компе есть видеокарта от Nvdia и установлена CUDA, то можно включить GPU-ускорение. Оно может дать некислую прибавку в скорости работы.  https://github.com/astrowander/acmb/releases/tag/v1.0.0.4-alpha (https://github.com/astrowander/acmb/releases/tag/v1.0.0.4-alpha)

Немного о том, как пользоваться программой в её новом виде. Вкратце - принцип работы похож на Excel, только в ячейках таблицы находятся не числа и формулы, а изображения и инструменты по их обработке. Каждый инструмент может либо читать (импортировать) изображения с диска, либо как-то их обрабатывать. Результат своих вычислений он может передать ячейку справа или внизу от себя. Также можно сохранить результат на диск, в этом случае дальше ничего не передаётся.

Когда вы откроете программу, вы увидите пустую таблицу и ряд кнопок над ней. Чтобы познакомиться с приложением, рассмотрим в качестве примера типичную задачу по астрофотографии. Допустим, что мы хотим сложить набор снимков одной сцены звёздного неба в единое изображение, оптимизировать его для показа на экране с разрешением 4K и сохранить в формате JPEG. Исходные кадры сняты фотоаппаратом Canon в формате CR2.

Импортирование изображений

Основные кадры, на которых запечатлены, собственно, звёзды - это так называемые светлые кадры. Импортируем их в первую очередь. Для этого выделите ячейку A2 и нажмите на кнопку Import. В ячейке появится инструмент Import Images. В нём необходимо нажать кнопку Select Images и выбрать ваши светлые кадры.

Вычитание темнового кадра

Так как каждый светлый кадр кроме полезной информации содержит шумы светочувствительного элемента, рекомендуется снять тёмный кадр с той же экспозицией и вычесть его из светлого кадра. Выделите стрелками на клавиатуре или щелчком мыши правую соседнюю  ячейку B2 и добавьте в неё инструмент Dark Frame. Обратите внимание, что ячейки A2 и B2 соединены тремя стрелками. Это означает, что кадры между ними передаются в пакетном режиме, один за другим.
Этому инструменту требуется и темновой кадр, который мы будем вычитать из светлых. Так как ячейка слева уже занята, поместим его в ячейку сверху. Чтобы свести к минимуму случайные колебания, рекомендуется суммировать несколько темновых кадров. Добавьте в ячейку B1 инструмент Import Images и загрузите серию темновых кадров. Щёлкните двойным кликом по стрелкам, соединяющим ячейки B1 и B2. Теперь они соединены тремя сходящимися линиями. Это означает, что изображения из верхней ячейки будут просуммированы, прежде чем попадут в нижнюю ячейку.


Коррекция плоского поля
Из-за оптических недостатков объектива на фотографиях часто встречается виньетирование или неравномерное распределение яркости. Чтобы компенсировать этот эффект, нужно сфотографировать равномерно освещенное поле и увеличить яркость светлого кадра, там, где плоский кадр темнее.
Иными словами, мы должны поделить светлый кадр на плоское поле. Для этого поместите в ячейку C2 инструмент Flat Field. По аналогии с предыдущим инструментом в ячейку C1 необходимо загрузить серию флэтов с помощью инструмента Import Images и указать, что их нужно суммировать при помощи двойного клика по стрелкам.


Суммирование изображений
После того как светлые кадры откалиброваны с помощью темновых и плоских кадров, мы можем сложить их в одно изображение. Для этого поместим в ячейку D2 инструмент Stacker. По умолчанию в нём указан режим сложения "Light Frames". Это означает, что программа будет искать звёзды на светлых кадрах, совмещать их друг с другом так, чтобы звёзды совпали и только после этого суммировать значения пикселей. Второй режим "Dark/Flat Frames" означает, что кадры будут складываться без выравнивания, но нам нужен именно первый режим.

Изменение размера
Размер сенсора камеры имеет соотношение сторон 3:2, а мы хотим подготовить кадр для демонстрации на экране 4K разрешением 3840x2160 пикселей. Нужно изменить размер изображения до необходимой ширины. Для этого поместите в ячейку E2 инструмент Resize и укажите в полях Width и Height значения 3840 и 2560 соответственно. Такие параметры сохранят соотношение сторон исходных кадров.

Кадрирование
Чтобы изображение поместилось на экран полностью, нужно его кадрировать. Добавьте инструмент Crop в ячейку F2 и укажите следующие параметры: Left = 0, Top = 200, Width = 3840, Height = 2160.

Изменение глубины цвета
Так как мы работаем с кадрами в формате RAW, наше итоговое изображение имеет глубину цвета в 16 бит на пиксель. Его вначале нужно преобразовать к глубине цвета 8 бит на пиксель, потому что JPEG не поддерживает большую глубину цвета. Добавьте инструмент Converter в ячейку G2 и выберите в нём формат RGB24.

Экспортирование результата
Теперь мы можем сохранить результат всех вычислений на диск. Поместите инструмент Export в ячейку H2. Нажмите кнопку Select File и укажите файл с расширением JPEG, куда вы желаете сохранить результат работы.

Запуск вычислений
Теперь, когда схема готова, можно запустить вычисления. Нажмите кнопку Run и дождитесь сообщения об окончании процесса. Обратите внимание, что для сохранения целостности данных на время вычислений весь интерфейс блокируется.

Сохранение и загрузка проекта

Чтобы не создавать схему каждый раз с нуля, её можно сохранить на диск при помощи кнопки Save и потом загрузить с помощью кнопки Open. Во встроенном каталоге presets, который открывается первым, находятся три готовые схемы: lights.acmb, lights&darks.acmb и lights&darks&flats.acmb для наиболее распространённых сценариев обработки астрофотографий.

Использование графического процессора
Если в вашем компьютере установлен графический адаптер Nvidia с поддержкой технологии CUDA вы можете включить её, отметив соответствующую галочку. Это может существенно ускорить работу acmb.
Название: Re: acmb
Отправлено: Артём от 27 Ноябрь 2023, 19:55:54
Еще не пробовал, но интерфейс выглядит очень не скучно!
Прикольная двумерная структура пакета заданий.
Название: Re: acmb
Отправлено: Артём от 27 Ноябрь 2023, 20:17:49
Еще хочется минимального индикатора прогресса какого-нибудь)
- подавись =))

Прикручивай чтение FITS, пожалста)
https://heasarc.gsfc.nasa.gov/fitsio/
Название: Re: acmb
Отправлено: astrowander от 04 Декабрь 2023, 14:44:09
Прикрутил не только чтение FITS, но и запись тоже  :) Читать можно файлы с глубиной цвета 8 или 16 бит, а также float32. Запись - только целые числа, глубина 8 или 16 бит.
https://github.com/astrowander/acmb/releases/tag/v1.0.1.1-alpha
Название: Re: acmb
Отправлено: Артём от 05 Декабрь 2023, 01:01:18
Потыцкал, скорость и точность обработки при бешенной автоматизации внушают трепет. Шайтан машина!

На старых FITSах от QHY6 выдал странное, но там и заголовок файла китайцы какой попало генерили.
Название: Re: acmb
Отправлено: astrowander от 05 Декабрь 2023, 11:09:12
Спасибо  :krasneet:2 Значит восемь лет в коммерческой разработке не прошли даром.

Скинь мне эти FITS'ы где-нибудь, плз, посмотрю. Вообще я этот формат пока только на выхлопе FITSwork тестировал, да на одном примере с оф. сайта. Сыроваты пока  :)
Название: Re: acmb
Отправлено: astrowander от 07 Декабрь 2023, 14:23:58
Была проблема с обработкой монохромных кадров. Теперь исправлено!
https://github.com/astrowander/acmb/releases/tag/v1.0.1.2-alpha
Название: Re: acmb
Отправлено: astrowander от 10 Декабрь 2023, 13:55:22
https://github.com/astrowander/acmb/releases/tag/v1.0.1.5-alpha

Добавил новый режим стекинга - лайты без выравнивания. Это может быть полезно для наземной части фотографий и будущих таймлапсов. Также исправлен баг, когда программа могла обработать не все кадры серии или попытаться открыть несуществующий кадр и выдать ошибку.
Название: Re: acmb
Отправлено: astrowander от 19 Декабрь 2023, 13:28:06
https://github.com/astrowander/acmb/releases/tag/v1.0.2.0-alpha

Долгожданная новая версия, в которой можно записывать таймлапсы! Для этого в окошке Export надо выбрать формат .y4m или .h265. Первый вариант- это самый простой формат без сжатия, а второй - не совсем полноценный формат. скорее видеопоток, но плееры его воспроизводят. Позже упакую его в более привычный контейнер типа mp4 или mkv, а пока так. Можно открыть также встроенный файл проекта timelapse.acmb, там уже всё настроено, надо только входные и выходной файлы указать.

Ещё в этой версии стало можно читать JPEG файлы, что полезно для таймлапсов. Но, конечно, записывать их можно и из других поддерживаемых входных форматов - Tiff, Raw, даже Fits, если кому-то захочется :)
Название: Re: acmb
Отправлено: astrowander от 22 Декабрь 2023, 18:56:48
Приходилось сталкиваться с критикой вида "зачем нужна ещё одна программа при десятке аналогов". Поэтому я решил провести сравнительное исследование. Десяток аналогов правда пока не смотрел, проверил только три. Какие еще аналоги стоит посмотреть? Может стоит добавить в таблицу ещё какие-то параметры?
Название: Re: acmb
Отправлено: astrowander от 31 Декабрь 2023, 15:11:15
В канун нового года я представляю новый релиз acmb. Теперь у программы есть нескучная иконка, а также предпросмотр входных изображений и результата. В общем, теперь можно смотреть картинки прямо в самом приложении, ура!

Поздравляю с наступающим новым годом!
https://github.com/astrowander/acmb/releases/tag/v1.0.3.0-alpha
Название: Re: acmb
Отправлено: astrowander от 30 Январь 2024, 12:33:41
Я выпускаю новый релиз acmb! В нём появилось так много нового, что я решил не только увеличить вторую цифру, но и присвоить ему статус бета-версии (раньше была альфа). Как все эти новинки выглядят и работают, можно увидеть в новом видео-туториале. В нём я для примера создаю таймлапс из RAW, с калибровкой и цветокоррекцией. Прошу поддержать просмотрами и лайками  :)

https://youtu.be/uJEVtISbjT0?si=XB-NDA9EOeY7VvpG

Ну и скачать новую версию, чтобы потрогать своими руками, можно тут:
https://github.com/astrowander/acmb/releases/tag/v1.1.0.0-beta