Автор Тема: acmb  (Прочитано 2244 раз)

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

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
acmb
« : 04 Октябрь 2022, 12:38:34 »
+2
Всем привет, давно не виделись! Я за последний год наваял свою программку для обработки дипская, буду благодарен за отзвывы :krasneet:2
https://github.com/astrowander/acmb

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

Также приведу пару результатов работы проги, никакая другая постобоработка не применялась специально
https://drive.google.com/drive/folders/1l-_9N4-FFcPjHbkC4LQwqxXQXQklUB7B?usp=sharing

Оффлайн Артём

Re: acmb
« Ответ #1 : 04 Октябрь 2022, 14:09:09 »
0
Дело хорошее, раз уж автор тут как тут, вот прям отдельная тема тебе)

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

Еще хочется минимального индикатора прогресса какого-нибудь)

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
Re: acmb
« Ответ #2 : 04 Октябрь 2022, 14:53:59 »
0
1) ты из консоли вызывал или из кода? Вообще похоже, что не запустилось выравнивание, а результат его нужен
2) Я пробовал стекать dng, получается норм. Пришли серии по обоим пунктам, посмотрю)

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
Re: acmb
« Ответ #3 : 04 Октябрь 2022, 15:03:27 »
0
2) делал стэк дарков без выравнивания из DNG с выходом в TIFF. Получилась цветная дебаеризированная картинка.
А, я, кажется. понял. При открытии RAW у меня всегда делается дебайеризация, и вычитается цветная картинка из цветной

Оффлайн Артём

Re: acmb
« Ответ #4 : 04 Октябрь 2022, 15:19:50 »
0
из консоли
Да

При открытии RAW у меня всегда делается дебайеризация, и вычитается цветная картинка из цветной
Вот это надо потом, после дарков-флэтов делать

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
Re: acmb
« Ответ #5 : 04 Октябрь 2022, 15:59:30 »
0
Окей, займусь этим, как будет время:)

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
Re: acmb
« Ответ #6 : 09 Октябрь 2022, 22:32:22 »
+1
Вот это надо потом, после дарков-флэтов делать
Выпустил новую версию, где именно так и делается.
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"

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
Re: acmb
« Ответ #7 : 10 Октябрь 2022, 12:53:46 »
0
Минутка сравнительного анализа. Проверил, как справятся с одной и той же серией кадров 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, скорость тоже возрастёт. В целом, простор для оптимизации, ещё, думаю, есть.

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
Re: acmb
« Ответ #8 : 16 Октябрь 2022, 17:44:39 »
0
Выпустил новую версию 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]

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
Re: acmb
« Ответ #9 : 27 Октябрь 2022, 17:05:27 »
0
Опубликована новая версия 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
« Ответ #10 : 27 Октябрь 2022, 18:36:16 »
0
надо уже враппер с гуями, чтобы популяризировать среди несклонного к скриптованию населения)

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
Re: acmb
« Ответ #11 : 27 Октябрь 2022, 19:30:06 »
0
Да, это уже в планах) Наверно через месяц будет

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
Re: acmb
« Ответ #12 : 06 Ноябрь 2022, 16:07:38 »
0
https://github.com/astrowander/acmb/releases/tag/v0.0.3.11

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

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

--crop x y width height

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
Re: acmb
« Ответ #13 : 13 Ноябрь 2022, 12:31:23 »
+1
На Хабре опубликовали мою статью о проекте:
https://habr.com/ru/post/698992/

Оффлайн astrowander

  • Ветеран
  • *****
  • Сообщений: 3 388
  • Как здорово, что все мы здесь сегодня собрались
    • Просмотр профиля
Re: acmb
« Ответ #14 : 27 Ноябрь 2023, 13:26:56 »
+1
Всем привет! Давно не было обновлений в этой теме, уже больше года прошло. Но всё это время проект был не заброшен. Самые главное обновление: наконец-то есть графический интерфейс! Также, если на компе есть видеокарта от Nvdia и установлена CUDA, то можно включить GPU-ускорение. Оно может дать некислую прибавку в скорости работы. 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.